From xen-devel-bounces@lists.xenproject.org Sat Nov 01 02:05:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 01 Nov 2025 02:05:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1154802.1484509 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vF0z6-0000Gt-Vx; Sat, 01 Nov 2025 02:04:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1154802.1484509; Sat, 01 Nov 2025 02:04: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 1vF0z6-0000Gc-Ql; Sat, 01 Nov 2025 02:04:52 +0000
Received: by outflank-mailman (input) for mailman id 1154802;
 Sat, 01 Nov 2025 02:04: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=eeFJ=5J=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1vF0z5-0000GW-9C
 for xen-devel@lists.xenproject.org; Sat, 01 Nov 2025 02:04: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 24ef49ff-b6c7-11f0-9d16-b5c5bf9af7f9;
 Sat, 01 Nov 2025 03:04:49 +0100 (CET)
Received: by mail-yx1-xb136.google.com with SMTP id
 956f58d0204a3-63b710f276fso3126257d50.1
 for <xen-devel@lists.xenproject.org>; Fri, 31 Oct 2025 19:04:49 -0700 (PDT)
Received: from [10.138.34.110]
 (h96-60-249-169.cncrtn.broadband.dynamic.tds.net. [96.60.249.169])
 by smtp.gmail.com with ESMTPSA id
 956f58d0204a3-63f96799dbbsm949368d50.12.2025.10.31.19.04.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 31 Oct 2025 19:04:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 24ef49ff-b6c7-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1761962688; x=1762567488; darn=lists.xenproject.org;
        h=in-reply-to:autocrypt:from:content-language:references:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=A2AlqcXND3NfQs9eoM+iXlpcqGz4ZPCdjNhmnCUt1rU=;
        b=Ymq60A0dj6HGXiDQu1SaGSYet/Xv8P4aUuDzvBTg7vGkixxvzFXxXfctOLJG8XUinh
         L4Tmej8KrskGQURZmx3gf3FFPF8Lx102xhSQhcRXN+CvdfSIPOPVdtE7e9I9/7VtkdWb
         EsaJ39HAHLNSgLqAUhasVL2EOSAWzVFoAbQ6RYniFDhBuog6y3QWA/UMTzROJGxUlX/T
         NHJOe6fiqqN8F6Y6EOd9ckOJppKhDp+Es+r/PtAeY+cXIHor+ngIqqS1TSJLT5Gw+7cB
         xQ9iRaaMK0/eiN1VkmOFrW6fTsGPrQHL4RKbG6O23cjd3YopIASmbtHqE+T0txOPpLQu
         Yx8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1761962688; x=1762567488;
        h=in-reply-to:autocrypt:from:content-language:references:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=A2AlqcXND3NfQs9eoM+iXlpcqGz4ZPCdjNhmnCUt1rU=;
        b=dPR0Wl62JYVdIc2NniSpwdDydIR5DTTeA/Jti6JiZM9iKTDrvAdrqcL66mt04GKNpj
         Eo3qnZBZEU/KXJynpo5X0erbl1h9WBRldJmdK08PcLYOUNZRAQ2iiiAh+E/AzPc/gsBa
         z2rEkWWytHycFJwEaMlPpc//sONrxZteIbc4Nhut7gyELAG5zTFZXevEcTj+P+l2/Mrw
         LK2661jG9IeViu2BkrdsrB6eJ19aWXA/pmoGB/V+2VNJO2NCHqz4XYrqqDJeK6BV456C
         vcVkkJUOcheZzdgUzedKfLiXSZ5vSxy6UvoO//LkNft9yIyI55rQC3ykrPMcE4gt2rhA
         CrTg==
X-Forwarded-Encrypted: i=1; AJvYcCWEDigZNIShJ7EpKLoZ0vrPVYB1WBaXp53tPww4QnA+0SfcGG1PK1/7wnH0HX18/1HR4ZlFoEDAooc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz9fIaiTudyEbL5kUjRLd08ocdfF0JYGFQRErbd8wbRwUiYRXxp
	4IPQlg/5SWVI+Y4koP0Xb1py5Nk1NmQuG8nHkt4bbAG3kt6H9KRX6pdRfNLnFA==
X-Gm-Gg: ASbGnctPUztXId5smV+vOtXRG+uKi62L/x35yTSfS2IkCsXM7ojsh3l1u0OlOBEbPCu
	yfdiHNFAYIrn90Kuig1ygtKrQrvD/4n1HB04JLxQxdEspoW5e0Yy+5Ns5AfgK7Wc3iyMi3HLwFP
	4A95NiB4xok0X90id5RDOvJs0tHvHf1kwgENXJFpunPJFZkuQYuNcqCILjulIu/03VhS2IG5gQq
	UuhRiZWSgBLspF41Wi1diTxcqUgczv+BttTN2WWUzUM4zwgVXI1TJn1wVjYZ3bc6DUJFQ4k4h3N
	TDdcBarS5rfxjh43asuwamLkJ5dGBNG8/vwvy0zMylaqmCMxedfyw13q5lb0yNZQl/0jrR7+OPF
	zA+ztVWWLwT38zs3g9M/w/kEXBU4S2JXkKY/FIQLa1IpO+54YobOQYYiXTbO1+IsExWO4ndrSXg
	Cj3YgWieB9d3lEUj5ItcQ2zmuw3/1TvcAWgDbmaJSZKUN1pAweu7V9hARoEGE2QAf9m5Hs5tmU7
	494WWV3qtm4kZpW
X-Google-Smtp-Source: AGHT+IGE2Z1jvr5YhMG883R6tRbt6gxr1zZjB7+vPQyZEXsDEum9/AmyTqk19jsLiiVXbB4QnGF+kA==
X-Received: by 2002:a53:c044:0:20b0:63c:f5a7:3df with SMTP id 956f58d0204a3-63f9233ff44mr3710409d50.59.1761962687659;
        Fri, 31 Oct 2025 19:04:47 -0700 (PDT)
Message-ID: <3e42a9b5-6447-45d7-9e7b-a8749a13cfb0@gmail.com>
Date: Fri, 31 Oct 2025 22:04:43 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Limitations for Running Xen on KVM Arm64
To: "haseeb.ashraf@siemens.com" <haseeb.ashraf@siemens.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <KL1PR0601MB4588D25A95D680640A80F2CAE6FBA@KL1PR0601MB4588.apcprd06.prod.outlook.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: <KL1PR0601MB4588D25A95D680640A80F2CAE6FBA@KL1PR0601MB4588.apcprd06.prod.outlook.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------DNO9pICEBzR5kJJ1zUXGAiTq"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------DNO9pICEBzR5kJJ1zUXGAiTq
Content-Type: multipart/mixed; boundary="------------oEB0sIBWmplRq0xQ76RVpDut";
 protected-headers="v1"
From: Demi Marie Obenour <demiobenour@gmail.com>
To: "haseeb.ashraf@siemens.com" <haseeb.ashraf@siemens.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Message-ID: <3e42a9b5-6447-45d7-9e7b-a8749a13cfb0@gmail.com>
Subject: Re: Limitations for Running Xen on KVM Arm64
References: <KL1PR0601MB4588D25A95D680640A80F2CAE6FBA@KL1PR0601MB4588.apcprd06.prod.outlook.com>
In-Reply-To: <KL1PR0601MB4588D25A95D680640A80F2CAE6FBA@KL1PR0601MB4588.apcprd06.prod.outlook.com>

--------------oEB0sIBWmplRq0xQ76RVpDut
Content-Type: multipart/mixed; boundary="------------sOt0VEpjc6OcZTEGXe0sQ4x5"

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

On 10/30/25 02:12, haseeb.ashraf@siemens.com wrote:
> Hello Xen development community,
>=20
> I wanted to discuss the limitations that I have faced while running Xen=
 on KVM on Arm64 machines. I hope I am using the right mailing list.
>=20
> The biggest limitation is the costly emulation of instruction tlbi vmal=
ls12e1is in KVM. The cost is exponentially proportional to the IPA size e=
xposed by KVM for VM hosting Xen. If I reduce the IPA size to 40-bits in =
KVM, then this issue is not much observable but with the IPA size of 48-b=
its, it is 256x more costly than the former one. Xen uses this instructio=
n too frequently and this instruction is trapped and emulated by KVM, and=
 performance is not as good as on bare-metal hardware. With 48-bit IPA, i=
t can take up to 200 minutes for domu creation with just 128M RAM. I have=
 identified two places in Xen which are problematic w.r.t the usage of th=
is instruction and hoping to reduce the frequency of this instruction or =
use a more relevant TLBI instruction instead of invalidating whole stage-=
1 and stage-2 translations.

Why the exponential scaling?  It should be possible for KVM to fall
back to a full TLB flush, which should be O(1) in the size of the
address space.  It might have terrible constant factors though.
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------sOt0VEpjc6OcZTEGXe0sQ4x5
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-----

--------------sOt0VEpjc6OcZTEGXe0sQ4x5--

--------------oEB0sIBWmplRq0xQ76RVpDut--

--------------DNO9pICEBzR5kJJ1zUXGAiTq
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/sszaHOrMp8lMFAmkFarwACgkQszaHOrMp
8lNryA//dGqwQoUQCjmpWTu8GWrhguUmOQg7NbbJpDfD0A30II51E7j99bGqHJar
7rTL2DBVZiAu3gmKVlXvo/DwUE8pO+BedKPtA9lOTkit+6sB7BE4jOBKR8SdRauW
R7hjN7TPzYCJeiP/yw2WGjN6G1hMA6qEFTtPFXOJdY9galIBA9tWFNs5XJkPGxxk
XoHIgos3uPS/yNVt9AyuwAlY/uJ0iyDO2BsZ9rzhe/D9icP5RkjsjZsCCBj1SMyy
q9Ys5xS0cyk5Yx2mW4fQVffH/usFSdGqckJxZ3p54KEPUhJzUUUcH8u1EtjqvJEB
YVcrnLZ5ShlXBXjz4cGUklujYXpie/N3wLyVHpX7zWFNEk4/EeUNUyJ93qW25+nz
tvxooG1Rzlj4cwHdKU/4GoVhaH+t6veB04cFOhBkX/WdSbYiYW9FwGED4wBaM6wz
yu2j1PlDRnrsazgxE9NBvH/N1R7dnUp2qO1fNDccHBI4yeAWcXGCQQnCk0PBUesi
aQCX3d0/fUZoTiU1RIUnL3QMAuIK0O2O8e9geE7iTlu2D2IKMwI6ZvtieGb5gPLm
c1z+beOjj51TLIUS8Zhb5EThoHIv1BKMwr0uvEVfLFmWYJHsYv6IbhcCMM+/cQZm
xiTimf7HCZ5ApkCOYhxQib8UdPVKxrD/3/T5Fhes6qvWjsU2lT4=
=ByFQ
-----END PGP SIGNATURE-----

--------------DNO9pICEBzR5kJJ1zUXGAiTq--


From xen-devel-bounces@lists.xenproject.org Sat Nov 01 06:38:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 01 Nov 2025 06:38:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1154850.1484519 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vF5FS-0006bZ-T9; Sat, 01 Nov 2025 06:38:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1154850.1484519; Sat, 01 Nov 2025 06: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 1vF5FS-0006bS-QE; Sat, 01 Nov 2025 06:38:02 +0000
Received: by outflank-mailman (input) for mailman id 1154850;
 Sat, 01 Nov 2025 06: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=GYsC=5J=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vF5FR-0006b3-5e
 for xen-devel@lists.xenproject.org; Sat, 01 Nov 2025 06:38:01 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4de4e767-b6ed-11f0-980a-7dc792cee155;
 Sat, 01 Nov 2025 07:37:58 +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 A36064EE8C8B;
 Sat,  1 Nov 2025 07:37:56 +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: 4de4e767-b6ed-11f0-980a-7dc792cee155
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=1761979076;
	b=PTyPmulIHclyO2Qkz15+Mb9lzqKlMS58ABhxjgDQuYQIIGm0BZuAhnV0ri0wDGGnvHIc
	 dmB3gcMQnNne0D2MtfCMId4Yz0OpF82YXZyxjDL2Zd4MZsyhE0rEi/L2VBoaBGTjOkYad
	 pXg8eGlQaOGxyutTruwH8bGvR8MeyqC5g85I1c8oryaBRO+zUopsuqhjouX1Mvs5FDLfY
	 MbH3SbKmUi8JDwoiOK6/BEAUJnVSh3UEMc4o2JwrJeIzwFtSOPt87oWF+7yfIxpkdkdsU
	 7WbaDNRj8HpHQVY1vpAUnULz9/A5qtRcfhyPnFKY4LYhDoVk77hzkH7w/ti7vsNW7+fOd
	 5M/EDqd5D445PR4bJV18ADaIAr/kK08T5Sdf1svDpUs8PGQjOS5wRTeDjZzquxlAq/Zeh
	 cmqL7dAYBZaXjPZCHuGYdMVuh+Wis35c4hukk3/LVo9qdXKl1gwVS83HeHiEW/D+ostKw
	 ixXxmQiugmyc+XHOpn3AxjE56UlhaNYbCliOUO96UuSFymXfO5ZPwVmDO41LZDgvVtA3t
	 HgpgTWVL6kRTcFEOtjXmLa5nom6SI5G0qhBJjAtPdsBp9aUlSGV1xeNMBFBVopAlGeDmQ
	 lSgpLABVJPJNTdifw7n5c3ZoHiKGqpJ7Hd397QrLvoN3k+z/i96dQtCtrdxck9E=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1761979076;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=Dzfz4lp5jGZyHnaFvwGlIWDOyeYcfV/ytR+E+baJEq8=;
	b=aoVv9laG0qFXkMeHg3kPa4zSXdWfEPrzqViiNnhGJv1ax/DY+WT3NX9/iN1w7wxjAOxt
	 ki0uEzrXlztQ1TEvlfgQoyx8zwi79Y2weUxccCU0DfHUB325O/F00kO0NEtYa2u2EdCk9
	 xUgjvxu8B///QMuyBmAdc/4gMOgNwDF1rczZ+4BvdJbK1WrsqDI2nsjp5oXypxFK0hY0d
	 ZhzrlxQ7fRhDhVy810JTq8/tKo1kNktXi2NrNn71OpGLatsI9pIfq5Tn4yrFPfow0uqx7
	 zT5ThDWmmHAHIpcyfc99UUViQ8pCjRIhSjunRVuKDMCuKIp1OgS3P2Ap0aM8wA2x9CTYg
	 VmqlJUyQkzk8liiXhjkTX41DTjkJA34tPlsV8vmAKG0vCEhcsZHaMPlJNh7P4K/wEs0w6
	 6Yq9AQ0UP/uczZj/nwn8mAOqfRlPORyOaapGZrKDeGByo0pePZ5hNFow8RpI3DOj9p6oG
	 RA6+lNibCCr22MTa4v5KjQuayVR7WhaHDOoNnnIlmu0gXkQsnx4ptU4EKU+xqYDloxDoy
	 NkruGA77JPksD4rrpKcvvn0ccdoODoW6hi3kQJq0y0MTEIMOJMpGgDOPvOcTYS2AeoMp0
	 JdkiWsXnIV+O3JoaPj6FFQrzWWtxCVHoUrMcFcrwLgOgerxyYIlIn/S7tSANr/c=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1761979076; bh=0hoXtm2+MOmQvXHPNnG7OY2wGJmZTbIWW6onKx2+Z0E=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=ex8WtOtoqDm+FNHAtvVYXLxoUgMHo9LVMqWmiq1SMLrAkeA97bgF91ANtqUPaJZtH
	 sK2W0s3M7dFIct1ENTrZAX++bXgS1yo8vfUNgyRSvspaVPjtNgQnhqcgA8R+vVX0HZ
	 S00ugZGZQVKzDBx3fkjPyqoIj9+FgUkjKfwFw1eFd+bwfAnL7e9l86RU2MYAYQOKks
	 yEXge5cYkTW3WcWpoJHUGuEWFijPShbkVV5s3lp2Z4z9IOU+xleaoOONSTCbuEYLZV
	 pwl2MKEJ09nEjrghFh5qqqfAbAMp75upJzHXFIFDc/bKF+KFSIVOHzVA71LeH+b9oz
	 lURxHJ6Pr0w3Q==
MIME-Version: 1.0
Date: Sat, 01 Nov 2025 07:37:56 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, Doug Goldstein
 <cardoe@cardoe.com>
Subject: Re: [XEN PATCH v3] automation/eclair: add new analysis jobs with
 differing configurations
In-Reply-To: <alpine.DEB.2.22.394.2510311255210.495094@ubuntu-linux-20-04-desktop>
References: <876da816d5aacdb688599fd1d50efca2f856d080.1761897244.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2510311255210.495094@ubuntu-linux-20-04-desktop>
Message-ID: <5d70118c343eafbea6d9b4c2f6134595@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2025-10-31 20:55, Stefano Stabellini wrote:
> On Fri, 31 Oct 2025, Nicola Vetrini wrote:
>> The following analysis jobs are performed:
>> - eclair-{x86_64,ARM64}: analyze Xen using the default configuration 
>> for
>>   that architecture; runs on runners tagged `eclair-analysis'.
>> 
>> - eclair-{x86-64,ARM64}-safety: analyze Xen using the configuration 
>> for
>>   safety, which is more restricted; runs on runners tagged
>>   `eclair-analysis-safety`.
>> 
>> - eclair-{x86_64,ARM64}-testing: analyze Xen using the default
>>   configuration for the purposes of testing new runner updates; runs 
>> on
>>   runners tagged `eclair-analysis-testing`.
>> 
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> ---
>> CI pipeline: 
>> https://gitlab.com/xen-project/people/bugseng/xen/-/pipelines/2130873833
>> 
>> Note: the eclair-ARM64 and eclair-x86_64 jobs are allowed to fail 
>> because the
>> configuration is not (yet) clean for all checked MISRA guidelines.
>> 
>> Changes in v3:
>> - Use a variable instead of testing the repository PATH to decide 
>> whether a job
>>   should be run for *-testing and *-safety analyses;
>> - Allow eclair-{x86_64,ARM64} default configurations to fail, as the 
>> configuration
>>   is not yet clean for MISRA.
>> Changes in v2:
>> - rebased to current staging;
>> - fixed regex path issue.
>> ---
>>  automation/gitlab-ci/analyze.yaml | 42 
>> ++++++++++++++++++++++++++++++-
>>  1 file changed, 41 insertions(+), 1 deletion(-)
>> 
>> diff --git a/automation/gitlab-ci/analyze.yaml 
>> b/automation/gitlab-ci/analyze.yaml
>> index d50721006740..fae55a23dbb5 100644
>> --- a/automation/gitlab-ci/analyze.yaml
>> +++ b/automation/gitlab-ci/analyze.yaml
>> @@ -45,6 +45,22 @@ eclair-x86_64:
>>      LOGFILE: "eclair-x86_64.log"
>>      VARIANT: "X86_64"
>>      RULESET: "monitored"
>> +  allow_failure: true
> 
> Wouldn't "allow_failure: true" also change the behavior for the 
> existing
> jobs? I would think we want to continue not allowing failures for 
> those.
> I would think that at least eclair-x86_64-safety should not allow
> failures (like before this patch).
> 

Well spotted, for some reason I thought that it would be overwritten by 
the rules section in the extended job. I will put an explicit 
allow_failure: false in *-safety job to preserve their behavior, then 
when (if?) the eclair-{arm64,x86_64} jobs are also clean, we can remove 
both settings

> 
>> +eclair-x86_64-testing:
>> +  extends: eclair-x86_64
>> +  tags:
>> +    - eclair-analysis-testing
>> +  rules:
>> +    - if: $ECLAIR_TESTING
>> +      when: always
>> +    - !reference [.eclair-analysis:triggered, rules]
> 
> I imagine that ECLAIR_TESTING will be typically off in
> gitlab.com/xen-project/hardware/xen, right?
> 

It's not about the repo, but the runner environment. The runner(s) 
tagged with eclair-analysis-testing do have ECLAIR_TESTING set, while 
the ones tagged with eclair-analysis-safety and/or eclair-analysis have 
the ECLAIR_SAFETY variable defined.

> 
>> +eclair-x86_64-safety:
>> +  extends: eclair-x86_64
>> +  tags:
>> +    - eclair-analysis-safety
>> +  variables:
>>      EXTRA_XEN_CONFIG: |
>>        CONFIG_AMD=y
>>        CONFIG_INTEL=n
>> @@ -75,6 +91,10 @@ eclair-x86_64:
>>        CONFIG_DEBUG_LOCKS=n
>>        CONFIG_SCRUB_DEBUG=n
>>        CONFIG_XMEM_POOL_POISON=n
>> +  rules:
>> +    - if: $ECLAIR_SAFETY && $CI_COMMIT_BRANCH =~ /^staging$/
>> +      when: always
> 
> On the other hand, I expect that ECLAIR_SAFETY will be on in
> gitlab.com/xen-project/hardware/xen, right?
> 
> I don't think we need the extra check on "staging" as the branch
> on gitlab.com/xen-project/hardware/xen are very limited.
> 

Ok, can edit that out

> 
>> +    - !reference [.eclair-analysis:triggered, rules]
>> 
>>  eclair-ARM64:
>>    extends: .eclair-analysis:triggered
>> @@ -82,6 +102,22 @@ eclair-ARM64:
>>      LOGFILE: "eclair-ARM64.log"
>>      VARIANT: "ARM64"
>>      RULESET: "monitored"
>> +  allow_failure: true
> 
> Same comment for ARM
> 
> 
>> +eclair-ARM64-testing:
>> +  extends: eclair-ARM64
>> +  tags:
>> +    - eclair-analysis-testing
>> +  rules:
>> +    - if: $ECLAIR_TESTING
>> +      when: always
>> +    - !reference [.eclair-analysis:triggered, rules]
>> +
>> +eclair-ARM64-safety:
>> +  extends: eclair-ARM64
>> +  tags:
>> +    - eclair-analysis-safety
>> +  variables:
>>      EXTRA_XEN_CONFIG: |
>>        CONFIG_NR_CPUS=16
>>        CONFIG_GICV2=n
>> @@ -120,13 +156,17 @@ eclair-ARM64:
>>        CONFIG_DEBUG_LOCKS=n
>>        CONFIG_SCRUB_DEBUG=n
>>        CONFIG_XMEM_POOL_POISON=n
>> +  rules:
>> +    - if: $ECLAIR_SAFETY && $CI_COMMIT_BRANCH =~ /^staging$/
>> +      when: always
>> +    - !reference [.eclair-analysis, rules]
>> 
>>  .eclair-analysis:on-schedule:
>>    extends: .eclair-analysis
>>    rules:
>>      - if: $CI_PIPELINE_SOURCE != "schedule"
>>        when: never
>> -    - !reference [.eclair-analysis, rules]
>> +    - !reference [.eclair-analysis:triggered, rules]
>> 
>>  eclair-x86_64:on-schedule:
>>    extends: .eclair-analysis:on-schedule
>> --
>> 2.43.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 Sat Nov 01 11:57:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 01 Nov 2025 11:57:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1154896.1484579 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAEJ-0003Mc-BV; Sat, 01 Nov 2025 11:57:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1154896.1484579; Sat, 01 Nov 2025 11:57: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 1vFAEJ-0003MS-7q; Sat, 01 Nov 2025 11:57:11 +0000
Received: by outflank-mailman (input) for mailman id 1154896;
 Sat, 01 Nov 2025 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=rLmn=5J=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1vFAEI-0002Ar-2y
 for xen-devel@lists.xenproject.org; Sat, 01 Nov 2025 11:57:10 +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 e4575ee5-b719-11f0-980a-7dc792cee155;
 Sat, 01 Nov 2025 12:57:08 +0100 (CET)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by DBBPR03MB7130.eurprd03.prod.outlook.com (2603:10a6:10:20e::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.16; Sat, 1 Nov
 2025 11:56:58 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%5]) with mapi id 15.20.9275.013; Sat, 1 Nov 2025
 11:56: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: e4575ee5-b719-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ii4x2NAUlEgfK30z/jJSSS69ocZa7VVPcIe9O/7HUqzCAqeiQUS6JdlKE9Tt/yTlnS4JcShtTtODFFEk5cam88Q2v4E/7IvoMuNGnLZXgDSSCWiIGuloe/5uel0f5zmzHFDW3PtxiZ9lmKV9dfdmlMWa3mRoyICPkA28idY4UeBNR3oFXHuGXHU3L70+blJT3VtxeXCsw9SsXKkJgGIwDf0Nh/Y8iwSLgWwkWVQ5Bp4un9PcStglywObgF3P+R6ukXo2HxaxP3y9oQ+aJkuUDxxUxiATg9kmBEcSPGZUGc3yralIE20iTsbhUHYFY05Ka+81ek0PnBFEsBs09q99SQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W6KaeGL/ozdDe1zYV8MxRWrxwFnXOEXM0wJwDhyqRUw=;
 b=niC07Bied4WSJMKG5xMuEMoQk4WZlDvQVd2kwiQ6V0Y/kgk61Ur7sBxgSnhI/JYlttXNPXuA8ll9TH2n/luZ4nPwZq+WNyv3ICRNR94EPTaHXCAcAGE7ggtfdT2ulBtyaEQ+KNmHMDXq8Y3ZuRyGwH95UYUP0JsqeCpPfWPfWJkSBb5HnhZFywUgRFZpmK+mVPTXzYDKcMDki6YRVGM8uS76ZoDCHV43T7HuUif1CVZEZl0ch6Sqls5VTvF/VXuekdNNcdVmQ9f2wpWTWphBhY7o86snvu/7jgsc74ESFFy2Zxg/asHf60QSJ+DMZvjlRtQxKnNXSrvvUKkZHg8P7w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=W6KaeGL/ozdDe1zYV8MxRWrxwFnXOEXM0wJwDhyqRUw=;
 b=J3sD/UdrKonMFV5bbBn+ywAqAN8miYW/KS6Q5KeT88kGnqB1y4bEv5S+XxKi+UJsQ1gkk7MtmNsento2107yv0BibwD6jed6X7N+FBKr+6zR6gGLCIC1Vk+llpwewOHSvCzjsvb7bO7r6CwkJXV4vbeD+Onx5qbxAgO/bGj1blYqj0TkVDPQLjbRn1rNJB7xmcrWbY3fzeYnUzDAbXoHbt/Il1fo9FK46K3PrfG+SlGHhSnUv/TC1eOs2XYmZ6LeLkrOHYZ1POw4r5DRPYNsVY2yk3DFASJsFo4DwibIgAVdLd2Ulh0pugIeFHTBizLxWAMh/G3Jya0Bd2iFzTxiuA==
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>,
	=?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>, Oleksii Moisieiev
	<Oleksii_Moisieiev@epam.com>
Subject: [PATCH v6 5/5] docs: arm: add SCI SCMI SMC multi-agent driver docs
Thread-Topic: [PATCH v6 5/5] docs: arm: add SCI SCMI SMC multi-agent driver
 docs
Thread-Index: AQHcSyag7wGCc3+7TESSMpmt+RnGqw==
Date: Sat, 1 Nov 2025 11:56:58 +0000
Message-ID:
 <b76197db7898a3feb9d7fcab4b5506855aaf8c00.1761998077.git.oleksii_moisieiev@epam.com>
References: <cover.1761998077.git.oleksii_moisieiev@epam.com>
In-Reply-To: <cover.1761998077.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_|DBBPR03MB7130:EE_
x-ms-office365-filtering-correlation-id: 969c4652-0190-4213-bf08-08de193dc2cb
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|7416014|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?KUONrZfVyNXWEzj9Tq/jo9DyBzyFip4n3x9hVUUb+3qM857LCsref1ZTB4?=
 =?iso-8859-1?Q?9vNeIiKSPUujNGoZMH7z4z5mREhAMKo/GaKDJqgGVAA9P3+FsoYvV56kM/?=
 =?iso-8859-1?Q?M0E+eve3djhgqpzrXdjXI/D28ESM0uhFEaItRUuOfCgiaRVc6HFX9+EOKU?=
 =?iso-8859-1?Q?a08pL3N2rEmj4s807vsThknIYljSWBq/U8NwPH8nUimEz/IcKu8qLwiEvY?=
 =?iso-8859-1?Q?4oXRR5ur/yNMtn1oCJhhM0XPCsCPSI89eB9JcN2ybEd6l5rIKc5MiP+is5?=
 =?iso-8859-1?Q?FyFvxveLXyun3h/TGveMnvyC6is5sJINilix4LbEPJR2K/Y5JHxeUrxaIJ?=
 =?iso-8859-1?Q?oQEG9b/efhuFO3G643t+DtHNwiWmsPLbZDo/NiIc+gGxFdS9gm2kknEV1u?=
 =?iso-8859-1?Q?A9wQHgs5BG/UYpCfIACRn99DlAdOs9Wn4yhr1+4GN6xZRG0/elzKpEimqi?=
 =?iso-8859-1?Q?0WECbhAIAzjvgUEQYcq7HC8gwDkbObGUUylkrtVhEcBdjHcQc84BZ/6HJr?=
 =?iso-8859-1?Q?Bdjc+j83DLqeuJywJu23UD1NHMA5ZLivH/FXwPOH32STspFIJYMzxkowZ0?=
 =?iso-8859-1?Q?uzTTUQG/fxcAsvBiHOpxCVTvDIJyLYNMqyQX+eow5NPOMGQ/8r7T08zvcF?=
 =?iso-8859-1?Q?mzq2B6o/anvQ7ghVxmtmPEOM04zimQUBB3rhUxUepUvtxElJiQWnfqujPf?=
 =?iso-8859-1?Q?yPqKuUCT/YMALtzl0stBprPqNME1Yw/v0Zw8pXQipkZjVxM+x3R6O7VG5l?=
 =?iso-8859-1?Q?5EBwVlO0jWBsH0UTBT0Pf5KnVfDahjhJG9224mjgy1gk5bCY0i1kY9eKwV?=
 =?iso-8859-1?Q?sNxmAbJlCFkvRNmJ//7lSwr84EEEkUzB3mcvAcPaTDX0XjqdsPhmEcBqN9?=
 =?iso-8859-1?Q?D1vwOabB7+e4nwMadoqd3z0764spWfWQCVZA3XiiWCW+ODpuh2JwJRi4JG?=
 =?iso-8859-1?Q?gGo8MeV9TvOjn6GhfQk5VHHC3O2kcPqH/HWJ35hvoFDunBuJR5+QVjj7DT?=
 =?iso-8859-1?Q?p+BgGE+7rwKz8r/cDTLbcfS4AR2ODbKKMhXvpI3hUiV07XfB7nHxrzhzay?=
 =?iso-8859-1?Q?6Vz+UTqHXQnWNb7gNHw39p+c0OWDQauh2dYupVkQ4yAanwymdw24hk0zmj?=
 =?iso-8859-1?Q?rCvRzmcREakCcmlS+JU27EsPMJxFN1cLQQXgyCNqBmS8PTHGFU+slzKYFb?=
 =?iso-8859-1?Q?vR+TCbcJW/5hRpTHDUs7/7JGNctKaY9grCAKobztX2iTyuLJWhXK0RJYjK?=
 =?iso-8859-1?Q?YsLQilQV/e8ccn+wbg2lwwMipt+ll9Ya++/qbmP7qcojsRT9AQTDj/FOSm?=
 =?iso-8859-1?Q?m0lbwhoq7+fsWyQ5AfsmK779sjQPEcgpWWbQ4FUiAGEuiwMO8uvUQlxqFv?=
 =?iso-8859-1?Q?6Me/hIgPAKTkMHbBdH2hu6fxYZlBIjASk9TepL3bRLBWFYD52w8g6NQIQH?=
 =?iso-8859-1?Q?gPdo3B6pKyDh+kqA082723lUhhgkZU/MfSG47YMzHkyFtiVddkF0O2yGho?=
 =?iso-8859-1?Q?tVnXBYXkmnsa0Hqw9meCi66ksAFcBlpCrEGTdIeSI+PDa8O7aHSi4mgKK5?=
 =?iso-8859-1?Q?R98hD9ZIN3So2IbqG0agkNEf2OyG?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?aKl4K1WD8XPYl+Z5v25mu2ClPqn4S27lQgIWXNnNevGwzV/Rq0rMggrigP?=
 =?iso-8859-1?Q?vBCYiL4TYsdva6qmc03yWBCIl/k4KfO+lECwA4Fk/KVYZd1VKafaDDa5q5?=
 =?iso-8859-1?Q?2WAROFHdHW2yRdyKvX0MRhUe4DlmHiULD8e7xDCjyRt1BFsiJiqT0jegO6?=
 =?iso-8859-1?Q?nfA7Q7xVjCiVz3l6f5SEAJFdml5EM4aC9pfqAnw+DpBr5M1UWvtnUh+t72?=
 =?iso-8859-1?Q?DROl1kayt53+b6lvW/5KDsGVn0A4s/LruPvxhISPX/c9UGUx7noOUCb9ok?=
 =?iso-8859-1?Q?yQLGMh2id/euXJoixlQ5pysLT8S1k2Y8DwMFDrHq4H0rdKUJq+wThTFPYB?=
 =?iso-8859-1?Q?rmhNBKqN80iDSCrE7fckVC3xk88j3aUBPXni7dXbqVtSJLLZg+F2Us/LBM?=
 =?iso-8859-1?Q?LyEBadU7m972QNHN4K6WYBJgYU2Kkz9+RFOLgGND6+vOnq7RtO3/JuDAkL?=
 =?iso-8859-1?Q?mlAotsqSWGm6b4feI1PjLSHXDOSB+qgHPsHSjF6G7NxsX15AD4oc3pFVax?=
 =?iso-8859-1?Q?eW/cgTW2TyF4N0EF3zIBqktUHeZIkUkMWMKW7AR41ry+wE7yjc+PghDGMN?=
 =?iso-8859-1?Q?M+Y30HcZUdpIjxa02H+Ujo8rTioBdD8zqL2M2q96YGTQD3Des9gUt+U34M?=
 =?iso-8859-1?Q?HM2TDPI0x1Nf5GNNDU2dawml90moqL4azOR69FTiRlLFOm49rkgjILHITD?=
 =?iso-8859-1?Q?cJHKJXXNEscy769lATIl0ovRxpx/uhCZmYvl+w5EyQMyCkG2W+cTxp4ojd?=
 =?iso-8859-1?Q?1YyLGfxqHS7JklDPg5BwNRiodmNbCgx9pMWhyBOpwcAA/3ELbUfiEL223B?=
 =?iso-8859-1?Q?truRfLwEi9gckNmtxmgFbNzDpLPmQqF5qlfRWHulRSF+EJ/0D4sOL9Kx4Q?=
 =?iso-8859-1?Q?m026QFhk4htXGD+Ay2rKoXsBPlL9W2+nl+WOfpj5SHXGlOGNcZftTs4+yc?=
 =?iso-8859-1?Q?GrbBg4xPSWPLCcKGWaxC1I3lLnlEeZSvXc1JbV4ci5ORsI/BJsnqKxd4hU?=
 =?iso-8859-1?Q?FZJBqNVgOHRwdY5C01OFa4BxDEkylm+9AH043k+JMG4BIO2WJ5OvXj2bUq?=
 =?iso-8859-1?Q?quLGCKZ/ffJDmzL68bP73IsuYyM/YF7f0L4e3p4OGfJPEDk7rTi8f/p2At?=
 =?iso-8859-1?Q?fJFxsvwuCYGy+ySCdDAndKNxUWMaKosafWtDmJ22mWNvKqLCONMBfb0Z56?=
 =?iso-8859-1?Q?o8lqfP8+eRjRIzXYGFfNnGb0+nZP8whzDxb++8Ydb7zsQiZ/B1/yRcGy0U?=
 =?iso-8859-1?Q?qYqwGVhEoHAIGvNedYFb2kBy1o7X4M4F3Rl+vN0FbVCQjQQ716zopYrd2u?=
 =?iso-8859-1?Q?N6otYkvte5oxNvFgZFMzQzmAoCDfZ9LzD0IvEltYT7GyVuXjkeDMiHU8w9?=
 =?iso-8859-1?Q?Hm3aTu+TjARUYSaT0/eznQJldfWm8v2UvAXuarWleKAMKzVXVA7/dg51Jr?=
 =?iso-8859-1?Q?FzoP7QnDTXSe6W5I0yoME5Q0QaRFrr5jI9ZaCz97z5XkeNCcJ7NUM7O4Qj?=
 =?iso-8859-1?Q?gYz7HwmdI4AbDovEtXDZH999Jmc5PyJerZigFYFjZGxuymDEcihJbHKVT5?=
 =?iso-8859-1?Q?Uxk1ye7HEwVbNLxjSxiBw5Uoq5y4Fx/YLf/GknFlwPH8xH1QTna+z5hQ4+?=
 =?iso-8859-1?Q?vtKhJ/iEEW+QIL7pLzr0ahLsFPgdnP3ZyRiLblFWBbto/ndVY5MGAxWQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 969c4652-0190-4213-bf08-08de193dc2cb
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Nov 2025 11:56:58.4662
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: A5d7Rgj9+YczjHgbVsAvsHvFlycZ3AQwchwpGnXbXZT2TqoqlDJSrTZj36yX8E/KI+jNBd/kt/FfWIfaQLJuelG3glYiw0ZcINRVoQnG/Xo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB7130

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 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                 | 341 ++++++++++++++++++
 1 file changed, 341 insertions(+)

diff --git a/docs/hypervisor-guide/arm/firmware/arm-scmi.rst b/docs/hypervi=
sor-guide/arm/firmware/arm-scmi.rst
index d9698f4e4b..630965fef3 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,342 @@ 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 based on the ``xen,config`` node under ``chose=
n``
+  (only one SCMI interface is supported), which describes the Xen manageme=
nt
+  agent SCMI interface.
+
+.. 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 <0x82000002>; <--- 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-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,config {
+        ranges; <--- set default ranges so address can be translated when =
parsing scmi_shm node
+        scmi-secondary-agents =3D <
+                      0x82000003 &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
+
+        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 <0x82000002>; <--- 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
+        };
+      };
+    };
+
+    /{
+        // Host SCMI OSPM channel - provided to the Dom0 as is if SCMI ena=
bled for it
+        scmi_shm: sram@47ff1000 {
+                compatible =3D "arm,scmi-shmem";
+                reg =3D <0x0 0x47ff1000 0x0 0x1000>;
+        };
+
+        firmware {
+            scmi: scmi {
+                compatible =3D "arm,scmi-smc";
+                arm,smc-id =3D <0x82000003>; <--- 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 `=
`/chosen`` 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,config {
+        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 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
+^^^^^^^^^^^^^^^^^^^^^^^
+The **"dom0=3Dsci-agent-id=3D<dom0_agent_id>"** parameter in the Xen comma=
nd line is used to enable
+SCMI functionality for Dom0. If not provided, SCMI will be disabled for Do=
m0 and all SCMI nodes
+removed from Dom0 DT.
+
+Example: **dom0=3Dsci-agent-id=3D0** to enable SCMI with agent ID 0 for Do=
m0.
+
+Xen utilizes Host DT SCMI node to configure Dom0 SCMI Agent so the device-=
tree remains unchanged
+except for the Xen specific properties under ``/chosen`` node. If Xen devi=
ce-tree doesn't include
+``/firmware/scmi`` node or it's disabled, the Dom0 SCMI Agent will not be =
configured.
+
+.. note::
+
+    The **sci-agent-id** value should match the ``func_id`` and ``shmem`` =
in the ``/firmware/scmi`` node
+    to set the correct Dom0 SCMI Agent.
+
+Configure SCMI for for guest domain with toolstack
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+* In domain's xl.cfg file add **"arm_sci"** option as below
+
+::
+
+    arm_sci =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>;
+                    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 0x47ff0000 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:
+
+.. 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 Sat Nov 01 11:57:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 01 Nov 2025 11:57:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1154895.1484569 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAEH-00037I-TN; Sat, 01 Nov 2025 11:57:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1154895.1484569; Sat, 01 Nov 2025 11:57:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAEH-000379-Oa; Sat, 01 Nov 2025 11:57:09 +0000
Received: by outflank-mailman (input) for mailman id 1154895;
 Sat, 01 Nov 2025 11: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=rLmn=5J=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1vFAEG-0002Ar-8Z
 for xen-devel@lists.xenproject.org; Sat, 01 Nov 2025 11:57:08 +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 e29c865f-b719-11f0-980a-7dc792cee155;
 Sat, 01 Nov 2025 12:57:05 +0100 (CET)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by DBBPR03MB7130.eurprd03.prod.outlook.com (2603:10a6:10:20e::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.16; Sat, 1 Nov
 2025 11:56:58 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%5]) with mapi id 15.20.9275.013; Sat, 1 Nov 2025
 11:56: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: e29c865f-b719-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VW7JX/eqMNkukstvC1yJm4dJ9FdWthITT2XruADUOr0CAbU1KfoR2sMwwXC189DdILq/vwAHwK9ysqWot2l1mhmMXYwmo9dgN3wsgaN/4jZvcfU8hdjWiUpSSxoa2P3hq5U19lim5ggdFHYF7Ihl6mISp5FakG++7JB1TMgpgBT+NGk3p9ppdcTMonMXnPf7KupmvWiCdApLfCyumnJR1QZSB+RbtnlEEjpYJ788ii4tZxsajI9ci5s3LLxAFjD4FteOHFI5WVjcW/Z0gqY6zFW0p8GJ8oaMUdaek+34xZRuJOnRltx4y9F541n1aOSTL93wMiewtEv37nsc81jU1g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WJhgedX0Vpjmv8NLnFLtcyoAuFv8Q79conSP7vqx7l0=;
 b=Tl7n8WDFs/IMaqyoGwkz4w3yg+VY20KNAqf5uC/+/AQ9FbE/uY37XrVzCRDcWU4W3YPzzFy7tDsO3FJwwxYAo6UXzqAb5ERrZn2rSM8lGDbmvt6a5lSRHlqkrehL17kx05nYDnsa4NkQvHPrbcfUHwfIaYcJc87/qTaJVVlPGs2Y+XGdUsnmbBTsoOXnluPODH0Q4AEzpBRBtxV7q6gIjJ8BQb0k7VhHr0QQKy9RLaDJ2CnDaM0jNX1awZCvu3KkahOH29a6L44IOe2XG8GWAgUD0RRmjkccDvC/79hB5oVz4GeD1eH8/jLrXWseL8KXnAo14/x6vfMV7dWCShIOnA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WJhgedX0Vpjmv8NLnFLtcyoAuFv8Q79conSP7vqx7l0=;
 b=EV5wKlXbSvBNrLVdVXZCGyRlThJblrPaEC9eGYVe2P5MYj63Kqt76E5CeR7iQiYFBcRIPJPLk7R/ZlWbmm7VjelzoyVgwM4CpNxoKB22j/mvfzr5O3pBTIhrnCQEBACqwD0FWbg6DeVLO9onPWZkLdyDANmiNs72kAJVxdzBf5BcSMsQ4lV0Wl7wDbJusVQt3dDqCbCvJKxSzRDyAV1J+09rTsX7VNOCnHPLb/+rTZFhINEht0NdHin774sbLAZ5n17uQU/Sy+TDZT0BUkw9sIluSIhd2V2pF2tHmeXnqCShoWqze307BxJaZL3cjc7P9gigLs75tplZt225crpouw==
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>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
Subject: [PATCH v6 4/5] xen/arm: scmi: introduce SCI SCMI SMC multi-agent
 driver
Thread-Topic: [PATCH v6 4/5] xen/arm: scmi: introduce SCI SCMI SMC multi-agent
 driver
Thread-Index: AQHcSyafF7w2yrI9QUiIBj5xG1SGAQ==
Date: Sat, 1 Nov 2025 11:56:57 +0000
Message-ID:
 <ee195eb3a9b04854a6b108da4275877c9a7bb32c.1761998077.git.oleksii_moisieiev@epam.com>
References: <cover.1761998077.git.oleksii_moisieiev@epam.com>
In-Reply-To: <cover.1761998077.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_|DBBPR03MB7130:EE_
x-ms-office365-filtering-correlation-id: 923cdd2a-73f9-4477-df8d-08de193dc275
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|7416014|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?q8FSVuF7EZ+hey9qaZKsmhHqOYvdfE04EgbW470v9BE30zIyIeZLQFawrL?=
 =?iso-8859-1?Q?W6N7WyYuifF79I7f054aLs5d8KrcAfdAcP+Lhb77xkOQwim/bFfPT7o0Yg?=
 =?iso-8859-1?Q?VNshvRxUZsf0L9YAS07O1zfPK2iWUZBOzfTT4VvOZeNHWIKEBLF94Af+fz?=
 =?iso-8859-1?Q?mArsD5zMp+YlOB8FHBj9mYRSPGJikBrZVMkTv++i6MEmo8bWLSJY/5YNnX?=
 =?iso-8859-1?Q?JZZiLxqQcaWPSvY7io05l/aK8UPYl/1BfJ1nzBmn1ST+sBlYULbFVuAhDl?=
 =?iso-8859-1?Q?MYlKHAhwKwfBHQBPt9YTvKPi4KRj8ZX+E5efzdk2h/qzW+liHuMLT3+HRW?=
 =?iso-8859-1?Q?qHoLrbsl0Z7QnOO86HfnyeHbcJE8CjEwrqjNAY0F0LdGOkx5lfXEKumzC3?=
 =?iso-8859-1?Q?jgAG82UK9JYEP8PsJJPBiV92wl2H/UHxH1wAH1frl3H1GXG/dOh125/0sk?=
 =?iso-8859-1?Q?GPayTCnBS4dm0RsccPEuYfl/lylTXUmsKfHskei5bCMLD+Im+Q0ieIx52g?=
 =?iso-8859-1?Q?hTUGy+Zimx5ejVX9yyHvgr1U8FjtTZWZxDG1Rb8qNzDzf1f5qt/aubEsb5?=
 =?iso-8859-1?Q?dPvdl5Gbk4eW5ccBHT2StpzWeaCYBqTVAXqt9Ku5Gsra019aTSb0Yroasl?=
 =?iso-8859-1?Q?MP4hwVbHAqZW4Huh26xmZs72tpdKQHXF1sYlRCyAYoPoB+dLc97Leo3FUv?=
 =?iso-8859-1?Q?e2X2f/oHG+rBhinvmRfZUgVpWG8PpTkFC/Skb+XVgsctmG+xojpc6+H4Ns?=
 =?iso-8859-1?Q?TT6Nd0vVZJ6PJcpYATPiO8mIoqosKHJZYPM1YZSFvqsxrlsF4bEEe0vSSt?=
 =?iso-8859-1?Q?MKI+umoedm8Au2ztItCdX6OvRnuOesTE+7ZiRb86rF/e8uL5uV/W3hG39V?=
 =?iso-8859-1?Q?yZWYGa3H+zAIQdqYbs4EEnfvcYTQ5f8CRIEIqy/GSqoH9Ex47+CL0DTr3m?=
 =?iso-8859-1?Q?rj4rYRfy39k7NxIByymWfoTan6RNwovRaK981uHUhBBDo5MqU/eR9S+BAR?=
 =?iso-8859-1?Q?dMjtJw2DStnW17p9dV6VV+1NBPnVJxSRrhC4kFZlfTnC+EIfn30KC4g5ci?=
 =?iso-8859-1?Q?ZIlbs91vv1tpyMZ+pIz3bY7s4T1q/8vZBJReIhotdwih+7SiZiiDvfxVbe?=
 =?iso-8859-1?Q?v444KhR4PO2oTvVV1yWaUIzcLhA3lNFyCdOFAKKPGrB/z/Ea0U6SiQqgkv?=
 =?iso-8859-1?Q?fxfBbw6q2wrX54rNQtF7lbguwMnazoUqLwBzkA0g2LxqIavRG3NU+LitBK?=
 =?iso-8859-1?Q?ySAzUulGkx8j14/Zb2u47Rl6BA/LWwdPgA6zACXV68+aOYQhX10l/dGEPj?=
 =?iso-8859-1?Q?4sMfjgF47ZuN9aIamgQYqh0/Mp3iAHcR8G/I3Fmo2r1r+6apZEY6xm7Dtq?=
 =?iso-8859-1?Q?V+mRQkjnG0AgDOHe/MwaQDoWIs8Y4XzmXl4dAZVa/Z87GQo8FpztQKV5DC?=
 =?iso-8859-1?Q?KwYEB/rR0zDY3MQRmO1c9Cw7yz41l1L+EdVBXWfqdXeNKkLghehpcLbT2R?=
 =?iso-8859-1?Q?kGS2x394XLJwPhGTVrVCiRzJ8KFrX+Pa6UsE/HhHZbiwr8b05djRXN69dq?=
 =?iso-8859-1?Q?nbp5XNWIP1Jnuun6/1qUTYcfpya3?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?3fphoX39BAfJhq+lRjyrYtISAZMZmlXyvUwvEB4Y36/NVZ0+8+VLpxh26i?=
 =?iso-8859-1?Q?eWlk2LU5kn7HTX9Cms7wi3z6UUCdq09R5qTPRrVU9zQYyR6L2deM3nkYbF?=
 =?iso-8859-1?Q?QwnjX7Z9KRaSINbeYQ3v1rH2m0uLKBt/bsKteLmFe2u74ZvBQDENx8gNdm?=
 =?iso-8859-1?Q?BEaMiRxvk0pGVcBg0wYo3S07L4MZRffqwGySsjwoS6ppKDxP9MtpwBFmZm?=
 =?iso-8859-1?Q?ZVFUV5fV/GhRXN7eZRsNMcIpL33Z51qYJoWusPgd8nZnri18Ve4O8hLRha?=
 =?iso-8859-1?Q?IT5px3maVC7SYAi8rDTm3vlxy8CUZoLw8iHy+PkvqV7faNJM08EUh4JIUe?=
 =?iso-8859-1?Q?1QkT4LiVWklEc4idhCig47rgB+fEy7gxChEZwdCsrBrLXKbAXiuHFwhrnU?=
 =?iso-8859-1?Q?N6KXb6T7yDO+KnEQXilBs67vPTJSF+m2+KzcrAV57zLQQczYayXtaD6N1D?=
 =?iso-8859-1?Q?OkZSJMfEEZ0jlePX7MSKe6FuClBF6aganWoHnyAb5v4flRgKJmryz2xlBC?=
 =?iso-8859-1?Q?z6PpNHmWmU7//a5QFFMoIH+5EfDT5nUvtmfKHuSusN+IMb8AGsnWvh8En0?=
 =?iso-8859-1?Q?duk9HNh1D9rWOvJz0xQqcMC70nN5rMtHbrPeNWM2JoQk6yTGjXbgJJqUPT?=
 =?iso-8859-1?Q?4ZAqq29VK91lWQeGP+wH0j83nUGUfq9Z/oo0qrjvBi4YTzAoRdwJMketUy?=
 =?iso-8859-1?Q?pMw2DTma4YbL7D/YJr06eIHNOfAqhtU2CJhfShfmb9mnQv7arxC/wTiCJU?=
 =?iso-8859-1?Q?StV4zHfDZKQRSfsFhBPkp18jtHbIUeUE7W60PrOG+ndjMMQEHcQiFo+XO2?=
 =?iso-8859-1?Q?6tgGzXSr2gbUlVeQd/VCCEfQzQE0o18sfiQDBWxgUN/prIlQVeycxPPCsa?=
 =?iso-8859-1?Q?6aGujfvpp0vYBgzF4NcaNbzXeXZmwYFUZRbxM7c/S3HY56AVTIs7Vu4ecp?=
 =?iso-8859-1?Q?7dPiKlutPhZx8FJiZl0+AS6ZZKyK1ct91HiiIc9kTBHP4vJD91u55JRV+8?=
 =?iso-8859-1?Q?7Es4RDWqSDnLRwDY0eo0c2glDKB+6HN1RRqsTeyr5W+JXx60HrMbw47D0i?=
 =?iso-8859-1?Q?nnuEvMRrmTfzHv1YNoUuyK9EoRGYUUXncFg8v0j7ngU0mnkObXCjMIHJic?=
 =?iso-8859-1?Q?aHnTJATLeSQkube2S6qbSDKu6KekA7sX0Rvlp900JPRMwpKAH0DQsd9iAK?=
 =?iso-8859-1?Q?feV74Dox3oA/85hKLZPa0IGlq+Yl77Ha9HN9uC+WL2i9xArUHB4uaqtOme?=
 =?iso-8859-1?Q?rweX9B91qvXrIYDPntVhf9mZI+aVoiXMgmuxxE5PJpBtI1u1rETsuRPpjT?=
 =?iso-8859-1?Q?DNjErEbCKqQGzvSWpTCEvdsp3orDRjCv3a+hKqd3GtWJU67VbJJktfbCBa?=
 =?iso-8859-1?Q?b5OtfCTpnvOkIDM4umyuZiGQ9M4lRCgFASHU0FZgQGN+mXqrqJOWItC9A6?=
 =?iso-8859-1?Q?WGgfVOOg+wM2otQzmLwIvQIp9da9/GwmAcroRuSxuQjgZQf3ZH65R/UIAR?=
 =?iso-8859-1?Q?oIifWizq2mO5lZEj0+M4UxiccyIBGv/m59CLu9MSZt9vf0C7oJYIc+jLqM?=
 =?iso-8859-1?Q?aOf7N4aFkf+NXme7THPv0kQKGpZ5gFrbau/HgTKv5CGCfKdfTkGT8f/Hmr?=
 =?iso-8859-1?Q?UWj5aT2YhgCx1ybj//rzWG91gnT1GY8RuGtp61DKUT5Jo9xFzNXCU86w?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 923cdd2a-73f9-4477-df8d-08de193dc275
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Nov 2025 11:56:57.9276
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: sQTTJZ+91M+HdaKztKdUKBG/uR4gb/W0Cl/PE2s1LFnVdAEu5yt7t7xvlaZPExJTNn1Lx4GViuRnBsAucxFzr6s1M7/CM6gHdTNl1oNGF9k=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB7130

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 based on the ``xen,config`` node under ``chosen=
``
  (only one SCMI interface is supported), which describes the Xen managemen=
t
  agent SCMI interface.

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-sec=
ondary-agents"
  property where first item is "arm,smc-id", second - "arm,scmi-shmem" phan=
dle and third is
  optional "agent_id":

chosen {
  ranges;
  xen,config {
    ranges;
    scmi-secondary-agents =3D <
                  0x82000003 &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

    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 <0x82000002>; <--- 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
    };
  };
};

/{
    // Host SCMI OSPM channel - provided to the Dom0 as is if SCMI enabled =
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-specific p=
roperties under
the ``/chosen`` node to the Host Device Tree, leaving the main part unchang=
ed. The Host DT
SCMI channel will be passed to Dom0.

The Xen management agent is described as a ``scmi_xen`` node under the ``/c=
hosen`` node, which
is used by Xen to control other SCMI Agents in the system.

All secondary agents' configurations are provided in the ``scmi-secondary-a=
gents`` property with
an optional ``agent_id`` field.

The ``agent_id`` from the ``scmi-secondary-agents`` property is used to ide=
ntify 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,config {
    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 discove=
r the ``agent_id``
for each secondary agent. Providing the ``agent_id`` in the ``scmi-secondar=
y-agents`` property
allows skipping the discovery call, which is useful when the secondary agen=
t's shared memory is
not accessible by Xen or when boot time is important because it allows skip=
ping the agent
discovery procedure.

  Note that Xen is the only one entry in the system which need to know
  about SCMI multi-agent support.

- It implements the SCI subsystem interface required for configuring and
enabling SCMI functionality for Dom0/hwdom and Guest domains. To enable
SCMI functionality for domain it has to be configured with unique supported
SCMI Agent_id and use corresponding SCMI SMC 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:
 - pass dom0_scmi_agent_id=3D<agent_id> in Xen command line. if not provide=
d
   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 as=
signed 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 th=
e 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" provid=
er 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 de=
vices should be bound
to the Xen SCMI.

&i2c1 {
	access-controllers =3D <&scmi 0>;
};

The Dom0 and dom0less domains DT devices will be processed automatically th=
rough
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 on=
ly those which are behind IOMMU).

[1] https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/=
tree/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
[2] https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/=
tree/Documentation/devicetree/bindings/access-controllers/access-controller=
s.yaml

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

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                                 |   4 +
 SUPPORT.md                                  |  11 +
 docs/man/xl.cfg.5.pod.in                    |  13 +
 docs/misc/arm/device-tree/booting.txt       | 103 +++
 docs/misc/xen-command-line.pandoc           |  19 +-
 tools/libs/light/libxl_arm.c                |   4 +
 tools/libs/light/libxl_types.idl            |   4 +-
 tools/xl/xl_parse.c                         |  12 +
 xen/arch/arm/dom0less-build.c               |  11 +
 xen/arch/arm/domain_build.c                 |  26 +-
 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          | 115 +++
 xen/arch/arm/firmware/scmi-shmem.h          |  45 ++
 xen/arch/arm/firmware/scmi-smc-multiagent.c | 794 ++++++++++++++++++++
 xen/include/public/arch-arm.h               |   3 +
 17 files changed, 1338 insertions(+), 3 deletions(-)
 create mode 100644 xen/arch/arm/firmware/scmi-proto.h
 create mode 100644 xen/arch/arm/firmware/scmi-shmem.c
 create mode 100644 xen/arch/arm/firmware/scmi-shmem.h
 create mode 100644 xen/arch/arm/firmware/scmi-smc-multiagent.c

diff --git a/MAINTAINERS b/MAINTAINERS
index ecd3f40df8..4ad1d818a6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -532,6 +532,10 @@ R:	Oleksii Moisieiev <oleksii_moisieiev@epam.com>
 S:	Supported
 F:	xen/arch/arm/firmware/sci.c
 F:	xen/arch/arm/include/asm/firmware/sci.h
+F:	xen/arch/arm/firmware/scmi-smc-multiagent.c
+F:	xen/arch/arm/firmware/scmi-shmem.c
+F:	xen/arch/arm/firmware/scmi-shmem.h
+F:	xen/arch/arm/firmware/scmi-proto.h
=20
 SEABIOS UPSTREAM
 M:	Wei Liu <wl@xen.org>
diff --git a/SUPPORT.md b/SUPPORT.md
index 491f9ecd1b..7c8951d67b 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/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index ad1553c5e9..4fc3e12939 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -3156,8 +3156,21 @@ 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 [1..255].
+
 =3Dback
=20
 =3Dback
diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-t=
ree/booting.txt
index 977b428608..6fd7e4a16b 100644
--- a/docs/misc/arm/device-tree/booting.txt
+++ b/docs/misc/arm/device-tree/booting.txt
@@ -322,6 +322,20 @@ with the following properties:
     Should be used together with scmi-smc-passthrough Xen command line
     option.
=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..255].
+
 Under the "xen,domain" compatible node, one or more sub-nodes are present
 for the DomU kernel and ramdisk.
=20
@@ -824,3 +838,92 @@ 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/HVC transport using property "scmi-secondary-agents" placed in "xe=
n,config"
+node under "chosen" node:
+
+- 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.
+
+As an example:
+
+/{
+chosen {
+    xen,config {
+        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_shm_3: sram@47ff4000 {
+                compatible =3D "arm,scmi-shmem";
+                reg =3D <0x0 0x47ff4000 0x0 0x1000>;
+        };
+        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>;
+        };
+
+        scmi_xen: scmi {
+            compatible =3D "arm,scmi-smc";
+            arm,smc-id =3D <0x82000002>; <--- 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
+        };
+
+    };
+};
+
+- #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,config {
+        scmi-secondary-agents =3D <
+            0x82000003 &scmi_shm_1
+            0x82000004 &scmi_shm_2
+            0x82000005 &scmi_shm_3
+            0x82000006 &scmi_shm_4>;
+            #scmi-secondary-agents-cells =3D <2>;
+        };
+    };
+};
diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line=
.pandoc
index 34004ce282..5541c4a4ed 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -835,7 +835,7 @@ Specify the bit width of the DMA heap.
                 cpuid-faulting=3D<bool>, msr-relaxed=3D<bool>,
                 pf-fixup=3D<bool> ] (x86)
=20
-    =3D List of [ sve=3D<integer> ] (Arm64)
+    =3D List of [ sve=3D<integer>, sci-agent-id=3D<integer> ] (Arm)
=20
 Controls for how dom0 is constructed on x86 systems.
=20
@@ -923,6 +923,14 @@ Enables features on dom0 on Arm systems.
     option is provided with a positive non zero value, but the platform do=
esn't
     support SVE.
=20
+*   The `sci-agent-id` integer parameter enables ARM SCMI (System Control =
and
+    Management Interface) functionality for Dom0 when `CONFIG_SCMI_SMC_MA`=
 is
+    compiled in. This parameter specifies the SCMI agent ID for Dom0.
+    A value equal to 0xFF (or omitted) disables SCMI for Dom0, which is us=
eful
+    for thin Dom0 or dom0less use-cases. Values from 0 to 254 specify the =
SCMI
+    agent ID. The agent IDs of domains existing on a single host must be u=
nique.
+    Example: `dom0=3Dsci-agent-id=3D0` to enable SCMI with agent ID 0 for =
Dom0.
+
 ### dom0-cpuid
     =3D List of comma separated booleans
=20
@@ -1107,6 +1115,15 @@ affinities to prefer but be not limited to the speci=
fied node(s).
=20
 Pin dom0 vcpus to their respective pcpus
=20
+### scmi-smc-passthrough (ARM)
+> `=3D <boolean>`
+
+The option is available when `CONFIG_SCMI_SMC` is compiled in, and allows =
to
+enable SCMI SMC single agent interface for any, but only one guest domain,
+which serves as Driver domain. The SCMI will be disabled for Dom0/hwdom an=
d
+SCMI nodes removed from Dom0/hwdom device tree.
+(for example, thin Dom0 with Driver domain use-case).
+
 ### dtuart (ARM)
 > `=3D path [:options]`
=20
diff --git a/tools/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..0c389d25f9 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 || val > 255) {
+                fprintf(stderr, "An invalid ARM_SCI agent_id specified (%l=
u). Valid range [1..255]\n",
+                        val);
+                ret =3D ERROR_INVAL;
+                goto out;
+            }
+            arm_sci->agent_id =3D val;
+        }
+
         ptr =3D strtok(NULL, ",");
     }
=20
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 4181c10538..ddadc89148 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 > 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 fb8fbb1650..794ea1aa42 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -55,6 +55,10 @@ boolean_param("ext_regions", opt_ext_regions);
 static u64 __initdata dom0_mem;
 static bool __initdata dom0_mem_set;
=20
+/* SCMI agent ID for dom0, parsed from dom0=3Dsci-agent-id=3D<value> */
+#define SCMI_AGENT_ID_INVALID 0xFF
+static uint8_t __initdata opt_dom0_scmi_agent_id =3D SCMI_AGENT_ID_INVALID=
;
+
 static int __init parse_dom0_mem(const char *s)
 {
     dom0_mem_set =3D true;
@@ -83,6 +87,16 @@ int __init parse_arch_dom0_param(const char *s, const ch=
ar *e)
 #endif
     }
=20
+    if ( !parse_signed_integer("sci-agent-id", s, e, &val) )
+    {
+        if ( (val >=3D 0) && (val <=3D UINT8_MAX) )
+            opt_dom0_scmi_agent_id =3D val;
+        else
+            printk(XENLOG_INFO "'sci-agent-id=3D%lld' value out of range!\=
n", val);
+
+        return 0;
+    }
+
     return -EINVAL;
 }
=20
@@ -509,7 +523,8 @@ static int __init write_properties(struct domain *d, st=
ruct kernel_info *kinfo,
                  dt_property_name_is_equal(prop, "linux,uefi-mmap-start") =
||
                  dt_property_name_is_equal(prop, "linux,uefi-mmap-size") |=
|
                  dt_property_name_is_equal(prop, "linux,uefi-mmap-desc-siz=
e") ||
-                 dt_property_name_is_equal(prop, "linux,uefi-mmap-desc-ver=
"))
+                 dt_property_name_is_equal(prop, "linux,uefi-mmap-desc-ver=
") ||
+                 dt_property_name_is_equal(prop, "xen,config") )
                 continue;
=20
             if ( dt_property_name_is_equal(prop, "xen,dom0-bootargs") )
@@ -2067,6 +2082,15 @@ 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 specified in dom0=3D command line */
+    if ( opt_dom0_scmi_agent_id !=3D SCMI_AGENT_ID_INVALID )
+    {
+        dom0_cfg.arch.arm_sci_type =3D XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC_=
MA;
+        dom0_cfg.arch.arm_sci_agent_id =3D opt_dom0_scmi_agent_id;
+    }
+    else
+        dom0_cfg.arch.arm_sci_type =3D 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..c681e3c476
--- /dev/null
+++ b/xen/arch/arm/firmware/scmi-shmem.c
@@ -0,0 +1,115 @@
+/* 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
+ */
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/err.h>
+#include <xen/lib/io.h>
+#include <asm/io.h>
+
+#include "scmi-proto.h"
+#include "scmi-shmem.h"
+
+static inline int
+shmem_channel_is_free(const volatile struct scmi_shared_mem __iomem *shmem=
)
+{
+    return (readl(&shmem->channel_status) &
+            SCMI_SHMEM_CHAN_STAT_CHANNEL_FREE) ? 0 : -EBUSY;
+}
+
+int shmem_put_message(volatile struct scmi_shared_mem __iomem *shmem,
+                      scmi_msg_header_t *hdr, void *data, int len)
+{
+    int ret;
+
+    if ( (len + 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_is_free(shmem);
+    if ( ret )
+        return ret;
+
+    writel_relaxed(0x0, &shmem->channel_status);
+    /* Writing 0x0 right now, but "shmem"_FLAG_INTR_ENABLED can be set */
+    writel_relaxed(0x0, &shmem->flags);
+    writel_relaxed(sizeof(shmem->msg_header) + len, &shmem->length);
+    writel(pack_scmi_header(hdr), &shmem->msg_header);
+
+    if ( len > 0 && data )
+        __memcpy_toio(shmem->msg_payload, data, len);
+
+    return 0;
+}
+
+int shmem_get_response(const volatile struct scmi_shared_mem __iomem *shme=
m,
+                       scmi_msg_header_t *hdr, void *data, int len)
+{
+    int recv_len;
+    int ret;
+    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_is_free(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..7313cb6b26
--- /dev/null
+++ b/xen/arch/arm/firmware/scmi-shmem.h
@@ -0,0 +1,45 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Arm System Control and Management Interface definitions
+ * Version 3.0 (DEN0056C)
+ * Shared Memory based Transport
+ *
+ * Copyright (c) 2024 EPAM Systems
+ */
+
+#ifndef ARM_FIRMWARE_SCMI_SHMEM_H_
+#define ARM_FIRMWARE_SCMI_SHMEM_H_
+
+#include <xen/stdint.h>
+
+#define SCMI_SHMEM_CHAN_STAT_CHANNEL_FREE  BIT(0, UL)
+#define SCMI_SHMEM_CHAN_STAT_CHANNEL_ERROR BIT(1, UL)
+
+struct scmi_shared_mem {
+    uint32_t reserved;
+    uint32_t channel_status;
+    uint32_t reserved1[2];
+    uint32_t flags;
+    uint32_t length;
+    uint32_t msg_header;
+    uint8_t msg_payload[];
+};
+
+#define SCMI_SHMEM_MAPPED_SIZE PAGE_SIZE
+
+int shmem_put_message(volatile struct scmi_shared_mem __iomem *shmem,
+                      scmi_msg_header_t *hdr, void *data, int len);
+
+int shmem_get_response(const volatile struct scmi_shared_mem __iomem *shme=
m,
+                       scmi_msg_header_t *hdr, void *data, int len);
+#endif /* ARM_FIRMWARE_SCMI_SHMEM_H_ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/firmware/scmi-smc-multiagent.c b/xen/arch/arm/fir=
mware/scmi-smc-multiagent.c
new file mode 100644
index 0000000000..8e532798a6
--- /dev/null
+++ b/xen/arch/arm/firmware/scmi-smc-multiagent.c
@@ -0,0 +1,794 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * SCI SCMI multi-agent driver, using SMC/HVC shmem as transport.
+ *
+ * Oleksii Moisieiev <oleksii_moisieiev@epam.com>
+ * Copyright (c) 2025 EPAM Systems
+ */
+
+#include <xen/acpi.h>
+
+#include <xen/device_tree.h>
+#include <xen/init.h>
+#include <xen/iocap.h>
+#include <xen/err.h>
+#include <xen/libfdt/libfdt.h>
+#include <xen/param.h>
+#include <xen/sched.h>
+#include <xen/vmap.h>
+
+#include <asm/firmware/sci.h>
+#include <asm/smccc.h>
+
+#include "scmi-proto.h"
+#include "scmi-shmem.h"
+
+#define SCMI_AGENT_ID_INVALID 0xFF
+
+#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 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 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 && channel->shmem);
+    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;
+
+    list_for_each_entry_safe(curr, _curr, &scmi_data.channel_list, list)
+    {
+        list_del(&curr->list);
+        xfree(curr);
+    }
+}
+
+static int __init
+scmi_dt_read_hyp_channel_addr(struct dt_device_node *scmi_node, u64 *addr,
+                              u64 *size)
+{
+    struct dt_device_node *shmem_node;
+    const __be32 *prop;
+
+    prop =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 ( ac_spec->np !=3D scmi_data.dt_dev )
+        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_node_by_path("/chosen/xen,config");
+    if ( !config_node )
+    {
+        printk(XENLOG_WARNING "scmi: /chosen/xen,config node not found, no=
 agents to collect.\n");
+        return -ENOENT;
+    }
+
+    /* Check for the optional '#scmi-secondary-agents-cells' property. */
+    if ( dt_property_read_u32(config_node, "#scmi-secondary-agents-cells",
+                              &cells_per_entry) )
+    {
+        if ( cells_per_entry !=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) )
+        {
+            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: dom0=3Dsci-agent-id=3D<value> in Xen command line
+     * - For dom0less: xen,sci-agent-id in device tree
+     * 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 + PAGE_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 0;
+
+    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) )
+        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);
+
+    INIT_LIST_HEAD(&scmi_data.channel_list);
+    spin_lock_init(&scmi_data.channel_list_lock);
+
+    if ( !acpi_disabled )
+    {
+        printk(XENLOG_WARNING "scmi: is not supported when using ACPI\n");
+        return -EINVAL;
+    }
+
+    ret =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;
+
+    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) )
+        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);
+        return ret;
+    }
+
+    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_PATH("/chosen/xen,config/scmi"),
+    { /* 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 095b1a23e3..30e46de6d7 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -329,6 +329,7 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
=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 Sat Nov 01 11:57:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 01 Nov 2025 11:57:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1154892.1484534 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAEC-0002EV-Ot; Sat, 01 Nov 2025 11:57:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1154892.1484534; Sat, 01 Nov 2025 11:57: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 1vFAEC-0002Dc-K6; Sat, 01 Nov 2025 11:57:04 +0000
Received: by outflank-mailman (input) for mailman id 1154892;
 Sat, 01 Nov 2025 11:57: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=rLmn=5J=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1vFAEB-0002Ar-GQ
 for xen-devel@lists.xenproject.org; Sat, 01 Nov 2025 11:57:03 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e03494b5-b719-11f0-980a-7dc792cee155;
 Sat, 01 Nov 2025 12:57:01 +0100 (CET)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by AM9PR03MB7297.eurprd03.prod.outlook.com (2603:10a6:20b:268::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.15; Sat, 1 Nov
 2025 11:56:55 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%5]) with mapi id 15.20.9275.013; Sat, 1 Nov 2025
 11:56: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: e03494b5-b719-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=b/D6z+iBLwAPMdmENmpKI71HEkX0lPSfRwspuL8apFUigXrU6Qu4wm5ftf3wxUDQX+PUQJqFAtUeWY74/5fwj2+ojt/fEj7K9X4wqvR/dIhJL7liyEgyNLtfiE0YG5c+esv+oZMswB/530Z79vuCXf8T5Rz8kE4L2EwiBJJsru+pMaJbGpAc1ESdVQ1FPmveS3baKvnO1HvlVyG+er4BIRB8OewBCMnX/TZEWBADoBiTvN++uRj+CSa/lQvgG+D4UlA79VlWyjW1VB9n3pjGY82c/Fy40YXa/mDbA7JHGNajh4wygPwNua+g1KM3EzERgkxm5EWQhckmeb6vqKox9Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=v6EcK1VWBBRi1b3e/lovbXBmnfONGoWiHfaVA7kccdM=;
 b=LOBftpDJL1fojTw6YoNtsjDGneNn+h5CLMZ4R7gSTPlu2GvbPA9HTmloiv4YOj54kRkZjl/eiXj1xWIA/6ggNUaF9J31OTODT2rWsnVz/rkpmd34HsIxnexlEHtsKkw4IfLXB0lCSpXs1AjeYmizRDhoJdgTKhp541A7iOa+HTr91pwXxUbi0OnCz5GWvGJvhHZvCSkmJLubZIzjSTaxBOkqDj4vHW9Pbaf4F7xBLfQl3c1Gqan0lrWJNSVTg6IszG/TV2SZ7WkGuslHWikV3fGCNZDc9KGNfWLo7KdScNSEbGH0WnVqvLRdWaayQmL9tlJ7NtEqVdHFASTUdxGA0A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=v6EcK1VWBBRi1b3e/lovbXBmnfONGoWiHfaVA7kccdM=;
 b=gqcgtTzzASLcVWGzLLMbGkFgApuj3aCq3TUatsWWeiJrCbUb3Zd1Ma4e3EIvlFR/gVewAMQtkSrWkk7RTYS8Q/ozxibLk6TQeL1ew/MqSStUZEeaVJ8UxM+K/YhLbvyncta/ScJqhERr9dmrHcTmH+0gtbab7L63FnpoGFEyj0cHp9nYNMC6HNKW/WjcmPoOOc0OOfoaU10sOGt4oBjnSMoSUCJy8FxY3A+NAuOHpyWW+82nfrqdAcLk75hQOMidSFA6xKCa6wLfa9mi//IuTUdWOCeOgd8mjpOzvwi6cidiLrz345NZDMX0uSi02voGQWRKcuiFs6RGC4tP420qVg==
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>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
Subject: [PATCH v6 0/5] xen/arm: scmi: introduce SCI SCMI SMC multi-agent
 support
Thread-Topic: [PATCH v6 0/5] xen/arm: scmi: introduce SCI SCMI SMC multi-agent
 support
Thread-Index: AQHcSyaej3MdbzIHW0yl8V/tuA4r3g==
Date: Sat, 1 Nov 2025 11:56:55 +0000
Message-ID: <cover.1761998077.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_|AM9PR03MB7297:EE_
x-ms-office365-filtering-correlation-id: d8360ca3-fa3a-4c98-9bca-08de193dc11e
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:
 =?iso-8859-1?Q?CSwtQqOvuvsJXAySMhwxTaKQ/M4FBXfFZvZzucBpDALkzn+EfBHXYwZB7s?=
 =?iso-8859-1?Q?Tivgb34i7BRHVbtebMZFlcR3PjPJ2xoDtvFcOYA5tQerdwKV2rvpjR1me7?=
 =?iso-8859-1?Q?7P0S28ZhrSa+Ax/ArjqWbSDPB+EM+xWkR1gf5V6gOU3gQGDJDkATAc5v5c?=
 =?iso-8859-1?Q?Q3pSXwbXZJNnSZjORKqmw1Cb0cCLAvE879v3eoC4FSrMM9Rrxm4fyLZh4Q?=
 =?iso-8859-1?Q?TfZdhBjuQ7fjD7gH3kbtlEd7Oco6rH6WfSHoxbYFgPBi+z+f9/70ExUdtS?=
 =?iso-8859-1?Q?NztHsA7IFVrjmJCGIpQMKdxnNpuyKxX+fHsVVv7Y0oGGnBHek81rnxQXLi?=
 =?iso-8859-1?Q?P2YPFx+rwart0oJOMdsDpZZOD4FaZwLc1h7MPZCEMp23TH36zjinDjhWOs?=
 =?iso-8859-1?Q?py2kpaNcWX5DGHjA5OEdF+7JI7dZZ1rhup1eHOK4t2peO22duQxCKptA/E?=
 =?iso-8859-1?Q?9AKW48XSEHW6RPAvIcRPvYE5hjd+Quv2Obmp3qgEZSwZPDNc7xs9Fc0+73?=
 =?iso-8859-1?Q?4MUpHSdwLZZe53PNO3YxVjNDxCXIYlclwo/1HliO7+bG9AjOSeNwQiugKX?=
 =?iso-8859-1?Q?cnFkIvysOHeZzCf2MtA9z5thWHucTpIRvlVkyk0uIe7yyvO0PuctFkR2KX?=
 =?iso-8859-1?Q?mnRFhl6yP+rLLAY4lFgvf/qJI7AhqGpcVzHuzb8OnTXNpjrTcFsW2rGpAg?=
 =?iso-8859-1?Q?hZkrF2078TsaimHnXKnEJI/xSbIBv5PrIZz5ofgdAY40Ls4y73/ftR9FSs?=
 =?iso-8859-1?Q?jPBxsgFfKOCl6EEjIoMi3nwjUW92L0Lal/Tu5BnY0/Ely00qeDdjza8/rq?=
 =?iso-8859-1?Q?LccpNrf68gDcusgdVDCWFPH8n0w7DLtbgh7eesboZj5aDSwEmuQ9+mabyW?=
 =?iso-8859-1?Q?XPgraW29ZJykjYORpa6kvsFA3+Qa07IcwiCANxhE0gu2hXi9vr5SsCBmn8?=
 =?iso-8859-1?Q?JBzAqwQQ4L/g8mE1cprIYzoTdgKu0ZpspMwEqGTVPRhz8xW/yDE77GoVl/?=
 =?iso-8859-1?Q?SCV9nEAgEIdkMra8QexeX4fonFf7qDDu1NYgjIyNXHM1GidI0M8QH7WAWf?=
 =?iso-8859-1?Q?XfvXaqVtLO5kJCHsntBfvv9lR3Xn3Qc0Kq062PtVCLopvRWk12xajkaDL6?=
 =?iso-8859-1?Q?+5HYtNFQs4ZirCVQ/9/7460+6pEycf9bIJ1s/nMe/1Is89E/yrAd8Wvouh?=
 =?iso-8859-1?Q?zYM2fKrgOgLyFbTkdCPJ5f0OxxsRNnjpi+eJK5h6SfWvaBmmq4Pjy/4Xp0?=
 =?iso-8859-1?Q?2R2Au4XdbCX+AHlE6KR4MriAFmDLYGQYrSTIKL+6i/ULWlJt11OS8SsgBB?=
 =?iso-8859-1?Q?v3RUH7SSnyXAiKK7ZhAW4N9GhvF/ksB2HLL9opozJAoIZGtOXJzNPqbstl?=
 =?iso-8859-1?Q?hrJao6gH/FOpT8iU9riX5mvlwLwH4ESRjR0KZb0w5Zo1zrHzs4QFmgUunW?=
 =?iso-8859-1?Q?RJtntQHmib7m/XimkTbCEm/vRHCuCbVlUQSA8X1LKy9KbPevbhRRR8XirV?=
 =?iso-8859-1?Q?e0uYm4g6sDaYAaCPxJt2+TXvojMUk2+gJZSY5719gJ2AYSFT997NrN5gHk?=
 =?iso-8859-1?Q?LzdADPxoe5cTAl16heKGkVFqQnzP?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?emHAEQeRyOYvTTZCtag9ElWs9BlV4S7Y7SDpLbgJ4TnP2/0soupRvuUUAu?=
 =?iso-8859-1?Q?wI6hyKuYaXwHAb6C2Va26RTJUE2VbYcgA6kTMlBkuKpndNcZlr8W6xNtQl?=
 =?iso-8859-1?Q?2WN6bGeR9CdGTGIQk8E4pOvbCRphtAiuAL5SCk7cOWFymecJXkLkdCIup2?=
 =?iso-8859-1?Q?QNeR4Xf5qYrUoqE3b3e3wh8YHQsKOs9Vx2PCaR0guzaPmSCGuYRsWfMxiw?=
 =?iso-8859-1?Q?8PUhp9oeRzJiomlueeDIGhpTnVK93QvEQNV2QAu5iun2dz+SCML0+/PqjU?=
 =?iso-8859-1?Q?8gj9VqLtv0fIEHRBDedGbLJPDNDdk2ksvnPsWzA/8fh2YwFD8RseuTu4mW?=
 =?iso-8859-1?Q?M4c//nh/HBffXihgz0ZkvZnVwTTqGgXitGdp7pEpCsi847ATcqcxTlwbw9?=
 =?iso-8859-1?Q?GCL1+mRRBcpTq6nXYqSnNvj0xuf5xwzUpadzDv+nyZ1ynIhpirOGTGEKNu?=
 =?iso-8859-1?Q?UCnYF7lxsAHFwu5+6hfameJQ2YzpEEG8JPgaUWj7qbznWmUQhiL3+4WYNp?=
 =?iso-8859-1?Q?IDxX4oj6nwcaggdZkFb92WqqwbSkjG+NE7ZMYMF8iauZBAA8UsEmcUqSr0?=
 =?iso-8859-1?Q?n7QSuIqjxMMviEiHg84piQziOLvRhSiWazjMS6/tAjfu8/qzGuVxeS2DIE?=
 =?iso-8859-1?Q?5Q/a/R606h9KU8lizqBOCZ+33jUkBujlSb9lOZRqyM4S/3vFS0quugmkgp?=
 =?iso-8859-1?Q?59rdPHl5cvtUrXhZwooYyXKvC56iEgixahdTfx/mgTGVCE5L8+RcJGj1DG?=
 =?iso-8859-1?Q?SJOvgs8YVMAEShjAfSuZjKIPyRmrF/fvvDoW/ywnGOY+RBhwRKtw7CU05o?=
 =?iso-8859-1?Q?wi17laRFpkogIkCtiuAXprUnRHRJmkGMwvbmOwnl889mwYt0By89Y3crWS?=
 =?iso-8859-1?Q?jjl0cp6t9zvFjzvGjTAtN3fXBVrf2EADXF5G2Wp41KJzE4lUVy5bv46o6p?=
 =?iso-8859-1?Q?pk1mybZ/3hNIOO4kwCenNpwRkBtRAzVrzzwdm+lwg+GSWPX/+3vU13lLkX?=
 =?iso-8859-1?Q?mB0S1BcK34LaMKYh2FtBDJFujQkO4HmuBx1kuKtTkZFayX6Nl48o8m79ZQ?=
 =?iso-8859-1?Q?YHBYS+WIeUiGz1mN11HRfc1SZPHjJ2TORnuugoHaV/8KCelAN5llqXgANX?=
 =?iso-8859-1?Q?nhS+06sSC8VFfpUwpevYk5N1trlS50vOAAuDplEXvuUh6OOPyPBZ8gNngJ?=
 =?iso-8859-1?Q?SUKbcFNkp8SAPyvPA4rvjDYXOXQcnBV26qzjkEK9SU0l2tNtc6ul6Prhd0?=
 =?iso-8859-1?Q?Q8hvvpYy+3wdbySsXCdLj+8T8T0ut9MIDoGVDsNNhd9tj4LHG00FfFJGl2?=
 =?iso-8859-1?Q?9BkTgsE5mI3pXgurm4xnNFYBSyIWIpWFLWrDoOh5Jzmyllpz+dh+75eiQm?=
 =?iso-8859-1?Q?YlTce/zROQS7Mx2cZCDMVlUeBhDPhOUOcGc8PT1Cps9MoKHeCnbrKjJai0?=
 =?iso-8859-1?Q?gVx1FGE23n5iBzx+Go38vTRkM81cqUJl66gtZCOPWDrkUImqnnlNg4DY75?=
 =?iso-8859-1?Q?V4lQ7NBenfY2mVqOIPjMSg3Xa9xn8iyNzh6bzMBKMg9Kh/To6x6Iz+vZjQ?=
 =?iso-8859-1?Q?Or/yOO9Y8Y+L1kQJ6bo62FA7leQK7eaj9ma2WOxTkX/a/x5t8jiqAQYlNP?=
 =?iso-8859-1?Q?piH6BudtV+wymbtA1CWkVwzhfFwiY/8aLAcJp3f79NszmtJqTHUKtQMw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d8360ca3-fa3a-4c98-9bca-08de193dc11e
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Nov 2025 11:56:55.6269
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: GP0agEoatQKSqL/ZrA0c3iTIJsZ1vBsgbRzYxmvmLl0L42l1+ig8x5Gu0bfnqGN1GHf/A3QODhgIknMdZbQ/OBXv2DE+WZk7gB2s6bGBqGU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7297

Inroducing patch series which includes implementation of the SCI SCMI
SMC multi-agent support.
This patch series follows RFC v5 [3] series which was introducing both
SCMI single-agent and multi-agent support. After the discussion it was
decided to split features and upstream singe-agent support first. This
feature is merged for now to v4.21-rc2.
I'm starting this patch series from v6 to save the discussion history
and don't break changes log.

Patch 0 - xen/domctl: extend XEN_DOMCTL_assign_device to handle not
only iommu
- add chainged handling of assigned DT devices to support
access-controller functionality through SCI framework.
Change was done in two parts:
 - update iommu_do_dt_domctl() to check for dt_device_is_protected()
 and not fail if DT device is not protected by IOMMU
 -add chained call to sci_do_domctl() to do_domctl()

Patch 3 - xen/arm: scmi: introduce SCI SCMI SMC multi-agent driver
- added "scmi-secondary-agents" and "#scmi-secondary-agent-cells"
  property to "xen,config" node in "chosen" to inform SCI SCMI
  multi-agent driver about available agents and their
  configuration. It defines <agent_id> to <smc-id,scmi_shm> map.
  This option is Xen specific as Xen is the only one entry in the
  system which need to know about SCMI multi-agent support and configuratio=
n.
- each guest using SCMI should be configured with SCMI agent_id, so SCMI
  FW can implement Agent-specific permission policy.
  -- dom0: dom0_scmi_agent_id=3D<agent_id> in Xen command line option
  -- toolstack: arm_sci =3D "type=3Dscmi_smc_multiagent,agent_id=3D<agent_i=
d>"
  -- dom0less: "xen,sci_type", "xen,sci_agent_id" properties in
"xen,domain" nodes.
- factored out SCMI generic definitions (re-usable)
- factored out SCMI shmem code (re-usable)
- the SCMI passthrough configuration for guest domains is similar to any ot=
her
HW passthrough cfg.

Patch 4 - docs: arm: add SCI SCMI SMC multi-agent driver docs
- add SCI SCMI SMC multi-agent driver documentation.

Add separate SCMI DT node for Xen management agent under "xen,config"
node under chosen.

All Xen-specific configuration provided under "/chosen" node. This
approach allows to isolate modifications to Host DT only under
"/chosen" node.

This approach provides the following device tree (DT)
parameters (placed under xen,config node):

- "scmi-secondary-agents": A Xen-specific parameter under the
  "/chosen" node, which describes the SCMI agent configuration for
  the domains.
- the SCMI configuration for Xen (privileged agent) and the shared
  memory configuration for all agents are provided under the "/chosen"
  node and are used strictly by Xen for its initial configuration.
- the scmi_shm and SCMI configuration for Dom0 are placed in the
  "/firmware/scmi" node so that they can be moved to Dom0 without
  any changes.

This configuration allows the use of Xen-specific nodes to provide
information strictly needed by Xen while using the default SCMI
configuration for Dom0 and other domains. As a result, no additional
bindings need to be introduced to the device tree.
This simplifies the Xen SCMI multi-agent configuration and utilizes
generic device tree bindings for the domains.

Code can be found at:
https://github.com/oleksiimoisieiev/xen/tree/scmi_ma_upstrv6

[1] RFC v2:
http://patchwork.kernel.org/project/xen-devel/cover/cover.1644341635.git.ol=
eksii_moisieiev@epam.com/
[2] RFC v3:
https://patchwork.kernel.org/project/xen-devel/patch/20250311111618.1850927=
-1-grygorii_strashko@epam.com
[3] RFC v5:
https://lore.kernel.org/xen-devel/cover.1753184487.git.oleksii_moisieiev@ep=
am.com/
[4] SCMI single-agent:
https://lore.kernel.org/xen-devel/cover.1756995595.git.oleksii_moisieiev@ep=
am.com/
SCMI spec:
https://developer.arm.com/documentation/den0056/e/?lang=3Den

SCMI bindings:
https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree=
/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree=
/Documentation/devicetree/bindings/access-controllers/access-controllers.ya=
ml

Reference EL3 FW:
RPI5: https://github.com/xen-troops/arm-trusted-firmware/commits/rpi5_dev/
Renesas v4h:
https://github.com/GrygiriiS/arm-trusted-firmware/commits/rcar_gen4_v2.7_v4=
x-scmi_upd/

base-commit: dbe60f244c (Update Xen to 4.21, 2025-02-21)

Changes in v6:
- change iommu_do_domctl and sci_do_domctl command order and
call sci_do_domctl first which will produce cleaner code path.
Also dropped changing return code when iommu was disabled in
iommu_do_domctl.
- sorted objs in Makefile alhabetically
- added newline at the end of Makefile
- used uint{N}_t intead of u{N}
- add comment about why 32 bit IO operations were used
- updated cast opertaions to avoid dropping constness which is wrong
- move function definitions to generic place so the could be reused by
other arch
- add SPDX tag to io.c
- updated scmi-shmem to use io.h from generic location
- update scmi_agent_id parameter to be provided inside dom0=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.
- remove all HVC mentions from the multi-agent doc
- update sci-agent-id parameter description in the documentation
- add missing Sign-of
- minor fixes across the document

Changes in v5:
- return -EINVAL if mediator without assign_dt_device was provided
- invert return code check for iommu_do_domctl in
XEN_DOMCTL_assign_device domctl processing to make cleaner code
- change -ENOTSUPP error code to -ENXIO in sci_do_domctl
- handle -ENXIO return comde of iommu_do_domctl
- leave !dt_device_is_protected check in iommu_do_dt_domctl to make
code work the same way it's done in "handle_device" call while
creating hwdom(dom0) and "handle_passthrough_prop" call for dom0less
creation
- drop return check from sci_assign_dt_device call as not needed
- do not return EINVAL when addign_dt_device is not set. That is
because this callback is optional and not implemented in single-agent drive=
r
- move memcpy_toio/fromio to the generic place
- fix device-tree example format in booting.txt, added ";" after "}".
- update define in scmi-proto.h
- update define in scmi-shmem.h file
- scmi_assign_device - do not ignore -EOPNOTSUPP return
code of the do_smc_xfer
- remove overwriting agent_channel->agent_id after
SCMI_BASE_DISCOVER_AGENT call
- add multi-agent files to the MAINTAINERS
- add SCMI multi-agent description to the SUPPORT.md
- handle ARM_SMCCC_INVALID_PARAMETER return code and return -EINVAL
for smc call
- updated collect_agents function. Set agent_id parameter as optional
in scmi-secondary-agents device-tree property
- introduce "#scmi-secondary-agents-cells" parameter to set if
agent_id was provided
- reanme xen,scmi-secondary-agents property to scmi-secondary-agents
- move memcpu_toio/fromio for the generic place
- update Xen to get management channel from /chosen/xen,config node
- get hypervisor channnel from node instead of using hardcoded
- update handling scmi and shmem nodes for the domain
- Set multi-agent driver to support only Arm64
- rework multi-agent driver to leave Host Device-tree unmodified

Changes in v4:
- toolstack comments from Anthony PERARD
- added dom0less support
- added doc for "xen,scmi-secondary-agents"

Grygorii Strashko (2):
  xen/domctl: extend XEN_DOMCTL_assign_device to handle not only iommu
  docs: arm: add SCI SCMI SMC multi-agent driver docs

Oleksii Moisieiev (3):
  xen: arm: smccc: add INVALID_PARAMETER error code
  lib/arm: Add I/O memory copy helpers
  xen/arm: scmi: introduce SCI SCMI SMC multi-agent driver

 MAINTAINERS                                   |   4 +
 SUPPORT.md                                    |  11 +
 .../arm/firmware/arm-scmi.rst                 | 341 ++++++++
 docs/man/xl.cfg.5.pod.in                      |  13 +
 docs/misc/arm/device-tree/booting.txt         | 103 +++
 docs/misc/xen-command-line.pandoc             |  19 +-
 tools/libs/light/libxl_arm.c                  |   4 +
 tools/libs/light/libxl_types.idl              |   4 +-
 tools/xl/xl_parse.c                           |  12 +
 xen/arch/arm/dom0less-build.c                 |  11 +
 xen/arch/arm/domain_build.c                   |  26 +-
 xen/arch/arm/firmware/Kconfig                 |  12 +
 xen/arch/arm/firmware/Makefile                |   1 +
 xen/arch/arm/firmware/sci.c                   |  35 +
 xen/arch/arm/firmware/scmi-proto.h            | 164 ++++
 xen/arch/arm/firmware/scmi-shmem.c            | 115 +++
 xen/arch/arm/firmware/scmi-shmem.h            |  45 +
 xen/arch/arm/firmware/scmi-smc-multiagent.c   | 794 ++++++++++++++++++
 xen/arch/arm/include/asm/firmware/sci.h       |  14 +
 xen/arch/arm/include/asm/smccc.h              |   1 +
 xen/common/domctl.c                           |  26 +
 xen/drivers/passthrough/device_tree.c         |   6 +
 xen/include/public/arch-arm.h                 |   3 +
 xen/include/xen/lib/io.h                      |  83 ++
 xen/lib/Makefile                              |   1 +
 xen/lib/arm/Makefile                          |   1 +
 xen/lib/arm/io.c                              | 102 +++
 27 files changed, 1948 insertions(+), 3 deletions(-)
 create mode 100644 xen/arch/arm/firmware/scmi-proto.h
 create mode 100644 xen/arch/arm/firmware/scmi-shmem.c
 create mode 100644 xen/arch/arm/firmware/scmi-shmem.h
 create mode 100644 xen/arch/arm/firmware/scmi-smc-multiagent.c
 create mode 100644 xen/include/xen/lib/io.h
 create mode 100644 xen/lib/arm/Makefile
 create mode 100644 xen/lib/arm/io.c

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Sat Nov 01 11:57:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 01 Nov 2025 11:57:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1154891.1484529 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAEC-0002B9-G8; Sat, 01 Nov 2025 11:57:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1154891.1484529; Sat, 01 Nov 2025 11:57: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 1vFAEC-0002B2-CT; Sat, 01 Nov 2025 11:57:04 +0000
Received: by outflank-mailman (input) for mailman id 1154891;
 Sat, 01 Nov 2025 11:57: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=rLmn=5J=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1vFAEA-0002Ar-Qi
 for xen-devel@lists.xenproject.org; Sat, 01 Nov 2025 11:57:03 +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 df81880c-b719-11f0-980a-7dc792cee155;
 Sat, 01 Nov 2025 12:57:00 +0100 (CET)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by DBBPR03MB7130.eurprd03.prod.outlook.com (2603:10a6:10:20e::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.16; Sat, 1 Nov
 2025 11:56:57 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%5]) with mapi id 15.20.9275.013; Sat, 1 Nov 2025
 11:56: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: df81880c-b719-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=l/DfiffdbKObjs4etChOzVJKvrCIeyB0WwYaBI9w1ZG2xQZhsudFDPWR27U2CVC8GO+y02EHA2KNg7XctyLl8qB1DPTE9cgiReyE0HL/0zMyC2g0SQ+gidmHNXCHpWUxzIWjU5Oaquk6dMgyuYKlkEfNdNwenvnGjAyp7m3BNjpuwfBAdgum/SvXLlukUMEbWViKkslPy1aK1YnyneBqx4UGJfD9dnq2cykYZh8amK1dUDZzHsNLgOnxDcQR7v36+SUui0jYb0kzhNZmSXNaokATqb2vVhPU9Ujqmb6UgcRzxPpe1eO8VXYEUud9CDNxJe629kqz+lJbhAPUtJ6LNw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cT/yEXmI45eBiggl8I8upOczw/AqEfdB0lot1gsx/GM=;
 b=C9YU1UFeFyW6Pm9bRw1tATjNWqvmB4IqlJtjfy1FwLIW+ESuCBesI3ZI/Ba/phKqyoDx/3jb/mgHMybQGfBNivecgydy2ElQ/o737iKcG+nBCrIScy4hfU1L6nN7nYA3eNkGGWB7AFFYXtuN9TNMSSp3UnFj336656M51F8SIRpLsMy5auxIA5bWnrztCxCJra03gC1gZ9w2tDv2o0a+Cnh8rA0qXqb4DomL80BI5a4E+sGVGmlzgDhygkZ+XaPJsPFduUmVf7xBoMtawyWL2RA/ecRMTjEHEqaKpy7asgPDrwfqc9+lrLVZyr7JoZIsEukt2tut0iKmqthWxetegg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cT/yEXmI45eBiggl8I8upOczw/AqEfdB0lot1gsx/GM=;
 b=ekTXNkd7WjEEVhHfCcc0zaOXl+4Le3/lm4N04ACxF0gjBeRjV7jpR8fenRRuyfeemGpvm3RysvekUlCR7MYYKewKR3IbPUTgoBXTHrsQT6ZW1sNxvqKgcPsdkFMcl7L6izgejOKEVo+csP7weDse09aZsh+CchJg+Se3+J1dQtUHl1hQ+wWZvjrgkqU4Z5IT/W554psb6My49BNV+/lKFt4tkQRfzpK+UKONqT0RSf9X6t2YHU9PDL4aXpZrGvx5W73rgL5LKc7hohBkVZgyqaBdkCUXH0NGejnYJN3Cd4wuQHaF5UZdOe/jrOIFnxQ058EiqzDjuxixf8Dy9JbDsg==
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>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
Subject: [PATCH v6 3/5] lib/arm: Add I/O memory copy helpers
Thread-Topic: [PATCH v6 3/5] lib/arm: Add I/O memory copy helpers
Thread-Index: AQHcSyafwNcBoMRdYEm2n7tK7o4JtQ==
Date: Sat, 1 Nov 2025 11:56:57 +0000
Message-ID:
 <33372689f3097b0dde1d47b81a1bb8176b35d20c.1761998077.git.oleksii_moisieiev@epam.com>
References: <cover.1761998077.git.oleksii_moisieiev@epam.com>
In-Reply-To: <cover.1761998077.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_|DBBPR03MB7130:EE_
x-ms-office365-filtering-correlation-id: fafdac47-cdc8-4cdd-084d-08de193dc220
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|7416014|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?ycyjRMQses7+NDsdmDGv0AxCz0UuFMlbivqEL73pyo5D0K3581wE2qF65s?=
 =?iso-8859-1?Q?7vUbiM0RS9XPaytNYfTQhhk4g9hdnzEGxYzaVhhoNgQRpaTEYC0rHo3OBX?=
 =?iso-8859-1?Q?lCYXHN7yFZBjc7QUTNTkwPohttUs1sPsXV7EOQ4mKrZEeufpJwuid4nnls?=
 =?iso-8859-1?Q?MphyK27WDJWq6Z+a8QN1LwyQ1IrhG1trxpEkM5lsIQ4pA74pFrzztWRjxz?=
 =?iso-8859-1?Q?keNvzKNjvXbeSMMANK1dnmpRmitG0qb5VOKCjZDeWha2YpJDZ0MH3iHNNO?=
 =?iso-8859-1?Q?2yDFesFqxIM3xBlF99flEGrSlZo0o/CXXM6Dm3gs4SAzjMVBAkeRPpaIwx?=
 =?iso-8859-1?Q?MeKiBe9gW12fXpFMqyRbtvY+wD7Xu5gOzuNvAph8j8dnXUyRw2c8L+18r8?=
 =?iso-8859-1?Q?yRXUBDWNYlWf/FgSPbTwa8XZm96L/PvwPolZLKAgMNPls86SaweWJODNVe?=
 =?iso-8859-1?Q?of27kNGwxIAtKw3KfX+bAsyb+Dc/gYZvmgTOfZZfYW0gLjrh0SoTpSxprJ?=
 =?iso-8859-1?Q?XWj7Rlq4DREk2rON3qk4jFiYNA0z+NQoZ1orI+WIvqcLGnBYMCdI+pjYT7?=
 =?iso-8859-1?Q?MVc8uH9SCbY7LzsSvPXrekbnRDXCmaob491e9Xjo4KAmMJaG0grzf9sVL9?=
 =?iso-8859-1?Q?ON5MXCCw8ZqnI8UBH6ltykE9l8CBVB2BYtEaOi/ARxWITE71S2nou0UZx+?=
 =?iso-8859-1?Q?E/E8nLo9wZ7HpOej7+cKm++f0G1zRHld7uOnCo7s74Z1+Uhv0+nTIxtDpk?=
 =?iso-8859-1?Q?ykVlKyiogf7278xls0JUMxhUmH/T1cvhP1peyGHMUb/m+XhYHE6Tp4kAm9?=
 =?iso-8859-1?Q?bl37LjJuXtoXlzF+5MTzPuJrSyY9XHSwMWFXvHJjEb6wY56QepTfo367fi?=
 =?iso-8859-1?Q?1jPot9tWBUVqbShSH6GTlHrkfHAQC6dl0H1282Hb5izzBpiNlBfAVAcqu4?=
 =?iso-8859-1?Q?TqaDw3Lonlf3jbcGW7JHAmaGPdcgOO3t6GL4uarA1azn9NdD3Kkb3FwGdO?=
 =?iso-8859-1?Q?/JmAxqJiHVLowjQJxLBl70Zl1Kd768D4/DlQaDaUnfNMWAndLbksUF104w?=
 =?iso-8859-1?Q?xPPjV1mAL+gNVjmR4uCmITg8WBFxdHdBhpCRgwga7lFE11CE7Jdj8b6V2W?=
 =?iso-8859-1?Q?RSUV5sTwEi0EhsiRYqz3YnUCDujilctzScRAfhJblbiLXV/7ewrRchvfe4?=
 =?iso-8859-1?Q?b32Etll5x/wtN9zHlwhjI0ns2C/pH+HusUSdk0uNGVWnZKOw37QVuAEpx/?=
 =?iso-8859-1?Q?klNKMHYtktbj80i+I3VrIHzVG0feDpFeE/6S6ArgZefczowpO9QEyHAVGi?=
 =?iso-8859-1?Q?UolzfxJgLh5aLngi3TUQJanjlbgKXhOmGtP7LzfxXIg3Sbr9zYR535A0T1?=
 =?iso-8859-1?Q?x/Z1Xh7w5rqIrA+VtITB9F/LFekA+bWnHJVZ1jgdsYEqYHCRpfXMMXLB08?=
 =?iso-8859-1?Q?Ey/nhNtFrtc80UZXnTslZiY6fKFtFnQZ4wmmmOmJjLM8xK1jTCrnp/0V6F?=
 =?iso-8859-1?Q?6lEnUjzKMzWJmOOl6WgypfDfeYkr3oezkAUAmBpuE+lU2QZlTUJTBlVDUP?=
 =?iso-8859-1?Q?9XYz21JE0iwZQpE5YT7+Ltk5bCpt?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?MWSHB+Gy3u+21RQ8N6BPGKmQtjTL8VKzsT6S2WCPCZwxJELO1wFUyM5bwh?=
 =?iso-8859-1?Q?yh8dXqn8+rpkPwNuCCpepJWRQccXUw6aRX2RhN6dRlf06lAfyUr/hhoLpE?=
 =?iso-8859-1?Q?GqI0pdAGOmNd5W+WF8lGyPkKcWFBhfubwvjfeig0Z21kdGnyaLsdTdt8bK?=
 =?iso-8859-1?Q?mTotHMjywf7Xcf0bpO29sh67Zy+1oxJONODzEXZMnZyJa3Gf2dD/VkXWKF?=
 =?iso-8859-1?Q?xT+rYiuDS793NtPDM7Ot7SumvsJrz463vBaoO2Gl5Uo+Cd+uQrKkBIfleI?=
 =?iso-8859-1?Q?bU3MyqDiGOk40gthuaKc1YxwKle91F821O++EWTt8yRl0hQcDDPQaygwJ9?=
 =?iso-8859-1?Q?BXtaIKsqeI7jc0DKTqXVmr1f9WGjChcQQ6ahA5EmDfCl4TT75H6t/MEpUr?=
 =?iso-8859-1?Q?v43gL2nSGaHtmjhjYRYB9MLzsM1iqqWJ88V0bWCDqgW5jJAg/T8DhJb0yg?=
 =?iso-8859-1?Q?m0+fOpWKVO4Y8E0bv98aOTiNcYEnQVQQt0lTS2UfXj5qLOU8UiVo7Ota+C?=
 =?iso-8859-1?Q?Y6DpJAQfY1etOU+jdVkYp33Oh8nu0NKyvf9b9B7R/UfTauGIyjlj0ezjYa?=
 =?iso-8859-1?Q?/vkS1WhZ1Fmi6xCJHqtopP3pd2OLdLmdXyG7S7Uxf72NeqFFI+OnifRr/5?=
 =?iso-8859-1?Q?xFH2wd4tokf/jZijbx+G5vynJPpeewFB/BqDos1k6hLj27PnQArVR7yv/P?=
 =?iso-8859-1?Q?67EP8X3lmI8oQAAOu8NkkRcbwtTdYnSazDX0FMzxu1CMHonOLCZ+NAP/m9?=
 =?iso-8859-1?Q?HQ5w8sFGPCBFyjjbgp2QJ4+VDhErzv1P/f8ISDBu9n+6PgAiXp+kMG9CrK?=
 =?iso-8859-1?Q?7o+e+OkB55k/k0RIKlfsAD6N2CXNAjvzLjXp6XJYZfEkQy2DbxO5QCSaxK?=
 =?iso-8859-1?Q?HfuJdpuNC7/QxyYrf8Upza09/qIv6Oc16riaNmfbQ2itdzlwDb3s6nlrKx?=
 =?iso-8859-1?Q?4tiRljQ7MkA/FkTZWDknkBEaD3JOLWrV8dtQQmvXzwm0p9qwUbajpO9Syr?=
 =?iso-8859-1?Q?iki4ELkEvCuCpfxKvyb89c/MXHZ01jhdwB89MGEXK1Hie+9g3O4rSGTwrx?=
 =?iso-8859-1?Q?sImjxHYPKcbIjwSjj6GF+zLX4WudLi2EtgJ9jSs3eh013XYUv0IhMZQ83c?=
 =?iso-8859-1?Q?a5pqB3IBpAXfIhybz0yBoR2sFqb0D0RxbvPmsm+W+EPYufgHIdbxk976ra?=
 =?iso-8859-1?Q?cKuOz7cg6hTx5UzcoBr15KsfJPnQHbvvMWMRkKTTzAhmO2P21E0Wlt2lIf?=
 =?iso-8859-1?Q?wiQOt7ZY2BdSUqzk5dsNFVhrLyrzyD2eBI1r7TjMH6mD4NBokK/iEUvsVz?=
 =?iso-8859-1?Q?eVI5nj9gXGW4Bz24tDyujmTu+TfuARkCTAwPLLYSzRtLE8jY848xLgT8yW?=
 =?iso-8859-1?Q?J/OGqQmdrZAf1kIbTel61P7SXyDYzXVlzfUBiQ1bStHqn87JEz8LUMHQJu?=
 =?iso-8859-1?Q?qRd/go2D2SiqB3tkFrD1pCDJg1b8BH3QAqg4q6JaneVkL50PsPzK/QM0uO?=
 =?iso-8859-1?Q?kX+pSdo2oM0ro6h8YqgoWts7n1sp21A6jKyr+7YuD8iwSU3JjhIHSwEFKf?=
 =?iso-8859-1?Q?qq3XejOjAysfiWPjXb5KSwBzQjDyV5AkG7paRvw8x32bX6r7awaZC5lDcb?=
 =?iso-8859-1?Q?EiPpBjf9ysFpgElR1arUjmJlaat28lChNTUuCXMC9MZqJWZigusZsatw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fafdac47-cdc8-4cdd-084d-08de193dc220
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Nov 2025 11:56:57.3554
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: MrNyCxpbZbT2jGEB6X+8psSJ7X4yox0a8+/MGA3ZUYdkcSSXNZpDXDk2HXLkaddCxRzi+6LUGaTlbYIVISvB4TiyOwP5sD9z2jaYwlChLtI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB7130

This commit introduces two helper functions, `__memcpy_fromio` and
`__memcpy_toio`, to provide a robust mechanism for copying data between
standard memory and memory-mapped I/O (MMIO) space for the ARM
architecture.

These functions are designed to handle memory transfers safely,
accounting for potential address alignment issues to ensure correctness
and improve performance where possible. The implementation is specific
to ARM and uses relaxed I/O accessors.

__memcpy_fromio:
Copies a block of data from an I/O memory source to a destination in
standard ("real") memory. The implementation first handles any unaligned
bytes at the beginning of the source buffer individually using byte-wise
reads. It then copies the bulk of the data using 32-bit reads for
efficiency, and finally processes any remaining bytes at the end of the
buffer.

__memcpy_toio:
Copies a block of data from standard memory to a destination in I/O
memory space. It follows a similar strategy, handling any initial
unaligned portion of the destination buffer byte-by-byte before using
more efficient 32-bit writes for the main, aligned part of the transfer.
Any trailing bytes are also handled individually.

The double underscore (__) prefix follows the Linux kernel convention for
low-level or "raw" implementation functions that:

1. Indicate internal/low-level implementation: The __ prefix signals that t=
hese
   are the actual implementation functions, not wrapper macros or inline he=
lpers.
   On x86, memcpy_fromio/memcpy_toio are simply #defined as memcpy (see
   xen/arch/x86/dmi_scan.c), but on ARM they require special handling.

2. Architecture-specific behavior: Unlike x86 where IO memory can be access=
ed
   like regular memory, ARM requires specific IO accessor functions (readl_=
relaxed,
   writel_relaxed, etc.) to ensure proper memory barriers and hardware sema=
ntics.

3. Prevent accidental misuse: The __ prefix warns developers that these fun=
ctions:
   - Have specific alignment and ordering requirements
   - Must not be confused with regular memcpy()
   - Are meant for IO memory regions only (marked with __iomem)

4. Consistent with Linux kernel style: This naming convention is inherited =
from
   the Linux kernel's ARM implementation (see linux/arch/arm/include/asm/io=
.h),
   maintaining compatibility and familiarity for developers working across =
both
   codebases.

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

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/include/xen/lib/io.h |  83 +++++++++++++++++++++++++++++++
 xen/lib/Makefile         |   1 +
 xen/lib/arm/Makefile     |   1 +
 xen/lib/arm/io.c         | 102 +++++++++++++++++++++++++++++++++++++++
 4 files changed, 187 insertions(+)
 create mode 100644 xen/include/xen/lib/io.h
 create mode 100644 xen/lib/arm/Makefile
 create mode 100644 xen/lib/arm/io.c

diff --git a/xen/include/xen/lib/io.h b/xen/include/xen/lib/io.h
new file mode 100644
index 0000000000..16758691b8
--- /dev/null
+++ b/xen/include/xen/lib/io.h
@@ -0,0 +1,83 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Generic I/O memory copy function prototypes.
+ *
+ * These functions provide low-level implementation for copying data betwe=
en
+ * regular memory and I/O memory regions. Each architecture must provide i=
ts
+ * own implementation based on the specific requirements of the architectu=
re's
+ * memory model and I/O access patterns.
+ *
+ * Architecture-specific implementations:
+ * =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+ * Each architecture should implement these functions in xen/lib/<arch>/io=
.c
+ * based on their hardware requirements:
+ *
+ * - ARM/ARM64: Requires special I/O accessors (readl_relaxed, writel_rela=
xed)
+ *              with proper memory barriers and alignment handling.
+ *              See xen/lib/arm/io.c for implementation.
+ *
+ * - x86/x86_64: I/O memory is directly accessible, so typically uses:
+ *               #define memcpy_fromio memcpy
+ *               #define memcpy_toio   memcpy
+ *               See xen/arch/x86/dmi_scan.c for example usage.
+ *
+ * - Other architectures (RISC-V, PowerPC, MIPS, etc.): Should provide the=
ir
+ *   own implementations following the function signatures defined below.
+ *
+ * Naming Convention:
+ * =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+ * The double underscore (__) prefix indicates these are low-level "raw"
+ * implementation functions, following the Linux kernel convention for
+ * architecture-specific primitives. This warns developers that these
+ * functions have specific requirements and should not be confused with
+ * regular memcpy().
+ */
+
+#ifndef _XEN_LIB_IO_H
+#define _XEN_LIB_IO_H
+
+#include <xen/types.h>
+
+/*
+ * __memcpy_fromio - Copy data from I/O memory space to regular memory
+ * @to: Destination buffer in regular memory
+ * @from: Source address in I/O memory space (must be marked __iomem)
+ * @count: Number of bytes to copy
+ *
+ * This function handles copying from memory-mapped I/O regions using
+ * architecture-appropriate I/O accessor functions. It ensures proper:
+ * - Memory ordering and barriers
+ * - Alignment requirements
+ * - Hardware-specific access semantics
+ *
+ * Each architecture provides its own implementation that may:
+ * - Use special I/O accessor functions (ARM: readl_relaxed, readb_relaxed=
)
+ * - Implement alignment handling for devices requiring specific access si=
zes
+ * - Add memory barriers to ensure ordering with other I/O operations
+ * - Or simply map to memcpy() if the architecture allows direct I/O acces=
s
+ */
+extern void __memcpy_fromio(void *to, const volatile void __iomem *from,
+                            size_t count);
+
+/*
+ * __memcpy_toio - Copy data from regular memory to I/O memory space
+ * @to: Destination address in I/O memory space (must be marked __iomem)
+ * @from: Source buffer in regular memory
+ * @count: Number of bytes to copy
+ *
+ * This function handles copying to memory-mapped I/O regions using
+ * architecture-appropriate I/O accessor functions. It ensures proper:
+ * - Memory ordering and barriers
+ * - Alignment requirements
+ * - Hardware-specific access semantics
+ *
+ * Each architecture provides its own implementation that may:
+ * - Use special I/O accessor functions (ARM: writel_relaxed, writeb_relax=
ed)
+ * - Implement alignment handling for devices requiring specific access si=
zes
+ * - Add memory barriers to ensure ordering with other I/O operations
+ * - Or simply map to memcpy() if the architecture allows direct I/O acces=
s
+ */
+extern void __memcpy_toio(volatile void __iomem *to, const void *from,
+                          size_t count);
+
+#endif /* _XEN_LIB_IO_H */
diff --git a/xen/lib/Makefile b/xen/lib/Makefile
index 5ccb1e5241..6bb0491d89 100644
--- a/xen/lib/Makefile
+++ b/xen/lib/Makefile
@@ -1,3 +1,4 @@
+obj-$(CONFIG_ARM) +=3D arm/
 obj-$(CONFIG_X86) +=3D x86/
=20
 lib-y +=3D bsearch.o
diff --git a/xen/lib/arm/Makefile b/xen/lib/arm/Makefile
new file mode 100644
index 0000000000..8a7b6cfd59
--- /dev/null
+++ b/xen/lib/arm/Makefile
@@ -0,0 +1 @@
+obj-y +=3D io.o
diff --git a/xen/lib/arm/io.c b/xen/lib/arm/io.c
new file mode 100644
index 0000000000..fbce204775
--- /dev/null
+++ b/xen/lib/arm/io.c
@@ -0,0 +1,102 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#include <asm/io.h>
+#include <xen/lib/io.h>
+
+/*
+ * These functions use 32-bit (uint32_t) IO operations rather than 64-bit =
for
+ * the following reasons:
+ *
+ * 1. ARM32/ARM64 compatibility: On ARM32, there is no atomic 64-bit IO ac=
cessor
+ *    (readq_relaxed). Only readq_relaxed_non_atomic() exists, which inter=
nally
+ *    performs two separate 32-bit reads. Using it would not provide any
+ *    performance benefit and could introduce ordering issues.
+ *
+ * 2. Hardware compatibility: Many IO devices only support 32-bit aligned =
accesses.
+ *    64-bit accesses might not be supported or could cause bus errors on =
some
+ *    hardware.
+ *
+ * 3. Simplicity: Using 32-bit operations keeps the code simple, maintaina=
ble,
+ *    and consistent across both ARM32 and ARM64 architectures without
+ *    architecture-specific conditionals.
+ *
+ * The performance difference between 32-bit and 64-bit operations in this
+ * context is negligible compared to the IO access latency itself.
+ */
+
+/*
+ * memcpy_fromio - Copy data from IO memory space to "real" memory space.
+ * @to: Where to copy to
+ * @from: Where to copy from
+ * @count: The size of the area.
+ */
+void __memcpy_fromio(void *to, const volatile void __iomem *from,
+                     size_t count)
+{
+    while ( count && !IS_ALIGNED((unsigned long)from, 4) )
+    {
+        *(uint8_t *)to =3D readb_relaxed(from);
+        from++;
+        to++;
+        count--;
+    }
+
+    while ( count >=3D 4 )
+    {
+        *(uint32_t *)to =3D readl_relaxed(from);
+        from +=3D 4;
+        to +=3D 4;
+        count -=3D 4;
+    }
+
+    while ( count )
+    {
+        *(uint8_t *)to =3D readb_relaxed(from);
+        from++;
+        to++;
+        count--;
+    }
+}
+
+/*
+ * memcpy_toio - Copy data from "real" memory space to IO memory space.
+ * @to: Where to copy to
+ * @from: Where to copy from
+ * @count: The size of the area.
+ */
+void __memcpy_toio(volatile void __iomem *to, const void *from,
+                   size_t count)
+{
+    while ( count && !IS_ALIGNED((unsigned long)to, 4) )
+    {
+        writeb_relaxed(*(const uint8_t *)from, to);
+        from++;
+        to++;
+        count--;
+    }
+
+    while ( count >=3D 4 )
+    {
+        writel_relaxed(*(const uint32_t *)from, to);
+        from +=3D 4;
+        to +=3D 4;
+        count -=3D 4;
+    }
+
+    while ( count )
+    {
+        writeb_relaxed(*(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:
+ */
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Sat Nov 01 11:57:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 01 Nov 2025 11:57:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1154893.1484549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAEE-0002ci-4b; Sat, 01 Nov 2025 11:57:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1154893.1484549; Sat, 01 Nov 2025 11:57:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAEE-0002cb-1a; Sat, 01 Nov 2025 11:57:06 +0000
Received: by outflank-mailman (input) for mailman id 1154893;
 Sat, 01 Nov 2025 11:57: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=rLmn=5J=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1vFAEC-0002Ar-GQ
 for xen-devel@lists.xenproject.org; Sat, 01 Nov 2025 11:57:04 +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 e0ce5cc6-b719-11f0-980a-7dc792cee155;
 Sat, 01 Nov 2025 12:57:02 +0100 (CET)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by DBBPR03MB7130.eurprd03.prod.outlook.com (2603:10a6:10:20e::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.16; Sat, 1 Nov
 2025 11:56:56 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%5]) with mapi id 15.20.9275.013; Sat, 1 Nov 2025
 11:56: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: e0ce5cc6-b719-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DgmJA3uAa49HE3Ve+scjSFzxgFXDeZboeCHqtZ6My4f91dxWBugrdGNyyoZ2r4B2XLNPiVi2ujbysZ9+YWjP2pZjhZvq0pgygUHV/IEorQTj4evl7OShGK8slnGk5hivZUNytwAX2Bx3yJoocpsp1gn2fWWfukG9VocgnUDxaQBqARH+CXC21rOFMA5iXSkTr3wQ3ypr/+CF74AI/9Fb0EYqHR4aGuQtu3gHvqIlghBCou6tkZHuQe6T2d7akxntdY4iRi2tZwpj6CSCq0COxyYuQlNNUOWYzGVJgVkRw2tuLL5qRUg1nWHcQhGwnTWmyGm9a49Iz2gSU8C4dlJw2A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ap5pNvfbZqnecfxDiQ1kPQR6h+0LuyG2cuRDI9rbD24=;
 b=vGGLGZF+DhHeiFyrH81ZlkDa2y8sOCp+DLr3dImfR9XdaRumdEJ6QsIYY/ip6p9j0XVgPYDN0lj8Wjp90C+2OfNF3CqjksVqm1/6ckGLR/TuNvN3R+vb16BC/s5HqUSnG0BAJOmgyBzSEQK1p5i1+2fKcee/aDskiQ/R1Ui/i0DM+mNVANYtX1R2EhDAWJHlh4Q39TI3RbtKdfSPnwskkGu/fumOrgw0NORJUZhbmtt4YnHgR11IdGDuev2kN9XrCvyigbS37dA14yOBhATfCSsYtvQ8Mc9BK1PyW374csxt0j2+nbxE4dmIP/okNwqCCsTqTLasCxincmQvhzxhcg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ap5pNvfbZqnecfxDiQ1kPQR6h+0LuyG2cuRDI9rbD24=;
 b=mAjQVZu4447JOHgdq2jMg95X+rnT9e/mGZi0zNXEDYzK0QwxgnZ/yMWtIvKaHPKK4xrvg9VX+tPkeNurSdbJPCFNgLqm4i9QD34UiZTSdg2Tj2pxeCdnMfV9ZXHSKaxJT5hRlw4Huhx06zOx1TYU4d1xlMXbv5mPVyxeY8dp4nr4GdyTbgqjFCnA2pMU3evG68spvechPxZj7JNZozCfDSL+rAohmG7xwXeUOcNUfKaVii50TzrwwxGGtzF9HDAIjeFCfJ2JkqXVO1msL4E5YzMqFSVgnuIMqG4pomMSAdiru97v1336pDIbTOK4uDziw5opiV3CF6fxG9XLNUHFPw==
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>,
	=?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>, Oleksii Moisieiev
	<Oleksii_Moisieiev@epam.com>
Subject: [PATCH v6 1/5] xen/domctl: extend XEN_DOMCTL_assign_device to handle
 not only iommu
Thread-Topic: [PATCH v6 1/5] xen/domctl: extend XEN_DOMCTL_assign_device to
 handle not only iommu
Thread-Index: AQHcSyafS16SOr0Uk0OkeRdy8jd8Cg==
Date: Sat, 1 Nov 2025 11:56:56 +0000
Message-ID:
 <b0a72660d58608c80e7408eb8df32ec369d4e45b.1761998077.git.oleksii_moisieiev@epam.com>
References: <cover.1761998077.git.oleksii_moisieiev@epam.com>
In-Reply-To: <cover.1761998077.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_|DBBPR03MB7130:EE_
x-ms-office365-filtering-correlation-id: ec32d77b-1be7-474f-876b-08de193dc187
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|7416014|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?zDDDDGvDmvRsu8STx5Y5Qc5dr8IWAWgWUw8n+/o2czaDi1VP9Fj1lWivTC?=
 =?iso-8859-1?Q?WjekNoafnE34dzslhqwURmCrryzltIhX1fv3KqPX6wTO2y8Aj5nwZMaiCW?=
 =?iso-8859-1?Q?TOjMt2hzvXhG4woZNC2xsxz/XygjsU+Zh62I0V6aa4Apj3C0/V9jxjPc4k?=
 =?iso-8859-1?Q?Se+3WH7LFKS/h5OYdZPISlcv5t2wqphbe1ggpA9ao0QO6lEtK34rRVF74q?=
 =?iso-8859-1?Q?KzqNdLXFliUr4PeQjUL6BLZj5Oi7m14PXTClpZ7LHMsXm6bjWbInQpvDNL?=
 =?iso-8859-1?Q?e1s2JCTnxPLlivfZVT9XUgFzHBhSSoFFARSbn9FUKc0KAGXtZIAf3eRCCJ?=
 =?iso-8859-1?Q?HN2AdKffGw4dFKoLfp5M2i44FtA2RTwCmw0ec/3NNbavMQM8oEpcfb5G4+?=
 =?iso-8859-1?Q?fYxLvJ8H/yoBFF3tmUjdVVBFOQgPVDWtxxMuRy4ZJq0nl3CzUcRLibf++o?=
 =?iso-8859-1?Q?jcYbjRuIEPXqwZQmRpoQSTXWYI8U8hdSDXZB67t99doZwV8Zp690s9TA/g?=
 =?iso-8859-1?Q?uaJWkd4DU3QrMevErC9wnaUzJfbm01owZkspjHqhXnoqtwh2zdZrIsCqE1?=
 =?iso-8859-1?Q?0uTRlgbauXRFk8gmFSM2Sk2/pGMp1E0pf4vsVq0dDc06E232ehzaunmX0n?=
 =?iso-8859-1?Q?cG1Em1WXM970iOkP4FJF4AkqpR5hKjKjs+AFQhyNsXvyMJbFGY0NfPgRaL?=
 =?iso-8859-1?Q?3WVnEvVaLDN2HtEUD7ZGaSXBtOeKdl+DZc2IKKeV7/n9m84BRP/j6XE4In?=
 =?iso-8859-1?Q?kDuGnm8oN0SX6SHSPJ1heRfEn1M04RtiB+ocLeGyZwPm+jOHaQe5wNnNPa?=
 =?iso-8859-1?Q?QIFoetANqGvJxsN3gqh1/xwxRpQC/rLdW6aNd7HxYlvPaH1fvkMxoPRHS2?=
 =?iso-8859-1?Q?olWTpq6L3cIutNjRvg058TUMY8LGzXs2i9IOYofAol9QmrEa/PCTOuNEDh?=
 =?iso-8859-1?Q?zDE5NLGmnZakmxdu39oVT3unKDqulZiZKkSZOmZxKqOuUn0zzrA2vJ1LQy?=
 =?iso-8859-1?Q?04+RJgZqR6WLA9lKfvivYtkJ+K/uFVUmCSoYsP4Ev9BiLRBZK9Lm27XIRt?=
 =?iso-8859-1?Q?dQi3mhbNvUL8uOJ18waUooB/snYekbAGGrAYr6Bxef7ssUJkwjm5hHaYhn?=
 =?iso-8859-1?Q?rPqUJ5nlncFmtoTxXqEUDDr+0O3ihWeBLu2WmFocDmI9e+5u8o24Zc2pEn?=
 =?iso-8859-1?Q?sGWssNgKpkGtm4q+pLZ7zMjM1w/x8nwipRdzMpulelV+8ORr7AdZaY7WKD?=
 =?iso-8859-1?Q?dQ6pf4SXpDdWjnfyT9nPGOf1uIE7+i6eqZMAWooLQIitg2ZSWgTOAXrHAq?=
 =?iso-8859-1?Q?/sWnNrB5HT8M9eImv+mceHydT41zvNW+cEphXdIjsNOggiAhREuxDGaLZa?=
 =?iso-8859-1?Q?tQn1QXg1j3Zcie6pNVfRO51iJRvkIGJhtfvMKrJpP0z/hCc6ZGkTy9N+xf?=
 =?iso-8859-1?Q?7IITLyeuN4S6K+8ZcqDcslvka3OzE5WVHHofnBQqKaFWxfoTw0FZbNeCXN?=
 =?iso-8859-1?Q?HOSP5Oq0horiBK9AXyRrWL7rtuvUjSkGtZjoPnsitG+7SOoalW1MELNVQd?=
 =?iso-8859-1?Q?4qSJ4pxqm7eHwMMildhbwIRLM+eY?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?3UM73ozT2ZXxVerZIzbhAYUvgKBvoIKortFJ2cZW5jWOoxGSxk7ny+oaMA?=
 =?iso-8859-1?Q?Kw4xS9LWFq+YUA1glNy1mq+utE1H/1gWwbPJ3MD4K3v8wWtDEsdvhcdi2C?=
 =?iso-8859-1?Q?hJoWKoGY3/o9DDox4EKKJe566RfdHQwA9jbdqS5HYjXgMR4QK0GyeyQQLa?=
 =?iso-8859-1?Q?x43ru1xqCEkEW/Zp1BacnlY4QtppHoTfy+wHvRDQ1qtGzS8u8vYcWGHgaA?=
 =?iso-8859-1?Q?xFLqwlTSJBK0Y0JU4XSD41e5v3OmSVGPiXfkZTeR3IkhF8c4fFVP/WknRO?=
 =?iso-8859-1?Q?jc0QZ3BkxOEcV3rWuWx6F+3n+6gpm0nEKpVRcIAJSd//qMGZ+vhiXqSdVc?=
 =?iso-8859-1?Q?5cgnaJyWO0gvugvky/vFmEm6r6VF7eTi9ejrVRjSz+BUTQ6CN5wAi8u6Be?=
 =?iso-8859-1?Q?Ouaj5uXD4AXGgl3omiC7YLSkVpO7Wij1G1tNc9Gj0f6gYbdv3MkoWxPF2P?=
 =?iso-8859-1?Q?H0p9V/VvChh1zMxo19Xb0bNRFAu+1WsA91PG1OygYtEJ/nTvlQGx2XD/hH?=
 =?iso-8859-1?Q?zDlMa2VzoQvYZP+EhucHka1Sjnu9PioBZjQkJC50C1TSatGOXgev8ELlKX?=
 =?iso-8859-1?Q?VpczCpx0GYWrzYA+HIFtrYusGoeWt3PaPFXYbkoJu4Lr83AwnSjxTOLxsU?=
 =?iso-8859-1?Q?ihJD6LK4iKVeQfBYHQckzSXSPsBLi74pe+2ubFdEi65a1+VPtZux+NNgK6?=
 =?iso-8859-1?Q?XyvpKzZzkFTKb6nygF+ZxDViawC0oiX9fYPwMmaZdpKC7UrKjEeFIwcLai?=
 =?iso-8859-1?Q?8nrwnKGlCvxl7uhKadYLme8rMVZHnEU83CjaSDyBBydqeJGDMnt7yv+e+f?=
 =?iso-8859-1?Q?VzXhJywS9RP1V25YqiFH5WBvlJ8yXOvps+oI8b5+V6lPQMK8E3Ht9FRx6Z?=
 =?iso-8859-1?Q?p/0zQroRJZVbYVr6P/LtXe4WC0jb+AGVZzIeDXwxP71PZMWGsuotg+wYCz?=
 =?iso-8859-1?Q?jAFO4ryPmDDayU+u9TROVr4yg981LsnwJ2KZ9h84Zz5x4ZMYjEkS+KUgU2?=
 =?iso-8859-1?Q?dAVnPonwp+U8mXnvhzMr/2JHYwx2gOWWvJtoxt9zzdWx1pKSSOWBzCNtQ4?=
 =?iso-8859-1?Q?Udj1s4BldjkWZHNo1sEuqaUalWG6UpY0eJsBFUFzGsiEOOASi5/WKk3FvW?=
 =?iso-8859-1?Q?qgWxggwwI2hvO8Mry6aQUoMBxasD5GaR3tljE40pnaTMpNMx3U4ufSvrZJ?=
 =?iso-8859-1?Q?Ul/0xOcg3BHyAUNOXFU9RFMYlybxffbwcc3WG/+qfMwu6JXo3cl8s43kro?=
 =?iso-8859-1?Q?dmCI78V+wf1ZZLx9rS8XIUE4i1vGg++uSjWNpCwimiZXBlMTGY2YPhmyWt?=
 =?iso-8859-1?Q?DTTmjKesEgdMM3DTN0d5GDKtqrBwE5ptUbGma2oXBvuRtl8N4kScYHw7Gr?=
 =?iso-8859-1?Q?kXQoncQueM4j1W5X5B7nIjRElwES68Q83ndaT3uDoYFFh7mYH6TqJNkxrF?=
 =?iso-8859-1?Q?Y/qwOn1O+OklyzEjOg+FFinzCEC1UssK902t3jEv3i3qSLsnnUjJbKMYb4?=
 =?iso-8859-1?Q?/Q2mRiao21FDudlZxc8eHoBMTsFdM85d+muIxY5Lw2dYmCNlK7JadUYUlx?=
 =?iso-8859-1?Q?R3HTLbncg2yDZmgLKk4EjU1YM3KJA9QLDCaD4wu8WTgGVAlxN03sGZemHC?=
 =?iso-8859-1?Q?4CqZqnNy83YSmhyrrD6apK1JdjtUIBa/UUqvS5dK0qTMaBesvF6drUHw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ec32d77b-1be7-474f-876b-08de193dc187
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Nov 2025 11:56:56.3165
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: GwtNHkJbb24eWhfnwY1WIt9sUG+cWIhtzCzYig/7QyiEENpiImxaIKCAfWlTcAzUJfhOVXqiULLz3J6hMfCFJZ/ruHnQSYvp82a3R39B/d4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB7130

From: Grygorii Strashko <grygorii_strashko@epam.com>

Add chained handling of assigned DT devices to support access-controller
functionality through SCI framework, so DT device assign request can be
passed to FW for processing and enabling VM access to requested device
(for example, device power management through FW interface like SCMI).

The SCI access-controller DT device processing is chained after IOMMU
processing and expected to be executed for any DT device regardless of its
protection by IOMMU (or if IOMMU is disabled).

This allows to pass not only IOMMU protected DT device through
xl.cfg:"dtdev" property for processing:

dtdev =3D [
    "/soc/video@e6ef0000", <- IOMMU protected device
    "/soc/i2c@e6508000", <- not IOMMU protected device
]

The change is done in two parts:
1) update iommu_do_dt_domctl() to check for dt_device_is_protected() and
not fail if DT device is not protected by IOMMU
2) add chained call to sci_do_domctl() in do_domctl()

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

Changes in v6:
- change iommu_do_domctl and sci_do_domctl command order and
call sci_do_domctl first which will produce cleaner code path.
Also dropped changing return code when iommu was disabled in
iommu_do_domctl.

Changes in v5:
- return -EINVAL if mediator without assign_dt_device was provided
- invert return code check for iommu_do_domctl in
XEN_DOMCTL_assign_device domctl processing to make cleaner code
- change -ENOTSUPP error code to -ENXIO in sci_do_domctl
- handle -ENXIO return comde of iommu_do_domctl
- leave !dt_device_is_protected check in iommu_do_dt_domctl to make
code work the same way it's done in "handle_device" call while
creating hwdom(dom0) and "handle_passthrough_prop" call for dom0less
creation
- drop return check from sci_assign_dt_device call as not needed
- do not return EINVAL when addign_dt_device is not set. That is
because this callback is optional and not implemented in single-agent drive=
r

 xen/arch/arm/firmware/sci.c             | 35 +++++++++++++++++++++++++
 xen/arch/arm/include/asm/firmware/sci.h | 14 ++++++++++
 xen/common/domctl.c                     | 26 ++++++++++++++++++
 xen/drivers/passthrough/device_tree.c   |  6 +++++
 4 files changed, 81 insertions(+)

diff --git a/xen/arch/arm/firmware/sci.c b/xen/arch/arm/firmware/sci.c
index aa93cda7f0..31a7e5c28b 100644
--- a/xen/arch/arm/firmware/sci.c
+++ b/xen/arch/arm/firmware/sci.c
@@ -126,6 +126,41 @@ int sci_assign_dt_device(struct domain *d, struct dt_d=
evice_node *dev)
     return 0;
 }
=20
+int sci_do_domctl(struct xen_domctl *domctl, struct domain *d,
+                  XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
+{
+    struct dt_device_node *dev;
+    int ret =3D 0;
+
+    switch ( domctl->cmd )
+    {
+    case XEN_DOMCTL_assign_device:
+        ret =3D -ENXIO;
+        if ( domctl->u.assign_device.dev !=3D XEN_DOMCTL_DEV_DT )
+            break;
+
+        if ( !cur_mediator )
+            break;
+
+        if ( !cur_mediator->assign_dt_device )
+            break;
+
+        ret =3D dt_find_node_by_gpath(domctl->u.assign_device.u.dt.path,
+                                    domctl->u.assign_device.u.dt.size, &de=
v);
+        if ( ret )
+            return ret;
+
+        ret =3D sci_assign_dt_device(d, dev);
+
+        break;
+    default:
+        /* do not fail here as call is chained with iommu handling */
+        break;
+    }
+
+    return ret;
+}
+
 static int __init sci_init(void)
 {
     struct dt_device_node *np;
diff --git a/xen/arch/arm/include/asm/firmware/sci.h b/xen/arch/arm/include=
/asm/firmware/sci.h
index 3500216bc2..a2d314e627 100644
--- a/xen/arch/arm/include/asm/firmware/sci.h
+++ b/xen/arch/arm/include/asm/firmware/sci.h
@@ -146,6 +146,14 @@ int sci_dt_finalize(struct domain *d, void *fdt);
  * control" functionality.
  */
 int sci_assign_dt_device(struct domain *d, struct dt_device_node *dev);
+
+/*
+ * SCI domctl handler
+ *
+ * Only XEN_DOMCTL_assign_device is handled for now.
+ */
+int sci_do_domctl(struct xen_domctl *domctl, struct domain *d,
+                  XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
 #else
=20
 static inline bool sci_domain_is_enabled(struct domain *d)
@@ -195,6 +203,12 @@ static inline int sci_assign_dt_device(struct domain *=
d,
     return 0;
 }
=20
+static inline int sci_do_domctl(struct xen_domctl *domctl, struct domain *=
d,
+                                XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_dom=
ctl)
+{
+    return 0;
+}
+
 #endif /* CONFIG_ARM_SCI */
=20
 #endif /* __ASM_ARM_SCI_H */
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 954d790226..b89559ef7b 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -29,6 +29,7 @@
 #include <xen/xvmalloc.h>
=20
 #include <asm/current.h>
+#include <asm/firmware/sci.h>
 #include <asm/irq.h>
 #include <asm/page.h>
 #include <asm/p2m.h>
@@ -827,7 +828,32 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_=
domctl)
     case XEN_DOMCTL_test_assign_device:
     case XEN_DOMCTL_deassign_device:
     case XEN_DOMCTL_get_device_group:
+        int ret1;
+       =20
+        /*
+         * Add chained handling of assigned DT devices to support
+         * access-controller functionality through SCI framework, so
+         * DT device assign request can be passed to FW for processing and
+         * enabling VM access to requested device.
+         * The access-controller DT device processing is chained before IO=
MMU
+         * processing preserving return code and expected to be executed f=
or
+         * any DT device regardless if DT device is protected by IOMMU or
+         * not (or IOMMU is disabled).
+         */
+        ret1 =3D sci_do_domctl(op, d, u_domctl);
+
         ret =3D iommu_do_domctl(op, d, u_domctl);
+        if ( ret < 0 )
+            return ret;
+
+        /*
+         * If IOMMU processing was successful, check for SCI processing re=
turn
+         * code and if it was failed then overwrite the return code to pro=
pagate
+         * SCI failure back to caller.
+         */
+        if ( ret1 !=3D -ENXIO )
+            ret =3D ret1;
+
         break;
=20
     case XEN_DOMCTL_get_paging_mempool_size:
diff --git a/xen/drivers/passthrough/device_tree.c b/xen/drivers/passthroug=
h/device_tree.c
index f5850a2607..29a44dc773 100644
--- a/xen/drivers/passthrough/device_tree.c
+++ b/xen/drivers/passthrough/device_tree.c
@@ -379,6 +379,12 @@ int iommu_do_dt_domctl(struct xen_domctl *domctl, stru=
ct domain *d,
             break;
         }
=20
+        if ( !dt_device_is_protected(dev) )
+        {
+            ret =3D 0;
+            break;
+        }
+
         ret =3D iommu_assign_dt_device(d, dev);
=20
         if ( ret )
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Sat Nov 01 11:57:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 01 Nov 2025 11:57:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1154894.1484555 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAEE-0002jI-JL; Sat, 01 Nov 2025 11:57:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1154894.1484555; Sat, 01 Nov 2025 11:57:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAEE-0002iE-Ev; Sat, 01 Nov 2025 11:57:06 +0000
Received: by outflank-mailman (input) for mailman id 1154894;
 Sat, 01 Nov 2025 11:57:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rLmn=5J=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1vFAED-0002Ar-GT
 for xen-devel@lists.xenproject.org; Sat, 01 Nov 2025 11:57:05 +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 e1c4a788-b719-11f0-980a-7dc792cee155;
 Sat, 01 Nov 2025 12:57:03 +0100 (CET)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by DBBPR03MB7130.eurprd03.prod.outlook.com (2603:10a6:10:20e::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.16; Sat, 1 Nov
 2025 11:56:56 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%5]) with mapi id 15.20.9275.013; Sat, 1 Nov 2025
 11:56: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: e1c4a788-b719-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jri189mBFag8FhDcfy3TmD9GrO29VgCVLZcGK/R/SAQaZq7v6h+p/tCAVVYhFg7DUHiqozTwULYMfvHZT1WH+rCvtHKZlQuav9EyMwFG4gLeI3aPLOL8gjVX8CcxQ6Uh7vBRUSHPiuBbjj9xNSots7mRIS+CG3ItfhgobrLvyKwT8TlTYnQbkPi5VLRfgcTSgRq4X4H2REt0FFgnsMF5zu5ju1MFOnchEYQmv7CBVJDqBmD4XvvG85zB/OQi9ZaARvjROcI6igEcCXSKP3hRriDdu6P/BII5SY1pSpnm+ccQDl2eK6qpfiiHe8CpfbzRplceIkXaFKu5SXInWX5W4w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dUvvV+20T1UDiyfQPM2cyTTSiGchXAevlCVyA+kQh4I=;
 b=aRiAOFlb/f5W21MYtYnYy4+ZKhOEKfMdq0L1e6aI3Lqm9LJvTjdvdpAjOsmCdNBEybdVs506a4HhM5CCykJzdJGwlY/bTadID3x79Md6N/sVTKdiziEgoIizYGz36HDG/vASnIWDCnwFGjsYxAeKlw+rvgTRvnEW2h8M1MCD+KUokZBHCRYdMvFHLrYPUbJIFhKJgIIO4wSlxb/G1P/qB9K5ee2iNCo/jsIhDXJZ0hMPycQKLDnchm0Wsxa0CMEpbEihbtAIjT7DLslouCCPm6Mnu7Id1eiypNHZbr0rhiRp96mmf7flaX0xgIswAAgZhb8zENRD3REii2n7zilYNA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dUvvV+20T1UDiyfQPM2cyTTSiGchXAevlCVyA+kQh4I=;
 b=NXn2fAXYsj3BOd1ntHDLhTtBYx2snRtyGaCLG804MPYZPoEHqANEoWxB4HP1NoFyXBlBM5VDJ7/KbfbpOJoPEgFPE2WSVTJ09WxJlH0vzGoECrwzpJ5KMosH6O7DVmbWsDLnANmsneNJuKEiO6v5DBC26XnifDiBzK9/8DSBLQYA8ypwgUnBnWUAR5uV6ekPP5VJgakMEn2lYyyOWA9TK2tojGS0XKTCVyEeRDL+6/Yw2HjuO5eezF6ThEmh8W0W0FyZXBGX96JKjhZy5WZEorNMPDuCvgo+4eYnDvXjpj0isQlWx/gtYOAwjQMtdE3QEvWpmlEk4VgnXeILnyr85g==
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>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
Subject: [PATCH v6 2/5] xen: arm: smccc: add INVALID_PARAMETER error code
Thread-Topic: [PATCH v6 2/5] xen: arm: smccc: add INVALID_PARAMETER error code
Thread-Index: AQHcSyafAwJzYUogvkSNS1XBVcix4A==
Date: Sat, 1 Nov 2025 11:56:56 +0000
Message-ID:
 <1134e144eab87f645c5c1e6e60ba26886d77044f.1761998077.git.oleksii_moisieiev@epam.com>
References: <cover.1761998077.git.oleksii_moisieiev@epam.com>
In-Reply-To: <cover.1761998077.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_|DBBPR03MB7130:EE_
x-ms-office365-filtering-correlation-id: b6dab78e-54f1-4b34-6335-08de193dc1d4
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|7416014|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?HAxodcUN/SkkOY8tYQ78MpY/ussK70Se88RzR+THk/ZmJqnnMnegx8yYp9?=
 =?iso-8859-1?Q?a16lvJM1K9F/pnubScnVsbMfUkt/SlLobDfExGDROfIFFBopz6t2EA1Hfd?=
 =?iso-8859-1?Q?j7Bd1f9HAJhm4hbjDXqqRIYJTPh5WB00ewr6U+jIbdWB8Fe0tS2YLF3UBC?=
 =?iso-8859-1?Q?lt8QA3628TqoSdAwrrD1B3HM3eEzl4S/C8RE6Wk+hCCzGQmGu2APZCP1hd?=
 =?iso-8859-1?Q?dqgMispxawXimilyM4F0DzXaSRJ4Mk/5zzDIKPWX0bPlPW/bxKsd3IxqDV?=
 =?iso-8859-1?Q?MWt6fnhDm4v1jpDA4nnR4xG3jd//ZkH28CPhQb5GsAR4arq5gO6DVLGwPl?=
 =?iso-8859-1?Q?i6a0BCkZlyhvglQv7kgbe7w3DNf6KH5WF8gFrx26OV39OZZx6IyVQwINkl?=
 =?iso-8859-1?Q?T9hL2Km4S5i9javzRwSmJajh59feSOfWcjYxOqtlFmLlyJn9Uarsm4uYvn?=
 =?iso-8859-1?Q?wL8q5pB5SJsUfR2qnK59JF480HGbGPJrvIL5oEXg5jjfh4QNvXxPpQvBdI?=
 =?iso-8859-1?Q?EaFtcOw7Q5EIVJI/dKSs9tBuqN5GvuyNJ7HyThWRwIFWVWqiYHsdcwyrpy?=
 =?iso-8859-1?Q?yRc0uWyO3mVQycxXwzjHi/8PNx4PW862n2pdMqFOxRG3GFEbhUY+JrRaUF?=
 =?iso-8859-1?Q?dh1xtpAtf5pVn/dTQzysQ7oQdK8/9BPLvVv6x7kHz9JlmuZDAtnR3hATGN?=
 =?iso-8859-1?Q?JjFuSxL7WluEA14tqYN01+NKfm60sV3VgNtbrdzNCMezYtpqoeR27DzA6R?=
 =?iso-8859-1?Q?ZEgDRM6ORge0Cx4PaaXUomoBehzX+Y/qo8mKbKQ8y9dzYTd4CW6QB0GGyi?=
 =?iso-8859-1?Q?Ua3+Drjfk+fcag6KkFxs15BQjfysuuJWbj4o4hWx7nEDCqIoJqPCZmHaxK?=
 =?iso-8859-1?Q?IaublL2McM4wNdPSooXxK5ax2G4p1S63y3KUbXIdgKW13AuaSjCTM3HZ+q?=
 =?iso-8859-1?Q?3IoVj4S33ACH2tkiFqqrC4DyWvDu3SrDK2OM93HRDUKm2u0douKoBfoHLP?=
 =?iso-8859-1?Q?g31pr40UFhiWW+0IdDFtEFRpvmijIxPNo4aaHZ8HaCeVeir4tD6+6cqrEQ?=
 =?iso-8859-1?Q?h7cjlkE+/muC1rzlZsAk1K0R9SLi4icQyXsXuGocnEKOr8bJvx7hW1ANlA?=
 =?iso-8859-1?Q?HV9/zyZhLevbTXxuUzxE0nMiuSd4pv4hFu0rZ5o2ee85jWpzhRerWlsBXh?=
 =?iso-8859-1?Q?RpcXQBlMtHI5D9v6BqWZz9oWZ2tjeCFKjiWCK34rJ8NFWdy44tObUOIDZU?=
 =?iso-8859-1?Q?HOMeecamUichJD8cGBam7L50+iNNWem58t30jIvBy/OUaLNoyQBekiQ7yf?=
 =?iso-8859-1?Q?Ja/zOz7uorYo8vFvXa3FRLKW++0ClMoeghKVI5+Ve/FfiMpRYiULV+GFXR?=
 =?iso-8859-1?Q?ndqfCrKsRM/4ojVnD1q9qtyb5LRfeiAXy1JpyaOxdtV2y+ASMycZsjkOBD?=
 =?iso-8859-1?Q?vQD0+gaP0iI/43zQCi83M6QQIrzPtVkubcXin8OenqJ2jxWXyTeVe2IZ16?=
 =?iso-8859-1?Q?GYoK6LoREtIdxW3SSY8b5y7KUtziqR2ITDr5yBm6sMt8xryiU2wjthTHS2?=
 =?iso-8859-1?Q?x8NTa+5sO8TlF0QsIkWYTcncmE+/?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?TGczb823Tix0x6W373DtM894ru+CnnZtNSNcPxp/O1aQpVpr/cqNS5wMem?=
 =?iso-8859-1?Q?Kjr5c+txxhSIyzZoIw9JrWPO2QTn2jTeHnbeTjtbrLi6iIPtiCNJvYcMB/?=
 =?iso-8859-1?Q?WUG9xjWt/Vu6FRv334TWUQVbcge6Jd2yKAoCzLioEKUI/QqnGXM34kYMyA?=
 =?iso-8859-1?Q?RwwcgWlBD/LFE0+TaOPwTKIWVLFzWRxszbfLOgQC6xHTXw0CiOn+1oKlFz?=
 =?iso-8859-1?Q?uBm45UTGV8As9XoHZEtV3HLffXJXrsWKLG3aUFuItN0i3sOCole8n/j4wL?=
 =?iso-8859-1?Q?hmt7b3vdUv2OOUtJVSYOVTPDqcuXR/vrYxGzfq3WI8dw0qgunL0PQCm44+?=
 =?iso-8859-1?Q?RfJd/Sl3ng1CB97LyK/IhYfT2IOWS6ZIDYSBbCwCGAozoC04XarJoG8ayw?=
 =?iso-8859-1?Q?5cAouDjTieNQEKbXUiQbTcnHTujo9jJ27XjtCIoVatI7rFhq7xBhh4Vz6G?=
 =?iso-8859-1?Q?l5Dx9k5I6obTCT4os5XjwWkGCx1WhKNNDcQn71adeJ+cY6gt1zrFQUPHbK?=
 =?iso-8859-1?Q?zVtwg/I86on3ePAASiXPOrHW+yWE8gbeqBEozpGzk8GIIU4vYbXGBwZGNG?=
 =?iso-8859-1?Q?HMt1gskG88seKByB3ZMuGPGjw5uY9IW+tRvvdb8tkAJ7CaoEDkZBZpVXJ7?=
 =?iso-8859-1?Q?j/HMt4PAHINbUnC5gnEI9bbefYouGA6yZskCBOAt5ejA69AkvcxcWQiSkt?=
 =?iso-8859-1?Q?2nVMt21xzTVj6fYeSaUGW3mVfSAc7lLRDymyi6vtLdrwbBeQmqZStO+Z35?=
 =?iso-8859-1?Q?J79oaP5BEZDw30/r2eoiFlrr0LxEMR/jSKYX4k5HKvgBMD2w6RBQRn/vw2?=
 =?iso-8859-1?Q?5AU0Jh1JWql2u/wBgwN+vQQVgB2JyzopQSXC0Z7Ogp4pj8xAn9F+49yMpB?=
 =?iso-8859-1?Q?KKMzkZsoAzp5URUZc6YT7a9HUt2FeQIh/wKJD8tDW8xUpkd+Dm7EY+kzvh?=
 =?iso-8859-1?Q?m8N/DNPb9SsOck26Nms/sV95RAwDCHgz+qKXExZ5L+vnYRsnm1xFcgr1GB?=
 =?iso-8859-1?Q?33UPIplyrUtQdARDnlODAHRUkHUcziOIUsVIW8cnYfy594yuqzRPxqlpb9?=
 =?iso-8859-1?Q?JE03KS/ZTPYAP4pcJmSvBP+XqY4b7PUYilrgimGl2HkaBzP7AlV+myNK24?=
 =?iso-8859-1?Q?3AB8y/Nch1rdFRVeLo4ioJxDcyyWtF10jn6fs9107rQhWm7WiSNtEMNmsG?=
 =?iso-8859-1?Q?T/JMAyRwZryGrxyvFi31Wir//1jgRg+zzHz3Hiz5VRdv5uX9gxQiBr9bNz?=
 =?iso-8859-1?Q?pgtwMjJMJZi45q6B3nFecDVxgq+ufXYg9gLVSMxCuAk7A47+ozV66tNr17?=
 =?iso-8859-1?Q?boIgvojubm5HhtOKSO9OPv9kCSoTycwc+Muxv7zKUCWiD06I8ONkjHPFQO?=
 =?iso-8859-1?Q?Bi64GDl84sae7j3jMjUYwIuJAz8zLlKJyVfKb0ac0qHZ70tq8jtE30siGm?=
 =?iso-8859-1?Q?kTPtx571XWlF98GaYRqNjHPUUhiCOsn4LfSPFAmzxQLy9D/qnkkRKw/KUl?=
 =?iso-8859-1?Q?hKXiSbviQ1itQQSVJSWq87ZvejvAxkX0DYj2wueeWYs++ZNzjEGC3+j6At?=
 =?iso-8859-1?Q?8MsELrp7e4uxCQnQK5GZvH9FqB1PzEeW7TWs2kP+RCtKxTPfKyU5EhOKkb?=
 =?iso-8859-1?Q?LqANBUHV3WD0PJyvIVQn5wuuTYX2cVDTfwk1OFqTj/X85rAmqLLIOPmw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b6dab78e-54f1-4b34-6335-08de193dc1d4
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Nov 2025 11:56:56.7960
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: V2ucjCilb8ajYH7jROvjly4qU6nGR2i2OFe9PB+It+xjHhJ+WwCZP8subZ1x9ILS8CiQDrCKWz/tlgzmWFL2nCP3InYBDl15rl5OE76yVEE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB7130

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 a289c48b7f..dc6af94db1 100644
--- a/xen/arch/arm/include/asm/smccc.h
+++ b/xen/arch/arm/include/asm/smccc.h
@@ -381,6 +381,7 @@ void arm_smccc_1_2_smc(const struct arm_smccc_1_2_regs =
*args,
                        0x3FFF)
=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 Sat Nov 01 12:00:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 01 Nov 2025 12:00:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1154943.1484589 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAHU-0006UL-7S; Sat, 01 Nov 2025 12:00:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1154943.1484589; Sat, 01 Nov 2025 12:00:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAHU-0006UE-3V; Sat, 01 Nov 2025 12:00:28 +0000
Received: by outflank-mailman (input) for mailman id 1154943;
 Sat, 01 Nov 2025 12:00:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rLmn=5J=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1vFAHS-0006TW-F0
 for xen-devel@lists.xenproject.org; Sat, 01 Nov 2025 12:00:26 +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 588f8a49-b71a-11f0-980a-7dc792cee155;
 Sat, 01 Nov 2025 13:00:23 +0100 (CET)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by DBBPR03MB7130.eurprd03.prod.outlook.com (2603:10a6:10:20e::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9228.16; Sat, 1 Nov
 2025 12:00:19 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%5]) with mapi id 15.20.9275.013; Sat, 1 Nov 2025
 12:00:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 588f8a49-b71a-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mqEKcaNKrK4NnBxSiVpDaM5Q6aznHXGGBhHZdcHkwEjrkHXalvI0ijWSQnUMUGoGII54axHdvZkk9uimxpr7TOZLsPTkQbctgSXL4WOfaP/oYQ/S4lmXqo1iAuc3MgeoXH0kx4yuG91MzoyTDEuBCi3HGW6dN9YFTO6Jgr3H6avPrvqTq5WbrdBlK6fU8phV8LBeGnnUlnAkiJ8Zw2EmSKMw+NiaK2N32kYK+D9yS6UuJ578wnk25O0RCSuiRpeilIwV1BXpi11xx2wb+Hhm5xYhFebSMyrt2fCBfiNicwTLZCXZT/z6fcWwCC+hstW9+Ivn51FN5e8p6RkphxQ1hQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=L9Hf8k3yiOPRNWuaIqLgnvFfXP8THFxDcRlOyP3uhMA=;
 b=ZmVJC7Y1FjDmaCxEYrJXke6wUALfqFrqJsSkmMPM2nnA66CTCQlNu8WSVKJkmKc1iKawQal7B80FxUgA9mymIXx9xHW8ni9PsnPp9GJNDYxxvedbtEGmHRISPnHPK91kHszMLQVHBivPKlQxYQh3+KwvUv7ZptpfUqd+rquVe7KdatJJxpgY/6Fuu81pwNNEWd0mInR4696/0dn8Ec51Nn+qllKbnRZ6RH96N8Z6QAXByQi4wVoFVgyo4lq8M7bDkD/SstYVB5+QoiTCy/CN8f7v3hWywcjYZOiAVAsiTXIRYKbkxbF5JYLu55m9LCuEGd/90+7SDe6lqG9Cu5a/+g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=L9Hf8k3yiOPRNWuaIqLgnvFfXP8THFxDcRlOyP3uhMA=;
 b=I4kOSm2b9mP1+fLWb6p7WHrrGnZ8Bfwd2Y2mGTbjO0iNZBeWBkSoAgby9Szv/P4BHbHqyI2sZLZ6H3hdNuHDklDTb+JYvBO8ZCrq1dl0ayF6pmftGV3dYXiYwohjjxKy4yROPtULxSkl8qs+JO2Mq5DNpxNT3X4nyKc3uPbfWbEQjgAV9TyVizp9Kqg77pIyKOx86N0PXxyYKRwjLnR1NdAzo1Jiv2V8nj7w4GoVjn1r9OyNUzNGs9iAw1tGppnZVqd9Xi69bTLJ7vmTzLhAbwsQeI+lWSOUa4U0dpu7ce3TLh+kUZkaVPqPNJ0+i+67l4j9XGRvzNQO79jCAJ5NQw==
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>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [PATCH v6 4/5] xen/arm: scmi: introduce SCI SCMI SMC multi-agent
 driver
Thread-Topic: [PATCH v6 4/5] xen/arm: scmi: introduce SCI SCMI SMC multi-agent
 driver
Thread-Index: AQHcSyafF7w2yrI9QUiIBj5xG1SGAbTdt+CA
Date: Sat, 1 Nov 2025 12:00:18 +0000
Message-ID: <b46ae649-dab8-4d8a-b216-c61972b2ef3b@epam.com>
References: <cover.1761998077.git.oleksii_moisieiev@epam.com>
 <ee195eb3a9b04854a6b108da4275877c9a7bb32c.1761998077.git.oleksii_moisieiev@epam.com>
In-Reply-To:
 <ee195eb3a9b04854a6b108da4275877c9a7bb32c.1761998077.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_|DBBPR03MB7130:EE_
x-ms-office365-filtering-correlation-id: e8482623-4113-4037-33db-08de193e3a60
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|7416014|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?VGFJNlJSWW1PN2FJaUdaWmFCREEvWmVMUVRzQ1lZUE90dXFhZzhhVHVvVlJE?=
 =?utf-8?B?VUszN3R5SHA3c3EyTmN5aHkyREF6Uzh2QkdhVWdOaG1YTHp5QzUrNW1tNUc0?=
 =?utf-8?B?N1JDYXZRaHNwVzNxN05DN01DQzViSk9YVFNLOHY2Y3NId0ZWNUMrcHAxdFZS?=
 =?utf-8?B?V1VsT1NtNHBzSFBrSG1vUWhnbG5vSlFRVzdPeTByZDBadUs5a3BsdGFhSUJ2?=
 =?utf-8?B?czJXUG9taDhjdk5wYTN3SUZ2Ym9OdzFFcVhSWUdma2x4SndXWUM1dXlBSzYw?=
 =?utf-8?B?cjBncm5laHdvdmtVZUFXL2pzZkhMNmJlMC9URzQ3UEZkY25BRWpDRVZXektr?=
 =?utf-8?B?NDYrN0ZUaHR6eGVDUVA1VWczUGVQUExkVXF2a2I1M1Y3WWoxK29oMVlvRWc1?=
 =?utf-8?B?ckgwMU9GTndHWkNTQ1VId245THlEQTQ3YWNjWmxZUytPY2Y3cUczWWJqUnFC?=
 =?utf-8?B?eEh3SzVMZWxRWkthNWI1UWZhV2RXaW85ODM5TXdESDJ2STdMVXpMT0VUTThH?=
 =?utf-8?B?dDYzREI2TWZBaVk5YlhjcnZuODB0Q0s1NWtlS2lzclRINlhMVHJockFSOGVK?=
 =?utf-8?B?TWZtTEhBMFpCSXJOZ3BwS3VHSnFWSDZMZThCcmpvaDVNK3VBaGJ3ckphRmdq?=
 =?utf-8?B?ZXExRTJjckdIYURrM3NzVDE5dE5rRjZBeFFvNStxRW9EUWlNNDU0WmZicSs5?=
 =?utf-8?B?TTlIc3RzM2lub0lJNXArZTdEaUFXWHdzN0Q2Z3B2UzVpM2pzK3p3bHhkclFn?=
 =?utf-8?B?ZHFySm9oVmQ4TnRTWS9FN1RUYVRncGhnemIvTEpBTjdseWhVcFQvTGVackxD?=
 =?utf-8?B?VXRtMXB4Wmp4TlBFUEtYNXVtK3RaY0M0bUdhazUvNlptcVRLSmNOUGgwQnl5?=
 =?utf-8?B?dkZucDdPVXRHUjlLeUgxQ2F5ZGw1dE1ycVMvcFBEc3VTakVNZGljaW1ielVB?=
 =?utf-8?B?SW1TcFJsMEw0T3NZZHpzbk1TaENzQXFLU1Q4WmQyTTh5UkVuMnVpL1NpUmlB?=
 =?utf-8?B?dHQyZE11WjRRM0djNnhhRk9RZDB4TGhmOGhGUXo1NDRNUWN2cVc4aXBUWVZw?=
 =?utf-8?B?Y0ZIaE5nb01WMSsvTnlpaGZaa3lpNGlvZ25FelNXZjdWcGduOGJTS0QyZVp2?=
 =?utf-8?B?UVRMMVJWU2prYUZYODV0ZHQ4SzBGTXhMb21SYTkrZ3pHbnNDSlRCd25MVjl6?=
 =?utf-8?B?Uys4OWdhQXNYWnk1NEN6ZWNwV3lMNUMxZFgrdno2Y3MrWGFZQ1JxQWtscGxQ?=
 =?utf-8?B?eTNsc0dmUG5NNy9WaUN4S1BWV2xVdk5ZcEFFZWcxbkNLS1B1bVZoR2xrY3lB?=
 =?utf-8?B?Rk5SY0pZQzgvMThYa04zTnNDMndCcmVHWk92dHVyMkNndXpoSC8zYUszTndC?=
 =?utf-8?B?UWJqSkxleDdSLzZzVHJzbGQ3QlMwdS9HNCtlQUd5Rnc0VHlGRjMyZ1B4c2xE?=
 =?utf-8?B?NThEMXlDVUNETDdVaFgzNlpxT25ZbVF6VG93aW5jdUpGcnRZZ2FUc0dxQXk4?=
 =?utf-8?B?T2dwMEx0NktmZ2M2eGZNaTRUMmx6THlLcmhBSXlwWEtOK3VXdG5GcFlOMnZZ?=
 =?utf-8?B?U2lFUWNOMm1pWEQzT3E0WGtkWWVpTk1tVXVycG8vRU5jcUhJU24rcG9jeGZE?=
 =?utf-8?B?alRvK29VMjhkTWZXamd3Q2JoMlZYVGdwL0p4R3BxYkRSK0ZjS05uQ01iMmVn?=
 =?utf-8?B?VHR2ZnpqWlFINFdyZnNPVUlGOEo1U3czS2JQWnFybmxBdVhpYWZQRkIwTDNV?=
 =?utf-8?B?blY5dnVNZlpYclVwMTk4VXRFeVYycW9EU3VCT3djaTI1TVlOdmNGS0x0dExR?=
 =?utf-8?B?M0FsakF6LzZIdHJQRHFMT3c0S3VoV3JmTjZ5SUNyTHBwN241eDNTLzRyKzZK?=
 =?utf-8?B?QUkzRmNSMWVMeWZET21jRjAxK1lBRDJtNXZCMWxkRlRVWWtFQm45WERhVkFF?=
 =?utf-8?B?V2NNYjViN0FVazhMZUZveDJSNHVMUW1ENnVNcDNwbk9UTm5kcTQ3MUx0ZzV2?=
 =?utf-8?B?Q1N3emVjam5vQmdJUGZ3QkZ5d3g4enpnZmF1OUVtMysxQXJrb3A2elVoQWpn?=
 =?utf-8?Q?4ApdM4?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?eVozYk9LWUdRVHZvckhHNnF3bGVVT1VKZTdhRlRNRi9veEhYaTJjVmthYzRj?=
 =?utf-8?B?SEtUSGFJV25Kcm9MU1BtU0ZGajI5UDByTW9PMzhsdkVoeG5xbUNZdVg4WmZZ?=
 =?utf-8?B?K3RBWC9VMGdJeXhMQzhtMDA2ZEZGdDhPemtRVmJVOE12dXZyOXNRazlVTkty?=
 =?utf-8?B?aDY0V2Yzb2hsYmpaMjE4d21IKzMvRUhiUGxZMmFMSGduQXh1OWJVdVB5ZVNN?=
 =?utf-8?B?bXl5U0pJR3U1dVZJbXNZQzBkdlFvZ29uKzRMN0YrWnJMcTJ2akxZOXNLb21v?=
 =?utf-8?B?UEY4VGxzdEd6QllDcVhaazdWdDUyVDdyZ1FPeWljTjNHcnJad1hEK2VMdSt6?=
 =?utf-8?B?Yk0wbUVPdUU3Z2xoN3pnZGthTkF4MXFlQWdaUXdJY0N6aUZJQWpQbjJJeSth?=
 =?utf-8?B?Y1dRVzM1M09aL09wbEpuSkIzY2k4aitGbmJRbVBFTi9MNS8wclF5dHg4U1R6?=
 =?utf-8?B?T3U3RC9raG5NelpvSTA3aWhUcTFPVjRIVWcvYjdzVjdxSVM1WWlJUExRdTdB?=
 =?utf-8?B?RmlGVjZYbXpzcVhtdWsxeVZKb1NhRlJ1RVBuWmluWlVkZFp6UXViSjljMHRt?=
 =?utf-8?B?NGt3WDVRV1BXengxd0ZWUnZYa1JuYUpzaXgrbUpjMWhQMEFmYkxvK1RUZTZW?=
 =?utf-8?B?cjArLzAyczc4WVo1Zk52bmpxcWdxSGJvdGZYcjV6U0doUm1ZaVJLSUtNeHJX?=
 =?utf-8?B?Y1pob1BtQUV0cTVxMXhrL1p5TnVtdlQvMnVXeE1BbTlMcjlWVERucjZ2eDlw?=
 =?utf-8?B?Y1poZkl3QkxPb1l0VndSSDd4V3FWVlhOdDIwVHpDdGNUZE1QcXZSTTgwUlFo?=
 =?utf-8?B?SmdmeHFaYk1OS2JYbTVOeVhYUCt4NmY3bWszWFRwblF1RHluVVBWa1p5MXcv?=
 =?utf-8?B?OWE2V2NHL0tTRWZRMFZxOUEvcW1hSjMrdW1jdnJyOHlFeHhwS25TbVhiSjJw?=
 =?utf-8?B?YitEMkxPczFvdjVkK1lsaVJpSWZEcnBwOUhFS2o2WUJVVngzZ0IzZWVsNzVn?=
 =?utf-8?B?SHBVeThTYVdnMTNmbi9JdFVNVWhaSlJndUZVOGZXNHlsandIQXZmbStvQWRJ?=
 =?utf-8?B?MWJHWUg3UEFndE9MME9mTnBLcWN4YWltc1hDbklBbE1tV0F6blJyL3hXTnIw?=
 =?utf-8?B?RG54bmFtY1g2MWVHZ2puTU9QTVdiWlRYZzZjQkVHcElqVVNCYjJBYWY3ck1u?=
 =?utf-8?B?V1pPMEFVYUhhUDVnRnBtRjlvd0hIQmtWcUdvTWlLQW9RSTlBUDBWNzNEU1Fq?=
 =?utf-8?B?OVFyenFCL09JUE9rZ2JpeGNXZmtBQ0NVWjlvaFVWMkZDRHBsTWtXWDFFQ0N1?=
 =?utf-8?B?YTFZTjJPbHVzNWNwL0FtYjVsNDR3R2hEMXVXekNKaElBcUEwR2tybmVVTkgx?=
 =?utf-8?B?dkcrYU9SYkJ0TWVVNE5LZWVVdkVhR2tzdHF6RTZac2RWZmgybm9xcXpqOVV1?=
 =?utf-8?B?ZFQrS0IwNnczMCt3ZmRBekNKcmlObzQ0R2djaElPcitOc0FxeHRGSXgwVW5Z?=
 =?utf-8?B?akFESUtjNW4vN0V6cDhRL1pIaVF5MFdqSW92a3hwUWF6VnJNdDZlaGphK0xv?=
 =?utf-8?B?dENCdmNLK1ZscU1WcVdXTitITEl2dUlYb1N1b2NhOEFEMExJYkZFU3JzVkJm?=
 =?utf-8?B?RUkzSk9QUE5oajNQOUZkTEh6dktWWjkySFJFRnUyZjh2aEpjZmppa2RpVkda?=
 =?utf-8?B?MWpXY2NhN0hTUzhlTkxsWEtlbW9yTWlHTnMzSS84MWQrQkZXTGdQNDFKMEpo?=
 =?utf-8?B?SEdJQmJTTk45OXI4aEdvYW1zZ2pYMmVwVVA1QVNyV2d3cEZjaElESmpSZDAy?=
 =?utf-8?B?ZXMyMDJEb1JCNEppZEllNzIrMWszcFJRaDVrRjkzN0Rwa3BTU0RJQ3hneUlJ?=
 =?utf-8?B?REFJcThWRWZYdW9XeEY5MTNtM0hwWEtzcUcyTGdjdUg3bTZ1TmFPQ3NkUFlL?=
 =?utf-8?B?YUVHSnh5NDBNajdlZUpPaEhIbVVpUGwrVHFJTnNyYzdjUC9qREtyWTk1SU1i?=
 =?utf-8?B?VE1qRHNXSjd1amZzOWlnNmFzbTZ2VVV0TmJrcnBqRi9KVG5rYmc4ZU4rN3p4?=
 =?utf-8?B?UmdTVDFkSHRsbjVvNkdMRnU5YUNNalhHRjVxTUxGZ3d1WnBtclFQUlJvRkti?=
 =?utf-8?B?WXgwcVVMdjdSY1NLRGlIcjl5ZVRaRmtDeDhBaHNQYXMyV3JSZjBBSWFpdDBZ?=
 =?utf-8?B?c1E9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <B9F1C86F42D0E84BBA40E8D6280CE987@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: e8482623-4113-4037-33db-08de193e3a60
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Nov 2025 12:00:18.9692
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: B6u3xsyQhkrHNGc55NPVmPK9M+yGr4Y5jZPbNKG6xpCbLyqsU6WN/hxtn8q+mQkGfjmKSJ75YZ7Wv7BXjL8CUrRI3QN7wWozsuuFxbwIly4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB7130

SGkgYWxsLA0KRm9sbG93aW5nIHVwIHVuY292ZXJlZCBjb21tZW50cyBmcm9tIHY1LiBRdWVzdGlv
bnMgYXJlIG1hcmtlZCBhcyBROiBhbmQNCmFuc3dlcnMgYXMgQToNCnBsZWFzZSBzZWUgYmVsb3c6
DQoNCk9uIDAxLzExLzIwMjUgMTM6NTYsIE9sZWtzaWkgTW9pc2llaWV2IHdyb3RlOg0KPiBUaGlz
IHBhdGNoIGludHJvZHVjZXMgU0NJIGRyaXZlciB0byBzdXBwb3J0IGZvciBBUk0gRUwzIFRydXN0
ZWQgRmlybXdhcmUtQQ0KPiAoVEYtQSkgd2hpY2ggcHJvdmlkZXMgU0NNSSBpbnRlcmZhY2Ugd2l0
aCBtdWx0aS1hZ2VudCBzdXBwb3J0LCBhcyBzaG93bg0KPiBiZWxvdy4NCj4NCj4gICAgKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiAgICB8ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICAgIHwgRUwzIFRGLUEgU0NNSSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwNCj4gICAgKy0tLS0tLS0rLS0rLS0tLS0tLSstLSstLS0t
LS0tKy0tKy0tLS0tLS0rKw0KPiAgICB8c2htZW0xIHwgIHxzaG1lbTAgfCAgfHNobWVtMiB8ICB8
c2htZW1YIHwNCj4gICAgKy0tLS0tKy0rICArLS0tKy0tLSsgICstLSstLS0tKyAgKy0tLSstLS0r
DQo+IHNtYy1pZDEgfCAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgIHwNCj4gYWdlbnQxICB8
ICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgfA0KPiAgICArLS0tLS12LS0tLS0tLS0rLS0t
LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0rDQo+ICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICB8
ICAgICAgICAgICB8ICAgIHwNCj4gICAgfCAgICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAg
ICAgIHwgICAgfA0KPiAgICArLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t
LS0rDQo+ICAgICAgICAgICBzbWMtaWQwIHwgIHNtYy1pZDJ8ICAgIHNtYy1pZFh8DQo+ICAgICAg
ICAgICBhZ2VudDAgIHwgIGFnZW50MiB8ICAgIGFnZW50WCB8DQo+ICAgICAgICAgICAgICAgICAg
IHwgICAgICAgICB8ICAgICAgICAgICB8DQo+ICAgICAgICAgICAgICArLS0tLXYtLS0rICArLS12
LS0tLS0rICArLS12LS0tLS0rDQo+ICAgICAgICAgICAgICB8ICAgICAgICB8ICB8ICAgICAgICB8
ICB8ICAgICAgICB8DQo+ICAgICAgICAgICAgICB8IERvbTAgICB8ICB8IERvbTEgICB8ICB8IERv
bVggICB8DQo+ICAgICAgICAgICAgICB8ICAgICAgICB8ICB8ICAgICAgICB8ICB8ICAgICAgICB8
DQo+ICAgICAgICAgICAgICB8ICAgICAgICB8ICB8ICAgICAgICB8ICB8ICAgICAgICB8DQo+ICAg
ICAgICAgICAgICArLS0tLS0tLS0rICArLS0tLS0tLS0rICArLS0tLS0tLS0rDQo+DQo+IFRoZSBF
TDMgU0NNSSBtdWx0aS1hZ2VudCBmaXJtd2FyZSBpcyBleHBlY3RlZCB0byBwcm92aWRlIFNDTUkg
U01DIHNoYXJlZA0KPiBtZW1vcnkgdHJhbnNwb3J0IGZvciBldmVyeSBBZ2VudCBpbiB0aGUgc3lz
dGVtLg0KPg0KPiBUaGUgU0NNSSBBZ2VudCB0cmFuc3BvcnQgY2hhbm5lbCBkZWZpbmVkIGJ5IHBh
aXI6DQo+ICAgLSBzbWMtaWQ6IFNNQyBpZCB1c2VkIGZvciBEb29yYmVsbA0KPiAgIC0gc2htZW06
IHNoYXJlZCBtZW1vcnkgZm9yIG1lc3NhZ2VzIHRyYW5zZmVyLCBYZW4gcGFnZQ0KPiAgIGFsaWdu
ZWQuIFNoYXJlZCBtZW1vcnQgaXMgbWFwcGVkIHdpdGggdGhlIGZvbGxvd2luZyBmbGFnczoNCj4g
ICBNVF9ERVZJQ0VfbkduUkUuDQo+DQo+IFRoZSBmb2xsd29pbmcgU0NNSSBBZ2VudHMgYXJlIGV4
cGVjdGVkIHRvIGJlIGRlZmluZWQgYnkgU0NNSSBGVyB0byBlbmFibGUgU0NNSQ0KPiBtdWx0aS1h
Z2VudCBmdW5jdGlvbmFsaXR5IHVuZGVyIFhlbjoNCj4gLSBYZW4gbWFuYWdlbWVudCBhZ2VudDog
dHJ1c3RlZCBhZ2VudHMgdGhhdCBhY2Nlc3NlcyB0byB0aGUgQmFzZSBQcm90b2NvbA0KPiBjb21t
YW5kcyB0byBjb25maWd1cmUgYWdlbnQgc3BlY2lmaWMgcGVybWlzc2lvbnMNCj4gLSBPU1BNIFZN
IGFnZW50czogbm9uLXRydXN0ZWQgYWdlbnQsIG9uZSBmb3IgZWFjaCBHdWVzdCBkb21haW4gd2hp
Y2ggaXMNCj4gICAgYWxsb3dlZCBkaXJlY3QgSFcgYWNjZXNzLiBBdCBsZWFzdCBvbmUgT1NQTSBW
TSBhZ2VudCBoYXMgdG8gYmUgcHJvdmlkZWQNCj4gICAgYnkgRlcgaWYgSFcgaXMgaGFuZGxlZCBv
bmx5IGJ5IERvbTAgb3IgRHJpdmVyIERvbWFpbi4NCj4NCj4gVGhlIEVMMyBTQ01JIEZXIGlzIGV4
cGVjdGVkIHRvIGltcGxlbWVudCBmb2xsb3dpbmcgQmFzZSBwcm90b2NvbCBtZXNzYWdlczoNCj4g
LSBCQVNFX0RJU0NPVkVSX0FHRU5UIChvcHRpb25hbCBpZiBhZ2VudF9pZCB3YXMgcHJvdmlkZWQp
DQo+IC0gQkFTRV9SRVNFVF9BR0VOVF9DT05GSUdVUkFUSU9OIChvcHRpb25hbCkNCj4gLSBCQVNF
X1NFVF9ERVZJQ0VfUEVSTUlTU0lPTlMgKG9wdGlvbmFsKQ0KPg0KPiBUaGUgU0NJIFNDTUkgU01D
IG11bHRpLWFnZW50IGRyaXZlciBpbXBsZW1lbnRzIGZvbGxvd2luZw0KPiBmdW5jdGlvbmFsaXR5
Og0KPiAtIFRoZSBkcml2ZXIgaXMgaW5pdGlhbGl6ZWQgYmFzZWQgb24gdGhlIGBgeGVuLGNvbmZp
Z2BgIG5vZGUgdW5kZXIgYGBjaG9zZW5gYA0KPiAgICAob25seSBvbmUgU0NNSSBpbnRlcmZhY2Ug
aXMgc3VwcG9ydGVkKSwgd2hpY2ggZGVzY3JpYmVzIHRoZSBYZW4gbWFuYWdlbWVudA0KPiAgICBh
Z2VudCBTQ01JIGludGVyZmFjZS4NCj4NCj4gc2NtaV9zaG1fMTogc3JhbUA0N2ZmMTAwMCB7DQo+
ICAgICAgICAgICAgY29tcGF0aWJsZSA9ICJhcm0sc2NtaS1zaG1lbSI7DQo+ICAgICAgICAgICAg
cmVnID0gPDB4MCAweDQ3ZmYxMDAwIDB4MCAweDEwMDA+Ow0KPiB9Ow0KPiBzY21pX3hlbjogc2Nt
aSB7DQo+ICAgICAgICAgIGNvbXBhdGlibGUgPSAiYXJtLHNjbWktc21jIjsNCj4gICAgICAgICAg
YXJtLHNtYy1pZCA9IDwweDgyMDAwMDAzPjsgPC0tLSBYZW4gbWFuYWdlbWVudCBhZ2VudCBzbWMt
aWQNCj4gICAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSA8IDE+Ow0KPiAgICAgICAgICAjc2l6ZS1j
ZWxscyA9IDwgMD47DQo+ICAgICAgICAgICNhY2Nlc3MtY29udHJvbGxlci1jZWxscyA9IDwgMT47
DQo+ICAgICAgICAgIHNobWVtID0gPCZzY21pX3NobV8xPjsgPC0tLSBYZW4gbWFuYWdlbWVudCBh
Z2VudCBzaG1lbQ0KPiB9Ow0KPg0KPiAtIFRoZSBkcml2ZXIgb2J0YWlucyBYZW4gc3BlY2lmaWMg
U0NNSSBBZ2VudCdzIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgSG9zdCBEVCwgcHJvYmVzIEFnZW50
cyBhbmQNCj4gICAgYnVpbGRzIFNDTUkgQWdlbnRzIGxpc3QuIFRoZSBBZ2VudHMgY29uZmlndXJh
dGlvbiBpcyB0YWtlbiBmcm9tICJzY21pLXNlY29uZGFyeS1hZ2VudHMiDQo+ICAgIHByb3BlcnR5
IHdoZXJlIGZpcnN0IGl0ZW0gaXMgImFybSxzbWMtaWQiLCBzZWNvbmQgLSAiYXJtLHNjbWktc2ht
ZW0iIHBoYW5kbGUgYW5kIHRoaXJkIGlzDQo+ICAgIG9wdGlvbmFsICJhZ2VudF9pZCI6DQo+DQo+
IGNob3NlbiB7DQo+ICAgIHJhbmdlczsNCj4gICAgeGVuLGNvbmZpZyB7DQpROiBbU3RlZmFub10g
VGhlIG5vZGUgbmFtZSBjb3VsZCBiZSB4ZW4tY29uZmlnLCBidXQgaXQgZG9lc24ndCBtYXR0ZXIN
CmJlY2F1c2Ugd2UNCnNob3VsZCBjaGVjayBmb3IgdGhlIGNvbXBhdGlibGUgc3RyaW5nIGluc3Rl
YWQgKG5vIGNoZWNrIG9uIG5vZGUgbmFtZSkuDQoNCldlIG5lZWQgdG8gYWRkIGEgY29tcGF0aWJs
ZSBzdHJpbmcgaGVyZSwgSSB3b3VsZCB1c2UgInhlbixzY21pIjoNCg0KICAgICBjb21wYXRpYmxl
ID0gInhlbixzY21pIjsNCg0KDQpBOiBbT01dIHRoaXMgaXMgYSBncmVhdCBmaW5kaW5nLiBBZnRl
ciBsb29raW5nIGludG8gaHlwZXJsYXVjaCBjb2RlIEkNCnNlZSB0aGUgZm9sbG93aW5nIGltcGxl
bWVudGF0aW9uOg0KDQoNCmNvbmZpZyB7DQogICAgICAgICBjb21wYXRpYmxlID0gInhlbixjb25m
aWciOw0KICAgICAuLi4NCn07DQoNCkkgd2FzIHRoaW5raW5nIGFib3V0IGNoYW5naW5nIGN1cnJl
bnQgYXBwcm9hY2ggdG8gaGF2ZSB0aGUgZm9sbG93aW5nIGZvcm1hdDoNCg0KY29uZmlnIHsNCiAg
ICAgICAgIGNvbXBhdGlibGUgPSAieGVuLGNvbmZpZyI7DQogICAgIC4uLg0KICAgICBzY21pX2Nv
bmZpZyB7DQogICAgICAgICBjb21wYXRpYmxlID0gInhlbixzY2kiOyA8LS0gbW9yZSBnZW5lcmlj
IGNvbXBhdGlibGUgc3RyaW5nIHRoYW4NCiJ4ZW4sc2NtaSINCiAgICAgICAgIHNjbWktc2Vjb25k
YXJ5LWFnZW50cyA9IDwNCiAgICAgICAgICAgICAgICAgICAweDgyMDAwMDAzICZzY21pX3NobV8w
IDANCiAgICAgICAgICAgICAgICAgICAweDgyMDAwMDA0ICZzY21pX3NobV8yIDINCiAgICAgICAg
ICAgICAgICAgICAuLi4+Ow0KICAgICAgICAgICAgICAgICAjc2NtaS1zZWNvbmRhcnktYWdlbnRz
LWNlbGxzID0gPDM+OyA8LS0tIG9wdGlvbmFsLA0KZGVmYXVsdCAzDQogICAgICAgICAgICAgICAg
IHNjbWlfc2htXzAgOiBzcmFtQDQ3ZmYwMDAwIHsNCiAgICAgICAgICAgICAgICAgY29tcGF0aWJs
ZSA9ICJhcm0sc2NtaS1zaG1lbSI7DQogICAgICAgICAgICAgICAgIHJlZyA9IDwweDAgMHg0N2Zm
MDAwMCAweDAgMHgxMDAwPjsNCiAgICAgICAgICAgICB9Ow0KDQogICAgICAgICBzY21pX3NobV8y
OiBzcmFtQDQ3ZmYyMDAwIHsNCiAgICAgICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgPSAiYXJt
LHNjbWktc2htZW0iOw0KICAgICAgICAgICAgICAgICAgICByZWcgPSA8MHgwIDB4NDdmZjIwMDAg
MHgwIDB4MTAwMD47DQogICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICBzY21pX3hlbjogc2Nt
aSB7DQogICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgPSAiYXJtLHNjbWktc21jIjsNCiAgICAg
ICAgICAgICAgICAgYXJtLHNtYy1pZCA9IDwweDgyMDAwMDAyPjsgPC0tLSBYZW4gbWFuZWdlbWVu
dCBhZ2VudCBzbWMtaWQNCiAgICAgICAgICAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSA8IDE+Ow0K
ICAgICAgICAgICAgICAgICAjc2l6ZS1jZWxscyA9IDwgMD47DQogICAgICAgICAgICAgICAgICNh
Y2Nlc3MtY29udHJvbGxlci1jZWxscyA9IDwgMT47DQogICAgICAgICAgICAgICAgIHNobWVtID0g
PCZzY21pX3NobV8xPjsgPC0tLSBYZW4gbWFuZWdlbWVudCBhZ2VudCBzaG1lbQ0KICAgICAgICAg
ICAgIH07DQogICAgIH07DQogICAgIC4uLg0KfTsNCg0KYW5kIHVwZGF0ZSBzY21pLW11bHRpYWdl
bnQgZHJpdmVyIHRvIG1hdGNoICJ4ZW4sc2NpIiBjb21wYXRpYmxlIGFuZA0KcHJvY2VzcyBhbGwg
c3Vibm9kZXMgZHVyaW5nIHByb2JlLg0KV2hhdCBkbyB5b3UgdGhpbmsgYWJvdXQgdGhpcyBhcHBy
b2FjaD8NCg0KPiAgICAgIHJhbmdlczsNCj4gICAgICBzY21pLXNlY29uZGFyeS1hZ2VudHMgPSA8
DQo+ICAgICAgICAgICAgICAgICAgICAweDgyMDAwMDAzICZzY21pX3NobV8wIDANCj4gICAgICAg
ICAgICAgICAgICAgIDB4ODIwMDAwMDQgJnNjbWlfc2htXzIgMg0KPiAgICAgICAgICAgICAgICAg
ICAgMHg4MjAwMDAwNSAmc2NtaV9zaG1fMyAzDQo+ICAgICAgICAgICAgICAgICAgICAweDgyMDAw
MDA2ICZzY21pX3NobV80IDQ+Ow0KPiAgICAgICNzY21pLXNlY29uZGFyeS1hZ2VudHMtY2VsbHMg
PSA8Mz47IDwtLS0gb3B0aW9uYWwsIGRlZmF1bHQgMw0KPg0KPiAgICAgIHNjbWlfc2htXzAgOiBz
cmFtQDQ3ZmYwMDAwIHsNCj4gICAgICAgICAgY29tcGF0aWJsZSA9ICJhcm0sc2NtaS1zaG1lbSI7
DQo+ICAgICAgICAgIHJlZyA9IDwweDAgMHg0N2ZmMDAwMCAweDAgMHgxMDAwPjsNCj4gICAgICB9
Ow0KPg0KPiAgICAgIHNjbWlfc2htXzI6IHNyYW1ANDdmZjIwMDAgew0KPiAgICAgICAgICAgICAg
Y29tcGF0aWJsZSA9ICJhcm0sc2NtaS1zaG1lbSI7DQo+ICAgICAgICAgICAgICByZWcgPSA8MHgw
IDB4NDdmZjIwMDAgMHgwIDB4MTAwMD47DQo+ICAgICAgfTsNCj4gICAgICBzY21pX3NobV8zOiBz
cmFtQDQ3ZmYzMDAwIHsNCj4gICAgICAgICAgICAgIGNvbXBhdGlibGUgPSAiYXJtLHNjbWktc2ht
ZW0iOw0KPiAgICAgICAgICAgICAgcmVnID0gPDB4MCAweDQ3ZmYzMDAwIDB4MCAweDEwMDA+Ow0K
PiAgICAgIH07DQo+ICAgICAgc2NtaV9zaG1fNDogc3JhbUA0N2ZmNDAwMCB7DQo+ICAgICAgICAg
ICAgICBjb21wYXRpYmxlID0gImFybSxzY21pLXNobWVtIjsNCj4gICAgICAgICAgICAgIHJlZyA9
IDwweDAgMHg0N2ZmNDAwMCAweDAgMHgxMDAwPjsNCj4gICAgICB9Ow0KPg0KPiAgICAgIC8vIFhl
biBTQ01JIG1hbmFnZW1lbnQgY2hhbm5lbA0KPiAgICAgIHNjbWlfc2htXzE6IHNyYW1ANDdmZjEw
MDAgew0KPiAgICAgICAgICAgICAgY29tcGF0aWJsZSA9ICJhcm0sc2NtaS1zaG1lbSI7DQo+ICAg
ICAgICAgICAgICByZWcgPSA8MHgwIDB4NDdmZjEwMDAgMHgwIDB4MTAwMD47DQo+ICAgICAgfTsN
Cj4NCj4gICAgICBzY21pX3hlbjogc2NtaSB7DQo+ICAgICAgICAgIGNvbXBhdGlibGUgPSAiYXJt
LHNjbWktc21jIjsNCj4gICAgICAgICAgYXJtLHNtYy1pZCA9IDwweDgyMDAwMDAyPjsgPC0tLSBY
ZW4gbWFuYWdlbWVudCBhZ2VudCBzbWMtaWQNCj4gICAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSA8
IDE+Ow0KPiAgICAgICAgICAjc2l6ZS1jZWxscyA9IDwgMD47DQo+ICAgICAgICAgICNhY2Nlc3Mt
Y29udHJvbGxlci1jZWxscyA9IDwgMT47DQo+ICAgICAgICAgIHNobWVtID0gPCZzY21pX3NobV8x
PjsgPC0tLSBYZW4gbWFuYWdlbWVudCBhZ2VudCBzaG1lbQ0KPiAgICAgIH07DQo+ICAgIH07DQo+
IH07DQo+DQo+IC97DQo+ICAgICAgLy8gSG9zdCBTQ01JIE9TUE0gY2hhbm5lbCAtIHByb3ZpZGVk
IHRvIHRoZSBEb20wIGFzIGlzIGlmIFNDTUkgZW5hYmxlZCBmb3IgaXQNCj4gICAgICBzY21pX3No
bTogc3JhbUA0N2ZmMDAwMCB7DQo+ICAgICAgICAgICAgICBjb21wYXRpYmxlID0gImFybSxzY21p
LXNobWVtIjsNCj4gICAgICAgICAgICAgIHJlZyA9IDwweDAgMHg0N2ZmMDAwMCAweDAgMHgxMDAw
PjsNCj4gICAgICB9Ow0KPg0KPiAgICAgIGZpcm13YXJlIHsNCj4gICAgICAgICAgc2NtaTogc2Nt
aSB7DQo+ICAgICAgICAgICAgICBjb21wYXRpYmxlID0gImFybSxzY21pLXNtYyI7DQo+ICAgICAg
ICAgICAgICBhcm0sc21jLWlkID0gPDB4ODIwMDAwMDI+OyA8LS0tIEhvc3QgT1NQTSBhZ2VudCBz
bWMtaWQNCj4gICAgICAgICAgICAgICNhZGRyZXNzLWNlbGxzID0gPCAxPjsNCj4gICAgICAgICAg
ICAgICNzaXplLWNlbGxzID0gPCAwPjsNCj4gICAgICAgICAgICAgIHNobWVtID0gPCZzY21pX3No
bT47IDwtLS0gSG9zdCBPU1BNIGFnZW50IHNobWVtDQo+DQo+ICAgICAgICAgICAgICBwcm90b2Nv
bEBYew0KPiAgICAgICAgICAgICAgfTsNCj4gICAgICAgICAgfTsNCj4gICAgICB9Ow0KPiB9Ow0K
Pg0KPiBUaGlzIGFwcHJvYWNoIGFsbG93cyBkZWZpbmluZyBtdWx0aXBsZSBTQ01JIEFnZW50cyBi
eSBhZGRpbmcgWGVuLXNwZWNpZmljIHByb3BlcnRpZXMgdW5kZXINCj4gdGhlIGBgL2Nob3NlbmBg
IG5vZGUgdG8gdGhlIEhvc3QgRGV2aWNlIFRyZWUsIGxlYXZpbmcgdGhlIG1haW4gcGFydCB1bmNo
YW5nZWQuIFRoZSBIb3N0IERUDQo+IFNDTUkgY2hhbm5lbCB3aWxsIGJlIHBhc3NlZCB0byBEb20w
Lg0KPg0KPiBUaGUgWGVuIG1hbmFnZW1lbnQgYWdlbnQgaXMgZGVzY3JpYmVkIGFzIGEgYGBzY21p
X3hlbmBgIG5vZGUgdW5kZXIgdGhlIGBgL2Nob3NlbmBgIG5vZGUsIHdoaWNoDQo+IGlzIHVzZWQg
YnkgWGVuIHRvIGNvbnRyb2wgb3RoZXIgU0NNSSBBZ2VudHMgaW4gdGhlIHN5c3RlbS4NCj4NCj4g
QWxsIHNlY29uZGFyeSBhZ2VudHMnIGNvbmZpZ3VyYXRpb25zIGFyZSBwcm92aWRlZCBpbiB0aGUg
YGBzY21pLXNlY29uZGFyeS1hZ2VudHNgYCBwcm9wZXJ0eSB3aXRoDQo+IGFuIG9wdGlvbmFsIGBg
YWdlbnRfaWRgYCBmaWVsZC4NCj4NCj4gVGhlIGBgYWdlbnRfaWRgYCBmcm9tIHRoZSBgYHNjbWkt
c2Vjb25kYXJ5LWFnZW50c2BgIHByb3BlcnR5IGlzIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGFnZW50
IGluIHRoZQ0KPiBzeXN0ZW0gYW5kIGNhbiBiZSBvbWl0dGVkIGJ5IHNldHRpbmcgYGAjc2NtaS1z
ZWNvbmRhcnktYWdlbnRzLWNlbGxzID0gPDI+YGAsIHNvIHRoZSBTZWNvbmRhcnkNCj4gQWdlbnRz
IGNvbmZpZ3VyYXRpb24gd2lsbCBsb29rIGxpa2UgdGhpczoNCj4NCj4gY2hvc2VuIHsNCj4gICAg
eGVuLGNvbmZpZyB7DQo+ICAgICAgc2NtaS1zZWNvbmRhcnktYWdlbnRzID0gPA0KPiAgICAgICAg
ICAgICAgICAgICAgMHg4MjAwMDAwMyAmc2NtaV9zaG1fMA0KPiAgICAgICAgICAgICAgICAgICAg
MHg4MjAwMDAwNCAmc2NtaV9zaG1fMg0KPiAgICAgICAgICAgICAgICAgICAgMHg4MjAwMDAwNSAm
c2NtaV9zaG1fMw0KPiAgICAgICAgICAgICAgICAgICAgMHg4MjAwMDAwNiAmc2NtaV9zaG1fND47
DQo+ICAgICAgI3NjbWktc2Vjb25kYXJ5LWFnZW50cy1jZWxscyA9IDwyPjsNCj4gICAgfTsNCj4g
fQ0KPg0KPiBJbiB0aGlzIGNhc2UsIFhlbiB3aWxsIHVzZSB0aGUgYGBTQ01JX0JBU0VfRElTQ09W
RVJfQUdFTlRgYCBjYWxsIHRvIGRpc2NvdmVyIHRoZSBgYGFnZW50X2lkYGANCj4gZm9yIGVhY2gg
c2Vjb25kYXJ5IGFnZW50LiBQcm92aWRpbmcgdGhlIGBgYWdlbnRfaWRgYCBpbiB0aGUgYGBzY21p
LXNlY29uZGFyeS1hZ2VudHNgYCBwcm9wZXJ0eQ0KPiBhbGxvd3Mgc2tpcHBpbmcgdGhlIGRpc2Nv
dmVyeSBjYWxsLCB3aGljaCBpcyB1c2VmdWwgd2hlbiB0aGUgc2Vjb25kYXJ5IGFnZW50J3Mgc2hh
cmVkIG1lbW9yeSBpcw0KPiBub3QgYWNjZXNzaWJsZSBieSBYZW4gb3Igd2hlbiBib290IHRpbWUg
aXMgaW1wb3J0YW50IGJlY2F1c2UgaXQgYWxsb3dzIHNraXBwaW5nIHRoZSBhZ2VudA0KPiBkaXNj
b3ZlcnkgcHJvY2VkdXJlLg0KPg0KPiAgICBOb3RlIHRoYXQgWGVuIGlzIHRoZSBvbmx5IG9uZSBl
bnRyeSBpbiB0aGUgc3lzdGVtIHdoaWNoIG5lZWQgdG8ga25vdw0KPiAgICBhYm91dCBTQ01JIG11
bHRpLWFnZW50IHN1cHBvcnQuDQo+DQo+IC0gSXQgaW1wbGVtZW50cyB0aGUgU0NJIHN1YnN5c3Rl
bSBpbnRlcmZhY2UgcmVxdWlyZWQgZm9yIGNvbmZpZ3VyaW5nIGFuZA0KPiBlbmFibGluZyBTQ01J
IGZ1bmN0aW9uYWxpdHkgZm9yIERvbTAvaHdkb20gYW5kIEd1ZXN0IGRvbWFpbnMuIFRvIGVuYWJs
ZQ0KPiBTQ01JIGZ1bmN0aW9uYWxpdHkgZm9yIGRvbWFpbiBpdCBoYXMgdG8gYmUgY29uZmlndXJl
ZCB3aXRoIHVuaXF1ZSBzdXBwb3J0ZWQNCj4gU0NNSSBBZ2VudF9pZCBhbmQgdXNlIGNvcnJlc3Bv
bmRpbmcgU0NNSSBTTUMgc2hhcmVkIG1lbW9yeSB0cmFuc3BvcnQNCj4gW3NtYy1pZCwgc2htZW1d
IGRlZmluZWQgZm9yIHRoaXMgU0NNSSBBZ2VudF9pZC4NCj4gLSBPbmNlIFhlbiBkb21haW4gaXMg
Y29uZmlndXJlZCBpdCBjYW4gY29tbXVuaWNhdGUgd2l0aCBFTDMgU0NNSSBGVzoNCj4gICAgLS0g
emVyby1jb3B5LCB0aGUgZ3Vlc3QgZG9tYWluIHB1dHMgU0NNSSBtZXNzYWdlIGluIHNobWVtOw0K
PiAgICAtLSB0aGUgZ3Vlc3QgdHJpZ2dlcnMgU01DIGV4Y2VwdGlvbiB3aXRoIHNtYy1pZCAoZG9v
cmJlbGwpOw0KPiAgICAtLSB0aGUgWGVuIGRyaXZlciBjYXRjaGVzIGV4Y2VwdGlvbiwgZG8gY2hl
Y2tzIGFuZCBzeW5jaHJvbm91c2x5IGZvcndhcmRzDQo+ICAgIGl0IHRvIEVMMyBGVy4NCj4gLSB0
aGUgWGVuIGRyaXZlciBzZW5kcyBCQVNFX1JFU0VUX0FHRU5UX0NPTkZJR1VSQVRJT04gbWVzc2Fn
ZSB0byBYZW4NCj4gICAgbWFuYWdlbWVudCBhZ2VudCBjaGFubmVsIG9uIGRvbWFpbiBkZXN0cm95
IGV2ZW50LiBUaGlzIGFsbG93cyB0byByZXNldA0KPiAgICByZXNvdXJjZXMgdXNlZCBieSBkb21h
aW4gYW5kIHNvIGltcGxlbWVudCB1c2UtY2FzZSBsaWtlIGRvbWFpbiByZWJvb3QuDQo+DQo+IERv
bTAgRW5hYmxlIFNDTUkgU01DOg0KPiAgIC0gcGFzcyBkb20wX3NjbWlfYWdlbnRfaWQ9PGFnZW50
X2lkPiBpbiBYZW4gY29tbWFuZCBsaW5lLiBpZiBub3QgcHJvdmlkZWQNCj4gICAgIFNDTUkgd2ls
bCBiZSBkaXNhYmxlZCBmb3IgRG9tMCBhbmQgYWxsIFNDTUkgbm9kZXMgcmVtb3ZlZCBmcm9tIERv
bTAgRFQuDQo+ICAgICBUaGUgZHJpdmVyIHVwZGF0ZXMgRG9tMCBEVCBTQ01JIG5vZGUgImFybSxz
bWMtaWQiIHZhbHVlIGFuZCBmaXggdXAgc2htZW0NCj4gICAgIG5vZGUgYWNjb3JkaW5nIHRvIGFz
c2lnbmVkIGFnZW50X2lkLg0KPg0KPiBHdWVzdCBkb21haW5zIGVuYWJsZSBTQ01JIFNNQzoNCj4g
ICAtIHhsLmNmZzogYWRkIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGFzIGJlbG93DQo+DQo+ICAgICBh
cm1fc2NpID0gInR5cGU9c2NtaV9zbWNfbXVsdGlhZ2VudCxhZ2VudF9pZD0yIg0KPg0KPiAgIC0g
eGwuY2ZnOiBlbmFibGUgYWNjZXNzIHRvIHRoZSAiYXJtLHNjbWktc2htZW0iIHdoaWNoIHNob3Vs
ZCBjb3JyZXNwb25kIGFzc2lnbmVkIGFnZW50X2lkIGZvcg0KPiAgICAgdGhlIGRvbWFpbiwgZm9y
IGV4YW1wbGU6DQo+DQo+IGlvbWVtID0gWw0KPiAgICAgICI0N2ZmMiwxQDIyMDAxIiwNCj4gXQ0K
Pg0KPiAgIC0gRFQ6IGFkZCBTQ01JIG5vZGVzIHRvIHRoZSBEcml2ZXIgZG9tYWluIHBhcnRpYWwg
ZGV2aWNlIHRyZWUgYXMgaW4gdGhlDQo+ICAgYmVsb3cgZXhhbXBsZS4gVGhlICJhcm0sc21jLWlk
IiBzaG91bGQgY29ycmVzcG9uZCBhc3NpZ25lZCBhZ2VudF9pZCBmb3IgdGhlIGRvbWFpbjoNCj4N
Cj4gcGFzc3Rocm91Z2ggew0KPiAgICAgc2NtaV9zaG1fMDogc3JhbUAyMjAwMTAwMCB7DQo+ICAg
ICAgICAgY29tcGF0aWJsZSA9ICJhcm0sc2NtaS1zaG1lbSI7DQo+ICAgICAgICAgcmVnID0gPDB4
MCAweDIyMDAxMDAwIDB4MCAweDEwMDA+Ow0KPiAgICAgfTsNCj4NCj4gICAgIGZpcm13YXJlIHsN
Cj4gICAgICAgICAgY29tcGF0aWJsZSA9ICJzaW1wbGUtYnVzIjsNCj4gICAgICAgICAgICAgIHNj
bWk6IHNjbWkgew0KPiAgICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgPSAiYXJtLHNjbWktc21j
IjsNCj4gICAgICAgICAgICAgICAgICBhcm0sc21jLWlkID0gPDB4ODIwMDAwMDQ+Ow0KPiAgICAg
ICAgICAgICAgICAgIHNobWVtID0gPCZzY21pX3NobV8wPjsNCj4gICAgICAgICAgICAgICAgICAu
Li4NCj4gICAgICAgICAgICAgIH0NCj4gICAgICB9DQo+IH0NCj4NCj4gU0NNSSAiNC4yLjEuMSBE
ZXZpY2Ugc3BlY2lmaWMgYWNjZXNzIGNvbnRyb2wiDQo+DQo+IFRoZSBYRU4gU0NJIFNDTUkgU01D
IG11bHRpLWFnZW50IGRyaXZlciBwZXJmb3JtcyAiYWNjZXNzLWNvbnRyb2xsZXIiIHByb3ZpZGVy
IGZ1bmN0aW9uDQo+IGluIGNhc2UgRUwzIFNDTUkgRlcgaW1wbGVtZW50cyBTQ01JICI0LjIuMS4x
IERldmljZSBzcGVjaWZpYyBhY2Nlc3MgY29udHJvbCIgYW5kIHByb3ZpZGVzIHRoZQ0KPiBCQVNF
X1NFVF9ERVZJQ0VfUEVSTUlTU0lPTlMgY29tbWFuZCB0byBjb25maWd1cmUgdGhlIGRldmljZXMg
dGhhdCBhbiBhZ2VudHMgaGF2ZSBhY2Nlc3MgdG8uDQo+IFRoZSBEVCBTQ01JIG5vZGUgc2hvdWxk
ICIjYWNjZXNzLWNvbnRyb2xsZXItY2VsbHM9PDE+IiBwcm9wZXJ0eSBhbmQgRFQgZGV2aWNlcyBz
aG91bGQgYmUgYm91bmQNCj4gdG8gdGhlIFhlbiBTQ01JLg0KPg0KPiAmaTJjMSB7DQo+ICAgICAg
IGFjY2Vzcy1jb250cm9sbGVycyA9IDwmc2NtaSAwPjsNCj4gfTsNCj4NCj4gVGhlIERvbTAgYW5k
IGRvbTBsZXNzIGRvbWFpbnMgRFQgZGV2aWNlcyB3aWxsIGJlIHByb2Nlc3NlZCBhdXRvbWF0aWNh
bGx5IHRocm91Z2gNCj4gc2NpX2Fzc2lnbl9kdF9kZXZpY2UoKSBjYWxsLCBidXQgdG8gYXNzaWdu
IFNDTUkgZGV2aWNlcyBmcm9tIHRvb2xzdGFjayB0aGUgeGwuY2ZnOiJkdGRldiIgcHJvcGVydHkN
Cj4gc2hhbGwgYmUgdXNlZDoNCj4NCj4gZHRkZXYgPSBbDQo+ICAgICAgIi9zb2MvaTJjQGU2NTA4
MDAwIiwNCj4gXQ0KPg0KPiB4bC5jZmc6ZHRkZXYgd2lsbCBjb250YWluIGFsbCBub2RlcyB3aGlj
aCBhcmUgdW5kZXIgU0NNSSBtYW5hZ2VtZW50IChub3Qgb25seSB0aG9zZSB3aGljaCBhcmUgYmVo
aW5kIElPTU1VKS4NCj4NCj4gWzFdIGh0dHBzOi8vd2ViLmdpdC5rZXJuZWwub3JnL3B1Yi9zY20v
bGludXgva2VybmVsL2dpdC90b3J2YWxkcy9saW51eC5naXQvdHJlZS9Eb2N1bWVudGF0aW9uL2Rl
dmljZXRyZWUvYmluZGluZ3MvZmlybXdhcmUvYXJtLHNjbWkueWFtbA0KPiBbMl0gaHR0cHM6Ly93
ZWIuZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRzL2xpbnV4
LmdpdC90cmVlL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hY2Nlc3MtY29udHJv
bGxlcnMvYWNjZXNzLWNvbnRyb2xsZXJzLnlhbWwNCj4NCj4gU2lnbmVkLW9mZi1ieTogR3J5Z29y
aWkgU3RyYXNoa28gPGdyeWdvcmlpX3N0cmFzaGtvQGVwYW0uY29tPg0KPiBTaWduZWQtb2ZmLWJ5
OiBPbGVrc2lpIE1vaXNpZWlldiA8b2xla3NpaV9tb2lzaWVpZXZAZXBhbS5jb20+DQo+IC0tLQ0K
Pg0KPiBDaGFuZ2VzIGluIHY2Og0KPiAtIHVwZGF0ZWQgc2NtaS1zaG1lbSB0byB1c2UgaW8uaCBm
cm9tIGdlbmVyaWMgbG9jYXRpb24NCj4gLSB1cGRhdGUgc2NtaV9hZ2VudF9pZCBwYXJhbWV0ZXIg
dG8gYmUgcHJvdmlkZWQgaW5zaWRlIGRvbTA9IHBhcmFtZXRlcg0KPiBsaXN0IGFuZCBoYXZlIHRo
ZSBmb2xsb3dpbmcgZm9ybWF0ICJkb20wPXNjaS1hZ2VudC1pZD0wIg0KPiBUaGlzIGNoYW5nZSB3
YXMgZG9uZSBhcyBhIHJlc3BvbnNlIGZvciBTdGVmYW5vIGNvbW1lbnQgYW5kDQo+IHJlcXVpcmVz
IGEgbG90IG9mIGNvZGUgY2hhbmdlcywgYnV0IHByb2R1Y2VzIG11Y2ggY2xlYW5lciBzb2x1dGlv
bg0KPiB0aGF0J3Mgd2h5IEkndmUgYWRkZWQgaXQgdG8gdGhlIGNvZGUuDQo+IC0gZml4IGZpbGUg
Y29tbWVudHMgYW5kIHJldHVybiBjb2Rlcw0KPiAtIGZpeCBsZW5naHQgY2hlY2tzIGluIHNobWVt
X3tnZXQscHV0fV9tZXNzYWdlIHRvIHVzZSBvZmZzZXRvZg0KPiAtIHJlbW92ZSBsZW4gbWVtYmVy
IGZyb20gc2NtaV9jaGFubmVsIHN0cnVjdHVyZSBhcyBpdCBpcyBub3QgdXNlZA0KPiAtIHNldCBz
Y21pLXNlY29uZGFyeS1hZ2VudHMgcHJvcGVydHkgdG8gYmUgbWFuZGF0b3J5IHNpbmNlIGlmIG5v
DQo+IHNlY29uZGFyeSBhZ2VudHMgd2VyZSBwcm92aWRlZCB0aGVuIHRoZXJlIGlzIG5vIHNlbmNl
IHRvIGVuYWJsZSBzY21pDQo+IHdoZW4gbm8gc2Vjb25kYXJ5IGFnZW50cyBhcmUgcG9wdWxhdGVk
IHRvIHRoZSBEb21haW5zDQo+IC0gdXBkYXRlIGRvY3VtZW50YXRpb24gaW4gYm9vdGluZy50eHQs
IGFkZGVkIHhlbl9zY21pIG5vZGUgdG8gdGhlDQo+IGV4YW1wbGUNCj4gLSBhZGp1c3QgZC0+YXJj
aC5zY2lfZW5hYmxlZCB2YWx1ZSBpbiBzY21pX2RvbWFpbl9kZXN0cm95DQo+IC0gZml4IGxvY2sg
bWFuYWdlbWVudCBpbiBzbWNfY3JlYXRlX2NoYW5uZWwgY2FsbA0KPiAtIGF2b2lkIGV4dHJhIG1h
cF9jaGFubmVsX21lbW9yeSBjb21tYW5kIGZvciBYZW4gbWFuYWdlbWVudCBjaGFubmVsDQo+IGJl
Y2F1c2UgY29sbGVjdF9hZ2VudF9pZCBjYWxsIHVubWFwcyBtZW1vcnkgaWYgRE9NSURfWEVOIGlz
IG5vdA0KPiBzZXQuIFNvIGZvciBYZW4gbWFuYWdlbWVudCBjaGFubmVsIHdlIGNhbiBpbml0IGRv
bWFpbl9pZCBhZCBET01JRF9YRU4NCj4gYmVmb3JlIGNhbGxpbmcgY29sbGVjdF9hZ2VudF9pZCBz
byBtZW1vcnkgc2hvdWxkbid0IGJlIHVubWFwcGVkLg0KPg0KPiBDaGFuZ2VzIGluIHY1Og0KPiAt
IGZpeCBkZXZpY2UtdHJlZSBleGFtcGxlIGZvcm1hdCBpbiBib290aW5nLnR4dCwgYWRkZWQgIjsi
IGFmdGVyICJ9Ii4NCj4gLSB1cGRhdGUgZGVmaW5lIGluIHNjbWktcHJvdG8uaA0KPiAtIHVwZGF0
ZSBkZWZpbmUgaW4gc2NtaS1zaG1lbS5oIGZpbGUNCj4gLSBzY21pX2Fzc2lnbl9kZXZpY2UgLSBk
byBub3QgaWdub3JlIC1FT1BOT1RTVVBQIHJldHVybg0KPiBjb2RlIG9mIHRoZSBkb19zbWNfeGZl
cg0KPiAtIHJlbW92ZSBvdmVyd3JpdGluZyBhZ2VudF9jaGFubmVsLT5hZ2VudF9pZCBhZnRlcg0K
PiBTQ01JX0JBU0VfRElTQ09WRVJfQUdFTlQgY2FsbA0KPiAtIGFkZCBtdWx0aS1hZ2VudCBmaWxl
cyB0byB0aGUgTUFJTlRBSU5FUlMNCj4gLSBhZGQgU0NNSSBtdWx0aS1hZ2VudCBkZXNjcmlwdGlv
biB0byB0aGUgU1VQUE9SVC5tZA0KPiAtIGhhbmRsZSBBUk1fU01DQ0NfSU5WQUxJRF9QQVJBTUVU
RVIgcmV0dXJuIGNvZGUgYW5kIHJldHVybiAtRUlOVkFMDQo+IGZvciBzbWMgY2FsbA0KPiAtIHVw
ZGF0ZWQgY29sbGVjdF9hZ2VudHMgZnVuY3Rpb24uIFNldCBhZ2VudF9pZCBwYXJhbWV0ZXIgYXMg
b3B0aW9uYWwNCj4gaW4gc2NtaS1zZWNvbmRhcnktYWdlbnRzIGRldmljZS10cmVlIHByb3BlcnR5
DQo+IC0gaW50cm9kdWNlICIjc2NtaS1zZWNvbmRhcnktYWdlbnRzLWNlbGxzIiBwYXJhbWV0ZXIg
dG8gc2V0IGlmDQo+IGFnZW50X2lkIHdhcyBwcm92aWRlZA0KPiAtIHJlYW5tZSB4ZW4sc2NtaS1z
ZWNvbmRhcnktYWdlbnRzIHByb3BlcnR5IHRvIHNjbWktc2Vjb25kYXJ5LWFnZW50cw0KPiAtIG1v
dmUgbWVtY3B1X3RvaW8vZnJvbWlvIGZvciB0aGUgZ2VuZXJpYyBwbGFjZQ0KPiAtIHVwZGF0ZSBY
ZW4gdG8gZ2V0IG1hbmFnZW1lbnQgY2hhbm5lbCBmcm9tIC9jaG9zZW4veGVuLGNvbmZpZyBub2Rl
DQo+IC0gZ2V0IGh5cGVydmlzb3IgY2hhbm5uZWwgZnJvbSBub2RlIGluc3RlYWQgb2YgdXNpbmcg
aGFyZGNvZGVkDQo+IC0gdXBkYXRlIGhhbmRsaW5nIHNjbWkgYW5kIHNobWVtIG5vZGVzIGZvciB0
aGUgZG9tYWluDQo+IC0gU2V0IG11bHRpLWFnZW50IGRyaXZlciB0byBzdXBwb3J0IG9ubHkgQXJt
NjQNCj4NCj4gQ2hhbmdlcyBpbiB2NDoNCj4gLSB0b29sc3RhY2sgY29tbWVudHMgZnJvbSBBbnRo
b255IFBFUkFSRA0KPiAtIGFkZGVkIGRvbTBsZXNzIHN1cHBvcnQNCj4gLSBhZGRlZCBkb2MgZm9y
ICJ4ZW4sc2NtaS1zZWNvbmRhcnktYWdlbnRzIg0KPg0KPiAgIE1BSU5UQUlORVJTICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKw0KPiAgIFNVUFBPUlQubWQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKw0KPiAgIGRvY3MvbWFuL3hsLmNmZy41LnBv
ZC5pbiAgICAgICAgICAgICAgICAgICAgfCAgMTMgKw0KPiAgIGRvY3MvbWlzYy9hcm0vZGV2aWNl
LXRyZWUvYm9vdGluZy50eHQgICAgICAgfCAxMDMgKysrDQo+ICAgZG9jcy9taXNjL3hlbi1jb21t
YW5kLWxpbmUucGFuZG9jICAgICAgICAgICB8ICAxOSArLQ0KPiAgIHRvb2xzL2xpYnMvbGlnaHQv
bGlieGxfYXJtLmMgICAgICAgICAgICAgICAgfCAgIDQgKw0KPiAgIHRvb2xzL2xpYnMvbGlnaHQv
bGlieGxfdHlwZXMuaWRsICAgICAgICAgICAgfCAgIDQgKy0NCj4gICB0b29scy94bC94bF9wYXJz
ZS5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEyICsNCj4gICB4ZW4vYXJjaC9hcm0vZG9t
MGxlc3MtYnVpbGQuYyAgICAgICAgICAgICAgIHwgIDExICsNCj4gICB4ZW4vYXJjaC9hcm0vZG9t
YWluX2J1aWxkLmMgICAgICAgICAgICAgICAgIHwgIDI2ICstDQo+ICAgeGVuL2FyY2gvYXJtL2Zp
cm13YXJlL0tjb25maWcgICAgICAgICAgICAgICB8ICAxMiArDQo+ICAgeGVuL2FyY2gvYXJtL2Zp
cm13YXJlL01ha2VmaWxlICAgICAgICAgICAgICB8ICAgMSArDQo+ICAgeGVuL2FyY2gvYXJtL2Zp
cm13YXJlL3NjbWktcHJvdG8uaCAgICAgICAgICB8IDE2NCArKysrDQo+ICAgeGVuL2FyY2gvYXJt
L2Zpcm13YXJlL3NjbWktc2htZW0uYyAgICAgICAgICB8IDExNSArKysNCj4gICB4ZW4vYXJjaC9h
cm0vZmlybXdhcmUvc2NtaS1zaG1lbS5oICAgICAgICAgIHwgIDQ1ICsrDQo+ICAgeGVuL2FyY2gv
YXJtL2Zpcm13YXJlL3NjbWktc21jLW11bHRpYWdlbnQuYyB8IDc5NCArKysrKysrKysrKysrKysr
KysrKw0KPiAgIHhlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLWFybS5oICAgICAgICAgICAgICAgfCAg
IDMgKw0KPiAgIDE3IGZpbGVzIGNoYW5nZWQsIDEzMzggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv
bnMoLSkNCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjbWkt
cHJvdG8uaA0KPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vZmlybXdhcmUvc2Nt
aS1zaG1lbS5jDQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9hcmNoL2FybS9maXJtd2FyZS9z
Y21pLXNobWVtLmgNCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJtL2Zpcm13YXJl
L3NjbWktc21jLW11bHRpYWdlbnQuYw0KPg0KPiBkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9N
QUlOVEFJTkVSUw0KPiBpbmRleCBlY2QzZjQwZGY4Li40YWQxZDgxOGE2IDEwMDY0NA0KPiAtLS0g
YS9NQUlOVEFJTkVSUw0KPiArKysgYi9NQUlOVEFJTkVSUw0KPiBAQCAtNTMyLDYgKzUzMiwxMCBA
QCBSOiAgICAgICBPbGVrc2lpIE1vaXNpZWlldiA8b2xla3NpaV9tb2lzaWVpZXZAZXBhbS5jb20+
DQo+ICAgUzogIFN1cHBvcnRlZA0KPiAgIEY6ICB4ZW4vYXJjaC9hcm0vZmlybXdhcmUvc2NpLmMN
Cj4gICBGOiAgeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2Zpcm13YXJlL3NjaS5oDQo+ICtGOiAg
IHhlbi9hcmNoL2FybS9maXJtd2FyZS9zY21pLXNtYy1tdWx0aWFnZW50LmMNCj4gK0Y6ICAgeGVu
L2FyY2gvYXJtL2Zpcm13YXJlL3NjbWktc2htZW0uYw0KPiArRjogICB4ZW4vYXJjaC9hcm0vZmly
bXdhcmUvc2NtaS1zaG1lbS5oDQo+ICtGOiAgIHhlbi9hcmNoL2FybS9maXJtd2FyZS9zY21pLXBy
b3RvLmgNCj4NCj4gICBTRUFCSU9TIFVQU1RSRUFNDQo+ICAgTTogIFdlaSBMaXUgPHdsQHhlbi5v
cmc+DQo+IGRpZmYgLS1naXQgYS9TVVBQT1JULm1kIGIvU1VQUE9SVC5tZA0KPiBpbmRleCA0OTFm
OWVjZDFiLi43Yzg5NTFkNjdiIDEwMDY0NA0KPiAtLS0gYS9TVVBQT1JULm1kDQo+ICsrKyBiL1NV
UFBPUlQubWQNCj4gQEAgLTk1Niw2ICs5NTYsMTcgQEAgYnkgaHdkb20uIFNvbWUgcGxhdGZvcm1z
IHVzZSBTQ01JIGZvciBhY2Nlc3MgdG8gc3lzdGVtLWxldmVsIHJlc291cmNlcy4NCj4NCj4gICAg
ICAgU3RhdHVzOiBTdXBwb3J0ZWQNCj4NCj4gKyMjIyBBcm06IFNDTUkgU01DIG11bHRpLWFnZW50
IHN1cHBvcnQNCj4gKw0KPiArRW5hYmxlIHN1cHBvcnQgZm9yIHRoZSBtdWx0aS1hZ2VudCBjb25m
aWd1cmF0aW9uIG9mIHRoZSBFTDMgRmlybXdhcmUsIHdoaWNoDQo+ICthbGxvd3MgWGVuIHRvIHBy
b3ZpZGUgYW4gU0NNSSBpbnRlcmZhY2UgdG8gdGhlIERvbWFpbnMuDQo+ICtYZW4gbWFuYWdlcyBh
Y2Nlc3MgcGVybWlzc2lvbnMgdG8gdGhlIEhXIHJlc291cmNlcyBhbmQgcHJvdmlkZXMgYW4gU0NN
SSBpbnRlcmZhY2UNCj4gK3RvIHRoZSBEb21haW5zLiBFYWNoIERvbWFpbiBpcyByZXByZXNlbnRl
ZCBhcyBhIHNlcGFyYXRlIEFnZW50LCB3aGljaCBjYW4NCj4gK2NvbW11bmljYXRlIHdpdGggRUwz
IEZpcm13YXJlIHVzaW5nIGEgZGVkaWNhdGVkIHNoYXJlZCBtZW1vcnkgcmVnaW9uLCBhbmQNCj4g
K25vdGlmaWNhdGlvbnMgYXJlIHBhc3NlZCB0aHJvdWdoIGJ5IFhlbi4NCj4gKw0KPiArICAgIFN0
YXR1cywgQVJNNjQ6IFRlY2ggUHJldmlldw0KPiArDQo+ICAgIyMjIEFSTTogR3Vlc3QgUFNDSSBz
dXBwb3J0DQo+DQo+ICAgRW11bGF0ZWQgUFNDSSBpbnRlcmZhY2UgZXhwb3NlZCB0byBndWVzdHMu
IFdlIHN1cHBvcnQgYWxsIG1hbmRhdG9yeQ0KPiBkaWZmIC0tZ2l0IGEvZG9jcy9tYW4veGwuY2Zn
LjUucG9kLmluIGIvZG9jcy9tYW4veGwuY2ZnLjUucG9kLmluDQo+IGluZGV4IGFkMTU1M2M1ZTku
LjRmYzNlMTI5MzkgMTAwNjQ0DQo+IC0tLSBhL2RvY3MvbWFuL3hsLmNmZy41LnBvZC5pbg0KPiAr
KysgYi9kb2NzL21hbi94bC5jZmcuNS5wb2QuaW4NCj4gQEAgLTMxNTYsOCArMzE1NiwyMSBAQCBz
aW5nbGUgU0NNSSBPU1BNIGFnZW50IHN1cHBvcnQuDQo+ICAgU2hvdWxkIGJlIHVzZWQgdG9nZXRo
ZXIgd2l0aCBCPHNjbWktc21jLXBhc3N0aHJvdWdoPiBYZW4gY29tbWFuZCBsaW5lDQo+ICAgb3B0
aW9uLg0KPg0KPiArPWl0ZW0gQjxzY21pX3NtY19tdWx0aWFnZW50Pg0KPiArDQo+ICtFbmFibGVz
IEFSTSBTQ01JIFNNQyBtdWx0aS1hZ2VudCBzdXBwb3J0IGZvciB0aGUgZ3Vlc3QgYnkgZW5hYmxp
bmcgU0NNSSBvdmVyDQo+ICtTTUMgY2FsbHMgZm9yd2FyZGluZyBmcm9tIGRvbWFpbiB0byB0aGUg
RUwzIGZpcm13YXJlIChsaWtlIFRydXN0ZWQgRmlybXdhcmUtQSkNCj4gK3dpdGggYSBtdWx0aSBT
Q01JIE9TUE0gYWdlbnQgc3VwcG9ydC4gVGhlIFNDTUkgQjxhZ2VudF9pZD4gc2hvdWxkIGJlDQo+
ICtzcGVjaWZpZWQgZm9yIHRoZSBndWVzdC4NCj4gKw0KPiAgID1iYWNrDQo+DQo+ICs9aXRlbSBC
PGFnZW50X2lkPU5VTUJFUj4NCj4gKw0KPiArU3BlY2lmaWVzIGEgbm9uLXplcm8gQVJNIFNDSSBh
Z2VudCBpZCBmb3IgdGhlIGd1ZXN0LiBUaGlzIG9wdGlvbiBpcyBtYW5kYXRvcnkNCj4gK2lmIHRo
ZSBTQ01JIFNNQyBzdXBwb3J0IGlzIGVuYWJsZWQgZm9yIHRoZSBndWVzdC4gVGhlIGFnZW50IGlk
cyBvZiBkb21haW5zDQo+ICtleGlzdGluZyBvbiBhIHNpbmdsZSBob3N0IG11c3QgYmUgdW5pcXVl
IGFuZCBpbiB0aGUgcmFuZ2UgWzEuLjI1NV0uDQo+ICsNCj4gICA9YmFjaw0KUTogW1N0ZWZhbm9d
IFdoeSBpcyB0aGUgb3B0aW9uIG1hbmRhdG9yeSBpZiB0aGUgY29tbWl0IGRlc2NyaXB0aW9uDQpl
eHBsYWlucyB0aGF0IHRoZQ0KYWdlbnRfaWQgY2FuIGJlIHByb2JlZCBieSBYZW4/IEluIHRoZSBj
b21taXQgbWVzc2FnZSwgdGhlIG1hbmRhdG9yeQ0KZmllbGQgaXMgc21jLWlkIGluc3RlYWQ/DQoN
CkkgZ3Vlc3MgaXQgaXMgYmVjYXVzZSB3ZSBleHBlY3QgWGVuIHRvIGhhdmUgYWxyZWFkeSB0aGUg
YWdlbnRfaWQtPnNtYy1pZA0KbWFwcGluZyBhbmQgd2UgZXhwZWN0IHRoZSBhZ2VudF9pZCB0byBi
ZSBlYXNpZXIgdG8gcmVtZW1iZXIgYW5kIHRvIHdyaXRlDQppbiB0aGUgY29uZmlnIGZpbGU/DQoN
CkE6IFtPTV0gY29ycmVjdC4gZHVyaW5nIGZpcnN0IGl0ZXJhdGlvbnMgd2UgZGlkIGF1dG9tYXRp
YyBhZ2VudF9pcw0KYXNzaWdubWVudC4gQnV0IHN3aXRjaGVkIHRvIHNldHRpbmcgYWdlbnRfaWQg
YmVjYXVzZSBpdCBzaW1waWZpZXMgbG9naWMNCmFuZCBjb3ZlcnMgbW9yZSBjYXNlcyBmb3IgZXhh
bXBsZSB3aGVuIFhlbiBkb2Vzbid0IGhhdmUgYW4gYWNjZXNzIHRvIHRoZQ0KYWdlbnQgZGlzY292
ZXIgb3Igd2hlbiBtYWlsYm94ZXMgYXJlIHVzZXMuDQoNCkFsc28sIHNtYy1pZCBpcyByZWxhdGVk
IHRvIFNNQyBjYWxsLCBub3QgU0NNSSBpdHNlbGYuIEFnZW50X2lkIGlzIFNDTUkNCnRlcm0gd2hp
Y2ggc2VlbXMgdG8gYmUgbW9yZSBnZW5lcmljIGFuZCB3aWxsIGJlIHN1aXRhYmxlIGZvciBhbGwN
CmltcGxlbWVudGF0aW9uLCBzdWNoIGFzIG1haWxib3hlcyBvciBvdGhlciBtZWNoYW5pc20uIFRo
aXMgaXMgYmVjYXVzZSB3ZQ0KY2FuIGJlIHN1cmUgdGhhdCBlYWNoIFNDTUkgc2VydmVyIHdpbGwg
Zm9sbG93IFNDTUkgc3BlY2lmaWNhdGlvbg0KdGhlcmVmb3JlIGFnZW50X2lkIGVudGl0eSB3aWxs
IGJlIHByZXNlbnQuDQoNCj4NCj4gICA9YmFjaw0KPiBkaWZmIC0tZ2l0IGEvZG9jcy9taXNjL2Fy
bS9kZXZpY2UtdHJlZS9ib290aW5nLnR4dCBiL2RvY3MvbWlzYy9hcm0vZGV2aWNlLXRyZWUvYm9v
dGluZy50eHQNCj4gaW5kZXggOTc3YjQyODYwOC4uNmZkN2U0YTE2YiAxMDA2NDQNCj4gLS0tIGEv
ZG9jcy9taXNjL2FybS9kZXZpY2UtdHJlZS9ib290aW5nLnR4dA0KPiArKysgYi9kb2NzL21pc2Mv
YXJtL2RldmljZS10cmVlL2Jvb3RpbmcudHh0DQo+IEBAIC0zMjIsNiArMzIyLDIwIEBAIHdpdGgg
dGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOg0KPiAgICAgICBTaG91bGQgYmUgdXNlZCB0b2dldGhl
ciB3aXRoIHNjbWktc21jLXBhc3N0aHJvdWdoIFhlbiBjb21tYW5kIGxpbmUNCj4gICAgICAgb3B0
aW9uLg0KPg0KPiArICAgIC0gInNjbWlfc21jX211bHRpYWdlbnQiDQo+ICsNCj4gKyAgICBFbmFi
bGVzIEFSTSBTQ01JIFNNQyBtdWx0aS1hZ2VudCBzdXBwb3J0IGZvciB0aGUgZ3Vlc3QgYnkgZW5h
YmxpbmcgU0NNSSBvdmVyDQo+ICsgICAgU01DIGNhbGxzIGZvcndhcmRpbmcgZnJvbSBkb21haW4g
dG8gdGhlIEVMMyBmaXJtd2FyZSAobGlrZSBBUk0NCj4gKyAgICBUcnVzdGVkIEZpcm13YXJlLUEp
IHdpdGggYSBtdWx0aSBTQ01JIE9TUE0gYWdlbnQgc3VwcG9ydC4NCj4gKyAgICBUaGUgU0NNSSBh
Z2VudF9pZCBzaG91bGQgYmUgc3BlY2lmaWVkIGZvciB0aGUgZ3Vlc3Qgd2l0aCAieGVuLHNjaS1h
Z2VudC1pZCINCj4gKyAgICBwcm9wZXJ0eS4NCj4gKw0KPiArLSAieGVuLHNjaS1hZ2VudC1pZCIN
Cj4gKw0KPiArICAgIFNwZWNpZmllcyBBUk0gU0NNSSBhZ2VudCBpZCBmb3IgdGhlIGd1ZXN0LiBU
aGlzIG9wdGlvbiBpcyBtYW5kYXRvcnkgaWYgdGhlDQo+ICsgICAgU0NNSSBTTUMgInNjbWlfc21j
X211bHRpYWdlbnQiIHN1cHBvcnQgaXMgZW5hYmxlZCBmb3IgdGhlIGd1ZXN0LiBUaGUgYWdlbnQg
aWRzDQo+ICsgICAgb2YgZ3Vlc3QgbXVzdCBiZSB1bmlxdWUgYW5kIGluIHRoZSByYW5nZSBbMC4u
MjU1XS4NCj4gKw0KPiAgIFVuZGVyIHRoZSAieGVuLGRvbWFpbiIgY29tcGF0aWJsZSBub2RlLCBv
bmUgb3IgbW9yZSBzdWItbm9kZXMgYXJlIHByZXNlbnQNCj4gICBmb3IgdGhlIERvbVUga2VybmVs
IGFuZCByYW1kaXNrLg0KPg0KPiBAQCAtODI0LDMgKzgzOCw5MiBAQCBUaGUgYXV0b21hdGljYWxs
eSBhbGxvY2F0ZWQgc3RhdGljIHNoYXJlZCBtZW1vcnkgd2lsbCBnZXQgbWFwcGVkIGF0DQo+ICAg
MHg4MDAwMDAwMCBpbiBEb21VMSBndWVzdCBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlLCBhbmQgYXQg
MHg5MDAwMDAwMCBpbiBEb21VMg0KPiAgIGd1ZXN0IHBoeXNpY2FsIGFkZHJlc3Mgc3BhY2UuIERv
bVUxIGlzIGV4cGxpY2l0bHkgZGVmaW5lZCBhcyB0aGUgb3duZXIgZG9tYWluLA0KPiAgIGFuZCBE
b21VMiBpcyB0aGUgYm9ycm93ZXIgZG9tYWluLg0KPiArDQo+ICtTQ01JIFNNQyBtdWx0aS1hZ2Vu
dCBzdXBwb3J0DQo+ICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ICsNCj4gK0ZvciBl
bmFibGluZyB0aGUgQVJNIFNDTUkgU01DIG11bHRpLWFnZW50IHN1cHBvcnQgKGVuYWJsZWQgYnkg
Q09ORklHX1NDTUlfU01DX01BKQ0KPiArdGhlIFhlbiBzcGVjaWZpYyBTQ01JIEFnZW50J3MgY29u
ZmlndXJhdGlvbiBzaGFsbCBiZSBwcm92aWRlZCBpbiB0aGUgSG9zdCBEVA0KPiArYWNjb3JkaW5n
IHRvIHRoZSBTQ01JIGNvbXBsaWFudCBFTDMgRmlybXdhcmUgc3BlY2lmaWNhdGlvbiB3aXRoDQo+
ICtBUk0gU01DL0hWQyB0cmFuc3BvcnQgdXNpbmcgcHJvcGVydHkgInNjbWktc2Vjb25kYXJ5LWFn
ZW50cyIgcGxhY2VkIGluICJ4ZW4sY29uZmlnIg0KPiArbm9kZSB1bmRlciAiY2hvc2VuIiBub2Rl
Og0KPiArDQo+ICstIHNjbWktc2Vjb25kYXJ5LWFnZW50cw0KPiArDQo+ICsgICAgRGVmaW5lcyBh
IHNldCBvZiBTQ01JIGFnZW50cyBjb25maWd1cmF0aW9uIHN1cHBvcnRlZCBieSBTQ01JIEVMMyBG
VyBhbmQNCj4gKyAgICBhdmFpbGFibGUgZm9yIFhlbi4gRWFjaCBBZ2VudCBkZWZpbmVkIGFzIHRy
aXBsZSBjb25zaXN0aW5nIG9mOg0KPiArICAgIFNNQy9IVkMgZnVuY3Rpb25faWQgYXNzaWduZWQg
Zm9yIHRoZSBhZ2VudCB0cmFuc3BvcnQgKCJhcm0sc21jLWlkIiksDQo+ICsgICAgcGhhbmRsZSB0
byBTQ01JIFNITSBhc3NpZ25lZCBmb3IgdGhlIGFnZW50IHRyYW5zcG9ydCAoImFybSxzY21pLXNo
bWVtIiksDQo+ICsgICAgU0NNSSBhZ2VudF9pZCAob3B0aW9uYWwpIGlmIG5vdCBzZXQgLSBYZW4g
d2lsbCBkZXRlcm1pbmUgQWdlbnQgSUQgZm9yDQo+ICsgICAgZWFjaCBwcm92aWRlZCBjaGFubmVs
IHVzaW5nIEJBU0VfRElTQ09WRVJfQUdFTlQgbWVzc2FnZS4NCj4gKw0KPiArQXMgYW4gZXhhbXBs
ZToNCj4gKw0KPiArL3sNCj4gK2Nob3NlbiB7DQo+ICsgICAgeGVuLGNvbmZpZyB7DQo+ICsgICAg
ICAgIHNjbWlfc2htXzAgOiBzcmFtQDQ3ZmYwMDAwIHsNCj4gKyAgICAgICAgICAgIGNvbXBhdGli
bGUgPSAiYXJtLHNjbWktc2htZW0iOw0KPiArICAgICAgICAgICAgcmVnID0gPDB4MCAweDQ3ZmYw
MDAwIDB4MCAweDEwMDA+Ow0KPiArICAgICAgICB9Ow0KPiArICAgICAgICAvLyBYZW4gU0NNSSBt
YW5hZ2VtZW50IGNoYW5uZWwNCj4gKyAgICAgICAgc2NtaV9zaG1fMTogc3JhbUA0N2ZmMTAwMCB7
DQo+ICsgICAgICAgICAgICAgICAgY29tcGF0aWJsZSA9ICJhcm0sc2NtaS1zaG1lbSI7DQo+ICsg
ICAgICAgICAgICAgICAgcmVnID0gPDB4MCAweDQ3ZmYxMDAwIDB4MCAweDEwMDA+Ow0KPiArICAg
ICAgICB9Ow0KPiArICAgICAgICBzY21pX3NobV8yOiBzcmFtQDQ3ZmYyMDAwIHsNCj4gKyAgICAg
ICAgICAgICAgICBjb21wYXRpYmxlID0gImFybSxzY21pLXNobWVtIjsNCj4gKyAgICAgICAgICAg
ICAgICByZWcgPSA8MHgwIDB4NDdmZjIwMDAgMHgwIDB4MTAwMD47DQo+ICsgICAgICAgIH07DQo+
ICsgICAgICAgIHNjbWlfc2htXzM6IHNyYW1ANDdmZjMwMDAgew0KPiArICAgICAgICAgICAgICAg
IGNvbXBhdGlibGUgPSAiYXJtLHNjbWktc2htZW0iOw0KPiArICAgICAgICAgICAgICAgIHJlZyA9
IDwweDAgMHg0N2ZmMzAwMCAweDAgMHgxMDAwPjsNCj4gKyAgICAgICAgfTsNCj4gKyAgICAgICAg
c2NtaV9zaG1fMzogc3JhbUA0N2ZmNDAwMCB7DQo+ICsgICAgICAgICAgICAgICAgY29tcGF0aWJs
ZSA9ICJhcm0sc2NtaS1zaG1lbSI7DQo+ICsgICAgICAgICAgICAgICAgcmVnID0gPDB4MCAweDQ3
ZmY0MDAwIDB4MCAweDEwMDA+Ow0KPiArICAgICAgICB9Ow0KPiArICAgICAgICBzY21pLXNlY29u
ZGFyeS1hZ2VudHMgPSA8DQo+ICsgICAgICAgICAgICAweDgyMDAwMDAyICZzY21pX3NobV8wIDAN
Cj4gKyAgICAgICAgICAgIDB4ODIwMDAwMDQgJnNjbWlfc2htXzIgMg0KPiArICAgICAgICAgICAg
MHg4MjAwMDAwNSAmc2NtaV9zaG1fMyAzDQo+ICsgICAgICAgICAgICAweDgyMDAwMDA2ICZzY21p
X3NobV80IDQ+Ow0KPiArICAgICAgICAgICAgI3NjbWktc2Vjb25kYXJ5LWFnZW50cy1jZWxscyA9
IDwzPjsNCj4gKyAgICAgICAgfTsNCj4gKw0KPiArICAgICAgICBzY21pX3hlbjogc2NtaSB7DQo+
ICsgICAgICAgICAgICBjb21wYXRpYmxlID0gImFybSxzY21pLXNtYyI7DQo+ICsgICAgICAgICAg
ICBhcm0sc21jLWlkID0gPDB4ODIwMDAwMDI+OyA8LS0tIFhlbiBtYW5hZ2VtZW50IGFnZW50IHNt
Yy1pZA0KPiArICAgICAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSA8IDE+Ow0KPiArICAgICAgICAg
ICAgI3NpemUtY2VsbHMgPSA8IDA+Ow0KPiArICAgICAgICAgICAgI2FjY2Vzcy1jb250cm9sbGVy
LWNlbGxzID0gPCAxPjsNCj4gKyAgICAgICAgICAgIHNobWVtID0gPCZzY21pX3NobV8xPjsgPC0t
LSBYZW4gbWFuYWdlbWVudCBhZ2VudCBzaG1lbQ0KPiArICAgICAgICB9Ow0KPiArDQo+ICsgICAg
fTsNCj4gK307DQo+ICsNCj4gKy0gI3NjbWktc2Vjb25kYXJ5LWFnZW50cy1jZWxscw0KPiArDQo+
ICsgICAgRGVmaW5lcyB3aGV0aGVyIEFnZW50X2lkIGlzIHNldCBpbiB0aGUgInNjbWktc2Vjb25k
YXJ5LWFnZW50cyIgcHJvcGVydHkuDQo+ICsgICAgUG9zc2libGUgdmFsdWVzIGFyZTogMiwgMy4N
Cj4gKyAgICBXaGVuIHNldCB0byAzICh0aGUgZGVmYXVsdCksIGV4cGVjdCBhZ2VudF9pZCB0byBi
ZSBwcmVzZW50IGluIHRoZSBzZWNvbmRhcnkNCj4gKyAgICBhZ2VudHMgbGlzdC4NCj4gKyAgICBX
aGVuIHNldCB0byAyLCBhZ2VudF9pZCB3aWxsIGJlIGRpc2NvdmVyZWQgZm9yIGVhY2ggY2hhbm5l
bCB1c2luZw0KPiArICAgIEJBU0VfRElTQ09WRVJfQUdFTlQgbWVzc2FnZS4NCj4gKw0KPiArDQo+
ICtFeGFtcGxlOg0KPiArDQo+ICsvew0KPiArY2hvc2VuIHsNCj4gKyAgICB4ZW4sY29uZmlnIHsN
Cj4gKyAgICAgICAgc2NtaS1zZWNvbmRhcnktYWdlbnRzID0gPA0KPiArICAgICAgICAgICAgMHg4
MjAwMDAwMyAmc2NtaV9zaG1fMQ0KPiArICAgICAgICAgICAgMHg4MjAwMDAwNCAmc2NtaV9zaG1f
Mg0KPiArICAgICAgICAgICAgMHg4MjAwMDAwNSAmc2NtaV9zaG1fMw0KPiArICAgICAgICAgICAg
MHg4MjAwMDAwNiAmc2NtaV9zaG1fND47DQo+ICsgICAgICAgICAgICAjc2NtaS1zZWNvbmRhcnkt
YWdlbnRzLWNlbGxzID0gPDI+Ow0KPiArICAgICAgICB9Ow0KPiArICAgIH07DQo+ICt9Ow0KPiBk
aWZmIC0tZ2l0IGEvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUucGFuZG9jIGIvZG9jcy9taXNj
L3hlbi1jb21tYW5kLWxpbmUucGFuZG9jDQo+IGluZGV4IDM0MDA0Y2UyODIuLjU1NDFjNGE0ZWQg
MTAwNjQ0DQo+IC0tLSBhL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLnBhbmRvYw0KPiArKysg
Yi9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5wYW5kb2MNCj4gQEAgLTgzNSw3ICs4MzUsNyBA
QCBTcGVjaWZ5IHRoZSBiaXQgd2lkdGggb2YgdGhlIERNQSBoZWFwLg0KPiAgICAgICAgICAgICAg
ICAgICBjcHVpZC1mYXVsdGluZz08Ym9vbD4sIG1zci1yZWxheGVkPTxib29sPiwNCj4gICAgICAg
ICAgICAgICAgICAgcGYtZml4dXA9PGJvb2w+IF0gKHg4NikNCj4NCj4gLSAgICA9IExpc3Qgb2Yg
WyBzdmU9PGludGVnZXI+IF0gKEFybTY0KQ0KPiArICAgID0gTGlzdCBvZiBbIHN2ZT08aW50ZWdl
cj4sIHNjaS1hZ2VudC1pZD08aW50ZWdlcj4gXSAoQXJtKQ0KPg0KPiAgIENvbnRyb2xzIGZvciBo
b3cgZG9tMCBpcyBjb25zdHJ1Y3RlZCBvbiB4ODYgc3lzdGVtcy4NCj4NCj4gQEAgLTkyMyw2ICs5
MjMsMTQgQEAgRW5hYmxlcyBmZWF0dXJlcyBvbiBkb20wIG9uIEFybSBzeXN0ZW1zLg0KPiAgICAg
ICBvcHRpb24gaXMgcHJvdmlkZWQgd2l0aCBhIHBvc2l0aXZlIG5vbiB6ZXJvIHZhbHVlLCBidXQg
dGhlIHBsYXRmb3JtIGRvZXNuJ3QNCj4gICAgICAgc3VwcG9ydCBTVkUuDQo+DQo+ICsqICAgVGhl
IGBzY2ktYWdlbnQtaWRgIGludGVnZXIgcGFyYW1ldGVyIGVuYWJsZXMgQVJNIFNDTUkgKFN5c3Rl
bSBDb250cm9sIGFuZA0KPiArICAgIE1hbmFnZW1lbnQgSW50ZXJmYWNlKSBmdW5jdGlvbmFsaXR5
IGZvciBEb20wIHdoZW4gYENPTkZJR19TQ01JX1NNQ19NQWAgaXMNCj4gKyAgICBjb21waWxlZCBp
bi4gVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBTQ01JIGFnZW50IElEIGZvciBEb20wLg0K
PiArICAgIEEgdmFsdWUgZXF1YWwgdG8gMHhGRiAob3Igb21pdHRlZCkgZGlzYWJsZXMgU0NNSSBm
b3IgRG9tMCwgd2hpY2ggaXMgdXNlZnVsDQo+ICsgICAgZm9yIHRoaW4gRG9tMCBvciBkb20wbGVz
cyB1c2UtY2FzZXMuIFZhbHVlcyBmcm9tIDAgdG8gMjU0IHNwZWNpZnkgdGhlIFNDTUkNCj4gKyAg
ICBhZ2VudCBJRC4gVGhlIGFnZW50IElEcyBvZiBkb21haW5zIGV4aXN0aW5nIG9uIGEgc2luZ2xl
IGhvc3QgbXVzdCBiZSB1bmlxdWUuDQo+ICsgICAgRXhhbXBsZTogYGRvbTA9c2NpLWFnZW50LWlk
PTBgIHRvIGVuYWJsZSBTQ01JIHdpdGggYWdlbnQgSUQgMCBmb3IgRG9tMC4NCj4gKw0KPiAgICMj
IyBkb20wLWNwdWlkDQo+ICAgICAgID0gTGlzdCBvZiBjb21tYSBzZXBhcmF0ZWQgYm9vbGVhbnMN
Cj4NCj4gQEAgLTExMDcsNiArMTExNSwxNSBAQCBhZmZpbml0aWVzIHRvIHByZWZlciBidXQgYmUg
bm90IGxpbWl0ZWQgdG8gdGhlIHNwZWNpZmllZCBub2RlKHMpLg0KPg0KPiAgIFBpbiBkb20wIHZj
cHVzIHRvIHRoZWlyIHJlc3BlY3RpdmUgcGNwdXMNCj4NCj4gKyMjIyBzY21pLXNtYy1wYXNzdGhy
b3VnaCAoQVJNKQ0KPiArPiBgPSA8Ym9vbGVhbj5gDQo+ICsNCj4gK1RoZSBvcHRpb24gaXMgYXZh
aWxhYmxlIHdoZW4gYENPTkZJR19TQ01JX1NNQ2AgaXMgY29tcGlsZWQgaW4sIGFuZCBhbGxvd3Mg
dG8NCj4gK2VuYWJsZSBTQ01JIFNNQyBzaW5nbGUgYWdlbnQgaW50ZXJmYWNlIGZvciBhbnksIGJ1
dCBvbmx5IG9uZSBndWVzdCBkb21haW4sDQo+ICt3aGljaCBzZXJ2ZXMgYXMgRHJpdmVyIGRvbWFp
bi4gVGhlIFNDTUkgd2lsbCBiZSBkaXNhYmxlZCBmb3IgRG9tMC9od2RvbSBhbmQNCj4gK1NDTUkg
bm9kZXMgcmVtb3ZlZCBmcm9tIERvbTAvaHdkb20gZGV2aWNlIHRyZWUuDQo+ICsoZm9yIGV4YW1w
bGUsIHRoaW4gRG9tMCB3aXRoIERyaXZlciBkb21haW4gdXNlLWNhc2UpLg0KPiArDQo+ICAgIyMj
IGR0dWFydCAoQVJNKQ0KPiAgID4gYD0gcGF0aCBbOm9wdGlvbnNdYA0KPg0KPiBkaWZmIC0tZ2l0
IGEvdG9vbHMvbGlicy9saWdodC9saWJ4bF9hcm0uYyBiL3Rvb2xzL2xpYnMvbGlnaHQvbGlieGxf
YXJtLmMNCj4gaW5kZXggZTQ0MDdkNmUzZi4uYmUwZTYyNjNhZSAxMDA2NDQNCj4gLS0tIGEvdG9v
bHMvbGlicy9saWdodC9saWJ4bF9hcm0uYw0KPiArKysgYi90b29scy9saWJzL2xpZ2h0L2xpYnhs
X2FybS5jDQo+IEBAIC0yNDAsNiArMjQwLDEwIEBAIGludCBsaWJ4bF9fYXJjaF9kb21haW5fcHJl
cGFyZV9jb25maWcobGlieGxfX2djICpnYywNCj4gICAgICAgY2FzZSBMSUJYTF9BUk1fU0NJX1RZ
UEVfU0NNSV9TTUM6DQo+ICAgICAgICAgICBjb25maWctPmFyY2guYXJtX3NjaV90eXBlID0gWEVO
X0RPTUNUTF9DT05GSUdfQVJNX1NDSV9TQ01JX1NNQzsNCj4gICAgICAgICAgIGJyZWFrOw0KPiAr
ICAgIGNhc2UgTElCWExfQVJNX1NDSV9UWVBFX1NDTUlfU01DX01VTFRJQUdFTlQ6DQo+ICsgICAg
ICAgIGNvbmZpZy0+YXJjaC5hcm1fc2NpX3R5cGUgPSBYRU5fRE9NQ1RMX0NPTkZJR19BUk1fU0NJ
X1NDTUlfU01DX01BOw0KPiArICAgICAgICBjb25maWctPmFyY2guYXJtX3NjaV9hZ2VudF9pZCA9
IGRfY29uZmlnLT5iX2luZm8uYXJjaF9hcm0uYXJtX3NjaS5hZ2VudF9pZDsNCj4gKyAgICAgICAg
YnJlYWs7DQo+ICAgICAgIGRlZmF1bHQ6DQo+ICAgICAgICAgICBMT0coRVJST1IsICJVbmtub3du
IEFSTV9TQ0kgdHlwZSAlZCIsDQo+ICAgICAgICAgICAgICAgZF9jb25maWctPmJfaW5mby5hcmNo
X2FybS5hcm1fc2NpLnR5cGUpOw0KPiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9saWdodC9saWJ4
bF90eXBlcy5pZGwgYi90b29scy9saWJzL2xpZ2h0L2xpYnhsX3R5cGVzLmlkbA0KPiBpbmRleCA0
YTk1OGY2OWY0Li45YmZiZjA5MTQ1IDEwMDY0NA0KPiAtLS0gYS90b29scy9saWJzL2xpZ2h0L2xp
YnhsX3R5cGVzLmlkbA0KPiArKysgYi90b29scy9saWJzL2xpZ2h0L2xpYnhsX3R5cGVzLmlkbA0K
PiBAQCAtNTU0LDExICs1NTQsMTMgQEAgbGlieGxfc3ZlX3R5cGUgPSBFbnVtZXJhdGlvbigic3Zl
X3R5cGUiLCBbDQo+DQo+ICAgbGlieGxfYXJtX3NjaV90eXBlID0gRW51bWVyYXRpb24oImFybV9z
Y2lfdHlwZSIsIFsNCj4gICAgICAgKDAsICJub25lIiksDQo+IC0gICAgKDEsICJzY21pX3NtYyIp
DQo+ICsgICAgKDEsICJzY21pX3NtYyIpLA0KPiArICAgICgyLCAic2NtaV9zbWNfbXVsdGlhZ2Vu
dCIpDQo+ICAgICAgIF0sIGluaXRfdmFsID0gIkxJQlhMX0FSTV9TQ0lfVFlQRV9OT05FIikNCj4N
Cj4gICBsaWJ4bF9hcm1fc2NpID0gU3RydWN0KCJhcm1fc2NpIiwgWw0KPiAgICAgICAoInR5cGUi
LCBsaWJ4bF9hcm1fc2NpX3R5cGUpLA0KPiArICAgICgiYWdlbnRfaWQiLCB1aW50OCkNCj4gICAg
ICAgXSkNCj4NCj4gICBsaWJ4bF9yZG1fcmVzZXJ2ZSA9IFN0cnVjdCgicmRtX3Jlc2VydmUiLCBb
DQo+IGRpZmYgLS1naXQgYS90b29scy94bC94bF9wYXJzZS5jIGIvdG9vbHMveGwveGxfcGFyc2Uu
Yw0KPiBpbmRleCAxY2M0MWYxYmZmLi4wYzM4OWQyNWY5IDEwMDY0NA0KPiAtLS0gYS90b29scy94
bC94bF9wYXJzZS5jDQo+ICsrKyBiL3Rvb2xzL3hsL3hsX3BhcnNlLmMNCj4gQEAgLTEzMDYsNiAr
MTMwNiwxOCBAQCBzdGF0aWMgaW50IHBhcnNlX2FybV9zY2lfY29uZmlnKFhMVV9Db25maWcgKmNm
ZywgbGlieGxfYXJtX3NjaSAqYXJtX3NjaSwNCj4gICAgICAgICAgICAgICB9DQo+ICAgICAgICAg
ICB9DQo+DQo+ICsgICAgICAgIGlmIChNQVRDSF9PUFRJT04oImFnZW50X2lkIiwgcHRyLCBvcGFy
ZykpIHsNCj4gKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgdmFsID0gcGFyc2VfdWxvbmcob3Bh
cmcpOw0KPiArDQo+ICsgICAgICAgICAgICBpZiAoIXZhbCB8fCB2YWwgPiAyNTUpIHsNCj4gKyAg
ICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkFuIGludmFsaWQgQVJNX1NDSSBhZ2VudF9p
ZCBzcGVjaWZpZWQgKCVsdSkuIFZhbGlkIHJhbmdlIFsxLi4yNTVdXG4iLA0KPiArICAgICAgICAg
ICAgICAgICAgICAgICAgdmFsKTsNCj4gKyAgICAgICAgICAgICAgICByZXQgPSBFUlJPUl9JTlZB
TDsNCj4gKyAgICAgICAgICAgICAgICBnb3RvIG91dDsNCj4gKyAgICAgICAgICAgIH0NCj4gKyAg
ICAgICAgICAgIGFybV9zY2ktPmFnZW50X2lkID0gdmFsOw0KPiArICAgICAgICB9DQo+ICsNCj4g
ICAgICAgICAgIHB0ciA9IHN0cnRvayhOVUxMLCAiLCIpOw0KPiAgICAgICB9DQo+DQo+IGRpZmYg
LS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tMGxlc3MtYnVpbGQuYyBiL3hlbi9hcmNoL2FybS9kb20w
bGVzcy1idWlsZC5jDQo+IGluZGV4IDQxODFjMTA1MzguLmRkYWRjODkxNDggMTAwNjQ0DQo+IC0t
LSBhL3hlbi9hcmNoL2FybS9kb20wbGVzcy1idWlsZC5jDQo+ICsrKyBiL3hlbi9hcmNoL2FybS9k
b20wbGVzcy1idWlsZC5jDQo+IEBAIC0yOTksNiArMjk5LDE3IEBAIHN0YXRpYyBpbnQgX19pbml0
IGRvbXVfZHRfc2NpX3BhcnNlKHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqbm9kZSwNCj4gICAgICAg
ICAgIGRfY2ZnLT5hcmNoLmFybV9zY2lfdHlwZSA9IFhFTl9ET01DVExfQ09ORklHX0FSTV9TQ0lf
Tk9ORTsNCj4gICAgICAgZWxzZSBpZiAoICFzdHJjbXAoc2NpX3R5cGUsICJzY21pX3NtYyIpICkN
Cj4gICAgICAgICAgIGRfY2ZnLT5hcmNoLmFybV9zY2lfdHlwZSA9IFhFTl9ET01DVExfQ09ORklH
X0FSTV9TQ0lfU0NNSV9TTUM7DQo+ICsgICAgZWxzZSBpZiAoICFzdHJjbXAoc2NpX3R5cGUsICJz
Y21pX3NtY19tdWx0aWFnZW50IikgKQ0KPiArICAgIHsNCj4gKyAgICAgICAgdWludDMyX3QgYWdl
bnRfaWQgPSAwOw0KPiArDQo+ICsgICAgICAgIGlmICggIWR0X3Byb3BlcnR5X3JlYWRfdTMyKG5v
ZGUsICJ4ZW4sc2NpLWFnZW50LWlkIiwgJmFnZW50X2lkKSB8fA0KPiArICAgICAgICAgICAgIGFn
ZW50X2lkID4gVUlOVDhfTUFYICkNCj4gKyAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiAr
DQo+ICsgICAgICAgIGRfY2ZnLT5hcmNoLmFybV9zY2lfdHlwZSA9IFhFTl9ET01DVExfQ09ORklH
X0FSTV9TQ0lfU0NNSV9TTUNfTUE7DQo+ICsgICAgICAgIGRfY2ZnLT5hcmNoLmFybV9zY2lfYWdl
bnRfaWQgPSBhZ2VudF9pZDsNCj4gKyAgICB9DQo+ICAgICAgIGVsc2UNCj4gICAgICAgew0KPiAg
ICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgInhlbixzY2lfdHlwZSBpbiBub3QgdmFsaWQgKCVz
KSBmb3IgZG9tYWluICVzXG4iLA0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbl9i
dWlsZC5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jDQo+IGluZGV4IGZiOGZiYjE2NTAu
Ljc5NGVhMWFhNDIgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYw0K
PiArKysgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMNCj4gQEAgLTU1LDYgKzU1LDEwIEBA
IGJvb2xlYW5fcGFyYW0oImV4dF9yZWdpb25zIiwgb3B0X2V4dF9yZWdpb25zKTsNCj4gICBzdGF0
aWMgdTY0IF9faW5pdGRhdGEgZG9tMF9tZW07DQo+ICAgc3RhdGljIGJvb2wgX19pbml0ZGF0YSBk
b20wX21lbV9zZXQ7DQo+DQo+ICsvKiBTQ01JIGFnZW50IElEIGZvciBkb20wLCBwYXJzZWQgZnJv
bSBkb20wPXNjaS1hZ2VudC1pZD08dmFsdWU+ICovDQo+ICsjZGVmaW5lIFNDTUlfQUdFTlRfSURf
SU5WQUxJRCAweEZGDQo+ICtzdGF0aWMgdWludDhfdCBfX2luaXRkYXRhIG9wdF9kb20wX3NjbWlf
YWdlbnRfaWQgPSBTQ01JX0FHRU5UX0lEX0lOVkFMSUQ7DQo+ICsNCj4gICBzdGF0aWMgaW50IF9f
aW5pdCBwYXJzZV9kb20wX21lbShjb25zdCBjaGFyICpzKQ0KPiAgIHsNCj4gICAgICAgZG9tMF9t
ZW1fc2V0ID0gdHJ1ZTsNCj4gQEAgLTgzLDYgKzg3LDE2IEBAIGludCBfX2luaXQgcGFyc2VfYXJj
aF9kb20wX3BhcmFtKGNvbnN0IGNoYXIgKnMsIGNvbnN0IGNoYXIgKmUpDQo+ICAgI2VuZGlmDQo+
ICAgICAgIH0NCj4NCj4gKyAgICBpZiAoICFwYXJzZV9zaWduZWRfaW50ZWdlcigic2NpLWFnZW50
LWlkIiwgcywgZSwgJnZhbCkgKQ0KPiArICAgIHsNCj4gKyAgICAgICAgaWYgKCAodmFsID49IDAp
ICYmICh2YWwgPD0gVUlOVDhfTUFYKSApDQo+ICsgICAgICAgICAgICBvcHRfZG9tMF9zY21pX2Fn
ZW50X2lkID0gdmFsOw0KPiArICAgICAgICBlbHNlDQo+ICsgICAgICAgICAgICBwcmludGsoWEVO
TE9HX0lORk8gIidzY2ktYWdlbnQtaWQ9JWxsZCcgdmFsdWUgb3V0IG9mIHJhbmdlIVxuIiwgdmFs
KTsNCj4gKw0KPiArICAgICAgICByZXR1cm4gMDsNCj4gKyAgICB9DQo+ICsNCj4gICAgICAgcmV0
dXJuIC1FSU5WQUw7DQo+ICAgfQ0KPg0KPiBAQCAtNTA5LDcgKzUyMyw4IEBAIHN0YXRpYyBpbnQg
X19pbml0IHdyaXRlX3Byb3BlcnRpZXMoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGtlcm5lbF9p
bmZvICpraW5mbywNCj4gICAgICAgICAgICAgICAgICAgIGR0X3Byb3BlcnR5X25hbWVfaXNfZXF1
YWwocHJvcCwgImxpbnV4LHVlZmktbW1hcC1zdGFydCIpIHx8DQo+ICAgICAgICAgICAgICAgICAg
ICBkdF9wcm9wZXJ0eV9uYW1lX2lzX2VxdWFsKHByb3AsICJsaW51eCx1ZWZpLW1tYXAtc2l6ZSIp
IHx8DQo+ICAgICAgICAgICAgICAgICAgICBkdF9wcm9wZXJ0eV9uYW1lX2lzX2VxdWFsKHByb3As
ICJsaW51eCx1ZWZpLW1tYXAtZGVzYy1zaXplIikgfHwNCj4gLSAgICAgICAgICAgICAgICAgZHRf
cHJvcGVydHlfbmFtZV9pc19lcXVhbChwcm9wLCAibGludXgsdWVmaS1tbWFwLWRlc2MtdmVyIikp
DQo+ICsgICAgICAgICAgICAgICAgIGR0X3Byb3BlcnR5X25hbWVfaXNfZXF1YWwocHJvcCwgImxp
bnV4LHVlZmktbW1hcC1kZXNjLXZlciIpIHx8DQo+ICsgICAgICAgICAgICAgICAgIGR0X3Byb3Bl
cnR5X25hbWVfaXNfZXF1YWwocHJvcCwgInhlbixjb25maWciKSApDQo+ICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOw0KPg0KPiAgICAgICAgICAgICAgIGlmICggZHRfcHJvcGVydHlfbmFtZV9p
c19lcXVhbChwcm9wLCAieGVuLGRvbTAtYm9vdGFyZ3MiKSApDQo+IEBAIC0yMDY3LDYgKzIwODIs
MTUgQEAgdm9pZCBfX2luaXQgY3JlYXRlX2RvbTAodm9pZCkNCj4gICAgICAgZG9tMF9jZmcuYXJj
aC50ZWVfdHlwZSA9IHRlZV9nZXRfdHlwZSgpOw0KPiAgICAgICBkb20wX2NmZy5tYXhfdmNwdXMg
PSBkb20wX21heF92Y3B1cygpOw0KPg0KPiArICAgIC8qIFNldCB1cCBTQ01JIGFnZW50IElEIGlm
IHNwZWNpZmllZCBpbiBkb20wPSBjb21tYW5kIGxpbmUgKi8NCj4gKyAgICBpZiAoIG9wdF9kb20w
X3NjbWlfYWdlbnRfaWQgIT0gU0NNSV9BR0VOVF9JRF9JTlZBTElEICkNCj4gKyAgICB7DQo+ICsg
ICAgICAgIGRvbTBfY2ZnLmFyY2guYXJtX3NjaV90eXBlID0gWEVOX0RPTUNUTF9DT05GSUdfQVJN
X1NDSV9TQ01JX1NNQ19NQTsNCj4gKyAgICAgICAgZG9tMF9jZmcuYXJjaC5hcm1fc2NpX2FnZW50
X2lkID0gb3B0X2RvbTBfc2NtaV9hZ2VudF9pZDsNCj4gKyAgICB9DQo+ICsgICAgZWxzZQ0KPiAr
ICAgICAgICBkb20wX2NmZy5hcmNoLmFybV9zY2lfdHlwZSA9IFhFTl9ET01DVExfQ09ORklHX0FS
TV9TQ0lfTk9ORTsNCj4gKw0KPiAgICAgICBpZiAoIGlvbW11X2VuYWJsZWQgKQ0KPiAgICAgICAg
ICAgZG9tMF9jZmcuZmxhZ3MgfD0gWEVOX0RPTUNUTF9DREZfaW9tbXU7DQo+DQo+IGRpZmYgLS1n
aXQgYS94ZW4vYXJjaC9hcm0vZmlybXdhcmUvS2NvbmZpZyBiL3hlbi9hcmNoL2FybS9maXJtd2Fy
ZS9LY29uZmlnDQo+IGluZGV4IDVjNWYwODgwYzQuLjk3MmNkOWIxNzMgMTAwNjQ0DQo+IC0tLSBh
L3hlbi9hcmNoL2FybS9maXJtd2FyZS9LY29uZmlnDQo+ICsrKyBiL3hlbi9hcmNoL2FybS9maXJt
d2FyZS9LY29uZmlnDQo+IEBAIC0yOSw2ICsyOSwxOCBAQCBjb25maWcgU0NNSV9TTUMNCj4gICAg
ICAgICBkcml2ZXIgZG9tYWluLg0KPiAgICAgICAgIFVzZSB3aXRoIEVMMyBmaXJtd2FyZSB3aGlj
aCBzdXBwb3J0cyBvbmx5IHNpbmdsZSBTQ01JIE9TUE0gYWdlbnQuDQo+DQo+ICtjb25maWcgU0NN
SV9TTUNfTUENCj4gKyAgICAgYm9vbCAiRW5hYmxlIEFSTSBTQ01JIFNNQyBtdWx0aS1hZ2VudCBk
cml2ZXIiDQo+ICsgICAgIGRlcGVuZHMgb24gQVJNXzY0DQo+ICsgICAgIHNlbGVjdCBBUk1fU0NJ
DQo+ICsgICAgIGhlbHANCj4gKyAgICAgICBFbmFibGVzIFNDTUkgU01DL0hWQyBtdWx0aS1hZ2Vu
dCBpbiBYRU4gdG8gcGFzcyBTQ01JIHJlcXVlc3RzIGZyb20gRG9tYWlucw0KPiArICAgICAgIHRv
IEVMMyBmaXJtd2FyZSAoVEYtQSkgd2hpY2ggc3VwcG9ydHMgbXVsdGktYWdlbnQgZmVhdHVyZS4N
Cj4gKyAgICAgICBUaGlzIGZlYXR1cmUgYWxsb3dzIHRvIGVuYWJsZSBTQ01JIHBlciBEb21haW4g
dXNpbmcgdW5pcXVlIFNDTUkgYWdlbnRfaWQsDQo+ICsgICAgICAgc28gRG9tYWluIGlzIGlkZW50
aWZpZWQgYnkgRUwzIGZpcm13YXJlIGFzIGFuIFNDTUkgQWdlbnQgYW5kIGNhbiBhY2Nlc3MNCj4g
KyAgICAgICBhbGxvd2VkIHBsYXRmb3JtIHJlc291cmNlcyB0aHJvdWdoIGRlZGljYXRlZCBTTUMv
SFZDIFNoYXJlZCBtZW1vcnkgYmFzZWQNCj4gKyAgICAgICB0cmFuc3BvcnQuDQo+ICsNCj4gICBl
bmRjaG9pY2UNCj4NCj4gICBlbmRtZW51DQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZmly
bXdhcmUvTWFrZWZpbGUgYi94ZW4vYXJjaC9hcm0vZmlybXdhcmUvTWFrZWZpbGUNCj4gaW5kZXgg
NzFiZGVmYzI0YS4uMzc5MjdlNjkwZSAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gvYXJtL2Zpcm13
YXJlL01ha2VmaWxlDQo+ICsrKyBiL3hlbi9hcmNoL2FybS9maXJtd2FyZS9NYWtlZmlsZQ0KPiBA
QCAtMSwyICsxLDMgQEANCj4gICBvYmotJChDT05GSUdfQVJNX1NDSSkgKz0gc2NpLm8NCj4gICBv
YmotJChDT05GSUdfU0NNSV9TTUMpICs9IHNjbWktc21jLm8NCj4gK29iai0kKENPTkZJR19TQ01J
X1NNQ19NQSkgKz0gc2NtaS1zaG1lbS5vIHNjbWktc21jLW11bHRpYWdlbnQubw0KPiBkaWZmIC0t
Z2l0IGEveGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjbWktcHJvdG8uaCBiL3hlbi9hcmNoL2FybS9m
aXJtd2FyZS9zY21pLXByb3RvLmgNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAw
MDAwMDAwMC4uNDlmNjNjZmMwYQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL3hlbi9hcmNoL2Fy
bS9maXJtd2FyZS9zY21pLXByb3RvLmgNCj4gQEAgLTAsMCArMSwxNjQgQEANCj4gKy8qIFNQRFgt
TGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8NCj4gKy8qDQo+ICsgKiBBcm0gU3lz
dGVtIENvbnRyb2wgYW5kIE1hbmFnZW1lbnQgSW50ZXJmYWNlIGRlZmluaXRpb25zDQo+ICsgKiBW
ZXJzaW9uIDMuMCAoREVOMDA1NkMpDQo+ICsgKg0KPiArICogQ29weXJpZ2h0IChjKSAyMDI1IEVQ
QU0gU3lzdGVtcw0KPiArICovDQo+ICsNCj4gKyNpZm5kZWYgQVJNX0ZJUk1XQVJFX1NDTUlfUFJP
VE9fSF8NCj4gKyNkZWZpbmUgQVJNX0ZJUk1XQVJFX1NDTUlfUFJPVE9fSF8NCj4gKw0KPiArI2lu
Y2x1ZGUgPHhlbi9zdGRpbnQuaD4NCj4gKw0KPiArI2RlZmluZSBTQ01JX1NIT1JUX05BTUVfTUFY
X1NJWkUgMTYNCj4gKw0KPiArLyogU0NNSSBzdGF0dXMgY29kZXMuIFNlZSBzZWN0aW9uIDQuMS40
ICovDQo+ICsjZGVmaW5lIFNDTUlfU1VDQ0VTUyAgICAgICAgICAgICAgMA0KPiArI2RlZmluZSBT
Q01JX05PVF9TVVBQT1JURUQgICAgICAoLTEpDQo+ICsjZGVmaW5lIFNDTUlfSU5WQUxJRF9QQVJB
TUVURVJTICgtMikNCj4gKyNkZWZpbmUgU0NNSV9ERU5JRUQgICAgICAgICAgICAgKC0zKQ0KPiAr
I2RlZmluZSBTQ01JX05PVF9GT1VORCAgICAgICAgICAoLTQpDQo+ICsjZGVmaW5lIFNDTUlfT1VU
X09GX1JBTkdFICAgICAgICgtNSkNCj4gKyNkZWZpbmUgU0NNSV9CVVNZICAgICAgICAgICAgICAg
KC02KQ0KPiArI2RlZmluZSBTQ01JX0NPTU1TX0VSUk9SICAgICAgICAoLTcpDQo+ICsjZGVmaW5l
IFNDTUlfR0VORVJJQ19FUlJPUiAgICAgICgtOCkNCj4gKyNkZWZpbmUgU0NNSV9IQVJEV0FSRV9F
UlJPUiAgICAgKC05KQ0KPiArI2RlZmluZSBTQ01JX1BST1RPQ09MX0VSUk9SICAgICAoLTEwKQ0K
PiArDQo+ICsvKiBQcm90b2NvbCBJRHMgKi8NCj4gKyNkZWZpbmUgU0NNSV9CQVNFX1BST1RPQ09M
IDB4MTANCj4gKw0KPiArLyogQmFzZSBwcm90b2NvbCBtZXNzYWdlIElEcyAqLw0KPiArI2RlZmlu
ZSBTQ01JX0JBU0VfUFJPVE9DT0xfVkVSU0lPTiAgICAgICAgICAgIDB4MA0KPiArI2RlZmluZSBT
Q01JX0JBU0VfUFJPVE9DT0xfQVRUSUJVVEVTICAgICAgICAgIDB4MQ0KPiArI2RlZmluZSBTQ01J
X0JBU0VfUFJPVE9DT0xfTUVTU0FHRV9BVFRSSUJVVEVTIDB4Mg0KPiArI2RlZmluZSBTQ01JX0JB
U0VfRElTQ09WRVJfQUdFTlQgICAgICAgICAgICAgIDB4Nw0KPiArI2RlZmluZSBTQ01JX0JBU0Vf
U0VUX0RFVklDRV9QRVJNSVNTSU9OUyAgICAgIDB4OQ0KPiArI2RlZmluZSBTQ01JX0JBU0VfUkVT
RVRfQUdFTlRfQ09ORklHVVJBVElPTiAgIDB4Qg0KPiArDQo+ICt0eXBlZGVmIHN0cnVjdCBzY21p
X21zZ19oZWFkZXIgew0KPiArICAgIHVpbnQ4X3QgaWQ7DQo+ICsgICAgdWludDhfdCB0eXBlOw0K
PiArICAgIHVpbnQ4X3QgcHJvdG9jb2w7DQo+ICsgICAgdWludDMyX3Qgc3RhdHVzOw0KPiArfSBz
Y21pX21zZ19oZWFkZXJfdDsNCj4gKw0KPiArLyogVGFibGUgMiBNZXNzYWdlIGhlYWRlciBmb3Jt
YXQgKi8NCj4gKyNkZWZpbmUgU0NNSV9IRFJfSUQgICAgR0VOTUFTSyg3LCAwKQ0KPiArI2RlZmlu
ZSBTQ01JX0hEUl9UWVBFICBHRU5NQVNLKDksIDgpDQo+ICsjZGVmaW5lIFNDTUlfSERSX1BST1RP
IEdFTk1BU0soMTcsIDEwKQ0KPiArDQo+ICsjZGVmaW5lIFNDTUlfRklFTERfR0VUKF9tYXNrLCBf
cmVnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAg
ICgodHlwZW9mKF9tYXNrKSkoKChfcmVnKSAmIChfbWFzaykpID4+IChmZnM2NChfbWFzaykgLSAx
KSkpDQo+ICsjZGVmaW5lIFNDTUlfRklFTERfUFJFUChfbWFzaywgX3ZhbCkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgICgoKHR5cGVvZihfbWFzaykp
KF92YWwpIDw8IChmZnM2NChfbWFzaykgLSAxKSkgJiAoX21hc2spKQ0KPiArDQo+ICtzdGF0aWMg
aW5saW5lIHVpbnQzMl90IHBhY2tfc2NtaV9oZWFkZXIoc2NtaV9tc2dfaGVhZGVyX3QgKmhkcikN
Cj4gK3sNCj4gKyAgICByZXR1cm4gU0NNSV9GSUVMRF9QUkVQKFNDTUlfSERSX0lELCBoZHItPmlk
KSB8DQo+ICsgICAgICAgICAgIFNDTUlfRklFTERfUFJFUChTQ01JX0hEUl9UWVBFLCBoZHItPnR5
cGUpIHwNCj4gKyAgICAgICAgICAgU0NNSV9GSUVMRF9QUkVQKFNDTUlfSERSX1BST1RPLCBoZHIt
PnByb3RvY29sKTsNCj4gK30NCj4gKw0KPiArc3RhdGljIGlubGluZSB2b2lkIHVucGFja19zY21p
X2hlYWRlcih1aW50MzJfdCBtc2dfaGRyLCBzY21pX21zZ19oZWFkZXJfdCAqaGRyKQ0KPiArew0K
PiArICAgIGhkci0+aWQgPSBTQ01JX0ZJRUxEX0dFVChTQ01JX0hEUl9JRCwgbXNnX2hkcik7DQo+
ICsgICAgaGRyLT50eXBlID0gU0NNSV9GSUVMRF9HRVQoU0NNSV9IRFJfVFlQRSwgbXNnX2hkcik7
DQo+ICsgICAgaGRyLT5wcm90b2NvbCA9IFNDTUlfRklFTERfR0VUKFNDTUlfSERSX1BST1RPLCBt
c2dfaGRyKTsNCj4gK30NCj4gKw0KPiArc3RhdGljIGlubGluZSBpbnQgc2NtaV90b194ZW5fZXJy
bm8oaW50IHNjbWlfc3RhdHVzKQ0KPiArew0KPiArICAgIGlmICggc2NtaV9zdGF0dXMgPT0gU0NN
SV9TVUNDRVNTICkNCj4gKyAgICAgICAgcmV0dXJuIDA7DQo+ICsNCj4gKyAgICBzd2l0Y2ggKCBz
Y21pX3N0YXR1cyApDQo+ICsgICAgew0KPiArICAgIGNhc2UgU0NNSV9OT1RfU1VQUE9SVEVEOg0K
PiArICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7DQo+ICsgICAgY2FzZSBTQ01JX0lOVkFMSURf
UEFSQU1FVEVSUzoNCj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ICsgICAgY2FzZSBTQ01J
X0RFTklFRDoNCj4gKyAgICAgICAgcmV0dXJuIC1FQUNDRVM7DQo+ICsgICAgY2FzZSBTQ01JX05P
VF9GT1VORDoNCj4gKyAgICAgICAgcmV0dXJuIC1FTk9FTlQ7DQo+ICsgICAgY2FzZSBTQ01JX09V
VF9PRl9SQU5HRToNCj4gKyAgICAgICAgcmV0dXJuIC1FUkFOR0U7DQo+ICsgICAgY2FzZSBTQ01J
X0JVU1k6DQo+ICsgICAgICAgIHJldHVybiAtRUJVU1k7DQo+ICsgICAgY2FzZSBTQ01JX0NPTU1T
X0VSUk9SOg0KPiArICAgICAgICByZXR1cm4gLUVOT1RDT05OOw0KPiArICAgIGNhc2UgU0NNSV9H
RU5FUklDX0VSUk9SOg0KPiArICAgICAgICByZXR1cm4gLUVJTzsNCj4gKyAgICBjYXNlIFNDTUlf
SEFSRFdBUkVfRVJST1I6DQo+ICsgICAgICAgIHJldHVybiAtRU5YSU87DQo+ICsgICAgY2FzZSBT
Q01JX1BST1RPQ09MX0VSUk9SOg0KPiArICAgICAgICByZXR1cm4gLUVCQURNU0c7DQo+ICsgICAg
ZGVmYXVsdDoNCj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ICsgICAgfQ0KPiArfQ0KPiAr
DQo+ICsvKiBQUk9UT0NPTF9WRVJTSU9OICovDQo+ICsjZGVmaW5lIFNDTUlfVkVSU0lPTl9NSU5P
UiBHRU5NQVNLKDE1LCAwKQ0KPiArI2RlZmluZSBTQ01JX1ZFUlNJT05fTUFKT1IgR0VOTUFTSygz
MSwgMTYpDQo+ICsNCj4gK3N0cnVjdCBzY21pX21zZ19wcm90X3ZlcnNpb25fcDJhIHsNCj4gKyAg
ICB1aW50MzJfdCB2ZXJzaW9uOw0KPiArfSBfX3BhY2tlZDsNCj4gKw0KPiArLyogQkFTRSBQUk9U
T0NPTF9BVFRSSUJVVEVTICovDQo+ICsjZGVmaW5lIFNDTUlfQkFTRV9BVFRSX05VTV9QUk9UTyBH
RU5NQVNLKDcsIDApDQo+ICsjZGVmaW5lIFNDTUlfQkFTRV9BVFRSX05VTV9BR0VOVCBHRU5NQVNL
KDE1LCA4KQ0KPiArDQo+ICtzdHJ1Y3Qgc2NtaV9tc2dfYmFzZV9hdHRyaWJ1dGVzX3AyYSB7DQo+
ICsgICAgdWludDMyX3QgYXR0cmlidXRlczsNCj4gK30gX19wYWNrZWQ7DQo+ICsNCj4gKy8qDQo+
ICsgKiBCQVNFX0RJU0NPVkVSX0FHRU5UDQo+ICsgKi8NCj4gKyNkZWZpbmUgU0NNSV9CQVNFX0FH
RU5UX0lEX09XTiAweEZGRkZGRkZGDQo+ICsNCj4gK3N0cnVjdCBzY21pX21zZ19iYXNlX2Rpc2Nv
dmVyX2FnZW50X2EycCB7DQo+ICsgICAgdWludDMyX3QgYWdlbnRfaWQ7DQo+ICt9IF9fcGFja2Vk
Ow0KPiArDQo+ICtzdHJ1Y3Qgc2NtaV9tc2dfYmFzZV9kaXNjb3Zlcl9hZ2VudF9wMmEgew0KPiAr
ICAgIHVpbnQzMl90IGFnZW50X2lkOw0KPiArICAgIGNoYXIgbmFtZVtTQ01JX1NIT1JUX05BTUVf
TUFYX1NJWkVdOw0KPiArfSBfX3BhY2tlZDsNCj4gKw0KPiArLyoNCj4gKyAqIEJBU0VfU0VUX0RF
VklDRV9QRVJNSVNTSU9OUw0KPiArICovDQo+ICsjZGVmaW5lIFNDTUlfQkFTRV9ERVZJQ0VfQUND
RVNTX0FMTE9XICAgICAgICAgICBCSVQoMCwgVUwpDQo+ICsNCj4gK3N0cnVjdCBzY21pX21zZ19i
YXNlX3NldF9kZXZpY2VfcGVybWlzc2lvbnNfYTJwIHsNCj4gKyAgICB1aW50MzJfdCBhZ2VudF9p
ZDsNCj4gKyAgICB1aW50MzJfdCBkZXZpY2VfaWQ7DQo+ICsgICAgdWludDMyX3QgZmxhZ3M7DQo+
ICt9IF9fcGFja2VkOw0KPiArDQo+ICsvKg0KPiArICogQkFTRV9SRVNFVF9BR0VOVF9DT05GSUdV
UkFUSU9ODQo+ICsgKi8NCj4gKyNkZWZpbmUgU0NNSV9CQVNFX0FHRU5UX1BFUk1JU1NJT05TX1JF
U0VUICAgICAgIEJJVCgwLCBVTCkNCj4gKw0KPiArc3RydWN0IHNjbWlfbXNnX2Jhc2VfcmVzZXRf
YWdlbnRfY2ZnX2EycCB7DQo+ICsgICAgdWludDMyX3QgYWdlbnRfaWQ7DQo+ICsgICAgdWludDMy
X3QgZmxhZ3M7DQo+ICt9IF9fcGFja2VkOw0KPiArDQo+ICsjZW5kaWYgLyogQVJNX0ZJUk1XQVJF
X1NDTUlfUFJPVE9fSF8gKi8NCj4gKw0KPiArLyoNCj4gKyAqIExvY2FsIHZhcmlhYmxlczoNCj4g
KyAqIG1vZGU6IEMNCj4gKyAqIGMtZmlsZS1zdHlsZTogIkJTRCINCj4gKyAqIGMtYmFzaWMtb2Zm
c2V0OiA0DQo+ICsgKiB0YWItd2lkdGg6IDQNCj4gKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbA0K
PiArICogRW5kOg0KPiArICovDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZmlybXdhcmUv
c2NtaS1zaG1lbS5jIGIveGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjbWktc2htZW0uYw0KPiBuZXcg
ZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwLi5jNjgxZTNjNDc2DQo+IC0tLSAv
ZGV2L251bGwNCj4gKysrIGIveGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjbWktc2htZW0uYw0KPiBA
QCAtMCwwICsxLDExNSBAQA0KPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAt
b25seSAqLw0KPiArLyoNCj4gKyAqIFNNQy9IVkMgc2htZW0gdHJhbnNwb3J0IGltcGxlbWVudGF0
aW9uIHVzZWQgYnkNCj4gKyAqIFNDSSBTQ01JIG11bHRpLWFnZW50IGRyaXZlci4NCj4gKyAqDQo+
ICsgKiBPbGVrc2lpIE1vaXNpZWlldiA8b2xla3NpaV9tb2lzaWVpZXZAZXBhbS5jb20+DQo+ICsg
KiBDb3B5cmlnaHQgKGMpIDIwMjUgRVBBTSBTeXN0ZW1zDQo+ICsgKi8NCj4gKy8qIFNQRFgtTGlj
ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8NCj4gKw0KPiArI2luY2x1ZGUgPHhlbi9l
cnIuaD4NCj4gKyNpbmNsdWRlIDx4ZW4vbGliL2lvLmg+DQo+ICsjaW5jbHVkZSA8YXNtL2lvLmg+
DQo+ICsNCj4gKyNpbmNsdWRlICJzY21pLXByb3RvLmgiDQo+ICsjaW5jbHVkZSAic2NtaS1zaG1l
bS5oIg0KPiArDQo+ICtzdGF0aWMgaW5saW5lIGludA0KPiArc2htZW1fY2hhbm5lbF9pc19mcmVl
KGNvbnN0IHZvbGF0aWxlIHN0cnVjdCBzY21pX3NoYXJlZF9tZW0gX19pb21lbSAqc2htZW0pDQo+
ICt7DQo+ICsgICAgcmV0dXJuIChyZWFkbCgmc2htZW0tPmNoYW5uZWxfc3RhdHVzKSAmDQo+ICsg
ICAgICAgICAgICBTQ01JX1NITUVNX0NIQU5fU1RBVF9DSEFOTkVMX0ZSRUUpID8gMCA6IC1FQlVT
WTsNCj4gK30NCj4gKw0KPiAraW50IHNobWVtX3B1dF9tZXNzYWdlKHZvbGF0aWxlIHN0cnVjdCBz
Y21pX3NoYXJlZF9tZW0gX19pb21lbSAqc2htZW0sDQo+ICsgICAgICAgICAgICAgICAgICAgICAg
c2NtaV9tc2dfaGVhZGVyX3QgKmhkciwgdm9pZCAqZGF0YSwgaW50IGxlbikNCj4gK3sNCj4gKyAg
ICBpbnQgcmV0Ow0KPiArDQo+ICsgICAgaWYgKCAobGVuICsgb2Zmc2V0b2Yoc3RydWN0IHNjbWlf
c2hhcmVkX21lbSwgbXNnX3BheWxvYWQpKSA+DQo+ICsgICAgICAgICBTQ01JX1NITUVNX01BUFBF
RF9TSVpFICkNCj4gKyAgICB7DQo+ICsgICAgICAgIHByaW50ayhYRU5MT0dfRVJSICJzY21pOiBX
cm9uZyBzaXplIG9mIHNtYyBtZXNzYWdlLiBEYXRhIGlzIGludmFsaWRcbiIpOw0KPiArICAgICAg
ICByZXR1cm4gLUVJTlZBTDsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICByZXQgPSBzaG1lbV9jaGFu
bmVsX2lzX2ZyZWUoc2htZW0pOw0KPiArICAgIGlmICggcmV0ICkNCj4gKyAgICAgICAgcmV0dXJu
IHJldDsNCj4gKw0KPiArICAgIHdyaXRlbF9yZWxheGVkKDB4MCwgJnNobWVtLT5jaGFubmVsX3N0
YXR1cyk7DQo+ICsgICAgLyogV3JpdGluZyAweDAgcmlnaHQgbm93LCBidXQgInNobWVtIl9GTEFH
X0lOVFJfRU5BQkxFRCBjYW4gYmUgc2V0ICovDQo+ICsgICAgd3JpdGVsX3JlbGF4ZWQoMHgwLCAm
c2htZW0tPmZsYWdzKTsNCj4gKyAgICB3cml0ZWxfcmVsYXhlZChzaXplb2Yoc2htZW0tPm1zZ19o
ZWFkZXIpICsgbGVuLCAmc2htZW0tPmxlbmd0aCk7DQo+ICsgICAgd3JpdGVsKHBhY2tfc2NtaV9o
ZWFkZXIoaGRyKSwgJnNobWVtLT5tc2dfaGVhZGVyKTsNCj4gKw0KPiArICAgIGlmICggbGVuID4g
MCAmJiBkYXRhICkNCj4gKyAgICAgICAgX19tZW1jcHlfdG9pbyhzaG1lbS0+bXNnX3BheWxvYWQs
IGRhdGEsIGxlbik7DQo+ICsNCj4gKyAgICByZXR1cm4gMDsNCj4gK30NCj4gKw0KPiAraW50IHNo
bWVtX2dldF9yZXNwb25zZShjb25zdCB2b2xhdGlsZSBzdHJ1Y3Qgc2NtaV9zaGFyZWRfbWVtIF9f
aW9tZW0gKnNobWVtLA0KPiArICAgICAgICAgICAgICAgICAgICAgICBzY21pX21zZ19oZWFkZXJf
dCAqaGRyLCB2b2lkICpkYXRhLCBpbnQgbGVuKQ0KPiArew0KPiArICAgIGludCByZWN2X2xlbjsN
Cj4gKyAgICBpbnQgcmV0Ow0KPiArICAgIGludCBwYWQgPSBzaXplb2YoaGRyLT5zdGF0dXMpOw0K
PiArDQo+ICsgICAgaWYgKCBsZW4gPj0gU0NNSV9TSE1FTV9NQVBQRURfU0laRSAtDQo+ICsgICAg
ICAgICBvZmZzZXRvZihzdHJ1Y3Qgc2NtaV9zaGFyZWRfbWVtLCBtc2dfcGF5bG9hZCkgKQ0KPiAr
ICAgIHsNCj4gKyAgICAgICAgcHJpbnRrKFhFTkxPR19FUlINCj4gKyAgICAgICAgICAgICAgICJz
Y21pOiBXcm9uZyBzaXplIG9mIGlucHV0IHNtYyBtZXNzYWdlLiBEYXRhIG1heSBiZSBpbnZhbGlk
XG4iKTsNCj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAg
cmV0ID0gc2htZW1fY2hhbm5lbF9pc19mcmVlKHNobWVtKTsNCj4gKyAgICBpZiAoIHJldCApDQo+
ICsgICAgICAgIHJldHVybiByZXQ7DQo+ICsNCj4gKyAgICByZWN2X2xlbiA9IHJlYWRsKCZzaG1l
bS0+bGVuZ3RoKSAtIHNpemVvZihzaG1lbS0+bXNnX2hlYWRlcik7DQo+ICsNCj4gKyAgICBpZiAo
IHJlY3ZfbGVuIDwgMCApDQo+ICsgICAgew0KPiArICAgICAgICBwcmludGsoWEVOTE9HX0VSUg0K
PiArICAgICAgICAgICAgICAgInNjbWk6IFdyb25nIHNpemUgb2Ygc21jIG1lc3NhZ2UuIERhdGEg
bWF5IGJlIGludmFsaWRcbiIpOw0KPiArICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gKyAgICB9
DQo+ICsNCj4gKyAgICB1bnBhY2tfc2NtaV9oZWFkZXIocmVhZGwoJnNobWVtLT5tc2dfaGVhZGVy
KSwgaGRyKTsNCj4gKw0KPiArICAgIGhkci0+c3RhdHVzID0gcmVhZGwoJnNobWVtLT5tc2dfcGF5
bG9hZCk7DQo+ICsgICAgcmVjdl9sZW4gPSByZWN2X2xlbiA+IHBhZCA/IHJlY3ZfbGVuIC0gcGFk
IDogMDsNCj4gKw0KPiArICAgIHJldCA9IHNjbWlfdG9feGVuX2Vycm5vKGhkci0+c3RhdHVzKTsN
Cj4gKyAgICBpZiAoIHJldCApDQo+ICsgICAgew0KPiArICAgICAgICBwcmludGsoWEVOTE9HX0RF
QlVHICJzY21pOiBFcnJvciByZWNlaXZlZDogJWRcbiIsIHJldCk7DQo+ICsgICAgICAgIHJldHVy
biByZXQ7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgaWYgKCByZWN2X2xlbiA+IGxlbiApDQo+ICsg
ICAgew0KPiArICAgICAgICBwcmludGsoWEVOTE9HX0VSUg0KPiArICAgICAgICAgICAgICAgInNj
bWk6IE5vdCBlbm91Z2ggYnVmZmVyIGZvciBtZXNzYWdlICVkLCBleHBlY3RpbmcgJWRcbiIsDQo+
ICsgICAgICAgICAgICAgICByZWN2X2xlbiwgbGVuKTsNCj4gKyAgICAgICAgcmV0dXJuIC1FSU5W
QUw7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgaWYgKCByZWN2X2xlbiA+IDAgKQ0KPiArICAgICAg
ICBfX21lbWNweV9mcm9taW8oZGF0YSwgc2htZW0tPm1zZ19wYXlsb2FkICsgcGFkLCByZWN2X2xl
bik7DQo+ICsNCj4gKyAgICByZXR1cm4gMDsNCj4gK30NCj4gKw0KPiArLyoNCj4gKyAqIExvY2Fs
IHZhcmlhYmxlczoNCj4gKyAqIG1vZGU6IEMNCj4gKyAqIGMtZmlsZS1zdHlsZTogIkJTRCINCj4g
KyAqIGMtYmFzaWMtb2Zmc2V0OiA0DQo+ICsgKiB0YWItd2lkdGg6IDQNCj4gKyAqIGluZGVudC10
YWJzLW1vZGU6IG5pbA0KPiArICogRW5kOg0KPiArICovDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJj
aC9hcm0vZmlybXdhcmUvc2NtaS1zaG1lbS5oIGIveGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjbWkt
c2htZW0uaA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwLi43MzEz
Y2I2YjI2DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIveGVuL2FyY2gvYXJtL2Zpcm13YXJlL3Nj
bWktc2htZW0uaA0KPiBAQCAtMCwwICsxLDQ1IEBADQo+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRp
ZmllcjogR1BMLTIuMC1vbmx5ICovDQo+ICsvKg0KPiArICogQXJtIFN5c3RlbSBDb250cm9sIGFu
ZCBNYW5hZ2VtZW50IEludGVyZmFjZSBkZWZpbml0aW9ucw0KPiArICogVmVyc2lvbiAzLjAgKERF
TjAwNTZDKQ0KPiArICogU2hhcmVkIE1lbW9yeSBiYXNlZCBUcmFuc3BvcnQNCj4gKyAqDQo+ICsg
KiBDb3B5cmlnaHQgKGMpIDIwMjQgRVBBTSBTeXN0ZW1zDQo+ICsgKi8NCj4gKw0KPiArI2lmbmRl
ZiBBUk1fRklSTVdBUkVfU0NNSV9TSE1FTV9IXw0KPiArI2RlZmluZSBBUk1fRklSTVdBUkVfU0NN
SV9TSE1FTV9IXw0KPiArDQo+ICsjaW5jbHVkZSA8eGVuL3N0ZGludC5oPg0KPiArDQo+ICsjZGVm
aW5lIFNDTUlfU0hNRU1fQ0hBTl9TVEFUX0NIQU5ORUxfRlJFRSAgQklUKDAsIFVMKQ0KPiArI2Rl
ZmluZSBTQ01JX1NITUVNX0NIQU5fU1RBVF9DSEFOTkVMX0VSUk9SIEJJVCgxLCBVTCkNCj4gKw0K
PiArc3RydWN0IHNjbWlfc2hhcmVkX21lbSB7DQo+ICsgICAgdWludDMyX3QgcmVzZXJ2ZWQ7DQo+
ICsgICAgdWludDMyX3QgY2hhbm5lbF9zdGF0dXM7DQo+ICsgICAgdWludDMyX3QgcmVzZXJ2ZWQx
WzJdOw0KPiArICAgIHVpbnQzMl90IGZsYWdzOw0KPiArICAgIHVpbnQzMl90IGxlbmd0aDsNCj4g
KyAgICB1aW50MzJfdCBtc2dfaGVhZGVyOw0KPiArICAgIHVpbnQ4X3QgbXNnX3BheWxvYWRbXTsN
Cj4gK307DQo+ICsNCj4gKyNkZWZpbmUgU0NNSV9TSE1FTV9NQVBQRURfU0laRSBQQUdFX1NJWkUN
Cj4gKw0KPiAraW50IHNobWVtX3B1dF9tZXNzYWdlKHZvbGF0aWxlIHN0cnVjdCBzY21pX3NoYXJl
ZF9tZW0gX19pb21lbSAqc2htZW0sDQo+ICsgICAgICAgICAgICAgICAgICAgICAgc2NtaV9tc2df
aGVhZGVyX3QgKmhkciwgdm9pZCAqZGF0YSwgaW50IGxlbik7DQo+ICsNCj4gK2ludCBzaG1lbV9n
ZXRfcmVzcG9uc2UoY29uc3Qgdm9sYXRpbGUgc3RydWN0IHNjbWlfc2hhcmVkX21lbSBfX2lvbWVt
ICpzaG1lbSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgc2NtaV9tc2dfaGVhZGVyX3QgKmhk
ciwgdm9pZCAqZGF0YSwgaW50IGxlbik7DQo+ICsjZW5kaWYgLyogQVJNX0ZJUk1XQVJFX1NDTUlf
U0hNRU1fSF8gKi8NCj4gKw0KPiArLyoNCj4gKyAqIExvY2FsIHZhcmlhYmxlczoNCj4gKyAqIG1v
ZGU6IEMNCj4gKyAqIGMtZmlsZS1zdHlsZTogIkJTRCINCj4gKyAqIGMtYmFzaWMtb2Zmc2V0OiA0
DQo+ICsgKiB0YWItd2lkdGg6IDQNCj4gKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbA0KPiArICog
RW5kOg0KPiArICovDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZmlybXdhcmUvc2NtaS1z
bWMtbXVsdGlhZ2VudC5jIGIveGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjbWktc21jLW11bHRpYWdl
bnQuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwLi44ZTUzMjc5
OGE2DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIveGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjbWkt
c21jLW11bHRpYWdlbnQuYw0KPiBAQCAtMCwwICsxLDc5NCBAQA0KPiArLyogU1BEWC1MaWNlbnNl
LUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLw0KPiArLyoNCj4gKyAqIFNDSSBTQ01JIG11bHRp
LWFnZW50IGRyaXZlciwgdXNpbmcgU01DL0hWQyBzaG1lbSBhcyB0cmFuc3BvcnQuDQo+ICsgKg0K
PiArICogT2xla3NpaSBNb2lzaWVpZXYgPG9sZWtzaWlfbW9pc2llaWV2QGVwYW0uY29tPg0KPiAr
ICogQ29weXJpZ2h0IChjKSAyMDI1IEVQQU0gU3lzdGVtcw0KPiArICovDQo+ICsNCj4gKyNpbmNs
dWRlIDx4ZW4vYWNwaS5oPg0KPiArDQo+ICsjaW5jbHVkZSA8eGVuL2RldmljZV90cmVlLmg+DQo+
ICsjaW5jbHVkZSA8eGVuL2luaXQuaD4NCj4gKyNpbmNsdWRlIDx4ZW4vaW9jYXAuaD4NCj4gKyNp
bmNsdWRlIDx4ZW4vZXJyLmg+DQo+ICsjaW5jbHVkZSA8eGVuL2xpYmZkdC9saWJmZHQuaD4NCj4g
KyNpbmNsdWRlIDx4ZW4vcGFyYW0uaD4NCj4gKyNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4NCj4gKyNp
bmNsdWRlIDx4ZW4vdm1hcC5oPg0KPiArDQo+ICsjaW5jbHVkZSA8YXNtL2Zpcm13YXJlL3NjaS5o
Pg0KPiArI2luY2x1ZGUgPGFzbS9zbWNjYy5oPg0KPiArDQo+ICsjaW5jbHVkZSAic2NtaS1wcm90
by5oIg0KPiArI2luY2x1ZGUgInNjbWktc2htZW0uaCINCj4gKw0KPiArI2RlZmluZSBTQ01JX0FH
RU5UX0lEX0lOVkFMSUQgMHhGRg0KPiArDQo+ICsjZGVmaW5lIFNDTUlfU0VDT05EQVJZX0FHRU5U
UyAic2NtaS1zZWNvbmRhcnktYWdlbnRzIg0KPiArDQo+ICtzdHJ1Y3Qgc2NtaV9jaGFubmVsIHsN
Cj4gKyAgICB1aW50MzJfdCBhZ2VudF9pZDsNCj4gKyAgICB1aW50MzJfdCBmdW5jX2lkOw0KPiAr
ICAgIGRvbWlkX3QgZG9tYWluX2lkOw0KPiArICAgIHVpbnQ2NF90IHBhZGRyOw0KPiArICAgIHN0
cnVjdCBzY21pX3NoYXJlZF9tZW0gX19pb21lbSAqc2htZW07DQo+ICsgICAgc3BpbmxvY2tfdCBs
b2NrOw0KPiArICAgIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsNCj4gK307DQo+ICsNCj4gK3N0cnVj
dCBzY21pX2RhdGEgew0KPiArICAgIHN0cnVjdCBsaXN0X2hlYWQgY2hhbm5lbF9saXN0Ow0KPiAr
ICAgIHNwaW5sb2NrX3QgY2hhbm5lbF9saXN0X2xvY2s7DQo+ICsgICAgdWludDMyX3QgZnVuY19p
ZDsNCj4gKyAgICBib29sIGluaXRpYWxpemVkOw0KPiArICAgIHVpbnQzMl90IHNobWVtX3BoYW5k
bGU7DQo+ICsgICAgdWludDMyX3QgaHlwX2NoYW5uZWxfYWdlbnRfaWQ7DQo+ICsgICAgc3RydWN0
IGR0X2RldmljZV9ub2RlICpkdF9kZXY7DQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgc3RydWN0IHNj
bWlfZGF0YSBzY21pX2RhdGE7DQo+ICsNCj4gK3N0YXRpYyBpbnQgc2VuZF9zbWNfbWVzc2FnZShz
dHJ1Y3Qgc2NtaV9jaGFubmVsICpjaGFuX2luZm8sDQo+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2NtaV9tc2dfaGVhZGVyX3QgKmhkciwgdm9pZCAqZGF0YSwgaW50IGxlbikNCj4gK3sN
Cj4gKyAgICBzdHJ1Y3QgYXJtX3NtY2NjX3JlcyByZXNwOw0KPiArICAgIGludCByZXQ7DQo+ICsN
Cj4gKyAgICByZXQgPSBzaG1lbV9wdXRfbWVzc2FnZShjaGFuX2luZm8tPnNobWVtLCBoZHIsIGRh
dGEsIGxlbik7DQo+ICsgICAgaWYgKCByZXQgKQ0KPiArICAgICAgICByZXR1cm4gcmV0Ow0KPiAr
DQo+ICsgICAgYXJtX3NtY2NjXzFfMV9zbWMoY2hhbl9pbmZvLT5mdW5jX2lkLCAwLCAwLCAwLCAw
LCAwLCAwLCAwLCAmcmVzcCk7DQo+ICsNCj4gKyAgICBpZiAoIHJlc3AuYTAgPT0gQVJNX1NNQ0ND
X0lOVkFMSURfUEFSQU1FVEVSICkNCj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ICsNCj4g
KyAgICBpZiAoIHJlc3AuYTAgKQ0KPiArICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7DQo+ICsN
Cj4gKyAgICByZXR1cm4gMDsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludCBkb19zbWNfeGZlcihz
dHJ1Y3Qgc2NtaV9jaGFubmVsICpjaGFuX2luZm8sIHNjbWlfbXNnX2hlYWRlcl90ICpoZHIsDQo+
ICsgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnR4X2RhdGEsIGludCB0eF9zaXplLCB2b2lk
ICpyeF9kYXRhLCBpbnQgcnhfc2l6ZSkNCj4gK3sNCj4gKyAgICBpbnQgcmV0ID0gMDsNCj4gKw0K
PiArICAgIEFTU0VSVChjaGFuX2luZm8gJiYgY2hhbl9pbmZvLT5zaG1lbSk7DQo+ICsNCj4gKyAg
ICBpZiAoICFoZHIgKQ0KPiArICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gKw0KPiArICAgIHNw
aW5fbG9jaygmY2hhbl9pbmZvLT5sb2NrKTsNCj4gKw0KPiArICAgIHByaW50ayhYRU5MT0dfREVC
VUcNCj4gKyAgICAgICAgICAgInNjbWk6IGFnZW50X2lkID0gJWQgbXNnX2lkID0gJXggdHlwZSA9
ICVkLCBwcm90byA9ICV4XG4iLA0KPiArICAgICAgICAgICBjaGFuX2luZm8tPmFnZW50X2lkLCBo
ZHItPmlkLCBoZHItPnR5cGUsIGhkci0+cHJvdG9jb2wpOw0KPiArDQo+ICsgICAgcmV0ID0gc2Vu
ZF9zbWNfbWVzc2FnZShjaGFuX2luZm8sIGhkciwgdHhfZGF0YSwgdHhfc2l6ZSk7DQo+ICsgICAg
aWYgKCByZXQgKQ0KPiArICAgICAgICBnb3RvIGNsZWFuOw0KPiArDQo+ICsgICAgcmV0ID0gc2ht
ZW1fZ2V0X3Jlc3BvbnNlKGNoYW5faW5mby0+c2htZW0sIGhkciwgcnhfZGF0YSwgcnhfc2l6ZSk7
DQo+ICsNCj4gK2NsZWFuOg0KPiArICAgIHByaW50ayhYRU5MT0dfREVCVUcNCj4gKyAgICAgICAg
ICAgInNjbWk6IGdldCBzbWMgcmVzcG9uc2UgYWdlbnRfaWQgPSAlZCBtc2dfaWQgPSAleCBwcm90
byA9ICV4IHJlcz0lZFxuIiwNCj4gKyAgICAgICAgICAgY2hhbl9pbmZvLT5hZ2VudF9pZCwgaGRy
LT5pZCwgaGRyLT5wcm90b2NvbCwgcmV0KTsNCj4gKw0KPiArICAgIHNwaW5fdW5sb2NrKCZjaGFu
X2luZm8tPmxvY2spOw0KPiArDQo+ICsgICAgcmV0dXJuIHJldDsNCj4gK30NCj4gKw0KPiArc3Rh
dGljIHN0cnVjdCBzY21pX2NoYW5uZWwgKmdldF9jaGFubmVsX2J5X2lkKHVpbnQzMl90IGFnZW50
X2lkKQ0KPiArew0KPiArICAgIHN0cnVjdCBzY21pX2NoYW5uZWwgKmN1cnI7DQo+ICsgICAgYm9v
bCBmb3VuZCA9IGZhbHNlOw0KPiArDQo+ICsgICAgc3Bpbl9sb2NrKCZzY21pX2RhdGEuY2hhbm5l
bF9saXN0X2xvY2spOw0KPiArICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoY3VyciwgJnNjbWlfZGF0
YS5jaGFubmVsX2xpc3QsIGxpc3QpDQo+ICsgICAgew0KPiArICAgICAgICBpZiAoIGN1cnItPmFn
ZW50X2lkID09IGFnZW50X2lkICkNCj4gKyAgICAgICAgew0KPiArICAgICAgICAgICAgZm91bmQg
PSB0cnVlOw0KPiArICAgICAgICAgICAgYnJlYWs7DQo+ICsgICAgICAgIH0NCj4gKyAgICB9DQo+
ICsNCj4gKyAgICBzcGluX3VubG9jaygmc2NtaV9kYXRhLmNoYW5uZWxfbGlzdF9sb2NrKTsNCj4g
KyAgICBpZiAoIGZvdW5kICkNCj4gKyAgICAgICAgcmV0dXJuIGN1cnI7DQo+ICsNCj4gKyAgICBy
ZXR1cm4gTlVMTDsNCj4gK30NCj4gKw0KPiArc3RhdGljIHN0cnVjdCBzY21pX2NoYW5uZWwgKmFj
cXVpcmVfc2NtaV9jaGFubmVsKHN0cnVjdCBkb21haW4gKmQsDQo+ICsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgYWdlbnRfaWQpDQo+ICt7
DQo+ICsgICAgc3RydWN0IHNjbWlfY2hhbm5lbCAqY3VycjsNCj4gKyAgICBzdHJ1Y3Qgc2NtaV9j
aGFubmVsICpyZXQgPSBFUlJfUFRSKC1FTk9FTlQpOw0KPiArDQo+ICsgICAgc3Bpbl9sb2NrKCZz
Y21pX2RhdGEuY2hhbm5lbF9saXN0X2xvY2spOw0KPiArICAgIGxpc3RfZm9yX2VhY2hfZW50cnko
Y3VyciwgJnNjbWlfZGF0YS5jaGFubmVsX2xpc3QsIGxpc3QpDQo+ICsgICAgew0KPiArICAgICAg
ICBpZiAoIGN1cnItPmFnZW50X2lkID09IGFnZW50X2lkICkNCj4gKyAgICAgICAgew0KPiArICAg
ICAgICAgICAgaWYgKCBjdXJyLT5kb21haW5faWQgIT0gRE9NSURfSU5WQUxJRCApDQo+ICsgICAg
ICAgICAgICB7DQo+ICsgICAgICAgICAgICAgICAgcmV0ID0gRVJSX1BUUigtRUVYSVNUKTsNCj4g
KyAgICAgICAgICAgICAgICBicmVhazsNCj4gKyAgICAgICAgICAgIH0NCj4gKw0KPiArICAgICAg
ICAgICAgY3Vyci0+ZG9tYWluX2lkID0gZC0+ZG9tYWluX2lkOw0KPiArICAgICAgICAgICAgcmV0
ID0gY3VycjsNCj4gKyAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgICB9DQo+ICsgICAgfQ0K
PiArDQo+ICsgICAgc3Bpbl91bmxvY2soJnNjbWlfZGF0YS5jaGFubmVsX2xpc3RfbG9jayk7DQo+
ICsNCj4gKyAgICByZXR1cm4gcmV0Ow0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCByZWxpbnF1
aXNoX3NjbWlfY2hhbm5lbChzdHJ1Y3Qgc2NtaV9jaGFubmVsICpjaGFubmVsKQ0KPiArew0KPiAr
ICAgIEFTU0VSVChjaGFubmVsICE9IE5VTEwpOw0KPiArDQo+ICsgICAgc3Bpbl9sb2NrKCZzY21p
X2RhdGEuY2hhbm5lbF9saXN0X2xvY2spOw0KPiArICAgIGNoYW5uZWwtPmRvbWFpbl9pZCA9IERP
TUlEX0lOVkFMSUQ7DQo+ICsgICAgc3Bpbl91bmxvY2soJnNjbWlfZGF0YS5jaGFubmVsX2xpc3Rf
bG9jayk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQgbWFwX2NoYW5uZWxfbWVtb3J5KHN0cnVj
dCBzY21pX2NoYW5uZWwgKmNoYW5uZWwpDQo+ICt7DQo+ICsgICAgQVNTRVJUKGNoYW5uZWwgJiYg
Y2hhbm5lbC0+cGFkZHIpOw0KPiArICAgIGNoYW5uZWwtPnNobWVtID0gaW9yZW1hcF9ub2NhY2hl
KGNoYW5uZWwtPnBhZGRyLCBTQ01JX1NITUVNX01BUFBFRF9TSVpFKTsNCj4gKyAgICBpZiAoICFj
aGFubmVsLT5zaG1lbSApDQo+ICsgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiArDQo+ICsgICAg
Y2hhbm5lbC0+c2htZW0tPmNoYW5uZWxfc3RhdHVzID0gU0NNSV9TSE1FTV9DSEFOX1NUQVRfQ0hB
Tk5FTF9GUkVFOw0KPiArICAgIHByaW50ayhYRU5MT0dfREVCVUcgInNjbWk6IEdvdCBzaG1lbSAl
bHggYWZ0ZXIgdm1hcCAlcFxuIiwgY2hhbm5lbC0+cGFkZHIsDQo+ICsgICAgICAgICAgIGNoYW5u
ZWwtPnNobWVtKTsNCj4gKw0KPiArICAgIHJldHVybiAwOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMg
dm9pZCB1bm1hcF9jaGFubmVsX21lbW9yeShzdHJ1Y3Qgc2NtaV9jaGFubmVsICpjaGFubmVsKQ0K
PiArew0KPiArICAgIEFTU0VSVChjaGFubmVsICYmIGNoYW5uZWwtPnNobWVtKTsNCj4gKyAgICBp
b3VubWFwKGNoYW5uZWwtPnNobWVtKTsNCj4gKyAgICBjaGFubmVsLT5zaG1lbSA9IE5VTEw7DQo+
ICt9DQo+ICsNCj4gK3N0YXRpYyBzdHJ1Y3Qgc2NtaV9jaGFubmVsICpzbWNfY3JlYXRlX2NoYW5u
ZWwodWludDMyX3QgYWdlbnRfaWQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVpbnQzMl90IGZ1bmNfaWQsIHVpbnQ2NF90IGFkZHIpDQo+ICt7DQo+
ICsgICAgc3RydWN0IHNjbWlfY2hhbm5lbCAqY2hhbm5lbCwgKmN1cnI7DQo+ICsNCj4gKyAgICBz
cGluX2xvY2soJnNjbWlfZGF0YS5jaGFubmVsX2xpc3RfbG9jayk7DQo+ICsNCj4gKyAgICAvKiBD
aGVjayBpZiBjaGFubmVsIGFscmVhZHkgZXhpc3RzIHdoaWxlIGhvbGRpbmcgdGhlIGxvY2sgKi8N
Cj4gKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGN1cnIsICZzY21pX2RhdGEuY2hhbm5lbF9saXN0
LCBsaXN0KQ0KPiArICAgIHsNCj4gKyAgICAgICAgaWYgKCBjdXJyLT5hZ2VudF9pZCA9PSBhZ2Vu
dF9pZCApDQo+ICsgICAgICAgIHsNCj4gKyAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZzY21pX2Rh
dGEuY2hhbm5lbF9saXN0X2xvY2spOw0KPiArICAgICAgICAgICAgcmV0dXJuIEVSUl9QVFIoLUVF
WElTVCk7DQo+ICsgICAgICAgIH0NCj4gKyAgICB9DQo+ICsNCj4gKyAgICBjaGFubmVsID0geG1h
bGxvYyhzdHJ1Y3Qgc2NtaV9jaGFubmVsKTsNCj4gKyAgICBpZiAoICFjaGFubmVsICkNCj4gKyAg
ICB7DQo+ICsgICAgICAgIHNwaW5fdW5sb2NrKCZzY21pX2RhdGEuY2hhbm5lbF9saXN0X2xvY2sp
Ow0KPiArICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsNCj4gKyAgICB9DQo+ICsNCj4g
KyAgICBzcGluX2xvY2tfaW5pdCgmY2hhbm5lbC0+bG9jayk7DQo+ICsgICAgY2hhbm5lbC0+YWdl
bnRfaWQgPSBhZ2VudF9pZDsNCj4gKyAgICBjaGFubmVsLT5mdW5jX2lkID0gZnVuY19pZDsNCj4g
KyAgICBjaGFubmVsLT5kb21haW5faWQgPSBET01JRF9JTlZBTElEOw0KPiArICAgIGNoYW5uZWwt
PnNobWVtID0gTlVMTDsNCj4gKyAgICBjaGFubmVsLT5wYWRkciA9IGFkZHI7DQo+ICsgICAgbGlz
dF9hZGRfdGFpbCgmY2hhbm5lbC0+bGlzdCwgJnNjbWlfZGF0YS5jaGFubmVsX2xpc3QpOw0KPiAr
DQo+ICsgICAgc3Bpbl91bmxvY2soJnNjbWlfZGF0YS5jaGFubmVsX2xpc3RfbG9jayk7DQo+ICsg
ICAgcmV0dXJuIGNoYW5uZWw7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIGZyZWVfY2hhbm5l
bF9saXN0KHZvaWQpDQo+ICt7DQo+ICsgICAgc3RydWN0IHNjbWlfY2hhbm5lbCAqY3VyciwgKl9j
dXJyOw0KPiArDQo+ICsgICAgbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGN1cnIsIF9jdXJyLCAm
c2NtaV9kYXRhLmNoYW5uZWxfbGlzdCwgbGlzdCkNCj4gKyAgICB7DQo+ICsgICAgICAgIGxpc3Rf
ZGVsKCZjdXJyLT5saXN0KTsNCj4gKyAgICAgICAgeGZyZWUoY3Vycik7DQo+ICsgICAgfQ0KPiAr
fQ0KPiArDQo+ICtzdGF0aWMgaW50IF9faW5pdA0KPiArc2NtaV9kdF9yZWFkX2h5cF9jaGFubmVs
X2FkZHIoc3RydWN0IGR0X2RldmljZV9ub2RlICpzY21pX25vZGUsIHU2NCAqYWRkciwNCj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHU2NCAqc2l6ZSkNCj4gK3sNCj4gKyAgICBzdHJ1
Y3QgZHRfZGV2aWNlX25vZGUgKnNobWVtX25vZGU7DQo+ICsgICAgY29uc3QgX19iZTMyICpwcm9w
Ow0KPiArDQo+ICsgICAgcHJvcCA9IGR0X2dldF9wcm9wZXJ0eShzY21pX25vZGUsICJzaG1lbSIs
IE5VTEwpOw0KPiArICAgIGlmICggIXByb3AgKQ0KPiArICAgICAgICByZXR1cm4gLUVJTlZBTDsN
Cj4gKw0KPiArICAgIHNobWVtX25vZGUgPSBkdF9maW5kX25vZGVfYnlfcGhhbmRsZShiZTMyX3Rv
X2NwdSgqcHJvcCkpOw0KPiArICAgIGlmICggSVNfRVJSX09SX05VTEwoc2htZW1fbm9kZSkgKQ0K
PiArICAgIHsNCj4gKyAgICAgICAgcHJpbnRrKFhFTkxPR19FUlINCj4gKyAgICAgICAgICAgICAg
ICJzY21pOiBEZXZpY2UgdHJlZSBlcnJvciwgY2FuJ3QgcGFyc2UgcmVzZXJ2ZWQgbWVtb3J5ICVs
ZFxuIiwNCj4gKyAgICAgICAgICAgICAgIFBUUl9FUlIoc2htZW1fbm9kZSkpOw0KPiArICAgICAg
ICByZXR1cm4gUFRSX0VSUihzaG1lbV9ub2RlKTsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICByZXR1
cm4gZHRfZGV2aWNlX2dldF9hZGRyZXNzKHNobWVtX25vZGUsIDAsIGFkZHIsIHNpemUpOw0KPiAr
fQ0KPiArDQo+ICsvKg0KPiArICogSGFuZGxlIERvbTAgU0NNSSBzcGVjaWZpYyBEVCBub2Rlcw0K
PiArICoNCj4gKyAqIE1ha2UgYSBkZWNpc2lvbiBvbiBjb3B5aW5nIFNDTUkgc3BlY2lmaWMgbm9k
ZXMgaW50byBEb20wIGRldmljZSB0cmVlLg0KPiArICogRm9yIFNDTUkgbXVsdGktYWdlbnQgY2Fz
ZToNCj4gKyAqIC0gc2htZW0gbm9kZXMgd2lsbCBub3QgYmUgY29waWVkIGFuZCBnZW5lcmF0ZWQg
aW5zdGVhZCBpZiBTQ01JDQo+ICsgKiAgIGlzIGVuYWJsZWQgZm9yIERvbTANCj4gKyAqIC0gc2Nt
aSBub2RlIHdpbGwgYmUgY29waWVkIGlmIFNDTUkgaXMgZW5hYmxlZCBmb3IgRG9tMA0KPiArICov
DQo+ICtzdGF0aWMgYm9vbCBzY21pX2R0X2hhbmRsZV9ub2RlKHN0cnVjdCBkb21haW4gKmQsIHN0
cnVjdCBkdF9kZXZpY2Vfbm9kZSAqbm9kZSkNCj4gK3sNCj4gKyAgICBzdGF0aWMgY29uc3Qgc3Ry
dWN0IGR0X2RldmljZV9tYXRjaCBzaG1lbV9tYXRjaGVzW10gX19pbml0Y29uc3QgPSB7DQo+ICsg
ICAgICAgIERUX01BVENIX0NPTVBBVElCTEUoImFybSxzY21pLXNobWVtIiksDQo+ICsgICAgICAg
IHsgLyogc2VudGluZWwgKi8gfSwNCj4gKyAgICB9Ow0KPiArICAgIHN0YXRpYyBjb25zdCBzdHJ1
Y3QgZHRfZGV2aWNlX21hdGNoIHNjbWlfbWF0Y2hlc1tdIF9faW5pdGNvbnN0ID0gew0KPiArICAg
ICAgICBEVF9NQVRDSF9QQVRIKCIvZmlybXdhcmUvc2NtaSIpLA0KPiArICAgICAgICB7IC8qIHNl
bnRpbmVsICovIH0sDQo+ICsgICAgfTsNCj4gKw0KPiArICAgIGlmICggIXNjbWlfZGF0YS5pbml0
aWFsaXplZCApDQo+ICsgICAgICAgIHJldHVybiBmYWxzZTsNCj4gKw0KPiArICAgIC8qIHNraXAg
c2NtaSBzaG1lbSBub2RlIGZvciBkb20wIGlmIHNjbWkgbm90IGVuYWJsZWQgKi8NCj4gKyAgICBp
ZiAoIGR0X21hdGNoX25vZGUoc2htZW1fbWF0Y2hlcywgbm9kZSkgJiYgIXNjaV9kb21haW5faXNf
ZW5hYmxlZChkKSApDQo+ICsgICAgew0KPiArICAgICAgICBkdF9kcHJpbnRrKCIgIFNraXAgc2Nt
aSBzaG1lbSBub2RlXG4iKTsNCj4gKyAgICAgICAgcmV0dXJuIHRydWU7DQo+ICsgICAgfQ0KPiAr
DQo+ICsgICAgLyogZHJvcCBzY21pIGlmIG5vdCBlbmFibGVkICovDQo+ICsgICAgaWYgKCBkdF9t
YXRjaF9ub2RlKHNjbWlfbWF0Y2hlcywgbm9kZSkgJiYgIXNjaV9kb21haW5faXNfZW5hYmxlZChk
KSApDQo+ICsgICAgew0KPiArICAgICAgICBkdF9kcHJpbnRrKCIgIFNraXAgc2NtaSBub2RlXG4i
KTsNCj4gKyAgICAgICAgcmV0dXJuIHRydWU7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgcmV0dXJu
IGZhbHNlOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IHNjbWlfYXNzaWduX2RldmljZSh1aW50
MzJfdCBhZ2VudF9pZCwgdWludDMyX3QgZGV2aWNlX2lkLA0KPiArICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdWludDMyX3QgZmxhZ3MpDQo+ICt7DQo+ICsgICAgc3RydWN0IHNjbWlfbXNn
X2Jhc2Vfc2V0X2RldmljZV9wZXJtaXNzaW9uc19hMnAgdHg7DQo+ICsgICAgc3RydWN0IHNjbWlf
Y2hhbm5lbCAqY2hhbm5lbDsNCj4gKyAgICBzY21pX21zZ19oZWFkZXJfdCBoZHI7DQo+ICsNCj4g
KyAgICBjaGFubmVsID0gZ2V0X2NoYW5uZWxfYnlfaWQoc2NtaV9kYXRhLmh5cF9jaGFubmVsX2Fn
ZW50X2lkKTsNCj4gKyAgICBpZiAoICFjaGFubmVsICkNCj4gKyAgICAgICAgcmV0dXJuIC1FSU5W
QUw7DQo+ICsNCj4gKyAgICBoZHIuaWQgPSBTQ01JX0JBU0VfU0VUX0RFVklDRV9QRVJNSVNTSU9O
UzsNCj4gKyAgICBoZHIudHlwZSA9IDA7DQo+ICsgICAgaGRyLnByb3RvY29sID0gU0NNSV9CQVNF
X1BST1RPQ09MOw0KPiArDQo+ICsgICAgdHguYWdlbnRfaWQgPSBhZ2VudF9pZDsNCj4gKyAgICB0
eC5kZXZpY2VfaWQgPSBkZXZpY2VfaWQ7DQo+ICsgICAgdHguZmxhZ3MgPSBmbGFnczsNCj4gKw0K
PiArICAgIHJldHVybiBkb19zbWNfeGZlcihjaGFubmVsLCAmaGRyLCAmdHgsIHNpemVvZih0eCks
IE5VTEwsIDApOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IHNjbWlfZHRfYXNzaWduX2Rldmlj
ZShzdHJ1Y3QgZG9tYWluICpkLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RydWN0IGR0X3BoYW5kbGVfYXJncyAqYWNfc3BlYykNCj4gK3sNCj4gKyAgICBzdHJ1Y3Qgc2Nt
aV9jaGFubmVsICphZ2VudF9jaGFubmVsOw0KPiArICAgIHVpbnQzMl90IHNjbWlfZGV2aWNlX2lk
ID0gYWNfc3BlYy0+YXJnc1swXTsNCj4gKyAgICBpbnQgcmV0Ow0KPiArDQo+ICsgICAgaWYgKCAh
ZC0+YXJjaC5zY2lfZGF0YSApDQo+ICsgICAgICAgIHJldHVybiAwOw0KPiArDQo+ICsgICAgLyog
VGhlIGFjY2Vzcy1jb250cm9sbGVycyBpcyBzcGVjaWZpZWQgZm9yIERUIGRldiwgYnV0IGl0J3Mg
bm90IGEgU0NNSSAqLw0KPiArICAgIGlmICggYWNfc3BlYy0+bnAgIT0gc2NtaV9kYXRhLmR0X2Rl
diApDQo+ICsgICAgICAgIHJldHVybiAwOw0KPiArDQo+ICsgICAgYWdlbnRfY2hhbm5lbCA9IGQt
PmFyY2guc2NpX2RhdGE7DQo+ICsNCj4gKyAgICBzcGluX2xvY2soJmFnZW50X2NoYW5uZWwtPmxv
Y2spOw0KPiArDQo+ICsgICAgcmV0ID0gc2NtaV9hc3NpZ25fZGV2aWNlKGFnZW50X2NoYW5uZWwt
PmFnZW50X2lkLCBzY21pX2RldmljZV9pZCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU0NNSV9CQVNFX0RFVklDRV9BQ0NFU1NfQUxMT1cpOw0KPiArICAgIGlmICggcmV0ICkNCj4g
KyAgICB7DQo+ICsgICAgICAgIHByaW50ayhYRU5MT0dfRVJSDQo+ICsgICAgICAgICAgICAgICAi
c2NtaTogY291bGQgbm90IGFzc2lnbiBkZXYgZm9yICVwZCBhZ2VudDolZCBkZXZfaWQ6JXUgKCVk
KSIsDQo+ICsgICAgICAgICAgICAgICBkLCBhZ2VudF9jaGFubmVsLT5hZ2VudF9pZCwgc2NtaV9k
ZXZpY2VfaWQsIHJldCk7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgc3Bpbl91bmxvY2soJmFnZW50
X2NoYW5uZWwtPmxvY2spOw0KPiArICAgIHJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4gK3N0YXRp
YyBpbnQgY29sbGVjdF9hZ2VudF9pZChzdHJ1Y3Qgc2NtaV9jaGFubmVsICphZ2VudF9jaGFubmVs
KQ0KPiArew0KPiArICAgIGludCByZXQ7DQo+ICsgICAgc2NtaV9tc2dfaGVhZGVyX3QgaGRyOw0K
PiArICAgIHN0cnVjdCBzY21pX21zZ19iYXNlX2Rpc2NvdmVyX2FnZW50X3AyYSBkYV9yeDsNCj4g
KyAgICBzdHJ1Y3Qgc2NtaV9tc2dfYmFzZV9kaXNjb3Zlcl9hZ2VudF9hMnAgZGFfdHg7DQo+ICsN
Cj4gKyAgICByZXQgPSBtYXBfY2hhbm5lbF9tZW1vcnkoYWdlbnRfY2hhbm5lbCk7DQo+ICsgICAg
aWYgKCByZXQgKQ0KPiArICAgICAgICByZXR1cm4gcmV0Ow0KPiArDQo+ICsgICAgaGRyLmlkID0g
U0NNSV9CQVNFX0RJU0NPVkVSX0FHRU5UOw0KPiArICAgIGhkci50eXBlID0gMDsNCj4gKyAgICBo
ZHIucHJvdG9jb2wgPSBTQ01JX0JBU0VfUFJPVE9DT0w7DQo+ICsNCj4gKyAgICBkYV90eC5hZ2Vu
dF9pZCA9IGFnZW50X2NoYW5uZWwtPmFnZW50X2lkOw0KPiArDQo+ICsgICAgcmV0ID0gZG9fc21j
X3hmZXIoYWdlbnRfY2hhbm5lbCwgJmhkciwgJmRhX3R4LCBzaXplb2YoZGFfdHgpLCAmZGFfcngs
DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoZGFfcngpKTsNCj4gKyAgICBpZiAo
IGFnZW50X2NoYW5uZWwtPmRvbWFpbl9pZCAhPSBET01JRF9YRU4gKQ0KPiArICAgICAgICB1bm1h
cF9jaGFubmVsX21lbW9yeShhZ2VudF9jaGFubmVsKTsNCj4gKyAgICBpZiAoIHJldCApDQo+ICsg
ICAgICAgIHJldHVybiByZXQ7DQo+ICsNCj4gKyAgICBwcmludGsoWEVOTE9HX0RFQlVHICJpZD0w
eCV4IG5hbWU9JXNcbiIsIGRhX3J4LmFnZW50X2lkLCBkYV9yeC5uYW1lKTsNCj4gKyAgICBhZ2Vu
dF9jaGFubmVsLT5hZ2VudF9pZCA9IGRhX3J4LmFnZW50X2lkOw0KPiArICAgIHJldHVybiAwOw0K
PiArfQ0KPiArDQo+ICtzdGF0aWMgX19pbml0IGludCBjb2xsZWN0X2FnZW50cyhzdHJ1Y3QgZHRf
ZGV2aWNlX25vZGUgKnNjbWlfbm9kZSkNCj4gK3sNCj4gKyAgICBjb25zdCBzdHJ1Y3QgZHRfZGV2
aWNlX25vZGUgKmNvbmZpZ19ub2RlOw0KPiArICAgIGNvbnN0IF9fYmUzMiAqcHJvcDsNCj4gKyAg
ICB1aW50MzJfdCBsZW47DQo+ICsgICAgY29uc3QgX19iZTMyICplbmQ7DQo+ICsgICAgdWludDMy
X3QgY2VsbHNfcGVyX2VudHJ5ID0gMzsgLyogRGVmYXVsdCB0byAzIGNlbGxzIGlmIHByb3BlcnR5
IGlzIGFic2VudC4gKi8NCj4gKw0KPiArICAgIGNvbmZpZ19ub2RlID0gZHRfZmluZF9ub2RlX2J5
X3BhdGgoIi9jaG9zZW4veGVuLGNvbmZpZyIpOw0KPiArICAgIGlmICggIWNvbmZpZ19ub2RlICkN
Cj4gKyAgICB7DQo+ICsgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORyAic2NtaTogL2Nob3Nl
bi94ZW4sY29uZmlnIG5vZGUgbm90IGZvdW5kLCBubyBhZ2VudHMgdG8gY29sbGVjdC5cbiIpOw0K
PiArICAgICAgICByZXR1cm4gLUVOT0VOVDsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICAvKiBDaGVj
ayBmb3IgdGhlIG9wdGlvbmFsICcjc2NtaS1zZWNvbmRhcnktYWdlbnRzLWNlbGxzJyBwcm9wZXJ0
eS4gKi8NCj4gKyAgICBpZiAoIGR0X3Byb3BlcnR5X3JlYWRfdTMyKGNvbmZpZ19ub2RlLCAiI3Nj
bWktc2Vjb25kYXJ5LWFnZW50cy1jZWxscyIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmY2VsbHNfcGVyX2VudHJ5KSApDQo+ICsgICAgew0KPiArICAgICAgICBpZiAoIGNlbGxz
X3Blcl9lbnRyeSAhPSAyICYmIGNlbGxzX3Blcl9lbnRyeSAhPSAzICkNCj4gKyAgICAgICAgew0K
PiArICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgInNjbWk6IEludmFsaWQgI3NjbWktc2Vj
b25kYXJ5LWFnZW50cy1jZWxscyB2YWx1ZTogJXVcbiIsDQo+ICsgICAgICAgICAgICAgICAgICAg
Y2VsbHNfcGVyX2VudHJ5KTsNCj4gKyAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiArICAg
ICAgICB9DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgcHJvcCA9IGR0X2dldF9wcm9wZXJ0eShjb25m
aWdfbm9kZSwgU0NNSV9TRUNPTkRBUllfQUdFTlRTLCAmbGVuKTsNCj4gKyAgICBpZiAoICFwcm9w
ICkNCj4gKyAgICB7DQo+ICsgICAgICAgIHByaW50ayhYRU5MT0dfRVJSICJzY21pOiBObyAlcyBw
cm9wZXJ0eSBmb3VuZCwgbm8gYWdlbnRzIHRvIGNvbGxlY3QuXG4iLA0KPiArICAgICAgICAgICAg
ICAgU0NNSV9TRUNPTkRBUllfQUdFTlRTKTsNCj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+
ICsgICAgfQ0KPiArDQo+ICsgICAgLyogVmFsaWRhdGUgdGhhdCB0aGUgcHJvcGVydHkgbGVuZ3Ro
IGlzIGEgbXVsdGlwbGUgb2YgdGhlIGNlbGwgc2l6ZS4gKi8NCj4gKyAgICBpZiAoIGxlbiA9PSAw
IHx8IGxlbiAlIChjZWxsc19wZXJfZW50cnkgKiBzaXplb2YodWludDMyX3QpKSAhPSAwICkNCj4g
KyAgICB7DQo+ICsgICAgICAgIHByaW50ayhYRU5MT0dfRVJSICJzY21pOiBJbnZhbGlkIGxlbmd0
aCBvZiAlcyBwcm9wZXJ0eTogJXUgZm9yICV1IGNlbGxzIHBlciBlbnRyeVxuIiwNCj4gKyAgICAg
ICAgICAgICAgIFNDTUlfU0VDT05EQVJZX0FHRU5UUywgbGVuLCBjZWxsc19wZXJfZW50cnkpOw0K
PiArICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBlbmQgPSAo
Y29uc3QgX19iZTMyICopKChjb25zdCB1OCAqKXByb3AgKyBsZW4pOw0KPiArDQo+ICsgICAgZm9y
ICggOyBwcm9wIDwgZW5kOyApDQo+ICsgICAgew0KPiArICAgICAgICB1aW50MzJfdCBhZ2VudF9p
ZDsNCj4gKyAgICAgICAgdWludDMyX3Qgc21jX2lkOw0KPiArICAgICAgICB1aW50MzJfdCBzaG1l
bV9waGFuZGxlOw0KPiArICAgICAgICBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKm5vZGU7DQo+ICsg
ICAgICAgIHU2NCBhZGRyLCBzaXplOw0KPiArICAgICAgICBpbnQgcmV0Ow0KPiArICAgICAgICBz
dHJ1Y3Qgc2NtaV9jaGFubmVsICphZ2VudF9jaGFubmVsOw0KPiArDQo+ICsgICAgICAgIHNtY19p
ZCA9IGJlMzJfdG9fY3B1KCpwcm9wKyspOw0KPiArICAgICAgICBzaG1lbV9waGFuZGxlID0gYmUz
Ml90b19jcHUoKnByb3ArKyk7DQo+ICsNCj4gKyAgICAgICAgaWYgKCBjZWxsc19wZXJfZW50cnkg
PT0gMyApDQo+ICsgICAgICAgICAgICBhZ2VudF9pZCA9IGJlMzJfdG9fY3B1KCpwcm9wKyspOw0K
PiArICAgICAgICBlbHNlDQo+ICsgICAgICAgICAgICBhZ2VudF9pZCA9IFNDTUlfQkFTRV9BR0VO
VF9JRF9PV047DQo+ICsNCj4gKyAgICAgICAgbm9kZSA9IGR0X2ZpbmRfbm9kZV9ieV9waGFuZGxl
KHNobWVtX3BoYW5kbGUpOw0KPiArICAgICAgICBpZiAoICFub2RlICkNCj4gKyAgICAgICAgew0K
PiArICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgInNjbWk6IENvdWxkIG5vdCBmaW5kIHNo
bWVtIG5vZGUgZm9yIGFnZW50ICV1XG4iLA0KPiArICAgICAgICAgICAgICAgICAgIGFnZW50X2lk
KTsNCj4gKyAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiArICAgICAgICB9DQo+ICsNCj4g
KyAgICAgICAgcmV0ID0gZHRfZGV2aWNlX2dldF9hZGRyZXNzKG5vZGUsIDAsICZhZGRyLCAmc2l6
ZSk7DQo+ICsgICAgICAgIGlmICggcmV0ICkNCj4gKyAgICAgICAgew0KPiArICAgICAgICAgICAg
cHJpbnRrKFhFTkxPR19FUlINCj4gKyAgICAgICAgICAgICAgICAgICAic2NtaTogQ291bGQgbm90
IHJlYWQgc2htZW0gYWRkcmVzcyBmb3IgYWdlbnQgJXU6ICVkXG4iLA0KPiArICAgICAgICAgICAg
ICAgICAgIGFnZW50X2lkLCByZXQpOw0KPiArICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gKyAg
ICAgICAgfQ0KPiArDQo+ICsgICAgICAgIGlmICggIUlTX0FMSUdORUQoc2l6ZSwgU0NNSV9TSE1F
TV9NQVBQRURfU0laRSkgKQ0KPiArICAgICAgICB7DQo+ICsgICAgICAgICAgICBwcmludGsoWEVO
TE9HX0VSUiAic2NtaTogc2htZW0gbWVtb3J5IGlzIG5vdCBhbGlnbmVkXG4iKTsNCj4gKyAgICAg
ICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiArICAgICAgICB9DQo+ICsNCj4gKyAgICAgICAgYWdl
bnRfY2hhbm5lbCA9IHNtY19jcmVhdGVfY2hhbm5lbChhZ2VudF9pZCwgc21jX2lkLCBhZGRyKTsN
Cj4gKyAgICAgICAgaWYgKCBJU19FUlIoYWdlbnRfY2hhbm5lbCkgKQ0KPiArICAgICAgICB7DQo+
ICsgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUiAic2NtaTogQ291bGQgbm90IGNyZWF0ZSBj
aGFubmVsIGZvciBhZ2VudCAldTogJWxkXG4iLA0KPiArICAgICAgICAgICAgICAgICAgIGFnZW50
X2lkLCBQVFJfRVJSKGFnZW50X2NoYW5uZWwpKTsNCj4gKyAgICAgICAgICAgIHJldHVybiBQVFJf
RVJSKGFnZW50X2NoYW5uZWwpOw0KPiArICAgICAgICB9DQo+ICsNCj4gKyAgICAgICAgaWYgKCBj
ZWxsc19wZXJfZW50cnkgPT0gMiApDQo+ICsgICAgICAgIHsNCj4gKyAgICAgICAgICAgIHJldCA9
IGNvbGxlY3RfYWdlbnRfaWQoYWdlbnRfY2hhbm5lbCk7DQo+ICsgICAgICAgICAgICBpZiAoIHJl
dCApDQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gKyAgICAgICAgfQ0KPiArDQo+
ICsgICAgICAgIHByaW50ayhYRU5MT0dfREVCVUcgInNjbWk6IEFnZW50ICV1IFNNQyAlWCBhZGRy
ICVseFxuIiwgYWdlbnRfY2hhbm5lbC0+YWdlbnRfaWQsDQo+ICsgICAgICAgICAgICAgICBzbWNf
aWQsICh1bnNpZ25lZCBsb25nKWFkZHIpOw0KPiArICAgIH0NCj4gKw0KPiArICAgIHJldHVybiAw
Ow0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IHNjbWlfZG9tYWluX2luaXQoc3RydWN0IGRvbWFp
biAqZCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9j
cmVhdGVkb21haW4gKmNvbmZpZykNCj4gK3sNCj4gKyAgICBzdHJ1Y3Qgc2NtaV9jaGFubmVsICpj
aGFubmVsOw0KPiArICAgIGludCByZXQ7DQo+ICsNCj4gKyAgICBpZiAoICFzY21pX2RhdGEuaW5p
dGlhbGl6ZWQgKQ0KPiArICAgICAgICByZXR1cm4gMDsNCj4gKw0KPiArICAgIC8qDQo+ICsgICAg
ICogU0NNSSBzdXBwb3J0IGlzIGNvbmZpZ3VyZWQgdmlhOg0KPiArICAgICAqIC0gRm9yIGRvbTA6
IGRvbTA9c2NpLWFnZW50LWlkPTx2YWx1ZT4gaW4gWGVuIGNvbW1hbmQgbGluZQ0KPiArICAgICAq
IC0gRm9yIGRvbTBsZXNzOiB4ZW4sc2NpLWFnZW50LWlkIGluIGRldmljZSB0cmVlDQo+ICsgICAg
ICogVGhlIGNvbmZpZy0+YXJjaC5hcm1fc2NpX3R5cGUgYW5kIGNvbmZpZy0+YXJjaC5hcm1fc2Np
X2FnZW50X2lkDQo+ICsgICAgICogYXJlIGFscmVhZHkgc2V0IGJ5IGRvbWFpbl9idWlsZC5jIG9y
IGRvbTBsZXNzLWJ1aWxkLmMNCj4gKyAgICAgKi8NCj4gKw0KPiArICAgIGlmICggY29uZmlnLT5h
cmNoLmFybV9zY2lfdHlwZSA9PSBYRU5fRE9NQ1RMX0NPTkZJR19BUk1fU0NJX05PTkUgKQ0KPiAr
ICAgICAgICByZXR1cm4gMDsNCj4gKw0KPiArICAgIGNoYW5uZWwgPSBhY3F1aXJlX3NjbWlfY2hh
bm5lbChkLCBjb25maWctPmFyY2guYXJtX3NjaV9hZ2VudF9pZCk7DQo+ICsgICAgaWYgKCBJU19F
UlIoY2hhbm5lbCkgKQ0KPiArICAgIHsNCj4gKyAgICAgICAgcHJpbnRrKFhFTkxPR19FUlINCj4g
KyAgICAgICAgICAgICAgICJzY21pOiBGYWlsZWQgdG8gYWNxdWlyZSBTQ01JIGNoYW5uZWwgZm9y
IGFnZW50X2lkICV1OiAlbGRcbiIsDQo+ICsgICAgICAgICAgICAgICBjb25maWctPmFyY2guYXJt
X3NjaV9hZ2VudF9pZCwgUFRSX0VSUihjaGFubmVsKSk7DQo+ICsgICAgICAgIHJldHVybiBQVFJf
RVJSKGNoYW5uZWwpOw0KPiArICAgIH0NCj4gKw0KPiArICAgIHByaW50ayhYRU5MT0dfSU5GTw0K
PiArICAgICAgICAgICAic2NtaTogQWNxdWlyZSBjaGFubmVsIGlkID0gMHgleCwgZG9tYWluX2lk
ID0gJWQgcGFkZHIgPSAweCVseFxuIiwNCj4gKyAgICAgICAgICAgY2hhbm5lbC0+YWdlbnRfaWQs
IGNoYW5uZWwtPmRvbWFpbl9pZCwgY2hhbm5lbC0+cGFkZHIpOw0KPiArDQo+ICsgICAgLyoNCj4g
KyAgICAgKiBEb20wIChpZiBwcmVzZW50KSBuZWVkcyB0byBoYXZlIGFuIGFjY2VzcyB0byB0aGUg
Z3Vlc3QgbWVtb3J5IHJhbmdlDQo+ICsgICAgICogdG8gc2F0aXNmeSBpb21lbV9hY2Nlc3NfcGVy
bWl0dGVkKCkgY2hlY2sgaW4gWEVOX0RPTUNUTF9pb21lbV9wZXJtaXNzaW9uDQo+ICsgICAgICog
ZG9tY3RsLg0KPiArICAgICAqLw0KPiArICAgIGlmICggaGFyZHdhcmVfZG9tYWluICYmICFpc19o
YXJkd2FyZV9kb21haW4oZCkgKQ0KPiArICAgIHsNCj4gKyAgICAgICAgcmV0ID0gaW9tZW1fcGVy
bWl0X2FjY2VzcyhoYXJkd2FyZV9kb21haW4sIHBhZGRyX3RvX3BmbihjaGFubmVsLT5wYWRkciks
DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZHJfdG9fcGZuKGNoYW5u
ZWwtPnBhZGRyICsgUEFHRV9TSVpFIC0gMSkpOw0KPiArICAgICAgICBpZiAoIHJldCApDQo+ICsg
ICAgICAgICAgICBnb3RvIGVycm9yOw0KPiArICAgIH0NCj4gKw0KPiArICAgIGQtPmFyY2guc2Np
X2RhdGEgPSBjaGFubmVsOw0KPiArICAgIGQtPmFyY2guc2NpX2VuYWJsZWQgPSB0cnVlOw0KPiAr
DQo+ICsgICAgcmV0dXJuIDA7DQo+ICsNCj4gK2Vycm9yOg0KPiArICAgIHJlbGlucXVpc2hfc2Nt
aV9jaGFubmVsKGNoYW5uZWwpOw0KPiArICAgIHJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4gK2lu
dCBzY21pX2RvbWFpbl9zYW5pdGlzZV9jb25maWcoc3RydWN0IHhlbl9kb21jdGxfY3JlYXRlZG9t
YWluICpjb25maWcpDQo+ICt7DQo+ICsgICAgaWYgKCBjb25maWctPmFyY2guYXJtX3NjaV90eXBl
ICE9IFhFTl9ET01DVExfQ09ORklHX0FSTV9TQ0lfTk9ORSAmJg0KPiArICAgICAgICAgY29uZmln
LT5hcmNoLmFybV9zY2lfdHlwZSAhPSBYRU5fRE9NQ1RMX0NPTkZJR19BUk1fU0NJX1NDTUlfU01D
X01BICkNCj4gKyAgICB7DQo+ICsgICAgICAgIGRwcmludGsoWEVOTE9HX0lORk8sICJzY21pOiBV
bnN1cHBvcnRlZCBBUk1fU0NJIHR5cGVcbiIpOw0KPiArICAgICAgICByZXR1cm4gLUVJTlZBTDsN
Cj4gKyAgICB9DQo+ICsNCj4gKyAgICByZXR1cm4gMDsNCj4gK30NCj4gKw0KPiArc3RhdGljIGlu
dCBzY21pX3JlbGlucXVpc2hfcmVzb3VyY2VzKHN0cnVjdCBkb21haW4gKmQpDQo+ICt7DQo+ICsg
ICAgaW50IHJldDsNCj4gKyAgICBzdHJ1Y3Qgc2NtaV9jaGFubmVsICpjaGFubmVsLCAqYWdlbnRf
Y2hhbm5lbDsNCj4gKyAgICBzY21pX21zZ19oZWFkZXJfdCBoZHI7DQo+ICsgICAgc3RydWN0IHNj
bWlfbXNnX2Jhc2VfcmVzZXRfYWdlbnRfY2ZnX2EycCB0eDsNCj4gKw0KPiArICAgIGlmICggIWQt
PmFyY2guc2NpX2RhdGEgKQ0KPiArICAgICAgICByZXR1cm4gMDsNCj4gKw0KPiArICAgIGFnZW50
X2NoYW5uZWwgPSBkLT5hcmNoLnNjaV9kYXRhOw0KPiArDQo+ICsgICAgc3Bpbl9sb2NrKCZhZ2Vu
dF9jaGFubmVsLT5sb2NrKTsNCj4gKyAgICB0eC5hZ2VudF9pZCA9IGFnZW50X2NoYW5uZWwtPmFn
ZW50X2lkOw0KPiArICAgIHNwaW5fdW5sb2NrKCZhZ2VudF9jaGFubmVsLT5sb2NrKTsNCj4gKw0K
PiArICAgIGNoYW5uZWwgPSBnZXRfY2hhbm5lbF9ieV9pZChzY21pX2RhdGEuaHlwX2NoYW5uZWxf
YWdlbnRfaWQpOw0KPiArICAgIGlmICggIWNoYW5uZWwgKQ0KPiArICAgIHsNCj4gKyAgICAgICAg
cHJpbnRrKFhFTkxPR19FUlINCj4gKyAgICAgICAgICAgICAgICJzY21pOiBVbmFibGUgdG8gZ2V0
IEh5cGVydmlzb3Igc2NtaSBjaGFubmVsIGZvciBkb21haW4gJWRcbiIsDQo+ICsgICAgICAgICAg
ICAgICBkLT5kb21haW5faWQpOw0KPiArICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gKyAgICB9
DQo+ICsNCj4gKyAgICBoZHIuaWQgPSBTQ01JX0JBU0VfUkVTRVRfQUdFTlRfQ09ORklHVVJBVElP
TjsNCj4gKyAgICBoZHIudHlwZSA9IDA7DQo+ICsgICAgaGRyLnByb3RvY29sID0gU0NNSV9CQVNF
X1BST1RPQ09MOw0KPiArDQo+ICsgICAgdHguZmxhZ3MgPSAwOw0KPiArDQo+ICsgICAgcmV0ID0g
ZG9fc21jX3hmZXIoY2hhbm5lbCwgJmhkciwgJnR4LCBzaXplb2YodHgpLCBOVUxMLCAwKTsNCj4g
KyAgICBpZiAoIHJldCA9PSAtRU9QTk9UU1VQUCApDQo+ICsgICAgICAgIHJldHVybiAwOw0KPiAr
DQo+ICsgICAgcmV0dXJuIHJldDsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgc2NtaV9kb21h
aW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpkKQ0KPiArew0KPiArICAgIHN0cnVjdCBzY21pX2No
YW5uZWwgKmNoYW5uZWw7DQo+ICsNCj4gKyAgICBpZiAoICFkLT5hcmNoLnNjaV9kYXRhICkNCj4g
KyAgICAgICAgcmV0dXJuOw0KPiArDQo+ICsgICAgY2hhbm5lbCA9IGQtPmFyY2guc2NpX2RhdGE7
DQo+ICsgICAgc3Bpbl9sb2NrKCZjaGFubmVsLT5sb2NrKTsNCj4gKw0KPiArICAgIHJlbGlucXVp
c2hfc2NtaV9jaGFubmVsKGNoYW5uZWwpOw0KPiArICAgIHByaW50ayhYRU5MT0dfREVCVUcgInNj
bWk6IEZyZWUgZG9tYWluICVkXG4iLCBkLT5kb21haW5faWQpOw0KPiArDQo+ICsgICAgZC0+YXJj
aC5zY2lfZGF0YSA9IE5VTEw7DQo+ICsgICAgZC0+YXJjaC5zY2lfZW5hYmxlZCA9IGZhbHNlOw0K
PiArDQo+ICsgICAgc3Bpbl91bmxvY2soJmNoYW5uZWwtPmxvY2spOw0KPiArfQ0KPiArDQo+ICtz
dGF0aWMgYm9vbCBzY21pX2hhbmRsZV9jYWxsKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0K
PiArew0KPiArICAgIHVpbnQzMl90IGZpZCA9ICh1aW50MzJfdClnZXRfdXNlcl9yZWcocmVncywg
MCk7DQo+ICsgICAgc3RydWN0IHNjbWlfY2hhbm5lbCAqYWdlbnRfY2hhbm5lbDsNCj4gKyAgICBz
dHJ1Y3QgZG9tYWluICpkID0gY3VycmVudC0+ZG9tYWluOw0KPiArICAgIHN0cnVjdCBhcm1fc21j
Y2NfcmVzIHJlc3A7DQo+ICsgICAgYm9vbCByZXMgPSBmYWxzZTsNCj4gKw0KPiArICAgIGlmICgg
IXNjaV9kb21haW5faXNfZW5hYmxlZChkKSApDQo+ICsgICAgICAgIHJldHVybiBmYWxzZTsNCj4g
Kw0KPiArICAgIGFnZW50X2NoYW5uZWwgPSBkLT5hcmNoLnNjaV9kYXRhOw0KPiArICAgIHNwaW5f
bG9jaygmYWdlbnRfY2hhbm5lbC0+bG9jayk7DQo+ICsNCj4gKyAgICBpZiAoIGFnZW50X2NoYW5u
ZWwtPmZ1bmNfaWQgIT0gZmlkICkNCj4gKyAgICB7DQo+ICsgICAgICAgIHJlcyA9IGZhbHNlOw0K
PiArICAgICAgICBnb3RvIHVubG9jazsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBhcm1fc21jY2Nf
MV8xX3NtYyhmaWQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgZ2V0X3VzZXJfcmVnKHJlZ3Ms
IDEpLA0KPiArICAgICAgICAgICAgICAgICAgICAgIGdldF91c2VyX3JlZyhyZWdzLCAyKSwNCj4g
KyAgICAgICAgICAgICAgICAgICAgICBnZXRfdXNlcl9yZWcocmVncywgMyksDQo+ICsgICAgICAg
ICAgICAgICAgICAgICAgZ2V0X3VzZXJfcmVnKHJlZ3MsIDQpLA0KPiArICAgICAgICAgICAgICAg
ICAgICAgIGdldF91c2VyX3JlZyhyZWdzLCA1KSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICBn
ZXRfdXNlcl9yZWcocmVncywgNiksDQo+ICsgICAgICAgICAgICAgICAgICAgICAgZ2V0X3VzZXJf
cmVnKHJlZ3MsIDcpLA0KPiArICAgICAgICAgICAgICAgICAgICAgICZyZXNwKTsNCj4gKw0KPiAr
ICAgIHNldF91c2VyX3JlZyhyZWdzLCAwLCByZXNwLmEwKTsNCj4gKyAgICBzZXRfdXNlcl9yZWco
cmVncywgMSwgcmVzcC5hMSk7DQo+ICsgICAgc2V0X3VzZXJfcmVnKHJlZ3MsIDIsIHJlc3AuYTIp
Ow0KPiArICAgIHNldF91c2VyX3JlZyhyZWdzLCAzLCByZXNwLmEzKTsNCj4gKyAgICByZXMgPSB0
cnVlOw0KPiArdW5sb2NrOg0KPiArICAgIHNwaW5fdW5sb2NrKCZhZ2VudF9jaGFubmVsLT5sb2Nr
KTsNCj4gKw0KPiArICAgIHJldHVybiByZXM7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBz
dHJ1Y3Qgc2NpX21lZGlhdG9yX29wcyBzY21pX29wcyA9IHsNCj4gKyAgICAuZG9tYWluX2luaXQg
PSBzY21pX2RvbWFpbl9pbml0LA0KPiArICAgIC5kb21haW5fZGVzdHJveSA9IHNjbWlfZG9tYWlu
X2Rlc3Ryb3ksDQo+ICsgICAgLnJlbGlucXVpc2hfcmVzb3VyY2VzID0gc2NtaV9yZWxpbnF1aXNo
X3Jlc291cmNlcywNCj4gKyAgICAuaGFuZGxlX2NhbGwgPSBzY21pX2hhbmRsZV9jYWxsLA0KPiAr
ICAgIC5kb20wX2R0X2hhbmRsZV9ub2RlID0gc2NtaV9kdF9oYW5kbGVfbm9kZSwNCj4gKyAgICAu
ZG9tYWluX3Nhbml0aXNlX2NvbmZpZyA9IHNjbWlfZG9tYWluX3Nhbml0aXNlX2NvbmZpZywNCj4g
KyAgICAuYXNzaWduX2R0X2RldmljZSA9IHNjbWlfZHRfYXNzaWduX2RldmljZSwNCj4gK307DQo+
ICsNCj4gK3N0YXRpYyBpbnQgX19pbml0IHNjbWlfY2hlY2tfc21jY2NfdmVyKHZvaWQpDQo+ICt7
DQo+ICsgICAgaWYgKCBzbWNjY192ZXIgPCBBUk1fU01DQ0NfVkVSU0lPTl8xXzEgKQ0KPiArICAg
IHsNCj4gKyAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HDQo+ICsgICAgICAgICAgICAgICAi
c2NtaTogTm8gU01DQ0MgMS4xIHN1cHBvcnQsIFNDTUkgY2FsbHMgZm9yd2FyZGluZyBkaXNhYmxl
ZFxuIik7DQo+ICsgICAgICAgIHJldHVybiAtRU5PU1lTOw0KPiArICAgIH0NCj4gKw0KPiArICAg
IHJldHVybiAwOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IF9faW5pdCBzY21pX2R0X2h5cF9j
aGFubmVsX3JlYWQoc3RydWN0IGR0X2RldmljZV9ub2RlICpzY21pX25vZGUsDQo+ICsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNjbWlfZGF0YSAqc2Nt
aV9kYXRhLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHU2
NCAqYWRkcikNCj4gK3sNCj4gKyAgICBpbnQgcmV0Ow0KPiArICAgIHU2NCBzaXplOw0KPiArDQo+
ICsgICAgaWYgKCAhZHRfcHJvcGVydHlfcmVhZF91MzIoc2NtaV9ub2RlLCAiYXJtLHNtYy1pZCIs
ICZzY21pX2RhdGEtPmZ1bmNfaWQpICkNCj4gKyAgICB7DQo+ICsgICAgICAgIHByaW50ayhYRU5M
T0dfRVJSICJzY21pOiB1bmFibGUgdG8gcmVhZCBzbWMtaWQgZnJvbSBEVFxuIik7DQo+ICsgICAg
ICAgIHJldHVybiAtRU5PRU5UOw0KPiArICAgIH0NCj4gKw0KPiArICAgIHJldCA9IHNjbWlfZHRf
cmVhZF9oeXBfY2hhbm5lbF9hZGRyKHNjbWlfbm9kZSwgYWRkciwgJnNpemUpOw0KPiArICAgIGlm
ICggSVNfRVJSX1ZBTFVFKHJldCkgKQ0KPiArICAgICAgICByZXR1cm4gLUVOT0VOVDsNCj4gKw0K
PiArICAgIGlmICggIUlTX0FMSUdORUQoc2l6ZSwgU0NNSV9TSE1FTV9NQVBQRURfU0laRSkgKQ0K
PiArICAgIHsNCj4gKyAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgInNjbWk6IHNobWVtIG1lbW9y
eSBpcyBub3QgYWxpZ25lZFxuIik7DQo+ICsgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiArICAg
IH0NCj4gKw0KPiArICAgIHJldHVybiAwOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgX19pbml0IGlu
dCBzY21pX3Byb2JlKHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqc2NtaV9ub2RlLCBjb25zdCB2b2lk
ICpkYXRhKQ0KPiArew0KPiArICAgIHU2NCBhZGRyOw0KPiArICAgIGludCByZXQ7DQo+ICsgICAg
c3RydWN0IHNjbWlfY2hhbm5lbCAqY2hhbm5lbDsNCj4gKyAgICB1bnNpZ25lZCBpbnQgbl9hZ2Vu
dHM7DQo+ICsgICAgc2NtaV9tc2dfaGVhZGVyX3QgaGRyOw0KPiArICAgIHN0cnVjdCBzY21pX21z
Z19iYXNlX2F0dHJpYnV0ZXNfcDJhIHJ4Ow0KPiArDQo+ICsgICAgQVNTRVJUKHNjbWlfbm9kZSAh
PSBOVUxMKTsNCj4gKw0KPiArICAgIElOSVRfTElTVF9IRUFEKCZzY21pX2RhdGEuY2hhbm5lbF9s
aXN0KTsNCj4gKyAgICBzcGluX2xvY2tfaW5pdCgmc2NtaV9kYXRhLmNoYW5uZWxfbGlzdF9sb2Nr
KTsNCj4gKw0KPiArICAgIGlmICggIWFjcGlfZGlzYWJsZWQgKQ0KPiArICAgIHsNCj4gKyAgICAg
ICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HICJzY21pOiBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gdXNp
bmcgQUNQSVxuIik7DQo+ICsgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiArICAgIH0NCj4gKw0K
PiArICAgIHJldCA9IHNjbWlfY2hlY2tfc21jY2NfdmVyKCk7DQo+ICsgICAgaWYgKCByZXQgKQ0K
PiArICAgICAgICByZXR1cm4gcmV0Ow0KPiArDQo+ICsgICAgcmV0ID0gc2NtaV9kdF9oeXBfY2hh
bm5lbF9yZWFkKHNjbWlfbm9kZSwgJnNjbWlfZGF0YSwgJmFkZHIpOw0KPiArICAgIGlmICggcmV0
ICkNCj4gKyAgICAgICAgcmV0dXJuIHJldDsNCj4gKw0KPiArICAgIHNjbWlfZGF0YS5kdF9kZXYg
PSBzY21pX25vZGU7DQo+ICsNCj4gKyAgICBjaGFubmVsID0gc21jX2NyZWF0ZV9jaGFubmVsKFND
TUlfQkFTRV9BR0VOVF9JRF9PV04sIHNjbWlfZGF0YS5mdW5jX2lkLCBhZGRyKTsNCj4gKyAgICBp
ZiAoIElTX0VSUihjaGFubmVsKSApDQo+ICsgICAgICAgIGdvdG8gb3V0Ow0KPiArDQo+ICsgICAg
LyogTWFyayBhcyBYZW4gbWFuYWdlbWVudCBjaGFubmVsIGJlZm9yZSBjb2xsZWN0aW5nIGFnZW50
IElEICovDQo+ICsgICAgY2hhbm5lbC0+ZG9tYWluX2lkID0gRE9NSURfWEVOOw0KPiArDQo+ICsg
ICAgLyogUmVxdWVzdCBhZ2VudCBpZCBmb3IgWGVuIG1hbmFnZW1lbnQgY2hhbm5lbCAgKi8NCj4g
KyAgICByZXQgPSBjb2xsZWN0X2FnZW50X2lkKGNoYW5uZWwpOw0KPiArICAgIGlmICggcmV0ICkN
Cj4gKyAgICAgICAgZ290byBlcnJvcjsNCj4gKw0KPiArICAgIC8qIFNhdmUgdGhlIGFnZW50IGlk
IGZvciBYZW4gbWFuYWdlbWVudCBjaGFubmVsICovDQo+ICsgICAgc2NtaV9kYXRhLmh5cF9jaGFu
bmVsX2FnZW50X2lkID0gY2hhbm5lbC0+YWdlbnRfaWQ7DQo+ICsNCj4gKyAgICBoZHIuaWQgPSBT
Q01JX0JBU0VfUFJPVE9DT0xfQVRUSUJVVEVTOw0KPiArICAgIGhkci50eXBlID0gMDsNCj4gKyAg
ICBoZHIucHJvdG9jb2wgPSBTQ01JX0JBU0VfUFJPVE9DT0w7DQo+ICsNCj4gKyAgICByZXQgPSBk
b19zbWNfeGZlcihjaGFubmVsLCAmaGRyLCBOVUxMLCAwLCAmcngsIHNpemVvZihyeCkpOw0KPiAr
ICAgIGlmICggcmV0ICkNCj4gKyAgICAgICAgZ290byBlcnJvcjsNCj4gKw0KPiArICAgIG5fYWdl
bnRzID0gU0NNSV9GSUVMRF9HRVQoU0NNSV9CQVNFX0FUVFJfTlVNX0FHRU5ULCByeC5hdHRyaWJ1
dGVzKTsNCj4gKyAgICBwcmludGsoWEVOTE9HX0RFQlVHICJzY21pOiBHb3QgYWdlbnQgY291bnQg
JWRcbiIsIG5fYWdlbnRzKTsNCj4gKyAgICByZXQgPSBjb2xsZWN0X2FnZW50cyhzY21pX25vZGUp
Ow0KPiArICAgIGlmICggcmV0ICkNCj4gKyAgICAgICAgZ290byBlcnJvcjsNCj4gKw0KPiArICAg
IHJldCA9IHNjaV9yZWdpc3Rlcigmc2NtaV9vcHMpOw0KPiArICAgIGlmICggcmV0ICkNCj4gKyAg
ICB7DQo+ICsgICAgICAgIHByaW50ayhYRU5MT0dfRVJSICJTQ01JOiBtZWRpYXRvciBhbHJlYWR5
IHJlZ2lzdGVyZWQgKHJldCA9ICVkKVxuIiwNCj4gKyAgICAgICAgICAgICAgIHJldCk7DQo+ICsg
ICAgICAgIHJldHVybiByZXQ7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgc2NtaV9kYXRhLmluaXRp
YWxpemVkID0gdHJ1ZTsNCj4gKyAgICBnb3RvIG91dDsNCj4gKw0KPiArZXJyb3I6DQo+ICsgICAg
dW5tYXBfY2hhbm5lbF9tZW1vcnkoY2hhbm5lbCk7DQo+ICsgICAgZnJlZV9jaGFubmVsX2xpc3Qo
KTsNCj4gK291dDoNCj4gKyAgICByZXR1cm4gcmV0Ow0KPiArfQ0KPiArDQo+ICtzdGF0aWMgY29u
c3Qgc3RydWN0IGR0X2RldmljZV9tYXRjaCBzY21pX3NtY19tYXRjaFtdIF9faW5pdGNvbnN0ID0g
ew0KPiArICAgIERUX01BVENIX1BBVEgoIi9jaG9zZW4veGVuLGNvbmZpZy9zY21pIiksDQo+ICsg
ICAgeyAvKiBzZW50aW5lbCAqLyB9LA0KPiArfTsNCj4gKw0KPiArRFRfREVWSUNFX1NUQVJUKHNj
bWlfc21jX21hLCAiU0NNSSBTTUMgTUVESUFUT1IiLCBERVZJQ0VfRklSTVdBUkUpDQo+ICsgICAg
ICAgIC5kdF9tYXRjaCA9IHNjbWlfc21jX21hdGNoLA0KPiArICAgICAgICAuaW5pdCA9IHNjbWlf
cHJvYmUsDQo+ICtEVF9ERVZJQ0VfRU5EDQo+ICsNCj4gKy8qDQo+ICsgKiBMb2NhbCB2YXJpYWJs
ZXM6DQo+ICsgKiBtb2RlOiBDDQo+ICsgKiBjLWZpbGUtc3R5bGU6ICJCU0QiDQo+ICsgKiBjLWJh
c2ljLW9mZnNldDogNA0KPiArICogdGFiLXdpZHRoOiA0DQo+ICsgKiBpbmRlbnQtdGFicy1tb2Rl
OiBuaWwNCj4gKyAqIEVuZDoNCj4gKyAqLw0KPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVi
bGljL2FyY2gtYXJtLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1hcm0uaA0KPiBpbmRleCAw
OTViMWEyM2UzLi4zMGU0NmRlNmQ3IDEwMDY0NA0KPiAtLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMv
YXJjaC1hcm0uaA0KPiArKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1hcm0uaA0KPiBAQCAt
MzI5LDYgKzMyOSw3IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKHZjcHVfZ3Vlc3RfY29udGV4
dF90KTsNCj4NCj4gICAjZGVmaW5lIFhFTl9ET01DVExfQ09ORklHX0FSTV9TQ0lfTk9ORSAgICAg
IDANCj4gICAjZGVmaW5lIFhFTl9ET01DVExfQ09ORklHX0FSTV9TQ0lfU0NNSV9TTUMgIDENCj4g
KyNkZWZpbmUgWEVOX0RPTUNUTF9DT05GSUdfQVJNX1NDSV9TQ01JX1NNQ19NQSAgMg0KPg0KPiAg
IHN0cnVjdCB4ZW5fYXJjaF9kb21haW5jb25maWcgew0KPiAgICAgICAvKiBJTi9PVVQgKi8NCj4g
QEAgLTM1NSw2ICszNTYsOCBAQCBzdHJ1Y3QgeGVuX2FyY2hfZG9tYWluY29uZmlnIHsNCj4gICAg
ICAgdWludDMyX3QgY2xvY2tfZnJlcXVlbmN5Ow0KPiAgICAgICAvKiBJTiAqLw0KPiAgICAgICB1
aW50OF90IGFybV9zY2lfdHlwZTsNCj4gKyAgICAvKiBJTiAqLw0KPiArICAgIHVpbnQ4X3QgYXJt
X3NjaV9hZ2VudF9pZDsNCj4gICB9Ow0KPiAgICNlbmRpZiAvKiBfX1hFTl9fIHx8IF9fWEVOX1RP
T0xTX18gKi8NCj4NCg==


From xen-devel-bounces@lists.xenproject.org Sat Nov 01 12:05:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 01 Nov 2025 12:05:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1154964.1484599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAMb-0007M7-TI; Sat, 01 Nov 2025 12:05:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1154964.1484599; Sat, 01 Nov 2025 12: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 1vFAMb-0007M0-QQ; Sat, 01 Nov 2025 12:05:45 +0000
Received: by outflank-mailman (input) for mailman id 1154964;
 Sat, 01 Nov 2025 12:05: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=VYHd=5J=redhat.com=david@srs-se1.protection.inumbo.net>)
 id 1vFAMa-0007Ls-2d
 for xen-devel@lists.xenproject.org; Sat, 01 Nov 2025 12:05:44 +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 13ebf61f-b71b-11f0-980a-7dc792cee155;
 Sat, 01 Nov 2025 13:05:38 +0100 (CET)
Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com
 [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-505-u0lj2T_oMVWzXPnc19Muug-1; Sat, 01 Nov 2025 08:05:36 -0400
Received: by mail-wm1-f71.google.com with SMTP id
 5b1f17b1804b1-476b8c02445so24808885e9.1
 for <xen-devel@lists.xenproject.org>; Sat, 01 Nov 2025 05:05:35 -0700 (PDT)
Received: from ?IPV6:2003:d8:2f3f:4b00:ee13:8c22:5cc5:d169?
 (p200300d82f3f4b00ee138c225cc5d169.dip0.t-ipconnect.de.
 [2003:d8:2f3f:4b00:ee13:8c22:5cc5:d169])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4773c374f84sm45678605e9.0.2025.11.01.05.05.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 01 Nov 2025 05:05:33 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 13ebf61f-b71b-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1761998737;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=kMG4ZrGhtDivlDXT9Lf+Em5Cw+QAoMNy/XfdlpySJK0=;
	b=R3OomEQSi205HBBbecAHzGWrPl8pHj/FPmcUyYufGgr0tfQqvRg0tayrkFn8hsG7G5xtUe
	8MmGWoxYvHnpheR8kYRCJITSHsjM14SEDoqgMbxiMWEPJ7EYSyK8KSGa8L/6vSsIbtivos
	XO39WSe8MxutZ+WnhHeGM/9bvCgS/rQ=
X-MC-Unique: u0lj2T_oMVWzXPnc19Muug-1
X-Mimecast-MFC-AGG-ID: u0lj2T_oMVWzXPnc19Muug_1761998735
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1761998735; x=1762603535;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=kMG4ZrGhtDivlDXT9Lf+Em5Cw+QAoMNy/XfdlpySJK0=;
        b=YGsbAYDjXljlY7kT/40ybJHOQJKrs/pNaNAtLC4sJ5vc20cXcSAUBuv1LmzgrPXr/K
         Ki5jOcHouJoZL0WYEFN+oINxC0HW1LUlDNM4P4Cqg+XSlMQh9aw80/lLdAj1bkUBlVlm
         vCk2ppaKbrId9fNh96GwhHzodE+TyT1ILAc6UyWqrl04E5Bterasg5KIu0nkVcMuQYXb
         pK8RZrLaUB+/MQLZDa3UQPmg7Mti6ZF4KxwqjtgbdWfzp4eEn/ES9Q16WyFxOg+QuleE
         W8/c5HnEUg8hVvmYCM9buhhuroYAQqKeoq6hIafqKgUjdZeWLiYZ5gKBbhR1lKuxFBBQ
         MP+g==
X-Forwarded-Encrypted: i=1; AJvYcCXb7N2KTJO0b9xZqj+hBI95LMHvC7Qu2sUfp8NlB2OMP3T6gH+xcfTW4FK23U1D+hAxT20ZMvEh4lE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxLLURWERvlSqFcCQRMn/sXRHTXLEa/YLViee2cxAOMqUINcKnS
	eGBMFkj/+44OIcdTBnwHtfa5xfCz6PAmrrhAbw8iMS3tOyz/mk1nAVmIvJV0/KwyDKUQ2hbF5FF
	q7XxYnrH1OL/4VmX7qwWU1ixnPV5BLwelbygX7rIFoMN8cQXWPwh5/6JZoms/ZKW2apnd
X-Gm-Gg: ASbGncvm1hxjn6mClGSud7/vMiky+9KFUZ5IuHsAmVWZVHDNOwX5swOeAeSf/p3yQCI
	S4hy80nSXihpwo/62iFMq+R0xT4tp/NNJYoq2ETzXa5G2mjp3J3C2y4CRPXkcTGOJhcYs1S6ucP
	7j3KpgR7+XwRCzrQSSSvdRwskMuaanENxHd8uHT69/yycRldY8P/XSEs0JDVDn3jbhcoFoPQHRg
	WIBYLZjSxFQ37y6HCD4TVcCy64dNDKFS1nHboODPxmneIMIUcrfT6tgvJ45SbANiz07+qO5bZpv
	wkgnby74MOupTUGu4gPx4B6XvIOXYOdEbCrJLc0YBEysTI/HQqAtGaWNOxTUZN05RK5s1p4RfqS
	HhschvlaYhnt/s0UZMeH53VaXTHhphT6vauwi8MUbvL8uZn7D66ZppWmZNx3Cz/nbKh/X/B2Hdd
	n5XOBTKN5gDCKe2vueMcNOFeNocog=
X-Received: by 2002:a05:600c:3e8f:b0:475:dac3:699f with SMTP id 5b1f17b1804b1-477307c1470mr61733375e9.9.1761998734798;
        Sat, 01 Nov 2025 05:05:34 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IEswSMAFiCrNpu5lyiFxKzugAwsfKeFqrIXw4LJyG0OxPKZu66BGogk4vu+xHj3Hhqm/A5QqQ==
X-Received: by 2002:a05:600c:3e8f:b0:475:dac3:699f with SMTP id 5b1f17b1804b1-477307c1470mr61733085e9.9.1761998734330;
        Sat, 01 Nov 2025 05:05:34 -0700 (PDT)
Message-ID: <07861e97-757c-48b2-829c-d1b1b5df81a0@redhat.com>
Date: Sat, 1 Nov 2025 13:05:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/12] powerpc/64s: Do not re-activate batched TLB
 flush
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-2-kevin.brodsky@arm.com>
From: David Hildenbrand <david@redhat.com>
Autocrypt: addr=david@redhat.com; keydata=
 xsFNBFXLn5EBEAC+zYvAFJxCBY9Tr1xZgcESmxVNI/0ffzE/ZQOiHJl6mGkmA1R7/uUpiCjJ
 dBrn+lhhOYjjNefFQou6478faXE6o2AhmebqT4KiQoUQFV4R7y1KMEKoSyy8hQaK1umALTdL
 QZLQMzNE74ap+GDK0wnacPQFpcG1AE9RMq3aeErY5tujekBS32jfC/7AnH7I0v1v1TbbK3Gp
 XNeiN4QroO+5qaSr0ID2sz5jtBLRb15RMre27E1ImpaIv2Jw8NJgW0k/D1RyKCwaTsgRdwuK
 Kx/Y91XuSBdz0uOyU/S8kM1+ag0wvsGlpBVxRR/xw/E8M7TEwuCZQArqqTCmkG6HGcXFT0V9
 PXFNNgV5jXMQRwU0O/ztJIQqsE5LsUomE//bLwzj9IVsaQpKDqW6TAPjcdBDPLHvriq7kGjt
 WhVhdl0qEYB8lkBEU7V2Yb+SYhmhpDrti9Fq1EsmhiHSkxJcGREoMK/63r9WLZYI3+4W2rAc
 UucZa4OT27U5ZISjNg3Ev0rxU5UH2/pT4wJCfxwocmqaRr6UYmrtZmND89X0KigoFD/XSeVv
 jwBRNjPAubK9/k5NoRrYqztM9W6sJqrH8+UWZ1Idd/DdmogJh0gNC0+N42Za9yBRURfIdKSb
 B3JfpUqcWwE7vUaYrHG1nw54pLUoPG6sAA7Mehl3nd4pZUALHwARAQABzSREYXZpZCBIaWxk
 ZW5icmFuZCA8ZGF2aWRAcmVkaGF0LmNvbT7CwZoEEwEIAEQCGwMCF4ACGQEFCwkIBwICIgIG
 FQoJCAsCBBYCAwECHgcWIQQb2cqtc1xMOkYN/MpN3hD3AP+DWgUCaJzangUJJlgIpAAKCRBN
 3hD3AP+DWhAxD/9wcL0A+2rtaAmutaKTfxhTP0b4AAp1r/eLxjrbfbCCmh4pqzBhmSX/4z11
 opn2KqcOsueRF1t2ENLOWzQu3Roiny2HOU7DajqB4dm1BVMaXQya5ae2ghzlJN9SIoopTWlR
 0Af3hPj5E2PYvQhlcqeoehKlBo9rROJv/rjmr2x0yOM8qeTroH/ZzNlCtJ56AsE6Tvl+r7cW
 3x7/Jq5WvWeudKrhFh7/yQ7eRvHCjd9bBrZTlgAfiHmX9AnCCPRPpNGNedV9Yty2Jnxhfmbv
 Pw37LA/jef8zlCDyUh2KCU1xVEOWqg15o1RtTyGV1nXV2O/mfuQJud5vIgzBvHhypc3p6VZJ
 lEf8YmT+Ol5P7SfCs5/uGdWUYQEMqOlg6w9R4Pe8d+mk8KGvfE9/zTwGg0nRgKqlQXrWRERv
 cuEwQbridlPAoQHrFWtwpgYMXx2TaZ3sihcIPo9uU5eBs0rf4mOERY75SK+Ekayv2ucTfjxr
 Kf014py2aoRJHuvy85ee/zIyLmve5hngZTTe3Wg3TInT9UTFzTPhItam6dZ1xqdTGHZYGU0O
 otRHcwLGt470grdiob6PfVTXoHlBvkWRadMhSuG4RORCDpq89vu5QralFNIf3EysNohoFy2A
 LYg2/D53xbU/aa4DDzBb5b1Rkg/udO1gZocVQWrDh6I2K3+cCs7BTQRVy5+RARAA59fefSDR
 9nMGCb9LbMX+TFAoIQo/wgP5XPyzLYakO+94GrgfZjfhdaxPXMsl2+o8jhp/hlIzG56taNdt
 VZtPp3ih1AgbR8rHgXw1xwOpuAd5lE1qNd54ndHuADO9a9A0vPimIes78Hi1/yy+ZEEvRkHk
 /kDa6F3AtTc1m4rbbOk2fiKzzsE9YXweFjQvl9p+AMw6qd/iC4lUk9g0+FQXNdRs+o4o6Qvy
 iOQJfGQ4UcBuOy1IrkJrd8qq5jet1fcM2j4QvsW8CLDWZS1L7kZ5gT5EycMKxUWb8LuRjxzZ
 3QY1aQH2kkzn6acigU3HLtgFyV1gBNV44ehjgvJpRY2cC8VhanTx0dZ9mj1YKIky5N+C0f21
 zvntBqcxV0+3p8MrxRRcgEtDZNav+xAoT3G0W4SahAaUTWXpsZoOecwtxi74CyneQNPTDjNg
 azHmvpdBVEfj7k3p4dmJp5i0U66Onmf6mMFpArvBRSMOKU9DlAzMi4IvhiNWjKVaIE2Se9BY
 FdKVAJaZq85P2y20ZBd08ILnKcj7XKZkLU5FkoA0udEBvQ0f9QLNyyy3DZMCQWcwRuj1m73D
 sq8DEFBdZ5eEkj1dCyx+t/ga6x2rHyc8Sl86oK1tvAkwBNsfKou3v+jP/l14a7DGBvrmlYjO
 59o3t6inu6H7pt7OL6u6BQj7DoMAEQEAAcLBfAQYAQgAJgIbDBYhBBvZyq1zXEw6Rg38yk3e
 EPcA/4NaBQJonNqrBQkmWAihAAoJEE3eEPcA/4NaKtMQALAJ8PzprBEXbXcEXwDKQu+P/vts
 IfUb1UNMfMV76BicGa5NCZnJNQASDP/+bFg6O3gx5NbhHHPeaWz/VxlOmYHokHodOvtL0WCC
 8A5PEP8tOk6029Z+J+xUcMrJClNVFpzVvOpb1lCbhjwAV465Hy+NUSbbUiRxdzNQtLtgZzOV
 Zw7jxUCs4UUZLQTCuBpFgb15bBxYZ/BL9MbzxPxvfUQIPbnzQMcqtpUs21CMK2PdfCh5c4gS
 sDci6D5/ZIBw94UQWmGpM/O1ilGXde2ZzzGYl64glmccD8e87OnEgKnH3FbnJnT4iJchtSvx
 yJNi1+t0+qDti4m88+/9IuPqCKb6Stl+s2dnLtJNrjXBGJtsQG/sRpqsJz5x1/2nPJSRMsx9
 5YfqbdrJSOFXDzZ8/r82HgQEtUvlSXNaXCa95ez0UkOG7+bDm2b3s0XahBQeLVCH0mw3RAQg
 r7xDAYKIrAwfHHmMTnBQDPJwVqxJjVNr7yBic4yfzVWGCGNE4DnOW0vcIeoyhy9vnIa3w1uZ
 3iyY2Nsd7JxfKu1PRhCGwXzRw5TlfEsoRI7V9A8isUCoqE2Dzh3FvYHVeX4Us+bRL/oqareJ
 CIFqgYMyvHj7Q06kTKmauOe4Nf0l0qEkIuIzfoLJ3qr5UyXc2hLtWyT9Ir+lYlX9efqh7mOY
 qIws/H2t
In-Reply-To: <20251029100909.3381140-2-kevin.brodsky@arm.com>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: Xm6OInkJQ8OBHqRhs8b4ZRCmD1vghTnXYWm2YjDtC7Y_1761998735
X-Mimecast-Originator: redhat.com
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29.10.25 11:08, Kevin Brodsky wrote:
> From: Alexander Gordeev <agordeev@linux.ibm.com>
> 
> Since commit b9ef323ea168 ("powerpc/64s: Disable preemption in hash
> lazy mmu mode") a task can not be preempted while in lazy MMU mode.
> Therefore, the batch re-activation code is never called, so remove it.
> 
> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---

Reviewed-by: David Hildenbrand <david@redhat.com>

-- 
Cheers

David / dhildenb



From xen-devel-bounces@lists.xenproject.org Sat Nov 01 12:14:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 01 Nov 2025 12:14:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1154997.1484608 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAV8-0001Aj-MO; Sat, 01 Nov 2025 12:14:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1154997.1484608; Sat, 01 Nov 2025 12:14:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAV8-0001Ac-Jg; Sat, 01 Nov 2025 12:14:34 +0000
Received: by outflank-mailman (input) for mailman id 1154997;
 Sat, 01 Nov 2025 12:14: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=VYHd=5J=redhat.com=david@srs-se1.protection.inumbo.net>)
 id 1vFAV7-0001AW-17
 for xen-devel@lists.xenproject.org; Sat, 01 Nov 2025 12:14:33 +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 5132833d-b71c-11f0-9d16-b5c5bf9af7f9;
 Sat, 01 Nov 2025 13:14:30 +0100 (CET)
Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com
 [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-384-j2sJ_wb0P3qQ-HsRoUj4Zg-1; Sat, 01 Nov 2025 08:14:26 -0400
Received: by mail-wm1-f69.google.com with SMTP id
 5b1f17b1804b1-475dca91610so17204645e9.3
 for <xen-devel@lists.xenproject.org>; Sat, 01 Nov 2025 05:14:26 -0700 (PDT)
Received: from ?IPV6:2003:d8:2f3f:4b00:ee13:8c22:5cc5:d169?
 (p200300d82f3f4b00ee138c225cc5d169.dip0.t-ipconnect.de.
 [2003:d8:2f3f:4b00:ee13:8c22:5cc5:d169])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-429c10ff584sm9569867f8f.2.2025.11.01.05.14.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 01 Nov 2025 05:14:24 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5132833d-b71c-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1761999269;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=o048ati210LDdtQS+FOPO4jSMwtVqN57n5BUaVz6yTU=;
	b=DSwOTGalgWiWoY6Sd70gYiI+Dx7Pdx4cRI3IpmLZgS6b4a0C2O5qmWJr8/uPyFS7WkAlQP
	tHnAUj3TtStOrwecAD89zMcRjpSBI+pq2I+uGErPx8hpg6OpC2eX3SB+DpA2T3j6xqIkel
	+Pb/pOfv6KlVkNWfCwxBYbvXMZigK7c=
X-MC-Unique: j2sJ_wb0P3qQ-HsRoUj4Zg-1
X-Mimecast-MFC-AGG-ID: j2sJ_wb0P3qQ-HsRoUj4Zg_1761999265
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1761999265; x=1762604065;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=o048ati210LDdtQS+FOPO4jSMwtVqN57n5BUaVz6yTU=;
        b=Ncj7j611L56+1H2Xv/8wZSTyC1yC1XLflNPjxXL8bNRZR4watdu7rOh2l2Zhsxo4Rs
         GZqyNxRMeGKBz0wosCZFmBpSL9Gw0fyX0zSVR+cPa4uFE1ODSZhQJ5jqfCOkY+usJ8fj
         iLkOkayYb5/a4+tLV2mYjaOid0IwUVxrkRZepm9paiOe/uxFpIuOhvlOLQ+iVnutQPYx
         DjuC7RIOMgexhXpxT946wDpggKfeANW3nBcrjWWjRBYreIk4urViU2pnbNN576WaLE1U
         ZnPb4YTomFiMYg4IqZR6o0WTL43vhbgaMM1l+6I5nnA2Z5syYUl7M7XcNnVzN3RCeq1z
         54cw==
X-Forwarded-Encrypted: i=1; AJvYcCWdjJrSxXbO6mQZDT5KPuq0PZ3qMweQnaaDStYFK98fB4HIHrNWJCypsi3iINShH3i0wqsPfaICsBc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwTepWVKZ/5dMnewyap1CCuEaNpYb5LzpemI9uSt27ffmRzIz3j
	RrMlNJ+sWnHA9owQA3dWPAD9LeNAzNiR7zXDJbKqau65N1lz6lRAfD6mJ/uxKy7xtvZ91YQkFlp
	nRthleLoLuz7xeDB/APAJsa/7fqlsUp4MyXEl5Asjt2XxlGKluXZFuUIB+TfU/iuwaIn/
X-Gm-Gg: ASbGncvRfEax45q6I/7F80Hs6kfengTINZwCAYEVc+U6ZdGesru5cZO7xDstfPTiqFI
	FTfVHQnx6L+gFfefJztAJB0jqoPBx7h35cD936d1gzcHOcIm9Q3A4IRmMox9QH7GdF4nzw8SQFk
	2RFo26v5ZOr2d2KdxxtDXByEbG6aSo6awaCjjn1mUN/YzIp8YgxFTTpSNDN/0zVtdG4oyDEIpet
	lfJ/swmwYZhHmFyQnxv0pu5RDpnMv6ayu6lJ//qISY/DQeeu1Opigaqx4Km0fHncs7GiOBWkpTy
	hotKpJ/6dJKQexCmjtjXVsTJOcThlObdOlBFUaYV/Fpj/ZHZs5gdcshfNGVcqURof0g8C+srdru
	ctiS6tPW3fP+4k+iPI8E3ivBfZ0rAbe8JaUmlK1SHyRjn/4ND3XOGO0Dlu/psJqasm93Lumckj9
	KNeyI0cykeDoS8XM5Ehs27HBP73HE=
X-Received: by 2002:a05:6000:4006:b0:429:b1e4:1f79 with SMTP id ffacd0b85a97d-429bd6c1e9emr5632387f8f.58.1761999265118;
        Sat, 01 Nov 2025 05:14:25 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IHUnlqEI4i/IitGbkGmSb5mhRBlBddO47B8HgBUkc3NNZF05OsloV2rMzQDwADfEurYYBklUw==
X-Received: by 2002:a05:6000:4006:b0:429:b1e4:1f79 with SMTP id ffacd0b85a97d-429bd6c1e9emr5632339f8f.58.1761999264653;
        Sat, 01 Nov 2025 05:14:24 -0700 (PDT)
Message-ID: <5a3ccb7e-9d36-4ac8-9634-c8dec3d6a47c@redhat.com>
Date: Sat, 1 Nov 2025 13:14:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/12] x86/xen: simplify flush_lazy_mmu()
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-3-kevin.brodsky@arm.com>
From: David Hildenbrand <david@redhat.com>
Autocrypt: addr=david@redhat.com; keydata=
 xsFNBFXLn5EBEAC+zYvAFJxCBY9Tr1xZgcESmxVNI/0ffzE/ZQOiHJl6mGkmA1R7/uUpiCjJ
 dBrn+lhhOYjjNefFQou6478faXE6o2AhmebqT4KiQoUQFV4R7y1KMEKoSyy8hQaK1umALTdL
 QZLQMzNE74ap+GDK0wnacPQFpcG1AE9RMq3aeErY5tujekBS32jfC/7AnH7I0v1v1TbbK3Gp
 XNeiN4QroO+5qaSr0ID2sz5jtBLRb15RMre27E1ImpaIv2Jw8NJgW0k/D1RyKCwaTsgRdwuK
 Kx/Y91XuSBdz0uOyU/S8kM1+ag0wvsGlpBVxRR/xw/E8M7TEwuCZQArqqTCmkG6HGcXFT0V9
 PXFNNgV5jXMQRwU0O/ztJIQqsE5LsUomE//bLwzj9IVsaQpKDqW6TAPjcdBDPLHvriq7kGjt
 WhVhdl0qEYB8lkBEU7V2Yb+SYhmhpDrti9Fq1EsmhiHSkxJcGREoMK/63r9WLZYI3+4W2rAc
 UucZa4OT27U5ZISjNg3Ev0rxU5UH2/pT4wJCfxwocmqaRr6UYmrtZmND89X0KigoFD/XSeVv
 jwBRNjPAubK9/k5NoRrYqztM9W6sJqrH8+UWZ1Idd/DdmogJh0gNC0+N42Za9yBRURfIdKSb
 B3JfpUqcWwE7vUaYrHG1nw54pLUoPG6sAA7Mehl3nd4pZUALHwARAQABzSREYXZpZCBIaWxk
 ZW5icmFuZCA8ZGF2aWRAcmVkaGF0LmNvbT7CwZoEEwEIAEQCGwMCF4ACGQEFCwkIBwICIgIG
 FQoJCAsCBBYCAwECHgcWIQQb2cqtc1xMOkYN/MpN3hD3AP+DWgUCaJzangUJJlgIpAAKCRBN
 3hD3AP+DWhAxD/9wcL0A+2rtaAmutaKTfxhTP0b4AAp1r/eLxjrbfbCCmh4pqzBhmSX/4z11
 opn2KqcOsueRF1t2ENLOWzQu3Roiny2HOU7DajqB4dm1BVMaXQya5ae2ghzlJN9SIoopTWlR
 0Af3hPj5E2PYvQhlcqeoehKlBo9rROJv/rjmr2x0yOM8qeTroH/ZzNlCtJ56AsE6Tvl+r7cW
 3x7/Jq5WvWeudKrhFh7/yQ7eRvHCjd9bBrZTlgAfiHmX9AnCCPRPpNGNedV9Yty2Jnxhfmbv
 Pw37LA/jef8zlCDyUh2KCU1xVEOWqg15o1RtTyGV1nXV2O/mfuQJud5vIgzBvHhypc3p6VZJ
 lEf8YmT+Ol5P7SfCs5/uGdWUYQEMqOlg6w9R4Pe8d+mk8KGvfE9/zTwGg0nRgKqlQXrWRERv
 cuEwQbridlPAoQHrFWtwpgYMXx2TaZ3sihcIPo9uU5eBs0rf4mOERY75SK+Ekayv2ucTfjxr
 Kf014py2aoRJHuvy85ee/zIyLmve5hngZTTe3Wg3TInT9UTFzTPhItam6dZ1xqdTGHZYGU0O
 otRHcwLGt470grdiob6PfVTXoHlBvkWRadMhSuG4RORCDpq89vu5QralFNIf3EysNohoFy2A
 LYg2/D53xbU/aa4DDzBb5b1Rkg/udO1gZocVQWrDh6I2K3+cCs7BTQRVy5+RARAA59fefSDR
 9nMGCb9LbMX+TFAoIQo/wgP5XPyzLYakO+94GrgfZjfhdaxPXMsl2+o8jhp/hlIzG56taNdt
 VZtPp3ih1AgbR8rHgXw1xwOpuAd5lE1qNd54ndHuADO9a9A0vPimIes78Hi1/yy+ZEEvRkHk
 /kDa6F3AtTc1m4rbbOk2fiKzzsE9YXweFjQvl9p+AMw6qd/iC4lUk9g0+FQXNdRs+o4o6Qvy
 iOQJfGQ4UcBuOy1IrkJrd8qq5jet1fcM2j4QvsW8CLDWZS1L7kZ5gT5EycMKxUWb8LuRjxzZ
 3QY1aQH2kkzn6acigU3HLtgFyV1gBNV44ehjgvJpRY2cC8VhanTx0dZ9mj1YKIky5N+C0f21
 zvntBqcxV0+3p8MrxRRcgEtDZNav+xAoT3G0W4SahAaUTWXpsZoOecwtxi74CyneQNPTDjNg
 azHmvpdBVEfj7k3p4dmJp5i0U66Onmf6mMFpArvBRSMOKU9DlAzMi4IvhiNWjKVaIE2Se9BY
 FdKVAJaZq85P2y20ZBd08ILnKcj7XKZkLU5FkoA0udEBvQ0f9QLNyyy3DZMCQWcwRuj1m73D
 sq8DEFBdZ5eEkj1dCyx+t/ga6x2rHyc8Sl86oK1tvAkwBNsfKou3v+jP/l14a7DGBvrmlYjO
 59o3t6inu6H7pt7OL6u6BQj7DoMAEQEAAcLBfAQYAQgAJgIbDBYhBBvZyq1zXEw6Rg38yk3e
 EPcA/4NaBQJonNqrBQkmWAihAAoJEE3eEPcA/4NaKtMQALAJ8PzprBEXbXcEXwDKQu+P/vts
 IfUb1UNMfMV76BicGa5NCZnJNQASDP/+bFg6O3gx5NbhHHPeaWz/VxlOmYHokHodOvtL0WCC
 8A5PEP8tOk6029Z+J+xUcMrJClNVFpzVvOpb1lCbhjwAV465Hy+NUSbbUiRxdzNQtLtgZzOV
 Zw7jxUCs4UUZLQTCuBpFgb15bBxYZ/BL9MbzxPxvfUQIPbnzQMcqtpUs21CMK2PdfCh5c4gS
 sDci6D5/ZIBw94UQWmGpM/O1ilGXde2ZzzGYl64glmccD8e87OnEgKnH3FbnJnT4iJchtSvx
 yJNi1+t0+qDti4m88+/9IuPqCKb6Stl+s2dnLtJNrjXBGJtsQG/sRpqsJz5x1/2nPJSRMsx9
 5YfqbdrJSOFXDzZ8/r82HgQEtUvlSXNaXCa95ez0UkOG7+bDm2b3s0XahBQeLVCH0mw3RAQg
 r7xDAYKIrAwfHHmMTnBQDPJwVqxJjVNr7yBic4yfzVWGCGNE4DnOW0vcIeoyhy9vnIa3w1uZ
 3iyY2Nsd7JxfKu1PRhCGwXzRw5TlfEsoRI7V9A8isUCoqE2Dzh3FvYHVeX4Us+bRL/oqareJ
 CIFqgYMyvHj7Q06kTKmauOe4Nf0l0qEkIuIzfoLJ3qr5UyXc2hLtWyT9Ir+lYlX9efqh7mOY
 qIws/H2t
In-Reply-To: <20251029100909.3381140-3-kevin.brodsky@arm.com>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: lXk9cNcVmVsZLsGpx42alHLe7IuJ3tk1FQB6GIi99EY_1761999265
X-Mimecast-Originator: redhat.com
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29.10.25 11:08, Kevin Brodsky wrote:
> arch_flush_lazy_mmu_mode() is called when outstanding batched
> pgtable operations must be completed immediately. There should
> however be no need to leave and re-enter lazy MMU completely. The
> only part of that sequence that we really need is xen_mc_flush();
> call it directly.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
>   arch/x86/xen/mmu_pv.c | 6 ++----
>   1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
> index 2a4a8deaf612..7a35c3393df4 100644
> --- a/arch/x86/xen/mmu_pv.c
> +++ b/arch/x86/xen/mmu_pv.c
> @@ -2139,10 +2139,8 @@ static void xen_flush_lazy_mmu(void)
>   {
>   	preempt_disable();
>   
> -	if (xen_get_lazy_mode() == XEN_LAZY_MMU) {
> -		arch_leave_lazy_mmu_mode();
> -		arch_enter_lazy_mmu_mode();
> -	}
> +	if (xen_get_lazy_mode() == XEN_LAZY_MMU)
> +		xen_mc_flush();
>   
>   	preempt_enable();
>   }

Looks like that was moved to XEN code in

commit a4a7644c15096f57f92252dd6e1046bf269c87d8
Author: Juergen Gross <jgross@suse.com>
Date:   Wed Sep 13 13:38:27 2023 +0200

     x86/xen: move paravirt lazy code


And essentially the previous implementation lived in 
arch/x86/kernel/paravirt.c:paravirt_flush_lazy_mmu(void) in an 
implementation-agnostic way:

void paravirt_flush_lazy_mmu(void)
{
        preempt_disable();

        if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_MMU) {
                arch_leave_lazy_mmu_mode();
                arch_enter_lazy_mmu_mode();
        }

        preempt_enable();
}


So indeed, I assume just doing the flush here is sufficient.

Reviewed-by: David Hildenbrand <david@redhat.com>

-- 
Cheers

David / dhildenb



From xen-devel-bounces@lists.xenproject.org Sat Nov 01 12:14:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 01 Nov 2025 12:14:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1154999.1484619 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAVO-0001Tu-Vb; Sat, 01 Nov 2025 12:14:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1154999.1484619; Sat, 01 Nov 2025 12: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 1vFAVO-0001TS-SY; Sat, 01 Nov 2025 12:14:50 +0000
Received: by outflank-mailman (input) for mailman id 1154999;
 Sat, 01 Nov 2025 12: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=VYHd=5J=redhat.com=david@srs-se1.protection.inumbo.net>)
 id 1vFAVN-0001AW-S8
 for xen-devel@lists.xenproject.org; Sat, 01 Nov 2025 12:14: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 5c450cc1-b71c-11f0-9d16-b5c5bf9af7f9;
 Sat, 01 Nov 2025 13:14:49 +0100 (CET)
Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com
 [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-130-TuLVa_96PQOJAcDd3v7G4A-1; Sat, 01 Nov 2025 08:14:45 -0400
Received: by mail-wm1-f69.google.com with SMTP id
 5b1f17b1804b1-477171bbf51so13764415e9.3
 for <xen-devel@lists.xenproject.org>; Sat, 01 Nov 2025 05:14:44 -0700 (PDT)
Received: from ?IPV6:2003:d8:2f3f:4b00:ee13:8c22:5cc5:d169?
 (p200300d82f3f4b00ee138c225cc5d169.dip0.t-ipconnect.de.
 [2003:d8:2f3f:4b00:ee13:8c22:5cc5:d169])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-429c110037asm9428834f8f.3.2025.11.01.05.14.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 01 Nov 2025 05:14:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c450cc1-b71c-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1761999288;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=Wcrewv7OssaEm3gyvMk1iF/ClvQjL5UKQAK3UbLbS48=;
	b=Hjb65FPRL3UmUiIrv3e9flXkq0Mub9IHeKl8ANgiuYByWkdpnEEQx16aDevdKIqSvfp8gd
	nfi9dILr4TRwAGc+eihcdBVvGD2Iv8H2j+4WrA6X+ijXQ3KS9QcwxOQfIjFojqHhF5dof8
	QeJnDZJ+PT+OIQy8j8Fe8va5WlMGpXA=
X-MC-Unique: TuLVa_96PQOJAcDd3v7G4A-1
X-Mimecast-MFC-AGG-ID: TuLVa_96PQOJAcDd3v7G4A_1761999284
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1761999284; x=1762604084;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Wcrewv7OssaEm3gyvMk1iF/ClvQjL5UKQAK3UbLbS48=;
        b=hewDu/xpzNIRFwYvSuN794BLipsfv4IjhUbRf5Ht31Di2ufe2lZLnngfbpeFdGscd3
         YNpbvBl7Tes+FG+lk/WIBtDSzx70zi4O/2ZWLeDx/qNev5senhGPpKOhA8kw6HIwq3NL
         LtHjihJffgn287fvCvbuzXEdFOv4h9cFCD9Af6Ghlw4OkD1XN+xhD4qnw/V8yolnaXEY
         tboVTbJYRbXhJdLR8k33yOtUjfK1KNw8w76F4fdZ1+qPq4QTo0S4xEPxkuX/YPXPAehB
         CR+tg86P3MffTj+yGMzJQVs88nQh9wCw/VFVDBz+LgXWbgiFwmD46okCMY67I+SX/rn9
         ebPg==
X-Forwarded-Encrypted: i=1; AJvYcCVihA1CUHDHbwjGrnB7NrrwuHqPLS9Z3LMNagzmJmBxxdrd0qcWA+qoHnhSqWrPQ2U79ohllPJ2yBU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyW4Onk/qYYn6jAEjFHuraVDWyAIbtQ1sLJYejH4Hoz/zsK45TN
	dKdLgl1p3f8MK9xW6u840bYBRv8NO+TgFhl6/vheazafUxRBmxohXiE3hniNgRgXLoMtdeOnQWX
	2qj0X58DKoZK63bxpvEDQ7DOqYlSieOrka5bRehytL2QK+QNJLUU9xi79iGhEzy6EUDL2
X-Gm-Gg: ASbGncuOwFF5jcqGqeSDlvoWNfojY6gQrAj6Z2//LSsrrk1vlRytLw/vD402RmeFo26
	QgwvReg8YlsPLKMIFZTn1lLyrlRX49cqCyWNZykVzjLf4yqGoC+jDhry6DMO9DNUwPrer6yw79+
	0KmxQKLVCBnHJPVVydqAQZYgh0EAGXdDeHJgGzoHox6X7e/pFGoOyMqSwOjLp7AeR5ON+4TrBu8
	maHg2GibZK2O7hp7SZqRv0iilyQcERl38T5qdQxlrw+F3J53UyCibETR+72JGYImgnjd7hrY8z8
	99XdR35feCFW108k8o9yE3XernqptjEEVMa8a3N1Jld/cONsUlZCx95IznIKHyv+o2rs0Ewblhc
	P/K7yHQKseP37ttTBXQ08/AGS5NXCNEMu/ds6kD/S+XHp0Hx2DJhy7vrY+Xp5TSo4MqD8V2dg9k
	9v8NHKcVpva/LKwUH+HRlJcKTA7m0=
X-Received: by 2002:a05:600c:a0b:b0:476:57b4:72b6 with SMTP id 5b1f17b1804b1-477305a6db5mr69965265e9.8.1761999283779;
        Sat, 01 Nov 2025 05:14:43 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IFFQqut/W+Hh2058Mo2KRwgSobvPqBB9YeSBGPmcQlX0YmXFdyt0oSxc1X9BsoNgscSeoohIA==
X-Received: by 2002:a05:600c:a0b:b0:476:57b4:72b6 with SMTP id 5b1f17b1804b1-477305a6db5mr69964795e9.8.1761999283199;
        Sat, 01 Nov 2025 05:14:43 -0700 (PDT)
Message-ID: <c2859944-734f-4ba0-8b49-e0df23e1bdbf@redhat.com>
Date: Sat, 1 Nov 2025 13:14:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/12] powerpc/mm: implement arch_flush_lazy_mmu_mode()
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-4-kevin.brodsky@arm.com>
From: David Hildenbrand <david@redhat.com>
Autocrypt: addr=david@redhat.com; keydata=
 xsFNBFXLn5EBEAC+zYvAFJxCBY9Tr1xZgcESmxVNI/0ffzE/ZQOiHJl6mGkmA1R7/uUpiCjJ
 dBrn+lhhOYjjNefFQou6478faXE6o2AhmebqT4KiQoUQFV4R7y1KMEKoSyy8hQaK1umALTdL
 QZLQMzNE74ap+GDK0wnacPQFpcG1AE9RMq3aeErY5tujekBS32jfC/7AnH7I0v1v1TbbK3Gp
 XNeiN4QroO+5qaSr0ID2sz5jtBLRb15RMre27E1ImpaIv2Jw8NJgW0k/D1RyKCwaTsgRdwuK
 Kx/Y91XuSBdz0uOyU/S8kM1+ag0wvsGlpBVxRR/xw/E8M7TEwuCZQArqqTCmkG6HGcXFT0V9
 PXFNNgV5jXMQRwU0O/ztJIQqsE5LsUomE//bLwzj9IVsaQpKDqW6TAPjcdBDPLHvriq7kGjt
 WhVhdl0qEYB8lkBEU7V2Yb+SYhmhpDrti9Fq1EsmhiHSkxJcGREoMK/63r9WLZYI3+4W2rAc
 UucZa4OT27U5ZISjNg3Ev0rxU5UH2/pT4wJCfxwocmqaRr6UYmrtZmND89X0KigoFD/XSeVv
 jwBRNjPAubK9/k5NoRrYqztM9W6sJqrH8+UWZ1Idd/DdmogJh0gNC0+N42Za9yBRURfIdKSb
 B3JfpUqcWwE7vUaYrHG1nw54pLUoPG6sAA7Mehl3nd4pZUALHwARAQABzSREYXZpZCBIaWxk
 ZW5icmFuZCA8ZGF2aWRAcmVkaGF0LmNvbT7CwZoEEwEIAEQCGwMCF4ACGQEFCwkIBwICIgIG
 FQoJCAsCBBYCAwECHgcWIQQb2cqtc1xMOkYN/MpN3hD3AP+DWgUCaJzangUJJlgIpAAKCRBN
 3hD3AP+DWhAxD/9wcL0A+2rtaAmutaKTfxhTP0b4AAp1r/eLxjrbfbCCmh4pqzBhmSX/4z11
 opn2KqcOsueRF1t2ENLOWzQu3Roiny2HOU7DajqB4dm1BVMaXQya5ae2ghzlJN9SIoopTWlR
 0Af3hPj5E2PYvQhlcqeoehKlBo9rROJv/rjmr2x0yOM8qeTroH/ZzNlCtJ56AsE6Tvl+r7cW
 3x7/Jq5WvWeudKrhFh7/yQ7eRvHCjd9bBrZTlgAfiHmX9AnCCPRPpNGNedV9Yty2Jnxhfmbv
 Pw37LA/jef8zlCDyUh2KCU1xVEOWqg15o1RtTyGV1nXV2O/mfuQJud5vIgzBvHhypc3p6VZJ
 lEf8YmT+Ol5P7SfCs5/uGdWUYQEMqOlg6w9R4Pe8d+mk8KGvfE9/zTwGg0nRgKqlQXrWRERv
 cuEwQbridlPAoQHrFWtwpgYMXx2TaZ3sihcIPo9uU5eBs0rf4mOERY75SK+Ekayv2ucTfjxr
 Kf014py2aoRJHuvy85ee/zIyLmve5hngZTTe3Wg3TInT9UTFzTPhItam6dZ1xqdTGHZYGU0O
 otRHcwLGt470grdiob6PfVTXoHlBvkWRadMhSuG4RORCDpq89vu5QralFNIf3EysNohoFy2A
 LYg2/D53xbU/aa4DDzBb5b1Rkg/udO1gZocVQWrDh6I2K3+cCs7BTQRVy5+RARAA59fefSDR
 9nMGCb9LbMX+TFAoIQo/wgP5XPyzLYakO+94GrgfZjfhdaxPXMsl2+o8jhp/hlIzG56taNdt
 VZtPp3ih1AgbR8rHgXw1xwOpuAd5lE1qNd54ndHuADO9a9A0vPimIes78Hi1/yy+ZEEvRkHk
 /kDa6F3AtTc1m4rbbOk2fiKzzsE9YXweFjQvl9p+AMw6qd/iC4lUk9g0+FQXNdRs+o4o6Qvy
 iOQJfGQ4UcBuOy1IrkJrd8qq5jet1fcM2j4QvsW8CLDWZS1L7kZ5gT5EycMKxUWb8LuRjxzZ
 3QY1aQH2kkzn6acigU3HLtgFyV1gBNV44ehjgvJpRY2cC8VhanTx0dZ9mj1YKIky5N+C0f21
 zvntBqcxV0+3p8MrxRRcgEtDZNav+xAoT3G0W4SahAaUTWXpsZoOecwtxi74CyneQNPTDjNg
 azHmvpdBVEfj7k3p4dmJp5i0U66Onmf6mMFpArvBRSMOKU9DlAzMi4IvhiNWjKVaIE2Se9BY
 FdKVAJaZq85P2y20ZBd08ILnKcj7XKZkLU5FkoA0udEBvQ0f9QLNyyy3DZMCQWcwRuj1m73D
 sq8DEFBdZ5eEkj1dCyx+t/ga6x2rHyc8Sl86oK1tvAkwBNsfKou3v+jP/l14a7DGBvrmlYjO
 59o3t6inu6H7pt7OL6u6BQj7DoMAEQEAAcLBfAQYAQgAJgIbDBYhBBvZyq1zXEw6Rg38yk3e
 EPcA/4NaBQJonNqrBQkmWAihAAoJEE3eEPcA/4NaKtMQALAJ8PzprBEXbXcEXwDKQu+P/vts
 IfUb1UNMfMV76BicGa5NCZnJNQASDP/+bFg6O3gx5NbhHHPeaWz/VxlOmYHokHodOvtL0WCC
 8A5PEP8tOk6029Z+J+xUcMrJClNVFpzVvOpb1lCbhjwAV465Hy+NUSbbUiRxdzNQtLtgZzOV
 Zw7jxUCs4UUZLQTCuBpFgb15bBxYZ/BL9MbzxPxvfUQIPbnzQMcqtpUs21CMK2PdfCh5c4gS
 sDci6D5/ZIBw94UQWmGpM/O1ilGXde2ZzzGYl64glmccD8e87OnEgKnH3FbnJnT4iJchtSvx
 yJNi1+t0+qDti4m88+/9IuPqCKb6Stl+s2dnLtJNrjXBGJtsQG/sRpqsJz5x1/2nPJSRMsx9
 5YfqbdrJSOFXDzZ8/r82HgQEtUvlSXNaXCa95ez0UkOG7+bDm2b3s0XahBQeLVCH0mw3RAQg
 r7xDAYKIrAwfHHmMTnBQDPJwVqxJjVNr7yBic4yfzVWGCGNE4DnOW0vcIeoyhy9vnIa3w1uZ
 3iyY2Nsd7JxfKu1PRhCGwXzRw5TlfEsoRI7V9A8isUCoqE2Dzh3FvYHVeX4Us+bRL/oqareJ
 CIFqgYMyvHj7Q06kTKmauOe4Nf0l0qEkIuIzfoLJ3qr5UyXc2hLtWyT9Ir+lYlX9efqh7mOY
 qIws/H2t
In-Reply-To: <20251029100909.3381140-4-kevin.brodsky@arm.com>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: KWjH0owXk_nhOMkd5XWl6T-R4iBKdhTWtUm6k_DFpE4_1761999284
X-Mimecast-Originator: redhat.com
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29.10.25 11:09, Kevin Brodsky wrote:
> Upcoming changes to the lazy_mmu API will cause
> arch_flush_lazy_mmu_mode() to be called when leaving a nested
> lazy_mmu section.
> 
> Move the relevant logic from arch_leave_lazy_mmu_mode() to
> arch_flush_lazy_mmu_mode() and have the former call the latter.
> 
> Note: the additional this_cpu_ptr() on the
> arch_leave_lazy_mmu_mode() path will be removed in a subsequent
> patch.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---

Acked-by: David Hildenbrand <david@redhat.com>

-- 
Cheers

David / dhildenb



From xen-devel-bounces@lists.xenproject.org Sat Nov 01 12:15:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 01 Nov 2025 12:15:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155007.1484629 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAVd-0001wT-AP; Sat, 01 Nov 2025 12:15:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155007.1484629; Sat, 01 Nov 2025 12:15:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAVd-0001wM-7q; Sat, 01 Nov 2025 12:15:05 +0000
Received: by outflank-mailman (input) for mailman id 1155007;
 Sat, 01 Nov 2025 12:15: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=VYHd=5J=redhat.com=david@srs-se1.protection.inumbo.net>)
 id 1vFAVc-0001is-3Q
 for xen-devel@lists.xenproject.org; Sat, 01 Nov 2025 12:15:04 +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 64202a82-b71c-11f0-980a-7dc792cee155;
 Sat, 01 Nov 2025 13:15:02 +0100 (CET)
Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com
 [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-203-i4jvVQ_ONFiATUoN_lJO1A-1; Sat, 01 Nov 2025 08:14:59 -0400
Received: by mail-wm1-f69.google.com with SMTP id
 5b1f17b1804b1-4770c37331fso22931695e9.3
 for <xen-devel@lists.xenproject.org>; Sat, 01 Nov 2025 05:14:59 -0700 (PDT)
Received: from ?IPV6:2003:d8:2f3f:4b00:ee13:8c22:5cc5:d169?
 (p200300d82f3f4b00ee138c225cc5d169.dip0.t-ipconnect.de.
 [2003:d8:2f3f:4b00:ee13:8c22:5cc5:d169])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-429c9737830sm2218179f8f.16.2025.11.01.05.14.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 01 Nov 2025 05:14:57 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 64202a82-b71c-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1761999301;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=Wcrewv7OssaEm3gyvMk1iF/ClvQjL5UKQAK3UbLbS48=;
	b=fKZuXQk8rqZJ/qIysx25x3joyBTIxbXB8XcPFi4J9N2Yj5njYHqulAOsRv8iz09dipV9LP
	4J9HT7fN3PKAnu21VyLqhJLDFlpJyFJf3Yp6Vc4owm6inAA4ysdfUEsA8Ofo6Xkz/qsUjo
	GDmy51tKmV2b5sYfro/FmAi3rEkEG3w=
X-MC-Unique: i4jvVQ_ONFiATUoN_lJO1A-1
X-Mimecast-MFC-AGG-ID: i4jvVQ_ONFiATUoN_lJO1A_1761999299
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1761999298; x=1762604098;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Wcrewv7OssaEm3gyvMk1iF/ClvQjL5UKQAK3UbLbS48=;
        b=C6YbaKuLB1bKZQvo7oTSIDyFme2k2gFrNsVWUjC6m2rwiA4mR8AVVK0EEd4G/EqMcH
         GdXFMMBRTjW2DdbvAuNRdl1QM42NQ82JAWz/h7q6T9XMbwQjkBUAra9zD6rGUHDfEjgR
         1aBuJJzDixPCqSGkeHoovcQ4e3NVyUmnxkqL+DpH3OaGr7HbhTDgTfxCh9vhLD+tbrM+
         vEftwsSOa2mOXKbmGJ/tT5R/V0yT12tki/JHhGBeyV5oxJdeqzzewPfz0i3ZYXW8ga5k
         OJHnlkQAEkET3pukz3m0SLhfxmiJQRD5BNuvOySkfi8QA9JW9s0JMKV0ohWwBapCIyfl
         Aamw==
X-Forwarded-Encrypted: i=1; AJvYcCXtLzUhamf2D8udX2QjB+FH5nWX645jpgn3ymfVGlxu5WAq9mt5C/1i7+cSD47p4ETJaXb1T8T4ew8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw3eH6K9KXZb8OCwk+YgRk2VZQJpJD4jDsyVYq1C+zMRIeFzEwy
	npDnx2qAoHODTnWr+PQYMgekMgWy7c3v69M4E8/kCvH1Zu7IqZUBqNsAe9LFI3kSlYsgmCUZVQI
	394yFnzlHgLfFeY3FvUTFMj7tC0MgKEAQ7a8Bxrwl2fAeYHqaO6ohy2FiBvbppjgGlv98
X-Gm-Gg: ASbGncvA/YDeDusxVUur7DlVYgvFx3ufxMcRjfJppHsOtUeBwcYLtJTPMP4I6bPHtdu
	6F9bZ4P2UtDb4JeRqAh+wMFMhw8aDVskwberod2BPU/Q9i1MxbA13rw13VAImU9K+y8i6bcScgI
	SjE4MJZ4aZAW2bknseAEnGchN+dVMZx7lZHqi7r8rwm2MpXMbBQ9gX+39NDpBAgLOMJlfstYYMO
	SK0348LPPvJq26GKH2dJnuk+OUCj9FM9mHMFgZcpAWsL0qvTnVkCwf0uBjmGA9bngdpaAf0rrtN
	9XAvprF5kWFU9Rl612UL8ktx3q8YoXqqXnFSkpt9QDRutb8jfiwYL21OmvPa/7IHj1/mGB44Y1v
	1oYx5qL+1ztUUCsnAwMXgyS0F/+9wegz5dt0wul5rDLZPYlWfHHfBZFfwdgcr26dulvakkqclHV
	Z0PdKmRwaldkSkcRcLzTDCfN2fq/c=
X-Received: by 2002:a05:600c:64c5:b0:46e:37a7:48d1 with SMTP id 5b1f17b1804b1-477308aad21mr78192345e9.34.1761999298487;
        Sat, 01 Nov 2025 05:14:58 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IGpoAFpg0euM+1PM4mK/KRSGv+bWD5NPrehon1oy/C0JEyB0MU730bCFNURR8O9btag493PXg==
X-Received: by 2002:a05:600c:64c5:b0:46e:37a7:48d1 with SMTP id 5b1f17b1804b1-477308aad21mr78192025e9.34.1761999298113;
        Sat, 01 Nov 2025 05:14:58 -0700 (PDT)
Message-ID: <15f832f9-b95d-4b08-8467-21a27cbf8450@redhat.com>
Date: Sat, 1 Nov 2025 13:14:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 04/12] sparc/mm: implement arch_flush_lazy_mmu_mode()
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-5-kevin.brodsky@arm.com>
From: David Hildenbrand <david@redhat.com>
Autocrypt: addr=david@redhat.com; keydata=
 xsFNBFXLn5EBEAC+zYvAFJxCBY9Tr1xZgcESmxVNI/0ffzE/ZQOiHJl6mGkmA1R7/uUpiCjJ
 dBrn+lhhOYjjNefFQou6478faXE6o2AhmebqT4KiQoUQFV4R7y1KMEKoSyy8hQaK1umALTdL
 QZLQMzNE74ap+GDK0wnacPQFpcG1AE9RMq3aeErY5tujekBS32jfC/7AnH7I0v1v1TbbK3Gp
 XNeiN4QroO+5qaSr0ID2sz5jtBLRb15RMre27E1ImpaIv2Jw8NJgW0k/D1RyKCwaTsgRdwuK
 Kx/Y91XuSBdz0uOyU/S8kM1+ag0wvsGlpBVxRR/xw/E8M7TEwuCZQArqqTCmkG6HGcXFT0V9
 PXFNNgV5jXMQRwU0O/ztJIQqsE5LsUomE//bLwzj9IVsaQpKDqW6TAPjcdBDPLHvriq7kGjt
 WhVhdl0qEYB8lkBEU7V2Yb+SYhmhpDrti9Fq1EsmhiHSkxJcGREoMK/63r9WLZYI3+4W2rAc
 UucZa4OT27U5ZISjNg3Ev0rxU5UH2/pT4wJCfxwocmqaRr6UYmrtZmND89X0KigoFD/XSeVv
 jwBRNjPAubK9/k5NoRrYqztM9W6sJqrH8+UWZ1Idd/DdmogJh0gNC0+N42Za9yBRURfIdKSb
 B3JfpUqcWwE7vUaYrHG1nw54pLUoPG6sAA7Mehl3nd4pZUALHwARAQABzSREYXZpZCBIaWxk
 ZW5icmFuZCA8ZGF2aWRAcmVkaGF0LmNvbT7CwZoEEwEIAEQCGwMCF4ACGQEFCwkIBwICIgIG
 FQoJCAsCBBYCAwECHgcWIQQb2cqtc1xMOkYN/MpN3hD3AP+DWgUCaJzangUJJlgIpAAKCRBN
 3hD3AP+DWhAxD/9wcL0A+2rtaAmutaKTfxhTP0b4AAp1r/eLxjrbfbCCmh4pqzBhmSX/4z11
 opn2KqcOsueRF1t2ENLOWzQu3Roiny2HOU7DajqB4dm1BVMaXQya5ae2ghzlJN9SIoopTWlR
 0Af3hPj5E2PYvQhlcqeoehKlBo9rROJv/rjmr2x0yOM8qeTroH/ZzNlCtJ56AsE6Tvl+r7cW
 3x7/Jq5WvWeudKrhFh7/yQ7eRvHCjd9bBrZTlgAfiHmX9AnCCPRPpNGNedV9Yty2Jnxhfmbv
 Pw37LA/jef8zlCDyUh2KCU1xVEOWqg15o1RtTyGV1nXV2O/mfuQJud5vIgzBvHhypc3p6VZJ
 lEf8YmT+Ol5P7SfCs5/uGdWUYQEMqOlg6w9R4Pe8d+mk8KGvfE9/zTwGg0nRgKqlQXrWRERv
 cuEwQbridlPAoQHrFWtwpgYMXx2TaZ3sihcIPo9uU5eBs0rf4mOERY75SK+Ekayv2ucTfjxr
 Kf014py2aoRJHuvy85ee/zIyLmve5hngZTTe3Wg3TInT9UTFzTPhItam6dZ1xqdTGHZYGU0O
 otRHcwLGt470grdiob6PfVTXoHlBvkWRadMhSuG4RORCDpq89vu5QralFNIf3EysNohoFy2A
 LYg2/D53xbU/aa4DDzBb5b1Rkg/udO1gZocVQWrDh6I2K3+cCs7BTQRVy5+RARAA59fefSDR
 9nMGCb9LbMX+TFAoIQo/wgP5XPyzLYakO+94GrgfZjfhdaxPXMsl2+o8jhp/hlIzG56taNdt
 VZtPp3ih1AgbR8rHgXw1xwOpuAd5lE1qNd54ndHuADO9a9A0vPimIes78Hi1/yy+ZEEvRkHk
 /kDa6F3AtTc1m4rbbOk2fiKzzsE9YXweFjQvl9p+AMw6qd/iC4lUk9g0+FQXNdRs+o4o6Qvy
 iOQJfGQ4UcBuOy1IrkJrd8qq5jet1fcM2j4QvsW8CLDWZS1L7kZ5gT5EycMKxUWb8LuRjxzZ
 3QY1aQH2kkzn6acigU3HLtgFyV1gBNV44ehjgvJpRY2cC8VhanTx0dZ9mj1YKIky5N+C0f21
 zvntBqcxV0+3p8MrxRRcgEtDZNav+xAoT3G0W4SahAaUTWXpsZoOecwtxi74CyneQNPTDjNg
 azHmvpdBVEfj7k3p4dmJp5i0U66Onmf6mMFpArvBRSMOKU9DlAzMi4IvhiNWjKVaIE2Se9BY
 FdKVAJaZq85P2y20ZBd08ILnKcj7XKZkLU5FkoA0udEBvQ0f9QLNyyy3DZMCQWcwRuj1m73D
 sq8DEFBdZ5eEkj1dCyx+t/ga6x2rHyc8Sl86oK1tvAkwBNsfKou3v+jP/l14a7DGBvrmlYjO
 59o3t6inu6H7pt7OL6u6BQj7DoMAEQEAAcLBfAQYAQgAJgIbDBYhBBvZyq1zXEw6Rg38yk3e
 EPcA/4NaBQJonNqrBQkmWAihAAoJEE3eEPcA/4NaKtMQALAJ8PzprBEXbXcEXwDKQu+P/vts
 IfUb1UNMfMV76BicGa5NCZnJNQASDP/+bFg6O3gx5NbhHHPeaWz/VxlOmYHokHodOvtL0WCC
 8A5PEP8tOk6029Z+J+xUcMrJClNVFpzVvOpb1lCbhjwAV465Hy+NUSbbUiRxdzNQtLtgZzOV
 Zw7jxUCs4UUZLQTCuBpFgb15bBxYZ/BL9MbzxPxvfUQIPbnzQMcqtpUs21CMK2PdfCh5c4gS
 sDci6D5/ZIBw94UQWmGpM/O1ilGXde2ZzzGYl64glmccD8e87OnEgKnH3FbnJnT4iJchtSvx
 yJNi1+t0+qDti4m88+/9IuPqCKb6Stl+s2dnLtJNrjXBGJtsQG/sRpqsJz5x1/2nPJSRMsx9
 5YfqbdrJSOFXDzZ8/r82HgQEtUvlSXNaXCa95ez0UkOG7+bDm2b3s0XahBQeLVCH0mw3RAQg
 r7xDAYKIrAwfHHmMTnBQDPJwVqxJjVNr7yBic4yfzVWGCGNE4DnOW0vcIeoyhy9vnIa3w1uZ
 3iyY2Nsd7JxfKu1PRhCGwXzRw5TlfEsoRI7V9A8isUCoqE2Dzh3FvYHVeX4Us+bRL/oqareJ
 CIFqgYMyvHj7Q06kTKmauOe4Nf0l0qEkIuIzfoLJ3qr5UyXc2hLtWyT9Ir+lYlX9efqh7mOY
 qIws/H2t
In-Reply-To: <20251029100909.3381140-5-kevin.brodsky@arm.com>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: ZCKOZI_z00QHvHRwfRyfDYrkQzsDvSFJ9UALHUKYcqI_1761999299
X-Mimecast-Originator: redhat.com
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29.10.25 11:09, Kevin Brodsky wrote:
> Upcoming changes to the lazy_mmu API will cause
> arch_flush_lazy_mmu_mode() to be called when leaving a nested
> lazy_mmu section.
> 
> Move the relevant logic from arch_leave_lazy_mmu_mode() to
> arch_flush_lazy_mmu_mode() and have the former call the latter.
> 
> Note: the additional this_cpu_ptr() on the
> arch_leave_lazy_mmu_mode() path will be removed in a subsequent
> patch.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---

Acked-by: David Hildenbrand <david@redhat.com>

-- 
Cheers

David / dhildenb



From xen-devel-bounces@lists.xenproject.org Sat Nov 01 12:16:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 01 Nov 2025 12:16:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155029.1484639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAXS-00037D-MQ; Sat, 01 Nov 2025 12:16:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155029.1484639; Sat, 01 Nov 2025 12: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 1vFAXS-000376-JW; Sat, 01 Nov 2025 12:16:58 +0000
Received: by outflank-mailman (input) for mailman id 1155029;
 Sat, 01 Nov 2025 12:16: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=VYHd=5J=redhat.com=david@srs-se1.protection.inumbo.net>)
 id 1vFAXR-00035o-Ms
 for xen-devel@lists.xenproject.org; Sat, 01 Nov 2025 12:16:57 +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 a8129c62-b71c-11f0-9d16-b5c5bf9af7f9;
 Sat, 01 Nov 2025 13:16:56 +0100 (CET)
Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com
 [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-647-FHiqvF1hPQyzUOhICEwGeQ-1; Sat, 01 Nov 2025 08:16:54 -0400
Received: by mail-wr1-f69.google.com with SMTP id
 ffacd0b85a97d-429c8d07874so222115f8f.3
 for <xen-devel@lists.xenproject.org>; Sat, 01 Nov 2025 05:16:54 -0700 (PDT)
Received: from ?IPV6:2003:d8:2f3f:4b00:ee13:8c22:5cc5:d169?
 (p200300d82f3f4b00ee138c225cc5d169.dip0.t-ipconnect.de.
 [2003:d8:2f3f:4b00:ee13:8c22:5cc5:d169])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-429c114ca0csm9986764f8f.21.2025.11.01.05.16.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 01 Nov 2025 05:16:51 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8129c62-b71c-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1761999415;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=Ec0hJUsQTUWsdl6E8s6GRpczB51mwhz+FQUrv1x/BOM=;
	b=R+pvMkH1HJx6jcVYDDjGzxmmI+Rzb0WGRQj1eYMVv/YnnC5LTIAziPzT52op1s8uSV9VSh
	Oa4JsJWsRbBzIax9SizxsHyVDrfPqZBeXCb2Z9C39SmbpNfbF4AQKv4l3pcuBAx6eY5hlx
	NVwYp4u/QKjunymin8YhjTgTSXveGHQ=
X-MC-Unique: FHiqvF1hPQyzUOhICEwGeQ-1
X-Mimecast-MFC-AGG-ID: FHiqvF1hPQyzUOhICEwGeQ_1761999413
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1761999413; x=1762604213;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Ec0hJUsQTUWsdl6E8s6GRpczB51mwhz+FQUrv1x/BOM=;
        b=bHIv9ISErqI/qeDOo4zhHQpgekviu+Sl6mO8Fv4C52b1ZJ44W1lKHsEPp90/6/ItPx
         jDa2CD4COlwLQpCVlK6NNo8nFTJjpqu+9ZR8edi9qU3n2lnZdMJ10cc7WgF9u11m+zss
         63ImjApzhKfLSTfpW/ySEkc8OlZEQNZC5yfQ65ZmHv7wAC+yNdFHI1Gag1R/kTY/VEwn
         cwikWt0mBxaCGzGL40gVFmmBEjpCQonQYKaHXXT39SY+KnDy9g0VSer3hAL3KICDD+xF
         kAGA3n0vyyaBDpGGS9q2ck1D44Xlgo1uhm5YiOLCurWdUPV+blKGxOjPEqEos5jEThJl
         PvhQ==
X-Forwarded-Encrypted: i=1; AJvYcCWDHNfhwc72q/GR6XTcavztWGwWQgkn7jy/dcvb/6uzBOn9+h77AXQKKjrBdzZglnDYMhEKF8wRx6A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzfS4iySRvFB02jawNvPAdh4bygam3O8INUJbS1tdXMmyi9Jw9j
	TrY6NfuK9acdPdzYNVEisbBmtGcz7Jjf05lvTeAUsKvJYwOogbbejd+r57JsxHg+qOebAQ5BHDW
	xr/jtsmZ8/3MaKhSL9I86XQoYw3QhTWSVVxQBa8ExeRLor4WZunslU0uDjxA3vkfef+hm
X-Gm-Gg: ASbGncsw/uQ/ljrF5kgVqOBm2zz3o76epv4j3X6GMkquDQQBIdsHLPkWFS9dO7KVnlv
	RpsTzLl2xg7dMAYRDdenKiNLO5EQhA/XeahnblqVaOAf/n6wy9CZ0ErFR1nlU71I8SVs30a9QeU
	+IzSU5RFeMc4bG2oMXNPBSPCO7VpHDLPlBBh0YqxRBCOjBKiPqTZuliaWNBag5StUQ3jMVkr214
	3Jmk7XbRfsnxZUCMF+oH0pzWBM7wIyyN6O4fxJ7zmaOwEPUyNmKKeWzZjCJdX6fwqzLIf2nOOwd
	BxYw2/+zO4rDOdX/YaGi8ZAg7Gl0BStOoWe0oTlyh1ogb/n90Us5FnpPZqawRax+6MlLASM+HE3
	OQFhiTh/wqrx+Hu1K8tMRZXEhdel1Zap9lBIDVu5eY8ml+afuQnZOYD2dFMqD8ZsiMQ27X1TP3f
	gw209601BXE0Ymc4XTkiOylZ5RxJ4=
X-Received: by 2002:a05:6000:2f86:b0:3f0:2ab8:710f with SMTP id ffacd0b85a97d-429bd671cc6mr4920672f8f.8.1761999412985;
        Sat, 01 Nov 2025 05:16:52 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IHwyu8iCMznl2jxRh8YLUHJ3p228bh0SCAtFEkItp6biokKqMXHyqxQIX3SdYCS4w5abwUMoA==
X-Received: by 2002:a05:6000:2f86:b0:3f0:2ab8:710f with SMTP id ffacd0b85a97d-429bd671cc6mr4920621f8f.8.1761999412492;
        Sat, 01 Nov 2025 05:16:52 -0700 (PDT)
Message-ID: <5368a371-10f5-40ce-9246-d8eeff52e654@redhat.com>
Date: Sat, 1 Nov 2025 13:16:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 05/12] mm: introduce CONFIG_ARCH_HAS_LAZY_MMU_MODE
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-6-kevin.brodsky@arm.com>
From: David Hildenbrand <david@redhat.com>
Autocrypt: addr=david@redhat.com; keydata=
 xsFNBFXLn5EBEAC+zYvAFJxCBY9Tr1xZgcESmxVNI/0ffzE/ZQOiHJl6mGkmA1R7/uUpiCjJ
 dBrn+lhhOYjjNefFQou6478faXE6o2AhmebqT4KiQoUQFV4R7y1KMEKoSyy8hQaK1umALTdL
 QZLQMzNE74ap+GDK0wnacPQFpcG1AE9RMq3aeErY5tujekBS32jfC/7AnH7I0v1v1TbbK3Gp
 XNeiN4QroO+5qaSr0ID2sz5jtBLRb15RMre27E1ImpaIv2Jw8NJgW0k/D1RyKCwaTsgRdwuK
 Kx/Y91XuSBdz0uOyU/S8kM1+ag0wvsGlpBVxRR/xw/E8M7TEwuCZQArqqTCmkG6HGcXFT0V9
 PXFNNgV5jXMQRwU0O/ztJIQqsE5LsUomE//bLwzj9IVsaQpKDqW6TAPjcdBDPLHvriq7kGjt
 WhVhdl0qEYB8lkBEU7V2Yb+SYhmhpDrti9Fq1EsmhiHSkxJcGREoMK/63r9WLZYI3+4W2rAc
 UucZa4OT27U5ZISjNg3Ev0rxU5UH2/pT4wJCfxwocmqaRr6UYmrtZmND89X0KigoFD/XSeVv
 jwBRNjPAubK9/k5NoRrYqztM9W6sJqrH8+UWZ1Idd/DdmogJh0gNC0+N42Za9yBRURfIdKSb
 B3JfpUqcWwE7vUaYrHG1nw54pLUoPG6sAA7Mehl3nd4pZUALHwARAQABzSREYXZpZCBIaWxk
 ZW5icmFuZCA8ZGF2aWRAcmVkaGF0LmNvbT7CwZoEEwEIAEQCGwMCF4ACGQEFCwkIBwICIgIG
 FQoJCAsCBBYCAwECHgcWIQQb2cqtc1xMOkYN/MpN3hD3AP+DWgUCaJzangUJJlgIpAAKCRBN
 3hD3AP+DWhAxD/9wcL0A+2rtaAmutaKTfxhTP0b4AAp1r/eLxjrbfbCCmh4pqzBhmSX/4z11
 opn2KqcOsueRF1t2ENLOWzQu3Roiny2HOU7DajqB4dm1BVMaXQya5ae2ghzlJN9SIoopTWlR
 0Af3hPj5E2PYvQhlcqeoehKlBo9rROJv/rjmr2x0yOM8qeTroH/ZzNlCtJ56AsE6Tvl+r7cW
 3x7/Jq5WvWeudKrhFh7/yQ7eRvHCjd9bBrZTlgAfiHmX9AnCCPRPpNGNedV9Yty2Jnxhfmbv
 Pw37LA/jef8zlCDyUh2KCU1xVEOWqg15o1RtTyGV1nXV2O/mfuQJud5vIgzBvHhypc3p6VZJ
 lEf8YmT+Ol5P7SfCs5/uGdWUYQEMqOlg6w9R4Pe8d+mk8KGvfE9/zTwGg0nRgKqlQXrWRERv
 cuEwQbridlPAoQHrFWtwpgYMXx2TaZ3sihcIPo9uU5eBs0rf4mOERY75SK+Ekayv2ucTfjxr
 Kf014py2aoRJHuvy85ee/zIyLmve5hngZTTe3Wg3TInT9UTFzTPhItam6dZ1xqdTGHZYGU0O
 otRHcwLGt470grdiob6PfVTXoHlBvkWRadMhSuG4RORCDpq89vu5QralFNIf3EysNohoFy2A
 LYg2/D53xbU/aa4DDzBb5b1Rkg/udO1gZocVQWrDh6I2K3+cCs7BTQRVy5+RARAA59fefSDR
 9nMGCb9LbMX+TFAoIQo/wgP5XPyzLYakO+94GrgfZjfhdaxPXMsl2+o8jhp/hlIzG56taNdt
 VZtPp3ih1AgbR8rHgXw1xwOpuAd5lE1qNd54ndHuADO9a9A0vPimIes78Hi1/yy+ZEEvRkHk
 /kDa6F3AtTc1m4rbbOk2fiKzzsE9YXweFjQvl9p+AMw6qd/iC4lUk9g0+FQXNdRs+o4o6Qvy
 iOQJfGQ4UcBuOy1IrkJrd8qq5jet1fcM2j4QvsW8CLDWZS1L7kZ5gT5EycMKxUWb8LuRjxzZ
 3QY1aQH2kkzn6acigU3HLtgFyV1gBNV44ehjgvJpRY2cC8VhanTx0dZ9mj1YKIky5N+C0f21
 zvntBqcxV0+3p8MrxRRcgEtDZNav+xAoT3G0W4SahAaUTWXpsZoOecwtxi74CyneQNPTDjNg
 azHmvpdBVEfj7k3p4dmJp5i0U66Onmf6mMFpArvBRSMOKU9DlAzMi4IvhiNWjKVaIE2Se9BY
 FdKVAJaZq85P2y20ZBd08ILnKcj7XKZkLU5FkoA0udEBvQ0f9QLNyyy3DZMCQWcwRuj1m73D
 sq8DEFBdZ5eEkj1dCyx+t/ga6x2rHyc8Sl86oK1tvAkwBNsfKou3v+jP/l14a7DGBvrmlYjO
 59o3t6inu6H7pt7OL6u6BQj7DoMAEQEAAcLBfAQYAQgAJgIbDBYhBBvZyq1zXEw6Rg38yk3e
 EPcA/4NaBQJonNqrBQkmWAihAAoJEE3eEPcA/4NaKtMQALAJ8PzprBEXbXcEXwDKQu+P/vts
 IfUb1UNMfMV76BicGa5NCZnJNQASDP/+bFg6O3gx5NbhHHPeaWz/VxlOmYHokHodOvtL0WCC
 8A5PEP8tOk6029Z+J+xUcMrJClNVFpzVvOpb1lCbhjwAV465Hy+NUSbbUiRxdzNQtLtgZzOV
 Zw7jxUCs4UUZLQTCuBpFgb15bBxYZ/BL9MbzxPxvfUQIPbnzQMcqtpUs21CMK2PdfCh5c4gS
 sDci6D5/ZIBw94UQWmGpM/O1ilGXde2ZzzGYl64glmccD8e87OnEgKnH3FbnJnT4iJchtSvx
 yJNi1+t0+qDti4m88+/9IuPqCKb6Stl+s2dnLtJNrjXBGJtsQG/sRpqsJz5x1/2nPJSRMsx9
 5YfqbdrJSOFXDzZ8/r82HgQEtUvlSXNaXCa95ez0UkOG7+bDm2b3s0XahBQeLVCH0mw3RAQg
 r7xDAYKIrAwfHHmMTnBQDPJwVqxJjVNr7yBic4yfzVWGCGNE4DnOW0vcIeoyhy9vnIa3w1uZ
 3iyY2Nsd7JxfKu1PRhCGwXzRw5TlfEsoRI7V9A8isUCoqE2Dzh3FvYHVeX4Us+bRL/oqareJ
 CIFqgYMyvHj7Q06kTKmauOe4Nf0l0qEkIuIzfoLJ3qr5UyXc2hLtWyT9Ir+lYlX9efqh7mOY
 qIws/H2t
In-Reply-To: <20251029100909.3381140-6-kevin.brodsky@arm.com>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: gigZsxy4vqhhYij82xXTXKrA4wnq-XypUlLSDAgHSrA_1761999413
X-Mimecast-Originator: redhat.com
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29.10.25 11:09, Kevin Brodsky wrote:
> Architectures currently opt in for implementing lazy_mmu helpers by
> defining __HAVE_ARCH_ENTER_LAZY_MMU_MODE.
> 
> In preparation for introducing a generic lazy_mmu layer that will
> require storage in task_struct, let's switch to a cleaner approach:
> instead of defining a macro, select a CONFIG option.
> 
> This patch introduces CONFIG_ARCH_HAS_LAZY_MMU_MODE and has each
> arch select it when it implements lazy_mmu helpers.
> __HAVE_ARCH_ENTER_LAZY_MMU_MODE is removed and <linux/pgtable.h>
> relies on the new CONFIG instead.
> 
> On x86, lazy_mmu helpers are only implemented if PARAVIRT_XXL is
> selected. This creates some complications in arch/x86/boot/, because
> a few files manually undefine PARAVIRT* options. As a result
> <asm/paravirt.h> does not define the lazy_mmu helpers, but this
> breaks the build as <linux/pgtable.h> only defines them if
> !CONFIG_ARCH_HAS_LAZY_MMU_MODE. There does not seem to be a clean
> way out of this - let's just undefine that new CONFIG too.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---

Acked-by: David Hildenbrand <david@redhat.com>

-- 
Cheers

David / dhildenb



From xen-devel-bounces@lists.xenproject.org Sat Nov 01 12:18:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 01 Nov 2025 12:18:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155040.1484649 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAYg-0003uS-Vd; Sat, 01 Nov 2025 12:18:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155040.1484649; Sat, 01 Nov 2025 12: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 1vFAYg-0003uL-SY; Sat, 01 Nov 2025 12:18:14 +0000
Received: by outflank-mailman (input) for mailman id 1155040;
 Sat, 01 Nov 2025 12: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=VYHd=5J=redhat.com=david@srs-se1.protection.inumbo.net>)
 id 1vFAYf-0003uE-4u
 for xen-devel@lists.xenproject.org; Sat, 01 Nov 2025 12:18:13 +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 d52f2c27-b71c-11f0-9d16-b5c5bf9af7f9;
 Sat, 01 Nov 2025 13:18:12 +0100 (CET)
Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com
 [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-147-M0jswWLOPqqYYD8AL3JWuQ-1; Sat, 01 Nov 2025 08:18:09 -0400
Received: by mail-wm1-f71.google.com with SMTP id
 5b1f17b1804b1-477124f7c00so16378365e9.1
 for <xen-devel@lists.xenproject.org>; Sat, 01 Nov 2025 05:18:09 -0700 (PDT)
Received: from ?IPV6:2003:d8:2f3f:4b00:ee13:8c22:5cc5:d169?
 (p200300d82f3f4b00ee138c225cc5d169.dip0.t-ipconnect.de.
 [2003:d8:2f3f:4b00:ee13:8c22:5cc5:d169])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4773c53ec2csm45855895e9.11.2025.11.01.05.18.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 01 Nov 2025 05:18:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d52f2c27-b71c-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1761999491;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=nakH/PvmVEC4FueXBEYiavMVStVvZPPhZqsGXFef+TU=;
	b=Gmyek10jlrx6Q8ozH7KMs213EE5JBRMus7S8X2g+ghkEYrU0ujMTAD159e6Z8zlhsNonkz
	8YTYOCfIeAw1hA408J+5U0p4HDjGoIcQPG5gxzMfGkOgzRm+oizsoT/N7opc599rxDo3mg
	5wMO7VYIqMKDygfOLgFCpZSZrXd2LKs=
X-MC-Unique: M0jswWLOPqqYYD8AL3JWuQ-1
X-Mimecast-MFC-AGG-ID: M0jswWLOPqqYYD8AL3JWuQ_1761999488
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1761999488; x=1762604288;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=nakH/PvmVEC4FueXBEYiavMVStVvZPPhZqsGXFef+TU=;
        b=CYoD7tlKXj5VS4E48GfXRe+XhAttlIWkt8ku18GhDe7PUelryMliyFcOnJEEsvAlxA
         4RH0HI2khMAQxyV7Vej2Pua93wqV5hnSg9DqSDBX+/rtlpjjDb19AGCLh8Yd9lwx3vmK
         s8HPR20E28V+5fdH8SDe2NbuW6zMlzFwqsjeVxQHvJhn+ITTv5XEMhBgMXMSN0aUHsZr
         NGDk7UlMZdH/6dFbTch0smxePhDnA3+dMaPW8vOe1tC3CmzEGemgSu6svpzVCMSf7nGm
         iQzsywtdBNlqtDc0On7lmv9GgvNSZWaN6vdNhOi2eUxRcw/N5rnzGrCKGU7EH9TdEKdL
         BMfw==
X-Forwarded-Encrypted: i=1; AJvYcCUHkWnL9NBIRdafZRDt07Je00axu6Xu9E43jfi0TmqGR7gFQuaYVkQ8RDaEYkL6fDioBl49eoQDMNI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx51bhhO5WMuZ4IlkV2UoWvNKOnTyIdKqYHezoL7eNlwzzSYxWM
	9X0oie/SZY7e/g8TppP4RivUeZOS3Icu9G5MKJqmLEp3PU7Pcv7VfytcFLi9pCri2gKSIxqYHur
	S1hm9VX4gluPeHQKMplI5iHmNd8lTDbtfPJvQ41zeeif3qtrJ8tjuxz7giUxQXgfNd2di
X-Gm-Gg: ASbGncve3/c5gNnxdbVT71euop3MIUNEv/VtTIfpo7Xw9qQOprthp4uZWARqqBQq1Dm
	gGChPafymA132BCj4lAmRVvYsJH5O1Z+/rfvZdPz3rTORRWlUUx7ASpG9dnMStgaZdaKhSu5yBT
	XuAmCwGS8ok368tNWzA1wyt8lHzVBeeICjemkTAjjMKFOA1fdCk6yse/5Hohus4cRZYKekn9Yxs
	PtYXKRrFuZBUEf2X+va2bwM3WXWDtlZw2spNL2XVXK51QheTKtsO3YYlq9cYXWw9JeWK2vyEAci
	Pim2R+yt21zzZfM5fw9YCFROBABq6+I8GH1uwm4fn7XnccmapPIVbNIqh/JWhTlfjmi9umYi//F
	IiqJVp7QVB6y6QFWoGiEvYig+ZyLEB/irdHaPY8cCjc0cHzbyCbu/cn/YwS2D/hIiV3LjqX+8Hm
	yV8VrC79vLeep3JCaNRD1XHSrumcs=
X-Received: by 2002:a05:600c:1d9b:b0:46d:996b:826a with SMTP id 5b1f17b1804b1-477308c8b64mr64006255e9.36.1761999488362;
        Sat, 01 Nov 2025 05:18:08 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IEYuiv87iZ7G8foU4ArwULKDJw8Idy7HTvUTtsGo13HOjZ3TpQsscDerygyrVDH0/hBtY+XhQ==
X-Received: by 2002:a05:600c:1d9b:b0:46d:996b:826a with SMTP id 5b1f17b1804b1-477308c8b64mr64006055e9.36.1761999487959;
        Sat, 01 Nov 2025 05:18:07 -0700 (PDT)
Message-ID: <8f3596e9-fe40-4591-946d-65e849955a2f@redhat.com>
Date: Sat, 1 Nov 2025 13:18:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 06/12] mm: introduce generic lazy_mmu helpers
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-7-kevin.brodsky@arm.com>
From: David Hildenbrand <david@redhat.com>
Autocrypt: addr=david@redhat.com; keydata=
 xsFNBFXLn5EBEAC+zYvAFJxCBY9Tr1xZgcESmxVNI/0ffzE/ZQOiHJl6mGkmA1R7/uUpiCjJ
 dBrn+lhhOYjjNefFQou6478faXE6o2AhmebqT4KiQoUQFV4R7y1KMEKoSyy8hQaK1umALTdL
 QZLQMzNE74ap+GDK0wnacPQFpcG1AE9RMq3aeErY5tujekBS32jfC/7AnH7I0v1v1TbbK3Gp
 XNeiN4QroO+5qaSr0ID2sz5jtBLRb15RMre27E1ImpaIv2Jw8NJgW0k/D1RyKCwaTsgRdwuK
 Kx/Y91XuSBdz0uOyU/S8kM1+ag0wvsGlpBVxRR/xw/E8M7TEwuCZQArqqTCmkG6HGcXFT0V9
 PXFNNgV5jXMQRwU0O/ztJIQqsE5LsUomE//bLwzj9IVsaQpKDqW6TAPjcdBDPLHvriq7kGjt
 WhVhdl0qEYB8lkBEU7V2Yb+SYhmhpDrti9Fq1EsmhiHSkxJcGREoMK/63r9WLZYI3+4W2rAc
 UucZa4OT27U5ZISjNg3Ev0rxU5UH2/pT4wJCfxwocmqaRr6UYmrtZmND89X0KigoFD/XSeVv
 jwBRNjPAubK9/k5NoRrYqztM9W6sJqrH8+UWZ1Idd/DdmogJh0gNC0+N42Za9yBRURfIdKSb
 B3JfpUqcWwE7vUaYrHG1nw54pLUoPG6sAA7Mehl3nd4pZUALHwARAQABzSREYXZpZCBIaWxk
 ZW5icmFuZCA8ZGF2aWRAcmVkaGF0LmNvbT7CwZoEEwEIAEQCGwMCF4ACGQEFCwkIBwICIgIG
 FQoJCAsCBBYCAwECHgcWIQQb2cqtc1xMOkYN/MpN3hD3AP+DWgUCaJzangUJJlgIpAAKCRBN
 3hD3AP+DWhAxD/9wcL0A+2rtaAmutaKTfxhTP0b4AAp1r/eLxjrbfbCCmh4pqzBhmSX/4z11
 opn2KqcOsueRF1t2ENLOWzQu3Roiny2HOU7DajqB4dm1BVMaXQya5ae2ghzlJN9SIoopTWlR
 0Af3hPj5E2PYvQhlcqeoehKlBo9rROJv/rjmr2x0yOM8qeTroH/ZzNlCtJ56AsE6Tvl+r7cW
 3x7/Jq5WvWeudKrhFh7/yQ7eRvHCjd9bBrZTlgAfiHmX9AnCCPRPpNGNedV9Yty2Jnxhfmbv
 Pw37LA/jef8zlCDyUh2KCU1xVEOWqg15o1RtTyGV1nXV2O/mfuQJud5vIgzBvHhypc3p6VZJ
 lEf8YmT+Ol5P7SfCs5/uGdWUYQEMqOlg6w9R4Pe8d+mk8KGvfE9/zTwGg0nRgKqlQXrWRERv
 cuEwQbridlPAoQHrFWtwpgYMXx2TaZ3sihcIPo9uU5eBs0rf4mOERY75SK+Ekayv2ucTfjxr
 Kf014py2aoRJHuvy85ee/zIyLmve5hngZTTe3Wg3TInT9UTFzTPhItam6dZ1xqdTGHZYGU0O
 otRHcwLGt470grdiob6PfVTXoHlBvkWRadMhSuG4RORCDpq89vu5QralFNIf3EysNohoFy2A
 LYg2/D53xbU/aa4DDzBb5b1Rkg/udO1gZocVQWrDh6I2K3+cCs7BTQRVy5+RARAA59fefSDR
 9nMGCb9LbMX+TFAoIQo/wgP5XPyzLYakO+94GrgfZjfhdaxPXMsl2+o8jhp/hlIzG56taNdt
 VZtPp3ih1AgbR8rHgXw1xwOpuAd5lE1qNd54ndHuADO9a9A0vPimIes78Hi1/yy+ZEEvRkHk
 /kDa6F3AtTc1m4rbbOk2fiKzzsE9YXweFjQvl9p+AMw6qd/iC4lUk9g0+FQXNdRs+o4o6Qvy
 iOQJfGQ4UcBuOy1IrkJrd8qq5jet1fcM2j4QvsW8CLDWZS1L7kZ5gT5EycMKxUWb8LuRjxzZ
 3QY1aQH2kkzn6acigU3HLtgFyV1gBNV44ehjgvJpRY2cC8VhanTx0dZ9mj1YKIky5N+C0f21
 zvntBqcxV0+3p8MrxRRcgEtDZNav+xAoT3G0W4SahAaUTWXpsZoOecwtxi74CyneQNPTDjNg
 azHmvpdBVEfj7k3p4dmJp5i0U66Onmf6mMFpArvBRSMOKU9DlAzMi4IvhiNWjKVaIE2Se9BY
 FdKVAJaZq85P2y20ZBd08ILnKcj7XKZkLU5FkoA0udEBvQ0f9QLNyyy3DZMCQWcwRuj1m73D
 sq8DEFBdZ5eEkj1dCyx+t/ga6x2rHyc8Sl86oK1tvAkwBNsfKou3v+jP/l14a7DGBvrmlYjO
 59o3t6inu6H7pt7OL6u6BQj7DoMAEQEAAcLBfAQYAQgAJgIbDBYhBBvZyq1zXEw6Rg38yk3e
 EPcA/4NaBQJonNqrBQkmWAihAAoJEE3eEPcA/4NaKtMQALAJ8PzprBEXbXcEXwDKQu+P/vts
 IfUb1UNMfMV76BicGa5NCZnJNQASDP/+bFg6O3gx5NbhHHPeaWz/VxlOmYHokHodOvtL0WCC
 8A5PEP8tOk6029Z+J+xUcMrJClNVFpzVvOpb1lCbhjwAV465Hy+NUSbbUiRxdzNQtLtgZzOV
 Zw7jxUCs4UUZLQTCuBpFgb15bBxYZ/BL9MbzxPxvfUQIPbnzQMcqtpUs21CMK2PdfCh5c4gS
 sDci6D5/ZIBw94UQWmGpM/O1ilGXde2ZzzGYl64glmccD8e87OnEgKnH3FbnJnT4iJchtSvx
 yJNi1+t0+qDti4m88+/9IuPqCKb6Stl+s2dnLtJNrjXBGJtsQG/sRpqsJz5x1/2nPJSRMsx9
 5YfqbdrJSOFXDzZ8/r82HgQEtUvlSXNaXCa95ez0UkOG7+bDm2b3s0XahBQeLVCH0mw3RAQg
 r7xDAYKIrAwfHHmMTnBQDPJwVqxJjVNr7yBic4yfzVWGCGNE4DnOW0vcIeoyhy9vnIa3w1uZ
 3iyY2Nsd7JxfKu1PRhCGwXzRw5TlfEsoRI7V9A8isUCoqE2Dzh3FvYHVeX4Us+bRL/oqareJ
 CIFqgYMyvHj7Q06kTKmauOe4Nf0l0qEkIuIzfoLJ3qr5UyXc2hLtWyT9Ir+lYlX9efqh7mOY
 qIws/H2t
In-Reply-To: <20251029100909.3381140-7-kevin.brodsky@arm.com>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: ItQVQHam5npRIdfPddxaQRhEJr2AeqWL8HzQgW9JrJI_1761999488
X-Mimecast-Originator: redhat.com
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29.10.25 11:09, Kevin Brodsky wrote:
> The implementation of the lazy MMU mode is currently entirely
> arch-specific; core code directly calls arch helpers:
> arch_{enter,leave}_lazy_mmu_mode().
> 
> We are about to introduce support for nested lazy MMU sections.
> As things stand we'd have to duplicate that logic in every arch
> implementing lazy_mmu - adding to a fair amount of logic
> already duplicated across lazy_mmu implementations.
> 
> This patch therefore introduces a new generic layer that calls the
> existing arch_* helpers. Two pair of calls are introduced:
> 
> * lazy_mmu_mode_enable() ... lazy_mmu_mode_disable()
>      This is the standard case where the mode is enabled for a given
>      block of code by surrounding it with enable() and disable()
>      calls.
> 
> * lazy_mmu_mode_pause() ... lazy_mmu_mode_resume()
>      This is for situations where the mode is temporarily disabled
>      by first calling pause() and then resume() (e.g. to prevent any
>      batching from occurring in a critical section).
> 
> The documentation in <linux/pgtable.h> will be updated in a
> subsequent patch.
> 
> No functional change should be introduced at this stage.
> The implementation of enable()/resume() and disable()/pause() is
> currently identical, but nesting support will change that.
> 
> Most of the call sites have been updated using the following
> Coccinelle script:
> 
> @@
> @@
> {
> ...
> - arch_enter_lazy_mmu_mode();
> + lazy_mmu_mode_enable();
> ...
> - arch_leave_lazy_mmu_mode();
> + lazy_mmu_mode_disable();
> ...
> }
> 
> @@
> @@
> {
> ...
> - arch_leave_lazy_mmu_mode();
> + lazy_mmu_mode_pause();
> ...
> - arch_enter_lazy_mmu_mode();
> + lazy_mmu_mode_resume();
> ...
> }
> 
> A couple of notes regarding x86:
> 
> * Xen is currently the only case where explicit handling is required
>    for lazy MMU when context-switching. This is purely an
>    implementation detail and using the generic lazy_mmu_mode_*
>    functions would cause trouble when nesting support is introduced,
>    because the generic functions must be called from the current task.
>    For that reason we still use arch_leave() and arch_enter() there.
> 
> * x86 calls arch_flush_lazy_mmu_mode() unconditionally in a few
>    places, but only defines it if PARAVIRT_XXL is selected, and we
>    are removing the fallback in <linux/pgtable.h>. Add a new fallback
>    definition to <asm/pgtable.h> to keep things building.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---

Acked-by: David Hildenbrand <david@redhat.com>

-- 
Cheers

David / dhildenb



From xen-devel-bounces@lists.xenproject.org Sat Nov 01 12:23:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 01 Nov 2025 12:23:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155053.1484658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAdD-0005Wr-KI; Sat, 01 Nov 2025 12:22:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155053.1484658; Sat, 01 Nov 2025 12:22:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFAdD-0005Wk-He; Sat, 01 Nov 2025 12:22:55 +0000
Received: by outflank-mailman (input) for mailman id 1155053;
 Sat, 01 Nov 2025 12:22: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=VYHd=5J=redhat.com=david@srs-se1.protection.inumbo.net>)
 id 1vFAdC-0005We-6U
 for xen-devel@lists.xenproject.org; Sat, 01 Nov 2025 12:22:54 +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 7bc11e98-b71d-11f0-980a-7dc792cee155;
 Sat, 01 Nov 2025 13:22:51 +0100 (CET)
Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com
 [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-370-VZV7Cif1P6-RNVG7fyOP5A-1; Sat, 01 Nov 2025 08:22:47 -0400
Received: by mail-wr1-f71.google.com with SMTP id
 ffacd0b85a97d-42855d6875fso2317768f8f.3
 for <xen-devel@lists.xenproject.org>; Sat, 01 Nov 2025 05:22:47 -0700 (PDT)
Received: from ?IPV6:2003:d8:2f3f:4b00:ee13:8c22:5cc5:d169?
 (p200300d82f3f4b00ee138c225cc5d169.dip0.t-ipconnect.de.
 [2003:d8:2f3f:4b00:ee13:8c22:5cc5:d169])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-429c110037asm9461926f8f.3.2025.11.01.05.22.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 01 Nov 2025 05:22:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7bc11e98-b71d-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1761999770;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=iR1r/3xhU7MVcJwVYZUltUXo3c7eUSFIQ+pGKdoQg2M=;
	b=h1TsCHdfHNbbWJNllLpXnvY3sZ6viEZyBQ8eDdUeAZizsyA87pYajXmGxYVEQW2Za6C0Q3
	ypVvNb/xyu+oL0fogETvX3PULdrqXQVz75Ctn4JmVqmDAQtDGGdRt9Dq+/z9gnK6YD/raZ
	7D3wojThoJjzlpbZqmG73V8mMw39n2E=
X-MC-Unique: VZV7Cif1P6-RNVG7fyOP5A-1
X-Mimecast-MFC-AGG-ID: VZV7Cif1P6-RNVG7fyOP5A_1761999766
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1761999766; x=1762604566;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=iR1r/3xhU7MVcJwVYZUltUXo3c7eUSFIQ+pGKdoQg2M=;
        b=KNZ18/3/Z4D2hAUOpBcxuoqwN6dNBzWqfWaWMwM9kK/vnfFHKmSySPQr+jgeUnrIT1
         GU67IXWnGiDKoee61hjKYamxJZSkys1V2NKIzYG2IYW9GXaZUJzBnaOig7dei62H86UN
         zM8M2kMWJUgeNzMfID3Wo8ajS3oz7Ae4UqxxD5OHzgp59Fv0EojT5Gcf9X/NoUWKKHFM
         Oz3A3gvubsvsvygELZEMzGJY5qhf3SQwWOGTbCCjCSwRM8YsRMU/C3/lkL5fOkaBiYB4
         nsIv5RVl3WT69L0hIc4zfwCzlhXswf8/jxXDpQ0E5/S326nbPk8Bx4aK0tsANq/B9u+t
         McqA==
X-Forwarded-Encrypted: i=1; AJvYcCWE6DgW6HbVW+bBAuIlDnB317qTVf4y2mL5oOXUOmu5PSZRmO2pBqdQ+Ff4Ce8F3UDS9YJlAIZLUIU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyCo9UiBQxIIqbpj1T2xspHa/m/QZCNRzkW3T7LiI8p98MNQ21i
	JK120W1hc+3ReWCKN+FjlxGwKPl/EgUmhWz32xGFF44pV6Km86QD5xh8CmnFcQEpsqhNmC4Q+/K
	vmMuVB3ZOdfc2tXc1IiieFDNp2jLtMFOiZhdezAt1uKkOoHfKWHCHdx5BsIJsYS/ldZKK
X-Gm-Gg: ASbGncsJ1VKXkQFtzkB+GvYemUu26S45DzXd6tgghK9A7aSLn1y1TBje9EtJ3Mx1YcG
	6d/16szaJ9vO+FfnEwROqYiGq7y2XKuKWS0SzJJvI7+DptlJgYHRAwY+UBw8Tb+TIjDOkZbRBn3
	9fPehz3euAdIbCkF+SrzYZnMOmqQKv4ASwDH43FeyV6N7HG8O7eG87CVFYaoMElcV3QEN+VtcNM
	Xk4tILy9MmLpP9pVkbDjCd3Q+XlOLicdMgxZfceZGejT5/UihkFUiVdXsCiT4PMVv6+Wvp49Ig/
	QTFBkISZt+LHVVfa+TEdjlpnlBmRsBHRFI5bkMVx2QEDkrgP2jUSb0Uxa0AaURizpHulJecaNzl
	F6WxchJATPXDEAPxB8CjRMlNhI3OGYN8BeKJM0pzMbiQOsWdy1tzqNDF0i4ZMModlv2wubDVmEs
	TAvLNB9huTBEKk/yFsWcOBmxqfnVo=
X-Received: by 2002:a05:6000:2f86:b0:429:8daa:c6b4 with SMTP id ffacd0b85a97d-429bd6860d5mr4833021f8f.21.1761999765978;
        Sat, 01 Nov 2025 05:22:45 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IFJ+TTH/VeYpEYhd62jH/WbFLaTQZ/6xytSCDTH7QTl8AfN9d4nyTXPMxG2nY+bN2wOvpiPqw==
X-Received: by 2002:a05:6000:2f86:b0:429:8daa:c6b4 with SMTP id ffacd0b85a97d-429bd6860d5mr4832980f8f.21.1761999765533;
        Sat, 01 Nov 2025 05:22:45 -0700 (PDT)
Message-ID: <ae1236da-2647-4d53-bf4d-ff8fc32eb734@redhat.com>
Date: Sat, 1 Nov 2025 13:22:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/12] mm: enable lazy_mmu sections to nest
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-8-kevin.brodsky@arm.com>
From: David Hildenbrand <david@redhat.com>
Autocrypt: addr=david@redhat.com; keydata=
 xsFNBFXLn5EBEAC+zYvAFJxCBY9Tr1xZgcESmxVNI/0ffzE/ZQOiHJl6mGkmA1R7/uUpiCjJ
 dBrn+lhhOYjjNefFQou6478faXE6o2AhmebqT4KiQoUQFV4R7y1KMEKoSyy8hQaK1umALTdL
 QZLQMzNE74ap+GDK0wnacPQFpcG1AE9RMq3aeErY5tujekBS32jfC/7AnH7I0v1v1TbbK3Gp
 XNeiN4QroO+5qaSr0ID2sz5jtBLRb15RMre27E1ImpaIv2Jw8NJgW0k/D1RyKCwaTsgRdwuK
 Kx/Y91XuSBdz0uOyU/S8kM1+ag0wvsGlpBVxRR/xw/E8M7TEwuCZQArqqTCmkG6HGcXFT0V9
 PXFNNgV5jXMQRwU0O/ztJIQqsE5LsUomE//bLwzj9IVsaQpKDqW6TAPjcdBDPLHvriq7kGjt
 WhVhdl0qEYB8lkBEU7V2Yb+SYhmhpDrti9Fq1EsmhiHSkxJcGREoMK/63r9WLZYI3+4W2rAc
 UucZa4OT27U5ZISjNg3Ev0rxU5UH2/pT4wJCfxwocmqaRr6UYmrtZmND89X0KigoFD/XSeVv
 jwBRNjPAubK9/k5NoRrYqztM9W6sJqrH8+UWZ1Idd/DdmogJh0gNC0+N42Za9yBRURfIdKSb
 B3JfpUqcWwE7vUaYrHG1nw54pLUoPG6sAA7Mehl3nd4pZUALHwARAQABzSREYXZpZCBIaWxk
 ZW5icmFuZCA8ZGF2aWRAcmVkaGF0LmNvbT7CwZoEEwEIAEQCGwMCF4ACGQEFCwkIBwICIgIG
 FQoJCAsCBBYCAwECHgcWIQQb2cqtc1xMOkYN/MpN3hD3AP+DWgUCaJzangUJJlgIpAAKCRBN
 3hD3AP+DWhAxD/9wcL0A+2rtaAmutaKTfxhTP0b4AAp1r/eLxjrbfbCCmh4pqzBhmSX/4z11
 opn2KqcOsueRF1t2ENLOWzQu3Roiny2HOU7DajqB4dm1BVMaXQya5ae2ghzlJN9SIoopTWlR
 0Af3hPj5E2PYvQhlcqeoehKlBo9rROJv/rjmr2x0yOM8qeTroH/ZzNlCtJ56AsE6Tvl+r7cW
 3x7/Jq5WvWeudKrhFh7/yQ7eRvHCjd9bBrZTlgAfiHmX9AnCCPRPpNGNedV9Yty2Jnxhfmbv
 Pw37LA/jef8zlCDyUh2KCU1xVEOWqg15o1RtTyGV1nXV2O/mfuQJud5vIgzBvHhypc3p6VZJ
 lEf8YmT+Ol5P7SfCs5/uGdWUYQEMqOlg6w9R4Pe8d+mk8KGvfE9/zTwGg0nRgKqlQXrWRERv
 cuEwQbridlPAoQHrFWtwpgYMXx2TaZ3sihcIPo9uU5eBs0rf4mOERY75SK+Ekayv2ucTfjxr
 Kf014py2aoRJHuvy85ee/zIyLmve5hngZTTe3Wg3TInT9UTFzTPhItam6dZ1xqdTGHZYGU0O
 otRHcwLGt470grdiob6PfVTXoHlBvkWRadMhSuG4RORCDpq89vu5QralFNIf3EysNohoFy2A
 LYg2/D53xbU/aa4DDzBb5b1Rkg/udO1gZocVQWrDh6I2K3+cCs7BTQRVy5+RARAA59fefSDR
 9nMGCb9LbMX+TFAoIQo/wgP5XPyzLYakO+94GrgfZjfhdaxPXMsl2+o8jhp/hlIzG56taNdt
 VZtPp3ih1AgbR8rHgXw1xwOpuAd5lE1qNd54ndHuADO9a9A0vPimIes78Hi1/yy+ZEEvRkHk
 /kDa6F3AtTc1m4rbbOk2fiKzzsE9YXweFjQvl9p+AMw6qd/iC4lUk9g0+FQXNdRs+o4o6Qvy
 iOQJfGQ4UcBuOy1IrkJrd8qq5jet1fcM2j4QvsW8CLDWZS1L7kZ5gT5EycMKxUWb8LuRjxzZ
 3QY1aQH2kkzn6acigU3HLtgFyV1gBNV44ehjgvJpRY2cC8VhanTx0dZ9mj1YKIky5N+C0f21
 zvntBqcxV0+3p8MrxRRcgEtDZNav+xAoT3G0W4SahAaUTWXpsZoOecwtxi74CyneQNPTDjNg
 azHmvpdBVEfj7k3p4dmJp5i0U66Onmf6mMFpArvBRSMOKU9DlAzMi4IvhiNWjKVaIE2Se9BY
 FdKVAJaZq85P2y20ZBd08ILnKcj7XKZkLU5FkoA0udEBvQ0f9QLNyyy3DZMCQWcwRuj1m73D
 sq8DEFBdZ5eEkj1dCyx+t/ga6x2rHyc8Sl86oK1tvAkwBNsfKou3v+jP/l14a7DGBvrmlYjO
 59o3t6inu6H7pt7OL6u6BQj7DoMAEQEAAcLBfAQYAQgAJgIbDBYhBBvZyq1zXEw6Rg38yk3e
 EPcA/4NaBQJonNqrBQkmWAihAAoJEE3eEPcA/4NaKtMQALAJ8PzprBEXbXcEXwDKQu+P/vts
 IfUb1UNMfMV76BicGa5NCZnJNQASDP/+bFg6O3gx5NbhHHPeaWz/VxlOmYHokHodOvtL0WCC
 8A5PEP8tOk6029Z+J+xUcMrJClNVFpzVvOpb1lCbhjwAV465Hy+NUSbbUiRxdzNQtLtgZzOV
 Zw7jxUCs4UUZLQTCuBpFgb15bBxYZ/BL9MbzxPxvfUQIPbnzQMcqtpUs21CMK2PdfCh5c4gS
 sDci6D5/ZIBw94UQWmGpM/O1ilGXde2ZzzGYl64glmccD8e87OnEgKnH3FbnJnT4iJchtSvx
 yJNi1+t0+qDti4m88+/9IuPqCKb6Stl+s2dnLtJNrjXBGJtsQG/sRpqsJz5x1/2nPJSRMsx9
 5YfqbdrJSOFXDzZ8/r82HgQEtUvlSXNaXCa95ez0UkOG7+bDm2b3s0XahBQeLVCH0mw3RAQg
 r7xDAYKIrAwfHHmMTnBQDPJwVqxJjVNr7yBic4yfzVWGCGNE4DnOW0vcIeoyhy9vnIa3w1uZ
 3iyY2Nsd7JxfKu1PRhCGwXzRw5TlfEsoRI7V9A8isUCoqE2Dzh3FvYHVeX4Us+bRL/oqareJ
 CIFqgYMyvHj7Q06kTKmauOe4Nf0l0qEkIuIzfoLJ3qr5UyXc2hLtWyT9Ir+lYlX9efqh7mOY
 qIws/H2t
In-Reply-To: <20251029100909.3381140-8-kevin.brodsky@arm.com>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: la1xJiisjadv-gB5TaWGW0VUmtGCVx7YMltVh1TK0_4_1761999766
X-Mimecast-Originator: redhat.com
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


>   static inline void lazy_mmu_mode_pause(void)
>   {
> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
> +
> +	VM_WARN_ON(state->nesting_level == 0 || !state->active);
> +
> +	state->active = false;
>   	arch_leave_lazy_mmu_mode();

Just one question:

Don't we want to allow for pause/resume when not enabled? Would seem 
valid to me, because pause/resume code should actually not worry about 
that, right?

if (!state->nesting_level) {
	VM_WARN_ON(state->active);
	return;
}
VM_WARN_ON(!state->active);
state->active = false;
arch_leave_lazy_mmu_mode();

-- 
Cheers

David / dhildenb



From xen-devel-bounces@lists.xenproject.org Sat Nov 01 17:21:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 01 Nov 2025 17:21:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155084.1484668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFFHh-0003Yx-PB; Sat, 01 Nov 2025 17:21:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155084.1484668; Sat, 01 Nov 2025 17:21:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFFHh-0003Yq-Ma; Sat, 01 Nov 2025 17:21:01 +0000
Received: by outflank-mailman (input) for mailman id 1155084;
 Sat, 01 Nov 2025 17:21:00 +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 1vFFHg-0003Yk-Hn
 for xen-devel@lists.xenproject.org; Sat, 01 Nov 2025 17:21:00 +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 1vFFHe-00Djx9-18;
 Sat, 01 Nov 2025 17:20:58 +0000
Received: from [2a02:8012:3a1:0:2858:32e7:18b8:3bf]
 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 1vFFHe-003gFL-0z;
 Sat, 01 Nov 2025 17:20: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>
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=ppN5spUnByiaotRnYsiz8W6Po7g08zwtVOPW0Jfjhdw=; b=PwyZPdIWhstUE0kXJZ0NnOJYAm
	OJgXa+FFgTB7Znv5YKPDqmuyyepIAJycqomc5Jkxrrbb3Ctb8BwogMK4SAlWvmqUNSrDt1gIzqL8Y
	3xV0+qehYL7DI7HPQ5n2lQw0wL25r0gski4nxRhp8JVrO/+x+nNgCtZzkRzRG3H56QxY=;
Message-ID: <29c554de-2429-4c2e-bf87-a0e32fa461e0@xen.org>
Date: Sat, 1 Nov 2025 17:20:56 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Limitations for Running Xen on KVM Arm64
Content-Language: en-GB
To: Mohamed Mediouni <mohamed@unpredictable.fr>
Cc: haseeb.ashraf@siemens.com,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Volodymyr_Babchuk@epam.com" <Volodymyr_Babchuk@epam.com>
References: <KL1PR0601MB4588D25A95D680640A80F2CAE6FBA@KL1PR0601MB4588.apcprd06.prod.outlook.com>
 <KL1PR0601MB45885505ECBBE9262C2B25E0E6FBA@KL1PR0601MB4588.apcprd06.prod.outlook.com>
 <FC5C66FD-8554-4F46-8546-B27DE76C8EEF@unpredictable.fr>
 <2b00a98f-6fee-4341-92bd-25909ebb6e36@xen.org>
 <CA753BD2-31FA-480D-B32A-2125F0F4981D@unpredictable.fr>
 <fc181349-d743-4ef0-bcd2-01c04d2a463e@xen.org>
 <0C76C261-783D-4503-B929-4B48CDEC8841@unpredictable.fr>
From: Julien Grall <julien@xen.org>
In-Reply-To: <0C76C261-783D-4503-B929-4B48CDEC8841@unpredictable.fr>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 31/10/2025 11:54, Mohamed Mediouni wrote:
>> Per the Arm Arm each CPU have their own private TLBs. So we have to flush between vCPU of the same domains to avoid translations from vCPU 1 to "leak" to the vCPU 2 (they may have confliected page-tables).
> Hmâ€¦ it varies on whether the VM uses CnP or not (and whether the HW supports it)â€¦ (Linux doesâ€¦)

Skimming through the Arm Arm, it seems that CnP is a per page-table/ASID 
decision. So I think it would be difficult to take advantage of this 
knowlege in Xen unless we start trapping access to TTBRn_EL1 which is 
likely going to be expensive.

Obviously, if someone trusts and knows their VM then they could rely
on it. But that's not something I would want to accept in upstream
Xen at the moment.

>> KVM has a similar logic see "last_vcpu_ran" and "__kvm_flush_cpu_context()". That said... they are using "vmalle1" whereas we are using "vmalls12e1". So maybe we can relax it. Not sure if this would make any difference for the performance though.
> vmalle1 avoids the problem here (because it only invalidates stage-1 translations).

I saw Haseeb provided some good numbers. I think switching to vmalle1 is 
a no brainer.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sat Nov 01 18:23:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 01 Nov 2025 18:23:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155098.1484679 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFGGO-0002Ue-8d; Sat, 01 Nov 2025 18:23:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155098.1484679; Sat, 01 Nov 2025 18:23:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFGGO-0002UX-57; Sat, 01 Nov 2025 18:23:44 +0000
Received: by outflank-mailman (input) for mailman id 1155098;
 Sat, 01 Nov 2025 18:23:42 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vFGGM-0002UR-7F
 for xen-devel@lists.xenproject.org; Sat, 01 Nov 2025 18:23:42 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vFGGL-00Dl6m-1y;
 Sat, 01 Nov 2025 18:23:41 +0000
Received: from [2a02:8012:3a1:0:2858:32e7:18b8:3bf]
 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 1vFGGL-003mhD-1N;
 Sat, 01 Nov 2025 18:23:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=TMRuXbgCggR1YF7VDFbDu3l75eX6Jr1Ik5R/Hf++jQ4=; b=G0ONpZW4Fhp+1XNTf5IFb+MzDa
	abeAfBPv3cQUb2MeBA0JDL40U/lyF0AsbeJD1Fnjp7wvIoCoHobTIPKIQ9fISNF80aKhs/G/qsV2R
	rKevz14GpcJLUXCGyd7TFtGJBfSbx8TksHRZEl1J18PhYj4wfQLYm91kSTKmOvQx2zgc=;
Message-ID: <01527182-ccef-43a5-be55-a5450eb7919f@xen.org>
Date: Sat, 1 Nov 2025 18:23:38 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Limitations for Running Xen on KVM Arm64
Content-Language: en-GB
To: "haseeb.ashraf@siemens.com" <haseeb.ashraf@siemens.com>,
 Mohamed Mediouni <mohamed@unpredictable.fr>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Volodymyr_Babchuk@epam.com" <Volodymyr_Babchuk@epam.com>,
 "Driscoll, Dan" <dan.driscoll@siemens.com>,
 "Bachtel, Andrew" <andrew.bachtel@siemens.com>,
 "fahad.arslan@siemens.com" <fahad.arslan@siemens.com>,
 "noor.ahsan@siemens.com" <noor.ahsan@siemens.com>,
 "brian.sheppard@siemens.com" <brian.sheppard@siemens.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <KL1PR0601MB4588D25A95D680640A80F2CAE6FBA@KL1PR0601MB4588.apcprd06.prod.outlook.com>
 <KL1PR0601MB45885505ECBBE9262C2B25E0E6FBA@KL1PR0601MB4588.apcprd06.prod.outlook.com>
 <FC5C66FD-8554-4F46-8546-B27DE76C8EEF@unpredictable.fr>
 <2b00a98f-6fee-4341-92bd-25909ebb6e36@xen.org>
 <CA753BD2-31FA-480D-B32A-2125F0F4981D@unpredictable.fr>
 <fc181349-d743-4ef0-bcd2-01c04d2a463e@xen.org>
 <TYZPR06MB4580126B98C6A38AA710F597E6F8A@TYZPR06MB4580.apcprd06.prod.outlook.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <TYZPR06MB4580126B98C6A38AA710F597E6F8A@TYZPR06MB4580.apcprd06.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

(+ the other Arm maintainers)

On 31/10/2025 13:01, haseeb.ashraf@siemens.com wrote:
> Hello,

Hi,

Before answering to the rest, would you be able to configure your e-mail 
client to quote with '>' and avoid top-posting? Otherwise, it will 
become quite difficult to follow the conversation after a few round.

> I have seen no such performance issue with nested KVM. For Xen, if this 
> can be relaxed from |vmalls12e1| to |vmalle1|, this would still be a 
> huge performanceÂ improvement. I used Ftrace to get execution time of 
> each of these handler functions:
> handle_vmalls12e1is()Â min-max =Â 1464441 - 9495486 us

To clarify, Xen is using the local TLB version. So it should be 
vmalls12e1. But it looks like KVM will treat it the same way and I 
wonder whether this could be optimized? (I don't know much about the KVM 
implementation though).

> 
> So, to summarize using HCR_EL2.FB (which Xen already enables?) and then 
> using vmalle1 instead of vmalls12e1Â should resolve the issue-2 for vCPUs 
> switching on pCPUs.

I don't think HCR_EL2.FB would matter here.

> 
> Coming back to issue-1, what do you think about creating a batch version 
> of hypercall XENMEM_remove_from_physmap (other batch versions exist such 
> as for XENMEM_add_to_physmap) and doing the TLB invalidation only once 
> per this hypercall?

Before going into batching, do you have any data showing how often 
XENMEM_remove_from_physmap is called in your setup? Similar, I would be 
interested to know the number of TLBs flush within one hypercalls and 
whether the regions unmapped were contiguous.

In your previous e-mail you wrote:

 > During the creation of domu, first the domu memory is mapped onto 
dom0 domain, images are copied into it, and it is then unmapped. During 
unmapping, the TLB translations are invalidated one by one for each page 
being unmapped in XENMEM_remove_from_physmap hypercall. Here is the code 
snippet where the decision to flush TLBs is being made during removal of 
mapping.

Don't we map only the memory that is needed to copy the binaries? If 
not, then I would suggest to look at that first.

I am asking because even with batching, we may still send a few TLBs 
because:
    * We need to avoid long-running operations, so the hypercall may 
restart. So we will have to flush at mininum before every restart
    * The current way we handle batching is we will process one item at 
the time. As this may free memory (either leaf or intermediate 
page-tables), we will need to flush the TLBs first to prevent the domain 
accessing the wrong memory. This could be solved by keeping track of the 
list of memory to free. But this is going to require some work and I am 
not entirely sure this is worth it at the moment.

> I just realized thatÂ ripas2e1 is a range TLBI 
> instruction which is only supported after Armv8.4 indicated 
> byÂ ID_AA64ISAR0_EL1.TLB == 2. So, on older architectures, full stage-2 
> invalidation would be required.Â For an architecture independent 
> solution, creating a batch version seemsÂ to be a better way.

I don't think we necessarily need a full stage-2 invalidation for 
processor not supporting range TLBI. We could use a series of TLBI 
IPAS2E1IS which I think is what TBLI range is meant to replace (so long 
the addresses are contiguous in the given space).

On the KVM side, it would be worth looking at whether the implementation 
can be optimized. Is this really walking block by block? Can it skip 
over large hole (e.g. if we know a level 1 entry doesn't exist, then we 
can increment by 1GB).

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sun Nov 02 03:20:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 02 Nov 2025 03:20:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155126.1484689 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFOdF-0006Ew-KC; Sun, 02 Nov 2025 03:19:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155126.1484689; Sun, 02 Nov 2025 03:19:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFOdF-0006Eo-Ex; Sun, 02 Nov 2025 03:19:53 +0000
Received: by outflank-mailman (input) for mailman id 1155126;
 Sun, 02 Nov 2025 03:19: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=LVbI=5K=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vFOdE-0006Ei-5p
 for xen-devel@lists.xenproject.org; Sun, 02 Nov 2025 03:19:52 +0000
Received: from fhigh-a3-smtp.messagingengine.com
 (fhigh-a3-smtp.messagingengine.com [103.168.172.154])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c6d0a2ef-b79a-11f0-980a-7dc792cee155;
 Sun, 02 Nov 2025 04:19:47 +0100 (CET)
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 3466A1400104;
 Sat,  1 Nov 2025 23:19:43 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-03.internal (MEProxy); Sat, 01 Nov 2025 23:19:43 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat,
 1 Nov 2025 23:19:42 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c6d0a2ef-b79a-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-type:content-type:date
	:date:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:subject:subject:to:to; s=fm2; t=1762053583;
	 x=1762139983; bh=A+EkEb1wiboY7+NJehqBDZfNXXlF566BN0a8KAWG6FI=; b=
	VifEd5TzPxmVrugG+te86GelpvifqxEaOrN1bd1awlB5RfaD2EK6CjNXAIM0Z6xY
	u0RjkYzoWzzDsPdh13UdhwJleyPN6PN5DslA1emVEkECUUevjIjbYXZv7/aP9TYG
	1jru4f2n1YaO3Tg0larHbSOYqfwiRCIAwzT2QNuZs0GOEiE4eAmPaHcIKSkIpv9C
	uzkD2+B/Dc7fJqB1w2qteB/pINWRb3mJQ6CBXh1b70AIALWfOml/Igx24/u+QFnl
	CG/CJ+ns4H/lEV6dDDgl7DuQRmULqw79RlxSCNE10WBHh/uS2xSUIVH+jOZvsHGl
	RikOzd5ZTB+spsxOClzXDA==
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=
	1762053583; x=1762139983; bh=A+EkEb1wiboY7+NJehqBDZfNXXlF566BN0a
	8KAWG6FI=; b=JTbQx6JAI36N+zRUY0msrgjJ2H176ESvByuK2gVf2MdzudCcjic
	lQPN8jNTlm5/aO72z+5C2bIV8GLob8tjzSz0IjDoKqmRZKvZeUbeOfHscNG1n0/h
	QrtbY0a4bW5QcyC44Y7pQTxmBTQ8C1Ka0/aVdROU8WlIxlcAeoGG6fZo2bREVLPX
	LwcyY1JrREdW3B5sXs0JX/Wuw4ILbLsqDbP/pcMNIh3O2ounmqAlUkM/nCgMZyVA
	r50lA5OUhBy/HxeLmya9NCxLdwUrdP4fqTcLaIfd58kBfIrrGbipmNNTLbacVZAw
	qHwYhXfOWCYjxP1UEG+ZNwKyGsTXMoHuliw==
X-ME-Sender: <xms:zs0GaeombaMWwQwXjm3j74iVW5P8DH4UPs6uT3Qnx5-oZ4-LteRyIQ>
    <xme:zs0GaSptu0p7t2ftQdwTfw9UaBhpPk2NOspeiEnqOH9Ju0c8diYAXlFqDx13kAfMr
    _1vRSk-2Bx_ObpWzAKB--xCfc385S873IuXXAgXFbVRIdx2qA>
X-ME-Received: <xmr:zs0GaQ0t4ngSI-mkq5uW3aZF_fKW8_xHwBxMcgIlVdx-D20A_Bs1o96UM1bipE_KwvIkpWTcPaS--vL075IDsbOWJX6JF_OoLk8>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddujeegudehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucenucfjughrpeffhffvvefukfhfgggtuggjsehgtderre
    dttdejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghk
    ihcuoehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqe
    enucggtffrrghtthgvrhhnpefgudelteefvefhfeehieetleeihfejhfeludevteetkeev
    tedtvdegueetfeejudenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrih
    hlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgt
    ohhmpdhnsggprhgtphhtthhopedvpdhmohguvgepshhmthhpohhuthdprhgtphhtthhope
    hjghhrohhsshesshhushgvrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhi
    shhtshdrgigvnhhprhhojhgvtghtrdhorhhg
X-ME-Proxy: <xmx:zs0GaZAlnaIodNgQ1ZlFpXxjGfDpgt5MdQMHw6qL54zzy-MwJzpIiQ>
    <xmx:zs0GaQfcLte0R6zRoEQOZLy59VL7iZ7lVFlfIdvZ2LZfpIhQWEXwXg>
    <xmx:zs0GaWjkrT6v8t3hPSqrE6FADPrOybLgZC_C4KJzgjxAuE5Q9Gl7mA>
    <xmx:zs0GaQpjtIZUP6Lf9Z8M61W-34x40mhJszk3p6ZtBuT5RH4lx9Xduw>
    <xmx:z80GaVYwg7UYLxa3uEoeT7x-pmcgSxlcz0Jo8S6CBxHLwgxEtdujVjRS>
Feedback-ID: i1568416f:Fastmail
Date: Sun, 2 Nov 2025 04:19:40 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: race condition when re-connecting vif after backend died
Message-ID: <aQbNzNhwsPWGOb5p@mail-itl>
References: <aOZJhD6_F_ceHoCb@mail-itl>
 <66d8febb-568b-40db-bbe3-d8dfdc43444c@suse.com>
 <aOZvivyZ9YhVWDLN@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="Byp0VLSoGkXrFTwA"
Content-Disposition: inline
In-Reply-To: <aOZvivyZ9YhVWDLN@mail-itl>


--Byp0VLSoGkXrFTwA
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sun, 2 Nov 2025 04:19:40 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: race condition when re-connecting vif after backend died

On Wed, Oct 08, 2025 at 04:04:58PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> On Wed, Oct 08, 2025 at 02:32:02PM +0200, J=C3=BCrgen Gro=C3=9F wrote:
> > On 08.10.25 13:22, Marek Marczykowski-G=C3=B3recki wrote:
> > > Hi,
> > >=20
> > > I have the following scenario:
> > > 1. Start backend domain (call it netvm1)
> > > 2. Start frontend domain (call it vm1), with
> > > vif=3D['backend=3Dnetvm2,mac=3D00:16:3e:5e:6c:00,script=3Dvif-route-q=
ubes,ip=3D10.138.17.244']
> > > 3. Pause vm1 (not strictly required, but makes reproducing much easie=
r)
> > > 5. Crash/shutdown/destroy netvm1
> > > 4. Start another backend domain (call it netvm2)
> > > 5. In quick succession:
> > >     5.1. unpause vm1
> > >     5.2. detach (or actually cleanup) vif from vm1 (connected to now =
dead
> > >          netvm1)
> > >     5.3. attach similar vif with backend=3Dnetvm2
>=20
> The way it's above, it tricky to reproduce (1/20 or even less often).
> But if I move unpause after 5.3, then it's happening reliably. I hope
> it's not too different scenario...
>=20
> > > Sometimes it ends up with eth0 being present in vm1, but its xenstore
> > > state key is still XenbusStateInitializing. And the backend state is =
at
> > > XenbusStateInitWait.
> > > In step 5.2, normally libxl waits for the backend to transition to st=
ate
> > > XenbusStateClosed, and IIUC backend waits for the frontend to do the
> > > same too. But when the backend is gone, libxl seems to simply removes
> > > frontend xenstore entries without any coordination with the frontend
> > > domain itself.
> > > What I suspect happens is that xenstore events generated at 5.2 are
> > > getting handled by the frontend's kernel only after 5.3.  At this sta=
ge,
> > > frontend sees device that was is XenbusStateConnected transitioning to
> > > XenbusStateInitializing (not really expected by the frontend to someb=
ody
> > > else change its state key) and (I guess) doesn't notice device vanish=
ed
> > > for a moment (xenbus_dev_changed() doesn't hit the !exists path). I
> > > haven't verified it, but I guess it also doesn't notice backend path
> > > change, so it's still watching the old one (gone at this point).
> > >=20
> > > If my diagnosis is correct, what should be the solution here? Add
> > > handling for XenbusStateUnknown in xen-netfrontc.c:netback_changed()?=
 If
> > > so, it should probably carefully cleanup the old device while not
> > > touching xenstore entries (which belong to the new instance already) =
and
> > > then re-initialize the device (xennet_connect()? call).
> > > Or maybe it should be done in generic way in xenbus_probe.c, in
> > > xenbus_dev_changed()? Not sure how exactly - maybe by checking if
> > > backend path (or just backend-id?) changed? And then call both
> > > device_unregister() (again, being careful to not change xenstore,
> > > especially not set XenbusStateClosed) and then xenbus_probe_node()?
> > >=20
> >=20
> > I think we need to know what is going on here.
> >=20
> > Can you repeat the test with Xenstore tracing enabled? Just do:
> >=20
> > xenstore-control logfile /tmp/xs-trace
> >=20
> > before point 3. in your list above and then perform steps 3. - 5.3. and
> > then send the logfile. Please make sure not to have any additional acti=
ons
> > causing Xenstore traffic in between, as this would make it much harder =
to
> > analyze the log.
>=20
> I can't completely avoid other xenstore activity, but I tried to reduce
> it as much as possible...
>=20
> I'm attaching reproduction script, its output, and xenstore traces. Note
> I split xenstore trace into two parts, hopefully making it easier to
> analyze.

Ok, I think I managed to fix it. There were two cases: frontend
overriding state key of already re-connected device, and frontend
re-creating state key of device forcefully removed by the toolstack.
I'll post the patch in a moment.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkGzcwACgkQ24/THMrX
1yw/NwgAgc3209xCXQ0HJA5C/YP33lGbiBEf2khalvMawSqjcGYKYX5kkZe+K/5j
EKb3InOCu4L1n44AoREdOL3EFWHYj75mQrKIpK2Rnr0PEL69TN8hC90sL4bEFCTa
EDsrDK/2qdxH9WXfrhWIOnVKxmfsA/ovlkUPn8M9w1A8m9tXgFKxAi285bPLQqxU
g8qWv4eeRLxqdeuUAQuNpXYKUq/bdobGVdv11n+/N+w+Vb7lLYSLS+LXWfQ+q1cD
cvjz8ygRWWyJDer+kGHI+qboxawTeYopd3QVUkzTZb9Ej0vCfQ2aI2MAAa+946RH
QuptzXo+KDXSfwWtQRFBCbL0Z/RuEQ==
=/5qI
-----END PGP SIGNATURE-----

--Byp0VLSoGkXrFTwA--


From xen-devel-bounces@lists.xenproject.org Sun Nov 02 03:21:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 02 Nov 2025 03:21:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155138.1484699 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFOfE-0007jq-17; Sun, 02 Nov 2025 03:21:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155138.1484699; Sun, 02 Nov 2025 03: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 1vFOfD-0007jj-UB; Sun, 02 Nov 2025 03:21:55 +0000
Received: by outflank-mailman (input) for mailman id 1155138;
 Sun, 02 Nov 2025 03:21: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=LVbI=5K=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vFOfC-0007jb-Ky
 for xen-devel@lists.xenproject.org; Sun, 02 Nov 2025 03:21:54 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 136fb0ff-b79b-11f0-9d16-b5c5bf9af7f9;
 Sun, 02 Nov 2025 04:21:53 +0100 (CET)
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfout.phl.internal (Postfix) with ESMTP id 1430CEC018D;
 Sat,  1 Nov 2025 23:21:52 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-03.internal (MEProxy); Sat, 01 Nov 2025 23:21:52 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat,
 1 Nov 2025 23:21:49 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 136fb0ff-b79b-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:message-id:mime-version:reply-to:subject:subject:to:to; s=fm2;
	 t=1762053712; x=1762140112; bh=7hp+3CUJGKWZLD+hs/ZP9jRp9wO3QWsC
	LcVGR4MJGqI=; b=Acxal4bIYVnPZ4U9m9xz1ww8MwlHQ7U2OfaYK0UOczkpcnlp
	9WXoMQlkR/3+2NU1/4JUxeVB/BYKeyfFfTGCnQb/CzpSz+HKHCyweChjy2GOEQQm
	Lq6tiEQudElM6ur0bEP12/VGvH0cIT3Q/WVns5bfMIznVPJZBFvDTkOlvGWzPRq+
	1OUqYOS59vaAYKKTPO5u6LN3lUSo8yLKjVxuPRCJQ19+o4+nckvx800EON50P/gY
	78C0N0aKYscPXkz9FtXgyz1vbqHTCB2Nrxu9WTNGGwD+c+7yqB2n6B5G0NLGPUpR
	7tpmjIXE0UHExak2soe/zyqQ9PSoDs+XGCo5Zw==
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=1762053712; x=1762140112; bh=7hp+3CUJGKWZLD+hs/ZP9jRp9wO3
	QWsCLcVGR4MJGqI=; b=qIRZnWUxNNmXVVXbT2dQc2bM3+01aSp0RMwjv7xqfCge
	sydge9N73VuOktpifnHYH/Mg3lpXbB0Bvd21BOSo1aMV4SWZJ5kR48zipRRtG1nE
	AfSN3LMO0curC3EdmS9+qhPzTT9AvbgFzP9pGo6v8oh2DVZBI154t4wmWqQPYo7F
	qoMWHM7mXvl5qWO8wYfLHvrj9tGPbcBwsrUb4BH/EQrSqFjyn0fnK+d+abmj6ZQJ
	txugkoJXZgB7fkS5fwycxKU761ubmEVz1SJEi8aKkZnisJHFIJaRj+X1hNsvxK+p
	yIr3iXOtiUm2BOnKxZ/vLdTi3e+qi5wsyeudX0iwZA==
X-ME-Sender: <xms:T84GaQaERxFIcHrqT_-je8u5rmmiy_Wbo0MKH_et94WqwvNWdSlv-g>
    <xme:T84Gab1QOpeX6or8XcoTcotSUwAfEarLALzBjbeFjaejUZddSNMAvj9jfN8sl7VmP
    k5skdLIqbj0GiU8mG_27dj3kjKLFf7Ee6bOrYupBu-B329ffg>
X-ME-Received: <xmr:T84GaboqoeW5hDCQAcjBsLzZBiEyMT4D4OGmvPTVQEHlHHzZVLBfFPbTlaXLS6PGWyRofqnwrQD4rG6uuJkXotKvnum3RjishOKjv72KoTI>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddujeegudeiucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhephffvvefufffkofggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeekkeeiveek
    ueehfeegveejveevuedtjeeiveeguefhvdffueetfedtuddvueetveenucffohhmrghinh
    epkhgvrhhnvghlrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehm
    rghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsg
    drtghomhdpnhgspghrtghpthhtohepledpmhhouggvpehsmhhtphhouhhtpdhrtghpthht
    oheplhhinhhugidqkhgvrhhnvghlsehvghgvrhdrkhgvrhhnvghlrdhorhhgpdhrtghpth
    htohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdp
    rhgtphhtthhopehjghhrohhsshesshhushgvrdgtohhmpdhrtghpthhtohepshhsthgrsg
    gvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepohhlvghkshgrnhgurhgp
    thihshhhtghhvghnkhhosegvphgrmhdrtghomhdprhgtphhtthhopehjihgrnhhgrdhpvg
    hnghelseiithgvrdgtohhmrdgtnhdprhgtphhtthhopegthhgvnhhqihhujhhiieeiiees
    ghhmrghilhdrtghomhdprhgtphhtthhopehjrghsohhnrdgrnhgurhihuhhksegrmhgurd
    gtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgv
    tghtrdhorhhg
X-ME-Proxy: <xmx:T84GaSM0Rrntpe2dpe1DelGU6fxM69KeMa2CMQMVAruIQHJzpLw5Pw>
    <xmx:T84GacrdpdOFpJ_2MOqtxUogwmJCCMKY7CHFDycssv3dc1ghJSw8tw>
    <xmx:T84GaVvsj_U_IiHKkM1DkZ3lW-MAjvXErrMrNPKCo3PO8DsThC7W2w>
    <xmx:T84Gab08owYKCtGPDFJTNuKooxcK2BmWoPjzEJ-lxfWZIRTVTUUeLw>
    <xmx:UM4GadWWm080WdXiZ630qOlPi_dAm9aP9avnDEi9X7Ez8P2_mNpwFqOB>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: linux-kernel@vger.kernel.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Juergen Gross <jgross@suse.com>,
	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>,
	xen-devel@lists.xenproject.org (moderated list:XEN HYPERVISOR INTERFACE)
Subject: [PATCH] xen/xenbus: better handle backend crash
Date: Sun,  2 Nov 2025 04:20:12 +0100
Message-ID: <20251102032105.772670-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

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 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 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 happend 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.

Signed-off-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
---
I considered re-using one of existing fields instead of a new
xenbus_device->vanished, but I wasn't sure if that would work better.
Setting xenbus_device->nodename to NULL would prevent few other places
using it (including some log messages). Setting xenbus_device->otherend
might have less unintentional impact, but logically it doesn't feel
correct.

With this patch applied, I cannot reproduce the issue anymore - neither
with the simplified reproducer script, nor with the full test suite.
---
 drivers/xen/xenbus/xenbus_client.c |  2 ++
 drivers/xen/xenbus/xenbus_probe.c  | 25 +++++++++++++++++++++++++
 include/xen/xenbus.h               |  1 +
 3 files changed, 28 insertions(+)

diff --git a/drivers/xen/xenbus/xenbus_client.c b/drivers/xen/xenbus/xenbus_client.c
index e73ec225d4a61..ce2f49d9aa4ad 100644
--- a/drivers/xen/xenbus/xenbus_client.c
+++ b/drivers/xen/xenbus/xenbus_client.c
@@ -275,6 +275,8 @@ __xenbus_switch_state(struct xenbus_device *dev,
  */
 int xenbus_switch_state(struct xenbus_device *dev, enum xenbus_state state)
 {
+	if (dev->vanished)
+		return 0;
 	return __xenbus_switch_state(dev, state, 0);
 }
 
diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index 86fe6e7790566..3c3e56b544976 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,28 @@ 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. Check if the device
+	 * wasn't replaced to point at another backend in the meantime.
+	 */
+	if (dev && !strncmp(node, "device/", sizeof("device/")-1)) {
+		int backend_id;
+		int err = xenbus_gather(XBT_NIL, root,
+				        "backend-id", "%i", &backend_id,
+					NULL);
+		if (!err && backend_id != dev->otherend_id) {
+			/* It isn't the same device, assume the old one
+			 * vanished and new one needs to be probed.
+			 */
+			dev_warn(&dev->dev,
+				 "backend-id mismatch (%d != %d), reconnecting\n",
+				 backend_id, dev->otherend_id);
+			dev->vanished = true;
+			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 7dab04cf4a36c..43a5335f1d5a3 100644
--- a/include/xen/xenbus.h
+++ b/include/xen/xenbus.h
@@ -87,6 +87,7 @@ struct xenbus_device {
 	struct completion down;
 	struct work_struct work;
 	struct semaphore reclaim_sem;
+	bool vanished;
 
 	/* Event channel based statistics and settings. */
 	atomic_t event_channels;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Sun Nov 02 16:54:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 02 Nov 2025 16:54:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155186.1484713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFbL4-0005ab-N2; Sun, 02 Nov 2025 16:53:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155186.1484713; Sun, 02 Nov 2025 16:53: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 1vFbL4-0005aU-K3; Sun, 02 Nov 2025 16:53:58 +0000
Received: by outflank-mailman (input) for mailman id 1155186;
 Sun, 02 Nov 2025 16:39: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=gezY=5K=oss.qualcomm.com=dmitry.baryshkov@srs-se1.protection.inumbo.net>)
 id 1vFb78-0003OD-Hs
 for xen-devel@lists.xenproject.org; Sun, 02 Nov 2025 16:39:34 +0000
Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com
 [205.220.168.131]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8136aa0f-b80a-11f0-9d16-b5c5bf9af7f9;
 Sun, 02 Nov 2025 17:39:32 +0100 (CET)
Received: from pps.filterd (m0279866.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 5A2EeN6r377528
 for <xen-devel@lists.xenproject.org>; Sun, 2 Nov 2025 16:39:30 GMT
Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com
 [209.85.160.197])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4a5bg9j8ev-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Sun, 02 Nov 2025 16:39:29 +0000 (GMT)
Received: by mail-qt1-f197.google.com with SMTP id
 d75a77b69052e-4e8984d8833so79091941cf.0
 for <xen-devel@lists.xenproject.org>; Sun, 02 Nov 2025 08:39:29 -0800 (PST)
Received: from umbar.lan
 (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi.
 [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-594282be8adsm789469e87.51.2025.11.02.08.39.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 02 Nov 2025 08:39: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: 8136aa0f-b80a-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=qcppdkim1; bh=Vsudp5PRE81p+UL97II9GrFo
	Q82PxOzVdfpShaNANXY=; b=MofBD+FvgCKPFuq3/UZeyNcPO7m4lbnHivOxOn7h
	/9eQpsVBicILU9Wyi7oVMysvN7k7Mw9FwfT4cK38MU7Xn9j/1v/0p6/Jf6+/PVhO
	gWjMNLjyOeisd7CIbEtHAh3y7coy+AFabvbvPQNy5jnA6RaGEUMgR++iZmAmLSpe
	FcF9U8T7xzAOGwsxol6eOhhJkNqSmZlDbcZrzrZiAZn9Ez/KyqbMLuBybNFobZGt
	AKrAXmbeaQ/JJrjNAqJO71reaAmJEanyzsfP6lFJkKGi84AHIyY/ZHYgjIvjNIlD
	VzG8fDkGWx/j74iJT8C/kUi3FZfSjsTjW7BgeK1e/d4lMA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=oss.qualcomm.com; s=google; t=1762101569; x=1762706369; darn=lists.xenproject.org;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;
        bh=Vsudp5PRE81p+UL97II9GrFoQ82PxOzVdfpShaNANXY=;
        b=e1kiyWwrcs9IZIN4yFCnbj7URBhs4dSiZ2l4mXOrSznOPuFvTTdELf6XCVzk02xyzT
         CFaQY/FDtzdAy1+mp0d3e6Kx94+0tZMEJ0gEzkdZlQN1wTijKAPhUwnJ0xbnblYcemBB
         vcdR3xkfCMAHfGeCGaMMsqNfyLF0Owl+Ugf3AA+ayHqAw0NFpINTKZ6q9AsOOPEwsxs8
         qbdM94YWMCYRmQOzFCU2f94RoVFfRFYGMljagdWPU8S3HPW03Vcr3rv8zVyyzGqrLtxi
         IxvVRgVJvfdWvk/x0Jwq9wfLExM4irX10Xk9vPsHcRzlOUQYJXncfd2/UcveRMPR5vY1
         upmg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762101569; x=1762706369;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Vsudp5PRE81p+UL97II9GrFoQ82PxOzVdfpShaNANXY=;
        b=LCZH61YsHO2aapwZvPoacqICGYPKVn8Aa+ZIC4IrQOoySSN6noJTZlUmyrJIuquD5O
         vnsCK82nGp8cQjldj4o/BOnOOrpPSGmSpzSNlv1LKI7On3+bhY/Lx7i8OKqiykWv5j0d
         VXyCPHI+1smstZB1Znvl4YRU7T7T7jPPf7E0DDf1aFu7bSdzKwLzcllrkzZFVpx0eHDr
         +ONxQ65+VYRR/2irvbxVSsxdtm53HZ/VrspgvHlqOZOr1Hl2/z5AH/fIiuHr9p7FleNf
         20CBNIuQvT2M7lB/Z+d4/wpxoReC5K7Jnics7dLEVjvgAV1bYIFuEcGt7HEiWJtNHzrT
         Y/3w==
X-Forwarded-Encrypted: i=1; AJvYcCVedO7OBrgPoaXqzM9ouYI3ATNH88myrYarN7iRP9v2KV386uVCbIk0luVxOliWziLBmOt5HR/0Ujs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzga9mr8nft76R2EyohzG74VwtTYeogmrFEtxRcCj/jcKpj/eT0
	14kj8kWf1gYuhU6vTTYWa5byvO9C6mkGcjDO4ukFwHw55sOpECgw7gBIujI77i907ozRpW7SrYP
	c3YdSiShnNTkePFt/zNnFY88RzGH3pSKjPiGcZvHmPsFPa3Zb+aIzG93fkRwA0aZXpLWQxw==
X-Gm-Gg: ASbGncvWF3j/cygSTDexraHgCWd2UMRS2DFYNN31c6IIbQuvMjCTBKNuDKTLQv2/NEL
	w1A9gK/YQsuEH/SS2txyqB3t5nGs82W65DW+mlCl4jmClCG4XjIW5RjXQliMerwH9L9UPV1vNZE
	+cwx85vrRhxZpD6Tvw9RRf5H6ZicxYPqYfv3cuL7xn7zMDP9Cq6244j8DJy205ps8B9kqMu+OYi
	ExrlsBmBdCgQrr+y2qT+aee42L/bMMKlc3c5FMo5/hxudeSV0vnGEmcM5oGlpnRIGqcD7ixVakc
	Q06yUzje0zH34UcAHUqJcPSABHY1fHx0J9iT2afDKLD6Nzg1ZE7gL75FIinCD0WDsJPgtsUBSl5
	yLpYAccf4+ctYmokg9Jv096bzfNXn7GlfRnSwxc0yJW9FMDivZW2UXg9QGPoAtX2jdpnhwf9RnF
	sIhSCqDdrBxIR5
X-Received: by 2002:a05:622a:834f:b0:4ed:423d:48d4 with SMTP id d75a77b69052e-4ed423d4eccmr57411091cf.54.1762101568690;
        Sun, 02 Nov 2025 08:39:28 -0800 (PST)
X-Google-Smtp-Source: AGHT+IFBDCWJDKPzqxu7f2En5m/zHiJp5IOVrgHqGPH6qz1rOivQAZXaoWbSK0Fgiw9Mg8qUeB+6cA==
X-Received: by 2002:a05:622a:834f:b0:4ed:423d:48d4 with SMTP id d75a77b69052e-4ed423d4eccmr57410861cf.54.1762101568242;
        Sun, 02 Nov 2025 08:39:28 -0800 (PST)
Date: Sun, 2 Nov 2025 18:39:25 +0200
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: simona@ffwll.ch, airlied@gmail.com, mripard@kernel.org,
        maarten.lankhorst@linux.intel.com, geert@linux-m68k.org,
        tomi.valkeinen@ideasonboard.com, dri-devel@lists.freedesktop.org,
        linux-mediatek@lists.infradead.org, freedreno@lists.freedesktop.org,
        linux-arm-msm@vger.kernel.org, imx@lists.linux.dev,
        linux-samsung-soc@vger.kernel.org, nouveau@lists.freedesktop.org,
        virtualization@lists.linux.dev, spice-devel@lists.freedesktop.org,
        linux-renesas-soc@vger.kernel.org, linux-rockchip@lists.infradead.org,
        linux-tegra@vger.kernel.org, intel-xe@lists.freedesktop.org,
        xen-devel@lists.xenproject.org,
        Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
        Rob Clark <robdclark@gmail.com>,
        Abhinav Kumar <quic_abhinavk@quicinc.com>, Sean Paul <sean@poorly.run>,
        Marijn Suijten <marijn.suijten@somainline.org>
Subject: Re: [PATCH v6 13/25] drm/msm: Compute dumb-buffer sizes with
 drm_mode_size_dumb()
Message-ID: <vptw5tquup34e3jen62znnw26qe76f3pys4lpsal5g3czwev6y@2q724ibos7by>
References: <20250821081918.79786-1-tzimmermann@suse.de>
 <20250821081918.79786-14-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250821081918.79786-14-tzimmermann@suse.de>
X-Proofpoint-ORIG-GUID: cajfqfOLeswAMmPuhLRi3XM4KinP2bdI
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTAyMDE1NCBTYWx0ZWRfXwV3LjpEJeYFW
 BHt8rtRfblKzmlXaGzSDcXYffMIGdrbJCKIz7TPB0HD4szi8C1YgUDWYftv3+pZm4syhmSlqVYg
 atL6TVZvmMGUDp0Rbd+w4xcD9bU9VpcaWScSzGStbDzCgrpm5e0gKNcOTwuktjTKEUHEXfGknyC
 HMTuWatKGRdcuq5Qch1iX8ECk1zRofRLZL5IH9JvkJDGzX6NbafeLs7Xf44y+OpbEis5KmLWoXP
 Gwi1F9UcHXCRcDwIzGqzE+E7FsOk6PeVnHMc0ecVU8oAhWYxnpG8h5k0ID37RiPcyGX2lB4AhnW
 nTK3WG2/Tz5N0AsNOD7bQ0lYFNZ/nSmmbFX7GJ5kuw7OcH9yGD1p8YAzFaVWVGgLK0mwbfEp6r1
 iTy9FSf92SCmdt80L90GGiFpKLzsrg==
X-Proofpoint-GUID: cajfqfOLeswAMmPuhLRi3XM4KinP2bdI
X-Authority-Analysis: v=2.4 cv=TaKbdBQh c=1 sm=1 tr=0 ts=69078941 cx=c_pps
 a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=KKAkSRfTAAAA:8 a=pGLkceISAAAA:8 a=COk6AnOGAAAA:8 a=tVI0ZWmoAAAA:8
 a=4vBwfh3hQKJL6CJddaEA:9 a=CjuIK1q_8ugA:10 a=a_PwQJl-kcHnX1M80qC6:22
 a=cvBusfyB2V15izCimMoJ:22 a=TjNXssC_j7lpFel5tvFf:22 a=-BPWgnxRz2uhmvdm1NTO:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-11-02_02,2025-10-29_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 malwarescore=0 impostorscore=0 bulkscore=0 adultscore=0 clxscore=1011
 priorityscore=1501 spamscore=0 suspectscore=0 lowpriorityscore=0 phishscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511020154

On Thu, Aug 21, 2025 at 10:17:20AM +0200, Thomas Zimmermann wrote:
> Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch
> and buffer size. Alignment is specified in bytes, but the hardware
> requires the scanline pitch to be a multiple of 32 pixels. Therefore
> compute the byte size of 32 pixels in the given color mode and align
> the pitch accordingly. This replaces the existing code in the driver's
> align_pitch() helper.
> 
> v3:
> - clarify pitch alignment in commit message (Dmitry)
> 
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
> Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> Cc: Sean Paul <sean@poorly.run>
> Cc: Marijn Suijten <marijn.suijten@somainline.org>
> ---
>  drivers/gpu/drm/msm/msm_gem.c | 27 +++++++++++++++++++++++++--
>  1 file changed, 25 insertions(+), 2 deletions(-)
> 

This broke kms_getfb@getfb-reject-nv12 and kms_getfb@getfb2-accept-nv12
IGT tests. I'll submit a fix separately.

-- 
With best wishes
Dmitry


From xen-devel-bounces@lists.xenproject.org Mon Nov 03 07:30:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 07:30:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155211.1484723 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFp1E-0006Hj-G6; Mon, 03 Nov 2025 07:30:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155211.1484723; Mon, 03 Nov 2025 07:30:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFp1E-0006Hc-DT; Mon, 03 Nov 2025 07:30:24 +0000
Received: by outflank-mailman (input) for mailman id 1155211;
 Mon, 03 Nov 2025 07:30: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=yKkM=5L=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vFp1D-0006HW-Gq
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 07:30:23 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f3b14a8b-b886-11f0-980a-7dc792cee155;
 Mon, 03 Nov 2025 08:30:20 +0100 (CET)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-378de7d3057so38863921fa.1
 for <xen-devel@lists.xenproject.org>; Sun, 02 Nov 2025 23:30: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: f3b14a8b-b886-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762155020; x=1762759820; 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=1U4aeEbj9TmQR25U08x38zCt+2gVaF+ShW7hAAzzrZY=;
        b=WMHPlJ6YBo/IHaozjuq1DeDs09UWLXPTh579pJpOxzmRisph5oUl0qv5Fr/c/ZC21D
         2NDtp+744tHAzRy3LrO/dRFuvLrT3Th5BpJaLy8DGyldB0u1ur/fLDzvTtqyop+qr4Ov
         47xAx8oPcaXJp8vvsbqxKS6gTwVM3RcPEmVux/f/lhDX77xZtlcRifZUMCrqJSftqeZC
         FzW20Endcw8w8GJTTx2j6igb0VZj/lotLgQMTObTks98NzTC5I2fYUVdawzktgU6UUiL
         p3A9wq3HJhcBdVpsFiq3K1oqQd5gQkGhCarXTm4jYglAG2m0mIsALrFk2Ii2KKWsgK3K
         Dw2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762155020; x=1762759820;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=1U4aeEbj9TmQR25U08x38zCt+2gVaF+ShW7hAAzzrZY=;
        b=rC4jMstsGAUnI94Bg6RFUOyVW9eJjYEkfUUX7hkW/gieYLnAa4LhMMDqJQ8r3xP9/3
         rWx3YOHFRB+jhdq4SYbLuyXZd9bfFYDuFBcYenYZIzUkn2GfUrABn6b5sPbYKzSkZspa
         BXQmU+R3qZvZh2NMRMwMbsy+dON/CWMWXEvl45moOiepeCtlvb2pYbye+U+dsf9H1c8W
         ngsIwcoWmGaNMUbbLzVFhGrGRhQ9HSiUQfqdtEoaCIQTj3Zl9jnynBwadU82/IAMTUF0
         VgZE0G8MSW5eihR7r6PbhS1EcTmZi7SVzdU6jpWj3jgE8kZLDzKf5NYy3p8LXmxFySsu
         TsGA==
X-Gm-Message-State: AOJu0YxWLu1nmNSOJY0uF7zVorfkJfk3ViweKLxLkbShg3oOQ5MzR2OL
	ThJTwC9wlD3mNEjrvVc+QB8HG1ttjG2VssGUpfQUvRWLFmB9cLe0o9goVtKRNTvmz41mulAXI/N
	5xwyFWe0+AwL7Cm0t0wZHyFgmtLGxrbE=
X-Gm-Gg: ASbGncsIKbZP7CtMA6CNNJ3ZxhgSSLFoUvoPRC3pB7OaNG61Ajowh56G9JK9P2dDnfs
	u9QLm+ybjWvcCL1La4/b96O8xgKh6ahlmBeI3xhuejrIDMHtpbp2aC4PMkKtLstQZIf8Eh6hX5K
	nVXzCbx1k3h4saNU0UmorRMgckFjQh3s3h6rUQyQVMK4IdABzXGs3d9KbGK5oBPCL0w6w5kX4Vw
	3rI8zup8Mo6DKhY1nOv+CCDrszDmAKuGz0lZ8+LNBlkhJMghKtaKccNn4DYyy+yMp5sfg==
X-Google-Smtp-Source: AGHT+IFn7rAEuSSC7/7q5j3ANvEBnBLlmVKiqmFKt+/oFaPaSQGTWoy4z8io32D7Dx0Yef8Q+gQoHQgzezg7G9zTQNk=
X-Received: by 2002:a05:651c:1506:b0:37a:323b:267b with SMTP id
 38308e7fff4ca-37a323b2a38mr12212651fa.41.1762155019230; Sun, 02 Nov 2025
 23:30:19 -0800 (PST)
MIME-Version: 1.0
References: <e57133182b9bcecb519911c8b3f0d871955d6fef.1754540991.git.mykola_kvach@epam.com>
 <CAGeoDV9ejB-6tg0eNK-6jD8zEZb1G0+AmJNaKVt50P4DiB6Kng@mail.gmail.com> <5c1db85b-8733-47d5-b751-864cdb45aca4@amd.com>
In-Reply-To: <5c1db85b-8733-47d5-b751-864cdb45aca4@amd.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 3 Nov 2025 09:30:00 +0200
X-Gm-Features: AWmQ_bm_CPZ4p1Qc80ju0c4CuX5ISzB_sX64yayzFU_t_wYpIMuj5FF76K0HQ0o
Message-ID: <CAGeoDV96uei_QLCYBrFsJP5OU2=x2xjGKOHyKSDHfGJfk0RomQ@mail.gmail.com>
Subject: Re: [PATCH v5] xen/char: implement suspend/resume calls for SCIF driver
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>, Mykola Kvach <mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Michal,

Thank you for the fast response and the review.

On Thu, Oct 30, 2025 at 10:41=E2=80=AFAM Orzel, Michal <michal.orzel@amd.co=
m> wrote:
>
>
>
> On 30/10/2025 08:59, Mykola Kvach wrote:
> > @Stefano Stabellini @Michal Orzel @Julien Grall @Bertrand Marquis ping
> >
> > On Thu, Aug 7, 2025 at 8:16=E2=80=AFAM Mykola Kvach <xakep.amatop@gmail=
.com> wrote:
> >>
> >> From: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> >>
> >> Implement suspend and resume callbacks for the SCIF UART driver,
> >> enabled when CONFIG_SYSTEM_SUSPEND is set. This allows proper
> >> handling of UART state across system suspend/resume cycles.
> >>
> >> Tested on Renesas R-Car H3 Starter Kit.
> >>
> >> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> >> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.c=
om>
> >> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> >> ---
> >> In patch v5, there are no changes at all;
> >> it was done just to trigger a review.
> >>
> >> In patch v4, enhance commit message, no functional changes
> >>
> >> In patch v2, I just added a CONFIG_SYSTEM_SUSPEND check around
> >> the suspend/resume functions in the SCIF driver.
> >> ---
> >>  xen/drivers/char/scif-uart.c | 40 ++++++++++++++++++++++++++++++++++-=
-
> >>  1 file changed, 38 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/xen/drivers/char/scif-uart.c b/xen/drivers/char/scif-uart=
.c
> >> index 757793ca45..888821a3b8 100644
> >> --- a/xen/drivers/char/scif-uart.c
> >> +++ b/xen/drivers/char/scif-uart.c
> >> @@ -139,9 +139,8 @@ static void scif_uart_interrupt(int irq, void *dat=
a)
> >>      }
> >>  }
> >>
> >> -static void __init scif_uart_init_preirq(struct serial_port *port)
> >> +static void scif_uart_disable(struct scif_uart *uart)
> >>  {
> >> -    struct scif_uart *uart =3D port->uart;
> >>      const struct port_params *params =3D uart->params;
> >>
> >>      /*
> >> @@ -155,6 +154,14 @@ static void __init scif_uart_init_preirq(struct s=
erial_port *port)
> >>
> >>      /* Reset TX/RX FIFOs */
> >>      scif_writew(uart, SCIF_SCFCR, SCFCR_RFRST | SCFCR_TFRST);
> >> +}
> >> +
> >> +static void scif_uart_init_preirq(struct serial_port *port)
> >> +{
> >> +    struct scif_uart *uart =3D port->uart;
> >> +    const struct port_params *params =3D uart->params;
> >> +
> >> +    scif_uart_disable(uart);
> >>
> >>      /* Clear all errors and flags */
> >>      scif_readw(uart, params->status_reg);
> >> @@ -271,6 +278,31 @@ static void scif_uart_stop_tx(struct serial_port =
*port)
> >>      scif_writew(uart, SCIF_SCSCR, scif_readw(uart, SCIF_SCSCR) & ~SCS=
CR_TIE);
> >>  }
> >>
> >> +#ifdef CONFIG_SYSTEM_SUSPEND
> >> +
> >> +static void scif_uart_suspend(struct serial_port *port)
> >> +{
> >> +    struct scif_uart *uart =3D port->uart;
> >> +
> >> +    scif_uart_stop_tx(port);
> >> +    scif_uart_disable(uart);
> >> +}
> >> +
> >> +static void scif_uart_resume(struct serial_port *port)
> >> +{
> >> +    struct scif_uart *uart =3D port->uart;
> >> +    const struct port_params *params =3D uart->params;
> >> +    uint16_t ctrl;
> >> +
> >> +    scif_uart_init_preirq(port);
> This will also call scif_uart_disable() that was already invoked during s=
uspend.
> Why do we need to re-disable it when resuming?

Thanks for the question.

Yes, resume calls scif_uart_init_preirq(), which in turn calls
scif_uart_disable(). This is intentional.

- While Xen is suspended, EL3 firmware (e.g. TF-A) may use an early
  or runtime console and reconfigure the SCIF, including enabling
  TX. Re-disabling gives a quiescent baseline.

- PSCI does not guarantee device state across SYSTEM_SUSPEND; device
  preconditions are outside PSCI's scope. We cannot rely on the state
  Xen left before suspend.

- We reuse scif_uart_init_preirq() on resume to keep a single,
  well-tested initialization path identical to cold boot. This avoids
  split logic and keeps behavior consistent.

- The extra disable is idempotent and cheap (FIFO/status clear), while
  preventing spurious data on bring-up.

I can add an inline comment to make this explicit:

/* On resume, EL3/firmware may have touched SCIF (early/runtime
 * console). Disable again to start from a clean, quiescent state
 * before reinit; reuse scif_uart_init_preirq() to keep the cold-boot
 * sequence.
 */

>
> Other than that:
> Acked-by: Michal Orzel <michal.orzel@amd.com>
>
> ~Michal
>

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon Nov 03 08:21:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 08:21:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155226.1484733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFpoY-0004sa-An; Mon, 03 Nov 2025 08:21:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155226.1484733; Mon, 03 Nov 2025 08: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 1vFpoY-0004sT-7x; Mon, 03 Nov 2025 08:21:22 +0000
Received: by outflank-mailman (input) for mailman id 1155226;
 Mon, 03 Nov 2025 08: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=MMMf=5L=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vFpoX-0004sL-0H
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 08:21:21 +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 0fd3773b-b88e-11f0-9d16-b5c5bf9af7f9;
 Mon, 03 Nov 2025 09:21:14 +0100 (CET)
Received: from SJ0PR03CA0390.namprd03.prod.outlook.com (2603:10b6:a03:3a1::35)
 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.9275.13; Mon, 3 Nov 2025 08:21:06 +0000
Received: from MWH0EPF000A6732.namprd04.prod.outlook.com
 (2603:10b6:a03:3a1:cafe::ce) by SJ0PR03CA0390.outlook.office365.com
 (2603:10b6:a03:3a1::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9275.16 via Frontend Transport; Mon,
 3 Nov 2025 08:20:31 +0000
Received: from satlexmb08.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.9298.6 via Frontend Transport; Mon, 3 Nov 2025 08:21:06 +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; Mon, 3 Nov
 2025 00:21:04 -0800
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Nov
 2025 02:21:04 -0600
Received: from [10.252.147.171] (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, 3 Nov 2025 00:21:02 -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: 0fd3773b-b88e-11f0-9d16-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CWzsFgeeeMZT+8gV0QfbnWLNyxhWodXmgYvZV87B8xH4v7G/oAK8CTEtojz78uaZl7hFcEEO+dCR+kn/ayvrGC4PnolL03LwXKiZmRQfZUn443umyGGeJrKaiEEms3ahb14Y7SYdzllLFLJbfmZ2sitNXEYZBljxa6PgI8HqjdfsAwQkUB+uEdjyf/wGSk7S11AHFIiqXrlZ/wEr9nVJb4BG2ecEN+NUL668I95x+fWNDjBYtOagUvUaf/MUoN80iQIGFUnN9r886AFd7PVhmvhL0oSjNo84DMjerGallWFdUV21hi6GiC6/S8y7/kkENoFCJHyoc+nvvjEwfUJRJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EzpI4N0VoaKoDwPnKdSNJrSZNt2XpjQzIv/AeIVZz5c=;
 b=ITod/Sr08aH8E8yAdJMu5yy9AtMiFoqzw6fIbNQbOznBu3nwceuJwSdftVB+4bTQ5EZTf5gzMfthk2U3OSiC7Ver42rVaBqcuOz/1606rcV1EnBfxHxrRO6erAyd6HVpR0KBAmtr+yPGEupgDvaPBl7hEEaVfVPWOmX9sTn1LOCmLVWSoSvt3Y7SuKYYdCOKpKgbzmCbZtPtyPM5ePFBxOqw6cecdx2peq6VNvbt0X/cZXjw07ug3UqcFvZqg66LO9tkB9GDX5IBDxH48YPy6wBTBACykz2O7OD4c9yjqRlps9Wfk6ujpmFRUUFd3/KXe08Nm324MnccMUC2wHKQHA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EzpI4N0VoaKoDwPnKdSNJrSZNt2XpjQzIv/AeIVZz5c=;
 b=iz/qxnE/hkN0vueUIHe8L48WbqyL8RutS7S8DAWPHs3kFsp6cIHUTddYlvUDt20fU79ibE3cryRBsSrLH11/LvymnL9iXa+99RrDEK47TADuAh1ACNEgxm/GvCn9IEPvfPOn/xjUEhyAzAegpDcq4ddnr90kn4tDi62CPMuastQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <575902ae-c22d-47f4-a6ca-02a2125f39d6@amd.com>
Date: Mon, 3 Nov 2025 09:21:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] xen/char: implement suspend/resume calls for SCIF
 driver
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: <xen-devel@lists.xenproject.org>, Volodymyr Babchuk
	<volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>, Mykola Kvach
	<mykola_kvach@epam.com>
References: <e57133182b9bcecb519911c8b3f0d871955d6fef.1754540991.git.mykola_kvach@epam.com>
 <CAGeoDV9ejB-6tg0eNK-6jD8zEZb1G0+AmJNaKVt50P4DiB6Kng@mail.gmail.com>
 <5c1db85b-8733-47d5-b751-864cdb45aca4@amd.com>
 <CAGeoDV96uei_QLCYBrFsJP5OU2=x2xjGKOHyKSDHfGJfk0RomQ@mail.gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <CAGeoDV96uei_QLCYBrFsJP5OU2=x2xjGKOHyKSDHfGJfk0RomQ@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000A6732:EE_|DM4PR12MB6010:EE_
X-MS-Office365-Filtering-Correlation-Id: 8a494c9c-7e1b-49d7-2af7-08de1ab1ef8e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ajZGVitlN3Z0b0dIN3hmek11b0w1YzU2UWMzaVdQVFhOV0wvbkhCb0JmdFRF?=
 =?utf-8?B?VXJnN1RQbUQzajZ6dHpEOXhLMkMrVXhVc2hTYjlXMDlpdE53Sk9IUVFCeEFQ?=
 =?utf-8?B?L2QzRmNxbkRvdVlkOGpyV3BMeUhWZHdDVU9LTEg3Ykc4QmUzUlF3dlQ5azJk?=
 =?utf-8?B?NEtFZFROOWZ6RGh1cnhyekk5UTd0Z0V1Y2dzVk9jWVpuWjVhdnNRWUZabnhV?=
 =?utf-8?B?UVphRUNnNWdZcUhJWlBBbjZhRVFpZ0Zzekdzd2xyVmdkeisvMW53RkVlREkz?=
 =?utf-8?B?SVlYWE9NekxwWkpRK0VvUEFXNEpQNU9MakkwdmtyQ2JZT2tJK0ovNXR5Uy9z?=
 =?utf-8?B?QnlERnhmMHM0M0MzVUVkZnNnbXBMVWZ0MmlteG5qY294TTVVMlloY1FrK2dN?=
 =?utf-8?B?aHlZLzVPb29QaE1DSU1QdElBMjJmVldXdlI5UmRjVHZpcERQTjhOb3BWYVJy?=
 =?utf-8?B?RWRLRkFhRjdIWVF6ZEErWEg0dmFKbUVOUHExOEJvbU5MTE1BeEJhd055U01x?=
 =?utf-8?B?MTZrZGhmamRYcjRkTHFDZmlVUzFjYVFiRmhxYVlNZk8rU2tJQ2x6dW90Umda?=
 =?utf-8?B?MHY3M2lxWlhLTjBVRFZHT1dUdHZEWVRnYUFQTG93RDQ3Skh4a2dFRmRWVVc4?=
 =?utf-8?B?VDVDZy9FWE5aWkZwUFhIY0lpbDBmM3JhNU5vS2dRRmtxUzRLb1RCOVJSSVcr?=
 =?utf-8?B?ZHZNN0taYWxEdXI5YVppaFhVOUYwZWMveVMzWnBpWXZrQ2hjdjdpMVFwWEk4?=
 =?utf-8?B?Y0ZmOGE4dmhuNm9WY2dLSjNpdStKUlhRemRBR3hUb3FDZE1SM2I2cWJsUFNj?=
 =?utf-8?B?Mk9wQTExTysvbkFKV0ZGeFFydGNyT1dOeTJhM011VUlnZWdvNXBxSlgwTjhP?=
 =?utf-8?B?VXk0MWF3VXdjeHR2dkNpVCtsZEZlNEFadWd1a2c3bG05TURGZ0w1NjU0K0Jt?=
 =?utf-8?B?d0hNTUdGZXBVYlNUdUtWcEkzbno2WVF4aFpDam1zSDkvQk4rdG5XbHhHM0g2?=
 =?utf-8?B?cWRzSTdDRkhXQnFJYmhJRy95blhQNWd6YWs2d0FCeWpHcmVBWVM3YXNXbzdq?=
 =?utf-8?B?L3ZpaFlxb2xldjJ2cUtLL0tuaUxSWm9QTk9objdwclRpSU5UeUd3aW1RSHpw?=
 =?utf-8?B?ODhjT0RsUXdNMElsaG4xbEFlSzA1S3I3MEpsV0lZdVNsSmQ5bTVOdVU5MzRJ?=
 =?utf-8?B?WHI3TG1yMytETDJiWDV1N3BHUHlNOUJhakx0MXJNT0tNbEdFOTlmNHNiWlN5?=
 =?utf-8?B?dlZrSHN4QXlRR2tzSjdGekNMVUU4LzRzQjB4UEZ2a1ZoVXdwQnZ1N0JVek9h?=
 =?utf-8?B?MXRGektJL0JQT1FFZk9CcElPVmEvZWdHOU83RjhOT3p2dTUza1dYY1hMSXo5?=
 =?utf-8?B?L1UrRDJCa0RyQWdkMWxBbnN3aWxFczFkV2ozTXZURURkRDlkdy9DbkhCdG1O?=
 =?utf-8?B?cEk3RmtwV0MxbXpoK2NsbjhyN2w1UVIxNnFwdWNrMXVkdFlDeGoyL2x1TEVF?=
 =?utf-8?B?MHdCeXJCYTZoeFlkaEZqWDRaZkdQWTY4Y2hFc3JXNmh6WWliTUprNzhmK1lG?=
 =?utf-8?B?WGp6bEFYeElpdXI2QVhkVXo0VjRhMkhpazRIQ1dGOU4yV3JjVTJPOEUxVzNp?=
 =?utf-8?B?aW83VDM2UjJsNldxcWZ0WG1nSk1Jc3orUmpKLzZ6NjRFQ0M1WXQ1VVBlUWY2?=
 =?utf-8?B?anRWdkZHTWc5UkhOUDkxWnBIaHpRemlQbkZBenN1SXp4OFlKWGhJOUtBTml0?=
 =?utf-8?B?cnREWWRrc1F6QmJVZEtYT1BWaXVpSFpTbHVRbnNOK2Zac1ZSUVppM0pDbUtq?=
 =?utf-8?B?UHFQWWQ0ekZBbGV2QUtoN1dNSCthQWk4TnN0K0l4dEgyYkRkdjlZeklYOWtq?=
 =?utf-8?B?d1A5MVFycUlKMDY0YzdKVWRHRUJMVTIwYllQS0FsYmNuU2lnbmdja2Y2UWhk?=
 =?utf-8?B?WEdSdy9FRllVYnBObkc1OFAwdDM5WmpQT3B4MDdycmR1eTFOcndrL1l4a3hD?=
 =?utf-8?B?ZEIwamFCTmwxL3VBeVN2aFNLL1FvRlRjREZxTUdiQmpCQW1tc2ZwdnBZN0Rr?=
 =?utf-8?B?RnRQZXpHQmp1cDdwbDVWKzV6bzFKdmRzdnZUcHlBWVBjZnBMSVc5R0U4Mlp1?=
 =?utf-8?Q?+gos=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2025 08:21:06.2446
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8a494c9c-7e1b-49d7-2af7-08de1ab1ef8e
X-MS-Exchange-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:
	MWH0EPF000A6732.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6010



On 03/11/2025 08:30, Mykola Kvach wrote:
> Hi Michal,
> 
> Thank you for the fast response and the review.
> 
> On Thu, Oct 30, 2025 at 10:41â€¯AM Orzel, Michal <michal.orzel@amd.com> wrote:
>>
>>
>>
>> On 30/10/2025 08:59, Mykola Kvach wrote:
>>> @Stefano Stabellini @Michal Orzel @Julien Grall @Bertrand Marquis ping
>>>
>>> On Thu, Aug 7, 2025 at 8:16â€¯AM Mykola Kvach <xakep.amatop@gmail.com> wrote:
>>>>
>>>> From: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
>>>>
>>>> Implement suspend and resume callbacks for the SCIF UART driver,
>>>> enabled when CONFIG_SYSTEM_SUSPEND is set. This allows proper
>>>> handling of UART state across system suspend/resume cycles.
>>>>
>>>> Tested on Renesas R-Car H3 Starter Kit.
>>>>
>>>> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
>>>> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>>>> ---
>>>> In patch v5, there are no changes at all;
>>>> it was done just to trigger a review.
>>>>
>>>> In patch v4, enhance commit message, no functional changes
>>>>
>>>> In patch v2, I just added a CONFIG_SYSTEM_SUSPEND check around
>>>> the suspend/resume functions in the SCIF driver.
>>>> ---
>>>>  xen/drivers/char/scif-uart.c | 40 ++++++++++++++++++++++++++++++++++--
>>>>  1 file changed, 38 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/xen/drivers/char/scif-uart.c b/xen/drivers/char/scif-uart.c
>>>> index 757793ca45..888821a3b8 100644
>>>> --- a/xen/drivers/char/scif-uart.c
>>>> +++ b/xen/drivers/char/scif-uart.c
>>>> @@ -139,9 +139,8 @@ static void scif_uart_interrupt(int irq, void *data)
>>>>      }
>>>>  }
>>>>
>>>> -static void __init scif_uart_init_preirq(struct serial_port *port)
>>>> +static void scif_uart_disable(struct scif_uart *uart)
>>>>  {
>>>> -    struct scif_uart *uart = port->uart;
>>>>      const struct port_params *params = uart->params;
>>>>
>>>>      /*
>>>> @@ -155,6 +154,14 @@ static void __init scif_uart_init_preirq(struct serial_port *port)
>>>>
>>>>      /* Reset TX/RX FIFOs */
>>>>      scif_writew(uart, SCIF_SCFCR, SCFCR_RFRST | SCFCR_TFRST);
>>>> +}
>>>> +
>>>> +static void scif_uart_init_preirq(struct serial_port *port)
>>>> +{
>>>> +    struct scif_uart *uart = port->uart;
>>>> +    const struct port_params *params = uart->params;
>>>> +
>>>> +    scif_uart_disable(uart);
>>>>
>>>>      /* Clear all errors and flags */
>>>>      scif_readw(uart, params->status_reg);
>>>> @@ -271,6 +278,31 @@ static void scif_uart_stop_tx(struct serial_port *port)
>>>>      scif_writew(uart, SCIF_SCSCR, scif_readw(uart, SCIF_SCSCR) & ~SCSCR_TIE);
>>>>  }
>>>>
>>>> +#ifdef CONFIG_SYSTEM_SUSPEND
>>>> +
>>>> +static void scif_uart_suspend(struct serial_port *port)
>>>> +{
>>>> +    struct scif_uart *uart = port->uart;
>>>> +
>>>> +    scif_uart_stop_tx(port);
>>>> +    scif_uart_disable(uart);
>>>> +}
>>>> +
>>>> +static void scif_uart_resume(struct serial_port *port)
>>>> +{
>>>> +    struct scif_uart *uart = port->uart;
>>>> +    const struct port_params *params = uart->params;
>>>> +    uint16_t ctrl;
>>>> +
>>>> +    scif_uart_init_preirq(port);
>> This will also call scif_uart_disable() that was already invoked during suspend.
>> Why do we need to re-disable it when resuming?
> 
> Thanks for the question.
> 
> Yes, resume calls scif_uart_init_preirq(), which in turn calls
> scif_uart_disable(). This is intentional.
> 
> - While Xen is suspended, EL3 firmware (e.g. TF-A) may use an early
>   or runtime console and reconfigure the SCIF, including enabling
>   TX. Re-disabling gives a quiescent baseline.
> 
> - PSCI does not guarantee device state across SYSTEM_SUSPEND; device
>   preconditions are outside PSCI's scope. We cannot rely on the state
>   Xen left before suspend.
> 
> - We reuse scif_uart_init_preirq() on resume to keep a single,
>   well-tested initialization path identical to cold boot. This avoids
>   split logic and keeps behavior consistent.
> 
> - The extra disable is idempotent and cheap (FIFO/status clear), while
>   preventing spurious data on bring-up.
> 
> I can add an inline comment to make this explicit:
> 
> /* On resume, EL3/firmware may have touched SCIF (early/runtime
>  * console). Disable again to start from a clean, quiescent state
>  * before reinit; reuse scif_uart_init_preirq() to keep the cold-boot
>  * sequence.
>  */
No need, your explanation makes sense. Thanks.

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Nov 03 08:45:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 08:45:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155239.1484743 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFqBR-00080n-5u; Mon, 03 Nov 2025 08:45:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155239.1484743; Mon, 03 Nov 2025 08:45:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFqBR-00080g-2u; Mon, 03 Nov 2025 08:45:01 +0000
Received: by outflank-mailman (input) for mailman id 1155239;
 Mon, 03 Nov 2025 08:44: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=p5Dp=5L=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vFqBP-00080a-Dr
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 08:44:59 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 609abba4-b891-11f0-9d16-b5c5bf9af7f9;
 Mon, 03 Nov 2025 09:44:58 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b3e7cc84b82so839129966b.0
 for <xen-devel@lists.xenproject.org>; Mon, 03 Nov 2025 00:44:58 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7077c3add2sm960507166b.37.2025.11.03.00.44.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 03 Nov 2025 00:44: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: 609abba4-b891-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762159497; x=1762764297; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2VV0LFtC+hANycCX6GEdD2nP8rwL2S4lJ2uo5oWO1rg=;
        b=eWdwiuKaatXWl0LrpDmnLP70jNwCJ4bxmaU+Wg7WiEBt596R1vePLKoks9CDrRHaO1
         rHbAi4CJkrJkrUDZjqvBP8sG5L7Mh4ChP1nW2S7+qj4/KNOG+MnJGQAkXBZF0qiytptm
         2kLZc5WnBWuQ89WpljNLFDIJfpSRLCOAyo2Ng9x+hPhug10F+DrwjMGHPDtNGKhYHDZa
         aDhhxeTSmWkeuQgH3XJ3uVapc+e2JcM7+RGssqHH9mgOUKQ+NAVqYJuGJNLD5Z9y3B0L
         /KkNtGMkEWBbi9YaI3oT5U4T2bWxOi7JaddbDxu/tfyoB4S08xEUws7g09bjra2oTobD
         AcMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762159497; x=1762764297;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=2VV0LFtC+hANycCX6GEdD2nP8rwL2S4lJ2uo5oWO1rg=;
        b=dTEmmLeRNyUpapLUPHsP+bKw+e718qL47kaHAvmj+8AkjNcd0e3uCgytFPs3qaMBcU
         WfzgYj9blAhNl0I8lRt9J/x6qRKTyz/Adzd4kgGyXl4dAL80Bu4jQPw/trmrsZpIJqLP
         Ov38k0Y2/6XfNp2U5I3u0lBlisLqkWa6Qo5+F/ORZ5esWT3AKS1wbRLCtUdJEL7A42CF
         0KogrzSeDkm5dJ25b6HvRcADbXtU3gmDXo98o4thZc6Q88Ua/h6Fum6q24tOc1hwGyvq
         u+102iTKNESc/1ek2G88orosdxTzJVVEQICN7CppFqmbfgPEpzSZCikt0gjAB7SQt8iz
         ER7Q==
X-Forwarded-Encrypted: i=1; AJvYcCWnwozrcCUlgZ96pqunK/xm1jTnNSCDwoAwgvHTAj1Tok4XzFjqVK8O+GapSe7NOyoCiVTclLqm8ms=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzjWeRhOKJV9VeCxRZVfpdZfty20fdi4v3uTbUVEoPYelhN1XLx
	H3Divg2aIyhn3BTepzGp2lmXWKjxEyuQ4tyRrNWj1rQBYkNAN6Nz89FXAsHmDQ==
X-Gm-Gg: ASbGncsttCnCP41FTp7QKCJ6L6SThayryaNQsHwrKBdm09bBne8Ho6fsk319GFnqL3K
	hovwNLQ3faI3vb02SEFUXLVGcapW7BMdO4aQxvJmW7Omp8r1Sx08j3ayrBVwMveR6qc8azmMr3n
	wu8P8Y/QBzihmOEnmyMsSU+PqojK8d/UtUn2o0fVjzOFsOiZ7nK+RyI2eLLUdybRWgEEfYMjVV3
	VwuQhivhmTz3C0NHCIh/vekQO4qzbw40gME+aW2Q8355rc7hRGvQSyJ8evmv9nRmodj/xW2Ee2n
	3a8vgwiwYig4yF4Q54n6jy9fQndNXqvB9YZer4Ifkx69td0Nh7Lypi1WYlMK67Ttvq9gN6dFhU4
	HuWhB6NtJ3WGvggsK4xhm4fFFwVnWNmM+rS3LB0CdZ7q8H1DI2aqW2D2dGlyc3TkWCiCIOWOrWL
	gaNPzDTz5mRNhqb2VyUHc2FvOxRIlqFLHFbkkWF6cy3H3Ojh+tWTW3lHjbtmrrYf/bLulXY7w=
X-Google-Smtp-Source: AGHT+IHvfmA+sjNfBNymOjqQIAMeQdy+t4WsYClprXxtEoRpczcH1EcgXaRkh1yu3uz9I1w4QLPAcw==
X-Received: by 2002:a17:907:9451:b0:b6d:76a9:e7de with SMTP id a640c23a62f3a-b70700d36fdmr1221435166b.8.1762159497274;
        Mon, 03 Nov 2025 00:44:57 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------GiUkDcvuOP1KHNAja53hpPKg"
Message-ID: <f60e6d6d-7f86-428b-889a-0ba253515a06@gmail.com>
Date: Mon, 3 Nov 2025 09:44:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 for-4.21 0/2] x86/AMD: deal with RDSEED issues
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <272093dc-c97c-434a-9977-ad1c26e7e229@suse.com>
 <abf30e99-47be-48c9-b826-18d142453dcf@gmail.com>
 <f4dc4064-43f5-4bb0-8387-298a5d62cb5b@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <f4dc4064-43f5-4bb0-8387-298a5d62cb5b@suse.com>

This is a multi-part message in MIME format.
--------------GiUkDcvuOP1KHNAja53hpPKg
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 10/31/25 10:34 AM, Jan Beulich wrote:
> On 31.10.2025 10:31, Oleksii Kurochko wrote:
>> On 10/28/25 4:32 PM, Jan Beulich wrote:
>>> Both patches also want 'x86/CPU: extend is_forced_cpu_cap()'s "reach"' in
>>> place.
>>>
>>> 1: disable RDSEED on Fam17 model 47 stepping 0
>>> 2: disable RDSEED on most of Zen5
>> Both patches LGTM to be in 4.21:
>>     Release-Acked-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
> Thanks, yet: What about the 3rd patch mentioned in the text above?

For 3rd patch, also:
  Release-Acked-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii

--------------GiUkDcvuOP1KHNAja53hpPKg
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 10/31/25 10:34 AM, Jan Beulich
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:f4dc4064-43f5-4bb0-8387-298a5d62cb5b@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.10.2025 10:31, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
On 10/28/25 4:32 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">Both patches also want 'x86/CPU: extend is_forced_cpu_cap()'s "reach"' in
place.

1: disable RDSEED on Fam17 model 47 stepping 0
2: disable RDSEED on most of Zen5
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
Both patches LGTM to be in 4.21:
   Release-Acked-by: Oleksii Kurochko<a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Thanks, yet: What about the 3rd patch mentioned in the text above?</pre>
    </blockquote>
    <pre>For 3rd patch, also:
 Release-Acked-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

Thanks.

~ Oleksii</pre>
  </body>
</html>

--------------GiUkDcvuOP1KHNAja53hpPKg--


From xen-devel-bounces@lists.xenproject.org Mon Nov 03 08:52:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 08:52:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155249.1484753 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFqIs-0001Fh-Th; Mon, 03 Nov 2025 08:52:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155249.1484753; Mon, 03 Nov 2025 08: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 1vFqIs-0001Fa-Q0; Mon, 03 Nov 2025 08:52:42 +0000
Received: by outflank-mailman (input) for mailman id 1155249;
 Mon, 03 Nov 2025 08: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=MMMf=5L=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vFqIr-0001FU-HD
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 08:52:41 +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 70e49fa5-b892-11f0-980a-7dc792cee155;
 Mon, 03 Nov 2025 09:52:35 +0100 (CET)
Received: from BYAPR11CA0094.namprd11.prod.outlook.com (2603:10b6:a03:f4::35)
 by SA0PR12MB4413.namprd12.prod.outlook.com (2603:10b6:806:9e::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.16; Mon, 3 Nov
 2025 08:52:32 +0000
Received: from CO1PEPF000044FA.namprd21.prod.outlook.com
 (2603:10b6:a03:f4:cafe::6f) by BYAPR11CA0094.outlook.office365.com
 (2603:10b6:a03:f4::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9275.16 via Frontend Transport; Mon,
 3 Nov 2025 08:52:29 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CO1PEPF000044FA.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.9320.0 via Frontend Transport; Mon, 3 Nov 2025 08:52:31 +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, 3 Nov
 2025 00:52:23 -0800
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, 3 Nov
 2025 00:52:23 -0800
Received: from [10.252.147.171] (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, 3 Nov 2025 00:52:21 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70e49fa5-b892-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wy3PBHP/WVgrERplBKksNU+LmLNzbd1lkpI6AaIGgPGc8jdR9Zal0TbdLHk2GcEyamMtw3zvK9kUAgLYLSq9MWGId5rW0UJMNmGACUXKZs1MDndmGn0GV5DccIb4bDkHWX1Vs6/4jq5bTqPVZwcJJsU/bYcheAa+zSK8XCiT0Br8VjzXIW+YLVlQh20T8hZrRmWJJMtEVY1iQZn5hjkNlFXOHLEHfAui/siLYF1AWYo+XRCVY3rOSlxeHDvIScLjsXj1/A6aIBSxlUIuUQcULui0YnIzDZXquupgXlvYzuf6HIkHv7uMmN8VVY0hOn/rrwmJZCCe2HPwN+0AylJ3iw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=R0DTs4UoAYxbErh4CEudpK8CGNJ61G88ZLCtSiLE5zg=;
 b=aXwFYpRorBD6uz1ghiJFmtoes6n8j4o38jWzPK4dD+Nb7zp2WUWeZrg4M9oe0smq3V4frtkA5STgPiceSFe80ZRHPh5n1gSWf+Iivdrb0MIZf0doAsq84aJwjRne46JC0w7oeMxPx13rLaKwSDpU4vo90vL8eyhi7PDrcuW7iW2M9JB8Tg9BJfYSDBlkZUd3ap3/PnVuUKK2HL1JlaBmQvFlt4CdK7qnInpl/2z/+PIRP2hs4cZuH2EEUJquCZ6WH8xdFHJwts6f+kvBD4NWcD51wAw3J8Y7d76aDIJf14HRmEYs6DZOB9bCH3tOXXny/Tjl44p50lsx2rdmiYW2sw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=R0DTs4UoAYxbErh4CEudpK8CGNJ61G88ZLCtSiLE5zg=;
 b=4i2INPBs6j2TavED2v/lj1Lq51zgvfSY3SpVjMK9E3EJSDnljlgik4sf3q4Iiej4FGqEIpEdvis/5roX9sLESZcPZ862ZG6qceJ9J9UC0J0+Bl6yjYSGv36pJ2X1HJu1ewy4NaXc7dwIGCc3PL1h546yc2wgZyfU2sjcct5H59E=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <552fc2be-661c-4718-a650-9f2daf6c72ea@amd.com>
Date: Mon, 3 Nov 2025 09:52:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] arm/efi: address MISRA C Rule 11.3
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>
References: <212a1ac4ee568f027f6cb7f9437aa42d2f0b6c41.1761599221.git.dmytro_prokopchuk1@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <212a1ac4ee568f027f6cb7f9437aa42d2f0b6c41.1761599221.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000044FA:EE_|SA0PR12MB4413:EE_
X-MS-Office365-Filtering-Correlation-Id: 0e5595ce-c096-4983-65c8-08de1ab65348
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?YzQvN0d2ckZHWkVTa2p5eURIN2xlTmVkSHJHOVJIaktRSSs0Zkp1clFrbG03?=
 =?utf-8?B?eFZWYUZad2tsZ3NpY3JUZUJHSEUzSExPWXpUYW9UUWoyd0Z2SnkwS3BDUjRQ?=
 =?utf-8?B?cDFwUHAzWTRoNld2elhyYWlERzlwVDQ0R0xkWEY5VjhVT2NVY0JXWlZDY21F?=
 =?utf-8?B?QXBCdU5UM0p5NnhxWU9BWDltWVk5Wmw3aTkzRzJpOGNkUnRFcHZQa1lnckxa?=
 =?utf-8?B?bjI3dm4xdXVScnBvN0NCYSswK1B3MmxPNDRzREFJWHdSdEkwRWNRTFBFbG0x?=
 =?utf-8?B?cHllQTBRellyeFF5eXpUNmxBMG04ekt0Y2tFR3YveE11ZGJuckhRM0ZnYndG?=
 =?utf-8?B?OVRCZk9TYnp5MHpORG1yNXlYK1ZpTHpEMUZHYjRwelRRR3pOdU55YmxwRVVQ?=
 =?utf-8?B?T21HK3B3UFJpNzdpb3ZUUlV6R3U0RGp5TWVLVVh6ZjAwRHViL3Zvb3ZmaWpI?=
 =?utf-8?B?bG82YVM4WWhMMkNOMyt1UVd6MHNKd2JuYzRMdWxvOHBPY3pYKzBSR2dyRWFn?=
 =?utf-8?B?cFQ3ZW5RL091bDF1RFpqeDUxdXdyZVhRMGdEK1ErcWRNODBlVnRMWFBUT0JC?=
 =?utf-8?B?b1Z4WW45ek5LMFFFRXVzUmhQOFZZM1YvVWlpOWg1djVENVVFeFpqUno3Y1RG?=
 =?utf-8?B?Tm9iNmtOdS9kZzhvaHNFM3R4bU9IblF0c2ZpWkUxRW9DRHJhSC9UKzlrcGhn?=
 =?utf-8?B?eW1qVXc3ZTBTa1VpM3J4SHU2cnF1NllRdThzTVVXZnlkUmIwV2U3M3h3M29E?=
 =?utf-8?B?VlhPUStvMGpmU3VJMGxwR2pnSE9oWEVuU1BJaG1iZE9OZXdQZjQ2a2lVTHdx?=
 =?utf-8?B?OXQvVUxJRWpLNzVzeDY4UFBGeXhqR3h5WE1lNGZQb2dnZDRaOU1pUUlKMENo?=
 =?utf-8?B?MnZjK3B5Y1NxL2t5NEVoTm5Ta3NKemtmdlhWNFdxRmZWRVRLMXhmcVRHK21Q?=
 =?utf-8?B?Z3ZXdXk5cVB3S2E2ckszUkFGaWUwM3JEeDVTSjM5U1QxK1Q5QWtwbm5EQUs1?=
 =?utf-8?B?dlNLenpJd0U2aTZiQlBiNG1wdW1FZ0VZTUFLMHBMbktWSklsZDdvdExmS3E4?=
 =?utf-8?B?VzNmLzY1T01QMzlNdDBzZS9lT1ZCRThGWkxkT3prMjhIZUlYZnQ0UVpuU2xY?=
 =?utf-8?B?RmxoMW5rOGhNdlFnL1Z0a08rdnJoQmV3dG9uaUdTWVN1a0FOY0pITEljYzZz?=
 =?utf-8?B?aEhJSi9kNWpLeTRJaGxydHpncUwzTW84U21KNTlVV0RpR25IOXlUQUxjQlBW?=
 =?utf-8?B?K09UZjlzc0hzOWtsWWlzeGJ3SmtrTktBdFVDVy8vcDNhbGMrVyt4MFR1MldK?=
 =?utf-8?B?VEZXcXh2NUJObGF0QkVDODFMNzRtMUVabjhuNWdNRllPYnB5WTk5cXVzeFFm?=
 =?utf-8?B?M3dQdlVzaVdCY3dtRzVJL0Z3N2ZYQUlMSW5UaVJya1liYkZHMksyWTBNZlZk?=
 =?utf-8?B?N2ZJWG5lb3ZlQjJqK0ZYZi9zV0toM0d6NC9ObnVIV0ZhbzFrRlMrL3lNVERh?=
 =?utf-8?B?eVJPVXVLV2J4ZHp4czZObHlHcG9KTzdPRFRjVm1RL2RXc2hEZnhFcTdRd0xJ?=
 =?utf-8?B?VFlUUkVSdVZFM2xEM25vYlRIQUFvYmdhNkxicXQ2VUVac2FFUDdtOUxUR3hl?=
 =?utf-8?B?YkkwcHFBMFptU0F6eEZTekE2bVBiQmc3MlJWSXF5MS9hVVcwaTVqT2VSdjN3?=
 =?utf-8?B?ZDFkVlFMaWVJSzdYM0JVYld0Qm9HdS9XTEt6Y2laVFN6WTR6bVo1bmpCNXpz?=
 =?utf-8?B?aFZZZ2ZROUpPWlJTOVhuT3o2RFAzZjJobVF4RmxSakxZV1k1Z0pnTUtMaTNt?=
 =?utf-8?B?c1V5VGYrYklkazNiNDJTRGIwcnZ3cEJUNndiVm5hR010OTlQOTUzbkp4SGQv?=
 =?utf-8?B?VVVCQ1ZzRFVrMFRDV1lYdmw5TnlIb25FMkZEY01URUhvUWV6UGYxVW1nNjNG?=
 =?utf-8?B?SlRzMHRaVFpZRFg2cUFNZzBLWWJUSEZtQ2tpSWJMSGZGZFRvbWJ0V29lNXBJ?=
 =?utf-8?B?Z2JoT2hTT0I3KzhYU2hKb2Y0ck1MdVF1L0tZb3lXblE1aVVVVkxvTTB6SEFm?=
 =?utf-8?B?UmF5cC84TUFyU0FuN3V1NDZqeWd4ZEt2cm8zYm8vK3NkU1VCa3dSQjA3Wjhq?=
 =?utf-8?Q?zI8w=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2025 08:52:31.5468
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0e5595ce-c096-4983-65c8-08de1ab65348
X-MS-Exchange-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:
	CO1PEPF000044FA.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4413



On 27/10/2025 22:12, Dmytro Prokopchuk1 wrote:
> MISRA C Rule 11.3 prohibits casting between pointer-to-object types that
> are different types. The original code used a macro 'NextMemoryDescriptor()'
> that performed a non-compliant cast from 'UINT8*' to 'EFI_MEMORY_DESCRIPTOR*'.
> 
> Change 'efi_process_memory_map_bootinfo()' function parameter from
> 'EFI_MEMORY_DESCRIPTOR *' to 'void *' for the memory map parameter. Replace
> usage of 'NextMemoryDescriptor()' macro with compliant pointer arithmetic
> on 'void *', followed by a single compliant cast to 'EFI_MEMORY_DESCRIPTOR *'.
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Nov 03 09:06:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 09:06:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155209.1484763 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFqVm-00030y-1D; Mon, 03 Nov 2025 09:06:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155209.1484763; Mon, 03 Nov 2025 09:06: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 1vFqVl-00030r-UI; Mon, 03 Nov 2025 09:06:01 +0000
Received: by outflank-mailman (input) for mailman id 1155209;
 Mon, 03 Nov 2025 03: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=2xPw=5L=inspur.com=chuguangqing@srs-se1.protection.inumbo.net>)
 id 1vFlA5-0001cN-Ja
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 03:23:17 +0000
Received: from ssh247.corpemail.net (ssh247.corpemail.net [210.51.61.247])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6c8ea768-b864-11f0-9d16-b5c5bf9af7f9;
 Mon, 03 Nov 2025 04:23:13 +0100 (CET)
Received: from Jtjnmail201615.home.langchao.com
 by ssh247.corpemail.net ((D)) with ASMTP (SSL) id 202511031123089213;
 Mon, 03 Nov 2025 11:23:08 +0800
Received: from jtjnmailAR01.home.langchao.com (10.100.2.42) by
 Jtjnmail201615.home.langchao.com (10.100.2.15) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.58; Mon, 3 Nov 2025 11:23:06 +0800
Received: from inspur.com (10.100.2.107) by jtjnmailAR01.home.langchao.com
 (10.100.2.42) with Microsoft SMTP Server id 15.1.2507.58 via Frontend
 Transport; Mon, 3 Nov 2025 11:23:06 +0800
Received: from localhost.localdomain.com (unknown [10.94.13.117])
 by app3 (Coremail) with SMTP id awJkCsDw3fgXIAhpPa8JAA--.11940S4;
 Mon, 03 Nov 2025 11:23:06 +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: 6c8ea768-b864-11f0-9d16-b5c5bf9af7f9
From: Chu Guangqing <chuguangqing@inspur.com>
To: <jgross@suse.com>, <sstabellini@kernel.org>,
	<oleksandr_tyshchenko@epam.com>, <andrew+netdev@lunn.ch>,
	<davem@davemloft.net>, <edumazet@google.com>, <kuba@kernel.org>,
	<pabeni@redhat.com>
CC: <xen-devel@lists.xenproject.org>, <netdev@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, Chu Guangqing <chuguangqing@inspur.com>
Subject: [PATCH] xen/netfront: Comment Correction: Fix Spelling Error and Description of Queue Quantity Rules
Date: Mon, 3 Nov 2025 11:22:12 +0800
Message-ID: <20251103032212.2462-1-chuguangqing@inspur.com>
X-Mailer: git-send-email 2.43.7
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-CM-TRANSID: awJkCsDw3fgXIAhpPa8JAA--.11940S4
X-Coremail-Antispam: 1UD129KBjvJXoW7KFWfGw4fZr1DGFy3Xr4UCFg_yoW8Xw1Dpr
	ZxWwsIvwn5XanFy3Wvy3WxurW5Xa18GFyDWrWfu3y3Xws8ZFyjqry3KFW5Xr18Jr4kGa1Y
	yF4jqF9ruwn0v3DanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2
	9KBjDU0xBIdaVrnRJUUU9j14x267AKxVW8JVW5JwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0
	rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02
	1l84ACjcxK6xIIjxv20xvE14v26w1j6s0DM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26rxl
	6s0DM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s
	0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xII
	jxv20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr
	1lF7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxa
	n2IY04v7MxkF7I0En4kS14v26r1q6r43MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4
	AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE
	17CEb7AF67AKxVWUtVW8ZwCIc40Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1j6r1xMI
	IF0xvE2Ix0cI8IcVCY1x0267AKxVW8JVWxJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4l
	IxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8JVW8JrUvcSsGvf
	C2KfnxnUUI43ZEXa7VUbGQ6JUUUUU==
X-CM-SenderInfo: 5fkxw35dqj1xlqj6x0hvsx2hhfrp/
X-CM-DELIVERINFO: =?B?WZlWr5RRTeOiUs3aOqHZ50hzsfHKF9Ds6CbXmDm38RucXu3DYXJR7Zlh9zE0nt/Iac
	D+Kd7qCoyzVvXU23E45gA/UozU+vTWs0UaMZjN3SDVnrRYOZ4d5fZaq5YsE8h+Y6TFhwys
	rNxsp/VnNVvUSEPN9bo=
Content-Type: text/plain
tUid: 20251103112308691f091018264b888eb3e7c243b9f925
X-Abuse-Reports-To: service@corp-email.com
Abuse-Reports-To: service@corp-email.com
X-Complaints-To: service@corp-email.com
X-Report-Abuse-To: service@corp-email.com

The original comments contained spelling errors and incomplete logical
descriptions, which could easily lead to misunderstandings of the code
logic. The specific modifications are as follows:

Correct the spelling error by changing "inut max" to "but not exceed the
maximum limit";

Add the note "If the user has not specified a value, the default maximum
limit is 8" to clarify the default value logic;

Improve the coherence of the statement to make the queue quantity rules
clearer.

After the modification, the comments can accurately reflect the code
behavior of "taking the smaller value between the number of CPUs and the
default maximum limit of 8 for the number of queues", enhancing code
maintainability.

Signed-off-by: Chu Guangqing <chuguangqing@inspur.com>
---
 drivers/net/xen-netfront.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index a11a0e949400..7c2220366623 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -2696,8 +2696,9 @@ static int __init netif_init(void)
 
 	pr_info("Initialising Xen virtual ethernet driver\n");
 
-	/* Allow as many queues as there are CPUs inut max. 8 if user has not
-	 * specified a value.
+	/* Allow the number of queues to match the number of CPUs, but not exceed
+	 * the maximum limit. If the user has not specified a value, the default
+	 * maximum limit is 8.
 	 */
 	if (xennet_max_queues == 0)
 		xennet_max_queues = min_t(unsigned int, MAX_QUEUES_DEFAULT,
-- 
2.43.7



From xen-devel-bounces@lists.xenproject.org Mon Nov 03 09:47:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 09:47:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155268.1484773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFr9u-0008TH-0x; Mon, 03 Nov 2025 09:47:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155268.1484773; Mon, 03 Nov 2025 09:47:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFr9t-0008TA-UM; Mon, 03 Nov 2025 09:47:29 +0000
Received: by outflank-mailman (input) for mailman id 1155268;
 Mon, 03 Nov 2025 09:47: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=OKl+=5L=bounce.vates.tech=bounce-md_30504962.69087a2d.v1-64c37cfd18c34ef0b0fb52b8aa63f257@srs-se1.protection.inumbo.net>)
 id 1vFr9s-0008T4-Kk
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 09:47:28 +0000
Received: from mail132-29.atl131.mandrillapp.com
 (mail132-29.atl131.mandrillapp.com [198.2.132.29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1a8b6cac-b89a-11f0-9d16-b5c5bf9af7f9;
 Mon, 03 Nov 2025 10:47:26 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-29.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4d0RZj10rmz7lmGdt
 for <xen-devel@lists.xenproject.org>; Mon,  3 Nov 2025 09:47:25 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 64c37cfd18c34ef0b0fb52b8aa63f257; Mon, 03 Nov 2025 09:47: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: 1a8b6cac-b89a-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1762163245; x=1762433245;
	bh=e34REhW2FOr9i00JivW7lM7owZg4u88m1CVJlKKPKtI=;
	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=rW5Btdh4nxeTL2CtHNJRn2Q+i1kLMQQPgHA6wCPQYp5cShkhVFwxZBGcogpBBhK2w
	 HhqFhGZmCiZlNotZdAqbMezxFkgxUHShTA2Xfl2tl39XeoR+kRifp16wzW4RRHM0hX
	 MFNz3J29ZKe8Ssj6PkQR1Xe2St4c8wAvUGx3kGo2HABNT2x2qymlVWcLKqEDv8I/Yw
	 y8zclKrExGEW70sWOSEG8VSWNn4T1VJZsQu7iW+R4qlUiuvtIcMPXpx+yMvjrb4oEb
	 NFihUT7eS9oe5dlPrhl5JqjMuiyOlQpq4BmYN5yiJ9e9VEZFnn8Y7hBUlDsysy91LA
	 AMHC8Qc1QN4eQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1762163245; x=1762423745; i=teddy.astie@vates.tech;
	bh=e34REhW2FOr9i00JivW7lM7owZg4u88m1CVJlKKPKtI=;
	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=NTqBzYUVe9OzWLkB4yaKbvb27MhUVRqCeihU9RwhDCsa6tD50UnhpTEa+N4rDPh2l
	 nDWYS6sDOFyDd2Fp0AN3D15GcYSuNa56HotuFKcisEY56hsHtN1T7pCsl6AbkFHYdQ
	 Pv7NTI6LTeJRGehKSRYAc7SKE+u/lVGVd9WvNwTbTZJm4mhA1xFukwJ6WfUboI56vo
	 ENGveCNq/1mJuV8VnB0C5dOBU5+x9bS2RRtpgfzeZdO9GgVzi5bxM1lhUIxd/j1Lo4
	 DkzRVBm1eAPAdDWCEVaIsAzHI6gETf804ZXmP7ybXqGRdQu+UHRpZL10x4yj8bz0Io
	 4nupH2bLDImxQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[XEN][PATCH]=20xen:=20make=20VMTRACE=20support=20optional?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1762163243064
Message-Id: <aab7824b-4485-41f4-8ad6-572ffa0ca4f3@vates.tech>
To: "Grygorii Strashko" <grygorii_strashko@epam.com>, xen-devel@lists.xenproject.org
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Tamas K Lengyel" <tamas@tklengyel.com>, "Alexandru Isaila" <aisaila@bitdefender.com>, "Petre Pircalabu" <ppircalabu@bitdefender.com>, "Penny Zheng" <Penny.Zheng@amd.com>
References: <20251031212005.1338212-1-grygorii_strashko@epam.com>
In-Reply-To: <20251031212005.1338212-1-grygorii_strashko@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.64c37cfd18c34ef0b0fb52b8aa63f257?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251103:md
Date: Mon, 03 Nov 2025 09:47:25 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 31/10/2025 =C3=A0 22:24, Grygorii Strashko a =C3=A9crit=C2=A0:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> The VMTRACE feature 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 two Kconfig options:
> - CONFIG_HAS_VMTRACE which allows Platform/Arch to advertise VMTRACE
> support readiness
> - CONFIG_VMTRACE to enable/disable the feature.
> 

I like the idea of making it optional since it's only used in specific 
contexts.

> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
> Based on top of patch "domain: adjust soft-reset arch dependency" [1]
> 
> [1] https://patchwork.kernel.org/project/xen-devel/patch/c9c8c9c6-a155-49=
86-bf77-5766cdcd6024@suse.com/
> 
>   xen/Kconfig.debug                       | 15 +++++++++++++++
>   xen/arch/x86/domctl.c                   |  4 ++++
>   xen/arch/x86/hvm/Kconfig                |  1 +
>   xen/arch/x86/hvm/vmx/vmcs.c             |  2 ++
>   xen/arch/x86/hvm/vmx/vmx.c              | 10 ++++++++++
>   xen/arch/x86/include/asm/guest-msr.h    |  2 ++
>   xen/arch/x86/include/asm/hvm/hvm.h      |  9 +++++++++
>   xen/arch/x86/include/asm/hvm/vmx/vmcs.h |  2 ++
>   xen/arch/x86/mm/mem_sharing.c           |  2 ++
>   xen/arch/x86/vm_event.c                 |  6 ++++--
>   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 ++++
>   15 files changed, 77 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
> index d900d926c555..70ec4f0d14a5 100644
> --- a/xen/Kconfig.debug
> +++ b/xen/Kconfig.debug
> @@ -155,4 +155,19 @@ config DEBUG_INFO
>   =09  "make install-xen" for installing xen.efi, stripping needs to be
>   =09  done outside the Xen build environment).
>   
> +config HAS_VMTRACE
> +    bool
> +
> +config VMTRACE
> +    bool "HW VM tracing support"
> +    depends on HAS_VMTRACE
> +    default y
> +    help
> +      Enables HW VM tracing support which allows to configure HW process=
or
> +      features (vmtrace_op) to enable capturing information about softwa=
re
> +      execution using dedicated hardware facilities with minimal interfe=
rence
> +      to the software being traced. The trace date can be retrieved usin=
g buffer
> +      shared between Xen and domain
> +      (see XENMEM_acquire_resource(XENMEM_resource_vmtrace_buf)).
> +
>   endmenu
> diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
> index 6153e3c07e2d..d9521808dcba 100644
> --- a/xen/arch/x86/domctl.c
> +++ b/xen/arch/x86/domctl.c
> @@ -154,6 +154,7 @@ void arch_get_domain_info(const struct domain *d,
>   static int do_vmtrace_op(struct domain *d, struct xen_domctl_vmtrace_op=
 *op,
>                            XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>   {
> +#ifdef CONFIG_VMTRACE
>       struct vcpu *v;
>       int rc;
>   
> @@ -198,6 +199,9 @@ static int do_vmtrace_op(struct domain *d, struct xen=
_domctl_vmtrace_op *op,
>       vcpu_unpause(v);
>   
>       return rc;
> +#else
> +    return -EOPNOTSUPP;
> +#endif
>   }
>   
>   #define MAX_IOPORTS 0x10000
> diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
> index c1a131d1851a..c017a77fffe0 100644
> --- a/xen/arch/x86/hvm/Kconfig
> +++ b/xen/arch/x86/hvm/Kconfig
> @@ -29,6 +29,7 @@ config INTEL_VMX
>   =09bool "Intel VT-x" if EXPERT
>   =09default INTEL
>   =09select ARCH_VCPU_IOREQ_COMPLETION
> +=09select HAS_VMTRACE
>   =09help
>   =09  Enables virtual machine extensions on platforms that implement the
>   =09  Intel Virtualization Technology (Intel VT-x).
> diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
> index ab8b1c87ec0f..3728a9140223 100644
> --- a/xen/arch/x86/hvm/vmx/vmcs.c
> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
> @@ -300,6 +300,7 @@ static int vmx_init_vmcs_config(bool bsp)
>       rdmsrl(MSR_IA32_VMX_MISC, _vmx_misc_cap);
>   
>       /* Check whether IPT is supported in VMX operation. */
> +#ifdef CONFIG_VMTRACE
>       if ( bsp )
>           vmtrace_available =3D cpu_has_proc_trace &&
>                               (_vmx_misc_cap & VMX_MISC_PROC_TRACE);
> @@ -310,6 +311,7 @@ static int vmx_init_vmcs_config(bool bsp)
>                  smp_processor_id());
>           return -EINVAL;
>       }
> +#endif
>   
>       if ( caps.cpu_based_exec_control & CPU_BASED_ACTIVATE_SECONDARY_CON=
TROLS )
>       {
> diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
> index b65981077295..f1588cd90b2d 100644
> --- a/xen/arch/x86/hvm/vmx/vmx.c
> +++ b/xen/arch/x86/hvm/vmx/vmx.c
> @@ -622,6 +622,7 @@ static void cf_check domain_creation_finished(struct =
domain *d)
>   
>   static void vmx_init_ipt(struct vcpu *v)
>   {
> +#ifdef CONFIG_VMTRACE
>       unsigned int size =3D v->domain->vmtrace_size;
>   
>       if ( !size )
> @@ -632,6 +633,7 @@ static void vmx_init_ipt(struct vcpu *v)
>       ASSERT(size >=3D PAGE_SIZE && (size & (size - 1)) =3D=3D 0);
>   
>       v->arch.msrs->rtit.output_limit =3D size - 1;
> +#endif
>   }
>   
>   static int cf_check vmx_vcpu_initialise(struct vcpu *v)
> @@ -724,11 +726,13 @@ static void vmx_save_guest_msrs(struct vcpu *v)
>        */
>       v->arch.hvm.vmx.shadow_gs =3D read_gs_shadow();
>   
> +#ifdef CONFIG_VMTRACE
>       if ( v->arch.hvm.vmx.ipt_active )
>       {
>           rdmsrl(MSR_RTIT_OUTPUT_MASK, msrs->rtit.output_mask);
>           rdmsrl(MSR_RTIT_STATUS, msrs->rtit.status);
>       }
> +#endif
>   
>       if ( cp->feat.pks )
>           msrs->pkrs =3D rdpkrs_and_cache();
> @@ -747,12 +751,14 @@ static void vmx_restore_guest_msrs(struct vcpu *v)
>       if ( cpu_has_msr_tsc_aux )
>           wrmsr_tsc_aux(msrs->tsc_aux);
>   
> +#ifdef CONFIG_VMTRACE
>       if ( v->arch.hvm.vmx.ipt_active )
>       {
>           wrmsrl(MSR_RTIT_OUTPUT_BASE, page_to_maddr(v->vmtrace.pg));
>           wrmsrl(MSR_RTIT_OUTPUT_MASK, msrs->rtit.output_mask);
>           wrmsrl(MSR_RTIT_STATUS, msrs->rtit.status);
>       }
> +#endif
>   
>       if ( cp->feat.pks )
>           wrpkrs(msrs->pkrs);
> @@ -2626,6 +2632,7 @@ static bool cf_check vmx_get_pending_event(
>       return true;
>   }
>   
> +#ifdef CONFIG_VMTRACE
>   /*
>    * We only let vmtrace agents see and modify a subset of bits in MSR_RT=
IT_CTL.
>    * These all pertain to data-emitted into the trace buffer(s).  Must no=
t
> @@ -2768,6 +2775,7 @@ static int cf_check vmtrace_reset(struct vcpu *v)
>       v->arch.msrs->rtit.status =3D 0;
>       return 0;
>   }
> +#endif
>   
>   static uint64_t cf_check vmx_get_reg(struct vcpu *v, unsigned int reg)
>   {
> @@ -2940,11 +2948,13 @@ static struct hvm_function_table __initdata_cf_cl=
obber vmx_function_table =3D {
>       .altp2m_vcpu_emulate_ve =3D vmx_vcpu_emulate_ve,
>       .altp2m_vcpu_emulate_vmfunc =3D vmx_vcpu_emulate_vmfunc,
>   #endif
> +#ifdef CONFIG_VMTRACE
>       .vmtrace_control =3D vmtrace_control,
>       .vmtrace_output_position =3D vmtrace_output_position,
>       .vmtrace_set_option =3D vmtrace_set_option,
>       .vmtrace_get_option =3D vmtrace_get_option,
>       .vmtrace_reset =3D vmtrace_reset,
> +#endif
>   
>       .get_reg =3D vmx_get_reg,
>       .set_reg =3D vmx_set_reg,
> diff --git a/xen/arch/x86/include/asm/guest-msr.h b/xen/arch/x86/include/=
asm/guest-msr.h
> index 5f0cb0a93995..702f47fe1e16 100644
> --- a/xen/arch/x86/include/asm/guest-msr.h
> +++ b/xen/arch/x86/include/asm/guest-msr.h
> @@ -50,6 +50,7 @@ struct vcpu_msrs
>           };
>       } misc_features_enables;
>   
> +#ifdef CONFIG_VMTRACE
>       /*
>        * 0x00000560 ... 57x - MSR_RTIT_*
>        *
> @@ -81,6 +82,7 @@ struct vcpu_msrs
>               };
>           };
>       } rtit;
> +#endif
>   
>       /*
>        * 0x000006e1 - MSR_PKRS - Protection Key Supervisor.
> diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/as=
m/hvm/hvm.h
> index 7412256a2dab..728b9624522f 100644
> --- a/xen/arch/x86/include/asm/hvm/hvm.h
> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
> @@ -234,12 +234,14 @@ struct hvm_function_table {
>       int (*altp2m_vcpu_emulate_vmfunc)(const struct cpu_user_regs *regs)=
;
>   #endif
>   
> +#ifdef CONFIG_VMTRACE
>       /* vmtrace */
>       int (*vmtrace_control)(struct vcpu *v, bool enable, bool reset);
>       int (*vmtrace_output_position)(struct vcpu *v, uint64_t *pos);
>       int (*vmtrace_set_option)(struct vcpu *v, uint64_t key, uint64_t va=
lue);
>       int (*vmtrace_get_option)(struct vcpu *v, uint64_t key, uint64_t *v=
alue);
>       int (*vmtrace_reset)(struct vcpu *v);
> +#endif
>   
>       uint64_t (*get_reg)(struct vcpu *v, unsigned int reg);
>       void (*set_reg)(struct vcpu *v, unsigned int reg, uint64_t val);
> @@ -738,6 +740,7 @@ static inline bool altp2m_vcpu_emulate_ve(struct vcpu=
 *v)
>   bool altp2m_vcpu_emulate_ve(struct vcpu *v);
>   #endif /* CONFIG_ALTP2M */
>   
> +#ifdef CONFIG_VMTRACE
>   static inline int hvm_vmtrace_control(struct vcpu *v, bool enable, bool=
 reset)
>   {
>       if ( hvm_funcs.vmtrace_control )
> @@ -780,6 +783,12 @@ static inline int hvm_vmtrace_reset(struct vcpu *v)
>   
>       return -EOPNOTSUPP;
>   }
> +#else
> +static inline int hvm_vmtrace_reset(struct vcpu *v)
> +{
> +    return 0;
> +}
> +#endif
>   
>   /*
>    * Accessors for registers which have per-guest-type or per-vendor loca=
tions
> diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h b/xen/arch/x86/inclu=
de/asm/hvm/vmx/vmcs.h
> index 8ff7c8045fc6..d28a2682e9df 100644
> --- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
> +++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
> @@ -155,7 +155,9 @@ struct vmx_vcpu {
>       bool                 ept_spurious_misconfig;
>   
>       /* Processor Trace configured and enabled for the vcpu. */
> +#ifdef CONFIG_VMTRACE
>       bool                 ipt_active;
> +#endif
>   
>       /* Is the guest in real mode? */
>       uint8_t              vmx_realmode;
> diff --git a/xen/arch/x86/mm/mem_sharing.c b/xen/arch/x86/mm/mem_sharing.=
c
> index 4787b2796479..074f1b2562b3 100644
> --- a/xen/arch/x86/mm/mem_sharing.c
> +++ b/xen/arch/x86/mm/mem_sharing.c
> @@ -1888,7 +1888,9 @@ static int fork(struct domain *cd, struct domain *d=
)
>           domain_pause(d);
>           cd->max_pages =3D d->max_pages;
>           *cd->arch.cpu_policy =3D *d->arch.cpu_policy;
> +#ifdef CONFIG_VMTRACE
>           cd->vmtrace_size =3D d->vmtrace_size;
> +#endif
>           cd->parent =3D d;
>       }
>   
> diff --git a/xen/arch/x86/vm_event.c b/xen/arch/x86/vm_event.c
> index fc349270b9c5..f4c8696ce54e 100644
> --- a/xen/arch/x86/vm_event.c
> +++ b/xen/arch/x86/vm_event.c
> @@ -253,7 +253,9 @@ void vm_event_fill_regs(vm_event_request_t *req)
>       req->data.regs.x86.shadow_gs =3D ctxt.shadow_gs;
>       req->data.regs.x86.dr6 =3D ctxt.dr6;
>   
> +#ifdef CONFIG_VMTRACE
>       if ( hvm_vmtrace_output_position(curr, &req->data.regs.x86.vmtrace_=
pos) !=3D 1 )
> +#endif
>           req->data.regs.x86.vmtrace_pos =3D ~0;

This if-def looks very oddly placed.

>   #endif
>   }
> @@ -303,12 +305,12 @@ void vm_event_emulate_check(struct vcpu *v, vm_even=
t_response_t *rsp)
>   #endif
>   }
>   
> +#ifdef CONFIG_VMTRACE
>   void vm_event_reset_vmtrace(struct vcpu *v)
>   {
> -#ifdef CONFIG_HVM
>       hvm_vmtrace_reset(v);
> -#endif
>   }
> +#endif
>   
>   /*
>    * Local variables:
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 7dcd466e5a12..2be6ee03d004 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -136,7 +136,9 @@ struct vcpu *idle_vcpu[NR_CPUS] __read_mostly;
>   
>   vcpu_info_t dummy_vcpu_info;
>   
> +#ifdef CONFIG_VMTRACE
>   bool __read_mostly vmtrace_available;
> +#endif
>   
>   bool __read_mostly vpmu_is_available;
>   
> @@ -318,6 +320,7 @@ static void vcpu_info_reset(struct vcpu *v)
>   
>   static void vmtrace_free_buffer(struct vcpu *v)
>   {
> +#ifdef CONFIG_VMTRACE
>       const struct domain *d =3D v->domain;
>       struct page_info *pg =3D v->vmtrace.pg;
>       unsigned int i;
> @@ -332,10 +335,12 @@ static void vmtrace_free_buffer(struct vcpu *v)
>           put_page_alloc_ref(&pg[i]);
>           put_page_and_type(&pg[i]);
>       }
> +#endif
>   }
>   
>   static int vmtrace_alloc_buffer(struct vcpu *v)
>   {
> +#ifdef CONFIG_VMTRACE
>       struct domain *d =3D v->domain;
>       struct page_info *pg;
>       unsigned int i;
> @@ -377,6 +382,9 @@ static int vmtrace_alloc_buffer(struct vcpu *v)
>       }
>   
>       return -ENODATA;
> +#else
> +    return 0;
> +#endif
>   }
>   
>   /*
> @@ -825,7 +833,9 @@ struct domain *domain_create(domid_t domid,
>           ASSERT(!config->altp2m.nr);
>   #endif
>   
> +#ifdef CONFIG_VMTRACE
>           d->vmtrace_size =3D config->vmtrace_size;
> +#endif
>       }
>   
>       /* Sort out our idea of is_control_domain(). */
> diff --git a/xen/common/memory.c b/xen/common/memory.c
> index 3688e6dd5032..66dc7f7a0a41 100644
> --- a/xen/common/memory.c
> +++ b/xen/common/memory.c
> @@ -1155,8 +1155,10 @@ static unsigned int resource_max_frames(const stru=
ct domain *d,
>       case XENMEM_resource_ioreq_server:
>           return ioreq_server_max_frames(d);
>   
> +#ifdef CONFIG_VMTRACE
>       case XENMEM_resource_vmtrace_buf:
>           return d->vmtrace_size >> PAGE_SHIFT;
> +#endif
>   
>       default:
>           return 0;
> @@ -1198,6 +1200,7 @@ static int acquire_ioreq_server(struct domain *d,
>   #endif
>   }
>   
> +#ifdef CONFIG_VMTRACE
>   static int acquire_vmtrace_buf(
>       struct domain *d, unsigned int id, unsigned int frame,
>       unsigned int nr_frames, xen_pfn_t mfn_list[])
> @@ -1220,6 +1223,7 @@ static int acquire_vmtrace_buf(
>   
>       return nr_frames;
>   }
> +#endif
>   

Given that vmtrace feature is fairly isolated in VMX code, wouldn't it 
be better to move all vmtrace related functions (including vmx_init_ipt) 
in a separate vmtrace.c file and make such file gated behind 
CONFIG_VMTRACE ?

>   /*
>    * Returns -errno on error, or positive in the range [1, nr_frames] on
> @@ -1238,8 +1242,10 @@ static int _acquire_resource(
>       case XENMEM_resource_ioreq_server:
>           return acquire_ioreq_server(d, id, frame, nr_frames, mfn_list);
>   
> +#ifdef CONFIG_VMTRACE
>       case XENMEM_resource_vmtrace_buf:
>           return acquire_vmtrace_buf(d, id, frame, nr_frames, mfn_list);
> +#endif
>   
>       default:
>           ASSERT_UNREACHABLE();
> diff --git a/xen/common/vm_event.c b/xen/common/vm_event.c
> index b2787c010890..cf0258223f50 100644
> --- a/xen/common/vm_event.c
> +++ b/xen/common/vm_event.c
> @@ -441,7 +441,8 @@ static int vm_event_resume(struct domain *d, struct v=
m_event_domain *ved)
>               if ( rsp.flags & VM_EVENT_FLAG_GET_NEXT_INTERRUPT )
>                   vm_event_monitor_next_interrupt(v);
>   
> -            if ( rsp.flags & VM_EVENT_FLAG_RESET_VMTRACE )
> +            if ( IS_ENABLED(CONFIG_VMTRACE) &&
> +                 (rsp.flags & VM_EVENT_FLAG_RESET_VMTRACE) )
>                   vm_event_reset_vmtrace(v);
>   
>               if ( rsp.flags & VM_EVENT_FLAG_VCPU_PAUSED )
> diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
> index 8aab05ae93c8..aa86a9f46022 100644
> --- a/xen/include/xen/domain.h
> +++ b/xen/include/xen/domain.h
> @@ -191,7 +191,11 @@ void vnuma_destroy(struct vnuma_info *vnuma);
>   static inline void vnuma_destroy(struct vnuma_info *vnuma) { ASSERT(!vn=
uma); }
>   #endif
>   
> +#ifdef CONFIG_VMTRACE
>   extern bool vmtrace_available;
> +#else
> +#define vmtrace_available false
> +#endif
>   
>   extern bool vpmu_is_available;
>   
> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
> index 02bdc256ce37..dcd8647e0d36 100644
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -300,9 +300,11 @@ struct vcpu
>       /* vPCI per-vCPU area, used to store data for long running operatio=
ns. */
>       struct vpci_vcpu vpci;
>   
> +#ifdef CONFIG_VMTRACE
>       struct {
>           struct page_info *pg; /* One contiguous allocation of d->vmtrac=
e_size */
>       } vmtrace;
> +#endif
>   
>       struct arch_vcpu arch;
>   
> @@ -623,7 +625,9 @@ struct domain
>       unsigned int nr_altp2m;    /* Number of altp2m tables. */
>   #endif
>   
> +#ifdef CONFIG_VMTRACE
>       unsigned int vmtrace_size; /* Buffer size in bytes, or 0 to disable=
. */
> +#endif
>   
>   #ifdef CONFIG_ARGO
>       /* Argo interdomain communication support */



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Nov 03 10:11:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 10:11:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155281.1484782 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFrWx-0004Jb-Ut; Mon, 03 Nov 2025 10:11:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155281.1484782; Mon, 03 Nov 2025 10:11:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFrWx-0004JU-Rz; Mon, 03 Nov 2025 10:11:19 +0000
Received: by outflank-mailman (input) for mailman id 1155281;
 Mon, 03 Nov 2025 10:11: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=MwQE=5L=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1vFrWw-0004JO-IE
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 10:11:18 +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 6e7d9a74-b89d-11f0-9d16-b5c5bf9af7f9;
 Mon, 03 Nov 2025 11:11:15 +0100 (CET)
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by AS2PR03MB9224.eurprd03.prod.outlook.com (2603:10a6:20b:5fe::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.16; Mon, 3 Nov
 2025 10:11:10 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::d976:7403:c89d:4677]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::d976:7403:c89d:4677%6]) with mapi id 15.20.9275.015; Mon, 3 Nov 2025
 10:11: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: 6e7d9a74-b89d-11f0-9d16-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UP8QXwtNsrJJOA2AMs7tgu7YP5Lg9/VS0duCbfti/U3KHZQtAwWGhN0p+BKDvCBX6R+FsFXalMYe6sjXSPqm8cevFEEyxfuA4EP+r7ojOW62xrWEROEUPA+YBt2Noa/x1Mj+o+0Ac/JwSyG4Kwqc/qT8ryhI9jzrD+WmhSCJqKqrx/D+9yLkgm8dhsZoVwSA6E+wJtkmGz6TAJazA+9lfwDmvpq6dKdRysGjUIgFnrwA6LGHPhWr28BT4WAMI8dW4dD78YV07BmvKLPwUoir6CeePr/RKId1/PEVe5jWc8k6kxu0tlf6LGUnF5+z13NNnfjcnEe7puNqJfNXdCEn3g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NEBXxe5Boj0saBa99VfCm7OJSQT//pjU4KKrjePIzjk=;
 b=NWs6Ojaidi8HPnoGdrQeEDP1u2wracFG1u7oIc58P2QqEY7nUyh36oOGa5q6g+k0/+PwPn1VCx92Jku8H7UuzleEsPAVKfz69I2i6w2j8M8ap+AFjLLfHpeB6xSncJvmzsomr7ILzqyYtR0zGbBYvVEa3AyxKPHc5kPzNNPXbWMNxkRFd7KPTA5mdl5XpETQvtFeAQ8W9YQKLWoXv9FkqNuSR4orT9ktQaiOZCm7Ss2VIeHL2p7o8coZrimCcLJSFjGlDD32fRzBrYmGK2v0ueOAOdkreNnaRnmCFh614DTCbc9Kq/KlAJhknBtRBwgoLCv2NYKk1Kkd255ykJSuew==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NEBXxe5Boj0saBa99VfCm7OJSQT//pjU4KKrjePIzjk=;
 b=eoOc8FmIOOkJV8Dq6Bt+O7JpaMHLz2Mz3dViSk2Q/wbzSYuyM+Nl2y59+W1VSw8qWKa/bwFVyB+AtfdgHMRC1jT4lJW+L3mXlUDK9vEXpgoZnzZY4avYqjtXAsT0HGQIarmEDbsdhVFWzIgHh6MSeazgIMqNzbwxtU1e8NGTLI+fNZZVXZOB8LQvU0zApM5vREzXVd9IfyTp/4EaZE+9zxyMUiML0mOmH4hz/1b5oGg6PS7pYTlrWItI8/q4Eu/k0xNnOqBz1yhrlnN71ak4jUj/yzQXnt5ymuxPFzZKXf+YJeXp60z47xdzn/Yi8Vnt1yfnydjlQCd3Gh+M+QJ1jQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, Connor
 Davis <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>
Subject: [PATCH] misra: address Rule 11.3 in spin_unlock_common()
Thread-Topic: [PATCH] misra: address Rule 11.3 in spin_unlock_common()
Thread-Index: AQHcTKotzXBEqxBVDUKBYcHGEivA9g==
Date: Mon, 3 Nov 2025 10:11:09 +0000
Message-ID:
 <812bf5574cb44727c561e0ebc3a54848823ed490.1762163173.git.dmytro_prokopchuk1@epam.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|AS2PR03MB9224:EE_
x-ms-office365-filtering-correlation-id: f96cacb5-b1a4-4579-8fdf-08de1ac14f9b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|42112799006|7416014|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?5yDqOmsrls3W3pkAxOkKvI7G7V0dP8FL6gonjphDv/X75CuZMzDFLUuMPJ?=
 =?iso-8859-1?Q?xkucoinwVO2RLrC9XHc0Hhi8pZe0kx1qjZDFP8XaWzEBvmYfPtwT13GNR5?=
 =?iso-8859-1?Q?4p1LULaFlRz5wqe6gdsqxqXNRLS+DvZBkYJbQfUdeuK361Gzp0cffk5J0e?=
 =?iso-8859-1?Q?1Bx5nEa8fNa7vE7tET9RGVPBs8Ayjzm5xl11mi2KYfIGyMazZIxCMyFRBb?=
 =?iso-8859-1?Q?xM+Bp3ovroskUbcVAOF3em4D7P4T1M+tSORKUcvsom5Nsrt/XXfzHqzQys?=
 =?iso-8859-1?Q?dbWKcbmOooa40iVaugzPKN9nQ/G2aNSg2JAw+dcf171mmbjVGOLd4B8HG1?=
 =?iso-8859-1?Q?kt9yZ5Mdbg+FpdXExNkDDyip/pnvYl8mHp4LZzQRCE7T7iJXXS1n/JWG9t?=
 =?iso-8859-1?Q?q/sb4c6qbMDLpSuEabmItHPuFkwBV1Qp+xEgbCl1sNq6B3fcgmPzoNIwKU?=
 =?iso-8859-1?Q?ijXUkw16nbs/Fv/jODGbq1UYteXfoMpFufhg38F7x6UCuDXyscTVqdEVGR?=
 =?iso-8859-1?Q?jkRXrCvmQcPFP+Ey+tChm2R+7Yj9mtqpQFw6XnWHFM3UOYh5QxnTunw8An?=
 =?iso-8859-1?Q?IJc76W2YHZ+HQGlOyEwfymWFcGbn7kCuZCds0owNy4AIoJ7krbtZROTbKB?=
 =?iso-8859-1?Q?cCplXJHSWQGoqMPq3tdQKdifWAHYjOom+4ULFNHpUxqOiGBKEvfhvtAwkO?=
 =?iso-8859-1?Q?+Y4SYujHiyox61J7gZEcKcFRYJTlmHJkHeecgx49e6H3j9xyB9c/kqSSIr?=
 =?iso-8859-1?Q?q027Z0weSVVibawXzFRhBrfeNFyfsxDLegNTqzfjFIwFa0DYvfF6pfCWyr?=
 =?iso-8859-1?Q?QJeoGkvdTfdIGtcnWGwptOZWwkJNgc317cz+SKBQfa2N04qrZa+LEKlYJp?=
 =?iso-8859-1?Q?mQgDSkqPjulv618Y6P/oasWt3tkf9ZFhcTcdxCw6jQOUg5qRZpjqZ/COW5?=
 =?iso-8859-1?Q?jL+soST0n7TOuFrJsb92H3DfRsCo+0R6Q0dqhZoNzIhBD8kppBzU5g7u9x?=
 =?iso-8859-1?Q?Qk7cqD5e0nvb+gsjBSVesoYwfowAxQWUzIwgAsboJ+UM9t2q8xMB1AeIYX?=
 =?iso-8859-1?Q?EkF3yltJ30/AVAr7y7V3vRJU3PBM0wf7E3c4HfAyqAMqQUQ3ziu0PKlDCP?=
 =?iso-8859-1?Q?k67NcujMCQpbCHTXjEN9THW89zRlPKmqnp/2qRJJ5FRiqYMwkWIBme3L2o?=
 =?iso-8859-1?Q?1HYgiqUOmcSrHvnfBP202KYN7C4u33neRXYj+YOoNcWDXHU91O5idfuX2j?=
 =?iso-8859-1?Q?4Ln1/4aH1/bgi/zcyoJ0h0oJ/x+hanGH+8Zo8GJPZ1wT74MUmAyXUpd9Pw?=
 =?iso-8859-1?Q?jeaP/qthiscyUBjdGdwFOcoOTlyNtk2/oTI/93yQgIPOZK+ZSpGGBEsajg?=
 =?iso-8859-1?Q?7uv4Ce14z/489GPDpUtNaIkt7TKNl864j7719S5W5gTKen7b10RjhAsPIN?=
 =?iso-8859-1?Q?eGK0vCDaaTYvlxoCoWkfvmZPQptRSHLSUoKjpFjkHTCRw0RuuzFseFGJe7?=
 =?iso-8859-1?Q?dk+rRIwEXCbFJ6w/hvq27Ph7iDeWvcG9x2jRIHJzG07xQF1Ngys0rzbhLw?=
 =?iso-8859-1?Q?D1f1txdQ3C38q6G/lriLvh1nWm9B?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(42112799006)(7416014)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?ibKSWxTMXEkdmW0Kxv1f2PTOAg5sW2maNDAlFFUWdGYaMkZS6AaB3CH41K?=
 =?iso-8859-1?Q?jsVe/o79/XU0BJm9T8c1jhCB49sKt8DcN2wOg5lp/oXm0Iu8UbqMJXbnyl?=
 =?iso-8859-1?Q?E4k38SqEplirqUFX4pKdiwsyUcfUAKLxzMxNu6kx7ccOP8zzhB9pT9+5ZA?=
 =?iso-8859-1?Q?FFJUhmuokWd+pLiwPVhNQzBTSbPJfuAvsig9eGgHJZHMmi041ewSi93Eaz?=
 =?iso-8859-1?Q?VYj6uuqGftRj2po37WG7R7PAKr93WptOHeJ3SeZri+RGkvTKmTfm7XzArY?=
 =?iso-8859-1?Q?OUOCCLaOgdM+LSDdU4vUXVtDBL8BldWiNwlz/gP8/xBsXqyrRaun8G57tn?=
 =?iso-8859-1?Q?GBPJfX3yb360QeNBDD7OWzdhIgAcNUTjaroI4CErYVRRrB54TvLKphUPjv?=
 =?iso-8859-1?Q?+2m5ke8PyD2ob/IOspELWM8H6pjl9Cw4Rb+3p/SiidhFmm5x2TjWGVSigR?=
 =?iso-8859-1?Q?Tup3WpZ9vETRzJyJ6QT23igNx1vwqZQZB3f5ybLIQBz7YNObrqe2RFuMja?=
 =?iso-8859-1?Q?eyejClFWFK17m0PlU/ZslpQUpEWfUqHZohag546CtwIf0fYOKt/7gbvcPB?=
 =?iso-8859-1?Q?rRLpvmSN/P/R+fAAB8gXT9rvRJF34TiYduTt8fKg9ytiF8NZpsDSKHRYx/?=
 =?iso-8859-1?Q?Bh392EWoO9J7yeAzZYXNDnDZKPxNo41FxbNwrKdcSCYCgwkPPSh95gcLEY?=
 =?iso-8859-1?Q?3d8bKN1yLBJ+Ovhph5vLchUDGud7jdIOB4GmqbNtMD4w08FvObO8m6ARlI?=
 =?iso-8859-1?Q?M2822jc42gxoQ+e5zZg8z8hhtMqQhgQBL6hbPhiQF3InzSsjKk+6YWOgm1?=
 =?iso-8859-1?Q?rzQDtPv/T23v3/Np9bdOhTUknpFNyF657vC1WlSE5tN1ShpdEVOqNeRqe3?=
 =?iso-8859-1?Q?paMLRSuUKkxLZv3n4YeVhFTg2EKAxt1AuA31Zu5FHgn9NByv5+Kijry3aK?=
 =?iso-8859-1?Q?k/uQ1YkJOlt9Y/ICKrWvCjtz30+vo2hwgl09OEttoR2IDWpR0GWknN0Kxx?=
 =?iso-8859-1?Q?ox4P84NpYYtd9g2aEhOnQf2vhxCkFGH4q8t4skZo9Zvp/7jA1NxhcUGmeE?=
 =?iso-8859-1?Q?J/UjYg3kYae4x3pKJcNLUuPc0BBC+3i0M2XCxYwgEQKSQXBahI3pkcGqat?=
 =?iso-8859-1?Q?QejmDiDePC8EqnPe5jtq7kKUiwoS0DrqLs7ZknCzeGG3zV0FPNCPBIOtRg?=
 =?iso-8859-1?Q?0TavNANBQi+iCvhj01X18F6Msm+DQeA6Afb87mrMkah+02JAbu4ca4eM3M?=
 =?iso-8859-1?Q?ACgiTZ0weEXWSMu4vMlIAyQry68gv+xDDaMUMYyvlIMDhdWhW6FLAAGcip?=
 =?iso-8859-1?Q?22Nk4U98fFwN/k1ccjNeGKrUgDyU8SdiPUO/6s8fz5BG0/zE/8cQ+cYPJ9?=
 =?iso-8859-1?Q?iHug/sAREgXP/kyZ7iuwQQ93NPKhhUGEiPp6SK1XR0oz0q/1ob33DrMJnJ?=
 =?iso-8859-1?Q?xdceearBPi2Uuz7GhC5ot2jkvzKYo8bQcvRh3TPotsp7UTiGwta79JExu8?=
 =?iso-8859-1?Q?Capt8AevCRarHkdzODxISxmjQhiYd9kqvcMl24j9PS5n4DO2Ro+9Ygm6mT?=
 =?iso-8859-1?Q?35czJ6brqSwARoyhPpDvR1k/3+XRU5DeJmIxBNzk4KCLj9+IXvscRXMzs5?=
 =?iso-8859-1?Q?W1QQGK5vvLKE5tPIRl1RdE7w5k0WrYH43SnOg9GEqTE5f3zSOMzhiCCw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f96cacb5-b1a4-4579-8fdf-08de1ac14f9b
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2025 10:11:09.9664
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ArE1IYK63kRnUoluVPuuuUfBxMoes/H0LSKqH3dFFqRpFddKgOJt4wqXdMHe/G4Vw7nNKbq7zj2xutX97KTXeLQ1SdnNQ4SV4m3nmULXjQ0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9224

The generic 'add_sized()' macro performs type-based pointer casts, which
violate MISRA C Rule 11.3 (cast between pointer to object type and pointer
to a different object type).
Replace the use of 'add_sized(&t->head, 1)' with the type-specific
'add_u16_sized(&t->head, 1)' in the 'spin_unlock_common()' function.

A BUILD_BUG_ON(sizeof(t->head) !=3D sizeof(uint16_t)); check is added to
ensure the field size matches expectations at build time.

On RISC-V, the atomic addition function for 16-bit values was missing,
causing build failures when called 'add_u16_sized()'. Generate a static
inline implementation of 'add_u16_sized()' for uint16_t.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/2136333330
---
 xen/arch/riscv/include/asm/atomic.h | 10 ++++++++++
 xen/common/spinlock.c               |  3 ++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/include/asm/atomic.h b/xen/arch/riscv/include/a=
sm/atomic.h
index 8e0425cea0..2676061725 100644
--- a/xen/arch/riscv/include/asm/atomic.h
+++ b/xen/arch/riscv/include/asm/atomic.h
@@ -111,6 +111,16 @@ static always_inline void _add_sized(volatile void *p,
     }
 }
=20
+#define build_add_sized(name, type)                                     \
+static inline void name(volatile type *addr, unsigned long val)         \
+{                                                                       \
+    volatile type *ptr =3D addr;                                          =
\
+    write_atomic(ptr, read_atomic(ptr) + val);                          \
+}
+
+build_add_sized(add_u16_sized, uint16_t)
+#undef build_add_sized
+
 #define add_sized(p, x)                                 \
 ({                                                      \
     typeof(*(p)) x_ =3D (x);                              \
diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
index 0389293b09..d9dc9998e6 100644
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -367,7 +367,8 @@ static void always_inline spin_unlock_common(spinlock_t=
ickets_t *t,
     LOCK_PROFILE_REL;
     rel_lock(debug);
     arch_lock_release_barrier();
-    add_sized(&t->head, 1);
+    BUILD_BUG_ON(sizeof(t->head) !=3D sizeof(uint16_t));
+    add_u16_sized(&t->head, 1);
     arch_lock_signal();
     preempt_enable();
 }
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Nov 03 11:27:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 11:27:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155291.1484792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFsiC-0004ja-9u; Mon, 03 Nov 2025 11:27:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155291.1484792; Mon, 03 Nov 2025 11:27:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFsiC-0004jT-6x; Mon, 03 Nov 2025 11:27:00 +0000
Received: by outflank-mailman (input) for mailman id 1155291;
 Mon, 03 Nov 2025 11:26:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9qLe=5L=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vFsiA-0004jN-F6
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 11:26:58 +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 00f1d84d-b8a8-11f0-9d16-b5c5bf9af7f9;
 Mon, 03 Nov 2025 12:26:57 +0100 (CET)
Received: from DM4PR03MB7015.namprd03.prod.outlook.com (2603:10b6:8:42::8) by
 SN7PR03MB7231.namprd03.prod.outlook.com (2603:10b6:806:2e7::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.16; Mon, 3 Nov
 2025 11:26:53 +0000
Received: from DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9]) by DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9%3]) with mapi id 15.20.9275.015; Mon, 3 Nov 2025
 11:26: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: 00f1d84d-b8a8-11f0-9d16-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TqZ71BPqDP1Vmb/rD0pj9WLKeXJ6FNG22j6pYgaZBaxc3jbeQav/SUUVRIU5dvJ5usOb4R5DanjVat0PljxM3ftSyW7odkO1XHzG/V66n5sgfxWO7/9IN/1pH60qrRv/VatR16YuVjM7W5a34SXJQb3Wbu6UsEFTeAXtWq2XyYrRdZ76cfT2ikqtYUz7q7Oqj/xvVWN2bp1Nct/zi6hSuxjg7TB5QQNzhe+yYnG+ceAguu8m9VLwXiq1UDYSP9RpZZE9Zl4zfmXq6tw17h8XNkYs7fKV1gAbhlChnUmC+7my2m1XuBZZDbWRywFjccBzQED9aonXbGrTc+kkvaHPDQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bz6NHlqvVuX/qzIUaXLjAjYgOzXqFBuLRwKCx+QlN4A=;
 b=KaHwbo6Uj41Er9NoUuOTaUBNRVMRpsA2/uStg5y/sKt1NI5qh2AV7VZdDESmI9JB8v/ByJOml6y2SQrnKMzsQl+o1qqD3YgsXqHdX6A3xlPzVp3uHgt85FJvhj+YoMbCso+LcFBx3EOI314KlVzVr57ZxdMnoz7s8JiZ/tbGHt3QLJ1hANXane5+DfxSzeTetWwAR5S6LLR5tb1yemn7ORWaU0rK9Ymy3Ro1fpQNb59dfoOVawmc5hHziP0Z9NyIcm2f7/sExVHr2QyX4ZM/fMKOdhq10Q5PzsH0vNnkINGLhO82hPeZhtBrMO2fW3K5/Jj/afhYtZpZJnL9l8bMPg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bz6NHlqvVuX/qzIUaXLjAjYgOzXqFBuLRwKCx+QlN4A=;
 b=PNKrMdU+f6GCU34y1pHk9IeMsgW/ZANz4mqo7kSpVWBmU0UIHsgrFGwXRfH/O1EsAa9MYGUuL/f+3PsC2/JY/mmyNHbb2E8N1hsUocUkXm9M5J3yitgRD29c8gX0wmuRoPqr32zh7bg0Pj6PeMjzFjGW8RXCymeeQtDVdUOsSf0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <7fb6ca46-3806-4aa5-a642-28384d6b944c@citrix.com>
Date: Mon, 3 Nov 2025 11:26:48 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: address Rule 11.3 in spin_unlock_common()
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <812bf5574cb44727c561e0ebc3a54848823ed490.1762163173.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <812bf5574cb44727c561e0ebc3a54848823ed490.1762163173.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO0P265CA0006.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:355::17) To DM4PR03MB7015.namprd03.prod.outlook.com
 (2603:10b6:8:42::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR03MB7015:EE_|SN7PR03MB7231:EE_
X-MS-Office365-Filtering-Correlation-Id: 5288b695-69e2-4127-6fd0-08de1acbe303
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Q2lNNTNjWU5PVHBDWXdISkZLK3NEWEtJci9oVnB0bzF5WnRLRDNVMStGaUNN?=
 =?utf-8?B?K3Y1SzFIY2RvM1lKQjVJQ2lzSmZjbzZYc1NwZU05RWo4UTAzQi9ONm1JVHhO?=
 =?utf-8?B?bEdKbjl1YURXREJhRXBjMTdaaVBHY0FENmc0dnYrT3JMUE5vWW5RU3dnV3d0?=
 =?utf-8?B?WVRsU0s5MEdNcENpNlVkemtZa2hGTUNYTTlUOXg4YzFUWHgrc0dpbVQxaWNU?=
 =?utf-8?B?dTJxb281dzA5Q2laaU5uRmtiZnYrNXJZYlJYVkpDeVJUWVp2Z0creFF6QktK?=
 =?utf-8?B?cUc0d2VpN3NoL21xaDl2ZjkvUTkvbEl6ZlE5SWhKLy9zLzVrRldzU1JxL3VX?=
 =?utf-8?B?aXowNm1DdGE5YkVKaWxRbFV5TW9GUGhMWXdpUmh4Q3gzdUR0NGJkUmJscTls?=
 =?utf-8?B?MnNsWWVSbjJxUVdja0xLUjRyMlpqdG03V0hTTmlzYkw1QytoVUVla1Vjb1ZO?=
 =?utf-8?B?OGc4UjhGc3Q2MFl0Y1paYUlBNWtjcU91NlBqTU1sRHZQMEt6dVVkaDRJbGZy?=
 =?utf-8?B?MEx6ZU1NQXpnb1Ruc25FZ09XZE44bW1qeHZhZThMcWFQS1BlUjhFL1BGSFpw?=
 =?utf-8?B?dXlqempLRE9zeHJzclFsdW9UbXVpZlcrUHB2Q1FzMGFLTVhBNEZWN1BOM1hW?=
 =?utf-8?B?UnJXK3JlWFRFL2lYRnAvcFhBY1l6eDdSUjZoamx0Qm10cm5oQzgySWQ1eVRR?=
 =?utf-8?B?bWxDTDJUQ0lXbEEzVGdyRmFTbmZ2NVdDbCtnM25VQkVuNHNDaXhpS09kaFp2?=
 =?utf-8?B?TDJJcHBRUnVqWGFZaVdOdkh3S0VqMUpld210OGp3dVJPUUJ2Si91NngwUFln?=
 =?utf-8?B?RnIwdC8wYitmaW42eEd3NlJzKzhTYUNyNUEyKzlVTUhXc3VOMURQOVBmVzJB?=
 =?utf-8?B?ZFErMFQ3cmtNZGRtNWNtdVdRUFMzanYxTEp5YW1Fa1lNU3kxVEV0R3puRmxN?=
 =?utf-8?B?aFBlSkh3Y1RSeTBscVVwRmo4WUxpSTlNa3pUYitST2g4R2RORy9RZUVSSVhW?=
 =?utf-8?B?aU5yU1JqQUV0aHNwTGwwb1piOVVwQitmQXZMMVRaL2J6THFIWndidHJua3VW?=
 =?utf-8?B?cWpCWitHSWxNRmtDVUFTZ0ZjTGttWjk0M3ZzRnh5WUJBTWl2disrSm5rOHdD?=
 =?utf-8?B?UXNMV3RmOGZxUXg0YmlTOHAvRVduNW12aU9SUit1ZWd3Z2RlVW5WNFdoRzlJ?=
 =?utf-8?B?Z2hOd2k4ZTVJbGE0Q05KKzBtdWlIY1FrWlFvUmk3NnNBdWx2OVlSQU5sb3ZX?=
 =?utf-8?B?aFV1a3krYmlmU0E1Sk9wZ3VibGkvZTZrdGJjVDNpbnFzV2xCdllsMGhYNHN1?=
 =?utf-8?B?SVlZKzhTRllSTWsvd0cvTmNSZGxUV3ZWeFRCSXluUmNnbDM3Y2xrTGNvMkRm?=
 =?utf-8?B?endHaEN3c1VRK0huT2gycC8rWlk1ZnRkd0JCbzlwbEtUWmNGZjR4VXdEcnVK?=
 =?utf-8?B?SU5FYmJBQTZTSU8zV0J3cGtwbmF0UWxSMVB6WUtIRk1iTVl2YWo3QVpHWVNQ?=
 =?utf-8?B?Ly9KNHFMMFFKeXlJamFaZ0FhRGhNTmJFdlcrVldhVVNGdk9uV3hnMUhHb0Nx?=
 =?utf-8?B?UE8yODRNVFpHdkNHT1NpV2JlWDRnK1cvdjhoKzA2cjV0S2cvaWhPLzlRaFJt?=
 =?utf-8?B?WnFMdGVSSERJOWpYK2VuNy9FV09JeTM5djVsUEcwbmlHb0F6dXZJUGVvOVI4?=
 =?utf-8?B?QnFuTkpDMGFDaWJCTVZBSXRVN2dsQytzWWRzWCtKeUtMbWZqemY3VVZiN2RK?=
 =?utf-8?B?aGdDVzlNZXZ0N2FpYzllK1AvOXFNL1RCSjI2a1JadHI4Ni83TllrRDd5NmNz?=
 =?utf-8?B?dG1pd0Z6MVpyNm11d0NNVXY5ajhna1I2Y3p6bTBNV1MvZ05Ib3B5MDV6Q3or?=
 =?utf-8?B?b1U3WUtTL3ZyRU1VWEw5WEJPc2dyZGxBUERJM0gvRjN2UWsvTjRiTUNzQjhl?=
 =?utf-8?Q?IFUMLUItp+X5bo+NlvcT0sT7medonaTj?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR03MB7015.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?QUlZZXRWNERpNGNEWm04RXo5Qml0OFVSaGJXNWNjOUcwR3NLU2dKWmx0MVpH?=
 =?utf-8?B?RUxwVHhxZE5FRFo3bnVVVVdaR29IRjBrSDZrWWdjaE1jMGEvOFJKZ0M4byt6?=
 =?utf-8?B?bm9zcEdJV0czS3c2WTdxMmtyZzdQalFJWjFCZDRlUEluVWZEN05TTzFMVTRu?=
 =?utf-8?B?cVJuMFkvNFAreXFINUZuYkE5MjliN3oxWnlCVWM5YUhKNVExZXRYblN3UWtV?=
 =?utf-8?B?aHBUeWZYc04wWlhaSVhLdWY3cUpzZ0VpalNWL3NESVZYTUxleU5mQkk5MUV5?=
 =?utf-8?B?anVRRVFtSGp1SzhtaEFpMFRaZVlhaTM5aFkyU0pra2JJUzlpZEg3d0xFUGwv?=
 =?utf-8?B?U3MwcGFvTUk4YzRuOWZ6ZXo4T29vTUhZQkp2NlpEZlUrc1Q0WW9kMjMyS2JX?=
 =?utf-8?B?ZEYvb0xyTVJBN1p5c0lsRUhZOXlLZTF6TzlNNXRGWXd6U1dIOGJrUkVzdmxJ?=
 =?utf-8?B?L2tEaGlraG9uUDUxck5hdG45QlVTWkR6VmZZT3IrUEJSUytrWlZJZWMrdGox?=
 =?utf-8?B?NDBVcjltZUplS2lRU29QYVh1SzhJUVQxSy9tbjkzYWdxb0hqNUFCYjhMWWxF?=
 =?utf-8?B?a1dUOUNkdDZhUzZxMVdLV1NuN1FDV3YxeUpVd1dCRXFrbjU0a2x3bU9UZVZj?=
 =?utf-8?B?Qjl2MUtVMGRVTEVLVWpGaGNCdDFjQVZJdk96NW1mZlB2Z0I1SzM1K0k3NGlm?=
 =?utf-8?B?VWxWa0o1aXcxWmZWUUJadkhLa3F5QXNvRGNLM1lGUXpNT0NnSXRTQ1p6UllP?=
 =?utf-8?B?aGlNOFErRElhaFFteGgwWjdNeUVMc2xZancvZ1cyWnlhblFjNHhGU0VudXlw?=
 =?utf-8?B?QTNqM25DTkV6b3IrTjBqTzN2dDBNR0NvalhmNTRjWitFUVJkbTdUemRGZnRQ?=
 =?utf-8?B?TEl5Q1pVNXpNT2hNTWo5cTBROXlFcVp4SXJxakRZUkUvNEtscEtJVHBZYlFo?=
 =?utf-8?B?Z2MwcU9yK1lYdVZoMmNGWkptaFdKb2tSejlhNmRDWEQ4Q2o4dTJSalVnbzAx?=
 =?utf-8?B?ZXdBbHRKalZiSTduT0E1M2pOWTh6QTlwcERET1krdCtCTWVRZ1BqM2xhSW14?=
 =?utf-8?B?S3NVcVVzWVNuamVUaE5FUGFXa3VSalZsVlpySnBxNituZE5mUjZwN01nZElp?=
 =?utf-8?B?c3BUNElMUUh5dFFsVklGL093d0xTc05odWdWbThkSGJrYWRQaHFiRmJRWktY?=
 =?utf-8?B?d0tOcWRLRVB6dkR4bDBiMDMyVkp1U3ZkdjlIYWkxWHlmT1VsNWpNTzlCdmV6?=
 =?utf-8?B?Ukhtc2xxb3ZJdlk0UkNFckhQQm1RM2pkRjNuN1RJZGROa3MrZER5bzNZcTBD?=
 =?utf-8?B?VTdhUS9XQUpua3Z2Sy9jVy9zeWJZcVFWSGR5cXEvb2ZSeHAwM0xNQ0I4aWFt?=
 =?utf-8?B?MElrZHpoYlNwd2NMVUlmQWFkeUVEVFhXckFYdFJ1M3ZJT0J0UGNmdVhWWjRW?=
 =?utf-8?B?N0hmVG1ocG5sZ3kwMFF5SzFsNWZja0FIeFJEYURWbFFYc255L3ZhNXVwOG40?=
 =?utf-8?B?SVlIcGg3WlZMV2w2OVBpd1V2aFQyVWZHS1J4MHkzMmh3bFI3SHpvWTNPd2pu?=
 =?utf-8?B?NEQzYlFKTnhhREhMb2tjWmFFblpLeTg0WnRhU05GbkUvbEF2ZVhTdjFMK1RE?=
 =?utf-8?B?OGVYTzJOMmlOemg0cDRTN044VzJvQ0IwYnhaUS8zWnpWczh4MnhrNkVaRmlB?=
 =?utf-8?B?YWRHOTBQNTNrOEYyOStHMk50RGdvR0REQm5UY0IyZXdDbXFaZWpYMTVuWkJi?=
 =?utf-8?B?bFJjbTh5STNLZGJNeVd2RU1WRVZLVGIzRlNDdGZ6MnF6UnRZQm9KQjBROXVK?=
 =?utf-8?B?Q25nM0JhMFVnY3RRSy9HTEI4a20wc05OUC80bVhoZnkyNUFGWEdsR2cwWFRI?=
 =?utf-8?B?alVLdmFpSzB0SmNaTTdYOWhYRitYSFVUOVFRM2V2SjRndFhnNWFJdTNOMW5D?=
 =?utf-8?B?RFhUK3ozaUVhOFVRRytMK3JPZ0F1RmY1MUVSWVVrajJMV01Jc2ZGWVRGZGp1?=
 =?utf-8?B?N3B3RFNUZG54L1M2ZENlNW9XY1V6bWhEeUEybXBUaDVMKytsYXNvMWJSY3pk?=
 =?utf-8?B?dXNpRGJvMGxYZ0RvKzF4SFRSZVNCOHUvTFVsUHRGUGlWU09TUk5JTTYxQzFO?=
 =?utf-8?B?ZGdLbzIvZkpZcnN6RGEvNGJHTUx4VGkyb0pzb3VRWlJsUmpWUWlMTjAyQTdQ?=
 =?utf-8?B?R2c9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5288b695-69e2-4127-6fd0-08de1acbe303
X-MS-Exchange-CrossTenant-AuthSource: DM4PR03MB7015.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2025 11:26:52.7572
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UDZbFn5B3Z7Pbv4QpW9ArzKTs4JSshEMFGgAYSbudGN25oXTzpHHKqKgx65E71YfOimtO80BJK1O09Rc3UR7h24IOEd0vN9SqaTYmj0aE0o=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR03MB7231

On 03/11/2025 10:11 am, Dmytro Prokopchuk1 wrote:
> diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
> index 0389293b09..d9dc9998e6 100644
> --- a/xen/common/spinlock.c
> +++ b/xen/common/spinlock.c
> @@ -367,7 +367,8 @@ static void always_inline spin_unlock_common(spinlock_tickets_t *t,
>      LOCK_PROFILE_REL;
>      rel_lock(debug);
>      arch_lock_release_barrier();
> -    add_sized(&t->head, 1);
> +    BUILD_BUG_ON(sizeof(t->head) != sizeof(uint16_t));
> +    add_u16_sized(&t->head, 1);

This is an example where MISRA's opinions actively making the logic less
safe.

It's not possible for add_sized() to use the wrong type (as it
calculates it internally), whereas it's quite possible to update the
BUILD_BUG_ON() and fail to adjust the add.

Specifically, you've made it more complicated to reason about, and
created an opportunity to make an unsafe change where that opportunity
does not exist in the code as-is.

Furthermore, read and write atomic have exactly the same internal
pattern as add_sized(), so how does this not just kick the can down the
road?

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 03 13:07:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 13:07:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155307.1484803 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFuHJ-00080R-EB; Mon, 03 Nov 2025 13:07:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155307.1484803; Mon, 03 Nov 2025 13:07:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFuHJ-00080K-BH; Mon, 03 Nov 2025 13:07:21 +0000
Received: by outflank-mailman (input) for mailman id 1155307;
 Mon, 03 Nov 2025 13:07:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AJ2K=5L=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vFuHI-00080E-65
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 13:07:20 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fcf89946-b8b5-11f0-980a-7dc792cee155;
 Mon, 03 Nov 2025 14:07: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 AB57B4EE8C8B;
 Mon,  3 Nov 2025 14:07:00 +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: fcf89946-b8b5-11f0-980a-7dc792cee155
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=1762175221;
	b=KVSIHJiUphHSluETuCAn8drUJd+QSevuHEAWOT29BJm0mpEd+Hyl/97bQj3JhNGxb8ID
	 Myi3ACs/f9qMGcBHP6NsmRe+lqAmuILluleA6Al2o+OpjWDMOpR7xCGN5VSuQVOq5JMGe
	 wfi/Gd1gTPEthvgXwrgkbqVxt8d5jyX6phSPh0aNHHjHYWVeneAHXuOz4IO+Aj8RS7mdC
	 1UXnj1DlpUwqQ/i3VlfyQ1JzWr6c4tiL1bnke17iJnBTDYeHXviCOOM4XKAU2sgL/hgFg
	 k1Agi/d51EBRFtdfi75EMVw/nonZT6CADqfbbMo6o/F2X3/2rxTZrqKRR09qlK9pFUYR4
	 EI+vxS8gj6iXbLKvy4DrRx13gRctFENrPH2vPdRcN1pI/ba8k5j2FxrtE/LewYlnB1Pdn
	 mOuSoH13kMDM3hMB2Jt+7GoMQaiOiln09rfhCXPjf4PGEwpWEjqcJOxnvIbjaFVhB9bZH
	 eA1D3+vDUJucfw7FVml30J21ZViRHhkFoWsjzk/YtuQwdfO3dI3lr+hGNSTDZkSokr9Vd
	 Z86Fn4VUFZI8wUFuum+g01PnMzIYEVvXpRHonLihWuz+lzE2Pes/8Vk+6ZzEvVb9lEmhM
	 RbP8Lr5WPEpn0PU/HUF17KlP+MJko2xkMcuzHC31DCu8OBPkTW6nRMpz719pZC8=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1762175221;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=L0vPos1n2LyqS4BcAgaP2dPupdnaWfIzSSvZRK/wlck=;
	b=dG0bu/oJm610U1j3cLGJUB6zHeIXcJzTQEGQAbAH50Kcn4rjuw/kkvVn9Ag6ORyjNzoa
	 EbWX2f4y04pzUi9Iwon8oqbH9cdR1ct1QaVAuW5ERI4/b6+SS3WzewXnqf6bXLMptgggO
	 Qf5psMuCSHmVswzGFDSg9wJoVha9iKKiHFfHqHBH0+eIGZqmSjlmLnC2AApijO8CvkHva
	 cbODl91iAii/xXSqWTKjJiGfHOYYNFAq4+Pu4LTBLFFtJz5RLUm+nh3pFU9KCbqfWOIAH
	 Eu254TiePcxbvDOMVXv0Oxh/oTNUPiyqH6Nio5+eylu1VQwcvhuCfPVyUvQ4FdXlpkuYx
	 Sl6K8IUL1uFxQ3aIu3X99PZG9lThSKfVwZnxNR+Rm461/iKqplPLSZ39IBDi9cr7xxhVi
	 naxIRCoPmAnHxpIsX7EBEaVRJRsk2FG1kxkXgmDjzHU+RS/GZQMhpe6c+8bPIE/7O01CI
	 YB94+LJ45/2+d2nIIcEr9bnLu9mKL2H5XwMe0Fu19gdWOxs7d90LKomImvaZY/9iDEVIO
	 FyviJ0hwjkshsAFGT3GuaGTxsVEyVbDDURjzRVyPVjDLoVjxBeCIsLF4YfIpxM+QaJhO4
	 ncE5LrkiaXfZwsNqSTvKh2Y3x1H8Mv4NbfrPQAoRwwegombFB7aB4/GArw7jNOM=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1762175221; bh=LhTtAJfmMUjw3kxTDlmtLcz4J67zabfSKpo5Pz1FJ/g=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=yMjRZlTM46gFiwCajv/leB1HliJGQF1lkjN3UNn5p6mwziBoPyhlCz5RIjUCgRVqe
	 pa6S+XmgME2bIyJJ44AZ+CafdQ9lWTs7y+Vcr3u0STm+BB/Z7pUwyXu2RIz5oywLvW
	 CYQq88ub2GMR3nTuMm4YWqdF73biEPzBH30l8pjv0rEkYZf/WP+g99O0nHMtUs/ySa
	 wIycisdnwTUlfufLuNej5I3OYC8Y39KnS+cUq9tRKtU5eybxVNd3g695YwNJgtNLui
	 zctcz3ImwkGUcT7+b6g23IrAtCbiLmDwrFpx1R6XoLlhz25xJQc2MPSf/bZpW4H+hf
	 dkPFO7dmfv/bQ==
MIME-Version: 1.0
Date: Mon, 03 Nov 2025 14:07:00 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 xen-devel@lists.xenproject.org, Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel
 <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
 <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] misra: address Rule 11.3 in spin_unlock_common()
In-Reply-To: <7fb6ca46-3806-4aa5-a642-28384d6b944c@citrix.com>
References: <812bf5574cb44727c561e0ebc3a54848823ed490.1762163173.git.dmytro_prokopchuk1@epam.com>
 <7fb6ca46-3806-4aa5-a642-28384d6b944c@citrix.com>
Message-ID: <0dfffc16c4477c2bbd3867e447e7f2ed@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2025-11-03 12:26, Andrew Cooper wrote:
> On 03/11/2025 10:11 am, Dmytro Prokopchuk1 wrote:
>> diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
>> index 0389293b09..d9dc9998e6 100644
>> --- a/xen/common/spinlock.c
>> +++ b/xen/common/spinlock.c
>> @@ -367,7 +367,8 @@ static void always_inline 
>> spin_unlock_common(spinlock_tickets_t *t,
>>      LOCK_PROFILE_REL;
>>      rel_lock(debug);
>>      arch_lock_release_barrier();
>> -    add_sized(&t->head, 1);
>> +    BUILD_BUG_ON(sizeof(t->head) != sizeof(uint16_t));
>> +    add_u16_sized(&t->head, 1);
> 
> This is an example where MISRA's opinions actively making the logic 
> less
> safe.
> 
> It's not possible for add_sized() to use the wrong type (as it
> calculates it internally), whereas it's quite possible to update the
> BUILD_BUG_ON() and fail to adjust the add.
> 

I agree, we should devise a way to argue that the casts are safe and 
write a proper deviation. If I recall correctly, {read,write}_atomic 
have exactly the same issues.

> Specifically, you've made it more complicated to reason about, and
> created an opportunity to make an unsafe change where that opportunity
> does not exist in the code as-is.
> 
> Furthermore, read and write atomic have exactly the same internal
> pattern as add_sized(), so how does this not just kick the can down the
> road?
> 
> ~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 Mon Nov 03 13:10:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 13:10:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155317.1484814 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFuK7-00013S-Ts; Mon, 03 Nov 2025 13:10:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155317.1484814; Mon, 03 Nov 2025 13:10: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 1vFuK7-00013L-Pg; Mon, 03 Nov 2025 13:10:15 +0000
Received: by outflank-mailman (input) for mailman id 1155317;
 Mon, 03 Nov 2025 13:10: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=mu17=5L=siemens.com=haseeb.ashraf@srs-se1.protection.inumbo.net>)
 id 1vFuK6-00013D-Eh
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 13:10:14 +0000
Received: from OS8PR02CU002.outbound.protection.outlook.com
 (mail-japanwestazlp170120003.outbound.protection.outlook.com
 [2a01:111:f403:c406::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6b090845-b8b6-11f0-980a-7dc792cee155;
 Mon, 03 Nov 2025 14:10:08 +0100 (CET)
Received: from KL1PR0601MB4588.apcprd06.prod.outlook.com
 (2603:1096:820:87::11) by SI6PR06MB7269.apcprd06.prod.outlook.com
 (2603:1096:4:245::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.15; Mon, 3 Nov
 2025 13:10:00 +0000
Received: from KL1PR0601MB4588.apcprd06.prod.outlook.com
 ([fe80::3f19:282d:5fe2:f523]) by KL1PR0601MB4588.apcprd06.prod.outlook.com
 ([fe80::3f19:282d:5fe2:f523%3]) with mapi id 15.20.9275.015; Mon, 3 Nov 2025
 13:10: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: 6b090845-b8b6-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Vg1GBNIOllAjla5Z5QuItxQY3lCdq8KCPQv28II73FlCtEtyJjkzE4CQHv4FVXS0Ol0ZXAA7jcLAtCJerBDmLuOLbjFuuWFSFUdcZyF+a5o4hMJQhBr4hHbfBiVVwwNzJIz9TWM+bD7LTJQM+nv7zLSuOzGX0EqqR4yHviXS/HBwVs0+tE+1/mLuFg6Vmpf/uHXCUw3bvmdKjpDVNVmqBm697UVYZVOZIjAq0372rhLrgNaOc+TlMFbmGQN1+jWRqKzpGfvU3RkbRHkMdZc2R1jfhqu9l94aogFmf6UxANG4G10AaEKNx+qmdNg0hopPGGodG5Dq5gHKCfwXZzO1Mg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sg7KT3nkexCZILYzqD2htHGlVY1KzhF9/rVFt844FwE=;
 b=UiA9smRzyPQtouqPUbH1nU9eXw0/ccBLJ7KKzw8jodE+oXK2DgiZcpyksS9ncKmRs3oR9YxDoUJXIR50fkl81IE5wsC/17Dnp4xuDcOzP9j02gjyIyrdJ07qCeptFDshujf0s20qegunu1/F3J2be8brZDnMDjejqrfZ2v8ey50dOKT533/IuY2yqr60FfxTtaAeZbfbuBWwjDTLJYbDAjwwFpiLL1fiWEEMudqWFvQS4Z4ODumMvVqsxkpNM/eVtG2opYUBrmGdvw9CynV2sxLToA3OR8DU9pjZ6nExvfJ9hYJRleVmd7TJDH4l0auD6Mwt1D2go66134uO+ji01w==
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=sg7KT3nkexCZILYzqD2htHGlVY1KzhF9/rVFt844FwE=;
 b=TU3xxjS+ifOyngU9jg9PAyu+poa9GeSEZm+exP/B5+EG1c0bahapyJt0ogRaaxynUh7SAB9qDYJzd6yBpz7bREYkiYev2yYA6Mv0juLCM87oJXpbDgenelQNz3TmBds8rf7CF0+ewpc7PWIhL64GEuVaIyUbOTg2PXCActy3HDt8a0uQeIvmFUDe+888UFMqY9saRCfz2FGqbdtvfl9Im5j/SBGK42tXz6OKY7FKETsHbrHGxRwexoP6kDR1YMbnyTmPeJBjV3nUXa/P8YaO7PWZ+kSVGnLz8WPJF3DMuljZEoO4lFXcsUe0POG192CZkih6jY7s35rgtsWAEwUD/Q==
From: "haseeb.ashraf@siemens.com" <haseeb.ashraf@siemens.com>
To: Julien Grall <julien@xen.org>, Mohamed Mediouni <mohamed@unpredictable.fr>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Volodymyr_Babchuk@epam.com" <Volodymyr_Babchuk@epam.com>, "Driscoll, Dan"
	<dan.driscoll@siemens.com>, "Bachtel, Andrew" <andrew.bachtel@siemens.com>,
	"fahad.arslan@siemens.com" <fahad.arslan@siemens.com>,
	"noor.ahsan@siemens.com" <noor.ahsan@siemens.com>,
	"brian.sheppard@siemens.com" <brian.sheppard@siemens.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>
Subject: Re: Limitations for Running Xen on KVM Arm64
Thread-Topic: Limitations for Running Xen on KVM Arm64
Thread-Index:
 AQHcSVi3paxtnyIgIkOf6jhuJCbvfrTalv6cgABtkgCAAFoJgIAABxcAgACWJ4CAABonw4ACEJkAgAKjdLQ=
Date: Mon, 3 Nov 2025 13:09:59 +0000
Message-ID:
 <KL1PR0601MB45883069D3725975B49761D0E6C7A@KL1PR0601MB4588.apcprd06.prod.outlook.com>
References:
 <KL1PR0601MB4588D25A95D680640A80F2CAE6FBA@KL1PR0601MB4588.apcprd06.prod.outlook.com>
 <KL1PR0601MB45885505ECBBE9262C2B25E0E6FBA@KL1PR0601MB4588.apcprd06.prod.outlook.com>
 <FC5C66FD-8554-4F46-8546-B27DE76C8EEF@unpredictable.fr>
 <2b00a98f-6fee-4341-92bd-25909ebb6e36@xen.org>
 <CA753BD2-31FA-480D-B32A-2125F0F4981D@unpredictable.fr>
 <fc181349-d743-4ef0-bcd2-01c04d2a463e@xen.org>
 <TYZPR06MB4580126B98C6A38AA710F597E6F8A@TYZPR06MB4580.apcprd06.prod.outlook.com>
 <01527182-ccef-43a5-be55-a5450eb7919f@xen.org>
In-Reply-To: <01527182-ccef-43a5-be55-a5450eb7919f@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_Enabled=True;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_SiteId=38ae3bcd-9579-4fd4-adda-b42e1495d55a;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_SetDate=2025-11-03T13:09:59.089Z;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_Name=C1
 -
 Restricted;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_ContentBits=1;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_Method=Standard;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=siemens.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: KL1PR0601MB4588:EE_|SI6PR06MB7269:EE_
x-ms-office365-filtering-correlation-id: 3993c0c8-18d2-4c15-284f-08de1ada4b38
x-ms-exchange-atpmessageproperties: SA
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:
 =?Windows-1252?Q?7AYV0/4Qh4rxW7VclQ78Y90nJ0YohuRBskCw9Ekt+aOnBX32nPePwhhh?=
 =?Windows-1252?Q?BtmiraXr6IpqW/wOp9IeklpV0ZOrZqTXBpveb82kF6Sws474fWTBRD75?=
 =?Windows-1252?Q?0RAICD5Tzb3e8nJZPwUbqEzPscKMQQylLXxJCuD4DD1PE9WFjQXdowdu?=
 =?Windows-1252?Q?eVO2alKt+jXYenD/yCNdSWqLiO/nZ4R51LtMXpqQZnUTy33X4QVm0AJN?=
 =?Windows-1252?Q?T70LmAKG4kl8t7m1YTZ+CtrA+PF7VxOlrrUb0BpWmjrek7hxXMVtPSeO?=
 =?Windows-1252?Q?+hPM1YIuWQy993H2ukukfn4odl8CUeUuWfK88eUwujFvsWwV9OHJZdvY?=
 =?Windows-1252?Q?15K72ZlG6fuL/KaDWp/s1+u9T2e0XjNkrZ0WRpNa1kkIKvW9hktT7UQl?=
 =?Windows-1252?Q?gHuWCgbvTqHIHTPm2FmGf1JrFXLewzvi7bq3a9OV5vhmhpoTN/eczEzV?=
 =?Windows-1252?Q?qFN97p/2fMM0+BVS+DBeI26TtIeVJf564UvTVBrwRX3HUDltWdT3Z1mX?=
 =?Windows-1252?Q?6Z81Pj7Taoi/3ByGLwe/ApXFm28Px/QOgEuFOKkzoTzE26VcvvxaLoQO?=
 =?Windows-1252?Q?2cjhMgKARkGXdf2It6VXT+Of/49xA20EvtOJUVUXcIxM57jZuZi5P0Wj?=
 =?Windows-1252?Q?OkgE4ddZlooitBdkGISb6savt+2RquZugz/vA7a0RNZqdoJx8DF9A3VV?=
 =?Windows-1252?Q?kHLzo3Y2tGUaYUV6bCk9AnCesp5oOBKd2cFNodNm/yWDWruDInQv1dDl?=
 =?Windows-1252?Q?yYjFp8nJlCR6n0DFAyeaXHEsNqmOjwONpwB5gdhxHggTboxRRIY7UMGz?=
 =?Windows-1252?Q?LgLejr8wpQK8qrN1kFvxaMR7CbRfZNQNDgOveFTOHjb4b2bI48zjJxLM?=
 =?Windows-1252?Q?j2V6JBNA6Ob+yvQc6U92neAjhRnIP64qFASa7EUQPcWMIt2kk2qgUBEu?=
 =?Windows-1252?Q?S7OljAy89cTHE4L5y2HyPtIvDHomtpxWN42HYViPDb9BDm656T/H/T1M?=
 =?Windows-1252?Q?Kqi8dSldp+iMT2vUhwNntQb/hYE9fUAQmqgEnrEjFW53nzG0SUb6z70T?=
 =?Windows-1252?Q?sPZ4LihDXewr/slvvjoqgWhtzUYzxx6BVLKgmYdvjDJWbY9b7OJBKEWL?=
 =?Windows-1252?Q?OFNssveJGVkc8ZAGR2skEefhhd7J6fkA8U5lK9YuorYlhDO948/wvpht?=
 =?Windows-1252?Q?L+DcTS/LL8dIvZw96gQ/f7mUVMiWhxKE/I8GCo30XFOz4MzfmEzOvjSN?=
 =?Windows-1252?Q?YSRknL14vTxcIwRummlhQYxZqlamFp+FWFp2VqAx7pVQkUd/YNSlflYl?=
 =?Windows-1252?Q?p+Pzv08CqsBIopvYgBnDaOEMC00rACMagMuP6MEtn1OsSGdvAwSzYyo1?=
 =?Windows-1252?Q?jlKglg1/gQdl2yFOJyiyCpoiOm1xBlIi+o61ZBmawSlDW8d9bwHr3TbQ?=
 =?Windows-1252?Q?gzPMF6X0wkAqOvzpZ6ssALcxYPJKcPyruuacbY+Eif27DPvhdsw7j+EF?=
 =?Windows-1252?Q?zFIB9xJ3JqZlJOXjlpT8mLzIk06I6c3VRxe75jy7j8JbVQ4fIBGEE7p9?=
 =?Windows-1252?Q?yHOCSS6sn2ixN6DRSehlI7tZFcrJoX892s9mqQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:KL1PR0601MB4588.apcprd06.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:
 =?Windows-1252?Q?7xtYTtCS7phKB6up4jYnSjfhNEWstLtmg8B9/CLx32fupPEQLtYaZftE?=
 =?Windows-1252?Q?iBjEsXtLPmbM5Y4IzYVifja7K1B6ga4L5jRgnnMvVqfKKirh8kobZhj2?=
 =?Windows-1252?Q?ulLIn/x7/JZw4FxOw8HxILprr5MQn/GHHNsKXHP3yJEvrLqT2LTrfGy8?=
 =?Windows-1252?Q?xjE5HfNEf2ivmCi1mhHakEH4Almf3HS3+hpaKZxCSTIG1f1NhNgCirh3?=
 =?Windows-1252?Q?aJDTqqqeGiNPolCcOTubICvKqS7l6mebxQLun+5Hcx/wdLp3tyBtJHrj?=
 =?Windows-1252?Q?lJzlghYCDpbWod/+7DtpN3rRmJW+4DqKsHSW7CvVd1SB204QjdhnWj+Z?=
 =?Windows-1252?Q?uB9q8Hvq28uOj6MkfxrvvZ6pEIv9mBbaFP7zTsGRZsC2He7jki/mThpU?=
 =?Windows-1252?Q?qRePxzlJ5aF3WIIyhVIaxorlCluEfqTIFsQxCUrz2WL55E/IDHpbTQC+?=
 =?Windows-1252?Q?wZzwEOehxoaiGy7m580iL7zqd54nliqLZT6WiVMtohwHlp/LJfhpNQqf?=
 =?Windows-1252?Q?JiSEQCAunyI50vM6WwgW3A2B5HCyTUc8FEF4Jvw7yvFcMOJXALDcGluq?=
 =?Windows-1252?Q?fH0Rw310MpZpE9L0AYu6rmcpR0rnREQMTYIuwIcLpnQgmspB4yyy+bFT?=
 =?Windows-1252?Q?EnBpwzxHo0e7lfwDr8vidnJG3uerU3ZE+1ytnxLLgTU/gBHKgskUyqw7?=
 =?Windows-1252?Q?z8+Bl9zoX7kOgkVnr7XPbCllLhjxsqzmTWZZzljfhfdbl6h7+0g5MEPo?=
 =?Windows-1252?Q?t4LQwfrCKZiResAGWDjycUXaqkDLHByYblkszBhnW180gZcJaWkt/YE6?=
 =?Windows-1252?Q?jeg52I7LZybFygPN9z+/iC1z0jiLYX2d4AjdJjAWncTR0rDD5RTb9Pa/?=
 =?Windows-1252?Q?t/xpBxthOzp+HSG/l27ZC36dpZpmeWI8KaYFR3Lr2JiSXn0I5Mg8N9kH?=
 =?Windows-1252?Q?XomgUcrAP6zY3nl8bkI9/as2XnMs64TpDHdWiHVZLDPDE82BcI2DLbwT?=
 =?Windows-1252?Q?ej9KrE9sfUXBsr7EWUTncLmwnT3okn1bNHhM9Sh75H+UieIjkJ8v7+l8?=
 =?Windows-1252?Q?IKNnTUQRfTz2tlvwjsBUfGhLKNfOJ0b3PpZJkM8e9Pg28oGQxoUpSVwH?=
 =?Windows-1252?Q?wr5JusFhtGkkoLJ0TP5R5GTqjn/EaPS+srptDHu9bxLHFoK0t9/HC+2x?=
 =?Windows-1252?Q?d38VE7LWIk9/diOgoIkUeN6ypf1HqTfcqzQj4CVcP8g7l7htgoOQNSBJ?=
 =?Windows-1252?Q?Emb8poYezyTx6wUwi3ipnEQiOEekQbSzcRwqpTrCIa96L8BT/TltJ/gU?=
 =?Windows-1252?Q?bOQ02OwMfqdxvgA69kD+FL02sQ+N/EDAX6qldZLtC7zqpms2F8ngfvvW?=
 =?Windows-1252?Q?IwOngGy29MmOyfB4SLcUs1QpLylc6tZWhGqc3gYfbQznWhDsdeoTz77q?=
 =?Windows-1252?Q?ry+bE80RjPH9upKtW7+baTJazN43PlNdZrmHcgwXpry44+Ts4EzXXdJZ?=
 =?Windows-1252?Q?4en2aw19kjlGT9FUpqCo8qD+8DtF1s2WhoIgdDRgZiCqtLned36sT4TB?=
 =?Windows-1252?Q?zMVAszAYczHqczkRBZsKp+vCXFSqGDpcf+O3TV431oEzB8/3Ip3PsESh?=
 =?Windows-1252?Q?RwhI9oMpAYvnjPIuSgu5KncL6qub+PFHS/OcP5Awyzps5tKnSGtWDLSH?=
 =?Windows-1252?Q?TbTwrvwFwZu/fQxwzlUXilH/Y/GgJWVn?=
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: siemens.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: KL1PR0601MB4588.apcprd06.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3993c0c8-18d2-4c15-284f-08de1ada4b38
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2025 13:09:59.9938
 (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: BG7wIiK50vhWE5BZOoujh6NxgTYGEHsaYQ/pHOyyuas9g8tcqO7P/1h/J8lvPZnhUSXpj+wHgOz1Fu05OVjN0GXkwEkr2bivYdor7lJTchE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SI6PR06MB7269

Hi,=0A=
=0A=
> To clarify, Xen is using the local TLB version. So it should be vmalls12e=
1.=0A=
If I understood correctly, won't HCR_EL2.FB makes local TLB, a broadcast on=
e?=0A=
=0A=
Mohamed mentioned this in earlier email:=0A=
> If a core-local TLB invalidate was issued, this bit forces it to become a=
 broadcast, so that you don=92t have to worry about flushing TLBs when movi=
ng a vCPU between different pCPUs. KVM operates with this bit set.=0A=
=0A=
Can you explain in what scenario exactly, can we use vmalle1?=0A=
=0A=
> Before going into batching, do you have any data showing how often XENMEM=
_remove_from_physmap is called in your setup? Similar, I would be intereste=
d to know the number of TLBs flush within one hypercalls and whether the re=
gions unmapped were contiguous.=0A=
The number of times XENMEM_remove_from_physmap is invoked depends upon the =
size of each binary. Each hypercall invokes TLB instruction once. If I use =
persistent rootfs, then this hypercall is invoked almost 7458 times (+8 app=
rox) which is equal to sum of kernel and DTB image pages:=0A=
domainbuilder: detail: xc_dom_alloc_segment:   kernel       : 0x40000000 ->=
 0x41d1f200  (pfn 0x40000 + 0x1d20 pages)=0A=
domainbuilder: detail: xc_dom_alloc_segment:   devicetree   : 0x48000000 ->=
 0x4800188d  (pfn 0x48000 + 0x2 pages)=0A=
=0A=
And if I use ramdisk image, then this hypercall is invoked almost 222815 ti=
mes (+8 approx) which is equal to sum of kernel, ramdisk and DTB image 4k p=
ages.=0A=
domainbuilder: detail: xc_dom_alloc_segment:   kernel       : 0x40000000 ->=
 0x41d1f200  (pfn 0x40000 + 0x1d20 pages)=0A=
domainbuilder: detail: xc_dom_alloc_segment:   module0      : 0x48000000 ->=
 0x7c93d000  (pfn 0x48000 + 0x3493d pages)=0A=
domainbuilder: detail: xc_dom_alloc_segment:   devicetree   : 0x7c93d000 ->=
 0x7c93e8d9  (pfn 0x7c93d + 0x2 pages)=0A=
=0A=
You can see the address ranges in above logs, the addresses seem contiguous=
 in this address space and at best we can reduce the number of calls to 3, =
each at the end of every image when removed from physmap.=0A=
=0A=
> we may still send a few TLBs because:=0A=
> * We need to avoid long-running operations, so the hypercall may restart.=
 So we will have to flush at mininum before every restart=0A=
> * The current way we handle batching is we will process one item at the t=
ime. As this may free memory (either leaf or intermediate page-tables), we =
will need to flush the TLBs first to prevent the domain accessing the wrong=
 memory. This could be solved by keeping track of the list of memory to fre=
e. But this is going to require some work and I am not entirely sure this i=
s worth it at the moment.=0A=
I think now you have the figure that 222815 TLBs are too much and a few TLB=
s would still be a lot better. TLBs less than 10 are not much noticeable.=
=0A=
=0A=
> We could use a series of TLBI IPAS2E1IS which I think is what TLBI range =
is meant to replace (so long the addresses are contiguous in the given spac=
e).=0A=
Isn't IPAS2E1IS a range tlbi instruction? My understanding is that this ins=
truction is available on processors with range TLBI support, I could be wro=
ng. I saw its KVM emulation which does full invalidation if range TLBI is n=
ot supported (https://github.com/torvalds/linux/blob/master/arch/arm64/kvm/=
hyp/pgtable.c#L647).=0A=
=0A=
> On the KVM side, it would be worth looking at whether the implementation =
can be optimized. Is this really walking block by block? Can it skip over l=
arge hole (e.g. if we know a level 1 entry doesn't exist, then we can incre=
ment by 1GB).=0A=
Yes, this should also be looked from KVM side. I think to solve this proble=
m, we need this optimized on both places in Xen and in KVM because Xen is i=
nvoking this instruction too many times and unless KVM can provide performa=
nce close to bare-metal tlbi, this would still be a problem.=0A=
=0A=
Regards,=0A=
Haseeb=


From xen-devel-bounces@lists.xenproject.org Mon Nov 03 13:17:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 13:17:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155327.1484823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFuQa-0001gv-HM; Mon, 03 Nov 2025 13:16:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155327.1484823; Mon, 03 Nov 2025 13:16:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFuQa-0001go-ED; Mon, 03 Nov 2025 13:16:56 +0000
Received: by outflank-mailman (input) for mailman id 1155327;
 Mon, 03 Nov 2025 13:16: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=9EMp=5L=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1vFuQY-0001gi-Pn
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 13:16:55 +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 5cca61bf-b8b7-11f0-9d16-b5c5bf9af7f9;
 Mon, 03 Nov 2025 14:16:52 +0100 (CET)
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com (2603:10a6:20b:509::16)
 by AS4PR03MB8747.eurprd03.prod.outlook.com (2603:10a6:20b:576::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.16; Mon, 3 Nov
 2025 13:16:43 +0000
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb]) by AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::e577:995:fb9d:38fb%5]) with mapi id 15.20.9275.015; Mon, 3 Nov 2025
 13:16: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: 5cca61bf-b8b7-11f0-9d16-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ew5AuXKK0KwEUQuf34wQjRHGzeBeWG8RBRyd7xuoFfrXGF4CVBsCemjJ/Po/Ypezdm0Gr48rqTGUYG90yT8xJrg9hTC8FkZ1bfh3qCs7afM7IYjOriTDnQ2KG5RpdYYyL2acBDt58ZH1/PgYe0YEjDoRNtjBCBiysMPUy8aQIHRtFaCC+zF8EGa+SzMFuLiopc4RvAJP0SkzXD7qSeFppVmJhZxN9kRj7y+HaX2ta3LKBi2LPR0whAe6E9PTRzOrN5C1nutnTjHpTWbJt9N1RJRjEIy0Cr6Qel/xRZPPToqtokpCH70VOUQgc0HkILTFT+vsaPye/b+WfzaRsav+3Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QJKCXyeQIQ6MKe5gJqCUMlJM8NccJKGHTDkMC52FwUI=;
 b=oW0KKthmYNpqZ053ssQfZ/23kTx0vJeZIeqs7An0iYFoTpEb/TPwSVTieHsFKWK+J0sOrl7AmE5Zv2jDYFs68uvNcPaQR9f4RlPGpYVTZqpk7I73gClUnvNOThurYw2kcxy+ns/Uw+9hoTXumc3kgHQ0ngRLI4640kedbIt7Jft2/iI8Xx8uVnvbYpISY/sxW70ttE+nDfiBp5zR9ODy0rE3deNhM9CWkcPcYdBhhrEr6gzGDC8vrqWySFbg1Fg7eTfnwI/boj4iv7xpiH7TsrpIKuslDDbvGCl3xmDW8f+leAO3YB3VKZGNYHi/Nj1QgFsB/iQcHxfjKGnRiIe+cw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QJKCXyeQIQ6MKe5gJqCUMlJM8NccJKGHTDkMC52FwUI=;
 b=Xq7UTT83NipuU/PJHIspOMQof7pa0mIQ//u05HXQvYvJvzf8Etlqbm27YKhuj1gNu7FDmdRytdXi7gawHc8bM5Wgn4VO3Q1sCwyGyZInE2tj0uBlTtMCOJ+nKvwkhupedGRu1KjKlpx738siz+6/fcPfgPImXqDByELW30ypOwJq0HvjdHNxxhTmhV9G+tk3t+q+BFme6xPUvVzoy6ImKLzsqLVzNLDfsnWpnM5wqwQDzV1EnnJuGlpjBZf09yHGCgFbZXeiGY51NBdl0PlX5Qkaa+M+1YwINTnq8DVjDn7lfyuN2LWOZAIfFb9j960hykMX45NOxIUWzbkRPNa+qQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <5df30dbf-17a2-446f-83f9-0e4468622917@epam.com>
Date: Mon, 3 Nov 2025 14:16:40 +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: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 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>
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>
Content-Language: en-US
In-Reply-To: <65727710-0a88-4fff-bb5b-9cf34106833c@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: VIZP296CA0006.AUTP296.PROD.OUTLOOK.COM
 (2603:10a6:800:2a1::7) To AS8PR03MB8322.eurprd03.prod.outlook.com
 (2603:10a6:20b:509::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB8322:EE_|AS4PR03MB8747:EE_
X-MS-Office365-Filtering-Correlation-Id: c88eb403-e7fa-4023-a046-08de1adb3b33
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|7416014|376014|1800799024|3122999009;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cTlmK1ZnUHNVU1QxWmM5b1hRdzc0czI3ZnRwbllSSmtWUzFkWkNtbVVmNG91?=
 =?utf-8?B?RWg0Q1VHVnRXTjNwOVFaSVdpaDdHODdhNFczZHU4M0NYbEVlc2NmRlArOG5t?=
 =?utf-8?B?SThBMmoxTUp5dEtuWGxST0hudmYrVnNnUGxJQWVmSWJXOTY1Z0N3a3luVWY2?=
 =?utf-8?B?NUhZY0hEbDc5RldJcXVDZjBsUVQvR3VMQzdQcmVqRE1WV1I4S3dLc3paZnA1?=
 =?utf-8?B?cEVBQkVFcmIzV3hRT1B1Mkg5K3RualRKV284RmtSMmJHY3F2VWJtZThZdG9Q?=
 =?utf-8?B?MVpHa0NqeitaY0JvT3hGdEUvTWNwQWV3Q2NMcnNRYkxacGp6QUZWUHBFVGhP?=
 =?utf-8?B?SkJzVUZWTzdLTmwxR0FvRVptNUtJUHRienhRa1lxcnFkK2JlUXMySHh6ZXBs?=
 =?utf-8?B?ckhpMENnTGZXeTJDaDdRVXZibjZwNnhjaDF0WGk5NUtjanRBTkNlWTlnK3RL?=
 =?utf-8?B?V3dDZjRyemNZSm01R2ozd1gvS2hrYythamcydm4zQmxxZHpWVFdqdEZqem0z?=
 =?utf-8?B?aGkzVDlIVEljaUQ0S3dIYVV0T2JFc01EVlhvb0ZNcWdVUWtXTWN5WEp6Tkpq?=
 =?utf-8?B?eTQvcllENFdvYmRqZWtoY1FCWFpha0JtMmxpVTdQOEYycFo0SGJuVE5vdzRL?=
 =?utf-8?B?T0VlUS9mV0dzTndVVXRNM1NZK05zRGdyWUllYlJDMFVIVUNjRGFnR0R3VFhz?=
 =?utf-8?B?MTBDTzh4UW0xOXJsY0VFYTlmUC9nY0Y2Q0JZeU82eWM1cnpUZnlpOUd5OUNl?=
 =?utf-8?B?ZUp2Y3paY1M5YkRQNmh3aTlZSktGWDdnR3htWGZ2UnNDaHkrSnBzVXlWRlBR?=
 =?utf-8?B?d3UxVUpOSGplYkZJVmlra25odmRTYWd4bWVDSytOMkUxTmxzTk5CZ3kvTlE2?=
 =?utf-8?B?UEx5d3RVYjZGR1VLd1VLQkJ3SWI4YmZ2alJ5ZmdmSURvYWhPRTJQdGNMRXFP?=
 =?utf-8?B?TUI0aUFNV2ZIZmtrM0pDdElQMXBNYVBCNE9pSWtiQVpSckFlRFpjK2dJdDBG?=
 =?utf-8?B?dU9GUlZ3YTRtZ2UxbitQdGFHL1dremNaY3ZxNVdvS1VJblhIdXg0TnhkNU5o?=
 =?utf-8?B?Q2d3WHNDNjFGaXpLT2JudktCazVIZ3dFOWFCdnI2RERJL3JNWjZRcHJ2ZnlK?=
 =?utf-8?B?ZVRrUTB0UVNlWkZlcGg2K2NqUlZxTHlXWW51MnJaV1RUR2EwRlFTdWF2QXVa?=
 =?utf-8?B?bzA4Tnc0SWJyRHQyNXNmZFpPSnlCQTVMR2R1WGZ5Um1WY01jaEM2KzFrRml5?=
 =?utf-8?B?bWtKMGo3dkorS3VZTjV2cVhPWW92djBaVnlPMnpUVmFiZ1ZFTGVzWnJwWEFC?=
 =?utf-8?B?a2Z2YkY2ejBWZ3ZidS9nMTNjUm5LQkNMRGR2Tk1YSnN2c1E3b0ZoMXlYdC8w?=
 =?utf-8?B?bld2WWlaSG9DTVptd1Nnd1JsQTVCUEdlVXRhNGJnYW16RnltVmVKQ3JiVFE0?=
 =?utf-8?B?NHhxOTVHZzZ2RFJkZkd5Y3ZlbVpna2FPdFkrcTdrdnFGbkVFdlBzMG1KK25T?=
 =?utf-8?B?RHQvMTk3TGd5bHFqWHYvMk9WZ05SNTJsaDVFckRIWnBpdE1sWC9BY2dONFp4?=
 =?utf-8?B?c3BCUnlyalZCejh1NGI0cUZZai9XVlJNT1RwazNTKy9uMTNTRjhXWWlxU1Nm?=
 =?utf-8?B?MDFxa0VvR2I0Z1d6eXVzU2VzNXZzKzc5Tit6ZFdmLzdmWnlraTFtOC84MzVq?=
 =?utf-8?B?T2dBZTcrUzhOUld3RzdVS0o5WjBUWGc1U2xob1J1aStHTThnRjVtSWUvbGpw?=
 =?utf-8?B?VFBOd3BJYmlEWDE0UStrY0Jkb2RTbmplVWxzV3V6OUIwRlFTQjBHVERoZ2hn?=
 =?utf-8?B?eWNKTU5YRDk4eldKYTJiNjZTMWdNR2k1eFJzVjBuRmxWRzBhanlHeEZyZTRT?=
 =?utf-8?B?WEtkVGdYWERJMkxwY3ZoNmhKa2Y5NDFnUGZxYkR5ZCtXVEp3V1VEQytxRFA2?=
 =?utf-8?B?eGIvcDI5ZU9TOHAxd1pOUElzZVVXankzY0lkZ2ROdng0V1NDS2c5TWk3NGxI?=
 =?utf-8?B?cVU4UGlzR2pBPT0=?=
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)(366016)(7416014)(376014)(1800799024)(3122999009);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?L2hrMFV0ZHNVaHJ6Y2s0Zy9NWVF6VXdvclRkcnpIYXJLc0Q5N2U4ZTNiRGpa?=
 =?utf-8?B?SUtkN1M2R3dwa201RklDY3Vwd0FtSjdrTmRlVHRSKzY2NTFCd2krUWRNWDVt?=
 =?utf-8?B?d29zVHQ4YWZhK1ZSekYrZDJDeXV1M2hTYnNIU085WDU5cXhqczlkRGVNTTNN?=
 =?utf-8?B?SlU5NzZVc21ZS1NhNVlPOG5hUFBubjB0ZjhCNlFTMk1Gb2x0ZkRrelpRYXUx?=
 =?utf-8?B?UjZUVko2SUl6bDVCd3ZHZU5zT3podkl1NkpyMTdiYTR0S0wzNDBSYXNxdmxZ?=
 =?utf-8?B?d1F3b1dLdTdwUlo0NmR2WnRQVEo1VzFRNlFMcXB1UDFMZ0VQajFWTUhyR0Q4?=
 =?utf-8?B?RnhXSDBFbkxYMkdHMXF3U0h3SFVZM3FLY2RZZXJjQWlJVVV6UGFzcUhtTkdV?=
 =?utf-8?B?Y0NwT2dnYldrVWVoME1xZGRNRFB4aHpQSzBkSE15Nnd3amtYb0pHNm1MVmIy?=
 =?utf-8?B?TXY0ODMwb093N1VVL1BVZXNyWTJYVWpEUGNZdHAreFk1cC9iSm1SemtML01Q?=
 =?utf-8?B?YUpMYjFWbHNMbzZzUmhzaGNxV0VEOFFzUmlUK0xMUjh4ajFpcHFjWmtFY3FK?=
 =?utf-8?B?RjdHNWtVS282WERxVTc3eFM4Tm1mcDdrOUxWaldPZFpyTElxQTJ6T0hVYm1q?=
 =?utf-8?B?S2lhaDdLaStTc3FqZkVQVmlWY0RUKzI5Kytha1dkbzdXMkVUUEFaYkRFNlJn?=
 =?utf-8?B?bXBvMllWQjJaNm1jT0dBQUlnenVxWm50bHNrWFBibzd6a2VLcVFTWjJNREJO?=
 =?utf-8?B?TWlyYjUra2VDUDhaYTNwMmlKTHl5ZXFrakFVZEFRZlBKYUdDY214clJ1VW03?=
 =?utf-8?B?S3JvdnFpejhPRXZyUHEycXo5RUNFT1FxS3RycWxTbTlMbUdyVk4zeldaYUZz?=
 =?utf-8?B?VDVXQUZHVVNZSkNrdmdXMG00SDlyY0tFamJ2ZUNVRWRIY3NkVWx5VEhiRVNW?=
 =?utf-8?B?SVBhZXY0c0o4K3dpNnlLVXBDQWtuMWtqTi9SU1lOQkJkTmlSR3lYeGNmaC9p?=
 =?utf-8?B?YXYxRVVMeVUwamsvWm9VUkV2bHU5Q3V1VHhXUnlReHczbUJCSG04TXVHakUv?=
 =?utf-8?B?R243anIzNENRTXAyTDZlUi9ETDRJU1VHakc5QU1vV0QvM0t5SFgvM2JLWUxC?=
 =?utf-8?B?ZTJYaThmSzNYSXcwQ2VQdkZReTh4VnZWckUza3Viek9nQkNoUWtHdUFxbjFF?=
 =?utf-8?B?NGY2RkhhOFd1aXMyL1gyWTBoZk1QTjYrWitGY0RrWENKUS9USVFSZFNMeDZ4?=
 =?utf-8?B?RHRFTlN5YUF6RWN1dDlmNk8yU2RBU2ZFWWFpNXUySFlaNlhSQnhveXkxVmoz?=
 =?utf-8?B?ajh4SmN1MnNQNktOOU5DM0x1STBRUTJXMlZjbUNDL2R4cXBGSmdTeFZLamlw?=
 =?utf-8?B?V1lLVFBMUVE4NjVCZnphekZreW5ISG0wR3hTOVF6QnNpR2lOU05TTEVsd3ll?=
 =?utf-8?B?bllvWGZXT01iNE00V05SRFNyNmpaMU1reG81aTBvcHZhY25kWFZTNmFuZUhG?=
 =?utf-8?B?THJES29JdHJNZUc4U1RTYXNlUHovUXpldEdhRzh3ZmJKaDVmZFJtWnRFSDVa?=
 =?utf-8?B?MFdXQ1MyZFRTMmN4L0ZjR3J1ZDhmcS91QUd5Ukl5dFMwbGJNV2o3YW5QbFFu?=
 =?utf-8?B?RndqK2hqZXBHTm45b1V0cUZDSkptek8xMzZsVGxydVVJRE9MUkhELzlXTkJK?=
 =?utf-8?B?YjZCZGpXalFiSXJ1THozaEtyL0s0dkgzWjNZS01jdDd3eE56Z3BRQURHdFNh?=
 =?utf-8?B?U09WdXhOMkRlaG1VK2ZnY2FGVEN0QTV5S1ljN1FwSWcyNWNGbHkrTUUrUlA3?=
 =?utf-8?B?cHU0RU84SmJmdVNHR2p1UngvaXUzQ2VEU3pZakhoMTBydFRZNW13VXF1WGxP?=
 =?utf-8?B?RVZTN1k2eng0QjJMNnBsTDdkeldZa012VFVzZG5IT1RJcWlXMlpmLzBsZHox?=
 =?utf-8?B?YWg3bVhkb1RGaXJFY01LaXhqRGVvM2dXbEJOL3BheHVCeGdqOElrMUp3RUNF?=
 =?utf-8?B?QVk4S3VFSkdWdlVic2xxZ3BrVXEzS005Vms0VUFMTG5kejQ5cmE5cTRzMG5X?=
 =?utf-8?B?L2c5R1F4dFF6ZHNoT1VPL3U4R0FJcDZJbjBLQ2l5TzNCRDFmWjhVWnc1T3RO?=
 =?utf-8?Q?95+tZ4/+7RkQQl+WcWacYzv9O?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c88eb403-e7fa-4023-a046-08de1adb3b33
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB8322.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2025 13:16:43.2806
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: YGZPkc47v314XFl0NCh+s1FtLBYk4SSu1kd92iYO9BnfTz9tqOcAis6PC95kRFgyNRfHD6nzwsGEdWQRTdfIIg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR03MB8747

On 9/1/25 13:06, Milan Djokic wrote:
> Hi Volodymyr,
> 
> On 8/29/25 18:27, Volodymyr Babchuk wrote:
>> Hi Milan,
>>
>> Thanks, "Security Considerations" sections looks really good. But I have
>> more questions.
>>
>> Milan Djokic <milan_djokic@epam.com> writes:
>>
>>> Hello Julien, Volodymyr
>>>
>>> On 8/27/25 01:28, Volodymyr Babchuk wrote:
>>>> Hi Milan,
>>>> Milan Djokic <milan_djokic@epam.com> writes:
>>>>
>>>>> Hello Julien,
>>>>>
>>>>> On 8/13/25 14:11, Julien Grall wrote:
>>>>>> On 13/08/2025 11:04, Milan Djokic wrote:
>>>>>>> Hello Julien,
>>>>>> Hi Milan,
>>>>>>
>>>>>>>
>>>>>>> We have prepared a design document and it will be part of the updated
>>>>>>> patch series (added in docs/design). I'll also extend cover letter with
>>>>>>> details on implementation structure to make review easier.
>>>>>> I would suggest to just iterate on the design document for now.
>>>>>>
>>>>>>> Following is the design document content which will be provided in
>>>>>>> updated patch series:
>>>>>>>
>>>>>>> Design Proposal: Add SMMUv3 Stage-1 Support for XEN Guests
>>>>>>> ==========================================================
>>>>>>>
>>>>>>> Author: Milan Djokic <milan_djokic@epam.com>
>>>>>>> Date:Â Â  2025-08-07
>>>>>>> Status: Draft
>>>>>>>
>>>>>>> Introduction
>>>>>>> ------------
>>>>>>>
>>>>>>> The SMMUv3 supports two stages of translation. Each stage of translation
>>>>>>> can be independently enabled. An incoming address is logically
>>>>>>> translated from VA to IPA in stage 1, then the IPA is input to stage 2
>>>>>>> which translates the IPA to the output PA. Stage 1 translation support
>>>>>>> is required to provide isolation between different devices within the OS.
>>>>>>>
>>>>>>> Xen already supports Stage 2 translation but there is no support for
>>>>>>> Stage 1 translation. This design proposal outlines the introduction of
>>>>>>> Stage-1 SMMUv3 support in Xen for ARM guests.
>>>>>>>
>>>>>>> Motivation
>>>>>>> ----------
>>>>>>>
>>>>>>> ARM systems utilizing SMMUv3 require Stage-1 address translation to
>>>>>>> ensure correct and secure DMA behavior inside guests.
>>>>>> Can you clarify what you mean by "correct"? DMA would still work
>>>>>> without
>>>>>> stage-1.
>>>>>
>>>>> Correct in terms of working with guest managed I/O space. I'll
>>>>> rephrase this statement, it seems ambiguous.
>>>>>
>>>>>>>
>>>>>>> This feature enables:
>>>>>>> - Stage-1 translation in guest domain
>>>>>>> - Safe device passthrough under secure memory translation
>>>>>>>
>>>>>>> Design Overview
>>>>>>> ---------------
>>>>>>>
>>>>>>> These changes provide emulated SMMUv3 support:
>>>>>>>
>>>>>>> - SMMUv3 Stage-1 Translation: stage-1 and nested translation support in
>>>>>>>      Â  SMMUv3 driver
>>>>>>> - vIOMMU Abstraction: virtual IOMMU framework for guest Stage-1 handling
>>>>>> So what are you planning to expose to a guest? Is it one vIOMMU per
>>>>>> pIOMMU? Or a single one?
>>>>>
>>>>> Single vIOMMU model is used in this design.
>>>>>
>>>>>> Have you considered the pros/cons for both?
>>>>>>> - Register/Command Emulation: SMMUv3 register emulation and command
>>>>>>>      Â  queue handling
>>>>>>
>>>>>
>>>>> That's a point for consideration.
>>>>> single vIOMMU prevails in terms of less complex implementation and a
>>>>> simple guest iommmu model - single vIOMMU node, one interrupt path,
>>>>> event queue, single set of trap handlers for emulation, etc.
>>>>> Cons for a single vIOMMU model could be less accurate hw
>>>>> representation and a potential bottleneck with one emulated queue and
>>>>> interrupt path.
>>>>> On the other hand, vIOMMU per pIOMMU provides more accurate hw
>>>>> modeling and offers better scalability in case of many IOMMUs in the
>>>>> system, but this comes with more complex emulation logic and device
>>>>> tree, also handling multiple vIOMMUs on guest side.
>>>>> IMO, single vIOMMU model seems like a better option mostly because
>>>>> it's less complex, easier to maintain and debug. Of course, this
>>>>> decision can and should be discussed.
>>>>>
>>>> Well, I am not sure that this is possible, because of StreamID
>>>> allocation. The biggest offender is of course PCI, as each Root PCI
>>>> bridge will require own SMMU instance with own StreamID space. But even
>>>> without PCI you'll need some mechanism to map vStremID to
>>>> <pSMMU, pStreamID>, because there will be overlaps in SID space.
>>>> Actually, PCI/vPCI with vSMMU is its own can of worms...
>>>>
>>>>>> For each pSMMU, we have a single command queue that will receive command
>>>>>> from all the guests. How do you plan to prevent a guest hogging the
>>>>>> command queue?
>>>>>> In addition to that, AFAIU, the size of the virtual command queue is
>>>>>> fixed by the guest rather than Xen. If a guest is filling up the queue
>>>>>> with commands before notifying Xen, how do you plan to ensure we don't
>>>>>> spend too much time in Xen (which is not preemptible)?
>>>>>>
>>>>>
>>>>> We'll have to do a detailed analysis on these scenarios, they are not
>>>>> covered by the design (as well as some others which is clear after
>>>>> your comments). I'll come back with an updated design.
>>>> I think that can be handled akin to hypercall continuation, which is
>>>> used in similar places, like P2M code
>>>> [...]
>>>>
>>>
>>> I have updated vIOMMU design document with additional security topics
>>> covered and performance impact results. Also added some additional
>>> explanations for vIOMMU components following your comments.
>>> Updated document content:
>>>
>>> ===============================================
>>> Design Proposal: Add SMMUv3 Stage-1 Support for XEN Guests
>>> ===============================================
>>>
>>> :Author:     Milan Djokic <milan_djokic@epam.com>
>>> :Date:       2025-08-07
>>> :Status:     Draft
>>>
>>> Introduction
>>> ========
>>>
>>> The SMMUv3 supports two stages of translation. Each stage of
>>> translation can be
>>> independently enabled. An incoming address is logically translated
>>> from VA to
>>> IPA in stage 1, then the IPA is input to stage 2 which translates the IPA to
>>> the output PA. Stage 1 translation support is required to provide
>>> isolation between different
>>> devices within OS. XEN already supports Stage 2 translation but there is no
>>> support for Stage 1 translation.
>>> This design proposal outlines the introduction of Stage-1 SMMUv3
>>> support in Xen for ARM guests.
>>>
>>> Motivation
>>> ==========
>>>
>>> ARM systems utilizing SMMUv3 require stage-1 address translation to
>>> ensure secure DMA and guest managed I/O memory mappings.
>>
>> It is unclear for my what you mean by "guest manged IO memory mappings",
>> could you please provide an example?
>>
> 
> Basically enabling stage-1 translation means that the guest is
> responsible for managing IOVA to IPA mappings through its own IOMMU
> driver. Guest manages its own stage-1 page tables and TLB.
> For example, when a guest driver wants to perform DMA mapping (e.g. with
> dma_map_single()), it will request mapping of its buffer physical
> address to IOVA through guest IOMMU driver. Guest IOMMU driver will
> further issue mapping commands emulated by Xen which translate it into
> stage-2 mappings.
> 
>>> This feature enables:
>>>
>>> - Stage-1 translation in guest domain
>>> - Safe device passthrough under secure memory translation
>>>
>>
>> As I see it, ARM specs use "secure" mostly when referring to Secure mode
>> (S-EL1, S-EL2, EL3) and associated secure counterparts of architectural
>> devices, like secure GIC, secure Timer, etc. So I'd probably don't use
>> this word here to reduce confusion
>>
> 
> Sure, secure in terms of isolation is the topic here. I'll rephrase this
> 
>>> Design Overview
>>> ===============
>>>
>>> These changes provide emulated SMMUv3 support:
>>>
>>> - **SMMUv3 Stage-1 Translation**: stage-1 and nested translation
>>>       support in SMMUv3 driver.
>>
>> "Nested translation" as in "nested virtualization"? Or is this something else?
>>
> 
> No, this refers to 2-stage translation IOVA->IPA->PA as a nested
> translation. Although with this feature, nested virtualization is also
> enabled since guest can emulate its own IOMMU e.g. when kvm is run in guest.
> 
> 
>>> - **vIOMMU Abstraction**: Virtual IOMMU framework for guest stage-1
>>>       handling.
>>
>> I think, this is the big topic. You see, apart from SMMU, there is
>> at least Renesas IP-MMU, which uses completely different API. And
>> probably there are other IO-MMU implementations possible. Right now
>> vIOMMU framework handles only SMMU, which is okay, but probably we
>> should design it in a such way, that other IO-MMUs will be supported as
>> well. Maybe even IO-MMUs for other architectures (RISC V maybe?).
>>
> 
> I think that it is already designed in such manner. We have a generic
> vIOMMU framework and a backend implementation for target IOMMU as
> separate components. And the backend implements supported
> commands/mechanisms which are specific for target IOMMU type. At this
> point, only SMMUv3 is supported, but it is possible to implement other
> IOMMU types support under the same generic framework. AFAIK, RISC-V
> IOMMU stage-2 is still in early development stage, but I do believe that
> it will be also compatible with vIOMMU framework.
> 
>>> - **Register/Command Emulation**: SMMUv3 register emulation and
>>>       command queue handling.
>>
>> Continuing previous paragraph: what about other IO-MMUs? For example, if
>> platform provides only Renesas IO-MMU, will vIOMMU framework still
>> emulate SMMUv3 registers and queue handling?
>>
> 
> Yes, this is not supported in current implementation. To support other
> IOMMU than SMMUv3, stage-1 emulation backend needs to be implemented for
> target IOMMU and probably Xen driver for target IOMMU has to be updated
> to handle stage-1 configuration. I will elaborate this part in the
> design, to make clear that we have a generic vIOMMU framework, but only
> SMMUv3 backend exists atm.
> 
>>> - **Device Tree Extensions**: Adds `iommus` and virtual SMMUv3 nodes
>>>       to device trees for dom0 and dom0less scenarios.
>>> - **Runtime Configuration**: Introduces a `viommu` boot parameter for
>>>       dynamic enablement.
>>>
>>> vIOMMU is exposed to guest as a single device with predefined
>>> capabilities and commands supported. Single vIOMMU model abstracts the
>>> details of an actual IOMMU hardware, simplifying usage from the guest
>>> point of view. Guest OS handles only a single IOMMU, even if multiple
>>> IOMMU units are available on the host system.
>>
>> In the previous email I asked how are you planning to handle potential
>> SID overlaps, especially in PCI use case. I want to return to this
>> topic. I am not saying that this is impossible, but I'd like to see this
>> covered in the design document.
>>
> 
> Sorry, I've missed this part in the previous mail. This is a valid point,
> SID overlapping would be an issue for a single vIOMMU model. To prevent
> it, design will have to be extended with SID namespace virtualization,
> introducing a remapping layer which will make sure that guest virtual
> SIDs are unique and maintain proper mappings of vSIDs to pSIDs.
> For PCI case, we need to have an extended remapping logic where
> iommu-map property will be also patched in the guest device tree since
> we need a range of unique vSIDs for every RC assigned to guest.
> Alternative approach would be to switch to vIOMMU per pIOMMU model.
> Since both approaches require major updates, I'll have to do a detailed
> analysis and come back with an updated design which would address this
> issue.
> 
> 
>>>
>>> Security Considerations
>>> =======================
>>>
>>> **viommu security benefits:**
>>>
>>> - Stage-1 translation ensures guest devices cannot perform unauthorized DMA.
>>> - Emulated IOMMU removes guest dependency on IOMMU hardware while
>>>     maintaining domains isolation.
>>
>> I am not sure that I got this paragraph.
>>
> 
> First one refers to guest controlled DMA access. Only IOVA->IPA mappings
> created by guest are usable by the device when stage-1 is enabled. On
> the other hand, with stage-2 only enabled, device could access to
> complete IOVA->PA mapping created by Xen for guest. Since the guest has
> no control over device IOVA accesses, a malicious guest kernel could
> potentially access memory regions it shouldn't be allowed to, e.g. if
> stage-2 mappings are stale. With stage-1 enabled, guest device driver
> has to explicitly map IOVAs and this request is propagated through
> emulated IOMMU, making sure that IOVA mappings are valid all the time.
> 
> Second claim means that with emulated IOMMU, guests donâ€™t need direct
> access to physical IOMMU hardware. The hypervisor emulates IOMMU
> behavior for the guest, while still ensuring that memory access by
> devices remains properly isolated between guests, just like it would
> with real IOMMU hardware.
> 
>>>
>>>
>>> 1. Observation:
>>> ---------------
>>> Support for Stage-1 translation in SMMUv3 introduces new data
>>> structures (`s1_cfg` alongside `s2_cfg`) and logic to write both
>>> Stage-1 and Stage-2 entries in the Stream Table Entry (STE), including
>>> an `abort` field to handle partial configuration states.
>>>
>>> **Risk:**
>>> Without proper handling, a partially applied Stage-1 configuration
>>> might leave guest DMA mappings in an inconsistent state, potentially
>>> enabling unauthorized access or causing cross-domain interference.
>>>
>>> **Mitigation:** *(Handled by design)*
>>> This feature introduces logic that writes both `s1_cfg` and `s2_cfg`
>>> to STE and manages the `abort` field-only considering Stage-1
>>> configuration if fully attached. This ensures incomplete or invalid
>>> guest configurations are safely ignored by the hypervisor.
>>>
>>> 2. Observation:
>>> ---------------
>>> Guests can now invalidate Stage-1 caches; invalidation needs
>>> forwarding to SMMUv3 hardware to maintain coherence.
>>>
>>> **Risk:**
>>> Failing to propagate cache invalidation could allow stale mappings,
>>> enabling access to old mappings and possibly data leakage or
>>> misrouting.
>>>
>>> **Mitigation:** *(Handled by design)*
>>> This feature ensures that guest-initiated invalidations are correctly
>>> forwarded to the hardware, preserving IOMMU coherency.
>>>
>>> 3. Observation:
>>> ---------------
>>> This design introduces substantial new functionality, including the
>>> `vIOMMU` framework, virtual SMMUv3 devices (`vsmmuv3`), command
>>> queues, event queues, domain management, and Device Tree modifications
>>> (e.g., `iommus` nodes and `libxl` integration).
>>>
>>> **Risk:**
>>> Large feature expansions increase the attack surfaceâ€”potential for
>>> race conditions, unchecked command inputs, or Device Tree-based
>>> misconfigurations.
>>>
>>> **Mitigation:**
>>>
>>> - Sanity checks and error-handling improvements have been introduced
>>>     in this feature.
>>> - Further audits have to be performed for this feature and its
>>>     dependencies in this area. Currently, feature is marked as *Tech
>>>     Preview* and is self-contained, reducing the risk to unrelated
>>>    components.
>>>
>>> 4. Observation:
>>> ---------------
>>> The code includes transformations to handle nested translation versus
>>> standard modes and uses guest-configured command queues (e.g.,
>>> `CMD_CFGI_STE`) and event notifications.
>>>
>>> **Risk:**
>>> Malicious or malformed queue commands from guests could bypass
>>> validation, manipulate SMMUv3 state, or cause Dom0 instability.
>>
>> Only Dom0?
>>
> 
> This is a mistake, the whole system could be affected. I'll fix this.
> 
>>>
>>> **Mitigation:** *(Handled by design)*
>>> Built-in validation of command queue entries and sanitization
>>> mechanisms ensure only permitted configurations are applied. This is
>>> supported via additions in `vsmmuv3` and `cmdqueue` handling code.
>>>
>>> 5. Observation:
>>> ---------------
>>> Device Tree modifications enable device assignment and
>>> configurationâ€”guest DT fragments (e.g., `iommus`) are added via
>>> `libxl`.
>>>
>>> **Risk:**
>>> Erroneous or malicious Device Tree injection could result in device
>>> misbinding or guest access to unauthorized hardware.
>>>
>>> **Mitigation:**
>>>
>>> - `libxl` perform checks of guest configuration and parse only
>>>     predefined dt fragments and nodes, reducing risc.
>>> - The system integrator must ensure correct resource mapping in the
>>>     guest Device Tree (DT) fragments.
>>>
>>> 6. Observation:
>>> ---------------
>>> Introducing optional per-guest enabled features (`viommu` argument in
>>> xl guest config) means some guests may opt-out.
>>>
>>> **Risk:**
>>> Differences between guests with and without `viommu` may cause
>>> unexpected behavior or privilege drift.
>>>
>>> **Mitigation:**
>>> Verify that downgrade paths are safe and well-isolated; ensure missing
>>> support doesn't cause security issues. Additional audits on emulation
>>> paths and domains interference need to be performed in a multi-guest
>>> environment.
>>>
>>> 7. Observation:
>>> ---------------
>>> Guests have the ability to issue Stage-1 IOMMU commands like cache
>>> invalidation, stream table entries configuration, etc. An adversarial
>>> guest may issue a high volume of commands in rapid succession.
>>>
>>> **Risk**
>>> Excessive commands requests can cause high hypervisor CPU consumption
>>> and disrupt scheduling, leading to degraded system responsiveness and
>>> potential denial-of-service scenarios.
>>>
>>> **Mitigation**
>>>
>>> - Xen credit scheduler limits guest vCPU execution time, securing
>>>     basic guest rate-limiting.
>>
>> I don't thing that this feature available only in credit schedulers,
>> AFAIK, all schedulers except null scheduler will limit vCPU execution time.
>>
> 
> I was not aware of that. I'll rephrase this part.
> 
>>> - Batch multiple commands of same type to reduce overhead on the
>>>     virtual SMMUv3 hardware emulation.
>>> - Implement vIOMMU commands execution restart and continuation support
>>
>> So, something like "hypercall continuation"?
>>
> 
> Yes
> 
>>>
>>> 8. Observation:
>>> ---------------
>>> Some guest commands issued towards vIOMMU are propagated to pIOMMU
>>> command queue (e.g. TLB invalidate). For each pIOMMU, only one command
>>> queue is
>>> available for all domains.
>>>
>>> **Risk**
>>> Excessive commands requests from abusive guest can cause flooding of
>>> physical IOMMU command queue, leading to degraded pIOMMU responsivness
>>> on commands issued from other guests.
>>>
>>> **Mitigation**
>>>
>>> - Xen credit scheduler limits guest vCPU execution time, securing
>>>     basic guest rate-limiting.
>>> - Batch commands which should be propagated towards pIOMMU cmd queue
>>>     and enable support for batch execution pause/continuation
>>> - If possible, implement domain penalization by adding a per-domain
>>>     cost counter for vIOMMU/pIOMMU usage.
>>>
>>> 9. Observation:
>>> ---------------
>>> vIOMMU feature includes event queue used for forwarding IOMMU events
>>> to guest (e.g. translation faults, invalid stream IDs, permission
>>> errors). A malicious guest can misconfigure its SMMU state or
>>> intentionally trigger faults with high frequency.
>>>
>>> **Risk**
>>> Occurance of IOMMU events with high frequency can cause Xen to flood
>>> the event queue and disrupt scheduling with high hypervisor CPU load
>>> for events handling.
>>>
>>> **Mitigation**
>>>
>>> - Implement fail-safe state by disabling events forwarding when faults
>>>     are occured with high frequency and not processed by guest.
>>> - Batch multiple events of same type to reduce overhead on the virtual
>>>     SMMUv3 hardware emulation.
>>> - Consider disabling event queue for untrusted guests
>>>
>>> Performance Impact
>>> ==================
>>>
>>> With iommu stage-1 and nested translation inclusion, performance
>>> overhead is introduced comparing to existing, stage-2 only usage in
>>> Xen.
>>> Once mappings are established, translations should not introduce
>>> significant overhead.
>>> Emulated paths may introduce moderate overhead, primarily affecting
>>> device initialization and event handling.
>>> Performance impact highly depends on target CPU capabilities. Testing
>>> is performed on cortex-a53 based platform.
>>
>> Which platform exactly? While QEMU emulates SMMU to some extent, we are
>> observing somewhat different SMMU behavior on real HW platforms (mostly
>> due to cache coherence problems). Also, according to MMU-600 errata, it
>> can have lower than expected performance in some use-cases.
>>
> 
> Performance measurement are done on QEMU emulated Renesas platform. I'll
> add some details for this.
> 
>>> Performance is mostly impacted by emulated vIOMMU operations, results
>>> shown in the following table.
>>>
>>> +-------------------------------+---------------------------------+
>>> | vIOMMU Operation              | Execution time in guest         |
>>> +===============================+=================================+
>>> | Reg read                      | median: 30Î¼s, worst-case: 250Î¼s |
>>> +-------------------------------+---------------------------------+
>>> | Reg write                     | median: 35Î¼s, worst-case: 280Î¼s |
>>> +-------------------------------+---------------------------------+
>>> | Invalidate TLB                | median: 90Î¼s, worst-case: 1ms+  |
>>> +-------------------------------+---------------------------------+
>>> | Invalidate STE                | median: 450Î¼s worst_case: 7ms+  |
>>> +-------------------------------+---------------------------------+
>>>
>>> With vIOMMU exposed to guest, guest OS has to initialize IOMMU device
>>> and configure stage-1 mappings for devices attached to it.
>>> Following table shows initialization stages which impact stage-1
>>> enabled guest boot time and compares it with stage-1 disabled guest.
>>>
>>> "NOTE: Device probe execution time varies significantly depending on
>>> device complexity. virtio-gpu was selected as a test case due to its
>>> extensive use of dynamic DMA allocations and IOMMU mappings, making it
>>> a suitable candidate for benchmarking stage-1 vIOMMU behavior."
>>>
>>> +---------------------+-----------------------+------------------------+
>>> | Stage               | Stage-1 Enabled Guest | Stage-1 Disabled Guest |
>>> +=====================+=======================+========================+
>>> | IOMMU Init          | ~25ms                 | /                      |
>>> +---------------------+-----------------------+------------------------+
>>> | Dev Attach / Mapping| ~220ms                | ~200ms                 |
>>> +---------------------+-----------------------+------------------------+
>>>
>>> For devices configured with dynamic DMA mappings, DMA
>>> allocate/map/unmap operations performance is also impacted on stage-1
>>> enabled guests.
>>> Dynamic DMA mapping operation issues emulated IOMMU functions like
>>> mmio write/read and TLB invalidations.
>>> As a reference, following table shows performance results for runtime
>>> dma operations for virtio-gpu device.
>>>
>>> +---------------+-------------------------+----------------------------+
>>> | DMA Op        | Stage-1 Enabled Guest   | Stage-1 Disabled Guest     |
>>> +===============+=========================+============================+
>>> | dma_alloc     | median: 27Î¼s, worst: 7ms| median: 2.5Î¼s, worst: 360Î¼s|
>>> +---------------+-------------------------+----------------------------+
>>> | dma_free      | median: 1ms, worst: 14ms| median: 2.2Î¼s, worst: 85Î¼s |
>>> +---------------+-------------------------+----------------------------+
>>> | dma_map       | median: 25Î¼s, worst: 7ms| median: 1.5Î¼s, worst: 336Î¼s|
>>> +---------------+-------------------------+----------------------------+
>>> | dma_unmap     | median: 1ms, worst: 13ms| median: 1.3Î¼s, worst: 65Î¼s |
>>> +---------------+-------------------------+----------------------------+
>>>
>>> Testing
>>> ============
>>>
>>> - QEMU-based ARM system tests for Stage-1 translation and nested
>>>     virtualization.
>>> - Actual hardware validation on platforms such as Renesas to ensure
>>>     compatibility with real SMMUv3 implementations.
>>> - Unit/Functional tests validating correct translations (not implemented).
>>>
>>> Migration and Compatibility
>>> ===========================
>>>
>>> This optional feature defaults to disabled (`viommu=""`) for backward
>>> compatibility.
>>>
>>
> 
> BR,
> Milan
> 

Hello Volodymyr, Julien

Sorry for the delayed follow-up on this topic.
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.
Following is the updated design document.
I have added additional details to the design and performance impact 
sections, and also indicated future improvements. Security 
considerations section is unchanged apart from some minor details 
according to review comments.
Let me know what do you think about updated design. Once approved, I 
will send the updated vIOMMU patch series.


==========================================================
Design Proposal: Add SMMUv3 Stage-1 Support for XEN Guests
==========================================================

:Author:     Milan Djokic <milan_djokic@epam.com>
:Date:       2025-11-03
: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 enabed, guest manages IOVA to IPA mappings through its own 
IOMMU driver.

This feature enables:

- Stage-1 translation in guest domain
- Safe device passthrough with per-device address translation table

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.

Separate vIOMMU device is exposed to guest for every physical IOMMU in 
the system.
vIOMMU feature is designed in a way to provide a generic vIOMMU 
framework and a backend implementation
for target IOMMU as separate components.
Backend implementation contains specific IOMMU structure and commands 
handling (only SMMUv3 currently supported).
This structure allows potential reuse of stage-1 feature for other IOMMU 
types.

Security Considerations
=======================

**viommu security benefits:**

- Stage-1 translation ensures guest devices cannot perform unauthorized 
DMA (device I/O address mapping managed by guest).
- Emulated IOMMU removes guest direct dependency on IOMMU hardware, 
while maintaining domains isolation.


1. Observation:
---------------
Support for Stage-1 translation in SMMUv3 introduces new data structures 
(`s1_cfg` alongside `s2_cfg`)
and logic to write both Stage-1 and Stage-2 entries in the Stream Table 
Entry (STE), including an `abort`
field to handle partial configuration states.

**Risk:**
Without proper handling, a partially applied Stage-1 configuration might 
leave guest DMA mappings in an
inconsistent state, potentially enabling unauthorized access or causing 
cross-domain interference.

**Mitigation:** *(Handled by design)*
This feature introduces logic that writes both `s1_cfg` and `s2_cfg` to 
STE and manages the `abort` field-only
considering Stage-1 configuration if fully attached. This ensures 
incomplete or invalid guest configurations
are safely ignored by the hypervisor.

2. Observation:
---------------
Guests can now invalidate Stage-1 caches; invalidation needs forwarding 
to SMMUv3 hardware to maintain coherence.

**Risk:**
Failing to propagate cache invalidation could allow stale mappings, 
enabling access to old mappings and possibly
data leakage or misrouting.

**Mitigation:** *(Handled by design)*
This feature ensures that guest-initiated invalidations are correctly 
forwarded to the hardware,
preserving IOMMU coherency.

3. Observation:
---------------
This design introduces substantial new functionality, including the 
`vIOMMU` framework, virtual SMMUv3
devices (`vsmmuv3`), command queues, event queues, domain management, 
and Device Tree
modifications (e.g., `iommus` nodes and `libxl` integration).

**Risk:**
Large feature expansions increase the attack surface potential for race 
conditions, unchecked command inputs,
or Device Tree-based misconfigurations.

**Mitigation:**

- Sanity checks and error-handling improvements have been introduced in 
this feature.
- Further audits have to be performed for this feature and its 
dependencies in this area.

4. Observation:
---------------
The code includes transformations to handle nested translation versus 
standard modes and uses guest-configured
command queues (e.g., `CMD_CFGI_STE`) and event notifications.

**Risk:**
Malicious or malformed queue commands from guests could bypass 
validation, manipulate SMMUv3 state,
or cause system instability.

**Mitigation:** *(Handled by design)*
Built-in validation of command queue entries and sanitization mechanisms 
ensure only permitted configurations
are applied. This is supported via additions in `vsmmuv3` and `cmdqueue` 
handling code.

5. Observation:
---------------
Device Tree modifications enable device assignment and configuration 
through guest DT fragments (e.g., `iommus`)
are added via `libxl`.

**Risk:**
Erroneous or malicious Device Tree injection could result in device 
misbinding or guest access to unauthorized
hardware.

**Mitigation:**

- `libxl` perform checks of guest configuration and parse only 
predefined dt fragments and nodes, reducing risk.
- The system integrator must ensure correct resource mapping in the 
guest Device Tree (DT) fragments.

6. Observation:
---------------
Introducing optional per-guest enabled features (`viommu` argument in xl 
guest config) means some guests
may opt-out.

**Risk:**
Differences between guests with and without `viommu` may cause 
unexpected behavior or privilege drift.

**Mitigation:**
Verify that downgrade paths are safe and well-isolated; ensure missing 
support doesn't cause security issues.
Additional audits on emulation paths and domains interference need to be 
performed in a multi-guest environment.

7. Observation:
---------------
Guests have the ability to issue Stage-1 IOMMU commands like cache 
invalidation, stream table entries
configuration, etc. An adversarial guest may issue a high volume of 
commands in rapid succession.

**Risk:**
Excessive commands requests can cause high hypervisor CPU consumption 
and disrupt scheduling,
leading to degraded system responsiveness and potential 
denial-of-service scenarios.

**Mitigation:**

- Xen scheduler limits guest vCPU execution time, securing basic guest 
rate-limiting.
- Batch multiple commands of same type to reduce overhead on the virtual 
SMMUv3 hardware emulation.
- Implement vIOMMU commands execution restart and continuation support

8. Observation:
---------------
Some guest commands issued towards vIOMMU are propagated to pIOMMU 
command queue (e.g. TLB invalidate).

**Risk:**
Excessive commands requests from abusive guest can cause flooding of 
physical IOMMU command queue,
leading to degraded pIOMMU responsivness on commands issued from other 
guests.

**Mitigation:**

- Xen credit scheduler limits guest vCPU execution time, securing basic 
guest rate-limiting.
- Batch commands which should be propagated towards pIOMMU cmd queue and 
enable support for batch
   execution pause/continuation
- If possible, implement domain penalization by adding a per-domain cost 
counter for vIOMMU/pIOMMU usage.

9. Observation:
---------------
vIOMMU feature includes event queue used for forwarding IOMMU events to 
guest
(e.g. translation faults, invalid stream IDs, permission errors).
A malicious guest can misconfigure its SMMU state or intentionally 
trigger faults with high frequency.

**Risk:**
Occurance of IOMMU events with high frequency can cause Xen to flood the 
event queue and disrupt scheduling with
high hypervisor CPU load for events handling.

**Mitigation:**

- Implement fail-safe state by disabling events forwarding when faults 
are occured with high frequency and
   not processed by guest.
- Batch multiple events of same type to reduce overhead on the virtual 
SMMUv3 hardware emulation.
- Consider disabling event queue for untrusted guests

Performance Impact
==================

With iommu stage-1 and nested translation inclusion, performance 
overhead is introduced comparing to existing,
stage-2 only usage in Xen. Once mappings are established, translations 
should not introduce significant overhead.
Emulated paths may introduce moderate overhead, primarily affecting 
device initialization and event handling.
Performance impact highly depends on target CPU capabilities.
Testing is performed on QEMU virt and Renesas R-Car (QEMU emulated) 
platforms.
Performance is mostly impacted by emulated vIOMMU operations, results 
shown in the following table.

+-------------------------------+---------------------------------+
| vIOMMU Operation              | Execution time in guest         |
+===============================+=================================+
| Reg read                      | median: 30Î¼s, worst-case: 250Î¼s |
+-------------------------------+---------------------------------+
| Reg write                     | median: 35Î¼s, worst-case: 280Î¼s |
+-------------------------------+---------------------------------+
| Invalidate TLB                | median: 90Î¼s, worst-case: 1ms+  |
+-------------------------------+---------------------------------+
| Invalidate STE                | median: 450Î¼s worst_case: 7ms+  |
+-------------------------------+---------------------------------+

With vIOMMU exposed to guest, guest OS has to initialize IOMMU device 
and configure stage-1 mappings for devices
attached to it.
Following table shows initialization stages which impact stage-1 enabled 
guest boot time and compares it with
stage-1 disabled guest.

"NOTE: Device probe execution time varies significantly depending on 
device complexity. virtio-gpu was selected
as a test case due to its extensive use of dynamic DMA allocations and 
IOMMU mappings, making it a suitable
candidate for benchmarking stage-1 vIOMMU behavior."

+---------------------+-----------------------+------------------------+
| Stage               | Stage-1 Enabled Guest | Stage-1 Disabled Guest |
+=====================+=======================+========================+
| IOMMU Init          | ~25ms                 | /                      |
+---------------------+-----------------------+------------------------+
| Dev Attach / Mapping| ~220ms                | ~200ms                 |
+---------------------+-----------------------+------------------------+

For devices configured with dynamic DMA mappings, DMA allocate/map/unmap 
operations performance is
also impacted on stage-1 enabled guests.
Dynamic DMA mapping operation trigger emulated IOMMU functions like mmio 
write/read and TLB invalidations.
As a reference, following table shows performance results for runtime 
dma operations for virtio-gpu device.

+---------------+-------------------------+----------------------------+
| DMA Op        | Stage-1 Enabled Guest   | Stage-1 Disabled Guest     |
+===============+=========================+============================+
| dma_alloc     | median: 27Î¼s, worst: 7ms| median: 2.5Î¼s, worst: 360Î¼s|
+---------------+-------------------------+----------------------------+
| dma_free      | median: 1ms, worst: 14ms| median: 2.2Î¼s, worst: 85Î¼s |
+---------------+-------------------------+----------------------------+
| dma_map       | median: 25Î¼s, worst: 7ms| median: 1.5Î¼s, worst: 336Î¼s|
+---------------+-------------------------+----------------------------+
| dma_unmap     | median: 1ms, worst: 13ms| median: 1.3Î¼s, worst: 65Î¼s |
+---------------+-------------------------+----------------------------+

Testing
=======

- QEMU-based ARM system tests for Stage-1 translation.
- 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)
- Support for other IOMMU HW (Renesas, RISC-V, etc.)
- Due to static definition of SPIs and MMIO regions for emulated 
devices, current implementation statically
   defines SPIs and MMIO regions for up to 16 vIOMMUs per guest. Future 
improvements would include configurable
   number of IOMMUs or automatic runtime resolution for target platform.

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


BR,
Milan




From xen-devel-bounces@lists.xenproject.org Mon Nov 03 13:19:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 13:19:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155339.1484833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFuTJ-0002Ii-2G; Mon, 03 Nov 2025 13:19:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155339.1484833; Mon, 03 Nov 2025 13:19:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFuTI-0002Ib-Uh; Mon, 03 Nov 2025 13:19:44 +0000
Received: by outflank-mailman (input) for mailman id 1155339;
 Mon, 03 Nov 2025 13:19: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=BM0P=5L=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vFuTI-0002IU-KM
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 13:19:44 +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 c00c5b95-b8b7-11f0-980a-7dc792cee155;
 Mon, 03 Nov 2025 14:19:39 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-429c7e0282dso1770309f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 03 Nov 2025 05:19:39 -0800 (PST)
Received: from ?IPV6:2003:e5:870e:1500:7795:3e8a:56c1:ae53?
 (p200300e5870e150077953e8a56c1ae53.dip0.t-ipconnect.de.
 [2003:e5:870e:1500:7795:3e8a:56c1:ae53])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-429c13f1d4csm19950490f8f.39.2025.11.03.05.19.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 03 Nov 2025 05:19: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: c00c5b95-b8b7-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762175978; x=1762780778; 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=bA8/Ajh6uh2bGBEg0MDAJdWIsZY3P3htNjZpMFVCD1c=;
        b=Gnsla4Kw5VtDoLeioyAXG0CcU0xVfuKrB6VGZ0lxYQBVQvHXAU0l8SdgDcvcLcjm9i
         LO/juTb2u786ocYAVbCE4QD8COw6WszYUuWc+HQcqf99Y2QlShWjOGMTAicS6aFFywOF
         VVozpAIw8PuHPL6imdwFUOy3jzOIz/ZkOiddpzizw8i2GtCVnahZfBrqqYMpeKTKr2H0
         wy9rbF4FK7RMXbxJkSEYqADUfce5KG1UZw5i9VBy4xu9llQuCVqH4S/B9GvmroabRVL3
         ZyB0/QVHrzLc+KBQuo+HFIhIzzUWlPZRvC/RsN233qQPUUcvPTnPLGliXd4hiEURADOR
         O2CQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762175978; x=1762780778;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=bA8/Ajh6uh2bGBEg0MDAJdWIsZY3P3htNjZpMFVCD1c=;
        b=b6/E3osldrQFxWBUIMPGLwOoVxDpmmLhseS3/gLJkAxsUJWL5FeWpJ6hyeNrjjf9aG
         ExXbuK9oiTxzVrDGum/KP8Qgs/dorEnSwFPtLiyJ/aefRunODIHvCUwd9004kS6bVMyO
         Lmj0xclGqcq5h9ULOE1CLxHo6tAcLNmJVLTMFHWS+EU29Qm4Tg2MB8KtBHI3lpMTNHsO
         5pXtRCiMgJLn+R59/fq2xTSe0spVWT/gykk3E+izWDMtMyF0SwmgXrK8yznk68XDrOga
         cutVET7p2LNdLpg1X51qt4GepokqzTIcQYho+3BcvIyMW1x2LBvLEZ5m6kvYswkPCm+g
         kyFg==
X-Gm-Message-State: AOJu0YwIBIvk1We77FSgnzoOH6rk1AQM/BA0U0KQ/o+5+/o0S89BdS6K
	SHOktEeL0ma3rfu9RkJpuHP5er2QTib/VmijV1WUk7Z8Ksys5CY0xUxBwIS6rbM6EbE=
X-Gm-Gg: ASbGncuJEc+8xg+zXVbpS9UWc5ZnjgLtnlPTHkZjvUqCquz6uISOC3JzE6Rqyw7wd1V
	0VIfUm7JMD0/oy2VHeRzb3mlai+GdGkVWFTkqQDjos9Gm/SKp/LrwzLCNjWKUAMqdLjMPsRhEjR
	ArWnGVK/Nw9C+zyq6NDXUEwhSoXaJKYdtQGZjtlAB9ttFD0WAQs0TW5DLdHKkAWip7euC4CXUk1
	sdPOE+gkL0cthnDdVJqVRdbZe052gQRCoSuJBct8y5NFHUfhLcHOusGq6CdEcjHq1ig5R8xsVOD
	s+FRYq9TNTJcpR5iA/iiAiEQcqIC6TFzrKbVR6CBPypcWFYdRV8vMKJFSMn/d0h03KW2bCm+W8g
	IXR22/sNto97ssbdbf88TidTJU4SXJeoD9RUUf1adsSSmoK6bxJNZQG2rzXAJHN8aS6KCwQc+6I
	B0kiKy4GOouJUXS5+7ogqQwglZGbsGvqVggNSCjSfRb71tXehuJNeKskHbjEoNq/kFsqFdlAwLV
	9fbkw4HShb9UjFXo1lhQZZsyrxdEuKdKb5RPbFaMTsSpxeUJQ==
X-Google-Smtp-Source: AGHT+IGuau3eW5WC1R93VPLVN8+9E4SrZfXJSujtRWGSeFzlyOBkUt+8IC7TUpXakZNqQ8ep+AjxzA==
X-Received: by 2002:a05:6000:250e:b0:429:cba7:f773 with SMTP id ffacd0b85a97d-429cba7f9cdmr5274216f8f.19.1762175978291;
        Mon, 03 Nov 2025 05:19:38 -0800 (PST)
Message-ID: <209fa1c0-f6f2-4594-a2ae-7733ff651761@suse.com>
Date: Mon, 3 Nov 2025 14:19:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/netfront: Comment Correction: Fix Spelling Error and
 Description of Queue Quantity Rules
To: Chu Guangqing <chuguangqing@inspur.com>, sstabellini@kernel.org,
 oleksandr_tyshchenko@epam.com, andrew+netdev@lunn.ch, davem@davemloft.net,
 edumazet@google.com, kuba@kernel.org, pabeni@redhat.com
Cc: xen-devel@lists.xenproject.org, netdev@vger.kernel.org,
 linux-kernel@vger.kernel.org
References: <20251103032212.2462-1-chuguangqing@inspur.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: <20251103032212.2462-1-chuguangqing@inspur.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------krGRhE0Upii4b9WMJ7Y2jJMT"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------krGRhE0Upii4b9WMJ7Y2jJMT
Content-Type: multipart/mixed; boundary="------------naDhrqYeiAtCem5LDmy8CsV5";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Chu Guangqing <chuguangqing@inspur.com>, sstabellini@kernel.org,
 oleksandr_tyshchenko@epam.com, andrew+netdev@lunn.ch, davem@davemloft.net,
 edumazet@google.com, kuba@kernel.org, pabeni@redhat.com
Cc: xen-devel@lists.xenproject.org, netdev@vger.kernel.org,
 linux-kernel@vger.kernel.org
Message-ID: <209fa1c0-f6f2-4594-a2ae-7733ff651761@suse.com>
Subject: Re: [PATCH] xen/netfront: Comment Correction: Fix Spelling Error and
 Description of Queue Quantity Rules
References: <20251103032212.2462-1-chuguangqing@inspur.com>
In-Reply-To: <20251103032212.2462-1-chuguangqing@inspur.com>

--------------naDhrqYeiAtCem5LDmy8CsV5
Content-Type: multipart/mixed; boundary="------------511r0QUbJCNKJQeyEXdlbmGB"

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

T24gMDMuMTEuMjUgMDQ6MjIsIENodSBHdWFuZ3Fpbmcgd3JvdGU6DQo+IFRoZSBvcmlnaW5h
bCBjb21tZW50cyBjb250YWluZWQgc3BlbGxpbmcgZXJyb3JzIGFuZCBpbmNvbXBsZXRlIGxv
Z2ljYWwNCj4gZGVzY3JpcHRpb25zLCB3aGljaCBjb3VsZCBlYXNpbHkgbGVhZCB0byBtaXN1
bmRlcnN0YW5kaW5ncyBvZiB0aGUgY29kZQ0KPiBsb2dpYy4gVGhlIHNwZWNpZmljIG1vZGlm
aWNhdGlvbnMgYXJlIGFzIGZvbGxvd3M6DQo+IA0KPiBDb3JyZWN0IHRoZSBzcGVsbGluZyBl
cnJvciBieSBjaGFuZ2luZyAiaW51dCBtYXgiIHRvICJidXQgbm90IGV4Y2VlZCB0aGUNCj4g
bWF4aW11bSBsaW1pdCI7DQo+IA0KPiBBZGQgdGhlIG5vdGUgIklmIHRoZSB1c2VyIGhhcyBu
b3Qgc3BlY2lmaWVkIGEgdmFsdWUsIHRoZSBkZWZhdWx0IG1heGltdW0NCj4gbGltaXQgaXMg
OCIgdG8gY2xhcmlmeSB0aGUgZGVmYXVsdCB2YWx1ZSBsb2dpYzsNCj4gDQo+IEltcHJvdmUg
dGhlIGNvaGVyZW5jZSBvZiB0aGUgc3RhdGVtZW50IHRvIG1ha2UgdGhlIHF1ZXVlIHF1YW50
aXR5IHJ1bGVzDQo+IGNsZWFyZXIuDQo+IA0KPiBBZnRlciB0aGUgbW9kaWZpY2F0aW9uLCB0
aGUgY29tbWVudHMgY2FuIGFjY3VyYXRlbHkgcmVmbGVjdCB0aGUgY29kZQ0KPiBiZWhhdmlv
ciBvZiAidGFraW5nIHRoZSBzbWFsbGVyIHZhbHVlIGJldHdlZW4gdGhlIG51bWJlciBvZiBD
UFVzIGFuZCB0aGUNCj4gZGVmYXVsdCBtYXhpbXVtIGxpbWl0IG9mIDggZm9yIHRoZSBudW1i
ZXIgb2YgcXVldWVzIiwgZW5oYW5jaW5nIGNvZGUNCj4gbWFpbnRhaW5hYmlsaXR5Lg0KPiAN
Cj4gU2lnbmVkLW9mZi1ieTogQ2h1IEd1YW5ncWluZyA8Y2h1Z3VhbmdxaW5nQGluc3B1ci5j
b20+DQoNClJldmlld2VkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQoN
Cg0KSnVlcmdlbg0K
--------------511r0QUbJCNKJQeyEXdlbmGB
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-----

--------------511r0QUbJCNKJQeyEXdlbmGB--

--------------naDhrqYeiAtCem5LDmy8CsV5--

--------------krGRhE0Upii4b9WMJ7Y2jJMT
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/Ey8FAmkIq+gFAwAAAAAACgkQsN6d1ii/Ey8s
eAgAkP4SIOJZjYUHdJZGVfcnpP2nPq9QC4Mmoc4h1n/QG7L4/XS5bNW2HMwSTg/aM3iK/vOxeala
l2Gup8+fOMHcnEOHtIuTYHioM66qLsm764hr5ro0LY077J/GED9SgUveUlCuCJDGpt5ZG2bYHVbL
Gh4GyoH30+yJTJGWi+YUUJb9EnRar7H24jUCC0xK9dRaHRaCnZJGYS+Kns3xgjbi8KQMrDCdyj+U
z38TYJ+VT0UoL/G6PzUCBrw92gJNlwqs18XwPRKLWdrmLQ8W7UPnXFr6Jwk96YwEf/3MDqonIvPh
R2DrVz9RXX7Imv2t1/+lFDb9fiMHvDgHnMnCntthyQ==
=gdmH
-----END PGP SIGNATURE-----

--------------krGRhE0Upii4b9WMJ7Y2jJMT--


From xen-devel-bounces@lists.xenproject.org Mon Nov 03 13:26:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 13:26:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155349.1484842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFuZL-0003ok-JS; Mon, 03 Nov 2025 13:25:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155349.1484842; Mon, 03 Nov 2025 13:25:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFuZL-0003od-Gl; Mon, 03 Nov 2025 13:25:59 +0000
Received: by outflank-mailman (input) for mailman id 1155349;
 Mon, 03 Nov 2025 13: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=BM0P=5L=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vFuZK-0003oX-7J
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 13:25:58 +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 a155d833-b8b8-11f0-9d16-b5c5bf9af7f9;
 Mon, 03 Nov 2025 14:25:57 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b6d78062424so879438466b.1
 for <xen-devel@lists.xenproject.org>; Mon, 03 Nov 2025 05:25:57 -0800 (PST)
Received: from ?IPV6:2003:e5:870e:1500:7795:3e8a:56c1:ae53?
 (p200300e5870e150077953e8a56c1ae53.dip0.t-ipconnect.de.
 [2003:e5:870e:1500:7795:3e8a:56c1:ae53])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b70bd65cc72sm347503766b.19.2025.11.03.05.25.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 03 Nov 2025 05: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: a155d833-b8b8-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762176356; x=1762781156; 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=kgp5Yvte42p4gbCZLk/wI7Qek18+z6EgzMxotV8dtCw=;
        b=Okbyxr1lGO9PqY6V6r+7TPokRKQakAHi0PeZhx+ebbl3TDwIb/TmN45B1iNpr6d5sz
         ntdKQ3Ty+4QybjOQNKqxlBMaLJnaah7GdOyCtgvfAqcpQuatCX5LrFVt9gl7wvK9MzUh
         WNGngMWoB11FT8R6Er7Rff5K5oKsYht5oL1LDuAFL8FCbw/RXLNqO+BW/qmoNhoOJaXQ
         rBpEA98diH5ZTOqdERN5uA66atV/pIuzjX2ROGhi1/dGOSbHWHqlcspCFSWGvTfI2U6b
         BgKGpK0zEbdOwIqTsCf/8gl9qbAyh04tVDgi+mmH8UWUOvphLioW256appIoYYKF4OEK
         TMDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762176356; x=1762781156;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=kgp5Yvte42p4gbCZLk/wI7Qek18+z6EgzMxotV8dtCw=;
        b=B/Eqv1IcfruaMK8qWTXTM2JlYJnxGHmJnxAFHjFS0dfwLpyidIbmowVh8GN05ylrAC
         7YehnVyR4U6Avh+Lq6tQW8QfJu/1d7ZTHZQjLI+/VB9+OL+d/lJLNwks3JveYQwaaHw1
         K+eJ8PfTMsAdq1wtaUyzdLMQKnrCmsW3/iGwBHyAEwpDDQCr8LI4uEDvBhqOSn4LpYTY
         MLqi6DbeGXKUjFhKO8VPmNh2vTZTEI5IMKkCbm7iEyMESRBXOxklYyWTarkfq8sq7SYa
         0tv2TIDCXBpHgVohICStoyJe/SaTJcmOGddPUeocRfGUWOnXeCcgahM/N9EBNNGpH2Mq
         DNXQ==
X-Forwarded-Encrypted: i=1; AJvYcCXNINMSr2wU2OaBizkw9Dl9w0JJN94iC4yg1Q0Kn5hgN1Ue5TEJC8yYQ1TiC32ZUtEtWotTGaIRDPQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxsFpu2zKIhZYNwZhG2lmK0HZG5theBm0nysdReuCUds2oNlaJy
	xlk2klKXRQRHgBAHbz244s5My8Ou5TinDzttcXjSB7Cn39VCAJ0or8bDI+Z+6C381Hs=
X-Gm-Gg: ASbGnculyiRfFpRL9DxnCgzVMAUlPJAQs6yysdit//NRsDJh34LV+UxvdFEL4l87sSY
	EMrzPs1KxfyiUnCdvh9mwTcMIlcEhaFhWEbDKb89ATnJq26GHUcQp7TbbyQRx/zz2bu7UwdIfnF
	OTk1AUkO0X8igUR0lOUnjHDrQRB4/1lhBaiETXutA4F12tTkwPLIsYpfOFwVhXj/P079O0b2Dy9
	aRXwPDAhkN/w2b3lA7bHm4QmgYOaWbI2uvS6c3ePPLZlnpIsCm+C/gHUGX00rxRReYULMLxy2Jz
	9WbQsWQ1hFQ81v4hHW3JrKLRHgTBmxZ/jGNbSLtPCx5s9hz1UXtyFk5gcPkY4s1qrjjgj5Ms32t
	MCxDg6gKZeOaOptt0mVX2p/jju36orDjJBEGqn23FDl4jBe3EXtW95pRz0BISvNErlcoc1YqNaI
	TL437Op5F9r1d8smxMHThuobJXltVspOf1ZAf3vOJubeVlowWNokS8lMmUb4mdj+uHdKL4FJjyV
	gsxlfehi+ZAeGFWFokn43/O1N1I
X-Google-Smtp-Source: AGHT+IFAHmrTO8ln01Qomtjqa892AilurAv+0OR4p/HILoaEUB1Hxz++lDSIBJgfYm97zdNyDKQMnw==
X-Received: by 2002:a17:907:26c9:b0:b71:ea7c:e509 with SMTP id a640c23a62f3a-b71ea8c3121mr13414166b.41.1762176356222;
        Mon, 03 Nov 2025 05:25:56 -0800 (PST)
Message-ID: <1d4245fb-c48f-4e0a-8c69-c18f23b0fd5a@suse.com>
Date: Mon, 3 Nov 2025 14:25:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/usb: Constify struct hc_driver
To: Christophe JAILLET <christophe.jaillet@wanadoo.fr>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-usb@vger.kernel.org
References: <63241c9e857646d895ce615b998d41ee4829f9e3.1761475831.git.christophe.jaillet@wanadoo.fr>
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: <63241c9e857646d895ce615b998d41ee4829f9e3.1761475831.git.christophe.jaillet@wanadoo.fr>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------TEFMu9nrGOax3HN0PtapF02y"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------TEFMu9nrGOax3HN0PtapF02y
Content-Type: multipart/mixed; boundary="------------U1zNNy0zDczPsawwTlYAN2iq";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Christophe JAILLET <christophe.jaillet@wanadoo.fr>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org,
 xen-devel@lists.xenproject.org, linux-usb@vger.kernel.org
Message-ID: <1d4245fb-c48f-4e0a-8c69-c18f23b0fd5a@suse.com>
Subject: Re: [PATCH] xen/usb: Constify struct hc_driver
References: <63241c9e857646d895ce615b998d41ee4829f9e3.1761475831.git.christophe.jaillet@wanadoo.fr>
In-Reply-To: <63241c9e857646d895ce615b998d41ee4829f9e3.1761475831.git.christophe.jaillet@wanadoo.fr>

--------------U1zNNy0zDczPsawwTlYAN2iq
Content-Type: multipart/mixed; boundary="------------igYf0v5aAHmtcgkvWfha5CqD"

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

T24gMjYuMTAuMjUgMTE6NTEsIENocmlzdG9waGUgSkFJTExFVCB3cm90ZToNCj4gJ3N0cnVj
dCBoY19kcml2ZXInIGlzIG5vdCBtb2RpZmllZCBpbiB0aGlzIGRyaXZlci4NCj4gDQo+IENv
bnN0aWZ5aW5nIHRoaXMgc3RydWN0dXJlIG1vdmVzIHNvbWUgZGF0YSB0byBhIHJlYWQtb25s
eSBzZWN0aW9uLCBzbw0KPiBpbmNyZWFzZXMgb3ZlcmFsbCBzZWN1cml0eSwgZXNwZWNpYWxs
eSB3aGVuIHRoZSBzdHJ1Y3R1cmUgaG9sZHMgc29tZQ0KPiBmdW5jdGlvbiBwb2ludGVycy4N
Cj4gDQo+IE9uIGEgeDg2XzY0LCB3aXRoIGFsbG1vZGNvbmZpZywgYXMgYW4gZXhhbXBsZToN
Cj4gQmVmb3JlOg0KPiA9PT09PT0NCj4gICAgIHRleHQJICAgZGF0YQkgICAgYnNzCSAgICBk
ZWMJICAgIGhleAlmaWxlbmFtZQ0KPiAgICA1MjA2NQkgIDIzMTc2CSAgICAyNTYJICA3NTQ5
NwkgIDEyNmU5CWRyaXZlcnMvdXNiL2hvc3QveGVuLWhjZC5vDQo+IA0KPiBBZnRlcjoNCj4g
PT09PT0NCj4gICAgIHRleHQJICAgZGF0YQkgICAgYnNzCSAgICBkZWMJICAgIGhleAlmaWxl
bmFtZQ0KPiAgICA1Mjg5NwkgIDIyMzQ0CSAgICAyNTYJICA3NTQ5NwkgIDEyNmU5CWRyaXZl
cnMvdXNiL2hvc3QveGVuLWhjZC5vDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGhl
IEpBSUxMRVQgPGNocmlzdG9waGUuamFpbGxldEB3YW5hZG9vLmZyPg0KDQpSZXZpZXdlZC1i
eTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPg0KDQoNCkp1ZXJnZW4NCg==
--------------igYf0v5aAHmtcgkvWfha5CqD
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-----

--------------igYf0v5aAHmtcgkvWfha5CqD--

--------------U1zNNy0zDczPsawwTlYAN2iq--

--------------TEFMu9nrGOax3HN0PtapF02y
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/Ey8FAmkIrWMFAwAAAAAACgkQsN6d1ii/Ey83
zAf/V8o9him1m5n2Cy1Eu+4EImq5rnOS7huVQzH57w39s2/UjORPn5xR/t6WanpzOnSI0ogQdHHZ
kYxY+J7ecJCcU2YgK3LUq/w3I3Utf9lZutMteCeeTv0KaP1rJnTquK4tJvTXsfVbjkbrqSSN1ooJ
X0HdP5wgOqOxs05tluo0lpL4dRrtsZHkCsviMqCYQYrxUHp9UOb37FS+FEQiKwyAxXI1zIUH71lG
ArUaKU4eJcD1/LxEu6SZEHryOSKtg132w+pEOHXPqRKarOTRmY+mSmd4bulWZOGtqDVsK9s9wnvI
+oC9Z1WnSCRooLIj+A5NgkAIdYDzUTNPSxanTWhfgA==
=WwW0
-----END PGP SIGNATURE-----

--------------TEFMu9nrGOax3HN0PtapF02y--


From xen-devel-bounces@lists.xenproject.org Mon Nov 03 14:11:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 14:11:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155361.1484857 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFvGc-0001bX-OG; Mon, 03 Nov 2025 14:10:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155361.1484857; Mon, 03 Nov 2025 14: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 1vFvGc-0001bQ-LV; Mon, 03 Nov 2025 14:10:42 +0000
Received: by outflank-mailman (input) for mailman id 1155361;
 Mon, 03 Nov 2025 14:10: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=9qLe=5L=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vFvGb-0001bK-TC
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 14:10:42 +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 e0732b57-b8be-11f0-9d16-b5c5bf9af7f9;
 Mon, 03 Nov 2025 15:10:40 +0100 (CET)
Received: from DM4PR03MB7015.namprd03.prod.outlook.com (2603:10b6:8:42::8) by
 MW5PR03MB6879.namprd03.prod.outlook.com (2603:10b6:303:1c9::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.16; Mon, 3 Nov
 2025 14:10:33 +0000
Received: from DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9]) by DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9%3]) with mapi id 15.20.9275.015; Mon, 3 Nov 2025
 14:10: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: e0732b57-b8be-11f0-9d16-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=N8Gy/0oquLfSqlQieghaEs3qgGFHfC3U2yP8MwSVnsY6PfulaKNYUo2lnjXCNvqU6id1KQDW9Yk4lsdFNp3CBlyw7crd/E59XK5bOEpB03B8lF5T64cw+3+aEuSwHLoxu6SAUIp/x4uDste1VomB+ueKqrGCEKSF8G8D6lFeoEfwSgu3j2hj4GEc36s2UUC15qJYUHD/2dK4+9FLKDkwDSqYjG0AcsAYqZUBCPtHxD/3nmw3i0L41mAaYSZ0krUzlP9W2DNL0jLtppPJGrTG7RytqZ1DX0LGKSMiy2ZmbqgMXMvB8C4l0LDF1AumdCNwVsaI5bKS0UBrgj3cQwjMdw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3onIjthpmHhBsy+KQ4CCh6zxX5I/6thsGoo/Yqp7hWs=;
 b=UYYuxn9r/Z5O/U2xzTHs77riCwvMsPLOya1KjO9vugB7bfSTaCoY/Y0SlOyCPJjBBBdurDq5+JH2rvixlgeBrzSaDfA4z8Me6T6ROjE66j/ERYdVIjSXdZ4reBxTGm1sCnLKMOQ0SSbFXXEDY2P/fwkb7eDJ9rsfxNGoQB0w1uaqNHpcddKuaQpir+q50BYz1oX3x+536yCqcwZYUT/5WQvyxkKLopaViIrYNe/yKRsBNrC4Yc1imAzuGP3fWkGHKpGMrE7E1M7ouORts54pnntaVshYT4FecgwxQA0i7a2CRftNhePBG3p7QjuLYJSKvwhJniSv0Apkf60qZ8EgUQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3onIjthpmHhBsy+KQ4CCh6zxX5I/6thsGoo/Yqp7hWs=;
 b=QLzpkAOoseY5Ivx0jsNZI4Z/GnfWb5u9NtaQtZHPamwGziwF62sdJXAC00iX290BUYXIjWfrOxcBmOUCra+7/xPb3vsOl0+nYOFNzN5EjuqYWdUeM5ZKv1ov6HHCg1UaJ1Ev2+Hh5KCNOSSUzYlHfH2eLZCHm9CM4ePBZaYod6g=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <211906a8-7804-42c6-805c-572b4f673322@citrix.com>
Date: Mon, 3 Nov 2025 14:10:27 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 for-4.21 0/2] x86/AMD: deal with RDSEED issues
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <272093dc-c97c-434a-9977-ad1c26e7e229@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <272093dc-c97c-434a-9977-ad1c26e7e229@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0070.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:60::34) To PH7PR03MB7004.namprd03.prod.outlook.com
 (2603:10b6:510:12f::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR03MB7015:EE_|MW5PR03MB6879:EE_
X-MS-Office365-Filtering-Correlation-Id: d8919ae5-460c-4981-6fca-08de1ae2bf59
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?eWxpRkpzVStKYk1DbkNVSXIwVmdGaHJqUkkyaTEzMldZZWJ0RVNHOTdxWUlP?=
 =?utf-8?B?emEvalYwSkVqbzJpY2tIWTZQUjliczlqdU9Gbi9iRmRMVDQ2UVNNdDNvaFZZ?=
 =?utf-8?B?NVVUNThQOTZ3RHF2VmZPUjB3RTNVTEROZ0NyL2QreVhiZmE1Q2RTWmxqb1RZ?=
 =?utf-8?B?cXJCKzlLemdRMHdIZVlCcDJKRGNNcW80cXFUaW1nN3F0QW4yK2JEbG1ZYnE5?=
 =?utf-8?B?YjMwSk5PQzNKWTJMMlN1Y3lFTVRyS2VldnBWeDV6Q0kwVWRuc1UvbnErRks1?=
 =?utf-8?B?NWhDYWJrQ0lzbGt6TTVXOW5YYUtNa2dSejhkUzRwTkdYSWJ2S1BDRnkwb0to?=
 =?utf-8?B?OU1hNHVxVmxmNFVzRHBNdDQ0Nm5WWlNWMnUrNG5ZK3lnRXdQdk8yM09tTnVq?=
 =?utf-8?B?NnFFbENEUnh1aE96Z3J6L3F0b0tzR0ZmeU01eDJ0c1pFTVVrVGg3ZDFhUTZp?=
 =?utf-8?B?bXMrN2R4RFZaQnFDS0dmejdSSnFDODJIK253NStIcEJ0UkloSThESisvWk5T?=
 =?utf-8?B?clJwdlIrQ3JHUUlWclA5NHROQVZWNkU4WG5EbXNJanM0UFUrNXFjN1ZMejdw?=
 =?utf-8?B?SWI4VCs5NWxxWEdoTUcvaXRMNE1sYTRLdnh6bFVPdFp1R0NvV1I5blZkNmRq?=
 =?utf-8?B?Q2FGa0lLTWYzcVlPSVNiWXRKdjEzbnYwNytPOTNiQUdVcGVwakxSeTRIUWgw?=
 =?utf-8?B?UlBsd1lGazI0ZlVyZDd4OGhpWEIxcVhEeXVuOTJ1YXdvZEtXaGpjV2lWNm4v?=
 =?utf-8?B?R3lqbWJ5UlJXQVdGb2drbVk5bXVncHRmcWJ6K3BkYWczanloY3FSb3VHVHNL?=
 =?utf-8?B?cGtjSXltNCtUempqT0IrczluSGo1Vi9qVmIzUSt1dWpVT2RkUGdNQVF6SVJI?=
 =?utf-8?B?RUxlSXhibSswV0ZnU1k2dVR3czVBc2N5OTM5eFhtODJYVW5tZDhHUXlHTkpX?=
 =?utf-8?B?RXk3VmhMN1BHTzB2S2Mwd0J3U2RmMFhPeGU5U3VwckVoQVFLaVdSZ2hPNUZq?=
 =?utf-8?B?d24yRDAwUTAyb3p5UzUxQXRyWndYZlFVWUNFQ0psS2EzSnJtNmMyZktGamFi?=
 =?utf-8?B?RGgxZitPUzFVUVVwZ0lLUHd2UHRIblE4Z09aSjlHdEpIdmI4ZDlqTjkzWHlD?=
 =?utf-8?B?eWV3OC9SeHZnSlpoMUJMSzIxbkJtMFpXaDBsZGgzT1BqZHpIcFZlVCtGMU41?=
 =?utf-8?B?SUFHUUpLTTR0UCt3ZzczY1FFS1NKSmNaOEZYOXh3NWRmdmthcEhOVjRrS0pM?=
 =?utf-8?B?NStaWncvMnoxNU5PRnFOV1phVEg2Q3I0QUNLZE5MZVV3NmRqelVZK0FlcHI5?=
 =?utf-8?B?NDRFa2JrVHIvREwxYVQ3TU1PWGJMdUJ3b2F4aXRwaDJJUWhnOUJVcWFsTll6?=
 =?utf-8?B?MUxhcjVzQ3ptdnB1QkxtdVNTWG11Q083Q3JNelArVEtWQUE5clRCc3dHVWVh?=
 =?utf-8?B?T2pjNUcvYnFYV3lsa1JRL2htM211NVhMR1drQThlNWxXNzJoVllieTRKU2FP?=
 =?utf-8?B?dENqd1VlcVROakg2d0xITXR4dVZ1NWJaYnplMlhoK3JKeVI4Tzk4MS9rcllB?=
 =?utf-8?B?OW1tcUUxZlhOSWExQm5hUmZIdmxHalBLWFFIV3FIWkE0eFR3Q1pLWDBscE1l?=
 =?utf-8?B?VXJBWmZ2eUxKYjNyTUtLUCtwWmxsa05BUWlDN01tcGFzZUJlSVZvaGpwdlBZ?=
 =?utf-8?B?L1FNY1h6NkFUbVU5SkxFazJkdzc4TlVQU1FJcmxuY3FBOHhxNGVQNms1N21E?=
 =?utf-8?B?NUZld0FZQzJBNGZCWDJHaU9iVXo5cDAwV29UM2ZkTi9rZndjdnVRNk80Wnlv?=
 =?utf-8?B?TEJZVEZoL25XaHpQYnF6RnB4S3NlVi8zWHB5QTNuNTVxdnM3T05xTDIrTmRa?=
 =?utf-8?B?R1NCZHJPUG9JclYvRlZiS1B6ZFNHS3VjRExXcnZaSy92RStpTFRRWkNRcmhX?=
 =?utf-8?Q?I84Y1WznYLGzFG9sdDtjPuGgvej9uu97?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR03MB7015.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?VVJ0VUZvUnE4TFhmMnJsOUxReE9sdnk0NWEwaHM4dzM5eEYxZHhndFBMTkNl?=
 =?utf-8?B?Wk1OSWlGNmNsZWl6Z0ZPNmRqOU1jK0lxQnJEeGxwaldZa1U2bHhyZFhrZFRS?=
 =?utf-8?B?ZzBBSGxUblI5ZmI5YkRmNTVBN2MyQ09OZ3BUTGFBdEdDT3VvS3NKQTRaVGNw?=
 =?utf-8?B?b0M0K01ZeW1HcGF6N1ZEdzJDV3dSdEhVY3lDaGo2QUxsZUhCOGZRdC9ObEJz?=
 =?utf-8?B?RENEU2VFWUlyeFBIRTlGd210ckdnTUxSN2NGc0JJQ2Z0NTJOWFk2SGpVRVVJ?=
 =?utf-8?B?SXJVT2F6QjBTUmFpVFdQdlF0YkhxYlh6OXRFV3k4N0hOeGFRL1p0eklFaURs?=
 =?utf-8?B?Vk9Ed3pMQ0tSaWdRNjF6MS9YTGxWZGV3Z1dtYlpGRzZxZ2JkOGtyb0tpeGwr?=
 =?utf-8?B?a1FFdmg3TnFtR1RaOElDM3pVUjB2U3JwRmF1WWVkK01BYTVXRzJLVm5maHRq?=
 =?utf-8?B?MG5MbUVpUGR0bTVnTjk4NFRSbVlhVi9pcTRUaDd4UEpWamM2N2ZVdUswNXdk?=
 =?utf-8?B?MENZUEcxbTFFT2oyajNCMU1wUTVLMnJpLy95VzNZc3gvMEttOEVyZi9vMDQ2?=
 =?utf-8?B?ZjVkQXdOSFhNTFhielZSNkEvOUhyV2s1VVg0TUVHTGR0RzAvWWVBdVV5anhQ?=
 =?utf-8?B?SWJJYllQRjZzQ2h0K0lTVFd0Z1U4aDdWWWx2akVPbWJIS0FsY1JuMngxNEln?=
 =?utf-8?B?UmUxR2ZpSldZZHI4QW5WMVoya0dBRGhmREtRQTBzTitTR0ZmREpGMVlhSnZF?=
 =?utf-8?B?d0Fjc211NEZJdld1NGdaS21nc2hvZ1EvQWdnUWZIbUxWWW1hVG5UdjNGT3JV?=
 =?utf-8?B?RGdiTzc4U2xnRExVMWdCYTdmTlZVZW1yVGZQKytnQ3dMSmxkTFMxYnhraWsz?=
 =?utf-8?B?U1hSeENDcWN2cUVLNlVBdVBwKzBmTzE2TlpEZjBSckc5Sm9zNXlhVTUyb1h3?=
 =?utf-8?B?Y3pyL1NBTGNBMi9zeXVBdXBYMEpNMTZ1MUlBUXc2UWxsUXByanFqeWIxK1VX?=
 =?utf-8?B?WnQ2TDhlYmdpTUlsSTIyTWVGNXh2Zm5xcUZ3cDE4MUVtVWYzV0F1L21jQmJ2?=
 =?utf-8?B?UXl3VTFobS9EZXVPZmNROGwyTVRGVDhSS1M1Q0pzbElHL1FFSlZma1lvWlNm?=
 =?utf-8?B?bDhUUE5QdHY0MEtTa21VczdLcGszZ2tEaDQ1M203SERGdXh0aWt1RE9wcHlz?=
 =?utf-8?B?N3o3YWNSTFA2QXBJUHNXVXM0UC9lK3doSy9YWEVNS3Z4VUJKOE4reWJvdmJC?=
 =?utf-8?B?Q0xPMW93TjBGdG9lQnlxTGhkQ2NnbFI3dE9lT0Voa3pQUGdOTk52NWFuTEd4?=
 =?utf-8?B?bHE5eWphUFUzRHV0bDJia0xQbjdoZTk1MDU5V3hRMUFKZHp3ZWJ6K3lFN2kv?=
 =?utf-8?B?ODR0YkNLMlVlMU1uOEhzZDlaSytpOC9ZRWNqQm1uVXlaZ2RvVkh2N3Vka0k0?=
 =?utf-8?B?L0tQcHhjdzkxeTUrZS91TGFFUWJnVURaSEVBbDJvRWFNR3dLTDlYVTNzMkxt?=
 =?utf-8?B?UlBjVm1tKzVBQWUzaXdId2ZmSEpBR2M5OXJhNEtqS1hhdFVneU9QS2I5QUtG?=
 =?utf-8?B?Nmx5a01oQlFCck1yRm1CVi9jeS9ER01tMmxLVVpNbG5vVHZLUGltRVFLN3lQ?=
 =?utf-8?B?YXcvMFNQSnNTZDJrZVkzaU1LaUJRUkdCdEZrTWZmVE9lNVU0L0g4b2crVzJC?=
 =?utf-8?B?R3FyaytzRkxaZDdhYzhFczk2a2VWMkZWbVFOUlV3RlRnUmR0RzhyZHlMdzFR?=
 =?utf-8?B?Q3M3VGFiUWc1cm10TFhHUVlueVNRVmhMZENBanI1d2dPTWYzdVJYUjNlUWJT?=
 =?utf-8?B?bGEzM28wSE9EcVRzL2JtNkluVkRyYjBaTWhwd2M0OWQvalJrYWhjUkhQZ3VU?=
 =?utf-8?B?WkVQN0ZrUXpVMjB0WGI2Nk9LVVRsWVE4UEhTQXZaV1hvUVVlSVZzbUNPc3ZJ?=
 =?utf-8?B?RkZkNVVaYnYvSSs3bkFtSHlFMmdjTFk2ZTM4U1ptWnhBNmtBVnU2WjRaMnFF?=
 =?utf-8?B?cW91ZVNjU2EzNjMreFhaL2RwR0dnQVFUTTZ6b3pVcEYyU1NlYTlnbjhMOVJs?=
 =?utf-8?B?WVBGVmZOckdFYzlNTE94ekxYczVLVzh2ZWkyVTNKU014eVZWdWFxdWhVNG1O?=
 =?utf-8?B?dFVhZ1IrWEdHMzJLYkcxaDRPYW5PUnlLSjNxWDdGSmh3dGdlYmtQZThTOTVa?=
 =?utf-8?B?blE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d8919ae5-460c-4981-6fca-08de1ae2bf59
X-MS-Exchange-CrossTenant-AuthSource: PH7PR03MB7004.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2025 14:10:33.0197
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: eLXHLNPCrCTvaWRwS+c/bPs17dBwbe0LoxjgGvceyx6x10tS9ND2Z/OivKHloql/IUffbFv0hgvk56Oqf//ZicRxSL3+u/kK86sAmYTXHOE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR03MB6879

On 28/10/2025 3:32 pm, Jan Beulich wrote:
> Both patches also want 'x86/CPU: extend is_forced_cpu_cap()'s "reach"' in
> place.
>
> 1: disable RDSEED on Fam17 model 47 stepping 0
> 2: disable RDSEED on most of Zen5

We have two existing cases for RDRAND issues in Xen:

1) IvyBridge SRBDS speculative vulnerability.Â  Here, the RNG is good,
but use of the RDRAND instruction can allow another entity on the system
to observe the random number.Â  RDRAND is off by default, but can be
opted in to.

2) AMD Fam15/16h Laptop.Â  Here, the RNG is fine, except after S3 on one
single OEM.Â  Use of RDRAND can be activated on the command line, but
there's no ability for individual VMs to opt in.Â  Being a laptop,
migration isn't a major concern.


For this seres about RDSEED, we've got:

1) Cyan Skillfish, the PlayStation 5 CPU but also in one crypto-mining
rig.Â  Here, RDSEED is deterministically broken and not getting a fix.

The chances of Xen running on these systems is almost 0.Â  We should turn
off RDSEED and be done with it; it's not interesting in the slightest to
be able to turn back on.

2) Zen5.Â  Here, RDSEED gives a higher-than-expected rate of 0's for only
the 32bit and 16bit forms; the 64bit form is unaffected.

There is microcode to fix it, on server at least.Â  Firmware fixes for
client are rather further away.Â  64bit OSes are likely fine (using the
64bit instruction form).Â  Some Linux devs think that Linux would be safe
even using the 32bit form, if it really only has a 10% zeroes rate.

There is certainly a risk that software uses the 32b/16b forms, and not
mix it properly with other entropy, but the common case these days (64b)
works just fine.Â  This means that blanket-disabling does more harm than
good.

This case does really want to be off by default (given no microcode),
but able to be opted in to.Â  At least one major class of OSes (Linux)
are safe despite the issue.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 03 14:30:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 14:30:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155374.1484867 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFvZl-0004N2-CP; Mon, 03 Nov 2025 14:30:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155374.1484867; Mon, 03 Nov 2025 14: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 1vFvZl-0004Mv-9a; Mon, 03 Nov 2025 14:30:29 +0000
Received: by outflank-mailman (input) for mailman id 1155374;
 Mon, 03 Nov 2025 14:30:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vFvZj-0004Mp-Iq
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 14:30:27 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vFvZi-00Gre8-2Q;
 Mon, 03 Nov 2025 14:30:26 +0000
Received: from [2a02:8012:3a1:0:a8bf:4414:df65:fa8f]
 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 1vFvZi-008Wgs-1z;
 Mon, 03 Nov 2025 14:30:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=2xDEXqAfxYEZ3r2Oz31XyZoib6qwT5KJ34OC6A0UAsU=; b=WIdSbKgUeEr1HjFUcsEefKKyPN
	yVVEqXJvW+7Ime5U2RQbgLgko2ZIpmNNkhZ3caF/+FsQiORnDA441N08AXJyjCuizAcbUhfOq5FVC
	hrV/u+bzMMIh0cN1/QtC87e5tKY8UmtAXH6aPy0n9waoXH+xiQWicmAoM6hD6BYepotI=;
Message-ID: <0fd2b8e4-bdea-4d01-a2dd-8d2e4b37090d@xen.org>
Date: Mon, 3 Nov 2025 14:30:24 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Limitations for Running Xen on KVM Arm64
To: "haseeb.ashraf@siemens.com" <haseeb.ashraf@siemens.com>,
 Mohamed Mediouni <mohamed@unpredictable.fr>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Volodymyr_Babchuk@epam.com" <Volodymyr_Babchuk@epam.com>,
 "Driscoll, Dan" <dan.driscoll@siemens.com>,
 "Bachtel, Andrew" <andrew.bachtel@siemens.com>,
 "fahad.arslan@siemens.com" <fahad.arslan@siemens.com>,
 "noor.ahsan@siemens.com" <noor.ahsan@siemens.com>,
 "brian.sheppard@siemens.com" <brian.sheppard@siemens.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <KL1PR0601MB4588D25A95D680640A80F2CAE6FBA@KL1PR0601MB4588.apcprd06.prod.outlook.com>
 <KL1PR0601MB45885505ECBBE9262C2B25E0E6FBA@KL1PR0601MB4588.apcprd06.prod.outlook.com>
 <FC5C66FD-8554-4F46-8546-B27DE76C8EEF@unpredictable.fr>
 <2b00a98f-6fee-4341-92bd-25909ebb6e36@xen.org>
 <CA753BD2-31FA-480D-B32A-2125F0F4981D@unpredictable.fr>
 <fc181349-d743-4ef0-bcd2-01c04d2a463e@xen.org>
 <TYZPR06MB4580126B98C6A38AA710F597E6F8A@TYZPR06MB4580.apcprd06.prod.outlook.com>
 <01527182-ccef-43a5-be55-a5450eb7919f@xen.org>
 <KL1PR0601MB45883069D3725975B49761D0E6C7A@KL1PR0601MB4588.apcprd06.prod.outlook.com>
Content-Language: en-US
From: Julien Grall <julien@xen.org>
In-Reply-To: <KL1PR0601MB45883069D3725975B49761D0E6C7A@KL1PR0601MB4588.apcprd06.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 03/11/2025 13:09, haseeb.ashraf@siemens.com wrote:
> Hi,

Hi,
> 
>> To clarify, Xen is using the local TLB version. So it should be vmalls12e1.
> If I understood correctly, won't HCR_EL2.FB makes local TLB, a broadcast one?

HCR_EL2.FB only applies to EL1. So it depends who is setting it in the 
this situation. If it is Xen, then it would only apply to its VM. If it 
is KVM, then it would also apply to the nested Xen.

> Can you explain in what scenario exactly, can we use vmalle1?

We can use vmalle1 in Xen for the situation we discussed. I was only 
pointing out that the implementation in KVM seems suboptimal.

> 
>> Before going into batching, do you have any data showing how often XENMEM_remove_from_physmap is called in your setup? Similar, I would be interested to know the number of TLBs flush within one hypercalls and whether the regions unmapped were contiguous.
> The number of times XENMEM_remove_from_physmap is invoked depends upon the size of each binary. Each hypercall invokes TLB instruction once. If I use persistent rootfs, then this hypercall is invoked almost 7458 times (+8 approx) which is equal to sum of kernel and DTB image pages:
> domainbuilder: detail: xc_dom_alloc_segment:   kernel       : 0x40000000 -> 0x41d1f200  (pfn 0x40000 + 0x1d20 pages)
> domainbuilder: detail: xc_dom_alloc_segment:   devicetree   : 0x48000000 -> 0x4800188d  (pfn 0x48000 + 0x2 pages)
> 
> And if I use ramdisk image, then this hypercall is invoked almost 222815 times (+8 approx) which is equal to sum of kernel, ramdisk and DTB image 4k pages.
> domainbuilder: detail: xc_dom_alloc_segment:   kernel       : 0x40000000 -> 0x41d1f200  (pfn 0x40000 + 0x1d20 pages)
> domainbuilder: detail: xc_dom_alloc_segment:   module0      : 0x48000000 -> 0x7c93d000  (pfn 0x48000 + 0x3493d pages)
> domainbuilder: detail: xc_dom_alloc_segment:   devicetree   : 0x7c93d000 -> 0x7c93e8d9  (pfn 0x7c93d + 0x2 pages)
> 
> You can see the address ranges in above logs, the addresses seem contiguous in this address space and at best we can reduce the number of calls to 3, each at the end of every image when removed from physmap.

Thanks for the log. I haven't looked at the toolstack code. Does this 
mean only one ioctl call will be issue per blob will be used?

> 
>> we may still send a few TLBs because:
>> * We need to avoid long-running operations, so the hypercall may restart. So we will have to flush at mininum before every restart
>> * The current way we handle batching is we will process one item at the time. As this may free memory (either leaf or intermediate page-tables), we will need to flush the TLBs first to prevent the domain accessing the wrong memory. This could be solved by keeping track of the list of memory to free. But this is going to require some work and I am not entirely sure this is worth it at the moment.
> I think now you have the figure that 222815 TLBs are too much and a few TLBs would still be a lot better. TLBs less than 10 are not much noticeable.

I agree this is too much but this is going to require quite a bit of 
work (as I said we would need to keep track of pages to be freed before 
the TLB flush).

At least to me, it feels like switching to TLBI range (or a series os 
IPAS2E1IS) is an easier win. But if you feel like doing the larger 
rework, I would be happy to have a look to check whether it would be an 
acceptable change for upstream.

> 
>> We could use a series of TLBI IPAS2E1IS which I think is what TLBI range is meant to replace (so long the addresses are contiguous in the given space).
> Isn't IPAS2E1IS a range tlbi instruction? My understanding is that this instruction is available on processors with range TLBI support, I could be wrong. I saw its KVM emulation which does full invalidation if range TLBI is not supported (https://github.com/torvalds/linux/blob/master/arch/arm64/kvm/hyp/pgtable.c#L647).

IPAS2E1IS only allows you to invalidate one address at the time and is 
available on all processors. The R version is only available when the 
processor support TLBI range and allow you to invalidate multiple 
contiguous address.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Nov 03 14:31:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 14:31:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155382.1484876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFvaI-0004od-KE; Mon, 03 Nov 2025 14:31:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155382.1484876; Mon, 03 Nov 2025 14:31: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 1vFvaI-0004oW-HB; Mon, 03 Nov 2025 14:31:02 +0000
Received: by outflank-mailman (input) for mailman id 1155382;
 Mon, 03 Nov 2025 14:31: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=zlLP=5L=bounce.vates.tech=bounce-md_30504962.6908bc9e.v1-f7909f804308400482c3b0eb5c5bfc8f@srs-se1.protection.inumbo.net>)
 id 1vFvaH-0004d2-3H
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 14:31:01 +0000
Received: from mail132-29.atl131.mandrillapp.com
 (mail132-29.atl131.mandrillapp.com [198.2.132.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b4f882f8-b8c1-11f0-980a-7dc792cee155;
 Mon, 03 Nov 2025 15:30:56 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-29.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4d0Ysp2t1pz7lmQ8N
 for <xen-devel@lists.xenproject.org>; Mon,  3 Nov 2025 14:30:54 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f7909f804308400482c3b0eb5c5bfc8f; Mon, 03 Nov 2025 14:30: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: b4f882f8-b8c1-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1762180254; x=1762450254;
	bh=L7zIdZfhJrcK0CvzFBqxXipuXKZ6lGMx0oTZecMnioI=;
	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=wdXnUlS2qcql4DimBJl3zQShA5bS66quqgqGDmmxHGBISRLTCh7FymjkVGqug91kq
	 jelqYZ9Zq+q9EBpMLzkV2uEjwG2/FCC+v2OpjvWYlta45MEaBjWo0ZmiO9jPULydCA
	 VicHi1IaYIiuv1WNzWf9dPHHo+QmFY8ZAh3j6KFZtDjTTPCsIacbzfAVW6toQNBjVu
	 nAXK3xC+rLEl3rPKsRyS7tEa1PWraQBjNruUSbjJP6nUmGlcCyrwSi1zFKv/gVIx/Y
	 8/AQA2ZTPIRk+K81llA0Lq3AAq8kAFZvqLHzqhm+oli05FwSH85hio2pSaUxUXUefx
	 9l/+bGAGhBW6Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1762180254; x=1762440754; i=teddy.astie@vates.tech;
	bh=L7zIdZfhJrcK0CvzFBqxXipuXKZ6lGMx0oTZecMnioI=;
	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=SrPZeHnrt4xKQf2A8qeRGAA6OZLZ4qvwyjNeBG+jloJDOszrML4ZbkCrO1nDOykLB
	 yzeDyaQy9tCMaG08paWhduom9G8dN6FLuXUL1PAy4QQfDqNg4zkc3jzCAmoLzKpAre
	 Bfa18SPB7rQLJ0GJcv6BNGbaSm8HV3nu5yA3l21Lj+AOapdSLULFCC3XsNeFdWTz3C
	 u7Cf4e6R7eWdXq48YwTXZcs1GD/x+osWsCITXc38DEgevysvZo19/icTLCtvl2MnhQ
	 z5HctcF/GGqfRwjct8y6uR2NFcXZHABFsXItqMH6BCtqiOP/LPrbGnskJ/2XHpzUrg
	 BJFpqCThMei+A==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH=20for-4.22=20v2=202/3]=20x86/platform:=20Expose=20DTS=20sensors=20MSR?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1762180253397
Message-Id: <ed81804d-16db-4fce-88b6-12dc165e73a0@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <cover.1761752801.git.teddy.astie@vates.tech> <1001287258cf9652c749c66c6565478085a8657c.1761752801.git.teddy.astie@vates.tech> <22e53531-73e4-40e9-a45e-2c5f59852ce4@suse.com>
In-Reply-To: <22e53531-73e4-40e9-a45e-2c5f59852ce4@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.f7909f804308400482c3b0eb5c5bfc8f?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251103:md
Date: Mon, 03 Nov 2025 14:30:54 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 30/10/2025 =C3=A0 14:54, Jan Beulich a =C3=A9crit=C2=A0:
> On 29.10.2025 16:59, Teddy Astie wrote:
>> --- a/xen/arch/x86/include/asm/msr-index.h
>> +++ b/xen/arch/x86/include/asm/msr-index.h
>> @@ -115,6 +115,9 @@
>>   #define  MCU_OPT_CTRL_GDS_MIT_DIS           (_AC(1, ULL) <<  4)
>>   #define  MCU_OPT_CTRL_GDS_MIT_LOCK          (_AC(1, ULL) <<  5)
>>   
>> +#define MSR_DTS_TEMPERATURE_TARGET          0x000001a2
>> +#define MSR_DTS_PACKAGE_THERM_STATUS        0x000001b1
> 
> Where are the DTS infixes coming from? The SDM doesn't have such. We try =
to
> stay as close as reasonable to the SDM / PM names, with the exception tha=
t
> typically we omit IA32 infixes.
> 

I got confused with the naming of MSRs (and their lack of IA32 prefix) 
in the upper list of MSR. I guess it should be MSR_PACKAGE_THERM_STATUS 
and MSR_TEMPERATURE_TARGET.

> I'd also like to note that unlike the two THERM_STATUS, MSR_TEMPERATURE_T=
ARGET
> (as per the absence if an IA32 infix in the SDM) isn't an architectural M=
SR,
> and hence I'm not entirely convinced we can "blindly" expose it. (Interes=
tingly
> in Linux code there is an IA32 infix.)
> 

We only perform rdmsr_safe on this MSR, so I don't think there is much 
problem with it as I don't expect Intel to reuse this MSR number for 
something else (at worst, it is going to not be implemented and would 
gracefully fail).

Some parts of this MSR slightly change, but the one (tjmax) that is 
interesting in here is consistent across the architectures.

>> @@ -86,6 +87,11 @@ static bool msr_read_allowed(unsigned int msr)
>>   
>>       case MSR_MCU_OPT_CTRL:
>>           return cpu_has_srbds_ctrl;
>> +
>> +    case MSR_IA32_THERM_STATUS:
>> +    case MSR_DTS_TEMPERATURE_TARGET:
>> +    case MSR_DTS_PACKAGE_THERM_STATUS:
>> +        return raw_cpu_policy.basic.pm.dts;
> 
> This, aiui (and according to related comments I got from Andrew on remote=
ly
> similar changes I was doing) wants to use host_policy. Hence why that oth=
er
> prereq change is needed that I talked about (and that iirc I reproduced o=
n
> the other sub-thread).
> 

yes

> Jan



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Nov 03 14:34:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 14:34:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155394.1484887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFvdY-0005Ri-1E; Mon, 03 Nov 2025 14:34:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155394.1484887; Mon, 03 Nov 2025 14: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 1vFvdX-0005Rb-Uk; Mon, 03 Nov 2025 14:34:23 +0000
Received: by outflank-mailman (input) for mailman id 1155394;
 Mon, 03 Nov 2025 14:34:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Wccd=5L=bounce.vates.tech=bounce-md_30504962.6908bd6c.v1-2dddcedda25845c19a088b0e55533f9c@srs-se1.protection.inumbo.net>)
 id 1vFvdX-0005RV-1K
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 14:34:23 +0000
Received: from mail180-3.suw31.mandrillapp.com
 (mail180-3.suw31.mandrillapp.com [198.2.180.3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2fb211a9-b8c2-11f0-9d16-b5c5bf9af7f9;
 Mon, 03 Nov 2025 15:34:21 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-3.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4d0Yxm3JrxzDRHx6V
 for <xen-devel@lists.xenproject.org>; Mon,  3 Nov 2025 14:34:20 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 2dddcedda25845c19a088b0e55533f9c; Mon, 03 Nov 2025 14:34: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: 2fb211a9-b8c2-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1762180460; x=1762450460;
	bh=cmJyhQrOy7ylbHCxHCwskA5DUv5Thn1gMw+4kX72MLQ=;
	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=gntrV8VtG2dwuLlZAGsEfI6s2oseeb/oozheiNpr9pH/g3ivCgxj7c3WqXeQpEq6T
	 eQbvZH00nNZNMNgRuMJ/FvagBm54qO6OLY7+Vf7WhtUWkMzgACK4J0GLpC5TrKyokF
	 uqrToJtv0jR42sYlXCt3+VZQd2LoM/WFHkFOOHoSwKnt0qmMhSWybLHtWiSqm0npm4
	 myydRtgdI+u5A+LPjIK4qqT+OhH4E98Cbba/zH0pLtSfolxaNOhta6qx14SlBYeXb0
	 vd7Yv4z0h9CvNkha51gqL35bBroOyb1GmtokLe0VgKVxLWV694YkgwFePaqhpRP3hr
	 RlG5jN7moBUIQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1762180460; x=1762440960; i=teddy.astie@vates.tech;
	bh=cmJyhQrOy7ylbHCxHCwskA5DUv5Thn1gMw+4kX72MLQ=;
	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=NidbyOx94QQEU9uaCdnbXjihf/V+dQXVwzoVWiWs51USDQXj3oyOsZ1QPkeyzmMZ+
	 W72EddJ/3rA+GYOaTcbADzgHcMfqp2VsU+U1tYkGfkG0e5x92KL4G5AGJa4a3tWkB0
	 bS2xN1cSmOlku/nZNsW4k1oKQsjbPpdSLHLp+HPFIYbtX7mXm82HROnYPaq359qC9A
	 h+ooz/cUWGRpAXs9+uykTTl+faO8yvIZqnKMRNKfI8QtdOwv8bwTfOEjB9wR3XMIp3
	 pHcGsyWfqO5VcDZpPhh051D6vZaWS2bstzI/yiQqc2Lz0mF9YhxUkYa7Ba1SW2Sx6H
	 e1z79B9ANP3YQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH=20for-4.22=20v2=203/3]=20xenpm:=20Add=20get-intel-temp=20subcommand?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1762180459922
Message-Id: <63a05970-f3b9-4c9c-851e-fea8352d2a43@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1761752801.git.teddy.astie@vates.tech> <6ed4d320ca4a69ca8b05b0af45d32ff4b330a779.1761752801.git.teddy.astie@vates.tech> <453a06cc-f1ba-4ac0-af61-43c24640fd2e@suse.com>
In-Reply-To: <453a06cc-f1ba-4ac0-af61-43c24640fd2e@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.2dddcedda25845c19a088b0e55533f9c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251103:md
Date: Mon, 03 Nov 2025 14:34:20 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 30/10/2025 =C3=A0 15:05, Jan Beulich a =C3=A9crit=C2=A0:
> On 29.10.2025 16:59, Teddy Astie wrote:
>> @@ -1354,6 +1356,95 @@ void enable_turbo_mode(int argc, char *argv[])
>>                   errno, strerror(errno));
>>   }
>>   
>> +#define MSR_DTS_THERM_STATUS         0x0000019c
>> +#define MSR_DTS_TEMPERATURE_TARGET   0x000001a2
>> +#define MSR_DTS_PACKAGE_THERM_STATUS 0x000001b1
> 
> DTS infix question again. Actually, can't we use the hypervisor's msr-ind=
ex.h here?
> We already use it from the emulator test harness.
> 

I wasn't sure whether tools could use msr-index.h or not. If we can, we 
also likely want to make some of the existing tools to rely on it 
instead of having them defining it in their files.

>> +static int fetch_dts_temp(xc_interface *xch, uint32_t cpu, bool package=
, int *temp)
>> +{
>> +    xc_resource_entry_t entries[2] =3D {
>> +        (xc_resource_entry_t){
>> +            .idx =3D package ? MSR_DTS_PACKAGE_THERM_STATUS : MSR_DTS_T=
HERM_STATUS
>> +        },
>> +        (xc_resource_entry_t){ .idx =3D MSR_DTS_TEMPERATURE_TARGET },
>> +    };
>> +    struct xc_resource_op ops =3D {
>> +        .cpu =3D cpu,
>> +        .entries =3D entries,
>> +        .nr_entries =3D 2,
>> +    };
>> +    int tjmax;
> 
> Plain int? (Same for the last function parameter.)
> 
>> +    int ret =3D xc_resource_op(xch, 1, &ops);
>> +
>> +    if ( ret <=3D 0 )
>> +        /* This CPU isn't online or can't query this MSR */
>> +        return ret ?: -EOPNOTSUPP;
>> +
>> +    if ( ret =3D=3D 2 )
>> +        tjmax =3D (entries[1].val >> 16) & 0xff;
>> +    else
>> +    {
>> +        /*
>> +         * The CPU doesn't support MSR_IA32_TEMPERATURE_TARGET, we assu=
me it's 100 which
>> +         * is correct aside a few selected Atom CPUs. Check coretemp so=
urce code for more
>> +         * information.
>> +         */
>> +        fprintf(stderr, "[CPU%d] MSR_IA32_TEMPERATURE_TARGET is not sup=
ported, assume "
>> +                "tjmax=3D100=C2=B0C, readings may be incorrect\n", cpu)=
;
> 
> As per remarks elsewhere, I don't see why there is an IA32 infix here.
> 
>> +        tjmax =3D 100;
>> +    }
>> +
>> +    *temp =3D tjmax - ((entries[0].val >> 16) & 0xff);
>> +    return 0;
>> +}
>> +
>> +
>> +void get_intel_temp(int argc, char *argv[])
>> +{
>> +    int temp, cpu =3D -1, socket;
> 
> Plain int question again, for temp and socket.
> 

socket should be unsigned. But temp (as being CPU temperature) can 
actually be negative (even though it is going to be quite specific).
The use of int here is consistent with what Linux coretemp uses to store 
temperatures.

>> +    bool has_data =3D false;
>> +
>> +    if (argc > 0)
> 
> This and ...
> 
>> +        parse_cpuid(argv[0], &cpu);
>> +
>> +    if (cpu !=3D -1)
> 
> ... this if() don't fit the (hypervisor) style used elsewhere.
> 

ok

> Jan
> 



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Nov 03 16:04:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 16:04:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155404.1484898 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFx2k-00088k-9R; Mon, 03 Nov 2025 16:04:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155404.1484898; Mon, 03 Nov 2025 16:04: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 1vFx2k-00088d-4L; Mon, 03 Nov 2025 16:04:30 +0000
Received: by outflank-mailman (input) for mailman id 1155404;
 Mon, 03 Nov 2025 16:04: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=HFFD=5L=redhat.com=david@srs-se1.protection.inumbo.net>)
 id 1vFx2j-00088X-1X
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 16:04:29 +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 c21c6348-b8ce-11f0-9d16-b5c5bf9af7f9;
 Mon, 03 Nov 2025 17:04:26 +0100 (CET)
Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com
 [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-595-r3oPNyyuMOKPTp55RJ_C3Q-1; Mon, 03 Nov 2025 11:04:03 -0500
Received: by mail-wm1-f69.google.com with SMTP id
 5b1f17b1804b1-477171bbf51so24501495e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 03 Nov 2025 08:04:00 -0800 (PST)
Received: from ?IPV6:2003:d8:2f3f:4b00:ee13:8c22:5cc5:d169?
 (p200300d82f3f4b00ee138c225cc5d169.dip0.t-ipconnect.de.
 [2003:d8:2f3f:4b00:ee13:8c22:5cc5:d169])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4773c48daa0sm167032215e9.3.2025.11.03.08.03.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 03 Nov 2025 08:03: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: c21c6348-b8ce-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1762185860;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=lAB1nRPhZgw2D2F/txfufevKSsNDcd09VLHZkiGFvSY=;
	b=dZ6AuP8/2qAtpqlSlKRPID7Jlfi8b8H6CI6Al8Qtr88j53fY+IGjFc9rLyjSwgocHiQjlm
	3Pgf0+RoCrs/uKAVs3kysFUpQ236UXTfTDBmG4Cj72DyXQjPV75pXxrnSZmDmWUvZbNYyh
	a8EkEYmJFS/BaKG1+wlqMboBeNEhE2Q=
X-MC-Unique: r3oPNyyuMOKPTp55RJ_C3Q-1
X-Mimecast-MFC-AGG-ID: r3oPNyyuMOKPTp55RJ_C3Q_1762185830
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762185825; x=1762790625;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=lAB1nRPhZgw2D2F/txfufevKSsNDcd09VLHZkiGFvSY=;
        b=RdC9Et876Gu8PV2ff8k55oMcFTYHwz5XNT299BzahpvA/+PEFqll2jOT9Id28jWBD6
         XKHw1wGY8OBDNYWDFVwaXHj6LySbnTGZt7spmRKEHKKPTWO1CVjW/RhZ6HT2TqnP+IOr
         dMGVjlfddSb7JlR2J2eTLx9+0MErvgG4I+v+3fXlCfsWg+p4ghFGa6iEfeJnrF6MTvD2
         BcQCl4qnAaCIbRxfZYh/f4h7FoO7Mv8Zc9ZziUPXDgX9a8SwSGKN4nfwEudOziJQphd5
         VYwnwqVbxLblY47xfHpLMhCHT2g2PQ2PLpUnxfLk4wRsHL0i2C9os3454BNS+9nJHNJQ
         EBHQ==
X-Forwarded-Encrypted: i=1; AJvYcCVWYFfBuUQdqHduH47kIAiQdo2Ykvlq/Zmob07Ei3/6DSTcr/RYlq2tQi3AxfFl3VqA+Uyv/dY8ark=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyrVKz3JIQlkM2FZU+Q3zOUUWJ1t5Y6qvwX9viyF9jBbR0Qx/T7
	XRTbbOBlyuSj/y2GLVM5paWSH8VzJJAuD7YRDz1n+EJZ7sfvgLRlrgfvrknl24C3ZkYSKN1WkFr
	gczz9A50LdnIpk9fl0bgOMVQ8h2dnsYZ/WZpCgos2h5N3+HuoBCzGJHJg4UFCTXRp30aP
X-Gm-Gg: ASbGncsOf2U9DkcKQqonZum4f3/lviCuOVSCPy9IolJT3o6xgPHf/j5ciJD4TbuoPrq
	A+1/ILCbZ5N85tE0wqLZYb1zJZoSiZC7KmVztxDe1aYGEPr0O8J8ZB1QeFNlWEnkVeORTGUUnm+
	Cz6nl1lmWyQ3nAwXWUU7q1y2GWHOeK46fzcpuB9j3Mb2rkWLANCMbaTarJptOjqeVvsZ4OW0Gb3
	ujVjEwQeTRCU9U59x2+pENb+HJ2oEO87C6WPDVC5I8k4J+5idV4t759WVYqEJdZlvI47v6Lq0oO
	OOfkOrfDo7Js1FDC6gH5UKlNK3Nt5VrVgLTA/3lL24gZvmGB/5wbaHMRmPUcn7rm7XQEmnSgA08
	ynQWrm4pw60/WgG1tAKlzBqxjyO8siIUZ8+NlpKdQLJdBs93nOrjj5y+UBepj1Lh9Sl508+q+23
	VYg1r613fYh9v/6FGN7yP1xzdM/hc=
X-Received: by 2002:a05:600d:831c:b0:477:542a:7ed1 with SMTP id 5b1f17b1804b1-477542a7ee4mr3985135e9.19.1762185825555;
        Mon, 03 Nov 2025 08:03:45 -0800 (PST)
X-Google-Smtp-Source: AGHT+IE5tyJHb+sues0m+7ZNZilqyo2L9Cho1JQDhJMCuFOgAOZW6Lsc8SY3FhL38SgCM772181+5A==
X-Received: by 2002:a05:600d:831c:b0:477:542a:7ed1 with SMTP id 5b1f17b1804b1-477542a7ee4mr3984625e9.19.1762185825048;
        Mon, 03 Nov 2025 08:03:45 -0800 (PST)
Message-ID: <b6f5b3cc-93a0-408a-b7e0-72462f3fd549@redhat.com>
Date: Mon, 3 Nov 2025 17:03:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/12] arm64: mm: replace TIF_LAZY_MMU with
 in_lazy_mmu_mode()
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-9-kevin.brodsky@arm.com>
From: David Hildenbrand <david@redhat.com>
Autocrypt: addr=david@redhat.com; keydata=
 xsFNBFXLn5EBEAC+zYvAFJxCBY9Tr1xZgcESmxVNI/0ffzE/ZQOiHJl6mGkmA1R7/uUpiCjJ
 dBrn+lhhOYjjNefFQou6478faXE6o2AhmebqT4KiQoUQFV4R7y1KMEKoSyy8hQaK1umALTdL
 QZLQMzNE74ap+GDK0wnacPQFpcG1AE9RMq3aeErY5tujekBS32jfC/7AnH7I0v1v1TbbK3Gp
 XNeiN4QroO+5qaSr0ID2sz5jtBLRb15RMre27E1ImpaIv2Jw8NJgW0k/D1RyKCwaTsgRdwuK
 Kx/Y91XuSBdz0uOyU/S8kM1+ag0wvsGlpBVxRR/xw/E8M7TEwuCZQArqqTCmkG6HGcXFT0V9
 PXFNNgV5jXMQRwU0O/ztJIQqsE5LsUomE//bLwzj9IVsaQpKDqW6TAPjcdBDPLHvriq7kGjt
 WhVhdl0qEYB8lkBEU7V2Yb+SYhmhpDrti9Fq1EsmhiHSkxJcGREoMK/63r9WLZYI3+4W2rAc
 UucZa4OT27U5ZISjNg3Ev0rxU5UH2/pT4wJCfxwocmqaRr6UYmrtZmND89X0KigoFD/XSeVv
 jwBRNjPAubK9/k5NoRrYqztM9W6sJqrH8+UWZ1Idd/DdmogJh0gNC0+N42Za9yBRURfIdKSb
 B3JfpUqcWwE7vUaYrHG1nw54pLUoPG6sAA7Mehl3nd4pZUALHwARAQABzSREYXZpZCBIaWxk
 ZW5icmFuZCA8ZGF2aWRAcmVkaGF0LmNvbT7CwZoEEwEIAEQCGwMCF4ACGQEFCwkIBwICIgIG
 FQoJCAsCBBYCAwECHgcWIQQb2cqtc1xMOkYN/MpN3hD3AP+DWgUCaJzangUJJlgIpAAKCRBN
 3hD3AP+DWhAxD/9wcL0A+2rtaAmutaKTfxhTP0b4AAp1r/eLxjrbfbCCmh4pqzBhmSX/4z11
 opn2KqcOsueRF1t2ENLOWzQu3Roiny2HOU7DajqB4dm1BVMaXQya5ae2ghzlJN9SIoopTWlR
 0Af3hPj5E2PYvQhlcqeoehKlBo9rROJv/rjmr2x0yOM8qeTroH/ZzNlCtJ56AsE6Tvl+r7cW
 3x7/Jq5WvWeudKrhFh7/yQ7eRvHCjd9bBrZTlgAfiHmX9AnCCPRPpNGNedV9Yty2Jnxhfmbv
 Pw37LA/jef8zlCDyUh2KCU1xVEOWqg15o1RtTyGV1nXV2O/mfuQJud5vIgzBvHhypc3p6VZJ
 lEf8YmT+Ol5P7SfCs5/uGdWUYQEMqOlg6w9R4Pe8d+mk8KGvfE9/zTwGg0nRgKqlQXrWRERv
 cuEwQbridlPAoQHrFWtwpgYMXx2TaZ3sihcIPo9uU5eBs0rf4mOERY75SK+Ekayv2ucTfjxr
 Kf014py2aoRJHuvy85ee/zIyLmve5hngZTTe3Wg3TInT9UTFzTPhItam6dZ1xqdTGHZYGU0O
 otRHcwLGt470grdiob6PfVTXoHlBvkWRadMhSuG4RORCDpq89vu5QralFNIf3EysNohoFy2A
 LYg2/D53xbU/aa4DDzBb5b1Rkg/udO1gZocVQWrDh6I2K3+cCs7BTQRVy5+RARAA59fefSDR
 9nMGCb9LbMX+TFAoIQo/wgP5XPyzLYakO+94GrgfZjfhdaxPXMsl2+o8jhp/hlIzG56taNdt
 VZtPp3ih1AgbR8rHgXw1xwOpuAd5lE1qNd54ndHuADO9a9A0vPimIes78Hi1/yy+ZEEvRkHk
 /kDa6F3AtTc1m4rbbOk2fiKzzsE9YXweFjQvl9p+AMw6qd/iC4lUk9g0+FQXNdRs+o4o6Qvy
 iOQJfGQ4UcBuOy1IrkJrd8qq5jet1fcM2j4QvsW8CLDWZS1L7kZ5gT5EycMKxUWb8LuRjxzZ
 3QY1aQH2kkzn6acigU3HLtgFyV1gBNV44ehjgvJpRY2cC8VhanTx0dZ9mj1YKIky5N+C0f21
 zvntBqcxV0+3p8MrxRRcgEtDZNav+xAoT3G0W4SahAaUTWXpsZoOecwtxi74CyneQNPTDjNg
 azHmvpdBVEfj7k3p4dmJp5i0U66Onmf6mMFpArvBRSMOKU9DlAzMi4IvhiNWjKVaIE2Se9BY
 FdKVAJaZq85P2y20ZBd08ILnKcj7XKZkLU5FkoA0udEBvQ0f9QLNyyy3DZMCQWcwRuj1m73D
 sq8DEFBdZ5eEkj1dCyx+t/ga6x2rHyc8Sl86oK1tvAkwBNsfKou3v+jP/l14a7DGBvrmlYjO
 59o3t6inu6H7pt7OL6u6BQj7DoMAEQEAAcLBfAQYAQgAJgIbDBYhBBvZyq1zXEw6Rg38yk3e
 EPcA/4NaBQJonNqrBQkmWAihAAoJEE3eEPcA/4NaKtMQALAJ8PzprBEXbXcEXwDKQu+P/vts
 IfUb1UNMfMV76BicGa5NCZnJNQASDP/+bFg6O3gx5NbhHHPeaWz/VxlOmYHokHodOvtL0WCC
 8A5PEP8tOk6029Z+J+xUcMrJClNVFpzVvOpb1lCbhjwAV465Hy+NUSbbUiRxdzNQtLtgZzOV
 Zw7jxUCs4UUZLQTCuBpFgb15bBxYZ/BL9MbzxPxvfUQIPbnzQMcqtpUs21CMK2PdfCh5c4gS
 sDci6D5/ZIBw94UQWmGpM/O1ilGXde2ZzzGYl64glmccD8e87OnEgKnH3FbnJnT4iJchtSvx
 yJNi1+t0+qDti4m88+/9IuPqCKb6Stl+s2dnLtJNrjXBGJtsQG/sRpqsJz5x1/2nPJSRMsx9
 5YfqbdrJSOFXDzZ8/r82HgQEtUvlSXNaXCa95ez0UkOG7+bDm2b3s0XahBQeLVCH0mw3RAQg
 r7xDAYKIrAwfHHmMTnBQDPJwVqxJjVNr7yBic4yfzVWGCGNE4DnOW0vcIeoyhy9vnIa3w1uZ
 3iyY2Nsd7JxfKu1PRhCGwXzRw5TlfEsoRI7V9A8isUCoqE2Dzh3FvYHVeX4Us+bRL/oqareJ
 CIFqgYMyvHj7Q06kTKmauOe4Nf0l0qEkIuIzfoLJ3qr5UyXc2hLtWyT9Ir+lYlX9efqh7mOY
 qIws/H2t
In-Reply-To: <20251029100909.3381140-9-kevin.brodsky@arm.com>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: oLJBq5WEohlje9fvKVf9kuj7n6Fzc9Ai0cPhk_jH5NU_1762185830
X-Mimecast-Originator: redhat.com
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29.10.25 11:09, Kevin Brodsky wrote:
> The generic lazy_mmu layer now tracks whether a task is in lazy MMU
> mode. As a result we no longer need a TIF flag for that purpose -
> let's use the new in_lazy_mmu_mode() helper instead.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
>   arch/arm64/include/asm/pgtable.h     | 16 +++-------------
>   arch/arm64/include/asm/thread_info.h |  3 +--
>   2 files changed, 4 insertions(+), 15 deletions(-)
> 
> diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
> index 535435248923..61ca88f94551 100644
> --- a/arch/arm64/include/asm/pgtable.h
> +++ b/arch/arm64/include/asm/pgtable.h
> @@ -62,30 +62,21 @@ static inline void emit_pte_barriers(void)
>   
>   static inline void queue_pte_barriers(void)
>   {
> -	unsigned long flags;
> -
>   	if (in_interrupt()) {
>   		emit_pte_barriers();
>   		return;
>   	}
>   
> -	flags = read_thread_flags();
> -
> -	if (flags & BIT(TIF_LAZY_MMU)) {
> -		/* Avoid the atomic op if already set. */
> -		if (!(flags & BIT(TIF_LAZY_MMU_PENDING)))
> -			set_thread_flag(TIF_LAZY_MMU_PENDING);
> -	} else {
> +	if (in_lazy_mmu_mode())
> +		test_and_set_thread_flag(TIF_LAZY_MMU_PENDING);

You likely don't want a test_and_set here, which would do a 
test_and_set_bit() -- an atomic rmw.

You only want to avoid the atomic write if already set.

So keep the current

	/* Avoid the atomic op if already set. */
	if (!(flags & BIT(TIF_LAZY_MMU_PENDING)))
		set_thread_flag(TIF_LAZY_MMU_PENDING);

-- 
Cheers

David



From xen-devel-bounces@lists.xenproject.org Mon Nov 03 16:05:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 16:05:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155414.1484906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFx47-0000Fi-Ld; Mon, 03 Nov 2025 16:05:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155414.1484906; Mon, 03 Nov 2025 16:05: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 1vFx47-0000Fb-It; Mon, 03 Nov 2025 16:05:55 +0000
Received: by outflank-mailman (input) for mailman id 1155414;
 Mon, 03 Nov 2025 16:05: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=HFFD=5L=redhat.com=david@srs-se1.protection.inumbo.net>)
 id 1vFx46-00005O-Cy
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 16:05:54 +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 f83877fc-b8ce-11f0-980a-7dc792cee155;
 Mon, 03 Nov 2025 17:05:52 +0100 (CET)
Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com
 [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-208-YUgkdxsgM6anXXIKvGO7Rw-1; Mon, 03 Nov 2025 11:05:50 -0500
Received: by mail-wr1-f71.google.com with SMTP id
 ffacd0b85a97d-429be5aeea2so1881280f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 03 Nov 2025 08:05:49 -0800 (PST)
Received: from ?IPV6:2003:d8:2f3f:4b00:ee13:8c22:5cc5:d169?
 (p200300d82f3f4b00ee138c225cc5d169.dip0.t-ipconnect.de.
 [2003:d8:2f3f:4b00:ee13:8c22:5cc5:d169])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-429c102dfd2sm21748638f8f.0.2025.11.03.08.05.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 03 Nov 2025 08: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: f83877fc-b8ce-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1762185951;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=h7zqPFP4se4OIaFzLrGpOU2VTLQJoOSY+ZZS4O5etWY=;
	b=GZ1YhI+0vheznP97r8VVrzWD/XaZaaakFGBt+o2PsIecgnOrNwAWioddfNdA/VcQQ8L1vl
	Qk0mjyCAcgL4RiMUmDWieVRmz4gjDwX0ULMnpw+TLXRMIZxIZALdFNZ8ba2RLjl5y3hnmD
	W1MxUGl5yoLtd5VwKSjJGZW9puOKBAo=
X-MC-Unique: YUgkdxsgM6anXXIKvGO7Rw-1
X-Mimecast-MFC-AGG-ID: YUgkdxsgM6anXXIKvGO7Rw_1762185949
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762185949; x=1762790749;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=h7zqPFP4se4OIaFzLrGpOU2VTLQJoOSY+ZZS4O5etWY=;
        b=PCTNtyL6++e9CwCg5CbAkbSd6QDKvS3dzGUB/egAdCbRQTX8FaLEkGVYuhJb9jmNMq
         wFGIcYXNX8WZbOGb1jh8QsVZxeP28niXW01LokpL54saYnyBIA5Eb2BfvprF/hLRtswO
         vbhFWEg8zhOlIEgW1g+gJ/HH6MgRKw9KHqeULBFfCWVaJrg+I4CZfW6okD4mHspwssui
         OaeY2M9T2pQ26UWwox7NweSY6o7hct0O1XX/5fOxY49OHstRNOb5EgCRjKxIDwpb/Puw
         qdq8DjWGD0bkDVhkuZMuRZVIGF6cia2uaeWSI/czQvhJdAuXAISwa62JjwI3SzbR6KWP
         t8rg==
X-Forwarded-Encrypted: i=1; AJvYcCX3GyNGRx5WoYreSQhsjBsGiKjWGvWxw3FXZHyDnJe+tI5PSjZkV3UphCfvIayhNi3SFkxECaPm3q0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YygAyZ6PyGKt1tEPGmwQshdAXydwEzksKnzPk88YKKz+hRQUTpS
	jcLfymHUamooKy4qKoHxMRedb8if6HGb7PRPCcK0hxQPtfr0FCtSbtsVLq/s1QqZWHayJgzMJpy
	+r1YenTJ2kxwP/tOzZzf6jagHpEAa3/k68RTicTacpAbizNBLfuLxE3h2TITL4BUkC+sV
X-Gm-Gg: ASbGncsK6wvfuAKS7EPoWITmfHAm2tw4Llh6N9c9kCFDCLXI4EZxWieKvJ/BKpEVN06
	l+hVEFD8GNTXWj/cGRDumtrDZh2Xk/kDJdjJ3tARt3SLC5jAkc7jAlCnc3g1eJ8JZYc6WIVzMVx
	hHuARJZLlg1zsCf65Fz0ciQRFVzjMY/NfTGnlGW+3vbeXWjjANYDmlouDS8Dp4WG2iSPDR+6gCS
	z731RgaHWXKYm5P2YAQvPsgykC83Bvq5pSZnERIDN9nBuSe9lZDxqP4km4EvrPQY69uAkgH6q7B
	i6r13mHCvaROuGAkYTh6xMgHp10O4AlLew9QuPomGbsHGeBNbLOD9ss4ycnAvogjjYzCITsimMW
	jFakF8vkFj/lSZonsDW5cpPzdcb/mlP0Wx6OElz/tm2PmFVL8VfEg2bUapPDw34heV9/IGpzq8a
	QdotRRs3qmWZK1WpkHSaz745+asmo=
X-Received: by 2002:a05:6000:2411:b0:427:928:789e with SMTP id ffacd0b85a97d-429bd6d583dmr11477178f8f.61.1762185948401;
        Mon, 03 Nov 2025 08:05:48 -0800 (PST)
X-Google-Smtp-Source: AGHT+IFc7QNXPV2goDccZBoudQ7Gvk8PWg7e8ZaWNXwQcsQ4X2jdmxCnoJTtoWX7k3mSPaCwOvUqEA==
X-Received: by 2002:a05:6000:2411:b0:427:928:789e with SMTP id ffacd0b85a97d-429bd6d583dmr11477100f8f.61.1762185947708;
        Mon, 03 Nov 2025 08:05:47 -0800 (PST)
Message-ID: <05e2062c-1689-44e7-9cc6-697646ca075d@redhat.com>
Date: Mon, 3 Nov 2025 17:05:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 09/12] powerpc/mm: replace batch->active with
 in_lazy_mmu_mode()
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-10-kevin.brodsky@arm.com>
From: David Hildenbrand <david@redhat.com>
Autocrypt: addr=david@redhat.com; keydata=
 xsFNBFXLn5EBEAC+zYvAFJxCBY9Tr1xZgcESmxVNI/0ffzE/ZQOiHJl6mGkmA1R7/uUpiCjJ
 dBrn+lhhOYjjNefFQou6478faXE6o2AhmebqT4KiQoUQFV4R7y1KMEKoSyy8hQaK1umALTdL
 QZLQMzNE74ap+GDK0wnacPQFpcG1AE9RMq3aeErY5tujekBS32jfC/7AnH7I0v1v1TbbK3Gp
 XNeiN4QroO+5qaSr0ID2sz5jtBLRb15RMre27E1ImpaIv2Jw8NJgW0k/D1RyKCwaTsgRdwuK
 Kx/Y91XuSBdz0uOyU/S8kM1+ag0wvsGlpBVxRR/xw/E8M7TEwuCZQArqqTCmkG6HGcXFT0V9
 PXFNNgV5jXMQRwU0O/ztJIQqsE5LsUomE//bLwzj9IVsaQpKDqW6TAPjcdBDPLHvriq7kGjt
 WhVhdl0qEYB8lkBEU7V2Yb+SYhmhpDrti9Fq1EsmhiHSkxJcGREoMK/63r9WLZYI3+4W2rAc
 UucZa4OT27U5ZISjNg3Ev0rxU5UH2/pT4wJCfxwocmqaRr6UYmrtZmND89X0KigoFD/XSeVv
 jwBRNjPAubK9/k5NoRrYqztM9W6sJqrH8+UWZ1Idd/DdmogJh0gNC0+N42Za9yBRURfIdKSb
 B3JfpUqcWwE7vUaYrHG1nw54pLUoPG6sAA7Mehl3nd4pZUALHwARAQABzSREYXZpZCBIaWxk
 ZW5icmFuZCA8ZGF2aWRAcmVkaGF0LmNvbT7CwZoEEwEIAEQCGwMCF4ACGQEFCwkIBwICIgIG
 FQoJCAsCBBYCAwECHgcWIQQb2cqtc1xMOkYN/MpN3hD3AP+DWgUCaJzangUJJlgIpAAKCRBN
 3hD3AP+DWhAxD/9wcL0A+2rtaAmutaKTfxhTP0b4AAp1r/eLxjrbfbCCmh4pqzBhmSX/4z11
 opn2KqcOsueRF1t2ENLOWzQu3Roiny2HOU7DajqB4dm1BVMaXQya5ae2ghzlJN9SIoopTWlR
 0Af3hPj5E2PYvQhlcqeoehKlBo9rROJv/rjmr2x0yOM8qeTroH/ZzNlCtJ56AsE6Tvl+r7cW
 3x7/Jq5WvWeudKrhFh7/yQ7eRvHCjd9bBrZTlgAfiHmX9AnCCPRPpNGNedV9Yty2Jnxhfmbv
 Pw37LA/jef8zlCDyUh2KCU1xVEOWqg15o1RtTyGV1nXV2O/mfuQJud5vIgzBvHhypc3p6VZJ
 lEf8YmT+Ol5P7SfCs5/uGdWUYQEMqOlg6w9R4Pe8d+mk8KGvfE9/zTwGg0nRgKqlQXrWRERv
 cuEwQbridlPAoQHrFWtwpgYMXx2TaZ3sihcIPo9uU5eBs0rf4mOERY75SK+Ekayv2ucTfjxr
 Kf014py2aoRJHuvy85ee/zIyLmve5hngZTTe3Wg3TInT9UTFzTPhItam6dZ1xqdTGHZYGU0O
 otRHcwLGt470grdiob6PfVTXoHlBvkWRadMhSuG4RORCDpq89vu5QralFNIf3EysNohoFy2A
 LYg2/D53xbU/aa4DDzBb5b1Rkg/udO1gZocVQWrDh6I2K3+cCs7BTQRVy5+RARAA59fefSDR
 9nMGCb9LbMX+TFAoIQo/wgP5XPyzLYakO+94GrgfZjfhdaxPXMsl2+o8jhp/hlIzG56taNdt
 VZtPp3ih1AgbR8rHgXw1xwOpuAd5lE1qNd54ndHuADO9a9A0vPimIes78Hi1/yy+ZEEvRkHk
 /kDa6F3AtTc1m4rbbOk2fiKzzsE9YXweFjQvl9p+AMw6qd/iC4lUk9g0+FQXNdRs+o4o6Qvy
 iOQJfGQ4UcBuOy1IrkJrd8qq5jet1fcM2j4QvsW8CLDWZS1L7kZ5gT5EycMKxUWb8LuRjxzZ
 3QY1aQH2kkzn6acigU3HLtgFyV1gBNV44ehjgvJpRY2cC8VhanTx0dZ9mj1YKIky5N+C0f21
 zvntBqcxV0+3p8MrxRRcgEtDZNav+xAoT3G0W4SahAaUTWXpsZoOecwtxi74CyneQNPTDjNg
 azHmvpdBVEfj7k3p4dmJp5i0U66Onmf6mMFpArvBRSMOKU9DlAzMi4IvhiNWjKVaIE2Se9BY
 FdKVAJaZq85P2y20ZBd08ILnKcj7XKZkLU5FkoA0udEBvQ0f9QLNyyy3DZMCQWcwRuj1m73D
 sq8DEFBdZ5eEkj1dCyx+t/ga6x2rHyc8Sl86oK1tvAkwBNsfKou3v+jP/l14a7DGBvrmlYjO
 59o3t6inu6H7pt7OL6u6BQj7DoMAEQEAAcLBfAQYAQgAJgIbDBYhBBvZyq1zXEw6Rg38yk3e
 EPcA/4NaBQJonNqrBQkmWAihAAoJEE3eEPcA/4NaKtMQALAJ8PzprBEXbXcEXwDKQu+P/vts
 IfUb1UNMfMV76BicGa5NCZnJNQASDP/+bFg6O3gx5NbhHHPeaWz/VxlOmYHokHodOvtL0WCC
 8A5PEP8tOk6029Z+J+xUcMrJClNVFpzVvOpb1lCbhjwAV465Hy+NUSbbUiRxdzNQtLtgZzOV
 Zw7jxUCs4UUZLQTCuBpFgb15bBxYZ/BL9MbzxPxvfUQIPbnzQMcqtpUs21CMK2PdfCh5c4gS
 sDci6D5/ZIBw94UQWmGpM/O1ilGXde2ZzzGYl64glmccD8e87OnEgKnH3FbnJnT4iJchtSvx
 yJNi1+t0+qDti4m88+/9IuPqCKb6Stl+s2dnLtJNrjXBGJtsQG/sRpqsJz5x1/2nPJSRMsx9
 5YfqbdrJSOFXDzZ8/r82HgQEtUvlSXNaXCa95ez0UkOG7+bDm2b3s0XahBQeLVCH0mw3RAQg
 r7xDAYKIrAwfHHmMTnBQDPJwVqxJjVNr7yBic4yfzVWGCGNE4DnOW0vcIeoyhy9vnIa3w1uZ
 3iyY2Nsd7JxfKu1PRhCGwXzRw5TlfEsoRI7V9A8isUCoqE2Dzh3FvYHVeX4Us+bRL/oqareJ
 CIFqgYMyvHj7Q06kTKmauOe4Nf0l0qEkIuIzfoLJ3qr5UyXc2hLtWyT9Ir+lYlX9efqh7mOY
 qIws/H2t
In-Reply-To: <20251029100909.3381140-10-kevin.brodsky@arm.com>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: -2MwV6MVNpHE9pPizFv46-kj2KYETBLHKI8TDpjFDVY_1762185949
X-Mimecast-Originator: redhat.com
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29.10.25 11:09, Kevin Brodsky wrote:
> A per-CPU batch struct is activated when entering lazy MMU mode; its
> lifetime is the same as the lazy MMU section (it is deactivated when
> leaving the mode). Preemption is disabled in that interval to ensure
> that the per-CPU reference remains valid.
> 
> The generic lazy_mmu layer now tracks whether a task is in lazy MMU
> mode. We can therefore use the generic helper in_lazy_mmu_mode()
> to tell whether a batch struct is active instead of tracking it
> explicitly.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---

I suspect you were not able to test this on real HW. Some help from the 
ppc folks would be appreciated.

LGTM, but the interaction with pause/resume adds a bit of complication 
on top.

Acked-by: David Hildenbrand <david@redhat.com>

-- 
Cheers

David



From xen-devel-bounces@lists.xenproject.org Mon Nov 03 16:14:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 16:14:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155425.1484916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFxCD-000283-Gc; Mon, 03 Nov 2025 16:14:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155425.1484916; Mon, 03 Nov 2025 16:14:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFxCD-00027w-Dk; Mon, 03 Nov 2025 16:14:17 +0000
Received: by outflank-mailman (input) for mailman id 1155425;
 Mon, 03 Nov 2025 16: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=j3Hq=5L=kernel.org=david@srs-se1.protection.inumbo.net>)
 id 1vFx9R-00024e-6J
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 16:11:25 +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 babde6dd-b8cf-11f0-980a-7dc792cee155;
 Mon, 03 Nov 2025 17:11:19 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id CF01A43237;
 Mon,  3 Nov 2025 16:11:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8A46CC4CEE7;
 Mon,  3 Nov 2025 16:11:08 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: babde6dd-b8cf-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1762186276;
	bh=V1CU9ZdjaPBn/WuqIoDgCoBVzQIejoJ47+/3Iu7JZPI=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=npyBUuqjUIKg4InV+qpRD6OtpMB4/GHdS8B1NFF+Q9yYKiP+sb3TgKsbqJH8Sa1rZ
	 IjmKf10sHhPZ9tJBExNMfKK9yT/VFR2YIZ9V/xn9DQdnHw+celZDegZhXdLQrF/SN5
	 lUex3DQHMkchog6zMIgVbKEfsJTbKokiYZLXNK0+peJ+RcXLboT6AnCcS4v+iq0vdd
	 UNq+DePKElJQaoqkKpkF65sYRbAzqC1oOL9GKK49eQoY+wljWRBdmHyv0D0R45C04e
	 nEuXWJ5n/3CnJfkZVAWRCYTclKE+cKq52lFKq1tbquYMBGM5LejdtS3JnqVMyuKIJJ
	 wBZRvG6pryrXw==
Message-ID: <15381b5c-726f-4eda-8ffd-c95c0acd7635@kernel.org>
Date: Mon, 3 Nov 2025 17:11:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 10/12] sparc/mm: replace batch->active with
 in_lazy_mmu_mode()
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-11-kevin.brodsky@arm.com>
From: "David Hildenbrand (Red Hat)" <david@kernel.org>
Content-Language: en-US
In-Reply-To: <20251029100909.3381140-11-kevin.brodsky@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29.10.25 11:09, Kevin Brodsky wrote:
> A per-CPU batch struct is activated when entering lazy MMU mode; its
> lifetime is the same as the lazy MMU section (it is deactivated when
> leaving the mode). Preemption is disabled in that interval to ensure
> that the per-CPU reference remains valid.
> 
> The generic lazy_mmu layer now tracks whether a task is in lazy MMU
> mode. We can therefore use the generic helper in_lazy_mmu_mode()
> to tell whether a batch struct is active instead of tracking it
> explicitly.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
>   arch/sparc/include/asm/tlbflush_64.h | 1 -
>   arch/sparc/mm/tlb.c                  | 9 +--------
>   2 files changed, 1 insertion(+), 9 deletions(-)
> 
> diff --git a/arch/sparc/include/asm/tlbflush_64.h b/arch/sparc/include/asm/tlbflush_64.h
> index 4e1036728e2f..6133306ba59a 100644
> --- a/arch/sparc/include/asm/tlbflush_64.h
> +++ b/arch/sparc/include/asm/tlbflush_64.h
> @@ -12,7 +12,6 @@ struct tlb_batch {
>   	unsigned int hugepage_shift;
>   	struct mm_struct *mm;
>   	unsigned long tlb_nr;
> -	unsigned long active;
>   	unsigned long vaddrs[TLB_BATCH_NR];
>   };
>   
> diff --git a/arch/sparc/mm/tlb.c b/arch/sparc/mm/tlb.c
> index 7b5dfcdb1243..879e22c86e5c 100644
> --- a/arch/sparc/mm/tlb.c
> +++ b/arch/sparc/mm/tlb.c
> @@ -52,11 +52,7 @@ void flush_tlb_pending(void)
>   
>   void arch_enter_lazy_mmu_mode(void)
>   {
> -	struct tlb_batch *tb;
> -
>   	preempt_disable();
> -	tb = this_cpu_ptr(&tlb_batch);
> -	tb->active = 1;
>   }
>   
>   void arch_flush_lazy_mmu_mode(void)
> @@ -69,10 +65,7 @@ void arch_flush_lazy_mmu_mode(void)
>   
>   void arch_leave_lazy_mmu_mode(void)
>   {
> -	struct tlb_batch *tb = this_cpu_ptr(&tlb_batch);
> -
>   	arch_flush_lazy_mmu_mode();
> -	tb->active = 0;
>   	preempt_enable();
>   }
>   
> @@ -93,7 +86,7 @@ static void tlb_batch_add_one(struct mm_struct *mm, unsigned long vaddr,
>   		nr = 0;
>   	}
>   
> -	if (!tb->active) {
> +	if (!in_lazy_mmu_mode()) {
>   		flush_tsb_user_page(mm, vaddr, hugepage_shift);
>   		global_flush_tlb_page(mm, vaddr);
>   		goto out;

(messing up my transition to the email address as Thunderbird defaults 
to my old one still on mails received through RH servers)

Did we get this tested with some help from sparc64 folks?

Acked-by: David Hildenbrand (Red Hat) <david@kernel.org>

-- 
Cheers

David



From xen-devel-bounces@lists.xenproject.org Mon Nov 03 16:15:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 16:15:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155436.1484927 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFxDR-0002d0-QM; Mon, 03 Nov 2025 16:15:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155436.1484927; Mon, 03 Nov 2025 16: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 1vFxDR-0002ct-Mm; Mon, 03 Nov 2025 16:15:33 +0000
Received: by outflank-mailman (input) for mailman id 1155436;
 Mon, 03 Nov 2025 16:15: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=j3Hq=5L=kernel.org=david@srs-se1.protection.inumbo.net>)
 id 1vFxDQ-0002cU-HE
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 16:15:32 +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 50d2a9e7-b8d0-11f0-980a-7dc792cee155;
 Mon, 03 Nov 2025 17:15:30 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 3D68643BB2;
 Mon,  3 Nov 2025 16:15:29 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 22BE5C4CEE7;
 Mon,  3 Nov 2025 16:15:19 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 50d2a9e7-b8d0-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1762186529;
	bh=S0YKJr0SoBmysmz8IMr3QugNjlhYpJzfR41WjPWBUB4=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=pMmG9L/wSj8xOcK/DzcO7x+pUKpbN+kaGWRhPKGT/hFa2p/Ay8Nl1Mzz1ZWUyScDa
	 vucJ0XbF6T0spIoI3AD/0qxqWiVKMh+Mmks24qxQFDpKZf3Zexx64cDs61lCh6Efy6
	 od0TqupiK1VEnDg7glIHKRlBc357kZIMtV/jM6SD3qxje1H7u2r4taFzH3oyOWmxWM
	 hHnL2j3jQ8KEJexQD4wpbJBjPfYdQst+gwFFqah20VMhXD96dyPMbnm/scOYZnijeO
	 WcP/Ww9iS8dXs6EdOUxwooqxO/I0VbjvAaMNzv31ZZN/WtGdcK9zJR5blHKdrg4t/9
	 0WafEdG9rsGng==
Message-ID: <c7c8a233-2103-4b48-b65e-ec81666d20e4@kernel.org>
Date: Mon, 3 Nov 2025 17:15:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 11/12] x86/xen: use lazy_mmu_state when
 context-switching
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-12-kevin.brodsky@arm.com>
From: "David Hildenbrand (Red Hat)" <david@kernel.org>
Content-Language: en-US
In-Reply-To: <20251029100909.3381140-12-kevin.brodsky@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29.10.25 11:09, Kevin Brodsky wrote:
> We currently set a TIF flag when scheduling out a task that is in
> lazy MMU mode, in order to restore it when the task is scheduled
> again.
> 
> The generic lazy_mmu layer now tracks whether a task is in lazy MMU
> mode in task_struct::lazy_mmu_state. We can therefore check that
> state when switching to the new task, instead of using a separate
> TIF flag.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
>   arch/x86/include/asm/thread_info.h | 4 +---
>   arch/x86/xen/enlighten_pv.c        | 3 +--
>   2 files changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h
> index e71e0e8362ed..0067684afb5b 100644
> --- a/arch/x86/include/asm/thread_info.h
> +++ b/arch/x86/include/asm/thread_info.h
> @@ -100,8 +100,7 @@ struct thread_info {
>   #define TIF_FORCED_TF		24	/* true if TF in eflags artificially */
>   #define TIF_SINGLESTEP		25	/* reenable singlestep on user return*/
>   #define TIF_BLOCKSTEP		26	/* set when we want DEBUGCTLMSR_BTF */
> -#define TIF_LAZY_MMU_UPDATES	27	/* task is updating the mmu lazily */
> -#define TIF_ADDR32		28	/* 32-bit address space on 64 bits */
> +#define TIF_ADDR32		27	/* 32-bit address space on 64 bits */
>   
>   #define _TIF_SSBD		BIT(TIF_SSBD)
>   #define _TIF_SPEC_IB		BIT(TIF_SPEC_IB)
> @@ -114,7 +113,6 @@ struct thread_info {
>   #define _TIF_FORCED_TF		BIT(TIF_FORCED_TF)
>   #define _TIF_BLOCKSTEP		BIT(TIF_BLOCKSTEP)
>   #define _TIF_SINGLESTEP		BIT(TIF_SINGLESTEP)
> -#define _TIF_LAZY_MMU_UPDATES	BIT(TIF_LAZY_MMU_UPDATES)
>   #define _TIF_ADDR32		BIT(TIF_ADDR32)
>   
>   /* flags to check in __switch_to() */
> diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
> index 4806cc28d7ca..f40f5999352e 100644
> --- a/arch/x86/xen/enlighten_pv.c
> +++ b/arch/x86/xen/enlighten_pv.c
> @@ -426,7 +426,6 @@ static void xen_start_context_switch(struct task_struct *prev)
>   
>   	if (this_cpu_read(xen_lazy_mode) == XEN_LAZY_MMU) {
>   		arch_leave_lazy_mmu_mode();
> -		set_ti_thread_flag(task_thread_info(prev), TIF_LAZY_MMU_UPDATES);
>   	}
>   	enter_lazy(XEN_LAZY_CPU);
>   }
> @@ -437,7 +436,7 @@ static void xen_end_context_switch(struct task_struct *next)
>   
>   	xen_mc_flush();
>   	leave_lazy(XEN_LAZY_CPU);
> -	if (test_and_clear_ti_thread_flag(task_thread_info(next), TIF_LAZY_MMU_UPDATES))
> +	if (next->lazy_mmu_state.active)

This is nasty. If in_lazy_mmu_mode() is not sufficient, we will want to 
have a separate helper that makes it clear what the difference between 
both variants is.


-- 
Cheers

David


From xen-devel-bounces@lists.xenproject.org Mon Nov 03 16:48:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 16:48:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155460.1484948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFxjL-0007pb-Fn; Mon, 03 Nov 2025 16:48:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155460.1484948; Mon, 03 Nov 2025 16:48:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFxjL-0007pU-DK; Mon, 03 Nov 2025 16:48:31 +0000
Received: by outflank-mailman (input) for mailman id 1155460;
 Mon, 03 Nov 2025 16:48:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=p5Dp=5L=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vFxjK-0007ix-72
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 16:48:30 +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 ec45124b-b8d4-11f0-980a-7dc792cee155;
 Mon, 03 Nov 2025 17:48:28 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-640aa1445c3so2784753a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 03 Nov 2025 08:48:28 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b710709270bsm296837166b.21.2025.11.03.08.48.26
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 03 Nov 2025 08: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: ec45124b-b8d4-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762188508; x=1762793308; darn=lists.xenproject.org;
        h=subject:from:to:content-language:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=00l7RiZz8HXspLJB30M47vbkOxUg/EJS2mfYagz5+Vs=;
        b=gT39pBfZS4MPOrf0mS5qfbnvLmhpAL1+S8AuHDNnokOQvGsMvukYDRqCQykWK3CGiB
         VzoUWiEKYk0VLr9mIwbMwp3Zwxp4gmvU6rnp3fXXGlS5jtW3/J5euSE2UIozyM4L7RHg
         WD02mXAmLgp3nb/FqdMtXz3qgxJXcwcrlivceNhJYv6WjheMsqhO6PUG565scp9LnqPf
         FHVyqLNOOavq3RbWdeg2f9oyf2jKG7S9rMfTHQWeahIzaNe5b+im9PnC++x4qDfICQPI
         NksFBLkRDVxnkxN2AsGi4cJBq0FsEkXz+MCGwgoX4J6tOuzgQ/fqSEL2f5PO78nZ5iQu
         SQzQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762188508; x=1762793308;
        h=subject:from:to:content-language:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=00l7RiZz8HXspLJB30M47vbkOxUg/EJS2mfYagz5+Vs=;
        b=FeX/PbQE7Tkcl5nWG6ahWEl+gR3H+89Dw7EXcv8Q/u/z7aPlRsDXSOkv2fCirnP3B3
         2ydHl/VMwsNqhf3nNqyNhhJB8ze9XXXJE8CsGZo7jVJZifHQkueZvEf40EvajZHk5sSN
         tn8dxK6UFiKhsr2FsgChMu+p7jsVBhf1qlAjz4fEpVYPGB1fvENh2Du7blC8Yna0dhla
         tz9tKTg8UfF8myUn4TRUGOc5vVOYEG2Mswirr1hcTdyTbOqSl6xN9XCyMuiIReNCnUfc
         lhnwRNDmziecs0yHiHVGHGfo3F/Lvrw82x8J+D1cBXOFmWzkni7q0GZgz20KV0juCi79
         gGsA==
X-Gm-Message-State: AOJu0Yx+rHryNy1KtBscsCMSIZjaI7fBPNNq8761HXsPU8pzJWhnMghr
	RJfcsojxkj7NCV7l1/mqwr2LBYA4u+GgPZ205LcD7YdKwKWi9cp5oDxOy+kNKw==
X-Gm-Gg: ASbGncvdiNn5t8gexnfYdWZNke436qfRgRplKupVDzvsuBnhHXVj5PTAcVLUsaxXAE0
	N8pYE7S4cZcivudk+1zyT9GRfKHFarCB88hTCqLx1G7IJu2qaciDNpU5dZ/Vn9s1XWe9d+M1i1W
	P01aizGGYk/61/3DsMOlLSXe2VsnE3xroTTCbgyZOi2eYN5rSheQxYMoxnhIsbpg7bMh7Phdi/h
	m+R2gDJF7dQi+9hs1YmWhzmNnvyi7w2O4k7O1qHEiYloUc5RMIU6Heagqml1m0c/2JtpcHDHy0l
	qzpwDv3SrL+4mEuL8nT2bARD+ykM260H2BrlOtCvCZeyw2kKF3qJJL5vmWdStUoTFDt+LxAe1al
	LjqJ9vJw1so0TSvaPqJaWCcyp0d9CwP6Fr2p3ge8YdDvDUW4PYRtfHuVXofbi/avK6+rje4QuFP
	mSkoN//B7CnOvSP/bJM2cpFi9vTZVuk4+gyzqPWPIeq2uIBbxgVyTCzTH6VltR
X-Google-Smtp-Source: AGHT+IEj3w7tV4xHJEYJYjs5OVo8U0t5kTrm224lMMAc4jHEb8inXSUl3Pfn0gw4C1W+9BJbU5WEZQ==
X-Received: by 2002:a17:907:7ba3:b0:b45:1063:fb62 with SMTP id a640c23a62f3a-b707019f735mr1303451866b.24.1762188507657;
        Mon, 03 Nov 2025 08:48:27 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------tkvSb5RnYcYjlIEZ6XZlO2Rk"
Message-ID: <2e6fbd4e-7285-4d03-8f30-c756fcc1547a@gmail.com>
Date: Mon, 3 Nov 2025 17:48:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Xen-devel <xen-devel@lists.xenproject.org>
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [ANNOUNCEMENT] Xen 4.21.0-rc3 is tagged

This is a multi-part message in MIME format.
--------------tkvSb5RnYcYjlIEZ6XZlO2Rk
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hello everyone,

Xen 4.21 rc3 is tagged. You can check that out from xen.git: 
git://xenbits.xen.org/xen.git <http://xenbits.xen.org/xen.git> 4.21.0-rc3

For your convenience there is also a tarball and the signature at:
   https://downloads.xenproject.org/release/xen/4.21.0-rc3/xen-4.21.0-rc3.tar.gz <https://downloads.xenproject.org/release/xen/4.21.0-rc2/xen-4.21.0-rc2.tar.gz>

And the signature is at:
   https://downloads.xenproject.org/release/xen/4.21.0-rc3/xen-4.21.0-rc3.tar.gz.sig <https://downloads.xenproject.org/release/xen/4.21.0-rc2/xen-4.21.0-rc2.tar.gz.sig>

Have a nice week!

~ Oleksii


--------------tkvSb5RnYcYjlIEZ6XZlO2Rk
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <pre id="m_5618967425681729801b"
style="white-space: pre-wrap; color: rgb(34, 34, 34); font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-family: monospace; background: rgb(255, 255, 255);">Hello everyone,

<span
style="font-size: 13px; font-family: monospace; background: rgb(255, 255, 255);">Xen 4.21 rc3 is tagged. You can check that out from xen.git:
</span><span
style="font-size: 13px; font-family: monospace; background: rgb(255, 255, 255);">  git://<a
    href="http://xenbits.xen.org/xen.git" target="_blank"
data-saferedirecturl="https://www.google.com/url?q=http://xenbits.xen.org/xen.git&amp;source=gmail&amp;ust=1762274889187000&amp;usg=AOvVaw13wgFl3zrhLM4YXGGqRUGg"
    style="color: rgb(17, 85, 204);">xenbits.xen.org/xen.git</a> 4.21.0-rc3</span>

For your convenience there is also a tarball and the signature at:
  <a
href="https://downloads.xenproject.org/release/xen/4.21.0-rc2/xen-4.21.0-rc2.tar.gz"
    target="_blank"
data-saferedirecturl="https://www.google.com/url?q=https://downloads.xenproject.org/release/xen/4.21.0-rc2/xen-4.21.0-rc2.tar.gz&amp;source=gmail&amp;ust=1762274889187000&amp;usg=AOvVaw1u4oaCcMXcEY33Fo9mgt47"
    style="color: rgb(17, 85, 204);">https://downloads.xenproject.<wbr>org/release/xen/4.21.0-rc3/<wbr>xen-4.21.0-rc3.tar.gz</a>

And the signature is at:
  <a
href="https://downloads.xenproject.org/release/xen/4.21.0-rc2/xen-4.21.0-rc2.tar.gz.sig"
    target="_blank"
data-saferedirecturl="https://www.google.com/url?q=https://downloads.xenproject.org/release/xen/4.21.0-rc2/xen-4.21.0-rc2.tar.gz.sig&amp;source=gmail&amp;ust=1762274889188000&amp;usg=AOvVaw271uBhxEJ7rgwu1nHkaCVv"
    style="color: rgb(17, 85, 204);">https://downloads.xenproject.<wbr>org/release/xen/4.21.0-rc3/<wbr>xen-4.21.0-rc3.tar.gz.sig</a>

Have a nice week!

~ Oleksii</pre>
    <p><br>
    </p>
  </body>
</html>

--------------tkvSb5RnYcYjlIEZ6XZlO2Rk--


From xen-devel-bounces@lists.xenproject.org Mon Nov 03 18:06:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 18:06:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155494.1484959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFyx1-000175-2r; Mon, 03 Nov 2025 18:06:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155494.1484959; Mon, 03 Nov 2025 18:06:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFyx0-00016y-W9; Mon, 03 Nov 2025 18:06:42 +0000
Received: by outflank-mailman (input) for mailman id 1155494;
 Mon, 03 Nov 2025 18:06: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=10XO=5L=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vFywz-00016s-Tu
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 18:06:41 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id d5e152b2-b8df-11f0-980a-7dc792cee155;
 Mon, 03 Nov 2025 19:06:36 +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 183932A6B;
 Mon,  3 Nov 2025 10:06:27 -0800 (PST)
Received: from [10.1.30.16] (unknown [10.1.30.16])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 67BAA3F694;
 Mon,  3 Nov 2025 10:06: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: d5e152b2-b8df-11f0-980a-7dc792cee155
Message-ID: <bcc78ea0-5eca-49e5-bafd-84a16e06ab98@arm.com>
Date: Mon, 3 Nov 2025 18:06:24 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/12] x86/xen: simplify flush_lazy_mmu()
To: David Hildenbrand <david@redhat.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-3-kevin.brodsky@arm.com>
 <5a3ccb7e-9d36-4ac8-9634-c8dec3d6a47c@redhat.com>
Content-Language: en-GB
From: Kevin Brodsky <kevin.brodsky@arm.com>
In-Reply-To: <5a3ccb7e-9d36-4ac8-9634-c8dec3d6a47c@redhat.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01/11/2025 12:14, David Hildenbrand wrote:
> On 29.10.25 11:08, Kevin Brodsky wrote:
>> arch_flush_lazy_mmu_mode() is called when outstanding batched
>> pgtable operations must be completed immediately. There should
>> however be no need to leave and re-enter lazy MMU completely. The
>> only part of that sequence that we really need is xen_mc_flush();
>> call it directly.
>>
>> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
>> ---
>> Â  arch/x86/xen/mmu_pv.c | 6 ++----
>> Â  1 file changed, 2 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
>> index 2a4a8deaf612..7a35c3393df4 100644
>> --- a/arch/x86/xen/mmu_pv.c
>> +++ b/arch/x86/xen/mmu_pv.c
>> @@ -2139,10 +2139,8 @@ static void xen_flush_lazy_mmu(void)
>> Â  {
>> Â Â Â Â Â  preempt_disable();
>> Â  -Â Â Â  if (xen_get_lazy_mode() == XEN_LAZY_MMU) {
>> -Â Â Â Â Â Â Â  arch_leave_lazy_mmu_mode();
>> -Â Â Â Â Â Â Â  arch_enter_lazy_mmu_mode();
>> -Â Â Â  }
>> +Â Â Â  if (xen_get_lazy_mode() == XEN_LAZY_MMU)
>> +Â Â Â Â Â Â Â  xen_mc_flush();
>> Â  Â Â Â Â Â  preempt_enable();
>> Â  }
>
> Looks like that was moved to XEN code in
>
> commit a4a7644c15096f57f92252dd6e1046bf269c87d8
> Author: Juergen Gross <jgross@suse.com>
> Date:Â Â  Wed Sep 13 13:38:27 2023 +0200
>
> Â Â Â  x86/xen: move paravirt lazy code
>
>
> And essentially the previous implementation lived in
> arch/x86/kernel/paravirt.c:paravirt_flush_lazy_mmu(void) in an
> implementation-agnostic way:
>
> void paravirt_flush_lazy_mmu(void)
> {
> Â Â Â Â Â Â  preempt_disable();
>
> Â Â Â Â Â Â  if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_MMU) {
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â  arch_leave_lazy_mmu_mode();
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â  arch_enter_lazy_mmu_mode();
> Â Â Â Â Â Â  }
>
> Â Â Â Â Â Â  preempt_enable();
> }

Indeed, I saw that too. Calling the generic leave/enter functions made
some sense at that point, but now that the implementation is
Xen-specific we can directly call xen_mc_flush().

>
> So indeed, I assume just doing the flush here is sufficient.
>
> Reviewed-by: David Hildenbrand <david@redhat.com>Â 

Thanks for the review!

- Kevin


From xen-devel-bounces@lists.xenproject.org Mon Nov 03 18:09:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 18:09:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155505.1484969 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFyzH-0001dt-FO; Mon, 03 Nov 2025 18:09:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155505.1484969; Mon, 03 Nov 2025 18:09: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 1vFyzH-0001dm-C9; Mon, 03 Nov 2025 18:09:03 +0000
Received: by outflank-mailman (input) for mailman id 1155505;
 Mon, 03 Nov 2025 18:09:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=10XO=5L=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vFyzF-0001de-V1
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 18:09:01 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 2a154c50-b8e0-11f0-9d16-b5c5bf9af7f9;
 Mon, 03 Nov 2025 19:08: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 4DBAF2A6B;
 Mon,  3 Nov 2025 10:08:48 -0800 (PST)
Received: from [10.1.30.16] (unknown [10.1.30.16])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 463A43F694;
 Mon,  3 Nov 2025 10:08: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: 2a154c50-b8e0-11f0-9d16-b5c5bf9af7f9
Message-ID: <1965fe85-3734-45e9-af89-651c65845e8a@arm.com>
Date: Mon, 3 Nov 2025 18:08:45 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/12] mm: enable lazy_mmu sections to nest
To: David Hildenbrand <david@redhat.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-8-kevin.brodsky@arm.com>
 <ae1236da-2647-4d53-bf4d-ff8fc32eb734@redhat.com>
Content-Language: en-GB
From: Kevin Brodsky <kevin.brodsky@arm.com>
In-Reply-To: <ae1236da-2647-4d53-bf4d-ff8fc32eb734@redhat.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01/11/2025 12:22, David Hildenbrand wrote:
>
>> Â  static inline void lazy_mmu_mode_pause(void)
>> Â  {
>> +Â Â Â  struct lazy_mmu_state *state = &current->lazy_mmu_state;
>> +
>> +Â Â Â  VM_WARN_ON(state->nesting_level == 0 || !state->active);
>> +
>> +Â Â Â  state->active = false;
>> Â Â Â Â Â  arch_leave_lazy_mmu_mode();
>
> Just one question:
>
> Don't we want to allow for pause/resume when not enabled? Would seem
> valid to me, because pause/resume code should actually not worry about
> that, right?

This does sound sensible, thanks for the suggestion. The initial goal
was to allow functions that know they're called with lazy MMU enabled to
be able to pause it temporarily if they need batching disabled. But we
could generalise this to: if you know batching would break things, then
you can preemptively add a pause/resume pair, and it won't do anything
unless you're called with lazy MMU enabled.

I also like this as this removes an invalid usage situation - now as
long as you have balanced enable/disable and pause/resume calls, you're
good. Will make that change in v5.

- Kevin

>
> if (!state->nesting_level) {
> Â Â Â Â VM_WARN_ON(state->active);
> Â Â Â Â return;
> }
> VM_WARN_ON(!state->active);
> state->active = false;
> arch_leave_lazy_mmu_mode();
>


From xen-devel-bounces@lists.xenproject.org Mon Nov 03 18:26:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 18:26:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155515.1484978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFzFa-0004S4-PF; Mon, 03 Nov 2025 18:25:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155515.1484978; Mon, 03 Nov 2025 18:25:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFzFa-0004Rx-Mi; Mon, 03 Nov 2025 18:25:54 +0000
Received: by outflank-mailman (input) for mailman id 1155515;
 Mon, 03 Nov 2025 18:25: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=10XO=5L=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vFzFZ-0004Rr-HE
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 18:25:53 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 8732420b-b8e2-11f0-9d16-b5c5bf9af7f9;
 Mon, 03 Nov 2025 19:25: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 7EF862A6B;
 Mon,  3 Nov 2025 10:25:43 -0800 (PST)
Received: from [10.1.30.16] (unknown [10.1.30.16])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E06143F694;
 Mon,  3 Nov 2025 10:25: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: 8732420b-b8e2-11f0-9d16-b5c5bf9af7f9
Message-ID: <334d6272-a1c2-4075-a956-3f41908371a6@arm.com>
Date: Mon, 3 Nov 2025 18:25:41 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/12] arm64: mm: replace TIF_LAZY_MMU with
 in_lazy_mmu_mode()
To: David Hildenbrand <david@redhat.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-9-kevin.brodsky@arm.com>
 <b6f5b3cc-93a0-408a-b7e0-72462f3fd549@redhat.com>
Content-Language: en-GB
From: Kevin Brodsky <kevin.brodsky@arm.com>
In-Reply-To: <b6f5b3cc-93a0-408a-b7e0-72462f3fd549@redhat.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03/11/2025 16:03, David Hildenbrand wrote:
> On 29.10.25 11:09, Kevin Brodsky wrote:
>> The generic lazy_mmu layer now tracks whether a task is in lazy MMU
>> mode. As a result we no longer need a TIF flag for that purpose -
>> let's use the new in_lazy_mmu_mode() helper instead.
>>
>> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
>> ---
>> Â  arch/arm64/include/asm/pgtable.hÂ Â Â Â  | 16 +++-------------
>> Â  arch/arm64/include/asm/thread_info.h |Â  3 +--
>> Â  2 files changed, 4 insertions(+), 15 deletions(-)
>>
>> diff --git a/arch/arm64/include/asm/pgtable.h
>> b/arch/arm64/include/asm/pgtable.h
>> index 535435248923..61ca88f94551 100644
>> --- a/arch/arm64/include/asm/pgtable.h
>> +++ b/arch/arm64/include/asm/pgtable.h
>> @@ -62,30 +62,21 @@ static inline void emit_pte_barriers(void)
>> Â  Â  static inline void queue_pte_barriers(void)
>> Â  {
>> -Â Â Â  unsigned long flags;
>> -
>> Â Â Â Â Â  if (in_interrupt()) {
>> Â Â Â Â Â Â Â Â Â  emit_pte_barriers();
>> Â Â Â Â Â Â Â Â Â  return;
>> Â Â Â Â Â  }
>> Â  -Â Â Â  flags = read_thread_flags();
>> -
>> -Â Â Â  if (flags & BIT(TIF_LAZY_MMU)) {
>> -Â Â Â Â Â Â Â  /* Avoid the atomic op if already set. */
>> -Â Â Â Â Â Â Â  if (!(flags & BIT(TIF_LAZY_MMU_PENDING)))
>> -Â Â Â Â Â Â Â Â Â Â Â  set_thread_flag(TIF_LAZY_MMU_PENDING);
>> -Â Â Â  } else {
>> +Â Â Â  if (in_lazy_mmu_mode())
>> +Â Â Â Â Â Â Â  test_and_set_thread_flag(TIF_LAZY_MMU_PENDING);
>
> You likely don't want a test_and_set here, which would do a
> test_and_set_bit() -- an atomic rmw.

Ah yes good point, the new version would do an atomic RMW in all cases.
Simpler code but also slower :/

>
> You only want to avoid the atomic write if already set.
>
> So keep the current
>
> Â Â Â Â /* Avoid the atomic op if already set. */
> Â Â Â Â if (!(flags & BIT(TIF_LAZY_MMU_PENDING)))
> Â Â Â Â Â Â Â  set_thread_flag(TIF_LAZY_MMU_PENDING);Â 

Pretty much, since we're now only considering one flag we can simplify
it to:

if (!test_thread_flag(TIF_LAZY_MMU_PENDING))
Â  Â  set_thread_flag(TIF_LAZY_MMU_PENDING);

- Kevin


From xen-devel-bounces@lists.xenproject.org Mon Nov 03 18:29:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 18:29:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155525.1484989 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vFzIo-00054l-7T; Mon, 03 Nov 2025 18:29:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155525.1484989; Mon, 03 Nov 2025 18: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 1vFzIo-00054e-3i; Mon, 03 Nov 2025 18:29:14 +0000
Received: by outflank-mailman (input) for mailman id 1155525;
 Mon, 03 Nov 2025 18: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=10XO=5L=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vFzIn-00054Y-F9
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 18:29:13 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id fdf544c5-b8e2-11f0-980a-7dc792cee155;
 Mon, 03 Nov 2025 19:29: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 DD0752A6B;
 Mon,  3 Nov 2025 10:29:02 -0800 (PST)
Received: from [10.1.30.16] (unknown [10.1.30.16])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 191F33F694;
 Mon,  3 Nov 2025 10:29: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: fdf544c5-b8e2-11f0-980a-7dc792cee155
Message-ID: <285faae4-dab6-4819-847a-889bdf87d5d7@arm.com>
Date: Mon, 3 Nov 2025 18:29:00 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 11/12] x86/xen: use lazy_mmu_state when
 context-switching
To: "David Hildenbrand (Red Hat)" <david@kernel.org>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-12-kevin.brodsky@arm.com>
 <c7c8a233-2103-4b48-b65e-ec81666d20e4@kernel.org>
Content-Language: en-GB
From: Kevin Brodsky <kevin.brodsky@arm.com>
In-Reply-To: <c7c8a233-2103-4b48-b65e-ec81666d20e4@kernel.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03/11/2025 16:15, David Hildenbrand (Red Hat) wrote:
> On 29.10.25 11:09, Kevin Brodsky wrote:
>> [...]
>>
>> @@ -437,7 +436,7 @@ static void xen_end_context_switch(struct
>> task_struct *next)
>> Â  Â Â Â Â Â  xen_mc_flush();
>> Â Â Â Â Â  leave_lazy(XEN_LAZY_CPU);
>> -Â Â Â  if (test_and_clear_ti_thread_flag(task_thread_info(next),
>> TIF_LAZY_MMU_UPDATES))
>> +Â Â Â  if (next->lazy_mmu_state.active)
>
> This is nasty. If in_lazy_mmu_mode() is not sufficient, we will want
> to have a separate helper that makes it clear what the difference
> between both variants is.

in_lazy_mmu_mode() operates on current, but here we're operating on a
different task. The difference is more fundamental than just passing a
task_struct * or not: in_lazy_mmu_mode() is about whether we're
currently in lazy MMU mode, i.e. not paused and not in interrupt
context. A task that isn't scheduled is never in lazy MMU mode -
lazy_mmu_state.active is just the saved state to be restored when
scheduled again.

My point here is that we could have a helper for this use-case, but it
should not be used in other situations (at least not on current). Maybe
__task_lazy_mmu_active(task)? I do wonder if accessing lazy_mmu_state
directly isn't expressing the intention well enough though (checking the
saved state).

- Kevin


From xen-devel-bounces@lists.xenproject.org Mon Nov 03 19:24:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 19:24:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155536.1484998 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vG09a-0003wM-0O; Mon, 03 Nov 2025 19:23:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155536.1484998; Mon, 03 Nov 2025 19: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 1vG09Z-0003wF-TN; Mon, 03 Nov 2025 19:23:45 +0000
Received: by outflank-mailman (input) for mailman id 1155536;
 Mon, 03 Nov 2025 19:23: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=j3Hq=5L=kernel.org=david@srs-se1.protection.inumbo.net>)
 id 1vG09Y-0003w8-Ow
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 19:23:44 +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 9b8467d4-b8ea-11f0-9d16-b5c5bf9af7f9;
 Mon, 03 Nov 2025 20:23:43 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 31D2D40763;
 Mon,  3 Nov 2025 19:23:41 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9BEBEC4CEE7;
 Mon,  3 Nov 2025 19:23:32 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9b8467d4-b8ea-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1762197821;
	bh=YF+Dh7k5RXyD8ZknLWrr6zckBVz5y8Jk5LVnJjqJxoY=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=c9UT0S1aE+oyoVDfFS4tVvZUGvWl9HiC7/F+Cp66KCVA7C4GhH0PqNtoBTarCw3iW
	 r2P630kamF4JSjUnf0EzY4gdgF4lREKNM2+yjmeoTw3nLHhjxYDny/gqAjP3iNUL7a
	 JzIyQ1aRH3QyNtDz4IpxtL5MX/fDHZSJh77cPeKd7LS92GluG1GXIy1BpAiLFwvlox
	 cRJrDCtLOcgMqEzgJxz44Oa9sLKyl40ixdJjaMo6LOW9qbHf4ryeTRFym1qVmpu9UH
	 uIilWOADkYHyRHPzn2EvdQ0ZptspxmBomG3l6lNVoh9BMoIycP2QxAs9MQX9p7Fs9q
	 9DzIobQXg5JOg==
Message-ID: <a326d1eb-62f1-4add-8dc9-cea7d7e4ed3c@kernel.org>
Date: Mon, 3 Nov 2025 20:23:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 11/12] x86/xen: use lazy_mmu_state when
 context-switching
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-12-kevin.brodsky@arm.com>
 <c7c8a233-2103-4b48-b65e-ec81666d20e4@kernel.org>
 <285faae4-dab6-4819-847a-889bdf87d5d7@arm.com>
From: "David Hildenbrand (Red Hat)" <david@kernel.org>
Content-Language: en-US
In-Reply-To: <285faae4-dab6-4819-847a-889bdf87d5d7@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 03.11.25 19:29, Kevin Brodsky wrote:
> On 03/11/2025 16:15, David Hildenbrand (Red Hat) wrote:
>> On 29.10.25 11:09, Kevin Brodsky wrote:
>>> [...]
>>>
>>> @@ -437,7 +436,7 @@ static void xen_end_context_switch(struct
>>> task_struct *next)
>>>  Â  Â Â Â Â Â  xen_mc_flush();
>>>  Â Â Â Â Â  leave_lazy(XEN_LAZY_CPU);
>>> -Â Â Â  if (test_and_clear_ti_thread_flag(task_thread_info(next),
>>> TIF_LAZY_MMU_UPDATES))
>>> +Â Â Â  if (next->lazy_mmu_state.active)
>>
>> This is nasty. If in_lazy_mmu_mode() is not sufficient, we will want
>> to have a separate helper that makes it clear what the difference
>> between both variants is.
> 
> in_lazy_mmu_mode() operates on current, but here we're operating on a
> different task. The difference is more fundamental than just passing a
> task_struct * or not: in_lazy_mmu_mode() is about whether we're
> currently in lazy MMU mode, i.e. not paused and not in interrupt
> context. A task that isn't scheduled is never in lazy MMU mode -
> lazy_mmu_state.active is just the saved state to be restored when
> scheduled again.
> 
> My point here is that we could have a helper for this use-case, but it
> should not be used in other situations (at least not on current). Maybe
> __task_lazy_mmu_active(task)? I do wonder if accessing lazy_mmu_state
> directly isn't expressing the intention well enough though (checking the
> saved state).


Likely there should be a

/**
  * task_lazy_mmu_active - test whether the lazy-mmu mode is active for a
  *			  task
  * @task: ...
  *
  * The lazy-mmu mode is active if a task has lazy-mmu mode enabled and
  * currently not paused.
  */
static inline bool task_lazy_mmu_active(struct task_struct *task)
{
	return task->lazy_mmu_state.active;
}

/**
  * in_lazy_mmu_mode() - test whether current is in lazy-mmu mode
  *
  * Test whether the current task is in lazy-mmu mode: whether the
  * interrupts are enabled and the lazy-mmu mode is active for the
  * current task.
  */
  static inline bool in_lazy_mmu_mode(void)
  {
+	if (in_interrupt())
+		return false;
+
  	return task_lazy_mmu_active(current);
  }


Something like that. Maybe we can find better terminology.

-- 
Cheers

David


From xen-devel-bounces@lists.xenproject.org Mon Nov 03 19:34:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 19:34:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155546.1485008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vG0Jh-0005ee-U1; Mon, 03 Nov 2025 19:34:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155546.1485008; Mon, 03 Nov 2025 19:34:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vG0Jh-0005eX-QV; Mon, 03 Nov 2025 19:34:13 +0000
Received: by outflank-mailman (input) for mailman id 1155546;
 Mon, 03 Nov 2025 19:34:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AJ2K=5L=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vG0Jg-0005eN-FL
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 19:34:12 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 120d2b28-b8ec-11f0-9d16-b5c5bf9af7f9;
 Mon, 03 Nov 2025 20:34:10 +0100 (CET)
Received: from nico.lan (93-47-230-207.ip115.fastwebnet.it [93.47.230.207])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id 11F824EEBC3F;
 Mon,  3 Nov 2025 20:34:07 +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: 120d2b28-b8ec-11f0-9d16-b5c5bf9af7f9
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=93.47.230.207
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1762198449;
	b=qrHdFp9X+ih9VfDcSkpyaEakZ2zeSuppLf+z7SLWjm2dN6eQVjV/DSYTJzzO863Jf2GK
	 vY3YCRFPqRVUawxuany6SYqjRY01F8rEwK0X0N/NCBkaqZmVojThLONbdXiIjXub1gXqO
	 gnZa7B4LqQgoQfLKHGq49vwQoeaum+ea1RTZ25goBHholkjRiqL3PD8Q6ZLwLy5eRZLry
	 jz/MS1CsV50LH7n6xLrzv2pEbYoMDD9yusbVGh1Bu1waaAxS8pVoW0fhNCgnNOJrfzepn
	 DvuLyglQEf1DkjD+jlDV6DYC2B7kVJX5x8xKCfQmjoLJli2bB1/rKtkgxOz0TQm6iGmbr
	 3LLCWHdACyodpiYbBQUd48jSr9v+SAKJoHqLODx89Evdn7TnBSj0/oaSMohvPvm73dOJv
	 T7SVBQmnWy5zQJXlFVQUoYC46RDWtkWDvJCTX3FC5+490IJvDIlNiC5der0QMwwDv6OJi
	 3/aVkV7WYOUjxzK9KOE1gZz9PK0LQJS4NmkwWZ+svcb+zkPlKn7BliawnY4iRRsEfQyrc
	 /Y2r0aZ9L8CVSClW1sD0H/+g/a6DjIcwrf6m3AHcpk0qD0P3ywcuipFFxvXYrudhyCf3B
	 PzIMOIbAW2oRuCADXX98aCkPwAPmcpHs6wEXmHpvkY3EioVOQMa1c2XSkQYckQ8=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1762198449;
	h=DKIM-Signature:From:To:Cc:Subject:Date:Message-ID:X-Mailer:
	 MIME-Version:Content-Transfer-Encoding;
	bh=dAtDayeHDE09ZUdvwZTqspDwxJzsTV1TTp3E2eju5KM=;
	b=w2F4spGxWQ/B5ckt+u0vlznQARhXUuvMMBNGB3DD0gzeKOPauEZE364tTGl64f+vtmo6
	 d322ZoVzbJoLQGqFGjyw0Z5pKZlt8sCSl1hlmFRTQhn6u2xoi9aokUClxzLOxlsKPB76U
	 sEgnQJ9/3Jacb+G1wurGoAHV9yP45zV4HQuLP03+5grX8b1sf+k8Ls1qEA7x3ETzC7MNj
	 6Yt3v9Pr/QgYTSqepSv/qzKo5gA3q8vJUMI2rXzx9pF8BzRA+283LL3UBQZc8JRAg2FV8
	 f4xKrwUPStoNznl7DqfLY2IYZW7Ll9ZT47eKGHIfZ4WzVEshaf1RvuY3/OANUz9uZ/0E+
	 hbVNgR3t1lYjMzxX2or8w0QT0RpfF/aljzk7pbHiDVonQHW12iJFXQSLl8TJ1+f9hzENK
	 9PSK7AEMDlQ+HA+1mX8kDVx15VLuOotmaC6SVWUkGtFh4NcxMbNSJu8h9p5/8qIR0e8OQ
	 Wi8+4P6KcroVqxh1eV5EudctWQvcjyvACamxzQyEhweT/5X9DltD8Q3d9UY8wqU30oWAO
	 JOOull+NbkCr89GA0zNrXykGSdx3bTV1nB1Rqgt6dVAqQO1jRiVpzhn+3xH3FgIwmm175
	 6Mj3mtICywEFe8F76XWI8Yk8j7Jo807kJBlgasyBye5BPCqg4xy92yl9zv14d+w=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=93.47.230.207
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1762198449; bh=n2KvhSyyYZELIeQypXP1VynbbTN5spCKqN1M2riE0io=;
	h=From:To:Cc:Subject:Date:From;
	b=rz0OjJelpMKOAsGj0vnJGT9NqJETMuQdGcPHQDaZtcbiaeD78jtlmYBJJJBlbTpgh
	 tj035XuI709824zp0uhpFEOtP1UUvtjNtRjSbRQkK529m/5+tmj3yVrpsCKmXgNGkZ
	 VtKeEhY+SOk/3+EcKfGOdzLwlHGr/+ufZnblcbtGoheG7+XJ51xxilfpfnCsJVkdhx
	 MdJzDdarAw115gL8RSGbdBu1b/RGYfzjk7rBMU48LbnnnTyE6lVDFPZA17tRwD9I6w
	 dzSWfWvRhM3Ra9CPCMfQnCQNWPMlIqlKw7e/2ANIBVSE9FSbL/WEMlFxuEWZJt8r1H
	 RefSCp+rKDeJA==
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org,
	consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [XEN PATCH v4] automation/eclair: add new analysis jobs with differing configurations
Date: Mon,  3 Nov 2025 20:34:04 +0100
Message-ID: <6244858973ae88195405630b4a6847085ffce638.1762198392.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The following analysis jobs are performed:
- eclair-{x86_64,ARM64}: analyze Xen using the default configuration for
  that architecture; runs on runners tagged `eclair-analysis'.

- eclair-{x86-64,ARM64}-safety: analyze Xen using the configuration for
  safety, which is more restricted; runs on runners tagged
  `eclair-analysis-safety`.

- eclair-{x86_64,ARM64}-testing: analyze Xen using the default
  configuration for the purposes of testing new runner updates; runs on
  runners tagged `eclair-analysis-testing`.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
CI pipeline: https://gitlab.com/xen-project/people/bugseng/xen/-/pipelines/2136967775

Note: the eclair-ARM64 and eclair-x86_64 jobs are allowed to fail because the
configuration is not (yet) clean for all checked MISRA guidelines.

Changes in v4:
- Do not allow *-safety jobs to fail, as they should be clean
- Drop check on CI_COMMIT_BRANCH for *-safety analyses
Changes in v3:
- Use a variable instead of testing the repository PATH to decide whether a job
  should be run for *-testing and *-safety analyses;
- Allow eclair-{x86_64,ARM64} default configurations to fail, as the configuration
  is not yet clean for MISRA.
Changes in v2:
- rebased to current staging;
- fixed regex path issue.
---
 automation/gitlab-ci/analyze.yaml | 42 +++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/automation/gitlab-ci/analyze.yaml b/automation/gitlab-ci/analyze.yaml
index d50721006740..d22d1dbbc3de 100644
--- a/automation/gitlab-ci/analyze.yaml
+++ b/automation/gitlab-ci/analyze.yaml
@@ -45,6 +45,23 @@ eclair-x86_64:
     LOGFILE: "eclair-x86_64.log"
     VARIANT: "X86_64"
     RULESET: "monitored"
+  allow_failure: true
+
+eclair-x86_64-testing:
+  extends: eclair-x86_64
+  tags:
+    - eclair-analysis-testing
+  rules:
+    - if: $ECLAIR_TESTING
+      when: always
+    - !reference [.eclair-analysis:triggered, rules]
+
+eclair-x86_64-safety:
+  extends: eclair-x86_64
+  tags:
+    - eclair-analysis-safety
+  allow_failure: false
+  variables:
     EXTRA_XEN_CONFIG: |
       CONFIG_AMD=y
       CONFIG_INTEL=n
@@ -75,6 +92,10 @@ eclair-x86_64:
       CONFIG_DEBUG_LOCKS=n
       CONFIG_SCRUB_DEBUG=n
       CONFIG_XMEM_POOL_POISON=n
+  rules:
+    - if: $ECLAIR_SAFETY
+      when: always
+    - !reference [.eclair-analysis:triggered, rules]
 
 eclair-ARM64:
   extends: .eclair-analysis:triggered
@@ -82,6 +103,23 @@ eclair-ARM64:
     LOGFILE: "eclair-ARM64.log"
     VARIANT: "ARM64"
     RULESET: "monitored"
+  allow_failure: true
+
+eclair-ARM64-testing:
+  extends: eclair-ARM64
+  tags:
+    - eclair-analysis-testing
+  rules:
+    - if: $ECLAIR_TESTING
+      when: always
+    - !reference [.eclair-analysis:triggered, rules]
+
+eclair-ARM64-safety:
+  extends: eclair-ARM64
+  tags:
+    - eclair-analysis-safety
+  allow_failure: false
+  variables:
     EXTRA_XEN_CONFIG: |
       CONFIG_NR_CPUS=16
       CONFIG_GICV2=n
@@ -120,6 +158,10 @@ eclair-ARM64:
       CONFIG_DEBUG_LOCKS=n
       CONFIG_SCRUB_DEBUG=n
       CONFIG_XMEM_POOL_POISON=n
+  rules:
+    - if: $ECLAIR_SAFETY
+      when: always
+    - !reference [.eclair-analysis, rules]
 
 .eclair-analysis:on-schedule:
   extends: .eclair-analysis
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 03 22:53:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 03 Nov 2025 22:53:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155561.1485019 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vG3Q0-0003cf-Cs; Mon, 03 Nov 2025 22:52:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155561.1485019; Mon, 03 Nov 2025 22:52:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vG3Q0-0003cY-A9; Mon, 03 Nov 2025 22:52:56 +0000
Received: by outflank-mailman (input) for mailman id 1155561;
 Mon, 03 Nov 2025 22:52: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=ZcN9=5L=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vG3Py-0003cR-QL
 for xen-devel@lists.xenproject.org; Mon, 03 Nov 2025 22:52:54 +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 d224cb5e-b907-11f0-9d16-b5c5bf9af7f9;
 Mon, 03 Nov 2025 23:52:52 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 301AD41A91;
 Mon,  3 Nov 2025 22:52:48 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4F33AC4CEE7;
 Mon,  3 Nov 2025 22:52: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: d224cb5e-b907-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1762210368;
	bh=1zFMlAkxdP/FaogxlZKIBJSzDh5MzEvApxvRlOZ46TY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=JGY7m6fdEbdsD7XJSyOhGWAzK01Lsg8ekRY5mlPd6iE96iRSeyNY42jK0cjUlQiaW
	 r1r2mqMCYvFcGCplDNav2Io8dfBPRmBcyj+6Pra++WhsfW9TV1ijldkSyL43S3YaU5
	 9iS3GGEGtUAU9RlaDnRCR9nYvOJUGsvKuVGpGsNc0+2+SOquw8opzCntJNdwHeiVLC
	 59W0W3EMRw5pN2Iwp8eN35LNaW3EA1Om+KjIiAG3YZNqLXbacMCXuAcm6jS9xqjUQO
	 fXuPDZc+fTw/ln77SmKz6TP70Nt81vLEjz+uEj3fjUZ0RdZ9zaSTkY9Ta2z0R0Uj/p
	 eVUz0tUMUJ9dQ==
Date: Mon, 3 Nov 2025 14:52:46 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, 
    consulting@bugseng.com, Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [XEN PATCH v4] automation/eclair: add new analysis jobs with
 differing configurations
In-Reply-To: <6244858973ae88195405630b4a6847085ffce638.1762198392.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2511031448530.495094@ubuntu-linux-20-04-desktop>
References: <6244858973ae88195405630b4a6847085ffce638.1762198392.git.nicola.vetrini@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 3 Nov 2025, Nicola Vetrini wrote:
> The following analysis jobs are performed:
> - eclair-{x86_64,ARM64}: analyze Xen using the default configuration for
>   that architecture; runs on runners tagged `eclair-analysis'.
> 
> - eclair-{x86-64,ARM64}-safety: analyze Xen using the configuration for
>   safety, which is more restricted; runs on runners tagged
>   `eclair-analysis-safety`.
> 
> - eclair-{x86_64,ARM64}-testing: analyze Xen using the default
>   configuration for the purposes of testing new runner updates; runs on
>   runners tagged `eclair-analysis-testing`.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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

I'll commit it as soon as the tree reopens.


> ---
> CI pipeline: https://gitlab.com/xen-project/people/bugseng/xen/-/pipelines/2136967775
> 
> Note: the eclair-ARM64 and eclair-x86_64 jobs are allowed to fail because the
> configuration is not (yet) clean for all checked MISRA guidelines.
> 
> Changes in v4:
> - Do not allow *-safety jobs to fail, as they should be clean
> - Drop check on CI_COMMIT_BRANCH for *-safety analyses
> Changes in v3:
> - Use a variable instead of testing the repository PATH to decide whether a job
>   should be run for *-testing and *-safety analyses;
> - Allow eclair-{x86_64,ARM64} default configurations to fail, as the configuration
>   is not yet clean for MISRA.
> Changes in v2:
> - rebased to current staging;
> - fixed regex path issue.
> ---
>  automation/gitlab-ci/analyze.yaml | 42 +++++++++++++++++++++++++++++++
>  1 file changed, 42 insertions(+)
> 
> diff --git a/automation/gitlab-ci/analyze.yaml b/automation/gitlab-ci/analyze.yaml
> index d50721006740..d22d1dbbc3de 100644
> --- a/automation/gitlab-ci/analyze.yaml
> +++ b/automation/gitlab-ci/analyze.yaml
> @@ -45,6 +45,23 @@ eclair-x86_64:
>      LOGFILE: "eclair-x86_64.log"
>      VARIANT: "X86_64"
>      RULESET: "monitored"
> +  allow_failure: true
> +
> +eclair-x86_64-testing:
> +  extends: eclair-x86_64
> +  tags:
> +    - eclair-analysis-testing
> +  rules:
> +    - if: $ECLAIR_TESTING
> +      when: always
> +    - !reference [.eclair-analysis:triggered, rules]
> +
> +eclair-x86_64-safety:
> +  extends: eclair-x86_64
> +  tags:
> +    - eclair-analysis-safety
> +  allow_failure: false
> +  variables:
>      EXTRA_XEN_CONFIG: |
>        CONFIG_AMD=y
>        CONFIG_INTEL=n
> @@ -75,6 +92,10 @@ eclair-x86_64:
>        CONFIG_DEBUG_LOCKS=n
>        CONFIG_SCRUB_DEBUG=n
>        CONFIG_XMEM_POOL_POISON=n
> +  rules:
> +    - if: $ECLAIR_SAFETY
> +      when: always
> +    - !reference [.eclair-analysis:triggered, rules]
>  
>  eclair-ARM64:
>    extends: .eclair-analysis:triggered
> @@ -82,6 +103,23 @@ eclair-ARM64:
>      LOGFILE: "eclair-ARM64.log"
>      VARIANT: "ARM64"
>      RULESET: "monitored"
> +  allow_failure: true
> +
> +eclair-ARM64-testing:
> +  extends: eclair-ARM64
> +  tags:
> +    - eclair-analysis-testing
> +  rules:
> +    - if: $ECLAIR_TESTING
> +      when: always
> +    - !reference [.eclair-analysis:triggered, rules]
> +
> +eclair-ARM64-safety:
> +  extends: eclair-ARM64
> +  tags:
> +    - eclair-analysis-safety
> +  allow_failure: false
> +  variables:
>      EXTRA_XEN_CONFIG: |
>        CONFIG_NR_CPUS=16
>        CONFIG_GICV2=n
> @@ -120,6 +158,10 @@ eclair-ARM64:
>        CONFIG_DEBUG_LOCKS=n
>        CONFIG_SCRUB_DEBUG=n
>        CONFIG_XMEM_POOL_POISON=n
> +  rules:
> +    - if: $ECLAIR_SAFETY
> +      when: always
> +    - !reference [.eclair-analysis, rules]
>  
>  .eclair-analysis:on-schedule:
>    extends: .eclair-analysis
> -- 
> 2.43.0
> 


From xen-devel-bounces@lists.xenproject.org Tue Nov 04 07:51:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 07:51:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155571.1485029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGBoy-000096-9A; Tue, 04 Nov 2025 07:51:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155571.1485029; Tue, 04 Nov 2025 07: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 1vGBoy-00008z-6M; Tue, 04 Nov 2025 07:51:16 +0000
Received: by outflank-mailman (input) for mailman id 1155571;
 Tue, 04 Nov 2025 07:51:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=B0gP=5M=siemens.com=haseeb.ashraf@srs-se1.protection.inumbo.net>)
 id 1vGBow-00008n-U6
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 07:51:15 +0000
Received: from TYPPR03CU001.outbound.protection.outlook.com
 (mail-japaneastazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c405::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 015991e5-b953-11f0-980a-7dc792cee155;
 Tue, 04 Nov 2025 08:51:00 +0100 (CET)
Received: from KL1PR0601MB4588.apcprd06.prod.outlook.com
 (2603:1096:820:87::11) by SEZPR06MB6060.apcprd06.prod.outlook.com
 (2603:1096:101:ed::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.15; Tue, 4 Nov
 2025 07:50:53 +0000
Received: from KL1PR0601MB4588.apcprd06.prod.outlook.com
 ([fe80::3f19:282d:5fe2:f523]) by KL1PR0601MB4588.apcprd06.prod.outlook.com
 ([fe80::3f19:282d:5fe2:f523%3]) with mapi id 15.20.9275.015; Tue, 4 Nov 2025
 07:50: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: 015991e5-b953-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Fl8jtECy71FC3NObj1odYS+78KJ7ek287xIyPgIvPZ9wRNc8mKxqV9UNkLq4tZxqGN5f8M5GYhPL6jWlpaNtatkpPjDXJF5YljX2+hNBTmN/svEohIjQlZ6kUtlWsJHkCts4kyio+Y9WVne2HjOg44CUUpGrby5B18MTpEbBWYRYGGI+GQFS90b3TF4BBqrdsvDkbYRaSdNIp9TYmpU9WnwwWN+BHFDKbiwkhKLZ/QBAb8lypGjw4VnbX2IkWk8HnE7oowNczrBuD3iUyWz+TGPuqCIwGUBmjAtPfa1I4Xno21opRw0VrTWJWgNaH9A2bnLxMNwbeI0AfCOlFp/Gfw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Kvm+t/xGsiM+lbZlrTAwyM+EuKzV8yz6WhcROFyS78o=;
 b=scbDI8RzQ30zbgII8g4GWrDvKVuEi19ESap5T48h99izYzlCFyK6SnwbBWtOAm3Ud96tV6pegB5SmyMMjAwo1N2+tapoGz966nx41oLeibnF+aVpWPKx6AVVP7RN3NnDNl2mkUm3qbWY0XHKnZw0UgSoBFm9PYkFSRZ+8ES4EwuG6dXToflr7HDLH2DCtYkgUOhCMKUqImQG04613f7czAnYkAr2RVy0e+SnWRA4vYZYFLvYqh/1zOvAYco9ybYFj70e5D/nwRJk8GMbyxeviFypyox+c/Pzt201OsRXzyQB4K7BfcrEZoS7+Xn4JzejalU0UstXMreujkByP14x8A==
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=Kvm+t/xGsiM+lbZlrTAwyM+EuKzV8yz6WhcROFyS78o=;
 b=n+gee6Ecig9qWGjyt5xQat2alEdjO9KT1X4F+CTHnxpUfrdTd9yy3ND2UwqgbSE7asmZGeuSIQ2kCwskMdcCIIEvYXpPwN62X4qeUnZOvH6yiQoaemAXNe8x6fk65I43FVoFnTeRpTZHPCJw2K+PXShlkDF1kLKD4/ipvxsmyk66d/MT1QAtTj14vyVtg2tFgNwjPaijlVcRpLtle/SABDW5BfQDwsrLHkxZrXmFQik78Ryoxgeqt+5M39w5kQo8U17TMcRNW2NIe1peWV05KcSRl46P7+lp9m/kd65z/Y4Mmt5rRFffuGq7dAueYyyw0VBbdjCi9FUtflKHHNwB9A==
From: "haseeb.ashraf@siemens.com" <haseeb.ashraf@siemens.com>
To: Julien Grall <julien@xen.org>, Mohamed Mediouni <mohamed@unpredictable.fr>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Volodymyr_Babchuk@epam.com" <Volodymyr_Babchuk@epam.com>, "Driscoll, Dan"
	<dan.driscoll@siemens.com>, "Bachtel, Andrew" <andrew.bachtel@siemens.com>,
	"fahad.arslan@siemens.com" <fahad.arslan@siemens.com>,
	"noor.ahsan@siemens.com" <noor.ahsan@siemens.com>,
	"brian.sheppard@siemens.com" <brian.sheppard@siemens.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>
Subject: Re: Limitations for Running Xen on KVM Arm64
Thread-Topic: Limitations for Running Xen on KVM Arm64
Thread-Index:
 AQHcSVi3paxtnyIgIkOf6jhuJCbvfrTalv6cgABtkgCAAFoJgIAABxcAgACWJ4CAABonw4ACEJkAgAKjdLSAAEALAIABEzaE
Date: Tue, 4 Nov 2025 07:50:53 +0000
Message-ID:
 <KL1PR0601MB4588FE9914010324E0CFE328E6C4A@KL1PR0601MB4588.apcprd06.prod.outlook.com>
References:
 <KL1PR0601MB4588D25A95D680640A80F2CAE6FBA@KL1PR0601MB4588.apcprd06.prod.outlook.com>
 <KL1PR0601MB45885505ECBBE9262C2B25E0E6FBA@KL1PR0601MB4588.apcprd06.prod.outlook.com>
 <FC5C66FD-8554-4F46-8546-B27DE76C8EEF@unpredictable.fr>
 <2b00a98f-6fee-4341-92bd-25909ebb6e36@xen.org>
 <CA753BD2-31FA-480D-B32A-2125F0F4981D@unpredictable.fr>
 <fc181349-d743-4ef0-bcd2-01c04d2a463e@xen.org>
 <TYZPR06MB4580126B98C6A38AA710F597E6F8A@TYZPR06MB4580.apcprd06.prod.outlook.com>
 <01527182-ccef-43a5-be55-a5450eb7919f@xen.org>
 <KL1PR0601MB45883069D3725975B49761D0E6C7A@KL1PR0601MB4588.apcprd06.prod.outlook.com>
 <0fd2b8e4-bdea-4d01-a2dd-8d2e4b37090d@xen.org>
In-Reply-To: <0fd2b8e4-bdea-4d01-a2dd-8d2e4b37090d@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_Enabled=True;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_SiteId=38ae3bcd-9579-4fd4-adda-b42e1495d55a;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_SetDate=2025-11-04T07:50:52.767Z;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_Name=C1
 -
 Restricted;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_ContentBits=1;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_Method=Standard;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=siemens.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: KL1PR0601MB4588:EE_|SEZPR06MB6060:EE_
x-ms-office365-filtering-correlation-id: 4d6da19e-dc39-4ad8-538c-08de1b76e177
x-ms-exchange-atpmessageproperties: SA
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|31052699007|39142699007|376014|366016|1800799024|8096899003|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?kugjGI0M32SyfCQguCPGRhdK5Z7KVHktwIbQua+l7IYSa0HYoHmKGmZm0v?=
 =?iso-8859-1?Q?uMighUHe014++1qimF8L9dvfId/s9XBd2xgU5ZmEhMMKfbLuRjrsjA0Rmr?=
 =?iso-8859-1?Q?mBrhon/TDa83JZ+E7/CNjd7pUU51uwQdS+VdBakqKgwavVwKIHiZD1mLCH?=
 =?iso-8859-1?Q?Asj+r9EQMcTh/tdq8c/6WdivNpqvNfeyBtTPIf8tPJdlicSHThPaT4/ehq?=
 =?iso-8859-1?Q?EMmp9Q0hqRRT0lpyLNKc2M2l/ZAwZjVtYjbRUNaL+F4WzBkDE2LC6NO+rf?=
 =?iso-8859-1?Q?ftT/3SN0Ct5kQH9c8PsRR1f3CuXOWm7BedLKcmXX8jerkJT3fQM7gcG3Mw?=
 =?iso-8859-1?Q?X/qYi1iWcCvvXuWiBwnFq+kGHwGOsSERhyhrRqCIFzGuADb6doY99kRoKp?=
 =?iso-8859-1?Q?Y6tqLWhLVRAJ/ZLUJPmoHLb9W+iOt27zSxySxDEkkPD0oOYdk9/gqmS6Pu?=
 =?iso-8859-1?Q?3783HfvFYA0YNP9rVvIJWNH1wa0yx1RD6cgRPZiy3+G7QAX9AG11JCfnNF?=
 =?iso-8859-1?Q?9M9Bq5Ho9U0QjWFcHde+5JV4jZNM5nrXF+Rg5Jc52urA+IGyfwu5vo/to+?=
 =?iso-8859-1?Q?MKrTVT/6qcAQGP2dSkyanKLJwddfkV2sD/COPaGsKsYgqjMSvHAYvvdGLs?=
 =?iso-8859-1?Q?9c8f+oKFrZwzvvmvfkcvlNB9vRyLPRT3tKCsmn/L0SXw6fzO6SumNj3tQw?=
 =?iso-8859-1?Q?ZGe1fQ8gChISb720AOWUSDxTnxN/plKOSl4yz3r7CS+g1wwuQsDaZwYyRa?=
 =?iso-8859-1?Q?0yLa5r+/Eqk8WBdNLopqh3wthfVJ088idqWUecyR8XpwBEJClgIi+K7rEY?=
 =?iso-8859-1?Q?sdTxY7xawRCRPqwhD0LHdY4XiSzRl1IZpVEuEYs5t7jYs94ajmHwldhuNF?=
 =?iso-8859-1?Q?tAtxQx59YCzW6mkL8tDl2VeBeYS9I1svJyd+xxiW3qA7DQlG2/UR9bpPUK?=
 =?iso-8859-1?Q?OGfvWfFLmwCarc2kYv4MhuQuM52jEAo8RxFns5S38Prk02XBQ7RCj8FpO5?=
 =?iso-8859-1?Q?nEMYN05j+fMHXOeCX92RJPynvFwy6bvVNwbtYeOgbhTf1ox32YSsG5KWGo?=
 =?iso-8859-1?Q?C9VZ0wwt9AWkfDyllpS1d9CN7AAlATZ8Gfa2UZHyU9tLcjE/q8lmRo+C6T?=
 =?iso-8859-1?Q?DGTQEidfh70L9s5W55KhTi5H0MPUI5SZDL8xX1kjkowq7063KRd8ic7wGz?=
 =?iso-8859-1?Q?5lEvX/5GFp6cAZSbge8cHwZqhTo0KFPkVJHfBjrnk5iBAFpV/Pw7JrqdKv?=
 =?iso-8859-1?Q?9ELR6B8UpKh5b1MoLN+F/eDJQwi+fKUnr6aFL3GsgVuYCL1vogOBUkEJ9h?=
 =?iso-8859-1?Q?DBNo/Ip+sI+0vG/EDCsvhc565SFBE86fqr1Z0uRonq5ann9mxs/AfoAUY2?=
 =?iso-8859-1?Q?56DnbzzrTG7RuxmKqlQQz7MInHtWfyiDmz7OBJYKF0oeiObyR5w+8cqjAl?=
 =?iso-8859-1?Q?uqOsOFjMHm3q0D8cVYkFbP4XVHwoe4dx+OF7xtWgHCkhCvHiydHkEvgwvD?=
 =?iso-8859-1?Q?UYtZVO9XWNV7wq/m/DVn0bQMSiKoGFM6OwGBsPLsaD9Xo5atU7rzW3jfDv?=
 =?iso-8859-1?Q?kP7Nxr7RaspqhAzuSnefydbkD5wE?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:KL1PR0601MB4588.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(31052699007)(39142699007)(376014)(366016)(1800799024)(8096899003)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?isRPdAkViJ3thg3dPcytPxVJFOzAYd0cf51oIlSeO3TyFyY5Sq23S2OZ9+?=
 =?iso-8859-1?Q?QtCiUQo1S4SYIH7/uaD083QLo1zLQzPxG96rfWTUMp5NTorc2PLvsNR7cF?=
 =?iso-8859-1?Q?0cd3a5IhYgVwaj7sjqrfPfxfvsaVEvDWgX0wBohhCxRmNIJcGUvuHPldJS?=
 =?iso-8859-1?Q?Mddkv5LsWqLuMItgs/iMRH5Y2QwnDfx3c4+qHZMixHPt3x8lw4zmIj2+T2?=
 =?iso-8859-1?Q?oGfioqwc0eopfWZUf1e1eKJjAlqKA09YQ8u7D96cA3SDPzsrcR96GJ3lOu?=
 =?iso-8859-1?Q?kj8qVcau5jO4rt0Brrj/D6RXeE+dwed/m+1xGM+HZ/+eHl7gldeuXwVAXS?=
 =?iso-8859-1?Q?LLyZxvw32U9YKr2L2IZBGaOYCUDvfhhReqyzWFKc9nd5dmvYoTMA32QAg3?=
 =?iso-8859-1?Q?Af81AWVAlkA0DyFRyzuTfxg0PDwKIzKx771NaPxbYAc939QUSS0hTd3SZG?=
 =?iso-8859-1?Q?xRfgvbti5jyF9fAzCHeoPt4BRbHHfP4VUfMue1RRi9dhU5t7262CzEt6b+?=
 =?iso-8859-1?Q?fml4a1a+pentyDOouXS40TslFBQ7NLpAyNSLgOVSVoE7hOOD8M1hRp3A0q?=
 =?iso-8859-1?Q?hgOiE9JgZGNx9sghkrEpYkTad3OA2U+RZp5E76WA9JX60V4vvUxIFAHLry?=
 =?iso-8859-1?Q?kTISBmtuo30sXjaw1tSe2A/0NsNCOnBFXRuTC+nDFEX7AgMFuUTPjfOjNR?=
 =?iso-8859-1?Q?r6kfH4M+iV5LdhEuT5+fmzo18fUo8RbuwURsfMUnkVWc2F7Xx7t4eTkstO?=
 =?iso-8859-1?Q?dhF3YtkTLWXuGSnAe9PoupAzKbwg3IIOt9MuzIWqAjS+sTXUJK3XbdW4Y4?=
 =?iso-8859-1?Q?fN+fVCRXK+b+Bx5S1pep8yd1JhqUzY0k2Oon3eyWr56GrOIMheTYvGBzDq?=
 =?iso-8859-1?Q?f5MEsCRJVaZfdEDzkcnYLcTAHx4uU6/dIa9rRONHePMzZeuhAsnpEN8O0W?=
 =?iso-8859-1?Q?nLDWtrtDRsy2WCz5Id4gI3YgTd3iVYj/G7iVg/gGJz9zfRRt30K3UGJw99?=
 =?iso-8859-1?Q?lUxA7rLdoBRs5Mcs2vNJdnuQwAayjqgGOKePbGbk4zG+jUgW9+pkbeeB8F?=
 =?iso-8859-1?Q?bCRuOqVo7ryjjqNLD5gpxJneuGbzjPlO7Ce86SFBextx8NBNfpN6JeOOe7?=
 =?iso-8859-1?Q?jRkpdzl4FRMMQYZVeGEGhzzOR+zgYiT/AHUS8DY3xxYQCIohICya/U0YEj?=
 =?iso-8859-1?Q?SFDmxRfZ+U6aqtDSCTHf75J6s0dsTD9ZCZH+NHxCzRSyVuMH93N3zm0xAx?=
 =?iso-8859-1?Q?3zkwRv+THmR86Xh2hh3fuBQwIv4de1ZUzAD1Xo8Wiw1hQTiz3YHshouN13?=
 =?iso-8859-1?Q?X10asBrC21uB7XuhAYZaOnWhrxjN2BXkwsXEv7isaLWqUBHELYobhp6M8q?=
 =?iso-8859-1?Q?7ofQk5oA0CUtmPW8M2yWDr66k05/XPUelHVCUHBYtrPtkWsjeKnbLJL29i?=
 =?iso-8859-1?Q?ju9TBO0hA3M++m+5TKvRuVrKQ9XXmLZ0KAJEmfzvU+8CCLD7wZIXVi1QxJ?=
 =?iso-8859-1?Q?piFYpmF0IFvUHVKC/OKXbKE/KGLLfl+m5E5rMHmjfs7/cOh92P5uz1B0ul?=
 =?iso-8859-1?Q?B3B2H5Zy71SZb4qm0la9NiI1M1KaYI6oLFRaZorwjXFUQ34BicpwMJtTrY?=
 =?iso-8859-1?Q?HsEYDsMQpuuAqk1Kju79rMvlPk2fZI2YTz?=
Content-Type: multipart/alternative;
	boundary="_000_KL1PR0601MB4588FE9914010324E0CFE328E6C4AKL1PR0601MB4588_"
MIME-Version: 1.0
X-OriginatorOrg: siemens.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: KL1PR0601MB4588.apcprd06.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4d6da19e-dc39-4ad8-538c-08de1b76e177
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Nov 2025 07:50:53.5836
 (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: yHn2z9mFiPGIoyy5tFjtCNZCAw9iCQOPOcn6cZU0+7SWTmuK9yRGBPv0slpcJnUfIkFsWYNfikHHZhbcNkJWKA0CO9dVmBjJI532yeNX5oY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB6060

--_000_KL1PR0601MB4588FE9914010324E0CFE328E6C4AKL1PR0601MB4588_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi,

> Does this mean only one ioctl call will be issue per blob will be used?
Yes, one ioctl is issued to add all pages to physmap IOCTL_PRIVCMD_MMAPBATC=
H_V2 then all pages are removed from physmap as a result of munmap().

> At least to me, it feels like switching to TLBI range (or a series os IPA=
S2E1IS) is an easier win. But if you feel like doing the larger rework, I w=
ould be happy to have a look to check whether it would be an acceptable cha=
nge for upstream.
Thank you. Yes, I agree. I just wanted a solution that also works for older=
 CPUs. A series of IPAS2E1IS can work for older CPUs but there will be a lo=
t of invocations (222815 * 4K, using the same example). Although, each invo=
cation would be much less costly as compared to VMALLS12E1IS, so still seem=
s like a viable solution. I shall evaluate this and let you know.

> IPAS2E1IS only allows you to invalidate one address at the time and is av=
ailable on all processors. The R version is only available when the process=
or support TLBI range and allow you to invalidate multiple contiguous addre=
ss.
Thanks, got it.

Regards,
Haseeb


--_000_KL1PR0601MB4588FE9914010324E0CFE328E6C4AKL1PR0601MB4588_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-size: 11pt;" class=3D"elementToProof">Hi,</div>
<div style=3D"font-size: 11pt;" class=3D"elementToProof"><br>
</div>
<div style=3D"font-size: 11pt; color: rgb(0, 0, 0);" class=3D"elementToProo=
f">&gt; Does this mean only one ioctl call will be issue per blob will be u=
sed?</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 11pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Yes, one ioctl is issued to add all pages to physmap IOCTL_PRIVCMD_MMAPBATC=
H_V2 then all pages are removed from physmap as a result of munmap().</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 11pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 11pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
&gt; At least to me, it feels like switching to TLBI range (or a series os =
IPAS2E1IS) is an easier win. But if you feel like doing the larger rework, =
I would be happy to have a look to check whether it would be an acceptable =
change for upstream.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 11pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Thank you. Yes, I agree. I just wanted a solution that also works for older=
 CPUs. A series of IPAS2E1IS can work for older CPUs but there will be a lo=
t of invocations (222815 * 4K, using the same example). Although, each invo=
cation would be much less costly
 as compared to VMALLS12E1IS, so still seems like a viable solution. I shal=
l evaluate this and let you know.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 11pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 11pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
&gt; IPAS2E1IS only allows you to invalidate one address at the time and is=
 available on all processors. The R version is only available when the proc=
essor support TLBI range and allow you to invalidate multiple contiguous ad=
dress.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 11pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Thanks, got it.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 11pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 11pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Regards,</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 11pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Haseeb</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 11pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
</body>
</html>

--_000_KL1PR0601MB4588FE9914010324E0CFE328E6C4AKL1PR0601MB4588_--


From xen-devel-bounces@lists.xenproject.org Tue Nov 04 09:54:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 09:54:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155587.1485039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGDjY-0006tF-Sl; Tue, 04 Nov 2025 09:53:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155587.1485039; Tue, 04 Nov 2025 09:53:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGDjY-0006t3-Nn; Tue, 04 Nov 2025 09:53:48 +0000
Received: by outflank-mailman (input) for mailman id 1155587;
 Tue, 04 Nov 2025 09:53:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=au44=5M=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vGDjX-0006sx-1H
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 09:53: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 26f65d71-b964-11f0-9d16-b5c5bf9af7f9;
 Tue, 04 Nov 2025 10:53:45 +0100 (CET)
Received: from PH8P222CA0018.NAMP222.PROD.OUTLOOK.COM (2603:10b6:510:2d7::13)
 by CY3PR12MB9655.namprd12.prod.outlook.com (2603:10b6:930:100::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.14; Tue, 4 Nov
 2025 09:53:40 +0000
Received: from SN1PEPF00036F3F.namprd05.prod.outlook.com
 (2603:10b6:510:2d7:cafe::cb) by PH8P222CA0018.outlook.office365.com
 (2603:10b6:510:2d7::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.8 via Frontend Transport; Tue, 4
 Nov 2025 09:53:39 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SN1PEPF00036F3F.mail.protection.outlook.com (10.167.248.23) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9298.6 via Frontend Transport; Tue, 4 Nov 2025 09:53: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; Tue, 4 Nov
 2025 01:53:39 -0800
Received: from [10.252.147.171] (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, 4 Nov 2025 01:53:37 -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: 26f65d71-b964-11f0-9d16-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RlA1mn7qHoQEExOvOGp8FMubTPeDJB3Z/WNH96BX7pEdWL/U95tC5US2UHxfkKE0620TXjgWyRyowaXShH9r2XRmz0dXySw7CRlCsQN6rbBaDT1tp2VZ4ja+xPg+TxZ4T1MZAuRxTduKgTNs/jXlXs0Gtahd8BftMBIJhcqu8w0PG2dWjsd8rqEJhb2z1LaM5cArR4N9yjhucEfEKgLfrZRAwCte2qM0LpnxvYSULc+rJmu/CKhi8ivtGEKPlH85tPImUnTJY4qpp0Fawm5Wg/rcgVTA4Ge9O7WUG6okUj07F1GyEjCJ2fzenHoWT7ITGka2paRMrWYHoLUAT2eHrw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rlwXJ/+nft5CPvYCLciFDs2CX9rZFvBKrO8pzoGX55U=;
 b=yo2tdmEE+HKEb/X8sZSUthcMV3EXVbzx6QNCaSdYoSsAWHQxoHDHjNNM3OUMvAGAUMTFvr4YeMgcB33ionL+KNKfb5I8FlmKKdKTMy1vZMauncHbo6CBUfgKlyVU2TGnM2ay9cGRH29KB3NiCQUrdA1qaD6TpItAsOf/be901rbJwAQIWzUdY7KJePR/Ry/sPvQAiAyQ8IRF35HNSOT6HU+H3PLVEF92vrnGO8CUfY+fESjYYmu6zv5z+yG13vUU8135TCZj9hvaYgksOb7Gs8IZCKxK6nGgq98KmgwWDhr98KMGeLswj1M3MRAyQ2z4ovOz5FtQvllCLWMPt0kwXQ==
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=rlwXJ/+nft5CPvYCLciFDs2CX9rZFvBKrO8pzoGX55U=;
 b=uWDw9gp2kx8VI7/xmWlQIsixZpa3svS7q3uUBobb4TAA6OYn0aOso7gC1ttcvYAdJQpDRpb6bXfGS4YLtTNuxJgfZVw35zB2bm/F8hS36PftiTrhl5VIXTCiSArp4ZPhl+C+fbV0Ri836mY76StWupG39e4f184AVD5+W5rATHQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <079ac98e-b44c-48d3-b3fc-6bd92461827c@amd.com>
Date: Tue, 4 Nov 2025 10:53:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] arm: Implement setup_mm for MPU systems
To: Harry Ramsey <harry.ramsey@arm.com>, <xen-devel@lists.xenproject.org>
CC: <luca.fancellu@arm.com>, Harry Ramsey <yourmail@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: <20251024153719.408806-1-harry.ramsey@arm.com>
 <20251024153719.408806-2-harry.ramsey@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20251024153719.408806-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: SN1PEPF00036F3F:EE_|CY3PR12MB9655:EE_
X-MS-Office365-Filtering-Correlation-Id: 41ba9ada-a6e5-4526-ebc7-08de1b880819
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bkw2NjhvNWVneTV0djFJS3VoUVZKNVZ0YWpqbkdwZk0vbTZnMU9UWDh1bGR5?=
 =?utf-8?B?akRkMHJrVC82WXhWQTFpN0FnZVp5TWlCUHlEc1RuVlF2bTNDM0lYekVXQXFI?=
 =?utf-8?B?Yk85aDJEa0h3SGNzT25FWkIzbUxrbEJjRTJQZ2Z2ejJHMGRiK0pGMm0rZEs1?=
 =?utf-8?B?eVBjYTY4ZWJEMzRtT0ZVd2plL3daR1hDQ2FWU2hYZFlYbjlWTko3N2pKZ21z?=
 =?utf-8?B?eEd6MHlUeHExY2VIRWlTYmpZNWZKZzBwRm5CMHE4R2E2eWhXR3V3MVpPNFdP?=
 =?utf-8?B?a2RjR2hza21wSFQvYkxiTHJNR2N6L2hDenR5T1JoZlRGekZTWTFhUHp4STI1?=
 =?utf-8?B?N3MrM0xXdzY0aVY4eHE1L2lzQmpSdUJsNysycytvVkVSVEk3RUorbzBqQnVa?=
 =?utf-8?B?VlVyd3NUK1ZiRDh5V25uRTJtOHM1OGsvQWh3VTlCMjJ2UGlkUC85K1I2VVI0?=
 =?utf-8?B?R3ZqbHd0NnRWbExqVG1MNGxvWmdRc1VYZFE0WGdXNXJvZWdqSVdCSFQ4SzVv?=
 =?utf-8?B?N3g3S2R2ODE0b3cxZEppVnFCVlFkMkVwTHZ3T200ZXpEMGN3c3BTUXNZZXV3?=
 =?utf-8?B?SUxkMlI3a2xwMDEzQzg5bE5QZmxaYVJ4QlZqcHZHNE42ZHh2UHpFTkNqVUtv?=
 =?utf-8?B?UGVHVU5jN3ZxbTRWL0N5U0dDa3ZGVm9vVGUxL1hRbXdIVE1SUFZWWjlrYVVU?=
 =?utf-8?B?Q0VkMytZc1BEemJXNmJJZGFUS0J1WkxZZnNvenMyU1hua1IvdWxuUHlnZ3NE?=
 =?utf-8?B?MHV4bHUveU5KOUQ2Z1QvV2tjdVBFczlFc0xBMUhDR2swellVbkp5NHBQNlM1?=
 =?utf-8?B?SDQyYUFISHJFejdGTy8wbGdKY2dGQlRTZzVwNEhZL0VPWStFekJLOFc2Y0tD?=
 =?utf-8?B?UnYxMGdoQW8zTU5kaGJUdHVHWWVDZEt3YS9KT1plcndLalJpYkxGUWhnNHBD?=
 =?utf-8?B?bFZsdnJqb21pdWVjSk00T2V1SUVPd0dEaUZ5MWJwemYxVWhXRkV5eWtuSGYv?=
 =?utf-8?B?TDhxUDBCVnRtWWtuelJ5d001M05qVVBETXY2UWM1TjFnWTJ3bUMyTWE4VVpX?=
 =?utf-8?B?N1lJRlZCazJQYVJVUTA1ZCtYbkRLQ3BsTStEU0VSSFpTdmhFbHYzOWU0bEh5?=
 =?utf-8?B?SHVlMy93a3Mwck9aSUhLVTR6ZCtuUG55TUthQ2o0ZlFiMnZNb2QrdjhkQVVt?=
 =?utf-8?B?Qy90TzhVYndmQ3VkVkxQdmFhWU9hUlBOS0JYdTR1dmR1WEVZTnU3NVBvV0VC?=
 =?utf-8?B?dXRublBVV0ZHRXZxMzYvampQc3dXRWEyMHNJSUtZMUt4V3JVdWpNYVFsaThl?=
 =?utf-8?B?d01xWjhndnFMeEJvK0lxNnl1NVJ2WDc0c3VhUnQ2VjcrZVdJTUcrdEU4cEFF?=
 =?utf-8?B?eTFrdC93a3NuWXVtam1WYitISkRqa0s5UjU1R3pUamVaM1M4ZzJiRVh5bG9v?=
 =?utf-8?B?V1g0QXhTUGJaM09ocUUvclJnaXZaWk9KRkV5U3lYZmt0R2p2ZmMyODZtSWZC?=
 =?utf-8?B?eEVtTHRPWXFUMHdlR282Z3MrT21IWjltZVNLVTVCdDA2cW5RUks2c29TZmJk?=
 =?utf-8?B?bWRBazlxYUhPckZPNUtUMVlzQzByRXZVZllicVpVbFZ4QVErMlhrYWFod0FQ?=
 =?utf-8?B?RlVBSXNwRE1neHpvSlMzNEpnVm5xVXR3SWdCRVVHZVJNTDI1Mlp3cUxpQTVh?=
 =?utf-8?B?RElCS0syYjBRSDhUM3IwNG13QUp5ZyttZUE0TGc0eWM2MDRvc3FDazlIQXVU?=
 =?utf-8?B?THU3RlQ3dHJHckR5Rm9xclIzSHhqRzdyV2RrYzl5THNRWjFEb2N1MjR1KzJr?=
 =?utf-8?B?aHNaSkg2T044U2xaanFhMlFHZmRhUW5ZRU54bjV1OEwrVDNuV0VwdEZMS3hL?=
 =?utf-8?B?c3lsMjhtREwvQjBKUzd1RU1EUnhXQjRhUVNSNW9WMVVXQmVGaXJCUTZrdnVR?=
 =?utf-8?B?S013Ync3cDBJYzd5dzNsRWpIOGdFY1h5K0NrN3FkbXRNWG0yaFBFeHdNWTVQ?=
 =?utf-8?B?Q3dVTktuRUtVVGFuMzU2eHVNOG5pbFIvdkxyb0ZWeTFEYjhlRlRmbi9ybjFt?=
 =?utf-8?B?Q2dxMWtpZ2dZNC9sZWE2UC9LQ0hSZkFuRlRnYlZjNm94TlR1cUpyL2ZxaGZB?=
 =?utf-8?Q?ZfX0=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2025 09:53:39.7953
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 41ba9ada-a6e5-4526-ebc7-08de1b880819
X-MS-Exchange-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:
	SN1PEPF00036F3F.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY3PR12MB9655



On 24/10/2025 17:37, Harry Ramsey wrote:
> From: Harry Ramsey <your mail@arm.com>
> 
> Implement `setup_mm` for MPU systems. This variant does not require
> setting up a direct map.
> 
> To reduce code duplication the common initalisation code for both MPU
> and MMU Arm64 configurations is refactored into `setup_mm`. Platform-specific
> setup steps are now handled by a new helper function `setup_mm_helper`.
> 
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
> ---
>  xen/arch/arm/arm64/mmu/mm.c   | 26 +-------------------
>  xen/arch/arm/include/asm/mm.h |  2 ++
>  xen/arch/arm/mm.c             | 45 +++++++++++++++++++++++++++++++++++
>  xen/arch/arm/mpu/mm.c         | 30 +++++++++++++++++++++--
>  4 files changed, 76 insertions(+), 27 deletions(-)
> 
> diff --git a/xen/arch/arm/arm64/mmu/mm.c b/xen/arch/arm/arm64/mmu/mm.c
> index 3e64be6ae6..70b53be032 100644
> --- a/xen/arch/arm/arm64/mmu/mm.c
> +++ b/xen/arch/arm/arm64/mmu/mm.c
> @@ -4,8 +4,6 @@
>  #include <xen/llc-coloring.h>
>  #include <xen/mm.h>
>  #include <xen/pfn.h>
> -#include <xen/static-memory.h>
> -#include <xen/static-shmem.h>
>  
>  #include <asm/setup.h>
>  
> @@ -240,33 +238,18 @@ static void __init setup_directmap_mappings(unsigned long base_mfn,
>          panic("Unable to setup the directmap mappings.\n");
>  }
>  
> -void __init setup_mm(void)
> +void __init setup_mm_helper(void)
>  {
>      const struct membanks *banks = bootinfo_get_mem();
>      paddr_t ram_start = INVALID_PADDR;
>      paddr_t ram_end = 0;
> -    paddr_t ram_size = 0;
>      unsigned int i;
>  
> -    init_pdx();
> -
> -    /*
> -     * We need some memory to allocate the page-tables used for the directmap
> -     * mappings. But some regions may contain memory already allocated
> -     * for other uses (e.g. modules, reserved-memory...).
> -     *
> -     * For simplicity, add all the free regions in the boot allocator.
> -     */
> -    populate_boot_allocator();
> -
> -    total_pages = 0;
> -
>      for ( i = 0; i < banks->nr_banks; i++ )
>      {
>          const struct membank *bank = &banks->bank[i];
>          paddr_t bank_end = bank->start + bank->size;
>  
> -        ram_size = ram_size + bank->size;
>          ram_start = min(ram_start, bank->start);
>          ram_end = max(ram_end, bank_end);
>  
> @@ -274,16 +257,9 @@ void __init setup_mm(void)
>                                   PFN_DOWN(bank->size));
>      }
>  
> -    total_pages += ram_size >> PAGE_SHIFT;
> -
>      directmap_virt_end = XENHEAP_VIRT_START + ram_end - ram_start;
>      directmap_mfn_start = maddr_to_mfn(ram_start);
>      directmap_mfn_end = maddr_to_mfn(ram_end);
> -
> -    setup_frametable_mappings(ram_start, ram_end);
> -
> -    init_staticmem_pages();
> -    init_sharedmem_pages();
>  }
>  
>  /*
> diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
> index 7a93dad2ed..1f5b41e602 100644
> --- a/xen/arch/arm/include/asm/mm.h
> +++ b/xen/arch/arm/include/asm/mm.h
> @@ -202,6 +202,8 @@ extern void remove_early_mappings(void);
>  extern int prepare_secondary_mm(int cpu);
>  /* Map a frame table to cover physical addresses ps through pe */
>  extern void setup_frametable_mappings(paddr_t ps, paddr_t pe);
> +/* Helper function to setup memory management */
> +extern void setup_mm_helper(void);
No extern for prototypes, please.

>  /* map a physical range in virtual memory */
>  void __iomem *ioremap_attr(paddr_t start, size_t len, unsigned int attributes);
>  
> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
> index 3b05b46ee0..f26c28aaf5 100644
> --- a/xen/arch/arm/mm.c
> +++ b/xen/arch/arm/mm.c
> @@ -12,8 +12,12 @@
>  #include <xen/grant_table.h>
>  #include <xen/guest_access.h>
>  #include <xen/mm.h>
> +#include <xen/static-memory.h>
> +#include <xen/static-shmem.h>
>  #include <xen/vmap.h>
>  
> +#include <asm/setup.h>
> +
>  #include <xsm/xsm.h>
>  
>  #include <public/memory.h>
> @@ -24,6 +28,47 @@
>  
>  unsigned long frametable_base_pdx __read_mostly;
>  
> +#if !defined(CONFIG_ARM_32) || defined(CONFIG_MPU)
NIT: Why negation instead of CONFIG_ARM_64?

> +void __init setup_mm(void)
> +{
> +    const struct membanks *banks = bootinfo_get_mem();
> +    paddr_t ram_start = INVALID_PADDR;
> +    paddr_t ram_end = 0;
> +    paddr_t ram_size = 0;
> +    unsigned int i;
> +
> +    init_pdx();
> +
> +    /*
> +     * We need some memory to allocate the page-tables used for the directmap
Isn't this comment here now a bit misleading in MPU case?

> +     * mappings. But some regions may contain memory already allocated
> +     * for other uses (e.g. modules, reserved-memory...).
> +     *
> +     * For simplicity, add all the free regions in the boot allocator.
> +     */
> +    populate_boot_allocator();
NIT: I would suggest to move this right before setup_mm_helper() with a comment
tweaked.

> +
> +    for ( i = 0; i < banks->nr_banks; i++ )
> +    {
> +        const struct membank *bank = &banks->bank[i];
> +        paddr_t bank_end = bank->start + bank->size;
> +
> +        ram_size = ram_size + bank->size;
> +        ram_start = min(ram_start, bank->start);
> +        ram_end = max(ram_end, bank_end);
> +    }
> +
> +    total_pages = ram_size >> PAGE_SHIFT;
> +
> +    setup_mm_helper();
> +
> +    setup_frametable_mappings(ram_start, ram_end);
> +
> +    init_staticmem_pages();
> +    init_sharedmem_pages();
> +}
> +#endif
> +
>  bool flags_has_rwx(unsigned int flags)
>  {
>      /*
> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
> index 3f155b7db2..a058db19ef 100644
> --- a/xen/arch/arm/mpu/mm.c
> +++ b/xen/arch/arm/mpu/mm.c
> @@ -8,9 +8,11 @@
>  #include <xen/sizes.h>
>  #include <xen/spinlock.h>
>  #include <xen/types.h>
> +#include <xen/pfn.h>
Alphabetic sorting, please.

>  #include <asm/mpu.h>
>  #include <asm/mpu/mm.h>
>  #include <asm/page.h>
> +#include <asm/setup.h>
>  #include <asm/sysregs.h>
>  
>  struct page_info *frame_table;
> @@ -378,9 +380,33 @@ int map_pages_to_xen(unsigned long virt, mfn_t mfn, unsigned long nr_mfns,
>      return xen_mpumap_update(virt, mfn_to_maddr(mfn_add(mfn, nr_mfns)), flags);
>  }
>  
> -void __init setup_mm(void)
> +/*
> + * Heap must be statically configured in Device Tree through "xen,static-heap"
> + * on MPU systems, use setup_mm_helper() for that.
> + */
> +void __init setup_mm_helper(void)
>  {
> -    BUG_ON("unimplemented");
> +    const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
> +    unsigned int bank = 0;
> +
> +    for ( ; bank < reserved_mem->nr_banks; bank++ )
> +    {
> +        if ( reserved_mem->bank[bank].type == MEMBANK_STATIC_HEAP )
> +        {
> +            paddr_t bank_start = round_pgup(reserved_mem->bank[bank].start);
> +            paddr_t bank_size = round_pgdown(reserved_mem->bank[bank].size);
> +            paddr_t bank_end = bank_start + bank_size;
> +
> +            /* Map static heap with one MPU protection region */
> +            if ( xen_mpumap_update(bank_start, bank_end, PAGE_HYPERVISOR) )
> +                panic("Failed to map static heap\n");
> +
> +            break;
> +        }
> +    }
> +
> +    if ( bank == reserved_mem->nr_banks )
> +        panic("No static heap memory bank found\n");
>  }
>  
>  int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
Apart from that, the changes LGTM.

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Nov 04 10:21:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 10:21:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155600.1485048 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGEAF-0002yR-0y; Tue, 04 Nov 2025 10:21:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155600.1485048; Tue, 04 Nov 2025 10: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 1vGEAE-0002yK-UT; Tue, 04 Nov 2025 10:21:22 +0000
Received: by outflank-mailman (input) for mailman id 1155600;
 Tue, 04 Nov 2025 10:21:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=au44=5M=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vGEAD-0002yE-FF
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 10:21:21 +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 ffa28603-b967-11f0-980a-7dc792cee155;
 Tue, 04 Nov 2025 11:21:18 +0100 (CET)
Received: from SN6PR2101CA0007.namprd21.prod.outlook.com
 (2603:10b6:805:106::17) by LV8PR12MB9135.namprd12.prod.outlook.com
 (2603:10b6:408:18c::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.16; Tue, 4 Nov
 2025 10:21:13 +0000
Received: from SA2PEPF0000150B.namprd04.prod.outlook.com
 (2603:10b6:805:106:cafe::40) by SN6PR2101CA0007.outlook.office365.com
 (2603:10b6:805:106::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.3 via Frontend Transport; Tue, 4
 Nov 2025 10:21:12 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF0000150B.mail.protection.outlook.com (10.167.242.43) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9298.6 via Frontend Transport; Tue, 4 Nov 2025 10:21:12 +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, 4 Nov
 2025 02:21:12 -0800
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, 4 Nov
 2025 02:21:12 -0800
Received: from [10.252.147.171] (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, 4 Nov 2025 02:21:11 -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: ffa28603-b967-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eN1V6ruZNwLaNV6OZh3RL9BIeS+xyArRC5hhRGtqBBhZ+m38gZLFlFv5GMgLOWI93PWslIanSITO2cz+nHue7C4+49QIkfy8KYhX696eyR632pSPGrw0ScfE0Ly0qLbO8bp+ILYafscCVcsDruWJRGxWwh7j6q01YnoUGUnZpMLZK+qdmIjvLj8W3e+/IkFzBS+jHF1vaO4rHHpf7j7b2ztWM7eyDZ9J+uUz/i6D7TKvWQF8nUOHltbhdOz0yH3OSWt7mxLGBTu2e+GVwvMZNEV+av2SZEIjWTmvscpkIeXwX7Yk1dJ04LSHhISS1shBSA9o6oQ6nkRa3ncolVHCzQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DpewHANC1hUXg8TygSfwRMguB/Rp6vSMk0yR6sLpd7Q=;
 b=ckw8aMQX6c4RjXTsqsJToqvElGJr63Uy9TIPE/gN9E632pjIhOM2y3B7R3fplkN1+LNHk8GbceffvGA9yUxkIVWTRyyjIv4djHB5hbTynJP+1NbqDkmaKI7/hqONQGJe7e1UubJwEExDUI/QniKX917+u8464x91KddTV0Aip69G7Yamc7msJqF29omZ1heOYhXG/YMhnrJdn1NrJdJlJmt7hXxU3LygcaAAwyce9ZWEuOQjLj3wPpEGfXiWTO4JuNqYJ1CxalUKxwQhGAZ0ErJdko3DiIhwr3uOIJptcGzfB1TsD5jnIvIhqQpz6kw7YsvBh9/mlS7cD+6CMAGNYQ==
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=DpewHANC1hUXg8TygSfwRMguB/Rp6vSMk0yR6sLpd7Q=;
 b=jgRrp9YfUnTHRrBmlSswakt1bBKHBKSwe8zmbLQWji1UCMcxuMIC78pBlCYCliyH8nf/00uy3ELJGu5oQEDM5RxPAPd342nEIXWL3ZQFJFJkNHrmQNztXxMHoMeFU/u7RfPnTcW8CXgSeyPuX6lD69UKQ8I8jBbkaeweX9purIY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <0e681f9f-a563-4ace-8f58-e80a050608ba@amd.com>
Date: Tue, 4 Nov 2025 11:21:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] arm: Implement reference counting for overlapping
 regions
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: <20251024153719.408806-1-harry.ramsey@arm.com>
 <20251024153719.408806-3-harry.ramsey@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20251024153719.408806-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: SA2PEPF0000150B:EE_|LV8PR12MB9135:EE_
X-MS-Office365-Filtering-Correlation-Id: 04565515-6be6-4e3a-0f4d-08de1b8be152
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YWhYY2EwNmJqeFhrR0FGb3lyWlJzSzczcXNiRFRlNFp5MkVVZkZsc1lsOHVI?=
 =?utf-8?B?S3Joc1NkQjBFY2FXWkRabU1SNVVhbGhvOElOVjMzdWErQ3Z6VWlrK1VlV1o0?=
 =?utf-8?B?ZXdrbnBwQTdwYVZBWFRvRWlHd1ZENmRja0JGYTVWeERFamFENUxoRUVtRWtW?=
 =?utf-8?B?amlaTHUwR055cUpnb2dZT0cvS3pWam1sNlpsQjNCTHJHMnczTVZ0OWpxTjR3?=
 =?utf-8?B?VWE4dlVTQ0UxNDFNbUlEcE5qUENqZVNBd3FJdTBhcnFQSkpGTStmS3pXMXBZ?=
 =?utf-8?B?T0RpMVdURGVYNElyd1dseXN1VGM4SHlyYXovWWZwTlB2cDA4MkpQTUhYS2tW?=
 =?utf-8?B?a2xhb1hVYkc2WE5RdzMwMXE3RW8wK1lVMUE0Tmo2Z05zTjJTNzhMV2hlVFNn?=
 =?utf-8?B?TGxvUUQxeWVaSUdabzdaVk1RQjNBMjhhdEkvYWJsRGs5czZqQ0RNT1FsNkg3?=
 =?utf-8?B?ZE9LQmV5SDFSYnZGN2ZKYXd1NmhQUDBHM1VWbXdKMGdkSkZiZXBwb2dzdTVO?=
 =?utf-8?B?czJyVDBWSU9kK3V0RjRWR2QxQW1DTE92cHRTNFpDb2ZONlVmSHlzNERhemlD?=
 =?utf-8?B?UVRGQkgreVlSeWF6YisvK1c1SHBNU2IzbnRFaHFwbkVBbjk4bzZXcFA3SER2?=
 =?utf-8?B?Rllzc3hxbTVVdlRldUp1bnNFSVlYYXY2ejBSd0w0M2t3N3JWWW5DTTExY3hY?=
 =?utf-8?B?d1FwRWlBT2Q3ZlozWTNReFRjQXlZVWd1VnlyN0F1V2dPV3V4aFU3S1J1VEMy?=
 =?utf-8?B?amdTTHhTM0tyaFVEODI2WStqR2NBRlVpNlFZOWQvMnorM05oeXR0RllTVjFn?=
 =?utf-8?B?OEFVMnFiVExBTmloRXhXMlh5UFZKeFNzTk1KOHdGSW5jVTlOZmdOejJEZmww?=
 =?utf-8?B?TjZMaUlleHUxU1p2U0hOUEdmQ1lrVWFWRDNsNjI5NlY4MDFHNjFVOG5RUFpZ?=
 =?utf-8?B?bktveCtXcDFmeGE1bFFGVlVaSWM3K0VQQit4WDZMa2N6VkxDQUJUS3NLc0pR?=
 =?utf-8?B?V3h3VnV5QjBLb1FZMTBadVIrbFFhak5KbG1EeUIxaHhlaUQ0ZTE4RG9Hb0hQ?=
 =?utf-8?B?d0RQMGtrWml5c3MwN1Z0ZzUraTRLS0d4RlN0NksrWHlTd2o4bmI2RkE2WWh4?=
 =?utf-8?B?SUM1MVh3S2N3SGJScVB1R1JhdjJGVEpVQTBuWElBV3pqZUV0M0Rpd2FVWkVa?=
 =?utf-8?B?OVozRENCRDZXWTdVdWR0cDIzR1ZKUnRRa2J3QWpWVS8wVU8rSFRmeTVHaHJV?=
 =?utf-8?B?bEdhSzdVOHd5VlB4alJqQmJLcGFXQy9zMStyaCthMncrcExISlZjbXdlSzVj?=
 =?utf-8?B?Vm12cVRPVUE3cEptZjhaK2xMd1BBRzYrK2gyNGZ0NDN0R0ZucS8zeER3cHJE?=
 =?utf-8?B?YnhIUW9tMDJXd1NoVkJBUjhLN2htWEs0WmhRd2J2ZWRTUG1VUE5mNjZNT3Q5?=
 =?utf-8?B?UHhSbWxWU2tvcFpTVHVZTWQzMEoxNEc2TmtZQlJ0eXFNcDNQZHRnTm1CMW51?=
 =?utf-8?B?YldTbUYvdWtabGxPSjh6Y3pzK2FpRW43OW1QQzR4aGo0VDBJbExFMXhnVU0v?=
 =?utf-8?B?M2VzN1kxcWMrQzNFam1wdWFlZFNFK3ZEUzEwY1lnZE8wbWZkNnNJL0RnL1lS?=
 =?utf-8?B?aCtwb0s0dllmMWwzRVVtUWNVNGQ2Vmx1SmZtYm5WSDZqblNuT2NrOEtZVHhI?=
 =?utf-8?B?aDQ3bWdsSHh2WWNiakxMTkdWRHpqS3dDZE1xQkFXU3VLamZaUE5PZXkvRTVJ?=
 =?utf-8?B?YWZjcXFNaUIzWHloWUZOcVkxN1hUQ1hVZWtKdWZpRlB3NWhZN0dYZ0xqYVJr?=
 =?utf-8?B?ZDR5b1FEZnJPb1pRdFowc0VPd2pTZFJsWG9GRW15bFBDM3g0S0hXTjQ5R2p6?=
 =?utf-8?B?R3ZTRG1BQ1dKNXNoZ1JqazVtUzBoUHNXcHN0QUlrSmZLK1VyMlVTTTlkMXZw?=
 =?utf-8?B?RE5nUUdFWnJMYm84TkVkYmJyTFZiTjA5OTMzYlBKY2pPeDIzM1kzUGhaeW5Y?=
 =?utf-8?B?OFZxZWVlRm5iWnRxanQyanpqM1doSUk0WkdyZEwyMWZ6UjJ3STFkMmZDNlpX?=
 =?utf-8?B?K2ptTkthTkFqb25hTjJCcno3QTJ3dXJMNWVtWGpoc0gxZW5lZU9mVDVWQnMv?=
 =?utf-8?Q?y/1M=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2025 10:21:12.7203
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 04565515-6be6-4e3a-0f4d-08de1b8be152
X-MS-Exchange-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:
	SA2PEPF0000150B.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9135



On 24/10/2025 17:37, Harry Ramsey wrote:
> Implement reference counting to enable overlapping MPU regions.
> References are incremented and decremented in xen_mpumap_update_entry.
AFAICT, looking at the code, you would return -EINVAL early on overlap (i.e.
mpumap_contains_region() returning MPUMAP_REGION_OVERLAP). If so, can you
clearly explain what this change intend to do and why we need refcounting?

> 
> A region will be destoryed if the reference count is 0 upon calling
s/destoryed/destroyed/

> destroy_xen_mappings and if the full region range is specified.
> 
> Additionally XEN_MPUMAP_ENTRY_SHIFT and XEN_MPUMAP_ENTRY_SHIFT_ZERO are
> no longer hardcoded and defined inside asm-offsets.c.
> 
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
> ---
>  xen/arch/arm/arm32/asm-offsets.c         |  2 +
>  xen/arch/arm/arm64/asm-offsets.c         |  2 +
>  xen/arch/arm/include/asm/arm32/mpu.h     |  2 +
>  xen/arch/arm/include/asm/arm64/mpu.h     |  2 +
>  xen/arch/arm/include/asm/mpu/regions.inc | 11 +++-
>  xen/arch/arm/mpu/mm.c                    | 73 +++++++++++++++++++-----
>  6 files changed, 77 insertions(+), 15 deletions(-)
> 
> diff --git a/xen/arch/arm/arm32/asm-offsets.c b/xen/arch/arm/arm32/asm-offsets.c
> index c203ce269d..951f8d03f3 100644
> --- a/xen/arch/arm/arm32/asm-offsets.c
> +++ b/xen/arch/arm/arm32/asm-offsets.c
> @@ -79,6 +79,8 @@ void __dummy__(void)
>  #ifdef CONFIG_MPU
>     DEFINE(XEN_MPUMAP_MASK_sizeof, sizeof(xen_mpumap_mask));
>     DEFINE(XEN_MPUMAP_sizeof, sizeof(xen_mpumap));
> +   DEFINE(XEN_MPUMAP_ENTRY_SHIFT, ilog2(sizeof(pr_t)));
> +   DEFINE(XEN_MPUMAP_ENTRY_ZERO_OFFSET, sizeof(prbar_t) + sizeof(prlar_t));
>     BLANK();
>  #endif
>  }
> diff --git a/xen/arch/arm/arm64/asm-offsets.c b/xen/arch/arm/arm64/asm-offsets.c
> index 320289b281..38a3894a3b 100644
> --- a/xen/arch/arm/arm64/asm-offsets.c
> +++ b/xen/arch/arm/arm64/asm-offsets.c
> @@ -73,6 +73,8 @@ void __dummy__(void)
>  #ifdef CONFIG_MPU
>     DEFINE(XEN_MPUMAP_MASK_sizeof, sizeof(xen_mpumap_mask));
>     DEFINE(XEN_MPUMAP_sizeof, sizeof(xen_mpumap));
> +   DEFINE(XEN_MPUMAP_ENTRY_SHIFT, ilog2(sizeof(pr_t)));
> +   DEFINE(XEN_MPUMAP_ENTRY_ZERO_OFFSET, sizeof(prbar_t) + sizeof(prlar_t));
>     BLANK();
>  #endif
>  }
> diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
> index 0a6930b3a0..137022d922 100644
> --- a/xen/arch/arm/include/asm/arm32/mpu.h
> +++ b/xen/arch/arm/include/asm/arm32/mpu.h
> @@ -39,6 +39,8 @@ typedef union {
>  typedef struct {
>      prbar_t prbar;
>      prlar_t prlar;
> +    uint8_t refcount;
> +    uint8_t pad[7];     /* Pad structure to 16 Bytes */
>  } pr_t;
>  
>  #endif /* __ASSEMBLY__ */
> diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
> index f0ce344e78..17f62ccaf6 100644
> --- a/xen/arch/arm/include/asm/arm64/mpu.h
> +++ b/xen/arch/arm/include/asm/arm64/mpu.h
> @@ -38,6 +38,8 @@ typedef union {
>  typedef struct {
>      prbar_t prbar;
>      prlar_t prlar;
> +    uint8_t refcount;
> +    uint8_t pad[15];    /* Pad structure to 32 Bytes */
>  } pr_t;
>  
>  #endif /* __ASSEMBLY__ */
> diff --git a/xen/arch/arm/include/asm/mpu/regions.inc b/xen/arch/arm/include/asm/mpu/regions.inc
> index 23fead3b21..0cdbb17bc3 100644
> --- a/xen/arch/arm/include/asm/mpu/regions.inc
> +++ b/xen/arch/arm/include/asm/mpu/regions.inc
> @@ -14,14 +14,12 @@
>  #define PRLAR_ELx_EN            0x1
>  
>  #ifdef CONFIG_ARM_64
> -#define XEN_MPUMAP_ENTRY_SHIFT  0x4     /* 16 byte structure */
>  
>  .macro store_pair reg1, reg2, dst
>      stp \reg1, \reg2, [\dst]
>  .endm
>  
>  #else
> -#define XEN_MPUMAP_ENTRY_SHIFT  0x3     /* 8 byte structure */
>  
>  .macro store_pair reg1, reg2, dst
>      strd  \reg1, \reg2, [\dst]
> @@ -97,6 +95,15 @@
>  
>  3:
>  
> +    /* Clear the rest of the xen_mpumap entry. */
> +#ifdef CONFIG_ARM_64
> +    stp xzr, xzr, [\base, #XEN_MPUMAP_ENTRY_ZERO_OFFSET]
> +#else
> +    mov \prbar, #0
> +    mov \prlar, #0
> +    strd \prbar, \prlar, [\base, #XEN_MPUMAP_ENTRY_ZERO_OFFSET]
> +#endif
> +
>      add   \sel, \sel, #1
>  
>  1:
> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
> index a058db19ef..c5128244b7 100644
> --- a/xen/arch/arm/mpu/mm.c
> +++ b/xen/arch/arm/mpu/mm.c
> @@ -106,6 +106,7 @@ pr_t pr_of_addr(paddr_t base, paddr_t limit, unsigned int flags)
>      region = (pr_t) {
>          .prbar = prbar,
>          .prlar = prlar,
> +        .refcount = 0,
>      };
>  
>      /* Set base address and limit address. */
> @@ -170,6 +171,37 @@ int mpumap_contains_region(pr_t *table, uint8_t nr_regions, paddr_t base,
>      return MPUMAP_REGION_NOTFOUND;
>  }
>  
> +static bool is_mm_attr_match(pr_t *region, unsigned int attributes)
> +{
> +    bool ret = true;
> +
> +    if ( region->prbar.reg.ro != PAGE_RO_MASK(attributes) )
> +    {
> +        printk(XENLOG_WARNING
> +               "Mismatched Access Permission attributes (%#x0 instead of %#x0)\n",
Why %#x0 and not %#x?

> +               region->prbar.reg.ro, PAGE_RO_MASK(attributes));
> +        ret = false;
> +    }
> +
> +    if ( region->prbar.reg.xn != PAGE_XN_MASK(attributes) )
> +    {
> +        printk(XENLOG_WARNING
> +               "Mismatched Execute Never attributes (%#x instead of %#x)\n",
> +               region->prbar.reg.xn, PAGE_XN_MASK(attributes));
> +        ret = false;
> +    }
> +
> +    if ( region->prlar.reg.ai != PAGE_AI_MASK(attributes) )
> +    {
> +        printk(XENLOG_WARNING
> +               "Mismatched Memory Attribute Index (%#x instead of %#x)\n",
> +               region->prlar.reg.ai, PAGE_AI_MASK(attributes));
> +        ret = false;
> +    }
What about shareability?
> +
> +    return ret;
> +}
> +
>  /* Map a frame table to cover physical addresses ps through pe */
>  void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
>  {
> @@ -287,19 +319,19 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
>      /* Currently we don't support modifying an existing entry. */
>      if ( flags_has_page_present && (rc >= MPUMAP_REGION_FOUND) )
>      {
> -        printk("Modifying an existing entry is not supported\n");
> -        return -EINVAL;
> -    }
> +        if ( !is_mm_attr_match(&xen_mpumap[idx], flags) )
Do I understand correctly that this change (not mentioned in commit msg) is here
so that when we call xen_mpumap_update_entry() with existing matching or
inclusive region we will increment refcount only if the attributes match?

> +        {
> +            printk("Modifying an existing entry is not supported\n");
> +            return -EINVAL;
> +        }
>  
> -    /*
> -     * Currently, we only support removing/modifying a *WHOLE* MPU memory
> -     * region. Part-region removal/modification is not supported as in the worst
> -     * case it will leave two/three fragments behind.
> -     */
Hmm, I think that we still don't support removing/modifying regions partially.
Why is this comment removed?

> -    if ( rc == MPUMAP_REGION_INCLUSIVE )
> -    {
> -        printk("Part-region removal/modification is not supported\n");
> -        return -EINVAL;
> +        /* Check for overflow of refcount before incrementing.  */
> +        if ( xen_mpumap[idx].refcount == 0xFF )
> +        {
> +            printk("Cannot allocate region as it would cause reference overflow\n");
> +            return -ENOENT;
> +        }
> +        xen_mpumap[idx].refcount += 1;
>      }
>  
>      /* We are inserting a mapping => Create new region. */
> @@ -323,7 +355,22 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
>              return -EINVAL;
>          }
>  
> -        disable_mpu_region_from_index(idx);
> +        if ( xen_mpumap[idx].refcount == 0 )
> +        {
> +            if (MPUMAP_REGION_FOUND == rc)
Missing spaces around ().

> +            {
No need for brackets for single instruction

> +                disable_mpu_region_from_index(idx);
> +            }
> +            else
> +            {
> +                printk("Cannot remove a partial region\n");
> +                return -EINVAL;
> +            }
> +        }
> +        else
> +        {
Same here.

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Nov 04 10:37:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 10:37:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155610.1485058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGEPn-0004kW-9k; Tue, 04 Nov 2025 10:37:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155610.1485058; Tue, 04 Nov 2025 10: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 1vGEPn-0004kP-7B; Tue, 04 Nov 2025 10:37:27 +0000
Received: by outflank-mailman (input) for mailman id 1155610;
 Tue, 04 Nov 2025 10:37:25 +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 1vGEPl-0004kJ-Dr
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 10:37:25 +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 1vGEPk-000lwo-2c;
 Tue, 04 Nov 2025 10:37:25 +0000
Received: from [2a02:8012:3a1:0:2858:32e7:18b8:3bf]
 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 1vGEPj-00B2l5-2x;
 Tue, 04 Nov 2025 10:37:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=wF4bm3u3B5XQx2oUqwESeGw2xVLjLIKK4I3FCZZyx8k=; b=VUggCZG3Fzld5AitMHnwV03/Jz
	FXRgdTmwlnuobDLIC8iUqSMKzALQtfOvctKGQyYeNQb2YpPvBKXDgF0A7SICLoEl5qS3Vw/naOfFe
	K/kSWnjM3HaCpI6EdZUBB0o83Fdrsrs5nmJZaWC2H8zZQL8s8JKuLobuF/5SdjF4zEgg=;
Message-ID: <3e1525eb-7772-4e11-88d0-376f64591802@xen.org>
Date: Tue, 4 Nov 2025 10:37:22 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] arm/xen: zero init memory region before returning to
 the heap
Content-Language: en-GB
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <c2a15402f87de85c2733362ef3ebc3ffe55b231f.1761926280.git.dmytro_prokopchuk1@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <c2a15402f87de85c2733362ef3ebc3ffe55b231f.1761926280.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Dmytro,

On 31/10/2025 16:02, Dmytro Prokopchuk1 wrote:
> The current implementation of 'free_init_memory()' fills the freed '__init'
> and '__initdata' memory regions with a faulting instruction before unmapping
> and returning them to the heap. However, after unmapping, any access to this
> region will result in a page fault, making the instruction fill redundant.
> 
> Replace the instruction fill with a call to 'memset()', zeroing the entire
> region before it is unmapped and returned to the allocator.
> 
> Additionally, this change resolves a violation of MISRA C:2012 Rule 11.3
> (cast between pointer to object type and pointer to a different object type),
> caused by performing a cast from a 'char *' to a 'uint32_t *' pointer to
> write instructions directly into memory, which is not compliant with MISRA
> guidelines.
> 
> No functional changes.
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Nov 04 10:38:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 10:38:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155618.1485068 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGEQN-0005Bx-HK; Tue, 04 Nov 2025 10:38:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155618.1485068; Tue, 04 Nov 2025 10: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 1vGEQN-0005Bq-Em; Tue, 04 Nov 2025 10:38:03 +0000
Received: by outflank-mailman (input) for mailman id 1155618;
 Tue, 04 Nov 2025 10:38:02 +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 1vGEQM-0005Bk-Qd
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 10:38:02 +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 1vGEQM-000lxc-1u
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 10:38:02 +0000
Received: from mail-vk1-f181.google.com ([209.85.221.181])
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <cody.zuschlag@xenproject.org>) id 1vGEQM-00B2pW-2O
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 10:38:02 +0000
Received: by mail-vk1-f181.google.com with SMTP id
 71dfb90a1353d-5563c36f5dfso461769e0c.2
 for <xen-devel@lists.xenproject.org>; Tue, 04 Nov 2025 02: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>
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=1g+Nw35gbIdjqKEd7PHczZmtrvfY29TwPYh6jr27U7s=; b=A5GVf7n
	hav/2DURguuXb6sAoTnreLqfOdSj87gZp+22kQaVUl6EpGRudE1DoXOI4inrBHoImKlETMP7juWyp
	YPs+VjYawQxpPxgwLWTQiXV8+M2Mg9gwV9Pyq7xRUfYPdhosdwDZo+x5TrR3A5YZCTNqyKBR5cz0X
	Fk2Md7AGdM=;
X-Gm-Message-State: AOJu0Yw8wI1WpEL+YGxqIV026VhHgedIK7xZUhy6HLsz6WqxLL8BAsQi
	agqz1od6MQKJ+MRcj/1VbuGj8e1MS45/7Sy3t/bJtRVeeJBqfP/VqHiK1yqocSTS1+O66slx0lR
	j5CGq04oJmP+hIDLrW0MDjW8VRVGjBUo=
X-Google-Smtp-Source: AGHT+IFQA7gN4QmB1Jl6w7tbmBHj+9PB6sf9LwMAUSbb7l4zqkrxVdUdAGzA3F2IcdWZWsK6BZHF4ruv9okA/jC3HqY=
X-Received: by 2002:a05:6122:4895:b0:559:59c9:5f89 with SMTP id
 71dfb90a1353d-55959c9645emr2707332e0c.0.1762252682294; Tue, 04 Nov 2025
 02:38:02 -0800 (PST)
MIME-Version: 1.0
From: Cody Zuschlag <cody.zuschlag@xenproject.org>
Date: Tue, 4 Nov 2025 11:37:51 +0100
X-Gmail-Original-Message-ID: <CAJbE=Kw6ayV1r3jtjoaaZ1Lcr0dFE4X7P_ZjJztiajnWWPM1Rw@mail.gmail.com>
X-Gm-Features: AWmQ_bkiXtg1WlLSLGBtQs63R8G-PPExZ-jYLiGE-MGc3AhtVq387d4eiDYlawY
Message-ID: <CAJbE=Kw6ayV1r3jtjoaaZ1Lcr0dFE4X7P_ZjJztiajnWWPM1Rw@mail.gmail.com>
Subject: [ANNOUNCE] Call for agenda items for November 6, 2025 Community Call
 @ 15:00 UTC
To: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="00000000000021fb4c0642c26dfc"

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

Hi everyone,

We=E2=80=99re getting ready for November's Xen Project Community Call on Th=
ursday,
6 November 2025 at 15:00 UTC (3 pm UK time, *please account for your local
daylight savings 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/UgvUtRc5Gi68FxOSuye5gWH0/
   - 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, 6 November 2025
   - Time: 15:00 UTC (agenda begins at 15:05 UTC)
   - Find your local timezone here
   <https://www.worldtimebuddy.com/?qm=3D1&lid=3D5368361,2988507,5128581,26=
43743,100,1850147&h=3D2988507&date=3D2025-11-6&sln=3D16-17&hf=3Dundefined&c=
=3D1901>
   - Link to Join the Call: https://meet.jit.si/XenProjectCommunityCall

We plan to open the meeting room at 15:00 UTC, but to allow time for
switching between meetings and handling any technical issues, we=E2=80=99ll
officially start discussing the agenda at 15:05 UTC.

Want to be CC=E2=80=99d on future calls?

Add or remove yourself from our Sign-up Sheet
<https://cryptpad.fr/pad/#/2/pad/edit/D9vGzihPxxAOe6RFPz0sRCf+/>.

See you Thursday!


Cody Zuschlag
Xen Project - Community Manager

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

<div dir=3D"ltr"><div>Hi everyone,<br><br>We=E2=80=99re getting ready for N=
ovember&#39;s Xen Project Community Call on Thursday, 6 November 2025 at 15=
:00 UTC (3 pm UK time, <b>please account for your local daylight savings ti=
me</b>).=C2=A0</div><div><br></div><div>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 sha=
re updates. Everyone is welcome!<br><br><b>Preparation:</b><br><ul><li styl=
e=3D"margin-left:15px">Add any proposed agenda items or missing action item=
s:=C2=A0<a href=3D"https://cryptpad.fr/pad/#/2/pad/edit/UgvUtRc5Gi68FxOSuye=
5gWH0/">https://cryptpad.fr/pad/#/2/pad/edit/UgvUtRc5Gi68FxOSuye5gWH0/</a><=
/li><li style=3D"margin-left:15px">If any action items have been resolved o=
r are no longer relevant, feel free to remove them from the doc. I attempte=
d to clean up the doc, so feel free to make any adjustments.</li></ul><br><=
b>Call Details:</b><br><ul><li style=3D"margin-left:15px">Date: Thursday, 6=
 November 2025</li><li style=3D"margin-left:15px">Time: 15:00 UTC (agenda b=
egins at 15:05 UTC)</li><li style=3D"margin-left:15px"><a href=3D"https://w=
ww.worldtimebuddy.com/?qm=3D1&amp;lid=3D5368361,2988507,5128581,2643743,100=
,1850147&amp;h=3D2988507&amp;date=3D2025-11-6&amp;sln=3D16-17&amp;hf=3Dunde=
fined&amp;c=3D1901" target=3D"_blank">Find your local timezone here</a></li=
><li style=3D"margin-left:15px">Link to Join the Call:=C2=A0<a href=3D"http=
s://meet.jit.si/XenProjectCommunityCall" target=3D"_blank">https://meet.jit=
.si/XenProjectCommunityCall</a></li></ul>We plan to open the meeting room a=
t 15:00 UTC, but to allow time for switching between meetings and handling =
any technical issues, we=E2=80=99ll officially start discussing the agenda =
at 15:05 UTC.<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/e=
dit/D9vGzihPxxAOe6RFPz0sRCf+/" target=3D"_blank">Sign-up Sheet</a>.</div><d=
iv><br></div><div>See you Thursday!</div><div><br></div><div><div dir=3D"lt=
r" class=3D"gmail_signature" data-smartmail=3D"gmail_signature"><div dir=3D=
"ltr"><img src=3D"https://ci3.googleusercontent.com/mail-sig/AIorK4x5nkRDCO=
FJDJAv9aMXdZ0mghItsp3D36JrwBCQtitBSW_0NeDS6mBmJ2F4vZVE2oBOqnY6IaJUrl12"><br=
><div>Cody Zuschlag</div><div>Xen Project - Community Manager</div></div></=
div></div></div>

--00000000000021fb4c0642c26dfc--


From xen-devel-bounces@lists.xenproject.org Tue Nov 04 10:44:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 10:44:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155632.1485079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGEW9-0006o9-72; Tue, 04 Nov 2025 10:44:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155632.1485079; Tue, 04 Nov 2025 10:44: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 1vGEW9-0006o2-3w; Tue, 04 Nov 2025 10:44:01 +0000
Received: by outflank-mailman (input) for mailman id 1155632;
 Tue, 04 Nov 2025 10:44:00 +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 1vGEW8-0006nv-HJ
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 10:44:00 +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 1vGEW7-000m6j-1t;
 Tue, 04 Nov 2025 10:43:59 +0000
Received: from [2a02:8012:3a1:0:2858:32e7:18b8:3bf]
 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 1vGEW7-00B3xT-26;
 Tue, 04 Nov 2025 10: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>
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=uB+noEWh6KER25ZRVImPaPFIjegXd7HNUf93SyjDFiI=; b=N0O15MI0iSb8q5wW9VZXWmp8OV
	y+KXiI5VLdRprb4YMxOXBRM/uWvsrcFbHdgkUouoQzj0oFrg90AgvUimleQCapBjp41r6ieX3Wzhg
	uO24lspP1DemMQxg/yZAWWPFpybZo16V7NGj/PVi6FVB4nyiYVe/edhEzJeCv+gNQFJI=;
Message-ID: <88bff8bf-195b-432d-97af-317398796d40@xen.org>
Date: Tue, 4 Nov 2025 10:43:58 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Support of building Xen with Clang/LLVM on Arm?
Content-Language: en-GB
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Saman Dehghan <samaan.dehghan@gmail.com>, xen-devel@lists.xenproject.org
Cc: Wentao Zhang <wentaoz5@illinois.edu>
References: <20251023233408.16245-1-samaan.dehghan@gmail.com>
 <f61d5a29-04f0-44cc-bef6-de05f240bbc8@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <f61d5a29-04f0-44cc-bef6-de05f240bbc8@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 24/10/2025 00:45, Andrew Cooper wrote:
> On 24/10/2025 12:34 am, Saman Dehghan wrote:
>> Hi xen-devel,
>>
>> When preparing and testing another of my patch for LLVM coverage [1], I
>> encountered a few problems with Clang/LLVM build on ARM 64 platforms.
>>
>> The first two are clang errors.
>>
>> I observe the following errors when building the Xen master branch
>> for ARM 64 with Clang 19 and 20. If I comment out
>> "CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only" in "xen/arch/arm/arch.mk"
>> the error is gone but the build fails during linking (see the third).
>>
>> Error message:
>>
>> arch/arm/arm64/vfp.c:9:18: error: instruction requires: fp-armv8
>>      9 |     asm volatile("stp q0, q1, [%1, #16 * 0]\n\t"
>>        |                  ^
>> <inline asm>:1:2: note: instantiated into assembly here
>>      1 |         stp q0, q1, [x8, #16 * 0]
>>        |         ^
>> arch/arm/arm64/vfp.c:9:46: error: instruction requires: fp-armv8
>>      9 |     asm volatile("stp q0, q1, [%1, #16 * 0]\n\t"
>>        |                                              ^
>> <inline asm>:2:2: note: instantiated into assembly here
>>      2 |         stp q2, q3, [x8, #16 * 2]
>>        |         ^
>> arch/arm/arm64/vfp.c:10:46: error: instruction requires: fp-armv8
>>     10 |                  "stp q2, q3, [%1, #16 * 2]\n\t"
>>        |                                              ^
>> <inline asm>:3:2: note: instantiated into assembly here
>>      3 |         stp q4, q5, [x8, #16 * 4]
>>        |         ^
>> arch/arm/arm64/vfp.c:11:46: error: instruction requires: fp-armv8
>>     11 |                  "stp q4, q5, [%1, #16 * 4]\n\t"
>>        |                                              ^
>> <inline asm>:4:2: note: instantiated into assembly here
>>      4 |         stp q6, q7, [x8, #16 * 6]
>>        |         ^
>> arch/arm/arm64/vfp.c:12:46: error: instruction requires: fp-armv8
>>     12 |                  "stp q6, q7, [%1, #16 * 6]\n\t"
>>        |                                              ^
>> <inline asm>:5:2: note: instantiated into assembly here
>>      5 |         stp q8, q9, [x8, #16 * 8]
>>        |         ^
>> arch/arm/arm64/vfp.c:13:46: error: instruction requires: fp-armv8
>>     13 |                  "stp q8, q9, [%1, #16 * 8]\n\t"
>>        |                                              ^
>> <inline asm>:6:2: note: instantiated into assembly here
>>      6 |         stp q10, q11, [x8, #16 * 10]
>>        |         ^
>>
>> Reprroduction steps:
>>
>> $ git clone https://xenbits.xen.org/git-http/xen
>> $ cd xen
>> $ git checkout eff32008be0d2718d32d60245650ff6f88fb3d13
>> $ make -C xen menuconfig clang=y
>> $ make xen clang=y
>>
>> Tested with the following setup:
>>
>> - Clang version: Ubuntu clang version 19.1.1 (1ubuntu1~24.04.2)
>> - Host: Ubuntu 24.04.3 LTS /  aarch64
>>
>> Second, for Clang 18 or below there are another set of errors despite
>> commenting out the "-mgeneral-regs-only" flag:
>>
>> arch/arm/arm64/mmu/head.S:288:13: error: expected writable system register or pstate
>>          msr TTBR0_EL2, x4
>>              ^
>> arch/arm/arm64/mmu/head.S:509:13: error: expected writable system register or pstate
>>          msr TTBR0_EL2, x0
>>              ^
>>
>> Tested with:
>>
>> - Clang version: Ubuntu clang version 18.1.3 (1ubuntu1)
>> - Host: Ubuntu 24.04.3 LTS /  aarch64
>>
>> This works with GCC. It also works with Clang on x86 builds.
>>
>> Third, if I specify "LD=ld.lld" with Clang 19 and 20 after commenting out
>> the "-mgeneral-regs-only" flag. I got this linking error:
>>
>> ld.lld: error: common/device-tree/static-evtchn.init.o:(.rodata.str): offset is outside the section
>>
>> As I read from the project README, under "C compiler and linker - For ARM",
>> only GCC is listed. So my general question is whether Xen supports building
>> with Clang/LLVM on ARM platforms.
>>
>> Let me know if you need more details or a patch attempt.
> 
> Clang/LLVM is only supported for x86.
> 
> Personally I think the other architectures would benefit from using both
> compilers, but it's up to the relevant maintainers.

Happy to review any patches for clang support on Arm.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Nov 04 10:46:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 10:46:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155649.1485089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGEYJ-0007Rk-NJ; Tue, 04 Nov 2025 10:46:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155649.1485089; Tue, 04 Nov 2025 10: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 1vGEYJ-0007Rd-KL; Tue, 04 Nov 2025 10:46:15 +0000
Received: by outflank-mailman (input) for mailman id 1155649;
 Tue, 04 Nov 2025 10:46:14 +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 1vGEYI-0007RI-5V
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 10:46:14 +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 1vGEYH-000m9x-0d;
 Tue, 04 Nov 2025 10:46:13 +0000
Received: from [2a02:8012:3a1:0:2858:32e7:18b8:3bf]
 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 1vGEYH-00B4Rx-0o;
 Tue, 04 Nov 2025 10:46: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:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=m4d65BzOjjw23PnfyKNRcSMNDlBgZqZ/9Q0lDxpIUBc=; b=NYmx0NUPhV4F0PUGmnikHLlY2H
	m21WiVrGHxt7ilTfoWLtUUxONt+NbBvj5/OHxGtdJu8uzI0ALN/VVSu642Valx5QmOTnNneWWZzwI
	58Y+X42/HIlVP9Pb9C4/WgB1OmJk/+gv3s3OwkRE2obTdkgghUIFS5xzhPKQzkYUtJyc=;
Message-ID: <b2b32858-180e-4e8a-97d7-59a272c13d0a@xen.org>
Date: Tue, 4 Nov 2025 10:46:10 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] domain: adjust soft-reset arch dependency
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Penny Zheng <Penny.Zheng@amd.com>,
 Christopher Clark <christopher.w.clark@gmail.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <c9c8c9c6-a155-4986-bf77-5766cdcd6024@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <c9c8c9c6-a155-4986-bf77-5766cdcd6024@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 30/10/2025 12:10, Jan Beulich wrote:
> Arm's arch_domain_soft_reset() returning -ENOSYS is quite unhelpful: This
> way a domain will be crashed if a tool stack mistakenly invokes
> XEN_DOMCTL_soft_reset on it. Instead the tool stack should be told of its
> mistake.
> 
> Introduce HAS_SOFT_RESET, implied only by x86. "imply" rather than
> "select" such that HAS_SOFT_RESET can later gain a dependency on
> MGMT_HYPERCALLS. That way HAS_SOFT_RESET will go off when
> MGMT_HYPERCALLS is off.
> 
> Check the new setting early in domctl handling, and compile out the thus
> dead (when HAS_SOFT_RESET=n) domain_soft_reset() as well as its dedicated
> helpers.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Julien GralL <jgrall@amazon.com>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Nov 04 10:52:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 10:52:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155659.1485098 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGEeA-0000bf-AN; Tue, 04 Nov 2025 10:52:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155659.1485098; Tue, 04 Nov 2025 10:52:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGEeA-0000bY-7h; Tue, 04 Nov 2025 10:52:18 +0000
Received: by outflank-mailman (input) for mailman id 1155659;
 Tue, 04 Nov 2025 10:52:17 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vGEe9-0000bR-75
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 10:52:17 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vGEe8-000mIJ-25;
 Tue, 04 Nov 2025 10:52:16 +0000
Received: from [2a02:8012:3a1:0:2858:32e7:18b8:3bf]
 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 1vGEe8-00B5Bg-2F;
 Tue, 04 Nov 2025 10:52:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=kRLxWnq2X4p7eL66NrsFmwXTdVqToBKJkJP3mZbk/4w=; b=jJd1QMzzsf/rMOKbIxVcMFif1w
	inAghFL697UADc40Cnv0Z3EaefI/n4+iTuSSMx1Btmc0vNbVbPDXQTkYDiMXm/d8YOUJcUd/S1i45
	R1elIUuzfRPHUO9iz04pmAzH/8wxed5Lg+e3A8DEEw56uS16OIRd0ZxJCGbLFqaNzRqk=;
Message-ID: <58ab2145-62a9-4bc7-8889-b7a684c77259@xen.org>
Date: Tue, 4 Nov 2025 10:52:15 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/5] arm/time: Use static irqaction
Content-Language: en-GB
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1760083684.git.mykyta_poturai@epam.com>
 <af333b9ef3b79f4b0cfafb1f09da5b7bea04cfaa.1760083684.git.mykyta_poturai@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <af333b9ef3b79f4b0cfafb1f09da5b7bea04cfaa.1760083684.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Mykyta,

On 10/10/2025 10:21, Mykyta Poturai wrote:
> When stopping a core deinit_timer_interrupt is called in non-alloc
> context, which causes xfree in release_irq to fail an assert.
> 
> To fix this, switch to a statically allocated irqaction that does not
> need to be freed in release_irq.
> 
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

Assuming Mykola's comment will be addressed:

Reviewed-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Nov 04 10:55:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 10:55:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155669.1485110 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGEgj-0001B9-OT; Tue, 04 Nov 2025 10:54:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155669.1485110; Tue, 04 Nov 2025 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 1vGEgj-0001B2-JH; Tue, 04 Nov 2025 10:54:57 +0000
Received: by outflank-mailman (input) for mailman id 1155669;
 Tue, 04 Nov 2025 10:54:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vGEgh-0001Aw-Gj
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 10:54:55 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vGEgg-000mKI-2b;
 Tue, 04 Nov 2025 10:54:55 +0000
Received: from [2a02:8012:3a1:0:2858:32e7:18b8:3bf]
 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 1vGEgg-00B5aG-2i;
 Tue, 04 Nov 2025 10:54:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=UO44pjj3/P2uckSRmi9p5Kc8hoydRQyaw2DRGZPeEvA=; b=SqRo9BunCSrxb196zb0TWBapZt
	VNScfvPBRRXePu3DAtG2aFMhaAPKSRP/vBuv01Ki+2gemhf3bcmv1tVPECFMuqXiPJrQoeefKn7ej
	DfItmnGpenBfa8QcJjGzHCbZpzA4XvqYHTb9CZIOAjvOiKuYym6P7SPmOSAKIL5QAkCE=;
Message-ID: <7d95cd09-c997-4d84-91d2-3f1e53a42639@xen.org>
Date: Tue, 4 Nov 2025 10:54:53 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/5] arm/gic: Use static irqaction
Content-Language: en-GB
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1760083684.git.mykyta_poturai@epam.com>
 <7ebd435d510c88e2840ee991f8fd75f25ad66f75.1760083684.git.mykyta_poturai@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <7ebd435d510c88e2840ee991f8fd75f25ad66f75.1760083684.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Mykyta,

On 10/10/2025 10:21, Mykyta Poturai wrote:
> When stopping a core cpu_gic_callback is called in non-alloc
> context, which causes xfree in release_irq to fail an assert.
> 
> To fix this, switch to a statically allocated irqaction that does not
> need to be freed in release_irq.
> 
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

Assuming Mykola's comment is address:

Reviewed-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Nov 04 11:19:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 11:19:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155680.1485119 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGF4A-0004NU-HU; Tue, 04 Nov 2025 11:19:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155680.1485119; Tue, 04 Nov 2025 11:19:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGF4A-0004NN-Do; Tue, 04 Nov 2025 11:19:10 +0000
Received: by outflank-mailman (input) for mailman id 1155680;
 Tue, 04 Nov 2025 11:19:09 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vGF49-0004NH-Sa
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 11:19:09 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vGF48-000mnq-2p;
 Tue, 04 Nov 2025 11:19:09 +0000
Received: from [2a02:8012:3a1:0:2858:32e7:18b8:3bf]
 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 1vGF48-00B8d1-2i;
 Tue, 04 Nov 2025 11:19:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=jqbD74s3/qNZLgvgB77u3cd0QSM7CyeZ6Lct70A8kxg=; b=RB7o644sUUZxMpHN07gtiRiukP
	PaLBuiVSlEAIYwG+/R/Tn/90RHuseGbGIkdp2cpeytj0Diw9W4WcJGfLU+GvXvGmmEIyAKCWIeO6K
	Xzh4+/VTod0vW57LKTOMAPHi0nPmW1dy/8EY1MGIa4UF0Jp2VfFdfT98Rk8Zf3HA8+/M=;
Message-ID: <752d8a52-653b-481b-aa66-2f875aff3d87@xen.org>
Date: Tue, 4 Nov 2025 11:19:06 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 0/5] Implement CPU hotplug on Arm
Content-Language: en-GB
To: Mykola Kvach <xakep.amatop@gmail.com>,
 Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <cover.1760083684.git.mykyta_poturai@epam.com>
 <CAGeoDV-=ON+WSvCQnjaa9zU_74RuFHXrqa5+p8dAjM9fxpomxw@mail.gmail.com>
 <2728d969-06fa-4f35-95a1-a79dd441242f@epam.com>
 <CAGeoDV-0VVDzR-+OkK0y+_=xs-dzZnc2ZcQSs7DTUVOJn72QLA@mail.gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <CAGeoDV-0VVDzR-+OkK0y+_=xs-dzZnc2ZcQSs7DTUVOJn72QLA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

On 20/10/2025 19:00, Mykola Kvach wrote:
> Thank you for your answers
> 
> On Mon, Oct 20, 2025 at 5:15â€¯PM Mykyta Poturai <Mykyta_Poturai@epam.com> wrote:
>>
>> On 15.10.25 20:30, Mykola Kvach wrote:
>>> Hi Mykyta,
>>>
>>> Thanks for the series.
>>>
>>> It seems there might be issues here -- please take a look and let me
>>> know if my concerns are valid:
>>>
>>> 1. FF-A notification IRQ: after a CPU down->up cycle the IRQ
>>> configuration may be lost.
>>
>> OPTEE and FFA are marked as unsupported.
> 
> Understood, thanks. Would it be worth documenting this?

This must be documented. OP-TEE, FFA and ITS will eventually be 
supported. So we need to know the gap.

I think it would also be worth to have a Kconfig indicating whether CPU 
hotplug (and soon suspend/resume) can be used with the documentation. So 
CPU hotplug will gracefully fail rather than putting the system in a 
undefined state.

>>
>>> 2. GICv3 LPIs: a CPU may fail to come back up unless its LPI pending
>>> table exists (is allocated) on bring-up. See
>>> gicv3_lpi_allocate_pendtable() and its call chain.
>>
>> ITS is marked as unsupported. I have a plan to deal with this, but it is
>> out of scope of this series.
 > > Thanks for the clarification. Should we document this somewhere?
> 
>>
>>> 3. IRQ migration on CPU down: if an IRQ targets a CPU being offlined,
>>> its affinity should be moved to an online CPU before completing the
>>> offlining.
>>
>> All guest tied IRQ migration is handled by the scheduler. Regarding the
>> irqs used by Xen, I didn't find any with affinity to other CPUs than CPU
>> 0, which can't be disabled. I think theoretically it is possible for
>> them to have different affinity, but it seems unlikely considering that
>> x86 hotplug code also doesn't seem to do any Xen irq migration AFAIU.
> 
> What about arm_smmu_init_domain_context and its related call chains?
> As far as I can see, some of these paths touch XEN_DOMCTL_* hypercalls,
> and my understanding is they can be issued on any CPU.

You are right. The SMMU can be configured from any pCPU. When 
request_irq() is called, it will route the IRQ to the current pCPU.

Those IRQs are not guest interrupts, so from my understanding, they 
would not be migrated.

> Should we add a
> check that no enabled (e)SPIs owned by Xen are pinned to the offlining
> CPU?

This would be good. But I also think we should aim to migrate those 
interrupts.

>>
>>> 4. Race between the new hypercalls and disable/enable_nonboot_cpus():
>>> disable_nonboot_cpus is called, enable_nonboot_cpus() reads
>>> frozen_cpus, and before it calls cpu_up() a hypercall onlines the CPU.
>>> cpu_up() then fails as "already online", but the CPU_RESUME_FAILED
>>> path may still run for an already-online CPU, risking use-after-free
>>> of per-CPU state (e.g. via free_percpu_area()) and other issues
>>> related to CPU_RESUME_FAILED notification.
>>>
>>
>> There don't seem to be any calls to disable/enable_nonboot_cpus() on
>> Arm.

Yet. There is a patch series to use the functions as part of 
suspend/resume. In fact this series is a pre-requisite for the 
suspend/resume series.

> If we take x86 as an example, then they are called with all domains
>> already paused, and I don't see how paused domains can issue hypercalls.

The Arm version will also freeze all the domains before calling 
disable_nonboot_cpus(). So there should be no race on Arm as well.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Nov 04 11:27:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 11:27:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155690.1485128 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGFCM-0005yv-8W; Tue, 04 Nov 2025 11:27:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155690.1485128; Tue, 04 Nov 2025 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 1vGFCM-0005yo-53; Tue, 04 Nov 2025 11:27:38 +0000
Received: by outflank-mailman (input) for mailman id 1155690;
 Tue, 04 Nov 2025 11:27:37 +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 1vGFCL-0005yi-KW
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 11:27:37 +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 1vGFCK-000my3-2b;
 Tue, 04 Nov 2025 11:27:37 +0000
Received: from [2a02:8012:3a1:0:2858:32e7:18b8:3bf]
 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 1vGFCK-00B9gR-2e;
 Tue, 04 Nov 2025 11:27: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>
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=wb0BLB75HCUP59tThBssTD0jcy87um7ce8sT+eTJ+Hs=; b=T3KwFfEJImf5d3oN/EuNo4CvWN
	R47IZz+1FU+wGckIkWDfadacqpJhhCYvczCeI21A2MZyLCshkqC/9e7kDNFyChAVfzDxOFmON9LUI
	7KBzMvZLu//ss2LxQ1yqcGD9UNGs8vYrU7toC74bztbzvVTQjJr3a9NjqngNymvDzj7s=;
Message-ID: <ad2e0fd6-a742-497c-88db-5d7c5704ec68@xen.org>
Date: Tue, 4 Nov 2025 11:27:35 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/5] arm/sysctl: Implement cpu hotplug ops
Content-Language: en-GB
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>
References: <cover.1760083684.git.mykyta_poturai@epam.com>
 <bbd7ebd07d80ead78106c160e4368116dae1e548.1760083684.git.mykyta_poturai@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <bbd7ebd07d80ead78106c160e4368116dae1e548.1760083684.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 10/10/2025 10:21, Mykyta Poturai wrote:
> Implement XEN_SYSCTL_CPU_HOTPLUG_{ONLINE,OFFLINE} calls to allow for
> enabling/disabling CPU cores in runtime.
> 
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> 
> v2->v3:
> * no changes
> 
> v1->v2:
> * remove SMT ops
> * remove cpu == 0 checks
> * add XSM hooks
> * only implement for 64bit Arm

Can you add some details in the commit message explaining why the 
feature is only enabled for 32-bit Arm?

> ---
>   xen/arch/arm/sysctl.c | 45 +++++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 45 insertions(+)
> 
> diff --git a/xen/arch/arm/sysctl.c b/xen/arch/arm/sysctl.c
> index 32cab4feff..fecd649db1 100644
> --- a/xen/arch/arm/sysctl.c
> +++ b/xen/arch/arm/sysctl.c
> @@ -12,6 +12,8 @@
>   #include <xen/dt-overlay.h>
>   #include <xen/errno.h>
>   #include <xen/hypercall.h>
> +#include <xen/cpu.h>
> +#include <xsm/xsm.h>
>   #include <asm/arm64/sve.h>
>   #include <public/sysctl.h>
>   
> @@ -23,6 +25,42 @@ void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
>                                          XEN_SYSCTL_PHYSCAP_ARM_SVE_MASK);
>   }
>   
> +#ifdef CONFIG_ARM_64
> +static long cpu_up_helper(void *data)
> +{
> +    unsigned long cpu = (unsigned long) data;
> +    return cpu_up(cpu);
> +}
> +
> +static long cpu_down_helper(void *data)
> +{
> +    unsigned long cpu = (unsigned long) data;
> +    return cpu_down(cpu);
> +}
> +
> +static long cpu_hotplug_sysctl(struct xen_sysctl_cpu_hotplug *hotplug)
> +{
> +    int ret;
> +
> +    switch (hotplug->op) {
> +        case XEN_SYSCTL_CPU_HOTPLUG_ONLINE:
> +            ret = xsm_resource_plug_core(XSM_HOOK);
> +            if ( ret )
> +                return ret;
> +            return continue_hypercall_on_cpu(0, cpu_up_helper, _p(hotplug->cpu));
> +
> +        case XEN_SYSCTL_CPU_HOTPLUG_OFFLINE:
> +            ret = xsm_resource_unplug_core(XSM_HOOK);
> +            if ( ret )
> +                return ret;
> +            return continue_hypercall_on_cpu(0, cpu_down_helper, _p(hotplug->cpu));
> +
> +        default:
> +            return -EOPNOTSUPP;
> +    }
> +}
> +#endif

The logic seems to be very similar to the x86 code. There are some 
slight differences in cpu_up_helper() and cpu_down_helper() but:

* For cpu_up_helper(), we could create an arch specific helper for the 
second if check.
* For cpu_down_helper(), it would be ok to call cpu_down() a second time 
on Arm.

Can you look at consolidating the code?

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Nov 04 11:29:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 11:29:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155700.1485139 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGFDg-0006Vu-Hf; Tue, 04 Nov 2025 11:29:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155700.1485139; Tue, 04 Nov 2025 11:29:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGFDg-0006Vn-F1; Tue, 04 Nov 2025 11:29:00 +0000
Received: by outflank-mailman (input) for mailman id 1155700;
 Tue, 04 Nov 2025 11:28: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=pTF1=5M=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vGFDf-0006Vh-PM
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 11:28:59 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 71490ee1-b971-11f0-980a-7dc792cee155;
 Tue, 04 Nov 2025 12:28: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 D54651C2B;
 Tue,  4 Nov 2025 03:28:44 -0800 (PST)
Received: from [10.1.38.100] (e126510-lin.cambridge.arm.com [10.1.38.100])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 15B213F63F;
 Tue,  4 Nov 2025 03: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: 71490ee1-b971-11f0-980a-7dc792cee155
Message-ID: <216d54f1-334f-4600-9ecb-f7788b1abd7d@arm.com>
Date: Tue, 4 Nov 2025 11:28:42 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 11/12] x86/xen: use lazy_mmu_state when
 context-switching
To: "David Hildenbrand (Red Hat)" <david@kernel.org>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-12-kevin.brodsky@arm.com>
 <c7c8a233-2103-4b48-b65e-ec81666d20e4@kernel.org>
 <285faae4-dab6-4819-847a-889bdf87d5d7@arm.com>
 <a326d1eb-62f1-4add-8dc9-cea7d7e4ed3c@kernel.org>
Content-Language: en-GB
From: Kevin Brodsky <kevin.brodsky@arm.com>
In-Reply-To: <a326d1eb-62f1-4add-8dc9-cea7d7e4ed3c@kernel.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03/11/2025 19:23, David Hildenbrand (Red Hat) wrote:
> On 03.11.25 19:29, Kevin Brodsky wrote:
>> On 03/11/2025 16:15, David Hildenbrand (Red Hat) wrote:
>>> On 29.10.25 11:09, Kevin Brodsky wrote:
>>>> [...]
>>>>
>>>> @@ -437,7 +436,7 @@ static void xen_end_context_switch(struct
>>>> task_struct *next)
>>>> Â Â  Â Â Â Â Â  xen_mc_flush();
>>>> Â Â Â Â Â Â  leave_lazy(XEN_LAZY_CPU);
>>>> -Â Â Â  if (test_and_clear_ti_thread_flag(task_thread_info(next),
>>>> TIF_LAZY_MMU_UPDATES))
>>>> +Â Â Â  if (next->lazy_mmu_state.active)
>>>
>>> This is nasty. If in_lazy_mmu_mode() is not sufficient, we will want
>>> to have a separate helper that makes it clear what the difference
>>> between both variants is.
>>
>> in_lazy_mmu_mode() operates on current, but here we're operating on a
>> different task. The difference is more fundamental than just passing a
>> task_struct * or not: in_lazy_mmu_mode() is about whether we're
>> currently in lazy MMU mode, i.e. not paused and not in interrupt
>> context. A task that isn't scheduled is never in lazy MMU mode -
>> lazy_mmu_state.active is just the saved state to be restored when
>> scheduled again.
>>
>> My point here is that we could have a helper for this use-case, but it
>> should not be used in other situations (at least not on current). Maybe
>> __task_lazy_mmu_active(task)? I do wonder if accessing lazy_mmu_state
>> directly isn't expressing the intention well enough though (checking the
>> saved state).
>
>
> Likely there should be a
>
> /**
> Â * task_lazy_mmu_active - test whether the lazy-mmu mode is active for a
> Â *Â Â Â Â Â Â Â Â Â Â Â Â Â  task
> Â * @task: ...
> Â *
> Â * The lazy-mmu mode is active if a task has lazy-mmu mode enabled and
> Â * currently not paused.
> Â */
> static inline bool task_lazy_mmu_active(struct task_struct *task)
> {
> Â Â Â Â return task->lazy_mmu_state.active;
> }
>
> /**
> Â * in_lazy_mmu_mode() - test whether current is in lazy-mmu mode
> Â *
> Â * Test whether the current task is in lazy-mmu mode: whether the
> Â * interrupts are enabled and the lazy-mmu mode is active for the
> Â * current task.
> Â */
> Â static inline bool in_lazy_mmu_mode(void)
> Â {
> +Â Â Â  if (in_interrupt())
> +Â Â Â Â Â Â Â  return false;
> +
> Â Â Â Â  return task_lazy_mmu_active(current);
> Â }
>
>
> Something like that. Maybe we can find better terminology.

That's probably the clearest yes, will make the change. I can't think of
more self-documenting names, spelling out the difference in the comments
is likely the best we can do.

- Kevin


From xen-devel-bounces@lists.xenproject.org Tue Nov 04 11:33:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 11:33:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155710.1485148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGFHq-00080H-1m; Tue, 04 Nov 2025 11:33:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155710.1485148; Tue, 04 Nov 2025 11:33:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGFHp-00080A-V1; Tue, 04 Nov 2025 11:33:17 +0000
Received: by outflank-mailman (input) for mailman id 1155710;
 Tue, 04 Nov 2025 11: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=pTF1=5M=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vGFHo-000802-7q
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 11:33:16 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 0ce81fd0-b972-11f0-9d16-b5c5bf9af7f9;
 Tue, 04 Nov 2025 12:33: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 D06201C2B;
 Tue,  4 Nov 2025 03:33:05 -0800 (PST)
Received: from [10.1.38.100] (e126510-lin.cambridge.arm.com [10.1.38.100])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C979F3F63F;
 Tue,  4 Nov 2025 03:33: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: 0ce81fd0-b972-11f0-9d16-b5c5bf9af7f9
Message-ID: <e3326a9c-108a-4eb2-b12e-bff2b5edd1d3@arm.com>
Date: Tue, 4 Nov 2025 11:33:03 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 09/12] powerpc/mm: replace batch->active with
 in_lazy_mmu_mode()
To: David Hildenbrand <david@redhat.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-10-kevin.brodsky@arm.com>
 <05e2062c-1689-44e7-9cc6-697646ca075d@redhat.com>
Content-Language: en-GB
From: Kevin Brodsky <kevin.brodsky@arm.com>
In-Reply-To: <05e2062c-1689-44e7-9cc6-697646ca075d@redhat.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03/11/2025 16:05, David Hildenbrand wrote:
> On 29.10.25 11:09, Kevin Brodsky wrote:
>> A per-CPU batch struct is activated when entering lazy MMU mode; its
>> lifetime is the same as the lazy MMU section (it is deactivated when
>> leaving the mode). Preemption is disabled in that interval to ensure
>> that the per-CPU reference remains valid.
>>
>> The generic lazy_mmu layer now tracks whether a task is in lazy MMU
>> mode. We can therefore use the generic helper in_lazy_mmu_mode()
>> to tell whether a batch struct is active instead of tracking it
>> explicitly.
>>
>> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
>> ---
>
> I suspect you were not able to test this on real HW. Some help from
> the ppc folks would be appreciated.

Indeed, it would be nice to get some testing on ppc HW that actually
uses lazy MMU (!radix_enabled()).

>
> LGTM, but the interaction with pause/resume adds a bit of complication
> on top.

Does it? This series doesn't change when arch_enter() and arch_leave()
are called, batch->active and in_lazy_mmu_mode() should coincide.Â 

- Kevin


From xen-devel-bounces@lists.xenproject.org Tue Nov 04 11:35:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 11:35:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155722.1485158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGFK6-0000Ab-FP; Tue, 04 Nov 2025 11:35:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155722.1485158; Tue, 04 Nov 2025 11: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 1vGFK6-0000AU-Cg; Tue, 04 Nov 2025 11:35:38 +0000
Received: by outflank-mailman (input) for mailman id 1155722;
 Tue, 04 Nov 2025 11:35: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=RsLI=5M=gmail.com=julien.grall.oss@srs-se1.protection.inumbo.net>)
 id 1vGFK5-0000AO-4u
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 11:35:37 +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 616bddae-b972-11f0-9d16-b5c5bf9af7f9;
 Tue, 04 Nov 2025 12:35:36 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3f99ac9acc4so4770053f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 04 Nov 2025 03:35: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: 616bddae-b972-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762256135; x=1762860935; 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=FEmvEJ569yU5RcglEclTpCH8Bhz3hNTAvll9P58zPAs=;
        b=aBQtR0/W3HfgtJ1jTuZ7OrPLH2OlcHojFIAM+9iNaWj5CG0JTS6xC7GwXFa1xbAUD4
         P8/Z4xroqs5J44KsFerlxuKgXXw1LmUeRtLn/pIlX4YHrHlTbz1QvKJfWkzWCDZL5OD+
         SoCGtWqs+R4gNOdTvNuoP85MrJW9FKpMm8eN+TNaseHGLZgjGr6p64nx+mIA4qa7Wuo9
         NdXemH6R41A3KsP3VV+KdhVLuCuAvJWsvRuDG7sP6bp3kJtvfah00YkRVg+CcODebGsO
         m1y8zP926NDEdlspdcYsXrEZO1gLiRaFDQEGQKHPTUixgQ0eDXlnn5qHWQ5us832WT9O
         JMbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762256135; x=1762860935;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=FEmvEJ569yU5RcglEclTpCH8Bhz3hNTAvll9P58zPAs=;
        b=Kxxb6XrE5p0RZYKW6N09H0sxE3rYnFci2spT4tcMDCsCvZmImdoNMUNSxgAbrK9poZ
         Ht06kvaE+8W7KuC7IWrVJ4PWVovw+2j9ggFKDgw7Tv+ZPq2ZOkNDZhdpFOLJBmCnO6G6
         5Y82xnGE+Vy1QWCIj5MBNJBdb0zK6Jeff3HxpLruz0LOKLZAq/tqqRCTeSEbwS0e+Pov
         HLEAX4/cOODo0HLQfnGOngw0EhVRv/2H3dO89xWMC8Xqu0Y639lTSxDzpU0MnZFr78Uv
         SERKj75dvTARv24SAPhaUkyjXDYgWU97PcZSJvkPy+zdhSYkf5NCJr7Bjs/NbBBYh9Ps
         2UAg==
X-Forwarded-Encrypted: i=1; AJvYcCXfizLyOMWJ4EmvUc/+SJF1nNEXRbZCyJ1o/kOOt1nyRg3KVjug4c5j8kSWY1+aK+6auuJCAy22Q5U=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw1Y+ouyq9W4pp3u5Lhv5y3EVYKNSrVDZEHIIvK5yhoZQGNu8zX
	TRP6kpI0Z6VpmZSDvQEBctOdHOOXr/v4hASTduUPJrLw24XC5vMJekPQ5KC8MPaRALT6EfyfHit
	xvCL8g5AufCuKUBKYL/+zCorCMLcdbVs=
X-Gm-Gg: ASbGncuOVtBzvuLEam8s7oLPxWlzbiQ0bT6V0GZmRwTLV+TdL8wManyZYE0zy8XemR5
	zyKWWPu8jEHONz6xRIBN82nUXoY1nliHJgLEMe9ulyNbMgmfl0cddP5RRkHtJ6jms+KeTtkTxhV
	MMjn856o/UYiTyhxkq5BSuhUb/jBGL6k1zDWFGd/oLzTFPMff//PzwGiYFAETMG/lv/+Xlmyyq5
	erJuCLqxhWiEdNL9kv6qfiHwuaknwoICTKoxLPBkhdxNOu+tr66F9xtdHpzZZ0iXy9UJKib5OVt
	OR7K6qAloikW7EtonR8kLMg=
X-Google-Smtp-Source: AGHT+IGaLY+JLIYC+PCz6Po1zk8eBb5OGygI2hYtgllNgiV9B/bGVoEyNwBPY0xfwIC/o0NtnoKZzZH3qj4GP3m24jY=
X-Received: by 2002:a05:6000:2387:b0:3e8:9e32:38f8 with SMTP id
 ffacd0b85a97d-429bd683416mr15476430f8f.14.1762256135401; Tue, 04 Nov 2025
 03:35:35 -0800 (PST)
MIME-Version: 1.0
References: <20251023233408.16245-1-samaan.dehghan@gmail.com>
 <f61d5a29-04f0-44cc-bef6-de05f240bbc8@citrix.com> <88bff8bf-195b-432d-97af-317398796d40@xen.org>
In-Reply-To: <88bff8bf-195b-432d-97af-317398796d40@xen.org>
From: Julien Grall <julien.grall.oss@gmail.com>
Date: Tue, 4 Nov 2025 11:35:23 +0000
X-Gm-Features: AWmQ_blyA9YZ4uueKshDcanABVUP5rhPkS6sjLaXVt30rbRZeGmP9GrQ8Rc_Eao
Message-ID: <CAJ=z9a2=jzZSJW9Y8rNhA2L=m9jYF1ziuzoEwH7+DAG+q-HKCA@mail.gmail.com>
Subject: Re: Support of building Xen with Clang/LLVM on Arm?
To: Andrew Cooper <andrew.cooper3@citrix.com>, Saman Dehghan <samaan.dehghan@gmail.com>, 
	xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Wentao Zhang <wentaoz5@illinois.edu>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Le mar. 4 nov. 2025 =C3=A0 10:44, Julien Grall <julien@xen.org> a =C3=A9cri=
t :
> Happy to review any patches for clang support on Arm.

I was told privately that there is a series on the ML to add support
for Clang (see [1]). It looks like there series
had some reviews but needs a new version. Adding Volodymyr as the
original author.

[1] https://lore.kernel.org/all/20241129014850.2852844-1-volodymyr_babchuk@=
epam.com/

>
> Cheers,
>
> --
> Julien Grall
>


From xen-devel-bounces@lists.xenproject.org Tue Nov 04 12:16:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 12:16:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155749.1485168 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGFx2-0005dT-Ku; Tue, 04 Nov 2025 12:15:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155749.1485168; Tue, 04 Nov 2025 12:15: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 1vGFx2-0005dM-IA; Tue, 04 Nov 2025 12:15:52 +0000
Received: by outflank-mailman (input) for mailman id 1155749;
 Tue, 04 Nov 2025 12:15: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=fmA7=5M=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vGFx1-0005dG-JL
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 12:15:51 +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 ffe24194-b977-11f0-9d16-b5c5bf9af7f9;
 Tue, 04 Nov 2025 13:15:49 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-47118259fd8so40432875e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 04 Nov 2025 04:15:49 -0800 (PST)
Received: from ?IPV6:2003:e5:870e:1500:7795:3e8a:56c1:ae53?
 (p200300e5870e150077953e8a56c1ae53.dip0.t-ipconnect.de.
 [2003:e5:870e:1500:7795:3e8a:56c1:ae53])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47755932134sm16117985e9.14.2025.11.04.04.15.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 04 Nov 2025 04: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: ffe24194-b977-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762258549; x=1762863349; 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=wscswWET3PTwL3iV6zIY/JDftXaYCff+IoFh0MKXVJY=;
        b=Srx4TS11fqaM8HBT0XTliRfJ3DqQCkdKbEFak2O6b8VGw88hfu1B8QPMafOPWulGK3
         /0R8wvUhG4SLNAy/3efFfZa7dVgS8ZatvTry868+dvahZjjcB623BPtPeV1IuAHm7QN0
         +FBLGEQczfDL2mfcbmuSO0AVGOxLSbA4vHjOENPEx5xMWkmqDY/lAAAWsgJAuhuS8BoR
         ZvADv/xlw3xp1K1TrSDKJXwfvToycOehqk1mxzQKLPJdENkg3lyEpqz3N+LXCra5jkCm
         FUCjrLAcKNJrQcyuHcvZCc6BxO/RZJD2Xq48SSuJHvYQ34x528XYbywV3bIYXfhS3rWN
         kYJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762258549; x=1762863349;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=wscswWET3PTwL3iV6zIY/JDftXaYCff+IoFh0MKXVJY=;
        b=llYwfQhRnlevWFVnneiRpwn0v6b/kRabCe92l5kzKThPDA1zYlWK4xPbHC5NJQFYm2
         bPs/clGu796KMpRoLSAAsxfUtVjCXyaZ0K6Sali/Pm/eoTOJPxDlkrRv8LpcursXlTkL
         D9S1bKs0vFtaQ6WydoKA3GOtSY+q+zWDgbig6nnF/QGENIE/pG/AKIUj6h2lVJVLWX/n
         gPneYWNIfnW/JWYpdYc4yrS5Ok0uPaLYOLSaYWGkuCbISrezW1fkcoBwh1tDSnLkLeQP
         CkvdySP/8Umuaz19wq3ZT+VM5UMdvVV8jc4FRQQJ1dsBeY1w9Lr9yL82ViKq/A1iD5xi
         6BQw==
X-Gm-Message-State: AOJu0YxtoglpFvztwC1Rd6pflC76PkYFa/BYjk3xZkBy+LW8yTr8LItQ
	DFZrhUfVu3Q7HBgrhHF2+Zoor/+zTTnRN88jXiLmsd5j0ikXZ6uZZaz0MylpwoZIz6iM5Vzv4R7
	NMnMQE0A=
X-Gm-Gg: ASbGncvtzPGu8x0UMxFjaG9FjL+X2Ofo2AFqqy/3vwasW0lTf1mxaJi/Jou6UTwj/cj
	p2t8jxDoovpXiUz3Ihq9dwzfXMiLvvOO7kaOCmQMG7zkq2HyjLH3IbqD79vU1h9IC3sATZZdRXk
	sp3xx9hldx8sK5X9SSu6tElkOmiUDEqVLvdMFok2XjnBXkToZBbysnw7z5u/m90oKmkViqAm9PJ
	6cXal4zXuA2gXws+KrwWpDzrRPqHLlkDRDX5Kxx7hQrMArhSBbYc3v0NFrSHYCx2/MBF1noboFW
	cj8XKgqFvwmGSWoVIRDjCL8qNo+aufXrnVdt8U3n4gOLCTEEB0JcJUAf1kdbfpVGbGnB6B5cABR
	Kiph5V4HLHJOxL1vXUImpS15mliNrrcfQqWcXJAFKkWr0uY75duXFjmw4qJ10+rGawO8O5PsjKz
	JcEujzg+lHTokAWvBnTMSgQywqgHH7QHJtIS+mpcFW1p+elv0tXSZmmcj7e1S8PemiHrcKLWn+T
	zHw04xBwo9RXAi9fzAWKz5UEOv3
X-Google-Smtp-Source: AGHT+IFkVFJRuEjiMqFf4/CpARUTY3QXDXo3e5IPbj2An858sDLKMOrylFmN1iMuAJXzI4rmMrIX4w==
X-Received: by 2002:a05:600c:8b66:b0:470:fe3c:a3b7 with SMTP id 5b1f17b1804b1-477307b6157mr147891605e9.5.1762258548783;
        Tue, 04 Nov 2025 04:15:48 -0800 (PST)
Message-ID: <5a3660c9-1b18-4d87-a1f7-efa8d68239d8@suse.com>
Date: Tue, 4 Nov 2025 13:15:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: privcmd: fix ioeventfd/ioreq crashing PV domain
To: Val Packett <val@invisiblethingslab.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <20251015195713.6500-1-val@invisiblethingslab.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: <20251015195713.6500-1-val@invisiblethingslab.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------MxfdmqHibyPmNwfhiQTVXYEi"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------MxfdmqHibyPmNwfhiQTVXYEi
Content-Type: multipart/mixed; boundary="------------qLygUuaIx1nTwKKhMjC4Qs0u";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Val Packett <val@invisiblethingslab.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Message-ID: <5a3660c9-1b18-4d87-a1f7-efa8d68239d8@suse.com>
Subject: Re: [RFC PATCH] xen: privcmd: fix ioeventfd/ioreq crashing PV domain
References: <20251015195713.6500-1-val@invisiblethingslab.com>
In-Reply-To: <20251015195713.6500-1-val@invisiblethingslab.com>

--------------qLygUuaIx1nTwKKhMjC4Qs0u
Content-Type: multipart/mixed; boundary="------------48K2HVhLaEkN2URQigHRKy9r"

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

T24gMTUuMTAuMjUgMjE6NTcsIFZhbCBQYWNrZXR0IHdyb3RlOg0KPiBTdGFydGluZyBhIHZp
cnRpbyBiYWNrZW5kIGluIGEgUFYgZG9tYWluIHdvdWxkIHBhbmljIHRoZSBrZXJuZWwgaW4N
Cj4gYWxsb2NfaW9yZXEsIHRyeWluZyB0byBkZXJlZmVyZW5jZSB2bWEtPnZtX3ByaXZhdGVf
ZGF0YSBhcyBhIHBhZ2VzDQo+IHBvaW50ZXIgd2hlbiBpbiByZWFsaXR5IGl0IHN0YXllZCBh
cyBQUklWX1ZNQV9MT0NLRUQuDQo+IA0KPiBGaXggYnkgYWxsb2NhdGluZyBhIHBhZ2VzIGFy
cmF5IGluIG1tYXBfcmVzb3VyY2UgaW4gdGhlIFBWIGNhc2UsDQo+IGZpbGxpbmcgaXQgd2l0
aCBwYWdlIGluZm8gY29udmVydGVkIGZyb20gdGhlIHBmbiBhcnJheS4gVGhpcyBhbGxvd3MN
Cj4gaW9yZXEgdG8gZnVuY3Rpb24gc3VjY2Vzc2Z1bGx5IHdpdGggYSBiYWNrZW5kIHByb3Zp
ZGVkIGJ5IGEgUFYgZG9tMC4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IFZhbCBQYWNrZXR0IDx2
YWxAaW52aXNpYmxldGhpbmdzbGFiLmNvbT4NCj4gLS0tDQo+IEkndmUgYmVlbiBwb3J0aW5n
IHRoZSB4ZW4tdmhvc3QtZnJvbnRlbmRbMV0gdG8gUXViZXMsIHdoaWNoIHJ1bnMgb24gYW1k
NjQNCj4gYW5kIHdlIChzdGlsbCkgdXNlIFBWIGZvciBkb20wLiBUaGUgeDg2IHBhcnQgZGlk
bid0IGdpdmUgbWUgbXVjaCB0cm91YmxlLA0KPiBidXQgdGhlIGZpcnN0IHRoaW5nIEkgZm91
bmQgd2FzIHRoaXMgY3Jhc2ggZHVlIHRvIHVzaW5nIGEgUFYgZG9tYWluIHRvIGhvc3QNCj4g
dGhlIGJhY2tlbmQuIGFsbG9jX2lvcmVxIHdhcyBkZXJlZmVyZW5jaW5nIHRoZSAnMScgY29u
c3RhbnQgYW5kIHBhbmlja2luZw0KPiB0aGUgZG9tMCBrZXJuZWwuDQo+IA0KPiBJIGZpZ3Vy
ZWQgb3V0IHRoYXQgSSBjYW4gbWFrZSBhIHBhZ2VzIGFycmF5IGluIHRoZSBleHBlY3RlZCBm
b3JtYXQgZnJvbSB0aGUNCj4gcGZuIGFycmF5IHdoZXJlIHRoZSBhY3R1YWwgbWVtb3J5IG1h
cHBpbmcgaGFwcGVucyBmb3IgdGhlIFBWIGNhc2UsIGFuZCB3aXRoDQo+IHRoZSBmaXgsIHRo
ZSBpb3JlcSBwYXJ0IHdvcmtzOiB0aGUgdmhvc3QgZnJvbnRlbmQgcmVwbGllcyB0byB0aGUg
cHJvYmluZw0KPiBzZXF1ZW5jZSBhbmQgdGhlIGd1ZXN0IHJlY29nbml6ZXMgd2hpY2ggdmly
dGlvIGRldmljZSBpcyBiZWluZyBwcm92aWRlZC4NCj4gDQo+IEkgc3RpbGwgaGF2ZSBhbm90
aGVyIHRoaW5nIHRvIGRlYnVnOiB0aGUgTU1JTyBhY2Nlc3NlcyBmcm9tIHRoZSBpbm5lciBk
cml2ZXINCj4gKGUuZy4gdmlydGlvX3JuZykgZG9uJ3QgZ2V0IHRocm91Z2ggdG8gdGhlIHZo
b3N0IHByb3ZpZGVyIChpb2V2ZW50ZmQgZG9lcw0KPiBub3QgZ2V0IG5vdGlmaWVkKSwgYW5k
IG1hbnVhbGx5IGtpY2tpbmcgdGhlIGV2ZW50ZmQgZnJvbSB0aGUgZnJvbnRlbmQNCj4gc2Vl
bXMgdG8gY3Jhc2guLi4gWGVuIGl0c2VsZj8/IChubyBMaW51eCBwYW5pYyBvbiBjb25zb2xl
LCBqdXN0IGEgZnJlZXplIGFuZA0KPiBxdWljayByZWJvb3QgLSB3aWxsIHRyeSB0byBzZXQg
dXAgYSBzZXJpYWwgY29uc29sZSBub3cpDQoNCklNSE8gZm9yIG1ha2luZyB0aGUgTU1JTyBh
Y2Nlc3NlcyB3b3JrIHlvdSdkIG5lZWQgdG8gaW1wbGVtZW50IGlvcmVxLXNlcnZlcg0Kc3Vw
cG9ydCBmb3IgUFYtZG9tYWlucyBpbiB0aGUgaHlwZXJ2aXNvci4gVGhpcyB3aWxsIGJlIGEg
bWFqb3IgZW5kZWF2b3IsIHNvDQpiZWZvcmUgdGFraW5nIHlvdXIgTGludXgga2VybmVsIHBh
dGNoIEknZCBsaWtlIHRvIHNlZSB0aGlzIGNvdmVyZWQuDQoNCj4gQnV0IEkgZmlndXJlZCBJ
J2QgcG9zdCB0aGlzIGFzIGFuIFJGQyBhbHJlYWR5LCBzaW5jZSB0aGUgb3RoZXIgYnVnIG1h
eSBiZQ0KPiB1bnJlbGF0ZWQgYW5kIHRoZSBpb3JlcSBhcmVhIGl0c2VsZiBkb2VzIHdvcmsg
bm93LiBJJ2QgbGlrZSB0byBoZWFyIHNvbWUNCj4gZmVlZGJhY2sgb24gdGhpcyBmcm9tIHBl
b3BsZSB3aG8gYWN0dWFsbHkga25vdyBYZW4gOikNCg0KTXkgbWFpbiBwcm9ibGVtIHdpdGgg
eW91ciBwYXRjaCBpcyB0aGF0IGl0IGlzIGFkZGluZyBhIG1lbW9yeSBhbGxvY2F0aW9uDQpm
b3IgYSB2ZXJ5IHJhcmUgdXNlIGNhc2UgaW1wYWN0aW5nIGFsbCBjdXJyZW50IHVzZXJzIG9m
IHRoYXQgZnVuY3Rpb25hbGl0eS4NCg0KWW91IGNvdWxkIGF2b2lkIHRoYXQgYnkgdXNpbmcg
YSBkaWZmZXJlbnQgaW9jdGwgd2hpY2ggY291bGQgYmUgc2VsZWN0ZWQgYnkNCnNwZWNpZnlp
bmcgYSBuZXcgZmxhZyB3aGVuIGNhbGxpbmcgeGVuZm9yZWlnbm1lbW9yeV9vcGVuKCkgKGhh
dmUgYSBsb29rDQppbnRvIHRoZSBYZW4gc291cmNlcyB1bmRlciB0b29scy9saWJzL2ZvcmVp
Z25tZW1vcnkvY29yZS5jKS4NCg0KDQpKdWVyZ2VuDQo=
--------------48K2HVhLaEkN2URQigHRKy9r
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-----

--------------48K2HVhLaEkN2URQigHRKy9r--

--------------qLygUuaIx1nTwKKhMjC4Qs0u--

--------------MxfdmqHibyPmNwfhiQTVXYEi
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/Ey8FAmkJ7nMFAwAAAAAACgkQsN6d1ii/Ey/O
IAgAmw9Dru6v0Ge8dH1Mbt2yjO5ZKeby3ruLVT9ZRyilhZuJZehjJlRwHolcsRuVBemXhnbgUBbJ
fUUCQdV+VLiQkc180O28aWXNd3BoPAiFD+u1UD5DGcmoqFZKz4oUL6h5tmhWOjILPllAODQvIvAY
puWj88O2ylymiuO946AUJhpp/XMcXe7gSKdrhTWrwC+PVPmanpGFEiWTLRYaJobA1jzkexzI+nH1
PmhvNNXc7Vj8VWICsNL+MrnlExmN/RN9iCqQKo8GVjCT1VyDsG0hDTTRT2DS8fOjchkT7SoXQFDj
yR/hvBEMUPwb5opVSCigsnZ2oEWMFHZ3/DA9YordbA==
=khDL
-----END PGP SIGNATURE-----

--------------MxfdmqHibyPmNwfhiQTVXYEi--


From xen-devel-bounces@lists.xenproject.org Tue Nov 04 14:22:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 14:22:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155764.1485180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGHvN-0003gH-5D; Tue, 04 Nov 2025 14:22:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155764.1485180; Tue, 04 Nov 2025 14:22:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGHvN-0003gA-0Q; Tue, 04 Nov 2025 14:22:17 +0000
Received: by outflank-mailman (input) for mailman id 1155764;
 Tue, 04 Nov 2025 14:22: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=lCGS=5M=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1vGHvL-0003g4-PV
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 14:22:15 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id a56bc9c1-b989-11f0-9d16-b5c5bf9af7f9;
 Tue, 04 Nov 2025 15:22: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 54FA51CE0;
 Tue,  4 Nov 2025 06:22:00 -0800 (PST)
Received: from [10.1.31.151] (unknown [10.1.31.151])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 0BBDF3F694;
 Tue,  4 Nov 2025 06:22: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: a56bc9c1-b989-11f0-9d16-b5c5bf9af7f9
Message-ID: <db8fa60a-4951-4965-a5cc-ff2d0a091af7@arm.com>
Date: Tue, 4 Nov 2025 14:22:05 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Harry Ramsey <harry.ramsey@arm.com>
Subject: Re: [PATCH 2/3] arm: Implement reference counting for overlapping
 regions
To: "Orzel, Michal" <michal.orzel@amd.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: <20251024153719.408806-1-harry.ramsey@arm.com>
 <20251024153719.408806-3-harry.ramsey@arm.com>
 <0e681f9f-a563-4ace-8f58-e80a050608ba@amd.com>
Content-Language: en-GB
In-Reply-To: <0e681f9f-a563-4ace-8f58-e80a050608ba@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hello,

On 04/11/2025 10:21, Orzel, Michal wrote:
> On 24/10/2025 17:37, Harry Ramsey wrote:
>> Implement reference counting to enable overlapping MPU regions.
>> References are incremented and decremented in xen_mpumap_update_entry.
> AFAICT, looking at the code, you would return -EINVAL early on overlap (i.e.
> mpumap_contains_region() returning MPUMAP_REGION_OVERLAP). If so, can you
> clearly explain what this change intend to do and why we need refcounting?
Perhaps overlap is a bit misleading/confusing in this context and 
instead I should have said inclusive regions. Reference counting is used 
in this context to prevent us from attempting to remove a portion of the 
region whilst it is still in use by other regions.
>> A region will be destoryed if the reference count is 0 upon calling
> s/destoryed/destroyed/
>
>> destroy_xen_mappings and if the full region range is specified.
>>
>> Additionally XEN_MPUMAP_ENTRY_SHIFT and XEN_MPUMAP_ENTRY_SHIFT_ZERO are
>> no longer hardcoded and defined inside asm-offsets.c.
>>
>> Signed-off-by: Harry Ramsey<harry.ramsey@arm.com>
>> ---
>>   xen/arch/arm/arm32/asm-offsets.c         |  2 +
>>   xen/arch/arm/arm64/asm-offsets.c         |  2 +
>>   xen/arch/arm/include/asm/arm32/mpu.h     |  2 +
>>   xen/arch/arm/include/asm/arm64/mpu.h     |  2 +
>>   xen/arch/arm/include/asm/mpu/regions.inc | 11 +++-
>>   xen/arch/arm/mpu/mm.c                    | 73 +++++++++++++++++++-----
>>   6 files changed, 77 insertions(+), 15 deletions(-)
>>
>> diff --git a/xen/arch/arm/arm32/asm-offsets.c b/xen/arch/arm/arm32/asm-offsets.c
>> index c203ce269d..951f8d03f3 100644
>> --- a/xen/arch/arm/arm32/asm-offsets.c
>> +++ b/xen/arch/arm/arm32/asm-offsets.c
>> @@ -79,6 +79,8 @@ void __dummy__(void)
>>   #ifdef CONFIG_MPU
>>      DEFINE(XEN_MPUMAP_MASK_sizeof, sizeof(xen_mpumap_mask));
>>      DEFINE(XEN_MPUMAP_sizeof, sizeof(xen_mpumap));
>> +   DEFINE(XEN_MPUMAP_ENTRY_SHIFT, ilog2(sizeof(pr_t)));
>> +   DEFINE(XEN_MPUMAP_ENTRY_ZERO_OFFSET, sizeof(prbar_t) + sizeof(prlar_t));
>>      BLANK();
>>   #endif
>>   }
>> diff --git a/xen/arch/arm/arm64/asm-offsets.c b/xen/arch/arm/arm64/asm-offsets.c
>> index 320289b281..38a3894a3b 100644
>> --- a/xen/arch/arm/arm64/asm-offsets.c
>> +++ b/xen/arch/arm/arm64/asm-offsets.c
>> @@ -73,6 +73,8 @@ void __dummy__(void)
>>   #ifdef CONFIG_MPU
>>      DEFINE(XEN_MPUMAP_MASK_sizeof, sizeof(xen_mpumap_mask));
>>      DEFINE(XEN_MPUMAP_sizeof, sizeof(xen_mpumap));
>> +   DEFINE(XEN_MPUMAP_ENTRY_SHIFT, ilog2(sizeof(pr_t)));
>> +   DEFINE(XEN_MPUMAP_ENTRY_ZERO_OFFSET, sizeof(prbar_t) + sizeof(prlar_t));
>>      BLANK();
>>   #endif
>>   }
>> diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
>> index 0a6930b3a0..137022d922 100644
>> --- a/xen/arch/arm/include/asm/arm32/mpu.h
>> +++ b/xen/arch/arm/include/asm/arm32/mpu.h
>> @@ -39,6 +39,8 @@ typedef union {
>>   typedef struct {
>>       prbar_t prbar;
>>       prlar_t prlar;
>> +    uint8_t refcount;
>> +    uint8_t pad[7];     /* Pad structure to 16 Bytes */
>>   } pr_t;
>>   
>>   #endif /* __ASSEMBLY__ */
>> diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
>> index f0ce344e78..17f62ccaf6 100644
>> --- a/xen/arch/arm/include/asm/arm64/mpu.h
>> +++ b/xen/arch/arm/include/asm/arm64/mpu.h
>> @@ -38,6 +38,8 @@ typedef union {
>>   typedef struct {
>>       prbar_t prbar;
>>       prlar_t prlar;
>> +    uint8_t refcount;
>> +    uint8_t pad[15];    /* Pad structure to 32 Bytes */
>>   } pr_t;
>>   
>>   #endif /* __ASSEMBLY__ */
>> diff --git a/xen/arch/arm/include/asm/mpu/regions.inc b/xen/arch/arm/include/asm/mpu/regions.inc
>> index 23fead3b21..0cdbb17bc3 100644
>> --- a/xen/arch/arm/include/asm/mpu/regions.inc
>> +++ b/xen/arch/arm/include/asm/mpu/regions.inc
>> @@ -14,14 +14,12 @@
>>   #define PRLAR_ELx_EN            0x1
>>   
>>   #ifdef CONFIG_ARM_64
>> -#define XEN_MPUMAP_ENTRY_SHIFT  0x4     /* 16 byte structure */
>>   
>>   .macro store_pair reg1, reg2, dst
>>       stp \reg1, \reg2, [\dst]
>>   .endm
>>   
>>   #else
>> -#define XEN_MPUMAP_ENTRY_SHIFT  0x3     /* 8 byte structure */
>>   
>>   .macro store_pair reg1, reg2, dst
>>       strd  \reg1, \reg2, [\dst]
>> @@ -97,6 +95,15 @@
>>   
>>   3:
>>   
>> +    /* Clear the rest of the xen_mpumap entry. */
>> +#ifdef CONFIG_ARM_64
>> +    stp xzr, xzr, [\base, #XEN_MPUMAP_ENTRY_ZERO_OFFSET]
>> +#else
>> +    mov \prbar, #0
>> +    mov \prlar, #0
>> +    strd \prbar, \prlar, [\base, #XEN_MPUMAP_ENTRY_ZERO_OFFSET]
>> +#endif
>> +
>>       add   \sel, \sel, #1
>>   
>>   1:
>> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
>> index a058db19ef..c5128244b7 100644
>> --- a/xen/arch/arm/mpu/mm.c
>> +++ b/xen/arch/arm/mpu/mm.c
>> @@ -106,6 +106,7 @@ pr_t pr_of_addr(paddr_t base, paddr_t limit, unsigned int flags)
>>       region = (pr_t) {
>>           .prbar = prbar,
>>           .prlar = prlar,
>> +        .refcount = 0,
>>       };
>>   
>>       /* Set base address and limit address. */
>> @@ -170,6 +171,37 @@ int mpumap_contains_region(pr_t *table, uint8_t nr_regions, paddr_t base,
>>       return MPUMAP_REGION_NOTFOUND;
>>   }
>>   
>> +static bool is_mm_attr_match(pr_t *region, unsigned int attributes)
>> +{
>> +    bool ret = true;
>> +
>> +    if ( region->prbar.reg.ro != PAGE_RO_MASK(attributes) )
>> +    {
>> +        printk(XENLOG_WARNING
>> +               "Mismatched Access Permission attributes (%#x0 instead of %#x0)\n",
> Why %#x0 and not %#x?
I will remove this as I do not think it is necessary to understand the 
permission attributes.
>> +               region->prbar.reg.ro, PAGE_RO_MASK(attributes));
>> +        ret = false;
>> +    }
>> +
>> +    if ( region->prbar.reg.xn != PAGE_XN_MASK(attributes) )
>> +    {
>> +        printk(XENLOG_WARNING
>> +               "Mismatched Execute Never attributes (%#x instead of %#x)\n",
>> +               region->prbar.reg.xn, PAGE_XN_MASK(attributes));
>> +        ret = false;
>> +    }
>> +
>> +    if ( region->prlar.reg.ai != PAGE_AI_MASK(attributes) )
>> +    {
>> +        printk(XENLOG_WARNING
>> +               "Mismatched Memory Attribute Index (%#x instead of %#x)\n",
>> +               region->prlar.reg.ai, PAGE_AI_MASK(attributes));
>> +        ret = false;
>> +    }
> What about shareability?
Unless I am mistaken, inside `page.h` we define 8 unique regions which 
have their own sharability/permissions, so if `prlar.reg.ai` does not 
match, the sharability/permissions are incorrect. Thus we should not 
require a seperate check.
>> +
>> +    return ret;
>> +}
>> +
>>   /* Map a frame table to cover physical addresses ps through pe */
>>   void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
>>   {
>> @@ -287,19 +319,19 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
>>       /* Currently we don't support modifying an existing entry. */
>>       if ( flags_has_page_present && (rc >= MPUMAP_REGION_FOUND) )
>>       {
>> -        printk("Modifying an existing entry is not supported\n");
>> -        return -EINVAL;
>> -    }
>> +        if ( !is_mm_attr_match(&xen_mpumap[idx], flags) )
> Do I understand correctly that this change (not mentioned in commit msg) is here
> so that when we call xen_mpumap_update_entry() with existing matching or
> inclusive region we will increment refcount only if the attributes match?
That would be correct, I will update the commit message to provide 
additional context especially with regards to what we mean by allocating 
inclusive regions.
>> +        {
>> +            printk("Modifying an existing entry is not supported\n");
>> +            return -EINVAL;
>> +        }
>>   
>> -    /*
>> -     * Currently, we only support removing/modifying a *WHOLE* MPU memory
>> -     * region. Part-region removal/modification is not supported as in the worst
>> -     * case it will leave two/three fragments behind.
>> -     */
> Hmm, I think that we still don't support removing/modifying regions partially.
> Why is this comment removed?
Sorry, this is a mistake and I will update the comment to reflect to 
better reflect our implementation with reference counting.
>> -    if ( rc == MPUMAP_REGION_INCLUSIVE )
>> -    {
>> -        printk("Part-region removal/modification is not supported\n");
>> -        return -EINVAL;
>> +        /* Check for overflow of refcount before incrementing.  */
>> +        if ( xen_mpumap[idx].refcount == 0xFF )
>> +        {
>> +            printk("Cannot allocate region as it would cause reference overflow\n");
>> +            return -ENOENT;
>> +        }
>> +        xen_mpumap[idx].refcount += 1;
>>       }
>>   
>>       /* We are inserting a mapping => Create new region. */
>> @@ -323,7 +355,22 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
>>               return -EINVAL;
>>           }
>>   
>> -        disable_mpu_region_from_index(idx);
>> +        if ( xen_mpumap[idx].refcount == 0 )
>> +        {
>> +            if (MPUMAP_REGION_FOUND == rc)
> Missing spaces around ().
>
>> +            {
> No need for brackets for single instruction
>
>> +                disable_mpu_region_from_index(idx);
>> +            }
>> +            else
>> +            {
>> +                printk("Cannot remove a partial region\n");
>> +                return -EINVAL;
>> +            }
>> +        }
>> +        else
>> +        {
> Same here.
>
> ~Michal
Thanks for the feedback, I will address the rest of these changes in v2.

Thanks,
Harry Ramsey.


From xen-devel-bounces@lists.xenproject.org Tue Nov 04 16:12:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 16:12:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155822.1485205 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGJeF-0001Se-9h; Tue, 04 Nov 2025 16:12:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155822.1485205; Tue, 04 Nov 2025 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 1vGJeF-0001SX-5k; Tue, 04 Nov 2025 16:12:43 +0000
Received: by outflank-mailman (input) for mailman id 1155822;
 Tue, 04 Nov 2025 16:12: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=oRVh=5M=bounce.vates.tech=bounce-md_30504962.690a25f7.v1-aae3f4366e3e45698dcc63bfaf2be13e@srs-se1.protection.inumbo.net>)
 id 1vGJeE-0001SR-DY
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 16:12:42 +0000
Received: from mail180-3.suw31.mandrillapp.com
 (mail180-3.suw31.mandrillapp.com [198.2.180.3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 16307f2f-b999-11f0-9d16-b5c5bf9af7f9;
 Tue, 04 Nov 2025 17:12:40 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-3.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4d1D4l3XvZzDRHxHy
 for <xen-devel@lists.xenproject.org>; Tue,  4 Nov 2025 16:12:39 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 aae3f4366e3e45698dcc63bfaf2be13e; Tue, 04 Nov 2025 16:12: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: 16307f2f-b999-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1762272759; x=1762542759;
	bh=JVtqe9pbf3JmbyY+Xaghsy9tjFWXb8JpV4OnFNchyo4=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=sn1n3hOcDLdr5MqGMZB1zJA0mhXxFfG2DtHFnx6R2PSLo7qf09P8aDjxMWfhKgS1z
	 35khGb3BnRLAE74snChIn1I38i3FbbKVtBK0zvFadis5VbVxA9/cGC/DwAjlb89WbV
	 Hfpq+sPdAkR6Pb5cMEORY86NznnW89ms2GnTpjkQxY/5J1ReVC/0bL+iXmZjjh5TGU
	 eClCK/8W5ytPLU+sf0TrIgvAluIfjMR28Cp0sCnabldMZ3DrXexnMlEAR6vp/YpW77
	 3PAi/vjY3/BpO9aoGzMjUF9JbdvcA3lmcJeqNiRhLvvvcKI+rJTXiRUc2MiuCnK9ZD
	 cLwOz2YLfJMEA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1762272759; x=1762533259; i=ngoc-tu.dinh@vates.tech;
	bh=JVtqe9pbf3JmbyY+Xaghsy9tjFWXb8JpV4OnFNchyo4=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=tRvrqlOLgMN48SVN5079d/sRJav3lgPcVWgv5EmwqslQHLEWn8uLb69CJ0nl6wnpw
	 Gzuj9DWkrgZiQhTOEq5660EleOtuRkZTMuvIhnE2jsJ3bKdbdGUP76HDSthIsqIWGv
	 OBqknpwme70HnOAE76AlfygxNRADhpknwK4oy55rY0hb091gPlFBiyjk0eZyWDagge
	 Sp++fCfux3/U18NSQXuZJj3xArXpD/ZUuYB1u/YU/9+4GjgAn8oicqCRlY42DuaCyW
	 /EnVRAf9+JqerpcCLQ3UH83XlLJqVBxM03sSjWpBuVW1woq9J0g03d2PHlxEePq23z
	 g4sovjjyepxeA==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[PATCH]=20acpi:=20Set=20TPM2=20LAML=20to=20actual=20log=20area=20size?=
X-Mailer: git-send-email 2.43.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1762272758782
To: xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Message-Id: <20251104161230.22789-1-ngoc-tu.dinh@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.aae3f4366e3e45698dcc63bfaf2be13e?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251104:md
Date: Tue, 04 Nov 2025 16:12:39 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

The LAML field should follow the TCG PFP specification:

The TCG ACPI specification uses the field name "Log Area Minimum
Length", but the field value is the actual log area length reserved by
Platform Firmware, not a lower bound.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 tools/libacpi/build.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/libacpi/build.c b/tools/libacpi/build.c
index 2f29863db1..95188e217e 100644
--- a/tools/libacpi/build.c
+++ b/tools/libacpi/build.c
@@ -473,7 +473,7 @@ static int construct_secondary_tables(struct acpi_ctxt *ctxt,
             tpm2->platform_class = TPM2_ACPI_CLASS_CLIENT;
             tpm2->control_area_address = TPM_CRB_CTRL_REQ;
             tpm2->start_method = TPM2_START_METHOD_CRB;
-            tpm2->log_area_minimum_length = TPM_LOG_AREA_MINIMUM_SIZE;
+            tpm2->log_area_minimum_length = TPM_LOG_SIZE;
             tpm2->log_area_start_address = TPM_LOG_AREA_ADDRESS;
 
             set_checksum(tpm2,
-- 
2.43.0



--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Tue Nov 04 16:57:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 16:57:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155837.1485215 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGKL1-0006fK-KD; Tue, 04 Nov 2025 16:56:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155837.1485215; Tue, 04 Nov 2025 16:56:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGKL1-0006fD-Gq; Tue, 04 Nov 2025 16:56:55 +0000
Received: by outflank-mailman (input) for mailman id 1155837;
 Tue, 04 Nov 2025 16: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=o0RR=5M=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vGKL0-0006f7-6Y
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 16:56:54 +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 403e6aae-b99f-11f0-980a-7dc792cee155;
 Tue, 04 Nov 2025 17:56:48 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4775a52e045so1715265e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 04 Nov 2025 08:56:48 -0800 (PST)
Received: from localhost.localdomain (host-78-149-11-196.as13285.net.
 [78.149.11.196]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-429dc1f5be4sm5372270f8f.31.2025.11.04.08.56.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 04 Nov 2025 08:56: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: 403e6aae-b99f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1762275407; x=1762880207; 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=PHL3jDnrijy5yRgmLMMloMQopIIQXeenL/hLlkisGwk=;
        b=pnP5Zp3fCgxlVVnNcCLMtUXzO2UYEAY21PJtqBSMyyvVpPfPnFVOgvu2lABXOpKQpI
         eBS2DyRPUluoOEDllA2TwSaBMyLQOcGt4R67DzBE/HBJimyZGYlFsg54bUohbXqAUekF
         twdDbmYWk3+dBEvsLybVqsc/XK0j/nb0kuFK8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762275407; x=1762880207;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=PHL3jDnrijy5yRgmLMMloMQopIIQXeenL/hLlkisGwk=;
        b=IvPI7FiArg98+hGaHcc2GVZlMaATSSbeDXBprDc3ogEqGeXhDPyOF+JyniH97jENFB
         IFuS6id8HHbt74mRsNnWPmwHvQt5tSBO4eKCUlZ2uqZp0BKSkcBAtNrZoIYCApLcrZ90
         FpkhcG2ihOdyoCfn5S/pmezSI+ye69H5BqMIo318rYe0k4ZVJLMQWdVZvfuW4UQmmJfl
         IFZYnwK7u0SNaoIS2dbk1L23ncc7OjqGgDSKTESrtcpo7hwUnMH1p5/xOewfMUkwP+tK
         eAntEvcNzKUxKq+4NsjfVPCGIERNRGhquvUBxp2FIHDmj574E94meU3Ei7WyLSaGicfC
         NiQw==
X-Gm-Message-State: AOJu0Yz9Yinx1c5TjUnLaXve01eC97YmC0P53KtLTMG24tRn3bOtALrF
	+ch/4hCeNd4PBR4y3btwVT5ch7ofMaVFW+1bgHW8NoW7WcVu2Rd+fFdKuAOednpwkgfSULYyO0D
	TuIcQDq4=
X-Gm-Gg: ASbGncu/fz0QGkX2r+FRhXfVVOahZRezB+toiTdxQgLwOHQaMVvMKlxRioj4WAZGfNy
	Bp0FNkIjHt82laLgJZCZuqeTT+BSsUG3hxlzwuB9bCFL9evirATpHW1lgW5qxg7we0Tre7qSS5k
	vNPkQrVvOsYULkYXhxhz+HF0Wz8tkDE9fre7wyRcMBuBLJuhQ03eblNMXtidUXVxKeXdDZDxswt
	EmFyZ1kwS/01hfi/Fsi16bKevH9Yp7sCSlqMxuBU3tJVPGZkk47pWOvth0LXVXTkQiG+54dA4QR
	9kow19WOlA4nPMH2s6YtvIbGUp8wx8M4VvCLxciHH3MAm+NcdSeBaOGMez4CB2NLxki2/HsZxfr
	OuZiB5sLV+IAblK0xq+vm3Oh6YbKZ5bRjohxaysVrfCFNDEHI2IBTvsu75ZuLSjhD79IfeKt4O7
	ch1EDZZ8Kw6ApEcgVrybdUELZofOBqV8riqw0zFDipcGRPls0mtm8=
X-Google-Smtp-Source: AGHT+IHocYewmJrm0tCGAGe5t63rHYN1yb9F9ouw3ks4g052K2chrbt580WbN7ehYhqXVuAX9e2oyQ==
X-Received: by 2002:a05:600c:a00b:b0:46c:adf8:c845 with SMTP id 5b1f17b1804b1-4775cdc705amr107535e9.16.1762275406921;
        Tue, 04 Nov 2025 08:56: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>,
	=?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Christian Lindig <christian.lindig@citrix.com>,
	Rob Hoes <Rob.Hoes@citrix.com>,
	Pau Ruiz Safont <pau.safont@vates.tech>,
	Andrii Sultanov <andriy.sultanov@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH] ocaml/xsd_glue: Fix dynamic linking configuration
Date: Tue,  4 Nov 2025 16:56:44 +0000
Message-Id: <20251104165644.4011663-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The latest oxenstored from Xapi-project fails to start up:

  launch-xenstore[1201]: Starting /usr/sbin/oxenstored...
  launch-xenstore[1222]: Fatal error: exception
    Dynlink.Error (Dynlink.Cannot_open_dll "Dynlink.Error (Dynlink.Cannot_open_dll
    \"Failure(\\\"/usr/libexec/xen//ocaml/xsd_glue/xenctrl_plugin/domain_getinfo_v1.cmxs:
    undefined symbol: xc_domain_getinfo_single\\\")\")")

This is because domain_getinfo_v1.cmxs isn't dynamically linked correctly.
Fill in the correct variable, and remove the xen prefix from xenctrl.

Reported-by: Edwin TÃ¶rÃ¶k <edwin.torok@citrix.com>
Suggested-by: Edwin TÃ¶rÃ¶k <edwin.torok@citrix.com>
Fixes: a6576011a4d2 ("ocaml/libs: Implement a dynamically-loaded plugin for Xenctrl.domain_getinfo")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Christian Lindig <christian.lindig@citrix.com>
CC: Rob Hoes <Rob.Hoes@citrix.com>
CC: Pau Ruiz Safont <pau.safont@vates.tech>
CC: Andrii Sultanov <andriy.sultanov@vates.tech>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

For 4.21.  Without this, we can't proceed with deprecate oxenstored.

This wants backporting to 4.20 too.

Previously this was hidden by oxenstored unexpectedly statically linking
libxenctrl via the ocaml-evtchn bindings, and became exposed when the bindings
were moved to use libxenevtchn.
---
 tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/Makefile b/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/Makefile
index 4be1feacfe24..6356159020c1 100644
--- a/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/Makefile
+++ b/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/Makefile
@@ -11,7 +11,7 @@ OBJS = domain_getinfo_v1
 INTF = $(foreach obj, $(OBJS),$(obj).cmi)
 LIBS = domain_getinfo_v1.cmxa domain_getinfo_v1.cmxs
 
-LIBS_xsd_glue = $(call xenlibs-ldflags-ldlibs,xenctrl)
+LIBS_domain_getinfo_v1 = $(call xenlibs-ldflags-ldlibs,ctrl)
 
 all: $(INTF) $(LIBS) $(PROGRAMS)
 

base-commit: 9632ce6fe5b288244d2550cd2e619a55c5168bf8
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Nov 04 16:58:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 16:58:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155847.1485225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGKMc-0007Aa-VO; Tue, 04 Nov 2025 16:58:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155847.1485225; Tue, 04 Nov 2025 16:58:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGKMc-0007AT-RX; Tue, 04 Nov 2025 16:58:34 +0000
Received: by outflank-mailman (input) for mailman id 1155847;
 Tue, 04 Nov 2025 16:58:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zez4=5M=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vGKMb-0007AL-MD
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 16:58: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 7e45060b-b99f-11f0-9d16-b5c5bf9af7f9;
 Tue, 04 Nov 2025 17:58:32 +0100 (CET)
Received: from DM4PR03MB7015.namprd03.prod.outlook.com (2603:10b6:8:42::8) by
 DM4PR03MB6142.namprd03.prod.outlook.com (2603:10b6:5:395::21) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9275.13; Tue, 4 Nov 2025 16:58:29 +0000
Received: from DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9]) by DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9%3]) with mapi id 15.20.9275.015; Tue, 4 Nov 2025
 16:58: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: 7e45060b-b99f-11f0-9d16-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=keORC+2gmHuo3bKuUZLiLGq+H+DTYgJ64sdHozvWzZyXiKe0bspvlphHakLTqQ1YEOG/JW70bbz8VQM0+7LxJ36hZhj/smvFO4nWPTHjUYLdv0pUvWSdTqVuImU33K6jGtA5JZoxdLlxyh5CIjQt2yGqhcShNZZVn5tnyeHB3Iuhj+/iLZggQmZnw+0kswnSmku8Ssl8RfDNzXKy/fhMp66RHKXZ4F0yjEensmPZa07blHv85OpuOz8AHzbxw3SuSpVFEYCjyPUgEp5Ri5F3E/ZK5qNCf7uUWmtraP243q+V8jVPsoaV4HFnvniurNYo6oTZiIPzboJTqesNJDmpYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vtLpZZ4ESq/ed3WkfxLCgorHzR6X0X+uThKLdpEQba0=;
 b=f1Jur/DfBCZhS2EIFyWmvwv4MPfGTlzMEZjOSdSHEd24CrQrwVQjb7yqFVmz6+F+M+myJcOarm/kgfA8lM9h+yqwp9EJAy6Ob3E3x60AvS4CrtoSCS0jJ2ObE++hGQa+4sQRX9ZKTp54WjMCXCT3RiK7e8NBItoqpgf7GmZUh5V8k947qaoO6h+vSpNCR1mx6mi7dFW0W3Sk13tiMditxCIk+9PZrpd/+3+XhXQg2Mmfqwve+7y6HHGRLQO0u0DC5x3Zo7ZGa5LocFl/ErjDL7EvOhoHc9efiTb3hIhuUTIQsbkkBckY2yoKQUh4UNL//eisRGRFLQVylvlUjWRPEg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vtLpZZ4ESq/ed3WkfxLCgorHzR6X0X+uThKLdpEQba0=;
 b=RVo6k2+QPIWnqB60jBrdKu+CW1gHoam4TH3ec896zyZi3/0gVRNulT1oGpKMsHToOoc2NOdByIyOKPs7YI2Rf14yaXKJoW+44VzleCwNOs5QTows6Urvzdk7NPE39cwdwRyC+jev8n45EFwYcE5azhFxHrmo407nooO6kdwnwTo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <c38676c1-2018-46db-b6a1-50954c5f2c46@citrix.com>
Date: Tue, 4 Nov 2025 16:58:25 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.21] ocaml/xsd_glue: Fix dynamic linking
 configuration
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.com>,
 Christian Lindig <christian.lindig@citrix.com>,
 Rob Hoes <Rob.Hoes@citrix.com>, Pau Ruiz Safont <pau.safont@vates.tech>,
 Andrii Sultanov <andriy.sultanov@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20251104165644.4011663-1-andrew.cooper3@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251104165644.4011663-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0018.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ad::11) To DM4PR03MB7015.namprd03.prod.outlook.com
 (2603:10b6:8:42::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR03MB7015:EE_|DM4PR03MB6142:EE_
X-MS-Office365-Filtering-Correlation-Id: d4bd5f97-8415-49be-26b8-08de1bc360fb
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?NFZRYVB2UElGWWlyQVZZOUJWTmJtUlBsVEV5MjQvNFZybTBmUklpVlh0MHJJ?=
 =?utf-8?B?ZG9jQjJHZEdNQ0ZmWTFpekZFQ3VDVnZjV3lhMGUzN2c3TWM1YnFkM3VTb09v?=
 =?utf-8?B?dWUyOXFHaFNMQ1BmR0JjZTZjaVVxcnpMaGJRc3dnc2xRVkZLRTFsRzNPaVU0?=
 =?utf-8?B?NFZmcnd6SjVoc2lsWTRMNWp1Y09VSlZRMDZaa1h4VGFMYkI1UU9YTEIva0lN?=
 =?utf-8?B?Y2UyaytKTzBvaXhONDlaQk51a05OUk5LQTlJYlppQ0VpZmtHSTNQaHVYV014?=
 =?utf-8?B?VjhTMzlZMHR0WkZXSDBQa1BGaCs3NFp4aXJERE05SWEyb1BPN1VmT2dGRkQy?=
 =?utf-8?B?U25jeU5zeUtKQmJodjhMSWJ2cVFQUG45czBKcDZlenZ1d0hvRzFydTVwYnRS?=
 =?utf-8?B?eFdFZGJMUXJtMUZMcjF2MG5iWEtkTnFDQ1ZEL2xRNUh5QWVRamlxZ0hoOWJw?=
 =?utf-8?B?RUVMckloYTJ3Yk1ZQUFhT0phRHA1ZE15dThnRG1XTTNyTjB4Ukc5SkowVm1k?=
 =?utf-8?B?Z1B5emhzYUlzNkVXd240RDNqMkFYQ0VZUnlRQk40czRzQWtSZGZIeDdZckxw?=
 =?utf-8?B?S2huSGRYVVZMZUNvbWYzSFhkNEc5L3RFLytiUGd3RHh3a1VDUVFvbC9oR2oz?=
 =?utf-8?B?aXh6MGRtRWVzN1kxb0hQYUlUSGJSVzhvekx4TndzZ0k3Y1pDNzhMak1WRVNF?=
 =?utf-8?B?Ny9yVWFWQklsQkw0R01TUjVmM0NoV2NQMHVtK29HRjhiM1hhWTIxYUkxOU0z?=
 =?utf-8?B?YzlJdmU3eERoTG5rUEwzRURIZ2Z0RzhySDRxL1ZwT1duUUtVUnZyL2dERWJq?=
 =?utf-8?B?WXZzNVBXbjZnSTVpaDVDTmcrWUJBc0ZBcEdnVGt5SThadzhOT2MwQW1sWTRL?=
 =?utf-8?B?MVFEemliN2xaN3JvbFRQa1d6VUgwTjlaZWRhOW1kS2hscVhXQWRqUTZwK3I3?=
 =?utf-8?B?NjNiYmdGNU90WjMzV2xYMS85Q1ZiR2xUR2FBamtIUTFDV3pIaU1aYmdWVFcy?=
 =?utf-8?B?dTlhcThwZ2pRMERtakFKZnNkRHpTUEp6cWI4Qktnc3o1eSt4a0NGeWNydnE4?=
 =?utf-8?B?TllxU1QrYlRnK1h2bElzTUk5WnVaVlAvWU5DMmw2K0J2UG96OU1DV2RsN2p3?=
 =?utf-8?B?bXVBR0QyRWtDMVI2ekYwTktMbnVVUlk4UXlJUmUvYVA5eWwyaXRpcWRkT0sx?=
 =?utf-8?B?TjBsaDRMQUMvcHY0S2J0YUtIdlJ5V3JVN3dweTNwb09BdWFMOWRqWGFpWnJ4?=
 =?utf-8?B?UE44OERSUitGTFdaNklWbEw2eGh5dklYekRMUExreFN2UGhJNGVWRm9FNXEz?=
 =?utf-8?B?QWgraVhhc2ljcWNoNzkzYmFIbVZYZStjYjFUbGV4UWNabm01TFV1SExsV200?=
 =?utf-8?B?VWdwRVRJM2ZkbGUrdDVubXArQmtRTzR5UVZBQ3h6NEFTZmF3MFVnM3NzcDc3?=
 =?utf-8?B?dTBJNU1JMkRjaDhGbEoxNlU0eDNYNzl0SE50SHBDQVg5d2I1QVNhRmdlQ3Iw?=
 =?utf-8?B?Yk12RkpXbHN0bCtlazFlVzEyZXhVUzFJSXAvdVhSYVlOYzRlT1NqU2dwb3JO?=
 =?utf-8?B?U0JvZkNnSE56TU4zWDlueUlhV0hUM3kzZHg1NTF3bG5nbGhUSUZMZnZUNy9i?=
 =?utf-8?B?d1ozMWk5VnFZQmlwUG1FWW45VDJEM1ZxaWVic1Z4VWEzaER0bGpYNzREU2c2?=
 =?utf-8?B?dkFUODFoK3RPZG9TQlFJeS84eWVSNmVJZDJiYTR3c3llOE5jbHVTNU54Y2tW?=
 =?utf-8?B?cXZRcjhYek1BRTh1eko1R1J0STF6K0NsVEtmaHc3VkdGeFNrNFFyMEhoeVg1?=
 =?utf-8?B?bzNEK0RaVWFmeXpINGpIOEFLUmtwOXQ4dTR2NUdpZE5HdTZ0aEtaUm1RM0Fi?=
 =?utf-8?B?MWpud2NBOVJIZXRhOXQ2Y0NGNklWbThLRzZ1aXllUUk3dllXNi83YW1SaTda?=
 =?utf-8?Q?xRrHpFkBZkiE19Z5WZozDuXRaletRHyQ?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR03MB7015.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?TlJIdzV5aExjWFEwNWpNcFlzTzR4QnFicktjWWc4SjB6NlBvWjNGTE16Y2d4?=
 =?utf-8?B?Mm56NmRlVmNBMW12R2I2REs4NUx5dm1ZTkxxdzJGVFh1SHVLeHl4L09udjJG?=
 =?utf-8?B?YkFCN0MrQ1BXZ1czOUMyT1lPMVFFS3F1d1cxeUlYbkcrSTRxMzJSS01GdVJz?=
 =?utf-8?B?U1ZldWVIV2dZN3UrU1QzR2NzSHZGTmJVZWMyNWw1V1FONUtqWjNjc2RyVXRr?=
 =?utf-8?B?S2hncTIzWVlLTW1TZmlwczNRWnFtejQ2R0Z1V0Q0UWE3cVl2UmRhUDVUNVdy?=
 =?utf-8?B?MW5TTkZSSWFjMGdhZjhxQ2dzMUcyNXpOTGtUNHU2MDdueUhnYVNnNTMycFdR?=
 =?utf-8?B?QmV0K1VZbVN0SjdLNHdueE1La0psR053MzV1aFF5Z2NwamZuZkdzT1FIdmNs?=
 =?utf-8?B?WHRjMXVjMktuMWRFM3Q0dG15ZVIrT0dBNFZSeE9ET09uUDk3Y0FINEVCYUFk?=
 =?utf-8?B?RXpTODFZa2tTd2k1NnlDalR6czBzeFhlZERGY21RQkYrM3Rua1lyb1RLUW9y?=
 =?utf-8?B?c2h3N2hSSFoyZUtOSlQySFBuQWtkV01NNERMMWNPVDhlSFM5NkduL0tmZjJG?=
 =?utf-8?B?aTJMTlBvQ3NrbitJVjc4MzFZZjJ2aEtRKzdkNDcyVXNURVVhSnZiU1lOTUw5?=
 =?utf-8?B?bmhEdGFkOFB1cUthRWlBWUxSSkJVczR4N3lhNGhJc1U5KzZhYm1aUW81Y0d6?=
 =?utf-8?B?RmFlNEoyVytRa3JvT1o2ZTRBL3dqNUE1alVRa2g1bW8zVnlrSHBQSVgvZmNU?=
 =?utf-8?B?VTgrVTVXNnE4RTdyTWR1aXdsQXV6M0ptK0VLeXZEak16QjM2T21weFRjV2Nt?=
 =?utf-8?B?Wnk2amlKU3VNV09OZU10UVV0N2VHcVNVUmNqR1N4ZzZyamlkYUhpTHZyVjlE?=
 =?utf-8?B?R2M3ckJBZWxjUEVtbGFVcFBpZy83bWhTcU85UXBDdmZscy9zdy96WlIvOVFr?=
 =?utf-8?B?ZlgyTnNoQ1UzdzVxOHA3d29tZm90WWcreEtUZFoxNmNaNGxDazJYNFBKUnhz?=
 =?utf-8?B?UFdPZkxMWmJqOGpHZ3h0cE5IejVhcXBJKzJCQnpHbXliWFViWnZ3OGpaMFBp?=
 =?utf-8?B?am9kVjVJM29KZVJmcE1wQjQ3K3BTcCt4TUpPZ0FzVlJFd2hVWVBHZElWb3F6?=
 =?utf-8?B?ajBDbmN0SlNNZll2YzBraWw1SWQrV3ZwTlhLa3gxdXFDM2UyVHRJME1xajRS?=
 =?utf-8?B?RWdzTUpXemt2SXErZ01zczQvR04wVlVXMGZpVFBLRkRBTThEQXVzbFlpRnhl?=
 =?utf-8?B?ZnFoNS9oRWxIVzI0NmRKc2E2cVRNM0RhTnQyandpQk4zeUhWRitwcUZrVlVR?=
 =?utf-8?B?VHAzMEtCL1cwdS8zUytrbkNjUmRyRWs1dWJqVFd0QkhLVmdsc1UycjhKMVBJ?=
 =?utf-8?B?S25Wc25qYllrL29KMXU5eW40aHFnQktqTVF0MWl0UVkzcEVMRDNjYWlubitS?=
 =?utf-8?B?dHlmYnZnbjh6NDMrSzdQcjJiL0NSNjNWakdOdVlvTEk4cW1qV21ld3c2OFBm?=
 =?utf-8?B?RTFOeStNQ1lOTmpQRXI5OWZ2WWJOU0FrYzIvTlBwSFpKVUFjZnRoR3lmVmh4?=
 =?utf-8?B?cUV0RzVYaGNmRmNVM3lLVXgycU9uVE8zdEk3c3BxMFhjYWo1ZE9BSlQ5KzlR?=
 =?utf-8?B?U3lzb3hteW03UVN3R3pYL3hrNjdkWkdKbVpJT21kbkl4UlNEYVZ2UDA3Zmgv?=
 =?utf-8?B?dDNxbVNNOEQzSEMxWmc1c3FvZW5IdElOcUE1L2NoS2ZQSFRBSVFOVlY4MUgv?=
 =?utf-8?B?dklhTXJNY1paS3lEb012R2svaFdtT0s2MDF0eGtydnpOWjhkWGxURDNDbXBR?=
 =?utf-8?B?cHVIVnVCaGJQc1l2ZmtXUjl2ZjAvZUlmRlR6Rzl5TGdjWlZWd3RHVTVCUlN5?=
 =?utf-8?B?Y1JTUXRXLzU2R2hiR0dLWXRPSjNPR2I0SDFKbVJGbXlwMThxUHdPVFhSK2w4?=
 =?utf-8?B?MTNVT1lTeGEzK2Y1MnE4U3owWS9xdTJqTTZidTFnN05LMUlIWFc2Tmx1V0FK?=
 =?utf-8?B?S0QvWlc0SFNTbmZaTlQyRjZFc3BGa1kvakpkZ213NE55QTIzNHpTT05WTzBo?=
 =?utf-8?B?SlZmaVJXdHgxaEtpNFIxMjhKaGxiM2Q0WmhqNzBkZUtsZG1vcElzU25kV1Vq?=
 =?utf-8?B?MUhzNHpPNzdqR05CRFlGMG9qcCtPS1pBaS8ycTdnMzVjenlqZEt1QXZDRnhC?=
 =?utf-8?B?eEE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d4bd5f97-8415-49be-26b8-08de1bc360fb
X-MS-Exchange-CrossTenant-AuthSource: DM4PR03MB7015.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2025 16:58:29.6718
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hh70mfxD60k2Pej2SNuTbEKDz/AQJiaU+8LQwL+js/2U6n2QsWFCjDGZvd7YgGxm6ktzf8TkeSo9Wy5fZfo6z2ONxDz71yNPL/vX/MX+zm4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6142

Sorry, forgot the for-4.21 in the subject.

~Andrew

On 04/11/2025 4:56 pm, Andrew Cooper wrote:
> The latest oxenstored from Xapi-project fails to start up:
>
>   launch-xenstore[1201]: Starting /usr/sbin/oxenstored...
>   launch-xenstore[1222]: Fatal error: exception
>     Dynlink.Error (Dynlink.Cannot_open_dll "Dynlink.Error (Dynlink.Cannot_open_dll
>     \"Failure(\\\"/usr/libexec/xen//ocaml/xsd_glue/xenctrl_plugin/domain_getinfo_v1.cmxs:
>     undefined symbol: xc_domain_getinfo_single\\\")\")")
>
> This is because domain_getinfo_v1.cmxs isn't dynamically linked correctly.
> Fill in the correct variable, and remove the xen prefix from xenctrl.
>
> Reported-by: Edwin TÃ¶rÃ¶k <edwin.torok@citrix.com>
> Suggested-by: Edwin TÃ¶rÃ¶k <edwin.torok@citrix.com>
> Fixes: a6576011a4d2 ("ocaml/libs: Implement a dynamically-loaded plugin for Xenctrl.domain_getinfo")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Christian Lindig <christian.lindig@citrix.com>
> CC: Rob Hoes <Rob.Hoes@citrix.com>
> CC: Pau Ruiz Safont <pau.safont@vates.tech>
> CC: Andrii Sultanov <andriy.sultanov@vates.tech>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>
> For 4.21.  Without this, we can't proceed with deprecate oxenstored.
>
> This wants backporting to 4.20 too.
>
> Previously this was hidden by oxenstored unexpectedly statically linking
> libxenctrl via the ocaml-evtchn bindings, and became exposed when the bindings
> were moved to use libxenevtchn.
> ---
>  tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/Makefile b/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/Makefile
> index 4be1feacfe24..6356159020c1 100644
> --- a/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/Makefile
> +++ b/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/Makefile
> @@ -11,7 +11,7 @@ OBJS = domain_getinfo_v1
>  INTF = $(foreach obj, $(OBJS),$(obj).cmi)
>  LIBS = domain_getinfo_v1.cmxa domain_getinfo_v1.cmxs
>  
> -LIBS_xsd_glue = $(call xenlibs-ldflags-ldlibs,xenctrl)
> +LIBS_domain_getinfo_v1 = $(call xenlibs-ldflags-ldlibs,ctrl)
>  
>  all: $(INTF) $(LIBS) $(PROGRAMS)
>  
>
> base-commit: 9632ce6fe5b288244d2550cd2e619a55c5168bf8



From xen-devel-bounces@lists.xenproject.org Tue Nov 04 17:08:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 17:08:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155857.1485235 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGKVr-0000VY-QQ; Tue, 04 Nov 2025 17:08:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155857.1485235; Tue, 04 Nov 2025 17:08:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGKVr-0000VR-Mp; Tue, 04 Nov 2025 17:08:07 +0000
Received: by outflank-mailman (input) for mailman id 1155857;
 Tue, 04 Nov 2025 17:08: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=zez4=5M=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vGKVq-0000VL-5p
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 17:08:06 +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 d2541977-b9a0-11f0-980a-7dc792cee155;
 Tue, 04 Nov 2025 18:08:03 +0100 (CET)
Received: from DM4PR03MB7015.namprd03.prod.outlook.com (2603:10b6:8:42::8) by
 MW4PR03MB6620.namprd03.prod.outlook.com (2603:10b6:303:12b::8) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9275.16; Tue, 4 Nov 2025 17:07:58 +0000
Received: from DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9]) by DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9%3]) with mapi id 15.20.9275.015; Tue, 4 Nov 2025
 17:07: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: d2541977-b9a0-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=S9y7Xq+k5/PA0OuWdqauTO76Bts3L+8aCwz+xCOaqFKJ75IsYRC/8seXqz+xvHBHNV/RIzq9NAuZzj41JWCthUj9lTlHT89OIDhvDM/cc6s5BPnrL+7WLxJC0WJ/CrI7NMEbWRrjl7juyK73Ak65ql/fCp3T12ivnYU1/tV1bSufk9W1HsT0DaEoBMccl4pD11oIHMKfl94v8oc9+D8HMNlECIDCiysHZ5KVOoPhcl3NKeoI8c4fSReuQ3So1p1Xc2P75CFD6T1Fr0hxIquE+1dNbRmiOP3bhuED7iVkcvuDgSHSt9Myr0oLTkOHol3CGNOTj84nqE/EGi4VlNsIHA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LfVdt6loshCTO2dVGLlMJQ477HgRFTE0fo6Gv6XKKFM=;
 b=mcpM6AxKO8GNhwJGSmmsOTjOmcfHEgWQvEOcuLp7iXOToXLmYPqX6CsMD+QVOPGafQZzAGIjTRShzTeDDRr++2rEWMO332LSdFJuUkc0iKOd1DtGOt9HUf4bvAN5T1a1GLv4rRB7+p/1YG2BkEWNdjuKgnrbFFrW5Ih1kPvXoxnVbvPNdTCzrYANYD462taBg7tR+2QYXAGmOrMbbotdOfUOOF3SB4ZTCiO0jJgXy9qdNLJhZkM1mM4B2ykSeWn9R1QajIzAnAekGTyT+kSgZUalr9VzrfQ5X67eb9Q7vIF2g6mlf5pwE9ePZoc92T1W8pER6azrTvwMPskr7HUdCg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LfVdt6loshCTO2dVGLlMJQ477HgRFTE0fo6Gv6XKKFM=;
 b=A6m5fgoxfDOT6cTbq+NCZZWn+vHaZO7s5XlFt80zSVuvtYv0Kl1OHe5tcj7t/hR2f6fIvNpF2f95I0SFlNw+ayhvSkCSZIK+OkmtwnY+BPmqxu+99l+XXhO6SAkwA2zg9l4YLr9FAAez7dEyfVstyJhu81rr/QeQ48FTcFjBtk4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <fa368639-41f4-4e6d-8f43-0e5d774b9add@citrix.com>
Date: Tue, 4 Nov 2025 17:07:55 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] acpi: Set TPM2 LAML to actual log area size
To: Tu Dinh <ngoc-tu.dinh@vates.tech>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Daniel Smith <dpsmith@apertussolutions.com>
References: <20251104161230.22789-1-ngoc-tu.dinh@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251104161230.22789-1-ngoc-tu.dinh@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0221.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a6::10) To DM4PR03MB7015.namprd03.prod.outlook.com
 (2603:10b6:8:42::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR03MB7015:EE_|MW4PR03MB6620:EE_
X-MS-Office365-Filtering-Correlation-Id: 94060008-5556-4e37-08b3-08de1bc4b427
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?NWVVS0lBM2RXakZUWEZydEsyZnpoSzBHM2kzSDRJWW9JeEpkVURGcXFNbU16?=
 =?utf-8?B?bEJ3MXExYkJPaysrWkp0Q01JSUJnbVNnN2Z6UEJvcGVNNi9YTktaaGxLSFVD?=
 =?utf-8?B?bERIKzRpOSs2RUplRUZVZUdHN283aGJEb0w4YytVZmdvMkdjVjJ2dnUrRCtI?=
 =?utf-8?B?eEsveGUxVjQrZTJzZjJ4TjhzdWxCOURrRk15V1lkbWpsUWR5S1luV1F2YWU3?=
 =?utf-8?B?WVRTZEc1bjZ2N3VISld3amRLcStKeTFDV2NyTU9Fa0hjYWNySG9oUEx4eTlJ?=
 =?utf-8?B?Nys2Szk3RWorRzlkcmkrM3RBVVFOdU9ocURVdlNLenJvUWZpUktuODdRN3NH?=
 =?utf-8?B?WTBqRFRqRG9nUmRSZXFzMzZKUUF0dG5xSnpwRjVSV1p5OTYwYWRWVHhYL3U0?=
 =?utf-8?B?Mm54bHRBMmRMOVJXRHFPeXdQSTBaN2xEb2xDNWlJSVlYL1BkOGQ2MDlRVFVW?=
 =?utf-8?B?eGFtek5jRE1XODArMWUyL2pFNkpmZm1pWmJIVnFLUWdkUHNSTGZkdytOTHQ3?=
 =?utf-8?B?RTY2SW15ViswdFpueENML3Y0UXMvYXQ5VUdhLzBlNG5zWFhLaW1iZ2ZNOUJU?=
 =?utf-8?B?dW15bzFNZmdOaFk2bjNvRGdYWXoyUkZidmN4cjBITUV6WVRxck1kKzVxdHA4?=
 =?utf-8?B?OVVVUjByQlpkYjlZL0xBMVgyUG9kNWd3VVFTQ1p6SUlTSlNPMGt1YW9UTEg5?=
 =?utf-8?B?cmpRWEFUR25pYmJVVFZJYVpMQlNTZml0L04wTVlZaUpJV2U0WVFFc212NVFR?=
 =?utf-8?B?VDlTTEpEUS92YnNpbk10UWRFRFFTVm13WU9vOEUveGVHSkNCRGRvL2F0VUVJ?=
 =?utf-8?B?emlJb0dNa0o2OFY3eDlhY1E0WEd2UU1mcHhhUUZVeExBam9Uc1JxdXc2aVhO?=
 =?utf-8?B?Sm5TZSt3VnMxbFZUUjM1WENlL2tUeXk3WHpDOUtBOEw4WXgvL29iOVJzOUpW?=
 =?utf-8?B?SXhHeXhEdUxhVkVqQjZmbWRrWURsUGhrTWw1V2ZYZGN3NmlHUjVEQXBNVThG?=
 =?utf-8?B?TGJpODZpK1lQcU1yUStjOXhmb0xFb1Q0TjlCdnBiencxL1dqcEQrYlBOT2Q5?=
 =?utf-8?B?QlJhcHVlZFdHWk04a2tDTStyRGlldTM1cFBYSHVaaUtBcE1NWkV6TXA5VXFM?=
 =?utf-8?B?d3NkODNmUUhCVXR0N25pLzZvSG90WjB5MlBVNGtvN3NxQnNZZ1ozSXpNS2R6?=
 =?utf-8?B?Y3ZFdHFCZ1dKbml6ZjRpc2lNVXpQNXJaeitpa3JPenpGZC9BTzRSWWZud0gz?=
 =?utf-8?B?V1BwcjRhK0NKdmpMd2M1dzhqUTlsbitYU3VSVmt1Q1YzbldpTmsxL2RLQlhh?=
 =?utf-8?B?ZmYvM3FTNi9IMkhNU2FYSmY3R2dGWTV3VkNFWEVkaVRoZHdIR3FXVlMzY3RO?=
 =?utf-8?B?dExrRm4wY3ZCd2lYSno1bVk1RVpDNkNTZWI0Q2hOTE0xNk85dHFLZkZtRjR6?=
 =?utf-8?B?R2l4dEpnQzZ4ZHROa0M5YkRpSUJPM3BtV1M3ckdiaWNnUHplZzJPb2NOeUgy?=
 =?utf-8?B?VFlKTlk2UWovbXA4U3g0bWx3cXkrWlhNTndKZnI2bTdWUXduMXhRRnN0cWNW?=
 =?utf-8?B?Q0ZNclpJTlFWdG9NblFWYzYxNUdRMmxpRVk4ZmdVWUU4YTZyaXNFZElDMFRS?=
 =?utf-8?B?RytkcXBqdmxJV0NLUkh1clFQeDZud3ZoZGlVaTNYZWFVcWM0SVNKcDNMbXVH?=
 =?utf-8?B?akpMb0psREFPaDFMVGEzZkxTc0d1MEJTWVUzWk5DSldDRXpJaW8ycUppWi9R?=
 =?utf-8?B?cVZFbTY1Rng3WWVnL0k3dlNNZ3AzUW9pT2M4QU9QRjVQbTJJNXJmcGFmSkh3?=
 =?utf-8?B?T3ozVFZSZ3FXM0FjaHd0SEV4SmhuMjd1bGlGcVZ0RCs2TEpITFlQOWh1NlJq?=
 =?utf-8?B?YThEeTBKUHROZ3hndnJJeWNxSUxqbmQ0OWFLYXViRi9uSFlLWnltZVNkNEVR?=
 =?utf-8?Q?LrPDj6a17QjosfMCnXpKgd8mKIa+xR1i?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR03MB7015.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?c2ZXTzRYZTUvK25uQTRCOGo0OVJqekgrT1lQaS9XZTRPL0dob1hYcnd1TnE5?=
 =?utf-8?B?L3VFaDVINTZKQzJzQnZkK0R0N1Blb2dMTHNNU3lIU242dWt2NXNXTnZXTDJU?=
 =?utf-8?B?K0RYUjU4MmlSakllVWlHZkVxMjNVZCt5UlVham5Id3htT2daRncxdXVFZGZv?=
 =?utf-8?B?Z3FtQXhXRSsyWW1qQVZwQmZFeEZBWTgzSnFoQ0FBM3dONnlITmZpYndiZ3g3?=
 =?utf-8?B?R0pkVWwwSWlKQjZETGVjajVxTEtZVnJtZlZFcHpPYi9oOTlCeE1tWk5BL3RX?=
 =?utf-8?B?ZlVCMjJTWEJvenpCRndEQURobENTSGtNdVE2aVRmc2Qzc2ltbFQwMSt0ZVVl?=
 =?utf-8?B?NTU3YTRoQnEyN1ZjdmpXTHRUSDFJZmM2TDlBRHFVU25hUDNRSlJqWnNFQlVY?=
 =?utf-8?B?OVhWSnlpY1VtU2hrbnpRQi9Zazk3eENkNS9zbkRkejloc2RwQitnOXJvM25J?=
 =?utf-8?B?K1daL2RCQ1luUnNJK2hWZ3JHcmkrU0xEcC95TE92dHRDQmY0UUhDK052UCts?=
 =?utf-8?B?TSt2bEtkMXhLMGt5cWFEQkV3bURUN0h3aFBucHpUbncwazlzemJUSkgwSzdr?=
 =?utf-8?B?VWtnQmtmQi84NWRhU0x2dEpSUEo3M204RW9qZmJjd295dE1kaEl2WTFXWUhi?=
 =?utf-8?B?K1dXSDBYNzNoWFZ6TTJhQVZjbjRvbTRpSWR5TysyUllPWTA4RWJFTzU0cWdx?=
 =?utf-8?B?eW01VWVpclZWSXhuc1Yvdno2eC85V0IwWEdRSkNHQmxGMnBIUVV2QitqOWN4?=
 =?utf-8?B?L1Y5RTNDZGxTcWpHYmlnUXJFaHUyNEpkSjhSY1AvMHdVaUptWERUTDF6VjVS?=
 =?utf-8?B?K1FIK2FwdDc5T0lhdzBidGVqZ1pFUERERFlOWVk2WWNPZldjNjEwUEhLdS9T?=
 =?utf-8?B?TGhGamw1c2k2VXo2V3czK0QrdE94enorSE1ZYkRpZld5NFIrcVMxSmFJaGpl?=
 =?utf-8?B?cUJXeTh3ZHpxeUdkUzAxSHY3UWlUR1ZLT0hqdTlhY3BGMDl3QW8va0t4bTVa?=
 =?utf-8?B?YVh0Mkt2Zk55OXhBeGlXMytGLzlBbndoTnQ0NU1BQms2WklZU0x2bU9NeDdS?=
 =?utf-8?B?WXF2cGlBRVVURXlHU25BY0RwVHJTSDRFNndjS3BFM0F5bmwzRkp3Y0RvdU9Y?=
 =?utf-8?B?TllkQVlHcGpSdmVmZlhpaVF0TkM2bWpwNlVHaEpVZU5HRGl2Y3JXcnc0NEMy?=
 =?utf-8?B?TTJRTEJkQmF0UU5lbXVWaU1UWFRxQmpUa05ERE1zMFE2aTg2MlhidFU4Tlhm?=
 =?utf-8?B?VEdXTC84c2p1NW1abmlnb1pCQTJKbTV0T3hRdElnZkN2S0dzM2NNMGZsVW51?=
 =?utf-8?B?WUZOMUEwbTRHNUNKQzdKdDRyZ3AyMGF2RnhFUGIvV3d3NVIySTRpdmZEOUpt?=
 =?utf-8?B?aUxkdHdUR3d0UStWWHlyQldSVnJLenN3Y01sQzhiZ0xkcEQyMjR4ZHp4ZWNt?=
 =?utf-8?B?ZXZaWkQ0R1J6UWVJWEZLa1p2YnZhdE5kaktreUZOZExhZ2Y1SnpublJnRERz?=
 =?utf-8?B?NU5lZUhpT0VOdG1tTm9QVVNwMDVDWU45czU2bHM3bm5GcG1Edk1sSTNOc1ky?=
 =?utf-8?B?b3l0dEt1U1JQTWk1QWNLQWN6N0NSUStSNHNyUmlPazBYSStiZ2s5eXFTUktw?=
 =?utf-8?B?bmQ0RkVJaUNHT2R6MVh1N0VMZlZFdmdaQzFyYVMzb0FIYUY5QnI0UUpRZHpR?=
 =?utf-8?B?SlpGRUJaWnc1SlJqU1oreS90MFNDV2RYWTE1Wjg3OHFER1FZZUJIMnU3TW5G?=
 =?utf-8?B?NWFCb3ZKb1g2ajk3Y3VOVFFjQnZuYWNpcXNIOG8yNmU4a0tDNzhZVzE0K2tD?=
 =?utf-8?B?ZzFrRFp0cmwrSzRQKzBJajQ3QlMvVGU3TE5FTHc1T0ZrL01nYUZTRlRONjJ5?=
 =?utf-8?B?L3kwMk9QTlJhcm5hK0x1YlpzMFB0dVlNbnh3RUl1U1lWaHNBbjYyNURmOGRi?=
 =?utf-8?B?TnFhRFlQeDRDWkNLZmJ2VjhHT0JFN2RsNWtLUExWK1kvYXp3L2xCV0MvUEZh?=
 =?utf-8?B?cUZDa3pUWTBDb1JmUDRQTDhScnJtckc4VExGc21zbjkrREZHdkJrT0txYUtr?=
 =?utf-8?B?YXRjbGp6WHpWRnZQUEp0Ni9CeTFlSHI4RTN1RG5KNEZYTDBBSXBKbU92c04v?=
 =?utf-8?B?UkFOQXBGVFplTFoycTYzQzJqSWl1Q2M1eTRyMzdyVUFVOXhvSllhUmhndlk1?=
 =?utf-8?B?RUE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 94060008-5556-4e37-08b3-08de1bc4b427
X-MS-Exchange-CrossTenant-AuthSource: DM4PR03MB7015.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2025 17:07:58.5668
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: JIREe2PKHn5yooPbw6S7e0dKmycgZv6Js3uy7N4XEXvmRkc7BpfZNaj508tRx7LpImmUPWZchoYZZYH6DRnB6n2vou7sFPzvlDd5UUL50Gk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6620

On 04/11/2025 4:12 pm, Tu Dinh wrote:
> The LAML field should follow the TCG PFP specification:
>
> The TCG ACPI specification uses the field name "Log Area Minimum
> Length", but the field value is the actual log area length reserved by
> Platform Firmware, not a lower bound.
>
> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
> ---
>  tools/libacpi/build.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/libacpi/build.c b/tools/libacpi/build.c
> index 2f29863db1..95188e217e 100644
> --- a/tools/libacpi/build.c
> +++ b/tools/libacpi/build.c
> @@ -473,7 +473,7 @@ static int construct_secondary_tables(struct acpi_ctxt *ctxt,
>              tpm2->platform_class = TPM2_ACPI_CLASS_CLIENT;
>              tpm2->control_area_address = TPM_CRB_CTRL_REQ;
>              tpm2->start_method = TPM2_START_METHOD_CRB;
> -            tpm2->log_area_minimum_length = TPM_LOG_AREA_MINIMUM_SIZE;
> +            tpm2->log_area_minimum_length = TPM_LOG_SIZE;

These happen to be the same number, but in making this change
TPM_LOG_AREA_MINIMUM_SIZE becomes unused.

I suggest we delete the constant while at it.Â  I don't think anything
good can come from having two of them.

Also, as it's no functional change, this is content for 4.22 I presume?

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 04 23:05:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 23:05:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155898.1485245 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGQ5U-0007LR-8Z; Tue, 04 Nov 2025 23:05:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155898.1485245; Tue, 04 Nov 2025 23:05:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGQ5U-0007LJ-3O; Tue, 04 Nov 2025 23:05:16 +0000
Received: by outflank-mailman (input) for mailman id 1155898;
 Tue, 04 Nov 2025 23:05: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=Nkic=5M=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1vGQ5S-0007LD-HC
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 23:05:14 +0000
Received: from mail-yw1-x112b.google.com (mail-yw1-x112b.google.com
 [2607:f8b0:4864:20::112b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b73fe6c2-b9d2-11f0-9d16-b5c5bf9af7f9;
 Wed, 05 Nov 2025 00:05:13 +0100 (CET)
Received: by mail-yw1-x112b.google.com with SMTP id
 00721157ae682-7866c61a9bbso30336277b3.1
 for <xen-devel@lists.xenproject.org>; Tue, 04 Nov 2025 15:05:12 -0800 (PST)
Received: from [10.138.34.110]
 (h96-60-249-169.cncrtn.broadband.dynamic.tds.net. [96.60.249.169])
 by smtp.gmail.com with ESMTPSA id
 00721157ae682-786920322fdsm14068377b3.59.2025.11.04.15.05.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 04 Nov 2025 15:05: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: b73fe6c2-b9d2-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762297511; x=1762902311; 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=n4uxNPFASZ6mE5NQ7OAst+YcBOe9jlu6gH/Ax7o12B4=;
        b=A4D1NEMlP/WYhzc8oY/6dBMNA7xnc5jXacilghqkKuMuzyH1KOGi6eiUMTBkyLJvMm
         nzJsAEtp3PoWew3U20OlxLtszh8T7M/YF2stlkblj8yqr8tNAUUccOI2z9dcYf+Q8YcR
         6LEn+WU6gpM0g4Ew9+oW+i9zgTzH8NIlR9Tjnx+JPyV+MdLo7oQ6Q8BB61evLqRBiZcQ
         O1AUtcaAUJBpVDDXnhneV2jYd6V7/uIipcNgd+uMhFQ1vWiJzU0uNscUDNblmA+ykJGg
         cwUt7c5QvtBHBohvb5ClKBUJ4Ux7vRmTm8+3uYgOFC4Y5ijrDStg9okxcreTWjAqA84i
         VeiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762297511; x=1762902311;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=n4uxNPFASZ6mE5NQ7OAst+YcBOe9jlu6gH/Ax7o12B4=;
        b=VgupzUqsheXtdi51NnlZqmJYHqyI/E+O/90Ya2eAX/6BSAnf2OklgevKKlDZhZRmL6
         PxAXfPNDLouz74MLQflp/zUW3bmhMwHodp6uUtKQncUCOVwkk/P2kqdIxghXtYNmrSLt
         LOCiw4z+dBDfDf8aXEVBZXhVazHw/flYAcyXS4zh1/EbOei4fdwhDgQq7/D3Q9avjrMn
         9dmSjIRYrK5jOtF+0Liee4sGZUpqlQEouXybELrmv0yROfjYDRMbOdYhnsZojIP8GMgi
         CDzD2ybOvn+myK1/9g28WY24fTTqmlXVJjGnprWQk5FtxEeGtwiGabdq2U4IQ1YoR/ia
         efDQ==
X-Gm-Message-State: AOJu0Yy/LFsCkM0/bybdq4HtjNUCb0rFKaLKQYh++ZOdRcS/n3JBiPdP
	9r1Mk3P5i8VX01XF1O25VsqOfTDTTwwyUeLfVJXrUlhjfAiJYZZkzwEg
X-Gm-Gg: ASbGncvnK5yN2q9ix6fC8RSZDy1gsMBxFVO0THAqMJ+mp/vqlHun+737qqjGr/R33gW
	xkK6aAeT7zdIs4aIXe1ZUi8P++sljGf87keNpXdJLwhY7i/NIVm2GY4zchVnIprupoMN34EyvDx
	Hg6/HT9SNoeThSLEhoqe2moCx9zoPNpjxl0FIfeJRViAAmaL6PKXlUzalHdxd1t0wUPlaQAeGmk
	7Mv0UVbyb/yl9yq2LYx85yDJanjMK7LTyPDTac4vhPhAm855WWepNkCzf6I1Fl0hq0bbJXNLBCd
	tmnIWhPJeE8eCs7Gw/q/8cJ8IJfn2lpNHhi6z+L9J7c6BxF1gQJYIpdZqaxggVQcZ7EXJHHQenc
	p/WpltRodY5d7cdcvjy4jadUBYvsT3TvjGHDJWwY7LgSgQh07JiFFRdMY/4S8UoQetMojPZThXL
	6zmDz58i+deIUf2XMV7v5O66yOj0uRmcfbo4xnnglQh4lnVzdRgOgzM7VNxvu1gw/nBQzn4y72i
	61a90oG9bNP3R3D
X-Google-Smtp-Source: AGHT+IEPkHwxGEI6kQc4yozYT9+sT5nDpptc9TNaItjuihRa1scek4PmDJJi5kyajpzyzuOB/34FRg==
X-Received: by 2002:a05:690e:d43:b0:63f:a985:a02e with SMTP id 956f58d0204a3-63fd34bb397mr827931d50.3.1762297510906;
        Tue, 04 Nov 2025 15:05:10 -0800 (PST)
Message-ID: <5c651be7-eac5-4c9e-a209-6db3a06c3d2e@gmail.com>
Date: Tue, 4 Nov 2025 18:05:04 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: privcmd: fix ioeventfd/ioreq crashing PV domain
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 Val Packett <val@invisiblethingslab.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Qubes Developer Mailing List <qubes-devel@googlegroups.com>
References: <20251015195713.6500-1-val@invisiblethingslab.com>
 <5a3660c9-1b18-4d87-a1f7-efa8d68239d8@suse.com>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <5a3660c9-1b18-4d87-a1f7-efa8d68239d8@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------u8e58NBhg0Fe1VXmbFnCu0hr"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------u8e58NBhg0Fe1VXmbFnCu0hr
Content-Type: multipart/mixed; boundary="------------NjOMfyOsKaD4eGFjlTFcA0cE";
 protected-headers="v1"
From: Demi Marie Obenour <demiobenour@gmail.com>
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 Val Packett <val@invisiblethingslab.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Qubes Developer Mailing List <qubes-devel@googlegroups.com>
Message-ID: <5c651be7-eac5-4c9e-a209-6db3a06c3d2e@gmail.com>
Subject: Re: [RFC PATCH] xen: privcmd: fix ioeventfd/ioreq crashing PV domain
References: <20251015195713.6500-1-val@invisiblethingslab.com>
 <5a3660c9-1b18-4d87-a1f7-efa8d68239d8@suse.com>
In-Reply-To: <5a3660c9-1b18-4d87-a1f7-efa8d68239d8@suse.com>
Autocrypt-Gossip: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
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=

--------------NjOMfyOsKaD4eGFjlTFcA0cE
Content-Type: multipart/mixed; boundary="------------FIWwo2ISlVmpMwZYZF2bDdOu"

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

On 11/4/25 07:15, J=C3=BCrgen Gro=C3=9F wrote:
> On 15.10.25 21:57, Val Packett wrote:
>> Starting a virtio backend in a PV domain would panic the kernel in
>> alloc_ioreq, trying to dereference vma->vm_private_data as a pages
>> pointer when in reality it stayed as PRIV_VMA_LOCKED.
>>
>> Fix by allocating a pages array in mmap_resource in the PV case,
>> filling it with page info converted from the pfn array. This allows
>> ioreq to function successfully with a backend provided by a PV dom0.
>>
>> Signed-off-by: Val Packett <val@invisiblethingslab.com>
>> ---
>> I've been porting the xen-vhost-frontend[1] to Qubes, which runs on am=
d64
>> and we (still) use PV for dom0. The x86 part didn't give me much troub=
le,
>> but the first thing I found was this crash due to using a PV domain to=
 host
>> the backend. alloc_ioreq was dereferencing the '1' constant and panick=
ing
>> the dom0 kernel.
>>
>> I figured out that I can make a pages array in the expected format fro=
m the
>> pfn array where the actual memory mapping happens for the PV case, and=
 with
>> the fix, the ioreq part works: the vhost frontend replies to the probi=
ng
>> sequence and the guest recognizes which virtio device is being provide=
d.
>>
>> I still have another thing to debug: the MMIO accesses from the inner =
driver
>> (e.g. virtio_rng) don't get through to the vhost provider (ioeventfd d=
oes
>> not get notified), and manually kicking the eventfd from the frontend
>> seems to crash... Xen itself?? (no Linux panic on console, just a free=
ze and
>> quick reboot - will try to set up a serial console now)
>=20
> IMHO for making the MMIO accesses work you'd need to implement ioreq-se=
rver
> support for PV-domains in the hypervisor. This will be a major endeavor=
, so
> before taking your Linux kernel patch I'd like to see this covered.

Would fixing this be a good use of time, or would it be better to
focus on switching to PVH dom0?  I don't know if it makes sense to
spend effort on PV dom0 when dom0 isn't going to be PV indefinitely.

Edera might well be interested in the PV case, as they run in cloud
VMs without nested virtualization.  That's not relevant to Qubes
OS, though.

>> But I figured I'd post this as an RFC already, since the other bug may=
 be
>> unrelated and the ioreq area itself does work now. I'd like to hear so=
me
>> feedback on this from people who actually know Xen :)
>=20
> My main problem with your patch is that it is adding a memory allocatio=
n
> for a very rare use case impacting all current users of that functional=
ity.
>=20
> You could avoid that by using a different ioctl which could be selected=
 by
> specifying a new flag when calling xenforeignmemory_open() (have a look=

> into the Xen sources under tools/libs/foreignmemory/core.c).

Should there at least be a check to prevent the kernel from crashing?
I'd expect an unsupported use of the API to return an error, not
cause the kernel to oops.
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------FIWwo2ISlVmpMwZYZF2bDdOu
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-----

--------------FIWwo2ISlVmpMwZYZF2bDdOu--

--------------NjOMfyOsKaD4eGFjlTFcA0cE--

--------------u8e58NBhg0Fe1VXmbFnCu0hr
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/sszaHOrMp8lMFAmkKhqEACgkQszaHOrMp
8lPbqw/+OzSl/ujBJbh90IlT1rA2QTr8OLut2noVidcgjKLbGsv04Kut/Z5+BO9g
POneXZzysVRQ6EWM/pP6TddXRi/lGr8VAvdy/Yxm/G/hjH5hmuKvdLJETRJgCVtS
v+PjCibuBpbr9UyHuNRy/uY8/7UxO5CESDSabUf6+szqLYMdJUTFhCJ0iYobk2pw
AT6mEmwjOafRVij6l821HdnivPw2SEhP7lfPukMZtdO5ov3ZLM2VSoPoOfrkGA2g
/b6r4sdb3SLuiZSKjS++4NlP6SmjfhCJwSdiVXxhvaTjMfz02KSh0Xnsc9gYEi6h
ieCAHxIe0vl8NTf0sIObGddr6WN8GhWharjs2Tv0rB18Yl5iUaqf0eDZMAGqD/E4
UTHiW6LVDANxgeeHlXhlfgmO5NXF9waeJufqmIXZmiH65R0nJ7RGEcCuKwMy2yIF
qqisZ+4+zVGOFg160EdjBSxU6pxREamiflILVdDAdinxS1JCa2nFjWmoahv5mkQ1
GPGRAb/vtFlaFKuPIxctNBXvjebkJjAAwUFqzYamb1Bpth0yG/Ug1G0JnL2BpNsK
D7VpMcYuvRJd6p9TggqDG5L1+hb0FXSbp9yv7lxuvQRx6V/HPZpyTzWQ3zpxcfXp
AQj+55l3ibR91DRecLUw+FiUI4Y0mL75smnM0E5jENywHjfTjBw=
=TBk/
-----END PGP SIGNATURE-----

--------------u8e58NBhg0Fe1VXmbFnCu0hr--


From xen-devel-bounces@lists.xenproject.org Tue Nov 04 23:06:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 04 Nov 2025 23:06:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155907.1485255 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGQ6u-0007sE-Fq; Tue, 04 Nov 2025 23:06:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155907.1485255; Tue, 04 Nov 2025 23: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 1vGQ6u-0007s7-DC; Tue, 04 Nov 2025 23:06:44 +0000
Received: by outflank-mailman (input) for mailman id 1155907;
 Tue, 04 Nov 2025 23:06: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=Nkic=5M=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1vGQ6s-0007rz-Ez
 for xen-devel@lists.xenproject.org; Tue, 04 Nov 2025 23:06:42 +0000
Received: from mail-yw1-x1129.google.com (mail-yw1-x1129.google.com
 [2607:f8b0:4864:20::1129])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e9ac9de9-b9d2-11f0-980a-7dc792cee155;
 Wed, 05 Nov 2025 00:06:37 +0100 (CET)
Received: by mail-yw1-x1129.google.com with SMTP id
 00721157ae682-7867497ad2fso5129887b3.0
 for <xen-devel@lists.xenproject.org>; Tue, 04 Nov 2025 15:06:37 -0800 (PST)
Received: from [10.138.34.110]
 (h96-60-249-169.cncrtn.broadband.dynamic.tds.net. [96.60.249.169])
 by smtp.gmail.com with ESMTPSA id
 00721157ae682-78691fe0835sm13873817b3.33.2025.11.04.15.06.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 04 Nov 2025 15:06: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: e9ac9de9-b9d2-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762297596; x=1762902396; 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=h8nsjEpWm+932/rOQOmC6yv6NsJzROe872pxj165bXg=;
        b=iGsqty96VFfm3hzzlTwBB7nx48MoTOcLLhK+eK4g5M4Wk9Ub3/Y3n5LBVq/qCkMI57
         wLZh8RUOZWixgWMMslSLvMfIFRuq4WeEZZeLI5uQvcCFLJhJknl4Mya7dh5KzWvUltxF
         2j96Iv89JQgcjN3QSEsymKvcqyAXW8AnDZUwO7fn96IMWRnSApqB2viq7t1bGHzFtBzz
         6U8YdkfzXAey8HSlB5Yi3MFDmwQCOLdGTtkzhwzX4OWEVlCumZZ20rGh3qkXQKECRBNS
         gXJNPkFC4hyMQlDYEI6Dun1WiHGPTUu2RMmBl5dUDh/qhWfSi1I/2Sw2X50wwTc5TQnF
         MAtg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762297596; x=1762902396;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=h8nsjEpWm+932/rOQOmC6yv6NsJzROe872pxj165bXg=;
        b=BDAq4Zbzs5XGmSFxvdJ+AoTZHTJPRDhjOwCYymnyylVK/L82sSEpgiULI7Opn+HoNh
         7uNWEl81rO9wS3kBl7h2Ui/H0nlf4EOnlPa8DY/nmeRqIths/YiN78NdJD+v/Qy0jrk+
         5dOqh1Evc+3d4Xw435Ck+gk9rm4TNxB4ZmbMDKzENVv5VgVBIVVQTulc4nLRJySSgF1G
         t6WDUBODDjLrijvpRAgi6UwiVY1VfzlAlu8Eqvd57vvqKCYPXPns0HVKL9gcX2fXYEWO
         xXCEpNkQRZxJJWTbo+lj4fYc8qvtFtQGdskxaxTOBSB9ciN/sW9HGd45WVCrPvvTbvnb
         rP0A==
X-Gm-Message-State: AOJu0Yy6Wgadqn9/pnk2S4gXSt1FXEBCdsZJPyidr0pNBWPR9tujdlQS
	3XNDA+8osmDdPBUVxhHwdOd7n5xC//4gyXIYNAAKLdWsB5C0xfemEIl8rd2SFgk6
X-Gm-Gg: ASbGncsPODF4RvTywmJZpUMpbXTuRwOLJe7aliOlSTDG7msVGecCtPavUaTXgkCKax/
	coTOeZawM0W7PfjWLpdEwVvSEsCFyiK6oiRLW3HiWu4L+sgG+5B3an4kcotY0+EcahA/pJMOy9O
	SXhdDWlAUF3lIsNnQmh8+LRgVQs86pH1bYGQaRXnXUkNEoRy+AlHTA8h8OLZbGSL8GKO3MQF0/f
	Xm/38aAGK2aM8WYr8Seu/Xpn/8ubayDj0x9VYkGywtxPXxpHCfPzSexs1TmgDwt9WJn/XpcT2Mi
	0/urpHcATaFplA3hvFs0bEybgmDth9oXmLcc1EiQx7zXNOMxq2lgE++bGEYtbS+SnFLNLeymJ1r
	89HNQjTPDJtunFbMtBZVW4P1cDX6zhFi9q8xuWq4D13lHEECVoZ8fp3r9VXab4UD1GOGAriOC6a
	rDl5lx8RV8crtxCDRh2pwx2q8dkt3Y3+v7CHLtwqufTdde/aVkxicBDWo7HjnRpJLZd3Spj3lWt
	XyxQOntvr4iCNOt
X-Google-Smtp-Source: AGHT+IFT7mj5z4PqBm9q+jOAmIDFX3LuwMpkCOZWbidsuaPwrwi0vnIS9/aJ+lfj03ZZnD0r+OLOag==
X-Received: by 2002:a05:690c:6c0f:b0:786:5be2:d47a with SMTP id 00721157ae682-786a3e5d6a2mr14753497b3.16.1762297595604;
        Tue, 04 Nov 2025 15:06:35 -0800 (PST)
Message-ID: <5dca4413-6a00-4f5e-91b4-22ce71761ac0@gmail.com>
Date: Tue, 4 Nov 2025 18:06:31 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: privcmd: fix ioeventfd/ioreq crashing PV domain
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 Val Packett <val@invisiblethingslab.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <20251015195713.6500-1-val@invisiblethingslab.com>
 <5a3660c9-1b18-4d87-a1f7-efa8d68239d8@suse.com>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <5a3660c9-1b18-4d87-a1f7-efa8d68239d8@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------lwUXbtkUVVHrDSsJZW06KH8b"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------lwUXbtkUVVHrDSsJZW06KH8b
Content-Type: multipart/mixed; boundary="------------kLben7oAu0YpTqsSudaMS4DM";
 protected-headers="v1"
From: Demi Marie Obenour <demiobenour@gmail.com>
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 Val Packett <val@invisiblethingslab.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Message-ID: <5dca4413-6a00-4f5e-91b4-22ce71761ac0@gmail.com>
Subject: Re: [RFC PATCH] xen: privcmd: fix ioeventfd/ioreq crashing PV domain
References: <20251015195713.6500-1-val@invisiblethingslab.com>
 <5a3660c9-1b18-4d87-a1f7-efa8d68239d8@suse.com>
In-Reply-To: <5a3660c9-1b18-4d87-a1f7-efa8d68239d8@suse.com>
Autocrypt-Gossip: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==

--------------kLben7oAu0YpTqsSudaMS4DM
Content-Type: multipart/mixed; boundary="------------YAYmXdpvd49cKJMVdNlq2F5o"

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

On 11/4/25 07:15, J=C3=BCrgen Gro=C3=9F wrote:
> On 15.10.25 21:57, Val Packett wrote:
>> Starting a virtio backend in a PV domain would panic the kernel in
>> alloc_ioreq, trying to dereference vma->vm_private_data as a pages
>> pointer when in reality it stayed as PRIV_VMA_LOCKED.
>>
>> Fix by allocating a pages array in mmap_resource in the PV case,
>> filling it with page info converted from the pfn array. This allows
>> ioreq to function successfully with a backend provided by a PV dom0.
>>
>> Signed-off-by: Val Packett <val@invisiblethingslab.com>
>> ---
>> I've been porting the xen-vhost-frontend[1] to Qubes, which runs on am=
d64
>> and we (still) use PV for dom0. The x86 part didn't give me much troub=
le,
>> but the first thing I found was this crash due to using a PV domain to=
 host
>> the backend. alloc_ioreq was dereferencing the '1' constant and panick=
ing
>> the dom0 kernel.
>>
>> I figured out that I can make a pages array in the expected format fro=
m the
>> pfn array where the actual memory mapping happens for the PV case, and=
 with
>> the fix, the ioreq part works: the vhost frontend replies to the probi=
ng
>> sequence and the guest recognizes which virtio device is being provide=
d.
>>
>> I still have another thing to debug: the MMIO accesses from the inner =
driver
>> (e.g. virtio_rng) don't get through to the vhost provider (ioeventfd d=
oes
>> not get notified), and manually kicking the eventfd from the frontend
>> seems to crash... Xen itself?? (no Linux panic on console, just a free=
ze and
>> quick reboot - will try to set up a serial console now)
>=20
> IMHO for making the MMIO accesses work you'd need to implement ioreq-se=
rver
> support for PV-domains in the hypervisor. This will be a major endeavor=
, so
> before taking your Linux kernel patch I'd like to see this covered.

Could Xen return an error instead of crashing?
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------YAYmXdpvd49cKJMVdNlq2F5o
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-----

--------------YAYmXdpvd49cKJMVdNlq2F5o--

--------------kLben7oAu0YpTqsSudaMS4DM--

--------------lwUXbtkUVVHrDSsJZW06KH8b
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/sszaHOrMp8lMFAmkKhvgACgkQszaHOrMp
8lP+xg//Ufjee83nAhEO7c5VKE2uZowKCujw2wifcpmwyAQoIHRObjVWUwPpWJ4J
IKb+D9evr2pBdgNYvCswDNzmhgA4KX87V/tREqGxSAZ7Qaz7gy4T4UebngJYycp+
aLaF3YcT0v2dR8VPj2e2PzQaYgq3YDEkXx7IUDepEuWAGbOREE5Q5wRUpT5Khuz6
zVwv++5zpzVl9hPGNOnlQgsGH4L+TtbSmWwZDmfp9zcJB266ps/TLxXJLOwpYXp4
jRsXRJoi9yfyeZ42ft/WpMlZe3qX4mblFUoKO9VI8wLiBHWHXig2IL0UND34HYX5
hMRa674HKSApbIxnkjdfi7M4vgdzhBqdclkBYP7/Vb3ElhMwzvxiC7nQga2Vrz0J
O4hXtsySlhJ4KHRQwRt9uNmPJF9JxCUnXTrjreFsfjjRtzcG8FqPjqG4kU7guX3l
I7Eu66rL+apgREQXpJn5cmgHZ4t0sRJAkB79wXX8BMrCzVsRJ9v03J+YIYpNUl8n
8oWu6MEEhEPpCWdXoYVgjGy+VwKl9esPVUckwR3/2eL4jIpEyViKWhiQ4pcN/0SB
5WF5bHZ1ZD+4tcmiS9lJpLXK/2zJJs9qnVsrCIVsLVbAAkJvlhkJ3mTM2yTT0xO7
1VLrEU8nKWEIyIBxfUOAi2JWPUtLoum55leNjaZdv/l2kWMTD3M=
=NH/R
-----END PGP SIGNATURE-----

--------------lwUXbtkUVVHrDSsJZW06KH8b--


From xen-devel-bounces@lists.xenproject.org Wed Nov 05 00:02:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 00:02:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155925.1485266 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGQzF-0007NN-55; Wed, 05 Nov 2025 00:02:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155925.1485266; Wed, 05 Nov 2025 00: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 1vGQzF-0007NG-0A; Wed, 05 Nov 2025 00:02:53 +0000
Received: by outflank-mailman (input) for mailman id 1155925;
 Wed, 05 Nov 2025 00:02: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=09oY=5N=bounce.vates.tech=bounce-md_30504962.690a9422.v1-8762eb93b4e846d182a0b8b2f4224069@srs-se1.protection.inumbo.net>)
 id 1vGQzC-0007NA-Ht
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 00:02:50 +0000
Received: from mail132-29.atl131.mandrillapp.com
 (mail132-29.atl131.mandrillapp.com [198.2.132.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c0c6cb83-b9da-11f0-980a-7dc792cee155;
 Wed, 05 Nov 2025 01:02:44 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-29.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4d1QW64yM3z7lmFT0
 for <xen-devel@lists.xenproject.org>; Wed,  5 Nov 2025 00:02:42 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 8762eb93b4e846d182a0b8b2f4224069; Wed, 05 Nov 2025 00:02: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: c0c6cb83-b9da-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1762300962; x=1762570962;
	bh=GOeejd4Z1hffN8ONQg2k3fMMI9NhYPCGOfRt4h2Y+g4=;
	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=HNHuCkFjRJ6dat61nJfyqz2dAWkldfxMvfnpTbZOFkxxMmFhRyqyV7ORpMBT+MPup
	 q6x5uNm//A9ODbyNP/l2p4Fx2fLpwXhlYpZg9Wzrt85yCDjSddV0YsVSDljQgOk/+m
	 dg486NkfgziJkMR1YpDmW2JYb2e5yINKfeoM+w+sRfNpf03+BiScoKygJKWM/lZijz
	 mP1vbqseFTlN2YxyldEg9/3Joc5t+kMLtEmaPUpQ/tjT85dDNFzSov+/c7JjE35+0d
	 dLeNSyWIHZLBcyDOJzxUsuWGV6iBlKEyQ48eNbiuJpLxXtwt6RORaSF+U8FLuDvzwb
	 i48+65fKXzQNw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1762300962; x=1762561462; i=ngoc-tu.dinh@vates.tech;
	bh=GOeejd4Z1hffN8ONQg2k3fMMI9NhYPCGOfRt4h2Y+g4=;
	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=GqE9+k9ur8Qsk4bUehkQgDpDgGkgpA3EATAQym2TL1gdcIsxei+knjyxGlqaKo3Qn
	 ik15bsIJ27DeOLWW8sYA1QtE3glQtr0AnF11wtRO9VKh8mLU4C1J2tDkF5A7MgYOwi
	 RhCwSfIfm0cEs6QAEd1/aHsQls7KPuTHBcDAa77ZsNGVmaKiL8fGJ54FlFMUTJ7eR4
	 qBSgYZQAcQylv+o+DzFBiUhBFUFJtEHcOlMOO4r9ozEYJ+dGJV/32RMyWE4qI2ZtUC
	 8reD6mGVe/92kGjflFSasf+gXgzaMs/6Wl01lSHEhAjj9KF1a5uUicZ6dKFEHhRm6G
	 8ACJdlZvcKtiw==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20acpi:=20Set=20TPM2=20LAML=20to=20actual=20log=20area=20size?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1762300961662
Message-Id: <e6dbb09f-e7a3-40e1-83b4-0e0904dfbc1c@vates.tech>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Daniel Smith" <dpsmith@apertussolutions.com>
References: <20251104161230.22789-1-ngoc-tu.dinh@vates.tech> <fa368639-41f4-4e6d-8f43-0e5d774b9add@citrix.com>
In-Reply-To: <fa368639-41f4-4e6d-8f43-0e5d774b9add@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.8762eb93b4e846d182a0b8b2f4224069?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251105:md
Date: Wed, 05 Nov 2025 00:02:42 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 04/11/2025 18:11, Andrew Cooper wrote:
> On 04/11/2025 4:12 pm, Tu Dinh wrote:
>> The LAML field should follow the TCG PFP specification:
>>
>> The TCG ACPI specification uses the field name "Log Area Minimum
>> Length", but the field value is the actual log area length reserved by
>> Platform Firmware, not a lower bound.
>>
>> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
>> ---
>>   tools/libacpi/build.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/tools/libacpi/build.c b/tools/libacpi/build.c
>> index 2f29863db1..95188e217e 100644
>> --- a/tools/libacpi/build.c
>> +++ b/tools/libacpi/build.c
>> @@ -473,7 +473,7 @@ static int construct_secondary_tables(struct acpi_ct=
xt *ctxt,
>>               tpm2->platform_class =3D TPM2_ACPI_CLASS_CLIENT;
>>               tpm2->control_area_address =3D TPM_CRB_CTRL_REQ;
>>               tpm2->start_method =3D TPM2_START_METHOD_CRB;
>> -            tpm2->log_area_minimum_length =3D TPM_LOG_AREA_MINIMUM_SIZE=
;
>> +            tpm2->log_area_minimum_length =3D TPM_LOG_SIZE;
> 
> These happen to be the same number, but in making this change
> TPM_LOG_AREA_MINIMUM_SIZE becomes unused.
> 
> I suggest we delete the constant while at it.=C2=A0 I don't think anythin=
g
> good can come from having two of them.

Agreed.

> 
> Also, as it's no functional change, this is content for 4.22 I presume?
Yes, it's for 4.22.

> 
> ~Andrew
> 



--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Nov 05 00:03:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 00:03:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155933.1485275 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGQzr-0007q2-BB; Wed, 05 Nov 2025 00:03:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155933.1485275; Wed, 05 Nov 2025 00:03: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 1vGQzr-0007pv-8a; Wed, 05 Nov 2025 00:03:31 +0000
Received: by outflank-mailman (input) for mailman id 1155933;
 Wed, 05 Nov 2025 00:03:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Qfcm=5N=bounce.vates.tech=bounce-md_30504962.690a944f.v1-a786ec3e0a7a48769e94054a7ee72a06@srs-se1.protection.inumbo.net>)
 id 1vGQzq-0007eR-Pm
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 00:03:30 +0000
Received: from mail180-3.suw31.mandrillapp.com
 (mail180-3.suw31.mandrillapp.com [198.2.180.3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dbb7c141-b9da-11f0-9d16-b5c5bf9af7f9;
 Wed, 05 Nov 2025 01:03:29 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-3.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4d1QX00VxjzDRHxHs
 for <xen-devel@lists.xenproject.org>; Wed,  5 Nov 2025 00:03:28 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 a786ec3e0a7a48769e94054a7ee72a06; Wed, 05 Nov 2025 00:03:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dbb7c141-b9da-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1762301008; x=1762571008;
	bh=8W92A1Mr2lIJPILYhyF4rcihIHzKMgtpeeOD07WrWMw=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=ELGbczGPUO//Tvhze/KPoq67L6G9H/4RotAJFDVGpzMREftb1s1bIR/ouFZAok0oJ
	 1U5/iW0i9v5AjX4m1wgQUox0Rpb2PIJlN4+nWYITWbSIBVb/s6eDGMegAm/tffSKNO
	 ROaO32irkmNvrXAsDME8vaTFxee3x2wGm1uWV9vSbfLG4Se+XkJ/IuvrWR46nGkyUY
	 wJ+szLmxkYJZTCNTqdQy1/R0q8lGAarCNE7Rq/bI8fS6YsWl/Qb2uPMWuCns4ask8X
	 BL3pAefn3l77ukn38t8qCpqYEvBFSnvYxDdtE0AR3ZBTS7wh2SU91Kub+2Htb35ZRM
	 mbb+hxvh73ypQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1762301008; x=1762561508; i=ngoc-tu.dinh@vates.tech;
	bh=8W92A1Mr2lIJPILYhyF4rcihIHzKMgtpeeOD07WrWMw=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=i9avZkUTsdwFg0cZyegKTWjpvsT5X6H/n8sQp20vrkbq6ssk5uOO7dPwSMOzPfuQr
	 PIbghdEOGf4DIfUdPkFikRpSu+rHbREqS9U0WMTV3nZQB+eXEoij4SPHhnVGrMJetI
	 vOb1P77UG/xaGMet/P5trN43k59CkPf1UgGdJNnkvp1Jb0pVyElGHNdwN3hBtMPQaL
	 iXeDgu5/14jMyrX8cXCHjZSxbg/v7RnhDfyLfQCIuR+dNXyf0LUJ5mOthw4VUmB7ak
	 YxQbghyn+FoNIeLrrYi4gG1vihkBSu8AlXuLRfYoEcJ5YPq9cmiMn1yxTDOCsoUgsA
	 0dhF3RUWOPj2A==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[PATCH=20for-4.22=20v2]=20acpi:=20Set=20TPM2=20LAML=20to=20actual=20log=20area=20size?=
X-Mailer: git-send-email 2.51.0.windows.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1762301007171
To: xen-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Daniel Smith" <dpsmith@apertussolutions.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>
Message-Id: <20251105000310.690-1-ngoc-tu.dinh@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.a786ec3e0a7a48769e94054a7ee72a06?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251105:md
Date: Wed, 05 Nov 2025 00:03:27 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

The LAML field should follow the TCG PFP specification:

The TCG ACPI specification uses the field name "Log Area Minimum
Length", but the field value is the actual log area length reserved by
Platform Firmware, not a lower bound.

Remove the now-unused TPM_LOG_AREA_MINIMUM_SIZE.

No functional change.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
v2: Remove the now-unused TPM_LOG_AREA_MINIMUM_SIZE.
---
 tools/libacpi/acpi2_0.h | 1 -
 tools/libacpi/build.c   | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/tools/libacpi/acpi2_0.h b/tools/libacpi/acpi2_0.h
index 6dfa939a8c..51623e2a8a 100644
--- a/tools/libacpi/acpi2_0.h
+++ b/tools/libacpi/acpi2_0.h
@@ -140,7 +140,6 @@ struct acpi_20_tpm2 {

 #define TPM_LOG_AREA_ADDRESS        0xFED50000

-#define TPM_LOG_AREA_MINIMUM_SIZE   (64 << 10)
 #define TPM_LOG_SIZE                (64 << 10)

 /*
diff --git a/tools/libacpi/build.c b/tools/libacpi/build.c
index 2f29863db1..95188e217e 100644
--- a/tools/libacpi/build.c
+++ b/tools/libacpi/build.c
@@ -473,7 +473,7 @@ static int construct_secondary_tables(struct acpi_ctxt *ctxt,
             tpm2->platform_class = TPM2_ACPI_CLASS_CLIENT;
             tpm2->control_area_address = TPM_CRB_CTRL_REQ;
             tpm2->start_method = TPM2_START_METHOD_CRB;
-            tpm2->log_area_minimum_length = TPM_LOG_AREA_MINIMUM_SIZE;
+            tpm2->log_area_minimum_length = TPM_LOG_SIZE;
             tpm2->log_area_start_address = TPM_LOG_AREA_ADDRESS;

             set_checksum(tpm2,
--
2.43.0


--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Wed Nov 05 00:06:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 00:06:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155947.1485285 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGR2y-00005U-Pt; Wed, 05 Nov 2025 00:06:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155947.1485285; Wed, 05 Nov 2025 00: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 1vGR2y-00005N-MV; Wed, 05 Nov 2025 00:06:44 +0000
Received: by outflank-mailman (input) for mailman id 1155947;
 Wed, 05 Nov 2025 00:06:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8nI1=5N=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vGR2x-00005G-Nh
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 00:06:43 +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 4d796278-b9db-11f0-9d16-b5c5bf9af7f9;
 Wed, 05 Nov 2025 01:06:40 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 1453641A64;
 Wed,  5 Nov 2025 00:06:39 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4BAF5C4CEF8;
 Wed,  5 Nov 2025 00:06: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: 4d796278-b9db-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1762301198;
	bh=048oJY/X5+pJPynN2mvViGRPVrdBmdl4FiN7oOb7hoI=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=YbtboFI+88NS039bx597KP/xhPqb8dWC+zTY66xc8rl+faZVzdkfpQJmr4GiaTprH
	 dzE1KsSuCa5AiH3dhAeQ9Pwni6qaCEQ9aLYnVq9D4C0H35t4/TRkZSqmK3EBq6UFxO
	 ei7KqVc1O7G5NKzF4mL3n/FWg/T64AnArg7yRfA2t1Ob3bYenU9rqIAfSY+exBTXQg
	 M8FLMaFegy3mTigHgLQsRN5CmKSAiIyip/Ce5iJuML1v9D2bcMp0Veq075Ugc+dP39
	 BsUdL8mtSQnBD29daD3i0dJ3KmjUGybl37XtiPBPeECneKUas14cGmZ49Jxv16tqqO
	 oLA6v9wtwvr5w==
Date: Tue, 4 Nov 2025 16:06:37 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
cc: xen-devel@lists.xenproject.org, 
    Community Manager <community.manager@xenproject.org>, 
    committers@xenproject.org
Subject: Re: [PATCH v2] CHANGELOG.md: Update for 4.21 release cycle
In-Reply-To: <1930832802df980a6fe610233265bc238fcfaca4.1758901622.git.oleksii.kurochko@gmail.com>
Message-ID: <alpine.DEB.2.22.394.2511041606310.495094@ubuntu-linux-20-04-desktop>
References: <1930832802df980a6fe610233265bc238fcfaca4.1758901622.git.oleksii.kurochko@gmail.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 26 Sep 2025, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

ARM side:

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


> ---
> Chnages in v2:
> - Drop the following items:
>   - Allow to unflatten DTs.
>   - Basic kexec support to Mini-OS for running in PVH mode.
> ---
>  CHANGELOG.md | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index ca1b43b940..0afd2eeb4b 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -14,6 +14,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>   - Debian Trixie added to CI.  Debian Bullseye retired from CI for RISC-V due
>     to the baseline change.
>   - Linux based device model stubdomains are now fully supported.
> + - Remove libxenctrl usage from xenstored.
>  
>   - On x86:
>     - Restrict the cache flushing done as a result of guest physical memory map
> @@ -38,9 +39,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>       and 28 (Temperature Probe).
>  
>   - On Arm:
> -    - Ability to enable stack protector
> +    - Ability to enable stack protector.
>      - GICv3.1 eSPI (Extended Shared Peripheral Interrupts) support for Xen
>        and guest domains.
> +    - SMMU handling for PCIe passthrough.
> +    - R-Car Gen4 PCI host controller support.
> +    - SCI SCMI SMC single-agent support.
> +    - Initial support for MPU, R82, and R52: reaches the early boot stages.
> +
> + - On RISC-V:
> +    - Basic UART support and external interrupts (APLIC/IMSIC only) handling
> +      for hypervisor mode.
>  
>  ### Removed
>   - On x86:
> -- 
> 2.51.0
> 
> 


From xen-devel-bounces@lists.xenproject.org Wed Nov 05 01:11:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 01:11:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155962.1485294 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGS2w-0007t2-BC; Wed, 05 Nov 2025 01:10:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155962.1485294; Wed, 05 Nov 2025 01: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 1vGS2w-0007sv-82; Wed, 05 Nov 2025 01:10:46 +0000
Received: by outflank-mailman (input) for mailman id 1155962;
 Wed, 05 Nov 2025 01: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=34ny=5N=kernel.org=patchwork-bot+netdevbpf@srs-se1.protection.inumbo.net>)
 id 1vGS2u-0007sp-Lc
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 01:10:44 +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 3f95c9a4-b9e4-11f0-9d16-b5c5bf9af7f9;
 Wed, 05 Nov 2025 02:10:43 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 1D5914488A;
 Wed,  5 Nov 2025 01:10:41 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EACECC116B1;
 Wed,  5 Nov 2025 01:10:40 +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
 EAE14380AA54; Wed,  5 Nov 2025 01:10: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: 3f95c9a4-b9e4-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1762305041;
	bh=Azv52bsIeKWa7QSW1vxmRSp2Zri86Y2h560msvWaCxY=;
	h=Subject:From:Date:References:In-Reply-To:To:Cc:From;
	b=V+vFABp5elm84Ss97Uw9f0l2rd7J1m5ys2OvlQ2FI62hO3sWjbXhw+xsmyE0DkDYq
	 v70qxtIHD4GdSy/IQJ20zPZ2ISx2E6afClcfzrY6axaZGfRMz+inyMudse+ruZO0ei
	 zvz4zH08UjhDXJhbfXpym77/PGd0dbTZB1h6SVVQthgZhZ7yZshY/J+k3FI4FC3UcP
	 wfg5xDe3NJLFJ1cjk7PLdBYTPgrKUO/ZNyRd5zoDBGg1FqcdgASiDNz9GfA9POkq4R
	 mdzFl97BUZORZXX9uCbZb8hr/Pe72T+XrWqvev8nNO0WPpH+M2yeLIsfl5HWech4VE
	 rbZDIvWqx8Ovw==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Subject: Re: [PATCH] xen/netfront: Comment Correction: Fix Spelling Error and
 Description of Queue Quantity Rules
From: patchwork-bot+netdevbpf@kernel.org
Message-Id: 
 <176230501449.3047110.1916177253371882159.git-patchwork-notify@kernel.org>
Date: Wed, 05 Nov 2025 01:10:14 +0000
References: <20251103032212.2462-1-chuguangqing@inspur.com>
In-Reply-To: <20251103032212.2462-1-chuguangqing@inspur.com>
To: Chu Guangqing <chuguangqing@inspur.com>
Cc: jgross@suse.com, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com,
 kuba@kernel.org, pabeni@redhat.com, xen-devel@lists.xenproject.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org

Hello:

This patch was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Mon, 3 Nov 2025 11:22:12 +0800 you wrote:
> The original comments contained spelling errors and incomplete logical
> descriptions, which could easily lead to misunderstandings of the code
> logic. The specific modifications are as follows:
> 
> Correct the spelling error by changing "inut max" to "but not exceed the
> maximum limit";
> 
> [...]

Here is the summary with links:
  - xen/netfront: Comment Correction: Fix Spelling Error and Description of Queue Quantity Rules
    https://git.kernel.org/netdev/net-next/c/52665fcc2241

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 Wed Nov 05 01:17:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 01:17:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155973.1485305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGS93-00004t-1v; Wed, 05 Nov 2025 01:17:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155973.1485305; Wed, 05 Nov 2025 01:17: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 1vGS92-0008WS-Ty; Wed, 05 Nov 2025 01:17:04 +0000
Received: by outflank-mailman (input) for mailman id 1155973;
 Wed, 05 Nov 2025 01:17: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=jb4D=5N=invisiblethingslab.com=val@srs-se1.protection.inumbo.net>)
 id 1vGS90-0008WM-Vm
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 01:17:03 +0000
Received: from fhigh-b2-smtp.messagingengine.com
 (fhigh-b2-smtp.messagingengine.com [202.12.124.153])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1e7a9dbd-b9e5-11f0-980a-7dc792cee155;
 Wed, 05 Nov 2025 02:16:56 +0100 (CET)
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 55C5D7A0050;
 Tue,  4 Nov 2025 20:16:55 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-01.internal (MEProxy); Tue, 04 Nov 2025 20:16:55 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 4 Nov 2025 20:16:53 -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: 1e7a9dbd-b9e5-11f0-980a-7dc792cee155
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=1762305415;
	 x=1762391815; bh=SEiM+3wEoG3UcWjkwb5EEQVRIf6Q/yddrFAfrhkMCNA=; b=
	F6RwuUPbA8hc73G6I44xz23OMsSuvNCPOWjMQKJKX/LAMGVafgD/WfpsnCE/ZJEx
	YH7Ivv4IuCESkS5va4XEEeECW8BqmD7oya557D5Z5x8qbRbu1CIb9yCXUKwts8RN
	UMn5iS2PtipsdVts+FsznDOVgsGjZj3ENNjdrYURdMoeRkjKSXS99G3T3gBOc68L
	l7e892P0GGlNL4iXcvCt8fH7mP1z+X0wpb6gMFFmZ04IHRZLy8hXhsip4XEqIApu
	kaHqpX6OC3f26BIicAwoSddYL8x/EMIPfeZ8K4PZjZco3BitOtWBJ3rjc5TJ5vyF
	sbpA8bz6ljzFPrIH48L5MA==
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=
	1762305415; x=1762391815; bh=SEiM+3wEoG3UcWjkwb5EEQVRIf6Q/yddrFA
	frhkMCNA=; b=0FANijnHuNFiDI/dvuO413x/2Y8jTvwhPziCvpdFmLTX3K/vMbX
	Gd1RMwFjFZuT5G8BstpTNqYDdZmm2MHiavgZm0PCNvvZNZZNDKWdGSFoJ4YAvil1
	iaO5Nt6dnwM+vSrIDdo8TACdO9ZT1KqyWnX8DpEHKBJOIDiHzxcxcQ2KKNPwf1RO
	D2mnjfx1hYruKlQUyaXbGNa9aNqSyGevVhw4VfWPcn5Cca3mo90nLi5DGr+P3+W6
	RgCap2su0XT9CrMr+9KvSzQsQa5KSpzYAAVmuKnHQLVSu2yPMi+kaK/k6bvs6TFD
	sPRH2lf9ThReg12117Ee2qQCvwXcuFC8Qcw==
X-ME-Sender: <xms:hqUKaQw8jD0UY2F3bLhBRgKMxRijr3-dSHhpCN4Hx4Ja3_Q4mt_6Pw>
    <xme:hqUKaVyDWXuoS5y292CJ40gjzaR0Lc4g7d2mnQcRZ-Ik4_Ytns-rWrbDDkOH7ka-q
    kNmps11GG-sk30xrGgbrOI6yhIgFPDcU8cAB57xkFjQ_GbRQmA>
X-ME-Received: <xmr:hqUKaSZTBwf70JAj5lJ8ZQNVrTnxfHlRH-sJXeTY3w1blCV9ErNUyJJZuM_TFUQxXkB8guC5fmLGla6OcxtCw5e-PBIvIFIy>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddukedvheeiucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepkfffgggfuffvvehfhfgjtgesghdtreertddvjeenucfhrhhomhepgggrlhcurfgr
    tghkvghtthcuoehvrghlsehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqne
    cuggftrfgrthhtvghrnhepffegfefguefgheffudegveefhedvhfettdegheefteelvdeg
    vddvjeeujeeufeffnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilh
    hfrhhomhepvhgrlhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggp
    rhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehjghhrohhssh
    esshhushgvrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghl
    rdhorhhgpdhrtghpthhtohepohhlvghkshgrnhgurhgpthihshhhtghhvghnkhhosegvph
    grmhdrtghomhdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhr
    ohhjvggtthdrohhrghdprhgtphhtthhopehlihhnuhigqdhkvghrnhgvlhesvhhgvghrrd
    hkvghrnhgvlhdrohhrgh
X-ME-Proxy: <xmx:hqUKaeXk1jHs6_My5N9w9v-TQjaVxIcVF9LXAXXbVr2v1jArsw0AVQ>
    <xmx:hqUKaYh7ejnfL3QFW1_FhcNAc10t7RecZroqWf-zXn-MEMhUoo_2Vw>
    <xmx:hqUKaUsK9EyajP8sTMPYBskRZpV9ftTeBowiRoh9EncH62V5ewaMrA>
    <xmx:hqUKaZ4eD9U2i7woksrKq2E2VJ0oXpAECWZRljobwjAk_2JTe74F8Q>
    <xmx:h6UKaV4p4piDrc6u0KCBP3xPYz9rJbil7PhKBKeptae2xGBjTrh6PKEM>
Feedback-ID: i001e48d0:Fastmail
Message-ID: <7f73fdfa-2875-4349-9ef6-134e678ac691@invisiblethingslab.com>
Date: Tue, 4 Nov 2025 22:16:44 -0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: privcmd: fix ioeventfd/ioreq crashing PV domain
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <20251015195713.6500-1-val@invisiblethingslab.com>
 <5a3660c9-1b18-4d87-a1f7-efa8d68239d8@suse.com>
Content-Language: en-US
From: Val Packett <val@invisiblethingslab.com>
Autocrypt: addr=val@invisiblethingslab.com; keydata=
 xm8EaFTEiRMFK4EEACIDAwQ+qzawvLuE95iu+QkRqp8P9z6XvFopWtYOaEnYf/nE8KWCnsCD
 jz82tdbKBpmVOdR6ViLD9tzHvaZ1NqZ9mbrszMXq09VfefoCfZp8jnA2yCT8Y4ykmv6902Ne
 NnlkVwrNKFZhbCBQYWNrZXR0IDx2YWxAaW52aXNpYmxldGhpbmdzbGFiLmNvbT7CswQTEwkA
 OxYhBAFMrro+oMGIFPc7Uc87uZxqzalRBQJoVMSJAhsDBQsJCAcCAiICBhUKCQgLAgQWAgMB
 Ah4HAheAAAoJEM87uZxqzalRlIIBf0cujzfSLhvib9iY8LBh8Tirgypm+hJHoY563xhP0YRS
 pmqZ6goIuSGpEKcW5mV3egF/TLLAOjsfroWae4giImTVOJvLOsUycxAP4O5b1Qiy+cCGsHKA
 nCRzrvqnPkyf4OeRznMEaFTEiRIFK4EEACIDAwSffe3tlMmmg3eKVp7SJ+CNZLN0M5qzHSCV
 dBBkIVvEJo+8SDg4jrx/832rxpvMCz2+x7+OHaeBHKafhOWUccYBLKqV/3nBftxCkbzXDbfY
 d02BY9H4wBIn0Y3GnwoIXRgDAQkJwpgEGBMJACAWIQQBTK66PqDBiBT3O1HPO7mcas2pUQUC
 aFTEiQIbDAAKCRDPO7mcas2pUaptAX9f7yUJLGU4C6XjMJvXd8Sz6cGTyxkngPtUyFiNqtad
 /GXBi3vHKYNfSrdqJ8wmZ8MBgOqWaaa1wE4/3qZU8d4RNR8mF7O40WYK/wdf1ycq1uGad8PN
 UDOwAqdfvuF3w8QMPw==
In-Reply-To: <5a3660c9-1b18-4d87-a1f7-efa8d68239d8@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------uCOYCjKINtMrC0LGSUDTrSdy"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------uCOYCjKINtMrC0LGSUDTrSdy
Content-Type: multipart/mixed; boundary="------------9O0x2yHcffwYgUCLOptqRBzs";
 protected-headers="v1"
Message-ID: <7f73fdfa-2875-4349-9ef6-134e678ac691@invisiblethingslab.com>
Date: Tue, 4 Nov 2025 22:16:44 -0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: privcmd: fix ioeventfd/ioreq crashing PV domain
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <20251015195713.6500-1-val@invisiblethingslab.com>
 <5a3660c9-1b18-4d87-a1f7-efa8d68239d8@suse.com>
Content-Language: en-US
From: Val Packett <val@invisiblethingslab.com>
Autocrypt: addr=val@invisiblethingslab.com; keydata=
 xm8EaFTEiRMFK4EEACIDAwQ+qzawvLuE95iu+QkRqp8P9z6XvFopWtYOaEnYf/nE8KWCnsCD
 jz82tdbKBpmVOdR6ViLD9tzHvaZ1NqZ9mbrszMXq09VfefoCfZp8jnA2yCT8Y4ykmv6902Ne
 NnlkVwrNKFZhbCBQYWNrZXR0IDx2YWxAaW52aXNpYmxldGhpbmdzbGFiLmNvbT7CswQTEwkA
 OxYhBAFMrro+oMGIFPc7Uc87uZxqzalRBQJoVMSJAhsDBQsJCAcCAiICBhUKCQgLAgQWAgMB
 Ah4HAheAAAoJEM87uZxqzalRlIIBf0cujzfSLhvib9iY8LBh8Tirgypm+hJHoY563xhP0YRS
 pmqZ6goIuSGpEKcW5mV3egF/TLLAOjsfroWae4giImTVOJvLOsUycxAP4O5b1Qiy+cCGsHKA
 nCRzrvqnPkyf4OeRznMEaFTEiRIFK4EEACIDAwSffe3tlMmmg3eKVp7SJ+CNZLN0M5qzHSCV
 dBBkIVvEJo+8SDg4jrx/832rxpvMCz2+x7+OHaeBHKafhOWUccYBLKqV/3nBftxCkbzXDbfY
 d02BY9H4wBIn0Y3GnwoIXRgDAQkJwpgEGBMJACAWIQQBTK66PqDBiBT3O1HPO7mcas2pUQUC
 aFTEiQIbDAAKCRDPO7mcas2pUaptAX9f7yUJLGU4C6XjMJvXd8Sz6cGTyxkngPtUyFiNqtad
 /GXBi3vHKYNfSrdqJ8wmZ8MBgOqWaaa1wE4/3qZU8d4RNR8mF7O40WYK/wdf1ycq1uGad8PN
 UDOwAqdfvuF3w8QMPw==
In-Reply-To: <5a3660c9-1b18-4d87-a1f7-efa8d68239d8@suse.com>

--------------9O0x2yHcffwYgUCLOptqRBzs
Content-Type: multipart/mixed; boundary="------------T4uhiGdK9N57OX09F48m1Iqu"

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

DQpPbiAxMS80LzI1IDk6MTUgQU0sIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+IE9uIDE1LjEw
LjI1IDIxOjU3LCBWYWwgUGFja2V0dCB3cm90ZToNCj4+IFN0YXJ0aW5nIGEgdmlydGlvIGJh
Y2tlbmQgaW4gYSBQViBkb21haW4gd291bGQgcGFuaWMgdGhlIGtlcm5lbCBpbg0KPj4gYWxs
b2NfaW9yZXEsIHRyeWluZyB0byBkZXJlZmVyZW5jZSB2bWEtPnZtX3ByaXZhdGVfZGF0YSBh
cyBhIHBhZ2VzDQo+PiBwb2ludGVyIHdoZW4gaW4gcmVhbGl0eSBpdCBzdGF5ZWQgYXMgUFJJ
Vl9WTUFfTE9DS0VELg0KPj4NCj4+IEZpeCBieSBhbGxvY2F0aW5nIGEgcGFnZXMgYXJyYXkg
aW4gbW1hcF9yZXNvdXJjZSBpbiB0aGUgUFYgY2FzZSwNCj4+IGZpbGxpbmcgaXQgd2l0aCBw
YWdlIGluZm8gY29udmVydGVkIGZyb20gdGhlIHBmbiBhcnJheS4gVGhpcyBhbGxvd3MNCj4+
IGlvcmVxIHRvIGZ1bmN0aW9uIHN1Y2Nlc3NmdWxseSB3aXRoIGEgYmFja2VuZCBwcm92aWRl
ZCBieSBhIFBWIGRvbTAuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogVmFsIFBhY2tldHQgPHZh
bEBpbnZpc2libGV0aGluZ3NsYWIuY29tPg0KPj4gLS0tDQo+PiBJJ3ZlIGJlZW4gcG9ydGlu
ZyB0aGUgeGVuLXZob3N0LWZyb250ZW5kWzFdIHRvIFF1YmVzLCB3aGljaCBydW5zIG9uIA0K
Pj4gYW1kNjQNCj4+IGFuZCB3ZSAoc3RpbGwpIHVzZSBQViBmb3IgZG9tMC4gVGhlIHg4NiBw
YXJ0IGRpZG4ndCBnaXZlIG1lIG11Y2ggDQo+PiB0cm91YmxlLA0KPj4gYnV0IHRoZSBmaXJz
dCB0aGluZyBJIGZvdW5kIHdhcyB0aGlzIGNyYXNoIGR1ZSB0byB1c2luZyBhIFBWIGRvbWFp
biANCj4+IHRvIGhvc3QNCj4+IHRoZSBiYWNrZW5kLiBhbGxvY19pb3JlcSB3YXMgZGVyZWZl
cmVuY2luZyB0aGUgJzEnIGNvbnN0YW50IGFuZCANCj4+IHBhbmlja2luZw0KPj4gdGhlIGRv
bTAga2VybmVsLg0KPj4NCj4+IEkgZmlndXJlZCBvdXQgdGhhdCBJIGNhbiBtYWtlIGEgcGFn
ZXMgYXJyYXkgaW4gdGhlIGV4cGVjdGVkIGZvcm1hdCANCj4+IGZyb20gdGhlDQo+PiBwZm4g
YXJyYXkgd2hlcmUgdGhlIGFjdHVhbCBtZW1vcnkgbWFwcGluZyBoYXBwZW5zIGZvciB0aGUg
UFYgY2FzZSwgDQo+PiBhbmQgd2l0aA0KPj4gdGhlIGZpeCwgdGhlIGlvcmVxIHBhcnQgd29y
a3M6IHRoZSB2aG9zdCBmcm9udGVuZCByZXBsaWVzIHRvIHRoZSBwcm9iaW5nDQo+PiBzZXF1
ZW5jZSBhbmQgdGhlIGd1ZXN0IHJlY29nbml6ZXMgd2hpY2ggdmlydGlvIGRldmljZSBpcyBi
ZWluZyBwcm92aWRlZC4NCj4+DQo+PiBJIHN0aWxsIGhhdmUgYW5vdGhlciB0aGluZyB0byBk
ZWJ1ZzogdGhlIE1NSU8gYWNjZXNzZXMgZnJvbSB0aGUgaW5uZXIgDQo+PiBkcml2ZXINCj4+
IChlLmcuIHZpcnRpb19ybmcpIGRvbid0IGdldCB0aHJvdWdoIHRvIHRoZSB2aG9zdCBwcm92
aWRlciAoaW9ldmVudGZkIA0KPj4gZG9lcw0KPj4gbm90IGdldCBub3RpZmllZCksIGFuZCBt
YW51YWxseSBraWNraW5nIHRoZSBldmVudGZkIGZyb20gdGhlIGZyb250ZW5kDQo+PiBzZWVt
cyB0byBjcmFzaC4uLiBYZW4gaXRzZWxmPz8gKG5vIExpbnV4IHBhbmljIG9uIGNvbnNvbGUs
IGp1c3QgYSANCj4+IGZyZWV6ZSBhbmQNCj4+IHF1aWNrIHJlYm9vdCAtIHdpbGwgdHJ5IHRv
IHNldCB1cCBhIHNlcmlhbCBjb25zb2xlIG5vdykNCj4NCj4gSU1ITyBmb3IgbWFraW5nIHRo
ZSBNTUlPIGFjY2Vzc2VzIHdvcmsgeW91J2QgbmVlZCB0byBpbXBsZW1lbnQgDQo+IGlvcmVx
LXNlcnZlcg0KPiBzdXBwb3J0IGZvciBQVi1kb21haW5zIGluIHRoZSBoeXBlcnZpc29yLiBU
aGlzIHdpbGwgYmUgYSBtYWpvciANCj4gZW5kZWF2b3IsIHNvDQo+IGJlZm9yZSB0YWtpbmcg
eW91ciBMaW51eCBrZXJuZWwgcGF0Y2ggSSdkIGxpa2UgdG8gc2VlIHRoaXMgY292ZXJlZC4N
Cg0KU29ycnksIEkgd2Fzbid0IGNsZWFyIGVub3VnaC4uIGl0J3MgKm5vdCogdGhhdCBNTUlP
IGFjY2Vzc2VzIGRvbid0IHdvcmsuDQoNCkkgZGVidWdnZWQgdGhpcyBhIGJpdCBtb3JlLCBh
bmQgaXQgdHVybnMgb3V0Og0KDQoxLiB0aGUgcmVhc29uIHdoeSAiaW9ldmVudGZkIGRvZXMg
bm90IGdldCBub3RpZmllZCIgaXMgYmVjYXVzZSBhY2Nlc3NpbmcgDQp0aGUgdmlydGlvIHBh
Z2UgKGFsbG9jYXRlZCB3aXRoIHRoaXMgcHJpdmNtZCBpbnRlcmZhY2UpIGZyb20gdGhlIGtl
cm5lbCANCndhcyBmYWlsaW5nLiBUaGUgZXhjaGFuZ2UgYmV0d2VlbiB0aGUgZ3Vlc3QgZHJp
dmVyIGFuZCB0aGUgdXNlcnNwYWNlIA0KaW9yZXEgc2VydmVyIGhhcyBiZWVuIHdvcmtpbmcg
cGVyZmVjdGx5LCBidXQgdGhlICprZXJuZWwqIGFjY2VzcyAod2hpY2ggDQppcyB3aGF0IG5l
ZWRzIHRoaXMgYHN0cnVjdCBwYWdlYCBhbGxvY2F0aW9uIHdpdGggdGhlIGN1cnJlbnQgY29k
ZSkgd2FzIA0KcmV0dXJuaW5nIG5vbnNlbnNlIGFuZCB0aGUgY2hlY2sgZm9yIHRoZSB2aXJ0
cXVldWUgcmVhZGluZXNzIGZsYWcgd2FzIA0KZmFpbGluZy4NCg0KSSBoYXZlIG5vdGljZWQg
YW5kIGZpeGVkIChsb2NhbGx5KSBhIGJ1ZyBpbiB0aGlzIHBhdGNoOiByZXVzaW5nIHRoZSAN
CmBwZm5zYCBhbGxvY2F0aW9uIGZvciBgZXJyc2AgaW7CoGB4ZW5fcmVtYXBfZG9tYWluX21m
bl9hcnJheWDCoG1lYW50IHRoYXQgDQp0aGUgYWN0dWFsIHBmbiB2YWx1ZSB3YXMgb3Zlcndy
aXR0ZW4gd2l0aCBhIHplcm8gKCJzdWNjZXNzIiBlcnJvciBjb2RlKSwgDQphbmQgdGhhdCdz
IHRoZSBgcGZuYCBJIHdhcyB1c2luZy4NCg0KU3RpbGwsIHRoZSBtZW1vcnkgdmlzaWJsZSBp
biB0aGUgZG9tMCBrZXJuZWwgYXQgdGhhdCBwZm4gaXMgbm90IHRoZSBzYW1lIA0KYWxsb2Nh
dGlvbiB0aGF0J3MgbWFwcGVkIGludG8gdGhlIHByb2Nlc3MuIEluc3RlYWQsIGl0J3Mgc29t
ZSByYW5kb20gDQpvdGhlciBtZW1vcnkuIEkndmUgYWRkZWQgYSBoZXhkdW1wIGZvciBpdCBp
biB0aGUgaW9ldmVudGZkIG5vdGlmaWVyIGFuZCANCml0IHdhcyByZXR1cm5pbmcgcmFuZG9t
IHN0dWZmIGZyb20gb3RoZXIgdXNlcnNwYWNlIHByb2dyYW1zIHN1Y2ggYXMgIi8vIA0KU1BE
WC1MaWNlbnNlLUlkZW50aWZpZXIiIGZyb20gYSB0ZXh0IGVkaXRvciAoaGFoYSkuIEFjdHVh
bGx5LCAqb25jZSogaXQgDQpkaWQganVzdCB3b3JrIGFuZCBJJ3ZlIG1hbmFnZWQgdG8gYXR0
YWNoIGEgdmlydGlvLXJuZyBkcml2ZXIgYW5kIGhhdmUgaXQgDQpmdWxseSB3b3JrLg0KDQpD
bGVhcmx5IEknbSBqdXN0IHN0cnVnZ2xpbmcgd2l0aCB0aGUgd2F5IG1lbW9yeSBtYXBwaW5n
cyB3b3JrIHVuZGVyIFBWLiANCkRvIEkgbmVlZCB0byBzcGVjaWZpY2FsbHkgY3JlYXRlIGEg
c2Vjb25kIG1hcHBpbmcgZm9yIHRoZSBrZXJuZWwgdXNpbmcgDQp0aGUgc2FtZSBgeGVuX3Jl
bWFwX2RvbWFpbl9tZm5fYXJyYXlgIGNhbGw/DQoNCjIuIHRoZSByZWFzb24gd2h5ICJtYW51
YWxseSBraWNraW5nIHRoZSBldmVudGZkIGZyb20gdGhlIGZyb250ZW5kIHNlZW1zIA0KdG8g
Y3Jhc2guLi4gWGVuIGl0c2VsZiIgd2FzIGFjdHVhbGx5IGJlY2F1c2UgdGhhdCB0cmlnZ2Vy
ZWQgdGhlIGd1ZXN0IA0KaW50ZXJydXB0IGFuZCBJIHdhcyB1c2luZyB0aGUgSVNBIGludGVy
cnVwdHMgdGhhdCByZXF1aXJlZCB0aGUgdmlydHVhbCANCihJTylBUElDIHRvIGV4aXN0LCBh
bmQgaXQgZG9lc24ndCBpbiBQVkggZG9tYWlucy4gRm9yIG5vdyBJIHN3aXRjaGVkIG15IA0K
dGVzdCBzZXR1cCB0byBIVk0gdG8gZ2V0IGFyb3VuZCB0aGF0LCBidXQgSSdkIG5lZWQgdG8u
LiBmaWd1cmUgb3V0IGEgDQp2aXJxL3BpcnEgdHlwZSBzZXR1cCB0byByb3V0ZSBYRU5fRE1P
UF9zZXRfaXNhX2lycV9sZXZlbCBjYWxscyBvdmVyIA0KZXZlbnQgY2hhbm5lbHMgZm9yIFBW
KEgpIGd1ZXN0cy4NCg0KPj4gQnV0IEkgZmlndXJlZCBJJ2QgcG9zdCB0aGlzIGFzIGFuIFJG
QyBhbHJlYWR5LCBzaW5jZSB0aGUgb3RoZXIgYnVnIA0KPj4gbWF5IGJlDQo+PiB1bnJlbGF0
ZWQgYW5kIHRoZSBpb3JlcSBhcmVhIGl0c2VsZiBkb2VzIHdvcmsgbm93LiBJJ2QgbGlrZSB0
byBoZWFyIHNvbWUNCj4+IGZlZWRiYWNrIG9uIHRoaXMgZnJvbSBwZW9wbGUgd2hvIGFjdHVh
bGx5IGtub3cgWGVuIDopDQo+DQo+IE15IG1haW4gcHJvYmxlbSB3aXRoIHlvdXIgcGF0Y2gg
aXMgdGhhdCBpdCBpcyBhZGRpbmcgYSBtZW1vcnkgYWxsb2NhdGlvbg0KPiBmb3IgYSB2ZXJ5
IHJhcmUgdXNlIGNhc2UgaW1wYWN0aW5nIGFsbCBjdXJyZW50IHVzZXJzIG9mIHRoYXQgDQo+
IGZ1bmN0aW9uYWxpdHkuDQo+DQo+IFlvdSBjb3VsZCBhdm9pZCB0aGF0IGJ5IHVzaW5nIGEg
ZGlmZmVyZW50IGlvY3RsIHdoaWNoIGNvdWxkIGJlIA0KPiBzZWxlY3RlZCBieQ0KPiBzcGVj
aWZ5aW5nIGEgbmV3IGZsYWcgd2hlbiBjYWxsaW5nIHhlbmZvcmVpZ25tZW1vcnlfb3Blbigp
IChoYXZlIGEgbG9vaw0KPiBpbnRvIHRoZSBYZW4gc291cmNlcyB1bmRlciB0b29scy9saWJz
L2ZvcmVpZ25tZW1vcnkvY29yZS5jKS4NCg0KUmlnaHQsIHRoYXQgY291bGQgYmUgc29sdmVk
LiBIYXZpbmcgdXNlcnNwYWNlIGNob29zZSBiYXNlZCBvbiB3aGF0IGtpbmQgDQpvZiBkb21h
aW4gaXQgaXMgc291bmRzIGEgYml0IHBhaW5mdWwgKHlvdSdyZSB0YWxraW5nIGFib3V0IEMg
bGlicmFyaWVzIA0KYW5kIEknbSB1c2luZyBpbmRlcGVuZGVudCBSdXN0IG9uZXMsIHNvIHRo
aXMgbG9naWMgd291bGQgaGF2ZSB0byBiZSANCnByZXNlbnQgaW4gbXVsdGlwbGUgcGxhY2Vz
KS4uIEJ1dCB0aGlzIGtlcm5lbCBjb2RlIGNvdWxkIGJlIHJlZmFjdG9yZWQgbW9yZS4NCg0K
V2UgZG9uJ3QgYWN0dWFsbHkgbmVlZCBhbnkgYHN0cnVjdCBwYWdlYCBzcGVjaWZpY2FsbHks
IA0KYGlvZXZlbnRmZF9pbnRlcnJ1cHRgIG9ubHkgcmVhbGx5IG5lZWRzIGEga2VybmVsIHBv
aW50ZXIgdG8gdGhlIGFjdHVhbCANCmlvcmVxIG1lbW9yeSB3ZSdyZSBhbGxvY2F0aW5nIGhl
cmUuDQoNCkknbSBtb3N0bHkganVzdCBhc2tpbmcgZm9yIGhlbHAgdG8gZmlndXJlIG91dCBo
b3cgdG8gZ2V0IHRoYXQgcG9pbnRlci4NCg0KDQpUaGFua3MsDQp+dmFsDQoNCg==
--------------T4uhiGdK9N57OX09F48m1Iqu
Content-Type: application/pgp-keys; name="OpenPGP_0xCF3BB99C6ACDA951.asc"
Content-Disposition: attachment; filename="OpenPGP_0xCF3BB99C6ACDA951.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

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

xm8EaFTEiRMFK4EEACIDAwQ+qzawvLuE95iu+QkRqp8P9z6XvFopWtYOaEnYf/nE
8KWCnsCDjz82tdbKBpmVOdR6ViLD9tzHvaZ1NqZ9mbrszMXq09VfefoCfZp8jnA2
yCT8Y4ykmv6902NeNnlkVwrNKFZhbCBQYWNrZXR0IDx2YWxAaW52aXNpYmxldGhp
bmdzbGFiLmNvbT7CswQTEwkAOxYhBAFMrro+oMGIFPc7Uc87uZxqzalRBQJoVMSJ
AhsDBQsJCAcCAiICBhUKCQgLAgQWAgMBAh4HAheAAAoJEM87uZxqzalRlIIBf0cu
jzfSLhvib9iY8LBh8Tirgypm+hJHoY563xhP0YRSpmqZ6goIuSGpEKcW5mV3egF/
TLLAOjsfroWae4giImTVOJvLOsUycxAP4O5b1Qiy+cCGsHKAnCRzrvqnPkyf4OeR
zm8EaFTEiRMFK4EEACIDAwQv6ptVrbAJWMfhFoih+6gnnmnlUEp9jYsJ74GO8w95
EyJZSplnqbRJA+VxR46MBInbYry6RtRaeodClON+8IfzC81GbUFJoGvITw8w3/jf
uL2NmCHWgpyjTEyCFO+LEfTCmAQYEwkAIBYhBAFMrro+oMGIFPc7Uc87uZxqzalR
BQJoVMSJAhsgAAoJEM87uZxqzalRiZ0BfRhHFq6I6lLAhHX5W2a2iKudwhtppB6e
XUS8nt/7gXrbOn8uKKn732JknKXt6tJMJgGAgejj3/3g8CjnbxhMXFydNSbk2kGN
qvEBkfXkcD1uo2bxFjzVarquYp8FqK/f4QrlznMEaFTEiRIFK4EEACIDAwSffe3t
lMmmg3eKVp7SJ+CNZLN0M5qzHSCVdBBkIVvEJo+8SDg4jrx/832rxpvMCz2+x7+O
HaeBHKafhOWUccYBLKqV/3nBftxCkbzXDbfYd02BY9H4wBIn0Y3GnwoIXRgDAQkJ
wpgEGBMJACAWIQQBTK66PqDBiBT3O1HPO7mcas2pUQUCaFTEiQIbDAAKCRDPO7mc
as2pUaptAX9f7yUJLGU4C6XjMJvXd8Sz6cGTyxkngPtUyFiNqtad/GXBi3vHKYNf
SrdqJ8wmZ8MBgOqWaaa1wE4/3qZU8d4RNR8mF7O40WYK/wdf1ycq1uGad8PNUDOw
AqdfvuF3w8QMPw=3D=3D
=3D/RV6
-----END PGP PUBLIC KEY BLOCK-----

--------------T4uhiGdK9N57OX09F48m1Iqu--

--------------9O0x2yHcffwYgUCLOptqRBzs--

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

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

iJUEARMJAB0WIQQBTK66PqDBiBT3O1HPO7mcas2pUQUCaQqlfAAKCRDPO7mcas2p
UYtSAYC4LqjBH3ivATQCqwbKmywC35+ulOYpQIhz6KAH/nsxYUk/+eM4XcIbxFXM
tsJhYQ0Bf2oW8wy3nLgvpHrnE42ErnQ9NIKYOe7Yi+swjJfQ5XgTU7AVO6/xTJBY
4EFxCfr08w==
=Que4
-----END PGP SIGNATURE-----

--------------uCOYCjKINtMrC0LGSUDTrSdy--


From xen-devel-bounces@lists.xenproject.org Wed Nov 05 02:55:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 02:55:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1155990.1485315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGTgB-0003q9-09; Wed, 05 Nov 2025 02:55:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1155990.1485315; Wed, 05 Nov 2025 02:55: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 1vGTgA-0003q2-St; Wed, 05 Nov 2025 02:55:22 +0000
Received: by outflank-mailman (input) for mailman id 1155990;
 Wed, 05 Nov 2025 02:55: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=gPfi=5N=gmail.com=ritesh.list@srs-se1.protection.inumbo.net>)
 id 1vGTg9-0003pw-SG
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 02:55:21 +0000
Received: from mail-pl1-x62a.google.com (mail-pl1-x62a.google.com
 [2607:f8b0:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dc79af48-b9f2-11f0-980a-7dc792cee155;
 Wed, 05 Nov 2025 03:55:19 +0100 (CET)
Received: by mail-pl1-x62a.google.com with SMTP id
 d9443c01a7336-294fb21b068so71333185ad.1
 for <xen-devel@lists.xenproject.org>; Tue, 04 Nov 2025 18:55:18 -0800 (PST)
Received: from dw-tp ([171.76.85.117]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-29601b8f28esm43621645ad.5.2025.11.04.18.55.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 04 Nov 2025 18:55: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: dc79af48-b9f2-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762311317; x=1762916117; darn=lists.xenproject.org;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:from:to:cc:subject:date:message-id:reply-to;
        bh=RzRgxKaFFDli8ftuhQFfyH2ObKCMh7+2PDYIIzQvueg=;
        b=X1Z9D8kjHAGPf2rBqIjS9zBQKLiDDZD0yBSTVDAG2qJ9zUw5Jy5NvRZgGnKvQndrC3
         H3AJGQBPnkYEtBTIf/a07I16xmNz15IF0BIDtsnbSFXxC0nVKdUR17LuANhnf/xcE9BF
         c2sBA/h3vQdBH+co1aqE/jMSY8v+SDLzaiKa6LWTTMu8jjhnlaeysmqvpd6N7Td0avOt
         osEPZv8L4BFgvbe1G5FURgaANScwJ2gtVWAjT4dYRACfQeH6Hn9r3yhh7RHF6smOble3
         MI2/U5BgmrRIwmYWMYzw4v5hU0/B2jGK4bzsfP0bV6MK5aty5MZicPJ4u44BAZThs5gv
         53DQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762311317; x=1762916117;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=RzRgxKaFFDli8ftuhQFfyH2ObKCMh7+2PDYIIzQvueg=;
        b=tc3I5//Dr0hKOzOmBuKDZrEj+VgPhNx3crNO+a8yNt3SGHDtb+KY22vGBAS9E2+CQ3
         SOi3H+ZwareRbrOVkOXfjHg9EQh+P6eFSCSw2US6wc4Df70R17/3kkorneGbu38ATAfJ
         wZfIFDVz3Ls7VB23E8IdXsjQ0xDfXJyBB0sncJA3A+bkNxkN4UPKcUM3/8HSQKPnQ9jz
         hp5Q5/eiFMLjzybcxTuazhU/kkfH5xRUmWvHSsXDIm5TK9Pffdps2Oq1LjF2QTbr6kHE
         OSUYfP98xiSnD+NxklK9Jtinzzi2/5bmGd6Waq4xnZg+TnqxoUKefwOXR2pzHnhZFZvD
         +snQ==
X-Forwarded-Encrypted: i=1; AJvYcCWgpbk3We/fZDWVyP775jKPKWMs7lpyo6/PwF07ud+PhUUBhiIftUDlWb31T1Ti/0x+IKXeGKg58y4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyiZCXfck7+wT1JfoRv2F1eJrmwM+obUWisDKoKjDT9cZv7jLl2
	5rAoDlv3UZGXREJOrQEsttTVewS81aKXcxI2NPZMNW1TxW+zlN+6LZiN
X-Gm-Gg: ASbGnctSsMna0xb8lzIfiahoi/Ljxlff3W2tiJSp//RodmjTBLvP6PeSAL43fzQqxb0
	9SKRdrWaJenNB/XeUpyDjeEL8kDSvohtenN4l07PHAqm9F1hhYuop6OgAiYoYDcIFqx6Wn1oK6x
	M42f7bURDfdjp4LuSQZZIQGFHSA7rlgIk8t7yznOx4kEGEo3WE2OwoFqRzz7GFB7qgGBzbxl/rz
	XUT0j4uByRyf6QLvsK7jsZCtskh1ZklBZcre2rMz9QSLoRm+VqRisxaIYoyP27w/oamqNhOrigO
	21pm/jYkuG8x7LDqY1WojN6UFXGaeD8oJP8k/n1LbX8/p8i87sUxyhfAQE2PnhvpcXRedbYNJFR
	7uTznk24Zzlj1N1jj8NIn8D1MMkDnun6TKCmqDsMEkcFnV9RofPMSZsajms9j8yMDLKXEag==
X-Google-Smtp-Source: AGHT+IGwTm7URkxWPNS/uaQT82VrA80foZj+Jgsm9GWgCIbhw60EG5vfai2y+vo+uSLgfxHG3bwlGg==
X-Received: by 2002:a17:903:3c4b:b0:293:33b:a9b0 with SMTP id d9443c01a7336-2962ae10998mr22075795ad.32.1762311317247;
        Tue, 04 Nov 2025 18:55:17 -0800 (PST)
From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Kevin Brodsky <kevin.brodsky@arm.com>, 
	Alexander Gordeev <agordeev@linux.ibm.com>, Andreas Larsson <andreas@gaisler.com>, 
	Andrew Morton <akpm@linux-foundation.org>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Borislav Petkov <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>, 
	Christophe Leroy <christophe.leroy@csgroup.eu>, Dave Hansen <dave.hansen@linux.intel.com>, 
	David Hildenbrand <david@redhat.com>, "David S. Miller" <davem@davemloft.net>, 
	David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>, 
	Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>, 
	"Liam R. Howlett" <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>, 
	Madhavan Srinivasan <maddy@linux.ibm.com>, Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>, 
	Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>, 
	Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>, 
	Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>, 
	Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>, 
	linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, 
	sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org, 
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>
Subject: Re: [PATCH v4 01/12] powerpc/64s: Do not re-activate batched TLB flush
In-Reply-To: <20251029100909.3381140-2-kevin.brodsky@arm.com>
Date: Wed, 05 Nov 2025 08:16:58 +0530
Message-ID: <87qzud42n1.ritesh.list@gmail.com>
References: <20251029100909.3381140-1-kevin.brodsky@arm.com> <20251029100909.3381140-2-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Type: text/plain

Kevin Brodsky <kevin.brodsky@arm.com> writes:

> From: Alexander Gordeev <agordeev@linux.ibm.com>
>
> Since commit b9ef323ea168 ("powerpc/64s: Disable preemption in hash
> lazy mmu mode") a task can not be preempted while in lazy MMU mode.
> Therefore, the batch re-activation code is never called, so remove it.
>
> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
>  arch/powerpc/include/asm/thread_info.h |  2 --
>  arch/powerpc/kernel/process.c          | 25 -------------------------
>  2 files changed, 27 deletions(-)
>

Since the commit referenced in above disables the preemption in
arch_enter_lazy_mmu(), so the expectation is that we will never be
context switched while in lazy_mmu, hence the code changes in
switch_to() around __flush_tlb_pending() should ideally never be called.

With this analysis - the patch looks good to me. I will give this entire
patch series a try on Power HW with Hash mmu too (which uses lazy mmu and
let you know the results of that)!

For this patch please feel free to add:
Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>


CC: Venkat who also runs CI on linux Power HW for upstream testing :)

-ritesh


> diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
> index b0f200aba2b3..97f35f9b1a96 100644
> --- a/arch/powerpc/include/asm/thread_info.h
> +++ b/arch/powerpc/include/asm/thread_info.h
> @@ -154,12 +154,10 @@ void arch_setup_new_exec(void);
>  /* Don't move TLF_NAPPING without adjusting the code in entry_32.S */
>  #define TLF_NAPPING		0	/* idle thread enabled NAP mode */
>  #define TLF_SLEEPING		1	/* suspend code enabled SLEEP mode */
> -#define TLF_LAZY_MMU		3	/* tlb_batch is active */
>  #define TLF_RUNLATCH		4	/* Is the runlatch enabled? */
>  
>  #define _TLF_NAPPING		(1 << TLF_NAPPING)
>  #define _TLF_SLEEPING		(1 << TLF_SLEEPING)
> -#define _TLF_LAZY_MMU		(1 << TLF_LAZY_MMU)
>  #define _TLF_RUNLATCH		(1 << TLF_RUNLATCH)
>  
>  #ifndef __ASSEMBLER__
> diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
> index eb23966ac0a9..9237dcbeee4a 100644
> --- a/arch/powerpc/kernel/process.c
> +++ b/arch/powerpc/kernel/process.c
> @@ -1281,9 +1281,6 @@ struct task_struct *__switch_to(struct task_struct *prev,
>  {
>  	struct thread_struct *new_thread, *old_thread;
>  	struct task_struct *last;
> -#ifdef CONFIG_PPC_64S_HASH_MMU
> -	struct ppc64_tlb_batch *batch;
> -#endif
>  
>  	new_thread = &new->thread;
>  	old_thread = &current->thread;
> @@ -1291,14 +1288,6 @@ struct task_struct *__switch_to(struct task_struct *prev,
>  	WARN_ON(!irqs_disabled());
>  
>  #ifdef CONFIG_PPC_64S_HASH_MMU
> -	batch = this_cpu_ptr(&ppc64_tlb_batch);
> -	if (batch->active) {
> -		current_thread_info()->local_flags |= _TLF_LAZY_MMU;
> -		if (batch->index)
> -			__flush_tlb_pending(batch);
> -		batch->active = 0;
> -	}
> -
>  	/*
>  	 * On POWER9 the copy-paste buffer can only paste into
>  	 * foreign real addresses, so unprivileged processes can not
> @@ -1369,20 +1358,6 @@ struct task_struct *__switch_to(struct task_struct *prev,
>  	 */
>  
>  #ifdef CONFIG_PPC_BOOK3S_64
> -#ifdef CONFIG_PPC_64S_HASH_MMU
> -	/*
> -	 * This applies to a process that was context switched while inside
> -	 * arch_enter_lazy_mmu_mode(), to re-activate the batch that was
> -	 * deactivated above, before _switch(). This will never be the case
> -	 * for new tasks.
> -	 */
> -	if (current_thread_info()->local_flags & _TLF_LAZY_MMU) {
> -		current_thread_info()->local_flags &= ~_TLF_LAZY_MMU;
> -		batch = this_cpu_ptr(&ppc64_tlb_batch);
> -		batch->active = 1;
> -	}
> -#endif
> -
>  	/*
>  	 * Math facilities are masked out of the child MSR in copy_thread.
>  	 * A new task does not need to restore_math because it will
> -- 
> 2.47.0


From xen-devel-bounces@lists.xenproject.org Wed Nov 05 03:42:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 03:42:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156001.1485324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGUPL-0001Ze-Ai; Wed, 05 Nov 2025 03:42:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156001.1485324; Wed, 05 Nov 2025 03: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 1vGUPL-0001ZX-8C; Wed, 05 Nov 2025 03:42:03 +0000
Received: by outflank-mailman (input) for mailman id 1156001;
 Wed, 05 Nov 2025 03:42: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=gPfi=5N=gmail.com=ritesh.list@srs-se1.protection.inumbo.net>)
 id 1vGUPJ-0001ZB-Vd
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 03:42:01 +0000
Received: from mail-pl1-x62a.google.com (mail-pl1-x62a.google.com
 [2607:f8b0:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 610ea4a3-b9f9-11f0-980a-7dc792cee155;
 Wed, 05 Nov 2025 04:41:59 +0100 (CET)
Received: by mail-pl1-x62a.google.com with SMTP id
 d9443c01a7336-2952048eb88so68096585ad.0
 for <xen-devel@lists.xenproject.org>; Tue, 04 Nov 2025 19:41:58 -0800 (PST)
Received: from dw-tp ([171.76.85.117]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-29601a61418sm43663725ad.96.2025.11.04.19.41.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 04 Nov 2025 19:41: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: 610ea4a3-b9f9-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762314117; x=1762918917; darn=lists.xenproject.org;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:from:to:cc:subject:date:message-id:reply-to;
        bh=9PpcYW9rXkka09Jy11m9xJQRt/n8jdZMdqOTeKYVeZk=;
        b=ZFUrLFSIvJXzdpTEHmdcXuSeFp+EA45KB6SNtQliqQ7hnSo6E1DpazS2s8bUNasEII
         0os5G0YfHX33X1C+bPhQxXjBf2e01b2pYiTRiYBc6NcCYC8JbqkdFG6LVr64OBjH4mox
         Gmmq5NtuwHhMNx1sq8wE726zm1wE0pGRY3xevgThDU93ScsWQY7HQOQPl2Q/EuT7rlw9
         a+VKRLpeLqN0k8in09MqZBydNpIe/pLMysyXXnwjAB8iEY/ERdPuD3HP5sG84TrA3xxX
         k+jAMkvWavOcJgarrpveYZM8goNpy11SsRrGs7lIOclyQ/Q2s+1XyQVdpCMZhL2nmZ4r
         hadw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762314117; x=1762918917;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=9PpcYW9rXkka09Jy11m9xJQRt/n8jdZMdqOTeKYVeZk=;
        b=fPotHw5TNgAG1DvjKHeeNFw3mdbPW4KCVnVsLGzh8VKTanMkFlkiqWHLflZQOLxD8a
         h4vqwXWWu8Q+/NNicI/DRI2KYvpI4qW4ELZXYzFswyOzF+rQBotKeObOGRZYR5ltmVhH
         MjVU7QUakU6JyVVRbmarY0PPS9ryo/Dhc665IxRPlBfG+4/4lF3M7gnnwzUvBuYgEKJa
         ml+M1Fo9MdwRJnJ7Kg86oak817hk/o83M+Eol7+CpiOJ9niX1+zbInT00VmT7hx1gZJi
         pIsgiACPXHefFpEwDJGer61DEKuuvmIT9OTjZbSeHv/6zNk2y+TsN5uGw13i+DAfbzQT
         TfNw==
X-Forwarded-Encrypted: i=1; AJvYcCXW1g0w5srL7OqAoMzE+O/4UHpLldWWIgIgAqWewsUs19ZBmtjStcmWwenEb2rUk/8J7LFUilQSzJU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzfnPvpoL2ECEETEuUdmSCLavDO8QBTqVU7fiw9j0ftugVr6BGv
	oh31smGwkGW0vGfQaEObenzrOdm29lt1uhFtKDK8a0PZtEXuOAhpzIFo
X-Gm-Gg: ASbGncvvnOSK5Xxfk6uNQIoMIByNuMwkEesVODQpuQdrvuBqandhnj9IRFSuKC40COX
	Gcg030dPpG1Tuc9csgTp+YmusiOO94nQQr+j4zcEWFa9jJjuYfsmkl8OdjvFjybQT5gle4cD2tl
	pNPfwmKQHpoU1hMu7SmRqDePyyNUnm5bmDPqiHnBKg0+a+nT9ccS8a5DAL+A/6yENyesvJtPVmo
	9BC7ihSnbgyCQtaddy+V620fRdsn7TRAE70i6FDd3oXKRGXJ3mZfCrU/onX7wc9V/8uPKqa1sl2
	gFVsLIFuldOKDd4e3uyQJNRUsNAFFpCwWfRDGFFDXaFGfAwEBXYjchPFETFbgezXuM+O8TBaA2B
	zHqOeRhb6BzcLMp2blonNbt4OJI1so24La/WiA5qoJoDU7LJYqA5IxS0Oq5E3bYZ390A/qQ==
X-Google-Smtp-Source: AGHT+IHU+u4c4m70sp/Km2qphWV2GETQaiqBJlBLQ9oH8KuDbSRxjLHzXNgoB+GOOUcEEs7QOw2HMQ==
X-Received: by 2002:a17:903:944:b0:295:7f1d:b02d with SMTP id d9443c01a7336-2962ad3340fmr26429125ad.22.1762314116721;
        Tue, 04 Nov 2025 19:41:56 -0800 (PST)
From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Kevin Brodsky <kevin.brodsky@arm.com>, 
	Alexander Gordeev <agordeev@linux.ibm.com>, Andreas Larsson <andreas@gaisler.com>, 
	Andrew Morton <akpm@linux-foundation.org>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Borislav Petkov <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>, 
	Christophe Leroy <christophe.leroy@csgroup.eu>, Dave Hansen <dave.hansen@linux.intel.com>, 
	David Hildenbrand <david@redhat.com>, "David S. Miller" <davem@davemloft.net>, 
	David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>, 
	Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>, 
	"Liam R. Howlett" <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>, 
	Madhavan Srinivasan <maddy@linux.ibm.com>, Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>, 
	Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>, 
	Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>, 
	Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>, 
	Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>, 
	linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, 
	sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
Subject: Re: [PATCH v4 03/12] powerpc/mm: implement arch_flush_lazy_mmu_mode()
In-Reply-To: <20251029100909.3381140-4-kevin.brodsky@arm.com>
Date: Wed, 05 Nov 2025 08:45:06 +0530
Message-ID: <87pl9x41c5.ritesh.list@gmail.com>
References: <20251029100909.3381140-1-kevin.brodsky@arm.com> <20251029100909.3381140-4-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Type: text/plain

Kevin Brodsky <kevin.brodsky@arm.com> writes:

> Upcoming changes to the lazy_mmu API will cause
> arch_flush_lazy_mmu_mode() to be called when leaving a nested
> lazy_mmu section.
>
> Move the relevant logic from arch_leave_lazy_mmu_mode() to
> arch_flush_lazy_mmu_mode() and have the former call the latter.
>
> Note: the additional this_cpu_ptr() on the
> arch_leave_lazy_mmu_mode() path will be removed in a subsequent
> patch.
>
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
>  .../powerpc/include/asm/book3s/64/tlbflush-hash.h | 15 +++++++++++----
>  1 file changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
> index 146287d9580f..7704dbe8e88d 100644
> --- a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
> +++ b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
> @@ -41,6 +41,16 @@ static inline void arch_enter_lazy_mmu_mode(void)
>  	batch->active = 1;
>  }
>  
> +static inline void arch_flush_lazy_mmu_mode(void)
> +{
> +	struct ppc64_tlb_batch *batch;
> +
> +	batch = this_cpu_ptr(&ppc64_tlb_batch);
> +
> +	if (batch->index)
> +		__flush_tlb_pending(batch);
> +}
> +

This looks a bit scary since arch_flush_lazy_mmu_mode() is getting
called from several of the places in later patches(). 

Although I think arch_flush_lazy_mmu_mode() will only always be called
in nested lazy mmu case right?

Do you think we can add a VM_BUG_ON(radix_enabled()); in above to make
sure the above never gets called in radix_enabled() case. 

I am still going over the patch series, but while reviewing this I
wanted to take your opinion.

Ohh wait.. There is no way of knowing the return value from
arch_enter_lazy_mmu_mode().. I think you might need a similar check to
return from arch_flush_lazy_mmu_mode() too, if radix_enabled() is true.


-ritesh


>  static inline void arch_leave_lazy_mmu_mode(void)
>  {
>  	struct ppc64_tlb_batch *batch;
> @@ -49,14 +59,11 @@ static inline void arch_leave_lazy_mmu_mode(void)
>  		return;
>  	batch = this_cpu_ptr(&ppc64_tlb_batch);
>  
> -	if (batch->index)
> -		__flush_tlb_pending(batch);
> +	arch_flush_lazy_mmu_mode();
>  	batch->active = 0;
>  	preempt_enable();
>  }
>  
> -#define arch_flush_lazy_mmu_mode()      do {} while (0)
> -
>  extern void hash__tlbiel_all(unsigned int action);
>  
>  extern void flush_hash_page(unsigned long vpn, real_pte_t pte, int psize,
> -- 
> 2.47.0


From xen-devel-bounces@lists.xenproject.org Wed Nov 05 04:49:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 04:49:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156015.1485335 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGVRx-0000vB-1k; Wed, 05 Nov 2025 04:48:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156015.1485335; Wed, 05 Nov 2025 04:48:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGVRw-0000v4-U3; Wed, 05 Nov 2025 04:48:48 +0000
Received: by outflank-mailman (input) for mailman id 1156015;
 Wed, 05 Nov 2025 04:48: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=gPfi=5N=gmail.com=ritesh.list@srs-se1.protection.inumbo.net>)
 id 1vGVRv-0000uy-Lj
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 04:48:47 +0000
Received: from mail-pg1-x530.google.com (mail-pg1-x530.google.com
 [2607:f8b0:4864:20::530])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b4f13dd7-ba02-11f0-980a-7dc792cee155;
 Wed, 05 Nov 2025 05:48:44 +0100 (CET)
Received: by mail-pg1-x530.google.com with SMTP id
 41be03b00d2f7-b5a631b9c82so3882002a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 04 Nov 2025 20:48:44 -0800 (PST)
Received: from dw-tp ([171.76.85.117]) by smtp.gmail.com with ESMTPSA id
 d2e1a72fcca58-7acd6824811sm4742988b3a.64.2025.11.04.20.48.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 04 Nov 2025 20:48: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: b4f13dd7-ba02-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762318123; x=1762922923; darn=lists.xenproject.org;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:from:to:cc:subject:date:message-id:reply-to;
        bh=YULlj58qL4zgqYnaxIvN0IRxkfnew4hxgBmocTGIAOg=;
        b=LBddrOx3NLTYJwmhdouozW3UwxYHbP84iJvIwqpiGe8SisHKzplTTx7QdI6WnX+vw1
         lbZtKAfRtSbUHVOMtJl6SCoO6kLG/Ei2Jyywo8hZggtCW/ThbxOuvTcK0lS1j9mEhsMP
         nyGJ3s57jBYDduj3olDJYQdxCFSI6nXmhMo3cERZ+AwBXGRbcN9MAe7lOwOc3joHvQpu
         FD+wNddKC9Q3smqLBGwUZEOzX917MDP1w6B2tkRB/9fZXB+/xmZa7AUkmCIUJKxqtWCF
         +3mw8ciCYmfgikDJXAOc0dS+1H02R0pcUsvl1Pu06ra8vN1yhmUrkHw5IPqi16I9IHIA
         ybUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762318123; x=1762922923;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=YULlj58qL4zgqYnaxIvN0IRxkfnew4hxgBmocTGIAOg=;
        b=PwDPgNaUYY1mkDa4OUKLikmSR+l/IoEnlP5AEJV7k4wHl174LIc2y4h6OPN1gxm7Pl
         iuomLMzAmw8LxCZh3P377zOisUtaHPGdH61NydQFS+WKUfa2e4IzrDwjQYXT2Y4DGbFB
         G/3jwD1XMwHNSjhkBMLhl6albD1YmsY49rzkwGtdTLdvaTOzV3nVQ1qElMmv6bsFfnj4
         LglSRqPurlO/zgyc09Xj8/nl1DG001TWh4neS2WJlNKdszsNqlHFWFMt++1aHAvCtIgN
         aBZFfIDVbNHinhjC/ow8z+UUZsip2GrRK6qVcK93iPGiYFI3qXTcI9IWRNIXnhe4fOJf
         /vuQ==
X-Forwarded-Encrypted: i=1; AJvYcCVgrs2xCGs+a4CGbUhW0ORZyI8XBwNqB0LU1cAXU4o/rUVxjXtIzN84OvlVnIddF+7LqrkHnDXWPf0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwXPTLk67N38XLpzEpQpCb7YNrRl0nTWcbXlBSABcyMo8o/afmg
	UmZwjIk2snFyVQSsAixKaAD3zvRjAjH8MT01qzrdx8fnXKiNJ8+mJjDJ
X-Gm-Gg: ASbGncv0zHtLyQhkLH2WfHsvx3UUGEQa1ZarE97YYuHTpifXSnYjyJ/+YxbyUn9hG0h
	8CAEbxpI3D6iLkAMwCCwGrqinxltRcv4A4L6b8rMyzNLJ9apvG8uAG1GA0fjSQPkysUv7lGMdXa
	/GbVeyi7N3p/GqGrNldNL/+BmzBHDHVhrwEnjUw+4Aa3rOhLI7KNZkV6dHNPMYl+/qrKUy8/K0F
	mXd+sFday7ZdEkUXOJmiygrT2Z3V8zGMc4B5q/2Z/CKZSA0bcDD/wI0fcQ8Z9w36ktyGebRY1AK
	3OBeBUqXk7pO83Kd+P0DF2gLrwJYcPjmaNnoZjtsG5kRTdnsjJb2eIR3lynBU1owydNlWewGraE
	uanZZjMVWo7nbWUR6VZwBj0+/ftD7dcmL17vmX5QcPuF1IGAJ0D9gNggWCafl4Z3KsqDiPA==
X-Google-Smtp-Source: AGHT+IEGT+eOgR9ydzqm23BJtuNpA3RB5HWaj5Ha9KjzqVJ/S6kqSTkQbIaWCHaOF+SdxbuTbYvUtA==
X-Received: by 2002:a05:6a20:7483:b0:34e:63bd:81c1 with SMTP id adf61e73a8af0-34f839f5a57mr2604485637.3.1762318122822;
        Tue, 04 Nov 2025 20:48:42 -0800 (PST)
From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Kevin Brodsky <kevin.brodsky@arm.com>, 
	Alexander Gordeev <agordeev@linux.ibm.com>, Andreas Larsson <andreas@gaisler.com>, 
	Andrew Morton <akpm@linux-foundation.org>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Borislav Petkov <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>, 
	Christophe Leroy <christophe.leroy@csgroup.eu>, Dave Hansen <dave.hansen@linux.intel.com>, 
	David Hildenbrand <david@redhat.com>, "David S. Miller" <davem@davemloft.net>, 
	David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>, 
	Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>, 
	"Liam R. Howlett" <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>, 
	Madhavan Srinivasan <maddy@linux.ibm.com>, Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>, 
	Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>, 
	Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>, 
	Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>, 
	Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>, 
	linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, 
	sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
Subject: Re: [PATCH v4 05/12] mm: introduce CONFIG_ARCH_HAS_LAZY_MMU_MODE
In-Reply-To: <20251029100909.3381140-6-kevin.brodsky@arm.com>
Date: Wed, 05 Nov 2025 10:10:33 +0530
Message-ID: <87o6ph3xdq.ritesh.list@gmail.com>
References: <20251029100909.3381140-1-kevin.brodsky@arm.com> <20251029100909.3381140-6-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Type: text/plain

Kevin Brodsky <kevin.brodsky@arm.com> writes:

> Architectures currently opt in for implementing lazy_mmu helpers by
> defining __HAVE_ARCH_ENTER_LAZY_MMU_MODE.
>
> In preparation for introducing a generic lazy_mmu layer that will
> require storage in task_struct, let's switch to a cleaner approach:
> instead of defining a macro, select a CONFIG option.
>
> This patch introduces CONFIG_ARCH_HAS_LAZY_MMU_MODE and has each
> arch select it when it implements lazy_mmu helpers.
> __HAVE_ARCH_ENTER_LAZY_MMU_MODE is removed and <linux/pgtable.h>
> relies on the new CONFIG instead.
>
> On x86, lazy_mmu helpers are only implemented if PARAVIRT_XXL is
> selected. This creates some complications in arch/x86/boot/, because
> a few files manually undefine PARAVIRT* options. As a result
> <asm/paravirt.h> does not define the lazy_mmu helpers, but this
> breaks the build as <linux/pgtable.h> only defines them if
> !CONFIG_ARCH_HAS_LAZY_MMU_MODE. There does not seem to be a clean
> way out of this - let's just undefine that new CONFIG too.
>
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
>  arch/arm64/Kconfig                                 | 1 +
>  arch/arm64/include/asm/pgtable.h                   | 1 -
>  arch/powerpc/include/asm/book3s/64/tlbflush-hash.h | 2 --
>  arch/powerpc/platforms/Kconfig.cputype             | 1 +
>  arch/sparc/Kconfig                                 | 1 +
>  arch/sparc/include/asm/tlbflush_64.h               | 2 --
>  arch/x86/Kconfig                                   | 1 +
>  arch/x86/boot/compressed/misc.h                    | 1 +
>  arch/x86/boot/startup/sme.c                        | 1 +
>  arch/x86/include/asm/paravirt.h                    | 1 -
>  include/linux/pgtable.h                            | 2 +-
>  mm/Kconfig                                         | 3 +++
>  12 files changed, 10 insertions(+), 7 deletions(-)

Maybe we can add this to ... ?

Documentation/features/vm/lazy_mmu/arch-support.txt

#
# Feature name:          lazy_mmu mode
#         Kconfig:       ARCH_HAS_LAZY_MMU_MODE
#         description:   arch supports arch_{enter|flush|leave}_lazy_mmu_mode()
#
    -----------------------
    |         arch |status|
    -----------------------
    |       arm64: |  ok  |
    |     powerpc: |  ok  |
    |       sparc: |  ok  |
    |         x86: |  ok  |
    -----------------------


As for this patch, the changes are mostly straight forward around the
configs part. This looks good to me. Please feel free to add: 

Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>

-ritesh


From xen-devel-bounces@lists.xenproject.org Wed Nov 05 08:56:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 08:56:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156031.1485344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGZJC-0005q3-TE; Wed, 05 Nov 2025 08:56:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156031.1485344; Wed, 05 Nov 2025 08:56:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGZJC-0005pw-Qe; Wed, 05 Nov 2025 08:56:02 +0000
Received: by outflank-mailman (input) for mailman id 1156031;
 Wed, 05 Nov 2025 08:56: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=Xfs8=5N=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vGZJB-0005pq-T5
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 08:56:02 +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 40526d00-ba25-11f0-9d16-b5c5bf9af7f9;
 Wed, 05 Nov 2025 09:56:00 +0100 (CET)
Received: from DM6PR03MB5227.namprd03.prod.outlook.com (2603:10b6:5:247::22)
 by DS7PR03MB5496.namprd03.prod.outlook.com (2603:10b6:5:2c8::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.8; Wed, 5 Nov
 2025 08:55:57 +0000
Received: from DM6PR03MB5227.namprd03.prod.outlook.com
 ([fe80::c9a0:563d:c344:aec2]) by DM6PR03MB5227.namprd03.prod.outlook.com
 ([fe80::c9a0:563d:c344:aec2%5]) with mapi id 15.20.9298.007; Wed, 5 Nov 2025
 08:55: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: 40526d00-ba25-11f0-9d16-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZTh8/ACd1vnD5X6l+wGtBb47xmUhJwLrtgvGKOxferkBeZDz/kW8nYBO3CQy66HcA82N+9vYgP1TZJg5OXOtHv7JWsM6g+PKtDCFA6/rVo6QmbUazeWB3ANJLAvIHHPe96jENSqVI4kE432cFuM23pOMG1y36nN2Akr0zxBHYXhaW4in3uJWz0s9FtWdUgW3pZoUTjxJvEUryJepGMyHSXsB74A8GGirBSdrd+F4PpzRNBa4yyEsOWSsDfaxfFpgo+REsGwRqzaKZZqaU3xXVuhL0WwcNRL0tvA+koQXCPQtYKbDLrfSYl2yGMacAqbAiBzZFd+XtSXSB0tElp9lRw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+EJ7c46HuD7id4kyx3j+erdX5mIJyTZ4u+bn85hcs0=;
 b=Afzl76AAvR8PjzxUakbMjsdi7PilTJaRsCy+8zZBG5g/2IkycYwGRl/mNBy0gm9epvWv0PmsN0aUu/u1sO2MBQFXZ3/hHmCLhz42BS1eL6R4gmRJ2eDutTKfo373WDYZa3TTblTn60TGLVBrfDqj3dOj8grcuFwns5gWZ2ABpJDedk4XgdxHxU1+chtQ+Kh8OnBMOwus8KNhVFomNJkk/D36kI8WJAu42lsPVeBJDOgqeQzAj3CoXvpp/r5ipHyq4Khg4BrswMQ5IzHPO8oDCLzGcu+8HHx+yfLPYrWyobtAhM40r3ojbebse+UJDO5v/q04YLWIif0Djbfx7xPaTg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-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+EJ7c46HuD7id4kyx3j+erdX5mIJyTZ4u+bn85hcs0=;
 b=QiW/nv2Du6OSJIXRVggOoZMVg5Ia6n2HCLlqCJjQ1CkHHeJATVPOUgVBgxpuKm029e6lTr6IR6lnIXBD1R20cQUzIiCVM+xXcJwLDoVIDwFvyKbrquVGGi6VfWZjpNEwooZYs37HL+mKaDZOO7evsDcPpk5GXV1JJTbOayONA8E=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 5 Nov 2025 09:55:50 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.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>,
	Daniel Smith <dpsmith@apertussolutions.com>,
	"michal.zygowski@3mdeb.com" <michal.zygowski@3mdeb.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v2] xen: Strip xen.efi by default
Message-ID: <aQsRFvjvnCTla0YB@Mac.lan>
References: <20250612100705.21988-1-frediano.ziglio@cloud.com>
 <586a66e5-4b11-485e-955a-da5fc3183737@citrix.com>
 <aN6H8dOlea2Um8y8@mail-itl>
 <1708c939-4b06-4d09-acb8-6965383d91f4@suse.com>
 <aOUiU86LtvsVFukW@mail-itl>
 <e3db4a71-336c-4039-a2fc-7997fadc81b3@suse.com>
 <aOeeMtiJEhdEiadg@mail-itl>
 <bc4df23e-58b2-4cba-b25f-e8ba2da222eb@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <bc4df23e-58b2-4cba-b25f-e8ba2da222eb@suse.com>
X-ClientProxiedBy: MA3P292CA0017.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::8) To DM6PR03MB5227.namprd03.prod.outlook.com
 (2603:10b6:5:247::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM6PR03MB5227:EE_|DS7PR03MB5496:EE_
X-MS-Office365-Filtering-Correlation-Id: 8446ffae-785f-4e7d-9cd7-08de1c492098
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NzU1SXZYdGZkSjRURXAveUUzSHBqYWdHNS9BOWZWOGIvd1ZndEFQUjJjazhW?=
 =?utf-8?B?VVg0L0w1UFRURzFpTytKTWw5UHhHMXcrUG9UYnV6SVgyM2hEaVlkbktYWFdO?=
 =?utf-8?B?Z3lCL2Fkd2NvMTZKbDcvQzhGWHpab1RIbEpjMmhWaHpFc21Uc214WEhRWHAw?=
 =?utf-8?B?c1Q5cys4Z1ZsVWtHK1hjSHBGRlNmVjM0b2Z5d2k3ZGc0ZzhhMzFveFB1S2Jj?=
 =?utf-8?B?VERaV0RYOTBrS1EzcVpOY2VPcW9lUG42NER6Ky9rNjRYZXE0V2NpZUJRenh4?=
 =?utf-8?B?SmJGV3gwUjVOR1ErdTNhMmdaOC95cS84dFNIUXg1a3FtbVpFeWQxQTN2a3FD?=
 =?utf-8?B?dHd2RlFnODFtTVNRcmd5ZDhYa255Zk1OTk9zNktBaUF4WUcyY0xob3lUVEFL?=
 =?utf-8?B?aE5JZ0M1ZHNYMzZ5Sld5ZVVtMUl0OUVkVDhYbVQ0K09sT25nK09uemRHaVFO?=
 =?utf-8?B?TDRKM2FrY1EyT2R1TGlpVjhlV0RVS2NuV3BkNldoS29HQ01MR085S05SKy95?=
 =?utf-8?B?SDU1ZU14YVhQcXo0MnFIYXQwRWZWWW90ejFzeTZtOGIvMFdNQUdDcUNBamJM?=
 =?utf-8?B?TzBJNzFkMXQ2YlFreWdIT2lhUlpUeDA5ZXRlZEphMHdSRTRacnUyUWgyTFVS?=
 =?utf-8?B?dDlYNkUrS1hsbGpQamJtNDhCOVF1bUpJRVFyeG8vZ3gzSk9LSUpZU1AwT3Z2?=
 =?utf-8?B?MEpmWWZhK2hnaVQzdW9tQzk1T1ZkbEIyUWtnNnVKRDNkQ1lSdHludzd4eU5W?=
 =?utf-8?B?SzZUd2tqYnQ1NGgzcU5OVURBWHZNODN6c09RQ290MUlEV2FUYXFnVmc1N0hP?=
 =?utf-8?B?S2pqZzY3blBHVEJDNklYTGtOS1FRWnlQS1hIRHJTL3ZzenNWckw4bWJxdVdy?=
 =?utf-8?B?Nzk4K0RVOW5wNXpVUnhBZ01UcE1iNFdld2E4UXJOdGczbU1mM3haNVRKSm12?=
 =?utf-8?B?V3huckg2WUQ1Qlllc2xlNzl4K3YyV3hHWjEvQ1h3MXBSR29wZmFUZ3M1WEM5?=
 =?utf-8?B?QnF4eGxIc2c0ajhUVkV5WWRIWnlRZ2Y1bzFFS1Z6U1ZOSTBsanEwNnk5UGdI?=
 =?utf-8?B?WThvcnV5WGhLUHdhSmFFMkZpT3FvTGIxZzBzU2htb21BT0U4bys0VU5UOHFi?=
 =?utf-8?B?SEFSb2Q3Rit0QzQyZjhicXZYYld3Ym5wbVBRekc5MXhuQVc0b1RuczFFMzh2?=
 =?utf-8?B?UlZscjZwWHRJQlM1NFhRRDFLR0Fla1JEMU9GUURiQlAzWGM2elI3TlNIcWNy?=
 =?utf-8?B?dVpRNVJuL1BwQm41ZDVEN2ZkcS9wWCtwcERrb1ZJbkxUUUhBZkpuVUpWUjRI?=
 =?utf-8?B?YmZLTlBaaUNneFNJbDBhWjVyN25oRmNQdU1NSUdmSFoyeTNNN3YrWjFVa3V5?=
 =?utf-8?B?anF2bStwbU0wWGZMNU9sSHpEQzZ5eUNLMUZ4QmUwUjNLdEtmeGRFT2xVaWJL?=
 =?utf-8?B?ODY0SVJDUldiaE9DUERyV1habWNtcmdHZmRuUkVjRzgxL25OK1ZyZ1lBREk1?=
 =?utf-8?B?aEdRQXUvT1hDWUFoWERmVlhiemZNN2VvYUh6eFRZUW1DbEFOU1BDV3Z5UGhH?=
 =?utf-8?B?RldVUjNBVnluZUgrWlpIdHY4YXBjSDM2ZzdyTm5OMzJXVklDdm5uSFVxQ2t4?=
 =?utf-8?B?K2UrMTJ3UE50b0YxeWw3Sno5bWp1Tm51b1VCWStsR3ZSN09wUHBQSWxNMTVJ?=
 =?utf-8?B?NldhdTZySjZadkZUcWwvaUZQeXFyVjRyMm4xdUNaKy9WUUtKNFFlMHhpODJw?=
 =?utf-8?B?R2hhTlVJb2hpQi9UR0w2ZU82dHhPVVptRFp0RHNtcmF6T2g0UU53dG5aU21j?=
 =?utf-8?B?b3RsRDBPYi9TemxYWWRoQlhsNU5ESU9UaWtKdERDOHYrN2wrcDhjVk1LZVBH?=
 =?utf-8?B?TFIwTEpJamE0NEU3RTVaaE1RZ003c1RIMlF6cFZQZmEvemt4NW9XSjliSm02?=
 =?utf-8?Q?awt9odaK5Te5SqGdkHqkhYWHHSVQP2eB?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR03MB5227.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NUN1eHdTTFo4b3JBQUwrNVVhYWFNTmtMbjN2dDlwMysrcStDc2VqUXJva3Nk?=
 =?utf-8?B?UWg2ZDVoQnAyVkdHajhObytJcVgyUEVucjV4UDNsUEl5UitlNnp6VE5jV3pz?=
 =?utf-8?B?Z2JOeldNcSt4OVk5Vk00NEZDK09ITEhkWGVOaElxVERFbEgzWUZlSjN3MEI0?=
 =?utf-8?B?Yk9GaDFuTVlyZnR0ajlXaUZnT25YZ3JmRWV4ZDZlWkFRQVBBaFdvUEx2RG5t?=
 =?utf-8?B?amxjZ1hIQXNZQWc2TFgrays4NzJqVFMvUmVuVWJKdGNuenhOejJPNFkxSXpL?=
 =?utf-8?B?QmRCVkx6SjBMbFpaVHlVSi9CUVZTZW9IMmJ3NWRBM1ZSZ01JTlEyWEJ4RXVS?=
 =?utf-8?B?TDJQYUZGczhyM29EbmpBN0VkRjBCYVpBSlhBOEpWMzFScGRiMERyQ000cXBK?=
 =?utf-8?B?cDlLMWdJbTRJR0QwQXpzNXZCdUN0cjVIWGgzVHB2bnhhVzJKdDVLS25kRS9T?=
 =?utf-8?B?Z2dlYzZqOXRhTGFGcUR5aXJwSWY0SU9QV3Y5eTd1SC9sdjRtZ0s1aGZlTnc2?=
 =?utf-8?B?bnZJRzl5NEpadWgxQUZwajA5TUpmelR4YU0vd2J4dDdoMHYzUmhhRm0xTlRq?=
 =?utf-8?B?TzBUVERObHVCRnljdkVONTErOExZQnlWNjNSTWVQMmc3cVU1N0M0Y1dFQ0ZJ?=
 =?utf-8?B?M0ZlZlE5clltdHFseUU5eGtFTXI0bnBNYk4vM3c5bUhFK0NXQ3d1SnM2L2g0?=
 =?utf-8?B?N214T2ZJVEJwMy8yZ0xDeUpIWDBSQWZYVXNmUGV5dWZTdEY1T2FCejFxeGc1?=
 =?utf-8?B?ZytmdmZmT05JUG9KR3h5aEp0RnkvY1J0UUk5cWkxZnlaZXRpZUo5blBXK09v?=
 =?utf-8?B?SVdoZmRKeGtHOXF6Qmh6dnJkS0xlRWFWY25rSUZacE5sV2ZHaGptVFZ2ZnU3?=
 =?utf-8?B?QWFIUzhmUUZYVjY3SEgwc29tUmErYnA3TE5KM3lwcjlWMkZaZEZwMkVJaEFy?=
 =?utf-8?B?S0xLWDBvNlg5SkhIQUM1ak5Tc2RheWFjMkUzeXJaUzBjdjU5ZUZRb0RDQWU1?=
 =?utf-8?B?WndJOHh1T1pTQ3lCRjlqQ2wwNnpLdDY1bHpzZ3RrcXpydTlkeTZOQnRYMHNw?=
 =?utf-8?B?Y1k5cU9OazRuRFlab2dSZnA4MytrMDNnUi9ZQlNiK01sRDR3VEM3d0IvNFlw?=
 =?utf-8?B?VndsUzB1eFd6NjlhaStyVGlmQ0Q2bUpsVWJFQnlJaFNnbklkeXgzaWhwOTFp?=
 =?utf-8?B?eVNTUmo3VmdycXk4c2pIYlpIRHZvY2MyUWNUbUlLSS8wa0g3MXB3cHB5aUN2?=
 =?utf-8?B?THdSMnF4Q29icTV3L21wSlI0aEFCRmlzTW1adG5tckJWdUxzWE1xZStQMnRT?=
 =?utf-8?B?V3pUbkpjVWs2TlVpOWwyY2p6ZkNRRGFNWGlWQ09vOG5JYjhtbUtMRGJiQVRq?=
 =?utf-8?B?WnRUZit0K01TMG1PbFJCRE9ndzVGVTQxd05NKzhYRGF2ZHlETFN6MFRZZmRh?=
 =?utf-8?B?OXlKa3FRMUpnejRzNWdxcVVyRzVraU52ZnBnSmtrZUY4dVdpelh5NE9BV2xt?=
 =?utf-8?B?Vm41Y3ZFeE5ESHhLSFVXQ1cwaTIwZWFvdGErTmIzakMrMmFMS1dtYjVFWE9v?=
 =?utf-8?B?NnIwemhidng4M3ZCa2RmdUFBWnlMaitUcy82VGFyQUptcGJwT0U3LzlJd2tl?=
 =?utf-8?B?ZDdFMm92aEZIQVBGYWtabjIxMWpJOExqUm9nZmN0RDRJeGo2dUpYRmZ4SFpU?=
 =?utf-8?B?L3NXUE8xZXExK2l0OTdiRFNNOWd2dkkyRFBNbTRCYlUxR1Z1QnlYc2NQNklt?=
 =?utf-8?B?NzlLRVgwREgwaHlYT2hLR0RMSkQvNXIvd3NmWjZKbk4xcExHSHBBK1pkcGI4?=
 =?utf-8?B?WWJhMFpQb3gxQisyS1c5Y2pIYlVYL1ViWGdoZ01EV0pNT0NtWDIvMFkzMGU4?=
 =?utf-8?B?ZUhkb1kzWDV3eUtjYy9JZ1JNUGo5QVVKb3JjRnNzYlcxQ2w1OWlGeDRpNUJt?=
 =?utf-8?B?OHhIbHVPVG1sTDQ5aXVKd3VyQTRKL2FjenFTazRPNkQ0Sk0xbmY2cmsxQTkr?=
 =?utf-8?B?WTN5Q1dwRzlBd2NPdUVWenJpbWJva2NUS0gvMGwrcjNEUXhLRERQZVliTFZY?=
 =?utf-8?B?UXN1VDRXYVRiYWQxaW44TUxDNnBPK0REcUJaZzNwLy9UQS9GS3praHMvL1Qy?=
 =?utf-8?Q?whDTaLjDxVx9W0suzCKfHxcdL?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8446ffae-785f-4e7d-9cd7-08de1c492098
X-MS-Exchange-CrossTenant-AuthSource: DM6PR03MB5227.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2025 08:55:57.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: gvTZd+5sAM7aYw+k/lsxFmaWZQBLSXe+KIcdCxW7lmLXx5BjWzukLAdcALxsn+g7/azo5RXrZslwA693lnsS1A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5496

On Thu, Oct 09, 2025 at 01:48:01PM +0200, Jan Beulich wrote:
> On 09.10.2025 13:36, Marek Marczykowski-GÃ³recki wrote:
> > On Tue, Oct 07, 2025 at 04:46:17PM +0200, Jan Beulich wrote:
> >> On 07.10.2025 16:23, Marek Marczykowski-GÃ³recki wrote:
> >>> On Tue, Oct 07, 2025 at 04:12:13PM +0200, Jan Beulich wrote:
> >>>> On 02.10.2025 16:10, Marek Marczykowski-GÃ³recki wrote:
> >>>>> On Thu, Oct 02, 2025 at 02:05:56PM +0100, Andrew Cooper wrote:
> >>>>>> On 12/06/2025 11:07 am, Frediano Ziglio wrote:
> >>>>>>> For xen.gz file we strip all symbols and have an additional
> >>>>>>> xen-syms file version with all symbols.
> >>>>>>> Make xen.efi more coherent stripping all symbols too.
> >>>>>>> xen.efi.elf can be used for debugging.
> >>>>>>>
> >>>>>>> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> >>>>>
> >>>>> Generally,
> >>>>> Reviewed-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
> >>>>
> >>>> Just to double check: You offer this after having read (and discarded) my
> >>>> comments on v1, which v2 left largely unaddressed? 
> >>>
> >>> You mean the one about objcopy result used for debugging? I didn't see
> >>> that before, since I wasn't in cc on v1... 
> >>>
> >>> Anyway, are you aware of some specific objcopy issue. Or in other words:
> >>> would xen.efi.elf _currently_ be broken (as in - unusable for
> >>> debugging/disassembly)?
> >>
> >> I can't tell. I've seen fair parts of the code in the course of addressing
> >> various issues, and I would be very surprised if all of that was working
> >> correctly.
> >>
> >>> If not, then I take that relevant part of your
> >>> objection is mostly about inconsistent naming (xen.gz -> xen-syms, vs
> >>> xen.efi -> xen.efi.elf). Would xen-syms.efi.elf be better?
> >>
> >> Plus the one asking to strip only debug info, but not the symbol table.
> >> (And no, none of the suggested names look really nice to me.)
> >>
> >> Plus the one indicating that the change better wouldn't be made in the
> >> first place. As said, to deal with size issues we already have machinery
> >> in place. Not very nice machinery, but it's apparently functioning.
> > 
> > I'm of the opinion that defaults matter. Just having ability to build a
> > binary that works on more systems is not sufficient, if you'd need to
> > spend a day (or more...) on debugging obscure error message to figure
> > out which hidden option to use to get there. And while one could argue
> > that CONFIG_DEBUG=y builds are only for people familiar with details to
> > deal with such issues, IMO just CONFIG_DEBUG_INFO=y shouldn't need
> > arcane knowledge to get it working... And since that's a common option
> > to enable in distribution packages, person hitting the issue might not
> > even be the one doing the build (and thus controlling the build
> > options).
> > 
> > As for the details how to get there, I'm more flexible. Based on earlier
> > comments, it seems that (not stripped) xen.efi isn't very useful for
> > debugging directly, an ELF version of it is. So IMO it makes sense to
> > have the debug binary already converted. But if you say you have use for
> > xen.efi with all debug info too, I'm okay with keeping it too, maybe as
> > xen-syms.efi. It's a bit of more space (to have both efi and elf version
> > with debug info), but since it doesn't apply to the installed version,
> > only the one kept in the build directory, not a big issue IMO.
> 
> Hmm, yes, having xen-syms.efi (unstripped) plus xen.efi (with debug info
> stripped but symbol table retained, including file symbols) might indeed
> be a reasonable approach. (And then no xen-syms.efi at all when we pass
> --strip-debug to the linker anyway. For this to result in somewhat
> manageable Makefile logic, we may need to first split the linking rule
> into multiple steps, as iirc has been the plan for quite some time.)

It's my understanding that there's consensus now between Marek and Jan
about how to progress this forward, and it will require some changes
to the original patch posted by Frediano.

This has been marked as a blocker for 4.21, and hence needs to be
progressed quickly or else it will miss the release.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 05 09:01:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 09:01:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156046.1485355 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGZOK-0007XX-LN; Wed, 05 Nov 2025 09:01:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156046.1485355; Wed, 05 Nov 2025 09: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 1vGZOK-0007XQ-Hl; Wed, 05 Nov 2025 09:01:20 +0000
Received: by outflank-mailman (input) for mailman id 1156046;
 Wed, 05 Nov 2025 09:01: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=gPfi=5N=gmail.com=ritesh.list@srs-se1.protection.inumbo.net>)
 id 1vGZOJ-0007XK-Lg
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 09:01:19 +0000
Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com
 [2607:f8b0:4864:20::102a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fd404c5a-ba25-11f0-9d16-b5c5bf9af7f9;
 Wed, 05 Nov 2025 10:01:18 +0100 (CET)
Received: by mail-pj1-x102a.google.com with SMTP id
 98e67ed59e1d1-3407f385dd0so4241102a91.1
 for <xen-devel@lists.xenproject.org>; Wed, 05 Nov 2025 01:01:18 -0800 (PST)
Received: from dw-tp ([171.76.85.117]) by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-341a68c822dsm2153637a91.8.2025.11.05.01.01.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 05 Nov 2025 01:01: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: fd404c5a-ba25-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762333277; x=1762938077; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:message-id:date
         :in-reply-to:subject:cc:to:from:from:to:cc:subject:date:message-id
         :reply-to;
        bh=BqwAluvFQHR3rGs29bqhyFCcj3SAHqQXu+Y8BdSkuwM=;
        b=Khg9v/IbaFHgrCKQnU59BQuLvjLGUp1rT5SRzGwxR9OHxaty0Jc5gBxHjsmXtpzKCQ
         xSJc8QjStvN4MbuowwOchgN1Pkqj8XIs5op/kaBevJs2tQ+GYbINr5G5vySaxcfCJGMV
         HY5IM/3i2z56XDxi2B8JsCwhT1liTiCKVnfY9fIN/OYsgvqw75UOzRoZPINJyJBQecOp
         clVS3qePEFh4qB9H+GubujAfi8LDHLpF6lPrhSTSLjqR8E05PbPoXRU4TWr1UkhV4pLg
         2nsusZf2NHe1QngNvm8t8kQYQGxk/F6DPPiJcOnuaCyno4KzMQ4WXO30piDtZzVsl7q/
         hJQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762333277; x=1762938077;
        h=content-transfer-encoding:mime-version:references:message-id:date
         :in-reply-to:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=BqwAluvFQHR3rGs29bqhyFCcj3SAHqQXu+Y8BdSkuwM=;
        b=TfYfLCgTaH3sZGvUWakb5a3+x007rOTJ/rcUUlvfN3fZRqm8E7shEjtpnOzPMdHF6J
         M5Qcz57UPigoPpK+QXbYovl9YXaBX/SSi71XI0ta0cq7kga0fFtG0pyyrqFyUzXWb64e
         keUcqcpBpmSApux1KmycWUvkfOw58MYrdPZw1rRwXUlmc2ZAjOpQWU/qTEKr9U+EtDeN
         sDnEQsTHBfRIVXirK6TUeoS8iKZvyN1vaWRee+160gnOOIVV3oCJw3Gf0v56YHPCQsm5
         LZIFewbNWSCjKtnlA2tr6ChECTb3TnzH1ZZf5WZnU+M2//JUJUFStyYmXgBUScF2RdhM
         mUPQ==
X-Forwarded-Encrypted: i=1; AJvYcCVcBRucgAQOaiCGNSNH6ETefc4CBezNY1uWHUc8d4xrTaI1LQzyC4h8nzyfSx1dnEcBPsiyRfy/hFw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyHpbYf+TJugpcP7mQsG5V4oU+QaXleaN3ZKWZ9Q2ovKPekOdjo
	2V86izqeikhNFwZVOh1EBsXsdL/pcPfUfO6jxHrgaip9LNJCCxAqXJER
X-Gm-Gg: ASbGncsNLzbH4QfOqMPEL8/b8ahXFixz5QKUuw2qsG2oafVsmY/LqBMNkkyOM+LJEM3
	9SrahLLlHT5q58VPkA6sOfp75WKow9hrJA2qBl7v5Qh/nPxWVIWF7ahZIaptFQEBiyUEUgmhG++
	VwK3AlZJWoRu9p1ZnlqZUxUjtQCsWg0iYzJSTP7hNnPwKh5p+2/jNRDJ5FSXRllKj6kUpDIAkwk
	hC4y3RaHyvwjfzYNU4sw/5+D41qsRhAotU/86HbPMbzpLx3HJ/8dD2MctdBiK3n9T6VHtFrdHxy
	kKv92TJxO+bcXOc2/o9ecBdq3/zO77m7utDCD8hrgvAeQlQoxAMevQd9Qp4t2g3v/YRISDg0Bl2
	Yf8ZfR9xzzZ1eVGas61iukL0zBP171VTkkM78H7C0VVKq6rjLxrjkCvkC1dhoY41Zix5U5dRgLP
	eiQOzR
X-Google-Smtp-Source: AGHT+IHHv+LyuTSVYYYzkbgRnz7hULJzgzWM0oNnTXqbUlny/y0AGDg1tLVk5Pgi5QjOwQ4eknTvSQ==
X-Received: by 2002:a17:90b:51c8:b0:340:f05a:3ed1 with SMTP id 98e67ed59e1d1-341a6dc8735mr2732523a91.21.1762333276313;
        Wed, 05 Nov 2025 01:01:16 -0800 (PST)
From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Kevin Brodsky <kevin.brodsky@arm.com>, 
	Alexander Gordeev <agordeev@linux.ibm.com>, Andreas Larsson <andreas@gaisler.com>, 
	Andrew Morton <akpm@linux-foundation.org>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Borislav Petkov <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>, 
	Christophe Leroy <christophe.leroy@csgroup.eu>, Dave Hansen <dave.hansen@linux.intel.com>, 
	David Hildenbrand <david@redhat.com>, "David S. Miller" <davem@davemloft.net>, 
	David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>, 
	Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>, 
	"Liam R. Howlett" <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>, 
	Madhavan Srinivasan <maddy@linux.ibm.com>, Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>, 
	Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>, 
	Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>, 
	Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>, 
	Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>, 
	linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, 
	sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
Subject: Re: [PATCH v4 07/12] mm: enable lazy_mmu sections to nest
In-Reply-To: <20251029100909.3381140-8-kevin.brodsky@arm.com>
Date: Wed, 05 Nov 2025 14:19:03 +0530
Message-ID: <87ms5050g0.ritesh.list@gmail.com>
References: <20251029100909.3381140-1-kevin.brodsky@arm.com> <20251029100909.3381140-8-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Kevin Brodsky <kevin.brodsky@arm.com> writes:

> Despite recent efforts to prevent lazy_mmu sections from nesting, it
> remains difficult to ensure that it never occurs - and in fact it
> does occur on arm64 in certain situations (CONFIG_DEBUG_PAGEALLOC).
> Commit 1ef3095b1405 ("arm64/mm: Permit lazy_mmu_mode to be nested")
> made nesting tolerable on arm64, but without truly supporting it:
> the inner call to leave() disables the batching optimisation before
> the outer section ends.
>
> This patch actually enables lazy_mmu sections to nest by tracking
> the nesting level in task_struct, in a similar fashion to e.g.
> pagefault_{enable,disable}(). This is fully handled by the generic
> lazy_mmu helpers that were recently introduced.
>
> lazy_mmu sections were not initially intended to nest, so we need to
> clarify the semantics w.r.t. the arch_*_lazy_mmu_mode() callbacks.
> This patch takes the following approach:
>
> * The outermost calls to lazy_mmu_mode_{enable,disable}() trigger
>   calls to arch_{enter,leave}_lazy_mmu_mode() - this is unchanged.
>
> * Nested calls to lazy_mmu_mode_{enable,disable}() are not forwarded
>   to the arch via arch_{enter,leave} - lazy MMU remains enabled so
>   the assumption is that these callbacks are not relevant. However,
>   existing code may rely on a call to disable() to flush any batched
>   state, regardless of nesting. arch_flush_lazy_mmu_mode() is
>   therefore called in that situation.
>
> A separate interface was recently introduced to temporarily pause
> the lazy MMU mode: lazy_mmu_mode_{pause,resume}(). pause() fully
> exits the mode *regardless of the nesting level*, and resume()
> restores the mode at the same nesting level.
>
> Whether the mode is actually enabled or not at any point is tracked
> by a separate "active" field in task_struct; this makes it possible
> to check invariants in the generic API, and to expose a new
> in_lazy_mmu_mode() helper to replace the various ways arch's
> currently track whether the mode is enabled (this will be done in
> later patches).
>
> In summary (nesting/active represent the values *after* the call):
>
> lazy_mmu_mode_enable()		-> arch_enter()	    nesting=3D1 active=3D1
>     lazy_mmu_mode_enable()	-> =C3=B8		    nesting=3D2 active=3D1
> 	lazy_mmu_mode_pause()	-> arch_leave()     nesting=3D2 active=3D0
> 	lazy_mmu_mode_resume()	-> arch_enter()     nesting=3D2 active=3D1
>     lazy_mmu_mode_disable()	-> arch_flush()     nesting=3D1 active=3D1
> lazy_mmu_mode_disable()		-> arch_leave()     nesting=3D0 active=3D0
>
> Note: in_lazy_mmu_mode() is added to <linux/sched.h> to allow arch
> headers included by <linux/pgtable.h> to use it.
>
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
>  arch/arm64/include/asm/pgtable.h | 12 ------
>  include/linux/mm_types_task.h    |  5 +++
>  include/linux/pgtable.h          | 67 ++++++++++++++++++++++++++++++--
>  include/linux/sched.h            | 16 ++++++++
>  4 files changed, 84 insertions(+), 16 deletions(-)
>
> diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pg=
table.h
> index 54f8d6bb6f22..535435248923 100644
> --- a/arch/arm64/include/asm/pgtable.h
> +++ b/arch/arm64/include/asm/pgtable.h
> @@ -82,18 +82,6 @@ static inline void queue_pte_barriers(void)
>=20=20
>  static inline void arch_enter_lazy_mmu_mode(void)
>  {
> -	/*
> -	 * lazy_mmu_mode is not supposed to permit nesting. But in practice this
> -	 * does happen with CONFIG_DEBUG_PAGEALLOC, where a page allocation
> -	 * inside a lazy_mmu_mode section (such as zap_pte_range()) will change
> -	 * permissions on the linear map with apply_to_page_range(), which
> -	 * re-enters lazy_mmu_mode. So we tolerate nesting in our
> -	 * implementation. The first call to arch_leave_lazy_mmu_mode() will
> -	 * flush and clear the flag such that the remainder of the work in the
> -	 * outer nest behaves as if outside of lazy mmu mode. This is safe and
> -	 * keeps tracking simple.
> -	 */
> -
>  	if (in_interrupt())
>  		return;
>=20=20
> diff --git a/include/linux/mm_types_task.h b/include/linux/mm_types_task.h
> index a82aa80c0ba4..632d404f8191 100644
> --- a/include/linux/mm_types_task.h
> +++ b/include/linux/mm_types_task.h
> @@ -88,4 +88,9 @@ struct tlbflush_unmap_batch {
>  #endif
>  };
>=20=20
> +struct lazy_mmu_state {
> +	u8 nesting_level;
> +	bool active;
> +};
> +
>  #endif /* _LINUX_MM_TYPES_TASK_H */
> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
> index b5fdf32c437f..e6064e00b22d 100644
> --- a/include/linux/pgtable.h
> +++ b/include/linux/pgtable.h
> @@ -228,27 +228,86 @@ static inline int pmd_dirty(pmd_t pmd)
>   * of the lazy mode. So the implementation must assume preemption may be=
 enabled
>   * and cpu migration is possible; it must take steps to be robust agains=
t this.
>   * (In practice, for user PTE updates, the appropriate page table lock(s=
) are
> - * held, but for kernel PTE updates, no lock is held). Nesting is not pe=
rmitted
> - * and the mode cannot be used in interrupt context.
> + * held, but for kernel PTE updates, no lock is held). The mode cannot b=
e used
> + * in interrupt context.
> + *
> + * The lazy MMU mode is enabled for a given block of code using:
> + *
> + *   lazy_mmu_mode_enable();
> + *   <code>
> + *   lazy_mmu_mode_disable();
> + *
> + * Nesting is permitted: <code> may itself use an enable()/disable() pai=
r.
> + * A nested call to enable() has no functional effect; however disable()=
 causes
> + * any batched architectural state to be flushed regardless of nesting. =
After a
> + * call to disable(), the caller can therefore rely on all previous page=
 table
> + * modifications to have taken effect, but the lazy MMU mode may still be
> + * enabled.
> + *
> + * In certain cases, it may be desirable to temporarily pause the lazy M=
MU mode.
> + * This can be done using:
> + *
> + *   lazy_mmu_mode_pause();
> + *   <code>
> + *   lazy_mmu_mode_resume();
> + *
> + * This sequence must only be used if the lazy MMU mode is already enabl=
ed.
> + * pause() ensures that the mode is exited regardless of the nesting lev=
el;
> + * resume() re-enters the mode at the same nesting level. <code> must no=
t modify
> + * the lazy MMU state (i.e. it must not call any of the lazy_mmu_mode_*
> + * helpers).
> + *
> + * in_lazy_mmu_mode() can be used to check whether the lazy MMU mode is
> + * currently enabled.
>   */
>  #ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>  static inline void lazy_mmu_mode_enable(void)
>  {
> -	arch_enter_lazy_mmu_mode();
> +	struct lazy_mmu_state *state =3D &current->lazy_mmu_state;
> +
> +	VM_WARN_ON_ONCE(state->nesting_level =3D=3D U8_MAX);
> +	/* enable() must not be called while paused */
> +	VM_WARN_ON(state->nesting_level > 0 && !state->active);
> +
> +	if (state->nesting_level++ =3D=3D 0) {
> +		state->active =3D true;
> +		arch_enter_lazy_mmu_mode();
> +	}
>  }

Some architectures disables preemption in their
arch_enter_lazy_mmu_mode(). So shouldn't the state->active =3D true should
happen after arch_enter_lazy_mmu_mode() has disabled preemption()? i.e.

  static inline void lazy_mmu_mode_enable(void)
  {
 -	arch_enter_lazy_mmu_mode();
 +	struct lazy_mmu_state *state =3D &current->lazy_mmu_state;
 +
 +	VM_WARN_ON_ONCE(state->nesting_level =3D=3D U8_MAX);
 +	/* enable() must not be called while paused */
 +	VM_WARN_ON(state->nesting_level > 0 && !state->active);
 +
 +	if (state->nesting_level++ =3D=3D 0) {
 +		arch_enter_lazy_mmu_mode();
 +		state->active =3D true;
 +	}
  }

... I think it make more sense to enable the state after the arch_**
call right.

>=20=20
>  static inline void lazy_mmu_mode_disable(void)
>  {
> -	arch_leave_lazy_mmu_mode();
> +	struct lazy_mmu_state *state =3D &current->lazy_mmu_state;
> +
> +	VM_WARN_ON_ONCE(state->nesting_level =3D=3D 0);
> +	VM_WARN_ON(!state->active);
> +
> +	if (--state->nesting_level =3D=3D 0) {
> +		state->active =3D false;
> +		arch_leave_lazy_mmu_mode();
> +	} else {
> +		/* Exiting a nested section */
> +		arch_flush_lazy_mmu_mode();
> +	}
>  }

This looks ok though.

>=20=20
>  static inline void lazy_mmu_mode_pause(void)
>  {
> +	struct lazy_mmu_state *state =3D &current->lazy_mmu_state;
> +
> +	VM_WARN_ON(state->nesting_level =3D=3D 0 || !state->active);
> +
> +	state->active =3D false;
>  	arch_leave_lazy_mmu_mode();
>  }
>=20=20
>  static inline void lazy_mmu_mode_resume(void)
>  {
> +	struct lazy_mmu_state *state =3D &current->lazy_mmu_state;
> +
> +	VM_WARN_ON(state->nesting_level =3D=3D 0 || state->active);
> +
> +	state->active =3D true;
>  	arch_enter_lazy_mmu_mode();
>  }

Ditto.

-ritesh


>  #else
> diff --git a/include/linux/sched.h b/include/linux/sched.h
> index cbb7340c5866..11566d973f42 100644
> --- a/include/linux/sched.h
> +++ b/include/linux/sched.h
> @@ -1441,6 +1441,10 @@ struct task_struct {
>=20=20
>  	struct page_frag		task_frag;
>=20=20
> +#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
> +	struct lazy_mmu_state		lazy_mmu_state;
> +#endif
> +
>  #ifdef CONFIG_TASK_DELAY_ACCT
>  	struct task_delay_info		*delays;
>  #endif
> @@ -1724,6 +1728,18 @@ static inline char task_state_to_char(struct task_=
struct *tsk)
>  	return task_index_to_char(task_state_index(tsk));
>  }
>=20=20
> +#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
> +static inline bool in_lazy_mmu_mode(void)
> +{
> +	return current->lazy_mmu_state.active;
> +}
> +#else
> +static inline bool in_lazy_mmu_mode(void)
> +{
> +	return false;
> +}
> +#endif
> +
>  extern struct pid *cad_pid;
>=20=20
>  /*
> --=20
> 2.47.0


From xen-devel-bounces@lists.xenproject.org Wed Nov 05 09:21:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 09:21:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156057.1485365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGZiA-00023e-8J; Wed, 05 Nov 2025 09:21:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156057.1485365; Wed, 05 Nov 2025 09: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 1vGZiA-00023X-3v; Wed, 05 Nov 2025 09:21:50 +0000
Received: by outflank-mailman (input) for mailman id 1156057;
 Wed, 05 Nov 2025 09:21:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=meL4=5N=citrix.com=christian.lindig@srs-se1.protection.inumbo.net>)
 id 1vGZi9-00023R-1O
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 09:21:49 +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 da04cca4-ba28-11f0-9d16-b5c5bf9af7f9;
 Wed, 05 Nov 2025 10:21:48 +0100 (CET)
Received: from DM6PR03MB3482.namprd03.prod.outlook.com (2603:10b6:5:ae::22) by
 IA1PR03MB8261.namprd03.prod.outlook.com (2603:10b6:208:5b0::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.7; Wed, 5 Nov
 2025 09:21:44 +0000
Received: from DM6PR03MB3482.namprd03.prod.outlook.com
 ([fe80::4cad:bfaa:fd27:3555]) by DM6PR03MB3482.namprd03.prod.outlook.com
 ([fe80::4cad:bfaa:fd27:3555%6]) with mapi id 15.20.9298.006; Wed, 5 Nov 2025
 09:21: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: da04cca4-ba28-11f0-9d16-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=u1JmNMIw3XHiTbB4ARHa2RTWdb4p5mSq3anrXbb5xxekUtm0NitategmWHxwgpgxexHPAT+HUDlbn1WK66sqZNwlp1GUxJYV3guf7lO9Lc0ZDMF9PG3gi4upJSVlJY5UP0awDU9iZzy0dshcSS+Awb/1BP0TwL2aEhpQJHEWrGqueknuiTPmBLXmAJVTSjw8IWquydd6ZjdE41D7DLghTJfq7x6RPYFms306QHCvXxyQj1WKwE4zqmZUTsaEdJu5HiZ3/g0XQUXBBV66V7f+uqMS8nQeXw86ccb2tFGhf3i/pN3VCgCpNUgGN9w9sRKnWqRs2ICB0CpIuvVcJVCzFg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6MQYLKc1VTf4ijgPZyNVj5VCsbRnlaBZYeo3Lt+4358=;
 b=GNC2GLbEFBKlOU71FIIZgZFW0mFCLAPCFxC3lHHTudJ/h2UA+Zy2INh0TtCO8F9sZg+TXPgSouKHKOK+eDXuwEgqZv1kFBpsZmzlKeLKgSnKhxJKTCG88cAXTJpISUdatguS6b3c43QE/ubbnGX2t1HL3qoKg+cysog6x1PJF2dQK9hCKLT2GTpUISdKN7Mv/7G3LIolYFDICChz2sXyAnrlmifE/Fj4hxxzOUyxOxGiqbSizHzRKeynQm3qoHiwgHfSmM2bUziaD129UjMXu1kKgNpIb2AjXFsqH22VyBZN/gizi4Leb/+DWfclACn+sR0hyYAkUPjYbxGeN9NiuQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6MQYLKc1VTf4ijgPZyNVj5VCsbRnlaBZYeo3Lt+4358=;
 b=EE0ffJeYi9LDFEyLvkIkW6dJmNJTkv7EXVisFHaLMioT1iiRTV6te7AnZuKZR7mJ/2owWvuhdVWMtxCiRrFObMhrsd/QMA6OqTIM95hH9/Se00EtekZVM9E1AWbkVWP5wUeyZ2TJdwZmMhqBaTN3kJIVBLigafbF0ZWUCoHi0wE=
From: Christian Lindig <christian.lindig@citrix.com>
To: Andrew Cooper <andrew.cooper@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Edwin Torok
	<edwin.torok@citrix.com>, Rob Hoes <rob.hoes@citrix.com>, Pau Ruiz Safont
	<pau.safont@vates.tech>, Andrii Sultanov <andriy.sultanov@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH] ocaml/xsd_glue: Fix dynamic linking configuration
Thread-Topic: [PATCH] ocaml/xsd_glue: Fix dynamic linking configuration
Thread-Index: AQHcTawFHWS08HLeIEeNO/Ffj2wNHbTjz8+A
Date: Wed, 5 Nov 2025 09:21:44 +0000
Message-ID: <8C185CFB-6074-429E-8622-4439D24043A7@citrix.com>
References: <20251104165644.4011663-1-andrew.cooper3@citrix.com>
In-Reply-To: <20251104165644.4011663-1-andrew.cooper3@citrix.com>
Accept-Language: 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: DM6PR03MB3482:EE_|IA1PR03MB8261:EE_
x-ms-office365-filtering-correlation-id: efeb254c-d513-4e42-0fe1-08de1c4cbcb0
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?WTVpaWl2MFMzQTNiVG56RUd2UzQwWTA4YU1sZFZnWEFlMFRyWS91RDNTZ1Fy?=
 =?utf-8?B?cmVndXJ1SzdtZ05yQnV6SHY1eFVtdjFYRUhKalV2VU1lUlR4NEt1Z29HUW9J?=
 =?utf-8?B?RExRaXNSR25hUWlaemQ3V3BJWW1HZHFlVGs3eUVIc09rcU1WK1IzQUdwRmF3?=
 =?utf-8?B?ZmtXMTRmN2hiZk1kdElWbStiM05kVlprQVBVM2JreHRkems0UTk3emxBcTVD?=
 =?utf-8?B?aTJoWTk5ZXVkMkZHQlV2ZGs0ejJhRjE3aTRCa0NLOHJOcEhxQjFiL3RjZFQx?=
 =?utf-8?B?dVdoTFBQZHdVdmhsQVhHbERWQmgxZjdCdUtDeTdqRGtGOXlpeE53aHA2ZWFK?=
 =?utf-8?B?a3RSa2hFWlhhOFMrbjltU2pYWEtFL0xFeVFTemxQUEJmRFk2NHArOTRMYTR0?=
 =?utf-8?B?ejJLYTlvN1B5eld3ZzJtMXBoNnNrZDFlazRwbnNHcG5vYUFLaFJIZlZpYU1Q?=
 =?utf-8?B?amg5K0c5LytqYW0xRVVDREZzK1RxQXBNRTg0b25Oc20vcklwTlo4ZTdEZEJr?=
 =?utf-8?B?NzVYMUxmSHJjc3l2TTJyV2p3dTZJN00xVzdleWlScGEwRG5YbUsxUG11VkJH?=
 =?utf-8?B?T3lwWVhrbGZscGQySnBIL3BtRjVleTgyekJxaE1sNjBOMkt0R2Vuci9FZTZM?=
 =?utf-8?B?eU5XN0t5K3p1QjVNMnpvdXliVW1NclQ2dTlIcTBsSnAvdktwZUtLeEFQVTBR?=
 =?utf-8?B?K21NVzJnM1NNRkNTazVMYW9Yc3NFbmlkU01QRjBQZEVmMjVFbVc1WkpWZC8w?=
 =?utf-8?B?eGlWaG9yZmYxNHAwSGFzS2NaNHpNNHpHQmxyMkRiODFsSjI1ZGoveTB4Sldq?=
 =?utf-8?B?Q0hxWGNhTTZmK29WWDJYcHBLNEF4TFZkNVg1SnNrNThrS08rWVJiYXlhZ0sz?=
 =?utf-8?B?NGc4UGNvSGdHK1pPUjVrQnpIQStmNmxEb3QzTzBKejhzdjR2eGY5SjRuQnB2?=
 =?utf-8?B?UG9NbFAzUmhaem80Yzd6OVB5dFZQWVIyNG5MNlB2QTVHN01ObHB5WElZRVov?=
 =?utf-8?B?NkgrSEdaSEFDdDZYelZWb1Q1ZVFIa1J6V1BFVGxFaXRMWVpQQXFMYzJTbnQr?=
 =?utf-8?B?R21GWXlTVVcrcXU3dUFBL0xWcVdHVUZycGNkWmJicGs5R0Y2aXNWbVh0TkxU?=
 =?utf-8?B?T0Z0T3E3MElubmpQY3pxZDk5OFAyS2J5VURSYi9URExQVlVJM0lWSUxma2hj?=
 =?utf-8?B?WmpXTFpVY2lxa1JpRHdETE1GODZoZmRNR0t3RDkwSm9JbFk2Rk56TU52ZGxr?=
 =?utf-8?B?SWxicHdPUSsyMkhaRkk1MkZEUmxmLzVZVDBLMjdwVjFVb2Y1YzliNnkvckRu?=
 =?utf-8?B?QlMzZGk3SHVmVnRyRnROUHh2dnU3V3F4WWVGQkJWZmFkRVJWSG5sOHBGVEx5?=
 =?utf-8?B?cXRRRlpDeSt4T29wdURxUHhJZFBqMWMrR0dCY3p5cXluMGY1bDlydkhvdHp0?=
 =?utf-8?B?R3l4YjhuaFRPaFBjSWhWdVRUaXB2elFkdnJYRnlJNXpHNlptMU9PNGxtUXEv?=
 =?utf-8?B?SnB1aDdTek5vY0VFektTY3BjNWNCWG9zRkJpOXVvNEtnWElaNmlEa0ZHbDRD?=
 =?utf-8?B?MDY1Sjd0eWdxb3BXajl6WDJ0bnkyUWt6bWNiSkJGNWRpL3JDVDQrWXJVbzR3?=
 =?utf-8?B?YjRLSjJ0Qy92cWRlTDZQbm1VMzluQldpWkM2Q3JHcm1Va1RBNGdiczQ5eHBX?=
 =?utf-8?B?QmRGU1JiZ004dlpxZzJheUtvcnVFMTI2emp0eWs0ODlObGJMQTBUbXU2Mm5p?=
 =?utf-8?B?ZmFXRUdPYjh1QmExQjB3ZG02QkpjenRqQ1plcjA5YUp4YWNrZHhzM0dlYzF4?=
 =?utf-8?B?YmgrUmtnaGRNUXFTeFhMU3R0K1F4WWR4eDhmOFlHWndqOFNjaUlCay9jc2U5?=
 =?utf-8?B?Z0ZUN0w2SUZ2bXdTcDg3MXhRREYzbXh4WjN1alhKMDNHNkpBbHpTWjZRVkZF?=
 =?utf-8?B?SlJjMVFOZ2p0eS9EVGdDbC9yVXk4aVZna21ZVVRiNnFxa1JYejNnTXZJUFMx?=
 =?utf-8?B?QldOT0pWaWlFcDltU1hWZGVPWU1Ua1Y0RFJKMi9IelQ0OTVRREVMejlkaW83?=
 =?utf-8?Q?gCYzWU?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR03MB3482.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?aWhnN0Vpa0ZBZ3BxVzVZcjhFaHBISVI4alFiSXgwUFVreFhhMW1qazBrNmhC?=
 =?utf-8?B?a0F3YlJZeUdrQ1NKb0RKN0dnMEF5aTY5Z2VmMWZkdmM2V2V3S2w2NnZkMktR?=
 =?utf-8?B?Tm1veWppcDBlQkhlaGxOdkZ3QzBSa1RzT3Vyajh3cml0Qi81eFRDR041YjRU?=
 =?utf-8?B?OXl2VXp2MnFrd1JDcWJDSS9zOEhZL2wwNzZLbUN4MkJkZWJsM09tb1ZYa0R6?=
 =?utf-8?B?VVRYTjlZVCszeWc5U0pJTXdKQWF0VXVMaG1qRkRaSFFwSTZSQ3NsdlVPU0Rv?=
 =?utf-8?B?VkpxdDVLL3VtTWdWVFBZYUdKZVR1WWlrSTN5Q0FpZGpSbmhwdG1TbGtpTjRO?=
 =?utf-8?B?VkNLcU83bFNTVGRSRzlsMDRkRFcvc1hiM2Zjd1dMQytHMDRvdFdhR1JzQm9H?=
 =?utf-8?B?SlRTY21PSUptNndSaVk5OG9BL3RuTWNPSk9CbmFyeE8yNFRNUlNqQlRUamw2?=
 =?utf-8?B?MXo0TXJaVjFhMTZmSVdud1JUQ1JZTE03akdVdkNUaVEwSmJIMmR2UmEwdTdG?=
 =?utf-8?B?c0V0WGlvSWlSRi9JWUNTNTViLzQxT0tBVSttcHRKYk11NEs0WllzRGJpTG9N?=
 =?utf-8?B?ZjRXbSszYlhWUDZFWnpMV0IrOCtTQ1Jxdm1hMEdWUU9UOEtnc01FcGRuVE03?=
 =?utf-8?B?MXJOVVVRdnFvd3ZONTFoV2psRWtwWUhvdHg2ditZMFBuQmdYdjlpODRXMjNR?=
 =?utf-8?B?RzRGQUhhZGNsQlIvOUFHMXJET21XUm44M3RCQW1DaktERENQT3BkWlBneXNa?=
 =?utf-8?B?RFl0VWFuOUtpSnZnN2VGQTdTaEdack9MNVhlalhQOGR2OUZlSlV2THNyRFhv?=
 =?utf-8?B?WVMyeUJWeTh0L1FJZ253Z1FaemIrL2Q2blB1VVBvVUl3Wkx0OTZLcS9hRnFr?=
 =?utf-8?B?RUZmVjNVN3RmU25UeGN4RWR3UTdzK3ByWmZCZ0xvYW1KcGxOUEJkNTJkei9Z?=
 =?utf-8?B?YTZzVHRPbm5Bd0tJbUpuOGt3YWR6WDRKenhNcU5HN1NUVmx4QStrZFQwOFk4?=
 =?utf-8?B?bU42UmpKTWdaMFROUEpBNWVRNzNIc2g1WHJmb2ltQ3VPNGpmK3VIVTNmbmox?=
 =?utf-8?B?VHJCdVkxaGpLYmtmTllkUThlMU10c2tmWDhmQlBiK2thR25zd3RQMFFacDhj?=
 =?utf-8?B?ZTROMzN1QXF1MkcvU3VnTmJraGxCbmlodlBvejFwYlVGK2NhRndsRmFkQ1RC?=
 =?utf-8?B?MWkraE5PNWxFY3Fxc25FNVJrL0xUWXB1TDB3OTR2UUVIMFlrczRjdWlrQklv?=
 =?utf-8?B?bFBFNXgyVThUb0lSbjhDTXNjaCtwRWhMZkY5VGxPTytkZGVGR0lqUHdkVjZs?=
 =?utf-8?B?R01zSjAwTkxGQjJEcGNUYk52Y2Zvd3E2cTRRWG1QOUYveHlEcGVJaEhKYTdO?=
 =?utf-8?B?Ym9ZTXhGWVpVU3h6U2ZiZE1iMis5ekhmWW04c056eHdvUW9uUVdkMTFZS042?=
 =?utf-8?B?dXk3MmUrT3VVRFdHdHg4dkFiQ1B0akJrUEdqcEtZTjR0SU9JdHE3c05nekp1?=
 =?utf-8?B?MXB4RjVjc3ZJKytxS1VNYitudmJKcUlhQmJpbThsZER5eHBWVXpVaTU4WEN3?=
 =?utf-8?B?MWVnbmZ5VFpMcGhEb1JhdzlSU1hPcXpHbGZiZkJ0WmJPRlpqNXZ2Wm04M0Jm?=
 =?utf-8?B?bDUwa2ZtMEtHRi9YbEdIYVl0RDhmNXNxRlMvYnhuRm9RN1FOV2lWM05nUCtj?=
 =?utf-8?B?eXkzRVFpMUtkUFJpMnlxalFEVHVKRGJyRnlLUjZqUGs3YWx0em9EcVMvcEVY?=
 =?utf-8?B?VnM5NjBicnRLbHFDbnpZeGJkMENwRFY2UFExSEtLb2czOG9iQy9xNzdTb050?=
 =?utf-8?B?ZDI2VUtQeEdqaHM3MjdoWHdiWUQ1dENESm02MGFNOW5na0ZhQStReWcraEZv?=
 =?utf-8?B?LzJJdlBTZlByZ1JKVTdpUUUrYTRvL05ZbmJXL2MwYzcrQnlPbW1RZFN2OWlT?=
 =?utf-8?B?YTFOT1dZUUdabnJvUVpOaWsvWkdkTVlkZzlLUXRPUU4vTmlaOFU4c1ZOUk5y?=
 =?utf-8?B?MlhpcTQxSHFVYnRlSjBVUnFwdEhQWkp4ME81cms5K1hjaU5NWW1hKzN4ZldX?=
 =?utf-8?B?N1VlZVdrTFlKRnI2L1J3RWRZTzNFRXFoaXZyUnYvMjdGT1AxSU9RdjNhRmV4?=
 =?utf-8?B?SGNUTkRVdXpHL1B1K25QMEhkdFgyaDlhd3hicEhyUURJV29wMTZwSFkrSy9z?=
 =?utf-8?B?ZlE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <CADB59E23587A34C96F42250D3843AAB@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: DM6PR03MB3482.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: efeb254c-d513-4e42-0fe1-08de1c4cbcb0
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Nov 2025 09:21:44.1579
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: cVpWMyMJ4CWNUrGH7tTFO6q/Vi0kIFpsVqpDrUhP5j4sE24jla47PtahtdhpD5Z1MONrfSZ8IzaZV6XJmFKjLWJKW56cLzAayrRPBWJCXrM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR03MB8261

DQoNCj4gT24gNCBOb3YgMjAyNSwgYXQgMTY6NTYsIEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29w
ZXIzQGNpdHJpeC5jb20+IHdyb3RlOg0KPiANCj4gVGhlIGxhdGVzdCBveGVuc3RvcmVkIGZyb20g
WGFwaS1wcm9qZWN0IGZhaWxzIHRvIHN0YXJ0IHVwOg0KPiANCj4gIGxhdW5jaC14ZW5zdG9yZVsx
MjAxXTogU3RhcnRpbmcgL3Vzci9zYmluL294ZW5zdG9yZWQuLi4NCj4gIGxhdW5jaC14ZW5zdG9y
ZVsxMjIyXTogRmF0YWwgZXJyb3I6IGV4Y2VwdGlvbg0KPiAgICBEeW5saW5rLkVycm9yIChEeW5s
aW5rLkNhbm5vdF9vcGVuX2RsbCAiRHlubGluay5FcnJvciAoRHlubGluay5DYW5ub3Rfb3Blbl9k
bGwNCj4gICAgXCJGYWlsdXJlKFxcXCIvdXNyL2xpYmV4ZWMveGVuLy9vY2FtbC94c2RfZ2x1ZS94
ZW5jdHJsX3BsdWdpbi9kb21haW5fZ2V0aW5mb192MS5jbXhzOg0KPiAgICB1bmRlZmluZWQgc3lt
Ym9sOiB4Y19kb21haW5fZ2V0aW5mb19zaW5nbGVcXFwiKVwiKSIpDQo+IA0KPiBUaGlzIGlzIGJl
Y2F1c2UgZG9tYWluX2dldGluZm9fdjEuY214cyBpc24ndCBkeW5hbWljYWxseSBsaW5rZWQgY29y
cmVjdGx5Lg0KPiBGaWxsIGluIHRoZSBjb3JyZWN0IHZhcmlhYmxlLCBhbmQgcmVtb3ZlIHRoZSB4
ZW4gcHJlZml4IGZyb20geGVuY3RybC4NCj4gDQo+IFJlcG9ydGVkLWJ5OiBFZHdpbiBUw7Zyw7Zr
IDxlZHdpbi50b3Jva0BjaXRyaXguY29tPg0KPiBTdWdnZXN0ZWQtYnk6IEVkd2luIFTDtnLDtmsg
PGVkd2luLnRvcm9rQGNpdHJpeC5jb20+DQo+IEZpeGVzOiBhNjU3NjAxMWE0ZDIgKCJvY2FtbC9s
aWJzOiBJbXBsZW1lbnQgYSBkeW5hbWljYWxseS1sb2FkZWQgcGx1Z2luIGZvciBYZW5jdHJsLmRv
bWFpbl9nZXRpbmZvIikNCj4gU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNv
b3BlcjNAY2l0cml4LmNvbT4NCj4gLS0tDQo+IENDOiBDaHJpc3RpYW4gTGluZGlnIDxjaHJpc3Rp
YW4ubGluZGlnQGNpdHJpeC5jb20+DQo+IENDOiBSb2IgSG9lcyA8Um9iLkhvZXNAY2l0cml4LmNv
bT4NCj4gQ0M6IFBhdSBSdWl6IFNhZm9udCA8cGF1LnNhZm9udEB2YXRlcy50ZWNoPg0KPiBDQzog
QW5kcmlpIFN1bHRhbm92IDxhbmRyaXkuc3VsdGFub3ZAdmF0ZXMudGVjaD4NCj4gQ0M6IE9sZWtz
aWkgS3Vyb2Noa28gPG9sZWtzaWkua3Vyb2Noa29AZ21haWwuY29tPg0KPiANCj4gRm9yIDQuMjEu
ICBXaXRob3V0IHRoaXMsIHdlIGNhbid0IHByb2NlZWQgd2l0aCBkZXByZWNhdGUgb3hlbnN0b3Jl
ZC4NCg0KQWNrZWQtYnk6IENocmlzdGlhbiBMaW5kaWcgPGNocmlzdGlhbi5saW5kaWdAY2xvdWQu
Y29tPg0KDQo=


From xen-devel-bounces@lists.xenproject.org Wed Nov 05 09:49:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 09:49:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156070.1485375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGa8y-0005GC-8e; Wed, 05 Nov 2025 09:49:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156070.1485375; Wed, 05 Nov 2025 09:49: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 1vGa8y-0005G5-5K; Wed, 05 Nov 2025 09:49:32 +0000
Received: by outflank-mailman (input) for mailman id 1156070;
 Wed, 05 Nov 2025 09:49: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=gPfi=5N=gmail.com=ritesh.list@srs-se1.protection.inumbo.net>)
 id 1vGa8w-0005Fz-7e
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 09:49:30 +0000
Received: from mail-pg1-x52b.google.com (mail-pg1-x52b.google.com
 [2607:f8b0:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b7a4a58a-ba2c-11f0-980a-7dc792cee155;
 Wed, 05 Nov 2025 10:49:28 +0100 (CET)
Received: by mail-pg1-x52b.google.com with SMTP id
 41be03b00d2f7-b996c8db896so3614683a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 05 Nov 2025 01:49:27 -0800 (PST)
Received: from dw-tp ([171.76.85.117]) by smtp.gmail.com with ESMTPSA id
 41be03b00d2f7-ba1f765f148sm5030694a12.24.2025.11.05.01.49.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 05 Nov 2025 01:49: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: b7a4a58a-ba2c-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762336166; x=1762940966; darn=lists.xenproject.org;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:from:to:cc:subject:date:message-id:reply-to;
        bh=KSkImeW26wxHMAXfbe7WvrT7t//6KWteMn9Q9gZQJTU=;
        b=biIpEihU1kOtXMvnGqLv121bCWWdXpCz6uXQZEoqDL4L+fjlOnFFZ2zwcR1srHP50y
         shfivhmOgzJkiZtcGmCgT5GWCtiIe5+dFyOHzX6ONj0h7Lc5fWzASK/ZAlLqylP1uBJX
         PwlJvXgctPSL4HHphyMsAU49v/aqKxZkroc1ntXzVRwKgkkl9Dfr9LxQsTFmBuLC/nIQ
         Ha5pjlk/eof0tgexd6fEMf34wmoRqrzgbu3fUdfeSzsqXzYJ9NZp5mSjU9d2f1//osFh
         AkBaZnisPXAaPPzUqQX4nqrlLDIIUhu8W4mo4qc073nlTAfom0JBiiD7iKbG4jSvjKHH
         IyaA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762336166; x=1762940966;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=KSkImeW26wxHMAXfbe7WvrT7t//6KWteMn9Q9gZQJTU=;
        b=KgbBA/c6+q25CK1X+bgZDXzPZzDI9nUTscqIVvs/QSNajSXdNGQqYaboDDeFKmoS2a
         gzqH0vlDZKL/mlWe22V2owWev7BKY5NWecPIqVl+tnY+pbRz54kUHc9UKaWc7R/3ZfT/
         LguOTKqh8bEps8fk1UrLdkBkblEtF3jHmzG8FupgqvZMCZYSfIzLnqzNmxBd9W3inDq1
         UvODRAr2LJ3sEDvB5aLMTjWAVTB5TeykSxXNxE2htNcaejZ7b0dz1Tuv5/orH63H0jYi
         oWpU/IihK6DlPsox9OSHfLHZNgYZz/KyX7C25QJITyJdvZGrs15kJlJp1EYqu/zAO3Nx
         3reg==
X-Forwarded-Encrypted: i=1; AJvYcCWPo6YxpwuREYOicSaaIJSYLIh0NBt/HKsHZ8g5dbwe4wElokSo7aWNQRecK0Wtsw3+CBSQUeK0/OY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yysg2X8f7gjju7FiC38IqW4RQD3IjZytpTR7MAUSoOrba94am1Z
	RdHmWvnhLfY/cExA7B65qX/o/Y2i5NfnigUaqVQZXzttWztsAMULLwkz
X-Gm-Gg: ASbGncteGd1kAhNjCMTvAj31MXy7/Iw0oVK8Xfs60tRFwf2Dw9ftteAjd/Jp35PWdfP
	5EXL1LyhWseKjC2+XZVfwGQzjGgX7inYEm1VoWk63cnUmPGvZaQvSEAHJhHKd3wLJuUq6MJ4QVK
	dyYRVS5OXZLhz96B7rycKuF69HZ/UFqUZ9uTLRvVzfJGoNq9A8WKaXNuIyzTyQUN5INoRz3Sq8+
	kap5dPcJavErFERG5xUqaN+jL8Qzq/72NOpOUa0Vgx1BbfUcU8lNUW7YiRb+v/LY3Ugvf6Cxqiu
	299FDBBrcOnhrBxxE9siuv+Yx7tuA1dYnQgWSF8ekl8c9VWNAH69TjKWsRNkEY9BMPWBy9ZsHIR
	a1Q6TqkwyW+PrJYvw5iOtSyc4YPjduHyVpxdM9gSE6mtq0y9FsosbQcSIl9DRj+/MCa/T9Q==
X-Google-Smtp-Source: AGHT+IGvXEix8Ale69u5jY13ojKwbWl3rHLnPywsClHEKGLTCQBX8z03LTjZkKtfW5wInDfRAomLmQ==
X-Received: by 2002:a05:6a20:7283:b0:343:88b4:a722 with SMTP id adf61e73a8af0-34f862ff4a8mr3711914637.52.1762336166397;
        Wed, 05 Nov 2025 01:49:26 -0800 (PST)
From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Kevin Brodsky <kevin.brodsky@arm.com>, 
	Alexander Gordeev <agordeev@linux.ibm.com>, Andreas Larsson <andreas@gaisler.com>, 
	Andrew Morton <akpm@linux-foundation.org>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Borislav Petkov <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>, 
	Christophe Leroy <christophe.leroy@csgroup.eu>, Dave Hansen <dave.hansen@linux.intel.com>, 
	David Hildenbrand <david@redhat.com>, "David S. Miller" <davem@davemloft.net>, 
	David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>, 
	Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>, 
	"Liam R. Howlett" <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>, 
	Madhavan Srinivasan <maddy@linux.ibm.com>, Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>, 
	Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>, 
	Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>, 
	Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>, 
	Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>, 
	linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, 
	sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
Subject: Re: [PATCH v4 09/12] powerpc/mm: replace batch->active with in_lazy_mmu_mode()
In-Reply-To: <20251029100909.3381140-10-kevin.brodsky@arm.com>
Date: Wed, 05 Nov 2025 15:10:20 +0530
Message-ID: <87ldkk4y2j.ritesh.list@gmail.com>
References: <20251029100909.3381140-1-kevin.brodsky@arm.com> <20251029100909.3381140-10-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Type: text/plain

Kevin Brodsky <kevin.brodsky@arm.com> writes:

> A per-CPU batch struct is activated when entering lazy MMU mode; its
> lifetime is the same as the lazy MMU section (it is deactivated when
> leaving the mode). Preemption is disabled in that interval to ensure
> that the per-CPU reference remains valid.
>
> The generic lazy_mmu layer now tracks whether a task is in lazy MMU
> mode. We can therefore use the generic helper in_lazy_mmu_mode()
> to tell whether a batch struct is active instead of tracking it
> explicitly.
>
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
>  arch/powerpc/include/asm/book3s/64/tlbflush-hash.h | 9 ---------
>  arch/powerpc/mm/book3s64/hash_tlb.c                | 2 +-
>  2 files changed, 1 insertion(+), 10 deletions(-)
>

This looks good to me.

Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>


From xen-devel-bounces@lists.xenproject.org Wed Nov 05 09:58:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 09:58:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156085.1485385 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGaHm-0006wR-63; Wed, 05 Nov 2025 09:58:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156085.1485385; Wed, 05 Nov 2025 09:58:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGaHm-0006wK-3A; Wed, 05 Nov 2025 09:58:38 +0000
Received: by outflank-mailman (input) for mailman id 1156085;
 Wed, 05 Nov 2025 09:58:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gPfi=5N=gmail.com=ritesh.list@srs-se1.protection.inumbo.net>)
 id 1vGaHl-0006wE-IX
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 09:58:37 +0000
Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com
 [2607:f8b0:4864:20::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fe5b8a40-ba2d-11f0-9d16-b5c5bf9af7f9;
 Wed, 05 Nov 2025 10:58:36 +0100 (CET)
Received: by mail-pl1-x630.google.com with SMTP id
 d9443c01a7336-2947d345949so58170875ad.3
 for <xen-devel@lists.xenproject.org>; Wed, 05 Nov 2025 01:58:36 -0800 (PST)
Received: from dw-tp ([171.76.85.117]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-29601972ad1sm55039695ad.19.2025.11.05.01.58.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 05 Nov 2025 01:58: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: fe5b8a40-ba2d-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762336714; x=1762941514; darn=lists.xenproject.org;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:from:to:cc:subject:date:message-id:reply-to;
        bh=PiM5gwx7v9fuKjSNGU0XIbMsJHzNcD3t6sxDOvTigVo=;
        b=lBzuQpApAGx7metxHb33KfHkArgkuW282qzwaLO01tQXmhw+PtIbiTvecqhXBfzYND
         z4K6LwFew7NYfX7aBUPKBW7Nu0yp2Mgg+exhFVqFxe7JtKA+c6rbYhM3cEQKzxK9Rme1
         JaWINeCKqcxobGtO1ZUp2hMCMWyWPjnku2Lm6dOdvW1f6TWFWbPn2M1BLEAApgrWRNeb
         qDWpvCmCXbKUAFQ8YkPO9FbqhULFPtdfyBs4XvLGTc6oZFzg9n4VeO3ibqLC5RqdMAPf
         hqyGy56gn3cG5atJWtMFSm2cEbNFO4H5DX9dp0OOt9NF/XncH4dEajjSIHE8pUrYzhtq
         556g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762336714; x=1762941514;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=PiM5gwx7v9fuKjSNGU0XIbMsJHzNcD3t6sxDOvTigVo=;
        b=EmXhddQ+69awcponKA4TdRKd99CsxWhrGg+Qxrh0jZmlihxJU5lfyJOQpW38ELB7LS
         6XenC6HK7vlgUaU349/JuOGdE83tCEYN8NB6cLpxUHpQJ1+vD4Dufq/1aJCRXIRTWdDq
         hcyJVskFD9IFNICHUfIysBB/VrZoHseuTlasmq2t7dHy72B+2SgASjDqwwaovuQcjgh9
         mQosmjLWRGcqf7H26c4wTe3LeFVaPCCcsX4go2ROUJ8mRwZZc5MNQHCDYZmRaesWHZUI
         gSNDe4cO9D+2+40KgWi8I8RkFHCeMfAjp5Lr00MG7yC37J128OX+a/4pTyaOngZU4FdP
         6YoA==
X-Forwarded-Encrypted: i=1; AJvYcCXAxDTvgCXGaCgmhUfersBFQaGrDYEpSE24scySnTvW0UadrsUwShOWog00PDQ2aI2B0+byU3QY4zw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxcqrUmQtshuyWiKB1ci76E7OjG5h7OfcjUlGPckKNG+b53z12k
	YRlLzfE+5+ClVNHUgzgBo6CehDOWNdnGmOoRtwI5GYptzhIBXPsLg6tw
X-Gm-Gg: ASbGncvgNkclmowDueIp+u3fPcFHsikyNMq8YFW2W4vJGzi4gfuz1+NI4iwRcapTcnh
	mEfcGsKHIXmbmrSIbnlsVVHpABhP9CgGTTXVIH25q03OjQrmSiFjT//TKP5XVmFwkUgTbuvuo7W
	KKAcPgbjY2ljoXDuldDjri/ErgekO+d+tvHfBgvy03ifAcb+2rfSQUGQd5E9rRxxUEExZBMnLxe
	xJBKe5l38GIOMTOV9QMJLI70tLydoL6lg+r2K95gUs+S2NcoIbUoSfe1SVV0SQrHvFm6hqUVqtx
	lkcg8fCh0d/6MTvUP35Fzps5avpza0iA7UgbQbpFSGbcXE1AuVEs9sZ4D2JWyF5id8N4djhyJOe
	AqvqXKWE3KtXqxT+bUAcH17D9CStqUpXCKWhxoLE8cY5JNrPr7borKtGJYRkF+DBZELLg/Q==
X-Google-Smtp-Source: AGHT+IHbi+0zqKpbA9V2mHcqMUNAu2olVZcwJU6s62eDD+69tSv+JW/d6KHzoaPAbvo+C4JRz5nOFw==
X-Received: by 2002:a17:903:19ce:b0:246:7a43:3f66 with SMTP id d9443c01a7336-2962adb2b0fmr33595265ad.7.1762336714441;
        Wed, 05 Nov 2025 01:58:34 -0800 (PST)
From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Kevin Brodsky <kevin.brodsky@arm.com>, 
	Alexander Gordeev <agordeev@linux.ibm.com>, Andreas Larsson <andreas@gaisler.com>, 
	Andrew Morton <akpm@linux-foundation.org>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, 
	Borislav Petkov <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>, 
	Christophe Leroy <christophe.leroy@csgroup.eu>, Dave Hansen <dave.hansen@linux.intel.com>, 
	David Hildenbrand <david@redhat.com>, "David S. Miller" <davem@davemloft.net>, 
	David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>, 
	Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>, 
	"Liam R. Howlett" <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>, 
	Madhavan Srinivasan <maddy@linux.ibm.com>, Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>, 
	Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>, 
	Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>, 
	Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>, 
	Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>, 
	linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, 
	sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
Subject: Re: [PATCH v4 03/12] powerpc/mm: implement arch_flush_lazy_mmu_mode()
In-Reply-To: <87pl9x41c5.ritesh.list@gmail.com>
Date: Wed, 05 Nov 2025 15:19:35 +0530
Message-ID: <87jz044xn4.ritesh.list@gmail.com>
References: <20251029100909.3381140-1-kevin.brodsky@arm.com> <20251029100909.3381140-4-kevin.brodsky@arm.com> <87pl9x41c5.ritesh.list@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain

Ritesh Harjani (IBM) <ritesh.list@gmail.com> writes:

> Kevin Brodsky <kevin.brodsky@arm.com> writes:
>
>> Upcoming changes to the lazy_mmu API will cause
>> arch_flush_lazy_mmu_mode() to be called when leaving a nested
>> lazy_mmu section.
>>
>> Move the relevant logic from arch_leave_lazy_mmu_mode() to
>> arch_flush_lazy_mmu_mode() and have the former call the latter.
>>
>> Note: the additional this_cpu_ptr() on the
>> arch_leave_lazy_mmu_mode() path will be removed in a subsequent
>> patch.
>>
>> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
>> ---
>>  .../powerpc/include/asm/book3s/64/tlbflush-hash.h | 15 +++++++++++----
>>  1 file changed, 11 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
>> index 146287d9580f..7704dbe8e88d 100644
>> --- a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
>> +++ b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
>> @@ -41,6 +41,16 @@ static inline void arch_enter_lazy_mmu_mode(void)
>>  	batch->active = 1;
>>  }
>>  
>> +static inline void arch_flush_lazy_mmu_mode(void)
>> +{
>> +	struct ppc64_tlb_batch *batch;
>> +
>> +	batch = this_cpu_ptr(&ppc64_tlb_batch);
>> +
>> +	if (batch->index)
>> +		__flush_tlb_pending(batch);
>> +}
>> +
>
> This looks a bit scary since arch_flush_lazy_mmu_mode() is getting
> called from several of the places in later patches(). 
>
> Although I think arch_flush_lazy_mmu_mode() will only always be called
> in nested lazy mmu case right?
>
> Do you think we can add a VM_BUG_ON(radix_enabled()); in above to make
> sure the above never gets called in radix_enabled() case. 
>
> I am still going over the patch series, but while reviewing this I
> wanted to take your opinion.
>
> Ohh wait.. There is no way of knowing the return value from
> arch_enter_lazy_mmu_mode().. I think you might need a similar check to
> return from arch_flush_lazy_mmu_mode() too, if radix_enabled() is true.
>

Now that I have gone through this series, it seems plaussible that since
lazy mmu mode supports nesting, arch_flush_lazy_mmu_mode() can get
called while the lazy mmu is active due to nesting.. 

That means we should add the radix_enabled() check as I was talking in
above i.e. 

@@ -38,6 +38,9 @@ static inline void arch_flush_lazy_mmu_mode(void)
 {
        struct ppc64_tlb_batch *batch;

+       if (radix_enabled())
+               return;
+
        batch = this_cpu_ptr(&ppc64_tlb_batch);

        if (batch->index)

Correct? Although otherwise also I don't think it should be a problem
because batch->index is only valid during hash, but I still think we can
add above check so that we don't have to call this_cpu_ptr() to check
for batch->index whenever flush is being called.

-ritesh


From xen-devel-bounces@lists.xenproject.org Wed Nov 05 10:43:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 10:43:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156098.1485395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGazL-0005Qn-BZ; Wed, 05 Nov 2025 10:43:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156098.1485395; Wed, 05 Nov 2025 10:43:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGazL-0005Qg-8F; Wed, 05 Nov 2025 10:43:39 +0000
Received: by outflank-mailman (input) for mailman id 1156098;
 Wed, 05 Nov 2025 10:43: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=kLci=5N=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vGazJ-0005Qa-Uw
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 10:43:38 +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 47be7431-ba34-11f0-980a-7dc792cee155;
 Wed, 05 Nov 2025 11:43:35 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AM9PR03MB7850.eurprd03.prod.outlook.com (2603:10a6:20b:431::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.8; Wed, 5 Nov
 2025 10:43:33 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9298.006; Wed, 5 Nov 2025
 10:43: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: 47be7431-ba34-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Fhc/ZhB1WIhBFHTaSDR9ElLDODt4hyqfG6dbY75IwTZeBp6FN35HSAsDt3wNRD+dxF8Wvzx8cY/Ouw4TNGHQMd21aErA27Qb69qSUZf1hyuumIn8yKGRu/VymNQait8O5ekpPNoM9rZy6rvHRqGidPnB9+hg37SEgRgKhHCDGdH1DqedDc0jxRMXr3k2rZi97/J21DI/Sb2zG5TEl85r04mz8XHNEE+7pD7jGvS6P64j2dQJ/C6vG3Ouug+PN3hk8goBDvZPdZh53xoV1mobC9HA7xiBQVRBh01dDsi5547gNqY0K0gvgQtpDTZqmAHZZvy1rpMJxbov90E/fNY4jQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SRGZMcfCwTi8UrNj8i4pmZkdfJpeanRI9kKk9JsV5CE=;
 b=s5oTlDtF44G/BKmRwemPhzLV5HnrvW1Z7+hwYkDe2oYgqQYAW6zkDUa0SuSdLCRetps/zv9mqPAgZU6QpPd+oCIrEQ/k/+e2UqlCt9lnPRCFBk8/yRO8PIh3M9vX7pWsfU0rrxS6cWt4akZcAfBtf14tnH9iLoLGzt9w/MCZXdF/XrTvgks8TELD+yhXrDTzGmgsDfnJxM6Xm1hfUS3rGWVXc76aN3cbb5XY3bZV/t2aEWT/dTSlb4a6Ku0A0uW9wDn/hk+vF7Rs/jpO9eobf7Ocf4l446jL6v8Te7DDqEleH5tizRT+LpzYaXGpLCMhS5kwszHDm2Mf6CJeScnhsg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SRGZMcfCwTi8UrNj8i4pmZkdfJpeanRI9kKk9JsV5CE=;
 b=sC2VgcGptXZ1g+ML78Mzt6RO4NuUDQwVQRMSg/61UPlhf/yQuY+xdqf96SAFUlQ5OO/OcyhVXc5/UX0KmPPeIOpsdeNgFpuSXSdpYGQQtldLHhYpDKYKUKnJQovZvk6wMAofuBgf5odSGA3rPYKyrZAv5F4fnm79Q/2nl6TRiVFyL0MvNjeNWvkYAcFpmhs+QMm2BoquTK5i/HoBeMfuqxFliZIG8sSPDZ5+UcxQcnfYuP2Cm9BkIKJLqbFTghjm1nuW88hCnAbSh34+3M7uZw+pL3j5Kpn8lcUwI/kkAz3mMman96S30gl0z27/zTcWYbi/z2EYM7wTEMRPu7x//Q==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <e4f69cb4-6552-4e75-808e-af58b138522f@epam.com>
Date: Wed, 5 Nov 2025 12:43:31 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen: make VMTRACE support optional
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Penny Zheng <Penny.Zheng@amd.com>
References: <20251031212005.1338212-1-grygorii_strashko@epam.com>
 <aab7824b-4485-41f4-8ad6-572ffa0ca4f3@vates.tech>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <aab7824b-4485-41f4-8ad6-572ffa0ca4f3@vates.tech>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0037.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::17) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|AM9PR03MB7850:EE_
X-MS-Office365-Filtering-Correlation-Id: 1ef3dcbf-5866-41cb-dc81-08de1c582a91
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RVF6OHVBYXdJTzJ3eTNEQWcycTVJRGlEVFJqemFmMmlTbklWK09sdGUrb2lJ?=
 =?utf-8?B?SU13TFVNdGd3Z2NZckVrMlRRZ3VGcENndCtsb001cVRERDZ2Q2FaY3BQcHFM?=
 =?utf-8?B?Q0doYmZiVGRIdytxbzhhNkpjV29oOW56REo5Yi9DRDdpcm9PTnRKWXFXWlNW?=
 =?utf-8?B?NDcxWUJYdG1DVHVHd3VSQjdlYncyc0hOSUhyYjlmeGFENkVLUzM5TlVZeGJk?=
 =?utf-8?B?S2ZpWUhjZFFvbWNPdEJDUWVwa0RXMFJpSjhRUVo2d1FwbGRnUi9Wc3BhZUVM?=
 =?utf-8?B?Z1RqelpYaHpSNXM0TGRwaU5BbGM3WE8xQkxjZDFxWHVCVWZXL2MvZjlybGgz?=
 =?utf-8?B?bHlkajNROXdSMHdqckNmVnpFUGJWd3E0cUl1dWRGMmU1ZnVGZVlNSTRyN1k5?=
 =?utf-8?B?SC96UzFGbytlVXdRUWY1MjFUMXpleDVUSXlSampaSkZZZkNEbE1KVW5pVVJy?=
 =?utf-8?B?RHR3aHczNkdlUjRab3JDd1pwSWd5cXFrekdCd1NULzNZNDkyeHhCTXk4VU94?=
 =?utf-8?B?Zk5ySXorTmZYaEh6aUJRdWtpNzFsZ1dGY1FCY3JoWEhEOGVTSFJ1UTdHT1JQ?=
 =?utf-8?B?T05DSW9OV1EyUUlVVlVuL3dLeVhsTjBwSUVQZExFbG04Z0Jac0xNVXFMY3g3?=
 =?utf-8?B?NW5EMUZ1TXcvc1BOaUphdXpwVlNNdHdOVDlUS0dBOTllWHY5M1UwVUxxSTNU?=
 =?utf-8?B?UkdLdTlFSjROSWYwVUdLS2lSMTE4dXA0VU40VCtRK2xXcTVKcFdUQTRDejNV?=
 =?utf-8?B?dVZROTRzZEU1L1o4K0VHNit6SWx2ZTVsZFZWbW93Nk40UVVydE42ZHN6Rncx?=
 =?utf-8?B?cFdhVmxZTkpOZ0Q3T0dTWEZJODUzM0tCanZGU0ppN3ZWSmwyVVBFZCtjbzBm?=
 =?utf-8?B?QlZGSmRDMmVxZjFqTERFbXpFMTk5WlZOTnUzRjNzRmZ5dDlBYzFIUHl2QXhU?=
 =?utf-8?B?OENLb0x5bzJuc3dpSy9GQitkV3ZJWStUbkdwd1REaFFjZ3Z0czVWL3o3bXg5?=
 =?utf-8?B?ZUZVdXhlb3NXakFKVVY3RzUrVndva3lHQ2ZXTlZLZ0dseC90ZGZxWUVzMWNL?=
 =?utf-8?B?dWZOWldqUXBPL1pOb1BWdm9oVGd6MmlnbVR6Vlh2VGZUVVZQaVl2NlNVb0dS?=
 =?utf-8?B?Q3dBMkE4RWNKSmNxcE9zL2pxdUlPaXNiNWtaeUJhOTBIUExaSjJsZUd3TEZ1?=
 =?utf-8?B?eVl3cUs2VDhwQjViSVdhV01MNFQzb0J0UlVKSFFOQVpxQUpFb201bEV2dUpV?=
 =?utf-8?B?VkduUEdtNEtERlNzYm81NlllKzF0UGd5MnNqMnZzdXNqcWF0eDRsMXdsSUdH?=
 =?utf-8?B?YUFMd1YvRDdHVG9EK0V2Y0dQMDdkYW51aTVTRWR4dFBJKzlSYTY1R3FCZW5X?=
 =?utf-8?B?OG8wa29TTXhBeWhGempydU95ckduMVpyNlg3ME5uUThQajJnSXo2OUN3NTFw?=
 =?utf-8?B?MzdNM2lLSm5GYnhJR2VPNDFtd2g3bEFBN05XcnhIYjkvU1JOL2UzNEc4RkEx?=
 =?utf-8?B?ZXhESkhjSFc5YVRyU0J1T1hOUExIVHRZTmdUNGhXU1R6ZTdIRFUyRTUyb255?=
 =?utf-8?B?bWRxRHNNZmc1ZGxpd3NuNG1uUUM1YlNPZDJsaG5FVkYwODJzalo2Qk10WExq?=
 =?utf-8?B?YWdyYVdXdVFJNDZKVisyQVM3ZGNmeGNGaDV2R0R3ZkpMalI4aFFHVGJRcXJw?=
 =?utf-8?B?eVYyK1NVcGxDcDk1cmZzbkFjaGUvS1ZhbnlJdkNlTU9FMWpVMVREcnFBeU5D?=
 =?utf-8?B?TGlKOWlBYlRIOTBNK3pUd242bUFYdG8zUzVLcS9ZQkNUT0VLeHdVWDNNaElR?=
 =?utf-8?B?RkEzNHgwV2RzU2JRZWVGTG10YlcwOGtjbXhxckZpWkhaMC8xYitvd3ppM290?=
 =?utf-8?B?T2Q5ZWw3cXdXN2hna2thOEhjUmZyZHhYaDdTTC9jT3NmSkk2bUFkdUorZlFn?=
 =?utf-8?Q?YNcaBDW0wHSHyqur2KA9k+bGvYaW8Gpy?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cGgzQXFiQUVNdHFxRlBPZFR6TnNLYzRON3N5OFg3WjZTT0czRDQyVjRFblE2?=
 =?utf-8?B?cEN6K3h4bkFzZWZUd0VLeU5wWitld2RVQmNtWU9sMGNLY0pQK3JJT1oxeGZ3?=
 =?utf-8?B?b0o3eEEzSVBITFlkWmdtclB2VSt0TThhMy9CRXM0Qi9Jd3VDdlBwQUxnNHdl?=
 =?utf-8?B?TEZSUFRtOUVXcEt2V1BVV0o2VXdhRklzRUk0d3gyUCtWYlJzclNXU1dpOE5O?=
 =?utf-8?B?ZWd4T1ZWR0RMTlNyc2JGSW9JUnExRkRuUmtEbSt2RjZGcFZORGlFSGFuNnlC?=
 =?utf-8?B?R01PVXAveEdCU0hJK2h6bnlsb2tFdXpubVJUUzRrN1lJWGJ5SG9aNEk3VS9O?=
 =?utf-8?B?SC9UOTJEbGZEejR4RGZFNUh2RVlhM1VMMXJ3TENPY3ZTb1NvVHE1Nmt5anda?=
 =?utf-8?B?MWNRYmg2V2Z1VDI1Uk9QTTk4TGE0bkFOellMNEY5bjhuL0VISDlwRzVOWHpm?=
 =?utf-8?B?KysxeVJSSWxwZnQ3cDFYU2VBY3BwU283dDJOeWp0Q3JwTldmSVIreVlPbFhM?=
 =?utf-8?B?NTBwRm9JNCtsdnBYMlJyMTdLNXFQSDJDVEJpR0luWVZmWmwwYm1CMWRFd1BE?=
 =?utf-8?B?VDZxRVhCV2tqMlVlUC81RndwMlRtU0pNZnA0cVg3bVhGaWN2YVlrREFZTnJM?=
 =?utf-8?B?dEFvdEFYeXdPWmpsRVFlRGFiWGJqQU43ZmNKMmRnb2VRSjJRQkRVdXdpaDNB?=
 =?utf-8?B?c3VIaHQxbFhSaTBacHJRNmYvOWtlYStVOVNCOVBCQ1NIb0h3L1c1MHlDQ3Bi?=
 =?utf-8?B?dW5NaEgrZmk2YXRTNWMzaDJGQ0hqNm80cHNPb1NlTXo5M3dxTUIxSWcrTllZ?=
 =?utf-8?B?Y2l1SFpGN1pxYmg5MDl1MGNocVYwdUErME51YUFCanpaNmFhMFdSVWU0Q2JO?=
 =?utf-8?B?SFdXOFhWMEdTM1pzUWVINkk3M3U2UG9wTGNLaWlCelhEOGlZMmRBem0rTG90?=
 =?utf-8?B?YjVYeUw3NG5qTEV1MmJSL0tBazdPb1o0VHF1WWp3TDBuYTFCMFo2bk1qWVdZ?=
 =?utf-8?B?MVJOdDI1T1FFZzM1djhGejlIU3pXeEpHeWs2Ulg0ZW5pWjg5U2FFbmFodDlM?=
 =?utf-8?B?dCtRRDhaZ21kaGtXc0QvajZaSTBDQ2ZWVk5yK0prVU11VVMzNUFYcGVRSkZR?=
 =?utf-8?B?NUlSQVRzTFB6WFpJZWRsS3F6Z2RieWcwZlY4Z2lkcU1VTXpCZ3NiNUlONzZQ?=
 =?utf-8?B?RTVQckZnVEJ6UEdzcEo2eGpQck12ZjJuZ1NYbzRJQ3daeE1neEVxMWZoTlhp?=
 =?utf-8?B?d1RLNmcya2tObWJjRlVvWkFkZUp1MGVKdjg5MXBhbTE0dnRXWGpjK2l5V2tR?=
 =?utf-8?B?dzkweEUxdUVFTTR2ZXVBaEZidGp4UmVReVdNUGFqRjRuVG9IcER1Mk5hT2Fp?=
 =?utf-8?B?WVZRYjhPRlZmRlZ0SnhFZGtBVzZhV3lLUGp6VS9pUkx4VE11ZVpFT2hYNDNn?=
 =?utf-8?B?cVVvd0oyVXB1ZVMxS2x3S2lrek1vRkV4MFp5U3dRbzBwZ1RYN1hPSmdFK2tB?=
 =?utf-8?B?bkErUHBaZ2JaL3loMkV6QzFJZk8zdlJjV2ovNFpoRDJWdDNiWU96WDRHRzUy?=
 =?utf-8?B?RURpTWxKVkE0amp2RHNtdHBCQ3huV2l4amw5M1JQaDE0NWZkVmZJMjVrbERa?=
 =?utf-8?B?ZnlvbXk2c1YxZllxckRlZG5BdnlIWUJmSk9kZ0EvU0hkUXNpNHlMWGl0azVN?=
 =?utf-8?B?MjNOVjJzQ2QxSzFZWSswUlkxRUlKdENHNytVU3FyRnlRR3N4SEkzd29TdHQr?=
 =?utf-8?B?VlhEUzliZnRNYVhRMUhobjJwV2pTclh0QjlzbXZWNVJqZFZyYlkyMTlTd1pp?=
 =?utf-8?B?UDNlaGlDSzVwTHRQWndBTk5SQ1lKZmo4aU5CSDEwVTB3NTQxS3Yxd2Q4bTNj?=
 =?utf-8?B?MUtDbDU4K0RaRlFIV3NZU0h4Wjl3RGJlWGRJM281aHcrVEV1VHFiNWxEUHZV?=
 =?utf-8?B?amRheGZDZ0lneGxzQUhHUG1ScVZidjBuMlNDNWtucnRlYytVV1B0Z3Zic0N4?=
 =?utf-8?B?ekxvdXBBL2xHdjJqcStNazhEN2poY0ZSUEZ3Wmp6S1oweEtVOUNtSTFLOXhV?=
 =?utf-8?B?RWZBS2V3Wkxid0lHeFg3WmtPbGlFVktNN2s4OEcvZnRCUS95WFFoMTNGMEJo?=
 =?utf-8?B?RFZTZWlRQkN3YUZsbkFjSlV3M3lLbkxWWkloNnowTGs4b3ZXTDlCQzN6U012?=
 =?utf-8?B?Nmc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1ef3dcbf-5866-41cb-dc81-08de1c582a91
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2025 10:43:33.1578
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: w3h9acnDYCxUjWoKI4Ci/zFKyclZELP2lzfzqGVYfJ5pWySiQqAId8NhkQXpJCz30qkjzo5Wy8JSNO+NlAnCP0KZ2gItfJ5ViLuycA0fCiM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7850



On 03.11.25 11:47, Teddy Astie wrote:
> Le 31/10/2025 Ã  22:24, Grygorii Strashko a Ã©critÂ :
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> The VMTRACE feature 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 two Kconfig options:
>> - CONFIG_HAS_VMTRACE which allows Platform/Arch to advertise VMTRACE
>> support readiness
>> - CONFIG_VMTRACE to enable/disable the feature.
>>
> 
> I like the idea of making it optional since it's only used in specific
> contexts.
> 
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> ---
>> Based on top of patch "domain: adjust soft-reset arch dependency" [1]
>>
>> [1] https://patchwork.kernel.org/project/xen-devel/patch/c9c8c9c6-a155-4986-bf77-5766cdcd6024@suse.com/
>>
>>    xen/Kconfig.debug                       | 15 +++++++++++++++
>>    xen/arch/x86/domctl.c                   |  4 ++++
>>    xen/arch/x86/hvm/Kconfig                |  1 +
>>    xen/arch/x86/hvm/vmx/vmcs.c             |  2 ++
>>    xen/arch/x86/hvm/vmx/vmx.c              | 10 ++++++++++
>>    xen/arch/x86/include/asm/guest-msr.h    |  2 ++
>>    xen/arch/x86/include/asm/hvm/hvm.h      |  9 +++++++++
>>    xen/arch/x86/include/asm/hvm/vmx/vmcs.h |  2 ++
>>    xen/arch/x86/mm/mem_sharing.c           |  2 ++
>>    xen/arch/x86/vm_event.c                 |  6 ++++--
>>    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 ++++
>>    15 files changed, 77 insertions(+), 3 deletions(-)
>>
>> diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
>> index d900d926c555..70ec4f0d14a5 100644
>> --- a/xen/Kconfig.debug
>> +++ b/xen/Kconfig.debug
>> @@ -155,4 +155,19 @@ config DEBUG_INFO
>>    	  "make install-xen" for installing xen.efi, stripping needs to be
>>    	  done outside the Xen build environment).
>>    
>> +config HAS_VMTRACE
>> +    bool
>> +
>> +config VMTRACE
>> +    bool "HW VM tracing support"
>> +    depends on HAS_VMTRACE
>> +    default y
>> +    help
>> +      Enables HW VM tracing support which allows to configure HW processor
>> +      features (vmtrace_op) to enable capturing information about software
>> +      execution using dedicated hardware facilities with minimal interference
>> +      to the software being traced. The trace date can be retrieved using buffer
>> +      shared between Xen and domain
>> +      (see XENMEM_acquire_resource(XENMEM_resource_vmtrace_buf)).
>> +
>>    endmenu

[...]

>>    
>> diff --git a/xen/arch/x86/vm_event.c b/xen/arch/x86/vm_event.c
>> index fc349270b9c5..f4c8696ce54e 100644
>> --- a/xen/arch/x86/vm_event.c
>> +++ b/xen/arch/x86/vm_event.c
>> @@ -253,7 +253,9 @@ void vm_event_fill_regs(vm_event_request_t *req)
>>        req->data.regs.x86.shadow_gs = ctxt.shadow_gs;
>>        req->data.regs.x86.dr6 = ctxt.dr6;
>>    
>> +#ifdef CONFIG_VMTRACE
>>        if ( hvm_vmtrace_output_position(curr, &req->data.regs.x86.vmtrace_pos) != 1 )
>> +#endif
>>            req->data.regs.x86.vmtrace_pos = ~0;
> 
> This if-def looks very oddly placed.

I assume you are asking for hvm_vmtrace_output_position() stub, Right?

> 
>>    #endif
>>    }
>> @@ -303,12 +305,12 @@ void vm_event_emulate_check(struct vcpu *v, vm_event_response_t *rsp)
>>    #endif
>>    }
>>    
>> +#ifdef CONFIG_VMTRACE
>>    void vm_event_reset_vmtrace(struct vcpu *v)
>>    {
>> -#ifdef CONFIG_HVM
>>        hvm_vmtrace_reset(v);
>> -#endif
>>    }
>> +#endif
>>    
>>    /*
>>     * Local variables:
>> diff --git a/xen/common/domain.c b/xen/common/domain.c
>> index 7dcd466e5a12..2be6ee03d004 100644
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -136,7 +136,9 @@ struct vcpu *idle_vcpu[NR_CPUS] __read_mostly;
>>    
>>    vcpu_info_t dummy_vcpu_info;
>>    
>> +#ifdef CONFIG_VMTRACE
>>    bool __read_mostly vmtrace_available;
>> +#endif
>>    
>>    bool __read_mostly vpmu_is_available;
>>    
>> @@ -318,6 +320,7 @@ static void vcpu_info_reset(struct vcpu *v)
>>    
>>    static void vmtrace_free_buffer(struct vcpu *v)
>>    {
>> +#ifdef CONFIG_VMTRACE
>>        const struct domain *d = v->domain;
>>        struct page_info *pg = v->vmtrace.pg;
>>        unsigned int i;
>> @@ -332,10 +335,12 @@ static void vmtrace_free_buffer(struct vcpu *v)
>>            put_page_alloc_ref(&pg[i]);
>>            put_page_and_type(&pg[i]);
>>        }
>> +#endif
>>    }
>>    
>>    static int vmtrace_alloc_buffer(struct vcpu *v)
>>    {
>> +#ifdef CONFIG_VMTRACE
>>        struct domain *d = v->domain;
>>        struct page_info *pg;
>>        unsigned int i;
>> @@ -377,6 +382,9 @@ static int vmtrace_alloc_buffer(struct vcpu *v)
>>        }
>>    
>>        return -ENODATA;
>> +#else
>> +    return 0;
>> +#endif
>>    }
>>    
>>    /*
>> @@ -825,7 +833,9 @@ struct domain *domain_create(domid_t domid,
>>            ASSERT(!config->altp2m.nr);
>>    #endif
>>    
>> +#ifdef CONFIG_VMTRACE
>>            d->vmtrace_size = config->vmtrace_size;
>> +#endif
>>        }
>>    
>>        /* Sort out our idea of is_control_domain(). */
>> diff --git a/xen/common/memory.c b/xen/common/memory.c
>> index 3688e6dd5032..66dc7f7a0a41 100644
>> --- a/xen/common/memory.c
>> +++ b/xen/common/memory.c
>> @@ -1155,8 +1155,10 @@ static unsigned int resource_max_frames(const struct domain *d,
>>        case XENMEM_resource_ioreq_server:
>>            return ioreq_server_max_frames(d);
>>    
>> +#ifdef CONFIG_VMTRACE
>>        case XENMEM_resource_vmtrace_buf:
>>            return d->vmtrace_size >> PAGE_SHIFT;
>> +#endif
>>    
>>        default:
>>            return 0;
>> @@ -1198,6 +1200,7 @@ static int acquire_ioreq_server(struct domain *d,
>>    #endif
>>    }
>>    
>> +#ifdef CONFIG_VMTRACE
>>    static int acquire_vmtrace_buf(
>>        struct domain *d, unsigned int id, unsigned int frame,
>>        unsigned int nr_frames, xen_pfn_t mfn_list[])
>> @@ -1220,6 +1223,7 @@ static int acquire_vmtrace_buf(
>>    
>>        return nr_frames;
>>    }
>> +#endif
>>    
> 
> Given that vmtrace feature is fairly isolated in VMX code, wouldn't it
> be better to move all vmtrace related functions (including vmx_init_ipt)
> in a separate vmtrace.c file and make such file gated behind
> CONFIG_VMTRACE ?
> 

Are you thinking about:
  xen/common/
  |- vmtrace.c
  xen/arch/x86/hvm/vmx/
  |- vmtrace.c
?

or smth else?

[...]

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Nov 05 11:30:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 11:30:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156112.1485404 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGbiJ-0003Vy-IM; Wed, 05 Nov 2025 11:30:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156112.1485404; Wed, 05 Nov 2025 11:30:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGbiJ-0003Vr-Fj; Wed, 05 Nov 2025 11:30:07 +0000
Received: by outflank-mailman (input) for mailman id 1156112;
 Wed, 05 Nov 2025 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=fQBk=5N=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vGbiI-0003FY-35
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 11:30:06 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c5dff474-ba3a-11f0-9d16-b5c5bf9af7f9;
 Wed, 05 Nov 2025 12:30:04 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-b7277324204so25026566b.0
 for <xen-devel@lists.xenproject.org>; Wed, 05 Nov 2025 03:30:04 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b723d3a2fe7sm488099866b.4.2025.11.05.03.29.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 05 Nov 2025 03:29: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: c5dff474-ba3a-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762342203; x=1762947003; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dmCwwXku2+1/JMALc8pzifXhy1h2tHVWfXtnVGTLoBo=;
        b=CplF72+NttaQOHVgE9H2sgHbQ+6/nos2cM1tamEdMWVnsXdKy1av72Un6wegTg3U63
         jlem/RF6tIkC50Sm/4I87QxnbekgFikB96b3hOnhY0cguBFIR7R/U90kh3cwEOGPSfG9
         jnGts8nEFonSPClEuWNK2f8FZs8bhXinBHyZ1OTO+cydrn2Bid1hH3DyrnJ6APoy6Ico
         OFMQZCeXhA87fkK1FDQHtGjQ1wSt82IPTxS9sgtqBDFy9n/nBsmPrqMukQPj9G5YsJhp
         DikERnSsfMSLZsDIsv+6YYmRdFS1tlkHuB88TvgnsATg30GmAGXPmuHyhRSGk0MNo4Dq
         3hGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762342203; x=1762947003;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=dmCwwXku2+1/JMALc8pzifXhy1h2tHVWfXtnVGTLoBo=;
        b=CpRhV7Ih0EOevaLuXuCV70Q/iNdC0fQumr587hsjvp4I7FPRMEfEjv7pHaI0QU2Ayc
         7dZMkyo1pEBnBm5qt0HubKezqZ9e1jMPASM6z5yV+Z9m/h+X+aNRMEBNpqiYHjzm2dVd
         ZXtx74SsL9Yt+YW8x2k5HMEkK1qq+8Li+EwAX6ykxfGlCOBevL/xQdi0Zqv7V9NAusuG
         N9ypKpEQglC53IyzRTM01P2ybZ6Jzo1hp2mLqDTVQ/vTaFRkKp2iYqlH6LO4tOw3JmmX
         zQwAk1YGVm3lsT/q4cX0kkJUeHXaPQhKu20X4KIvvMi+tb3AAFMemTCxjmdO1YiPVwCZ
         BMtA==
X-Forwarded-Encrypted: i=1; AJvYcCUc98IWT9vE4hNPTN+1+kT8OO5YUr9jVFWC32UhyjfVJuyOrbzlA/EDetBSjSGGj0CLiOiHd32TBVU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yze7r3rCNpJNJT7ioIyHy3bDbK3cA20BIsjKDJt1EEuLrApQyQI
	Tntxph4zHoy3T8Kd6I83OEdwyIbOj+6GOD31TPKdx8xrQLDIkbXUbTRB
X-Gm-Gg: ASbGnctmY2cq09GQLjVLRVLJBOrUNpcOLWId2k0gD7bHTIgtK8RBD4czUdlvTSnIuvl
	uhx+GWXjSvf8lopfiNUfm7QEP+5iol2V2UDuGn6//84JlsxnzHdzecji6Rbp4qHMZID9HFVhPWQ
	3Ekb+GPbAB18d9aGOlS1GsNo1/lA4bh5hVKKWeCjR0qT5xvexY9ivtDFMFqvWyf+pfwnli+MiQR
	z9Vn18kX3f2S8slv2HPfD87hOyU1Fs/rtVrNWbASIA/oVoCklpVOKuSM6QRGSwPrKGJeYeNu6Al
	t+r6yJFSNi56dD1CoXdIEXTN29DkXnL77j7sOzDm+nWdVIYD/Ox42n7TX3A5/OsuICRL+0o5j4r
	ZzcPEp3hM5RKukRCEL3ed9YIVLfaf1YDOgEtl/nAkJP+bmV+jhcI1JuXCyTFow6IGXo5g8YRIpD
	Cmxv4XTTbathf0Yov+PsQuXjziRhGajdDoX9US/TcFRObGB+yMVA==
X-Google-Smtp-Source: AGHT+IE2vG7r8CYho0CP/1z15TYNpuk9z/6rZteOwX/GNC9s2AJPnELYU5RlgqEuivo5gzmgzBeJrQ==
X-Received: by 2002:a17:907:948c:b0:b70:df0d:e2f1 with SMTP id a640c23a62f3a-b72653ec470mr279791866b.28.1762342198724;
        Wed, 05 Nov 2025 03:29:58 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------vymPjakhxxNLm3P05sF51UWp"
Message-ID: <c64f865b-3a53-41f4-9800-9a85c3a6099b@gmail.com>
Date: Wed, 5 Nov 2025 12:29:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] ocaml/xsd_glue: Fix dynamic linking configuration
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.com>,
 Christian Lindig <christian.lindig@citrix.com>,
 Rob Hoes <Rob.Hoes@citrix.com>, Pau Ruiz Safont <pau.safont@vates.tech>,
 Andrii Sultanov <andriy.sultanov@vates.tech>
References: <20251104165644.4011663-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20251104165644.4011663-1-andrew.cooper3@citrix.com>

This is a multi-part message in MIME format.
--------------vymPjakhxxNLm3P05sF51UWp
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/4/25 5:56 PM, Andrew Cooper wrote:
> The latest oxenstored from Xapi-project fails to start up:
>
>    launch-xenstore[1201]: Starting /usr/sbin/oxenstored...
>    launch-xenstore[1222]: Fatal error: exception
>      Dynlink.Error (Dynlink.Cannot_open_dll "Dynlink.Error (Dynlink.Cannot_open_dll
>      \"Failure(\\\"/usr/libexec/xen//ocaml/xsd_glue/xenctrl_plugin/domain_getinfo_v1.cmxs:
>      undefined symbol: xc_domain_getinfo_single\\\")\")")
>
> This is because domain_getinfo_v1.cmxs isn't dynamically linked correctly.
> Fill in the correct variable, and remove the xen prefix from xenctrl.
>
> Reported-by: Edwin TÃ¶rÃ¶k<edwin.torok@citrix.com>
> Suggested-by: Edwin TÃ¶rÃ¶k<edwin.torok@citrix.com>
> Fixes: a6576011a4d2 ("ocaml/libs: Implement a dynamically-loaded plugin for Xenctrl.domain_getinfo")
> Signed-off-by: Andrew Cooper<andrew.cooper3@citrix.com>
> ---
> CC: Christian Lindig<christian.lindig@citrix.com>
> CC: Rob Hoes<Rob.Hoes@citrix.com>
> CC: Pau Ruiz Safont<pau.safont@vates.tech>
> CC: Andrii Sultanov<andriy.sultanov@vates.tech>
> CC: Oleksii Kurochko<oleksii.kurochko@gmail.com>
>
> For 4.21.  Without this, we can't proceed with deprecate oxenstored.

Release-Acked-By: Oleksii Kurochko<oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii

>
> This wants backporting to 4.20 too.
>
> Previously this was hidden by oxenstored unexpectedly statically linking
> libxenctrl via the ocaml-evtchn bindings, and became exposed when the bindings
> were moved to use libxenevtchn.
> ---
>   tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/Makefile | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/Makefile b/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/Makefile
> index 4be1feacfe24..6356159020c1 100644
> --- a/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/Makefile
> +++ b/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/Makefile
> @@ -11,7 +11,7 @@ OBJS = domain_getinfo_v1
>   INTF = $(foreach obj, $(OBJS),$(obj).cmi)
>   LIBS = domain_getinfo_v1.cmxa domain_getinfo_v1.cmxs
>   
> -LIBS_xsd_glue = $(call xenlibs-ldflags-ldlibs,xenctrl)
> +LIBS_domain_getinfo_v1 = $(call xenlibs-ldflags-ldlibs,ctrl)
>   
>   all: $(INTF) $(LIBS) $(PROGRAMS)
>   
>
> base-commit: 9632ce6fe5b288244d2550cd2e619a55c5168bf8
--------------vymPjakhxxNLm3P05sF51UWp
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/4/25 5:56 PM, Andrew Cooper
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20251104165644.4011663-1-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">The latest oxenstored from Xapi-project fails to start up:

  launch-xenstore[1201]: Starting /usr/sbin/oxenstored...
  launch-xenstore[1222]: Fatal error: exception
    Dynlink.Error (Dynlink.Cannot_open_dll "Dynlink.Error (Dynlink.Cannot_open_dll
    \"Failure(\\\"/usr/libexec/xen//ocaml/xsd_glue/xenctrl_plugin/domain_getinfo_v1.cmxs:
    undefined symbol: xc_domain_getinfo_single\\\")\")")

This is because domain_getinfo_v1.cmxs isn't dynamically linked correctly.
Fill in the correct variable, and remove the xen prefix from xenctrl.

Reported-by: Edwin TÃ¶rÃ¶k <a class="moz-txt-link-rfc2396E" href="mailto:edwin.torok@citrix.com">&lt;edwin.torok@citrix.com&gt;</a>
Suggested-by: Edwin TÃ¶rÃ¶k <a class="moz-txt-link-rfc2396E" href="mailto:edwin.torok@citrix.com">&lt;edwin.torok@citrix.com&gt;</a>
Fixes: a6576011a4d2 ("ocaml/libs: Implement a dynamically-loaded plugin for Xenctrl.domain_getinfo")
Signed-off-by: Andrew Cooper <a class="moz-txt-link-rfc2396E" href="mailto:andrew.cooper3@citrix.com">&lt;andrew.cooper3@citrix.com&gt;</a>
---
CC: Christian Lindig <a class="moz-txt-link-rfc2396E" href="mailto:christian.lindig@citrix.com">&lt;christian.lindig@citrix.com&gt;</a>
CC: Rob Hoes <a class="moz-txt-link-rfc2396E" href="mailto:Rob.Hoes@citrix.com">&lt;Rob.Hoes@citrix.com&gt;</a>
CC: Pau Ruiz Safont <a class="moz-txt-link-rfc2396E" href="mailto:pau.safont@vates.tech">&lt;pau.safont@vates.tech&gt;</a>
CC: Andrii Sultanov <a class="moz-txt-link-rfc2396E" href="mailto:andriy.sultanov@vates.tech">&lt;andriy.sultanov@vates.tech&gt;</a>
CC: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

For 4.21.  Without this, we can't proceed with deprecate oxenstored.</pre>
    </blockquote>
    <pre>Release-Acked-By: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

Thanks.

~ Oleksii</pre>
    <blockquote type="cite"
      cite="mid:20251104165644.4011663-1-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">

This wants backporting to 4.20 too.

Previously this was hidden by oxenstored unexpectedly statically linking
libxenctrl via the ocaml-evtchn bindings, and became exposed when the bindings
were moved to use libxenevtchn.
---
 tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/Makefile b/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/Makefile
index 4be1feacfe24..6356159020c1 100644
--- a/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/Makefile
+++ b/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/Makefile
@@ -11,7 +11,7 @@ OBJS = domain_getinfo_v1
 INTF = $(foreach obj, $(OBJS),$(obj).cmi)
 LIBS = domain_getinfo_v1.cmxa domain_getinfo_v1.cmxs
 
-LIBS_xsd_glue = $(call xenlibs-ldflags-ldlibs,xenctrl)
+LIBS_domain_getinfo_v1 = $(call xenlibs-ldflags-ldlibs,ctrl)
 
 all: $(INTF) $(LIBS) $(PROGRAMS)
 

base-commit: 9632ce6fe5b288244d2550cd2e619a55c5168bf8
</pre>
    </blockquote>
  </body>
</html>

--------------vymPjakhxxNLm3P05sF51UWp--


From xen-devel-bounces@lists.xenproject.org Wed Nov 05 11:33:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 11:33:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156124.1485415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGblC-00046q-4r; Wed, 05 Nov 2025 11:33:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156124.1485415; Wed, 05 Nov 2025 11:33: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 1vGblC-00046j-1S; Wed, 05 Nov 2025 11:33:06 +0000
Received: by outflank-mailman (input) for mailman id 1156124;
 Wed, 05 Nov 2025 11:33: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=fQBk=5N=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vGblA-00046d-KH
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 11:33:04 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 30360758-ba3b-11f0-980a-7dc792cee155;
 Wed, 05 Nov 2025 12:33:02 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-640f0f82da9so2746414a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 05 Nov 2025 03:33:02 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-640e6a5cb52sm4347161a12.23.2025.11.05.03.33.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 05 Nov 2025 03:33: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: 30360758-ba3b-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762342382; x=1762947182; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=I3fbrSR+S0wjwZx2MzK904Nl57+lEsQQsSVR5YtMngU=;
        b=WUJNs3WuZZrAeGlEdbtZzFwcJZQGmL1SfM01QJKCx1UE9XKsC3VipU6TpCo+v0R3bH
         KeSlcqUi/iqh1Po/vgccq9f0VsDNLjczvZBvQKbEnKDsyWO2tOi1y7ydnkWPacoy7zSE
         NO1IRTfEBD72qUgwIznxhtvXyECzEH0ZjCFiKp47jpiLf13yHg+ar+YDM1R6nlBphP2T
         QPfX+PQi02//V7zf2Vdio99YHt1qwKABhcXTHMocyNSgrJKRejOjiYAt80fSLNGNEQn8
         kg2Ddldf0qSjLwSjOfSSl06qjGzB/BG0LH8ACbrdgd1IEEBdesJUIdprECmrURimMCI1
         SbVA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762342382; x=1762947182;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=I3fbrSR+S0wjwZx2MzK904Nl57+lEsQQsSVR5YtMngU=;
        b=Cox7P536+8Kya08HAMT2dVuW2DCUUAPbLXD4apg0bxPJb6nErY22OVVupOnqQEjk0Q
         3n0eSKtb74HUxMd2jyNCUT16oPhx8GW5T/Yn2SSGwpA9cE8VYtkWADSzUnFki9lE3z8f
         lpo2nU8fKViOxSgSFdQsiiQ+/q1A6QjlTfjdT7hfg/CNuRstWSXudCuTbtKFVDdBA5RX
         /VaCHczNSqVuRfIPGQ43SL7ZxCAmQgd8LMChvcModXLcDXMnzdmVAX6uTFrXSLmEst0G
         Pu4F7elJrRnwrigcpwSAjkTg3hzNMP8hNJD9eXA1IRRX1+7P+cgeU9IIpRNc5QM3vKOn
         Pd8A==
X-Forwarded-Encrypted: i=1; AJvYcCVtOA2QI9o/0ShCbNskJ44YUS95H1MYE7nTXY0NFc+1dSG98QWRPWSo4G08cP7G8Fh+HHSYTv/XC6E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDS9jFauA8VhvK7APFoHUtFX6W0T1P7VN5dFlFT79RCTnW4g2y
	dIwTrMA/z79ddt0ue5LlkFzdS7b13N2DpCai48IbY0qXtzaAzMRza+d+
X-Gm-Gg: ASbGncv/TNM9NxBFHq+Mzmy9UEfPbjAoEx3XeMLlHQQnrM1uhd5itp2Cv91Z8ylPAGB
	5Cd/2Z65mkwshJJKDpG3sXGSRJAB6y4UV81jFapA8OWmfQoZxn52JfZmAuC5HKWeg4Ux98aKpiE
	ENClaaUAY5T5LzPeq4exd+twGsOfPfaBqypShi7hZbMvd0Z8Ml4/QCShDOOosJC7j2qJ2tbT7DD
	KGHmbjM8hgCJw8M33+dLd0dtEIfqaws2mQisj10W2bSEnzZpUnvdhg7KOmwPUmUNTyX8J525Kul
	fgn1V9Eg9rHz/a2D8FPVGUojMqP5HhtTfeICpGUngJw0PneSVCQBvPXykwT2O19vT8KPfL7qccY
	5zNpKvPfJH51uCvfkg51RlH8UpAjR8CMriOgppd31w4CnmZCsfJe5AD97rr+B0O3mThEAUBBpKZ
	n8oJdak8tT8PMmYfGo/GnhxiGcovR2i9mE1nuORmGubG4Z3qjRiw==
X-Google-Smtp-Source: AGHT+IFfxiQQE/szujT+Xc8iyZvMhxrB2hkpgxdfmS3xI5cIhmKMS52QQMN0tGvMrXUW6rQ853A7Sw==
X-Received: by 2002:a05:6402:26cd:b0:640:ccb0:f4e9 with SMTP id 4fb4d7f45d1cf-64105a3ee29mr2289182a12.19.1762342381584;
        Wed, 05 Nov 2025 03:33:01 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------tc1rLMnO1ZU67CxLD9ETtSQQ"
Message-ID: <3baba476-9d64-4619-b391-4afcc5fd7dba@gmail.com>
Date: Wed, 5 Nov 2025 12:33:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] domain: adjust soft-reset arch dependency
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Penny Zheng <Penny.Zheng@amd.com>,
 Christopher Clark <christopher.w.clark@gmail.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Timothy Pearson <tpearson@raptorengineering.com>
References: <c9c8c9c6-a155-4986-bf77-5766cdcd6024@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <c9c8c9c6-a155-4986-bf77-5766cdcd6024@suse.com>

This is a multi-part message in MIME format.
--------------tc1rLMnO1ZU67CxLD9ETtSQQ
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 10/30/25 1:10 PM, Jan Beulich wrote:
> Arm's arch_domain_soft_reset() returning -ENOSYS is quite unhelpful: This
> way a domain will be crashed if a tool stack mistakenly invokes
> XEN_DOMCTL_soft_reset on it. Instead the tool stack should be told of its
> mistake.
>
> Introduce HAS_SOFT_RESET, implied only by x86. "imply" rather than
> "select" such that HAS_SOFT_RESET can later gain a dependency on
> MGMT_HYPERCALLS. That way HAS_SOFT_RESET will go off when
> MGMT_HYPERCALLS is off.
>
> Check the new setting early in domctl handling, and compile out the thus
> dead (when HAS_SOFT_RESET=n) domain_soft_reset() as well as its dedicated
> helpers.
>
> Signed-off-by: Jan Beulich<jbeulich@suse.com>

LGTM:

Reviewed-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii

>
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -875,11 +875,6 @@ void arch_domain_unpause(struct domain *
>   {
>   }
>   
> -int arch_domain_soft_reset(struct domain *d)
> -{
> -    return -ENOSYS;
> -}
> -
>   void arch_domain_creation_finished(struct domain *d)
>   {
>       p2m_domain_creation_finished(d);
> --- a/xen/arch/ppc/stubs.c
> +++ b/xen/arch/ppc/stubs.c
> @@ -214,11 +214,6 @@ void arch_domain_unpause(struct domain *
>       BUG_ON("unimplemented");
>   }
>   
> -int arch_domain_soft_reset(struct domain *d)
> -{
> -    BUG_ON("unimplemented");
> -}
> -
>   void arch_domain_creation_finished(struct domain *d)
>   {
>       BUG_ON("unimplemented");
> --- a/xen/arch/riscv/stubs.c
> +++ b/xen/arch/riscv/stubs.c
> @@ -188,11 +188,6 @@ void arch_domain_unpause(struct domain *
>       BUG_ON("unimplemented");
>   }
>   
> -int arch_domain_soft_reset(struct domain *d)
> -{
> -    BUG_ON("unimplemented");
> -}
> -
>   void arch_domain_creation_finished(struct domain *d)
>   {
>       BUG_ON("unimplemented");
> --- a/xen/arch/x86/Kconfig
> +++ b/xen/arch/x86/Kconfig
> @@ -29,6 +29,7 @@ config X86
>   	select HAS_PCI_MSI
>   	select HAS_PIRQ
>   	select HAS_SCHED_GRANULARITY
> +	imply HAS_SOFT_RESET
>   	select HAS_UBSAN
>   	select HAS_VMAP
>   	select HAS_VPCI if HVM
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -1030,6 +1030,7 @@ void arch_domain_unpause(struct domain *
>           viridian_time_domain_thaw(d);
>   }
>   
> +#ifdef CONFIG_HAS_SOFT_RESET
>   int arch_domain_soft_reset(struct domain *d)
>   {
>       struct page_info *page = virt_to_page(d->shared_info), *new_page;
> @@ -1131,6 +1132,7 @@ int arch_domain_soft_reset(struct domain
>   
>       return ret;
>   }
> +#endif /* CONFIG_HAS_SOFT_RESET */
>   
>   void arch_domain_creation_finished(struct domain *d)
>   {
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -155,6 +155,9 @@ config HAS_PMAP
>   config HAS_SCHED_GRANULARITY
>   	bool
>   
> +config HAS_SOFT_RESET
> +	bool
> +
>   config HAS_STACK_PROTECTOR
>   	bool
>   
> --- a/xen/common/argo.c
> +++ b/xen/common/argo.c
> @@ -2351,6 +2351,7 @@ argo_destroy(struct domain *d)
>       write_unlock(&L1_global_argo_rwlock);
>   }
>   
> +#ifdef CONFIG_HAS_SOFT_RESET
>   void
>   argo_soft_reset(struct domain *d)
>   {
> @@ -2374,3 +2375,4 @@ argo_soft_reset(struct domain *d)
>   
>       write_unlock(&L1_global_argo_rwlock);
>   }
> +#endif /* CONFIG_HAS_SOFT_RESET */
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1687,6 +1687,7 @@ void domain_unpause_except_self(struct d
>           domain_unpause(d);
>   }
>   
> +#ifdef CONFIG_HAS_SOFT_RESET
>   int domain_soft_reset(struct domain *d, bool resuming)
>   {
>       struct vcpu *v;
> @@ -1724,6 +1725,7 @@ int domain_soft_reset(struct domain *d,
>   
>       return rc;
>   }
> +#endif /* CONFIG_HAS_SOFT_RESET */
>   
>   int vcpu_reset(struct vcpu *v)
>   {
> --- a/xen/common/domctl.c
> +++ b/xen/common/domctl.c
> @@ -466,6 +466,12 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe
>   
>       case XEN_DOMCTL_soft_reset:
>       case XEN_DOMCTL_soft_reset_cont:
> +        if ( !IS_ENABLED(CONFIG_HAS_SOFT_RESET) )
> +        {
> +            ret = -EOPNOTSUPP;
> +            break;
> +        }
> +
>           if ( d == current->domain ) /* no domain_pause() */
>           {
>               ret = -EINVAL;
> --- a/xen/common/grant_table.c
> +++ b/xen/common/grant_table.c
> @@ -3962,6 +3962,7 @@ int gnttab_release_mappings(struct domai
>       return 0;
>   }
>   
> +#ifdef CONFIG_HAS_SOFT_RESET
>   void grant_table_warn_active_grants(struct domain *d)
>   {
>       struct grant_table *gt = d->grant_table;
> @@ -4006,6 +4007,7 @@ void grant_table_warn_active_grants(stru
>   
>   #undef WARN_GRANT_MAX
>   }
> +#endif /* CONFIG_HAS_SOFT_RESET */
>   
>   void
>   grant_table_destroy(
--------------tc1rLMnO1ZU67CxLD9ETtSQQ
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 10/30/25 1:10 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:c9c8c9c6-a155-4986-bf77-5766cdcd6024@suse.com">
      <pre wrap="" class="moz-quote-pre">Arm's arch_domain_soft_reset() returning -ENOSYS is quite unhelpful: This
way a domain will be crashed if a tool stack mistakenly invokes
XEN_DOMCTL_soft_reset on it. Instead the tool stack should be told of its
mistake.

Introduce HAS_SOFT_RESET, implied only by x86. "imply" rather than
"select" such that HAS_SOFT_RESET can later gain a dependency on
MGMT_HYPERCALLS. That way HAS_SOFT_RESET will go off when
MGMT_HYPERCALLS is off.

Check the new setting early in domctl handling, and compile out the thus
dead (when HAS_SOFT_RESET=n) domain_soft_reset() as well as its dedicated
helpers.

Signed-off-by: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a></pre>
    </blockquote>
    <pre>LGTM:

Reviewed-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

Thanks.

~ Oleksii</pre>
    <blockquote type="cite"
      cite="mid:c9c8c9c6-a155-4986-bf77-5766cdcd6024@suse.com">
      <pre wrap="" class="moz-quote-pre">

--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -875,11 +875,6 @@ void arch_domain_unpause(struct domain *
 {
 }
 
-int arch_domain_soft_reset(struct domain *d)
-{
-    return -ENOSYS;
-}
-
 void arch_domain_creation_finished(struct domain *d)
 {
     p2m_domain_creation_finished(d);
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -214,11 +214,6 @@ void arch_domain_unpause(struct domain *
     BUG_ON("unimplemented");
 }
 
-int arch_domain_soft_reset(struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
 void arch_domain_creation_finished(struct domain *d)
 {
     BUG_ON("unimplemented");
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -188,11 +188,6 @@ void arch_domain_unpause(struct domain *
     BUG_ON("unimplemented");
 }
 
-int arch_domain_soft_reset(struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
 void arch_domain_creation_finished(struct domain *d)
 {
     BUG_ON("unimplemented");
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -29,6 +29,7 @@ config X86
 	select HAS_PCI_MSI
 	select HAS_PIRQ
 	select HAS_SCHED_GRANULARITY
+	imply HAS_SOFT_RESET
 	select HAS_UBSAN
 	select HAS_VMAP
 	select HAS_VPCI if HVM
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1030,6 +1030,7 @@ void arch_domain_unpause(struct domain *
         viridian_time_domain_thaw(d);
 }
 
+#ifdef CONFIG_HAS_SOFT_RESET
 int arch_domain_soft_reset(struct domain *d)
 {
     struct page_info *page = virt_to_page(d-&gt;shared_info), *new_page;
@@ -1131,6 +1132,7 @@ int arch_domain_soft_reset(struct domain
 
     return ret;
 }
+#endif /* CONFIG_HAS_SOFT_RESET */
 
 void arch_domain_creation_finished(struct domain *d)
 {
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -155,6 +155,9 @@ config HAS_PMAP
 config HAS_SCHED_GRANULARITY
 	bool
 
+config HAS_SOFT_RESET
+	bool
+
 config HAS_STACK_PROTECTOR
 	bool
 
--- a/xen/common/argo.c
+++ b/xen/common/argo.c
@@ -2351,6 +2351,7 @@ argo_destroy(struct domain *d)
     write_unlock(&amp;L1_global_argo_rwlock);
 }
 
+#ifdef CONFIG_HAS_SOFT_RESET
 void
 argo_soft_reset(struct domain *d)
 {
@@ -2374,3 +2375,4 @@ argo_soft_reset(struct domain *d)
 
     write_unlock(&amp;L1_global_argo_rwlock);
 }
+#endif /* CONFIG_HAS_SOFT_RESET */
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1687,6 +1687,7 @@ void domain_unpause_except_self(struct d
         domain_unpause(d);
 }
 
+#ifdef CONFIG_HAS_SOFT_RESET
 int domain_soft_reset(struct domain *d, bool resuming)
 {
     struct vcpu *v;
@@ -1724,6 +1725,7 @@ int domain_soft_reset(struct domain *d,
 
     return rc;
 }
+#endif /* CONFIG_HAS_SOFT_RESET */
 
 int vcpu_reset(struct vcpu *v)
 {
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -466,6 +466,12 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe
 
     case XEN_DOMCTL_soft_reset:
     case XEN_DOMCTL_soft_reset_cont:
+        if ( !IS_ENABLED(CONFIG_HAS_SOFT_RESET) )
+        {
+            ret = -EOPNOTSUPP;
+            break;
+        }
+
         if ( d == current-&gt;domain ) /* no domain_pause() */
         {
             ret = -EINVAL;
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -3962,6 +3962,7 @@ int gnttab_release_mappings(struct domai
     return 0;
 }
 
+#ifdef CONFIG_HAS_SOFT_RESET
 void grant_table_warn_active_grants(struct domain *d)
 {
     struct grant_table *gt = d-&gt;grant_table;
@@ -4006,6 +4007,7 @@ void grant_table_warn_active_grants(stru
 
 #undef WARN_GRANT_MAX
 }
+#endif /* CONFIG_HAS_SOFT_RESET */
 
 void
 grant_table_destroy(
</pre>
    </blockquote>
  </body>
</html>

--------------tc1rLMnO1ZU67CxLD9ETtSQQ--


From xen-devel-bounces@lists.xenproject.org Wed Nov 05 12:53:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 12:53:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156164.1485433 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGd0n-0006Fs-6E; Wed, 05 Nov 2025 12:53:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156164.1485433; Wed, 05 Nov 2025 12:53: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 1vGd0n-0006Fl-2X; Wed, 05 Nov 2025 12:53:17 +0000
Received: by outflank-mailman (input) for mailman id 1156164;
 Wed, 05 Nov 2025 12:47: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=vEDU=5N=gmail.com=haseebashraf091@srs-se1.protection.inumbo.net>)
 id 1vGcvU-0005AW-FE
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 12:47:48 +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 a08167ad-ba45-11f0-980a-7dc792cee155;
 Wed, 05 Nov 2025 13:47:45 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-426f1574a14so4081573f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 05 Nov 2025 04:47:45 -0800 (PST)
Received: from PKL-HASEEBA-LT.. ([39.36.37.202])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-429dc1f5af7sm11129623f8f.28.2025.11.05.04.47.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 05 Nov 2025 04:47: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: a08167ad-ba45-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762346865; x=1762951665; 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=NsyLKN81KL51kT2ye8MhBZOT8kMWEdsVKHKTDOIf0nM=;
        b=kxdt9rIWY1BE+i1qyn0hyX1bNbMcZy+B+aM4aTdLSc9U/Lltb/CHuIVcRMkXPYFRFq
         CwxQ5cNECsly0lqqpMUPBj/Gry7GW7B5Y9nCpxAQV8J2I34ySNUi6E+gBTGYzqfD+5IS
         Buh2ZVmwbe67wIUGUEUbRVsSuf3O0O9HXQCjNeh0+hyUs+oUApTYED5MTdW10GiK/LJz
         HVQc8OKpaoqacyhRMSHBMwu3pqrRuzdRPm+cLTPucuAlxtvT/Dd/LEM/cvtX1grbX+z8
         W4hjMTvULRsHyO9w2+salVBqCWGgKWP1UP2YOtAj/fat//BGIEyzmItWoSpyRa6jTQhm
         d15Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762346865; x=1762951665;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=NsyLKN81KL51kT2ye8MhBZOT8kMWEdsVKHKTDOIf0nM=;
        b=uLz/vG0bafZsn/pGBMYss+u9ixQDuvr9tkfVui3KHtmc5B8WIrKbgd7y49oZMFanxV
         cYc0z9lCHhcQ0aYIM0ulVTMW9X8Ujn9Me6D3SzADiFwvD0uYkr4Ly72OJhQAHKxgRwot
         L65SiSCzYiSHwhbLwy7NOZW8dl+dYMq/WX8xvC6kfRjnGqHFEcFzRPztwOt1j5w6hm+F
         JpEWOgq76zLMgg6NHhVfK0WNKw1R4Dcoslz8qWM+6Kh45u25Nciukjs3l5xt3znRB71I
         ycBGKAZykcuQIVAnOh4B9GOaTQpdRRYeLgqJKZIPPcRIOdt66H4VE3LJHuN/RozBM+YE
         t4zQ==
X-Gm-Message-State: AOJu0YyewgZ2Z1/exFfFwMZ80VHY9WxFWXP0cedkFpi0PfUDGhJ1T0JM
	/DQjcr22oAgVN+Q49/RDQ2efoWrQLDwQ2OP3ODs5LSiojV7q3Lr6pAd84pjOepfZHGs=
X-Gm-Gg: ASbGncvUBlENldb646iSiEeuF8s/yrA1+MrqBVvTMIzxy6igLp6posllPLHZBmndyUJ
	DzMPZ4F1P3Ta+VJAkkqUv6T2zu8uAMbkoLHw4OTD+PLQ3RtQfsFC2Z5hvtaNH37S7MT2pOnvI1X
	7t9CRMP2KGT5u1R5eKzX6ZpHrI9V4FTAWwDKMsmNZUlSiXsctyb9vEHozVfMyLAhzoaNL07h0Am
	X9z9h1P/dVHA0YZF5Qmdez5/hx0MI3CcxtI9w4vQMV0QbQdAZ6BUTv+lD+dBT+MgEQxE0jNNvYg
	VZneA7Z6tmP+qYN/YpvG+EMN/LOIWf1JO/l4Kmth3WhVbOwFC6b8LJzmlLPyDNFpBOloqhrCp/s
	dNZBNQYKHwyzFMPGtQe8l4XEvTqhr6z8Y6y7kdkwOr+1xf4Zme5Akpe9FjP75WA8dcGY5ot6QA+
	wFXypdbbDN81VQXzZVsgbwQ/VC1wibPchuzpdbThw=
X-Google-Smtp-Source: AGHT+IEE+sf/WD48p2Y44yAV1BGuwi9eignN7+Q6qPJ5YtvNNXiLknU+KhYbJrWk1eKklk6hh6x8pg==
X-Received: by 2002:a05:6000:1acc:b0:427:8c85:a4b0 with SMTP id ffacd0b85a97d-429e3311adfmr2978392f8f.56.1762346864516;
        Wed, 05 Nov 2025 04:47:44 -0800 (PST)
From: Haseeb Ashraf <haseebashraf091@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Haseeb Ashraf <haseeb.ashraf@siemens.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Dan Driscoll <dan.driscoll@siemens.com>,
	Noor Ahsan Khawaja <noor.ahsan@siemens.com>,
	Fahad Arslan <fahad.arslan@siemens.com>,
	Andrew Bachtel <andrew.bachtel@siemens.com>,
	Mohamed Mediouni <mohamed@unpredictable.fr>
Subject: [XEN PATCH] xen/arm/p2m: perform IPA-based TLBI for arm64 when IPA is known
Date: Wed,  5 Nov 2025 17:47:27 +0500
Message-ID: <20251105124727.142272-1-haseebashraf091@gmail.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Haseeb Ashraf <haseeb.ashraf@siemens.com>

This commit addresses a major issue for running Xen on KVM arm64 i.e.
costly emulation of VMALLS12E1IS which becomes worse when this TLBI
is invoked too many times. There are mainly two places where this is
problematic:
(a) When vCPUs switch on a pCPU or pCPUs
(b) When domu mapped pages onto dom0, are to be unmapped, then each
    page being removed by XENMEM_remove_from_physmap has its TLBs
    invalidated by VMALLS12E1IS.

The first one is addressed by relaxing VMALLS12E1IS -> VMALLE1IS.
Each CPU have their own private TLBs, so flush between vCPU of the
same domains is required to avoid translations from vCPUx to "leak"
to the vCPUy. This can be achieved by using VMALLE1. If FEAT_nTLBPA
is present then VMALLE1 can also be avoided.

The second one is addressed by using IPA-based TLBI (IPAS2E1) in
combination with VMALLE1 whenever the IPA range is known instead of
using VMALLS12E1. Again, VMALLE1 can be avoided FEAT_nTLBPA is
present.

Suggested-by: Mohamed Mediouni <mohamed@unpredictable.fr>
Suggested-by: Julien Grall <julien@xen.org>
Signed-off-by: Haseeb Ashraf <haseeb.ashraf@siemens.com>
---
 xen/arch/arm/include/asm/arm64/flushtlb.h | 34 ++++++++
 xen/arch/arm/include/asm/arm64/sysregs.h  |  1 +
 xen/arch/arm/include/asm/cpufeature.h     |  3 +-
 xen/arch/arm/include/asm/mmu/p2m.h        |  4 +
 xen/arch/arm/include/asm/processor.h      |  2 +
 xen/arch/arm/mmu/p2m.c                    | 96 ++++++++++++++++++++++-
 6 files changed, 136 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/include/asm/arm64/flushtlb.h b/xen/arch/arm/include/asm/arm64/flushtlb.h
index 3b99c11b50..6703aab8a7 100644
--- a/xen/arch/arm/include/asm/arm64/flushtlb.h
+++ b/xen/arch/arm/include/asm/arm64/flushtlb.h
@@ -45,6 +45,27 @@ static inline void name(void)                    \
         : : : "memory");                         \
 }
 
+/*
+ * FLush TLB by IPA. This will likely be used in a loop, so the caller
+ * is responsible to use the appropriate memory barriers before/after
+ * the sequence.
+ *
+ * See above about the ARM64_WORKAROUND_REPEAT_TLBI sequence.
+ */
+#define TLB_HELPER_IPA(name, tlbop)              \
+static inline void name(paddr_t ipa)             \
+{                                                \
+    asm volatile(                                \
+        "tlbi "  # tlbop  ", %0;"                \
+        ALTERNATIVE(                             \
+            "nop; nop;",                         \
+            "dsb  ish;"                          \
+            "tlbi "  # tlbop  ", %0;",           \
+            ARM64_WORKAROUND_REPEAT_TLBI,        \
+            CONFIG_ARM64_WORKAROUND_REPEAT_TLBI) \
+        : : "r" (ipa >> PAGE_SHIFT) : "memory"); \
+}
+
 /*
  * FLush TLB by VA. This will likely be used in a loop, so the caller
  * is responsible to use the appropriate memory barriers before/after
@@ -72,6 +93,18 @@ TLB_HELPER(flush_guest_tlb_local, vmalls12e1, nsh)
 /* Flush innershareable TLBs, current VMID only */
 TLB_HELPER(flush_guest_tlb, vmalls12e1is, ish)
 
+/* Flush local TLBs, current VMID, stage-1 only */
+TLB_HELPER(flush_guest_tlb_s1_local, vmalle1, nsh)
+
+/* Flush innershareable TLBs, current VMID, stage-1 only */
+TLB_HELPER(flush_guest_tlb_s1, vmalle1is, ish)
+
+/* Flush local TLBs, current VMID, stage-2 for ipa address */
+TLB_HELPER_IPA(flush_guest_tlb_one_s2_local, ipas2e1)
+
+/* Flush innershareable TLBs, current VMID, stage-2 for ipa address */
+TLB_HELPER_IPA(flush_guest_tlb_one_s2, ipas2e1is)
+
 /* Flush local TLBs, all VMIDs, non-hypervisor mode */
 TLB_HELPER(flush_all_guests_tlb_local, alle1, nsh)
 
@@ -88,6 +121,7 @@ TLB_HELPER_VA(__flush_xen_tlb_one_local, vae2)
 TLB_HELPER_VA(__flush_xen_tlb_one, vae2is)
 
 #undef TLB_HELPER
+#undef TLB_HELPER_IPA
 #undef TLB_HELPER_VA
 
 #endif /* __ASM_ARM_ARM64_FLUSHTLB_H__ */
diff --git a/xen/arch/arm/include/asm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
index 7440d495e4..30a7c3b9fd 100644
--- a/xen/arch/arm/include/asm/arm64/sysregs.h
+++ b/xen/arch/arm/include/asm/arm64/sysregs.h
@@ -286,6 +286,7 @@
 
 /* id_aa64mmfr1 */
 #define ID_AA64MMFR1_ECBHB_SHIFT     60
+#define ID_AA64MMFR1_NTLBPA_SHIFT    48
 #define ID_AA64MMFR1_AFP_SHIFT       44
 #define ID_AA64MMFR1_ETS_SHIFT       36
 #define ID_AA64MMFR1_TWED_SHIFT      32
diff --git a/xen/arch/arm/include/asm/cpufeature.h b/xen/arch/arm/include/asm/cpufeature.h
index b6df188011..21df7603fc 100644
--- a/xen/arch/arm/include/asm/cpufeature.h
+++ b/xen/arch/arm/include/asm/cpufeature.h
@@ -269,7 +269,8 @@ struct cpuinfo_arm {
             unsigned long ets:4;
             unsigned long __res1:4;
             unsigned long afp:4;
-            unsigned long __res2:12;
+            unsigned long ntlbpa:4;
+            unsigned long __res2:8;
             unsigned long ecbhb:4;
 
             /* MMFR2 */
diff --git a/xen/arch/arm/include/asm/mmu/p2m.h b/xen/arch/arm/include/asm/mmu/p2m.h
index 58496c0b09..fc2e08bbe8 100644
--- a/xen/arch/arm/include/asm/mmu/p2m.h
+++ b/xen/arch/arm/include/asm/mmu/p2m.h
@@ -10,6 +10,10 @@ extern unsigned int p2m_root_level;
 
 struct p2m_domain;
 void p2m_force_tlb_flush_sync(struct p2m_domain *p2m);
+#ifdef CONFIG_ARM_64
+void p2m_force_tlb_flush_range_sync(struct p2m_domain *p2m, uint64_t start_ipa,
+                                    uint64_t page_count);
+#endif
 void p2m_tlb_flush_sync(struct p2m_domain *p2m);
 
 void p2m_clear_root_pages(struct p2m_domain *p2m);
diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
index 92c8bc1a31..07f6a2ef6a 100644
--- a/xen/arch/arm/include/asm/processor.h
+++ b/xen/arch/arm/include/asm/processor.h
@@ -461,6 +461,8 @@
 #ifdef CONFIG_ARM_64
 #define MM64_VMID_8_BITS_SUPPORT    0x0
 #define MM64_VMID_16_BITS_SUPPORT   0x2
+#define MM64_NTLBPA_SUPPORT_NI      0x0
+#define MM64_NTLBPA_SUPPORT_IMP     0x1
 #endif
 
 #ifndef __ASSEMBLY__
diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
index 51abf3504f..28268fb67f 100644
--- a/xen/arch/arm/mmu/p2m.c
+++ b/xen/arch/arm/mmu/p2m.c
@@ -235,7 +235,12 @@ void p2m_restore_state(struct vcpu *n)
      * when running multiple vCPU of the same domain on a single pCPU.
      */
     if ( *last_vcpu_ran != INVALID_VCPU_ID && *last_vcpu_ran != n->vcpu_id )
+#ifdef CONFIG_ARM_64
+        if ( system_cpuinfo.mm64.ntlbpa != MM64_NTLBPA_SUPPORT_IMP )
+            flush_guest_tlb_s1_local();
+#else
         flush_guest_tlb_local();
+#endif
 
     *last_vcpu_ran = n->vcpu_id;
 }
@@ -293,6 +298,75 @@ void p2m_force_tlb_flush_sync(struct p2m_domain *p2m)
     p2m->need_flush = false;
 }
 
+#ifdef CONFIG_ARM_64
+/*
+ * Force a synchronous P2M TLB flush on a range of addresses.
+ *
+ * Must be called with the p2m lock held.
+ */
+void p2m_force_tlb_flush_range_sync(struct p2m_domain *p2m, uint64_t start_ipa,
+                                    uint64_t page_count)
+{
+    unsigned long flags = 0;
+    uint64_t ovttbr;
+    uint64_t ipa = start_ipa;
+    uint64_t i;
+
+    ASSERT(p2m_is_write_locked(p2m));
+
+    /*
+     * ARM only provides an instruction to flush TLBs for the current
+     * VMID. So switch to the VTTBR of a given P2M if different.
+     */
+    ovttbr = READ_SYSREG64(VTTBR_EL2);
+    if ( ovttbr != p2m->vttbr )
+    {
+        uint64_t vttbr;
+
+        local_irq_save(flags);
+
+        /*
+         * ARM64_WORKAROUND_AT_SPECULATE: We need to stop AT to allocate
+         * TLBs entries because the context is partially modified. We
+         * only need the VMID for flushing the TLBs, so we can generate
+         * a new VTTBR with the VMID to flush and the empty root table.
+         */
+        if ( !cpus_have_const_cap(ARM64_WORKAROUND_AT_SPECULATE) )
+            vttbr = p2m->vttbr;
+        else
+            vttbr = generate_vttbr(p2m->vmid, empty_root_mfn);
+
+        WRITE_SYSREG64(vttbr, VTTBR_EL2);
+
+        /* Ensure VTTBR_EL2 is synchronized before flushing the TLBs */
+        isb();
+    }
+
+    /* Ensure prior page-tables updates have completed */
+    dsb(ishst);
+
+    /* Invalidate stage-2 TLB entries by IPA range */
+    for ( i = 0; i < page_count; i++ ) {
+        flush_guest_tlb_one_s2(ipa);
+        ipa += 1UL << PAGE_SHIFT;
+    }
+
+    if ( system_cpuinfo.mm64.ntlbpa != MM64_NTLBPA_SUPPORT_IMP )
+        flush_guest_tlb_s1_local();
+
+    /* Ensure the TLB invalidation has completed */
+    dsb(ishst);
+
+    if ( ovttbr != READ_SYSREG64(VTTBR_EL2) )
+    {
+        WRITE_SYSREG64(ovttbr, VTTBR_EL2);
+        /* Ensure VTTBR_EL2 is back in place before continuing. */
+        isb();
+        local_irq_restore(flags);
+    }
+}
+#endif
+
 void p2m_tlb_flush_sync(struct p2m_domain *p2m)
 {
     if ( p2m->need_flush )
@@ -1034,7 +1108,12 @@ static int __p2m_set_entry(struct p2m_domain *p2m,
          * For more details see (D4.7.1 in ARM DDI 0487A.j).
          */
         p2m_remove_pte(entry, p2m->clean_pte);
+#ifdef CONFIG_ARM_64
+        p2m_force_tlb_flush_range_sync(p2m, gfn_x(sgfn) << PAGE_SHIFT,
+                                       1UL << page_order);
+#else
         p2m_force_tlb_flush_sync(p2m);
+#endif
 
         p2m_write_pte(entry, split_pte, p2m->clean_pte);
 
@@ -1090,8 +1169,13 @@ static int __p2m_set_entry(struct p2m_domain *p2m,
         p2m_remove_pte(entry, p2m->clean_pte);
 
     if ( removing_mapping )
+#ifdef CONFIG_ARM_64
+        p2m_force_tlb_flush_range_sync(p2m, gfn_x(sgfn) << PAGE_SHIFT,
+                                       1UL << page_order);
+#else
         /* Flush can be deferred if the entry is removed */
         p2m->need_flush |= !!lpae_is_valid(orig_pte);
+#endif
     else
     {
         lpae_t pte = mfn_to_p2m_entry(smfn, t, a);
@@ -1102,17 +1186,23 @@ static int __p2m_set_entry(struct p2m_domain *p2m,
         /*
          * It is necessary to flush the TLB before writing the new entry
          * to keep coherency when the previous entry was valid.
-         *
-         * Although, it could be defered when only the permissions are
-         * changed (e.g in case of memaccess).
          */
         if ( lpae_is_valid(orig_pte) )
         {
+#ifdef CONFIG_ARM_64
+            p2m_force_tlb_flush_range_sync(p2m, gfn_x(sgfn) << PAGE_SHIFT,
+                                           1UL << page_order);
+#else
+        /*
+         * Although, flush could be defered when only the permissions are
+         * changed (e.g in case of memaccess).
+         */
             if ( likely(!p2m->mem_access_enabled) ||
                  P2M_CLEAR_PERM(pte) != P2M_CLEAR_PERM(orig_pte) )
                 p2m_force_tlb_flush_sync(p2m);
             else
                 p2m->need_flush = true;
+#endif
         }
         else if ( !p2m_is_valid(orig_pte) ) /* new mapping */
             p2m->stats.mappings[level]++;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 05 12:57:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 12:57:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156178.1485447 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGd4j-0006ya-Qv; Wed, 05 Nov 2025 12:57:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156178.1485447; Wed, 05 Nov 2025 12: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 1vGd4j-0006yS-N1; Wed, 05 Nov 2025 12:57:21 +0000
Received: by outflank-mailman (input) for mailman id 1156178;
 Wed, 05 Nov 2025 12:57: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=h1gU=5N=xenbits.xen.org=andrewcoop@srs-se1.protection.inumbo.net>)
 id 1vGd4h-0006xe-TL
 for xen-devel@lists.xen.org; Wed, 05 Nov 2025 12:57:20 +0000
Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f21d5e1f-ba46-11f0-980a-7dc792cee155;
 Wed, 05 Nov 2025 13:57:13 +0100 (CET)
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <andrewcoop@xenbits.xen.org>) id 1vGd4T-002OLz-2E;
 Wed, 05 Nov 2025 12:57:05 +0000
Received: from andrewcoop by xenbits.xenproject.org with local (Exim 4.96)
 (envelope-from <andrewcoop@xenbits.xen.org>) id 1vGd4T-00E0BX-2Y;
 Wed, 05 Nov 2025 12:57: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: f21d5e1f-ba46-11f0-980a-7dc792cee155
Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
Content-Transfer-Encoding: binary
MIME-Version: 1.0
X-Mailer: MIME-tools 5.510 (Entity 5.510)
To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
 xen-users@lists.xen.org, oss-security@lists.openwall.com
From: Xen.org security team <security@xen.org>
CC: Xen.org security team <security-team-members@xen.org>
Subject: Xen Security Advisory 471 v3 (CVE-2024-36350,CVE-2024-36357) -
 x86: Transitive Scheduler Attacks
Message-Id: <E1vGd4T-00E0BX-2Y@xenbits.xenproject.org>
Date: Wed, 05 Nov 2025 12:57:05 +0000

--=separator
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

    Xen Security Advisory CVE-2024-36350,CVE-2024-36357 / XSA-471
                              version 3

                   x86: Transitive Scheduler Attacks

UPDATES IN VERSION 3
====================

Correct one of the CVEs in the NOTE section at the bottom.  It had the
wrong year, but correct number and title.

ISSUE DESCRIPTION
=================

Researchers from Microsoft and ETH Zurich have discovered several new
speculative sidechannel attacks which bypass current protections.  They
are detailed in a paper titled "Enter, Exit, Page Fault, Leak: Testing
Isolation Boundaries for Microarchitectural Leaks".

Two issues, which AMD have named Transitive Scheduler Attacks, utilise
timing information from instruction execution.  These are:

  * CVE-2024-36350: TSA-SQ (TSA in the Store Queues)
  * CVE-2024-36357: TSA-L1 (TSA in the L1 data cache)

For more information, see:
  https://www.amd.com/content/dam/amd/en/documents/resources/bulletin/technical-guidance-for-mitigating-transient-scheduler-attacks.pdf
  https://www.amd.com/en/resources/product-security/bulletin/amd-sb-7029.html
  https://aka.ms/enter-exit-leak

The paper also details other speculative attacks.  See below.

IMPACT
======

An attacker might be able to infer data belonging to other contexts,
including data belonging to other guests.

VULNERABLE SYSTEMS
==================

Systems running all versions of Xen are affected.

Only AMD Fam19h CPUs (Zen3/4 microarchitectures) are believed to be
vulnerable.  Other AMD CPUs, and CPUs from other manufacturers are not
known to be affected.

MITIGATION
==========

There are no mitigations.

RESOLUTION
==========

AMD are producing microcode to address TSA, which adds scrubbing side
effects to the VERW instruction.  This was included in the firmware
fixes for the Entrysign signature vulnerability from ~December 2024, but
are also available in an OS-loadable form on older firmware.  Consult
your dom0 OS vendor and/or hardware vendor for updated microcode.

In addition to the microcode, changes are required to Xen to make use of
VERW scrubbing at suitable points.

Applying the appropriate set of attached patches resolves this issue.

Note that patches for released versions are generally prepared to
apply to the stable branches, and may not apply cleanly to the most
recent release tarball.  Downstreams are encouraged to update to the
tip of the stable branch before applying these patches.

xsa471/xsa471-??.patch           xen-unstable
xsa471/xsa471-4.20-??.patch      Xen 4.20.x
xsa471/xsa471-4.19-??.patch      Xen 4.19.x
xsa471/xsa471-4.18-??.patch      Xen 4.18.x
xsa471/xsa471-4.17-??.patch      Xen 4.17.x

$ sha256sum xsa471*/*
4cc8b54d3cae4864053c4d608061675564cc322c6cd362e33ac59ac4c9371358  xsa471/xsa471-01.patch
9bdfd0ad8d34114e69bb0e264ffdcb176e54211753cc1eed247e73cd3fe752e9  xsa471/xsa471-02.patch
62706c1593cb64bfd053f5ee2e8fa26f5414835c6ef5f694c52a61e18017aa1d  xsa471/xsa471-03.patch
e06162c55de0b3ca79302ea47c8169079b0f2cd65a48d3e0509677452c9887da  xsa471/xsa471-4.17-01.patch
742c59d776c73993c44e72ceada2b83b61fa77a988f5c2c593b6594b4f4078de  xsa471/xsa471-4.17-02.patch
a8ed5e90e405273115d6a06199de3190319ba12aac33bea17495db42b6a9becc  xsa471/xsa471-4.17-03.patch
855c9528d93109a1a673dd8f4feb87a688457908c9dd821d0e1a3326efb19257  xsa471/xsa471-4.17-04.patch
f8dbe5c8dbdf921c7f9b4bc7d8234b9bb291df6a4a8cef604284bf4f36947d4e  xsa471/xsa471-4.17-05.patch
fa2682955663e0966cf285bf79770fe76b387fbf449e1ac64206a6ae4bf79bc4  xsa471/xsa471-4.17-06.patch
dc4695aced6ba65e8b16088aefe817e8e4d965cd94e9e3340bd48d77c1369902  xsa471/xsa471-4.17-07.patch
0393a8711805f40eeb936dcca56f5bea174ff94098ffaee7064cd6801eb55099  xsa471/xsa471-4.17-08.patch
346493cc12d9a0fa4154968bc0c8dca9d87e583a25ae9ecd22b8ae2c7bdeae19  xsa471/xsa471-4.17-09.patch
0d652e9a6bb89782036b39160f2db9c1fd1dfc0e659fb4e351f04eb66ffbdba8  xsa471/xsa471-4.17-10.patch
ff3ae74f6cfccfaee55f007b2410813068928d20a23729ae2766ddcc65d2e82b  xsa471/xsa471-4.17-11.patch
5c6d133f626fdcbc148b596bf3cee1c46260d73fd833aeb6c59cf7c1b315f2b8  xsa471/xsa471-4.17-12.patch
acbdca53d713122545ba210a795c4185e842d4cca71802775adc1a4ce971bf3a  xsa471/xsa471-4.17-13.patch
4a7fa23b7f501cb88100b55fab13b7315a01fc1e4a3eff46b5d0c867fcc03ca8  xsa471/xsa471-4.17-14.patch
164d626a2f446ad7692bd70ab7e109f8b6259aaea34bfb9f51df68def98a2e62  xsa471/xsa471-4.17-15.patch
35699b19590ccf1872c8da8731b4c47e95cc38d119510e182d196427ea4455f8  xsa471/xsa471-4.17-16.patch
296c95410b6dbf55fa092d15e0eee66125a87b012095f84c550eea54078d0490  xsa471/xsa471-4.17-17.patch
0212aec278afe0dcc6479b756a0c1821d2bfba646fa9ec56f1b9b37ff51756f4  xsa471/xsa471-4.17-18.patch
4e05073bc960b7f43dd383356d1b56fa9c55dc021205678bd8ac456f3a1d00f0  xsa471/xsa471-4.17-19.patch
0d4166420a9e69afe3303d6d3232ee43cf27e88e5bbd8a52a17521934455ed65  xsa471/xsa471-4.18-01.patch
3ff24a622a8ef97af7dddf480dd8c6c12efb8a2dc74ae8d68836543a6cdb8329  xsa471/xsa471-4.18-02.patch
fe69ab8c1d45e0d23f58126b22e9914d2269d416cd802619000dc3933c49129e  xsa471/xsa471-4.18-03.patch
60b563119ed38a052ed6e6a261b56db5e7b8b40befacd4904d5ce50b2d75d280  xsa471/xsa471-4.18-04.patch
864643c643cfe1f03d28bb36aadcd5bdd1dc7276c30357ea8be1cd1d20ef6f69  xsa471/xsa471-4.18-05.patch
9d5c58339aea8afbeea0bdf34c34cbeb4178ac0a475a32e688317b9810d0f148  xsa471/xsa471-4.18-06.patch
38347e4d096a880cc6d91f09d60277914ad6aa8a6b588913f211097574714ab0  xsa471/xsa471-4.18-07.patch
f0db078f811b5c06170f0016fec84a4bbd958b9f8a8d999567c5680d90141c2c  xsa471/xsa471-4.18-08.patch
6d2f9de12d113790bbc74327cf94ae08234bec95d88468767462d3a11d0c40d4  xsa471/xsa471-4.18-09.patch
04f63468fca093f8fb5716c0ecafd1ef0be14dd5a464cddc20e719e0c2979980  xsa471/xsa471-4.18-10.patch
5c6e030d1258ce703ddf27fb48ee7b33ca0dbb09657cb38fc7d5b432d215322e  xsa471/xsa471-4.18-11.patch
18b17089aa643ae2d6d9d394137a7fe21bf6b8f9743f2237481b68920f3f8f06  xsa471/xsa471-4.18-12.patch
d2c35d0a93e9a98fa04623c024a6e152f4d4d6568e6b603ee0cf7f4e4c9dca82  xsa471/xsa471-4.18-13.patch
f5b3f0aa8a59033bad4f221709eb4f6f14c82f75ab229ff53ef52b917d0f4021  xsa471/xsa471-4.18-14.patch
dc5c0da74f4a6faba0b2af5539cb38a44525379a2f9cafdff18f71cda5280d42  xsa471/xsa471-4.18-15.patch
296c95410b6dbf55fa092d15e0eee66125a87b012095f84c550eea54078d0490  xsa471/xsa471-4.18-16.patch
04c5587d19749a261ca9edc5212d606f2bf577e890c8f4474c55a9c5fe9605d7  xsa471/xsa471-4.18-17.patch
1b10f901d218bafc35d21366e57be89191c0b7c3bcc9def4da5c79bcf93a2e9d  xsa471/xsa471-4.18-18.patch
d8b010138f5a2773a07902617c65f5d419bae6445410251c9dc1a777b6bf3378  xsa471/xsa471-4.19-01.patch
d72ab177637179cccbd32d2dbedfbb399ff4ba59360391e898e3c5fc069803a9  xsa471/xsa471-4.19-02.patch
365ee7e6fb3da83e6238cd4f9138de2018fddb65c1604bbd968e73ce97451fe9  xsa471/xsa471-4.19-03.patch
690cbd2b4b5ce5a855e75cf44c098ca2e231a272d2ebdc1e68d267c5c4e50db0  xsa471/xsa471-4.19-04.patch
82ac6bbca376e33fe1e03569ed76f559f18066000aec6dc72f1722245f5e9a54  xsa471/xsa471-4.19-05.patch
06c475bbb74d86375c17e183bdf74e1ef145a49af2aa237ce69f6ca8e6f78a7c  xsa471/xsa471-4.19-06.patch
03bacbdb4cabb3e9eee079a847fa2eda3ff30c86bbfc5d5b1987ee028774a507  xsa471/xsa471-4.19-07.patch
b144cea707793e73d6dcbaa0e0ef268bb3cd389e12c080ec687a64a8a3e6ad61  xsa471/xsa471-4.19-08.patch
df35ded3dfe5ca84d459eda720699a35e3e49d4b4d461a3f834d05c30b0bcf59  xsa471/xsa471-4.19-09.patch
6719417c0ead056d83ef003cc3b08bf95a3430560fd8f27357c09ca55b6a3993  xsa471/xsa471-4.19-10.patch
b7c6ff2f529c6d6cc656b42142d06e5462e652ade57cc2ff5d90320af1234a27  xsa471/xsa471-4.19-11.patch
4b8a05edf04f5b43b1edcf44412ec4be734b011a7b8d2d739ffe0bdc04abce82  xsa471/xsa471-4.19-12.patch
e2bca0cd6f66465fdae9e3d251e67ba8a28a96a05201ac939a599dd95a0b3bc6  xsa471/xsa471-4.19-13.patch
8dc65ba84572a090d1bf8ffeb9b5871d9533e4da324fbcdfb1ab32ed83b10fad  xsa471/xsa471-4.19-14.patch
2cb102830a29c6c2a898f8f580a9d554c332d6c31dd1608af0fb22b7340f650b  xsa471/xsa471-4.19-15.patch
2a873ae56866b9986183e18ea9b70712a15f6df3af299b2d583cbda40a816f58  xsa471/xsa471-4.19-16.patch
77c7634a7d59056f92de619e034f31e63fd6ac6b26dc6e6af65e80fe3e4e5feb  xsa471/xsa471-4.20-01.patch
22db1def1859cc7c742b79fee78c994ac4c9cc63daa3663533f324e93e9ef9e0  xsa471/xsa471-4.20-02.patch
fb9a103c606552188c05c14092cce084b52b4df75659f4d8013aa30978708ee8  xsa471/xsa471-4.20-03.patch
6930b94a1997b118692a2e0bd5e32bba2e0269b66de4019e3e870304d695c315  xsa471/xsa471-4.20-04.patch
4a67ef27f84eced8fa9cf3ae42d9f79f74a16659ab004fd79a7ee09fce823cf6  xsa471/xsa471-4.20-05.patch
9c62b492be0f1961d5d8062b7d4ac95b9d120e44ca4bf7e009a499fad9c0fcc3  xsa471/xsa471-4.20-06.patch
511728ef65068fa8bda25c31e3fd578aebc8400597d117f31fd2ba436fbb3776  xsa471/xsa471-4.20-07.patch
9a66742ec752a9f58a02f170a4213a22d32bd487e49bfff799800851ba9650e1  xsa471/xsa471-4.20-08.patch
5a02afd655d29b7eba7ac24a8665d64db39994d84e5125a7511f3e5fb7cafacf  xsa471/xsa471-4.20-09.patch
f55ba571fa668a1ba9fb318c082e684780cc9b8d3c4e7f33db17bf7cc2afcdb3  xsa471/xsa471-4.20-10.patch
4cc8b54d3cae4864053c4d608061675564cc322c6cd362e33ac59ac4c9371358  xsa471/xsa471-4.20-11.patch
b180fec77659ce67d24c076301a3d10486afe0c1f224c30b5af7f22f678e8834  xsa471/xsa471-4.20-12.patch
60155cf04e25ad5c95f744dced34c530e0606150e1ca7617e38a9e3d8933eff3  xsa471/xsa471-4.20-13.patch
3d4eb5835d331581fd5c502ea77a0bf3f35c8e12ff9a95d38d32acfed735fefa  xsa471/xsa471-4.20-14.patch
bc8590f2187d52a727f2354fda9d006087eaae17c34899bec0257ed7e870e7b6  xsa471/xsa471-4.20-15.patch
91c9100a964b0ecaae5ed019e2c846ea0a8a1e5d734e01853be737bb1799d5dd  xsa471/xsa471-04.patch
5fce1dfbf084ccabbba9fcb7a8f758cffc1c8ca93a4f1d2a1c6ad49b4fe9e5da  xsa471/xsa471-05.patch
$

NOTE CONCERNING OTHER SPECULATIVE ATTACKS
=========================================

The paper describes two further attack:

 * CVE-2024-36348: Rogue execution of SMSW
 * CVE-2024-36349: Rogue read of MSR_TSC_AUX

which are both examples of Rogue System Register Read (sometimes called
Spectre-v3a).  No fix is planned, because these registers do not
typically contain sensitive information.
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmkLSXsMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZYiYH/Rns8DD3t04uGHnr3mR6LP8vMMuq7VxVqzYOfUOu
rcfI5W5r8okEvtmb5qdpyCP2UlInh//jXH5nMHrsJl8QRjBC2he81phNvlY+u3Tm
CYNb/g8QW0gJNtlyb1GIh0deXl5koyq2wq8hsiT5j6YZH4H1BugU3FdwgPhOf99P
Fw646U7iWiMvCemaDvqY2eKiA1nc90jeOuKJvrU8OpQILfcTc/zG+vBy5QnWGvDZ
0EBnpUm/mRDs6dLhySRkV8JYBdcSCNtmieypYjVulda107CChRDK831VnXw5XRru
EBhb6mS54DEKwkdTIjuhsT85LRhrFEdIKrqU0LRFRfhNB5g=
=soaJ
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-01.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-01.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxNzoxOToxOSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogUmVhcnJhbmdlIGd1ZXN0X2NvbW1vbl8q
X2ZlYXR1cmVfYWRqdXN0bWVudHMoKQoKVHVybiB0aGUgaWYoKXMgaW50byBz
d2l0Y2goKWVzLCBhcyB3ZSdyZSBnb2luZyB0byBuZWVkIEFNRCBzZWN0aW9u
cy4KCk1vdmUgdGhlIFJUTSBhZGp1c3RtZW50cyBpbnRvIHRoZSBJbnRlbCBz
ZWN0aW9uLCB3aGVyZSB0aGV5IG91Z2h0IHRvIGxpdmUuCgpObyBmdW5jdGlv
bmFsIGNoYW5nZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYyBiL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5
LmMKaW5kZXggYzNhYWFjODYxZDE1Li40N2VlMWZmNDc0NjAgMTAwNjQ0Ci0t
LSBhL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMKKysrIGIveGVuL2FyY2gv
eDg2L2NwdS1wb2xpY3kuYwpAQCAtNDE4LDggKzQxOCw5IEBAIHN0YXRpYyB2
b2lkIF9faW5pdCBndWVzdF9jb21tb25fZGVmYXVsdF9sZWF2ZXMoc3RydWN0
IGNwdV9wb2xpY3kgKnApCiAKIHN0YXRpYyB2b2lkIF9faW5pdCBndWVzdF9j
b21tb25fbWF4X2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQog
ewotICAgIGlmICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9W
RU5ET1JfSU5URUwgKQorICAgIHN3aXRjaCAoIGJvb3RfY3B1X2RhdGEueDg2
X3ZlbmRvciApCiAgICAgeworICAgIGNhc2UgWDg2X1ZFTkRPUl9JTlRFTDoK
ICAgICAgICAgLyoKICAgICAgICAgICogTVNSX0FSQ0hfQ0FQUyBpcyBqdXN0
IGZlYXR1cmUgZGF0YSwgYW5kIHdlIGNhbiBvZmZlciBpdCB0byBndWVzdHMK
ICAgICAgICAgICogdW5jb25kaXRpb25hbGx5LCBhbHRob3VnaCBsaW1pdCBp
dCB0byBJbnRlbCBzeXN0ZW1zIGFzIGl0IGlzIGhpZ2hseQpAQCAtNDY0LDYg
KzQ2NSwyMiBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX21h
eF9mZWF0dXJlX2FkanVzdG1lbnRzKHVpbnQzMl90ICpmcykKICAgICAgICAg
ICAgICBib290X2NwdV9kYXRhLng4Nl9tb2RlbCA9PSBJTlRFTF9GQU02X1NL
WUxBS0VfWCAmJgogICAgICAgICAgICAgIHJhd19jcHVfcG9saWN5LmZlYXQu
Y2x3YiApCiAgICAgICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfQ0xX
QiwgZnMpOworCisgICAgICAgIC8qCisgICAgICAgICAqIFRvIG1pdGlnYXRl
IE5hdGl2ZS1CSEksIG9uZSBvcHRpb24gaXMgdG8gdXNlIGEgVFNYIEFib3J0
IG9uIGNhcGFibGUKKyAgICAgICAgICogc3lzdGVtcy4gIFRoaXMgaXMgc2Fm
ZSBldmVuIGlmIFJUTSBoYXMgYmVlbiBkaXNhYmxlZCBmb3Igb3RoZXIKKyAg
ICAgICAgICogcmVhc29ucyB2aWEgTVNSX1RTWF97Q1RSTCxGT1JDRV9BQk9S
VH0uICBIb3dldmVyLCBhIGd1ZXN0IGtlcm5lbAorICAgICAgICAgKiBkb2Vz
bid0IGdldCB0byBrbm93IHRoaXMgdHlwZSBvZiBpbmZvcm1hdGlvbi4KKyAg
ICAgICAgICoKKyAgICAgICAgICogVGhlcmVmb3JlIHRoZSBtZWFuaW5nIG9m
IFJUTV9BTFdBWVNfQUJPUlQgaGFzIGJlZW4gYWRqdXN0ZWQsIHRvCisgICAg
ICAgICAqIGluc3RlYWQgbWVhbiAiWEJFR0lOIHdvbid0IGZhdWx0Ii4gIFRo
aXMgaXMgZW5vdWdoIGZvciBhIGd1ZXN0CisgICAgICAgICAqIGtlcm5lbCB0
byBtYWtlIGFuIGluZm9ybWVkIGNob2ljZSBXUlQgbWl0aWdhdGluZyBOYXRp
dmUtQkhJLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiBSVE0tY2FwYWJs
ZSwgd2UgY2FuIHJ1biBhIFZNIHdoaWNoIGhhcyBzZWVuIFJUTV9BTFdBWVNf
QUJPUlQuCisgICAgICAgICAqLworICAgICAgICBpZiAoIHRlc3RfYml0KFg4
Nl9GRUFUVVJFX1JUTSwgZnMpICkKKyAgICAgICAgICAgIF9fc2V0X2JpdChY
ODZfRkVBVFVSRV9SVE1fQUxXQVlTX0FCT1JULCBmcyk7CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIAogICAgIC8qCkBAIC00NzUsMjcgKzQ5MiwxMyBAQCBz
dGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX21heF9mZWF0dXJlX2Fk
anVzdG1lbnRzKHVpbnQzMl90ICpmcykKICAgICAgKi8KICAgICBfX3NldF9i
aXQoWDg2X0ZFQVRVUkVfSFRULCBmcyk7CiAgICAgX19zZXRfYml0KFg4Nl9G
RUFUVVJFX0NNUF9MRUdBQ1ksIGZzKTsKLQotICAgIC8qCi0gICAgICogVG8g
bWl0aWdhdGUgTmF0aXZlLUJISSwgb25lIG9wdGlvbiBpcyB0byB1c2UgYSBU
U1ggQWJvcnQgb24gY2FwYWJsZQotICAgICAqIHN5c3RlbXMuICBUaGlzIGlz
IHNhZmUgZXZlbiBpZiBSVE0gaGFzIGJlZW4gZGlzYWJsZWQgZm9yIG90aGVy
IHJlYXNvbnMKLSAgICAgKiB2aWEgTVNSX1RTWF97Q1RSTCxGT1JDRV9BQk9S
VH0uICBIb3dldmVyLCBhIGd1ZXN0IGtlcm5lbCBkb2Vzbid0IGdldCB0bwot
ICAgICAqIGtub3cgdGhpcyB0eXBlIG9mIGluZm9ybWF0aW9uLgotICAgICAq
Ci0gICAgICogVGhlcmVmb3JlIHRoZSBtZWFuaW5nIG9mIFJUTV9BTFdBWVNf
QUJPUlQgaGFzIGJlZW4gYWRqdXN0ZWQsIHRvIGluc3RlYWQKLSAgICAgKiBt
ZWFuICJYQkVHSU4gd29uJ3QgZmF1bHQiLiAgVGhpcyBpcyBlbm91Z2ggZm9y
IGEgZ3Vlc3Qga2VybmVsIHRvIG1ha2UKLSAgICAgKiBhbiBpbmZvcm1lZCBj
aG9pY2UgV1JUIG1pdGlnYXRpbmcgTmF0aXZlLUJISS4KLSAgICAgKgotICAg
ICAqIElmIFJUTS1jYXBhYmxlLCB3ZSBjYW4gcnVuIGEgVk0gd2hpY2ggaGFz
IHNlZW4gUlRNX0FMV0FZU19BQk9SVC4KLSAgICAgKi8KLSAgICBpZiAoIHRl
c3RfYml0KFg4Nl9GRUFUVVJFX1JUTSwgZnMpICkKLSAgICAgICAgX19zZXRf
Yml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNfQUJPUlQsIGZzKTsKIH0KIAog
c3RhdGljIHZvaWQgX19pbml0IGd1ZXN0X2NvbW1vbl9kZWZhdWx0X2ZlYXR1
cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQogewotICAgIGlmICggYm9v
dF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfSU5URUwgKQor
ICAgIHN3aXRjaCAoIGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciApCiAgICAg
eworICAgIGNhc2UgWDg2X1ZFTkRPUl9JTlRFTDoKICAgICAgICAgLyoKICAg
ICAgICAgICogSXZ5QnJpZGdlIGNsaWVudCBwYXJ0cyBzdWZmZXIgZnJvbSBs
ZWFrYWdlIG9mIFJEUkFORCBkYXRhIGR1ZSB0byBTUkJEUwogICAgICAgICAg
KiAoWFNBLTMyMCAvIENWRS0yMDIwLTA1NDMpLCBhbmQgd29uJ3QgYmUgcmVj
ZWl2aW5nIG1pY3JvY29kZSB0bwpAQCAtNTM5LDYgKzU0MiwyMyBAQCBzdGF0
aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9h
ZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICAgICAgICAgYm9vdF9j
cHVfZGF0YS54ODZfbW9kZWwgPT0gSU5URUxfRkFNNl9TS1lMQUtFX1ggJiYK
ICAgICAgICAgICAgICByYXdfY3B1X3BvbGljeS5mZWF0LmNsd2IgKQogICAg
ICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfQ0xXQiwgZnMpOwor
CisgICAgICAgIC8qCisgICAgICAgICAqIE9uIGNlcnRhaW4gaGFyZHdhcmUs
IHNwZWN1bGF0aXZlIG9yIGVycmF0YSB3b3JrYXJvdW5kcyBjYW4gcmVzdWx0
CisgICAgICAgICAqIGluIFRTWCBiZWluZyBwbGFjZWQgaW4gImZvcmNlLWFi
b3J0IiBtb2RlLCB3aGVyZSBpdCBkb2Vzbid0CisgICAgICAgICAqIGFjdHVh
bGx5IGZ1bmN0aW9uIGFzIGV4cGVjdGVkLCBidXQgaXMgdGVjaG5pY2FsbHkg
Y29tcGF0aWJsZSB3aXRoCisgICAgICAgICAqIHRoZSBJU0EuCisgICAgICAg
ICAqCisgICAgICAgICAqIERvIG5vdCBhZHZlcnRpc2UgUlRNIHRvIGd1ZXN0
cyBieSBkZWZhdWx0IGlmIGl0IHdvbid0IGFjdHVhbGx5CisgICAgICAgICAq
IHdvcmsuICBJbnN0ZWFkLCBhZHZlcnRpc2UgUlRNX0FMV0FZU19BQk9SVCBp
bmRpY2F0aW5nIHRoYXQgVFNYCisgICAgICAgICAqIEFib3J0cyBhcmUgc2Fm
ZSB0byB1c2UsIGUuZy4gZm9yIG1pdGlnYXRpbmcgTmF0aXZlLUJISS4KKyAg
ICAgICAgICovCisgICAgICAgIGlmICggcnRtX2Rpc2FibGVkICkKKyAgICAg
ICAgeworICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfUlRN
LCBmcyk7CisgICAgICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfUlRN
X0FMV0FZU19BQk9SVCwgZnMpOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OwogICAgIH0KIAogICAgIC8qCkBAIC01NTAsMjEgKzU3MCw2IEBAIHN0YXRp
YyB2b2lkIF9faW5pdCBndWVzdF9jb21tb25fZGVmYXVsdF9mZWF0dXJlX2Fk
anVzdG1lbnRzKHVpbnQzMl90ICpmcykKIAogICAgIGlmICggIWNwdV9oYXNf
Y21wX2xlZ2FjeSApCiAgICAgICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJF
X0NNUF9MRUdBQ1ksIGZzKTsKLQotICAgIC8qCi0gICAgICogT24gY2VydGFp
biBoYXJkd2FyZSwgc3BlY3VsYXRpdmUgb3IgZXJyYXRhIHdvcmthcm91bmRz
IGNhbiByZXN1bHQgaW4KLSAgICAgKiBUU1ggYmVpbmcgcGxhY2VkIGluICJm
b3JjZS1hYm9ydCIgbW9kZSwgd2hlcmUgaXQgZG9lc24ndCBhY3R1YWxseQot
ICAgICAqIGZ1bmN0aW9uIGFzIGV4cGVjdGVkLCBidXQgaXMgdGVjaG5pY2Fs
bHkgY29tcGF0aWJsZSB3aXRoIHRoZSBJU0EuCi0gICAgICoKLSAgICAgKiBE
byBub3QgYWR2ZXJ0aXNlIFJUTSB0byBndWVzdHMgYnkgZGVmYXVsdCBpZiBp
dCB3b24ndCBhY3R1YWxseSB3b3JrLgotICAgICAqIEluc3RlYWQsIGFkdmVy
dGlzZSBSVE1fQUxXQVlTX0FCT1JUIGluZGljYXRpbmcgdGhhdCBUU1ggQWJv
cnRzIGFyZSBzYWZlCi0gICAgICogdG8gdXNlLCBlLmcuIGZvciBtaXRpZ2F0
aW5nIE5hdGl2ZS1CSEkuCi0gICAgICovCi0gICAgaWYgKCBydG1fZGlzYWJs
ZWQgKQotICAgIHsKLSAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVf
UlRNLCBmcyk7Ci0gICAgICAgIF9fc2V0X2JpdChYODZfRkVBVFVSRV9SVE1f
QUxXQVlTX0FCT1JULCBmcyk7Ci0gICAgfQogfQogCiBzdGF0aWMgdm9pZCBf
X2luaXQgZ3Vlc3RfY29tbW9uX2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMy
X3QgKmZzKQo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-02.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-02.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxMCBTZXAgMjAyNCAxOTo1NToxNSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogSW5mcmFzdHJ1Y3R1cmUgZm9yIENQVUlE
IGxlYWYgMHg4MDAwMDAyMS5lY3gKClNpZ25lZC1vZmYtYnk6IEFuZHJldyBD
b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5
OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0
IGEvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcHVpZC5jIGIvdG9vbHMvbGli
cy9saWdodC9saWJ4bF9jcHVpZC5jCmluZGV4IDA2M2ZlODZlYjcyZi4uZjcz
OGUxN2IxOWU0IDEwMDY0NAotLS0gYS90b29scy9saWJzL2xpZ2h0L2xpYnhs
X2NwdWlkLmMKKysrIGIvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcHVpZC5j
CkBAIC0zNDIsNiArMzQyLDcgQEAgaW50IGxpYnhsX2NwdWlkX3BhcnNlX2Nv
bmZpZyhsaWJ4bF9jcHVpZF9wb2xpY3lfbGlzdCAqcG9saWN5LCBjb25zdCBj
aGFyKiBzdHIpCiAgICAgICAgIENQVUlEX0VOVFJZKDB4MDAwMDAwMDcsICAx
LCBDUFVJRF9SRUdfRURYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBhLCBD
UFVJRF9SRUdfRUFYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBhLCBDUFVJ
RF9SRUdfRURYKSwKKyAgICAgICAgQ1BVSURfRU5UUlkoMHg4MDAwMDAyMSwg
TkEsIENQVUlEX1JFR19FQ1gpLAogI3VuZGVmIE1TUl9FTlRSWQogI3VuZGVm
IENQVUlEX0VOVFJZCiAgICAgfTsKZGlmZiAtLWdpdCBhL3Rvb2xzL21pc2Mv
eGVuLWNwdWlkLmMgYi90b29scy9taXNjL3hlbi1jcHVpZC5jCmluZGV4IDRj
NDU5MzUyOGRmZS4uOGUzNmI4ZTY5NjAwIDEwMDY0NAotLS0gYS90b29scy9t
aXNjL3hlbi1jcHVpZC5jCisrKyBiL3Rvb2xzL21pc2MveGVuLWNwdWlkLmMK
QEAgLTM3LDYgKzM3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAg
eyAiQ1BVSUQgMHgwMDAwMDAwNzoxLmVkeCIsICAgICAiN2QxIiB9LAogICAg
IHsgIk1TUl9BUkNIX0NBUFMubG8iLCAgICAgICAgICJtMTBBbCIgfSwKICAg
ICB7ICJNU1JfQVJDSF9DQVBTLmhpIiwgICAgICAgICAibTEwQWgiIH0sCisg
ICAgeyAiQ1BVSUQgMHg4MDAwMDAyMS5lY3giLCAgICAgICJlMjFjIiB9LAog
fTsKIAogI2RlZmluZSBDT0xfQUxJR04gIjI0IgpkaWZmIC0tZ2l0IGEveGVu
L2FyY2gveDg2L2NwdS1wb2xpY3kuYyBiL3hlbi9hcmNoL3g4Ni9jcHUtcG9s
aWN5LmMKaW5kZXggNDdlZTFmZjQ3NDYwLi45ZDFmZjYyNjhkNzkgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMKKysrIGIveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYwpAQCAtMzMwLDcgKzMzMCw2IEBAIHN0YXRp
YyB2b2lkIHJlY2FsY3VsYXRlX21pc2Moc3RydWN0IGNwdV9wb2xpY3kgKnAp
CiAgICAgICAgIHAtPmV4dGQucmF3WzB4MWZdID0gRU1QVFlfTEVBRjsgLyog
U0VWICovCiAgICAgICAgIHAtPmV4dGQucmF3WzB4MjBdID0gRU1QVFlfTEVB
RjsgLyogUGxhdGZvcm0gUW9TICovCiAgICAgICAgIHAtPmV4dGQucmF3WzB4
MjFdLmIgPSAwOwotICAgICAgICBwLT5leHRkLnJhd1sweDIxXS5jID0gMDsK
ICAgICAgICAgcC0+ZXh0ZC5yYXdbMHgyMV0uZCA9IDA7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvY29t
bW9uLmMgYi94ZW4vYXJjaC94ODYvY3B1L2NvbW1vbi5jCmluZGV4IGI5MzRj
ZTdjYTQ4Ny4uNzczNjRmZDcyOGRiIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94
ODYvY3B1L2NvbW1vbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvY29tbW9u
LmMKQEAgLTQ4MCw3ICs0ODAsOSBAQCBzdGF0aWMgdm9pZCBnZW5lcmljX2lk
ZW50aWZ5KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIAlpZiAoYy0+ZXh0ZW5k
ZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAwMDAwOCkKIAkJYy0+eDg2X2NhcGFi
aWxpdHlbRkVBVFVSRVNFVF9lOGJdID0gY3B1aWRfZWJ4KDB4ODAwMDAwMDgp
OwogCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA+PSAweDgwMDAwMDIx
KQotCQljLT54ODZfY2FwYWJpbGl0eVtGRUFUVVJFU0VUX2UyMWFdID0gY3B1
aWRfZWF4KDB4ODAwMDAwMjEpOworCQljcHVpZCgweDgwMDAwMDIxLAorCQkg
ICAgICAmYy0+eDg2X2NhcGFiaWxpdHlbRkVBVFVSRVNFVF9lMjFhXSwgJnRt
cCwKKwkJICAgICAgJmMtPng4Nl9jYXBhYmlsaXR5W0ZFQVRVUkVTRVRfZTIx
Y10sICZ0bXApOwogCiAJLyogSW50ZWwtZGVmaW5lZCBmbGFnczogbGV2ZWwg
MHgwMDAwMDAwNyAqLwogCWlmIChjLT5jcHVpZF9sZXZlbCA+PSA3KSB7CmRp
ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVh
dHVyZXNldC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L2NwdWZl
YXR1cmVzZXQuaAppbmRleCAwNDQyMzBiZmU4NTQuLjQ4MGQ1ZjU4Y2UwOSAx
MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L2NwdWZl
YXR1cmVzZXQuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYv
Y3B1ZmVhdHVyZXNldC5oCkBAIC0zOTUsNiArMzk1LDggQEAgWEVOX0NQVUZF
QVRVUkUoTU9OX1VNT05fTUlURywgICAgICAxNiozMiszMCkgLyogICBNQ1Vf
T1BUX0NUUkwuTU9OX1VNT05fTUlURyAqLwogWEVOX0NQVUZFQVRVUkUoUEJf
T1BUX0NUUkwsICAgICAgICAxNiozMiszMikgLyogICBNU1JfUEJfT1BUX0NU
UkwuSUJQQl9BTFQgKi8KIFhFTl9DUFVGRUFUVVJFKElUU19OTywgICAgICAg
ICAgICAgMTYqMzIrNjIpIC8qIUEgTm8gSW5kaXJlY3QgVGFyZ2V0IFNlbGVj
dGlvbiAqLwogCisvKiBBTUQtZGVmaW5lZCBDUFUgZmVhdHVyZXMsIENQVUlE
IGxldmVsIDB4ODAwMDAwMjEuZWN4LCB3b3JkIDE4ICovCisKICNlbmRpZiAv
KiBYRU5fQ1BVRkVBVFVSRSAqLwogCiAvKiBDbGVhbiB1cCBmcm9tIGEgZGVm
YXVsdCBpbmNsdWRlLiAgQ2xvc2UgdGhlIGVudW0gKGZvciBDKS4gKi8KZGlm
ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3ku
aCBiL3hlbi9pbmNsdWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaAppbmRl
eCBmMDhmMzBhZmVjYTMuLmRkMjA0YTgyNWIwNyAxMDA2NDQKLS0tIGEveGVu
L2luY2x1ZGUveGVuL2xpYi94ODYvY3B1LXBvbGljeS5oCisrKyBiL3hlbi9p
bmNsdWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaApAQCAtMjIsNiArMjIs
NyBAQAogI2RlZmluZSBGRUFUVVJFU0VUXzdkMSAgICAgICAxNSAvKiAweDAw
MDAwMDA3OjEuZWR4ICAgICovCiAjZGVmaW5lIEZFQVRVUkVTRVRfbTEwQWwg
ICAgIDE2IC8qIDB4MDAwMDAxMGEuZWF4ICAgICAgKi8KICNkZWZpbmUgRkVB
VFVSRVNFVF9tMTBBaCAgICAgMTcgLyogMHgwMDAwMDEwYS5lZHggICAgICAq
LworI2RlZmluZSBGRUFUVVJFU0VUX2UyMWMgICAgICAxOCAvKiAweDgwMDAw
MDIxLmVjeCAgICAgICovCiAKIHN0cnVjdCBjcHVpZF9sZWFmCiB7CkBAIC0z
MjgsNyArMzI5LDExIEBAIHN0cnVjdCBjcHVfcG9saWN5CiAgICAgICAgICAg
ICB1aW50MTZfdCB1Y29kZV9zaXplOyAvKiBVbml0cyBvZiAxNiBieXRlcyAq
LwogICAgICAgICAgICAgdWludDhfdCAgcmFwX3NpemU7ICAgLyogVW5pdHMg
b2YgOCBlbnRyaWVzICovCiAgICAgICAgICAgICB1aW50OF90ICA6ODsKLSAg
ICAgICAgICAgIHVpbnQzMl90IC8qIGMgKi86MzIsIC8qIGQgKi86MzI7Cisg
ICAgICAgICAgICB1bmlvbiB7CisgICAgICAgICAgICAgICAgdWludDMyX3Qg
ZTIxYzsKKyAgICAgICAgICAgICAgICBzdHJ1Y3QgeyBERUNMX0JJVEZJRUxE
KGUyMWMpOyB9OworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHVpbnQz
Ml90IC8qIGQgKi86MzI7CiAgICAgICAgIH07CiAgICAgfSBleHRkOwogCmRp
ZmYgLS1naXQgYS94ZW4vbGliL3g4Ni9jcHVpZC5jIGIveGVuL2xpYi94ODYv
Y3B1aWQuYwppbmRleCBlYjc2OThkYzczMjUuLjYyOThkMDUxZjJhNiAxMDA2
NDQKLS0tIGEveGVuL2xpYi94ODYvY3B1aWQuYworKysgYi94ZW4vbGliL3g4
Ni9jcHVpZC5jCkBAIC04MSw2ICs4MSw3IEBAIHZvaWQgeDg2X2NwdV9wb2xp
Y3lfdG9fZmVhdHVyZXNldCgKICAgICBmc1tGRUFUVVJFU0VUXzdkMV0gICAg
ICAgPSBwLT5mZWF0Ll83ZDE7CiAgICAgZnNbRkVBVFVSRVNFVF9tMTBBbF0g
ICAgID0gcC0+YXJjaF9jYXBzLmxvOwogICAgIGZzW0ZFQVRVUkVTRVRfbTEw
QWhdICAgICA9IHAtPmFyY2hfY2Fwcy5oaTsKKyAgICBmc1tGRUFUVVJFU0VU
X2UyMWNdICAgICAgPSBwLT5leHRkLmUyMWM7CiB9CiAKIHZvaWQgeDg2X2Nw
dV9mZWF0dXJlc2V0X3RvX3BvbGljeSgKQEAgLTEwNCw2ICsxMDUsNyBAQCB2
b2lkIHg4Nl9jcHVfZmVhdHVyZXNldF90b19wb2xpY3koCiAgICAgcC0+ZmVh
dC5fN2QxICAgICAgICAgICAgID0gZnNbRkVBVFVSRVNFVF83ZDFdOwogICAg
IHAtPmFyY2hfY2Fwcy5sbyAgICAgICAgICA9IGZzW0ZFQVRVUkVTRVRfbTEw
QWxdOwogICAgIHAtPmFyY2hfY2Fwcy5oaSAgICAgICAgICA9IGZzW0ZFQVRV
UkVTRVRfbTEwQWhdOworICAgIHAtPmV4dGQuZTIxYyAgICAgICAgICAgICA9
IGZzW0ZFQVRVUkVTRVRfZTIxY107CiB9CiAKIHZvaWQgeDg2X2NwdV9wb2xp
Y3lfcmVjYWxjX3N5bnRoKHN0cnVjdCBjcHVfcG9saWN5ICpwKQo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-03.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-03.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBTZXAgMjAyNCAxMToyODozOSArMDEwMApTdWJq
ZWN0OiB4ODYvdWNvZGU6IERpZ2VzdHMgZm9yIFRTQSBtaWNyb2NvZGUKCkFN
RCBhcmUgcmVsZWFzaW5nIG1pY3JvY29kZSBmb3IgVFNBLCBzbyBleHRlbmQg
dGhlIGtub3duLXByb3ZlbmFuY2UgbGlzdCB3aXRoCnRoZWlyIGhhc2hlcy4g
IFRoZXNlIHdlcmUgcHJvZHVjZWQgYmVmb3JlIHRoZSByZW1lZGlhdGlvbiBv
ZiB0aGUgbWljcm9jb2RlCnNpZ25hdHVyZSBpc3N1ZXMgKHRoZSBlbnRyeXNp
Z24gdnVsbmVyYWJpbGl0eSksIHNvIGNhbiBiZSBPUy1sb2FkZWQgb24Kb3V0
LW9mLWRhdGUgZmlybXdhcmUuCgpJbmNsdWRlIGFuIG9mZi1ieS1kZWZhdWx0
IGNoZWNrIGZvciB0aGUgc29ydGVkLW5lc3Mgb2YgcGF0Y2hfZGlnZXN0c1td
LiAgSXQncwpub3Qgd29ydGggcnVubmluZyBnZW5lcmFsbHkgdW5kZXIgU0VM
Rl9URVNUUywgYnV0IGlzIHVzZWZ1bCB3aGVuIGVkaXRpbmcgdGhlCmRpZ2Vz
dCBsaXN0LgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NzEgLyBDVkUtMjAyNC0z
NjM1MCAvIENWRS0yMDI0LTM2MzU3LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQWNrZWQtYnk6
IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQg
YS94ZW4vYXJjaC94ODYvY3B1L21pY3JvY29kZS9hbWQtcGF0Y2gtZGlnZXN0
cy5jIGIveGVuL2FyY2gveDg2L2NwdS9taWNyb2NvZGUvYW1kLXBhdGNoLWRp
Z2VzdHMuYwppbmRleCBkMzI3NjEyMjY3MTIuLmQyYzRlMDE3OGExZSAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9taWNyb2NvZGUvYW1kLXBhdGNo
LWRpZ2VzdHMuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L21pY3JvY29kZS9h
bWQtcGF0Y2gtZGlnZXN0cy5jCkBAIC04MCw2ICs4MCwxNSBAQAogICAgICAg
ICAweDBkLCAweDViLCAweDY1LCAweDM0LCAweDY5LCAweGIyLCAweDYyLCAw
eDIxLAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGEwMDEx
ZDcsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHgzNSwgMHgwNywgMHhj
ZCwgMHg0MCwgMHg5NCwgMHhiYywgMHg4MSwgMHg2YiwKKyAgICAgICAgMHhm
YywgMHg2MSwgMHg1NiwgMHgxYSwgMHhlMiwgMHhkYiwgMHg5NiwgMHgxMiwK
KyAgICAgICAgMHgxYywgMHgxYywgMHgzMSwgMHhiMSwgMHgwMiwgMHg2Ziwg
MHhlNSwgMHhkMiwKKyAgICAgICAgMHhmZSwgMHgxYiwgMHgwNCwgMHgwMywg
MHgyYywgMHg4ZiwgMHg0YywgMHgzNiwKKyAgICB9LAorfSwKIHsKICAgICAu
cGF0Y2hfaWQgPSAweDBhMDAxMjM4LAogICAgIC5kaWdlc3QgPSB7CkBAIC04
OSw2ICs5OCwxNSBAQAogICAgICAgICAweGMwLCAweGNkLCAweDMzLCAweGYy
LCAweDhkLCAweGY5LCAweGVmLCAweDU5LAogICAgIH0sCiB9LAoreworICAg
IC5wYXRjaF9pZCA9IDB4MGEwMDEyM2IsCisgICAgLmRpZ2VzdCA9IHsKKyAg
ICAgICAgMHhlZiwgMHhhMSwgMHgxZSwgMHg3MSwgMHhmMSwgMHhjMywgMHgy
YywgMHhlMiwKKyAgICAgICAgMHhjMywgMHhlZiwgMHg2OSwgMHg0MSwgMHg3
YSwgMHg1NCwgMHhjYSwgMHhjMywKKyAgICAgICAgMHg4ZiwgMHg2MiwgMHg4
NCwgMHhlZSwgMHhjMiwgMHgzOSwgMHhkOSwgMHgyOCwKKyAgICAgICAgMHg5
NSwgMHhhNywgMHgxMiwgMHg0OSwgMHgxZSwgMHgzMCwgMHg3MSwgMHg3MiwK
KyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhMDA4MjBjLAog
ICAgIC5kaWdlc3QgPSB7CkBAIC05OCw2ICsxMTYsMTUgQEAKICAgICAgICAg
MHhlMSwgMHgzYiwgMHg4ZCwgMHhiMiwgMHhmOCwgMHgyMiwgMHgwMywgMHhl
MiwKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBhMDA4MjBk
LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4ZjksIDB4MmEsIDB4YzAs
IDB4ZjQsIDB4OWUsIDB4YTQsIDB4ODcsIDB4YTQsCisgICAgICAgIDB4N2Qs
IDB4ODcsIDB4MDAsIDB4ZmQsIDB4YWIsIDB4ZGEsIDB4MTksIDB4Y2EsCisg
ICAgICAgIDB4MjYsIDB4NTEsIDB4MzIsIDB4YzEsIDB4NTcsIDB4OTEsIDB4
ZGYsIDB4YzEsCisgICAgICAgIDB4MDUsIDB4ZWIsIDB4MDEsIDB4N2MsIDB4
NWEsIDB4OTUsIDB4MjEsIDB4YjcsCisgICAgfSwKK30sCiB7CiAgICAgLnBh
dGNoX2lkID0gMHgwYTEwMTE0OCwKICAgICAuZGlnZXN0ID0gewpAQCAtMTA3
LDYgKzEzNCwxNSBAQAogICAgICAgICAweGYxLCAweDVlLCAweGIwLCAweGRl
LCAweGI0LCAweDk4LCAweGFlLCAweGM0LAogICAgIH0sCiB9LAoreworICAg
IC5wYXRjaF9pZCA9IDB4MGExMDExNGMsCisgICAgLmRpZ2VzdCA9IHsKKyAg
ICAgICAgMHg5ZSwgMHhiNiwgMHhhMiwgMHhkOSwgMHg4NywgMHgzOCwgMHhj
NSwgMHg2NCwKKyAgICAgICAgMHhkOCwgMHg4OCwgMHhmYSwgMHg3OCwgMHg5
OCwgMHhmOSwgMHg2ZiwgMHg3NCwKKyAgICAgICAgMHgzOSwgMHg5MCwgMHgx
YiwgMHhhNSwgMHhjZiwgMHg1ZSwgMHhiNCwgMHgyYSwKKyAgICAgICAgMHgw
MiwgMHhmZiwgMHhkNCwgMHg4YywgMHg3MSwgMHg4YiwgMHhlMiwgMHhjMCwK
KyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhMTAxMjQ4LAog
ICAgIC5kaWdlc3QgPSB7CkBAIC0xMTYsNiArMTUyLDE1IEBACiAgICAgICAg
IDB4MWIsIDB4N2QsIDB4NjQsIDB4OWQsIDB4NGIsIDB4NTMsIDB4MTMsIDB4
NzUsCiAgICAgfSwKIH0sCit7CisgICAgLnBhdGNoX2lkID0gMHgwYTEwMTI0
YywKKyAgICAuZGlnZXN0ID0geworICAgICAgICAweDI5LCAweGVhLCAweGYx
LCAweDJjLCAweGIyLCAweGU0LCAweGVmLCAweDkwLAorICAgICAgICAweGE0
LCAweGNkLCAweDFkLCAweDg2LCAweDk3LCAweDE3LCAweDYxLCAweDQ2LAor
ICAgICAgICAweGZjLCAweDIyLCAweGNiLCAweDU3LCAweDc1LCAweDE5LCAw
eGM4LCAweGNjLAorICAgICAgICAweDBjLCAweGY1LCAweGJjLCAweGFjLCAw
eDgxLCAweDlkLCAweDlhLCAweGQyLAorICAgIH0sCit9LAogewogICAgIC5w
YXRjaF9pZCA9IDB4MGExMDgxMDgsCiAgICAgLmRpZ2VzdCA9IHsKQEAgLTEy
NSw2ICsxNzAsMTUgQEAKICAgICAgICAgMHgyOCwgMHgxZSwgMHg5YywgMHg1
OSwgMHg2OSwgMHg5OSwgMHg0ZCwgMHgxNiwKICAgICB9LAogfSwKK3sKKyAg
ICAucGF0Y2hfaWQgPSAweDBhMTA4MTA5LAorICAgIC5kaWdlc3QgPSB7Cisg
ICAgICAgIDB4ODUsIDB4YjQsIDB4YmQsIDB4N2MsIDB4NDksIDB4YTcsIDB4
YmQsIDB4ZmEsCisgICAgICAgIDB4NDksIDB4MzYsIDB4ODAsIDB4ODEsIDB4
YzUsIDB4YjcsIDB4MzksIDB4MWIsCisgICAgICAgIDB4OWEsIDB4YWEsIDB4
NTAsIDB4ZGUsIDB4OWIsIDB4ZTksIDB4MzIsIDB4MzUsCisgICAgICAgIDB4
NDIsIDB4N2UsIDB4NTEsIDB4NGYsIDB4NTIsIDB4MmMsIDB4MjgsIDB4NTks
CisgICAgfSwKK30sCiB7CiAgICAgLnBhdGNoX2lkID0gMHgwYTIwMTAyZCwK
ICAgICAuZGlnZXN0ID0gewpAQCAtMTM0LDYgKzE4OCwxNSBAQAogICAgICAg
ICAweDhjLCAweGU5LCAweDE5LCAweDNlLCAweGNjLCAweDNmLCAweDdiLCAw
eGI0LAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGEyMDEw
MmUsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHhiZSwgMHgxZiwgMHgz
MiwgMHgwNCwgMHgwZCwgMHgzYywgMHg5YywgMHhkZCwKKyAgICAgICAgMHhl
MSwgMHhhNCwgMHhiZiwgMHg3NiwgMHgzYSwgMHhlYywgMHhjMiwgMHhmNiwK
KyAgICAgICAgMHgxMSwgMHgwMCwgMHhhNywgMHhhZiwgMHgwZiwgMHhlNSwg
MHgwMiwgMHhjNSwKKyAgICAgICAgMHg1NCwgMHgzYSwgMHgxZiwgMHg4Yywg
MHgxNiwgMHhiNSwgMHhmZiwgMHhiZSwKKyAgICB9LAorfSwKIHsKICAgICAu
cGF0Y2hfaWQgPSAweDBhMjAxMjEwLAogICAgIC5kaWdlc3QgPSB7CkBAIC0x
NDMsNiArMjA2LDE1IEBACiAgICAgICAgIDB4ZjcsIDB4NTUsIDB4ZjAsIDB4
MTMsIDB4YmIsIDB4MjIsIDB4ZjYsIDB4NDEsCiAgICAgfSwKIH0sCit7Cisg
ICAgLnBhdGNoX2lkID0gMHgwYTIwMTIxMSwKKyAgICAuZGlnZXN0ID0gewor
ICAgICAgICAweDY5LCAweGExLCAweDE3LCAweGVjLCAweGQwLCAweGY2LCAw
eDZjLCAweDk1LAorICAgICAgICAweGUyLCAweDFlLCAweGM1LCAweDU5LCAw
eDFhLCAweDUyLCAweDBhLCAweDI3LAorICAgICAgICAweGM0LCAweGVkLCAw
eGQ1LCAweDU5LCAweDFmLCAweGJmLCAweDAwLCAweGZmLAorICAgICAgICAw
eDA4LCAweDg4LCAweGI1LCAweGUxLCAweDEyLCAweGI2LCAweGNjLCAweDI3
LAorICAgIH0sCit9LAogewogICAgIC5wYXRjaF9pZCA9IDB4MGE0MDQxMDcs
CiAgICAgLmRpZ2VzdCA9IHsKQEAgLTE1Miw2ICsyMjQsMTUgQEAKICAgICAg
ICAgMHgxMywgMHhiYywgMHhjNSwgMHgyNSwgMHhlNCwgMHhjNSwgMHhjMywg
MHg5OSwKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBhNDA0
MTA4LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4NjksIDB4NjcsIDB4
NDMsIDB4MDYsIDB4ZjgsIDB4MGMsIDB4NjIsIDB4ZGMsCisgICAgICAgIDB4
YTQsIDB4MjEsIDB4MzAsIDB4NGYsIDB4MGYsIDB4MjEsIDB4MmMsIDB4Y2Is
CisgICAgICAgIDB4Y2MsIDB4MzcsIDB4ZjEsIDB4MWMsIDB4YzMsIDB4Zjgs
IDB4MmYsIDB4MTksCisgICAgICAgIDB4ZGYsIDB4NTMsIDB4NTMsIDB4NDYs
IDB4YjEsIDB4MTUsIDB4ZWEsIDB4MDAsCisgICAgfSwKK30sCiB7CiAgICAg
LnBhdGNoX2lkID0gMHgwYTUwMDAxMSwKICAgICAuZGlnZXN0ID0gewpAQCAt
MTYxLDYgKzI0MiwxNSBAQAogICAgICAgICAweDExLCAweDVlLCAweDk2LCAw
eDdlLCAweDcxLCAweGU5LCAweGZjLCAweDc0LAogICAgIH0sCiB9LAorewor
ICAgIC5wYXRjaF9pZCA9IDB4MGE1MDAwMTIsCisgICAgLmRpZ2VzdCA9IHsK
KyAgICAgICAgMHhlYiwgMHg3NCwgMHgwZCwgMHg0NywgMHhhMSwgMHg4ZSwg
MHgwOSwgMHhlNCwKKyAgICAgICAgMHg5MywgMHg0YywgMHhhZCwgMHgwMywg
MHgzMiwgMHg0YywgMHgzOCwgMHgxNiwKKyAgICAgICAgMHgxMCwgMHgzOSwg
MHhkZCwgMHgwNiwgMHhhYSwgMHhjZSwgMHhkNiwgMHgwZiwKKyAgICAgICAg
MHg2MiwgMHg4MywgMHg5ZCwgMHg4ZSwgMHg2NCwgMHg1NSwgMHhiZSwgMHg2
MywKKyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhNjAxMjA5
LAogICAgIC5kaWdlc3QgPSB7CkBAIC0xNzAsNiArMjYwLDE1IEBACiAgICAg
ICAgIDB4ZTgsIDB4NzMsIDB4ZTIsIDB4ZDYsIDB4ZGIsIDB4ZDIsIDB4Nzcs
IDB4MWQsCiAgICAgfSwKIH0sCit7CisgICAgLnBhdGNoX2lkID0gMHgwYTYw
MTIwYSwKKyAgICAuZGlnZXN0ID0geworICAgICAgICAweDBjLCAweDhiLCAw
eDNkLCAweGZkLCAweDUyLCAweDUyLCAweDg1LCAweDdkLAorICAgICAgICAw
eDIwLCAweDNhLCAweGUxLCAweDdlLCAweGE0LCAweDIxLCAweDNiLCAweDdi
LAorICAgICAgICAweDE3LCAweDg2LCAweGFlLCAweGFjLCAweDEzLCAweGI4
LCAweDYzLCAweDlkLAorICAgICAgICAweDA2LCAweDAxLCAweGQwLCAweGEw
LCAweDUxLCAweDlhLCAweDkxLCAweDJjLAorICAgIH0sCit9LAogewogICAg
IC5wYXRjaF9pZCA9IDB4MGE3MDQxMDcsCiAgICAgLmRpZ2VzdCA9IHsKQEAg
LTE3OSw2ICsyNzgsMTUgQEAKICAgICAgICAgMHg2NCwgMHgzOSwgMHg3MSwg
MHg4YywgMHhjZSwgMHhlNywgMHg0MSwgMHgzOSwKICAgICB9LAogfSwKK3sK
KyAgICAucGF0Y2hfaWQgPSAweDBhNzA0MTA4LAorICAgIC5kaWdlc3QgPSB7
CisgICAgICAgIDB4ZDcsIDB4NTUsIDB4MTUsIDB4MmIsIDB4ZmUsIDB4YzQs
IDB4YmMsIDB4OTMsCisgICAgICAgIDB4ZWMsIDB4OTEsIDB4YTAsIDB4YWUs
IDB4NDUsIDB4YjcsIDB4YzMsIDB4OTgsCisgICAgICAgIDB4NGUsIDB4ZmYs
IDB4NjEsIDB4NzcsIDB4ODgsIDB4YzIsIDB4NzAsIDB4NDksCisgICAgICAg
IDB4ZTAsIDB4M2EsIDB4MWQsIDB4ODQsIDB4MzgsIDB4NTIsIDB4YmYsIDB4
NWEsCisgICAgfSwKK30sCiB7CiAgICAgLnBhdGNoX2lkID0gMHgwYTcwNTIw
NiwKICAgICAuZGlnZXN0ID0gewpAQCAtMTg4LDYgKzI5NiwxNSBAQAogICAg
ICAgICAweDAzLCAweDM1LCAweGU5LCAweGJlLCAweGZiLCAweDA2LCAweGRm
LCAweGZjLAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGE3
MDUyMDgsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHgzMCwgMHgxZCwg
MHg1NSwgMHgyNCwgMHhiYywgMHg2YiwgMHg1YSwgMHgxOSwKKyAgICAgICAg
MHgwYywgMHg3ZCwgMHgxZCwgMHg3NCwgMHhhYSwgMHhkMSwgMHhlYiwgMHhk
MiwKKyAgICAgICAgMHgxNiwgMHg2MiwgMHhmNywgMHg1YiwgMHhlMSwgMHgx
ZiwgMHgxOCwgMHgxMSwKKyAgICAgICAgMHg1YywgMHhmMCwgMHg5NCwgMHg5
MCwgMHgyNiwgMHhlYywgMHg2OSwgMHhmZiwKKyAgICB9LAorfSwKIHsKICAg
ICAucGF0Y2hfaWQgPSAweDBhNzA4MDA3LAogICAgIC5kaWdlc3QgPSB7CkBA
IC0xOTcsNiArMzE0LDE1IEBACiAgICAgICAgIDB4ZGYsIDB4OTIsIDB4NzMs
IDB4ODQsIDB4ODcsIDB4M2MsIDB4NzMsIDB4OTMsCiAgICAgfSwKIH0sCit7
CisgICAgLnBhdGNoX2lkID0gMHgwYTcwODAwOCwKKyAgICAuZGlnZXN0ID0g
eworICAgICAgICAweDA4LCAweDZlLCAweGYwLCAweDIyLCAweDRiLCAweDhl
LCAweGM0LCAweDQ2LAorICAgICAgICAweDU4LCAweDM0LCAweGU2LCAweDQ3
LCAweGEyLCAweDI4LCAweGZkLCAweGFiLAorICAgICAgICAweDIyLCAweDNk
LCAweGRkLCAweGQ4LCAweDUyLCAweDllLCAweDFkLCAweDE2LAorICAgICAg
ICAweGZhLCAweDAxLCAweDY4LCAweDE0LCAweDc5LCAweDNlLCAweGU4LCAw
eDZiLAorICAgIH0sCit9LAogewogICAgIC5wYXRjaF9pZCA9IDB4MGE3MGMw
MDUsCiAgICAgLmRpZ2VzdCA9IHsKQEAgLTIwNiw2ICszMzIsMTUgQEAKICAg
ICAgICAgMHhlZSwgMHg0OSwgMHhhYywgMHhlMSwgMHg4YiwgMHgxMywgMHhj
NSwgMHgxMywKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBh
NzBjMDA4LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4MGYsIDB4ZGIs
IDB4MzcsIDB4YTEsIDB4MTAsIDB4YWYsIDB4ZDQsIDB4MjEsCisgICAgICAg
IDB4OTQsIDB4MGQsIDB4YTQsIDB4YTIsIDB4ZTksIDB4ODYsIDB4NmMsIDB4
MGUsCisgICAgICAgIDB4ODUsIDB4N2MsIDB4MzYsIDB4MzAsIDB4YTMsIDB4
M2EsIDB4NzgsIDB4NjYsCisgICAgICAgIDB4MTgsIDB4MTAsIDB4NjAsIDB4
MGQsIDB4NzgsIDB4M2QsIDB4NDQsIDB4ZDAsCisgICAgfSwKK30sCiB7CiAg
ICAgLnBhdGNoX2lkID0gMHgwYWEwMDExNiwKICAgICAuZGlnZXN0ID0gewpA
QCAtMjI0LDMgKzM1OSwxMiBAQAogICAgICAgICAweDY4LCAweDJmLCAweDQ2
LCAweGVlLCAweGZlLCAweGM2LCAweDZkLCAweGVmLAogICAgIH0sCiB9LAor
eworICAgIC5wYXRjaF9pZCA9IDB4MGFhMDAyMTYsCisgICAgLmRpZ2VzdCA9
IHsKKyAgICAgICAgMHg3OSwgMHhmYiwgMHg1YiwgMHg5ZiwgMHhiNiwgMHhl
NiwgMHhhOCwgMHhmNSwKKyAgICAgICAgMHg0ZSwgMHg3YywgMHg0ZiwgMHg4
ZSwgMHgxZCwgMHhhZCwgMHhkMCwgMHgwOCwKKyAgICAgICAgMHhjMiwgMHg0
MywgMHg3YywgMHg4YiwgMHhlNiwgMHhkYiwgMHhkMCwgMHhkMiwKKyAgICAg
ICAgMHhlOCwgMHgzOSwgMHgyNiwgMHhjMSwgMHhlNSwgMHg1YSwgMHg0OCwg
MHhmMSwKKyAgICB9LAorfSwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9j
cHUvbWljcm9jb2RlL2FtZC5jIGIveGVuL2FyY2gveDg2L2NwdS9taWNyb2Nv
ZGUvYW1kLmMKaW5kZXggZWJkOWVjYmVlZjBmLi44YjA5MjMxYzZjNjYgMTAw
NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWljcm9jb2RlL2FtZC5jCisr
KyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWljcm9jb2RlL2FtZC5jCkBAIC01Mjgs
MyArNTI4LDE4IEBAIHZvaWQgX19pbml0IHVjb2RlX3Byb2JlX2FtZChzdHJ1
Y3QgbWljcm9jb2RlX29wcyAqb3BzKQogCiAgICAgKm9wcyA9IGFtZF91Y29k
ZV9vcHM7CiB9CisKKyNpZiAwIC8qIE1hbnVhbCBDT05GSUdfU0VMRl9URVNU
UyAqLworc3RhdGljIHZvaWQgX19pbml0IF9fY29uc3RydWN0b3IgdGVzdF9k
aWdlc3RzX3NvcnRlZCh2b2lkKQoreworICAgIGZvciAoIHVuc2lnbmVkIGlu
dCBpID0gMTsgaSA8IEFSUkFZX1NJWkUocGF0Y2hfZGlnZXN0cyk7ICsraSAp
CisgICAgeworICAgICAgICBpZiAoIHBhdGNoX2RpZ2VzdHNbaSAtIDFdLnBh
dGNoX2lkIDwgcGF0Y2hfZGlnZXN0c1tpXS5wYXRjaF9pZCApCisgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICBwYW5pYygicGF0Y2hfZGlnZXN0
c1tdIG5vdCBzb3J0ZWQ6ICUwOHggPj0gJTA4eFxuIiwKKyAgICAgICAgICAg
ICAgcGF0Y2hfZGlnZXN0c1tpIC0gMV0ucGF0Y2hfaWQsCisgICAgICAgICAg
ICAgIHBhdGNoX2RpZ2VzdHNbaV0ucGF0Y2hfaWQpOworICAgIH0KK30KKyNl
bmRpZiAvKiBDT05GSUdfU0VMRl9URVNUUyAqLwo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-01.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-01.patch"
Content-Transfer-Encoding: base64

RnJvbTogUm9nZXIgUGF1IE1vbm5lIDxyb2dlci5wYXVAY2l0cml4LmNvbT4K
RGF0ZTogVGh1LCAxNyBBcHIgMjAyNSAxMjozNToyOCArMDIwMApTdWJqZWN0
OiB4ODYvaW50ZWw6IHdvcmthcm91bmQgc2V2ZXJhbCBNT05JVE9SL01XQUlU
IGVycmF0YQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQv
cGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu
ZzogOGJpdAoKVGhlcmUgYXJlIHNldmVyYWwgZXJyYXRhIG9uIEludGVsIHJl
Z2FyZGluZyB0aGUgdXNhZ2Ugb2YgdGhlIE1PTklUT1IvTVdBSVQKaW5zdHJ1
Y3Rpb25zLCBhbGwgaGF2aW5nIGluIGNvbW1vbiB0aGF0IHN0b3JlcyB0byB0
aGUgbW9uaXRvcmVkIHJlZ2lvbgptaWdodCBub3Qgd2FrZSB1cCB0aGUgQ1BV
LgoKRml4IHRoZW0gYnkgZm9yY2luZyB0aGUgc2VuZGluZyBvZiBhbiBJUEkg
Zm9yIHRoZSBhZmZlY3RlZCBtb2RlbHMuCgpUaGUgSWNlIExha2UgaXNzdWUg
aGFzIGJlZW4gcmVwcm9kdWNlZCBpbnRlcm5hbGx5IG9uIFhlblNlcnZlciBo
YXJkd2FyZSwKYW5kIHRoZSBmaXggZG9lcyBzZWVtIHRvIHByZXZlbnQgaXQu
ICBUaGUgc3ltcHRvbSB3YXMgQVBzIGdldHRpbmcgc3R1Y2sgaW4KdGhlIGlk
bGUgbG9vcCBpbW1lZGlhdGVseSBhZnRlciBicmluZyB1cCwgd2hpY2ggaW4g
dHVybiBwcmV2ZW50ZWQgdGhlIEJTUApmcm9tIG1ha2luZyBwcm9ncmVzcy4g
IFRoaXMgd291bGQgaGFwcGVuIGJlZm9yZSB0aGUgd2F0Y2hkb2cgd2FzCmlu
aXRpYWxpemVkLCBhbmQgaGVuY2UgdGhlIHdob2xlIHN5c3RlbSB3b3VsZCBn
ZXQgc3R1Y2suCgpTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxy
b2dlci5wYXVAY2l0cml4LmNvbT4KQWNrZWQtYnk6IEphbiBCZXVsaWNoIDxq
YmV1bGljaEBzdXNlLmNvbT4KQWNrZWQtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CihjaGVycnkgcGlja2VkIGZyb20g
Y29tbWl0IDRhYWU0NDUyZWZlZWUzZDNiYmEwOTJiODc1ZTM3ZDFlN2M4ZjZk
YjkpCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUu
YyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXggNTU3YmM2
ZWY4NjQyLi4yZDhiNjZjOTEwMGEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4
Ni9hY3BpL2NwdV9pZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1
X2lkbGUuYwpAQCAtNDUzLDggKzQ1MywxNCBAQCB2b2lkIGNwdWlkbGVfd2Fr
ZXVwX213YWl0KGNwdW1hc2tfdCAqbWFzaykKICAgICBjcHVtYXNrX2FuZG5v
dChtYXNrLCBtYXNrLCAmdGFyZ2V0KTsKIH0KIAorLyogRm9yY2Ugc2VuZGlu
ZyBvZiBhIHdha2V1cCBJUEkgcmVnYXJkbGVzcyBvZiBtd2FpdCB1c2FnZS4g
Ki8KK2Jvb2wgX19yb19hZnRlcl9pbml0IGZvcmNlX213YWl0X2lwaV93YWtl
dXA7CisKIGJvb2wgYXJjaF9za2lwX3NlbmRfZXZlbnRfY2hlY2sodW5zaWdu
ZWQgaW50IGNwdSkKIHsKKyAgICBpZiAoIGZvcmNlX213YWl0X2lwaV93YWtl
dXAgKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICAvKgogICAgICAq
IFRoaXMgcmVsaWVzIG9uIHNvZnRpcnFfcGVuZGluZygpIGFuZCBtd2FpdF93
YWtldXAoKSB0byBhY2Nlc3MgZGF0YQogICAgICAqIG9uIHRoZSBzYW1lIGNh
Y2hlIGxpbmUuCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L2ludGVs
LmMgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKaW5kZXggNDkwZjdmZjZm
MWZlLi5jNmNhNDJkMDdhZDggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9j
cHUvaW50ZWwuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKQEAg
LTcsNiArNyw3IEBACiAjaW5jbHVkZSA8YXNtL2ludGVsLWZhbWlseS5oPgog
I2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KICNpbmNsdWRlIDxhc20vbXNy
Lmg+CisjaW5jbHVkZSA8YXNtL213YWl0Lmg+CiAjaW5jbHVkZSA8YXNtL3Vh
Y2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vbXBzcGVjLmg+CiAjaW5jbHVkZSA8
YXNtL2FwaWMuaD4KQEAgLTM2Myw3ICszNjQsNiBAQCBzdGF0aWMgdm9pZCBw
cm9iZV9jM19lcnJhdGEoY29uc3Qgc3RydWN0IGNwdWluZm9feDg2ICpjKQog
ICAgICAgICBJTlRFTF9GQU02X01PREVMKDB4MjUpLAogICAgICAgICB7IH0K
ICAgICB9OwotI3VuZGVmIElOVEVMX0ZBTTZfTU9ERUwKIAogICAgIC8qIFNl
cmlhbGl6ZWQgYnkgdGhlIEFQIGJyaW5ndXAgY29kZS4gKi8KICAgICBpZiAo
IG1heF9jc3RhdGUgPiAxICYmIChjLT5hcGljaWQgJiAoYy0+eDg2X251bV9z
aWJsaW5ncyAtIDEpKSAmJgpAQCAtMzc1LDYgKzM3NSwzOCBAQCBzdGF0aWMg
dm9pZCBwcm9iZV9jM19lcnJhdGEoY29uc3Qgc3RydWN0IGNwdWluZm9feDg2
ICpjKQogICAgIH0KIH0KIAorLyoKKyAqIEFQTDMwOiBPbmUgdXNlIG9mIHRo
ZSBNT05JVE9SL01XQUlUIGluc3RydWN0aW9uIHBhaXIgaXMgdG8gYWxsb3cg
YSBsb2dpY2FsCisgKiBwcm9jZXNzb3IgdG8gd2FpdCBpbiBhIHNsZWVwIHN0
YXRlIHVudGlsIGEgc3RvcmUgdG8gdGhlIGFybWVkIGFkZHJlc3MgcmFuZ2UK
KyAqIG9jY3Vycy4gRHVlIHRvIHRoaXMgZXJyYXR1bSwgc3RvcmVzIHRvIHRo
ZSBhcm1lZCBhZGRyZXNzIHJhbmdlIG1heSBub3QKKyAqIHRyaWdnZXIgTVdB
SVQgdG8gcmVzdW1lIGV4ZWN1dGlvbi4KKyAqCisgKiBJQ1gxNDM6IFVuZGVy
IGNvbXBsZXggbWljcm9hcmNoaXRlY3R1cmFsIGNvbmRpdGlvbnMsIGEgbW9u
aXRvciB0aGF0IGlzIGFybWVkCisgKiB3aXRoIHRoZSBNV0FJVCBpbnN0cnVj
dGlvbiBtYXkgbm90IGJlIHRyaWdnZXJlZCwgbGVhZGluZyB0byBhIHByb2Nl
c3NvcgorICogaGFuZy4KKyAqCisgKiBMTkwwMzA6IFByb2JsZW0gUC1jb3Jl
cyBtYXkgbm90IGV4aXQgcG93ZXIgc3RhdGUgQ29yZSBDNiBvbiBtb25pdG9y
IGhpdC4KKyAqCisgKiBGb3JjZSB0aGUgc2VuZGluZyBvZiBhbiBJUEkgaW4g
dGhvc2UgY2FzZXMuCisgKi8KK3N0YXRpYyB2b2lkIF9faW5pdCBwcm9iZV9t
d2FpdF9lcnJhdGEodm9pZCkKK3sKKyAgICBzdGF0aWMgY29uc3Qgc3RydWN0
IHg4Nl9jcHVfaWQgX19pbml0Y29uc3QgbW9kZWxzW10gPSB7CisgICAgICAg
IElOVEVMX0ZBTTZfTU9ERUwoSU5URUxfRkFNNl9BVE9NX0dPTERNT05UKSwg
LyogQVBMMzAgICovCisgICAgICAgIElOVEVMX0ZBTTZfTU9ERUwoSU5URUxf
RkFNNl9JQ0VMQUtFX1gpLCAgICAgLyogSUNYMTQzICovCisgICAgICAgIElO
VEVMX0ZBTTZfTU9ERUwoSU5URUxfRkFNNl9MVU5BUkxBS0VfTSksICAgLyog
TE5MMDMwICovCisgICAgICAgIHsgfQorICAgIH07CisjdW5kZWYgSU5URUxf
RkFNNl9NT0RFTAorCisgICAgaWYgKCBib290X2NwdV9oYXMoWDg2X0ZFQVRV
UkVfTU9OSVRPUikgJiYgeDg2X21hdGNoX2NwdShtb2RlbHMpICkKKyAgICB7
CisgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORworICAgICAgICAgICAg
ICAgIkZvcmNpbmcgSVBJIE1XQUlUIHdha2V1cCBkdWUgdG8gQ1BVIGVycmF0
dW1cbiIpOworICAgICAgICBmb3JjZV9td2FpdF9pcGlfd2FrZXVwID0gdHJ1
ZTsKKyAgICB9Cit9CisKIC8qCiAgKiBQNCBYZW9uIGVycmF0YSAwMzcgd29y
a2Fyb3VuZC4KICAqIEhhcmR3YXJlIHByZWZldGNoZXIgbWF5IGNhdXNlIHN0
YWxlIGRhdGEgdG8gYmUgbG9hZGVkIGludG8gdGhlIGNhY2hlLgpAQCAtNDAx
LDYgKzQzMyw4IEBAIHN0YXRpYyB2b2lkIEludGVsX2VycmF0YV93b3JrYXJv
dW5kcyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiAJCV9fc2V0X2JpdChYODZf
RkVBVFVSRV9DTEZMVVNIX01PTklUT1IsIGMtPng4Nl9jYXBhYmlsaXR5KTsK
IAogCXByb2JlX2MzX2VycmF0YShjKTsKKwlpZiAoc3lzdGVtX3N0YXRlIDwg
U1lTX1NUQVRFX3NtcF9ib290KQorCQlwcm9iZV9td2FpdF9lcnJhdGEoKTsK
IH0KIAogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20v
bXdhaXQuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9td2FpdC5oCmlu
ZGV4IGYzNzdkOWZkY2FkNC4uOTdiZjM2MTUwNWYwIDEwMDY0NAotLS0gYS94
ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXdhaXQuaAorKysgYi94ZW4vYXJj
aC94ODYvaW5jbHVkZS9hc20vbXdhaXQuaApAQCAtMTMsNiArMTMsOSBAQAog
CiAjZGVmaW5lIE1XQUlUX0VDWF9JTlRFUlJVUFRfQlJFQUsJMHgxCiAKKy8q
IEZvcmNlIHNlbmRpbmcgb2YgYSB3YWtldXAgSVBJIHJlZ2FyZGxlc3Mgb2Yg
bXdhaXQgdXNhZ2UuICovCitleHRlcm4gYm9vbCBmb3JjZV9td2FpdF9pcGlf
d2FrZXVwOworCiB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25l
ZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQgZWN4KTsKIGJvb2wgbXdhaXRfcGMx
MF9zdXBwb3J0ZWQodm9pZCk7CiAK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-02.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-02.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxMCBTZXAgMjAyNCAyMDo1OTozNyArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1ZmVhdHVyZTogUmVwb3NpdGlvbiBjcHVfaGFzX3tsZmVu
Y2VfZGlzcGF0Y2gsbnNjYn0KCkxGRU5DRV9ESVNQQVRDSCB1c2VkIHRvIGJl
IGEgc3ludGhldGljIGZlYXR1cmUsIGJ1dCB3YXMgZ2l2ZW4gYSByZWFsIENQ
VUlEIGJpdApieSBBTUQuICBUaGUgZGVmaW5lIHdhc24ndCBtb3ZlZCB3aGVu
IHRoaXMgd2FzIGNoYW5nZWQuCgpOU0NCIGhhcyBhbHdheXMgYmVlbiBhIHJl
YWwgQ1BVSUQgYml0LCBhbmQgd2FzIG1pc3BsYWNlZCB3aGVuIGludHJvZHVj
ZWQgaW4KdGhlIHN5bnRoZXRpYyBibG9jayBhbG9uZ3NpZGUgTEZFTkNFX0RJ
U1BBVENILgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3
LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNo
IDxqYmV1bGljaEBzdXNlLmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21t
aXQgNmEwMzliMDUwMDcxZWJhNjQ0YWI0MTRkNzZhYzVkNWZjOWUwNjdhNSkK
CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVh
dHVyZS5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUu
aAppbmRleCBkOWFlZGZjMjVhYjAuLjAyMDQxNGU5OGM0ZCAxMDA2NDQKLS0t
IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaAorKysg
Yi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oCkBAIC0x
NDgsNiArMTQ4LDEwIEBACiAjZGVmaW5lIGNwdV9oYXNfYXZ4X3ZubmkgICAg
ICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9BVlhfVk5OSSkKICNkZWZp
bmUgY3B1X2hhc19hdng1MTJfYmYxNiAgICAgYm9vdF9jcHVfaGFzKFg4Nl9G
RUFUVVJFX0FWWDUxMl9CRjE2KQogCisvKiBDUFVJRCBsZXZlbCAweDgwMDAw
MDIxLmVheCAqLworI2RlZmluZSBjcHVfaGFzX2xmZW5jZV9kaXNwYXRjaCBi
b290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfTEZFTkNFX0RJU1BBVENIKQorI2Rl
ZmluZSBjcHVfaGFzX25zY2IgICAgICAgICAgICBib290X2NwdV9oYXMoWDg2
X0ZFQVRVUkVfTlNDQikKKwogLyogTVNSX0FSQ0hfQ0FQUyAqLwogI2RlZmlu
ZSBjcHVfaGFzX3JkY2xfbm8gICAgICAgICBib290X2NwdV9oYXMoWDg2X0ZF
QVRVUkVfUkRDTF9OTykKICNkZWZpbmUgY3B1X2hhc19laWJycyAgICAgICAg
ICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0VJQlJTKQpAQCAtMTcwLDgg
KzE3NCw2IEBACiAjZGVmaW5lIGNwdV9oYXNfYXJjaF9wZXJmbW9uICAgIGJv
b3RfY3B1X2hhcyhYODZfRkVBVFVSRV9BUkNIX1BFUkZNT04pCiAjZGVmaW5l
IGNwdV9oYXNfY3B1aWRfZmF1bHRpbmcgIGJvb3RfY3B1X2hhcyhYODZfRkVB
VFVSRV9DUFVJRF9GQVVMVElORykKICNkZWZpbmUgY3B1X2hhc19hcGVyZm1w
ZXJmICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0FQRVJGTVBFUkYp
Ci0jZGVmaW5lIGNwdV9oYXNfbGZlbmNlX2Rpc3BhdGNoIGJvb3RfY3B1X2hh
cyhYODZfRkVBVFVSRV9MRkVOQ0VfRElTUEFUQ0gpCi0jZGVmaW5lIGNwdV9o
YXNfbnNjYiAgICAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9O
U0NCKQogI2RlZmluZSBjcHVfaGFzX3hlbl9sYnIgICAgICAgICBib290X2Nw
dV9oYXMoWDg2X0ZFQVRVUkVfWEVOX0xCUikKICNkZWZpbmUgY3B1X2hhc194
ZW5fc2hzdGsgICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1hFTl9T
SFNUSykKICNkZWZpbmUgY3B1X2hhc194ZW5faWJ0ICAgICAgICAgYm9vdF9j
cHVfaGFzKFg4Nl9GRUFUVVJFX1hFTl9JQlQpCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-03.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-03.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEFwciAyMDI1IDE0OjU5OjAxICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBNb3ZlIG1vbml0b3IoKS9td2FpdCgpIHdyYXBwZXJz
IGludG8gY3B1LWlkbGUuYwoKVGhleSdyZSBub3QgdXNlZCBieSBhbnkgb3Ro
ZXIgdHJhbnNsYXRpb24gdW5pdCwgc28gc2hvdWxkbid0IGxpdmUgaW4KYXNt
L3Byb2Nlc3Nvci5oLCB3aGljaCBpcyBpbmNsdWRlZCBhbG1vc3QgZXZlcnl3
aGVyZS4KCk91ciBuZXcgdG9vbGNoYWluIGJhc2VsaW5lIGtub3dzIHRoZSBN
T05JVE9SL01XQUlUIGluc3RydWN0aW9ucywgc28gdXNlIHRoZW0KZGlyZWN0
bHkgcmF0aGVyIHRoYW4gdXNpbmcgcmF3IGhleC4KCkNoYW5nZSB0aGUgaGlu
dC9leHRlbnRpb24gcGFyYW1ldGVycyBmcm9tIGxvbmcgdG8gaW50LiAgVGhl
eSdyZSBzcGVjaWZpZWQgdG8KcmVtYWluIDMyYml0IG9wZXJhbmRzIGV2ZW4g
NjQtYml0IG1vZGUuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogSmFuIEJl
dWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgooY2hlcnJ5IHBpY2tlZCBmcm9t
IGNvbW1pdCA2MWUxMGZjMjhjY2RkZmY3YzcyYzE0YWNlYzU2ZGM3ZWYyYjE1
NWQxKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxl
LmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCmluZGV4IDJkOGI2
NmM5MTAwYS4uNzczZWFlY2MyYmJmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94
ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2Nw
dV9pZGxlLmMKQEAgLTU5LDYgKzU5LDE5IEBACiAKIC8qI2RlZmluZSBERUJV
R19QTV9DWCovCiAKK3N0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgbW9uaXRv
cigKKyAgICBjb25zdCB2b2lkICphZGRyLCB1bnNpZ25lZCBpbnQgZWN4LCB1
bnNpZ25lZCBpbnQgZWR4KQoreworICAgIGFzbSB2b2xhdGlsZSAoICJtb25p
dG9yIgorICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoYWRkciksICJjIiAo
ZWN4KSwgImQiIChlZHgpICk7Cit9CisKK3N0YXRpYyBhbHdheXNfaW5saW5l
IHZvaWQgbXdhaXQodW5zaWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVj
eCkKK3sKKyAgICBhc20gdm9sYXRpbGUgKCAibXdhaXQiCisgICAgICAgICAg
ICAgICAgICAgOjogImEiIChlYXgpLCAiYyIgKGVjeCkgKTsKK30KKwogI2Rl
ZmluZSBHRVRfSFdfUkVTX0lOX05TKG1zciwgdmFsKSBcCiAgICAgZG8geyBy
ZG1zcmwobXNyLCB2YWwpOyB2YWwgPSB0c2NfdGlja3MybnModmFsKTsgfSB3
aGlsZSggMCApCiAjZGVmaW5lIEdFVF9NQzZfUkVTKHZhbCkgIEdFVF9IV19S
RVNfSU5fTlMoMHg2NjQsIHZhbCkKQEAgLTQ4Miw3ICs0OTUsNyBAQCB2b2lk
IG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNp
Z25lZCBpbnQgZWN4KQogICAgICAgICBtYigpOwogICAgIH0KIAotICAgIF9f
bW9uaXRvcihtb25pdG9yX2FkZHIsIDAsIDApOworICAgIG1vbml0b3IobW9u
aXRvcl9hZGRyLCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIAogICAgIC8qCkBA
IC00OTYsNyArNTA5LDcgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHMo
dW5zaWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAg
Y3B1bWFza19zZXRfY3B1KGNwdSwgJmNwdWlkbGVfbXdhaXRfZmxhZ3MpOwog
CiAgICAgICAgIHNwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8pOwotICAgICAg
ICBfX213YWl0KGVheCwgZWN4KTsKKyAgICAgICAgbXdhaXQoZWF4LCBlY3gp
OwogICAgICAgICBzcGVjX2N0cmxfZXhpdF9pZGxlKGluZm8pOwogCiAgICAg
ICAgIGNwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJmNwdWlkbGVfbXdhaXRfZmxh
Z3MpOwpAQCAtOTI3LDkgKzk0MCw5IEBAIHZvaWQgY2ZfY2hlY2sgYWNwaV9k
ZWFkX2lkbGUodm9pZCkKICAgICAgICAgICAgICAqLwogICAgICAgICAgICAg
bWIoKTsKICAgICAgICAgICAgIGNsZmx1c2gobXdhaXRfcHRyKTsKLSAgICAg
ICAgICAgIF9fbW9uaXRvcihtd2FpdF9wdHIsIDAsIDApOworICAgICAgICAg
ICAgbW9uaXRvcihtd2FpdF9wdHIsIDAsIDApOwogICAgICAgICAgICAgbWIo
KTsKLSAgICAgICAgICAgIF9fbXdhaXQoY3gtPmFkZHJlc3MsIDApOworICAg
ICAgICAgICAgbXdhaXQoY3gtPmFkZHJlc3MsIDApOwogICAgICAgICB9CiAg
ICAgfQogICAgIGVsc2UgaWYgKCAoY3VycmVudF9jcHVfZGF0YS54ODZfdmVu
ZG9yICYKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
cm9jZXNzb3IuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNz
b3IuaAppbmRleCA4ZmY5NjM4OGU4YjMuLjA3MzI4ZDQ0YmY0ZSAxMDA2NDQK
LS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCisr
KyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaApAQCAt
NDA1LDIzICs0MDUsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2xfdCByZWFkX3Br
cnVfd2QodWludDMyX3QgcGtydSwgdW5zaWduZWQgaW50IHBrZXkpCiAgICAg
cmV0dXJuIChwa3J1ID4+IChwa2V5ICogUEtSVV9BVFRSUyArIFBLUlVfV1JJ
VEUpKSAmIDE7CiB9CiAKLXN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgX19t
b25pdG9yKGNvbnN0IHZvaWQgKmVheCwgdW5zaWduZWQgbG9uZyBlY3gsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBs
b25nIGVkeCkKLXsKLSAgICAvKiAibW9uaXRvciAlZWF4LCVlY3gsJWVkeDsi
ICovCi0gICAgYXNtIHZvbGF0aWxlICgKLSAgICAgICAgIi5ieXRlIDB4MGYs
MHgwMSwweGM4OyIKLSAgICAgICAgOiA6ICJhIiAoZWF4KSwgImMiIChlY3gp
LCAiZCIoZWR4KSApOwotfQotCi1zdGF0aWMgYWx3YXlzX2lubGluZSB2b2lk
IF9fbXdhaXQodW5zaWduZWQgbG9uZyBlYXgsIHVuc2lnbmVkIGxvbmcgZWN4
KQotewotICAgIC8qICJtd2FpdCAlZWF4LCVlY3g7IiAqLwotICAgIGFzbSB2
b2xhdGlsZSAoCi0gICAgICAgICIuYnl0ZSAweDBmLDB4MDEsMHhjOTsiCi0g
ICAgICAgIDogOiAiYSIgKGVheCksICJjIiAoZWN4KSApOwotfQotCiAjZGVm
aW5lIElPQk1QX0JZVEVTICAgICAgICAgICAgIDgxOTIKICNkZWZpbmUgSU9C
TVBfSU5WQUxJRF9PRkZTRVQgICAgMHg4MDAwCiAK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-04.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-04.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEFwciAyMDI1IDE1OjU1OjI5ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZW1vdmUgTUZFTkNFcyBmb3IgQ0xGTFVTSF9NT05J
VE9SCgpDb21taXQgNDhkMzI0NThiY2Q0ICgieDg2LCBpZGxlOiBhZGQgYmFy
cmllcnMgdG8gQ0xGTFVTSCB3b3JrYXJvdW5kIikgd2FzCmluaGVyaXRlZCBm
cm9tIExpbnV4IGFuZCBhZGRlZCBNRkVOQ0VzIGFyb3VuZCB0aGUgQUFJNjUg
ZXJyYXRhIGZpeC4KClRoZSBTRE0gbm93IHN0YXRlczoKCiAgRXhlY3V0aW9u
cyBvZiB0aGUgQ0xGTFVTSCBpbnN0cnVjdGlvbiBhcmUgb3JkZXJlZCB3aXRo
IHJlc3BlY3QgdG8gZWFjaAogIG90aGVyIGFuZCB3aXRoIHJlc3BlY3QgdG8g
d3JpdGVzLCBsb2NrZWQgcmVhZC1tb2RpZnktd3JpdGUgaW5zdHJ1Y3Rpb25z
LAogIGFuZCBmZW5jZSBpbnN0cnVjdGlvbnNbMV0uCgp3aXRoIGZvb3Rub3Rl
IDEgcmVhZGluZzoKCiAgRWFybGllciB2ZXJzaW9ucyBvZiB0aGlzIG1hbnVh
bCBzcGVjaWZpZWQgdGhhdCBleGVjdXRpb25zIG9mIHRoZSBDTEZMVVNICiAg
aW5zdHJ1Y3Rpb24gd2VyZSBvcmRlcmVkIG9ubHkgYnkgdGhlIE1GRU5DRSBp
bnN0cnVjdGlvbi4gIEFsbCBwcm9jZXNzb3JzCiAgaW1wbGVtZW50aW5nIHRo
ZSBDTEZMVVNIIGluc3RydWN0aW9uIGFsc28gb3JkZXIgaXQgcmVsYXRpdmUg
dG8gdGhlIG90aGVyCiAgb3BlcmF0aW9ucyBlbnVtZXJhdGVkIGFib3ZlLgoK
SS5lLiB0aGUgTUZFTkNFcyBjYW1lIGFib3V0IGJlY2F1c2Ugb2YgYW4gaW5j
b3JyZWN0IHN0YXRlbWVudCBpbiB0aGUgU0RNLgoKVGhlIFNwZWMgVXBkYXRl
IChubyBsb25nZXIgYXZhaWxhYmxlIG9uIEludGVsJ3Mgd2Vic2l0ZSkgc2lt
cGx5IHNheXMgImlzc3VlIGEKQ0xGTFVTSCIsIHdpdGggbm8gbWVudGlvbiBv
ZiBNRkVOQ0VzLgoKQXMgdGhpcyBlcnJhdHVtIGlzIHNwZWNpZmljIHRvIElu
dGVsLCBpdCdzIGZpbmUgdG8gcmVtb3ZlIHRoZSB0aGUgTUZFTkNFczsgQU1E
CkNQVXMgb2YgYSBzaW1pbGFyIHZpbnRhZ2UgZG8gc3BvcnQgb3RoZXJ3aXNl
LXVub3JkZXJlZCBDTEZMVVNIcy4KCk1vdmUgdGhlIGZlYXR1cmUgYml0IGlu
dG8gdGhlIEJVRyByYW5nZSAocmF0aGVyIHRoYW4gRkVBVFVSRSksIGFuZCBt
b3ZlIHRoZQp3b3JrYXJvdW5kIGludG8gbW9uaXRvcigpIGl0c2VsZi4KClRo
ZSBlcnJhdHVtIGNoZWNrIGl0c2VsZiBtdXN0IHVzZSBzZXR1cF9mb3JjZV9j
cHVfY2FwKCkuICBJdCBuZWVkcyBhY3RpdmF0aW5nCmlmIGFueSBDUFUgbmVl
ZHMgaXQsIG5vdCBpZiBhbGwgb2YgdGhlbSBuZWVkIGl0LgoKRml4ZXM6IDQ4
ZDMyNDU4YmNkNCAoIng4NiwgaWRsZTogYWRkIGJhcnJpZXJzIHRvIENMRkxV
U0ggd29ya2Fyb3VuZCIpCkZpeGVzOiA5NmQxYjIzN2FlOWIgKCJ4ODYvSW50
ZWw6IHdvcmsgYXJvdW5kIFhlb24gNzQwMCBzZXJpZXMgZXJyYXR1bSBBQUk2
NSIpCkxpbms6IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDA5MDIx
OTA1NDg0MS9odHRwOi8vZG93bmxvYWQuaW50ZWwuY29tL2Rlc2lnbi94ZW9u
L3NwZWN1cGR0LzMyMDMzNjAxLnBkZgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcg
Q29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZpZXdlZC1i
eTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgooY2hlcnJ5IHBp
Y2tlZCBmcm9tIGNvbW1pdCBmNzdlZjM0NDM1NDJhMmMyYmJkNTllZTY2MTc4
Mjg3ZDRmYTViNDNmKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9hY3Bp
L2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCmlu
ZGV4IDc3M2VhZWNjMmJiZi4uMTEwZTQ2N2Q2Mzc1IDEwMDY0NAotLS0gYS94
ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4
Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTYyLDYgKzYyLDkgQEAKIHN0YXRpYyBh
bHdheXNfaW5saW5lIHZvaWQgbW9uaXRvcigKICAgICBjb25zdCB2b2lkICph
ZGRyLCB1bnNpZ25lZCBpbnQgZWN4LCB1bnNpZ25lZCBpbnQgZWR4KQogewor
ICAgIGFsdGVybmF0aXZlX2lucHV0KCIiLCAiY2xmbHVzaCAoJVthZGRyXSki
LCBYODZfQlVHX0NMRkxVU0hfTU9OSVRPUiwKKyAgICAgICAgICAgICAgICAg
ICAgICBbYWRkcl0gImEiIChhZGRyKSk7CisKICAgICBhc20gdm9sYXRpbGUg
KCAibW9uaXRvciIKICAgICAgICAgICAgICAgICAgICA6OiAiYSIgKGFkZHIp
LCAiYyIgKGVjeCksICJkIiAoZWR4KSApOwogfQpAQCAtNDg4LDEzICs0OTEs
NiBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQg
ZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogICAgIHNfdGltZV90IGV4cGlyZXMg
PSBwZXJfY3B1KHRpbWVyX2RlYWRsaW5lLCBjcHUpOwogICAgIGNvbnN0IHZv
aWQgKm1vbml0b3JfYWRkciA9ICZtd2FpdF93YWtldXAoY3B1KTsKIAotICAg
IGlmICggYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0NMRkxVU0hfTU9OSVRP
UikgKQotICAgIHsKLSAgICAgICAgbWIoKTsKLSAgICAgICAgY2xmbHVzaCht
b25pdG9yX2FkZHIpOwotICAgICAgICBtYigpOwotICAgIH0KLQogICAgIG1v
bml0b3IobW9uaXRvcl9hZGRyLCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIApA
QCAtOTI5LDE5ICs5MjUsNyBAQCB2b2lkIGNmX2NoZWNrIGFjcGlfZGVhZF9p
ZGxlKHZvaWQpCiAKICAgICAgICAgd2hpbGUgKCAxICkKICAgICAgICAgewot
ICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIDEuIFRoZSBDTEZMVVNI
IGlzIGEgd29ya2Fyb3VuZCBmb3IgZXJyYXR1bSBBQUk2NSBmb3IKLSAgICAg
ICAgICAgICAqIHRoZSBYZW9uIDc0MDAgc2VyaWVzLiAgCi0gICAgICAgICAg
ICAgKiAyLiBUaGUgV0JJTlZEIGlzIGluc3VmZmljaWVudCBkdWUgdG8gdGhl
IHNwdXJpb3VzLXdha2V1cAotICAgICAgICAgICAgICogY2FzZSB3aGVyZSB3
ZSByZXR1cm4gYXJvdW5kIHRoZSBsb29wLgotICAgICAgICAgICAgICogMy4g
VW5saWtlIHdiaW52ZCwgY2xmbHVzaCBpcyBhIGxpZ2h0IHdlaWdodCBidXQg
bm90IHNlcmlhbGl6aW5nIAotICAgICAgICAgICAgICogaW5zdHJ1Y3Rpb24s
IGhlbmNlIG1lbW9yeSBmZW5jZSBpcyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJl
IGFsbCAKLSAgICAgICAgICAgICAqIGxvYWQvc3RvcmUgdmlzaWJsZSBiZWZv
cmUgZmx1c2ggY2FjaGUgbGluZS4KLSAgICAgICAgICAgICAqLwotICAgICAg
ICAgICAgbWIoKTsKLSAgICAgICAgICAgIGNsZmx1c2gobXdhaXRfcHRyKTsK
ICAgICAgICAgICAgIG1vbml0b3IobXdhaXRfcHRyLCAwLCAwKTsKLSAgICAg
ICAgICAgIG1iKCk7CiAgICAgICAgICAgICBtd2FpdChjeC0+YWRkcmVzcywg
MCk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94
ODYvY3B1L2ludGVsLmMgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKaW5k
ZXggYzZjYTQyZDA3YWQ4Li4zYzk2YmFmZTM5NWYgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9jcHUvaW50ZWwuYworKysgYi94ZW4vYXJjaC94ODYvY3B1
L2ludGVsLmMKQEAgLTQxMyw2ICs0MTMsNyBAQCBzdGF0aWMgdm9pZCBfX2lu
aXQgcHJvYmVfbXdhaXRfZXJyYXRhKHZvaWQpCiAgKgogICogWGVvbiA3NDAw
IGVycmF0dW0gQUFJNjUgKGFuZCBmdXJ0aGVyIG5ld2VyIFhlb25zKQogICog
TU9OSVRPUi9NV0FJVCBtYXkgaGF2ZSBleGNlc3NpdmUgZmFsc2Ugd2FrZXVw
cworICogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMDkwMjE5MDU0
ODQxL2h0dHA6Ly9kb3dubG9hZC5pbnRlbC5jb20vZGVzaWduL3hlb24vc3Bl
Y3VwZHQvMzIwMzM2MDEucGRmCiAgKi8KIHN0YXRpYyB2b2lkIEludGVsX2Vy
cmF0YV93b3JrYXJvdW5kcyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiB7CkBA
IC00MzAsNyArNDMxLDcgQEAgc3RhdGljIHZvaWQgSW50ZWxfZXJyYXRhX3dv
cmthcm91bmRzKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIAogCWlmIChjLT54
ODYgPT0gNiAmJiBjcHVfaGFzX2NsZmx1c2ggJiYKIAkgICAgKGMtPng4Nl9t
b2RlbCA9PSAyOSB8fCBjLT54ODZfbW9kZWwgPT0gNDYgfHwgYy0+eDg2X21v
ZGVsID09IDQ3KSkKLQkJX19zZXRfYml0KFg4Nl9GRUFUVVJFX0NMRkxVU0hf
TU9OSVRPUiwgYy0+eDg2X2NhcGFiaWxpdHkpOworCQlzZXR1cF9mb3JjZV9j
cHVfY2FwKFg4Nl9CVUdfQ0xGTFVTSF9NT05JVE9SKTsKIAogCXByb2JlX2Mz
X2VycmF0YShjKTsKIAlpZiAoc3lzdGVtX3N0YXRlIDwgU1lTX1NUQVRFX3Nt
cF9ib290KQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L2NwdWZlYXR1cmVzLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1
ZmVhdHVyZXMuaAppbmRleCA5ZTNlZDIxYzAyNmQuLjg0YzkzMjkyYzgwYyAx
MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1
cmVzLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1
cmVzLmgKQEAgLTE5LDcgKzE5LDcgQEAgWEVOX0NQVUZFQVRVUkUoQVJDSF9Q
RVJGTU9OLCAgICAgIFg4Nl9TWU5USCggMykpIC8qIEludGVsIEFyY2hpdGVj
dHVyYWwgUGVyZk1vbgogWEVOX0NQVUZFQVRVUkUoVFNDX1JFTElBQkxFLCAg
ICAgIFg4Nl9TWU5USCggNCkpIC8qIFRTQyBpcyBrbm93biB0byBiZSByZWxp
YWJsZSAqLwogWEVOX0NQVUZFQVRVUkUoWFRPUE9MT0dZLCAgICAgICAgIFg4
Nl9TWU5USCggNSkpIC8qIGNwdSB0b3BvbG9neSBlbnVtIGV4dGVuc2lvbnMg
Ki8KIFhFTl9DUFVGRUFUVVJFKENQVUlEX0ZBVUxUSU5HLCAgICBYODZfU1lO
VEgoIDYpKSAvKiBjcHVpZCBmYXVsdGluZyAqLwotWEVOX0NQVUZFQVRVUkUo
Q0xGTFVTSF9NT05JVE9SLCAgIFg4Nl9TWU5USCggNykpIC8qIGNsZmx1c2gg
cmVxZCB3aXRoIG1vbml0b3IgKi8KKy8qIEJpdCA3IHVudXNlZCAqLwogWEVO
X0NQVUZFQVRVUkUoQVBFUkZNUEVSRiwgICAgICAgIFg4Nl9TWU5USCggOCkp
IC8qIEFQRVJGTVBFUkYgKi8KIFhFTl9DUFVGRUFUVVJFKE1GRU5DRV9SRFRT
QywgICAgICBYODZfU1lOVEgoIDkpKSAvKiBNRkVOQ0Ugc3luY2hyb25pemVz
IFJEVFNDICovCiBYRU5fQ1BVRkVBVFVSRShYRU5fU01FUCwgICAgICAgICAg
WDg2X1NZTlRIKDEwKSkgLyogU01FUCBnZXRzIHVzZWQgYnkgWGVuIGl0c2Vs
ZiAqLwpAQCAtNTIsNiArNTIsNyBAQCBYRU5fQ1BVRkVBVFVSRShVU0VfVk1D
QUxMLCAgICAgICAgWDg2X1NZTlRIKDMwKSkgLyogVXNlIFZNQ0FMTCBpbnN0
ZWFkIG9mIFZNTUNBTAogI2RlZmluZSBYODZfQlVHX05VTExfU0VHICAgICAg
ICAgIFg4Nl9CVUcoIDEpIC8qIE5VTEwtaW5nIGEgc2VsZWN0b3IgcHJlc2Vy
dmVzIHRoZSBiYXNlIGFuZCBsaW1pdC4gKi8KICNkZWZpbmUgWDg2X0JVR19D
TEZMVVNIX01GRU5DRSAgICBYODZfQlVHKCAyKSAvKiBNRkVOQ0UgbmVlZGVk
IHRvIHNlcmlhbGlzZSBDTEZMVVNIICovCiAjZGVmaW5lIFg4Nl9CVUdfSUJQ
Ql9OT19SRVQgICAgICAgWDg2X0JVRyggMykgLyogSUJQQiBkb2Vzbid0IGZs
dXNoIHRoZSBSU0IvUkFTICovCisjZGVmaW5lIFg4Nl9CVUdfQ0xGTFVTSF9N
T05JVE9SICAgWDg2X0JVRyggNCkgLyogTU9OSVRPUiByZXF1aXJlcyBDTEZM
VVNIICovCiAKICNkZWZpbmUgWDg2X1NQRUNfTk9fTEZFTkNFX0VOVFJZX1BW
IFg4Nl9CVUcoMTYpIC8qIChObykgc2FmZXR5IExGRU5DRSBmb3IgU1BFQ19D
VFJMX0VOVFJZX1BWLiAqLwogI2RlZmluZSBYODZfU1BFQ19OT19MRkVOQ0Vf
RU5UUllfSU5UUiBYODZfQlVHKDE3KSAvKiAoTm8pIHNhZmV0eSBMRkVOQ0Ug
Zm9yIFNQRUNfQ1RSTF9FTlRSWV9JTlRSLiAqLwo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-05.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-05.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAyNCBKdW4gMjAyNSAxNToyMDo1MiArMDEwMApTdWJq
ZWN0OiBSZXZlcnQgcGFydCBvZiAieDg2L213YWl0LWlkbGU6IGRpc2FibGUg
SUJSUyBkdXJpbmcgbG9uZyBpZGxlIgoKTW9zdCBvZiB0aGUgcGF0Y2ggKGhh
bmRsaW5nIG9mIENQVUlETEVfRkxBR19JQlJTKSBpcyBmaW5lLCBidXQgdGhl
CmFkanVzdGVtZW50cyB0byBtd2FpdF9pZGxlKCkgYXJlIG5vdDsgc3BlY19j
dHJsX2VudGVyX2lkbGUoKSBkb2VzIG1vcmUgdGhhbgpqdXN0IGFsdGVyIE1T
Ul9TUEVDX0NUUkwuSUJSUy4KClRoZSBvbmx5IHJlYXNvbiB0aGlzIGRvZXNu
J3QgbmVlZCBhbiBYU0EgaXMgYmVjYXVzZSB0aGUgdW5jb25kaXRpb25hbApz
cGVjX2N0cmxfe2VudGVyLGV4aXR9X2lkbGUoKSBpbiBtd2FpdF9pZGxlX3dp
dGhfaGludHMoKSB3ZXJlIGxlZnQgdW5hbHRlcmVkLAphbmQgdGh1cyB0aGUg
TVdBSVQgcmVtYWluZWQgcHJvcGVybHkgcHJvdGVjdGVkLgoKVGhlcmUgKHdv
dWxkIGhhdmUgYmVlbikgdHdvIHByb2JsZW1zLiAgSW4gdGhlIGlicnNfZGlz
YWJsZSAoPT0gZGVlcCBDKSBjYXNlOgoKICogT24gZW50cnksIFZFUlcgYW5k
IFJTQi1zdHVmZmluZyBhcmUgYXJjaGl0ZWN0dXJhbGx5IHNraXBwZWQuCiAq
IE9uIGV4aXQsIHRoZXJlJ3MgYSBicmFuY2ggY3Jvc3NpbmcgdGhlIFdSTVNS
IHdoaWNoIHJlaW5zdGF0ZXMgdGhlCiAgIHNwZWN1bGF0aXZlIHNhZmV0eSBm
b3IgaW5kaXJlY3QgYnJhbmNoZXMuCgpBbGwgdGhpcyBjaGFuZ2UgZGlkIHdh
cyBkb3VibGUgdXAgdGhlIGV4cGVuc2l2ZSBvcGVyYXRpb25zIGluIHRoZSBk
ZWVwIEMgY2FzZSwKYW5kIGZhaWwgdG8gb3B0aW1pc2UgdGhlIGludGVuZGVk
IGNhc2UuCgpJIGhhdmUgYW4gaWRlYSBvZiBob3cgdG8gcGx1bWIgdGhpcyBt
b3JlIG5pY2VseSwgYnV0IGl0IHJlcXVpcmVzIGxhcmdlcgpjaGFuZ2VzIHRv
IGxlZ2FjeSBJQlJTIGhhbmRsaW5nIHRvIG5vdCBtYWtlIHNwZWNfY3RybF9l
bnRlcl9pZGxlKCkgdnVsbmVyYWJsZQppbiBvdGhlciB3YXlzLiAgSW4gdGhl
IHNob3J0IHRlcm0sIHNpbXBseSB0YWtlIG91dCB0aGUgcGVyZiBoaXQuCgpG
aXhlczogMDhhY2RmOWEyNjE1ICgieDg2L213YWl0LWlkbGU6IGRpc2FibGUg
SUJSUyBkdXJpbmcgbG9uZyBpZGxlIikKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQt
Ynk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KKGNoZXJyeSBw
aWNrZWQgZnJvbSBjb21taXQgMDdkNzE2MzMzNGE3NTA3ZDMyOTk1OGIxOWQ5
NzZiZTc2OTU4MDk5OSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1
L213YWl0LWlkbGUuYyBiL3hlbi9hcmNoL3g4Ni9jcHUvbXdhaXQtaWRsZS5j
CmluZGV4IGZmZGM2ZmIyZmMwZS4uMTJjMzYyNTdiN2JlIDEwMDY0NAotLS0g
YS94ZW4vYXJjaC94ODYvY3B1L213YWl0LWlkbGUuYworKysgYi94ZW4vYXJj
aC94ODYvY3B1L213YWl0LWlkbGUuYwpAQCAtOTAyLDcgKzkwMiw2IEBAIHN0
YXRpYyBjb25zdCBzdHJ1Y3QgY3B1aWRsZV9zdGF0ZSBzbnJfY3N0YXRlc1td
ID0gewogc3RhdGljIHZvaWQgY2ZfY2hlY2sgbXdhaXRfaWRsZSh2b2lkKQog
ewogCXVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0J
c3RydWN0IGNwdV9pbmZvICppbmZvID0gZ2V0X2NwdV9pbmZvKCk7CiAJc3Ry
dWN0IGFjcGlfcHJvY2Vzc29yX3Bvd2VyICpwb3dlciA9IHByb2Nlc3Nvcl9w
b3dlcnNbY3B1XTsKIAlzdHJ1Y3QgYWNwaV9wcm9jZXNzb3JfY3ggKmN4ID0g
TlVMTDsKIAl1bnNpZ25lZCBpbnQgbmV4dF9zdGF0ZTsKQEAgLTkyOSw2ICs5
MjgsOCBAQCBzdGF0aWMgdm9pZCBjZl9jaGVjayBtd2FpdF9pZGxlKHZvaWQp
CiAJCQlwbV9pZGxlX3NhdmUoKTsKIAkJZWxzZQogCQl7CisJCQlzdHJ1Y3Qg
Y3B1X2luZm8gKmluZm8gPSBnZXRfY3B1X2luZm8oKTsKKwogCQkJc3BlY19j
dHJsX2VudGVyX2lkbGUoaW5mbyk7CiAJCQlzYWZlX2hhbHQoKTsKIAkJCXNw
ZWNfY3RybF9leGl0X2lkbGUoaW5mbyk7CkBAIC05NTUsMTEgKzk1Niw2IEBA
IHN0YXRpYyB2b2lkIGNmX2NoZWNrIG13YWl0X2lkbGUodm9pZCkKIAlpZiAo
KGN4LT50eXBlID49IDMpICYmIGVycmF0YV9jNl93b3JrYXJvdW5kKCkpCiAJ
CWN4ID0gcG93ZXItPnNhZmVfc3RhdGU7CiAKLQlpZiAoY3gtPmlicnNfZGlz
YWJsZSkgewotCQlBU1NFUlQoIWN4LT5pcnFfZW5hYmxlX2Vhcmx5KTsKLQkJ
c3BlY19jdHJsX2VudGVyX2lkbGUoaW5mbyk7Ci0JfQotCiAjaWYgMCAvKiBY
WFggQ2FuIHdlL2RvIHdlIG5lZWQgdG8gZG8gc29tZXRoaW5nIHNpbWlsYXIg
b24gWGVuPyAqLwogCS8qCiAJICogbGVhdmVfbW0oKSB0byBhdm9pZCBjb3N0
bHkgYW5kIG9mdGVuIHVubmVjZXNzYXJ5IHdha2V1cHMKQEAgLTk5MSwxMCAr
OTg3LDYgQEAgc3RhdGljIHZvaWQgY2ZfY2hlY2sgbXdhaXRfaWRsZSh2b2lk
KQogCiAJLyogTm93IGJhY2sgaW4gQzAuICovCiAJdXBkYXRlX2lkbGVfc3Rh
dHMocG93ZXIsIGN4LCBiZWZvcmUsIGFmdGVyKTsKLQotCWlmIChjeC0+aWJy
c19kaXNhYmxlKQotCQlzcGVjX2N0cmxfZXhpdF9pZGxlKGluZm8pOwotCiAJ
bG9jYWxfaXJxX2VuYWJsZSgpOwogCiAJVFJBQ0VfNkQoVFJDX1BNX0lETEVf
RVhJVCwgY3gtPnR5cGUsIGFmdGVyLAo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-06.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-06.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxNDo0NjowMSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogU2ltcGxpZnkgbG9naWMgaW4KIGd1ZXN0
X2NvbW1vbl9kZWZhdWx0X2ZlYXR1cmVfYWRqdXN0bWVudHMoKQoKRm9yIGZl
YXR1cmVzIHdoaWNoIGFyZSB1bmNvbmRpdGlvbmFsbHkgc2V0IGluIHRoZSBt
YXggcG9saWNpZXMsIG1ha2luZyB0aGUKZGVmYXVsdCBwb2xpY3kgdG8gbWF0
Y2ggdGhlIGhvc3QgY2FuIGJlIGRvbmUgd2l0aCBhIGNvbmRpdGlvbmFsIGNs
ZWFyLgoKVGhpcyBpcyBzaW1wbGVyIHRoYW4gdGhlIHVuY29uZGl0aW9uYWwg
Y2xlYXIsIGNvbmRpdGlvbmFsIHNldCBjdXJyZW50bHkKcGVyZm9ybWVkLgoK
U2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNA
Y2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGlj
aEBzdXNlLmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMzBmOGZl
ZDY4ZjNjMmU2MzU5NGZmOTIwMmIzZDA1Yjk3MTc4MWUzNikKCmRpZmYgLS1n
aXQgYS94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5jIGIveGVuL2FyY2gveDg2
L2NwdS1wb2xpY3kuYwppbmRleCBjODEzZGYzNWNiYjAuLjQyYmQwMzllN2My
ZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYworKysg
Yi94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5jCkBAIC01MTEsMTcgKzUxMSwx
NCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRf
ZmVhdHVyZV9hZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICAgICAq
IHJlYXNvbnMsIHNvIHJlc2V0IHRoZSBkZWZhdWx0IHBvbGljeSBiYWNrIHRv
IHRoZSBob3N0IHZhbHVlcyBpbgogICAgICAgICAgKiBjYXNlIHdlJ3JlIHVu
YWZmZWN0ZWQuCiAgICAgICAgICAqLwotICAgICAgICBfX2NsZWFyX2JpdChY
ODZfRkVBVFVSRV9NRF9DTEVBUiwgZnMpOwotICAgICAgICBpZiAoIGNwdV9o
YXNfbWRfY2xlYXIgKQotICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFU
VVJFX01EX0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfbWRf
Y2xlYXIgKQorICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVf
TURfQ0xFQVIsIGZzKTsKIAotICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVB
VFVSRV9GQl9DTEVBUiwgZnMpOwotICAgICAgICBpZiAoIGNwdV9oYXNfZmJf
Y2xlYXIgKQotICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX0ZC
X0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfZmJfY2xlYXIg
KQorICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfRkJfQ0xF
QVIsIGZzKTsKIAotICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9S
RkRTX0NMRUFSLCBmcyk7Ci0gICAgICAgIGlmICggY3B1X2hhc19yZmRzX2Ns
ZWFyICkKLSAgICAgICAgICAgIF9fc2V0X2JpdChYODZfRkVBVFVSRV9SRkRT
X0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfcmZkc19jbGVh
ciApCisgICAgICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9SRkRT
X0NMRUFSLCBmcyk7CiAKICAgICAgICAgLyoKICAgICAgICAgICogVGhlIEdh
dGhlciBEYXRhIFNhbXBsaW5nIG1pY3JvY29kZSBtaXRpZ2F0aW9uIChBdWd1
c3QgMjAyMykgaGFzIGFuCkBAIC01NDEsMTMgKzUzOCwxMSBAQCBzdGF0aWMg
dm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9hZGp1
c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICogVG9wb2xvZ3kgaW5mb3Jt
YXRpb24gaXMgYXQgdGhlIHRvb2xzdGFjaydzIGRpc2NyZXRpb24gc28gdGhl
c2UgYXJlCiAgICAgICogdW5jb25kaXRpb25hbGx5IHNldCBpbiBtYXgsIGJ1
dCBwaWNrIGEgZGVmYXVsdCB3aGljaCBtYXRjaGVzIHRoZSBob3N0LgogICAg
ICAqLwotICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJFX0hUVCwgZnMpOwot
ICAgIGlmICggY3B1X2hhc19odHQgKQotICAgICAgICBfX3NldF9iaXQoWDg2
X0ZFQVRVUkVfSFRULCBmcyk7CisgICAgaWYgKCAhY3B1X2hhc19odHQgKQor
ICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9IVFQsIGZzKTsKIAot
ICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJFX0NNUF9MRUdBQ1ksIGZzKTsK
LSAgICBpZiAoIGNwdV9oYXNfY21wX2xlZ2FjeSApCi0gICAgICAgIF9fc2V0
X2JpdChYODZfRkVBVFVSRV9DTVBfTEVHQUNZLCBmcyk7CisgICAgaWYgKCAh
Y3B1X2hhc19jbXBfbGVnYWN5ICkKKyAgICAgICAgX19jbGVhcl9iaXQoWDg2
X0ZFQVRVUkVfQ01QX0xFR0FDWSwgZnMpOwogCiAgICAgLyoKICAgICAgKiBP
biBjZXJ0YWluIGhhcmR3YXJlLCBzcGVjdWxhdGl2ZSBvciBlcnJhdGEgd29y
a2Fyb3VuZHMgY2FuIHJlc3VsdCBpbgo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-07.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-07.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDExOjMzOjQxICswMTAwClN1Ympl
Y3Q6IHg4Ni9jcHUtcG9saWN5OiBGaXggaGFuZGxpbmcgb2YgbGVhZiAweDgw
MDAwMDIxCgpXaGVuIHN1cHBvcnQgd2FzIG9yaWdpbmFsbHkgaW50cm9kdWNl
ZCwgZWJ4LCBlY3ggYW5kIGVkeCB3ZXJlIHJlc2VydmVkIGFuZApzaG91bGQg
aGF2ZSBiZWVuIHplcm9lZCBpbiByZWNhbGN1bGF0ZV9taXNjKCkgdG8gYXZv
aWQgbGVha2luZyBpbnRvIGd1ZXN0cy4KClNpbmNlIHRoZW4sIGZpZWxkcyBo
YXZlIGJlZW4gYWRkZWQgaW50byBlYnguICBHdWVzdHMgY2FuJ3QgbG9hZCBt
aWNyb2NvZGUsIHNvCnNob3VsZG4ndCBzZWUgdWNvZGVfc2l6ZSwgYW5kIHdo
aWxlIGluIHByaW5jaXBsZSB3ZSBkbyB3YW50IHRvIHN1cHBvcnQgbGFyZ2Vy
ClJBUCBzaXplcyBpbiBndWVzdHMsIHZpcnR1YWxpc2luZyB0aGlzIGZvciBn
dWVzdHMgZGVwZW5kcyBvbiBBTUQgcHJvY3VkaW5nIGFueQpvZmZpY2lhbCBk
b2N1bWVudGF0aW9uIGZvciBFUkFQUywgd2hpY2ggaXMgbG9uZyBvdmVyZHVl
IGFuZCB3aXRoIG5vIEVUQS4KClRoaXMgcGF0Y2ggd2lsbCBjYXVzZSBhIGRp
ZmZlcmVuY2UgaW4gZ3Vlc3RzIG9uIFplbjUgQ1BVcywgYnV0IGFzIHRoZSBt
YWluCkVSQVBTIGZlYXR1cmUgaXMgaGlkZGVuLCBndWVzdHMgc2hvdWxkIGJl
IGlnbm9yaW5nIHRoZSByYXBfc2l6ZSBmaWVsZCB0b28uCgpGaXhlczogZTli
NGZlMjYzNjQ5ICgieDg2L2NwdWlkOiBzdXBwb3J0IExGRU5DRSBhbHdheXMg
c2VyaWFsaXNpbmcgQ1BVSUQgYml0IikKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQt
Ynk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KKGNoZXJyeSBw
aWNrZWQgZnJvbSBjb21taXQgMTBkYzM1YzUxNmY3YjkyMjQ1OTBhN2E0ZTI3
MjJiYmZkNzBmYTg3YSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1
LXBvbGljeS5jIGIveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYwppbmRleCA0
MmJkMDM5ZTdjMmUuLjhmMDA2ZmUwOGFjYiAxMDA2NDQKLS0tIGEveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYworKysgYi94ZW4vYXJjaC94ODYvY3B1LXBv
bGljeS5jCkBAIC0zNDAsNiArMzQwLDkgQEAgc3RhdGljIHZvaWQgcmVjYWxj
dWxhdGVfbWlzYyhzdHJ1Y3QgY3B1X3BvbGljeSAqcCkKICAgICAgICAgcC0+
ZXh0ZC5yYXdbMHgxZV0gPSBFTVBUWV9MRUFGOyAvKiBUb3BvRXh0IEFQSUMg
SUQvQ29yZS9Ob2RlICovCiAgICAgICAgIHAtPmV4dGQucmF3WzB4MWZdID0g
RU1QVFlfTEVBRjsgLyogU0VWICovCiAgICAgICAgIHAtPmV4dGQucmF3WzB4
MjBdID0gRU1QVFlfTEVBRjsgLyogUGxhdGZvcm0gUW9TICovCisgICAgICAg
IHAtPmV4dGQucmF3WzB4MjFdLmIgPSAwOworICAgICAgICBwLT5leHRkLnJh
d1sweDIxXS5jID0gMDsKKyAgICAgICAgcC0+ZXh0ZC5yYXdbMHgyMV0uZCA9
IDA7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL3hl
bi9pbmNsdWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaCBiL3hlbi9pbmNs
dWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaAppbmRleCA2ZDVlOWVkZDI2
OWIuLmJhMjliZmU5YjQxNCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVu
L2xpYi94ODYvY3B1LXBvbGljeS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9s
aWIveDg2L2NwdS1wb2xpY3kuaApAQCAtMzI0LDcgKzMyNCwxMCBAQCBzdHJ1
Y3QgY3B1X3BvbGljeQogICAgICAgICAgICAgICAgIHVpbnQzMl90IGUyMWE7
CiAgICAgICAgICAgICAgICAgc3RydWN0IHsgREVDTF9CSVRGSUVMRChlMjFh
KTsgfTsKICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICB1aW50MzJfdCAv
KiBiICovOjMyLCAvKiBjICovOjMyLCAvKiBkICovOjMyOworICAgICAgICAg
ICAgdWludDE2X3QgdWNvZGVfc2l6ZTsgLyogVW5pdHMgb2YgMTYgYnl0ZXMg
Ki8KKyAgICAgICAgICAgIHVpbnQ4X3QgIHJhcF9zaXplOyAgIC8qIFVuaXRz
IG9mIDggZW50cmllcyAqLworICAgICAgICAgICAgdWludDhfdCAgOjg7Cisg
ICAgICAgICAgICB1aW50MzJfdCAvKiBjICovOjMyLCAvKiBkICovOjMyOwog
ICAgICAgICB9OwogICAgIH0gZXh0ZDsKIAo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-08.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-08.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDE1OjUxOjUzICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZW1vdmUgYnJva2VuIE1XQUlUIGltcGxlbWVudGF0
aW9uCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp
bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4
Yml0CgpjcHVpZGxlX3dha2V1cF9td2FpdCgpIGlzIGEgVE9DVE9VIHJhY2Uu
ICBUaGUgY3B1bWFza19hbmQoKSBzYW1wbGluZwpjcHVpZGxlX213YWl0X2Zs
YWdzIGNhbiB0YWtlIGEgYXJiaXRyYXJ5IHBlcmlvZCBvZiB0aW1lLCBhbmQg
dGhlcmUncyBubwpndWFyYW50ZWUgdGhhdCB0aGUgdGFyZ2V0IENQVXMgYXJl
IHN0aWxsIGluIE1XQUlUIHdoZW4gd3JpdGluZyBpbnRvCm13YWl0X3dha2V1
cChjcHUpLgoKVGhlIGNvbnNlcXVlbmNlIG9mIHRoZSByYWNlIGlzIHRoYXQg
d2UnbGwgZmFpbCB0byBJUEkgY2VydGFpbiB0YXJnZXRzLiAgQWxzbywKdGhl
cmUncyBubyBndWFyYW50ZWUgdGhhdCBtd2FpdF9pZGxlX3dpdGhfaGludHMo
KSB3aWxsIHJhaXNlIGEgVElNRVJfU09GVElSUQpvbiBpdCdzIHdheSBvdXQu
CgpUaGUgZnVuZGFtZW50YWwgYnVnIGlzIHRoYXQgdGhlICJpbl9td2FpdCIg
dmFyaWFibGUgbmVlZHMgdG8gYmUgaW4gdGhlCm1vbml0b3JlZCBsaW5lLCBh
bmQgbm90IGluIGEgc2VwYXJhdGUgY3B1aWRsZV9td2FpdF9mbGFncyB2YXJp
YWJsZSwgaW4gb3JkZXIKdG8gZG8gdGhpcyBpbiBhIHJhY2UtZnJlZSB3YXku
CgpBcnJhbmdpbmcgdG8gZml4IHRoaXMgd2hpbGUga2VlcGluZyB0aGUgb2xk
IGltcGxlbWVudGF0aW9uIGlzIHByb2hpYml0aXZlLCBzbwpzdHJpcCB0aGUg
Y3VycmVudCBvbmUgb3V0IGluIG9yZGVyIHRvIGltcGxlbWVudCB0aGUgbmV3
IG9uZSBjbGVhbmx5LiAgSW4gdGhlCmludGVyaW0sIHRoaXMgY2F1c2VzIElQ
SXMgdG8gYmUgdXNlZCB1bmNvbmRpdGlvbmFsbHkgd2hpY2ggaXMgc2FmZSBh
bGJlaXQKc3Vib3B0aW1hbC4KCkZpeGVzOiAzZDUyMWU5MzNlMWIgKCJjcHVp
ZGxlOiBtd2FpdCBvbiBzb2Z0aXJxX3BlbmRpbmcgJiByZW1vdmUgd2FrZXVw
IGlwaXMiKQpGaXhlczogMWFkYjM0ZWE4NDZkICgiQ1BVSURMRTogcmUtaW1w
bGVtZW50IG13YWl0IHdha2V1cCBwcm9jZXNzIikKU2lnbmVkLW9mZi1ieTog
QW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2
aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXgu
Y29tPgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzZmFmMDg2NmEzMzA3
MGI5MjZhYjc4ZTYyOTgyOTA0MDNmODVlNzZjKQoKZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNw
aS9jcHVfaWRsZS5jCmluZGV4IDExMGU0NjdkNjM3NS4uN2UzYjNkNzU0M2Jm
IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisr
KyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTQ0OCwyNyAr
NDQ4LDYgQEAgc3RhdGljIGludCBfX2luaXQgY2ZfY2hlY2sgY3B1X2lkbGVf
a2V5X2luaXQodm9pZCkKIH0KIF9faW5pdGNhbGwoY3B1X2lkbGVfa2V5X2lu
aXQpOwogCi0vKgotICogVGhlIGJpdCBpcyBzZXQgaWZmIGNwdSB1c2UgbW9u
aXRvci9td2FpdCB0byBlbnRlciBDIHN0YXRlCi0gKiB3aXRoIHRoaXMgZmxh
ZyBzZXQsIENQVSBjYW4gYmUgd2FrZW4gdXAgZnJvbSBDIHN0YXRlCi0gKiBi
eSB3cml0aW5nIHRvIHNwZWNpZmljIG1lbW9yeSBhZGRyZXNzLCBpbnN0ZWFk
IG9mIHNlbmRpbmcgYW4gSVBJLgotICovCi1zdGF0aWMgY3B1bWFza190IGNw
dWlkbGVfbXdhaXRfZmxhZ3M7Ci0KLXZvaWQgY3B1aWRsZV93YWtldXBfbXdh
aXQoY3B1bWFza190ICptYXNrKQotewotICAgIGNwdW1hc2tfdCB0YXJnZXQ7
Ci0gICAgdW5zaWduZWQgaW50IGNwdTsKLQotICAgIGNwdW1hc2tfYW5kKCZ0
YXJnZXQsIG1hc2ssICZjcHVpZGxlX213YWl0X2ZsYWdzKTsKLQotICAgIC8q
IENQVSBpcyBNV0FJVGluZyBvbiB0aGUgY3B1aWRsZV9td2FpdF93YWtldXAg
ZmxhZy4gKi8KLSAgICBmb3JfZWFjaF9jcHUoY3B1LCAmdGFyZ2V0KQotICAg
ICAgICBtd2FpdF93YWtldXAoY3B1KSA9IDA7Ci0KLSAgICBjcHVtYXNrX2Fu
ZG5vdChtYXNrLCBtYXNrLCAmdGFyZ2V0KTsKLX0KLQogLyogRm9yY2Ugc2Vu
ZGluZyBvZiBhIHdha2V1cCBJUEkgcmVnYXJkbGVzcyBvZiBtd2FpdCB1c2Fn
ZS4gKi8KIGJvb2wgX19yb19hZnRlcl9pbml0IGZvcmNlX213YWl0X2lwaV93
YWtldXA7CiAKQEAgLTQ3Nyw0MiArNDU2LDI1IEBAIGJvb2wgYXJjaF9za2lw
X3NlbmRfZXZlbnRfY2hlY2sodW5zaWduZWQgaW50IGNwdSkKICAgICBpZiAo
IGZvcmNlX213YWl0X2lwaV93YWtldXAgKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICAvKgotICAgICAqIFRoaXMgcmVsaWVzIG9uIHNvZnRpcnFf
cGVuZGluZygpIGFuZCBtd2FpdF93YWtldXAoKSB0byBhY2Nlc3MgZGF0YQot
ICAgICAqIG9uIHRoZSBzYW1lIGNhY2hlIGxpbmUuCi0gICAgICovCi0gICAg
c21wX21iKCk7Ci0gICAgcmV0dXJuICEhY3B1bWFza190ZXN0X2NwdShjcHUs
ICZjcHVpZGxlX213YWl0X2ZsYWdzKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9
CiAKIHZvaWQgbXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBl
YXgsIHVuc2lnbmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNw
dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKLSAgICBzX3RpbWVfdCBleHBpcmVz
ID0gcGVyX2NwdSh0aW1lcl9kZWFkbGluZSwgY3B1KTsKLSAgICBjb25zdCB2
b2lkICptb25pdG9yX2FkZHIgPSAmbXdhaXRfd2FrZXVwKGNwdSk7CisgICAg
Y29uc3QgdW5zaWduZWQgaW50ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZz
b2Z0aXJxX3BlbmRpbmcoY3B1KTsKIAotICAgIG1vbml0b3IobW9uaXRvcl9h
ZGRyLCAwLCAwKTsKKyAgICBtb25pdG9yKHRoaXNfc29mdGlycV9wZW5kaW5n
LCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIAotICAgIC8qCi0gICAgICogVGlt
ZXIgZGVhZGxpbmUgcGFzc2luZyBpcyB0aGUgZXZlbnQgb24gd2hpY2ggd2Ug
d2lsbCBiZSB3b2tlbiB2aWEKLSAgICAgKiBjcHVpZGxlX213YWl0X3dha2V1
cC4gU28gY2hlY2sgaXQgbm93IHRoYXQgdGhlIGxvY2F0aW9uIGlzIGFybWVk
LgotICAgICAqLwotICAgIGlmICggKGV4cGlyZXMgPiBOT1coKSB8fCBleHBp
cmVzID09IDApICYmICFzb2Z0aXJxX3BlbmRpbmcoY3B1KSApCisgICAgaWYg
KCAhKnRoaXNfc29mdGlycV9wZW5kaW5nICkKICAgICB7CiAgICAgICAgIHN0
cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdldF9jcHVfaW5mbygpOwogCi0gICAg
ICAgIGNwdW1hc2tfc2V0X2NwdShjcHUsICZjcHVpZGxlX213YWl0X2ZsYWdz
KTsKLQogICAgICAgICBzcGVjX2N0cmxfZW50ZXJfaWRsZShpbmZvKTsKICAg
ICAgICAgbXdhaXQoZWF4LCBlY3gpOwogICAgICAgICBzcGVjX2N0cmxfZXhp
dF9pZGxlKGluZm8pOwotCi0gICAgICAgIGNwdW1hc2tfY2xlYXJfY3B1KGNw
dSwgJmNwdWlkbGVfbXdhaXRfZmxhZ3MpOwogICAgIH0KLQotICAgIGlmICgg
ZXhwaXJlcyA8PSBOT1coKSAmJiBleHBpcmVzID4gMCApCi0gICAgICAgIHJh
aXNlX3NvZnRpcnEoVElNRVJfU09GVElSUSk7CiB9CiAKIHN0YXRpYyB2b2lk
IGFjcGlfcHJvY2Vzc29yX2ZmaF9jc3RhdGVfZW50ZXIoc3RydWN0IGFjcGlf
cHJvY2Vzc29yX2N4ICpjeCkKQEAgLTkxMyw3ICs4NzUsNyBAQCB2b2lkIGNm
X2NoZWNrIGFjcGlfZGVhZF9pZGxlKHZvaWQpCiAKICAgICBpZiAoIGN4LT5l
bnRyeV9tZXRob2QgPT0gQUNQSV9DU1RBVEVfRU1fRkZIICkKICAgICB7Ci0g
ICAgICAgIHZvaWQgKm13YWl0X3B0ciA9ICZtd2FpdF93YWtldXAoc21wX3By
b2Nlc3Nvcl9pZCgpKTsKKyAgICAgICAgdm9pZCAqbXdhaXRfcHRyID0gJnNv
ZnRpcnFfcGVuZGluZyhzbXBfcHJvY2Vzc29yX2lkKCkpOwogCiAgICAgICAg
IC8qCiAgICAgICAgICAqIENhY2hlIG11c3QgYmUgZmx1c2hlZCBhcyB0aGUg
bGFzdCBvcGVyYXRpb24gYmVmb3JlIHNsZWVwaW5nLgpkaWZmIC0tZ2l0IGEv
eGVuL2FyY2gveDg2L2hwZXQuYyBiL3hlbi9hcmNoL3g4Ni9ocGV0LmMKaW5k
ZXggNTBkNzg4Y2I2ZTcyLi4zMGZmM2RlMDI5YTQgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9ocGV0LmMKKysrIGIveGVuL2FyY2gveDg2L2hwZXQuYwpA
QCAtMTg3LDggKzE4Nyw2IEBAIHN0YXRpYyB2b2lkIGV2dF9kb19icm9hZGNh
c3QoY3B1bWFza190ICptYXNrKQogICAgIGlmICggX19jcHVtYXNrX3Rlc3Rf
YW5kX2NsZWFyX2NwdShjcHUsIG1hc2spICkKICAgICAgICAgcmFpc2Vfc29m
dGlycShUSU1FUl9TT0ZUSVJRKTsKIAotICAgIGNwdWlkbGVfd2FrZXVwX213
YWl0KG1hc2spOwotCiAgICAgaWYgKCAhY3B1bWFza19lbXB0eShtYXNrKSAp
CiAgICAgICAgY3B1bWFza19yYWlzZV9zb2Z0aXJxKG1hc2ssIFRJTUVSX1NP
RlRJUlEpOwogfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2hhcmRpcnEuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJk
aXJxLmgKaW5kZXggMjc2ZTM0MTlkNzc4Li5mM2U5M2NjOWI1MDcgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJkaXJxLmgKKysr
IGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2hhcmRpcnEuaApAQCAtNSwx
MSArNSwxMCBAQAogI2luY2x1ZGUgPHhlbi90eXBlcy5oPgogCiB0eXBlZGVm
IHN0cnVjdCB7Ci0JdW5zaWduZWQgaW50IF9fc29mdGlycV9wZW5kaW5nOwot
CXVuc2lnbmVkIGludCBfX2xvY2FsX2lycV9jb3VudDsKLQl1bnNpZ25lZCBp
bnQgbm1pX2NvdW50OwotCXVuc2lnbmVkIGludCBtY2VfY291bnQ7Ci0JYm9v
bF90IF9fbXdhaXRfd2FrZXVwOworICAgIHVuc2lnbmVkIGludCBfX3NvZnRp
cnFfcGVuZGluZzsKKyAgICB1bnNpZ25lZCBpbnQgX19sb2NhbF9pcnFfY291
bnQ7CisgICAgdW5zaWduZWQgaW50IG5taV9jb3VudDsKKyAgICB1bnNpZ25l
ZCBpbnQgbWNlX2NvdW50OwogfSBfX2NhY2hlbGluZV9hbGlnbmVkIGlycV9j
cHVzdGF0X3Q7CiAKICNpbmNsdWRlIDx4ZW4vaXJxX2NwdXN0YXQuaD4JLyog
U3RhbmRhcmQgbWFwcGluZ3MgZm9yIGlycV9jcHVzdGF0X3QgYWJvdmUgKi8K
ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9jcHVpZGxlLmggYi94ZW4v
aW5jbHVkZS94ZW4vY3B1aWRsZS5oCmluZGV4IDUyMWE4ZGViMDRjMi4uZGRk
MzdmZTI3YTJlIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vY3B1aWRs
ZS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9jcHVpZGxlLmgKQEAgLTkyLDgg
KzkyLDYgQEAgZXh0ZXJuIHN0cnVjdCBjcHVpZGxlX2dvdmVybm9yICpjcHVp
ZGxlX2N1cnJlbnRfZ292ZXJub3I7CiBib29sIGNwdWlkbGVfdXNpbmdfZGVl
cF9jc3RhdGUodm9pZCk7CiB2b2lkIGNwdWlkbGVfZGlzYWJsZV9kZWVwX2Nz
dGF0ZSh2b2lkKTsKIAotZXh0ZXJuIHZvaWQgY3B1aWRsZV93YWtldXBfbXdh
aXQoY3B1bWFza190ICptYXNrKTsKLQogI2RlZmluZSBDUFVJRExFX0RSSVZF
Ul9TVEFURV9TVEFSVCAgMQogCiBleHRlcm4gdm9pZCBtZW51X2dldF90cmFj
ZV9kYXRhKHUzMiAqZXhwZWN0ZWQsIHUzMiAqcHJlZCk7CmRpZmYgLS1naXQg
YS94ZW4vaW5jbHVkZS94ZW4vaXJxX2NwdXN0YXQuaCBiL3hlbi9pbmNsdWRl
L3hlbi9pcnFfY3B1c3RhdC5oCmluZGV4IGI5NjI5ZjI1YzI2Ni4uNWYwMzli
NGI5YTc2IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vaXJxX2NwdXN0
YXQuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vaXJxX2NwdXN0YXQuaApAQCAt
MjQsNiArMjQsNSBAQCBleHRlcm4gaXJxX2NwdXN0YXRfdCBpcnFfc3RhdFtd
OwogICAvKiBhcmNoIGluZGVwZW5kZW50IGlycV9zdGF0IGZpZWxkcyAqLwog
I2RlZmluZSBzb2Z0aXJxX3BlbmRpbmcoY3B1KQlfX0lSUV9TVEFUKChjcHUp
LCBfX3NvZnRpcnFfcGVuZGluZykKICNkZWZpbmUgbG9jYWxfaXJxX2NvdW50
KGNwdSkJX19JUlFfU1RBVCgoY3B1KSwgX19sb2NhbF9pcnFfY291bnQpCi0j
ZGVmaW5lIG13YWl0X3dha2V1cChjcHUpCV9fSVJRX1NUQVQoKGNwdSksIF9f
bXdhaXRfd2FrZXVwKQogCiAjZW5kaWYJLyogX19pcnFfY3B1c3RhdF9oICov
Cg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-09.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-09.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDE4OjEzOjI3ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBEcm9wIGluY29ycmVjdCBzbXBfbWIoKSBpbiBtd2Fp
dF9pZGxlX3dpdGhfaGludHMoKQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50
LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFu
c2Zlci1FbmNvZGluZzogOGJpdAoKV2l0aCB0aGUgcmVjZW50IHNpbXBsaWZp
Y2F0aW9ucywgaXQgYmVjb21lcyBvYnZpb3VzIHRoYXQgc21wX21iKCkgaXNu
J3QgdGhlCnJpZ2h0IGJhcnJpZXIuICBTdHJpY3RseSBzcGVha2luZywgTU9O
SVRPUiBpcyBvcmRlcmVkIGFzIGEgbG9hZCwgYnV0IHNtcF9ybWIoKQppc24n
dCBjb3JyZWN0IGVpdGhlciwgYXMgdGhpcyBvbmx5IHBlcnRhaW5zIHRvIGxv
Y2FsIG9yZGVyaW5nLiAgQWxsIHdlIG5lZWQgaXMKYSBjb21waWxlciBiYXJy
aWVyKCkuCgpNZXJnZSB0aGUgYmFyaWVyKCkgaW50byB0aGUgbW9uaXRvcigp
IGl0c2VsZiwgYWxvbmcgd2l0aCBhbiBleHBsYW50aW9uLgoKTm8gZnVuY3Rp
b25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogUm9nZXIgUGF1
IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CihjaGVycnkgcGlja2Vk
IGZyb20gY29tbWl0IGU3NzEwZGQ4NDNiYTlkMjA0ZjZlZTI5NzNkNjEyMGMx
OTg0OTU4YTYpCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1
X2lkbGUuYyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXgg
N2UzYjNkNzU0M2JmLi4zM2QxZmJiMDI4NTUgMTAwNjQ0Ci0tLSBhL3hlbi9h
cmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2Fj
cGkvY3B1X2lkbGUuYwpAQCAtNjUsOCArNjUsMTIgQEAgc3RhdGljIGFsd2F5
c19pbmxpbmUgdm9pZCBtb25pdG9yKAogICAgIGFsdGVybmF0aXZlX2lucHV0
KCIiLCAiY2xmbHVzaCAoJVthZGRyXSkiLCBYODZfQlVHX0NMRkxVU0hfTU9O
SVRPUiwKICAgICAgICAgICAgICAgICAgICAgICBbYWRkcl0gImEiIChhZGRy
KSk7CiAKKyAgICAvKgorICAgICAqIFRoZSBtZW1vcnkgY2xvYmJlciBpcyBh
IGNvbXBpbGVyIGJhcnJpZXIuICBTdWJzZXFldW50IHJlYWRzIGZyb20gdGhl
CisgICAgICogbW9uaXRvcmVkIGNhY2hlbGluZSBtdXN0IG5vdCBiZSByZW9y
ZGVyZWQgb3ZlciBNT05JVE9SLgorICAgICAqLwogICAgIGFzbSB2b2xhdGls
ZSAoICJtb25pdG9yIgotICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoYWRk
ciksICJjIiAoZWN4KSwgImQiIChlZHgpICk7CisgICAgICAgICAgICAgICAg
ICAgOjogImEiIChhZGRyKSwgImMiIChlY3gpLCAiZCIgKGVkeCkgOiAibWVt
b3J5IiApOwogfQogCiBzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIG13YWl0
KHVuc2lnbmVkIGludCBlYXgsIHVuc2lnbmVkIGludCBlY3gpCkBAIC00NjUs
NyArNDY5LDYgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHModW5zaWdu
ZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICBjb25zdCB1bnNp
Z25lZCBpbnQgKnRoaXNfc29mdGlycV9wZW5kaW5nID0gJnNvZnRpcnFfcGVu
ZGluZyhjcHUpOwogCiAgICAgbW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGlu
ZywgMCwgMCk7Ci0gICAgc21wX21iKCk7CiAKICAgICBpZiAoICEqdGhpc19z
b2Z0aXJxX3BlbmRpbmcgKQogICAgIHsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-10.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-10.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjQwOjUxICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBDb252ZXJ0IGZvcmNlX213YWl0X2lwaV93YWtldXAg
dG8gWDg2X0JVR19NT05JVE9SCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQt
VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z
ZmVyLUVuY29kaW5nOiA4Yml0CgpXZSdyZSBnb2luZyB0byB3YW50IGFsdGVy
bmF0aXZlLXBhdGNoIGJhc2VkIG9uIGl0LgoKTm8gZnVuY3Rpb25hbCBjaGFu
Z2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29v
cGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8
cm9nZXIucGF1QGNpdHJpeC5jb20+CihjaGVycnkgcGlja2VkIGZyb20gY29t
bWl0IGIwY2EwZjkzZjQ3YzQzZjg5ODQ5ODExMzdhZjA3Y2EzZDE2MWUzZWMp
CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBi
L3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXggMzNkMWZiYjAy
ODU1Li5iMDg1ZjM2ZGYyMTkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9h
Y3BpL2NwdV9pZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lk
bGUuYwpAQCAtNDUyLDE0ICs0NTIsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBj
Zl9jaGVjayBjcHVfaWRsZV9rZXlfaW5pdCh2b2lkKQogfQogX19pbml0Y2Fs
bChjcHVfaWRsZV9rZXlfaW5pdCk7CiAKLS8qIEZvcmNlIHNlbmRpbmcgb2Yg
YSB3YWtldXAgSVBJIHJlZ2FyZGxlc3Mgb2YgbXdhaXQgdXNhZ2UuICovCi1i
b29sIF9fcm9fYWZ0ZXJfaW5pdCBmb3JjZV9td2FpdF9pcGlfd2FrZXVwOwot
CiBib29sIGFyY2hfc2tpcF9zZW5kX2V2ZW50X2NoZWNrKHVuc2lnbmVkIGlu
dCBjcHUpCiB7Ci0gICAgaWYgKCBmb3JjZV9td2FpdF9pcGlfd2FrZXVwICkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMgYi94
ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKaW5kZXggM2M5NmJhZmUzOTVmLi5h
ZjRhNTJlYzFiYTUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvaW50
ZWwuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKQEAgLTQwMyw3
ICs0MDMsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcHJvYmVfbXdhaXRfZXJy
YXRhKHZvaWQpCiAgICAgewogICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5J
TkcKICAgICAgICAgICAgICAgICJGb3JjaW5nIElQSSBNV0FJVCB3YWtldXAg
ZHVlIHRvIENQVSBlcnJhdHVtXG4iKTsKLSAgICAgICAgZm9yY2VfbXdhaXRf
aXBpX3dha2V1cCA9IHRydWU7CisgICAgICAgIHNldHVwX2ZvcmNlX2NwdV9j
YXAoWDg2X0JVR19NT05JVE9SKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oIGIveGVu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmVzLmgKaW5kZXggODRj
OTMyOTJjODBjLi41NjIzMWIwMGYxNWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oCisrKyBiL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oCkBAIC01Myw2ICs1Myw3
IEBAIFhFTl9DUFVGRUFUVVJFKFVTRV9WTUNBTEwsICAgICAgICBYODZfU1lO
VEgoMzApKSAvKiBVc2UgVk1DQUxMIGluc3RlYWQgb2YgVk1NQ0FMCiAjZGVm
aW5lIFg4Nl9CVUdfQ0xGTFVTSF9NRkVOQ0UgICAgWDg2X0JVRyggMikgLyog
TUZFTkNFIG5lZWRlZCB0byBzZXJpYWxpc2UgQ0xGTFVTSCAqLwogI2RlZmlu
ZSBYODZfQlVHX0lCUEJfTk9fUkVUICAgICAgIFg4Nl9CVUcoIDMpIC8qIElC
UEIgZG9lc24ndCBmbHVzaCB0aGUgUlNCL1JBUyAqLwogI2RlZmluZSBYODZf
QlVHX0NMRkxVU0hfTU9OSVRPUiAgIFg4Nl9CVUcoIDQpIC8qIE1PTklUT1Ig
cmVxdWlyZXMgQ0xGTFVTSCAqLworI2RlZmluZSBYODZfQlVHX01PTklUT1Ig
ICAgICAgICAgIFg4Nl9CVUcoIDUpIC8qIE1PTklUT1IgZG9lc24ndCBhbHdh
eXMgbm90aWNlIHdyaXRlcyAoZm9yY2UgSVBJcykgKi8KIAogI2RlZmluZSBY
ODZfU1BFQ19OT19MRkVOQ0VfRU5UUllfUFYgWDg2X0JVRygxNikgLyogKE5v
KSBzYWZldHkgTEZFTkNFIGZvciBTUEVDX0NUUkxfRU5UUllfUFYuICovCiAj
ZGVmaW5lIFg4Nl9TUEVDX05PX0xGRU5DRV9FTlRSWV9JTlRSIFg4Nl9CVUco
MTcpIC8qIChObykgc2FmZXR5IExGRU5DRSBmb3IgU1BFQ19DVFJMX0VOVFJZ
X0lOVFIuICovCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbXdhaXQuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9td2FpdC5o
CmluZGV4IDk3YmYzNjE1MDVmMC4uZjM3N2Q5ZmRjYWQ0IDEwMDY0NAotLS0g
YS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXdhaXQuaAorKysgYi94ZW4v
YXJjaC94ODYvaW5jbHVkZS9hc20vbXdhaXQuaApAQCAtMTMsOSArMTMsNiBA
QAogCiAjZGVmaW5lIE1XQUlUX0VDWF9JTlRFUlJVUFRfQlJFQUsJMHgxCiAK
LS8qIEZvcmNlIHNlbmRpbmcgb2YgYSB3YWtldXAgSVBJIHJlZ2FyZGxlc3Mg
b2YgbXdhaXQgdXNhZ2UuICovCi1leHRlcm4gYm9vbCBmb3JjZV9td2FpdF9p
cGlfd2FrZXVwOwotCiB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNp
Z25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQgZWN4KTsKIGJvb2wgbXdhaXRf
cGMxMF9zdXBwb3J0ZWQodm9pZCk7CiAK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-11.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-11.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjA0OjE3ICswMTAwClN1Ympl
Y3Q6IHhlbi9zb2Z0aXJxOiBSZXdvcmsgYXJjaF9za2lwX3NlbmRfZXZlbnRf
Y2hlY2soKSBpbnRvCiBhcmNoX3NldF9zb2Z0aXJxKCkKTUlNRS1WZXJzaW9u
OiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04
CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCng4NiBpcyB0aGUg
b25seSBhcmNoaXRlY3R1cmUgd2FudGluZyBhbiBvcHRpbWlzYXRpb24gaGVy
ZSwgYnV0IHRoZQp0ZXN0X2FuZF9zZXRfYml0KCkgaXMgYSBzdG9yZSBpbnRv
IHRoZSBtb25pdG9yZWQgbGluZSAoaS5lLiB3aWxsIHdha2UgdXAgdGhlCnRh
cmdldCkgYW5kLCBwcmlvciB0byB0aGUgcmVtb3ZhbCBvZiB0aGUgYnJva2Vu
IElQSS1lbGlzaW9uIGFsZ29yaXRobSwgd2FzCnJhY3ksIGNhdXNpbmcgdW5u
ZWNlc3NhcnkgSVBJcyB0byBiZSBzZW50LgoKVG8gZG8gdGhpcyBpbiBhIHJh
Y2UtZnJlZSB3YXksIHRoZSBzdG9yZSB0byB0aGUgbW9uaXRlZCBsaW5lIG5l
ZWRzIHRvIGFsc28Kc2FtcGxlIHRoZSBzdGF0dXMgb2YgdGhlIHRhcmdldCBp
biBvbmUgYXRvbWljIGFjdGlvbi4gIEltcGxlbWVudCBhIG5ldyBhcmNoCmhl
bHBlciB3aXRoIGRpZmZlcmVudCBzZW1hbnRpY3M7IHRvIG1ha2UgdGhlIHNv
ZnRpcnEgcGVuZGluZyBhbmQgZGVjaWRlIGFib3V0CklQSXMgdG9nZXRoZXIu
ICBGb3Igbm93LCBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgaGVscGVyLiAgSXQg
d2lsbCBiZSBvdmVycmlkZGVuCmJ5IHg4NiBpbiBhIHN1YnNlcXVlbnQgY2hh
bmdlLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBB
bmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZp
ZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5j
b20+CihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGI0NzNlNWUyMTJlNDQ1
ZDNjMTkzYzFjODNiNTJiMTI5YWY1NzFiMTkpCgpkaWZmIC0tZ2l0IGEveGVu
L2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBiL3hlbi9hcmNoL3g4Ni9hY3Bp
L2NwdV9pZGxlLmMKaW5kZXggYjA4NWYzNmRmMjE5Li43Yzc2NzZlOWNlOTEg
MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKKysr
IGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYwpAQCAtNDUyLDExICs0
NTIsNiBAQCBzdGF0aWMgaW50IF9faW5pdCBjZl9jaGVjayBjcHVfaWRsZV9r
ZXlfaW5pdCh2b2lkKQogfQogX19pbml0Y2FsbChjcHVfaWRsZV9rZXlfaW5p
dCk7CiAKLWJvb2wgYXJjaF9za2lwX3NlbmRfZXZlbnRfY2hlY2sodW5zaWdu
ZWQgaW50IGNwdSkKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIHZvaWQg
bXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBlYXgsIHVuc2ln
bmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNwdSA9IHNtcF9w
cm9jZXNzb3JfaWQoKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9zb2Z0aXJxLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20v
c29mdGlycS5oCmluZGV4IDQxNWVlODY2Yzc5ZC4uZTRiMTk0ZjA2OWZiIDEw
MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vc29mdGlycS5o
CisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zb2Z0aXJxLmgKQEAg
LTksNiArOSw0IEBACiAjZGVmaW5lIEhWTV9EUENJX1NPRlRJUlEgICAgICAg
KE5SX0NPTU1PTl9TT0ZUSVJRUyArIDQpCiAjZGVmaW5lIE5SX0FSQ0hfU09G
VElSUVMgICAgICAgNQogCi1ib29sIGFyY2hfc2tpcF9zZW5kX2V2ZW50X2No
ZWNrKHVuc2lnbmVkIGludCBjcHUpOwotCiAjZW5kaWYgLyogX19BU01fU09G
VElSUV9IX18gKi8KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc29mdGlycS5j
IGIveGVuL2NvbW1vbi9zb2Z0aXJxLmMKaW5kZXggMDYzZTkzY2JlMzNiLi44
OTY4NWIzODFkODUgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc29mdGlycS5j
CisrKyBiL3hlbi9jb21tb24vc29mdGlycS5jCkBAIC05NCw5ICs5NCw3IEBA
IHZvaWQgY3B1bWFza19yYWlzZV9zb2Z0aXJxKGNvbnN0IGNwdW1hc2tfdCAq
bWFzaywgdW5zaWduZWQgaW50IG5yKQogICAgICAgICByYWlzZV9tYXNrID0g
JnBlcl9jcHUoYmF0Y2hfbWFzaywgdGhpc19jcHUpOwogCiAgICAgZm9yX2Vh
Y2hfY3B1KGNwdSwgbWFzaykKLSAgICAgICAgaWYgKCAhdGVzdF9hbmRfc2V0
X2JpdChuciwgJnNvZnRpcnFfcGVuZGluZyhjcHUpKSAmJgotICAgICAgICAg
ICAgIGNwdSAhPSB0aGlzX2NwdSAmJgotICAgICAgICAgICAgICFhcmNoX3Nr
aXBfc2VuZF9ldmVudF9jaGVjayhjcHUpICkKKyAgICAgICAgaWYgKCAhYXJj
aF9zZXRfc29mdGlycShuciwgY3B1KSAmJiBjcHUgIT0gdGhpc19jcHUgKQog
ICAgICAgICAgICAgX19jcHVtYXNrX3NldF9jcHUoY3B1LCByYWlzZV9tYXNr
KTsKIAogICAgIGlmICggcmFpc2VfbWFzayA9PSAmc2VuZF9tYXNrICkKQEAg
LTEwNyw5ICsxMDUsNyBAQCB2b2lkIGNwdV9yYWlzZV9zb2Z0aXJxKHVuc2ln
bmVkIGludCBjcHUsIHVuc2lnbmVkIGludCBucikKIHsKICAgICB1bnNpZ25l
ZCBpbnQgdGhpc19jcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAKLSAgICBp
ZiAoIHRlc3RfYW5kX3NldF9iaXQobnIsICZzb2Z0aXJxX3BlbmRpbmcoY3B1
KSkKLSAgICAgICAgIHx8IChjcHUgPT0gdGhpc19jcHUpCi0gICAgICAgICB8
fCBhcmNoX3NraXBfc2VuZF9ldmVudF9jaGVjayhjcHUpICkKKyAgICBpZiAo
IGFyY2hfc2V0X3NvZnRpcnEobnIsIGNwdSkgfHwgY3B1ID09IHRoaXNfY3B1
ICkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCAhcGVyX2NwdShiYXRj
aGluZywgdGhpc19jcHUpIHx8IGluX2lycSgpICkKZGlmZiAtLWdpdCBhL3hl
bi9pbmNsdWRlL3hlbi9zb2Z0aXJxLmggYi94ZW4vaW5jbHVkZS94ZW4vc29m
dGlycS5oCmluZGV4IDFmNmM0NzgzZGE4Ny4uNWI0YzAzYmZlMzdjIDEwMDY0
NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vc29mdGlycS5oCisrKyBiL3hlbi9p
bmNsdWRlL3hlbi9zb2Z0aXJxLmgKQEAgLTIxLDYgKzIxLDIyIEBAIGVudW0g
ewogCiAjZGVmaW5lIE5SX1NPRlRJUlFTIChOUl9DT01NT05fU09GVElSUVMg
KyBOUl9BUkNIX1NPRlRJUlFTKQogCisvKgorICogRW5zdXJlIHNvZnRpcnEg
QG5yIGlzIHBlbmRpbmcgb24gQGNwdS4gIFJldHVybiB0cnVlIGlmIGFuIElQ
SSBjYW4gYmUKKyAqIHNraXBwZWQsIGZhbHNlIGlmIHRoZSBJUEkgY2Fubm90
IGJlIHNraXBwZWQuCisgKi8KKyNpZm5kZWYgYXJjaF9zZXRfc29mdGlycQor
c3RhdGljIGFsd2F5c19pbmxpbmUgYm9vbCBhcmNoX3NldF9zb2Z0aXJxKHVu
c2lnbmVkIGludCBuciwgdW5zaWduZWQgaW50IGNwdSkKK3sKKyAgICAvKgor
ICAgICAqIFRyeSB0byBzZXQgdGhlIHNvZnRpcnEgcGVuZGluZy4gIElmIHdl
IHNldCB0aGUgYml0IChpLmUuIHRoZSBvbGQgYml0CisgICAgICogd2FzIDAp
LCB3ZSdyZSByZXNwb25zaWJsZSB0byBzZW5kIHRoZSBJUEkuICBJZiB0aGUg
c29mdGlycSB3YXMgYWxyZWFkeQorICAgICAqIHBlbmRpbmcgKGkuZS4gdGhl
IG9sZCBiaXQgd2FzIDEpLCBubyBJUEkgaXMgbmVlZGVkLgorICAgICAqLwor
ICAgIHJldHVybiB0ZXN0X2FuZF9zZXRfYml0KG5yLCAmc29mdGlycV9wZW5k
aW5nKGNwdSkpOworfQorI2VuZGlmCisKIHR5cGVkZWYgdm9pZCAoKnNvZnRp
cnFfaGFuZGxlcikodm9pZCk7CiAKIHZvaWQgZG9fc29mdGlycSh2b2lkKTsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-12.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-12.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjI2OjI0ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBJbXBsZW1lbnQgYSBuZXcgTVdBSVQgSVBJLWVsaXNp
b24gYWxnb3JpdGhtCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTog
dGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVu
Y29kaW5nOiA4Yml0CgpJbiBvcmRlciBlbGlkZSBJUElzLCB3ZSBtdXN0IGJl
IGFibGUgdG8gaWRlbnRpZnkgd2hldGhlciBhIHRhcmdldCBDUFUgaXMgaW4K
TVdBSVQgYXQgdGhlIHBvaW50IGl0IGlzIHdva2VuIHVwLiAgaS5lLiB0aGUg
c3RvcmUgdG8gd2FrZSBpdCB1cCBtdXN0IGFsc28KaWRlbnRpZnkgdGhlIHN0
YXRlLgoKQ3JlYXRlIGEgbmV3IGluX213YWl0IHZhcmlhYmxlIGJlc2lkZSBf
X3NvZnRpcnFfcGVuZGluZywgc28gd2UgY2FuIHVzZSBhCkNNUFhDSEcgdG8g
c2V0IHRoZSBzb2Z0aXJxIHdoaWxlIGFsc28gb2JzZXJ2aW5nIHRoZSBzdGF0
dXMgc2FmZWx5LiAgSW1wbGVtZW50CmFuIHg4NiB2ZXJzaW9uIG9mIGFyY2hf
cGVuZF9zb2Z0aXJxKCkgd2hpY2ggZG9lcyB0aGlzLgoKSW4gbXdhaXRfaWRs
ZV93aXRoX2hpbnRzKCksIGFkdmVydGlzZSBpbl9td2FpdCwgd2l0aCBhbiBl
eHBsYW5hdGlvbiBvZgpwcmVjaXNlbHkgd2hhdCBpdCBtZWFucy4gIFg4Nl9C
VUdfTU9OSVRPUiBjYW4gYmUgYWNjb3VudGVkIGZvciBzaW1wbHkgYnkgbm90
CmFkdmVydGlzaW5nIGluX213YWl0LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQWNrZWQtYnk6
IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgooY2hl
cnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzZTBiYzRiNTAzNTBiZDM1NzMwNGZk
NzlhNWRjMDQ3Mjc5MGRiYTkxKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4
Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRs
ZS5jCmluZGV4IDdjNzY3NmU5Y2U5MS4uYjg3NmM3NzgxZWVmIDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9h
cmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTQ1NSw3ICs0NTUsMjEgQEAg
X19pbml0Y2FsbChjcHVfaWRsZV9rZXlfaW5pdCk7CiB2b2lkIG13YWl0X2lk
bGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQg
ZWN4KQogewogICAgIHVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29y
X2lkKCk7Ci0gICAgY29uc3QgdW5zaWduZWQgaW50ICp0aGlzX3NvZnRpcnFf
cGVuZGluZyA9ICZzb2Z0aXJxX3BlbmRpbmcoY3B1KTsKKyAgICBpcnFfY3B1
c3RhdF90ICpzdGF0ID0gJmlycV9zdGF0W2NwdV07CisgICAgY29uc3QgdW5z
aWduZWQgaW50ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZzdGF0LT5fX3Nv
ZnRpcnFfcGVuZGluZzsKKworICAgIC8qCisgICAgICogQnkgc2V0dGluZyBp
bl9td2FpdCwgd2UgcHJvbWlzZSB0byBvdGhlciBDUFVzIHRoYXQgd2UnbGwg
bm90aWNlIGNoYW5nZXMKKyAgICAgKiB0byBfX3NvZnRpcnFfcGVuZGluZyB3
aXRob3V0IGJlaW5nIHNlbnQgYW4gSVBJLiAgV2UgYWNoaWV2ZSB0aGlzIGJ5
CisgICAgICogZWl0aGVyIG5vdCBnb2luZyB0byBzbGVlcCwgb3IgYnkgaGF2
aW5nIGhhcmR3YXJlIG5vdGljZSBvbiBvdXIgYmVoYWxmLgorICAgICAqCisg
ICAgICogU29tZSBlcnJhdGEgZXhpc3Qgd2hlcmUgTU9OSVRPUiBkb2Vzbid0
IHdvcmsgcHJvcGVybHksIGFuZCB0aGUKKyAgICAgKiB3b3JrYXJvdW5kIGlz
IHRvIGZvcmNlIHRoZSB1c2Ugb2YgYW4gSVBJLiAgQ2F1c2UgdGhpcyB0byBo
YXBwZW4gYnkKKyAgICAgKiBzaW1wbHkgbm90IGFkdmVydGlzaW5nIG91cnNl
bHZlcyBhcyBiZWluZyBpbl9td2FpdC4KKyAgICAgKi8KKyAgICBhbHRlcm5h
dGl2ZV9pbygibW92YiAkMSwgJVtpbl9td2FpdF0iLAorICAgICAgICAgICAg
ICAgICAgICIiLCBYODZfQlVHX01PTklUT1IsCisgICAgICAgICAgICAgICAg
ICAgW2luX213YWl0XSAiPW0iIChzdGF0LT5pbl9td2FpdCkpOwogCiAgICAg
bW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGluZywgMCwgMCk7CiAKQEAgLTQ2
Nyw2ICs0ODEsMTAgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHModW5z
aWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAgbXdh
aXQoZWF4LCBlY3gpOwogICAgICAgICBzcGVjX2N0cmxfZXhpdF9pZGxlKGlu
Zm8pOwogICAgIH0KKworICAgIGFsdGVybmF0aXZlX2lvKCJtb3ZiICQwLCAl
W2luX213YWl0XSIsCisgICAgICAgICAgICAgICAgICAgIiIsIFg4Nl9CVUdf
TU9OSVRPUiwKKyAgICAgICAgICAgICAgICAgICBbaW5fbXdhaXRdICI9bSIg
KHN0YXQtPmluX213YWl0KSk7CiB9CiAKIHN0YXRpYyB2b2lkIGFjcGlfcHJv
Y2Vzc29yX2ZmaF9jc3RhdGVfZW50ZXIoc3RydWN0IGFjcGlfcHJvY2Vzc29y
X2N4ICpjeCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9oYXJkaXJxLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaGFyZGly
cS5oCmluZGV4IGYzZTkzY2M5YjUwNy4uMTY0N2NmZjA0ZGM4IDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaGFyZGlycS5oCisrKyBi
L3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJkaXJxLmgKQEAgLTUsNyAr
NSwxOSBAQAogI2luY2x1ZGUgPHhlbi90eXBlcy5oPgogCiB0eXBlZGVmIHN0
cnVjdCB7Ci0gICAgdW5zaWduZWQgaW50IF9fc29mdGlycV9wZW5kaW5nOwor
ICAgIC8qCisgICAgICogVGhlIGxheW91dCBpcyBpbXBvcnRhbnQuICBBbnkg
Q1BVIGNhbiBzZXQgYml0cyBpbiBfX3NvZnRpcnFfcGVuZGluZywKKyAgICAg
KiBidXQgaW5fbXdhaXQgaXMgYSBzdGF0dXMgYml0IG93bmVkIGJ5IHRoZSBD
UFUuICBzb2Z0aXJxX213YWl0X3JhdyBtdXN0CisgICAgICogY292ZXIgYm90
aCwgYW5kIG11c3QgYmUgaW4gYSBzaW5nbGUgY2FjaGVsaW5lLgorICAgICAq
LworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAg
IHVuc2lnbmVkIGludCBfX3NvZnRpcnFfcGVuZGluZzsKKyAgICAgICAgICAg
IGJvb2wgaW5fbXdhaXQ7CisgICAgICAgIH07CisgICAgICAgIHVpbnQ2NF90
IHNvZnRpcnFfbXdhaXRfcmF3OworICAgIH07CisKICAgICB1bnNpZ25lZCBp
bnQgX19sb2NhbF9pcnFfY291bnQ7CiAgICAgdW5zaWduZWQgaW50IG5taV9j
b3VudDsKICAgICB1bnNpZ25lZCBpbnQgbWNlX2NvdW50OwpkaWZmIC0tZ2l0
IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NvZnRpcnEuaCBiL3hlbi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9zb2Z0aXJxLmgKaW5kZXggZTRiMTk0ZjA2
OWZiLi41NWI2NWM5NzQ3YjEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zb2Z0aXJxLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3NvZnRpcnEuaApAQCAtMSw2ICsxLDggQEAKICNpZm5kZWYgX19B
U01fU09GVElSUV9IX18KICNkZWZpbmUgX19BU01fU09GVElSUV9IX18KIAor
I2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KKwogI2RlZmluZSBOTUlfU09GVElS
USAgICAgICAgICAgIChOUl9DT01NT05fU09GVElSUVMgKyAwKQogI2RlZmlu
ZSBUSU1FX0NBTElCUkFURV9TT0ZUSVJRIChOUl9DT01NT05fU09GVElSUVMg
KyAxKQogI2RlZmluZSBWQ1BVX0tJQ0tfU09GVElSUSAgICAgIChOUl9DT01N
T05fU09GVElSUVMgKyAyKQpAQCAtOSw0ICsxMSw1MCBAQAogI2RlZmluZSBI
Vk1fRFBDSV9TT0ZUSVJRICAgICAgIChOUl9DT01NT05fU09GVElSUVMgKyA0
KQogI2RlZmluZSBOUl9BUkNIX1NPRlRJUlFTICAgICAgIDUKIAorLyoKKyAq
IEVuc3VyZSBzb2Z0aXJxIEBuciBpcyBwZW5kaW5nIG9uIEBjcHUuICBSZXR1
cm4gdHJ1ZSBpZiBhbiBJUEkgY2FuIGJlCisgKiBza2lwcGVkLCBmYWxzZSBp
ZiB0aGUgSVBJIGNhbm5vdCBiZSBza2lwcGVkLgorICoKKyAqIFdlIHVzZSBh
IENNUFhDSEcgY292ZXJpbmcgYm90aCBfX3NvZnRpcnFfcGVuZGluZyBhbmQg
aW5fbXdhaXQsIGluIG9yZGVyIHRvCisgKiBzZXQgc29mdGlycSBAbnIgd2hp
bGUgYWxzbyBvYnNlcnZpbmcgaW5fbXdhaXQgaW4gYSByYWNlLWZyZWUgd2F5
LgorICovCitzdGF0aWMgYWx3YXlzX2lubGluZSBib29sIGFyY2hfc2V0X3Nv
ZnRpcnEodW5zaWduZWQgaW50IG5yLCB1bnNpZ25lZCBpbnQgY3B1KQorewor
ICAgIHVpbnQ2NF90ICpwdHIgPSAmaXJxX3N0YXRbY3B1XS5zb2Z0aXJxX213
YWl0X3JhdzsKKyAgICB1aW50NjRfdCBwcmV2LCBvbGQsIG5ldzsKKyAgICB1
bnNpZ25lZCBpbnQgc29mdGlycSA9IDFVIDw8IG5yOworCisgICAgb2xkID0g
QUNDRVNTX09OQ0UoKnB0cik7CisKKyAgICBmb3IgKCA7OyApCisgICAgewor
ICAgICAgICBpZiAoIG9sZCAmIHNvZnRpcnEgKQorICAgICAgICAgICAgLyog
U29mdGlycSBhbHJlYWR5IHBlbmRpbmcsIG5vdGhpbmcgdG8gZG8uICovCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBuZXcgPSBvbGQg
fCBzb2Z0aXJxOworCisgICAgICAgIHByZXYgPSBjbXB4Y2hnKHB0ciwgb2xk
LCBuZXcpOworICAgICAgICBpZiAoIHByZXYgPT0gb2xkICkKKyAgICAgICAg
ICAgIGJyZWFrOworCisgICAgICAgIG9sZCA9IHByZXY7CisgICAgfQorCisg
ICAgLyoKKyAgICAgKiBXZSBoYXZlIGNhdXNlZCB0aGUgc29mdGlycSB0byBi
ZWNvbWUgcGVuZGluZy4gIElmIGluX213YWl0IHdhcyBzZXQsIHRoZQorICAg
ICAqIHRhcmdldCBDUFUgd2lsbCBub3RpY2UgdGhlIG1vZGlmaWNhdGlvbiBh
bmQgYWN0IG9uIGl0LgorICAgICAqCisgICAgICogV2UgY2FuJ3QgYWNjZXNz
IHRoZSBpbl9td2FpdCBmaWVsZCBuaWNlbHksIHNvIHVzZSBzb21lIEJVSUxE
X0JVR19PTigpJ3MKKyAgICAgKiB0byBjcm9zcy1jaGVjayB0aGUgKDFVTCA8
PCAzMikgb3BlbmNvZGluZy4KKyAgICAgKi8KKyAgICBCVUlMRF9CVUdfT04o
c2l6ZW9mKGlycV9zdGF0WzBdLnNvZnRpcnFfbXdhaXRfcmF3KSAhPSA4KTsK
KyAgICBCVUlMRF9CVUdfT04oKG9mZnNldG9mKGlycV9jcHVzdGF0X3QsIGlu
X213YWl0KSAtCisgICAgICAgICAgICAgICAgICBvZmZzZXRvZihpcnFfY3B1
c3RhdF90LCBzb2Z0aXJxX213YWl0X3JhdykpICE9IDQpOworCisgICAgcmV0
dXJuIG5ldyAmICgxVUwgPDwgMzIpIC8qIGluX213YWl0ICovOworCit9Cisj
ZGVmaW5lIGFyY2hfc2V0X3NvZnRpcnEgYXJjaF9zZXRfc29mdGlycQorCiAj
ZW5kaWYgLyogX19BU01fU09GVElSUV9IX18gKi8K

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-13.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-13.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogV2VkLCAyIEp1bCAyMDI1IDE0OjUxOjM4ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBGaXggYnVnZ3kgIng4Ni9td2FpdC1pZGxlOiBlbmFi
bGUgaW50ZXJydXB0cyBiZWZvcmUgQzEgb24KIFhlb25zIgoKVGhlIGNoZWNr
IG9mIHRoaXNfc29mdGlycV9wZW5kaW5nIG11c3QgYmUgcGVyZm9ybWVkIHdp
dGggaXJxcyBkaXNhYmxlZCwgYnV0CnRoaXMgcHJvcGVydHkgd2FzIGJyb2tl
biBieSBhbiBhdHRlbXB0IHRvIG9wdGltaXNlIGVudHJ5L2V4aXQgbGF0ZW5j
eS4KCkNvbW1pdCBjMjI3MjMzYWQ2NGMgaW4gTGludXggKHdoaWNoIHdlIGNv
cGllZCBpbnRvIFhlbikgd2FzIGZpeGVkIHVwIGJ5CmVkYzhmYzAxZjYwOCBp
biBMaW51eCwgd2hpY2ggd2UgaGF2ZSBzbyBmYXIgbWlzc2VkLgoKR29pbmcg
dG8gc2xlZXAgd2l0aG91dCB3YWtpbmcgb24gaW50ZXJydXB0cyBpcyBub25z
ZW5zaWNhbCBvdXRzaWRlIG9mCnBsYXlfZGVhZCgpLCBzbyBvdmVybG9hZCB0
aGlzIHRvIHNlbGVjdCBiZXR3ZWVuIHR3byBwb3NzaWJsZSBNV0FJVHMsIHRo
ZQpzZWNvbmQgdXNpbmcgdGhlIFNUSSBzaGFkb3cgdG8gY292ZXIgTVdBSVQg
Zm9yIGV4YWN0bHkgdGhlIHNhbWUgcmVhc29uIGFzIHdlCmRvIGluIHNhZmVf
aGFsdCgpLgoKRml4ZXM6IGIxN2UwZWM3MmVkZSAoIng4Ni9td2FpdC1pZGxl
OiBlbmFibGUgaW50ZXJydXB0cyBiZWZvcmUgQzEgb24gWGVvbnMiKQpTaWdu
ZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRy
aXguY29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1
c2UuY29tPgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA5YjBmMGY2ZTIz
NTYxOGMyNzY0ZTkyNWI1OGM0YmZlNDEyNzMwY2VkKQoKZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYv
YWNwaS9jcHVfaWRsZS5jCmluZGV4IGI4NzZjNzc4MWVlZi4uMGI3ZTc2MzZi
YzBjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5j
CisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTc5LDYg
Kzc5LDEzIEBAIHN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgbXdhaXQodW5z
aWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAgICAg
ICAgICAgICA6OiAiYSIgKGVheCksICJjIiAoZWN4KSApOwogfQogCitzdGF0
aWMgYWx3YXlzX2lubGluZSB2b2lkIHN0aV9td2FpdF9jbGkodW5zaWduZWQg
aW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKK3sKKyAgICAvKiBTVEkgc2hh
ZG93IGNvdmVycyBNV0FJVC4gKi8KKyAgICBhc20gdm9sYXRpbGUgKCAic3Rp
OyBtd2FpdDsgY2xpIgorICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoZWF4
KSwgImMiIChlY3gpICk7Cit9CisKICNkZWZpbmUgR0VUX0hXX1JFU19JTl9O
Uyhtc3IsIHZhbCkgXAogICAgIGRvIHsgcmRtc3JsKG1zciwgdmFsKTsgdmFs
ID0gdHNjX3RpY2tzMm5zKHZhbCk7IH0gd2hpbGUoIDAgKQogI2RlZmluZSBH
RVRfTUM2X1JFUyh2YWwpICBHRVRfSFdfUkVTX0lOX05TKDB4NjY0LCB2YWwp
CkBAIC00NzMsMTIgKzQ4MCwxOSBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9o
aW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogCiAg
ICAgbW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGluZywgMCwgMCk7CiAKKyAg
ICBBU1NFUlQoIWxvY2FsX2lycV9pc19lbmFibGVkKCkpOworCiAgICAgaWYg
KCAhKnRoaXNfc29mdGlycV9wZW5kaW5nICkKICAgICB7CiAgICAgICAgIHN0
cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdldF9jcHVfaW5mbygpOwogCiAgICAg
ICAgIHNwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8pOwotICAgICAgICBtd2Fp
dChlYXgsIGVjeCk7CisKKyAgICAgICAgaWYgKCBlY3ggJiBNV0FJVF9FQ1hf
SU5URVJSVVBUX0JSRUFLICkKKyAgICAgICAgICAgIG13YWl0KGVheCwgZWN4
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3RpX213YWl0X2NsaShl
YXgsIGVjeCk7CisKICAgICAgICAgc3BlY19jdHJsX2V4aXRfaWRsZShpbmZv
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbXdh
aXQtaWRsZS5jIGIveGVuL2FyY2gveDg2L2NwdS9td2FpdC1pZGxlLmMKaW5k
ZXggMTJjMzYyNTdiN2JlLi5hZDQyMWQ4YmI3NmEgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9jcHUvbXdhaXQtaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4
Ni9jcHUvbXdhaXQtaWRsZS5jCkBAIC05NzMsMTIgKzk3Myw4IEBAIHN0YXRp
YyB2b2lkIGNmX2NoZWNrIG13YWl0X2lkbGUodm9pZCkKIAogCXVwZGF0ZV9s
YXN0X2N4X3N0YXQocG93ZXIsIGN4LCBiZWZvcmUpOwogCi0JaWYgKGN4LT5p
cnFfZW5hYmxlX2Vhcmx5KQotCQlsb2NhbF9pcnFfZW5hYmxlKCk7Ci0KLQlt
d2FpdF9pZGxlX3dpdGhfaGludHMoY3gtPmFkZHJlc3MsIE1XQUlUX0VDWF9J
TlRFUlJVUFRfQlJFQUspOwotCi0JbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwlt
d2FpdF9pZGxlX3dpdGhfaGludHMoY3gtPmFkZHJlc3MsCisJCQkgICAgICBj
eC0+aXJxX2VuYWJsZV9lYXJseSA/IDAgOiBNV0FJVF9FQ1hfSU5URVJSVVBU
X0JSRUFLKTsKIAogCWFmdGVyID0gYWx0ZXJuYXRpdmVfY2FsbChjcHVpZGxl
X2dldF90aWNrKTsKIAo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-14.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-14.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCA0IEp1bCAyMDI1IDE3OjUzOjE1ICswMTAwClN1Ympl
Y3Q6IHg4Ni94ZW4tY3B1aWQ6IEZpeCBiYWNrcG9ydHMgb2YgbmV3IGZlYXR1
cmVzCgpYZW4gNC4xOCBkb2Vzbid0IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUg
ZmVhdHVyZSBuYW1lcyBsaWtlIFhlbiA0LjE5IGRvZXMsIGFuZAp0aGVzZSBo
dW5rcyB3ZXJlIG1pc3NlZCBvbiBwcmlvciBzZWN1cml0eSBmaXhlcy4KCkZp
eGVzOiA4YmNlZDlhMTVjOGMgKCJ4ODYvc3BlYy1jdHJsOiBTdXBwb3J0IGZv
ciBTUlNPX1UvU19OTyBhbmQgU1JTT19NU1JfRklYIikKRml4ZXM6IGYxMzJj
ODJmYTY1ZCAoIng4Ni9zcGVjLWN0cmw6IFN5bnRoZXNpc2UgSVRTX05PIHRv
IGd1ZXN0cyBvbiB1bmFmZmVjdGVkIGhhcmR3YXJlIikKRml4ZXM6IGRiYTA1
NTY2MTI5MiAoIng4Ni9zcGVjLWN0cmw6IFN1cHBvcnQgSW50ZWwncyBuZXcg
UEItT1BUIikKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3
LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNo
IDxqYmV1bGljaEBzdXNlLmNvbT4KW0ZvciA0LjE3LCBQQi1PUFQgd2Fzbid0
IGJhY2twb3J0ZWRdCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbWlzYy94ZW4tY3B1
aWQuYyBiL3Rvb2xzL21pc2MveGVuLWNwdWlkLmMKaW5kZXggNWNlZWE4YmUw
NzNiLi5iMjc3Yjc4YjY1NGYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL21pc2MveGVu
LWNwdWlkLmMKKysrIGIvdG9vbHMvbWlzYy94ZW4tY3B1aWQuYwpAQCAtMTk5
LDYgKzE5OSw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBzdHJfZTIx
YVszMl0gPQogCiAgICAgLyogMjYgKi8gICAgICAgICAgICAgICAgWzI3XSA9
ICJzYnBiIiwKICAgICBbMjhdID0gImlicGItYnJ0eXBlIiwgICBbMjldID0g
InNyc28tbm8iLAorICAgIFszMF0gPSAic3Jzby11cy1ubyIsICAgIFszMV0g
PSAic3Jzby1tc3ItZml4IiwKIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICpj
b25zdCBzdHJfN2IxWzMyXSA9CkBAIC0yMjIsNyArMjIzLDcgQEAgc3RhdGlj
IGNvbnN0IGNoYXIgKmNvbnN0IHN0cl83ZDJbMzJdID0KICAgICBbIDRdID0g
ImJoaS1jdHJsIiwgICAgICBbIDVdID0gIm1jZHQtbm8iLAogfTsKIAotc3Rh
dGljIGNvbnN0IGNoYXIgKmNvbnN0IHN0cl9tMTBBbFszMl0gPQorc3RhdGlj
IGNvbnN0IGNoYXIgKmNvbnN0IHN0cl9tMTBBbFs2NF0gPQogewogICAgIFsg
MF0gPSAicmRjbC1ubyIsICAgICAgICAgICAgIFsgMV0gPSAiZWlicnMiLAog
ICAgIFsgMl0gPSAicnNiYSIsICAgICAgICAgICAgICAgIFsgM10gPSAic2tp
cC1sMWRmbCIsCkBAIC0yMzksMTAgKzI0MCw4IEBAIHN0YXRpYyBjb25zdCBj
aGFyICpjb25zdCBzdHJfbTEwQWxbMzJdID0KICAgICBbMjRdID0gInBicnNi
LW5vIiwgICAgICAgICAgICBbMjVdID0gImdkcy1jdHJsIiwKICAgICBbMjZd
ID0gImdkcy1ubyIsICAgICAgICAgICAgICBbMjddID0gInJmZHMtbm8iLAog
ICAgIFsyOF0gPSAicmZkcy1jbGVhciIsCi19OwogCi1zdGF0aWMgY29uc3Qg
Y2hhciAqY29uc3Qgc3RyX20xMEFoWzMyXSA9Ci17CisgICAgWzYyXSA9ICJp
dHMtbm8iLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCB7CkBAIC0yNjgs
NyArMjY3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAgeyAiQ1BV
SUQgMHgwMDAwMDAwNzoxLmVjeCIsICAgICAiN2MxIiwgc3RyXzdjMSB9LAog
ICAgIHsgIkNQVUlEIDB4MDAwMDAwMDc6MS5lZHgiLCAgICAgIjdkMSIsIHN0
cl83ZDEgfSwKICAgICB7ICJNU1JfQVJDSF9DQVBTLmxvIiwgICAgICAgICAi
bTEwQWwiLCBzdHJfbTEwQWwgfSwKLSAgICB7ICJNU1JfQVJDSF9DQVBTLmhp
IiwgICAgICAgICAibTEwQWgiLCBzdHJfbTEwQWggfSwKKyAgICB7ICJNU1Jf
QVJDSF9DQVBTLmhpIiwgICAgICAgICAibTEwQWgiLCBzdHJfbTEwQWwgKyAz
MiB9LAogfTsKIAogI2RlZmluZSBDT0xfQUxJR04gIjI0Igo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-15.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-15.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxNzoxOToxOSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogUmVhcnJhbmdlIGd1ZXN0X2NvbW1vbl8q
X2ZlYXR1cmVfYWRqdXN0bWVudHMoKQoKVHVybiB0aGUgaWYoKXMgaW50byBz
d2l0Y2goKWVzLCBhcyB3ZSdyZSBnb2luZyB0byBuZWVkIEFNRCBzZWN0aW9u
cy4KCk1vdmUgdGhlIFJUTSBhZGp1c3RtZW50cyBpbnRvIHRoZSBJbnRlbCBz
ZWN0aW9uLCB3aGVyZSB0aGV5IG91Z2h0IHRvIGxpdmUuCgpObyBmdW5jdGlv
bmFsIGNoYW5nZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYyBiL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5
LmMKaW5kZXggOGYwMDZmZTA4YWNiLi40OThmYTRmOTk1N2MgMTAwNjQ0Ci0t
LSBhL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMKKysrIGIveGVuL2FyY2gv
eDg2L2NwdS1wb2xpY3kuYwpAQCAtNDE0LDggKzQxNCw5IEBAIHN0YXRpYyB2
b2lkIF9faW5pdCBjYWxjdWxhdGVfaG9zdF9wb2xpY3kodm9pZCkKIAogc3Rh
dGljIHZvaWQgX19pbml0IGd1ZXN0X2NvbW1vbl9tYXhfZmVhdHVyZV9hZGp1
c3RtZW50cyh1aW50MzJfdCAqZnMpCiB7Ci0gICAgaWYgKCBib290X2NwdV9k
YXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9JTlRFTCApCisgICAgc3dp
dGNoICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yICkKICAgICB7CisgICAg
Y2FzZSBYODZfVkVORE9SX0lOVEVMOgogICAgICAgICAvKgogICAgICAgICAg
KiBNU1JfQVJDSF9DQVBTIGlzIGp1c3QgZmVhdHVyZSBkYXRhLCBhbmQgd2Ug
Y2FuIG9mZmVyIGl0IHRvIGd1ZXN0cwogICAgICAgICAgKiB1bmNvbmRpdGlv
bmFsbHksIGFsdGhvdWdoIGxpbWl0IGl0IHRvIEludGVsIHN5c3RlbXMgYXMg
aXQgaXMgaGlnaGx5CkBAIC00NjAsNiArNDYxLDIyIEBAIHN0YXRpYyB2b2lk
IF9faW5pdCBndWVzdF9jb21tb25fbWF4X2ZlYXR1cmVfYWRqdXN0bWVudHMo
dWludDMyX3QgKmZzKQogICAgICAgICAgICAgIGJvb3RfY3B1X2RhdGEueDg2
X21vZGVsID09IElOVEVMX0ZBTTZfU0tZTEFLRV9YICYmCiAgICAgICAgICAg
ICAgcmF3X2NwdV9wb2xpY3kuZmVhdC5jbHdiICkKICAgICAgICAgICAgIF9f
c2V0X2JpdChYODZfRkVBVFVSRV9DTFdCLCBmcyk7CisKKyAgICAgICAgLyoK
KyAgICAgICAgICogVG8gbWl0aWdhdGUgTmF0aXZlLUJISSwgb25lIG9wdGlv
biBpcyB0byB1c2UgYSBUU1ggQWJvcnQgb24gY2FwYWJsZQorICAgICAgICAg
KiBzeXN0ZW1zLiAgVGhpcyBpcyBzYWZlIGV2ZW4gaWYgUlRNIGhhcyBiZWVu
IGRpc2FibGVkIGZvciBvdGhlcgorICAgICAgICAgKiByZWFzb25zIHZpYSBN
U1JfVFNYX3tDVFJMLEZPUkNFX0FCT1JUfS4gIEhvd2V2ZXIsIGEgZ3Vlc3Qg
a2VybmVsCisgICAgICAgICAqIGRvZXNuJ3QgZ2V0IHRvIGtub3cgdGhpcyB0
eXBlIG9mIGluZm9ybWF0aW9uLgorICAgICAgICAgKgorICAgICAgICAgKiBU
aGVyZWZvcmUgdGhlIG1lYW5pbmcgb2YgUlRNX0FMV0FZU19BQk9SVCBoYXMg
YmVlbiBhZGp1c3RlZCwgdG8KKyAgICAgICAgICogaW5zdGVhZCBtZWFuICJY
QkVHSU4gd29uJ3QgZmF1bHQiLiAgVGhpcyBpcyBlbm91Z2ggZm9yIGEgZ3Vl
c3QKKyAgICAgICAgICoga2VybmVsIHRvIG1ha2UgYW4gaW5mb3JtZWQgY2hv
aWNlIFdSVCBtaXRpZ2F0aW5nIE5hdGl2ZS1CSEkuCisgICAgICAgICAqCisg
ICAgICAgICAqIElmIFJUTS1jYXBhYmxlLCB3ZSBjYW4gcnVuIGEgVk0gd2hp
Y2ggaGFzIHNlZW4gUlRNX0FMV0FZU19BQk9SVC4KKyAgICAgICAgICovCisg
ICAgICAgIGlmICggdGVzdF9iaXQoWDg2X0ZFQVRVUkVfUlRNLCBmcykgKQor
ICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNf
QUJPUlQsIGZzKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgLyoK
QEAgLTQ3MSwyNyArNDg4LDEzIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBndWVz
dF9jb21tb25fbWF4X2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZz
KQogICAgICAqLwogICAgIF9fc2V0X2JpdChYODZfRkVBVFVSRV9IVFQsIGZz
KTsKICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfQ01QX0xFR0FDWSwgZnMp
OwotCi0gICAgLyoKLSAgICAgKiBUbyBtaXRpZ2F0ZSBOYXRpdmUtQkhJLCBv
bmUgb3B0aW9uIGlzIHRvIHVzZSBhIFRTWCBBYm9ydCBvbiBjYXBhYmxlCi0g
ICAgICogc3lzdGVtcy4gIFRoaXMgaXMgc2FmZSBldmVuIGlmIFJUTSBoYXMg
YmVlbiBkaXNhYmxlZCBmb3Igb3RoZXIgcmVhc29ucwotICAgICAqIHZpYSBN
U1JfVFNYX3tDVFJMLEZPUkNFX0FCT1JUfS4gIEhvd2V2ZXIsIGEgZ3Vlc3Qg
a2VybmVsIGRvZXNuJ3QgZ2V0IHRvCi0gICAgICoga25vdyB0aGlzIHR5cGUg
b2YgaW5mb3JtYXRpb24uCi0gICAgICoKLSAgICAgKiBUaGVyZWZvcmUgdGhl
IG1lYW5pbmcgb2YgUlRNX0FMV0FZU19BQk9SVCBoYXMgYmVlbiBhZGp1c3Rl
ZCwgdG8gaW5zdGVhZAotICAgICAqIG1lYW4gIlhCRUdJTiB3b24ndCBmYXVs
dCIuICBUaGlzIGlzIGVub3VnaCBmb3IgYSBndWVzdCBrZXJuZWwgdG8gbWFr
ZQotICAgICAqIGFuIGluZm9ybWVkIGNob2ljZSBXUlQgbWl0aWdhdGluZyBO
YXRpdmUtQkhJLgotICAgICAqCi0gICAgICogSWYgUlRNLWNhcGFibGUsIHdl
IGNhbiBydW4gYSBWTSB3aGljaCBoYXMgc2VlbiBSVE1fQUxXQVlTX0FCT1JU
LgotICAgICAqLwotICAgIGlmICggdGVzdF9iaXQoWDg2X0ZFQVRVUkVfUlRN
LCBmcykgKQotICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfUlRNX0FM
V0FZU19BQk9SVCwgZnMpOwogfQogCiBzdGF0aWMgdm9pZCBfX2luaXQgZ3Vl
c3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9hZGp1c3RtZW50cyh1aW50MzJf
dCAqZnMpCiB7Ci0gICAgaWYgKCBib290X2NwdV9kYXRhLng4Nl92ZW5kb3Ig
PT0gWDg2X1ZFTkRPUl9JTlRFTCApCisgICAgc3dpdGNoICggYm9vdF9jcHVf
ZGF0YS54ODZfdmVuZG9yICkKICAgICB7CisgICAgY2FzZSBYODZfVkVORE9S
X0lOVEVMOgogICAgICAgICAvKgogICAgICAgICAgKiBJdnlCcmlkZ2UgY2xp
ZW50IHBhcnRzIHN1ZmZlciBmcm9tIGxlYWthZ2Ugb2YgUkRSQU5EIGRhdGEg
ZHVlIHRvIFNSQkRTCiAgICAgICAgICAqIChYU0EtMzIwIC8gQ1ZFLTIwMjAt
MDU0MyksIGFuZCB3b24ndCBiZSByZWNlaXZpbmcgbWljcm9jb2RlIHRvCkBA
IC01MzUsNiArNTM4LDIzIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBndWVzdF9j
b21tb25fZGVmYXVsdF9mZWF0dXJlX2FkanVzdG1lbnRzKHVpbnQzMl90ICpm
cykKICAgICAgICAgICAgICBib290X2NwdV9kYXRhLng4Nl9tb2RlbCA9PSBJ
TlRFTF9GQU02X1NLWUxBS0VfWCAmJgogICAgICAgICAgICAgIHJhd19jcHVf
cG9saWN5LmZlYXQuY2x3YiApCiAgICAgICAgICAgICBfX2NsZWFyX2JpdChY
ODZfRkVBVFVSRV9DTFdCLCBmcyk7CisKKyAgICAgICAgLyoKKyAgICAgICAg
ICogT24gY2VydGFpbiBoYXJkd2FyZSwgc3BlY3VsYXRpdmUgb3IgZXJyYXRh
IHdvcmthcm91bmRzIGNhbiByZXN1bHQKKyAgICAgICAgICogaW4gVFNYIGJl
aW5nIHBsYWNlZCBpbiAiZm9yY2UtYWJvcnQiIG1vZGUsIHdoZXJlIGl0IGRv
ZXNuJ3QKKyAgICAgICAgICogYWN0dWFsbHkgZnVuY3Rpb24gYXMgZXhwZWN0
ZWQsIGJ1dCBpcyB0ZWNobmljYWxseSBjb21wYXRpYmxlIHdpdGgKKyAgICAg
ICAgICogdGhlIElTQS4KKyAgICAgICAgICoKKyAgICAgICAgICogRG8gbm90
IGFkdmVydGlzZSBSVE0gdG8gZ3Vlc3RzIGJ5IGRlZmF1bHQgaWYgaXQgd29u
J3QgYWN0dWFsbHkKKyAgICAgICAgICogd29yay4gIEluc3RlYWQsIGFkdmVy
dGlzZSBSVE1fQUxXQVlTX0FCT1JUIGluZGljYXRpbmcgdGhhdCBUU1gKKyAg
ICAgICAgICogQWJvcnRzIGFyZSBzYWZlIHRvIHVzZSwgZS5nLiBmb3IgbWl0
aWdhdGluZyBOYXRpdmUtQkhJLgorICAgICAgICAgKi8KKyAgICAgICAgaWYg
KCBydG1fZGlzYWJsZWQgKQorICAgICAgICB7CisgICAgICAgICAgICBfX2Ns
ZWFyX2JpdChYODZfRkVBVFVSRV9SVE0sIGZzKTsKKyAgICAgICAgICAgIF9f
c2V0X2JpdChYODZfRkVBVFVSRV9SVE1fQUxXQVlTX0FCT1JULCBmcyk7Cisg
ICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgLyoKQEAg
LTU0NiwyMSArNTY2LDYgQEAgc3RhdGljIHZvaWQgX19pbml0IGd1ZXN0X2Nv
bW1vbl9kZWZhdWx0X2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZz
KQogCiAgICAgaWYgKCAhY3B1X2hhc19jbXBfbGVnYWN5ICkKICAgICAgICAg
X19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfQ01QX0xFR0FDWSwgZnMpOwotCi0g
ICAgLyoKLSAgICAgKiBPbiBjZXJ0YWluIGhhcmR3YXJlLCBzcGVjdWxhdGl2
ZSBvciBlcnJhdGEgd29ya2Fyb3VuZHMgY2FuIHJlc3VsdCBpbgotICAgICAq
IFRTWCBiZWluZyBwbGFjZWQgaW4gImZvcmNlLWFib3J0IiBtb2RlLCB3aGVy
ZSBpdCBkb2Vzbid0IGFjdHVhbGx5Ci0gICAgICogZnVuY3Rpb24gYXMgZXhw
ZWN0ZWQsIGJ1dCBpcyB0ZWNobmljYWxseSBjb21wYXRpYmxlIHdpdGggdGhl
IElTQS4KLSAgICAgKgotICAgICAqIERvIG5vdCBhZHZlcnRpc2UgUlRNIHRv
IGd1ZXN0cyBieSBkZWZhdWx0IGlmIGl0IHdvbid0IGFjdHVhbGx5IHdvcmsu
Ci0gICAgICogSW5zdGVhZCwgYWR2ZXJ0aXNlIFJUTV9BTFdBWVNfQUJPUlQg
aW5kaWNhdGluZyB0aGF0IFRTWCBBYm9ydHMgYXJlIHNhZmUKLSAgICAgKiB0
byB1c2UsIGUuZy4gZm9yIG1pdGlnYXRpbmcgTmF0aXZlLUJISS4KLSAgICAg
Ki8KLSAgICBpZiAoIHJ0bV9kaXNhYmxlZCApCi0gICAgewotICAgICAgICBf
X2NsZWFyX2JpdChYODZfRkVBVFVSRV9SVE0sIGZzKTsKLSAgICAgICAgX19z
ZXRfYml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNfQUJPUlQsIGZzKTsKLSAg
ICB9CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBndWVzdF9jb21tb25fZmVh
dHVyZV9hZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-16.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-16.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxMCBTZXAgMjAyNCAxOTo1NToxNSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogSW5mcmFzdHJ1Y3R1cmUgZm9yIENQVUlE
IGxlYWYgMHg4MDAwMDAyMS5lY3gKClNpZ25lZC1vZmYtYnk6IEFuZHJldyBD
b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5
OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0
IGEvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcHVpZC5jIGIvdG9vbHMvbGli
cy9saWdodC9saWJ4bF9jcHVpZC5jCmluZGV4IDVjNjZkMDk0YjJkYy4uNDkz
ZjYxNWM5ZDM1IDEwMDY0NAotLS0gYS90b29scy9saWJzL2xpZ2h0L2xpYnhs
X2NwdWlkLmMKKysrIGIvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcHVpZC5j
CkBAIC0zNDQsNiArMzQ0LDcgQEAgaW50IGxpYnhsX2NwdWlkX3BhcnNlX2Nv
bmZpZyhsaWJ4bF9jcHVpZF9wb2xpY3lfbGlzdCAqcG9saWN5LCBjb25zdCBj
aGFyKiBzdHIpCiAgICAgICAgIENQVUlEX0VOVFJZKDB4MDAwMDAwMDcsICAx
LCBDUFVJRF9SRUdfRURYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBhLCBD
UFVJRF9SRUdfRUFYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBhLCBDUFVJ
RF9SRUdfRURYKSwKKyAgICAgICAgQ1BVSURfRU5UUlkoMHg4MDAwMDAyMSwg
TkEsIENQVUlEX1JFR19FQ1gpLAogI3VuZGVmIE1TUl9FTlRSWQogI3VuZGVm
IENQVUlEX0VOVFJZCiAgICAgfTsKZGlmZiAtLWdpdCBhL3Rvb2xzL21pc2Mv
eGVuLWNwdWlkLmMgYi90b29scy9taXNjL3hlbi1jcHVpZC5jCmluZGV4IGIy
NzdiNzhiNjU0Zi4uNzcwNDk4MGI4YTliIDEwMDY0NAotLS0gYS90b29scy9t
aXNjL3hlbi1jcHVpZC5jCisrKyBiL3Rvb2xzL21pc2MveGVuLWNwdWlkLmMK
QEAgLTI0NCw2ICsyNDQsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0
IHN0cl9tMTBBbFs2NF0gPQogICAgIFs2Ml0gPSAiaXRzLW5vIiwKIH07CiAK
K3N0YXRpYyBjb25zdCBjaGFyICpjb25zdCBzdHJfZTIxY1szMl0gPQorewor
fTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAgY29uc3QgY2hhciAq
bmFtZTsKICAgICBjb25zdCBjaGFyICphYmJyOwpAQCAtMjY4LDYgKzI3Miw3
IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogICAgIHsgIkNQVUlEIDB4MDAw
MDAwMDc6MS5lZHgiLCAgICAgIjdkMSIsIHN0cl83ZDEgfSwKICAgICB7ICJN
U1JfQVJDSF9DQVBTLmxvIiwgICAgICAgICAibTEwQWwiLCBzdHJfbTEwQWwg
fSwKICAgICB7ICJNU1JfQVJDSF9DQVBTLmhpIiwgICAgICAgICAibTEwQWgi
LCBzdHJfbTEwQWwgKyAzMiB9LAorICAgIHsgIkNQVUlEIDB4ODAwMDAwMjEu
ZWN4IiwgICAgICAiZTIxYyIsIHN0cl9lMjFjIH0sCiB9OwogCiAjZGVmaW5l
IENPTF9BTElHTiAiMjQiCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1
LXBvbGljeS5jIGIveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYwppbmRleCA0
OThmYTRmOTk1N2MuLmI0ZDNmYTgyNDM2MyAxMDA2NDQKLS0tIGEveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYworKysgYi94ZW4vYXJjaC94ODYvY3B1LXBv
bGljeS5jCkBAIC0zNDEsNyArMzQxLDYgQEAgc3RhdGljIHZvaWQgcmVjYWxj
dWxhdGVfbWlzYyhzdHJ1Y3QgY3B1X3BvbGljeSAqcCkKICAgICAgICAgcC0+
ZXh0ZC5yYXdbMHgxZl0gPSBFTVBUWV9MRUFGOyAvKiBTRVYgKi8KICAgICAg
ICAgcC0+ZXh0ZC5yYXdbMHgyMF0gPSBFTVBUWV9MRUFGOyAvKiBQbGF0Zm9y
bSBRb1MgKi8KICAgICAgICAgcC0+ZXh0ZC5yYXdbMHgyMV0uYiA9IDA7Ci0g
ICAgICAgIHAtPmV4dGQucmF3WzB4MjFdLmMgPSAwOwogICAgICAgICBwLT5l
eHRkLnJhd1sweDIxXS5kID0gMDsKICAgICAgICAgYnJlYWs7CiAgICAgfQpk
aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS9jb21tb24uYyBiL3hlbi9h
cmNoL3g4Ni9jcHUvY29tbW9uLmMKaW5kZXggMTRhM2E5NzgwNmYwLi41ZDY0
ODYyMmZlNmYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvY29tbW9u
LmMKKysrIGIveGVuL2FyY2gveDg2L2NwdS9jb21tb24uYwpAQCAtNDY5LDcg
KzQ2OSw5IEBAIHN0YXRpYyB2b2lkIGdlbmVyaWNfaWRlbnRpZnkoc3RydWN0
IGNwdWluZm9feDg2ICpjKQogCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZl
bCA+PSAweDgwMDAwMDA4KQogCQljLT54ODZfY2FwYWJpbGl0eVtGRUFUVVJF
U0VUX2U4Yl0gPSBjcHVpZF9lYngoMHg4MDAwMDAwOCk7CiAJaWYgKGMtPmV4
dGVuZGVkX2NwdWlkX2xldmVsID49IDB4ODAwMDAwMjEpCi0JCWMtPng4Nl9j
YXBhYmlsaXR5W0ZFQVRVUkVTRVRfZTIxYV0gPSBjcHVpZF9lYXgoMHg4MDAw
MDAyMSk7CisJCWNwdWlkKDB4ODAwMDAwMjEsCisJCSAgICAgICZjLT54ODZf
Y2FwYWJpbGl0eVtGRUFUVVJFU0VUX2UyMWFdLCAmdG1wLAorCQkgICAgICAm
Yy0+eDg2X2NhcGFiaWxpdHlbRkVBVFVSRVNFVF9lMjFjXSwgJnRtcCk7CiAK
IAkvKiBJbnRlbC1kZWZpbmVkIGZsYWdzOiBsZXZlbCAweDAwMDAwMDA3ICov
CiAJaWYgKGMtPmNwdWlkX2xldmVsID49IDcpIHsKZGlmZiAtLWdpdCBhL3hl
bi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0LmggYi94
ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCmlu
ZGV4IDk5YzRkYzFmZmQ0MC4uMDNjZDE0MTljNWNiIDEwMDY0NAotLS0gYS94
ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCisr
KyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0
LmgKQEAgLTMzNyw2ICszMzcsOCBAQCBYRU5fQ1BVRkVBVFVSRShSRkRTX0NM
RUFSLCAgICAgICAgIDE2KjMyKzI4KSAvKiFBIFJlZ2lzdGVyIEZpbGUocykg
Y2xlYXJlZCBieSBWRQogLyogSW50ZWwtZGVmaW5lZCBDUFUgZmVhdHVyZXMs
IE1TUl9BUkNIX0NBUFMgMHgxMGEuZWR4LCB3b3JkIDE3IChleHByZXNzIGlu
IHRlcm1zIG9mIHdvcmQgMTYpICovCiBYRU5fQ1BVRkVBVFVSRShJVFNfTk8s
ICAgICAgICAgICAgIDE2KjMyKzYyKSAvKiFBIE5vIEluZGlyZWN0IFRhcmdl
dCBTZWxlY3Rpb24gKi8KIAorLyogQU1ELWRlZmluZWQgQ1BVIGZlYXR1cmVz
LCBDUFVJRCBsZXZlbCAweDgwMDAwMDIxLmVjeCwgd29yZCAxOCAqLworCiAj
ZW5kaWYgLyogWEVOX0NQVUZFQVRVUkUgKi8KIAogLyogQ2xlYW4gdXAgZnJv
bSBhIGRlZmF1bHQgaW5jbHVkZS4gIENsb3NlIHRoZSBlbnVtIChmb3IgQyku
ICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbGliL3g4Ni9jcHUt
cG9saWN5LmggYi94ZW4vaW5jbHVkZS94ZW4vbGliL3g4Ni9jcHUtcG9saWN5
LmgKaW5kZXggYmEyOWJmZTliNDE0Li43YmI5MGVkZjgzMGQgMTAwNjQ0Ci0t
LSBhL3hlbi9pbmNsdWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaAorKysg
Yi94ZW4vaW5jbHVkZS94ZW4vbGliL3g4Ni9jcHUtcG9saWN5LmgKQEAgLTIy
LDYgKzIyLDcgQEAKICNkZWZpbmUgRkVBVFVSRVNFVF83ZDEgICAgICAgMTUg
LyogMHgwMDAwMDAwNzoxLmVkeCAgICAqLwogI2RlZmluZSBGRUFUVVJFU0VU
X20xMEFsICAgICAxNiAvKiAweDAwMDAwMTBhLmVheCAgICAgICovCiAjZGVm
aW5lIEZFQVRVUkVTRVRfbTEwQWggICAgIDE3IC8qIDB4MDAwMDAxMGEuZWR4
ICAgICAgKi8KKyNkZWZpbmUgRkVBVFVSRVNFVF9lMjFjICAgICAgMTggLyog
MHg4MDAwMDAyMS5lY3ggICAgICAqLwogCiBzdHJ1Y3QgY3B1aWRfbGVhZgog
ewpAQCAtMzI3LDcgKzMyOCwxMSBAQCBzdHJ1Y3QgY3B1X3BvbGljeQogICAg
ICAgICAgICAgdWludDE2X3QgdWNvZGVfc2l6ZTsgLyogVW5pdHMgb2YgMTYg
Ynl0ZXMgKi8KICAgICAgICAgICAgIHVpbnQ4X3QgIHJhcF9zaXplOyAgIC8q
IFVuaXRzIG9mIDggZW50cmllcyAqLwogICAgICAgICAgICAgdWludDhfdCAg
Ojg7Ci0gICAgICAgICAgICB1aW50MzJfdCAvKiBjICovOjMyLCAvKiBkICov
OjMyOworICAgICAgICAgICAgdW5pb24geworICAgICAgICAgICAgICAgIHVp
bnQzMl90IGUyMWM7CisgICAgICAgICAgICAgICAgc3RydWN0IHsgREVDTF9C
SVRGSUVMRChlMjFjKTsgfTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAg
ICB1aW50MzJfdCAvKiBkICovOjMyOwogICAgICAgICB9OwogICAgIH0gZXh0
ZDsKIApkaWZmIC0tZ2l0IGEveGVuL2xpYi94ODYvY3B1aWQuYyBiL3hlbi9s
aWIveDg2L2NwdWlkLmMKaW5kZXggMDdlNTUwMTkxNDQ4Li4yMmZkMTYyYzlk
Y2EgMTAwNjQ0Ci0tLSBhL3hlbi9saWIveDg2L2NwdWlkLmMKKysrIGIveGVu
L2xpYi94ODYvY3B1aWQuYwpAQCAtODEsNiArODEsNyBAQCB2b2lkIHg4Nl9j
cHVfcG9saWN5X3RvX2ZlYXR1cmVzZXQoCiAgICAgZnNbRkVBVFVSRVNFVF83
ZDFdICAgICAgID0gcC0+ZmVhdC5fN2QxOwogICAgIGZzW0ZFQVRVUkVTRVRf
bTEwQWxdICAgICA9IHAtPmFyY2hfY2Fwcy5sbzsKICAgICBmc1tGRUFUVVJF
U0VUX20xMEFoXSAgICAgPSBwLT5hcmNoX2NhcHMuaGk7CisgICAgZnNbRkVB
VFVSRVNFVF9lMjFjXSAgICAgID0gcC0+ZXh0ZC5lMjFjOwogfQogCiB2b2lk
IHg4Nl9jcHVfZmVhdHVyZXNldF90b19wb2xpY3koCkBAIC0xMDQsNiArMTA1
LDcgQEAgdm9pZCB4ODZfY3B1X2ZlYXR1cmVzZXRfdG9fcG9saWN5KAogICAg
IHAtPmZlYXQuXzdkMSAgICAgICAgICAgICA9IGZzW0ZFQVRVUkVTRVRfN2Qx
XTsKICAgICBwLT5hcmNoX2NhcHMubG8gICAgICAgICAgPSBmc1tGRUFUVVJF
U0VUX20xMEFsXTsKICAgICBwLT5hcmNoX2NhcHMuaGkgICAgICAgICAgPSBm
c1tGRUFUVVJFU0VUX20xMEFoXTsKKyAgICBwLT5leHRkLmUyMWMgICAgICAg
ICAgICAgPSBmc1tGRUFUVVJFU0VUX2UyMWNdOwogfQogCiB2b2lkIHg4Nl9j
cHVfcG9saWN5X3JlY2FsY19zeW50aChzdHJ1Y3QgY3B1X3BvbGljeSAqcCkK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-17.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-17.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBTZXAgMjAyNCAxMToyODozOSArMDEwMApTdWJq
ZWN0OiB4ODYvdWNvZGU6IERpZ2VzdHMgZm9yIFRTQSBtaWNyb2NvZGUKCkFN
RCBhcmUgcmVsZWFzaW5nIG1pY3JvY29kZSBmb3IgVFNBLCBzbyBleHRlbmQg
dGhlIGtub3duLXByb3ZlbmFuY2UgbGlzdCB3aXRoCnRoZWlyIGhhc2hlcy4g
IFRoZXNlIHdlcmUgcHJvZHVjZWQgYmVmb3JlIHRoZSByZW1lZGlhdGlvbiBv
ZiB0aGUgbWljcm9jb2RlCnNpZ25hdHVyZSBpc3N1ZXMgKHRoZSBlbnRyeXNp
Z24gdnVsbmVyYWJpbGl0eSksIHNvIGNhbiBiZSBPUy1sb2FkZWQgb24Kb3V0
LW9mLWRhdGUgZmlybXdhcmUuCgpJbmNsdWRlIGFuIG9mZi1ieS1kZWZhdWx0
IGNoZWNrIGZvciB0aGUgc29ydGVkLW5lc3Mgb2YgcGF0Y2hfZGlnZXN0c1td
LiAgSXQncwpub3Qgd29ydGggcnVubmluZyBnZW5lcmFsbHkgdW5kZXIgU0VM
Rl9URVNUUywgYnV0IGlzIHVzZWZ1bCB3aGVuIGVkaXRpbmcgdGhlCmRpZ2Vz
dCBsaXN0LgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NzEgLyBDVkUtMjAyNC0z
NjM1MCAvIENWRS0yMDI0LTM2MzU3LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQWNrZWQtYnk6
IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQg
YS94ZW4vYXJjaC94ODYvY3B1L21pY3JvY29kZS9hbWQtcGF0Y2gtZGlnZXN0
cy5jIGIveGVuL2FyY2gveDg2L2NwdS9taWNyb2NvZGUvYW1kLXBhdGNoLWRp
Z2VzdHMuYwppbmRleCBkMzI3NjEyMjY3MTIuLmQyYzRlMDE3OGExZSAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9taWNyb2NvZGUvYW1kLXBhdGNo
LWRpZ2VzdHMuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L21pY3JvY29kZS9h
bWQtcGF0Y2gtZGlnZXN0cy5jCkBAIC04MCw2ICs4MCwxNSBAQAogICAgICAg
ICAweDBkLCAweDViLCAweDY1LCAweDM0LCAweDY5LCAweGIyLCAweDYyLCAw
eDIxLAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGEwMDEx
ZDcsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHgzNSwgMHgwNywgMHhj
ZCwgMHg0MCwgMHg5NCwgMHhiYywgMHg4MSwgMHg2YiwKKyAgICAgICAgMHhm
YywgMHg2MSwgMHg1NiwgMHgxYSwgMHhlMiwgMHhkYiwgMHg5NiwgMHgxMiwK
KyAgICAgICAgMHgxYywgMHgxYywgMHgzMSwgMHhiMSwgMHgwMiwgMHg2Ziwg
MHhlNSwgMHhkMiwKKyAgICAgICAgMHhmZSwgMHgxYiwgMHgwNCwgMHgwMywg
MHgyYywgMHg4ZiwgMHg0YywgMHgzNiwKKyAgICB9LAorfSwKIHsKICAgICAu
cGF0Y2hfaWQgPSAweDBhMDAxMjM4LAogICAgIC5kaWdlc3QgPSB7CkBAIC04
OSw2ICs5OCwxNSBAQAogICAgICAgICAweGMwLCAweGNkLCAweDMzLCAweGYy
LCAweDhkLCAweGY5LCAweGVmLCAweDU5LAogICAgIH0sCiB9LAoreworICAg
IC5wYXRjaF9pZCA9IDB4MGEwMDEyM2IsCisgICAgLmRpZ2VzdCA9IHsKKyAg
ICAgICAgMHhlZiwgMHhhMSwgMHgxZSwgMHg3MSwgMHhmMSwgMHhjMywgMHgy
YywgMHhlMiwKKyAgICAgICAgMHhjMywgMHhlZiwgMHg2OSwgMHg0MSwgMHg3
YSwgMHg1NCwgMHhjYSwgMHhjMywKKyAgICAgICAgMHg4ZiwgMHg2MiwgMHg4
NCwgMHhlZSwgMHhjMiwgMHgzOSwgMHhkOSwgMHgyOCwKKyAgICAgICAgMHg5
NSwgMHhhNywgMHgxMiwgMHg0OSwgMHgxZSwgMHgzMCwgMHg3MSwgMHg3MiwK
KyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhMDA4MjBjLAog
ICAgIC5kaWdlc3QgPSB7CkBAIC05OCw2ICsxMTYsMTUgQEAKICAgICAgICAg
MHhlMSwgMHgzYiwgMHg4ZCwgMHhiMiwgMHhmOCwgMHgyMiwgMHgwMywgMHhl
MiwKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBhMDA4MjBk
LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4ZjksIDB4MmEsIDB4YzAs
IDB4ZjQsIDB4OWUsIDB4YTQsIDB4ODcsIDB4YTQsCisgICAgICAgIDB4N2Qs
IDB4ODcsIDB4MDAsIDB4ZmQsIDB4YWIsIDB4ZGEsIDB4MTksIDB4Y2EsCisg
ICAgICAgIDB4MjYsIDB4NTEsIDB4MzIsIDB4YzEsIDB4NTcsIDB4OTEsIDB4
ZGYsIDB4YzEsCisgICAgICAgIDB4MDUsIDB4ZWIsIDB4MDEsIDB4N2MsIDB4
NWEsIDB4OTUsIDB4MjEsIDB4YjcsCisgICAgfSwKK30sCiB7CiAgICAgLnBh
dGNoX2lkID0gMHgwYTEwMTE0OCwKICAgICAuZGlnZXN0ID0gewpAQCAtMTA3
LDYgKzEzNCwxNSBAQAogICAgICAgICAweGYxLCAweDVlLCAweGIwLCAweGRl
LCAweGI0LCAweDk4LCAweGFlLCAweGM0LAogICAgIH0sCiB9LAoreworICAg
IC5wYXRjaF9pZCA9IDB4MGExMDExNGMsCisgICAgLmRpZ2VzdCA9IHsKKyAg
ICAgICAgMHg5ZSwgMHhiNiwgMHhhMiwgMHhkOSwgMHg4NywgMHgzOCwgMHhj
NSwgMHg2NCwKKyAgICAgICAgMHhkOCwgMHg4OCwgMHhmYSwgMHg3OCwgMHg5
OCwgMHhmOSwgMHg2ZiwgMHg3NCwKKyAgICAgICAgMHgzOSwgMHg5MCwgMHgx
YiwgMHhhNSwgMHhjZiwgMHg1ZSwgMHhiNCwgMHgyYSwKKyAgICAgICAgMHgw
MiwgMHhmZiwgMHhkNCwgMHg4YywgMHg3MSwgMHg4YiwgMHhlMiwgMHhjMCwK
KyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhMTAxMjQ4LAog
ICAgIC5kaWdlc3QgPSB7CkBAIC0xMTYsNiArMTUyLDE1IEBACiAgICAgICAg
IDB4MWIsIDB4N2QsIDB4NjQsIDB4OWQsIDB4NGIsIDB4NTMsIDB4MTMsIDB4
NzUsCiAgICAgfSwKIH0sCit7CisgICAgLnBhdGNoX2lkID0gMHgwYTEwMTI0
YywKKyAgICAuZGlnZXN0ID0geworICAgICAgICAweDI5LCAweGVhLCAweGYx
LCAweDJjLCAweGIyLCAweGU0LCAweGVmLCAweDkwLAorICAgICAgICAweGE0
LCAweGNkLCAweDFkLCAweDg2LCAweDk3LCAweDE3LCAweDYxLCAweDQ2LAor
ICAgICAgICAweGZjLCAweDIyLCAweGNiLCAweDU3LCAweDc1LCAweDE5LCAw
eGM4LCAweGNjLAorICAgICAgICAweDBjLCAweGY1LCAweGJjLCAweGFjLCAw
eDgxLCAweDlkLCAweDlhLCAweGQyLAorICAgIH0sCit9LAogewogICAgIC5w
YXRjaF9pZCA9IDB4MGExMDgxMDgsCiAgICAgLmRpZ2VzdCA9IHsKQEAgLTEy
NSw2ICsxNzAsMTUgQEAKICAgICAgICAgMHgyOCwgMHgxZSwgMHg5YywgMHg1
OSwgMHg2OSwgMHg5OSwgMHg0ZCwgMHgxNiwKICAgICB9LAogfSwKK3sKKyAg
ICAucGF0Y2hfaWQgPSAweDBhMTA4MTA5LAorICAgIC5kaWdlc3QgPSB7Cisg
ICAgICAgIDB4ODUsIDB4YjQsIDB4YmQsIDB4N2MsIDB4NDksIDB4YTcsIDB4
YmQsIDB4ZmEsCisgICAgICAgIDB4NDksIDB4MzYsIDB4ODAsIDB4ODEsIDB4
YzUsIDB4YjcsIDB4MzksIDB4MWIsCisgICAgICAgIDB4OWEsIDB4YWEsIDB4
NTAsIDB4ZGUsIDB4OWIsIDB4ZTksIDB4MzIsIDB4MzUsCisgICAgICAgIDB4
NDIsIDB4N2UsIDB4NTEsIDB4NGYsIDB4NTIsIDB4MmMsIDB4MjgsIDB4NTks
CisgICAgfSwKK30sCiB7CiAgICAgLnBhdGNoX2lkID0gMHgwYTIwMTAyZCwK
ICAgICAuZGlnZXN0ID0gewpAQCAtMTM0LDYgKzE4OCwxNSBAQAogICAgICAg
ICAweDhjLCAweGU5LCAweDE5LCAweDNlLCAweGNjLCAweDNmLCAweDdiLCAw
eGI0LAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGEyMDEw
MmUsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHhiZSwgMHgxZiwgMHgz
MiwgMHgwNCwgMHgwZCwgMHgzYywgMHg5YywgMHhkZCwKKyAgICAgICAgMHhl
MSwgMHhhNCwgMHhiZiwgMHg3NiwgMHgzYSwgMHhlYywgMHhjMiwgMHhmNiwK
KyAgICAgICAgMHgxMSwgMHgwMCwgMHhhNywgMHhhZiwgMHgwZiwgMHhlNSwg
MHgwMiwgMHhjNSwKKyAgICAgICAgMHg1NCwgMHgzYSwgMHgxZiwgMHg4Yywg
MHgxNiwgMHhiNSwgMHhmZiwgMHhiZSwKKyAgICB9LAorfSwKIHsKICAgICAu
cGF0Y2hfaWQgPSAweDBhMjAxMjEwLAogICAgIC5kaWdlc3QgPSB7CkBAIC0x
NDMsNiArMjA2LDE1IEBACiAgICAgICAgIDB4ZjcsIDB4NTUsIDB4ZjAsIDB4
MTMsIDB4YmIsIDB4MjIsIDB4ZjYsIDB4NDEsCiAgICAgfSwKIH0sCit7Cisg
ICAgLnBhdGNoX2lkID0gMHgwYTIwMTIxMSwKKyAgICAuZGlnZXN0ID0gewor
ICAgICAgICAweDY5LCAweGExLCAweDE3LCAweGVjLCAweGQwLCAweGY2LCAw
eDZjLCAweDk1LAorICAgICAgICAweGUyLCAweDFlLCAweGM1LCAweDU5LCAw
eDFhLCAweDUyLCAweDBhLCAweDI3LAorICAgICAgICAweGM0LCAweGVkLCAw
eGQ1LCAweDU5LCAweDFmLCAweGJmLCAweDAwLCAweGZmLAorICAgICAgICAw
eDA4LCAweDg4LCAweGI1LCAweGUxLCAweDEyLCAweGI2LCAweGNjLCAweDI3
LAorICAgIH0sCit9LAogewogICAgIC5wYXRjaF9pZCA9IDB4MGE0MDQxMDcs
CiAgICAgLmRpZ2VzdCA9IHsKQEAgLTE1Miw2ICsyMjQsMTUgQEAKICAgICAg
ICAgMHgxMywgMHhiYywgMHhjNSwgMHgyNSwgMHhlNCwgMHhjNSwgMHhjMywg
MHg5OSwKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBhNDA0
MTA4LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4NjksIDB4NjcsIDB4
NDMsIDB4MDYsIDB4ZjgsIDB4MGMsIDB4NjIsIDB4ZGMsCisgICAgICAgIDB4
YTQsIDB4MjEsIDB4MzAsIDB4NGYsIDB4MGYsIDB4MjEsIDB4MmMsIDB4Y2Is
CisgICAgICAgIDB4Y2MsIDB4MzcsIDB4ZjEsIDB4MWMsIDB4YzMsIDB4Zjgs
IDB4MmYsIDB4MTksCisgICAgICAgIDB4ZGYsIDB4NTMsIDB4NTMsIDB4NDYs
IDB4YjEsIDB4MTUsIDB4ZWEsIDB4MDAsCisgICAgfSwKK30sCiB7CiAgICAg
LnBhdGNoX2lkID0gMHgwYTUwMDAxMSwKICAgICAuZGlnZXN0ID0gewpAQCAt
MTYxLDYgKzI0MiwxNSBAQAogICAgICAgICAweDExLCAweDVlLCAweDk2LCAw
eDdlLCAweDcxLCAweGU5LCAweGZjLCAweDc0LAogICAgIH0sCiB9LAorewor
ICAgIC5wYXRjaF9pZCA9IDB4MGE1MDAwMTIsCisgICAgLmRpZ2VzdCA9IHsK
KyAgICAgICAgMHhlYiwgMHg3NCwgMHgwZCwgMHg0NywgMHhhMSwgMHg4ZSwg
MHgwOSwgMHhlNCwKKyAgICAgICAgMHg5MywgMHg0YywgMHhhZCwgMHgwMywg
MHgzMiwgMHg0YywgMHgzOCwgMHgxNiwKKyAgICAgICAgMHgxMCwgMHgzOSwg
MHhkZCwgMHgwNiwgMHhhYSwgMHhjZSwgMHhkNiwgMHgwZiwKKyAgICAgICAg
MHg2MiwgMHg4MywgMHg5ZCwgMHg4ZSwgMHg2NCwgMHg1NSwgMHhiZSwgMHg2
MywKKyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhNjAxMjA5
LAogICAgIC5kaWdlc3QgPSB7CkBAIC0xNzAsNiArMjYwLDE1IEBACiAgICAg
ICAgIDB4ZTgsIDB4NzMsIDB4ZTIsIDB4ZDYsIDB4ZGIsIDB4ZDIsIDB4Nzcs
IDB4MWQsCiAgICAgfSwKIH0sCit7CisgICAgLnBhdGNoX2lkID0gMHgwYTYw
MTIwYSwKKyAgICAuZGlnZXN0ID0geworICAgICAgICAweDBjLCAweDhiLCAw
eDNkLCAweGZkLCAweDUyLCAweDUyLCAweDg1LCAweDdkLAorICAgICAgICAw
eDIwLCAweDNhLCAweGUxLCAweDdlLCAweGE0LCAweDIxLCAweDNiLCAweDdi
LAorICAgICAgICAweDE3LCAweDg2LCAweGFlLCAweGFjLCAweDEzLCAweGI4
LCAweDYzLCAweDlkLAorICAgICAgICAweDA2LCAweDAxLCAweGQwLCAweGEw
LCAweDUxLCAweDlhLCAweDkxLCAweDJjLAorICAgIH0sCit9LAogewogICAg
IC5wYXRjaF9pZCA9IDB4MGE3MDQxMDcsCiAgICAgLmRpZ2VzdCA9IHsKQEAg
LTE3OSw2ICsyNzgsMTUgQEAKICAgICAgICAgMHg2NCwgMHgzOSwgMHg3MSwg
MHg4YywgMHhjZSwgMHhlNywgMHg0MSwgMHgzOSwKICAgICB9LAogfSwKK3sK
KyAgICAucGF0Y2hfaWQgPSAweDBhNzA0MTA4LAorICAgIC5kaWdlc3QgPSB7
CisgICAgICAgIDB4ZDcsIDB4NTUsIDB4MTUsIDB4MmIsIDB4ZmUsIDB4YzQs
IDB4YmMsIDB4OTMsCisgICAgICAgIDB4ZWMsIDB4OTEsIDB4YTAsIDB4YWUs
IDB4NDUsIDB4YjcsIDB4YzMsIDB4OTgsCisgICAgICAgIDB4NGUsIDB4ZmYs
IDB4NjEsIDB4NzcsIDB4ODgsIDB4YzIsIDB4NzAsIDB4NDksCisgICAgICAg
IDB4ZTAsIDB4M2EsIDB4MWQsIDB4ODQsIDB4MzgsIDB4NTIsIDB4YmYsIDB4
NWEsCisgICAgfSwKK30sCiB7CiAgICAgLnBhdGNoX2lkID0gMHgwYTcwNTIw
NiwKICAgICAuZGlnZXN0ID0gewpAQCAtMTg4LDYgKzI5NiwxNSBAQAogICAg
ICAgICAweDAzLCAweDM1LCAweGU5LCAweGJlLCAweGZiLCAweDA2LCAweGRm
LCAweGZjLAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGE3
MDUyMDgsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHgzMCwgMHgxZCwg
MHg1NSwgMHgyNCwgMHhiYywgMHg2YiwgMHg1YSwgMHgxOSwKKyAgICAgICAg
MHgwYywgMHg3ZCwgMHgxZCwgMHg3NCwgMHhhYSwgMHhkMSwgMHhlYiwgMHhk
MiwKKyAgICAgICAgMHgxNiwgMHg2MiwgMHhmNywgMHg1YiwgMHhlMSwgMHgx
ZiwgMHgxOCwgMHgxMSwKKyAgICAgICAgMHg1YywgMHhmMCwgMHg5NCwgMHg5
MCwgMHgyNiwgMHhlYywgMHg2OSwgMHhmZiwKKyAgICB9LAorfSwKIHsKICAg
ICAucGF0Y2hfaWQgPSAweDBhNzA4MDA3LAogICAgIC5kaWdlc3QgPSB7CkBA
IC0xOTcsNiArMzE0LDE1IEBACiAgICAgICAgIDB4ZGYsIDB4OTIsIDB4NzMs
IDB4ODQsIDB4ODcsIDB4M2MsIDB4NzMsIDB4OTMsCiAgICAgfSwKIH0sCit7
CisgICAgLnBhdGNoX2lkID0gMHgwYTcwODAwOCwKKyAgICAuZGlnZXN0ID0g
eworICAgICAgICAweDA4LCAweDZlLCAweGYwLCAweDIyLCAweDRiLCAweDhl
LCAweGM0LCAweDQ2LAorICAgICAgICAweDU4LCAweDM0LCAweGU2LCAweDQ3
LCAweGEyLCAweDI4LCAweGZkLCAweGFiLAorICAgICAgICAweDIyLCAweDNk
LCAweGRkLCAweGQ4LCAweDUyLCAweDllLCAweDFkLCAweDE2LAorICAgICAg
ICAweGZhLCAweDAxLCAweDY4LCAweDE0LCAweDc5LCAweDNlLCAweGU4LCAw
eDZiLAorICAgIH0sCit9LAogewogICAgIC5wYXRjaF9pZCA9IDB4MGE3MGMw
MDUsCiAgICAgLmRpZ2VzdCA9IHsKQEAgLTIwNiw2ICszMzIsMTUgQEAKICAg
ICAgICAgMHhlZSwgMHg0OSwgMHhhYywgMHhlMSwgMHg4YiwgMHgxMywgMHhj
NSwgMHgxMywKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBh
NzBjMDA4LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4MGYsIDB4ZGIs
IDB4MzcsIDB4YTEsIDB4MTAsIDB4YWYsIDB4ZDQsIDB4MjEsCisgICAgICAg
IDB4OTQsIDB4MGQsIDB4YTQsIDB4YTIsIDB4ZTksIDB4ODYsIDB4NmMsIDB4
MGUsCisgICAgICAgIDB4ODUsIDB4N2MsIDB4MzYsIDB4MzAsIDB4YTMsIDB4
M2EsIDB4NzgsIDB4NjYsCisgICAgICAgIDB4MTgsIDB4MTAsIDB4NjAsIDB4
MGQsIDB4NzgsIDB4M2QsIDB4NDQsIDB4ZDAsCisgICAgfSwKK30sCiB7CiAg
ICAgLnBhdGNoX2lkID0gMHgwYWEwMDExNiwKICAgICAuZGlnZXN0ID0gewpA
QCAtMjI0LDMgKzM1OSwxMiBAQAogICAgICAgICAweDY4LCAweDJmLCAweDQ2
LCAweGVlLCAweGZlLCAweGM2LCAweDZkLCAweGVmLAogICAgIH0sCiB9LAor
eworICAgIC5wYXRjaF9pZCA9IDB4MGFhMDAyMTYsCisgICAgLmRpZ2VzdCA9
IHsKKyAgICAgICAgMHg3OSwgMHhmYiwgMHg1YiwgMHg5ZiwgMHhiNiwgMHhl
NiwgMHhhOCwgMHhmNSwKKyAgICAgICAgMHg0ZSwgMHg3YywgMHg0ZiwgMHg4
ZSwgMHgxZCwgMHhhZCwgMHhkMCwgMHgwOCwKKyAgICAgICAgMHhjMiwgMHg0
MywgMHg3YywgMHg4YiwgMHhlNiwgMHhkYiwgMHhkMCwgMHhkMiwKKyAgICAg
ICAgMHhlOCwgMHgzOSwgMHgyNiwgMHhjMSwgMHhlNSwgMHg1YSwgMHg0OCwg
MHhmMSwKKyAgICB9LAorfSwK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-18.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-18.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogV2VkLCAyIEFwciAyMDI1IDAzOjE4OjU5ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZWFycmFuZ2UgVkVSVyBhbmQgTU9OSVRPUiBpbiBt
d2FpdF9pZGxlX3dpdGhfaGludHMoKQoKSW4gb3JkZXIgdG8gbWl0aWdhdGUg
VFNBLCBYZW4gd2lsbCBuZWVkIHRvIGlzc3VlIFZFUlcgYmVmb3JlIGdvaW5n
IGlkbGUuCgpPbiBBTUQgQ1BVcywgdGhlIFZFUlcgc2NydWJiaW5nIHNpZGUg
ZWZmZWN0cyBjYW5jZWwgYW4gYWN0aXZlIE1PTklUT1IsIGNhdXNpbmcKdGhl
IE1XQUlUIHRvIGV4aXQgd2l0aG91dCBlbnRlcmluZyBhbiBpZGxlIHN0YXRl
LiAgVGhlcmVmb3JlIHRoZSBWRVJXIG11c3QgYmUKYWhlYWQgb2YgTU9OSVRP
Ui4KClNwbGl0IHNwZWNfY3RybF9lbnRlcl9pZGxlKCkgaW4gdHdvIGFuZCBh
bGxvdyB0aGUgVkVSVyBhc3BlY3QgdG8gYmUgaGFuZGxlZApzZXBhcmF0ZWx5
LiAgV2hpbGUgYWRqdXN0aW5nLCB1cGRhdGUgYSBzdGFsZSBjb21tZW50IGNv
bmNlcm5pbmcgTVNCRFM7IG1vcmUKaXNzdWVzIGhhdmUgYmVlbiBtaXRpZ2F0
ZWQgdXNpbmcgVkVSVyBzaW5jZSBpdCB3YXMgd3JpdHRlbi4KCkJ5IG1vdmlu
ZyBWRVJXIGVhcmxpZXIsIGl0IGlzIGFoZWFkIG9mIHRoZSBkZXRlcm1pbmF0
aW9uIG9mIHdoZXRoZXIgdG8gZ28KaWRsZS4gIFdlIGNhbid0IG1vdmUgdGhl
IGNoZWNrIG9uIHNvZnRpcnFfcGVuZGluZyAoZm9yIGNvcnJlY3RuZXNzIHJl
YXNvbnMpLApidXQgd2UgY2FuIGR1cGxpY2F0ZSBpdCBlYXJsaWVyIGFzIGEg
YmVzdCBlZmZvcnQgYXR0ZW1wdCB0byBza2lwIHRoZQpzcGVjdWxhdGl2ZSBv
dmVyaGVhZC4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDcxIC8gQ1ZFLTIwMjQt
MzYzNTAgLyBDVkUtMjAyNC0zNjM1Ny4KClNpZ25lZC1vZmYtYnk6IEFuZHJl
dyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2Vk
LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0t
Z2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBiL3hlbi9hcmNo
L3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXggMGI3ZTc2MzZiYzBjLi4zYmEx
YmQ1MDBkYWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9p
ZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYwpAQCAt
NDYyLDkgKzQ2MiwxOCBAQCBfX2luaXRjYWxsKGNwdV9pZGxlX2tleV9pbml0
KTsKIHZvaWQgbXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBl
YXgsIHVuc2lnbmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNw
dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKyAgICBzdHJ1Y3QgY3B1X2luZm8g
KmluZm8gPSBnZXRfY3B1X2luZm8oKTsKICAgICBpcnFfY3B1c3RhdF90ICpz
dGF0ID0gJmlycV9zdGF0W2NwdV07CiAgICAgY29uc3QgdW5zaWduZWQgaW50
ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZzdGF0LT5fX3NvZnRpcnFfcGVu
ZGluZzsKIAorICAgIC8qCisgICAgICogSGV1cmlzdGljOiBpZiB3ZSdyZSBk
ZWZpbml0ZWx5IG5vdCBnb2luZyB0byBpZGxlLCBiYWlsIGVhcmx5IGFzIHRo
ZQorICAgICAqIHNwZWN1bGF0aXZlIHNhZmV0eSBjYW4gYmUgZXhwZW5zaXZl
LiAgVGhpcyBpcyBhIHBlcmZvcm1hbmNlCisgICAgICogY29uc2lkZXJhdGlv
biBub3QgYSBjb3JyZWN0bmVzcyBpc3N1ZS4KKyAgICAgKi8KKyAgICBpZiAo
ICp0aGlzX3NvZnRpcnFfcGVuZGluZyApCisgICAgICAgIHJldHVybjsKKwog
ICAgIC8qCiAgICAgICogQnkgc2V0dGluZyBpbl9td2FpdCwgd2UgcHJvbWlz
ZSB0byBvdGhlciBDUFVzIHRoYXQgd2UnbGwgbm90aWNlIGNoYW5nZXMKICAg
ICAgKiB0byBfX3NvZnRpcnFfcGVuZGluZyB3aXRob3V0IGJlaW5nIHNlbnQg
YW4gSVBJLiAgV2UgYWNoaWV2ZSB0aGlzIGJ5CkBAIC00NzgsMTUgKzQ4Nywx
OSBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQg
ZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogICAgICAgICAgICAgICAgICAgICIi
LCBYODZfQlVHX01PTklUT1IsCiAgICAgICAgICAgICAgICAgICAgW2luX213
YWl0XSAiPW0iIChzdGF0LT5pbl9td2FpdCkpOwogCisgICAgLyoKKyAgICAg
KiBPbiBBTUQgc3lzdGVtcywgc2lkZSBlZmZlY3RzIGZyb20gVkVSVyBjYW5j
ZWwgTU9OSVRPUiwgY2F1c2luZyBNV0FJVCB0bworICAgICAqIHdha2UgdXAg
aW1tZWRpYXRlbHkuICBUaGVyZWZvcmUsIFZFUlcgbXVzdCBjb21lIGFoZWFk
IG9mIE1PTklUT1IuCisgICAgICovCisgICAgX19zcGVjX2N0cmxfZW50ZXJf
aWRsZV92ZXJ3KGluZm8pOworCiAgICAgbW9uaXRvcih0aGlzX3NvZnRpcnFf
cGVuZGluZywgMCwgMCk7CiAKICAgICBBU1NFUlQoIWxvY2FsX2lycV9pc19l
bmFibGVkKCkpOwogCiAgICAgaWYgKCAhKnRoaXNfc29mdGlycV9wZW5kaW5n
ICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdl
dF9jcHVfaW5mbygpOwotCi0gICAgICAgIHNwZWNfY3RybF9lbnRlcl9pZGxl
KGluZm8pOworICAgICAgICBfX3NwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8s
IGZhbHNlIC8qIFZFUlcgaGFuZGxlZCBhYm92ZSAqLyk7CiAKICAgICAgICAg
aWYgKCBlY3ggJiBNV0FJVF9FQ1hfSU5URVJSVVBUX0JSRUFLICkKICAgICAg
ICAgICAgIG13YWl0KGVheCwgZWN4KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9zcGVjX2N0cmwuaCBiL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zcGVjX2N0cmwuaAppbmRleCA0NDM5YTFiMjQzNDYuLjYw
ODQ0Yjc1NWRmZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3NwZWNfY3RybC5oCisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9zcGVjX2N0cmwuaApAQCAtMTI2LDggKzEyNiwyMiBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgaW5pdF9zaGFkb3dfc3BlY19jdHJsX3N0YXRlKHZvaWQpCiAg
ICAgaW5mby0+dmVyd19zZWwgPSBfX0hZUEVSVklTT1JfRFMzMjsKIH0KIAor
c3RhdGljIGFsd2F5c19pbmxpbmUgdm9pZCBfX3NwZWNfY3RybF9lbnRlcl9p
ZGxlX3Zlcncoc3RydWN0IGNwdV9pbmZvICppbmZvKQoreworICAgIC8qCisg
ICAgICogRmx1c2gvc2NydWIgc3RydWN0dXJlcyB3aGljaCBhcmUgc3RhdGlj
YWxseSBwYXJ0aXRpb25lZCBiZXR3ZWVuIGFjdGl2ZQorICAgICAqIHRocmVh
ZHMuICBPdGhlcndpc2UgZGF0YSBvZiBvdXJzIChvZiB1bmtub3duIHNlbnNp
dGl2aXR5KSB3aWxsIGJlY29tZQorICAgICAqIGF2YWlsYWJsZSB0byBvdXIg
c2libGluZyB3aGVuIHdlIGdvIGlkbGUuCisgICAgICoKKyAgICAgKiBOb3Rl
OiBWRVJXIG11c3QgYmUgZW5jb2RlZCB3aXRoIGEgbWVtb3J5IG9wZXJhbmQs
IGFzIGl0IGlzIG9ubHkgdGhhdAorICAgICAqIGZvcm0gd2l0aCBzaWRlIGVm
ZmVjdHMuCisgICAgICovCisgICAgYWx0ZXJuYXRpdmVfaW5wdXQoIiIsICJ2
ZXJ3ICVbc2VsXSIsIFg4Nl9GRUFUVVJFX1NDX1ZFUldfSURMRSwKKyAgICAg
ICAgICAgICAgICAgICAgICBbc2VsXSAibSIgKGluZm8tPnZlcndfc2VsKSk7
Cit9CisKIC8qIFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBu
b3Qgc2FmZSBhZnRlciB0aGlzIGNhbGwuICovCi1zdGF0aWMgYWx3YXlzX2lu
bGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9pZGxlKHN0cnVjdCBjcHVfaW5m
byAqaW5mbykKK3N0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgX19zcGVjX2N0
cmxfZW50ZXJfaWRsZShzdHJ1Y3QgY3B1X2luZm8gKmluZm8sIGJvb2wgdmVy
dykKIHsKICAgICB1aW50MzJfdCB2YWwgPSAwOwogCkBAIC0xNDYsMjEgKzE2
MCw4IEBAIHN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgc3BlY19jdHJsX2Vu
dGVyX2lkbGUoc3RydWN0IGNwdV9pbmZvICppbmZvKQogICAgICAgICAgICAg
ICAgICAgICAgICJhIiAodmFsKSwgImMiIChNU1JfU1BFQ19DVFJMKSwgImQi
ICgwKSk7CiAgICAgYmFycmllcigpOwogCi0gICAgLyoKLSAgICAgKiBNaWNy
b2FyY2hpdGVjdHVyYWwgU3RvcmUgQnVmZmVyIERhdGEgU2FtcGxpbmc6Ci0g
ICAgICoKLSAgICAgKiBPbiB2dWxuZXJhYmxlIHN5c3RlbXMsIHN0b3JlIGJ1
ZmZlciBlbnRyaWVzIGFyZSBzdGF0aWNhbGx5IHBhcnRpdGlvbmVkCi0gICAg
ICogYmV0d2VlbiBhY3RpdmUgdGhyZWFkcy4gIFdoZW4gZW50ZXJpbmcgaWRs
ZSwgb3VyIHN0b3JlIGJ1ZmZlciBlbnRyaWVzCi0gICAgICogYXJlIHJlLXBh
cnRpdGlvbmVkIHRvIGFsbG93IHRoZSBvdGhlciB0aHJlYWRzIHRvIHVzZSB0
aGVtLgotICAgICAqCi0gICAgICogRmx1c2ggdGhlIGJ1ZmZlcnMgdG8gZW5z
dXJlIHRoYXQgbm8gc2Vuc2l0aXZlIGRhdGEgb2Ygb3VycyBjYW4gYmUKLSAg
ICAgKiBsZWFrZWQgYnkgYSBzaWJsaW5nIGFmdGVyIGl0IGdldHMgb3VyIHN0
b3JlIGJ1ZmZlciBlbnRyaWVzLgotICAgICAqCi0gICAgICogTm90ZTogVkVS
VyBtdXN0IGJlIGVuY29kZWQgd2l0aCBhIG1lbW9yeSBvcGVyYW5kLCBhcyBp
dCBpcyBvbmx5IHRoYXQKLSAgICAgKiBmb3JtIHdoaWNoIGNhdXNlcyBhIGZs
dXNoLgotICAgICAqLwotICAgIGFsdGVybmF0aXZlX2lucHV0KCIiLCAidmVy
dyAlW3NlbF0iLCBYODZfRkVBVFVSRV9TQ19WRVJXX0lETEUsCi0gICAgICAg
ICAgICAgICAgICAgICAgW3NlbF0gIm0iIChpbmZvLT52ZXJ3X3NlbCkpOwor
ICAgIGlmICggdmVydyApIC8qIEV4cGVjdGVkIHRvIGJlIGNvbnN0LXByb3Bh
Z2F0ZWQuICovCisgICAgICAgIF9fc3BlY19jdHJsX2VudGVyX2lkbGVfdmVy
dyhpbmZvKTsKIAogICAgIC8qCiAgICAgICogQ3Jvc3MtVGhyZWFkIFJldHVy
biBBZGRyZXNzIFByZWRpY3Rpb25zOgpAQCAtMTc4LDYgKzE3OSwxMiBAQCBz
dGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9pZGxl
KHN0cnVjdCBjcHVfaW5mbyAqaW5mbykKICAgICAgICAgICAgICAgICAgICAg
ICA6ICJyYXgiLCAicmN4Iik7CiB9CiAKKy8qIFdBUk5JTkchIGByZXRgLCBg
Y2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBhZnRlciB0aGlzIGNhbGwuICov
CitzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9p
ZGxlKHN0cnVjdCBjcHVfaW5mbyAqaW5mbykKK3sKKyAgICBfX3NwZWNfY3Ry
bF9lbnRlcl9pZGxlKGluZm8sIHRydWUgLyogVkVSVyAqLyk7Cit9CisKIC8q
IFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBi
ZWZvcmUgdGhpcyBjYWxsLiAqLwogc3RhdGljIGFsd2F5c19pbmxpbmUgdm9p
ZCBzcGVjX2N0cmxfZXhpdF9pZGxlKHN0cnVjdCBjcHVfaW5mbyAqaW5mbykK
IHsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-19.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-19.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVGh1LCAyOSBBdWcgMjAyNCAxNzozNjoxMSArMDEwMApTdWJq
ZWN0OiB4ODYvc3BlYy1jdHJsOiBNaXRpZ2F0ZSBUcmFuc2l0aXZlIFNjaGVk
dWxlciBBdHRhY2tzCgpUU0EgYWZmZWN0cyBBTUQgRmFtMTloIENQVXMgKFpl
bjMgYW5kIDQgbWljcm9hcmNoaXRlY3R1cmVzKS4KClRocmVlIG5ldyBDUFVJ
RCBiaXRzIGhhdmUgYmVlbiBkZWZpbmVkLiAgVHdvIChUU0FfU1FfTk8gYW5k
IFRTQV9MMV9OTykKaW5kaWNhdGUgdGhhdCB0aGUgc3lzdGVtIGlzIHVuYWZm
ZWN0ZWQsIGFuZCBtdXN0IGJlIHN5bnRoZXNpc2VkIGJ5IFhlbiBvbgp1bmFm
ZmVjdGVkIHBhcnRzIHRvIGRhdGUuCgpBIHRoaXJkIG5ldyBiaXQgaW5kaWNh
dGVzIHRoYXQgVkVSVyBub3cgaGFzIGEgZmx1c2hpbmcgc2lkZSBlZmZlY3Qu
ICBYZW4gbXVzdApzeW50aGVzaXNlIHRoaXMgYml0IG9uIGFmZmVjdGVkIHN5
c3RlbXMgYmFzZWQgb24gbWljcm9jb2RlIHZlcnNpb24uICBBcyB3aXRoCm90
aGVyIFZFUlctYmFzZWQgZmx1c2hpbmcgZmVhdHVyZXMsIFZFUldfQ0xFQVIg
bmVlZHMgT1ItaW5nIGFjcm9zcyBhIHJlc291cmNlCnBvb2wsIGFuZCBndWVz
dHMgd2hpY2ggaGF2ZSBzZWVuIGl0IGNhbiBzYWZlbHkgbWlncmF0ZSBpbi4K
ClRoaXMgaXMgcGFydCBvZiBYU0EtNDcxIC8gQ1ZFLTIwMjQtMzYzNTAgLyBD
VkUtMjAyNC0zNjM1Ny4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIg
PGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4g
QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEvdG9v
bHMvbWlzYy94ZW4tY3B1aWQuYyBiL3Rvb2xzL21pc2MveGVuLWNwdWlkLmMK
aW5kZXggNzcwNDk4MGI4YTliLi4wNDAzNWQ1NjVlYjUgMTAwNjQ0Ci0tLSBh
L3Rvb2xzL21pc2MveGVuLWNwdWlkLmMKKysrIGIvdG9vbHMvbWlzYy94ZW4t
Y3B1aWQuYwpAQCAtMTk0LDYgKzE5NCw3IEBAIHN0YXRpYyBjb25zdCBjaGFy
ICpjb25zdCBzdHJfN2ExWzMyXSA9CiBzdGF0aWMgY29uc3QgY2hhciAqY29u
c3Qgc3RyX2UyMWFbMzJdID0KIHsKICAgICBbIDJdID0gImxmZW5jZSsiLAor
ICAgIC8qIDQgKi8gICAgICAgICAgICAgICAgIFsgNV0gPSAidmVydy1jbGVh
ciIsCiAgICAgWyA2XSA9ICJuc2NiIiwKICAgICBbIDhdID0gImF1dG8taWJy
cyIsCiAKQEAgLTI0Niw2ICsyNDcsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAq
Y29uc3Qgc3RyX20xMEFsWzY0XSA9CiAKIHN0YXRpYyBjb25zdCBjaGFyICpj
b25zdCBzdHJfZTIxY1szMl0gPQogeworICAgIC8qIDAgKi8gICAgICAgICAg
ICAgICAgICAgICAgIFsgMV0gPSAidHNhLXNxLW5vIiwKKyAgICBbIDJdID0g
InRzYS1sMS1ubyIsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHsKZGlm
ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMgYi94ZW4vYXJj
aC94ODYvY3B1LXBvbGljeS5jCmluZGV4IGI0ZDNmYTgyNDM2My4uZjI1OWM3
NzQzNWVhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5j
CisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMKQEAgLTQ3Niw2ICs0
NzYsMTcgQEAgc3RhdGljIHZvaWQgX19pbml0IGd1ZXN0X2NvbW1vbl9tYXhf
ZmVhdHVyZV9hZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICAgIGlm
ICggdGVzdF9iaXQoWDg2X0ZFQVRVUkVfUlRNLCBmcykgKQogICAgICAgICAg
ICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNfQUJPUlQsIGZz
KTsKICAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFg4Nl9WRU5ET1JfQU1E
OgorICAgICAgICAvKgorICAgICAgICAgKiBUaGlzIGJpdCBpbmRpY2F0ZXMg
dGhhdCB0aGUgVkVSVyBpbnN0cnVjdGlvbiBtYXkgaGF2ZSBnYWluZWQKKyAg
ICAgICAgICogc2NydWJiaW5nIHNpZGUgZWZmZWN0cy4gIFdpdGggcG9vbGlu
ZywgaXQgbWVhbnMgInlvdSBtaWdodCBtaWdyYXRlCisgICAgICAgICAqIHNv
bWV3aGVyZSB3aGVyZSBzY3J1YmJpbmcgaXMgbmVjZXNzYXJ5IiwgYW5kIG1h
eSBuZWVkIGV4cG9zaW5nIG9uCisgICAgICAgICAqIHVuYWZmZWN0ZWQgaGFy
ZHdhcmUuICBUaGlzIGlzIGZpbmUsIGJlY2F1c2UgdGhlIFZFUlcgaW5zdHJ1
Y3Rpb24KKyAgICAgICAgICogaGFzIGJlZW4gYXJvdW5kIHNpbmNlIHRoZSAy
ODYuCisgICAgICAgICAqLworICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRV
UkVfVkVSV19DTEVBUiwgZnMpOworICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICAvKgpAQCAtNTU0LDYgKzU2NSwxNyBAQCBzdGF0aWMgdm9pZCBfX2lu
aXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9hZGp1c3RtZW50cyh1
aW50MzJfdCAqZnMpCiAgICAgICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRV
UkVfUlRNX0FMV0FZU19BQk9SVCwgZnMpOwogICAgICAgICB9CiAgICAgICAg
IGJyZWFrOworCisgICAgY2FzZSBYODZfVkVORE9SX0FNRDoKKyAgICAgICAg
LyoKKyAgICAgICAgICogVGhpcyBiaXQgaW5kaWNhdGUgdGhhdCB0aGUgVkVS
VyBpbnN0cnVjdGlvbiBtYXkgaGF2ZSBnYWluZWQKKyAgICAgICAgICogc2Ny
dWJiaW5nIHNpZGUgZWZmZWN0cy4gIFRoZSBtYXggcG9saWN5IGhhcyBpdCBz
ZXQgZm9yIG1pZ3JhdGlvbgorICAgICAgICAgKiByZWFzb25zLCBzbyByZXNl
dCB0aGUgZGVmYXVsdCBwb2xpY3kgYmFjayB0byB0aGUgaG9zdCB2YWx1ZSBp
biBjYXNlCisgICAgICAgICAqIHdlJ3JlIHVuYWZmZWN0ZWQuCisgICAgICAg
ICAqLworICAgICAgICBpZiAoICFjcHVfaGFzX3ZlcndfY2xlYXIgKQorICAg
ICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfVkVSV19DTEVBUiwg
ZnMpOworICAgICAgICBicmVhazsKICAgICB9CiAKICAgICAvKgpkaWZmIC0t
Z2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vZW50cnkuUyBiL3hlbi9hcmNo
L3g4Ni9odm0vc3ZtL2VudHJ5LlMKaW5kZXggODc3OTg1NmZiNWE2Li45MjMz
ZDZmYmZiYzUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL2Vu
dHJ5LlMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vZW50cnkuUwpAQCAt
OTQsNiArOTQsOSBAQCBfX1VOTElLRUxZX0VORChuc3ZtX2hhcCkKICAgICAg
ICAgcG9wICAlcmRpCiAKICAgICAgICAgc3RpCisKKyAgICAgICAgU1BFQ19D
VFJMX0NPTkRfVkVSVyAgICAgLyogUmVxOiAlcnNwPWVmcmFtZSAgICAgICAg
ICAgICAgICAgICAgQ2xvYjogZWZsICovCisKICAgICAgICAgdm1ydW4KIAog
ICAgICAgICBTQVZFX0FMTApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL2NwdWZlYXR1cmUuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9jcHVmZWF0dXJlLmgKaW5kZXggMDIwNDE0ZTk4YzRkLi44MDFhOGNi
YmMwMTYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9j
cHVmZWF0dXJlLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2Nw
dWZlYXR1cmUuaApAQCAtMTUwLDYgKzE1MCw3IEBACiAKIC8qIENQVUlEIGxl
dmVsIDB4ODAwMDAwMjEuZWF4ICovCiAjZGVmaW5lIGNwdV9oYXNfbGZlbmNl
X2Rpc3BhdGNoIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9MRkVOQ0VfRElT
UEFUQ0gpCisjZGVmaW5lIGNwdV9oYXNfdmVyd19jbGVhciAgICAgIGJvb3Rf
Y3B1X2hhcyhYODZfRkVBVFVSRV9WRVJXX0NMRUFSKQogI2RlZmluZSBjcHVf
aGFzX25zY2IgICAgICAgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVf
TlNDQikKIAogLyogTVNSX0FSQ0hfQ0FQUyAqLwpAQCAtMTcwLDYgKzE3MSwx
MCBAQAogI2RlZmluZSBjcHVfaGFzX3JmZHNfY2xlYXIgICAgICBib290X2Nw
dV9oYXMoWDg2X0ZFQVRVUkVfUkZEU19DTEVBUikKICNkZWZpbmUgY3B1X2hh
c19pdHNfbm8gICAgICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0lU
U19OTykKIAorLyogQ1BVSUQgbGV2ZWwgMHg4MDAwMDAyMS5lY3ggKi8KKyNk
ZWZpbmUgY3B1X2hhc190c2Ffc3Ffbm8gICAgICAgYm9vdF9jcHVfaGFzKFg4
Nl9GRUFUVVJFX1RTQV9TUV9OTykKKyNkZWZpbmUgY3B1X2hhc190c2FfbDFf
bm8gICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1RTQV9MMV9OTykK
KwogLyogU3ludGhlc2l6ZWQuICovCiAjZGVmaW5lIGNwdV9oYXNfYXJjaF9w
ZXJmbW9uICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9BUkNIX1BFUkZN
T04pCiAjZGVmaW5lIGNwdV9oYXNfY3B1aWRfZmF1bHRpbmcgIGJvb3RfY3B1
X2hhcyhYODZfRkVBVFVSRV9DUFVJRF9GQVVMVElORykKZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYyBiL3hlbi9hcmNoL3g4Ni9zcGVj
X2N0cmwuYwppbmRleCA1NTllZTkwYjQ0ZGMuLjUwMDVmMGFjZGRlOSAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L3NwZWNfY3RybC5jCisrKyBiL3hlbi9h
cmNoL3g4Ni9zcGVjX2N0cmwuYwpAQCAtNDk2LDcgKzQ5Niw3IEBAIGN1c3Rv
bV9wYXJhbSgicHYtbDF0ZiIsIHBhcnNlX3B2X2wxdGYpOwogCiBzdGF0aWMg
dm9pZCBfX2luaXQgcHJpbnRfZGV0YWlscyhlbnVtIGluZF90aHVuayB0aHVu
aykKIHsKLSAgICB1bnNpZ25lZCBpbnQgXzdkMCA9IDAsIF83ZDIgPSAwLCBl
OGIgPSAwLCBlMjFhID0gMCwgbWF4ID0gMCwgdG1wOworICAgIHVuc2lnbmVk
IGludCBfN2QwID0gMCwgXzdkMiA9IDAsIGU4YiA9IDAsIGUyMWEgPSAwLCBl
MjFjID0gMCwgbWF4ID0gMCwgdG1wOwogICAgIHVpbnQ2NF90IGNhcHMgPSAw
OwogCiAgICAgLyogQ29sbGVjdCBkaWFnbm9zdGljcyBhYm91dCBhdmFpbGFi
bGUgbWl0aWdhdGlvbnMuICovCkBAIC01MDcsNyArNTA3LDcgQEAgc3RhdGlj
IHZvaWQgX19pbml0IHByaW50X2RldGFpbHMoZW51bSBpbmRfdGh1bmsgdGh1
bmspCiAgICAgaWYgKCBib290X2NwdV9kYXRhLmV4dGVuZGVkX2NwdWlkX2xl
dmVsID49IDB4ODAwMDAwMDggKQogICAgICAgICBjcHVpZCgweDgwMDAwMDA4
LCAmdG1wLCAmZThiLCAmdG1wLCAmdG1wKTsKICAgICBpZiAoIGJvb3RfY3B1
X2RhdGEuZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAwMDAyMSApCi0g
ICAgICAgIGNwdWlkKDB4ODAwMDAwMjEsICZlMjFhLCAmdG1wLCAmdG1wLCAm
dG1wKTsKKyAgICAgICAgY3B1aWQoMHg4MDAwMDAyMVUsICZlMjFhLCAmdG1w
LCAmZTIxYywgJnRtcCk7CiAgICAgaWYgKCBjcHVfaGFzX2FyY2hfY2FwcyAp
CiAgICAgICAgIHJkbXNybChNU1JfQVJDSF9DQVBBQklMSVRJRVMsIGNhcHMp
OwogCkBAIC01MTcsNyArNTE3LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHBy
aW50X2RldGFpbHMoZW51bSBpbmRfdGh1bmsgdGh1bmspCiAgICAgICogSGFy
ZHdhcmUgcmVhZC1vbmx5IGluZm9ybWF0aW9uLCBzdGF0aW5nIGltbXVuaXR5
IHRvIGNlcnRhaW4gaXNzdWVzLCBvcgogICAgICAqIHN1Z2dlc3Rpb25zIG9m
IHdoaWNoIG1pdGlnYXRpb24gdG8gdXNlLgogICAgICAqLwotICAgIHByaW50
aygiICBIYXJkd2FyZSBoaW50czolcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMl
cyVzJXMlcyVzJXMlcyVzJXMlcyVzXG4iLAorICAgIHByaW50aygiICBIYXJk
d2FyZSBoaW50czolcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVz
JXMlcyVzJXMlcyVzJXMlc1xuIiwKICAgICAgICAgICAgKGNhcHMgJiBBUkNI
X0NBUFNfUkRDTF9OTykgICAgICAgICAgICAgICAgICAgICAgICA/ICIgUkRD
TF9OTyIgICAgICAgIDogIiIsCiAgICAgICAgICAgIChjYXBzICYgQVJDSF9D
QVBTX0VJQlJTKSAgICAgICAgICAgICAgICAgICAgICAgICAgPyAiIEVJQlJT
IiAgICAgICAgICA6ICIiLAogICAgICAgICAgICAoY2FwcyAmIEFSQ0hfQ0FQ
U19SU0JBKSAgICAgICAgICAgICAgICAgICAgICAgICAgID8gIiBSU0JBIiAg
ICAgICAgICAgOiAiIiwKQEAgLTU0MSwxMCArNTQxLDEyIEBAIHN0YXRpYyB2
b2lkIF9faW5pdCBwcmludF9kZXRhaWxzKGVudW0gaW5kX3RodW5rIHRodW5r
KQogICAgICAgICAgICAoZThiICAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVS
RV9CVENfTk8pKSAgICAgICAgID8gIiBCVENfTk8iICAgICAgICAgOiAiIiwK
ICAgICAgICAgICAgKGU4YiAgJiBjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVf
SUJQQl9SRVQpKSAgICAgICA/ICIgSUJQQl9SRVQiICAgICAgIDogIiIsCiAg
ICAgICAgICAgIChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX0lC
UEJfQlJUWVBFKSkgICAgPyAiIElCUEJfQlJUWVBFIiAgICA6ICIiLAotICAg
ICAgICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9TUlNP
X05PKSkgICAgICAgID8gIiBTUlNPX05PIiAgICAgICAgOiAiIik7CisgICAg
ICAgICAgIChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NSU09f
Tk8pKSAgICAgICAgPyAiIFNSU09fTk8iICAgICAgICA6ICIiLAorICAgICAg
ICAgICAoZTIxYyAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9UU0FfU1Ff
Tk8pKSAgICAgID8gIiBUU0FfU1FfTk8iICAgICAgOiAiIiwKKyAgICAgICAg
ICAgKGUyMWMgJiBjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfVFNBX0wxX05P
KSkgICAgICA/ICIgVFNBX0wxX05PIiAgICAgIDogIiIpOwogCiAgICAgLyog
SGFyZHdhcmUgZmVhdHVyZXMgd2hpY2ggbmVlZCBkcml2aW5nIHRvIG1pdGln
YXRlIGlzc3Vlcy4gKi8KLSAgICBwcmludGsoIiAgSGFyZHdhcmUgZmVhdHVy
ZXM6JXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlc1xuIiwKKyAgICBwcmlu
dGsoIiAgSGFyZHdhcmUgZmVhdHVyZXM6JXMlcyVzJXMlcyVzJXMlcyVzJXMl
cyVzJXMlcyVzXG4iLAogICAgICAgICAgICAoZThiICAmIGNwdWZlYXRfbWFz
ayhYODZfRkVBVFVSRV9JQlBCKSkgfHwKICAgICAgICAgICAgKF83ZDAgJiBj
cHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfSUJSU0IpKSAgICAgICAgICA/ICIg
SUJQQiIgICAgICAgICAgIDogIiIsCiAgICAgICAgICAgIChlOGIgICYgY3B1
ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX0lCUlMpKSB8fApAQCAtNTYzLDcgKzU2
NSw4IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBwcmludF9kZXRhaWxzKGVudW0g
aW5kX3RodW5rIHRodW5rKQogICAgICAgICAgICAoY2FwcyAmIEFSQ0hfQ0FQ
U19GQl9DTEVBUl9DVFJMKSAgICAgICAgICAgICAgICAgID8gIiBGQl9DTEVB
Ul9DVFJMIiAgOiAiIiwKICAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUFNf
R0RTX0NUUkwpICAgICAgICAgICAgICAgICAgICAgICA/ICIgR0RTX0NUUkwi
ICAgICAgIDogIiIsCiAgICAgICAgICAgIChjYXBzICYgQVJDSF9DQVBTX1JG
RFNfQ0xFQVIpICAgICAgICAgICAgICAgICAgICAgPyAiIFJGRFNfQ0xFQVIi
ICAgICA6ICIiLAotICAgICAgICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhY
ODZfRkVBVFVSRV9TQlBCKSkgICAgICAgICAgID8gIiBTQlBCIiAgICAgICAg
ICAgOiAiIik7CisgICAgICAgICAgIChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4
Nl9GRUFUVVJFX1NCUEIpKSAgICAgICAgICAgPyAiIFNCUEIiICAgICAgICAg
ICA6ICIiLAorICAgICAgICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZf
RkVBVFVSRV9WRVJXX0NMRUFSKSkgICAgID8gIiBWRVJXX0NMRUFSIiAgICAg
OiAiIik7CiAKICAgICAvKiBDb21waWxlZC1pbiBzdXBwb3J0IHdoaWNoIHBl
cnRhaW5zIHRvIG1pdGlnYXRpb25zLiAqLwogICAgIGlmICggSVNfRU5BQkxF
RChDT05GSUdfSU5ESVJFQ1RfVEhVTkspIHx8IElTX0VOQUJMRUQoQ09ORklH
X1NIQURPV19QQUdJTkcpIHx8CkBAIC0xNTI2LDYgKzE1MjksNzcgQEAgc3Rh
dGljIHZvaWQgX19pbml0IHJmZHNfY2FsY3VsYXRpb25zKHZvaWQpCiAgICAg
c2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVSRV9SRkRTX05PKTsKIH0K
IAorLyoKKyAqIFRyYW5zaWVudCBTY2hlZHVsZXIgQXR0YWNrcworICoKKyAq
IGh0dHBzOi8vd3d3LmFtZC5jb20vY29udGVudC9kYW0vYW1kL2VuL2RvY3Vt
ZW50cy9yZXNvdXJjZXMvYnVsbGV0aW4vdGVjaG5pY2FsLWd1aWRhbmNlLWZv
ci1taXRpZ2F0aW5nLXRyYW5zaWVudC1zY2hlZHVsZXItYXR0YWNrcy5wZGYK
KyAqLworc3RhdGljIHZvaWQgX19pbml0IHRzYV9jYWxjdWxhdGlvbnModm9p
ZCkKK3sKKyAgICB1bnNpZ25lZCBpbnQgY3Vycl9yZXYsIG1pbl9yZXY7CisK
KyAgICAvKiBUU0EgaXMgb25seSBrbm93biB0byBhZmZlY3QgQU1EIHByb2Nl
c3NvcnMgYXQgdGhpcyB0aW1lLiAqLworICAgIGlmICggYm9vdF9jcHVfZGF0
YS54ODZfdmVuZG9yICE9IFg4Nl9WRU5ET1JfQU1EICkKKyAgICAgICAgcmV0
dXJuOworCisgICAgLyogSWYgd2UncmUgdmlydHVhbGlzZWQsIGRvbid0IGF0
dGVtcHQgdG8gc3ludGhlc2lzZSBhbnl0aGluZy4gKi8KKyAgICBpZiAoIGNw
dV9oYXNfaHlwZXJ2aXNvciApCisgICAgICAgIHJldHVybjsKKworICAgIC8q
CisgICAgICogQWNjb3JkaW5nIHRvIHRoZSB3aGl0ZXBhcGVyLCBzb21lIEZh
bTFBIENQVXMgKE1vZGVscyAweDAwLi4uMHg0ZiwKKyAgICAgKiAweDYwLi4u
MHg3ZikgYXJlIG5vdCB2dWxuZXJhYmxlIGJ1dCBkb24ndCBlbnVtZXJhdGUg
VFNBX3tTUSxMMX1fTk8uICBJZgorICAgICAqIHdlIHNlZSBlaXRoZXIgZW51
bWVyYXRlZCwgYXNzdW1lIGJvdGggYXJlIGNvcnJlY3QgLi4uCisgICAgICov
CisgICAgaWYgKCBjcHVfaGFzX3RzYV9zcV9ubyB8fCBjcHVfaGFzX3RzYV9s
MV9ubyApCisgICAgICAgIHJldHVybjsKKworICAgIC8qCisgICAgICogLi4u
IG90aGVyd2lzZSwgc3ludGhlc2lzZSB0aGVtLiAgQ1BVcyBvdGhlciB0aGFu
IEZhbTE5IChaZW4zLzQpIGFyZQorICAgICAqIHN0YXRlZCB0byBiZSBub3Qg
dnVsbmVyYWJsZS4KKyAgICAgKi8KKyAgICBpZiAoIGJvb3RfY3B1X2RhdGEu
eDg2ICE9IDB4MTkgKQorICAgIHsKKyAgICAgICAgc2V0dXBfZm9yY2VfY3B1
X2NhcChYODZfRkVBVFVSRV9UU0FfU1FfTk8pOworICAgICAgICBzZXR1cF9m
b3JjZV9jcHVfY2FwKFg4Nl9GRUFUVVJFX1RTQV9MMV9OTyk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICAvKgorICAgICAqIEZhbTE5IENQVXMg
Z2V0IFZFUldfQ0xFQVIgd2l0aCBuZXcgZW5vdWdoIG1pY3JvY29kZSwgYnV0
IG11c3QKKyAgICAgKiBzeW50aGVzaXNlIHRoZSBDUFVJRCBiaXQuCisgICAg
ICovCisgICAgY3Vycl9yZXYgPSB0aGlzX2NwdShjcHVfc2lnKS5yZXY7Cisg
ICAgc3dpdGNoICggY3Vycl9yZXYgPj4gOCApCisgICAgeworICAgIGNhc2Ug
MHgwYTAwMTE6IG1pbl9yZXYgPSAweDBhMDAxMWQ3OyBicmVhazsKKyAgICBj
YXNlIDB4MGEwMDEyOiBtaW5fcmV2ID0gMHgwYTAwMTIzYjsgYnJlYWs7Cisg
ICAgY2FzZSAweDBhMDA4MjogbWluX3JldiA9IDB4MGEwMDgyMGQ7IGJyZWFr
OworICAgIGNhc2UgMHgwYTEwMTE6IG1pbl9yZXYgPSAweDBhMTAxMTRjOyBi
cmVhazsKKyAgICBjYXNlIDB4MGExMDEyOiBtaW5fcmV2ID0gMHgwYTEwMTI0
YzsgYnJlYWs7CisgICAgY2FzZSAweDBhMTA4MTogbWluX3JldiA9IDB4MGEx
MDgxMDk7IGJyZWFrOworICAgIGNhc2UgMHgwYTIwMTA6IG1pbl9yZXYgPSAw
eDBhMjAxMDJlOyBicmVhazsKKyAgICBjYXNlIDB4MGEyMDEyOiBtaW5fcmV2
ID0gMHgwYTIwMTIxMTsgYnJlYWs7CisgICAgY2FzZSAweDBhNDA0MTogbWlu
X3JldiA9IDB4MGE0MDQxMDg7IGJyZWFrOworICAgIGNhc2UgMHgwYTUwMDA6
IG1pbl9yZXYgPSAweDBhNTAwMDEyOyBicmVhazsKKyAgICBjYXNlIDB4MGE2
MDEyOiBtaW5fcmV2ID0gMHgwYTYwMTIwYTsgYnJlYWs7CisgICAgY2FzZSAw
eDBhNzA0MTogbWluX3JldiA9IDB4MGE3MDQxMDg7IGJyZWFrOworICAgIGNh
c2UgMHgwYTcwNTI6IG1pbl9yZXYgPSAweDBhNzA1MjA4OyBicmVhazsKKyAg
ICBjYXNlIDB4MGE3MDgwOiBtaW5fcmV2ID0gMHgwYTcwODAwODsgYnJlYWs7
CisgICAgY2FzZSAweDBhNzBjMDogbWluX3JldiA9IDB4MGE3MGMwMDg7IGJy
ZWFrOworICAgIGNhc2UgMHgwYWEwMDI6IG1pbl9yZXYgPSAweDBhYTAwMjE2
OyBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBwcmludGsoWEVOTE9H
X1dBUk5JTkcKKyAgICAgICAgICAgICAgICJVbnJlY29nbmlzZWQgQ1BVICUw
MngtJTAyeC0lMDJ4LCB1Y29kZSAweCUwOHggZm9yIFRTQSBtaXRpZ2F0aW9u
XG4iLAorICAgICAgICAgICAgICAgYm9vdF9jcHVfZGF0YS54ODYsIGJvb3Rf
Y3B1X2RhdGEueDg2X21vZGVsLAorICAgICAgICAgICAgICAgYm9vdF9jcHVf
ZGF0YS54ODZfbWFzaywgY3Vycl9yZXYpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKCBjdXJyX3JldiA+PSBtaW5fcmV2ICkKKyAgICAg
ICAgc2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVSRV9WRVJXX0NMRUFS
KTsKK30KKwogc3RhdGljIGJvb2wgX19pbml0IGNwdV9oYXNfZ2RzKHZvaWQp
CiB7CiAgICAgLyoKQEAgLTIyMTksNiArMjI5Myw3IEBAIHZvaWQgX19pbml0
IGluaXRfc3BlY3VsYXRpb25fbWl0aWdhdGlvbnModm9pZCkKICAgICAgKiBo
dHRwczovL3d3dy5pbnRlbC5jb20vY29udGVudC93d3cvdXMvZW4vZGV2ZWxv
cGVyL2FydGljbGVzL3RlY2huaWNhbC9zb2Z0d2FyZS1zZWN1cml0eS1ndWlk
YW5jZS90ZWNobmljYWwtZG9jdW1lbnRhdGlvbi9pbnRlbC1hbmFseXNpcy1t
aWNyb2FyY2hpdGVjdHVyYWwtZGF0YS1zYW1wbGluZy5odG1sCiAgICAgICog
aHR0cHM6Ly93d3cuaW50ZWwuY29tL2NvbnRlbnQvd3d3L3VzL2VuL2RldmVs
b3Blci9hcnRpY2xlcy90ZWNobmljYWwvc29mdHdhcmUtc2VjdXJpdHktZ3Vp
ZGFuY2UvdGVjaG5pY2FsLWRvY3VtZW50YXRpb24vcHJvY2Vzc29yLW1taW8t
c3RhbGUtZGF0YS12dWxuZXJhYmlsaXRpZXMuaHRtbAogICAgICAqIGh0dHBz
Oi8vd3d3LmludGVsLmNvbS9jb250ZW50L3d3dy91cy9lbi9kZXZlbG9wZXIv
YXJ0aWNsZXMvdGVjaG5pY2FsL3NvZnR3YXJlLXNlY3VyaXR5LWd1aWRhbmNl
L2Fkdmlzb3J5LWd1aWRhbmNlL3JlZ2lzdGVyLWZpbGUtZGF0YS1zYW1wbGlu
Zy5odG1sCisgICAgICogaHR0cHM6Ly93d3cuYW1kLmNvbS9jb250ZW50L2Rh
bS9hbWQvZW4vZG9jdW1lbnRzL3Jlc291cmNlcy9idWxsZXRpbi90ZWNobmlj
YWwtZ3VpZGFuY2UtZm9yLW1pdGlnYXRpbmctdHJhbnNpZW50LXNjaGVkdWxl
ci1hdHRhY2tzLnBkZgogICAgICAqCiAgICAgICogUmVsZXZhbnQgdWNvZGVz
OgogICAgICAqCkBAIC0yMjUxLDkgKzIzMjYsMTggQEAgdm9pZCBfX2luaXQg
aW5pdF9zcGVjdWxhdGlvbl9taXRpZ2F0aW9ucyh2b2lkKQogICAgICAqCiAg
ICAgICogLSBNYXJjaCAyMDIzLCBmb3IgUkZEUy4gIEVudW1lcmF0ZSBSRkRT
X0NMRUFSIHRvIG1lYW4gdGhhdCBWRVJXIG5vdwogICAgICAqICAgc2NydWJz
IG5vbi1hcmNoaXRlY3R1cmFsIGVudHJpZXMgZnJvbSBjZXJ0YWluIHJlZ2lz
dGVyIGZpbGVzLgorICAgICAqCisgICAgICogLSBKdWx5IDIwMjUsIGZvciBU
U0EuICBJbnRyb2R1Y2VzIFZFUlcgc2lkZSBlZmZlY3RzIHRvIG1pdGlnYXRl
CisgICAgICogICBUU0Ffe1NRL0wxfS4gIFhlbiBtdXN0IHN5bnRoZXNpc2Ug
dGhlIFZFUldfQ0xFQVIgZmVhdHVyZSBiYXNlZCBvbgorICAgICAqICAgbWlj
cm9jb2RlIHZlcnNpb24uCisgICAgICoKKyAgICAgKiAgIE5vdGUsIHRoZXNl
IG1pY3JvY29kZSB1cGRhdGVzIHdlcmUgcHJvZHVjZWQgYmVmb3JlIHRoZSBy
ZW1lZGlhdGlvbiBvZgorICAgICAqICAgdGhlIG1pY3JvY29kZSBzaWduYXR1
cmUgaXNzdWVzLCBhbmQgYXJlIGluY2x1ZGVkIGluIHRoZSBmaXJ3bWFyZQor
ICAgICAqICAgdXBkYXRlcyBmaXhpbmcgdGhlIGVudHJ5c2lnbiB2dWxuZXJh
YmlsaXR5IGZyb20gfkRlY2VtYmVyIDIwMjQuCiAgICAgICovCiAgICAgbWRz
X2NhbGN1bGF0aW9ucygpOwogICAgIHJmZHNfY2FsY3VsYXRpb25zKCk7Cisg
ICAgdHNhX2NhbGN1bGF0aW9ucygpOwogCiAgICAgLyoKICAgICAgKiBQYXJ0
cyB3aGljaCBlbnVtZXJhdGUgRkJfQ0xFQVIgYXJlIHRob3NlIHdpdGggbm93
LXVwZGF0ZWQgbWljcm9jb2RlCkBAIC0yMjg1LDIxICsyMzY5LDI3IEBAIHZv
aWQgX19pbml0IGluaXRfc3BlY3VsYXRpb25fbWl0aWdhdGlvbnModm9pZCkK
ICAgICAgKiBNTFBEUy9NRkJEUyB3aGVuIFNNVCBpcyBlbmFibGVkLgogICAg
ICAqLwogICAgIGlmICggb3B0X3ZlcndfcHYgPT0gLTEgKQotICAgICAgICBv
cHRfdmVyd19wdiA9IGNwdV9oYXNfdXNlZnVsX21kX2NsZWFyIHx8IGNwdV9o
YXNfcmZkc19jbGVhcjsKKyAgICAgICAgb3B0X3ZlcndfcHYgPSAoY3B1X2hh
c191c2VmdWxfbWRfY2xlYXIgfHwgY3B1X2hhc19yZmRzX2NsZWFyIHx8Cisg
ICAgICAgICAgICAgICAgICAgICAgIGNwdV9oYXNfdmVyd19jbGVhcik7CiAK
ICAgICBpZiAoIG9wdF92ZXJ3X2h2bSA9PSAtMSApCi0gICAgICAgIG9wdF92
ZXJ3X2h2bSA9IGNwdV9oYXNfdXNlZnVsX21kX2NsZWFyIHx8IGNwdV9oYXNf
cmZkc19jbGVhcjsKKyAgICAgICAgb3B0X3ZlcndfaHZtID0gKGNwdV9oYXNf
dXNlZnVsX21kX2NsZWFyIHx8IGNwdV9oYXNfcmZkc19jbGVhciB8fAorICAg
ICAgICAgICAgICAgICAgICAgICAgY3B1X2hhc192ZXJ3X2NsZWFyKTsKIAog
ICAgIC8qCi0gICAgICogSWYgU01UIGlzIGFjdGl2ZSwgYW5kIHdlJ3JlIHBy
b3RlY3RpbmcgYWdhaW5zdCBNRFMgb3IgTU1JTyBzdGFsZSBkYXRhLAorICAg
ICAqIElmIFNNVCBpcyBhY3RpdmUsIGFuZCB3ZSdyZSBwcm90ZWN0aW5nIGFn
YWluc3QgYW55IG9mOgorICAgICAqICAgLSBNU0JEUworICAgICAqICAgLSBN
TUlPIHN0YWxlIGRhdGEKKyAgICAgKiAgIC0gVFNBLVNRCiAgICAgICogd2Ug
bmVlZCB0byBzY3J1YiBiZWZvcmUgZ29pbmcgaWRsZSBhcyB3ZWxsIGFzIG9u
IHJldHVybiB0byBndWVzdC4KICAgICAgKiBWYXJpb3VzIHBpcGVsaW5lIHJl
c291cmNlcyBhcmUgcmVwYXJ0aXRpb25lZCBhbW9uZ3N0IG5vbi1pZGxlIHRo
cmVhZHMuCiAgICAgICoKLSAgICAgKiBXZSBkb24ndCBuZWVkIHRvIHNjcnVi
IG9uIGlkbGUgZm9yIFJGRFMuICBUaGVyZSBhcmUgbm8gYWZmZWN0ZWQgY29y
ZXMKLSAgICAgKiB3aGljaCBzdXBwb3J0IFNNVCwgZGVzcGl0ZSB0aGVyZSBi
ZWluZyBhZmZlY3RlZCBjb3JlcyBpbiBoeWJyaWQgc3lzdGVtcwotICAgICAq
IHdoaWNoIGhhdmUgU01UIGVsc2V3aGVyZSBpbiB0aGUgcGxhdGZvcm0uCisg
ICAgICogV2UgZG9uJ3QgbmVlZCB0byBzY3J1YiBvbiBpZGxlIGZvcjoKKyAg
ICAgKiAgIC0gUkZEUyAobm8gU01UIGFmZmVjdGVkIGNvcmVzKQorICAgICAq
ICAgLSBUU0EtTDEgKHV0YWdzIG5ldmVyIHNoYXJlZCBiZXR3ZWVuIHRocmVh
ZHMpCiAgICAgICovCiAgICAgaWYgKCAoKGNwdV9oYXNfdXNlZnVsX21kX2Ns
ZWFyICYmIChvcHRfdmVyd19wdiB8fCBvcHRfdmVyd19odm0pKSB8fAorICAg
ICAgICAgIChjcHVfaGFzX3ZlcndfY2xlYXIgJiYgIWNwdV9oYXNfdHNhX3Nx
X25vKSB8fAogICAgICAgICAgIG9wdF92ZXJ3X21taW8pICYmIGh3X3NtdF9l
bmFibGVkICkKICAgICAgICAgc2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVB
VFVSRV9TQ19WRVJXX0lETEUpOwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk
ZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oIGIveGVuL2luY2x1
ZGUvcHVibGljL2FyY2gteDg2L2NwdWZlYXR1cmVzZXQuaAppbmRleCAwM2Nk
MTQxOWM1Y2IuLjQyZGIxMzJiNGMyZiAxMDA2NDQKLS0tIGEveGVuL2luY2x1
ZGUvcHVibGljL2FyY2gteDg2L2NwdWZlYXR1cmVzZXQuaAorKysgYi94ZW4v
aW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCkBAIC0y
ODQsNiArMjg0LDcgQEAgWEVOX0NQVUZFQVRVUkUoRlNSQ1MsICAgICAgICAx
MCozMisxMikgLypBICBGYXN0IFNob3J0IFJFUCBDTVBTQi9TQ0FTQiAqLwog
CiAvKiBBTUQtZGVmaW5lZCBDUFUgZmVhdHVyZXMsIENQVUlEIGxldmVsIDB4
ODAwMDAwMjEuZWF4LCB3b3JkIDExICovCiBYRU5fQ1BVRkVBVFVSRShMRkVO
Q0VfRElTUEFUQ0gsICAgIDExKjMyKyAyKSAvKkEgIExGRU5DRSBhbHdheXMg
c2VyaWFsaXppbmcgKi8KK1hFTl9DUFVGRUFUVVJFKFZFUldfQ0xFQVIsICAg
ICAgICAgMTEqMzIrIDUpIC8qIUEgVkVSVyBjbGVhcnMgbWljcm9hcmNoaXRl
Y3R1cmFsIGJ1ZmZlcnMgKi8KIFhFTl9DUFVGRUFUVVJFKE5TQ0IsICAgICAg
ICAgICAgICAgMTEqMzIrIDYpIC8qQSAgTnVsbCBTZWxlY3RvciBDbGVhcnMg
QmFzZSAoYW5kIGxpbWl0IHRvbykgKi8KIFhFTl9DUFVGRUFUVVJFKEFVVE9f
SUJSUywgICAgICAgICAgMTEqMzIrIDgpIC8qICAgQXV0b21hdGljIElCUlMg
Ki8KIFhFTl9DUFVGRUFUVVJFKFNCUEIsICAgICAgICAgICAgICAgMTEqMzIr
MjcpIC8qQSAgU2VsZWN0aXZlIEJyYW5jaCBQcmVkaWN0b3IgQmFycmllciAq
LwpAQCAtMzM4LDYgKzMzOSw4IEBAIFhFTl9DUFVGRUFUVVJFKFJGRFNfQ0xF
QVIsICAgICAgICAgMTYqMzIrMjgpIC8qIUEgUmVnaXN0ZXIgRmlsZShzKSBj
bGVhcmVkIGJ5IFZFCiBYRU5fQ1BVRkVBVFVSRShJVFNfTk8sICAgICAgICAg
ICAgIDE2KjMyKzYyKSAvKiFBIE5vIEluZGlyZWN0IFRhcmdldCBTZWxlY3Rp
b24gKi8KIAogLyogQU1ELWRlZmluZWQgQ1BVIGZlYXR1cmVzLCBDUFVJRCBs
ZXZlbCAweDgwMDAwMDIxLmVjeCwgd29yZCAxOCAqLworWEVOX0NQVUZFQVRV
UkUoVFNBX1NRX05PLCAgICAgICAgICAxOCozMisgMSkgLypBICBObyBTdG9y
ZSBRdWV1ZSBUcmFuc2l0aXZlIFNjaGVkdWxlciBBdHRhY2tzICovCitYRU5f
Q1BVRkVBVFVSRShUU0FfTDFfTk8sICAgICAgICAgIDE4KjMyKyAyKSAvKkEg
IE5vIEwxRCBUcmFuc2l0aXZlIFNjaGVkdWxlciBBdHRhY2tzICovCiAKICNl
bmRpZiAvKiBYRU5fQ1BVRkVBVFVSRSAqLwogCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-01.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-01.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxMCBTZXAgMjAyNCAyMDo1OTozNyArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1ZmVhdHVyZTogUmVwb3NpdGlvbiBjcHVfaGFzX3tsZmVu
Y2VfZGlzcGF0Y2gsbnNjYn0KCkxGRU5DRV9ESVNQQVRDSCB1c2VkIHRvIGJl
IGEgc3ludGhldGljIGZlYXR1cmUsIGJ1dCB3YXMgZ2l2ZW4gYSByZWFsIENQ
VUlEIGJpdApieSBBTUQuICBUaGUgZGVmaW5lIHdhc24ndCBtb3ZlZCB3aGVu
IHRoaXMgd2FzIGNoYW5nZWQuCgpOU0NCIGhhcyBhbHdheXMgYmVlbiBhIHJl
YWwgQ1BVSUQgYml0LCBhbmQgd2FzIG1pc3BsYWNlZCB3aGVuIGludHJvZHVj
ZWQgaW4KdGhlIHN5bnRoZXRpYyBibG9jayBhbG9uZ3NpZGUgTEZFTkNFX0RJ
U1BBVENILgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3
LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNo
IDxqYmV1bGljaEBzdXNlLmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21t
aXQgNmEwMzliMDUwMDcxZWJhNjQ0YWI0MTRkNzZhYzVkNWZjOWUwNjdhNSkK
CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVh
dHVyZS5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUu
aAppbmRleCA1MTVmM2Y2NGQ1NWIuLjkxOWE5ZTMxZjA0ZSAxMDA2NDQKLS0t
IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaAorKysg
Yi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oCkBAIC0x
OTAsNiArMTkwLDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBib290X2NwdV9o
YXModW5zaWduZWQgaW50IGZlYXQpCiAjZGVmaW5lIGNwdV9oYXNfYXZ4NTEy
X2JmMTYgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9BVlg1MTJfQkYx
NikKICNkZWZpbmUgY3B1X2hhc19hdnhfaWZtYSAgICAgICAgYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX0FWWF9JRk1BKQogCisvKiBDUFVJRCBsZXZlbCAw
eDgwMDAwMDIxLmVheCAqLworI2RlZmluZSBjcHVfaGFzX2xmZW5jZV9kaXNw
YXRjaCBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfTEZFTkNFX0RJU1BBVENI
KQorI2RlZmluZSBjcHVfaGFzX25zY2IgICAgICAgICAgICBib290X2NwdV9o
YXMoWDg2X0ZFQVRVUkVfTlNDQikKKwogLyogQ1BVSUQgbGV2ZWwgMHgwMDAw
MDAwNzoxLmVkeCAqLwogI2RlZmluZSBjcHVfaGFzX2F2eF92bm5pX2ludDgg
ICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQVZYX1ZOTklfSU5UOCkKICNk
ZWZpbmUgY3B1X2hhc19hdnhfbmVfY29udmVydCAgYm9vdF9jcHVfaGFzKFg4
Nl9GRUFUVVJFX0FWWF9ORV9DT05WRVJUKQpAQCAtMjE4LDggKzIyMiw2IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBib290X2NwdV9oYXModW5zaWduZWQgaW50
IGZlYXQpCiAjZGVmaW5lIGNwdV9oYXNfYXJjaF9wZXJmbW9uICAgIGJvb3Rf
Y3B1X2hhcyhYODZfRkVBVFVSRV9BUkNIX1BFUkZNT04pCiAjZGVmaW5lIGNw
dV9oYXNfY3B1aWRfZmF1bHRpbmcgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVS
RV9DUFVJRF9GQVVMVElORykKICNkZWZpbmUgY3B1X2hhc19hcGVyZm1wZXJm
ICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0FQRVJGTVBFUkYpCi0j
ZGVmaW5lIGNwdV9oYXNfbGZlbmNlX2Rpc3BhdGNoIGJvb3RfY3B1X2hhcyhY
ODZfRkVBVFVSRV9MRkVOQ0VfRElTUEFUQ0gpCi0jZGVmaW5lIGNwdV9oYXNf
bnNjYiAgICAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9OU0NC
KQogI2RlZmluZSBjcHVfaGFzX3hlbl9sYnIgICAgICAgICBib290X2NwdV9o
YXMoWDg2X0ZFQVRVUkVfWEVOX0xCUikKICNkZWZpbmUgY3B1X2hhc194ZW5f
c2hzdGsgICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1hFTl9TSFNU
SykKICNkZWZpbmUgY3B1X2hhc194ZW5faWJ0ICAgICAgICAgYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX1hFTl9JQlQpCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-02.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-02.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEFwciAyMDI1IDE0OjU5OjAxICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBNb3ZlIG1vbml0b3IoKS9td2FpdCgpIHdyYXBwZXJz
IGludG8gY3B1LWlkbGUuYwoKVGhleSdyZSBub3QgdXNlZCBieSBhbnkgb3Ro
ZXIgdHJhbnNsYXRpb24gdW5pdCwgc28gc2hvdWxkbid0IGxpdmUgaW4KYXNt
L3Byb2Nlc3Nvci5oLCB3aGljaCBpcyBpbmNsdWRlZCBhbG1vc3QgZXZlcnl3
aGVyZS4KCk91ciBuZXcgdG9vbGNoYWluIGJhc2VsaW5lIGtub3dzIHRoZSBN
T05JVE9SL01XQUlUIGluc3RydWN0aW9ucywgc28gdXNlIHRoZW0KZGlyZWN0
bHkgcmF0aGVyIHRoYW4gdXNpbmcgcmF3IGhleC4KCkNoYW5nZSB0aGUgaGlu
dC9leHRlbnRpb24gcGFyYW1ldGVycyBmcm9tIGxvbmcgdG8gaW50LiAgVGhl
eSdyZSBzcGVjaWZpZWQgdG8KcmVtYWluIDMyYml0IG9wZXJhbmRzIGV2ZW4g
NjQtYml0IG1vZGUuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogSmFuIEJl
dWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgooY2hlcnJ5IHBpY2tlZCBmcm9t
IGNvbW1pdCA2MWUxMGZjMjhjY2RkZmY3YzcyYzE0YWNlYzU2ZGM3ZWYyYjE1
NWQxKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxl
LmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCmluZGV4IDA0MGJh
YjYwYjZmYi4uZWMyZDU3MGRjMjdiIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94
ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2Nw
dV9pZGxlLmMKQEAgLTU5LDYgKzU5LDE5IEBACiAKIC8qI2RlZmluZSBERUJV
R19QTV9DWCovCiAKK3N0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgbW9uaXRv
cigKKyAgICBjb25zdCB2b2lkICphZGRyLCB1bnNpZ25lZCBpbnQgZWN4LCB1
bnNpZ25lZCBpbnQgZWR4KQoreworICAgIGFzbSB2b2xhdGlsZSAoICJtb25p
dG9yIgorICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoYWRkciksICJjIiAo
ZWN4KSwgImQiIChlZHgpICk7Cit9CisKK3N0YXRpYyBhbHdheXNfaW5saW5l
IHZvaWQgbXdhaXQodW5zaWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVj
eCkKK3sKKyAgICBhc20gdm9sYXRpbGUgKCAibXdhaXQiCisgICAgICAgICAg
ICAgICAgICAgOjogImEiIChlYXgpLCAiYyIgKGVjeCkgKTsKK30KKwogI2Rl
ZmluZSBHRVRfSFdfUkVTX0lOX05TKG1zciwgdmFsKSBcCiAgICAgZG8geyBy
ZG1zcmwobXNyLCB2YWwpOyB2YWwgPSB0c2NfdGlja3MybnModmFsKTsgfSB3
aGlsZSggMCApCiAjZGVmaW5lIEdFVF9NQzZfUkVTKHZhbCkgIEdFVF9IV19S
RVNfSU5fTlMoMHg2NjQsIHZhbCkKQEAgLTQ4Miw3ICs0OTUsNyBAQCB2b2lk
IG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNp
Z25lZCBpbnQgZWN4KQogICAgICAgICBtYigpOwogICAgIH0KIAotICAgIF9f
bW9uaXRvcihtb25pdG9yX2FkZHIsIDAsIDApOworICAgIG1vbml0b3IobW9u
aXRvcl9hZGRyLCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIAogICAgIC8qCkBA
IC00OTYsNyArNTA5LDcgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHMo
dW5zaWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAg
Y3B1bWFza19zZXRfY3B1KGNwdSwgJmNwdWlkbGVfbXdhaXRfZmxhZ3MpOwog
CiAgICAgICAgIHNwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8pOwotICAgICAg
ICBfX213YWl0KGVheCwgZWN4KTsKKyAgICAgICAgbXdhaXQoZWF4LCBlY3gp
OwogICAgICAgICBzcGVjX2N0cmxfZXhpdF9pZGxlKGluZm8pOwogCiAgICAg
ICAgIGNwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJmNwdWlkbGVfbXdhaXRfZmxh
Z3MpOwpAQCAtOTI3LDkgKzk0MCw5IEBAIHZvaWQgY2ZfY2hlY2sgYWNwaV9k
ZWFkX2lkbGUodm9pZCkKICAgICAgICAgICAgICAqLwogICAgICAgICAgICAg
bWIoKTsKICAgICAgICAgICAgIGNsZmx1c2gobXdhaXRfcHRyKTsKLSAgICAg
ICAgICAgIF9fbW9uaXRvcihtd2FpdF9wdHIsIDAsIDApOworICAgICAgICAg
ICAgbW9uaXRvcihtd2FpdF9wdHIsIDAsIDApOwogICAgICAgICAgICAgbWIo
KTsKLSAgICAgICAgICAgIF9fbXdhaXQoY3gtPmFkZHJlc3MsIDApOworICAg
ICAgICAgICAgbXdhaXQoY3gtPmFkZHJlc3MsIDApOwogICAgICAgICB9CiAg
ICAgfQogICAgIGVsc2UgaWYgKCAoY3VycmVudF9jcHVfZGF0YS54ODZfdmVu
ZG9yICYKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
cm9jZXNzb3IuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNz
b3IuaAppbmRleCAxYmJhNGM1MDAyYzYuLmM1ZTVjNzIzNDFhZCAxMDA2NDQK
LS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCisr
KyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaApAQCAt
MzEyLDIzICszMTIsNiBAQCBzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNl
dF9pbl9jcjQgKHVuc2lnbmVkIGxvbmcgbWFzaykKICAgICB3cml0ZV9jcjQo
cmVhZF9jcjQoKSB8IG1hc2spOwogfQogCi1zdGF0aWMgYWx3YXlzX2lubGlu
ZSB2b2lkIF9fbW9uaXRvcihjb25zdCB2b2lkICplYXgsIHVuc2lnbmVkIGxv
bmcgZWN4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgbG9uZyBlZHgpCi17Ci0gICAgLyogIm1vbml0b3IgJWVheCwl
ZWN4LCVlZHg7IiAqLwotICAgIGFzbSB2b2xhdGlsZSAoCi0gICAgICAgICIu
Ynl0ZSAweDBmLDB4MDEsMHhjODsiCi0gICAgICAgIDogOiAiYSIgKGVheCks
ICJjIiAoZWN4KSwgImQiKGVkeCkgKTsKLX0KLQotc3RhdGljIGFsd2F5c19p
bmxpbmUgdm9pZCBfX213YWl0KHVuc2lnbmVkIGxvbmcgZWF4LCB1bnNpZ25l
ZCBsb25nIGVjeCkKLXsKLSAgICAvKiAibXdhaXQgJWVheCwlZWN4OyIgKi8K
LSAgICBhc20gdm9sYXRpbGUgKAotICAgICAgICAiLmJ5dGUgMHgwZiwweDAx
LDB4Yzk7IgotICAgICAgICA6IDogImEiIChlYXgpLCAiYyIgKGVjeCkgKTsK
LX0KLQogI2RlZmluZSBJT0JNUF9CWVRFUyAgICAgICAgICAgICA4MTkyCiAj
ZGVmaW5lIElPQk1QX0lOVkFMSURfT0ZGU0VUICAgIDB4ODAwMAogCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-03.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-03.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEFwciAyMDI1IDE1OjU1OjI5ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZW1vdmUgTUZFTkNFcyBmb3IgQ0xGTFVTSF9NT05J
VE9SCgpDb21taXQgNDhkMzI0NThiY2Q0ICgieDg2LCBpZGxlOiBhZGQgYmFy
cmllcnMgdG8gQ0xGTFVTSCB3b3JrYXJvdW5kIikgd2FzCmluaGVyaXRlZCBm
cm9tIExpbnV4IGFuZCBhZGRlZCBNRkVOQ0VzIGFyb3VuZCB0aGUgQUFJNjUg
ZXJyYXRhIGZpeC4KClRoZSBTRE0gbm93IHN0YXRlczoKCiAgRXhlY3V0aW9u
cyBvZiB0aGUgQ0xGTFVTSCBpbnN0cnVjdGlvbiBhcmUgb3JkZXJlZCB3aXRo
IHJlc3BlY3QgdG8gZWFjaAogIG90aGVyIGFuZCB3aXRoIHJlc3BlY3QgdG8g
d3JpdGVzLCBsb2NrZWQgcmVhZC1tb2RpZnktd3JpdGUgaW5zdHJ1Y3Rpb25z
LAogIGFuZCBmZW5jZSBpbnN0cnVjdGlvbnNbMV0uCgp3aXRoIGZvb3Rub3Rl
IDEgcmVhZGluZzoKCiAgRWFybGllciB2ZXJzaW9ucyBvZiB0aGlzIG1hbnVh
bCBzcGVjaWZpZWQgdGhhdCBleGVjdXRpb25zIG9mIHRoZSBDTEZMVVNICiAg
aW5zdHJ1Y3Rpb24gd2VyZSBvcmRlcmVkIG9ubHkgYnkgdGhlIE1GRU5DRSBp
bnN0cnVjdGlvbi4gIEFsbCBwcm9jZXNzb3JzCiAgaW1wbGVtZW50aW5nIHRo
ZSBDTEZMVVNIIGluc3RydWN0aW9uIGFsc28gb3JkZXIgaXQgcmVsYXRpdmUg
dG8gdGhlIG90aGVyCiAgb3BlcmF0aW9ucyBlbnVtZXJhdGVkIGFib3ZlLgoK
SS5lLiB0aGUgTUZFTkNFcyBjYW1lIGFib3V0IGJlY2F1c2Ugb2YgYW4gaW5j
b3JyZWN0IHN0YXRlbWVudCBpbiB0aGUgU0RNLgoKVGhlIFNwZWMgVXBkYXRl
IChubyBsb25nZXIgYXZhaWxhYmxlIG9uIEludGVsJ3Mgd2Vic2l0ZSkgc2lt
cGx5IHNheXMgImlzc3VlIGEKQ0xGTFVTSCIsIHdpdGggbm8gbWVudGlvbiBv
ZiBNRkVOQ0VzLgoKQXMgdGhpcyBlcnJhdHVtIGlzIHNwZWNpZmljIHRvIElu
dGVsLCBpdCdzIGZpbmUgdG8gcmVtb3ZlIHRoZSB0aGUgTUZFTkNFczsgQU1E
CkNQVXMgb2YgYSBzaW1pbGFyIHZpbnRhZ2UgZG8gc3BvcnQgb3RoZXJ3aXNl
LXVub3JkZXJlZCBDTEZMVVNIcy4KCk1vdmUgdGhlIGZlYXR1cmUgYml0IGlu
dG8gdGhlIEJVRyByYW5nZSAocmF0aGVyIHRoYW4gRkVBVFVSRSksIGFuZCBt
b3ZlIHRoZQp3b3JrYXJvdW5kIGludG8gbW9uaXRvcigpIGl0c2VsZi4KClRo
ZSBlcnJhdHVtIGNoZWNrIGl0c2VsZiBtdXN0IHVzZSBzZXR1cF9mb3JjZV9j
cHVfY2FwKCkuICBJdCBuZWVkcyBhY3RpdmF0aW5nCmlmIGFueSBDUFUgbmVl
ZHMgaXQsIG5vdCBpZiBhbGwgb2YgdGhlbSBuZWVkIGl0LgoKRml4ZXM6IDQ4
ZDMyNDU4YmNkNCAoIng4NiwgaWRsZTogYWRkIGJhcnJpZXJzIHRvIENMRkxV
U0ggd29ya2Fyb3VuZCIpCkZpeGVzOiA5NmQxYjIzN2FlOWIgKCJ4ODYvSW50
ZWw6IHdvcmsgYXJvdW5kIFhlb24gNzQwMCBzZXJpZXMgZXJyYXR1bSBBQUk2
NSIpCkxpbms6IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDA5MDIx
OTA1NDg0MS9odHRwOi8vZG93bmxvYWQuaW50ZWwuY29tL2Rlc2lnbi94ZW9u
L3NwZWN1cGR0LzMyMDMzNjAxLnBkZgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcg
Q29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZpZXdlZC1i
eTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgooY2hlcnJ5IHBp
Y2tlZCBmcm9tIGNvbW1pdCBmNzdlZjM0NDM1NDJhMmMyYmJkNTllZTY2MTc4
Mjg3ZDRmYTViNDNmKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9hY3Bp
L2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCmlu
ZGV4IGVjMmQ1NzBkYzI3Yi4uZjFiOWUyZmJmNmU3IDEwMDY0NAotLS0gYS94
ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4
Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTYyLDYgKzYyLDkgQEAKIHN0YXRpYyBh
bHdheXNfaW5saW5lIHZvaWQgbW9uaXRvcigKICAgICBjb25zdCB2b2lkICph
ZGRyLCB1bnNpZ25lZCBpbnQgZWN4LCB1bnNpZ25lZCBpbnQgZWR4KQogewor
ICAgIGFsdGVybmF0aXZlX2lucHV0KCIiLCAiY2xmbHVzaCAoJVthZGRyXSki
LCBYODZfQlVHX0NMRkxVU0hfTU9OSVRPUiwKKyAgICAgICAgICAgICAgICAg
ICAgICBbYWRkcl0gImEiIChhZGRyKSk7CisKICAgICBhc20gdm9sYXRpbGUg
KCAibW9uaXRvciIKICAgICAgICAgICAgICAgICAgICA6OiAiYSIgKGFkZHIp
LCAiYyIgKGVjeCksICJkIiAoZWR4KSApOwogfQpAQCAtNDg4LDEzICs0OTEs
NiBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQg
ZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogICAgIHNfdGltZV90IGV4cGlyZXMg
PSBwZXJfY3B1KHRpbWVyX2RlYWRsaW5lLCBjcHUpOwogICAgIGNvbnN0IHZv
aWQgKm1vbml0b3JfYWRkciA9ICZtd2FpdF93YWtldXAoY3B1KTsKIAotICAg
IGlmICggYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0NMRkxVU0hfTU9OSVRP
UikgKQotICAgIHsKLSAgICAgICAgbWIoKTsKLSAgICAgICAgY2xmbHVzaCht
b25pdG9yX2FkZHIpOwotICAgICAgICBtYigpOwotICAgIH0KLQogICAgIG1v
bml0b3IobW9uaXRvcl9hZGRyLCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIApA
QCAtOTI5LDE5ICs5MjUsNyBAQCB2b2lkIGNmX2NoZWNrIGFjcGlfZGVhZF9p
ZGxlKHZvaWQpCiAKICAgICAgICAgd2hpbGUgKCAxICkKICAgICAgICAgewot
ICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIDEuIFRoZSBDTEZMVVNI
IGlzIGEgd29ya2Fyb3VuZCBmb3IgZXJyYXR1bSBBQUk2NSBmb3IKLSAgICAg
ICAgICAgICAqIHRoZSBYZW9uIDc0MDAgc2VyaWVzLiAgCi0gICAgICAgICAg
ICAgKiAyLiBUaGUgV0JJTlZEIGlzIGluc3VmZmljaWVudCBkdWUgdG8gdGhl
IHNwdXJpb3VzLXdha2V1cAotICAgICAgICAgICAgICogY2FzZSB3aGVyZSB3
ZSByZXR1cm4gYXJvdW5kIHRoZSBsb29wLgotICAgICAgICAgICAgICogMy4g
VW5saWtlIHdiaW52ZCwgY2xmbHVzaCBpcyBhIGxpZ2h0IHdlaWdodCBidXQg
bm90IHNlcmlhbGl6aW5nIAotICAgICAgICAgICAgICogaW5zdHJ1Y3Rpb24s
IGhlbmNlIG1lbW9yeSBmZW5jZSBpcyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJl
IGFsbCAKLSAgICAgICAgICAgICAqIGxvYWQvc3RvcmUgdmlzaWJsZSBiZWZv
cmUgZmx1c2ggY2FjaGUgbGluZS4KLSAgICAgICAgICAgICAqLwotICAgICAg
ICAgICAgbWIoKTsKLSAgICAgICAgICAgIGNsZmx1c2gobXdhaXRfcHRyKTsK
ICAgICAgICAgICAgIG1vbml0b3IobXdhaXRfcHRyLCAwLCAwKTsKLSAgICAg
ICAgICAgIG1iKCk7CiAgICAgICAgICAgICBtd2FpdChjeC0+YWRkcmVzcywg
MCk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94
ODYvY3B1L2ludGVsLmMgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKaW5k
ZXggNmYyYjNmZmZkZDM0Li4wNGEwMDJlMWUwYzkgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9jcHUvaW50ZWwuYworKysgYi94ZW4vYXJjaC94ODYvY3B1
L2ludGVsLmMKQEAgLTQ0Niw2ICs0NDYsNyBAQCBzdGF0aWMgdm9pZCBfX2lu
aXQgcHJvYmVfbXdhaXRfZXJyYXRhKHZvaWQpCiAgKgogICogWGVvbiA3NDAw
IGVycmF0dW0gQUFJNjUgKGFuZCBmdXJ0aGVyIG5ld2VyIFhlb25zKQogICog
TU9OSVRPUi9NV0FJVCBtYXkgaGF2ZSBleGNlc3NpdmUgZmFsc2Ugd2FrZXVw
cworICogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMDkwMjE5MDU0
ODQxL2h0dHA6Ly9kb3dubG9hZC5pbnRlbC5jb20vZGVzaWduL3hlb24vc3Bl
Y3VwZHQvMzIwMzM2MDEucGRmCiAgKi8KIHN0YXRpYyB2b2lkIEludGVsX2Vy
cmF0YV93b3JrYXJvdW5kcyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiB7CkBA
IC00NjMsNyArNDY0LDcgQEAgc3RhdGljIHZvaWQgSW50ZWxfZXJyYXRhX3dv
cmthcm91bmRzKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIAogCWlmIChjLT54
ODYgPT0gNiAmJiBjcHVfaGFzX2NsZmx1c2ggJiYKIAkgICAgKGMtPng4Nl9t
b2RlbCA9PSAyOSB8fCBjLT54ODZfbW9kZWwgPT0gNDYgfHwgYy0+eDg2X21v
ZGVsID09IDQ3KSkKLQkJX19zZXRfYml0KFg4Nl9GRUFUVVJFX0NMRkxVU0hf
TU9OSVRPUiwgYy0+eDg2X2NhcGFiaWxpdHkpOworCQlzZXR1cF9mb3JjZV9j
cHVfY2FwKFg4Nl9CVUdfQ0xGTFVTSF9NT05JVE9SKTsKIAogCXByb2JlX2Mz
X2VycmF0YShjKTsKIAlpZiAoc3lzdGVtX3N0YXRlIDwgU1lTX1NUQVRFX3Nt
cF9ib290KQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L2NwdWZlYXR1cmVzLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1
ZmVhdHVyZXMuaAppbmRleCA5ZTNlZDIxYzAyNmQuLjg0YzkzMjkyYzgwYyAx
MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1
cmVzLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1
cmVzLmgKQEAgLTE5LDcgKzE5LDcgQEAgWEVOX0NQVUZFQVRVUkUoQVJDSF9Q
RVJGTU9OLCAgICAgIFg4Nl9TWU5USCggMykpIC8qIEludGVsIEFyY2hpdGVj
dHVyYWwgUGVyZk1vbgogWEVOX0NQVUZFQVRVUkUoVFNDX1JFTElBQkxFLCAg
ICAgIFg4Nl9TWU5USCggNCkpIC8qIFRTQyBpcyBrbm93biB0byBiZSByZWxp
YWJsZSAqLwogWEVOX0NQVUZFQVRVUkUoWFRPUE9MT0dZLCAgICAgICAgIFg4
Nl9TWU5USCggNSkpIC8qIGNwdSB0b3BvbG9neSBlbnVtIGV4dGVuc2lvbnMg
Ki8KIFhFTl9DUFVGRUFUVVJFKENQVUlEX0ZBVUxUSU5HLCAgICBYODZfU1lO
VEgoIDYpKSAvKiBjcHVpZCBmYXVsdGluZyAqLwotWEVOX0NQVUZFQVRVUkUo
Q0xGTFVTSF9NT05JVE9SLCAgIFg4Nl9TWU5USCggNykpIC8qIGNsZmx1c2gg
cmVxZCB3aXRoIG1vbml0b3IgKi8KKy8qIEJpdCA3IHVudXNlZCAqLwogWEVO
X0NQVUZFQVRVUkUoQVBFUkZNUEVSRiwgICAgICAgIFg4Nl9TWU5USCggOCkp
IC8qIEFQRVJGTVBFUkYgKi8KIFhFTl9DUFVGRUFUVVJFKE1GRU5DRV9SRFRT
QywgICAgICBYODZfU1lOVEgoIDkpKSAvKiBNRkVOQ0Ugc3luY2hyb25pemVz
IFJEVFNDICovCiBYRU5fQ1BVRkVBVFVSRShYRU5fU01FUCwgICAgICAgICAg
WDg2X1NZTlRIKDEwKSkgLyogU01FUCBnZXRzIHVzZWQgYnkgWGVuIGl0c2Vs
ZiAqLwpAQCAtNTIsNiArNTIsNyBAQCBYRU5fQ1BVRkVBVFVSRShVU0VfVk1D
QUxMLCAgICAgICAgWDg2X1NZTlRIKDMwKSkgLyogVXNlIFZNQ0FMTCBpbnN0
ZWFkIG9mIFZNTUNBTAogI2RlZmluZSBYODZfQlVHX05VTExfU0VHICAgICAg
ICAgIFg4Nl9CVUcoIDEpIC8qIE5VTEwtaW5nIGEgc2VsZWN0b3IgcHJlc2Vy
dmVzIHRoZSBiYXNlIGFuZCBsaW1pdC4gKi8KICNkZWZpbmUgWDg2X0JVR19D
TEZMVVNIX01GRU5DRSAgICBYODZfQlVHKCAyKSAvKiBNRkVOQ0UgbmVlZGVk
IHRvIHNlcmlhbGlzZSBDTEZMVVNIICovCiAjZGVmaW5lIFg4Nl9CVUdfSUJQ
Ql9OT19SRVQgICAgICAgWDg2X0JVRyggMykgLyogSUJQQiBkb2Vzbid0IGZs
dXNoIHRoZSBSU0IvUkFTICovCisjZGVmaW5lIFg4Nl9CVUdfQ0xGTFVTSF9N
T05JVE9SICAgWDg2X0JVRyggNCkgLyogTU9OSVRPUiByZXF1aXJlcyBDTEZM
VVNIICovCiAKICNkZWZpbmUgWDg2X1NQRUNfTk9fTEZFTkNFX0VOVFJZX1BW
IFg4Nl9CVUcoMTYpIC8qIChObykgc2FmZXR5IExGRU5DRSBmb3IgU1BFQ19D
VFJMX0VOVFJZX1BWLiAqLwogI2RlZmluZSBYODZfU1BFQ19OT19MRkVOQ0Vf
RU5UUllfSU5UUiBYODZfQlVHKDE3KSAvKiAoTm8pIHNhZmV0eSBMRkVOQ0Ug
Zm9yIFNQRUNfQ1RSTF9FTlRSWV9JTlRSLiAqLwo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-04.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-04.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAyNCBKdW4gMjAyNSAxNToyMDo1MiArMDEwMApTdWJq
ZWN0OiBSZXZlcnQgcGFydCBvZiAieDg2L213YWl0LWlkbGU6IGRpc2FibGUg
SUJSUyBkdXJpbmcgbG9uZyBpZGxlIgoKTW9zdCBvZiB0aGUgcGF0Y2ggKGhh
bmRsaW5nIG9mIENQVUlETEVfRkxBR19JQlJTKSBpcyBmaW5lLCBidXQgdGhl
CmFkanVzdGVtZW50cyB0byBtd2FpdF9pZGxlKCkgYXJlIG5vdDsgc3BlY19j
dHJsX2VudGVyX2lkbGUoKSBkb2VzIG1vcmUgdGhhbgpqdXN0IGFsdGVyIE1T
Ul9TUEVDX0NUUkwuSUJSUy4KClRoZSBvbmx5IHJlYXNvbiB0aGlzIGRvZXNu
J3QgbmVlZCBhbiBYU0EgaXMgYmVjYXVzZSB0aGUgdW5jb25kaXRpb25hbApz
cGVjX2N0cmxfe2VudGVyLGV4aXR9X2lkbGUoKSBpbiBtd2FpdF9pZGxlX3dp
dGhfaGludHMoKSB3ZXJlIGxlZnQgdW5hbHRlcmVkLAphbmQgdGh1cyB0aGUg
TVdBSVQgcmVtYWluZWQgcHJvcGVybHkgcHJvdGVjdGVkLgoKVGhlcmUgKHdv
dWxkIGhhdmUgYmVlbikgdHdvIHByb2JsZW1zLiAgSW4gdGhlIGlicnNfZGlz
YWJsZSAoPT0gZGVlcCBDKSBjYXNlOgoKICogT24gZW50cnksIFZFUlcgYW5k
IFJTQi1zdHVmZmluZyBhcmUgYXJjaGl0ZWN0dXJhbGx5IHNraXBwZWQuCiAq
IE9uIGV4aXQsIHRoZXJlJ3MgYSBicmFuY2ggY3Jvc3NpbmcgdGhlIFdSTVNS
IHdoaWNoIHJlaW5zdGF0ZXMgdGhlCiAgIHNwZWN1bGF0aXZlIHNhZmV0eSBm
b3IgaW5kaXJlY3QgYnJhbmNoZXMuCgpBbGwgdGhpcyBjaGFuZ2UgZGlkIHdh
cyBkb3VibGUgdXAgdGhlIGV4cGVuc2l2ZSBvcGVyYXRpb25zIGluIHRoZSBk
ZWVwIEMgY2FzZSwKYW5kIGZhaWwgdG8gb3B0aW1pc2UgdGhlIGludGVuZGVk
IGNhc2UuCgpJIGhhdmUgYW4gaWRlYSBvZiBob3cgdG8gcGx1bWIgdGhpcyBt
b3JlIG5pY2VseSwgYnV0IGl0IHJlcXVpcmVzIGxhcmdlcgpjaGFuZ2VzIHRv
IGxlZ2FjeSBJQlJTIGhhbmRsaW5nIHRvIG5vdCBtYWtlIHNwZWNfY3RybF9l
bnRlcl9pZGxlKCkgdnVsbmVyYWJsZQppbiBvdGhlciB3YXlzLiAgSW4gdGhl
IHNob3J0IHRlcm0sIHNpbXBseSB0YWtlIG91dCB0aGUgcGVyZiBoaXQuCgpG
aXhlczogMDhhY2RmOWEyNjE1ICgieDg2L213YWl0LWlkbGU6IGRpc2FibGUg
SUJSUyBkdXJpbmcgbG9uZyBpZGxlIikKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQt
Ynk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KKGNoZXJyeSBw
aWNrZWQgZnJvbSBjb21taXQgMDdkNzE2MzMzNGE3NTA3ZDMyOTk1OGIxOWQ5
NzZiZTc2OTU4MDk5OSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1
L213YWl0LWlkbGUuYyBiL3hlbi9hcmNoL3g4Ni9jcHUvbXdhaXQtaWRsZS5j
CmluZGV4IGZmNWM4MDhiYzk1Mi4uZTk1ZmU1ZDg4OTA3IDEwMDY0NAotLS0g
YS94ZW4vYXJjaC94ODYvY3B1L213YWl0LWlkbGUuYworKysgYi94ZW4vYXJj
aC94ODYvY3B1L213YWl0LWlkbGUuYwpAQCAtODkxLDcgKzg5MSw2IEBAIHN0
YXRpYyBjb25zdCBzdHJ1Y3QgY3B1aWRsZV9zdGF0ZSBzbnJfY3N0YXRlc1td
ID0gewogc3RhdGljIHZvaWQgY2ZfY2hlY2sgbXdhaXRfaWRsZSh2b2lkKQog
ewogCXVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0J
c3RydWN0IGNwdV9pbmZvICppbmZvID0gZ2V0X2NwdV9pbmZvKCk7CiAJc3Ry
dWN0IGFjcGlfcHJvY2Vzc29yX3Bvd2VyICpwb3dlciA9IHByb2Nlc3Nvcl9w
b3dlcnNbY3B1XTsKIAlzdHJ1Y3QgYWNwaV9wcm9jZXNzb3JfY3ggKmN4ID0g
TlVMTDsKIAl1bnNpZ25lZCBpbnQgbmV4dF9zdGF0ZTsKQEAgLTkxOCw2ICs5
MTcsOCBAQCBzdGF0aWMgdm9pZCBjZl9jaGVjayBtd2FpdF9pZGxlKHZvaWQp
CiAJCQlwbV9pZGxlX3NhdmUoKTsKIAkJZWxzZQogCQl7CisJCQlzdHJ1Y3Qg
Y3B1X2luZm8gKmluZm8gPSBnZXRfY3B1X2luZm8oKTsKKwogCQkJc3BlY19j
dHJsX2VudGVyX2lkbGUoaW5mbyk7CiAJCQlzYWZlX2hhbHQoKTsKIAkJCXNw
ZWNfY3RybF9leGl0X2lkbGUoaW5mbyk7CkBAIC05NDQsMTEgKzk0NSw2IEBA
IHN0YXRpYyB2b2lkIGNmX2NoZWNrIG13YWl0X2lkbGUodm9pZCkKIAlpZiAo
KGN4LT50eXBlID49IDMpICYmIGVycmF0YV9jNl93b3JrYXJvdW5kKCkpCiAJ
CWN4ID0gcG93ZXItPnNhZmVfc3RhdGU7CiAKLQlpZiAoY3gtPmlicnNfZGlz
YWJsZSkgewotCQlBU1NFUlQoIWN4LT5pcnFfZW5hYmxlX2Vhcmx5KTsKLQkJ
c3BlY19jdHJsX2VudGVyX2lkbGUoaW5mbyk7Ci0JfQotCiAjaWYgMCAvKiBY
WFggQ2FuIHdlL2RvIHdlIG5lZWQgdG8gZG8gc29tZXRoaW5nIHNpbWlsYXIg
b24gWGVuPyAqLwogCS8qCiAJICogbGVhdmVfbW0oKSB0byBhdm9pZCBjb3N0
bHkgYW5kIG9mdGVuIHVubmVjZXNzYXJ5IHdha2V1cHMKQEAgLTk4MCwxMCAr
OTc2LDYgQEAgc3RhdGljIHZvaWQgY2ZfY2hlY2sgbXdhaXRfaWRsZSh2b2lk
KQogCiAJLyogTm93IGJhY2sgaW4gQzAuICovCiAJdXBkYXRlX2lkbGVfc3Rh
dHMocG93ZXIsIGN4LCBiZWZvcmUsIGFmdGVyKTsKLQotCWlmIChjeC0+aWJy
c19kaXNhYmxlKQotCQlzcGVjX2N0cmxfZXhpdF9pZGxlKGluZm8pOwotCiAJ
bG9jYWxfaXJxX2VuYWJsZSgpOwogCiAJVFJBQ0VfNkQoVFJDX1BNX0lETEVf
RVhJVCwgY3gtPnR5cGUsIGFmdGVyLAo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-05.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-05.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxNDo0NjowMSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogU2ltcGxpZnkgbG9naWMgaW4KIGd1ZXN0
X2NvbW1vbl9kZWZhdWx0X2ZlYXR1cmVfYWRqdXN0bWVudHMoKQoKRm9yIGZl
YXR1cmVzIHdoaWNoIGFyZSB1bmNvbmRpdGlvbmFsbHkgc2V0IGluIHRoZSBt
YXggcG9saWNpZXMsIG1ha2luZyB0aGUKZGVmYXVsdCBwb2xpY3kgdG8gbWF0
Y2ggdGhlIGhvc3QgY2FuIGJlIGRvbmUgd2l0aCBhIGNvbmRpdGlvbmFsIGNs
ZWFyLgoKVGhpcyBpcyBzaW1wbGVyIHRoYW4gdGhlIHVuY29uZGl0aW9uYWwg
Y2xlYXIsIGNvbmRpdGlvbmFsIHNldCBjdXJyZW50bHkKcGVyZm9ybWVkLgoK
U2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNA
Y2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGlj
aEBzdXNlLmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMzBmOGZl
ZDY4ZjNjMmU2MzU5NGZmOTIwMmIzZDA1Yjk3MTc4MWUzNikKCmRpZmYgLS1n
aXQgYS94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5jIGIveGVuL2FyY2gveDg2
L2NwdS1wb2xpY3kuYwppbmRleCA3NzQ1ZDVkMmQ1MGQuLjYwOGUwM2ZlNWUz
YiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYworKysg
Yi94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5jCkBAIC01NDAsMTcgKzU0MCwx
NCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRf
ZmVhdHVyZV9hZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICAgICAq
IHJlYXNvbnMsIHNvIHJlc2V0IHRoZSBkZWZhdWx0IHBvbGljeSBiYWNrIHRv
IHRoZSBob3N0IHZhbHVlcyBpbgogICAgICAgICAgKiBjYXNlIHdlJ3JlIHVu
YWZmZWN0ZWQuCiAgICAgICAgICAqLwotICAgICAgICBfX2NsZWFyX2JpdChY
ODZfRkVBVFVSRV9NRF9DTEVBUiwgZnMpOwotICAgICAgICBpZiAoIGNwdV9o
YXNfbWRfY2xlYXIgKQotICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFU
VVJFX01EX0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfbWRf
Y2xlYXIgKQorICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVf
TURfQ0xFQVIsIGZzKTsKIAotICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVB
VFVSRV9GQl9DTEVBUiwgZnMpOwotICAgICAgICBpZiAoIGNwdV9oYXNfZmJf
Y2xlYXIgKQotICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX0ZC
X0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfZmJfY2xlYXIg
KQorICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfRkJfQ0xF
QVIsIGZzKTsKIAotICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9S
RkRTX0NMRUFSLCBmcyk7Ci0gICAgICAgIGlmICggY3B1X2hhc19yZmRzX2Ns
ZWFyICkKLSAgICAgICAgICAgIF9fc2V0X2JpdChYODZfRkVBVFVSRV9SRkRT
X0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfcmZkc19jbGVh
ciApCisgICAgICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9SRkRT
X0NMRUFSLCBmcyk7CiAKICAgICAgICAgLyoKICAgICAgICAgICogVGhlIEdh
dGhlciBEYXRhIFNhbXBsaW5nIG1pY3JvY29kZSBtaXRpZ2F0aW9uIChBdWd1
c3QgMjAyMykgaGFzIGFuCkBAIC01NzAsMTMgKzU2NywxMSBAQCBzdGF0aWMg
dm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9hZGp1
c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICogVG9wb2xvZ3kgaW5mb3Jt
YXRpb24gaXMgYXQgdGhlIHRvb2xzdGFjaydzIGRpc2NyZXRpb24gc28gdGhl
c2UgYXJlCiAgICAgICogdW5jb25kaXRpb25hbGx5IHNldCBpbiBtYXgsIGJ1
dCBwaWNrIGEgZGVmYXVsdCB3aGljaCBtYXRjaGVzIHRoZSBob3N0LgogICAg
ICAqLwotICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJFX0hUVCwgZnMpOwot
ICAgIGlmICggY3B1X2hhc19odHQgKQotICAgICAgICBfX3NldF9iaXQoWDg2
X0ZFQVRVUkVfSFRULCBmcyk7CisgICAgaWYgKCAhY3B1X2hhc19odHQgKQor
ICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9IVFQsIGZzKTsKIAot
ICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJFX0NNUF9MRUdBQ1ksIGZzKTsK
LSAgICBpZiAoIGNwdV9oYXNfY21wX2xlZ2FjeSApCi0gICAgICAgIF9fc2V0
X2JpdChYODZfRkVBVFVSRV9DTVBfTEVHQUNZLCBmcyk7CisgICAgaWYgKCAh
Y3B1X2hhc19jbXBfbGVnYWN5ICkKKyAgICAgICAgX19jbGVhcl9iaXQoWDg2
X0ZFQVRVUkVfQ01QX0xFR0FDWSwgZnMpOwogCiAgICAgLyoKICAgICAgKiBP
biBjZXJ0YWluIGhhcmR3YXJlLCBzcGVjdWxhdGl2ZSBvciBlcnJhdGEgd29y
a2Fyb3VuZHMgY2FuIHJlc3VsdCBpbgo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-06.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-06.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDExOjMzOjQxICswMTAwClN1Ympl
Y3Q6IHg4Ni9jcHUtcG9saWN5OiBGaXggaGFuZGxpbmcgb2YgbGVhZiAweDgw
MDAwMDIxCgpXaGVuIHN1cHBvcnQgd2FzIG9yaWdpbmFsbHkgaW50cm9kdWNl
ZCwgZWJ4LCBlY3ggYW5kIGVkeCB3ZXJlIHJlc2VydmVkIGFuZApzaG91bGQg
aGF2ZSBiZWVuIHplcm9lZCBpbiByZWNhbGN1bGF0ZV9taXNjKCkgdG8gYXZv
aWQgbGVha2luZyBpbnRvIGd1ZXN0cy4KClNpbmNlIHRoZW4sIGZpZWxkcyBo
YXZlIGJlZW4gYWRkZWQgaW50byBlYnguICBHdWVzdHMgY2FuJ3QgbG9hZCBt
aWNyb2NvZGUsIHNvCnNob3VsZG4ndCBzZWUgdWNvZGVfc2l6ZSwgYW5kIHdo
aWxlIGluIHByaW5jaXBsZSB3ZSBkbyB3YW50IHRvIHN1cHBvcnQgbGFyZ2Vy
ClJBUCBzaXplcyBpbiBndWVzdHMsIHZpcnR1YWxpc2luZyB0aGlzIGZvciBn
dWVzdHMgZGVwZW5kcyBvbiBBTUQgcHJvY3VkaW5nIGFueQpvZmZpY2lhbCBk
b2N1bWVudGF0aW9uIGZvciBFUkFQUywgd2hpY2ggaXMgbG9uZyBvdmVyZHVl
IGFuZCB3aXRoIG5vIEVUQS4KClRoaXMgcGF0Y2ggd2lsbCBjYXVzZSBhIGRp
ZmZlcmVuY2UgaW4gZ3Vlc3RzIG9uIFplbjUgQ1BVcywgYnV0IGFzIHRoZSBt
YWluCkVSQVBTIGZlYXR1cmUgaXMgaGlkZGVuLCBndWVzdHMgc2hvdWxkIGJl
IGlnbm9yaW5nIHRoZSByYXBfc2l6ZSBmaWVsZCB0b28uCgpGaXhlczogZTli
NGZlMjYzNjQ5ICgieDg2L2NwdWlkOiBzdXBwb3J0IExGRU5DRSBhbHdheXMg
c2VyaWFsaXNpbmcgQ1BVSUQgYml0IikKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQt
Ynk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KKGNoZXJyeSBw
aWNrZWQgZnJvbSBjb21taXQgMTBkYzM1YzUxNmY3YjkyMjQ1OTBhN2E0ZTI3
MjJiYmZkNzBmYTg3YSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1
LXBvbGljeS5jIGIveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYwppbmRleCA2
MDhlMDNmZTVlM2IuLjhmMzMyZmRiZDlhZSAxMDA2NDQKLS0tIGEveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYworKysgYi94ZW4vYXJjaC94ODYvY3B1LXBv
bGljeS5jCkBAIC0zNDEsNiArMzQxLDkgQEAgc3RhdGljIHZvaWQgcmVjYWxj
dWxhdGVfbWlzYyhzdHJ1Y3QgY3B1X3BvbGljeSAqcCkKICAgICAgICAgcC0+
ZXh0ZC5yYXdbMHgxZV0gPSBFTVBUWV9MRUFGOyAvKiBUb3BvRXh0IEFQSUMg
SUQvQ29yZS9Ob2RlICovCiAgICAgICAgIHAtPmV4dGQucmF3WzB4MWZdID0g
RU1QVFlfTEVBRjsgLyogU0VWICovCiAgICAgICAgIHAtPmV4dGQucmF3WzB4
MjBdID0gRU1QVFlfTEVBRjsgLyogUGxhdGZvcm0gUW9TICovCisgICAgICAg
IHAtPmV4dGQucmF3WzB4MjFdLmIgPSAwOworICAgICAgICBwLT5leHRkLnJh
d1sweDIxXS5jID0gMDsKKyAgICAgICAgcC0+ZXh0ZC5yYXdbMHgyMV0uZCA9
IDA7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL3hl
bi9pbmNsdWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaCBiL3hlbi9pbmNs
dWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaAppbmRleCBiYWIzZWVjZGE2
YzEuLmYzMzU5MjlhNzBjNCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVu
L2xpYi94ODYvY3B1LXBvbGljeS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9s
aWIveDg2L2NwdS1wb2xpY3kuaApAQCAtMzI0LDcgKzMyNCwxMCBAQCBzdHJ1
Y3QgY3B1X3BvbGljeQogICAgICAgICAgICAgICAgIHVpbnQzMl90IGUyMWE7
CiAgICAgICAgICAgICAgICAgc3RydWN0IHsgREVDTF9CSVRGSUVMRChlMjFh
KTsgfTsKICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICB1aW50MzJfdCAv
KiBiICovOjMyLCAvKiBjICovOjMyLCAvKiBkICovOjMyOworICAgICAgICAg
ICAgdWludDE2X3QgdWNvZGVfc2l6ZTsgLyogVW5pdHMgb2YgMTYgYnl0ZXMg
Ki8KKyAgICAgICAgICAgIHVpbnQ4X3QgIHJhcF9zaXplOyAgIC8qIFVuaXRz
IG9mIDggZW50cmllcyAqLworICAgICAgICAgICAgdWludDhfdCAgOjg7Cisg
ICAgICAgICAgICB1aW50MzJfdCAvKiBjICovOjMyLCAvKiBkICovOjMyOwog
ICAgICAgICB9OwogICAgIH0gZXh0ZDsKIAo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-07.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-07.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDE1OjUxOjUzICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZW1vdmUgYnJva2VuIE1XQUlUIGltcGxlbWVudGF0
aW9uCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp
bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4
Yml0CgpjcHVpZGxlX3dha2V1cF9td2FpdCgpIGlzIGEgVE9DVE9VIHJhY2Uu
ICBUaGUgY3B1bWFza19hbmQoKSBzYW1wbGluZwpjcHVpZGxlX213YWl0X2Zs
YWdzIGNhbiB0YWtlIGEgYXJiaXRyYXJ5IHBlcmlvZCBvZiB0aW1lLCBhbmQg
dGhlcmUncyBubwpndWFyYW50ZWUgdGhhdCB0aGUgdGFyZ2V0IENQVXMgYXJl
IHN0aWxsIGluIE1XQUlUIHdoZW4gd3JpdGluZyBpbnRvCm13YWl0X3dha2V1
cChjcHUpLgoKVGhlIGNvbnNlcXVlbmNlIG9mIHRoZSByYWNlIGlzIHRoYXQg
d2UnbGwgZmFpbCB0byBJUEkgY2VydGFpbiB0YXJnZXRzLiAgQWxzbywKdGhl
cmUncyBubyBndWFyYW50ZWUgdGhhdCBtd2FpdF9pZGxlX3dpdGhfaGludHMo
KSB3aWxsIHJhaXNlIGEgVElNRVJfU09GVElSUQpvbiBpdCdzIHdheSBvdXQu
CgpUaGUgZnVuZGFtZW50YWwgYnVnIGlzIHRoYXQgdGhlICJpbl9td2FpdCIg
dmFyaWFibGUgbmVlZHMgdG8gYmUgaW4gdGhlCm1vbml0b3JlZCBsaW5lLCBh
bmQgbm90IGluIGEgc2VwYXJhdGUgY3B1aWRsZV9td2FpdF9mbGFncyB2YXJp
YWJsZSwgaW4gb3JkZXIKdG8gZG8gdGhpcyBpbiBhIHJhY2UtZnJlZSB3YXku
CgpBcnJhbmdpbmcgdG8gZml4IHRoaXMgd2hpbGUga2VlcGluZyB0aGUgb2xk
IGltcGxlbWVudGF0aW9uIGlzIHByb2hpYml0aXZlLCBzbwpzdHJpcCB0aGUg
Y3VycmVudCBvbmUgb3V0IGluIG9yZGVyIHRvIGltcGxlbWVudCB0aGUgbmV3
IG9uZSBjbGVhbmx5LiAgSW4gdGhlCmludGVyaW0sIHRoaXMgY2F1c2VzIElQ
SXMgdG8gYmUgdXNlZCB1bmNvbmRpdGlvbmFsbHkgd2hpY2ggaXMgc2FmZSBh
bGJlaXQKc3Vib3B0aW1hbC4KCkZpeGVzOiAzZDUyMWU5MzNlMWIgKCJjcHVp
ZGxlOiBtd2FpdCBvbiBzb2Z0aXJxX3BlbmRpbmcgJiByZW1vdmUgd2FrZXVw
IGlwaXMiKQpGaXhlczogMWFkYjM0ZWE4NDZkICgiQ1BVSURMRTogcmUtaW1w
bGVtZW50IG13YWl0IHdha2V1cCBwcm9jZXNzIikKU2lnbmVkLW9mZi1ieTog
QW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2
aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXgu
Y29tPgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzZmFmMDg2NmEzMzA3
MGI5MjZhYjc4ZTYyOTgyOTA0MDNmODVlNzZjKQoKZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNw
aS9jcHVfaWRsZS5jCmluZGV4IGYxYjllMmZiZjZlNy4uMWIzMTZlODQ5ZDZh
IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisr
KyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTQ0OCwyNyAr
NDQ4LDYgQEAgc3RhdGljIGludCBfX2luaXQgY2ZfY2hlY2sgY3B1X2lkbGVf
a2V5X2luaXQodm9pZCkKIH0KIF9faW5pdGNhbGwoY3B1X2lkbGVfa2V5X2lu
aXQpOwogCi0vKgotICogVGhlIGJpdCBpcyBzZXQgaWZmIGNwdSB1c2UgbW9u
aXRvci9td2FpdCB0byBlbnRlciBDIHN0YXRlCi0gKiB3aXRoIHRoaXMgZmxh
ZyBzZXQsIENQVSBjYW4gYmUgd2FrZW4gdXAgZnJvbSBDIHN0YXRlCi0gKiBi
eSB3cml0aW5nIHRvIHNwZWNpZmljIG1lbW9yeSBhZGRyZXNzLCBpbnN0ZWFk
IG9mIHNlbmRpbmcgYW4gSVBJLgotICovCi1zdGF0aWMgY3B1bWFza190IGNw
dWlkbGVfbXdhaXRfZmxhZ3M7Ci0KLXZvaWQgY3B1aWRsZV93YWtldXBfbXdh
aXQoY3B1bWFza190ICptYXNrKQotewotICAgIGNwdW1hc2tfdCB0YXJnZXQ7
Ci0gICAgdW5zaWduZWQgaW50IGNwdTsKLQotICAgIGNwdW1hc2tfYW5kKCZ0
YXJnZXQsIG1hc2ssICZjcHVpZGxlX213YWl0X2ZsYWdzKTsKLQotICAgIC8q
IENQVSBpcyBNV0FJVGluZyBvbiB0aGUgY3B1aWRsZV9td2FpdF93YWtldXAg
ZmxhZy4gKi8KLSAgICBmb3JfZWFjaF9jcHUoY3B1LCAmdGFyZ2V0KQotICAg
ICAgICBtd2FpdF93YWtldXAoY3B1KSA9IDA7Ci0KLSAgICBjcHVtYXNrX2Fu
ZG5vdChtYXNrLCBtYXNrLCAmdGFyZ2V0KTsKLX0KLQogLyogRm9yY2Ugc2Vu
ZGluZyBvZiBhIHdha2V1cCBJUEkgcmVnYXJkbGVzcyBvZiBtd2FpdCB1c2Fn
ZS4gKi8KIGJvb2wgX19yb19hZnRlcl9pbml0IGZvcmNlX213YWl0X2lwaV93
YWtldXA7CiAKQEAgLTQ3Nyw0MiArNDU2LDI1IEBAIGJvb2wgYXJjaF9za2lw
X3NlbmRfZXZlbnRfY2hlY2sodW5zaWduZWQgaW50IGNwdSkKICAgICBpZiAo
IGZvcmNlX213YWl0X2lwaV93YWtldXAgKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICAvKgotICAgICAqIFRoaXMgcmVsaWVzIG9uIHNvZnRpcnFf
cGVuZGluZygpIGFuZCBtd2FpdF93YWtldXAoKSB0byBhY2Nlc3MgZGF0YQot
ICAgICAqIG9uIHRoZSBzYW1lIGNhY2hlIGxpbmUuCi0gICAgICovCi0gICAg
c21wX21iKCk7Ci0gICAgcmV0dXJuICEhY3B1bWFza190ZXN0X2NwdShjcHUs
ICZjcHVpZGxlX213YWl0X2ZsYWdzKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9
CiAKIHZvaWQgbXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBl
YXgsIHVuc2lnbmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNw
dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKLSAgICBzX3RpbWVfdCBleHBpcmVz
ID0gcGVyX2NwdSh0aW1lcl9kZWFkbGluZSwgY3B1KTsKLSAgICBjb25zdCB2
b2lkICptb25pdG9yX2FkZHIgPSAmbXdhaXRfd2FrZXVwKGNwdSk7CisgICAg
Y29uc3QgdW5zaWduZWQgaW50ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZz
b2Z0aXJxX3BlbmRpbmcoY3B1KTsKIAotICAgIG1vbml0b3IobW9uaXRvcl9h
ZGRyLCAwLCAwKTsKKyAgICBtb25pdG9yKHRoaXNfc29mdGlycV9wZW5kaW5n
LCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIAotICAgIC8qCi0gICAgICogVGlt
ZXIgZGVhZGxpbmUgcGFzc2luZyBpcyB0aGUgZXZlbnQgb24gd2hpY2ggd2Ug
d2lsbCBiZSB3b2tlbiB2aWEKLSAgICAgKiBjcHVpZGxlX213YWl0X3dha2V1
cC4gU28gY2hlY2sgaXQgbm93IHRoYXQgdGhlIGxvY2F0aW9uIGlzIGFybWVk
LgotICAgICAqLwotICAgIGlmICggKGV4cGlyZXMgPiBOT1coKSB8fCBleHBp
cmVzID09IDApICYmICFzb2Z0aXJxX3BlbmRpbmcoY3B1KSApCisgICAgaWYg
KCAhKnRoaXNfc29mdGlycV9wZW5kaW5nICkKICAgICB7CiAgICAgICAgIHN0
cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdldF9jcHVfaW5mbygpOwogCi0gICAg
ICAgIGNwdW1hc2tfc2V0X2NwdShjcHUsICZjcHVpZGxlX213YWl0X2ZsYWdz
KTsKLQogICAgICAgICBzcGVjX2N0cmxfZW50ZXJfaWRsZShpbmZvKTsKICAg
ICAgICAgbXdhaXQoZWF4LCBlY3gpOwogICAgICAgICBzcGVjX2N0cmxfZXhp
dF9pZGxlKGluZm8pOwotCi0gICAgICAgIGNwdW1hc2tfY2xlYXJfY3B1KGNw
dSwgJmNwdWlkbGVfbXdhaXRfZmxhZ3MpOwogICAgIH0KLQotICAgIGlmICgg
ZXhwaXJlcyA8PSBOT1coKSAmJiBleHBpcmVzID4gMCApCi0gICAgICAgIHJh
aXNlX3NvZnRpcnEoVElNRVJfU09GVElSUSk7CiB9CiAKIHN0YXRpYyB2b2lk
IGFjcGlfcHJvY2Vzc29yX2ZmaF9jc3RhdGVfZW50ZXIoc3RydWN0IGFjcGlf
cHJvY2Vzc29yX2N4ICpjeCkKQEAgLTkxMyw3ICs4NzUsNyBAQCB2b2lkIGNm
X2NoZWNrIGFjcGlfZGVhZF9pZGxlKHZvaWQpCiAKICAgICBpZiAoIGN4LT5l
bnRyeV9tZXRob2QgPT0gQUNQSV9DU1RBVEVfRU1fRkZIICkKICAgICB7Ci0g
ICAgICAgIHZvaWQgKm13YWl0X3B0ciA9ICZtd2FpdF93YWtldXAoc21wX3By
b2Nlc3Nvcl9pZCgpKTsKKyAgICAgICAgdm9pZCAqbXdhaXRfcHRyID0gJnNv
ZnRpcnFfcGVuZGluZyhzbXBfcHJvY2Vzc29yX2lkKCkpOwogCiAgICAgICAg
IC8qCiAgICAgICAgICAqIENhY2hlIG11c3QgYmUgZmx1c2hlZCBhcyB0aGUg
bGFzdCBvcGVyYXRpb24gYmVmb3JlIHNsZWVwaW5nLgpkaWZmIC0tZ2l0IGEv
eGVuL2FyY2gveDg2L2hwZXQuYyBiL3hlbi9hcmNoL3g4Ni9ocGV0LmMKaW5k
ZXggMzE3ZWY2M2ZiNWY4Li44ZjUwNjlkZjJhZTcgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9ocGV0LmMKKysrIGIveGVuL2FyY2gveDg2L2hwZXQuYwpA
QCAtMTg3LDggKzE4Nyw2IEBAIHN0YXRpYyB2b2lkIGV2dF9kb19icm9hZGNh
c3QoY3B1bWFza190ICptYXNrKQogICAgIGlmICggX19jcHVtYXNrX3Rlc3Rf
YW5kX2NsZWFyX2NwdShjcHUsIG1hc2spICkKICAgICAgICAgcmFpc2Vfc29m
dGlycShUSU1FUl9TT0ZUSVJRKTsKIAotICAgIGNwdWlkbGVfd2FrZXVwX213
YWl0KG1hc2spOwotCiAgICAgaWYgKCAhY3B1bWFza19lbXB0eShtYXNrKSAp
CiAgICAgICAgY3B1bWFza19yYWlzZV9zb2Z0aXJxKG1hc2ssIFRJTUVSX1NP
RlRJUlEpOwogfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2hhcmRpcnEuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJk
aXJxLmgKaW5kZXggMjc2ZTM0MTlkNzc4Li5mM2U5M2NjOWI1MDcgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJkaXJxLmgKKysr
IGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2hhcmRpcnEuaApAQCAtNSwx
MSArNSwxMCBAQAogI2luY2x1ZGUgPHhlbi90eXBlcy5oPgogCiB0eXBlZGVm
IHN0cnVjdCB7Ci0JdW5zaWduZWQgaW50IF9fc29mdGlycV9wZW5kaW5nOwot
CXVuc2lnbmVkIGludCBfX2xvY2FsX2lycV9jb3VudDsKLQl1bnNpZ25lZCBp
bnQgbm1pX2NvdW50OwotCXVuc2lnbmVkIGludCBtY2VfY291bnQ7Ci0JYm9v
bF90IF9fbXdhaXRfd2FrZXVwOworICAgIHVuc2lnbmVkIGludCBfX3NvZnRp
cnFfcGVuZGluZzsKKyAgICB1bnNpZ25lZCBpbnQgX19sb2NhbF9pcnFfY291
bnQ7CisgICAgdW5zaWduZWQgaW50IG5taV9jb3VudDsKKyAgICB1bnNpZ25l
ZCBpbnQgbWNlX2NvdW50OwogfSBfX2NhY2hlbGluZV9hbGlnbmVkIGlycV9j
cHVzdGF0X3Q7CiAKICNpbmNsdWRlIDx4ZW4vaXJxX2NwdXN0YXQuaD4JLyog
U3RhbmRhcmQgbWFwcGluZ3MgZm9yIGlycV9jcHVzdGF0X3QgYWJvdmUgKi8K
ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9jcHVpZGxlLmggYi94ZW4v
aW5jbHVkZS94ZW4vY3B1aWRsZS5oCmluZGV4IDcwNWQwYzExMzVmMC4uMTIw
ZTM1NGZlMzQwIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vY3B1aWRs
ZS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9jcHVpZGxlLmgKQEAgLTkyLDgg
KzkyLDYgQEAgZXh0ZXJuIHN0cnVjdCBjcHVpZGxlX2dvdmVybm9yICpjcHVp
ZGxlX2N1cnJlbnRfZ292ZXJub3I7CiBib29sIGNwdWlkbGVfdXNpbmdfZGVl
cF9jc3RhdGUodm9pZCk7CiB2b2lkIGNwdWlkbGVfZGlzYWJsZV9kZWVwX2Nz
dGF0ZSh2b2lkKTsKIAotZXh0ZXJuIHZvaWQgY3B1aWRsZV93YWtldXBfbXdh
aXQoY3B1bWFza190ICptYXNrKTsKLQogI2RlZmluZSBDUFVJRExFX0RSSVZF
Ul9TVEFURV9TVEFSVCAgMQogCiBleHRlcm4gdm9pZCBtZW51X2dldF90cmFj
ZV9kYXRhKHUzMiAqZXhwZWN0ZWQsIHUzMiAqcHJlZCk7CmRpZmYgLS1naXQg
YS94ZW4vaW5jbHVkZS94ZW4vaXJxX2NwdXN0YXQuaCBiL3hlbi9pbmNsdWRl
L3hlbi9pcnFfY3B1c3RhdC5oCmluZGV4IGI5NjI5ZjI1YzI2Ni4uNWYwMzli
NGI5YTc2IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vaXJxX2NwdXN0
YXQuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vaXJxX2NwdXN0YXQuaApAQCAt
MjQsNiArMjQsNSBAQCBleHRlcm4gaXJxX2NwdXN0YXRfdCBpcnFfc3RhdFtd
OwogICAvKiBhcmNoIGluZGVwZW5kZW50IGlycV9zdGF0IGZpZWxkcyAqLwog
I2RlZmluZSBzb2Z0aXJxX3BlbmRpbmcoY3B1KQlfX0lSUV9TVEFUKChjcHUp
LCBfX3NvZnRpcnFfcGVuZGluZykKICNkZWZpbmUgbG9jYWxfaXJxX2NvdW50
KGNwdSkJX19JUlFfU1RBVCgoY3B1KSwgX19sb2NhbF9pcnFfY291bnQpCi0j
ZGVmaW5lIG13YWl0X3dha2V1cChjcHUpCV9fSVJRX1NUQVQoKGNwdSksIF9f
bXdhaXRfd2FrZXVwKQogCiAjZW5kaWYJLyogX19pcnFfY3B1c3RhdF9oICov
Cg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-08.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-08.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDE4OjEzOjI3ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBEcm9wIGluY29ycmVjdCBzbXBfbWIoKSBpbiBtd2Fp
dF9pZGxlX3dpdGhfaGludHMoKQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50
LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFu
c2Zlci1FbmNvZGluZzogOGJpdAoKV2l0aCB0aGUgcmVjZW50IHNpbXBsaWZp
Y2F0aW9ucywgaXQgYmVjb21lcyBvYnZpb3VzIHRoYXQgc21wX21iKCkgaXNu
J3QgdGhlCnJpZ2h0IGJhcnJpZXIuICBTdHJpY3RseSBzcGVha2luZywgTU9O
SVRPUiBpcyBvcmRlcmVkIGFzIGEgbG9hZCwgYnV0IHNtcF9ybWIoKQppc24n
dCBjb3JyZWN0IGVpdGhlciwgYXMgdGhpcyBvbmx5IHBlcnRhaW5zIHRvIGxv
Y2FsIG9yZGVyaW5nLiAgQWxsIHdlIG5lZWQgaXMKYSBjb21waWxlciBiYXJy
aWVyKCkuCgpNZXJnZSB0aGUgYmFyaWVyKCkgaW50byB0aGUgbW9uaXRvcigp
IGl0c2VsZiwgYWxvbmcgd2l0aCBhbiBleHBsYW50aW9uLgoKTm8gZnVuY3Rp
b25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogUm9nZXIgUGF1
IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CihjaGVycnkgcGlja2Vk
IGZyb20gY29tbWl0IGU3NzEwZGQ4NDNiYTlkMjA0ZjZlZTI5NzNkNjEyMGMx
OTg0OTU4YTYpCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1
X2lkbGUuYyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXgg
MWIzMTZlODQ5ZDZhLi44ZGU4OWIxMTdhYTMgMTAwNjQ0Ci0tLSBhL3hlbi9h
cmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2Fj
cGkvY3B1X2lkbGUuYwpAQCAtNjUsOCArNjUsMTIgQEAgc3RhdGljIGFsd2F5
c19pbmxpbmUgdm9pZCBtb25pdG9yKAogICAgIGFsdGVybmF0aXZlX2lucHV0
KCIiLCAiY2xmbHVzaCAoJVthZGRyXSkiLCBYODZfQlVHX0NMRkxVU0hfTU9O
SVRPUiwKICAgICAgICAgICAgICAgICAgICAgICBbYWRkcl0gImEiIChhZGRy
KSk7CiAKKyAgICAvKgorICAgICAqIFRoZSBtZW1vcnkgY2xvYmJlciBpcyBh
IGNvbXBpbGVyIGJhcnJpZXIuICBTdWJzZXFldW50IHJlYWRzIGZyb20gdGhl
CisgICAgICogbW9uaXRvcmVkIGNhY2hlbGluZSBtdXN0IG5vdCBiZSByZW9y
ZGVyZWQgb3ZlciBNT05JVE9SLgorICAgICAqLwogICAgIGFzbSB2b2xhdGls
ZSAoICJtb25pdG9yIgotICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoYWRk
ciksICJjIiAoZWN4KSwgImQiIChlZHgpICk7CisgICAgICAgICAgICAgICAg
ICAgOjogImEiIChhZGRyKSwgImMiIChlY3gpLCAiZCIgKGVkeCkgOiAibWVt
b3J5IiApOwogfQogCiBzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIG13YWl0
KHVuc2lnbmVkIGludCBlYXgsIHVuc2lnbmVkIGludCBlY3gpCkBAIC00NjUs
NyArNDY5LDYgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHModW5zaWdu
ZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICBjb25zdCB1bnNp
Z25lZCBpbnQgKnRoaXNfc29mdGlycV9wZW5kaW5nID0gJnNvZnRpcnFfcGVu
ZGluZyhjcHUpOwogCiAgICAgbW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGlu
ZywgMCwgMCk7Ci0gICAgc21wX21iKCk7CiAKICAgICBpZiAoICEqdGhpc19z
b2Z0aXJxX3BlbmRpbmcgKQogICAgIHsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-09.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-09.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjQwOjUxICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBDb252ZXJ0IGZvcmNlX213YWl0X2lwaV93YWtldXAg
dG8gWDg2X0JVR19NT05JVE9SCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQt
VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z
ZmVyLUVuY29kaW5nOiA4Yml0CgpXZSdyZSBnb2luZyB0byB3YW50IGFsdGVy
bmF0aXZlLXBhdGNoIGJhc2VkIG9uIGl0LgoKTm8gZnVuY3Rpb25hbCBjaGFu
Z2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29v
cGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8
cm9nZXIucGF1QGNpdHJpeC5jb20+CihjaGVycnkgcGlja2VkIGZyb20gY29t
bWl0IGIwY2EwZjkzZjQ3YzQzZjg5ODQ5ODExMzdhZjA3Y2EzZDE2MWUzZWMp
CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBi
L3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXggOGRlODliMTE3
YWEzLi40MjcyYzMzZDFjYTQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9h
Y3BpL2NwdV9pZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lk
bGUuYwpAQCAtNDUyLDE0ICs0NTIsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBj
Zl9jaGVjayBjcHVfaWRsZV9rZXlfaW5pdCh2b2lkKQogfQogX19pbml0Y2Fs
bChjcHVfaWRsZV9rZXlfaW5pdCk7CiAKLS8qIEZvcmNlIHNlbmRpbmcgb2Yg
YSB3YWtldXAgSVBJIHJlZ2FyZGxlc3Mgb2YgbXdhaXQgdXNhZ2UuICovCi1i
b29sIF9fcm9fYWZ0ZXJfaW5pdCBmb3JjZV9td2FpdF9pcGlfd2FrZXVwOwot
CiBib29sIGFyY2hfc2tpcF9zZW5kX2V2ZW50X2NoZWNrKHVuc2lnbmVkIGlu
dCBjcHUpCiB7Ci0gICAgaWYgKCBmb3JjZV9td2FpdF9pcGlfd2FrZXVwICkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMgYi94
ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKaW5kZXggMDRhMDAyZTFlMGM5Li4z
Mjc0ZTBmNWU4YWYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvaW50
ZWwuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKQEAgLTQzNiw3
ICs0MzYsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcHJvYmVfbXdhaXRfZXJy
YXRhKHZvaWQpCiAgICAgewogICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5J
TkcKICAgICAgICAgICAgICAgICJGb3JjaW5nIElQSSBNV0FJVCB3YWtldXAg
ZHVlIHRvIENQVSBlcnJhdHVtXG4iKTsKLSAgICAgICAgZm9yY2VfbXdhaXRf
aXBpX3dha2V1cCA9IHRydWU7CisgICAgICAgIHNldHVwX2ZvcmNlX2NwdV9j
YXAoWDg2X0JVR19NT05JVE9SKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oIGIveGVu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmVzLmgKaW5kZXggODRj
OTMyOTJjODBjLi41NjIzMWIwMGYxNWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oCisrKyBiL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oCkBAIC01Myw2ICs1Myw3
IEBAIFhFTl9DUFVGRUFUVVJFKFVTRV9WTUNBTEwsICAgICAgICBYODZfU1lO
VEgoMzApKSAvKiBVc2UgVk1DQUxMIGluc3RlYWQgb2YgVk1NQ0FMCiAjZGVm
aW5lIFg4Nl9CVUdfQ0xGTFVTSF9NRkVOQ0UgICAgWDg2X0JVRyggMikgLyog
TUZFTkNFIG5lZWRlZCB0byBzZXJpYWxpc2UgQ0xGTFVTSCAqLwogI2RlZmlu
ZSBYODZfQlVHX0lCUEJfTk9fUkVUICAgICAgIFg4Nl9CVUcoIDMpIC8qIElC
UEIgZG9lc24ndCBmbHVzaCB0aGUgUlNCL1JBUyAqLwogI2RlZmluZSBYODZf
QlVHX0NMRkxVU0hfTU9OSVRPUiAgIFg4Nl9CVUcoIDQpIC8qIE1PTklUT1Ig
cmVxdWlyZXMgQ0xGTFVTSCAqLworI2RlZmluZSBYODZfQlVHX01PTklUT1Ig
ICAgICAgICAgIFg4Nl9CVUcoIDUpIC8qIE1PTklUT1IgZG9lc24ndCBhbHdh
eXMgbm90aWNlIHdyaXRlcyAoZm9yY2UgSVBJcykgKi8KIAogI2RlZmluZSBY
ODZfU1BFQ19OT19MRkVOQ0VfRU5UUllfUFYgWDg2X0JVRygxNikgLyogKE5v
KSBzYWZldHkgTEZFTkNFIGZvciBTUEVDX0NUUkxfRU5UUllfUFYuICovCiAj
ZGVmaW5lIFg4Nl9TUEVDX05PX0xGRU5DRV9FTlRSWV9JTlRSIFg4Nl9CVUco
MTcpIC8qIChObykgc2FmZXR5IExGRU5DRSBmb3IgU1BFQ19DVFJMX0VOVFJZ
X0lOVFIuICovCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbXdhaXQuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9td2FpdC5o
CmluZGV4IDk3YmYzNjE1MDVmMC4uZjM3N2Q5ZmRjYWQ0IDEwMDY0NAotLS0g
YS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXdhaXQuaAorKysgYi94ZW4v
YXJjaC94ODYvaW5jbHVkZS9hc20vbXdhaXQuaApAQCAtMTMsOSArMTMsNiBA
QAogCiAjZGVmaW5lIE1XQUlUX0VDWF9JTlRFUlJVUFRfQlJFQUsJMHgxCiAK
LS8qIEZvcmNlIHNlbmRpbmcgb2YgYSB3YWtldXAgSVBJIHJlZ2FyZGxlc3Mg
b2YgbXdhaXQgdXNhZ2UuICovCi1leHRlcm4gYm9vbCBmb3JjZV9td2FpdF9p
cGlfd2FrZXVwOwotCiB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNp
Z25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQgZWN4KTsKIGJvb2wgbXdhaXRf
cGMxMF9zdXBwb3J0ZWQodm9pZCk7CiAK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-10.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-10.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjA0OjE3ICswMTAwClN1Ympl
Y3Q6IHhlbi9zb2Z0aXJxOiBSZXdvcmsgYXJjaF9za2lwX3NlbmRfZXZlbnRf
Y2hlY2soKSBpbnRvCiBhcmNoX3NldF9zb2Z0aXJxKCkKTUlNRS1WZXJzaW9u
OiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04
CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCng4NiBpcyB0aGUg
b25seSBhcmNoaXRlY3R1cmUgd2FudGluZyBhbiBvcHRpbWlzYXRpb24gaGVy
ZSwgYnV0IHRoZQp0ZXN0X2FuZF9zZXRfYml0KCkgaXMgYSBzdG9yZSBpbnRv
IHRoZSBtb25pdG9yZWQgbGluZSAoaS5lLiB3aWxsIHdha2UgdXAgdGhlCnRh
cmdldCkgYW5kLCBwcmlvciB0byB0aGUgcmVtb3ZhbCBvZiB0aGUgYnJva2Vu
IElQSS1lbGlzaW9uIGFsZ29yaXRobSwgd2FzCnJhY3ksIGNhdXNpbmcgdW5u
ZWNlc3NhcnkgSVBJcyB0byBiZSBzZW50LgoKVG8gZG8gdGhpcyBpbiBhIHJh
Y2UtZnJlZSB3YXksIHRoZSBzdG9yZSB0byB0aGUgbW9uaXRlZCBsaW5lIG5l
ZWRzIHRvIGFsc28Kc2FtcGxlIHRoZSBzdGF0dXMgb2YgdGhlIHRhcmdldCBp
biBvbmUgYXRvbWljIGFjdGlvbi4gIEltcGxlbWVudCBhIG5ldyBhcmNoCmhl
bHBlciB3aXRoIGRpZmZlcmVudCBzZW1hbnRpY3M7IHRvIG1ha2UgdGhlIHNv
ZnRpcnEgcGVuZGluZyBhbmQgZGVjaWRlIGFib3V0CklQSXMgdG9nZXRoZXIu
ICBGb3Igbm93LCBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgaGVscGVyLiAgSXQg
d2lsbCBiZSBvdmVycmlkZGVuCmJ5IHg4NiBpbiBhIHN1YnNlcXVlbnQgY2hh
bmdlLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBB
bmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZp
ZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5j
b20+CihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGI0NzNlNWUyMTJlNDQ1
ZDNjMTkzYzFjODNiNTJiMTI5YWY1NzFiMTkpCgpkaWZmIC0tZ2l0IGEveGVu
L2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBiL3hlbi9hcmNoL3g4Ni9hY3Bp
L2NwdV9pZGxlLmMKaW5kZXggNDI3MmMzM2QxY2E0Li40M2FiNDUzM2I3OTEg
MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKKysr
IGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYwpAQCAtNDUyLDExICs0
NTIsNiBAQCBzdGF0aWMgaW50IF9faW5pdCBjZl9jaGVjayBjcHVfaWRsZV9r
ZXlfaW5pdCh2b2lkKQogfQogX19pbml0Y2FsbChjcHVfaWRsZV9rZXlfaW5p
dCk7CiAKLWJvb2wgYXJjaF9za2lwX3NlbmRfZXZlbnRfY2hlY2sodW5zaWdu
ZWQgaW50IGNwdSkKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIHZvaWQg
bXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBlYXgsIHVuc2ln
bmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNwdSA9IHNtcF9w
cm9jZXNzb3JfaWQoKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9zb2Z0aXJxLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20v
c29mdGlycS5oCmluZGV4IDQxNWVlODY2Yzc5ZC4uZTRiMTk0ZjA2OWZiIDEw
MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vc29mdGlycS5o
CisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zb2Z0aXJxLmgKQEAg
LTksNiArOSw0IEBACiAjZGVmaW5lIEhWTV9EUENJX1NPRlRJUlEgICAgICAg
KE5SX0NPTU1PTl9TT0ZUSVJRUyArIDQpCiAjZGVmaW5lIE5SX0FSQ0hfU09G
VElSUVMgICAgICAgNQogCi1ib29sIGFyY2hfc2tpcF9zZW5kX2V2ZW50X2No
ZWNrKHVuc2lnbmVkIGludCBjcHUpOwotCiAjZW5kaWYgLyogX19BU01fU09G
VElSUV9IX18gKi8KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc29mdGlycS5j
IGIveGVuL2NvbW1vbi9zb2Z0aXJxLmMKaW5kZXggMzIxZDI2OTAyZDM3Li5l
NzMzYzhmNzRiNDQgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc29mdGlycS5j
CisrKyBiL3hlbi9jb21tb24vc29mdGlycS5jCkBAIC05NCw5ICs5NCw3IEBA
IHZvaWQgY3B1bWFza19yYWlzZV9zb2Z0aXJxKGNvbnN0IGNwdW1hc2tfdCAq
bWFzaywgdW5zaWduZWQgaW50IG5yKQogICAgICAgICByYWlzZV9tYXNrID0g
JnBlcl9jcHUoYmF0Y2hfbWFzaywgdGhpc19jcHUpOwogCiAgICAgZm9yX2Vh
Y2hfY3B1KGNwdSwgbWFzaykKLSAgICAgICAgaWYgKCAhdGVzdF9hbmRfc2V0
X2JpdChuciwgJnNvZnRpcnFfcGVuZGluZyhjcHUpKSAmJgotICAgICAgICAg
ICAgIGNwdSAhPSB0aGlzX2NwdSAmJgotICAgICAgICAgICAgICFhcmNoX3Nr
aXBfc2VuZF9ldmVudF9jaGVjayhjcHUpICkKKyAgICAgICAgaWYgKCAhYXJj
aF9zZXRfc29mdGlycShuciwgY3B1KSAmJiBjcHUgIT0gdGhpc19jcHUgKQog
ICAgICAgICAgICAgX19jcHVtYXNrX3NldF9jcHUoY3B1LCByYWlzZV9tYXNr
KTsKIAogICAgIGlmICggcmFpc2VfbWFzayA9PSAmc2VuZF9tYXNrICkKQEAg
LTEwNyw5ICsxMDUsNyBAQCB2b2lkIGNwdV9yYWlzZV9zb2Z0aXJxKHVuc2ln
bmVkIGludCBjcHUsIHVuc2lnbmVkIGludCBucikKIHsKICAgICB1bnNpZ25l
ZCBpbnQgdGhpc19jcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAKLSAgICBp
ZiAoIHRlc3RfYW5kX3NldF9iaXQobnIsICZzb2Z0aXJxX3BlbmRpbmcoY3B1
KSkKLSAgICAgICAgIHx8IChjcHUgPT0gdGhpc19jcHUpCi0gICAgICAgICB8
fCBhcmNoX3NraXBfc2VuZF9ldmVudF9jaGVjayhjcHUpICkKKyAgICBpZiAo
IGFyY2hfc2V0X3NvZnRpcnEobnIsIGNwdSkgfHwgY3B1ID09IHRoaXNfY3B1
ICkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCAhcGVyX2NwdShiYXRj
aGluZywgdGhpc19jcHUpIHx8IGluX2lycSgpICkKZGlmZiAtLWdpdCBhL3hl
bi9pbmNsdWRlL3hlbi9zb2Z0aXJxLmggYi94ZW4vaW5jbHVkZS94ZW4vc29m
dGlycS5oCmluZGV4IDMzZDZmMmVjZDIyMy4uNWMyMzYxODY1YjQ5IDEwMDY0
NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vc29mdGlycS5oCisrKyBiL3hlbi9p
bmNsdWRlL3hlbi9zb2Z0aXJxLmgKQEAgLTIxLDYgKzIxLDIyIEBAIGVudW0g
ewogCiAjZGVmaW5lIE5SX1NPRlRJUlFTIChOUl9DT01NT05fU09GVElSUVMg
KyBOUl9BUkNIX1NPRlRJUlFTKQogCisvKgorICogRW5zdXJlIHNvZnRpcnEg
QG5yIGlzIHBlbmRpbmcgb24gQGNwdS4gIFJldHVybiB0cnVlIGlmIGFuIElQ
SSBjYW4gYmUKKyAqIHNraXBwZWQsIGZhbHNlIGlmIHRoZSBJUEkgY2Fubm90
IGJlIHNraXBwZWQuCisgKi8KKyNpZm5kZWYgYXJjaF9zZXRfc29mdGlycQor
c3RhdGljIGFsd2F5c19pbmxpbmUgYm9vbCBhcmNoX3NldF9zb2Z0aXJxKHVu
c2lnbmVkIGludCBuciwgdW5zaWduZWQgaW50IGNwdSkKK3sKKyAgICAvKgor
ICAgICAqIFRyeSB0byBzZXQgdGhlIHNvZnRpcnEgcGVuZGluZy4gIElmIHdl
IHNldCB0aGUgYml0IChpLmUuIHRoZSBvbGQgYml0CisgICAgICogd2FzIDAp
LCB3ZSdyZSByZXNwb25zaWJsZSB0byBzZW5kIHRoZSBJUEkuICBJZiB0aGUg
c29mdGlycSB3YXMgYWxyZWFkeQorICAgICAqIHBlbmRpbmcgKGkuZS4gdGhl
IG9sZCBiaXQgd2FzIDEpLCBubyBJUEkgaXMgbmVlZGVkLgorICAgICAqLwor
ICAgIHJldHVybiB0ZXN0X2FuZF9zZXRfYml0KG5yLCAmc29mdGlycV9wZW5k
aW5nKGNwdSkpOworfQorI2VuZGlmCisKIHR5cGVkZWYgdm9pZCAoKnNvZnRp
cnFfaGFuZGxlcikodm9pZCk7CiAKIHZvaWQgZG9fc29mdGlycSh2b2lkKTsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-11.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-11.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjI2OjI0ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBJbXBsZW1lbnQgYSBuZXcgTVdBSVQgSVBJLWVsaXNp
b24gYWxnb3JpdGhtCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTog
dGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVu
Y29kaW5nOiA4Yml0CgpJbiBvcmRlciBlbGlkZSBJUElzLCB3ZSBtdXN0IGJl
IGFibGUgdG8gaWRlbnRpZnkgd2hldGhlciBhIHRhcmdldCBDUFUgaXMgaW4K
TVdBSVQgYXQgdGhlIHBvaW50IGl0IGlzIHdva2VuIHVwLiAgaS5lLiB0aGUg
c3RvcmUgdG8gd2FrZSBpdCB1cCBtdXN0IGFsc28KaWRlbnRpZnkgdGhlIHN0
YXRlLgoKQ3JlYXRlIGEgbmV3IGluX213YWl0IHZhcmlhYmxlIGJlc2lkZSBf
X3NvZnRpcnFfcGVuZGluZywgc28gd2UgY2FuIHVzZSBhCkNNUFhDSEcgdG8g
c2V0IHRoZSBzb2Z0aXJxIHdoaWxlIGFsc28gb2JzZXJ2aW5nIHRoZSBzdGF0
dXMgc2FmZWx5LiAgSW1wbGVtZW50CmFuIHg4NiB2ZXJzaW9uIG9mIGFyY2hf
cGVuZF9zb2Z0aXJxKCkgd2hpY2ggZG9lcyB0aGlzLgoKSW4gbXdhaXRfaWRs
ZV93aXRoX2hpbnRzKCksIGFkdmVydGlzZSBpbl9td2FpdCwgd2l0aCBhbiBl
eHBsYW5hdGlvbiBvZgpwcmVjaXNlbHkgd2hhdCBpdCBtZWFucy4gIFg4Nl9C
VUdfTU9OSVRPUiBjYW4gYmUgYWNjb3VudGVkIGZvciBzaW1wbHkgYnkgbm90
CmFkdmVydGlzaW5nIGluX213YWl0LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQWNrZWQtYnk6
IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgooY2hl
cnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzZTBiYzRiNTAzNTBiZDM1NzMwNGZk
NzlhNWRjMDQ3Mjc5MGRiYTkxKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4
Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRs
ZS5jCmluZGV4IDQzYWI0NTMzYjc5MS4uYmU3NjdhMmM2NjhmIDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9h
cmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTQ1NSw3ICs0NTUsMjEgQEAg
X19pbml0Y2FsbChjcHVfaWRsZV9rZXlfaW5pdCk7CiB2b2lkIG13YWl0X2lk
bGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQg
ZWN4KQogewogICAgIHVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29y
X2lkKCk7Ci0gICAgY29uc3QgdW5zaWduZWQgaW50ICp0aGlzX3NvZnRpcnFf
cGVuZGluZyA9ICZzb2Z0aXJxX3BlbmRpbmcoY3B1KTsKKyAgICBpcnFfY3B1
c3RhdF90ICpzdGF0ID0gJmlycV9zdGF0W2NwdV07CisgICAgY29uc3QgdW5z
aWduZWQgaW50ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZzdGF0LT5fX3Nv
ZnRpcnFfcGVuZGluZzsKKworICAgIC8qCisgICAgICogQnkgc2V0dGluZyBp
bl9td2FpdCwgd2UgcHJvbWlzZSB0byBvdGhlciBDUFVzIHRoYXQgd2UnbGwg
bm90aWNlIGNoYW5nZXMKKyAgICAgKiB0byBfX3NvZnRpcnFfcGVuZGluZyB3
aXRob3V0IGJlaW5nIHNlbnQgYW4gSVBJLiAgV2UgYWNoaWV2ZSB0aGlzIGJ5
CisgICAgICogZWl0aGVyIG5vdCBnb2luZyB0byBzbGVlcCwgb3IgYnkgaGF2
aW5nIGhhcmR3YXJlIG5vdGljZSBvbiBvdXIgYmVoYWxmLgorICAgICAqCisg
ICAgICogU29tZSBlcnJhdGEgZXhpc3Qgd2hlcmUgTU9OSVRPUiBkb2Vzbid0
IHdvcmsgcHJvcGVybHksIGFuZCB0aGUKKyAgICAgKiB3b3JrYXJvdW5kIGlz
IHRvIGZvcmNlIHRoZSB1c2Ugb2YgYW4gSVBJLiAgQ2F1c2UgdGhpcyB0byBo
YXBwZW4gYnkKKyAgICAgKiBzaW1wbHkgbm90IGFkdmVydGlzaW5nIG91cnNl
bHZlcyBhcyBiZWluZyBpbl9td2FpdC4KKyAgICAgKi8KKyAgICBhbHRlcm5h
dGl2ZV9pbygibW92YiAkMSwgJVtpbl9td2FpdF0iLAorICAgICAgICAgICAg
ICAgICAgICIiLCBYODZfQlVHX01PTklUT1IsCisgICAgICAgICAgICAgICAg
ICAgW2luX213YWl0XSAiPW0iIChzdGF0LT5pbl9td2FpdCkpOwogCiAgICAg
bW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGluZywgMCwgMCk7CiAKQEAgLTQ2
Nyw2ICs0ODEsMTAgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHModW5z
aWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAgbXdh
aXQoZWF4LCBlY3gpOwogICAgICAgICBzcGVjX2N0cmxfZXhpdF9pZGxlKGlu
Zm8pOwogICAgIH0KKworICAgIGFsdGVybmF0aXZlX2lvKCJtb3ZiICQwLCAl
W2luX213YWl0XSIsCisgICAgICAgICAgICAgICAgICAgIiIsIFg4Nl9CVUdf
TU9OSVRPUiwKKyAgICAgICAgICAgICAgICAgICBbaW5fbXdhaXRdICI9bSIg
KHN0YXQtPmluX213YWl0KSk7CiB9CiAKIHN0YXRpYyB2b2lkIGFjcGlfcHJv
Y2Vzc29yX2ZmaF9jc3RhdGVfZW50ZXIoc3RydWN0IGFjcGlfcHJvY2Vzc29y
X2N4ICpjeCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9oYXJkaXJxLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaGFyZGly
cS5oCmluZGV4IGYzZTkzY2M5YjUwNy4uMTY0N2NmZjA0ZGM4IDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaGFyZGlycS5oCisrKyBi
L3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJkaXJxLmgKQEAgLTUsNyAr
NSwxOSBAQAogI2luY2x1ZGUgPHhlbi90eXBlcy5oPgogCiB0eXBlZGVmIHN0
cnVjdCB7Ci0gICAgdW5zaWduZWQgaW50IF9fc29mdGlycV9wZW5kaW5nOwor
ICAgIC8qCisgICAgICogVGhlIGxheW91dCBpcyBpbXBvcnRhbnQuICBBbnkg
Q1BVIGNhbiBzZXQgYml0cyBpbiBfX3NvZnRpcnFfcGVuZGluZywKKyAgICAg
KiBidXQgaW5fbXdhaXQgaXMgYSBzdGF0dXMgYml0IG93bmVkIGJ5IHRoZSBD
UFUuICBzb2Z0aXJxX213YWl0X3JhdyBtdXN0CisgICAgICogY292ZXIgYm90
aCwgYW5kIG11c3QgYmUgaW4gYSBzaW5nbGUgY2FjaGVsaW5lLgorICAgICAq
LworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAg
IHVuc2lnbmVkIGludCBfX3NvZnRpcnFfcGVuZGluZzsKKyAgICAgICAgICAg
IGJvb2wgaW5fbXdhaXQ7CisgICAgICAgIH07CisgICAgICAgIHVpbnQ2NF90
IHNvZnRpcnFfbXdhaXRfcmF3OworICAgIH07CisKICAgICB1bnNpZ25lZCBp
bnQgX19sb2NhbF9pcnFfY291bnQ7CiAgICAgdW5zaWduZWQgaW50IG5taV9j
b3VudDsKICAgICB1bnNpZ25lZCBpbnQgbWNlX2NvdW50OwpkaWZmIC0tZ2l0
IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NvZnRpcnEuaCBiL3hlbi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9zb2Z0aXJxLmgKaW5kZXggZTRiMTk0ZjA2
OWZiLi41NWI2NWM5NzQ3YjEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zb2Z0aXJxLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3NvZnRpcnEuaApAQCAtMSw2ICsxLDggQEAKICNpZm5kZWYgX19B
U01fU09GVElSUV9IX18KICNkZWZpbmUgX19BU01fU09GVElSUV9IX18KIAor
I2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KKwogI2RlZmluZSBOTUlfU09GVElS
USAgICAgICAgICAgIChOUl9DT01NT05fU09GVElSUVMgKyAwKQogI2RlZmlu
ZSBUSU1FX0NBTElCUkFURV9TT0ZUSVJRIChOUl9DT01NT05fU09GVElSUVMg
KyAxKQogI2RlZmluZSBWQ1BVX0tJQ0tfU09GVElSUSAgICAgIChOUl9DT01N
T05fU09GVElSUVMgKyAyKQpAQCAtOSw0ICsxMSw1MCBAQAogI2RlZmluZSBI
Vk1fRFBDSV9TT0ZUSVJRICAgICAgIChOUl9DT01NT05fU09GVElSUVMgKyA0
KQogI2RlZmluZSBOUl9BUkNIX1NPRlRJUlFTICAgICAgIDUKIAorLyoKKyAq
IEVuc3VyZSBzb2Z0aXJxIEBuciBpcyBwZW5kaW5nIG9uIEBjcHUuICBSZXR1
cm4gdHJ1ZSBpZiBhbiBJUEkgY2FuIGJlCisgKiBza2lwcGVkLCBmYWxzZSBp
ZiB0aGUgSVBJIGNhbm5vdCBiZSBza2lwcGVkLgorICoKKyAqIFdlIHVzZSBh
IENNUFhDSEcgY292ZXJpbmcgYm90aCBfX3NvZnRpcnFfcGVuZGluZyBhbmQg
aW5fbXdhaXQsIGluIG9yZGVyIHRvCisgKiBzZXQgc29mdGlycSBAbnIgd2hp
bGUgYWxzbyBvYnNlcnZpbmcgaW5fbXdhaXQgaW4gYSByYWNlLWZyZWUgd2F5
LgorICovCitzdGF0aWMgYWx3YXlzX2lubGluZSBib29sIGFyY2hfc2V0X3Nv
ZnRpcnEodW5zaWduZWQgaW50IG5yLCB1bnNpZ25lZCBpbnQgY3B1KQorewor
ICAgIHVpbnQ2NF90ICpwdHIgPSAmaXJxX3N0YXRbY3B1XS5zb2Z0aXJxX213
YWl0X3JhdzsKKyAgICB1aW50NjRfdCBwcmV2LCBvbGQsIG5ldzsKKyAgICB1
bnNpZ25lZCBpbnQgc29mdGlycSA9IDFVIDw8IG5yOworCisgICAgb2xkID0g
QUNDRVNTX09OQ0UoKnB0cik7CisKKyAgICBmb3IgKCA7OyApCisgICAgewor
ICAgICAgICBpZiAoIG9sZCAmIHNvZnRpcnEgKQorICAgICAgICAgICAgLyog
U29mdGlycSBhbHJlYWR5IHBlbmRpbmcsIG5vdGhpbmcgdG8gZG8uICovCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBuZXcgPSBvbGQg
fCBzb2Z0aXJxOworCisgICAgICAgIHByZXYgPSBjbXB4Y2hnKHB0ciwgb2xk
LCBuZXcpOworICAgICAgICBpZiAoIHByZXYgPT0gb2xkICkKKyAgICAgICAg
ICAgIGJyZWFrOworCisgICAgICAgIG9sZCA9IHByZXY7CisgICAgfQorCisg
ICAgLyoKKyAgICAgKiBXZSBoYXZlIGNhdXNlZCB0aGUgc29mdGlycSB0byBi
ZWNvbWUgcGVuZGluZy4gIElmIGluX213YWl0IHdhcyBzZXQsIHRoZQorICAg
ICAqIHRhcmdldCBDUFUgd2lsbCBub3RpY2UgdGhlIG1vZGlmaWNhdGlvbiBh
bmQgYWN0IG9uIGl0LgorICAgICAqCisgICAgICogV2UgY2FuJ3QgYWNjZXNz
IHRoZSBpbl9td2FpdCBmaWVsZCBuaWNlbHksIHNvIHVzZSBzb21lIEJVSUxE
X0JVR19PTigpJ3MKKyAgICAgKiB0byBjcm9zcy1jaGVjayB0aGUgKDFVTCA8
PCAzMikgb3BlbmNvZGluZy4KKyAgICAgKi8KKyAgICBCVUlMRF9CVUdfT04o
c2l6ZW9mKGlycV9zdGF0WzBdLnNvZnRpcnFfbXdhaXRfcmF3KSAhPSA4KTsK
KyAgICBCVUlMRF9CVUdfT04oKG9mZnNldG9mKGlycV9jcHVzdGF0X3QsIGlu
X213YWl0KSAtCisgICAgICAgICAgICAgICAgICBvZmZzZXRvZihpcnFfY3B1
c3RhdF90LCBzb2Z0aXJxX213YWl0X3JhdykpICE9IDQpOworCisgICAgcmV0
dXJuIG5ldyAmICgxVUwgPDwgMzIpIC8qIGluX213YWl0ICovOworCit9Cisj
ZGVmaW5lIGFyY2hfc2V0X3NvZnRpcnEgYXJjaF9zZXRfc29mdGlycQorCiAj
ZW5kaWYgLyogX19BU01fU09GVElSUV9IX18gKi8K

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-12.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-12.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogV2VkLCAyIEp1bCAyMDI1IDE0OjUxOjM4ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBGaXggYnVnZ3kgIng4Ni9td2FpdC1pZGxlOiBlbmFi
bGUgaW50ZXJydXB0cyBiZWZvcmUgQzEgb24KIFhlb25zIgoKVGhlIGNoZWNr
IG9mIHRoaXNfc29mdGlycV9wZW5kaW5nIG11c3QgYmUgcGVyZm9ybWVkIHdp
dGggaXJxcyBkaXNhYmxlZCwgYnV0CnRoaXMgcHJvcGVydHkgd2FzIGJyb2tl
biBieSBhbiBhdHRlbXB0IHRvIG9wdGltaXNlIGVudHJ5L2V4aXQgbGF0ZW5j
eS4KCkNvbW1pdCBjMjI3MjMzYWQ2NGMgaW4gTGludXggKHdoaWNoIHdlIGNv
cGllZCBpbnRvIFhlbikgd2FzIGZpeGVkIHVwIGJ5CmVkYzhmYzAxZjYwOCBp
biBMaW51eCwgd2hpY2ggd2UgaGF2ZSBzbyBmYXIgbWlzc2VkLgoKR29pbmcg
dG8gc2xlZXAgd2l0aG91dCB3YWtpbmcgb24gaW50ZXJydXB0cyBpcyBub25z
ZW5zaWNhbCBvdXRzaWRlIG9mCnBsYXlfZGVhZCgpLCBzbyBvdmVybG9hZCB0
aGlzIHRvIHNlbGVjdCBiZXR3ZWVuIHR3byBwb3NzaWJsZSBNV0FJVHMsIHRo
ZQpzZWNvbmQgdXNpbmcgdGhlIFNUSSBzaGFkb3cgdG8gY292ZXIgTVdBSVQg
Zm9yIGV4YWN0bHkgdGhlIHNhbWUgcmVhc29uIGFzIHdlCmRvIGluIHNhZmVf
aGFsdCgpLgoKRml4ZXM6IGIxN2UwZWM3MmVkZSAoIng4Ni9td2FpdC1pZGxl
OiBlbmFibGUgaW50ZXJydXB0cyBiZWZvcmUgQzEgb24gWGVvbnMiKQpTaWdu
ZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRy
aXguY29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1
c2UuY29tPgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA5YjBmMGY2ZTIz
NTYxOGMyNzY0ZTkyNWI1OGM0YmZlNDEyNzMwY2VkKQoKZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYv
YWNwaS9jcHVfaWRsZS5jCmluZGV4IGJlNzY3YTJjNjY4Zi4uMTU4OTMyNWJh
YTU2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5j
CisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTc5LDYg
Kzc5LDEzIEBAIHN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgbXdhaXQodW5z
aWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAgICAg
ICAgICAgICA6OiAiYSIgKGVheCksICJjIiAoZWN4KSApOwogfQogCitzdGF0
aWMgYWx3YXlzX2lubGluZSB2b2lkIHN0aV9td2FpdF9jbGkodW5zaWduZWQg
aW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKK3sKKyAgICAvKiBTVEkgc2hh
ZG93IGNvdmVycyBNV0FJVC4gKi8KKyAgICBhc20gdm9sYXRpbGUgKCAic3Rp
OyBtd2FpdDsgY2xpIgorICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoZWF4
KSwgImMiIChlY3gpICk7Cit9CisKICNkZWZpbmUgR0VUX0hXX1JFU19JTl9O
Uyhtc3IsIHZhbCkgXAogICAgIGRvIHsgcmRtc3JsKG1zciwgdmFsKTsgdmFs
ID0gdHNjX3RpY2tzMm5zKHZhbCk7IH0gd2hpbGUoIDAgKQogI2RlZmluZSBH
RVRfTUM2X1JFUyh2YWwpICBHRVRfSFdfUkVTX0lOX05TKDB4NjY0LCB2YWwp
CkBAIC00NzMsMTIgKzQ4MCwxOSBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9o
aW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogCiAg
ICAgbW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGluZywgMCwgMCk7CiAKKyAg
ICBBU1NFUlQoIWxvY2FsX2lycV9pc19lbmFibGVkKCkpOworCiAgICAgaWYg
KCAhKnRoaXNfc29mdGlycV9wZW5kaW5nICkKICAgICB7CiAgICAgICAgIHN0
cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdldF9jcHVfaW5mbygpOwogCiAgICAg
ICAgIHNwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8pOwotICAgICAgICBtd2Fp
dChlYXgsIGVjeCk7CisKKyAgICAgICAgaWYgKCBlY3ggJiBNV0FJVF9FQ1hf
SU5URVJSVVBUX0JSRUFLICkKKyAgICAgICAgICAgIG13YWl0KGVheCwgZWN4
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3RpX213YWl0X2NsaShl
YXgsIGVjeCk7CisKICAgICAgICAgc3BlY19jdHJsX2V4aXRfaWRsZShpbmZv
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbXdh
aXQtaWRsZS5jIGIveGVuL2FyY2gveDg2L2NwdS9td2FpdC1pZGxlLmMKaW5k
ZXggZTk1ZmU1ZDg4OTA3Li44OTY3ZmIxZjZmMzYgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9jcHUvbXdhaXQtaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4
Ni9jcHUvbXdhaXQtaWRsZS5jCkBAIC05NjIsMTIgKzk2Miw4IEBAIHN0YXRp
YyB2b2lkIGNmX2NoZWNrIG13YWl0X2lkbGUodm9pZCkKIAogCXVwZGF0ZV9s
YXN0X2N4X3N0YXQocG93ZXIsIGN4LCBiZWZvcmUpOwogCi0JaWYgKGN4LT5p
cnFfZW5hYmxlX2Vhcmx5KQotCQlsb2NhbF9pcnFfZW5hYmxlKCk7Ci0KLQlt
d2FpdF9pZGxlX3dpdGhfaGludHMoY3gtPmFkZHJlc3MsIE1XQUlUX0VDWF9J
TlRFUlJVUFRfQlJFQUspOwotCi0JbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwlt
d2FpdF9pZGxlX3dpdGhfaGludHMoY3gtPmFkZHJlc3MsCisJCQkgICAgICBj
eC0+aXJxX2VuYWJsZV9lYXJseSA/IDAgOiBNV0FJVF9FQ1hfSU5URVJSVVBU
X0JSRUFLKTsKIAogCWFmdGVyID0gYWx0ZXJuYXRpdmVfY2FsbChjcHVpZGxl
X2dldF90aWNrKTsKIAo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-13.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-13.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCA0IEp1bCAyMDI1IDE3OjUzOjE1ICswMTAwClN1Ympl
Y3Q6IHg4Ni94ZW4tY3B1aWQ6IEZpeCBiYWNrcG9ydHMgb2YgbmV3IGZlYXR1
cmVzCgpYZW4gNC4xOCBkb2Vzbid0IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUg
ZmVhdHVyZSBuYW1lcyBsaWtlIFhlbiA0LjE5IGRvZXMsIGFuZAp0aGVzZSBo
dW5rcyB3ZXJlIG1pc3NlZCBvbiBwcmlvciBzZWN1cml0eSBmaXhlcy4KCkZp
eGVzOiA4YmNlZDlhMTVjOGMgKCJ4ODYvc3BlYy1jdHJsOiBTdXBwb3J0IGZv
ciBTUlNPX1UvU19OTyBhbmQgU1JTT19NU1JfRklYIikKRml4ZXM6IGYxMzJj
ODJmYTY1ZCAoIng4Ni9zcGVjLWN0cmw6IFN5bnRoZXNpc2UgSVRTX05PIHRv
IGd1ZXN0cyBvbiB1bmFmZmVjdGVkIGhhcmR3YXJlIikKRml4ZXM6IGRiYTA1
NTY2MTI5MiAoIng4Ni9zcGVjLWN0cmw6IFN1cHBvcnQgSW50ZWwncyBuZXcg
UEItT1BUIikKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3
LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNo
IDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQgYS90b29scy9taXNj
L3hlbi1jcHVpZC5jIGIvdG9vbHMvbWlzYy94ZW4tY3B1aWQuYwppbmRleCA1
MmU0NTFhODA2YzEuLjZiZDMxZjFlMTU2YyAxMDA2NDQKLS0tIGEvdG9vbHMv
bWlzYy94ZW4tY3B1aWQuYworKysgYi90b29scy9taXNjL3hlbi1jcHVpZC5j
CkBAIC0yMDUsNiArMjA1LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0
IHN0cl9lMjFhWzMyXSA9CiAKICAgICAvKiAyNiAqLyAgICAgICAgICAgICAg
ICBbMjddID0gInNicGIiLAogICAgIFsyOF0gPSAiaWJwYi1icnR5cGUiLCAg
IFsyOV0gPSAic3Jzby1ubyIsCisgICAgWzMwXSA9ICJzcnNvLXVzLW5vIiwg
ICAgWzMxXSA9ICJzcnNvLW1zci1maXgiLAogfTsKIAogc3RhdGljIGNvbnN0
IGNoYXIgKmNvbnN0IHN0cl83YjFbMzJdID0KQEAgLTIzMCw3ICsyMzEsNyBA
QCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgc3RyXzdkMlszMl0gPQogICAg
IFsgNF0gPSAiYmhpLWN0cmwiLCAgICAgIFsgNV0gPSAibWNkdC1ubyIsCiB9
OwogCi1zdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgc3RyX20xMEFsWzMyXSA9
CitzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgc3RyX20xMEFsWzY0XSA9CiB7
CiAgICAgWyAwXSA9ICJyZGNsLW5vIiwgICAgICAgICAgICAgWyAxXSA9ICJl
aWJycyIsCiAgICAgWyAyXSA9ICJyc2JhIiwgICAgICAgICAgICAgICAgWyAz
XSA9ICJza2lwLWwxZGZsIiwKQEAgLTI0NywxMCArMjQ4LDEwIEBAIHN0YXRp
YyBjb25zdCBjaGFyICpjb25zdCBzdHJfbTEwQWxbMzJdID0KICAgICBbMjRd
ID0gInBicnNiLW5vIiwgICAgICAgICAgICBbMjVdID0gImdkcy1jdHJsIiwK
ICAgICBbMjZdID0gImdkcy1ubyIsICAgICAgICAgICAgICBbMjddID0gInJm
ZHMtbm8iLAogICAgIFsyOF0gPSAicmZkcy1jbGVhciIsCi19OwogCi1zdGF0
aWMgY29uc3QgY2hhciAqY29uc3Qgc3RyX20xMEFoWzMyXSA9Ci17CisgICAg
WzMyXSA9ICJwYi1vcHQtY3RybCIsCisKKyAgICBbNjJdID0gIml0cy1ubyIs
CiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHsKQEAgLTI3Niw3ICsyNzcs
NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsKICAgICB7ICJDUFVJRCAweDAw
MDAwMDA3OjEuZWN4IiwgICAgICI3YzEiLCBzdHJfN2MxIH0sCiAgICAgeyAi
Q1BVSUQgMHgwMDAwMDAwNzoxLmVkeCIsICAgICAiN2QxIiwgc3RyXzdkMSB9
LAogICAgIHsgIk1TUl9BUkNIX0NBUFMubG8iLCAgICAgICAgICJtMTBBbCIs
IHN0cl9tMTBBbCB9LAotICAgIHsgIk1TUl9BUkNIX0NBUFMuaGkiLCAgICAg
ICAgICJtMTBBaCIsIHN0cl9tMTBBaCB9LAorICAgIHsgIk1TUl9BUkNIX0NB
UFMuaGkiLCAgICAgICAgICJtMTBBaCIsIHN0cl9tMTBBbCArIDMyIH0sCiB9
OwogCiAjZGVmaW5lIENPTF9BTElHTiAiMjQiCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-14.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-14.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxNzoxOToxOSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogUmVhcnJhbmdlIGd1ZXN0X2NvbW1vbl8q
X2ZlYXR1cmVfYWRqdXN0bWVudHMoKQoKVHVybiB0aGUgaWYoKXMgaW50byBz
d2l0Y2goKWVzLCBhcyB3ZSdyZSBnb2luZyB0byBuZWVkIEFNRCBzZWN0aW9u
cy4KCk1vdmUgdGhlIFJUTSBhZGp1c3RtZW50cyBpbnRvIHRoZSBJbnRlbCBz
ZWN0aW9uLCB3aGVyZSB0aGV5IG91Z2h0IHRvIGxpdmUuCgpObyBmdW5jdGlv
bmFsIGNoYW5nZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYyBiL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5
LmMKaW5kZXggOGYzMzJmZGJkOWFlLi4zNmQzNmVhNjBlNjEgMTAwNjQ0Ci0t
LSBhL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMKKysrIGIveGVuL2FyY2gv
eDg2L2NwdS1wb2xpY3kuYwpAQCAtNDQzLDggKzQ0Myw5IEBAIHN0YXRpYyB2
b2lkIF9faW5pdCBndWVzdF9jb21tb25fZGVmYXVsdF9sZWF2ZXMoc3RydWN0
IGNwdV9wb2xpY3kgKnApCiAKIHN0YXRpYyB2b2lkIF9faW5pdCBndWVzdF9j
b21tb25fbWF4X2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQog
ewotICAgIGlmICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9W
RU5ET1JfSU5URUwgKQorICAgIHN3aXRjaCAoIGJvb3RfY3B1X2RhdGEueDg2
X3ZlbmRvciApCiAgICAgeworICAgIGNhc2UgWDg2X1ZFTkRPUl9JTlRFTDoK
ICAgICAgICAgLyoKICAgICAgICAgICogTVNSX0FSQ0hfQ0FQUyBpcyBqdXN0
IGZlYXR1cmUgZGF0YSwgYW5kIHdlIGNhbiBvZmZlciBpdCB0byBndWVzdHMK
ICAgICAgICAgICogdW5jb25kaXRpb25hbGx5LCBhbHRob3VnaCBsaW1pdCBp
dCB0byBJbnRlbCBzeXN0ZW1zIGFzIGl0IGlzIGhpZ2hseQpAQCAtNDg5LDYg
KzQ5MCwyMiBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX21h
eF9mZWF0dXJlX2FkanVzdG1lbnRzKHVpbnQzMl90ICpmcykKICAgICAgICAg
ICAgICBib290X2NwdV9kYXRhLng4Nl9tb2RlbCA9PSBJTlRFTF9GQU02X1NL
WUxBS0VfWCAmJgogICAgICAgICAgICAgIHJhd19jcHVfcG9saWN5LmZlYXQu
Y2x3YiApCiAgICAgICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfQ0xX
QiwgZnMpOworCisgICAgICAgIC8qCisgICAgICAgICAqIFRvIG1pdGlnYXRl
IE5hdGl2ZS1CSEksIG9uZSBvcHRpb24gaXMgdG8gdXNlIGEgVFNYIEFib3J0
IG9uIGNhcGFibGUKKyAgICAgICAgICogc3lzdGVtcy4gIFRoaXMgaXMgc2Fm
ZSBldmVuIGlmIFJUTSBoYXMgYmVlbiBkaXNhYmxlZCBmb3Igb3RoZXIKKyAg
ICAgICAgICogcmVhc29ucyB2aWEgTVNSX1RTWF97Q1RSTCxGT1JDRV9BQk9S
VH0uICBIb3dldmVyLCBhIGd1ZXN0IGtlcm5lbAorICAgICAgICAgKiBkb2Vz
bid0IGdldCB0byBrbm93IHRoaXMgdHlwZSBvZiBpbmZvcm1hdGlvbi4KKyAg
ICAgICAgICoKKyAgICAgICAgICogVGhlcmVmb3JlIHRoZSBtZWFuaW5nIG9m
IFJUTV9BTFdBWVNfQUJPUlQgaGFzIGJlZW4gYWRqdXN0ZWQsIHRvCisgICAg
ICAgICAqIGluc3RlYWQgbWVhbiAiWEJFR0lOIHdvbid0IGZhdWx0Ii4gIFRo
aXMgaXMgZW5vdWdoIGZvciBhIGd1ZXN0CisgICAgICAgICAqIGtlcm5lbCB0
byBtYWtlIGFuIGluZm9ybWVkIGNob2ljZSBXUlQgbWl0aWdhdGluZyBOYXRp
dmUtQkhJLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiBSVE0tY2FwYWJs
ZSwgd2UgY2FuIHJ1biBhIFZNIHdoaWNoIGhhcyBzZWVuIFJUTV9BTFdBWVNf
QUJPUlQuCisgICAgICAgICAqLworICAgICAgICBpZiAoIHRlc3RfYml0KFg4
Nl9GRUFUVVJFX1JUTSwgZnMpICkKKyAgICAgICAgICAgIF9fc2V0X2JpdChY
ODZfRkVBVFVSRV9SVE1fQUxXQVlTX0FCT1JULCBmcyk7CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIAogICAgIC8qCkBAIC01MDAsMjcgKzUxNywxMyBAQCBz
dGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX21heF9mZWF0dXJlX2Fk
anVzdG1lbnRzKHVpbnQzMl90ICpmcykKICAgICAgKi8KICAgICBfX3NldF9i
aXQoWDg2X0ZFQVRVUkVfSFRULCBmcyk7CiAgICAgX19zZXRfYml0KFg4Nl9G
RUFUVVJFX0NNUF9MRUdBQ1ksIGZzKTsKLQotICAgIC8qCi0gICAgICogVG8g
bWl0aWdhdGUgTmF0aXZlLUJISSwgb25lIG9wdGlvbiBpcyB0byB1c2UgYSBU
U1ggQWJvcnQgb24gY2FwYWJsZQotICAgICAqIHN5c3RlbXMuICBUaGlzIGlz
IHNhZmUgZXZlbiBpZiBSVE0gaGFzIGJlZW4gZGlzYWJsZWQgZm9yIG90aGVy
IHJlYXNvbnMKLSAgICAgKiB2aWEgTVNSX1RTWF97Q1RSTCxGT1JDRV9BQk9S
VH0uICBIb3dldmVyLCBhIGd1ZXN0IGtlcm5lbCBkb2Vzbid0IGdldCB0bwot
ICAgICAqIGtub3cgdGhpcyB0eXBlIG9mIGluZm9ybWF0aW9uLgotICAgICAq
Ci0gICAgICogVGhlcmVmb3JlIHRoZSBtZWFuaW5nIG9mIFJUTV9BTFdBWVNf
QUJPUlQgaGFzIGJlZW4gYWRqdXN0ZWQsIHRvIGluc3RlYWQKLSAgICAgKiBt
ZWFuICJYQkVHSU4gd29uJ3QgZmF1bHQiLiAgVGhpcyBpcyBlbm91Z2ggZm9y
IGEgZ3Vlc3Qga2VybmVsIHRvIG1ha2UKLSAgICAgKiBhbiBpbmZvcm1lZCBj
aG9pY2UgV1JUIG1pdGlnYXRpbmcgTmF0aXZlLUJISS4KLSAgICAgKgotICAg
ICAqIElmIFJUTS1jYXBhYmxlLCB3ZSBjYW4gcnVuIGEgVk0gd2hpY2ggaGFz
IHNlZW4gUlRNX0FMV0FZU19BQk9SVC4KLSAgICAgKi8KLSAgICBpZiAoIHRl
c3RfYml0KFg4Nl9GRUFUVVJFX1JUTSwgZnMpICkKLSAgICAgICAgX19zZXRf
Yml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNfQUJPUlQsIGZzKTsKIH0KIAog
c3RhdGljIHZvaWQgX19pbml0IGd1ZXN0X2NvbW1vbl9kZWZhdWx0X2ZlYXR1
cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQogewotICAgIGlmICggYm9v
dF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfSU5URUwgKQor
ICAgIHN3aXRjaCAoIGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciApCiAgICAg
eworICAgIGNhc2UgWDg2X1ZFTkRPUl9JTlRFTDoKICAgICAgICAgLyoKICAg
ICAgICAgICogSXZ5QnJpZGdlIGNsaWVudCBwYXJ0cyBzdWZmZXIgZnJvbSBs
ZWFrYWdlIG9mIFJEUkFORCBkYXRhIGR1ZSB0byBTUkJEUwogICAgICAgICAg
KiAoWFNBLTMyMCAvIENWRS0yMDIwLTA1NDMpLCBhbmQgd29uJ3QgYmUgcmVj
ZWl2aW5nIG1pY3JvY29kZSB0bwpAQCAtNTY0LDYgKzU2NywyMyBAQCBzdGF0
aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9h
ZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICAgICAgICAgYm9vdF9j
cHVfZGF0YS54ODZfbW9kZWwgPT0gSU5URUxfRkFNNl9TS1lMQUtFX1ggJiYK
ICAgICAgICAgICAgICByYXdfY3B1X3BvbGljeS5mZWF0LmNsd2IgKQogICAg
ICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfQ0xXQiwgZnMpOwor
CisgICAgICAgIC8qCisgICAgICAgICAqIE9uIGNlcnRhaW4gaGFyZHdhcmUs
IHNwZWN1bGF0aXZlIG9yIGVycmF0YSB3b3JrYXJvdW5kcyBjYW4gcmVzdWx0
CisgICAgICAgICAqIGluIFRTWCBiZWluZyBwbGFjZWQgaW4gImZvcmNlLWFi
b3J0IiBtb2RlLCB3aGVyZSBpdCBkb2Vzbid0CisgICAgICAgICAqIGFjdHVh
bGx5IGZ1bmN0aW9uIGFzIGV4cGVjdGVkLCBidXQgaXMgdGVjaG5pY2FsbHkg
Y29tcGF0aWJsZSB3aXRoCisgICAgICAgICAqIHRoZSBJU0EuCisgICAgICAg
ICAqCisgICAgICAgICAqIERvIG5vdCBhZHZlcnRpc2UgUlRNIHRvIGd1ZXN0
cyBieSBkZWZhdWx0IGlmIGl0IHdvbid0IGFjdHVhbGx5CisgICAgICAgICAq
IHdvcmsuICBJbnN0ZWFkLCBhZHZlcnRpc2UgUlRNX0FMV0FZU19BQk9SVCBp
bmRpY2F0aW5nIHRoYXQgVFNYCisgICAgICAgICAqIEFib3J0cyBhcmUgc2Fm
ZSB0byB1c2UsIGUuZy4gZm9yIG1pdGlnYXRpbmcgTmF0aXZlLUJISS4KKyAg
ICAgICAgICovCisgICAgICAgIGlmICggcnRtX2Rpc2FibGVkICkKKyAgICAg
ICAgeworICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfUlRN
LCBmcyk7CisgICAgICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfUlRN
X0FMV0FZU19BQk9SVCwgZnMpOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OwogICAgIH0KIAogICAgIC8qCkBAIC01NzUsMjEgKzU5NSw2IEBAIHN0YXRp
YyB2b2lkIF9faW5pdCBndWVzdF9jb21tb25fZGVmYXVsdF9mZWF0dXJlX2Fk
anVzdG1lbnRzKHVpbnQzMl90ICpmcykKIAogICAgIGlmICggIWNwdV9oYXNf
Y21wX2xlZ2FjeSApCiAgICAgICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJF
X0NNUF9MRUdBQ1ksIGZzKTsKLQotICAgIC8qCi0gICAgICogT24gY2VydGFp
biBoYXJkd2FyZSwgc3BlY3VsYXRpdmUgb3IgZXJyYXRhIHdvcmthcm91bmRz
IGNhbiByZXN1bHQgaW4KLSAgICAgKiBUU1ggYmVpbmcgcGxhY2VkIGluICJm
b3JjZS1hYm9ydCIgbW9kZSwgd2hlcmUgaXQgZG9lc24ndCBhY3R1YWxseQot
ICAgICAqIGZ1bmN0aW9uIGFzIGV4cGVjdGVkLCBidXQgaXMgdGVjaG5pY2Fs
bHkgY29tcGF0aWJsZSB3aXRoIHRoZSBJU0EuCi0gICAgICoKLSAgICAgKiBE
byBub3QgYWR2ZXJ0aXNlIFJUTSB0byBndWVzdHMgYnkgZGVmYXVsdCBpZiBp
dCB3b24ndCBhY3R1YWxseSB3b3JrLgotICAgICAqIEluc3RlYWQsIGFkdmVy
dGlzZSBSVE1fQUxXQVlTX0FCT1JUIGluZGljYXRpbmcgdGhhdCBUU1ggQWJv
cnRzIGFyZSBzYWZlCi0gICAgICogdG8gdXNlLCBlLmcuIGZvciBtaXRpZ2F0
aW5nIE5hdGl2ZS1CSEkuCi0gICAgICovCi0gICAgaWYgKCBydG1fZGlzYWJs
ZWQgKQotICAgIHsKLSAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVf
UlRNLCBmcyk7Ci0gICAgICAgIF9fc2V0X2JpdChYODZfRkVBVFVSRV9SVE1f
QUxXQVlTX0FCT1JULCBmcyk7Ci0gICAgfQogfQogCiBzdGF0aWMgdm9pZCBf
X2luaXQgZ3Vlc3RfY29tbW9uX2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMy
X3QgKmZzKQo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-15.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-15.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxMCBTZXAgMjAyNCAxOTo1NToxNSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogSW5mcmFzdHJ1Y3R1cmUgZm9yIENQVUlE
IGxlYWYgMHg4MDAwMDAyMS5lY3gKClNpZ25lZC1vZmYtYnk6IEFuZHJldyBD
b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5
OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0
IGEvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcHVpZC5jIGIvdG9vbHMvbGli
cy9saWdodC9saWJ4bF9jcHVpZC5jCmluZGV4IGNlNGYzYzcwOTViYS4uZGY1
NTI5YWMxZmE5IDEwMDY0NAotLS0gYS90b29scy9saWJzL2xpZ2h0L2xpYnhs
X2NwdWlkLmMKKysrIGIvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcHVpZC5j
CkBAIC0zNDIsNiArMzQyLDcgQEAgaW50IGxpYnhsX2NwdWlkX3BhcnNlX2Nv
bmZpZyhsaWJ4bF9jcHVpZF9wb2xpY3lfbGlzdCAqcG9saWN5LCBjb25zdCBj
aGFyKiBzdHIpCiAgICAgICAgIENQVUlEX0VOVFJZKDB4MDAwMDAwMDcsICAx
LCBDUFVJRF9SRUdfRURYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBhLCBD
UFVJRF9SRUdfRUFYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBhLCBDUFVJ
RF9SRUdfRURYKSwKKyAgICAgICAgQ1BVSURfRU5UUlkoMHg4MDAwMDAyMSwg
TkEsIENQVUlEX1JFR19FQ1gpLAogI3VuZGVmIE1TUl9FTlRSWQogI3VuZGVm
IENQVUlEX0VOVFJZCiAgICAgfTsKZGlmZiAtLWdpdCBhL3Rvb2xzL21pc2Mv
eGVuLWNwdWlkLmMgYi90b29scy9taXNjL3hlbi1jcHVpZC5jCmluZGV4IDZi
ZDMxZjFlMTU2Yy4uMTliOTA2OGQzNmVjIDEwMDY0NAotLS0gYS90b29scy9t
aXNjL3hlbi1jcHVpZC5jCisrKyBiL3Rvb2xzL21pc2MveGVuLWNwdWlkLmMK
QEAgLTI1NCw2ICsyNTQsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0
IHN0cl9tMTBBbFs2NF0gPQogICAgIFs2Ml0gPSAiaXRzLW5vIiwKIH07CiAK
K3N0YXRpYyBjb25zdCBjaGFyICpjb25zdCBzdHJfZTIxY1szMl0gPQorewor
fTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAgY29uc3QgY2hhciAq
bmFtZTsKICAgICBjb25zdCBjaGFyICphYmJyOwpAQCAtMjc4LDYgKzI4Miw3
IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogICAgIHsgIkNQVUlEIDB4MDAw
MDAwMDc6MS5lZHgiLCAgICAgIjdkMSIsIHN0cl83ZDEgfSwKICAgICB7ICJN
U1JfQVJDSF9DQVBTLmxvIiwgICAgICAgICAibTEwQWwiLCBzdHJfbTEwQWwg
fSwKICAgICB7ICJNU1JfQVJDSF9DQVBTLmhpIiwgICAgICAgICAibTEwQWgi
LCBzdHJfbTEwQWwgKyAzMiB9LAorICAgIHsgIkNQVUlEIDB4ODAwMDAwMjEu
ZWN4IiwgICAgICAiZTIxYyIsIHN0cl9lMjFjIH0sCiB9OwogCiAjZGVmaW5l
IENPTF9BTElHTiAiMjQiCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1
LXBvbGljeS5jIGIveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYwppbmRleCAz
NmQzNmVhNjBlNjEuLjY2MjAwMjMzMzg3OSAxMDA2NDQKLS0tIGEveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYworKysgYi94ZW4vYXJjaC94ODYvY3B1LXBv
bGljeS5jCkBAIC0zNDIsNyArMzQyLDYgQEAgc3RhdGljIHZvaWQgcmVjYWxj
dWxhdGVfbWlzYyhzdHJ1Y3QgY3B1X3BvbGljeSAqcCkKICAgICAgICAgcC0+
ZXh0ZC5yYXdbMHgxZl0gPSBFTVBUWV9MRUFGOyAvKiBTRVYgKi8KICAgICAg
ICAgcC0+ZXh0ZC5yYXdbMHgyMF0gPSBFTVBUWV9MRUFGOyAvKiBQbGF0Zm9y
bSBRb1MgKi8KICAgICAgICAgcC0+ZXh0ZC5yYXdbMHgyMV0uYiA9IDA7Ci0g
ICAgICAgIHAtPmV4dGQucmF3WzB4MjFdLmMgPSAwOwogICAgICAgICBwLT5l
eHRkLnJhd1sweDIxXS5kID0gMDsKICAgICAgICAgYnJlYWs7CiAgICAgfQpk
aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS9jb21tb24uYyBiL3hlbi9h
cmNoL3g4Ni9jcHUvY29tbW9uLmMKaW5kZXggZWRlYzBhMjU0NjJjLi4wMDdl
OTM1OTkyYmEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvY29tbW9u
LmMKKysrIGIveGVuL2FyY2gveDg2L2NwdS9jb21tb24uYwpAQCAtNDc5LDcg
KzQ3OSw5IEBAIHN0YXRpYyB2b2lkIGdlbmVyaWNfaWRlbnRpZnkoc3RydWN0
IGNwdWluZm9feDg2ICpjKQogCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZl
bCA+PSAweDgwMDAwMDA4KQogCQljLT54ODZfY2FwYWJpbGl0eVtGRUFUVVJF
U0VUX2U4Yl0gPSBjcHVpZF9lYngoMHg4MDAwMDAwOCk7CiAJaWYgKGMtPmV4
dGVuZGVkX2NwdWlkX2xldmVsID49IDB4ODAwMDAwMjEpCi0JCWMtPng4Nl9j
YXBhYmlsaXR5W0ZFQVRVUkVTRVRfZTIxYV0gPSBjcHVpZF9lYXgoMHg4MDAw
MDAyMSk7CisJCWNwdWlkKDB4ODAwMDAwMjEsCisJCSAgICAgICZjLT54ODZf
Y2FwYWJpbGl0eVtGRUFUVVJFU0VUX2UyMWFdLCAmdG1wLAorCQkgICAgICAm
Yy0+eDg2X2NhcGFiaWxpdHlbRkVBVFVSRVNFVF9lMjFjXSwgJnRtcCk7CiAK
IAkvKiBJbnRlbC1kZWZpbmVkIGZsYWdzOiBsZXZlbCAweDAwMDAwMDA3ICov
CiAJaWYgKGMtPmNwdWlkX2xldmVsID49IDcpIHsKZGlmZiAtLWdpdCBhL3hl
bi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0LmggYi94
ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCmlu
ZGV4IGU2ZWQ0YzAyZTFkYS4uODZlNDRkZDg1MjU4IDEwMDY0NAotLS0gYS94
ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCisr
KyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0
LmgKQEAgLTM0OCw2ICszNDgsOCBAQCBYRU5fQ1BVRkVBVFVSRShSRkRTX0NM
RUFSLCAgICAgICAgIDE2KjMyKzI4KSAvKiFBIFJlZ2lzdGVyIEZpbGUocykg
Y2xlYXJlZCBieSBWRQogWEVOX0NQVUZFQVRVUkUoUEJfT1BUX0NUUkwsICAg
ICAgICAxNiozMiszMikgLyogICBNU1JfUEJfT1BUX0NUUkwuSUJQQl9BTFQg
Ki8KIFhFTl9DUFVGRUFUVVJFKElUU19OTywgICAgICAgICAgICAgMTYqMzIr
NjIpIC8qIUEgTm8gSW5kaXJlY3QgVGFyZ2V0IFNlbGVjdGlvbiAqLwogCisv
KiBBTUQtZGVmaW5lZCBDUFUgZmVhdHVyZXMsIENQVUlEIGxldmVsIDB4ODAw
MDAwMjEuZWN4LCB3b3JkIDE4ICovCisKICNlbmRpZiAvKiBYRU5fQ1BVRkVB
VFVSRSAqLwogCiAvKiBDbGVhbiB1cCBmcm9tIGEgZGVmYXVsdCBpbmNsdWRl
LiAgQ2xvc2UgdGhlIGVudW0gKGZvciBDKS4gKi8KZGlmZiAtLWdpdCBhL3hl
bi9pbmNsdWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaCBiL3hlbi9pbmNs
dWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaAppbmRleCBmMzM1OTI5YTcw
YzQuLjVmZTQxMjdkOWI3NSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVu
L2xpYi94ODYvY3B1LXBvbGljeS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9s
aWIveDg2L2NwdS1wb2xpY3kuaApAQCAtMjIsNiArMjIsNyBAQAogI2RlZmlu
ZSBGRUFUVVJFU0VUXzdkMSAgICAgICAxNSAvKiAweDAwMDAwMDA3OjEuZWR4
ICAgICovCiAjZGVmaW5lIEZFQVRVUkVTRVRfbTEwQWwgICAgIDE2IC8qIDB4
MDAwMDAxMGEuZWF4ICAgICAgKi8KICNkZWZpbmUgRkVBVFVSRVNFVF9tMTBB
aCAgICAgMTcgLyogMHgwMDAwMDEwYS5lZHggICAgICAqLworI2RlZmluZSBG
RUFUVVJFU0VUX2UyMWMgICAgICAxOCAvKiAweDgwMDAwMDIxLmVjeCAgICAg
ICovCiAKIHN0cnVjdCBjcHVpZF9sZWFmCiB7CkBAIC0zMjcsNyArMzI4LDEx
IEBAIHN0cnVjdCBjcHVfcG9saWN5CiAgICAgICAgICAgICB1aW50MTZfdCB1
Y29kZV9zaXplOyAvKiBVbml0cyBvZiAxNiBieXRlcyAqLwogICAgICAgICAg
ICAgdWludDhfdCAgcmFwX3NpemU7ICAgLyogVW5pdHMgb2YgOCBlbnRyaWVz
ICovCiAgICAgICAgICAgICB1aW50OF90ICA6ODsKLSAgICAgICAgICAgIHVp
bnQzMl90IC8qIGMgKi86MzIsIC8qIGQgKi86MzI7CisgICAgICAgICAgICB1
bmlvbiB7CisgICAgICAgICAgICAgICAgdWludDMyX3QgZTIxYzsKKyAgICAg
ICAgICAgICAgICBzdHJ1Y3QgeyBERUNMX0JJVEZJRUxEKGUyMWMpOyB9Owor
ICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHVpbnQzMl90IC8qIGQgKi86
MzI7CiAgICAgICAgIH07CiAgICAgfSBleHRkOwogCmRpZmYgLS1naXQgYS94
ZW4vbGliL3g4Ni9jcHVpZC5jIGIveGVuL2xpYi94ODYvY3B1aWQuYwppbmRl
eCBlYjc2OThkYzczMjUuLjYyOThkMDUxZjJhNiAxMDA2NDQKLS0tIGEveGVu
L2xpYi94ODYvY3B1aWQuYworKysgYi94ZW4vbGliL3g4Ni9jcHVpZC5jCkBA
IC04MSw2ICs4MSw3IEBAIHZvaWQgeDg2X2NwdV9wb2xpY3lfdG9fZmVhdHVy
ZXNldCgKICAgICBmc1tGRUFUVVJFU0VUXzdkMV0gICAgICAgPSBwLT5mZWF0
Ll83ZDE7CiAgICAgZnNbRkVBVFVSRVNFVF9tMTBBbF0gICAgID0gcC0+YXJj
aF9jYXBzLmxvOwogICAgIGZzW0ZFQVRVUkVTRVRfbTEwQWhdICAgICA9IHAt
PmFyY2hfY2Fwcy5oaTsKKyAgICBmc1tGRUFUVVJFU0VUX2UyMWNdICAgICAg
PSBwLT5leHRkLmUyMWM7CiB9CiAKIHZvaWQgeDg2X2NwdV9mZWF0dXJlc2V0
X3RvX3BvbGljeSgKQEAgLTEwNCw2ICsxMDUsNyBAQCB2b2lkIHg4Nl9jcHVf
ZmVhdHVyZXNldF90b19wb2xpY3koCiAgICAgcC0+ZmVhdC5fN2QxICAgICAg
ICAgICAgID0gZnNbRkVBVFVSRVNFVF83ZDFdOwogICAgIHAtPmFyY2hfY2Fw
cy5sbyAgICAgICAgICA9IGZzW0ZFQVRVUkVTRVRfbTEwQWxdOwogICAgIHAt
PmFyY2hfY2Fwcy5oaSAgICAgICAgICA9IGZzW0ZFQVRVUkVTRVRfbTEwQWhd
OworICAgIHAtPmV4dGQuZTIxYyAgICAgICAgICAgICA9IGZzW0ZFQVRVUkVT
RVRfZTIxY107CiB9CiAKIHZvaWQgeDg2X2NwdV9wb2xpY3lfcmVjYWxjX3N5
bnRoKHN0cnVjdCBjcHVfcG9saWN5ICpwKQo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-16.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-16.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBTZXAgMjAyNCAxMToyODozOSArMDEwMApTdWJq
ZWN0OiB4ODYvdWNvZGU6IERpZ2VzdHMgZm9yIFRTQSBtaWNyb2NvZGUKCkFN
RCBhcmUgcmVsZWFzaW5nIG1pY3JvY29kZSBmb3IgVFNBLCBzbyBleHRlbmQg
dGhlIGtub3duLXByb3ZlbmFuY2UgbGlzdCB3aXRoCnRoZWlyIGhhc2hlcy4g
IFRoZXNlIHdlcmUgcHJvZHVjZWQgYmVmb3JlIHRoZSByZW1lZGlhdGlvbiBv
ZiB0aGUgbWljcm9jb2RlCnNpZ25hdHVyZSBpc3N1ZXMgKHRoZSBlbnRyeXNp
Z24gdnVsbmVyYWJpbGl0eSksIHNvIGNhbiBiZSBPUy1sb2FkZWQgb24Kb3V0
LW9mLWRhdGUgZmlybXdhcmUuCgpJbmNsdWRlIGFuIG9mZi1ieS1kZWZhdWx0
IGNoZWNrIGZvciB0aGUgc29ydGVkLW5lc3Mgb2YgcGF0Y2hfZGlnZXN0c1td
LiAgSXQncwpub3Qgd29ydGggcnVubmluZyBnZW5lcmFsbHkgdW5kZXIgU0VM
Rl9URVNUUywgYnV0IGlzIHVzZWZ1bCB3aGVuIGVkaXRpbmcgdGhlCmRpZ2Vz
dCBsaXN0LgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NzEgLyBDVkUtMjAyNC0z
NjM1MCAvIENWRS0yMDI0LTM2MzU3LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQWNrZWQtYnk6
IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQg
YS94ZW4vYXJjaC94ODYvY3B1L21pY3JvY29kZS9hbWQtcGF0Y2gtZGlnZXN0
cy5jIGIveGVuL2FyY2gveDg2L2NwdS9taWNyb2NvZGUvYW1kLXBhdGNoLWRp
Z2VzdHMuYwppbmRleCBkMzI3NjEyMjY3MTIuLmQyYzRlMDE3OGExZSAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9taWNyb2NvZGUvYW1kLXBhdGNo
LWRpZ2VzdHMuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L21pY3JvY29kZS9h
bWQtcGF0Y2gtZGlnZXN0cy5jCkBAIC04MCw2ICs4MCwxNSBAQAogICAgICAg
ICAweDBkLCAweDViLCAweDY1LCAweDM0LCAweDY5LCAweGIyLCAweDYyLCAw
eDIxLAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGEwMDEx
ZDcsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHgzNSwgMHgwNywgMHhj
ZCwgMHg0MCwgMHg5NCwgMHhiYywgMHg4MSwgMHg2YiwKKyAgICAgICAgMHhm
YywgMHg2MSwgMHg1NiwgMHgxYSwgMHhlMiwgMHhkYiwgMHg5NiwgMHgxMiwK
KyAgICAgICAgMHgxYywgMHgxYywgMHgzMSwgMHhiMSwgMHgwMiwgMHg2Ziwg
MHhlNSwgMHhkMiwKKyAgICAgICAgMHhmZSwgMHgxYiwgMHgwNCwgMHgwMywg
MHgyYywgMHg4ZiwgMHg0YywgMHgzNiwKKyAgICB9LAorfSwKIHsKICAgICAu
cGF0Y2hfaWQgPSAweDBhMDAxMjM4LAogICAgIC5kaWdlc3QgPSB7CkBAIC04
OSw2ICs5OCwxNSBAQAogICAgICAgICAweGMwLCAweGNkLCAweDMzLCAweGYy
LCAweDhkLCAweGY5LCAweGVmLCAweDU5LAogICAgIH0sCiB9LAoreworICAg
IC5wYXRjaF9pZCA9IDB4MGEwMDEyM2IsCisgICAgLmRpZ2VzdCA9IHsKKyAg
ICAgICAgMHhlZiwgMHhhMSwgMHgxZSwgMHg3MSwgMHhmMSwgMHhjMywgMHgy
YywgMHhlMiwKKyAgICAgICAgMHhjMywgMHhlZiwgMHg2OSwgMHg0MSwgMHg3
YSwgMHg1NCwgMHhjYSwgMHhjMywKKyAgICAgICAgMHg4ZiwgMHg2MiwgMHg4
NCwgMHhlZSwgMHhjMiwgMHgzOSwgMHhkOSwgMHgyOCwKKyAgICAgICAgMHg5
NSwgMHhhNywgMHgxMiwgMHg0OSwgMHgxZSwgMHgzMCwgMHg3MSwgMHg3MiwK
KyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhMDA4MjBjLAog
ICAgIC5kaWdlc3QgPSB7CkBAIC05OCw2ICsxMTYsMTUgQEAKICAgICAgICAg
MHhlMSwgMHgzYiwgMHg4ZCwgMHhiMiwgMHhmOCwgMHgyMiwgMHgwMywgMHhl
MiwKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBhMDA4MjBk
LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4ZjksIDB4MmEsIDB4YzAs
IDB4ZjQsIDB4OWUsIDB4YTQsIDB4ODcsIDB4YTQsCisgICAgICAgIDB4N2Qs
IDB4ODcsIDB4MDAsIDB4ZmQsIDB4YWIsIDB4ZGEsIDB4MTksIDB4Y2EsCisg
ICAgICAgIDB4MjYsIDB4NTEsIDB4MzIsIDB4YzEsIDB4NTcsIDB4OTEsIDB4
ZGYsIDB4YzEsCisgICAgICAgIDB4MDUsIDB4ZWIsIDB4MDEsIDB4N2MsIDB4
NWEsIDB4OTUsIDB4MjEsIDB4YjcsCisgICAgfSwKK30sCiB7CiAgICAgLnBh
dGNoX2lkID0gMHgwYTEwMTE0OCwKICAgICAuZGlnZXN0ID0gewpAQCAtMTA3
LDYgKzEzNCwxNSBAQAogICAgICAgICAweGYxLCAweDVlLCAweGIwLCAweGRl
LCAweGI0LCAweDk4LCAweGFlLCAweGM0LAogICAgIH0sCiB9LAoreworICAg
IC5wYXRjaF9pZCA9IDB4MGExMDExNGMsCisgICAgLmRpZ2VzdCA9IHsKKyAg
ICAgICAgMHg5ZSwgMHhiNiwgMHhhMiwgMHhkOSwgMHg4NywgMHgzOCwgMHhj
NSwgMHg2NCwKKyAgICAgICAgMHhkOCwgMHg4OCwgMHhmYSwgMHg3OCwgMHg5
OCwgMHhmOSwgMHg2ZiwgMHg3NCwKKyAgICAgICAgMHgzOSwgMHg5MCwgMHgx
YiwgMHhhNSwgMHhjZiwgMHg1ZSwgMHhiNCwgMHgyYSwKKyAgICAgICAgMHgw
MiwgMHhmZiwgMHhkNCwgMHg4YywgMHg3MSwgMHg4YiwgMHhlMiwgMHhjMCwK
KyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhMTAxMjQ4LAog
ICAgIC5kaWdlc3QgPSB7CkBAIC0xMTYsNiArMTUyLDE1IEBACiAgICAgICAg
IDB4MWIsIDB4N2QsIDB4NjQsIDB4OWQsIDB4NGIsIDB4NTMsIDB4MTMsIDB4
NzUsCiAgICAgfSwKIH0sCit7CisgICAgLnBhdGNoX2lkID0gMHgwYTEwMTI0
YywKKyAgICAuZGlnZXN0ID0geworICAgICAgICAweDI5LCAweGVhLCAweGYx
LCAweDJjLCAweGIyLCAweGU0LCAweGVmLCAweDkwLAorICAgICAgICAweGE0
LCAweGNkLCAweDFkLCAweDg2LCAweDk3LCAweDE3LCAweDYxLCAweDQ2LAor
ICAgICAgICAweGZjLCAweDIyLCAweGNiLCAweDU3LCAweDc1LCAweDE5LCAw
eGM4LCAweGNjLAorICAgICAgICAweDBjLCAweGY1LCAweGJjLCAweGFjLCAw
eDgxLCAweDlkLCAweDlhLCAweGQyLAorICAgIH0sCit9LAogewogICAgIC5w
YXRjaF9pZCA9IDB4MGExMDgxMDgsCiAgICAgLmRpZ2VzdCA9IHsKQEAgLTEy
NSw2ICsxNzAsMTUgQEAKICAgICAgICAgMHgyOCwgMHgxZSwgMHg5YywgMHg1
OSwgMHg2OSwgMHg5OSwgMHg0ZCwgMHgxNiwKICAgICB9LAogfSwKK3sKKyAg
ICAucGF0Y2hfaWQgPSAweDBhMTA4MTA5LAorICAgIC5kaWdlc3QgPSB7Cisg
ICAgICAgIDB4ODUsIDB4YjQsIDB4YmQsIDB4N2MsIDB4NDksIDB4YTcsIDB4
YmQsIDB4ZmEsCisgICAgICAgIDB4NDksIDB4MzYsIDB4ODAsIDB4ODEsIDB4
YzUsIDB4YjcsIDB4MzksIDB4MWIsCisgICAgICAgIDB4OWEsIDB4YWEsIDB4
NTAsIDB4ZGUsIDB4OWIsIDB4ZTksIDB4MzIsIDB4MzUsCisgICAgICAgIDB4
NDIsIDB4N2UsIDB4NTEsIDB4NGYsIDB4NTIsIDB4MmMsIDB4MjgsIDB4NTks
CisgICAgfSwKK30sCiB7CiAgICAgLnBhdGNoX2lkID0gMHgwYTIwMTAyZCwK
ICAgICAuZGlnZXN0ID0gewpAQCAtMTM0LDYgKzE4OCwxNSBAQAogICAgICAg
ICAweDhjLCAweGU5LCAweDE5LCAweDNlLCAweGNjLCAweDNmLCAweDdiLCAw
eGI0LAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGEyMDEw
MmUsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHhiZSwgMHgxZiwgMHgz
MiwgMHgwNCwgMHgwZCwgMHgzYywgMHg5YywgMHhkZCwKKyAgICAgICAgMHhl
MSwgMHhhNCwgMHhiZiwgMHg3NiwgMHgzYSwgMHhlYywgMHhjMiwgMHhmNiwK
KyAgICAgICAgMHgxMSwgMHgwMCwgMHhhNywgMHhhZiwgMHgwZiwgMHhlNSwg
MHgwMiwgMHhjNSwKKyAgICAgICAgMHg1NCwgMHgzYSwgMHgxZiwgMHg4Yywg
MHgxNiwgMHhiNSwgMHhmZiwgMHhiZSwKKyAgICB9LAorfSwKIHsKICAgICAu
cGF0Y2hfaWQgPSAweDBhMjAxMjEwLAogICAgIC5kaWdlc3QgPSB7CkBAIC0x
NDMsNiArMjA2LDE1IEBACiAgICAgICAgIDB4ZjcsIDB4NTUsIDB4ZjAsIDB4
MTMsIDB4YmIsIDB4MjIsIDB4ZjYsIDB4NDEsCiAgICAgfSwKIH0sCit7Cisg
ICAgLnBhdGNoX2lkID0gMHgwYTIwMTIxMSwKKyAgICAuZGlnZXN0ID0gewor
ICAgICAgICAweDY5LCAweGExLCAweDE3LCAweGVjLCAweGQwLCAweGY2LCAw
eDZjLCAweDk1LAorICAgICAgICAweGUyLCAweDFlLCAweGM1LCAweDU5LCAw
eDFhLCAweDUyLCAweDBhLCAweDI3LAorICAgICAgICAweGM0LCAweGVkLCAw
eGQ1LCAweDU5LCAweDFmLCAweGJmLCAweDAwLCAweGZmLAorICAgICAgICAw
eDA4LCAweDg4LCAweGI1LCAweGUxLCAweDEyLCAweGI2LCAweGNjLCAweDI3
LAorICAgIH0sCit9LAogewogICAgIC5wYXRjaF9pZCA9IDB4MGE0MDQxMDcs
CiAgICAgLmRpZ2VzdCA9IHsKQEAgLTE1Miw2ICsyMjQsMTUgQEAKICAgICAg
ICAgMHgxMywgMHhiYywgMHhjNSwgMHgyNSwgMHhlNCwgMHhjNSwgMHhjMywg
MHg5OSwKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBhNDA0
MTA4LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4NjksIDB4NjcsIDB4
NDMsIDB4MDYsIDB4ZjgsIDB4MGMsIDB4NjIsIDB4ZGMsCisgICAgICAgIDB4
YTQsIDB4MjEsIDB4MzAsIDB4NGYsIDB4MGYsIDB4MjEsIDB4MmMsIDB4Y2Is
CisgICAgICAgIDB4Y2MsIDB4MzcsIDB4ZjEsIDB4MWMsIDB4YzMsIDB4Zjgs
IDB4MmYsIDB4MTksCisgICAgICAgIDB4ZGYsIDB4NTMsIDB4NTMsIDB4NDYs
IDB4YjEsIDB4MTUsIDB4ZWEsIDB4MDAsCisgICAgfSwKK30sCiB7CiAgICAg
LnBhdGNoX2lkID0gMHgwYTUwMDAxMSwKICAgICAuZGlnZXN0ID0gewpAQCAt
MTYxLDYgKzI0MiwxNSBAQAogICAgICAgICAweDExLCAweDVlLCAweDk2LCAw
eDdlLCAweDcxLCAweGU5LCAweGZjLCAweDc0LAogICAgIH0sCiB9LAorewor
ICAgIC5wYXRjaF9pZCA9IDB4MGE1MDAwMTIsCisgICAgLmRpZ2VzdCA9IHsK
KyAgICAgICAgMHhlYiwgMHg3NCwgMHgwZCwgMHg0NywgMHhhMSwgMHg4ZSwg
MHgwOSwgMHhlNCwKKyAgICAgICAgMHg5MywgMHg0YywgMHhhZCwgMHgwMywg
MHgzMiwgMHg0YywgMHgzOCwgMHgxNiwKKyAgICAgICAgMHgxMCwgMHgzOSwg
MHhkZCwgMHgwNiwgMHhhYSwgMHhjZSwgMHhkNiwgMHgwZiwKKyAgICAgICAg
MHg2MiwgMHg4MywgMHg5ZCwgMHg4ZSwgMHg2NCwgMHg1NSwgMHhiZSwgMHg2
MywKKyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhNjAxMjA5
LAogICAgIC5kaWdlc3QgPSB7CkBAIC0xNzAsNiArMjYwLDE1IEBACiAgICAg
ICAgIDB4ZTgsIDB4NzMsIDB4ZTIsIDB4ZDYsIDB4ZGIsIDB4ZDIsIDB4Nzcs
IDB4MWQsCiAgICAgfSwKIH0sCit7CisgICAgLnBhdGNoX2lkID0gMHgwYTYw
MTIwYSwKKyAgICAuZGlnZXN0ID0geworICAgICAgICAweDBjLCAweDhiLCAw
eDNkLCAweGZkLCAweDUyLCAweDUyLCAweDg1LCAweDdkLAorICAgICAgICAw
eDIwLCAweDNhLCAweGUxLCAweDdlLCAweGE0LCAweDIxLCAweDNiLCAweDdi
LAorICAgICAgICAweDE3LCAweDg2LCAweGFlLCAweGFjLCAweDEzLCAweGI4
LCAweDYzLCAweDlkLAorICAgICAgICAweDA2LCAweDAxLCAweGQwLCAweGEw
LCAweDUxLCAweDlhLCAweDkxLCAweDJjLAorICAgIH0sCit9LAogewogICAg
IC5wYXRjaF9pZCA9IDB4MGE3MDQxMDcsCiAgICAgLmRpZ2VzdCA9IHsKQEAg
LTE3OSw2ICsyNzgsMTUgQEAKICAgICAgICAgMHg2NCwgMHgzOSwgMHg3MSwg
MHg4YywgMHhjZSwgMHhlNywgMHg0MSwgMHgzOSwKICAgICB9LAogfSwKK3sK
KyAgICAucGF0Y2hfaWQgPSAweDBhNzA0MTA4LAorICAgIC5kaWdlc3QgPSB7
CisgICAgICAgIDB4ZDcsIDB4NTUsIDB4MTUsIDB4MmIsIDB4ZmUsIDB4YzQs
IDB4YmMsIDB4OTMsCisgICAgICAgIDB4ZWMsIDB4OTEsIDB4YTAsIDB4YWUs
IDB4NDUsIDB4YjcsIDB4YzMsIDB4OTgsCisgICAgICAgIDB4NGUsIDB4ZmYs
IDB4NjEsIDB4NzcsIDB4ODgsIDB4YzIsIDB4NzAsIDB4NDksCisgICAgICAg
IDB4ZTAsIDB4M2EsIDB4MWQsIDB4ODQsIDB4MzgsIDB4NTIsIDB4YmYsIDB4
NWEsCisgICAgfSwKK30sCiB7CiAgICAgLnBhdGNoX2lkID0gMHgwYTcwNTIw
NiwKICAgICAuZGlnZXN0ID0gewpAQCAtMTg4LDYgKzI5NiwxNSBAQAogICAg
ICAgICAweDAzLCAweDM1LCAweGU5LCAweGJlLCAweGZiLCAweDA2LCAweGRm
LCAweGZjLAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGE3
MDUyMDgsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHgzMCwgMHgxZCwg
MHg1NSwgMHgyNCwgMHhiYywgMHg2YiwgMHg1YSwgMHgxOSwKKyAgICAgICAg
MHgwYywgMHg3ZCwgMHgxZCwgMHg3NCwgMHhhYSwgMHhkMSwgMHhlYiwgMHhk
MiwKKyAgICAgICAgMHgxNiwgMHg2MiwgMHhmNywgMHg1YiwgMHhlMSwgMHgx
ZiwgMHgxOCwgMHgxMSwKKyAgICAgICAgMHg1YywgMHhmMCwgMHg5NCwgMHg5
MCwgMHgyNiwgMHhlYywgMHg2OSwgMHhmZiwKKyAgICB9LAorfSwKIHsKICAg
ICAucGF0Y2hfaWQgPSAweDBhNzA4MDA3LAogICAgIC5kaWdlc3QgPSB7CkBA
IC0xOTcsNiArMzE0LDE1IEBACiAgICAgICAgIDB4ZGYsIDB4OTIsIDB4NzMs
IDB4ODQsIDB4ODcsIDB4M2MsIDB4NzMsIDB4OTMsCiAgICAgfSwKIH0sCit7
CisgICAgLnBhdGNoX2lkID0gMHgwYTcwODAwOCwKKyAgICAuZGlnZXN0ID0g
eworICAgICAgICAweDA4LCAweDZlLCAweGYwLCAweDIyLCAweDRiLCAweDhl
LCAweGM0LCAweDQ2LAorICAgICAgICAweDU4LCAweDM0LCAweGU2LCAweDQ3
LCAweGEyLCAweDI4LCAweGZkLCAweGFiLAorICAgICAgICAweDIyLCAweDNk
LCAweGRkLCAweGQ4LCAweDUyLCAweDllLCAweDFkLCAweDE2LAorICAgICAg
ICAweGZhLCAweDAxLCAweDY4LCAweDE0LCAweDc5LCAweDNlLCAweGU4LCAw
eDZiLAorICAgIH0sCit9LAogewogICAgIC5wYXRjaF9pZCA9IDB4MGE3MGMw
MDUsCiAgICAgLmRpZ2VzdCA9IHsKQEAgLTIwNiw2ICszMzIsMTUgQEAKICAg
ICAgICAgMHhlZSwgMHg0OSwgMHhhYywgMHhlMSwgMHg4YiwgMHgxMywgMHhj
NSwgMHgxMywKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBh
NzBjMDA4LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4MGYsIDB4ZGIs
IDB4MzcsIDB4YTEsIDB4MTAsIDB4YWYsIDB4ZDQsIDB4MjEsCisgICAgICAg
IDB4OTQsIDB4MGQsIDB4YTQsIDB4YTIsIDB4ZTksIDB4ODYsIDB4NmMsIDB4
MGUsCisgICAgICAgIDB4ODUsIDB4N2MsIDB4MzYsIDB4MzAsIDB4YTMsIDB4
M2EsIDB4NzgsIDB4NjYsCisgICAgICAgIDB4MTgsIDB4MTAsIDB4NjAsIDB4
MGQsIDB4NzgsIDB4M2QsIDB4NDQsIDB4ZDAsCisgICAgfSwKK30sCiB7CiAg
ICAgLnBhdGNoX2lkID0gMHgwYWEwMDExNiwKICAgICAuZGlnZXN0ID0gewpA
QCAtMjI0LDMgKzM1OSwxMiBAQAogICAgICAgICAweDY4LCAweDJmLCAweDQ2
LCAweGVlLCAweGZlLCAweGM2LCAweDZkLCAweGVmLAogICAgIH0sCiB9LAor
eworICAgIC5wYXRjaF9pZCA9IDB4MGFhMDAyMTYsCisgICAgLmRpZ2VzdCA9
IHsKKyAgICAgICAgMHg3OSwgMHhmYiwgMHg1YiwgMHg5ZiwgMHhiNiwgMHhl
NiwgMHhhOCwgMHhmNSwKKyAgICAgICAgMHg0ZSwgMHg3YywgMHg0ZiwgMHg4
ZSwgMHgxZCwgMHhhZCwgMHhkMCwgMHgwOCwKKyAgICAgICAgMHhjMiwgMHg0
MywgMHg3YywgMHg4YiwgMHhlNiwgMHhkYiwgMHhkMCwgMHhkMiwKKyAgICAg
ICAgMHhlOCwgMHgzOSwgMHgyNiwgMHhjMSwgMHhlNSwgMHg1YSwgMHg0OCwg
MHhmMSwKKyAgICB9LAorfSwK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-17.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-17.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogV2VkLCAyIEFwciAyMDI1IDAzOjE4OjU5ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZWFycmFuZ2UgVkVSVyBhbmQgTU9OSVRPUiBpbiBt
d2FpdF9pZGxlX3dpdGhfaGludHMoKQoKSW4gb3JkZXIgdG8gbWl0aWdhdGUg
VFNBLCBYZW4gd2lsbCBuZWVkIHRvIGlzc3VlIFZFUlcgYmVmb3JlIGdvaW5n
IGlkbGUuCgpPbiBBTUQgQ1BVcywgdGhlIFZFUlcgc2NydWJiaW5nIHNpZGUg
ZWZmZWN0cyBjYW5jZWwgYW4gYWN0aXZlIE1PTklUT1IsIGNhdXNpbmcKdGhl
IE1XQUlUIHRvIGV4aXQgd2l0aG91dCBlbnRlcmluZyBhbiBpZGxlIHN0YXRl
LiAgVGhlcmVmb3JlIHRoZSBWRVJXIG11c3QgYmUKYWhlYWQgb2YgTU9OSVRP
Ui4KClNwbGl0IHNwZWNfY3RybF9lbnRlcl9pZGxlKCkgaW4gdHdvIGFuZCBh
bGxvdyB0aGUgVkVSVyBhc3BlY3QgdG8gYmUgaGFuZGxlZApzZXBhcmF0ZWx5
LiAgV2hpbGUgYWRqdXN0aW5nLCB1cGRhdGUgYSBzdGFsZSBjb21tZW50IGNv
bmNlcm5pbmcgTVNCRFM7IG1vcmUKaXNzdWVzIGhhdmUgYmVlbiBtaXRpZ2F0
ZWQgdXNpbmcgVkVSVyBzaW5jZSBpdCB3YXMgd3JpdHRlbi4KCkJ5IG1vdmlu
ZyBWRVJXIGVhcmxpZXIsIGl0IGlzIGFoZWFkIG9mIHRoZSBkZXRlcm1pbmF0
aW9uIG9mIHdoZXRoZXIgdG8gZ28KaWRsZS4gIFdlIGNhbid0IG1vdmUgdGhl
IGNoZWNrIG9uIHNvZnRpcnFfcGVuZGluZyAoZm9yIGNvcnJlY3RuZXNzIHJl
YXNvbnMpLApidXQgd2UgY2FuIGR1cGxpY2F0ZSBpdCBlYXJsaWVyIGFzIGEg
YmVzdCBlZmZvcnQgYXR0ZW1wdCB0byBza2lwIHRoZQpzcGVjdWxhdGl2ZSBv
dmVyaGVhZC4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDcxIC8gQ1ZFLTIwMjQt
MzYzNTAgLyBDVkUtMjAyNC0zNjM1Ny4KClNpZ25lZC1vZmYtYnk6IEFuZHJl
dyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2Vk
LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0t
Z2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBiL3hlbi9hcmNo
L3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXggMTU4OTMyNWJhYTU2Li4yNjcz
YmM3OTdmMWUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9p
ZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYwpAQCAt
NDYyLDkgKzQ2MiwxOCBAQCBfX2luaXRjYWxsKGNwdV9pZGxlX2tleV9pbml0
KTsKIHZvaWQgbXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBl
YXgsIHVuc2lnbmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNw
dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKyAgICBzdHJ1Y3QgY3B1X2luZm8g
KmluZm8gPSBnZXRfY3B1X2luZm8oKTsKICAgICBpcnFfY3B1c3RhdF90ICpz
dGF0ID0gJmlycV9zdGF0W2NwdV07CiAgICAgY29uc3QgdW5zaWduZWQgaW50
ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZzdGF0LT5fX3NvZnRpcnFfcGVu
ZGluZzsKIAorICAgIC8qCisgICAgICogSGV1cmlzdGljOiBpZiB3ZSdyZSBk
ZWZpbml0ZWx5IG5vdCBnb2luZyB0byBpZGxlLCBiYWlsIGVhcmx5IGFzIHRo
ZQorICAgICAqIHNwZWN1bGF0aXZlIHNhZmV0eSBjYW4gYmUgZXhwZW5zaXZl
LiAgVGhpcyBpcyBhIHBlcmZvcm1hbmNlCisgICAgICogY29uc2lkZXJhdGlv
biBub3QgYSBjb3JyZWN0bmVzcyBpc3N1ZS4KKyAgICAgKi8KKyAgICBpZiAo
ICp0aGlzX3NvZnRpcnFfcGVuZGluZyApCisgICAgICAgIHJldHVybjsKKwog
ICAgIC8qCiAgICAgICogQnkgc2V0dGluZyBpbl9td2FpdCwgd2UgcHJvbWlz
ZSB0byBvdGhlciBDUFVzIHRoYXQgd2UnbGwgbm90aWNlIGNoYW5nZXMKICAg
ICAgKiB0byBfX3NvZnRpcnFfcGVuZGluZyB3aXRob3V0IGJlaW5nIHNlbnQg
YW4gSVBJLiAgV2UgYWNoaWV2ZSB0aGlzIGJ5CkBAIC00NzgsMTUgKzQ4Nywx
OSBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQg
ZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogICAgICAgICAgICAgICAgICAgICIi
LCBYODZfQlVHX01PTklUT1IsCiAgICAgICAgICAgICAgICAgICAgW2luX213
YWl0XSAiPW0iIChzdGF0LT5pbl9td2FpdCkpOwogCisgICAgLyoKKyAgICAg
KiBPbiBBTUQgc3lzdGVtcywgc2lkZSBlZmZlY3RzIGZyb20gVkVSVyBjYW5j
ZWwgTU9OSVRPUiwgY2F1c2luZyBNV0FJVCB0bworICAgICAqIHdha2UgdXAg
aW1tZWRpYXRlbHkuICBUaGVyZWZvcmUsIFZFUlcgbXVzdCBjb21lIGFoZWFk
IG9mIE1PTklUT1IuCisgICAgICovCisgICAgX19zcGVjX2N0cmxfZW50ZXJf
aWRsZV92ZXJ3KGluZm8pOworCiAgICAgbW9uaXRvcih0aGlzX3NvZnRpcnFf
cGVuZGluZywgMCwgMCk7CiAKICAgICBBU1NFUlQoIWxvY2FsX2lycV9pc19l
bmFibGVkKCkpOwogCiAgICAgaWYgKCAhKnRoaXNfc29mdGlycV9wZW5kaW5n
ICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdl
dF9jcHVfaW5mbygpOwotCi0gICAgICAgIHNwZWNfY3RybF9lbnRlcl9pZGxl
KGluZm8pOworICAgICAgICBfX3NwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8s
IGZhbHNlIC8qIFZFUlcgaGFuZGxlZCBhYm92ZSAqLyk7CiAKICAgICAgICAg
aWYgKCBlY3ggJiBNV0FJVF9FQ1hfSU5URVJSVVBUX0JSRUFLICkKICAgICAg
ICAgICAgIG13YWl0KGVheCwgZWN4KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9zcGVjX2N0cmwuaCBiL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zcGVjX2N0cmwuaAppbmRleCAwNzcyMjU0MTg5NTYuLjY3
MjRkMzgxMjAyOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3NwZWNfY3RybC5oCisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9zcGVjX2N0cmwuaApAQCAtMTE1LDggKzExNSwyMiBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgaW5pdF9zaGFkb3dfc3BlY19jdHJsX3N0YXRlKHZvaWQpCiAg
ICAgaW5mby0+dmVyd19zZWwgPSBfX0hZUEVSVklTT1JfRFMzMjsKIH0KIAor
c3RhdGljIGFsd2F5c19pbmxpbmUgdm9pZCBfX3NwZWNfY3RybF9lbnRlcl9p
ZGxlX3Zlcncoc3RydWN0IGNwdV9pbmZvICppbmZvKQoreworICAgIC8qCisg
ICAgICogRmx1c2gvc2NydWIgc3RydWN0dXJlcyB3aGljaCBhcmUgc3RhdGlj
YWxseSBwYXJ0aXRpb25lZCBiZXR3ZWVuIGFjdGl2ZQorICAgICAqIHRocmVh
ZHMuICBPdGhlcndpc2UgZGF0YSBvZiBvdXJzIChvZiB1bmtub3duIHNlbnNp
dGl2aXR5KSB3aWxsIGJlY29tZQorICAgICAqIGF2YWlsYWJsZSB0byBvdXIg
c2libGluZyB3aGVuIHdlIGdvIGlkbGUuCisgICAgICoKKyAgICAgKiBOb3Rl
OiBWRVJXIG11c3QgYmUgZW5jb2RlZCB3aXRoIGEgbWVtb3J5IG9wZXJhbmQs
IGFzIGl0IGlzIG9ubHkgdGhhdAorICAgICAqIGZvcm0gd2l0aCBzaWRlIGVm
ZmVjdHMuCisgICAgICovCisgICAgYWx0ZXJuYXRpdmVfaW5wdXQoIiIsICJ2
ZXJ3ICVbc2VsXSIsIFg4Nl9GRUFUVVJFX1NDX1ZFUldfSURMRSwKKyAgICAg
ICAgICAgICAgICAgICAgICBbc2VsXSAibSIgKGluZm8tPnZlcndfc2VsKSk7
Cit9CisKIC8qIFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBu
b3Qgc2FmZSBhZnRlciB0aGlzIGNhbGwuICovCi1zdGF0aWMgYWx3YXlzX2lu
bGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9pZGxlKHN0cnVjdCBjcHVfaW5m
byAqaW5mbykKK3N0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgX19zcGVjX2N0
cmxfZW50ZXJfaWRsZShzdHJ1Y3QgY3B1X2luZm8gKmluZm8sIGJvb2wgdmVy
dykKIHsKICAgICB1aW50MzJfdCB2YWwgPSAwOwogCkBAIC0xMzUsMjEgKzE0
OSw4IEBAIHN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgc3BlY19jdHJsX2Vu
dGVyX2lkbGUoc3RydWN0IGNwdV9pbmZvICppbmZvKQogICAgICAgICAgICAg
ICAgICAgICAgICJhIiAodmFsKSwgImMiIChNU1JfU1BFQ19DVFJMKSwgImQi
ICgwKSk7CiAgICAgYmFycmllcigpOwogCi0gICAgLyoKLSAgICAgKiBNaWNy
b2FyY2hpdGVjdHVyYWwgU3RvcmUgQnVmZmVyIERhdGEgU2FtcGxpbmc6Ci0g
ICAgICoKLSAgICAgKiBPbiB2dWxuZXJhYmxlIHN5c3RlbXMsIHN0b3JlIGJ1
ZmZlciBlbnRyaWVzIGFyZSBzdGF0aWNhbGx5IHBhcnRpdGlvbmVkCi0gICAg
ICogYmV0d2VlbiBhY3RpdmUgdGhyZWFkcy4gIFdoZW4gZW50ZXJpbmcgaWRs
ZSwgb3VyIHN0b3JlIGJ1ZmZlciBlbnRyaWVzCi0gICAgICogYXJlIHJlLXBh
cnRpdGlvbmVkIHRvIGFsbG93IHRoZSBvdGhlciB0aHJlYWRzIHRvIHVzZSB0
aGVtLgotICAgICAqCi0gICAgICogRmx1c2ggdGhlIGJ1ZmZlcnMgdG8gZW5z
dXJlIHRoYXQgbm8gc2Vuc2l0aXZlIGRhdGEgb2Ygb3VycyBjYW4gYmUKLSAg
ICAgKiBsZWFrZWQgYnkgYSBzaWJsaW5nIGFmdGVyIGl0IGdldHMgb3VyIHN0
b3JlIGJ1ZmZlciBlbnRyaWVzLgotICAgICAqCi0gICAgICogTm90ZTogVkVS
VyBtdXN0IGJlIGVuY29kZWQgd2l0aCBhIG1lbW9yeSBvcGVyYW5kLCBhcyBp
dCBpcyBvbmx5IHRoYXQKLSAgICAgKiBmb3JtIHdoaWNoIGNhdXNlcyBhIGZs
dXNoLgotICAgICAqLwotICAgIGFsdGVybmF0aXZlX2lucHV0KCIiLCAidmVy
dyAlW3NlbF0iLCBYODZfRkVBVFVSRV9TQ19WRVJXX0lETEUsCi0gICAgICAg
ICAgICAgICAgICAgICAgW3NlbF0gIm0iIChpbmZvLT52ZXJ3X3NlbCkpOwor
ICAgIGlmICggdmVydyApIC8qIEV4cGVjdGVkIHRvIGJlIGNvbnN0LXByb3Bh
Z2F0ZWQuICovCisgICAgICAgIF9fc3BlY19jdHJsX2VudGVyX2lkbGVfdmVy
dyhpbmZvKTsKIAogICAgIC8qCiAgICAgICogQ3Jvc3MtVGhyZWFkIFJldHVy
biBBZGRyZXNzIFByZWRpY3Rpb25zOgpAQCAtMTY3LDYgKzE2OCwxMiBAQCBz
dGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9pZGxl
KHN0cnVjdCBjcHVfaW5mbyAqaW5mbykKICAgICAgICAgICAgICAgICAgICAg
ICA6ICJyYXgiLCAicmN4Iik7CiB9CiAKKy8qIFdBUk5JTkchIGByZXRgLCBg
Y2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBhZnRlciB0aGlzIGNhbGwuICov
CitzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9p
ZGxlKHN0cnVjdCBjcHVfaW5mbyAqaW5mbykKK3sKKyAgICBfX3NwZWNfY3Ry
bF9lbnRlcl9pZGxlKGluZm8sIHRydWUgLyogVkVSVyAqLyk7Cit9CisKIC8q
IFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBi
ZWZvcmUgdGhpcyBjYWxsLiAqLwogc3RhdGljIGFsd2F5c19pbmxpbmUgdm9p
ZCBzcGVjX2N0cmxfZXhpdF9pZGxlKHN0cnVjdCBjcHVfaW5mbyAqaW5mbykK
IHsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-18.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-18.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVGh1LCAyOSBBdWcgMjAyNCAxNzozNjoxMSArMDEwMApTdWJq
ZWN0OiB4ODYvc3BlYy1jdHJsOiBNaXRpZ2F0ZSBUcmFuc2l0aXZlIFNjaGVk
dWxlciBBdHRhY2tzCgpUU0EgYWZmZWN0cyBBTUQgRmFtMTloIENQVXMgKFpl
bjMgYW5kIDQgbWljcm9hcmNoaXRlY3R1cmVzKS4KClRocmVlIG5ldyBDUFVJ
RCBiaXRzIGhhdmUgYmVlbiBkZWZpbmVkLiAgVHdvIChUU0FfU1FfTk8gYW5k
IFRTQV9MMV9OTykKaW5kaWNhdGUgdGhhdCB0aGUgc3lzdGVtIGlzIHVuYWZm
ZWN0ZWQsIGFuZCBtdXN0IGJlIHN5bnRoZXNpc2VkIGJ5IFhlbiBvbgp1bmFm
ZmVjdGVkIHBhcnRzIHRvIGRhdGUuCgpBIHRoaXJkIG5ldyBiaXQgaW5kaWNh
dGVzIHRoYXQgVkVSVyBub3cgaGFzIGEgZmx1c2hpbmcgc2lkZSBlZmZlY3Qu
ICBYZW4gbXVzdApzeW50aGVzaXNlIHRoaXMgYml0IG9uIGFmZmVjdGVkIHN5
c3RlbXMgYmFzZWQgb24gbWljcm9jb2RlIHZlcnNpb24uICBBcyB3aXRoCm90
aGVyIFZFUlctYmFzZWQgZmx1c2hpbmcgZmVhdHVyZXMsIFZFUldfQ0xFQVIg
bmVlZHMgT1ItaW5nIGFjcm9zcyBhIHJlc291cmNlCnBvb2wsIGFuZCBndWVz
dHMgd2hpY2ggaGF2ZSBzZWVuIGl0IGNhbiBzYWZlbHkgbWlncmF0ZSBpbi4K
ClRoaXMgaXMgcGFydCBvZiBYU0EtNDcxIC8gQ1ZFLTIwMjQtMzYzNTAgLyBD
VkUtMjAyNC0zNjM1Ny4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIg
PGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4g
QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEvdG9v
bHMvbWlzYy94ZW4tY3B1aWQuYyBiL3Rvb2xzL21pc2MveGVuLWNwdWlkLmMK
aW5kZXggMTliOTA2OGQzNmVjLi40ZmJmZDYzZGZkYzQgMTAwNjQ0Ci0tLSBh
L3Rvb2xzL21pc2MveGVuLWNwdWlkLmMKKysrIGIvdG9vbHMvbWlzYy94ZW4t
Y3B1aWQuYwpAQCAtMTk4LDYgKzE5OCw3IEBAIHN0YXRpYyBjb25zdCBjaGFy
ICpjb25zdCBzdHJfN2ExWzMyXSA9CiBzdGF0aWMgY29uc3QgY2hhciAqY29u
c3Qgc3RyX2UyMWFbMzJdID0KIHsKICAgICBbIDJdID0gImxmZW5jZSsiLAor
ICAgIC8qIDQgKi8gICAgICAgICAgICAgICAgIFsgNV0gPSAidmVydy1jbGVh
ciIsCiAgICAgWyA2XSA9ICJuc2NiIiwKICAgICBbIDhdID0gImF1dG8taWJy
cyIsCiAKQEAgLTI1Niw2ICsyNTcsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAq
Y29uc3Qgc3RyX20xMEFsWzY0XSA9CiAKIHN0YXRpYyBjb25zdCBjaGFyICpj
b25zdCBzdHJfZTIxY1szMl0gPQogeworICAgIC8qIDAgKi8gICAgICAgICAg
ICAgICAgICAgICAgIFsgMV0gPSAidHNhLXNxLW5vIiwKKyAgICBbIDJdID0g
InRzYS1sMS1ubyIsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHsKZGlm
ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMgYi94ZW4vYXJj
aC94ODYvY3B1LXBvbGljeS5jCmluZGV4IDY2MjAwMjMzMzg3OS4uYWFlOGU0
OTgzYzAzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5j
CisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMKQEAgLTUwNSw2ICs1
MDUsMTcgQEAgc3RhdGljIHZvaWQgX19pbml0IGd1ZXN0X2NvbW1vbl9tYXhf
ZmVhdHVyZV9hZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICAgIGlm
ICggdGVzdF9iaXQoWDg2X0ZFQVRVUkVfUlRNLCBmcykgKQogICAgICAgICAg
ICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNfQUJPUlQsIGZz
KTsKICAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFg4Nl9WRU5ET1JfQU1E
OgorICAgICAgICAvKgorICAgICAgICAgKiBUaGlzIGJpdCBpbmRpY2F0ZXMg
dGhhdCB0aGUgVkVSVyBpbnN0cnVjdGlvbiBtYXkgaGF2ZSBnYWluZWQKKyAg
ICAgICAgICogc2NydWJiaW5nIHNpZGUgZWZmZWN0cy4gIFdpdGggcG9vbGlu
ZywgaXQgbWVhbnMgInlvdSBtaWdodCBtaWdyYXRlCisgICAgICAgICAqIHNv
bWV3aGVyZSB3aGVyZSBzY3J1YmJpbmcgaXMgbmVjZXNzYXJ5IiwgYW5kIG1h
eSBuZWVkIGV4cG9zaW5nIG9uCisgICAgICAgICAqIHVuYWZmZWN0ZWQgaGFy
ZHdhcmUuICBUaGlzIGlzIGZpbmUsIGJlY2F1c2UgdGhlIFZFUlcgaW5zdHJ1
Y3Rpb24KKyAgICAgICAgICogaGFzIGJlZW4gYXJvdW5kIHNpbmNlIHRoZSAy
ODYuCisgICAgICAgICAqLworICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRV
UkVfVkVSV19DTEVBUiwgZnMpOworICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICAvKgpAQCAtNTgzLDYgKzU5NCwxNyBAQCBzdGF0aWMgdm9pZCBfX2lu
aXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9hZGp1c3RtZW50cyh1
aW50MzJfdCAqZnMpCiAgICAgICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRV
UkVfUlRNX0FMV0FZU19BQk9SVCwgZnMpOwogICAgICAgICB9CiAgICAgICAg
IGJyZWFrOworCisgICAgY2FzZSBYODZfVkVORE9SX0FNRDoKKyAgICAgICAg
LyoKKyAgICAgICAgICogVGhpcyBiaXQgaW5kaWNhdGUgdGhhdCB0aGUgVkVS
VyBpbnN0cnVjdGlvbiBtYXkgaGF2ZSBnYWluZWQKKyAgICAgICAgICogc2Ny
dWJiaW5nIHNpZGUgZWZmZWN0cy4gIFRoZSBtYXggcG9saWN5IGhhcyBpdCBz
ZXQgZm9yIG1pZ3JhdGlvbgorICAgICAgICAgKiByZWFzb25zLCBzbyByZXNl
dCB0aGUgZGVmYXVsdCBwb2xpY3kgYmFjayB0byB0aGUgaG9zdCB2YWx1ZSBp
biBjYXNlCisgICAgICAgICAqIHdlJ3JlIHVuYWZmZWN0ZWQuCisgICAgICAg
ICAqLworICAgICAgICBpZiAoICFjcHVfaGFzX3ZlcndfY2xlYXIgKQorICAg
ICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfVkVSV19DTEVBUiwg
ZnMpOworICAgICAgICBicmVhazsKICAgICB9CiAKICAgICAvKgpkaWZmIC0t
Z2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vZW50cnkuUyBiL3hlbi9hcmNo
L3g4Ni9odm0vc3ZtL2VudHJ5LlMKaW5kZXggOWZiNDU3YWQ5NThlLi5kYjQ5
ODEzZDc3MmEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL2Vu
dHJ5LlMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vZW50cnkuUwpAQCAt
OTksNiArOTksOCBAQCBfX1VOTElLRUxZX0VORChuc3ZtX2hhcCkKICAgICAg
ICAgcG9wICAlcnNpCiAgICAgICAgIHBvcCAgJXJkaQogCisgICAgICAgIFNQ
RUNfQ1RSTF9DT05EX1ZFUlcgICAgIC8qIFJlcTogJXJzcD1lZnJhbWUgICAg
ICAgICAgICAgICAgICAgIENsb2I6IGVmbCAqLworCiAgICAgICAgIHZtcnVu
CiAKICAgICAgICAgU0FWRV9BTEwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlLmggYi94ZW4vYXJjaC94ODYvaW5j
bHVkZS9hc20vY3B1ZmVhdHVyZS5oCmluZGV4IDkxOWE5ZTMxZjA0ZS4uYmJh
ZTkzMDVkZTRlIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9h
c20vY3B1ZmVhdHVyZS5oCisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9jcHVmZWF0dXJlLmgKQEAgLTE5Miw2ICsxOTIsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgYm9vdF9jcHVfaGFzKHVuc2lnbmVkIGludCBmZWF0KQogCiAv
KiBDUFVJRCBsZXZlbCAweDgwMDAwMDIxLmVheCAqLwogI2RlZmluZSBjcHVf
aGFzX2xmZW5jZV9kaXNwYXRjaCBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVf
TEZFTkNFX0RJU1BBVENIKQorI2RlZmluZSBjcHVfaGFzX3ZlcndfY2xlYXIg
ICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfVkVSV19DTEVBUikKICNk
ZWZpbmUgY3B1X2hhc19uc2NiICAgICAgICAgICAgYm9vdF9jcHVfaGFzKFg4
Nl9GRUFUVVJFX05TQ0IpCiAKIC8qIENQVUlEIGxldmVsIDB4MDAwMDAwMDc6
MS5lZHggKi8KQEAgLTIxOCw2ICsyMTksMTAgQEAgc3RhdGljIGlubGluZSBi
b29sIGJvb3RfY3B1X2hhcyh1bnNpZ25lZCBpbnQgZmVhdCkKICNkZWZpbmUg
Y3B1X2hhc19wYl9vcHRfY3RybCAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFU
VVJFX1BCX09QVF9DVFJMKQogI2RlZmluZSBjcHVfaGFzX2l0c19ubyAgICAg
ICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfSVRTX05PKQogCisvKiBD
UFVJRCBsZXZlbCAweDgwMDAwMDIxLmVjeCAqLworI2RlZmluZSBjcHVfaGFz
X3RzYV9zcV9ubyAgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfVFNB
X1NRX05PKQorI2RlZmluZSBjcHVfaGFzX3RzYV9sMV9ubyAgICAgICBib290
X2NwdV9oYXMoWDg2X0ZFQVRVUkVfVFNBX0wxX05PKQorCiAvKiBTeW50aGVz
aXplZC4gKi8KICNkZWZpbmUgY3B1X2hhc19hcmNoX3BlcmZtb24gICAgYm9v
dF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0FSQ0hfUEVSRk1PTikKICNkZWZpbmUg
Y3B1X2hhc19jcHVpZF9mYXVsdGluZyAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFU
VVJFX0NQVUlEX0ZBVUxUSU5HKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2
L3NwZWNfY3RybC5jIGIveGVuL2FyY2gveDg2L3NwZWNfY3RybC5jCmluZGV4
IGQ4NzAyYjBlMTg5Yy4uYzFhZDMzNWQ5ZWE5IDEwMDY0NAotLS0gYS94ZW4v
YXJjaC94ODYvc3BlY19jdHJsLmMKKysrIGIveGVuL2FyY2gveDg2L3NwZWNf
Y3RybC5jCkBAIC00OTIsNyArNDkyLDcgQEAgY3VzdG9tX3BhcmFtKCJwdi1s
MXRmIiwgcGFyc2VfcHZfbDF0Zik7CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBw
cmludF9kZXRhaWxzKGVudW0gaW5kX3RodW5rIHRodW5rKQogewotICAgIHVu
c2lnbmVkIGludCBfN2QwID0gMCwgXzdkMiA9IDAsIGU4YiA9IDAsIGUyMWEg
PSAwLCBtYXggPSAwLCB0bXA7CisgICAgdW5zaWduZWQgaW50IF83ZDAgPSAw
LCBfN2QyID0gMCwgZThiID0gMCwgZTIxYSA9IDAsIGUyMWMgPSAwLCBtYXgg
PSAwLCB0bXA7CiAgICAgdWludDY0X3QgY2FwcyA9IDA7CiAKICAgICAvKiBD
b2xsZWN0IGRpYWdub3N0aWNzIGFib3V0IGF2YWlsYWJsZSBtaXRpZ2F0aW9u
cy4gKi8KQEAgLTUwMyw3ICs1MDMsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQg
cHJpbnRfZGV0YWlscyhlbnVtIGluZF90aHVuayB0aHVuaykKICAgICBpZiAo
IGJvb3RfY3B1X2RhdGEuZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAw
MDAwOCApCiAgICAgICAgIGNwdWlkKDB4ODAwMDAwMDgsICZ0bXAsICZlOGIs
ICZ0bXAsICZ0bXApOwogICAgIGlmICggYm9vdF9jcHVfZGF0YS5leHRlbmRl
ZF9jcHVpZF9sZXZlbCA+PSAweDgwMDAwMDIxICkKLSAgICAgICAgY3B1aWQo
MHg4MDAwMDAyMSwgJmUyMWEsICZ0bXAsICZ0bXAsICZ0bXApOworICAgICAg
ICBjcHVpZCgweDgwMDAwMDIxVSwgJmUyMWEsICZ0bXAsICZlMjFjLCAmdG1w
KTsKICAgICBpZiAoIGNwdV9oYXNfYXJjaF9jYXBzICkKICAgICAgICAgcmRt
c3JsKE1TUl9BUkNIX0NBUEFCSUxJVElFUywgY2Fwcyk7CiAKQEAgLTUxMyw3
ICs1MTMsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcHJpbnRfZGV0YWlscyhl
bnVtIGluZF90aHVuayB0aHVuaykKICAgICAgKiBIYXJkd2FyZSByZWFkLW9u
bHkgaW5mb3JtYXRpb24sIHN0YXRpbmcgaW1tdW5pdHkgdG8gY2VydGFpbiBp
c3N1ZXMsIG9yCiAgICAgICogc3VnZ2VzdGlvbnMgb2Ygd2hpY2ggbWl0aWdh
dGlvbiB0byB1c2UuCiAgICAgICovCi0gICAgcHJpbnRrKCIgIEhhcmR3YXJl
IGhpbnRzOiVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVz
JXMlcyVzJXMlc1xuIiwKKyAgICBwcmludGsoIiAgSGFyZHdhcmUgaGludHM6
JXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMl
cyVzJXMlc1xuIiwKICAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUFNfUkRD
TF9OTykgICAgICAgICAgICAgICAgICAgICAgICA/ICIgUkRDTF9OTyIgICAg
ICAgIDogIiIsCiAgICAgICAgICAgIChjYXBzICYgQVJDSF9DQVBTX0VJQlJT
KSAgICAgICAgICAgICAgICAgICAgICAgICAgPyAiIEVJQlJTIiAgICAgICAg
ICA6ICIiLAogICAgICAgICAgICAoY2FwcyAmIEFSQ0hfQ0FQU19SU0JBKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgID8gIiBSU0JBIiAgICAgICAgICAg
OiAiIiwKQEAgLTUzOCwxMCArNTM4LDEyIEBAIHN0YXRpYyB2b2lkIF9faW5p
dCBwcmludF9kZXRhaWxzKGVudW0gaW5kX3RodW5rIHRodW5rKQogICAgICAg
ICAgICAoZThiICAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9JQlBCX1JF
VCkpICAgICAgID8gIiBJQlBCX1JFVCIgICAgICAgOiAiIiwKICAgICAgICAg
ICAgKGUyMWEgJiBjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfSUJQQl9CUlRZ
UEUpKSAgICA/ICIgSUJQQl9CUlRZUEUiICAgIDogIiIsCiAgICAgICAgICAg
IChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NSU09fTk8pKSAg
ICAgICAgPyAiIFNSU09fTk8iICAgICAgICA6ICIiLAotICAgICAgICAgICAo
ZTIxYSAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9TUlNPX1VTX05PKSkg
ICAgID8gIiBTUlNPX1VTX05PIiAgICAgOiAiIik7CisgICAgICAgICAgIChl
MjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NSU09fVVNfTk8pKSAg
ICAgPyAiIFNSU09fVVNfTk8iICAgICA6ICIiLAorICAgICAgICAgICAoZTIx
YyAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9UU0FfU1FfTk8pKSAgICAg
ID8gIiBUU0FfU1FfTk8iICAgICAgOiAiIiwKKyAgICAgICAgICAgKGUyMWMg
JiBjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfVFNBX0wxX05PKSkgICAgICA/
ICIgVFNBX0wxX05PIiAgICAgIDogIiIpOwogCiAgICAgLyogSGFyZHdhcmUg
ZmVhdHVyZXMgd2hpY2ggbmVlZCBkcml2aW5nIHRvIG1pdGlnYXRlIGlzc3Vl
cy4gKi8KLSAgICBwcmludGsoIiAgSGFyZHdhcmUgZmVhdHVyZXM6JXMlcyVz
JXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzXG4iLAorICAgIHByaW50aygiICBI
YXJkd2FyZSBmZWF0dXJlczolcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVz
JXMlc1xuIiwKICAgICAgICAgICAgKGU4YiAgJiBjcHVmZWF0X21hc2soWDg2
X0ZFQVRVUkVfSUJQQikpIHx8CiAgICAgICAgICAgIChfN2QwICYgY3B1ZmVh
dF9tYXNrKFg4Nl9GRUFUVVJFX0lCUlNCKSkgICAgICAgICAgPyAiIElCUEIi
ICAgICAgICAgICA6ICIiLAogICAgICAgICAgICAoZThiICAmIGNwdWZlYXRf
bWFzayhYODZfRkVBVFVSRV9JQlJTKSkgfHwKQEAgLTU2MSw3ICs1NjMsOCBA
QCBzdGF0aWMgdm9pZCBfX2luaXQgcHJpbnRfZGV0YWlscyhlbnVtIGluZF90
aHVuayB0aHVuaykKICAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUFNfR0RT
X0NUUkwpICAgICAgICAgICAgICAgICAgICAgICA/ICIgR0RTX0NUUkwiICAg
ICAgIDogIiIsCiAgICAgICAgICAgIChjYXBzICYgQVJDSF9DQVBTX1JGRFNf
Q0xFQVIpICAgICAgICAgICAgICAgICAgICAgPyAiIFJGRFNfQ0xFQVIiICAg
ICA6ICIiLAogICAgICAgICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZf
RkVBVFVSRV9TQlBCKSkgICAgICAgICAgID8gIiBTQlBCIiAgICAgICAgICAg
OiAiIiwKLSAgICAgICAgICAgKGUyMWEgJiBjcHVmZWF0X21hc2soWDg2X0ZF
QVRVUkVfU1JTT19NU1JfRklYKSkgICA/ICIgU1JTT19NU1JfRklYIiAgIDog
IiIpOworICAgICAgICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZfRkVB
VFVSRV9TUlNPX01TUl9GSVgpKSAgID8gIiBTUlNPX01TUl9GSVgiICAgOiAi
IiwKKyAgICAgICAgICAgKGUyMWEgJiBjcHVmZWF0X21hc2soWDg2X0ZFQVRV
UkVfVkVSV19DTEVBUikpICAgICA/ICIgVkVSV19DTEVBUiIgICAgIDogIiIp
OwogCiAgICAgLyogQ29tcGlsZWQtaW4gc3VwcG9ydCB3aGljaCBwZXJ0YWlu
cyB0byBtaXRpZ2F0aW9ucy4gKi8KICAgICBpZiAoIElTX0VOQUJMRUQoQ09O
RklHX0lORElSRUNUX1RIVU5LKSB8fCBJU19FTkFCTEVEKENPTkZJR19TSEFE
T1dfUEFHSU5HKSB8fApAQCAtMTU0NSw2ICsxNTQ4LDc3IEBAIHN0YXRpYyB2
b2lkIF9faW5pdCByZmRzX2NhbGN1bGF0aW9ucyh2b2lkKQogICAgIHNldHVw
X2ZvcmNlX2NwdV9jYXAoWDg2X0ZFQVRVUkVfUkZEU19OTyk7CiB9CiAKKy8q
CisgKiBUcmFuc2llbnQgU2NoZWR1bGVyIEF0dGFja3MKKyAqCisgKiBodHRw
czovL3d3dy5hbWQuY29tL2NvbnRlbnQvZGFtL2FtZC9lbi9kb2N1bWVudHMv
cmVzb3VyY2VzL2J1bGxldGluL3RlY2huaWNhbC1ndWlkYW5jZS1mb3ItbWl0
aWdhdGluZy10cmFuc2llbnQtc2NoZWR1bGVyLWF0dGFja3MucGRmCisgKi8K
K3N0YXRpYyB2b2lkIF9faW5pdCB0c2FfY2FsY3VsYXRpb25zKHZvaWQpCit7
CisgICAgdW5zaWduZWQgaW50IGN1cnJfcmV2LCBtaW5fcmV2OworCisgICAg
LyogVFNBIGlzIG9ubHkga25vd24gdG8gYWZmZWN0IEFNRCBwcm9jZXNzb3Jz
IGF0IHRoaXMgdGltZS4gKi8KKyAgICBpZiAoIGJvb3RfY3B1X2RhdGEueDg2
X3ZlbmRvciAhPSBYODZfVkVORE9SX0FNRCApCisgICAgICAgIHJldHVybjsK
KworICAgIC8qIElmIHdlJ3JlIHZpcnR1YWxpc2VkLCBkb24ndCBhdHRlbXB0
IHRvIHN5bnRoZXNpc2UgYW55dGhpbmcuICovCisgICAgaWYgKCBjcHVfaGFz
X2h5cGVydmlzb3IgKQorICAgICAgICByZXR1cm47CisKKyAgICAvKgorICAg
ICAqIEFjY29yZGluZyB0byB0aGUgd2hpdGVwYXBlciwgc29tZSBGYW0xQSBD
UFVzIChNb2RlbHMgMHgwMC4uLjB4NGYsCisgICAgICogMHg2MC4uLjB4N2Yp
IGFyZSBub3QgdnVsbmVyYWJsZSBidXQgZG9uJ3QgZW51bWVyYXRlIFRTQV97
U1EsTDF9X05PLiAgSWYKKyAgICAgKiB3ZSBzZWUgZWl0aGVyIGVudW1lcmF0
ZWQsIGFzc3VtZSBib3RoIGFyZSBjb3JyZWN0IC4uLgorICAgICAqLworICAg
IGlmICggY3B1X2hhc190c2Ffc3Ffbm8gfHwgY3B1X2hhc190c2FfbDFfbm8g
KQorICAgICAgICByZXR1cm47CisKKyAgICAvKgorICAgICAqIC4uLiBvdGhl
cndpc2UsIHN5bnRoZXNpc2UgdGhlbS4gIENQVXMgb3RoZXIgdGhhbiBGYW0x
OSAoWmVuMy80KSBhcmUKKyAgICAgKiBzdGF0ZWQgdG8gYmUgbm90IHZ1bG5l
cmFibGUuCisgICAgICovCisgICAgaWYgKCBib290X2NwdV9kYXRhLng4NiAh
PSAweDE5ICkKKyAgICB7CisgICAgICAgIHNldHVwX2ZvcmNlX2NwdV9jYXAo
WDg2X0ZFQVRVUkVfVFNBX1NRX05PKTsKKyAgICAgICAgc2V0dXBfZm9yY2Vf
Y3B1X2NhcChYODZfRkVBVFVSRV9UU0FfTDFfTk8pOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgLyoKKyAgICAgKiBGYW0xOSBDUFVzIGdldCBW
RVJXX0NMRUFSIHdpdGggbmV3IGVub3VnaCBtaWNyb2NvZGUsIGJ1dCBtdXN0
CisgICAgICogc3ludGhlc2lzZSB0aGUgQ1BVSUQgYml0LgorICAgICAqLwor
ICAgIGN1cnJfcmV2ID0gdGhpc19jcHUoY3B1X3NpZykucmV2OworICAgIHN3
aXRjaCAoIGN1cnJfcmV2ID4+IDggKQorICAgIHsKKyAgICBjYXNlIDB4MGEw
MDExOiBtaW5fcmV2ID0gMHgwYTAwMTFkNzsgYnJlYWs7CisgICAgY2FzZSAw
eDBhMDAxMjogbWluX3JldiA9IDB4MGEwMDEyM2I7IGJyZWFrOworICAgIGNh
c2UgMHgwYTAwODI6IG1pbl9yZXYgPSAweDBhMDA4MjBkOyBicmVhazsKKyAg
ICBjYXNlIDB4MGExMDExOiBtaW5fcmV2ID0gMHgwYTEwMTE0YzsgYnJlYWs7
CisgICAgY2FzZSAweDBhMTAxMjogbWluX3JldiA9IDB4MGExMDEyNGM7IGJy
ZWFrOworICAgIGNhc2UgMHgwYTEwODE6IG1pbl9yZXYgPSAweDBhMTA4MTA5
OyBicmVhazsKKyAgICBjYXNlIDB4MGEyMDEwOiBtaW5fcmV2ID0gMHgwYTIw
MTAyZTsgYnJlYWs7CisgICAgY2FzZSAweDBhMjAxMjogbWluX3JldiA9IDB4
MGEyMDEyMTE7IGJyZWFrOworICAgIGNhc2UgMHgwYTQwNDE6IG1pbl9yZXYg
PSAweDBhNDA0MTA4OyBicmVhazsKKyAgICBjYXNlIDB4MGE1MDAwOiBtaW5f
cmV2ID0gMHgwYTUwMDAxMjsgYnJlYWs7CisgICAgY2FzZSAweDBhNjAxMjog
bWluX3JldiA9IDB4MGE2MDEyMGE7IGJyZWFrOworICAgIGNhc2UgMHgwYTcw
NDE6IG1pbl9yZXYgPSAweDBhNzA0MTA4OyBicmVhazsKKyAgICBjYXNlIDB4
MGE3MDUyOiBtaW5fcmV2ID0gMHgwYTcwNTIwODsgYnJlYWs7CisgICAgY2Fz
ZSAweDBhNzA4MDogbWluX3JldiA9IDB4MGE3MDgwMDg7IGJyZWFrOworICAg
IGNhc2UgMHgwYTcwYzA6IG1pbl9yZXYgPSAweDBhNzBjMDA4OyBicmVhazsK
KyAgICBjYXNlIDB4MGFhMDAyOiBtaW5fcmV2ID0gMHgwYWEwMDIxNjsgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJO
SU5HCisgICAgICAgICAgICAgICAiVW5yZWNvZ25pc2VkIENQVSAlMDJ4LSUw
MngtJTAyeCwgdWNvZGUgMHglMDh4IGZvciBUU0EgbWl0aWdhdGlvblxuIiwK
KyAgICAgICAgICAgICAgIGJvb3RfY3B1X2RhdGEueDg2LCBib290X2NwdV9k
YXRhLng4Nl9tb2RlbCwKKyAgICAgICAgICAgICAgIGJvb3RfY3B1X2RhdGEu
eDg2X21hc2ssIGN1cnJfcmV2KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmICggY3Vycl9yZXYgPj0gbWluX3JldiApCisgICAgICAgIHNl
dHVwX2ZvcmNlX2NwdV9jYXAoWDg2X0ZFQVRVUkVfVkVSV19DTEVBUik7Cit9
CisKIHN0YXRpYyBib29sIF9faW5pdCBjcHVfaGFzX2dkcyh2b2lkKQogewog
ICAgIC8qCkBAIC0yMjM4LDYgKzIzMTIsNyBAQCB2b2lkIF9faW5pdCBpbml0
X3NwZWN1bGF0aW9uX21pdGlnYXRpb25zKHZvaWQpCiAgICAgICogaHR0cHM6
Ly93d3cuaW50ZWwuY29tL2NvbnRlbnQvd3d3L3VzL2VuL2RldmVsb3Blci9h
cnRpY2xlcy90ZWNobmljYWwvc29mdHdhcmUtc2VjdXJpdHktZ3VpZGFuY2Uv
dGVjaG5pY2FsLWRvY3VtZW50YXRpb24vaW50ZWwtYW5hbHlzaXMtbWljcm9h
cmNoaXRlY3R1cmFsLWRhdGEtc2FtcGxpbmcuaHRtbAogICAgICAqIGh0dHBz
Oi8vd3d3LmludGVsLmNvbS9jb250ZW50L3d3dy91cy9lbi9kZXZlbG9wZXIv
YXJ0aWNsZXMvdGVjaG5pY2FsL3NvZnR3YXJlLXNlY3VyaXR5LWd1aWRhbmNl
L3RlY2huaWNhbC1kb2N1bWVudGF0aW9uL3Byb2Nlc3Nvci1tbWlvLXN0YWxl
LWRhdGEtdnVsbmVyYWJpbGl0aWVzLmh0bWwKICAgICAgKiBodHRwczovL3d3
dy5pbnRlbC5jb20vY29udGVudC93d3cvdXMvZW4vZGV2ZWxvcGVyL2FydGlj
bGVzL3RlY2huaWNhbC9zb2Z0d2FyZS1zZWN1cml0eS1ndWlkYW5jZS9hZHZp
c29yeS1ndWlkYW5jZS9yZWdpc3Rlci1maWxlLWRhdGEtc2FtcGxpbmcuaHRt
bAorICAgICAqIGh0dHBzOi8vd3d3LmFtZC5jb20vY29udGVudC9kYW0vYW1k
L2VuL2RvY3VtZW50cy9yZXNvdXJjZXMvYnVsbGV0aW4vdGVjaG5pY2FsLWd1
aWRhbmNlLWZvci1taXRpZ2F0aW5nLXRyYW5zaWVudC1zY2hlZHVsZXItYXR0
YWNrcy5wZGYKICAgICAgKgogICAgICAqIFJlbGV2YW50IHVjb2RlczoKICAg
ICAgKgpAQCAtMjI3MCw5ICsyMzQ1LDE4IEBAIHZvaWQgX19pbml0IGluaXRf
c3BlY3VsYXRpb25fbWl0aWdhdGlvbnModm9pZCkKICAgICAgKgogICAgICAq
IC0gTWFyY2ggMjAyMywgZm9yIFJGRFMuICBFbnVtZXJhdGUgUkZEU19DTEVB
UiB0byBtZWFuIHRoYXQgVkVSVyBub3cKICAgICAgKiAgIHNjcnVicyBub24t
YXJjaGl0ZWN0dXJhbCBlbnRyaWVzIGZyb20gY2VydGFpbiByZWdpc3RlciBm
aWxlcy4KKyAgICAgKgorICAgICAqIC0gSnVseSAyMDI1LCBmb3IgVFNBLiAg
SW50cm9kdWNlcyBWRVJXIHNpZGUgZWZmZWN0cyB0byBtaXRpZ2F0ZQorICAg
ICAqICAgVFNBX3tTUS9MMX0uICBYZW4gbXVzdCBzeW50aGVzaXNlIHRoZSBW
RVJXX0NMRUFSIGZlYXR1cmUgYmFzZWQgb24KKyAgICAgKiAgIG1pY3JvY29k
ZSB2ZXJzaW9uLgorICAgICAqCisgICAgICogICBOb3RlLCB0aGVzZSBtaWNy
b2NvZGUgdXBkYXRlcyB3ZXJlIHByb2R1Y2VkIGJlZm9yZSB0aGUgcmVtZWRp
YXRpb24gb2YKKyAgICAgKiAgIHRoZSBtaWNyb2NvZGUgc2lnbmF0dXJlIGlz
c3VlcywgYW5kIGFyZSBpbmNsdWRlZCBpbiB0aGUgZmlyd21hcmUKKyAgICAg
KiAgIHVwZGF0ZXMgZml4aW5nIHRoZSBlbnRyeXNpZ24gdnVsbmVyYWJpbGl0
eSBmcm9tIH5EZWNlbWJlciAyMDI0LgogICAgICAqLwogICAgIG1kc19jYWxj
dWxhdGlvbnMoKTsKICAgICByZmRzX2NhbGN1bGF0aW9ucygpOworICAgIHRz
YV9jYWxjdWxhdGlvbnMoKTsKIAogICAgIC8qCiAgICAgICogUGFydHMgd2hp
Y2ggZW51bWVyYXRlIEZCX0NMRUFSIGFyZSB0aG9zZSB3aXRoIG5vdy11cGRh
dGVkIG1pY3JvY29kZQpAQCAtMjMwNCwyMSArMjM4OCwyNyBAQCB2b2lkIF9f
aW5pdCBpbml0X3NwZWN1bGF0aW9uX21pdGlnYXRpb25zKHZvaWQpCiAgICAg
ICogTUxQRFMvTUZCRFMgd2hlbiBTTVQgaXMgZW5hYmxlZC4KICAgICAgKi8K
ICAgICBpZiAoIG9wdF92ZXJ3X3B2ID09IC0xICkKLSAgICAgICAgb3B0X3Zl
cndfcHYgPSBjcHVfaGFzX3VzZWZ1bF9tZF9jbGVhciB8fCBjcHVfaGFzX3Jm
ZHNfY2xlYXI7CisgICAgICAgIG9wdF92ZXJ3X3B2ID0gKGNwdV9oYXNfdXNl
ZnVsX21kX2NsZWFyIHx8IGNwdV9oYXNfcmZkc19jbGVhciB8fAorICAgICAg
ICAgICAgICAgICAgICAgICBjcHVfaGFzX3ZlcndfY2xlYXIpOwogCiAgICAg
aWYgKCBvcHRfdmVyd19odm0gPT0gLTEgKQotICAgICAgICBvcHRfdmVyd19o
dm0gPSBjcHVfaGFzX3VzZWZ1bF9tZF9jbGVhciB8fCBjcHVfaGFzX3JmZHNf
Y2xlYXI7CisgICAgICAgIG9wdF92ZXJ3X2h2bSA9IChjcHVfaGFzX3VzZWZ1
bF9tZF9jbGVhciB8fCBjcHVfaGFzX3JmZHNfY2xlYXIgfHwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNwdV9oYXNfdmVyd19jbGVhcik7CiAKICAgICAv
KgotICAgICAqIElmIFNNVCBpcyBhY3RpdmUsIGFuZCB3ZSdyZSBwcm90ZWN0
aW5nIGFnYWluc3QgTURTIG9yIE1NSU8gc3RhbGUgZGF0YSwKKyAgICAgKiBJ
ZiBTTVQgaXMgYWN0aXZlLCBhbmQgd2UncmUgcHJvdGVjdGluZyBhZ2FpbnN0
IGFueSBvZjoKKyAgICAgKiAgIC0gTVNCRFMKKyAgICAgKiAgIC0gTU1JTyBz
dGFsZSBkYXRhCisgICAgICogICAtIFRTQS1TUQogICAgICAqIHdlIG5lZWQg
dG8gc2NydWIgYmVmb3JlIGdvaW5nIGlkbGUgYXMgd2VsbCBhcyBvbiByZXR1
cm4gdG8gZ3Vlc3QuCiAgICAgICogVmFyaW91cyBwaXBlbGluZSByZXNvdXJj
ZXMgYXJlIHJlcGFydGl0aW9uZWQgYW1vbmdzdCBub24taWRsZSB0aHJlYWRz
LgogICAgICAqCi0gICAgICogV2UgZG9uJ3QgbmVlZCB0byBzY3J1YiBvbiBp
ZGxlIGZvciBSRkRTLiAgVGhlcmUgYXJlIG5vIGFmZmVjdGVkIGNvcmVzCi0g
ICAgICogd2hpY2ggc3VwcG9ydCBTTVQsIGRlc3BpdGUgdGhlcmUgYmVpbmcg
YWZmZWN0ZWQgY29yZXMgaW4gaHlicmlkIHN5c3RlbXMKLSAgICAgKiB3aGlj
aCBoYXZlIFNNVCBlbHNld2hlcmUgaW4gdGhlIHBsYXRmb3JtLgorICAgICAq
IFdlIGRvbid0IG5lZWQgdG8gc2NydWIgb24gaWRsZSBmb3I6CisgICAgICog
ICAtIFJGRFMgKG5vIFNNVCBhZmZlY3RlZCBjb3JlcykKKyAgICAgKiAgIC0g
VFNBLUwxICh1dGFncyBuZXZlciBzaGFyZWQgYmV0d2VlbiB0aHJlYWRzKQog
ICAgICAqLwogICAgIGlmICggKChjcHVfaGFzX3VzZWZ1bF9tZF9jbGVhciAm
JiAob3B0X3ZlcndfcHYgfHwgb3B0X3ZlcndfaHZtKSkgfHwKKyAgICAgICAg
ICAoY3B1X2hhc192ZXJ3X2NsZWFyICYmICFjcHVfaGFzX3RzYV9zcV9ubykg
fHwKICAgICAgICAgICBvcHRfdmVyd19tbWlvKSAmJiBod19zbXRfZW5hYmxl
ZCApCiAgICAgICAgIHNldHVwX2ZvcmNlX2NwdV9jYXAoWDg2X0ZFQVRVUkVf
U0NfVkVSV19JRExFKTsKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVi
bGljL2FyY2gteDg2L2NwdWZlYXR1cmVzZXQuaCBiL3hlbi9pbmNsdWRlL3B1
YmxpYy9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0LmgKaW5kZXggODZlNDRkZDg1
MjU4Li43YjgwY2QwYzE5YzUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1
YmxpYy9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0LmgKKysrIGIveGVuL2luY2x1
ZGUvcHVibGljL2FyY2gteDg2L2NwdWZlYXR1cmVzZXQuaApAQCAtMjg4LDYg
KzI4OCw3IEBAIFhFTl9DUFVGRUFUVVJFKEFWWF9JRk1BLCAgICAgMTAqMzIr
MjMpIC8qQSAgQVZYLUlGTUEgSW5zdHJ1Y3Rpb25zICovCiAKIC8qIEFNRC1k
ZWZpbmVkIENQVSBmZWF0dXJlcywgQ1BVSUQgbGV2ZWwgMHg4MDAwMDAyMS5l
YXgsIHdvcmQgMTEgKi8KIFhFTl9DUFVGRUFUVVJFKExGRU5DRV9ESVNQQVRD
SCwgICAgMTEqMzIrIDIpIC8qQSAgTEZFTkNFIGFsd2F5cyBzZXJpYWxpemlu
ZyAqLworWEVOX0NQVUZFQVRVUkUoVkVSV19DTEVBUiwgICAgICAgICAxMSoz
MisgNSkgLyohQSBWRVJXIGNsZWFycyBtaWNyb2FyY2hpdGVjdHVyYWwgYnVm
ZmVycyAqLwogWEVOX0NQVUZFQVRVUkUoTlNDQiwgICAgICAgICAgICAgICAx
MSozMisgNikgLypBICBOdWxsIFNlbGVjdG9yIENsZWFycyBCYXNlIChhbmQg
bGltaXQgdG9vKSAqLwogWEVOX0NQVUZFQVRVUkUoQVVUT19JQlJTLCAgICAg
ICAgICAxMSozMisgOCkgLypTICBBdXRvbWF0aWMgSUJSUyAqLwogWEVOX0NQ
VUZFQVRVUkUoQ1BVSURfVVNFUl9ESVMsICAgICAxMSozMisxNykgLyogICBD
UFVJRCBkaXNhYmxlIGZvciBDUEwgPiAwIHNvZnR3YXJlICovCkBAIC0zNDks
NiArMzUwLDggQEAgWEVOX0NQVUZFQVRVUkUoUEJfT1BUX0NUUkwsICAgICAg
ICAxNiozMiszMikgLyogICBNU1JfUEJfT1BUX0NUUkwuSUJQQl9BTFQgKi8K
IFhFTl9DUFVGRUFUVVJFKElUU19OTywgICAgICAgICAgICAgMTYqMzIrNjIp
IC8qIUEgTm8gSW5kaXJlY3QgVGFyZ2V0IFNlbGVjdGlvbiAqLwogCiAvKiBB
TUQtZGVmaW5lZCBDUFUgZmVhdHVyZXMsIENQVUlEIGxldmVsIDB4ODAwMDAw
MjEuZWN4LCB3b3JkIDE4ICovCitYRU5fQ1BVRkVBVFVSRShUU0FfU1FfTk8s
ICAgICAgICAgIDE4KjMyKyAxKSAvKkEgIE5vIFN0b3JlIFF1ZXVlIFRyYW5z
aXRpdmUgU2NoZWR1bGVyIEF0dGFja3MgKi8KK1hFTl9DUFVGRUFUVVJFKFRT
QV9MMV9OTywgICAgICAgICAgMTgqMzIrIDIpIC8qQSAgTm8gTDFEIFRyYW5z
aXRpdmUgU2NoZWR1bGVyIEF0dGFja3MgKi8KIAogI2VuZGlmIC8qIFhFTl9D
UFVGRUFUVVJFICovCiAK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-01.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-01.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxMCBTZXAgMjAyNCAyMDo1OTozNyArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1ZmVhdHVyZTogUmVwb3NpdGlvbiBjcHVfaGFzX3tsZmVu
Y2VfZGlzcGF0Y2gsbnNjYn0KCkxGRU5DRV9ESVNQQVRDSCB1c2VkIHRvIGJl
IGEgc3ludGhldGljIGZlYXR1cmUsIGJ1dCB3YXMgZ2l2ZW4gYSByZWFsIENQ
VUlEIGJpdApieSBBTUQuICBUaGUgZGVmaW5lIHdhc24ndCBtb3ZlZCB3aGVu
IHRoaXMgd2FzIGNoYW5nZWQuCgpOU0NCIGhhcyBhbHdheXMgYmVlbiBhIHJl
YWwgQ1BVSUQgYml0LCBhbmQgd2FzIG1pc3BsYWNlZCB3aGVuIGludHJvZHVj
ZWQgaW4KdGhlIHN5bnRoZXRpYyBibG9jayBhbG9uZ3NpZGUgTEZFTkNFX0RJ
U1BBVENILgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3
LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNo
IDxqYmV1bGljaEBzdXNlLmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21t
aXQgNmEwMzliMDUwMDcxZWJhNjQ0YWI0MTRkNzZhYzVkNWZjOWUwNjdhNSkK
CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVh
dHVyZS5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUu
aAppbmRleCA2ZGJlNmRmZTA5OTAuLjVlMTA5MGE1NDcwYiAxMDA2NDQKLS0t
IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaAorKysg
Yi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oCkBAIC0x
OTQsNiArMTk0LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBib290X2NwdV9o
YXModW5zaWduZWQgaW50IGZlYXQpCiAjZGVmaW5lIGNwdV9oYXNfYXZ4NTEy
X2JmMTYgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9BVlg1MTJfQkYx
NikKICNkZWZpbmUgY3B1X2hhc19hdnhfaWZtYSAgICAgICAgYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX0FWWF9JRk1BKQogCisvKiBDUFVJRCBsZXZlbCAw
eDgwMDAwMDIxLmVheCAqLworI2RlZmluZSBjcHVfaGFzX2xmZW5jZV9kaXNw
YXRjaCBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfTEZFTkNFX0RJU1BBVENI
KQorI2RlZmluZSBjcHVfaGFzX25zY2IgICAgICAgICAgICBib290X2NwdV9o
YXMoWDg2X0ZFQVRVUkVfTlNDQikKKwogLyogQ1BVSUQgbGV2ZWwgMHgwMDAw
MDAwNzoxLmVkeCAqLwogI2RlZmluZSBjcHVfaGFzX2F2eF92bm5pX2ludDgg
ICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQVZYX1ZOTklfSU5UOCkKICNk
ZWZpbmUgY3B1X2hhc19hdnhfbmVfY29udmVydCAgYm9vdF9jcHVfaGFzKFg4
Nl9GRUFUVVJFX0FWWF9ORV9DT05WRVJUKQpAQCAtMjIzLDggKzIyNyw2IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBib290X2NwdV9oYXModW5zaWduZWQgaW50
IGZlYXQpCiAjZGVmaW5lIGNwdV9oYXNfYXJjaF9wZXJmbW9uICAgIGJvb3Rf
Y3B1X2hhcyhYODZfRkVBVFVSRV9BUkNIX1BFUkZNT04pCiAjZGVmaW5lIGNw
dV9oYXNfY3B1aWRfZmF1bHRpbmcgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVS
RV9DUFVJRF9GQVVMVElORykKICNkZWZpbmUgY3B1X2hhc19hcGVyZm1wZXJm
ICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0FQRVJGTVBFUkYpCi0j
ZGVmaW5lIGNwdV9oYXNfbGZlbmNlX2Rpc3BhdGNoIGJvb3RfY3B1X2hhcyhY
ODZfRkVBVFVSRV9MRkVOQ0VfRElTUEFUQ0gpCi0jZGVmaW5lIGNwdV9oYXNf
bnNjYiAgICAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9OU0NC
KQogI2RlZmluZSBjcHVfaGFzX3hlbl9sYnIgICAgICAgICBib290X2NwdV9o
YXMoWDg2X0ZFQVRVUkVfWEVOX0xCUikKICNkZWZpbmUgY3B1X2hhc194ZW5f
c2hzdGsgICAgICAgKElTX0VOQUJMRUQoQ09ORklHX1hFTl9TSFNUSykgJiYg
XAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX1hFTl9TSFNUSykpCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-02.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-02.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEFwciAyMDI1IDE0OjU5OjAxICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBNb3ZlIG1vbml0b3IoKS9td2FpdCgpIHdyYXBwZXJz
IGludG8gY3B1LWlkbGUuYwoKVGhleSdyZSBub3QgdXNlZCBieSBhbnkgb3Ro
ZXIgdHJhbnNsYXRpb24gdW5pdCwgc28gc2hvdWxkbid0IGxpdmUgaW4KYXNt
L3Byb2Nlc3Nvci5oLCB3aGljaCBpcyBpbmNsdWRlZCBhbG1vc3QgZXZlcnl3
aGVyZS4KCk91ciBuZXcgdG9vbGNoYWluIGJhc2VsaW5lIGtub3dzIHRoZSBN
T05JVE9SL01XQUlUIGluc3RydWN0aW9ucywgc28gdXNlIHRoZW0KZGlyZWN0
bHkgcmF0aGVyIHRoYW4gdXNpbmcgcmF3IGhleC4KCkNoYW5nZSB0aGUgaGlu
dC9leHRlbnRpb24gcGFyYW1ldGVycyBmcm9tIGxvbmcgdG8gaW50LiAgVGhl
eSdyZSBzcGVjaWZpZWQgdG8KcmVtYWluIDMyYml0IG9wZXJhbmRzIGV2ZW4g
NjQtYml0IG1vZGUuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogSmFuIEJl
dWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgooY2hlcnJ5IHBpY2tlZCBmcm9t
IGNvbW1pdCA2MWUxMGZjMjhjY2RkZmY3YzcyYzE0YWNlYzU2ZGM3ZWYyYjE1
NWQxKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxl
LmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCmluZGV4IGQwNjA3
ZDhhNjk1Mi4uNDVhMzE0MGJkYzI2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94
ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2Nw
dV9pZGxlLmMKQEAgLTU5LDYgKzU5LDE5IEBACiAKIC8qI2RlZmluZSBERUJV
R19QTV9DWCovCiAKK3N0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgbW9uaXRv
cigKKyAgICBjb25zdCB2b2lkICphZGRyLCB1bnNpZ25lZCBpbnQgZWN4LCB1
bnNpZ25lZCBpbnQgZWR4KQoreworICAgIGFzbSB2b2xhdGlsZSAoICJtb25p
dG9yIgorICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoYWRkciksICJjIiAo
ZWN4KSwgImQiIChlZHgpICk7Cit9CisKK3N0YXRpYyBhbHdheXNfaW5saW5l
IHZvaWQgbXdhaXQodW5zaWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVj
eCkKK3sKKyAgICBhc20gdm9sYXRpbGUgKCAibXdhaXQiCisgICAgICAgICAg
ICAgICAgICAgOjogImEiIChlYXgpLCAiYyIgKGVjeCkgKTsKK30KKwogI2Rl
ZmluZSBHRVRfSFdfUkVTX0lOX05TKG1zciwgdmFsKSBcCiAgICAgZG8geyBy
ZG1zcmwobXNyLCB2YWwpOyB2YWwgPSB0c2NfdGlja3MybnModmFsKTsgfSB3
aGlsZSggMCApCiAjZGVmaW5lIEdFVF9NQzZfUkVTKHZhbCkgIEdFVF9IV19S
RVNfSU5fTlMoMHg2NjQsIHZhbCkKQEAgLTQ4Miw3ICs0OTUsNyBAQCB2b2lk
IG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNp
Z25lZCBpbnQgZWN4KQogICAgICAgICBtYigpOwogICAgIH0KIAotICAgIF9f
bW9uaXRvcihtb25pdG9yX2FkZHIsIDAsIDApOworICAgIG1vbml0b3IobW9u
aXRvcl9hZGRyLCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIAogICAgIC8qCkBA
IC00OTYsNyArNTA5LDcgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHMo
dW5zaWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAg
Y3B1bWFza19zZXRfY3B1KGNwdSwgJmNwdWlkbGVfbXdhaXRfZmxhZ3MpOwog
CiAgICAgICAgIHNwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8pOwotICAgICAg
ICBfX213YWl0KGVheCwgZWN4KTsKKyAgICAgICAgbXdhaXQoZWF4LCBlY3gp
OwogICAgICAgICBzcGVjX2N0cmxfZXhpdF9pZGxlKGluZm8pOwogCiAgICAg
ICAgIGNwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJmNwdWlkbGVfbXdhaXRfZmxh
Z3MpOwpAQCAtOTI3LDkgKzk0MCw5IEBAIHZvaWQgY2ZfY2hlY2sgYWNwaV9k
ZWFkX2lkbGUodm9pZCkKICAgICAgICAgICAgICAqLwogICAgICAgICAgICAg
bWIoKTsKICAgICAgICAgICAgIGNsZmx1c2gobXdhaXRfcHRyKTsKLSAgICAg
ICAgICAgIF9fbW9uaXRvcihtd2FpdF9wdHIsIDAsIDApOworICAgICAgICAg
ICAgbW9uaXRvcihtd2FpdF9wdHIsIDAsIDApOwogICAgICAgICAgICAgbWIo
KTsKLSAgICAgICAgICAgIF9fbXdhaXQoY3gtPmFkZHJlc3MsIDApOworICAg
ICAgICAgICAgbXdhaXQoY3gtPmFkZHJlc3MsIDApOwogICAgICAgICB9CiAg
ICAgfQogICAgIGVsc2UgaWYgKCAoY3VycmVudF9jcHVfZGF0YS54ODZfdmVu
ZG9yICYKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
cm9jZXNzb3IuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNz
b3IuaAppbmRleCBjNzA5ZDMzN2M5YjkuLmMwMjU2NmE5MTViZCAxMDA2NDQK
LS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCisr
KyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaApAQCAt
MzE5LDIzICszMTksNiBAQCBzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNl
dF9pbl9jcjQgKHVuc2lnbmVkIGxvbmcgbWFzaykKICAgICB3cml0ZV9jcjQo
cmVhZF9jcjQoKSB8IG1hc2spOwogfQogCi1zdGF0aWMgYWx3YXlzX2lubGlu
ZSB2b2lkIF9fbW9uaXRvcihjb25zdCB2b2lkICplYXgsIHVuc2lnbmVkIGxv
bmcgZWN4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgbG9uZyBlZHgpCi17Ci0gICAgLyogIm1vbml0b3IgJWVheCwl
ZWN4LCVlZHg7IiAqLwotICAgIGFzbSB2b2xhdGlsZSAoCi0gICAgICAgICIu
Ynl0ZSAweDBmLDB4MDEsMHhjODsiCi0gICAgICAgIDogOiAiYSIgKGVheCks
ICJjIiAoZWN4KSwgImQiKGVkeCkgKTsKLX0KLQotc3RhdGljIGFsd2F5c19p
bmxpbmUgdm9pZCBfX213YWl0KHVuc2lnbmVkIGxvbmcgZWF4LCB1bnNpZ25l
ZCBsb25nIGVjeCkKLXsKLSAgICAvKiAibXdhaXQgJWVheCwlZWN4OyIgKi8K
LSAgICBhc20gdm9sYXRpbGUgKAotICAgICAgICAiLmJ5dGUgMHgwZiwweDAx
LDB4Yzk7IgotICAgICAgICA6IDogImEiIChlYXgpLCAiYyIgKGVjeCkgKTsK
LX0KLQogI2RlZmluZSBJT0JNUF9CWVRFUyAgICAgICAgICAgICA4MTkyCiAj
ZGVmaW5lIElPQk1QX0lOVkFMSURfT0ZGU0VUICAgIDB4ODAwMAogCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-03.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-03.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEFwciAyMDI1IDE1OjU1OjI5ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZW1vdmUgTUZFTkNFcyBmb3IgQ0xGTFVTSF9NT05J
VE9SCgpDb21taXQgNDhkMzI0NThiY2Q0ICgieDg2LCBpZGxlOiBhZGQgYmFy
cmllcnMgdG8gQ0xGTFVTSCB3b3JrYXJvdW5kIikgd2FzCmluaGVyaXRlZCBm
cm9tIExpbnV4IGFuZCBhZGRlZCBNRkVOQ0VzIGFyb3VuZCB0aGUgQUFJNjUg
ZXJyYXRhIGZpeC4KClRoZSBTRE0gbm93IHN0YXRlczoKCiAgRXhlY3V0aW9u
cyBvZiB0aGUgQ0xGTFVTSCBpbnN0cnVjdGlvbiBhcmUgb3JkZXJlZCB3aXRo
IHJlc3BlY3QgdG8gZWFjaAogIG90aGVyIGFuZCB3aXRoIHJlc3BlY3QgdG8g
d3JpdGVzLCBsb2NrZWQgcmVhZC1tb2RpZnktd3JpdGUgaW5zdHJ1Y3Rpb25z
LAogIGFuZCBmZW5jZSBpbnN0cnVjdGlvbnNbMV0uCgp3aXRoIGZvb3Rub3Rl
IDEgcmVhZGluZzoKCiAgRWFybGllciB2ZXJzaW9ucyBvZiB0aGlzIG1hbnVh
bCBzcGVjaWZpZWQgdGhhdCBleGVjdXRpb25zIG9mIHRoZSBDTEZMVVNICiAg
aW5zdHJ1Y3Rpb24gd2VyZSBvcmRlcmVkIG9ubHkgYnkgdGhlIE1GRU5DRSBp
bnN0cnVjdGlvbi4gIEFsbCBwcm9jZXNzb3JzCiAgaW1wbGVtZW50aW5nIHRo
ZSBDTEZMVVNIIGluc3RydWN0aW9uIGFsc28gb3JkZXIgaXQgcmVsYXRpdmUg
dG8gdGhlIG90aGVyCiAgb3BlcmF0aW9ucyBlbnVtZXJhdGVkIGFib3ZlLgoK
SS5lLiB0aGUgTUZFTkNFcyBjYW1lIGFib3V0IGJlY2F1c2Ugb2YgYW4gaW5j
b3JyZWN0IHN0YXRlbWVudCBpbiB0aGUgU0RNLgoKVGhlIFNwZWMgVXBkYXRl
IChubyBsb25nZXIgYXZhaWxhYmxlIG9uIEludGVsJ3Mgd2Vic2l0ZSkgc2lt
cGx5IHNheXMgImlzc3VlIGEKQ0xGTFVTSCIsIHdpdGggbm8gbWVudGlvbiBv
ZiBNRkVOQ0VzLgoKQXMgdGhpcyBlcnJhdHVtIGlzIHNwZWNpZmljIHRvIElu
dGVsLCBpdCdzIGZpbmUgdG8gcmVtb3ZlIHRoZSB0aGUgTUZFTkNFczsgQU1E
CkNQVXMgb2YgYSBzaW1pbGFyIHZpbnRhZ2UgZG8gc3BvcnQgb3RoZXJ3aXNl
LXVub3JkZXJlZCBDTEZMVVNIcy4KCk1vdmUgdGhlIGZlYXR1cmUgYml0IGlu
dG8gdGhlIEJVRyByYW5nZSAocmF0aGVyIHRoYW4gRkVBVFVSRSksIGFuZCBt
b3ZlIHRoZQp3b3JrYXJvdW5kIGludG8gbW9uaXRvcigpIGl0c2VsZi4KClRo
ZSBlcnJhdHVtIGNoZWNrIGl0c2VsZiBtdXN0IHVzZSBzZXR1cF9mb3JjZV9j
cHVfY2FwKCkuICBJdCBuZWVkcyBhY3RpdmF0aW5nCmlmIGFueSBDUFUgbmVl
ZHMgaXQsIG5vdCBpZiBhbGwgb2YgdGhlbSBuZWVkIGl0LgoKRml4ZXM6IDQ4
ZDMyNDU4YmNkNCAoIng4NiwgaWRsZTogYWRkIGJhcnJpZXJzIHRvIENMRkxV
U0ggd29ya2Fyb3VuZCIpCkZpeGVzOiA5NmQxYjIzN2FlOWIgKCJ4ODYvSW50
ZWw6IHdvcmsgYXJvdW5kIFhlb24gNzQwMCBzZXJpZXMgZXJyYXR1bSBBQUk2
NSIpCkxpbms6IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDA5MDIx
OTA1NDg0MS9odHRwOi8vZG93bmxvYWQuaW50ZWwuY29tL2Rlc2lnbi94ZW9u
L3NwZWN1cGR0LzMyMDMzNjAxLnBkZgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcg
Q29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZpZXdlZC1i
eTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgooY2hlcnJ5IHBp
Y2tlZCBmcm9tIGNvbW1pdCBmNzdlZjM0NDM1NDJhMmMyYmJkNTllZTY2MTc4
Mjg3ZDRmYTViNDNmKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9hY3Bp
L2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCmlu
ZGV4IDQ1YTMxNDBiZGMyNi4uNDFkNzcxZDhmMzk1IDEwMDY0NAotLS0gYS94
ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4
Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTYyLDYgKzYyLDkgQEAKIHN0YXRpYyBh
bHdheXNfaW5saW5lIHZvaWQgbW9uaXRvcigKICAgICBjb25zdCB2b2lkICph
ZGRyLCB1bnNpZ25lZCBpbnQgZWN4LCB1bnNpZ25lZCBpbnQgZWR4KQogewor
ICAgIGFsdGVybmF0aXZlX2lucHV0KCIiLCAiY2xmbHVzaCAoJVthZGRyXSki
LCBYODZfQlVHX0NMRkxVU0hfTU9OSVRPUiwKKyAgICAgICAgICAgICAgICAg
ICAgICBbYWRkcl0gImEiIChhZGRyKSk7CisKICAgICBhc20gdm9sYXRpbGUg
KCAibW9uaXRvciIKICAgICAgICAgICAgICAgICAgICA6OiAiYSIgKGFkZHIp
LCAiYyIgKGVjeCksICJkIiAoZWR4KSApOwogfQpAQCAtNDg4LDEzICs0OTEs
NiBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQg
ZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogICAgIHNfdGltZV90IGV4cGlyZXMg
PSBwZXJfY3B1KHRpbWVyX2RlYWRsaW5lLCBjcHUpOwogICAgIGNvbnN0IHZv
aWQgKm1vbml0b3JfYWRkciA9ICZtd2FpdF93YWtldXAoY3B1KTsKIAotICAg
IGlmICggYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0NMRkxVU0hfTU9OSVRP
UikgKQotICAgIHsKLSAgICAgICAgbWIoKTsKLSAgICAgICAgY2xmbHVzaCht
b25pdG9yX2FkZHIpOwotICAgICAgICBtYigpOwotICAgIH0KLQogICAgIG1v
bml0b3IobW9uaXRvcl9hZGRyLCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIApA
QCAtOTI5LDE5ICs5MjUsNyBAQCB2b2lkIGNmX2NoZWNrIGFjcGlfZGVhZF9p
ZGxlKHZvaWQpCiAKICAgICAgICAgd2hpbGUgKCAxICkKICAgICAgICAgewot
ICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIDEuIFRoZSBDTEZMVVNI
IGlzIGEgd29ya2Fyb3VuZCBmb3IgZXJyYXR1bSBBQUk2NSBmb3IKLSAgICAg
ICAgICAgICAqIHRoZSBYZW9uIDc0MDAgc2VyaWVzLiAgCi0gICAgICAgICAg
ICAgKiAyLiBUaGUgV0JJTlZEIGlzIGluc3VmZmljaWVudCBkdWUgdG8gdGhl
IHNwdXJpb3VzLXdha2V1cAotICAgICAgICAgICAgICogY2FzZSB3aGVyZSB3
ZSByZXR1cm4gYXJvdW5kIHRoZSBsb29wLgotICAgICAgICAgICAgICogMy4g
VW5saWtlIHdiaW52ZCwgY2xmbHVzaCBpcyBhIGxpZ2h0IHdlaWdodCBidXQg
bm90IHNlcmlhbGl6aW5nIAotICAgICAgICAgICAgICogaW5zdHJ1Y3Rpb24s
IGhlbmNlIG1lbW9yeSBmZW5jZSBpcyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJl
IGFsbCAKLSAgICAgICAgICAgICAqIGxvYWQvc3RvcmUgdmlzaWJsZSBiZWZv
cmUgZmx1c2ggY2FjaGUgbGluZS4KLSAgICAgICAgICAgICAqLwotICAgICAg
ICAgICAgbWIoKTsKLSAgICAgICAgICAgIGNsZmx1c2gobXdhaXRfcHRyKTsK
ICAgICAgICAgICAgIG1vbml0b3IobXdhaXRfcHRyLCAwLCAwKTsKLSAgICAg
ICAgICAgIG1iKCk7CiAgICAgICAgICAgICBtd2FpdChjeC0+YWRkcmVzcywg
MCk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94
ODYvY3B1L2ludGVsLmMgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKaW5k
ZXggZjAzZWVkY2MyNTExLi41NzI1ODIyMGU4MjIgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9jcHUvaW50ZWwuYworKysgYi94ZW4vYXJjaC94ODYvY3B1
L2ludGVsLmMKQEAgLTQ0Niw2ICs0NDYsNyBAQCBzdGF0aWMgdm9pZCBfX2lu
aXQgcHJvYmVfbXdhaXRfZXJyYXRhKHZvaWQpCiAgKgogICogWGVvbiA3NDAw
IGVycmF0dW0gQUFJNjUgKGFuZCBmdXJ0aGVyIG5ld2VyIFhlb25zKQogICog
TU9OSVRPUi9NV0FJVCBtYXkgaGF2ZSBleGNlc3NpdmUgZmFsc2Ugd2FrZXVw
cworICogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMDkwMjE5MDU0
ODQxL2h0dHA6Ly9kb3dubG9hZC5pbnRlbC5jb20vZGVzaWduL3hlb24vc3Bl
Y3VwZHQvMzIwMzM2MDEucGRmCiAgKi8KIHN0YXRpYyB2b2lkIEludGVsX2Vy
cmF0YV93b3JrYXJvdW5kcyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiB7CkBA
IC00NjMsNyArNDY0LDcgQEAgc3RhdGljIHZvaWQgSW50ZWxfZXJyYXRhX3dv
cmthcm91bmRzKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIAogCWlmIChjLT54
ODYgPT0gNiAmJiBjcHVfaGFzX2NsZmx1c2ggJiYKIAkgICAgKGMtPng4Nl9t
b2RlbCA9PSAyOSB8fCBjLT54ODZfbW9kZWwgPT0gNDYgfHwgYy0+eDg2X21v
ZGVsID09IDQ3KSkKLQkJX19zZXRfYml0KFg4Nl9GRUFUVVJFX0NMRkxVU0hf
TU9OSVRPUiwgYy0+eDg2X2NhcGFiaWxpdHkpOworCQlzZXR1cF9mb3JjZV9j
cHVfY2FwKFg4Nl9CVUdfQ0xGTFVTSF9NT05JVE9SKTsKIAogCXByb2JlX2Mz
X2VycmF0YShjKTsKIAlpZiAoc3lzdGVtX3N0YXRlIDwgU1lTX1NUQVRFX3Nt
cF9ib290KQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L2NwdWZlYXR1cmVzLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1
ZmVhdHVyZXMuaAppbmRleCA5ZTNlZDIxYzAyNmQuLjg0YzkzMjkyYzgwYyAx
MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1
cmVzLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1
cmVzLmgKQEAgLTE5LDcgKzE5LDcgQEAgWEVOX0NQVUZFQVRVUkUoQVJDSF9Q
RVJGTU9OLCAgICAgIFg4Nl9TWU5USCggMykpIC8qIEludGVsIEFyY2hpdGVj
dHVyYWwgUGVyZk1vbgogWEVOX0NQVUZFQVRVUkUoVFNDX1JFTElBQkxFLCAg
ICAgIFg4Nl9TWU5USCggNCkpIC8qIFRTQyBpcyBrbm93biB0byBiZSByZWxp
YWJsZSAqLwogWEVOX0NQVUZFQVRVUkUoWFRPUE9MT0dZLCAgICAgICAgIFg4
Nl9TWU5USCggNSkpIC8qIGNwdSB0b3BvbG9neSBlbnVtIGV4dGVuc2lvbnMg
Ki8KIFhFTl9DUFVGRUFUVVJFKENQVUlEX0ZBVUxUSU5HLCAgICBYODZfU1lO
VEgoIDYpKSAvKiBjcHVpZCBmYXVsdGluZyAqLwotWEVOX0NQVUZFQVRVUkUo
Q0xGTFVTSF9NT05JVE9SLCAgIFg4Nl9TWU5USCggNykpIC8qIGNsZmx1c2gg
cmVxZCB3aXRoIG1vbml0b3IgKi8KKy8qIEJpdCA3IHVudXNlZCAqLwogWEVO
X0NQVUZFQVRVUkUoQVBFUkZNUEVSRiwgICAgICAgIFg4Nl9TWU5USCggOCkp
IC8qIEFQRVJGTVBFUkYgKi8KIFhFTl9DUFVGRUFUVVJFKE1GRU5DRV9SRFRT
QywgICAgICBYODZfU1lOVEgoIDkpKSAvKiBNRkVOQ0Ugc3luY2hyb25pemVz
IFJEVFNDICovCiBYRU5fQ1BVRkVBVFVSRShYRU5fU01FUCwgICAgICAgICAg
WDg2X1NZTlRIKDEwKSkgLyogU01FUCBnZXRzIHVzZWQgYnkgWGVuIGl0c2Vs
ZiAqLwpAQCAtNTIsNiArNTIsNyBAQCBYRU5fQ1BVRkVBVFVSRShVU0VfVk1D
QUxMLCAgICAgICAgWDg2X1NZTlRIKDMwKSkgLyogVXNlIFZNQ0FMTCBpbnN0
ZWFkIG9mIFZNTUNBTAogI2RlZmluZSBYODZfQlVHX05VTExfU0VHICAgICAg
ICAgIFg4Nl9CVUcoIDEpIC8qIE5VTEwtaW5nIGEgc2VsZWN0b3IgcHJlc2Vy
dmVzIHRoZSBiYXNlIGFuZCBsaW1pdC4gKi8KICNkZWZpbmUgWDg2X0JVR19D
TEZMVVNIX01GRU5DRSAgICBYODZfQlVHKCAyKSAvKiBNRkVOQ0UgbmVlZGVk
IHRvIHNlcmlhbGlzZSBDTEZMVVNIICovCiAjZGVmaW5lIFg4Nl9CVUdfSUJQ
Ql9OT19SRVQgICAgICAgWDg2X0JVRyggMykgLyogSUJQQiBkb2Vzbid0IGZs
dXNoIHRoZSBSU0IvUkFTICovCisjZGVmaW5lIFg4Nl9CVUdfQ0xGTFVTSF9N
T05JVE9SICAgWDg2X0JVRyggNCkgLyogTU9OSVRPUiByZXF1aXJlcyBDTEZM
VVNIICovCiAKICNkZWZpbmUgWDg2X1NQRUNfTk9fTEZFTkNFX0VOVFJZX1BW
IFg4Nl9CVUcoMTYpIC8qIChObykgc2FmZXR5IExGRU5DRSBmb3IgU1BFQ19D
VFJMX0VOVFJZX1BWLiAqLwogI2RlZmluZSBYODZfU1BFQ19OT19MRkVOQ0Vf
RU5UUllfSU5UUiBYODZfQlVHKDE3KSAvKiAoTm8pIHNhZmV0eSBMRkVOQ0Ug
Zm9yIFNQRUNfQ1RSTF9FTlRSWV9JTlRSLiAqLwo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-04.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-04.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAyNCBKdW4gMjAyNSAxNToyMDo1MiArMDEwMApTdWJq
ZWN0OiBSZXZlcnQgcGFydCBvZiAieDg2L213YWl0LWlkbGU6IGRpc2FibGUg
SUJSUyBkdXJpbmcgbG9uZyBpZGxlIgoKTW9zdCBvZiB0aGUgcGF0Y2ggKGhh
bmRsaW5nIG9mIENQVUlETEVfRkxBR19JQlJTKSBpcyBmaW5lLCBidXQgdGhl
CmFkanVzdGVtZW50cyB0byBtd2FpdF9pZGxlKCkgYXJlIG5vdDsgc3BlY19j
dHJsX2VudGVyX2lkbGUoKSBkb2VzIG1vcmUgdGhhbgpqdXN0IGFsdGVyIE1T
Ul9TUEVDX0NUUkwuSUJSUy4KClRoZSBvbmx5IHJlYXNvbiB0aGlzIGRvZXNu
J3QgbmVlZCBhbiBYU0EgaXMgYmVjYXVzZSB0aGUgdW5jb25kaXRpb25hbApz
cGVjX2N0cmxfe2VudGVyLGV4aXR9X2lkbGUoKSBpbiBtd2FpdF9pZGxlX3dp
dGhfaGludHMoKSB3ZXJlIGxlZnQgdW5hbHRlcmVkLAphbmQgdGh1cyB0aGUg
TVdBSVQgcmVtYWluZWQgcHJvcGVybHkgcHJvdGVjdGVkLgoKVGhlcmUgKHdv
dWxkIGhhdmUgYmVlbikgdHdvIHByb2JsZW1zLiAgSW4gdGhlIGlicnNfZGlz
YWJsZSAoPT0gZGVlcCBDKSBjYXNlOgoKICogT24gZW50cnksIFZFUlcgYW5k
IFJTQi1zdHVmZmluZyBhcmUgYXJjaGl0ZWN0dXJhbGx5IHNraXBwZWQuCiAq
IE9uIGV4aXQsIHRoZXJlJ3MgYSBicmFuY2ggY3Jvc3NpbmcgdGhlIFdSTVNS
IHdoaWNoIHJlaW5zdGF0ZXMgdGhlCiAgIHNwZWN1bGF0aXZlIHNhZmV0eSBm
b3IgaW5kaXJlY3QgYnJhbmNoZXMuCgpBbGwgdGhpcyBjaGFuZ2UgZGlkIHdh
cyBkb3VibGUgdXAgdGhlIGV4cGVuc2l2ZSBvcGVyYXRpb25zIGluIHRoZSBk
ZWVwIEMgY2FzZSwKYW5kIGZhaWwgdG8gb3B0aW1pc2UgdGhlIGludGVuZGVk
IGNhc2UuCgpJIGhhdmUgYW4gaWRlYSBvZiBob3cgdG8gcGx1bWIgdGhpcyBt
b3JlIG5pY2VseSwgYnV0IGl0IHJlcXVpcmVzIGxhcmdlcgpjaGFuZ2VzIHRv
IGxlZ2FjeSBJQlJTIGhhbmRsaW5nIHRvIG5vdCBtYWtlIHNwZWNfY3RybF9l
bnRlcl9pZGxlKCkgdnVsbmVyYWJsZQppbiBvdGhlciB3YXlzLiAgSW4gdGhl
IHNob3J0IHRlcm0sIHNpbXBseSB0YWtlIG91dCB0aGUgcGVyZiBoaXQuCgpG
aXhlczogMDhhY2RmOWEyNjE1ICgieDg2L213YWl0LWlkbGU6IGRpc2FibGUg
SUJSUyBkdXJpbmcgbG9uZyBpZGxlIikKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQt
Ynk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KKGNoZXJyeSBw
aWNrZWQgZnJvbSBjb21taXQgMDdkNzE2MzMzNGE3NTA3ZDMyOTk1OGIxOWQ5
NzZiZTc2OTU4MDk5OSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1
L213YWl0LWlkbGUuYyBiL3hlbi9hcmNoL3g4Ni9jcHUvbXdhaXQtaWRsZS5j
CmluZGV4IGFlNjk4NzExNzE2OS4uMTgyNTE4NTI4YTZlIDEwMDY0NAotLS0g
YS94ZW4vYXJjaC94ODYvY3B1L213YWl0LWlkbGUuYworKysgYi94ZW4vYXJj
aC94ODYvY3B1L213YWl0LWlkbGUuYwpAQCAtODkxLDcgKzg5MSw2IEBAIHN0
YXRpYyBjb25zdCBzdHJ1Y3QgY3B1aWRsZV9zdGF0ZSBzbnJfY3N0YXRlc1td
ID0gewogc3RhdGljIHZvaWQgY2ZfY2hlY2sgbXdhaXRfaWRsZSh2b2lkKQog
ewogCXVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0J
c3RydWN0IGNwdV9pbmZvICppbmZvID0gZ2V0X2NwdV9pbmZvKCk7CiAJc3Ry
dWN0IGFjcGlfcHJvY2Vzc29yX3Bvd2VyICpwb3dlciA9IHByb2Nlc3Nvcl9w
b3dlcnNbY3B1XTsKIAlzdHJ1Y3QgYWNwaV9wcm9jZXNzb3JfY3ggKmN4ID0g
TlVMTDsKIAl1bnNpZ25lZCBpbnQgbmV4dF9zdGF0ZTsKQEAgLTkxOCw2ICs5
MTcsOCBAQCBzdGF0aWMgdm9pZCBjZl9jaGVjayBtd2FpdF9pZGxlKHZvaWQp
CiAJCQlwbV9pZGxlX3NhdmUoKTsKIAkJZWxzZQogCQl7CisJCQlzdHJ1Y3Qg
Y3B1X2luZm8gKmluZm8gPSBnZXRfY3B1X2luZm8oKTsKKwogCQkJc3BlY19j
dHJsX2VudGVyX2lkbGUoaW5mbyk7CiAJCQlzYWZlX2hhbHQoKTsKIAkJCXNw
ZWNfY3RybF9leGl0X2lkbGUoaW5mbyk7CkBAIC05NDQsMTEgKzk0NSw2IEBA
IHN0YXRpYyB2b2lkIGNmX2NoZWNrIG13YWl0X2lkbGUodm9pZCkKIAlpZiAo
KGN4LT50eXBlID49IDMpICYmIGVycmF0YV9jNl93b3JrYXJvdW5kKCkpCiAJ
CWN4ID0gcG93ZXItPnNhZmVfc3RhdGU7CiAKLQlpZiAoY3gtPmlicnNfZGlz
YWJsZSkgewotCQlBU1NFUlQoIWN4LT5pcnFfZW5hYmxlX2Vhcmx5KTsKLQkJ
c3BlY19jdHJsX2VudGVyX2lkbGUoaW5mbyk7Ci0JfQotCiAjaWYgMCAvKiBY
WFggQ2FuIHdlL2RvIHdlIG5lZWQgdG8gZG8gc29tZXRoaW5nIHNpbWlsYXIg
b24gWGVuPyAqLwogCS8qCiAJICogbGVhdmVfbW0oKSB0byBhdm9pZCBjb3N0
bHkgYW5kIG9mdGVuIHVubmVjZXNzYXJ5IHdha2V1cHMKQEAgLTk4MCwxMCAr
OTc2LDYgQEAgc3RhdGljIHZvaWQgY2ZfY2hlY2sgbXdhaXRfaWRsZSh2b2lk
KQogCiAJLyogTm93IGJhY2sgaW4gQzAuICovCiAJdXBkYXRlX2lkbGVfc3Rh
dHMocG93ZXIsIGN4LCBiZWZvcmUsIGFmdGVyKTsKLQotCWlmIChjeC0+aWJy
c19kaXNhYmxlKQotCQlzcGVjX2N0cmxfZXhpdF9pZGxlKGluZm8pOwotCiAJ
bG9jYWxfaXJxX2VuYWJsZSgpOwogCiAJVFJBQ0VfVElNRShUUkNfUE1fSURM
RV9FWElULCBjeC0+dHlwZSwgYWZ0ZXIsCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-05.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-05.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxNDo0NjowMSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogU2ltcGxpZnkgbG9naWMgaW4KIGd1ZXN0
X2NvbW1vbl9kZWZhdWx0X2ZlYXR1cmVfYWRqdXN0bWVudHMoKQoKRm9yIGZl
YXR1cmVzIHdoaWNoIGFyZSB1bmNvbmRpdGlvbmFsbHkgc2V0IGluIHRoZSBt
YXggcG9saWNpZXMsIG1ha2luZyB0aGUKZGVmYXVsdCBwb2xpY3kgdG8gbWF0
Y2ggdGhlIGhvc3QgY2FuIGJlIGRvbmUgd2l0aCBhIGNvbmRpdGlvbmFsIGNs
ZWFyLgoKVGhpcyBpcyBzaW1wbGVyIHRoYW4gdGhlIHVuY29uZGl0aW9uYWwg
Y2xlYXIsIGNvbmRpdGlvbmFsIHNldCBjdXJyZW50bHkKcGVyZm9ybWVkLgoK
U2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNA
Y2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGlj
aEBzdXNlLmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMzBmOGZl
ZDY4ZjNjMmU2MzU5NGZmOTIwMmIzZDA1Yjk3MTc4MWUzNikKCmRpZmYgLS1n
aXQgYS94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5jIGIveGVuL2FyY2gveDg2
L2NwdS1wb2xpY3kuYwppbmRleCA3ODc3ODVjNDFhZTMuLmUzNGNiYTE4OWM3
NSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYworKysg
Yi94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5jCkBAIC01MTUsMTcgKzUxNSwx
NCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRf
ZmVhdHVyZV9hZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICAgICAq
IHJlYXNvbnMsIHNvIHJlc2V0IHRoZSBkZWZhdWx0IHBvbGljeSBiYWNrIHRv
IHRoZSBob3N0IHZhbHVlcyBpbgogICAgICAgICAgKiBjYXNlIHdlJ3JlIHVu
YWZmZWN0ZWQuCiAgICAgICAgICAqLwotICAgICAgICBfX2NsZWFyX2JpdChY
ODZfRkVBVFVSRV9NRF9DTEVBUiwgZnMpOwotICAgICAgICBpZiAoIGNwdV9o
YXNfbWRfY2xlYXIgKQotICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFU
VVJFX01EX0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfbWRf
Y2xlYXIgKQorICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVf
TURfQ0xFQVIsIGZzKTsKIAotICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVB
VFVSRV9GQl9DTEVBUiwgZnMpOwotICAgICAgICBpZiAoIGNwdV9oYXNfZmJf
Y2xlYXIgKQotICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX0ZC
X0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfZmJfY2xlYXIg
KQorICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfRkJfQ0xF
QVIsIGZzKTsKIAotICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9S
RkRTX0NMRUFSLCBmcyk7Ci0gICAgICAgIGlmICggY3B1X2hhc19yZmRzX2Ns
ZWFyICkKLSAgICAgICAgICAgIF9fc2V0X2JpdChYODZfRkVBVFVSRV9SRkRT
X0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfcmZkc19jbGVh
ciApCisgICAgICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9SRkRT
X0NMRUFSLCBmcyk7CiAKICAgICAgICAgLyoKICAgICAgICAgICogVGhlIEdh
dGhlciBEYXRhIFNhbXBsaW5nIG1pY3JvY29kZSBtaXRpZ2F0aW9uIChBdWd1
c3QgMjAyMykgaGFzIGFuCkBAIC01NDUsMTMgKzU0MiwxMSBAQCBzdGF0aWMg
dm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9hZGp1
c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICogVG9wb2xvZ3kgaW5mb3Jt
YXRpb24gaXMgYXQgdGhlIHRvb2xzdGFjaydzIGRpc2NyZXRpb24gc28gdGhl
c2UgYXJlCiAgICAgICogdW5jb25kaXRpb25hbGx5IHNldCBpbiBtYXgsIGJ1
dCBwaWNrIGEgZGVmYXVsdCB3aGljaCBtYXRjaGVzIHRoZSBob3N0LgogICAg
ICAqLwotICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJFX0hUVCwgZnMpOwot
ICAgIGlmICggY3B1X2hhc19odHQgKQotICAgICAgICBfX3NldF9iaXQoWDg2
X0ZFQVRVUkVfSFRULCBmcyk7CisgICAgaWYgKCAhY3B1X2hhc19odHQgKQor
ICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9IVFQsIGZzKTsKIAot
ICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJFX0NNUF9MRUdBQ1ksIGZzKTsK
LSAgICBpZiAoIGNwdV9oYXNfY21wX2xlZ2FjeSApCi0gICAgICAgIF9fc2V0
X2JpdChYODZfRkVBVFVSRV9DTVBfTEVHQUNZLCBmcyk7CisgICAgaWYgKCAh
Y3B1X2hhc19jbXBfbGVnYWN5ICkKKyAgICAgICAgX19jbGVhcl9iaXQoWDg2
X0ZFQVRVUkVfQ01QX0xFR0FDWSwgZnMpOwogCiAgICAgLyoKICAgICAgKiBP
biBjZXJ0YWluIGhhcmR3YXJlLCBzcGVjdWxhdGl2ZSBvciBlcnJhdGEgd29y
a2Fyb3VuZHMgY2FuIHJlc3VsdCBpbgo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-06.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-06.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDE1OjUxOjUzICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZW1vdmUgYnJva2VuIE1XQUlUIGltcGxlbWVudGF0
aW9uCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp
bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4
Yml0CgpjcHVpZGxlX3dha2V1cF9td2FpdCgpIGlzIGEgVE9DVE9VIHJhY2Uu
ICBUaGUgY3B1bWFza19hbmQoKSBzYW1wbGluZwpjcHVpZGxlX213YWl0X2Zs
YWdzIGNhbiB0YWtlIGEgYXJiaXRyYXJ5IHBlcmlvZCBvZiB0aW1lLCBhbmQg
dGhlcmUncyBubwpndWFyYW50ZWUgdGhhdCB0aGUgdGFyZ2V0IENQVXMgYXJl
IHN0aWxsIGluIE1XQUlUIHdoZW4gd3JpdGluZyBpbnRvCm13YWl0X3dha2V1
cChjcHUpLgoKVGhlIGNvbnNlcXVlbmNlIG9mIHRoZSByYWNlIGlzIHRoYXQg
d2UnbGwgZmFpbCB0byBJUEkgY2VydGFpbiB0YXJnZXRzLiAgQWxzbywKdGhl
cmUncyBubyBndWFyYW50ZWUgdGhhdCBtd2FpdF9pZGxlX3dpdGhfaGludHMo
KSB3aWxsIHJhaXNlIGEgVElNRVJfU09GVElSUQpvbiBpdCdzIHdheSBvdXQu
CgpUaGUgZnVuZGFtZW50YWwgYnVnIGlzIHRoYXQgdGhlICJpbl9td2FpdCIg
dmFyaWFibGUgbmVlZHMgdG8gYmUgaW4gdGhlCm1vbml0b3JlZCBsaW5lLCBh
bmQgbm90IGluIGEgc2VwYXJhdGUgY3B1aWRsZV9td2FpdF9mbGFncyB2YXJp
YWJsZSwgaW4gb3JkZXIKdG8gZG8gdGhpcyBpbiBhIHJhY2UtZnJlZSB3YXku
CgpBcnJhbmdpbmcgdG8gZml4IHRoaXMgd2hpbGUga2VlcGluZyB0aGUgb2xk
IGltcGxlbWVudGF0aW9uIGlzIHByb2hpYml0aXZlLCBzbwpzdHJpcCB0aGUg
Y3VycmVudCBvbmUgb3V0IGluIG9yZGVyIHRvIGltcGxlbWVudCB0aGUgbmV3
IG9uZSBjbGVhbmx5LiAgSW4gdGhlCmludGVyaW0sIHRoaXMgY2F1c2VzIElQ
SXMgdG8gYmUgdXNlZCB1bmNvbmRpdGlvbmFsbHkgd2hpY2ggaXMgc2FmZSBh
bGJlaXQKc3Vib3B0aW1hbC4KCkZpeGVzOiAzZDUyMWU5MzNlMWIgKCJjcHVp
ZGxlOiBtd2FpdCBvbiBzb2Z0aXJxX3BlbmRpbmcgJiByZW1vdmUgd2FrZXVw
IGlwaXMiKQpGaXhlczogMWFkYjM0ZWE4NDZkICgiQ1BVSURMRTogcmUtaW1w
bGVtZW50IG13YWl0IHdha2V1cCBwcm9jZXNzIikKU2lnbmVkLW9mZi1ieTog
QW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2
aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXgu
Y29tPgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzZmFmMDg2NmEzMzA3
MGI5MjZhYjc4ZTYyOTgyOTA0MDNmODVlNzZjKQoKZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNw
aS9jcHVfaWRsZS5jCmluZGV4IDQxZDc3MWQ4ZjM5NS4uNGVkMTg3OGUyNjJj
IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisr
KyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTQ0OCwyNyAr
NDQ4LDYgQEAgc3RhdGljIGludCBfX2luaXQgY2ZfY2hlY2sgY3B1X2lkbGVf
a2V5X2luaXQodm9pZCkKIH0KIF9faW5pdGNhbGwoY3B1X2lkbGVfa2V5X2lu
aXQpOwogCi0vKgotICogVGhlIGJpdCBpcyBzZXQgaWZmIGNwdSB1c2UgbW9u
aXRvci9td2FpdCB0byBlbnRlciBDIHN0YXRlCi0gKiB3aXRoIHRoaXMgZmxh
ZyBzZXQsIENQVSBjYW4gYmUgd2FrZW4gdXAgZnJvbSBDIHN0YXRlCi0gKiBi
eSB3cml0aW5nIHRvIHNwZWNpZmljIG1lbW9yeSBhZGRyZXNzLCBpbnN0ZWFk
IG9mIHNlbmRpbmcgYW4gSVBJLgotICovCi1zdGF0aWMgY3B1bWFza190IGNw
dWlkbGVfbXdhaXRfZmxhZ3M7Ci0KLXZvaWQgY3B1aWRsZV93YWtldXBfbXdh
aXQoY3B1bWFza190ICptYXNrKQotewotICAgIGNwdW1hc2tfdCB0YXJnZXQ7
Ci0gICAgdW5zaWduZWQgaW50IGNwdTsKLQotICAgIGNwdW1hc2tfYW5kKCZ0
YXJnZXQsIG1hc2ssICZjcHVpZGxlX213YWl0X2ZsYWdzKTsKLQotICAgIC8q
IENQVSBpcyBNV0FJVGluZyBvbiB0aGUgY3B1aWRsZV9td2FpdF93YWtldXAg
ZmxhZy4gKi8KLSAgICBmb3JfZWFjaF9jcHUoY3B1LCAmdGFyZ2V0KQotICAg
ICAgICBtd2FpdF93YWtldXAoY3B1KSA9IDA7Ci0KLSAgICBjcHVtYXNrX2Fu
ZG5vdChtYXNrLCBtYXNrLCAmdGFyZ2V0KTsKLX0KLQogLyogRm9yY2Ugc2Vu
ZGluZyBvZiBhIHdha2V1cCBJUEkgcmVnYXJkbGVzcyBvZiBtd2FpdCB1c2Fn
ZS4gKi8KIGJvb2wgX19yb19hZnRlcl9pbml0IGZvcmNlX213YWl0X2lwaV93
YWtldXA7CiAKQEAgLTQ3Nyw0MiArNDU2LDI1IEBAIGJvb2wgYXJjaF9za2lw
X3NlbmRfZXZlbnRfY2hlY2sodW5zaWduZWQgaW50IGNwdSkKICAgICBpZiAo
IGZvcmNlX213YWl0X2lwaV93YWtldXAgKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICAvKgotICAgICAqIFRoaXMgcmVsaWVzIG9uIHNvZnRpcnFf
cGVuZGluZygpIGFuZCBtd2FpdF93YWtldXAoKSB0byBhY2Nlc3MgZGF0YQot
ICAgICAqIG9uIHRoZSBzYW1lIGNhY2hlIGxpbmUuCi0gICAgICovCi0gICAg
c21wX21iKCk7Ci0gICAgcmV0dXJuICEhY3B1bWFza190ZXN0X2NwdShjcHUs
ICZjcHVpZGxlX213YWl0X2ZsYWdzKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9
CiAKIHZvaWQgbXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBl
YXgsIHVuc2lnbmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNw
dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKLSAgICBzX3RpbWVfdCBleHBpcmVz
ID0gcGVyX2NwdSh0aW1lcl9kZWFkbGluZSwgY3B1KTsKLSAgICBjb25zdCB2
b2lkICptb25pdG9yX2FkZHIgPSAmbXdhaXRfd2FrZXVwKGNwdSk7CisgICAg
Y29uc3QgdW5zaWduZWQgaW50ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZz
b2Z0aXJxX3BlbmRpbmcoY3B1KTsKIAotICAgIG1vbml0b3IobW9uaXRvcl9h
ZGRyLCAwLCAwKTsKKyAgICBtb25pdG9yKHRoaXNfc29mdGlycV9wZW5kaW5n
LCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIAotICAgIC8qCi0gICAgICogVGlt
ZXIgZGVhZGxpbmUgcGFzc2luZyBpcyB0aGUgZXZlbnQgb24gd2hpY2ggd2Ug
d2lsbCBiZSB3b2tlbiB2aWEKLSAgICAgKiBjcHVpZGxlX213YWl0X3dha2V1
cC4gU28gY2hlY2sgaXQgbm93IHRoYXQgdGhlIGxvY2F0aW9uIGlzIGFybWVk
LgotICAgICAqLwotICAgIGlmICggKGV4cGlyZXMgPiBOT1coKSB8fCBleHBp
cmVzID09IDApICYmICFzb2Z0aXJxX3BlbmRpbmcoY3B1KSApCisgICAgaWYg
KCAhKnRoaXNfc29mdGlycV9wZW5kaW5nICkKICAgICB7CiAgICAgICAgIHN0
cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdldF9jcHVfaW5mbygpOwogCi0gICAg
ICAgIGNwdW1hc2tfc2V0X2NwdShjcHUsICZjcHVpZGxlX213YWl0X2ZsYWdz
KTsKLQogICAgICAgICBzcGVjX2N0cmxfZW50ZXJfaWRsZShpbmZvKTsKICAg
ICAgICAgbXdhaXQoZWF4LCBlY3gpOwogICAgICAgICBzcGVjX2N0cmxfZXhp
dF9pZGxlKGluZm8pOwotCi0gICAgICAgIGNwdW1hc2tfY2xlYXJfY3B1KGNw
dSwgJmNwdWlkbGVfbXdhaXRfZmxhZ3MpOwogICAgIH0KLQotICAgIGlmICgg
ZXhwaXJlcyA8PSBOT1coKSAmJiBleHBpcmVzID4gMCApCi0gICAgICAgIHJh
aXNlX3NvZnRpcnEoVElNRVJfU09GVElSUSk7CiB9CiAKIHN0YXRpYyB2b2lk
IGFjcGlfcHJvY2Vzc29yX2ZmaF9jc3RhdGVfZW50ZXIoc3RydWN0IGFjcGlf
cHJvY2Vzc29yX2N4ICpjeCkKQEAgLTkxMyw3ICs4NzUsNyBAQCB2b2lkIGNm
X2NoZWNrIGFjcGlfZGVhZF9pZGxlKHZvaWQpCiAKICAgICBpZiAoIGN4LT5l
bnRyeV9tZXRob2QgPT0gQUNQSV9DU1RBVEVfRU1fRkZIICkKICAgICB7Ci0g
ICAgICAgIHZvaWQgKm13YWl0X3B0ciA9ICZtd2FpdF93YWtldXAoc21wX3By
b2Nlc3Nvcl9pZCgpKTsKKyAgICAgICAgdm9pZCAqbXdhaXRfcHRyID0gJnNv
ZnRpcnFfcGVuZGluZyhzbXBfcHJvY2Vzc29yX2lkKCkpOwogCiAgICAgICAg
IC8qCiAgICAgICAgICAqIENhY2hlIG11c3QgYmUgZmx1c2hlZCBhcyB0aGUg
bGFzdCBvcGVyYXRpb24gYmVmb3JlIHNsZWVwaW5nLgpkaWZmIC0tZ2l0IGEv
eGVuL2FyY2gveDg2L2hwZXQuYyBiL3hlbi9hcmNoL3g4Ni9ocGV0LmMKaW5k
ZXggMmY1NGQzMTg4OTY2Li44NGY4MjBmZWY2MDUgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9ocGV0LmMKKysrIGIveGVuL2FyY2gveDg2L2hwZXQuYwpA
QCAtMTg3LDggKzE4Nyw2IEBAIHN0YXRpYyB2b2lkIGV2dF9kb19icm9hZGNh
c3QoY3B1bWFza190ICptYXNrKQogICAgIGlmICggX19jcHVtYXNrX3Rlc3Rf
YW5kX2NsZWFyX2NwdShjcHUsIG1hc2spICkKICAgICAgICAgcmFpc2Vfc29m
dGlycShUSU1FUl9TT0ZUSVJRKTsKIAotICAgIGNwdWlkbGVfd2FrZXVwX213
YWl0KG1hc2spOwotCiAgICAgaWYgKCAhY3B1bWFza19lbXB0eShtYXNrKSAp
CiAgICAgICAgY3B1bWFza19yYWlzZV9zb2Z0aXJxKG1hc2ssIFRJTUVSX1NP
RlRJUlEpOwogfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2hhcmRpcnEuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJk
aXJxLmgKaW5kZXggMzQyMzYxY2I2ZmRkLi5mM2U5M2NjOWI1MDcgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJkaXJxLmgKKysr
IGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2hhcmRpcnEuaApAQCAtNSwx
MSArNSwxMCBAQAogI2luY2x1ZGUgPHhlbi90eXBlcy5oPgogCiB0eXBlZGVm
IHN0cnVjdCB7Ci0JdW5zaWduZWQgaW50IF9fc29mdGlycV9wZW5kaW5nOwot
CXVuc2lnbmVkIGludCBfX2xvY2FsX2lycV9jb3VudDsKLQl1bnNpZ25lZCBp
bnQgbm1pX2NvdW50OwotCXVuc2lnbmVkIGludCBtY2VfY291bnQ7Ci0JYm9v
bCBfX213YWl0X3dha2V1cDsKKyAgICB1bnNpZ25lZCBpbnQgX19zb2Z0aXJx
X3BlbmRpbmc7CisgICAgdW5zaWduZWQgaW50IF9fbG9jYWxfaXJxX2NvdW50
OworICAgIHVuc2lnbmVkIGludCBubWlfY291bnQ7CisgICAgdW5zaWduZWQg
aW50IG1jZV9jb3VudDsKIH0gX19jYWNoZWxpbmVfYWxpZ25lZCBpcnFfY3B1
c3RhdF90OwogCiAjaW5jbHVkZSA8eGVuL2lycV9jcHVzdGF0Lmg+CS8qIFN0
YW5kYXJkIG1hcHBpbmdzIGZvciBpcnFfY3B1c3RhdF90IGFib3ZlICovCmRp
ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vY3B1aWRsZS5oIGIveGVuL2lu
Y2x1ZGUveGVuL2NwdWlkbGUuaAppbmRleCA3MDVkMGMxMTM1ZjAuLjEyMGUz
NTRmZTM0MCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2NwdWlkbGUu
aAorKysgYi94ZW4vaW5jbHVkZS94ZW4vY3B1aWRsZS5oCkBAIC05Miw4ICs5
Miw2IEBAIGV4dGVybiBzdHJ1Y3QgY3B1aWRsZV9nb3Zlcm5vciAqY3B1aWRs
ZV9jdXJyZW50X2dvdmVybm9yOwogYm9vbCBjcHVpZGxlX3VzaW5nX2RlZXBf
Y3N0YXRlKHZvaWQpOwogdm9pZCBjcHVpZGxlX2Rpc2FibGVfZGVlcF9jc3Rh
dGUodm9pZCk7CiAKLWV4dGVybiB2b2lkIGNwdWlkbGVfd2FrZXVwX213YWl0
KGNwdW1hc2tfdCAqbWFzayk7Ci0KICNkZWZpbmUgQ1BVSURMRV9EUklWRVJf
U1RBVEVfU1RBUlQgIDEKIAogZXh0ZXJuIHZvaWQgbWVudV9nZXRfdHJhY2Vf
ZGF0YSh1MzIgKmV4cGVjdGVkLCB1MzIgKnByZWQpOwpkaWZmIC0tZ2l0IGEv
eGVuL2luY2x1ZGUveGVuL2lycV9jcHVzdGF0LmggYi94ZW4vaW5jbHVkZS94
ZW4vaXJxX2NwdXN0YXQuaAppbmRleCBiOTYyOWYyNWMyNjYuLjVmMDM5YjRi
OWE3NiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2lycV9jcHVzdGF0
LmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2lycV9jcHVzdGF0LmgKQEAgLTI0
LDYgKzI0LDUgQEAgZXh0ZXJuIGlycV9jcHVzdGF0X3QgaXJxX3N0YXRbXTsK
ICAgLyogYXJjaCBpbmRlcGVuZGVudCBpcnFfc3RhdCBmaWVsZHMgKi8KICNk
ZWZpbmUgc29mdGlycV9wZW5kaW5nKGNwdSkJX19JUlFfU1RBVCgoY3B1KSwg
X19zb2Z0aXJxX3BlbmRpbmcpCiAjZGVmaW5lIGxvY2FsX2lycV9jb3VudChj
cHUpCV9fSVJRX1NUQVQoKGNwdSksIF9fbG9jYWxfaXJxX2NvdW50KQotI2Rl
ZmluZSBtd2FpdF93YWtldXAoY3B1KQlfX0lSUV9TVEFUKChjcHUpLCBfX213
YWl0X3dha2V1cCkKIAogI2VuZGlmCS8qIF9faXJxX2NwdXN0YXRfaCAqLwo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-07.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-07.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDE4OjEzOjI3ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBEcm9wIGluY29ycmVjdCBzbXBfbWIoKSBpbiBtd2Fp
dF9pZGxlX3dpdGhfaGludHMoKQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50
LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFu
c2Zlci1FbmNvZGluZzogOGJpdAoKV2l0aCB0aGUgcmVjZW50IHNpbXBsaWZp
Y2F0aW9ucywgaXQgYmVjb21lcyBvYnZpb3VzIHRoYXQgc21wX21iKCkgaXNu
J3QgdGhlCnJpZ2h0IGJhcnJpZXIuICBTdHJpY3RseSBzcGVha2luZywgTU9O
SVRPUiBpcyBvcmRlcmVkIGFzIGEgbG9hZCwgYnV0IHNtcF9ybWIoKQppc24n
dCBjb3JyZWN0IGVpdGhlciwgYXMgdGhpcyBvbmx5IHBlcnRhaW5zIHRvIGxv
Y2FsIG9yZGVyaW5nLiAgQWxsIHdlIG5lZWQgaXMKYSBjb21waWxlciBiYXJy
aWVyKCkuCgpNZXJnZSB0aGUgYmFyaWVyKCkgaW50byB0aGUgbW9uaXRvcigp
IGl0c2VsZiwgYWxvbmcgd2l0aCBhbiBleHBsYW50aW9uLgoKTm8gZnVuY3Rp
b25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogUm9nZXIgUGF1
IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CihjaGVycnkgcGlja2Vk
IGZyb20gY29tbWl0IGU3NzEwZGQ4NDNiYTlkMjA0ZjZlZTI5NzNkNjEyMGMx
OTg0OTU4YTYpCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1
X2lkbGUuYyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXgg
NGVkMTg3OGUyNjJjLi5hNGE2Zjg2OTQzNzMgMTAwNjQ0Ci0tLSBhL3hlbi9h
cmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2Fj
cGkvY3B1X2lkbGUuYwpAQCAtNjUsOCArNjUsMTIgQEAgc3RhdGljIGFsd2F5
c19pbmxpbmUgdm9pZCBtb25pdG9yKAogICAgIGFsdGVybmF0aXZlX2lucHV0
KCIiLCAiY2xmbHVzaCAoJVthZGRyXSkiLCBYODZfQlVHX0NMRkxVU0hfTU9O
SVRPUiwKICAgICAgICAgICAgICAgICAgICAgICBbYWRkcl0gImEiIChhZGRy
KSk7CiAKKyAgICAvKgorICAgICAqIFRoZSBtZW1vcnkgY2xvYmJlciBpcyBh
IGNvbXBpbGVyIGJhcnJpZXIuICBTdWJzZXFldW50IHJlYWRzIGZyb20gdGhl
CisgICAgICogbW9uaXRvcmVkIGNhY2hlbGluZSBtdXN0IG5vdCBiZSByZW9y
ZGVyZWQgb3ZlciBNT05JVE9SLgorICAgICAqLwogICAgIGFzbSB2b2xhdGls
ZSAoICJtb25pdG9yIgotICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoYWRk
ciksICJjIiAoZWN4KSwgImQiIChlZHgpICk7CisgICAgICAgICAgICAgICAg
ICAgOjogImEiIChhZGRyKSwgImMiIChlY3gpLCAiZCIgKGVkeCkgOiAibWVt
b3J5IiApOwogfQogCiBzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIG13YWl0
KHVuc2lnbmVkIGludCBlYXgsIHVuc2lnbmVkIGludCBlY3gpCkBAIC00NjUs
NyArNDY5LDYgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHModW5zaWdu
ZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICBjb25zdCB1bnNp
Z25lZCBpbnQgKnRoaXNfc29mdGlycV9wZW5kaW5nID0gJnNvZnRpcnFfcGVu
ZGluZyhjcHUpOwogCiAgICAgbW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGlu
ZywgMCwgMCk7Ci0gICAgc21wX21iKCk7CiAKICAgICBpZiAoICEqdGhpc19z
b2Z0aXJxX3BlbmRpbmcgKQogICAgIHsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-08.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-08.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjQwOjUxICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBDb252ZXJ0IGZvcmNlX213YWl0X2lwaV93YWtldXAg
dG8gWDg2X0JVR19NT05JVE9SCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQt
VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z
ZmVyLUVuY29kaW5nOiA4Yml0CgpXZSdyZSBnb2luZyB0byB3YW50IGFsdGVy
bmF0aXZlLXBhdGNoIGJhc2VkIG9uIGl0LgoKTm8gZnVuY3Rpb25hbCBjaGFu
Z2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29v
cGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8
cm9nZXIucGF1QGNpdHJpeC5jb20+CihjaGVycnkgcGlja2VkIGZyb20gY29t
bWl0IGIwY2EwZjkzZjQ3YzQzZjg5ODQ5ODExMzdhZjA3Y2EzZDE2MWUzZWMp
CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBi
L3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXggYTRhNmY4Njk0
MzczLi5jNDJmZmIyNDRlOGIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9h
Y3BpL2NwdV9pZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lk
bGUuYwpAQCAtNDUyLDE0ICs0NTIsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBj
Zl9jaGVjayBjcHVfaWRsZV9rZXlfaW5pdCh2b2lkKQogfQogX19pbml0Y2Fs
bChjcHVfaWRsZV9rZXlfaW5pdCk7CiAKLS8qIEZvcmNlIHNlbmRpbmcgb2Yg
YSB3YWtldXAgSVBJIHJlZ2FyZGxlc3Mgb2YgbXdhaXQgdXNhZ2UuICovCi1i
b29sIF9fcm9fYWZ0ZXJfaW5pdCBmb3JjZV9td2FpdF9pcGlfd2FrZXVwOwot
CiBib29sIGFyY2hfc2tpcF9zZW5kX2V2ZW50X2NoZWNrKHVuc2lnbmVkIGlu
dCBjcHUpCiB7Ci0gICAgaWYgKCBmb3JjZV9td2FpdF9pcGlfd2FrZXVwICkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMgYi94
ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKaW5kZXggNTcyNTgyMjBlODIyLi5k
YmYxN2JlMTI4N2YgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvaW50
ZWwuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKQEAgLTQzNiw3
ICs0MzYsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcHJvYmVfbXdhaXRfZXJy
YXRhKHZvaWQpCiAgICAgewogICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5J
TkcKICAgICAgICAgICAgICAgICJGb3JjaW5nIElQSSBNV0FJVCB3YWtldXAg
ZHVlIHRvIENQVSBlcnJhdHVtXG4iKTsKLSAgICAgICAgZm9yY2VfbXdhaXRf
aXBpX3dha2V1cCA9IHRydWU7CisgICAgICAgIHNldHVwX2ZvcmNlX2NwdV9j
YXAoWDg2X0JVR19NT05JVE9SKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oIGIveGVu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmVzLmgKaW5kZXggODRj
OTMyOTJjODBjLi41NjIzMWIwMGYxNWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oCisrKyBiL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oCkBAIC01Myw2ICs1Myw3
IEBAIFhFTl9DUFVGRUFUVVJFKFVTRV9WTUNBTEwsICAgICAgICBYODZfU1lO
VEgoMzApKSAvKiBVc2UgVk1DQUxMIGluc3RlYWQgb2YgVk1NQ0FMCiAjZGVm
aW5lIFg4Nl9CVUdfQ0xGTFVTSF9NRkVOQ0UgICAgWDg2X0JVRyggMikgLyog
TUZFTkNFIG5lZWRlZCB0byBzZXJpYWxpc2UgQ0xGTFVTSCAqLwogI2RlZmlu
ZSBYODZfQlVHX0lCUEJfTk9fUkVUICAgICAgIFg4Nl9CVUcoIDMpIC8qIElC
UEIgZG9lc24ndCBmbHVzaCB0aGUgUlNCL1JBUyAqLwogI2RlZmluZSBYODZf
QlVHX0NMRkxVU0hfTU9OSVRPUiAgIFg4Nl9CVUcoIDQpIC8qIE1PTklUT1Ig
cmVxdWlyZXMgQ0xGTFVTSCAqLworI2RlZmluZSBYODZfQlVHX01PTklUT1Ig
ICAgICAgICAgIFg4Nl9CVUcoIDUpIC8qIE1PTklUT1IgZG9lc24ndCBhbHdh
eXMgbm90aWNlIHdyaXRlcyAoZm9yY2UgSVBJcykgKi8KIAogI2RlZmluZSBY
ODZfU1BFQ19OT19MRkVOQ0VfRU5UUllfUFYgWDg2X0JVRygxNikgLyogKE5v
KSBzYWZldHkgTEZFTkNFIGZvciBTUEVDX0NUUkxfRU5UUllfUFYuICovCiAj
ZGVmaW5lIFg4Nl9TUEVDX05PX0xGRU5DRV9FTlRSWV9JTlRSIFg4Nl9CVUco
MTcpIC8qIChObykgc2FmZXR5IExGRU5DRSBmb3IgU1BFQ19DVFJMX0VOVFJZ
X0lOVFIuICovCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbXdhaXQuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9td2FpdC5o
CmluZGV4IDFmMWUzOTc3NWI5OS4uOTI5OGY5ODdjNDM1IDEwMDY0NAotLS0g
YS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXdhaXQuaAorKysgYi94ZW4v
YXJjaC94ODYvaW5jbHVkZS9hc20vbXdhaXQuaApAQCAtMTMsOSArMTMsNiBA
QAogCiAjZGVmaW5lIE1XQUlUX0VDWF9JTlRFUlJVUFRfQlJFQUsJMHgxCiAK
LS8qIEZvcmNlIHNlbmRpbmcgb2YgYSB3YWtldXAgSVBJIHJlZ2FyZGxlc3Mg
b2YgbXdhaXQgdXNhZ2UuICovCi1leHRlcm4gYm9vbCBmb3JjZV9td2FpdF9p
cGlfd2FrZXVwOwotCiB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNp
Z25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQgZWN4KTsKIGJvb2wgbXdhaXRf
cGMxMF9zdXBwb3J0ZWQodm9pZCk7CiAK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-09.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-09.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjA0OjE3ICswMTAwClN1Ympl
Y3Q6IHhlbi9zb2Z0aXJxOiBSZXdvcmsgYXJjaF9za2lwX3NlbmRfZXZlbnRf
Y2hlY2soKSBpbnRvCiBhcmNoX3NldF9zb2Z0aXJxKCkKTUlNRS1WZXJzaW9u
OiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04
CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCng4NiBpcyB0aGUg
b25seSBhcmNoaXRlY3R1cmUgd2FudGluZyBhbiBvcHRpbWlzYXRpb24gaGVy
ZSwgYnV0IHRoZQp0ZXN0X2FuZF9zZXRfYml0KCkgaXMgYSBzdG9yZSBpbnRv
IHRoZSBtb25pdG9yZWQgbGluZSAoaS5lLiB3aWxsIHdha2UgdXAgdGhlCnRh
cmdldCkgYW5kLCBwcmlvciB0byB0aGUgcmVtb3ZhbCBvZiB0aGUgYnJva2Vu
IElQSS1lbGlzaW9uIGFsZ29yaXRobSwgd2FzCnJhY3ksIGNhdXNpbmcgdW5u
ZWNlc3NhcnkgSVBJcyB0byBiZSBzZW50LgoKVG8gZG8gdGhpcyBpbiBhIHJh
Y2UtZnJlZSB3YXksIHRoZSBzdG9yZSB0byB0aGUgbW9uaXRlZCBsaW5lIG5l
ZWRzIHRvIGFsc28Kc2FtcGxlIHRoZSBzdGF0dXMgb2YgdGhlIHRhcmdldCBp
biBvbmUgYXRvbWljIGFjdGlvbi4gIEltcGxlbWVudCBhIG5ldyBhcmNoCmhl
bHBlciB3aXRoIGRpZmZlcmVudCBzZW1hbnRpY3M7IHRvIG1ha2UgdGhlIHNv
ZnRpcnEgcGVuZGluZyBhbmQgZGVjaWRlIGFib3V0CklQSXMgdG9nZXRoZXIu
ICBGb3Igbm93LCBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgaGVscGVyLiAgSXQg
d2lsbCBiZSBvdmVycmlkZGVuCmJ5IHg4NiBpbiBhIHN1YnNlcXVlbnQgY2hh
bmdlLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBB
bmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZp
ZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5j
b20+CihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGI0NzNlNWUyMTJlNDQ1
ZDNjMTkzYzFjODNiNTJiMTI5YWY1NzFiMTkpCgpkaWZmIC0tZ2l0IGEveGVu
L2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBiL3hlbi9hcmNoL3g4Ni9hY3Bp
L2NwdV9pZGxlLmMKaW5kZXggYzQyZmZiMjQ0ZThiLi40ODlkODk0YzJmNjYg
MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKKysr
IGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYwpAQCAtNDUyLDExICs0
NTIsNiBAQCBzdGF0aWMgaW50IF9faW5pdCBjZl9jaGVjayBjcHVfaWRsZV9r
ZXlfaW5pdCh2b2lkKQogfQogX19pbml0Y2FsbChjcHVfaWRsZV9rZXlfaW5p
dCk7CiAKLWJvb2wgYXJjaF9za2lwX3NlbmRfZXZlbnRfY2hlY2sodW5zaWdu
ZWQgaW50IGNwdSkKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIHZvaWQg
bXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBlYXgsIHVuc2ln
bmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNwdSA9IHNtcF9w
cm9jZXNzb3JfaWQoKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9zb2Z0aXJxLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20v
c29mdGlycS5oCmluZGV4IDQxNWVlODY2Yzc5ZC4uZTRiMTk0ZjA2OWZiIDEw
MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vc29mdGlycS5o
CisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zb2Z0aXJxLmgKQEAg
LTksNiArOSw0IEBACiAjZGVmaW5lIEhWTV9EUENJX1NPRlRJUlEgICAgICAg
KE5SX0NPTU1PTl9TT0ZUSVJRUyArIDQpCiAjZGVmaW5lIE5SX0FSQ0hfU09G
VElSUVMgICAgICAgNQogCi1ib29sIGFyY2hfc2tpcF9zZW5kX2V2ZW50X2No
ZWNrKHVuc2lnbmVkIGludCBjcHUpOwotCiAjZW5kaWYgLyogX19BU01fU09G
VElSUV9IX18gKi8KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc29mdGlycS5j
IGIveGVuL2NvbW1vbi9zb2Z0aXJxLmMKaW5kZXggYmVlNGE4MjAwOWMzLi42
MjZjNDdkZTgyYWMgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc29mdGlycS5j
CisrKyBiL3hlbi9jb21tb24vc29mdGlycS5jCkBAIC05NCw5ICs5NCw3IEBA
IHZvaWQgY3B1bWFza19yYWlzZV9zb2Z0aXJxKGNvbnN0IGNwdW1hc2tfdCAq
bWFzaywgdW5zaWduZWQgaW50IG5yKQogICAgICAgICByYWlzZV9tYXNrID0g
JnBlcl9jcHUoYmF0Y2hfbWFzaywgdGhpc19jcHUpOwogCiAgICAgZm9yX2Vh
Y2hfY3B1KGNwdSwgbWFzaykKLSAgICAgICAgaWYgKCAhdGVzdF9hbmRfc2V0
X2JpdChuciwgJnNvZnRpcnFfcGVuZGluZyhjcHUpKSAmJgotICAgICAgICAg
ICAgIGNwdSAhPSB0aGlzX2NwdSAmJgotICAgICAgICAgICAgICFhcmNoX3Nr
aXBfc2VuZF9ldmVudF9jaGVjayhjcHUpICkKKyAgICAgICAgaWYgKCAhYXJj
aF9zZXRfc29mdGlycShuciwgY3B1KSAmJiBjcHUgIT0gdGhpc19jcHUgKQog
ICAgICAgICAgICAgX19jcHVtYXNrX3NldF9jcHUoY3B1LCByYWlzZV9tYXNr
KTsKIAogICAgIGlmICggcmFpc2VfbWFzayA9PSAmc2VuZF9tYXNrICkKQEAg
LTEwNyw5ICsxMDUsNyBAQCB2b2lkIGNwdV9yYWlzZV9zb2Z0aXJxKHVuc2ln
bmVkIGludCBjcHUsIHVuc2lnbmVkIGludCBucikKIHsKICAgICB1bnNpZ25l
ZCBpbnQgdGhpc19jcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAKLSAgICBp
ZiAoIHRlc3RfYW5kX3NldF9iaXQobnIsICZzb2Z0aXJxX3BlbmRpbmcoY3B1
KSkKLSAgICAgICAgIHx8IChjcHUgPT0gdGhpc19jcHUpCi0gICAgICAgICB8
fCBhcmNoX3NraXBfc2VuZF9ldmVudF9jaGVjayhjcHUpICkKKyAgICBpZiAo
IGFyY2hfc2V0X3NvZnRpcnEobnIsIGNwdSkgfHwgY3B1ID09IHRoaXNfY3B1
ICkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCAhcGVyX2NwdShiYXRj
aGluZywgdGhpc19jcHUpIHx8IGluX2lycSgpICkKZGlmZiAtLWdpdCBhL3hl
bi9pbmNsdWRlL3hlbi9zb2Z0aXJxLmggYi94ZW4vaW5jbHVkZS94ZW4vc29m
dGlycS5oCmluZGV4IDMzZDZmMmVjZDIyMy4uNWMyMzYxODY1YjQ5IDEwMDY0
NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vc29mdGlycS5oCisrKyBiL3hlbi9p
bmNsdWRlL3hlbi9zb2Z0aXJxLmgKQEAgLTIxLDYgKzIxLDIyIEBAIGVudW0g
ewogCiAjZGVmaW5lIE5SX1NPRlRJUlFTIChOUl9DT01NT05fU09GVElSUVMg
KyBOUl9BUkNIX1NPRlRJUlFTKQogCisvKgorICogRW5zdXJlIHNvZnRpcnEg
QG5yIGlzIHBlbmRpbmcgb24gQGNwdS4gIFJldHVybiB0cnVlIGlmIGFuIElQ
SSBjYW4gYmUKKyAqIHNraXBwZWQsIGZhbHNlIGlmIHRoZSBJUEkgY2Fubm90
IGJlIHNraXBwZWQuCisgKi8KKyNpZm5kZWYgYXJjaF9zZXRfc29mdGlycQor
c3RhdGljIGFsd2F5c19pbmxpbmUgYm9vbCBhcmNoX3NldF9zb2Z0aXJxKHVu
c2lnbmVkIGludCBuciwgdW5zaWduZWQgaW50IGNwdSkKK3sKKyAgICAvKgor
ICAgICAqIFRyeSB0byBzZXQgdGhlIHNvZnRpcnEgcGVuZGluZy4gIElmIHdl
IHNldCB0aGUgYml0IChpLmUuIHRoZSBvbGQgYml0CisgICAgICogd2FzIDAp
LCB3ZSdyZSByZXNwb25zaWJsZSB0byBzZW5kIHRoZSBJUEkuICBJZiB0aGUg
c29mdGlycSB3YXMgYWxyZWFkeQorICAgICAqIHBlbmRpbmcgKGkuZS4gdGhl
IG9sZCBiaXQgd2FzIDEpLCBubyBJUEkgaXMgbmVlZGVkLgorICAgICAqLwor
ICAgIHJldHVybiB0ZXN0X2FuZF9zZXRfYml0KG5yLCAmc29mdGlycV9wZW5k
aW5nKGNwdSkpOworfQorI2VuZGlmCisKIHR5cGVkZWYgdm9pZCAoKnNvZnRp
cnFfaGFuZGxlcikodm9pZCk7CiAKIHZvaWQgZG9fc29mdGlycSh2b2lkKTsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-10.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-10.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjI2OjI0ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBJbXBsZW1lbnQgYSBuZXcgTVdBSVQgSVBJLWVsaXNp
b24gYWxnb3JpdGhtCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTog
dGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVu
Y29kaW5nOiA4Yml0CgpJbiBvcmRlciBlbGlkZSBJUElzLCB3ZSBtdXN0IGJl
IGFibGUgdG8gaWRlbnRpZnkgd2hldGhlciBhIHRhcmdldCBDUFUgaXMgaW4K
TVdBSVQgYXQgdGhlIHBvaW50IGl0IGlzIHdva2VuIHVwLiAgaS5lLiB0aGUg
c3RvcmUgdG8gd2FrZSBpdCB1cCBtdXN0IGFsc28KaWRlbnRpZnkgdGhlIHN0
YXRlLgoKQ3JlYXRlIGEgbmV3IGluX213YWl0IHZhcmlhYmxlIGJlc2lkZSBf
X3NvZnRpcnFfcGVuZGluZywgc28gd2UgY2FuIHVzZSBhCkNNUFhDSEcgdG8g
c2V0IHRoZSBzb2Z0aXJxIHdoaWxlIGFsc28gb2JzZXJ2aW5nIHRoZSBzdGF0
dXMgc2FmZWx5LiAgSW1wbGVtZW50CmFuIHg4NiB2ZXJzaW9uIG9mIGFyY2hf
cGVuZF9zb2Z0aXJxKCkgd2hpY2ggZG9lcyB0aGlzLgoKSW4gbXdhaXRfaWRs
ZV93aXRoX2hpbnRzKCksIGFkdmVydGlzZSBpbl9td2FpdCwgd2l0aCBhbiBl
eHBsYW5hdGlvbiBvZgpwcmVjaXNlbHkgd2hhdCBpdCBtZWFucy4gIFg4Nl9C
VUdfTU9OSVRPUiBjYW4gYmUgYWNjb3VudGVkIGZvciBzaW1wbHkgYnkgbm90
CmFkdmVydGlzaW5nIGluX213YWl0LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQWNrZWQtYnk6
IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgooY2hl
cnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzZTBiYzRiNTAzNTBiZDM1NzMwNGZk
NzlhNWRjMDQ3Mjc5MGRiYTkxKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4
Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRs
ZS5jCmluZGV4IDQ4OWQ4OTRjMmY2Ni4uMTc2ZGYxZWQxNzRmIDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9h
cmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTQ1NSw3ICs0NTUsMjEgQEAg
X19pbml0Y2FsbChjcHVfaWRsZV9rZXlfaW5pdCk7CiB2b2lkIG13YWl0X2lk
bGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQg
ZWN4KQogewogICAgIHVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29y
X2lkKCk7Ci0gICAgY29uc3QgdW5zaWduZWQgaW50ICp0aGlzX3NvZnRpcnFf
cGVuZGluZyA9ICZzb2Z0aXJxX3BlbmRpbmcoY3B1KTsKKyAgICBpcnFfY3B1
c3RhdF90ICpzdGF0ID0gJmlycV9zdGF0W2NwdV07CisgICAgY29uc3QgdW5z
aWduZWQgaW50ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZzdGF0LT5fX3Nv
ZnRpcnFfcGVuZGluZzsKKworICAgIC8qCisgICAgICogQnkgc2V0dGluZyBp
bl9td2FpdCwgd2UgcHJvbWlzZSB0byBvdGhlciBDUFVzIHRoYXQgd2UnbGwg
bm90aWNlIGNoYW5nZXMKKyAgICAgKiB0byBfX3NvZnRpcnFfcGVuZGluZyB3
aXRob3V0IGJlaW5nIHNlbnQgYW4gSVBJLiAgV2UgYWNoaWV2ZSB0aGlzIGJ5
CisgICAgICogZWl0aGVyIG5vdCBnb2luZyB0byBzbGVlcCwgb3IgYnkgaGF2
aW5nIGhhcmR3YXJlIG5vdGljZSBvbiBvdXIgYmVoYWxmLgorICAgICAqCisg
ICAgICogU29tZSBlcnJhdGEgZXhpc3Qgd2hlcmUgTU9OSVRPUiBkb2Vzbid0
IHdvcmsgcHJvcGVybHksIGFuZCB0aGUKKyAgICAgKiB3b3JrYXJvdW5kIGlz
IHRvIGZvcmNlIHRoZSB1c2Ugb2YgYW4gSVBJLiAgQ2F1c2UgdGhpcyB0byBo
YXBwZW4gYnkKKyAgICAgKiBzaW1wbHkgbm90IGFkdmVydGlzaW5nIG91cnNl
bHZlcyBhcyBiZWluZyBpbl9td2FpdC4KKyAgICAgKi8KKyAgICBhbHRlcm5h
dGl2ZV9pbygibW92YiAkMSwgJVtpbl9td2FpdF0iLAorICAgICAgICAgICAg
ICAgICAgICIiLCBYODZfQlVHX01PTklUT1IsCisgICAgICAgICAgICAgICAg
ICAgW2luX213YWl0XSAiPW0iIChzdGF0LT5pbl9td2FpdCkpOwogCiAgICAg
bW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGluZywgMCwgMCk7CiAKQEAgLTQ2
Nyw2ICs0ODEsMTAgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHModW5z
aWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAgbXdh
aXQoZWF4LCBlY3gpOwogICAgICAgICBzcGVjX2N0cmxfZXhpdF9pZGxlKGlu
Zm8pOwogICAgIH0KKworICAgIGFsdGVybmF0aXZlX2lvKCJtb3ZiICQwLCAl
W2luX213YWl0XSIsCisgICAgICAgICAgICAgICAgICAgIiIsIFg4Nl9CVUdf
TU9OSVRPUiwKKyAgICAgICAgICAgICAgICAgICBbaW5fbXdhaXRdICI9bSIg
KHN0YXQtPmluX213YWl0KSk7CiB9CiAKIHN0YXRpYyB2b2lkIGFjcGlfcHJv
Y2Vzc29yX2ZmaF9jc3RhdGVfZW50ZXIoc3RydWN0IGFjcGlfcHJvY2Vzc29y
X2N4ICpjeCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9oYXJkaXJxLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaGFyZGly
cS5oCmluZGV4IGYzZTkzY2M5YjUwNy4uMTY0N2NmZjA0ZGM4IDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaGFyZGlycS5oCisrKyBi
L3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJkaXJxLmgKQEAgLTUsNyAr
NSwxOSBAQAogI2luY2x1ZGUgPHhlbi90eXBlcy5oPgogCiB0eXBlZGVmIHN0
cnVjdCB7Ci0gICAgdW5zaWduZWQgaW50IF9fc29mdGlycV9wZW5kaW5nOwor
ICAgIC8qCisgICAgICogVGhlIGxheW91dCBpcyBpbXBvcnRhbnQuICBBbnkg
Q1BVIGNhbiBzZXQgYml0cyBpbiBfX3NvZnRpcnFfcGVuZGluZywKKyAgICAg
KiBidXQgaW5fbXdhaXQgaXMgYSBzdGF0dXMgYml0IG93bmVkIGJ5IHRoZSBD
UFUuICBzb2Z0aXJxX213YWl0X3JhdyBtdXN0CisgICAgICogY292ZXIgYm90
aCwgYW5kIG11c3QgYmUgaW4gYSBzaW5nbGUgY2FjaGVsaW5lLgorICAgICAq
LworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAg
IHVuc2lnbmVkIGludCBfX3NvZnRpcnFfcGVuZGluZzsKKyAgICAgICAgICAg
IGJvb2wgaW5fbXdhaXQ7CisgICAgICAgIH07CisgICAgICAgIHVpbnQ2NF90
IHNvZnRpcnFfbXdhaXRfcmF3OworICAgIH07CisKICAgICB1bnNpZ25lZCBp
bnQgX19sb2NhbF9pcnFfY291bnQ7CiAgICAgdW5zaWduZWQgaW50IG5taV9j
b3VudDsKICAgICB1bnNpZ25lZCBpbnQgbWNlX2NvdW50OwpkaWZmIC0tZ2l0
IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NvZnRpcnEuaCBiL3hlbi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9zb2Z0aXJxLmgKaW5kZXggZTRiMTk0ZjA2
OWZiLi41NWI2NWM5NzQ3YjEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zb2Z0aXJxLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3NvZnRpcnEuaApAQCAtMSw2ICsxLDggQEAKICNpZm5kZWYgX19B
U01fU09GVElSUV9IX18KICNkZWZpbmUgX19BU01fU09GVElSUV9IX18KIAor
I2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KKwogI2RlZmluZSBOTUlfU09GVElS
USAgICAgICAgICAgIChOUl9DT01NT05fU09GVElSUVMgKyAwKQogI2RlZmlu
ZSBUSU1FX0NBTElCUkFURV9TT0ZUSVJRIChOUl9DT01NT05fU09GVElSUVMg
KyAxKQogI2RlZmluZSBWQ1BVX0tJQ0tfU09GVElSUSAgICAgIChOUl9DT01N
T05fU09GVElSUVMgKyAyKQpAQCAtOSw0ICsxMSw1MCBAQAogI2RlZmluZSBI
Vk1fRFBDSV9TT0ZUSVJRICAgICAgIChOUl9DT01NT05fU09GVElSUVMgKyA0
KQogI2RlZmluZSBOUl9BUkNIX1NPRlRJUlFTICAgICAgIDUKIAorLyoKKyAq
IEVuc3VyZSBzb2Z0aXJxIEBuciBpcyBwZW5kaW5nIG9uIEBjcHUuICBSZXR1
cm4gdHJ1ZSBpZiBhbiBJUEkgY2FuIGJlCisgKiBza2lwcGVkLCBmYWxzZSBp
ZiB0aGUgSVBJIGNhbm5vdCBiZSBza2lwcGVkLgorICoKKyAqIFdlIHVzZSBh
IENNUFhDSEcgY292ZXJpbmcgYm90aCBfX3NvZnRpcnFfcGVuZGluZyBhbmQg
aW5fbXdhaXQsIGluIG9yZGVyIHRvCisgKiBzZXQgc29mdGlycSBAbnIgd2hp
bGUgYWxzbyBvYnNlcnZpbmcgaW5fbXdhaXQgaW4gYSByYWNlLWZyZWUgd2F5
LgorICovCitzdGF0aWMgYWx3YXlzX2lubGluZSBib29sIGFyY2hfc2V0X3Nv
ZnRpcnEodW5zaWduZWQgaW50IG5yLCB1bnNpZ25lZCBpbnQgY3B1KQorewor
ICAgIHVpbnQ2NF90ICpwdHIgPSAmaXJxX3N0YXRbY3B1XS5zb2Z0aXJxX213
YWl0X3JhdzsKKyAgICB1aW50NjRfdCBwcmV2LCBvbGQsIG5ldzsKKyAgICB1
bnNpZ25lZCBpbnQgc29mdGlycSA9IDFVIDw8IG5yOworCisgICAgb2xkID0g
QUNDRVNTX09OQ0UoKnB0cik7CisKKyAgICBmb3IgKCA7OyApCisgICAgewor
ICAgICAgICBpZiAoIG9sZCAmIHNvZnRpcnEgKQorICAgICAgICAgICAgLyog
U29mdGlycSBhbHJlYWR5IHBlbmRpbmcsIG5vdGhpbmcgdG8gZG8uICovCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBuZXcgPSBvbGQg
fCBzb2Z0aXJxOworCisgICAgICAgIHByZXYgPSBjbXB4Y2hnKHB0ciwgb2xk
LCBuZXcpOworICAgICAgICBpZiAoIHByZXYgPT0gb2xkICkKKyAgICAgICAg
ICAgIGJyZWFrOworCisgICAgICAgIG9sZCA9IHByZXY7CisgICAgfQorCisg
ICAgLyoKKyAgICAgKiBXZSBoYXZlIGNhdXNlZCB0aGUgc29mdGlycSB0byBi
ZWNvbWUgcGVuZGluZy4gIElmIGluX213YWl0IHdhcyBzZXQsIHRoZQorICAg
ICAqIHRhcmdldCBDUFUgd2lsbCBub3RpY2UgdGhlIG1vZGlmaWNhdGlvbiBh
bmQgYWN0IG9uIGl0LgorICAgICAqCisgICAgICogV2UgY2FuJ3QgYWNjZXNz
IHRoZSBpbl9td2FpdCBmaWVsZCBuaWNlbHksIHNvIHVzZSBzb21lIEJVSUxE
X0JVR19PTigpJ3MKKyAgICAgKiB0byBjcm9zcy1jaGVjayB0aGUgKDFVTCA8
PCAzMikgb3BlbmNvZGluZy4KKyAgICAgKi8KKyAgICBCVUlMRF9CVUdfT04o
c2l6ZW9mKGlycV9zdGF0WzBdLnNvZnRpcnFfbXdhaXRfcmF3KSAhPSA4KTsK
KyAgICBCVUlMRF9CVUdfT04oKG9mZnNldG9mKGlycV9jcHVzdGF0X3QsIGlu
X213YWl0KSAtCisgICAgICAgICAgICAgICAgICBvZmZzZXRvZihpcnFfY3B1
c3RhdF90LCBzb2Z0aXJxX213YWl0X3JhdykpICE9IDQpOworCisgICAgcmV0
dXJuIG5ldyAmICgxVUwgPDwgMzIpIC8qIGluX213YWl0ICovOworCit9Cisj
ZGVmaW5lIGFyY2hfc2V0X3NvZnRpcnEgYXJjaF9zZXRfc29mdGlycQorCiAj
ZW5kaWYgLyogX19BU01fU09GVElSUV9IX18gKi8K

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-11.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-11.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogV2VkLCAyIEp1bCAyMDI1IDE0OjUxOjM4ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBGaXggYnVnZ3kgIng4Ni9td2FpdC1pZGxlOiBlbmFi
bGUgaW50ZXJydXB0cyBiZWZvcmUgQzEgb24KIFhlb25zIgoKVGhlIGNoZWNr
IG9mIHRoaXNfc29mdGlycV9wZW5kaW5nIG11c3QgYmUgcGVyZm9ybWVkIHdp
dGggaXJxcyBkaXNhYmxlZCwgYnV0CnRoaXMgcHJvcGVydHkgd2FzIGJyb2tl
biBieSBhbiBhdHRlbXB0IHRvIG9wdGltaXNlIGVudHJ5L2V4aXQgbGF0ZW5j
eS4KCkNvbW1pdCBjMjI3MjMzYWQ2NGMgaW4gTGludXggKHdoaWNoIHdlIGNv
cGllZCBpbnRvIFhlbikgd2FzIGZpeGVkIHVwIGJ5CmVkYzhmYzAxZjYwOCBp
biBMaW51eCwgd2hpY2ggd2UgaGF2ZSBzbyBmYXIgbWlzc2VkLgoKR29pbmcg
dG8gc2xlZXAgd2l0aG91dCB3YWtpbmcgb24gaW50ZXJydXB0cyBpcyBub25z
ZW5zaWNhbCBvdXRzaWRlIG9mCnBsYXlfZGVhZCgpLCBzbyBvdmVybG9hZCB0
aGlzIHRvIHNlbGVjdCBiZXR3ZWVuIHR3byBwb3NzaWJsZSBNV0FJVHMsIHRo
ZQpzZWNvbmQgdXNpbmcgdGhlIFNUSSBzaGFkb3cgdG8gY292ZXIgTVdBSVQg
Zm9yIGV4YWN0bHkgdGhlIHNhbWUgcmVhc29uIGFzIHdlCmRvIGluIHNhZmVf
aGFsdCgpLgoKRml4ZXM6IGIxN2UwZWM3MmVkZSAoIng4Ni9td2FpdC1pZGxl
OiBlbmFibGUgaW50ZXJydXB0cyBiZWZvcmUgQzEgb24gWGVvbnMiKQpTaWdu
ZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRy
aXguY29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1
c2UuY29tPgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA5YjBmMGY2ZTIz
NTYxOGMyNzY0ZTkyNWI1OGM0YmZlNDEyNzMwY2VkKQoKZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYv
YWNwaS9jcHVfaWRsZS5jCmluZGV4IDE3NmRmMWVkMTc0Zi4uNjk4NTdhNThl
ZjVhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5j
CisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTc5LDYg
Kzc5LDEzIEBAIHN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgbXdhaXQodW5z
aWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAgICAg
ICAgICAgICA6OiAiYSIgKGVheCksICJjIiAoZWN4KSApOwogfQogCitzdGF0
aWMgYWx3YXlzX2lubGluZSB2b2lkIHN0aV9td2FpdF9jbGkodW5zaWduZWQg
aW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKK3sKKyAgICAvKiBTVEkgc2hh
ZG93IGNvdmVycyBNV0FJVC4gKi8KKyAgICBhc20gdm9sYXRpbGUgKCAic3Rp
OyBtd2FpdDsgY2xpIgorICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoZWF4
KSwgImMiIChlY3gpICk7Cit9CisKICNkZWZpbmUgR0VUX0hXX1JFU19JTl9O
Uyhtc3IsIHZhbCkgXAogICAgIGRvIHsgcmRtc3JsKG1zciwgdmFsKTsgdmFs
ID0gdHNjX3RpY2tzMm5zKHZhbCk7IH0gd2hpbGUoIDAgKQogI2RlZmluZSBH
RVRfTUM2X1JFUyh2YWwpICBHRVRfSFdfUkVTX0lOX05TKDB4NjY0LCB2YWwp
CkBAIC00NzMsMTIgKzQ4MCwxOSBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9o
aW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogCiAg
ICAgbW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGluZywgMCwgMCk7CiAKKyAg
ICBBU1NFUlQoIWxvY2FsX2lycV9pc19lbmFibGVkKCkpOworCiAgICAgaWYg
KCAhKnRoaXNfc29mdGlycV9wZW5kaW5nICkKICAgICB7CiAgICAgICAgIHN0
cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdldF9jcHVfaW5mbygpOwogCiAgICAg
ICAgIHNwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8pOwotICAgICAgICBtd2Fp
dChlYXgsIGVjeCk7CisKKyAgICAgICAgaWYgKCBlY3ggJiBNV0FJVF9FQ1hf
SU5URVJSVVBUX0JSRUFLICkKKyAgICAgICAgICAgIG13YWl0KGVheCwgZWN4
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3RpX213YWl0X2NsaShl
YXgsIGVjeCk7CisKICAgICAgICAgc3BlY19jdHJsX2V4aXRfaWRsZShpbmZv
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbXdh
aXQtaWRsZS5jIGIveGVuL2FyY2gveDg2L2NwdS9td2FpdC1pZGxlLmMKaW5k
ZXggMTgyNTE4NTI4YTZlLi4zYzYzZjBkNDVhMTEgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9jcHUvbXdhaXQtaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4
Ni9jcHUvbXdhaXQtaWRsZS5jCkBAIC05NjIsMTIgKzk2Miw4IEBAIHN0YXRp
YyB2b2lkIGNmX2NoZWNrIG13YWl0X2lkbGUodm9pZCkKIAogCXVwZGF0ZV9s
YXN0X2N4X3N0YXQocG93ZXIsIGN4LCBiZWZvcmUpOwogCi0JaWYgKGN4LT5p
cnFfZW5hYmxlX2Vhcmx5KQotCQlsb2NhbF9pcnFfZW5hYmxlKCk7Ci0KLQlt
d2FpdF9pZGxlX3dpdGhfaGludHMoY3gtPmFkZHJlc3MsIE1XQUlUX0VDWF9J
TlRFUlJVUFRfQlJFQUspOwotCi0JbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwlt
d2FpdF9pZGxlX3dpdGhfaGludHMoY3gtPmFkZHJlc3MsCisJCQkgICAgICBj
eC0+aXJxX2VuYWJsZV9lYXJseSA/IDAgOiBNV0FJVF9FQ1hfSU5URVJSVVBU
X0JSRUFLKTsKIAogCWFmdGVyID0gYWx0ZXJuYXRpdmVfY2FsbChjcHVpZGxl
X2dldF90aWNrKTsKIAo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-12.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-12.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxNzoxOToxOSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogUmVhcnJhbmdlIGd1ZXN0X2NvbW1vbl8q
X2ZlYXR1cmVfYWRqdXN0bWVudHMoKQoKVHVybiB0aGUgaWYoKXMgaW50byBz
d2l0Y2goKWVzLCBhcyB3ZSdyZSBnb2luZyB0byBuZWVkIEFNRCBzZWN0aW9u
cy4KCk1vdmUgdGhlIFJUTSBhZGp1c3RtZW50cyBpbnRvIHRoZSBJbnRlbCBz
ZWN0aW9uLCB3aGVyZSB0aGV5IG91Z2h0IHRvIGxpdmUuCgpObyBmdW5jdGlv
bmFsIGNoYW5nZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYyBiL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5
LmMKaW5kZXggZTM0Y2JhMTg5Yzc1Li5hZjJiNGQ3ZmEwMDAgMTAwNjQ0Ci0t
LSBhL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMKKysrIGIveGVuL2FyY2gv
eDg2L2NwdS1wb2xpY3kuYwpAQCAtNDE1LDggKzQxNSw5IEBAIHN0YXRpYyB2
b2lkIF9faW5pdCBndWVzdF9jb21tb25fZGVmYXVsdF9sZWF2ZXMoc3RydWN0
IGNwdV9wb2xpY3kgKnApCiAKIHN0YXRpYyB2b2lkIF9faW5pdCBndWVzdF9j
b21tb25fbWF4X2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQog
ewotICAgIGlmICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9W
RU5ET1JfSU5URUwgKQorICAgIHN3aXRjaCAoIGJvb3RfY3B1X2RhdGEueDg2
X3ZlbmRvciApCiAgICAgeworICAgIGNhc2UgWDg2X1ZFTkRPUl9JTlRFTDoK
ICAgICAgICAgLyoKICAgICAgICAgICogTVNSX0FSQ0hfQ0FQUyBpcyBqdXN0
IGZlYXR1cmUgZGF0YSwgYW5kIHdlIGNhbiBvZmZlciBpdCB0byBndWVzdHMK
ICAgICAgICAgICogdW5jb25kaXRpb25hbGx5LCBhbHRob3VnaCBsaW1pdCBp
dCB0byBJbnRlbCBzeXN0ZW1zIGFzIGl0IGlzIGhpZ2hseQpAQCAtNDYxLDYg
KzQ2MiwyMiBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX21h
eF9mZWF0dXJlX2FkanVzdG1lbnRzKHVpbnQzMl90ICpmcykKICAgICAgICAg
ICAgICBib290X2NwdV9kYXRhLng4Nl9tb2RlbCA9PSBJTlRFTF9GQU02X1NL
WUxBS0VfWCAmJgogICAgICAgICAgICAgIHJhd19jcHVfcG9saWN5LmZlYXQu
Y2x3YiApCiAgICAgICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfQ0xX
QiwgZnMpOworCisgICAgICAgIC8qCisgICAgICAgICAqIFRvIG1pdGlnYXRl
IE5hdGl2ZS1CSEksIG9uZSBvcHRpb24gaXMgdG8gdXNlIGEgVFNYIEFib3J0
IG9uIGNhcGFibGUKKyAgICAgICAgICogc3lzdGVtcy4gIFRoaXMgaXMgc2Fm
ZSBldmVuIGlmIFJUTSBoYXMgYmVlbiBkaXNhYmxlZCBmb3Igb3RoZXIKKyAg
ICAgICAgICogcmVhc29ucyB2aWEgTVNSX1RTWF97Q1RSTCxGT1JDRV9BQk9S
VH0uICBIb3dldmVyLCBhIGd1ZXN0IGtlcm5lbAorICAgICAgICAgKiBkb2Vz
bid0IGdldCB0byBrbm93IHRoaXMgdHlwZSBvZiBpbmZvcm1hdGlvbi4KKyAg
ICAgICAgICoKKyAgICAgICAgICogVGhlcmVmb3JlIHRoZSBtZWFuaW5nIG9m
IFJUTV9BTFdBWVNfQUJPUlQgaGFzIGJlZW4gYWRqdXN0ZWQsIHRvCisgICAg
ICAgICAqIGluc3RlYWQgbWVhbiAiWEJFR0lOIHdvbid0IGZhdWx0Ii4gIFRo
aXMgaXMgZW5vdWdoIGZvciBhIGd1ZXN0CisgICAgICAgICAqIGtlcm5lbCB0
byBtYWtlIGFuIGluZm9ybWVkIGNob2ljZSBXUlQgbWl0aWdhdGluZyBOYXRp
dmUtQkhJLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiBSVE0tY2FwYWJs
ZSwgd2UgY2FuIHJ1biBhIFZNIHdoaWNoIGhhcyBzZWVuIFJUTV9BTFdBWVNf
QUJPUlQuCisgICAgICAgICAqLworICAgICAgICBpZiAoIHRlc3RfYml0KFg4
Nl9GRUFUVVJFX1JUTSwgZnMpICkKKyAgICAgICAgICAgIF9fc2V0X2JpdChY
ODZfRkVBVFVSRV9SVE1fQUxXQVlTX0FCT1JULCBmcyk7CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIAogICAgIC8qCkBAIC00NzIsMjcgKzQ4OSwxMyBAQCBz
dGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX21heF9mZWF0dXJlX2Fk
anVzdG1lbnRzKHVpbnQzMl90ICpmcykKICAgICAgKi8KICAgICBfX3NldF9i
aXQoWDg2X0ZFQVRVUkVfSFRULCBmcyk7CiAgICAgX19zZXRfYml0KFg4Nl9G
RUFUVVJFX0NNUF9MRUdBQ1ksIGZzKTsKLQotICAgIC8qCi0gICAgICogVG8g
bWl0aWdhdGUgTmF0aXZlLUJISSwgb25lIG9wdGlvbiBpcyB0byB1c2UgYSBU
U1ggQWJvcnQgb24gY2FwYWJsZQotICAgICAqIHN5c3RlbXMuICBUaGlzIGlz
IHNhZmUgZXZlbiBpZiBSVE0gaGFzIGJlZW4gZGlzYWJsZWQgZm9yIG90aGVy
IHJlYXNvbnMKLSAgICAgKiB2aWEgTVNSX1RTWF97Q1RSTCxGT1JDRV9BQk9S
VH0uICBIb3dldmVyLCBhIGd1ZXN0IGtlcm5lbCBkb2Vzbid0IGdldCB0bwot
ICAgICAqIGtub3cgdGhpcyB0eXBlIG9mIGluZm9ybWF0aW9uLgotICAgICAq
Ci0gICAgICogVGhlcmVmb3JlIHRoZSBtZWFuaW5nIG9mIFJUTV9BTFdBWVNf
QUJPUlQgaGFzIGJlZW4gYWRqdXN0ZWQsIHRvIGluc3RlYWQKLSAgICAgKiBt
ZWFuICJYQkVHSU4gd29uJ3QgZmF1bHQiLiAgVGhpcyBpcyBlbm91Z2ggZm9y
IGEgZ3Vlc3Qga2VybmVsIHRvIG1ha2UKLSAgICAgKiBhbiBpbmZvcm1lZCBj
aG9pY2UgV1JUIG1pdGlnYXRpbmcgTmF0aXZlLUJISS4KLSAgICAgKgotICAg
ICAqIElmIFJUTS1jYXBhYmxlLCB3ZSBjYW4gcnVuIGEgVk0gd2hpY2ggaGFz
IHNlZW4gUlRNX0FMV0FZU19BQk9SVC4KLSAgICAgKi8KLSAgICBpZiAoIHRl
c3RfYml0KFg4Nl9GRUFUVVJFX1JUTSwgZnMpICkKLSAgICAgICAgX19zZXRf
Yml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNfQUJPUlQsIGZzKTsKIH0KIAog
c3RhdGljIHZvaWQgX19pbml0IGd1ZXN0X2NvbW1vbl9kZWZhdWx0X2ZlYXR1
cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQogewotICAgIGlmICggYm9v
dF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfSU5URUwgKQor
ICAgIHN3aXRjaCAoIGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciApCiAgICAg
eworICAgIGNhc2UgWDg2X1ZFTkRPUl9JTlRFTDoKICAgICAgICAgLyoKICAg
ICAgICAgICogSXZ5QnJpZGdlIGNsaWVudCBwYXJ0cyBzdWZmZXIgZnJvbSBs
ZWFrYWdlIG9mIFJEUkFORCBkYXRhIGR1ZSB0byBTUkJEUwogICAgICAgICAg
KiAoWFNBLTMyMCAvIENWRS0yMDIwLTA1NDMpLCBhbmQgd29uJ3QgYmUgcmVj
ZWl2aW5nIG1pY3JvY29kZSB0bwpAQCAtNTM2LDYgKzUzOSwyMyBAQCBzdGF0
aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9h
ZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICAgICAgICAgYm9vdF9j
cHVfZGF0YS54ODZfbW9kZWwgPT0gSU5URUxfRkFNNl9TS1lMQUtFX1ggJiYK
ICAgICAgICAgICAgICByYXdfY3B1X3BvbGljeS5mZWF0LmNsd2IgKQogICAg
ICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfQ0xXQiwgZnMpOwor
CisgICAgICAgIC8qCisgICAgICAgICAqIE9uIGNlcnRhaW4gaGFyZHdhcmUs
IHNwZWN1bGF0aXZlIG9yIGVycmF0YSB3b3JrYXJvdW5kcyBjYW4gcmVzdWx0
CisgICAgICAgICAqIGluIFRTWCBiZWluZyBwbGFjZWQgaW4gImZvcmNlLWFi
b3J0IiBtb2RlLCB3aGVyZSBpdCBkb2Vzbid0CisgICAgICAgICAqIGFjdHVh
bGx5IGZ1bmN0aW9uIGFzIGV4cGVjdGVkLCBidXQgaXMgdGVjaG5pY2FsbHkg
Y29tcGF0aWJsZSB3aXRoCisgICAgICAgICAqIHRoZSBJU0EuCisgICAgICAg
ICAqCisgICAgICAgICAqIERvIG5vdCBhZHZlcnRpc2UgUlRNIHRvIGd1ZXN0
cyBieSBkZWZhdWx0IGlmIGl0IHdvbid0IGFjdHVhbGx5CisgICAgICAgICAq
IHdvcmsuICBJbnN0ZWFkLCBhZHZlcnRpc2UgUlRNX0FMV0FZU19BQk9SVCBp
bmRpY2F0aW5nIHRoYXQgVFNYCisgICAgICAgICAqIEFib3J0cyBhcmUgc2Fm
ZSB0byB1c2UsIGUuZy4gZm9yIG1pdGlnYXRpbmcgTmF0aXZlLUJISS4KKyAg
ICAgICAgICovCisgICAgICAgIGlmICggcnRtX2Rpc2FibGVkICkKKyAgICAg
ICAgeworICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfUlRN
LCBmcyk7CisgICAgICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfUlRN
X0FMV0FZU19BQk9SVCwgZnMpOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OwogICAgIH0KIAogICAgIC8qCkBAIC01NDcsMjEgKzU2Nyw2IEBAIHN0YXRp
YyB2b2lkIF9faW5pdCBndWVzdF9jb21tb25fZGVmYXVsdF9mZWF0dXJlX2Fk
anVzdG1lbnRzKHVpbnQzMl90ICpmcykKIAogICAgIGlmICggIWNwdV9oYXNf
Y21wX2xlZ2FjeSApCiAgICAgICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJF
X0NNUF9MRUdBQ1ksIGZzKTsKLQotICAgIC8qCi0gICAgICogT24gY2VydGFp
biBoYXJkd2FyZSwgc3BlY3VsYXRpdmUgb3IgZXJyYXRhIHdvcmthcm91bmRz
IGNhbiByZXN1bHQgaW4KLSAgICAgKiBUU1ggYmVpbmcgcGxhY2VkIGluICJm
b3JjZS1hYm9ydCIgbW9kZSwgd2hlcmUgaXQgZG9lc24ndCBhY3R1YWxseQot
ICAgICAqIGZ1bmN0aW9uIGFzIGV4cGVjdGVkLCBidXQgaXMgdGVjaG5pY2Fs
bHkgY29tcGF0aWJsZSB3aXRoIHRoZSBJU0EuCi0gICAgICoKLSAgICAgKiBE
byBub3QgYWR2ZXJ0aXNlIFJUTSB0byBndWVzdHMgYnkgZGVmYXVsdCBpZiBp
dCB3b24ndCBhY3R1YWxseSB3b3JrLgotICAgICAqIEluc3RlYWQsIGFkdmVy
dGlzZSBSVE1fQUxXQVlTX0FCT1JUIGluZGljYXRpbmcgdGhhdCBUU1ggQWJv
cnRzIGFyZSBzYWZlCi0gICAgICogdG8gdXNlLCBlLmcuIGZvciBtaXRpZ2F0
aW5nIE5hdGl2ZS1CSEkuCi0gICAgICovCi0gICAgaWYgKCBydG1fZGlzYWJs
ZWQgKQotICAgIHsKLSAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVf
UlRNLCBmcyk7Ci0gICAgICAgIF9fc2V0X2JpdChYODZfRkVBVFVSRV9SVE1f
QUxXQVlTX0FCT1JULCBmcyk7Ci0gICAgfQogfQogCiBzdGF0aWMgdm9pZCBf
X2luaXQgZ3Vlc3RfY29tbW9uX2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMy
X3QgKmZzKQo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-13.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-13.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxMCBTZXAgMjAyNCAxOTo1NToxNSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogSW5mcmFzdHJ1Y3R1cmUgZm9yIENQVUlE
IGxlYWYgMHg4MDAwMDAyMS5lY3gKClNpZ25lZC1vZmYtYnk6IEFuZHJldyBD
b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5
OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0
IGEvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcHVpZC5jIGIvdG9vbHMvbGli
cy9saWdodC9saWJ4bF9jcHVpZC5jCmluZGV4IDA2M2ZlODZlYjcyZi4uZjcz
OGUxN2IxOWU0IDEwMDY0NAotLS0gYS90b29scy9saWJzL2xpZ2h0L2xpYnhs
X2NwdWlkLmMKKysrIGIvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcHVpZC5j
CkBAIC0zNDIsNiArMzQyLDcgQEAgaW50IGxpYnhsX2NwdWlkX3BhcnNlX2Nv
bmZpZyhsaWJ4bF9jcHVpZF9wb2xpY3lfbGlzdCAqcG9saWN5LCBjb25zdCBj
aGFyKiBzdHIpCiAgICAgICAgIENQVUlEX0VOVFJZKDB4MDAwMDAwMDcsICAx
LCBDUFVJRF9SRUdfRURYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBhLCBD
UFVJRF9SRUdfRUFYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBhLCBDUFVJ
RF9SRUdfRURYKSwKKyAgICAgICAgQ1BVSURfRU5UUlkoMHg4MDAwMDAyMSwg
TkEsIENQVUlEX1JFR19FQ1gpLAogI3VuZGVmIE1TUl9FTlRSWQogI3VuZGVm
IENQVUlEX0VOVFJZCiAgICAgfTsKZGlmZiAtLWdpdCBhL3Rvb2xzL21pc2Mv
eGVuLWNwdWlkLmMgYi90b29scy9taXNjL3hlbi1jcHVpZC5jCmluZGV4IDRj
NDU5MzUyOGRmZS4uOGUzNmI4ZTY5NjAwIDEwMDY0NAotLS0gYS90b29scy9t
aXNjL3hlbi1jcHVpZC5jCisrKyBiL3Rvb2xzL21pc2MveGVuLWNwdWlkLmMK
QEAgLTM3LDYgKzM3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAg
eyAiQ1BVSUQgMHgwMDAwMDAwNzoxLmVkeCIsICAgICAiN2QxIiB9LAogICAg
IHsgIk1TUl9BUkNIX0NBUFMubG8iLCAgICAgICAgICJtMTBBbCIgfSwKICAg
ICB7ICJNU1JfQVJDSF9DQVBTLmhpIiwgICAgICAgICAibTEwQWgiIH0sCisg
ICAgeyAiQ1BVSUQgMHg4MDAwMDAyMS5lY3giLCAgICAgICJlMjFjIiB9LAog
fTsKIAogI2RlZmluZSBDT0xfQUxJR04gIjI0IgpkaWZmIC0tZ2l0IGEveGVu
L2FyY2gveDg2L2NwdS1wb2xpY3kuYyBiL3hlbi9hcmNoL3g4Ni9jcHUtcG9s
aWN5LmMKaW5kZXggYWYyYjRkN2ZhMDAwLi5mNDBiMjVjOTE2ODEgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMKKysrIGIveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYwpAQCAtMzI3LDcgKzMyNyw2IEBAIHN0YXRp
YyB2b2lkIHJlY2FsY3VsYXRlX21pc2Moc3RydWN0IGNwdV9wb2xpY3kgKnAp
CiAgICAgICAgIHAtPmV4dGQucmF3WzB4MWZdID0gRU1QVFlfTEVBRjsgLyog
U0VWICovCiAgICAgICAgIHAtPmV4dGQucmF3WzB4MjBdID0gRU1QVFlfTEVB
RjsgLyogUGxhdGZvcm0gUW9TICovCiAgICAgICAgIHAtPmV4dGQucmF3WzB4
MjFdLmIgPSAwOwotICAgICAgICBwLT5leHRkLnJhd1sweDIxXS5jID0gMDsK
ICAgICAgICAgcC0+ZXh0ZC5yYXdbMHgyMV0uZCA9IDA7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvY29t
bW9uLmMgYi94ZW4vYXJjaC94ODYvY3B1L2NvbW1vbi5jCmluZGV4IGZmNGNk
MjI4OTc5Ny4uZDRkMjFkYTljNTYwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94
ODYvY3B1L2NvbW1vbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvY29tbW9u
LmMKQEAgLTQ3OSw3ICs0NzksOSBAQCBzdGF0aWMgdm9pZCBnZW5lcmljX2lk
ZW50aWZ5KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIAlpZiAoYy0+ZXh0ZW5k
ZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAwMDAwOCkKIAkJYy0+eDg2X2NhcGFi
aWxpdHlbRkVBVFVSRVNFVF9lOGJdID0gY3B1aWRfZWJ4KDB4ODAwMDAwMDgp
OwogCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA+PSAweDgwMDAwMDIx
KQotCQljLT54ODZfY2FwYWJpbGl0eVtGRUFUVVJFU0VUX2UyMWFdID0gY3B1
aWRfZWF4KDB4ODAwMDAwMjEpOworCQljcHVpZCgweDgwMDAwMDIxLAorCQkg
ICAgICAmYy0+eDg2X2NhcGFiaWxpdHlbRkVBVFVSRVNFVF9lMjFhXSwgJnRt
cCwKKwkJICAgICAgJmMtPng4Nl9jYXBhYmlsaXR5W0ZFQVRVUkVTRVRfZTIx
Y10sICZ0bXApOwogCiAJLyogSW50ZWwtZGVmaW5lZCBmbGFnczogbGV2ZWwg
MHgwMDAwMDAwNyAqLwogCWlmIChjLT5jcHVpZF9sZXZlbCA+PSA3KSB7CmRp
ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVh
dHVyZXNldC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L2NwdWZl
YXR1cmVzZXQuaAppbmRleCAzYTJiNjQ2ZjAyNjguLjAzYWNkNDkzODdhYSAx
MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L2NwdWZl
YXR1cmVzZXQuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYv
Y3B1ZmVhdHVyZXNldC5oCkBAIC0zNjksNiArMzY5LDggQEAgWEVOX0NQVUZF
QVRVUkUoUkZEU19DTEVBUiwgICAgICAgICAxNiozMisyOCkgLyohQXwgUmVn
aXN0ZXIgRmlsZShzKSBjbGVhcmVkIGJ5IFYKIFhFTl9DUFVGRUFUVVJFKFBC
X09QVF9DVFJMLCAgICAgICAgMTYqMzIrMzIpIC8qICAgTVNSX1BCX09QVF9D
VFJMLklCUEJfQUxUICovCiBYRU5fQ1BVRkVBVFVSRShJVFNfTk8sICAgICAg
ICAgICAgIDE2KjMyKzYyKSAvKiFBIE5vIEluZGlyZWN0IFRhcmdldCBTZWxl
Y3Rpb24gKi8KIAorLyogQU1ELWRlZmluZWQgQ1BVIGZlYXR1cmVzLCBDUFVJ
RCBsZXZlbCAweDgwMDAwMDIxLmVjeCwgd29yZCAxOCAqLworCiAjZW5kaWYg
LyogWEVOX0NQVUZFQVRVUkUgKi8KIAogLyogQ2xlYW4gdXAgZnJvbSBhIGRl
ZmF1bHQgaW5jbHVkZS4gIENsb3NlIHRoZSBlbnVtIChmb3IgQykuICovCmRp
ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbGliL3g4Ni9jcHUtcG9saWN5
LmggYi94ZW4vaW5jbHVkZS94ZW4vbGliL3g4Ni9jcHUtcG9saWN5LmgKaW5k
ZXggNzUzYWM3ODExNGRhLi5hZTBkYjZmM2UxNmYgMTAwNjQ0Ci0tLSBhL3hl
bi9pbmNsdWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaAorKysgYi94ZW4v
aW5jbHVkZS94ZW4vbGliL3g4Ni9jcHUtcG9saWN5LmgKQEAgLTIyLDYgKzIy
LDcgQEAKICNkZWZpbmUgRkVBVFVSRVNFVF83ZDEgICAgICAgMTUgLyogMHgw
MDAwMDAwNzoxLmVkeCAgICAqLwogI2RlZmluZSBGRUFUVVJFU0VUX20xMEFs
ICAgICAxNiAvKiAweDAwMDAwMTBhLmVheCAgICAgICovCiAjZGVmaW5lIEZF
QVRVUkVTRVRfbTEwQWggICAgIDE3IC8qIDB4MDAwMDAxMGEuZWR4ICAgICAg
Ki8KKyNkZWZpbmUgRkVBVFVSRVNFVF9lMjFjICAgICAgMTggLyogMHg4MDAw
MDAyMS5lY3ggICAgICAqLwogCiBzdHJ1Y3QgY3B1aWRfbGVhZgogewpAQCAt
MzI4LDcgKzMyOSwxMSBAQCBzdHJ1Y3QgY3B1X3BvbGljeQogICAgICAgICAg
ICAgdWludDE2X3QgdWNvZGVfc2l6ZTsgLyogVW5pdHMgb2YgMTYgYnl0ZXMg
Ki8KICAgICAgICAgICAgIHVpbnQ4X3QgIHJhcF9zaXplOyAgIC8qIFVuaXRz
IG9mIDggZW50cmllcyAqLwogICAgICAgICAgICAgdWludDhfdCAgOjg7Ci0g
ICAgICAgICAgICB1aW50MzJfdCAvKiBjICovOjMyLCAvKiBkICovOjMyOwor
ICAgICAgICAgICAgdW5pb24geworICAgICAgICAgICAgICAgIHVpbnQzMl90
IGUyMWM7CisgICAgICAgICAgICAgICAgc3RydWN0IHsgREVDTF9CSVRGSUVM
RChlMjFjKTsgfTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICB1aW50
MzJfdCAvKiBkICovOjMyOwogICAgICAgICB9OwogICAgIH0gZXh0ZDsKIApk
aWZmIC0tZ2l0IGEveGVuL2xpYi94ODYvY3B1aWQuYyBiL3hlbi9saWIveDg2
L2NwdWlkLmMKaW5kZXggZWI3Njk4ZGM3MzI1Li42Mjk4ZDA1MWYyYTYgMTAw
NjQ0Ci0tLSBhL3hlbi9saWIveDg2L2NwdWlkLmMKKysrIGIveGVuL2xpYi94
ODYvY3B1aWQuYwpAQCAtODEsNiArODEsNyBAQCB2b2lkIHg4Nl9jcHVfcG9s
aWN5X3RvX2ZlYXR1cmVzZXQoCiAgICAgZnNbRkVBVFVSRVNFVF83ZDFdICAg
ICAgID0gcC0+ZmVhdC5fN2QxOwogICAgIGZzW0ZFQVRVUkVTRVRfbTEwQWxd
ICAgICA9IHAtPmFyY2hfY2Fwcy5sbzsKICAgICBmc1tGRUFUVVJFU0VUX20x
MEFoXSAgICAgPSBwLT5hcmNoX2NhcHMuaGk7CisgICAgZnNbRkVBVFVSRVNF
VF9lMjFjXSAgICAgID0gcC0+ZXh0ZC5lMjFjOwogfQogCiB2b2lkIHg4Nl9j
cHVfZmVhdHVyZXNldF90b19wb2xpY3koCkBAIC0xMDQsNiArMTA1LDcgQEAg
dm9pZCB4ODZfY3B1X2ZlYXR1cmVzZXRfdG9fcG9saWN5KAogICAgIHAtPmZl
YXQuXzdkMSAgICAgICAgICAgICA9IGZzW0ZFQVRVUkVTRVRfN2QxXTsKICAg
ICBwLT5hcmNoX2NhcHMubG8gICAgICAgICAgPSBmc1tGRUFUVVJFU0VUX20x
MEFsXTsKICAgICBwLT5hcmNoX2NhcHMuaGkgICAgICAgICAgPSBmc1tGRUFU
VVJFU0VUX20xMEFoXTsKKyAgICBwLT5leHRkLmUyMWMgICAgICAgICAgICAg
PSBmc1tGRUFUVVJFU0VUX2UyMWNdOwogfQogCiB2b2lkIHg4Nl9jcHVfcG9s
aWN5X3JlY2FsY19zeW50aChzdHJ1Y3QgY3B1X3BvbGljeSAqcCkK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-14.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-14.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBTZXAgMjAyNCAxMToyODozOSArMDEwMApTdWJq
ZWN0OiB4ODYvdWNvZGU6IERpZ2VzdHMgZm9yIFRTQSBtaWNyb2NvZGUKCkFN
RCBhcmUgcmVsZWFzaW5nIG1pY3JvY29kZSBmb3IgVFNBLCBzbyBleHRlbmQg
dGhlIGtub3duLXByb3ZlbmFuY2UgbGlzdCB3aXRoCnRoZWlyIGhhc2hlcy4g
IFRoZXNlIHdlcmUgcHJvZHVjZWQgYmVmb3JlIHRoZSByZW1lZGlhdGlvbiBv
ZiB0aGUgbWljcm9jb2RlCnNpZ25hdHVyZSBpc3N1ZXMgKHRoZSBlbnRyeXNp
Z24gdnVsbmVyYWJpbGl0eSksIHNvIGNhbiBiZSBPUy1sb2FkZWQgb24Kb3V0
LW9mLWRhdGUgZmlybXdhcmUuCgpJbmNsdWRlIGFuIG9mZi1ieS1kZWZhdWx0
IGNoZWNrIGZvciB0aGUgc29ydGVkLW5lc3Mgb2YgcGF0Y2hfZGlnZXN0c1td
LiAgSXQncwpub3Qgd29ydGggcnVubmluZyBnZW5lcmFsbHkgdW5kZXIgU0VM
Rl9URVNUUywgYnV0IGlzIHVzZWZ1bCB3aGVuIGVkaXRpbmcgdGhlCmRpZ2Vz
dCBsaXN0LgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NzEgLyBDVkUtMjAyNC0z
NjM1MCAvIENWRS0yMDI0LTM2MzU3LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQWNrZWQtYnk6
IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQg
YS94ZW4vYXJjaC94ODYvY3B1L21pY3JvY29kZS9hbWQtcGF0Y2gtZGlnZXN0
cy5jIGIveGVuL2FyY2gveDg2L2NwdS9taWNyb2NvZGUvYW1kLXBhdGNoLWRp
Z2VzdHMuYwppbmRleCBkMzI3NjEyMjY3MTIuLmQyYzRlMDE3OGExZSAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9taWNyb2NvZGUvYW1kLXBhdGNo
LWRpZ2VzdHMuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L21pY3JvY29kZS9h
bWQtcGF0Y2gtZGlnZXN0cy5jCkBAIC04MCw2ICs4MCwxNSBAQAogICAgICAg
ICAweDBkLCAweDViLCAweDY1LCAweDM0LCAweDY5LCAweGIyLCAweDYyLCAw
eDIxLAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGEwMDEx
ZDcsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHgzNSwgMHgwNywgMHhj
ZCwgMHg0MCwgMHg5NCwgMHhiYywgMHg4MSwgMHg2YiwKKyAgICAgICAgMHhm
YywgMHg2MSwgMHg1NiwgMHgxYSwgMHhlMiwgMHhkYiwgMHg5NiwgMHgxMiwK
KyAgICAgICAgMHgxYywgMHgxYywgMHgzMSwgMHhiMSwgMHgwMiwgMHg2Ziwg
MHhlNSwgMHhkMiwKKyAgICAgICAgMHhmZSwgMHgxYiwgMHgwNCwgMHgwMywg
MHgyYywgMHg4ZiwgMHg0YywgMHgzNiwKKyAgICB9LAorfSwKIHsKICAgICAu
cGF0Y2hfaWQgPSAweDBhMDAxMjM4LAogICAgIC5kaWdlc3QgPSB7CkBAIC04
OSw2ICs5OCwxNSBAQAogICAgICAgICAweGMwLCAweGNkLCAweDMzLCAweGYy
LCAweDhkLCAweGY5LCAweGVmLCAweDU5LAogICAgIH0sCiB9LAoreworICAg
IC5wYXRjaF9pZCA9IDB4MGEwMDEyM2IsCisgICAgLmRpZ2VzdCA9IHsKKyAg
ICAgICAgMHhlZiwgMHhhMSwgMHgxZSwgMHg3MSwgMHhmMSwgMHhjMywgMHgy
YywgMHhlMiwKKyAgICAgICAgMHhjMywgMHhlZiwgMHg2OSwgMHg0MSwgMHg3
YSwgMHg1NCwgMHhjYSwgMHhjMywKKyAgICAgICAgMHg4ZiwgMHg2MiwgMHg4
NCwgMHhlZSwgMHhjMiwgMHgzOSwgMHhkOSwgMHgyOCwKKyAgICAgICAgMHg5
NSwgMHhhNywgMHgxMiwgMHg0OSwgMHgxZSwgMHgzMCwgMHg3MSwgMHg3MiwK
KyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhMDA4MjBjLAog
ICAgIC5kaWdlc3QgPSB7CkBAIC05OCw2ICsxMTYsMTUgQEAKICAgICAgICAg
MHhlMSwgMHgzYiwgMHg4ZCwgMHhiMiwgMHhmOCwgMHgyMiwgMHgwMywgMHhl
MiwKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBhMDA4MjBk
LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4ZjksIDB4MmEsIDB4YzAs
IDB4ZjQsIDB4OWUsIDB4YTQsIDB4ODcsIDB4YTQsCisgICAgICAgIDB4N2Qs
IDB4ODcsIDB4MDAsIDB4ZmQsIDB4YWIsIDB4ZGEsIDB4MTksIDB4Y2EsCisg
ICAgICAgIDB4MjYsIDB4NTEsIDB4MzIsIDB4YzEsIDB4NTcsIDB4OTEsIDB4
ZGYsIDB4YzEsCisgICAgICAgIDB4MDUsIDB4ZWIsIDB4MDEsIDB4N2MsIDB4
NWEsIDB4OTUsIDB4MjEsIDB4YjcsCisgICAgfSwKK30sCiB7CiAgICAgLnBh
dGNoX2lkID0gMHgwYTEwMTE0OCwKICAgICAuZGlnZXN0ID0gewpAQCAtMTA3
LDYgKzEzNCwxNSBAQAogICAgICAgICAweGYxLCAweDVlLCAweGIwLCAweGRl
LCAweGI0LCAweDk4LCAweGFlLCAweGM0LAogICAgIH0sCiB9LAoreworICAg
IC5wYXRjaF9pZCA9IDB4MGExMDExNGMsCisgICAgLmRpZ2VzdCA9IHsKKyAg
ICAgICAgMHg5ZSwgMHhiNiwgMHhhMiwgMHhkOSwgMHg4NywgMHgzOCwgMHhj
NSwgMHg2NCwKKyAgICAgICAgMHhkOCwgMHg4OCwgMHhmYSwgMHg3OCwgMHg5
OCwgMHhmOSwgMHg2ZiwgMHg3NCwKKyAgICAgICAgMHgzOSwgMHg5MCwgMHgx
YiwgMHhhNSwgMHhjZiwgMHg1ZSwgMHhiNCwgMHgyYSwKKyAgICAgICAgMHgw
MiwgMHhmZiwgMHhkNCwgMHg4YywgMHg3MSwgMHg4YiwgMHhlMiwgMHhjMCwK
KyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhMTAxMjQ4LAog
ICAgIC5kaWdlc3QgPSB7CkBAIC0xMTYsNiArMTUyLDE1IEBACiAgICAgICAg
IDB4MWIsIDB4N2QsIDB4NjQsIDB4OWQsIDB4NGIsIDB4NTMsIDB4MTMsIDB4
NzUsCiAgICAgfSwKIH0sCit7CisgICAgLnBhdGNoX2lkID0gMHgwYTEwMTI0
YywKKyAgICAuZGlnZXN0ID0geworICAgICAgICAweDI5LCAweGVhLCAweGYx
LCAweDJjLCAweGIyLCAweGU0LCAweGVmLCAweDkwLAorICAgICAgICAweGE0
LCAweGNkLCAweDFkLCAweDg2LCAweDk3LCAweDE3LCAweDYxLCAweDQ2LAor
ICAgICAgICAweGZjLCAweDIyLCAweGNiLCAweDU3LCAweDc1LCAweDE5LCAw
eGM4LCAweGNjLAorICAgICAgICAweDBjLCAweGY1LCAweGJjLCAweGFjLCAw
eDgxLCAweDlkLCAweDlhLCAweGQyLAorICAgIH0sCit9LAogewogICAgIC5w
YXRjaF9pZCA9IDB4MGExMDgxMDgsCiAgICAgLmRpZ2VzdCA9IHsKQEAgLTEy
NSw2ICsxNzAsMTUgQEAKICAgICAgICAgMHgyOCwgMHgxZSwgMHg5YywgMHg1
OSwgMHg2OSwgMHg5OSwgMHg0ZCwgMHgxNiwKICAgICB9LAogfSwKK3sKKyAg
ICAucGF0Y2hfaWQgPSAweDBhMTA4MTA5LAorICAgIC5kaWdlc3QgPSB7Cisg
ICAgICAgIDB4ODUsIDB4YjQsIDB4YmQsIDB4N2MsIDB4NDksIDB4YTcsIDB4
YmQsIDB4ZmEsCisgICAgICAgIDB4NDksIDB4MzYsIDB4ODAsIDB4ODEsIDB4
YzUsIDB4YjcsIDB4MzksIDB4MWIsCisgICAgICAgIDB4OWEsIDB4YWEsIDB4
NTAsIDB4ZGUsIDB4OWIsIDB4ZTksIDB4MzIsIDB4MzUsCisgICAgICAgIDB4
NDIsIDB4N2UsIDB4NTEsIDB4NGYsIDB4NTIsIDB4MmMsIDB4MjgsIDB4NTks
CisgICAgfSwKK30sCiB7CiAgICAgLnBhdGNoX2lkID0gMHgwYTIwMTAyZCwK
ICAgICAuZGlnZXN0ID0gewpAQCAtMTM0LDYgKzE4OCwxNSBAQAogICAgICAg
ICAweDhjLCAweGU5LCAweDE5LCAweDNlLCAweGNjLCAweDNmLCAweDdiLCAw
eGI0LAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGEyMDEw
MmUsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHhiZSwgMHgxZiwgMHgz
MiwgMHgwNCwgMHgwZCwgMHgzYywgMHg5YywgMHhkZCwKKyAgICAgICAgMHhl
MSwgMHhhNCwgMHhiZiwgMHg3NiwgMHgzYSwgMHhlYywgMHhjMiwgMHhmNiwK
KyAgICAgICAgMHgxMSwgMHgwMCwgMHhhNywgMHhhZiwgMHgwZiwgMHhlNSwg
MHgwMiwgMHhjNSwKKyAgICAgICAgMHg1NCwgMHgzYSwgMHgxZiwgMHg4Yywg
MHgxNiwgMHhiNSwgMHhmZiwgMHhiZSwKKyAgICB9LAorfSwKIHsKICAgICAu
cGF0Y2hfaWQgPSAweDBhMjAxMjEwLAogICAgIC5kaWdlc3QgPSB7CkBAIC0x
NDMsNiArMjA2LDE1IEBACiAgICAgICAgIDB4ZjcsIDB4NTUsIDB4ZjAsIDB4
MTMsIDB4YmIsIDB4MjIsIDB4ZjYsIDB4NDEsCiAgICAgfSwKIH0sCit7Cisg
ICAgLnBhdGNoX2lkID0gMHgwYTIwMTIxMSwKKyAgICAuZGlnZXN0ID0gewor
ICAgICAgICAweDY5LCAweGExLCAweDE3LCAweGVjLCAweGQwLCAweGY2LCAw
eDZjLCAweDk1LAorICAgICAgICAweGUyLCAweDFlLCAweGM1LCAweDU5LCAw
eDFhLCAweDUyLCAweDBhLCAweDI3LAorICAgICAgICAweGM0LCAweGVkLCAw
eGQ1LCAweDU5LCAweDFmLCAweGJmLCAweDAwLCAweGZmLAorICAgICAgICAw
eDA4LCAweDg4LCAweGI1LCAweGUxLCAweDEyLCAweGI2LCAweGNjLCAweDI3
LAorICAgIH0sCit9LAogewogICAgIC5wYXRjaF9pZCA9IDB4MGE0MDQxMDcs
CiAgICAgLmRpZ2VzdCA9IHsKQEAgLTE1Miw2ICsyMjQsMTUgQEAKICAgICAg
ICAgMHgxMywgMHhiYywgMHhjNSwgMHgyNSwgMHhlNCwgMHhjNSwgMHhjMywg
MHg5OSwKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBhNDA0
MTA4LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4NjksIDB4NjcsIDB4
NDMsIDB4MDYsIDB4ZjgsIDB4MGMsIDB4NjIsIDB4ZGMsCisgICAgICAgIDB4
YTQsIDB4MjEsIDB4MzAsIDB4NGYsIDB4MGYsIDB4MjEsIDB4MmMsIDB4Y2Is
CisgICAgICAgIDB4Y2MsIDB4MzcsIDB4ZjEsIDB4MWMsIDB4YzMsIDB4Zjgs
IDB4MmYsIDB4MTksCisgICAgICAgIDB4ZGYsIDB4NTMsIDB4NTMsIDB4NDYs
IDB4YjEsIDB4MTUsIDB4ZWEsIDB4MDAsCisgICAgfSwKK30sCiB7CiAgICAg
LnBhdGNoX2lkID0gMHgwYTUwMDAxMSwKICAgICAuZGlnZXN0ID0gewpAQCAt
MTYxLDYgKzI0MiwxNSBAQAogICAgICAgICAweDExLCAweDVlLCAweDk2LCAw
eDdlLCAweDcxLCAweGU5LCAweGZjLCAweDc0LAogICAgIH0sCiB9LAorewor
ICAgIC5wYXRjaF9pZCA9IDB4MGE1MDAwMTIsCisgICAgLmRpZ2VzdCA9IHsK
KyAgICAgICAgMHhlYiwgMHg3NCwgMHgwZCwgMHg0NywgMHhhMSwgMHg4ZSwg
MHgwOSwgMHhlNCwKKyAgICAgICAgMHg5MywgMHg0YywgMHhhZCwgMHgwMywg
MHgzMiwgMHg0YywgMHgzOCwgMHgxNiwKKyAgICAgICAgMHgxMCwgMHgzOSwg
MHhkZCwgMHgwNiwgMHhhYSwgMHhjZSwgMHhkNiwgMHgwZiwKKyAgICAgICAg
MHg2MiwgMHg4MywgMHg5ZCwgMHg4ZSwgMHg2NCwgMHg1NSwgMHhiZSwgMHg2
MywKKyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhNjAxMjA5
LAogICAgIC5kaWdlc3QgPSB7CkBAIC0xNzAsNiArMjYwLDE1IEBACiAgICAg
ICAgIDB4ZTgsIDB4NzMsIDB4ZTIsIDB4ZDYsIDB4ZGIsIDB4ZDIsIDB4Nzcs
IDB4MWQsCiAgICAgfSwKIH0sCit7CisgICAgLnBhdGNoX2lkID0gMHgwYTYw
MTIwYSwKKyAgICAuZGlnZXN0ID0geworICAgICAgICAweDBjLCAweDhiLCAw
eDNkLCAweGZkLCAweDUyLCAweDUyLCAweDg1LCAweDdkLAorICAgICAgICAw
eDIwLCAweDNhLCAweGUxLCAweDdlLCAweGE0LCAweDIxLCAweDNiLCAweDdi
LAorICAgICAgICAweDE3LCAweDg2LCAweGFlLCAweGFjLCAweDEzLCAweGI4
LCAweDYzLCAweDlkLAorICAgICAgICAweDA2LCAweDAxLCAweGQwLCAweGEw
LCAweDUxLCAweDlhLCAweDkxLCAweDJjLAorICAgIH0sCit9LAogewogICAg
IC5wYXRjaF9pZCA9IDB4MGE3MDQxMDcsCiAgICAgLmRpZ2VzdCA9IHsKQEAg
LTE3OSw2ICsyNzgsMTUgQEAKICAgICAgICAgMHg2NCwgMHgzOSwgMHg3MSwg
MHg4YywgMHhjZSwgMHhlNywgMHg0MSwgMHgzOSwKICAgICB9LAogfSwKK3sK
KyAgICAucGF0Y2hfaWQgPSAweDBhNzA0MTA4LAorICAgIC5kaWdlc3QgPSB7
CisgICAgICAgIDB4ZDcsIDB4NTUsIDB4MTUsIDB4MmIsIDB4ZmUsIDB4YzQs
IDB4YmMsIDB4OTMsCisgICAgICAgIDB4ZWMsIDB4OTEsIDB4YTAsIDB4YWUs
IDB4NDUsIDB4YjcsIDB4YzMsIDB4OTgsCisgICAgICAgIDB4NGUsIDB4ZmYs
IDB4NjEsIDB4NzcsIDB4ODgsIDB4YzIsIDB4NzAsIDB4NDksCisgICAgICAg
IDB4ZTAsIDB4M2EsIDB4MWQsIDB4ODQsIDB4MzgsIDB4NTIsIDB4YmYsIDB4
NWEsCisgICAgfSwKK30sCiB7CiAgICAgLnBhdGNoX2lkID0gMHgwYTcwNTIw
NiwKICAgICAuZGlnZXN0ID0gewpAQCAtMTg4LDYgKzI5NiwxNSBAQAogICAg
ICAgICAweDAzLCAweDM1LCAweGU5LCAweGJlLCAweGZiLCAweDA2LCAweGRm
LCAweGZjLAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGE3
MDUyMDgsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHgzMCwgMHgxZCwg
MHg1NSwgMHgyNCwgMHhiYywgMHg2YiwgMHg1YSwgMHgxOSwKKyAgICAgICAg
MHgwYywgMHg3ZCwgMHgxZCwgMHg3NCwgMHhhYSwgMHhkMSwgMHhlYiwgMHhk
MiwKKyAgICAgICAgMHgxNiwgMHg2MiwgMHhmNywgMHg1YiwgMHhlMSwgMHgx
ZiwgMHgxOCwgMHgxMSwKKyAgICAgICAgMHg1YywgMHhmMCwgMHg5NCwgMHg5
MCwgMHgyNiwgMHhlYywgMHg2OSwgMHhmZiwKKyAgICB9LAorfSwKIHsKICAg
ICAucGF0Y2hfaWQgPSAweDBhNzA4MDA3LAogICAgIC5kaWdlc3QgPSB7CkBA
IC0xOTcsNiArMzE0LDE1IEBACiAgICAgICAgIDB4ZGYsIDB4OTIsIDB4NzMs
IDB4ODQsIDB4ODcsIDB4M2MsIDB4NzMsIDB4OTMsCiAgICAgfSwKIH0sCit7
CisgICAgLnBhdGNoX2lkID0gMHgwYTcwODAwOCwKKyAgICAuZGlnZXN0ID0g
eworICAgICAgICAweDA4LCAweDZlLCAweGYwLCAweDIyLCAweDRiLCAweDhl
LCAweGM0LCAweDQ2LAorICAgICAgICAweDU4LCAweDM0LCAweGU2LCAweDQ3
LCAweGEyLCAweDI4LCAweGZkLCAweGFiLAorICAgICAgICAweDIyLCAweDNk
LCAweGRkLCAweGQ4LCAweDUyLCAweDllLCAweDFkLCAweDE2LAorICAgICAg
ICAweGZhLCAweDAxLCAweDY4LCAweDE0LCAweDc5LCAweDNlLCAweGU4LCAw
eDZiLAorICAgIH0sCit9LAogewogICAgIC5wYXRjaF9pZCA9IDB4MGE3MGMw
MDUsCiAgICAgLmRpZ2VzdCA9IHsKQEAgLTIwNiw2ICszMzIsMTUgQEAKICAg
ICAgICAgMHhlZSwgMHg0OSwgMHhhYywgMHhlMSwgMHg4YiwgMHgxMywgMHhj
NSwgMHgxMywKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBh
NzBjMDA4LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4MGYsIDB4ZGIs
IDB4MzcsIDB4YTEsIDB4MTAsIDB4YWYsIDB4ZDQsIDB4MjEsCisgICAgICAg
IDB4OTQsIDB4MGQsIDB4YTQsIDB4YTIsIDB4ZTksIDB4ODYsIDB4NmMsIDB4
MGUsCisgICAgICAgIDB4ODUsIDB4N2MsIDB4MzYsIDB4MzAsIDB4YTMsIDB4
M2EsIDB4NzgsIDB4NjYsCisgICAgICAgIDB4MTgsIDB4MTAsIDB4NjAsIDB4
MGQsIDB4NzgsIDB4M2QsIDB4NDQsIDB4ZDAsCisgICAgfSwKK30sCiB7CiAg
ICAgLnBhdGNoX2lkID0gMHgwYWEwMDExNiwKICAgICAuZGlnZXN0ID0gewpA
QCAtMjI0LDMgKzM1OSwxMiBAQAogICAgICAgICAweDY4LCAweDJmLCAweDQ2
LCAweGVlLCAweGZlLCAweGM2LCAweDZkLCAweGVmLAogICAgIH0sCiB9LAor
eworICAgIC5wYXRjaF9pZCA9IDB4MGFhMDAyMTYsCisgICAgLmRpZ2VzdCA9
IHsKKyAgICAgICAgMHg3OSwgMHhmYiwgMHg1YiwgMHg5ZiwgMHhiNiwgMHhl
NiwgMHhhOCwgMHhmNSwKKyAgICAgICAgMHg0ZSwgMHg3YywgMHg0ZiwgMHg4
ZSwgMHgxZCwgMHhhZCwgMHhkMCwgMHgwOCwKKyAgICAgICAgMHhjMiwgMHg0
MywgMHg3YywgMHg4YiwgMHhlNiwgMHhkYiwgMHhkMCwgMHhkMiwKKyAgICAg
ICAgMHhlOCwgMHgzOSwgMHgyNiwgMHhjMSwgMHhlNSwgMHg1YSwgMHg0OCwg
MHhmMSwKKyAgICB9LAorfSwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9j
cHUvbWljcm9jb2RlL2FtZC5jIGIveGVuL2FyY2gveDg2L2NwdS9taWNyb2Nv
ZGUvYW1kLmMKaW5kZXggNGYyMzZlNDM5OTI5Li5mMjVkNzRmY2NiYTIgMTAw
NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWljcm9jb2RlL2FtZC5jCisr
KyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWljcm9jb2RlL2FtZC5jCkBAIC01MjEs
MyArNTIxLDE4IEBAIHZvaWQgX19pbml0IHVjb2RlX3Byb2JlX2FtZChzdHJ1
Y3QgbWljcm9jb2RlX29wcyAqb3BzKQogCiAgICAgKm9wcyA9IGFtZF91Y29k
ZV9vcHM7CiB9CisKKyNpZiAwIC8qIE1hbnVhbCBDT05GSUdfU0VMRl9URVNU
UyAqLworc3RhdGljIHZvaWQgX19pbml0IF9fY29uc3RydWN0b3IgdGVzdF9k
aWdlc3RzX3NvcnRlZCh2b2lkKQoreworICAgIGZvciAoIHVuc2lnbmVkIGlu
dCBpID0gMTsgaSA8IEFSUkFZX1NJWkUocGF0Y2hfZGlnZXN0cyk7ICsraSAp
CisgICAgeworICAgICAgICBpZiAoIHBhdGNoX2RpZ2VzdHNbaSAtIDFdLnBh
dGNoX2lkIDwgcGF0Y2hfZGlnZXN0c1tpXS5wYXRjaF9pZCApCisgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICBwYW5pYygicGF0Y2hfZGlnZXN0
c1tdIG5vdCBzb3J0ZWQ6ICUwOHggPj0gJTA4eFxuIiwKKyAgICAgICAgICAg
ICAgcGF0Y2hfZGlnZXN0c1tpIC0gMV0ucGF0Y2hfaWQsCisgICAgICAgICAg
ICAgIHBhdGNoX2RpZ2VzdHNbaV0ucGF0Y2hfaWQpOworICAgIH0KK30KKyNl
bmRpZiAvKiBDT05GSUdfU0VMRl9URVNUUyAqLwo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-15.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-15.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogV2VkLCAyIEFwciAyMDI1IDAzOjE4OjU5ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZWFycmFuZ2UgVkVSVyBhbmQgTU9OSVRPUiBpbiBt
d2FpdF9pZGxlX3dpdGhfaGludHMoKQoKSW4gb3JkZXIgdG8gbWl0aWdhdGUg
VFNBLCBYZW4gd2lsbCBuZWVkIHRvIGlzc3VlIFZFUlcgYmVmb3JlIGdvaW5n
IGlkbGUuCgpPbiBBTUQgQ1BVcywgdGhlIFZFUlcgc2NydWJiaW5nIHNpZGUg
ZWZmZWN0cyBjYW5jZWwgYW4gYWN0aXZlIE1PTklUT1IsIGNhdXNpbmcKdGhl
IE1XQUlUIHRvIGV4aXQgd2l0aG91dCBlbnRlcmluZyBhbiBpZGxlIHN0YXRl
LiAgVGhlcmVmb3JlIHRoZSBWRVJXIG11c3QgYmUKYWhlYWQgb2YgTU9OSVRP
Ui4KClNwbGl0IHNwZWNfY3RybF9lbnRlcl9pZGxlKCkgaW4gdHdvIGFuZCBh
bGxvdyB0aGUgVkVSVyBhc3BlY3QgdG8gYmUgaGFuZGxlZApzZXBhcmF0ZWx5
LiAgV2hpbGUgYWRqdXN0aW5nLCB1cGRhdGUgYSBzdGFsZSBjb21tZW50IGNv
bmNlcm5pbmcgTVNCRFM7IG1vcmUKaXNzdWVzIGhhdmUgYmVlbiBtaXRpZ2F0
ZWQgdXNpbmcgVkVSVyBzaW5jZSBpdCB3YXMgd3JpdHRlbi4KCkJ5IG1vdmlu
ZyBWRVJXIGVhcmxpZXIsIGl0IGlzIGFoZWFkIG9mIHRoZSBkZXRlcm1pbmF0
aW9uIG9mIHdoZXRoZXIgdG8gZ28KaWRsZS4gIFdlIGNhbid0IG1vdmUgdGhl
IGNoZWNrIG9uIHNvZnRpcnFfcGVuZGluZyAoZm9yIGNvcnJlY3RuZXNzIHJl
YXNvbnMpLApidXQgd2UgY2FuIGR1cGxpY2F0ZSBpdCBlYXJsaWVyIGFzIGEg
YmVzdCBlZmZvcnQgYXR0ZW1wdCB0byBza2lwIHRoZQpzcGVjdWxhdGl2ZSBv
dmVyaGVhZC4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDcxIC8gQ1ZFLTIwMjQt
MzYzNTAgLyBDVkUtMjAyNC0zNjM1Ny4KClNpZ25lZC1vZmYtYnk6IEFuZHJl
dyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2Vk
LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0t
Z2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBiL3hlbi9hcmNo
L3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXggNjk4NTdhNThlZjVhLi4xMDQ1
ZDg3ZWVkMTIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9p
ZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYwpAQCAt
NDYyLDkgKzQ2MiwxOCBAQCBfX2luaXRjYWxsKGNwdV9pZGxlX2tleV9pbml0
KTsKIHZvaWQgbXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBl
YXgsIHVuc2lnbmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNw
dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKyAgICBzdHJ1Y3QgY3B1X2luZm8g
KmluZm8gPSBnZXRfY3B1X2luZm8oKTsKICAgICBpcnFfY3B1c3RhdF90ICpz
dGF0ID0gJmlycV9zdGF0W2NwdV07CiAgICAgY29uc3QgdW5zaWduZWQgaW50
ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZzdGF0LT5fX3NvZnRpcnFfcGVu
ZGluZzsKIAorICAgIC8qCisgICAgICogSGV1cmlzdGljOiBpZiB3ZSdyZSBk
ZWZpbml0ZWx5IG5vdCBnb2luZyB0byBpZGxlLCBiYWlsIGVhcmx5IGFzIHRo
ZQorICAgICAqIHNwZWN1bGF0aXZlIHNhZmV0eSBjYW4gYmUgZXhwZW5zaXZl
LiAgVGhpcyBpcyBhIHBlcmZvcm1hbmNlCisgICAgICogY29uc2lkZXJhdGlv
biBub3QgYSBjb3JyZWN0bmVzcyBpc3N1ZS4KKyAgICAgKi8KKyAgICBpZiAo
ICp0aGlzX3NvZnRpcnFfcGVuZGluZyApCisgICAgICAgIHJldHVybjsKKwog
ICAgIC8qCiAgICAgICogQnkgc2V0dGluZyBpbl9td2FpdCwgd2UgcHJvbWlz
ZSB0byBvdGhlciBDUFVzIHRoYXQgd2UnbGwgbm90aWNlIGNoYW5nZXMKICAg
ICAgKiB0byBfX3NvZnRpcnFfcGVuZGluZyB3aXRob3V0IGJlaW5nIHNlbnQg
YW4gSVBJLiAgV2UgYWNoaWV2ZSB0aGlzIGJ5CkBAIC00NzgsMTUgKzQ4Nywx
OSBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQg
ZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogICAgICAgICAgICAgICAgICAgICIi
LCBYODZfQlVHX01PTklUT1IsCiAgICAgICAgICAgICAgICAgICAgW2luX213
YWl0XSAiPW0iIChzdGF0LT5pbl9td2FpdCkpOwogCisgICAgLyoKKyAgICAg
KiBPbiBBTUQgc3lzdGVtcywgc2lkZSBlZmZlY3RzIGZyb20gVkVSVyBjYW5j
ZWwgTU9OSVRPUiwgY2F1c2luZyBNV0FJVCB0bworICAgICAqIHdha2UgdXAg
aW1tZWRpYXRlbHkuICBUaGVyZWZvcmUsIFZFUlcgbXVzdCBjb21lIGFoZWFk
IG9mIE1PTklUT1IuCisgICAgICovCisgICAgX19zcGVjX2N0cmxfZW50ZXJf
aWRsZV92ZXJ3KGluZm8pOworCiAgICAgbW9uaXRvcih0aGlzX3NvZnRpcnFf
cGVuZGluZywgMCwgMCk7CiAKICAgICBBU1NFUlQoIWxvY2FsX2lycV9pc19l
bmFibGVkKCkpOwogCiAgICAgaWYgKCAhKnRoaXNfc29mdGlycV9wZW5kaW5n
ICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdl
dF9jcHVfaW5mbygpOwotCi0gICAgICAgIHNwZWNfY3RybF9lbnRlcl9pZGxl
KGluZm8pOworICAgICAgICBfX3NwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8s
IGZhbHNlIC8qIFZFUlcgaGFuZGxlZCBhYm92ZSAqLyk7CiAKICAgICAgICAg
aWYgKCBlY3ggJiBNV0FJVF9FQ1hfSU5URVJSVVBUX0JSRUFLICkKICAgICAg
ICAgICAgIG13YWl0KGVheCwgZWN4KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9zcGVjX2N0cmwuaCBiL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zcGVjX2N0cmwuaAppbmRleCAwNzcyMjU0MTg5NTYuLjY3
MjRkMzgxMjAyOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3NwZWNfY3RybC5oCisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9zcGVjX2N0cmwuaApAQCAtMTE1LDggKzExNSwyMiBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgaW5pdF9zaGFkb3dfc3BlY19jdHJsX3N0YXRlKHZvaWQpCiAg
ICAgaW5mby0+dmVyd19zZWwgPSBfX0hZUEVSVklTT1JfRFMzMjsKIH0KIAor
c3RhdGljIGFsd2F5c19pbmxpbmUgdm9pZCBfX3NwZWNfY3RybF9lbnRlcl9p
ZGxlX3Zlcncoc3RydWN0IGNwdV9pbmZvICppbmZvKQoreworICAgIC8qCisg
ICAgICogRmx1c2gvc2NydWIgc3RydWN0dXJlcyB3aGljaCBhcmUgc3RhdGlj
YWxseSBwYXJ0aXRpb25lZCBiZXR3ZWVuIGFjdGl2ZQorICAgICAqIHRocmVh
ZHMuICBPdGhlcndpc2UgZGF0YSBvZiBvdXJzIChvZiB1bmtub3duIHNlbnNp
dGl2aXR5KSB3aWxsIGJlY29tZQorICAgICAqIGF2YWlsYWJsZSB0byBvdXIg
c2libGluZyB3aGVuIHdlIGdvIGlkbGUuCisgICAgICoKKyAgICAgKiBOb3Rl
OiBWRVJXIG11c3QgYmUgZW5jb2RlZCB3aXRoIGEgbWVtb3J5IG9wZXJhbmQs
IGFzIGl0IGlzIG9ubHkgdGhhdAorICAgICAqIGZvcm0gd2l0aCBzaWRlIGVm
ZmVjdHMuCisgICAgICovCisgICAgYWx0ZXJuYXRpdmVfaW5wdXQoIiIsICJ2
ZXJ3ICVbc2VsXSIsIFg4Nl9GRUFUVVJFX1NDX1ZFUldfSURMRSwKKyAgICAg
ICAgICAgICAgICAgICAgICBbc2VsXSAibSIgKGluZm8tPnZlcndfc2VsKSk7
Cit9CisKIC8qIFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBu
b3Qgc2FmZSBhZnRlciB0aGlzIGNhbGwuICovCi1zdGF0aWMgYWx3YXlzX2lu
bGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9pZGxlKHN0cnVjdCBjcHVfaW5m
byAqaW5mbykKK3N0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgX19zcGVjX2N0
cmxfZW50ZXJfaWRsZShzdHJ1Y3QgY3B1X2luZm8gKmluZm8sIGJvb2wgdmVy
dykKIHsKICAgICB1aW50MzJfdCB2YWwgPSAwOwogCkBAIC0xMzUsMjEgKzE0
OSw4IEBAIHN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgc3BlY19jdHJsX2Vu
dGVyX2lkbGUoc3RydWN0IGNwdV9pbmZvICppbmZvKQogICAgICAgICAgICAg
ICAgICAgICAgICJhIiAodmFsKSwgImMiIChNU1JfU1BFQ19DVFJMKSwgImQi
ICgwKSk7CiAgICAgYmFycmllcigpOwogCi0gICAgLyoKLSAgICAgKiBNaWNy
b2FyY2hpdGVjdHVyYWwgU3RvcmUgQnVmZmVyIERhdGEgU2FtcGxpbmc6Ci0g
ICAgICoKLSAgICAgKiBPbiB2dWxuZXJhYmxlIHN5c3RlbXMsIHN0b3JlIGJ1
ZmZlciBlbnRyaWVzIGFyZSBzdGF0aWNhbGx5IHBhcnRpdGlvbmVkCi0gICAg
ICogYmV0d2VlbiBhY3RpdmUgdGhyZWFkcy4gIFdoZW4gZW50ZXJpbmcgaWRs
ZSwgb3VyIHN0b3JlIGJ1ZmZlciBlbnRyaWVzCi0gICAgICogYXJlIHJlLXBh
cnRpdGlvbmVkIHRvIGFsbG93IHRoZSBvdGhlciB0aHJlYWRzIHRvIHVzZSB0
aGVtLgotICAgICAqCi0gICAgICogRmx1c2ggdGhlIGJ1ZmZlcnMgdG8gZW5z
dXJlIHRoYXQgbm8gc2Vuc2l0aXZlIGRhdGEgb2Ygb3VycyBjYW4gYmUKLSAg
ICAgKiBsZWFrZWQgYnkgYSBzaWJsaW5nIGFmdGVyIGl0IGdldHMgb3VyIHN0
b3JlIGJ1ZmZlciBlbnRyaWVzLgotICAgICAqCi0gICAgICogTm90ZTogVkVS
VyBtdXN0IGJlIGVuY29kZWQgd2l0aCBhIG1lbW9yeSBvcGVyYW5kLCBhcyBp
dCBpcyBvbmx5IHRoYXQKLSAgICAgKiBmb3JtIHdoaWNoIGNhdXNlcyBhIGZs
dXNoLgotICAgICAqLwotICAgIGFsdGVybmF0aXZlX2lucHV0KCIiLCAidmVy
dyAlW3NlbF0iLCBYODZfRkVBVFVSRV9TQ19WRVJXX0lETEUsCi0gICAgICAg
ICAgICAgICAgICAgICAgW3NlbF0gIm0iIChpbmZvLT52ZXJ3X3NlbCkpOwor
ICAgIGlmICggdmVydyApIC8qIEV4cGVjdGVkIHRvIGJlIGNvbnN0LXByb3Bh
Z2F0ZWQuICovCisgICAgICAgIF9fc3BlY19jdHJsX2VudGVyX2lkbGVfdmVy
dyhpbmZvKTsKIAogICAgIC8qCiAgICAgICogQ3Jvc3MtVGhyZWFkIFJldHVy
biBBZGRyZXNzIFByZWRpY3Rpb25zOgpAQCAtMTY3LDYgKzE2OCwxMiBAQCBz
dGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9pZGxl
KHN0cnVjdCBjcHVfaW5mbyAqaW5mbykKICAgICAgICAgICAgICAgICAgICAg
ICA6ICJyYXgiLCAicmN4Iik7CiB9CiAKKy8qIFdBUk5JTkchIGByZXRgLCBg
Y2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBhZnRlciB0aGlzIGNhbGwuICov
CitzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9p
ZGxlKHN0cnVjdCBjcHVfaW5mbyAqaW5mbykKK3sKKyAgICBfX3NwZWNfY3Ry
bF9lbnRlcl9pZGxlKGluZm8sIHRydWUgLyogVkVSVyAqLyk7Cit9CisKIC8q
IFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBi
ZWZvcmUgdGhpcyBjYWxsLiAqLwogc3RhdGljIGFsd2F5c19pbmxpbmUgdm9p
ZCBzcGVjX2N0cmxfZXhpdF9pZGxlKHN0cnVjdCBjcHVfaW5mbyAqaW5mbykK
IHsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-16.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-16.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVGh1LCAyOSBBdWcgMjAyNCAxNzozNjoxMSArMDEwMApTdWJq
ZWN0OiB4ODYvc3BlYy1jdHJsOiBNaXRpZ2F0ZSBUcmFuc2l0aXZlIFNjaGVk
dWxlciBBdHRhY2tzCgpUU0EgYWZmZWN0cyBBTUQgRmFtMTloIENQVXMgKFpl
bjMgYW5kIDQgbWljcm9hcmNoaXRlY3R1cmVzKS4KClRocmVlIG5ldyBDUFVJ
RCBiaXRzIGhhdmUgYmVlbiBkZWZpbmVkLiAgVHdvIChUU0FfU1FfTk8gYW5k
IFRTQV9MMV9OTykKaW5kaWNhdGUgdGhhdCB0aGUgc3lzdGVtIGlzIHVuYWZm
ZWN0ZWQsIGFuZCBtdXN0IGJlIHN5bnRoZXNpc2VkIGJ5IFhlbiBvbgp1bmFm
ZmVjdGVkIHBhcnRzIHRvIGRhdGUuCgpBIHRoaXJkIG5ldyBiaXQgaW5kaWNh
dGVzIHRoYXQgVkVSVyBub3cgaGFzIGEgZmx1c2hpbmcgc2lkZSBlZmZlY3Qu
ICBYZW4KbXVzdCBzeW50aGVzaXNlIHRoaXMgYml0IG9uIGFmZmVjdGVkIHN5
c3RlbXMgYmFzZWQgb24gbWljcm9jb2RlIHZlcnNpb24uCkFzIHdpdGggb3Ro
ZXIgVkVSVy1iYXNlZCBmbHVzaGluZyBmZWF0dXJlcywgVkVSV19DTEVBUiBu
ZWVkcyBPUi1pbmcgYWNyb3NzCmEgcmVzb3VyY2UgcG9vbCwgYW5kIGd1ZXN0
cyB3aGljaCBoYXZlIHNlZW4gaXQgY2FuIHNhZmVseSBtaWdyYXRlIGluLgoK
VGhpcyBpcyBwYXJ0IG9mIFhTQS00NzEgLyBDVkUtMjAyNC0zNjM1MCAvIENW
RS0yMDI0LTM2MzU3LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBC
ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQgYS94ZW4v
YXJjaC94ODYvY3B1LXBvbGljeS5jIGIveGVuL2FyY2gveDg2L2NwdS1wb2xp
Y3kuYwppbmRleCBmNDBiMjVjOTE2ODEuLmM1OTRmMDVlYTliMiAxMDA2NDQK
LS0tIGEveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYworKysgYi94ZW4vYXJj
aC94ODYvY3B1LXBvbGljeS5jCkBAIC00NzcsNiArNDc3LDE3IEBAIHN0YXRp
YyB2b2lkIF9faW5pdCBndWVzdF9jb21tb25fbWF4X2ZlYXR1cmVfYWRqdXN0
bWVudHModWludDMyX3QgKmZzKQogICAgICAgICBpZiAoIHRlc3RfYml0KFg4
Nl9GRUFUVVJFX1JUTSwgZnMpICkKICAgICAgICAgICAgIF9fc2V0X2JpdChY
ODZfRkVBVFVSRV9SVE1fQUxXQVlTX0FCT1JULCBmcyk7CiAgICAgICAgIGJy
ZWFrOworCisgICAgY2FzZSBYODZfVkVORE9SX0FNRDoKKyAgICAgICAgLyoK
KyAgICAgICAgICogVGhpcyBiaXQgaW5kaWNhdGVzIHRoYXQgdGhlIFZFUlcg
aW5zdHJ1Y3Rpb24gbWF5IGhhdmUgZ2FpbmVkCisgICAgICAgICAqIHNjcnVi
YmluZyBzaWRlIGVmZmVjdHMuICBXaXRoIHBvb2xpbmcsIGl0IG1lYW5zICJ5
b3UgbWlnaHQgbWlncmF0ZQorICAgICAgICAgKiBzb21ld2hlcmUgd2hlcmUg
c2NydWJiaW5nIGlzIG5lY2Vzc2FyeSIsIGFuZCBtYXkgbmVlZCBleHBvc2lu
ZyBvbgorICAgICAgICAgKiB1bmFmZmVjdGVkIGhhcmR3YXJlLiAgVGhpcyBp
cyBmaW5lLCBiZWNhdXNlIHRoZSBWRVJXIGluc3RydWN0aW9uCisgICAgICAg
ICAqIGhhcyBiZWVuIGFyb3VuZCBzaW5jZSB0aGUgMjg2LgorICAgICAgICAg
Ki8KKyAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX1ZFUldfQ0xFQVIs
IGZzKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgLyoKQEAgLTU1
NSw2ICs1NjYsMTcgQEAgc3RhdGljIHZvaWQgX19pbml0IGd1ZXN0X2NvbW1v
bl9kZWZhdWx0X2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQog
ICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNf
QUJPUlQsIGZzKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKKworICAg
IGNhc2UgWDg2X1ZFTkRPUl9BTUQ6CisgICAgICAgIC8qCisgICAgICAgICAq
IFRoaXMgYml0IGluZGljYXRlIHRoYXQgdGhlIFZFUlcgaW5zdHJ1Y3Rpb24g
bWF5IGhhdmUgZ2FpbmVkCisgICAgICAgICAqIHNjcnViYmluZyBzaWRlIGVm
ZmVjdHMuICBUaGUgbWF4IHBvbGljeSBoYXMgaXQgc2V0IGZvciBtaWdyYXRp
b24KKyAgICAgICAgICogcmVhc29ucywgc28gcmVzZXQgdGhlIGRlZmF1bHQg
cG9saWN5IGJhY2sgdG8gdGhlIGhvc3QgdmFsdWUgaW4gY2FzZQorICAgICAg
ICAgKiB3ZSdyZSB1bmFmZmVjdGVkLgorICAgICAgICAgKi8KKyAgICAgICAg
aWYgKCAhY3B1X2hhc192ZXJ3X2NsZWFyICkKKyAgICAgICAgICAgIF9fY2xl
YXJfYml0KFg4Nl9GRUFUVVJFX1ZFUldfQ0xFQVIsIGZzKTsKKyAgICAgICAg
YnJlYWs7CiAgICAgfQogCiAgICAgLyoKZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L3g4Ni9odm0vc3ZtL2VudHJ5LlMgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9l
bnRyeS5TCmluZGV4IDkxZWRiMzM0NTkzOC4uNjEwYzY0YmY0Yzk3IDEwMDY0
NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9lbnRyeS5TCisrKyBiL3hl
bi9hcmNoL3g4Ni9odm0vc3ZtL2VudHJ5LlMKQEAgLTk5LDYgKzk5LDggQEAg
X19VTkxJS0VMWV9FTkQobnN2bV9oYXApCiAgICAgICAgIHBvcCAgJXJzaQog
ICAgICAgICBwb3AgICVyZGkKIAorICAgICAgICBTUEVDX0NUUkxfQ09ORF9W
RVJXICAgICAvKiBSZXE6ICVyc3A9ZWZyYW1lICAgICAgICAgICAgICAgICAg
ICBDbG9iOiBlZmwgKi8KKwogICAgICAgICB2bXJ1bgogCiAgICAgICAgIFNB
VkVfQUxMCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20v
Y3B1ZmVhdHVyZS5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZl
YXR1cmUuaAppbmRleCA1ZTEwOTBhNTQ3MGIuLmFkNTBlNTM1NmE0OSAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUu
aAorKysgYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5o
CkBAIC0xOTYsNiArMTk2LDcgQEAgc3RhdGljIGlubGluZSBib29sIGJvb3Rf
Y3B1X2hhcyh1bnNpZ25lZCBpbnQgZmVhdCkKIAogLyogQ1BVSUQgbGV2ZWwg
MHg4MDAwMDAyMS5lYXggKi8KICNkZWZpbmUgY3B1X2hhc19sZmVuY2VfZGlz
cGF0Y2ggYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0xGRU5DRV9ESVNQQVRD
SCkKKyNkZWZpbmUgY3B1X2hhc192ZXJ3X2NsZWFyICAgICAgYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX1ZFUldfQ0xFQVIpCiAjZGVmaW5lIGNwdV9oYXNf
bnNjYiAgICAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9OU0NC
KQogCiAvKiBDUFVJRCBsZXZlbCAweDAwMDAwMDA3OjEuZWR4ICovCkBAIC0y
MjMsNiArMjI0LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBib290X2NwdV9o
YXModW5zaWduZWQgaW50IGZlYXQpCiAjZGVmaW5lIGNwdV9oYXNfcGJfb3B0
X2N0cmwgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9QQl9PUFRfQ1RS
TCkKICNkZWZpbmUgY3B1X2hhc19pdHNfbm8gICAgICAgICAgYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX0lUU19OTykKIAorLyogQ1BVSUQgbGV2ZWwgMHg4
MDAwMDAyMS5lY3ggKi8KKyNkZWZpbmUgY3B1X2hhc190c2Ffc3Ffbm8gICAg
ICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1RTQV9TUV9OTykKKyNkZWZp
bmUgY3B1X2hhc190c2FfbDFfbm8gICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9G
RUFUVVJFX1RTQV9MMV9OTykKKwogLyogU3ludGhlc2l6ZWQuICovCiAjZGVm
aW5lIGNwdV9oYXNfYXJjaF9wZXJmbW9uICAgIGJvb3RfY3B1X2hhcyhYODZf
RkVBVFVSRV9BUkNIX1BFUkZNT04pCiAjZGVmaW5lIGNwdV9oYXNfY3B1aWRf
ZmF1bHRpbmcgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9DUFVJRF9GQVVM
VElORykKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYyBi
L3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYwppbmRleCBmYTQ0NGNhYWJiMDku
LmVmMTk4YzIyMTEzOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NwZWNf
Y3RybC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYwpAQCAtNDky
LDcgKzQ5Miw3IEBAIGN1c3RvbV9wYXJhbSgicHYtbDF0ZiIsIHBhcnNlX3B2
X2wxdGYpOwogCiBzdGF0aWMgdm9pZCBfX2luaXQgcHJpbnRfZGV0YWlscyhl
bnVtIGluZF90aHVuayB0aHVuaykKIHsKLSAgICB1bnNpZ25lZCBpbnQgXzdk
MCA9IDAsIF83ZDIgPSAwLCBlOGIgPSAwLCBlMjFhID0gMCwgbWF4ID0gMCwg
dG1wOworICAgIHVuc2lnbmVkIGludCBfN2QwID0gMCwgXzdkMiA9IDAsIGU4
YiA9IDAsIGUyMWEgPSAwLCBlMjFjID0gMCwgbWF4ID0gMCwgdG1wOwogICAg
IHVpbnQ2NF90IGNhcHMgPSAwOwogCiAgICAgLyogQ29sbGVjdCBkaWFnbm9z
dGljcyBhYm91dCBhdmFpbGFibGUgbWl0aWdhdGlvbnMuICovCkBAIC01MDMs
NyArNTAzLDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHByaW50X2RldGFpbHMo
ZW51bSBpbmRfdGh1bmsgdGh1bmspCiAgICAgaWYgKCBib290X2NwdV9kYXRh
LmV4dGVuZGVkX2NwdWlkX2xldmVsID49IDB4ODAwMDAwMDhVICkKICAgICAg
ICAgY3B1aWQoMHg4MDAwMDAwOFUsICZ0bXAsICZlOGIsICZ0bXAsICZ0bXAp
OwogICAgIGlmICggYm9vdF9jcHVfZGF0YS5leHRlbmRlZF9jcHVpZF9sZXZl
bCA+PSAweDgwMDAwMDIxVSApCi0gICAgICAgIGNwdWlkKDB4ODAwMDAwMjFV
LCAmZTIxYSwgJnRtcCwgJnRtcCwgJnRtcCk7CisgICAgICAgIGNwdWlkKDB4
ODAwMDAwMjFVLCAmZTIxYSwgJnRtcCwgJmUyMWMsICZ0bXApOwogICAgIGlm
ICggY3B1X2hhc19hcmNoX2NhcHMgKQogICAgICAgICByZG1zcmwoTVNSX0FS
Q0hfQ0FQQUJJTElUSUVTLCBjYXBzKTsKIApAQCAtNTEzLDcgKzUxMyw3IEBA
IHN0YXRpYyB2b2lkIF9faW5pdCBwcmludF9kZXRhaWxzKGVudW0gaW5kX3Ro
dW5rIHRodW5rKQogICAgICAqIEhhcmR3YXJlIHJlYWQtb25seSBpbmZvcm1h
dGlvbiwgc3RhdGluZyBpbW11bml0eSB0byBjZXJ0YWluIGlzc3Vlcywgb3IK
ICAgICAgKiBzdWdnZXN0aW9ucyBvZiB3aGljaCBtaXRpZ2F0aW9uIHRvIHVz
ZS4KICAgICAgKi8KLSAgICBwcmludGsoIiAgSGFyZHdhcmUgaGludHM6JXMl
cyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVz
XG4iLAorICAgIHByaW50aygiICBIYXJkd2FyZSBoaW50czolcyVzJXMlcyVz
JXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzXG4i
LAogICAgICAgICAgICAoY2FwcyAmIEFSQ0hfQ0FQU19SRENMX05PKSAgICAg
ICAgICAgICAgICAgICAgICAgID8gIiBSRENMX05PIiAgICAgICAgOiAiIiwK
ICAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUFNfRUlCUlMpICAgICAgICAg
ICAgICAgICAgICAgICAgICA/ICIgRUlCUlMiICAgICAgICAgIDogIiIsCiAg
ICAgICAgICAgIChjYXBzICYgQVJDSF9DQVBTX1JTQkEpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPyAiIFJTQkEiICAgICAgICAgICA6ICIiLApAQCAt
NTM4LDEwICs1MzgsMTIgQEAgc3RhdGljIHZvaWQgX19pbml0IHByaW50X2Rl
dGFpbHMoZW51bSBpbmRfdGh1bmsgdGh1bmspCiAgICAgICAgICAgIChlOGIg
ICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX0lCUEJfUkVUKSkgICAgICAg
PyAiIElCUEJfUkVUIiAgICAgICA6ICIiLAogICAgICAgICAgICAoZTIxYSAm
IGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9JQlBCX0JSVFlQRSkpICAgID8g
IiBJQlBCX0JSVFlQRSIgICAgOiAiIiwKICAgICAgICAgICAgKGUyMWEgJiBj
cHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfU1JTT19OTykpICAgICAgICA/ICIg
U1JTT19OTyIgICAgICAgIDogIiIsCi0gICAgICAgICAgIChlMjFhICYgY3B1
ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NSU09fVVNfTk8pKSAgICAgPyAiIFNS
U09fVVNfTk8iICAgICA6ICIiKTsKKyAgICAgICAgICAgKGUyMWEgJiBjcHVm
ZWF0X21hc2soWDg2X0ZFQVRVUkVfU1JTT19VU19OTykpICAgICA/ICIgU1JT
T19VU19OTyIgICAgIDogIiIsCisgICAgICAgICAgIChlMjFjICYgY3B1ZmVh
dF9tYXNrKFg4Nl9GRUFUVVJFX1RTQV9TUV9OTykpICAgICAgPyAiIFRTQV9T
UV9OTyIgICAgICA6ICIiLAorICAgICAgICAgICAoZTIxYyAmIGNwdWZlYXRf
bWFzayhYODZfRkVBVFVSRV9UU0FfTDFfTk8pKSAgICAgID8gIiBUU0FfTDFf
Tk8iICAgICAgOiAiIik7CiAKICAgICAvKiBIYXJkd2FyZSBmZWF0dXJlcyB3
aGljaCBuZWVkIGRyaXZpbmcgdG8gbWl0aWdhdGUgaXNzdWVzLiAqLwotICAg
IHByaW50aygiICBIYXJkd2FyZSBmZWF0dXJlczolcyVzJXMlcyVzJXMlcyVz
JXMlcyVzJXMlcyVzJXNcbiIsCisgICAgcHJpbnRrKCIgIEhhcmR3YXJlIGZl
YXR1cmVzOiVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzXG4iLAog
ICAgICAgICAgICAoZThiICAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9J
QlBCKSkgfHwKICAgICAgICAgICAgKF83ZDAgJiBjcHVmZWF0X21hc2soWDg2
X0ZFQVRVUkVfSUJSU0IpKSAgICAgICAgICA/ICIgSUJQQiIgICAgICAgICAg
IDogIiIsCiAgICAgICAgICAgIChlOGIgICYgY3B1ZmVhdF9tYXNrKFg4Nl9G
RUFUVVJFX0lCUlMpKSB8fApAQCAtNTYxLDcgKzU2Myw4IEBAIHN0YXRpYyB2
b2lkIF9faW5pdCBwcmludF9kZXRhaWxzKGVudW0gaW5kX3RodW5rIHRodW5r
KQogICAgICAgICAgICAoY2FwcyAmIEFSQ0hfQ0FQU19HRFNfQ1RSTCkgICAg
ICAgICAgICAgICAgICAgICAgID8gIiBHRFNfQ1RSTCIgICAgICAgOiAiIiwK
ICAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUFNfUkZEU19DTEVBUikgICAg
ICAgICAgICAgICAgICAgICA/ICIgUkZEU19DTEVBUiIgICAgIDogIiIsCiAg
ICAgICAgICAgIChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NC
UEIpKSAgICAgICAgICAgPyAiIFNCUEIiICAgICAgICAgICA6ICIiLAotICAg
ICAgICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9TUlNP
X01TUl9GSVgpKSAgID8gIiBTUlNPX01TUl9GSVgiICAgOiAiIik7CisgICAg
ICAgICAgIChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NSU09f
TVNSX0ZJWCkpICAgPyAiIFNSU09fTVNSX0ZJWCIgICA6ICIiLAorICAgICAg
ICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9WRVJXX0NM
RUFSKSkgICAgID8gIiBWRVJXX0NMRUFSIiAgICAgOiAiIik7CiAKICAgICAv
KiBDb21waWxlZC1pbiBzdXBwb3J0IHdoaWNoIHBlcnRhaW5zIHRvIG1pdGln
YXRpb25zLiAqLwogICAgIGlmICggSVNfRU5BQkxFRChDT05GSUdfSU5ESVJF
Q1RfVEhVTkspIHx8IElTX0VOQUJMRUQoQ09ORklHX1NIQURPV19QQUdJTkcp
IHx8CkBAIC0xNTQ1LDYgKzE1NDgsNzcgQEAgc3RhdGljIHZvaWQgX19pbml0
IHJmZHNfY2FsY3VsYXRpb25zKHZvaWQpCiAgICAgc2V0dXBfZm9yY2VfY3B1
X2NhcChYODZfRkVBVFVSRV9SRkRTX05PKTsKIH0KIAorLyoKKyAqIFRyYW5z
aWVudCBTY2hlZHVsZXIgQXR0YWNrcworICoKKyAqIGh0dHBzOi8vd3d3LmFt
ZC5jb20vY29udGVudC9kYW0vYW1kL2VuL2RvY3VtZW50cy9yZXNvdXJjZXMv
YnVsbGV0aW4vdGVjaG5pY2FsLWd1aWRhbmNlLWZvci1taXRpZ2F0aW5nLXRy
YW5zaWVudC1zY2hlZHVsZXItYXR0YWNrcy5wZGYKKyAqLworc3RhdGljIHZv
aWQgX19pbml0IHRzYV9jYWxjdWxhdGlvbnModm9pZCkKK3sKKyAgICB1bnNp
Z25lZCBpbnQgY3Vycl9yZXYsIG1pbl9yZXY7CisKKyAgICAvKiBUU0EgaXMg
b25seSBrbm93biB0byBhZmZlY3QgQU1EIHByb2Nlc3NvcnMgYXQgdGhpcyB0
aW1lLiAqLworICAgIGlmICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yICE9
IFg4Nl9WRU5ET1JfQU1EICkKKyAgICAgICAgcmV0dXJuOworCisgICAgLyog
SWYgd2UncmUgdmlydHVhbGlzZWQsIGRvbid0IGF0dGVtcHQgdG8gc3ludGhl
c2lzZSBhbnl0aGluZy4gKi8KKyAgICBpZiAoIGNwdV9oYXNfaHlwZXJ2aXNv
ciApCisgICAgICAgIHJldHVybjsKKworICAgIC8qCisgICAgICogQWNjb3Jk
aW5nIHRvIHRoZSB3aGl0ZXBhcGVyLCBzb21lIEZhbTFBIENQVXMgKE1vZGVs
cyAweDAwLi4uMHg0ZiwKKyAgICAgKiAweDYwLi4uMHg3ZikgYXJlIG5vdCB2
dWxuZXJhYmxlIGJ1dCBkb24ndCBlbnVtZXJhdGUgVFNBX3tTUSxMMX1fTk8u
ICBJZgorICAgICAqIHdlIHNlZSBlaXRoZXIgZW51bWVyYXRlZCwgYXNzdW1l
IGJvdGggYXJlIGNvcnJlY3QgLi4uCisgICAgICovCisgICAgaWYgKCBjcHVf
aGFzX3RzYV9zcV9ubyB8fCBjcHVfaGFzX3RzYV9sMV9ubyApCisgICAgICAg
IHJldHVybjsKKworICAgIC8qCisgICAgICogLi4uIG90aGVyd2lzZSwgc3lu
dGhlc2lzZSB0aGVtLiAgQ1BVcyBvdGhlciB0aGFuIEZhbTE5IChaZW4zLzQp
IGFyZQorICAgICAqIHN0YXRlZCB0byBiZSBub3QgdnVsbmVyYWJsZS4KKyAg
ICAgKi8KKyAgICBpZiAoIGJvb3RfY3B1X2RhdGEueDg2ICE9IDB4MTkgKQor
ICAgIHsKKyAgICAgICAgc2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVS
RV9UU0FfU1FfTk8pOworICAgICAgICBzZXR1cF9mb3JjZV9jcHVfY2FwKFg4
Nl9GRUFUVVJFX1RTQV9MMV9OTyk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICAvKgorICAgICAqIEZhbTE5IENQVXMgZ2V0IFZFUldfQ0xFQVIg
d2l0aCBuZXcgZW5vdWdoIG1pY3JvY29kZSwgYnV0IG11c3QKKyAgICAgKiBz
eW50aGVzaXNlIHRoZSBDUFVJRCBiaXQuCisgICAgICovCisgICAgY3Vycl9y
ZXYgPSB0aGlzX2NwdShjcHVfc2lnKS5yZXY7CisgICAgc3dpdGNoICggY3Vy
cl9yZXYgPj4gOCApCisgICAgeworICAgIGNhc2UgMHgwYTAwMTE6IG1pbl9y
ZXYgPSAweDBhMDAxMWQ3OyBicmVhazsKKyAgICBjYXNlIDB4MGEwMDEyOiBt
aW5fcmV2ID0gMHgwYTAwMTIzYjsgYnJlYWs7CisgICAgY2FzZSAweDBhMDA4
MjogbWluX3JldiA9IDB4MGEwMDgyMGQ7IGJyZWFrOworICAgIGNhc2UgMHgw
YTEwMTE6IG1pbl9yZXYgPSAweDBhMTAxMTRjOyBicmVhazsKKyAgICBjYXNl
IDB4MGExMDEyOiBtaW5fcmV2ID0gMHgwYTEwMTI0YzsgYnJlYWs7CisgICAg
Y2FzZSAweDBhMTA4MTogbWluX3JldiA9IDB4MGExMDgxMDk7IGJyZWFrOwor
ICAgIGNhc2UgMHgwYTIwMTA6IG1pbl9yZXYgPSAweDBhMjAxMDJlOyBicmVh
azsKKyAgICBjYXNlIDB4MGEyMDEyOiBtaW5fcmV2ID0gMHgwYTIwMTIxMTsg
YnJlYWs7CisgICAgY2FzZSAweDBhNDA0MTogbWluX3JldiA9IDB4MGE0MDQx
MDg7IGJyZWFrOworICAgIGNhc2UgMHgwYTUwMDA6IG1pbl9yZXYgPSAweDBh
NTAwMDEyOyBicmVhazsKKyAgICBjYXNlIDB4MGE2MDEyOiBtaW5fcmV2ID0g
MHgwYTYwMTIwYTsgYnJlYWs7CisgICAgY2FzZSAweDBhNzA0MTogbWluX3Jl
diA9IDB4MGE3MDQxMDg7IGJyZWFrOworICAgIGNhc2UgMHgwYTcwNTI6IG1p
bl9yZXYgPSAweDBhNzA1MjA4OyBicmVhazsKKyAgICBjYXNlIDB4MGE3MDgw
OiBtaW5fcmV2ID0gMHgwYTcwODAwODsgYnJlYWs7CisgICAgY2FzZSAweDBh
NzBjMDogbWluX3JldiA9IDB4MGE3MGMwMDg7IGJyZWFrOworICAgIGNhc2Ug
MHgwYWEwMDI6IG1pbl9yZXYgPSAweDBhYTAwMjE2OyBicmVhazsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcKKyAgICAg
ICAgICAgICAgICJVbnJlY29nbmlzZWQgQ1BVICUwMngtJTAyeC0lMDJ4LCB1
Y29kZSAweCUwOHggZm9yIFRTQSBtaXRpZ2F0aW9uXG4iLAorICAgICAgICAg
ICAgICAgYm9vdF9jcHVfZGF0YS54ODYsIGJvb3RfY3B1X2RhdGEueDg2X21v
ZGVsLAorICAgICAgICAgICAgICAgYm9vdF9jcHVfZGF0YS54ODZfbWFzaywg
Y3Vycl9yZXYpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KCBjdXJyX3JldiA+PSBtaW5fcmV2ICkKKyAgICAgICAgc2V0dXBfZm9yY2Vf
Y3B1X2NhcChYODZfRkVBVFVSRV9WRVJXX0NMRUFSKTsKK30KKwogc3RhdGlj
IGJvb2wgX19pbml0IGNwdV9oYXNfZ2RzKHZvaWQpCiB7CiAgICAgLyoKQEAg
LTIyMzgsNiArMjMxMiw3IEBAIHZvaWQgX19pbml0IGluaXRfc3BlY3VsYXRp
b25fbWl0aWdhdGlvbnModm9pZCkKICAgICAgKiBodHRwczovL3d3dy5pbnRl
bC5jb20vY29udGVudC93d3cvdXMvZW4vZGV2ZWxvcGVyL2FydGljbGVzL3Rl
Y2huaWNhbC9zb2Z0d2FyZS1zZWN1cml0eS1ndWlkYW5jZS90ZWNobmljYWwt
ZG9jdW1lbnRhdGlvbi9pbnRlbC1hbmFseXNpcy1taWNyb2FyY2hpdGVjdHVy
YWwtZGF0YS1zYW1wbGluZy5odG1sCiAgICAgICogaHR0cHM6Ly93d3cuaW50
ZWwuY29tL2NvbnRlbnQvd3d3L3VzL2VuL2RldmVsb3Blci9hcnRpY2xlcy90
ZWNobmljYWwvc29mdHdhcmUtc2VjdXJpdHktZ3VpZGFuY2UvdGVjaG5pY2Fs
LWRvY3VtZW50YXRpb24vcHJvY2Vzc29yLW1taW8tc3RhbGUtZGF0YS12dWxu
ZXJhYmlsaXRpZXMuaHRtbAogICAgICAqIGh0dHBzOi8vd3d3LmludGVsLmNv
bS9jb250ZW50L3d3dy91cy9lbi9kZXZlbG9wZXIvYXJ0aWNsZXMvdGVjaG5p
Y2FsL3NvZnR3YXJlLXNlY3VyaXR5LWd1aWRhbmNlL2Fkdmlzb3J5LWd1aWRh
bmNlL3JlZ2lzdGVyLWZpbGUtZGF0YS1zYW1wbGluZy5odG1sCisgICAgICog
aHR0cHM6Ly93d3cuYW1kLmNvbS9jb250ZW50L2RhbS9hbWQvZW4vZG9jdW1l
bnRzL3Jlc291cmNlcy9idWxsZXRpbi90ZWNobmljYWwtZ3VpZGFuY2UtZm9y
LW1pdGlnYXRpbmctdHJhbnNpZW50LXNjaGVkdWxlci1hdHRhY2tzLnBkZgog
ICAgICAqCiAgICAgICogUmVsZXZhbnQgdWNvZGVzOgogICAgICAqCkBAIC0y
MjcwLDkgKzIzNDUsMTggQEAgdm9pZCBfX2luaXQgaW5pdF9zcGVjdWxhdGlv
bl9taXRpZ2F0aW9ucyh2b2lkKQogICAgICAqCiAgICAgICogLSBNYXJjaCAy
MDIzLCBmb3IgUkZEUy4gIEVudW1lcmF0ZSBSRkRTX0NMRUFSIHRvIG1lYW4g
dGhhdCBWRVJXIG5vdwogICAgICAqICAgc2NydWJzIG5vbi1hcmNoaXRlY3R1
cmFsIGVudHJpZXMgZnJvbSBjZXJ0YWluIHJlZ2lzdGVyIGZpbGVzLgorICAg
ICAqCisgICAgICogLSBKdWx5IDIwMjUsIGZvciBUU0EuICBJbnRyb2R1Y2Vz
IFZFUlcgc2lkZSBlZmZlY3RzIHRvIG1pdGlnYXRlCisgICAgICogICBUU0Ff
e1NRL0wxfS4gIFhlbiBtdXN0IHN5bnRoZXNpc2UgdGhlIFZFUldfQ0xFQVIg
ZmVhdHVyZSBiYXNlZCBvbgorICAgICAqICAgbWljcm9jb2RlIHZlcnNpb24u
CisgICAgICoKKyAgICAgKiAgIE5vdGUsIHRoZXNlIG1pY3JvY29kZSB1cGRh
dGVzIHdlcmUgcHJvZHVjZWQgYmVmb3JlIHRoZSByZW1lZGlhdGlvbiBvZgor
ICAgICAqICAgdGhlIG1pY3JvY29kZSBzaWduYXR1cmUgaXNzdWVzLCBhbmQg
YXJlIGluY2x1ZGVkIGluIHRoZSBmaXJ3bWFyZQorICAgICAqICAgdXBkYXRl
cyBmaXhpbmcgdGhlIGVudHJ5c2lnbiB2dWxuZXJhYmlsaXR5IGZyb20gfkRl
Y2VtYmVyIDIwMjQuCiAgICAgICovCiAgICAgbWRzX2NhbGN1bGF0aW9ucygp
OwogICAgIHJmZHNfY2FsY3VsYXRpb25zKCk7CisgICAgdHNhX2NhbGN1bGF0
aW9ucygpOwogCiAgICAgLyoKICAgICAgKiBQYXJ0cyB3aGljaCBlbnVtZXJh
dGUgRkJfQ0xFQVIgYXJlIHRob3NlIHdpdGggbm93LXVwZGF0ZWQgbWljcm9j
b2RlCkBAIC0yMzA0LDIxICsyMzg4LDI3IEBAIHZvaWQgX19pbml0IGluaXRf
c3BlY3VsYXRpb25fbWl0aWdhdGlvbnModm9pZCkKICAgICAgKiBNTFBEUy9N
RkJEUyB3aGVuIFNNVCBpcyBlbmFibGVkLgogICAgICAqLwogICAgIGlmICgg
b3B0X3ZlcndfcHYgPT0gLTEgKQotICAgICAgICBvcHRfdmVyd19wdiA9IGNw
dV9oYXNfdXNlZnVsX21kX2NsZWFyIHx8IGNwdV9oYXNfcmZkc19jbGVhcjsK
KyAgICAgICAgb3B0X3ZlcndfcHYgPSAoY3B1X2hhc191c2VmdWxfbWRfY2xl
YXIgfHwgY3B1X2hhc19yZmRzX2NsZWFyIHx8CisgICAgICAgICAgICAgICAg
ICAgICAgIGNwdV9oYXNfdmVyd19jbGVhcik7CiAKICAgICBpZiAoIG9wdF92
ZXJ3X2h2bSA9PSAtMSApCi0gICAgICAgIG9wdF92ZXJ3X2h2bSA9IGNwdV9o
YXNfdXNlZnVsX21kX2NsZWFyIHx8IGNwdV9oYXNfcmZkc19jbGVhcjsKKyAg
ICAgICAgb3B0X3ZlcndfaHZtID0gKGNwdV9oYXNfdXNlZnVsX21kX2NsZWFy
IHx8IGNwdV9oYXNfcmZkc19jbGVhciB8fAorICAgICAgICAgICAgICAgICAg
ICAgICAgY3B1X2hhc192ZXJ3X2NsZWFyKTsKIAogICAgIC8qCi0gICAgICog
SWYgU01UIGlzIGFjdGl2ZSwgYW5kIHdlJ3JlIHByb3RlY3RpbmcgYWdhaW5z
dCBNRFMgb3IgTU1JTyBzdGFsZSBkYXRhLAorICAgICAqIElmIFNNVCBpcyBh
Y3RpdmUsIGFuZCB3ZSdyZSBwcm90ZWN0aW5nIGFnYWluc3QgYW55IG9mOgor
ICAgICAqICAgLSBNU0JEUworICAgICAqICAgLSBNTUlPIHN0YWxlIGRhdGEK
KyAgICAgKiAgIC0gVFNBLVNRCiAgICAgICogd2UgbmVlZCB0byBzY3J1YiBi
ZWZvcmUgZ29pbmcgaWRsZSBhcyB3ZWxsIGFzIG9uIHJldHVybiB0byBndWVz
dC4KICAgICAgKiBWYXJpb3VzIHBpcGVsaW5lIHJlc291cmNlcyBhcmUgcmVw
YXJ0aXRpb25lZCBhbW9uZ3N0IG5vbi1pZGxlIHRocmVhZHMuCiAgICAgICoK
LSAgICAgKiBXZSBkb24ndCBuZWVkIHRvIHNjcnViIG9uIGlkbGUgZm9yIFJG
RFMuICBUaGVyZSBhcmUgbm8gYWZmZWN0ZWQgY29yZXMKLSAgICAgKiB3aGlj
aCBzdXBwb3J0IFNNVCwgZGVzcGl0ZSB0aGVyZSBiZWluZyBhZmZlY3RlZCBj
b3JlcyBpbiBoeWJyaWQgc3lzdGVtcwotICAgICAqIHdoaWNoIGhhdmUgU01U
IGVsc2V3aGVyZSBpbiB0aGUgcGxhdGZvcm0uCisgICAgICogV2UgZG9uJ3Qg
bmVlZCB0byBzY3J1YiBvbiBpZGxlIGZvcjoKKyAgICAgKiAgIC0gUkZEUyAo
bm8gU01UIGFmZmVjdGVkIGNvcmVzKQorICAgICAqICAgLSBUU0EtTDEgKHV0
YWdzIG5ldmVyIHNoYXJlZCBiZXR3ZWVuIHRocmVhZHMpCiAgICAgICovCiAg
ICAgaWYgKCAoKGNwdV9oYXNfdXNlZnVsX21kX2NsZWFyICYmIChvcHRfdmVy
d19wdiB8fCBvcHRfdmVyd19odm0pKSB8fAorICAgICAgICAgIChjcHVfaGFz
X3ZlcndfY2xlYXIgJiYgIWNwdV9oYXNfdHNhX3NxX25vKSB8fAogICAgICAg
ICAgIG9wdF92ZXJ3X21taW8pICYmIGh3X3NtdF9lbmFibGVkICkKICAgICAg
ICAgc2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVSRV9TQ19WRVJXX0lE
TEUpOwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14
ODYvY3B1ZmVhdHVyZXNldC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gt
eDg2L2NwdWZlYXR1cmVzZXQuaAppbmRleCAwM2FjZDQ5Mzg3YWEuLjRlYTZk
OTVjN2FjNiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gt
eDg2L2NwdWZlYXR1cmVzZXQuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMv
YXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCkBAIC0zMDIsNiArMzAyLDcgQEAg
WEVOX0NQVUZFQVRVUkUoQVZYX0lGTUEsICAgICAxMCozMisyMykgLypBICBB
VlgtSUZNQSBJbnN0cnVjdGlvbnMgKi8KIFhFTl9DUFVGRUFUVVJFKE5PX05F
U1RfQlAsICAgICAgICAgMTEqMzIrIDApIC8qQSAgTm8gTmVzdGVkIERhdGEg
QnJlYWtwb2ludHMgKi8KIFhFTl9DUFVGRUFUVVJFKEZTX0dTX05TLCAgICAg
ICAgICAgMTEqMzIrIDEpIC8qU3wgRlMvR1MgYmFzZSBNU1JzIG5vbi1zZXJp
YWxpc2luZyAqLwogWEVOX0NQVUZFQVRVUkUoTEZFTkNFX0RJU1BBVENILCAg
ICAxMSozMisgMikgLypBICBMRkVOQ0UgYWx3YXlzIHNlcmlhbGl6aW5nICov
CitYRU5fQ1BVRkVBVFVSRShWRVJXX0NMRUFSLCAgICAgICAgIDExKjMyKyA1
KSAvKiFBfCBWRVJXIGNsZWFycyBtaWNyb2FyY2hpdGVjdHVyYWwgYnVmZmVy
cyAqLwogWEVOX0NQVUZFQVRVUkUoTlNDQiwgICAgICAgICAgICAgICAxMSoz
MisgNikgLypBICBOdWxsIFNlbGVjdG9yIENsZWFycyBCYXNlIChhbmQgbGlt
aXQgdG9vKSAqLwogWEVOX0NQVUZFQVRVUkUoQVVUT19JQlJTLCAgICAgICAg
ICAxMSozMisgOCkgLypTICBBdXRvbWF0aWMgSUJSUyAqLwogWEVOX0NQVUZF
QVRVUkUoQU1EX0ZTUlMsICAgICAgICAgICAxMSozMisxMCkgLypBICBGYXN0
IFNob3J0IFJFUCBTVE9TQiAqLwpAQCAtMzcwLDYgKzM3MSw4IEBAIFhFTl9D
UFVGRUFUVVJFKFBCX09QVF9DVFJMLCAgICAgICAgMTYqMzIrMzIpIC8qICAg
TVNSX1BCX09QVF9DVFJMLklCUEJfQUxUICovCiBYRU5fQ1BVRkVBVFVSRShJ
VFNfTk8sICAgICAgICAgICAgIDE2KjMyKzYyKSAvKiFBIE5vIEluZGlyZWN0
IFRhcmdldCBTZWxlY3Rpb24gKi8KIAogLyogQU1ELWRlZmluZWQgQ1BVIGZl
YXR1cmVzLCBDUFVJRCBsZXZlbCAweDgwMDAwMDIxLmVjeCwgd29yZCAxOCAq
LworWEVOX0NQVUZFQVRVUkUoVFNBX1NRX05PLCAgICAgICAgICAxOCozMisg
MSkgLypBICBObyBTdG9yZSBRdWV1ZSBUcmFuc2l0aXZlIFNjaGVkdWxlciBB
dHRhY2tzICovCitYRU5fQ1BVRkVBVFVSRShUU0FfTDFfTk8sICAgICAgICAg
IDE4KjMyKyAyKSAvKkEgIE5vIEwxRCBUcmFuc2l0aXZlIFNjaGVkdWxlciBB
dHRhY2tzICovCiAKICNlbmRpZiAvKiBYRU5fQ1BVRkVBVFVSRSAqLwogCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-01.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-01.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEFwciAyMDI1IDE0OjU5OjAxICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBNb3ZlIG1vbml0b3IoKS9td2FpdCgpIHdyYXBwZXJz
IGludG8gY3B1LWlkbGUuYwoKVGhleSdyZSBub3QgdXNlZCBieSBhbnkgb3Ro
ZXIgdHJhbnNsYXRpb24gdW5pdCwgc28gc2hvdWxkbid0IGxpdmUgaW4KYXNt
L3Byb2Nlc3Nvci5oLCB3aGljaCBpcyBpbmNsdWRlZCBhbG1vc3QgZXZlcnl3
aGVyZS4KCk91ciBuZXcgdG9vbGNoYWluIGJhc2VsaW5lIGtub3dzIHRoZSBN
T05JVE9SL01XQUlUIGluc3RydWN0aW9ucywgc28gdXNlIHRoZW0KZGlyZWN0
bHkgcmF0aGVyIHRoYW4gdXNpbmcgcmF3IGhleC4KCkNoYW5nZSB0aGUgaGlu
dC9leHRlbnRpb24gcGFyYW1ldGVycyBmcm9tIGxvbmcgdG8gaW50LiAgVGhl
eSdyZSBzcGVjaWZpZWQgdG8KcmVtYWluIDMyYml0IG9wZXJhbmRzIGV2ZW4g
NjQtYml0IG1vZGUuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogSmFuIEJl
dWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgooY2hlcnJ5IHBpY2tlZCBmcm9t
IGNvbW1pdCA2MWUxMGZjMjhjY2RkZmY3YzcyYzE0YWNlYzU2ZGM3ZWYyYjE1
NWQxKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxl
LmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCmluZGV4IDFkYmYx
NWIwMWVkNy4uNDBhZjQyYTE4ZmI4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94
ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2Nw
dV9pZGxlLmMKQEAgLTYwLDYgKzYwLDE5IEBACiAKIC8qI2RlZmluZSBERUJV
R19QTV9DWCovCiAKK3N0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgbW9uaXRv
cigKKyAgICBjb25zdCB2b2lkICphZGRyLCB1bnNpZ25lZCBpbnQgZWN4LCB1
bnNpZ25lZCBpbnQgZWR4KQoreworICAgIGFzbSB2b2xhdGlsZSAoICJtb25p
dG9yIgorICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoYWRkciksICJjIiAo
ZWN4KSwgImQiIChlZHgpICk7Cit9CisKK3N0YXRpYyBhbHdheXNfaW5saW5l
IHZvaWQgbXdhaXQodW5zaWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVj
eCkKK3sKKyAgICBhc20gdm9sYXRpbGUgKCAibXdhaXQiCisgICAgICAgICAg
ICAgICAgICAgOjogImEiIChlYXgpLCAiYyIgKGVjeCkgKTsKK30KKwogI2Rl
ZmluZSBHRVRfSFdfUkVTX0lOX05TKG1zciwgdmFsKSBcCiAgICAgZG8geyBy
ZG1zcmwobXNyLCB2YWwpOyB2YWwgPSB0c2NfdGlja3MybnModmFsKTsgfSB3
aGlsZSggMCApCiAjZGVmaW5lIEdFVF9NQzZfUkVTKHZhbCkgIEdFVF9IV19S
RVNfSU5fTlMoMHg2NjQsIHZhbCkKQEAgLTQ3MCw3ICs0ODMsNyBAQCB2b2lk
IG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNp
Z25lZCBpbnQgZWN4KQogICAgICAgICBtYigpOwogICAgIH0KIAotICAgIF9f
bW9uaXRvcihtb25pdG9yX2FkZHIsIDAsIDApOworICAgIG1vbml0b3IobW9u
aXRvcl9hZGRyLCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIAogICAgIC8qCkBA
IC00ODQsNyArNDk3LDcgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHMo
dW5zaWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAg
Y3B1bWFza19zZXRfY3B1KGNwdSwgJmNwdWlkbGVfbXdhaXRfZmxhZ3MpOwog
CiAgICAgICAgIHNwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8pOwotICAgICAg
ICBfX213YWl0KGVheCwgZWN4KTsKKyAgICAgICAgbXdhaXQoZWF4LCBlY3gp
OwogICAgICAgICBzcGVjX2N0cmxfZXhpdF9pZGxlKGluZm8pOwogCiAgICAg
ICAgIGNwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJmNwdWlkbGVfbXdhaXRfZmxh
Z3MpOwpAQCAtOTE1LDkgKzkyOCw5IEBAIHZvaWQgY2ZfY2hlY2sgYWNwaV9k
ZWFkX2lkbGUodm9pZCkKICAgICAgICAgICAgICAqLwogICAgICAgICAgICAg
bWIoKTsKICAgICAgICAgICAgIGNsZmx1c2gobXdhaXRfcHRyKTsKLSAgICAg
ICAgICAgIF9fbW9uaXRvcihtd2FpdF9wdHIsIDAsIDApOworICAgICAgICAg
ICAgbW9uaXRvcihtd2FpdF9wdHIsIDAsIDApOwogICAgICAgICAgICAgbWIo
KTsKLSAgICAgICAgICAgIF9fbXdhaXQoY3gtPmFkZHJlc3MsIDApOworICAg
ICAgICAgICAgbXdhaXQoY3gtPmFkZHJlc3MsIDApOwogICAgICAgICB9CiAg
ICAgfQogICAgIGVsc2UgaWYgKCAoY3VycmVudF9jcHVfZGF0YS54ODZfdmVu
ZG9yICYKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
cm9jZXNzb3IuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNz
b3IuaAppbmRleCBjM2NjNTI3ZjJlNzMuLjFhZWM2NjkxYzlmZiAxMDA2NDQK
LS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCisr
KyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaApAQCAt
MzE1LDIzICszMTUsNiBAQCBzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNl
dF9pbl9jcjQgKHVuc2lnbmVkIGxvbmcgbWFzaykKICAgICAgICAgY3I0X3B2
MzJfbWFzayB8PSAobWFzayAmIFhFTl9DUjRfUFYzMl9CSVRTKTsKIH0KIAot
c3RhdGljIGFsd2F5c19pbmxpbmUgdm9pZCBfX21vbml0b3IoY29uc3Qgdm9p
ZCAqZWF4LCB1bnNpZ25lZCBsb25nIGVjeCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZWR4KQotewotICAg
IC8qICJtb25pdG9yICVlYXgsJWVjeCwlZWR4OyIgKi8KLSAgICBhc20gdm9s
YXRpbGUgKAotICAgICAgICAiLmJ5dGUgMHgwZiwweDAxLDB4Yzg7IgotICAg
ICAgICA6IDogImEiIChlYXgpLCAiYyIgKGVjeCksICJkIihlZHgpICk7Ci19
Ci0KLXN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgX19td2FpdCh1bnNpZ25l
ZCBsb25nIGVheCwgdW5zaWduZWQgbG9uZyBlY3gpCi17Ci0gICAgLyogIm13
YWl0ICVlYXgsJWVjeDsiICovCi0gICAgYXNtIHZvbGF0aWxlICgKLSAgICAg
ICAgIi5ieXRlIDB4MGYsMHgwMSwweGM5OyIKLSAgICAgICAgOiA6ICJhIiAo
ZWF4KSwgImMiIChlY3gpICk7Ci19Ci0KICNkZWZpbmUgSU9CTVBfQllURVMg
ICAgICAgICAgICAgODE5MgogI2RlZmluZSBJT0JNUF9JTlZBTElEX09GRlNF
VCAgICAweDgwMDAKIAo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-02.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-02.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEFwciAyMDI1IDE1OjU1OjI5ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZW1vdmUgTUZFTkNFcyBmb3IgQ0xGTFVTSF9NT05J
VE9SCgpDb21taXQgNDhkMzI0NThiY2Q0ICgieDg2LCBpZGxlOiBhZGQgYmFy
cmllcnMgdG8gQ0xGTFVTSCB3b3JrYXJvdW5kIikgd2FzCmluaGVyaXRlZCBm
cm9tIExpbnV4IGFuZCBhZGRlZCBNRkVOQ0VzIGFyb3VuZCB0aGUgQUFJNjUg
ZXJyYXRhIGZpeC4KClRoZSBTRE0gbm93IHN0YXRlczoKCiAgRXhlY3V0aW9u
cyBvZiB0aGUgQ0xGTFVTSCBpbnN0cnVjdGlvbiBhcmUgb3JkZXJlZCB3aXRo
IHJlc3BlY3QgdG8gZWFjaAogIG90aGVyIGFuZCB3aXRoIHJlc3BlY3QgdG8g
d3JpdGVzLCBsb2NrZWQgcmVhZC1tb2RpZnktd3JpdGUgaW5zdHJ1Y3Rpb25z
LAogIGFuZCBmZW5jZSBpbnN0cnVjdGlvbnNbMV0uCgp3aXRoIGZvb3Rub3Rl
IDEgcmVhZGluZzoKCiAgRWFybGllciB2ZXJzaW9ucyBvZiB0aGlzIG1hbnVh
bCBzcGVjaWZpZWQgdGhhdCBleGVjdXRpb25zIG9mIHRoZSBDTEZMVVNICiAg
aW5zdHJ1Y3Rpb24gd2VyZSBvcmRlcmVkIG9ubHkgYnkgdGhlIE1GRU5DRSBp
bnN0cnVjdGlvbi4gIEFsbCBwcm9jZXNzb3JzCiAgaW1wbGVtZW50aW5nIHRo
ZSBDTEZMVVNIIGluc3RydWN0aW9uIGFsc28gb3JkZXIgaXQgcmVsYXRpdmUg
dG8gdGhlIG90aGVyCiAgb3BlcmF0aW9ucyBlbnVtZXJhdGVkIGFib3ZlLgoK
SS5lLiB0aGUgTUZFTkNFcyBjYW1lIGFib3V0IGJlY2F1c2Ugb2YgYW4gaW5j
b3JyZWN0IHN0YXRlbWVudCBpbiB0aGUgU0RNLgoKVGhlIFNwZWMgVXBkYXRl
IChubyBsb25nZXIgYXZhaWxhYmxlIG9uIEludGVsJ3Mgd2Vic2l0ZSkgc2lt
cGx5IHNheXMgImlzc3VlIGEKQ0xGTFVTSCIsIHdpdGggbm8gbWVudGlvbiBv
ZiBNRkVOQ0VzLgoKQXMgdGhpcyBlcnJhdHVtIGlzIHNwZWNpZmljIHRvIElu
dGVsLCBpdCdzIGZpbmUgdG8gcmVtb3ZlIHRoZSB0aGUgTUZFTkNFczsgQU1E
CkNQVXMgb2YgYSBzaW1pbGFyIHZpbnRhZ2UgZG8gc3BvcnQgb3RoZXJ3aXNl
LXVub3JkZXJlZCBDTEZMVVNIcy4KCk1vdmUgdGhlIGZlYXR1cmUgYml0IGlu
dG8gdGhlIEJVRyByYW5nZSAocmF0aGVyIHRoYW4gRkVBVFVSRSksIGFuZCBt
b3ZlIHRoZQp3b3JrYXJvdW5kIGludG8gbW9uaXRvcigpIGl0c2VsZi4KClRo
ZSBlcnJhdHVtIGNoZWNrIGl0c2VsZiBtdXN0IHVzZSBzZXR1cF9mb3JjZV9j
cHVfY2FwKCkuICBJdCBuZWVkcyBhY3RpdmF0aW5nCmlmIGFueSBDUFUgbmVl
ZHMgaXQsIG5vdCBpZiBhbGwgb2YgdGhlbSBuZWVkIGl0LgoKRml4ZXM6IDQ4
ZDMyNDU4YmNkNCAoIng4NiwgaWRsZTogYWRkIGJhcnJpZXJzIHRvIENMRkxV
U0ggd29ya2Fyb3VuZCIpCkZpeGVzOiA5NmQxYjIzN2FlOWIgKCJ4ODYvSW50
ZWw6IHdvcmsgYXJvdW5kIFhlb24gNzQwMCBzZXJpZXMgZXJyYXR1bSBBQUk2
NSIpCkxpbms6IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDA5MDIx
OTA1NDg0MS9odHRwOi8vZG93bmxvYWQuaW50ZWwuY29tL2Rlc2lnbi94ZW9u
L3NwZWN1cGR0LzMyMDMzNjAxLnBkZgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcg
Q29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZpZXdlZC1i
eTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgooY2hlcnJ5IHBp
Y2tlZCBmcm9tIGNvbW1pdCBmNzdlZjM0NDM1NDJhMmMyYmJkNTllZTY2MTc4
Mjg3ZDRmYTViNDNmKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9hY3Bp
L2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCmlu
ZGV4IDQwYWY0MmExOGZiOC4uZTk0OTNmN2Y1NzdmIDEwMDY0NAotLS0gYS94
ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4
Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTYzLDYgKzYzLDkgQEAKIHN0YXRpYyBh
bHdheXNfaW5saW5lIHZvaWQgbW9uaXRvcigKICAgICBjb25zdCB2b2lkICph
ZGRyLCB1bnNpZ25lZCBpbnQgZWN4LCB1bnNpZ25lZCBpbnQgZWR4KQogewor
ICAgIGFsdGVybmF0aXZlX2lucHV0KCIiLCAiY2xmbHVzaCAoJVthZGRyXSki
LCBYODZfQlVHX0NMRkxVU0hfTU9OSVRPUiwKKyAgICAgICAgICAgICAgICAg
ICAgICBbYWRkcl0gImEiIChhZGRyKSk7CisKICAgICBhc20gdm9sYXRpbGUg
KCAibW9uaXRvciIKICAgICAgICAgICAgICAgICAgICA6OiAiYSIgKGFkZHIp
LCAiYyIgKGVjeCksICJkIiAoZWR4KSApOwogfQpAQCAtNDc2LDEzICs0Nzks
NiBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQg
ZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogICAgIHNfdGltZV90IGV4cGlyZXMg
PSBwZXJfY3B1KHRpbWVyX2RlYWRsaW5lLCBjcHUpOwogICAgIGNvbnN0IHZv
aWQgKm1vbml0b3JfYWRkciA9ICZtd2FpdF93YWtldXAoY3B1KTsKIAotICAg
IGlmICggYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0NMRkxVU0hfTU9OSVRP
UikgKQotICAgIHsKLSAgICAgICAgbWIoKTsKLSAgICAgICAgY2xmbHVzaCht
b25pdG9yX2FkZHIpOwotICAgICAgICBtYigpOwotICAgIH0KLQogICAgIG1v
bml0b3IobW9uaXRvcl9hZGRyLCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIApA
QCAtOTE3LDE5ICs5MTMsNyBAQCB2b2lkIGNmX2NoZWNrIGFjcGlfZGVhZF9p
ZGxlKHZvaWQpCiAKICAgICAgICAgd2hpbGUgKCAxICkKICAgICAgICAgewot
ICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIDEuIFRoZSBDTEZMVVNI
IGlzIGEgd29ya2Fyb3VuZCBmb3IgZXJyYXR1bSBBQUk2NSBmb3IKLSAgICAg
ICAgICAgICAqIHRoZSBYZW9uIDc0MDAgc2VyaWVzLiAgCi0gICAgICAgICAg
ICAgKiAyLiBUaGUgV0JJTlZEIGlzIGluc3VmZmljaWVudCBkdWUgdG8gdGhl
IHNwdXJpb3VzLXdha2V1cAotICAgICAgICAgICAgICogY2FzZSB3aGVyZSB3
ZSByZXR1cm4gYXJvdW5kIHRoZSBsb29wLgotICAgICAgICAgICAgICogMy4g
VW5saWtlIHdiaW52ZCwgY2xmbHVzaCBpcyBhIGxpZ2h0IHdlaWdodCBidXQg
bm90IHNlcmlhbGl6aW5nIAotICAgICAgICAgICAgICogaW5zdHJ1Y3Rpb24s
IGhlbmNlIG1lbW9yeSBmZW5jZSBpcyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJl
IGFsbCAKLSAgICAgICAgICAgICAqIGxvYWQvc3RvcmUgdmlzaWJsZSBiZWZv
cmUgZmx1c2ggY2FjaGUgbGluZS4KLSAgICAgICAgICAgICAqLwotICAgICAg
ICAgICAgbWIoKTsKLSAgICAgICAgICAgIGNsZmx1c2gobXdhaXRfcHRyKTsK
ICAgICAgICAgICAgIG1vbml0b3IobXdhaXRfcHRyLCAwLCAwKTsKLSAgICAg
ICAgICAgIG1iKCk7CiAgICAgICAgICAgICBtd2FpdChjeC0+YWRkcmVzcywg
MCk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94
ODYvY3B1L2ludGVsLmMgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKaW5k
ZXggN2VhYTIwZWNlMThjLi45ZjgxMTUwMDhiNjcgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9jcHUvaW50ZWwuYworKysgYi94ZW4vYXJjaC94ODYvY3B1
L2ludGVsLmMKQEAgLTQ0Niw2ICs0NDYsNyBAQCBzdGF0aWMgdm9pZCBfX2lu
aXQgcHJvYmVfbXdhaXRfZXJyYXRhKHZvaWQpCiAgKgogICogWGVvbiA3NDAw
IGVycmF0dW0gQUFJNjUgKGFuZCBmdXJ0aGVyIG5ld2VyIFhlb25zKQogICog
TU9OSVRPUi9NV0FJVCBtYXkgaGF2ZSBleGNlc3NpdmUgZmFsc2Ugd2FrZXVw
cworICogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMDkwMjE5MDU0
ODQxL2h0dHA6Ly9kb3dubG9hZC5pbnRlbC5jb20vZGVzaWduL3hlb24vc3Bl
Y3VwZHQvMzIwMzM2MDEucGRmCiAgKi8KIHN0YXRpYyB2b2lkIEludGVsX2Vy
cmF0YV93b3JrYXJvdW5kcyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiB7CkBA
IC00NjMsNyArNDY0LDcgQEAgc3RhdGljIHZvaWQgSW50ZWxfZXJyYXRhX3dv
cmthcm91bmRzKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIAogCWlmIChjLT54
ODYgPT0gNiAmJiBjcHVfaGFzX2NsZmx1c2ggJiYKIAkgICAgKGMtPng4Nl9t
b2RlbCA9PSAyOSB8fCBjLT54ODZfbW9kZWwgPT0gNDYgfHwgYy0+eDg2X21v
ZGVsID09IDQ3KSkKLQkJX19zZXRfYml0KFg4Nl9GRUFUVVJFX0NMRkxVU0hf
TU9OSVRPUiwgYy0+eDg2X2NhcGFiaWxpdHkpOworCQlzZXR1cF9mb3JjZV9j
cHVfY2FwKFg4Nl9CVUdfQ0xGTFVTSF9NT05JVE9SKTsKIAogCXByb2JlX2Mz
X2VycmF0YShjKTsKIAlpZiAoc3lzdGVtX3N0YXRlIDwgU1lTX1NUQVRFX3Nt
cF9ib290KQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L2NwdWZlYXR1cmVzLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1
ZmVhdHVyZXMuaAppbmRleCA5ZTNlZDIxYzAyNmQuLjg0YzkzMjkyYzgwYyAx
MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1
cmVzLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1
cmVzLmgKQEAgLTE5LDcgKzE5LDcgQEAgWEVOX0NQVUZFQVRVUkUoQVJDSF9Q
RVJGTU9OLCAgICAgIFg4Nl9TWU5USCggMykpIC8qIEludGVsIEFyY2hpdGVj
dHVyYWwgUGVyZk1vbgogWEVOX0NQVUZFQVRVUkUoVFNDX1JFTElBQkxFLCAg
ICAgIFg4Nl9TWU5USCggNCkpIC8qIFRTQyBpcyBrbm93biB0byBiZSByZWxp
YWJsZSAqLwogWEVOX0NQVUZFQVRVUkUoWFRPUE9MT0dZLCAgICAgICAgIFg4
Nl9TWU5USCggNSkpIC8qIGNwdSB0b3BvbG9neSBlbnVtIGV4dGVuc2lvbnMg
Ki8KIFhFTl9DUFVGRUFUVVJFKENQVUlEX0ZBVUxUSU5HLCAgICBYODZfU1lO
VEgoIDYpKSAvKiBjcHVpZCBmYXVsdGluZyAqLwotWEVOX0NQVUZFQVRVUkUo
Q0xGTFVTSF9NT05JVE9SLCAgIFg4Nl9TWU5USCggNykpIC8qIGNsZmx1c2gg
cmVxZCB3aXRoIG1vbml0b3IgKi8KKy8qIEJpdCA3IHVudXNlZCAqLwogWEVO
X0NQVUZFQVRVUkUoQVBFUkZNUEVSRiwgICAgICAgIFg4Nl9TWU5USCggOCkp
IC8qIEFQRVJGTVBFUkYgKi8KIFhFTl9DUFVGRUFUVVJFKE1GRU5DRV9SRFRT
QywgICAgICBYODZfU1lOVEgoIDkpKSAvKiBNRkVOQ0Ugc3luY2hyb25pemVz
IFJEVFNDICovCiBYRU5fQ1BVRkVBVFVSRShYRU5fU01FUCwgICAgICAgICAg
WDg2X1NZTlRIKDEwKSkgLyogU01FUCBnZXRzIHVzZWQgYnkgWGVuIGl0c2Vs
ZiAqLwpAQCAtNTIsNiArNTIsNyBAQCBYRU5fQ1BVRkVBVFVSRShVU0VfVk1D
QUxMLCAgICAgICAgWDg2X1NZTlRIKDMwKSkgLyogVXNlIFZNQ0FMTCBpbnN0
ZWFkIG9mIFZNTUNBTAogI2RlZmluZSBYODZfQlVHX05VTExfU0VHICAgICAg
ICAgIFg4Nl9CVUcoIDEpIC8qIE5VTEwtaW5nIGEgc2VsZWN0b3IgcHJlc2Vy
dmVzIHRoZSBiYXNlIGFuZCBsaW1pdC4gKi8KICNkZWZpbmUgWDg2X0JVR19D
TEZMVVNIX01GRU5DRSAgICBYODZfQlVHKCAyKSAvKiBNRkVOQ0UgbmVlZGVk
IHRvIHNlcmlhbGlzZSBDTEZMVVNIICovCiAjZGVmaW5lIFg4Nl9CVUdfSUJQ
Ql9OT19SRVQgICAgICAgWDg2X0JVRyggMykgLyogSUJQQiBkb2Vzbid0IGZs
dXNoIHRoZSBSU0IvUkFTICovCisjZGVmaW5lIFg4Nl9CVUdfQ0xGTFVTSF9N
T05JVE9SICAgWDg2X0JVRyggNCkgLyogTU9OSVRPUiByZXF1aXJlcyBDTEZM
VVNIICovCiAKICNkZWZpbmUgWDg2X1NQRUNfTk9fTEZFTkNFX0VOVFJZX1BW
IFg4Nl9CVUcoMTYpIC8qIChObykgc2FmZXR5IExGRU5DRSBmb3IgU1BFQ19D
VFJMX0VOVFJZX1BWLiAqLwogI2RlZmluZSBYODZfU1BFQ19OT19MRkVOQ0Vf
RU5UUllfSU5UUiBYODZfQlVHKDE3KSAvKiAoTm8pIHNhZmV0eSBMRkVOQ0Ug
Zm9yIFNQRUNfQ1RSTF9FTlRSWV9JTlRSLiAqLwo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-03.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-03.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAyNCBKdW4gMjAyNSAxNToyMDo1MiArMDEwMApTdWJq
ZWN0OiBSZXZlcnQgcGFydCBvZiAieDg2L213YWl0LWlkbGU6IGRpc2FibGUg
SUJSUyBkdXJpbmcgbG9uZyBpZGxlIgoKTW9zdCBvZiB0aGUgcGF0Y2ggKGhh
bmRsaW5nIG9mIENQVUlETEVfRkxBR19JQlJTKSBpcyBmaW5lLCBidXQgdGhl
CmFkanVzdGVtZW50cyB0byBtd2FpdF9pZGxlKCkgYXJlIG5vdDsgc3BlY19j
dHJsX2VudGVyX2lkbGUoKSBkb2VzIG1vcmUgdGhhbgpqdXN0IGFsdGVyIE1T
Ul9TUEVDX0NUUkwuSUJSUy4KClRoZSBvbmx5IHJlYXNvbiB0aGlzIGRvZXNu
J3QgbmVlZCBhbiBYU0EgaXMgYmVjYXVzZSB0aGUgdW5jb25kaXRpb25hbApz
cGVjX2N0cmxfe2VudGVyLGV4aXR9X2lkbGUoKSBpbiBtd2FpdF9pZGxlX3dp
dGhfaGludHMoKSB3ZXJlIGxlZnQgdW5hbHRlcmVkLAphbmQgdGh1cyB0aGUg
TVdBSVQgcmVtYWluZWQgcHJvcGVybHkgcHJvdGVjdGVkLgoKVGhlcmUgKHdv
dWxkIGhhdmUgYmVlbikgdHdvIHByb2JsZW1zLiAgSW4gdGhlIGlicnNfZGlz
YWJsZSAoPT0gZGVlcCBDKSBjYXNlOgoKICogT24gZW50cnksIFZFUlcgYW5k
IFJTQi1zdHVmZmluZyBhcmUgYXJjaGl0ZWN0dXJhbGx5IHNraXBwZWQuCiAq
IE9uIGV4aXQsIHRoZXJlJ3MgYSBicmFuY2ggY3Jvc3NpbmcgdGhlIFdSTVNS
IHdoaWNoIHJlaW5zdGF0ZXMgdGhlCiAgIHNwZWN1bGF0aXZlIHNhZmV0eSBm
b3IgaW5kaXJlY3QgYnJhbmNoZXMuCgpBbGwgdGhpcyBjaGFuZ2UgZGlkIHdh
cyBkb3VibGUgdXAgdGhlIGV4cGVuc2l2ZSBvcGVyYXRpb25zIGluIHRoZSBk
ZWVwIEMgY2FzZSwKYW5kIGZhaWwgdG8gb3B0aW1pc2UgdGhlIGludGVuZGVk
IGNhc2UuCgpJIGhhdmUgYW4gaWRlYSBvZiBob3cgdG8gcGx1bWIgdGhpcyBt
b3JlIG5pY2VseSwgYnV0IGl0IHJlcXVpcmVzIGxhcmdlcgpjaGFuZ2VzIHRv
IGxlZ2FjeSBJQlJTIGhhbmRsaW5nIHRvIG5vdCBtYWtlIHNwZWNfY3RybF9l
bnRlcl9pZGxlKCkgdnVsbmVyYWJsZQppbiBvdGhlciB3YXlzLiAgSW4gdGhl
IHNob3J0IHRlcm0sIHNpbXBseSB0YWtlIG91dCB0aGUgcGVyZiBoaXQuCgpG
aXhlczogMDhhY2RmOWEyNjE1ICgieDg2L213YWl0LWlkbGU6IGRpc2FibGUg
SUJSUyBkdXJpbmcgbG9uZyBpZGxlIikKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQt
Ynk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KKGNoZXJyeSBw
aWNrZWQgZnJvbSBjb21taXQgMDdkNzE2MzMzNGE3NTA3ZDMyOTk1OGIxOWQ5
NzZiZTc2OTU4MDk5OSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1
L213YWl0LWlkbGUuYyBiL3hlbi9hcmNoL3g4Ni9jcHUvbXdhaXQtaWRsZS5j
CmluZGV4IDljMTZjYzE2NmExNC4uNWMxNmY1YWQzYTgyIDEwMDY0NAotLS0g
YS94ZW4vYXJjaC94ODYvY3B1L213YWl0LWlkbGUuYworKysgYi94ZW4vYXJj
aC94ODYvY3B1L213YWl0LWlkbGUuYwpAQCAtODc1LDcgKzg3NSw2IEBAIHN0
YXRpYyBjb25zdCBzdHJ1Y3QgY3B1aWRsZV9zdGF0ZSBzbnJfY3N0YXRlc1td
ID0gewogc3RhdGljIHZvaWQgY2ZfY2hlY2sgbXdhaXRfaWRsZSh2b2lkKQog
ewogCXVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0J
c3RydWN0IGNwdV9pbmZvICppbmZvID0gZ2V0X2NwdV9pbmZvKCk7CiAJc3Ry
dWN0IGFjcGlfcHJvY2Vzc29yX3Bvd2VyICpwb3dlciA9IHByb2Nlc3Nvcl9w
b3dlcnNbY3B1XTsKIAlzdHJ1Y3QgYWNwaV9wcm9jZXNzb3JfY3ggKmN4ID0g
TlVMTDsKIAl1bnNpZ25lZCBpbnQgbmV4dF9zdGF0ZTsKQEAgLTkwMiw2ICs5
MDEsOCBAQCBzdGF0aWMgdm9pZCBjZl9jaGVjayBtd2FpdF9pZGxlKHZvaWQp
CiAJCQlwbV9pZGxlX3NhdmUoKTsKIAkJZWxzZQogCQl7CisJCQlzdHJ1Y3Qg
Y3B1X2luZm8gKmluZm8gPSBnZXRfY3B1X2luZm8oKTsKKwogCQkJc3BlY19j
dHJsX2VudGVyX2lkbGUoaW5mbyk7CiAJCQlzYWZlX2hhbHQoKTsKIAkJCXNw
ZWNfY3RybF9leGl0X2lkbGUoaW5mbyk7CkBAIC05MjgsMTEgKzkyOSw2IEBA
IHN0YXRpYyB2b2lkIGNmX2NoZWNrIG13YWl0X2lkbGUodm9pZCkKIAlpZiAo
KGN4LT50eXBlID49IDMpICYmIGVycmF0YV9jNl93b3JrYXJvdW5kKCkpCiAJ
CWN4ID0gcG93ZXItPnNhZmVfc3RhdGU7CiAKLQlpZiAoY3gtPmlicnNfZGlz
YWJsZSkgewotCQlBU1NFUlQoIWN4LT5pcnFfZW5hYmxlX2Vhcmx5KTsKLQkJ
c3BlY19jdHJsX2VudGVyX2lkbGUoaW5mbyk7Ci0JfQotCiAjaWYgMCAvKiBY
WFggQ2FuIHdlL2RvIHdlIG5lZWQgdG8gZG8gc29tZXRoaW5nIHNpbWlsYXIg
b24gWGVuPyAqLwogCS8qCiAJICogbGVhdmVfbW0oKSB0byBhdm9pZCBjb3N0
bHkgYW5kIG9mdGVuIHVubmVjZXNzYXJ5IHdha2V1cHMKQEAgLTk2NCwxMCAr
OTYwLDYgQEAgc3RhdGljIHZvaWQgY2ZfY2hlY2sgbXdhaXRfaWRsZSh2b2lk
KQogCiAJLyogTm93IGJhY2sgaW4gQzAuICovCiAJdXBkYXRlX2lkbGVfc3Rh
dHMocG93ZXIsIGN4LCBiZWZvcmUsIGFmdGVyKTsKLQotCWlmIChjeC0+aWJy
c19kaXNhYmxlKQotCQlzcGVjX2N0cmxfZXhpdF9pZGxlKGluZm8pOwotCiAJ
bG9jYWxfaXJxX2VuYWJsZSgpOwogCiAJVFJBQ0VfVElNRShUUkNfUE1fSURM
RV9FWElULCBjeC0+dHlwZSwgYWZ0ZXIsCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-04.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-04.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxNDo0NjowMSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogU2ltcGxpZnkgbG9naWMgaW4KIGd1ZXN0
X2NvbW1vbl9kZWZhdWx0X2ZlYXR1cmVfYWRqdXN0bWVudHMoKQoKRm9yIGZl
YXR1cmVzIHdoaWNoIGFyZSB1bmNvbmRpdGlvbmFsbHkgc2V0IGluIHRoZSBt
YXggcG9saWNpZXMsIG1ha2luZyB0aGUKZGVmYXVsdCBwb2xpY3kgdG8gbWF0
Y2ggdGhlIGhvc3QgY2FuIGJlIGRvbmUgd2l0aCBhIGNvbmRpdGlvbmFsIGNs
ZWFyLgoKVGhpcyBpcyBzaW1wbGVyIHRoYW4gdGhlIHVuY29uZGl0aW9uYWwg
Y2xlYXIsIGNvbmRpdGlvbmFsIHNldCBjdXJyZW50bHkKcGVyZm9ybWVkLgoK
U2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNA
Y2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGlj
aEBzdXNlLmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMzBmOGZl
ZDY4ZjNjMmU2MzU5NGZmOTIwMmIzZDA1Yjk3MTc4MWUzNikKCmRpZmYgLS1n
aXQgYS94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5jIGIveGVuL2FyY2gveDg2
L2NwdS1wb2xpY3kuYwppbmRleCBkNjk2OTYwYjE4ODcuLmMzYWFhYzg2MWQx
NSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYworKysg
Yi94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5jCkBAIC01MTgsMTcgKzUxOCwx
NCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRf
ZmVhdHVyZV9hZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICAgICAq
IHJlYXNvbnMsIHNvIHJlc2V0IHRoZSBkZWZhdWx0IHBvbGljeSBiYWNrIHRv
IHRoZSBob3N0IHZhbHVlcyBpbgogICAgICAgICAgKiBjYXNlIHdlJ3JlIHVu
YWZmZWN0ZWQuCiAgICAgICAgICAqLwotICAgICAgICBfX2NsZWFyX2JpdChY
ODZfRkVBVFVSRV9NRF9DTEVBUiwgZnMpOwotICAgICAgICBpZiAoIGNwdV9o
YXNfbWRfY2xlYXIgKQotICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFU
VVJFX01EX0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfbWRf
Y2xlYXIgKQorICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVf
TURfQ0xFQVIsIGZzKTsKIAotICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVB
VFVSRV9GQl9DTEVBUiwgZnMpOwotICAgICAgICBpZiAoIGNwdV9oYXNfZmJf
Y2xlYXIgKQotICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX0ZC
X0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfZmJfY2xlYXIg
KQorICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfRkJfQ0xF
QVIsIGZzKTsKIAotICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9S
RkRTX0NMRUFSLCBmcyk7Ci0gICAgICAgIGlmICggY3B1X2hhc19yZmRzX2Ns
ZWFyICkKLSAgICAgICAgICAgIF9fc2V0X2JpdChYODZfRkVBVFVSRV9SRkRT
X0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfcmZkc19jbGVh
ciApCisgICAgICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9SRkRT
X0NMRUFSLCBmcyk7CiAKICAgICAgICAgLyoKICAgICAgICAgICogVGhlIEdh
dGhlciBEYXRhIFNhbXBsaW5nIG1pY3JvY29kZSBtaXRpZ2F0aW9uIChBdWd1
c3QgMjAyMykgaGFzIGFuCkBAIC01NDgsMTMgKzU0NSwxMSBAQCBzdGF0aWMg
dm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9hZGp1
c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICogVG9wb2xvZ3kgaW5mb3Jt
YXRpb24gaXMgYXQgdGhlIHRvb2xzdGFjaydzIGRpc2NyZXRpb24gc28gdGhl
c2UgYXJlCiAgICAgICogdW5jb25kaXRpb25hbGx5IHNldCBpbiBtYXgsIGJ1
dCBwaWNrIGEgZGVmYXVsdCB3aGljaCBtYXRjaGVzIHRoZSBob3N0LgogICAg
ICAqLwotICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJFX0hUVCwgZnMpOwot
ICAgIGlmICggY3B1X2hhc19odHQgKQotICAgICAgICBfX3NldF9iaXQoWDg2
X0ZFQVRVUkVfSFRULCBmcyk7CisgICAgaWYgKCAhY3B1X2hhc19odHQgKQor
ICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9IVFQsIGZzKTsKIAot
ICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJFX0NNUF9MRUdBQ1ksIGZzKTsK
LSAgICBpZiAoIGNwdV9oYXNfY21wX2xlZ2FjeSApCi0gICAgICAgIF9fc2V0
X2JpdChYODZfRkVBVFVSRV9DTVBfTEVHQUNZLCBmcyk7CisgICAgaWYgKCAh
Y3B1X2hhc19jbXBfbGVnYWN5ICkKKyAgICAgICAgX19jbGVhcl9iaXQoWDg2
X0ZFQVRVUkVfQ01QX0xFR0FDWSwgZnMpOwogCiAgICAgLyoKICAgICAgKiBP
biBjZXJ0YWluIGhhcmR3YXJlLCBzcGVjdWxhdGl2ZSBvciBlcnJhdGEgd29y
a2Fyb3VuZHMgY2FuIHJlc3VsdCBpbgo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-05.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-05.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDE1OjUxOjUzICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZW1vdmUgYnJva2VuIE1XQUlUIGltcGxlbWVudGF0
aW9uCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp
bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4
Yml0CgpjcHVpZGxlX3dha2V1cF9td2FpdCgpIGlzIGEgVE9DVE9VIHJhY2Uu
ICBUaGUgY3B1bWFza19hbmQoKSBzYW1wbGluZwpjcHVpZGxlX213YWl0X2Zs
YWdzIGNhbiB0YWtlIGEgYXJiaXRyYXJ5IHBlcmlvZCBvZiB0aW1lLCBhbmQg
dGhlcmUncyBubwpndWFyYW50ZWUgdGhhdCB0aGUgdGFyZ2V0IENQVXMgYXJl
IHN0aWxsIGluIE1XQUlUIHdoZW4gd3JpdGluZyBpbnRvCm13YWl0X3dha2V1
cChjcHUpLgoKVGhlIGNvbnNlcXVlbmNlIG9mIHRoZSByYWNlIGlzIHRoYXQg
d2UnbGwgZmFpbCB0byBJUEkgY2VydGFpbiB0YXJnZXRzLiAgQWxzbywKdGhl
cmUncyBubyBndWFyYW50ZWUgdGhhdCBtd2FpdF9pZGxlX3dpdGhfaGludHMo
KSB3aWxsIHJhaXNlIGEgVElNRVJfU09GVElSUQpvbiBpdCdzIHdheSBvdXQu
CgpUaGUgZnVuZGFtZW50YWwgYnVnIGlzIHRoYXQgdGhlICJpbl9td2FpdCIg
dmFyaWFibGUgbmVlZHMgdG8gYmUgaW4gdGhlCm1vbml0b3JlZCBsaW5lLCBh
bmQgbm90IGluIGEgc2VwYXJhdGUgY3B1aWRsZV9td2FpdF9mbGFncyB2YXJp
YWJsZSwgaW4gb3JkZXIKdG8gZG8gdGhpcyBpbiBhIHJhY2UtZnJlZSB3YXku
CgpBcnJhbmdpbmcgdG8gZml4IHRoaXMgd2hpbGUga2VlcGluZyB0aGUgb2xk
IGltcGxlbWVudGF0aW9uIGlzIHByb2hpYml0aXZlLCBzbwpzdHJpcCB0aGUg
Y3VycmVudCBvbmUgb3V0IGluIG9yZGVyIHRvIGltcGxlbWVudCB0aGUgbmV3
IG9uZSBjbGVhbmx5LiAgSW4gdGhlCmludGVyaW0sIHRoaXMgY2F1c2VzIElQ
SXMgdG8gYmUgdXNlZCB1bmNvbmRpdGlvbmFsbHkgd2hpY2ggaXMgc2FmZSBh
bGJlaXQKc3Vib3B0aW1hbC4KCkZpeGVzOiAzZDUyMWU5MzNlMWIgKCJjcHVp
ZGxlOiBtd2FpdCBvbiBzb2Z0aXJxX3BlbmRpbmcgJiByZW1vdmUgd2FrZXVw
IGlwaXMiKQpGaXhlczogMWFkYjM0ZWE4NDZkICgiQ1BVSURMRTogcmUtaW1w
bGVtZW50IG13YWl0IHdha2V1cCBwcm9jZXNzIikKU2lnbmVkLW9mZi1ieTog
QW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2
aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXgu
Y29tPgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzZmFmMDg2NmEzMzA3
MGI5MjZhYjc4ZTYyOTgyOTA0MDNmODVlNzZjKQoKZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNw
aS9jcHVfaWRsZS5jCmluZGV4IGU5NDkzZjdmNTc3Zi4uMzEwMWQ1Y2UyMzBk
IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisr
KyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTQzNiwyNyAr
NDM2LDYgQEAgc3RhdGljIGludCBfX2luaXQgY2ZfY2hlY2sgY3B1X2lkbGVf
a2V5X2luaXQodm9pZCkKIH0KIF9faW5pdGNhbGwoY3B1X2lkbGVfa2V5X2lu
aXQpOwogCi0vKgotICogVGhlIGJpdCBpcyBzZXQgaWZmIGNwdSB1c2UgbW9u
aXRvci9td2FpdCB0byBlbnRlciBDIHN0YXRlCi0gKiB3aXRoIHRoaXMgZmxh
ZyBzZXQsIENQVSBjYW4gYmUgd2FrZW4gdXAgZnJvbSBDIHN0YXRlCi0gKiBi
eSB3cml0aW5nIHRvIHNwZWNpZmljIG1lbW9yeSBhZGRyZXNzLCBpbnN0ZWFk
IG9mIHNlbmRpbmcgYW4gSVBJLgotICovCi1zdGF0aWMgY3B1bWFza190IGNw
dWlkbGVfbXdhaXRfZmxhZ3M7Ci0KLXZvaWQgY3B1aWRsZV93YWtldXBfbXdh
aXQoY3B1bWFza190ICptYXNrKQotewotICAgIGNwdW1hc2tfdCB0YXJnZXQ7
Ci0gICAgdW5zaWduZWQgaW50IGNwdTsKLQotICAgIGNwdW1hc2tfYW5kKCZ0
YXJnZXQsIG1hc2ssICZjcHVpZGxlX213YWl0X2ZsYWdzKTsKLQotICAgIC8q
IENQVSBpcyBNV0FJVGluZyBvbiB0aGUgY3B1aWRsZV9td2FpdF93YWtldXAg
ZmxhZy4gKi8KLSAgICBmb3JfZWFjaF9jcHUoY3B1LCAmdGFyZ2V0KQotICAg
ICAgICBtd2FpdF93YWtldXAoY3B1KSA9IDA7Ci0KLSAgICBjcHVtYXNrX2Fu
ZG5vdChtYXNrLCBtYXNrLCAmdGFyZ2V0KTsKLX0KLQogLyogRm9yY2Ugc2Vu
ZGluZyBvZiBhIHdha2V1cCBJUEkgcmVnYXJkbGVzcyBvZiBtd2FpdCB1c2Fn
ZS4gKi8KIGJvb2wgX19yb19hZnRlcl9pbml0IGZvcmNlX213YWl0X2lwaV93
YWtldXA7CiAKQEAgLTQ2NSw0MiArNDQ0LDI1IEBAIGJvb2wgYXJjaF9za2lw
X3NlbmRfZXZlbnRfY2hlY2sodW5zaWduZWQgaW50IGNwdSkKICAgICBpZiAo
IGZvcmNlX213YWl0X2lwaV93YWtldXAgKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICAvKgotICAgICAqIFRoaXMgcmVsaWVzIG9uIHNvZnRpcnFf
cGVuZGluZygpIGFuZCBtd2FpdF93YWtldXAoKSB0byBhY2Nlc3MgZGF0YQot
ICAgICAqIG9uIHRoZSBzYW1lIGNhY2hlIGxpbmUuCi0gICAgICovCi0gICAg
c21wX21iKCk7Ci0gICAgcmV0dXJuICEhY3B1bWFza190ZXN0X2NwdShjcHUs
ICZjcHVpZGxlX213YWl0X2ZsYWdzKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9
CiAKIHZvaWQgbXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBl
YXgsIHVuc2lnbmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNw
dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKLSAgICBzX3RpbWVfdCBleHBpcmVz
ID0gcGVyX2NwdSh0aW1lcl9kZWFkbGluZSwgY3B1KTsKLSAgICBjb25zdCB2
b2lkICptb25pdG9yX2FkZHIgPSAmbXdhaXRfd2FrZXVwKGNwdSk7CisgICAg
Y29uc3QgdW5zaWduZWQgaW50ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZz
b2Z0aXJxX3BlbmRpbmcoY3B1KTsKIAotICAgIG1vbml0b3IobW9uaXRvcl9h
ZGRyLCAwLCAwKTsKKyAgICBtb25pdG9yKHRoaXNfc29mdGlycV9wZW5kaW5n
LCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIAotICAgIC8qCi0gICAgICogVGlt
ZXIgZGVhZGxpbmUgcGFzc2luZyBpcyB0aGUgZXZlbnQgb24gd2hpY2ggd2Ug
d2lsbCBiZSB3b2tlbiB2aWEKLSAgICAgKiBjcHVpZGxlX213YWl0X3dha2V1
cC4gU28gY2hlY2sgaXQgbm93IHRoYXQgdGhlIGxvY2F0aW9uIGlzIGFybWVk
LgotICAgICAqLwotICAgIGlmICggKGV4cGlyZXMgPiBOT1coKSB8fCBleHBp
cmVzID09IDApICYmICFzb2Z0aXJxX3BlbmRpbmcoY3B1KSApCisgICAgaWYg
KCAhKnRoaXNfc29mdGlycV9wZW5kaW5nICkKICAgICB7CiAgICAgICAgIHN0
cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdldF9jcHVfaW5mbygpOwogCi0gICAg
ICAgIGNwdW1hc2tfc2V0X2NwdShjcHUsICZjcHVpZGxlX213YWl0X2ZsYWdz
KTsKLQogICAgICAgICBzcGVjX2N0cmxfZW50ZXJfaWRsZShpbmZvKTsKICAg
ICAgICAgbXdhaXQoZWF4LCBlY3gpOwogICAgICAgICBzcGVjX2N0cmxfZXhp
dF9pZGxlKGluZm8pOwotCi0gICAgICAgIGNwdW1hc2tfY2xlYXJfY3B1KGNw
dSwgJmNwdWlkbGVfbXdhaXRfZmxhZ3MpOwogICAgIH0KLQotICAgIGlmICgg
ZXhwaXJlcyA8PSBOT1coKSAmJiBleHBpcmVzID4gMCApCi0gICAgICAgIHJh
aXNlX3NvZnRpcnEoVElNRVJfU09GVElSUSk7CiB9CiAKIHN0YXRpYyB2b2lk
IGFjcGlfcHJvY2Vzc29yX2ZmaF9jc3RhdGVfZW50ZXIoc3RydWN0IGFjcGlf
cHJvY2Vzc29yX2N4ICpjeCkKQEAgLTkwMSw3ICs4NjMsNyBAQCB2b2lkIGNm
X2NoZWNrIGFjcGlfZGVhZF9pZGxlKHZvaWQpCiAKICAgICBpZiAoIGN4LT5l
bnRyeV9tZXRob2QgPT0gQUNQSV9DU1RBVEVfRU1fRkZIICkKICAgICB7Ci0g
ICAgICAgIHZvaWQgKm13YWl0X3B0ciA9ICZtd2FpdF93YWtldXAoc21wX3By
b2Nlc3Nvcl9pZCgpKTsKKyAgICAgICAgdm9pZCAqbXdhaXRfcHRyID0gJnNv
ZnRpcnFfcGVuZGluZyhzbXBfcHJvY2Vzc29yX2lkKCkpOwogCiAgICAgICAg
IC8qCiAgICAgICAgICAqIENhY2hlIG11c3QgYmUgZmx1c2hlZCBhcyB0aGUg
bGFzdCBvcGVyYXRpb24gYmVmb3JlIHNsZWVwaW5nLgpkaWZmIC0tZ2l0IGEv
eGVuL2FyY2gveDg2L2hwZXQuYyBiL3hlbi9hcmNoL3g4Ni9ocGV0LmMKaW5k
ZXggNTFmZjdmMTJmNWMwLi45MjkwY2Y3YTQyYTAgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9ocGV0LmMKKysrIGIveGVuL2FyY2gveDg2L2hwZXQuYwpA
QCAtMTg4LDggKzE4OCw2IEBAIHN0YXRpYyB2b2lkIGV2dF9kb19icm9hZGNh
c3QoY3B1bWFza190ICptYXNrKQogICAgIGlmICggX19jcHVtYXNrX3Rlc3Rf
YW5kX2NsZWFyX2NwdShjcHUsIG1hc2spICkKICAgICAgICAgcmFpc2Vfc29m
dGlycShUSU1FUl9TT0ZUSVJRKTsKIAotICAgIGNwdWlkbGVfd2FrZXVwX213
YWl0KG1hc2spOwotCiAgICAgaWYgKCAhY3B1bWFza19lbXB0eShtYXNrKSAp
CiAgICAgICAgY3B1bWFza19yYWlzZV9zb2Z0aXJxKG1hc2ssIFRJTUVSX1NP
RlRJUlEpOwogfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2hhcmRpcnEuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJk
aXJxLmgKaW5kZXggMzQyMzYxY2I2ZmRkLi5mM2U5M2NjOWI1MDcgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJkaXJxLmgKKysr
IGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2hhcmRpcnEuaApAQCAtNSwx
MSArNSwxMCBAQAogI2luY2x1ZGUgPHhlbi90eXBlcy5oPgogCiB0eXBlZGVm
IHN0cnVjdCB7Ci0JdW5zaWduZWQgaW50IF9fc29mdGlycV9wZW5kaW5nOwot
CXVuc2lnbmVkIGludCBfX2xvY2FsX2lycV9jb3VudDsKLQl1bnNpZ25lZCBp
bnQgbm1pX2NvdW50OwotCXVuc2lnbmVkIGludCBtY2VfY291bnQ7Ci0JYm9v
bCBfX213YWl0X3dha2V1cDsKKyAgICB1bnNpZ25lZCBpbnQgX19zb2Z0aXJx
X3BlbmRpbmc7CisgICAgdW5zaWduZWQgaW50IF9fbG9jYWxfaXJxX2NvdW50
OworICAgIHVuc2lnbmVkIGludCBubWlfY291bnQ7CisgICAgdW5zaWduZWQg
aW50IG1jZV9jb3VudDsKIH0gX19jYWNoZWxpbmVfYWxpZ25lZCBpcnFfY3B1
c3RhdF90OwogCiAjaW5jbHVkZSA8eGVuL2lycV9jcHVzdGF0Lmg+CS8qIFN0
YW5kYXJkIG1hcHBpbmdzIGZvciBpcnFfY3B1c3RhdF90IGFib3ZlICovCmRp
ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vY3B1aWRsZS5oIGIveGVuL2lu
Y2x1ZGUveGVuL2NwdWlkbGUuaAppbmRleCA3MDVkMGMxMTM1ZjAuLjEyMGUz
NTRmZTM0MCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2NwdWlkbGUu
aAorKysgYi94ZW4vaW5jbHVkZS94ZW4vY3B1aWRsZS5oCkBAIC05Miw4ICs5
Miw2IEBAIGV4dGVybiBzdHJ1Y3QgY3B1aWRsZV9nb3Zlcm5vciAqY3B1aWRs
ZV9jdXJyZW50X2dvdmVybm9yOwogYm9vbCBjcHVpZGxlX3VzaW5nX2RlZXBf
Y3N0YXRlKHZvaWQpOwogdm9pZCBjcHVpZGxlX2Rpc2FibGVfZGVlcF9jc3Rh
dGUodm9pZCk7CiAKLWV4dGVybiB2b2lkIGNwdWlkbGVfd2FrZXVwX213YWl0
KGNwdW1hc2tfdCAqbWFzayk7Ci0KICNkZWZpbmUgQ1BVSURMRV9EUklWRVJf
U1RBVEVfU1RBUlQgIDEKIAogZXh0ZXJuIHZvaWQgbWVudV9nZXRfdHJhY2Vf
ZGF0YSh1MzIgKmV4cGVjdGVkLCB1MzIgKnByZWQpOwpkaWZmIC0tZ2l0IGEv
eGVuL2luY2x1ZGUveGVuL2lycV9jcHVzdGF0LmggYi94ZW4vaW5jbHVkZS94
ZW4vaXJxX2NwdXN0YXQuaAppbmRleCBiOTYyOWYyNWMyNjYuLjVmMDM5YjRi
OWE3NiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2lycV9jcHVzdGF0
LmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2lycV9jcHVzdGF0LmgKQEAgLTI0
LDYgKzI0LDUgQEAgZXh0ZXJuIGlycV9jcHVzdGF0X3QgaXJxX3N0YXRbXTsK
ICAgLyogYXJjaCBpbmRlcGVuZGVudCBpcnFfc3RhdCBmaWVsZHMgKi8KICNk
ZWZpbmUgc29mdGlycV9wZW5kaW5nKGNwdSkJX19JUlFfU1RBVCgoY3B1KSwg
X19zb2Z0aXJxX3BlbmRpbmcpCiAjZGVmaW5lIGxvY2FsX2lycV9jb3VudChj
cHUpCV9fSVJRX1NUQVQoKGNwdSksIF9fbG9jYWxfaXJxX2NvdW50KQotI2Rl
ZmluZSBtd2FpdF93YWtldXAoY3B1KQlfX0lSUV9TVEFUKChjcHUpLCBfX213
YWl0X3dha2V1cCkKIAogI2VuZGlmCS8qIF9faXJxX2NwdXN0YXRfaCAqLwo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-06.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-06.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDE4OjEzOjI3ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBEcm9wIGluY29ycmVjdCBzbXBfbWIoKSBpbiBtd2Fp
dF9pZGxlX3dpdGhfaGludHMoKQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50
LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFu
c2Zlci1FbmNvZGluZzogOGJpdAoKV2l0aCB0aGUgcmVjZW50IHNpbXBsaWZp
Y2F0aW9ucywgaXQgYmVjb21lcyBvYnZpb3VzIHRoYXQgc21wX21iKCkgaXNu
J3QgdGhlCnJpZ2h0IGJhcnJpZXIuICBTdHJpY3RseSBzcGVha2luZywgTU9O
SVRPUiBpcyBvcmRlcmVkIGFzIGEgbG9hZCwgYnV0IHNtcF9ybWIoKQppc24n
dCBjb3JyZWN0IGVpdGhlciwgYXMgdGhpcyBvbmx5IHBlcnRhaW5zIHRvIGxv
Y2FsIG9yZGVyaW5nLiAgQWxsIHdlIG5lZWQgaXMKYSBjb21waWxlciBiYXJy
aWVyKCkuCgpNZXJnZSB0aGUgYmFyaWVyKCkgaW50byB0aGUgbW9uaXRvcigp
IGl0c2VsZiwgYWxvbmcgd2l0aCBhbiBleHBsYW50aW9uLgoKTm8gZnVuY3Rp
b25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogUm9nZXIgUGF1
IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CihjaGVycnkgcGlja2Vk
IGZyb20gY29tbWl0IGU3NzEwZGQ4NDNiYTlkMjA0ZjZlZTI5NzNkNjEyMGMx
OTg0OTU4YTYpCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1
X2lkbGUuYyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXgg
MzEwMWQ1Y2UyMzBkLi5kZmE2YjkzMDcwZGMgMTAwNjQ0Ci0tLSBhL3hlbi9h
cmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2Fj
cGkvY3B1X2lkbGUuYwpAQCAtNjYsOCArNjYsMTIgQEAgc3RhdGljIGFsd2F5
c19pbmxpbmUgdm9pZCBtb25pdG9yKAogICAgIGFsdGVybmF0aXZlX2lucHV0
KCIiLCAiY2xmbHVzaCAoJVthZGRyXSkiLCBYODZfQlVHX0NMRkxVU0hfTU9O
SVRPUiwKICAgICAgICAgICAgICAgICAgICAgICBbYWRkcl0gImEiIChhZGRy
KSk7CiAKKyAgICAvKgorICAgICAqIFRoZSBtZW1vcnkgY2xvYmJlciBpcyBh
IGNvbXBpbGVyIGJhcnJpZXIuICBTdWJzZXFldW50IHJlYWRzIGZyb20gdGhl
CisgICAgICogbW9uaXRvcmVkIGNhY2hlbGluZSBtdXN0IG5vdCBiZSByZW9y
ZGVyZWQgb3ZlciBNT05JVE9SLgorICAgICAqLwogICAgIGFzbSB2b2xhdGls
ZSAoICJtb25pdG9yIgotICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoYWRk
ciksICJjIiAoZWN4KSwgImQiIChlZHgpICk7CisgICAgICAgICAgICAgICAg
ICAgOjogImEiIChhZGRyKSwgImMiIChlY3gpLCAiZCIgKGVkeCkgOiAibWVt
b3J5IiApOwogfQogCiBzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIG13YWl0
KHVuc2lnbmVkIGludCBlYXgsIHVuc2lnbmVkIGludCBlY3gpCkBAIC00NTMs
NyArNDU3LDYgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHModW5zaWdu
ZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICBjb25zdCB1bnNp
Z25lZCBpbnQgKnRoaXNfc29mdGlycV9wZW5kaW5nID0gJnNvZnRpcnFfcGVu
ZGluZyhjcHUpOwogCiAgICAgbW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGlu
ZywgMCwgMCk7Ci0gICAgc21wX21iKCk7CiAKICAgICBpZiAoICEqdGhpc19z
b2Z0aXJxX3BlbmRpbmcgKQogICAgIHsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-07.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-07.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjQwOjUxICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBDb252ZXJ0IGZvcmNlX213YWl0X2lwaV93YWtldXAg
dG8gWDg2X0JVR19NT05JVE9SCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQt
VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z
ZmVyLUVuY29kaW5nOiA4Yml0CgpXZSdyZSBnb2luZyB0byB3YW50IGFsdGVy
bmF0aXZlLXBhdGNoIGJhc2VkIG9uIGl0LgoKTm8gZnVuY3Rpb25hbCBjaGFu
Z2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29v
cGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8
cm9nZXIucGF1QGNpdHJpeC5jb20+CihjaGVycnkgcGlja2VkIGZyb20gY29t
bWl0IGIwY2EwZjkzZjQ3YzQzZjg5ODQ5ODExMzdhZjA3Y2EzZDE2MWUzZWMp
CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBi
L3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXggZGZhNmI5MzA3
MGRjLi40YjhmYjQ2OTM4MWMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9h
Y3BpL2NwdV9pZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lk
bGUuYwpAQCAtNDQwLDE0ICs0NDAsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBj
Zl9jaGVjayBjcHVfaWRsZV9rZXlfaW5pdCh2b2lkKQogfQogX19pbml0Y2Fs
bChjcHVfaWRsZV9rZXlfaW5pdCk7CiAKLS8qIEZvcmNlIHNlbmRpbmcgb2Yg
YSB3YWtldXAgSVBJIHJlZ2FyZGxlc3Mgb2YgbXdhaXQgdXNhZ2UuICovCi1i
b29sIF9fcm9fYWZ0ZXJfaW5pdCBmb3JjZV9td2FpdF9pcGlfd2FrZXVwOwot
CiBib29sIGFyY2hfc2tpcF9zZW5kX2V2ZW50X2NoZWNrKHVuc2lnbmVkIGlu
dCBjcHUpCiB7Ci0gICAgaWYgKCBmb3JjZV9td2FpdF9pcGlfd2FrZXVwICkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMgYi94
ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKaW5kZXggOWY4MTE1MDA4YjY3Li45
OGYxZGIyMzQ5MTUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvaW50
ZWwuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKQEAgLTQzNiw3
ICs0MzYsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcHJvYmVfbXdhaXRfZXJy
YXRhKHZvaWQpCiAgICAgewogICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5J
TkcKICAgICAgICAgICAgICAgICJGb3JjaW5nIElQSSBNV0FJVCB3YWtldXAg
ZHVlIHRvIENQVSBlcnJhdHVtXG4iKTsKLSAgICAgICAgZm9yY2VfbXdhaXRf
aXBpX3dha2V1cCA9IHRydWU7CisgICAgICAgIHNldHVwX2ZvcmNlX2NwdV9j
YXAoWDg2X0JVR19NT05JVE9SKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oIGIveGVu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmVzLmgKaW5kZXggODRj
OTMyOTJjODBjLi41NjIzMWIwMGYxNWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oCisrKyBiL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oCkBAIC01Myw2ICs1Myw3
IEBAIFhFTl9DUFVGRUFUVVJFKFVTRV9WTUNBTEwsICAgICAgICBYODZfU1lO
VEgoMzApKSAvKiBVc2UgVk1DQUxMIGluc3RlYWQgb2YgVk1NQ0FMCiAjZGVm
aW5lIFg4Nl9CVUdfQ0xGTFVTSF9NRkVOQ0UgICAgWDg2X0JVRyggMikgLyog
TUZFTkNFIG5lZWRlZCB0byBzZXJpYWxpc2UgQ0xGTFVTSCAqLwogI2RlZmlu
ZSBYODZfQlVHX0lCUEJfTk9fUkVUICAgICAgIFg4Nl9CVUcoIDMpIC8qIElC
UEIgZG9lc24ndCBmbHVzaCB0aGUgUlNCL1JBUyAqLwogI2RlZmluZSBYODZf
QlVHX0NMRkxVU0hfTU9OSVRPUiAgIFg4Nl9CVUcoIDQpIC8qIE1PTklUT1Ig
cmVxdWlyZXMgQ0xGTFVTSCAqLworI2RlZmluZSBYODZfQlVHX01PTklUT1Ig
ICAgICAgICAgIFg4Nl9CVUcoIDUpIC8qIE1PTklUT1IgZG9lc24ndCBhbHdh
eXMgbm90aWNlIHdyaXRlcyAoZm9yY2UgSVBJcykgKi8KIAogI2RlZmluZSBY
ODZfU1BFQ19OT19MRkVOQ0VfRU5UUllfUFYgWDg2X0JVRygxNikgLyogKE5v
KSBzYWZldHkgTEZFTkNFIGZvciBTUEVDX0NUUkxfRU5UUllfUFYuICovCiAj
ZGVmaW5lIFg4Nl9TUEVDX05PX0xGRU5DRV9FTlRSWV9JTlRSIFg4Nl9CVUco
MTcpIC8qIChObykgc2FmZXR5IExGRU5DRSBmb3IgU1BFQ19DVFJMX0VOVFJZ
X0lOVFIuICovCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbXdhaXQuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9td2FpdC5o
CmluZGV4IGM1MmNkM2Y1MTAxMS4uMDAwYTY5MmY2ZDE5IDEwMDY0NAotLS0g
YS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXdhaXQuaAorKysgYi94ZW4v
YXJjaC94ODYvaW5jbHVkZS9hc20vbXdhaXQuaApAQCAtMTMsOSArMTMsNiBA
QAogCiAjZGVmaW5lIE1XQUlUX0VDWF9JTlRFUlJVUFRfQlJFQUsJMHgxCiAK
LS8qIEZvcmNlIHNlbmRpbmcgb2YgYSB3YWtldXAgSVBJIHJlZ2FyZGxlc3Mg
b2YgbXdhaXQgdXNhZ2UuICovCi1leHRlcm4gYm9vbCBmb3JjZV9td2FpdF9p
cGlfd2FrZXVwOwotCiB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNp
Z25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQgZWN4KTsKICNpZmRlZiBDT05G
SUdfSU5URUwKIGJvb2wgbXdhaXRfcGMxMF9zdXBwb3J0ZWQodm9pZCk7Cg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-08.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-08.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjA0OjE3ICswMTAwClN1Ympl
Y3Q6IHhlbi9zb2Z0aXJxOiBSZXdvcmsgYXJjaF9za2lwX3NlbmRfZXZlbnRf
Y2hlY2soKSBpbnRvCiBhcmNoX3NldF9zb2Z0aXJxKCkKTUlNRS1WZXJzaW9u
OiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04
CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCng4NiBpcyB0aGUg
b25seSBhcmNoaXRlY3R1cmUgd2FudGluZyBhbiBvcHRpbWlzYXRpb24gaGVy
ZSwgYnV0IHRoZQp0ZXN0X2FuZF9zZXRfYml0KCkgaXMgYSBzdG9yZSBpbnRv
IHRoZSBtb25pdG9yZWQgbGluZSAoaS5lLiB3aWxsIHdha2UgdXAgdGhlCnRh
cmdldCkgYW5kLCBwcmlvciB0byB0aGUgcmVtb3ZhbCBvZiB0aGUgYnJva2Vu
IElQSS1lbGlzaW9uIGFsZ29yaXRobSwgd2FzCnJhY3ksIGNhdXNpbmcgdW5u
ZWNlc3NhcnkgSVBJcyB0byBiZSBzZW50LgoKVG8gZG8gdGhpcyBpbiBhIHJh
Y2UtZnJlZSB3YXksIHRoZSBzdG9yZSB0byB0aGUgbW9uaXRlZCBsaW5lIG5l
ZWRzIHRvIGFsc28Kc2FtcGxlIHRoZSBzdGF0dXMgb2YgdGhlIHRhcmdldCBp
biBvbmUgYXRvbWljIGFjdGlvbi4gIEltcGxlbWVudCBhIG5ldyBhcmNoCmhl
bHBlciB3aXRoIGRpZmZlcmVudCBzZW1hbnRpY3M7IHRvIG1ha2UgdGhlIHNv
ZnRpcnEgcGVuZGluZyBhbmQgZGVjaWRlIGFib3V0CklQSXMgdG9nZXRoZXIu
ICBGb3Igbm93LCBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgaGVscGVyLiAgSXQg
d2lsbCBiZSBvdmVycmlkZGVuCmJ5IHg4NiBpbiBhIHN1YnNlcXVlbnQgY2hh
bmdlLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBB
bmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZp
ZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5j
b20+CihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGI0NzNlNWUyMTJlNDQ1
ZDNjMTkzYzFjODNiNTJiMTI5YWY1NzFiMTkpCgpkaWZmIC0tZ2l0IGEveGVu
L2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBiL3hlbi9hcmNoL3g4Ni9hY3Bp
L2NwdV9pZGxlLmMKaW5kZXggNGI4ZmI0NjkzODFjLi5lNDY3OWE0NWI1YTYg
MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKKysr
IGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYwpAQCAtNDQwLDExICs0
NDAsNiBAQCBzdGF0aWMgaW50IF9faW5pdCBjZl9jaGVjayBjcHVfaWRsZV9r
ZXlfaW5pdCh2b2lkKQogfQogX19pbml0Y2FsbChjcHVfaWRsZV9rZXlfaW5p
dCk7CiAKLWJvb2wgYXJjaF9za2lwX3NlbmRfZXZlbnRfY2hlY2sodW5zaWdu
ZWQgaW50IGNwdSkKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIHZvaWQg
bXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBlYXgsIHVuc2ln
bmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNwdSA9IHNtcF9w
cm9jZXNzb3JfaWQoKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9zb2Z0aXJxLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20v
c29mdGlycS5oCmluZGV4IDQxNWVlODY2Yzc5ZC4uZTRiMTk0ZjA2OWZiIDEw
MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vc29mdGlycS5o
CisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zb2Z0aXJxLmgKQEAg
LTksNiArOSw0IEBACiAjZGVmaW5lIEhWTV9EUENJX1NPRlRJUlEgICAgICAg
KE5SX0NPTU1PTl9TT0ZUSVJRUyArIDQpCiAjZGVmaW5lIE5SX0FSQ0hfU09G
VElSUVMgICAgICAgNQogCi1ib29sIGFyY2hfc2tpcF9zZW5kX2V2ZW50X2No
ZWNrKHVuc2lnbmVkIGludCBjcHUpOwotCiAjZW5kaWYgLyogX19BU01fU09G
VElSUV9IX18gKi8KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc29mdGlycS5j
IGIveGVuL2NvbW1vbi9zb2Z0aXJxLmMKaW5kZXggNjBmMzQ0ZTg0MjVlLi5k
YzNhYWJjZTMzMzAgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc29mdGlycS5j
CisrKyBiL3hlbi9jb21tb24vc29mdGlycS5jCkBAIC05NCw5ICs5NCw3IEBA
IHZvaWQgY3B1bWFza19yYWlzZV9zb2Z0aXJxKGNvbnN0IGNwdW1hc2tfdCAq
bWFzaywgdW5zaWduZWQgaW50IG5yKQogICAgICAgICByYWlzZV9tYXNrID0g
JnBlcl9jcHUoYmF0Y2hfbWFzaywgdGhpc19jcHUpOwogCiAgICAgZm9yX2Vh
Y2hfY3B1KGNwdSwgbWFzaykKLSAgICAgICAgaWYgKCAhdGVzdF9hbmRfc2V0
X2JpdChuciwgJnNvZnRpcnFfcGVuZGluZyhjcHUpKSAmJgotICAgICAgICAg
ICAgIGNwdSAhPSB0aGlzX2NwdSAmJgotICAgICAgICAgICAgICFhcmNoX3Nr
aXBfc2VuZF9ldmVudF9jaGVjayhjcHUpICkKKyAgICAgICAgaWYgKCAhYXJj
aF9zZXRfc29mdGlycShuciwgY3B1KSAmJiBjcHUgIT0gdGhpc19jcHUgKQog
ICAgICAgICAgICAgX19jcHVtYXNrX3NldF9jcHUoY3B1LCByYWlzZV9tYXNr
KTsKIAogICAgIGlmICggcmFpc2VfbWFzayA9PSAmc2VuZF9tYXNrICkKQEAg
LTEwNyw5ICsxMDUsNyBAQCB2b2lkIGNwdV9yYWlzZV9zb2Z0aXJxKHVuc2ln
bmVkIGludCBjcHUsIHVuc2lnbmVkIGludCBucikKIHsKICAgICB1bnNpZ25l
ZCBpbnQgdGhpc19jcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAKLSAgICBp
ZiAoIHRlc3RfYW5kX3NldF9iaXQobnIsICZzb2Z0aXJxX3BlbmRpbmcoY3B1
KSkKLSAgICAgICAgIHx8IChjcHUgPT0gdGhpc19jcHUpCi0gICAgICAgICB8
fCBhcmNoX3NraXBfc2VuZF9ldmVudF9jaGVjayhjcHUpICkKKyAgICBpZiAo
IGFyY2hfc2V0X3NvZnRpcnEobnIsIGNwdSkgfHwgY3B1ID09IHRoaXNfY3B1
ICkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCAhcGVyX2NwdShiYXRj
aGluZywgdGhpc19jcHUpIHx8IGluX2lycSgpICkKZGlmZiAtLWdpdCBhL3hl
bi9pbmNsdWRlL3hlbi9zb2Z0aXJxLmggYi94ZW4vaW5jbHVkZS94ZW4vc29m
dGlycS5oCmluZGV4IDMzZDZmMmVjZDIyMy4uNWMyMzYxODY1YjQ5IDEwMDY0
NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vc29mdGlycS5oCisrKyBiL3hlbi9p
bmNsdWRlL3hlbi9zb2Z0aXJxLmgKQEAgLTIxLDYgKzIxLDIyIEBAIGVudW0g
ewogCiAjZGVmaW5lIE5SX1NPRlRJUlFTIChOUl9DT01NT05fU09GVElSUVMg
KyBOUl9BUkNIX1NPRlRJUlFTKQogCisvKgorICogRW5zdXJlIHNvZnRpcnEg
QG5yIGlzIHBlbmRpbmcgb24gQGNwdS4gIFJldHVybiB0cnVlIGlmIGFuIElQ
SSBjYW4gYmUKKyAqIHNraXBwZWQsIGZhbHNlIGlmIHRoZSBJUEkgY2Fubm90
IGJlIHNraXBwZWQuCisgKi8KKyNpZm5kZWYgYXJjaF9zZXRfc29mdGlycQor
c3RhdGljIGFsd2F5c19pbmxpbmUgYm9vbCBhcmNoX3NldF9zb2Z0aXJxKHVu
c2lnbmVkIGludCBuciwgdW5zaWduZWQgaW50IGNwdSkKK3sKKyAgICAvKgor
ICAgICAqIFRyeSB0byBzZXQgdGhlIHNvZnRpcnEgcGVuZGluZy4gIElmIHdl
IHNldCB0aGUgYml0IChpLmUuIHRoZSBvbGQgYml0CisgICAgICogd2FzIDAp
LCB3ZSdyZSByZXNwb25zaWJsZSB0byBzZW5kIHRoZSBJUEkuICBJZiB0aGUg
c29mdGlycSB3YXMgYWxyZWFkeQorICAgICAqIHBlbmRpbmcgKGkuZS4gdGhl
IG9sZCBiaXQgd2FzIDEpLCBubyBJUEkgaXMgbmVlZGVkLgorICAgICAqLwor
ICAgIHJldHVybiB0ZXN0X2FuZF9zZXRfYml0KG5yLCAmc29mdGlycV9wZW5k
aW5nKGNwdSkpOworfQorI2VuZGlmCisKIHR5cGVkZWYgdm9pZCAoKnNvZnRp
cnFfaGFuZGxlcikodm9pZCk7CiAKIHZvaWQgZG9fc29mdGlycSh2b2lkKTsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-09.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-09.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjI2OjI0ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBJbXBsZW1lbnQgYSBuZXcgTVdBSVQgSVBJLWVsaXNp
b24gYWxnb3JpdGhtCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTog
dGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVu
Y29kaW5nOiA4Yml0CgpJbiBvcmRlciBlbGlkZSBJUElzLCB3ZSBtdXN0IGJl
IGFibGUgdG8gaWRlbnRpZnkgd2hldGhlciBhIHRhcmdldCBDUFUgaXMgaW4K
TVdBSVQgYXQgdGhlIHBvaW50IGl0IGlzIHdva2VuIHVwLiAgaS5lLiB0aGUg
c3RvcmUgdG8gd2FrZSBpdCB1cCBtdXN0IGFsc28KaWRlbnRpZnkgdGhlIHN0
YXRlLgoKQ3JlYXRlIGEgbmV3IGluX213YWl0IHZhcmlhYmxlIGJlc2lkZSBf
X3NvZnRpcnFfcGVuZGluZywgc28gd2UgY2FuIHVzZSBhCkNNUFhDSEcgdG8g
c2V0IHRoZSBzb2Z0aXJxIHdoaWxlIGFsc28gb2JzZXJ2aW5nIHRoZSBzdGF0
dXMgc2FmZWx5LiAgSW1wbGVtZW50CmFuIHg4NiB2ZXJzaW9uIG9mIGFyY2hf
cGVuZF9zb2Z0aXJxKCkgd2hpY2ggZG9lcyB0aGlzLgoKSW4gbXdhaXRfaWRs
ZV93aXRoX2hpbnRzKCksIGFkdmVydGlzZSBpbl9td2FpdCwgd2l0aCBhbiBl
eHBsYW5hdGlvbiBvZgpwcmVjaXNlbHkgd2hhdCBpdCBtZWFucy4gIFg4Nl9C
VUdfTU9OSVRPUiBjYW4gYmUgYWNjb3VudGVkIGZvciBzaW1wbHkgYnkgbm90
CmFkdmVydGlzaW5nIGluX213YWl0LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQWNrZWQtYnk6
IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgooY2hl
cnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzZTBiYzRiNTAzNTBiZDM1NzMwNGZk
NzlhNWRjMDQ3Mjc5MGRiYTkxKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4
Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRs
ZS5jCmluZGV4IGU0Njc5YTQ1YjVhNi4uMGQ2MjRiOWFlYmI2IDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9h
cmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTQ0Myw3ICs0NDMsMjEgQEAg
X19pbml0Y2FsbChjcHVfaWRsZV9rZXlfaW5pdCk7CiB2b2lkIG13YWl0X2lk
bGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQg
ZWN4KQogewogICAgIHVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29y
X2lkKCk7Ci0gICAgY29uc3QgdW5zaWduZWQgaW50ICp0aGlzX3NvZnRpcnFf
cGVuZGluZyA9ICZzb2Z0aXJxX3BlbmRpbmcoY3B1KTsKKyAgICBpcnFfY3B1
c3RhdF90ICpzdGF0ID0gJmlycV9zdGF0W2NwdV07CisgICAgY29uc3QgdW5z
aWduZWQgaW50ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZzdGF0LT5fX3Nv
ZnRpcnFfcGVuZGluZzsKKworICAgIC8qCisgICAgICogQnkgc2V0dGluZyBp
bl9td2FpdCwgd2UgcHJvbWlzZSB0byBvdGhlciBDUFVzIHRoYXQgd2UnbGwg
bm90aWNlIGNoYW5nZXMKKyAgICAgKiB0byBfX3NvZnRpcnFfcGVuZGluZyB3
aXRob3V0IGJlaW5nIHNlbnQgYW4gSVBJLiAgV2UgYWNoaWV2ZSB0aGlzIGJ5
CisgICAgICogZWl0aGVyIG5vdCBnb2luZyB0byBzbGVlcCwgb3IgYnkgaGF2
aW5nIGhhcmR3YXJlIG5vdGljZSBvbiBvdXIgYmVoYWxmLgorICAgICAqCisg
ICAgICogU29tZSBlcnJhdGEgZXhpc3Qgd2hlcmUgTU9OSVRPUiBkb2Vzbid0
IHdvcmsgcHJvcGVybHksIGFuZCB0aGUKKyAgICAgKiB3b3JrYXJvdW5kIGlz
IHRvIGZvcmNlIHRoZSB1c2Ugb2YgYW4gSVBJLiAgQ2F1c2UgdGhpcyB0byBo
YXBwZW4gYnkKKyAgICAgKiBzaW1wbHkgbm90IGFkdmVydGlzaW5nIG91cnNl
bHZlcyBhcyBiZWluZyBpbl9td2FpdC4KKyAgICAgKi8KKyAgICBhbHRlcm5h
dGl2ZV9pbygibW92YiAkMSwgJVtpbl9td2FpdF0iLAorICAgICAgICAgICAg
ICAgICAgICIiLCBYODZfQlVHX01PTklUT1IsCisgICAgICAgICAgICAgICAg
ICAgW2luX213YWl0XSAiPW0iIChzdGF0LT5pbl9td2FpdCkpOwogCiAgICAg
bW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGluZywgMCwgMCk7CiAKQEAgLTQ1
NSw2ICs0NjksMTAgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHModW5z
aWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAgbXdh
aXQoZWF4LCBlY3gpOwogICAgICAgICBzcGVjX2N0cmxfZXhpdF9pZGxlKGlu
Zm8pOwogICAgIH0KKworICAgIGFsdGVybmF0aXZlX2lvKCJtb3ZiICQwLCAl
W2luX213YWl0XSIsCisgICAgICAgICAgICAgICAgICAgIiIsIFg4Nl9CVUdf
TU9OSVRPUiwKKyAgICAgICAgICAgICAgICAgICBbaW5fbXdhaXRdICI9bSIg
KHN0YXQtPmluX213YWl0KSk7CiB9CiAKIHN0YXRpYyB2b2lkIGFjcGlfcHJv
Y2Vzc29yX2ZmaF9jc3RhdGVfZW50ZXIoc3RydWN0IGFjcGlfcHJvY2Vzc29y
X2N4ICpjeCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9oYXJkaXJxLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaGFyZGly
cS5oCmluZGV4IGYzZTkzY2M5YjUwNy4uMTY0N2NmZjA0ZGM4IDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaGFyZGlycS5oCisrKyBi
L3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJkaXJxLmgKQEAgLTUsNyAr
NSwxOSBAQAogI2luY2x1ZGUgPHhlbi90eXBlcy5oPgogCiB0eXBlZGVmIHN0
cnVjdCB7Ci0gICAgdW5zaWduZWQgaW50IF9fc29mdGlycV9wZW5kaW5nOwor
ICAgIC8qCisgICAgICogVGhlIGxheW91dCBpcyBpbXBvcnRhbnQuICBBbnkg
Q1BVIGNhbiBzZXQgYml0cyBpbiBfX3NvZnRpcnFfcGVuZGluZywKKyAgICAg
KiBidXQgaW5fbXdhaXQgaXMgYSBzdGF0dXMgYml0IG93bmVkIGJ5IHRoZSBD
UFUuICBzb2Z0aXJxX213YWl0X3JhdyBtdXN0CisgICAgICogY292ZXIgYm90
aCwgYW5kIG11c3QgYmUgaW4gYSBzaW5nbGUgY2FjaGVsaW5lLgorICAgICAq
LworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAg
IHVuc2lnbmVkIGludCBfX3NvZnRpcnFfcGVuZGluZzsKKyAgICAgICAgICAg
IGJvb2wgaW5fbXdhaXQ7CisgICAgICAgIH07CisgICAgICAgIHVpbnQ2NF90
IHNvZnRpcnFfbXdhaXRfcmF3OworICAgIH07CisKICAgICB1bnNpZ25lZCBp
bnQgX19sb2NhbF9pcnFfY291bnQ7CiAgICAgdW5zaWduZWQgaW50IG5taV9j
b3VudDsKICAgICB1bnNpZ25lZCBpbnQgbWNlX2NvdW50OwpkaWZmIC0tZ2l0
IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NvZnRpcnEuaCBiL3hlbi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9zb2Z0aXJxLmgKaW5kZXggZTRiMTk0ZjA2
OWZiLi41NWI2NWM5NzQ3YjEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zb2Z0aXJxLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3NvZnRpcnEuaApAQCAtMSw2ICsxLDggQEAKICNpZm5kZWYgX19B
U01fU09GVElSUV9IX18KICNkZWZpbmUgX19BU01fU09GVElSUV9IX18KIAor
I2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KKwogI2RlZmluZSBOTUlfU09GVElS
USAgICAgICAgICAgIChOUl9DT01NT05fU09GVElSUVMgKyAwKQogI2RlZmlu
ZSBUSU1FX0NBTElCUkFURV9TT0ZUSVJRIChOUl9DT01NT05fU09GVElSUVMg
KyAxKQogI2RlZmluZSBWQ1BVX0tJQ0tfU09GVElSUSAgICAgIChOUl9DT01N
T05fU09GVElSUVMgKyAyKQpAQCAtOSw0ICsxMSw1MCBAQAogI2RlZmluZSBI
Vk1fRFBDSV9TT0ZUSVJRICAgICAgIChOUl9DT01NT05fU09GVElSUVMgKyA0
KQogI2RlZmluZSBOUl9BUkNIX1NPRlRJUlFTICAgICAgIDUKIAorLyoKKyAq
IEVuc3VyZSBzb2Z0aXJxIEBuciBpcyBwZW5kaW5nIG9uIEBjcHUuICBSZXR1
cm4gdHJ1ZSBpZiBhbiBJUEkgY2FuIGJlCisgKiBza2lwcGVkLCBmYWxzZSBp
ZiB0aGUgSVBJIGNhbm5vdCBiZSBza2lwcGVkLgorICoKKyAqIFdlIHVzZSBh
IENNUFhDSEcgY292ZXJpbmcgYm90aCBfX3NvZnRpcnFfcGVuZGluZyBhbmQg
aW5fbXdhaXQsIGluIG9yZGVyIHRvCisgKiBzZXQgc29mdGlycSBAbnIgd2hp
bGUgYWxzbyBvYnNlcnZpbmcgaW5fbXdhaXQgaW4gYSByYWNlLWZyZWUgd2F5
LgorICovCitzdGF0aWMgYWx3YXlzX2lubGluZSBib29sIGFyY2hfc2V0X3Nv
ZnRpcnEodW5zaWduZWQgaW50IG5yLCB1bnNpZ25lZCBpbnQgY3B1KQorewor
ICAgIHVpbnQ2NF90ICpwdHIgPSAmaXJxX3N0YXRbY3B1XS5zb2Z0aXJxX213
YWl0X3JhdzsKKyAgICB1aW50NjRfdCBwcmV2LCBvbGQsIG5ldzsKKyAgICB1
bnNpZ25lZCBpbnQgc29mdGlycSA9IDFVIDw8IG5yOworCisgICAgb2xkID0g
QUNDRVNTX09OQ0UoKnB0cik7CisKKyAgICBmb3IgKCA7OyApCisgICAgewor
ICAgICAgICBpZiAoIG9sZCAmIHNvZnRpcnEgKQorICAgICAgICAgICAgLyog
U29mdGlycSBhbHJlYWR5IHBlbmRpbmcsIG5vdGhpbmcgdG8gZG8uICovCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBuZXcgPSBvbGQg
fCBzb2Z0aXJxOworCisgICAgICAgIHByZXYgPSBjbXB4Y2hnKHB0ciwgb2xk
LCBuZXcpOworICAgICAgICBpZiAoIHByZXYgPT0gb2xkICkKKyAgICAgICAg
ICAgIGJyZWFrOworCisgICAgICAgIG9sZCA9IHByZXY7CisgICAgfQorCisg
ICAgLyoKKyAgICAgKiBXZSBoYXZlIGNhdXNlZCB0aGUgc29mdGlycSB0byBi
ZWNvbWUgcGVuZGluZy4gIElmIGluX213YWl0IHdhcyBzZXQsIHRoZQorICAg
ICAqIHRhcmdldCBDUFUgd2lsbCBub3RpY2UgdGhlIG1vZGlmaWNhdGlvbiBh
bmQgYWN0IG9uIGl0LgorICAgICAqCisgICAgICogV2UgY2FuJ3QgYWNjZXNz
IHRoZSBpbl9td2FpdCBmaWVsZCBuaWNlbHksIHNvIHVzZSBzb21lIEJVSUxE
X0JVR19PTigpJ3MKKyAgICAgKiB0byBjcm9zcy1jaGVjayB0aGUgKDFVTCA8
PCAzMikgb3BlbmNvZGluZy4KKyAgICAgKi8KKyAgICBCVUlMRF9CVUdfT04o
c2l6ZW9mKGlycV9zdGF0WzBdLnNvZnRpcnFfbXdhaXRfcmF3KSAhPSA4KTsK
KyAgICBCVUlMRF9CVUdfT04oKG9mZnNldG9mKGlycV9jcHVzdGF0X3QsIGlu
X213YWl0KSAtCisgICAgICAgICAgICAgICAgICBvZmZzZXRvZihpcnFfY3B1
c3RhdF90LCBzb2Z0aXJxX213YWl0X3JhdykpICE9IDQpOworCisgICAgcmV0
dXJuIG5ldyAmICgxVUwgPDwgMzIpIC8qIGluX213YWl0ICovOworCit9Cisj
ZGVmaW5lIGFyY2hfc2V0X3NvZnRpcnEgYXJjaF9zZXRfc29mdGlycQorCiAj
ZW5kaWYgLyogX19BU01fU09GVElSUV9IX18gKi8K

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-10.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-10.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogV2VkLCAyIEp1bCAyMDI1IDE0OjUxOjM4ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBGaXggYnVnZ3kgIng4Ni9td2FpdC1pZGxlOiBlbmFi
bGUgaW50ZXJydXB0cyBiZWZvcmUgQzEgb24KIFhlb25zIgoKVGhlIGNoZWNr
IG9mIHRoaXNfc29mdGlycV9wZW5kaW5nIG11c3QgYmUgcGVyZm9ybWVkIHdp
dGggaXJxcyBkaXNhYmxlZCwgYnV0CnRoaXMgcHJvcGVydHkgd2FzIGJyb2tl
biBieSBhbiBhdHRlbXB0IHRvIG9wdGltaXNlIGVudHJ5L2V4aXQgbGF0ZW5j
eS4KCkNvbW1pdCBjMjI3MjMzYWQ2NGMgaW4gTGludXggKHdoaWNoIHdlIGNv
cGllZCBpbnRvIFhlbikgd2FzIGZpeGVkIHVwIGJ5CmVkYzhmYzAxZjYwOCBp
biBMaW51eCwgd2hpY2ggd2UgaGF2ZSBzbyBmYXIgbWlzc2VkLgoKR29pbmcg
dG8gc2xlZXAgd2l0aG91dCB3YWtpbmcgb24gaW50ZXJydXB0cyBpcyBub25z
ZW5zaWNhbCBvdXRzaWRlIG9mCnBsYXlfZGVhZCgpLCBzbyBvdmVybG9hZCB0
aGlzIHRvIHNlbGVjdCBiZXR3ZWVuIHR3byBwb3NzaWJsZSBNV0FJVHMsIHRo
ZQpzZWNvbmQgdXNpbmcgdGhlIFNUSSBzaGFkb3cgdG8gY292ZXIgTVdBSVQg
Zm9yIGV4YWN0bHkgdGhlIHNhbWUgcmVhc29uIGFzIHdlCmRvIGluIHNhZmVf
aGFsdCgpLgoKRml4ZXM6IGIxN2UwZWM3MmVkZSAoIng4Ni9td2FpdC1pZGxl
OiBlbmFibGUgaW50ZXJydXB0cyBiZWZvcmUgQzEgb24gWGVvbnMiKQpTaWdu
ZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRy
aXguY29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1
c2UuY29tPgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA5YjBmMGY2ZTIz
NTYxOGMyNzY0ZTkyNWI1OGM0YmZlNDEyNzMwY2VkKQoKZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYv
YWNwaS9jcHVfaWRsZS5jCmluZGV4IDBkNjI0YjlhZWJiNi4uYzU4YTUxYTA5
ZjMzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5j
CisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTgwLDYg
KzgwLDEzIEBAIHN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgbXdhaXQodW5z
aWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAgICAg
ICAgICAgICA6OiAiYSIgKGVheCksICJjIiAoZWN4KSApOwogfQogCitzdGF0
aWMgYWx3YXlzX2lubGluZSB2b2lkIHN0aV9td2FpdF9jbGkodW5zaWduZWQg
aW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKK3sKKyAgICAvKiBTVEkgc2hh
ZG93IGNvdmVycyBNV0FJVC4gKi8KKyAgICBhc20gdm9sYXRpbGUgKCAic3Rp
OyBtd2FpdDsgY2xpIgorICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoZWF4
KSwgImMiIChlY3gpICk7Cit9CisKICNkZWZpbmUgR0VUX0hXX1JFU19JTl9O
Uyhtc3IsIHZhbCkgXAogICAgIGRvIHsgcmRtc3JsKG1zciwgdmFsKTsgdmFs
ID0gdHNjX3RpY2tzMm5zKHZhbCk7IH0gd2hpbGUoIDAgKQogI2RlZmluZSBH
RVRfTUM2X1JFUyh2YWwpICBHRVRfSFdfUkVTX0lOX05TKDB4NjY0LCB2YWwp
CkBAIC00NjEsMTIgKzQ2OCwxOSBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9o
aW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogCiAg
ICAgbW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGluZywgMCwgMCk7CiAKKyAg
ICBBU1NFUlQoIWxvY2FsX2lycV9pc19lbmFibGVkKCkpOworCiAgICAgaWYg
KCAhKnRoaXNfc29mdGlycV9wZW5kaW5nICkKICAgICB7CiAgICAgICAgIHN0
cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdldF9jcHVfaW5mbygpOwogCiAgICAg
ICAgIHNwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8pOwotICAgICAgICBtd2Fp
dChlYXgsIGVjeCk7CisKKyAgICAgICAgaWYgKCBlY3ggJiBNV0FJVF9FQ1hf
SU5URVJSVVBUX0JSRUFLICkKKyAgICAgICAgICAgIG13YWl0KGVheCwgZWN4
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3RpX213YWl0X2NsaShl
YXgsIGVjeCk7CisKICAgICAgICAgc3BlY19jdHJsX2V4aXRfaWRsZShpbmZv
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbXdh
aXQtaWRsZS5jIGIveGVuL2FyY2gveDg2L2NwdS9td2FpdC1pZGxlLmMKaW5k
ZXggNWMxNmY1YWQzYTgyLi41ZTk4MDExYmZkMGMgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9jcHUvbXdhaXQtaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4
Ni9jcHUvbXdhaXQtaWRsZS5jCkBAIC05NDYsMTIgKzk0Niw4IEBAIHN0YXRp
YyB2b2lkIGNmX2NoZWNrIG13YWl0X2lkbGUodm9pZCkKIAogCXVwZGF0ZV9s
YXN0X2N4X3N0YXQocG93ZXIsIGN4LCBiZWZvcmUpOwogCi0JaWYgKGN4LT5p
cnFfZW5hYmxlX2Vhcmx5KQotCQlsb2NhbF9pcnFfZW5hYmxlKCk7Ci0KLQlt
d2FpdF9pZGxlX3dpdGhfaGludHMoY3gtPmFkZHJlc3MsIE1XQUlUX0VDWF9J
TlRFUlJVUFRfQlJFQUspOwotCi0JbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwlt
d2FpdF9pZGxlX3dpdGhfaGludHMoY3gtPmFkZHJlc3MsCisJCQkgICAgICBj
eC0+aXJxX2VuYWJsZV9lYXJseSA/IDAgOiBNV0FJVF9FQ1hfSU5URVJSVVBU
X0JSRUFLKTsKIAogCWFmdGVyID0gYWx0ZXJuYXRpdmVfY2FsbChjcHVpZGxl
X2dldF90aWNrKTsKIAo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-11.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-11.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxNzoxOToxOSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogUmVhcnJhbmdlIGd1ZXN0X2NvbW1vbl8q
X2ZlYXR1cmVfYWRqdXN0bWVudHMoKQoKVHVybiB0aGUgaWYoKXMgaW50byBz
d2l0Y2goKWVzLCBhcyB3ZSdyZSBnb2luZyB0byBuZWVkIEFNRCBzZWN0aW9u
cy4KCk1vdmUgdGhlIFJUTSBhZGp1c3RtZW50cyBpbnRvIHRoZSBJbnRlbCBz
ZWN0aW9uLCB3aGVyZSB0aGV5IG91Z2h0IHRvIGxpdmUuCgpObyBmdW5jdGlv
bmFsIGNoYW5nZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYyBiL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5
LmMKaW5kZXggYzNhYWFjODYxZDE1Li40N2VlMWZmNDc0NjAgMTAwNjQ0Ci0t
LSBhL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMKKysrIGIveGVuL2FyY2gv
eDg2L2NwdS1wb2xpY3kuYwpAQCAtNDE4LDggKzQxOCw5IEBAIHN0YXRpYyB2
b2lkIF9faW5pdCBndWVzdF9jb21tb25fZGVmYXVsdF9sZWF2ZXMoc3RydWN0
IGNwdV9wb2xpY3kgKnApCiAKIHN0YXRpYyB2b2lkIF9faW5pdCBndWVzdF9j
b21tb25fbWF4X2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQog
ewotICAgIGlmICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9W
RU5ET1JfSU5URUwgKQorICAgIHN3aXRjaCAoIGJvb3RfY3B1X2RhdGEueDg2
X3ZlbmRvciApCiAgICAgeworICAgIGNhc2UgWDg2X1ZFTkRPUl9JTlRFTDoK
ICAgICAgICAgLyoKICAgICAgICAgICogTVNSX0FSQ0hfQ0FQUyBpcyBqdXN0
IGZlYXR1cmUgZGF0YSwgYW5kIHdlIGNhbiBvZmZlciBpdCB0byBndWVzdHMK
ICAgICAgICAgICogdW5jb25kaXRpb25hbGx5LCBhbHRob3VnaCBsaW1pdCBp
dCB0byBJbnRlbCBzeXN0ZW1zIGFzIGl0IGlzIGhpZ2hseQpAQCAtNDY0LDYg
KzQ2NSwyMiBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX21h
eF9mZWF0dXJlX2FkanVzdG1lbnRzKHVpbnQzMl90ICpmcykKICAgICAgICAg
ICAgICBib290X2NwdV9kYXRhLng4Nl9tb2RlbCA9PSBJTlRFTF9GQU02X1NL
WUxBS0VfWCAmJgogICAgICAgICAgICAgIHJhd19jcHVfcG9saWN5LmZlYXQu
Y2x3YiApCiAgICAgICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfQ0xX
QiwgZnMpOworCisgICAgICAgIC8qCisgICAgICAgICAqIFRvIG1pdGlnYXRl
IE5hdGl2ZS1CSEksIG9uZSBvcHRpb24gaXMgdG8gdXNlIGEgVFNYIEFib3J0
IG9uIGNhcGFibGUKKyAgICAgICAgICogc3lzdGVtcy4gIFRoaXMgaXMgc2Fm
ZSBldmVuIGlmIFJUTSBoYXMgYmVlbiBkaXNhYmxlZCBmb3Igb3RoZXIKKyAg
ICAgICAgICogcmVhc29ucyB2aWEgTVNSX1RTWF97Q1RSTCxGT1JDRV9BQk9S
VH0uICBIb3dldmVyLCBhIGd1ZXN0IGtlcm5lbAorICAgICAgICAgKiBkb2Vz
bid0IGdldCB0byBrbm93IHRoaXMgdHlwZSBvZiBpbmZvcm1hdGlvbi4KKyAg
ICAgICAgICoKKyAgICAgICAgICogVGhlcmVmb3JlIHRoZSBtZWFuaW5nIG9m
IFJUTV9BTFdBWVNfQUJPUlQgaGFzIGJlZW4gYWRqdXN0ZWQsIHRvCisgICAg
ICAgICAqIGluc3RlYWQgbWVhbiAiWEJFR0lOIHdvbid0IGZhdWx0Ii4gIFRo
aXMgaXMgZW5vdWdoIGZvciBhIGd1ZXN0CisgICAgICAgICAqIGtlcm5lbCB0
byBtYWtlIGFuIGluZm9ybWVkIGNob2ljZSBXUlQgbWl0aWdhdGluZyBOYXRp
dmUtQkhJLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiBSVE0tY2FwYWJs
ZSwgd2UgY2FuIHJ1biBhIFZNIHdoaWNoIGhhcyBzZWVuIFJUTV9BTFdBWVNf
QUJPUlQuCisgICAgICAgICAqLworICAgICAgICBpZiAoIHRlc3RfYml0KFg4
Nl9GRUFUVVJFX1JUTSwgZnMpICkKKyAgICAgICAgICAgIF9fc2V0X2JpdChY
ODZfRkVBVFVSRV9SVE1fQUxXQVlTX0FCT1JULCBmcyk7CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIAogICAgIC8qCkBAIC00NzUsMjcgKzQ5MiwxMyBAQCBz
dGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX21heF9mZWF0dXJlX2Fk
anVzdG1lbnRzKHVpbnQzMl90ICpmcykKICAgICAgKi8KICAgICBfX3NldF9i
aXQoWDg2X0ZFQVRVUkVfSFRULCBmcyk7CiAgICAgX19zZXRfYml0KFg4Nl9G
RUFUVVJFX0NNUF9MRUdBQ1ksIGZzKTsKLQotICAgIC8qCi0gICAgICogVG8g
bWl0aWdhdGUgTmF0aXZlLUJISSwgb25lIG9wdGlvbiBpcyB0byB1c2UgYSBU
U1ggQWJvcnQgb24gY2FwYWJsZQotICAgICAqIHN5c3RlbXMuICBUaGlzIGlz
IHNhZmUgZXZlbiBpZiBSVE0gaGFzIGJlZW4gZGlzYWJsZWQgZm9yIG90aGVy
IHJlYXNvbnMKLSAgICAgKiB2aWEgTVNSX1RTWF97Q1RSTCxGT1JDRV9BQk9S
VH0uICBIb3dldmVyLCBhIGd1ZXN0IGtlcm5lbCBkb2Vzbid0IGdldCB0bwot
ICAgICAqIGtub3cgdGhpcyB0eXBlIG9mIGluZm9ybWF0aW9uLgotICAgICAq
Ci0gICAgICogVGhlcmVmb3JlIHRoZSBtZWFuaW5nIG9mIFJUTV9BTFdBWVNf
QUJPUlQgaGFzIGJlZW4gYWRqdXN0ZWQsIHRvIGluc3RlYWQKLSAgICAgKiBt
ZWFuICJYQkVHSU4gd29uJ3QgZmF1bHQiLiAgVGhpcyBpcyBlbm91Z2ggZm9y
IGEgZ3Vlc3Qga2VybmVsIHRvIG1ha2UKLSAgICAgKiBhbiBpbmZvcm1lZCBj
aG9pY2UgV1JUIG1pdGlnYXRpbmcgTmF0aXZlLUJISS4KLSAgICAgKgotICAg
ICAqIElmIFJUTS1jYXBhYmxlLCB3ZSBjYW4gcnVuIGEgVk0gd2hpY2ggaGFz
IHNlZW4gUlRNX0FMV0FZU19BQk9SVC4KLSAgICAgKi8KLSAgICBpZiAoIHRl
c3RfYml0KFg4Nl9GRUFUVVJFX1JUTSwgZnMpICkKLSAgICAgICAgX19zZXRf
Yml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNfQUJPUlQsIGZzKTsKIH0KIAog
c3RhdGljIHZvaWQgX19pbml0IGd1ZXN0X2NvbW1vbl9kZWZhdWx0X2ZlYXR1
cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQogewotICAgIGlmICggYm9v
dF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfSU5URUwgKQor
ICAgIHN3aXRjaCAoIGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciApCiAgICAg
eworICAgIGNhc2UgWDg2X1ZFTkRPUl9JTlRFTDoKICAgICAgICAgLyoKICAg
ICAgICAgICogSXZ5QnJpZGdlIGNsaWVudCBwYXJ0cyBzdWZmZXIgZnJvbSBs
ZWFrYWdlIG9mIFJEUkFORCBkYXRhIGR1ZSB0byBTUkJEUwogICAgICAgICAg
KiAoWFNBLTMyMCAvIENWRS0yMDIwLTA1NDMpLCBhbmQgd29uJ3QgYmUgcmVj
ZWl2aW5nIG1pY3JvY29kZSB0bwpAQCAtNTM5LDYgKzU0MiwyMyBAQCBzdGF0
aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9h
ZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICAgICAgICAgYm9vdF9j
cHVfZGF0YS54ODZfbW9kZWwgPT0gSU5URUxfRkFNNl9TS1lMQUtFX1ggJiYK
ICAgICAgICAgICAgICByYXdfY3B1X3BvbGljeS5mZWF0LmNsd2IgKQogICAg
ICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfQ0xXQiwgZnMpOwor
CisgICAgICAgIC8qCisgICAgICAgICAqIE9uIGNlcnRhaW4gaGFyZHdhcmUs
IHNwZWN1bGF0aXZlIG9yIGVycmF0YSB3b3JrYXJvdW5kcyBjYW4gcmVzdWx0
CisgICAgICAgICAqIGluIFRTWCBiZWluZyBwbGFjZWQgaW4gImZvcmNlLWFi
b3J0IiBtb2RlLCB3aGVyZSBpdCBkb2Vzbid0CisgICAgICAgICAqIGFjdHVh
bGx5IGZ1bmN0aW9uIGFzIGV4cGVjdGVkLCBidXQgaXMgdGVjaG5pY2FsbHkg
Y29tcGF0aWJsZSB3aXRoCisgICAgICAgICAqIHRoZSBJU0EuCisgICAgICAg
ICAqCisgICAgICAgICAqIERvIG5vdCBhZHZlcnRpc2UgUlRNIHRvIGd1ZXN0
cyBieSBkZWZhdWx0IGlmIGl0IHdvbid0IGFjdHVhbGx5CisgICAgICAgICAq
IHdvcmsuICBJbnN0ZWFkLCBhZHZlcnRpc2UgUlRNX0FMV0FZU19BQk9SVCBp
bmRpY2F0aW5nIHRoYXQgVFNYCisgICAgICAgICAqIEFib3J0cyBhcmUgc2Fm
ZSB0byB1c2UsIGUuZy4gZm9yIG1pdGlnYXRpbmcgTmF0aXZlLUJISS4KKyAg
ICAgICAgICovCisgICAgICAgIGlmICggcnRtX2Rpc2FibGVkICkKKyAgICAg
ICAgeworICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfUlRN
LCBmcyk7CisgICAgICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfUlRN
X0FMV0FZU19BQk9SVCwgZnMpOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OwogICAgIH0KIAogICAgIC8qCkBAIC01NTAsMjEgKzU3MCw2IEBAIHN0YXRp
YyB2b2lkIF9faW5pdCBndWVzdF9jb21tb25fZGVmYXVsdF9mZWF0dXJlX2Fk
anVzdG1lbnRzKHVpbnQzMl90ICpmcykKIAogICAgIGlmICggIWNwdV9oYXNf
Y21wX2xlZ2FjeSApCiAgICAgICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJF
X0NNUF9MRUdBQ1ksIGZzKTsKLQotICAgIC8qCi0gICAgICogT24gY2VydGFp
biBoYXJkd2FyZSwgc3BlY3VsYXRpdmUgb3IgZXJyYXRhIHdvcmthcm91bmRz
IGNhbiByZXN1bHQgaW4KLSAgICAgKiBUU1ggYmVpbmcgcGxhY2VkIGluICJm
b3JjZS1hYm9ydCIgbW9kZSwgd2hlcmUgaXQgZG9lc24ndCBhY3R1YWxseQot
ICAgICAqIGZ1bmN0aW9uIGFzIGV4cGVjdGVkLCBidXQgaXMgdGVjaG5pY2Fs
bHkgY29tcGF0aWJsZSB3aXRoIHRoZSBJU0EuCi0gICAgICoKLSAgICAgKiBE
byBub3QgYWR2ZXJ0aXNlIFJUTSB0byBndWVzdHMgYnkgZGVmYXVsdCBpZiBp
dCB3b24ndCBhY3R1YWxseSB3b3JrLgotICAgICAqIEluc3RlYWQsIGFkdmVy
dGlzZSBSVE1fQUxXQVlTX0FCT1JUIGluZGljYXRpbmcgdGhhdCBUU1ggQWJv
cnRzIGFyZSBzYWZlCi0gICAgICogdG8gdXNlLCBlLmcuIGZvciBtaXRpZ2F0
aW5nIE5hdGl2ZS1CSEkuCi0gICAgICovCi0gICAgaWYgKCBydG1fZGlzYWJs
ZWQgKQotICAgIHsKLSAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVf
UlRNLCBmcyk7Ci0gICAgICAgIF9fc2V0X2JpdChYODZfRkVBVFVSRV9SVE1f
QUxXQVlTX0FCT1JULCBmcyk7Ci0gICAgfQogfQogCiBzdGF0aWMgdm9pZCBf
X2luaXQgZ3Vlc3RfY29tbW9uX2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMy
X3QgKmZzKQo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-12.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-12.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxMCBTZXAgMjAyNCAxOTo1NToxNSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogSW5mcmFzdHJ1Y3R1cmUgZm9yIENQVUlE
IGxlYWYgMHg4MDAwMDAyMS5lY3gKClNpZ25lZC1vZmYtYnk6IEFuZHJldyBD
b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5
OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0
IGEvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcHVpZC5jIGIvdG9vbHMvbGli
cy9saWdodC9saWJ4bF9jcHVpZC5jCmluZGV4IDA2M2ZlODZlYjcyZi4uZjcz
OGUxN2IxOWU0IDEwMDY0NAotLS0gYS90b29scy9saWJzL2xpZ2h0L2xpYnhs
X2NwdWlkLmMKKysrIGIvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcHVpZC5j
CkBAIC0zNDIsNiArMzQyLDcgQEAgaW50IGxpYnhsX2NwdWlkX3BhcnNlX2Nv
bmZpZyhsaWJ4bF9jcHVpZF9wb2xpY3lfbGlzdCAqcG9saWN5LCBjb25zdCBj
aGFyKiBzdHIpCiAgICAgICAgIENQVUlEX0VOVFJZKDB4MDAwMDAwMDcsICAx
LCBDUFVJRF9SRUdfRURYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBhLCBD
UFVJRF9SRUdfRUFYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBhLCBDUFVJ
RF9SRUdfRURYKSwKKyAgICAgICAgQ1BVSURfRU5UUlkoMHg4MDAwMDAyMSwg
TkEsIENQVUlEX1JFR19FQ1gpLAogI3VuZGVmIE1TUl9FTlRSWQogI3VuZGVm
IENQVUlEX0VOVFJZCiAgICAgfTsKZGlmZiAtLWdpdCBhL3Rvb2xzL21pc2Mv
eGVuLWNwdWlkLmMgYi90b29scy9taXNjL3hlbi1jcHVpZC5jCmluZGV4IDRj
NDU5MzUyOGRmZS4uOGUzNmI4ZTY5NjAwIDEwMDY0NAotLS0gYS90b29scy9t
aXNjL3hlbi1jcHVpZC5jCisrKyBiL3Rvb2xzL21pc2MveGVuLWNwdWlkLmMK
QEAgLTM3LDYgKzM3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAg
eyAiQ1BVSUQgMHgwMDAwMDAwNzoxLmVkeCIsICAgICAiN2QxIiB9LAogICAg
IHsgIk1TUl9BUkNIX0NBUFMubG8iLCAgICAgICAgICJtMTBBbCIgfSwKICAg
ICB7ICJNU1JfQVJDSF9DQVBTLmhpIiwgICAgICAgICAibTEwQWgiIH0sCisg
ICAgeyAiQ1BVSUQgMHg4MDAwMDAyMS5lY3giLCAgICAgICJlMjFjIiB9LAog
fTsKIAogI2RlZmluZSBDT0xfQUxJR04gIjI0IgpkaWZmIC0tZ2l0IGEveGVu
L2FyY2gveDg2L2NwdS1wb2xpY3kuYyBiL3hlbi9hcmNoL3g4Ni9jcHUtcG9s
aWN5LmMKaW5kZXggNDdlZTFmZjQ3NDYwLi45ZDFmZjYyNjhkNzkgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMKKysrIGIveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYwpAQCAtMzMwLDcgKzMzMCw2IEBAIHN0YXRp
YyB2b2lkIHJlY2FsY3VsYXRlX21pc2Moc3RydWN0IGNwdV9wb2xpY3kgKnAp
CiAgICAgICAgIHAtPmV4dGQucmF3WzB4MWZdID0gRU1QVFlfTEVBRjsgLyog
U0VWICovCiAgICAgICAgIHAtPmV4dGQucmF3WzB4MjBdID0gRU1QVFlfTEVB
RjsgLyogUGxhdGZvcm0gUW9TICovCiAgICAgICAgIHAtPmV4dGQucmF3WzB4
MjFdLmIgPSAwOwotICAgICAgICBwLT5leHRkLnJhd1sweDIxXS5jID0gMDsK
ICAgICAgICAgcC0+ZXh0ZC5yYXdbMHgyMV0uZCA9IDA7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvY29t
bW9uLmMgYi94ZW4vYXJjaC94ODYvY3B1L2NvbW1vbi5jCmluZGV4IDA2N2Q4
NTViYWRmMC4uNGVhY2RhYWMwZjRmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94
ODYvY3B1L2NvbW1vbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvY29tbW9u
LmMKQEAgLTQ3OCw3ICs0NzgsOSBAQCBzdGF0aWMgdm9pZCBnZW5lcmljX2lk
ZW50aWZ5KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIAlpZiAoYy0+ZXh0ZW5k
ZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAwMDAwOCkKIAkJYy0+eDg2X2NhcGFi
aWxpdHlbRkVBVFVSRVNFVF9lOGJdID0gY3B1aWRfZWJ4KDB4ODAwMDAwMDgp
OwogCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA+PSAweDgwMDAwMDIx
KQotCQljLT54ODZfY2FwYWJpbGl0eVtGRUFUVVJFU0VUX2UyMWFdID0gY3B1
aWRfZWF4KDB4ODAwMDAwMjEpOworCQljcHVpZCgweDgwMDAwMDIxLAorCQkg
ICAgICAmYy0+eDg2X2NhcGFiaWxpdHlbRkVBVFVSRVNFVF9lMjFhXSwgJnRt
cCwKKwkJICAgICAgJmMtPng4Nl9jYXBhYmlsaXR5W0ZFQVRVUkVTRVRfZTIx
Y10sICZ0bXApOwogCiAJLyogSW50ZWwtZGVmaW5lZCBmbGFnczogbGV2ZWwg
MHgwMDAwMDAwNyAqLwogCWlmIChjLT5jcHVpZF9sZXZlbCA+PSA3KSB7CmRp
ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVh
dHVyZXNldC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L2NwdWZl
YXR1cmVzZXQuaAppbmRleCAxMDQ2Mjc3MWU1MmQuLmNiOTI2NzgyYThmNyAx
MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L2NwdWZl
YXR1cmVzZXQuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYv
Y3B1ZmVhdHVyZXNldC5oCkBAIC0zODMsNiArMzgzLDggQEAgWEVOX0NQVUZF
QVRVUkUoUkZEU19DTEVBUiwgICAgICAgICAxNiozMisyOCkgLyohQXwgUmVn
aXN0ZXIgRmlsZShzKSBjbGVhcmVkIGJ5IFYKIFhFTl9DUFVGRUFUVVJFKFBC
X09QVF9DVFJMLCAgICAgICAgMTYqMzIrMzIpIC8qICAgTVNSX1BCX09QVF9D
VFJMLklCUEJfQUxUICovCiBYRU5fQ1BVRkVBVFVSRShJVFNfTk8sICAgICAg
ICAgICAgIDE2KjMyKzYyKSAvKiFBIE5vIEluZGlyZWN0IFRhcmdldCBTZWxl
Y3Rpb24gKi8KIAorLyogQU1ELWRlZmluZWQgQ1BVIGZlYXR1cmVzLCBDUFVJ
RCBsZXZlbCAweDgwMDAwMDIxLmVjeCwgd29yZCAxOCAqLworCiAjZW5kaWYg
LyogWEVOX0NQVUZFQVRVUkUgKi8KIAogLyogQ2xlYW4gdXAgZnJvbSBhIGRl
ZmF1bHQgaW5jbHVkZS4gIENsb3NlIHRoZSBlbnVtIChmb3IgQykuICovCmRp
ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbGliL3g4Ni9jcHUtcG9saWN5
LmggYi94ZW4vaW5jbHVkZS94ZW4vbGliL3g4Ni9jcHUtcG9saWN5LmgKaW5k
ZXggZjA4ZjMwYWZlY2EzLi5kZDIwNGE4MjViMDcgMTAwNjQ0Ci0tLSBhL3hl
bi9pbmNsdWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaAorKysgYi94ZW4v
aW5jbHVkZS94ZW4vbGliL3g4Ni9jcHUtcG9saWN5LmgKQEAgLTIyLDYgKzIy
LDcgQEAKICNkZWZpbmUgRkVBVFVSRVNFVF83ZDEgICAgICAgMTUgLyogMHgw
MDAwMDAwNzoxLmVkeCAgICAqLwogI2RlZmluZSBGRUFUVVJFU0VUX20xMEFs
ICAgICAxNiAvKiAweDAwMDAwMTBhLmVheCAgICAgICovCiAjZGVmaW5lIEZF
QVRVUkVTRVRfbTEwQWggICAgIDE3IC8qIDB4MDAwMDAxMGEuZWR4ICAgICAg
Ki8KKyNkZWZpbmUgRkVBVFVSRVNFVF9lMjFjICAgICAgMTggLyogMHg4MDAw
MDAyMS5lY3ggICAgICAqLwogCiBzdHJ1Y3QgY3B1aWRfbGVhZgogewpAQCAt
MzI4LDcgKzMyOSwxMSBAQCBzdHJ1Y3QgY3B1X3BvbGljeQogICAgICAgICAg
ICAgdWludDE2X3QgdWNvZGVfc2l6ZTsgLyogVW5pdHMgb2YgMTYgYnl0ZXMg
Ki8KICAgICAgICAgICAgIHVpbnQ4X3QgIHJhcF9zaXplOyAgIC8qIFVuaXRz
IG9mIDggZW50cmllcyAqLwogICAgICAgICAgICAgdWludDhfdCAgOjg7Ci0g
ICAgICAgICAgICB1aW50MzJfdCAvKiBjICovOjMyLCAvKiBkICovOjMyOwor
ICAgICAgICAgICAgdW5pb24geworICAgICAgICAgICAgICAgIHVpbnQzMl90
IGUyMWM7CisgICAgICAgICAgICAgICAgc3RydWN0IHsgREVDTF9CSVRGSUVM
RChlMjFjKTsgfTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICB1aW50
MzJfdCAvKiBkICovOjMyOwogICAgICAgICB9OwogICAgIH0gZXh0ZDsKIApk
aWZmIC0tZ2l0IGEveGVuL2xpYi94ODYvY3B1aWQuYyBiL3hlbi9saWIveDg2
L2NwdWlkLmMKaW5kZXggZWI3Njk4ZGM3MzI1Li42Mjk4ZDA1MWYyYTYgMTAw
NjQ0Ci0tLSBhL3hlbi9saWIveDg2L2NwdWlkLmMKKysrIGIveGVuL2xpYi94
ODYvY3B1aWQuYwpAQCAtODEsNiArODEsNyBAQCB2b2lkIHg4Nl9jcHVfcG9s
aWN5X3RvX2ZlYXR1cmVzZXQoCiAgICAgZnNbRkVBVFVSRVNFVF83ZDFdICAg
ICAgID0gcC0+ZmVhdC5fN2QxOwogICAgIGZzW0ZFQVRVUkVTRVRfbTEwQWxd
ICAgICA9IHAtPmFyY2hfY2Fwcy5sbzsKICAgICBmc1tGRUFUVVJFU0VUX20x
MEFoXSAgICAgPSBwLT5hcmNoX2NhcHMuaGk7CisgICAgZnNbRkVBVFVSRVNF
VF9lMjFjXSAgICAgID0gcC0+ZXh0ZC5lMjFjOwogfQogCiB2b2lkIHg4Nl9j
cHVfZmVhdHVyZXNldF90b19wb2xpY3koCkBAIC0xMDQsNiArMTA1LDcgQEAg
dm9pZCB4ODZfY3B1X2ZlYXR1cmVzZXRfdG9fcG9saWN5KAogICAgIHAtPmZl
YXQuXzdkMSAgICAgICAgICAgICA9IGZzW0ZFQVRVUkVTRVRfN2QxXTsKICAg
ICBwLT5hcmNoX2NhcHMubG8gICAgICAgICAgPSBmc1tGRUFUVVJFU0VUX20x
MEFsXTsKICAgICBwLT5hcmNoX2NhcHMuaGkgICAgICAgICAgPSBmc1tGRUFU
VVJFU0VUX20xMEFoXTsKKyAgICBwLT5leHRkLmUyMWMgICAgICAgICAgICAg
PSBmc1tGRUFUVVJFU0VUX2UyMWNdOwogfQogCiB2b2lkIHg4Nl9jcHVfcG9s
aWN5X3JlY2FsY19zeW50aChzdHJ1Y3QgY3B1X3BvbGljeSAqcCkK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-13.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-13.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBTZXAgMjAyNCAxMToyODozOSArMDEwMApTdWJq
ZWN0OiB4ODYvdWNvZGU6IERpZ2VzdHMgZm9yIFRTQSBtaWNyb2NvZGUKCkFN
RCBhcmUgcmVsZWFzaW5nIG1pY3JvY29kZSBmb3IgVFNBLCBzbyBleHRlbmQg
dGhlIGtub3duLXByb3ZlbmFuY2UgbGlzdCB3aXRoCnRoZWlyIGhhc2hlcy4g
IFRoZXNlIHdlcmUgcHJvZHVjZWQgYmVmb3JlIHRoZSByZW1lZGlhdGlvbiBv
ZiB0aGUgbWljcm9jb2RlCnNpZ25hdHVyZSBpc3N1ZXMgKHRoZSBlbnRyeXNp
Z24gdnVsbmVyYWJpbGl0eSksIHNvIGNhbiBiZSBPUy1sb2FkZWQgb24Kb3V0
LW9mLWRhdGUgZmlybXdhcmUuCgpJbmNsdWRlIGFuIG9mZi1ieS1kZWZhdWx0
IGNoZWNrIGZvciB0aGUgc29ydGVkLW5lc3Mgb2YgcGF0Y2hfZGlnZXN0c1td
LiAgSXQncwpub3Qgd29ydGggcnVubmluZyBnZW5lcmFsbHkgdW5kZXIgU0VM
Rl9URVNUUywgYnV0IGlzIHVzZWZ1bCB3aGVuIGVkaXRpbmcgdGhlCmRpZ2Vz
dCBsaXN0LgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NzEgLyBDVkUtMjAyNC0z
NjM1MCAvIENWRS0yMDI0LTM2MzU3LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQWNrZWQtYnk6
IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQg
YS94ZW4vYXJjaC94ODYvY3B1L21pY3JvY29kZS9hbWQtcGF0Y2gtZGlnZXN0
cy5jIGIveGVuL2FyY2gveDg2L2NwdS9taWNyb2NvZGUvYW1kLXBhdGNoLWRp
Z2VzdHMuYwppbmRleCBkMzI3NjEyMjY3MTIuLmQyYzRlMDE3OGExZSAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9taWNyb2NvZGUvYW1kLXBhdGNo
LWRpZ2VzdHMuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L21pY3JvY29kZS9h
bWQtcGF0Y2gtZGlnZXN0cy5jCkBAIC04MCw2ICs4MCwxNSBAQAogICAgICAg
ICAweDBkLCAweDViLCAweDY1LCAweDM0LCAweDY5LCAweGIyLCAweDYyLCAw
eDIxLAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGEwMDEx
ZDcsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHgzNSwgMHgwNywgMHhj
ZCwgMHg0MCwgMHg5NCwgMHhiYywgMHg4MSwgMHg2YiwKKyAgICAgICAgMHhm
YywgMHg2MSwgMHg1NiwgMHgxYSwgMHhlMiwgMHhkYiwgMHg5NiwgMHgxMiwK
KyAgICAgICAgMHgxYywgMHgxYywgMHgzMSwgMHhiMSwgMHgwMiwgMHg2Ziwg
MHhlNSwgMHhkMiwKKyAgICAgICAgMHhmZSwgMHgxYiwgMHgwNCwgMHgwMywg
MHgyYywgMHg4ZiwgMHg0YywgMHgzNiwKKyAgICB9LAorfSwKIHsKICAgICAu
cGF0Y2hfaWQgPSAweDBhMDAxMjM4LAogICAgIC5kaWdlc3QgPSB7CkBAIC04
OSw2ICs5OCwxNSBAQAogICAgICAgICAweGMwLCAweGNkLCAweDMzLCAweGYy
LCAweDhkLCAweGY5LCAweGVmLCAweDU5LAogICAgIH0sCiB9LAoreworICAg
IC5wYXRjaF9pZCA9IDB4MGEwMDEyM2IsCisgICAgLmRpZ2VzdCA9IHsKKyAg
ICAgICAgMHhlZiwgMHhhMSwgMHgxZSwgMHg3MSwgMHhmMSwgMHhjMywgMHgy
YywgMHhlMiwKKyAgICAgICAgMHhjMywgMHhlZiwgMHg2OSwgMHg0MSwgMHg3
YSwgMHg1NCwgMHhjYSwgMHhjMywKKyAgICAgICAgMHg4ZiwgMHg2MiwgMHg4
NCwgMHhlZSwgMHhjMiwgMHgzOSwgMHhkOSwgMHgyOCwKKyAgICAgICAgMHg5
NSwgMHhhNywgMHgxMiwgMHg0OSwgMHgxZSwgMHgzMCwgMHg3MSwgMHg3MiwK
KyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhMDA4MjBjLAog
ICAgIC5kaWdlc3QgPSB7CkBAIC05OCw2ICsxMTYsMTUgQEAKICAgICAgICAg
MHhlMSwgMHgzYiwgMHg4ZCwgMHhiMiwgMHhmOCwgMHgyMiwgMHgwMywgMHhl
MiwKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBhMDA4MjBk
LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4ZjksIDB4MmEsIDB4YzAs
IDB4ZjQsIDB4OWUsIDB4YTQsIDB4ODcsIDB4YTQsCisgICAgICAgIDB4N2Qs
IDB4ODcsIDB4MDAsIDB4ZmQsIDB4YWIsIDB4ZGEsIDB4MTksIDB4Y2EsCisg
ICAgICAgIDB4MjYsIDB4NTEsIDB4MzIsIDB4YzEsIDB4NTcsIDB4OTEsIDB4
ZGYsIDB4YzEsCisgICAgICAgIDB4MDUsIDB4ZWIsIDB4MDEsIDB4N2MsIDB4
NWEsIDB4OTUsIDB4MjEsIDB4YjcsCisgICAgfSwKK30sCiB7CiAgICAgLnBh
dGNoX2lkID0gMHgwYTEwMTE0OCwKICAgICAuZGlnZXN0ID0gewpAQCAtMTA3
LDYgKzEzNCwxNSBAQAogICAgICAgICAweGYxLCAweDVlLCAweGIwLCAweGRl
LCAweGI0LCAweDk4LCAweGFlLCAweGM0LAogICAgIH0sCiB9LAoreworICAg
IC5wYXRjaF9pZCA9IDB4MGExMDExNGMsCisgICAgLmRpZ2VzdCA9IHsKKyAg
ICAgICAgMHg5ZSwgMHhiNiwgMHhhMiwgMHhkOSwgMHg4NywgMHgzOCwgMHhj
NSwgMHg2NCwKKyAgICAgICAgMHhkOCwgMHg4OCwgMHhmYSwgMHg3OCwgMHg5
OCwgMHhmOSwgMHg2ZiwgMHg3NCwKKyAgICAgICAgMHgzOSwgMHg5MCwgMHgx
YiwgMHhhNSwgMHhjZiwgMHg1ZSwgMHhiNCwgMHgyYSwKKyAgICAgICAgMHgw
MiwgMHhmZiwgMHhkNCwgMHg4YywgMHg3MSwgMHg4YiwgMHhlMiwgMHhjMCwK
KyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhMTAxMjQ4LAog
ICAgIC5kaWdlc3QgPSB7CkBAIC0xMTYsNiArMTUyLDE1IEBACiAgICAgICAg
IDB4MWIsIDB4N2QsIDB4NjQsIDB4OWQsIDB4NGIsIDB4NTMsIDB4MTMsIDB4
NzUsCiAgICAgfSwKIH0sCit7CisgICAgLnBhdGNoX2lkID0gMHgwYTEwMTI0
YywKKyAgICAuZGlnZXN0ID0geworICAgICAgICAweDI5LCAweGVhLCAweGYx
LCAweDJjLCAweGIyLCAweGU0LCAweGVmLCAweDkwLAorICAgICAgICAweGE0
LCAweGNkLCAweDFkLCAweDg2LCAweDk3LCAweDE3LCAweDYxLCAweDQ2LAor
ICAgICAgICAweGZjLCAweDIyLCAweGNiLCAweDU3LCAweDc1LCAweDE5LCAw
eGM4LCAweGNjLAorICAgICAgICAweDBjLCAweGY1LCAweGJjLCAweGFjLCAw
eDgxLCAweDlkLCAweDlhLCAweGQyLAorICAgIH0sCit9LAogewogICAgIC5w
YXRjaF9pZCA9IDB4MGExMDgxMDgsCiAgICAgLmRpZ2VzdCA9IHsKQEAgLTEy
NSw2ICsxNzAsMTUgQEAKICAgICAgICAgMHgyOCwgMHgxZSwgMHg5YywgMHg1
OSwgMHg2OSwgMHg5OSwgMHg0ZCwgMHgxNiwKICAgICB9LAogfSwKK3sKKyAg
ICAucGF0Y2hfaWQgPSAweDBhMTA4MTA5LAorICAgIC5kaWdlc3QgPSB7Cisg
ICAgICAgIDB4ODUsIDB4YjQsIDB4YmQsIDB4N2MsIDB4NDksIDB4YTcsIDB4
YmQsIDB4ZmEsCisgICAgICAgIDB4NDksIDB4MzYsIDB4ODAsIDB4ODEsIDB4
YzUsIDB4YjcsIDB4MzksIDB4MWIsCisgICAgICAgIDB4OWEsIDB4YWEsIDB4
NTAsIDB4ZGUsIDB4OWIsIDB4ZTksIDB4MzIsIDB4MzUsCisgICAgICAgIDB4
NDIsIDB4N2UsIDB4NTEsIDB4NGYsIDB4NTIsIDB4MmMsIDB4MjgsIDB4NTks
CisgICAgfSwKK30sCiB7CiAgICAgLnBhdGNoX2lkID0gMHgwYTIwMTAyZCwK
ICAgICAuZGlnZXN0ID0gewpAQCAtMTM0LDYgKzE4OCwxNSBAQAogICAgICAg
ICAweDhjLCAweGU5LCAweDE5LCAweDNlLCAweGNjLCAweDNmLCAweDdiLCAw
eGI0LAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGEyMDEw
MmUsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHhiZSwgMHgxZiwgMHgz
MiwgMHgwNCwgMHgwZCwgMHgzYywgMHg5YywgMHhkZCwKKyAgICAgICAgMHhl
MSwgMHhhNCwgMHhiZiwgMHg3NiwgMHgzYSwgMHhlYywgMHhjMiwgMHhmNiwK
KyAgICAgICAgMHgxMSwgMHgwMCwgMHhhNywgMHhhZiwgMHgwZiwgMHhlNSwg
MHgwMiwgMHhjNSwKKyAgICAgICAgMHg1NCwgMHgzYSwgMHgxZiwgMHg4Yywg
MHgxNiwgMHhiNSwgMHhmZiwgMHhiZSwKKyAgICB9LAorfSwKIHsKICAgICAu
cGF0Y2hfaWQgPSAweDBhMjAxMjEwLAogICAgIC5kaWdlc3QgPSB7CkBAIC0x
NDMsNiArMjA2LDE1IEBACiAgICAgICAgIDB4ZjcsIDB4NTUsIDB4ZjAsIDB4
MTMsIDB4YmIsIDB4MjIsIDB4ZjYsIDB4NDEsCiAgICAgfSwKIH0sCit7Cisg
ICAgLnBhdGNoX2lkID0gMHgwYTIwMTIxMSwKKyAgICAuZGlnZXN0ID0gewor
ICAgICAgICAweDY5LCAweGExLCAweDE3LCAweGVjLCAweGQwLCAweGY2LCAw
eDZjLCAweDk1LAorICAgICAgICAweGUyLCAweDFlLCAweGM1LCAweDU5LCAw
eDFhLCAweDUyLCAweDBhLCAweDI3LAorICAgICAgICAweGM0LCAweGVkLCAw
eGQ1LCAweDU5LCAweDFmLCAweGJmLCAweDAwLCAweGZmLAorICAgICAgICAw
eDA4LCAweDg4LCAweGI1LCAweGUxLCAweDEyLCAweGI2LCAweGNjLCAweDI3
LAorICAgIH0sCit9LAogewogICAgIC5wYXRjaF9pZCA9IDB4MGE0MDQxMDcs
CiAgICAgLmRpZ2VzdCA9IHsKQEAgLTE1Miw2ICsyMjQsMTUgQEAKICAgICAg
ICAgMHgxMywgMHhiYywgMHhjNSwgMHgyNSwgMHhlNCwgMHhjNSwgMHhjMywg
MHg5OSwKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBhNDA0
MTA4LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4NjksIDB4NjcsIDB4
NDMsIDB4MDYsIDB4ZjgsIDB4MGMsIDB4NjIsIDB4ZGMsCisgICAgICAgIDB4
YTQsIDB4MjEsIDB4MzAsIDB4NGYsIDB4MGYsIDB4MjEsIDB4MmMsIDB4Y2Is
CisgICAgICAgIDB4Y2MsIDB4MzcsIDB4ZjEsIDB4MWMsIDB4YzMsIDB4Zjgs
IDB4MmYsIDB4MTksCisgICAgICAgIDB4ZGYsIDB4NTMsIDB4NTMsIDB4NDYs
IDB4YjEsIDB4MTUsIDB4ZWEsIDB4MDAsCisgICAgfSwKK30sCiB7CiAgICAg
LnBhdGNoX2lkID0gMHgwYTUwMDAxMSwKICAgICAuZGlnZXN0ID0gewpAQCAt
MTYxLDYgKzI0MiwxNSBAQAogICAgICAgICAweDExLCAweDVlLCAweDk2LCAw
eDdlLCAweDcxLCAweGU5LCAweGZjLCAweDc0LAogICAgIH0sCiB9LAorewor
ICAgIC5wYXRjaF9pZCA9IDB4MGE1MDAwMTIsCisgICAgLmRpZ2VzdCA9IHsK
KyAgICAgICAgMHhlYiwgMHg3NCwgMHgwZCwgMHg0NywgMHhhMSwgMHg4ZSwg
MHgwOSwgMHhlNCwKKyAgICAgICAgMHg5MywgMHg0YywgMHhhZCwgMHgwMywg
MHgzMiwgMHg0YywgMHgzOCwgMHgxNiwKKyAgICAgICAgMHgxMCwgMHgzOSwg
MHhkZCwgMHgwNiwgMHhhYSwgMHhjZSwgMHhkNiwgMHgwZiwKKyAgICAgICAg
MHg2MiwgMHg4MywgMHg5ZCwgMHg4ZSwgMHg2NCwgMHg1NSwgMHhiZSwgMHg2
MywKKyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhNjAxMjA5
LAogICAgIC5kaWdlc3QgPSB7CkBAIC0xNzAsNiArMjYwLDE1IEBACiAgICAg
ICAgIDB4ZTgsIDB4NzMsIDB4ZTIsIDB4ZDYsIDB4ZGIsIDB4ZDIsIDB4Nzcs
IDB4MWQsCiAgICAgfSwKIH0sCit7CisgICAgLnBhdGNoX2lkID0gMHgwYTYw
MTIwYSwKKyAgICAuZGlnZXN0ID0geworICAgICAgICAweDBjLCAweDhiLCAw
eDNkLCAweGZkLCAweDUyLCAweDUyLCAweDg1LCAweDdkLAorICAgICAgICAw
eDIwLCAweDNhLCAweGUxLCAweDdlLCAweGE0LCAweDIxLCAweDNiLCAweDdi
LAorICAgICAgICAweDE3LCAweDg2LCAweGFlLCAweGFjLCAweDEzLCAweGI4
LCAweDYzLCAweDlkLAorICAgICAgICAweDA2LCAweDAxLCAweGQwLCAweGEw
LCAweDUxLCAweDlhLCAweDkxLCAweDJjLAorICAgIH0sCit9LAogewogICAg
IC5wYXRjaF9pZCA9IDB4MGE3MDQxMDcsCiAgICAgLmRpZ2VzdCA9IHsKQEAg
LTE3OSw2ICsyNzgsMTUgQEAKICAgICAgICAgMHg2NCwgMHgzOSwgMHg3MSwg
MHg4YywgMHhjZSwgMHhlNywgMHg0MSwgMHgzOSwKICAgICB9LAogfSwKK3sK
KyAgICAucGF0Y2hfaWQgPSAweDBhNzA0MTA4LAorICAgIC5kaWdlc3QgPSB7
CisgICAgICAgIDB4ZDcsIDB4NTUsIDB4MTUsIDB4MmIsIDB4ZmUsIDB4YzQs
IDB4YmMsIDB4OTMsCisgICAgICAgIDB4ZWMsIDB4OTEsIDB4YTAsIDB4YWUs
IDB4NDUsIDB4YjcsIDB4YzMsIDB4OTgsCisgICAgICAgIDB4NGUsIDB4ZmYs
IDB4NjEsIDB4NzcsIDB4ODgsIDB4YzIsIDB4NzAsIDB4NDksCisgICAgICAg
IDB4ZTAsIDB4M2EsIDB4MWQsIDB4ODQsIDB4MzgsIDB4NTIsIDB4YmYsIDB4
NWEsCisgICAgfSwKK30sCiB7CiAgICAgLnBhdGNoX2lkID0gMHgwYTcwNTIw
NiwKICAgICAuZGlnZXN0ID0gewpAQCAtMTg4LDYgKzI5NiwxNSBAQAogICAg
ICAgICAweDAzLCAweDM1LCAweGU5LCAweGJlLCAweGZiLCAweDA2LCAweGRm
LCAweGZjLAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGE3
MDUyMDgsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHgzMCwgMHgxZCwg
MHg1NSwgMHgyNCwgMHhiYywgMHg2YiwgMHg1YSwgMHgxOSwKKyAgICAgICAg
MHgwYywgMHg3ZCwgMHgxZCwgMHg3NCwgMHhhYSwgMHhkMSwgMHhlYiwgMHhk
MiwKKyAgICAgICAgMHgxNiwgMHg2MiwgMHhmNywgMHg1YiwgMHhlMSwgMHgx
ZiwgMHgxOCwgMHgxMSwKKyAgICAgICAgMHg1YywgMHhmMCwgMHg5NCwgMHg5
MCwgMHgyNiwgMHhlYywgMHg2OSwgMHhmZiwKKyAgICB9LAorfSwKIHsKICAg
ICAucGF0Y2hfaWQgPSAweDBhNzA4MDA3LAogICAgIC5kaWdlc3QgPSB7CkBA
IC0xOTcsNiArMzE0LDE1IEBACiAgICAgICAgIDB4ZGYsIDB4OTIsIDB4NzMs
IDB4ODQsIDB4ODcsIDB4M2MsIDB4NzMsIDB4OTMsCiAgICAgfSwKIH0sCit7
CisgICAgLnBhdGNoX2lkID0gMHgwYTcwODAwOCwKKyAgICAuZGlnZXN0ID0g
eworICAgICAgICAweDA4LCAweDZlLCAweGYwLCAweDIyLCAweDRiLCAweDhl
LCAweGM0LCAweDQ2LAorICAgICAgICAweDU4LCAweDM0LCAweGU2LCAweDQ3
LCAweGEyLCAweDI4LCAweGZkLCAweGFiLAorICAgICAgICAweDIyLCAweDNk
LCAweGRkLCAweGQ4LCAweDUyLCAweDllLCAweDFkLCAweDE2LAorICAgICAg
ICAweGZhLCAweDAxLCAweDY4LCAweDE0LCAweDc5LCAweDNlLCAweGU4LCAw
eDZiLAorICAgIH0sCit9LAogewogICAgIC5wYXRjaF9pZCA9IDB4MGE3MGMw
MDUsCiAgICAgLmRpZ2VzdCA9IHsKQEAgLTIwNiw2ICszMzIsMTUgQEAKICAg
ICAgICAgMHhlZSwgMHg0OSwgMHhhYywgMHhlMSwgMHg4YiwgMHgxMywgMHhj
NSwgMHgxMywKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBh
NzBjMDA4LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4MGYsIDB4ZGIs
IDB4MzcsIDB4YTEsIDB4MTAsIDB4YWYsIDB4ZDQsIDB4MjEsCisgICAgICAg
IDB4OTQsIDB4MGQsIDB4YTQsIDB4YTIsIDB4ZTksIDB4ODYsIDB4NmMsIDB4
MGUsCisgICAgICAgIDB4ODUsIDB4N2MsIDB4MzYsIDB4MzAsIDB4YTMsIDB4
M2EsIDB4NzgsIDB4NjYsCisgICAgICAgIDB4MTgsIDB4MTAsIDB4NjAsIDB4
MGQsIDB4NzgsIDB4M2QsIDB4NDQsIDB4ZDAsCisgICAgfSwKK30sCiB7CiAg
ICAgLnBhdGNoX2lkID0gMHgwYWEwMDExNiwKICAgICAuZGlnZXN0ID0gewpA
QCAtMjI0LDMgKzM1OSwxMiBAQAogICAgICAgICAweDY4LCAweDJmLCAweDQ2
LCAweGVlLCAweGZlLCAweGM2LCAweDZkLCAweGVmLAogICAgIH0sCiB9LAor
eworICAgIC5wYXRjaF9pZCA9IDB4MGFhMDAyMTYsCisgICAgLmRpZ2VzdCA9
IHsKKyAgICAgICAgMHg3OSwgMHhmYiwgMHg1YiwgMHg5ZiwgMHhiNiwgMHhl
NiwgMHhhOCwgMHhmNSwKKyAgICAgICAgMHg0ZSwgMHg3YywgMHg0ZiwgMHg4
ZSwgMHgxZCwgMHhhZCwgMHhkMCwgMHgwOCwKKyAgICAgICAgMHhjMiwgMHg0
MywgMHg3YywgMHg4YiwgMHhlNiwgMHhkYiwgMHhkMCwgMHhkMiwKKyAgICAg
ICAgMHhlOCwgMHgzOSwgMHgyNiwgMHhjMSwgMHhlNSwgMHg1YSwgMHg0OCwg
MHhmMSwKKyAgICB9LAorfSwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9j
cHUvbWljcm9jb2RlL2FtZC5jIGIveGVuL2FyY2gveDg2L2NwdS9taWNyb2Nv
ZGUvYW1kLmMKaW5kZXggYTI4NjBkODk0OGEyLi5lNDMwNzVkY2I1NDAgMTAw
NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWljcm9jb2RlL2FtZC5jCisr
KyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWljcm9jb2RlL2FtZC5jCkBAIC01Mjks
MyArNTI5LDE4IEBAIHZvaWQgX19pbml0IHVjb2RlX3Byb2JlX2FtZChzdHJ1
Y3QgbWljcm9jb2RlX29wcyAqb3BzKQogCiAgICAgKm9wcyA9IGFtZF91Y29k
ZV9vcHM7CiB9CisKKyNpZiAwIC8qIE1hbnVhbCBDT05GSUdfU0VMRl9URVNU
UyAqLworc3RhdGljIHZvaWQgX19pbml0IF9fY29uc3RydWN0b3IgdGVzdF9k
aWdlc3RzX3NvcnRlZCh2b2lkKQoreworICAgIGZvciAoIHVuc2lnbmVkIGlu
dCBpID0gMTsgaSA8IEFSUkFZX1NJWkUocGF0Y2hfZGlnZXN0cyk7ICsraSAp
CisgICAgeworICAgICAgICBpZiAoIHBhdGNoX2RpZ2VzdHNbaSAtIDFdLnBh
dGNoX2lkIDwgcGF0Y2hfZGlnZXN0c1tpXS5wYXRjaF9pZCApCisgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICBwYW5pYygicGF0Y2hfZGlnZXN0
c1tdIG5vdCBzb3J0ZWQ6ICUwOHggPj0gJTA4eFxuIiwKKyAgICAgICAgICAg
ICAgcGF0Y2hfZGlnZXN0c1tpIC0gMV0ucGF0Y2hfaWQsCisgICAgICAgICAg
ICAgIHBhdGNoX2RpZ2VzdHNbaV0ucGF0Y2hfaWQpOworICAgIH0KK30KKyNl
bmRpZiAvKiBDT05GSUdfU0VMRl9URVNUUyAqLwo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-14.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-14.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogV2VkLCAyIEFwciAyMDI1IDAzOjE4OjU5ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZWFycmFuZ2UgVkVSVyBhbmQgTU9OSVRPUiBpbiBt
d2FpdF9pZGxlX3dpdGhfaGludHMoKQoKSW4gb3JkZXIgdG8gbWl0aWdhdGUg
VFNBLCBYZW4gd2lsbCBuZWVkIHRvIGlzc3VlIFZFUlcgYmVmb3JlIGdvaW5n
IGlkbGUuCgpPbiBBTUQgQ1BVcywgdGhlIFZFUlcgc2NydWJiaW5nIHNpZGUg
ZWZmZWN0cyBjYW5jZWwgYW4gYWN0aXZlIE1PTklUT1IsIGNhdXNpbmcKdGhl
IE1XQUlUIHRvIGV4aXQgd2l0aG91dCBlbnRlcmluZyBhbiBpZGxlIHN0YXRl
LiAgVGhlcmVmb3JlIHRoZSBWRVJXIG11c3QgYmUKYWhlYWQgb2YgTU9OSVRP
Ui4KClNwbGl0IHNwZWNfY3RybF9lbnRlcl9pZGxlKCkgaW4gdHdvIGFuZCBh
bGxvdyB0aGUgVkVSVyBhc3BlY3QgdG8gYmUgaGFuZGxlZApzZXBhcmF0ZWx5
LiAgV2hpbGUgYWRqdXN0aW5nLCB1cGRhdGUgYSBzdGFsZSBjb21tZW50IGNv
bmNlcm5pbmcgTVNCRFM7IG1vcmUKaXNzdWVzIGhhdmUgYmVlbiBtaXRpZ2F0
ZWQgdXNpbmcgVkVSVyBzaW5jZSBpdCB3YXMgd3JpdHRlbi4KCkJ5IG1vdmlu
ZyBWRVJXIGVhcmxpZXIsIGl0IGlzIGFoZWFkIG9mIHRoZSBkZXRlcm1pbmF0
aW9uIG9mIHdoZXRoZXIgdG8gZ28KaWRsZS4gIFdlIGNhbid0IG1vdmUgdGhl
IGNoZWNrIG9uIHNvZnRpcnFfcGVuZGluZyAoZm9yIGNvcnJlY3RuZXNzIHJl
YXNvbnMpLApidXQgd2UgY2FuIGR1cGxpY2F0ZSBpdCBlYXJsaWVyIGFzIGEg
YmVzdCBlZmZvcnQgYXR0ZW1wdCB0byBza2lwIHRoZQpzcGVjdWxhdGl2ZSBv
dmVyaGVhZC4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDcxIC8gQ1ZFLTIwMjQt
MzYzNTAgLyBDVkUtMjAyNC0zNjM1Ny4KClNpZ25lZC1vZmYtYnk6IEFuZHJl
dyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2Vk
LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0t
Z2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBiL3hlbi9hcmNo
L3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXggYzU4YTUxYTA5ZjMzLi5hNzI1
M2YxNDUzNDMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9p
ZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYwpAQCAt
NDUwLDkgKzQ1MCwxOCBAQCBfX2luaXRjYWxsKGNwdV9pZGxlX2tleV9pbml0
KTsKIHZvaWQgbXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBl
YXgsIHVuc2lnbmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNw
dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKyAgICBzdHJ1Y3QgY3B1X2luZm8g
KmluZm8gPSBnZXRfY3B1X2luZm8oKTsKICAgICBpcnFfY3B1c3RhdF90ICpz
dGF0ID0gJmlycV9zdGF0W2NwdV07CiAgICAgY29uc3QgdW5zaWduZWQgaW50
ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZzdGF0LT5fX3NvZnRpcnFfcGVu
ZGluZzsKIAorICAgIC8qCisgICAgICogSGV1cmlzdGljOiBpZiB3ZSdyZSBk
ZWZpbml0ZWx5IG5vdCBnb2luZyB0byBpZGxlLCBiYWlsIGVhcmx5IGFzIHRo
ZQorICAgICAqIHNwZWN1bGF0aXZlIHNhZmV0eSBjYW4gYmUgZXhwZW5zaXZl
LiAgVGhpcyBpcyBhIHBlcmZvcm1hbmNlCisgICAgICogY29uc2lkZXJhdGlv
biBub3QgYSBjb3JyZWN0bmVzcyBpc3N1ZS4KKyAgICAgKi8KKyAgICBpZiAo
ICp0aGlzX3NvZnRpcnFfcGVuZGluZyApCisgICAgICAgIHJldHVybjsKKwog
ICAgIC8qCiAgICAgICogQnkgc2V0dGluZyBpbl9td2FpdCwgd2UgcHJvbWlz
ZSB0byBvdGhlciBDUFVzIHRoYXQgd2UnbGwgbm90aWNlIGNoYW5nZXMKICAg
ICAgKiB0byBfX3NvZnRpcnFfcGVuZGluZyB3aXRob3V0IGJlaW5nIHNlbnQg
YW4gSVBJLiAgV2UgYWNoaWV2ZSB0aGlzIGJ5CkBAIC00NjYsMTUgKzQ3NSwx
OSBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQg
ZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogICAgICAgICAgICAgICAgICAgICIi
LCBYODZfQlVHX01PTklUT1IsCiAgICAgICAgICAgICAgICAgICAgW2luX213
YWl0XSAiPW0iIChzdGF0LT5pbl9td2FpdCkpOwogCisgICAgLyoKKyAgICAg
KiBPbiBBTUQgc3lzdGVtcywgc2lkZSBlZmZlY3RzIGZyb20gVkVSVyBjYW5j
ZWwgTU9OSVRPUiwgY2F1c2luZyBNV0FJVCB0bworICAgICAqIHdha2UgdXAg
aW1tZWRpYXRlbHkuICBUaGVyZWZvcmUsIFZFUlcgbXVzdCBjb21lIGFoZWFk
IG9mIE1PTklUT1IuCisgICAgICovCisgICAgX19zcGVjX2N0cmxfZW50ZXJf
aWRsZV92ZXJ3KGluZm8pOworCiAgICAgbW9uaXRvcih0aGlzX3NvZnRpcnFf
cGVuZGluZywgMCwgMCk7CiAKICAgICBBU1NFUlQoIWxvY2FsX2lycV9pc19l
bmFibGVkKCkpOwogCiAgICAgaWYgKCAhKnRoaXNfc29mdGlycV9wZW5kaW5n
ICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdl
dF9jcHVfaW5mbygpOwotCi0gICAgICAgIHNwZWNfY3RybF9lbnRlcl9pZGxl
KGluZm8pOworICAgICAgICBfX3NwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8s
IGZhbHNlIC8qIFZFUlcgaGFuZGxlZCBhYm92ZSAqLyk7CiAKICAgICAgICAg
aWYgKCBlY3ggJiBNV0FJVF9FQ1hfSU5URVJSVVBUX0JSRUFLICkKICAgICAg
ICAgICAgIG13YWl0KGVheCwgZWN4KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9zcGVjX2N0cmwuaCBiL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zcGVjX2N0cmwuaAppbmRleCAwNzcyMjU0MTg5NTYuLjY3
MjRkMzgxMjAyOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3NwZWNfY3RybC5oCisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9zcGVjX2N0cmwuaApAQCAtMTE1LDggKzExNSwyMiBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgaW5pdF9zaGFkb3dfc3BlY19jdHJsX3N0YXRlKHZvaWQpCiAg
ICAgaW5mby0+dmVyd19zZWwgPSBfX0hZUEVSVklTT1JfRFMzMjsKIH0KIAor
c3RhdGljIGFsd2F5c19pbmxpbmUgdm9pZCBfX3NwZWNfY3RybF9lbnRlcl9p
ZGxlX3Zlcncoc3RydWN0IGNwdV9pbmZvICppbmZvKQoreworICAgIC8qCisg
ICAgICogRmx1c2gvc2NydWIgc3RydWN0dXJlcyB3aGljaCBhcmUgc3RhdGlj
YWxseSBwYXJ0aXRpb25lZCBiZXR3ZWVuIGFjdGl2ZQorICAgICAqIHRocmVh
ZHMuICBPdGhlcndpc2UgZGF0YSBvZiBvdXJzIChvZiB1bmtub3duIHNlbnNp
dGl2aXR5KSB3aWxsIGJlY29tZQorICAgICAqIGF2YWlsYWJsZSB0byBvdXIg
c2libGluZyB3aGVuIHdlIGdvIGlkbGUuCisgICAgICoKKyAgICAgKiBOb3Rl
OiBWRVJXIG11c3QgYmUgZW5jb2RlZCB3aXRoIGEgbWVtb3J5IG9wZXJhbmQs
IGFzIGl0IGlzIG9ubHkgdGhhdAorICAgICAqIGZvcm0gd2l0aCBzaWRlIGVm
ZmVjdHMuCisgICAgICovCisgICAgYWx0ZXJuYXRpdmVfaW5wdXQoIiIsICJ2
ZXJ3ICVbc2VsXSIsIFg4Nl9GRUFUVVJFX1NDX1ZFUldfSURMRSwKKyAgICAg
ICAgICAgICAgICAgICAgICBbc2VsXSAibSIgKGluZm8tPnZlcndfc2VsKSk7
Cit9CisKIC8qIFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBu
b3Qgc2FmZSBhZnRlciB0aGlzIGNhbGwuICovCi1zdGF0aWMgYWx3YXlzX2lu
bGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9pZGxlKHN0cnVjdCBjcHVfaW5m
byAqaW5mbykKK3N0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgX19zcGVjX2N0
cmxfZW50ZXJfaWRsZShzdHJ1Y3QgY3B1X2luZm8gKmluZm8sIGJvb2wgdmVy
dykKIHsKICAgICB1aW50MzJfdCB2YWwgPSAwOwogCkBAIC0xMzUsMjEgKzE0
OSw4IEBAIHN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgc3BlY19jdHJsX2Vu
dGVyX2lkbGUoc3RydWN0IGNwdV9pbmZvICppbmZvKQogICAgICAgICAgICAg
ICAgICAgICAgICJhIiAodmFsKSwgImMiIChNU1JfU1BFQ19DVFJMKSwgImQi
ICgwKSk7CiAgICAgYmFycmllcigpOwogCi0gICAgLyoKLSAgICAgKiBNaWNy
b2FyY2hpdGVjdHVyYWwgU3RvcmUgQnVmZmVyIERhdGEgU2FtcGxpbmc6Ci0g
ICAgICoKLSAgICAgKiBPbiB2dWxuZXJhYmxlIHN5c3RlbXMsIHN0b3JlIGJ1
ZmZlciBlbnRyaWVzIGFyZSBzdGF0aWNhbGx5IHBhcnRpdGlvbmVkCi0gICAg
ICogYmV0d2VlbiBhY3RpdmUgdGhyZWFkcy4gIFdoZW4gZW50ZXJpbmcgaWRs
ZSwgb3VyIHN0b3JlIGJ1ZmZlciBlbnRyaWVzCi0gICAgICogYXJlIHJlLXBh
cnRpdGlvbmVkIHRvIGFsbG93IHRoZSBvdGhlciB0aHJlYWRzIHRvIHVzZSB0
aGVtLgotICAgICAqCi0gICAgICogRmx1c2ggdGhlIGJ1ZmZlcnMgdG8gZW5z
dXJlIHRoYXQgbm8gc2Vuc2l0aXZlIGRhdGEgb2Ygb3VycyBjYW4gYmUKLSAg
ICAgKiBsZWFrZWQgYnkgYSBzaWJsaW5nIGFmdGVyIGl0IGdldHMgb3VyIHN0
b3JlIGJ1ZmZlciBlbnRyaWVzLgotICAgICAqCi0gICAgICogTm90ZTogVkVS
VyBtdXN0IGJlIGVuY29kZWQgd2l0aCBhIG1lbW9yeSBvcGVyYW5kLCBhcyBp
dCBpcyBvbmx5IHRoYXQKLSAgICAgKiBmb3JtIHdoaWNoIGNhdXNlcyBhIGZs
dXNoLgotICAgICAqLwotICAgIGFsdGVybmF0aXZlX2lucHV0KCIiLCAidmVy
dyAlW3NlbF0iLCBYODZfRkVBVFVSRV9TQ19WRVJXX0lETEUsCi0gICAgICAg
ICAgICAgICAgICAgICAgW3NlbF0gIm0iIChpbmZvLT52ZXJ3X3NlbCkpOwor
ICAgIGlmICggdmVydyApIC8qIEV4cGVjdGVkIHRvIGJlIGNvbnN0LXByb3Bh
Z2F0ZWQuICovCisgICAgICAgIF9fc3BlY19jdHJsX2VudGVyX2lkbGVfdmVy
dyhpbmZvKTsKIAogICAgIC8qCiAgICAgICogQ3Jvc3MtVGhyZWFkIFJldHVy
biBBZGRyZXNzIFByZWRpY3Rpb25zOgpAQCAtMTY3LDYgKzE2OCwxMiBAQCBz
dGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9pZGxl
KHN0cnVjdCBjcHVfaW5mbyAqaW5mbykKICAgICAgICAgICAgICAgICAgICAg
ICA6ICJyYXgiLCAicmN4Iik7CiB9CiAKKy8qIFdBUk5JTkchIGByZXRgLCBg
Y2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBhZnRlciB0aGlzIGNhbGwuICov
CitzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9p
ZGxlKHN0cnVjdCBjcHVfaW5mbyAqaW5mbykKK3sKKyAgICBfX3NwZWNfY3Ry
bF9lbnRlcl9pZGxlKGluZm8sIHRydWUgLyogVkVSVyAqLyk7Cit9CisKIC8q
IFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBi
ZWZvcmUgdGhpcyBjYWxsLiAqLwogc3RhdGljIGFsd2F5c19pbmxpbmUgdm9p
ZCBzcGVjX2N0cmxfZXhpdF9pZGxlKHN0cnVjdCBjcHVfaW5mbyAqaW5mbykK
IHsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-15.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-15.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVGh1LCAyOSBBdWcgMjAyNCAxNzozNjoxMSArMDEwMApTdWJq
ZWN0OiB4ODYvc3BlYy1jdHJsOiBNaXRpZ2F0ZSBUcmFuc2l0aXZlIFNjaGVk
dWxlciBBdHRhY2tzCgpUU0EgYWZmZWN0cyBBTUQgRmFtMTloIENQVXMgKFpl
bjMgYW5kIDQgbWljcm9hcmNoaXRlY3R1cmVzKS4KClRocmVlIG5ldyBDUFVJ
RCBiaXRzIGhhdmUgYmVlbiBkZWZpbmVkLiAgVHdvIChUU0FfU1FfTk8gYW5k
IFRTQV9MMV9OTykKaW5kaWNhdGUgdGhhdCB0aGUgc3lzdGVtIGlzIHVuYWZm
ZWN0ZWQsIGFuZCBtdXN0IGJlIHN5bnRoZXNpc2VkIGJ5IFhlbiBvbgp1bmFm
ZmVjdGVkIHBhcnRzIHRvIGRhdGUuCgpBIHRoaXJkIG5ldyBiaXQgaW5kaWNh
dGVzIHRoYXQgVkVSVyBub3cgaGFzIGEgZmx1c2hpbmcgc2lkZSBlZmZlY3Qu
ICBYZW4KbXVzdCBzeW50aGVzaXNlIHRoaXMgYml0IG9uIGFmZmVjdGVkIHN5
c3RlbXMgYmFzZWQgb24gbWljcm9jb2RlIHZlcnNpb24uCkFzIHdpdGggb3Ro
ZXIgVkVSVy1iYXNlZCBmbHVzaGluZyBmZWF0dXJlcywgVkVSV19DTEVBUiBu
ZWVkcyBPUi1pbmcgYWNyb3NzCmEgcmVzb3VyY2UgcG9vbCwgYW5kIGd1ZXN0
cyB3aGljaCBoYXZlIHNlZW4gaXQgY2FuIHNhZmVseSBtaWdyYXRlIGluLgoK
VGhpcyBpcyBwYXJ0IG9mIFhTQS00NzEgLyBDVkUtMjAyNC0zNjM1MCAvIENW
RS0yMDI0LTM2MzU3LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBC
ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQgYS94ZW4v
YXJjaC94ODYvY3B1LXBvbGljeS5jIGIveGVuL2FyY2gveDg2L2NwdS1wb2xp
Y3kuYwppbmRleCA5ZDFmZjYyNjhkNzkuLjNlNjI4ZTAwOGU5MiAxMDA2NDQK
LS0tIGEveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYworKysgYi94ZW4vYXJj
aC94ODYvY3B1LXBvbGljeS5jCkBAIC00ODAsNiArNDgwLDE3IEBAIHN0YXRp
YyB2b2lkIF9faW5pdCBndWVzdF9jb21tb25fbWF4X2ZlYXR1cmVfYWRqdXN0
bWVudHModWludDMyX3QgKmZzKQogICAgICAgICBpZiAoIHRlc3RfYml0KFg4
Nl9GRUFUVVJFX1JUTSwgZnMpICkKICAgICAgICAgICAgIF9fc2V0X2JpdChY
ODZfRkVBVFVSRV9SVE1fQUxXQVlTX0FCT1JULCBmcyk7CiAgICAgICAgIGJy
ZWFrOworCisgICAgY2FzZSBYODZfVkVORE9SX0FNRDoKKyAgICAgICAgLyoK
KyAgICAgICAgICogVGhpcyBiaXQgaW5kaWNhdGVzIHRoYXQgdGhlIFZFUlcg
aW5zdHJ1Y3Rpb24gbWF5IGhhdmUgZ2FpbmVkCisgICAgICAgICAqIHNjcnVi
YmluZyBzaWRlIGVmZmVjdHMuICBXaXRoIHBvb2xpbmcsIGl0IG1lYW5zICJ5
b3UgbWlnaHQgbWlncmF0ZQorICAgICAgICAgKiBzb21ld2hlcmUgd2hlcmUg
c2NydWJiaW5nIGlzIG5lY2Vzc2FyeSIsIGFuZCBtYXkgbmVlZCBleHBvc2lu
ZyBvbgorICAgICAgICAgKiB1bmFmZmVjdGVkIGhhcmR3YXJlLiAgVGhpcyBp
cyBmaW5lLCBiZWNhdXNlIHRoZSBWRVJXIGluc3RydWN0aW9uCisgICAgICAg
ICAqIGhhcyBiZWVuIGFyb3VuZCBzaW5jZSB0aGUgMjg2LgorICAgICAgICAg
Ki8KKyAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX1ZFUldfQ0xFQVIs
IGZzKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgLyoKQEAgLTU1
OCw2ICs1NjksMTcgQEAgc3RhdGljIHZvaWQgX19pbml0IGd1ZXN0X2NvbW1v
bl9kZWZhdWx0X2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQog
ICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNf
QUJPUlQsIGZzKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKKworICAg
IGNhc2UgWDg2X1ZFTkRPUl9BTUQ6CisgICAgICAgIC8qCisgICAgICAgICAq
IFRoaXMgYml0IGluZGljYXRlIHRoYXQgdGhlIFZFUlcgaW5zdHJ1Y3Rpb24g
bWF5IGhhdmUgZ2FpbmVkCisgICAgICAgICAqIHNjcnViYmluZyBzaWRlIGVm
ZmVjdHMuICBUaGUgbWF4IHBvbGljeSBoYXMgaXQgc2V0IGZvciBtaWdyYXRp
b24KKyAgICAgICAgICogcmVhc29ucywgc28gcmVzZXQgdGhlIGRlZmF1bHQg
cG9saWN5IGJhY2sgdG8gdGhlIGhvc3QgdmFsdWUgaW4gY2FzZQorICAgICAg
ICAgKiB3ZSdyZSB1bmFmZmVjdGVkLgorICAgICAgICAgKi8KKyAgICAgICAg
aWYgKCAhY3B1X2hhc192ZXJ3X2NsZWFyICkKKyAgICAgICAgICAgIF9fY2xl
YXJfYml0KFg4Nl9GRUFUVVJFX1ZFUldfQ0xFQVIsIGZzKTsKKyAgICAgICAg
YnJlYWs7CiAgICAgfQogCiAgICAgLyoKZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L3g4Ni9odm0vc3ZtL2VudHJ5LlMgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9l
bnRyeS5TCmluZGV4IDkxZWRiMzM0NTkzOC4uNjEwYzY0YmY0Yzk3IDEwMDY0
NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9lbnRyeS5TCisrKyBiL3hl
bi9hcmNoL3g4Ni9odm0vc3ZtL2VudHJ5LlMKQEAgLTk5LDYgKzk5LDggQEAg
X19VTkxJS0VMWV9FTkQobnN2bV9oYXApCiAgICAgICAgIHBvcCAgJXJzaQog
ICAgICAgICBwb3AgICVyZGkKIAorICAgICAgICBTUEVDX0NUUkxfQ09ORF9W
RVJXICAgICAvKiBSZXE6ICVyc3A9ZWZyYW1lICAgICAgICAgICAgICAgICAg
ICBDbG9iOiBlZmwgKi8KKwogICAgICAgICB2bXJ1bgogCiAgICAgICAgIFNB
VkVfQUxMCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20v
Y3B1ZmVhdHVyZS5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZl
YXR1cmUuaAppbmRleCA5MGQ2OTk5OWQxODMuLjQzMWNmNGEyYTY1ZCAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUu
aAorKysgYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5o
CkBAIC0xOTQsNiArMTk0LDcgQEAgc3RhdGljIGlubGluZSBib29sIGJvb3Rf
Y3B1X2hhcyh1bnNpZ25lZCBpbnQgZmVhdCkKIAogLyogQ1BVSUQgbGV2ZWwg
MHg4MDAwMDAyMS5lYXggKi8KICNkZWZpbmUgY3B1X2hhc19sZmVuY2VfZGlz
cGF0Y2ggYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0xGRU5DRV9ESVNQQVRD
SCkKKyNkZWZpbmUgY3B1X2hhc192ZXJ3X2NsZWFyICAgICAgYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX1ZFUldfQ0xFQVIpCiAjZGVmaW5lIGNwdV9oYXNf
bnNjYiAgICAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9OU0NC
KQogCiAvKiBDUFVJRCBsZXZlbCAweDAwMDAwMDA3OjEuZWR4ICovCkBAIC0y
MjEsNiArMjIyLDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBib290X2NwdV9o
YXModW5zaWduZWQgaW50IGZlYXQpCiAjZGVmaW5lIGNwdV9oYXNfcGJfb3B0
X2N0cmwgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9QQl9PUFRfQ1RS
TCkKICNkZWZpbmUgY3B1X2hhc19pdHNfbm8gICAgICAgICAgYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX0lUU19OTykKIAorLyogQ1BVSUQgbGV2ZWwgMHg4
MDAwMDAyMS5lY3ggKi8KKyNkZWZpbmUgY3B1X2hhc190c2Ffc3Ffbm8gICAg
ICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1RTQV9TUV9OTykKKyNkZWZp
bmUgY3B1X2hhc190c2FfbDFfbm8gICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9G
RUFUVVJFX1RTQV9MMV9OTykKKwogLyogU3ludGhlc2l6ZWQuICovCiAjZGVm
aW5lIGNwdV9oYXNfYXJjaF9wZXJmbW9uICAgIGJvb3RfY3B1X2hhcyhYODZf
RkVBVFVSRV9BUkNIX1BFUkZNT04pCiAjZGVmaW5lIGNwdV9oYXNfY3B1aWRf
ZmF1bHRpbmcgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9DUFVJRF9GQVVM
VElORykKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYyBi
L3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYwppbmRleCAzMDI3ZjFkYjZiNzAu
LmJjZGFlMWVkMjM3NyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NwZWNf
Y3RybC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYwpAQCAtNDk0
LDcgKzQ5NCw3IEBAIGN1c3RvbV9wYXJhbSgicHYtbDF0ZiIsIHBhcnNlX3B2
X2wxdGYpOwogCiBzdGF0aWMgdm9pZCBfX2luaXQgcHJpbnRfZGV0YWlscyhl
bnVtIGluZF90aHVuayB0aHVuaykKIHsKLSAgICB1bnNpZ25lZCBpbnQgXzdk
MCA9IDAsIF83ZDIgPSAwLCBlOGIgPSAwLCBlMjFhID0gMCwgbWF4ID0gMCwg
dG1wOworICAgIHVuc2lnbmVkIGludCBfN2QwID0gMCwgXzdkMiA9IDAsIGU4
YiA9IDAsIGUyMWEgPSAwLCBlMjFjID0gMCwgbWF4ID0gMCwgdG1wOwogICAg
IHVpbnQ2NF90IGNhcHMgPSAwOwogCiAgICAgLyogQ29sbGVjdCBkaWFnbm9z
dGljcyBhYm91dCBhdmFpbGFibGUgbWl0aWdhdGlvbnMuICovCkBAIC01MDUs
NyArNTA1LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHByaW50X2RldGFpbHMo
ZW51bSBpbmRfdGh1bmsgdGh1bmspCiAgICAgaWYgKCBib290X2NwdV9kYXRh
LmV4dGVuZGVkX2NwdWlkX2xldmVsID49IDB4ODAwMDAwMDhVICkKICAgICAg
ICAgY3B1aWQoMHg4MDAwMDAwOFUsICZ0bXAsICZlOGIsICZ0bXAsICZ0bXAp
OwogICAgIGlmICggYm9vdF9jcHVfZGF0YS5leHRlbmRlZF9jcHVpZF9sZXZl
bCA+PSAweDgwMDAwMDIxVSApCi0gICAgICAgIGNwdWlkKDB4ODAwMDAwMjFV
LCAmZTIxYSwgJnRtcCwgJnRtcCwgJnRtcCk7CisgICAgICAgIGNwdWlkKDB4
ODAwMDAwMjFVLCAmZTIxYSwgJnRtcCwgJmUyMWMsICZ0bXApOwogICAgIGlm
ICggY3B1X2hhc19hcmNoX2NhcHMgKQogICAgICAgICByZG1zcmwoTVNSX0FS
Q0hfQ0FQQUJJTElUSUVTLCBjYXBzKTsKIApAQCAtNTE1LDcgKzUxNSw3IEBA
IHN0YXRpYyB2b2lkIF9faW5pdCBwcmludF9kZXRhaWxzKGVudW0gaW5kX3Ro
dW5rIHRodW5rKQogICAgICAqIEhhcmR3YXJlIHJlYWQtb25seSBpbmZvcm1h
dGlvbiwgc3RhdGluZyBpbW11bml0eSB0byBjZXJ0YWluIGlzc3Vlcywgb3IK
ICAgICAgKiBzdWdnZXN0aW9ucyBvZiB3aGljaCBtaXRpZ2F0aW9uIHRvIHVz
ZS4KICAgICAgKi8KLSAgICBwcmludGsoIiAgSGFyZHdhcmUgaGludHM6JXMl
cyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVz
XG4iLAorICAgIHByaW50aygiICBIYXJkd2FyZSBoaW50czolcyVzJXMlcyVz
JXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzXG4i
LAogICAgICAgICAgICAoY2FwcyAmIEFSQ0hfQ0FQU19SRENMX05PKSAgICAg
ICAgICAgICAgICAgICAgICAgID8gIiBSRENMX05PIiAgICAgICAgOiAiIiwK
ICAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUFNfRUlCUlMpICAgICAgICAg
ICAgICAgICAgICAgICAgICA/ICIgRUlCUlMiICAgICAgICAgIDogIiIsCiAg
ICAgICAgICAgIChjYXBzICYgQVJDSF9DQVBTX1JTQkEpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPyAiIFJTQkEiICAgICAgICAgICA6ICIiLApAQCAt
NTQwLDEwICs1NDAsMTIgQEAgc3RhdGljIHZvaWQgX19pbml0IHByaW50X2Rl
dGFpbHMoZW51bSBpbmRfdGh1bmsgdGh1bmspCiAgICAgICAgICAgIChlOGIg
ICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX0lCUEJfUkVUKSkgICAgICAg
PyAiIElCUEJfUkVUIiAgICAgICA6ICIiLAogICAgICAgICAgICAoZTIxYSAm
IGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9JQlBCX0JSVFlQRSkpICAgID8g
IiBJQlBCX0JSVFlQRSIgICAgOiAiIiwKICAgICAgICAgICAgKGUyMWEgJiBj
cHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfU1JTT19OTykpICAgICAgICA/ICIg
U1JTT19OTyIgICAgICAgIDogIiIsCi0gICAgICAgICAgIChlMjFhICYgY3B1
ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NSU09fVVNfTk8pKSAgICAgPyAiIFNS
U09fVVNfTk8iICAgICA6ICIiKTsKKyAgICAgICAgICAgKGUyMWEgJiBjcHVm
ZWF0X21hc2soWDg2X0ZFQVRVUkVfU1JTT19VU19OTykpICAgICA/ICIgU1JT
T19VU19OTyIgICAgIDogIiIsCisgICAgICAgICAgIChlMjFjICYgY3B1ZmVh
dF9tYXNrKFg4Nl9GRUFUVVJFX1RTQV9TUV9OTykpICAgICAgPyAiIFRTQV9T
UV9OTyIgICAgICA6ICIiLAorICAgICAgICAgICAoZTIxYyAmIGNwdWZlYXRf
bWFzayhYODZfRkVBVFVSRV9UU0FfTDFfTk8pKSAgICAgID8gIiBUU0FfTDFf
Tk8iICAgICAgOiAiIik7CiAKICAgICAvKiBIYXJkd2FyZSBmZWF0dXJlcyB3
aGljaCBuZWVkIGRyaXZpbmcgdG8gbWl0aWdhdGUgaXNzdWVzLiAqLwotICAg
IHByaW50aygiICBIYXJkd2FyZSBmZWF0dXJlczolcyVzJXMlcyVzJXMlcyVz
JXMlcyVzJXMlcyVzJXNcbiIsCisgICAgcHJpbnRrKCIgIEhhcmR3YXJlIGZl
YXR1cmVzOiVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzXG4iLAog
ICAgICAgICAgICAoZThiICAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9J
QlBCKSkgfHwKICAgICAgICAgICAgKF83ZDAgJiBjcHVmZWF0X21hc2soWDg2
X0ZFQVRVUkVfSUJSU0IpKSAgICAgICAgICA/ICIgSUJQQiIgICAgICAgICAg
IDogIiIsCiAgICAgICAgICAgIChlOGIgICYgY3B1ZmVhdF9tYXNrKFg4Nl9G
RUFUVVJFX0lCUlMpKSB8fApAQCAtNTYzLDcgKzU2NSw4IEBAIHN0YXRpYyB2
b2lkIF9faW5pdCBwcmludF9kZXRhaWxzKGVudW0gaW5kX3RodW5rIHRodW5r
KQogICAgICAgICAgICAoY2FwcyAmIEFSQ0hfQ0FQU19HRFNfQ1RSTCkgICAg
ICAgICAgICAgICAgICAgICAgID8gIiBHRFNfQ1RSTCIgICAgICAgOiAiIiwK
ICAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUFNfUkZEU19DTEVBUikgICAg
ICAgICAgICAgICAgICAgICA/ICIgUkZEU19DTEVBUiIgICAgIDogIiIsCiAg
ICAgICAgICAgIChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NC
UEIpKSAgICAgICAgICAgPyAiIFNCUEIiICAgICAgICAgICA6ICIiLAotICAg
ICAgICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9TUlNP
X01TUl9GSVgpKSAgID8gIiBTUlNPX01TUl9GSVgiICAgOiAiIik7CisgICAg
ICAgICAgIChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NSU09f
TVNSX0ZJWCkpICAgPyAiIFNSU09fTVNSX0ZJWCIgICA6ICIiLAorICAgICAg
ICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9WRVJXX0NM
RUFSKSkgICAgID8gIiBWRVJXX0NMRUFSIiAgICAgOiAiIik7CiAKICAgICAv
KiBDb21waWxlZC1pbiBzdXBwb3J0IHdoaWNoIHBlcnRhaW5zIHRvIG1pdGln
YXRpb25zLiAqLwogICAgIGlmICggSVNfRU5BQkxFRChDT05GSUdfSU5ESVJF
Q1RfVEhVTkspIHx8IElTX0VOQUJMRUQoQ09ORklHX1NIQURPV19QQUdJTkcp
IHx8CkBAIC0xNTI0LDYgKzE1MjcsNzcgQEAgc3RhdGljIHZvaWQgX19pbml0
IHJmZHNfY2FsY3VsYXRpb25zKHZvaWQpCiAgICAgc2V0dXBfZm9yY2VfY3B1
X2NhcChYODZfRkVBVFVSRV9SRkRTX05PKTsKIH0KIAorLyoKKyAqIFRyYW5z
aWVudCBTY2hlZHVsZXIgQXR0YWNrcworICoKKyAqIGh0dHBzOi8vd3d3LmFt
ZC5jb20vY29udGVudC9kYW0vYW1kL2VuL2RvY3VtZW50cy9yZXNvdXJjZXMv
YnVsbGV0aW4vdGVjaG5pY2FsLWd1aWRhbmNlLWZvci1taXRpZ2F0aW5nLXRy
YW5zaWVudC1zY2hlZHVsZXItYXR0YWNrcy5wZGYKKyAqLworc3RhdGljIHZv
aWQgX19pbml0IHRzYV9jYWxjdWxhdGlvbnModm9pZCkKK3sKKyAgICB1bnNp
Z25lZCBpbnQgY3Vycl9yZXYsIG1pbl9yZXY7CisKKyAgICAvKiBUU0EgaXMg
b25seSBrbm93biB0byBhZmZlY3QgQU1EIHByb2Nlc3NvcnMgYXQgdGhpcyB0
aW1lLiAqLworICAgIGlmICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yICE9
IFg4Nl9WRU5ET1JfQU1EICkKKyAgICAgICAgcmV0dXJuOworCisgICAgLyog
SWYgd2UncmUgdmlydHVhbGlzZWQsIGRvbid0IGF0dGVtcHQgdG8gc3ludGhl
c2lzZSBhbnl0aGluZy4gKi8KKyAgICBpZiAoIGNwdV9oYXNfaHlwZXJ2aXNv
ciApCisgICAgICAgIHJldHVybjsKKworICAgIC8qCisgICAgICogQWNjb3Jk
aW5nIHRvIHRoZSB3aGl0ZXBhcGVyLCBzb21lIEZhbTFBIENQVXMgKE1vZGVs
cyAweDAwLi4uMHg0ZiwKKyAgICAgKiAweDYwLi4uMHg3ZikgYXJlIG5vdCB2
dWxuZXJhYmxlIGJ1dCBkb24ndCBlbnVtZXJhdGUgVFNBX3tTUSxMMX1fTk8u
ICBJZgorICAgICAqIHdlIHNlZSBlaXRoZXIgZW51bWVyYXRlZCwgYXNzdW1l
IGJvdGggYXJlIGNvcnJlY3QgLi4uCisgICAgICovCisgICAgaWYgKCBjcHVf
aGFzX3RzYV9zcV9ubyB8fCBjcHVfaGFzX3RzYV9sMV9ubyApCisgICAgICAg
IHJldHVybjsKKworICAgIC8qCisgICAgICogLi4uIG90aGVyd2lzZSwgc3lu
dGhlc2lzZSB0aGVtLiAgQ1BVcyBvdGhlciB0aGFuIEZhbTE5IChaZW4zLzQp
IGFyZQorICAgICAqIHN0YXRlZCB0byBiZSBub3QgdnVsbmVyYWJsZS4KKyAg
ICAgKi8KKyAgICBpZiAoIGJvb3RfY3B1X2RhdGEueDg2ICE9IDB4MTkgKQor
ICAgIHsKKyAgICAgICAgc2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVS
RV9UU0FfU1FfTk8pOworICAgICAgICBzZXR1cF9mb3JjZV9jcHVfY2FwKFg4
Nl9GRUFUVVJFX1RTQV9MMV9OTyk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICAvKgorICAgICAqIEZhbTE5IENQVXMgZ2V0IFZFUldfQ0xFQVIg
d2l0aCBuZXcgZW5vdWdoIG1pY3JvY29kZSwgYnV0IG11c3QKKyAgICAgKiBz
eW50aGVzaXNlIHRoZSBDUFVJRCBiaXQuCisgICAgICovCisgICAgY3Vycl9y
ZXYgPSB0aGlzX2NwdShjcHVfc2lnKS5yZXY7CisgICAgc3dpdGNoICggY3Vy
cl9yZXYgPj4gOCApCisgICAgeworICAgIGNhc2UgMHgwYTAwMTE6IG1pbl9y
ZXYgPSAweDBhMDAxMWQ3OyBicmVhazsKKyAgICBjYXNlIDB4MGEwMDEyOiBt
aW5fcmV2ID0gMHgwYTAwMTIzYjsgYnJlYWs7CisgICAgY2FzZSAweDBhMDA4
MjogbWluX3JldiA9IDB4MGEwMDgyMGQ7IGJyZWFrOworICAgIGNhc2UgMHgw
YTEwMTE6IG1pbl9yZXYgPSAweDBhMTAxMTRjOyBicmVhazsKKyAgICBjYXNl
IDB4MGExMDEyOiBtaW5fcmV2ID0gMHgwYTEwMTI0YzsgYnJlYWs7CisgICAg
Y2FzZSAweDBhMTA4MTogbWluX3JldiA9IDB4MGExMDgxMDk7IGJyZWFrOwor
ICAgIGNhc2UgMHgwYTIwMTA6IG1pbl9yZXYgPSAweDBhMjAxMDJlOyBicmVh
azsKKyAgICBjYXNlIDB4MGEyMDEyOiBtaW5fcmV2ID0gMHgwYTIwMTIxMTsg
YnJlYWs7CisgICAgY2FzZSAweDBhNDA0MTogbWluX3JldiA9IDB4MGE0MDQx
MDg7IGJyZWFrOworICAgIGNhc2UgMHgwYTUwMDA6IG1pbl9yZXYgPSAweDBh
NTAwMDEyOyBicmVhazsKKyAgICBjYXNlIDB4MGE2MDEyOiBtaW5fcmV2ID0g
MHgwYTYwMTIwYTsgYnJlYWs7CisgICAgY2FzZSAweDBhNzA0MTogbWluX3Jl
diA9IDB4MGE3MDQxMDg7IGJyZWFrOworICAgIGNhc2UgMHgwYTcwNTI6IG1p
bl9yZXYgPSAweDBhNzA1MjA4OyBicmVhazsKKyAgICBjYXNlIDB4MGE3MDgw
OiBtaW5fcmV2ID0gMHgwYTcwODAwODsgYnJlYWs7CisgICAgY2FzZSAweDBh
NzBjMDogbWluX3JldiA9IDB4MGE3MGMwMDg7IGJyZWFrOworICAgIGNhc2Ug
MHgwYWEwMDI6IG1pbl9yZXYgPSAweDBhYTAwMjE2OyBicmVhazsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcKKyAgICAg
ICAgICAgICAgICJVbnJlY29nbmlzZWQgQ1BVICUwMngtJTAyeC0lMDJ4LCB1
Y29kZSAweCUwOHggZm9yIFRTQSBtaXRpZ2F0aW9uXG4iLAorICAgICAgICAg
ICAgICAgYm9vdF9jcHVfZGF0YS54ODYsIGJvb3RfY3B1X2RhdGEueDg2X21v
ZGVsLAorICAgICAgICAgICAgICAgYm9vdF9jcHVfZGF0YS54ODZfbWFzaywg
Y3Vycl9yZXYpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KCBjdXJyX3JldiA+PSBtaW5fcmV2ICkKKyAgICAgICAgc2V0dXBfZm9yY2Vf
Y3B1X2NhcChYODZfRkVBVFVSRV9WRVJXX0NMRUFSKTsKK30KKwogc3RhdGlj
IGJvb2wgX19pbml0IGNwdV9oYXNfZ2RzKHZvaWQpCiB7CiAgICAgLyoKQEAg
LTIyMjEsNiArMjI5NSw3IEBAIHZvaWQgX19pbml0IGluaXRfc3BlY3VsYXRp
b25fbWl0aWdhdGlvbnModm9pZCkKICAgICAgKiBodHRwczovL3d3dy5pbnRl
bC5jb20vY29udGVudC93d3cvdXMvZW4vZGV2ZWxvcGVyL2FydGljbGVzL3Rl
Y2huaWNhbC9zb2Z0d2FyZS1zZWN1cml0eS1ndWlkYW5jZS90ZWNobmljYWwt
ZG9jdW1lbnRhdGlvbi9pbnRlbC1hbmFseXNpcy1taWNyb2FyY2hpdGVjdHVy
YWwtZGF0YS1zYW1wbGluZy5odG1sCiAgICAgICogaHR0cHM6Ly93d3cuaW50
ZWwuY29tL2NvbnRlbnQvd3d3L3VzL2VuL2RldmVsb3Blci9hcnRpY2xlcy90
ZWNobmljYWwvc29mdHdhcmUtc2VjdXJpdHktZ3VpZGFuY2UvdGVjaG5pY2Fs
LWRvY3VtZW50YXRpb24vcHJvY2Vzc29yLW1taW8tc3RhbGUtZGF0YS12dWxu
ZXJhYmlsaXRpZXMuaHRtbAogICAgICAqIGh0dHBzOi8vd3d3LmludGVsLmNv
bS9jb250ZW50L3d3dy91cy9lbi9kZXZlbG9wZXIvYXJ0aWNsZXMvdGVjaG5p
Y2FsL3NvZnR3YXJlLXNlY3VyaXR5LWd1aWRhbmNlL2Fkdmlzb3J5LWd1aWRh
bmNlL3JlZ2lzdGVyLWZpbGUtZGF0YS1zYW1wbGluZy5odG1sCisgICAgICog
aHR0cHM6Ly93d3cuYW1kLmNvbS9jb250ZW50L2RhbS9hbWQvZW4vZG9jdW1l
bnRzL3Jlc291cmNlcy9idWxsZXRpbi90ZWNobmljYWwtZ3VpZGFuY2UtZm9y
LW1pdGlnYXRpbmctdHJhbnNpZW50LXNjaGVkdWxlci1hdHRhY2tzLnBkZgog
ICAgICAqCiAgICAgICogUmVsZXZhbnQgdWNvZGVzOgogICAgICAqCkBAIC0y
MjUzLDkgKzIzMjgsMTggQEAgdm9pZCBfX2luaXQgaW5pdF9zcGVjdWxhdGlv
bl9taXRpZ2F0aW9ucyh2b2lkKQogICAgICAqCiAgICAgICogLSBNYXJjaCAy
MDIzLCBmb3IgUkZEUy4gIEVudW1lcmF0ZSBSRkRTX0NMRUFSIHRvIG1lYW4g
dGhhdCBWRVJXIG5vdwogICAgICAqICAgc2NydWJzIG5vbi1hcmNoaXRlY3R1
cmFsIGVudHJpZXMgZnJvbSBjZXJ0YWluIHJlZ2lzdGVyIGZpbGVzLgorICAg
ICAqCisgICAgICogLSBKdWx5IDIwMjUsIGZvciBUU0EuICBJbnRyb2R1Y2Vz
IFZFUlcgc2lkZSBlZmZlY3RzIHRvIG1pdGlnYXRlCisgICAgICogICBUU0Ff
e1NRL0wxfS4gIFhlbiBtdXN0IHN5bnRoZXNpc2UgdGhlIFZFUldfQ0xFQVIg
ZmVhdHVyZSBiYXNlZCBvbgorICAgICAqICAgbWljcm9jb2RlIHZlcnNpb24u
CisgICAgICoKKyAgICAgKiAgIE5vdGUsIHRoZXNlIG1pY3JvY29kZSB1cGRh
dGVzIHdlcmUgcHJvZHVjZWQgYmVmb3JlIHRoZSByZW1lZGlhdGlvbiBvZgor
ICAgICAqICAgdGhlIG1pY3JvY29kZSBzaWduYXR1cmUgaXNzdWVzLCBhbmQg
YXJlIGluY2x1ZGVkIGluIHRoZSBmaXJ3bWFyZQorICAgICAqICAgdXBkYXRl
cyBmaXhpbmcgdGhlIGVudHJ5c2lnbiB2dWxuZXJhYmlsaXR5IGZyb20gfkRl
Y2VtYmVyIDIwMjQuCiAgICAgICovCiAgICAgbWRzX2NhbGN1bGF0aW9ucygp
OwogICAgIHJmZHNfY2FsY3VsYXRpb25zKCk7CisgICAgdHNhX2NhbGN1bGF0
aW9ucygpOwogCiAgICAgLyoKICAgICAgKiBQYXJ0cyB3aGljaCBlbnVtZXJh
dGUgRkJfQ0xFQVIgYXJlIHRob3NlIHdpdGggbm93LXVwZGF0ZWQgbWljcm9j
b2RlCkBAIC0yMjg3LDIxICsyMzcxLDI3IEBAIHZvaWQgX19pbml0IGluaXRf
c3BlY3VsYXRpb25fbWl0aWdhdGlvbnModm9pZCkKICAgICAgKiBNTFBEUy9N
RkJEUyB3aGVuIFNNVCBpcyBlbmFibGVkLgogICAgICAqLwogICAgIGlmICgg
b3B0X3ZlcndfcHYgPT0gLTEgKQotICAgICAgICBvcHRfdmVyd19wdiA9IGNw
dV9oYXNfdXNlZnVsX21kX2NsZWFyIHx8IGNwdV9oYXNfcmZkc19jbGVhcjsK
KyAgICAgICAgb3B0X3ZlcndfcHYgPSAoY3B1X2hhc191c2VmdWxfbWRfY2xl
YXIgfHwgY3B1X2hhc19yZmRzX2NsZWFyIHx8CisgICAgICAgICAgICAgICAg
ICAgICAgIGNwdV9oYXNfdmVyd19jbGVhcik7CiAKICAgICBpZiAoIG9wdF92
ZXJ3X2h2bSA9PSAtMSApCi0gICAgICAgIG9wdF92ZXJ3X2h2bSA9IGNwdV9o
YXNfdXNlZnVsX21kX2NsZWFyIHx8IGNwdV9oYXNfcmZkc19jbGVhcjsKKyAg
ICAgICAgb3B0X3ZlcndfaHZtID0gKGNwdV9oYXNfdXNlZnVsX21kX2NsZWFy
IHx8IGNwdV9oYXNfcmZkc19jbGVhciB8fAorICAgICAgICAgICAgICAgICAg
ICAgICAgY3B1X2hhc192ZXJ3X2NsZWFyKTsKIAogICAgIC8qCi0gICAgICog
SWYgU01UIGlzIGFjdGl2ZSwgYW5kIHdlJ3JlIHByb3RlY3RpbmcgYWdhaW5z
dCBNRFMgb3IgTU1JTyBzdGFsZSBkYXRhLAorICAgICAqIElmIFNNVCBpcyBh
Y3RpdmUsIGFuZCB3ZSdyZSBwcm90ZWN0aW5nIGFnYWluc3QgYW55IG9mOgor
ICAgICAqICAgLSBNU0JEUworICAgICAqICAgLSBNTUlPIHN0YWxlIGRhdGEK
KyAgICAgKiAgIC0gVFNBLVNRCiAgICAgICogd2UgbmVlZCB0byBzY3J1YiBi
ZWZvcmUgZ29pbmcgaWRsZSBhcyB3ZWxsIGFzIG9uIHJldHVybiB0byBndWVz
dC4KICAgICAgKiBWYXJpb3VzIHBpcGVsaW5lIHJlc291cmNlcyBhcmUgcmVw
YXJ0aXRpb25lZCBhbW9uZ3N0IG5vbi1pZGxlIHRocmVhZHMuCiAgICAgICoK
LSAgICAgKiBXZSBkb24ndCBuZWVkIHRvIHNjcnViIG9uIGlkbGUgZm9yIFJG
RFMuICBUaGVyZSBhcmUgbm8gYWZmZWN0ZWQgY29yZXMKLSAgICAgKiB3aGlj
aCBzdXBwb3J0IFNNVCwgZGVzcGl0ZSB0aGVyZSBiZWluZyBhZmZlY3RlZCBj
b3JlcyBpbiBoeWJyaWQgc3lzdGVtcwotICAgICAqIHdoaWNoIGhhdmUgU01U
IGVsc2V3aGVyZSBpbiB0aGUgcGxhdGZvcm0uCisgICAgICogV2UgZG9uJ3Qg
bmVlZCB0byBzY3J1YiBvbiBpZGxlIGZvcjoKKyAgICAgKiAgIC0gUkZEUyAo
bm8gU01UIGFmZmVjdGVkIGNvcmVzKQorICAgICAqICAgLSBUU0EtTDEgKHV0
YWdzIG5ldmVyIHNoYXJlZCBiZXR3ZWVuIHRocmVhZHMpCiAgICAgICovCiAg
ICAgaWYgKCAoKGNwdV9oYXNfdXNlZnVsX21kX2NsZWFyICYmIChvcHRfdmVy
d19wdiB8fCBvcHRfdmVyd19odm0pKSB8fAorICAgICAgICAgIChjcHVfaGFz
X3ZlcndfY2xlYXIgJiYgIWNwdV9oYXNfdHNhX3NxX25vKSB8fAogICAgICAg
ICAgIG9wdF92ZXJ3X21taW8pICYmIGh3X3NtdF9lbmFibGVkICkKICAgICAg
ICAgc2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVSRV9TQ19WRVJXX0lE
TEUpOwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14
ODYvY3B1ZmVhdHVyZXNldC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gt
eDg2L2NwdWZlYXR1cmVzZXQuaAppbmRleCBjYjkyNjc4MmE4ZjcuLjRmOTQz
NDJhZDYzMyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gt
eDg2L2NwdWZlYXR1cmVzZXQuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMv
YXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCkBAIC0zMTUsNiArMzE1LDcgQEAg
WEVOX0NQVUZFQVRVUkUoQVZYX0lGTUEsICAgICAxMCozMisyMykgLypBICBB
VlgtSUZNQSBJbnN0cnVjdGlvbnMgKi8KIFhFTl9DUFVGRUFUVVJFKE5PX05F
U1RfQlAsICAgICAgICAgMTEqMzIrIDApIC8qQSAgTm8gTmVzdGVkIERhdGEg
QnJlYWtwb2ludHMgKi8KIFhFTl9DUFVGRUFUVVJFKEZTX0dTX05TLCAgICAg
ICAgICAgMTEqMzIrIDEpIC8qU3wgRlMvR1MgYmFzZSBNU1JzIG5vbi1zZXJp
YWxpc2luZyAqLwogWEVOX0NQVUZFQVRVUkUoTEZFTkNFX0RJU1BBVENILCAg
ICAxMSozMisgMikgLypBICBMRkVOQ0UgYWx3YXlzIHNlcmlhbGl6aW5nICov
CitYRU5fQ1BVRkVBVFVSRShWRVJXX0NMRUFSLCAgICAgICAgIDExKjMyKyA1
KSAvKiFBfCBWRVJXIGNsZWFycyBtaWNyb2FyY2hpdGVjdHVyYWwgYnVmZmVy
cyAqLwogWEVOX0NQVUZFQVRVUkUoTlNDQiwgICAgICAgICAgICAgICAxMSoz
MisgNikgLypBICBOdWxsIFNlbGVjdG9yIENsZWFycyBCYXNlIChhbmQgbGlt
aXQgdG9vKSAqLwogWEVOX0NQVUZFQVRVUkUoQVVUT19JQlJTLCAgICAgICAg
ICAxMSozMisgOCkgLypTICBBdXRvbWF0aWMgSUJSUyAqLwogWEVOX0NQVUZF
QVRVUkUoQU1EX0ZTUlMsICAgICAgICAgICAxMSozMisxMCkgLypBICBGYXN0
IFNob3J0IFJFUCBTVE9TQiAqLwpAQCAtMzg0LDYgKzM4NSw4IEBAIFhFTl9D
UFVGRUFUVVJFKFBCX09QVF9DVFJMLCAgICAgICAgMTYqMzIrMzIpIC8qICAg
TVNSX1BCX09QVF9DVFJMLklCUEJfQUxUICovCiBYRU5fQ1BVRkVBVFVSRShJ
VFNfTk8sICAgICAgICAgICAgIDE2KjMyKzYyKSAvKiFBIE5vIEluZGlyZWN0
IFRhcmdldCBTZWxlY3Rpb24gKi8KIAogLyogQU1ELWRlZmluZWQgQ1BVIGZl
YXR1cmVzLCBDUFVJRCBsZXZlbCAweDgwMDAwMDIxLmVjeCwgd29yZCAxOCAq
LworWEVOX0NQVUZFQVRVUkUoVFNBX1NRX05PLCAgICAgICAgICAxOCozMisg
MSkgLypBICBObyBTdG9yZSBRdWV1ZSBUcmFuc2l0aXZlIFNjaGVkdWxlciBB
dHRhY2tzICovCitYRU5fQ1BVRkVBVFVSRShUU0FfTDFfTk8sICAgICAgICAg
IDE4KjMyKyAyKSAvKkEgIE5vIEwxRCBUcmFuc2l0aXZlIFNjaGVkdWxlciBB
dHRhY2tzICovCiAKICNlbmRpZiAvKiBYRU5fQ1BVRkVBVFVSRSAqLwogCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-04.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-04.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogV2VkLCAyIEFwciAyMDI1IDAzOjE4OjU5ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZWFycmFuZ2UgVkVSVyBhbmQgTU9OSVRPUiBpbiBt
d2FpdF9pZGxlX3dpdGhfaGludHMoKQoKSW4gb3JkZXIgdG8gbWl0aWdhdGUg
VFNBLCBYZW4gd2lsbCBuZWVkIHRvIGlzc3VlIFZFUlcgYmVmb3JlIGdvaW5n
IGlkbGUuCgpPbiBBTUQgQ1BVcywgdGhlIFZFUlcgc2NydWJiaW5nIHNpZGUg
ZWZmZWN0cyBjYW5jZWwgYW4gYWN0aXZlIE1PTklUT1IsIGNhdXNpbmcKdGhl
IE1XQUlUIHRvIGV4aXQgd2l0aG91dCBlbnRlcmluZyBhbiBpZGxlIHN0YXRl
LiAgVGhlcmVmb3JlIHRoZSBWRVJXIG11c3QgYmUKYWhlYWQgb2YgTU9OSVRP
Ui4KClNwbGl0IHNwZWNfY3RybF9lbnRlcl9pZGxlKCkgaW4gdHdvIGFuZCBh
bGxvdyB0aGUgVkVSVyBhc3BlY3QgdG8gYmUgaGFuZGxlZApzZXBhcmF0ZWx5
LiAgV2hpbGUgYWRqdXN0aW5nLCB1cGRhdGUgYSBzdGFsZSBjb21tZW50IGNv
bmNlcm5pbmcgTVNCRFM7IG1vcmUKaXNzdWVzIGhhdmUgYmVlbiBtaXRpZ2F0
ZWQgdXNpbmcgVkVSVyBzaW5jZSBpdCB3YXMgd3JpdHRlbi4KCkJ5IG1vdmlu
ZyBWRVJXIGVhcmxpZXIsIGl0IGlzIGFoZWFkIG9mIHRoZSBkZXRlcm1pbmF0
aW9uIG9mIHdoZXRoZXIgdG8gZ28KaWRsZS4gIFdlIGNhbid0IG1vdmUgdGhl
IGNoZWNrIG9uIHNvZnRpcnFfcGVuZGluZyAoZm9yIGNvcnJlY3RuZXNzIHJl
YXNvbnMpLApidXQgd2UgY2FuIGR1cGxpY2F0ZSBpdCBlYXJsaWVyIGFzIGEg
YmVzdCBlZmZvcnQgYXR0ZW1wdCB0byBza2lwIHRoZQpzcGVjdWxhdGl2ZSBv
dmVyaGVhZC4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDcxIC8gQ1ZFLTIwMjQt
MzYzNTAgLyBDVkUtMjAyNC0zNjM1Ny4KClNpZ25lZC1vZmYtYnk6IEFuZHJl
dyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2Vk
LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0t
Z2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBiL3hlbi9hcmNo
L3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXggZTUwYTkyMzRhMGQ0Li40MjNk
ZjNkMzE2YWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9p
ZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYwpAQCAt
NDUwLDkgKzQ1MCwxOCBAQCBfX2luaXRjYWxsKGNwdV9pZGxlX2tleV9pbml0
KTsKIHZvaWQgbXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBl
YXgsIHVuc2lnbmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNw
dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKyAgICBzdHJ1Y3QgY3B1X2luZm8g
KmluZm8gPSBnZXRfY3B1X2luZm8oKTsKICAgICBpcnFfY3B1c3RhdF90ICpz
dGF0ID0gJmlycV9zdGF0W2NwdV07CiAgICAgY29uc3QgdW5zaWduZWQgaW50
ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZzdGF0LT5fX3NvZnRpcnFfcGVu
ZGluZzsKIAorICAgIC8qCisgICAgICogSGV1cmlzdGljOiBpZiB3ZSdyZSBk
ZWZpbml0ZWx5IG5vdCBnb2luZyB0byBpZGxlLCBiYWlsIGVhcmx5IGFzIHRo
ZQorICAgICAqIHNwZWN1bGF0aXZlIHNhZmV0eSBjYW4gYmUgZXhwZW5zaXZl
LiAgVGhpcyBpcyBhIHBlcmZvcm1hbmNlCisgICAgICogY29uc2lkZXJhdGlv
biBub3QgYSBjb3JyZWN0bmVzcyBpc3N1ZS4KKyAgICAgKi8KKyAgICBpZiAo
ICp0aGlzX3NvZnRpcnFfcGVuZGluZyApCisgICAgICAgIHJldHVybjsKKwog
ICAgIC8qCiAgICAgICogQnkgc2V0dGluZyBpbl9td2FpdCwgd2UgcHJvbWlz
ZSB0byBvdGhlciBDUFVzIHRoYXQgd2UnbGwgbm90aWNlIGNoYW5nZXMKICAg
ICAgKiB0byBfX3NvZnRpcnFfcGVuZGluZyB3aXRob3V0IGJlaW5nIHNlbnQg
YW4gSVBJLiAgV2UgYWNoaWV2ZSB0aGlzIGJ5CkBAIC00NjYsMTUgKzQ3NSwx
OSBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQg
ZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogICAgICAgICAgICAgICAgICAgICIi
LCBYODZfQlVHX01PTklUT1IsCiAgICAgICAgICAgICAgICAgICAgW2luX213
YWl0XSAiPW0iIChzdGF0LT5pbl9td2FpdCkpOwogCisgICAgLyoKKyAgICAg
KiBPbiBBTUQgc3lzdGVtcywgc2lkZSBlZmZlY3RzIGZyb20gVkVSVyBjYW5j
ZWwgTU9OSVRPUiwgY2F1c2luZyBNV0FJVCB0bworICAgICAqIHdha2UgdXAg
aW1tZWRpYXRlbHkuICBUaGVyZWZvcmUsIFZFUlcgbXVzdCBjb21lIGFoZWFk
IG9mIE1PTklUT1IuCisgICAgICovCisgICAgX19zcGVjX2N0cmxfZW50ZXJf
aWRsZV92ZXJ3KGluZm8pOworCiAgICAgbW9uaXRvcih0aGlzX3NvZnRpcnFf
cGVuZGluZywgMCwgMCk7CiAKICAgICBBU1NFUlQoIWxvY2FsX2lycV9pc19l
bmFibGVkKCkpOwogCiAgICAgaWYgKCAhKnRoaXNfc29mdGlycV9wZW5kaW5n
ICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdl
dF9jcHVfaW5mbygpOwotCi0gICAgICAgIHNwZWNfY3RybF9lbnRlcl9pZGxl
KGluZm8pOworICAgICAgICBfX3NwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8s
IGZhbHNlIC8qIFZFUlcgaGFuZGxlZCBhYm92ZSAqLyk7CiAKICAgICAgICAg
aWYgKCBlY3ggJiBNV0FJVF9FQ1hfSU5URVJSVVBUX0JSRUFLICkKICAgICAg
ICAgICAgIG13YWl0KGVheCwgZWN4KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9zcGVjX2N0cmwuaCBiL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zcGVjX2N0cmwuaAppbmRleCAwNzcyMjU0MTg5NTYuLjY3
MjRkMzgxMjAyOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3NwZWNfY3RybC5oCisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9zcGVjX2N0cmwuaApAQCAtMTE1LDggKzExNSwyMiBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgaW5pdF9zaGFkb3dfc3BlY19jdHJsX3N0YXRlKHZvaWQpCiAg
ICAgaW5mby0+dmVyd19zZWwgPSBfX0hZUEVSVklTT1JfRFMzMjsKIH0KIAor
c3RhdGljIGFsd2F5c19pbmxpbmUgdm9pZCBfX3NwZWNfY3RybF9lbnRlcl9p
ZGxlX3Zlcncoc3RydWN0IGNwdV9pbmZvICppbmZvKQoreworICAgIC8qCisg
ICAgICogRmx1c2gvc2NydWIgc3RydWN0dXJlcyB3aGljaCBhcmUgc3RhdGlj
YWxseSBwYXJ0aXRpb25lZCBiZXR3ZWVuIGFjdGl2ZQorICAgICAqIHRocmVh
ZHMuICBPdGhlcndpc2UgZGF0YSBvZiBvdXJzIChvZiB1bmtub3duIHNlbnNp
dGl2aXR5KSB3aWxsIGJlY29tZQorICAgICAqIGF2YWlsYWJsZSB0byBvdXIg
c2libGluZyB3aGVuIHdlIGdvIGlkbGUuCisgICAgICoKKyAgICAgKiBOb3Rl
OiBWRVJXIG11c3QgYmUgZW5jb2RlZCB3aXRoIGEgbWVtb3J5IG9wZXJhbmQs
IGFzIGl0IGlzIG9ubHkgdGhhdAorICAgICAqIGZvcm0gd2l0aCBzaWRlIGVm
ZmVjdHMuCisgICAgICovCisgICAgYWx0ZXJuYXRpdmVfaW5wdXQoIiIsICJ2
ZXJ3ICVbc2VsXSIsIFg4Nl9GRUFUVVJFX1NDX1ZFUldfSURMRSwKKyAgICAg
ICAgICAgICAgICAgICAgICBbc2VsXSAibSIgKGluZm8tPnZlcndfc2VsKSk7
Cit9CisKIC8qIFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBu
b3Qgc2FmZSBhZnRlciB0aGlzIGNhbGwuICovCi1zdGF0aWMgYWx3YXlzX2lu
bGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9pZGxlKHN0cnVjdCBjcHVfaW5m
byAqaW5mbykKK3N0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgX19zcGVjX2N0
cmxfZW50ZXJfaWRsZShzdHJ1Y3QgY3B1X2luZm8gKmluZm8sIGJvb2wgdmVy
dykKIHsKICAgICB1aW50MzJfdCB2YWwgPSAwOwogCkBAIC0xMzUsMjEgKzE0
OSw4IEBAIHN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgc3BlY19jdHJsX2Vu
dGVyX2lkbGUoc3RydWN0IGNwdV9pbmZvICppbmZvKQogICAgICAgICAgICAg
ICAgICAgICAgICJhIiAodmFsKSwgImMiIChNU1JfU1BFQ19DVFJMKSwgImQi
ICgwKSk7CiAgICAgYmFycmllcigpOwogCi0gICAgLyoKLSAgICAgKiBNaWNy
b2FyY2hpdGVjdHVyYWwgU3RvcmUgQnVmZmVyIERhdGEgU2FtcGxpbmc6Ci0g
ICAgICoKLSAgICAgKiBPbiB2dWxuZXJhYmxlIHN5c3RlbXMsIHN0b3JlIGJ1
ZmZlciBlbnRyaWVzIGFyZSBzdGF0aWNhbGx5IHBhcnRpdGlvbmVkCi0gICAg
ICogYmV0d2VlbiBhY3RpdmUgdGhyZWFkcy4gIFdoZW4gZW50ZXJpbmcgaWRs
ZSwgb3VyIHN0b3JlIGJ1ZmZlciBlbnRyaWVzCi0gICAgICogYXJlIHJlLXBh
cnRpdGlvbmVkIHRvIGFsbG93IHRoZSBvdGhlciB0aHJlYWRzIHRvIHVzZSB0
aGVtLgotICAgICAqCi0gICAgICogRmx1c2ggdGhlIGJ1ZmZlcnMgdG8gZW5z
dXJlIHRoYXQgbm8gc2Vuc2l0aXZlIGRhdGEgb2Ygb3VycyBjYW4gYmUKLSAg
ICAgKiBsZWFrZWQgYnkgYSBzaWJsaW5nIGFmdGVyIGl0IGdldHMgb3VyIHN0
b3JlIGJ1ZmZlciBlbnRyaWVzLgotICAgICAqCi0gICAgICogTm90ZTogVkVS
VyBtdXN0IGJlIGVuY29kZWQgd2l0aCBhIG1lbW9yeSBvcGVyYW5kLCBhcyBp
dCBpcyBvbmx5IHRoYXQKLSAgICAgKiBmb3JtIHdoaWNoIGNhdXNlcyBhIGZs
dXNoLgotICAgICAqLwotICAgIGFsdGVybmF0aXZlX2lucHV0KCIiLCAidmVy
dyAlW3NlbF0iLCBYODZfRkVBVFVSRV9TQ19WRVJXX0lETEUsCi0gICAgICAg
ICAgICAgICAgICAgICAgW3NlbF0gIm0iIChpbmZvLT52ZXJ3X3NlbCkpOwor
ICAgIGlmICggdmVydyApIC8qIEV4cGVjdGVkIHRvIGJlIGNvbnN0LXByb3Bh
Z2F0ZWQuICovCisgICAgICAgIF9fc3BlY19jdHJsX2VudGVyX2lkbGVfdmVy
dyhpbmZvKTsKIAogICAgIC8qCiAgICAgICogQ3Jvc3MtVGhyZWFkIFJldHVy
biBBZGRyZXNzIFByZWRpY3Rpb25zOgpAQCAtMTY3LDYgKzE2OCwxMiBAQCBz
dGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9pZGxl
KHN0cnVjdCBjcHVfaW5mbyAqaW5mbykKICAgICAgICAgICAgICAgICAgICAg
ICA6ICJyYXgiLCAicmN4Iik7CiB9CiAKKy8qIFdBUk5JTkchIGByZXRgLCBg
Y2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBhZnRlciB0aGlzIGNhbGwuICov
CitzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9p
ZGxlKHN0cnVjdCBjcHVfaW5mbyAqaW5mbykKK3sKKyAgICBfX3NwZWNfY3Ry
bF9lbnRlcl9pZGxlKGluZm8sIHRydWUgLyogVkVSVyAqLyk7Cit9CisKIC8q
IFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBi
ZWZvcmUgdGhpcyBjYWxsLiAqLwogc3RhdGljIGFsd2F5c19pbmxpbmUgdm9p
ZCBzcGVjX2N0cmxfZXhpdF9pZGxlKHN0cnVjdCBjcHVfaW5mbyAqaW5mbykK
IHsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-05.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-05.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVGh1LCAyOSBBdWcgMjAyNCAxNzozNjoxMSArMDEwMApTdWJq
ZWN0OiB4ODYvc3BlYy1jdHJsOiBNaXRpZ2F0ZSBUcmFuc2l0aXZlIFNjaGVk
dWxlciBBdHRhY2tzCgpUU0EgYWZmZWN0cyBBTUQgRmFtMTloIENQVXMgKFpl
bjMgYW5kIDQgbWljcm9hcmNoaXRlY3R1cmVzKS4KClRocmVlIG5ldyBDUFVJ
RCBiaXRzIGhhdmUgYmVlbiBkZWZpbmVkLiAgVHdvIChUU0FfU1FfTk8gYW5k
IFRTQV9MMV9OTykKaW5kaWNhdGUgdGhhdCB0aGUgc3lzdGVtIGlzIHVuYWZm
ZWN0ZWQsIGFuZCBtdXN0IGJlIHN5bnRoZXNpc2VkIGJ5IFhlbiBvbgp1bmFm
ZmVjdGVkIHBhcnRzIHRvIGRhdGUuCgpBIHRoaXJkIG5ldyBiaXQgaW5kaWNh
dGVzIHRoYXQgVkVSVyBub3cgaGFzIGEgZmx1c2hpbmcgc2lkZSBlZmZlY3Qu
ICBYZW4KbXVzdCBzeW50aGVzaXNlIHRoaXMgYml0IG9uIGFmZmVjdGVkIHN5
c3RlbXMgYmFzZWQgb24gbWljcm9jb2RlIHZlcnNpb24uCkFzIHdpdGggb3Ro
ZXIgVkVSVy1iYXNlZCBmbHVzaGluZyBmZWF0dXJlcywgVkVSV19DTEVBUiBu
ZWVkcyBPUi1pbmcgYWNyb3NzCmEgcmVzb3VyY2UgcG9vbCwgYW5kIGd1ZXN0
cyB3aGljaCBoYXZlIHNlZW4gaXQgY2FuIHNhZmVseSBtaWdyYXRlIGluLgoK
VGhpcyBpcyBwYXJ0IG9mIFhTQS00NzEgLyBDVkUtMjAyNC0zNjM1MCAvIENW
RS0yMDI0LTM2MzU3LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBC
ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQgYS94ZW4v
YXJjaC94ODYvY3B1LXBvbGljeS5jIGIveGVuL2FyY2gveDg2L2NwdS1wb2xp
Y3kuYwppbmRleCA5ZDFmZjYyNjhkNzkuLjNlNjI4ZTAwOGU5MiAxMDA2NDQK
LS0tIGEveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYworKysgYi94ZW4vYXJj
aC94ODYvY3B1LXBvbGljeS5jCkBAIC00ODAsNiArNDgwLDE3IEBAIHN0YXRp
YyB2b2lkIF9faW5pdCBndWVzdF9jb21tb25fbWF4X2ZlYXR1cmVfYWRqdXN0
bWVudHModWludDMyX3QgKmZzKQogICAgICAgICBpZiAoIHRlc3RfYml0KFg4
Nl9GRUFUVVJFX1JUTSwgZnMpICkKICAgICAgICAgICAgIF9fc2V0X2JpdChY
ODZfRkVBVFVSRV9SVE1fQUxXQVlTX0FCT1JULCBmcyk7CiAgICAgICAgIGJy
ZWFrOworCisgICAgY2FzZSBYODZfVkVORE9SX0FNRDoKKyAgICAgICAgLyoK
KyAgICAgICAgICogVGhpcyBiaXQgaW5kaWNhdGVzIHRoYXQgdGhlIFZFUlcg
aW5zdHJ1Y3Rpb24gbWF5IGhhdmUgZ2FpbmVkCisgICAgICAgICAqIHNjcnVi
YmluZyBzaWRlIGVmZmVjdHMuICBXaXRoIHBvb2xpbmcsIGl0IG1lYW5zICJ5
b3UgbWlnaHQgbWlncmF0ZQorICAgICAgICAgKiBzb21ld2hlcmUgd2hlcmUg
c2NydWJiaW5nIGlzIG5lY2Vzc2FyeSIsIGFuZCBtYXkgbmVlZCBleHBvc2lu
ZyBvbgorICAgICAgICAgKiB1bmFmZmVjdGVkIGhhcmR3YXJlLiAgVGhpcyBp
cyBmaW5lLCBiZWNhdXNlIHRoZSBWRVJXIGluc3RydWN0aW9uCisgICAgICAg
ICAqIGhhcyBiZWVuIGFyb3VuZCBzaW5jZSB0aGUgMjg2LgorICAgICAgICAg
Ki8KKyAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX1ZFUldfQ0xFQVIs
IGZzKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgLyoKQEAgLTU1
OCw2ICs1NjksMTcgQEAgc3RhdGljIHZvaWQgX19pbml0IGd1ZXN0X2NvbW1v
bl9kZWZhdWx0X2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQog
ICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNf
QUJPUlQsIGZzKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKKworICAg
IGNhc2UgWDg2X1ZFTkRPUl9BTUQ6CisgICAgICAgIC8qCisgICAgICAgICAq
IFRoaXMgYml0IGluZGljYXRlIHRoYXQgdGhlIFZFUlcgaW5zdHJ1Y3Rpb24g
bWF5IGhhdmUgZ2FpbmVkCisgICAgICAgICAqIHNjcnViYmluZyBzaWRlIGVm
ZmVjdHMuICBUaGUgbWF4IHBvbGljeSBoYXMgaXQgc2V0IGZvciBtaWdyYXRp
b24KKyAgICAgICAgICogcmVhc29ucywgc28gcmVzZXQgdGhlIGRlZmF1bHQg
cG9saWN5IGJhY2sgdG8gdGhlIGhvc3QgdmFsdWUgaW4gY2FzZQorICAgICAg
ICAgKiB3ZSdyZSB1bmFmZmVjdGVkLgorICAgICAgICAgKi8KKyAgICAgICAg
aWYgKCAhY3B1X2hhc192ZXJ3X2NsZWFyICkKKyAgICAgICAgICAgIF9fY2xl
YXJfYml0KFg4Nl9GRUFUVVJFX1ZFUldfQ0xFQVIsIGZzKTsKKyAgICAgICAg
YnJlYWs7CiAgICAgfQogCiAgICAgLyoKZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L3g4Ni9odm0vc3ZtL2VudHJ5LlMgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9l
bnRyeS5TCmluZGV4IDkxZWRiMzM0NTkzOC4uNjEwYzY0YmY0Yzk3IDEwMDY0
NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9lbnRyeS5TCisrKyBiL3hl
bi9hcmNoL3g4Ni9odm0vc3ZtL2VudHJ5LlMKQEAgLTk5LDYgKzk5LDggQEAg
X19VTkxJS0VMWV9FTkQobnN2bV9oYXApCiAgICAgICAgIHBvcCAgJXJzaQog
ICAgICAgICBwb3AgICVyZGkKIAorICAgICAgICBTUEVDX0NUUkxfQ09ORF9W
RVJXICAgICAvKiBSZXE6ICVyc3A9ZWZyYW1lICAgICAgICAgICAgICAgICAg
ICBDbG9iOiBlZmwgKi8KKwogICAgICAgICB2bXJ1bgogCiAgICAgICAgIFNB
VkVfQUxMCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20v
Y3B1ZmVhdHVyZS5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZl
YXR1cmUuaAppbmRleCA2YzVmNWNlMGNmYzUuLjNjMmFjOTY0ZTQxMCAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUu
aAorKysgYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5o
CkBAIC0xOTUsNiArMTk1LDcgQEAgc3RhdGljIGlubGluZSBib29sIGJvb3Rf
Y3B1X2hhcyh1bnNpZ25lZCBpbnQgZmVhdCkKIAogLyogQ1BVSUQgbGV2ZWwg
MHg4MDAwMDAyMS5lYXggKi8KICNkZWZpbmUgY3B1X2hhc19sZmVuY2VfZGlz
cGF0Y2ggYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0xGRU5DRV9ESVNQQVRD
SCkKKyNkZWZpbmUgY3B1X2hhc192ZXJ3X2NsZWFyICAgICAgYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX1ZFUldfQ0xFQVIpCiAjZGVmaW5lIGNwdV9oYXNf
bnNjYiAgICAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9OU0NC
KQogCiAvKiBDUFVJRCBsZXZlbCAweDAwMDAwMDA3OjEuZWR4ICovCkBAIC0y
MjIsNiArMjIzLDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBib290X2NwdV9o
YXModW5zaWduZWQgaW50IGZlYXQpCiAjZGVmaW5lIGNwdV9oYXNfcGJfb3B0
X2N0cmwgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9QQl9PUFRfQ1RS
TCkKICNkZWZpbmUgY3B1X2hhc19pdHNfbm8gICAgICAgICAgYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX0lUU19OTykKIAorLyogQ1BVSUQgbGV2ZWwgMHg4
MDAwMDAyMS5lY3ggKi8KKyNkZWZpbmUgY3B1X2hhc190c2Ffc3Ffbm8gICAg
ICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1RTQV9TUV9OTykKKyNkZWZp
bmUgY3B1X2hhc190c2FfbDFfbm8gICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9G
RUFUVVJFX1RTQV9MMV9OTykKKwogLyogU3ludGhlc2l6ZWQuICovCiAjZGVm
aW5lIGNwdV9oYXNfYXJjaF9wZXJmbW9uICAgIGJvb3RfY3B1X2hhcyhYODZf
RkVBVFVSRV9BUkNIX1BFUkZNT04pCiAjZGVmaW5lIGNwdV9oYXNfY3B1aWRf
ZmF1bHRpbmcgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9DUFVJRF9GQVVM
VElORykKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYyBi
L3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYwppbmRleCAzMDI3ZjFkYjZiNzAu
LmJjZGFlMWVkMjM3NyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NwZWNf
Y3RybC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYwpAQCAtNDk0
LDcgKzQ5NCw3IEBAIGN1c3RvbV9wYXJhbSgicHYtbDF0ZiIsIHBhcnNlX3B2
X2wxdGYpOwogCiBzdGF0aWMgdm9pZCBfX2luaXQgcHJpbnRfZGV0YWlscyhl
bnVtIGluZF90aHVuayB0aHVuaykKIHsKLSAgICB1bnNpZ25lZCBpbnQgXzdk
MCA9IDAsIF83ZDIgPSAwLCBlOGIgPSAwLCBlMjFhID0gMCwgbWF4ID0gMCwg
dG1wOworICAgIHVuc2lnbmVkIGludCBfN2QwID0gMCwgXzdkMiA9IDAsIGU4
YiA9IDAsIGUyMWEgPSAwLCBlMjFjID0gMCwgbWF4ID0gMCwgdG1wOwogICAg
IHVpbnQ2NF90IGNhcHMgPSAwOwogCiAgICAgLyogQ29sbGVjdCBkaWFnbm9z
dGljcyBhYm91dCBhdmFpbGFibGUgbWl0aWdhdGlvbnMuICovCkBAIC01MDUs
NyArNTA1LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHByaW50X2RldGFpbHMo
ZW51bSBpbmRfdGh1bmsgdGh1bmspCiAgICAgaWYgKCBib290X2NwdV9kYXRh
LmV4dGVuZGVkX2NwdWlkX2xldmVsID49IDB4ODAwMDAwMDhVICkKICAgICAg
ICAgY3B1aWQoMHg4MDAwMDAwOFUsICZ0bXAsICZlOGIsICZ0bXAsICZ0bXAp
OwogICAgIGlmICggYm9vdF9jcHVfZGF0YS5leHRlbmRlZF9jcHVpZF9sZXZl
bCA+PSAweDgwMDAwMDIxVSApCi0gICAgICAgIGNwdWlkKDB4ODAwMDAwMjFV
LCAmZTIxYSwgJnRtcCwgJnRtcCwgJnRtcCk7CisgICAgICAgIGNwdWlkKDB4
ODAwMDAwMjFVLCAmZTIxYSwgJnRtcCwgJmUyMWMsICZ0bXApOwogICAgIGlm
ICggY3B1X2hhc19hcmNoX2NhcHMgKQogICAgICAgICByZG1zcmwoTVNSX0FS
Q0hfQ0FQQUJJTElUSUVTLCBjYXBzKTsKIApAQCAtNTE1LDcgKzUxNSw3IEBA
IHN0YXRpYyB2b2lkIF9faW5pdCBwcmludF9kZXRhaWxzKGVudW0gaW5kX3Ro
dW5rIHRodW5rKQogICAgICAqIEhhcmR3YXJlIHJlYWQtb25seSBpbmZvcm1h
dGlvbiwgc3RhdGluZyBpbW11bml0eSB0byBjZXJ0YWluIGlzc3Vlcywgb3IK
ICAgICAgKiBzdWdnZXN0aW9ucyBvZiB3aGljaCBtaXRpZ2F0aW9uIHRvIHVz
ZS4KICAgICAgKi8KLSAgICBwcmludGsoIiAgSGFyZHdhcmUgaGludHM6JXMl
cyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVz
XG4iLAorICAgIHByaW50aygiICBIYXJkd2FyZSBoaW50czolcyVzJXMlcyVz
JXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzXG4i
LAogICAgICAgICAgICAoY2FwcyAmIEFSQ0hfQ0FQU19SRENMX05PKSAgICAg
ICAgICAgICAgICAgICAgICAgID8gIiBSRENMX05PIiAgICAgICAgOiAiIiwK
ICAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUFNfRUlCUlMpICAgICAgICAg
ICAgICAgICAgICAgICAgICA/ICIgRUlCUlMiICAgICAgICAgIDogIiIsCiAg
ICAgICAgICAgIChjYXBzICYgQVJDSF9DQVBTX1JTQkEpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPyAiIFJTQkEiICAgICAgICAgICA6ICIiLApAQCAt
NTQwLDEwICs1NDAsMTIgQEAgc3RhdGljIHZvaWQgX19pbml0IHByaW50X2Rl
dGFpbHMoZW51bSBpbmRfdGh1bmsgdGh1bmspCiAgICAgICAgICAgIChlOGIg
ICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX0lCUEJfUkVUKSkgICAgICAg
PyAiIElCUEJfUkVUIiAgICAgICA6ICIiLAogICAgICAgICAgICAoZTIxYSAm
IGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9JQlBCX0JSVFlQRSkpICAgID8g
IiBJQlBCX0JSVFlQRSIgICAgOiAiIiwKICAgICAgICAgICAgKGUyMWEgJiBj
cHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfU1JTT19OTykpICAgICAgICA/ICIg
U1JTT19OTyIgICAgICAgIDogIiIsCi0gICAgICAgICAgIChlMjFhICYgY3B1
ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NSU09fVVNfTk8pKSAgICAgPyAiIFNS
U09fVVNfTk8iICAgICA6ICIiKTsKKyAgICAgICAgICAgKGUyMWEgJiBjcHVm
ZWF0X21hc2soWDg2X0ZFQVRVUkVfU1JTT19VU19OTykpICAgICA/ICIgU1JT
T19VU19OTyIgICAgIDogIiIsCisgICAgICAgICAgIChlMjFjICYgY3B1ZmVh
dF9tYXNrKFg4Nl9GRUFUVVJFX1RTQV9TUV9OTykpICAgICAgPyAiIFRTQV9T
UV9OTyIgICAgICA6ICIiLAorICAgICAgICAgICAoZTIxYyAmIGNwdWZlYXRf
bWFzayhYODZfRkVBVFVSRV9UU0FfTDFfTk8pKSAgICAgID8gIiBUU0FfTDFf
Tk8iICAgICAgOiAiIik7CiAKICAgICAvKiBIYXJkd2FyZSBmZWF0dXJlcyB3
aGljaCBuZWVkIGRyaXZpbmcgdG8gbWl0aWdhdGUgaXNzdWVzLiAqLwotICAg
IHByaW50aygiICBIYXJkd2FyZSBmZWF0dXJlczolcyVzJXMlcyVzJXMlcyVz
JXMlcyVzJXMlcyVzJXNcbiIsCisgICAgcHJpbnRrKCIgIEhhcmR3YXJlIGZl
YXR1cmVzOiVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzXG4iLAog
ICAgICAgICAgICAoZThiICAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9J
QlBCKSkgfHwKICAgICAgICAgICAgKF83ZDAgJiBjcHVmZWF0X21hc2soWDg2
X0ZFQVRVUkVfSUJSU0IpKSAgICAgICAgICA/ICIgSUJQQiIgICAgICAgICAg
IDogIiIsCiAgICAgICAgICAgIChlOGIgICYgY3B1ZmVhdF9tYXNrKFg4Nl9G
RUFUVVJFX0lCUlMpKSB8fApAQCAtNTYzLDcgKzU2NSw4IEBAIHN0YXRpYyB2
b2lkIF9faW5pdCBwcmludF9kZXRhaWxzKGVudW0gaW5kX3RodW5rIHRodW5r
KQogICAgICAgICAgICAoY2FwcyAmIEFSQ0hfQ0FQU19HRFNfQ1RSTCkgICAg
ICAgICAgICAgICAgICAgICAgID8gIiBHRFNfQ1RSTCIgICAgICAgOiAiIiwK
ICAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUFNfUkZEU19DTEVBUikgICAg
ICAgICAgICAgICAgICAgICA/ICIgUkZEU19DTEVBUiIgICAgIDogIiIsCiAg
ICAgICAgICAgIChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NC
UEIpKSAgICAgICAgICAgPyAiIFNCUEIiICAgICAgICAgICA6ICIiLAotICAg
ICAgICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9TUlNP
X01TUl9GSVgpKSAgID8gIiBTUlNPX01TUl9GSVgiICAgOiAiIik7CisgICAg
ICAgICAgIChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NSU09f
TVNSX0ZJWCkpICAgPyAiIFNSU09fTVNSX0ZJWCIgICA6ICIiLAorICAgICAg
ICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9WRVJXX0NM
RUFSKSkgICAgID8gIiBWRVJXX0NMRUFSIiAgICAgOiAiIik7CiAKICAgICAv
KiBDb21waWxlZC1pbiBzdXBwb3J0IHdoaWNoIHBlcnRhaW5zIHRvIG1pdGln
YXRpb25zLiAqLwogICAgIGlmICggSVNfRU5BQkxFRChDT05GSUdfSU5ESVJF
Q1RfVEhVTkspIHx8IElTX0VOQUJMRUQoQ09ORklHX1NIQURPV19QQUdJTkcp
IHx8CkBAIC0xNTI0LDYgKzE1MjcsNzcgQEAgc3RhdGljIHZvaWQgX19pbml0
IHJmZHNfY2FsY3VsYXRpb25zKHZvaWQpCiAgICAgc2V0dXBfZm9yY2VfY3B1
X2NhcChYODZfRkVBVFVSRV9SRkRTX05PKTsKIH0KIAorLyoKKyAqIFRyYW5z
aWVudCBTY2hlZHVsZXIgQXR0YWNrcworICoKKyAqIGh0dHBzOi8vd3d3LmFt
ZC5jb20vY29udGVudC9kYW0vYW1kL2VuL2RvY3VtZW50cy9yZXNvdXJjZXMv
YnVsbGV0aW4vdGVjaG5pY2FsLWd1aWRhbmNlLWZvci1taXRpZ2F0aW5nLXRy
YW5zaWVudC1zY2hlZHVsZXItYXR0YWNrcy5wZGYKKyAqLworc3RhdGljIHZv
aWQgX19pbml0IHRzYV9jYWxjdWxhdGlvbnModm9pZCkKK3sKKyAgICB1bnNp
Z25lZCBpbnQgY3Vycl9yZXYsIG1pbl9yZXY7CisKKyAgICAvKiBUU0EgaXMg
b25seSBrbm93biB0byBhZmZlY3QgQU1EIHByb2Nlc3NvcnMgYXQgdGhpcyB0
aW1lLiAqLworICAgIGlmICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yICE9
IFg4Nl9WRU5ET1JfQU1EICkKKyAgICAgICAgcmV0dXJuOworCisgICAgLyog
SWYgd2UncmUgdmlydHVhbGlzZWQsIGRvbid0IGF0dGVtcHQgdG8gc3ludGhl
c2lzZSBhbnl0aGluZy4gKi8KKyAgICBpZiAoIGNwdV9oYXNfaHlwZXJ2aXNv
ciApCisgICAgICAgIHJldHVybjsKKworICAgIC8qCisgICAgICogQWNjb3Jk
aW5nIHRvIHRoZSB3aGl0ZXBhcGVyLCBzb21lIEZhbTFBIENQVXMgKE1vZGVs
cyAweDAwLi4uMHg0ZiwKKyAgICAgKiAweDYwLi4uMHg3ZikgYXJlIG5vdCB2
dWxuZXJhYmxlIGJ1dCBkb24ndCBlbnVtZXJhdGUgVFNBX3tTUSxMMX1fTk8u
ICBJZgorICAgICAqIHdlIHNlZSBlaXRoZXIgZW51bWVyYXRlZCwgYXNzdW1l
IGJvdGggYXJlIGNvcnJlY3QgLi4uCisgICAgICovCisgICAgaWYgKCBjcHVf
aGFzX3RzYV9zcV9ubyB8fCBjcHVfaGFzX3RzYV9sMV9ubyApCisgICAgICAg
IHJldHVybjsKKworICAgIC8qCisgICAgICogLi4uIG90aGVyd2lzZSwgc3lu
dGhlc2lzZSB0aGVtLiAgQ1BVcyBvdGhlciB0aGFuIEZhbTE5IChaZW4zLzQp
IGFyZQorICAgICAqIHN0YXRlZCB0byBiZSBub3QgdnVsbmVyYWJsZS4KKyAg
ICAgKi8KKyAgICBpZiAoIGJvb3RfY3B1X2RhdGEueDg2ICE9IDB4MTkgKQor
ICAgIHsKKyAgICAgICAgc2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVS
RV9UU0FfU1FfTk8pOworICAgICAgICBzZXR1cF9mb3JjZV9jcHVfY2FwKFg4
Nl9GRUFUVVJFX1RTQV9MMV9OTyk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICAvKgorICAgICAqIEZhbTE5IENQVXMgZ2V0IFZFUldfQ0xFQVIg
d2l0aCBuZXcgZW5vdWdoIG1pY3JvY29kZSwgYnV0IG11c3QKKyAgICAgKiBz
eW50aGVzaXNlIHRoZSBDUFVJRCBiaXQuCisgICAgICovCisgICAgY3Vycl9y
ZXYgPSB0aGlzX2NwdShjcHVfc2lnKS5yZXY7CisgICAgc3dpdGNoICggY3Vy
cl9yZXYgPj4gOCApCisgICAgeworICAgIGNhc2UgMHgwYTAwMTE6IG1pbl9y
ZXYgPSAweDBhMDAxMWQ3OyBicmVhazsKKyAgICBjYXNlIDB4MGEwMDEyOiBt
aW5fcmV2ID0gMHgwYTAwMTIzYjsgYnJlYWs7CisgICAgY2FzZSAweDBhMDA4
MjogbWluX3JldiA9IDB4MGEwMDgyMGQ7IGJyZWFrOworICAgIGNhc2UgMHgw
YTEwMTE6IG1pbl9yZXYgPSAweDBhMTAxMTRjOyBicmVhazsKKyAgICBjYXNl
IDB4MGExMDEyOiBtaW5fcmV2ID0gMHgwYTEwMTI0YzsgYnJlYWs7CisgICAg
Y2FzZSAweDBhMTA4MTogbWluX3JldiA9IDB4MGExMDgxMDk7IGJyZWFrOwor
ICAgIGNhc2UgMHgwYTIwMTA6IG1pbl9yZXYgPSAweDBhMjAxMDJlOyBicmVh
azsKKyAgICBjYXNlIDB4MGEyMDEyOiBtaW5fcmV2ID0gMHgwYTIwMTIxMTsg
YnJlYWs7CisgICAgY2FzZSAweDBhNDA0MTogbWluX3JldiA9IDB4MGE0MDQx
MDg7IGJyZWFrOworICAgIGNhc2UgMHgwYTUwMDA6IG1pbl9yZXYgPSAweDBh
NTAwMDEyOyBicmVhazsKKyAgICBjYXNlIDB4MGE2MDEyOiBtaW5fcmV2ID0g
MHgwYTYwMTIwYTsgYnJlYWs7CisgICAgY2FzZSAweDBhNzA0MTogbWluX3Jl
diA9IDB4MGE3MDQxMDg7IGJyZWFrOworICAgIGNhc2UgMHgwYTcwNTI6IG1p
bl9yZXYgPSAweDBhNzA1MjA4OyBicmVhazsKKyAgICBjYXNlIDB4MGE3MDgw
OiBtaW5fcmV2ID0gMHgwYTcwODAwODsgYnJlYWs7CisgICAgY2FzZSAweDBh
NzBjMDogbWluX3JldiA9IDB4MGE3MGMwMDg7IGJyZWFrOworICAgIGNhc2Ug
MHgwYWEwMDI6IG1pbl9yZXYgPSAweDBhYTAwMjE2OyBicmVhazsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcKKyAgICAg
ICAgICAgICAgICJVbnJlY29nbmlzZWQgQ1BVICUwMngtJTAyeC0lMDJ4LCB1
Y29kZSAweCUwOHggZm9yIFRTQSBtaXRpZ2F0aW9uXG4iLAorICAgICAgICAg
ICAgICAgYm9vdF9jcHVfZGF0YS54ODYsIGJvb3RfY3B1X2RhdGEueDg2X21v
ZGVsLAorICAgICAgICAgICAgICAgYm9vdF9jcHVfZGF0YS54ODZfbWFzaywg
Y3Vycl9yZXYpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KCBjdXJyX3JldiA+PSBtaW5fcmV2ICkKKyAgICAgICAgc2V0dXBfZm9yY2Vf
Y3B1X2NhcChYODZfRkVBVFVSRV9WRVJXX0NMRUFSKTsKK30KKwogc3RhdGlj
IGJvb2wgX19pbml0IGNwdV9oYXNfZ2RzKHZvaWQpCiB7CiAgICAgLyoKQEAg
LTIyMjEsNiArMjI5NSw3IEBAIHZvaWQgX19pbml0IGluaXRfc3BlY3VsYXRp
b25fbWl0aWdhdGlvbnModm9pZCkKICAgICAgKiBodHRwczovL3d3dy5pbnRl
bC5jb20vY29udGVudC93d3cvdXMvZW4vZGV2ZWxvcGVyL2FydGljbGVzL3Rl
Y2huaWNhbC9zb2Z0d2FyZS1zZWN1cml0eS1ndWlkYW5jZS90ZWNobmljYWwt
ZG9jdW1lbnRhdGlvbi9pbnRlbC1hbmFseXNpcy1taWNyb2FyY2hpdGVjdHVy
YWwtZGF0YS1zYW1wbGluZy5odG1sCiAgICAgICogaHR0cHM6Ly93d3cuaW50
ZWwuY29tL2NvbnRlbnQvd3d3L3VzL2VuL2RldmVsb3Blci9hcnRpY2xlcy90
ZWNobmljYWwvc29mdHdhcmUtc2VjdXJpdHktZ3VpZGFuY2UvdGVjaG5pY2Fs
LWRvY3VtZW50YXRpb24vcHJvY2Vzc29yLW1taW8tc3RhbGUtZGF0YS12dWxu
ZXJhYmlsaXRpZXMuaHRtbAogICAgICAqIGh0dHBzOi8vd3d3LmludGVsLmNv
bS9jb250ZW50L3d3dy91cy9lbi9kZXZlbG9wZXIvYXJ0aWNsZXMvdGVjaG5p
Y2FsL3NvZnR3YXJlLXNlY3VyaXR5LWd1aWRhbmNlL2Fkdmlzb3J5LWd1aWRh
bmNlL3JlZ2lzdGVyLWZpbGUtZGF0YS1zYW1wbGluZy5odG1sCisgICAgICog
aHR0cHM6Ly93d3cuYW1kLmNvbS9jb250ZW50L2RhbS9hbWQvZW4vZG9jdW1l
bnRzL3Jlc291cmNlcy9idWxsZXRpbi90ZWNobmljYWwtZ3VpZGFuY2UtZm9y
LW1pdGlnYXRpbmctdHJhbnNpZW50LXNjaGVkdWxlci1hdHRhY2tzLnBkZgog
ICAgICAqCiAgICAgICogUmVsZXZhbnQgdWNvZGVzOgogICAgICAqCkBAIC0y
MjUzLDkgKzIzMjgsMTggQEAgdm9pZCBfX2luaXQgaW5pdF9zcGVjdWxhdGlv
bl9taXRpZ2F0aW9ucyh2b2lkKQogICAgICAqCiAgICAgICogLSBNYXJjaCAy
MDIzLCBmb3IgUkZEUy4gIEVudW1lcmF0ZSBSRkRTX0NMRUFSIHRvIG1lYW4g
dGhhdCBWRVJXIG5vdwogICAgICAqICAgc2NydWJzIG5vbi1hcmNoaXRlY3R1
cmFsIGVudHJpZXMgZnJvbSBjZXJ0YWluIHJlZ2lzdGVyIGZpbGVzLgorICAg
ICAqCisgICAgICogLSBKdWx5IDIwMjUsIGZvciBUU0EuICBJbnRyb2R1Y2Vz
IFZFUlcgc2lkZSBlZmZlY3RzIHRvIG1pdGlnYXRlCisgICAgICogICBUU0Ff
e1NRL0wxfS4gIFhlbiBtdXN0IHN5bnRoZXNpc2UgdGhlIFZFUldfQ0xFQVIg
ZmVhdHVyZSBiYXNlZCBvbgorICAgICAqICAgbWljcm9jb2RlIHZlcnNpb24u
CisgICAgICoKKyAgICAgKiAgIE5vdGUsIHRoZXNlIG1pY3JvY29kZSB1cGRh
dGVzIHdlcmUgcHJvZHVjZWQgYmVmb3JlIHRoZSByZW1lZGlhdGlvbiBvZgor
ICAgICAqICAgdGhlIG1pY3JvY29kZSBzaWduYXR1cmUgaXNzdWVzLCBhbmQg
YXJlIGluY2x1ZGVkIGluIHRoZSBmaXJ3bWFyZQorICAgICAqICAgdXBkYXRl
cyBmaXhpbmcgdGhlIGVudHJ5c2lnbiB2dWxuZXJhYmlsaXR5IGZyb20gfkRl
Y2VtYmVyIDIwMjQuCiAgICAgICovCiAgICAgbWRzX2NhbGN1bGF0aW9ucygp
OwogICAgIHJmZHNfY2FsY3VsYXRpb25zKCk7CisgICAgdHNhX2NhbGN1bGF0
aW9ucygpOwogCiAgICAgLyoKICAgICAgKiBQYXJ0cyB3aGljaCBlbnVtZXJh
dGUgRkJfQ0xFQVIgYXJlIHRob3NlIHdpdGggbm93LXVwZGF0ZWQgbWljcm9j
b2RlCkBAIC0yMjg3LDIxICsyMzcxLDI3IEBAIHZvaWQgX19pbml0IGluaXRf
c3BlY3VsYXRpb25fbWl0aWdhdGlvbnModm9pZCkKICAgICAgKiBNTFBEUy9N
RkJEUyB3aGVuIFNNVCBpcyBlbmFibGVkLgogICAgICAqLwogICAgIGlmICgg
b3B0X3ZlcndfcHYgPT0gLTEgKQotICAgICAgICBvcHRfdmVyd19wdiA9IGNw
dV9oYXNfdXNlZnVsX21kX2NsZWFyIHx8IGNwdV9oYXNfcmZkc19jbGVhcjsK
KyAgICAgICAgb3B0X3ZlcndfcHYgPSAoY3B1X2hhc191c2VmdWxfbWRfY2xl
YXIgfHwgY3B1X2hhc19yZmRzX2NsZWFyIHx8CisgICAgICAgICAgICAgICAg
ICAgICAgIGNwdV9oYXNfdmVyd19jbGVhcik7CiAKICAgICBpZiAoIG9wdF92
ZXJ3X2h2bSA9PSAtMSApCi0gICAgICAgIG9wdF92ZXJ3X2h2bSA9IGNwdV9o
YXNfdXNlZnVsX21kX2NsZWFyIHx8IGNwdV9oYXNfcmZkc19jbGVhcjsKKyAg
ICAgICAgb3B0X3ZlcndfaHZtID0gKGNwdV9oYXNfdXNlZnVsX21kX2NsZWFy
IHx8IGNwdV9oYXNfcmZkc19jbGVhciB8fAorICAgICAgICAgICAgICAgICAg
ICAgICAgY3B1X2hhc192ZXJ3X2NsZWFyKTsKIAogICAgIC8qCi0gICAgICog
SWYgU01UIGlzIGFjdGl2ZSwgYW5kIHdlJ3JlIHByb3RlY3RpbmcgYWdhaW5z
dCBNRFMgb3IgTU1JTyBzdGFsZSBkYXRhLAorICAgICAqIElmIFNNVCBpcyBh
Y3RpdmUsIGFuZCB3ZSdyZSBwcm90ZWN0aW5nIGFnYWluc3QgYW55IG9mOgor
ICAgICAqICAgLSBNU0JEUworICAgICAqICAgLSBNTUlPIHN0YWxlIGRhdGEK
KyAgICAgKiAgIC0gVFNBLVNRCiAgICAgICogd2UgbmVlZCB0byBzY3J1YiBi
ZWZvcmUgZ29pbmcgaWRsZSBhcyB3ZWxsIGFzIG9uIHJldHVybiB0byBndWVz
dC4KICAgICAgKiBWYXJpb3VzIHBpcGVsaW5lIHJlc291cmNlcyBhcmUgcmVw
YXJ0aXRpb25lZCBhbW9uZ3N0IG5vbi1pZGxlIHRocmVhZHMuCiAgICAgICoK
LSAgICAgKiBXZSBkb24ndCBuZWVkIHRvIHNjcnViIG9uIGlkbGUgZm9yIFJG
RFMuICBUaGVyZSBhcmUgbm8gYWZmZWN0ZWQgY29yZXMKLSAgICAgKiB3aGlj
aCBzdXBwb3J0IFNNVCwgZGVzcGl0ZSB0aGVyZSBiZWluZyBhZmZlY3RlZCBj
b3JlcyBpbiBoeWJyaWQgc3lzdGVtcwotICAgICAqIHdoaWNoIGhhdmUgU01U
IGVsc2V3aGVyZSBpbiB0aGUgcGxhdGZvcm0uCisgICAgICogV2UgZG9uJ3Qg
bmVlZCB0byBzY3J1YiBvbiBpZGxlIGZvcjoKKyAgICAgKiAgIC0gUkZEUyAo
bm8gU01UIGFmZmVjdGVkIGNvcmVzKQorICAgICAqICAgLSBUU0EtTDEgKHV0
YWdzIG5ldmVyIHNoYXJlZCBiZXR3ZWVuIHRocmVhZHMpCiAgICAgICovCiAg
ICAgaWYgKCAoKGNwdV9oYXNfdXNlZnVsX21kX2NsZWFyICYmIChvcHRfdmVy
d19wdiB8fCBvcHRfdmVyd19odm0pKSB8fAorICAgICAgICAgIChjcHVfaGFz
X3ZlcndfY2xlYXIgJiYgIWNwdV9oYXNfdHNhX3NxX25vKSB8fAogICAgICAg
ICAgIG9wdF92ZXJ3X21taW8pICYmIGh3X3NtdF9lbmFibGVkICkKICAgICAg
ICAgc2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVSRV9TQ19WRVJXX0lE
TEUpOwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14
ODYvY3B1ZmVhdHVyZXNldC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gt
eDg2L2NwdWZlYXR1cmVzZXQuaAppbmRleCA0ODBkNWY1OGNlMDkuLmY3MzEy
ZTBiMDRlNyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gt
eDg2L2NwdWZlYXR1cmVzZXQuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMv
YXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCkBAIC0zMjEsNiArMzIxLDcgQEAg
WEVOX0NQVUZFQVRVUkUoTk9fSU5WRCwgICAgICAxMCozMiszMCkgLyogICBJ
TlZEIGluc3RydWN0aW9uIHVudXNhYmxlICovCiBYRU5fQ1BVRkVBVFVSRShO
T19ORVNUX0JQLCAgICAgICAgIDExKjMyKyAwKSAvKkEgIE5vIE5lc3RlZCBE
YXRhIEJyZWFrcG9pbnRzICovCiBYRU5fQ1BVRkVBVFVSRShGU19HU19OUywg
ICAgICAgICAgIDExKjMyKyAxKSAvKlN8IEZTL0dTIGJhc2UgTVNScyBub24t
c2VyaWFsaXNpbmcgKi8KIFhFTl9DUFVGRUFUVVJFKExGRU5DRV9ESVNQQVRD
SCwgICAgMTEqMzIrIDIpIC8qQSAgTEZFTkNFIGFsd2F5cyBzZXJpYWxpemlu
ZyAqLworWEVOX0NQVUZFQVRVUkUoVkVSV19DTEVBUiwgICAgICAgICAxMSoz
MisgNSkgLyohQXwgVkVSVyBjbGVhcnMgbWljcm9hcmNoaXRlY3R1cmFsIGJ1
ZmZlcnMgKi8KIFhFTl9DUFVGRUFUVVJFKE5TQ0IsICAgICAgICAgICAgICAg
MTEqMzIrIDYpIC8qQSAgTnVsbCBTZWxlY3RvciBDbGVhcnMgQmFzZSAoYW5k
IGxpbWl0IHRvbykgKi8KIFhFTl9DUFVGRUFUVVJFKEFVVE9fSUJSUywgICAg
ICAgICAgMTEqMzIrIDgpIC8qUyAgQXV0b21hdGljIElCUlMgKi8KIFhFTl9D
UFVGRUFUVVJFKEFNRF9GU1JTLCAgICAgICAgICAgMTEqMzIrMTApIC8qQSAg
RmFzdCBTaG9ydCBSRVAgU1RPU0IgKi8KQEAgLTM5Niw2ICszOTcsOCBAQCBY
RU5fQ1BVRkVBVFVSRShQQl9PUFRfQ1RSTCwgICAgICAgIDE2KjMyKzMyKSAv
KiAgIE1TUl9QQl9PUFRfQ1RSTC5JQlBCX0FMVCAqLwogWEVOX0NQVUZFQVRV
UkUoSVRTX05PLCAgICAgICAgICAgICAxNiozMis2MikgLyohQSBObyBJbmRp
cmVjdCBUYXJnZXQgU2VsZWN0aW9uICovCiAKIC8qIEFNRC1kZWZpbmVkIENQ
VSBmZWF0dXJlcywgQ1BVSUQgbGV2ZWwgMHg4MDAwMDAyMS5lY3gsIHdvcmQg
MTggKi8KK1hFTl9DUFVGRUFUVVJFKFRTQV9TUV9OTywgICAgICAgICAgMTgq
MzIrIDEpIC8qQSAgTm8gU3RvcmUgUXVldWUgVHJhbnNpdGl2ZSBTY2hlZHVs
ZXIgQXR0YWNrcyAqLworWEVOX0NQVUZFQVRVUkUoVFNBX0wxX05PLCAgICAg
ICAgICAxOCozMisgMikgLypBICBObyBMMUQgVHJhbnNpdGl2ZSBTY2hlZHVs
ZXIgQXR0YWNrcyAqLwogCiAjZW5kaWYgLyogWEVOX0NQVUZFQVRVUkUgKi8K
IAo=

--=separator--


From xen-devel-bounces@lists.xenproject.org Wed Nov 05 13:40:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 13:40:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156248.1485476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGdjo-0005EH-7U; Wed, 05 Nov 2025 13:39:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156248.1485476; Wed, 05 Nov 2025 13:39: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 1vGdjo-0005EA-3i; Wed, 05 Nov 2025 13:39:48 +0000
Received: by outflank-mailman (input) for mailman id 1156248;
 Wed, 05 Nov 2025 13:39:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eIH/=5N=siemens.com=haseeb.ashraf@srs-se1.protection.inumbo.net>)
 id 1vGdjm-0005E4-IE
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 13:39:46 +0000
Received: from SEYPR02CU001.outbound.protection.outlook.com
 (mail-koreacentralazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c40f::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dfb32088-ba4c-11f0-980a-7dc792cee155;
 Wed, 05 Nov 2025 14:39:40 +0100 (CET)
Received: from KL1PR0601MB4588.apcprd06.prod.outlook.com
 (2603:1096:820:87::11) by SEZPR06MB5919.apcprd06.prod.outlook.com
 (2603:1096:101:ea::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.13; Wed, 5 Nov
 2025 13:39:33 +0000
Received: from KL1PR0601MB4588.apcprd06.prod.outlook.com
 ([fe80::3f19:282d:5fe2:f523]) by KL1PR0601MB4588.apcprd06.prod.outlook.com
 ([fe80::3f19:282d:5fe2:f523%3]) with mapi id 15.20.9275.015; Wed, 5 Nov 2025
 13:39: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: dfb32088-ba4c-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=O297pGzk0pfx6dod8SFsnAgfHH2EMEk4ZC07Nc6PiVz8zKuRNJd6OFPUFIun3EK2TgPJ7bLXutEoaMm8I9QywDe6LKhG58S9ePSh/s4XfDReIsU+VDcWFKajjOsMYkpYRK1qoQOful18pXU2thvJ41x0BozgmKTYUWq2VJuEMZj3QR96yh9JWa0MysDsN+s6PUT+SPRFRdTOKj/4AEcQcND/cHZQgel2jxwlPliBwA2XBt1/vTFMf4RaRzlxJJze92iUpASLEw8SGTmJaDj4SzyYEyECOiqK/bqmXfOkUxQE6WnxXo3hQqgeIFUZRqtBp/Yb5NH2oge5uRjfd+FCIQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HBdoUnBFTYdqfZaHh9SgfeSv12uYNIWkb5hMhg+9dAQ=;
 b=Dx0zrqOlfChiirFK5LBpOhNjlwFpJrneJT/N14qrrXAzcSiJmiwcnO4PrRglyjW6BNo+SRqM2pYH9xLoDGWPQ/bzGAwOuO6GTuB1plm4zTLsjtnM/0GpcWAzZdDe5UKMFZqfeN0Wv3LxI04GBbGRR8O2LdrvSckgfgA4CR00Un13aZZ+RuBiT6MK3mQKF/iwwlVFYj1qlc4D1Nc3ByItWpInImqEgen5WWE+QQf0B1+jBbfqn0YwCS9QVrVCn8PqqZzjEu3ORTvMSYZWQ+mlEwPdqMv6hdWcYtxTx0gG9cYDG0sCh7EgW8uK+q9WjJWR8lwPTcqtHP5BeIsup4Wbpw==
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=HBdoUnBFTYdqfZaHh9SgfeSv12uYNIWkb5hMhg+9dAQ=;
 b=l0TWpzhmQOAd1jipcOYTYLOB/+zAB7LW/VnygL+hdv6/dZtkTgPpSuQ7UbJzVAb1riifB21IXYJjD+XZ+gGD32PoyisxI0VSUsiuzR/AFigYrKZrOVy9zq1IrUr63reb4ecNrcHBHKbIbjELvXwJCvvV5kp8RXePhc5En2MiKZUzwqOdrndD6cHrnscZPqth2P87v8KUKSmWDrN+r3wy8gzgnNjY9pRidD+r48gYuxuNzVu6ZPeZ+boKdAKSiFZeRo6pbI/nG871a57zhq5RvILPaqoV8/qOTnJgbTQTa9M5opPwjwgaRm5HjRIYJ95zcmSVHqL9V0k9s4Rj15VL5g==
From: "haseeb.ashraf@siemens.com" <haseeb.ashraf@siemens.com>
To: Julien Grall <julien@xen.org>, Mohamed Mediouni <mohamed@unpredictable.fr>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Volodymyr_Babchuk@epam.com" <Volodymyr_Babchuk@epam.com>, "Driscoll, Dan"
	<dan.driscoll@siemens.com>, "Bachtel, Andrew" <andrew.bachtel@siemens.com>,
	"fahad.arslan@siemens.com" <fahad.arslan@siemens.com>,
	"noor.ahsan@siemens.com" <noor.ahsan@siemens.com>,
	"brian.sheppard@siemens.com" <brian.sheppard@siemens.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <Bertrand.Marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>
Subject: Re: Limitations for Running Xen on KVM Arm64
Thread-Topic: Limitations for Running Xen on KVM Arm64
Thread-Index:
 AQHcSVi3paxtnyIgIkOf6jhuJCbvfrTalv6cgABtkgCAAFoJgIAABxcAgACWJ4CAABonw4ACEJkAgAKjdLSAAEALAIABEzaEgAIAPuE=
Date: Wed, 5 Nov 2025 13:39:33 +0000
Message-ID:
 <KL1PR0601MB458825063113CD4CB2F9440FE6C5A@KL1PR0601MB4588.apcprd06.prod.outlook.com>
References:
 <KL1PR0601MB4588D25A95D680640A80F2CAE6FBA@KL1PR0601MB4588.apcprd06.prod.outlook.com>
 <KL1PR0601MB45885505ECBBE9262C2B25E0E6FBA@KL1PR0601MB4588.apcprd06.prod.outlook.com>
 <FC5C66FD-8554-4F46-8546-B27DE76C8EEF@unpredictable.fr>
 <2b00a98f-6fee-4341-92bd-25909ebb6e36@xen.org>
 <CA753BD2-31FA-480D-B32A-2125F0F4981D@unpredictable.fr>
 <fc181349-d743-4ef0-bcd2-01c04d2a463e@xen.org>
 <TYZPR06MB4580126B98C6A38AA710F597E6F8A@TYZPR06MB4580.apcprd06.prod.outlook.com>
 <01527182-ccef-43a5-be55-a5450eb7919f@xen.org>
 <KL1PR0601MB45883069D3725975B49761D0E6C7A@KL1PR0601MB4588.apcprd06.prod.outlook.com>
 <0fd2b8e4-bdea-4d01-a2dd-8d2e4b37090d@xen.org>
 <KL1PR0601MB4588FE9914010324E0CFE328E6C4A@KL1PR0601MB4588.apcprd06.prod.outlook.com>
In-Reply-To:
 <KL1PR0601MB4588FE9914010324E0CFE328E6C4A@KL1PR0601MB4588.apcprd06.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_Enabled=True;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_SiteId=38ae3bcd-9579-4fd4-adda-b42e1495d55a;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_SetDate=2025-11-05T13:39:32.545Z;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_Name=C1
 -
 Restricted;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_ContentBits=1;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_Method=Standard;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=siemens.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: KL1PR0601MB4588:EE_|SEZPR06MB5919:EE_
x-ms-office365-filtering-correlation-id: 98b46ed0-855b-4ee6-bfc2-08de1c70c0ec
x-ms-exchange-atpmessageproperties: SA
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|31052699007|39142699007|1800799024|366016|38070700021|8096899003;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?N9TbLd/UCwnEsYQCir/cqT7qA3bhIYP0WQgoxJg9C2ysx7X6AAw36ZgvQl?=
 =?iso-8859-1?Q?8CDVro1R11PyycnItHYNiHC9gtgNO3C4TcvdQ3KRg3xDaaXgqnr/IqaSUj?=
 =?iso-8859-1?Q?L3RxalKPkpHJynB7aDbCNwFFKaOhwa5nK7wE0sYJLy1tVy33DHLeZfCHGm?=
 =?iso-8859-1?Q?EcfG1fCZvesvHE9gbwhgD7qWxEaewaVpuweIcs5MGqXZZRsNYs1I0zAeth?=
 =?iso-8859-1?Q?FjomiDsw5U1qznlNr98XY5waqr7G/fQ3dhUI0MEJ3iPv/fUe1FCBKoHqyv?=
 =?iso-8859-1?Q?fev73rcK1VMhG5XIEvrQkrKm0qQPiDO9TgnCA6LD4JXAbaAAWX9lLMuOFS?=
 =?iso-8859-1?Q?XLSz1tMsssn5AryCDbUeazEnlvM9FMDlZsFFfdiKOJA2A/2D6xzQVhXBYr?=
 =?iso-8859-1?Q?MwPy0WL9PEqwap+pQw18yaOaV1jduB/tX+bqlzJNd/QCBquspW+Lvbg0hO?=
 =?iso-8859-1?Q?SRIC240QyAV6+dkE/ezwzQhGAdlpGK9WAs8kbc+/2h3jPnJvoHmNhyabbI?=
 =?iso-8859-1?Q?n2QXNLcrY5V2jrOqw8TZiDR8//S4jm+TmMYmia+Oi1aVSwh2H0e4QeImzp?=
 =?iso-8859-1?Q?+JW37uPJJ5UbjciCYUIbxWk7v49sFqsC2Tg1Za+jgxUYk9lHBGtYjVC00O?=
 =?iso-8859-1?Q?1qN2l2U0+BTD0D4qArVqxAtSKmSqzprCkpb5NU4Z5fTPQW/J/q6AwlmupV?=
 =?iso-8859-1?Q?F4KIxSzq8FBPGaMaa46Jak8sekXonyBSbzcfHpOAOtVEaURkvQOHMtj70n?=
 =?iso-8859-1?Q?H1WJPFcrUB9gLlCD8Ko6yv17R8RLE1ANIjB5UOH9RCcylq70LUv9lTu4aL?=
 =?iso-8859-1?Q?DJSK1ehVNSQY/XOm3CzNZ2Dejp7Ib9dW15Fg3dprbHN7WSZHgXY/Gbscz8?=
 =?iso-8859-1?Q?tejiaU0uWPzGLQo3qovMVKBvaILWhWcacT4/zkP3SiuHgPI9YeCYNCMgMR?=
 =?iso-8859-1?Q?n8KtYoH1e/UBiy7A5wvBu7LJxaSCFLqvY0pKV+psNmstYozTTl8Pbr94gg?=
 =?iso-8859-1?Q?W6KW+C8JYTM/xNMcDnQ3qhEoqW8G5bANomLcqlplez+buzCPHDcHv7jnmW?=
 =?iso-8859-1?Q?aAl+2p++kiSU+hRpKZ6sFUIPfXvMKOgn0HVLg4yY41CyKnLLKiMZn1lISA?=
 =?iso-8859-1?Q?krAa4FOaFGTArqTTsD8KRLbZEpN5GjsL0YjsnSbGmm318SpUCFFa3m9BUI?=
 =?iso-8859-1?Q?sME3lpcBBBCRq7rpDta7GFGeIxKbfsWdQF1k9VfEoV3UXV1v3+OMIizVsh?=
 =?iso-8859-1?Q?W4f94DMNXzGA1flG858S9kwzYozU8xJtJY/jeSPA0H+RHW5/ZKVeKQgmOb?=
 =?iso-8859-1?Q?DQ3H0aVZ/+ogHQQudrmwSdoqw0ddB1HLcPYtsbLhEV6jdVEb9b8SR9FN7W?=
 =?iso-8859-1?Q?yQ3bxQjdmxw4W4j25G5jqvAuQwRKv5nKRv5Gs8LmTOSD4pWMANSX+Zwr2d?=
 =?iso-8859-1?Q?FYDUSsz9vOOe10XUOWHMlrtLEjkQrKvynk92o22W/UCVbY4n9CM5Tpuv8s?=
 =?iso-8859-1?Q?Xu5gkKmsZM2opqAv3qif0rG34VXJjqoIMOsNEYVHoZJGRLaMzart3S4UPz?=
 =?iso-8859-1?Q?qHJWsNlfqQLAWFplO7YKcH/S6qmJ?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:KL1PR0601MB4588.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(31052699007)(39142699007)(1800799024)(366016)(38070700021)(8096899003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?/mcUM8kriw3JeMqz+Z8P2gzXhtg6/va0aC74uqCfEOjOvfyXIHpxKFAL+i?=
 =?iso-8859-1?Q?dLry0JZ9n14s2fA/lB5+zOO4ZCEAzF/JhTlFBMEkUgHzZ8nQ0z21Lup/0V?=
 =?iso-8859-1?Q?s1pu8NvaoE4GzbPrzuVWOKwgH/cpQyDO0b8bMynGgpXdXjTRFINJwcYfDM?=
 =?iso-8859-1?Q?/tXxRlyUwf7duzmdDzlK4F0gaJ8U0Vy7L0WHNZujRp/IYvKsyaHZIaW89H?=
 =?iso-8859-1?Q?rKgkh4DJa0FjdDnoh00h8IuuJO0smQSMIpKD3Bnm/4CIdjqE3qwT7GwxAr?=
 =?iso-8859-1?Q?r39YF5lowXpmwcxeCcRugvpVPlNnWId3vAz7Yj9jM0BQDq45IFsLlPgD2i?=
 =?iso-8859-1?Q?WJyFNqW0EwNAvsD4s9C53BRjmJFVdAYb9Z/zX2X4BFhp5zMgMN2eKYehzk?=
 =?iso-8859-1?Q?IGBcZ9kmWGu/ShBUCXC3mkcw/HIh9VvqLxnordNwzxHfVV9OBd1P0amLSo?=
 =?iso-8859-1?Q?7tpeou93Yae7mz+9jlPigABJ0m399DfGD6JFmUGJSfqprQtuavzwDZAqBL?=
 =?iso-8859-1?Q?AA6r+mmEg21trYG8WwLorGLus2kpMVARSsI6U2t8qIws//Dd6bYCQ8Wq8G?=
 =?iso-8859-1?Q?3OlocGBzJwjF08qS2SvUqwUpibVn0bvc+qmO4vhrDnWRjhXE54vw7M0Nou?=
 =?iso-8859-1?Q?knuHXoOPx5EmIzinG0WttwF4Se3t7I5xkEKoe+37ZTeuHPC7V6MNC8r1FH?=
 =?iso-8859-1?Q?+zwruKInzz7fsGIVi1U8iS82twwfm1tUdU/vEViovspug+eh4qaC/jkgpy?=
 =?iso-8859-1?Q?k+d25r2+zsrzseqKP8peZIW3m+lHce6a3/DvJBD6+y8blwQcnRaXnqjMan?=
 =?iso-8859-1?Q?sgXHWSpXTjDP/BKziRGktbPLRdNPA2k0kbUVzCF8C1oIhCB5co6DZFq2MU?=
 =?iso-8859-1?Q?JZlVe5bJZUf+tQYQz7uc6CbcZGfKFGrWDROfuvlQnS9sm3RwREOwrhfBB3?=
 =?iso-8859-1?Q?lJfKxip74RadwmmzGeJHaFIrhauNpt4soPeec4di6qmHuMGg9b3b0HhDDE?=
 =?iso-8859-1?Q?o10qqRDY2O8LORVwhvP2YIAoRf4k+hEU2uL2Xuf/wqHCVaUVX6lmc21bs5?=
 =?iso-8859-1?Q?SZkCQTZXI/Rv3AJEh1jvK2K+JNe87ZfFzeHsKrBdpYctZdaVo2W1i8wBIv?=
 =?iso-8859-1?Q?2eazzzsF347f5Vy1VR+MbvU552NZ4htWMxDTlSI+aCDX+J7YZIIAk87/xV?=
 =?iso-8859-1?Q?0w/AyWp3PqKfal6j7Vn53xX6gCe+zSX7KaXcJ7gOLj5DSM+SreBI/YVm2P?=
 =?iso-8859-1?Q?7AjwOemT2A+lYwh4q5EDqMcC1Z+ykvVoKp3n6Ycby4R29XPfWZ+3qv17SE?=
 =?iso-8859-1?Q?tRDj10lJ8zHnsm+VQh4GfuM7uotSIfRk7p0KFpRMd7CwwVGJE4R35SMb/z?=
 =?iso-8859-1?Q?B3LHKcC07hi1uebG+YHfmnQxj4gMyTHr2QNYBPj29ZnAPpk5B1KdXvwr1q?=
 =?iso-8859-1?Q?GWBEDhj++ac5nEsjYqeDkvU11INdm6GYvRtkHoyV+lxlZsKIoraR4BHHY0?=
 =?iso-8859-1?Q?vxH+wMsb/Cv2SRQNF62FFVrQ+uQVer10jZjn9KTNUpPM+2kPoQSa9LTZYn?=
 =?iso-8859-1?Q?VWrHAUuQHBJEhJ1O83KfYGBV0oJaRVW5hn+Z/JvHEA+dC+qRjLx5jCNZVZ?=
 =?iso-8859-1?Q?b59FdR0QIz9EzOLULCumhqYx8qd9pg4SlT?=
Content-Type: multipart/alternative;
	boundary="_000_KL1PR0601MB458825063113CD4CB2F9440FE6C5AKL1PR0601MB4588_"
MIME-Version: 1.0
X-OriginatorOrg: siemens.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: KL1PR0601MB4588.apcprd06.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 98b46ed0-855b-4ee6-bfc2-08de1c70c0ec
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Nov 2025 13:39:33.1694
 (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: X+RukgQNa7y4dkP9nZni9LWWFDMICC0WlGBdbMOKX7zCxvbkmH1XOl0kpIYzgI2UepDAR0UPmdSspkcziUShyJ5Wq0ARM21Y5xn/ScIzcvU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB5919

--_000_KL1PR0601MB458825063113CD4CB2F9440FE6C5AKL1PR0601MB4588_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi,

I have sent out a patch using IPAS2E1IS. The R version RIPAS2E1IS would onl=
y be helpful if we have to invalidate more than one page at a time and this=
 is not possible unless a batch version of hypercall is implemented because=
 otherwise there is only one page removed per hypercall. Although IPAS2E1IS=
 can be used and the number of invocations is still same as VMALLS12E1IS, b=
ut the execution time is much smaller. With Ftrace I got:
handle_ipas2e1is: min-max: 17.580 - 68.260 us.

Thanks again for your great suggestions. Please review my patch, you should=
've received an email.

Regards,
Haseeb

--_000_KL1PR0601MB458825063113CD4CB2F9440FE6C5AKL1PR0601MB4588_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);">
Hi,</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif;" class=3D"elementT=
oProof"><span style=3D"font-size: 10pt; color: rgb(0, 0, 0);">I have sent o=
ut a patch using
</span><span style=3D"font-size: 11pt; color: black;">IPAS2E1IS. The R vers=
ion RIPAS2E1IS would only be helpful if we have to invalidate more than one=
 page at a time and this is not possible unless a batch version of hypercal=
l is implemented because otherwise
 there is only one page removed per hypercall. Although IPAS2E1IS can be us=
ed and the number of invocations is still same as VMALLS12E1IS, but the exe=
cution time is much smaller. With Ftrace I got:</span></div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 11pt; c=
olor: black;" class=3D"elementToProof">
handle_ipas2e1is: min-max: 17.580&nbsp;- 68.260&nbsp;us.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 11pt; c=
olor: black;" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 11pt; c=
olor: black;" class=3D"elementToProof">
Thanks again for your great suggestions. Please review my patch, you should=
've received an&nbsp;email.&nbsp;</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 11pt; c=
olor: black;" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 11pt; c=
olor: black;" class=3D"elementToProof">
Regards,</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 11pt; c=
olor: black;" class=3D"elementToProof">
Haseeb</div>
</body>
</html>

--_000_KL1PR0601MB458825063113CD4CB2F9440FE6C5AKL1PR0601MB4588_--


From xen-devel-bounces@lists.xenproject.org Wed Nov 05 15:38:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 15:38:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156269.1485485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGfaV-0004fJ-B2; Wed, 05 Nov 2025 15:38:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156269.1485485; Wed, 05 Nov 2025 15:38:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGfaV-0004fC-8G; Wed, 05 Nov 2025 15:38:19 +0000
Received: by outflank-mailman (input) for mailman id 1156269;
 Wed, 05 Nov 2025 15:38: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=LQE8=5N=citrix.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1vGfaT-0004f4-CK
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 15:38:17 +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 71b04a17-ba5d-11f0-9d16-b5c5bf9af7f9;
 Wed, 05 Nov 2025 16:38:16 +0100 (CET)
Received: from IA3PR03MB8408.namprd03.prod.outlook.com (2603:10b6:208:546::19)
 by SN7PR03MB7274.namprd03.prod.outlook.com (2603:10b6:806:2de::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.15; Wed, 5 Nov
 2025 15:38:12 +0000
Received: from IA3PR03MB8408.namprd03.prod.outlook.com
 ([fe80::8d7b:218a:6264:2c39]) by IA3PR03MB8408.namprd03.prod.outlook.com
 ([fe80::8d7b:218a:6264:2c39%5]) with mapi id 15.20.9298.007; Wed, 5 Nov 2025
 15:38: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: 71b04a17-ba5d-11f0-9d16-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kv2riC2p0IsOS2R8daFtwipQMEVBCt3P0nGK0pFMNG1yBD5l1KFlw4wfcXzAY7I3R7XGYqTrD4TEuYfFmIJ3ArgQV+BfW+mH527ARU6tNIrSj6Xy+G1evrQ45P7WfmcLG+wUUdTbTpyO+fCoYBp3VTR2giRzse2tq04lJPy4fe417DM9LAkogLnBaua1CC8f5x+x0MHqwpFfWu/l9xSYDBFCN1KvI+c8sX3JXajTC4ZhFAInxpn6CnUtVM5gyHsTY/HokjMShRQRrBbLtbNXgPsYZ/PLSqNGL1qB+obdrDV76ecrKxQBXG6n3u7qNKXTMq/aaxnl261aBspTbwIykA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xr/Jgw2Am4qysIvxH3wQiBZP+IxqXV/L6Jxm9tgoLB8=;
 b=PZUIui12N6Mb446jjY+3qqjgmUmFKAGXW31+ul9a6qD1i0iOn90/sJjCqGyYEKHp3I0AWmyg2eMmy3TqnEjB3OsYtoxtHvdfuWIC2BZ/ARb1gP2cVLM0gnteApcG8daH6uiIEm/5Xwi1164kTGehLUh7Q7PiEC0XPD4KgEJ2Yjig/HVLX6v8rEvcaBvHMPSI+H4lm9xMRtVVSzIWP57e0ZcKmxW1u9d+OK4lTFNOlaAn3CtCNkvZjUEPE7F13j1cwAKGUCUDG8NphgqzY5CCgDy6ZxlFEoLhXI96POP2xcclsXsqu0RRWq2ZvHg5Qch/xb5lR7GAXaExHMPHxX3SsA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xr/Jgw2Am4qysIvxH3wQiBZP+IxqXV/L6Jxm9tgoLB8=;
 b=TOSgWlmdu94Jn7v8vW+PyFSk8E1rk9CDI9Tqa1lFZbZ2c7mOW+f9Xz48oPilA31NZsnbV9jO8LkkZTQUzWwX1uBeMC/Ms3sdT8+4laDgBaRpmCpvCqoBwW+4MBzHzP8vHEhXe3oJOj6eMAD0iw0q7iJHlLN2wKEMstVKxCAgquM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Frediano Ziglio <frediano.ziglio@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Frediano Ziglio <freddy77@gmail.com>
Subject: [PATCH v3] xen: Strip xen.efi by default
Date: Wed,  5 Nov 2025 15:38:08 +0000
Message-ID: <20251105153808.20278-1-frediano.ziglio@citrix.com>
X-Mailer: git-send-email 2.51.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P265CA0231.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:315::17) To IA3PR03MB8408.namprd03.prod.outlook.com
 (2603:10b6:208:546::19)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA3PR03MB8408:EE_|SN7PR03MB7274:EE_
X-MS-Office365-Filtering-Correlation-Id: 0a406fc2-4703-4d65-2645-08de1c815480
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?tRCrF1w+jpiJ0uJan+EuExioFmR6tHJ1AnUaUTTVd2E6PSjz0BcqjnOyCuEJ?=
 =?us-ascii?Q?WXD3DH8bLm3hVnXFwnzc70ZYFzrnkGJ6hwxFQ145AzlkdZz0GCaIQp0aq8vz?=
 =?us-ascii?Q?8LvTd/8BXS95ED6f90cyzhzb+dk5Fp8OC/FCjRSL9CiLOkgDinGqpQlZRDLq?=
 =?us-ascii?Q?fN4lqg3J52Uw/titJZF74NQNfaqpBgAZOyGHFOekkCbLWxjkV2MYgEgK/AxN?=
 =?us-ascii?Q?fAX89eEOMU5gF4dk+o/WK43mcoFTKnr91A4Z/oAISg/k7AsT/FqoK10W+BoI?=
 =?us-ascii?Q?Bu4ZO9F4078ur2lvF1wQxj2O2+vRfkTtfR+3wlzdIlIFsYgPMx4/Ld540A5m?=
 =?us-ascii?Q?1M4SaraMadByupdo+SS3L7oa7qb/saDQwAOVm5vtOs1BcL7yvxc//BmHG0p8?=
 =?us-ascii?Q?TD8xXO4M3XZ15sm1a8Pdncn2CSI3Ud8fTDRR5thshO52fKuBUJpeGeF8sOm+?=
 =?us-ascii?Q?A8Vzj1clM4kmOFLKrsrxMy5CfIIoWn5mix8vUJRvkTJMnSFymQWiq0FAX0iy?=
 =?us-ascii?Q?FfSv6xiYDauOS9VMT7jVPtrOKuJaeO60lxdwuUkPyWIkn3D7Aj90y16vJAhp?=
 =?us-ascii?Q?BXdcsrSuNh3i8fWTTtRTwKu1LeCYARHVkZhhOrr0exOpXF94gazm1GvLQKiz?=
 =?us-ascii?Q?2YrWk78Umbxwd7QbPhfQhpHuxRdrDn6QFdIxsV5m5rXFxj84CU4nzY1O3nwF?=
 =?us-ascii?Q?/b6F4rUS+Np9+LanC9qwSXQg3cQFnvyunjZl/HPSRcflvXV0A8rHepjuxc4w?=
 =?us-ascii?Q?rgEtr992GjAShUWXboUqq6uGG93B5ivYfB3Qv/zDVi3VaKhc0rN4uX4wvSk5?=
 =?us-ascii?Q?9LnTm6rmzIOXKDHdt2qbNIXUoyU2lKosdwHyMPfozpLueXy7qSZVSDbGfDm1?=
 =?us-ascii?Q?R5obRPJTldxVvp+gderIldYZIR7nSMo8MLVtitvXesTyojcOllMtTRgBng+M?=
 =?us-ascii?Q?lzl5U3ebHlzaGnZuuyym/FxpRPbltiLaGmhNzLSRr43Gzkj6/TR/JuH35O32?=
 =?us-ascii?Q?LmsKwWGMGKDQhP3ClzwObGAfonw2VCrofUNsFtVqcTpeEVS5jTPJhVGAhNPF?=
 =?us-ascii?Q?2PkSuOmc1bgv8K5EyVjZIvNi6TLWk7P+JOvuqXfsjl7HKpcB02hWQDT2egsp?=
 =?us-ascii?Q?GQockMvDNYCsw/oauP233Mkol6x+cgDaPMLbtSyiFIX3fwwMbFDFcHPUgii6?=
 =?us-ascii?Q?yG7ECeMUYDZMrIYfO4O1XxmrLUSr7ZXwlc2N7Fjj+gKYVKdhusd+5TC0cmZH?=
 =?us-ascii?Q?Pk7YGi4V7uD8Nyhe+dWF0t5yEAwFB2awJSggmByprnUL4AaUVX9x+UW6u/Vi?=
 =?us-ascii?Q?xpILIg9USGAx7W8RCZSxZz4eb/PyBq2hTJ2LGUoE1G2ifgNsUcG+M0s+BNLx?=
 =?us-ascii?Q?VOao/Fu4Hf8CIn88xCM9bLcDwwfKoNw361+BbTDmEWgsQbn2fWzSMAYalTEc?=
 =?us-ascii?Q?PF6te2kMo7vi2ySgXEXWMCKO5NoYuPdM?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA3PR03MB8408.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?2JoFFLWpiPa7v4ndsP2ztYDZWiO9SOuNX0wjb/H+wXo8u8jxM2nTyi2NaXQu?=
 =?us-ascii?Q?N42pc4MdtP1IUx+7X3YhDNE9FDxpcbYbqKH6BY3t/U6gXPzhKLZfIERTfcfE?=
 =?us-ascii?Q?BQvKD4bBYd+Vp3pgVfjgwDiIHdrTOyXHGkyxVIZBJxKTx2s78881nM526QcW?=
 =?us-ascii?Q?pk48jxEVtCT2MtkuaTsyplhxP7zyQ2nyQIe2MmgvfU+2W5HYZ8mrYSVXg7OA?=
 =?us-ascii?Q?7TCXfqIpTqapCXSyJCWDZIZPrQvNrbittKWN9jYLU6YfIR/LHNrlzfF0QaLe?=
 =?us-ascii?Q?wk/UNgJum/tNp9w6qzbeYlmTDuoy/hOihJJ9Kt56KUWnfRflfD7LFACozVoF?=
 =?us-ascii?Q?CYLAzytyDamQn4g3jglMlzNZMqzqIfciptAapo+Zytn5KUoXDDleFfW31mGK?=
 =?us-ascii?Q?Ozu/1G4F+bT6kQ4duk1CbG6y1wudAYEZCPOuCrptYeeX+n6K8SpbksQ383uL?=
 =?us-ascii?Q?69BkHaO+7woiy93JLM44ETLeVS5MBg25gUhx/baISqTo0QPZkMS/mEMaSc/x?=
 =?us-ascii?Q?1B7rtwABFQn0rgtrLtTRPjDTm9T1wF5uDm79tkE1rBPVGmCVHIUgaa9EaeDx?=
 =?us-ascii?Q?GnpQNC/5+zFFz2Fg4Ji9FpekaL+1qPe76Y+R3+B8fU3x3XUtnSn1Xw/sF81G?=
 =?us-ascii?Q?Dtp17u81RCzhqqklvlns+5Obi5sIXdlisBvyCj1vsyrLo1mALLZktHQ/2iOA?=
 =?us-ascii?Q?YO0zOmJRo3AkT8A5Cdce55Ta52lodNCEtFxl9Bjc1+cn8n2MZtR6JkUJiutK?=
 =?us-ascii?Q?pHoiYFTgMCi91AlvbNTXkzwiKMNnLo7e/KIdFPfREnjHhMOP9WPgA4z8yXZC?=
 =?us-ascii?Q?v5UT5Rx6VBOxxMEeZVkLaT+zjksnYSY3hmTzEYVhfxqmKLSVuwDLqKYX8uni?=
 =?us-ascii?Q?oo6G9vRgNKy3gQZQfOEv2bouqyZps9RQsTVpYJMbC50xGPMXfK1FQrQil8F3?=
 =?us-ascii?Q?MpZxHjxhPHjYf02qO/9EImjN4gLOLT1gnwZFYMeYBvUz3k/kKXibvYDQf0BJ?=
 =?us-ascii?Q?tAxyIRWglqEp9UYteQ9zTjWnkedWcp7GrYVZTfkZf9a2RI1GhatTbbnCchZS?=
 =?us-ascii?Q?upO/52ehqpg9UqTs0UkvvtirDtQWkZhF6A8GqcCl6Pq0+DGmkuYfnrLbGqLT?=
 =?us-ascii?Q?pAhGfDzn8TFm2whTG1DIb0LVoZfkybThQGWmAUCe3JA0pBZ0JXK6KKgXlJfP?=
 =?us-ascii?Q?raFHzp4d1hlKzHbBy2ZRdvfMs13xejIzeIEEU8G1/zmIMex9R8loZaT4nS0D?=
 =?us-ascii?Q?chTC9uLwFyjECdYhpa07ZBejGtNOnrbOp1jebXazOqUJxAQGMaUWduCvz7YG?=
 =?us-ascii?Q?X2EwNzpXp2VBzpPbomjEldNWg97VWwrL9xP5Al0om1CQZGFt9Qhe0cWXH8Cl?=
 =?us-ascii?Q?yayTb6P2Mea6RABkXPf1vm1h1yyd2tn3s7VQOqoGFIp7CENDzMlssqoE4C0A?=
 =?us-ascii?Q?TMRKxmnK3kHTiPmLi4cAPXclS0kNEkwJYlT11FAiuzMrLraZV537s1T1RCav?=
 =?us-ascii?Q?jkuI7A7HNCDCGmQniVEtYHdqxgXEGe/cg4BkxuvueqA4j8pTpOMzINP05AO7?=
 =?us-ascii?Q?TIII+aTR4kTYBCq9pMz2CcLz/9ChuFqeM3eNv+BGpoeGYD2ZvAUaVLXuh2W+?=
 =?us-ascii?Q?aQ=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0a406fc2-4703-4d65-2645-08de1c815480
X-MS-Exchange-CrossTenant-AuthSource: IA3PR03MB8408.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2025 15:38:12.7653
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: PrwV/v4ZrMnmf8FtY0AFOXz2flyfXfFbIJZIj7SIGFr62/TNZt3tgLnqEdAsCdNUNshbvynW+RCNtceAqckK1pXSvIy8VCojyRZDh+ptzpU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR03MB7274

From: Frediano Ziglio <frediano.ziglio@cloud.com>

For xen.gz file we strip all symbols and have an additional
xen-syms file version with all symbols.
Make xen.efi more coherent stripping all symbols too.
xen-syms.efi can be used for debugging.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
Changes since v1:
- avoid leaving target if some command fails.

Changes since v2:
- do not convert type but retain PE format;
= use xen-syms.efi for new file name, more consistent with ELF.
---
 docs/misc/efi.pandoc  |  8 +-------
 xen/Kconfig.debug     |  9 ++-------
 xen/Makefile          | 19 -------------------
 xen/arch/x86/Makefile |  9 ++++++---
 4 files changed, 9 insertions(+), 36 deletions(-)

diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
index 11c1ac3346..c66b18a66b 100644
--- a/docs/misc/efi.pandoc
+++ b/docs/misc/efi.pandoc
@@ -20,13 +20,7 @@ Xen to load the configuration file even if multiboot modules are found.
 Once built, `make install-xen` will place the resulting binary directly into
 the EFI boot partition, provided `EFI_VENDOR` is set in the environment (and
 `EFI_MOUNTPOINT` is overridden as needed, should the default of `/boot/efi` not
-match your system). When built with debug info, the binary can be quite large.
-Setting `INSTALL_EFI_STRIP=1` in the environment will cause it to be stripped
-of debug info in the process of installing. `INSTALL_EFI_STRIP` can also be set
-to any combination of options suitable to pass to `strip`, in case the default
-ones don't do. The xen.efi binary will also be installed in `/usr/lib64/efi/`,
-unless `EFI_DIR` is set in the environment to override this default. This
-binary will not be stripped in the process.
+match your system).
 
 The binary itself will require a configuration file (names with the `.efi`
 extension of the binary's name replaced by `.cfg`, and - until an existing
diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index d900d926c5..58ee10ee3e 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -147,12 +147,7 @@ config DEBUG_INFO
 	  Say Y here if you want to build Xen with debug information. This
 	  information is needed e.g. for doing crash dump analysis of the
 	  hypervisor via the "crash" tool.
-	  Saying Y will increase the size of the xen-syms and xen.efi
-	  binaries. In case the space on the EFI boot partition is rather
-	  limited, you may want to install a stripped variant of xen.efi in
-	  the EFI boot partition (look for "INSTALL_EFI_STRIP" in
-	  docs/misc/efi.pandoc for more information - when not using
-	  "make install-xen" for installing xen.efi, stripping needs to be
-	  done outside the Xen build environment).
+	  Saying Y will increase the size of the xen-syms and xen.efi.elf
+	  binaries.
 
 endmenu
diff --git a/xen/Makefile b/xen/Makefile
index ddcee8835c..605a26c181 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -493,22 +493,6 @@ endif
 .PHONY: _build
 _build: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 
-# Strip
-#
-# INSTALL_EFI_STRIP, if defined, will cause xen.efi to be stripped before it
-# is installed. If INSTALL_EFI_STRIP is '1', then the default option(s) below
-# will be used. Otherwise, INSTALL_EFI_STRIP value will be used as the
-# option(s) to the strip command.
-ifdef INSTALL_EFI_STRIP
-
-ifeq ($(INSTALL_EFI_STRIP),1)
-efi-strip-opt := --strip-debug --keep-file-symbols
-else
-efi-strip-opt := $(INSTALL_EFI_STRIP)
-endif
-
-endif
-
 .PHONY: _install
 _install: D=$(DESTDIR)
 _install: T=$(notdir $(TARGET))
@@ -535,9 +519,6 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi; \
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T).efi; \
 		if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; then \
-			$(if $(efi-strip-opt), \
-			     $(STRIP) $(efi-strip-opt) -p -o $(TARGET).efi.stripped $(TARGET).efi && \
-			     $(INSTALL_DATA) $(TARGET).efi.stripped $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi ||) \
 			$(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \
 		elif [ "$(D)" = "$(patsubst $(shell cd $(XEN_ROOT) && pwd)/%,%,$(D))" ]; then \
 			echo 'EFI installation only partially done (EFI_VENDOR not set)' >&2; \
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 407571c510..c118ab7b7d 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -228,14 +228,17 @@ endif
 	$(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
 	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
 	      $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
-	      $(note_file_option) -o $@
-	$(NM) -pa --format=sysv $@ \
+	      $(note_file_option) -o $@.tmp
+	$(NM) -pa --format=sysv $@.tmp \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map
 ifeq ($(CONFIG_DEBUG_INFO),y)
-	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
+	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))cp -f \
+        $@.tmp $(TARGET)-syms.efi
+	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(STRIP) $@.tmp
 endif
 	rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
+	mv -f $@.tmp $@
 ifeq ($(CONFIG_XEN_IBT),y)
 	$(SHELL) $(srctree)/tools/check-endbr.sh $@
 endif
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 05 16:13:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 16:13:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156282.1485496 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGg8P-0002VV-SQ; Wed, 05 Nov 2025 16:13:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156282.1485496; Wed, 05 Nov 2025 16:13: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 1vGg8P-0002VO-Po; Wed, 05 Nov 2025 16:13:21 +0000
Received: by outflank-mailman (input) for mailman id 1156282;
 Wed, 05 Nov 2025 16:13:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=m6Tr=5N=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1vGg8N-0002VI-OL
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 16:13:19 +0000
Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com
 [148.163.158.5]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 55ca2364-ba62-11f0-980a-7dc792cee155;
 Wed, 05 Nov 2025 17:13:16 +0100 (CET)
Received: from pps.filterd (m0356516.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5A54HYRj019236;
 Wed, 5 Nov 2025 16:12:28 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4a57mra2tj-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 05 Nov 2025 16:12:27 +0000 (GMT)
Received: from m0356516.ppops.net (m0356516.ppops.net [127.0.0.1])
 by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5A5FVr3J003755;
 Wed, 5 Nov 2025 16:12:27 GMT
Received: from ppma23.wdc07v.mail.ibm.com
 (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4a57mra2tb-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 05 Nov 2025 16:12:27 +0000 (GMT)
Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1])
 by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5A5Fg5qS009863;
 Wed, 5 Nov 2025 16:12:26 GMT
Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226])
 by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4a5x1kgw7a-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 05 Nov 2025 16:12:26 +0000
Received: from smtpav01.fra02v.mail.ibm.com (smtpav01.fra02v.mail.ibm.com
 [10.20.54.100])
 by smtprelay02.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 5A5GCOji52167096
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Wed, 5 Nov 2025 16:12:24 GMT
Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 3071320043;
 Wed,  5 Nov 2025 16:12:24 +0000 (GMT)
Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 136CC20040;
 Wed,  5 Nov 2025 16:12:23 +0000 (GMT)
Received: from li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com (unknown
 [9.155.204.135])
 by smtpav01.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Wed,  5 Nov 2025 16:12:23 +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: 55ca2364-ba62-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=pp1; bh=hoOO0E96ahCdATo2vQq4UFuH8BQoyW
	GvRJ67v+d6zmY=; b=SGkprtBRmnhHNGgfbF3sg7Go+c8inCeDqeC9AZjQfWNjqP
	UlImdvXnB2eMzCk0pwDJKkF+IyFhEL/jEE8u1kZi8IReERwiQ1FVxGw+w2LhH+sy
	2G0xn4JOOstfTzc1c06KaQNGCHeOXa9vK9rwN0ha3pMsSVpC2jcrtdLnZUA5XPvR
	m+dXvo/F5oe8kUj+LdeKJtJbBvr0BqSaBvx8WxcuOGrxYtiM/WL6KzUAgfQRUPkh
	RrK27EIk9Nv7KGFJk1CZtMDciaSlLsrEXmshoHrTVS3KKkC1OsBwg3P57glcc1m8
	Yx7AzbSh81g2JkUW5G52BRvU1+355886S8zrCK3Q==
Date: Wed, 5 Nov 2025 17:12:21 +0100
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Ritesh Harjani <ritesh.list@gmail.com>
Cc: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org,
        linux-kernel@vger.kernel.org, Andreas Larsson <andreas@gaisler.com>,
        Andrew Morton <akpm@linux-foundation.org>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Borislav Petkov <bp@alien8.de>,
        Catalin Marinas <catalin.marinas@arm.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        David Hildenbrand <david@redhat.com>,
        "David S. Miller" <davem@davemloft.net>,
        David Woodhouse <dwmw2@infradead.org>,
        "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
        Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
        "Liam R. Howlett" <Liam.Howlett@oracle.com>,
        Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
        Madhavan Srinivasan <maddy@linux.ibm.com>,
        Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
        Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
        Peter Zijlstra <peterz@infradead.org>,
        Ryan Roberts <ryan.roberts@arm.com>,
        Suren Baghdasaryan <surenb@google.com>,
        Thomas Gleixner <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
        Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
        linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        x86@kernel.org
Subject: Re: [PATCH v4 07/12] mm: enable lazy_mmu sections to nest
Message-ID: <50d1b63a-88d7-4484-82c0-3bde96e3207d-agordeev@linux.ibm.com>
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-8-kevin.brodsky@arm.com>
 <87ms5050g0.ritesh.list@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <87ms5050g0.ritesh.list@gmail.com>
X-TM-AS-GCONF: 00
X-Proofpoint-GUID: 0NFs_GrYa4zcH0BLNom4mOsajrCSPUxj
X-Authority-Analysis: v=2.4 cv=MKhtWcZl c=1 sm=1 tr=0 ts=690b776c cx=c_pps
 a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17
 a=kj9zAlcOel0A:10 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=CPQ9TFRCZcvXz5jfQC4A:9 a=CjuIK1q_8ugA:10 a=DXsff8QfwkrTrK3sU8N1:22
 a=Z5ABNNGmrOfJ6cZ5bIyy:22 a=bWyr8ysk75zN3GCy5bjg:22
X-Proofpoint-ORIG-GUID: NNqKmXG2tTtHuvXhjQOh-riRMNlVPLAT
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTAxMDAwMSBTYWx0ZWRfX2KnrArcnBxcH
 TeGoejtsfYJDuRV3FbvjuDEBFMmDeOQEbaaSQExJ7765sDaLesq0lIorOycsEibo64TNmmHRSNz
 6XIuQLSaO5SrKkE/QNnJd3smjWHr0HSQ+uA+bMkugv+Df6gPVeHmGXHRAMUP3/n0rbDuuZ3m9UR
 Vw/WmiOn8NrnsxKTvVsuwmGs5I8kM0QBGFJCMl0xuCoTJbnjBxb2U37aEnIf2iT73qQhw1Rsaku
 Qftv0wlHgsh4K3kTYYn5/INUGE4LK5ev6oQVqwHTw5VhjuNirNmgcqWMIXq1s/3gqUc/RmuAgWN
 rH1ZA/5Add3j27sIoKtigY6uE1hzOktXQSO9iyvuDIkbiOtgLSq15NhyhwbIusKnV/r5/eZHbpi
 xbMKu5ZjKQ3ntqUuRquH+Yb1K/SdzA==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-11-05_06,2025-11-03_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 priorityscore=1501 suspectscore=0 bulkscore=0 impostorscore=0 clxscore=1015
 lowpriorityscore=0 malwarescore=0 adultscore=0 phishscore=0 spamscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511010001

On Wed, Nov 05, 2025 at 02:19:03PM +0530, Ritesh Harjani wrote:
> > + * in_lazy_mmu_mode() can be used to check whether the lazy MMU mode is
> > + * currently enabled.
> >   */
> >  #ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
> >  static inline void lazy_mmu_mode_enable(void)
> >  {
> > -	arch_enter_lazy_mmu_mode();
> > +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
> > +
> > +	VM_WARN_ON_ONCE(state->nesting_level == U8_MAX);
> > +	/* enable() must not be called while paused */
> > +	VM_WARN_ON(state->nesting_level > 0 && !state->active);
> > +
> > +	if (state->nesting_level++ == 0) {
> > +		state->active = true;
> > +		arch_enter_lazy_mmu_mode();
> > +	}
> >  }
> 
> Some architectures disables preemption in their
> arch_enter_lazy_mmu_mode(). So shouldn't the state->active = true should
> happen after arch_enter_lazy_mmu_mode() has disabled preemption()? i.e.

Do you have some scenario in mind that could cause an issue?
IOW, what could go wrong if the process is scheduled to another
CPU before preempt_disable() is called?

>   static inline void lazy_mmu_mode_enable(void)
>   {
>  -	arch_enter_lazy_mmu_mode();
>  +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>  +
>  +	VM_WARN_ON_ONCE(state->nesting_level == U8_MAX);
>  +	/* enable() must not be called while paused */
>  +	VM_WARN_ON(state->nesting_level > 0 && !state->active);
>  +
>  +	if (state->nesting_level++ == 0) {
>  +		arch_enter_lazy_mmu_mode();
>  +		state->active = true;
>  +	}
>   }
> 
> ... I think it make more sense to enable the state after the arch_**
> call right.

But then in_lazy_mmu_mode() would return false if called from
arch_enter_lazy_mmu_mode(). Not big problem, but still..

> >  static inline void lazy_mmu_mode_disable(void)
> >  {
> > -	arch_leave_lazy_mmu_mode();
> > +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
> > +
> > +	VM_WARN_ON_ONCE(state->nesting_level == 0);
> > +	VM_WARN_ON(!state->active);
> > +
> > +	if (--state->nesting_level == 0) {
> > +		state->active = false;
> > +		arch_leave_lazy_mmu_mode();
> > +	} else {
> > +		/* Exiting a nested section */
> > +		arch_flush_lazy_mmu_mode();
> > +	}
> >  }
> 
> This looks ok though.
> 
> >  
> >  static inline void lazy_mmu_mode_pause(void)
> >  {
> > +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
> > +
> > +	VM_WARN_ON(state->nesting_level == 0 || !state->active);
> > +
> > +	state->active = false;
> >  	arch_leave_lazy_mmu_mode();
> >  }
> >  
> >  static inline void lazy_mmu_mode_resume(void)
> >  {
> > +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
> > +
> > +	VM_WARN_ON(state->nesting_level == 0 || state->active);
> > +
> > +	state->active = true;
> >  	arch_enter_lazy_mmu_mode();
> >  }
> 
> Ditto.
> 
> -ritesh


From xen-devel-bounces@lists.xenproject.org Wed Nov 05 17:44:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 17:44:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156306.1485506 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGhYU-0005eJ-Bj; Wed, 05 Nov 2025 17:44:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156306.1485506; Wed, 05 Nov 2025 17:44: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 1vGhYU-0005eC-8n; Wed, 05 Nov 2025 17:44:22 +0000
Received: by outflank-mailman (input) for mailman id 1156306;
 Wed, 05 Nov 2025 17:44:21 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vGhYT-0005e6-IP
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 17:44:21 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vGhYS-002Tqx-2W;
 Wed, 05 Nov 2025 17:44:20 +0000
Received: from [15.248.2.25] (helo=[10.24.67.185])
 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 1vGhYS-00EcvA-2R;
 Wed, 05 Nov 2025 17: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>
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=9bANQMMiY9n3ayB50Cdxawp9PhXoZHdIk4X0ToNi7IY=; b=dAk1s4lJupj6wluCbsC2QpPgxe
	xG1ISeJ/+pF7gk/FUeiHDPwO+dSeY+SsVXgYR4agknch6te56F41Af53b2vBoHtOKCiN7g0++TQsA
	zGFkzy8lfT47Y5CIQfd2HEHuLNjvXVf0eFFo0fEmkDzEKJalSNOD2fkZjG934SSLQ4Rg=;
Message-ID: <1a4490d7-5fb5-44a0-bd77-c8e0548a2553@xen.org>
Date: Wed, 5 Nov 2025 17:44:18 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Limitations for Running Xen on KVM Arm64
To: "haseeb.ashraf@siemens.com" <haseeb.ashraf@siemens.com>,
 Mohamed Mediouni <mohamed@unpredictable.fr>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Volodymyr_Babchuk@epam.com" <Volodymyr_Babchuk@epam.com>,
 "Driscoll, Dan" <dan.driscoll@siemens.com>,
 "Bachtel, Andrew" <andrew.bachtel@siemens.com>,
 "fahad.arslan@siemens.com" <fahad.arslan@siemens.com>,
 "noor.ahsan@siemens.com" <noor.ahsan@siemens.com>,
 "brian.sheppard@siemens.com" <brian.sheppard@siemens.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <KL1PR0601MB4588D25A95D680640A80F2CAE6FBA@KL1PR0601MB4588.apcprd06.prod.outlook.com>
 <KL1PR0601MB45885505ECBBE9262C2B25E0E6FBA@KL1PR0601MB4588.apcprd06.prod.outlook.com>
 <FC5C66FD-8554-4F46-8546-B27DE76C8EEF@unpredictable.fr>
 <2b00a98f-6fee-4341-92bd-25909ebb6e36@xen.org>
 <CA753BD2-31FA-480D-B32A-2125F0F4981D@unpredictable.fr>
 <fc181349-d743-4ef0-bcd2-01c04d2a463e@xen.org>
 <TYZPR06MB4580126B98C6A38AA710F597E6F8A@TYZPR06MB4580.apcprd06.prod.outlook.com>
 <01527182-ccef-43a5-be55-a5450eb7919f@xen.org>
 <KL1PR0601MB45883069D3725975B49761D0E6C7A@KL1PR0601MB4588.apcprd06.prod.outlook.com>
 <0fd2b8e4-bdea-4d01-a2dd-8d2e4b37090d@xen.org>
 <KL1PR0601MB4588FE9914010324E0CFE328E6C4A@KL1PR0601MB4588.apcprd06.prod.outlook.com>
 <KL1PR0601MB458825063113CD4CB2F9440FE6C5A@KL1PR0601MB4588.apcprd06.prod.outlook.com>
Content-Language: en-US
From: Julien Grall <julien@xen.org>
In-Reply-To: <KL1PR0601MB458825063113CD4CB2F9440FE6C5A@KL1PR0601MB4588.apcprd06.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 05/11/2025 13:39, haseeb.ashraf@siemens.com wrote:
> Hi,

Hi Haseeb,

> I have sent out a patch using IPAS2E1IS. The R version RIPAS2E1IS would only be helpful if we have to invalidate more than one page at a time and this is not possible unless a batch version of hypercall is implemented because otherwise there is only one page removed per hypercall.

I have only briefly look at your patch. You have the following loop:

     /* Invalidate stage-2 TLB entries by IPA range */
     for ( i = 0; i < page_count; i++ ) {
         flush_guest_tlb_one_s2(ipa);
         ipa += 1UL << PAGE_SHIFT;
     }

With RIPAS2E1IS, you would be able to replace this loop with a single 
instruction. This may not have any value in your setup because you are 
unmaping 4KB at the time. But there are other hypercalls (such as 
XENMEM_decrease_reservation) where you can remove larger mapping.

So I think there are some values to use the range version. Although, I 
would be fine if this is not handled in your current patch.

> Thanks again for your great suggestions. Please review my patch, you should've received an email.

I will add it in my list of reviews.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Nov 05 20:32:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 20:32:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156380.1485531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGkAh-0000yc-HN; Wed, 05 Nov 2025 20:31:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156380.1485531; Wed, 05 Nov 2025 20: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 1vGkAh-0000yV-EZ; Wed, 05 Nov 2025 20:31:59 +0000
Received: by outflank-mailman (input) for mailman id 1156380;
 Wed, 05 Nov 2025 20: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=N/Bd=5N=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1vGkAf-0000yP-QH
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 20:31:57 +0000
Received: from mail-yx1-xb130.google.com (mail-yx1-xb130.google.com
 [2607:f8b0:4864:20::b130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 73b6e430-ba86-11f0-9d16-b5c5bf9af7f9;
 Wed, 05 Nov 2025 21:31:48 +0100 (CET)
Received: by mail-yx1-xb130.google.com with SMTP id
 956f58d0204a3-63f95dc176fso292526d50.1
 for <xen-devel@lists.xenproject.org>; Wed, 05 Nov 2025 12:31:48 -0800 (PST)
Received: from [10.138.34.110]
 (h96-60-249-169.cncrtn.broadband.dynamic.tds.net. [96.60.249.169])
 by smtp.gmail.com with ESMTPSA id
 00721157ae682-787b13df6d5sm1917727b3.14.2025.11.05.12.31.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 05 Nov 2025 12:31: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: 73b6e430-ba86-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762374707; x=1762979507; 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=n4tr9DoLumWG5/dMzw0gRv3GzahH9Yl6o6b5lFLR/nw=;
        b=WVHI3sV4v75o9b1VzcS/78mq2a7Q0W27Qd1OJb4M55ZQZpgzoAu1i02sBN+46NqV9+
         8aJsa9Hw4J6FBuZFAQo2RgASqN61rU1L4SZ911nYM0G5DDY5UWzGOEq9TvBE3co5YDbi
         fmuGGLLcsKb3Tk4O6Bhtbe0SEBMY2djw7I00oy6oMstNxKcuErHoIz2sOlQbViXwGtYJ
         SVWE0RTqIGDcQHjlh97QrYtDN8t8cmh7mwFKjoSmgeqEaP2HAzmjEwccd5Iec7WnYt7L
         OHgsakf2omL/1GvZY1uQuuvSR6EnWD36yHSNQKtcKIgrRsjjSLEE/PUHcoUk/UJfwXxX
         tQfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762374707; x=1762979507;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=n4tr9DoLumWG5/dMzw0gRv3GzahH9Yl6o6b5lFLR/nw=;
        b=PFYDvzN9mltqiDP02Ov0JJEQALRnndM9jaD/PP4cJ0tvZ6DSMri6qGebsfyREpnqcv
         1Pr8pSNOPGDYZbhsqySkz5+Bw1hfthstG11qSJiw/mwunb6UBYct2DNBBrWx+A9L+nWx
         M0qmxH3kt1qXJWOPE3iA8WVvyjKkbFz0b1w9x4AtrCO+p2wv9kjnkpXpppZoQsy9lloX
         zGYFf6NgiYjQQKMCrz5GO3Y5vD1mnTl1Z12vAl0ubMIgTZgjm+Pzsp+d4FMROWDRySr8
         dc21fx0OohqTDhdTEGtNdXWKa+aHb6KSnfZennY3Nm0dZ9KzqUJlKtFZV/qWS9ouiluw
         wkYQ==
X-Forwarded-Encrypted: i=1; AJvYcCVQoIjKcIlRHu4DkNKtenqyZmfXcm6qQ9h8ePngJuGbNo4ONx5bXQ3PZb7F5BZAkOxsxys6PBZZDEU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyiFQlEarQtHsOIKrLYlsTfjRmx4A1wWJXuqMbSNtSYnNiSG6qW
	tMSwVf1NbW876DrcmZ9fng/7qJXYnGTGuHLSfgTA+q7QvgZv4+EJQdre
X-Gm-Gg: ASbGncvvwz+3cL8/EWa/sXgxD20aQhRZtxTYmAkDYJeiYujob2WLH15Rcd0QlM/vAlR
	amBSEaAj3sRPY7I7PXf6Ul08gi8jtt8RqupuRXccIRDsMM8BYYUU82RSnggSwBqB4ORWC8BepQs
	NIlvbVGlO2o5tpZ9EtR+QGW5ZqEoUaFgbx2ovZlGrT2Dqwl6Pl0wWo7gsMAAhUA6OA21Hf8aYS0
	E6726thoGNCs0ooQcFoXZGASFbTURjpMIMNEWcbj7hdf5o8zj1peamNhXSG3sVGf5BzNJvZfVSM
	84mq0ClX0oQK9w26VS901YUTg7kz+jqXpoD1Wy7Q70+ElJ7fvZojRCwbEWtHHMZXvcxmVHcCIrC
	l1EhGM0k55scuNEY+GIitbIAKczT5/10ORRpkMAqBKej5Dv0vZ8O9mNeSZQKCEZsLnG+klnEOkH
	W3xR82bxFYe5p6hCLgkHBQr76f4qOp3tiO/EZ8Qbnih3+cx+wom+zUEDTSc1fqgqU5/F1I4XfYC
	EyAiZTnneSH6nZg
X-Google-Smtp-Source: AGHT+IGT6+6O3FI5MPTdbIaH839JubL4Qa5bc5hIASu7L+QaYTXF89rUfdIIFTEuc29+s8oivguFJw==
X-Received: by 2002:a05:690e:4182:b0:63f:bab4:fdcd with SMTP id 956f58d0204a3-63fd35a1ee0mr3178471d50.48.1762374706979;
        Wed, 05 Nov 2025 12:31:46 -0800 (PST)
Message-ID: <fdc9fd41-2224-4672-911e-3e17b428d32a@gmail.com>
Date: Wed, 5 Nov 2025 15:31:21 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen: Strip xen.efi by default
To: Frediano Ziglio <frediano.ziglio@citrix.com>,
 xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Frediano Ziglio <freddy77@gmail.com>
References: <20251105153808.20278-1-frediano.ziglio@citrix.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: <20251105153808.20278-1-frediano.ziglio@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------wR3uNGtKIpM00cl4EqK70PkG"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------wR3uNGtKIpM00cl4EqK70PkG
Content-Type: multipart/mixed; boundary="------------Laf3qgGfcASVhjDuzhGmlgxS";
 protected-headers="v1"
From: Demi Marie Obenour <demiobenour@gmail.com>
To: Frediano Ziglio <frediano.ziglio@citrix.com>,
 xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Frediano Ziglio <freddy77@gmail.com>
Message-ID: <fdc9fd41-2224-4672-911e-3e17b428d32a@gmail.com>
Subject: Re: [PATCH v3] xen: Strip xen.efi by default
References: <20251105153808.20278-1-frediano.ziglio@citrix.com>
In-Reply-To: <20251105153808.20278-1-frediano.ziglio@citrix.com>

--------------Laf3qgGfcASVhjDuzhGmlgxS
Content-Type: multipart/mixed; boundary="------------vcM0SfoOk10EZuEbrGl6yv6X"

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

On 11/5/25 10:38, Frediano Ziglio wrote:
> From: Frediano Ziglio <frediano.ziglio@cloud.com>
>=20
> For xen.gz file we strip all symbols and have an additional
> xen-syms file version with all symbols.
> Make xen.efi more coherent stripping all symbols too.
> xen-syms.efi can be used for debugging.
>=20
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> ---
> Changes since v1:
> - avoid leaving target if some command fails.
>=20
> Changes since v2:
> - do not convert type but retain PE format;
> =3D use xen-syms.efi for new file name, more consistent with ELF.
> ---
>  docs/misc/efi.pandoc  |  8 +-------
>  xen/Kconfig.debug     |  9 ++-------
>  xen/Makefile          | 19 -------------------
>  xen/arch/x86/Makefile |  9 ++++++---
>  4 files changed, 9 insertions(+), 36 deletions(-)
>=20
> diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
> index 11c1ac3346..c66b18a66b 100644
> --- a/docs/misc/efi.pandoc
> +++ b/docs/misc/efi.pandoc
> @@ -20,13 +20,7 @@ Xen to load the configuration file even if multiboot=
 modules are found.
>  Once built, `make install-xen` will place the resulting binary directl=
y into
>  the EFI boot partition, provided `EFI_VENDOR` is set in the environmen=
t (and
>  `EFI_MOUNTPOINT` is overridden as needed, should the default of `/boot=
/efi` not
> -match your system). When built with debug info, the binary can be quit=
e large.
> -Setting `INSTALL_EFI_STRIP=3D1` in the environment will cause it to be=
 stripped
> -of debug info in the process of installing. `INSTALL_EFI_STRIP` can al=
so be set
> -to any combination of options suitable to pass to `strip`, in case the=
 default
> -ones don't do. The xen.efi binary will also be installed in `/usr/lib6=
4/efi/`,
> -unless `EFI_DIR` is set in the environment to override this default. T=
his
> -binary will not be stripped in the process.
> +match your system).
> =20
>  The binary itself will require a configuration file (names with the `.=
efi`
>  extension of the binary's name replaced by `.cfg`, and - until an exis=
ting
> diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
> index d900d926c5..58ee10ee3e 100644
> --- a/xen/Kconfig.debug
> +++ b/xen/Kconfig.debug
> @@ -147,12 +147,7 @@ config DEBUG_INFO
>  	  Say Y here if you want to build Xen with debug information. This
>  	  information is needed e.g. for doing crash dump analysis of the
>  	  hypervisor via the "crash" tool.
> -	  Saying Y will increase the size of the xen-syms and xen.efi
> -	  binaries. In case the space on the EFI boot partition is rather
> -	  limited, you may want to install a stripped variant of xen.efi in
> -	  the EFI boot partition (look for "INSTALL_EFI_STRIP" in
> -	  docs/misc/efi.pandoc for more information - when not using
> -	  "make install-xen" for installing xen.efi, stripping needs to be
> -	  done outside the Xen build environment).
> +	  Saying Y will increase the size of the xen-syms and xen.efi.elf
> +	  binaries.
> =20
>  endmenu
> diff --git a/xen/Makefile b/xen/Makefile
> index ddcee8835c..605a26c181 100644
> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -493,22 +493,6 @@ endif
>  .PHONY: _build
>  _build: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
> =20
> -# Strip
> -#
> -# INSTALL_EFI_STRIP, if defined, will cause xen.efi to be stripped bef=
ore it
> -# is installed. If INSTALL_EFI_STRIP is '1', then the default option(s=
) below
> -# will be used. Otherwise, INSTALL_EFI_STRIP value will be used as the=

> -# option(s) to the strip command.
> -ifdef INSTALL_EFI_STRIP
> -
> -ifeq ($(INSTALL_EFI_STRIP),1)
> -efi-strip-opt :=3D --strip-debug --keep-file-symbols
> -else
> -efi-strip-opt :=3D $(INSTALL_EFI_STRIP)
> -endif
> -
> -endif
> -
>  .PHONY: _install
>  _install: D=3D$(DESTDIR)
>  _install: T=3D$(notdir $(TARGET))
> @@ -535,9 +519,6 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
>  		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION=
).efi; \
>  		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T).efi; \
>  		if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; then \
> -			$(if $(efi-strip-opt), \
> -			     $(STRIP) $(efi-strip-opt) -p -o $(TARGET).efi.stripped $(TARGE=
T).efi && \
> -			     $(INSTALL_DATA) $(TARGET).efi.stripped $(D)$(EFI_MOUNTPOINT)/e=
fi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi ||) \
>  			$(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDO=
R)/$(T)-$(XEN_FULLVERSION).efi; \
>  		elif [ "$(D)" =3D "$(patsubst $(shell cd $(XEN_ROOT) && pwd)/%,%,$(D=
))" ]; then \
>  			echo 'EFI installation only partially done (EFI_VENDOR not set)' >&=
2; \
> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index 407571c510..c118ab7b7d 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -228,14 +228,17 @@ endif
>  	$(MAKE) $(build)=3D$(@D) .$(@F).1r.o .$(@F).1s.o
>  	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
>  	      $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
> -	      $(note_file_option) -o $@
> -	$(NM) -pa --format=3Dsysv $@ \
> +	      $(note_file_option) -o $@.tmp
> +	$(NM) -pa --format=3Dsysv $@.tmp \
>  		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
>  		> $@.map
>  ifeq ($(CONFIG_DEBUG_INFO),y)
> -	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O e=
lf64-x86-64 $@ $@.elf
> +	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))cp -f \
> +        $@.tmp $(TARGET)-syms.efi
> +	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(STRIP) $@.tmp=

>  endif
>  	rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
> +	mv -f $@.tmp $@
>  ifeq ($(CONFIG_XEN_IBT),y)
>  	$(SHELL) $(srctree)/tools/check-endbr.sh $@
>  endif

Does this also strip the string table from xen.efi?  I'm concerned that
signing xen.efi for secure boot won't work if there is a string table.
In particular, it appears that EDK2 will miscalculate the file hash if
the string table is before the signature.  Moving the string table after
the signature invalidates the pointer to it.  The only exception is if
the string table is itself in a section, but I don't know if that is the
case.
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------vcM0SfoOk10EZuEbrGl6yv6X
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-----

--------------vcM0SfoOk10EZuEbrGl6yv6X--

--------------Laf3qgGfcASVhjDuzhGmlgxS--

--------------wR3uNGtKIpM00cl4EqK70PkG
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/sszaHOrMp8lMFAmkLtCIACgkQszaHOrMp
8lMagQ//YgNME5sj0oGNKhAzzrNVN+GTxNwRphY9N6uQBPoY6MISZ/Hd0BlbJIRb
X1k9mXJWuXBajKRLz6h6JFrvlQxjr/WB5CBcG1IkCcOJKFYw8EKUZnMVcNiYicQd
XzNL7YR5ybIti+dRuWR0EfSKEgFIsZBLCbUoV4xGUHJzjivIqGGjN6IqkG/nMmRp
gfJXSH2ENIyFKapOajHxJV0dXLW4kGVwguk1cwVK6nDMJfaq0vH6t8ZcXFABgSqa
vZnRCWgyegfTKjzwgqpjQ6jrBbLIcQdsObMVg4L2KChnNjqVwKul1L7uYUbLJaE6
Rq1VINgYQFCis+lhJ1O0k9YUoX4FCYA85HG0aU5G4VGp+te0nbUbZICqRBuJedIG
l+RK2uX8hh1Siz07n+9O5kXzSoIBl3koksjBli9dkW2IuxrTEOlT7XhvINmytdlh
pM9xFWy64ITRIr1ZmBBKkph1J2IXaI7s405iLUwxlyyazSlMGVmCtypOz6cWAYDq
QLWsa3yMkETWaX2IX4U1HlTSFrJYXS4ztIMMTVcqxw77Urbl06Hz0DXCjTj0zgBx
Kkihlj3THb2Amwv4epplzBQzt3ZifnFPJuqs/eLc5VFKrVb74ZxOjHJA83fnKvGE
UtRCfoLzidPhywlKfCFNMWhrxYbksThYbWgH0cf/TixwfXtqr1U=
=d4tF
-----END PGP SIGNATURE-----

--------------wR3uNGtKIpM00cl4EqK70PkG--


From xen-devel-bounces@lists.xenproject.org Wed Nov 05 20:42:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 05 Nov 2025 20:42:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156392.1485542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGkKk-0002d4-FK; Wed, 05 Nov 2025 20:42:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156392.1485542; Wed, 05 Nov 2025 20: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 1vGkKk-0002cx-BO; Wed, 05 Nov 2025 20:42:22 +0000
Received: by outflank-mailman (input) for mailman id 1156392;
 Wed, 05 Nov 2025 20: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=N/Bd=5N=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1vGkKj-0002cq-8l
 for xen-devel@lists.xenproject.org; Wed, 05 Nov 2025 20:42:21 +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 ebd29cbc-ba87-11f0-9d16-b5c5bf9af7f9;
 Wed, 05 Nov 2025 21:42:19 +0100 (CET)
Received: by mail-yw1-x1129.google.com with SMTP id
 00721157ae682-780fe76f457so2550607b3.0
 for <xen-devel@lists.xenproject.org>; Wed, 05 Nov 2025 12:42:19 -0800 (PST)
Received: from [10.138.34.110]
 (h96-60-249-169.cncrtn.broadband.dynamic.tds.net. [96.60.249.169])
 by smtp.gmail.com with ESMTPSA id
 00721157ae682-787b159c5a3sm1853647b3.35.2025.11.05.12.42.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 05 Nov 2025 12:42: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: ebd29cbc-ba87-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762375338; x=1762980138; 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=/jBXRvPVDzl9DoeGfK2L7DwQNS6SwHfuRTTZ6EGtk6Y=;
        b=bUj5tpLOtbfNqZJhryvjagrnkaqN2aeif4NK2D308jtiWsFGe8k3ia+X+IAyuvg/eT
         Gg7C3cmD7/kT8L9Xo+uZgEg4qAMfVaGSa9vbvhQi02P4JwqxkAv4+D5U/9Vb6oHITZSs
         XQgpuNacdAlnUUXmA88fM7L3sHBANLX9bqiLtcI0CclpClmx/vL2o45yxU2gooOzdZZV
         7/rVyYVRLjTl0CcuHWANphtoGtBV/s2jLt+/6O4srTivf9AUM2nZ1jdQiwMErwWQtptf
         aYrT1e+uGeViZ2STj43MHbgXiKYzZ+EMIPdEdFBgFFHpRRF921NDvjWSTpG50QbUcVye
         RwKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762375338; x=1762980138;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=/jBXRvPVDzl9DoeGfK2L7DwQNS6SwHfuRTTZ6EGtk6Y=;
        b=wb0R3HCE1TqHFFUo29Guyv2RF3P0ucVOn/Xskm0H5A2zXlDBYDGZFifXa1SvAJnqJ2
         WfKwGOQhLIouT+B9RIcyTKeNXxLRAPllCOvO/mgLCxd7G9d9YFXA5d7s6EBpSLivzbdC
         Zz6KJ4JrmBufKddxd50ciOSy67xnu6mg8iaBu+ZBJg19ZMhUkmnLtLRKYKn4ghgZkCsT
         A2tQUZbDfa007Z0DEndTN9mg9Jha6doy2IjdZLB0xHDzDQR8lWzw+v4knDClJALI/f0a
         2jmSURK4yO/9zQvehtj76H8nQ7X4gp3n7y6Gr+xjsn7qPoB3B7XkYB5m3emZJ/OYq65L
         ZBhg==
X-Gm-Message-State: AOJu0YyTzSlBfpZaG4oI9WLW224vWSZELx5VVNNsyV8Y3eJvdz13rBDC
	0O9UnebYokxMOO3pfoB1T5yaYh+rLxxXvRYVYZC6WpmOlLSkxcxwlOan
X-Gm-Gg: ASbGnctAZscs+Iu7V75KEbp2XiO11/xqlnybxNIbpTlzyXI8nhFtpC8n23Vdwtugnpv
	/TKOCqUEMRiK3Sd9wTk6/0I6vphMFmAjCGH2EN5j3m3AVC0hu+jAqZUXQzcK2A2Vkx966zwrXLw
	17eIUCtlmvYCMk/d/isZJrZPpLOcT7+tqSq+wl6RUp6DYSzKOUjw9tgLcPscBlfYrRH4yKwJ0L7
	noFuvZSgEROR6BHmftyzXyuW0T0jXtxcy1OjlU9D/1csk8V0Q7EsCjxAHJOYyCpieTIUM+HkwVI
	ynNt3R9MA9YGdEaeZu5HaPLY9GZyVOwpQoWu4CWgso/zlajN57537QcuJywiRh98F0B8o76ydEJ
	q8ivBwFZNG/GdcphAQHI41tk2Rb1NyKbrL/Cp3IMFghRgiU00Cw9bhgNw36pO6QEJCv1xoWRgXM
	IX+uXR8lUAY4XVOaMSBgvRL25st2aTik+Slh7CthT7asJS4b9gKlDBxb6KAAaEX3d+OJZAo3rgi
	t/XS4vhBkWglfbo
X-Google-Smtp-Source: AGHT+IE/wzedgF2aJUusKlp6WnXPjlZPSxny9Z6uZooWb1tyqZvj6qIw92pAygzMlT+R6egnw4DwqQ==
X-Received: by 2002:a05:690c:1a:b0:787:abb8:628 with SMTP id 00721157ae682-787abb80b86mr31843197b3.27.1762375338065;
        Wed, 05 Nov 2025 12:42:18 -0800 (PST)
Message-ID: <eeff3f76-b5ba-4386-a8bf-7a987752802b@gmail.com>
Date: Wed, 5 Nov 2025 15:42:14 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: privcmd: fix ioeventfd/ioreq crashing PV domain
To: Val Packett <val@invisiblethingslab.com>, =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?=
 <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <20251015195713.6500-1-val@invisiblethingslab.com>
 <5a3660c9-1b18-4d87-a1f7-efa8d68239d8@suse.com>
 <7f73fdfa-2875-4349-9ef6-134e678ac691@invisiblethingslab.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: <7f73fdfa-2875-4349-9ef6-134e678ac691@invisiblethingslab.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------G30oE370V0qo6Xm1bdPT5v58"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------G30oE370V0qo6Xm1bdPT5v58
Content-Type: multipart/mixed; boundary="------------UVOZ4jXaoupmEQPrgEDndzIr";
 protected-headers="v1"
From: Demi Marie Obenour <demiobenour@gmail.com>
To: Val Packett <val@invisiblethingslab.com>, =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?=
 <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Message-ID: <eeff3f76-b5ba-4386-a8bf-7a987752802b@gmail.com>
Subject: Re: [RFC PATCH] xen: privcmd: fix ioeventfd/ioreq crashing PV domain
References: <20251015195713.6500-1-val@invisiblethingslab.com>
 <5a3660c9-1b18-4d87-a1f7-efa8d68239d8@suse.com>
 <7f73fdfa-2875-4349-9ef6-134e678ac691@invisiblethingslab.com>
In-Reply-To: <7f73fdfa-2875-4349-9ef6-134e678ac691@invisiblethingslab.com>
Autocrypt-Gossip: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==

--------------UVOZ4jXaoupmEQPrgEDndzIr
Content-Type: multipart/mixed; boundary="------------20sSEzjyop50utZCh8dFGMN0"

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

On 11/4/25 20:16, Val Packett wrote:
>=20
> On 11/4/25 9:15 AM, J=C3=BCrgen Gro=C3=9F wrote:
>> On 15.10.25 21:57, Val Packett wrote:
>>> Starting a virtio backend in a PV domain would panic the kernel in
>>> alloc_ioreq, trying to dereference vma->vm_private_data as a pages
>>> pointer when in reality it stayed as PRIV_VMA_LOCKED.
>>>
>>> Fix by allocating a pages array in mmap_resource in the PV case,
>>> filling it with page info converted from the pfn array. This allows
>>> ioreq to function successfully with a backend provided by a PV dom0.
>>>
>>> Signed-off-by: Val Packett <val@invisiblethingslab.com>
>>> ---
>>> I've been porting the xen-vhost-frontend[1] to Qubes, which runs on=20
>>> amd64
>>> and we (still) use PV for dom0. The x86 part didn't give me much=20
>>> trouble,
>>> but the first thing I found was this crash due to using a PV domain=20
>>> to host
>>> the backend. alloc_ioreq was dereferencing the '1' constant and=20
>>> panicking
>>> the dom0 kernel.
>>>
>>> I figured out that I can make a pages array in the expected format=20
>>> from the
>>> pfn array where the actual memory mapping happens for the PV case,=20
>>> and with
>>> the fix, the ioreq part works: the vhost frontend replies to the prob=
ing
>>> sequence and the guest recognizes which virtio device is being provid=
ed.
>>>
>>> I still have another thing to debug: the MMIO accesses from the inner=
=20
>>> driver
>>> (e.g. virtio_rng) don't get through to the vhost provider (ioeventfd =

>>> does
>>> not get notified), and manually kicking the eventfd from the frontend=

>>> seems to crash... Xen itself?? (no Linux panic on console, just a=20
>>> freeze and
>>> quick reboot - will try to set up a serial console now)
>>
>> IMHO for making the MMIO accesses work you'd need to implement=20
>> ioreq-server
>> support for PV-domains in the hypervisor. This will be a major=20
>> endeavor, so
>> before taking your Linux kernel patch I'd like to see this covered.
>=20
> Sorry, I wasn't clear enough.. it's *not* that MMIO accesses don't work=
=2E
>=20
> I debugged this a bit more, and it turns out:
>=20
> 1. the reason why "ioeventfd does not get notified" is because accessin=
g=20
> the virtio page (allocated with this privcmd interface) from the kernel=
=20
> was failing. The exchange between the guest driver and the userspace=20
> ioreq server has been working perfectly, but the *kernel* access (which=
=20
> is what needs this `struct page` allocation with the current code) was =

> returning nonsense and the check for the virtqueue readiness flag was=20
> failing.
>=20
> I have noticed and fixed (locally) a bug in this patch: reusing the=20
> `pfns` allocation for `errs` in=C2=A0`xen_remap_domain_mfn_array`=C2=A0=
meant that=20
> the actual pfn value was overwritten with a zero ("success" error code)=
,=20
> and that's the `pfn` I was using.
>=20
> Still, the memory visible in the dom0 kernel at that pfn is not the sam=
e=20
> allocation that's mapped into the process. Instead, it's some random=20
> other memory. I've added a hexdump for it in the ioeventfd notifier and=
=20
> it was returning random stuff from other userspace programs such as "//=
=20
> SPDX-License-Identifier" from a text editor (haha). Actually, *once* it=
=20
> did just work and I've managed to attach a virtio-rng driver and have i=
t=20
> fully work.
>=20
> Clearly I'm just struggling with the way memory mappings work under PV.=
=20
> Do I need to specifically create a second mapping for the kernel using =

> the same `xen_remap_domain_mfn_array` call?
>=20
> 2. the reason why "manually kicking the eventfd from the frontend seems=
=20
> to crash... Xen itself" was actually because that triggered the guest=20
> interrupt and I was using the ISA interrupts that required the virtual =

> (IO)APIC to exist, and it doesn't in PVH domains. For now I switched my=
=20
> test setup to HVM to get around that, but I'd need to.. figure out a=20
> virq/pirq type setup to route XEN_DMOP_set_isa_irq_level calls over=20
> event channels for PV(H) guests.

Still, this should return an error rather than crashing the hypervisor.
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------20sSEzjyop50utZCh8dFGMN0
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-----

--------------20sSEzjyop50utZCh8dFGMN0--

--------------UVOZ4jXaoupmEQPrgEDndzIr--

--------------G30oE370V0qo6Xm1bdPT5v58
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/sszaHOrMp8lMFAmkLtqcACgkQszaHOrMp
8lOWhw/+KwhreZmyNV1DfrbWvGklbYZ19zQDijnS6P1KwGTFVfBtQ8Jc58pmNdOo
8fGVEM1q4nAgglTUL+Rch2m1TKitutv6VQ3L4WlKuiSKTwM7y42uZjAB/yBfUXGW
UHINbApOr78W3mvkOLhyolpyXLOAnY6lnqZuCrbp82RTZ0vlN7orVbx3+X7sNgMJ
Dz9ggRqzWDbV6JBANd3T3cMDPx470xtzWVLBksHchu7Pcu28ZyJCaPrr+RwRjPx4
UGhDc9OOWjIUdPTqJEio3YpjvWFONXc4s7fg5pvMSKF3dAxph7vB30Dk6T+wn68l
TgS4WvAtVDvuWhPFl9EINVAvI9FDcIdEbiZNLwA0pHn4wnFQK+/wSqlEmu5OV2Sb
3NPeB98oNg1PwpEuTuUi9kNhZKKg9iefnjs232YRFDUMvad8b3str9jhYVwDd4Rm
ABavcZGhBAcc6/XY8U/jlsaoI1N2wQkIuC783VzP28aBwHzHaf186h0Ch07mG0bJ
XCOvKr0BJaeejOJX8/KJsT6WCNPLIlLkYT0t5meaudz/wmjIvdZN4y6UpHAxnf98
mVcwmYJK9mm87eu0o2yXKkm1KQuKoIqOB8RMG1Q7jTrig8QZTskSIyjoowCTuoFv
75G6cPepdF6nYGr0TQtWwGl8d7Fxt+vse9VtswVKGn+0CSCE0+0=
=NBZJ
-----END PGP SIGNATURE-----

--------------G30oE370V0qo6Xm1bdPT5v58--


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 02:00:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 02:00:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156441.1485552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGpIX-0005br-PB; Thu, 06 Nov 2025 02:00:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156441.1485552; Thu, 06 Nov 2025 02: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 1vGpIX-0005bj-K7; Thu, 06 Nov 2025 02:00:25 +0000
Received: by outflank-mailman (input) for mailman id 1156441;
 Thu, 06 Nov 2025 02:00:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RMQi=5O=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vGpIW-0005bb-CJ
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 02:00:24 +0000
Received: from mail-yx1-xb132.google.com (mail-yx1-xb132.google.com
 [2607:f8b0:4864:20::b132])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5a2a575b-bab4-11f0-9d16-b5c5bf9af7f9;
 Thu, 06 Nov 2025 03:00:22 +0100 (CET)
Received: by mail-yx1-xb132.google.com with SMTP id
 956f58d0204a3-63fd493ea10so787446d50.0
 for <xen-devel@lists.xenproject.org>; Wed, 05 Nov 2025 18: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: 5a2a575b-bab4-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762394421; x=1762999221; 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=KwQzZyj3RNkNdlKIim1QoQYo3qxiKTvpU0ADXklFVyQ=;
        b=hEYAzp8tSi7JWzOiQMDD/+SQcSImB7E15IqzDVNzjGlu7vdULtzy5pdrEzOmE7gEhq
         yawAwBag3TTwU8wpCm47L7xECiODdBDi4tDFeTx22TszTGEPmUeZicj2dYD2CHdJTru5
         3nzifRiKpMQJ94RDQLJP6KRvsT0+4i+Oxj4Zr8V2YZV3gHL0pEKCfMbLO61uDoQi7cYT
         1zHYXrbUQhXgV91S8hWAUzpOIvvmD8k3Jg8HK70bFJr9wg0zzX2BlV6ImyXOvWjKN+fD
         UON15WjzM2l8IJlW2wXfLl0PpLM/SneqrE9hJDj4D5qPhdqNSa6VziCAjtslZu3mcF4n
         GdLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762394421; x=1762999221;
        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=KwQzZyj3RNkNdlKIim1QoQYo3qxiKTvpU0ADXklFVyQ=;
        b=BH2Us+5jCdSP2xrw3Jii2kYn1yuFMX26GUTiWgBQ/UQeXXtT0MpzFy3KfJddsXddC1
         KBbpajF2RMvlTId2R23AbXHU+0z0x334f8iNyoTWoFuc+EB/jkGO+XKgQ56mkFMlyNgS
         kFn9dt0kfhHqkSSLqoLz83BuneSBSTyKp5LAYTfX8NaLBH5ezKt2dKue3MysNThKOjye
         M1vtY57Kgb3VWSVGvSjWI7lbAdnGzCYUOPpRHQGoZsaKvaT5OkpQid+L3WY5aDuhxha2
         ViS+tQAZ2hs5W9ouEeU6RQz8FkOxh9NGeGwsqq/mPxDxopSi6CbDqsJxG9ZtJtcpWdGV
         A7Vg==
X-Forwarded-Encrypted: i=1; AJvYcCVPjz97fNvcl/VJ1R2U45hIciVxnV3svn1dzN+xlWwe6kUYCFApE4UqarveJro6D1Bve2V1GfGZ9YM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyooXJGe1ktSFwVd0KAaNHhVRgtnnqHMsLg8FG5l6bZVMBuQ280
	tyGNF+lqt5JEZPBx2YpWn1nrtlR+QVche0VL0WXa4/Mrq6tk1fkhRa8C8mvKlBDNo2HRBISFVdp
	/2BuUhBIAvIRltwshcIpzPXE6z5t/1ZY=
X-Gm-Gg: ASbGncs7WaJdVIPa+faoivPM+jOVibdpEYbFI985kmQS8DrsXAx5T7F1+q4pGd4q/Lb
	tQOgitVpOjABsV/LSMZEMapcdQE61vYlhJIXjtqFIEQNmqts61liobtjMmklvQ5C1sO3CIBmUDN
	Xbnr3y5tYNPyZtRKouosQ33OOoJ3QOzHsjgBkhvru5p+ZOLNdQkpeusFk0NaJFqloQDIMaBkjhm
	JQbRDEKpwZkQSFIxHTVKcMY27z2OTb2Zg9LZAy4Q79HqiutXgzxMDyOFWIK3QRsV/UGPAbm+BGt
	XMFBYQ==
X-Google-Smtp-Source: AGHT+IG+wGmoK60a58Gj1xEsEkeNlgY+Imd2e2WaCeHPk7B0Ks5bg6Y0lHlE31i5UTeYwQ43gCSxar+IMJpdJFAbG8k=
X-Received: by 2002:a05:690e:1c1b:b0:63f:ad41:ed32 with SMTP id
 956f58d0204a3-640b53f9fa9mr1467789d50.13.1762394421095; Wed, 05 Nov 2025
 18:00:21 -0800 (PST)
MIME-Version: 1.0
References: <20251105153808.20278-1-frediano.ziglio@citrix.com> <fdc9fd41-2224-4672-911e-3e17b428d32a@gmail.com>
In-Reply-To: <fdc9fd41-2224-4672-911e-3e17b428d32a@gmail.com>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Thu, 6 Nov 2025 02:00:09 +0000
X-Gm-Features: AWmQ_bl20FBaVdGQ73vw3BLi0C6GeqXWY0j5un7i-UTcmGdpBPlBWpvB_UriT3U
Message-ID: <CAHt6W4eyH_7c4Q-KYaDjNJnSXjKSVNT1iSw0sNbLMXnK3iEHRg@mail.gmail.com>
Subject: Re: [PATCH v3] xen: Strip xen.efi by default
To: Demi Marie Obenour <demiobenour@gmail.com>
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>, xen-devel@lists.xenproject.org, 
	Frediano Ziglio <frediano.ziglio@cloud.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset="UTF-8"

On Wed, 5 Nov 2025 at 20:31, Demi Marie Obenour <demiobenour@gmail.com> wrote:
>
> On 11/5/25 10:38, Frediano Ziglio wrote:
> > From: Frediano Ziglio <frediano.ziglio@cloud.com>
> >
> > For xen.gz file we strip all symbols and have an additional
> > xen-syms file version with all symbols.
> > Make xen.efi more coherent stripping all symbols too.
> > xen-syms.efi can be used for debugging.
> >
> > Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> > ---
> > Changes since v1:
> > - avoid leaving target if some command fails.
> >
> > Changes since v2:
> > - do not convert type but retain PE format;
> > = use xen-syms.efi for new file name, more consistent with ELF.
> > ---
> >  docs/misc/efi.pandoc  |  8 +-------
> >  xen/Kconfig.debug     |  9 ++-------
> >  xen/Makefile          | 19 -------------------
> >  xen/arch/x86/Makefile |  9 ++++++---
> >  4 files changed, 9 insertions(+), 36 deletions(-)
> >
> > diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
> > index 11c1ac3346..c66b18a66b 100644
> > --- a/docs/misc/efi.pandoc
> > +++ b/docs/misc/efi.pandoc
> > @@ -20,13 +20,7 @@ Xen to load the configuration file even if multiboot modules are found.
> >  Once built, `make install-xen` will place the resulting binary directly into
> >  the EFI boot partition, provided `EFI_VENDOR` is set in the environment (and
> >  `EFI_MOUNTPOINT` is overridden as needed, should the default of `/boot/efi` not
> > -match your system). When built with debug info, the binary can be quite large.
> > -Setting `INSTALL_EFI_STRIP=1` in the environment will cause it to be stripped
> > -of debug info in the process of installing. `INSTALL_EFI_STRIP` can also be set
> > -to any combination of options suitable to pass to `strip`, in case the default
> > -ones don't do. The xen.efi binary will also be installed in `/usr/lib64/efi/`,
> > -unless `EFI_DIR` is set in the environment to override this default. This
> > -binary will not be stripped in the process.
> > +match your system).
> >
> >  The binary itself will require a configuration file (names with the `.efi`
> >  extension of the binary's name replaced by `.cfg`, and - until an existing
> > diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
> > index d900d926c5..58ee10ee3e 100644
> > --- a/xen/Kconfig.debug
> > +++ b/xen/Kconfig.debug
> > @@ -147,12 +147,7 @@ config DEBUG_INFO
> >         Say Y here if you want to build Xen with debug information. This
> >         information is needed e.g. for doing crash dump analysis of the
> >         hypervisor via the "crash" tool.
> > -       Saying Y will increase the size of the xen-syms and xen.efi
> > -       binaries. In case the space on the EFI boot partition is rather
> > -       limited, you may want to install a stripped variant of xen.efi in
> > -       the EFI boot partition (look for "INSTALL_EFI_STRIP" in
> > -       docs/misc/efi.pandoc for more information - when not using
> > -       "make install-xen" for installing xen.efi, stripping needs to be
> > -       done outside the Xen build environment).
> > +       Saying Y will increase the size of the xen-syms and xen.efi.elf
> > +       binaries.
> >
> >  endmenu
> > diff --git a/xen/Makefile b/xen/Makefile
> > index ddcee8835c..605a26c181 100644
> > --- a/xen/Makefile
> > +++ b/xen/Makefile
> > @@ -493,22 +493,6 @@ endif
> >  .PHONY: _build
> >  _build: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
> >
> > -# Strip
> > -#
> > -# INSTALL_EFI_STRIP, if defined, will cause xen.efi to be stripped before it
> > -# is installed. If INSTALL_EFI_STRIP is '1', then the default option(s) below
> > -# will be used. Otherwise, INSTALL_EFI_STRIP value will be used as the
> > -# option(s) to the strip command.
> > -ifdef INSTALL_EFI_STRIP
> > -
> > -ifeq ($(INSTALL_EFI_STRIP),1)
> > -efi-strip-opt := --strip-debug --keep-file-symbols
> > -else
> > -efi-strip-opt := $(INSTALL_EFI_STRIP)
> > -endif
> > -
> > -endif
> > -
> >  .PHONY: _install
> >  _install: D=$(DESTDIR)
> >  _install: T=$(notdir $(TARGET))
> > @@ -535,9 +519,6 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
> >               ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi; \
> >               ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T).efi; \
> >               if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; then \
> > -                     $(if $(efi-strip-opt), \
> > -                          $(STRIP) $(efi-strip-opt) -p -o $(TARGET).efi.stripped $(TARGET).efi && \
> > -                          $(INSTALL_DATA) $(TARGET).efi.stripped $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi ||) \
> >                       $(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \
> >               elif [ "$(D)" = "$(patsubst $(shell cd $(XEN_ROOT) && pwd)/%,%,$(D))" ]; then \
> >                       echo 'EFI installation only partially done (EFI_VENDOR not set)' >&2; \
> > diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> > index 407571c510..c118ab7b7d 100644
> > --- a/xen/arch/x86/Makefile
> > +++ b/xen/arch/x86/Makefile
> > @@ -228,14 +228,17 @@ endif
> >       $(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
> >       $(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
> >             $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
> > -           $(note_file_option) -o $@
> > -     $(NM) -pa --format=sysv $@ \
> > +           $(note_file_option) -o $@.tmp
> > +     $(NM) -pa --format=sysv $@.tmp \
> >               | $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
> >               > $@.map
> >  ifeq ($(CONFIG_DEBUG_INFO),y)
> > -     $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
> > +     $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))cp -f \
> > +        $@.tmp $(TARGET)-syms.efi
> > +     $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(STRIP) $@.tmp
> >  endif
> >       rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
> > +     mv -f $@.tmp $@
> >  ifeq ($(CONFIG_XEN_IBT),y)
> >       $(SHELL) $(srctree)/tools/check-endbr.sh $@
> >  endif
>
> Does this also strip the string table from xen.efi?  I'm concerned that
> signing xen.efi for secure boot won't work if there is a string table.
> In particular, it appears that EDK2 will miscalculate the file hash if
> the string table is before the signature.  Moving the string table after
> the signature invalidates the pointer to it.  The only exception is if
> the string table is itself in a section, but I don't know if that is the
> case.

I don't know if the string table is stripped but I can surely confirm
that signing xen.efi is working with secure boot.

Frediano


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 03:53:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 03:53:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156465.1485563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGr3Z-0001a7-Hd; Thu, 06 Nov 2025 03:53:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156465.1485563; Thu, 06 Nov 2025 03: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 1vGr3Z-0001a0-D2; Thu, 06 Nov 2025 03:53:05 +0000
Received: by outflank-mailman (input) for mailman id 1156465;
 Thu, 06 Nov 2025 03: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=j7P0=5O=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1vGr3Y-0001Zu-Gf
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 03:53:04 +0000
Received: from mail-yw1-x1131.google.com (mail-yw1-x1131.google.com
 [2607:f8b0:4864:20::1131])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 15dfa6b5-bac4-11f0-9d16-b5c5bf9af7f9;
 Thu, 06 Nov 2025 04:53:00 +0100 (CET)
Received: by mail-yw1-x1131.google.com with SMTP id
 00721157ae682-7866aca9e25so4397087b3.3
 for <xen-devel@lists.xenproject.org>; Wed, 05 Nov 2025 19:52:59 -0800 (PST)
Received: from [10.138.34.110]
 (h96-60-249-169.cncrtn.broadband.dynamic.tds.net. [96.60.249.169])
 by smtp.gmail.com with ESMTPSA id
 956f58d0204a3-640b5d9533csm425014d50.22.2025.11.05.19.52.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 05 Nov 2025 19: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: 15dfa6b5-bac4-11f0-9d16-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762401178; x=1763005978; 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=/AIHS4S+1OmkSnqYp+92MU5zG9yxjfH7KnsajamoAWI=;
        b=hyGbLijMQe7x7b05G0g+0GNrR9SXqDniu7cWYvvjYpfp3XNnp8CqLt+xwI5mkZUkkp
         ZJ+EuJX9wyhDGa6L/3MHwAgAuQREg8fog9c7QNeg8yZolYB9xOOsIZ+TXnfef6QVmCM/
         FvAZdYQQtLu38/vJQCyOh0GJ2nVpYyD6teC7yRhHyMR4eY4du1pnURb0FVqowCmVh6/p
         zSz6Wk51ZRFYmh7PHkggXLQIgEF8NdEZ2BA3BTN8RsOY9qHrDrN5e0FYwohTTF/qhOOS
         UnDYyZ+HYG1Ip7rXd4i7zPqbJEiKYd3hYUG0uURePzsZLoCcZqn5ShLfO6Zo30/ZmBfb
         p8oA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762401178; x=1763005978;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=/AIHS4S+1OmkSnqYp+92MU5zG9yxjfH7KnsajamoAWI=;
        b=fHiEAG+AjCDh81I5/oflLy90Oj8EJPtpz/7LAOjjDWFMedIyaSUntu1n7HoAfmhQlD
         hodR3Xw24iCwJCTdEKDQ/PQCd/mge7BVnobpqgvPuAbyhLW4q1ThMubUu0Z4vObrnDBD
         r/yRy54qdaAx00kFMYGWXFpHAlJoVrZW09xyHytH9FITbiPOytZwq200gFq1XHISDKI1
         X1XbfOvo8FeSO2RAxfnCbH5Lwq2Ois/sICJjsM2Yk0ODFIqI4mb6v5cVGfQxU4A487Lx
         JUKDDZJ1GO/u4Kq+wlRtTdkqviHArggVoCu7U6j2y3NgZe8d60mtkkcfcURZxQltawHN
         8VRw==
X-Forwarded-Encrypted: i=1; AJvYcCWB7t/W+3sL2cRkWiqCflsUh7yTEfVwNaA/UX8ozezsB5Rrz89w8rQKTMnRkLTKUuS6znmQkRfP6VI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy8LM4J6w9gTE3fPJsHjn8MByXXmHwk8hZj8P2XppTmh8E3bEsh
	TC9yChumJmz7gn+MBiBzm/SyeSM3Y9ZTD5k2s7GEeyMk5brLMUOenUsh
X-Gm-Gg: ASbGncu2lcmFCMaE4hwrZ26k6HJnoajABqGtZPCgXASMWstufbwio2u/W9qESd+LBUM
	9SzW/Wnqpe/BfzTYeA32AX16rwBQXcjqUi7aYKKfjLzjaMgJhPJOzBk32luIzv4YVuMZ9RMwC1s
	gEAMEiItMPsctnJOvXvmDVT1mCiLk2oJLJflwbLgJde3a7y6UvcNt+5E7isu8duj7jt0GcAV3l4
	QYD3gROGDH1urmLQZfEDN+yzsM5XHTUHQUgdJqfR7Gn+433xua8RmaH5KJo9SeGsL8Bu4WsEy/P
	hKzIQfy8Mvf6XQA7BuonGh4Mxe+QO9qPI16Jo/nHOEkgO7BhUzGBWXsDOMspcEkzvPTAbG05WDE
	LvYV+fg1NldYPCGT8yuPdnxzRuRqaL9luCYlCRPJAnv/aqFOnHdDQAoZjyXX1pSpKDMR+ibZh7l
	odFn/W1DD0k/eRfi4Ee5AZnwinWXANcAH6+g5PYniAJKOqWZ8Fy7IS40Bi3KC4cNY5bR2Wt4Eyi
	iSXuMT4nE2Uz7ow
X-Google-Smtp-Source: AGHT+IEUEQ8In1z8IlqHtW7wOmqvPHNOkZ3QT6qbyFghVwzqwu/ciPMPtYbCD48xHtrBs6BIkHq6KA==
X-Received: by 2002:a05:690e:4181:b0:63f:b4db:91fa with SMTP id 956f58d0204a3-63fd34c4e88mr4439125d50.15.1762401178391;
        Wed, 05 Nov 2025 19:52:58 -0800 (PST)
Message-ID: <d193feac-3285-4c26-9a8a-ba09437e7e76@gmail.com>
Date: Wed, 5 Nov 2025 22:52:53 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen: Strip xen.efi by default
To: Frediano Ziglio <freddy77@gmail.com>
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>,
 xen-devel@lists.xenproject.org, Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20251105153808.20278-1-frediano.ziglio@citrix.com>
 <fdc9fd41-2224-4672-911e-3e17b428d32a@gmail.com>
 <CAHt6W4eyH_7c4Q-KYaDjNJnSXjKSVNT1iSw0sNbLMXnK3iEHRg@mail.gmail.com>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <CAHt6W4eyH_7c4Q-KYaDjNJnSXjKSVNT1iSw0sNbLMXnK3iEHRg@mail.gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------qPsqJNqieQCjtx4cay7y0hHE"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------qPsqJNqieQCjtx4cay7y0hHE
Content-Type: multipart/mixed; boundary="------------ngzAjT7nKab9hPVA2HBdk0Hi";
 protected-headers="v1"
From: Demi Marie Obenour <demiobenour@gmail.com>
To: Frediano Ziglio <freddy77@gmail.com>
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>,
 xen-devel@lists.xenproject.org, Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Message-ID: <d193feac-3285-4c26-9a8a-ba09437e7e76@gmail.com>
Subject: Re: [PATCH v3] xen: Strip xen.efi by default
References: <20251105153808.20278-1-frediano.ziglio@citrix.com>
 <fdc9fd41-2224-4672-911e-3e17b428d32a@gmail.com>
 <CAHt6W4eyH_7c4Q-KYaDjNJnSXjKSVNT1iSw0sNbLMXnK3iEHRg@mail.gmail.com>
In-Reply-To: <CAHt6W4eyH_7c4Q-KYaDjNJnSXjKSVNT1iSw0sNbLMXnK3iEHRg@mail.gmail.com>
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=

--------------ngzAjT7nKab9hPVA2HBdk0Hi
Content-Type: multipart/mixed; boundary="------------oeH8nn2cjImXFcgr9yBH0QBB"

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

On 11/5/25 21:00, Frediano Ziglio wrote:
> On Wed, 5 Nov 2025 at 20:31, Demi Marie Obenour <demiobenour@gmail.com>=
 wrote:
>>
>> On 11/5/25 10:38, Frediano Ziglio wrote:
>>> From: Frediano Ziglio <frediano.ziglio@cloud.com>
>>>
>>> For xen.gz file we strip all symbols and have an additional
>>> xen-syms file version with all symbols.
>>> Make xen.efi more coherent stripping all symbols too.
>>> xen-syms.efi can be used for debugging.
>>>
>>> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
>>> ---
>>> Changes since v1:
>>> - avoid leaving target if some command fails.
>>>
>>> Changes since v2:
>>> - do not convert type but retain PE format;
>>> =3D use xen-syms.efi for new file name, more consistent with ELF.
>>> ---
>>>  docs/misc/efi.pandoc  |  8 +-------
>>>  xen/Kconfig.debug     |  9 ++-------
>>>  xen/Makefile          | 19 -------------------
>>>  xen/arch/x86/Makefile |  9 ++++++---
>>>  4 files changed, 9 insertions(+), 36 deletions(-)
>>>
>>> diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
>>> index 11c1ac3346..c66b18a66b 100644
>>> --- a/docs/misc/efi.pandoc
>>> +++ b/docs/misc/efi.pandoc
>>> @@ -20,13 +20,7 @@ Xen to load the configuration file even if multibo=
ot modules are found.
>>>  Once built, `make install-xen` will place the resulting binary direc=
tly into
>>>  the EFI boot partition, provided `EFI_VENDOR` is set in the environm=
ent (and
>>>  `EFI_MOUNTPOINT` is overridden as needed, should the default of `/bo=
ot/efi` not
>>> -match your system). When built with debug info, the binary can be qu=
ite large.
>>> -Setting `INSTALL_EFI_STRIP=3D1` in the environment will cause it to =
be stripped
>>> -of debug info in the process of installing. `INSTALL_EFI_STRIP` can =
also be set
>>> -to any combination of options suitable to pass to `strip`, in case t=
he default
>>> -ones don't do. The xen.efi binary will also be installed in `/usr/li=
b64/efi/`,
>>> -unless `EFI_DIR` is set in the environment to override this default.=
 This
>>> -binary will not be stripped in the process.
>>> +match your system).
>>>
>>>  The binary itself will require a configuration file (names with the =
`.efi`
>>>  extension of the binary's name replaced by `.cfg`, and - until an ex=
isting
>>> diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
>>> index d900d926c5..58ee10ee3e 100644
>>> --- a/xen/Kconfig.debug
>>> +++ b/xen/Kconfig.debug
>>> @@ -147,12 +147,7 @@ config DEBUG_INFO
>>>         Say Y here if you want to build Xen with debug information. T=
his
>>>         information is needed e.g. for doing crash dump analysis of t=
he
>>>         hypervisor via the "crash" tool.
>>> -       Saying Y will increase the size of the xen-syms and xen.efi
>>> -       binaries. In case the space on the EFI boot partition is rath=
er
>>> -       limited, you may want to install a stripped variant of xen.ef=
i in
>>> -       the EFI boot partition (look for "INSTALL_EFI_STRIP" in
>>> -       docs/misc/efi.pandoc for more information - when not using
>>> -       "make install-xen" for installing xen.efi, stripping needs to=
 be
>>> -       done outside the Xen build environment).
>>> +       Saying Y will increase the size of the xen-syms and xen.efi.e=
lf
>>> +       binaries.
>>>
>>>  endmenu
>>> diff --git a/xen/Makefile b/xen/Makefile
>>> index ddcee8835c..605a26c181 100644
>>> --- a/xen/Makefile
>>> +++ b/xen/Makefile
>>> @@ -493,22 +493,6 @@ endif
>>>  .PHONY: _build
>>>  _build: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
>>>
>>> -# Strip
>>> -#
>>> -# INSTALL_EFI_STRIP, if defined, will cause xen.efi to be stripped b=
efore it
>>> -# is installed. If INSTALL_EFI_STRIP is '1', then the default option=
(s) below
>>> -# will be used. Otherwise, INSTALL_EFI_STRIP value will be used as t=
he
>>> -# option(s) to the strip command.
>>> -ifdef INSTALL_EFI_STRIP
>>> -
>>> -ifeq ($(INSTALL_EFI_STRIP),1)
>>> -efi-strip-opt :=3D --strip-debug --keep-file-symbols
>>> -else
>>> -efi-strip-opt :=3D $(INSTALL_EFI_STRIP)
>>> -endif
>>> -
>>> -endif
>>> -
>>>  .PHONY: _install
>>>  _install: D=3D$(DESTDIR)
>>>  _install: T=3D$(notdir $(TARGET))
>>> @@ -535,9 +519,6 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
>>>               ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-=
$(XEN_VERSION).efi; \
>>>               ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T).=
efi; \
>>>               if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; th=
en \
>>> -                     $(if $(efi-strip-opt), \
>>> -                          $(STRIP) $(efi-strip-opt) -p -o $(TARGET).=
efi.stripped $(TARGET).efi && \
>>> -                          $(INSTALL_DATA) $(TARGET).efi.stripped $(D=
)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi ||) \
>>>                       $(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPO=
INT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \
>>>               elif [ "$(D)" =3D "$(patsubst $(shell cd $(XEN_ROOT) &&=
 pwd)/%,%,$(D))" ]; then \
>>>                       echo 'EFI installation only partially done (EFI=
_VENDOR not set)' >&2; \
>>> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
>>> index 407571c510..c118ab7b7d 100644
>>> --- a/xen/arch/x86/Makefile
>>> +++ b/xen/arch/x86/Makefile
>>> @@ -228,14 +228,17 @@ endif
>>>       $(MAKE) $(build)=3D$(@D) .$(@F).1r.o .$(@F).1s.o
>>>       $(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
>>>             $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y=
) \
>>> -           $(note_file_option) -o $@
>>> -     $(NM) -pa --format=3Dsysv $@ \
>>> +           $(note_file_option) -o $@.tmp
>>> +     $(NM) -pa --format=3Dsysv $@.tmp \
>>>               | $(objtree)/tools/symbols --all-symbols --xensyms --sy=
sv --sort \
>>>               > $@.map
>>>  ifeq ($(CONFIG_DEBUG_INFO),y)
>>> -     $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY=
) -O elf64-x86-64 $@ $@.elf
>>> +     $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))cp -f \
>>> +        $@.tmp $(TARGET)-syms.efi
>>> +     $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(STRIP) =
$@.tmp
>>>  endif
>>>       rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
>>> +     mv -f $@.tmp $@
>>>  ifeq ($(CONFIG_XEN_IBT),y)
>>>       $(SHELL) $(srctree)/tools/check-endbr.sh $@
>>>  endif
>>
>> Does this also strip the string table from xen.efi?  I'm concerned tha=
t
>> signing xen.efi for secure boot won't work if there is a string table.=

>> In particular, it appears that EDK2 will miscalculate the file hash if=

>> the string table is before the signature.  Moving the string table aft=
er
>> the signature invalidates the pointer to it.  The only exception is if=

>> the string table is itself in a section, but I don't know if that is t=
he
>> case.
>=20
> I don't know if the string table is stripped but I can surely confirm
> that signing xen.efi is working with secure boot.
>=20
> Frediano

Does objdump on the signed file return correct section names?
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------oeH8nn2cjImXFcgr9yBH0QBB
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-----

--------------oeH8nn2cjImXFcgr9yBH0QBB--

--------------ngzAjT7nKab9hPVA2HBdk0Hi--

--------------qPsqJNqieQCjtx4cay7y0hHE
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/sszaHOrMp8lMFAmkMG5YACgkQszaHOrMp
8lPuQg/+OktjD69Tyq2MEjXXcKBBmLsM8s49hL1N/8xw2d9SWmBTxwet0+eNhvQF
Pq9DHELZRn4gVwtqZfgDgSElQn7P1djxnsvLLVxL+S9VCqt3cYw+ILsdhUwp8Wgj
oMUwtbjcVWss8QwrvYwSgiuaNWeNeg+EDcwqVu5v2A0F9/X9iAAUT5nEPGv3Fcvg
Mq0dF6UT8w8x1TKqYHxPcB2ubDTtesnsZS9TPFOyLdIEKGTK9d+QoLloWX1H01tX
r7cPpe0HneVDZl4StfMXyKgl0SgqPzUNs4biaV3xfysQcb6eeBnfjBppOJpJu5cT
CKSHPXqWJjVnlFvpH2OqIzjyrms95YQVbhwX0K4UNsZA7Mzihc4YR/d6XnEBkLro
/XpZ6nPspH6zs92zUkueMHRf7U8ZIEi0qF/8Lhy9i+pay1cN91daM0PVO1Tfpmg6
vL6qzyOU87QFkrYvyiDupT+G4cUmYVnwRv2lH5dk4OXPrehhe88VtICTo1pv+xTK
FCxnmx3/GOxf2eXFcxwzC1AgP0J7JLPJpSjBA/WxL1QBOoUappDdLTXH4aW3CY0H
6J8lySy+jRMad19JE+5NNXr1pA8qjroqZzv9YWIoRoXyILijVkxJdvtyt4c1TZE1
/0Qt/z+IixHWvrSi33zgJSg6iE/0GTQ+yB237uhFV1Rc7ZjuXZw=
=JxXb
-----END PGP SIGNATURE-----

--------------qPsqJNqieQCjtx4cay7y0hHE--


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 07:36:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 07:36:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156513.1485572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGuXv-0001q5-HS; Thu, 06 Nov 2025 07:36:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156513.1485572; Thu, 06 Nov 2025 07:36:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGuXv-0001py-Dj; Thu, 06 Nov 2025 07:36:39 +0000
Received: by outflank-mailman (input) for mailman id 1156513;
 Thu, 06 Nov 2025 07:36: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGuXu-0001ps-Be
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 07:36:38 +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 4fbe2d06-bae3-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 08:36:30 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-b472842981fso30228566b.1
 for <xen-devel@lists.xenproject.org>; Wed, 05 Nov 2025 23:36: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
 a640c23a62f3a-b72896c814esm146795666b.68.2025.11.05.23.36.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 05 Nov 2025 23:36: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: 4fbe2d06-bae3-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762414590; x=1763019390; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BtwYyPAmaEz5JSyi5EkBfHhtYNWZVpEUSgWuXT4T6Qg=;
        b=FHApuhO3USnfn52AiJqPdgjQ7GX0kWhCIeXVqvys+Ufl8l4pzbN1AD52TtggkzMEyX
         IXq1/KT8g6Y5hC6UeyaQXDgPWoqI5BpG2IWq6vAsFLdzRH3/yQKz9kKCWsH2L5R0O+Qr
         b4L/dSL+XITnvZbbYlpsi3nhGyi2ipWWG4cb+XdHcnu4pth/YpMTYiHmGy+VXFATdMpL
         waHaa/cheQFfOK0v21mg1NtKIogxsnzfDFbf6p/Ns2szM4MUP6Ay/keBFLTwUodnZyyS
         hXAnRVnirUv7Oly7f8SDEG5d6lYLxltlC2upcxtjg+70kaTvPhdg9C2xzknFY9615HqW
         gagA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762414590; x=1763019390;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BtwYyPAmaEz5JSyi5EkBfHhtYNWZVpEUSgWuXT4T6Qg=;
        b=CtH5jYG7aDxLtPXmbvZqkf1qAENpkwejD5yv57X8TlDOBbVu6b9NSe0XkXUk3wEc7A
         qxZ0zj+Ebr86z4eXuLXUvf0fmzU+7T6Qd7HmRDZbXv1tBPwT9l2UWLRQhp5Rs2Wli9R8
         CHM1XC1zg/VWK+0Jfy2+a+TFgB5lYvXv2rhGaYX1owYFs4XBYjrIRpjLdMUi4IGfV9yb
         QKDPQLDUNsjnsxFiWx7lp6apa2s4DbZK2pMFQV30n/5dTwlZImF4HwDEXN3tc8yC7l6k
         8ORPfKJKT8Cvwj/SBVYOh6iXshGWyZEQjDUFqdSilIOCjYucunDnLs8z3ftaF/dkymet
         h/2Q==
X-Forwarded-Encrypted: i=1; AJvYcCXJlY/KP7SmTqRz/sYJ/Hgos9qZH9NtUTGw5S2gVfKbfAz0StOvRoXv/FGInkwPeEuZUwDFsgNlDds=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxHreRs2VfPLITOCqhgowzKJWvgwfGfShY5nQHGY1ztbHlObm1p
	7B2sk6gqpRFPIle6TQeK5RvqvQsdYkz993siY+ZukHYTlS9qChKbYdHzXVQyYZ9frQ==
X-Gm-Gg: ASbGncvWlGuY9BgleBC/n408a1Q3XkDr1ZHRCJ3+rJHyAism/5nMqZ4PW2C6Q8C0GQM
	i51tQYK1QDjgvcam58C0OeCrNyWqtnFYijK1ZNfAlaWc0o5bqKpVzwFz6Gus/F+83jn/yvSF2oL
	VtA0m8SlhF2loFBAU9sADC4M2xJB/qnXiQad3Ttyzj8pNk5J9Z5A7Wy/Zb7PyY3nijvBKkk6BiO
	0dsB5meqaspl/71YU2YqoBTJH83NxXgEnvTGiSYRYVClxtAoVzqRxjlZDtz97RAUNfXLWaVa5ho
	6twI31ZNUggU5VC2TZD+PT645oMXbieTEUNjM/JYU99ICzPa0ea0kaCNkjfDkR5e2H/H7k0zagc
	ghcUbE35Z+gATC0DLZiQRHnr6ZG9IhOElS4k7iQVr6RcXd4f9We6Wz2cgNcfeyvpWwKmbeCs9MX
	eERnx62SLQOKaNkPpr7nHDxmULNY6xyXGEC3nZZBB/TcLxof5SkZy8yelHbzmirQoIgXZ9384=
X-Google-Smtp-Source: AGHT+IGkilK1aWhpGvi+J8pY06M+wPz+NlZhbhURE89ITjs6RENAGyN9lkgvTSbvJfcqL9tCR2Qgxg==
X-Received: by 2002:a17:907:7256:b0:b6d:8ce4:ff18 with SMTP id a640c23a62f3a-b72651557c0mr643357966b.9.1762414590092;
        Wed, 05 Nov 2025 23:36:30 -0800 (PST)
Message-ID: <1ef6423e-91bb-45db-801d-221de74bbd2f@suse.com>
Date: Thu, 6 Nov 2025 08:36:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] domain: adjust soft-reset arch dependency
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Penny Zheng <Penny.Zheng@amd.com>,
 Christopher Clark <christopher.w.clark@gmail.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <c9c8c9c6-a155-4986-bf77-5766cdcd6024@suse.com>
 <3baba476-9d64-4619-b391-4afcc5fd7dba@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: <3baba476-9d64-4619-b391-4afcc5fd7dba@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.11.2025 12:33, Oleksii Kurochko wrote:
> 
> On 10/30/25 1:10 PM, Jan Beulich wrote:
>> Arm's arch_domain_soft_reset() returning -ENOSYS is quite unhelpful: This
>> way a domain will be crashed if a tool stack mistakenly invokes
>> XEN_DOMCTL_soft_reset on it. Instead the tool stack should be told of its
>> mistake.
>>
>> Introduce HAS_SOFT_RESET, implied only by x86. "imply" rather than
>> "select" such that HAS_SOFT_RESET can later gain a dependency on
>> MGMT_HYPERCALLS. That way HAS_SOFT_RESET will go off when
>> MGMT_HYPERCALLS is off.
>>
>> Check the new setting early in domctl handling, and compile out the thus
>> dead (when HAS_SOFT_RESET=n) domain_soft_reset() as well as its dedicated
>> helpers.
>>
>> Signed-off-by: Jan Beulich<jbeulich@suse.com>
> 
> LGTM:
> 
> Reviewed-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>

Thanks, but one remark: Here as well as in your release-acks, can you please
get used to inserting a blank ahead of the opening angle bracket? Roger had
asked (me, not you) about its absence too, the other day.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 07:47:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 07:47:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156525.1485581 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGuip-0003Ul-FP; Thu, 06 Nov 2025 07:47:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156525.1485581; Thu, 06 Nov 2025 07:47: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 1vGuip-0003Ue-Cq; Thu, 06 Nov 2025 07:47:55 +0000
Received: by outflank-mailman (input) for mailman id 1156525;
 Thu, 06 Nov 2025 07:47: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGuin-0003UW-Dd
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 07:47:53 +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 e4f8b134-bae4-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 08:47:50 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b7200568b13so116774866b.1
 for <xen-devel@lists.xenproject.org>; Wed, 05 Nov 2025 23:47: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
 a640c23a62f3a-b728937dd4bsm155494966b.28.2025.11.05.23.47.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 05 Nov 2025 23:47: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: e4f8b134-bae4-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762415270; x=1763020070; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ink/ZD5j4OM8DF6/xe+V6qGAlsfqYeTy8FxN7XWmuHU=;
        b=Ujd/QF5zoaTADszd2xbjEUN22DRjo4JOwA9zu8YNEtD7iJJMm0efphuC4o/DCLdbuN
         6e8xldfkzX4xqxxjQl8KhHJSzd90XYLr0AcoU+TuJoCNjmw7aW3tU5n74gy9gF+gB9GJ
         2dzRLVg+h14nzsV5lkG41vBJSaB5ClkUFzzOi6S7eEN+sKZOcs+f9CEhO3YU10huscXy
         4VcMF/dfmCQAIo+929l+7cY22J/dk8xtD07EeNUka77YC6zkeL3AbSRDIr3yV59KPYfd
         10NKC4DjZDYp27pgMMEZ74BMfUp/Exl2qc3jWpWfIVilKuaVeSoMToSiiq4HoyUrUjb0
         BmHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762415270; x=1763020070;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ink/ZD5j4OM8DF6/xe+V6qGAlsfqYeTy8FxN7XWmuHU=;
        b=sGxUudEhmFhfukrsvOJWS4y2MsYJg8Lopm0lQCtraMKgfeqbI+5766CWNsUH4N87FR
         Sx0SwgQHcmF628R20RBxmAwzZQVZDMcmNJ+Gj3t2wDdv3eunXbiokF9A0hSBpEoXqvvg
         qEBKSu9znLrwEHGSWHXDTTuiXn4jkQEUJ28OsFxl5JF6IqZNjx7AYPCdlg1oAr5MdMI8
         N5QO9ZlTHibUIsoiMFwVLNdyxSgV4Ggh3tPDm2aD5HcKTbWp4V7+AXBFIpaX8TcEKa3j
         xO9oZ4Z6vZUF/fo6CYShTYL0xJKZHTCPpAILhbSnsf/N7Qe67pGWg+Jwsy8sAu175bzg
         CRQQ==
X-Forwarded-Encrypted: i=1; AJvYcCX7yAcS//pczZYo9gbICOY/+frD0bkZ2GHZRLkVZCXAJyAyDK5Z+HWxWNCvpb8769BWIhzcN0IXpgA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyIsZeIyMODFRpB+SwIwn9Ee5URmA7ielkVTUMGBGI2tyST9ieC
	cDi6GyVBmUSN3JRlSvMNRbD5u9JlU3l/WbG5O1PgWkZHCMmyWmOUnzUx0XeGbRmBwQ==
X-Gm-Gg: ASbGncsXrgzugYVBiVABv7Sj1DekH4jgENPphQmaSEdZydndOeBe2bdCUo38/Tvxkfs
	gVQrAMhEo1Klr9/ZNymKTvhMUJK/zpq1q/mBqI7l8Iz3oK0uvXh20wDrIrTbU3+FoaNmoJy33lA
	Ho/x8kJg/xySC1NIWhtjGYa+RtdtCSWLD45w3u4QELtSDng0huhG+DnSxQUiGYzHhGw1K/XVqD9
	ZCFO8OZiYHIl37ssG3v4ji2360rRoKWI6T9UAGeqDctK4rCmyGA096aTOq52tvEirJVivTISVuR
	wpGuo5NhXrjcvBzHu6extRQ9j2tejVSONacVfgimKo+VfMgIdmfLrvu5O3uo11JS87FqEAOQ6Zi
	njZEVI9BL8Lje2eoUfqzwwD1SxlX39Hw7Qk4EQ3GApg3gzIE7Z9ne55vRC3MqsQ0cvGHDjhfLlN
	FsYTPPDZKhIvNd/NO5Oo7xX/BKmHin7nkMOG5bpSaVYQQc6hxtoRIX47Z6J8x0agX7EGLlBB6Ai
	1FmVMjEmQ==
X-Google-Smtp-Source: AGHT+IE36vDZQaBorxVHg3UkIMBTExwdFwGhJUImNDuYnIRUKBGY0CNHzfj5WmfG8w7ZS8zHD3ReTg==
X-Received: by 2002:a17:906:478a:b0:b71:d701:cac2 with SMTP id a640c23a62f3a-b726560f2c9mr604368666b.50.1762415269879;
        Wed, 05 Nov 2025 23:47:49 -0800 (PST)
Message-ID: <43c10d2e-47c4-4571-8495-5106b6b5ca79@suse.com>
Date: Thu, 6 Nov 2025 08:47:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] domain: adjust soft-reset arch dependency
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Penny Zheng <Penny.Zheng@amd.com>,
 Christopher Clark <christopher.w.clark@gmail.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, milan_djokic@epam.com,
 Sergiy Kibrik <sergiy_kibrik@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <c9c8c9c6-a155-4986-bf77-5766cdcd6024@suse.com>
 <40609db8-ea7d-4866-b7b2-d9647c64d512@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: <40609db8-ea7d-4866-b7b2-d9647c64d512@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.10.2025 14:08, Grygorii Strashko wrote:
> Hi Jan,
> 
> On 30.10.25 14:10, Jan Beulich wrote:
>> Arm's arch_domain_soft_reset() returning -ENOSYS is quite unhelpful: This
>> way a domain will be crashed if a tool stack mistakenly invokes
>> XEN_DOMCTL_soft_reset on it. Instead the tool stack should be told of its
>> mistake.
>>
>> Introduce HAS_SOFT_RESET, implied only by x86. "imply" rather than
>> "select" such that HAS_SOFT_RESET can later gain a dependency on
>> MGMT_HYPERCALLS. That way HAS_SOFT_RESET will go off when
>> MGMT_HYPERCALLS is off.
>>
>> Check the new setting early in domctl handling, and compile out the thus
>> dead (when HAS_SOFT_RESET=n) domain_soft_reset() as well as its dedicated
>> helpers.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>
> 
> Thank you for your patch.
> 
> Reviewed-by: Grygorii Strashko <grygorii_strashko@epam.com>

Thanks.

> But one question - soft_reset is applicable for domain, so wouldn't it
> be better to note that in Kconfig option name:
> 
>    HAS_DOMAIN_SOFT_RESET

I thought that "soft reset" is (going to remain) pretty unambiguous without the
"domain". If (in particular) other REST maintainers think differently, I'm open
to change the name. Generally my aim is to prefer reasonably short names for
variables and alike, as long as no ambiguity arises.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 08:14:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 08:14:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156540.1485592 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGv8X-0007ts-JQ; Thu, 06 Nov 2025 08:14:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156540.1485592; Thu, 06 Nov 2025 08:14:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGv8X-0007tl-Fi; Thu, 06 Nov 2025 08:14:29 +0000
Received: by outflank-mailman (input) for mailman id 1156540;
 Thu, 06 Nov 2025 08: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGv8W-0007tf-Ot
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 08:14:28 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9c65f219-bae8-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 09:14:26 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b728a43e410so111959666b.1
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 00:14: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
 a640c23a62f3a-b72896c3b6dsm151331966b.65.2025.11.06.00.14.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 00:14: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: 9c65f219-bae8-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762416866; x=1763021666; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cD9NbccOoXX2KeZ3wEd1+V0/gZs08Jq65CbAK1AlYVE=;
        b=CBvJzd2rTag/rT2UKHP3JqyJOjYJyBUql2ps8IZUqRjFZO3VBR1KlMBswgpA/6e0rP
         9ii8Pc81eIX5AYZNKX3GgoiLTX1U5csjTIr9SFGInyma610HMEkyJjqoUTu127MKFN7q
         pYhecu3FGWqN3FtZLSyU2oiVAFWJbbh0va9qCM0VNl3gCidVjPKN9jboWbM64PqWR2Iv
         xoqzkh2oJ19wmlOd5fYdIw6pM6WDrHlXcZEKDWz3dh7DCSBS30Q8E6f2Caj+mvXsZBDF
         e4ciQQY0Q7jy061KXZls09ltsNyMYd3Mhq1SLdoFfEaZojdJp2VPyZvy4g9p8NvLeL5N
         5Fgw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762416866; x=1763021666;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cD9NbccOoXX2KeZ3wEd1+V0/gZs08Jq65CbAK1AlYVE=;
        b=Sc1+3BWvN2W7sSXrb8c8FiBwNoQvLt80HeahrvEJChF8+VId7JMmjGUCoemxfocGoe
         0JboGVAOs2N4cIAkyG8gjYao3B1p1yRH6IF2bFQB9Ad+NN3+W02WeqZchZpOXz3/y8y3
         MlV6BTMN/ZFwepxHyLByZnN+cBWYEPsHf3/XX2izD0qQv9ar7uf7Musgv4MNLBHi7g4M
         86nzEPoN1H/GP/Ir14s9pDf8cbvHUMP8HYG9G0jAiwIx9GvmLAK6Qi6NoQcbrSo1yVbY
         TWnsNm08bOBYtxLQaczwr0nOqciGXgD0FvUfRBsswqUU7eYJkbGJ++IN6EzowemxvZ1J
         PWvA==
X-Forwarded-Encrypted: i=1; AJvYcCVBic3Wq8hnxLmDIjO0xUHRhhTAIdEhprmFq/JsKvPibjdpk0B/cr2DO93cwC4fB3/5iBTM0FxjzQI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxcqdI3e9vs4Y2lkVE4fXDyiJndcm/+gKnHUn1ouHrFa+Ec8yqS
	VDildSAZDG4BSht5qdYXxzzkZaO3dv0fNrRC/IndYh/OYQyHM7Spsc09yyK4CVtpZA==
X-Gm-Gg: ASbGncvQf4mpxrZ57JzL17YnR6rpRFNwZJep+w0l5eeo9ZJ/hMcs4tAT3dBlMYC0iyh
	4oQpEqFj2WN6gMBdvKmepTyP8mZV/E9rUiSgAyBi2GVh/UOQcqx/5zyeRIg2XuE/48Dx+3QWk8z
	oOW/dB/QfXMMpR34PBEyQ+7FfPSX+a2g4V68yNlGKoTCCHXPz7hwKiwd1wk0s95VZYKUbx2syS1
	3wqyV55/cI1BTRMotUTYJSGNV5qzijIk0lQQPUg6fnWiHdHmpFJeSsKoHHxa55sgeyK8HvCeGGC
	ecGNErDsP1+q1m9fQOmi19CMtdCvRNu4/Xnyw36I+T7LHoXTQKvM53P7EmSjzaPNy71OPdaEH1i
	OGeOFCm+159QUAJyGJTdhPKB7BBYK09WlpkeeITV51AGMrIG7AFzrI5tzPvc/PRWfEn7oyy8eYW
	/aiCzKvP+5qephJ1G6/b8mw7tR10EKbxGa8KwuBG4BCi4hJVbdxCYMKNHcGjXe53q5/BLuH9M=
X-Google-Smtp-Source: AGHT+IEu8ryeKBkW8025Qy6URAFALeTJqE/qvXT9jXbbp8UACBRYH9EhwwSdKrO/XfaUGsVC/BBZLw==
X-Received: by 2002:a17:907:868f:b0:b57:2d81:41f with SMTP id a640c23a62f3a-b72654e25acmr667786466b.40.1762416866142;
        Thu, 06 Nov 2025 00:14:26 -0800 (PST)
Message-ID: <2bfd6ba0-e793-4f19-a7c2-19ff5aee0fe0@suse.com>
Date: Thu, 6 Nov 2025 09:14:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH for-4.22 v2 2/3] x86/platform: Expose DTS sensors 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>,
 xen-devel@lists.xenproject.org
References: <cover.1761752801.git.teddy.astie@vates.tech>
 <1001287258cf9652c749c66c6565478085a8657c.1761752801.git.teddy.astie@vates.tech>
 <22e53531-73e4-40e9-a45e-2c5f59852ce4@suse.com>
 <ed81804d-16db-4fce-88b6-12dc165e73a0@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: <ed81804d-16db-4fce-88b6-12dc165e73a0@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03.11.2025 15:30, Teddy Astie wrote:
> Le 30/10/2025 Ã  14:54, Jan Beulich a Ã©critÂ :
>> On 29.10.2025 16:59, Teddy Astie wrote:
>> I'd also like to note that unlike the two THERM_STATUS, MSR_TEMPERATURE_TARGET
>> (as per the absence if an IA32 infix in the SDM) isn't an architectural MSR,
>> and hence I'm not entirely convinced we can "blindly" expose it. (Interestingly
>> in Linux code there is an IA32 infix.)
> 
> We only perform rdmsr_safe on this MSR, so I don't think there is much 
> problem with it as I don't expect Intel to reuse this MSR number for 
> something else (at worst, it is going to not be implemented and would 
> gracefully fail).
> 
> Some parts of this MSR slightly change, but the one (tjmax) that is 
> interesting in here is consistent across the architectures.

Perhaps it's indeed okay here, but the aspect needs calling out / justifying in
the description.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 08:17:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 08:17:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156551.1485603 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGvBi-00005a-1b; Thu, 06 Nov 2025 08:17:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156551.1485603; Thu, 06 Nov 2025 08:17: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 1vGvBh-00005S-TS; Thu, 06 Nov 2025 08:17:45 +0000
Received: by outflank-mailman (input) for mailman id 1156551;
 Thu, 06 Nov 2025 08:17: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGvBh-00005M-7K
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 08:17:45 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11718856-bae9-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 09:17:43 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b714b1290aeso51990066b.2
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 00:17: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
 a640c23a62f3a-b72893cc6c5sm153641466b.31.2025.11.06.00.17.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 00:17: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: 11718856-bae9-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762417063; x=1763021863; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=71SB90NfEIoCPmTxGQuDlOuROF3EtSSAcP3iCmm2lwk=;
        b=DdUaDwk+5bNXsB/v4JpzYLG1/oPERLjr1910i5CgDRxROtF3bACFvx6K6BG2ZCcMJL
         F0iFrEINS+cKqJUCxJkac0H6QrjB01QJWRTiHbzt2cLGbS8h6eeZOKKghSPA/3OkPy0V
         RgRBbwYjrtmWxfeb1oz4AlRmMLKgF36nnM9pIBPIpAcq+yMge8t2BZSjJJk+w5B5OaPN
         oEr1sLQgvoY2j7wu/S0iYQRcYowhrOtVcOFl0fCYXSvm2rXv5VEYNAEoXZqBFQYHuyOW
         EfdQmIdNAxUuvzxIyfSSQaldR3oCiFZRITpJ6slSkQ6/kn/Usv0bHAdMYKT/Na3e0K68
         b6eQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762417063; x=1763021863;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=71SB90NfEIoCPmTxGQuDlOuROF3EtSSAcP3iCmm2lwk=;
        b=DeEwkQLQtnSkuzvdZIhnhOV8s20oenK0iry9esjsZKRADZcRt07IjgTyxAcvzjODkH
         BNj1MrV9MHOc8SgW/pCep36C0QeZ/nEWbhNEls1zguHKrrlWpyRDlDMucTSXJgSPz5IZ
         qGXJiNtug58b/qBhfPoMtpEudQQPVjXKby/kxGpvtXI86Wrua25gnixtr0Q6857sT0bo
         ksb1BguonVOZCCwlnf/xo7YpzsnnbvYBezbz9zw+fhMnf4zBxpPHFQNRqVRdLO4UrzFO
         YqZc1EQfMBBsR7PMBvj4q0jDE4a8HO4zCabn9p1CwegwV4bLdvELa1UchK+03QUU5UzD
         G0xg==
X-Forwarded-Encrypted: i=1; AJvYcCUPlA/xAj9N3JqvG90suVtA1365o0x3a/Fc4IUQt52zFC8tw3I6uIYsqi3yTraTN56Z2wySRs3HoHg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwXzGss55hErg4OEIuloulwnjm9aXUdELDN4fIonvALBrLjJ2rL
	ztFWuVnsOrLQwiaz4sTyCLTz4Ebp8oUiZW1uwlw7bVDxV5f3w4r9FRjOZOfHc4M8nQ==
X-Gm-Gg: ASbGncsYMjyaz0brUtxz/v95nRD5MgDzrb8gSB8iuOdIOmMrZCAZKwCcDb/z+OanmIU
	ivi4Opnbm6hTYhRqyusugV3kMKIvGOaORfRuYGbdkzRxUCylLYTZOBBz9IUK4i5hw6UGU0Ib7Zj
	n6yRtpQlXmbiQQJuq7DqCyF9cVpF/lCTsOWNm5STVoRySPYnCcTzx12ZCcVlXSPN4Vjjrjaym1P
	T75vFVaQeOCuWeZfX+zxkZJTMc9vXP53aumUwf04gmCBoABkzMxah8en2ZcOCBDtzfAG2KerhP3
	+jBUabca0dalvUTbQkpre49eSHqShJrHkaBOJsIVdhRSQt9tRY9fkUYjArhoYjMBpgBnBHPc3TM
	3LvUaaOQ+QciU1i9WIH4pBAVNsywbp9FGSr54KwaIsfsNmx3EY9gn8LkoiI4KHwjenqdzWCA9nj
	nEgLZ/+DR4X+l1bY5yFOrcDsQ2kkQ56OfmjRK0/XdB1VDaNYJfPAT0eZiqsNtw
X-Google-Smtp-Source: AGHT+IHerp5AOUCSGsxUXcidAvHeqCzoD3J0SNoABGlouC6QcO6aZ7TdxCWNb2F7zKT+8ZxmM7mC9A==
X-Received: by 2002:a17:907:6096:b0:b6d:73f8:3168 with SMTP id a640c23a62f3a-b7265155843mr765808366b.3.1762417062676;
        Thu, 06 Nov 2025 00:17:42 -0800 (PST)
Message-ID: <d6efc21d-9943-4130-bad6-bee36149dbd4@suse.com>
Date: Thu, 6 Nov 2025 09:17:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH for-4.22] x86/hvm: Introduce force_x2apic flag
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <d498a50f6187b362ac5da3c6a7a7c348f35dc4b3.1761761288.git.teddy.astie@vates.tech>
 <fa9a7720-5a90-41bd-8ebb-5fc5d4065d38@suse.com>
 <5f62bd09-5e3f-4db7-901e-eb8c8a3763f5@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: <5f62bd09-5e3f-4db7-901e-eb8c8a3763f5@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31.10.2025 15:33, Teddy Astie wrote:
> Le 30/10/2025 Ã  08:56, Jan Beulich a Ã©critÂ :
>> On 29.10.2025 19:26, Teddy Astie wrote:
>>> --- a/xen/arch/x86/hvm/vlapic.c
>>> +++ b/xen/arch/x86/hvm/vlapic.c
>>> @@ -1116,6 +1116,20 @@ int guest_wrmsr_apic_base(struct vcpu *v, uint64_t val)
>>>       if ( !has_vlapic(v->domain) )
>>>           return X86EMUL_EXCEPTION;
>>>   
>>> +    if ( has_force_x2apic(v->domain) )
>>> +    {
>>> +        /*
>>> +        * We implement the same semantics as MSR_IA32_XAPIC_DISABLE_STATUS:
>>> +        * LEGACY_XAPIC_DISABLED which rejects any attempt at clearing
>>> +        * IA32_APIC_BASE.EXTD, thus forcing the LAPIC in x2APIC mode.
>>> +        */
>>
>> The MSR aspect should be implemented by using the MSR. Beyond that imo our treatment
>> shouldn't be different from that when firmware pre-enables x2APIC: While not
>> advisable, aiui OSes could still switch back to xAPIC mode. At which point the guest
>> config level control may also want calling "pre-enable", not "force".
>>
> 
> One advantage of forcing x2APIC enabled is that it simplifies the 
> support for LAPIC IDs over 255.
> 
> While that could be a alternative to just pre-enable x2apic (in cases we 
> don't want the OS to use xAPIC because it is there), things still gets 
> tricky for supporting more vCPUs. We would need to clarify the behavior 
> of enabling xAPIC on a vCPU that has LAPIC_ID > 254, Intel and AMD 
> specification don't define anything aside for Intel :
>> If a BIOS transfers control to OS in xAPIC mode, then the BIOS must ensure that only logical processors with
>> CPUID.0BH.EDX value less than 255 are enabled.

Well, this falls into the much wider topic of making more than 128 vCPU-s
available for HVM / PVH, doesn't it?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 08:40:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 08:40:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156569.1485612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGvX3-00037V-TM; Thu, 06 Nov 2025 08:39:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156569.1485612; Thu, 06 Nov 2025 08: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 1vGvX3-00037O-Ol; Thu, 06 Nov 2025 08:39:49 +0000
Received: by outflank-mailman (input) for mailman id 1156569;
 Thu, 06 Nov 2025 08: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGvX2-00037I-EA
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 08:39:48 +0000
Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com
 [2a00:1450:4864:20::531])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 26883456-baec-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 09:39:47 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-640860f97b5so972878a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 00:39: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
 a640c23a62f3a-b72893cc6c5sm157537566b.31.2025.11.06.00.39.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 00:39: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: 26883456-baec-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762418386; x=1763023186; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=a3lKVaj5tvsPyTxl+xisc7FX2U8Vyxf/5JVA/vaGjmc=;
        b=T1GfG+jWSNqXS5M1SIKJAd827CSKCRcKHWiEWGty9sSSRitNklfxFVPr0Mzoe3Dwdj
         rRob7WsvDchE86RwifVQjbdawefzI8zcirAMsLkph8sX+07TigtspTbOlHL55Qe0DZ2f
         E4USOGMk0EMNH6LeQ4STBbdWEdi2z46FHUxHlQQ7r2Q8zw1RKb29YniMMNrKXp9t+2hC
         qvJ7fXBcc8HS2UgqjhkVz/kbvUOvMwNIst+ASf9aC8GurFqD/T15CphTiS8qqFbESG65
         G3WXg/5ysDTnfGNJ5pW+i2da2Ub6pIon0ve5KMMqVisZWrAuuEiUWKrWgw7qqgZi6FOJ
         Hqcw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762418386; x=1763023186;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=a3lKVaj5tvsPyTxl+xisc7FX2U8Vyxf/5JVA/vaGjmc=;
        b=Tq7gF9ZsDIOOQvte9gu+8RGNTFTbhomu4ZkM3BHy1gJcOZGyAvyg/7j3OUufKkI3Yr
         UB7bujyDrv4X114YErXrgSlQbEL1JGEI9v4rMmSlYG09gBzjgOpWm6PRCmlfZCZStxtA
         peWSIcOWOD+Hn+m3UQvZPBbVoJ8zNRRuAlqkzhYH42s9M1CpSkaNXLRO0NEoMak0ThbC
         bcpbwy4eiIyNeSSK3zAblNwo0BhZ7cencqT1GRPhzQPqRTOuKvEMNAXKrBKo5tz75uTS
         OIOMaOaAzb48Uueh4XSu2arH30a3NHC7WSU03ImuDn+pfCPVWNMS/nkTI5NMlKlWT7cg
         weZw==
X-Gm-Message-State: AOJu0YxR4ggB+Ho9OurXuMJZbPD6c3V2czGqXqK6BsLgiZ5YWC2Kgdfy
	uuUsMMIeQiLYQOnzTM1gPuZBgTAQ7UYeCYULEiyH0iEehrLQNmtdXCcx3cb4LK2uoQ==
X-Gm-Gg: ASbGncvj2S/ysiescKFRX+GtP1MqQmuO6+9QSz+c1zXyuX2gUENJ6suHM1ggASkaPKM
	xYk3TagX8I/zN5HuU8Z5u3JbN1wIldpvB+MEZ9ekZgSvUkPvKTdduKTo+b0GFURpUP1ApQQ58UY
	nXOgdQOVwcAjP+uWSBW3qkjwy7eJiDqPdYe3HdjM2kFPZ2nUnoeBB/CSuLv/DyIbgUebmk54+BL
	jrf6assV+OOIN9slOC25zYG+X9TtTU5yhnHHZPjtHsj6/YT6uPutEVaM1FGWlSghEoJT7hUux95
	QGh6VNQ3y/iEVusR+JGvj9AXq/PVdDhzEZhd8/i6v4Wi4iTj6VfFDqx/+y+pODnQwdAn9x40dey
	z/kFAEuyIk1YwG+5x4g5n7PJD4eRoU+oxgtSomG448omIf49TfAiMnOLStnDPzrAve1IMjaAU8b
	cGtQ/Z7YI/llLHdYzwWG8W0MHE20g1rQcHddziZYK5UKSjBxHX6cqox22PEiShRqCEVH9yZmo=
X-Google-Smtp-Source: AGHT+IH1nhEqv+xWaaR39hvdJBYeEueIxRa8v0YeEhMtvosnBLuik+AI7j4VK6KczUFc2CyARGr3Ag==
X-Received: by 2002:a17:907:948c:b0:b70:df0d:e2f1 with SMTP id a640c23a62f3a-b72653ec470mr674225766b.28.1762418386506;
        Thu, 06 Nov 2025 00:39:46 -0800 (PST)
Message-ID: <37ac4dce-e61c-46a7-9e55-410fbda843e8@suse.com>
Date: Thu, 6 Nov 2025 09:39:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 for-4.21 0/2] x86/AMD: deal with RDSEED issues
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>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <272093dc-c97c-434a-9977-ad1c26e7e229@suse.com>
 <aQSN3MKxAa_cltld@Mac.lan> <68e28e41-e835-4985-80a3-6a99b3d7dc3e@suse.com>
 <aQSVTjh5xiib-u5D@Mac.lan> <b7293f69-d9f8-4669-a1fd-eaa468445d68@suse.com>
 <aQSoE8ugCKdNWy9C@Mac.lan> <8c7881d9-5959-41b5-865d-d61199ac7a44@suse.com>
 <aQS2arOWxEiHq1sj@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: <aQS2arOWxEiHq1sj@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31.10.2025 14:15, Roger Pau MonnÃ© wrote:
> On Fri, Oct 31, 2025 at 01:34:55PM +0100, Jan Beulich wrote:
>> On 31.10.2025 13:14, Roger Pau MonnÃ© wrote:
>>> On Fri, Oct 31, 2025 at 12:47:51PM +0100, Jan Beulich wrote:
>>>> On 31.10.2025 11:54, Roger Pau MonnÃ© wrote:
>>>>> On Fri, Oct 31, 2025 at 11:29:44AM +0100, Jan Beulich wrote:
>>>>>> On 31.10.2025 11:22, Roger Pau MonnÃ© wrote:
>>>>>>> On Tue, Oct 28, 2025 at 04:32:17PM +0100, Jan Beulich wrote:
>>>>>>>> Both patches also want 'x86/CPU: extend is_forced_cpu_cap()'s "reach"' in
>>>>>>>> place.
>>>>>>>>
>>>>>>>> 1: disable RDSEED on Fam17 model 47 stepping 0
>>>>>>>> 2: disable RDSEED on most of Zen5
>>>>>>>
>>>>>>> For both patches: don't we need to set the feature in the max policy
>>>>>>> to allow for incoming migrations of guests that have already seen the
>>>>>>> feature?
>>>>>>
>>>>>> No, such guests should not run on affected hosts (unless overrides are in place),
>>>>>> or else they'd face sudden malfunction of RDSEED. If an override was in place on
>>>>>> the source host, an override will also need to be put in place on the destination
>>>>>> one.
>>>>>
>>>>> But they may be malfunctioning before already, if started on a
>>>>> vulnerable hosts without this fix and having seen RDSEED?
>>>>
>>>> Yes. But there could also be ones coming from good hosts. Imo ...
>>>>
>>>>> IMO after this fix is applied you should do pool leveling, at which
>>>>> point RDSEED shouldn't be advertised anymore.  Having the feature in
>>>>> the max policy allows to evacuate running guests while updating the
>>>>> pool.  Otherwise those existing guests would be stuck to run on
>>>>> non-updated hosts.
>>>>
>>>> ... we need to err on the side of caution.
>>>
>>> While I understand your concerns, this would cause failures in the
>>> upgrade and migration model used by both XCP-ng and XenServer at
>>> least, as it could prevent eviction of running VMs to updated hosts.
>>>
>>> At a minimum we would need an option to allow the feature to be set on
>>> the max policy.
>>
>> That's where the 3rd patch comes into play. "cpuid=rdseed" is the respective
>> override. Just that it doesn't work correctly without that further patch.
> 
> Won't using "cpuid=rdseed" in the Xen command line result in RDSEED
> getting exposed in the default policy also, which we want to avoid?
> 
> Or am I getting confused on where "cpuid=rdseed" should be used?

No, there's no way here to get max but not default.

>>>  Overall I think safety of migration (in this specific
>>> regard) should be enforced by the toolstack (or orchestration layer),
>>> rather than the hypervisor itself.  The hypervisor can reject
>>> incompatible policies, but should leave the rest of the decisions to
>>> higher layers as it doesn't have enough knowledge.
>>
>> But without rendering guests vulnerable behind the admin's back.
> 
> I think that's part of the logic that should be implemented by the
> orchestration layer, simply because it has all the data to make an
> informed decision.  IMO it won't be behind the admin's back, or else
> it's a bug in the higher layer toolstack.

I fear I simply don't see aspects like this to be exposed to a toolstack.
We didn't for RDRAND.

> Not putting rdseed in the max policy completely blocks the upgrade
> path, even when a toolstack is possibly making the right informed
> decisions.
> 
> I guess I need to see that 3rd patch.

https://lists.xen.org/archives/html/xen-devel/2025-08/msg00113.html

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 08:49:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 08:49:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156583.1485621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGvgh-0004pI-NH; Thu, 06 Nov 2025 08:49:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156583.1485621; Thu, 06 Nov 2025 08:49: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 1vGvgh-0004pB-KP; Thu, 06 Nov 2025 08:49:47 +0000
Received: by outflank-mailman (input) for mailman id 1156583;
 Thu, 06 Nov 2025 08:49: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGvgf-0004p5-OT
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 08:49:45 +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 89bfd3cd-baed-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 09:49:43 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-b70fb7b531cso121761366b.2
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 00:49: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
 a640c23a62f3a-b7289644b2esm157194666b.35.2025.11.06.00.49.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 00:49: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: 89bfd3cd-baed-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762418982; x=1763023782; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Di6OuTu7c3EdvvRMPVN61oa5ck866SYuM8BmHC6VLWo=;
        b=avD3YYr1Sdlvc70JyCy9yXpYm4ehcG2mULMHyTo2UNsDzy/ttSxixR6we4phHmSxMR
         zw3E5Sgp4efueGqHr1ItrV125gA3dBw6dY/JM0B+Jc4tJ56tuLKNgR7yaidCPWZyE0Hf
         lHyQva0TlcsyZAOA/BypRxl40stPnv3BX/YDCrL+BfAEDTzESgEzciEN/KBJ3BNbdmFS
         NlLl7vYsXiw/WBSxd78GM5/89UQ8UDxL6tI4pVchNO/hXKxk3maTPjgPmS9e/g7wef8U
         lopb/mXZj3Ii3Ni3kkckB0bgJO3fohDrr59aeIutACgHgeuUfd6ul+OmO7d5aZ10WzfB
         u6Ow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762418982; x=1763023782;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Di6OuTu7c3EdvvRMPVN61oa5ck866SYuM8BmHC6VLWo=;
        b=OuyF7z3ooG0oNIqRBe5gwD4vzYeMQtff9FSErkYbgaO74h/pN+bOA3Bcc5EF1UScV/
         UPfoUELt23XptfFcNsmAwA3qfv0F9BVHm+Cb8mOfMnsNR7KBgpUmJmABSRkQcFJQlDnd
         BdEu9SHuyIRQ7J0tbJghn2eRS1rYlgYwdGtophE8CgXyvrFlyxlI8t0Auoz9W+m/NbLf
         M4a1zF14ROvWZy4R+JHWb9hZIdGxMEHxsUmypdkH9jQl4IETZ576xV749I10Fp293j5W
         Cf8rLdCzQAg1hqx8ynb4QP16FvMp/GuiHbGxAmgcUBqeGFprlEtnv8H14Kd3raBPAphS
         UXzQ==
X-Forwarded-Encrypted: i=1; AJvYcCVJAByM49OTW+KOaymZbXjVwCy2d69JqkkS5pCz+dzMMZ+Pc+je6wkcWdqu2fBRo1MQnomoZaNYaj4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzvXXxFVE4NaCNUYR8QxKcd9wAu8hvLwQDFmywuN6ON79DWkm4I
	gkddLScCKJu4ZzBWNXvfnK5BQDipWxbWAKQ8zjjakcJzz4xYMXKjUtwcOfgGDChvcONJwzx7rdI
	3ceM=
X-Gm-Gg: ASbGnctmqqLOqnd2NsU+5DWM5s5+mQsKSfWR3vIWrvOwIrLXISUZuUrjgaoRzcaws9T
	tetnLVwlL9auKn0wT1eGIZ/buMGdqtOYlEC402oGECQq9E6aIBX76OTOo6X3ANVREJWODC9PRk1
	hR138ihomjo0CkNdEHvuHostWe8f+CdMzd9jyAXRmC8bRcpyoNvAIquNqBn9n4b/NuminCo5NmD
	05HcmvNQ2PSc0yuGm5Z7OZEkT63Y4FebvB7YT9FL8VHhXfEVRjs6mbfF58HpLk6Pr6BF+HCtjTe
	eEUDj0IRHjr834zBw5j7+XNS+nFDJkLQ9HEO7Kga9jXHvF7hlmqQ2tNIwoT75zKdlURMIHm2IVl
	5TKM0kwzAbCMpmFpT2XmtW+gwmopyxlsS2d3I4SoFftwx0CDJiJ6clZwD4SW+6/k1sHsgCN0lS7
	nVbRehDo5MFbkSkHYVAOUR4/cG6Bl6IqLx90CKP6Io+MD1Iprb4NsQu6OtAYHo
X-Google-Smtp-Source: AGHT+IEHEpwmeFeJooVcBxg1Jh5dYsbXf28nVbsoGM0dX/EejovTsCVeOJtEvqDd1FFVwoK8blIqBQ==
X-Received: by 2002:a17:907:868f:b0:b57:2d81:41f with SMTP id a640c23a62f3a-b72654e25acmr679240966b.40.1762418982409;
        Thu, 06 Nov 2025 00:49:42 -0800 (PST)
Message-ID: <bbb559ee-2228-4025-98ac-96fcc5045e3e@suse.com>
Date: Thu, 6 Nov 2025 09:49:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 for-4.21 0/2] x86/AMD: deal with RDSEED issues
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <272093dc-c97c-434a-9977-ad1c26e7e229@suse.com>
 <211906a8-7804-42c6-805c-572b4f673322@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: <211906a8-7804-42c6-805c-572b4f673322@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03.11.2025 15:10, Andrew Cooper wrote:
> On 28/10/2025 3:32 pm, Jan Beulich wrote:
>> Both patches also want 'x86/CPU: extend is_forced_cpu_cap()'s "reach"' in
>> place.
>>
>> 1: disable RDSEED on Fam17 model 47 stepping 0
>> 2: disable RDSEED on most of Zen5
> 
> We have two existing cases for RDRAND issues in Xen:
> 
> 1) IvyBridge SRBDS speculative vulnerability.Â  Here, the RNG is good,
> but use of the RDRAND instruction can allow another entity on the system
> to observe the random number.Â  RDRAND is off by default, but can be
> opted in to.
> 
> 2) AMD Fam15/16h Laptop.Â  Here, the RNG is fine, except after S3 on one
> single OEM.Â  Use of RDRAND can be activated on the command line, but
> there's no ability for individual VMs to opt in.Â  Being a laptop,
> migration isn't a major concern.
> 
> 
> For this seres about RDSEED, we've got:
> 
> 1) Cyan Skillfish, the PlayStation 5 CPU but also in one crypto-mining
> rig.Â  Here, RDSEED is deterministically broken and not getting a fix.
> 
> The chances of Xen running on these systems is almost 0.Â  We should turn
> off RDSEED and be done with it; it's not interesting in the slightest to
> be able to turn back on.

I disagree to some degree, but the code to allow re-enabling can certainly
be moved to the other patch. I don't view it as wrong to have it in the 1st
patch, though.

> 2) Zen5.Â  Here, RDSEED gives a higher-than-expected rate of 0's for only
> the 32bit and 16bit forms; the 64bit form is unaffected.
> 
> There is microcode to fix it, on server at least.Â  Firmware fixes for
> client are rather further away.Â  64bit OSes are likely fine (using the
> 64bit instruction form).Â  Some Linux devs think that Linux would be safe
> even using the 32bit form, if it really only has a 10% zeroes rate.

10% is a lot. IOW I find this dubious.

> There is certainly a risk that software uses the 32b/16b forms, and not
> mix it properly with other entropy, but the common case these days (64b)
> works just fine.Â  This means that blanket-disabling does more harm than
> good.

That's guesswork. I don't see why 64-bit OSes should be expected to prefer
the 64-bit form over the 32-bit one. In fact, if one only needs 32 bits of
entropy, why would one even try to get 64? That's wasting a potentially
precious resource.

Furthermore mind me mentioning (again) that 32-bit OSes (including 32-bit
environments that may be active during boot) have no way of using the 64-
bit form?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 08:55:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 08:55:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156595.1485631 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGvlk-0006L1-9P; Thu, 06 Nov 2025 08:55:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156595.1485631; Thu, 06 Nov 2025 08:55:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGvlk-0006Ku-6a; Thu, 06 Nov 2025 08:55:00 +0000
Received: by outflank-mailman (input) for mailman id 1156595;
 Thu, 06 Nov 2025 08:54:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGvlj-0006Ko-QU
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 08:54:59 +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 45f2b773-baee-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 09:54:58 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-6407e617ad4so1395434a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 00:54: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
 4fb4d7f45d1cf-6411f862cbesm1277730a12.31.2025.11.06.00.54.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 00:54: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: 45f2b773-baee-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762419298; x=1763024098; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8GB7Q3yPYBYZFTUqXIfa1+h7W5RwdViYfMyYybWfRd4=;
        b=BACcCh3PCYy67U+LjHCf+rNJjiLy7xVGqA6CVmzUh4M24iFhaCMsjbI3RyKlfmVQMp
         NA1D2Ls89WBPkR+mkYHeOJ6egyG4zxOqY51b5jR3R5i7b8wFs1PTuhD2PPmeURvRfPF1
         QWVbz13D7Sqhh7Kaq5TssJfQSoGMudIuOFcRvgwQtSgEnKunITUOkseI7HybmpVnysod
         P9RyZs7P2mmV5NxKx2rtk+4JVRsK4GLfKifY6GjAb6+QjC2g39UI3p6fDSAFHbxSP9vF
         w9XTakQHn3imvUuq1Idrdltq5UuTa1OeLvt/sXri0dTaGWoWAtIsgtLhN4yxr6qSgFd9
         n6vw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762419298; x=1763024098;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8GB7Q3yPYBYZFTUqXIfa1+h7W5RwdViYfMyYybWfRd4=;
        b=Ztptw9HIVUIANjQJprDTNUNOKEJYC0dJ5lbAfkXaEX5prZ50ZQ69sz5v/MDusf7Wi0
         hJgkNAsoiZPMk170DB3zX1VzHQB7ZqI5+YwUbPKctjn5dpzPbXX/odb3jlLNeXbvGp8P
         jErq2C7dDK0HBm3OyxZQGwklzqZK4RLPN+Gx9MrldqtRH4yhQBTG8872cTlI+nnbFPu6
         YPjrnWM89rW8UW6k4VacNjN+hnuaW1lUw16ulzkQlKZQuou6zd1Viq4tH8qIzwgpnPmc
         sQK7+KZ+YD1Lbt+DpxdVx305S3paAvYB2s2Y8RjShrugmqv4d+0j6/GTEGraejdN2Ppx
         mnkA==
X-Gm-Message-State: AOJu0YwDe95WTxBWd1y8f5nwey+ykJgj+R3NHZVjvpN/We5LeYMAn8cA
	bBC9Wxmcj0Ov4W0BxRsxlp6vUB7Z1ypBSJIT6VlEpohO1nIHesMHKf2XPwIBjxnyoQ==
X-Gm-Gg: ASbGncszb2E01YZMcIY+eG45UIRik354/bDdcjIHdg5eMVQZIiBNF/riHSqEiPpHBiX
	DmOC7f8dgKYjjW1TW7CZO2ubMb/HC5PTYq55kARDzDEH8cd9k1KGCFbXKMujI8QP8IqbqELUZKx
	IbvYKgcdyCTyDUxYHXX6m2puxUg7ezcLmZKMwJgOEJ7mWdikp2zH6wjWvUM2WT462oeH7tQzup/
	A8dyxvGfXi4zTZ1vxXplAZkzQJVPWt5jNjxLljOJ2VZVeADppneqxKGsord0oLrTM938mMQWzZx
	kdI+H6NFVSzqhJa0iZxjGLucLNNVhngFhK/8gLyNgfMRgVWl7n1o+JuAX6VuxdBKKTpvm5/Yv2Q
	DPDqeF8ijtG+8siarWOHRrsu46osUzYAH+uTLySi3lPaD/99TDGdhR3i80daytlG0JfTAatcvHs
	1sMDwcuoIkPIDYPNl0m5a8oLEn5b+yewKJTYqSotegwoCSa0t+R0wKmT/0TG31
X-Google-Smtp-Source: AGHT+IF8kBWgWUmL98zK3sMCtIUQSoSR4izxDZe24fmbEWdmopFOWlkpurW/4S2r0YhEofCUQRqfYw==
X-Received: by 2002:aa7:d1c9:0:b0:640:abb1:5eff with SMTP id 4fb4d7f45d1cf-6411d179a7amr1738469a12.8.1762419298122;
        Thu, 06 Nov 2025 00:54:58 -0800 (PST)
Message-ID: <b9fedf98-a091-40e8-8b54-271f3172d7de@suse.com>
Date: Thu, 6 Nov 2025 09:55:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 for-4.21 0/2] x86/AMD: deal with RDSEED issues
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>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <272093dc-c97c-434a-9977-ad1c26e7e229@suse.com>
 <aQSN3MKxAa_cltld@Mac.lan> <68e28e41-e835-4985-80a3-6a99b3d7dc3e@suse.com>
 <aQSVTjh5xiib-u5D@Mac.lan> <b7293f69-d9f8-4669-a1fd-eaa468445d68@suse.com>
 <aQSoE8ugCKdNWy9C@Mac.lan> <8c7881d9-5959-41b5-865d-d61199ac7a44@suse.com>
 <aQS2arOWxEiHq1sj@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: <aQS2arOWxEiHq1sj@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31.10.2025 14:15, Roger Pau MonnÃ© wrote:
> Not putting rdseed in the max policy completely blocks the upgrade
> path, even when a toolstack is possibly making the right informed
> decisions.

Why would that be? To evacuate guests, one would force-enable RDSEED on
an affected host. After updating of the original host (incl fixed ucode),
migrating back will be fine. The admin will thus be fully aware of where
guests run unsafely, while no un-safety is going to be introduced behind
the back of the admin and/or any guest.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 09:34:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 09:34:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156609.1485642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGwNw-0003CS-4n; Thu, 06 Nov 2025 09:34:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156609.1485642; Thu, 06 Nov 2025 09: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 1vGwNw-0003CL-1b; Thu, 06 Nov 2025 09:34:28 +0000
Received: by outflank-mailman (input) for mailman id 1156609;
 Thu, 06 Nov 2025 09:34: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGwNv-0003CF-4n
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 09:34:27 +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 c8686eb1-baf3-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 10:34:25 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-640b06fa959so1270337a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 01:34: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
 4fb4d7f45d1cf-6411f8142b9sm1362021a12.12.2025.11.06.01.34.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 01:34: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: c8686eb1-baf3-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762421664; x=1763026464; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HRku5kxTqCfdPu2epoIOa9dP21KVQvMo2Ua/2CHnOqo=;
        b=CaFEejlXPG20Yl9DDEhwX/76NhjoaK87u28hUTUv0iZEsegPm7d31daUVjL0JaBRbd
         7mV+z7v3rsrqP9hq7Z5vxBALhp9IUmUQrd6+0r3EJ2OHuToqATRgC9NBE48qJ+CkgbkX
         hG0bDsD/RCDL0BNGLQWXHMT0sr7ZLtDHjXss9d1b9LCwSQNetX3or8h9AjnWS2LOEWH1
         HKmScxhSXH/LvWoH+sCuLOrieZwUl29q+OAjPz2h0qg+OKCM7X5fRDqUzRgOIvIhclkv
         sDyOar6VOdb/c9gsdi39zgITVFphn02fHI4kyC4KQqkLndhw55OZNTCXKV1Zcii7V8/o
         64lw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762421664; x=1763026464;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HRku5kxTqCfdPu2epoIOa9dP21KVQvMo2Ua/2CHnOqo=;
        b=TsxQNNkcCmpveXJQJaEfsvO2lSq7fwK56/3mgH9R7yjknsqwysPmE6tB6eslJMNQ9B
         jsmM+XV68Phz5ijabh9AirCJO+VLQQjGrMrZIzVTipgJrZeOqkbUz2+edFOLAO/xAWJm
         ElkM3JhlDe/vVfK+qJzNrm7f89SN5nOq32M7Cu0we/LxF7gZ+Az8iR6zPknsjlDqArJl
         gCugyCRworxRzLW819lojjTli0ETds3NvXPbNQjyhQGui5jbygCD7K2w/eLO2M9DTKpR
         cOV2tQ1E+XA0T3kJbBtI95WJeD9xo1WRm62xH5pmzXnLpjPwVJlNlCMQyyx6a7SXo8AE
         xXcw==
X-Forwarded-Encrypted: i=1; AJvYcCXtgoo5HQiBVCrT1I3mziOjh/fpv1UhDPP6arHbE5VUg9LtfPaXLHInZZPVRVGRjcInn3g0L2uc+iM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyT0hQCPtIB3m3dot1KeCGQQUsQ0cKJFL0yteSMwL7F7uMW/OUJ
	sKy1X/dPd18n6ewtn0TQPufuvlXInZxIkv9WbL0ChjnFnzY7MqbZJatXSsXCw/nR6dKk6ieD9ng
	MdTU=
X-Gm-Gg: ASbGncscJxHoC7k1VL04ix5Hwvdlza2RFSl9yRNaxXa0lwlZNBjixdA8kMCKrGa+AtZ
	rm0n74bKMHv2wuNYDRT7MVGcko1pzByBrlSUBVXW+hL0lZMc0bgOYufQX8opF73goNDoyrEeM9F
	X+s1WBWa0dYAPuE/1TlCqrWbF7CnHNmgz3ZPflHPAoL5le5rD7+5imUC0i0G8vuoOuRZh/WYLm7
	vXpvMGG7J27mjghqCJg4ssSDKPOzMKOfZTBrKAITUvQ7kycj6wU55uzQzjRSuNWCMWYlB14BPSX
	m7VauYFVQdSVpoaSSrs6p8oq+IwxKfSg/BuId2lPfgzEts8v4UGk7GTTLm5xyDhODEnc3vCHxrz
	k1UZI8U70vDEmKwAj5j9oFRUs3zPUGlbODavt5kMWFgXQsebmPISekJWM1UQZe4DpF8smpGgwQH
	N4OK2f4Hix8Y43qDmBk5by4837Cn0uW+HGj1rLyFd03QCmSBmL4nBcsUDd5C9yn6VdQczW3FE=
X-Google-Smtp-Source: AGHT+IFiijEE517eLvAx/jwOXoZmfgDDlbLnTw0CndgxskzvOl4GTDku4xkI8T7lEpSX6ksOQbeF+g==
X-Received: by 2002:a05:6402:1472:b0:63e:7149:5155 with SMTP id 4fb4d7f45d1cf-6410588c724mr5561919a12.2.1762421664604;
        Thu, 06 Nov 2025 01:34:24 -0800 (PST)
Message-ID: <e894c734-90ab-4cbe-af1c-f699c5497b22@suse.com>
Date: Thu, 6 Nov 2025 10:34:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] kconfig: remove references to
 docs/misc/kconfig{,-language}.txt files
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <e53aaf80d9f51a93885b1ff0d2cbb848468f7f08.1761916782.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e53aaf80d9f51a93885b1ff0d2cbb848468f7f08.1761916782.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.10.2025 14:24, Dmytro Prokopchuk1 wrote:
> These files 'docs/misc/kconfig{,-language}.txt' were deleted, but
> references are still present in Xen. Remove them to clean-up.
> 
> Fixes: 044503f61c95 ("docs: Delete kconfig docs to fix licensing violation")
> Fixes: f80fe2b34f08 ("xen: Update Kconfig to Linux v5.4")
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Nov 06 09:36:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 09:36:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156622.1485652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGwPs-0003ro-Ix; Thu, 06 Nov 2025 09:36:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156622.1485652; Thu, 06 Nov 2025 09:36: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 1vGwPs-0003rh-Fv; Thu, 06 Nov 2025 09:36:28 +0000
Received: by outflank-mailman (input) for mailman id 1156622;
 Thu, 06 Nov 2025 09:36: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGwPq-0003ra-R7
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 09:36:26 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 10619ef7-baf4-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 10:36:26 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-640b06fa959so1273498a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 01:36: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
 4fb4d7f45d1cf-6411f6780b7sm1428693a12.0.2025.11.06.01.36.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 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: 10619ef7-baf4-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762421785; x=1763026585; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xni9+huuYImQhwEnC3UrxQEww0dsqUYZYj9u2IGywmU=;
        b=A94AefD5i7P0qG4umCMK6dQdxkvrP0rYTSuSceIrzx5QQI54fLaWml9S2AP/eGHNDb
         xVs6WG/FyXzHtgQv8Vsop+xzctGOFv0GS/TRJe943iONXaNI4zC27d/swIPJ2tfFUrgl
         pmOoKeLZDgLH9O9uHaMFg80S4WpjN5F5RU1beKuBm5imySHSy/bDWMreCgVPqOjEUszM
         NZdrGNrWfjbe0K94kiGEGope9QWmO03zuxo4qWh/hMYo98+8Nf36oDhbIY1X904rxoVN
         bpIlp3JKSTyjZ/4jpZijuc7CdBxnxaxpPq3+K6FkQdg4pYY0BG/B+uCFwq5Jmt9uYgi1
         si0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762421785; x=1763026585;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xni9+huuYImQhwEnC3UrxQEww0dsqUYZYj9u2IGywmU=;
        b=H91Tv53UDy0Ky/oe5loLWvor8JrJJ7xOY0Cjf9gW2RkBhlrid3QQrlcsFXlhF5nfm7
         VZkJKD0jN8mEuIQO7jXcM16WiHO/gyROe4M6H4zBClLdaVfxT45NwTHqbuWtXgoFTJiG
         6vTu/7XhfUaCZF06rNbQBsUhtYwZw8SJpzywDKK9rwAcYmn87TAH7pGVnp8GRUohORbN
         1TYMukBmIEqdD7QuARBjgsGoWdFltCk3ACyA6cgVkDp5yHa21eFacqhYj7R7u6N1hAVm
         vsbon8vGneOfWpibh/oDaP2Zm2YAoWdGJ8DzqrnTacOD4qc/7p5adyyW2Zd7KqEKmMqy
         mkzg==
X-Forwarded-Encrypted: i=1; AJvYcCVUQma3hmnXgHBGIjCLWtjt/xil9H+7ysvEKA3vjDqutbEXB2iS4fuV1Gsud4c7UKq0lS/1schHbHA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwyAtYEr7ftJ9W/Jl1bvsKFFO80hvpdhWj/QhUKo3i0KvTezeOd
	dXp2fT5ogtXfex23gaq3kE5+F1Zwhg6LXr6PAMmwztaIUDfKfTqHnD6lXRuy2+ZwOw==
X-Gm-Gg: ASbGnctS9EPNbt29PZjOmxKKkOcWoWubUdkP8uGkSfiIunOGVmYe6JUMhp2TtbPJcQK
	GKT9lqzUUxuwmatHGmlPQV86WfE4rd/wnI7h58iaIcXzHRVtBLyz2vChbXzCOayqVRUpC8J/uMZ
	p20dmNOhjvbViIU9d0et7ZMAEngF7NN70Pi9dmDqdLyw8w/ZzdEflHO0Sxkxxg0rjW5GcjL1SIO
	Ds1kDzun4/inuJ3F1jT+8/u/wCX0MWJhR9WTukNAz/Wzt0XNNC0ZvlBwDv2SzO/I2JGI11UkBT4
	0XumxlCRVe9txCT61ejl5tMT6u288uSA6UxVwuYT2udYKSX0iWV5f58f5n4DCo2oMr9HQXX66Hx
	XWfIk9zmBRidPpkjnOL7OwsmMfhH8N7RNoQGHKqyi/IcJuo+Ahp1xIUjepH9OjBryBYlAd+BN7w
	ttm1aaExkGNMwz97zY8GjOxscVuGspbi6586CL1MzXqWl6YiR1BmCz7mB+i/yx
X-Google-Smtp-Source: AGHT+IEzysGdCZzy4ppx01Y2ZNU0oBGvl91fEKsCkK1XIRn+90HgGAedJgYftgc5P0MuMvZWwzmExQ==
X-Received: by 2002:a05:6402:1442:b0:640:bb20:41c7 with SMTP id 4fb4d7f45d1cf-6410588c61amr5680021a12.7.1762421785304;
        Thu, 06 Nov 2025 01:36:25 -0800 (PST)
Message-ID: <fc1ca849-0f66-4fdb-a70d-147cd30ba7de@suse.com>
Date: Thu, 6 Nov 2025 10:36:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: address Rule 11.3 in spin_unlock_common()
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@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: <812bf5574cb44727c561e0ebc3a54848823ed490.1762163173.git.dmytro_prokopchuk1@epam.com>
 <7fb6ca46-3806-4aa5-a642-28384d6b944c@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: <7fb6ca46-3806-4aa5-a642-28384d6b944c@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.11.2025 12:26, Andrew Cooper wrote:
> On 03/11/2025 10:11 am, Dmytro Prokopchuk1 wrote:
>> diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
>> index 0389293b09..d9dc9998e6 100644
>> --- a/xen/common/spinlock.c
>> +++ b/xen/common/spinlock.c
>> @@ -367,7 +367,8 @@ static void always_inline spin_unlock_common(spinlock_tickets_t *t,
>>      LOCK_PROFILE_REL;
>>      rel_lock(debug);
>>      arch_lock_release_barrier();
>> -    add_sized(&t->head, 1);
>> +    BUILD_BUG_ON(sizeof(t->head) != sizeof(uint16_t));
>> +    add_u16_sized(&t->head, 1);
> 
> This is an example where MISRA's opinions actively making the logic less
> safe.
> 
> It's not possible for add_sized() to use the wrong type (as it
> calculates it internally), whereas it's quite possible to update the
> BUILD_BUG_ON() and fail to adjust the add.
> 
> Specifically, you've made it more complicated to reason about, and
> created an opportunity to make an unsafe change where that opportunity
> does not exist in the code as-is.
> 
> Furthermore, read and write atomic have exactly the same internal
> pattern as add_sized(), so how does this not just kick the can down the
> road?

+1 (fwiw)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 09:58:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 09:58:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156637.1485662 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGwkh-0006oC-73; Thu, 06 Nov 2025 09:57:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156637.1485662; Thu, 06 Nov 2025 09: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 1vGwkh-0006o5-3y; Thu, 06 Nov 2025 09:57:59 +0000
Received: by outflank-mailman (input) for mailman id 1156637;
 Thu, 06 Nov 2025 09:57: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGwkg-0006nz-1i
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 09:57:58 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 10ba5f10-baf7-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 10:57:55 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-640b2a51750so1305564a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 01:57: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
 a640c23a62f3a-b7289682544sm174583366b.53.2025.11.06.01.57.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 01:57: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: 10ba5f10-baf7-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762423074; x=1763027874; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2pV8SBOsPTBHMSriyI7Vv4bb6edPP5QubO2Uijno1hM=;
        b=JUYgtLenxlMaasCiBjiiAfz9A2ARXxw7Y+OGu5DufzAJzFqKbUcHmVOttdIVBvtk5B
         cnIIplAU6qiQRXwF9+t4SfQnmUcvX+BYrG/fBhEMlFrbVmlFfUpTK0XdgdmCat7Cd9XW
         dS6Z3NQxLXNsuUda1Uj67xhn+WHacXykka6jrxCrYRrK8hGA0xEb5kacTGQZiC4boc5W
         vE0X5n18M+f+bHTJ/k51X0lf9xsa/JAtnMA/ahPosI2gIEMfhnAQn6LYhLSKcqOoDE27
         uu/6fkYGHTZtS9DZj1b6nDNzDJTbBjO+iJJT1CSt4WxODNE4Xhu7966uMmFS8Su9JBQU
         uVjg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762423074; x=1763027874;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2pV8SBOsPTBHMSriyI7Vv4bb6edPP5QubO2Uijno1hM=;
        b=uHeVGYuY+ApXcTgBfUkTa6+wcJH5vLzibITqRnIc41TUiyR7QQIZbJT+on8hDHRKW1
         f03eHQiLmSWo88lqDybeHKMPesPNtfblitUuBUNqY0NOM+bnNqT4f2UA71EACWPhFTnk
         tg87VDruHx3+4AdxQWPS8DvDMro8bn9NQLykyj3aZVKhLb9NpnBsZQkUFKVPXSSzE39n
         aECnzSqmB7nUBMxSsPRD/UhU3V6EhfAvX+RIUWVajz7dMl/TLvD0/ieqaVfwm0YI4OC0
         zVoeiZOVDgd5wo6TdBY9T0hViZaIrW2/COydd46zypLHrGCJN/5dSMd2bdp6OUNt0RXl
         yLog==
X-Forwarded-Encrypted: i=1; AJvYcCUKftHiFsFZG/ybelbJHQ7jT26ph8g4nvK7HrTWEdntGODLOy9EANvvtV1L3oP+ARXUBps+37gWtFg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzVdiWjgxv4kLFGYQRWKbMj09HVqPRG/OrD2egWjCJVAGGmHbNi
	2Xn3CaKPBpN6obps1OAYaraGP0U+zTwI+U89n4O4rzPIQqS68IuYXW+BiaJgsdNslw==
X-Gm-Gg: ASbGncuF0FA8IY3Fq0MbdGVYuffwZl8SJhlMygKwowABwiCyY3k3Bn3D5Jo6FTkySsW
	qmNWx1P1x3GXLeMk3pYAFLX9GOLbyHfBWez+QxbVFEYR3lCcYF8SASFHMNWdh3aBvseY9m0JS2Q
	/m3JdDEWm3eeMVRatU+9LCSn8VLRTIBQi+T5f/RmjlXV3ahLh3lC7w0cs74NnIBfIzPDbJeSNK8
	HKL3RIr7EYrC2e9c/9wSiGOXkJB4lZ9N29+bRpeCGZK2OhWnkN+EWV/V4zVG8yw5tD29McJhv+R
	djWe/yBn1FGqZQ8sag7XHsiycXpnCGu1Lwc+omDptSn6DC5vV6klskcEd2FmowzH00SovNaJO/+
	dnp54lg8BOIiPQDmo3agEeJrfpqJE6tLExhyFFGdVqSX9Imwb5wgoKma8byGrV/ndXdC1iIDOQK
	+VvMwHR0g7JLZEPu1ouM6jlq4/Ku3V1jbEPOB+xZTQyFKbAJihUQMkcwUtT/60
X-Google-Smtp-Source: AGHT+IEuTn/BnleDYIkzdv8wOmSTxYhlItq1EppSz24bYdRDHlxDQxF3/TOz6/pHi+cS+Suvxnfazw==
X-Received: by 2002:a17:907:944a:b0:b6d:8d8d:3010 with SMTP id a640c23a62f3a-b72655b7411mr510969166b.56.1762423073633;
        Thu, 06 Nov 2025 01:57:53 -0800 (PST)
Message-ID: <45031a9f-1072-4a41-9b46-35bf6437880b@suse.com>
Date: Thu, 6 Nov 2025 10:57:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen/x86: guest_access: optimize raw_x_guest() for PV
 and HVM combinations
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251031212058.1338332-1-grygorii_strashko@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: <20251031212058.1338332-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.10.2025 22:20, Grygorii Strashko wrote:
> --- a/xen/arch/x86/include/asm/guest_access.h
> +++ b/xen/arch/x86/include/asm/guest_access.h
> @@ -13,6 +13,7 @@
>  #include <asm/hvm/guest_access.h>
>  
>  /* Raw access functions: no type checking. */
> +#if defined(CONFIG_PV) && defined(CONFIG_HVM)
>  #define raw_copy_to_guest(dst, src, len)        \
>      (is_hvm_vcpu(current) ?                     \
>       copy_to_user_hvm((dst), (src), (len)) :    \
> @@ -34,6 +35,43 @@
>       copy_from_user_hvm((dst), (src), (len)) :  \
>       __copy_from_guest_pv(dst, src, len))
>  
> +#elif defined(CONFIG_HVM)
> +#define raw_copy_to_guest(dst, src, len)        \
> +     copy_to_user_hvm((dst), (src), (len))
> +#define raw_copy_from_guest(dst, src, len)      \
> +     copy_from_user_hvm((dst), (src), (len))
> +#define raw_clear_guest(dst,  len)              \
> +     clear_user_hvm((dst), (len))
> +#define __raw_copy_to_guest(dst, src, len)      \
> +     copy_to_user_hvm((dst), (src), (len))
> +#define __raw_copy_from_guest(dst, src, len)    \
> +     copy_from_user_hvm((dst), (src), (len))
> +
> +#elif defined(CONFIG_PV)
> +#define raw_copy_to_guest(dst, src, len)        \
> +     copy_to_guest_pv(dst, src, len)
> +#define raw_copy_from_guest(dst, src, len)      \
> +     copy_from_guest_pv(dst, src, len)
> +#define raw_clear_guest(dst,  len)              \
> +     clear_guest_pv(dst, len)
> +#define __raw_copy_to_guest(dst, src, len)      \
> +     __copy_to_guest_pv(dst, src, len)
> +#define __raw_copy_from_guest(dst, src, len)    \
> +     __copy_from_guest_pv(dst, src, len)
> +
> +#else
> +#define raw_copy_to_guest(dst, src, len)        \
> +        ((void)(dst), (void)(src), (void)(len), 1)
> +#define raw_copy_from_guest(dst, src, len)      \
> +        ((void)(dst), (void)(src), (void)(len), 1)
> +#define raw_clear_guest(dst, len)               \
> +        ((void)(dst), (void)(len), 1)
> +#define __raw_copy_to_guest(dst, src, len)      \
> +        ((void)(dst), (void)(src), (void)(len), 1)
> +#define __raw_copy_from_guest(dst, src, len)    \
> +        ((void)(dst), (void)(src), (void)(len), 1)
> +#endif

I have to admit that I don't really like the repetition.

Style-wise you want to be consistent with the adding of blank lines around the
preprocessor directives: Imo here there want to be ones on both sides of each
of the directives.

For the last block, I'd further prefer if "len" was returned. That's properly
representing that nothing was copied. And if these were all using a single
inline stub function, ...

> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1985,8 +1985,9 @@ bool update_runstate_area(struct vcpu *v)
>  #endif
>          guest_handle--;
>          runstate.state_entry_time |= XEN_RUNSTATE_UPDATE;
> -        __raw_copy_to_guest(guest_handle,
> -                            (void *)(&runstate.state_entry_time + 1) - 1, 1);
> +        (void)__raw_copy_to_guest(guest_handle,
> +                                  (void *)(&runstate.state_entry_time + 1) - 1,
> +                                  1);
>          smp_wmb();
>      }
>  
> @@ -2008,8 +2009,9 @@ bool update_runstate_area(struct vcpu *v)
>      {
>          runstate.state_entry_time &= ~XEN_RUNSTATE_UPDATE;
>          smp_wmb();
> -        __raw_copy_to_guest(guest_handle,
> -                            (void *)(&runstate.state_entry_time + 1) - 1, 1);
> +        (void)__raw_copy_to_guest(guest_handle,
> +                                  (void *)(&runstate.state_entry_time + 1) - 1,
> +                                  1);
>      }
>  
>      update_guest_memory_policy(v, &policy);

... these changes would become unnecessary (I dislike such unnecessary - as per
the C spec - casts, even if I understand that for Misra we may need to gain quite
a few of them).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 09:58:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 09:58:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156644.1485671 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGwlS-0007FB-EY; Thu, 06 Nov 2025 09:58:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156644.1485671; Thu, 06 Nov 2025 09: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 1vGwlS-0007F4-Bq; Thu, 06 Nov 2025 09:58:46 +0000
Received: by outflank-mailman (input) for mailman id 1156644;
 Thu, 06 Nov 2025 09:58: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGwlQ-0007Es-GP
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 09:58:44 +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 2da8028f-baf7-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 10:58:43 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-640bd9039fbso1268806a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 01: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
 4fb4d7f45d1cf-6411f86e12fsm1450849a12.34.2025.11.06.01.58.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 01: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: 2da8028f-baf7-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762423123; x=1763027923; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Rhfy11/guVwOWQYPdtOxX6VZ1SgjtOwJ5IhKiblhsPY=;
        b=BlzhoIrHmZudP9qN9o7u9MIZLt829Hr/ArSlTHR0UyKzJFp+SMZ8o9Rc4uYqF/vt6Q
         HNrouep880I15crRVpayqVTwrsijuS/0SUuFbZX7iAPAIIXhIhrzg1VKQ6x3SUtwvSht
         hX3uaAMLk7qnJrmZTwxAGMkPpwNesWrTHQP9NDhlGbh195WSHr1Ox7HVGA7HYhcAJ/bd
         DzR0sxlUM89RsF+BUBbjlJdmt8chnG5DSIrYHN/wbRMTgTWFvPXk+GJCrkWR4r3tw66m
         SoRuG+mK3OLwbJ66b33w0Zo5EwF5BtgcGi8fFlqrEosX6giQGP9iDQisrr8rKQyg1Dx+
         bvtQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762423123; x=1763027923;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Rhfy11/guVwOWQYPdtOxX6VZ1SgjtOwJ5IhKiblhsPY=;
        b=LrKHVjd24pOlqllGtM3o6ftfoEO6q84lrkRNnEP/gwILIPyyFX6wAp5GZVymzZi71H
         HRLHvD5uGDW9nz6Dl0q3I+A8ChfnXLrxbSt+rPJRSPyCOluM5N6tC18SjTOIqkeEKmt/
         vKJEX0dtiMAN0nKkxnJvyETj9hHf4vDvh9JsJJvbj1J0Hj79cQHNfZinHQ+lPhAzwMzg
         BBnnavo/AanxvIKxCQmFfWs3ZNUpw2Lc6y3HuVp+ONID5YTev9RGlvVliCPWB+j5o+L6
         nDyHi5oP774psKideJBi3aHfAB1P89yXB8+jzRVbLjJXcVqS0T2l/fwv/2FJ6/LhO9DB
         AAHA==
X-Forwarded-Encrypted: i=1; AJvYcCUKmlyrPD9IVQrU8doysn1s6ggUzGPPoDWsuC4SLBzrdHC8vB2he7yEgRltNILp5KMWHTHam4xkT7k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzxm53JrI9jz8yFb9CvNEHC01aPe3IzIHjzCauk9pHs3J4h9UeW
	lWVY6v171dt+WixwP2GcJ5LafdiBnk18roFYv6Gb3as+pAegVewgIeCukBwb2oOuaQ==
X-Gm-Gg: ASbGncsayLU/oZ1BB9uc40ZhT07KVXkqCnRREE5VljGW07xjtCypgyHRCVQ54sB7Phy
	1V11bYj0ynzYLweDa/upIoHtxyXX3SuK1ICwDUP0FJQSYUyJ5vsrmFpR8vGc9x23W3SIuzk2DyQ
	k8hFYgRaViuZjBrhxqekAtarDEMjitulzbafFMZOg+P7KZDZO7aK5wjz+4hN16Af/OEp6xe0VdW
	9g9Ep8WWt35s/wvIhmNCe6pj/E9Jo8oEBXDX48DdnxZBs6bkL9SWZ1LFekRuhtUFGqyq6B2Xix9
	8TuLq6lhdoH2vUAMqJ78UQDwU76Cy9ecXU/JWXEJuFtVF3uOV8Xc6sl+2Adv+t2cUOHUxBBUr1f
	cecO18iw7C5VV7wqGnQNAemoqiB/SFmZN3XY4I0I10Y4+OBCJizzMuy8PGUoqp1WEN8kz9u1114
	5cPUd0Sou3m22MMiQR0fGGliam+QdLpGZ373Iaty2e8SswfJjNhwOROYvvShes
X-Google-Smtp-Source: AGHT+IHcLjJMU8ICjH35PQNPqkue1GotyAeT9ZIeySnFON4yVYZCTD/M+iEni5QVAmcnvyckm3eGxg==
X-Received: by 2002:a05:6402:26cd:b0:640:ccb0:f4e9 with SMTP id 4fb4d7f45d1cf-64105a3ee29mr5445800a12.19.1762423122984;
        Thu, 06 Nov 2025 01:58:42 -0800 (PST)
Message-ID: <34c195a5-0e3c-4a19-bc92-374f2fbded34@suse.com>
Date: Thu, 6 Nov 2025 10:58:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen/x86: guest_access: optimize raw_x_guest() for PV
 and HVM combinations
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251031212058.1338332-1-grygorii_strashko@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: <20251031212058.1338332-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.10.2025 22:20, Grygorii Strashko wrote:
> @@ -34,6 +35,43 @@
>       copy_from_user_hvm((dst), (src), (len)) :  \
>       __copy_from_guest_pv(dst, src, len))
>  
> +#elif defined(CONFIG_HVM)
> +#define raw_copy_to_guest(dst, src, len)        \
> +     copy_to_user_hvm((dst), (src), (len))

Oh, and: Please omit unnecessary parentheses - they only hamper readability.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 09:58:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 09:58:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156647.1485682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGwlb-0007YU-Lo; Thu, 06 Nov 2025 09:58:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156647.1485682; Thu, 06 Nov 2025 09:58:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGwlb-0007YD-Ir; Thu, 06 Nov 2025 09:58:55 +0000
Received: by outflank-mailman (input) for mailman id 1156647;
 Thu, 06 Nov 2025 09:58: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=RMQi=5O=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vGwlZ-0006nz-U0
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 09:58:54 +0000
Received: from mail-yx1-xb12a.google.com (mail-yx1-xb12a.google.com
 [2607:f8b0:4864:20::b12a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 327e70fe-baf7-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 10:58:52 +0100 (CET)
Received: by mail-yx1-xb12a.google.com with SMTP id
 956f58d0204a3-63f9beb26f7so655788d50.2
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 01:58: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: 327e70fe-baf7-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762423131; x=1763027931; 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=0qEC6mPhFeWUcv0CzUwruen+Ncg+IvqbHhJtSOKX2JY=;
        b=PKDMhNzVde7I+voygOUW9XFZO7Q4O4c/6gOUeyiQV7DUDXQNn2gy11S8ITuQrmNtnF
         yiYwjMovpobbCO5EPGZthwM3nkyrgTVJB/9vWQ2P1dGzjvJlSsSshJMkW21Odi6QiW6K
         sGxXaZO05Rogw8GsbRsMkvRTgxK8Oej2zNqin+y5KlgMEA1qOTBZnRrwBrOxC0Td9tvw
         ghpPtSHA2jCnFhmwQ5HdeSGHVfoDP8Efk+ymaGaqg0xkh6SYx/ePDwr8NLnisVbf25g/
         CN9u76PywqONfwTJn5QgWfZA7wUS/Jb6r2+lQVqZxBc9pZ/THay362uLilLt56y0djAK
         WswQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762423131; x=1763027931;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=0qEC6mPhFeWUcv0CzUwruen+Ncg+IvqbHhJtSOKX2JY=;
        b=U/tJlOf+v8UXGaMu0ENEosCzIdEyq1p6dU24Fl8/tH+bP6eGl9dnTuF1zRSLojvl09
         A590G6aIVcGgWnVRT5dMclXQPdU7h2X/U5Vtey/86xAhZWFct1rNH8avZ0LYJFvHi38A
         NElMs3hYS9E/6u0pv6ZWD2pRaHMIfzLkkffsM0z+C5BPhq2jbXAYkXhrmwp3YPkDCN66
         nt5q61Zq1DTd7nlBptUvpKNiuRDVxY/w0ylAhSq0QYtuOWHT+CRg3RF9LpfxTQ3cUTpG
         GMvjzObUCbnMffbvN2UcOeNuQdoGMAH1TmYWJ1UWq+FB1Tku0ocTm2nL7dLrcdRMKvjX
         Fzkw==
X-Forwarded-Encrypted: i=1; AJvYcCX1wRB2L3OptaXkoc7KDtD3MN8bOEMlMZ3Xdj4rPmXXoNwm2aEikZepNUDZt6kK0YqFpGYTNiL6XGY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyLoTit4IeRbCtwCDcC0T2J3cJOqYaeP304GoTFqusxGKgdewXV
	qZuhw9x5U89KbvnsgoAfahrKIkL3LHDMMVb6WkVmsg/I9VQyp8XADBvv8gKa1mzXQoHMvsGDyqi
	JRZC9910DaIzvp4ETxyP550ZUUHuhkcI=
X-Gm-Gg: ASbGncum25idQsb5jwyilNzLfTO/ejs/ROEWn/7ce2F/J5ja6he8OH7WAE0e/DdZbgg
	oQfqMK5fvbcKE+VBINxpveqVeMqaeSVgq3RBQ7Hne3GGWelwIUBKDG0Lq4yUzeeu0ALNLqLeBoo
	RNjnkHDiTik7/1+ms9vHVlygeVIwCsyp8vcOiu6QCULvt9kEFRgZvw7nveUeiEjUu398v/38YFg
	O34PwIOdKap/VYudl1372MmvtwEUU3m5uDibxdgvZeTrvNq5+GR7LFT5STl
X-Google-Smtp-Source: AGHT+IGTMqxw2wLO0aj8eevOgFuuktlrPn6HMuyd3Q+8cLPgIYnW9ykm56KTR1msiDzCVuwf6PnKK5jKj4GMtvWZrak=
X-Received: by 2002:a05:690c:450c:b0:786:5712:46c7 with SMTP id
 00721157ae682-786a41be642mr96746957b3.41.1762423130731; Thu, 06 Nov 2025
 01:58:50 -0800 (PST)
MIME-Version: 1.0
References: <20251105153808.20278-1-frediano.ziglio@citrix.com>
 <fdc9fd41-2224-4672-911e-3e17b428d32a@gmail.com> <CAHt6W4eyH_7c4Q-KYaDjNJnSXjKSVNT1iSw0sNbLMXnK3iEHRg@mail.gmail.com>
 <d193feac-3285-4c26-9a8a-ba09437e7e76@gmail.com>
In-Reply-To: <d193feac-3285-4c26-9a8a-ba09437e7e76@gmail.com>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Thu, 6 Nov 2025 09:58:39 +0000
X-Gm-Features: AWmQ_bka-zoJlgF7DlMyS7XzSfIs5hPxCYIwFZPWOAuxO_0Kf9qxjCF0N0UZMHI
Message-ID: <CAHt6W4fEbuk+VzjFxfz5=T8GXCVW_jSoqqMAkiQTXL79B93SPg@mail.gmail.com>
Subject: Re: [PATCH v3] xen: Strip xen.efi by default
To: Demi Marie Obenour <demiobenour@gmail.com>
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>, xen-devel@lists.xenproject.org, 
	Frediano Ziglio <frediano.ziglio@cloud.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset="UTF-8"

On Thu, 6 Nov 2025 at 03:52, Demi Marie Obenour <demiobenour@gmail.com> wrote:
>
> On 11/5/25 21:00, Frediano Ziglio wrote:
> > On Wed, 5 Nov 2025 at 20:31, Demi Marie Obenour <demiobenour@gmail.com> wrote:
> >>
> >> On 11/5/25 10:38, Frediano Ziglio wrote:
> >>> From: Frediano Ziglio <frediano.ziglio@cloud.com>
> >>>
> >>> For xen.gz file we strip all symbols and have an additional
> >>> xen-syms file version with all symbols.
> >>> Make xen.efi more coherent stripping all symbols too.
> >>> xen-syms.efi can be used for debugging.
> >>>
> >>> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> >>> ---
> >>> Changes since v1:
> >>> - avoid leaving target if some command fails.
> >>>
> >>> Changes since v2:
> >>> - do not convert type but retain PE format;
> >>> = use xen-syms.efi for new file name, more consistent with ELF.
> >>> ---
> >>>  docs/misc/efi.pandoc  |  8 +-------
> >>>  xen/Kconfig.debug     |  9 ++-------
> >>>  xen/Makefile          | 19 -------------------
> >>>  xen/arch/x86/Makefile |  9 ++++++---
> >>>  4 files changed, 9 insertions(+), 36 deletions(-)
> >>>
> >>> diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
> >>> index 11c1ac3346..c66b18a66b 100644
> >>> --- a/docs/misc/efi.pandoc
> >>> +++ b/docs/misc/efi.pandoc
> >>> @@ -20,13 +20,7 @@ Xen to load the configuration file even if multiboot modules are found.
> >>>  Once built, `make install-xen` will place the resulting binary directly into
> >>>  the EFI boot partition, provided `EFI_VENDOR` is set in the environment (and
> >>>  `EFI_MOUNTPOINT` is overridden as needed, should the default of `/boot/efi` not
> >>> -match your system). When built with debug info, the binary can be quite large.
> >>> -Setting `INSTALL_EFI_STRIP=1` in the environment will cause it to be stripped
> >>> -of debug info in the process of installing. `INSTALL_EFI_STRIP` can also be set
> >>> -to any combination of options suitable to pass to `strip`, in case the default
> >>> -ones don't do. The xen.efi binary will also be installed in `/usr/lib64/efi/`,
> >>> -unless `EFI_DIR` is set in the environment to override this default. This
> >>> -binary will not be stripped in the process.
> >>> +match your system).
> >>>
> >>>  The binary itself will require a configuration file (names with the `.efi`
> >>>  extension of the binary's name replaced by `.cfg`, and - until an existing
> >>> diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
> >>> index d900d926c5..58ee10ee3e 100644
> >>> --- a/xen/Kconfig.debug
> >>> +++ b/xen/Kconfig.debug
> >>> @@ -147,12 +147,7 @@ config DEBUG_INFO
> >>>         Say Y here if you want to build Xen with debug information. This
> >>>         information is needed e.g. for doing crash dump analysis of the
> >>>         hypervisor via the "crash" tool.
> >>> -       Saying Y will increase the size of the xen-syms and xen.efi
> >>> -       binaries. In case the space on the EFI boot partition is rather
> >>> -       limited, you may want to install a stripped variant of xen.efi in
> >>> -       the EFI boot partition (look for "INSTALL_EFI_STRIP" in
> >>> -       docs/misc/efi.pandoc for more information - when not using
> >>> -       "make install-xen" for installing xen.efi, stripping needs to be
> >>> -       done outside the Xen build environment).
> >>> +       Saying Y will increase the size of the xen-syms and xen.efi.elf
> >>> +       binaries.
> >>>
> >>>  endmenu
> >>> diff --git a/xen/Makefile b/xen/Makefile
> >>> index ddcee8835c..605a26c181 100644
> >>> --- a/xen/Makefile
> >>> +++ b/xen/Makefile
> >>> @@ -493,22 +493,6 @@ endif
> >>>  .PHONY: _build
> >>>  _build: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
> >>>
> >>> -# Strip
> >>> -#
> >>> -# INSTALL_EFI_STRIP, if defined, will cause xen.efi to be stripped before it
> >>> -# is installed. If INSTALL_EFI_STRIP is '1', then the default option(s) below
> >>> -# will be used. Otherwise, INSTALL_EFI_STRIP value will be used as the
> >>> -# option(s) to the strip command.
> >>> -ifdef INSTALL_EFI_STRIP
> >>> -
> >>> -ifeq ($(INSTALL_EFI_STRIP),1)
> >>> -efi-strip-opt := --strip-debug --keep-file-symbols
> >>> -else
> >>> -efi-strip-opt := $(INSTALL_EFI_STRIP)
> >>> -endif
> >>> -
> >>> -endif
> >>> -
> >>>  .PHONY: _install
> >>>  _install: D=$(DESTDIR)
> >>>  _install: T=$(notdir $(TARGET))
> >>> @@ -535,9 +519,6 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
> >>>               ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi; \
> >>>               ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T).efi; \
> >>>               if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; then \
> >>> -                     $(if $(efi-strip-opt), \
> >>> -                          $(STRIP) $(efi-strip-opt) -p -o $(TARGET).efi.stripped $(TARGET).efi && \
> >>> -                          $(INSTALL_DATA) $(TARGET).efi.stripped $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi ||) \
> >>>                       $(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \
> >>>               elif [ "$(D)" = "$(patsubst $(shell cd $(XEN_ROOT) && pwd)/%,%,$(D))" ]; then \
> >>>                       echo 'EFI installation only partially done (EFI_VENDOR not set)' >&2; \
> >>> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> >>> index 407571c510..c118ab7b7d 100644
> >>> --- a/xen/arch/x86/Makefile
> >>> +++ b/xen/arch/x86/Makefile
> >>> @@ -228,14 +228,17 @@ endif
> >>>       $(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
> >>>       $(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
> >>>             $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
> >>> -           $(note_file_option) -o $@
> >>> -     $(NM) -pa --format=sysv $@ \
> >>> +           $(note_file_option) -o $@.tmp
> >>> +     $(NM) -pa --format=sysv $@.tmp \
> >>>               | $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
> >>>               > $@.map
> >>>  ifeq ($(CONFIG_DEBUG_INFO),y)
> >>> -     $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
> >>> +     $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))cp -f \
> >>> +        $@.tmp $(TARGET)-syms.efi
> >>> +     $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(STRIP) $@.tmp
> >>>  endif
> >>>       rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
> >>> +     mv -f $@.tmp $@
> >>>  ifeq ($(CONFIG_XEN_IBT),y)
> >>>       $(SHELL) $(srctree)/tools/check-endbr.sh $@
> >>>  endif
> >>
> >> Does this also strip the string table from xen.efi?  I'm concerned that
> >> signing xen.efi for secure boot won't work if there is a string table.
> >> In particular, it appears that EDK2 will miscalculate the file hash if
> >> the string table is before the signature.  Moving the string table after
> >> the signature invalidates the pointer to it.  The only exception is if
> >> the string table is itself in a section, but I don't know if that is the
> >> case.
> >
> > I don't know if the string table is stripped but I can surely confirm
> > that signing xen.efi is working with secure boot.
> >
> > Frediano
>
> Does objdump on the signed file return correct section names?

>From objdump -x

Sections:
Idx Name          Size      VMA               LMA               File off  Algn
  0 .text         0016c9ae  ffff82d040200000  ffff82d040200000  00000320  2**4
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .rodata       0006b9e8  ffff82d040400000  ffff82d040400000  0016cce0  2**2
                  CONTENTS, ALLOC, LOAD, DATA
  2 .buildid      00000035  ffff82d04046c000  ffff82d04046c000  001d86e0  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  3 .init.text    0004d123  ffff82d040600000  ffff82d040600000  001d8720  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  4 .init.data    0006c9b0  ffff82d040800000  ffff82d040800000  00225860  2**2
                  CONTENTS, ALLOC, LOAD, DATA
  5 .data.read_mostly 00028da8  ffff82d040a00000  ffff82d040a00000
00292220  2**4
                  CONTENTS, ALLOC, LOAD, DATA
  6 .data         0000feec  ffff82d040a29000  ffff82d040a29000  002bafe0  2**4
                  CONTENTS, ALLOC, LOAD, DATA
  7 .bss          00223108  ffff82d040a39000  ffff82d040a39000  00000000  2**4
                  ALLOC
  8 .reloc        000016b8  ffff82d040c5d000  ffff82d040c5d000  002caee0  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  9 .sbat         000000a6  ffff82d040c5f000  ffff82d040c5f000  002cc5a0  2**2
                  CONTENTS, READONLY

Which looks correct.

>From hexdump -C I can see close to the end

...
002cc580  30 ae 38 ae 60 ae 00 00  00 80 a3 00 10 00 00 00  |0.8.`...........|
002cc590  a0 ae c0 ae e0 ae 00 00  00 00 00 00 00 00 00 00  |................|
002cc5a0  73 62 61 74 2c 31 2c 53  42 41 54 20 56 65 72 73  |sbat,1,SBAT Vers|
002cc5b0  69 6f 6e 2c 73 62 61 74  2c 31 2c 68 74 74 70 73  |ion,sbat,1,https|
002cc5c0  3a 2f 2f 67 69 74 68 75  62 2e 63 6f 6d 2f 72 68  |://github.com/rh|
002cc5d0  62 6f 6f 74 2f 73 68 69  6d 2f 62 6c 6f 62 2f 6d  |boot/shim/blob/m|
002cc5e0  61 69 6e 2f 53 42 41 54  2e 6d 64 0a 78 65 6e 2e  |ain/SBAT.md.xen.|
002cc5f0  78 73 2c 31 2c 43 6c 6f  75 64 20 53 6f 66 74 77  |xs,1,Cloud Softw|
002cc600  61 72 65 20 47 72 6f 75  70 2c 78 65 6e 2c 34 2e  |are Group,xen,4.|
002cc610  32 30 2e 31 2d 37 2e 32  32 2e 67 33 65 30 36 37  |20.1-7.22.g3e067|
002cc620  32 36 62 2e 78 73 39 2c  6d 61 69 6c 74 6f 3a 73  |26b.xs9,mailto:s|
002cc630  65 63 75 72 69 74 79 40  78 65 6e 73 65 72 76 65  |ecurity@xenserve|
002cc640  72 2e 63 6f 6d 0a 00 00  00 00 00 00 00 00 00 00  |r.com...........|
002cc650  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
002cc660  2c 00 00 00 2e 69 6e 69  74 2e 74 65 78 74 00 2e  |,....init.text..|
002cc670  69 6e 69 74 2e 64 61 74  61 00 2e 64 61 74 61 2e  |init.data..data.|
002cc680  72 65 61 64 5f 6d 6f 73  74 6c 79 00 00 00 00 00  |read_mostly.....|
002cc690  9e 05 00 00 00 02 02 00  30 82 05 92 06 09 2a 86  |........0.....*.|
002cc6a0  48 86 f7 0d 01 07 02 a0  82 05 83 30 82 05 7f 02  |H..........0....|
002cc6b0  01 01 31 0f 30 0d 06 09  60 86 48 01 65 03 04 02  |..1.0...`.H.e...|
002cc6c0  01 05 00 30 5c 06 0a 2b  06 01 04 01 82 37 02 01  |...0\..+.....7..|
002cc6d0  04 a0 4e 30 4c 30 17 06  0a 2b 06 01 04 01 82 37  |..N0L0...+.....7|
002cc6e0  02 01 0f 30 09 03 01 00  a0 04 a2 02 80 00 30 31  |...0..........01|
002cc6f0  30 0d 06 09 60 86 48 01  65 03 04 02 01 05 00 04  |0...`.H.e.......|
002cc700  20 e2 47 64 f8 e8 7b 62  eb 17 e0 13 0a 0d 93 02  | .Gd..{b........|
002cc710  7a d8 3b f0 20 a8 ee 3d  49 98 3f de c1 47 de 15  |z.;. ..=I.?..G..|
002cc720  43 a0 82 03 2c 30 82 03  28 30 82 02 10 a0 03 02  |C...,0..(0......|
002cc730  01 02 02 11 00 8f fc 11  bf 41 54 40 74 89 2c 53  |.........AT@t.,S|
002cc740  a5 78 c1 e8 32 30 0d 06  09 2a 86 48 86 f7 0d 01  |.x..20...*.H....|
002cc750  01 0b 05 00 30 1c 31 1a  30 18 06 03 55 04 03 13  |....0.1.0...U...|
002cc760  11 58 65 6e 53 65 72 76  65 72 20 58 65 6e 20 64  |.XenServer Xen d|
002cc770  65 76 30 1e 17 0d 32 35  30 33 32 30 31 36 35 35  |ev0...2503201655|
002cc780  30 37 5a 17 0d 33 37 30  31 31 39 30 33 31 34 30  |07Z..37011903140|
002cc790  37 5a 30 1c 31 1a 30 18  06 03 55 04 03 13 11 58  |7Z0.1.0...U....X|
002cc7a0  65 6e 53 65 72 76 65 72  20 58 65 6e 20 64 65 76  |enServer Xen dev|
...

So, this confirms that the string table is there to support larger
section names and the signature is there and it's working.

--
Frediano


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 10:09:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 10:09:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156675.1485692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGwvv-0001KF-Qo; Thu, 06 Nov 2025 10:09:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156675.1485692; Thu, 06 Nov 2025 10:09: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 1vGwvv-0001K8-N8; Thu, 06 Nov 2025 10:09:35 +0000
Received: by outflank-mailman (input) for mailman id 1156675;
 Thu, 06 Nov 2025 10:09: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGwvu-0001K2-QN
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 10:09:34 +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 b08a1bf0-baf8-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 11:09:32 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b3d196b7eeeso106671766b.0
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 02:09: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
 a640c23a62f3a-b728937d880sm183890866b.26.2025.11.06.02.09.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 02:09: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: b08a1bf0-baf8-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762423772; x=1763028572; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=127p3U/4hov97C/SybP0XPQyeMPeKbvNc1aPkJZ+QUA=;
        b=ZDxYfcOg/j9Bv8o/nXNp0nURKbHTpIbOYqyoxc7YjYSyP3/RgbQg5npnQ4V2Bn/iNY
         yofw9Q48zQYXigYjVF7gUoHwWQZKJNafNJy3QoyJ0EFTQqD7xxLLiRI1XF78UHkqOvS2
         QWhP06vrFjlZMGWWsn638tACeXCaYiD37cZlDA5MTGLvHLwt0Z6/y7mjyX9SPFKsvjfN
         oHK53Y5bzKUI+oEBGYhJS0HnDcC4faXg6XVoC956BpaYx+cVMYLOuZlfZDeOeofgUITf
         ffaYbLQkCA1iqFYX2E2CS+AJsZj9UhZbDguqzRyYo/cY6p0gdoCGtcygJjZC31wGqYJU
         7Hzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762423772; x=1763028572;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=127p3U/4hov97C/SybP0XPQyeMPeKbvNc1aPkJZ+QUA=;
        b=ft86t0TezZVVQ61pVDuyNe63/wsp2ryJ5EzKR3R8hTDkrzYgbN9lb+iKpj8cRMdnIJ
         eXGlmu4g8Bp5zWuuGa/9Qm4arHiM5T7Arl5ahxOY6geLcDgBDq7A2CNNAziJJvj0KJuy
         77tTH9GppwW0imfiasSSmGM/FLgXOyS12uiySpWsZ2QR5WFm6qKb93Y4mLHtaSlHhAFQ
         gxTbVi2cOXRDWw7oT84181YdNy0+IhYpfI8ONcZXpIdLZMD9AZEqrr9JbnhRxOtEZ2+z
         RRooB2kJKIGnlOhkKo8f/ZHPmtY0b369pFFEvAeuLq3izKxTQTOvTgjlpkTljZUkWjes
         OYxQ==
X-Forwarded-Encrypted: i=1; AJvYcCWhpYsMqo7syAkaP9J2evd6SNv8Jn2HfiAE6fwSWAqdtJcinTSChiiB7bRgLk4NRGC5HSRsbpXxx9w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyNuNQvlFELC/v2yHH3SuuyZcwNxOUrlNzgtL+WaYYZt1iNhRjO
	MAHF78l79iw1BblrEZAX3+IbUe9GvdtGowPwl+Py7aY24IYsJpGz7OkK0ujrkzcXXA==
X-Gm-Gg: ASbGncs02JyqF3bucXVsHCRpMvo+it+1s3C1AVSutTp+YXdedp1OeGlBZu5fnW150Ph
	57/9H9hLFXmYoc66G67XOdDIodAjWEwmY5br1U14M7kgZ4SUIbv7No3Njm0/GlUS5p/vSn4Bflc
	FYFP+9TUOH28TNttOOA9kVSuK5Xn5nj+9q7v+PUSk7GCzfF9ZTMRr15PJ49De09pyS8vqo+/f61
	Nuv+FxGTjS/lzrIkGSVN0xF7a7D4Eh8CZo/YhPwNo011PC2AKtwSI2eC6liCxMFE5BXH+q2duLL
	1pb6xNZqLYdxvaaaID/yzAXWjk9lxIpJMvLkSdgHsccqtTLSB8a0RmRZhtCMHXnCPnG4SZom/SN
	6aOpyBzvYsu7CYIvkQj8xDoGl/D/lqHExifbsmuElcoFkw2A10fFREtAnAA0gnD2dC7yO97SSsh
	5LXUmHkG3j8w2t3qq7U07xR9tdxxib6nrzhT9QWN2f0IT4w5l3GBXKE15V3fBd
X-Google-Smtp-Source: AGHT+IG0itRJdZ3NUS9r6OwFNb4MZ5S9WMv5lE8FVaL17wn0mUmCPFsTEaFLvj6YHLVpJXZ5g/1EIg==
X-Received: by 2002:a17:907:1c0a:b0:b3f:f66b:268a with SMTP id a640c23a62f3a-b726529ee53mr624594366b.19.1762423771933;
        Thu, 06 Nov 2025 02:09:31 -0800 (PST)
Message-ID: <9598b2e2-7df8-40c5-82cb-c097121af763@suse.com>
Date: Thu, 6 Nov 2025 11:09:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 1/5] xen/domctl: extend XEN_DOMCTL_assign_device to
 handle not only iommu
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>, Juergen Gross
 <jgross@suse.com>, Julien Grall <julien@xen.org>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1761998077.git.oleksii_moisieiev@epam.com>
 <b0a72660d58608c80e7408eb8df32ec369d4e45b.1761998077.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: <b0a72660d58608c80e7408eb8df32ec369d4e45b.1761998077.git.oleksii_moisieiev@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.11.2025 12:56, Oleksii Moisieiev wrote:
> --- a/xen/common/domctl.c
> +++ b/xen/common/domctl.c
> @@ -29,6 +29,7 @@
>  #include <xen/xvmalloc.h>
>  
>  #include <asm/current.h>
> +#include <asm/firmware/sci.h>
>  #include <asm/irq.h>
>  #include <asm/page.h>
>  #include <asm/p2m.h>

Does this build at all on non-Arm?

> @@ -827,7 +828,32 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>      case XEN_DOMCTL_test_assign_device:
>      case XEN_DOMCTL_deassign_device:
>      case XEN_DOMCTL_get_device_group:
> +        int ret1;
> +        
> +        /*
> +         * Add chained handling of assigned DT devices to support
> +         * access-controller functionality through SCI framework, so
> +         * DT device assign request can be passed to FW for processing and
> +         * enabling VM access to requested device.
> +         * The access-controller DT device processing is chained before IOMMU
> +         * processing preserving return code and expected to be executed for
> +         * any DT device regardless if DT device is protected by IOMMU or
> +         * not (or IOMMU is disabled).
> +         */
> +        ret1 = sci_do_domctl(op, d, u_domctl);

Why would this not be the initializer of the new variable? (I also don't think
that we've decided to permit variable declarations at other than the top of
scopes or within e.g. a for() loop control construct.)

>          ret = iommu_do_domctl(op, d, u_domctl);
> +        if ( ret < 0 )
> +            return ret;

Why would you invoke both in all cases? If sci_do_domctl() handled the request,
there isn't any point in also invoking iommu_do_domctl(), is there? Or else is
there maybe some crucial aspect missing from the description (or not explicit
enough there for a non-SCI person like me)?

Also this doesn't look to fit the description saying "The SCI access-controller
DT device processing is chained after IOMMU processing ..."

> --- a/xen/drivers/passthrough/device_tree.c
> +++ b/xen/drivers/passthrough/device_tree.c
> @@ -379,6 +379,12 @@ int iommu_do_dt_domctl(struct xen_domctl *domctl, struct domain *d,
>              break;
>          }
>  
> +        if ( !dt_device_is_protected(dev) )
> +        {
> +            ret = 0;
> +            break;
> +        }
> +
>          ret = iommu_assign_dt_device(d, dev);
>  
>          if ( ret )

How are DT and PCI different in this regard?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 10:25:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 10:25:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156689.1485701 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGxAr-000471-2B; Thu, 06 Nov 2025 10:25:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156689.1485701; Thu, 06 Nov 2025 10:25: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 1vGxAq-00046u-VZ; Thu, 06 Nov 2025 10:25:00 +0000
Received: by outflank-mailman (input) for mailman id 1156689;
 Thu, 06 Nov 2025 10:24: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGxAp-00046o-GE
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 10:24:59 +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 d82b3893-bafa-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 11:24:58 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-640d0ec9651so1114509a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 02:24: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
 4fb4d7f45d1cf-6411f866dd5sm1405401a12.32.2025.11.06.02.24.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 02:24: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: d82b3893-bafa-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762424697; x=1763029497; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=prnQff2mG8GAQcC84FcjGAocA+SkY+ow+f04EBM/5x4=;
        b=IZnK4q7oJ1r6kTPmhz3WjnWwM0nB8hM8hJ+ufCRrLCSj0BEQVe/UAnJKUl4VE8qP3P
         uzdwBi0NVT/LORJwoJt0aVrMTvojNtlnHMXvumt9bgWtRs9UCBHHvDgI8GubhCVigLCu
         SvJIW1Y4CYcoXjJl426emxtXK6SOqzGkdjSUmlpydiJnjo0wGjf8IzSF9Hq+ayIQq0+i
         S5JZpIMD8FepWlrvLmdZi6NsRMq2epcpCYKe3Go0o8XEm+TjThwPKbJUIKxC85kaGPBD
         PyR78LTGyODmAyj+jMxMIvinze528S6X/j7UlxflW22caFgK/OAJDEyniam/AtMw8U3V
         q0iQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762424697; x=1763029497;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=prnQff2mG8GAQcC84FcjGAocA+SkY+ow+f04EBM/5x4=;
        b=T/S4AdxXaTqNxTZkRDY2KsNQDCaAi3QPPG2RLoFip7DanJ19Pk1CuNKXmG5mG6xdIo
         9IKWrGg8AGVpT3L1oW15F9vqBw1+pI+WIzyHqlaWdTqiOFeCM+gYMQX/+PPg/kCsMrbx
         4UFaZeLpc76B96amRJ8q3t8KMmrZzdMiXw9JH4M1a/h8/i/q5hpJ/LwEwIrMQBDg45jH
         0xHneJfdtM3D4F6nFTbCXoqe8N7V4KBidX2hIvI37pwQlNiDTpOfAn9ifezk7lkyG6Ok
         pw1kRolhzJZo2+r1Qy0Yp8itj7pBjp+4/FysdR6fiqy0jbLw2DP8MicxbNTmwf68LSP2
         p6oQ==
X-Forwarded-Encrypted: i=1; AJvYcCXHPQtkn+8vjLd4PMwpxKCbfVdVJs6WzJFeu7jpxSHD4xouOYeLw/TzL2BvJ5YjhDKV0b6mBElQy5w=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywd2J8azfnjbZ+WpKHhSNjjKqCXueXb5Fpcy8x9C4uhsKYQnevM
	Mm5zZSOUnWV3cqdKO3jHU90Ix/V/jDayKw718IY9OTbaPtpkhN07qsn4o/9JMumIAg==
X-Gm-Gg: ASbGncsilmqJQARsK7+PdzC+hl+1LPXeEe1tYN5r8NUgIlftxjh3bhzKckFdwZ4WFtU
	ORz593yJSUocFdE1IVo5TTnm2HGUxVU2xKCB8A4998Wq3EdSgg9RqHM3Cylq6suM8MuIqDOzF3e
	H9CCT2AvDgz5SAx4VkxG0K5bjwmTLlOWxKx8EWEEpMY5gvLbfHN3Amh7e7nh18fQyeykcMW+Lf/
	izFMhKPj+cGCdc79y9n5cU50JO6+ExlrXJz+h0tYKzbbBGlQ8Inu8vi+f1SNuTvjZvVJojISx5x
	Y7yWNQ3l0U2Lt2CNXtndxjbqYpk9Bi0zlvqKZEEF8SmHKWw+bjEkvCCgAE2w9ZvmJwbD6RtSHmk
	M6OZ7tSl2eL0lqDQ39v70o6ZapOWmRyfc0Ne0PoTfmIykwQNLveEeOrJuqqZkU/aoJanS038HUJ
	lIBDJaO/XtbYS4aCI4/OSDxyU6pTf3ISs9+MXtA0KlQBUuMNQj61iYZn1cYMUP
X-Google-Smtp-Source: AGHT+IEK6/XPI8boX+h4WHZZ6ms3u9YX2cwFEozGewBMj809BbL87XZWGWtCwKxLSbowCgNS3DbYZw==
X-Received: by 2002:a05:6402:440a:b0:63c:5d27:7ed7 with SMTP id 4fb4d7f45d1cf-64105b707e7mr6186615a12.30.1762424697443;
        Thu, 06 Nov 2025 02:24:57 -0800 (PST)
Message-ID: <fb5d3725-617c-4cbb-b0f3-b8f6c84b19c1@suse.com>
Date: Thu, 6 Nov 2025 11:25:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 3/5] lib/arm: Add I/O memory copy helpers
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>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1761998077.git.oleksii_moisieiev@epam.com>
 <33372689f3097b0dde1d47b81a1bb8176b35d20c.1761998077.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: <33372689f3097b0dde1d47b81a1bb8176b35d20c.1761998077.git.oleksii_moisieiev@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.11.2025 12:56, Oleksii Moisieiev wrote:
> --- /dev/null
> +++ b/xen/include/xen/lib/io.h
> @@ -0,0 +1,83 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Generic I/O memory copy function prototypes.
> + *
> + * These functions provide low-level implementation for copying data between
> + * regular memory and I/O memory regions. Each architecture must provide its
> + * own implementation based on the specific requirements of the architecture's
> + * memory model and I/O access patterns.
> + *
> + * Architecture-specific implementations:
> + * =====================================
> + * Each architecture should implement these functions in xen/lib/<arch>/io.c
> + * based on their hardware requirements:
> + *
> + * - ARM/ARM64: Requires special I/O accessors (readl_relaxed, writel_relaxed)
> + *              with proper memory barriers and alignment handling.
> + *              See xen/lib/arm/io.c for implementation.
> + *
> + * - x86/x86_64: I/O memory is directly accessible, so typically uses:
> + *               #define memcpy_fromio memcpy
> + *               #define memcpy_toio   memcpy
> + *               See xen/arch/x86/dmi_scan.c for example usage.

I'm not quite sure this is true, especially when now we prefer to use REP MOVSB
there. You don't provide the x86 implementation anyway, so it's not clear whether
it's a good idea so say anything here about (unclear) future code. (What may be
appropriate in dmi_scan.c, where it's really RAM that is being accessed, may not
be appropriate for actual MMIO.)

> + * - Other architectures (RISC-V, PowerPC, MIPS, etc.): Should provide their
> + *   own implementations following the function signatures defined below.
> + *
> + * Naming Convention:
> + * ==================
> + * The double underscore (__) prefix indicates these are low-level "raw"
> + * implementation functions, following the Linux kernel convention for
> + * architecture-specific primitives. This warns developers that these
> + * functions have specific requirements and should not be confused with
> + * regular memcpy().

I disagree here. We really should stop violating name spacing rules set forth
by the spec and/or Misra.

> + */
> +
> +#ifndef _XEN_LIB_IO_H
> +#define _XEN_LIB_IO_H
> +
> +#include <xen/types.h>
> +
> +/*
> + * __memcpy_fromio - Copy data from I/O memory space to regular memory
> + * @to: Destination buffer in regular memory
> + * @from: Source address in I/O memory space (must be marked __iomem)
> + * @count: Number of bytes to copy
> + *
> + * This function handles copying from memory-mapped I/O regions using
> + * architecture-appropriate I/O accessor functions. It ensures proper:
> + * - Memory ordering and barriers
> + * - Alignment requirements
> + * - Hardware-specific access semantics
> + *
> + * Each architecture provides its own implementation that may:
> + * - Use special I/O accessor functions (ARM: readl_relaxed, readb_relaxed)
> + * - Implement alignment handling for devices requiring specific access sizes
> + * - Add memory barriers to ensure ordering with other I/O operations
> + * - Or simply map to memcpy() if the architecture allows direct I/O access
> + */
> +extern void __memcpy_fromio(void *to, const volatile void __iomem *from,
> +                            size_t count);
> +
> +/*
> + * __memcpy_toio - Copy data from regular memory to I/O memory space
> + * @to: Destination address in I/O memory space (must be marked __iomem)
> + * @from: Source buffer in regular memory
> + * @count: Number of bytes to copy
> + *
> + * This function handles copying to memory-mapped I/O regions using
> + * architecture-appropriate I/O accessor functions. It ensures proper:
> + * - Memory ordering and barriers
> + * - Alignment requirements
> + * - Hardware-specific access semantics
> + *
> + * Each architecture provides its own implementation that may:
> + * - Use special I/O accessor functions (ARM: writel_relaxed, writeb_relaxed)
> + * - Implement alignment handling for devices requiring specific access sizes
> + * - Add memory barriers to ensure ordering with other I/O operations
> + * - Or simply map to memcpy() if the architecture allows direct I/O access
> + */
> +extern void __memcpy_toio(volatile void __iomem *to, const void *from,
> +                          size_t count);
> +
> +#endif /* _XEN_LIB_IO_H */

There are no provisions here for an arch using macro aliasing, as you suggest in
the comment further up for x86.

> --- /dev/null
> +++ b/xen/lib/arm/io.c
> @@ -0,0 +1,102 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#include <asm/io.h>
> +#include <xen/lib/io.h>
> +
> +/*
> + * These functions use 32-bit (uint32_t) IO operations rather than 64-bit for
> + * the following reasons:
> + *
> + * 1. ARM32/ARM64 compatibility: On ARM32, there is no atomic 64-bit IO accessor
> + *    (readq_relaxed). Only readq_relaxed_non_atomic() exists, which internally
> + *    performs two separate 32-bit reads. Using it would not provide any
> + *    performance benefit and could introduce ordering issues.
> + *
> + * 2. Hardware compatibility: Many IO devices only support 32-bit aligned accesses.
> + *    64-bit accesses might not be supported or could cause bus errors on some
> + *    hardware.
> + *
> + * 3. Simplicity: Using 32-bit operations keeps the code simple, maintainable,
> + *    and consistent across both ARM32 and ARM64 architectures without
> + *    architecture-specific conditionals.
> + *
> + * The performance difference between 32-bit and 64-bit operations in this
> + * context is negligible compared to the IO access latency itself.
> + */
> +
> +/*
> + * memcpy_fromio - Copy data from IO memory space to "real" memory space.
> + * @to: Where to copy to
> + * @from: Where to copy from
> + * @count: The size of the area.
> + */
> +void __memcpy_fromio(void *to, const volatile void __iomem *from,
> +                     size_t count)
> +{
> +    while ( count && !IS_ALIGNED((unsigned long)from, 4) )
> +    {
> +        *(uint8_t *)to = readb_relaxed(from);
> +        from++;
> +        to++;
> +        count--;
> +    }
> +
> +    while ( count >= 4 )
> +    {
> +        *(uint32_t *)to = readl_relaxed(from);

Is this going to be fine on Arm32, when "to" doesn't point at a 4-byte-aligned
location?

> +        from += 4;
> +        to += 4;
> +        count -= 4;
> +    }
> +
> +    while ( count )
> +    {
> +        *(uint8_t *)to = readb_relaxed(from);
> +        from++;
> +        to++;
> +        count--;
> +    }
> +}
> +
> +/*
> + * memcpy_toio - Copy data from "real" memory space to IO memory space.
> + * @to: Where to copy to
> + * @from: Where to copy from
> + * @count: The size of the area.
> + */
> +void __memcpy_toio(volatile void __iomem *to, const void *from,
> +                   size_t count)
> +{
> +    while ( count && !IS_ALIGNED((unsigned long)to, 4) )
> +    {
> +        writeb_relaxed(*(const uint8_t *)from, to);
> +        from++;
> +        to++;
> +        count--;
> +    }
> +
> +    while ( count >= 4 )
> +    {
> +        writel_relaxed(*(const uint32_t *)from, to);
> +        from += 4;
> +        to += 4;
> +        count -= 4;
> +    }
> +
> +    while ( count )
> +    {
> +        writeb_relaxed(*(const uint8_t *)from, to);
> +        from++;
> +        to++;
> +        count--;
> +    }
> +}

Is use of {read,write}l_relaxed() appropriate here anyway, when those
functions do endian-ness conversions (which memcpy()-like functions clearly
shouldn't do)?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 10:28:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 10:28:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156703.1485711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGxDn-0004lS-GS; Thu, 06 Nov 2025 10:28:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156703.1485711; Thu, 06 Nov 2025 10:28:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGxDn-0004lL-Dv; Thu, 06 Nov 2025 10:28:03 +0000
Received: by outflank-mailman (input) for mailman id 1156703;
 Thu, 06 Nov 2025 10:28: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGxDl-0004lF-RN
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 10:28:01 +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 4477f417-bafb-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 11:27:59 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b3c2c748bc8so89024366b.2
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 02:27: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
 a640c23a62f3a-b728937cc82sm180928566b.21.2025.11.06.02.27.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 02:27: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: 4477f417-bafb-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762424879; x=1763029679; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wszm90SDq8rh+OASjrbEcSMHOVviPpxjUlzTlCgtiSQ=;
        b=GyTAtPkMY5PyVebTtP1nA31ex5ghUdj2utVNo+0+OTSI9SGpu27nmYIxH9jzTaXpaF
         kBufW7J8k1/1v+yukKAab8EgQ51GzTRFyoxruPxIQ19aq8zndebSODXUlorQ74Ko8nnP
         HsWFajnzpL+sCPczDm0EtRalYw4xTJDR/7xGgaFz5BAdA8P23eHfbQFFMEP8bdoUvZOx
         zLzbzGT+GNL25qOAOU8RJtqzO0ul873S0BbdhaRIY9Uaf3agZyrwH6Psuq/gSdwGfvYj
         hciTGHLKtAaBPdFWy+mGTIYpn3XhSdcXEizEPyOHj1f0se9gHa+f3Pb/em7wuVsmgLfO
         CHjQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762424879; x=1763029679;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wszm90SDq8rh+OASjrbEcSMHOVviPpxjUlzTlCgtiSQ=;
        b=QVfo0V4XN50otE8GUR4PWfUoY3pe6Rfv89CrbOdLF3pplvPqBvaHmcsUJJ0FUC71PH
         A6W0rOq3bqyqjw5kGe/hYGhI9nCglUq+GsUwPZMbLjBtkVbDlFiIM1TlBdj+PpjDZl8z
         Eco0Jklcj5bzv91I6cyufzroTP6FPdiJLfAEMTYTWAtYGdgpzgYQTMWks9XY+tssJ5K5
         nPz+uUA4xvbNC93rdalMqvBHHSGjgzlK044Q1A24syHgNJG3CFtZ6EdB4JrR+0ICtHiY
         ufyM9gGM5QUxAWRa9ElC4jOSB9kGVke+43ZFNAG3wp0BYlcLGLbaS+3BVX8xCwAA/ZCn
         pCmg==
X-Gm-Message-State: AOJu0Yy564hCQjLdLB64OHENWUR9XNBXJyun1q6VM7sUR+Wa4kh2UQxB
	Lz0MXRwVZmH4t8TC/XKN7zGXePLBnYyB1cP5o3BFGsJBhA5rL+MWtUzKaEk2YYu/ZA==
X-Gm-Gg: ASbGncvf2mYVAILzsh19EKfZJFYDLFHz8/EM82h3tfMQSAaz7Ncv/jPDOWnSlb73RLN
	E+Hvynxh2g2GZAhM/WTyf9AB+keEZFnTu9gRanzMlDS8mgdkFIVkYcszq3OZOc6sy11uppFmT7Q
	pDopfPf06rHs7bm9BaCV5Vf1BBawu8DYFRtlMmsSE+P467PkxDNtIZt+4Mmx7QdqzCy1FrDIOZy
	lxHvHL9LfynbAbUgPECn1zo4uMtTHECvpfNatmQh+b3xuAwNVcVJSTFtrCrIpC6OVDF0M5A/EVh
	zPmPhMuAGP0kc4CM3uHXBLcmZmzsVCoPfymaMszoROOUTF7RrzbsBu4bEz+0o8XjQ7ePAua4MZl
	QAyLUhGFMk+ZsK8WzVtg0LQ1yK73olG+xIgGMOVQaBQL2gC3SzwBT7RWS5lkcrI6LatIfP+igmu
	b0wjYDeX9u7vkv54jwlDfHhXTSzVJBH/BT0J/SRNhpK7su6jnNXMPOD9nVAID45whxpUS462o=
X-Google-Smtp-Source: AGHT+IG2gcTld3Ci4OWk10h1HrY1SIf/SdzSwfBc+Wqtiklakzmxy+AskGMVDzlcE3SlfUlrgaA7rw==
X-Received: by 2002:a17:906:6a11:b0:b5c:753a:a4d8 with SMTP id a640c23a62f3a-b72655a7531mr638241066b.62.1762424879050;
        Thu, 06 Nov 2025 02:27:59 -0800 (PST)
Message-ID: <98e2f19f-5fce-4ad1-b821-f5abb1f815f6@suse.com>
Date: Thu, 6 Nov 2025 11:28:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen: Strip xen.efi by default
To: Frediano Ziglio <freddy77@gmail.com>
Cc: xen-devel@lists.xenproject.org,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Demi Marie Obenour <demiobenour@gmail.com>
References: <20251105153808.20278-1-frediano.ziglio@citrix.com>
 <fdc9fd41-2224-4672-911e-3e17b428d32a@gmail.com>
 <CAHt6W4eyH_7c4Q-KYaDjNJnSXjKSVNT1iSw0sNbLMXnK3iEHRg@mail.gmail.com>
 <d193feac-3285-4c26-9a8a-ba09437e7e76@gmail.com>
 <CAHt6W4fEbuk+VzjFxfz5=T8GXCVW_jSoqqMAkiQTXL79B93SPg@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAHt6W4fEbuk+VzjFxfz5=T8GXCVW_jSoqqMAkiQTXL79B93SPg@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.11.2025 10:58, Frediano Ziglio wrote:
> On Thu, 6 Nov 2025 at 03:52, Demi Marie Obenour <demiobenour@gmail.com> wrote:
>> Does objdump on the signed file return correct section names?
> 
> From objdump -x
> 
> Sections:
> Idx Name          Size      VMA               LMA               File off  Algn
>   0 .text         0016c9ae  ffff82d040200000  ffff82d040200000  00000320  2**4
>                   CONTENTS, ALLOC, LOAD, READONLY, CODE
>   1 .rodata       0006b9e8  ffff82d040400000  ffff82d040400000  0016cce0  2**2
>                   CONTENTS, ALLOC, LOAD, DATA
>   2 .buildid      00000035  ffff82d04046c000  ffff82d04046c000  001d86e0  2**2
>                   CONTENTS, ALLOC, LOAD, READONLY, DATA
>   3 .init.text    0004d123  ffff82d040600000  ffff82d040600000  001d8720  2**2
>                   CONTENTS, ALLOC, LOAD, READONLY, CODE
>   4 .init.data    0006c9b0  ffff82d040800000  ffff82d040800000  00225860  2**2
>                   CONTENTS, ALLOC, LOAD, DATA
>   5 .data.read_mostly 00028da8  ffff82d040a00000  ffff82d040a00000
> 00292220  2**4
>                   CONTENTS, ALLOC, LOAD, DATA
>   6 .data         0000feec  ffff82d040a29000  ffff82d040a29000  002bafe0  2**4
>                   CONTENTS, ALLOC, LOAD, DATA
>   7 .bss          00223108  ffff82d040a39000  ffff82d040a39000  00000000  2**4
>                   ALLOC
>   8 .reloc        000016b8  ffff82d040c5d000  ffff82d040c5d000  002caee0  2**2
>                   CONTENTS, ALLOC, LOAD, READONLY, DATA
>   9 .sbat         000000a6  ffff82d040c5f000  ffff82d040c5f000  002cc5a0  2**2
>                   CONTENTS, READONLY
> 
> Which looks correct.
> 
> From hexdump -C I can see close to the end
> 
> ...
> 002cc580  30 ae 38 ae 60 ae 00 00  00 80 a3 00 10 00 00 00  |0.8.`...........|
> 002cc590  a0 ae c0 ae e0 ae 00 00  00 00 00 00 00 00 00 00  |................|
> 002cc5a0  73 62 61 74 2c 31 2c 53  42 41 54 20 56 65 72 73  |sbat,1,SBAT Vers|
> 002cc5b0  69 6f 6e 2c 73 62 61 74  2c 31 2c 68 74 74 70 73  |ion,sbat,1,https|
> 002cc5c0  3a 2f 2f 67 69 74 68 75  62 2e 63 6f 6d 2f 72 68  |://github.com/rh|
> 002cc5d0  62 6f 6f 74 2f 73 68 69  6d 2f 62 6c 6f 62 2f 6d  |boot/shim/blob/m|
> 002cc5e0  61 69 6e 2f 53 42 41 54  2e 6d 64 0a 78 65 6e 2e  |ain/SBAT.md.xen.|
> 002cc5f0  78 73 2c 31 2c 43 6c 6f  75 64 20 53 6f 66 74 77  |xs,1,Cloud Softw|
> 002cc600  61 72 65 20 47 72 6f 75  70 2c 78 65 6e 2c 34 2e  |are Group,xen,4.|
> 002cc610  32 30 2e 31 2d 37 2e 32  32 2e 67 33 65 30 36 37  |20.1-7.22.g3e067|
> 002cc620  32 36 62 2e 78 73 39 2c  6d 61 69 6c 74 6f 3a 73  |26b.xs9,mailto:s|
> 002cc630  65 63 75 72 69 74 79 40  78 65 6e 73 65 72 76 65  |ecurity@xenserve|
> 002cc640  72 2e 63 6f 6d 0a 00 00  00 00 00 00 00 00 00 00  |r.com...........|
> 002cc650  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
> 002cc660  2c 00 00 00 2e 69 6e 69  74 2e 74 65 78 74 00 2e  |,....init.text..|
> 002cc670  69 6e 69 74 2e 64 61 74  61 00 2e 64 61 74 61 2e  |init.data..data.|
> 002cc680  72 65 61 64 5f 6d 6f 73  74 6c 79 00 00 00 00 00  |read_mostly.....|
> 002cc690  9e 05 00 00 00 02 02 00  30 82 05 92 06 09 2a 86  |........0.....*.|
> 002cc6a0  48 86 f7 0d 01 07 02 a0  82 05 83 30 82 05 7f 02  |H..........0....|
> 002cc6b0  01 01 31 0f 30 0d 06 09  60 86 48 01 65 03 04 02  |..1.0...`.H.e...|
> 002cc6c0  01 05 00 30 5c 06 0a 2b  06 01 04 01 82 37 02 01  |...0\..+.....7..|
> 002cc6d0  04 a0 4e 30 4c 30 17 06  0a 2b 06 01 04 01 82 37  |..N0L0...+.....7|
> 002cc6e0  02 01 0f 30 09 03 01 00  a0 04 a2 02 80 00 30 31  |...0..........01|
> 002cc6f0  30 0d 06 09 60 86 48 01  65 03 04 02 01 05 00 04  |0...`.H.e.......|
> 002cc700  20 e2 47 64 f8 e8 7b 62  eb 17 e0 13 0a 0d 93 02  | .Gd..{b........|
> 002cc710  7a d8 3b f0 20 a8 ee 3d  49 98 3f de c1 47 de 15  |z.;. ..=I.?..G..|
> 002cc720  43 a0 82 03 2c 30 82 03  28 30 82 02 10 a0 03 02  |C...,0..(0......|
> 002cc730  01 02 02 11 00 8f fc 11  bf 41 54 40 74 89 2c 53  |.........AT@t.,S|
> 002cc740  a5 78 c1 e8 32 30 0d 06  09 2a 86 48 86 f7 0d 01  |.x..20...*.H....|
> 002cc750  01 0b 05 00 30 1c 31 1a  30 18 06 03 55 04 03 13  |....0.1.0...U...|
> 002cc760  11 58 65 6e 53 65 72 76  65 72 20 58 65 6e 20 64  |.XenServer Xen d|
> 002cc770  65 76 30 1e 17 0d 32 35  30 33 32 30 31 36 35 35  |ev0...2503201655|
> 002cc780  30 37 5a 17 0d 33 37 30  31 31 39 30 33 31 34 30  |07Z..37011903140|
> 002cc790  37 5a 30 1c 31 1a 30 18  06 03 55 04 03 13 11 58  |7Z0.1.0...U....X|
> 002cc7a0  65 6e 53 65 72 76 65 72  20 58 65 6e 20 64 65 76  |enServer Xen dev|
> ...
> 
> So, this confirms that the string table is there to support larger
> section names and the signature is there and it's working.

But is it going to work on all EFI implementations, or merely the one you tried?
Of course it would help if Demi could give more concrete pointers to (possible)
implementations where there might be (known? suspected?) issues.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 10:30:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 10:30:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156716.1485721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGxFn-0006Jk-Vk; Thu, 06 Nov 2025 10:30:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156716.1485721; Thu, 06 Nov 2025 10:30:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGxFn-0006Jd-T9; Thu, 06 Nov 2025 10:30:07 +0000
Received: by outflank-mailman (input) for mailman id 1156716;
 Thu, 06 Nov 2025 10:30: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=eIRr=5O=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vGxFn-0006JX-5U
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 10:30:07 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 8ce6d35a-bafb-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 11:30: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 B85731596;
 Thu,  6 Nov 2025 02:29:52 -0800 (PST)
Received: from [10.1.34.75] (unknown [10.1.34.75])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id CB9A53F66E;
 Thu,  6 Nov 2025 02:29: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: 8ce6d35a-bafb-11f0-980a-7dc792cee155
Message-ID: <b3e4a92f-5b51-4eee-bfb8-c454add0f0d2@arm.com>
Date: Thu, 6 Nov 2025 10:29:50 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/12] powerpc/64s: Do not re-activate batched TLB
 flush
To: "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-2-kevin.brodsky@arm.com>
 <87qzud42n1.ritesh.list@gmail.com>
Content-Language: en-GB
From: Kevin Brodsky <kevin.brodsky@arm.com>
In-Reply-To: <87qzud42n1.ritesh.list@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05/11/2025 02:46, Ritesh Harjani (IBM) wrote:
> Kevin Brodsky <kevin.brodsky@arm.com> writes:
>
>> From: Alexander Gordeev <agordeev@linux.ibm.com>
>>
>> Since commit b9ef323ea168 ("powerpc/64s: Disable preemption in hash
>> lazy mmu mode") a task can not be preempted while in lazy MMU mode.
>> Therefore, the batch re-activation code is never called, so remove it.
>>
>> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
>> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
>> ---
>>  arch/powerpc/include/asm/thread_info.h |  2 --
>>  arch/powerpc/kernel/process.c          | 25 -------------------------
>>  2 files changed, 27 deletions(-)
>>
> Since the commit referenced in above disables the preemption in
> arch_enter_lazy_mmu(), so the expectation is that we will never be
> context switched while in lazy_mmu, hence the code changes in
> switch_to() around __flush_tlb_pending() should ideally never be called.

Correct, that's the idea.

> With this analysis - the patch looks good to me. I will give this entire
> patch series a try on Power HW with Hash mmu too (which uses lazy mmu and
> let you know the results of that)!

That'd be very appreciated, thanks a lot!

> For this patch please feel free to add:
> Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
>
>
> CC: Venkat who also runs CI on linux Power HW for upstream testing :)

Ack, will Cc you both in the next version.

- Kevin


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 10:32:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 10:32:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156728.1485731 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGxHb-0006qI-9a; Thu, 06 Nov 2025 10:31:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156728.1485731; Thu, 06 Nov 2025 10: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 1vGxHb-0006qB-6f; Thu, 06 Nov 2025 10:31:59 +0000
Received: by outflank-mailman (input) for mailman id 1156728;
 Thu, 06 Nov 2025 10: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=eIRr=5O=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vGxHa-0006q5-6O
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 10:31:58 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id d13f7233-bafb-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 11:31: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 87B131596;
 Thu,  6 Nov 2025 02:31:47 -0800 (PST)
Received: from [10.1.34.75] (unknown [10.1.34.75])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 32C3E3F66E;
 Thu,  6 Nov 2025 02:31: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: d13f7233-bafb-11f0-9d17-b5c5bf9af7f9
Message-ID: <0276c749-9418-47ea-85f1-0b0ab93b0225@arm.com>
Date: Thu, 6 Nov 2025 10:31:46 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/12] powerpc/mm: implement arch_flush_lazy_mmu_mode()
To: "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-4-kevin.brodsky@arm.com>
 <87pl9x41c5.ritesh.list@gmail.com> <87jz044xn4.ritesh.list@gmail.com>
Content-Language: en-GB
From: Kevin Brodsky <kevin.brodsky@arm.com>
In-Reply-To: <87jz044xn4.ritesh.list@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05/11/2025 09:49, Ritesh Harjani (IBM) wrote:
> Ritesh Harjani (IBM) <ritesh.list@gmail.com> writes:
>
>> Kevin Brodsky <kevin.brodsky@arm.com> writes:
>>
>>> Upcoming changes to the lazy_mmu API will cause
>>> arch_flush_lazy_mmu_mode() to be called when leaving a nested
>>> lazy_mmu section.
>>>
>>> Move the relevant logic from arch_leave_lazy_mmu_mode() to
>>> arch_flush_lazy_mmu_mode() and have the former call the latter.
>>>
>>> Note: the additional this_cpu_ptr() on the
>>> arch_leave_lazy_mmu_mode() path will be removed in a subsequent
>>> patch.
>>>
>>> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
>>> ---
>>>  .../powerpc/include/asm/book3s/64/tlbflush-hash.h | 15 +++++++++++----
>>>  1 file changed, 11 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
>>> index 146287d9580f..7704dbe8e88d 100644
>>> --- a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
>>> +++ b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
>>> @@ -41,6 +41,16 @@ static inline void arch_enter_lazy_mmu_mode(void)
>>>  	batch->active = 1;
>>>  }
>>>  
>>> +static inline void arch_flush_lazy_mmu_mode(void)
>>> +{
>>> +	struct ppc64_tlb_batch *batch;
>>> +
>>> +	batch = this_cpu_ptr(&ppc64_tlb_batch);
>>> +
>>> +	if (batch->index)
>>> +		__flush_tlb_pending(batch);
>>> +}
>>> +
>> This looks a bit scary since arch_flush_lazy_mmu_mode() is getting
>> called from several of the places in later patches(). 
>>
>> Although I think arch_flush_lazy_mmu_mode() will only always be called
>> in nested lazy mmu case right?
>>
>> Do you think we can add a VM_BUG_ON(radix_enabled()); in above to make
>> sure the above never gets called in radix_enabled() case. 
>>
>> I am still going over the patch series, but while reviewing this I
>> wanted to take your opinion.
>>
>> Ohh wait.. There is no way of knowing the return value from
>> arch_enter_lazy_mmu_mode().. I think you might need a similar check to
>> return from arch_flush_lazy_mmu_mode() too, if radix_enabled() is true.
>>
> Now that I have gone through this series, it seems plaussible that since
> lazy mmu mode supports nesting, arch_flush_lazy_mmu_mode() can get
> called while the lazy mmu is active due to nesting.. 
>
> That means we should add the radix_enabled() check as I was talking in
> above i.e. 
>
> @@ -38,6 +38,9 @@ static inline void arch_flush_lazy_mmu_mode(void)
>  {
>         struct ppc64_tlb_batch *batch;
>
> +       if (radix_enabled())
> +               return;
> +
>         batch = this_cpu_ptr(&ppc64_tlb_batch);
>
>         if (batch->index)
>
> Correct? Although otherwise also I don't think it should be a problem
> because batch->index is only valid during hash, but I still think we can
> add above check so that we don't have to call this_cpu_ptr() to check
> for batch->index whenever flush is being called.

You're right! I missed this because v3 had an extra patch (13) that
turned all the lazy_mmu_mode_* into no-ops if radix_enabled(). The
optimisation didn't seem to be worth the noise so I dropped it, but it
does mean that arch_flush() will now be called in the nested case
regardless of radix_enabled().

Will fix in v5, thanks!

- Kevin


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 10:32:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 10:32:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156737.1485741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGxI1-0007JK-GZ; Thu, 06 Nov 2025 10:32:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156737.1485741; Thu, 06 Nov 2025 10:32: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 1vGxI1-0007JD-Dy; Thu, 06 Nov 2025 10:32:25 +0000
Received: by outflank-mailman (input) for mailman id 1156737;
 Thu, 06 Nov 2025 10:32: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGxI0-0007J7-N1
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 10:32:24 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e13e2558-bafb-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 11:32:22 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-afcb7ae6ed0so130143666b.3
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 02:32: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
 4fb4d7f45d1cf-6411f857839sm1566156a12.21.2025.11.06.02.32.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 02:32: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: e13e2558-bafb-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762425142; x=1763029942; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dIvyeFrIArmJr1GH8+pAp9ORSEHiuvoXT7PzKji6mN0=;
        b=c+a8Aqg+aKuHJDDiMPlwCdgdazCCAyBTQ9VcAA840anOPp6FP3LJbNRsaPAWLxcvQ8
         p/QxgJXyTzfqfKaPaieWEuNJq/kTbIDfygV72JTqNWbDFqL6+TfkxjyTVyVEmWiRdIki
         M9RG9swfoSVgVY2V1dhhSHcuSlYwPBRowT2IYssRXD+dUFBh1Jyi1O5G+h+BmMEMK76s
         ATRZm4ZpK/al2U3AJcsnMTF80P4XN6PTOe0FEa/leufJdLv58qx/52oFCN0ojOSB9aCC
         Fo99CtMd+bG9HD6/cDNLdJZpUrdtumh9gzZSUVZF+tPb1B49tQInOgkSHnZnCSUsVgT1
         h/qA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762425142; x=1763029942;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dIvyeFrIArmJr1GH8+pAp9ORSEHiuvoXT7PzKji6mN0=;
        b=e4zbMSLgLgTD7Man0UHnJuy6NMMue14KOSWbiorP4W11FHo+OVrvzZEb1eIzxw4S7q
         g78/9U9GbaGVrANg5GOvVQWUC71KUk935KrJcb6x4XqKRsFJmnpoYbh+3f3qI+dGvAzM
         RAok4uRZQi4kKU98HryxNNn8mirzq/kL8S9/u0OhlZyq3ser29gH1QjxQ2mzvAcH9T46
         8WEARDoXiMqM3zzELD4nRSA8mSDJlzkhF3rYrLXoppKv9L2+Mdd2CkLRJych9PuakLs8
         gwKKuUQvKwPV+v2kpVWVAjP62f0BbKqmf3IKHUwanKSevrr0ZYEiZwPggN0rot/5ZdYq
         uMAA==
X-Forwarded-Encrypted: i=1; AJvYcCUBBcFL5F0kpZheXdiYVHhl5zVGHv3/xM39wUYeYSCV8izY/9yihWOUuDGy+2/oMXm+Wkx0UvNGXts=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyRZYIBClEs7iVt+DZf5IMZXq+PlyRREPCfMMHDyjHEQCkWfaJh
	emZaQrjAjvnwGTVMfUnKIuhZKpKtl5wjgzqEPGwlKetzmGQDZxQ1ScAEDRkmyC4XhA==
X-Gm-Gg: ASbGncueXs7phCvbfIjuCFPhNOxZSAPyqRRCr2WD2bDc7eD05ejECd1J1txaPc1eTAq
	S8qbEwjElfzmI8I4Ft6p5eKGavHp10SB3GlYrxisoV5kbASkHzoEgireRMhuWyZBNSZvRacwgZN
	XHPcg+OHxj+WIAPLJzzXo4nBOa9vDontwQebo+iMbOTpS0SqvT5tlksNWzWhS97CIrchUzIoRoK
	qIBqMC8/b3OMKMWS6xtCjXAhZ0s8wXrMsBmBdajFyUuNc7UzmZI+eCiVkBrExOfAhy99DgDA2PW
	KA7c2dLLcJPhAyVm6uj8p4yExBWKY2JtQKSoQJtLmlnjMNNJ3yUV8oXXd3a/xbQgEZLUhlnjAdq
	vP6kloVWOSZZXv+f0s79jlXfidbwaIJ0890F90BhIJWt9+AJmhFhci6Spv7BkVws8p7wKD7bt2L
	FR5lkSPWEwY9P5GqkvimPP53a+r+xDh67VqWLqbfa6yv0T0pqOk1zrmzgL3YqcGbIke5Uer/sOt
	wQL95qOjA==
X-Google-Smtp-Source: AGHT+IElHNXiazwQHRAe3/ffHxNo6BGZxmA5nIbkC5HDZu1FCAFn3BRacEyqUcXJ63nCZOldeSE4OA==
X-Received: by 2002:a17:907:7f14:b0:b6d:67b0:ca0b with SMTP id a640c23a62f3a-b72655a6bf7mr662150566b.61.1762425142046;
        Thu, 06 Nov 2025 02:32:22 -0800 (PST)
Message-ID: <97611b79-228c-40a6-9fb2-4571b2447258@suse.com>
Date: Thu, 6 Nov 2025 11:32:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen: Strip xen.efi by default
To: Frediano Ziglio <frediano.ziglio@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Frediano Ziglio <freddy77@gmail.com>
References: <20251105153808.20278-1-frediano.ziglio@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: <20251105153808.20278-1-frediano.ziglio@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.11.2025 16:38, Frediano Ziglio wrote:
> From: Frediano Ziglio <frediano.ziglio@cloud.com>
> 
> For xen.gz file we strip all symbols and have an additional
> xen-syms file version with all symbols.
> Make xen.efi more coherent stripping all symbols too.
> xen-syms.efi can be used for debugging.
> 
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> ---
> Changes since v1:
> - avoid leaving target if some command fails.
> 
> Changes since v2:
> - do not convert type but retain PE format;
> = use xen-syms.efi for new file name, more consistent with ELF.
> ---
>  docs/misc/efi.pandoc  |  8 +-------
>  xen/Kconfig.debug     |  9 ++-------
>  xen/Makefile          | 19 -------------------
>  xen/arch/x86/Makefile |  9 ++++++---
>  4 files changed, 9 insertions(+), 36 deletions(-)
> 
> diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
> index 11c1ac3346..c66b18a66b 100644
> --- a/docs/misc/efi.pandoc
> +++ b/docs/misc/efi.pandoc
> @@ -20,13 +20,7 @@ Xen to load the configuration file even if multiboot modules are found.
>  Once built, `make install-xen` will place the resulting binary directly into
>  the EFI boot partition, provided `EFI_VENDOR` is set in the environment (and
>  `EFI_MOUNTPOINT` is overridden as needed, should the default of `/boot/efi` not
> -match your system). When built with debug info, the binary can be quite large.
> -Setting `INSTALL_EFI_STRIP=1` in the environment will cause it to be stripped
> -of debug info in the process of installing. `INSTALL_EFI_STRIP` can also be set
> -to any combination of options suitable to pass to `strip`, in case the default
> -ones don't do. The xen.efi binary will also be installed in `/usr/lib64/efi/`,
> -unless `EFI_DIR` is set in the environment to override this default. This
> -binary will not be stripped in the process.
> +match your system).
>  
>  The binary itself will require a configuration file (names with the `.efi`
>  extension of the binary's name replaced by `.cfg`, and - until an existing
> diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
> index d900d926c5..58ee10ee3e 100644
> --- a/xen/Kconfig.debug
> +++ b/xen/Kconfig.debug
> @@ -147,12 +147,7 @@ config DEBUG_INFO
>  	  Say Y here if you want to build Xen with debug information. This
>  	  information is needed e.g. for doing crash dump analysis of the
>  	  hypervisor via the "crash" tool.
> -	  Saying Y will increase the size of the xen-syms and xen.efi
> -	  binaries. In case the space on the EFI boot partition is rather
> -	  limited, you may want to install a stripped variant of xen.efi in
> -	  the EFI boot partition (look for "INSTALL_EFI_STRIP" in
> -	  docs/misc/efi.pandoc for more information - when not using
> -	  "make install-xen" for installing xen.efi, stripping needs to be
> -	  done outside the Xen build environment).
> +	  Saying Y will increase the size of the xen-syms and xen.efi.elf
> +	  binaries.

Why xen.efi.elf and not xen-syms.efi?

> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -228,14 +228,17 @@ endif
>  	$(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
>  	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
>  	      $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
> -	      $(note_file_option) -o $@
> -	$(NM) -pa --format=sysv $@ \
> +	      $(note_file_option) -o $@.tmp
> +	$(NM) -pa --format=sysv $@.tmp \
>  		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
>  		> $@.map
>  ifeq ($(CONFIG_DEBUG_INFO),y)
> -	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
> +	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))cp -f \
> +        $@.tmp $(TARGET)-syms.efi
> +	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(STRIP) $@.tmp
>  endif
>  	rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
> +	mv -f $@.tmp $@
>  ifeq ($(CONFIG_XEN_IBT),y)
>  	$(SHELL) $(srctree)/tools/check-endbr.sh $@
>  endif

I see $@.tmp here, but no sign of xen-syms. Did you submit a stake patch? Am
I missing something?

I also think the mv should sit ahead of the cleaning-up rm.

Jan

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 10:33:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 10:33:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156750.1485751 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGxJA-0007rK-Q4; Thu, 06 Nov 2025 10:33:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156750.1485751; Thu, 06 Nov 2025 10:33:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGxJA-0007rD-Mf; Thu, 06 Nov 2025 10:33:36 +0000
Received: by outflank-mailman (input) for mailman id 1156750;
 Thu, 06 Nov 2025 10:33:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eIRr=5O=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vGxJ9-0007r5-Mt
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 10:33:35 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 0bf40853-bafc-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 11:33:34 +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 260141596;
 Thu,  6 Nov 2025 02:33:26 -0800 (PST)
Received: from [10.1.34.75] (unknown [10.1.34.75])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 9451F3F66E;
 Thu,  6 Nov 2025 02:33: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: 0bf40853-bafc-11f0-9d17-b5c5bf9af7f9
Message-ID: <1ac5be9f-fc05-463f-9512-74922acf8980@arm.com>
Date: Thu, 6 Nov 2025 10:33:24 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 05/12] mm: introduce CONFIG_ARCH_HAS_LAZY_MMU_MODE
To: "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-6-kevin.brodsky@arm.com>
 <87o6ph3xdq.ritesh.list@gmail.com>
Content-Language: en-GB
From: Kevin Brodsky <kevin.brodsky@arm.com>
In-Reply-To: <87o6ph3xdq.ritesh.list@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05/11/2025 04:40, Ritesh Harjani (IBM) wrote:
> Kevin Brodsky <kevin.brodsky@arm.com> writes:
>
>> Architectures currently opt in for implementing lazy_mmu helpers by
>> defining __HAVE_ARCH_ENTER_LAZY_MMU_MODE.
>>
>> In preparation for introducing a generic lazy_mmu layer that will
>> require storage in task_struct, let's switch to a cleaner approach:
>> instead of defining a macro, select a CONFIG option.
>>
>> This patch introduces CONFIG_ARCH_HAS_LAZY_MMU_MODE and has each
>> arch select it when it implements lazy_mmu helpers.
>> __HAVE_ARCH_ENTER_LAZY_MMU_MODE is removed and <linux/pgtable.h>
>> relies on the new CONFIG instead.
>>
>> On x86, lazy_mmu helpers are only implemented if PARAVIRT_XXL is
>> selected. This creates some complications in arch/x86/boot/, because
>> a few files manually undefine PARAVIRT* options. As a result
>> <asm/paravirt.h> does not define the lazy_mmu helpers, but this
>> breaks the build as <linux/pgtable.h> only defines them if
>> !CONFIG_ARCH_HAS_LAZY_MMU_MODE. There does not seem to be a clean
>> way out of this - let's just undefine that new CONFIG too.
>>
>> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
>> ---
>>  arch/arm64/Kconfig                                 | 1 +
>>  arch/arm64/include/asm/pgtable.h                   | 1 -
>>  arch/powerpc/include/asm/book3s/64/tlbflush-hash.h | 2 --
>>  arch/powerpc/platforms/Kconfig.cputype             | 1 +
>>  arch/sparc/Kconfig                                 | 1 +
>>  arch/sparc/include/asm/tlbflush_64.h               | 2 --
>>  arch/x86/Kconfig                                   | 1 +
>>  arch/x86/boot/compressed/misc.h                    | 1 +
>>  arch/x86/boot/startup/sme.c                        | 1 +
>>  arch/x86/include/asm/paravirt.h                    | 1 -
>>  include/linux/pgtable.h                            | 2 +-
>>  mm/Kconfig                                         | 3 +++
>>  12 files changed, 10 insertions(+), 7 deletions(-)
> Maybe we can add this to ... ?
>
> Documentation/features/vm/lazy_mmu/arch-support.txt
>
> #
> # Feature name:          lazy_mmu mode
> #         Kconfig:       ARCH_HAS_LAZY_MMU_MODE
> #         description:   arch supports arch_{enter|flush|leave}_lazy_mmu_mode()
> #
>     -----------------------
>     |         arch |status|
>     -----------------------
>     |       arm64: |  ok  |
>     |     powerpc: |  ok  |
>     |       sparc: |  ok  |
>     |         x86: |  ok  |
>     -----------------------

That's an interesting idea but I'm not sure it really makes sense for
lazy MMU? AFAIU these arch-support.txt files are meant to help identify
which generic features an arch has support for. Lazy MMU isn't really a
feature though, in the sense that what it does is entirely defined by
the arch. This patch does introduce a generic layer, but ultimately it
remains a collection of arch hooks.

> As for this patch, the changes are mostly straight forward around the
> configs part. This looks good to me. Please feel free to add: 
>
> Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>

Thanks for the review!

- Kevin


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 10:38:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 10:38:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156763.1485763 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGxO7-00005r-Bo; Thu, 06 Nov 2025 10:38:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156763.1485763; Thu, 06 Nov 2025 10: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 1vGxO7-00005j-7e; Thu, 06 Nov 2025 10:38:43 +0000
Received: by outflank-mailman (input) for mailman id 1156763;
 Thu, 06 Nov 2025 10:38: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGxO5-00005d-Vg
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 10:38:41 +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 c1f8b9cf-bafc-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 11:38:40 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-640a3317b89so1153220a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 02:38: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
 4fb4d7f45d1cf-6411f7139bdsm1513803a12.4.2025.11.06.02.38.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 02:38: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: c1f8b9cf-bafc-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762425519; x=1763030319; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3HoG/sawNEL1H9AyIx0SpBvW0Wi4hQFqTXnmf8cI7S0=;
        b=dbHAheLU/iEEhCKrtbBbXBno76jcEuI748OA9wSIMgjZBi1/xiFtGXVExCvdApjNgi
         kLX0nQ2tnLwtWjs+3wNKGrv7BkoVyLy2JuV1aeZe216tX36dDr0Aky9dBjs6MlEbjYvn
         1LjkvYeyuW4/qmtbOpEGX9QX4i+CB8dEwjFnI/BJbDsJiZd7ZmjlF9kyTo1xn1/xGCTW
         X3CXHggHurHGZgQVYlnCcPcvS0sxBN1aNbrtL8i8AlH9TkC4VdIxoUEp5pswcMyPcqlI
         VuOuK/KhB93mFJ0JUGrR+K++/cIYBNMASrDy+fhDEXzao1rdNLcuoTOk8liWPdWrabL+
         mRSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762425519; x=1763030319;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3HoG/sawNEL1H9AyIx0SpBvW0Wi4hQFqTXnmf8cI7S0=;
        b=AAoS3rxWSSgamnX4U8HGUIDoFYy7vFU2lV8+wppUZH+SiOCQp3aAhCqF9FRBZ3YKRC
         qvlYXyhYaGiYpjKPH/Z2PhfNf7F7mj74NY75/gHRRQZRm7IjxvCYmk/UjTi080t+Aorz
         V4l1kvCadey4ev9qbx0+UQ439+fQSvyrosJI4sX73UepBQ31RaS7Njkz4R4T+kX/h3BD
         ZPPwUOflW5f+rLSLydvagNiYMLSBWC5q/I7/GlT+CTigQYvaFgUqzlpiJfvAC7BBbxdy
         TtieEh1ajJJ8db75e2VdpirSz/K2YVGTda6gZFssyodga8oGC0Yb5PJ7ij1e+VlwE3v/
         7shg==
X-Forwarded-Encrypted: i=1; AJvYcCXaw8Z9vIluDf0VVF4Fh5R53YYKXTuLfIoPmrVtB6OOZYX2XONnO29SlFZAcwGih4+Ut9Y5u0xvkt0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzPksePPL5BNNptoGUIQMdFRN68LXVpkXUQzjHjPyN+f74JgvK1
	xjLakkjWtFtlBkABl+KGRctm5kwnJ+9LZGavj1CGFicZMPTkN+8qVay+5+P3AjPCNQ==
X-Gm-Gg: ASbGnctOuoLKkGqqtxekgf8tMPH63cspWqTYechOKIWbJiyxaN9LSB0w2jGuVBaSiRQ
	Ywr4vfvHVuhfXaoBL0G3z7zDlIYQymCS7tqdCzYr7Sm9obU3esfHryFBOoDMlN+42MDpmUeCq0z
	TZaRBSe3Ub/IuQSMphvlPip4+ijffv28vQHYRbj0BdGW6rGSX23by+6VuR0r4j8pgk0yRPe0WRw
	okFF8gOnqGTJgTvpcczpRQNekzjocviWVgONuIOiPvtKLs5dF5qRO9vbApaCvb2DqdWufoqq/Q2
	2UGO9PPBYC11shHJJZngvNvZBDxNuBcLq7zAbvcg/ngbB2+d2g8CeX9YOuxKZbuo5fkEcUczsqD
	4gdmHDyHKTv6L6mt7EDt+mJR72YJggd4z+IexTWXJnjrCR5xMI98ZOW9gVfdqgP7w/TMPS9VMRr
	G+J1ghaUq1d2YoSWjTlHPAMNNqqXeiM/Dll5tsJrC8lqA0417zuqGPGD2ETQ/v
X-Google-Smtp-Source: AGHT+IH7p4VKVc5RuSSUElzT8P8oyJE3YBsHkqy/jjfWST1Z8rt/tlSOlDyATrlcLGaRV6tYKW1k7w==
X-Received: by 2002:a05:6402:1f82:b0:638:74dc:cf78 with SMTP id 4fb4d7f45d1cf-64105b80064mr5966274a12.34.1762425519236;
        Thu, 06 Nov 2025 02:38:39 -0800 (PST)
Message-ID: <bcc9e26b-c654-4577-963a-83ab3aaeb37a@suse.com>
Date: Thu, 6 Nov 2025 11:38:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 3/5] lib/arm: Add I/O memory copy helpers
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>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1761998077.git.oleksii_moisieiev@epam.com>
 <33372689f3097b0dde1d47b81a1bb8176b35d20c.1761998077.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: <33372689f3097b0dde1d47b81a1bb8176b35d20c.1761998077.git.oleksii_moisieiev@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.11.2025 12:56, Oleksii Moisieiev wrote:
> --- /dev/null
> +++ b/xen/lib/arm/Makefile
> @@ -0,0 +1 @@
> +obj-y += io.o

Yet one more thing: For a library, I think every function wants to live in its
own source file, such that under no conditions any unused code would be linked
in.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 10:41:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 10:41:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156776.1485772 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGxQW-0001nB-Q8; Thu, 06 Nov 2025 10:41:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156776.1485772; Thu, 06 Nov 2025 10:41: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 1vGxQW-0001n4-N4; Thu, 06 Nov 2025 10:41:12 +0000
Received: by outflank-mailman (input) for mailman id 1156776;
 Thu, 06 Nov 2025 10:41: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=j7P0=5O=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1vGxQV-0001lq-2J
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 10:41:11 +0000
Received: from mail-yx1-xb135.google.com (mail-yx1-xb135.google.com
 [2607:f8b0:4864:20::b135])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 18cad7ac-bafd-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 11:41:06 +0100 (CET)
Received: by mail-yx1-xb135.google.com with SMTP id
 956f58d0204a3-63fc8c337f2so684119d50.0
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 02:41:05 -0800 (PST)
Received: from [10.138.34.110]
 (h96-60-249-169.cncrtn.broadband.dynamic.tds.net. [96.60.249.169])
 by smtp.gmail.com with ESMTPSA id
 00721157ae682-787b159c5a3sm6824027b3.35.2025.11.06.02.41.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 02:41: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: 18cad7ac-bafd-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762425665; x=1763030465; 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=7HlSl1txf4LcJYLqgOBAu6Ib/8n6a+x+IOcB77G+RCA=;
        b=LpCyIKfftARNxNzWFMPMJniC7TPG6Qt/N99eNz63/S4PlHqoTkKIUWPrZIVPQQhX9h
         +Rsd/Zz4hhOCpzOWrwkNDST9R2XJU2Hwwie/GrRw6DkhAvy46yajIdoKoiSXesU0TZYH
         J31DklwzIKaYV0W97y1Hu5tqLklfv8zOXQGd6N3fVw004SKtQCkT72FA4xacRFzaHQ/Y
         907F4eXwuJKdnxT5LNOzYw84KwRywrh0gj4Hul7rTeGV/hrGFgwagXzGj4V3ztzB+7wz
         ZkcjJqbmA8XLLW+PRJS/3+LsZQQldi62Sh1EP0k5OC9GyvYfarHkkrtgrNj4tX6h1Bew
         G8Uw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762425665; x=1763030465;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=7HlSl1txf4LcJYLqgOBAu6Ib/8n6a+x+IOcB77G+RCA=;
        b=nYIDYI9XcbCvT+OsJJN1SmxIJ54xnuGRw5Wai1aXXguAJsfQR79vxbUsA4Lkwh0T0L
         53L1K1QyFZ/GPLR9ymiLFejY1u60KESmiN6iVV/gPNNjtEMMaOMaXzngTvqGQ8cUZx6N
         8D3ehxFivLOX0jo73zRAWTxElnyqxNWgan5/nh6q+Kewc8bZO4msyaTNPIJjF+7H+Ufm
         0vOUCP2AaBhBd2blcCjxVVCbf6iHISiPKtMW4VVPB5cZUaQzhRpPOPGqQNNeR2y8y2K/
         VtlKGYLMeUPzS/fBA7Pyorn+mYE6kKZa8TY+Kep7V+RrtSpakt0ZGV7tjkTjUYaPWmrr
         9wlA==
X-Gm-Message-State: AOJu0Yz1TvuSSE8PbQrW4VdBjF5h1z6oz/JdKDc4pBQLIf8Yk2AfMVBA
	QrKS/unkiUCEYOGaezYzi4zEtO+jAOV001X9maWKanpn1jvxESVhLr1e
X-Gm-Gg: ASbGncvFFAG72adYWcQFm0YHaPc+m7u3eWyJogGkDTjGRXdaxAjZ7SLtqjPVb1yICvC
	FXsu8/e+j390nUQ6cox26+COloeR7CDhRyZEr+3R1G08JWEsNBY0bUmTYUIJT/SXOynkJ3cN4T5
	SOBGl/pKv0BQUmbJzGvF9jdA4Q6l38AEdgne0o+oVdbS9tC4vqxQWsjjOdb7J2UE40+okd0/jYV
	0CRizT+kagKBDk0o57XcZiyU1SBKDt7ehbWSv6WN3TjtLLoxzLE9nKOBsapNVoD4KNwlSA6k54O
	idEUYPNbu84hALknZ/sALr6FeRofDZLXbhneQaApBc9Jda8BgeTKlj7fPPJ4TYvzkXYYFha0kjC
	xnhnTF4rP6d9qPfVFOa4yjNvJAr/G+a0wDTDDOtG1IXRSs+s1zQNekKDjOTb4yAdQDu3fOSs8ra
	LriNzntFn2ZsrtUD6woe1e7/kYxKqZfkhDzTd05pxz08UvC6h66L9bFfOtPFiSijpL+ToIT8Q4I
	4briOkG4aygp0s+81FAQG6MPkk=
X-Google-Smtp-Source: AGHT+IG7HWVvJ2IsWNl9hYZsZAWAg+5BAKLnS83sV7gxNE2ggu/06PG6ZGekzKBU7nVlKXO2jmc/lQ==
X-Received: by 2002:a05:690c:f81:b0:786:506c:3cd8 with SMTP id 00721157ae682-786a412ad5cmr112845047b3.21.1762425664455;
        Thu, 06 Nov 2025 02:41:04 -0800 (PST)
Message-ID: <d210647f-7a8d-42f8-8704-65e5c7ae23a9@gmail.com>
Date: Thu, 6 Nov 2025 05:40:59 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen: Strip xen.efi by default
To: Jan Beulich <jbeulich@suse.com>, Frediano Ziglio <freddy77@gmail.com>
Cc: xen-devel@lists.xenproject.org,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20251105153808.20278-1-frediano.ziglio@citrix.com>
 <fdc9fd41-2224-4672-911e-3e17b428d32a@gmail.com>
 <CAHt6W4eyH_7c4Q-KYaDjNJnSXjKSVNT1iSw0sNbLMXnK3iEHRg@mail.gmail.com>
 <d193feac-3285-4c26-9a8a-ba09437e7e76@gmail.com>
 <CAHt6W4fEbuk+VzjFxfz5=T8GXCVW_jSoqqMAkiQTXL79B93SPg@mail.gmail.com>
 <98e2f19f-5fce-4ad1-b821-f5abb1f815f6@suse.com>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <98e2f19f-5fce-4ad1-b821-f5abb1f815f6@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------593kG1U3oOX9eLmTLCNIK5Gu"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------593kG1U3oOX9eLmTLCNIK5Gu
Content-Type: multipart/mixed; boundary="------------xwuChLOhtgBM5Jv29d20D0lK";
 protected-headers="v1"
From: Demi Marie Obenour <demiobenour@gmail.com>
To: Jan Beulich <jbeulich@suse.com>, Frediano Ziglio <freddy77@gmail.com>
Cc: xen-devel@lists.xenproject.org,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Message-ID: <d210647f-7a8d-42f8-8704-65e5c7ae23a9@gmail.com>
Subject: Re: [PATCH v3] xen: Strip xen.efi by default
References: <20251105153808.20278-1-frediano.ziglio@citrix.com>
 <fdc9fd41-2224-4672-911e-3e17b428d32a@gmail.com>
 <CAHt6W4eyH_7c4Q-KYaDjNJnSXjKSVNT1iSw0sNbLMXnK3iEHRg@mail.gmail.com>
 <d193feac-3285-4c26-9a8a-ba09437e7e76@gmail.com>
 <CAHt6W4fEbuk+VzjFxfz5=T8GXCVW_jSoqqMAkiQTXL79B93SPg@mail.gmail.com>
 <98e2f19f-5fce-4ad1-b821-f5abb1f815f6@suse.com>
In-Reply-To: <98e2f19f-5fce-4ad1-b821-f5abb1f815f6@suse.com>
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=

--------------xwuChLOhtgBM5Jv29d20D0lK
Content-Type: multipart/mixed; boundary="------------K7SAaHIwDKVZ384xYkDCeOV8"

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

On 11/6/25 05:28, Jan Beulich wrote:
> On 06.11.2025 10:58, Frediano Ziglio wrote:
>> On Thu, 6 Nov 2025 at 03:52, Demi Marie Obenour <demiobenour@gmail.com=
> wrote:
>>> Does objdump on the signed file return correct section names?
>>
>> From objdump -x
>>
>> Sections:
>> Idx Name          Size      VMA               LMA               File o=
ff  Algn
>>   0 .text         0016c9ae  ffff82d040200000  ffff82d040200000  000003=
20  2**4
>>                   CONTENTS, ALLOC, LOAD, READONLY, CODE
>>   1 .rodata       0006b9e8  ffff82d040400000  ffff82d040400000  0016cc=
e0  2**2
>>                   CONTENTS, ALLOC, LOAD, DATA
>>   2 .buildid      00000035  ffff82d04046c000  ffff82d04046c000  001d86=
e0  2**2
>>                   CONTENTS, ALLOC, LOAD, READONLY, DATA
>>   3 .init.text    0004d123  ffff82d040600000  ffff82d040600000  001d87=
20  2**2
>>                   CONTENTS, ALLOC, LOAD, READONLY, CODE
>>   4 .init.data    0006c9b0  ffff82d040800000  ffff82d040800000  002258=
60  2**2
>>                   CONTENTS, ALLOC, LOAD, DATA
>>   5 .data.read_mostly 00028da8  ffff82d040a00000  ffff82d040a00000
>> 00292220  2**4
>>                   CONTENTS, ALLOC, LOAD, DATA
>>   6 .data         0000feec  ffff82d040a29000  ffff82d040a29000  002baf=
e0  2**4
>>                   CONTENTS, ALLOC, LOAD, DATA
>>   7 .bss          00223108  ffff82d040a39000  ffff82d040a39000  000000=
00  2**4
>>                   ALLOC
>>   8 .reloc        000016b8  ffff82d040c5d000  ffff82d040c5d000  002cae=
e0  2**2
>>                   CONTENTS, ALLOC, LOAD, READONLY, DATA
>>   9 .sbat         000000a6  ffff82d040c5f000  ffff82d040c5f000  002cc5=
a0  2**2
>>                   CONTENTS, READONLY
>>
>> Which looks correct.
>>
>> From hexdump -C I can see close to the end
>>
>> ...
>> 002cc580  30 ae 38 ae 60 ae 00 00  00 80 a3 00 10 00 00 00  |0.8.`....=
=2E......|
>> 002cc590  a0 ae c0 ae e0 ae 00 00  00 00 00 00 00 00 00 00  |.........=
=2E......|
>> 002cc5a0  73 62 61 74 2c 31 2c 53  42 41 54 20 56 65 72 73  |sbat,1,SB=
AT Vers|
>> 002cc5b0  69 6f 6e 2c 73 62 61 74  2c 31 2c 68 74 74 70 73  |ion,sbat,=
1,https|
>> 002cc5c0  3a 2f 2f 67 69 74 68 75  62 2e 63 6f 6d 2f 72 68  |://github=
=2Ecom/rh|
>> 002cc5d0  62 6f 6f 74 2f 73 68 69  6d 2f 62 6c 6f 62 2f 6d  |boot/shim=
/blob/m|
>> 002cc5e0  61 69 6e 2f 53 42 41 54  2e 6d 64 0a 78 65 6e 2e  |ain/SBAT.=
md.xen.|
>> 002cc5f0  78 73 2c 31 2c 43 6c 6f  75 64 20 53 6f 66 74 77  |xs,1,Clou=
d Softw|
>> 002cc600  61 72 65 20 47 72 6f 75  70 2c 78 65 6e 2c 34 2e  |are Group=
,xen,4.|
>> 002cc610  32 30 2e 31 2d 37 2e 32  32 2e 67 33 65 30 36 37  |20.1-7.22=
=2Eg3e067|
>> 002cc620  32 36 62 2e 78 73 39 2c  6d 61 69 6c 74 6f 3a 73  |26b.xs9,m=
ailto:s|
>> 002cc630  65 63 75 72 69 74 79 40  78 65 6e 73 65 72 76 65  |ecurity@x=
enserve|
>> 002cc640  72 2e 63 6f 6d 0a 00 00  00 00 00 00 00 00 00 00  |r.com....=
=2E......|
>> 002cc650  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |.........=
=2E......|
>> 002cc660  2c 00 00 00 2e 69 6e 69  74 2e 74 65 78 74 00 2e  |,....init=
=2Etext..|
>> 002cc670  69 6e 69 74 2e 64 61 74  61 00 2e 64 61 74 61 2e  |init.data=
=2E.data.|
>> 002cc680  72 65 61 64 5f 6d 6f 73  74 6c 79 00 00 00 00 00  |read_most=
ly.....|
>> 002cc690  9e 05 00 00 00 02 02 00  30 82 05 92 06 09 2a 86  |........0=
=2E....*.|
>> 002cc6a0  48 86 f7 0d 01 07 02 a0  82 05 83 30 82 05 7f 02  |H........=
=2E.0....|
>> 002cc6b0  01 01 31 0f 30 0d 06 09  60 86 48 01 65 03 04 02  |..1.0...`=
=2EH.e...|
>> 002cc6c0  01 05 00 30 5c 06 0a 2b  06 01 04 01 82 37 02 01  |...0\..+.=
=2E...7..|
>> 002cc6d0  04 a0 4e 30 4c 30 17 06  0a 2b 06 01 04 01 82 37  |..N0L0...=
+.....7|
>> 002cc6e0  02 01 0f 30 09 03 01 00  a0 04 a2 02 80 00 30 31  |...0.....=
=2E....01|
>> 002cc6f0  30 0d 06 09 60 86 48 01  65 03 04 02 01 05 00 04  |0...`.H.e=
=2E......|
>> 002cc700  20 e2 47 64 f8 e8 7b 62  eb 17 e0 13 0a 0d 93 02  | .Gd..{b.=
=2E......|
>> 002cc710  7a d8 3b f0 20 a8 ee 3d  49 98 3f de c1 47 de 15  |z.;. ..=3D=
I.?..G..|
>> 002cc720  43 a0 82 03 2c 30 82 03  28 30 82 02 10 a0 03 02  |C...,0..(=
0......|
>> 002cc730  01 02 02 11 00 8f fc 11  bf 41 54 40 74 89 2c 53  |.........=
AT@t.,S|
>> 002cc740  a5 78 c1 e8 32 30 0d 06  09 2a 86 48 86 f7 0d 01  |.x..20...=
*.H....|
>> 002cc750  01 0b 05 00 30 1c 31 1a  30 18 06 03 55 04 03 13  |....0.1.0=
=2E..U...|
>> 002cc760  11 58 65 6e 53 65 72 76  65 72 20 58 65 6e 20 64  |.XenServe=
r Xen d|
>> 002cc770  65 76 30 1e 17 0d 32 35  30 33 32 30 31 36 35 35  |ev0...250=
3201655|
>> 002cc780  30 37 5a 17 0d 33 37 30  31 31 39 30 33 31 34 30  |07Z..3701=
1903140|
>> 002cc790  37 5a 30 1c 31 1a 30 18  06 03 55 04 03 13 11 58  |7Z0.1.0..=
=2EU....X|
>> 002cc7a0  65 6e 53 65 72 76 65 72  20 58 65 6e 20 64 65 76  |enServer =
Xen dev|
>> ...
>>
>> So, this confirms that the string table is there to support larger
>> section names and the signature is there and it's working.
>=20
> But is it going to work on all EFI implementations, or merely the one y=
ou tried?
> Of course it would help if Demi could give more concrete pointers to (p=
ossible)
> implementations where there might be (known? suspected?) issues.
>=20
> Jan

I misread the PE hashing code in EDK2.  I assumed it mishandled the case =
where
there is data *between* the sections and the signature, but it actually m=
ishandles
the case where there is data *after* the signature.  I'll file an EDK2 PR=
 to
reject such images on the grounds that they could never have worked.
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------K7SAaHIwDKVZ384xYkDCeOV8
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-----

--------------K7SAaHIwDKVZ384xYkDCeOV8--

--------------xwuChLOhtgBM5Jv29d20D0lK--

--------------593kG1U3oOX9eLmTLCNIK5Gu
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/sszaHOrMp8lMFAmkMezwACgkQszaHOrMp
8lOjQg/9HKemwFBcSnu9bPQYz9t6oWv8uaCWqMRz5f0vE3Jnn9Vai68BI88QSDTM
He0Ber8QxP/x0eT2dT/IafavLsGCBALIUxjyDSYH7KnrdXcEhA5YNJpCHqVwMHCb
3Hd92DMYEOoLhBdSXMnT2MNrZk2FsUiwsHOe7NS+vJG/J0HWYK9vAP4OUSKfXTPr
5oJ9ApqajeSErXr3rohVPhoGGBiHdscTbuvcmowrjpzdFJAbrpySoLe8+/OLfFae
suNge63SiRFbXFAq2KYb3e8ToRHQCeQ7GSIfrZN3lG3mwZX/OfSREMPgWZz+YWhp
w/HG1zfkDTi7bIVElRSn9vIyJ+HNuf4ZXTbWXFxi2+z9TdFrUlDPgrwM+yFjekop
z/Wzu8e99BZYG5mB1mnctRtrlRcbPjqSOPIjVoiWqgRYpR1pi2vqS6RMXosQrB9n
lbGz2vqjRvgd9T9dOHb8TTeRbvCGm4xPla/TFjVsBEOwNInwDiaiC3df3mcXlkPx
HFizHIiGITWEaoCkMhdgM0zhJYDe5eD9GLJARWMRyswtmTCIIH8TjQG+lNIFHlkS
wJCjC/bdM52lCRdOfXjyVZDgp8WSTLzRu5FbcTglh+iPtzFvq+fQZLomgR6Sw2sO
eGmypxhJQ/JMUVS4198OP97RM9UjQAeG1btk5v0wCWHA2FPCR8E=
=vMWq
-----END PGP SIGNATURE-----

--------------593kG1U3oOX9eLmTLCNIK5Gu--


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 10:52:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 10:52:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156790.1485782 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGxau-0003bS-OV; Thu, 06 Nov 2025 10:51:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156790.1485782; Thu, 06 Nov 2025 10:51:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGxau-0003bL-Lk; Thu, 06 Nov 2025 10:51:56 +0000
Received: by outflank-mailman (input) for mailman id 1156790;
 Thu, 06 Nov 2025 10: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=eIRr=5O=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vGxau-0003bF-50
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 10:51:56 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 9b259ac1-bafe-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 11:51: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 20A081596;
 Thu,  6 Nov 2025 02:51:45 -0800 (PST)
Received: from [10.1.34.75] (unknown [10.1.34.75])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6866A3F63F;
 Thu,  6 Nov 2025 02: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: 9b259ac1-bafe-11f0-980a-7dc792cee155
Message-ID: <48a4ecb5-3412-4d3f-9e43-535f8bee505f@arm.com>
Date: Thu, 6 Nov 2025 10:51:43 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/12] mm: enable lazy_mmu sections to nest
To: Alexander Gordeev <agordeev@linux.ibm.com>,
 Ritesh Harjani <ritesh.list@gmail.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-8-kevin.brodsky@arm.com>
 <87ms5050g0.ritesh.list@gmail.com>
 <50d1b63a-88d7-4484-82c0-3bde96e3207d-agordeev@linux.ibm.com>
Content-Language: en-GB
From: Kevin Brodsky <kevin.brodsky@arm.com>
In-Reply-To: <50d1b63a-88d7-4484-82c0-3bde96e3207d-agordeev@linux.ibm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05/11/2025 16:12, Alexander Gordeev wrote:
> On Wed, Nov 05, 2025 at 02:19:03PM +0530, Ritesh Harjani wrote:
>>> + * in_lazy_mmu_mode() can be used to check whether the lazy MMU mode is
>>> + * currently enabled.
>>>   */
>>>  #ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>>>  static inline void lazy_mmu_mode_enable(void)
>>>  {
>>> -	arch_enter_lazy_mmu_mode();
>>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>>> +
>>> +	VM_WARN_ON_ONCE(state->nesting_level == U8_MAX);
>>> +	/* enable() must not be called while paused */
>>> +	VM_WARN_ON(state->nesting_level > 0 && !state->active);
>>> +
>>> +	if (state->nesting_level++ == 0) {
>>> +		state->active = true;
>>> +		arch_enter_lazy_mmu_mode();
>>> +	}
>>>  }
>> Some architectures disables preemption in their
>> arch_enter_lazy_mmu_mode(). So shouldn't the state->active = true should
>> happen after arch_enter_lazy_mmu_mode() has disabled preemption()? i.e.
> Do you have some scenario in mind that could cause an issue?
> IOW, what could go wrong if the process is scheduled to another
> CPU before preempt_disable() is called?

I'm not sure I understand the issue either.

>>   static inline void lazy_mmu_mode_enable(void)
>>   {
>>  -	arch_enter_lazy_mmu_mode();
>>  +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>>  +
>>  +	VM_WARN_ON_ONCE(state->nesting_level == U8_MAX);
>>  +	/* enable() must not be called while paused */
>>  +	VM_WARN_ON(state->nesting_level > 0 && !state->active);
>>  +
>>  +	if (state->nesting_level++ == 0) {
>>  +		arch_enter_lazy_mmu_mode();
>>  +		state->active = true;
>>  +	}
>>   }
>>
>> ... I think it make more sense to enable the state after the arch_**
>> call right.
> But then in_lazy_mmu_mode() would return false if called from
> arch_enter_lazy_mmu_mode(). Not big problem, but still..

The ordering of nesting_level/active was the way you expected in v3, but
the conclusion of the discussion with David H [1] is that it doesn't
really matter so I simplified the ordering in v4 - the arch hooks
shouldn't call in_lazy_mmu_mode() or inspect lazy_mmu_state.
arch_enter()/arch_leave() shouldn't need it anyway since they're called
once per outer section (not in nested sections). arch_flush() could
potentially do something different when nested, but that seems unlikely.

- Kevin

[1]
https://lore.kernel.org/all/af4414b6-617c-4dc8-bddc-3ea00d1f6f3b@redhat.com/



From xen-devel-bounces@lists.xenproject.org Thu Nov 06 11:36:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 11:36:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156811.1485792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGyHe-0000fT-4U; Thu, 06 Nov 2025 11:36:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156811.1485792; Thu, 06 Nov 2025 11: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 1vGyHe-0000fM-0u; Thu, 06 Nov 2025 11:36:06 +0000
Received: by outflank-mailman (input) for mailman id 1156811;
 Thu, 06 Nov 2025 11:36:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGyHc-0000ei-IT
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 11:36:04 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c2600a71-bb04-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 12:35:56 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-b719ca8cb8dso179155466b.0
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 03: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
 a640c23a62f3a-b728937d305sm198005766b.24.2025.11.06.03.35.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 03: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: c2600a71-bb04-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762428956; x=1763033756; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=26CQNjsr1hLzCIO63Cz9PrrOZQd1ql3hb2hWGWjj6co=;
        b=EVLT3rfNt4qeszwYLSRMKAhNDqVAb3/NYlQYESMENyt0HtGC8TMFZAE9nEXh4hbtK2
         gCMiAzaCUjJjbKXPRNhA92xWKKF3elLxEoRfcZpTkUmOdU+Soc1FK+uIfauronH+aohQ
         Ji7hno/9sFXt3FHczNsOGh7gAguooOOCdmCXmMRQzX478II2LXJcwmc1nZKjNfF3k1dT
         7yDnvMn8HBehLsmR8/r3dHJVqqdPZzLgPCshfLtR1zMdq0qFP61bKJExvFeI89/KYUIJ
         BucExKff2aFqFz6fUMi1EnpHGlCcJQDlTQ6910YtHSjxWtn4CKV5Zmlkkhpsu1EG+yhc
         wdEw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762428956; x=1763033756;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=26CQNjsr1hLzCIO63Cz9PrrOZQd1ql3hb2hWGWjj6co=;
        b=La188I2Tly3Pjo8nRTQ4rE7cF3OZW+aZKRjP3+CXvutPfTj2XkIBbMj6b+NJAuRhzZ
         U0zFpfqhZ4z0Go8nHvzm5YA8ekAtR6xflekkCiTrqmTqd59JyOuMvMry9ntjIth70kCD
         Yg9PsoHzToWGCPeV3mslBiqNlBrFy79fGC5PVsSCyE5OHVtF4+hoMoDbhLRjhsk0EIK7
         toZ1FfzlPy1Jl03Wr/zf4Apc/pbxcN7r068x9wTdKHwX6auKwM0y1MNGnxU8o67+AtA3
         wOkv8INVvrV0UCS2M6yJH2zAoP5GwIeE/XF7w1RtsxAkxrBO0Ow2HhTb/RH7DBKWcUtC
         NPEQ==
X-Forwarded-Encrypted: i=1; AJvYcCXD8HZjVGOQZ4w8USAGKU4p0m2gY7IKpdbBEf7qY8sqgo62oP1Qpi3lHuKzrAQQMFQWs09jHj+YG7Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyLpWScIGdJrbWiUr+a7z3f8ZtlmNprrpLu7LsA1DY/jNRIAOs/
	5dXu/Itj1e21ai2eJwVsmbQZjRHPXBGqlda+rRbb5H+s5PsHehM/Z2cWdqLn18Owvg==
X-Gm-Gg: ASbGncvUfbi6x80MCxGP2d/+NZC3aaorZFr/ljJYpNu0QZX9fLc6u21Besl1jhg0sJ/
	8C2u4Nps9H4rcmffrWtaOTuIemUnb6fvxcw+Kni86kJmCWFSC3kh6p7yUOp85SX/GPmLy3fwmsY
	aJ4wPiyPJrryOErdB2Wr505DsXpHD0gyhZo0Y1sx+4KDbO4sXWuel9X9QGv9KqqOvAb62jr28fw
	s6e6LYyLRzz75ziysEUTK+QJmTFa26WEyJTzFwUQdKKvbKh4YzEkC8SqRBQf3aAMHzv7Qe7VJyR
	ckmA9J9e2lddcrnwogCqK3DXcfRwWgRf+xIvYuHlORqzRxxubPvJx5F+izUtXZ10GVI/movq69H
	zXJ1NY4eBcdCJPowN/umka69Nfasd7qlOkfuJSUBWA0mqrQRwHSYLF0ogo7VFNENmPpxD8Bn8TW
	rMVb69jrYCEn3hSgDMGDJ5kl7SGNpYM/d7fp2ia9BBo8iuT7TDntlQp6OAjnd7
X-Google-Smtp-Source: AGHT+IGmuSyOm+ppv1cGSso+CB8aBeWNnLEewZn1+/PmiK33b0/7rYEShYhnhcfoFfKaIyUtOFpzhg==
X-Received: by 2002:a17:906:d553:b0:b72:52c2:b8ca with SMTP id a640c23a62f3a-b726568767cmr696173866b.59.1762428955760;
        Thu, 06 Nov 2025 03:35:55 -0800 (PST)
Message-ID: <a4d3eb8d-17ea-4d3c-87ef-ba5c3477b8c3@suse.com>
Date: Thu, 6 Nov 2025 12:35:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v7] x86: make Viridian support optional
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Paul Durrant <paul@xen.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251031161716.1222956-1-grygorii_strashko@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: <20251031161716.1222956-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.10.2025 17:17, Grygorii Strashko wrote:
> --- a/xen/arch/x86/hvm/Makefile
> +++ b/xen/arch/x86/hvm/Makefile
> @@ -1,6 +1,6 @@
>  obj-$(CONFIG_AMD_SVM) += svm/
>  obj-$(CONFIG_INTEL_VMX) += vmx/
> -obj-y += viridian/
> +obj-$(CONFIG_VIRIDIAN) += viridian/

With this, what is the point of the additions to viridian_load_{domain,vcpu}_ctxt()?
You're adding dead code there, aren't you?

> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -4231,8 +4231,9 @@ static int hvm_set_param(struct domain *d, uint32_t index, uint64_t value)
>              rc = -EINVAL;
>          break;
>      case HVM_PARAM_VIRIDIAN:
> -        if ( (value & ~HVMPV_feature_mask) ||
> -             !(value & HVMPV_base_freq) )
> +        if ( !IS_ENABLED(CONFIG_VIRIDIAN) && value )
> +            rc = -ENODEV;
> +        else if ( (value & ~HVMPV_feature_mask) || !(value & HVMPV_base_freq) )
>              rc = -EINVAL;

I find the check for value to be (non-)zero a little dubious here: If any caller
passed in 0, it would get back -EINVAL anyway. Imo -ENODEV would be more suitable
in that case as well. Things would be different if 0 was a valid value to pass in.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 12:00:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 12:00:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156830.1485802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGyfc-0004Vg-4m; Thu, 06 Nov 2025 12:00:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156830.1485802; Thu, 06 Nov 2025 12:00:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGyfc-0004VZ-19; Thu, 06 Nov 2025 12:00:52 +0000
Received: by outflank-mailman (input) for mailman id 1156830;
 Thu, 06 Nov 2025 12:00: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGyfa-0004VK-P4
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 12:00:50 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 38611bcb-bb08-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 13:00:43 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-afcb7ae6ed0so144311466b.3
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 04:00: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
 a640c23a62f3a-b728937dd8csm195360866b.22.2025.11.06.04.00.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 04:00: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: 38611bcb-bb08-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762430442; x=1763035242; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pz+yiaTdfoXoaJ4V9CeDHJFxA1Eb2ygwXtAa0EEBqpQ=;
        b=QGm8OMQBOfI/s577EBqysyWkEqKxZcIJ1E1GtgRh2wIk8pS00XcHNee1RtbH3XHw+G
         c9qDaxm31hGm6YfCCJ+J5A5rBmw/b/dkSlEZAEuC30XhYrun1YlwBjxElouZajTpb+cM
         peLGKT+pkROBtUVoHUPU5kQmEfGtg9JtZfzifLEUmfOTVBscksPl/XZ1osRU1VSTJL8L
         z8F09bY8QJ1ONqlnSfC8IjiqWQxvN/gqmU7IJ6tHOd1hm0N8ISdje/AUUBdZjnGu50F0
         tk8XqDMPTTZO1zaNSj6rIybCCgY5+tnihqkI1T3r3JwWqnBlzBupAMcYv1TtFBZnkQ81
         zclw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762430442; x=1763035242;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pz+yiaTdfoXoaJ4V9CeDHJFxA1Eb2ygwXtAa0EEBqpQ=;
        b=txGx9hf9UY+x3mAGpwV4no6IFQlWcK+xcWELmfV4nKisVd+OKRU7xCd3ONPQW+YbAo
         Vk/UwBgKHrVmRRzJPsgDBUfD4HUgu+TKs7WACY1HPbFwQR1UZeZ9biM23iFvVnvRD3jn
         3Ivn/oxuyicD1G+fCyMnnGrFa5y9+oeMrVWJMel2gENJFZsaHy/GDUvBb/WfW00ZmM7u
         qOA5t84CGeDx/Wmzvfw2jcVHzNzZvAGhSXrvQY53PdYX1DGcPoyv+eFvZtd7NgAl4A8W
         jwXsvmcmCrXRKybdm5g/HbOTFeK0Dybbi3AqcrWJY0DrGt+Wwu/gWyWRKovVRMYx6M+I
         cFTQ==
X-Forwarded-Encrypted: i=1; AJvYcCWshhGmgAdmHKMhBRnAflylDh2peLW9GdMAZ3+aE9kc8pK731S35M+B5A6EcEJd+DdP6jSktXqRDw4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzIaK3KQRuy/TOoSWqytiqh2ITZyTgycb7rgK9JbqnXgPuxlAyv
	oWjhANmDXdWPiFKo8CReadqG1rq47Z7QV0+JuTE9KclHV90hAw1o3dPdB4rpPDjmeA==
X-Gm-Gg: ASbGncs9rK0RVZugEukqmu3YtP2azkkvtLi78W/TluSetO3vW1v5z9PjSUhXnZGbO/p
	7zztbqiB+jmNv/y0h8M71Ya/KERfmYoFufG75Upyw/Igau1Kn/mrFcfJLX8mO55opZKuC7xe1/2
	q3SxX65kHTjYclZOSV9slhD7jQNijjeLfxcEW4YYiaQSlWEauId1+nIZhWgiZoFwEyWmoGZI8Xa
	ZFiSDfhK3ucjOPBvLXgaqjmKMJ52/c/miVVICZTOvi/8iE+3b2t8FO2DLyZHNqXyikqr7IBICHW
	/wMvjO91mcUfRO/BjskwzHqg7H232P7aoxIkzqtMk4qDVF7lSZdMqPsC48Ni7K+LlANRN5AbynQ
	PnlbACA7O7T34MsQbViav2Ejh8NK/5FPjSI/PqHEIiFpXWH3MQV1+o4zOh4et+u2gSS9R+zWi2T
	wHpBIdqbijcUifTDOL3fxvbOb0NuXdSwmizL5/QDHoDr1u4UWCWDb29Kf9acYMrakLFNmysEI=
X-Google-Smtp-Source: AGHT+IG4Ga2Y+kRTTpa+vJu85Z8eL56sORslqu3z4jl8lynpnaO9C0DFVQP+GkLLUDDdLaXTPJMrDg==
X-Received: by 2002:a17:907:9484:b0:b50:52a4:8f9a with SMTP id a640c23a62f3a-b7265539e48mr658671966b.45.1762430442312;
        Thu, 06 Nov 2025 04:00:42 -0800 (PST)
Message-ID: <b6337cb5-da85-492d-bba9-688e35695c46@suse.com>
Date: Thu, 6 Nov 2025 13:00:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen: make VMTRACE support optional
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Penny Zheng <Penny.Zheng@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251031212005.1338212-1-grygorii_strashko@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: <20251031212005.1338212-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.10.2025 22:20, Grygorii Strashko wrote:
> --- a/xen/Kconfig.debug
> +++ b/xen/Kconfig.debug
> @@ -155,4 +155,19 @@ config DEBUG_INFO
>  	  "make install-xen" for installing xen.efi, stripping needs to be
>  	  done outside the Xen build environment).
>  
> +config HAS_VMTRACE
> +    bool
> +
> +config VMTRACE
> +    bool "HW VM tracing support"
> +    depends on HAS_VMTRACE
> +    default y
> +    help
> +      Enables HW VM tracing support which allows to configure HW processor
> +      features (vmtrace_op) to enable capturing information about software
> +      execution using dedicated hardware facilities with minimal interference
> +      to the software being traced. The trace date can be retrieved using buffer

Nit: s/date/data/

> +      shared between Xen and domain
> +      (see XENMEM_acquire_resource(XENMEM_resource_vmtrace_buf)).
> +

I was actually meaning to ask that "VMX only" should somehow be mentioned here,
but then I noticed this is an arch-independent location. I'm not quite sure we
want it like this (just yet).

> @@ -2940,11 +2948,13 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
>      .altp2m_vcpu_emulate_ve = vmx_vcpu_emulate_ve,
>      .altp2m_vcpu_emulate_vmfunc = vmx_vcpu_emulate_vmfunc,
>  #endif
> +#ifdef CONFIG_VMTRACE
>      .vmtrace_control = vmtrace_control,
>      .vmtrace_output_position = vmtrace_output_position,
>      .vmtrace_set_option = vmtrace_set_option,
>      .vmtrace_get_option = vmtrace_get_option,
>      .vmtrace_reset = vmtrace_reset,
> +#endif
>  
>      .get_reg = vmx_get_reg,
>      .set_reg = vmx_set_reg,

Blank line ahead of the new #ifdef?

> @@ -738,6 +740,7 @@ static inline bool altp2m_vcpu_emulate_ve(struct vcpu *v)
>  bool altp2m_vcpu_emulate_ve(struct vcpu *v);
>  #endif /* CONFIG_ALTP2M */
>  
> +#ifdef CONFIG_VMTRACE
>  static inline int hvm_vmtrace_control(struct vcpu *v, bool enable, bool reset)
>  {
>      if ( hvm_funcs.vmtrace_control )
> @@ -780,6 +783,12 @@ static inline int hvm_vmtrace_reset(struct vcpu *v)
>  
>      return -EOPNOTSUPP;
>  }
> +#else
> +static inline int hvm_vmtrace_reset(struct vcpu *v)
> +{
> +    return 0;
> +}
> +#endif

#ifdef inside the function body please, to reduce redundancy and to reduce the
risk of overlooking multiple places which need editing (when e.g. function
parameters change).

> --- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
> +++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
> @@ -155,7 +155,9 @@ struct vmx_vcpu {
>      bool                 ept_spurious_misconfig;
>  
>      /* Processor Trace configured and enabled for the vcpu. */
> +#ifdef CONFIG_VMTRACE
>      bool                 ipt_active;
> +#endif

Imo such an #ifdef would better enclose the comment as well.

> --- a/xen/arch/x86/vm_event.c
> +++ b/xen/arch/x86/vm_event.c
> @@ -253,7 +253,9 @@ void vm_event_fill_regs(vm_event_request_t *req)
>      req->data.regs.x86.shadow_gs = ctxt.shadow_gs;
>      req->data.regs.x86.dr6 = ctxt.dr6;
>  
> +#ifdef CONFIG_VMTRACE
>      if ( hvm_vmtrace_output_position(curr, &req->data.regs.x86.vmtrace_pos) != 1 )
> +#endif
>          req->data.regs.x86.vmtrace_pos = ~0;
>  #endif
>  }

Use IS_ENABLED() together with a function declaration (but no definition) in the
VMTRACE=n case?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 12:10:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 12:10:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156842.1485812 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGyoV-0005pk-VR; Thu, 06 Nov 2025 12:10:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156842.1485812; Thu, 06 Nov 2025 12: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 1vGyoV-0005pH-SJ; Thu, 06 Nov 2025 12:10:03 +0000
Received: by outflank-mailman (input) for mailman id 1156842;
 Thu, 06 Nov 2025 12: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGyoV-0005c9-7S
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 12:10:03 +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 84edb275-bb09-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 13:10:01 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-b729f239b39so53999766b.0
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 04:10: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
 a640c23a62f3a-b7289644b39sm203327266b.40.2025.11.06.04.09.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 04:09: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: 84edb275-bb09-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762431000; x=1763035800; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MuQ8Wt303Nn+gLvw4T6QoG9xTCRkF58hi2j6AwUmmu4=;
        b=ERy395uMD8LifM3VTyi/wSGWX9E48sfPdfipr9J66J7eZh7uLx/4tbvil4qsyIaUsz
         CnPVQiezfRuTrFfYIjdeUeDRbnyDd9LgQ3vw3bNrlFqG8v5CoCU/YDaOPZKWFkcEc05G
         iSWmhD0Tu6UeZvyQI25Iq/Jf+Ihji942i2Dv00vMm+Xh26IedHjxvyA9Hc77QNnJVhzV
         lXkxuSIl2XerJg4lGfxj4Ysmu8TDdPDYSnRumZTh0I5qSZkgXPpyNo+n9X8hUSMJCt3A
         06ByBRgv/hwW2HFqm9mK3F9BAemR7EC8nWVILDcU4LLkxEMLZR0Zlwu3wb738Ob5o4Zw
         Wu6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762431000; x=1763035800;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MuQ8Wt303Nn+gLvw4T6QoG9xTCRkF58hi2j6AwUmmu4=;
        b=JaXRwqN55TryV0rHml7bP9O6CXXJhht14c0I0wMbXCh3lpqWYlDG1hwh3nIQ82ovM9
         PssmVQz1K+YECpwe6tZND5+YwZbDInHJK/RFCe39P40jtKllkCsCtLIX2eLyaHmgj9Ux
         7/Grcpa/NCA8r3vP4TMAwAX1tlvm0lH3Hc/ZL3QLrMBUTMdnImXeCV/1luyAWJQ3k4Uz
         aQ0ahOxl9LJq/xk3IAwVdSzUkG0gWDAcsLL6cO9sYLF2xlL+kP6t+XJ6suuB0465Xt5j
         kosqWsh+YUhtJq3fBkMnYfnrkwkoSnYetaunL5MQVGPOY8Zc5clid276cGWz2CaQ7czM
         Gu5g==
X-Forwarded-Encrypted: i=1; AJvYcCUwwJHsghusCk86hFUTIXeFLpmtc9C3Zg7rUtiTMuryO5M5WE6tLW/14vsWcDDtExWIGmXorBQk7iY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy09YUymaVztLoi1aFVrgqCNLk2nEANG6JMnFd5TthMykRijdZT
	6DO0Cd8UrMi59CofGp5W/U1wGgv9bh34VM9dxrNn0ycPwHmND8B+WbHxVknLKsekNr1NF/taVuw
	E+Cc=
X-Gm-Gg: ASbGncsBo4k2Dy8rXLKqJYXuGhgZjNxmQ1jqvZaXnWDvAnKUErr6m4m6l06sZpgbJBk
	9+4a34J9DVksRMV+8FLTBECskgfC19WECFmHi0N6jTEy7BXtv25TSPO5jihjeGr63JleMKiiQy2
	mLOzYC+uzWt80i+y0q8awv1b8/M4635BUY48DcVTVjBhSEI3+YRAsEAE3FiIABWd2iywWSEk3ca
	NlL4Ea255t1Q5mz1YtkjRTkJGAKCb00jcznctyG1NgcNZehJJlnkqFtXf7e3tZkUAVG0FfrjncE
	14lzfTsuBzwZ38tumbM/ekdD/SvjKruuDZ+iABF0Ij8FR++K6Mc/TuAgnYaU9NXdX5uhM4fRQzF
	tJ6g4u1QFWXrKiNdmFEc0Ff4HvRVJHGaivgwpuPEv67pC4aA7YOi/G2pDuz019hV8a2YI6MKkY2
	am2/5LpcTJxS4USTv8j/rsixZfHtZ7RMhn4xfDCQYkluIp5UlYgwleXd206QSgJGXBiaR+pnI=
X-Google-Smtp-Source: AGHT+IG3a9kta4/lPgHaDwb2JP8baPfD7kd+qFhmtdYO4wzR8K4ygdS280rXNHH37qmDJlAD5Dp4RQ==
X-Received: by 2002:a17:907:9452:b0:b70:b323:b7e1 with SMTP id a640c23a62f3a-b728961fdbbmr339073466b.28.1762431000188;
        Thu, 06 Nov 2025 04:10:00 -0800 (PST)
Message-ID: <58064c07-4182-48d8-9479-7b9f8e9a06cd@suse.com>
Date: Thu, 6 Nov 2025 13:09:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 v2] acpi: Set TPM2 LAML to actual log area size
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251105000310.690-1-ngoc-tu.dinh@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: <20251105000310.690-1-ngoc-tu.dinh@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.11.2025 01:03, Tu Dinh wrote:
> The LAML field should follow the TCG PFP specification:
> 
> The TCG ACPI specification uses the field name "Log Area Minimum
> Length", but the field value is the actual log area length reserved by
> Platform Firmware, not a lower bound.

And this is said where? Even the field description (ACPI 6.5) reads "Identifies
the minimum length (in bytes) of the systemâ€™s preboot CC event log area." (I
agree it makes little sense that way, but the change still needs proper
explanation.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 12:13:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 12:13:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156853.1485823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGyry-0006iF-FC; Thu, 06 Nov 2025 12:13:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156853.1485823; Thu, 06 Nov 2025 12: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 1vGyry-0006i8-AY; Thu, 06 Nov 2025 12:13:38 +0000
Received: by outflank-mailman (input) for mailman id 1156853;
 Thu, 06 Nov 2025 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=TJ4h=5O=bounce.vates.tech=bounce-md_30504962.690c90e9.v1-d6ce765204354a948c0d9e2caf16a0be@srs-se1.protection.inumbo.net>)
 id 1vGyrx-0006i2-Ja
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 12:13:37 +0000
Received: from mail180-3.suw31.mandrillapp.com
 (mail180-3.suw31.mandrillapp.com [198.2.180.3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 01e7be5f-bb0a-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 13:13:31 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-3.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4d2Lgs4KjyzDRJBZK
 for <xen-devel@lists.xenproject.org>; Thu,  6 Nov 2025 12:13:29 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d6ce765204354a948c0d9e2caf16a0be; Thu, 06 Nov 2025 12:13: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: 01e7be5f-bb0a-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1762431209; x=1762701209;
	bh=q/F5YpCmmdV33F13faW5XH1C9OtX3cyGzeYv1jtr4PU=;
	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=GW94OZl/q+w0u9HQdftcbmkcYgvZsFLmAVOsF1dYLWURo1T023qdXz/M1MkTEuHwC
	 wX4ho3vXv3kDOvcY89SYvf6YSlLkEpJahMcvVKJ+tROIhcr7noNEhxM+5pvKDxD5kf
	 viXxGOiri9lRZsLwqsI7paoN1TLHH7adYyUNyvdJvw+mgYWypFSRkixQ5jc0J/8iYT
	 0yCWJxE0jUO8T7o+JpcBPsq+tAmxNfnJMrjnNUL7VpmKKfGMTU8i8MjWHDkRY6EPfy
	 MO11pqJa0biGVKuxSlbi6m/bDFUXLLHzRiyRSJxiAYZlNsRNCJYx8wWMZ+hcFyHbXb
	 J/fk5CrPaKGcQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1762431209; x=1762691709; i=ngoc-tu.dinh@vates.tech;
	bh=q/F5YpCmmdV33F13faW5XH1C9OtX3cyGzeYv1jtr4PU=;
	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=Hwji8ifV4NUi6ncVRB9dsZBHBRSIWs3LwLlSjAzDz7UrMdxSZa1/ZC9no7bjzbI8+
	 jE7w6OR+OLNnlAh8BqZE4kKhXW8lBsLmGz4ABFwsQcLt5aea/vpPSpmYvMYLvAJKh1
	 r0LsRewzucM7epGl0QWzseoyrt7s/TONceWRq9Uk8R8UGVCiywf/04owBSOf1Q5dLE
	 fn2JRN47vjqHbdQr9R6tERad+4N6k1qdrxqjTwtxd97mbsXaurDyM0CDlgDQitunp/
	 Zg+axJSMZ3d9h3UDMQ8InGSoJt59eBkelIR+od7PyIERtDVHTndydE5NLcFhwAYZvC
	 A6khBYGjzubdQ==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20for-4.22=20v2]=20acpi:=20Set=20TPM2=20LAML=20to=20actual=20log=20area=20size?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1762431208538
Message-Id: <e3e182f1-8566-4fe5-b599-3b2f6c582782@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Daniel Smith" <dpsmith@apertussolutions.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251105000310.690-1-ngoc-tu.dinh@vates.tech> <58064c07-4182-48d8-9479-7b9f8e9a06cd@suse.com>
In-Reply-To: <58064c07-4182-48d8-9479-7b9f8e9a06cd@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.d6ce765204354a948c0d9e2caf16a0be?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251106:md
Date: Thu, 06 Nov 2025 12:13:29 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 06/11/2025 13:10, Jan Beulich wrote:
> On 05.11.2025 01:03, Tu Dinh wrote:
>> The LAML field should follow the TCG PFP specification:
>>
>> The TCG ACPI specification uses the field name "Log Area Minimum
>> Length", but the field value is the actual log area length reserved by
>> Platform Firmware, not a lower bound.
> 
> And this is said where? Even the field description (ACPI 6.5) reads "Iden=
tifies
> the minimum length (in bytes) of the system=E2=80=99s preboot CC event lo=
g area." (I
> agree it makes little sense that way, but the change still needs proper
> explanation.)
> 
> Jan

The above is an exact quote from the "TCG PC Client Platform Firmware 
Profile Specification Version 1.06 Revision 52".


--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Nov 06 12:15:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 12:15:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156867.1485832 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGytY-0007G4-O7; Thu, 06 Nov 2025 12:15:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156867.1485832; Thu, 06 Nov 2025 12:15:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGytY-0007Fx-Kh; Thu, 06 Nov 2025 12:15:16 +0000
Received: by outflank-mailman (input) for mailman id 1156867;
 Thu, 06 Nov 2025 12:15:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGytX-0007Fp-Li
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 12:15:15 +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 3f3e5b1e-bb0a-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 13:15:13 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b713c7096f9so65444766b.3
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 04:15: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
 a640c23a62f3a-b7289334288sm202003766b.15.2025.11.06.04.15.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 04:15: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: 3f3e5b1e-bb0a-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762431313; x=1763036113; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=59BqtCx4cmPQig7Vf46c7RV554Z2/TvCdMGFK7CIRY0=;
        b=gwd45uYmmiL3AT8Vd3Cov5dgpzVB26/kk2guyC3q7NAThv4/05IXvS6tbSqPF5yV0H
         OXkEQ59hBoDadkSexAHggcZLYJajvtHOGxY7JTxhxxO1Y299FwU3LobWmOLnABjj8QRq
         /XWr+ZWOreChepooBdJGJlmk/Zz2Uem9fKHomcT6x+gz0tpMgyTKn8P30CAVTvPG6xtl
         CKXr8MhdczvV5oG4VwzeprG6UkLEXneO7mXVT5X0f6v30yHv/LtmgfsBOnDxQqxEckjh
         m8B8b/VHAZiS4QC2Q8um46cJ0ggwnJD308oyKQ5x2ANr2l8TXeZ0N7OlV1WgquvXfZIC
         UIqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762431313; x=1763036113;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=59BqtCx4cmPQig7Vf46c7RV554Z2/TvCdMGFK7CIRY0=;
        b=oiAtdfA4b0mCCsn7MYGwBTTd1rvDL8k+EZ0utygz+mMDiJqZUhB7imnfyf+UjpjGdc
         iumOPbhu8fXtEctD3bUm8eSvFjcCsqJMTbY/M3XNS/7mv0KxAyknOWfH/9/pLdW8S1t4
         5q5TdFy0ZKEU9QFsVUekKvWs3a6j2BbvB+a+NOMkVSH9o1ozuIKyj3q3QQ0MDBp68sib
         kDJNjh7/batODiNxu9c8zBUWsknk4tbh7o+rYlzeJToEiGkddkGG3jmLN4bncfIW67eG
         jd/UM0JbT0W+zTeIAqvUxyY5ZwPQgDqQIykvTIjGrJKsi6aXLcuDnzcpK9DMsqQDcbtE
         FkLQ==
X-Forwarded-Encrypted: i=1; AJvYcCV1zJNKsDVXpSpCUGlWXpKdIWmc7WDQOq28+Q+sSiASRj9VSqdGcJDo5iQo5iZOtgQPVoB/SmLSnyg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzmEOsTwI/qNIVw8Oyze8ypg3Y2vYFHDKS62cN3KQd2o3vohhMt
	sDjSq/Pc3bxD9p1iVzv5/Ezsk21O5F7e51kAsiGstY/7c5XnfqaFtyU3j/E6SJPqcQ==
X-Gm-Gg: ASbGncuj440Bv1c59G1FHvQfqYk8WbL4l7fSi34wAqQezQIE6ebfOJn221ZJSvPrty3
	BxhM1iGoW8e9GS70clVLCu2p+TClX8W+csh3P5c+kCZUUpZNazgp3xDVCpZoNrE4vKN0TqGiCKs
	YYlJ9HPxbGzuo090clEZqloHJccF7JOgcSqUMubjkiZay9Lo+upnZOCTtI+eda8NSqjakLronLW
	OlW+4z/rivh1+9Cnwc1MhG+3XQfC8oX1dBvL4If1+Tse+oCd8ibZN0hTw7M3tXotOiwd9YEpJUm
	GkRQglN53Y3QHunbtf0N5aHGtssAmpYoyzrh+Rwk3WQ8Lx9Z14jPt1Sjmp5zUtHZqBuiqrAQwYp
	cWobkitddyfuyWKWDmrvFLhqUvFHXxXVbQGccJyRr4EUp02PjN+V067rWLMtiuO9eXZj5htFto0
	d+3ePJ6QZFArRfzqSfNEArZbTOogEJnqCx+y8NZ6umNd04t87WuaIgscJJnHeK/FywwuL0nQM=
X-Google-Smtp-Source: AGHT+IFt6gEe1ZvKk1PnrUUg+08KFAZ5sAe/UlrgxVnw6SJwKYvEPY82XEMJCEauwiFySNBPC1zwrA==
X-Received: by 2002:a17:907:a4e:b0:b1d:285c:e0ef with SMTP id a640c23a62f3a-b72652bea31mr762381966b.26.1762431312887;
        Thu, 06 Nov 2025 04:15:12 -0800 (PST)
Message-ID: <39458e03-31c1-4aa6-8b66-f6d72ec8bdd9@suse.com>
Date: Thu, 6 Nov 2025 13:15:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 5/8] xen/pci: introduce has_vpci_bridge
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Stefano Stabellini <stefano.stabellini@amd.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1758618839.git.mykyta_poturai@epam.com>
 <acb8da959fac97fbec7bc086b921e31dd52d44f6.1758618839.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: <acb8da959fac97fbec7bc086b921e31dd52d44f6.1758618839.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.09.2025 09:59, Mykyta Poturai wrote:
> From: Stefano Stabellini <stefano.stabellini@amd.com>
> 
> has_vpci_bridge is a macro to check if the domain is a domU or is dom0
> with vPCI (pci-scan=yes) enabled.

Hmm. Why would DomU-s, now and forever, not have (virtual) bridges? Wasn't them
gaining (virtual) bridges actually the longer-term plan?

> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -230,7 +230,7 @@ bool vpci_process_pending(struct vcpu *v)
>  
>              read_unlock(&v->domain->pci_lock);
>  
> -            if ( !is_hardware_domain(v->domain) )
> +            if ( has_vpci_bridge(v->domain) )
>                  domain_crash(v->domain);
>  
>              return false;
> @@ -492,7 +492,7 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>              }
>          }
>  
> -        if ( !is_hardware_domain(d) )
> +        if ( has_vpci_bridge(d) )
>              break;
>  
>          d = dom_xen;
> @@ -522,7 +522,7 @@ static void cf_check cmd_write(
>  {
>      struct vpci_header *header = data;
>  
> -    if ( !is_hardware_domain(pdev->domain) )
> +    if ( has_vpci_bridge(pdev->domain) )
>      {
>          const struct vpci *vpci = pdev->vpci;
>  
> @@ -564,7 +564,7 @@ static void cf_check bar_write(
>      struct vpci_bar *bar = data;
>      bool hi = false;
>  
> -    ASSERT(is_hardware_domain(pdev->domain));
> +    ASSERT(!has_vpci_bridge(pdev->domain));
>  
>      if ( bar->type == VPCI_BAR_MEM64_HI )
>      {
> @@ -747,7 +747,7 @@ 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);
> +    bool is_hwdom = !has_vpci_bridge(pdev->domain);
>  
>      if ( pci_conf_read16(pdev->sbdf, PCI_STATUS) & PCI_STATUS_CAP_LIST )
>      {
> @@ -829,7 +829,7 @@ static int vpci_init_ext_capability_list(const struct pci_dev *pdev)
>  {
>      unsigned int pos = PCI_CFG_SPACE_SIZE;
>  
> -    if ( !is_hardware_domain(pdev->domain) )
> +    if ( has_vpci_bridge(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);
> @@ -866,7 +866,7 @@ int vpci_init_header(struct pci_dev *pdev)
>      struct vpci_header *header = &pdev->vpci->header;
>      struct vpci_bar *bars = header->bars;
>      int rc;
> -    bool is_hwdom = is_hardware_domain(pdev->domain);
> +    bool is_hwdom = !has_vpci_bridge(pdev->domain);
>  
>      ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));

For none of the changes (also further ones) it is clear (to me) why the
substitution is (logically) correct. For this last instance the variable
name also ends up wrong after the replacement.

> --- a/xen/include/xen/vpci.h
> +++ b/xen/include/xen/vpci.h
> @@ -339,6 +339,15 @@ static inline int __must_check vpci_reset_device(struct pci_dev *pdev)
>      return vpci_assign_device(pdev);
>  }
>  
> +#ifdef CONFIG_ARM
> +#include <asm/pci.h>
> +
> +#define has_vpci_bridge(d) (!is_hardware_domain(d) || \
> +                           (is_hardware_domain(d) && pci_scan_enabled))

Nit: Off-by-1 indentation.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 12:19:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 12:19:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156881.1485842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGyxL-00081n-9p; Thu, 06 Nov 2025 12:19:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156881.1485842; Thu, 06 Nov 2025 12:19: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 1vGyxL-00081g-79; Thu, 06 Nov 2025 12:19:11 +0000
Received: by outflank-mailman (input) for mailman id 1156881;
 Thu, 06 Nov 2025 12:19: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGyxJ-00081a-F2
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 12:19:09 +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 cac6110e-bb0a-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 13:19:07 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-b403bb7843eso162756666b.3
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 04:19: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
 a640c23a62f3a-b728937fb6bsm208538566b.23.2025.11.06.04.19.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 04:19: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: cac6110e-bb0a-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762431547; x=1763036347; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=udM5wja4JkzGjtlz6h3rJQZ9eHZo8P6+oDsjAOkOwVg=;
        b=aO70J1hZOo0OnLc0lkbEy06z4ZPQU+mJrkseeyoSR/IiA6beqQhgqx8c+NZgGvK+rj
         ERoqsRRikI+gPaKPLoNZi0p2VG/3qQM+S1bjQffMafVZgbLioD6+i7z1JU5f7tuwyPcq
         LnAd5I3HUU7aX155kgydniRhQGVAtcV1Szmqyx23bbLig+dNUCFHK5ms9jlO9nj5X01n
         65Wj7PCUeP9fgngFBAdhC/aWlliL1mnYdbeVe1ladB7+V7MN/vIBUQ1arce6/CP8dNxe
         y73qPN8e9P4tFgCEnP9L6h+MXHfXzmmchKfSoo/MdS3BuOB4ebbCTbmvPr0NboOQ3WZf
         E/Ug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762431547; x=1763036347;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=udM5wja4JkzGjtlz6h3rJQZ9eHZo8P6+oDsjAOkOwVg=;
        b=Jf767LG5x/neBiLsgZtR6NFdBlb6eUHM8/2lb9KhRYGS4EVq8ZIQaYsM/7dDbrxggv
         tA1+xsZlbFjOqk7OWVrQYv9FgIkP7+NO9hy+XJvvYCyB09xt7d9o5MgrYo14+1MH7nkE
         eEEY6fLNdB9PUPjQtmWJeeQEvwTR8UrJgUhvExTusAbEH2bQ0kPOX1VvwtHcYzMCHhdh
         r14Y81qrsxZhkF24wDfz4ESNYQY8RzHJrGjGlr2flOq7/WDt8ix22MKhUQWLCQWGisVu
         SXw8WlOpe3duVnsC5RRw0jfLA4UR5L9SULGKdCNDtRSdlaI1YnHpW3rNOf4WRRD8Sukg
         fNUg==
X-Forwarded-Encrypted: i=1; AJvYcCV1ZyGgU+hBZVk7knP2Fzhzpq6ffXyYCDRq613IFvGQbdx4KeLfupafaXlPFCLLQSRUWWCWV4632n4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYyQR0YEpJs+dXLTeQZVKrZ6JoQj+Qdctk9g9Ul1VhpIqEF4sA
	z+VA9aQwZPG5w8QyDd0HwTx0EEi+tufP7gu2pkfuOtbK25SVqEocatqfw1QJ/lvzGQ==
X-Gm-Gg: ASbGnct0hP3qzCcCwbuBMsm1dOTjKCOlyDqsrEwFOjQZeD4BUEoqx8aSmQrxOv8SYJ2
	sQ43hLUjQ5RS29PkRl0k1YyKC+wI8tGv2RkFYTEigQM0oIgLpY8k0RUXwN4Fh3NnSIkovL9Fn9I
	KI7CTukX5hnfI6C0nwuIs0dGgUm1qo9wBWRq+UxEStJ4xbJWoHdVKIMkbq1KfSZDEq3E3Rkl3sS
	uFYG2lKsRcBDytOwfgVggzi1E2iEJTNcQp5gsLKzjUJxhLUgeHBvfz8LT5ArhfMrws6uwz9iKUV
	pZg/Ugjrdm59fvLrjc7mnqVJMAMhOHkQV7EpgYaee1K3Fy89FSpXPrJD0l+v7Kd7Q9DkEx/UkMj
	Qa/0kXXRhBCYGG2mrTu3O5UUduTtxrCyFclK+nC09eunWga2MnEl/xRQes8cifT7sJmRB95B8iL
	zChKHPMqFBbyMHFGnK3beH0RFBasVMz6Z/eApGtef4hLWanDV/C9YUwv+ygI0j
X-Google-Smtp-Source: AGHT+IG+4ACsFDygSLlz+i7hSgewZffd4il3RmLkOfVOY3a7zOnH3Lqoyno/XQNhmWH2gJVpHYnf9Q==
X-Received: by 2002:a17:907:86ac:b0:b6d:4f1d:8c9e with SMTP id a640c23a62f3a-b72652a33a8mr686698366b.24.1762431546835;
        Thu, 06 Nov 2025 04:19:06 -0800 (PST)
Message-ID: <e66a7724-12d3-42e2-805d-b32febb3d346@suse.com>
Date: Thu, 6 Nov 2025 13:19:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.22 v2] acpi: Set TPM2 LAML to actual log area size
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251105000310.690-1-ngoc-tu.dinh@vates.tech>
 <58064c07-4182-48d8-9479-7b9f8e9a06cd@suse.com>
 <e3e182f1-8566-4fe5-b599-3b2f6c582782@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: <e3e182f1-8566-4fe5-b599-3b2f6c582782@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.11.2025 13:13, Tu Dinh wrote:
> On 06/11/2025 13:10, Jan Beulich wrote:
>> On 05.11.2025 01:03, Tu Dinh wrote:
>>> The LAML field should follow the TCG PFP specification:
>>>
>>> The TCG ACPI specification uses the field name "Log Area Minimum
>>> Length", but the field value is the actual log area length reserved by
>>> Platform Firmware, not a lower bound.
>>
>> And this is said where? Even the field description (ACPI 6.5) reads "Identifies
>> the minimum length (in bytes) of the systemâ€™s preboot CC event log area." (I
>> agree it makes little sense that way, but the change still needs proper
>> explanation.)
> 
> The above is an exact quote from the "TCG PC Client Platform Firmware 
> Profile Specification Version 1.06 Revision 52".

Interesting. It didn't become clear to me that this actually is a quotation.
Perhaps:

The LAML field should follow the TCG PC Client Platform Firmware Profile
Specification Version. Version 1.06 Revision 52 says:

'The TCG ACPI specification uses the field name "Log Area Minimum
 Length", but the field value is the actual log area length reserved by
 Platform Firmware, not a lower bound.'

Remove the now-unused TPM_LOG_AREA_MINIMUM_SIZE.

? Then
Acked-by: Jan Beulich <jbeulich@suse.com>
and I could make the adjustment while committing (after 4.21 was branched off,
of course).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 12:24:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 12:24:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156894.1485851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGz21-00017N-Q7; Thu, 06 Nov 2025 12:24:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156894.1485851; Thu, 06 Nov 2025 12: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 1vGz21-00017G-Na; Thu, 06 Nov 2025 12:24:01 +0000
Received: by outflank-mailman (input) for mailman id 1156894;
 Thu, 06 Nov 2025 12: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=aFeo=5O=bounce.vates.tech=bounce-md_30504962.690c935d.v1-4f161b4070094513b3309dbc08e2e9d4@srs-se1.protection.inumbo.net>)
 id 1vGz1z-000178-Vm
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 12:24:00 +0000
Received: from mail180-3.suw31.mandrillapp.com
 (mail180-3.suw31.mandrillapp.com [198.2.180.3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 77f9cc95-bb0b-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 13:23:58 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-3.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4d2Lvx2fx8zDRKpfF
 for <xen-devel@lists.xenproject.org>; Thu,  6 Nov 2025 12:23:57 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 4f161b4070094513b3309dbc08e2e9d4; Thu, 06 Nov 2025 12:23: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: 77f9cc95-bb0b-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1762431837; x=1762701837;
	bh=FFGej1DKmUsMC9NLzWpWnuGjFkfWH0XoPT3cylMdI98=;
	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=FnOC3FaDoQr4BOFe9aJ27K0JPZ1UWXKuCsmNbcRR0cjXnPsnaMa27C1DbbuTG2hy9
	 cqxytq08Z4c5vv5krwWoG799l98SXaQQCknjl+Lvs/pTaMHE22hJfWSvGvCtmuXpXi
	 ogBjlql3qQktXEmufVml8dIsk/layd5BvaYkEBF/JZZutK0fBDyq3XIWrb3CSTJGuC
	 3P5wMUJeQPumtgSkZa277IyZYJL3AJsSeMfsd11bfMlbUVXS3GSNlA4PjiapDq36jh
	 prgX00R/ByC54qEv7gh3oQt+n4w2UjKzw17EAzaUrlXmOBWYOoGNbs1QkTkwX61k8j
	 Tb9BmBxuWL5CQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1762431837; x=1762692337; i=ngoc-tu.dinh@vates.tech;
	bh=FFGej1DKmUsMC9NLzWpWnuGjFkfWH0XoPT3cylMdI98=;
	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=urNgwlxYzj0mLGWNWzfSiE1q4UtxZImC8aCxizMDPzkvbqJ4jU8V7dxw+l2oh0cMy
	 YkOK6Vby02XMOHSa0fMgI6nLKM70+WIBTwdXSFZx2HTCRwa/vgdy07B93gxv5fc8k2
	 4RDIPOW+fQTrBmXOTSLaX7KjJ/laWOj3E3i/6omyJZaxWj7XH3EF61qvfamhsCnQUk
	 j82QiXWKsQ9FokUBsphjjyYvRtTDQH3/aqwP91hIZY3Os8kvOblpoWQyr3rpiuGl1e
	 e5bdXawD1nRXQjUyehjCrzEtbeYTajCHqoMcHwfxiOzAYsDLsZ2NHRDmPAWv4hVfah
	 1gZGXOl5cbiNA==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20for-4.22=20v2]=20acpi:=20Set=20TPM2=20LAML=20to=20actual=20log=20area=20size?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1762431836262
Message-Id: <a4a194b5-edab-47e2-9c95-5293e88f6d9b@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Daniel Smith" <dpsmith@apertussolutions.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251105000310.690-1-ngoc-tu.dinh@vates.tech> <58064c07-4182-48d8-9479-7b9f8e9a06cd@suse.com> <e3e182f1-8566-4fe5-b599-3b2f6c582782@vates.tech> <e66a7724-12d3-42e2-805d-b32febb3d346@suse.com>
In-Reply-To: <e66a7724-12d3-42e2-805d-b32febb3d346@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.4f161b4070094513b3309dbc08e2e9d4?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251106:md
Date: Thu, 06 Nov 2025 12:23:57 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 06/11/2025 13:19, Jan Beulich wrote:
> On 06.11.2025 13:13, Tu Dinh wrote:
>> On 06/11/2025 13:10, Jan Beulich wrote:
>>> On 05.11.2025 01:03, Tu Dinh wrote:
>>>> The LAML field should follow the TCG PFP specification:
>>>>
>>>> The TCG ACPI specification uses the field name "Log Area Minimum
>>>> Length", but the field value is the actual log area length reserved by
>>>> Platform Firmware, not a lower bound.
>>>
>>> And this is said where? Even the field description (ACPI 6.5) reads "Id=
entifies
>>> the minimum length (in bytes) of the system=E2=80=99s preboot CC event =
log area." (I
>>> agree it makes little sense that way, but the change still needs proper
>>> explanation.)
>>
>> The above is an exact quote from the "TCG PC Client Platform Firmware
>> Profile Specification Version 1.06 Revision 52".
> 
> Interesting. It didn't become clear to me that this actually is a quotati=
on.
> Perhaps:
> 
> The LAML field should follow the TCG PC Client Platform Firmware Profile
> Specification Version. Version 1.06 Revision 52 says:
> 
> 'The TCG ACPI specification uses the field name "Log Area Minimum
>   Length", but the field value is the actual log area length reserved by
>   Platform Firmware, not a lower bound.'
> 
> Remove the now-unused TPM_LOG_AREA_MINIMUM_SIZE.
> 
> ? Then
> Acked-by: Jan Beulich <jbeulich@suse.com>
> and I could make the adjustment while committing (after 4.21 was branched=
 off,
> of course).
> 
> Jan

That's clearer, thanks.


--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Nov 06 13:03:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 13:03:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156908.1485862 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGze6-0006Y2-KT; Thu, 06 Nov 2025 13:03:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156908.1485862; Thu, 06 Nov 2025 13:03: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 1vGze6-0006Xu-H0; Thu, 06 Nov 2025 13:03:22 +0000
Received: by outflank-mailman (input) for mailman id 1156908;
 Thu, 06 Nov 2025 13:03: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGze5-0006Xn-31
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 13:03:21 +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 f69f6ac3-bb10-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 14:03:18 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-640b06fa959so1597331a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 05:03: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
 4fb4d7f45d1cf-6412a27d68dsm892825a12.9.2025.11.06.05.03.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 05:03: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: f69f6ac3-bb10-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762434197; x=1763038997; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pTFkOsol1TTrMbH7ADYYyVHOeaP/t2T6e6F++LlNxWU=;
        b=GpOkU+JXMwdZ5UO8bFCm+wGaXB2koOvuf9KQ9r95ZwwC4oXg5DGhKHB/dy3ucPd9TK
         OM6zkFZepeCmhw7uK2etdC/JzOaZ0f9zXnS7lhJXa3CJn1Id27XXMJ6k90JbZvR+BCYO
         NMDl8wJ9+uGjC7f/g23ghnIaAcrh01tgdFqs2cY4m+n54Cy+mV2ki+lwIdyY4jy/z22h
         RZxqUUaSau7kkngsw9XWD2cdq4UR/AbkDRLW6qAjvvm8H0eEOQ0CN6ewoQCg2zVLEJCH
         XC4V96orlKCGamCs14w4WDO3j9lq2mS1XSJaPDv+9EVlcDW/ZCUSCte279bzrDbhtd0q
         Ik2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762434197; x=1763038997;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pTFkOsol1TTrMbH7ADYYyVHOeaP/t2T6e6F++LlNxWU=;
        b=pDqPHnM11I9ANVHiGkmSCOzblUzvuG4mB0UaIfyMXV36GK1ajTwofJNOPzxUFkZl6U
         de3F1RHuUej5bD/tLgH3Mu1jxyHRUHT8A9W56eCZ8z8woiNZ2k3z+6nWj5107v+rsgYM
         RXUFkQOa/PsRq0hHkj+49BaadwTdynQnK+VzGsq1jHkZvM6bnaBW48v1kS4N6ODyRy+r
         utzFZWi+Np9v0MezuFLdRW2Jj8ZqDTIqVAPPaKFukF4AJPMaJMtvXqsMRQdQEEH6D7sn
         GdUKNX3c+ztfgOPSLNqJq3yGRgqdxb39q6dyOQzsSjPwjNrUXEjDQ45qp7IlGSd5tOni
         udZA==
X-Forwarded-Encrypted: i=1; AJvYcCUXqKPe67+SAQZ8YhJGZe0REer7aKvm1kfsKSbiWvqNcZ3i6nXTkru4xYxmckFzrcGZnc2+YoUZdw8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz37/fWC4Fdh4vaqgfxX0plSP6zFpQwZI7qIHUC6mpSsWwQc536
	2JV7Bx/DBUdfY3LoXbXsLQE/MOvmtPba/y6uyw6zQqFBPurKPE9x4Oql3Dcxl/Mnhw==
X-Gm-Gg: ASbGncslJAUfQU6SvsUNXD0inEbFb2pPXT+OwBWsUsswKxZy4SEPnGV6SfWilooMD4j
	FKu/RXIgx+tasm66NPtJOUhoyXGkCpnPs4lWb6vHcpEjEMvzEFWNrIFeYqgXrhoBxqaATEUEMeo
	MXI6J6qXpdIWWQosLTqFhalp3srVQOM/w/p0GPMYXkMYX0SVDFJoS4jfH+Gtvxn+vu5EjyOT4B7
	gFyxPyLJqpemtBqNdckrp6In/cjyxXOICaHCs1U9ZwFEkdSNWwQftmTRdWCg6fVCkNaJDQk8RRZ
	4rja6TTeqR3T6ixEwwPNCtPyMJtZKD/BUYg9SjZJAe3UpPvi5mCPXHwDn4vJ3Sp9RoOKXQzM9gW
	H713IbfRU5Wn+tYEL+7OsRKKz+Amj+Ou4sBPT1350J6wQIMtNXSM1uMthP85ERt43N6vtDdqWPf
	MuJWJFAbVtwqI7F022LjkwvY1WvcBpuP3hddDNublvIxd4R1Sppnm8oHkw6s+67WKOWubJ6iqHz
	2c+uZyBhQ==
X-Google-Smtp-Source: AGHT+IFMW3MomuZTuUZnTLUdaO2JZbtew0OvvUE/eL2d6TZLxyleTPLoh17MORzFjLla01s43P3XCg==
X-Received: by 2002:a05:6402:51d1:b0:640:ceef:7e4d with SMTP id 4fb4d7f45d1cf-64105a5e200mr6716581a12.32.1762434197405;
        Thu, 06 Nov 2025 05:03:17 -0800 (PST)
Message-ID: <88013b48-d548-4eeb-b45b-64a3a0287cd3@suse.com>
Date: Thu, 6 Nov 2025 14:03:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 6/8] xen/pci: initialize BARs
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1758618839.git.mykyta_poturai@epam.com>
 <e50fd6adb255b0c5472a8ff640d714586f59c328.1758618839.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: <e50fd6adb255b0c5472a8ff640d714586f59c328.1758618839.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.09.2025 09:59, Mykyta Poturai wrote:
> From: Stewart Hildebrand <stewart.hildebrand@amd.com>
> 
> A PCI device must have valid BARs in order to assign it to a domain.  On
> ARM, firmware is unlikely to have initialized the BARs, so we must do
> this in Xen. During setup_hwdom_pci_devices(), check if each BAR is
> valid. If the BAR happens to already be valid, remove the BAR range from
> a rangeset of valid PCI ranges so as to avoid overlap when reserving a
> new BAR. If not valid, reserve a new BAR address from the rangeset and
> write it to the device.
> 
> Avaliable ranges are read from DT during init and stored in distinct
> rangesets.

The "distinct" lacks context here, imo. Maybe add "non-prefetchable and
prefetchable" earlier in the sentence?

> --- a/xen/arch/arm/pci/pci-host-common.c
> +++ b/xen/arch/arm/pci/pci-host-common.c
> @@ -21,6 +21,7 @@
>  #include <xen/rwlock.h>
>  #include <xen/sched.h>
>  #include <xen/vmap.h>
> +#include <xen/resource.h>
>  
>  #include <asm/setup.h>
>  
> @@ -232,6 +233,21 @@ static int pci_bus_find_domain_nr(struct dt_device_node *dev)
>      return domain;
>  }
>  
> +static int add_bar_range(const struct dt_device_node *dev, uint32_t flags,
> +                         uint64_t addr, uint64_t len, void *data)

Simply by its purpose, this function looks like it ought to be __init. And indeed,
while its only caller - pci_host_common_probe() - isn't, all callers of that
function are. Hence another prereq patch is wanted to add the missing __init there.

> @@ -286,6 +302,14 @@ pci_host_common_probe(struct dt_device_node *dev,
>      pci_add_host_bridge(bridge);
>      pci_add_segment(bridge->segment);
>  
> +    bridge->bar_ranges = rangeset_new(NULL, "BAR ranges",
> +                                      RANGESETF_prettyprint_hex);
> +    bridge->bar_ranges_prefetch = rangeset_new(NULL,
> +                                               "BAR ranges (prefetchable)",
> +                                               RANGESETF_prettyprint_hex);
> +    if ( bridge->bar_ranges && bridge->bar_ranges_prefetch )
> +        dt_for_each_range(bridge->dt_node, add_bar_range, bridge);
> +
>      return bridge;

This is odd: Why would you silently ignore the -ENOMEM condition here? You can't
blindly use the NULL pointer(s) ...

> @@ -476,6 +500,60 @@ bool pci_check_bar(const struct pci_dev *pdev, mfn_t start, mfn_t end)
>  
>      return bar_data.is_valid;
>  }
> +
> +uint64_t pci_get_new_bar_addr(const struct pci_dev *pdev, uint64_t size,
> +                              bool is_64bit, bool prefetch)

(__init as well here)

> +{
> +    struct pci_host_bridge *bridge;
> +    struct rangeset *range;
> +    uint64_t addr;
> +
> +    bridge = pci_find_host_bridge(pdev->seg, pdev->bus);
> +    if ( !bridge )
> +        return 0;
> +
> +    range = prefetch ? bridge->bar_ranges_prefetch : bridge->bar_ranges;

... here, for example.

> +    if ( size < PAGE_SIZE )
> +        size = PAGE_SIZE;
> +
> +    if ( is_64bit && !rangeset_find_aligned_range(range, size, GB(4), &addr) )
> +    {
> +        if ( rangeset_remove_range(range, addr, addr + size - 1) )
> +        {
> +            printk("%s:%d:%s error\n", __FILE__, __LINE__, __func__);
> +        }
> +        return addr;

No need for the inner figure braces, but more importantly: printk()-style
error handling is, well, insufficient? I'm pretty sure I indicated before that
you can't assume the return value of rangeset_find_aligned_range() isn't stale
the moment you look at (or use) it, unless you make further (written down)
assumptions. For example, rangeset_find_aligned_range() becoming __init would
already be a partial indication that it's not fit for general use.

__FILE__ / __LINE__ based diagnostics also aren't all this useful (and get in
the way elsewhere, e.g. for livepatching).

> +    }
> +    if ( !rangeset_find_aligned_range(range, size, 0, &addr) )
> +    {
> +        if ( !is_64bit && addr >= GB(4) )
> +            return 0;

What guarantees that no lower range is available? It's not said anywhere that
the function would search addresses in increasing order.

> +int pci_reserve_bar_range(const struct pci_dev *pdev, uint64_t addr,
> +                          uint64_t size, bool prefetch)

__init again (I won't further repeat this)

> --- a/xen/common/rangeset.c
> +++ b/xen/common/rangeset.c
> @@ -357,6 +357,41 @@ int rangeset_claim_range(struct rangeset *r, unsigned long size,
>      return 0;
>  }
>  
> +int rangeset_find_aligned_range(struct rangeset *r, unsigned long size,
> +                                unsigned long min, unsigned long *s)

What is "min" when there ought to be some alignment specified instead?
(Reading the function body I understand that "size" also specifies the
alignment, but that's not clear at all when looking at e.g. just the
function declaration.)

How does the use of unsigned long here fit with the use of uint64_t in the
callers?

> +{
> +    struct range *x;
> +
> +    /* Power of 2 check */
> +    if ( (size & (size - 1)) != 0 )
> +    {
> +        *s = 0;
> +        return -EINVAL;
> +    }
> +
> +    read_lock(&r->lock);
> +
> +    for ( x = first_range(r); x; x = next_range(r, x) )
> +    {
> +        /* Assumes size is a power of 2 */
> +        unsigned long start_aligned = (x->s + size - 1) & ~(size - 1);

The comment says what somehow you should actually assure: It _needs_ to be
a power of 2 for this to work, yet size being 0 passes the check at the top
of the function.

Also please don't open-code ROUNDUP().

> --- a/xen/drivers/passthrough/pci.c
> +++ b/xen/drivers/passthrough/pci.c
> @@ -1172,6 +1172,80 @@ int __init scan_pci_devices(void)
>      return ret;
>  }
>  
> +static void __init cf_check reserve_bar_range(struct pci_dev *pdev, uint8_t reg,
> +                                              uint64_t addr, uint64_t size,
> +                                              bool is_64bit, bool prefetch)
> +{
> +    if ( pci_check_bar(pdev, maddr_to_mfn(addr),
> +                       maddr_to_mfn(addr + size - 1)) )
> +        pci_reserve_bar_range(pdev, addr, size, prefetch);
> +}
> +
> +static void __init cf_check get_new_bar_addr(struct pci_dev *pdev, uint8_t reg,
> +                                             uint64_t addr, uint64_t size,
> +                                             bool is_64bit, bool prefetch)
> +{
> +    if ( !pci_check_bar(pdev, maddr_to_mfn(addr),
> +                        maddr_to_mfn(addr + size - 1)) )
> +    {

With how pci_check_bar() works on x86 right now, ...

> +        uint16_t cmd = pci_conf_read16(pdev->sbdf, PCI_COMMAND);
> +
> +        addr = pci_get_new_bar_addr(pdev, size, is_64bit, prefetch);
> +
> +        pci_conf_write16(pdev->sbdf, PCI_COMMAND,
> +                         cmd & ~(PCI_COMMAND_MEMORY | PCI_COMMAND_IO));
> +
> +        pci_conf_write32(pdev->sbdf, reg,
> +                         (addr & GENMASK(31, 0)) |
> +                         (is_64bit ? PCI_BASE_ADDRESS_MEM_TYPE_64 : 0));
> +
> +        if ( is_64bit )
> +            pci_conf_write32(pdev->sbdf, reg + 4, addr >> 32);
> +
> +        pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);

... all of this is unreachable code there. Misra doesn't like such.

Furthermore x86'es variant emits diagnostics, and aiui we'd now see them more
frequently (possibly: than wanted).

> +static int __init cf_check bars_iterate(struct pci_seg *pseg, void *arg)
> +{
> +    struct pci_dev *pdev;
> +    unsigned int i, ret, num_bars = PCI_HEADER_NORMAL_NR_BARS;
> +    uint64_t addr, size;
> +    void (*cb)(struct pci_dev *, uint8_t, uint64_t, uint64_t, bool, bool) = arg;

There is still no connection at all between this function pointer type variable
and the two functions tobe called? Why is "cb" not directly the function
parameter? (For Misra's sake it may also be necessary to name the six parameters;
I'm not entirely sure, though. There was some back and forth at the time.)

Also, why is the first parameter not pointer-to-const?

> +    list_for_each_entry ( pdev, &pseg->alldevs_list, alldevs_list )
> +    {
> +        if ( (pci_conf_read8(pdev->sbdf, PCI_HEADER_TYPE) & 0x7f) ==
> +             PCI_HEADER_TYPE_NORMAL )
> +        {
> +            for ( i = 0; i < num_bars; i += ret )
> +            {
> +                uint8_t reg = PCI_BASE_ADDRESS_0 + i * 4;
> +                bool prefetch;
> +
> +                if ( (pci_conf_read32(pdev->sbdf, reg) & PCI_BASE_ADDRESS_SPACE)
> +                     == PCI_BASE_ADDRESS_SPACE_IO )

Nit (style): Operator placement.

> +                {
> +                    ret = 1;
> +                    continue;
> +                }
> +
> +                ret = pci_size_mem_bar(pdev->sbdf, reg, &addr, &size,
> +                                      (i == num_bars - 1) ? PCI_BAR_LAST : 0);

Nit (style): Indentation.

> +                if ( !size )
> +                    continue;
> +                prefetch = !!(pci_conf_read32(pdev->sbdf, reg) &
> +                              PCI_BASE_ADDRESS_MEM_PREFETCH);

No need for !!.

> @@ -1263,6 +1337,11 @@ void __hwdom_init setup_hwdom_pci_devices(
>      struct setup_hwdom ctxt = { .d = d, .handler = handler };
>  
>      pcidevs_lock();
> +    if ( hwdom_uses_vpci() )
> +    {
> +        pci_segments_iterate(bars_iterate, reserve_bar_range);
> +        pci_segments_iterate(bars_iterate, get_new_bar_addr);
> +    }
>      pci_segments_iterate(_setup_hwdom_pci_devices, &ctxt);
>      pcidevs_unlock();

Does this really need splitting into 3 steps? Can't _setup_hwdom_pci_devices()
take care of the uninitialized BARs?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 13:19:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 13:19:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156923.1485872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vGztC-00005R-Uj; Thu, 06 Nov 2025 13:18:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156923.1485872; Thu, 06 Nov 2025 13:18: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 1vGztC-00005K-RC; Thu, 06 Nov 2025 13:18:58 +0000
Received: by outflank-mailman (input) for mailman id 1156923;
 Thu, 06 Nov 2025 13:18: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vGztB-00005E-Fd
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 13:18:57 +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 25c92d12-bb13-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 14:18:56 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-477549b3082so8831875e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 05:18: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-4776363da40sm44448765e9.2.2025.11.06.05.18.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 05: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: 25c92d12-bb13-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762435136; x=1763039936; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Kf+xTHewW8FtuWWe56OR9g8lpuB4nQz/BrnLaPkG8VM=;
        b=BDFj63wIZWcyrbq5mJvWkrBJcB77zRqwKnYEUW4o/LCNfrHAJGlLTKS+fO8c1G5KJn
         lMAYA73Yh2D7e6t8q7HEZVChH3oe+91Lf9HfykobBIGEvXDHWZEiEGtfIqt81f3+dtSt
         VYw+ObIiyMjwiIsNArPFLNS2yjbcFttynZyN6GGjGrnRMjPR4hKVwCXfFXBm1pXpIEV/
         LHOnWzN02O8uQIFADEoorQ/qPqBPDRMHEuTtEMDEQ0pGbQgVZc52GfwtaDWLyOedsoVR
         PBcuDc7BZUXORBaqS1f4Qy4tZPeV0xRu21Yqcoy0JMHjVhh34CiIz9QNjqjgS6gplDjT
         pxkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762435136; x=1763039936;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Kf+xTHewW8FtuWWe56OR9g8lpuB4nQz/BrnLaPkG8VM=;
        b=tTanRQkVj0MCtzHJBl44Z906D5UeWTRF2tvUrcQBsCiCEQGo5V0fEiRxHDX72At97P
         46wushq/Ve7Xlt67OTdZH9MTRfjSgiwVAMiFPDaHHYaFw70cOOenc4vAOJsbqM7j3txj
         uiTkbiBWmt5BFQWC9j47hDm4YHgd6XM7pzT0sEuMWC6oaGzKSPPDHA9IaZPM8ige98UI
         jrn0Zgd3s8VMaAdOYwp3cQ0D/CO7JqdKdI4OiGYX1jH8ZPheXwjBq9Y4FAUI6QdzCyXm
         cMqJxi9QgMy79bCTZOurZbpCfcppeeyeoMHuFh7B0R7PJmPAMnfUzKgy20EzBtsmgF8K
         3zFA==
X-Forwarded-Encrypted: i=1; AJvYcCXQV49bNy2Smw+XomkP9TJoTcBD2ezoFIY3FTJdZJGqcL+tpPOtlO/LoNDZwBx7fWMcfZWJiZUW9CI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw6TlQ8Dhfu3W1YQ0oIHb2ZXTD5Tc5ZMjJ5wDx/EVe21crLW55W
	ABzPqO2NYOW9nGLEYrf9xyQqtfO6MRhhn8JiwVXsvwB42UFSk7H0l8PXP3QWo62x+g==
X-Gm-Gg: ASbGnct0IACFPJxG2oOExEtrK+rpz7XjL+hoFoKTR1rpQGxrZWqdT0A3kxbU8a7SpHU
	KoxXvXYHyz1MIP22bCZ1ZJDX7mIiFjlCyHSanKQNPYc+pFChEkJC2k4MUjKkkoFEAXk8FqehC0S
	7PDHlT9NX+vRhD8BuAC3wGAP3eNCd5Wow6ed0JFGq6qSPIIBLrlULsx8ZXg+8IEd+6nFKY8cABz
	yKxSn2x59SLotCsTK7t4lsbsRc/OBfa0I6vYYoQNETLNrnoHAh1zuwFebEdAuxouKrAM1LeopgN
	oSznGREpIRDvgWSlzCjVsPuag1etSDmN2SVOUZcgOUKbx6uRjn1a+uLHfFc+9WdbZFl12zU+ifp
	jB4TEMW+3XjeRiIVUG04R+1H2mYlrXYrN+jQ3ZN/QNJjN9w6ib+whFLgWkLjpih51F+dC90fuMb
	efyJAY5sfzgI/8JDpVTPJzOe94dbwuKBLVCNddoRK9vY1sBkOIXvFZB4vNgjO2
X-Google-Smtp-Source: AGHT+IErf09l/WPwljTK0elK/nPmvU+N4JdGN6AUh7m6bJAlzJ3ewO5xR1AIJj80At+kpF91KpVmLA==
X-Received: by 2002:a05:600c:5287:b0:45d:5c71:769a with SMTP id 5b1f17b1804b1-4775ce14937mr54056625e9.26.1762435135612;
        Thu, 06 Nov 2025 05:18:55 -0800 (PST)
Message-ID: <9ec406ef-af62-4245-9202-3d70e9550e9d@suse.com>
Date: Thu, 6 Nov 2025 14:18:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 7/8] xen/pci: assign discovered devices to hwdom
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Luca Fancellu <luca.fancellu@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1758618839.git.mykyta_poturai@epam.com>
 <ee305fc5b277060a3ae3c7fb26cea6b34920048f.1758618839.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: <ee305fc5b277060a3ae3c7fb26cea6b34920048f.1758618839.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.09.2025 09:59, Mykyta Poturai wrote:
> @@ -133,6 +134,12 @@ void arch_iommu_domain_destroy(struct domain *d)
>  {
>  }
>  
> +static int iommu_add_hwdom_pci_device(u8 devfn, struct pci_dev *pdev)
> +{
> +    const struct domain_iommu *hd = dom_iommu(hardware_domain);
> +    return iommu_call(hd->platform_ops, add_device, devfn, pci_to_dev(pdev));

Nit (style): Blank line please between declaration(s) and statement(s). And
blank line please also ahead of the main return statement of a function.

> @@ -142,6 +149,8 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
>      if ( iommu_hwdom_reserved == 1 )
>          printk(XENLOG_WARNING "map-reserved dom0-iommu option is not supported on ARM\n");
>      iommu_hwdom_reserved = 0;
> +
> +    setup_hwdom_pci_devices(d, iommu_add_hwdom_pci_device);
With this function being __hwdom_init, why is iommu_add_hwdom_pci_device()
not also given that attribute?

As to cf_check I don't know what the Arm policy is: My suggestion would be
to put that attribute wherever it is (potentially) needed.

> --- a/xen/drivers/passthrough/pci.c
> +++ b/xen/drivers/passthrough/pci.c
> @@ -20,6 +20,7 @@
>  #include <xen/pci_ids.h>
>  #include <xen/list.h>
>  #include <xen/prefetch.h>
> +#include <xen/iocap.h>
>  #include <xen/iommu.h>
>  #include <xen/irq.h>
>  #include <xen/param.h>
> @@ -1040,6 +1041,12 @@ enum pdev_type pdev_type(u16 seg, u8 bus, u8 devfn)
>      return pos ? DEV_TYPE_PCIe_ENDPOINT : DEV_TYPE_PCI;
>  }
>  
> +static bool pdev_is_endpoint(struct pci_dev *pdev)

__hwdom_init? And parameter pointer-to-const?

> +{
> +    enum pdev_type type = pdev_type(pdev->seg, pdev->bus, pdev->devfn);
> +    return type == DEV_TYPE_PCIe_ENDPOINT || type == DEV_TYPE_PCI;
> +}
> +
>  /*
>   * find the upstream PCIe-to-PCI/PCIX bridge or PCI legacy bridge
>   * return 0: the device is integrated PCI device or PCIe
> @@ -1255,7 +1262,7 @@ static void __hwdom_init setup_one_hwdom_device(const struct setup_hwdom *ctxt,
>                                                  struct pci_dev *pdev)
>  {
>      u8 devfn = pdev->devfn;
> -    int err;
> +    int err, i, rc;

i clearly wants to be of an unsigned type. And rc, afaics, can have its scope
limited to the loop body.

> @@ -1276,6 +1283,34 @@ static void __hwdom_init setup_one_hwdom_device(const struct setup_hwdom *ctxt,
>      if ( err )
>          printk(XENLOG_ERR "setup of vPCI for d%d failed: %d\n",
>                 ctxt->d->domain_id, err);
> +
> +    if ( !hwdom_uses_vpci() )
> +        return;
> +
> +    for ( i = 0; i < PCI_HEADER_NORMAL_NR_BARS; i += rc )
> +    {
> +        uint64_t addr, size;
> +        uint8_t reg = PCI_BASE_ADDRESS_0 + i * 4;
> +
> +        if ( (pci_conf_read32(pdev->sbdf, reg) & PCI_BASE_ADDRESS_SPACE)
> +             == PCI_BASE_ADDRESS_SPACE_IO )

Nit (style): Operator placement again.

> +        {
> +            rc = 1;
> +            continue;
> +        }
> +
> +        rc = pci_size_mem_bar(pdev->sbdf, reg, &addr, &size,
> +                              (i == PCI_HEADER_NORMAL_NR_BARS - 1)
> +                                  ? PCI_BAR_LAST : 0);

Nit (style): Indentation again.

> +
> +        if ( !size )
> +            continue;
> +
> +        err = iomem_permit_access(hardware_domain, paddr_to_pfn(addr),
> +                             paddr_to_pfn(PAGE_ALIGN(addr + size - 1)));

And again.

> +        if ( err )
> +            break;
> +    }
>  }

This change supports my comment on the earlier patch, regarding the option
of doing here some of what needs doing, rather than by another round of
iterating all devices.

> @@ -1294,6 +1329,9 @@ static int __hwdom_init cf_check _setup_hwdom_pci_devices(
>              if ( !pdev )
>                  continue;
>  
> +            if ( hwdom_uses_vpci() && !pdev_is_endpoint(pdev) )
> +                continue;
> +
>              if ( !pdev->domain )
>              {
>                  pdev->domain = ctxt->d;

This is (logically) wrong: On x86 PVH Dom0 uses vPCI but wants all devices
to be handed to it. _This_ may be a place where has_vpci_bridge() might
make sense to use (simply by its name, that is).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 13:42:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 13:42:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156939.1485881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH0Fz-0003x4-Nh; Thu, 06 Nov 2025 13:42:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156939.1485881; Thu, 06 Nov 2025 13:42: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 1vH0Fz-0003wx-LB; Thu, 06 Nov 2025 13:42:31 +0000
Received: by outflank-mailman (input) for mailman id 1156939;
 Thu, 06 Nov 2025 13:42: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=0oVY=5O=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vH0Fy-0003wr-Ch
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 13:42: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 6f6f1ead-bb16-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 14:42:28 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by DU5PR03MB10421.eurprd03.prod.outlook.com (2603:10a6:10:523::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.16; Thu, 6 Nov
 2025 13:42:25 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9298.006; Thu, 6 Nov 2025
 13:42:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6f6f1ead-bb16-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kiokrS/PFAdWcRD+40VUhDGuOPEHBEuAva+by041WpfUy8US8NE8XDafeBB43AdT6l6EvuEAyiMYJ9N1RAtu/0hjWdsDpliU3t66VxcJBHmQKfEoUFkbnPmHSqNTcr99pPIZ1IOBJoL/I1riuWWgz0Y66pAPOXL+N16FpoJks55lcIp+U7UkwUgKoF8JUtpJZLUmBbh/ITJDenywEV2KLGpJCK7yrUPHI2Buwbl/M1SV5oHDvuPlClm2MlGh0eQt4jN0Q/vmaJ1YwQr0zPiS4QC3fAIJd0QkiL18454NJJ5KbCj+cfUeyMMXpbUjqQvJIGjH2geZ5vFM89PEMnPafg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+zcS1JRApop1QLWvVyrN8hvB1GBagH35NyYlKb5HkEQ=;
 b=YQRaUOOAaj7hlQsrkWA/OHbOtuxYpG+L9xaCDCa8N5KVKQnx/ymkH3dzPqXUlhDl1XavD6XpkZmrnu2jgvNb0cG07SI/FAh45gzN6ttrAkk92NRTz4h2F9Jch/VAC2/xPlqJu/tmJPFWbkSBNxSKlhDSh8kbfAnMW4N4X5Y4GjzgWUysQ9tul3hhorVFc91/eNpwU8THyEkVzWC43ILXnd3AybuWZPSpkfimb7RdMehXuWKV65juksep83IhUSk1skE5Qop+6JDqgocaTRyD8KA6SY2gBoX3NEK11i4pBqkEs18x4wRF8Pv/YrvgNpik6L4sMOJaO5n2ce3/iKm+PA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+zcS1JRApop1QLWvVyrN8hvB1GBagH35NyYlKb5HkEQ=;
 b=nfEjQE1gs4PzW13+vq9afKkiaHkMU+BK6jC4iokgjYBrEUE1IfeyJqfxiPAWcZ+FjKDpHastlzEnYzU/762IPcnBUW6ofntvn8D0wKPQlFWRNkRWXaQRSVKjfyQYpvKvS5vrVPk8/t6MhZqGUqr0xrpnc/aezthkXLwWix4T1zitAC/mMjNyEJo86qKOo74atYf9qPjZ29ixM/7sYLBfqP7F71wpRyMg3VcmkJIeB60cHiKHupTZ+KbATaXyLBXy53S0qy7GcMEy8XFuq2NcVtqrIZa4sBCe9RmcEUjzHuTVpWFX1RNZ8pzuiNwnHgA2Kd1W8Ib8GxWFTMFrQPwbFg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <edb590e4-340d-4a0f-9543-0dfdcc7b54b1@epam.com>
Date: Thu, 6 Nov 2025 15:42:23 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v7] x86: make Viridian support optional
To: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Paul Durrant <paul@xen.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251031161716.1222956-1-grygorii_strashko@epam.com>
 <a4d3eb8d-17ea-4d3c-87ef-ba5c3477b8c3@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <a4d3eb8d-17ea-4d3c-87ef-ba5c3477b8c3@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR2P281CA0175.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:9f::12) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|DU5PR03MB10421:EE_
X-MS-Office365-Filtering-Correlation-Id: cd3c1d07-be3c-498b-a77a-08de1d3a51ef
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?RjRERTB4Nk5GVlJHUzNzd2IwRy9qeVJ1VzhUTzk3UkFweS94QytrYS9XNDg1?=
 =?utf-8?B?dS9OdUJCelo5QnpVZEJ5YW52K3MzL2NiWjFFZFAvS2tlRGpOY3VnWW9qOUtY?=
 =?utf-8?B?a0ZPSXl0aVk1bFlyTStsM1pkTDFPWmQ1enZxZG81M1VLSXpRaEprODdsQU50?=
 =?utf-8?B?V21qZWhFWVhFWnEyZW9pUE5sVW9YYVNta0FKYko3NHBXYlhYQUFpTFJ2N2ZS?=
 =?utf-8?B?Zk9adXZBdml0RXVsY01CU25Fa1hHc0l1Z2JPeUdKTU1tbDgzNHgySFN3WGxl?=
 =?utf-8?B?bUNqTjVUaWk2K0JRK0NuSHA0ZW0vQzJUdGk3VmE4UnB2ZVhKRFpwZElZWVlC?=
 =?utf-8?B?RkhzV3hva05wbnJzVExLQjNWbTkyUVB4dGFmQTd4em9HSTVmTWlrWlR0T3d5?=
 =?utf-8?B?WGNEY1BPL0xHNURiOG4rRC9MWkNEVGVacURGR0Vkdk56V3lQa1d5OTdoVWhK?=
 =?utf-8?B?VXpEWDZHZThIR2FCcFMzMkVlTFNDOEtYZzRvU21sVDg4Q2J1RHBkSjdRdWMy?=
 =?utf-8?B?UWJpcmNkUnZoUEZPb3N5dW9tUmxNaEpJS0dMQ0VMa0I4OXplQzFMeTZpbTlY?=
 =?utf-8?B?cnNINUR1OHRGb29zdzU4U3B0UG5tWnIxWVFZa3BscXpFSDh2STNEZjB5d0Jr?=
 =?utf-8?B?b3ZaZzBnZTBzMUNWcWxxZ3lQMnVDa0tEVkxIalI3aHgrdmpyZUl4UUJhVllH?=
 =?utf-8?B?TVJZOVpYYk9KS1BGbzVjTmVKY3MvMk9vRUN3NllqQ1FkVVRGQm1FbE84eG1Y?=
 =?utf-8?B?WEZFQWZPTzJ2NkxkZjRBYUxPWXBFdXFpL1QyTW9RMkZ2aVpic0JZTUxFL0tK?=
 =?utf-8?B?WVJ2RFdmaEo5TXExVFBoN3JJUmdwLzVDbGFuUWRVUkVZelVWclJEU3FrMHdG?=
 =?utf-8?B?Y1psWU1LTlQvYWxvbjRRK1pWZnlsN0tDMkdIYjVrUVBzZHd1UzNLSmZyaS80?=
 =?utf-8?B?SzVWQzVrcytQeTdyVHNFZ2F6cjRTbUVzdjlQdnNDZytaUzgxTEp4YlA0QTZH?=
 =?utf-8?B?VXJ2eWlqeG1YRG9RbVA3YWtTUjRmSDJUZXBmZjVWTktRNzlUczc4MEF0Znho?=
 =?utf-8?B?SmNUeWVhNjljdkZ4NHJmKzZZc1VrODlyczNXaGxjUnM0Q0M5SkF4WFhRTkNN?=
 =?utf-8?B?eHdHREZ1b2dmZzVOc1l6SVNSblFyeE5jVDVVNkpjMmNXOHkwem45eDZ2bzRT?=
 =?utf-8?B?Q1BITTRTY1ZYc3R0WVFYUzU3SlRGblVSeFRhaG42T2VyQlhwZGl2MEhObUU5?=
 =?utf-8?B?OHBSZDlYaGJFWFdRS25JUWRvVytTTHNBNkRaTjZnT2hLcEtUUDYrSHNBeW9p?=
 =?utf-8?B?MjNYUk9vSDZoTEoyOXRQYTByUUI2WVdZSXFEUnh3ZXdTc0JmU0l2M1FpbFVx?=
 =?utf-8?B?Y0JkVjZ2TERraDlIWEI1cXZrK2dESXJYWFRiV25XZTdUSEdZcGVob3cyRkRt?=
 =?utf-8?B?REhnZnRGYklkcUt0VDVkMXY3Z1czcGsxRGZXY0lSVE44V0xIVVorL1Rlemxq?=
 =?utf-8?B?cGxabkJZdjJKcGdZb0t2dW5jdE82YWhJd1BiSGNSZm41TFk0QlhJanhxKy92?=
 =?utf-8?B?YVM4UFNhWHJScXFsdnBUVXVuLy9JbVd2NCtJUmxoL3QxaHE4UUdzYWFrR3ZR?=
 =?utf-8?B?MjV3YTBTRUx5R3FFajlMNlUrRFVTSWMxUk5jdFg3YkJLYlZTd0VyTFZ3NTN4?=
 =?utf-8?B?ZzlHOW1SVDIybFMzdkIwbHF0REpzdnUxWlA1aHNJMHNLaVlrSzJBMkZzZjdu?=
 =?utf-8?B?MXcxV2pEa1lSR1V6ZWNGSHl1enpvTmdSbktmVXFQNFZubkd1S2x5OEg1eXh6?=
 =?utf-8?B?VEhldG5MUlI0UnRCc3lXUDFtM0JQZERBb1VpVHczamtzQ1Nod1NlY3ZUUk96?=
 =?utf-8?B?ZmcyWTRZdmlEeisrajVqSjQrbnF6dXNuQW54L2xyYURzK3Y2a0VZbVZUS2d4?=
 =?utf-8?Q?HCKv581hMTRFJelYq27W4+F03oyWjFtZ?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZWNGN1VVK1FXVmoraHJveWxuVW14R0ZhaEtwbnBUS21WaFFrUkhPWXYvNGNi?=
 =?utf-8?B?WnpXOHFYMzh1ZW9sMVJzOTFZT3lKQ1V6SHVHeVJmcGw0eU96RVJnZGQ2SjU5?=
 =?utf-8?B?alJGcTZaSys5V3pONC9nOXZpd01mNVlTc3hrenY3c0wvZjVkUlZuRHBjc0ZB?=
 =?utf-8?B?anBBcHV3TnZGRVQ5WXNEeFpnaHc5ZExQL1BETTJRbkJ5Zi9PRmVWS1FicVFU?=
 =?utf-8?B?VkcyYkZISU9xUVhtSWU3eVZiNjk4eHB2TjlwYlY1azBXZWhyb2tkOEdTLzNv?=
 =?utf-8?B?QnhYUVZFaGpFV1IveUN0VVNiMjRmbklxM3JPdENMTzY0TmM3Lzc1Z0VDOEMw?=
 =?utf-8?B?dHZTbm0xQVFnUzZVTktBWGxQNndsVWJOWExXYXdYT3VvYjFaOVJqSXBpRkNC?=
 =?utf-8?B?RVlmbnB2RWpFN2ZrK2tnL05WVEh6dUxrTUZLNU51MW02SGJEdkpOdUdZZGtt?=
 =?utf-8?B?TXg4VTVOK3N5MlJDK0Q2d2owTStPK3ZCMHBzeGpLSGRGZ1VFKzQ0MkwzanB5?=
 =?utf-8?B?SHhUQUJzVmpsZ0hxUFlXRzIwRzBFeTQ2enZlRk5oT2VBWG9wejgyeUNzRVVX?=
 =?utf-8?B?MUdTVEN2K3FSaEtjNTluRVNTYU93S3NtTFhhbFc0YkwrVEw1bUYzT2RRV1Uy?=
 =?utf-8?B?L1JlRGFDR1FHcmc3eVNMdzN5MmNUakowUnUwOUFmTGppQWlCa2E0THQvZWcr?=
 =?utf-8?B?aWpEV2xWVzlLZlJueEhrVHoraFcxRUw5YmJBR2I4Q3hEaDRjdUxuRTN2R25h?=
 =?utf-8?B?R3dEd1ZjcTQvUndPelZaanJvK1BRVU43NllOcUpjVFNvckt3MHBEWExPUE1i?=
 =?utf-8?B?YXlrSXU5d2JJLzNOeFB3aDMzbXBUMTNoaDRxUjdPQTVIV1N3MzJEZTgxa01k?=
 =?utf-8?B?MFJpNnJXcysvMFZCNWlBSHJWbzFNYkt4Y09PR2JoUHBTUEd5RUpNZExqTG1o?=
 =?utf-8?B?dlFDeWJIbUVQR1lQZURxRTFiWW1qc3F5RHF5KzNjeElNRXFCL0FZV0NsSE5i?=
 =?utf-8?B?aUUzNGM3YlZsdWhBcEUrQkhYcUhYUlNnU0xrdFZja0prcmQ2UDU3ZXFPQ0Zx?=
 =?utf-8?B?OHdud3h5M1FyZ05Uek1HOHFiL3gwcDdtQmhrZXMwSFZsejdWQ0pLWDI4V0RS?=
 =?utf-8?B?RmF4MXpVTlZVQjhScGxLMS9jSHg1WXNUT0x0dGcxbTNSSkhvVENwdDBZTDVn?=
 =?utf-8?B?SWkyd00wUVVHbkNra3VGNGRIdjNZWkZhLzF2WC8rRmJUS09TVWcyRnlJNFR2?=
 =?utf-8?B?Ri9FVWxaMUpIeS9Jdkp3UVp3ZWxXS1VoajJudDB3M3h0ei9wSHFma2ZPR0FV?=
 =?utf-8?B?Ykt3aDhlZUNqSlQ5cXpQM0N1MS9FVGhIcHpJMWROR3BJNzFxamFXRWp2M04z?=
 =?utf-8?B?dHl1Wloxb0R0dUFrSGw2cE9BcEljaUc0bmtVb3c3UGtNSnJZdGV6UjNLL0xW?=
 =?utf-8?B?S1RGSXljUXFYbis1RUlZWEl1eTJVOWxyanFqazRpTlY2VXhOZVAyZCtnSVEv?=
 =?utf-8?B?WmNadC9WaDVLMndQamg0QkZDL1RQa2NPUHgvemd2M1FxUXZuWWxxY0hmelNs?=
 =?utf-8?B?eHRzbkRjRjBBQU5IdThPSHp5cTdFK3U0WmtqcWdpbU5HNTVrNzhKVkhlZ3dN?=
 =?utf-8?B?SWdEVHR1Qm50UTZxUVBnVGM2aGFYUis0YmI1NnZqMSs1SEE4TGdyd2ZYd3J4?=
 =?utf-8?B?TFNEdGdwRHVobUZWNWZDZEkvQ0hkKzZtaWhJbkhad0c5YldpUGhWTURkbXVv?=
 =?utf-8?B?blpYU1NiV3p6bXIrR0szWHlzSE5aM25mS2ZkcUxBUzNzSFlOSUM2alNDWXZv?=
 =?utf-8?B?ZmdHTlloZVdHUkE1dlFQcWRpQUR6cWFEcXk2K011NkduR3pNYVVVQUxEWXhu?=
 =?utf-8?B?K2hET1NGREp2RFg1U2s3d3VvTVF6OEM2OS9rczRuNVpEdlA0dmhBaEdkOURM?=
 =?utf-8?B?RlVCQUFWTk9XOGJEcjlBL1JMSWwzQkpUeXcxYUpRSEVkdytPODdTOFIyL2hl?=
 =?utf-8?B?NjlTdzFLT0E0Y3M2TXJoK2kxREZsZWJVOWxKQ0FNTGZFc1hhQzFPYUlwT1Rl?=
 =?utf-8?B?OWVUKzgwM3VjVzlLREZjajFyOWxFa3pIcEh4dHVYM29VTnYzbUs0YzRtdUMy?=
 =?utf-8?B?K1hHTk5iRTRzRjdCTnlyblVnNjRGZDI0RjZIUG4vUHhDUG5OekQ1RnZWbTJQ?=
 =?utf-8?B?Wmc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cd3c1d07-be3c-498b-a77a-08de1d3a51ef
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2025 13:42:25.5622
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: sx2Bj6fXagxffTrKM0t0vpn8DUHqgTEvI8A2c02DCAf03tMB3g299UawORTDYii/XpDEny0IyI0WLHIQ1IDQNaqXOqeX9oMNZnw82q60PS4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR03MB10421



On 06.11.25 13:35, Jan Beulich wrote:
> On 31.10.2025 17:17, Grygorii Strashko wrote:
>> --- a/xen/arch/x86/hvm/Makefile
>> +++ b/xen/arch/x86/hvm/Makefile
>> @@ -1,6 +1,6 @@
>>   obj-$(CONFIG_AMD_SVM) += svm/
>>   obj-$(CONFIG_INTEL_VMX) += vmx/
>> -obj-y += viridian/
>> +obj-$(CONFIG_VIRIDIAN) += viridian/
> 
> With this, what is the point of the additions to viridian_load_{domain,vcpu}_ctxt()?
> You're adding dead code there, aren't you?

Hgrr. And we end up back to v3 regarding this part.
Check in viridian_load_{domain,vcpu}_ctxt() may/may not work depending on toolstack
behavior which is not strictly defined (loading HVM_PARAM_VIRIDIAN before/after
viridian_load_{domain,vcpu}_ctxt()).

So what's the conclusion here - drop this check?

> 
>> --- a/xen/arch/x86/hvm/hvm.c
>> +++ b/xen/arch/x86/hvm/hvm.c
>> @@ -4231,8 +4231,9 @@ static int hvm_set_param(struct domain *d, uint32_t index, uint64_t value)
>>               rc = -EINVAL;
>>           break;
>>       case HVM_PARAM_VIRIDIAN:
>> -        if ( (value & ~HVMPV_feature_mask) ||
>> -             !(value & HVMPV_base_freq) )
>> +        if ( !IS_ENABLED(CONFIG_VIRIDIAN) && value )
>> +            rc = -ENODEV;
>> +        else if ( (value & ~HVMPV_feature_mask) || !(value & HVMPV_base_freq) )
>>               rc = -EINVAL;
> 
> I find the check for value to be (non-)zero a little dubious here: If any caller
> passed in 0, it would get back -EINVAL anyway. Imo -ENODEV would be more suitable
> in that case as well. Things would be different if 0 was a valid value to pass in.

The idea was to distinguish between "Feature enabled, Invalid parameter" and "Feature disabled".

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Nov 06 13:43:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 13:43:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156949.1485892 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH0HM-0004TJ-1e; Thu, 06 Nov 2025 13:43:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156949.1485892; Thu, 06 Nov 2025 13: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 1vH0HL-0004TC-Um; Thu, 06 Nov 2025 13:43:55 +0000
Received: by outflank-mailman (input) for mailman id 1156949;
 Thu, 06 Nov 2025 13:43: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vH0HL-0004R8-3I
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 13:43:55 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a1fe539a-bb16-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 14:43:53 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-63bea08a326so882720a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 05:43: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
 a640c23a62f3a-b728964480esm211649766b.38.2025.11.06.05.43.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 05:43: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: a1fe539a-bb16-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762436632; x=1763041432; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ig10tzCj2v0cij1uqORzajW9xoL4sM628AWRNL5jgIs=;
        b=OXy466KspyRvb162PwQ+csNnzVXiJ8jirfD7izOkhx1ceoK1UveNjNVFrui8kd5Ycq
         v54oRC52dWBan9Pn16Iz+3DJR3ou9kjLbhEm+24lSySeVyOlBj5iQnhqLd/BGDmTKF6q
         v6qunkAom/zXhIrefbYlBQXT3XCeFLrZQo0jFdf7OO0Y9yYkxAkMcDwgEeDVZ2dpa5WD
         vfMwq0//V9/dPla5/ITMSK4Ztx9kXgHgtxQLOJBE0y77nKszQ6azrWQLEccrbyeZF2A0
         eQhUqyntYg5Fbs4uxP9Qsp3fj01LgZXu99Z7mQgO6kvnAnWOVDMOrW0ztTyCyVfszy6P
         sYYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762436632; x=1763041432;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ig10tzCj2v0cij1uqORzajW9xoL4sM628AWRNL5jgIs=;
        b=ffnA/q4G2gb0sWtFDhzws1AqCJjzOGuC+vlwN/loR02qfF+gtiu7LPu+i/FYvBSF4/
         ltU1dgBESTPynz+4u+FNlMSlEq8nvZeeZ+NljnTmTPWdeagYdDoHUzrt+Ykb+Tua+LP9
         gIM0PwzweuQfksBLMEbN1at1vBE6+W/Dk1MFUbRauZ8yhsp90EwUO9Am102c3Uwn2/em
         aSxtesWHaYMn/LOkquMe7f/8jMCyxUbko+4/Si3GS4MHJRVDLRLhuGqKc1nIt/Hw8HP9
         7VfqtwFDsLRp3HNn7WzG0CneLTanDXxXIgpxZwVHeIuDKfuJrp5StW36Jft6IhrQ0Dw5
         9j6A==
X-Forwarded-Encrypted: i=1; AJvYcCW+GoLVdC6iAR8sQW/H6eciB3UmKx5GD0RRry7huCmjPJ5ZMAjatLkffrTAMShpdlJSq7z8aJDOlfs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxgw+atXvg+6yy81fNoqpF/5jQur6LERrfDrxxE3+VBDskKfVZF
	CbzXprjtCAaVlc6hdw3dFRPPJBIFKOT9j792BH+FGoOy21iUCJjoVztboFS8PcQbJw==
X-Gm-Gg: ASbGncuTlCGepDMVC9L9pvbUlZvW+44XzQqDZbXEwwEHsdS9VbDpt+ItY2DLwmZYyuj
	xoJlAU038bqgwZcbeN8TbFs938WE+9LV2TQVKXoXDf0WVu0Fa9OVFLs0QlYW+ZdRrRltZoHjobY
	wjgKCMJiXXhBejB4GcJmAwerTHPM6pTSoaYIqiTE9DgL8Fn9pZ9yE1RibqdsuQk8J8ohiFFynqQ
	IpHpymYk9j145tT8Lqun3lrjMvOeFycFgIUFfogo7Yh17q+s71AgUGA64fq1zLxlGEEOXqeZYTx
	BEyWcJ3LktsJgF9YYuaA3Oz/5zJX5MnDuxZL9KI8q73B43p6xdxNiBevCD0gP0qk4hfrEqOt9IY
	LBiu+PCR2XjS8QOn06YMG2MEzt3Pxr/+IaRwoCRBAwUi9LYScRif6yWBUJ+LysLFfTYFGUNGiez
	z/sBEaoZ/2qYtfSbfJCqhUi1wz+TH3VxyI28BY4W7PuTHLuP76UgPVM1YUPDT5cNdxKggq0b0=
X-Google-Smtp-Source: AGHT+IGkt6HsJkwAlJrlsbzw0lA9tXESGB2K/GiIvjNawo3xTTc7fIpwQbbWVe+aLzUStfb/N2zEBw==
X-Received: by 2002:a17:907:701:b0:b41:4e72:309f with SMTP id a640c23a62f3a-b726559ec17mr749081966b.50.1762436632342;
        Thu, 06 Nov 2025 05:43:52 -0800 (PST)
Message-ID: <8b204b21-80fb-408d-972e-8f183eb45dfc@suse.com>
Date: Thu, 6 Nov 2025 14:43:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 01/18] xen/riscv: detect and initialize G-stage mode
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <2b21348b3300c741b276a47d5942e71d306846eb.1760974017.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: <2b21348b3300c741b276a47d5942e71d306846eb.1760974017.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.10.2025 17:57, Oleksii Kurochko wrote:
> Changes in V5:
>  - Add static and __initconst for local variable modes[] in
>    gstage_mode_detect().
>  - Change type for gstage_mode from 'unsigned long' to 'unsigned char'.
>  - Update the comment inisde defintion if modes[] variable in
>    gstage_mode_detect():
>    - Add information about Bare mode.
>    - Drop "a paged virtual-memory scheme described in Section 10.3" as it isn't
>      relevant here.
>  - Drop printing of function name when chosen G-stage mode message is printed.
>  - Drop the call of gstage_mode_detect() from start_xen(). It will be added into
>    p2m_init() when the latter will be introduced.

Well, thanks, but ...

>  - Introduce pre_gstage_init().

... the same comment that I gave before now applies here: This doesn't look to
belong directly in start_xen(). In x86'es terms I'd say this is a tiny part of
paging_init().

> --- a/xen/arch/riscv/Makefile
> +++ b/xen/arch/riscv/Makefile
> @@ -7,6 +7,7 @@ obj-y += intc.o
>  obj-y += irq.o
>  obj-y += mm.o
>  obj-y += pt.o
> +obj-y += p2m.o

Nit: Please keep things sorted (numbers sort before letters).

> --- a/xen/arch/riscv/include/asm/p2m.h
> +++ b/xen/arch/riscv/include/asm/p2m.h
> @@ -6,6 +6,8 @@
>  
>  #include <asm/page-bits.h>
>  
> +extern unsigned char gstage_mode;

Better move down some, at the very least ...

>  #define paddr_bits PADDR_BITS

... past more fundamental #define-s?

> --- a/xen/arch/riscv/include/asm/riscv_encoding.h
> +++ b/xen/arch/riscv/include/asm/riscv_encoding.h
> @@ -131,13 +131,16 @@
>  #define HGATP_MODE_SV32X4		_UL(1)
>  #define HGATP_MODE_SV39X4		_UL(8)
>  #define HGATP_MODE_SV48X4		_UL(9)
> +#define HGATP_MODE_SV57X4		_UL(10)
>  
>  #define HGATP32_MODE_SHIFT		31
> +#define HGATP32_MODE_MASK		_UL(0x80000000)

Please can we avoid redundant (and then not even connected) #define-s? I
don't see why you would need HGATP32_MODE_SHIFT when you have
HGATP32_MODE_MASK. Similarly ...

>  #define HGATP32_VMID_SHIFT		22
>  #define HGATP32_VMID_MASK		_UL(0x1FC00000)

... here, while ...

>  #define HGATP32_PPN			_UL(0x003FFFFF)

... here the constant isn't even suffixed with _MASK.

> --- /dev/null
> +++ b/xen/arch/riscv/p2m.c
> @@ -0,0 +1,96 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/init.h>
> +#include <xen/lib.h>
> +#include <xen/macros.h>
> +#include <xen/sections.h>
> +
> +#include <asm/csr.h>
> +#include <asm/flushtlb.h>
> +#include <asm/riscv_encoding.h>
> +
> +unsigned char __ro_after_init gstage_mode;
> +
> +static void __init gstage_mode_detect(void)
> +{
> +    static const struct {
> +        unsigned char mode;
> +        unsigned int paging_levels;
> +        const char name[8];
> +    } modes[] __initconst = {
> +        /*
> +         * Based on the RISC-V spec:
> +         *   Bare mode is always supported, regardless of SXLEN.
> +         *   When SXLEN=32, the only other valid setting for MODE is Sv32.
> +         *   When SXLEN=64, three paged virtual-memory schemes are defined:
> +         *   Sv39, Sv48, and Sv57.
> +         */
> +#ifdef CONFIG_RISCV_32
> +        { HGATP_MODE_SV32X4, 2, "Sv32x4" }
> +#else
> +        { HGATP_MODE_SV39X4, 3, "Sv39x4" },
> +        { HGATP_MODE_SV48X4, 4, "Sv48x4" },
> +        { HGATP_MODE_SV57X4, 5, "Sv57x4" },
> +#endif
> +    };
> +
> +    unsigned int mode_idx;
> +
> +    gstage_mode = HGATP_MODE_OFF;

Why is this not the variable's initializer?

> +    for ( mode_idx = 0; mode_idx < ARRAY_SIZE(modes); mode_idx++ )
> +    {
> +        unsigned long mode = modes[mode_idx].mode;
> +
> +        csr_write(CSR_HGATP, MASK_INSR(mode, HGATP_MODE_MASK));
> +
> +        if ( MASK_EXTR(csr_read(CSR_HGATP), HGATP_MODE_MASK) == mode )
> +        {
> +            gstage_mode = mode;
> +            break;
> +        }
> +    }

I take it that using the first available mode is only transient. To support bigger
guests, you may need to pick 48x4 or even 57x4 no matter that 39x4 is available.
I wonder whether you wouldn't be better off recording all supported modes right
away.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 13:47:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 13:47:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156965.1485901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH0Ka-0005CM-Ib; Thu, 06 Nov 2025 13:47:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156965.1485901; Thu, 06 Nov 2025 13: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 1vH0Ka-0005CF-FX; Thu, 06 Nov 2025 13:47:16 +0000
Received: by outflank-mailman (input) for mailman id 1156965;
 Thu, 06 Nov 2025 13:47: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vH0KZ-0005C9-2T
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 13:47:15 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 19b413f8-bb17-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 14:47:14 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-640c48b3b90so1077572a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 05:47: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
 4fb4d7f45d1cf-6411f7139bdsm1868137a12.4.2025.11.06.05.47.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 05:47: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: 19b413f8-bb17-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762436833; x=1763041633; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=L3AbpyYwSqCxvM/Tkgw+VkYmaSYN1ATWzlJnRnGy5lI=;
        b=gUHDUGn1Z1kOlgueKpZNS3slL1lvdkCX7M85nN5XAUS8y+krJ15evP+Z9KkiRPgjGq
         yXTHVi3aA8FK6p9rVtJCqGIW2xYg2N5JQuYSM7DnYJapteEeTbjx7r+NwyBNwdNLWuhy
         Jtmd89O2/2kjXrB+pLPIk3s0e6sopsAOEmJEp39aGdRFjuvnJY1zHkcpQPc+CUd34vGD
         RxdvrVFxsxoK4EwaKAqvTqSSBPtXxwuq+PE5+EiQZY4XRiVR+R6Fe8/816hCe6g3qggr
         rQFuZFOeEu7QmZuD+hXpjk/wBrWn4CT4EENGov4siCxYjWIhMiUEPTtqW48qXINJ3Ywu
         EzkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762436833; x=1763041633;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=L3AbpyYwSqCxvM/Tkgw+VkYmaSYN1ATWzlJnRnGy5lI=;
        b=Dv4lZdfWri8mkpRhu7jJDCF0YsZpSIF04kRg50GGF8UPZjUkudYKkTjukU/u6MNTUb
         o0e9vJ5vp/qj5ZyXCqocE3YVZVFEV6sySdRwsVPQAfo82M/lNG/0p6qWsddTb5cHogpu
         L+ZkB/tDaWAoCguI7tXPfrU81PpZxMxEgVGTq5ZJ6ZcqI6bXispClKDtdiLTx/XrGrks
         FcxuKJK94/FxUEMgcD4r7X+gNzqE3UWWf986CkpZdzMm3ZcOK217mvyZHKR1mJQ1J46T
         q7vc02Tbgxu3LziHBxfKCEhCQyh/WvUkvm0FN4Wg6k2eZTqNMNA+5dzaoa5sBuzw7pM0
         CjWA==
X-Forwarded-Encrypted: i=1; AJvYcCX7uP2Eafqnyn9fNnr7g1N2EbErMAHXDeh/YYUk3TerPrJa3LazxxQKKZ6djJzrJFW7mWQKx4VAzes=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyHQqZa9SXZKEo3OyJbMg3EiirITtucNjYQ3MNnAkZLzV7E6Xta
	Mlbeiqo0MDyLOaINgCjIVxdV9IB25+SF1Zn/kUMIPVie+KlDQGIaBG9CiQE9Mv1mDA==
X-Gm-Gg: ASbGncuvplCpvWOtUci0juPFFd4sOC75VEN8O/tFrKSxEXTeubkxkrHjOgzX4dgzlgO
	85pexuOnjmUKiqwzUm890ujHLUQTKyl7ircirJDbVqHLR9c360IhHwEzRIwNtudxx/O0JaotzUx
	wW6Ip0Br2Cwjy/a9mp94guJ7KLd2x6FVX922ix+xxVY4VWTUDh9AoK9GoPwnXqavxTqm7wBPXVn
	gz7YnwkE0RWmDXeofTS2eRKdSjk0AJ8Zj/vci3fvALQ9iPJrctiG5Iq02llaQAIUOUs90gT+a1c
	vWdMIhgiQ+O62tsM/QQgNASqXHU4bRENtRE92CY0E7f33I0oon1mv9Pax+L499dcbhIqSdVKXJe
	R5aOUGYvwf9XetJSK3g7BW6Si5DjdTKDjXNQ5JMnPOEKjAsxnQsl60L0cjXdLipLo2GPGAfVi7C
	2HgxW6X1pZPTSWSsa+2SiyUAbAMMeMHCVvLUhuQpQXc/qtb34zMw6JUWDviv/ibHLV6x+FN98q1
	b0osdXwUA==
X-Google-Smtp-Source: AGHT+IEfyYjThR7/ucQ+E4YT4/e1Y5ozQ7IIIxexYvfgVH74tWng8qDGXb6OXIPY692r3VwZ4sSS9w==
X-Received: by 2002:a05:6402:909:b0:641:3189:a183 with SMTP id 4fb4d7f45d1cf-6413189a7femr813497a12.14.1762436833165;
        Thu, 06 Nov 2025 05:47:13 -0800 (PST)
Message-ID: <210edee7-8525-47a9-8191-ea7d94db5fce@suse.com>
Date: Thu, 6 Nov 2025 14:47:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v7] x86: make Viridian support optional
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Paul Durrant <paul@xen.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <20251031161716.1222956-1-grygorii_strashko@epam.com>
 <a4d3eb8d-17ea-4d3c-87ef-ba5c3477b8c3@suse.com>
 <edb590e4-340d-4a0f-9543-0dfdcc7b54b1@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: <edb590e4-340d-4a0f-9543-0dfdcc7b54b1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.11.2025 14:42, Grygorii Strashko wrote:
> On 06.11.25 13:35, Jan Beulich wrote:
>> On 31.10.2025 17:17, Grygorii Strashko wrote:
>>> --- a/xen/arch/x86/hvm/Makefile
>>> +++ b/xen/arch/x86/hvm/Makefile
>>> @@ -1,6 +1,6 @@
>>>   obj-$(CONFIG_AMD_SVM) += svm/
>>>   obj-$(CONFIG_INTEL_VMX) += vmx/
>>> -obj-y += viridian/
>>> +obj-$(CONFIG_VIRIDIAN) += viridian/
>>
>> With this, what is the point of the additions to viridian_load_{domain,vcpu}_ctxt()?
>> You're adding dead code there, aren't you?
> 
> Hgrr. And we end up back to v3 regarding this part.
> Check in viridian_load_{domain,vcpu}_ctxt() may/may not work depending on toolstack
> behavior which is not strictly defined (loading HVM_PARAM_VIRIDIAN before/after
> viridian_load_{domain,vcpu}_ctxt()).
> 
> So what's the conclusion here - drop this check?

Well, Misra wants us to not have any dead code. Hence why would we add new
instances of such?

>>> --- a/xen/arch/x86/hvm/hvm.c
>>> +++ b/xen/arch/x86/hvm/hvm.c
>>> @@ -4231,8 +4231,9 @@ static int hvm_set_param(struct domain *d, uint32_t index, uint64_t value)
>>>               rc = -EINVAL;
>>>           break;
>>>       case HVM_PARAM_VIRIDIAN:
>>> -        if ( (value & ~HVMPV_feature_mask) ||
>>> -             !(value & HVMPV_base_freq) )
>>> +        if ( !IS_ENABLED(CONFIG_VIRIDIAN) && value )
>>> +            rc = -ENODEV;
>>> +        else if ( (value & ~HVMPV_feature_mask) || !(value & HVMPV_base_freq) )
>>>               rc = -EINVAL;
>>
>> I find the check for value to be (non-)zero a little dubious here: If any caller
>> passed in 0, it would get back -EINVAL anyway. Imo -ENODEV would be more suitable
>> in that case as well. Things would be different if 0 was a valid value to pass in.
> 
> The idea was to distinguish between "Feature enabled, Invalid parameter" and "Feature disabled".

But you don't, or else the addition would need to live after the -EINVAL checks.
I also question the utility of knowing "parameter was invalid" when the feature
isn't available anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 13:50:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 13:50:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156976.1485912 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH0Nm-0006hC-1r; Thu, 06 Nov 2025 13:50:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156976.1485912; Thu, 06 Nov 2025 13: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 1vH0Nl-0006h5-Ty; Thu, 06 Nov 2025 13:50:33 +0000
Received: by outflank-mailman (input) for mailman id 1156976;
 Thu, 06 Nov 2025 13:50: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=0oVY=5O=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vH0Nk-0006gz-UL
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 13:50:33 +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 8f0ab23a-bb17-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 14:50:31 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by PA1PR03MB10865.eurprd03.prod.outlook.com (2603:10a6:102:484::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Thu, 6 Nov
 2025 13:50:28 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9298.006; Thu, 6 Nov 2025
 13:50: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: 8f0ab23a-bb17-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AU8HdnHpIy+lO1UBErt4fN30nL7eyegpBUVxhBt39gpT7YyK+1iaSZ7AxqgYFePRPDgBDin1KjpOlNUFfMsstK1+AcZ0B8Q30ODJvq0cX+rv1hagg1p2KndOzIF0VzH8mgX00jbR5aIlQyr6Ds9JY2GUxCGbYKvek9T8J4zx6RVAua1w6KKL1idPadVcArRj1h60TRoB4tJFW1IgPGWEi5CZ7R08n6NFiTCxiOAlzRR7DPk8YMw9gzCepMnjomAsRAydes94sm3MUS56IbgOagCxqfxsypO/aQBxriA1NRUK7AwmLNd1ul0/P9oBrMzHDvxVU09/leDwkUJGNXogBA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Wkt0Ew14jTcRGur1+FZs8HbHI4jeMS064zlVi81tFMs=;
 b=IxKLrt3RM4jqRmmOo59Yd2A7OWJt5KzwG/QzldCGHVGB1Pcihy2ie4Zxd2lMxYxF8dmZhVqmjuU3ELDzQPymgYYMzfHrA7ngL5IFYMDFgfRKeZXyaT3H5TwNNpWZ+Ijc1ZHUYPV5JyrvZa7f3xqjCRL1MM5Zsje5tynIyqbxACOb3cF3FcGyeHWJmtbKJ7hJR02sZIfrS+Yo3DCU7J3PHSSGA7fWxDriQbHlIJlhVGc60r0QzsMQ7lqVFhkAzQ3MmxFQiKbux12IkAd5yAk7/VTY3bdWAt+aeRR5HIbqLhLdKUZti0GJQj7JQmLhhYbhhPP5R/Ha5QnBgQU3CJn0RQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Wkt0Ew14jTcRGur1+FZs8HbHI4jeMS064zlVi81tFMs=;
 b=JrEuo2ppQlIqQasUp1acwzGFB/lqn8Zt9XdeJWLS7Z+feKIBnj+Vqb9FQ113gBmVSDWnx7tkieq3OODP7PGrQrTn/xilokQy4Rt7LK46Nvc5acxuRhMpxo+G2GEe1McsuxzuDVCcW48RfHDDvleza+W5jIUfxnnuCsLLNFNHLoMlYrko2wSr34TJguGN7K7dWEHEwA8miICa0oinSlg8tYcxDDy3vtQ58GpWka0WYT1E1fv+pNIUDzCYCFHfsG86Vhwr7V99cAk4CTTHKTovxbB+wEeD6GvKfkzyx2PGMrgUbYXK24MTxCYqqHdv8JhWCzaoBiL05AmTVZ5F72Zthw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <e55f990a-1781-4651-a899-9d78bbbbdfd0@epam.com>
Date: Thu, 6 Nov 2025 15:50:24 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen: make VMTRACE support optional
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Penny Zheng <Penny.Zheng@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251031212005.1338212-1-grygorii_strashko@epam.com>
 <b6337cb5-da85-492d-bba9-688e35695c46@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <b6337cb5-da85-492d-bba9-688e35695c46@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: AM9P192CA0007.EURP192.PROD.OUTLOOK.COM
 (2603:10a6:20b:21d::12) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|PA1PR03MB10865:EE_
X-MS-Office365-Filtering-Correlation-Id: 273d5344-b777-4538-fe17-08de1d3b7029
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:
	=?utf-8?B?Q093VHN1am84d0dXYVdxZHJTVzlPS1M3U01jeEJNV0ZnaUJxUDhOTHo2NmVE?=
 =?utf-8?B?RDF5VVl1T2FKUXdPSDJqbDM3Y0E0QnFVbFhxb3RkMU9BYVFPbEtvZ1RMTFFq?=
 =?utf-8?B?NC9OYXdnT2pqc3kwa3AxaEFJT3J6T2xqcjFNcFJKcy93SGI5ckZwdllHSXRQ?=
 =?utf-8?B?NHlSR1NqMFB1QXdlbjFmL3h1VmpnRUFIRjE3clFLMEZqVk5DU3N0VkYvK2pG?=
 =?utf-8?B?Znc0TGxjMjcrSW8vM2hKU252WFh2UmRQbWlMdXMydFNEMitOZ3RKNTloa2Nk?=
 =?utf-8?B?eVRxS1pwUFFHOXVLSmZaZlVZWWY2bWx3WGRvMktJaTBwb2VyRE1QZ3ZJUEsy?=
 =?utf-8?B?TjVxeXF0VnIwa0s0c1pocStDRDZFVTlBWi9ScmJ5VGpQT2Z5Qzd4NEpuL08x?=
 =?utf-8?B?OUJNOHN2L0s2ZlJrWFc4dUNNT3pzdXM3VHUxMmNnelB6ZWFIbVViZkJpcW5k?=
 =?utf-8?B?eG54TVpyZWFjdFJ6Tk5kU0NjTWEzVDZXRUdQT1pKZlRiMHdtTzVSOGJFQXNY?=
 =?utf-8?B?a1JtTUdZY3d0K2VqdVcwOHRqejJHMmtQclpmVGN6MHdhMUZ6eTFTQnNBZVdn?=
 =?utf-8?B?bjNnMUcrSVk1WWRvTzVqbVd1OTg1NG94Uy9SNGgrQ0lsNDJTZGZhbjhKcTBS?=
 =?utf-8?B?eUIrOTJJczVaQVFYdFY5Y1FNYzJrUFh1YXdUTHZXTDR1MVByeXNoNXNWU1Vi?=
 =?utf-8?B?dytzNU9TYjgzYnhCVWlRSndlTXJ3OGRWdXJYc2VBTEVVR1dHQ3FlZHdVdWZL?=
 =?utf-8?B?N0wyVWF5aloxTTY3MEV6RG9lUjZnV1o5emI2M3YxcmJVMmlGTmx3WFV2L0tG?=
 =?utf-8?B?aThLeFI2d0lPS2tlU1JBeitOZUIyMzBiSFh0aE4xOXVnWitJaUxEVEY2ZzhQ?=
 =?utf-8?B?QkkzK3VvQzZxOExSMjM4N2l4a0RrbGoxV2x6bG1xeUFjTU4wbzRFbUZTSWhh?=
 =?utf-8?B?QkxHWUhHYlUyYVJIUFNOaHM3d3VJckl5UGJsWlNKUmxPVHNOVytKNDFrNk85?=
 =?utf-8?B?cGdsdzV5aUpuT281d1NqK3lldC93V1NNVytNeldwdzB1WGIzUmVoaUx2U0pp?=
 =?utf-8?B?K25jdGljdG5TK0lOcG5EanJYb3FiUXN3RHkzQTJtT0srb3hMMmVaMXpocjlB?=
 =?utf-8?B?Vm14OHBNdlV6alcvMy9Qa3VDbFRWakx5TmJIclZJN1ZXR2RDZXFoa0hNY1lY?=
 =?utf-8?B?M2xzdHk1OExhQ1VaVDdXMEovMjRBQ01HZTRmbzhhb2tpbFk3bjNWeWhGbjAy?=
 =?utf-8?B?MGxwTHp6dmo5bVlMYm94dGJqRS85R2JBUmFmbmxST0NQK3RuNDJzbjVpblJt?=
 =?utf-8?B?eVRXNG5BT1A1WFpFMVZvWkJWbXR6ajBFRG1Fa0pZQ09CSmNEd1lFV3o2Vnh5?=
 =?utf-8?B?c1lFV1ZnTEpRaUh1UmlxSGJmMDNVcTVnRnJ2RmhDMGp0ZTNCSnl4cjhYSVRK?=
 =?utf-8?B?RVVlOGVJcy83dkdUeUZMaGZydVI2WDJJS1BYN01Wc0RYQUZWS2xyaXF4S1k1?=
 =?utf-8?B?U1lOL1ZpYnlRLzg0Q0tzNkFhNDJoaG01cHlDdDdPVlRUSE4vdm9ZL1E2VTBu?=
 =?utf-8?B?VmJGNUtrVmM4UU1lQ0dKS0o4Z0YyWllxT25BY3Z4UWs0RTVvZU5CWmN2Z29O?=
 =?utf-8?B?eHgzL0xvZzVSc0hHNjlmWjduV2ZxS0lnVDYvVy9KZlkzbHNZTFNwbm8rYUJ6?=
 =?utf-8?B?VFNoanhDWnFMVmlJeUx6WGJnYk5JTHhnVlJJZVpDSDU3eC9ZK3B4b1Vud0sw?=
 =?utf-8?B?enVWbG1xdmpYOWtIaStRQVVFRS9PN2RzMHlQVjI4dTVaRnphTU9Rc0ZFbWV0?=
 =?utf-8?B?TzdEek93WW5KVElndVc0TGpETFFoQit0bEZ3TW9sNmpEYTg3b05ZZlh4a1ZS?=
 =?utf-8?B?WTN2RzdhUXQvemFpY1dhZTFDSUFnOWZHWXJjVkExT0hGTHk3RC9DV0RPd1pS?=
 =?utf-8?Q?le3Izc+Ny9Ilbj/a1+FpXLkiUtSyuzIi?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SnpyamlHSGlqWDNwVVJmUDhpd3kxSXVUREE1TnlFNUVYeTNYejJXY3ZYaEVK?=
 =?utf-8?B?MGpRQkx2Mmp4cWt5UW5uSEFnUGxhNndHQytLUUZCMVpMTU5pYjlCY2xCRnVn?=
 =?utf-8?B?eEFDSDZTTTlQSDk5dEFsR3dCeGlMNWpuODUySERZUHNKaHYremlMSENGS2kr?=
 =?utf-8?B?aVRqUEhUYllHZkw2TkdNZmhVMFZhOC9IWXVGbUxUQXVvWmlaekFsSGdCMlRN?=
 =?utf-8?B?b1ZaemNFeEZZYU5SZUpGeWtFR3hNSEZtaWhpbitTV0ZaQmRhU3hoS3JjTHlK?=
 =?utf-8?B?M3dvQ2FBYnp1Q3pQbXlHWk9wa2xlNk5tNitvM2VRVWJXQzQ5MkMreXV4bU1E?=
 =?utf-8?B?ZWJjYnhMSElUWU5YMnRFN2h0b0hBSHRYSi9USy9BNitHMGtrMldSV1Q3eHVQ?=
 =?utf-8?B?R21rS1pGcHFZaHl3eCttczk0T2Y2K3BrWStJUENRSFpHM0NkUDJqUDJoVTY4?=
 =?utf-8?B?ZFFJdG42U2l4d3djbjBuU0U1WFZDWlZlY3NINXBIWW8zVTlkZ0dxUk9MN096?=
 =?utf-8?B?NmlmbWh2Kzc0cEZmNS80RVYvbDZ2eC92Ukp3TWdSSERRVWJ3aEgyNWVFVklL?=
 =?utf-8?B?aU1YQ3g1U1lBMWJQenJZeWJMUkhYcUJ5dVY5MWt6bGcyNzlKdDllbStOU3JE?=
 =?utf-8?B?WmpTeXNSclU4WWJubEtxbTE2MnA3YnUvVU9yVXB0Nm8xd0hrVW5pNW1hTjY1?=
 =?utf-8?B?cWYwVUVBQmFqTk04NU1DaTR0c284WlUxVjhnMCs2aE1VVHFNSktMaHBxK0VF?=
 =?utf-8?B?WkZXRFpxSEp2WXBRTE1ENGJoVU51VDFGQ1owVkhCaEQzck12cnYyaGJwTWZG?=
 =?utf-8?B?L3hidGZSQ0tDaXBiMGpVNjJCU2lBNk5raUNwWlIxZ2drdlNGZy91VDR5VXc1?=
 =?utf-8?B?N2I5d3VIMHo2azNGbEhQK3dVVFhBaG56QlNHVzA5UENzSFhVQW85bFkzYmtV?=
 =?utf-8?B?R3pSVGloaHIzdTFvMW1xa3Fsc3o1YUkzRVJOOWNzaElsZFlCZUVzZW1TLzUr?=
 =?utf-8?B?Ly9FUlZaVERGVGhhcmVIamxsN0NLOVZod1hRaFhZMWtGcnBzMXM2TmNNSUZv?=
 =?utf-8?B?THBSaUtxdHMzdkdSdUNkNnVIS21mby9sd0VBVlMycVBYR3J2NnlFZm9MUUhX?=
 =?utf-8?B?SHBRK2N6cURvVjVSN1Z6S2czcmhiVSswUGpHRFpwNVRCZ2piM3E2VFVpVkl4?=
 =?utf-8?B?N2F3eGd3OG9Rd2FyZUNmN1oxU29XK2V1dCt2cU9RT0h5ZWI0OVZYeDI1TmF5?=
 =?utf-8?B?VUFVZ3hUYnBmVk1ScVdtN2pmcXFYUmdhUkRJS09Ia2FrSVdFSjFvVzVzeGR0?=
 =?utf-8?B?ODdpOHVFTWRSa3RlSXg4WWkzaGxac01kb1BLZmZabmRaaGd6M0I0TW9iZWph?=
 =?utf-8?B?djFsd3NZaUhRQ3RBNnFCQ3FjRldEM0JsRlFETHFORCt2WnpsMWx1T3FIWnA4?=
 =?utf-8?B?UjF4YWhLVUQ0bHFoTmdMNUIvanhJbHpDK2pMRDVwYjFwUGQvTDBSNFVLY25G?=
 =?utf-8?B?MytHK3NOQ0RTcnV5LzRLWFR4OUMyb01wK2k0dVk5L0ZPMkY5VG9ZVVE0ZGxF?=
 =?utf-8?B?Y1hkUGpjQksvMDlSVy9VeVZtNzIveDlacTV1MEJlVi8vczRDR3RxRkw2a3Z2?=
 =?utf-8?B?L3E5dkFWdVdGdkhwTFhYUmdmMFVSZGgrejNIa0EvRHcvSk9ySDMrWHphSzlR?=
 =?utf-8?B?c0dJL1BnZmpqTVNjQUxnU2hUd3ZVYU1sMTdUbFNtTERhVFRWb2M5QU56WHA5?=
 =?utf-8?B?a1k2amtDeHFoMVo2QXl3Yzd2YTlvVWJkWVM0cW5tT09JNFlJZFBZcmdVZXIy?=
 =?utf-8?B?QzB5QW9XeVkzYkprQVBvcmRJNWpTeHJDZVFEQzZlVjRpb3lvdE8zQzlZdFVT?=
 =?utf-8?B?cDYzKzV6ak94bDU4OHFVR09zVHRZNWZJTjNIaVIwYkd5ek1HTjdGWHo0dW9j?=
 =?utf-8?B?clVtcWt0NEFjWmRzZEtSc2RhUDRSOFlnd1hzN1g1b3FXNDBwM08wdktGSHdB?=
 =?utf-8?B?dFVjdEJSemdmSWFSK1I4ajFUUkd4by9DUHNFelZrRDN1L1JhRStJcnNualYx?=
 =?utf-8?B?SlZtdXBxcUszVzlWZVZsQ21vcDArUnRwNkc0QzNIazkrNzlPTjRBYUpDc1VF?=
 =?utf-8?B?OTdmUThtQUtwelVVeVlTRWhWaTBUVWpTUzdGQktRdGY0ZVYrRi9ZUDYwRHcy?=
 =?utf-8?B?UEE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 273d5344-b777-4538-fe17-08de1d3b7029
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2025 13:50:25.9224
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: MTVW3IIEFnlERHWIuEcEo+doAQ3KUimiDFw2XTY1t1swlU/9W+0c0wkf7QPXFoprbqC/JWKtZxzKAT7TWtFgMSc6Ug8x/rwR24FJbgjNBzU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR03MB10865

Hi Jan,

On 06.11.25 14:00, Jan Beulich wrote:
> On 31.10.2025 22:20, Grygorii Strashko wrote:
>> --- a/xen/Kconfig.debug
>> +++ b/xen/Kconfig.debug
>> @@ -155,4 +155,19 @@ config DEBUG_INFO
>>   	  "make install-xen" for installing xen.efi, stripping needs to be
>>   	  done outside the Xen build environment).
>>   
>> +config HAS_VMTRACE
>> +    bool
>> +
>> +config VMTRACE
>> +    bool "HW VM tracing support"
>> +    depends on HAS_VMTRACE
>> +    default y
>> +    help
>> +      Enables HW VM tracing support which allows to configure HW processor
>> +      features (vmtrace_op) to enable capturing information about software
>> +      execution using dedicated hardware facilities with minimal interference
>> +      to the software being traced. The trace date can be retrieved using buffer
> 
> Nit: s/date/data/
> 
>> +      shared between Xen and domain
>> +      (see XENMEM_acquire_resource(XENMEM_resource_vmtrace_buf)).
>> +
> 
> I was actually meaning to ask that "VMX only" should somehow be mentioned here,
> but then I noticed this is an arch-independent location. 

Right, Arch code advertise VMTRACE support with HAS_VMTRACE.
In this particular case:
config INTEL_VMX
...
	select HAS_VMTRACE


> I'm not quite sure we want it like this (just yet).

?

> 
>> @@ -2940,11 +2948,13 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
>>       .altp2m_vcpu_emulate_ve = vmx_vcpu_emulate_ve,
>>       .altp2m_vcpu_emulate_vmfunc = vmx_vcpu_emulate_vmfunc,
>>   #endif
>> +#ifdef CONFIG_VMTRACE
>>       .vmtrace_control = vmtrace_control,
>>       .vmtrace_output_position = vmtrace_output_position,
>>       .vmtrace_set_option = vmtrace_set_option,
>>       .vmtrace_get_option = vmtrace_get_option,
>>       .vmtrace_reset = vmtrace_reset,
>> +#endif
>>   
>>       .get_reg = vmx_get_reg,
>>       .set_reg = vmx_set_reg,
> 
> Blank line ahead of the new #ifdef?
> 
>> @@ -738,6 +740,7 @@ static inline bool altp2m_vcpu_emulate_ve(struct vcpu *v)
>>   bool altp2m_vcpu_emulate_ve(struct vcpu *v);
>>   #endif /* CONFIG_ALTP2M */
>>   
>> +#ifdef CONFIG_VMTRACE
>>   static inline int hvm_vmtrace_control(struct vcpu *v, bool enable, bool reset)
>>   {
>>       if ( hvm_funcs.vmtrace_control )
>> @@ -780,6 +783,12 @@ static inline int hvm_vmtrace_reset(struct vcpu *v)
>>   
>>       return -EOPNOTSUPP;
>>   }
>> +#else
>> +static inline int hvm_vmtrace_reset(struct vcpu *v)
>> +{
>> +    return 0;
>> +}
>> +#endif
> 
> #ifdef inside the function body please, to reduce redundancy and to reduce the
> risk of overlooking multiple places which need editing (when e.g. function
> parameters change).

All hvm_vmtrace_x() functions are inline - do you mean like below for all of them?

  static inline int hvm_vmtrace_get_option(
      struct vcpu *v, uint64_t key, uint64_t *value)
  {
+#ifdef CONFIG_VMTRACE
      if ( hvm_funcs.vmtrace_get_option )
          return alternative_call(hvm_funcs.vmtrace_get_option, v, key, value);
+#endif
  
      return -EOPNOTSUPP;
  }


> 
>> --- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
>> +++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
>> @@ -155,7 +155,9 @@ struct vmx_vcpu {
>>       bool                 ept_spurious_misconfig;
>>   
>>       /* Processor Trace configured and enabled for the vcpu. */
>> +#ifdef CONFIG_VMTRACE
>>       bool                 ipt_active;
>> +#endif
> 
> Imo such an #ifdef would better enclose the comment as well.
> 
>> --- a/xen/arch/x86/vm_event.c
>> +++ b/xen/arch/x86/vm_event.c
>> @@ -253,7 +253,9 @@ void vm_event_fill_regs(vm_event_request_t *req)
>>       req->data.regs.x86.shadow_gs = ctxt.shadow_gs;
>>       req->data.regs.x86.dr6 = ctxt.dr6;
>>   
>> +#ifdef CONFIG_VMTRACE
>>       if ( hvm_vmtrace_output_position(curr, &req->data.regs.x86.vmtrace_pos) != 1 )
>> +#endif
>>           req->data.regs.x86.vmtrace_pos = ~0;
>>   #endif
>>   }
> 
> Use IS_ENABLED() together with a function declaration (but no definition) in the
> VMTRACE=n case?


-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Nov 06 14:05:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 14:05:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1156989.1485921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH0cV-0008Vc-84; Thu, 06 Nov 2025 14:05:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1156989.1485921; Thu, 06 Nov 2025 14:05:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH0cV-0008VV-5T; Thu, 06 Nov 2025 14:05:47 +0000
Received: by outflank-mailman (input) for mailman id 1156989;
 Thu, 06 Nov 2025 14:05:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vH0cU-0008VO-Mo
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 14:05:46 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id af7c6531-bb19-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 15:05:44 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-b728a43e410so172754566b.1
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 06:05: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
 a640c23a62f3a-b72896c7991sm222289566b.71.2025.11.06.06.05.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 06:05: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: af7c6531-bb19-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762437943; x=1763042743; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XGSSzUsukcbLeqmAgWDj27S8tDCZi8FIbqNAXoogc04=;
        b=bT9FtivH+Sgu3+YF6uOy4BtV9rCHbXLtLNa75eksP1dkY58W5HLXAlY/nPR4ghfLe0
         qUl5rArAPiD9ALpUzucqTAjUofnR5sH4W79AWwc5SmXAeaqm2//53gqPARhiwOugnpFj
         584IpQKTycgOunQa+HiR4k2zy1NqRcYhGl2+ujFB3lyoxU/1QPMgjl9Sqj/qwwqrvvHZ
         tH4zK7n78BXQyQ0T6G/2QxjY524FJaL3aCCQoQ6h1fuJ+Zf5s38YWmlwfxNCvY1X4j1Y
         Kv/BJ8vugoukCrS3qLrqJcE2/CnZEH0zE3SmTPWWPDvYLI5miBaPMZfyLTGBnY4qRvVw
         MWMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762437944; x=1763042744;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XGSSzUsukcbLeqmAgWDj27S8tDCZi8FIbqNAXoogc04=;
        b=RlWjx1ETPeIQZ2vrsNQNplZuf/JAAu93QTkA7O/DfP4YpvhutdYMH6KV2OIuUHaU7I
         Q/8Lq/K0L2IosL4q2TyxheCbZcByL/2+yFIVv8XfhyY7/Z7cI47bbIkwCPgKRXKGaOlR
         53Ynvms0ks+4lx8+73FA8cld+kHCTTqqEwXhFVDW+PuaUQzZld3BInDMMznitKVigX9x
         EEYIphCg868TbxSNrrtvBgDKQAcoyyV02IsswUB1Q958Ep6NyaTS94JbhSTiKM3z5O+2
         WvYHUpOLc7vCPwVTxmlKKpB5B8jZssDz0EeMxCRf2+k5TSaHna+jOBzP4nDezEPTXkw7
         qzPA==
X-Forwarded-Encrypted: i=1; AJvYcCXUniVEeF0Hp4gGhWj5RFmvQvjUZiuBmVZBBME4mXBOqcbezUaquz2cgtpVY49hIcjIBsAhqOb3rMY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxt8uZXchcEXMqYuOks/gqKnpchwgt+as35o28sYMGfw5TNt/xt
	uo9ag4ywrUCzG4OjLOrLDr65sXA6hNmRY90XOZnYtS2WGPo87kKHTYZMUBSlZUjd7Q==
X-Gm-Gg: ASbGncuCmeukYhE1V9gE3Y82QLUJ0o8+lQfV8nKgOTmlh8mguhP+qHzeDEPVgW/pFvP
	/iPPoA5gX6MXq4UKhzthWz1TNK0oNoimHwcP5HlM3dFKRMGP8eACnot0e/+L88cW2sg9AVWIS0k
	bP15yeunbKfyh8cJRHiZFP0hJLRvq4zqytk5QebLoIKJhj/fUejwt9m6DF/wKw3fp3BMN4PSBP+
	NG9Sc2tAgs6Q5KANSl6Tzq1TMS29HDaU0fZcnGW9NeG2Ywwv1reFY70qk5XGVjnkD1DZ1gZgnPu
	P0PHELRpb/X/T1xw6fRPsdIpTfOmAknr2DrQck7vdau6xJianLagaXDQJ5NoPHs1UdbraP6bwwq
	qNRJ8aRveaTxZraZh7uCkoXL/B0DLUJC8bonrdrdBAs669aRUnHWY15IarlJikCT0u0dFvXKyOZ
	TX7M3YLWITvlAn+8IHhtcnVrqy5Z/w/s5L2UlazBUA8DnxDn4tv6vLPHAkZCw/tQCE+bDxjdyiB
	2ygoYfAWg==
X-Google-Smtp-Source: AGHT+IEJuhthSg+z2yegqLNG7hX6GmP3vz0DQuaIAhdH1orQzf+ZD07PVhpkU15MAVWP6wsIMqjMWw==
X-Received: by 2002:a17:907:9815:b0:b71:854:4e49 with SMTP id a640c23a62f3a-b72655edfabmr791338666b.56.1762437943488;
        Thu, 06 Nov 2025 06:05:43 -0800 (PST)
Message-ID: <7e9671b3-6972-45b8-9cba-4447fa802fe2@suse.com>
Date: Thu, 6 Nov 2025 15:05:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 02/18] xen/riscv: introduce VMID allocation and
 manegement
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <bdbe6c13991c2d166614795d43db3f71d790c00f.1760974017.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: <bdbe6c13991c2d166614795d43db3f71d790c00f.1760974017.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.10.2025 17:57, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/arch/riscv/vmid.c
> @@ -0,0 +1,193 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/domain.h>
> +#include <xen/init.h>
> +#include <xen/sections.h>
> +#include <xen/lib.h>
> +#include <xen/param.h>
> +#include <xen/percpu.h>
> +
> +#include <asm/atomic.h>
> +#include <asm/csr.h>
> +#include <asm/flushtlb.h>
> +#include <asm/p2m.h>
> +
> +/* Xen command-line option to enable VMIDs */
> +static bool __ro_after_init opt_vmid = true;
> +boolean_param("vmid", opt_vmid);

Command line options, btw, want documenting in docs/misc/xen-command-line.pandoc.

> +/*
> + * VMIDs partition the physical TLB. In the current implementation VMIDs are
> + * introduced to reduce the number of TLB flushes. Each time a guest-physical
> + * address space changes, instead of flushing the TLB, a new VMID is
> + * assigned. This reduces the number of TLB flushes to at most 1/#VMIDs.
> + * The biggest advantage is that hot parts of the hypervisor's code and data
> + * retain in the TLB.
> + *
> + * Sketch of the Implementation:
> + *
> + * VMIDs are a hart-local resource.  As preemption of VMIDs is not possible,
> + * VMIDs are assigned in a round-robin scheme. To minimize the overhead of
> + * VMID invalidation, at the time of a TLB flush, VMIDs are tagged with a
> + * 64-bit generation. Only on a generation overflow the code needs to
> + * invalidate all VMID information stored at the VCPUs with are run on the
> + * specific physical processor. When this overflow appears VMID usage is
> + * disabled to retain correctness.
> + */
> +
> +/* Per-Hart VMID management. */
> +struct vmid_data {
> +   uint64_t generation;
> +   uint16_t next_vmid;
> +   uint16_t max_vmid;
> +   bool used;
> +};
> +
> +static DEFINE_PER_CPU(struct vmid_data, vmid_data);
> +
> +static unsigned int vmidlen_detect(void)
> +{
> +    unsigned int vmid_bits;
> +
> +    /*
> +     * According to the RISC-V Privileged Architecture Spec:
> +     *   When MODE=Bare, guest physical addresses are equal to supervisor
> +     *   physical addresses, and there is no further memory protection
> +     *   for a guest virtual machine beyond the physical memory protection
> +     *   scheme described in Section "Physical Memory Protection".
> +     *   In this case, the remaining fields in hgatp must be set to zeros.
> +     * Thereby it is necessary to set gstage_mode not equal to Bare.
> +     */
> +    ASSERT(gstage_mode != HGATP_MODE_OFF);
> +    csr_write(CSR_HGATP,
> +              MASK_INSR(gstage_mode, HGATP_MODE_MASK) | HGATP_VMID_MASK);
> +    vmid_bits = MASK_EXTR(csr_read(CSR_HGATP), HGATP_VMID_MASK);
> +    vmid_bits = flsl(vmid_bits);
> +    csr_write(CSR_HGATP, _AC(0, UL));
> +
> +    /*
> +     * From RISC-V spec:
> +     *   Speculative executions of the address-translation algorithm behave as
> +     *   non-speculative executions of the algorithm do, except that they must
> +     *   not set the dirty bit for a PTE, they must not trigger an exception,
> +     *   and they must not create address-translation cache entries if those
> +     *   entries would have been invalidated by any SFENCE.VMA instruction
> +     *   executed by the hart since the speculative execution of the algorithm
> +     *   began.
> +     *
> +     * Also, despite of the fact here it is mentioned that when V=0 two-stage
> +     * address translation is inactivated:
> +     *   The current virtualization mode, denoted V, indicates whether the hart
> +     *   is currently executing in a guest. When V=1, the hart is either in
> +     *   virtual S-mode (VS-mode), or in virtual U-mode (VU-mode) atop a guest
> +     *   OS running in VS-mode. When V=0, the hart is either in M-mode, in
> +     *   HS-mode, or in U-mode atop an OS running in HS-mode. The
> +     *   virtualization mode also indicates whether two-stage address
> +     *   translation is active (V=1) or inactive (V=0).
> +     * But on the same side, writing to hgatp register activates it:
> +     *   The hgatp register is considered active for the purposes of
> +     *   the address-translation algorithm unless the effective privilege mode
> +     *   is U and hstatus.HU=0.
> +     *
> +     * Thereby it leaves some room for speculation even in this stage of boot,
> +     * so it could be that we polluted local TLB so flush all guest TLB.
> +     */
> +    local_hfence_gvma_all();

That's a lot of redundancy with gstage_mode_detect(). The function call here
actually renders the one there redundant, afaict. Did you consider putting a
single instance at the end of it in pre_gstage_init()? Otherwise at least
don't repeat the comment here, but merely point at the other one?

> +    return vmid_bits;
> +}
> +
> +void vmid_init(void)

This (and its helper) isn't __init because you intend to also call it during
bringup of secondary processors?

> +{
> +    static int8_t g_vmid_used = -1;

Now that you're getting closer to the x86 original - __ro_after_init?

> +    unsigned int vmid_len = vmidlen_detect();
> +    struct vmid_data *data = &this_cpu(vmid_data);
> +
> +    BUILD_BUG_ON((HGATP_VMID_MASK >> HGATP_VMID_SHIFT) >
> +                 (BIT((sizeof(data->max_vmid) * BITS_PER_BYTE), UL) - 1));
> +
> +    data->max_vmid = BIT(vmid_len, U) - 1;
> +    data->used = opt_vmid && (vmid_len > 1);
> +
> +    if ( g_vmid_used < 0 )
> +    {
> +        g_vmid_used = data->used;
> +        printk("VMIDs use is %sabled\n", data->used ? "en" : "dis");
> +    }
> +    else if ( g_vmid_used != data->used )
> +        printk("CPU%u: VMIDs use is %sabled\n", smp_processor_id(),
> +               data->used ? "en" : "dis");
> +
> +    /* Zero indicates 'invalid generation', so we start the count at one. */
> +    data->generation = 1;
> +
> +    /* Zero indicates 'VMIDs use disabled', so we start the count at one. */
> +    data->next_vmid = 1;
> +}
> +
> +void vmid_flush_vcpu(struct vcpu *v)
> +{
> +    write_atomic(&v->arch.vmid.generation, 0);
> +}
> +
> +void vmid_flush_hart(void)
> +{
> +    struct vmid_data *data = &this_cpu(vmid_data);
> +
> +    if ( !data->used )
> +        return;
> +
> +    if ( likely(++data->generation != 0) )
> +        return;
> +
> +    /*
> +     * VMID generations are 64 bit.  Overflow of generations never happens.
> +     * For safety, we simply disable ASIDs, so correctness is established; it
> +     * only runs a bit slower.
> +     */
> +    printk("%s: VMID generation overrun. Disabling VMIDs.\n", __func__);

Is logging of the function name of any value here? Also, despite the x86
original havinbg it like this - generally no full stops please if log
messages. "VMID generation overrun; disabling VMIDs\n" would do.

> +bool vmid_handle_vmenter(struct vcpu_vmid *vmid)
> +{
> +    struct vmid_data *data = &this_cpu(vmid_data);
> +
> +    /* Test if VCPU has valid VMID. */

x86 has a ->disabled check up from here; why do you not check ->used?

> +    if ( read_atomic(&vmid->generation) == data->generation )
> +        return 0;
> +
> +    /* If there are no free VMIDs, need to go to a new generation. */
> +    if ( unlikely(data->next_vmid > data->max_vmid) )
> +    {
> +        vmid_flush_hart();
> +        data->next_vmid = 1;
> +        if ( !data->used )
> +            goto disabled;
> +    }
> +
> +    /* Now guaranteed to be a free VMID. */
> +    vmid->vmid = data->next_vmid++;
> +    write_atomic(&vmid->generation, data->generation);
> +
> +    /*
> +     * When we assign VMID 1, flush all TLB entries as we are starting a new
> +     * generation, and all old VMID allocations are now stale.
> +     */
> +    return (vmid->vmid == 1);

Minor: Parentheses aren't really needed here.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 14:09:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 14:09:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157002.1485931 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH0gB-0000ow-SG; Thu, 06 Nov 2025 14:09:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157002.1485931; Thu, 06 Nov 2025 14:09: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 1vH0gB-0000op-PN; Thu, 06 Nov 2025 14:09:35 +0000
Received: by outflank-mailman (input) for mailman id 1157002;
 Thu, 06 Nov 2025 14:09: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vH0gA-0000oj-Up
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 14:09:34 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 37cd3204-bb1a-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 15:09:32 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-b728a43e410so173495966b.1
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 06:09: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
 a640c23a62f3a-b7289334264sm218096366b.12.2025.11.06.06.09.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 06:09: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: 37cd3204-bb1a-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762438172; x=1763042972; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3m7r7W+00piqcEHoeftA7E3rCc88l8s7FHXFLVjyRxw=;
        b=ZJ0YDVh3jemU/hkIN9nG7GgOhwqyMavDje68KRtg8o3DoqMQoi0sb8S/S4oTFoXibr
         7uCO/9nK564j6xbI4NDPjGf0JZTkkZ5YlfVYScZP3AJzGatZdWFSbgZxCOOolbSLUIKA
         8kW6cznlGQDKmmF/7Tb7xuR1YTY0GV2szA+Q0aSfMZTkYYTf83s3+LIZhdm1SNNjtYOZ
         URzLgQwNIA/lY4+Ybwecp+vezJDSQJDkUBRHFf+OHVfHyFYqx3bdOloanrqKYdLCnAgO
         vG9DmTS+KPPDvDYrNiyIXAu3XMBuOaas334N1U+TOH3iPg6cQk53OJQWot0seUL/9MZk
         qGeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762438172; x=1763042972;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3m7r7W+00piqcEHoeftA7E3rCc88l8s7FHXFLVjyRxw=;
        b=r0JA3mVSjpYr0Gi/rrTQDCFvxGqi7VlFkRXnEXjiE+GmuxZTT0ELth6Y57T6WDYaYa
         lYtbLBgRslarwImZdt0GI3+wxlL9+CL7FG6rdg4bTrANCYKHfauV7UAcKb6HgAm81vXR
         3/tJ4ZsKx2AQzPSL5kYZ+m8YmECCGzwaCNCAl6AxD5RnT9L7CnVE05y8We8jAzq3jGbH
         vI2gu1uPCf3ummOjFMxKaNH9ybLNGbIaO/rXpdYA8EVsPZSBdo/lreMYIQEx2fPiPPBC
         znyVDRkQpShywA8GA88Hn5mrHO7HJcayLbrlMJ/qdkdIXE/LnmiejNqg/xip49vVpydg
         oSnQ==
X-Forwarded-Encrypted: i=1; AJvYcCVe1ovl1Y+pr5DaV2cnsWrwoDnNVZP2uyCNMITa96cttmx1bfyB/NwQYtyIku3eTPWufY1v8TVCtEk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxCbBkmbKIWmu1X2301Kaq6L8ydY6d3ng7W5n4scBYQCa+yZ9D0
	1/VzDobkdoDkZOsA+P/rnsaCfrlzrIJZ1FNKCBidTtyZT8zsKhdQ3AcufYrOce6GPg==
X-Gm-Gg: ASbGncvwSvh9ejDItz8pZkbkfmKKJDuA0Ll0PIi4Rrygydfe1D9dC1HpPL/aZ9DlQ/E
	086epq0FKK7lKYnbJKWG545SsSrYupCOaCno7N/nnJfyK2cgm26Vbhtciei4osSy11Y59cBAm30
	utjtmdOwiSqDyhg6DuQAOJaeCYaahPPfoaSi/avDr1C582kTP5d1Spix+ZlBC7kkTW0NL8a3rze
	j62gAXYoBa2GBpXKqPOpivBC6KGENPvVs+9wfeH7jdQX8GcioxnA5uEcpGhLr4xW6Z4OsxxdpRI
	4cGlHHmwtzw9+2RrsH3adMAEEbTI4e+DgQUdn7UZb/DK8Hj0qwF0OUsHTKCOiCQ3VBkpIi/iDn9
	WjLsNpKNt1S10Dqqg6PvtavlF5Y2ciQbDEfNYTb/xJl066YZM6jeLLtPRM+vITooFC59QIkWTOO
	QIM+0ZK2R4xPmV1f9l8O99hhEkOLKk9ETNxP2bhHj2kqMEAnEZ4cNRtjvF1SEBByA2RgDhByCyg
	65l8FGGLw==
X-Google-Smtp-Source: AGHT+IEfTpR471zZPAHEzzJiMTC+fUJMOJF8bhtifyU1LD07AEBTGEEloSAcz5AZ/fhMWf/oABOOHQ==
X-Received: by 2002:a17:907:a0c9:b0:b29:b4ac:d2a8 with SMTP id a640c23a62f3a-b72655ee2e4mr829637966b.57.1762438172291;
        Thu, 06 Nov 2025 06:09:32 -0800 (PST)
Message-ID: <63525e6f-4e17-4155-87b2-47b9ac9ea474@suse.com>
Date: Thu, 6 Nov 2025 15:09:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen: make VMTRACE support optional
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Penny Zheng <Penny.Zheng@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251031212005.1338212-1-grygorii_strashko@epam.com>
 <b6337cb5-da85-492d-bba9-688e35695c46@suse.com>
 <e55f990a-1781-4651-a899-9d78bbbbdfd0@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: <e55f990a-1781-4651-a899-9d78bbbbdfd0@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.11.2025 14:50, Grygorii Strashko wrote:
> On 06.11.25 14:00, Jan Beulich wrote:
>> On 31.10.2025 22:20, Grygorii Strashko wrote:
>>> --- a/xen/Kconfig.debug
>>> +++ b/xen/Kconfig.debug
>>> @@ -155,4 +155,19 @@ config DEBUG_INFO
>>>   	  "make install-xen" for installing xen.efi, stripping needs to be
>>>   	  done outside the Xen build environment).
>>>   
>>> +config HAS_VMTRACE
>>> +    bool
>>> +
>>> +config VMTRACE
>>> +    bool "HW VM tracing support"
>>> +    depends on HAS_VMTRACE
>>> +    default y
>>> +    help
>>> +      Enables HW VM tracing support which allows to configure HW processor
>>> +      features (vmtrace_op) to enable capturing information about software
>>> +      execution using dedicated hardware facilities with minimal interference
>>> +      to the software being traced. The trace date can be retrieved using buffer
>>
>> Nit: s/date/data/
>>
>>> +      shared between Xen and domain
>>> +      (see XENMEM_acquire_resource(XENMEM_resource_vmtrace_buf)).
>>> +
>>
>> I was actually meaning to ask that "VMX only" should somehow be mentioned here,
>> but then I noticed this is an arch-independent location. 
> 
> Right, Arch code advertise VMTRACE support with HAS_VMTRACE.
> In this particular case:
> config INTEL_VMX
> ...
> 	select HAS_VMTRACE
> 
> 
>> I'm not quite sure we want it like this (just yet).
> 
> ?

To rephrase the question: Are we expecting anything other than VMX to support
VMTRACE any time soon?

>>> @@ -738,6 +740,7 @@ static inline bool altp2m_vcpu_emulate_ve(struct vcpu *v)
>>>   bool altp2m_vcpu_emulate_ve(struct vcpu *v);
>>>   #endif /* CONFIG_ALTP2M */
>>>   
>>> +#ifdef CONFIG_VMTRACE
>>>   static inline int hvm_vmtrace_control(struct vcpu *v, bool enable, bool reset)
>>>   {
>>>       if ( hvm_funcs.vmtrace_control )
>>> @@ -780,6 +783,12 @@ static inline int hvm_vmtrace_reset(struct vcpu *v)
>>>   
>>>       return -EOPNOTSUPP;
>>>   }
>>> +#else
>>> +static inline int hvm_vmtrace_reset(struct vcpu *v)
>>> +{
>>> +    return 0;
>>> +}
>>> +#endif
>>
>> #ifdef inside the function body please, to reduce redundancy and to reduce the
>> risk of overlooking multiple places which need editing (when e.g. function
>> parameters change).
> 
> All hvm_vmtrace_x() functions are inline - do you mean like below for all of them?
> 
>   static inline int hvm_vmtrace_get_option(
>       struct vcpu *v, uint64_t key, uint64_t *value)
>   {
> +#ifdef CONFIG_VMTRACE
>       if ( hvm_funcs.vmtrace_get_option )
>           return alternative_call(hvm_funcs.vmtrace_get_option, v, key, value);
> +#endif
>   
>       return -EOPNOTSUPP;
>   }

No, the request was for just the single function that you add a 2nd instance of.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 14:26:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 14:26:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157022.1485958 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH0wB-0003mR-A6; Thu, 06 Nov 2025 14:26:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157022.1485958; Thu, 06 Nov 2025 14:26: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 1vH0wB-0003mK-6G; Thu, 06 Nov 2025 14:26:07 +0000
Received: by outflank-mailman (input) for mailman id 1157022;
 Thu, 06 Nov 2025 14:26: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=IWGa=5O=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vH0w9-0003kn-Kx
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 14:26:05 +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 84f3291f-bb1c-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 15:26:01 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-640ca678745so1876583a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 06:26: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
 4fb4d7f45d1cf-6411f866dd5sm1849709a12.32.2025.11.06.06.25.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 06:26: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: 84f3291f-bb1c-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762439161; x=1763043961; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Eh790BDJdUDGA8lspaIvEJ7wUkfPCub/5bhXGPpdv9M=;
        b=YYe3TuPr0BYr2Y84ux914V3FLC8W9fliwH4LYATfK0BacUmSssUg+Q895AsXG8e9Hd
         YeLX0SjRUJjBXzdqtIG/V4dwFdb9tw7J4dmSVgSJwOVK01fumm/kT0K5nx8lsoExskO2
         ABCA+AWTQ/QG97WxRZpk1xvEfpEBytGyvW1M4RCB70Cdaxr0l6a8fF6uYUZ2Ma0PQkFh
         Eg4l2j8Jgvjo4EiQ4AeuMqqjWExoYfpEAAbYQAjWr8gcREygmCtI0qku1VOgGVGoRigm
         ju0cXRqnS3lMTSiFOgleESXnG284BRn3Ee4Gnv0iqMrk2uqP5FExRMKdbyMD9FItTEI1
         bQAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762439161; x=1763043961;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Eh790BDJdUDGA8lspaIvEJ7wUkfPCub/5bhXGPpdv9M=;
        b=DH3SpBROWx6oJfnoxbEwI1VWuD+AJzqo0ckERVQ+RsXNqLaWx8zXY65hs3EENn6ALB
         VvJdt6FpvALcP9MBITCbCuRamryFp14r/06uwHOa0fMlh5mxN+4gEKcrtJwpmq6X2QjG
         RN9t4Y4/Lp2DGSKwybfspeH+lkvVKyCQGT5VPnCdkg9Cl6fHttvO3SiDTCs1uzgMhV8b
         BJS1w36DljEzJ+CuPk52jaJOyGjYwhTgy0nfaSjhSoPTgoWBiy+xyo9z7qnkaLxa0uTk
         NQ5tJ6RKIu2lHplNg/2vIubdAbygk+JR/+Ul9uCCX95g6/FxXRAMXhgW4heBgbRe/0Cw
         vChA==
X-Forwarded-Encrypted: i=1; AJvYcCUibkAtFf0MersgYYm4nEp5ZJ1QCm9c6z28JggXQKXl3KGDNgauqF6DTSdO/fv0Me1KZDsuiFS0FqI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwEcGaHJqOQexb8WAUrdAdxSjEXKJGGs3i1SPJacsRNFJcM6+Tj
	DDEzntwui+HQLYk+4tKr70HX4IEksvrG4APv3+5ACCVpEs5s9qMwCAve2N6NaeGJdQ==
X-Gm-Gg: ASbGnctNVU7XGfZ5a2FFbQZzJUq7oEu0qfpPnO6TDF+0+enVD0yIYeVpr0+wlwOYRX2
	HikhiY3+OLQa+souEnSXw/IhHeaKsJT8gJGy0uBEHUP/J4UQIly8W6ibexWg5kwNQIZT6cHFnVE
	iP1QlT9ssfgg6jcJGJOs80QMY/Jrrhv7VtBMlGrai5GqtpqFfhThkkTNdcsw+jv5c1IHpHXmKef
	j5JUw0TSEeggGYo4rfbMsUoPr44YTZa1ZNDRj4AsnLYNVNIpZ8iiggov5Bucd8rH1DGtHxjNCK/
	VgVnuDIJMbl5LjZbQkKQ9lEJ57125S2jnRbtfKlVp7G4lNRZIa9jnXPb7l7mD/XAKw4iXqHuaKx
	DW4k07nFcwKbZiYkD7XF2fdRJSI2LIg/i4KeuecQRsAc7tZv2LUFA7XML8mxRueEp7/CI7fSjNj
	Jywdcr5vVN1rfFieExTa5JCXToM0C3FKbaQO882Bc7tozt+1Gurw/ESJA04SwZ
X-Google-Smtp-Source: AGHT+IE+yLlXVE6Ej5O+s2G7Up6FgTx1oABnGDC2XCxnfXAVd8QBQCHXwG8v+WAa2zE4DWlWvn7HdA==
X-Received: by 2002:a05:6402:1465:b0:640:ea9b:503c with SMTP id 4fb4d7f45d1cf-64105ca6b96mr6449673a12.38.1762439160677;
        Thu, 06 Nov 2025 06:26:00 -0800 (PST)
Message-ID: <8e3b791c-22ca-43e2-a3bf-f440032ab1ed@suse.com>
Date: Thu, 6 Nov 2025 15:25:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 05/18] xen/riscv: add root page table allocation
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <81d36dc5277d4756442f3ad5d64f37148787394a.1760974017.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: <81d36dc5277d4756442f3ad5d64f37148787394a.1760974017.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.10.2025 17:57, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -3,6 +3,7 @@
>  #include <xen/init.h>
>  #include <xen/lib.h>
>  #include <xen/macros.h>
> +#include <xen/domain_page.h>
>  #include <xen/mm.h>
>  #include <xen/paging.h>
>  #include <xen/rwlock.h>
> @@ -103,6 +104,70 @@ void __init pre_gstage_init(void)
>      vmid_init();
>  }
>  
> +static void clear_and_clean_page(struct page_info *page, bool clean_dcache)
> +{
> +    clear_domain_page(page_to_mfn(page));
> +
> +    /*
> +     * If the IOMMU doesn't support coherent walks and the p2m tables are
> +     * shared between the CPU and IOMMU, it is necessary to clean the
> +     * d-cache.
> +     */
> +    if ( clean_dcache )
> +        clean_dcache_va_range(page, PAGE_SIZE);

This cleans part of frame_table[], but not the memory page in question.

> --- a/xen/arch/riscv/paging.c
> +++ b/xen/arch/riscv/paging.c
> @@ -4,46 +4,67 @@
>  #include <xen/sched.h>
>  #include <xen/spinlock.h>
>  
> +static int paging_ret_page_to_domheap(struct domain *d)
> +{
> +    struct page_info *page;
> +
> +    ASSERT(spin_is_locked(&d->arch.paging.lock));
> +
> +    /* Return memory to domheap. */
> +    page = page_list_remove_head(&d->arch.paging.freelist);
> +    if( page )
> +    {
> +        d->arch.paging.total_pages--;
> +        free_domheap_page(page);
> +    }
> +    else
> +    {
> +        printk(XENLOG_ERR
> +                "Failed to free P2M pages, P2M freelist is empty.\n");

Nit: See earlier remark regarding full stops in log messages. The double
"P2M" also looks unnecessary to me.

> +static int paging_add_page_to_freelist(struct domain *d)
> +{
> +    struct page_info *page;
> +
> +    ASSERT(spin_is_locked(&d->arch.paging.lock));
> +
> +    /* Need to allocate more memory from domheap */
> +    page = alloc_domheap_page(d, MEMF_no_owner);
> +    if ( page == NULL )
> +    {
> +        printk(XENLOG_ERR "Failed to allocate pages.\n");

Again. (Also log messages typically wouldn't start with a capital letter,
unless of course it's e.g. an acronym.)

> @@ -55,6 +76,39 @@ int paging_freelist_adjust(struct domain *d, unsigned long pages,
>      return 0;
>  }
>  
> +int paging_refill_from_domheap(struct domain *d, unsigned int nr_pages)
> +{
> +    ASSERT(spin_is_locked(&d->arch.paging.lock));
> +
> +    for ( unsigned int i = 0; i < nr_pages; i++ )
> +    {
> +        int rc = paging_add_page_to_freelist(d);

The anomaly is more pronounced here, with the other function name in context:
paging_refill_from_domheap() doesn't suggest there's a page (or several) being
handed to it. paging_add_page_to_freelist() suggests one of its parameter
would want to be struct page_info *. Within the naming model you chose, maybe
paging_refill_from_domheap_one() or paging_refill_one_from_domheap()? Or
simply _paging_refill_from_domheap()?

> +        if ( rc )
> +            return rc;
> +    }
> +
> +    return 0;
> +}
> +
> +int paging_ret_to_domheap(struct domain *d, unsigned int nr_pages)
> +{
> +    ASSERT(spin_is_locked(&d->arch.paging.lock));
> +
> +    if ( d->arch.paging.total_pages < nr_pages )
> +        return false;
> +
> +    for ( unsigned int i = 0; i < nr_pages; i++ )
> +    {
> +        int rc = paging_ret_page_to_domheap(d);

Somewhat similarly here. Maybe simply insert "one" in the name?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 15:34:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 15:34:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157039.1485968 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH20F-0003jd-2U; Thu, 06 Nov 2025 15:34:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157039.1485968; Thu, 06 Nov 2025 15:34:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH20E-0003jV-Uo; Thu, 06 Nov 2025 15:34:22 +0000
Received: by outflank-mailman (input) for mailman id 1157039;
 Thu, 06 Nov 2025 15: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=hvFd=5O=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1vH20E-0003jN-Ge
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 15:34:22 +0000
Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com
 [148.163.156.1]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0fafd6f5-bb26-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 16:34:20 +0100 (CET)
Received: from pps.filterd (m0356517.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5A673rWV004542;
 Thu, 6 Nov 2025 15:33:33 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4a59xc7x4v-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 06 Nov 2025 15:33:33 +0000 (GMT)
Received: from m0356517.ppops.net (m0356517.ppops.net [127.0.0.1])
 by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5A6FXWW0020778;
 Thu, 6 Nov 2025 15:33:32 GMT
Received: from ppma23.wdc07v.mail.ibm.com
 (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4a59xc7x4m-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 06 Nov 2025 15:33:32 +0000 (GMT)
Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1])
 by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5A6FSEis009863;
 Thu, 6 Nov 2025 15:33:30 GMT
Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228])
 by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4a5x1kp3cv-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 06 Nov 2025 15:33:30 +0000
Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com
 [10.20.54.101])
 by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 5A6FXSer15008248
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 6 Nov 2025 15:33:28 GMT
Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 8439B20043;
 Thu,  6 Nov 2025 15:33:28 +0000 (GMT)
Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 90CA520040;
 Thu,  6 Nov 2025 15:33:27 +0000 (GMT)
Received: from li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com (unknown
 [9.155.204.135])
 by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Thu,  6 Nov 2025 15:33:27 +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: 0fafd6f5-bb26-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=pp1; bh=USDQ8ElKabVeXvYmFW0YLq1tEPCwDR
	9lnFGrXCv6r44=; b=Ud1ezlZulJ19pMoMC9cV2Puhpc6xfvY5kH8l9lzJzReHWw
	mKEvGrCq+8tKTYQ2MxDxhIU69JV0pOnXy39LBfKHxozegDXvBfvTmpds52s5U6cE
	/B8hVE2W8NjEjWAswsJNBdI1NjgMAEZpxAZmQ2gRLaUTDivnAluHG4qYTu7XsDwF
	Vsk72wk+IJjAz3KWLN/C9Bbd92H7vh+BDHU0ZjrBqUI/zYCcM9fmOWIHGJocsLRR
	RFqfscnpogqSAjX1viBd8MZh0c3dOnzgnvPYX0MV5maeP1AFCCwYIoJhH103h2O4
	ttiB6tX1e7rVFmgT6CXyJjvDJ+Kc6/eoN7Ra3efQ==
Date: Thu, 6 Nov 2025 16:33:26 +0100
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>
Cc: Ritesh Harjani <ritesh.list@gmail.com>, linux-mm@kvack.org,
        linux-kernel@vger.kernel.org, Andreas Larsson <andreas@gaisler.com>,
        Andrew Morton <akpm@linux-foundation.org>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Borislav Petkov <bp@alien8.de>,
        Catalin Marinas <catalin.marinas@arm.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        David Hildenbrand <david@redhat.com>,
        "David S. Miller" <davem@davemloft.net>,
        David Woodhouse <dwmw2@infradead.org>,
        "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
        Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
        "Liam R. Howlett" <Liam.Howlett@oracle.com>,
        Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
        Madhavan Srinivasan <maddy@linux.ibm.com>,
        Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
        Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
        Peter Zijlstra <peterz@infradead.org>,
        Ryan Roberts <ryan.roberts@arm.com>,
        Suren Baghdasaryan <surenb@google.com>,
        Thomas Gleixner <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
        Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
        linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        x86@kernel.org
Subject: Re: [PATCH v4 07/12] mm: enable lazy_mmu sections to nest
Message-ID: <d5435e75-036b-44a5-a989-722e13f94b3e-agordeev@linux.ibm.com>
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-8-kevin.brodsky@arm.com>
 <87ms5050g0.ritesh.list@gmail.com>
 <50d1b63a-88d7-4484-82c0-3bde96e3207d-agordeev@linux.ibm.com>
 <48a4ecb5-3412-4d3f-9e43-535f8bee505f@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <48a4ecb5-3412-4d3f-9e43-535f8bee505f@arm.com>
X-TM-AS-GCONF: 00
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTAxMDAyMSBTYWx0ZWRfX/YZyxmYrnrJ9
 xCd4ujIZq7y0lim+YrboYNwl5TsRqk1oOoSjjpPrN2bdS3Yj8+BGw0eDwtF58nU1AxMxpNChFIt
 kjix63Qwyja0jEYGMpU1W2106lg0/CJxII5rA6IH8ca9YKwDy28POrrS/UliHt5WUxWiY4RvYvK
 KvjB7Q8W206gTc1ADhSmWj/G5k8ScNY8TzY3EvQXr/BVbxmytuyeX5wifFN5ALnc+chrAMwW/6j
 QnaXo4exfOcjHuuvP3Y/8qCuhkp//Cj/oqysiN8ehC/uU7vBozF7kWjRZh1pps/+U+PuMO1myX5
 CRiCQpqgahhrliHsenckRMbSmwXbtqSltJhRXk0UqsG5hBu7Va14xA+ZT8E/Z1xVt8mLCpJRj/v
 zoQNd/ElbUWMuQJeG/kbcYXCoAfCRQ==
X-Proofpoint-GUID: TFOhjUGUwcHF-txd3JWs84wNA_RrcFJO
X-Authority-Analysis: v=2.4 cv=OdCVzxTY c=1 sm=1 tr=0 ts=690cbfcd cx=c_pps
 a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17
 a=kj9zAlcOel0A:10 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=VwQbUJbxAAAA:8 a=20KFwNOVAAAA:8 a=ENMs_uJo8d3F8rUHHo4A:9 a=CjuIK1q_8ugA:10
 a=DXsff8QfwkrTrK3sU8N1:22 a=Z5ABNNGmrOfJ6cZ5bIyy:22 a=bWyr8ysk75zN3GCy5bjg:22
X-Proofpoint-ORIG-GUID: 0GlCJX74XkrUHHpzFp_J9wLdkqJNwiej
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-11-06_03,2025-11-06_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 malwarescore=0 adultscore=0 spamscore=0 suspectscore=0 impostorscore=0
 lowpriorityscore=0 priorityscore=1501 clxscore=1015 phishscore=0 bulkscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511010021

On Thu, Nov 06, 2025 at 10:51:43AM +0000, Kevin Brodsky wrote:
> On 05/11/2025 16:12, Alexander Gordeev wrote:
> > On Wed, Nov 05, 2025 at 02:19:03PM +0530, Ritesh Harjani wrote:
> >>> + * in_lazy_mmu_mode() can be used to check whether the lazy MMU mode is
> >>> + * currently enabled.
> >>>   */
> >>>  #ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
> >>>  static inline void lazy_mmu_mode_enable(void)
> >>>  {
> >>> -	arch_enter_lazy_mmu_mode();
> >>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
> >>> +
> >>> +	VM_WARN_ON_ONCE(state->nesting_level == U8_MAX);
> >>> +	/* enable() must not be called while paused */
> >>> +	VM_WARN_ON(state->nesting_level > 0 && !state->active);
> >>> +
> >>> +	if (state->nesting_level++ == 0) {
> >>> +		state->active = true;
> >>> +		arch_enter_lazy_mmu_mode();
> >>> +	}
> >>>  }
> >> Some architectures disables preemption in their
> >> arch_enter_lazy_mmu_mode(). So shouldn't the state->active = true should
> >> happen after arch_enter_lazy_mmu_mode() has disabled preemption()? i.e.
> > Do you have some scenario in mind that could cause an issue?
> > IOW, what could go wrong if the process is scheduled to another
> > CPU before preempt_disable() is called?
> 
> I'm not sure I understand the issue either.
> 
> >>   static inline void lazy_mmu_mode_enable(void)
> >>   {
> >>  -	arch_enter_lazy_mmu_mode();
> >>  +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
> >>  +
> >>  +	VM_WARN_ON_ONCE(state->nesting_level == U8_MAX);
> >>  +	/* enable() must not be called while paused */
> >>  +	VM_WARN_ON(state->nesting_level > 0 && !state->active);
> >>  +
> >>  +	if (state->nesting_level++ == 0) {
> >>  +		arch_enter_lazy_mmu_mode();
> >>  +		state->active = true;
> >>  +	}
> >>   }
> >>
> >> ... I think it make more sense to enable the state after the arch_**
> >> call right.
> > But then in_lazy_mmu_mode() would return false if called from
> > arch_enter_lazy_mmu_mode(). Not big problem, but still..
> 
> The ordering of nesting_level/active was the way you expected in v3, but
> the conclusion of the discussion with David H [1] is that it doesn't
> really matter so I simplified the ordering in v4 - the arch hooks
> shouldn't call in_lazy_mmu_mode() or inspect lazy_mmu_state.
> arch_enter()/arch_leave() shouldn't need it anyway since they're called
> once per outer section (not in nested sections). arch_flush() could
> potentially do something different when nested, but that seems unlikely.
> 
> - Kevin
> 
> [1]
> https://lore.kernel.org/all/af4414b6-617c-4dc8-bddc-3ea00d1f6f3b@redhat.com/

I might be misunderstand this conversation, but it looked to me as a discussion
about lazy_mmu_state::nesting_level value, not lazy_mmu_state::active.

I do use in_lazy_mmu_mode() (lazy_mmu_state::active) check from the arch-
callbacks. Here is the example (and likely the only case so far) where it hits:

static int kasan_populate_vmalloc_pte(pte_t *ptep, unsigned long addr,
				      void *_data)
{
	lazy_mmu_mode_pause();
	...
	if (likely(pte_none(ptep_get(ptep)))) {

		/* Here set_pte() checks whether we are in lazy_mmu mode */
		set_pte_at(&init_mm, addr, ptep, pte);	<--- calls set_pte()
		data->pages[index] = NULL;
	}
	...
	lazy_mmu_mode_resume();
	...
}

So without in_lazy_mmu_mode() check above the arch-specific set_pte()
implementation enters a wrong branch, which ends up in:

[  394.503134] Call Trace:
[  394.503137]  [<00007fffe01333f4>] dump_stack_lvl+0xbc/0xf0 
[  394.503143]  [<00007fffe010298c>] vpanic+0x1cc/0x418 
[  394.503149]  [<00007fffe0102c7a>] panic+0xa2/0xa8 
[  394.503154]  [<00007fffe01e7a8a>] check_panic_on_warn+0x8a/0xb0 
[  394.503160]  [<00007fffe082d122>] end_report+0x72/0x110 
[  394.503166]  [<00007fffe082d3e6>] kasan_report+0xc6/0x100 
[  394.503171]  [<00007fffe01b9556>] ipte_batch_ptep_get+0x146/0x150 
[  394.503176]  [<00007fffe0830096>] kasan_populate_vmalloc_pte+0xe6/0x1e0 
[  394.503183]  [<00007fffe0718050>] apply_to_pte_range+0x1a0/0x570 
[  394.503189]  [<00007fffe07260fa>] __apply_to_page_range+0x3ca/0x8f0 
[  394.503195]  [<00007fffe0726648>] apply_to_page_range+0x28/0x40 
[  394.503201]  [<00007fffe082fe34>] __kasan_populate_vmalloc+0x324/0x340 
[  394.503207]  [<00007fffe076954e>] alloc_vmap_area+0x31e/0xbf0 
[  394.503213]  [<00007fffe0770106>] __get_vm_area_node+0x1a6/0x2d0 
[  394.503218]  [<00007fffe07716fa>] __vmalloc_node_range_noprof+0xba/0x260 
[  394.503224]  [<00007fffe0771970>] __vmalloc_node_noprof+0xd0/0x110 
[  394.503229]  [<00007fffe0771a22>] vmalloc_noprof+0x32/0x40 
[  394.503234]  [<00007fff604eaa42>] full_fit_alloc_test+0xb2/0x3e0 [test_vmalloc] 
[  394.503241]  [<00007fff604eb478>] test_func+0x488/0x760 [test_vmalloc] 
[  394.503247]  [<00007fffe025ad68>] kthread+0x368/0x630 
[  394.503253]  [<00007fffe01391e0>] __ret_from_fork+0xd0/0x490 
[  394.503259]  [<00007fffe24e468a>] ret_from_fork+0xa/0x30 

I could have cached lazy_mmu_state::active as arch-specific data
and check it, but then what is the point to have it generalized?

Thanks!


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 15:47:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 15:47:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157059.1485979 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH2CQ-0005ad-9j; Thu, 06 Nov 2025 15:46:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157059.1485979; Thu, 06 Nov 2025 15: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 1vH2CQ-0005aW-5Q; Thu, 06 Nov 2025 15:46:58 +0000
Received: by outflank-mailman (input) for mailman id 1157059;
 Thu, 06 Nov 2025 15:46: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=0oVY=5O=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vH2CO-0005aQ-VE
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 15:46:57 +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 d10da985-bb27-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 16:46:53 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AS8PR03MB6760.eurprd03.prod.outlook.com (2603:10a6:20b:294::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Thu, 6 Nov
 2025 15:46:51 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9298.006; Thu, 6 Nov 2025
 15: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: d10da985-bb27-11f0-9d17-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xh+te1VdcD0cb9l4u12ekF8PgYZSEyVOlhSK1+Tq7bvkeg5UmKDmZKl1GwdPuo5cW2f9B56NqeZy+No3Tzlb7edp5mepKe16bulu2DUAq38qBsxsKZBEbXiIBX6x4NW6hmH/SXJ7lBGzc6nSmZT6dZK8PVVjrYKp0M22xZJ+Kh8o4mjybvr7xq0VhhZcFcM80+Q1yV6/44IIbdjGQZPhEjgOOx0d/uX39rI5ekjfE6P8Ep9HGIY0XevefgdfjbAi92+WxNGDubmkThOlRGqNoFEWZ437y999B3m95Gb4Y57fK5yGWTmdTEgpIeNRFsVap8y+/fLfYNmX/XHXrDkvPQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AxG1DiFa6djj21dc9zlgpnIR6yeIssmXx38CcV7BASQ=;
 b=EYMmT4jcU4UaeDzAutX6xtRwo3L+yxdSuPZJC4B04P1+UIF+CF9d3BSFMfpm8ssQ6E1NNoMZe30G4ydqK7JUlj2T9Ag4AIJb8GOzDHoqER1Ze4i+C7nmJzsmBHVuao2C9ps5rLpsXquF/HsPlWd3vmirNGnP+hCaesPWhOtOe32D8euR6qjUbmT3C4IPDXMrTlZtxuQHeB1IkxFMvS6791uuOZ5E0G0K2TNWKLozn9D1IHfdpCR+1wDXhlRnjjil3Sdfq0bWtlD7250PK4YqXMdKfZ4M16DBivz4vbSj486KtpJoB3oLowEMDG3KVBKWKXp7qFv8T9aZNF+8Yu1PQg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AxG1DiFa6djj21dc9zlgpnIR6yeIssmXx38CcV7BASQ=;
 b=AR3b+peeZHyL1BXWcV4F0pHq2/iUm0fQPnFAmTQpJ+ge6EwIGHydmL9kAZyAI68d2hQaKSUleoBVTAv9DDkSOs65SdwdB6x7RmydC3ysX4zVtqZTIHqaFE/nBvv1i/hq5wFPDc6XZl+17IghPFaG3jX2SMqx0uxIgKsZHbpB/ivIxRbGTMtzP5VNm3rNdcrNQ3x4dzNu9g2PdQ6Ap8lgFOFe9V1mRSX2S89aO0u8P1iDpnUkqEi8qChI0D13bpJrkcqZo1phHvXgaCV+eRRMemqR6WNUIJ4qT7iXJ4heUEeLK90oCLNi8jQl2hIdx+lyhFQmwekhwAAygOGW8fcgwg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <8a2e96e4-90fa-4cbc-90db-931b98926842@epam.com>
Date: Thu, 6 Nov 2025 17:46:50 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 1/3] x86/hvm: move hvm_shadow_handle_cd() in vmx code
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251029235448.602380-1-grygorii_strashko@epam.com>
 <20251029235448.602380-2-grygorii_strashko@epam.com>
 <308ecf14-e831-47f4-8c64-4005bb4dc857@suse.com>
 <6373016f-9558-4d73-918e-4251d16643ef@epam.com>
 <7f321809-5635-4993-b435-7707b21e6378@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <7f321809-5635-4993-b435-7707b21e6378@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0118.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:a8::19) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|AS8PR03MB6760:EE_
X-MS-Office365-Filtering-Correlation-Id: a30c11a3-5d53-4750-4a85-08de1d4bb40f
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?b3VETkZ2ZnVJdlQrSGNwNmV3cTJtRlFubVBYblVoMy9LVFZkdUV2T0xiblZ1?=
 =?utf-8?B?SjVZa2dwbk1XUDh1Vmg0Y1pOWW9uakRwZVB2NlgwMWZqMHRJdlE4ZXQzMVFt?=
 =?utf-8?B?N0xIaFFHcGdrNXNmTDdIYjFLU2V3bVlkLzF1VVdRWHJkNWNtdWZ5MHV0Y0RD?=
 =?utf-8?B?T0lBNThkVldudlZjTDJnMWR6dlR4OW8xUnZwd1grSEVlTFJxV3U0WEM2S0ds?=
 =?utf-8?B?QWtpdEQ0ZFpLZkpWc2kvU285V1V0M01USEN3U3dibnQ3Y1ZqRTFIeEM5WmxD?=
 =?utf-8?B?V3BEbnIzTTdCODczakhNc09DRDIvM05xamVSbmx3U0lRaDd2czBUTTdFMG1r?=
 =?utf-8?B?TXdsWmwrM25mcnArMExiek4yTnhKYklreCt2RFZIYkF4UkVsTU9zOEhrLzF5?=
 =?utf-8?B?NG12V3MwaUJ4YWdHa0NNT3F2aDM3Y1o2WHdFQlc5c0g1YkpYakNRMHBYSlFG?=
 =?utf-8?B?aHYvYjRUVHk0T1Y3bE1Wak9acmEvYmhYVC9tOUtFWlNKSUY4NUVKaHN5VEpz?=
 =?utf-8?B?d0RQb2V6TXpWSHU4a3JHdDEzS0pVL1cwRGVESHZuU0xHUHlDek5rcHlzTkFk?=
 =?utf-8?B?aFR6ME94eXd4bGxESE1UU25GM3JzcHZCWWdSTG9aQXBXSXcrUGlicVhFS0pq?=
 =?utf-8?B?K0ZVKzNBL1BqUGZFU1pOTTlqUWZiRkozZVhSYTBZL1o0RFZwei9abnJOK0dS?=
 =?utf-8?B?dndPTjBPU2RwRDBjTXMxcm9USVlTYzZIL3cwU2hBaUsraGQ5eTlVSDgrT1Jr?=
 =?utf-8?B?OXM0K2xudklpUzhUQUdTYzN4UEN3aHNOcTB1NFRLMnNRL1RzRjFMNnMrNGp3?=
 =?utf-8?B?d2QxWEZ4Q1BVcmJUcTRPOVZnZlMwK2gyL0NQcEhrclFScFZzYUt1VnBQbHFK?=
 =?utf-8?B?RWlTT1A5Ty9zTnNZYTcwK05OME44NjVkeXYwNUgxQnl4K3VjcVdBNjNDZmx3?=
 =?utf-8?B?bEhmR01oMWxwRjZuOExlMDExOHR0Q2FPMWp6Q1NWMVFtYWlJTmxQYmJReTlv?=
 =?utf-8?B?eUxlNGxEeFdNZnNPR2FOYzlBOHpIQUZkWldQdzQxRkNaWUFLeVFra3FqZyt4?=
 =?utf-8?B?ck5vaUZZMXlMTXJEMEhnWHU0cSs5K0c1bHVnMUJOVG92Z2o3MUJVK2dOSzFV?=
 =?utf-8?B?T04wS1V3WFVSN2lpajJhK0pnSXpLMCs0ZDJWWllJWFBRWUwvd2k1Y3RkdzNk?=
 =?utf-8?B?bldwMVBRTnB2aEVIWVcxczNPcm12SnFlSFlUSlpJb3RoZU1Ha2U3bU4rOVdR?=
 =?utf-8?B?R2dOMnRkZTdYa3l6c1JvQ0dzWnRjSHlwWE1uTkRobkFTOUl1SUhNMHREYnRK?=
 =?utf-8?B?NHRJSlNRU3h2TmRMaGtuY0xtL2pBMXpMc1Bya0VkUzZKazJYYkJzNnQ2VnpC?=
 =?utf-8?B?VXk1cnlVd2Vwc2p5VlVybFdiVG5tSEZZcXM3TENvSDRkc1hzUjFhVGEvVGNY?=
 =?utf-8?B?THBFdk5XSnJUMXljQzBJTHdIOGJINDkrV2xNSVRVc3NmcVZxYjFyRkFyTVYv?=
 =?utf-8?B?S1lQZWZRR0NRMUEwVUZlSmZ4dmNaWG5HZFZKUUQ1QnhxVUxneFprdEJ5ZXpw?=
 =?utf-8?B?S2xQSTdHcG5CVmI1Z2FxSjBYUmpjcWZwNGpHYVVOWDZoeVA5VGVpVWVjS0tI?=
 =?utf-8?B?L20zMWVRL1Q2dWs0dkFTV0t0MDJ4ZjJtVWNOV0NNT3NSREZrSjZ3L3Z3Wk9V?=
 =?utf-8?B?WXlYbTAxdVdpdEUvWUpuQ2NuZnNkYXBFcGhhSCs2VE9ab2hDQThyZk9JbkN6?=
 =?utf-8?B?Wk93Q1g0cUN5RkY4ZGZQS2h6WEE1M2czR25DTVpFWEplZDl3KzlpUnR3ajVT?=
 =?utf-8?B?b1ZIK0RDTzNiTERTMytIdHNnQVZ6NGtuSnI4dnFiQTZZOHhhM1NNMitnRTdO?=
 =?utf-8?B?S1YvaUpWOUlBSFBMT21xc3BKRW5hOHpzeTFWbW53NGxXTjBhVlNZOUxqM08x?=
 =?utf-8?Q?Vf4O+YmloYtJ1RXdW/HU9LSo60eqlwDJ?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UlVvR3p1djBaNnRuM0hyVCtEVGMzTFl1Q1dHbmd4WlFrRWxDZjlKK3BtNUR4?=
 =?utf-8?B?VlZ1QnN2MEh2S3RPeDk4emRaOFRmRm5CSWlxbjV6RVlmVm9hd2pUTDAvNU0y?=
 =?utf-8?B?d0xwSXpnN1JLUVhNZUpsRXMyZmxKMkhZTE1VV0syUklhOWFLaFY2aDY0b0p4?=
 =?utf-8?B?SWplS2h1dG5WU1VPVElaWW55NW5DVitTRGt3ZW1xTnRrTnFuUDgxWDJaYk13?=
 =?utf-8?B?NlpWcURZZWxwNHhsUXM1NXlsM2c1T3IwdFZndkhVUGlpcWtNU29tcFhmdHVH?=
 =?utf-8?B?N0ZSTkV6YWpIVmN6NGR4N010TXBSNHRvV0VtZlBVYUswV0RDK2RlUDZqYlVl?=
 =?utf-8?B?L1ZxQ0dxcWxDV0x4WVBraEhNZCtEZEx4bVB2akZaNmpQL1lpOVN1MnFqb0Jm?=
 =?utf-8?B?UGJtUEV0blZCZXRIRWFXK2taSkxsOGFnREsyOXlnSXBqczlrUm1NNkxtMFor?=
 =?utf-8?B?RFRkMDFKSjU0UWI0U00zbDYweXZSQlkzNXV6VWx0ZzFuY1A3N29pWWsxb1ZP?=
 =?utf-8?B?S3ZZbDVTeGZlTk1IN0x4Z1lBLzEzYTcwaUczbE9vUmtHNjArOHZuNVBJSzZz?=
 =?utf-8?B?U1dqT3Yva0Z1dXpVSC8wc1I2ellaVytkRk1KcFNpSSt2WDRuSG9ub3d3aU5P?=
 =?utf-8?B?d1lWMlBuNENoUXo1UEFJNkJndEVEVFRPWFFMb25tcjFTTCtHT3A2ZGNqZTJl?=
 =?utf-8?B?SzR1OG9hSXpLRUh6RFprMFBUUXRoT1d1R0lmV0dBQW1LZm8zUVUvOVZTZEV4?=
 =?utf-8?B?UjdpM2NPVTRnaVFUbStFVFp1eGpQTmppMWhKQy9iWEcraU9VU1RLVGRsS2dC?=
 =?utf-8?B?c1laTStoNWlsNk5FMGZYaXh4dVJMd3k1V0pOd0cyR0Y0Q0YvZDhnekdoYis5?=
 =?utf-8?B?VUJMSGJVcGR5aFE1RWJBSUNDL1ZaV1pXcWFvamZ1U2hHQjBNdmgwQXdBTnF1?=
 =?utf-8?B?bnNjNE5UQ1ZTNkl6YVRyMjlRZlZTMENiV0hsTy9EQTFzbjNTbVZUWWtuTGU2?=
 =?utf-8?B?Zlpoc1lpWUZSQWpaWURxSWV3ZktqcVdLS21oc1VySXE4cnRSMEZrRjNkV3Uz?=
 =?utf-8?B?bVpMYWY4QTBlZEtYYXVjL2k2MVBmN0JCWWJjN3lMN2xMR2dPMGFmNTEvTTNJ?=
 =?utf-8?B?SmpGTG9TYWIyalhkUGRtR2hEeW4rMGozMVNpM0F3UU15VlV0cllZQ3dNTXVy?=
 =?utf-8?B?UHFOTXI2R01DdkFaSjlGUm9jUEg5QlZISWd4WVdkUFVhaXluT0hLU2pXV0U1?=
 =?utf-8?B?cjQ3eDd3U2xrMEdzUEp3ZXgxVDVQNnN6UmhWY05KbXN3QjFCQU4zblRSZ2s1?=
 =?utf-8?B?aXMzNmV1Z01MbkhsdU01NlRRbjQ1OHp2VFJQYklNeEJueHBSM245Z3M5eHdG?=
 =?utf-8?B?Y0V0WmU5WGZsZ2hJaTFBOHdCVzMrSjJudUNCbU83RkNRcFhqVnJoWjlKWE1F?=
 =?utf-8?B?eVB2dDMyZzdYWkV1NHdNbDlaazh5VUN0VnVtc01qTjZZRmpiL2t2Mmt2eVl4?=
 =?utf-8?B?Sy9xTjdPdFdzSW5XSXVzRk1Mek5vRHF1MUVSaldxMTdWdlZpbitXd1lDTkRo?=
 =?utf-8?B?ZzhzZGxWWUtEMWp4dnZYeFFVRWJyVTBvdEpUQkhBNGZzUHBieER0TFFEeTFu?=
 =?utf-8?B?N3pFNDdMdHRHK1kyMld2M0VkNWl3cFFuaDlWWlRQMFFMRUduaXdLTW5ZZ0Rj?=
 =?utf-8?B?ekdJVHBEd3FwMTJJbm10NUM4cWh0Qng5VkpreW5tOXRSdUlHSjQrNitCRFl5?=
 =?utf-8?B?Wi9jb3VROWJuN3l0RENuSU1BUU1LN0FtRHFNZW16SndjOXVWUDVKb0M0aXBE?=
 =?utf-8?B?elFJekw1Y2hLSnhYeHV4SXZYWCswOTJ2VVlDVEY4ZkMxT2FUYW82VmdLeVRO?=
 =?utf-8?B?a3RZOFZkZ1N3ZXRwNEhwZGt4M3lWTGJsNHBEMU5GWFpzZ29oRUVDZzdjTy9L?=
 =?utf-8?B?cEdwcTJPWlBhUno3dkNBaWZjUXRJZFBSOXBDZ2lvRjM2K2QxMEZnMDZlUHJu?=
 =?utf-8?B?VUZFS0NQRGdWeTNmdHhxQ3BjVHRkNTR0TTFqT29RL3lZOU1GdXpYOXJzRDdQ?=
 =?utf-8?B?dktlOWlFeTNkbzAwV0VFMVJHNWhKWGRialN1U21oeXprNS8raFNIREhxdjE0?=
 =?utf-8?B?T1dhZEx4WkczU1ZzdSs3aFdJVitSbzAzTlo2RjVZMFp4NGw3dnU4SURnKzd3?=
 =?utf-8?B?OGc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a30c11a3-5d53-4750-4a85-08de1d4bb40f
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2025 15:46:51.5485
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: MT3LzL6agc/CHC0STgASfRypU3KOOnT+nFxM4u86ZC9Q+2ha1ZrRKmfEScxKAvE6eX2l+pDY+Ionidr7ctMqkzZaGrvQRqhLe3dkPhFSl0U=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB6760

Hi

On 30.10.25 14:47, Jan Beulich wrote:
> On 30.10.2025 13:28, Grygorii Strashko wrote:
>> On 30.10.25 13:08, Jan Beulich wrote:
>>> On 30.10.2025 00:54, Grygorii Strashko wrote:
>>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>
>>>> Functions:
>>>>    hvm_shadow_handle_cd()
>>>>    hvm_set_uc_mode()
>>>>    domain_exit_uc_mode()
>>>> are used only by Intel VMX code, so move them in VMX code.
>>>
>>> Nit: I think both in the title and here you mean "to" or "into".
>>>
>>>> While here:
>>>> - minor format change in domain_exit_uc_mode()
>>>> - s/(0/1)/(false/true) for bool types
>>>>
>>>> No functional changes.
>>>>
>>>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>>
>>> You did read Andrew's request to also move the involved structure field(s),
>>> didn't you? Oh, wait - maybe that's going to be the subject of patch 3.
>>
>> yes. it is patch 3 - It is not small.
>> And I really wanted this patch to contain as less modifications as possible on
>> top of code moving.
> 
> I wonder what other x86 maintainers think here.
> 
>>> While
>>> often splitting steps helps, I'm not sure that's very useful here. You're
>>> touching again immediately what you just have moved, all to reach a single
>>> goal.
>>>
>>>> @@ -1421,6 +1422,64 @@ static void cf_check vmx_set_segment_register(
>>>>        vmx_vmcs_exit(v);
>>>>    }
>>>>    
>>>> +/* Exit UC mode only if all VCPUs agree on MTRR/PAT and are not in no_fill. */
>>>> +static bool domain_exit_uc_mode(struct vcpu *v)
>>>> +{
>>>> +    struct domain *d = v->domain;
>>>> +    struct vcpu *vs;
>>>> +
>>>> +    for_each_vcpu(d, vs)
>>>> +    {
>>>> +        if ( (vs == v) || !vs->is_initialised )
>>>> +            continue;
>>>> +        if ( (vs->arch.hvm.cache_mode == NO_FILL_CACHE_MODE) ||
>>>> +             mtrr_pat_not_equal(vs, v) )
>>>> +            return false;
>>>> +    }
>>>> +
>>>> +    return true;
>>>> +}
>>>> +
>>>> +static void hvm_set_uc_mode(struct vcpu *v, bool is_in_uc_mode)
>>>> +{
>>>> +    v->domain->arch.hvm.is_in_uc_mode = is_in_uc_mode;
>>>> +    shadow_blow_tables_per_domain(v->domain);
>>>> +}
>>>
>>> Similarly I wonder whether this function wouldn't better change to taking
>>> struct domain * right away. "v" itself is only ever used to get hold of
>>> its domain. At the call sites this will then make obvious that this is a
>>> domain-wide operation.
>>
>> Agree. but..
>> In this patch I wanted to minimize changes and do modifications step by step.
>>
>> I can add additional patch such as "rework struct domain access in cache disable mode code".
>> Will it work?

I'm planning to resend with:
- incorporating struct domain * as parameter in hvm_set_uc_mode()

>>
>>>
>>>> +static void hvm_shadow_handle_cd(struct vcpu *v, unsigned long value)
>>>> +{
>>>> +    if ( value & X86_CR0_CD )
>>>> +    {
>>>> +        /* Entering no fill cache mode. */
>>>> +        spin_lock(&v->domain->arch.hvm.uc_lock);
>>>> +        v->arch.hvm.cache_mode = NO_FILL_CACHE_MODE;
>>>> +
>>>> +        if ( !v->domain->arch.hvm.is_in_uc_mode )
>>>> +        {
>>>> +            domain_pause_nosync(v->domain);
>>>> +
>>>> +            /* Flush physical caches. */
>>>> +            flush_all(FLUSH_CACHE_EVICT);
>>>> +            hvm_set_uc_mode(v, true);
>>>> +
>>>> +            domain_unpause(v->domain);
>>>> +        }
>>>> +        spin_unlock(&v->domain->arch.hvm.uc_lock);
>>>> +    }
>>>> +    else if ( !(value & X86_CR0_CD) &&
>>>> +              (v->arch.hvm.cache_mode == NO_FILL_CACHE_MODE) )
>>>> +    {
>>>> +        /* Exit from no fill cache mode. */
>>>> +        spin_lock(&v->domain->arch.hvm.uc_lock);
>>>> +        v->arch.hvm.cache_mode = NORMAL_CACHE_MODE;
>>>> +
>>>> +        if ( domain_exit_uc_mode(v) )
>>>> +            hvm_set_uc_mode(v, false);
>>>> +
>>>> +        spin_unlock(&v->domain->arch.hvm.uc_lock);
>>>> +    }
>>>> +}
>>>
>>> This function, in turn, could do with a local struct domain *d.

- incorporating struct domain * as parameter local var

>>>
>>>>    static int cf_check vmx_set_guest_pat(struct vcpu *v, u64 gpat)
>>>>    {
>>>>        if ( !paging_mode_hap(v->domain) ||
>>>
>>> Why did you put the code above this function? It's solely a helper of
>>> vmx_handle_cd(), so would imo best be placed immediately ahead of that one.
>>
>> Right. Hence vmx_x_guest_pat() are also used by vmx_handle_cd() I decided to put before them.
> 
> The main purpose of vmx_set_guest_pat() is, however, its use as a hook function.
> It's merely an optimization that the function is called directly by VMX code.

- moving code before vmx_handle_cd().

> 
>>> Bottom line: The change could go in as is, but imo it would be nice if it
>>> was tidied some while moving.
>>
>> I'd be very much appreciated if this could happen.
> 
> "this" being what out of the two or more possible options? (I take it you mean
> "could go in as is", but that's guesswork.)

I'm not goint to squah rest of the series.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Nov 06 15:58:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 15:58:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157071.1485988 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH2N5-0007GW-6m; Thu, 06 Nov 2025 15:57:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157071.1485988; Thu, 06 Nov 2025 15: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 1vH2N5-0007GP-49; Thu, 06 Nov 2025 15:57:59 +0000
Received: by outflank-mailman (input) for mailman id 1157071;
 Thu, 06 Nov 2025 15: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=YCkv=5O=bounce.vates.tech=bounce-md_30504962.690cc582.v1-35b18899a5f3438fb6e7c458c2edc1ae@srs-se1.protection.inumbo.net>)
 id 1vH2N4-0007GJ-5A
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 15:57:58 +0000
Received: from mail136-17.atl41.mandrillapp.com
 (mail136-17.atl41.mandrillapp.com [198.2.136.17])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5ba3e496-bb29-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 16:57:56 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4d2Rfp1kC0zPm0Wcy
 for <xen-devel@lists.xenproject.org>; Thu,  6 Nov 2025 15:57:54 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 35b18899a5f3438fb6e7c458c2edc1ae; Thu, 06 Nov 2025 15:57:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ba3e496-bb29-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1762444674; x=1762714674;
	bh=BYXZ9x9p2TsalxisIObnU5c4RxIs82a+71hF6ySnFmY=;
	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=JilvSfYEvr6dXrwHWxYLiB83LfWRyOthtMjHDgyI+iFsjLP2/7TfLRkJ1OmlsCwei
	 oMV1L4Fb1vcl6+e4nrXr9jsw6bH/7pityY7ZZgdMq9r3UZLbvyUUP1WQG4gOWYTuch
	 85bm8La/b7ge2ZAMEJTzXkYkw3akhDr4Umk0Yp3uliyBJxDBEwcqGcVQHu+lGillPt
	 IHsk4V+0RkmGnWEq8VR+WvFHlgKeeooWQGCdi2EszVZNL6ABqg7ryy90JO/CPjefMe
	 Xe2O+GE2VO+Y10aww406fwL9oQpvnhR4odfdChpOWlt4Qf6n8YN44YY1qgEzDLkEGc
	 gRq1MjvCQxqRA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1762444674; x=1762705174; i=teddy.astie@vates.tech;
	bh=BYXZ9x9p2TsalxisIObnU5c4RxIs82a+71hF6ySnFmY=;
	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=a456u8IauwgXxWeCaP8ponMjlZ9N5/NmV0vOKTfGM7V5SSR7wOVwdL+lZt729PEjR
	 XE56Tw3LfOJ57tWX7/UtU7IX+lMZmGzP0dqsRacFUJ6LUTtgFs295MjO3GpGjQq7kq
	 M5KuEJSMJ5jWmCNr300Lqbe2ilHdw1aimxWaXS+oun9tKvPO8pin3oMSIlFDxdCmG7
	 Fsjst/qwLXxQpAgQdUgEgvP3NKlt9ey7AvLGUNz8feNdDj5Kl2q0AqwNz6/xnmOgat
	 FboYwbDtYTr8NMqoeWkijMu7iz9epOKApy0cU5QpIku2X7nM69lcVMha8TbvnVleXY
	 MiqkEwhZrCLpA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[XEN][PATCH]=20xen/x86:=20guest=5Faccess:=20optimize=20raw=5Fx=5Fguest()=20for=20PV=20and=20HVM=20combinations?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1762444672391
Message-Id: <434d9ce4-e5e1-453d-84b7-e21e66d0c5a3@vates.tech>
To: "Grygorii Strashko" <grygorii_strashko@epam.com>, xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, "Alejandro Vallejo" <alejandro.garciavallejo@amd.com>, "Jason Andryuk" <jason.andryuk@amd.com>
References: <20251031212058.1338332-1-grygorii_strashko@epam.com>
In-Reply-To: <20251031212058.1338332-1-grygorii_strashko@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.35b18899a5f3438fb6e7c458c2edc1ae?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251106:md
Date: Thu, 06 Nov 2025 15:57:54 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 31/10/2025 =C3=A0 22:25, Grygorii Strashko a =C3=A9crit=C2=A0:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Xen uses below pattern for raw_x_guest() functions:
> 
> define raw_copy_to_guest(dst, src, len)        \
>      (is_hvm_vcpu(current) ?                     \
>       copy_to_user_hvm((dst), (src), (len)) :    \
>       copy_to_guest_pv(dst, src, len))
> 
> How this pattern is working depends on CONFIG_PV/CONFIG_HVM as:
> - PV=3Dy and HVM=3Dy
>    Proper guest access function is selected depending on domain type.
> - PV=3Dy and HVM=3Dn
>    Only PV domains are possible. is_hvm_domain/vcpu() will constify to "f=
alse"
>    and compiler will optimize code and skip HVM specific part.
> - PV=3Dn and HVM=3Dy
>    Only HVM domains are possible. is_hvm_domain/vcpu() will not be consti=
fied.
>    No PV specific code will be optimized by compiler.
> - PV=3Dn and HVM=3Dn
>    No guests should possible. The code will still follow PV path.
> 
> Rework raw_x_guest() code to use required functions explicitly for each
> combination of CONFIG_PV/CONFIG_HVM with main intention to optimize code =
for
> (PV=3Dn and HVM=3Dy) case.
> 
> For the case (PV=3Dn and HVM=3Dn) empty stubs are created which return (1=
)
> indicating failure. Hence, no guests should possible in this case -
> which means no access to guest memory  should ever happen.
> The two calls of __raw_copy_to_guest() in common/domain.c->update_runstat=
e_area()
> are fixed for this case by explicitly cast the return value to void
> (MISRA C Rule 17.7).
> 
> Finally build arch/x86/usercopy.c only for PV=3Dy.
> 
> The measured (bloat-o-meter) improvement for (PV=3Dn and HVM=3Dy) case is=
:
>    add/remove: 0/10 grow/shrink: 2/90 up/down: 163/-30932 (-30769)
>    Total: Before=3D1937113, After=3D1906344, chg -1.59%
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
>   xen/arch/x86/Makefile                   |  2 +-
>   xen/arch/x86/include/asm/guest_access.h | 38 +++++++++++++++++++++++++
>   xen/common/domain.c                     | 10 ++++---
>   3 files changed, 45 insertions(+), 5 deletions(-)
> 
> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index 407571c510e1..27f131ffeb61 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -71,7 +71,7 @@ obj-y +=3D time.o
>   obj-y +=3D traps-setup.o
>   obj-y +=3D traps.o
>   obj-$(CONFIG_INTEL) +=3D tsx.o
> -obj-y +=3D usercopy.o
> +obj-$(CONFIG_PV) +=3D usercopy.o
>   obj-y +=3D x86_emulate.o
>   obj-$(CONFIG_TBOOT) +=3D tboot.o
>   obj-y +=3D hpet.o
> diff --git a/xen/arch/x86/include/asm/guest_access.h b/xen/arch/x86/inclu=
de/asm/guest_access.h
> index 69716c8b41bb..36aeb89524ab 100644
> --- a/xen/arch/x86/include/asm/guest_access.h
> +++ b/xen/arch/x86/include/asm/guest_access.h
> @@ -13,6 +13,7 @@
>   #include <asm/hvm/guest_access.h>
>   
>   /* Raw access functions: no type checking. */
> +#if defined(CONFIG_PV) && defined(CONFIG_HVM)
>   #define raw_copy_to_guest(dst, src, len)        \
>       (is_hvm_vcpu(current) ?                     \
>        copy_to_user_hvm((dst), (src), (len)) :    \
> @@ -34,6 +35,43 @@
>        copy_from_user_hvm((dst), (src), (len)) :  \
>        __copy_from_guest_pv(dst, src, len))
>   
> +#elif defined(CONFIG_HVM)
> +#define raw_copy_to_guest(dst, src, len)        \
> +     copy_to_user_hvm((dst), (src), (len))
> +#define raw_copy_from_guest(dst, src, len)      \
> +     copy_from_user_hvm((dst), (src), (len))
> +#define raw_clear_guest(dst,  len)              \
> +     clear_user_hvm((dst), (len))
> +#define __raw_copy_to_guest(dst, src, len)      \
> +     copy_to_user_hvm((dst), (src), (len))
> +#define __raw_copy_from_guest(dst, src, len)    \
> +     copy_from_user_hvm((dst), (src), (len))
> +
> +#elif defined(CONFIG_PV)
> +#define raw_copy_to_guest(dst, src, len)        \
> +     copy_to_guest_pv(dst, src, len)
> +#define raw_copy_from_guest(dst, src, len)      \
> +     copy_from_guest_pv(dst, src, len)
> +#define raw_clear_guest(dst,  len)              \
> +     clear_guest_pv(dst, len)
> +#define __raw_copy_to_guest(dst, src, len)      \
> +     __copy_to_guest_pv(dst, src, len)
> +#define __raw_copy_from_guest(dst, src, len)    \
> +     __copy_from_guest_pv(dst, src, len)
> +
> +#else
> +#define raw_copy_to_guest(dst, src, len)        \
> +        ((void)(dst), (void)(src), (void)(len), 1)
> +#define raw_copy_from_guest(dst, src, len)      \
> +        ((void)(dst), (void)(src), (void)(len), 1)
> +#define raw_clear_guest(dst, len)               \
> +        ((void)(dst), (void)(len), 1)
> +#define __raw_copy_to_guest(dst, src, len)      \
> +        ((void)(dst), (void)(src), (void)(len), 1)
> +#define __raw_copy_from_guest(dst, src, len)    \
> +        ((void)(dst), (void)(src), (void)(len), 1)
> +#endif
> +
>   /*
>    * Pre-validate a guest handle.
>    * Allows use of faster __copy_* functions.
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 4f91316ad93e..c603edcc7d46 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1985,8 +1985,9 @@ bool update_runstate_area(struct vcpu *v)
>   #endif
>           guest_handle--;
>           runstate.state_entry_time |=3D XEN_RUNSTATE_UPDATE;
> -        __raw_copy_to_guest(guest_handle,
> -                            (void *)(&runstate.state_entry_time + 1) - 1=
, 1);
> +        (void)__raw_copy_to_guest(guest_handle,
> +                                  (void *)(&runstate.state_entry_time + =
1) - 1,
> +                                  1);
>           smp_wmb();
>       }
>   
> @@ -2008,8 +2009,9 @@ bool update_runstate_area(struct vcpu *v)
>       {
>           runstate.state_entry_time &=3D ~XEN_RUNSTATE_UPDATE;
>           smp_wmb();
> -        __raw_copy_to_guest(guest_handle,
> -                            (void *)(&runstate.state_entry_time + 1) - 1=
, 1);
> +        (void)__raw_copy_to_guest(guest_handle,
> +                                  (void *)(&runstate.state_entry_time + =
1) - 1,
> +                                  1);
>       }
>   
>       update_guest_memory_policy(v, &policy);

Alternatively, we can make all the raw_* functions `static inline` and 
have something like this which should have the same effect with much 
less redundancy.

static inline
unsigned int raw_copy_to_user_hvm(void *to, const void *from,
                                   unsigned int len)
{
     if ( IS_ENABLED(CONFIG_HVM) &&
          (!IS_ENABLED(CONFIG_PV) || is_hvm_vcpu(current) )
        copy_to_user_hvm(to, from, len);
     else if ( IS_ENABLED(CONFIG_PV) )
        copy_to_guest_pv(to, from, len);
}

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 Nov 06 15:59:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 15:59:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157081.1485997 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH2Oe-0007q5-ME; Thu, 06 Nov 2025 15:59:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157081.1485997; Thu, 06 Nov 2025 15:59:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH2Oe-0007py-Jj; Thu, 06 Nov 2025 15:59:36 +0000
Received: by outflank-mailman (input) for mailman id 1157081;
 Thu, 06 Nov 2025 15:58: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=tFS0=5O=suse.com=marco.crivellari@srs-se1.protection.inumbo.net>)
 id 1vH2Nm-0007GJ-TT
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 15:58:42 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7759479a-bb29-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 16:58:42 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-429cf861327so879710f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 07:58:42 -0800 (PST)
Received: from localhost.localdomain ([2a00:6d43:105:c401:e307:1a37:2e76:ce91])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-429eb403793sm5758966f8f.2.2025.11.06.07.58.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 06 Nov 2025 07:58: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: 7759479a-bb29-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762444721; x=1763049521; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vTKQ/9KgyAcLZI3pm3L05sC2QlXoOYBGo9f5Rvs6qdU=;
        b=PmSEE/UUBdOf1xk5gVicej8iFrs6zBaneA4ANWL2DHmD5MnVuhzemMSzkL+qlvLSLM
         YB0XX6t8D13jW+t9TXw/r7+/tZsebH1+108DwzDWJm2zbWyxmcAfTapy+8sYbHcFvBxE
         6bLTZUFuvjiV6G33w5fS90H3APnaoM/UWQnOobsabFHlE/ZxprGXwGs/JDhO0MtqXx+l
         4d4K6zvkJKqGFQFYmxEI4Wb+r2nvHhug36Gyx6ytVKSZzeU+QsXf5EGiBkZmLwCFVH5E
         xqVQ5vwsAhOPHMzuA0TMW7n/ZnZ0324opvmgmKP1mC5h5cdhRMvhQh0ssqkqYp/rZV1o
         WTMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762444721; x=1763049521;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=vTKQ/9KgyAcLZI3pm3L05sC2QlXoOYBGo9f5Rvs6qdU=;
        b=fpOWOVuQ+gvKGQWVpyvONkRJq3xn7ZJOjpqnb49MEAFG9FEnfXo2jDu2D/N0KYt4Ey
         5j2NLof0obbZpOz0v/UEOT2IJS5Xk001XpeitmmVb59A0RbbWAc2ECiaIxWbcipKzssc
         jot5GUXmWe4kw1Syc0wAa70K/1mHmdJ/pCsMBIJ4twe95hCvZGpuCkeRrI8IQ++fLICx
         lP3HrhWiglzYxqr27NUjb+xjNEn+WWvCysPJdJduWtvd4CG7xmKiNcW75qq6QPvGkK0S
         Iy2NJNPSTvWRvs1bMsOIS2ukqshNnuDfrGg5bPihUIUsFWd9O2qs3cW/8wrvcDLWUVI0
         fr1A==
X-Forwarded-Encrypted: i=1; AJvYcCWBKMbkoMSwkguzoHKx9usrUyhLMbusWpq67pG3oISKBQvZH+FBbrPnZkfPsDhILIPeThXskbHAnXg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxK6eidv8J24aIRprHtXfQMWjoFumQ3kYLfF6fOFrufLQgIBn9y
	BOgzdWWp0YyzL0fFscUY+jW37kuSYpb/dRebfyLESoqZeNykr6+hkM0bhU67a8PYaNM=
X-Gm-Gg: ASbGncsEyL7G5SLPXXmslH4Q5Um4oz8Gch4m3oS+H3CVy2vSn3px6IhkwZ6xdITZkIT
	l69IIaC9jVz/0FnuuHJ3PMrPolawEW+m09VKNycFaMfkSfYLomFO4qluBWaPtE8AL/GayeJYjyG
	Qjk2Y2GcO/7GLAKBWgq3UI7FZi866PibZRCk506Sp9fz5fBruvI0i6cgdcpEwdveWPDpSm+kiac
	Z8tyG5VZLxCm4wtSaB/2UfrMZJBxb7p25GBfS7UyTUYY0aKGKPTcka5XejgtN8vxi84GKpp8fiw
	hwfVnW9c+DBv6+rK22AaJcSUDX+Bk5L4+kT8KgzGHXwdZAO0ype+2xz0gUyVP0aunuV+qTeoVpb
	Rj6o4AcExoVQQx/mCqIFRJjtK7PZx/i9yEQDA0EStXqB2yqF7lqJrL1+t8OW7lZEc518MiKZ4Z+
	K/cfwOeAA9x6gzcAUsupMWWP8=
X-Google-Smtp-Source: AGHT+IFMnkLTlhStdnpadBpL2HuGw+mkAPiYvwVjt6jcTNz2UFYHeUrdQTK+BluDsXkk7abaXQWnhg==
X-Received: by 2002:a05:6000:420c:b0:429:cc5f:68a7 with SMTP id ffacd0b85a97d-429e330b919mr7123146f8f.44.1762444721404;
        Thu, 06 Nov 2025 07:58:41 -0800 (PST)
From: Marco Crivellari <marco.crivellari@suse.com>
To: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: Tejun Heo <tj@kernel.org>,
	Lai Jiangshan <jiangshanlai@gmail.com>,
	Frederic Weisbecker <frederic@kernel.org>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	Marco Crivellari <marco.crivellari@suse.com>,
	Michal Hocko <mhocko@suse.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Subject: [PATCH 1/2] xen/events: replace use of system_wq with system_percpu_wq
Date: Thu,  6 Nov 2025 16:58:30 +0100
Message-ID: <20251106155831.306248-2-marco.crivellari@suse.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20251106155831.306248-1-marco.crivellari@suse.com>
References: <20251106155831.306248-1-marco.crivellari@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Currently if a user enqueues a work item using schedule_delayed_work() the
used wq is "system_wq" (per-cpu wq) while queue_delayed_work() use
WORK_CPU_UNBOUND (used when a cpu is not specified). The same applies to
schedule_work() that is using system_wq and queue_work(), that makes use
again of WORK_CPU_UNBOUND.

This lack of consistency cannot be addressed without refactoring the API.

This continues the effort to refactor workqueue APIs, which began with
the introduction of new workqueues and a new alloc_workqueue flag in:

commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
commit 930c2ea566af ("workqueue: Add new WQ_PERCPU flag")

Switch to using system_percpu_wq because system_wq is going away as part of
a workqueue restructuring.

Suggested-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Marco Crivellari <marco.crivellari@suse.com>
---
 drivers/xen/events/events_base.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
index 9478fae014e5..663df17776fd 100644
--- a/drivers/xen/events/events_base.c
+++ b/drivers/xen/events/events_base.c
@@ -581,7 +581,7 @@ static void lateeoi_list_add(struct irq_info *info)
 					eoi_list);
 	if (!elem || info->eoi_time < elem->eoi_time) {
 		list_add(&info->eoi_list, &eoi->eoi_list);
-		mod_delayed_work_on(info->eoi_cpu, system_wq,
+		mod_delayed_work_on(info->eoi_cpu, system_percpu_wq,
 				    &eoi->delayed, delay);
 	} else {
 		list_for_each_entry_reverse(elem, &eoi->eoi_list, eoi_list) {
@@ -666,7 +666,7 @@ static void xen_irq_lateeoi_worker(struct work_struct *work)
 			break;
 
 		if (now < info->eoi_time) {
-			mod_delayed_work_on(info->eoi_cpu, system_wq,
+			mod_delayed_work_on(info->eoi_cpu, system_percpu_wq,
 					    &eoi->delayed,
 					    info->eoi_time - now);
 			break;
@@ -782,7 +782,7 @@ static void xen_free_irq(struct irq_info *info)
 
 	WARN_ON(info->refcnt > 0);
 
-	queue_rcu_work(system_wq, &info->rwork);
+	queue_rcu_work(system_percpu_wq, &info->rwork);
 }
 
 /* Not called for lateeoi events. */
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 06 15:59:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 15:59:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157082.1486004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH2Oe-0007tF-W1; Thu, 06 Nov 2025 15:59:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157082.1486004; Thu, 06 Nov 2025 15:59:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH2Oe-0007su-R4; Thu, 06 Nov 2025 15:59:36 +0000
Received: by outflank-mailman (input) for mailman id 1157082;
 Thu, 06 Nov 2025 15:58: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=tFS0=5O=suse.com=marco.crivellari@srs-se1.protection.inumbo.net>)
 id 1vH2Nn-0007GJ-TU
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 15:58:43 +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 77f526fc-bb29-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 16:58:43 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-477632d9326so7423455e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 07:58:43 -0800 (PST)
Received: from localhost.localdomain ([2a00:6d43:105:c401:e307:1a37:2e76:ce91])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-429eb403793sm5758966f8f.2.2025.11.06.07.58.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 06 Nov 2025 07: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: 77f526fc-bb29-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762444722; x=1763049522; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=53hexOkYyaqxhpOSn/nthNa2oVXwHIV4I+WyLFdMY9Y=;
        b=GrExudEKTjVcSpD+t1lJjHTK1UeHot11WbVvaxfJkMuEqebi2lFr6i88M+Fuhq2u3l
         GdOsFAW0YS+L3zhtTfEItSDslWub/+cVoe2MP8fY1GsorpKyHfXgEj9gfWH62i//xTqv
         MFrfNLrtueaEDSnrGhja8FI0X3BE+8n0PfOR6I2XuUrPGCvdegl4SwCP/1putRS6R9PX
         k3SiAdIYpv+3yo4LYozqYWJZPXqsfQk60xQfQOyNZVP1ZsKNGjCTXOgvRFl2nbFb5PO7
         FVOnIKhf8dWOOMGGv2Xw3uDIA2fnz8bUiBpPM5a231ga2GlqXaBjEvRffQoRGF12nJud
         A9/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762444722; x=1763049522;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=53hexOkYyaqxhpOSn/nthNa2oVXwHIV4I+WyLFdMY9Y=;
        b=byUTyAS2TWyXgRNsTBEIUnzfCrZ3Ec76PlgPgneejeRHi1NjC1y1XWbP6MA95hJSkm
         GiCp4PBDRrlXDhM+fbRToIqdrbjW9SniMEHzBlq+UzUhQVRR7MgsbfpUz5sTMxTxKP09
         5nI0iyetpo+wLvnvZUjHoT4oMHeAINfLNV3ZJHNmLDS8o2f0miCn5LpqBGsFNPOB3wIf
         p6HK8pu8z1yf9pwwCZj9I0yXidWCLRa4OqPGgzxHZej6/Vtu54425v2O0FsEzq+9j+jl
         PZHONEcTX/yfJqWloEIT1qK7cNiebWxQfNGVfnz3nOrmYmhz/qzrvRHxK0d8C3orOxtv
         I6SQ==
X-Forwarded-Encrypted: i=1; AJvYcCV71w7wMxOGBDPFt4NLSuS8loVsN8IE7IbIB+hP/6JHQCsOCAIjAbjOVQ9hhTxsNtVAFF53KvFrByo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwJnhSI1LpeElDQR6AFgiKZNya6fMMfsoSd1ghHLmCpTQu5ICwQ
	Oy71/b16WPbG9GZLS2vnlJrv38cpelBwY+Y3eg+ndJz5pasYE3Mx/vQmC+Jw+dM+KwE=
X-Gm-Gg: ASbGncuddznOT6asuI2Z3JVBMWfFnEZz5dPlUwzhEYhDP9fKNXdfMseelbBtG+7bR7i
	IxDt8l0H28fTsIUDOqa3W3Uu+q1zP41R7f6O5jkQ2PkwXWRn1O5V3fSizYr8HO9Km/e5We7xl+M
	9Hl8u/xB+gedNxTwXqu/7rZ8wStVwUzOaKuSBgPDskYmqi6FuAtdhPe3kqHYfBv5X2TrytWBPJk
	uz/yos337a9oiWYgti5A9qqJpAYlmwbREnhyi+v930jDfhMOIXuzYX7wkARszMRWeOCydBJWW2U
	HittJUABY0/WqZ9dLqhD4rFbGrnNR3LJTiIXu9WWOTO7Od2Yp5nRCwXuubJPFpfK5GvhNk5Ims1
	deR7b6+N17THU2gEcBIX8maBPIfAT9fT60vRxSUD96fj+Yr10LOxgL3Ac4IItMuC1VQW1tmSaaE
	aO8RGeFoXPqOCnJR22NnYm18Y=
X-Google-Smtp-Source: AGHT+IGsuM3JnBRPrLDis+cGJhcRI2m6z7HtbWMdfo50tweopR7jN9KNvup76xnxqkeK15q0yW/MHQ==
X-Received: by 2002:a05:600c:4e13:b0:475:dd53:6c06 with SMTP id 5b1f17b1804b1-4775ce3b380mr76738075e9.40.1762444722455;
        Thu, 06 Nov 2025 07:58:42 -0800 (PST)
From: Marco Crivellari <marco.crivellari@suse.com>
To: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: Tejun Heo <tj@kernel.org>,
	Lai Jiangshan <jiangshanlai@gmail.com>,
	Frederic Weisbecker <frederic@kernel.org>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	Marco Crivellari <marco.crivellari@suse.com>,
	Michal Hocko <mhocko@suse.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Subject: [PATCH 2/2] xen: privcmd: WQ_PERCPU added to alloc_workqueue users
Date: Thu,  6 Nov 2025 16:58:31 +0100
Message-ID: <20251106155831.306248-3-marco.crivellari@suse.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20251106155831.306248-1-marco.crivellari@suse.com>
References: <20251106155831.306248-1-marco.crivellari@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Currently if a user enqueue a work item using schedule_delayed_work() the
used wq is "system_wq" (per-cpu wq) while queue_delayed_work() use
WORK_CPU_UNBOUND (used when a cpu is not specified). The same applies to
schedule_work() that is using system_wq and queue_work(), that makes use
again of WORK_CPU_UNBOUND.
This lack of consistentcy cannot be addressed without refactoring the API.

alloc_workqueue() treats all queues as per-CPU by default, while unbound
workqueues must opt-in via WQ_UNBOUND.

This default is suboptimal: most workloads benefit from unbound queues,
allowing the scheduler to place worker threads where theyâ€™re needed and
reducing noise when CPUs are isolated.

This continues the effort to refactor workqueue APIs, which began with
the introduction of new workqueues and a new alloc_workqueue flag in:

commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
commit 930c2ea566af ("workqueue: Add new WQ_PERCPU flag")

This change adds a new WQ_PERCPU flag to explicitly request alloc_workqueue()
to be per-cpu when WQ_UNBOUND has not been specified.

With the introduction of the WQ_PERCPU flag (equivalent to !WQ_UNBOUND),
any alloc_workqueue() caller that doesnâ€™t explicitly specify WQ_UNBOUND
must now use WQ_PERCPU.

Once migration is complete, WQ_UNBOUND can be removed and unbound will
become the implicit default.

Suggested-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Marco Crivellari <marco.crivellari@suse.com>
---
 drivers/xen/privcmd.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
index f52a457b302d..402be080ad2c 100644
--- a/drivers/xen/privcmd.c
+++ b/drivers/xen/privcmd.c
@@ -1091,7 +1091,8 @@ static long privcmd_ioctl_irqfd(struct file *file, void __user *udata)
 
 static int privcmd_irqfd_init(void)
 {
-	irqfd_cleanup_wq = alloc_workqueue("privcmd-irqfd-cleanup", 0, 0);
+	irqfd_cleanup_wq = alloc_workqueue("privcmd-irqfd-cleanup", WQ_PERCPU,
+					   0);
 	if (!irqfd_cleanup_wq)
 		return -ENOMEM;
 
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 06 15:59:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 15:59:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157085.1486009 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH2Of-0007wx-8s; Thu, 06 Nov 2025 15:59:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157085.1486009; Thu, 06 Nov 2025 15:59: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 1vH2Of-0007vh-1p; Thu, 06 Nov 2025 15:59:37 +0000
Received: by outflank-mailman (input) for mailman id 1157085;
 Thu, 06 Nov 2025 15: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=tFS0=5O=suse.com=marco.crivellari@srs-se1.protection.inumbo.net>)
 id 1vH2Np-0007c8-Ri
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 15:58:45 +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 76bfe22c-bb29-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 16:58:41 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3ecde0be34eso1298241f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 07:58:41 -0800 (PST)
Received: from localhost.localdomain ([2a00:6d43:105:c401:e307:1a37:2e76:ce91])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-429eb403793sm5758966f8f.2.2025.11.06.07.58.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 06 Nov 2025 07:58: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: 76bfe22c-bb29-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762444720; x=1763049520; 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=4FL6nYeU7/sYbYGrjWjcW/vfma09XwfZvs7Q6SdJJn4=;
        b=BCLWII1OZU1Jk6DDtyMm1tkwMgQg3mheNzlUKH2G/alQCMAXyfDaRpcUkGrzB5YKwE
         s1xfmCY0fkve5bljN53WPqUg8OlhgVbdAmepgf2vh9fBrCKFaPzUYRmTfGciBdwC1dOL
         JGgDRy0C+aLHgLQ56APi1TZ1/muEy8yn4IrlezPIXvVSGotMZIrap6/hNOwZv8Y1RBLn
         8YGoIR0QyL4jLQ+fLfdIhGngY2q1vr7cH2YBohkryEHjkUrQ2RfrN1iLx3SwpbdDnPPJ
         rGz7orhM7M+Fr2Y2gF4slcySEyXC6nz/OWheSqSxWnj3lUG8AmNcCZdWpyo/2nGFiJ0o
         W8zg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762444720; x=1763049520;
        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=4FL6nYeU7/sYbYGrjWjcW/vfma09XwfZvs7Q6SdJJn4=;
        b=mIuN7uMSFLCX/RpYfLV9UTK+kVatiG0fyIZ7iQJvfwJhdmg+++IP1wyXH9f9H8sxIK
         ARNNO+Gzt6g2HRVMJl3ielpAqgKhyuw3ISG3i53GuCm/vppsc9EFMDRnEVc9FnTU2FMy
         WZzPvQa7ppYeLhHYHCCDz8hG2XQDSQF1xKrE0EentiFdLf/uNgPrO/9SVNyEtKW9beUH
         keuGSqGRwPtwSLaxBleXDjk3ngk7Y/RCcxT4G7Km/o8FStPQFtcs14PIL8sOgCh76gI0
         3C7fQPPndfYzysUPoCaikURhyCoZqgwUEDyioMzGri6iJYeYTKGq4xWBxdDTPcd4CazU
         yE7g==
X-Forwarded-Encrypted: i=1; AJvYcCVVUahZizo46A81C7GwGbNBCrZ/7hhP/SCy9nEZtdnAx6saAWIAhObv4utqbQtMe0VVgoyDQdAZiTw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxX7gG0caLGajVyKRQj9BsY4U4PL5imGR3Cl3XqIZWTx1qEcZe0
	LceaCPJWw+y8Ep5NxwEULhQpHFJ7Sg7Xk4nP1FSn6BzbLqwDfr6CScA824WlLTIwA+0=
X-Gm-Gg: ASbGncuspk7qpHKEyvB3kZyurIkaAoBpPZa0vMeLQynTGilJKISWRAbOTJCRGKB0gyP
	JXUQcHrrPrcHoj2OwcaIlyNV8UAqoeRsB3k1DGjYMBQvPv8FTR+8thjyptr/0kF5erA0WSYRN63
	dzPlA/fyDiFdCD9tQ7rmLXuCE8PikOa+qFmc62WYGiFn622unk5h0wkOAfoOaQ2pkZdvT9lw1//
	yS3cVooMr/c46jwfVt6RJKskrrZFjSJvIM4/GrAw/4StFLPF/Id4PCmFkaVlfLNccjkTL97uOc7
	qGl84kFSjv2K/abBYmjypK9uqWeIZDt4dtoMzIBHTJTMCWdtrGzUkziC1F40rxYQOJBkXz1WlGt
	RZYeP6NvHlBdI+AAiR3wfVbxvVQxsUibRr5UMkRpdQWgAsJZcP7OTB+S3zgnH5gFSquF13Sntv5
	WWAySdgECIc5xQH68bjUz7WJA=
X-Google-Smtp-Source: AGHT+IH8Fw/SiYYMB3pMDxqZxhmpJLxioCFXohxA9aJIH8CCNIcwKocF7Uc9vAgCmTSIo71Hr8Z5Aw==
X-Received: by 2002:a05:6000:2910:b0:411:3c14:3ad9 with SMTP id ffacd0b85a97d-42a9579c728mr61206f8f.21.1762444720333;
        Thu, 06 Nov 2025 07:58:40 -0800 (PST)
From: Marco Crivellari <marco.crivellari@suse.com>
To: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org
Cc: Tejun Heo <tj@kernel.org>,
	Lai Jiangshan <jiangshanlai@gmail.com>,
	Frederic Weisbecker <frederic@kernel.org>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	Marco Crivellari <marco.crivellari@suse.com>,
	Michal Hocko <mhocko@suse.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Subject: [PATCH 0/2] replace system_wq with system_percpu_wq, add WQ_PERCPU to alloc_workqueue
Date: Thu,  6 Nov 2025 16:58:29 +0100
Message-ID: <20251106155831.306248-1-marco.crivellari@suse.com>
X-Mailer: git-send-email 2.51.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hi,

=== Current situation: problems ===

Let's consider a nohz_full system with isolated CPUs: wq_unbound_cpumask is
set to the housekeeping CPUs, for !WQ_UNBOUND the local CPU is selected.

This leads to different scenarios if a work item is scheduled on an
isolated CPU where "delay" value is 0 or greater then 0:
        schedule_delayed_work(, 0);

This will be handled by __queue_work() that will queue the work item on the
current local (isolated) CPU, while:

        schedule_delayed_work(, 1);

Will move the timer on an housekeeping CPU, and schedule the work there.

Currently if a user enqueue a work item using schedule_delayed_work() the
used wq is "system_wq" (per-cpu wq) while queue_delayed_work() use
WORK_CPU_UNBOUND (used when a cpu is not specified). The same applies to
schedule_work() that is using system_wq and queue_work(), that makes use
again of WORK_CPU_UNBOUND.

This lack of consistency cannot be addressed without refactoring the API.

=== Recent changes to the WQ API ===

The following, address the recent changes in the Workqueue API:

- commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
- commit 930c2ea566af ("workqueue: Add new WQ_PERCPU flag")

The old workqueues will be removed in a future release cycle.

=== Introduced Changes by this series ===

1) [P 1] Replace uses of system_wq

    system_wq is a per-CPU workqueue, but his name is not clear.
    Because of that, system_wq has been replaced with system_percpu_wq.

2) [P 2] WQ_PERCPU added to alloc_workqueue()

    This change adds a new WQ_PERCPU flag to explicitly request
    alloc_workqueue() to be per-cpu when WQ_UNBOUND has not been specified.


Thanks!


Marco Crivellari (2):
  xen/events: replace use of system_wq with system_percpu_wq
  xen: privcmd: WQ_PERCPU added to alloc_workqueue users

 drivers/xen/events/events_base.c | 6 +++---
 drivers/xen/privcmd.c            | 3 ++-
 2 files changed, 5 insertions(+), 4 deletions(-)

-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 06 16:32:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 16:32:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157126.1486028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH2ud-0006FI-Oc; Thu, 06 Nov 2025 16:32:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157126.1486028; Thu, 06 Nov 2025 16:32:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH2ud-0006FB-LK; Thu, 06 Nov 2025 16:32:39 +0000
Received: by outflank-mailman (input) for mailman id 1157126;
 Thu, 06 Nov 2025 16:32: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=RMQi=5O=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vH2ud-0006F5-4V
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 16:32:39 +0000
Received: from mail-yx1-xb130.google.com (mail-yx1-xb130.google.com
 [2607:f8b0:4864:20::b130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3431fcea-bb2e-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 17:32:37 +0100 (CET)
Received: by mail-yx1-xb130.google.com with SMTP id
 956f58d0204a3-63f9beb27b9so1195459d50.1
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 08:32: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: 3431fcea-bb2e-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762446756; x=1763051556; 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=HoVdgOaqpJHfULXrAsHu8NUf8f/kGjWiUOAS8fLn9b8=;
        b=B9GTAuF3DP9dY3akmDQ24St9N3UlGF60txdjxFn9gdpu+P4qDhBczy8beM88f+AiLr
         rl79qAL/xQVPOUKcdQHJFEG41axciKvvW0jxHJu42G44jiheRb+9IRlAwu0gpxpcIoyV
         NPdHBN0hU/tG8ygiEskDM/BTp/GnpNUQea6M4MOyfnM1Pk8hRNbXVGK1uzlFO9l2WgOj
         tWXyXarmHLHYKvtc/WduV4WXikSCKhPU3zbdIE7Kb+IPxykt361JAgAJ0xEys1Z2nN9C
         UI2ZmV80Bc9Rhp31ML3FmJO6aOSUoH8RZ/boNPQ7tffK19dvFVjptHeiMRXgWqOc/PS7
         bdlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762446756; x=1763051556;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=HoVdgOaqpJHfULXrAsHu8NUf8f/kGjWiUOAS8fLn9b8=;
        b=c+1iaHvb1EySAazAy87oPEdT0n7E5XJ+OpK/blck6oVo/ht9vzABi50DH4nqSLSi+r
         19GeHqLdcPpbSY95ir9BBj9lOwWyHSmgkrm2bj84FxejHeLRCieCFQ3emXfYltQv6t+I
         vVdOgHVmzQi+kNXCoUyRUrkmf2CbMjyi3cHd+RwvxSAD5pFKMbz97tHRjQiToF+9WC7a
         obEN7hH6MMlMpBPPGrQPxUWq/yhnxiBV8lFWpUSBllNQR+0M8DGkvmJl55z+jng2zK6X
         T+WKwPdFWHmvB7tdVz4ga35Kw0JlfY2LWUUWmFwQdRo3ZkaaWgGoRAZxu6YPqfolFfph
         TFBw==
X-Gm-Message-State: AOJu0Yyb2xYKkdWuvcQLW7LSA5IipIIgbVngmRDoWx1UmYjJqkvOQhvs
	GSRtwUB42R1CdPm5jDPYgeZTGuffqBzg55tzSEae4uQsRWkGX/GiYIrpMAzO7ZV4mEUF8jtYb0y
	5Gu0NPp0UN3nj14epn22EDi4FTydfB+M=
X-Gm-Gg: ASbGnctOsZNLnjxDpqCdYPLfrCSr7M2vHWwE7yTJZnAuWNjUU6kqCZPWCtUKn6P4n3+
	9+WT7uyeQUXs2mA78yuec7GfyL/erJQNPW8KsZILunQtRGe/aX2T5lhbUMWKHVBTd/+17gVOB8V
	RzMBa+U6U5mQHaX55Lpltlm3Y8QYft9BfI6sVft0yWyUMxikyIvSeal1YHOEI7OdFaxxKiwA0oz
	e/oHGkjtCKoFYhR289lkzkHX4JZkHuyQnsUuUJatHOxNi0tJQZN9NNDkWpB
X-Google-Smtp-Source: AGHT+IFxlP/1Z3VenWkOzjn1uLUZ0V3wSFGQmq3PyzCEB0U9Wxo4NZYQ0Vf9zxXV3zTBOtaE6aEK+J+r9NFWcAbOlvE=
X-Received: by 2002:a05:690e:1a98:b0:63f:4b71:18d9 with SMTP id
 956f58d0204a3-63fd35b5abfmr4526688d50.69.1762446755597; Thu, 06 Nov 2025
 08:32:35 -0800 (PST)
MIME-Version: 1.0
References: <20251105153808.20278-1-frediano.ziglio@citrix.com>
 <fdc9fd41-2224-4672-911e-3e17b428d32a@gmail.com> <CAHt6W4eyH_7c4Q-KYaDjNJnSXjKSVNT1iSw0sNbLMXnK3iEHRg@mail.gmail.com>
 <d193feac-3285-4c26-9a8a-ba09437e7e76@gmail.com> <CAHt6W4fEbuk+VzjFxfz5=T8GXCVW_jSoqqMAkiQTXL79B93SPg@mail.gmail.com>
 <98e2f19f-5fce-4ad1-b821-f5abb1f815f6@suse.com>
In-Reply-To: <98e2f19f-5fce-4ad1-b821-f5abb1f815f6@suse.com>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Thu, 6 Nov 2025 16:32:24 +0000
X-Gm-Features: AWmQ_blH8amtrbbrg3a4IDMoF2izySOvVGnY5u5qjrvC8kQvPkLxSBqN9Ub54Zo
Message-ID: <CAHt6W4fscR1zAPbEmmgy5ARUGN5R2XBLF=Lkbjw3GU_RwibTfA@mail.gmail.com>
Subject: Re: [PATCH v3] xen: Strip xen.efi by default
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, 
	Frediano Ziglio <frediano.ziglio@cloud.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	Demi Marie Obenour <demiobenour@gmail.com>
Content-Type: text/plain; charset="UTF-8"

On Thu, 6 Nov 2025 at 10:27, Jan Beulich <jbeulich@suse.com> wrote:
>
> On 06.11.2025 10:58, Frediano Ziglio wrote:
> > On Thu, 6 Nov 2025 at 03:52, Demi Marie Obenour <demiobenour@gmail.com> wrote:
> >> Does objdump on the signed file return correct section names?
> >
> > From objdump -x
> >
> > Sections:
> > Idx Name          Size      VMA               LMA               File off  Algn
> >   0 .text         0016c9ae  ffff82d040200000  ffff82d040200000  00000320  2**4
> >                   CONTENTS, ALLOC, LOAD, READONLY, CODE
> >   1 .rodata       0006b9e8  ffff82d040400000  ffff82d040400000  0016cce0  2**2
> >                   CONTENTS, ALLOC, LOAD, DATA
> >   2 .buildid      00000035  ffff82d04046c000  ffff82d04046c000  001d86e0  2**2
> >                   CONTENTS, ALLOC, LOAD, READONLY, DATA
> >   3 .init.text    0004d123  ffff82d040600000  ffff82d040600000  001d8720  2**2
> >                   CONTENTS, ALLOC, LOAD, READONLY, CODE
> >   4 .init.data    0006c9b0  ffff82d040800000  ffff82d040800000  00225860  2**2
> >                   CONTENTS, ALLOC, LOAD, DATA
> >   5 .data.read_mostly 00028da8  ffff82d040a00000  ffff82d040a00000
> > 00292220  2**4
> >                   CONTENTS, ALLOC, LOAD, DATA
> >   6 .data         0000feec  ffff82d040a29000  ffff82d040a29000  002bafe0  2**4
> >                   CONTENTS, ALLOC, LOAD, DATA
> >   7 .bss          00223108  ffff82d040a39000  ffff82d040a39000  00000000  2**4
> >                   ALLOC
> >   8 .reloc        000016b8  ffff82d040c5d000  ffff82d040c5d000  002caee0  2**2
> >                   CONTENTS, ALLOC, LOAD, READONLY, DATA
> >   9 .sbat         000000a6  ffff82d040c5f000  ffff82d040c5f000  002cc5a0  2**2
> >                   CONTENTS, READONLY
> >
> > Which looks correct.
> >
> > From hexdump -C I can see close to the end
> >
> > ...
> > 002cc580  30 ae 38 ae 60 ae 00 00  00 80 a3 00 10 00 00 00  |0.8.`...........|
> > 002cc590  a0 ae c0 ae e0 ae 00 00  00 00 00 00 00 00 00 00  |................|
> > 002cc5a0  73 62 61 74 2c 31 2c 53  42 41 54 20 56 65 72 73  |sbat,1,SBAT Vers|
> > 002cc5b0  69 6f 6e 2c 73 62 61 74  2c 31 2c 68 74 74 70 73  |ion,sbat,1,https|
> > 002cc5c0  3a 2f 2f 67 69 74 68 75  62 2e 63 6f 6d 2f 72 68  |://github.com/rh|
> > 002cc5d0  62 6f 6f 74 2f 73 68 69  6d 2f 62 6c 6f 62 2f 6d  |boot/shim/blob/m|
> > 002cc5e0  61 69 6e 2f 53 42 41 54  2e 6d 64 0a 78 65 6e 2e  |ain/SBAT.md.xen.|
> > 002cc5f0  78 73 2c 31 2c 43 6c 6f  75 64 20 53 6f 66 74 77  |xs,1,Cloud Softw|
> > 002cc600  61 72 65 20 47 72 6f 75  70 2c 78 65 6e 2c 34 2e  |are Group,xen,4.|
> > 002cc610  32 30 2e 31 2d 37 2e 32  32 2e 67 33 65 30 36 37  |20.1-7.22.g3e067|
> > 002cc620  32 36 62 2e 78 73 39 2c  6d 61 69 6c 74 6f 3a 73  |26b.xs9,mailto:s|
> > 002cc630  65 63 75 72 69 74 79 40  78 65 6e 73 65 72 76 65  |ecurity@xenserve|
> > 002cc640  72 2e 63 6f 6d 0a 00 00  00 00 00 00 00 00 00 00  |r.com...........|
> > 002cc650  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
> > 002cc660  2c 00 00 00 2e 69 6e 69  74 2e 74 65 78 74 00 2e  |,....init.text..|
> > 002cc670  69 6e 69 74 2e 64 61 74  61 00 2e 64 61 74 61 2e  |init.data..data.|
> > 002cc680  72 65 61 64 5f 6d 6f 73  74 6c 79 00 00 00 00 00  |read_mostly.....|
> > 002cc690  9e 05 00 00 00 02 02 00  30 82 05 92 06 09 2a 86  |........0.....*.|
> > 002cc6a0  48 86 f7 0d 01 07 02 a0  82 05 83 30 82 05 7f 02  |H..........0....|
> > 002cc6b0  01 01 31 0f 30 0d 06 09  60 86 48 01 65 03 04 02  |..1.0...`.H.e...|
> > 002cc6c0  01 05 00 30 5c 06 0a 2b  06 01 04 01 82 37 02 01  |...0\..+.....7..|
> > 002cc6d0  04 a0 4e 30 4c 30 17 06  0a 2b 06 01 04 01 82 37  |..N0L0...+.....7|
> > 002cc6e0  02 01 0f 30 09 03 01 00  a0 04 a2 02 80 00 30 31  |...0..........01|
> > 002cc6f0  30 0d 06 09 60 86 48 01  65 03 04 02 01 05 00 04  |0...`.H.e.......|
> > 002cc700  20 e2 47 64 f8 e8 7b 62  eb 17 e0 13 0a 0d 93 02  | .Gd..{b........|
> > 002cc710  7a d8 3b f0 20 a8 ee 3d  49 98 3f de c1 47 de 15  |z.;. ..=I.?..G..|
> > 002cc720  43 a0 82 03 2c 30 82 03  28 30 82 02 10 a0 03 02  |C...,0..(0......|
> > 002cc730  01 02 02 11 00 8f fc 11  bf 41 54 40 74 89 2c 53  |.........AT@t.,S|
> > 002cc740  a5 78 c1 e8 32 30 0d 06  09 2a 86 48 86 f7 0d 01  |.x..20...*.H....|
> > 002cc750  01 0b 05 00 30 1c 31 1a  30 18 06 03 55 04 03 13  |....0.1.0...U...|
> > 002cc760  11 58 65 6e 53 65 72 76  65 72 20 58 65 6e 20 64  |.XenServer Xen d|
> > 002cc770  65 76 30 1e 17 0d 32 35  30 33 32 30 31 36 35 35  |ev0...2503201655|
> > 002cc780  30 37 5a 17 0d 33 37 30  31 31 39 30 33 31 34 30  |07Z..37011903140|
> > 002cc790  37 5a 30 1c 31 1a 30 18  06 03 55 04 03 13 11 58  |7Z0.1.0...U....X|
> > 002cc7a0  65 6e 53 65 72 76 65 72  20 58 65 6e 20 64 65 76  |enServer Xen dev|
> > ...
> >
> > So, this confirms that the string table is there to support larger
> > section names and the signature is there and it's working.
>
> But is it going to work on all EFI implementations, or merely the one you tried?

Can you be more specific ?
The file was tested using dozens of different hardware and under Qemu.
Only x64 if it's what you mean.

> Of course it would help if Demi could give more concrete pointers to (possible)
> implementations where there might be (known? suspected?) issues.
>
> Jan

Frediano


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 16:33:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 16:33:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157136.1486038 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH2vl-0006kU-1B; Thu, 06 Nov 2025 16:33:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157136.1486038; Thu, 06 Nov 2025 16:33:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH2vk-0006kN-UK; Thu, 06 Nov 2025 16:33:48 +0000
Received: by outflank-mailman (input) for mailman id 1157136;
 Thu, 06 Nov 2025 16:33: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=0oVY=5O=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vH2vk-0006F5-5n
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 16:33:48 +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 5734fc78-bb2e-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 17:33:35 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AS2PR03MB8929.eurprd03.prod.outlook.com (2603:10a6:20b:5e5::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Thu, 6 Nov
 2025 16:33:32 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9298.006; Thu, 6 Nov 2025
 16:33:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5734fc78-bb2e-11f0-9d17-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GwUoCVZl/08I50x6U9PQyV13vt98lHQ7aC21pEBN6kNI2Q8HIEe+4SVQCiwX25O6Wqeh5Mlv3HVxfiv95eYmQGGlUNsnL23U+/ehyVmPEaym5AKV1y6agRJAROapeVy7t402MHYeld//NGD+gTGFajEn2jA6v5vs0TEbJ9mhY+I52EkGo0B/9Z36P7o6MgkcZRLExKiF79hrEgD9txayuX+6oQpWV3UGebA6SIjh0OBCxLEzLixnIXdGkU91KPW0rlDB+Alul74I2CDd6czVevoAhK+f6E0WHIYrLwkesg2kq66P9OG3ANr8swsQyVnGFAoU2OPUBCtuxo4Fm/DmdA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VVPqj5q9UbtWaoRouyUelUFaGv0lx7vbxPctgZixcR8=;
 b=K2/4rcAy14c2bfb5EsEk9NTpeo8e+qS6PhZXArWajE7jpVxBZRvF1QxIpWLmvt5VfpMaaaHV+wS6NnhISV1GS/EdpfFIaGh5TFTdcDQSPa42qz3BMkpvNFA/APqO+/AUP32OOilyKX8+974BgWkLb9npgrZpBzRArQnhlDZOTj6tBBFOsOPAW/691MRf7elk7VJMgVb27hwpKHs/mHZeyXmsStEZhznqn85wSrC6U3qA1StOeAtBYDD6caJcs6gFV4t9u6kx02E3G9hlB8Uiirr8j1QGO4uwg/zBOiCnQNAt0dEobeCilmoVaOnd+Ci/kU5SgIQEE2wUctbWcqAAcw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VVPqj5q9UbtWaoRouyUelUFaGv0lx7vbxPctgZixcR8=;
 b=qrNyu/zZPCHtaHSU44WtZmLHHNGUQ3P7ViSK6hKbdYl3J92xRGwx1i3cXPuNBj+j242tuEaFFuL3KCOBYjPZ9EhuQoLRXH3MbS08BMTAgO03BzOy+Ooh7UxNRL0tedkXsGA+pKlZQwmQAzR6V9eUUvyRkw6WbgGu3c0Ueg0vVcUymwdftsxoSQi/7+8/SiL6M7Ccf9CRXG6FNLbC8reF85ecM0Fh30AgdrbT2XjFIPhN4TUB3GC/y/scH1csNoSs7TAHnUcAzZMbqY9VcKw9O1OrWK0e/Se53KHzNrIAHh1PQp4S55e4U2S8+714So/yHK/fASQ87FeQ3E/+YEbtBA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <b012c6c3-fb8d-4336-922f-f40bc43eb2b5@epam.com>
Date: Thu, 6 Nov 2025 18:33:30 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen/x86: guest_access: optimize raw_x_guest() for PV
 and HVM combinations
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org,
 Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <20251031212058.1338332-1-grygorii_strashko@epam.com>
 <434d9ce4-e5e1-453d-84b7-e21e66d0c5a3@vates.tech>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <434d9ce4-e5e1-453d-84b7-e21e66d0c5a3@vates.tech>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR2P281CA0186.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:9f::20) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|AS2PR03MB8929:EE_
X-MS-Office365-Filtering-Correlation-Id: 2563d124-09de-4175-ba12-08de1d52394c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NWRrSjM1TTRFQzdGRXdFbitabmErbXMzV1ZkQWhRRXkrMU5memJLbTdGSjlJ?=
 =?utf-8?B?MTlPenN3emE1Y1VnTGQ4bzFuUEFLc1V5RXNYaWZZekpEMXhTWVJ2ZkROR1A4?=
 =?utf-8?B?YTljR0J2eFYzVldJbWsxeGxTRkFVUkRnTGJHWjNEY1UxR1ZxZGpkdmhCMkpY?=
 =?utf-8?B?TElKVC9xOUU3RzFReXF3MEc4cTdDQmxTbkxNM21BN2NrWFVjMTE2bHB2S2Zh?=
 =?utf-8?B?ckZkb1E3WTJaa3ZURnZDU0lJblJ2K2s0QjRKU1BOcUZ4bjA2K0hFR0V5SkpB?=
 =?utf-8?B?ZDV0dk5hNTRzUlZ5Y2l1eXloUElXODAzZ3F6UCtETDAzV2xqV2FSenZLTVlZ?=
 =?utf-8?B?YjV1STRISitMQ1Y2WklTTUFCbWMyVVZWUFpNVG0wdmJ3NlBPWUJSNDd6cHZB?=
 =?utf-8?B?Y2NYSUg0SmFGdEE0alN5SVRTMkF0bzFlUFVBdkpLZ21BUDU4K09iQUYwY0lN?=
 =?utf-8?B?eWtPeGJXLzZzQ1RjV1N1a29MVmxqUnRSTE9yc0VHODZSUUI2MzJTaTZHWGpm?=
 =?utf-8?B?RnMzZWFtWmRvM1NRNkJ2Tms5UXNFNm9laFQ3SHd3OFc4d2FUNUN6ZEpXUmha?=
 =?utf-8?B?aGN6S1NaeFo3YWNmKzk0emEyN3BCRmhGdTYrM1VLN2U3WE56SGdMOWt6Yjdm?=
 =?utf-8?B?MzZFSXQ5ZVNvbWEvZnJQT3IvTVJ5UUJrZkNPaFNxbjY4OTdzUHVwOGNqRWNy?=
 =?utf-8?B?WjNDaldzU1RQOEp1cGdWY21LWVUrbWxGTWorWWZHWUFFZmZ2ZHE2Tnk3dUMr?=
 =?utf-8?B?djJ4Nk8yZzl6ck1kMGloRWIrcGdXKzdxeGlKU1ZaN0dQQ1g3OGs5ekVPVFRT?=
 =?utf-8?B?Y2VLcGd5YXJhRGxOR2N4dFJSU1F4dU5qUUphSVZ1MC9ra0FVdXBCVE04M296?=
 =?utf-8?B?d3RvVmMzWE8yRUhRYVRCRVNhcTRmb3ZNeEsyUERwS0s2QWpQSjgwUlFtd0tl?=
 =?utf-8?B?RVhjWTN3dm5SSnozV21aN0pucVRiaGgwWGpydFB3cm95Mm5OS01QWlF5L3dP?=
 =?utf-8?B?dGxIZHRWQnE3aTdyYTFoUlFveUhwY1BNVFd0ZDd6eHAzMGRYcWZxKytiOVBF?=
 =?utf-8?B?S2g1NE5ueUtIb3BUV2dkQkE1SGhFMWg5RjkvWFFhUllCeUc5emNpbTZEdFkx?=
 =?utf-8?B?MzVHWlJKb2ZkL09yUjJCQzl2UTdreHdIa1hiemphVXViQmV6ajhoeWpyMVhY?=
 =?utf-8?B?czlOU1VVYWFjbzlSOVR4ams1SUZuN3hab3AwcnVGRFNDOHo5TzlhNEpDV1Uw?=
 =?utf-8?B?cG9PUFZrNHVLOWpJaTZYc1NWMloxTllQVWx0bWxwZDEyLzZOWmVWVnBRcUhW?=
 =?utf-8?B?VlllUm9tUGd3UXhjcTFqa0h6S3VIVGZ5b2RtZmRseFR5N3pGaWJkdjVXejR1?=
 =?utf-8?B?Q2tocmp4dGZFbDRzSVM3VHcvR3hHZG1LYVhsbldMVjJ5alJ4NmtYWWNrUm5H?=
 =?utf-8?B?ZXc2MWZydysyK040dFdXTkdOOTBxajNaSy82YWl0MVMyWWpHK1ZxOTNaZm4r?=
 =?utf-8?B?Rm15QlJyNUdKaGN3dFhjSWpnVzhPZkF1cTFFb2dQTXlaa2I5Mmp4cGUxM1Nq?=
 =?utf-8?B?d3orN1podEorTVRQUll6Q1d0VE5WMkQyTjNTbEprdThxOHNYVTZsTFhPbm1O?=
 =?utf-8?B?elc2dHV2Z3RJMXNLNFNzZlB3Z2lkUWZMVnFxTWc1QTdyNmNOQ3dGQmIycUNC?=
 =?utf-8?B?T0ZpcnlZU2lGRjRGWTNGOTE5K2lhVkF5NlBpOHppVTdySFA3ZVhraVo0Q3Bw?=
 =?utf-8?B?bnN2TWZsQ0k5OHFKTGxsMVZ0Zy9YamRVa2JySjZsK2tsZlNMd1BvYzd4VU56?=
 =?utf-8?B?MFo0Z2tZdGV6b2lSZGVSTytpVGQ4UzhsS3NsVEZEUENPR2xyVmN5YlFpYm1R?=
 =?utf-8?B?aURmUEpTUWxvdFNGZVRSMmNJL1IxZGZMYy9iZ0JjcmpaU3hMaGx1cFBnaWJX?=
 =?utf-8?Q?0LVCz7aF7P8K4+x32su4IrLnrWa99AQ3?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U0FQMElmd3pxbnhnK3RnWFZmeHJJbFdCTHUzemlpNHpIdnIwOTdOZE9GNUI5?=
 =?utf-8?B?a2FDYlQvUnBvRXlkYitrc29CdThtV3VCckVDb1RER2FRRHFqL0h3K2pHdWJD?=
 =?utf-8?B?SzBVTUhZczJvZXpTdGh1MmFUaFdGaC9aNWRFTzQwNjhlbHJBb05ySE80N0My?=
 =?utf-8?B?aldKVVcyWWFkZzh2WDF4cXBpSjcyQlpMUVBCQVlSMmhjTno0QmI5WGs4dXBN?=
 =?utf-8?B?V0VmdmxvLzNtVEkyWWRCOUU3dThSUTN3OGQyRlI1bjJSbldKajhtbzBZTkNV?=
 =?utf-8?B?RllYVFFsQzV6bmtOWmNsMUswbUN1dXFrZ3hXNmwvTHlmQStVaVZjN2kvRk1T?=
 =?utf-8?B?L1YxanZxeXh0NGJROEhZRmtpaDA3R3RUZUdlTE9MbU8zTldJUWdtaUdzWENz?=
 =?utf-8?B?cHMrNkJlOWRuZDd0NHVoWnVtZkg5ajk5U28xVHQ2QjRtUUVnb2tia25oWGd2?=
 =?utf-8?B?dVJjQlNId2Z2QWNqMCtscHFHM2RZSElIM1FvQUl5NituazVkSzRPejZPS2NV?=
 =?utf-8?B?YTBuSTJKRmhROFNncGxaakRYWXYvdVdiNFp5aGxlOGdrT3JvdTJPdERqRkpw?=
 =?utf-8?B?eU03dk5WMUY0RW92S0x4UWRwUmJpUG9iUUg4VzcxOUVLdk5PK1BOOFpKT0ZB?=
 =?utf-8?B?ZlBSWWd3ZnVjOHU3cGx1TmRqbTltLzBXd2diM3lZZk40U0dpMVgybzUxQkda?=
 =?utf-8?B?WVdrbytZenk1Mm92Y1Fvdy9iZVNjcXo5dndHbEorQzVKTS9zdlN4dmFWZUVC?=
 =?utf-8?B?WS9OZ2R3RGNwRWpmU0ExTnl5ZkY2SlBRdTRodEdEeStJUTBVSlRKbyt2MllC?=
 =?utf-8?B?SWwwcVJhZHJhTjZWR2xBYiswZjA1RUhDVVJ4Vit5Z1hWN0liaWIzZ3EyMUk3?=
 =?utf-8?B?TURpUjMvcnR2eWRNMEpLYmVpYzhhQktjZlhhSFk2S2pIV2dmVkdNVDlkdUdI?=
 =?utf-8?B?R2NOUENsMW9LeThrN2I2UXVOckFMczlzTFVxbVRZVEZ3Z2lIRXNoa3FDU09D?=
 =?utf-8?B?VUl1SDQzNmV6WVBTcGlQeWNlc2JKd3lTV3dGTjU1c1ZNL1ZLN2Y2V0t3LzEy?=
 =?utf-8?B?QVhNbTQ0VmpRYmN2dmIvVCtqMVhPeE9HSkJVM2lUSGVkeDE5Z2FHUW5NelM5?=
 =?utf-8?B?ai9kQlRvSnk2aFVJM0piWjl0S0tFdXZ2NFJmb1lMcFh1ZytQQjkyQXFJZzFR?=
 =?utf-8?B?RWlKcDVVVnZIOG9qMHhXR0tBK2FKcUZyS21lUjJCK2RYWUVTSWN4c3d0c1Mr?=
 =?utf-8?B?R2JPR2wxaHFMZ1pYWjlTVU5xTGFDRnVoNHA3M0hiVnphczFUbWRqTDQ1cjVI?=
 =?utf-8?B?Mlh3S3dqZzhnWmYxM0V2Mm1JMVJBbWlPZ2xOMnREanNYQzdWR3dDcTVNMXdn?=
 =?utf-8?B?bitiUktycEkrSWtLeERtdHdCb1V2cnR2REZIYkVmUlZqWWZVYzJVZUs2ektl?=
 =?utf-8?B?ZmYyMzkvSldrSjl0VzI4WGhqSFZ0VzYxeXM0R0U3UVZvQlhJMFM0dEY4WmRQ?=
 =?utf-8?B?K1llRG8zcWs3Q1BrcVhPNE9JVkM4TDZ4TlJ5bk9tYkp6Y0o5U05LTGdobURs?=
 =?utf-8?B?WXp6eUVXekFsM3dXL09rZnRxc2Z6ZE44R2MyTzhEU2s3V3BiVC92a3FaMlF0?=
 =?utf-8?B?Zm1NQkRiWW80QUNScjZDRWdXWCtEK0xDQVZmUkZHT253dnRuRGRraDJ6anBT?=
 =?utf-8?B?QUVjTEh2a2dwcjErK1Y4OXpZUWppOUlxQ1I2OFZHTXQ0dlVUdGJzSTRKR0Ey?=
 =?utf-8?B?N2R1M2NqVUpFQ3pOTnYwbTdWSHpIbW5Da043Y1lOM2NCUFg5RGdGU0U5NTBR?=
 =?utf-8?B?UDJheUcvY3hQdWJmZXdCaWxWNnppcHFiMjJOR2hvTnpwQkNveENWeU5LY3VM?=
 =?utf-8?B?NlFmVUpGK1RZdlEvYWFGUkdvdldSTkdsWkxpbjRaeUNUZkVneVk0ZjM4Uk9M?=
 =?utf-8?B?SGVrTFhZUUdOWHdvbzRwRnVkaHJudHpVU005cjA2M01UcmxLYUxsbGMvbXNZ?=
 =?utf-8?B?cGUyWi84TVgvaXpNMVJkV3ZoUW96NjFvSGc3c3E5R2ZrRXFhSmlaN0xzQ0lm?=
 =?utf-8?B?N0kzUXNBbmE1aVgySFBkSzZvY0RuR1JHSTFqbVo0aHZPOHg1b2N0YlBtWGVw?=
 =?utf-8?B?WURPWGtGUGdYeHN0SlhXamhBbHBFOUpsbDNYY3oxSTNXNytxbnY2VnEzWXNO?=
 =?utf-8?B?MlE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2563d124-09de-4175-ba12-08de1d52394c
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2025 16:33:32.0284
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: H6AIliBKX/PhR+KCdSbiV0IRo9D36dpgytNgGT1+d+c7A2TKd6WdqoncCBEjDVEuSBswhIhLQ6PF51zb1BAz5TAB3Lp8pIEOucaz8bVrwFY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB8929

Hi Teddy, Jan,

On 06.11.25 17:57, Teddy Astie wrote:
> Le 31/10/2025 Ã  22:25, Grygorii Strashko a Ã©critÂ :
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> Xen uses below pattern for raw_x_guest() functions:
>>
>> define raw_copy_to_guest(dst, src, len)        \
>>       (is_hvm_vcpu(current) ?                     \
>>        copy_to_user_hvm((dst), (src), (len)) :    \
>>        copy_to_guest_pv(dst, src, len))
>>
>> How this pattern is working depends on CONFIG_PV/CONFIG_HVM as:
>> - PV=y and HVM=y
>>     Proper guest access function is selected depending on domain type.
>> - PV=y and HVM=n
>>     Only PV domains are possible. is_hvm_domain/vcpu() will constify to "false"
>>     and compiler will optimize code and skip HVM specific part.
>> - PV=n and HVM=y
>>     Only HVM domains are possible. is_hvm_domain/vcpu() will not be constified.
>>     No PV specific code will be optimized by compiler.
>> - PV=n and HVM=n
>>     No guests should possible. The code will still follow PV path.
>>
>> Rework raw_x_guest() code to use required functions explicitly for each
>> combination of CONFIG_PV/CONFIG_HVM with main intention to optimize code for
>> (PV=n and HVM=y) case.
>>
>> For the case (PV=n and HVM=n) empty stubs are created which return (1)
>> indicating failure. Hence, no guests should possible in this case -
>> which means no access to guest memory  should ever happen.
>> The two calls of __raw_copy_to_guest() in common/domain.c->update_runstate_area()
>> are fixed for this case by explicitly cast the return value to void
>> (MISRA C Rule 17.7).
>>
>> Finally build arch/x86/usercopy.c only for PV=y.
>>
>> The measured (bloat-o-meter) improvement for (PV=n and HVM=y) case is:
>>     add/remove: 0/10 grow/shrink: 2/90 up/down: 163/-30932 (-30769)
>>     Total: Before=1937113, After=1906344, chg -1.59%
>>
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> ---
>>    xen/arch/x86/Makefile                   |  2 +-
>>    xen/arch/x86/include/asm/guest_access.h | 38 +++++++++++++++++++++++++
>>    xen/common/domain.c                     | 10 ++++---
>>    3 files changed, 45 insertions(+), 5 deletions(-)
>>
>> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
>> index 407571c510e1..27f131ffeb61 100644
>> --- a/xen/arch/x86/Makefile
>> +++ b/xen/arch/x86/Makefile
>> @@ -71,7 +71,7 @@ obj-y += time.o
>>    obj-y += traps-setup.o
>>    obj-y += traps.o
>>    obj-$(CONFIG_INTEL) += tsx.o
>> -obj-y += usercopy.o
>> +obj-$(CONFIG_PV) += usercopy.o
>>    obj-y += x86_emulate.o
>>    obj-$(CONFIG_TBOOT) += tboot.o
>>    obj-y += hpet.o
>> diff --git a/xen/arch/x86/include/asm/guest_access.h b/xen/arch/x86/include/asm/guest_access.h
>> index 69716c8b41bb..36aeb89524ab 100644
>> --- a/xen/arch/x86/include/asm/guest_access.h
>> +++ b/xen/arch/x86/include/asm/guest_access.h
>> @@ -13,6 +13,7 @@
>>    #include <asm/hvm/guest_access.h>
>>    
>>    /* Raw access functions: no type checking. */
>> +#if defined(CONFIG_PV) && defined(CONFIG_HVM)
>>    #define raw_copy_to_guest(dst, src, len)        \
>>        (is_hvm_vcpu(current) ?                     \
>>         copy_to_user_hvm((dst), (src), (len)) :    \
>> @@ -34,6 +35,43 @@
>>         copy_from_user_hvm((dst), (src), (len)) :  \
>>         __copy_from_guest_pv(dst, src, len))
>>    
>> +#elif defined(CONFIG_HVM)
>> +#define raw_copy_to_guest(dst, src, len)        \
>> +     copy_to_user_hvm((dst), (src), (len))
>> +#define raw_copy_from_guest(dst, src, len)      \
>> +     copy_from_user_hvm((dst), (src), (len))
>> +#define raw_clear_guest(dst,  len)              \
>> +     clear_user_hvm((dst), (len))
>> +#define __raw_copy_to_guest(dst, src, len)      \
>> +     copy_to_user_hvm((dst), (src), (len))
>> +#define __raw_copy_from_guest(dst, src, len)    \
>> +     copy_from_user_hvm((dst), (src), (len))
>> +
>> +#elif defined(CONFIG_PV)
>> +#define raw_copy_to_guest(dst, src, len)        \
>> +     copy_to_guest_pv(dst, src, len)
>> +#define raw_copy_from_guest(dst, src, len)      \
>> +     copy_from_guest_pv(dst, src, len)
>> +#define raw_clear_guest(dst,  len)              \
>> +     clear_guest_pv(dst, len)
>> +#define __raw_copy_to_guest(dst, src, len)      \
>> +     __copy_to_guest_pv(dst, src, len)
>> +#define __raw_copy_from_guest(dst, src, len)    \
>> +     __copy_from_guest_pv(dst, src, len)
>> +
>> +#else
>> +#define raw_copy_to_guest(dst, src, len)        \
>> +        ((void)(dst), (void)(src), (void)(len), 1)
>> +#define raw_copy_from_guest(dst, src, len)      \
>> +        ((void)(dst), (void)(src), (void)(len), 1)
>> +#define raw_clear_guest(dst, len)               \
>> +        ((void)(dst), (void)(len), 1)
>> +#define __raw_copy_to_guest(dst, src, len)      \
>> +        ((void)(dst), (void)(src), (void)(len), 1)
>> +#define __raw_copy_from_guest(dst, src, len)    \
>> +        ((void)(dst), (void)(src), (void)(len), 1)
>> +#endif
>> +
>>    /*
>>     * Pre-validate a guest handle.
>>     * Allows use of faster __copy_* functions.
>> diff --git a/xen/common/domain.c b/xen/common/domain.c
>> index 4f91316ad93e..c603edcc7d46 100644
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -1985,8 +1985,9 @@ bool update_runstate_area(struct vcpu *v)
>>    #endif
>>            guest_handle--;
>>            runstate.state_entry_time |= XEN_RUNSTATE_UPDATE;
>> -        __raw_copy_to_guest(guest_handle,
>> -                            (void *)(&runstate.state_entry_time + 1) - 1, 1);
>> +        (void)__raw_copy_to_guest(guest_handle,
>> +                                  (void *)(&runstate.state_entry_time + 1) - 1,
>> +                                  1);
>>            smp_wmb();
>>        }
>>    
>> @@ -2008,8 +2009,9 @@ bool update_runstate_area(struct vcpu *v)
>>        {
>>            runstate.state_entry_time &= ~XEN_RUNSTATE_UPDATE;
>>            smp_wmb();
>> -        __raw_copy_to_guest(guest_handle,
>> -                            (void *)(&runstate.state_entry_time + 1) - 1, 1);
>> +        (void)__raw_copy_to_guest(guest_handle,
>> +                                  (void *)(&runstate.state_entry_time + 1) - 1,
>> +                                  1);
>>        }
>>    
>>        update_guest_memory_policy(v, &policy);
> 
> Alternatively, we can make all the raw_* functions `static inline` and
> have something like this which should have the same effect with much
> less redundancy.
> 
> static inline
> unsigned int raw_copy_to_user_hvm(void *to, const void *from,
>                                     unsigned int len)
> {
>       if ( IS_ENABLED(CONFIG_HVM) &&
>            (!IS_ENABLED(CONFIG_PV) || is_hvm_vcpu(current) )
>          copy_to_user_hvm(to, from, len);
>       else if ( IS_ENABLED(CONFIG_PV) )
>          copy_to_guest_pv(to, from, len);
	else
  	   return len;
> }

Can try.

Jan, would it be acceptable?


-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Nov 06 16:37:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 16:37:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157154.1486047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH2zN-0007aP-JD; Thu, 06 Nov 2025 16:37:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157154.1486047; Thu, 06 Nov 2025 16:37: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 1vH2zN-0007aI-GA; Thu, 06 Nov 2025 16:37:33 +0000
Received: by outflank-mailman (input) for mailman id 1157154;
 Thu, 06 Nov 2025 16:37: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=RMQi=5O=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vH2zM-0007aC-M9
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 16:37:32 +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 e389d9fb-bb2e-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 17:37:31 +0100 (CET)
Received: by mail-yw1-x1129.google.com with SMTP id
 00721157ae682-7815092cd0bso10869367b3.2
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 08:37: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: e389d9fb-bb2e-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762447050; x=1763051850; 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=CHxpoOPq+j6tKZxyyZcbaeOzVWioghrMI0b88lv905Y=;
        b=JVhqxf8L6QaWAA/xjisvSR9dVbDfAc5o6UEEWSiR/q7sMVPnXt0a/iJUrQi+4/T4/t
         8A8ccoF/s2PpVWn7ZJsFtSy55KCcMPwDGMpxGbNAsb9JXJn7uVDsxF1fzNLXiAp4vzCM
         jEfbi6MArEl1utgTMXLMqCTmtia5m2EqfPhBoCdSu9teVSvqz+4piZisROLhBZPPh5AS
         XwpeGS0IW/gZ4ZiCycAuLEfy5hzY+2Vm6asUA2h2ZNLjFXZwzups/N4Jv6mjURwfyWjV
         b4msXhctG+u9kLKCHlKAluer6QoHZJUSQW8qBjDw9WtYF3vTH/7rbDKPgPGK1THBhUHP
         EzRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762447050; x=1763051850;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=CHxpoOPq+j6tKZxyyZcbaeOzVWioghrMI0b88lv905Y=;
        b=G6n7UM6VVgfShdqX4kcB32Glyrh5sAdxE8WVrY71UzhQZu2OhvsiRp8hKzy6kLvo9G
         XrGTm3qSmCKyYaIB6wmNaXVJvbJiGE81IvIm8fUYE0yWcwYRaH5pZ1Wl7YN2g0qTd9YN
         MQx9sz4V0l9dh462ZdDDB+VlZAsDbu+YO5jLAwKJTf/Y4oqlM8eBnrkwY5alGku1EbFv
         em80JYYxyUSerc0MYdIlsjakUd5l+iRfVfZOf8OXH/sHmeToaiRVqjYU7G6pdMNoLR5p
         59JKGthZ7MsxQih4n7r/y9U1hVmozC4mOAIUm+DWk8zBka1rK/yXbE1JWaVHMJOP7Ihu
         Ahtg==
X-Forwarded-Encrypted: i=1; AJvYcCXKvTwG4DxTCV0sFsGRsZs9dvTejR8RD4L6LoBXPMY3RiCzkOHiAouU9lNGwPV/K+lNpH71QitJ3GU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YztR9Izpu2cjDTBFunDsaYEEtYUHOT0wIBKiuHWbAiTOHOIDs/u
	qZProV3ecAhfcdvdfPXDkVjK5bcf6n76TU7pr3j01enJyjNGeTukY0ZuakvPUE/ztM1c9wAs6zv
	ecLpjVZKMxotNpxt2HxxGJxn7TZmyw1w=
X-Gm-Gg: ASbGnctfK1XuX+VwAoxQ4P0YmkMa79mzY8kpKq6WeuPrzQ0dHnbF6v5CULg17vH2/u5
	ST+ndpbB4UO56jjlcohWIuJpndnoWuat8pQarFV5ce7gjWYH4AqlzCCYCL1sQ9GO18aIPQ6I/HO
	vK///SUNmXbaHnkR+cdX5LADOWzRJFEOx79WBxfJFD3WXMPybFjripDWRRtKE+d7gGeTMwZmaPx
	P3BFYFVP0I76OtT1TE9/LLKQ1v3ZPu4hqWFFGLCc7K2fQkTasKHhvdqRbE/SHcFyb+HnAA=
X-Google-Smtp-Source: AGHT+IGvSt5CfFItzBmTTGZrZUkKLgvTfURjlKb7woiaUTM8/jLwBMNJeH8w7oq+rwg+a6mTYE1lNqc/IQK6BJfwYEM=
X-Received: by 2002:a05:690c:9a81:b0:786:8f3e:b11b with SMTP id
 00721157ae682-786a41be00amr126183497b3.33.1762447050238; Thu, 06 Nov 2025
 08:37:30 -0800 (PST)
MIME-Version: 1.0
References: <20251105153808.20278-1-frediano.ziglio@citrix.com> <97611b79-228c-40a6-9fb2-4571b2447258@suse.com>
In-Reply-To: <97611b79-228c-40a6-9fb2-4571b2447258@suse.com>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Thu, 6 Nov 2025 16:37:17 +0000
X-Gm-Features: AWmQ_bkAtm91WHYPFi-ux2dVX_c4vTVxq9lqzhyi3qbSvPjl-BQWCUSrANUDw7Q
Message-ID: <CAHt6W4ce9cPwdaYXwgL4Unkprh4BQ2Qh_CSM0q9WjP2fdVf-Gg@mail.gmail.com>
Subject: Re: [PATCH v3] xen: Strip xen.efi by default
To: Jan Beulich <jbeulich@suse.com>
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Thu, 6 Nov 2025 at 10:32, Jan Beulich <jbeulich@suse.com> wrote:
>
> On 05.11.2025 16:38, Frediano Ziglio wrote:
> > From: Frediano Ziglio <frediano.ziglio@cloud.com>
> >
> > For xen.gz file we strip all symbols and have an additional
> > xen-syms file version with all symbols.
> > Make xen.efi more coherent stripping all symbols too.
> > xen-syms.efi can be used for debugging.
> >
> > Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> > ---
> > Changes since v1:
> > - avoid leaving target if some command fails.
> >
> > Changes since v2:
> > - do not convert type but retain PE format;
> > = use xen-syms.efi for new file name, more consistent with ELF.
> > ---
> >  docs/misc/efi.pandoc  |  8 +-------
> >  xen/Kconfig.debug     |  9 ++-------
> >  xen/Makefile          | 19 -------------------
> >  xen/arch/x86/Makefile |  9 ++++++---
> >  4 files changed, 9 insertions(+), 36 deletions(-)
> >
> > diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
> > index 11c1ac3346..c66b18a66b 100644
> > --- a/docs/misc/efi.pandoc
> > +++ b/docs/misc/efi.pandoc
> > @@ -20,13 +20,7 @@ Xen to load the configuration file even if multiboot modules are found.
> >  Once built, `make install-xen` will place the resulting binary directly into
> >  the EFI boot partition, provided `EFI_VENDOR` is set in the environment (and
> >  `EFI_MOUNTPOINT` is overridden as needed, should the default of `/boot/efi` not
> > -match your system). When built with debug info, the binary can be quite large.
> > -Setting `INSTALL_EFI_STRIP=1` in the environment will cause it to be stripped
> > -of debug info in the process of installing. `INSTALL_EFI_STRIP` can also be set
> > -to any combination of options suitable to pass to `strip`, in case the default
> > -ones don't do. The xen.efi binary will also be installed in `/usr/lib64/efi/`,
> > -unless `EFI_DIR` is set in the environment to override this default. This
> > -binary will not be stripped in the process.
> > +match your system).
> >
> >  The binary itself will require a configuration file (names with the `.efi`
> >  extension of the binary's name replaced by `.cfg`, and - until an existing
> > diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
> > index d900d926c5..58ee10ee3e 100644
> > --- a/xen/Kconfig.debug
> > +++ b/xen/Kconfig.debug
> > @@ -147,12 +147,7 @@ config DEBUG_INFO
> >         Say Y here if you want to build Xen with debug information. This
> >         information is needed e.g. for doing crash dump analysis of the
> >         hypervisor via the "crash" tool.
> > -       Saying Y will increase the size of the xen-syms and xen.efi
> > -       binaries. In case the space on the EFI boot partition is rather
> > -       limited, you may want to install a stripped variant of xen.efi in
> > -       the EFI boot partition (look for "INSTALL_EFI_STRIP" in
> > -       docs/misc/efi.pandoc for more information - when not using
> > -       "make install-xen" for installing xen.efi, stripping needs to be
> > -       done outside the Xen build environment).
> > +       Saying Y will increase the size of the xen-syms and xen.efi.elf
> > +       binaries.
>
> Why xen.efi.elf and not xen-syms.efi?
>

I forgot to update this part.
Now that I see the comment, was the suggestion about having an
additional xen-syms.efi file or having xen-syms.efi instead of
xen.efi.elf ?

> > --- a/xen/arch/x86/Makefile
> > +++ b/xen/arch/x86/Makefile
> > @@ -228,14 +228,17 @@ endif
> >       $(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
> >       $(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
> >             $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
> > -           $(note_file_option) -o $@
> > -     $(NM) -pa --format=sysv $@ \
> > +           $(note_file_option) -o $@.tmp
> > +     $(NM) -pa --format=sysv $@.tmp \
> >               | $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
> >               > $@.map
> >  ifeq ($(CONFIG_DEBUG_INFO),y)
> > -     $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
> > +     $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))cp -f \
> > +        $@.tmp $(TARGET)-syms.efi
> > +     $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(STRIP) $@.tmp
> >  endif
> >       rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
> > +     mv -f $@.tmp $@
> >  ifeq ($(CONFIG_XEN_IBT),y)
> >       $(SHELL) $(srctree)/tools/check-endbr.sh $@
> >  endif
>
> I see $@.tmp here, but no sign of xen-syms. Did you submit a stake patch? Am
> I missing something?
>

I don't know what a "stake patch" is.
xen-syms.efi (that is $(TARGET)-syms.efi in the Makefile) is not a
target of this rule so if the rule fails it will be generated again.

> I also think the mv should sit ahead of the cleaning-up rm.
>

Are you sure?
Usually you want it as the last command so any failure won't create
the target. For instance here if check-endbr.sh is failing the target
is still created and next make command will succeed.

> Jan
>
> Jan

Frediano


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 16:56:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 16:56:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157165.1486057 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH3Ha-00021e-2h; Thu, 06 Nov 2025 16:56:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157165.1486057; Thu, 06 Nov 2025 16: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 1vH3Ha-00021X-05; Thu, 06 Nov 2025 16:56:22 +0000
Received: by outflank-mailman (input) for mailman id 1157165;
 Thu, 06 Nov 2025 16: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) (envelope-from
 <SRS0=C3PD=5O=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vH3HY-00021P-GN
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 16:56:20 +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 7961b939-bb31-11f0-980a-7dc792cee155;
 Thu, 06 Nov 2025 17:56:02 +0100 (CET)
Received: from CY8PR19CA0017.namprd19.prod.outlook.com (2603:10b6:930:44::21)
 by LV9PR12MB9758.namprd12.prod.outlook.com (2603:10b6:408:2bd::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.14; Thu, 6 Nov
 2025 16:55:58 +0000
Received: from CY4PEPF0000FCC4.namprd03.prod.outlook.com
 (2603:10b6:930:44:cafe::4f) by CY8PR19CA0017.outlook.office365.com
 (2603:10b6:930:44::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.12 via Frontend Transport; Thu,
 6 Nov 2025 16:55:55 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CY4PEPF0000FCC4.mail.protection.outlook.com (10.167.242.106) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9298.6 via Frontend Transport; Thu, 6 Nov 2025 16:55:57 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Thu, 6 Nov
 2025 08:55:57 -0800
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, 6 Nov
 2025 10:55:56 -0600
Received: from [172.27.250.45] (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, 6 Nov 2025 08:55:55 -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: 7961b939-bb31-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hBZbHEOJ/AdnaJXfoMKKe0ZwqyQg6nVU/EUObeUPDi4RsrixQtvfOyAn2Z6eS6iNxPV4Y50GSCxfVaAHXPLrfEg3VyRqGkT7iIFjH+j2qn9ZiSeQswNl4CHzo4+Mj4XRDFEAALLMRJIMpVQx83QahptDLtF16B1HvimtHOWUF+J892O3rWg37DNnK1rybTNtVhXiNWb/uUE4KGrqa5sLCUYzvyNhXchZfkZWa57cOJIU8C+KaTwJC86AV1p1YweuGadpuvv4i8ySTcg+I6JH+bJDdqR+mqh8DMrcrIgIO6VJy+NfUA6jIqbRaOrdCmGD8dzrJzh5b4HU/McgjcYubQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3E5u4GUjTVwgGqTVNEWdDcgc4DO16VL8hdyYUTB+vlA=;
 b=LFhBXFw2uQtF0euW03KHDmwNxr6CysjafdzALleWTBmxS4bCA811aju5TxgmbQKhK4keMNmxXvjbKYa5N/969yzHCWW7+dKTTTI3pSgd2HMQeSIhJpUVG7ySuF7g9tlTn1rejL8MlNX5UfVYNOY10K4rLTr+4pq7FDHzuZWz0XK94M9CFUdGxZl+dOJU83QQiGTPFBX/PrlYin8uHN7NCzutXdWfhDt2+VmFCmQfrNc6cl0op/6EXwPoh5w023javkilRhN6TfuJy8FZ3QFMzOvY3n+dC/HsBFM2Er00wOxSHFEo+W9nYxYHlpEifS7EbM7xg4G0jFJcxlIJDfqb7w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3E5u4GUjTVwgGqTVNEWdDcgc4DO16VL8hdyYUTB+vlA=;
 b=WC9UCMShGtFK58C0818ycj9gfywxKsn2AJCWcvRCKsky0XQ7AFe/lGMdXc048a9qC6iGinAyC4doA/+b6br0RXKvG18G9MfxTzRrwLZHL7ve9DcJtDt86myKQU80G+TJi/876NC8Dgd9Y3GhDWjS3oobbtfcs7EpkkuIUBp72jI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <0217b1ff-2c33-43ae-adbc-d665c881473d@amd.com>
Date: Thu, 6 Nov 2025 11:55:57 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen/x86: guest_access: optimize raw_x_guest() for PV
 and HVM combinations
To: Grygorii Strashko <grygorii_strashko@epam.com>, Teddy Astie
	<teddy.astie@vates.tech>, <xen-devel@lists.xenproject.org>, Jan Beulich
	<jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <alejandro.garciavallejo@amd.com>
References: <20251031212058.1338332-1-grygorii_strashko@epam.com>
 <434d9ce4-e5e1-453d-84b7-e21e66d0c5a3@vates.tech>
 <b012c6c3-fb8d-4336-922f-f40bc43eb2b5@epam.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <b012c6c3-fb8d-4336-922f-f40bc43eb2b5@epam.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB04.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000FCC4:EE_|LV9PR12MB9758:EE_
X-MS-Office365-Filtering-Correlation-Id: 893113d0-baf4-41e8-8a90-08de1d555b62
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MzR1UzdWQk5VM1htZXhkbTBiNngvdCszcUlBd3VnS0I3ZWprZklDSCs2citI?=
 =?utf-8?B?SGN1c20wZEhKa0MyaEcwTzVQQWxOR1pzNDV2anE0UUI3UUxQcHpnWXBjMnMz?=
 =?utf-8?B?MjV5UjErZzdyU0VIaHZSYTNZQTJMY2RGVVYra3I1L1FRbnAzVTREQTNTNnps?=
 =?utf-8?B?cFVsYmppYjdhdnhlUGpqRVhBRkY1USsyQWloZjA5dXFoMGp6ZXYyb1gwd1RU?=
 =?utf-8?B?eVRFT3hjSFp3OXQwbjVQVWZGSGJJeWZrMXEwbmVLRXNCSWhvSGJETytYZitV?=
 =?utf-8?B?WXd6aGZwSkhnOVJHR0VLTjRTdTlmY0tncFdqOVZJaHVTOHdVV0RjT3FSa1Q4?=
 =?utf-8?B?QVh1am0yeVBKdkVhTmZJbVNWR3BhMFRyeEdTRnR2d21qQmQzdENkREZha3N6?=
 =?utf-8?B?ZzNKOFRlUE1QcFBkSkNnMUc4UWdwanNkaHJ1Ukw2ajY5RUpKenErU1RyQ21H?=
 =?utf-8?B?YmQxS21IbE5XakZtbUUvMSt4YWVtQTUxUHF6bXloV3JocHFXbFh0aEdWbGR4?=
 =?utf-8?B?dkFIWHN5WkM1WGFmakZVWGRBbzhBbHVVWkJLeFlzUmR0V0JZZThLbEU3SnhJ?=
 =?utf-8?B?T09IVHJKems4bXBNVm1WNkFUZm9Dak03TDdhTXpSTCtkOEdYdU02NCtyN1Nm?=
 =?utf-8?B?MUtJMGFrMGxXaWhKSlRLM3BSWWpKREozclpDYVg3aGtReXZIaFZaUGtrTExU?=
 =?utf-8?B?WWdMRTRBYzBjZjNqaW5UUWROVThLbXhOVER4dVFudGZDeW9Jd1VwRXFPVVRR?=
 =?utf-8?B?b0pESlhzOWRnRVFqZ3FpRTNSUEtickhYemF3MTFGcGRrazY2SXluektqdDhO?=
 =?utf-8?B?SGw1TDhJSWI3dEx0K2k0YzJzUUVJaGJNbmR4R3Y0Uy9TT2k0UkREbENlVFpK?=
 =?utf-8?B?dkdicHJ1U0VoejNJeEdMZmNGQ3JTWUx3alQzSWJ2WlBPMkpsWUtJM0pnbkJq?=
 =?utf-8?B?OFpucDhHUnRDY1ZEdU9DUHBrZGxxLzdidHczNTh1Vks5R28vN0k4ZVJUREgz?=
 =?utf-8?B?aWI4MkowSDA3TUdadG42K1pRajVvNDgwMno3TGkxRHd2RCt4cWNqZEI4WXlL?=
 =?utf-8?B?SUlGc2hDcjBueXNxN1g2SThPNWU5WUVYaGozanlFcEJGNFdPVGlxUWFUSDJk?=
 =?utf-8?B?TlIxT2kwcGN3eG5MbXR6dmkyeWlvUEhHc0NKNXdxU1Z3UUF0a3VHMWR3Z3N3?=
 =?utf-8?B?UXRPRkZJTEpCM3RueVFNZzNyMlAyUkFSTlo4SWpraWVZYmR6d1FGTmZ5QWR6?=
 =?utf-8?B?Z0k0M2QvMFhEYWZUZnVJK0hoSFo3YmUrUDJaSW5YV21ad0lRdkxoZENsNk1S?=
 =?utf-8?B?S2JFd1VKQ0xDaVROblpVT3M5MlZBZFZMaEZyeURyL1dlb2U4ZlpmQnFvdEFV?=
 =?utf-8?B?Z3FQekhZa0hlODlSa0lBTnUxR1lnZ0dJS1ducEduaXl6dzc1TCtDYUtXNUhR?=
 =?utf-8?B?d1hwUUhoZWRyN3g1ajlmMmpQSG5UcDQ5UXMzWGcvUXN5bEFndGJPOFFycGpL?=
 =?utf-8?B?TWhJT1VKb3p3TVJvelYzKzY2eDF2NGsyRGc1RWptKytaNkhWRE1xaDY5WW5r?=
 =?utf-8?B?dmptOUdSZ3prTXNuOXRPZ29OM05MU3RTRW5HZTdvcVlPZ0o4djVkWndRWXNX?=
 =?utf-8?B?dUpNaHZLcFZLMEkwTFNEd3JlWWhxbTA2RGJDYit2NXBrY1I3M2IxbStXSXBo?=
 =?utf-8?B?bWN5dysrZ20wWlF3ZE5jT0xmTm5kaFhGeC8rSnRmTlc0aVFZM3o5VjdZVm1n?=
 =?utf-8?B?RUJMcGcvQ1Fra2VVTWhlZXJLZGkzMndFUWdhdVJoOEhqT0N1czVoYVo3NkZJ?=
 =?utf-8?B?dDd5TVpKeXBaRzRFUU13S3FNc2FFT2VhaUdPMVRod2JpYkIrVjY3QStGV1RO?=
 =?utf-8?B?OG9IQjIxVnUvYjAzbk1VQXY5dm9VUDRvRXlmYmdySytyQVA2MUR5NmIra0FE?=
 =?utf-8?B?cDdCeHhKNTJ1NXVRU0VsK0dLYUlDcmx4bVpSRzI0akVWUGxhSlpBbnpOcTZE?=
 =?utf-8?B?ZzFFbDhzdW9jVkVRa3JZeDlCK2VadHFkdytUaHh3OTAyby82ZmxCRWtNSU04?=
 =?utf-8?B?Z3luL2wybkZVVzRmdSt6ejJydlI1U3gvdFhrTUtpeU9BbzFaRC9PWSswbGNr?=
 =?utf-8?Q?S7+A=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2025 16:55:57.4867
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 893113d0-baf4-41e8-8a90-08de1d555b62
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000FCC4.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV9PR12MB9758

On 2025-11-06 11:33, Grygorii Strashko wrote:
> Hi Teddy, Jan,
> 
> On 06.11.25 17:57, Teddy Astie wrote:
>> Le 31/10/2025 Ã  22:25, Grygorii Strashko a Ã©critÂ :
>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>
>>> Xen uses below pattern for raw_x_guest() functions:
>>>
>>> define raw_copy_to_guest(dst, src, len)Â Â Â Â Â Â Â  \
>>> Â Â Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>> Â Â Â Â Â Â  copy_to_user_hvm((dst), (src), (len)) :Â Â Â  \
>>> Â Â Â Â Â Â  copy_to_guest_pv(dst, src, len))
>>>
>>> How this pattern is working depends on CONFIG_PV/CONFIG_HVM as:
>>> - PV=y and HVM=y
>>> Â Â Â  Proper guest access function is selected depending on domain type.
>>> - PV=y and HVM=n
>>> Â Â Â  Only PV domains are possible. is_hvm_domain/vcpu() will constify 
>>> to "false"
>>> Â Â Â  and compiler will optimize code and skip HVM specific part.
>>> - PV=n and HVM=y
>>> Â Â Â  Only HVM domains are possible. is_hvm_domain/vcpu() will not be 
>>> constified.
>>> Â Â Â  No PV specific code will be optimized by compiler.
>>> - PV=n and HVM=n
>>> Â Â Â  No guests should possible. The code will still follow PV path.
>>>
>>> Rework raw_x_guest() code to use required functions explicitly for each
>>> combination of CONFIG_PV/CONFIG_HVM with main intention to optimize 
>>> code for
>>> (PV=n and HVM=y) case.
>>>
>>> For the case (PV=n and HVM=n) empty stubs are created which return (1)
>>> indicating failure. Hence, no guests should possible in this case -
>>> which means no access to guest memoryÂ  should ever happen.
>>> The two calls of __raw_copy_to_guest() in common/domain.c- 
>>> >update_runstate_area()
>>> are fixed for this case by explicitly cast the return value to void
>>> (MISRA C Rule 17.7).
>>>
>>> Finally build arch/x86/usercopy.c only for PV=y.
>>>
>>> The measured (bloat-o-meter) improvement for (PV=n and HVM=y) case is:
>>> Â Â Â  add/remove: 0/10 grow/shrink: 2/90 up/down: 163/-30932 (-30769)
>>> Â Â Â  Total: Before=1937113, After=1906344, chg -1.59%
>>>
>>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>> ---
>>> Â Â  xen/arch/x86/MakefileÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â  2 +-
>>> Â Â  xen/arch/x86/include/asm/guest_access.h | 38 +++++++++++++++++++++ 
>>> ++++
>>> Â Â  xen/common/domain.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 10 ++++---
>>> Â Â  3 files changed, 45 insertions(+), 5 deletions(-)
>>>

>>
>> Alternatively, we can make all the raw_* functions `static inline` and
>> have something like this which should have the same effect with much
>> less redundancy.
>>
>> static inline
>> unsigned int raw_copy_to_user_hvm(void *to, const void *from,
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned int len)
>> {
>> Â Â Â Â Â  if ( IS_ENABLED(CONFIG_HVM) &&
>> Â Â Â Â Â Â Â Â Â Â  (!IS_ENABLED(CONFIG_PV) || is_hvm_vcpu(current) )
>> Â Â Â Â Â Â Â Â  copy_to_user_hvm(to, from, len);
>> Â Â Â Â Â  else if ( IS_ENABLED(CONFIG_PV) )
>> Â Â Â Â Â Â Â Â  copy_to_guest_pv(to, from, len);
>  Â Â Â Â else
>  Â Â Â Â Â Â Â  return len;
>> }
> 
> Can try.

Yes, I was thinking something like Teddy suggested:

#define raw_copy_to_guest(dst, src, len)        \
         (is_hvm_vcpu(current) ? copy_to_user_hvm(dst, src, len) :
          is_pv_vcpu(current) ? copy_to_guest_pv(dst, src, len) :
          fail_copy(dst, src, len))

But that made the think the is_{hvm,pv}_{vcpu,domain}() could be 
optimized for when only 1 of HVM or PV is enabled.

Regards,
Jason

xen: Optimize is_hvm/pv_domain() for single domain type

is_hvm_domain() and is_pv_domain() hardcode the false conditions for
HVM=n and PV=n, but they still leave the XEN_DOMCTL_CDF_hvm flag
checking.  When only one of PV or HVM is set, the result can be hard
coded since the other is impossible.  Notably, this removes the
evaluate_nospec() lfences.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
Untested.

HVM=y PV=n bloat-o-meter:

add/remove: 3/6 grow/shrink: 19/212 up/down: 3060/-60349 (-57289)

Full bloat-o-meter below.
---
  xen/include/xen/sched.h | 18 ++++++++++++++----
  1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index f680fb4fa1..12f10d9cc8 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -1176,8 +1176,13 @@ static always_inline bool 
is_hypercall_target(const struct domain *d)

  static always_inline bool is_pv_domain(const struct domain *d)
  {
-    return IS_ENABLED(CONFIG_PV) &&
-        evaluate_nospec(!(d->options & XEN_DOMCTL_CDF_hvm));
+    if ( !IS_ENABLED(CONFIG_PV) )
+        return false;
+
+    if ( IS_ENABLED(CONFIG_HVM) )
+        return evaluate_nospec(!(d->options & XEN_DOMCTL_CDF_hvm));
+
+    return true;
  }

  static always_inline bool is_pv_vcpu(const struct vcpu *v)
@@ -1218,8 +1223,13 @@ static always_inline bool is_pv_64bit_vcpu(const 
struct vcpu *v)

  static always_inline bool is_hvm_domain(const struct domain *d)
  {
-    return IS_ENABLED(CONFIG_HVM) &&
-        evaluate_nospec(d->options & XEN_DOMCTL_CDF_hvm);
+    if ( !IS_ENABLED(CONFIG_HVM) )
+        return false;
+
+    if ( IS_ENABLED(CONFIG_PV) )
+        return evaluate_nospec(d->options & XEN_DOMCTL_CDF_hvm);
+
+    return true;
  }

  static always_inline bool is_hvm_vcpu(const struct vcpu *v)
-- 
2.51.1


HVM=y PV=n bloat-o-meter:

add/remove: 3/6 grow/shrink: 19/212 up/down: 3060/-60349 (-57289)
Function                                     old     new   delta
__alt_instructions_end                         2     896    +894
__stop___pre_ex_table                         40     664    +624
increase_reservation                           -     418    +418
do_memory_op                               11026   11404    +378
decrease_reservation                           -     360    +360
x86_emulate                               217169  217338    +169
x86_msr_copy_to_buffer                       117     177     +60
__start_bug_frames_0                           -      40     +40
pt_irq_destroy_bind                         1490    1515     +25
map_pages_to_xen                            4284    4300     +16
domain_cpu_policy_changed                     95     108     +13
sched_init_vcpu                             1621    1630      +9
is_memory_hole                               105     113      +8
hvm_save                                     549     557      +8
pv_soft_rdtsc                                 62      69      +7
elf_load_image                                84      91      +7
console_send                                 262     268      +6
wmemchr                                       58      63      +5
map_grant_ref                               5410    5415      +5
__start_xen                                 8273    8277      +4
p2m_pod_init                                 138     141      +3
pending_requeue                              635     636      +1
set_time_scale                                93      91      -2
do_debug                                     391     389      -2
handle_iomem_range                           171     168      -3
fill_vmsr_data                               424     421      -3
p2m_pod_offline_or_broken_hit               1720    1716      -4
allocate_pirq                                480     476      -4
subpage_mmio_find_page                        68      63      -5
x86_cpu_policy_fill_native                   999     991      -8
recalculate_cpuid_policy                     868     860      -8
irq_load_pci                                 211     201     -10
local_time_calibration                       440     429     -11
ioreq_server_add_vcpu_all                    199     188     -11
hvm_get_mem_pinned_cacheattr                 233     222     -11
symbols_offsets                            16856   16844     -12
send_guest_pirq                              386     374     -12
pt_restore_timer                             171     158     -13
p2m_pod_zero_check_superpage                1251    1238     -13
inject_vmce                                  208     195     -13
amd_vpmu_save                                278     265     -13
time_resume                                  324     310     -14
vmcb_dump                                    300     285     -15
pirq_cleanup_check                            97      82     -15
init_hypercall_page                           61      46     -15
init_domain_irq_mapping                      191     176     -15
cpu_schedule_callback                        549     534     -15
__hvm_copy                                   695     680     -15
fixup_eoi                                    175     159     -16
evtchn_destroy_final                         171     155     -16
context_switch                               703     687     -16
__stop_bug_frames_1                         3672    3656     -16
p2m_init_one                                 203     186     -17
p2m_init                                     133     116     -17
p2m_final_teardown                            60      43     -17
iommu_domain_init                            251     234     -17
hvmemul_write_cache                          938     921     -17
hvm_do_IRQ_dpci                              256     239     -17
domain_update_node_aff                       387     370     -17
domain_set_time_offset                        41      24     -17
cleanup_domain_irq_mapping                    61      44     -17
arch_evtchn_bind_pirq                        142     125     -17
arch_domain_destroy                          130     113     -17
alloc_vcpu_struct                             58      41     -17
hvm_get_guest_time_fixed                     139     120     -19
hvm_assert_evtchn_irq                        183     164     -19
__context_switch                             539     520     -19
setup_io_bitmap                              123     103     -20
vm_event_toggle_singlestep                    65      44     -21
show_registers                               626     605     -21
show_execution_state                         508     487     -21
p2m_pod_get_mem_target                       728     707     -21
ioreq_server_get_frame                       333     312     -21
get_free_pirqs                               188     167     -21
arch_vcpu_destroy                             93      72     -21
amd_vpmu_destroy                              90      69     -21
shadow_domain_init                            63      41     -22
p2m_mem_access_sanity_check                   71      49     -22
hvm_domain_use_pirq                           50      28     -22
dump_irq_info                                495     473     -22
tsc_get_info                                 230     207     -23
hvm_set_callback_via                         280     257     -23
vcpu_mark_events_pending                      50      26     -24
dump_softtsc                                 511     487     -24
dump_pageframe_info                          527     503     -24
arch_pci_clean_pirqs                         347     323     -24
vmce_enable_mca_cap                          125     100     -25
msixtbl_init                                 100      75     -25
guest_flush_tlb_flags                         46      21     -25
domain_get_irq_dpci                           54      29     -25
arch_domain_creation_finished                 48      23     -25
unmmap_broken_page                           287     261     -26
p2m_pod_active                               391     365     -26
gtsc_to_gtime                                 49      23     -26
domain_relinquish_resources                  721     695     -26
do_vm_assist                                 141     113     -28
vmce_restore_vcpu                            160     131     -29
unmap_domain_pirq_emuirq                     255     226     -29
construct_dom                                206     177     -29
arch_domain_soft_reset                       892     863     -29
get_free_pirq                                240     210     -30
vm_event_fill_regs                          1280    1248     -32
paging_gva_to_gfn                            297     265     -32
evtchn_reset                                 818     786     -32
map_domain_emuirq_pirq                       558     524     -34
physdev_unmap_pirq                           686     651     -35
cpu_policy_updated                            35       -     -35
do_IRQ                                      1496    1459     -37
alloc_pirq_struct                             96      59     -37
iommu_unmap                                  657     619     -38
iommu_map                                    682     644     -38
evtchn_close                                1685    1647     -38
xenctl_bitmap_to_bitmap                      274     235     -39
amd_vpmu_load                                521     482     -39
iommu_free_pgtables                          358     318     -40
dom0_setup_permissions                      3762    3722     -40
evtchn_destroy                               479     438     -41
arch_do_multicall_call                        52      10     -42
symbols_names                              50060   50016     -44
p2m_teardown                                 945     901     -44
_put_page_type                               667     623     -44
hvmemul_read_cache                           581     536     -45
vcpu_block                                   156     109     -47
safe_copy_string_from_guest                  169     122     -47
map_range                                    508     461     -47
getdomaininfo                                695     648     -47
physdev_map_pirq                             921     873     -48
gnttab_release_mappings                     1447    1399     -48
guest_rdmsr                                 1972    1923     -49
x86_msr_copy_from_buffer                     280     230     -50
relinquish_memory                           1212    1161     -51
p2m_set_mem_access                           838     787     -51
p2m_pod_demand_populate                     2238    2187     -51
hvmemul_rep_outs                             680     629     -51
compat_set_cx_pminfo                         539     488     -51
tsc_set_info                                 480     428     -52
monitor_domctl                               600     547     -53
default_initialise_vcpu                      208     154     -54
collect_time_info                            336     282     -54
xenmem_add_to_physmap                        706     651     -55
hvm_set_mem_pinned_cacheattr                 772     717     -55
hap_track_dirty_vram                        1331    1276     -55
arch_domain_create                           998     943     -55
ucode_update_hcall                           202     146     -56
copy_leaf_to_buffer                          160     104     -56
relinquish_p2m_mapping                       988     930     -58
gtime_to_gtsc                                 81      23     -58
arch_hwdom_irqs                              132      74     -58
x86_cpuid_copy_from_buffer                   760     701     -59
set_px_pminfo                                851     792     -59
set_cx_pminfo                               1675    1616     -59
do_dm_op                                     191     132     -59
hap_set_allocation                           510     450     -60
domain_get_maximum_gpfn                       79      19     -60
_handle_iomem_range                          234     173     -61
compat_dm_op                                 261     199     -62
paging_free_log_dirty_bitmap                1653    1589     -64
memcpy_to_guest_ring                         409     344     -65
efi_compat_get_info                          993     928     -65
smt_up_down_helper                           437     370     -67
arch_set_info_guest                          402     335     -67
guest_wrmsr                                 2354    2286     -68
read_console_ring                            395     325     -70
vcpu_show_execution_state                    737     665     -72
hvm_save_one                                 798     726     -72
efi_get_info                                1028     948     -80
arch_initialise_vcpu                         197     110     -87
amd_vpmu_do_wrmsr                            905     816     -89
iommu_do_pci_domctl                         2051    1961     -90
compat_argo_op                               405     313     -92
_get_page_type                              1439    1347     -92
do_get_pm_info                               998     902     -96
p2m_pod_empty_cache                         1123    1020    -103
vpmu_do_interrupt                            965     851    -114
p2m_pod_set_cache_target                     816     701    -115
gwstrlen                                     284     168    -116
do_paging_domctl_cont                        879     758    -121
mem_access_memop                             986     859    -127
copy_msr_to_buffer                           138       -    -138
get_reserved_device_memory                   404     259    -145
do_pm_op                                    2731    2577    -154
p2m_set_mem_access_multi                    1023     861    -162
do_xenpmu_op                                1690    1524    -166
do_vcpu_op                                   736     568    -168
bitmap_to_xenctl_bitmap                      477     309    -168
do_poll                                      900     731    -169
subarch_memory_op                            720     550    -170
elf_memcpy                                   170       -    -170
arch_vcpu_create                             392     221    -171
do_console_io                               1069     887    -182
gnttab_copy                                 1596    1396    -200
gnttab_unmap_grant_ref                       778     565    -213
gnttab_unmap_and_replace                     778     565    -213
update_runstate_area                         814     599    -215
acpi_set_pdc_bits                            450     235    -215
compat_arch_memory_op                        990     769    -221
__stop_bug_frames_2                        59456   59232    -224
compat_vcpu_op                               885     656    -229
pci_physdev_op                               865     626    -239
update_secondary_system_time                 462     217    -245
populate_physmap                            1220     970    -250
paging_domctl                               3240    2987    -253
gnttab_setup_table                          1337    1084    -253
gnttab_get_status_frames                    1624    1370    -254
symbols_token_index                       118952  118688    -264
vcpu_show_registers                          375      88    -287
efi_runtime_call                            2621    2333    -288
do_sched_op                                 1126     821    -305
efi_compat_runtime_call                     3036    2724    -312
compat_sched_op                             1147     835    -312
compat_common_vcpu_op                        803     416    -387
arch_get_info_guest                          899     512    -387
compat_multicall                            1201     792    -409
guest_cpuid                                 1835    1418    -417
do_multicall                                1165     725    -440
arch_do_sysctl                              1293     843    -450
common_vcpu_op                              1727    1276    -451
dm_op                                       3776    3282    -494
_einittext                                  1937    1439    -498
do_domctl                                   7108    6505    -603
show_guest_stack                             609       -    -609
do_hvm_op                                   4075    3440    -635
do_grant_table_op                           6666    6031    -635
arch_memory_op                              2888    2233    -655
do_argo_op                                  7164    6501    -663
compat_grant_table_op                       2491    1827    -664
__start___ex_table                          1696    1032    -664
do_xen_version                              2600    1906    -694
pmstat_get_cx_stat                          2660    1822    -838
__alt_call_sites_start                       892       -    -892
arch_do_domctl                              7351    6351   -1000
do_sysctl                                   5190    4074   -1116
do_event_channel_op                         4471    3074   -1397
compat_physdev_op                           4989    3552   -1437
do_physdev_op                               5142    3688   -1454
do_platform_op                              6428    4778   -1650
compat_platform_op                          6301    4623   -1678
compat_memory_op                            6803    5050   -1753
memory_exchange                             4128       -   -4128
__alt_instructions                         53802   33488  -20314
Total: Before=18446744073714933955, After=18446744073714876666, chg -0.00%


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 16:58:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 16:58:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157178.1486069 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH3K0-0002b9-LD; Thu, 06 Nov 2025 16:58:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157178.1486069; Thu, 06 Nov 2025 16: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 1vH3K0-0002b2-H5; Thu, 06 Nov 2025 16:58:52 +0000
Received: by outflank-mailman (input) for mailman id 1157178;
 Thu, 06 Nov 2025 16: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=DBCD=5O=gmail.com=ritesh.list@srs-se1.protection.inumbo.net>)
 id 1vH3Jz-0002aw-Iu
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 16:58:51 +0000
Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com
 [2607:f8b0:4864:20::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dda7d854-bb31-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 17:58:50 +0100 (CET)
Received: by mail-pl1-x630.google.com with SMTP id
 d9443c01a7336-2957850c63bso13823485ad.0
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 08:58:50 -0800 (PST)
Received: from dw-tp ([171.76.85.117]) by smtp.gmail.com with ESMTPSA id
 41be03b00d2f7-ba8f8c880c5sm3013244a12.6.2025.11.06.08.58.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 06 Nov 2025 08:58: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: dda7d854-bb31-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762448329; x=1763053129; darn=lists.xenproject.org;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:from:to:cc:subject:date:message-id:reply-to;
        bh=+mwdpEtZUkKLd4HieJ0n4xeeNKNrAgrCllkk+QdYNeo=;
        b=EXFAq5FC6EiJdyXngOQGFtEqWhqQHAxEp+L8+TzFOp/Gfbx48kEDRrmGlc10gkennq
         tIpqr7UNa5cUW818kSEk5Waw/QOIpAqwdsZHsjk9sPVEVAEllP9eDeIabNI+rsRAkE2L
         26DS+jpXKjam5OEYuEZK7UgCMrtVB8v9XD1mCYZSWeQyaLUwbPUOTj6VDILdaTRPy1lJ
         bvf2rdymeA/2LwYpq8wFrGGugB9mQK+4CWM3WOlQuVZnjvdwomZdePSVemgObkuLyjvO
         dU4BhyS7X9nrrD78p4cAYRP3DZT2yG0Nwyhi0XFlLwEnnxaLx0HUkjOh9reHEmGiJMGo
         RyKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762448329; x=1763053129;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=+mwdpEtZUkKLd4HieJ0n4xeeNKNrAgrCllkk+QdYNeo=;
        b=trcFTDK32mAYi2kDHyDEZ+QJ6C48wFlHGLE77/+wHlGM3FT0l9/vkRGm+zw42HKU06
         yzSFgO4S7PkA9AUHedZq/h67OpxRn+VwlP0s1FtUDYryBpB9YfAoA1nYAiIvNLT7wrR+
         bqvFrCLHS9l2ZnuI4YC+mpi/nIzgQvvkfxJeltZXLWc3HINrSDD02Dzt0FfqWXUQCXNE
         pxYFqc336HuAq43qH3kqmrldhhQRf6OHnvyEzCFUPhp2BdCZW0+8Sezso/SkkIxni9ME
         MpFhVm5J5i0PDnFr+SNB3Xy75PkgxS4/1uTlG7g9r/9qhDxMIeZdItDynJXNRzt43yGk
         oDMA==
X-Forwarded-Encrypted: i=1; AJvYcCWsPACbMlPdnGNsFVi1I3LyWLlEDPDW3AtvZurAusZkKQXwzcjlNBX0+xfrs65aMOk6WeC2JWLiD34=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzbEwAHWmDS0+4lPyXdnnszQhaRp5YhG2sFTxExkxhCUDJIq7CK
	/wlSWjiJjrj1C+NHqafNg3CK0uFIFcAybybSmKX1+k0VKaYvFC2Hv2B1
X-Gm-Gg: ASbGncuHandJ6Y7aaKktKaimlpumxt6wmZICkV+RBFdVDyyzZLSAIXftZc9YFmMGFpL
	12JV9VIGExHFlJj4APuEOV7dyPtsNrA61aT2bsZG+fI0Ays7nGnkwF9EgJilv+nITQHj85kby2q
	Tk197KA+aE3XAmvWdijVQovsfPvl9tKf8WDzG71ZLnXdLk1In+kdPB+flNk9fxMowhkhFs02w+v
	xANcqWp0T3wzXCZpBI48Qm916/64lIVs5izjZmzvrx0RXH7hr5Wvqqa0yFjZ7giNrGoCe642SMh
	CbEFpS727lR3S/NHbbZxO+RtMQhvJIoH4yMkSoM97bUAYf/dNcIhCruBUifOPZd2NGqT0mLtTq3
	hnTsQGMklHLfwOQVm5G2uGUaAQyZvpTZCexYOEQCEfiW/oVzeDwFeK19/2O5nCRXX4i9z5g==
X-Google-Smtp-Source: AGHT+IEmGC1fJcE4OAtV0Owu2fNKpRqQY3VzTeskRzxNQPbLVeyWOXOzToL4xIfj+nPDKGb1lmA/VA==
X-Received: by 2002:a17:902:ce07:b0:295:50f5:c0e3 with SMTP id d9443c01a7336-297c00b9141mr3517035ad.14.1762448328641;
        Thu, 06 Nov 2025 08:58:48 -0800 (PST)
From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org, linux-kernel@vger.kernel.org, 
	Andreas Larsson <andreas@gaisler.com>, Andrew Morton <akpm@linux-foundation.org>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov <bp@alien8.de>, 
	Catalin Marinas <catalin.marinas@arm.com>, Christophe Leroy <christophe.leroy@csgroup.eu>, 
	Dave Hansen <dave.hansen@linux.intel.com>, David Hildenbrand <david@redhat.com>, 
	"David S. Miller" <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>, 
	"H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>, 
	Juergen Gross <jgross@suse.com>, "Liam R. Howlett" <Liam.Howlett@oracle.com>, 
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>, Madhavan Srinivasan <maddy@linux.ibm.com>, 
	Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>, Mike Rapoport <rppt@kernel.org>, 
	Nicholas Piggin <npiggin@gmail.com>, Peter Zijlstra <peterz@infradead.org>, 
	Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>, 
	Thomas Gleixner <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>, 
	Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org, 
	linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org, 
	xen-devel@lists.xenproject.org, x86@kernel.org
Subject: Re: [PATCH v4 07/12] mm: enable lazy_mmu sections to nest
In-Reply-To: <50d1b63a-88d7-4484-82c0-3bde96e3207d-agordeev@linux.ibm.com>
Date: Thu, 06 Nov 2025 22:02:39 +0530
Message-ID: <87ikfn3yvs.ritesh.list@gmail.com>
References: <20251029100909.3381140-1-kevin.brodsky@arm.com> <20251029100909.3381140-8-kevin.brodsky@arm.com> <87ms5050g0.ritesh.list@gmail.com> <50d1b63a-88d7-4484-82c0-3bde96e3207d-agordeev@linux.ibm.com>
MIME-Version: 1.0
Content-Type: text/plain

Alexander Gordeev <agordeev@linux.ibm.com> writes:

> On Wed, Nov 05, 2025 at 02:19:03PM +0530, Ritesh Harjani wrote:
>> > + * in_lazy_mmu_mode() can be used to check whether the lazy MMU mode is
>> > + * currently enabled.
>> >   */
>> >  #ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>> >  static inline void lazy_mmu_mode_enable(void)
>> >  {
>> > -	arch_enter_lazy_mmu_mode();
>> > +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>> > +
>> > +	VM_WARN_ON_ONCE(state->nesting_level == U8_MAX);
>> > +	/* enable() must not be called while paused */
>> > +	VM_WARN_ON(state->nesting_level > 0 && !state->active);
>> > +
>> > +	if (state->nesting_level++ == 0) {
>> > +		state->active = true;
>> > +		arch_enter_lazy_mmu_mode();
>> > +	}
>> >  }
>> 
>> Some architectures disables preemption in their
>> arch_enter_lazy_mmu_mode(). So shouldn't the state->active = true should
>> happen after arch_enter_lazy_mmu_mode() has disabled preemption()? i.e.
>
> Do you have some scenario in mind that could cause an issue?
>
No not really. But that's a deviation from what previous arch hooks were
expecting. Although thinking this through - I don't have any usecase
where this can be a problem. 

But let me re-visit some of the code paths on ppc64 lazy mmu... 

Looking at the arch specific usecase I see we always do get_cpu_var()
for accessing the per-cpu batch array which disables preemption before
accessing the per-cpu structure.. This per-cpu structure is where we
batch pte updates... 

For e.g... 
  
    arch_enter_lazy_mmu_mode()
        hpte_need_flush()
            get_cpu_var()   // this takes care of preempt_disable() 
            adds vpns to per-cpu batch[i]
            put_cpu_var()   // 
    arch_leave_lazy_mmu_mode()

> IOW, what could go wrong if the process is scheduled to another
> CPU before preempt_disable() is called?

So from above - I don't think your sequence to update
   state->active = true 
before calling arch_enter hook should be a problem.
Based on above this looks mostly ok to me.

-ritesh


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 17:09:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 17:09:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157191.1486077 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH3Tv-0004Su-Fe; Thu, 06 Nov 2025 17:09:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157191.1486077; Thu, 06 Nov 2025 17:09:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH3Tv-0004Sn-D8; Thu, 06 Nov 2025 17:09:07 +0000
Received: by outflank-mailman (input) for mailman id 1157191;
 Thu, 06 Nov 2025 17:09:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=DBCD=5O=gmail.com=ritesh.list@srs-se1.protection.inumbo.net>)
 id 1vH3Tu-0004Sf-Ay
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 17:09:06 +0000
Received: from mail-pf1-x430.google.com (mail-pf1-x430.google.com
 [2607:f8b0:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4ba9ebd5-bb33-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 18:09:04 +0100 (CET)
Received: by mail-pf1-x430.google.com with SMTP id
 d2e1a72fcca58-781ea2cee3fso1204432b3a.0
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 09:09:04 -0800 (PST)
Received: from dw-tp ([171.76.85.117]) by smtp.gmail.com with ESMTPSA id
 d2e1a72fcca58-7b0c9c0874bsm68007b3a.16.2025.11.06.09.08.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 06 Nov 2025 09:09: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: 4ba9ebd5-bb33-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762448943; x=1763053743; darn=lists.xenproject.org;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:from:to:cc:subject:date:message-id:reply-to;
        bh=nxXbjl0HhdoITaZBDxLqmLJTjrhCiLD5WEPTG0leRLU=;
        b=bUNzifyOvRdYMcjnBh9LufTxEv4BHpFwksrnN/PxPYBUVJHiX/tLDRMvK6n8QBSEBh
         K5fTacBTat/bAheBjUq0cNc1mDuYzjVQQL2lm9Yk0Yq1LcGk9Mxv702ZPoVLq6rysATC
         x4BBZqcfBEiQuPA6+pK/uDipBpCgj9rjyyz7X+A+YrTU/1Ed1Xshj6OKYGxAv4YevLIF
         sfICZbhnnjlUReLUnQAHSO777tWtx0zL91qIy5BWVvE2DBcodvuitkXshEL5KYlBZTvg
         6UE6dGKu9vYea55iXApPKwqlHmNDIgQz4p5iZE98BXHs1pOrdoZAMitn/6AGbvf5AhMl
         HvQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762448943; x=1763053743;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=nxXbjl0HhdoITaZBDxLqmLJTjrhCiLD5WEPTG0leRLU=;
        b=TKXJSJN17XOUCil7iWiQvI95g4s9I2hAymarriT14QNjupPkbsFKDTG77KFxAdPDpy
         TChXWp/jhG3yMhfbKJ6KYjQjvWfXT/+EXrVJVRlhVKSzMVM9CO4YTI44qmL6vcyJvYxJ
         ZcMufV0dzPwuylG1c64GIQQ4CQi6WhKJ4EcWqvT6tMRU7P5l0XU7gpLYV4vmrTFaw2mY
         3yI3q68HtfbAqx8NXUY5WjG5MOMee4zAUR99GgstQgP5ci5so3VzZjmmVXNhxDRs6t6m
         OeBPGZR5yKXbJcwFarBoZbm4EMmakJqmDgHYj0IF7trLGy7JhjuRACyc58Wq7tfYNx6D
         JORg==
X-Forwarded-Encrypted: i=1; AJvYcCWEMEDwYx4gWbzCbLSXLLy1cz+lxsz7iBMp+tLLsMQMtS+VBoio///nX+DuqLeDWMzh5PPYUeNwUyE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzGaGodaSNIx+/8eFRmDYHY5SRtRoTEXiIO5losz0k+qD0Ve6dP
	0oG9pZMbYvYx4oAwtr8ofmyAU70FNFFQEnqeDtX3GFtnqZuKFVTx41ME
X-Gm-Gg: ASbGncvuikSv2vStsEpz12BhLXk9piRntKFbjbJawwGN+qjkjdSaLjVQ8bcjw+Fv2Qt
	69RJVqmyQ29fAgEW1s6OzprCF7oOEL6q4fOOeP/Q9fjrluqxaMTidiAFz7wPQjRINUsIQmPeYSb
	0EeDGNgv/R42Z4zlOhAbiZuqQxTG01EMJ8tVtK61HG0dNHzOISeytP2Mr6QZoZnEwK/tMrNDkhW
	H+C7iNeX4LOKPmF9x5RUPWt1O7TsJY6EJiojRKgihjjYFKfUHp3BMCtnvRt3wLSbMBKMo6qUtue
	+ADaitqwyYUxSYcr6+J1RDhvN8Ke2EWgWe0pAqgc3zxDJ4cvfv6IVSI0Z8bR3XN9pplRtPPjr5m
	sebU84Sg3R0pEi+F56mE4XiWjFplit2711LvSeIEPaIkleiH3EowKdg/EEO7KCTvveGdLfQ==
X-Google-Smtp-Source: AGHT+IGcGbtG/gxArci+CopvKuv0vsWkSHD0Cj0H8EsVfNgzuLLOXCCQpVWCS8AAZU2IHguSNAAo3Q==
X-Received: by 2002:aa7:88c2:0:b0:7a9:f465:f25 with SMTP id d2e1a72fcca58-7b0bdb856abmr331762b3a.27.1762448942695;
        Thu, 06 Nov 2025 09:09:02 -0800 (PST)
From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org, linux-kernel@vger.kernel.org, 
	Andreas Larsson <andreas@gaisler.com>, Andrew Morton <akpm@linux-foundation.org>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov <bp@alien8.de>, 
	Catalin Marinas <catalin.marinas@arm.com>, Christophe Leroy <christophe.leroy@csgroup.eu>, 
	Dave Hansen <dave.hansen@linux.intel.com>, David Hildenbrand <david@redhat.com>, 
	"David S. Miller" <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>, 
	"H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>, 
	Juergen Gross <jgross@suse.com>, "Liam R. Howlett" <Liam.Howlett@oracle.com>, 
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>, Madhavan Srinivasan <maddy@linux.ibm.com>, 
	Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>, Mike Rapoport <rppt@kernel.org>, 
	Nicholas Piggin <npiggin@gmail.com>, Peter Zijlstra <peterz@infradead.org>, 
	Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>, 
	Thomas Gleixner <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>, 
	Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org, 
	linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org, 
	xen-devel@lists.xenproject.org, x86@kernel.org
Subject: Re: [PATCH v4 07/12] mm: enable lazy_mmu sections to nest
In-Reply-To: <87ikfn3yvs.ritesh.list@gmail.com>
Date: Thu, 06 Nov 2025 22:31:27 +0530
Message-ID: <87h5v73xjs.ritesh.list@gmail.com>
References: <20251029100909.3381140-1-kevin.brodsky@arm.com> <20251029100909.3381140-8-kevin.brodsky@arm.com> <87ms5050g0.ritesh.list@gmail.com> <50d1b63a-88d7-4484-82c0-3bde96e3207d-agordeev@linux.ibm.com> <87ikfn3yvs.ritesh.list@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain

Ritesh Harjani (IBM) <ritesh.list@gmail.com> writes:

> For e.g... 
>   
>     arch_enter_lazy_mmu_mode()
>         hpte_need_flush()
>             get_cpu_var()   // this takes care of preempt_disable() 
>             adds vpns to per-cpu batch[i]
>             put_cpu_var()   // 
>     arch_leave_lazy_mmu_mode()
>

Sorry, here is the more accurate call sequence for previous email.

caller()... 
     arch_enter_lazy_mmu_mode()
     ptep_xxx_()
        pte_update()
             hpte_need_flush()
                get_cpu_var()   // this takes care of preempt_disable() 
                adds vpns to per-cpu batch[i]
                put_cpu_var()   // 
     arch_leave_lazy_mmu_mode()

-ritesh


From xen-devel-bounces@lists.xenproject.org Thu Nov 06 17:28:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 17:28:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157203.1486087 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH3m8-0007Lf-Ru; Thu, 06 Nov 2025 17:27:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157203.1486087; Thu, 06 Nov 2025 17:27:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH3m8-0007LY-PO; Thu, 06 Nov 2025 17:27:56 +0000
Received: by outflank-mailman (input) for mailman id 1157203;
 Thu, 06 Nov 2025 17:27: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=UYg1=5O=bounce.vates.tech=bounce-md_30504962.690cda96.v1-90cbc83fec594b17bba6f1470717002b@srs-se1.protection.inumbo.net>)
 id 1vH3m7-0007LP-AU
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 17:27:55 +0000
Received: from mail136-17.atl41.mandrillapp.com
 (mail136-17.atl41.mandrillapp.com [198.2.136.17])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ec253853-bb35-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 18:27:52 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4d2TfZ4zsmzPm0Pbn
 for <xen-devel@lists.xenproject.org>; Thu,  6 Nov 2025 17:27:50 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 90cbc83fec594b17bba6f1470717002b; Thu, 06 Nov 2025 17:27: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: ec253853-bb35-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1762450070; x=1762720070;
	bh=9daqLaAcXd7L3W3YEvEXe+f6WgQKerpTeM25B4WAubM=;
	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=nLGFI+iKAhwkX/6OBsS4+g4zVBscW4btXb/+6Mifcr8q3Fk0TZVXInC6Dyk/hulna
	 ek497/HoeWPJ3bFxQ96j0wAUi2J2NGF6b1Oj4pyBKleaNClXtut8hcRcwje7x5rppr
	 CeoqnWbEbFaUSQQ23IX1aMHhvJYuNm6KuKzWK90RdZI8P2srLDBi3OInCL2M8gaieH
	 FyhZ1yK0VM1+4XfQbQB/4GzTGwgIkOrNIN4Tx9jaVCBoTYNgO88I9jqn2RFGE50emr
	 uAIQJJWUuQn6HO/a+RNTYIdeqUeWwGYxi6lCps7YyP7CHOLtXMk1tzQ0iSi/nPwn3b
	 l7tnHfT959SZQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1762450070; x=1762710570; i=teddy.astie@vates.tech;
	bh=9daqLaAcXd7L3W3YEvEXe+f6WgQKerpTeM25B4WAubM=;
	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=WZbnf0Tq89BsmlIwZl9tsNDodN/u7DZUqSJeCK4zuyDlwGnsd2jwhycnb9Jy8lfiC
	 4G8VnrY87TcGVDj+r5sxupslFUTYK7Mrq41NXYaflQGOqAaBCWNnFabKGpK0kQJT7U
	 7WdgwrCf+L/F+uPYcE0zPDlcGJPjVTIHHy28vKHNL7JE9qAVLe9hbYIZh8G/3RL1BO
	 ZCRxXbBUP0PFBgF5huomWMBDNqo3vPgZWuj37gBPB2MqaFVHfQJUU5ePcdKhKXp438
	 CogIdcX4AsRmCO8jD3/C2pz++aR2x24Demykyt1TgqA7D7uJ65tm2BtjrkpSemFfsf
	 7QyOOlKwRWGhA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[XEN][PATCH]=20xen/x86:=20guest=5Faccess:=20optimize=20raw=5Fx=5Fguest()=20for=20PV=20and=20HVM=20combinations?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1762450068806
Message-Id: <ffb2ad53-c150-44e3-a0b8-7ed3473886f6@vates.tech>
To: "Jason Andryuk" <jason.andryuk@amd.com>, "Grygorii Strashko" <grygorii_strashko@epam.com>, xen-devel@lists.xenproject.org, "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, "Alejandro Vallejo" <alejandro.garciavallejo@amd.com>
References: <20251031212058.1338332-1-grygorii_strashko@epam.com> <434d9ce4-e5e1-453d-84b7-e21e66d0c5a3@vates.tech> <b012c6c3-fb8d-4336-922f-f40bc43eb2b5@epam.com> <0217b1ff-2c33-43ae-adbc-d665c881473d@amd.com>
In-Reply-To: <0217b1ff-2c33-43ae-adbc-d665c881473d@amd.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.90cbc83fec594b17bba6f1470717002b?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251106:md
Date: Thu, 06 Nov 2025 17:27:50 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 06/11/2025 =C3=A0 18:00, Jason Andryuk a =C3=A9crit=C2=A0:
> On 2025-11-06 11:33, Grygorii Strashko wrote:
>> Hi Teddy, Jan,
>>
>> On 06.11.25 17:57, Teddy Astie wrote:
>>> Le 31/10/2025 =C3=A0 22:25, Grygorii Strashko a =C3=A9crit=C2=A0:
>> Can try.
> 
> Yes, I was thinking something like Teddy suggested:
> 
> #define raw_copy_to_guest(dst, src, len)=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 (is_hvm_vcpu(current) ? copy_=
to_user_hvm(dst, src, len) :
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 is_pv_vcpu(current) ? c=
opy_to_guest_pv(dst, src, len) :
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 fail_copy(dst, src, len=
))
> 
> But that made the think the is_{hvm,pv}_{vcpu,domain}() could be 
> optimized for when only 1 of HVM or PV is enabled.
> 
> Regards,
> Jason
> 
> xen: Optimize is_hvm/pv_domain() for single domain type
> 
> is_hvm_domain() and is_pv_domain() hardcode the false conditions for
> HVM=3Dn and PV=3Dn, but they still leave the XEN_DOMCTL_CDF_hvm flag
> checking.=C2=A0 When only one of PV or HVM is set, the result can be hard
> coded since the other is impossible.=C2=A0 Notably, this removes the
> evaluate_nospec() lfences.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> ---
> Untested.
> 
> HVM=3Dy PV=3Dn bloat-o-meter:
> 
> add/remove: 3/6 grow/shrink: 19/212 up/down: 3060/-60349 (-57289)
> 
> Full bloat-o-meter below.
> ---
>  =C2=A0xen/include/xen/sched.h | 18 ++++++++++++++----
>  =C2=A01 file changed, 14 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
> index f680fb4fa1..12f10d9cc8 100644
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -1176,8 +1176,13 @@ static always_inline bool 
> is_hypercall_target(const struct domain *d)
> 
>  =C2=A0static always_inline bool is_pv_domain(const struct domain *d)
>  =C2=A0{
> -=C2=A0=C2=A0=C2=A0 return IS_ENABLED(CONFIG_PV) &&
> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 evaluate_nospec(!(d->options =
& XEN_DOMCTL_CDF_hvm));
> +=C2=A0=C2=A0=C2=A0 if ( !IS_ENABLED(CONFIG_PV) )
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return false;
> +
> +=C2=A0=C2=A0=C2=A0 if ( IS_ENABLED(CONFIG_HVM) )
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return evaluate_nospec(!(d->o=
ptions & XEN_DOMCTL_CDF_hvm));
> +
> +=C2=A0=C2=A0=C2=A0 return true;
>  =C2=A0}
> 
>  =C2=A0static always_inline bool is_pv_vcpu(const struct vcpu *v)
> @@ -1218,8 +1223,13 @@ static always_inline bool is_pv_64bit_vcpu(const 
> struct vcpu *v)
> 
>  =C2=A0static always_inline bool is_hvm_domain(const struct domain *d)
>  =C2=A0{
> -=C2=A0=C2=A0=C2=A0 return IS_ENABLED(CONFIG_HVM) &&
> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 evaluate_nospec(d->options & =
XEN_DOMCTL_CDF_hvm);
> +=C2=A0=C2=A0=C2=A0 if ( !IS_ENABLED(CONFIG_HVM) )
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return false;
> +
> +=C2=A0=C2=A0=C2=A0 if ( IS_ENABLED(CONFIG_PV) )
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return evaluate_nospec(d->opt=
ions & XEN_DOMCTL_CDF_hvm);
> +
> +=C2=A0=C2=A0=C2=A0 return true;
>  =C2=A0}
> 
>  =C2=A0static always_inline bool is_hvm_vcpu(const struct vcpu *v)

While I like the idea, it may slightly impact some logic as special 
domains (dom_xen and dom_io) are now considered HVM domains (when !PV && 
HVM) instead of "neither PV nor HVM".
We want at least to make sure we're not silently breaking something 
elsewhere.

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 Nov 06 17:40:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 17:40:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157215.1486097 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH3xz-0001n2-Rf; Thu, 06 Nov 2025 17:40:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157215.1486097; Thu, 06 Nov 2025 17:40: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 1vH3xz-0001mv-Oj; Thu, 06 Nov 2025 17:40:11 +0000
Received: by outflank-mailman (input) for mailman id 1157215;
 Thu, 06 Nov 2025 17: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=0oVY=5O=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vH3xy-0001mn-8u
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 17:40: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 a34dde8f-bb37-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 18:40:08 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AM7PR03MB6467.eurprd03.prod.outlook.com (2603:10a6:20b:1bb::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Thu, 6 Nov
 2025 17:40:05 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9298.006; Thu, 6 Nov 2025
 17:40: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: a34dde8f-bb37-11f0-9d17-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DKUO/woZbew5nZKYwjogJ3CImFEfLvCE4NNFiygZ1zeAhFQnYghk4pScRvq0/yp+4rE3YwmqpeFTwap52vq4KTUSYsCdA8/lOazCy8NO0Y791P/Yxf3zfM8zSprHEKLsO0KzXoeJ9L1nCoMmvqYZsCZvX9YbfOpsaZWENsRF1ggjyWyeYRnxUKa3UNqyivua6odYFvt/j4JyzNPLPEUWsp4HCvp5cqLfwKyZdZ+mZiZoKacOwK7veB7eEOD0B8NIluWArfSfLyVmxRChHzF3TRSJ8yyIUQURo/KNIHvekGtA1lM7H4xXYWpVdlwkHNa/CN3ydpf/V//JEvCZyoTc5g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bTQ2226jWisS5m7AmTVSJ+r9i8KqXvixAE71IYtDgAE=;
 b=uXfBnMf2BKpk/11RF69Qp/4EIIK+bC00UZpBfcKqYTOtkpmDRt4MGJXeKnBlCzAAq9IoxA4MP2XR8eL7AFwnTimoj0R4Wc8/K22XrO7EsWcyUpybqnmflMlwVmgjBDHTXtFlg/dhGKUBoAV6oU8YsobP1pYtMq6O1bfuRqfwx4QO5y/SEbeqDA7SDXAldx7V+HZlhqVdbw8aOVH2C3sdSf6TVaYAz08LDBfoYcxnky/f6/kIwlPDEUquaEHfLzpuvwko813LSNQ6+8qooGoLlTld90F0F4eKFhkjL0VI4yxO5O46WIlohBWYvnNfyy+PM896GyUyT/3tHt8+stRK+A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bTQ2226jWisS5m7AmTVSJ+r9i8KqXvixAE71IYtDgAE=;
 b=DJCWbGXDVRe5+R4sH4RjXw4ZhwoP+gTlgPOwTDp/BBn0jTN1XUOUxlhr4aUeon+fEPFkoX43vXttrsxuOtAOO8dH+p9nwi5OvySzjcvQohafnR4dMyX26o/PbJQx3srBy9T1GjJqlRNBaIFZtAq1yB3QEVHMu3pk86c3k6VCViTMKJnIYAPmmqG2OULdgeMesaatzKxIp4tVaeDUn+PmnTDJEUVDn0ndS6ZWxzlt/W85fAg1UNNlXrvbQQfXbJ/ob97gLNSN1y3XpT58oRoaknqCyN/F6zSQOdsYLqR0Z1N41SLF1bOKHyavLfKq9NhG+EoMPFSQvC7tLuYgp9OnvQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <01ad9a85-ff61-445c-97d4-076f9a81b649@epam.com>
Date: Thu, 6 Nov 2025 19:40:03 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen/x86: guest_access: optimize raw_x_guest() for PV
 and HVM combinations
To: Teddy Astie <teddy.astie@vates.tech>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org,
 Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>
References: <20251031212058.1338332-1-grygorii_strashko@epam.com>
 <434d9ce4-e5e1-453d-84b7-e21e66d0c5a3@vates.tech>
 <b012c6c3-fb8d-4336-922f-f40bc43eb2b5@epam.com>
 <0217b1ff-2c33-43ae-adbc-d665c881473d@amd.com>
 <ffb2ad53-c150-44e3-a0b8-7ed3473886f6@vates.tech>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <ffb2ad53-c150-44e3-a0b8-7ed3473886f6@vates.tech>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR4P281CA0174.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:b7::20) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|AM7PR03MB6467:EE_
X-MS-Office365-Filtering-Correlation-Id: 04218e34-4ed2-4e34-fb20-08de1d5b8537
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SGJIUUs5N2V0bEZDV09jSTUycFZyZm9TUG1oWStQZzV1dnJXRkVxTGZpeCtl?=
 =?utf-8?B?L1VYNXVlMUluSFN5QzdyamhoNWxXd0dJOGN2NURLZ3RVMk9welRtM0V1REk5?=
 =?utf-8?B?OVkwTmU0MHdhTGFQb3Vuc2l3QzlHd2xlQTZLd0dGaGJvb0xVbTYrT0p3ZHlR?=
 =?utf-8?B?cnM0N0FNM2xSVzg4aXF3UERNNis3aVlWVVp4SmJHQVM0ZUNKdlBhdjgrWTRz?=
 =?utf-8?B?c2dUQUJjMHJDNlFyUU9HdFEvMUkwWVh3L1ZaTTJ1b212UVMxN3loNnplODFn?=
 =?utf-8?B?UXIxc1RzSVlOUWxXYzd2SjJSM25IaWxzdUZkNExTa0wwQzE4ZEx2cWNxUjk5?=
 =?utf-8?B?Vm9ONlorM0E1UWJ0cXVqTllhSS93blFrL0hWUkhPcjFTTHZSYTgzTjhxZlYx?=
 =?utf-8?B?TnRuSUVqMytLYzhMeHRCSzRwTkYrelB5eU9sSmN4TnM2Y3ZNUC94RW5POXph?=
 =?utf-8?B?K0FsaVFjSHIxTU5URlZRTjFZcXZUNDVwQkFsa2Rrc0FrbS9DZDNKVXdJN2Fu?=
 =?utf-8?B?NVJvaG01OXNDbE0xSnVoT0pIQzdiUU9Qa3R4aUJsVlZ2OW1GajMwbzhveGNh?=
 =?utf-8?B?SkRORXhvZ1orRFRuMk9ReXF2TFI2ZWVreThDaXpTSlpxc21sT3dOUUhLMkpK?=
 =?utf-8?B?emhXbFlLcDU0WWZSK2pKTmNpK29GS04zSG13VDFncEJPclIxMGtKVC9SYWl0?=
 =?utf-8?B?S1pjTVhOMThOQnJPQkM0UFJNSlVXeHB6ekQxWGtYQlVOQWJLS054Q0NGL3VE?=
 =?utf-8?B?Y1RtYlkrN0dVRGxidjQ0b1FxOVcvTVY1dU9RaHJ3aURpM0FDTXVxenpCcGI3?=
 =?utf-8?B?bXdvNC9TdGM5SkdzS2lpdXY4c1ZSTThjR0FPVXdZVHoxdVk4eTVrZFRXV1R3?=
 =?utf-8?B?TlRHSDBlbTR5S0ZGb2wzcEgrbEl2SEdsYnBEYVR0Wi9qMk1KV1RQMmlQZTd5?=
 =?utf-8?B?SGpIVkxwNUhkQXIycjdxQkFKNXMySWs5elZzYnc5WDZaM09SOE8xWkUrSHJH?=
 =?utf-8?B?ZCt3Vjg3MStacEUxK2ZyQkF1ZlZJVW9iOGpHZW9hZ3ZkQ25qbEtuMHcxeWdt?=
 =?utf-8?B?WlVGRDQ3ZlcwZjZHOXVmS2VhTkhTWXA3V3hPdndRU3h0MU01UDA3VUFIZStI?=
 =?utf-8?B?Y3E3VUl0ZTl3RlppcUdoQUJkNCt3bzNPZWQ4MjQxVmdILy94RlJTaHRrQmlB?=
 =?utf-8?B?MXI5Rlh6UjNTbHlXcFF2L2FlbmRwYVBEd0N4cUpKNDJ4OGVYRnF6eG1WZXlz?=
 =?utf-8?B?OWRsdFZqNERLa1kyblFTZ0c4bVYvUjFaWWZSSGxaNVI2M3RMSXFvYlZjZWNh?=
 =?utf-8?B?Qk50Q3VYaDJ5dHBtMUhpaG41ZTFkWDVlRFhSa1RxNGlnRGFSbE03dW8rZHlh?=
 =?utf-8?B?czVIejk0ODI1OG1aenlwSGN6TXZpOGtJTTVud3BpdjNqalNKM0lNZzRwNjBx?=
 =?utf-8?B?VWo2bHFzK1AzcGtCUndhbXQraUVyMXlyN1A0ZkttSmt4QjE2ZU5GWUFncHRQ?=
 =?utf-8?B?QWJsY1pabFZFdU5lUUR2UlZheVU4dER0bm5KQzZ2SGhlcmlUNmowb09DakNt?=
 =?utf-8?B?ZzR2c25LUFM1eEJrODBPNzJCWVdkeldaNC9aUHhWRkxXamM2UCsvU0svZjVa?=
 =?utf-8?B?S3hPbG9sZWs0NlVtL0FFMWtLY1ZMVk5sRmZIOU1zdmVXZVlydDZ6eE50NzJT?=
 =?utf-8?B?eXNyOUtKZTlYYitQL0g2M3BrSUdQdlFWWm5VS1FKK2IrNGpSd1haYkVkNHRk?=
 =?utf-8?B?RzhqMjRjMkhtQTA2VjRuUkJxcnYzZVo0Q0NBRXAydzI5UENndnpQRXBHcWNt?=
 =?utf-8?B?Z3RyUVNMSUpTQVJkamd1Z3JOcUhUUnY3L2EvSm4vYmtId0pheU9MVW5COGpu?=
 =?utf-8?B?ZHFTbmZXYmRwU1p3dmdhei9rZFhuRUdsMTlVZTBnVXg0RGdmcC9QM1MvMkZH?=
 =?utf-8?Q?XgDQ3o3rPB545q6iI2fMkbI/VVOOghji?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RFArWlBYaUwyM2ROMlZSc1FjOHhFL3o4MXlWSzNCVW1idUVBMkpCU2pKOTBF?=
 =?utf-8?B?UXM0WnJLU0F6a2hZSk9YdTd4b21uQThaL0FFNW5FRFMzYmhXT0JOZHZZeGlm?=
 =?utf-8?B?UVRYMWMxOG5wRzEwM0RxcThFRDd6NmNRZE1zK0RZOHZMTkdSSmFqS0wvWHFl?=
 =?utf-8?B?ZWxvUjNvWjJoRmg2NkNQeHJDZmhOWkJrVU9Cb01YSXVFTHZuV2h5ek5KY1M0?=
 =?utf-8?B?b0Rma2NlZmZNRW5EREt6bHkzclhiZmVnU21ZZUROZmt4SWJrWTlTSkgwMHln?=
 =?utf-8?B?UGt4ZnkrY0xSS3ZvSmtVaUdwNFFvWnd4RE5sem1yY1NycVJ0U01lVTdYVXUr?=
 =?utf-8?B?dml0YXFEc2dEZjZ1WTltOVZZR0JkR2hhdHp4NlB3R2FGSTFtWi93cmdCOGh6?=
 =?utf-8?B?MVJKOVJMQVJyVktkajYxUVdlM3oySUs2NVBrR1BtUnZ2Uis2TTdYbzZGRVlZ?=
 =?utf-8?B?OFJzS2Z5Q3VsdDhRSVphbkZ6S29YQlQxazNQSXQxeFF6TmFLN0JNVE8wYnZV?=
 =?utf-8?B?WCswczZTZ3VRcU12UHoxeGtqT0hkZFcxa3REMU5PMkp0Mnc0M2N1N3BIYW1N?=
 =?utf-8?B?UXlib1lWRXFkeXN1MGNiRnBjek5kbFppUFZ4RVkyRlg1WmRtR05PSyt1T0hG?=
 =?utf-8?B?aVBLNGV3MlZYckZiaDFLaHUrZ2F6VGFObXU5YWdoRGQ4RjIrT3A4SmhwMlJv?=
 =?utf-8?B?Wi82NVAwSFBIdWZjcWFDQ3JmZG9FZXJURWpQRnlmQldtSkxaU1RBUlBjbXdZ?=
 =?utf-8?B?SU5ZM2x3S1VJUm5uNDYrR2RGUSsycTJadkFLTkg3N0dJc2UwM3BIZkwwRDE3?=
 =?utf-8?B?NkMrTVRWWWVaVk5QUFgyM0lFeEVpNkcvazBmNFh2VzlmMTFQcG9KdGdHUmpt?=
 =?utf-8?B?Y3lnN3BnZ3NaT3VKM1JTcXZNRjNPRXZSdGJmMytNb1ZxZEh2TEdoUFBFZEFw?=
 =?utf-8?B?NWJyR2Y2M0FrMlZnS21LeEtXT1Jlck9DRndLM1FjUHp5VFp0Z1JXb2JQdHdm?=
 =?utf-8?B?VUIya3BlOEp3Y3MyekNualVtUU9rRm1qUHlXWWtUWWVYaWUzVVczTjJkbklr?=
 =?utf-8?B?bjlzR1NLc21yc3R2VUlBdTBNcm1GbXRoYWZuWmQxVlMvTzhVR0VFZjd6V1Rz?=
 =?utf-8?B?ejZHRlI0Mm1jbXI1Rm5hSjBieEQwcWtRVjRNNm1URXZwZTNBM2dPL2FlTjdl?=
 =?utf-8?B?Mk9qeDhGd0RDMHpkVTcvQU1Ob1d6RWtQeW82NGJ6ZEdOdlgxNStHMkNqdEFT?=
 =?utf-8?B?dkJVNlZReFRxaGV0RS9xcDk4TENDcndRbzhYYVk3dnBWQTd1aml0RTR0S0Zs?=
 =?utf-8?B?amlWeW5sTXhxSHVZWFQvNEx3bjBINnZCTlQybk43SDVIYzFreC9vSEFBWVJz?=
 =?utf-8?B?YlpScjJoby82V21xbW1iaEp0MUZoS2o2d3BHbUZKU05hL2xyQnFoR3BIOFZP?=
 =?utf-8?B?SURnNzhmTWVXdU1MRzJ5emJja2t4TkQxcE8vdkxyYi9RUnpZOGZGU2hlWGtY?=
 =?utf-8?B?cHBLRVUrSCsvQmVRT3VuQmpnSlFFaTJ2OGI4d2FBQmZjV2lublk5N0FJbEd3?=
 =?utf-8?B?eS9QOGZtSjFubnNhV3RJVlpkaFhlMkNNK1JPc0tPRzM5VjVuODlad2RPdFht?=
 =?utf-8?B?UVZmRWVpc3B4RUJ5QVRWcngxMHlDNWx3N1N3UHNQU2p2Y2xWVGtncitoTmlW?=
 =?utf-8?B?VXV2SU5PaUh2c1d1My9IR0RvUXpRYTFRaGtOaU9LdXRtK2JrdGZsZzc2R3pz?=
 =?utf-8?B?bTBJb29HZnh4ZTRhUWg3aEkxN2NMa3QrRGs1TTlCYkpLWWI2c0p6QS95RURJ?=
 =?utf-8?B?UGFVeGtoTVFsbkh4enZGRFJnSzlYdUMzVlZtalhlYUxKcFpuRU45cVNualk2?=
 =?utf-8?B?b2NnUTFkYW0veUZxNnY3OVg1SjlZVktyV0NvU1BncGZGOFhWK2x4d0ZKTTc4?=
 =?utf-8?B?cTZCU1c4QThlYmkvbWhSTHZOM1Y3ZlAyMHRCV09ZOTFGYXgweEFoWE9Xd0ta?=
 =?utf-8?B?RnV0TXdxV2p3WHN2ZkFNWERvNkVwMXl6bzhkMFp2MFdrODZ1eGpDYkt2dlJl?=
 =?utf-8?B?cHMrcjc3THBlaGxiV0hmTHEwTVNIZWFnVCt0Rk1uQkIrZWZzZkdYNy9ZVlFr?=
 =?utf-8?B?U1VGZlNqbFUxWGFGOGVqSVNLbkV6K2dVdU5aemRvRU5ITm1EM0RGQU5MMno1?=
 =?utf-8?B?VVE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 04218e34-4ed2-4e34-fb20-08de1d5b8537
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2025 17:40:04.9441
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: fE7is13DFAg3HkXDbsTGlM3MFc0o6AtA9Fk5RTD2/XQskPorn91I5iU8wRODE2RKvkyuuikHiCjc86M6gausFb15uinfbxS7UvnYgbNFanI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR03MB6467



On 06.11.25 19:27, Teddy Astie wrote:
> Le 06/11/2025 Ã  18:00, Jason Andryuk a Ã©critÂ :
>> On 2025-11-06 11:33, Grygorii Strashko wrote:
>>> Hi Teddy, Jan,
>>>
>>> On 06.11.25 17:57, Teddy Astie wrote:
>>>> Le 31/10/2025 Ã  22:25, Grygorii Strashko a Ã©critÂ :
>>> Can try.
>>
>> Yes, I was thinking something like Teddy suggested:
>>
>> #define raw_copy_to_guest(dst, src, len)Â Â Â Â Â Â Â  \
>>   Â Â Â Â Â Â Â  (is_hvm_vcpu(current) ? copy_to_user_hvm(dst, src, len) :
>>   Â Â Â Â Â Â Â Â  is_pv_vcpu(current) ? copy_to_guest_pv(dst, src, len) :
>>   Â Â Â Â Â Â Â Â  fail_copy(dst, src, len))
>>
>> But that made the think the is_{hvm,pv}_{vcpu,domain}() could be
>> optimized for when only 1 of HVM or PV is enabled.
>>
>> Regards,
>> Jason
>>
>> xen: Optimize is_hvm/pv_domain() for single domain type
>>
>> is_hvm_domain() and is_pv_domain() hardcode the false conditions for
>> HVM=n and PV=n, but they still leave the XEN_DOMCTL_CDF_hvm flag
>> checking.Â  When only one of PV or HVM is set, the result can be hard
>> coded since the other is impossible.Â  Notably, this removes the
>> evaluate_nospec() lfences.
>>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> ---
>> Untested.
>>
>> HVM=y PV=n bloat-o-meter:
>>
>> add/remove: 3/6 grow/shrink: 19/212 up/down: 3060/-60349 (-57289)
>>
>> Full bloat-o-meter below.
>> ---
>>   Â xen/include/xen/sched.h | 18 ++++++++++++++----
>>   Â 1 file changed, 14 insertions(+), 4 deletions(-)
>>
>> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
>> index f680fb4fa1..12f10d9cc8 100644
>> --- a/xen/include/xen/sched.h
>> +++ b/xen/include/xen/sched.h
>> @@ -1176,8 +1176,13 @@ static always_inline bool
>> is_hypercall_target(const struct domain *d)
>>
>>   Â static always_inline bool is_pv_domain(const struct domain *d)
>>   Â {
>> -Â Â Â  return IS_ENABLED(CONFIG_PV) &&
>> -Â Â Â Â Â Â Â  evaluate_nospec(!(d->options & XEN_DOMCTL_CDF_hvm));
>> +Â Â Â  if ( !IS_ENABLED(CONFIG_PV) )
>> +Â Â Â Â Â Â Â  return false;
>> +
>> +Â Â Â  if ( IS_ENABLED(CONFIG_HVM) )
>> +Â Â Â Â Â Â Â  return evaluate_nospec(!(d->options & XEN_DOMCTL_CDF_hvm));
>> +
>> +Â Â Â  return true;
>>   Â }
>>
>>   Â static always_inline bool is_pv_vcpu(const struct vcpu *v)
>> @@ -1218,8 +1223,13 @@ static always_inline bool is_pv_64bit_vcpu(const
>> struct vcpu *v)
>>
>>   Â static always_inline bool is_hvm_domain(const struct domain *d)
>>   Â {
>> -Â Â Â  return IS_ENABLED(CONFIG_HVM) &&
>> -Â Â Â Â Â Â Â  evaluate_nospec(d->options & XEN_DOMCTL_CDF_hvm);
>> +Â Â Â  if ( !IS_ENABLED(CONFIG_HVM) )
>> +Â Â Â Â Â Â Â  return false;
>> +
>> +Â Â Â  if ( IS_ENABLED(CONFIG_PV) )
>> +Â Â Â Â Â Â Â  return evaluate_nospec(d->options & XEN_DOMCTL_CDF_hvm);
>> +
>> +Â Â Â  return true;
>>   Â }
>>
>>   Â static always_inline bool is_hvm_vcpu(const struct vcpu *v)
> 
> While I like the idea, it may slightly impact some logic as special
> domains (dom_xen and dom_io) are now considered HVM domains (when !PV &&
> HVM) instead of "neither PV nor HVM".
> We want at least to make sure we're not silently breaking something
> elsewhere.

first of all idle domain - I've tried to constify is_hvm_domain() and even made it work,
but diff is very fragile.

Diff below - just FYI.

-- 
Best regards,
-grygorii

Author: Grygorii Strashko <grygorii_strashko@epam.com>
Date:   Fri Oct 17 17:21:29 2025 +0300

     HACK: hvm only
     
     Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index d65c2bd3661f..2ea3d81670de 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -567,17 +567,17 @@ int arch_vcpu_create(struct vcpu *v)
  
      spin_lock_init(&v->arch.vpmu.vpmu_lock);
  
-    if ( is_hvm_domain(d) )
-        rc = hvm_vcpu_initialise(v);
-    else if ( !is_idle_domain(d) )
-        rc = pv_vcpu_initialise(v);
-    else
+    if ( is_idle_domain(d) )
      {
          /* Idle domain */
          v->arch.cr3 = __pa(idle_pg_table);
          rc = 0;
          v->arch.msrs = ZERO_BLOCK_PTR; /* Catch stray misuses */
      }
+    else if ( is_hvm_domain(d) )
+        rc = hvm_vcpu_initialise(v);
+    else
+        rc = pv_vcpu_initialise(v);
  
      if ( rc )
          goto fail;
@@ -2123,7 +2123,7 @@ void context_switch(struct vcpu *prev, struct vcpu *next)
      vpmu_switch_from(prev);
      np2m_schedule(NP2M_SCHEDLE_OUT);
  
-    if ( is_hvm_domain(prevd) && !list_empty(&prev->arch.hvm.tm_list) )
+    if ( !is_idle_domain(prevd) && is_hvm_domain(prevd) && !list_empty(&prev->arch.hvm.tm_list) )
          pt_save_timer(prev);
  
      local_irq_disable();
diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index 79c5bcbb3a24..533ad71d1018 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -126,4 +126,8 @@ config VHPET
  
        If unsure, say Y.
  
+config HVM_ONLY
+    bool "Only HVM/PVH"
+    default y
+
  endif
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index 839d3ff91b5a..e3c9b4ffba52 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -236,7 +236,7 @@ static void cf_check vmcb_dump(unsigned char ch)
  
      for_each_domain ( d )
      {
-        if ( !is_hvm_domain(d) )
+        if ( is_idle_domain(d) || !is_hvm_domain(d) )
              continue;
          printk("\n>>> Domain %d <<<\n", d->domain_id);
          for_each_vcpu ( d, v )
diff --git a/xen/arch/x86/mm/p2m-basic.c b/xen/arch/x86/mm/p2m-basic.c
index e126fda26760..c53269b3c06d 100644
--- a/xen/arch/x86/mm/p2m-basic.c
+++ b/xen/arch/x86/mm/p2m-basic.c
@@ -34,7 +34,7 @@ static int p2m_initialise(struct domain *d, struct p2m_domain *p2m)
      p2m->default_access = p2m_access_rwx;
      p2m->p2m_class = p2m_host;
  
-    if ( !is_hvm_domain(d) )
+    if ( is_idle_domain(d) || !is_hvm_domain(d) )
          return 0;
  
      p2m_pod_init(p2m);
@@ -113,7 +113,7 @@ int p2m_init(struct domain *d)
      int rc;
  
      rc = p2m_init_hostp2m(d);
-    if ( rc || !is_hvm_domain(d) )
+    if ( rc || is_idle_domain(d) || !is_hvm_domain(d) )
          return rc;
  
      /*
diff --git a/xen/arch/x86/mm/p2m-pod.c b/xen/arch/x86/mm/p2m-pod.c
index 05633fe2ac88..4e62d98861fe 100644
--- a/xen/arch/x86/mm/p2m-pod.c
+++ b/xen/arch/x86/mm/p2m-pod.c
@@ -1425,7 +1425,7 @@ bool p2m_pod_active(const struct domain *d)
      struct p2m_domain *p2m;
      bool res;
  
-    if ( !is_hvm_domain(d) )
+    if ( is_idle_domain(d) || !is_hvm_domain(d) )
          return false;
  
      p2m = p2m_get_hostp2m(d);
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index ccf8563e5a64..e1862c5085f5 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -2158,7 +2158,7 @@ static int __hwdom_init cf_check io_bitmap_cb(
  
  void __hwdom_init setup_io_bitmap(struct domain *d)
  {
-    if ( !is_hvm_domain(d) )
+    if ( is_idle_domain(d) || !is_hvm_domain(d) )
          return;
  
      bitmap_fill(d->arch.hvm.io_bitmap, 0x10000);
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 3764b58c9ccf..b1fb67b35d0f 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -1214,8 +1214,8 @@ static always_inline bool is_pv_64bit_vcpu(const struct vcpu *v)
  
  static always_inline bool is_hvm_domain(const struct domain *d)
  {
-    return IS_ENABLED(CONFIG_HVM) &&
-        evaluate_nospec(d->options & XEN_DOMCTL_CDF_hvm);
+    return IS_ENABLED(CONFIG_HVM_ONLY) || (IS_ENABLED(CONFIG_HVM) &&
+        evaluate_nospec(d->options & XEN_DOMCTL_CDF_hvm));
  }
  
  static always_inline bool is_hvm_vcpu(const struct vcpu *v)




From xen-devel-bounces@lists.xenproject.org Thu Nov 06 22:26:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 06 Nov 2025 22:26:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157271.1486107 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vH8RB-0008TC-F7; Thu, 06 Nov 2025 22:26:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157271.1486107; Thu, 06 Nov 2025 22: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 1vH8RB-0008T5-CQ; Thu, 06 Nov 2025 22:26:37 +0000
Received: by outflank-mailman (input) for mailman id 1157271;
 Thu, 06 Nov 2025 22:26: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=0oVY=5O=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vH8RA-0008Sz-31
 for xen-devel@lists.xenproject.org; Thu, 06 Nov 2025 22:26:36 +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 a6eba8f0-bb5f-11f0-9d17-b5c5bf9af7f9;
 Thu, 06 Nov 2025 23:26:35 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AS8PR03MB6741.eurprd03.prod.outlook.com (2603:10a6:20b:23c::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Thu, 6 Nov
 2025 22:26:31 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9298.010; Thu, 6 Nov 2025
 22: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: a6eba8f0-bb5f-11f0-9d17-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sLi1OIYpeKi9Rdq752RoM+Mt+WsPNTGNFnTtzkAuQzZrzZTW+t0iApMfqYvYfkhdI9iqe3nMEZO9mxfmYv8smaKcY5Ar8Ylr2cA3dVwKuAZbPBzl4M1l44T+r05BfPEexjfBY7CQ9AemkjcDRdFQ+jcUG11p9XYeStpyAWQe0EhyoJ8l34vjL3j2zQBhW9FKEb0fAJMkxosAsPzWvQ5CfoHd4er5QtLd6XMkEAmuuh+Pqsd6up+H5EMuNQjS4KXS6VxI4XNupmCLfitg/W89VQ4/FsCcyyZ1qGCr+4j7UZJTE3kS0e9B/q19V5hBMv7iu7higo8FAp7kKVgshmZqmA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZxB9zLfi6wuogk8pMMm18vfwQYKMZJW/VRp6Bnwao9o=;
 b=p4TDTZnKSm9Ls8/lgmGGUn9sRLSimlG0DAZqvJnB+Htg8QbTx5iIq2leBX5xZqhQPL58z6wfZOpJjUEXIb3gj5yjxeeok5LnhmttJgmmC0TDmk8sWdD2SPGaZZtvjvY9XkVi4Kr+VlfTtu+Ww9k3Lcu3D5iMGf3mI5maHZsVHlRT3TnBH3khxX2MFdWVDSNL7Jg9AMCAwNiS3tKk/ayg4yW7+j/H6xX/Z47d7M4ucwzeyoMabhfDpHiM1Fy7A1DxCZpcmKyCC8sRfrEWQHPBpFQW1yxn3YPy/eX7xHSNHidJefJBC4UKaph72wVS5dCKsyCWzrc6VJjgMIMx+YPzkg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZxB9zLfi6wuogk8pMMm18vfwQYKMZJW/VRp6Bnwao9o=;
 b=On/8ODfXGaXrtvOcW7rZYk6P/MhlSGOf7U+Xr91KwpO5qqV54KERx5GsBz3I8q9/67MLB4+WlGyKr47sqA0Ambf0DGu6k/4HcwfjzN94VlQZPVAz4U7dmeRR2FRgUwmcsjuN7ZDpBNWHOd91vMs3dcc4MilQIxB36pNGOvh/IAlc22CTEE9E2QC9GbtqX1hug+D+JwFR0LWWP2n2zVqEa/UyGNCzLh6YYJYtWCQ3Ef2KMdm1hdkrZl9rePDRpSUXrjQ+k/NdJJf+/78coCZ0f7PiJQDz2HVAWgkTvypV2pnOZ7BtzFiq89ozzq44wyKd0ARoW7uqTN/rVVvrZXPpCA==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Jan
 Beulich <jbeulich@suse.com>, Jason Andryuk <jason.andryuk@amd.com>, Teddy
 Astie <teddy.astie@vates.tech>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: [PATCH v2] xen/x86: guest_access: optimize raw_x_guest() for PV and
 HVM combinations
Thread-Topic: [PATCH v2] xen/x86: guest_access: optimize raw_x_guest() for PV
 and HVM combinations
Thread-Index: AQHcT2xm+kC+B40bN02/oMva+AgRcg==
Date: Thu, 6 Nov 2025 22:26:31 +0000
Message-ID: <20251106222630.2777457-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB8907:EE_|AS8PR03MB6741:EE_
x-ms-office365-filtering-correlation-id: 44ccbb43-9c0d-4908-4c49-08de1d838959
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?n6748lJm7Cydj9dW6jlHHha+3BcqdVrh83S0p8A4d5VEkRFm7pBMj84CMv?=
 =?iso-8859-1?Q?/LzIMxNoudTlNcA45bjAeKJwZmqZm4qZjfuwoKCcEI5tc5N9WuHrkbcPg4?=
 =?iso-8859-1?Q?o/J3KXCZEIpHbxqlaHnW2OCIOpbSEFH7UFLst3uR4DLJ0Q5RhqLak8NBId?=
 =?iso-8859-1?Q?rgODEZN453CMxsomPdjmjQEuGyfgZZgzTLGWnqp9gKLxN0Co45nm1vSwRh?=
 =?iso-8859-1?Q?tyqK48RNmWWXCeOqydCCPjRnvgw1nbnM1evtvBIxR6gmZPFIrlE8C0R2uH?=
 =?iso-8859-1?Q?iGkC28eao3a+Pp6lOaJ+hB4Q/ziEW1UtjsufeF/y9vuUqWt2YqglpIlGi9?=
 =?iso-8859-1?Q?cKZeqvtxaHlaVZBBZuQ4Rz1fxXibmgALNw41mNDSEuZsu4uxxsCdi9YRsb?=
 =?iso-8859-1?Q?I6WgC1dpofH/0vRtPvxj/JirprQ1E+M2Jnah8HIWQqgRYKeCgz8Z0cLNFd?=
 =?iso-8859-1?Q?4HX03P7DjFypesaG5Mk/exQwv4cYuSnwC1UOKS4T5ombZaZQ7A5LE+FbwA?=
 =?iso-8859-1?Q?ugxuZsr3n0uJn3B7Jlv3wBJiijtP+fMyD3jT0SysGOKBXYL/8vp0g1OEnp?=
 =?iso-8859-1?Q?OvFEMvGKRYljED+Drr8V98EcGTmSIQ/P4n8lvHu9ILkojuKT8luYDveVcO?=
 =?iso-8859-1?Q?NyVzRy3GfBbfRkDy++jPZx/YcPKbgGcqIDKkfCr7seHMeG5nnHjkJ4jTIg?=
 =?iso-8859-1?Q?Lruj1pSxHHMPQ5/+p9EhCyYfEP8D+D+jWTIztqLxTRBe/ZkrAjzKUQsyFQ?=
 =?iso-8859-1?Q?S+c4ZvPROaj9L+EDQTFG2f8Jn8GUxq8pY3eFRivpL4kingspaH7FY9f4q3?=
 =?iso-8859-1?Q?/zClznva80fkJRQ6212LZqzxbod8Odhn18OvVflLm1M8dzdKEKWOkhCYyN?=
 =?iso-8859-1?Q?8cO8BR7btenoHi92aTpc/u3kF7qg5O+2YRR4NvdhjXVC1bNX/0Fbdab5f4?=
 =?iso-8859-1?Q?J+0AS+QEx+HtQR4HmCvmSQAJqbV3t1s5f+MMriIBq25a0pA5KMIK1Kec/9?=
 =?iso-8859-1?Q?it66uUfNspl22Frztzj9M1yk7RbumddGFgvH4EGKjMlq9Z79dYLzmJ6nfj?=
 =?iso-8859-1?Q?eL2DVe4TSvYsGD2+2pqrTH34gYTe7VCDMbP70EYiX+V9qq2fX6LNLqq44a?=
 =?iso-8859-1?Q?XwW+a46DCm3sYW213201AZ6tKtWaiyvBZasqsQ5iVWOkk2nspdUVhA6p/y?=
 =?iso-8859-1?Q?J8XmySOiz1GdgkF+u4EAkqTqi6B7+OCLnwwSdBH7mCZciSNFii929U9Sau?=
 =?iso-8859-1?Q?AI0lZ2AaNOar0EazX/nNmzTUiOYHrxoJlEnNAkCUvxMmKfFTDMhbO9vKGb?=
 =?iso-8859-1?Q?7EPIldOjeJquF8a32PkqcEGpA0JK5OfrD5iSaTj8Cd8NzQ/09zj8Oj2+sQ?=
 =?iso-8859-1?Q?Wo1nvnkWxRyH+paKQNLVGLi9rruh+hSbN/5aWhvfBRPghsC+ULHCk5xsJX?=
 =?iso-8859-1?Q?b+dzP86hSqX0XnSoW5ad9Ooeefre3Z/DAsiFNZooVhbpOkaiXqjDAXgpjh?=
 =?iso-8859-1?Q?82gFkoVJFW8gifdIFVuqntjvLc7N/D/NPJHg8V4FxpuNA9/5GhyllV4kiP?=
 =?iso-8859-1?Q?R0GbbhzJO6CWC3+Ns3BwYI/zBDa5?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?w3Ob6j9MvjqbTmKcoQWzy81i4kf7fbH1/otIL4FDgPrkEUXIxjZBxq8h2+?=
 =?iso-8859-1?Q?DBLn73YPCwX+t4hU7fZCcpCO/H/gQA81d0MzYgJ1h7XDjEaEeyLKHZ221h?=
 =?iso-8859-1?Q?yP0GhhqUQjkA/Dk62ovW+sRlTvm7b1uhb2EfegiyVapRL4xro+bGT71D9m?=
 =?iso-8859-1?Q?/dYqQdfDqhJcSPOfcqMHPWMmKRHzQiyouTEBG2edXzeDf+gCoJougMmgbk?=
 =?iso-8859-1?Q?aDVoQULq8BG/+Z4bONwE7UCbrYlb9X22MAVi0SfRoGEzauzZuYoG30aMFo?=
 =?iso-8859-1?Q?Nw2UdMiQz37xgKalv1CShu8cR5JKLVjE7jlnhjVSsbU5Oe9yONa321HHoZ?=
 =?iso-8859-1?Q?5dpOaNCbVouULiMan7OS0nC67mc7JRObq0FnnIrZnZtJ/XOGaUrCqGWXKf?=
 =?iso-8859-1?Q?NoD+IO89tFbJu+rv3bkaGDho4OKJxRi8kfedo646SIfitMgZXFDXarhrIg?=
 =?iso-8859-1?Q?SmLDDiRreQMQJUMz9bYroEaI1MPreQHqtnLp+M196BNPM+IYL+f2MRBY0e?=
 =?iso-8859-1?Q?hHqSKAawI2/uzjbwMN5coT13dOAf8wIU6S8w60u4A+jnVxUMLUiFH8dLg4?=
 =?iso-8859-1?Q?XbP8RW68kb7gUCjfnXNFdfOiGzt2qVPT8VeRsT30Xm88A6OmYAyT2dzOGV?=
 =?iso-8859-1?Q?sRvV6LFtSygfRVOwsiqQemp2MCceNWc731agjommXjL2ilRa/oVQm9U1m+?=
 =?iso-8859-1?Q?qrJieKln1kPC9sKtsTu/5kYdl+pxzwq/qurT+t1tRKd9++/WKAws7tdekO?=
 =?iso-8859-1?Q?OG7Pzl4zXwRqMoO3ymiKLeI61IuEIT72S9qFb6cpugZT21lSKznfpSONR8?=
 =?iso-8859-1?Q?/petq0l5JWoJ3c3wRS1gbTTCAbPyIQh6FIEQbTJh27DRgTm+LFCxp4EYbe?=
 =?iso-8859-1?Q?SV0DRZg8Glt6h1NIp2lISOQu9VvNiC9g/ekwZUCYqR5j7u+P+ZIOs1h0zw?=
 =?iso-8859-1?Q?BBUaIBMW63uOU7y8GiY6EKd1mVcsw3lhFxCtzVfX41iF0sbAzW0KEXg8nk?=
 =?iso-8859-1?Q?xzrU8vbqJHeoTFwhrQR6IBFSbS8k8CvG8DgQ+RkHuEma8pMdFPUMucwSe2?=
 =?iso-8859-1?Q?d/SKBkM4z0Mz/8V9p8SbMVdOdn9OUnV/PAKoTaOqbz5dkTPC2nCe9z4F1T?=
 =?iso-8859-1?Q?vuvfOmS6+MvyccNbdytE54qRVHpSiOWliyQiHfPfdWLuIguEQYnBbvqpqZ?=
 =?iso-8859-1?Q?SlMmNi+dZIDQPJytB6asrVB46MdMdtr2h+FK0YMInTKU1P6nlS9epdmlXE?=
 =?iso-8859-1?Q?ef8F36bfkDRLcplaBsW7neE/gpuXt03e/RQZPV6toeDe+Y2LGapq/+92vb?=
 =?iso-8859-1?Q?EpgeROQL636SHpp2i0g4wN/Q8jezh9TysBW9Pc/QFvt/VgRWilQLWM3Ndv?=
 =?iso-8859-1?Q?d8aR7i3VFLv/FGLCb5W15WhzIOqbo8ihJigQ/V5HVUN8vAaCB7emjEceV8?=
 =?iso-8859-1?Q?TAhfpWe7w+zQTwNhrTaZUttj/pyq6ETyPbkc0nTdVtrkbADh5qTzJ7qCcB?=
 =?iso-8859-1?Q?vVMmFrgSMyADRR38rADkuS6az/AbUsIVd8ZNXaqczStwNDAeOsCeSKsAI8?=
 =?iso-8859-1?Q?2y7DtCGVIyI3lISgCZALlM7kIeJrc7f9w8ZOiQYU5Bk4z1rZI96bRZktgU?=
 =?iso-8859-1?Q?96QTjE6gq2qbQdeR2TVlhnDHMriGUli/yqfsuYtjtfO5V2PQmFvEbQXg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 44ccbb43-9c0d-4908-4c49-08de1d838959
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Nov 2025 22:26:31.4838
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 2WANFG6ehfmLDjC++Hmu2/DLhz/bCjLwQLt2XLnjYzRmwU1Ou9OOeVpjtmdZNJSSqd8TPuso5PbkK1ZTO9UH4M5qkQ2XCVuqYQKgKihJEY8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB6741

From: Grygorii Strashko <grygorii_strashko@epam.com>

Xen uses below pattern for raw_x_guest() functions:

define raw_copy_to_guest(dst, src, len)        \
    (is_hvm_vcpu(current) ?                     \
     copy_to_user_hvm((dst), (src), (len)) :    \
     copy_to_guest_pv(dst, src, len))

This pattern works depending on CONFIG_PV/CONFIG_HVM as:
- PV=3Dy and HVM=3Dy
  Proper guest access function is selected depending on domain type.
- PV=3Dy and HVM=3Dn
  Only PV domains are possible. is_hvm_domain/vcpu() will constify to "fals=
e"
  and compiler will optimize code and skip HVM specific part.
- PV=3Dn and HVM=3Dy
  Only HVM domains are possible. is_hvm_domain/vcpu() will not be constifie=
d.
  No PV specific code will be optimized by compiler.
- PV=3Dn and HVM=3Dn
  No guests should possible. The code will still follow PV path.

Rework raw_x_guest() code to use static inline functions which account for
above PV/HVM possible configurations with main intention to optimize code
for (PV=3Dn and HVM=3Dy) case.

For the case (PV=3Dn and HVM=3Dn) return "len" value indicating a failure (=
no
guests should be possible in this case, which means no access to guest
memory should ever happen).

Finally build arch/x86/usercopy.c only for PV=3Dy.

The measured (bloat-o-meter) improvement for (PV=3Dn and HVM=3Dy) case is:
  add/remove: 2/9 grow/shrink: 2/90 up/down: 1678/-32560 (-30882)
  Total: Before=3D1937092, After=3D1906210, chg -1.59%

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
[teddy.astie@vates.tech: Suggested to use static inline functions vs macro =
combinations]
Suggested-by: Teddy Astie <teddy.astie@vates.tech>
---
changes in v2:
- use static inline functions instead of macro combinations

v1: https://patchwork.kernel.org/project/xen-devel/patch/20251031212058.133=
8332-1-grygorii_strashko@epam.com/

 xen/arch/x86/Makefile                   |  2 +-
 xen/arch/x86/include/asm/guest_access.h | 78 ++++++++++++++++++-------
 2 files changed, 59 insertions(+), 21 deletions(-)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 407571c510e1..27f131ffeb61 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -71,7 +71,7 @@ obj-y +=3D time.o
 obj-y +=3D traps-setup.o
 obj-y +=3D traps.o
 obj-$(CONFIG_INTEL) +=3D tsx.o
-obj-y +=3D usercopy.o
+obj-$(CONFIG_PV) +=3D usercopy.o
 obj-y +=3D x86_emulate.o
 obj-$(CONFIG_TBOOT) +=3D tboot.o
 obj-y +=3D hpet.o
diff --git a/xen/arch/x86/include/asm/guest_access.h b/xen/arch/x86/include=
/asm/guest_access.h
index 69716c8b41bb..576eac9722e6 100644
--- a/xen/arch/x86/include/asm/guest_access.h
+++ b/xen/arch/x86/include/asm/guest_access.h
@@ -13,26 +13,64 @@
 #include <asm/hvm/guest_access.h>
=20
 /* Raw access functions: no type checking. */
-#define raw_copy_to_guest(dst, src, len)        \
-    (is_hvm_vcpu(current) ?                     \
-     copy_to_user_hvm((dst), (src), (len)) :    \
-     copy_to_guest_pv(dst, src, len))
-#define raw_copy_from_guest(dst, src, len)      \
-    (is_hvm_vcpu(current) ?                     \
-     copy_from_user_hvm((dst), (src), (len)) :  \
-     copy_from_guest_pv(dst, src, len))
-#define raw_clear_guest(dst,  len)              \
-    (is_hvm_vcpu(current) ?                     \
-     clear_user_hvm((dst), (len)) :             \
-     clear_guest_pv(dst, len))
-#define __raw_copy_to_guest(dst, src, len)      \
-    (is_hvm_vcpu(current) ?                     \
-     copy_to_user_hvm((dst), (src), (len)) :    \
-     __copy_to_guest_pv(dst, src, len))
-#define __raw_copy_from_guest(dst, src, len)    \
-    (is_hvm_vcpu(current) ?                     \
-     copy_from_user_hvm((dst), (src), (len)) :  \
-     __copy_from_guest_pv(dst, src, len))
+static inline unsigned int raw_copy_to_guest(void *to, const void *src,
+                                             unsigned int len)
+{
+    if ( IS_ENABLED(CONFIG_HVM) &&
+         (!IS_ENABLED(CONFIG_PV) || is_hvm_vcpu(current)) )
+        return copy_to_user_hvm(to, src, len);
+    else if ( IS_ENABLED(CONFIG_PV) )
+        return copy_to_guest_pv(to, src, len);
+    else
+        return len;
+}
+
+static inline unsigned int raw_copy_from_guest(void *dst, const void *src,
+                                               unsigned int len)
+{
+    if ( IS_ENABLED(CONFIG_HVM) &&
+         (!IS_ENABLED(CONFIG_PV) || is_hvm_vcpu(current)) )
+        return copy_from_user_hvm(dst, src, len);
+    else if ( IS_ENABLED(CONFIG_PV) )
+        return copy_from_guest_pv(dst, src, len);
+    else
+        return len;
+}
+
+static inline unsigned int raw_clear_guest(void *dst, unsigned int len)
+{
+    if ( IS_ENABLED(CONFIG_HVM) &&
+         (!IS_ENABLED(CONFIG_PV) || is_hvm_vcpu(current)) )
+        return clear_user_hvm(dst, len);
+    else if ( IS_ENABLED(CONFIG_PV) )
+        return clear_guest_pv(dst, len);
+    else
+        return len;
+}
+
+static inline unsigned int __raw_copy_to_guest(void *dst, const void *src,
+                                               unsigned int len)
+{
+    if ( IS_ENABLED(CONFIG_HVM) &&
+         (!IS_ENABLED(CONFIG_PV) || is_hvm_vcpu(current)) )
+        return copy_to_user_hvm(dst, src, len);
+    else if ( IS_ENABLED(CONFIG_PV) )
+        return __copy_to_guest_pv(dst, src, len);
+    else
+        return len;
+}
+
+static inline unsigned int __raw_copy_from_guest(void *dst, const void *sr=
c,
+                                                 unsigned int len)
+{
+    if ( IS_ENABLED(CONFIG_HVM) &&
+         (!IS_ENABLED(CONFIG_PV) || is_hvm_vcpu(current)) )
+        return copy_from_user_hvm(dst, src, len);
+    else if ( IS_ENABLED(CONFIG_PV) )
+        return __copy_from_guest_pv(dst, src, len);
+    else
+        return len;
+}
=20
 /*
  * Pre-validate a guest handle.
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 01:06:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 01:06:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157299.1486117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHAvt-0001Qu-Ja; Fri, 07 Nov 2025 01:06:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157299.1486117; Fri, 07 Nov 2025 01:06:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHAvt-0001Qn-Gv; Fri, 07 Nov 2025 01:06:29 +0000
Received: by outflank-mailman (input) for mailman id 1157299;
 Fri, 07 Nov 2025 01:06: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=zkPj=5P=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vHAvr-0001Qh-8t
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 01:06:27 +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 f8979da6-bb75-11f0-980a-7dc792cee155;
 Fri, 07 Nov 2025 02:06:21 +0100 (CET)
Received: from MN0PR02CA0007.namprd02.prod.outlook.com (2603:10b6:208:530::15)
 by PH7PR12MB5925.namprd12.prod.outlook.com (2603:10b6:510:1d8::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Fri, 7 Nov
 2025 01:06:15 +0000
Received: from BL02EPF0001A0F9.namprd03.prod.outlook.com
 (2603:10b6:208:530:cafe::be) by MN0PR02CA0007.outlook.office365.com
 (2603:10b6:208:530::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.12 via Frontend Transport; Fri,
 7 Nov 2025 01:06:10 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BL02EPF0001A0F9.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.9298.6 via Frontend Transport; Fri, 7 Nov 2025 01:06:15 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 6 Nov
 2025 17:06:14 -0800
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, 6 Nov
 2025 17:06:14 -0800
Received: from [172.27.250.45] (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, 6 Nov 2025 17:06:13 -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: f8979da6-bb75-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GhU/E09krvwMrSoQ9lTtmffEoQul/kmEQY2kTFH/Fq7iaK8R5k6Cdg3wuzGtcdeG07YMV6ZzWb/6V6bWNcx8cYS7IgL+U9Gr2qHbuR2EKXQIQ34fDYZKFVJJ7sZPw+uTO8b50Qxtazzj3J5UgyEdGiEHy25WRIctLK/BTu8iOwJjSwWjCC/x17NhFgv9lNTl1VPSyds1njwZ8FLpgNk7+av9tvp1vxcj9ocANd8dGrmaS09Eu70oH511Vdrv/hxBv0oyzIazQJ6vOmgrF7jA/+SgOOM4a2oanmSzeCUJCzSY8OttlgE9N2MbQr9EJel+JtXRoZj/YWg8bbmhYQPofg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MhsXQt5m9mycieh7FRhySFY2LkNvm4TT3dz9JkbhNCk=;
 b=xl45GDgx6o5p6AJh/kkLVRAJbE34g62IRLv0zRO7XgMVRxo1g8umVCXDoLX4NwOyFFu+k6e3f3eRJJW1EQKz7a1a7/VzRxwXfs43z+57zlJD6sCzIGinPY95Q0qSNSfOGjbTXnDL1VpJkpUVQEWwuY5pSuTGpwWeZvxKt+/iKL7MEhbbK5NxIITmowTgglknhDkPOP9yK6V/NFk/EAHNYDk3G1w1hbXOpiHBl7A1FEQmAmyIifo49ZKQ5qP9DUSut1bWJWOaZuagKb5b1IvV17GYJHpYaLReEWDABnyPTMn5LokGTs7siVvwIk9smMwgVOUu0qLm33YwH1FbNWc9Cw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MhsXQt5m9mycieh7FRhySFY2LkNvm4TT3dz9JkbhNCk=;
 b=yj/j8C+xh9KA5NIdXzCLLsn2b+3+OKVxZoUHhZLv2I2v6X6U0coouCl3dSj2nT92NSjDLsECVm6WbdUfYGcSQCmz2VGrmmOuj6KhvLl5qZUw3brrF9rG6icdo8l35c4ewp/J6b4BtUaWVSt3lkYj3RNBT0Sv4nhTL/bgVN4g8iM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <64198f3a-7216-4f80-9e75-8a0c371f7e0b@amd.com>
Date: Thu, 6 Nov 2025 20:06:13 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/x86: guest_access: optimize raw_x_guest() for PV
 and HVM combinations
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Jan
 Beulich" <jbeulich@suse.com>, 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>
References: <20251106222630.2777457-1-grygorii_strashko@epam.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20251106222630.2777457-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A0F9:EE_|PH7PR12MB5925:EE_
X-MS-Office365-Filtering-Correlation-Id: d8efba98-c95c-4abf-49ab-08de1d99d9ab
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?T0lycGdTN25wT1N6cEtRWVVzU2hRUkZJRmFPT1ZtQWdZZ3F5dVVCaVR1OEdK?=
 =?utf-8?B?MkVCd3pDS0VEMTh5RUdXNnErd0lmTzZhMU53NFhzbVdhT0tPRTJ2ZlE4SlVN?=
 =?utf-8?B?eFlUNUFnWG1WNVNERFk3Uk1ranhlWDJwcWtRWDRHS1djTTB5UTlPcnF6Z3pj?=
 =?utf-8?B?dHRFcFhIazA5ckRkOS9PUmVqelBrM2hJL2FIaTBZSzdCNkZmbjZTWDZDeEpV?=
 =?utf-8?B?Y3N3L1k3bmlKWnVIUzhLVklwd2N3V2FERUVaVjNQZ1ZVV1k3TnpWazFaYisw?=
 =?utf-8?B?RmVqVlluelphR0N5YjJ6V1FDL3NRSVBpOHZ2YklEL0g3NmtDYVVVSDVtdVZM?=
 =?utf-8?B?WHBqZVdmckdBcjI0aERjcVYrUWZrUWRmL2d5M0c4UDhNWUVvV28vZEhLTy90?=
 =?utf-8?B?bGVNVnZwNU9QVUxyb3hkSTNEUHVaYjM0TEtuOW1CeXJnNXIrYVZMMENnYU9Z?=
 =?utf-8?B?SHJ2dDFpQkVaOEpMYndpd25RQjBWRXp3SU1GNEVTNVVyUEJuOTJPOGZpRlZy?=
 =?utf-8?B?blk5TDVnSDNCYWVlOFg0MWF3ZExGZGk4cXRXODZqMGZmZlpFNWJaRklCMWdZ?=
 =?utf-8?B?cEdVQTRsVXp3QS9PQlp6NkY5UWQxemU1Q3pmWkFGL1VoSlREMVBUMmVvMFNl?=
 =?utf-8?B?QUJ3ejBYSlpWWjJ6cDIzRnRLUGJkVXdmRHh2aGI4U2N4WjQ4aUJkLzFzcWZL?=
 =?utf-8?B?aGZOUEVXcXhqVnEzQjZ4OHUxT0w0OFlteHZ0OWV0czFPN1BZOFdPMllORlpz?=
 =?utf-8?B?bVUyQ0tsUlZiOHZEQk5RUTZjVFFRR1BLYkQrdkdoSURoMGVWWFhncW1RZ0tV?=
 =?utf-8?B?d1MyQmJyenJwaHJJK2NmQk1FSnlJL0lyWEZXZ2pDSDRjMm8vUFF6TzZmTVpQ?=
 =?utf-8?B?YTBJblF4T0UzOVNwcXpOd3pNRjA0cGt4SkRadGxqTTMwMUVtNlVZcVp1RlV3?=
 =?utf-8?B?Q0Y5NWlKQ3U3RUc3THlQbjF0N0JqNE5LYTNZdUtJNXdVNTAyL2JpM3gwVURS?=
 =?utf-8?B?OHFubU95a2NhQ0xNZVJzYTdOSUl0Z29Zamo5aEI0V0JCRFNmbDkyalBTTEdu?=
 =?utf-8?B?N1R2YjlUMCtSTDFUNjBrSUpTV0JIUitGazhPaDdpazdrd1pWNnRpdlZDS1BW?=
 =?utf-8?B?SkVSem1JZ3crckUzRW1qVSt4OWg1ZFFSOTlRVXFZZU9uZU4rcUdwNGxBTVpa?=
 =?utf-8?B?c0s1TDkvaDdDREx5ck5NaStjY2JQZDY4OEl0eWdmeGxIcHl3SnJ2QnY5Z1Qw?=
 =?utf-8?B?ZXA4bFZtdjc5Syt0TitWK2FRT08ydXRDU3pjcHArZzR4Qkx3MEcvOW1sM2Uz?=
 =?utf-8?B?NXB1dGVmY3JDekNUN0owWHRFWWdHUHVEcDBUWUlLQTZuVkVxdW9vc1RPa3Jl?=
 =?utf-8?B?am10V3BqbHJmZTNFamhHcDFERGVGWis2TVdGWGE2VGFPODBpTGRvZE90QjFs?=
 =?utf-8?B?NEs5Mm9PMHJTSGpBOTU5UzVSNGRMRHN6N3R3MTVaM1RNWjJsc3JzbklOOExG?=
 =?utf-8?B?emErdXdoeWQ2N0twVjhsazJ0UG82amZjeHdMQ0NWZk9nd2FZRng3alFydkdH?=
 =?utf-8?B?RENiajFpTWtneE5VakJ6VVJTOUliY0pnOGYvVTl5am5PeS9KYVVCTVZhY1lH?=
 =?utf-8?B?TFFwSTZXaitSc1IwNEdBSEthaGh6REpFYjhDYURXcXVLZnBSWDNZSUwrS2Vv?=
 =?utf-8?B?WHc0aTlyckJaQmR3amhiYkw2SU1QOTRhY05lY1lLSVlEY2lFRlkzWFZ4N0lB?=
 =?utf-8?B?YU1lVGovTHBxRi8xbTZpTXZRWjYybjd6YnlFZkwyU2NwZ29wdDZsT1E1bzcy?=
 =?utf-8?B?VW41UWEzNllJejYxY25ZYnVnVDlsQzg4UlNQRjAxeXAydTkva1M2byswRDZz?=
 =?utf-8?B?cGN5TjNnbFRpWXZZZjRVWDU5TTRjZjkrVStOS0ZKYkFJcmkvdnVvVEpNcktm?=
 =?utf-8?B?OUlMM2REUUNpeGk2SkszMTQ0R05ZdlF5QnhsVnI5aDA3eWZrYy9ndjRxTVVI?=
 =?utf-8?B?MlRLNjV0WEhER1R2TVpmU01TeXZxVERsb01RS3A1VnlRM2s4cmQ4UnUwRXpv?=
 =?utf-8?B?TndSVU1NWTV5bjB0d1hGdnJKZVB1UTJ5a2Q1eElqWVJhell6RVM5c2FlNjAy?=
 =?utf-8?Q?0knM=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2025 01:06:15.1815
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d8efba98-c95c-4abf-49ab-08de1d99d9ab
X-MS-Exchange-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:
	BL02EPF0001A0F9.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5925



On 2025-11-06 17:26, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Xen uses below pattern for raw_x_guest() functions:
> 
> define raw_copy_to_guest(dst, src, len)        \
>      (is_hvm_vcpu(current) ?                     \
>       copy_to_user_hvm((dst), (src), (len)) :    \
>       copy_to_guest_pv(dst, src, len))
> 
> This pattern works depending on CONFIG_PV/CONFIG_HVM as:
> - PV=y and HVM=y
>    Proper guest access function is selected depending on domain type.
> - PV=y and HVM=n
>    Only PV domains are possible. is_hvm_domain/vcpu() will constify to "false"
>    and compiler will optimize code and skip HVM specific part.
> - PV=n and HVM=y
>    Only HVM domains are possible. is_hvm_domain/vcpu() will not be constified.
>    No PV specific code will be optimized by compiler.
> - PV=n and HVM=n
>    No guests should possible. The code will still follow PV path.
> 
> Rework raw_x_guest() code to use static inline functions which account for
> above PV/HVM possible configurations with main intention to optimize code
> for (PV=n and HVM=y) case.
> 
> For the case (PV=n and HVM=n) return "len" value indicating a failure (no
> guests should be possible in this case, which means no access to guest
> memory should ever happen).
> 
> Finally build arch/x86/usercopy.c only for PV=y.
> 
> The measured (bloat-o-meter) improvement for (PV=n and HVM=y) case is:
>    add/remove: 2/9 grow/shrink: 2/90 up/down: 1678/-32560 (-30882)
>    Total: Before=1937092, After=1906210, chg -1.59%
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> [teddy.astie@vates.tech: Suggested to use static inline functions vs macro combinations]
> Suggested-by: Teddy Astie <teddy.astie@vates.tech>

I think Teddy's goes before your SoB.

> ---

> diff --git a/xen/arch/x86/include/asm/guest_access.h b/xen/arch/x86/include/asm/guest_access.h
> index 69716c8b41bb..576eac9722e6 100644
> --- a/xen/arch/x86/include/asm/guest_access.h
> +++ b/xen/arch/x86/include/asm/guest_access.h
> @@ -13,26 +13,64 @@
>   #include <asm/hvm/guest_access.h>
>   
>   /* Raw access functions: no type checking. */
> -#define raw_copy_to_guest(dst, src, len)        \
> -    (is_hvm_vcpu(current) ?                     \
> -     copy_to_user_hvm((dst), (src), (len)) :    \
> -     copy_to_guest_pv(dst, src, len))
> -#define raw_copy_from_guest(dst, src, len)      \
> -    (is_hvm_vcpu(current) ?                     \
> -     copy_from_user_hvm((dst), (src), (len)) :  \
> -     copy_from_guest_pv(dst, src, len))
> -#define raw_clear_guest(dst,  len)              \
> -    (is_hvm_vcpu(current) ?                     \
> -     clear_user_hvm((dst), (len)) :             \
> -     clear_guest_pv(dst, len))
> -#define __raw_copy_to_guest(dst, src, len)      \
> -    (is_hvm_vcpu(current) ?                     \
> -     copy_to_user_hvm((dst), (src), (len)) :    \
> -     __copy_to_guest_pv(dst, src, len))
> -#define __raw_copy_from_guest(dst, src, len)    \
> -    (is_hvm_vcpu(current) ?                     \
> -     copy_from_user_hvm((dst), (src), (len)) :  \
> -     __copy_from_guest_pv(dst, src, len))
> +static inline unsigned int raw_copy_to_guest(void *to, const void *src,

Maybe s/to/dst/ to keep this consistent with the rest?

> +                                             unsigned int len)
> +{
> +    if ( IS_ENABLED(CONFIG_HVM) &&
> +         (!IS_ENABLED(CONFIG_PV) || is_hvm_vcpu(current)) )

Since this is repeated, maybe put into a helper like 
use_hvm_access(current)?

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 01:30:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 01:30:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157310.1486127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHBIb-0004Ag-C8; Fri, 07 Nov 2025 01:29:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157310.1486127; Fri, 07 Nov 2025 01:29: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 1vHBIb-0004AZ-8s; Fri, 07 Nov 2025 01:29:57 +0000
Received: by outflank-mailman (input) for mailman id 1157310;
 Fri, 07 Nov 2025 01:29: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=zkPj=5P=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vHBIa-0004AT-6i
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 01:29:56 +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 42436c8a-bb79-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 02:29:53 +0100 (CET)
Received: from BY3PR05CA0016.namprd05.prod.outlook.com (2603:10b6:a03:254::21)
 by DM4PR12MB7574.namprd12.prod.outlook.com (2603:10b6:8:10e::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Fri, 7 Nov
 2025 01:29:45 +0000
Received: from SJ5PEPF000001F1.namprd05.prod.outlook.com
 (2603:10b6:a03:254:cafe::5c) by BY3PR05CA0016.outlook.office365.com
 (2603:10b6:a03:254::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.5 via Frontend Transport; Fri, 7
 Nov 2025 01:29:34 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ5PEPF000001F1.mail.protection.outlook.com (10.167.242.69) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9298.6 via Frontend Transport; Fri, 7 Nov 2025 01:29:45 +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, 6 Nov
 2025 17:29:44 -0800
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, 6 Nov
 2025 17:29:44 -0800
Received: from [172.27.250.45] (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, 6 Nov 2025 17:29:42 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 42436c8a-bb79-11f0-9d17-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xMSCHVrtgSe3p1L9U7zFHyvZnz2PJw4biQqAEv9360Cju+85/PZuNcoh594pqWh5MqW3OIIXl2IGP64obP3OCBp/mMoF5IxFR0b2I+XzrCNsUsCDJVW7yKk1TxXL9AgvcEckV1gxK09+dLEM+Y3gbWJWKhrcW4y4rLjnA8/DDLL7q26kwCsDLQ/sB25vuuDn2VXxhidJf5AmYndDG3KDcsXOWVHaZkJ9boZkq0yFqWoVXbwcDYovHj+3kxzX6sIU9fraSMVS4Bfw5vSQNWrAleDPWufip++x1Ty0FVWgurvMRyEiilBBkLrzcJ19XFw6QLCRf6mA5bRQFelh/cghBw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uuh4sxKWQFDiWFxX46tfLP+2lLhw/p3lnd+brqJN5H8=;
 b=H7irp7HR45QXazSQ8BBRExVBwRqPv/vsSjrC8qauccup7PTb5S7QTlefNUPlyF4zIGj9qS2Q7RKvDl8zYMeVbBMSD22p9RwPCrZB3AcdPRbu+EBKPGLJ4NFZuMb4Fd98crdjcvqNnW8HIm9TKO85QEG0F60dT8fPmsFAJg9iCX7C+QYOwdN3hBYdTqq4cZyGaANrq/GcEMGYED7631TNyZm+0t3NSMEeD249jykYq9Z2xw9c3J5EPm6BPH+lbgcTNbNZgMw5xaC1CpfCwXRhPTpLEKffdmXDr5DWSXO3rR4p6gNDHFziy3Ozx5LF3CzkRowNXazx469wuH6H3cqxjQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uuh4sxKWQFDiWFxX46tfLP+2lLhw/p3lnd+brqJN5H8=;
 b=IktsufFTfK9p4u1akL0xrlNiUwznfkd62yfdYwfsN1Ct3m1zfU9uWhv7K2sDRFVhQGvr0pQKQLqs616TpgrAhTfXLxUcJjL4QRDebKIySWyMnOP+S92G4pTljtGvEokY9pdIg8uH5f+G9H9REnyquS531dzSHgkaY7xwstoY6co=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <2e298f37-78b2-4870-89a0-07dc4501372c@amd.com>
Date: Thu, 6 Nov 2025 20:29:37 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen/x86: guest_access: optimize raw_x_guest() for PV
 and HVM combinations
To: Grygorii Strashko <grygorii_strashko@epam.com>, Teddy Astie
	<teddy.astie@vates.tech>, <xen-devel@lists.xenproject.org>, Jan Beulich
	<jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <alejandro.garciavallejo@amd.com>
References: <20251031212058.1338332-1-grygorii_strashko@epam.com>
 <434d9ce4-e5e1-453d-84b7-e21e66d0c5a3@vates.tech>
 <b012c6c3-fb8d-4336-922f-f40bc43eb2b5@epam.com>
 <0217b1ff-2c33-43ae-adbc-d665c881473d@amd.com>
 <ffb2ad53-c150-44e3-a0b8-7ed3473886f6@vates.tech>
 <01ad9a85-ff61-445c-97d4-076f9a81b649@epam.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <01ad9a85-ff61-445c-97d4-076f9a81b649@epam.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001F1:EE_|DM4PR12MB7574:EE_
X-MS-Office365-Filtering-Correlation-Id: ea17690a-751f-47e6-0cee-08de1d9d2213
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?OEpYUkZMYVkyTTBlNG5jeCtiNkR6YjlhK1F0TmRlOU1TWjhJVTBNcjY5R25o?=
 =?utf-8?B?cjVMVTRYeG9MU1I3Mm04dU5RUXpQYzRlUi81RFE3a0xXSXZtZERqcTkwQmN4?=
 =?utf-8?B?Zml2RDhqNEZnWXMwam1KQWlnajU4K0FhMC93c0FGU0RFdEt0UnNsYUd5NDBv?=
 =?utf-8?B?V2dUaXJuRzFxYXNnaWNnYldlaDBvMnM1SEtnWFAwUmEwemFpMnpKbkdUQW1F?=
 =?utf-8?B?MFg4dVNSV3FXYWZYUWFuQkwrYnkxMHlXWnhKZWQ2bnE4aExGM050TG5ZYlhN?=
 =?utf-8?B?QmZWUDMzYXlpLzAxeUdockNzcy8rSFAxSWcxSTFkWWNNMElLM1dDRlUzbyt6?=
 =?utf-8?B?TUFaVWhJMEVCcUNnUXYwZ0ZESnZaM0t6ajcyRWFrekUzcE84aFRIMWZacTE3?=
 =?utf-8?B?bWpaRURuVlo0c1NBc1NTWEdoK3NXU2hOZ0w1SzhqVnhxak9PRGxtMGpyZk85?=
 =?utf-8?B?UjBlaUN5WFMwY2x5YmgwR0doVmVzVndDVjJoSDY3WkZOKzh0Z0NvVHZ6VVZv?=
 =?utf-8?B?R2FVSnVCVFdpZVdMVmUvcWp5N3ZBQm05MllmYzJWMldMaGtNSzNvSXhmTTlS?=
 =?utf-8?B?MGhldmd3UGVZUERJMStSK1lzRE0vWm4xbVBlc09TdkpYU3M4WTdrWWdHUEI5?=
 =?utf-8?B?R1BjUHpydkUrallXZjdyNnkvVXM1TUdNUU5FTVFnYWhFOWpKeVFkVEZCN3Ju?=
 =?utf-8?B?c2wza3dld0hYNlV6MjVKVi9Sdk9SVWk5K1U1VzRxZ1lpWUZZeERGQWprSTZC?=
 =?utf-8?B?VUtSd3dLclBBckI4VDRDYkRqN1JkSi9WcFhmSFZZNjFKeVVBbFRVTDVHTi81?=
 =?utf-8?B?d0VvQk9qTEFRdVdrVmNKL29VU0NDY0dzeEg0OXdMNm9FNzFYNzM1bkFvczI1?=
 =?utf-8?B?ellzaXovUDFVYllHRGdrU2NmT0hQSXNNelpMMWZpQjEzc2oxVWxlbDJnK1hM?=
 =?utf-8?B?d2xQVUVybW5GaVBMSUV2VzRCZ0VCR1M0UXhZNkxVbloySHFLL1dSSnNCb2hj?=
 =?utf-8?B?ejRGa3FJWFBYajNWL2dMMjFpc3ErUy9YQnI2czFoWHhtMi80RU5OWDVoWTVF?=
 =?utf-8?B?UFY0Rm94aHNiU1BBZnFyUUR1b2NNUHdURVdPMXp0VlRrcGh5ZGFacEdFQ0FD?=
 =?utf-8?B?dmdYbkYzaUtpRXV1am5pbmZCaDg0NFNjcUx1SjY4RGNpYzhET3YvbXp1YU1F?=
 =?utf-8?B?d2Y5Q2VtZmRINmw2UzFXdFdnSXE0RlpKei9KZ1RWMi95dzN0VFBERWRNOWY2?=
 =?utf-8?B?amNLeDcrT3l2b0xBbDI3S0tjcG9FdVVIYWdwWmMyaExydktMaHh6a1dYMXFa?=
 =?utf-8?B?Mkx6ZWw0TWtMSVhVallaTzVVNEVEeVJ3K3BWa292eGc2ajJJWlVHZWdtb1Z6?=
 =?utf-8?B?eGY2b1FKVHlwZk1DL2N6QnlFNTlGWUlDc2p6QWVvbXArYmFCdENFYlVodFpS?=
 =?utf-8?B?UmdkV2cwaG1rL2xJRllKM0ROK1ZnekxsVWpqOS9Nc3p4MHdUK2xzUzRnaFdw?=
 =?utf-8?B?M3N5dHVZS3V1TS9DaGlkcmhzUEJXbWk3ditsN2xUenV2U1FXLzU4UXhIbG14?=
 =?utf-8?B?eG9EdExXQ2RLYXgzWE5rZHkyclhTM2hqblFPZXNjNmlpMzFpdE16aDJIV2VH?=
 =?utf-8?B?dGdYbFB4Q3NMUkE3d2NRVXJqSjVGTU5NdW5XSVZmd01GM2NRWTZld2ZTeTZD?=
 =?utf-8?B?SWl6OHFxZGE1UWd2cTdFYitxc0NGSGVkVVhsU0MwR0V6SFNPS0hiL01SQVc1?=
 =?utf-8?B?N2QwbTdVSmhkcS8rc1h4alE2Vm1WbUUzdUloRU1GMVdCUUVoMUJmOWFaRnNO?=
 =?utf-8?B?cWhrVEJRUm05c1ZUZ1dkbjZibVNEdUZDdWJtamc1N3lhcENrU1BXOGsvWjZ2?=
 =?utf-8?B?OWNkSkpzb2cvWStSNWFuMXNTWjRjQ29FVlduQTNuYnowQjI3SE8xQmF6T3o4?=
 =?utf-8?B?c3VYd0ROQ0VhZ2VGSWhuZE5tMGNVa3FYSEk0SnNtS21EajJaVEhrbU1vMnR6?=
 =?utf-8?B?cDZDUnFobnZNcks5Z2NXMkwyVTgzekNEbTdQamRSUWhJUFM4d0VTbTJDRk5w?=
 =?utf-8?B?eGdBM29VenVkd2M4MDYyR1MrOHU0L3MzNVpPR3dNM1E3ajRvRUIrZktXWG5S?=
 =?utf-8?Q?o0U4=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2025 01:29:45.0596
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ea17690a-751f-47e6-0cee-08de1d9d2213
X-MS-Exchange-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:
	SJ5PEPF000001F1.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7574

On 2025-11-06 12:40, Grygorii Strashko wrote:
> 
> 
> On 06.11.25 19:27, Teddy Astie wrote:
>> Le 06/11/2025 Ã  18:00, Jason Andryuk a Ã©critÂ :
>>> On 2025-11-06 11:33, Grygorii Strashko wrote:
>>>> Hi Teddy, Jan,
>>>>
>>>> On 06.11.25 17:57, Teddy Astie wrote:
>>>>> Le 31/10/2025 Ã  22:25, Grygorii Strashko a Ã©critÂ :
>>>> Can try.
>>>
>>> Yes, I was thinking something like Teddy suggested:
>>>
>>> #define raw_copy_to_guest(dst, src, len)Â Â Â Â Â Â Â  \
>>> Â  Â Â Â Â Â Â Â  (is_hvm_vcpu(current) ? copy_to_user_hvm(dst, src, len) :
>>> Â  Â Â Â Â Â Â Â Â  is_pv_vcpu(current) ? copy_to_guest_pv(dst, src, len) :
>>> Â  Â Â Â Â Â Â Â Â  fail_copy(dst, src, len))
>>>
>>> But that made the think the is_{hvm,pv}_{vcpu,domain}() could be
>>> optimized for when only 1 of HVM or PV is enabled.
>>>
>>> Regards,
>>> Jason
>>>
>>> xen: Optimize is_hvm/pv_domain() for single domain type
>>>
>>> is_hvm_domain() and is_pv_domain() hardcode the false conditions for
>>> HVM=n and PV=n, but they still leave the XEN_DOMCTL_CDF_hvm flag
>>> checking.Â  When only one of PV or HVM is set, the result can be hard
>>> coded since the other is impossible.Â  Notably, this removes the
>>> evaluate_nospec() lfences.
>>>
>>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>>> ---
>>> Untested.
>>>
>>> HVM=y PV=n bloat-o-meter:
>>>
>>> add/remove: 3/6 grow/shrink: 19/212 up/down: 3060/-60349 (-57289)
>>>
>>> Full bloat-o-meter below.
>>> ---
>>> Â  Â xen/include/xen/sched.h | 18 ++++++++++++++----
>>> Â  Â 1 file changed, 14 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
>>> index f680fb4fa1..12f10d9cc8 100644
>>> --- a/xen/include/xen/sched.h
>>> +++ b/xen/include/xen/sched.h
>>> @@ -1176,8 +1176,13 @@ static always_inline bool
>>> is_hypercall_target(const struct domain *d)
>>>
>>> Â  Â static always_inline bool is_pv_domain(const struct domain *d)
>>> Â  Â {
>>> -Â Â Â  return IS_ENABLED(CONFIG_PV) &&
>>> -Â Â Â Â Â Â Â  evaluate_nospec(!(d->options & XEN_DOMCTL_CDF_hvm));
>>> +Â Â Â  if ( !IS_ENABLED(CONFIG_PV) )
>>> +Â Â Â Â Â Â Â  return false;
>>> +
>>> +Â Â Â  if ( IS_ENABLED(CONFIG_HVM) )
>>> +Â Â Â Â Â Â Â  return evaluate_nospec(!(d->options & XEN_DOMCTL_CDF_hvm));
>>> +
>>> +Â Â Â  return true;
>>> Â  Â }
>>>
>>> Â  Â static always_inline bool is_pv_vcpu(const struct vcpu *v)
>>> @@ -1218,8 +1223,13 @@ static always_inline bool is_pv_64bit_vcpu(const
>>> struct vcpu *v)
>>>
>>> Â  Â static always_inline bool is_hvm_domain(const struct domain *d)
>>> Â  Â {
>>> -Â Â Â  return IS_ENABLED(CONFIG_HVM) &&
>>> -Â Â Â Â Â Â Â  evaluate_nospec(d->options & XEN_DOMCTL_CDF_hvm);
>>> +Â Â Â  if ( !IS_ENABLED(CONFIG_HVM) )
>>> +Â Â Â Â Â Â Â  return false;
>>> +
>>> +Â Â Â  if ( IS_ENABLED(CONFIG_PV) )
>>> +Â Â Â Â Â Â Â  return evaluate_nospec(d->options & XEN_DOMCTL_CDF_hvm);
>>> +
>>> +Â Â Â  return true;
>>> Â  Â }
>>>
>>> Â  Â static always_inline bool is_hvm_vcpu(const struct vcpu *v)
>>
>> While I like the idea, it may slightly impact some logic as special
>> domains (dom_xen and dom_io) are now considered HVM domains (when !PV &&
>> HVM) instead of "neither PV nor HVM".
>> We want at least to make sure we're not silently breaking something
>> elsewhere.
> 
> first of all idle domain - I've tried to constify is_hvm_domain() and 
> even made it work,
> but diff is very fragile.

Interesting.  Yeah, I did not consider system domains.  It seems fragile 
today if sometimes !is_hvm_domain implies idle_domain.  :/

> Diff below - just FYI.
> 
> -- 
> Best regards,
> -grygorii
> 
> Author: Grygorii Strashko <grygorii_strashko@epam.com>
> Date:Â Â  Fri Oct 17 17:21:29 2025 +0300
> 
>  Â Â Â  HACK: hvm only
>  Â Â Â  Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index d65c2bd3661f..2ea3d81670de 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -567,17 +567,17 @@ int arch_vcpu_create(struct vcpu *v)
> 
>  Â Â Â Â  spin_lock_init(&v->arch.vpmu.vpmu_lock);
> 
> -Â Â Â  if ( is_hvm_domain(d) )
> -Â Â Â Â Â Â Â  rc = hvm_vcpu_initialise(v);
> -Â Â Â  else if ( !is_idle_domain(d) )
> -Â Â Â Â Â Â Â  rc = pv_vcpu_initialise(v);
> -Â Â Â  else
> +Â Â Â  if ( is_idle_domain(d) )
>  Â Â Â Â  {
>  Â Â Â Â Â Â Â Â  /* Idle domain */
>  Â Â Â Â Â Â Â Â  v->arch.cr3 = __pa(idle_pg_table);
>  Â Â Â Â Â Â Â Â  rc = 0;
>  Â Â Â Â Â Â Â Â  v->arch.msrs = ZERO_BLOCK_PTR; /* Catch stray misuses */
>  Â Â Â Â  }
> +Â Â Â  else if ( is_hvm_domain(d) )
> +Â Â Â Â Â Â Â  rc = hvm_vcpu_initialise(v);
> +Â Â Â  else
> +Â Â Â Â Â Â Â  rc = pv_vcpu_initialise(v);

This looks like an improvement as it makes the idle domain case explicit.

> 
>  Â Â Â Â  if ( rc )
>  Â Â Â Â Â Â Â Â  goto fail;
> @@ -2123,7 +2123,7 @@ void context_switch(struct vcpu *prev, struct vcpu 
> *next)
>  Â Â Â Â  vpmu_switch_from(prev);
>  Â Â Â Â  np2m_schedule(NP2M_SCHEDLE_OUT);
> 
> -Â Â Â  if ( is_hvm_domain(prevd) && !list_empty(&prev->arch.hvm.tm_list) )
> +Â Â Â  if ( !is_idle_domain(prevd) && is_hvm_domain(prevd) && ! 
> list_empty(&prev->arch.hvm.tm_list) )

The idle domain's tm_list could be initialized.  It should remain empty 
and be equivalent without modifying this line.  Though maybe your way is 
better.

>  Â Â Â Â Â Â Â Â  pt_save_timer(prev);
> 
>  Â Â Â Â  local_irq_disable();


> diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
> index 839d3ff91b5a..e3c9b4ffba52 100644
> --- a/xen/arch/x86/hvm/svm/vmcb.c
> +++ b/xen/arch/x86/hvm/svm/vmcb.c
> @@ -236,7 +236,7 @@ static void cf_check vmcb_dump(unsigned char ch)
> 
>  Â Â Â Â  for_each_domain ( d )
>  Â Â Â Â  {
> -Â Â Â Â Â Â Â  if ( !is_hvm_domain(d) )
> +Â Â Â Â Â Â Â  if ( is_idle_domain(d) || !is_hvm_domain(d) )

I don't think this should be needed as idle domain, and system domains 
in general, are not added to domlist.  So for_each_domain() will only 
iterate over user domains.

domain_create() has an early exit for system domains:
....
     /* DOMID_{XEN,IO,IDLE,etc} are sufficiently constructed. */
     if ( is_system_domain(d) )
         return d;

     arch_domain_create()
         paging_domain_init()
             p2m_init()

     domlist_insert()

>  Â Â Â Â Â Â Â Â Â Â Â Â  continue;
>  Â Â Â Â Â Â Â Â  printk("\n>>> Domain %d <<<\n", d->domain_id);
>  Â Â Â Â Â Â Â Â  for_each_vcpu ( d, v )
> diff --git a/xen/arch/x86/mm/p2m-basic.c b/xen/arch/x86/mm/p2m-basic.c
> index e126fda26760..c53269b3c06d 100644
> --- a/xen/arch/x86/mm/p2m-basic.c
> +++ b/xen/arch/x86/mm/p2m-basic.c
> @@ -34,7 +34,7 @@ static int p2m_initialise(struct domain *d, struct 
> p2m_domain *p2m)
>  Â Â Â Â  p2m->default_access = p2m_access_rwx;
>  Â Â Â Â  p2m->p2m_class = p2m_host;
> 
> -Â Â Â  if ( !is_hvm_domain(d) )
> +Â Â Â  if ( is_idle_domain(d) || !is_hvm_domain(d) )
>  Â Â Â Â Â Â Â Â  return 0;
> 
>  Â Â Â Â  p2m_pod_init(p2m);
> @@ -113,7 +113,7 @@ int p2m_init(struct domain *d)
>  Â Â Â Â  int rc;
> 
>  Â Â Â Â  rc = p2m_init_hostp2m(d);
> -Â Â Â  if ( rc || !is_hvm_domain(d) )
> +Â Â Â  if ( rc || is_idle_domain(d) || !is_hvm_domain(d) )

Given the snippet above, I think p2m functions can't be reached for 
system domains.

>  Â Â Â Â Â Â Â Â  return rc;
> 
>  Â Â Â Â  /*
> diff --git a/xen/arch/x86/mm/p2m-pod.c b/xen/arch/x86/mm/p2m-pod.c
> index 05633fe2ac88..4e62d98861fe 100644
> --- a/xen/arch/x86/mm/p2m-pod.c
> +++ b/xen/arch/x86/mm/p2m-pod.c
> @@ -1425,7 +1425,7 @@ bool p2m_pod_active(const struct domain *d)
>  Â Â Â Â  struct p2m_domain *p2m;
>  Â Â Â Â  bool res;
> 
> -Â Â Â  if ( !is_hvm_domain(d) )
> +Â Â Â  if ( is_idle_domain(d) || !is_hvm_domain(d) )

accessed via:
     do_domctl()
	vm_event_domctl()
             p2m_pod_active()

The passed in d needs to be from domlist, so again a system domain 
cannot reach here.

>  Â Â Â Â Â Â Â Â  return false;
> 
>  Â Â Â Â  p2m = p2m_get_hostp2m(d);
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index ccf8563e5a64..e1862c5085f5 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -2158,7 +2158,7 @@ static int __hwdom_init cf_check io_bitmap_cb(
> 
>  Â void __hwdom_init setup_io_bitmap(struct domain *d)
>  Â {
> -Â Â Â  if ( !is_hvm_domain(d) )
> +Â Â Â  if ( is_idle_domain(d) || !is_hvm_domain(d) )

This looks like it is called for dom0 or late_hwdom, so only real domains.
Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 06:52:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 06:52:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157341.1486138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHGKh-00084K-4P; Fri, 07 Nov 2025 06:52:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157341.1486138; Fri, 07 Nov 2025 06:52: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 1vHGKh-00084D-03; Fri, 07 Nov 2025 06:52:27 +0000
Received: by outflank-mailman (input) for mailman id 1157341;
 Fri, 07 Nov 2025 06:52: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=QcrT=5P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vHGKf-000847-Ps
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 06:52:25 +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 506039bd-bba6-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 07:52:23 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-640d0ec9651so705695a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 22:52: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
 4fb4d7f45d1cf-6411f813eb6sm3441479a12.14.2025.11.06.22.52.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 22:52: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: 506039bd-bba6-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762498343; x=1763103143; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jCC6IAiebYlEEh8DDXGJ7bMpe5CkZcWf12BH/kdOZ0U=;
        b=gBxM96cpm22YsdNA57jqaAdanBKMTFj/lgLbaUNn5zQaAIn3SbcOpfIpJjDjtMA0o9
         6IoHmOUYNCEbEF2OyqWQPKROUmTTkB6eAyY8CrR0ADN0RKOVDQ8qaphtcdp+ADh+j4Rp
         RyYFVwZR28HKfHIjlkOeJ4o6qJIQMmMg365jS0Rh4i5xlhmjJq9f5X/z/e+TglJ+w48M
         6X99nTAljZuFd5jjhnJUR4Ox3JhGbpr7rZu4RtIDM/rmtapoWoy6AAtOpf/5CTiTI6b3
         d7/vDqn2vKFo4d2GubndarcpxyRPdpmx3cMxuYSGz1pr6BOAjofnxV4ywkSfaRJ7jnQ+
         qVcA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762498343; x=1763103143;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jCC6IAiebYlEEh8DDXGJ7bMpe5CkZcWf12BH/kdOZ0U=;
        b=R4tLRvGbnzRCJnWkwquqxNUqA1o6xWyaozctWPM6smeZ7ilv/gU4WIZnpKAi/lUF6K
         aTOwaOBxAsPe5M0I8YgqK1LxrF3xBj9sUg44aXkb1xiAi9voO5+C++XlEawACYrGkdgl
         PfJAFpDfogVauNrU7ZTrKLlp29sgSmV93PUDCipszHdVA9BjmlFeRy1zA+WnGIszN6Zq
         s0KrLmcKi/EPQSQOoLnI41gtDrn28hVwo/SDpYkttjbJwWSQrTkwrFDefmMiBIB77E3V
         gcPhwkkE+Kv1APyN20c5GqzihK8o5bBb7zlgg55z406niKGmCzW77zcYxMhI6HSirPKq
         ZJkw==
X-Forwarded-Encrypted: i=1; AJvYcCVYCAWqAoovXjQhvM3XVQg24IKbcXwBqr5b70DbEKhRNk+1NbriexY5fu5kCdKzSxwWP8czGLADITA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzJJ2MRh7kGGaPFXi75wHsflX1lcTbK8Ig3yu6Sq/BoCy0D+DYd
	NlGpudjQ4re3FIqEhmTEGs+cpOgN87RHXtdSk71TouMrME+246oHI5uZSumGQlh/4A==
X-Gm-Gg: ASbGnctvzvzBNTXlultjAQdsAJd0zKuii4iZrO17kzbIMv2z8BLP7qZoRLNjXCCwTps
	hR4pPkDd5AFyEnp8oCDrAR9/wo4kxTfthJzYdEU2cndzpkTJtYYXzq6MHE6k8rTWUztFprtDqVa
	bgoEhJj0L/+ZfU8i+n+e/TyQp12OlgWG68am08IXZLc+nWJN2b5wCvhJSIdXuuSIbHRdN5dYeOc
	0QXl7Lx1skY2h2U+1XFuYS0T18qq/qWOaAv3gBn4PQm8DGTjRfY5v6ZGC3Ioq0an53A2bOA1ShH
	/8GkERRdx8z1iXmaaUJ/BAcI3ulH0ZoRg5fston8PkE1FvTrzY0hqcj4XeZ0f2CVBlkvF6Y7+OM
	FdOLCZLKzlehY/y205rtX9bi88B8QFcPu9hnKxMRViqKpXbaACfieyQGqXT6zgf7zPRgaBUIQJ7
	VlC2tSwHOPVPlz2zrZvQIKva9Tvm3UKirS+MZRhipDLSNep2wpZLT64byEF7yZDB5yvhQPXfY=
X-Google-Smtp-Source: AGHT+IGMijw0HjbCBfmvGOqOOyJr5qsQ+e1TVEJ6ZcQjXA8EVVrIQGMbSfgjnaNI63q1dYCSiMos6Q==
X-Received: by 2002:a05:6402:5355:20b0:640:aa43:1595 with SMTP id 4fb4d7f45d1cf-6413f0c2118mr1482652a12.38.1762498343203;
        Thu, 06 Nov 2025 22:52:23 -0800 (PST)
Message-ID: <0dd91607-6df5-4be8-a92a-c3046542748c@suse.com>
Date: Fri, 7 Nov 2025 07:52:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/x86: guest_access: optimize raw_x_guest() for PV
 and HVM combinations
To: Grygorii Strashko <grygorii_strashko@epam.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>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>
References: <20251106222630.2777457-1-grygorii_strashko@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: <20251106222630.2777457-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.11.2025 23:26, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Xen uses below pattern for raw_x_guest() functions:
> 
> define raw_copy_to_guest(dst, src, len)        \
>     (is_hvm_vcpu(current) ?                     \
>      copy_to_user_hvm((dst), (src), (len)) :    \
>      copy_to_guest_pv(dst, src, len))
> 
> This pattern works depending on CONFIG_PV/CONFIG_HVM as:
> - PV=y and HVM=y
>   Proper guest access function is selected depending on domain type.
> - PV=y and HVM=n
>   Only PV domains are possible. is_hvm_domain/vcpu() will constify to "false"
>   and compiler will optimize code and skip HVM specific part.
> - PV=n and HVM=y
>   Only HVM domains are possible. is_hvm_domain/vcpu() will not be constified.
>   No PV specific code will be optimized by compiler.
> - PV=n and HVM=n
>   No guests should possible. The code will still follow PV path.
> 
> Rework raw_x_guest() code to use static inline functions which account for
> above PV/HVM possible configurations with main intention to optimize code
> for (PV=n and HVM=y) case.
> 
> For the case (PV=n and HVM=n) return "len" value indicating a failure (no
> guests should be possible in this case, which means no access to guest
> memory should ever happen).
> 
> Finally build arch/x86/usercopy.c only for PV=y.
> 
> The measured (bloat-o-meter) improvement for (PV=n and HVM=y) case is:
>   add/remove: 2/9 grow/shrink: 2/90 up/down: 1678/-32560 (-30882)
>   Total: Before=1937092, After=1906210, chg -1.59%
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> [teddy.astie@vates.tech: Suggested to use static inline functions vs macro combinations]
> Suggested-by: Teddy Astie <teddy.astie@vates.tech>

Just one formal request for now: Please send patches To: the list, with individuals
on Cc: as necessary.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 07:04:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 07:04:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157353.1486148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHGWP-0001PC-2U; Fri, 07 Nov 2025 07:04:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157353.1486148; Fri, 07 Nov 2025 07:04:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHGWO-0001P5-VG; Fri, 07 Nov 2025 07:04:32 +0000
Received: by outflank-mailman (input) for mailman id 1157353;
 Fri, 07 Nov 2025 07:04: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=QcrT=5P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vHGWN-0001Ox-Pg
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 07:04:31 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 016d408d-bba8-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 08:04:30 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b72bf7e703fso73882466b.2
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 23:04: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
 a640c23a62f3a-b72bf9bd741sm157835466b.57.2025.11.06.23.04.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 23:04: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: 016d408d-bba8-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762499070; x=1763103870; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tHfuwdz9s2xsTd7gl1mH7DeJLTGqHu52PmKN81cOOvk=;
        b=TcytoPG80s70ONH2eCeJPaCS1/xnFz4AubvnMLUSq7meM2GQvYeu4DSSdjVbHEhZwm
         TRa7CcitHfYVEW/fQH9WWd+4mTlapaLlaME6Q4+VKS+WUYYc4imvfNSmACVYBBbWAKuR
         2qbwhKybgw6WgLi6SjtjRKGt9lj1Kn9QY8x4v+bTU9LQHjeoA9PlmIxrqfg6Lf67aToV
         VvjH92HMR1wbLWGnPUOKOvwrWPl4wuZy+vqCudKNanlmvNyTqMZvVHXj5bY084qWH/UF
         0yyQ59TSFMFUKXVWeWeA6DKBURAmq36Weg7svzy0fEAteFUgYyKIxtehnnU2mmgSESfH
         iozg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762499070; x=1763103870;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tHfuwdz9s2xsTd7gl1mH7DeJLTGqHu52PmKN81cOOvk=;
        b=kjop2WkSpMBkDZXu3pw+DizR9bSZrlgQCEdjT+oLUS3xUywlCXHD2tZXVTcAmh2jC1
         oE2Lxb8OA8wEXKUcw7Xp8G91Yfvdtg8fl976BD15GaligM/WtGM9++uBaWHIFRb3IQQs
         oEN9ZKsfnV9nFnQGMC7CCC+FqsNR0OsMQL3XNFC26GjU8qAMrOSAEKJz0YM4/azleapx
         rn6iiAq7tvkdw9KLfp6Kl09Z9UjQFm/Itd2spMKYhhR4jMWpixOlU2YBm9YZpwH7kQfy
         XeBhM84Ul1OLI7xJOPPPIMy2+Cl2EYT2QDW9vjD6Tkb+WsKJCJgLvAkXdOSP7kcwVzbY
         ETjw==
X-Gm-Message-State: AOJu0Yw1S8NbyN8MemBHyPEJgnEgoPYA4MkpuxaVPS70zYAqqwgnA8YO
	i7vRGBG+zUXnhc7gYQrJfzt9LIveMag+jSVchSDs6r/+zL9ooeJJa3TyILYGX46f7g==
X-Gm-Gg: ASbGncvHZ/Dlfv4jMTtqimUQ8VwpAyYbpEhWT0CuwnKVb9O1jelORnSCMemUisyMFqX
	2vlEmVHOX4dOopi/UJFMTrtVWc7K24WWffGg4rTqGMCzBIvkwrDgPCrilVTMwp+2BpEbLeDJmPM
	IBu4NZXwd93wzYuommk1lnxWTsw6Exw3nf7+n8gqVd4HRfk5bq92/L7MoDd5AXS+CrrOJ+lgXbZ
	se9ZS85d52OkCIEbYKgJOF7lzFrfcTCc/v4k1zUUXeOaXz7xOmSewk0G33CMPZ830f0hoabeZQ4
	ruQQ4kdKnRf8XxpmC0cAWU2sFniIK2VsiFEAacjoE4lZPV1p0sS5bYRLsWHLVAub59uUxIb1T5D
	YmtLNZ7vUFFDS6DPSYtHOhyevLiqWpoKC85pJg+bU1cIXxP0J+TZe7aLd8im4F+cNq5m2iUiMIG
	SQKtttRiWi76IecQHfP1xdNguJ9fXJqd5Nv+P5iFIk1m3baPksYG+8IANPD/rN
X-Google-Smtp-Source: AGHT+IHsmN4v8IiAF8LOhSyxGrMxp+uGAtsNmoCEzDXSIvDeXAuakqKLUyobkvQhQoLLdiM4We8Hbg==
X-Received: by 2002:a17:907:9304:b0:b6d:5f52:eee8 with SMTP id a640c23a62f3a-b72c07f7f09mr202790866b.29.1762499069429;
        Thu, 06 Nov 2025 23:04:29 -0800 (PST)
Message-ID: <1fa1ca4d-62ce-49ee-8a8a-8d0d9e8abf2e@suse.com>
Date: Fri, 7 Nov 2025 08:04:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen: Strip xen.efi by default
To: Frediano Ziglio <freddy77@gmail.com>
Cc: xen-devel@lists.xenproject.org,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Demi Marie Obenour <demiobenour@gmail.com>
References: <20251105153808.20278-1-frediano.ziglio@citrix.com>
 <fdc9fd41-2224-4672-911e-3e17b428d32a@gmail.com>
 <CAHt6W4eyH_7c4Q-KYaDjNJnSXjKSVNT1iSw0sNbLMXnK3iEHRg@mail.gmail.com>
 <d193feac-3285-4c26-9a8a-ba09437e7e76@gmail.com>
 <CAHt6W4fEbuk+VzjFxfz5=T8GXCVW_jSoqqMAkiQTXL79B93SPg@mail.gmail.com>
 <98e2f19f-5fce-4ad1-b821-f5abb1f815f6@suse.com>
 <CAHt6W4fscR1zAPbEmmgy5ARUGN5R2XBLF=Lkbjw3GU_RwibTfA@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAHt6W4fscR1zAPbEmmgy5ARUGN5R2XBLF=Lkbjw3GU_RwibTfA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.11.2025 17:32, Frediano Ziglio wrote:
> On Thu, 6 Nov 2025 at 10:27, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 06.11.2025 10:58, Frediano Ziglio wrote:
>>> On Thu, 6 Nov 2025 at 03:52, Demi Marie Obenour <demiobenour@gmail.com> wrote:
>>>> Does objdump on the signed file return correct section names?
>>>
>>> From objdump -x
>>>
>>> Sections:
>>> Idx Name          Size      VMA               LMA               File off  Algn
>>>   0 .text         0016c9ae  ffff82d040200000  ffff82d040200000  00000320  2**4
>>>                   CONTENTS, ALLOC, LOAD, READONLY, CODE
>>>   1 .rodata       0006b9e8  ffff82d040400000  ffff82d040400000  0016cce0  2**2
>>>                   CONTENTS, ALLOC, LOAD, DATA
>>>   2 .buildid      00000035  ffff82d04046c000  ffff82d04046c000  001d86e0  2**2
>>>                   CONTENTS, ALLOC, LOAD, READONLY, DATA
>>>   3 .init.text    0004d123  ffff82d040600000  ffff82d040600000  001d8720  2**2
>>>                   CONTENTS, ALLOC, LOAD, READONLY, CODE
>>>   4 .init.data    0006c9b0  ffff82d040800000  ffff82d040800000  00225860  2**2
>>>                   CONTENTS, ALLOC, LOAD, DATA
>>>   5 .data.read_mostly 00028da8  ffff82d040a00000  ffff82d040a00000
>>> 00292220  2**4
>>>                   CONTENTS, ALLOC, LOAD, DATA
>>>   6 .data         0000feec  ffff82d040a29000  ffff82d040a29000  002bafe0  2**4
>>>                   CONTENTS, ALLOC, LOAD, DATA
>>>   7 .bss          00223108  ffff82d040a39000  ffff82d040a39000  00000000  2**4
>>>                   ALLOC
>>>   8 .reloc        000016b8  ffff82d040c5d000  ffff82d040c5d000  002caee0  2**2
>>>                   CONTENTS, ALLOC, LOAD, READONLY, DATA
>>>   9 .sbat         000000a6  ffff82d040c5f000  ffff82d040c5f000  002cc5a0  2**2
>>>                   CONTENTS, READONLY
>>>
>>> Which looks correct.
>>>
>>> From hexdump -C I can see close to the end
>>>
>>> ...
>>> 002cc580  30 ae 38 ae 60 ae 00 00  00 80 a3 00 10 00 00 00  |0.8.`...........|
>>> 002cc590  a0 ae c0 ae e0 ae 00 00  00 00 00 00 00 00 00 00  |................|
>>> 002cc5a0  73 62 61 74 2c 31 2c 53  42 41 54 20 56 65 72 73  |sbat,1,SBAT Vers|
>>> 002cc5b0  69 6f 6e 2c 73 62 61 74  2c 31 2c 68 74 74 70 73  |ion,sbat,1,https|
>>> 002cc5c0  3a 2f 2f 67 69 74 68 75  62 2e 63 6f 6d 2f 72 68  |://github.com/rh|
>>> 002cc5d0  62 6f 6f 74 2f 73 68 69  6d 2f 62 6c 6f 62 2f 6d  |boot/shim/blob/m|
>>> 002cc5e0  61 69 6e 2f 53 42 41 54  2e 6d 64 0a 78 65 6e 2e  |ain/SBAT.md.xen.|
>>> 002cc5f0  78 73 2c 31 2c 43 6c 6f  75 64 20 53 6f 66 74 77  |xs,1,Cloud Softw|
>>> 002cc600  61 72 65 20 47 72 6f 75  70 2c 78 65 6e 2c 34 2e  |are Group,xen,4.|
>>> 002cc610  32 30 2e 31 2d 37 2e 32  32 2e 67 33 65 30 36 37  |20.1-7.22.g3e067|
>>> 002cc620  32 36 62 2e 78 73 39 2c  6d 61 69 6c 74 6f 3a 73  |26b.xs9,mailto:s|
>>> 002cc630  65 63 75 72 69 74 79 40  78 65 6e 73 65 72 76 65  |ecurity@xenserve|
>>> 002cc640  72 2e 63 6f 6d 0a 00 00  00 00 00 00 00 00 00 00  |r.com...........|
>>> 002cc650  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
>>> 002cc660  2c 00 00 00 2e 69 6e 69  74 2e 74 65 78 74 00 2e  |,....init.text..|
>>> 002cc670  69 6e 69 74 2e 64 61 74  61 00 2e 64 61 74 61 2e  |init.data..data.|
>>> 002cc680  72 65 61 64 5f 6d 6f 73  74 6c 79 00 00 00 00 00  |read_mostly.....|
>>> 002cc690  9e 05 00 00 00 02 02 00  30 82 05 92 06 09 2a 86  |........0.....*.|
>>> 002cc6a0  48 86 f7 0d 01 07 02 a0  82 05 83 30 82 05 7f 02  |H..........0....|
>>> 002cc6b0  01 01 31 0f 30 0d 06 09  60 86 48 01 65 03 04 02  |..1.0...`.H.e...|
>>> 002cc6c0  01 05 00 30 5c 06 0a 2b  06 01 04 01 82 37 02 01  |...0\..+.....7..|
>>> 002cc6d0  04 a0 4e 30 4c 30 17 06  0a 2b 06 01 04 01 82 37  |..N0L0...+.....7|
>>> 002cc6e0  02 01 0f 30 09 03 01 00  a0 04 a2 02 80 00 30 31  |...0..........01|
>>> 002cc6f0  30 0d 06 09 60 86 48 01  65 03 04 02 01 05 00 04  |0...`.H.e.......|
>>> 002cc700  20 e2 47 64 f8 e8 7b 62  eb 17 e0 13 0a 0d 93 02  | .Gd..{b........|
>>> 002cc710  7a d8 3b f0 20 a8 ee 3d  49 98 3f de c1 47 de 15  |z.;. ..=I.?..G..|
>>> 002cc720  43 a0 82 03 2c 30 82 03  28 30 82 02 10 a0 03 02  |C...,0..(0......|
>>> 002cc730  01 02 02 11 00 8f fc 11  bf 41 54 40 74 89 2c 53  |.........AT@t.,S|
>>> 002cc740  a5 78 c1 e8 32 30 0d 06  09 2a 86 48 86 f7 0d 01  |.x..20...*.H....|
>>> 002cc750  01 0b 05 00 30 1c 31 1a  30 18 06 03 55 04 03 13  |....0.1.0...U...|
>>> 002cc760  11 58 65 6e 53 65 72 76  65 72 20 58 65 6e 20 64  |.XenServer Xen d|
>>> 002cc770  65 76 30 1e 17 0d 32 35  30 33 32 30 31 36 35 35  |ev0...2503201655|
>>> 002cc780  30 37 5a 17 0d 33 37 30  31 31 39 30 33 31 34 30  |07Z..37011903140|
>>> 002cc790  37 5a 30 1c 31 1a 30 18  06 03 55 04 03 13 11 58  |7Z0.1.0...U....X|
>>> 002cc7a0  65 6e 53 65 72 76 65 72  20 58 65 6e 20 64 65 76  |enServer Xen dev|
>>> ...
>>>
>>> So, this confirms that the string table is there to support larger
>>> section names and the signature is there and it's working.
>>
>> But is it going to work on all EFI implementations, or merely the one you tried?
> 
> Can you be more specific ?
> The file was tested using dozens of different hardware and under Qemu.
> Only x64 if it's what you mean.

No, I was referring to the fact that there are distinct EFI implementations,
which may differ in their loader behavior. But see also Demi's clarification
on her original remark.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 07:08:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 07:08:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157364.1486158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHGaT-00021S-JT; Fri, 07 Nov 2025 07:08:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157364.1486158; Fri, 07 Nov 2025 07:08: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 1vHGaT-00021L-Fa; Fri, 07 Nov 2025 07:08:45 +0000
Received: by outflank-mailman (input) for mailman id 1157364;
 Fri, 07 Nov 2025 07:08: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=QcrT=5P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vHGaR-00021F-VI
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 07:08:43 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 97e4f545-bba8-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 08:08:42 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-640b4a52950so644843a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 06 Nov 2025 23:08: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
 a640c23a62f3a-b72bf97d0f3sm172671466b.48.2025.11.06.23.08.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 06 Nov 2025 23:08: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: 97e4f545-bba8-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762499322; x=1763104122; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=leFjE9259Sq/ezXHqaZMh5rdJUxWsZFRt30RuF0icqo=;
        b=Lo4sCJbcvxeYbc6SB7I8X3Fi6deqNDYTIjVeIyYiEU+3JTm03Jl1wnhg/NwAKCqTTh
         DryUPsJReXQS4L4FAQEveW9YcRCofY5ozyJC582gqPBPo/xOKPxayYqV+Q7douA7D8A3
         v0XQT3tJJ1z6rYaiqLUlseWXqKnXzePpE7ihU37X5bZeT32KZogqFtE8NaCn45Gmg30n
         3SzsTdnRnf67qeJcjejkhM/SuBJJXQpSz1d1WjeR6zTO9xbZ1icSMf0vqT51XlSNcEDy
         tlH+zVfTMYOaqXw7Y7oNUNphZpIgjhmr0RSySgWhpzBYiO1iEmNySZhEa5c3G2cZD/hI
         y56Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762499322; x=1763104122;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=leFjE9259Sq/ezXHqaZMh5rdJUxWsZFRt30RuF0icqo=;
        b=wuasEsEI1co1rJhVV7s8CBeG1t1ZJti3ILlASnn5l764rISKTWPoSn0WKiGYYTRqIn
         FCh7BDkjRr6pc4ACvj3IvYOolturMZT4FGRHNex8zIMGzMIGya2hCOQq20ITVD5Bx91W
         GuDU+z+G2BSRwvGSri4VUE/sKDAVDjxV0EtPSrrs4Bs5FMNTKtrvbLYVsxQi7oK8rlP9
         OQE9CzygRoVhCQBlm94gAaZj9Ct0su5UTlLomdg5R1vhEn9I402Rjly61w1PUl6qM2XS
         2KBcyZWroIA/X09HWV+Hk+p0ouogo3A+8Mg3qDhBw6FXqgjigdi9ZqL9AdlC0y6ekkwy
         dPmQ==
X-Forwarded-Encrypted: i=1; AJvYcCWe/KbNKYGddxt6FplOhTlQnuAIbVEytvhRkpyx+3AoOzzsWrf+0a7aZfeHzRvY/S8c/2StKmve7fA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YySKAnSvnF9obx9K6dF3vJI1Iolx6Il6nyxGqQgW23Lq6x08/nG
	ed5uaiCslyfkrKoHMKvOBDTyEuijGU+8eVf3jQEj3irX9WVs1CqPVb5+jtkIh01zSg==
X-Gm-Gg: ASbGncsOwey8oIxf0N57QmMkzNbI7G/O9Nr650FSsgp3EYkROVAfTlyxIT3hgK27qwW
	uaVLxFlaBMrLUO7ipkAPlz6rVuZ6Mt5byQ9tF89lFk2gcsm1E+InFlk9cz0pe5YnmIRXPUxu/hS
	I7TbgD+1nUwYwSZDt8HmDTadLZC8xX4FtacIUFVqGyrFtg/k/8k0NvOaJHA/nNo8Gz7JtN2SyOb
	4D/umPzX/NVDsXCTC6iDJbhn2RgqO73wniEW3tQUhHv33I2pnzdyY+oAvFbkeIiHbrQh710DJC/
	BF4n9qHYwchYz2bwLD770SMkFTTP1k3UGc2nlUT9DQs3KO64TPwXET8FJKi3iZARDqHyyfzYzkN
	Oou2mBC8wvhgrs1/z1Ed4Mua0OyahaYcgVlglcRaZJrpeydv0hCvCAEt2VEQQh0l2udVgI8yQFV
	BtDWU1av1OXIJv445y5dR/BxC8J7x2l7LVm/yL+3X7F8PiLw/4s8jMUlAPwZ6dQTabc09U7dc=
X-Google-Smtp-Source: AGHT+IHMP6WhrS4dfoqSRpJd1ARSUMhrsErweHaWbTqeL3ZVjOHDi4LtJFvHD/lC8JcUkaQbUcTHuw==
X-Received: by 2002:a17:907:7f26:b0:b3d:9261:ff1b with SMTP id a640c23a62f3a-b72c0a5f780mr187160766b.5.1762499322172;
        Thu, 06 Nov 2025 23:08:42 -0800 (PST)
Message-ID: <c0a7d349-8338-45a3-b701-f07ef3e6526b@suse.com>
Date: Fri, 7 Nov 2025 08:08:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen: Strip xen.efi by default
To: Frediano Ziglio <freddy77@gmail.com>
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251105153808.20278-1-frediano.ziglio@citrix.com>
 <97611b79-228c-40a6-9fb2-4571b2447258@suse.com>
 <CAHt6W4ce9cPwdaYXwgL4Unkprh4BQ2Qh_CSM0q9WjP2fdVf-Gg@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAHt6W4ce9cPwdaYXwgL4Unkprh4BQ2Qh_CSM0q9WjP2fdVf-Gg@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.11.2025 17:37, Frediano Ziglio wrote:
> On Thu, 6 Nov 2025 at 10:32, Jan Beulich <jbeulich@suse.com> wrote:
>> On 05.11.2025 16:38, Frediano Ziglio wrote:
>>> --- a/xen/Kconfig.debug
>>> +++ b/xen/Kconfig.debug
>>> @@ -147,12 +147,7 @@ config DEBUG_INFO
>>>         Say Y here if you want to build Xen with debug information. This
>>>         information is needed e.g. for doing crash dump analysis of the
>>>         hypervisor via the "crash" tool.
>>> -       Saying Y will increase the size of the xen-syms and xen.efi
>>> -       binaries. In case the space on the EFI boot partition is rather
>>> -       limited, you may want to install a stripped variant of xen.efi in
>>> -       the EFI boot partition (look for "INSTALL_EFI_STRIP" in
>>> -       docs/misc/efi.pandoc for more information - when not using
>>> -       "make install-xen" for installing xen.efi, stripping needs to be
>>> -       done outside the Xen build environment).
>>> +       Saying Y will increase the size of the xen-syms and xen.efi.elf
>>> +       binaries.
>>
>> Why xen.efi.elf and not xen-syms.efi?
>>
> 
> I forgot to update this part.
> Now that I see the comment, was the suggestion about having an
> additional xen-syms.efi file or having xen-syms.efi instead of
> xen.efi.elf ?

The former. We want to have the binary available that the linker produced
directly. Anything else are extra's for what people think they may need.

>>> --- a/xen/arch/x86/Makefile
>>> +++ b/xen/arch/x86/Makefile
>>> @@ -228,14 +228,17 @@ endif
>>>       $(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
>>>       $(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
>>>             $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
>>> -           $(note_file_option) -o $@
>>> -     $(NM) -pa --format=sysv $@ \
>>> +           $(note_file_option) -o $@.tmp
>>> +     $(NM) -pa --format=sysv $@.tmp \
>>>               | $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
>>>               > $@.map
>>>  ifeq ($(CONFIG_DEBUG_INFO),y)
>>> -     $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
>>> +     $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))cp -f \
>>> +        $@.tmp $(TARGET)-syms.efi
>>> +     $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(STRIP) $@.tmp
>>>  endif
>>>       rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
>>> +     mv -f $@.tmp $@
>>>  ifeq ($(CONFIG_XEN_IBT),y)
>>>       $(SHELL) $(srctree)/tools/check-endbr.sh $@
>>>  endif
>>
>> I see $@.tmp here, but no sign of xen-syms. Did you submit a stake patch? Am
>> I missing something?
>>
> 
> I don't know what a "stake patch" is.

Sorry, typo - "stale" was meant.

> xen-syms.efi (that is $(TARGET)-syms.efi in the Makefile) is not a
> target of this rule so if the rule fails it will be generated again.

How does this matter in this context? The description talks of a xen-syms.efi
being generated, yet I'm simply unable to spot where that would be happening.

>> I also think the mv should sit ahead of the cleaning-up rm.
> 
> Are you sure?
> Usually you want it as the last command so any failure won't create
> the target. For instance here if check-endbr.sh is failing the target
> is still created and next make command will succeed.

Except that the rm is tidying up rather than creating anything.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 08:29:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 08:29:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157387.1486187 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHHq9-00046U-Qj; Fri, 07 Nov 2025 08:29:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157387.1486187; Fri, 07 Nov 2025 08: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 1vHHq9-00046N-Nn; Fri, 07 Nov 2025 08:29:01 +0000
Received: by outflank-mailman (input) for mailman id 1157387;
 Fri, 07 Nov 2025 08:29: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=suI1=5P=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vHHq8-0003eW-6F
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 08:29:00 +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 ce8c793a-bbb3-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 09:28:58 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-640b9c7eab9so921798a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 07 Nov 2025 00:28:58 -0800 (PST)
Received: from [192.168.50.2] (pool185-5-253-110.as6723.net. [185.5.253.110])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b72bdbcaeaasm186291766b.1.2025.11.07.00.28.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 07 Nov 2025 00:28: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: ce8c793a-bbb3-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762504138; x=1763108938; 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=6AmKl85eFp0cNTVepMXc06n++lf/ZVa6szbytxf8Sio=;
        b=i41aalgrZYf6tLanHx14XcVmMeKsHds/hPWcU9xsGXMoGfhEGQyZ34IWKSrXsexvUk
         iW2V6btuJNnqJ2UXIhaiG2kOvkG06LDceJT3nRGhlymp8onmBAkAodEYJ1rqK32m3wW4
         DUDrBIb+OS3edpMyktlfgPrA5AuDrz71LGmDVsSQ8ly8OdHXr1oGx9kzdtHQmAZ8VBH7
         7o9/vtBJtA5oxNX1jJ/rG1VRPmu6vLNmKrdnZlNQJHXr9gVpf1jUcn39uxWtdk3qwoVx
         LGAePH3WF2XYbWlv0GO/57Omltp2d8zMXO+xfx9IAUYAFz9R/hTR9b5umYWBj5q0hXMk
         nTkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762504138; x=1763108938;
        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=6AmKl85eFp0cNTVepMXc06n++lf/ZVa6szbytxf8Sio=;
        b=o6yG2LvatTHu7Zu2KThbpSnlLYyPsO15wF+TQdl0QdCqNo4Kmpu966juv3RneeWO36
         /pP/60nnM2v210qBBPj+8ZA/zYICDrZEBSSaSRliI7YHaVKWyEDhPbFDcB9avvRtVWzT
         p8FjXQWbnHSnxrlMs15sq79Zydy2qs/602GEsQqCtuPi0/3U7m7XKFxzJ3wKiwzqrDUm
         QlKrD65Or26Y3VvGXjjB6FNhKijUUr+AULeOFg0pXS5C3mkceXUgp7OzbsTrgPJr2rSP
         /yGu+uX+f3g7ShtkENa/0wLUc2BdCXv4IzQhsThA7yzQifebqQW5lDI7iiL+fR4idVND
         Bysg==
X-Forwarded-Encrypted: i=1; AJvYcCWHksmCzX2IyVAg065O3wwNLz8eoxhxq3w3Hc72JOLkFJWzF1+zBTHcIK5tZ7ofkZhPoAnZdm27Mks=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy7VA4nvZBzftYT8j6tHq1wLWNWAWvN2NIHL+ZdnjtoLvqcT49A
	NAU/aGjQh2ZaCnkymBUgsSOIJMWhERrThy/7aOt5ESn5XusjVMc4AWpv
X-Gm-Gg: ASbGnctCEffKnZAPtJ3741dUl6lLCn5VyCk+aSRs5WIan7e1xJywOwdZtlH0+bBnOpO
	UsyasovpDX5h27/VZuy9GQ6LPqbo96jbo3gKIrz5rMbpybZsHFBhO+PX6M46fERHu7LKSaJtAE/
	b9/9xbeRN5Iw9+b0OJFGk3VwDUeHW7B4eMJdIAQ8r1sW7Yu6QAvjZPhfWRIi7MLBdJoXnCrtm9r
	m7R5KDtUz5jz6KL8CLjU/c3lmkGQtNpRY9k0SdMoqTxm6Zk0wXWjwKo6MrwI4hX5ZWnDQKTs68o
	eLAwcrhhVsL2IVyl8s1S/zlsjGKjrPvx0xLqLjW5O5wy4itzmY4GyLmUF1scnIquwcSea4hAfG8
	eVIzSaqONuYX7hZpVxHA5EzBFwPrL1PDinUogqfY8x3FsSfmXiH403760ChDOcWxJGkJijdr/49
	/+yDr/hCdyP3TWTBXM8g4q6+Pc1yLZeF0Uso4=
X-Google-Smtp-Source: AGHT+IHeJ4fhbfjgSfmLTmW23obgjMrDOpONRm155RTcCRWlz9f/0G9l+i/lKNEp/yJRrz94DPIpbQ==
X-Received: by 2002:a17:907:c1d:b0:b49:2021:793f with SMTP id a640c23a62f3a-b72c0d9fae1mr244347066b.53.1762504137785;
        Fri, 07 Nov 2025 00:28:57 -0800 (PST)
Message-ID: <0b5f19ea-6e33-4658-a165-f0af1cffbd03@gmail.com>
Date: Fri, 7 Nov 2025 10:27:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Mykola Kvach <xakep.amatop@gmail.com>
Subject: Re: [PATCH v13 01/12] xen/common: add cache coloring common code
To: Carlo Nonato <carlo.nonato@minervasys.tech>,
 xen-devel@lists.xenproject.org
Cc: andrea.bastoni@minervasys.tech, marco.solieri@minervasys.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_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20241217170637.233097-1-carlo.nonato@minervasys.tech>
 <20241217170637.233097-2-carlo.nonato@minervasys.tech>
Content-Language: en-US
In-Reply-To: <20241217170637.233097-2-carlo.nonato@minervasys.tech>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Carlo,

Thank you for the patch.

On 17/12/2024 19:06, Carlo Nonato wrote:
> Last Level Cache (LLC) coloring allows to partition the cache in smaller
> chunks called cache colors.
> 
> Since not all architectures can actually implement it, add a HAS_LLC_COLORING
> Kconfig option.
> LLC_COLORS_ORDER Kconfig option has a range maximum of 10 (2^10 = 1024)
> because that's the number of colors that fit in a 4 KiB page when integers
> are 4 bytes long.
> 
> LLC colors are a property of the domain, so struct domain has to be extended.
> 
> Based on original work from: Luca Miccio <lucmiccio@gmail.com>
> 
> Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>
> Acked-by: Michal Orzel <michal.orzel@amd.com>
> ---
> v13:
> - added note to cmdline docs for llc-nr-ways and llc-size shorthand precedence
> v12:
> - fixed build errors
> - added opt_llc_coloring to improve readibility
> - reverted llc_coloring_enabled type to bool
> v11:
> - __COLORING_H__ -> __XEN_LLC_COLORING_H__ in llc-coloring.h
> - added SPDX tag to cache-coloring.rst
> - llc-coloring=off now takes precedence over other cmdline options
> - removed useless #includes
> v10:
> - fixed commit message to use LLC_COLORS_ORDER
> - added documentation to index.rst
> - moved check on CONFIG_NUMA in arch/arm/Kconfig (next patch)
> - fixed copyright line
> - fixed array type for colors parameter in print_colors()
> - added check on (way_size & ~PAGE_MASK)
> v9:
> - dropped _MAX_ from CONFIG_MAX_LLC_COLORS_ORDER
> v8:
> - minor documentation fixes
> - "llc-coloring=on" is inferred from "llc-nr-ways" and "llc-size" usage
> - turned CONFIG_NR_LLC_COLORS to CONFIG_MAX_LLC_COLORS_ORDER, base-2 exponent
> - moved Kconfig options to common/Kconfig
> - don't crash if computed max_nr_colors is too large
> v7:
> - SUPPORT.md changes added to this patch
> - extended documentation to better address applicability of cache coloring
> - "llc-nr-ways" and "llc-size" params introduced in favor of "llc-way-size"
> - moved dump_llc_coloring_info() call in 'm' keyhandler (pagealloc_info())
> v6:
> - moved almost all code in common
> - moved documentation in this patch
> - reintroduced range for CONFIG_NR_LLC_COLORS
> - reintroduced some stub functions to reduce the number of checks on
>    llc_coloring_enabled
> - moved domain_llc_coloring_free() in same patch where allocation happens
> - turned "d->llc_colors" to pointer-to-const
> - llc_coloring_init() now returns void and panics if errors are found
> v5:
> - used - instead of _ for filenames
> - removed domain_create_llc_colored()
> - removed stub functions
> - coloring domain fields are now #ifdef protected
> v4:
> - Kconfig options moved to xen/arch
> - removed range for CONFIG_NR_LLC_COLORS
> - added "llc_coloring_enabled" global to later implement the boot-time
>    switch
> - added domain_create_llc_colored() to be able to pass colors
> - added is_domain_llc_colored() macro
> ---
>   SUPPORT.md                        |   7 ++
>   docs/index.rst                    |   1 +
>   docs/misc/cache-coloring.rst      | 118 ++++++++++++++++++++++++++++
>   docs/misc/xen-command-line.pandoc |  39 ++++++++++
>   xen/common/Kconfig                |  21 +++++
>   xen/common/Makefile               |   1 +
>   xen/common/keyhandler.c           |   3 +
>   xen/common/llc-coloring.c         | 124 ++++++++++++++++++++++++++++++
>   xen/common/page_alloc.c           |   3 +
>   xen/include/xen/llc-coloring.h    |  36 +++++++++
>   xen/include/xen/sched.h           |   5 ++
>   11 files changed, 358 insertions(+)
>   create mode 100644 docs/misc/cache-coloring.rst
>   create mode 100644 xen/common/llc-coloring.c
>   create mode 100644 xen/include/xen/llc-coloring.h
> 
> diff --git a/SUPPORT.md b/SUPPORT.md
> index 82239d0294..998faf5635 100644
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -401,6 +401,13 @@ by maintaining multiple physical to machine (p2m) memory mappings.
>       Status, x86 HVM: Tech Preview
>       Status, ARM: Tech Preview
>   
> +### Cache coloring
> +
> +Allows to reserve Last Level Cache (LLC) partitions for Dom0, DomUs and Xen
> +itself.
> +
> +    Status, Arm64: Experimental
> +
>   ## Resource Management
>   
>   ### CPU Pools
> diff --git a/docs/index.rst b/docs/index.rst
> index 1d44796d72..1bb8d02ea3 100644
> --- a/docs/index.rst
> +++ b/docs/index.rst
> @@ -66,6 +66,7 @@ Documents in need of some rearranging.
>      misc/xen-makefiles/makefiles
>      misra/index
>      fusa/index
> +   misc/cache-coloring
>   
>   
>   Miscellanea
> diff --git a/docs/misc/cache-coloring.rst b/docs/misc/cache-coloring.rst
> new file mode 100644
> index 0000000000..371f21a0e7
> --- /dev/null
> +++ b/docs/misc/cache-coloring.rst
> @@ -0,0 +1,118 @@
> +.. SPDX-License-Identifier: CC-BY-4.0
> +
> +Xen cache coloring user guide
> +=============================
> +
> +The cache coloring support in Xen allows to reserve Last Level Cache (LLC)
> +partitions for Dom0, DomUs and Xen itself. Currently only ARM64 is supported.
> +Cache coloring realizes per-set cache partitioning in software and is applicable
> +to shared LLCs as implemented in Cortex-A53, Cortex-A72 and similar CPUs.
> +
> +To compile LLC coloring support set ``CONFIG_LLC_COLORING=y``.
> +
> +If needed, change the maximum number of colors with
> +``CONFIG_LLC_COLORS_ORDER=<n>``.
> +
> +Runtime configuration is done via `Command line parameters`_.
> +
> +Background
> +**********
> +
> +Cache hierarchy of a modern multi-core CPU typically has first levels dedicated
> +to each core (hence using multiple cache units), while the last level is shared
> +among all of them. Such configuration implies that memory operations on one
> +core (e.g. running a DomU) are able to generate interference on another core
> +(e.g. hosting another DomU). Cache coloring realizes per-set cache-partitioning
> +in software and mitigates this, guaranteeing more predictable performances for
> +memory accesses.
> +Software-based cache coloring is particularly useful in those situations where
> +no hardware mechanisms (e.g., DSU-based way partitioning) are available to
> +partition caches. This is the case for e.g., Cortex-A53, A57 and A72 CPUs that
> +feature a L2 LLC cache shared among all cores.
> +
> +The key concept underlying cache coloring is a fragmentation of the memory
> +space into a set of sub-spaces called colors that are mapped to disjoint cache
> +partitions. Technically, the whole memory space is first divided into a number
> +of subsequent regions. Then each region is in turn divided into a number of
> +subsequent sub-colors. The generic i-th color is then obtained by all the
> +i-th sub-colors in each region.
> +
> +::
> +
> +                            Region j            Region j+1
> +                .....................   ............
> +                .                     . .
> +                .                       .
> +            _ _ _______________ _ _____________________ _ _
> +                |     |     |     |     |     |     |
> +                | c_0 | c_1 |     | c_n | c_0 | c_1 |
> +           _ _ _|_____|_____|_ _ _|_____|_____|_____|_ _ _
> +                    :                       :
> +                    :                       :...         ... .
> +                    :                            color 0
> +                    :...........................         ... .
> +                                                :
> +          . . ..................................:
> +
> +How colors are actually defined depends on the function that maps memory to
> +cache lines. In case of physically-indexed, physically-tagged caches with linear
> +mapping, the set index is found by extracting some contiguous bits from the
> +physical address. This allows colors to be defined as shown in figure: they
> +appear in memory as subsequent blocks of equal size and repeats themselves after
> +``n`` different colors, where ``n`` is the total number of colors.
> +
> +If some kind of bit shuffling appears in the mapping function, then colors
> +assume a different layout in memory. Those kind of caches aren't supported by
> +the current implementation.
> +
> +**Note**: Finding the exact cache mapping function can be a really difficult
> +task since it's not always documented in the CPU manual. As said Cortex-A53, A57
> +and A72 are known to work with the current implementation.
> +
> +How to compute the number of colors
> +###################################
> +
> +Given the linear mapping from physical memory to cache lines for granted, the
> +number of available colors for a specific platform is computed using three
> +parameters:
> +
> +- the size of the LLC.
> +- the number of the LLC ways.
> +- the page size used by Xen.
> +
> +The first two parameters can be found in the processor manual, while the third
> +one is the minimum mapping granularity. Dividing the cache size by the number of
> +its ways we obtain the size of a way. Dividing this number by the page size,
> +the number of total cache colors is found. So for example an Arm Cortex-A53
> +with a 16-ways associative 1 MiB LLC can isolate up to 16 colors when pages are
> +4 KiB in size.
> +
> +Effective colors assignment
> +###########################
> +
> +When assigning colors, if one wants to avoid cache interference between two
> +domains, different colors needs to be used for their memory.
> +
> +Command line parameters
> +***********************
> +
> +Specific documentation is available at `docs/misc/xen-command-line.pandoc`.
> +
> ++----------------------+-------------------------------+
> +| **Parameter**        | **Description**               |
> ++----------------------+-------------------------------+
> +| ``llc-coloring``     | Enable coloring at runtime    |
> ++----------------------+-------------------------------+
> +| ``llc-size``         | Set the LLC size              |
> ++----------------------+-------------------------------+
> +| ``llc-nr-ways``      | Set the LLC number of ways    |
> ++----------------------+-------------------------------+
> +
> +Auto-probing of LLC specs
> +#########################
> +
> +LLC size and number of ways are probed automatically by default.
> +
> +LLC specs can be manually set via the above command line parameters. This
> +bypasses any auto-probing and it's used to overcome failing situations, such as
> +flawed probing logic, or for debugging/testing purposes.
> diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
> index 293dbc1a95..ca105ec559 100644
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -1708,6 +1708,45 @@ This option is intended for debugging purposes only.  Enable MSR_DEBUGCTL.LBR
>   in hypervisor context to be able to dump the Last Interrupt/Exception To/From
>   record with other registers.
>   
> +### llc-coloring (arm64)
> +> `= <boolean>`
> +
> +> Default: `false`
> +
> +Flag to enable or disable LLC coloring support at runtime. This option is
> +available only when `CONFIG_LLC_COLORING` is enabled. See the general
> +cache coloring documentation for more info.
> +
> +### llc-nr-ways (arm64)
> +> `= <integer>`
> +
> +> Default: `Obtained from hardware`
> +
> +Specify the number of ways of the Last Level Cache. This option is available
> +only when `CONFIG_LLC_COLORING` is enabled. LLC size and number of ways are used
> +to find the number of supported cache colors. By default the value is
> +automatically computed by probing the hardware, but in case of specific needs,
> +it can be manually set. Those include failing probing and debugging/testing
> +purposes so that it's possible to emulate platforms with different number of
> +supported colors. If set, also "llc-size" must be set, otherwise the default
> +will be used. Note that using both options implies "llc-coloring=on" unless an
> +earlier "llc-coloring=off" is there.
> +
> +### llc-size (arm64)
> +> `= <size>`
> +
> +> Default: `Obtained from hardware`
> +
> +Specify the size of the Last Level Cache. This option is available only when
> +`CONFIG_LLC_COLORING` is enabled. LLC size and number of ways are used to find
> +the number of supported cache colors. By default the value is automatically
> +computed by probing the hardware, but in case of specific needs, it can be
> +manually set. Those include failing probing and debugging/testing purposes so
> +that it's possible to emulate platforms with different number of supported
> +colors. If set, also "llc-nr-ways" must be set, otherwise the default will be
> +used. Note that using both options implies "llc-coloring=on" unless an
> +earlier "llc-coloring=off" is there.
> +
>   ### lock-depth-size
>   > `= <integer>`
>   
> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> index 90268d9249..b4ec6893be 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -71,6 +71,9 @@ config HAS_IOPORTS
>   config HAS_KEXEC
>   	bool
>   
> +config HAS_LLC_COLORING
> +	bool
> +
>   config HAS_PIRQ
>   	bool
>   
> @@ -516,4 +519,22 @@ config TRACEBUFFER
>   	  to be collected at run time for debugging or performance analysis.
>   	  Memory and execution overhead when not active is minimal.
>   
> +config LLC_COLORING
> +	bool "Last Level Cache (LLC) coloring" if EXPERT
> +	depends on HAS_LLC_COLORING
> +
> +config LLC_COLORS_ORDER
> +	int "Maximum number of LLC colors (base-2 exponent)"
> +	range 1 10
> +	default 7
> +	depends on LLC_COLORING
> +	help
> +	  Controls the build-time size of various arrays associated with LLC
> +	  coloring. The value is a base-2 exponent. Refer to cache coloring
> +	  documentation for how to compute the number of colors supported by the
> +	  platform. This is only an upper bound. The runtime value is autocomputed
> +	  or manually set via cmdline parameters.
> +	  The default value corresponds to an 8 MiB 16-ways LLC, which should be
> +	  more than what's needed in the general case.
> +
>   endmenu
> diff --git a/xen/common/Makefile b/xen/common/Makefile
> index b279b09bfb..cba3b32733 100644
> --- a/xen/common/Makefile
> +++ b/xen/common/Makefile
> @@ -25,6 +25,7 @@ obj-y += keyhandler.o
>   obj-$(CONFIG_KEXEC) += kexec.o
>   obj-$(CONFIG_KEXEC) += kimage.o
>   obj-$(CONFIG_LIVEPATCH) += livepatch.o livepatch_elf.o
> +obj-$(CONFIG_LLC_COLORING) += llc-coloring.o
>   obj-$(CONFIG_MEM_ACCESS) += mem_access.o
>   obj-y += memory.o
>   obj-y += multicall.o
> diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c
> index 6da291b34e..6ea54838d4 100644
> --- a/xen/common/keyhandler.c
> +++ b/xen/common/keyhandler.c
> @@ -5,6 +5,7 @@
>   #include <asm/regs.h>
>   #include <xen/delay.h>
>   #include <xen/keyhandler.h>
> +#include <xen/llc-coloring.h>
>   #include <xen/param.h>
>   #include <xen/sections.h>
>   #include <xen/shutdown.h>
> @@ -304,6 +305,8 @@ static void cf_check dump_domains(unsigned char key)
>   
>           arch_dump_domain_info(d);
>   
> +        domain_dump_llc_colors(d);
> +
>           rangeset_domain_printk(d);
>   
>           dump_pageframe_info(d);
> diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
> new file mode 100644
> index 0000000000..335a907296
> --- /dev/null
> +++ b/xen/common/llc-coloring.c
> @@ -0,0 +1,124 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Last Level Cache (LLC) coloring common code
> + *
> + * Copyright (C) 2024, Advanced Micro Devices, Inc.
> + * Copyright (C) 2024, Minerva Systems SRL
> + */
> +#include <xen/keyhandler.h>
> +#include <xen/llc-coloring.h>
> +#include <xen/param.h>
> +
> +#define NR_LLC_COLORS          (1U << CONFIG_LLC_COLORS_ORDER)
> +
> +/*
> + * -1: not specified (disabled unless llc-size and llc-nr-ways present)
> + *  0: explicitly disabled through cmdline
> + *  1: explicitly enabled through cmdline
> + */
> +static int8_t __initdata opt_llc_coloring = -1;
> +boolean_param("llc-coloring", opt_llc_coloring);
> +
> +static bool __ro_after_init llc_coloring_enabled;
> +
> +static unsigned int __initdata llc_size;
> +size_param("llc-size", llc_size);
> +static unsigned int __initdata llc_nr_ways;
> +integer_param("llc-nr-ways", llc_nr_ways);
> +/* Number of colors available in the LLC */
> +static unsigned int __ro_after_init max_nr_colors;
> +
> +static void print_colors(const unsigned int colors[], unsigned int num_colors)
> +{
> +    unsigned int i;
> +
> +    printk("{ ");
> +    for ( i = 0; i < num_colors; i++ )
> +    {
> +        unsigned int start = colors[i], end = start;
> +
> +        printk("%u", start);
> +
> +        for ( ; i < num_colors - 1 && end + 1 == colors[i + 1]; i++, end++ )
> +            ;
> +
> +        if ( start != end )
> +            printk("-%u", end);
> +
> +        if ( i < num_colors - 1 )
> +            printk(", ");
> +    }
> +    printk(" }\n");
> +}
> +
> +void __init llc_coloring_init(void)
> +{
> +    unsigned int way_size;
> +
> +    llc_coloring_enabled = (opt_llc_coloring >= 1);
> +    if ( (opt_llc_coloring != 0) && llc_size && llc_nr_ways )
> +    {
> +        llc_coloring_enabled = true;
> +        way_size = llc_size / llc_nr_ways;
> +    }
> +    else if ( !llc_coloring_enabled )
> +        return;
> +    else
> +    {
> +        way_size = get_llc_way_size();
> +        if ( !way_size )
> +            panic("LLC probing failed and 'llc-size' or 'llc-nr-ways' missing\n");

As far as I can see, this error means that we did not detect a suitable 
LLC/unified cache.
Maybe it would be better to make that explicit in the panic message.



Best regards,
Mykola

> +    }
> +
> +    if ( way_size & ~PAGE_MASK )
> +        panic("LLC way size must be a multiple of PAGE_SIZE\n");
> +
> +    /*
> +     * The maximum number of colors must be a power of 2 in order to correctly
> +     * map them to bits of an address.
> +     */
> +    max_nr_colors = way_size >> PAGE_SHIFT;
> +
> +    if ( max_nr_colors & (max_nr_colors - 1) )
> +        panic("Number of LLC colors (%u) isn't a power of 2\n", max_nr_colors);
> +
> +    if ( max_nr_colors > NR_LLC_COLORS )
> +    {
> +        printk(XENLOG_WARNING
> +               "Number of LLC colors (%u) too big. Using configured max %u\n",
> +               max_nr_colors, NR_LLC_COLORS);
> +        max_nr_colors = NR_LLC_COLORS;
> +    }
> +    else if ( max_nr_colors < 2 )
> +        panic("Number of LLC colors %u < 2\n", max_nr_colors);
> +
> +    arch_llc_coloring_init();
> +}
> +
> +void dump_llc_coloring_info(void)
> +{
> +    if ( !llc_coloring_enabled )
> +        return;
> +
> +    printk("LLC coloring info:\n");
> +    printk("    Number of LLC colors supported: %u\n", max_nr_colors);
> +}
> +
> +void domain_dump_llc_colors(const struct domain *d)
> +{
> +    if ( !llc_coloring_enabled )
> +        return;
> +
> +    printk("%u LLC colors: ", d->num_llc_colors);
> +    print_colors(d->llc_colors, d->num_llc_colors);
> +}
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * tab-width: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
> index 1f424333db..da505a79f6 100644
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -126,6 +126,7 @@
>   #include <xen/irq.h>
>   #include <xen/keyhandler.h>
>   #include <xen/lib.h>
> +#include <xen/llc-coloring.h>
>   #include <xen/mm.h>
>   #include <xen/nodemask.h>
>   #include <xen/numa.h>
> @@ -2647,6 +2648,8 @@ static void cf_check pagealloc_info(unsigned char key)
>       }
>   
>       printk("    Dom heap: %lukB free\n", total << (PAGE_SHIFT-10));
> +
> +    dump_llc_coloring_info();
>   }
>   
>   static __init int cf_check pagealloc_keyhandler_init(void)
> diff --git a/xen/include/xen/llc-coloring.h b/xen/include/xen/llc-coloring.h
> new file mode 100644
> index 0000000000..0acd8d0ad6
> --- /dev/null
> +++ b/xen/include/xen/llc-coloring.h
> @@ -0,0 +1,36 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Last Level Cache (LLC) coloring common header
> + *
> + * Copyright (C) 2024, Advanced Micro Devices, Inc.
> + * Copyright (C) 2024, Minerva Systems SRL
> + */
> +#ifndef __XEN_LLC_COLORING_H__
> +#define __XEN_LLC_COLORING_H__
> +
> +struct domain;
> +
> +#ifdef CONFIG_LLC_COLORING
> +void llc_coloring_init(void);
> +void dump_llc_coloring_info(void);
> +void domain_dump_llc_colors(const struct domain *d);
> +#else
> +static inline void llc_coloring_init(void) {}
> +static inline void dump_llc_coloring_info(void) {}
> +static inline void domain_dump_llc_colors(const struct domain *d) {}
> +#endif
> +
> +unsigned int get_llc_way_size(void);
> +void arch_llc_coloring_init(void);
> +
> +#endif /* __XEN_LLC_COLORING_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/include/xen/sched.h b/xen/include/xen/sched.h
> index 711668e028..037c83fda2 100644
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -640,6 +640,11 @@ struct domain
>   
>       /* Holding CDF_* constant. Internal flags for domain creation. */
>       unsigned int cdf;
> +
> +#ifdef CONFIG_LLC_COLORING
> +    unsigned int num_llc_colors;
> +    const unsigned int *llc_colors;
> +#endif
>   };
>   
>   static inline struct page_list_head *page_to_list(


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 08:29:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 08:29:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157388.1486198 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHHqB-0004Kk-22; Fri, 07 Nov 2025 08:29:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157388.1486198; Fri, 07 Nov 2025 08:29:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHHqA-0004Kd-Va; Fri, 07 Nov 2025 08:29:02 +0000
Received: by outflank-mailman (input) for mailman id 1157388;
 Fri, 07 Nov 2025 08: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=suI1=5P=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vHHq9-0003eW-Bm
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 08:29:01 +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 cf85e724-bbb3-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 09:29:00 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-640ca678745so854202a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 07 Nov 2025 00:29:00 -0800 (PST)
Received: from [192.168.50.2] (pool185-5-253-110.as6723.net. [185.5.253.110])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b72bdbcaeaasm186291766b.1.2025.11.07.00.28.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 07 Nov 2025 00:28: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: cf85e724-bbb3-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762504140; x=1763108940; 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=Q1lK7oEcIsK0+NWU1/UuS5GiT9FCA6j224qtELIthyA=;
        b=M4I5sTcMiGGRPMY64bEmiwaEgOfQXNt+yRq8WgrG8w1kg73K6YfH9OGeym/MTQ/7fV
         a2qpiDnxn2H6PLfRjA7fiiK0v5NGLnskJJvpdiV5tJqosEAFVQZqq42w716O718jBJ5p
         Hj65rNsqUiHcZdHAi+xxMNtx+1iTis4CMHxp+bIEdwYj34zXu1R6XabNDpiX0L+Y4Fny
         YamDbwyY+gt5x+uDaz4+FM+FI87T4BV/ZZP5Y4N6/FfJZTjA4M2abXZuXkYXhqzcag3I
         hHqxiLZhTrh6gWiJ0kgQSIKEd/sQfjiWWlaF64u1ZyznwdiihvuIrWgMJwqV22exduWd
         hTqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762504140; x=1763108940;
        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=Q1lK7oEcIsK0+NWU1/UuS5GiT9FCA6j224qtELIthyA=;
        b=mo/QQToT9EFDnNdHvlwaXUYm5hq4BF3VtDBD0VHiwrBXbMcGzIW/1W8//a7NfasxKh
         Km1VJcyJHmFSOz7nlrCS5KutoygRYRmyI4mZ2V73lFq6rpX/0tFLuLTPV/bJ6H9En/IJ
         IDR9xV8LqcO88JvYx7TD8psuEQ4Njq4H5O0Fiqm29mIMf9KyVVMEVNcq/oThJqwvpCAi
         UYTV0TTmYxxUQGcMJ7JVrCNFyPYa8fgJKCVKGyExU5AJEkYnk04AMZKENn8MH8gYxCqP
         43chyn1quEEzqM+S1OF5BHVZ7FqY3UohpFW/b0JT3o5lh0PhTef67eDTrRZW7d4l7Csh
         hDTQ==
X-Forwarded-Encrypted: i=1; AJvYcCUVuceCV7Ox/1gbiX3WMTCeG1jpbMoyFyFpbZo7PPZ4gRMakpFLARq5shi58BnypuKSmxZtJtqTHWo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx6K60yTsxY6x1b0IPILiudh8eIIq7+efBvb2gYLHy0Bn/2s9w8
	1NlyYKq7xSRKdLT3/zljpHFD6ZSfXL55ZIp5zULnJ9zu10nMdvqgH4WFzf159/iopgY=
X-Gm-Gg: ASbGnctVIBPfk5grx/4SeW0hQz15zRTCbJDsyBxxXESOrQaAIZHJ6M1OuDDZ22MNJ6E
	WwBLlcUIYr9dxWGVaNuy6TLpQPkaWzG/49leg3PxmdJ9C2jb4rHIs+XYrnscrQbEIpCUQatd0hN
	IqewG60sKzRLPdmp9LDNUodFQpj6GulGqpz+gn+4EeeK2yiDN58hkY+imNHDeLV+ovdin4qvi5j
	LARl4MzgNqRy3kZ6SHzJ1Sh8Rcm14cYmnbJ9K76PxDHFBjXhchTjIRTaywHb7SfGztoY8Bl/X3U
	vVCQPxjQy/kTYq1ABSTJmOYMTUT5mi+aq8GO8H6nG+IS6DBWNUTzkuYWVb3oBNDsCNkd++ZV1uo
	tFroXMzmt1e6r3xJnGcFiyHbyCw8xudOrTDTywwDSuK3u2eqHdUbmUCGMVe16pEOQy3gUqGCi3l
	e3fe0wVvOJctCodivefyIjAcBivKAqZx4LXcU=
X-Google-Smtp-Source: AGHT+IH2jBKudAwuHPXunGf3nGzjqed/E4peDeT3Kd14MtoKK2HR0OfAHk6LO9OGtwZbKNtRKzC9Ew==
X-Received: by 2002:a17:906:6a08:b0:b72:b289:6de3 with SMTP id a640c23a62f3a-b72c0d6f5e8mr213138166b.58.1762504139673;
        Fri, 07 Nov 2025 00:28:59 -0800 (PST)
Message-ID: <50b5f94f-7762-4f82-a522-138c13b0f3b1@gmail.com>
Date: Fri, 7 Nov 2025 10:27:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Mykola Kvach <xakep.amatop@gmail.com>
Subject: Re: [PATCH v13 02/12] xen/arm: add initial support for LLC coloring
 on arm64
To: Carlo Nonato <carlo.nonato@minervasys.tech>,
 xen-devel@lists.xenproject.org
Cc: andrea.bastoni@minervasys.tech, marco.solieri@minervasys.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_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20241217170637.233097-1-carlo.nonato@minervasys.tech>
 <20241217170637.233097-3-carlo.nonato@minervasys.tech>
Content-Language: en-US
In-Reply-To: <20241217170637.233097-3-carlo.nonato@minervasys.tech>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Carlo,

Thank you for the patch.

On 17/12/2024 19:06, Carlo Nonato wrote:
> LLC coloring needs to know the last level cache layout in order to make the
> best use of it. This can be probed by inspecting the CLIDR_EL1 register,
> so the Last Level is defined as the last level visible by this register.
> Note that this excludes system caches in some platforms.
> 
> Static memory allocation and cache coloring are incompatible because static
> memory can't be guaranteed to use only colors assigned to the domain.
> Panic during DomUs creation when both are enabled.
> 
> Based on original work from: Luca Miccio <lucmiccio@gmail.com>
> 
> Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> ---
> v13:
> - no changes
> v12:
> - fixed build errors
> v11:
> - removed useless #define from processor.h
> v10:
> - moved CONFIG_NUMA check in arch/arm/Kconfig
> v9:
> - no changes
> v8:
> - no changes
> v7:
> - only minor changes
> v6:
> - get_llc_way_size() now checks for at least separate I/D caches
> v5:
> - used - instead of _ for filenames
> - moved static-mem check in this patch
> - moved dom0 colors parsing in next patch
> - moved color allocation and configuration in next patch
> - moved check_colors() in next patch
> - colors are now printed in short form
> v4:
> - added "llc-coloring" cmdline option for the boot-time switch
> - dom0 colors are now checked during domain init as for any other domain
> - fixed processor.h masks bit width
> - check for overflow in parse_color_config()
> - check_colors() now checks also that colors are sorted and unique
> ---
>   docs/misc/cache-coloring.rst         | 14 +++++
>   xen/arch/arm/Kconfig                 |  1 +
>   xen/arch/arm/Makefile                |  1 +
>   xen/arch/arm/dom0less-build.c        |  6 +++
>   xen/arch/arm/include/asm/processor.h | 15 ++++++
>   xen/arch/arm/llc-coloring.c          | 79 ++++++++++++++++++++++++++++
>   xen/arch/arm/setup.c                 |  3 ++
>   xen/common/llc-coloring.c            |  4 +-
>   xen/include/xen/llc-coloring.h       |  6 +++
>   9 files changed, 128 insertions(+), 1 deletion(-)
>   create mode 100644 xen/arch/arm/llc-coloring.c
> 
> diff --git a/docs/misc/cache-coloring.rst b/docs/misc/cache-coloring.rst
> index 371f21a0e7..12972dbb2c 100644
> --- a/docs/misc/cache-coloring.rst
> +++ b/docs/misc/cache-coloring.rst
> @@ -113,6 +113,20 @@ Auto-probing of LLC specs
>   
>   LLC size and number of ways are probed automatically by default.
>   
> +In the Arm implementation, this is done by inspecting the CLIDR_EL1 register.
> +This means that other system caches that aren't visible there are ignored.
> +
>   LLC specs can be manually set via the above command line parameters. This
>   bypasses any auto-probing and it's used to overcome failing situations, such as
>   flawed probing logic, or for debugging/testing purposes.
> +
> +Known issues and limitations
> +****************************
> +
> +"xen,static-mem" isn't supported when coloring is enabled
> +#########################################################
> +
> +In the domain configuration, "xen,static-mem" allows memory to be statically
> +allocated to the domain. This isn't possible when LLC coloring is enabled,
> +because that memory can't be guaranteed to use only colors assigned to the
> +domain.
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index 604aba4996..c5e7b74733 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -8,6 +8,7 @@ config ARM_64
>   	depends on !ARM_32
>   	select 64BIT
>   	select HAS_FAST_MULTIPLY
> +	select HAS_LLC_COLORING if !NUMA
>   
>   config ARM
>   	def_bool y
> diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
> index e4ad1ce851..ccbfc61f88 100644
> --- a/xen/arch/arm/Makefile
> +++ b/xen/arch/arm/Makefile
> @@ -35,6 +35,7 @@ obj-$(CONFIG_IOREQ_SERVER) += ioreq.o
>   obj-y += irq.o
>   obj-y += kernel.init.o
>   obj-$(CONFIG_LIVEPATCH) += livepatch.o
> +obj-$(CONFIG_LLC_COLORING) += llc-coloring.o
>   obj-$(CONFIG_MEM_ACCESS) += mem_access.o
>   obj-y += mm.o
>   obj-y += monitor.o
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index f328a044e9..d93a85434e 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -5,6 +5,7 @@
>   #include <xen/grant_table.h>
>   #include <xen/iocap.h>
>   #include <xen/libfdt/libfdt.h>
> +#include <xen/llc-coloring.h>
>   #include <xen/sched.h>
>   #include <xen/serial.h>
>   #include <xen/sizes.h>
> @@ -890,7 +891,12 @@ void __init create_domUs(void)
>               panic("No more domain IDs available\n");
>   
>           if ( dt_find_property(node, "xen,static-mem", NULL) )
> +        {
> +            if ( llc_coloring_enabled )
> +                panic("LLC coloring and static memory are incompatible\n");
> +
>               flags |= CDF_staticmem;
> +        }
>   
>           if ( dt_property_read_bool(node, "direct-map") )
>           {
> diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
> index 8e02410465..60b587db69 100644
> --- a/xen/arch/arm/include/asm/processor.h
> +++ b/xen/arch/arm/include/asm/processor.h
> @@ -18,6 +18,21 @@
>   #define CTR_IDC_SHIFT       28
>   #define CTR_DIC_SHIFT       29
>   
> +/* CCSIDR Current Cache Size ID Register */
> +#define CCSIDR_LINESIZE_MASK            _AC(0x7, UL)
> +#define CCSIDR_NUMSETS_SHIFT            13
> +#define CCSIDR_NUMSETS_MASK             _AC(0x3fff, UL)
> +#define CCSIDR_NUMSETS_SHIFT_FEAT_CCIDX 32
> +#define CCSIDR_NUMSETS_MASK_FEAT_CCIDX  _AC(0xffffff, UL)
> +
> +/* CSSELR Cache Size Selection Register */
> +#define CSSELR_LEVEL_SHIFT 1
> +
> +/* CLIDR Cache Level ID Register */
> +#define CLIDR_CTYPEn_SHIFT(n) (3 * ((n) - 1))
> +#define CLIDR_CTYPEn_MASK     _AC(0x7, UL)
> +#define CLIDR_CTYPEn_LEVELS   7
> +
>   #define ICACHE_POLICY_VPIPT  0
>   #define ICACHE_POLICY_AIVIVT 1
>   #define ICACHE_POLICY_VIPT   2
> diff --git a/xen/arch/arm/llc-coloring.c b/xen/arch/arm/llc-coloring.c
> new file mode 100644
> index 0000000000..1c7b92bc45
> --- /dev/null
> +++ b/xen/arch/arm/llc-coloring.c
> @@ -0,0 +1,79 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Last Level Cache (LLC) coloring support for ARM
> + *
> + * Copyright (C) 2024, Advanced Micro Devices, Inc.
> + * Copyright (C) 2024, Minerva Systems SRL
> + */
> +#include <xen/init.h>
> +#include <xen/llc-coloring.h>
> +
> +#include <asm/processor.h>
> +#include <asm/sysregs.h>
> +#include <asm/system.h>
> +
> +/* Return the LLC way size by probing the hardware */
> +unsigned int __init get_llc_way_size(void)
> +{
> +    register_t ccsidr_el1;
> +    register_t clidr_el1 = READ_SYSREG(CLIDR_EL1);
> +    register_t csselr_el1 = READ_SYSREG(CSSELR_EL1);
> +    register_t id_aa64mmfr2_el1 = READ_SYSREG(ID_AA64MMFR2_EL1);
> +    uint32_t ccsidr_numsets_shift = CCSIDR_NUMSETS_SHIFT;
> +    uint32_t ccsidr_numsets_mask = CCSIDR_NUMSETS_MASK;
> +    unsigned int n, line_size, num_sets;
> +
> +    for ( n = CLIDR_CTYPEn_LEVELS; n != 0; n-- )

According to the Arm ARM (DDI 0487J.a, D19.2.27):

If software reads the Cache Type fields from Ctype1 upwards, once it has
seen a value of 000, no caches that can be managed using the architected
cache maintenance instructions that operate by set/way exist at
further-out levels of the hierarchy. So, for example, if Ctype3 is the
first Cache Type field with a value of 000, the values of Ctype4 to
Ctype7 must be ignored.

Shouldnâ€™t we read the Cache Type fields from the first index upwards and
stop at the first 0b000, instead of iterating in reverse?



Best regards,
Mykola


> +    {
> +        uint8_t ctype_n = (clidr_el1 >> CLIDR_CTYPEn_SHIFT(n)) &
> +                           CLIDR_CTYPEn_MASK;
> +
> +        /* Unified cache (see Arm ARM DDI 0487J.a D19.2.27) */
> +        if ( ctype_n == 0b100 )
> +            break;
> +    }
> +
> +    if ( n == 0 )
> +        return 0;
> +
> +    WRITE_SYSREG((n - 1) << CSSELR_LEVEL_SHIFT, CSSELR_EL1);
> +    isb();
> +
> +    ccsidr_el1 = READ_SYSREG(CCSIDR_EL1);
> +
> +    /* Arm ARM: (Log2(Number of bytes in cache line)) - 4 */
> +    line_size = 1U << ((ccsidr_el1 & CCSIDR_LINESIZE_MASK) + 4);
> +
> +    /* If FEAT_CCIDX is enabled, CCSIDR_EL1 has a different bit layout */
> +    if ( (id_aa64mmfr2_el1 >> ID_AA64MMFR2_CCIDX_SHIFT) & 0x7 )
> +    {
> +        ccsidr_numsets_shift = CCSIDR_NUMSETS_SHIFT_FEAT_CCIDX;
> +        ccsidr_numsets_mask = CCSIDR_NUMSETS_MASK_FEAT_CCIDX;
> +    }
> +
> +    /* Arm ARM: (Number of sets in cache) - 1 */
> +    num_sets = ((ccsidr_el1 >> ccsidr_numsets_shift) & ccsidr_numsets_mask) + 1;
> +
> +    printk(XENLOG_INFO "LLC found: L%u (line size: %u bytes, sets num: %u)\n",
> +           n, line_size, num_sets);
> +
> +    /* Restore value in CSSELR_EL1 */
> +    WRITE_SYSREG(csselr_el1, CSSELR_EL1);
> +    isb();
> +
> +    return line_size * num_sets;
> +}
> +
> +void __init arch_llc_coloring_init(void)
> +{
> +}
> +
> +/*
> + * 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/setup.c b/xen/arch/arm/setup.c
> index 545702d8a3..5f1993ffed 100644
> --- a/xen/arch/arm/setup.c
> +++ b/xen/arch/arm/setup.c
> @@ -12,6 +12,7 @@
>   #include <xen/device_tree.h>
>   #include <xen/domain_page.h>
>   #include <xen/grant_table.h>
> +#include <xen/llc-coloring.h>
>   #include <xen/types.h>
>   #include <xen/string.h>
>   #include <xen/serial.h>
> @@ -334,6 +335,8 @@ void asmlinkage __init start_xen(unsigned long fdt_paddr)
>       printk("Command line: %s\n", cmdline);
>       cmdline_parse(cmdline);
>   
> +    llc_coloring_init();
> +
>       setup_mm();
>   
>       vm_init();
> diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
> index 335a907296..b034c0169c 100644
> --- a/xen/common/llc-coloring.c
> +++ b/xen/common/llc-coloring.c
> @@ -8,6 +8,8 @@
>   #include <xen/keyhandler.h>
>   #include <xen/llc-coloring.h>
>   #include <xen/param.h>
> +#include <xen/sched.h>
> +#include <xen/types.h>
>   
>   #define NR_LLC_COLORS          (1U << CONFIG_LLC_COLORS_ORDER)
>   
> @@ -19,7 +21,7 @@
>   static int8_t __initdata opt_llc_coloring = -1;
>   boolean_param("llc-coloring", opt_llc_coloring);
>   
> -static bool __ro_after_init llc_coloring_enabled;
> +bool __ro_after_init llc_coloring_enabled;
>   
>   static unsigned int __initdata llc_size;
>   size_param("llc-size", llc_size);
> diff --git a/xen/include/xen/llc-coloring.h b/xen/include/xen/llc-coloring.h
> index 0acd8d0ad6..a3ebb17186 100644
> --- a/xen/include/xen/llc-coloring.h
> +++ b/xen/include/xen/llc-coloring.h
> @@ -8,13 +8,19 @@
>   #ifndef __XEN_LLC_COLORING_H__
>   #define __XEN_LLC_COLORING_H__
>   
> +#include <xen/types.h>
> +
>   struct domain;
>   
>   #ifdef CONFIG_LLC_COLORING
> +extern bool llc_coloring_enabled;
> +
>   void llc_coloring_init(void);
>   void dump_llc_coloring_info(void);
>   void domain_dump_llc_colors(const struct domain *d);
>   #else
> +#define llc_coloring_enabled false
> +
>   static inline void llc_coloring_init(void) {}
>   static inline void dump_llc_coloring_info(void) {}
>   static inline void domain_dump_llc_colors(const struct domain *d) {}


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 08:29:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 08:29:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157385.1486169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHHq7-0003eo-7t; Fri, 07 Nov 2025 08:28:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157385.1486169; Fri, 07 Nov 2025 08:28:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHHq7-0003eh-3w; Fri, 07 Nov 2025 08:28:59 +0000
Received: by outflank-mailman (input) for mailman id 1157385;
 Fri, 07 Nov 2025 08: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=suI1=5P=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vHHq5-0003eW-Ip
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 08:28:57 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ccb1927c-bbb3-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 09:28:55 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b72cbc24637so63920666b.0
 for <xen-devel@lists.xenproject.org>; Fri, 07 Nov 2025 00:28:55 -0800 (PST)
Received: from [192.168.50.2] (pool185-5-253-110.as6723.net. [185.5.253.110])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b72bdbcaeaasm186291766b.1.2025.11.07.00.28.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 07 Nov 2025 00:28: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: ccb1927c-bbb3-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762504135; x=1763108935; 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=YEUW8XrmLDdFp+BWOltCb0wOwjstWnLhv+pmruOk46I=;
        b=FpCLy004ffywHcK7ybjZMjjNa8F6etx/qYd5IG5VKVIdSp2cAbL9GHuliiuGno97y+
         Gv6GiRZbmk+bsjSoY1q+tQbpC+T4YGXGKe6XE4iC0l9q+a0FrCgZOg3qOoPbKznaBEiz
         IRXtLgXsB7PRhrQpHhGcI+Zq+UA0hQJx8E5tyZ2XxV//eo6zVU7ARIc2LpGXmySvDVFU
         1+G2wXgNIVMNAkJKg5HI+sCc17K/8djHvXF9crQr0/lhY9r96D0iIxEgGmWpAOfIRcsL
         WUNoNn4GxAAsHpixhGHP32U+1hj+gCLts6IWXzXQv3RlLCXHUguNAtWGcBE/9Ra0zExf
         GKog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762504135; x=1763108935;
        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=YEUW8XrmLDdFp+BWOltCb0wOwjstWnLhv+pmruOk46I=;
        b=K+xZfqIoTWrzPElbQPpf79hM7HfIszzP/DWDcXC94vFj4NU60LPsEX6gT6nWwHNccb
         wGqUvvoClWrMJ4Z8H75vGELnLuCzLvuyFqJFpO3R+xR3wGsUbJLOSyuiwJvgvt5RVimw
         LWYA1wIloTztUTqqr9Wqbb4Q1iz+v9pDzSeDVVQRsCUJp6Ai8eb7jhvzinOtv5osZFPl
         JhVaiSIOIzadNZgo62D+YxBrSUZhE9l4UZgMehRuhqgi0XZobnTnfFQQdMiauqMuZeCp
         QIijK8hSYzw/aQgbi2nXZHI2S/f1FmBGtrElGH93PAKifEiLpay6nT/j7Abq+kJWogdy
         GTJg==
X-Forwarded-Encrypted: i=1; AJvYcCX9Cv81ji9YV0a2CZ3b7pcl4DyCk9ETFBLOo2BQZZ9FtWDAiYLnr9R8/zdHRTp1PdPant4cibPs4JE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzFpjYXo6ulhGXcMB99rKjH3uhSPXegeoaqGq/b7QK0I7bqP5sl
	vMrVokqsZ93tz+G93+Wwiuvsa7IaP6UZsuCnf9kKbZXnACEd/aSiae/v
X-Gm-Gg: ASbGncvtkI/ww2AVwgCqX95iRypllPnPDrBISo6z1aWXI1CxhB/8I2sy3d/SqUpbBN7
	guMePgDlf8s5nfYgL3kTcpLOBcWksoUZ3xU80DbUvqY99hdHGqXxJRnLMskGR+ZTO1B569M1TNC
	jV6PCAaKzkqa7YXneoYsy+veU8oDMef9EXIHy4VG7hcIe21KyFr9icDxIchp3taJInrdC/XqKbX
	WjWDZRMBGZX4/JN6XkGYiTV4UOjR7yi00p7sVCXEvZP5PGbzXp4dOL1bGZIu1aVpaakBDIy72R/
	LIQKBc+cK0bFa3esn2KadifwClxwBIXZajMlalyCF48MdAAs9qegbY57Y4KUbiIBCCkjjbfrOWb
	KcR7RxXZYjT6RdpNaObZAVw//ohZqdguPaukR/0UJvCk0Ihxph9BqeNbupDo74D4wL9KHy7A54n
	RtjW+cNR+HsI4S3ZY1XSzyxIKWWsmXOsFO8Jc=
X-Google-Smtp-Source: AGHT+IGuEKKvUOH/3FDG1PPCofOzzeHdsMEsIJwK7d8mHgsi+nVoMOOQBNHxEPfqbANPxDwmwrxLZw==
X-Received: by 2002:a17:907:9627:b0:b72:56ad:c9c0 with SMTP id a640c23a62f3a-b72c078d329mr242774966b.17.1762504134733;
        Fri, 07 Nov 2025 00:28:54 -0800 (PST)
Message-ID: <db5d6a67-61d9-48d3-b6c4-213c1cbbda21@gmail.com>
Date: Fri, 7 Nov 2025 10:26:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Mykola Kvach <xakep.amatop@gmail.com>
Subject: Re: [PATCH v13 04/12] xen/arm: add Dom0 cache coloring support
To: Carlo Nonato <carlo.nonato@minervasys.tech>,
 xen-devel@lists.xenproject.org
Cc: andrea.bastoni@minervasys.tech, marco.solieri@minervasys.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_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20241217170637.233097-1-carlo.nonato@minervasys.tech>
 <20241217170637.233097-5-carlo.nonato@minervasys.tech>
Content-Language: en-US
In-Reply-To: <20241217170637.233097-5-carlo.nonato@minervasys.tech>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Carlo,

Thank you for the patch.

On 17/12/2024 19:06, Carlo Nonato wrote:
> Add a command line parameter to allow the user to set the coloring
> configuration for Dom0.
> A common configuration syntax for cache colors is introduced and
> documented.
> Take the opportunity to also add:
>   - default configuration notion.
>   - function to check well-formed configurations.
> 
> Direct mapping Dom0 isn't possible when coloring is enabled, so
> CDF_directmap flag is removed when creating it.
> 
> Based on original work from: Luca Miccio <lucmiccio@gmail.com>
> 
> Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
> ---
> v13:
> - no changes
> v12:
> - no changes
> v11:
> - minor changes
> v10:
> - fixed array type for colors parameter in check_colors()
> v9:
> - moved domain_llc_coloring_free() in next patch cause it's never used for dom0
> v8:
> - added bound check on dom0_num_colors
> - default colors array set just once
> v7:
> - parse_color_config() doesn't accept leading/trailing commas anymore
> - removed alloc_colors() helper
> v6:
> - moved domain_llc_coloring_free() in this patch
> - removed domain_alloc_colors() in favor of a more explicit allocation
> - parse_color_config() now accepts the size of the array to be filled
> - allocate_memory() moved in another patch
> v5:
> - Carlo Nonato as the new author
> - moved dom0 colors parsing (parse_colors()) in this patch
> - added dom0_set_llc_colors() to set dom0 colors after creation
> - moved color allocation and checking in this patch
> - error handling when allocating color arrays
> - FIXME: copy pasted allocate_memory() cause it got moved
> v4:
> - dom0 colors are dynamically allocated as for any other domain
>    (colors are duplicated in dom0_colors and in the new array, but logic
>    is simpler)
> ---
>   docs/misc/cache-coloring.rst      |  29 ++++++++
>   docs/misc/xen-command-line.pandoc |   9 +++
>   xen/arch/arm/domain_build.c       |   9 ++-
>   xen/common/llc-coloring.c         | 120 +++++++++++++++++++++++++++++-
>   xen/include/xen/llc-coloring.h    |   1 +
>   5 files changed, 166 insertions(+), 2 deletions(-)
> 
> diff --git a/docs/misc/cache-coloring.rst b/docs/misc/cache-coloring.rst
> index 12972dbb2c..7b47d0ed92 100644
> --- a/docs/misc/cache-coloring.rst
> +++ b/docs/misc/cache-coloring.rst
> @@ -107,6 +107,35 @@ Specific documentation is available at `docs/misc/xen-command-line.pandoc`.
>   +----------------------+-------------------------------+
>   | ``llc-nr-ways``      | Set the LLC number of ways    |
>   +----------------------+-------------------------------+
> +| ``dom0-llc-colors``  | Dom0 color configuration      |
> ++----------------------+-------------------------------+
> +
> +Colors selection format
> +***********************
> +
> +Regardless of the memory pool that has to be colored (Xen, Dom0/DomUs),
> +the color selection can be expressed using the same syntax. In particular a
> +comma-separated list of colors or ranges of colors is used.
> +Ranges are hyphen-separated intervals (such as `0-4`) and are inclusive on both
> +sides.
> +
> +Note that:
> +
> +- no spaces are allowed between values.
> +- no overlapping ranges or duplicated colors are allowed.
> +- values must be written in ascending order.

Should this requirement also be stated for the color list configuration
parameters for Dom0, Xen, and DomUs?

> +
> +Examples:
> +
> ++-------------------+-----------------------------+
> +| **Configuration** | **Actual selection**        |
> ++-------------------+-----------------------------+
> +| 1-2,5-8           | [1, 2, 5, 6, 7, 8]          |
> ++-------------------+-----------------------------+
> +| 4-8,10,11,12      | [4, 5, 6, 7, 8, 10, 11, 12] |
> ++-------------------+-----------------------------+
> +| 0                 | [0]                         |
> ++-------------------+-----------------------------+
>   
>   Auto-probing of LLC specs
>   #########################
> diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
> index ca105ec559..be70d6af61 100644
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -963,6 +963,15 @@ Controls for the dom0 IOMMU setup.
>   
>   Specify a list of IO ports to be excluded from dom0 access.
>   
> +### dom0-llc-colors (arm64)
> +> `= List of [ <integer> | <integer>-<integer> ]`
> +
> +> Default: `All available LLC colors`
> +
> +Specify dom0 LLC color configuration. This option is available only when
> +`CONFIG_LLC_COLORING` is enabled. If the parameter is not set, all available
> +colors are used.
> +
>   ### dom0_max_vcpus
>   
>   Either:
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 17cc76b6f2..b072a16249 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2356,6 +2356,7 @@ void __init create_dom0(void)
>           .max_maptrack_frames = -1,
>           .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
>       };
> +    unsigned int flags = CDF_privileged;
>       int rc;
>   
>       /* The vGIC for DOM0 is exactly emulating the hardware GIC */
> @@ -2383,10 +2384,16 @@ void __init create_dom0(void)
>               panic("SVE vector length error\n");
>       }
>   
> -    dom0 = domain_create(0, &dom0_cfg, CDF_privileged | CDF_directmap);
> +    if ( !llc_coloring_enabled )
> +        flags |= CDF_directmap;
> +
> +    dom0 = domain_create(0, &dom0_cfg, flags);
>       if ( IS_ERR(dom0) )
>           panic("Error creating domain 0 (rc = %ld)\n", PTR_ERR(dom0));
>   
> +    if ( llc_coloring_enabled && (rc = dom0_set_llc_colors(dom0)) )
> +        panic("Error initializing LLC coloring for domain 0 (rc = %d)\n", rc);
> +
>       if ( alloc_dom0_vcpu0(dom0) == NULL )
>           panic("Error creating domain 0 vcpu0\n");
>   
> diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
> index b034c0169c..5984ae82e7 100644
> --- a/xen/common/llc-coloring.c
> +++ b/xen/common/llc-coloring.c
> @@ -29,6 +29,66 @@ static unsigned int __initdata llc_nr_ways;
>   integer_param("llc-nr-ways", llc_nr_ways);
>   /* Number of colors available in the LLC */
>   static unsigned int __ro_after_init max_nr_colors;
> +/* Default coloring configuration */
> +static unsigned int __ro_after_init default_colors[NR_LLC_COLORS];
> +
> +static unsigned int __initdata dom0_colors[NR_LLC_COLORS];
> +static unsigned int __initdata dom0_num_colors;
> +
> +/*
> + * Parse the coloring configuration given in the buf string, following the
> + * syntax below.
> + *
> + * COLOR_CONFIGURATION ::= COLOR | RANGE,...,COLOR | RANGE
> + * RANGE               ::= COLOR-COLOR

Configurations like ",COLOR | RANGE,...", interpreted as:
     "0,COLOR | RANGE,..."

and "-10,COLOR | RANGE,...", interpreted as:
"0-10,COLOR | RANGE,..."

also seem to be accepted. If this is intentional, it might be worth 
documenting these shorthand forms here.

> + *
> + * Example: "0,2-6,15-16" represents the set of colors: 0,2,3,4,5,6,15,16.
> + */
> +static int __init parse_color_config(const char *buf, unsigned int colors[],
> +                                     unsigned int max_num_colors,
> +                                     unsigned int *num_colors)
> +{
> +    const char *s = buf;
> +
> +    *num_colors = 0;
> +
> +    while ( *s != '\0' )
> +    {
> +        unsigned int color, start, end;
> +
> +        start = simple_strtoul(s, &s, 0);

Since simple_strtoul(..., 0) accepts decimal, octal (0 prefix), and
hexadecimal (0x prefix), should we document that these formats are
also allowed for color values?

> +
> +        if ( *s == '-' )    /* Range */
> +        {
> +            s++;
> +            end = simple_strtoul(s, &s, 0);
> +        }
> +        else                /* Single value */
> +            end = start;
> +
> +        if ( start > end || (end - start) > (UINT_MAX - *num_colors) ||
> +             (*num_colors + (end - start)) >= max_num_colors )
> +            return -EINVAL;
> +
> +        /* Colors are range checked in check_colors() */
> +        for ( color = start; color <= end; color++ )

A range like (UINT_MAX-1)-UINT_MAX would cause this loop to never
terminate due to color wrapping around, effectively locking the system
during init.

> +            colors[(*num_colors)++] = color;
> +
> +        if ( *s == ',' )
> +            s++;
> +        else if ( *s != '\0' )
> +            break;
> +    }
> +
> +    return *s ? -EINVAL : 0;

In case of a parse error (e.g. [1,w,3-5]), we end up with a partial
configuration like [1,0] and num_colors already updated. Should we
reject the whole configuration here and reset num_colors (or only
update it on success), instead of proceeding with a partially parsed
set of colors?



Best regards,
Mykola

> +}
> +
> +static int __init parse_dom0_colors(const char *s)
> +{
> +    return parse_color_config(s, dom0_colors, ARRAY_SIZE(dom0_colors),
> +                              &dom0_num_colors);
> +}
> +custom_param("dom0-llc-colors", parse_dom0_colors);
>   
>   static void print_colors(const unsigned int colors[], unsigned int num_colors)
>   {
> @@ -53,9 +113,27 @@ static void print_colors(const unsigned int colors[], unsigned int num_colors)
>       printk(" }\n");
>   }
>   
> +static bool __init check_colors(const unsigned int colors[],
> +                                unsigned int num_colors)
> +{
> +    unsigned int i;
> +
> +    for ( i = 0; i < num_colors; i++ )
> +    {
> +        if ( colors[i] >= max_nr_colors )
> +        {
> +            printk(XENLOG_ERR "LLC color %u >= %u (max allowed)\n", colors[i],
> +                   max_nr_colors);
> +            return false;
> +        }
> +    }
> +
> +    return true;
> +}
> +
>   void __init llc_coloring_init(void)
>   {
> -    unsigned int way_size;
> +    unsigned int way_size, i;
>   
>       llc_coloring_enabled = (opt_llc_coloring >= 1);
>       if ( (opt_llc_coloring != 0) && llc_size && llc_nr_ways )
> @@ -94,6 +172,9 @@ void __init llc_coloring_init(void)
>       else if ( max_nr_colors < 2 )
>           panic("Number of LLC colors %u < 2\n", max_nr_colors);
>   
> +    for ( i = 0; i < max_nr_colors; i++ )
> +        default_colors[i] = i;
> +
>       arch_llc_coloring_init();
>   }
>   
> @@ -115,6 +196,43 @@ void domain_dump_llc_colors(const struct domain *d)
>       print_colors(d->llc_colors, d->num_llc_colors);
>   }
>   
> +static void __init domain_set_default_colors(struct domain *d)
> +{
> +    printk(XENLOG_WARNING
> +           "LLC color config not found for %pd, using all colors\n", d);
> +
> +    d->llc_colors = default_colors;
> +    d->num_llc_colors = max_nr_colors;
> +}
> +
> +int __init dom0_set_llc_colors(struct domain *d)
> +{
> +    typeof(*dom0_colors) *colors;
> +
> +    if ( !dom0_num_colors )
> +    {
> +        domain_set_default_colors(d);
> +        return 0;
> +    }
> +
> +    if ( (dom0_num_colors > max_nr_colors) ||
> +         !check_colors(dom0_colors, dom0_num_colors) )
> +    {
> +        printk(XENLOG_ERR "%pd:  bad LLC color config\n", d);
> +        return -EINVAL;
> +    }
> +
> +    colors = xmalloc_array(typeof(*dom0_colors), dom0_num_colors);
> +    if ( !colors )
> +        return -ENOMEM;
> +
> +    memcpy(colors, dom0_colors, sizeof(*colors) * dom0_num_colors);
> +    d->llc_colors = colors;
> +    d->num_llc_colors = dom0_num_colors;
> +
> +    return 0;
> +}
> +
>   /*
>    * Local variables:
>    * mode: C
> diff --git a/xen/include/xen/llc-coloring.h b/xen/include/xen/llc-coloring.h
> index a3ebb17186..d29ebeb4c5 100644
> --- a/xen/include/xen/llc-coloring.h
> +++ b/xen/include/xen/llc-coloring.h
> @@ -28,6 +28,7 @@ static inline void domain_dump_llc_colors(const struct domain *d) {}
>   
>   unsigned int get_llc_way_size(void);
>   void arch_llc_coloring_init(void);
> +int dom0_set_llc_colors(struct domain *d);
>   
>   #endif /* __XEN_LLC_COLORING_H__ */
>  



From xen-devel-bounces@lists.xenproject.org Fri Nov 07 08:29:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 08:29:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157386.1486175 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHHq7-0003hy-IB; Fri, 07 Nov 2025 08:28:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157386.1486175; Fri, 07 Nov 2025 08:28:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHHq7-0003hA-BK; Fri, 07 Nov 2025 08:28:59 +0000
Received: by outflank-mailman (input) for mailman id 1157386;
 Fri, 07 Nov 2025 08:28: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=suI1=5P=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vHHq6-0003eW-5o
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 08:28:58 +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 cd983019-bbb3-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 09:28:57 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b7272012d30so74360166b.2
 for <xen-devel@lists.xenproject.org>; Fri, 07 Nov 2025 00:28:57 -0800 (PST)
Received: from [192.168.50.2] (pool185-5-253-110.as6723.net. [185.5.253.110])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b72bdbcaeaasm186291766b.1.2025.11.07.00.28.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 07 Nov 2025 00:28: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: cd983019-bbb3-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762504137; x=1763108937; 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=PkwNcN7lNA8yjMuppF3gbnvT8EESBLGSdHJNmN1pAvM=;
        b=Cs/MrhVUiujLLr2GVqmo1fReW20T3N9zVpLIOrJ8o+S/gz9HYLQenqMFXcoRY2HBO1
         SYcj51inaoNTzQvEwvY3mnL5qa4TIs/LQoN3E/Ghur97KdqW4T6EQQDV5ZteV5WW/jld
         l6Mkq4yGWKxP58yj+XPbNPGDWT+A2n5ZPik1NbxoA24xxXF0DlfsL80wlEi8DwwqRygK
         CrNThA5xqbrHZc1Q7N6SYruVkN9dC7UYxz7ZAzmY4G62Jd5ATyzzD9E5SU11wnO4JF11
         J3JCm7bt+dLgAD0KHDadGCpt7fKwewFgxM3we+TUORzMAl8VTMcZAgBnMW/uVIpp8mjF
         0OQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762504137; x=1763108937;
        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=PkwNcN7lNA8yjMuppF3gbnvT8EESBLGSdHJNmN1pAvM=;
        b=JFJyye25ZgWOfrVJBNIhgnqftxslLPqMSB/4kRYHZLboCeW/awvPwDYiNtQLbZdHQJ
         s5PUxOgPeUD+e3U7HX6JvZM0UWjgb7NjiY4/RTR1ZDxk0dTqwt8RLIIp9gjyF32kCG7A
         liYQxoIBNPzYmKojVX6yHd8ajEtoa/0G6SryMld2mNe9mdK5MiBVwnaJc3hc5CcY/SSt
         jRKsALeVCT1Rgjkxe/li1Q82o4Yy2qi+6CZQsR8Ot/m/xPztP3m5hNfbusK9zqI+kN6H
         1WJIUl8gyF1ACPyvudUY+Z+Q2b/5EzCBpQaerI2Kn+gVyPRXAE+iREppkb3M82axkZOr
         MKGw==
X-Forwarded-Encrypted: i=1; AJvYcCWEVrxTgjM4XGe3O0EgJa9Ao1Z+Q3MFpw4HLCSPeF3qFBdkqUqvBYDzDjQFP/1/9qLvlZY8D6je0gU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx0pdC8+n3iAc7H6KRZTcje3aP73wrBbRIMQlNdylHXssRJI+wt
	Cti1cnQktIsB9VEaTJQwRMkujcjRTuUkrqFQE0JB9pvsDJqDsYWuuRjk
X-Gm-Gg: ASbGncuTeSnErP9KpaNbb+EOYujtPyVOkUx7i9vqfJ9MIM0S8EDYuDJKieDiiQnPeBl
	ppRDSQjaBhAXR9ee7Hqy81jUgJ3nZz2rkBuHEkzkOAFWtcDBmXPQvvSBNno/tihYn/EfN5OvC4x
	hvYBrIk5gzROmizAqhoVs+oHPA+EHYmbwuUWmJmI160zGIdPUiFBdB9qejv2a3/JP4V3e4aOCgE
	Hdf5x5OXs+7khElwEd/8tN/5tCpJvrkFpJ+C19NiufDbX/l5WiXvA1wchd+btsM+E8q/HnGYELT
	K3sDGJZe5KkngTyCncKbqhcWzdKRgImI70d1Dm5tyEZlpSiTo1vYowikozIyIXG0Ei5JYnamTR3
	OTrb/d/9p3Hr8hloLq22KdvjmKvC58JK3mRsJylhY/OO0o0zz4p/zGr2oSWc1+r5aFWZZTELVGC
	cwe6Vw+0LJwNOoQTtXeK+FRdAWySlAPfncSJY=
X-Google-Smtp-Source: AGHT+IGmi7Nd+1V1HB78WrfR2YaCRGz4GK08rmvtSx2BEaCkuYcoSwWry59kZ1MddyZubeYDuz8urA==
X-Received: by 2002:a17:906:dc92:b0:b6d:95b3:5881 with SMTP id a640c23a62f3a-b72c0d5d85emr211485866b.33.1762504136401;
        Fri, 07 Nov 2025 00:28:56 -0800 (PST)
Message-ID: <c3d0dbc8-559d-4393-842a-617532a52e21@gmail.com>
Date: Fri, 7 Nov 2025 10:26:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Mykola Kvach <xakep.amatop@gmail.com>
Subject: Re: [PATCH v13 07/12] xen/arm: add support for cache coloring
 configuration via device-tree
To: Carlo Nonato <carlo.nonato@minervasys.tech>,
 xen-devel@lists.xenproject.org
Cc: andrea.bastoni@minervasys.tech, marco.solieri@minervasys.tech,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20241217170637.233097-1-carlo.nonato@minervasys.tech>
 <20241217170637.233097-8-carlo.nonato@minervasys.tech>
Content-Language: en-US
In-Reply-To: <20241217170637.233097-8-carlo.nonato@minervasys.tech>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Carlo,

Thank you for the patch.

On 17/12/2024 19:06, Carlo Nonato wrote:
> Add the "llc-colors" Device Tree property to express DomUs and Dom0less
> color configurations.
> 
> Based on original work from: Luca Miccio <lucmiccio@gmail.com>
> 
> Signed-off-by: Carlo Nonato <carlo.nonato@minervasys.tech>
> Signed-off-by: Marco Solieri <marco.solieri@minervasys.tech>
> Reviewed-by: Jan Beulich <jbeulich@suse.com> # non-Arm
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
> ---
> v13:
> - no changes
> v12:
> - no changes
> v11:
> - made clear that llc-colors device-tree property is Arm64-only in booting.txt
> v10:
> - no changes
> v9:
> - use best-effort allocation in domain_set_llc_colors_from_str()
> v8:
> - fixed memory leak on error path of domain_set_llc_colors_from_str()
> - realloc colors array after parsing from string to reduce memory usage
> v7:
> - removed alloc_colors() helper usage from domain_set_llc_colors_from_str()
> v6:
> - rewrote domain_set_llc_colors_from_str() to be more explicit
> v5:
> - static-mem check has been moved in a previous patch
> - added domain_set_llc_colors_from_str() to set colors after domain creation
> ---
>   docs/misc/arm/device-tree/booting.txt |  5 +++
>   docs/misc/cache-coloring.rst          | 48 +++++++++++++++++++++++++++
>   xen/arch/arm/dom0less-build.c         | 10 ++++++
>   xen/common/llc-coloring.c             | 40 ++++++++++++++++++++++
>   xen/include/xen/llc-coloring.h        |  1 +
>   xen/include/xen/xmalloc.h             | 12 +++++++
>   6 files changed, 116 insertions(+)
> 
> diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
> index 3a04f5c57f..9c881baccc 100644
> --- a/docs/misc/arm/device-tree/booting.txt
> +++ b/docs/misc/arm/device-tree/booting.txt
> @@ -162,6 +162,11 @@ with the following properties:
>   
>       An integer specifying the number of vcpus to allocate to the guest.
>   
> +- llc-colors
> +    A string specifying the LLC color configuration for the guest.
> +    Refer to docs/misc/cache_coloring.rst for syntax. This option is applicable
> +    only to Arm64 guests.
> +
>   - vpl011
>   
>       An empty property to enable/disable a virtual pl011 for the guest to
> diff --git a/docs/misc/cache-coloring.rst b/docs/misc/cache-coloring.rst
> index 7b47d0ed92..e097e74032 100644
> --- a/docs/misc/cache-coloring.rst
> +++ b/docs/misc/cache-coloring.rst
> @@ -14,6 +14,7 @@ If needed, change the maximum number of colors with
>   ``CONFIG_LLC_COLORS_ORDER=<n>``.
>   
>   Runtime configuration is done via `Command line parameters`_.
> +For DomUs follow `DomUs configuration`_.
>   
>   Background
>   **********
> @@ -149,6 +150,53 @@ LLC specs can be manually set via the above command line parameters. This
>   bypasses any auto-probing and it's used to overcome failing situations, such as
>   flawed probing logic, or for debugging/testing purposes.
>   
> +DomUs configuration
> +*******************
> +
> +DomUs colors can be set either in the ``xl`` configuration file (documentation
> +at `docs/man/xl.cfg.pod.5.in`) or via Device Tree (documentation at
> +`docs/misc/arm/device-tree/booting.txt`) using the ``llc-colors`` option.
> +For example:
> +
> +::
> +
> +    xen,xen-bootargs = "console=dtuart dtuart=serial0 dom0_mem=1G dom0_max_vcpus=1 sched=null llc-coloring=on dom0-llc-colors=2-6";
> +    xen,dom0-bootargs "console=hvc0 earlycon=xen earlyprintk=xen root=/dev/ram0"
> +
> +    dom0 {
> +        compatible = "xen,linux-zimage" "xen,multiboot-module";
> +        reg = <0x0 0x1000000 0x0 15858176>;
> +    };
> +
> +    dom0-ramdisk {
> +        compatible = "xen,linux-initrd" "xen,multiboot-module";
> +        reg = <0x0 0x2000000 0x0 20638062>;
> +    };
> +
> +    domU0 {
> +        #address-cells = <0x1>;
> +        #size-cells = <0x1>;
> +        compatible = "xen,domain";
> +        memory = <0x0 0x40000>;
> +        llc-colors = "4-8,10,11,12";
> +        cpus = <0x1>;
> +        vpl011 = <0x1>;
> +
> +        module@2000000 {
> +            compatible = "multiboot,kernel", "multiboot,module";
> +            reg = <0x2000000 0xffffff>;
> +            bootargs = "console=ttyAMA0";
> +        };
> +
> +        module@30000000 {
> +            compatible = "multiboot,ramdisk", "multiboot,module";
> +            reg = <0x3000000 0xffffff>;
> +        };
> +    };
> +
> +**Note:** If no color configuration is provided for a domain, the default one,
> +which corresponds to all available colors is used instead.
> +
>   Known issues and limitations
>   ****************************
>   
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index 67b1503647..49d1f14d65 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -817,6 +817,7 @@ void __init create_domUs(void)
>       bool iommu = false;
>       const struct dt_device_node *cpupool_node,
>                                   *chosen = dt_find_node_by_path("/chosen");
> +    const char *llc_colors_str = NULL;
>   
>       BUG_ON(chosen == NULL);
>       dt_for_each_child_node(chosen, node)
> @@ -965,6 +966,10 @@ void __init create_domUs(void)
>   #endif
>           }
>   
> +        dt_property_read_string(node, "llc-colors", &llc_colors_str);
> +        if ( !llc_coloring_enabled && llc_colors_str )
> +            panic("'llc-colors' found, but LLC coloring is disabled\n");
> +
>           /*
>            * The variable max_init_domid is initialized with zero, so here it's
>            * very important to use the pre-increment operator to call
> @@ -975,6 +980,11 @@ void __init create_domUs(void)
>               panic("Error creating domain %s (rc = %ld)\n",
>                     dt_node_name(node), PTR_ERR(d));
>   
> +        if ( llc_coloring_enabled &&
> +             (rc = domain_set_llc_colors_from_str(d, llc_colors_str)) )
> +            panic("Error initializing LLC coloring for domain %s (rc = %d)\n",
> +                  dt_node_name(node), rc);
> +
>           d->is_console = true;
>           dt_device_set_used_by(node, d->domain_id);
>   
> diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
> index 3dd1aaa4df..5a0e3bac59 100644
> --- a/xen/common/llc-coloring.c
> +++ b/xen/common/llc-coloring.c
> @@ -282,6 +282,46 @@ void domain_llc_coloring_free(struct domain *d)
>       xfree(__va(__pa(d->llc_colors)));
>   }
>   
> +int __init domain_set_llc_colors_from_str(struct domain *d, const char *str)
> +{
> +    int err;
> +    unsigned int *colors, num_colors;
> +
> +    if ( !str )
> +    {
> +        domain_set_default_colors(d);
> +        return 0;
> +    }
> +
> +    colors = xmalloc_array(unsigned int, max_nr_colors);
> +    if ( !colors )
> +        return -ENOMEM;
> +
> +    err = parse_color_config(str, colors, max_nr_colors, &num_colors);
> +    if ( err )
> +    {
> +        printk(XENLOG_ERR "Error parsing LLC color configuration");

Missing \n at the end of this printk.

> +        xfree(colors);
> +        return err;
> +    }
> +
> +    if ( !check_colors(colors, num_colors) )
> +    {
> +        printk(XENLOG_ERR "%pd: bad LLC color config\n", d);
> +        xfree(colors);
> +        return -EINVAL;
> +    }
> +
> +    /* Adjust the size cause it was initially set to max_nr_colors */
> +    d->llc_colors = xrealloc_array(colors, num_colors);
> +    if ( !d->llc_colors )
> +        d->llc_colors = colors;
> +
> +    d->num_llc_colors = num_colors;
> +
> +    return 0;
> +}
> +
>   /*
>    * Local variables:
>    * mode: C
> diff --git a/xen/include/xen/llc-coloring.h b/xen/include/xen/llc-coloring.h
> index 26353c808a..5d1355b3c9 100644
> --- a/xen/include/xen/llc-coloring.h
> +++ b/xen/include/xen/llc-coloring.h
> @@ -34,6 +34,7 @@ void arch_llc_coloring_init(void);
>   int dom0_set_llc_colors(struct domain *d);
>   int domain_set_llc_colors(struct domain *d,
>                             const struct xen_domctl_set_llc_colors *config);
> +int domain_set_llc_colors_from_str(struct domain *d, const char *str);
>   
>   #endif /* __XEN_LLC_COLORING_H__ */
>   
> diff --git a/xen/include/xen/xmalloc.h b/xen/include/xen/xmalloc.h
> index b903fa2e26..f0412fb4e0 100644
> --- a/xen/include/xen/xmalloc.h
> +++ b/xen/include/xen/xmalloc.h
> @@ -37,6 +37,9 @@
>       ((_type *)_xmalloc_array(sizeof(_type), __alignof__(_type), _num))
>   #define xzalloc_array(_type, _num) \
>       ((_type *)_xzalloc_array(sizeof(_type), __alignof__(_type), _num))
> +#define xrealloc_array(_ptr, _num)                                  \
> +    ((typeof(_ptr))_xrealloc_array(_ptr, sizeof(typeof(*(_ptr))),   \
> +                                   __alignof__(typeof(*(_ptr))), _num))
>   
>   /* Allocate space for a structure with a flexible array of typed objects. */
>   #define xzalloc_flex_struct(type, field, nr) \
> @@ -98,6 +101,15 @@ static inline void *_xzalloc_array(
>       return _xzalloc(size * num, align);
>   }
>   
> +static inline void *_xrealloc_array(
> +    void *ptr, unsigned long size, unsigned long align, unsigned long num)
> +{
> +    /* Check for overflow. */
> +    if ( size && num > UINT_MAX / size )
> +        return NULL;
> +    return _xrealloc(ptr, size * num, align);
> +}
> +
>   /*
>    * Pooled allocator interface.
>    */

Best regards,
Mykola



From xen-devel-bounces@lists.xenproject.org Fri Nov 07 10:16:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 10:16:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157449.1486215 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHJWE-0001eq-PF; Fri, 07 Nov 2025 10:16:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157449.1486215; Fri, 07 Nov 2025 10:16: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 1vHJWE-0001ej-M6; Fri, 07 Nov 2025 10:16:34 +0000
Received: by outflank-mailman (input) for mailman id 1157449;
 Fri, 07 Nov 2025 10:16: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=DTK6=5P=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vHJWD-0001ed-MQ
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 10:16:33 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id d4715197-bbc2-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 11:16:31 +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 B30531515;
 Fri,  7 Nov 2025 02:16:22 -0800 (PST)
Received: from [10.57.40.58] (unknown [10.57.40.58])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C9F5E3F66E;
 Fri,  7 Nov 2025 02:16: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: d4715197-bbc2-11f0-9d17-b5c5bf9af7f9
Message-ID: <9f749c3e-4f93-40c1-b5c6-74d2ead92d00@arm.com>
Date: Fri, 7 Nov 2025 10:16:12 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/12] mm: enable lazy_mmu sections to nest
To: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Ritesh Harjani <ritesh.list@gmail.com>, linux-mm@kvack.org,
 linux-kernel@vger.kernel.org, Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-8-kevin.brodsky@arm.com>
 <87ms5050g0.ritesh.list@gmail.com>
 <50d1b63a-88d7-4484-82c0-3bde96e3207d-agordeev@linux.ibm.com>
 <48a4ecb5-3412-4d3f-9e43-535f8bee505f@arm.com>
 <d5435e75-036b-44a5-a989-722e13f94b3e-agordeev@linux.ibm.com>
Content-Language: en-GB
From: Kevin Brodsky <kevin.brodsky@arm.com>
In-Reply-To: <d5435e75-036b-44a5-a989-722e13f94b3e-agordeev@linux.ibm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06/11/2025 15:33, Alexander Gordeev wrote:
>> [...]
>>>>   static inline void lazy_mmu_mode_enable(void)
>>>>   {
>>>>  -	arch_enter_lazy_mmu_mode();
>>>>  +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>>>>  +
>>>>  +	VM_WARN_ON_ONCE(state->nesting_level == U8_MAX);
>>>>  +	/* enable() must not be called while paused */
>>>>  +	VM_WARN_ON(state->nesting_level > 0 && !state->active);
>>>>  +
>>>>  +	if (state->nesting_level++ == 0) {
>>>>  +		arch_enter_lazy_mmu_mode();
>>>>  +		state->active = true;
>>>>  +	}
>>>>   }
>>>>
>>>> ... I think it make more sense to enable the state after the arch_**
>>>> call right.
>>> But then in_lazy_mmu_mode() would return false if called from
>>> arch_enter_lazy_mmu_mode(). Not big problem, but still..
>> The ordering of nesting_level/active was the way you expected in v3, but
>> the conclusion of the discussion with David H [1] is that it doesn't
>> really matter so I simplified the ordering in v4 - the arch hooks
>> shouldn't call in_lazy_mmu_mode() or inspect lazy_mmu_state.
>> arch_enter()/arch_leave() shouldn't need it anyway since they're called
>> once per outer section (not in nested sections). arch_flush() could
>> potentially do something different when nested, but that seems unlikely.
>>
>> - Kevin
>>
>> [1]
>> https://lore.kernel.org/all/af4414b6-617c-4dc8-bddc-3ea00d1f6f3b@redhat.com/
> I might be misunderstand this conversation, but it looked to me as a discussion
> about lazy_mmu_state::nesting_level value, not lazy_mmu_state::active.
>
> I do use in_lazy_mmu_mode() (lazy_mmu_state::active) check from the arch-
> callbacks. Here is the example (and likely the only case so far) where it hits:

Sorry I didn't mean arch callbacks in general, I meant the ones called
from lazy_mmu_mode_*, that is arch_*_lazy_mmu_mode.

Patch 8 also makes use of in_lazy_mmu_mode() in set_pte() et al. on arm64.

- Kevin

> static int kasan_populate_vmalloc_pte(pte_t *ptep, unsigned long addr,
> 				      void *_data)
> {
> 	lazy_mmu_mode_pause();
> 	...
> 	if (likely(pte_none(ptep_get(ptep)))) {
>
> 		/* Here set_pte() checks whether we are in lazy_mmu mode */
> 		set_pte_at(&init_mm, addr, ptep, pte);	<--- calls set_pte()
> 		data->pages[index] = NULL;
> 	}
> 	...
> 	lazy_mmu_mode_resume();
> 	...
> }
>
> So without in_lazy_mmu_mode() check above the arch-specific set_pte()
> implementation enters a wrong branch, which ends up in:
>
> [  394.503134] Call Trace:
> [  394.503137]  [<00007fffe01333f4>] dump_stack_lvl+0xbc/0xf0 FWIWÂ 
> [  394.503143]  [<00007fffe010298c>] vpanic+0x1cc/0x418 
> [  394.503149]  [<00007fffe0102c7a>] panic+0xa2/0xa8 
> [  394.503154]  [<00007fffe01e7a8a>] check_panic_on_warn+0x8a/0xb0 
> [  394.503160]  [<00007fffe082d122>] end_report+0x72/0x110 
> [  394.503166]  [<00007fffe082d3e6>] kasan_report+0xc6/0x100 
> [  394.503171]  [<00007fffe01b9556>] ipte_batch_ptep_get+0x146/0x150 
> [  394.503176]  [<00007fffe0830096>] kasan_populate_vmalloc_pte+0xe6/0x1e0 
> [  394.503183]  [<00007fffe0718050>] apply_to_pte_range+0x1a0/0x570 
> [  394.503189]  [<00007fffe07260fa>] __apply_to_page_range+0x3ca/0x8f0 
> [  394.503195]  [<00007fffe0726648>] apply_to_page_range+0x28/0x40 
> [  394.503201]  [<00007fffe082fe34>] __kasan_populate_vmalloc+0x324/0x340 
> [  394.503207]  [<00007fffe076954e>] alloc_vmap_area+0x31e/0xbf0 
> [  394.503213]  [<00007fffe0770106>] __get_vm_area_node+0x1a6/0x2d0 
> [  394.503218]  [<00007fffe07716fa>] __vmalloc_node_range_noprof+0xba/0x260 
> [  394.503224]  [<00007fffe0771970>] __vmalloc_node_noprof+0xd0/0x110 
> [  394.503229]  [<00007fffe0771a22>] vmalloc_noprof+0x32/0x40 
> [  394.503234]  [<00007fff604eaa42>] full_fit_alloc_test+0xb2/0x3e0 [test_vmalloc] 
> [  394.503241]  [<00007fff604eb478>] test_func+0x488/0x760 [test_vmalloc] 
> [  394.503247]  [<00007fffe025ad68>] kthread+0x368/0x630 
> [  394.503253]  [<00007fffe01391e0>] __ret_from_fork+0xd0/0x490 
> [  394.503259]  [<00007fffe24e468a>] ret_from_fork+0xa/0x30 
>
> I could have cached lazy_mmu_state::active as arch-specific data
> and check it, but then what is the point to have it generalized?
>
> Thanks!


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 10:20:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 10:20:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157461.1486226 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHJaO-0003AO-7X; Fri, 07 Nov 2025 10:20:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157461.1486226; Fri, 07 Nov 2025 10:20:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHJaO-0003AH-4z; Fri, 07 Nov 2025 10:20:52 +0000
Received: by outflank-mailman (input) for mailman id 1157461;
 Fri, 07 Nov 2025 10:20:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qRNH=5P=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vHJaM-0003AB-R8
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 10:20:50 +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 6eb19e66-bbc3-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 11:20:49 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AS2PR03MB9124.eurprd03.prod.outlook.com (2603:10a6:20b:5fb::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.16; Fri, 7 Nov
 2025 10:20:46 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9298.010; Fri, 7 Nov 2025
 10:20: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: 6eb19e66-bbc3-11f0-9d17-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=unq6TPvezPS4OYjjjNDH0Jb6ESJf8qzlZbShbIbAGVSfRy/scmfNBruBNkgBHho0VXfqz3HwfjtIUK2KXzBHguHyRSAH9pGJhHWGhMOugwmKGBZrSkVoAhBfG60ITJcQNMtO6Qj4OUDI8kN1tPHfPH87WB6NAMLB7d7PXrt296v4w7Ff2UuUBZSi4Fbg3QWubxpYNKOiZTPYeZAcf9cYp0u7M8cE5+yawQr/r12ItPN9LSTPsdDO0epGcLhR7Znvu3K/n9KdzUQ/yQl5mgqRJR4uzsoWCE+HlNI6J3XJsNCjwkhKyIT9wjRRo5SAD2hMZCbzhLJS/rr2J19HRxcAhA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1ArRui7xmU0Fi7LEisehBujPu4Ubs2/KCh502Cj/GlU=;
 b=WyoSl4pgcnlA599wLn9kmGxWfLmfysSLeEkjzor06QyT2sBqgtDdlcRUUgv/hirjiWY8I/6WJD75KiWksWHt2I9Tmbbc0JGQkJn1WZqK7FvQStLuxcq1C6umcOnCIObo0P8kmMSwgTtvrHcIigYIIiNTUyR+mpm/yzQza9b1y106jLuRKlKKtyeA6QQOZFok20ZNmjcaiqXsc+ei715xJvRfSHnBmTXSauQ9VZPdcVQLrvcGPbMOYC2jeS6/l3SqybR+nA7AECOHYQo/vXHDWptlXi2PWo69uwNVoNm89xwWYFAtmKroVZPRXOuG6doxnHwW2VhKkhAFC8TnrwXWpA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1ArRui7xmU0Fi7LEisehBujPu4Ubs2/KCh502Cj/GlU=;
 b=DXHFpkEkGoae4pTy0HfpIzgWrgdMK92aqYhlcrvyOvrQxNZuQ2gsePD72etVu/TdSH+keEn9TW0YGD2nEYXFbax94IAeFvMpzVUziGnzrOKG8SthvgOtxCpMzYn6lgzL5ZG16vIGJYoVhgXb4U0ajXO4U9/r1/KQg/wxrzBjp+AZioAK+0Ezk0MgNHrnqO8Apy9GbMncTjyKvGrItFEbQlyyfLzBB1MgbUxxLMF//MMjDA330tmCRXt+1VFBMH4BYsJepapNr5eneOVbHjBd66QsuvvhecPpaca4zEVm3m9XrRkBHzLbSilzcl2TT4QpNpvHU2Zr4TJm/Q/ECgcQrg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <e12a6c0e-fbc1-48c4-b1f2-daaecbc3c6b8@epam.com>
Date: Fri, 7 Nov 2025 12:20:44 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/x86: guest_access: optimize raw_x_guest() for PV
 and HVM combinations
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>
References: <20251106222630.2777457-1-grygorii_strashko@epam.com>
 <0dd91607-6df5-4be8-a92a-c3046542748c@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <0dd91607-6df5-4be8-a92a-c3046542748c@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0279.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:e6::11) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|AS2PR03MB9124:EE_
X-MS-Office365-Filtering-Correlation-Id: 610fb602-f637-4ad1-da94-08de1de75097
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?TXVGcVQzK2FXb3RDR0hwOUUwMFN2N1R1a2NObi9EUGZ1aXErbGg1c2hQcmRj?=
 =?utf-8?B?UDRkNFE4U29LaTdjT0JSVVBldGkybTdaSlBjR2FpWmRFdDVDUm9xRThiU1p1?=
 =?utf-8?B?LzdZL2s1U05PQVY3SENnRXdicGdSOHQwL3F0RjBtcmFwL21PT2hPbnpiejEr?=
 =?utf-8?B?MXVhQnFPYWMyY1pWTHR5ckIzUEV0aWhJdXBLaFRSNjJLS0xTWFRHdXIrN1FV?=
 =?utf-8?B?R2IvZkszamJwY0JBY2ZUQ3FsV3NwYUJEc0IvNkU4NW1JWTFXZC9XeHFvd1JF?=
 =?utf-8?B?V1dGU05ZcVJDT1VESlJRcmNHcUxTV2pYdDg5ZVVZNDZjM1lOWm0xUVEwZDJB?=
 =?utf-8?B?aHAwajVrOVU2SnV1ZDhxLzBRdVIyMElQY2I5d2JpUHFEZy9YcmZwbHJWNTF2?=
 =?utf-8?B?WDhpLzQzQ0c1Y0NMc1huVTJld1VEVHNkc1YrTFJUdTJhQ2FBSEsrM0wyd2s0?=
 =?utf-8?B?Vk9ySkdFMXE5SjRxbTJzTkxGRnlsYUQwZ2grSC82N0VUY0tMR0g3Tyt2SkhS?=
 =?utf-8?B?c1cwbWFZWnZPVHhaYWRxdVVQdmJRRUVySk5HM0FKVE1mbWpjcXY2cnJhcU9v?=
 =?utf-8?B?Ty9nZXNGNE5nakd3YUZoVFpGcXlyRGNseEFKZTVRM05kc0RuMHd6OHpTTk9F?=
 =?utf-8?B?cVJBam0zWGhQUnFhbTRDR3R2NWduSGpobmw4ckRHRGRsdUtJajlXMGVjbEs1?=
 =?utf-8?B?cDhEZnlKU3RFa3NZTC82bE83MW9RREQ5RjMwVy9OZTVVMEZ4SFo2SE5SYW9k?=
 =?utf-8?B?QzJ5RnV5eENnN3RVV09PUWk4UXlZWk1YYXRVcGJaWXlPdjljMzBFZjJqZ1VF?=
 =?utf-8?B?VWN5MVB1QUo1UFZFUm1aSzJZRy9OYnR6eXdLZkViWklZQnRrMlZmMk1pSTF4?=
 =?utf-8?B?NGwwL0lqT2l5dndxQ25oZjUycUh5R043ZXZLT1ZncFZwc0xOMGtDbEdCNjI1?=
 =?utf-8?B?TXg4cHN0aXVWMFpEOGF0ZklGejlFdFJQb0lBSERUQ1hwcnZlNTdVbjJkYkNK?=
 =?utf-8?B?dU1SancveUJDTHRoSkFmSGhHSVVqQVdZc21qNkZxekV4K3k4UUsyRlFiQW5C?=
 =?utf-8?B?SDYrWUZYcFVXMGN2UHZETm5GVVRDVjFCQloyMWtYU01lZ0o1TmRVMjJiUFZk?=
 =?utf-8?B?WmsyejJyQW02Z0RNeFNxb3F3d2lENCtFbGdiQkN5RlJnc0pOaldaRmdlUU5W?=
 =?utf-8?B?TmlGY1kzWnRwWFdvSDI2bkRkTXNJTUswM2wzQ0tvc1BvdERkSEpFMjcrc3Iw?=
 =?utf-8?B?UE9JTTlKUkdVemRvM0gvM0RwYjlXM2Z2enV6ZFQrK0JDeFhab1dLeUQ1dGM4?=
 =?utf-8?B?VnJJZ0hvNzdhaUduV0Joclk0K3hOcDJVd1F3c1pveU9VTTFHd0ZIQkVPNnVO?=
 =?utf-8?B?N2xVVlJibFU5RGJZSHpuQzM0dEszT1NwOXZEN2hOdE1PK2E2bkFGbzB2SkJV?=
 =?utf-8?B?bjdUWWxMM1ozdjVVdklId3hLS1hBKzJrb05CWHczdnFYNW91YnZqUnJrOGJP?=
 =?utf-8?B?c29DWjZhSS9oU3RVcC9iM0tuSlRkSDZIVWkyUmtUN3F5bThWTlJTSlFFY1dn?=
 =?utf-8?B?YW16bUpjS0JLazJZMzhDSVZJOGRTbzhZdXJVRGljMkFSMnVaV1VJVUVjV25R?=
 =?utf-8?B?TU9iVnFvTDE4UHVuVDMwcnFBUk9XZHVsa3NUZ2wvM3pLdE5sak43NjQ2dU05?=
 =?utf-8?B?ZU1YMUxFMUx1UHE4VFJmNlNQY3FOdk1GNEFPREwwaWNLVW9QK1hBdkhSYmRk?=
 =?utf-8?B?WEVpaDZKR0NndTgxNXQzT2RoeHBnbUNlUjJhU3dYUUlDWXY3WVAxZHNsQ0xu?=
 =?utf-8?B?SXpWQmpncENKUVEyd2VoOGllVWJ5SXFHZUUxOWNtcmExVklvZC96NUd2K05W?=
 =?utf-8?B?S21qYTJONmQ5L2srK3NqOUZWNlhQWGZ6cnhtSUkvcTJtdkpJWG1TTUo5ZHc0?=
 =?utf-8?Q?cN/UT6QwBwanKpPP/OEXPQWM14QvMaD/?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Sm5LNHhxMEFmSVVsdTJzdDY3am9TbzVUZ0wyUUVOcUZZb2xDZGoxOTRkQXNX?=
 =?utf-8?B?Ni8rbGtKVVFIV3VrWXFleG0rQXRMY09pVXZGMU1rbEdrU0F3NXdsSEUzOGJE?=
 =?utf-8?B?WkZTOVZvREovY1hkMDJrZjdPNnI0RUZDeFNPUUJtZlNjVUJvSGEybEpQSkFp?=
 =?utf-8?B?OFd2Yi8wTFo4NGx6aGFQTHBIMHc5bWdZV0MwekFjajRrOWhaUWI4MnVMR00y?=
 =?utf-8?B?MXgwNXQ4ZTdRLzE1dE5qZ0wzN2gzQmNhdnN4cU5ab1UrUktQNGdaYmJvUzlC?=
 =?utf-8?B?U0tTbURQMVdRZ0dpQ3QreTMwcHJJNnNJUnBBK3dacVZIUzFNa0xKOU12YUlx?=
 =?utf-8?B?cWYzdGh4dFc3MFZhSC9zNFVFd3VaQ1MxQTk1cUNINnhQNU5EaEV5bWxFVGd5?=
 =?utf-8?B?SkNpR2dZT0tWQ3lDSFRXa2NnVzBKbStjNFAzc1g4bStWUXo1WGZ4OXZ5RXFF?=
 =?utf-8?B?OWg0ZnpCSVNWMXBwZ2IrQ25CZi8xZnBFK2ltRzZNSFVibXc0bWJGSUc0ckRF?=
 =?utf-8?B?Z05WNVJSUkJ0Wk8zQ1hRNEpaYkZBRU5rYnhqM2VVOU9ySmdTejJKckFJSjZp?=
 =?utf-8?B?WnJMb2lkZytOWHE1TFMvWlpnUXZJS2EwQS9hNHVpajhack5IZ2krYmJKdHIv?=
 =?utf-8?B?dUVpNGhCT0dPWnFNQ2RObjc5alF1cDRiVnVwTml3WGtubGNVdnFKbkRVRm82?=
 =?utf-8?B?WWtja0Y2bFhTbzVYWGNSd0NiRW5ZMkw1UFY5WkM2NUNqSDhTMWljVCtucDJO?=
 =?utf-8?B?UUFYWnVKR2djK3U2ejJKNHM5VjJ1WXBjZzc0RjB2Zk1pdjlCRnB4U3VoaENT?=
 =?utf-8?B?NFIxZmxOd2pWTHF2dHB0R1NIQWJUb2hwK3MzZ1lMQndnTExCTlRvY1hLL3Ro?=
 =?utf-8?B?aXRqbWxBYW15MlVuVnNyNWEyWk9pUVBsdGpJUGVQSVlmTjRwOW4vMkJadEU1?=
 =?utf-8?B?ZDh4dm1vYjl2Rk5Nb0VwQ0dXUkpibDRHVmZyalVYTHUvQ0Z2ZnEwY1lUWkVH?=
 =?utf-8?B?U3d0S2VaOXJhV3pOVUlGdUVhL21BbGdWT25xTmI4QWp6OURac1kyQ2Zlbjdq?=
 =?utf-8?B?VUJTSHFFSkNxRXNoNGpNMTVMK0ptV3hoUWQ4dm9JeG1jUG41OVlZci8wVkN6?=
 =?utf-8?B?eDZLR251QVEzelgvWVM0dWhnL0FCbzBaRThFUGVYaUxZWWlkT2xzUktwTnR0?=
 =?utf-8?B?Q2Y2dmxuUXZqelRjaVJSajE2VmtES2xHYzVOdVdITXAwU3RWbXVra2VWL3pU?=
 =?utf-8?B?bzZIWFQ3dmd1QUtEQTJtazNqdG5FcHlMakQyTzRFNU14T0ZYZFZEbEs1Z1FO?=
 =?utf-8?B?QXpvenZEQ2JSOWl4T21naUFrbC9WUGl5akc2QysrVUUzSlhTY3dUY1JkTWpC?=
 =?utf-8?B?R2xxczV5YXMyS3VrOW5Da094R25VUFJpVTY3eGNTdzBOOEVpbmluVGdVeXdL?=
 =?utf-8?B?OVdPSUx3SmUwcXpXZ3hmaEViNWZuNUpONmJ2b0I4UmFBYjIvbFVSWWh5UDdx?=
 =?utf-8?B?TWpSOVR2MUxuMWEyVkY2L1dkVnoxN0g4dDY1UkxwajkzbzNER0pOWmtYcm81?=
 =?utf-8?B?N2ZjR2piMHdkeGZFWEcveG9Zd0xKM2p4RHRsbHJDYXhmWEFyTS92ZWhGQWs0?=
 =?utf-8?B?dW9qdkRFTkw1d041YnFhY25nOXduMit0ZHNVQTBuU0VPMHRNV0JGVnJVdVRw?=
 =?utf-8?B?NzBZQ3RYS1FhY2dSbWpvRHVtV0RuNnZ3cEpqTEI0K2tNaEdPNDNSRldOVUU1?=
 =?utf-8?B?bE52U0NrbS9VY1V1NUhMN0g5YUcrWXF0NURTMVphem1DYzIzU2dBTXpZNnBZ?=
 =?utf-8?B?Q0VyWlFzL0MwY2s3MjZnQXVUZkpOcHE1K3ZuWEdaRkJzZkJQL1BXaWFrNHpY?=
 =?utf-8?B?YWFyaFdQZ2dub3VnSjhjamU3bkNreW45cVE2Mkw2VFZNbmk0aXVMdm11eVNQ?=
 =?utf-8?B?MzE0VFJiaG5tallOakRwd3dvSzNHdWxUTDhlU2xoVTdDc3dtMkxzSXpJUDQ3?=
 =?utf-8?B?S05LWjBXbDRIQ0ZqSkhIYkJteGpMcnhKZTVmWG4xNFJpWFdiUVdDMkRGTSth?=
 =?utf-8?B?STVWU3cxV0lQM3ZQdGd5NEFNbHJRZERJNW44NkZDWDRGSUpXZUl2SThiTVov?=
 =?utf-8?B?WHZWVEVZSUpGelVGSXNWVnBNRlNMa3BXWDdhdkZ4UEZOUElDOGllUVoxS28x?=
 =?utf-8?B?V0E9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 610fb602-f637-4ad1-da94-08de1de75097
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2025 10:20:46.2639
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: trAbLmEV5Kh+DTe8RQsL857GPR0gdHWUz5ntOzdDppQsmBqLRzU++4l+iJ8Ia8DBO6NC34JU1MRukaloW0SgMUw9Pek6mKbrpQ6avsxJFxs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9124



On 07.11.25 08:52, Jan Beulich wrote:
> On 06.11.2025 23:26, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> Xen uses below pattern for raw_x_guest() functions:
>>
>> define raw_copy_to_guest(dst, src, len)        \
>>      (is_hvm_vcpu(current) ?                     \
>>       copy_to_user_hvm((dst), (src), (len)) :    \
>>       copy_to_guest_pv(dst, src, len))
>>
>> This pattern works depending on CONFIG_PV/CONFIG_HVM as:
>> - PV=y and HVM=y
>>    Proper guest access function is selected depending on domain type.
>> - PV=y and HVM=n
>>    Only PV domains are possible. is_hvm_domain/vcpu() will constify to "false"
>>    and compiler will optimize code and skip HVM specific part.
>> - PV=n and HVM=y
>>    Only HVM domains are possible. is_hvm_domain/vcpu() will not be constified.
>>    No PV specific code will be optimized by compiler.
>> - PV=n and HVM=n
>>    No guests should possible. The code will still follow PV path.
>>
>> Rework raw_x_guest() code to use static inline functions which account for
>> above PV/HVM possible configurations with main intention to optimize code
>> for (PV=n and HVM=y) case.
>>
>> For the case (PV=n and HVM=n) return "len" value indicating a failure (no
>> guests should be possible in this case, which means no access to guest
>> memory should ever happen).
>>
>> Finally build arch/x86/usercopy.c only for PV=y.
>>
>> The measured (bloat-o-meter) improvement for (PV=n and HVM=y) case is:
>>    add/remove: 2/9 grow/shrink: 2/90 up/down: 1678/-32560 (-30882)
>>    Total: Before=1937092, After=1906210, chg -1.59%
>>
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> [teddy.astie@vates.tech: Suggested to use static inline functions vs macro combinations]
>> Suggested-by: Teddy Astie <teddy.astie@vates.tech>
> 
> Just one formal request for now: Please send patches To: the list, with individuals
> on Cc: as necessary.

Sure, sorry.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Fri Nov 07 10:27:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 10:27:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157473.1486235 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHJgr-0003nf-TB; Fri, 07 Nov 2025 10:27:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157473.1486235; Fri, 07 Nov 2025 10:27: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 1vHJgr-0003nY-Q7; Fri, 07 Nov 2025 10:27:33 +0000
Received: by outflank-mailman (input) for mailman id 1157473;
 Fri, 07 Nov 2025 10:27: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=qRNH=5P=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vHJgq-0003nS-5t
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 10:27:32 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5d9ef107-bbc4-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 11:27:31 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by PAWPR03MB9977.eurprd03.prod.outlook.com (2603:10a6:102:360::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Fri, 7 Nov
 2025 10:27:27 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9298.010; Fri, 7 Nov 2025
 10:27: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: 5d9ef107-bbc4-11f0-9d17-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FN6vzqDctfHbhHC4iNqMour3Fu+7wWirDkfgOOL/4J1uq6UD+xFNmA+5Cs7uFokvQ/HzpyoaNjD0qI+4mhO/rgW0Pt/eXaLooF+QWJWQtrifVwHEjyozbShNLWNxfMz/Sr8dL029iqwE2zIKAGv8yl2By9BDCH4jrpabfs5fBbMz0afGjbtnxExNaJVyfXA6FqmrO8ru9UB8L91djViat4iB+XLHbyCqyYFJx4F+7wOo2bbOTZtGXJhGfxmOW0zhgEHG5hPc9oMh93J1gD4jYdwEZbLGg29BoiMkjzUCRBE3L+Fhwd12C2KN7Cf6jS0Wry8coohsUXWef2M95k4xMA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NONuVg/NJzAZPSkDh4oPbS2bwGloAdzoWNcm+cTEJHk=;
 b=ZLLuhWpYU8WAr1E2q6VLMXy4kAdeIwwa3hXTAb872YkMt7y5lPRji5ZKaThz8VN2Yfq/pKDb1MRimg4Vdp3W2c9/OALbatEm1vWYvUn6oftPWTkbObuTi7AFa/4x5kDgBLYz6Nb4kp/lYYrzeCqNW6kzK2Ppwgl7v4j4opwMPIKCIRKdgCeuDLt03zKBQHVZz/1RUyKDc+k+kR1MbJrfnhGkPeWI14TmQ1cGnd+fEbNew3xgbgAX8xBULoGStgOjsVdSNFDdEA0eSbe7Qgok1kD5KoBcBbEPushHbnRZqUqan33fDpoAp6+u7aqz3D4zA16Nv+5XVZiDng99q94vbw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NONuVg/NJzAZPSkDh4oPbS2bwGloAdzoWNcm+cTEJHk=;
 b=UdDRXmkaDaDvz/g+YTeKwY5/YkpApdTsAVwZj1rXQj4Yf7BKdHL/jwY2yIKfyfTN1S9AURujdTHeYpplPJhoDdq1eVFVIbVyjd9I1x4yMf9Oe14LX9myHVBn4ehdZZxyZByLs9Tg0skSM9qmuPC2Ekz+Ej/YuZyO3xWmpc3vxKx7iqMxsc4e/WIgS4nR/Oo79TWceLRYLbUxICCCbjVZzquxYXMmdZ/WWRdFEjztJVNyEOuTcldc+X8ww2UBQ4QgfImcp4g7EhWu1A1ZDj4lc298dFxHDecFmzP9ub22ucdDxJ9gYn8U0Y7/wDsslfEr7v5mpbmpFoeoSjNUI5mklA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <9baf3150-c787-4fb8-a67d-70fade104b54@epam.com>
Date: Fri, 7 Nov 2025 12:27:26 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen/x86: guest_access: optimize raw_x_guest() for PV
 and HVM combinations
To: Jason Andryuk <jason.andryuk@amd.com>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org,
 Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>
References: <20251031212058.1338332-1-grygorii_strashko@epam.com>
 <434d9ce4-e5e1-453d-84b7-e21e66d0c5a3@vates.tech>
 <b012c6c3-fb8d-4336-922f-f40bc43eb2b5@epam.com>
 <0217b1ff-2c33-43ae-adbc-d665c881473d@amd.com>
 <ffb2ad53-c150-44e3-a0b8-7ed3473886f6@vates.tech>
 <01ad9a85-ff61-445c-97d4-076f9a81b649@epam.com>
 <2e298f37-78b2-4870-89a0-07dc4501372c@amd.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <2e298f37-78b2-4870-89a0-07dc4501372c@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR4P281CA0225.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:e4::17) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|PAWPR03MB9977:EE_
X-MS-Office365-Filtering-Correlation-Id: 6a32fd58-b14b-4dea-1d37-08de1de83fe1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|7416014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YU14bnBKeEZFYWI3NzZaZjg1NFp5ZTVrR29UR2F4OUV0VXNEWjFPWWM5NUox?=
 =?utf-8?B?OWF1VEdyeExZQzYzRHNQMmdJdEc5NVp5ZDdsQllSeFZsTzNHZkswQTltbUQx?=
 =?utf-8?B?NGdhamtuVGZneXdUaEU3c1VGVjhSSFdySzZyK1pUSlJxME43MlVVREJ4Zm0z?=
 =?utf-8?B?Zm10dTFhaklOd1psWFVvY1NNTEZ0blFSUXcrVjZ0dUk4RUt6c2l6UldEbjRq?=
 =?utf-8?B?NW9QSjNzSFR0ZEg3SjhXZ2VvUzNMcUdRN0hNbzdXTElYQU5CTmQ3akl2SkNN?=
 =?utf-8?B?dDhJUXRTMUhBclRzcHhZbkJ0NWFISEFHblBUQWtObmpiM3RCZU1XUUxXZS9r?=
 =?utf-8?B?d3hBaFd3alloUHdSejFoMUt6bXZtTXFpWVFsQitTemZpSWFsaUJpMEtsZVA1?=
 =?utf-8?B?TENUVGJFTGR1WVlmSjg5VHRNaXNDTS9mNWhyeHpMQ1RsTDQyd1I2UktLWXV3?=
 =?utf-8?B?MlBiL0pqdjd0TDNZeElVRFRNb0Y3MmFkYVJNdHJPZm1qSkdqUDkwYlYyL3Rp?=
 =?utf-8?B?cUdodndKbzgycXpDbU5zbnRlRFQwcjkwbmc0YzFNT0hESXJkY2Z2RVM2elkw?=
 =?utf-8?B?VUNjeCtQS1FRNXN2c1drdEpnZ1J3NEZkQVUzT3dyZXJtUkUxR0xlRUVuelZx?=
 =?utf-8?B?R0V1U2N0bmFXVzJsS1hVZTFydUNyWHlCcVl0a0FkV29YOVNlK2IzaE45K1Iv?=
 =?utf-8?B?aWl2UTBwalVLbnVXZ2lDRTFhYnRMdU1tQk9MTldrYmpOMHpqN1A5c0R2Z3Np?=
 =?utf-8?B?NTFBd0JsT1RkVlNTT2RJV3I4VzdJYm45QVZ4a0QzQ0ZFVDg5ekptbDZyYWE4?=
 =?utf-8?B?OXdnT3lqRW01aU4wRUpLTXU2Q09ta29kUjZJankwdWhqMmZFeXlVVGpwd3NT?=
 =?utf-8?B?Y2NIOHI3TUhuWnhQSkhwRFdtSklDNERiYTRiYUZJQWhwUERDSnVQeGl4Rkl5?=
 =?utf-8?B?dTZzN2czSXZXVndrNWQ4dlNoeWZtWE1udnlHdUV5R2hPcDRHMnN1cktUcmhS?=
 =?utf-8?B?WUxZQmNWVzFsZ1R3TUVmTGRrOUNzeGE3c2xBQUFXZWxjam5lRDhuZ21kRjRo?=
 =?utf-8?B?RXpEK0FUZmRUTWl1UmovOWt0R09BZW5EaHorUkFodTBkOTlqOUJJUUtKTmk1?=
 =?utf-8?B?WlBWMi9rc3lMbGxFNWRaMnd5TE9lSUx6K1BpRG9OeThFS21scFBBVStNeFAr?=
 =?utf-8?B?b0dCTlhEazVLaGNrT2lEMmF1TmFLK3VaRlhCdFgrM3VEdmFGQmsyRUtjbFZY?=
 =?utf-8?B?NkJUOWVHUnl3TUJLakZRUFAweVhNT3ppVHNCeEh5M2pHQnRzSHpxWXdaWWxU?=
 =?utf-8?B?RitqajVLS0VoMGZXeFdTeHg2U1dGVmFTM2ZuRlRuM25CWGlMMThRaTV2WjF2?=
 =?utf-8?B?UDNiQ3BLL01KU3h1Wlh0Tk9BeFFoSys1U01iVXFqbGsvTWV6LzROa3NLTWxN?=
 =?utf-8?B?bExsc0VUUEt0SnRNT0Fud1dPcmI3ckt4RUtlcWFMbmEvUHc0eVBCRHpOU2Nt?=
 =?utf-8?B?UCtPZ1hEVkhMQWNaUFBJRStCZ1dZbGticE14Nkg1S2l4aU11MWk2QkU5ejRV?=
 =?utf-8?B?L0FTRFRvTjZJSkRNR09EeVI1MkZPdlorMDVaczJhSHgyUmswUC9BMHcyR0hH?=
 =?utf-8?B?MzNZWGVsRjc2WGJRcHpvaEpoYVRsdU9DTzVkaWtBcWZiT3RDTHFaY0FtTk41?=
 =?utf-8?B?eUxzaGJ2czJtQWJRN25PckVCVTNzKzU3UDYwZUVQK3RrdTRsT2FOT1d6ZUlN?=
 =?utf-8?B?Y05aMGZkbVBVSyt6d2NwSlQzV1poTHAxOEswQnByN3dKZGt1RTJVN1BCM3VY?=
 =?utf-8?B?dnJCczFtWW03Tm03NGlzdW0wVmNDcGhBbjZ4Q0xkN2tlVGtrK2RqRXJZc09x?=
 =?utf-8?B?V2YrSERydFFLOEd1bVIwQ214ZmVMRDRpSDNEcTZUL3BXUnBEOU1NVEpMeVVx?=
 =?utf-8?Q?mFVnc/2Pg5Wizgbb7r5d8SVICaqvZ3mm?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NVJFNzhQb1VpUHZjQ0hOUFlqU2xLWkVLVFlobmRZMTVza0E5ZWlZNGVxUkV3?=
 =?utf-8?B?ekFrQ2dXSWhPbi9RNEZQWjhrV1V5dDVNN1ZmSXRDMXN6TjJMeHNISjVJT085?=
 =?utf-8?B?ZUxrZmlXYnhZUCtEeWZpMEc4djlockF3cDhxWktJWEtPUDRhdk9yYXpRY0xV?=
 =?utf-8?B?MnRDdkdwQ0V2ckVvN2hLajBvbStuVTRmZmlFdmkvSkZINXJEM2FMWU84WlZE?=
 =?utf-8?B?NERKYzN1SWxTaWJDVk9LU2lYL1RDRjFZTEM2Y2U0SjY4T21KYmxYRWh4KzRi?=
 =?utf-8?B?T3U1b0wwenNMemNsUXpKdlJVeTNQT3ZseU9qbmQ5R1RuTjZxR3prZWM0YUVl?=
 =?utf-8?B?ZUVsa0hhTHYzWVdTL2UvUGhZWk0rZFBoRkNmeWd3ODc2VnZ6b2ZmZUJ0dnRi?=
 =?utf-8?B?MXlGQ2xHMTY2NE1iMHV1WW1GNjJ6dHRUWi93L2RRbzA2bTg2K3VqNDBudDdO?=
 =?utf-8?B?cVJCbTVJZllXUEZDUUxpcUNsUTFjTUVxZHRsbmNMM0h4Z05OaFE3aXdxUHNw?=
 =?utf-8?B?UEZsOEVqK216RVRGUTdOOXdrSmh2TnQ3T3NaREFzOUJDT3ZEUGR3d05Za3B3?=
 =?utf-8?B?aEJOTUNxY2UxR2lZOHcxQ2NKRGViOHJTYitSbFR3d2NiWlF4OHJUWUcxcFJM?=
 =?utf-8?B?TGdXcEI3U1QrNlcySGhpUnVYemR5WU1RLzNKVkthRG94c0ZYWi9VcFZoRmFv?=
 =?utf-8?B?WDF4NFBPUmRLdjlHWEg1M1d4NjFCTWlESHdkNHNJUFNYczY1OHh0SHFEZ2t3?=
 =?utf-8?B?LzE1b2wrN3NWUks3SVpWRElScWJPdXdQcjUwMThzcExCSGd0Q2dMcHU1Ujdn?=
 =?utf-8?B?YVpmdnJPaWFpYkJJTjZCckhTZS8vN1ZFRzZIWFlvbkxTRmtpbUQ1STBlNWlx?=
 =?utf-8?B?M0lxc1RRb2FXRXczN3lUbWo3a1NuMzFua0FMMWQvTFBJQ1hwTGx4K1A2SDh4?=
 =?utf-8?B?UjJYajJ1eTAwS29aTnJmQ3BtK0dJT2wwT1htR2xOcE5SME9QMnhhcm8wdk1n?=
 =?utf-8?B?cGhiUXp5VEUvRXVtZGc2ZnpOdHJwZFRNa2tKMFNVS1RqWFdUV0drSVQ4aXpC?=
 =?utf-8?B?Z3VNWkd5L0gzTjNDaHA2dC9PUk1zc0d1eDgrWHJTMGtaNThqSHhSM2xmcGt6?=
 =?utf-8?B?WkJuQmdra1VnYjJBazV2OStDREMyQ0hrL0hCdHNsSDJKOHZRZVZpQmROcGFZ?=
 =?utf-8?B?ZUhXaDYzK21sTUR0SWJLaHN4eEJJZ0I1Rko0c0dSZUVvTXk0OWdFelJNWEVa?=
 =?utf-8?B?aGtTSXpUOVV1RWlzOEM3WjVLYXlaM2U5MWsraERONEhMMmN6bGg1NFhuaXBL?=
 =?utf-8?B?OXl0Q0VwMGpRcmdhakNpZmJnTmx0b3BNMkRTYm5IVmVMcVR2bFV2ZHBNN2h0?=
 =?utf-8?B?aklJWjl1M3kyWE5HUGNiQWhranFoTG5MemxQMEIrRXJDanFOY0JWZHIrYXE2?=
 =?utf-8?B?U0dGN2VVa2d0WC9TUEFlTEdBWjI5bUFhUjNxT3p4alVYZG5jcHFZTXdEeDNS?=
 =?utf-8?B?VlBTZ21zNXJwWE1QYU5rTVR3aW5NSUtqK3E4K0U0SHFDcm5MWDRWWE1yY09V?=
 =?utf-8?B?MDBrRWVhRTVQZERwUVI4ZmVOUVUrTndYSEJBc1lwNGJDcXJvMVl6L0xGUzU0?=
 =?utf-8?B?RStzNlMyRERSempJZ3cybmxJWHFPclVWT0VyN1pHeHM2YXJpZ0RYNG1ZT3Bu?=
 =?utf-8?B?cUh3K0JKcTlyTU9hZUJ0M2E3SU1oVGNsWlQzd0xwQzNxN2VnekpiRjMyYVZv?=
 =?utf-8?B?YXhTVlZTeUF5MlFueDZodkFEUmZXcEsrelJQUmlWMFNwVTVoeGZPVy8vMGNI?=
 =?utf-8?B?N3Bxd3FvbG83bUJ1RzBqWnp0RlRQalVPRHFKZVJmM003TGpkdnlhNFRKdmRa?=
 =?utf-8?B?dElsQnYrb3dEZXRES0J3a3BHa1Y4dmUvSzRhVnRlU0ZFTEtqTjhEK0E2NUVL?=
 =?utf-8?B?QkdJbFlxN2c2dGY1ZXBSMXd1R1lObUR2a2JUVWdFSnRkUC8zWlRBbGd2YTd3?=
 =?utf-8?B?dHNMeVpVSWlpbVJoa1JWWlRhY0Zud1YvM3FyS2NTeDFqZGxzQXBKV0t1aS8w?=
 =?utf-8?B?RTM4Z1VlTWFWUmViRk13QzFzTmVpWnM2dGg5N0FzWUNaSFdRVlhxQUFBdVZL?=
 =?utf-8?B?S0p6TW5XM1hWUmEzcXdaOEV0L0RLZHFNWTBKS2d1V3FwK0lUYmhrQTdVWlMz?=
 =?utf-8?B?ZUE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6a32fd58-b14b-4dea-1d37-08de1de83fe1
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2025 10:27:27.5779
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: chs/SZyPIoVzWU3APFq6GMiz9anNpBLWGlK5/HDzofrb/sk6T3YlTOLjO8e0rPT8qf1UaKSptlbDb+cU72Qm+jg70/S4ABOh3S9fjkSx68g=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9977

Hi Jason,

On 07.11.25 03:29, Jason Andryuk wrote:
> On 2025-11-06 12:40, Grygorii Strashko wrote:
>>
>>
>> On 06.11.25 19:27, Teddy Astie wrote:
>>> Le 06/11/2025 Ã  18:00, Jason Andryuk a Ã©critÂ :
>>>> On 2025-11-06 11:33, Grygorii Strashko wrote:
>>>>> Hi Teddy, Jan,
>>>>>
>>>>> On 06.11.25 17:57, Teddy Astie wrote:
>>>>>> Le 31/10/2025 Ã  22:25, Grygorii Strashko a Ã©critÂ :
>>>>> Can try.
>>>>
>>>> Yes, I was thinking something like Teddy suggested:
>>>>
>>>> #define raw_copy_to_guest(dst, src, len)Â Â Â Â Â Â Â  \
>>>> Â  Â Â Â Â Â Â Â  (is_hvm_vcpu(current) ? copy_to_user_hvm(dst, src, len) :
>>>> Â  Â Â Â Â Â Â Â Â  is_pv_vcpu(current) ? copy_to_guest_pv(dst, src, len) :
>>>> Â  Â Â Â Â Â Â Â Â  fail_copy(dst, src, len))
>>>>
>>>> But that made the think the is_{hvm,pv}_{vcpu,domain}() could be
>>>> optimized for when only 1 of HVM or PV is enabled.
>>>>
>>>> Regards,
>>>> Jason
>>>>
>>>> xen: Optimize is_hvm/pv_domain() for single domain type
>>>>
>>>> is_hvm_domain() and is_pv_domain() hardcode the false conditions for
>>>> HVM=n and PV=n, but they still leave the XEN_DOMCTL_CDF_hvm flag
>>>> checking.Â  When only one of PV or HVM is set, the result can be hard
>>>> coded since the other is impossible.Â  Notably, this removes the
>>>> evaluate_nospec() lfences.
>>>>
>>>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>>>> ---
>>>> Untested.
>>>>
>>>> HVM=y PV=n bloat-o-meter:
>>>>
>>>> add/remove: 3/6 grow/shrink: 19/212 up/down: 3060/-60349 (-57289)
>>>>
>>>> Full bloat-o-meter below.
>>>> ---
>>>> Â  Â xen/include/xen/sched.h | 18 ++++++++++++++----
>>>> Â  Â 1 file changed, 14 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
>>>> index f680fb4fa1..12f10d9cc8 100644
>>>> --- a/xen/include/xen/sched.h
>>>> +++ b/xen/include/xen/sched.h
>>>> @@ -1176,8 +1176,13 @@ static always_inline bool
>>>> is_hypercall_target(const struct domain *d)
>>>>
>>>> Â  Â static always_inline bool is_pv_domain(const struct domain *d)
>>>> Â  Â {
>>>> -Â Â Â  return IS_ENABLED(CONFIG_PV) &&
>>>> -Â Â Â Â Â Â Â  evaluate_nospec(!(d->options & XEN_DOMCTL_CDF_hvm));
>>>> +Â Â Â  if ( !IS_ENABLED(CONFIG_PV) )
>>>> +Â Â Â Â Â Â Â  return false;
>>>> +
>>>> +Â Â Â  if ( IS_ENABLED(CONFIG_HVM) )
>>>> +Â Â Â Â Â Â Â  return evaluate_nospec(!(d->options & XEN_DOMCTL_CDF_hvm));
>>>> +
>>>> +Â Â Â  return true;
>>>> Â  Â }
>>>>
>>>> Â  Â static always_inline bool is_pv_vcpu(const struct vcpu *v)
>>>> @@ -1218,8 +1223,13 @@ static always_inline bool is_pv_64bit_vcpu(const
>>>> struct vcpu *v)
>>>>
>>>> Â  Â static always_inline bool is_hvm_domain(const struct domain *d)
>>>> Â  Â {
>>>> -Â Â Â  return IS_ENABLED(CONFIG_HVM) &&
>>>> -Â Â Â Â Â Â Â  evaluate_nospec(d->options & XEN_DOMCTL_CDF_hvm);
>>>> +Â Â Â  if ( !IS_ENABLED(CONFIG_HVM) )
>>>> +Â Â Â Â Â Â Â  return false;
>>>> +
>>>> +Â Â Â  if ( IS_ENABLED(CONFIG_PV) )
>>>> +Â Â Â Â Â Â Â  return evaluate_nospec(d->options & XEN_DOMCTL_CDF_hvm);
>>>> +
>>>> +Â Â Â  return true;
>>>> Â  Â }
>>>>
>>>> Â  Â static always_inline bool is_hvm_vcpu(const struct vcpu *v)
>>>
>>> While I like the idea, it may slightly impact some logic as special
>>> domains (dom_xen and dom_io) are now considered HVM domains (when !PV &&
>>> HVM) instead of "neither PV nor HVM".
>>> We want at least to make sure we're not silently breaking something
>>> elsewhere.
>>
>> first of all idle domain - I've tried to constify is_hvm_domain() and even made it work,
>> but diff is very fragile.
> 
> Interesting.Â  Yeah, I did not consider system domains.Â  It seems fragile today if sometimes !is_hvm_domain implies idle_domain.Â  :/
> 
>> Diff below - just FYI.
>>
>> -- 
>> Best regards,
>> -grygorii
>>
>> Author: Grygorii Strashko <grygorii_strashko@epam.com>
>> Date:Â Â  Fri Oct 17 17:21:29 2025 +0300
>>
>> Â Â Â Â  HACK: hvm only
>> Â Â Â Â  Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
>> index d65c2bd3661f..2ea3d81670de 100644
>> --- a/xen/arch/x86/domain.c
>> +++ b/xen/arch/x86/domain.c
>> @@ -567,17 +567,17 @@ int arch_vcpu_create(struct vcpu *v)
>>
>> Â Â Â Â Â  spin_lock_init(&v->arch.vpmu.vpmu_lock);
>>
>> -Â Â Â  if ( is_hvm_domain(d) )
>> -Â Â Â Â Â Â Â  rc = hvm_vcpu_initialise(v);
>> -Â Â Â  else if ( !is_idle_domain(d) )
>> -Â Â Â Â Â Â Â  rc = pv_vcpu_initialise(v);
>> -Â Â Â  else
>> +Â Â Â  if ( is_idle_domain(d) )
>> Â Â Â Â Â  {
>> Â Â Â Â Â Â Â Â Â  /* Idle domain */
>> Â Â Â Â Â Â Â Â Â  v->arch.cr3 = __pa(idle_pg_table);
>> Â Â Â Â Â Â Â Â Â  rc = 0;
>> Â Â Â Â Â Â Â Â Â  v->arch.msrs = ZERO_BLOCK_PTR; /* Catch stray misuses */
>> Â Â Â Â Â  }
>> +Â Â Â  else if ( is_hvm_domain(d) )
>> +Â Â Â Â Â Â Â  rc = hvm_vcpu_initialise(v);
>> +Â Â Â  else
>> +Â Â Â Â Â Â Â  rc = pv_vcpu_initialise(v);
> 
> This looks like an improvement as it makes the idle domain case explicit.
> 
>>
>> Â Â Â Â Â  if ( rc )
>> Â Â Â Â Â Â Â Â Â  goto fail;
>> @@ -2123,7 +2123,7 @@ void context_switch(struct vcpu *prev, struct vcpu *next)
>> Â Â Â Â Â  vpmu_switch_from(prev);
>> Â Â Â Â Â  np2m_schedule(NP2M_SCHEDLE_OUT);
>>
>> -Â Â Â  if ( is_hvm_domain(prevd) && !list_empty(&prev->arch.hvm.tm_list) )
>> +Â Â Â  if ( !is_idle_domain(prevd) && is_hvm_domain(prevd) && ! list_empty(&prev->arch.hvm.tm_list) )
> 
> The idle domain's tm_list could be initialized.Â  It should remain empty and be equivalent without modifying this line.Â  Though maybe your way is better.
> 
>> Â Â Â Â Â Â Â Â Â  pt_save_timer(prev);
>>
>> Â Â Â Â Â  local_irq_disable();
> 
> 
>> diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
>> index 839d3ff91b5a..e3c9b4ffba52 100644
>> --- a/xen/arch/x86/hvm/svm/vmcb.c
>> +++ b/xen/arch/x86/hvm/svm/vmcb.c
>> @@ -236,7 +236,7 @@ static void cf_check vmcb_dump(unsigned char ch)
>>
>> Â Â Â Â Â  for_each_domain ( d )
>> Â Â Â Â Â  {
>> -Â Â Â Â Â Â Â  if ( !is_hvm_domain(d) )
>> +Â Â Â Â Â Â Â  if ( is_idle_domain(d) || !is_hvm_domain(d) )
> 
> I don't think this should be needed as idle domain, and system domains in general, are not added to domlist.Â  So for_each_domain() will only iterate over user domains.
> 
> domain_create() has an early exit for system domains:
> ....
>  Â Â Â  /* DOMID_{XEN,IO,IDLE,etc} are sufficiently constructed. */
>  Â Â Â  if ( is_system_domain(d) )
>  Â Â Â Â Â Â Â  return d;
> 
>  Â Â Â  arch_domain_create()
>  Â Â Â Â Â Â Â  paging_domain_init()
>  Â Â Â Â Â Â Â Â Â Â Â  p2m_init()
> 
>  Â Â Â  domlist_insert()
> 
>> Â Â Â Â Â Â Â Â Â Â Â Â Â  continue;
>> Â Â Â Â Â Â Â Â Â  printk("\n>>> Domain %d <<<\n", d->domain_id);
>> Â Â Â Â Â Â Â Â Â  for_each_vcpu ( d, v )
>> diff --git a/xen/arch/x86/mm/p2m-basic.c b/xen/arch/x86/mm/p2m-basic.c
>> index e126fda26760..c53269b3c06d 100644
>> --- a/xen/arch/x86/mm/p2m-basic.c
>> +++ b/xen/arch/x86/mm/p2m-basic.c
>> @@ -34,7 +34,7 @@ static int p2m_initialise(struct domain *d, struct p2m_domain *p2m)
>> Â Â Â Â Â  p2m->default_access = p2m_access_rwx;
>> Â Â Â Â Â  p2m->p2m_class = p2m_host;
>>
>> -Â Â Â  if ( !is_hvm_domain(d) )
>> +Â Â Â  if ( is_idle_domain(d) || !is_hvm_domain(d) )
>> Â Â Â Â Â Â Â Â Â  return 0;
>>
>> Â Â Â Â Â  p2m_pod_init(p2m);
>> @@ -113,7 +113,7 @@ int p2m_init(struct domain *d)
>> Â Â Â Â Â  int rc;
>>
>> Â Â Â Â Â  rc = p2m_init_hostp2m(d);
>> -Â Â Â  if ( rc || !is_hvm_domain(d) )
>> +Â Â Â  if ( rc || is_idle_domain(d) || !is_hvm_domain(d) )
> 
> Given the snippet above, I think p2m functions can't be reached for system domains.
> 
>> Â Â Â Â Â Â Â Â Â  return rc;
>>
>> Â Â Â Â Â  /*
>> diff --git a/xen/arch/x86/mm/p2m-pod.c b/xen/arch/x86/mm/p2m-pod.c
>> index 05633fe2ac88..4e62d98861fe 100644
>> --- a/xen/arch/x86/mm/p2m-pod.c
>> +++ b/xen/arch/x86/mm/p2m-pod.c
>> @@ -1425,7 +1425,7 @@ bool p2m_pod_active(const struct domain *d)
>> Â Â Â Â Â  struct p2m_domain *p2m;
>> Â Â Â Â Â  bool res;
>>
>> -Â Â Â  if ( !is_hvm_domain(d) )
>> +Â Â Â  if ( is_idle_domain(d) || !is_hvm_domain(d) )
> 
> accessed via:
>  Â Â Â  do_domctl()
>  Â Â Â Â vm_event_domctl()
>  Â Â Â Â Â Â Â Â Â Â Â  p2m_pod_active()
> 
> The passed in d needs to be from domlist, so again a system domain cannot reach here.
> 
>> Â Â Â Â Â Â Â Â Â  return false;
>>
>> Â Â Â Â Â  p2m = p2m_get_hostp2m(d);
>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>> index ccf8563e5a64..e1862c5085f5 100644
>> --- a/xen/arch/x86/setup.c
>> +++ b/xen/arch/x86/setup.c
>> @@ -2158,7 +2158,7 @@ static int __hwdom_init cf_check io_bitmap_cb(
>>
>> Â Â void __hwdom_init setup_io_bitmap(struct domain *d)
>> Â Â {
>> -Â Â Â  if ( !is_hvm_domain(d) )
>> +Â Â Â  if ( is_idle_domain(d) || !is_hvm_domain(d) )
> 
> This looks like it is called for dom0 or late_hwdom, so only real domains.


Thank you for your comments. Unfortunately, I probably will not continue this
HVM_ONLY exercise in the nearest future :(, so if anyone interested and want to pick up - feel free.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Fri Nov 07 11:13:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 11:13:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157498.1486257 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHKPQ-0001po-Au; Fri, 07 Nov 2025 11:13:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157498.1486257; Fri, 07 Nov 2025 11:13:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHKPQ-0001ph-7y; Fri, 07 Nov 2025 11:13:36 +0000
Received: by outflank-mailman (input) for mailman id 1157498;
 Fri, 07 Nov 2025 11:13:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=DTK6=5P=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vHKPO-0001pb-Bp
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 11:13:34 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id cbfcfb4c-bbca-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 12:13:33 +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 802C51477;
 Fri,  7 Nov 2025 03:13:24 -0800 (PST)
Received: from [10.1.36.52] (unknown [10.1.36.52])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 21B713F63F;
 Fri,  7 Nov 2025 03:13: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: cbfcfb4c-bbca-11f0-9d17-b5c5bf9af7f9
Message-ID: <84dab8b1-ea28-4dcc-9721-9aaa6fcd12ba@arm.com>
Date: Fri, 7 Nov 2025 11:13:15 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/12] mm: enable lazy_mmu sections to nest
To: "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Alexander Gordeev <agordeev@linux.ibm.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-8-kevin.brodsky@arm.com>
 <87ms5050g0.ritesh.list@gmail.com>
 <50d1b63a-88d7-4484-82c0-3bde96e3207d-agordeev@linux.ibm.com>
 <87ikfn3yvs.ritesh.list@gmail.com>
Content-Language: en-GB
From: Kevin Brodsky <kevin.brodsky@arm.com>
In-Reply-To: <87ikfn3yvs.ritesh.list@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06/11/2025 16:32, Ritesh Harjani (IBM) wrote:
> Alexander Gordeev <agordeev@linux.ibm.com> writes:
>
>> On Wed, Nov 05, 2025 at 02:19:03PM +0530, Ritesh Harjani wrote:
>>>> + * in_lazy_mmu_mode() can be used to check whether the lazy MMU mode is
>>>> + * currently enabled.
>>>>   */
>>>>  #ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>>>>  static inline void lazy_mmu_mode_enable(void)
>>>>  {
>>>> -	arch_enter_lazy_mmu_mode();
>>>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>>>> +
>>>> +	VM_WARN_ON_ONCE(state->nesting_level == U8_MAX);
>>>> +	/* enable() must not be called while paused */
>>>> +	VM_WARN_ON(state->nesting_level > 0 && !state->active);
>>>> +
>>>> +	if (state->nesting_level++ == 0) {
>>>> +		state->active = true;
>>>> +		arch_enter_lazy_mmu_mode();
>>>> +	}
>>>>  }
>>> Some architectures disables preemption in their
>>> arch_enter_lazy_mmu_mode(). So shouldn't the state->active = true should
>>> happen after arch_enter_lazy_mmu_mode() has disabled preemption()? i.e.
>> Do you have some scenario in mind that could cause an issue?
>>
> No not really. But that's a deviation from what previous arch hooks were
> expecting. Although thinking this through - I don't have any usecase
> where this can be a problem.

Which arch hook expectations are you referring to?

> But let me re-visit some of the code paths on ppc64 lazy mmu... 
>
> Looking at the arch specific usecase I see we always do get_cpu_var()
> for accessing the per-cpu batch array which disables preemption before
> accessing the per-cpu structure.. This per-cpu structure is where we
> batch pte updates...

arch_enter() disables preemption so accesses to per-CPU variables
anywhere in the section shouldn't be an issue either way.

The bigger picture (regarding patch 9) is that what in_lazy_mmu_state()
returns is based on the current task's state (not a per-CPU variable),
and always false while in interrupt. As a result whether preemption is
disabled or not should make no difference, only program order matters.

- Kevin

> For e.g... 
>   
>     arch_enter_lazy_mmu_mode()
>         hpte_need_flush()
>             get_cpu_var()   // this takes care of preempt_disable() 
>             adds vpns to per-cpu batch[i]
>             put_cpu_var()   // 
>     arch_leave_lazy_mmu_mode()
>
>> IOW, what could go wrong if the process is scheduled to another
>> CPU before preempt_disable() is called?
> So from above - I don't think your sequence to update
>    state->active = true 
> before calling arch_enter hook should be a problem.
> Based on above this looks mostly ok to me.
>
> -ritesh


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 12:25:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 12:25:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157523.1486268 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHLWi-0001iA-GE; Fri, 07 Nov 2025 12:25:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157523.1486268; Fri, 07 Nov 2025 12:25: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 1vHLWi-0001i3-Cb; Fri, 07 Nov 2025 12:25:12 +0000
Received: by outflank-mailman (input) for mailman id 1157523;
 Fri, 07 Nov 2025 12:25: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=2Yjs=5P=arm.com=ryan.roberts@srs-se1.protection.inumbo.net>)
 id 1vHLWh-0001hw-78
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 12:25:11 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id ccbf810f-bbd4-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 13:25: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 B6E851515;
 Fri,  7 Nov 2025 04:25:00 -0800 (PST)
Received: from [10.57.86.134] (unknown [10.57.86.134])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id AF63F3F66E;
 Fri,  7 Nov 2025 04:25: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: ccbf810f-bbd4-11f0-9d17-b5c5bf9af7f9
Message-ID: <daa2025c-43da-4c16-9393-a90574d74f64@arm.com>
Date: Fri, 7 Nov 2025 12:25:02 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/12] powerpc/64s: Do not re-activate batched TLB
 flush
Content-Language: en-GB
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-2-kevin.brodsky@arm.com>
From: Ryan Roberts <ryan.roberts@arm.com>
In-Reply-To: <20251029100909.3381140-2-kevin.brodsky@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29/10/2025 10:08, Kevin Brodsky wrote:
> From: Alexander Gordeev <agordeev@linux.ibm.com>
> 
> Since commit b9ef323ea168 ("powerpc/64s: Disable preemption in hash
> lazy mmu mode") a task can not be preempted while in lazy MMU mode.
> Therefore, the batch re-activation code is never called, so remove it.
> 
> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>

Reviewed-by: Ryan Roberts <ryan.roberts@arm.com>

> ---
>  arch/powerpc/include/asm/thread_info.h |  2 --
>  arch/powerpc/kernel/process.c          | 25 -------------------------
>  2 files changed, 27 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
> index b0f200aba2b3..97f35f9b1a96 100644
> --- a/arch/powerpc/include/asm/thread_info.h
> +++ b/arch/powerpc/include/asm/thread_info.h
> @@ -154,12 +154,10 @@ void arch_setup_new_exec(void);
>  /* Don't move TLF_NAPPING without adjusting the code in entry_32.S */
>  #define TLF_NAPPING		0	/* idle thread enabled NAP mode */
>  #define TLF_SLEEPING		1	/* suspend code enabled SLEEP mode */
> -#define TLF_LAZY_MMU		3	/* tlb_batch is active */
>  #define TLF_RUNLATCH		4	/* Is the runlatch enabled? */
>  
>  #define _TLF_NAPPING		(1 << TLF_NAPPING)
>  #define _TLF_SLEEPING		(1 << TLF_SLEEPING)
> -#define _TLF_LAZY_MMU		(1 << TLF_LAZY_MMU)
>  #define _TLF_RUNLATCH		(1 << TLF_RUNLATCH)
>  
>  #ifndef __ASSEMBLER__
> diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
> index eb23966ac0a9..9237dcbeee4a 100644
> --- a/arch/powerpc/kernel/process.c
> +++ b/arch/powerpc/kernel/process.c
> @@ -1281,9 +1281,6 @@ struct task_struct *__switch_to(struct task_struct *prev,
>  {
>  	struct thread_struct *new_thread, *old_thread;
>  	struct task_struct *last;
> -#ifdef CONFIG_PPC_64S_HASH_MMU
> -	struct ppc64_tlb_batch *batch;
> -#endif
>  
>  	new_thread = &new->thread;
>  	old_thread = &current->thread;
> @@ -1291,14 +1288,6 @@ struct task_struct *__switch_to(struct task_struct *prev,
>  	WARN_ON(!irqs_disabled());
>  
>  #ifdef CONFIG_PPC_64S_HASH_MMU
> -	batch = this_cpu_ptr(&ppc64_tlb_batch);
> -	if (batch->active) {
> -		current_thread_info()->local_flags |= _TLF_LAZY_MMU;
> -		if (batch->index)
> -			__flush_tlb_pending(batch);
> -		batch->active = 0;
> -	}
> -
>  	/*
>  	 * On POWER9 the copy-paste buffer can only paste into
>  	 * foreign real addresses, so unprivileged processes can not
> @@ -1369,20 +1358,6 @@ struct task_struct *__switch_to(struct task_struct *prev,
>  	 */
>  
>  #ifdef CONFIG_PPC_BOOK3S_64
> -#ifdef CONFIG_PPC_64S_HASH_MMU
> -	/*
> -	 * This applies to a process that was context switched while inside
> -	 * arch_enter_lazy_mmu_mode(), to re-activate the batch that was
> -	 * deactivated above, before _switch(). This will never be the case
> -	 * for new tasks.
> -	 */
> -	if (current_thread_info()->local_flags & _TLF_LAZY_MMU) {
> -		current_thread_info()->local_flags &= ~_TLF_LAZY_MMU;
> -		batch = this_cpu_ptr(&ppc64_tlb_batch);
> -		batch->active = 1;
> -	}
> -#endif
> -
>  	/*
>  	 * Math facilities are masked out of the child MSR in copy_thread.
>  	 * A new task does not need to restore_math because it will



From xen-devel-bounces@lists.xenproject.org Fri Nov 07 12:28:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 12:28:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157534.1486279 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHLaJ-0002JW-W3; Fri, 07 Nov 2025 12:28:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157534.1486279; Fri, 07 Nov 2025 12:28:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHLaJ-0002JP-Rx; Fri, 07 Nov 2025 12:28:55 +0000
Received: by outflank-mailman (input) for mailman id 1157534;
 Fri, 07 Nov 2025 12:28:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2Yjs=5P=arm.com=ryan.roberts@srs-se1.protection.inumbo.net>)
 id 1vHLaI-0002Hl-Kz
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 12:28:54 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 52602544-bbd5-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 13:28: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 F191B1516;
 Fri,  7 Nov 2025 04:28:44 -0800 (PST)
Received: from [10.57.86.134] (unknown [10.57.86.134])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 0EEB03F66E;
 Fri,  7 Nov 2025 04: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: 52602544-bbd5-11f0-9d17-b5c5bf9af7f9
Message-ID: <2205a5de-de14-4718-a7b8-e49accb06f03@arm.com>
Date: Fri, 7 Nov 2025 12:28:46 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/12] powerpc/64s: Do not re-activate batched TLB
 flush
Content-Language: en-GB
From: Ryan Roberts <ryan.roberts@arm.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-2-kevin.brodsky@arm.com>
 <daa2025c-43da-4c16-9393-a90574d74f64@arm.com>
In-Reply-To: <daa2025c-43da-4c16-9393-a90574d74f64@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07/11/2025 12:25, Ryan Roberts wrote:
> On 29/10/2025 10:08, Kevin Brodsky wrote:
>> From: Alexander Gordeev <agordeev@linux.ibm.com>
>>
>> Since commit b9ef323ea168 ("powerpc/64s: Disable preemption in hash
>> lazy mmu mode") a task can not be preempted while in lazy MMU mode.
>> Therefore, the batch re-activation code is never called, so remove it.
>>
>> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
>> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> 
> Reviewed-by: Ryan Roberts <ryan.roberts@arm.com>

I should also add, that as far as I can tell, this was dead code because the
powerpc implementation disables preemption in a lazy mmu region. It would
probably be preferable to understand why the preemption disabling approach was
added in the first place. Perhaps it would be better to remove that and keep
this code. But given you are not changing any current behaviour and this is
removing dead code, that's probably something for the ppc folks to look into
another day.

Thanks,
Ryan

> 
>> ---
>>  arch/powerpc/include/asm/thread_info.h |  2 --
>>  arch/powerpc/kernel/process.c          | 25 -------------------------
>>  2 files changed, 27 deletions(-)
>>
>> diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
>> index b0f200aba2b3..97f35f9b1a96 100644
>> --- a/arch/powerpc/include/asm/thread_info.h
>> +++ b/arch/powerpc/include/asm/thread_info.h
>> @@ -154,12 +154,10 @@ void arch_setup_new_exec(void);
>>  /* Don't move TLF_NAPPING without adjusting the code in entry_32.S */
>>  #define TLF_NAPPING		0	/* idle thread enabled NAP mode */
>>  #define TLF_SLEEPING		1	/* suspend code enabled SLEEP mode */
>> -#define TLF_LAZY_MMU		3	/* tlb_batch is active */
>>  #define TLF_RUNLATCH		4	/* Is the runlatch enabled? */
>>  
>>  #define _TLF_NAPPING		(1 << TLF_NAPPING)
>>  #define _TLF_SLEEPING		(1 << TLF_SLEEPING)
>> -#define _TLF_LAZY_MMU		(1 << TLF_LAZY_MMU)
>>  #define _TLF_RUNLATCH		(1 << TLF_RUNLATCH)
>>  
>>  #ifndef __ASSEMBLER__
>> diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
>> index eb23966ac0a9..9237dcbeee4a 100644
>> --- a/arch/powerpc/kernel/process.c
>> +++ b/arch/powerpc/kernel/process.c
>> @@ -1281,9 +1281,6 @@ struct task_struct *__switch_to(struct task_struct *prev,
>>  {
>>  	struct thread_struct *new_thread, *old_thread;
>>  	struct task_struct *last;
>> -#ifdef CONFIG_PPC_64S_HASH_MMU
>> -	struct ppc64_tlb_batch *batch;
>> -#endif
>>  
>>  	new_thread = &new->thread;
>>  	old_thread = &current->thread;
>> @@ -1291,14 +1288,6 @@ struct task_struct *__switch_to(struct task_struct *prev,
>>  	WARN_ON(!irqs_disabled());
>>  
>>  #ifdef CONFIG_PPC_64S_HASH_MMU
>> -	batch = this_cpu_ptr(&ppc64_tlb_batch);
>> -	if (batch->active) {
>> -		current_thread_info()->local_flags |= _TLF_LAZY_MMU;
>> -		if (batch->index)
>> -			__flush_tlb_pending(batch);
>> -		batch->active = 0;
>> -	}
>> -
>>  	/*
>>  	 * On POWER9 the copy-paste buffer can only paste into
>>  	 * foreign real addresses, so unprivileged processes can not
>> @@ -1369,20 +1358,6 @@ struct task_struct *__switch_to(struct task_struct *prev,
>>  	 */
>>  
>>  #ifdef CONFIG_PPC_BOOK3S_64
>> -#ifdef CONFIG_PPC_64S_HASH_MMU
>> -	/*
>> -	 * This applies to a process that was context switched while inside
>> -	 * arch_enter_lazy_mmu_mode(), to re-activate the batch that was
>> -	 * deactivated above, before _switch(). This will never be the case
>> -	 * for new tasks.
>> -	 */
>> -	if (current_thread_info()->local_flags & _TLF_LAZY_MMU) {
>> -		current_thread_info()->local_flags &= ~_TLF_LAZY_MMU;
>> -		batch = this_cpu_ptr(&ppc64_tlb_batch);
>> -		batch->active = 1;
>> -	}
>> -#endif
>> -
>>  	/*
>>  	 * Math facilities are masked out of the child MSR in copy_thread.
>>  	 * A new task does not need to restore_math because it will
> 



From xen-devel-bounces@lists.xenproject.org Fri Nov 07 12:31:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 12:31:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157546.1486288 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHLdA-0003n0-Bm; Fri, 07 Nov 2025 12:31:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157546.1486288; Fri, 07 Nov 2025 12:31:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHLdA-0003mt-8M; Fri, 07 Nov 2025 12:31:52 +0000
Received: by outflank-mailman (input) for mailman id 1157546;
 Fri, 07 Nov 2025 12:31:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2Yjs=5P=arm.com=ryan.roberts@srs-se1.protection.inumbo.net>)
 id 1vHLd8-0003mn-RU
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 12:31:50 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id bb6a4c68-bbd5-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 13:31: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 2C3C81516;
 Fri,  7 Nov 2025 04:31:41 -0800 (PST)
Received: from [10.57.86.134] (unknown [10.57.86.134])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 412D63F66E;
 Fri,  7 Nov 2025 04: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: bb6a4c68-bbd5-11f0-9d17-b5c5bf9af7f9
Message-ID: <b165098a-8164-4664-aaaf-1e8c4391d797@arm.com>
Date: Fri, 7 Nov 2025 12:31:42 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/12] x86/xen: simplify flush_lazy_mmu()
Content-Language: en-GB
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-3-kevin.brodsky@arm.com>
From: Ryan Roberts <ryan.roberts@arm.com>
In-Reply-To: <20251029100909.3381140-3-kevin.brodsky@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29/10/2025 10:08, Kevin Brodsky wrote:
> arch_flush_lazy_mmu_mode() is called when outstanding batched
> pgtable operations must be completed immediately. There should
> however be no need to leave and re-enter lazy MMU completely. The
> only part of that sequence that we really need is xen_mc_flush();
> call it directly.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>

This looks functionally equivalent to me, so:

Reviewed-by: Ryan Roberts <ryan.roberts@arm.com>

But I don't think this tidy up is strictly necessary for your series to work?
(perhaps I'll change my mind on that as I go through it).

> ---
>  arch/x86/xen/mmu_pv.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
> index 2a4a8deaf612..7a35c3393df4 100644
> --- a/arch/x86/xen/mmu_pv.c
> +++ b/arch/x86/xen/mmu_pv.c
> @@ -2139,10 +2139,8 @@ static void xen_flush_lazy_mmu(void)
>  {
>  	preempt_disable();
>  
> -	if (xen_get_lazy_mode() == XEN_LAZY_MMU) {
> -		arch_leave_lazy_mmu_mode();
> -		arch_enter_lazy_mmu_mode();
> -	}
> +	if (xen_get_lazy_mode() == XEN_LAZY_MMU)
> +		xen_mc_flush();
>  
>  	preempt_enable();
>  }



From xen-devel-bounces@lists.xenproject.org Fri Nov 07 13:47:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 13:47:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157572.1486298 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHMoS-0003jf-KE; Fri, 07 Nov 2025 13:47:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157572.1486298; Fri, 07 Nov 2025 13:47: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 1vHMoS-0003jY-GM; Fri, 07 Nov 2025 13:47:36 +0000
Received: by outflank-mailman (input) for mailman id 1157572;
 Fri, 07 Nov 2025 13:47: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=XHnz=5P=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vHMoQ-0003jP-Ot
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 13:47:34 +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 4f418647-bbe0-11f0-980a-7dc792cee155;
 Fri, 07 Nov 2025 14:47:32 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-470ffbf2150so3647235e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 07 Nov 2025 05:47:32 -0800 (PST)
Received: from localhost.localdomain (host-78-149-11-196.as13285.net.
 [78.149.11.196]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42abe62bf26sm5287736f8f.3.2025.11.07.05.47.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 07 Nov 2025 05:47: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: 4f418647-bbe0-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1762523252; x=1763128052; 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=v8iLr/ZaHG5FmVn2MkOXtiI2QwHs3zVj6Ne7RvjbIEk=;
        b=K5jYHRQeJDPe9GUNaDkVpHCgzgTtFo7bZsI8H+QTPMZpa+1hAr25N5XlX4/2t8Li5G
         EoGrxbQCdEg6TJkJB0WpDDtFqiNmrZl3FjhgNCmOd5uI8F7nmzB+2bE8zK+JRifnxoYZ
         eYZQTexg7Hi2zv+rBMlz6mtUc7mtQvza3mQdU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762523252; x=1763128052;
        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=v8iLr/ZaHG5FmVn2MkOXtiI2QwHs3zVj6Ne7RvjbIEk=;
        b=tYDn/nJWNsjbjw/KSWZpTneE/0m9hIU03WFyfIBd2Tiq4qmwuVuzYn0Tj7SKcup144
         SWabJr4Khn0MSDqsmSyrMpuxsa579LVDf29WkkG02nGcU1iaYnuCnpBDJLsuLKJCzPNf
         CQkA2X2MQuVE8QZDdRO81bXHw9aBVVGhhxT5zQSEcueDP2qbtUZPbmm2KSolfwckFxxr
         DymjGxDDDuNjvSK+Rzu8Jj73GQPGkkKak4I8aGW2nD/LrynilobsYxSbgVJ8ocOM3tTN
         Vso//kGAxl3LuiWYYzVjBIdKp1hq8EDhIfRmBq68VXe/lkVoB7Brd3/XgWOSE7hOLDTc
         SmHg==
X-Gm-Message-State: AOJu0YwLIYDRvP3kEo0cTNNRRIgtgKfZzpNCLg5G3xCa9BoMAk2xNvOu
	TrQC4zNcoqrBguirZ3BagYjpPg3VBl4sFuW660e38XLQ5AanYCnBtJdI5+6OFMyFK6d+x9+UdAE
	Gn78LAFM=
X-Gm-Gg: ASbGncsg0rpwv2fwRb/kUjYbJyUREGzR7gnJdQjxO9xpQ2aSicqCAhivprYao9y1lSC
	1MAwSr63bzoKE0d7w3lOt0dqYjkK8Xt9PFYTnlbUvs1aO8q0KD9bd75X5JbvrUXzb3Wta30q9uZ
	yUGKN0x/lqIZlzapb2zWsQ5f893l5yfSgRwbiEM3vtTuD2SLtT0dFaazAsVbW1l5dJIumMEuOUv
	eOjBRumsg2ut/HBvYK1qzqnoC2Of0LtdiirtvXzQTV52RELNV5zIt1T8sxn4vs/8W/Qn9J5QmpH
	qxi2JLfBRbJ/ZwHjzOfjfTeDp9qvF4rswYBlXTFBgGprofXXxAq7pSjtU94F5HrP0JL4AIrqt1j
	L7bo990oJtzUQObzf8e5hX7PWyyr8DCdyKm7JXEsv9NrfbnxL8jmp9WnpDgGPjcDr3OfZBWmjjk
	I5+1KKKbhowf0gkp9QZA4iWSlQux/SYgXtc/5gdkcpmzEkiXmfs68=
X-Google-Smtp-Source: AGHT+IE2lTHAH8ZqVRgyoVpbNJloy9tP36XI9ebW93uKUhVNlx/7CgoYt9zD2sRkpsaeuSXfdNzkoA==
X-Received: by 2002:a05:6000:2c04:b0:429:cf03:8b2e with SMTP id ffacd0b85a97d-42b26f82e39mr1651138f8f.13.1762523251663;
        Fri, 07 Nov 2025 05:47:31 -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/ucode: Add extra rows to the entrysign model table
Date: Fri,  7 Nov 2025 13:47:29 +0000
Message-Id: <20251107134729.20735-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

Link: https://git.kernel.org/tip/d23550efc6800841b4d1639784afaebdea946ae0
Fixes: ff8228ab4658 ("x86/ucode: Relax digest check when Entrysign is fixed in firmware")
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/microcode/amd.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/arch/x86/cpu/microcode/amd.c b/xen/arch/x86/cpu/microcode/amd.c
index d72b9556f65f..550b8c1e57ec 100644
--- a/xen/arch/x86/cpu/microcode/amd.c
+++ b/xen/arch/x86/cpu/microcode/amd.c
@@ -655,10 +655,12 @@ void __init amd_check_entrysign(void)
     case 0x0aa001: fixed_rev = 0x17; break;
     case 0x0aa002: fixed_rev = 0x19; break;
     case 0x0b0021: fixed_rev = 0x47; break;
+    case 0x0b0081: fixed_rev = 0x12; break;
     case 0x0b1010: fixed_rev = 0x47; break;
     case 0x0b2040: fixed_rev = 0x32; break;
     case 0x0b4040: fixed_rev = 0x32; break;
     case 0x0b6000: fixed_rev = 0x32; break;
+    case 0x0b6080: fixed_rev = 0x32; break;
     case 0x0b7000: fixed_rev = 0x32; break;
     default:
         printk(XENLOG_WARNING
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 07 13:56:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 13:56:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157586.1486309 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHMxB-0005Nz-FU; Fri, 07 Nov 2025 13:56:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157586.1486309; Fri, 07 Nov 2025 13: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 1vHMxB-0005Ns-Aj; Fri, 07 Nov 2025 13:56:37 +0000
Received: by outflank-mailman (input) for mailman id 1157586;
 Fri, 07 Nov 2025 13: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=2Yjs=5P=arm.com=ryan.roberts@srs-se1.protection.inumbo.net>)
 id 1vHMxA-0005Nm-5f
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 13:56:36 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 8df494d8-bbe1-11f0-980a-7dc792cee155;
 Fri, 07 Nov 2025 14:56: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 F05461515;
 Fri,  7 Nov 2025 05:56:18 -0800 (PST)
Received: from [10.57.86.134] (unknown [10.57.86.134])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 235F03F66E;
 Fri,  7 Nov 2025 05: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: 8df494d8-bbe1-11f0-980a-7dc792cee155
Message-ID: <6a9c846f-22b6-4d5f-81dc-6cdcd4905952@arm.com>
Date: Fri, 7 Nov 2025 13:56:20 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 05/12] mm: introduce CONFIG_ARCH_HAS_LAZY_MMU_MODE
Content-Language: en-GB
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-6-kevin.brodsky@arm.com>
From: Ryan Roberts <ryan.roberts@arm.com>
In-Reply-To: <20251029100909.3381140-6-kevin.brodsky@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29/10/2025 10:09, Kevin Brodsky wrote:
> Architectures currently opt in for implementing lazy_mmu helpers by
> defining __HAVE_ARCH_ENTER_LAZY_MMU_MODE.
> 
> In preparation for introducing a generic lazy_mmu layer that will
> require storage in task_struct, let's switch to a cleaner approach:
> instead of defining a macro, select a CONFIG option.
> 
> This patch introduces CONFIG_ARCH_HAS_LAZY_MMU_MODE and has each
> arch select it when it implements lazy_mmu helpers.
> __HAVE_ARCH_ENTER_LAZY_MMU_MODE is removed and <linux/pgtable.h>
> relies on the new CONFIG instead.
> 
> On x86, lazy_mmu helpers are only implemented if PARAVIRT_XXL is
> selected. This creates some complications in arch/x86/boot/, because
> a few files manually undefine PARAVIRT* options. As a result
> <asm/paravirt.h> does not define the lazy_mmu helpers, but this
> breaks the build as <linux/pgtable.h> only defines them if
> !CONFIG_ARCH_HAS_LAZY_MMU_MODE. There does not seem to be a clean
> way out of this - let's just undefine that new CONFIG too.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
>  arch/arm64/Kconfig                                 | 1 +
>  arch/arm64/include/asm/pgtable.h                   | 1 -
>  arch/powerpc/include/asm/book3s/64/tlbflush-hash.h | 2 --
>  arch/powerpc/platforms/Kconfig.cputype             | 1 +
>  arch/sparc/Kconfig                                 | 1 +
>  arch/sparc/include/asm/tlbflush_64.h               | 2 --
>  arch/x86/Kconfig                                   | 1 +
>  arch/x86/boot/compressed/misc.h                    | 1 +
>  arch/x86/boot/startup/sme.c                        | 1 +
>  arch/x86/include/asm/paravirt.h                    | 1 -
>  include/linux/pgtable.h                            | 2 +-
>  mm/Kconfig                                         | 3 +++
>  12 files changed, 10 insertions(+), 7 deletions(-)
> 
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 6663ffd23f25..e6bf5c7311b5 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -122,6 +122,7 @@ config ARM64
>  	select ARCH_WANTS_NO_INSTR
>  	select ARCH_WANTS_THP_SWAP if ARM64_4K_PAGES
>  	select ARCH_HAS_UBSAN
> +	select ARCH_HAS_LAZY_MMU_MODE

nit: This list is mostly in alphabetical order. Further up the list there are a
lot of ARCH_HAS_* entries. Perhaps move it to the correct position in that lot?
Then ARCH_HAS_UBSAN stays out of order on its own.

Otherwise, all looks reasonable to me:

Reviewed-by: Ryan Roberts <ryan.roberts@arm.com>

>  	select ARM_AMBA
>  	select ARM_ARCH_TIMER
>  	select ARM_GIC
> diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
> index 0944e296dd4a..54f8d6bb6f22 100644
> --- a/arch/arm64/include/asm/pgtable.h
> +++ b/arch/arm64/include/asm/pgtable.h
> @@ -80,7 +80,6 @@ static inline void queue_pte_barriers(void)
>  	}
>  }
>  
> -#define  __HAVE_ARCH_ENTER_LAZY_MMU_MODE
>  static inline void arch_enter_lazy_mmu_mode(void)
>  {
>  	/*
> diff --git a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
> index 7704dbe8e88d..623a8a8b2d0e 100644
> --- a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
> +++ b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
> @@ -24,8 +24,6 @@ DECLARE_PER_CPU(struct ppc64_tlb_batch, ppc64_tlb_batch);
>  
>  extern void __flush_tlb_pending(struct ppc64_tlb_batch *batch);
>  
> -#define __HAVE_ARCH_ENTER_LAZY_MMU_MODE
> -
>  static inline void arch_enter_lazy_mmu_mode(void)
>  {
>  	struct ppc64_tlb_batch *batch;
> diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype
> index 7b527d18aa5e..2942d57cf59c 100644
> --- a/arch/powerpc/platforms/Kconfig.cputype
> +++ b/arch/powerpc/platforms/Kconfig.cputype
> @@ -93,6 +93,7 @@ config PPC_BOOK3S_64
>  	select IRQ_WORK
>  	select PPC_64S_HASH_MMU if !PPC_RADIX_MMU
>  	select KASAN_VMALLOC if KASAN
> +	select ARCH_HAS_LAZY_MMU_MODE
>  
>  config PPC_BOOK3E_64
>  	bool "Embedded processors"
> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
> index a630d373e645..2bad14744ca4 100644
> --- a/arch/sparc/Kconfig
> +++ b/arch/sparc/Kconfig
> @@ -112,6 +112,7 @@ config SPARC64
>  	select NEED_PER_CPU_PAGE_FIRST_CHUNK
>  	select ARCH_SUPPORTS_SCHED_SMT if SMP
>  	select ARCH_SUPPORTS_SCHED_MC  if SMP
> +	select ARCH_HAS_LAZY_MMU_MODE
>  
>  config ARCH_PROC_KCORE_TEXT
>  	def_bool y
> diff --git a/arch/sparc/include/asm/tlbflush_64.h b/arch/sparc/include/asm/tlbflush_64.h
> index 925bb5d7a4e1..4e1036728e2f 100644
> --- a/arch/sparc/include/asm/tlbflush_64.h
> +++ b/arch/sparc/include/asm/tlbflush_64.h
> @@ -39,8 +39,6 @@ static inline void flush_tlb_range(struct vm_area_struct *vma,
>  
>  void flush_tlb_kernel_range(unsigned long start, unsigned long end);
>  
> -#define __HAVE_ARCH_ENTER_LAZY_MMU_MODE
> -
>  void flush_tlb_pending(void);
>  void arch_enter_lazy_mmu_mode(void);
>  void arch_flush_lazy_mmu_mode(void);
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index fa3b616af03a..ef4332d720ab 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -804,6 +804,7 @@ config PARAVIRT
>  config PARAVIRT_XXL
>  	bool
>  	depends on X86_64
> +	select ARCH_HAS_LAZY_MMU_MODE
>  
>  config PARAVIRT_DEBUG
>  	bool "paravirt-ops debugging"
> diff --git a/arch/x86/boot/compressed/misc.h b/arch/x86/boot/compressed/misc.h
> index db1048621ea2..cdd7f692d9ee 100644
> --- a/arch/x86/boot/compressed/misc.h
> +++ b/arch/x86/boot/compressed/misc.h
> @@ -11,6 +11,7 @@
>  #undef CONFIG_PARAVIRT
>  #undef CONFIG_PARAVIRT_XXL
>  #undef CONFIG_PARAVIRT_SPINLOCKS
> +#undef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>  #undef CONFIG_KASAN
>  #undef CONFIG_KASAN_GENERIC
>  
> diff --git a/arch/x86/boot/startup/sme.c b/arch/x86/boot/startup/sme.c
> index e7ea65f3f1d6..b76a7c95dfe1 100644
> --- a/arch/x86/boot/startup/sme.c
> +++ b/arch/x86/boot/startup/sme.c
> @@ -24,6 +24,7 @@
>  #undef CONFIG_PARAVIRT
>  #undef CONFIG_PARAVIRT_XXL
>  #undef CONFIG_PARAVIRT_SPINLOCKS
> +#undef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>  
>  /*
>   * This code runs before CPU feature bits are set. By default, the
> diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
> index b5e59a7ba0d0..13f9cd31c8f8 100644
> --- a/arch/x86/include/asm/paravirt.h
> +++ b/arch/x86/include/asm/paravirt.h
> @@ -526,7 +526,6 @@ static inline void arch_end_context_switch(struct task_struct *next)
>  	PVOP_VCALL1(cpu.end_context_switch, next);
>  }
>  
> -#define  __HAVE_ARCH_ENTER_LAZY_MMU_MODE
>  static inline void arch_enter_lazy_mmu_mode(void)
>  {
>  	PVOP_VCALL0(mmu.lazy_mode.enter);
> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
> index 32e8457ad535..9894366e768b 100644
> --- a/include/linux/pgtable.h
> +++ b/include/linux/pgtable.h
> @@ -231,7 +231,7 @@ static inline int pmd_dirty(pmd_t pmd)
>   * held, but for kernel PTE updates, no lock is held). Nesting is not permitted
>   * and the mode cannot be used in interrupt context.
>   */
> -#ifndef __HAVE_ARCH_ENTER_LAZY_MMU_MODE
> +#ifndef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>  static inline void arch_enter_lazy_mmu_mode(void) {}
>  static inline void arch_leave_lazy_mmu_mode(void) {}
>  static inline void arch_flush_lazy_mmu_mode(void) {}
> diff --git a/mm/Kconfig b/mm/Kconfig
> index 0e26f4fc8717..5480c9a1bfb2 100644
> --- a/mm/Kconfig
> +++ b/mm/Kconfig
> @@ -1372,6 +1372,9 @@ config PT_RECLAIM
>  config FIND_NORMAL_PAGE
>  	def_bool n
>  
> +config ARCH_HAS_LAZY_MMU_MODE
> +	bool
> +
>  source "mm/damon/Kconfig"
>  
>  endmenu



From xen-devel-bounces@lists.xenproject.org Fri Nov 07 14:26:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 14:26:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157608.1486318 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHNPw-0000w5-Qu; Fri, 07 Nov 2025 14:26:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157608.1486318; Fri, 07 Nov 2025 14:26:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHNPw-0000vy-NL; Fri, 07 Nov 2025 14:26:20 +0000
Received: by outflank-mailman (input) for mailman id 1157608;
 Fri, 07 Nov 2025 14: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=2Yjs=5P=arm.com=ryan.roberts@srs-se1.protection.inumbo.net>)
 id 1vHNPv-0000vs-Rn
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 14:26:19 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id b8fa2580-bbe5-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 15:26:17 +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 1FFD91515;
 Fri,  7 Nov 2025 06:26:09 -0800 (PST)
Received: from [10.57.86.134] (unknown [10.57.86.134])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id DCACE3F66E;
 Fri,  7 Nov 2025 06:26: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: b8fa2580-bbe5-11f0-9d17-b5c5bf9af7f9
Message-ID: <71418b31-aedb-4600-9558-842515dd6c44@arm.com>
Date: Fri, 7 Nov 2025 14:26:10 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 06/12] mm: introduce generic lazy_mmu helpers
Content-Language: en-GB
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-7-kevin.brodsky@arm.com>
From: Ryan Roberts <ryan.roberts@arm.com>
In-Reply-To: <20251029100909.3381140-7-kevin.brodsky@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29/10/2025 10:09, Kevin Brodsky wrote:
> The implementation of the lazy MMU mode is currently entirely
> arch-specific; core code directly calls arch helpers:
> arch_{enter,leave}_lazy_mmu_mode().
> 
> We are about to introduce support for nested lazy MMU sections.
> As things stand we'd have to duplicate that logic in every arch
> implementing lazy_mmu - adding to a fair amount of logic
> already duplicated across lazy_mmu implementations.
> 
> This patch therefore introduces a new generic layer that calls the
> existing arch_* helpers. Two pair of calls are introduced:
> 
> * lazy_mmu_mode_enable() ... lazy_mmu_mode_disable()
>     This is the standard case where the mode is enabled for a given
>     block of code by surrounding it with enable() and disable()
>     calls.
> 
> * lazy_mmu_mode_pause() ... lazy_mmu_mode_resume()
>     This is for situations where the mode is temporarily disabled
>     by first calling pause() and then resume() (e.g. to prevent any
>     batching from occurring in a critical section).
> 
> The documentation in <linux/pgtable.h> will be updated in a
> subsequent patch.
> 
> No functional change should be introduced at this stage.
> The implementation of enable()/resume() and disable()/pause() is
> currently identical, but nesting support will change that.
> 
> Most of the call sites have been updated using the following
> Coccinelle script:
> 
> @@
> @@
> {
> ...
> - arch_enter_lazy_mmu_mode();
> + lazy_mmu_mode_enable();
> ...
> - arch_leave_lazy_mmu_mode();
> + lazy_mmu_mode_disable();
> ...
> }
> 
> @@
> @@
> {
> ...
> - arch_leave_lazy_mmu_mode();
> + lazy_mmu_mode_pause();
> ...
> - arch_enter_lazy_mmu_mode();
> + lazy_mmu_mode_resume();
> ...
> }
> 
> A couple of notes regarding x86:
> 
> * Xen is currently the only case where explicit handling is required
>   for lazy MMU when context-switching. This is purely an
>   implementation detail and using the generic lazy_mmu_mode_*
>   functions would cause trouble when nesting support is introduced,
>   because the generic functions must be called from the current task.
>   For that reason we still use arch_leave() and arch_enter() there.
> 
> * x86 calls arch_flush_lazy_mmu_mode() unconditionally in a few
>   places, but only defines it if PARAVIRT_XXL is selected, and we
>   are removing the fallback in <linux/pgtable.h>. Add a new fallback
>   definition to <asm/pgtable.h> to keep things building.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
>  arch/arm64/mm/mmu.c                     |  4 ++--
>  arch/arm64/mm/pageattr.c                |  4 ++--
>  arch/powerpc/mm/book3s64/hash_tlb.c     |  8 +++----
>  arch/powerpc/mm/book3s64/subpage_prot.c |  4 ++--
>  arch/x86/include/asm/pgtable.h          |  3 ++-
>  fs/proc/task_mmu.c                      |  4 ++--
>  include/linux/pgtable.h                 | 29 +++++++++++++++++++++----
>  mm/kasan/shadow.c                       |  8 +++----
>  mm/madvise.c                            | 18 +++++++--------
>  mm/memory.c                             | 16 +++++++-------
>  mm/migrate_device.c                     |  4 ++--
>  mm/mprotect.c                           |  4 ++--
>  mm/mremap.c                             |  4 ++--
>  mm/userfaultfd.c                        |  4 ++--
>  mm/vmalloc.c                            | 12 +++++-----
>  mm/vmscan.c                             | 12 +++++-----
>  16 files changed, 80 insertions(+), 58 deletions(-)
> 
> diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
> index b8d37eb037fc..d9c8e94f140f 100644
> --- a/arch/arm64/mm/mmu.c
> +++ b/arch/arm64/mm/mmu.c
> @@ -731,7 +731,7 @@ int split_kernel_leaf_mapping(unsigned long start, unsigned long end)
>  		return -EINVAL;
>  
>  	mutex_lock(&pgtable_split_lock);
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	/*
>  	 * The split_kernel_leaf_mapping_locked() may sleep, it is not a

This is a bit unfortunate, IMHO. The rest of this comment explains that although
you're not supposed to sleep inside lazy mmu mode, it's fine for arm64's
implementation. But we are no longer calling arm64's implementation; we are
calling a generic function, which does who knows what.

I think it all still works, but we are no longer containing our assumptions in
arm64 code. We are relying on implementation details of generic code.

> @@ -753,7 +753,7 @@ int split_kernel_leaf_mapping(unsigned long start, unsigned long end)
>  			ret = split_kernel_leaf_mapping_locked(end);
>  	}
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	mutex_unlock(&pgtable_split_lock);
>  	return ret;
>  }
> diff --git a/arch/arm64/mm/pageattr.c b/arch/arm64/mm/pageattr.c
> index 5135f2d66958..e4059f13c4ed 100644
> --- a/arch/arm64/mm/pageattr.c
> +++ b/arch/arm64/mm/pageattr.c
> @@ -110,7 +110,7 @@ static int update_range_prot(unsigned long start, unsigned long size,
>  	if (WARN_ON_ONCE(ret))
>  		return ret;
>  
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	/*
>  	 * The caller must ensure that the range we are operating on does not
> @@ -119,7 +119,7 @@ static int update_range_prot(unsigned long start, unsigned long size,
>  	 */
>  	ret = walk_kernel_page_table_range_lockless(start, start + size,
>  						    &pageattr_ops, NULL, &data);
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  
>  	return ret;
>  }
> diff --git a/arch/powerpc/mm/book3s64/hash_tlb.c b/arch/powerpc/mm/book3s64/hash_tlb.c
> index 21fcad97ae80..787f7a0e27f0 100644
> --- a/arch/powerpc/mm/book3s64/hash_tlb.c
> +++ b/arch/powerpc/mm/book3s64/hash_tlb.c
> @@ -205,7 +205,7 @@ void __flush_hash_table_range(unsigned long start, unsigned long end)
>  	 * way to do things but is fine for our needs here.
>  	 */
>  	local_irq_save(flags);
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  	for (; start < end; start += PAGE_SIZE) {
>  		pte_t *ptep = find_init_mm_pte(start, &hugepage_shift);
>  		unsigned long pte;
> @@ -217,7 +217,7 @@ void __flush_hash_table_range(unsigned long start, unsigned long end)
>  			continue;
>  		hpte_need_flush(&init_mm, start, ptep, pte, hugepage_shift);
>  	}
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	local_irq_restore(flags);
>  }
>  
> @@ -237,7 +237,7 @@ void flush_hash_table_pmd_range(struct mm_struct *mm, pmd_t *pmd, unsigned long
>  	 * way to do things but is fine for our needs here.
>  	 */
>  	local_irq_save(flags);
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  	start_pte = pte_offset_map(pmd, addr);
>  	if (!start_pte)
>  		goto out;
> @@ -249,6 +249,6 @@ void flush_hash_table_pmd_range(struct mm_struct *mm, pmd_t *pmd, unsigned long
>  	}
>  	pte_unmap(start_pte);
>  out:
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	local_irq_restore(flags);
>  }
> diff --git a/arch/powerpc/mm/book3s64/subpage_prot.c b/arch/powerpc/mm/book3s64/subpage_prot.c
> index ec98e526167e..07c47673bba2 100644
> --- a/arch/powerpc/mm/book3s64/subpage_prot.c
> +++ b/arch/powerpc/mm/book3s64/subpage_prot.c
> @@ -73,13 +73,13 @@ static void hpte_flush_range(struct mm_struct *mm, unsigned long addr,
>  	pte = pte_offset_map_lock(mm, pmd, addr, &ptl);
>  	if (!pte)
>  		return;
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  	for (; npages > 0; --npages) {
>  		pte_update(mm, addr, pte, 0, 0, 0);
>  		addr += PAGE_SIZE;
>  		++pte;
>  	}
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	pte_unmap_unlock(pte - 1, ptl);
>  }
>  
> diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
> index e33df3da6980..14fd672bc9b2 100644
> --- a/arch/x86/include/asm/pgtable.h
> +++ b/arch/x86/include/asm/pgtable.h
> @@ -117,7 +117,8 @@ extern pmdval_t early_pmd_flags;
>  #define pte_val(x)	native_pte_val(x)
>  #define __pte(x)	native_make_pte(x)
>  
> -#define arch_end_context_switch(prev)	do {} while(0)
> +#define arch_end_context_switch(prev)	do {} while (0)
> +#define arch_flush_lazy_mmu_mode()	do {} while (0)

Andrew converted over the default version of this (which you have removed with
this commit) to be static inline instead of the do/while guff. Perhaps you
should try to preserve that improvement here?

See Commit d02ac836e4d6 ("include/linux/pgtable.h: convert
arch_enter_lazy_mmu_mode() and friends to static inlines")

>  #endif	/* CONFIG_PARAVIRT_XXL */
>  
>  static inline pmd_t pmd_set_flags(pmd_t pmd, pmdval_t set)
> diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
> index fc35a0543f01..d16ba1d32169 100644
> --- a/fs/proc/task_mmu.c
> +++ b/fs/proc/task_mmu.c
> @@ -2703,7 +2703,7 @@ static int pagemap_scan_pmd_entry(pmd_t *pmd, unsigned long start,
>  		return 0;
>  	}
>  
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	if ((p->arg.flags & PM_SCAN_WP_MATCHING) && !p->vec_out) {
>  		/* Fast path for performing exclusive WP */
> @@ -2773,7 +2773,7 @@ static int pagemap_scan_pmd_entry(pmd_t *pmd, unsigned long start,
>  	if (flush_end)
>  		flush_tlb_range(vma, start, addr);
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	pte_unmap_unlock(start_pte, ptl);
>  
>  	cond_resched();
> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
> index 9894366e768b..b5fdf32c437f 100644
> --- a/include/linux/pgtable.h
> +++ b/include/linux/pgtable.h
> @@ -231,10 +231,31 @@ static inline int pmd_dirty(pmd_t pmd)
>   * held, but for kernel PTE updates, no lock is held). Nesting is not permitted
>   * and the mode cannot be used in interrupt context.
>   */
> -#ifndef CONFIG_ARCH_HAS_LAZY_MMU_MODE
> -static inline void arch_enter_lazy_mmu_mode(void) {}
> -static inline void arch_leave_lazy_mmu_mode(void) {}
> -static inline void arch_flush_lazy_mmu_mode(void) {}
> +#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
> +static inline void lazy_mmu_mode_enable(void)
> +{
> +	arch_enter_lazy_mmu_mode();
> +}
> +
> +static inline void lazy_mmu_mode_disable(void)
> +{
> +	arch_leave_lazy_mmu_mode();
> +}
> +
> +static inline void lazy_mmu_mode_pause(void)
> +{
> +	arch_leave_lazy_mmu_mode();
> +}
> +
> +static inline void lazy_mmu_mode_resume(void)
> +{
> +	arch_enter_lazy_mmu_mode();
> +}

It would be good to add documentation blocks for each of these.

> +#else
> +static inline void lazy_mmu_mode_enable(void) {}
> +static inline void lazy_mmu_mode_disable(void) {}
> +static inline void lazy_mmu_mode_pause(void) {}
> +static inline void lazy_mmu_mode_resume(void) {}
>  #endif
>  
>  #ifndef pte_batch_hint
> diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
> index 5d2a876035d6..c49b029d3593 100644
> --- a/mm/kasan/shadow.c
> +++ b/mm/kasan/shadow.c
> @@ -305,7 +305,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep, unsigned long addr,
>  	pte_t pte;
>  	int index;
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_pause();

I wonder if there really are use cases that *require* pause/resume? I think
these kasan cases could be correctly implemented using a new nest level instead?
Are there cases where the effects really need to be immediate or do the effects
just need to be visible when you get to where the resume is?

If the latter, that could just be turned into a nested disable (e.g. a flush).
In this case, there is only 1 PTE write so no benefit, but I wonder if other
cases may have more PTE writes that could then still be batched. It would be
nice to simplify the API by removing pause/resume if we can?

Thanks,
Ryan

>  
>  	index = PFN_DOWN(addr - data->start);
>  	page = data->pages[index];
> @@ -319,7 +319,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep, unsigned long addr,
>  	}
>  	spin_unlock(&init_mm.page_table_lock);
>  
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_resume();
>  
>  	return 0;
>  }
> @@ -482,7 +482,7 @@ static int kasan_depopulate_vmalloc_pte(pte_t *ptep, unsigned long addr,
>  	pte_t pte;
>  	int none;
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_pause();
>  
>  	spin_lock(&init_mm.page_table_lock);
>  	pte = ptep_get(ptep);
> @@ -494,7 +494,7 @@ static int kasan_depopulate_vmalloc_pte(pte_t *ptep, unsigned long addr,
>  	if (likely(!none))
>  		__free_page(pfn_to_page(pte_pfn(pte)));
>  
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_resume();
>  
>  	return 0;
>  }
> diff --git a/mm/madvise.c b/mm/madvise.c
> index fb1c86e630b6..536026772160 100644
> --- a/mm/madvise.c
> +++ b/mm/madvise.c
> @@ -455,7 +455,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
>  	if (!start_pte)
>  		return 0;
>  	flush_tlb_batched_pending(mm);
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  	for (; addr < end; pte += nr, addr += nr * PAGE_SIZE) {
>  		nr = 1;
>  		ptent = ptep_get(pte);
> @@ -463,7 +463,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
>  		if (++batch_count == SWAP_CLUSTER_MAX) {
>  			batch_count = 0;
>  			if (need_resched()) {
> -				arch_leave_lazy_mmu_mode();
> +				lazy_mmu_mode_disable();
>  				pte_unmap_unlock(start_pte, ptl);
>  				cond_resched();
>  				goto restart;
> @@ -499,7 +499,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
>  				if (!folio_trylock(folio))
>  					continue;
>  				folio_get(folio);
> -				arch_leave_lazy_mmu_mode();
> +				lazy_mmu_mode_disable();
>  				pte_unmap_unlock(start_pte, ptl);
>  				start_pte = NULL;
>  				err = split_folio(folio);
> @@ -510,7 +510,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
>  				if (!start_pte)
>  					break;
>  				flush_tlb_batched_pending(mm);
> -				arch_enter_lazy_mmu_mode();
> +				lazy_mmu_mode_enable();
>  				if (!err)
>  					nr = 0;
>  				continue;
> @@ -558,7 +558,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
>  	}
>  
>  	if (start_pte) {
> -		arch_leave_lazy_mmu_mode();
> +		lazy_mmu_mode_disable();
>  		pte_unmap_unlock(start_pte, ptl);
>  	}
>  	if (pageout)
> @@ -677,7 +677,7 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr,
>  	if (!start_pte)
>  		return 0;
>  	flush_tlb_batched_pending(mm);
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  	for (; addr != end; pte += nr, addr += PAGE_SIZE * nr) {
>  		nr = 1;
>  		ptent = ptep_get(pte);
> @@ -727,7 +727,7 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr,
>  				if (!folio_trylock(folio))
>  					continue;
>  				folio_get(folio);
> -				arch_leave_lazy_mmu_mode();
> +				lazy_mmu_mode_disable();
>  				pte_unmap_unlock(start_pte, ptl);
>  				start_pte = NULL;
>  				err = split_folio(folio);
> @@ -738,7 +738,7 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr,
>  				if (!start_pte)
>  					break;
>  				flush_tlb_batched_pending(mm);
> -				arch_enter_lazy_mmu_mode();
> +				lazy_mmu_mode_enable();
>  				if (!err)
>  					nr = 0;
>  				continue;
> @@ -778,7 +778,7 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr,
>  	if (nr_swap)
>  		add_mm_counter(mm, MM_SWAPENTS, nr_swap);
>  	if (start_pte) {
> -		arch_leave_lazy_mmu_mode();
> +		lazy_mmu_mode_disable();
>  		pte_unmap_unlock(start_pte, ptl);
>  	}
>  	cond_resched();
> diff --git a/mm/memory.c b/mm/memory.c
> index 74b45e258323..2d662dee5ae7 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -1254,7 +1254,7 @@ copy_pte_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma,
>  	spin_lock_nested(src_ptl, SINGLE_DEPTH_NESTING);
>  	orig_src_pte = src_pte;
>  	orig_dst_pte = dst_pte;
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	do {
>  		nr = 1;
> @@ -1323,7 +1323,7 @@ copy_pte_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma,
>  	} while (dst_pte += nr, src_pte += nr, addr += PAGE_SIZE * nr,
>  		 addr != end);
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	pte_unmap_unlock(orig_src_pte, src_ptl);
>  	add_mm_rss_vec(dst_mm, rss);
>  	pte_unmap_unlock(orig_dst_pte, dst_ptl);
> @@ -1842,7 +1842,7 @@ static unsigned long zap_pte_range(struct mmu_gather *tlb,
>  		return addr;
>  
>  	flush_tlb_batched_pending(mm);
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  	do {
>  		bool any_skipped = false;
>  
> @@ -1874,7 +1874,7 @@ static unsigned long zap_pte_range(struct mmu_gather *tlb,
>  		direct_reclaim = try_get_and_clear_pmd(mm, pmd, &pmdval);
>  
>  	add_mm_rss_vec(mm, rss);
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  
>  	/* Do the actual TLB flush before dropping ptl */
>  	if (force_flush) {
> @@ -2817,7 +2817,7 @@ static int remap_pte_range(struct mm_struct *mm, pmd_t *pmd,
>  	mapped_pte = pte = pte_alloc_map_lock(mm, pmd, addr, &ptl);
>  	if (!pte)
>  		return -ENOMEM;
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  	do {
>  		BUG_ON(!pte_none(ptep_get(pte)));
>  		if (!pfn_modify_allowed(pfn, prot)) {
> @@ -2827,7 +2827,7 @@ static int remap_pte_range(struct mm_struct *mm, pmd_t *pmd,
>  		set_pte_at(mm, addr, pte, pte_mkspecial(pfn_pte(pfn, prot)));
>  		pfn++;
>  	} while (pte++, addr += PAGE_SIZE, addr != end);
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	pte_unmap_unlock(mapped_pte, ptl);
>  	return err;
>  }
> @@ -3134,7 +3134,7 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
>  			return -EINVAL;
>  	}
>  
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	if (fn) {
>  		do {
> @@ -3147,7 +3147,7 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
>  	}
>  	*mask |= PGTBL_PTE_MODIFIED;
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  
>  	if (mm != &init_mm)
>  		pte_unmap_unlock(mapped_pte, ptl);
> diff --git a/mm/migrate_device.c b/mm/migrate_device.c
> index abd9f6850db6..dcdc46b96cc7 100644
> --- a/mm/migrate_device.c
> +++ b/mm/migrate_device.c
> @@ -110,7 +110,7 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
>  	ptep = pte_offset_map_lock(mm, pmdp, addr, &ptl);
>  	if (!ptep)
>  		goto again;
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	for (; addr < end; addr += PAGE_SIZE, ptep++) {
>  		struct dev_pagemap *pgmap;
> @@ -287,7 +287,7 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
>  	if (unmapped)
>  		flush_tlb_range(walk->vma, start, end);
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	pte_unmap_unlock(ptep - 1, ptl);
>  
>  	return 0;
> diff --git a/mm/mprotect.c b/mm/mprotect.c
> index 113b48985834..bcb183a6fd2f 100644
> --- a/mm/mprotect.c
> +++ b/mm/mprotect.c
> @@ -293,7 +293,7 @@ static long change_pte_range(struct mmu_gather *tlb,
>  		target_node = numa_node_id();
>  
>  	flush_tlb_batched_pending(vma->vm_mm);
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  	do {
>  		nr_ptes = 1;
>  		oldpte = ptep_get(pte);
> @@ -439,7 +439,7 @@ static long change_pte_range(struct mmu_gather *tlb,
>  			}
>  		}
>  	} while (pte += nr_ptes, addr += nr_ptes * PAGE_SIZE, addr != end);
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	pte_unmap_unlock(pte - 1, ptl);
>  
>  	return pages;
> diff --git a/mm/mremap.c b/mm/mremap.c
> index bd7314898ec5..a2e2cd8f279a 100644
> --- a/mm/mremap.c
> +++ b/mm/mremap.c
> @@ -256,7 +256,7 @@ static int move_ptes(struct pagetable_move_control *pmc,
>  	if (new_ptl != old_ptl)
>  		spin_lock_nested(new_ptl, SINGLE_DEPTH_NESTING);
>  	flush_tlb_batched_pending(vma->vm_mm);
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	for (; old_addr < old_end; old_ptep += nr_ptes, old_addr += nr_ptes * PAGE_SIZE,
>  		new_ptep += nr_ptes, new_addr += nr_ptes * PAGE_SIZE) {
> @@ -301,7 +301,7 @@ static int move_ptes(struct pagetable_move_control *pmc,
>  		}
>  	}
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	if (force_flush)
>  		flush_tlb_range(vma, old_end - len, old_end);
>  	if (new_ptl != old_ptl)
> diff --git a/mm/userfaultfd.c b/mm/userfaultfd.c
> index af61b95c89e4..e01f7813e15c 100644
> --- a/mm/userfaultfd.c
> +++ b/mm/userfaultfd.c
> @@ -1100,7 +1100,7 @@ static long move_present_ptes(struct mm_struct *mm,
>  	/* It's safe to drop the reference now as the page-table is holding one. */
>  	folio_put(*first_src_folio);
>  	*first_src_folio = NULL;
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	while (true) {
>  		orig_src_pte = ptep_get_and_clear(mm, src_addr, src_pte);
> @@ -1138,7 +1138,7 @@ static long move_present_ptes(struct mm_struct *mm,
>  			break;
>  	}
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	if (src_addr > src_start)
>  		flush_tlb_range(src_vma, src_start, src_addr);
>  
> diff --git a/mm/vmalloc.c b/mm/vmalloc.c
> index 798b2ed21e46..b9940590a40d 100644
> --- a/mm/vmalloc.c
> +++ b/mm/vmalloc.c
> @@ -105,7 +105,7 @@ static int vmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
>  	if (!pte)
>  		return -ENOMEM;
>  
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	do {
>  		if (unlikely(!pte_none(ptep_get(pte)))) {
> @@ -131,7 +131,7 @@ static int vmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
>  		pfn++;
>  	} while (pte += PFN_DOWN(size), addr += size, addr != end);
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	*mask |= PGTBL_PTE_MODIFIED;
>  	return 0;
>  }
> @@ -359,7 +359,7 @@ static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
>  	unsigned long size = PAGE_SIZE;
>  
>  	pte = pte_offset_kernel(pmd, addr);
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	do {
>  #ifdef CONFIG_HUGETLB_PAGE
> @@ -378,7 +378,7 @@ static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
>  		WARN_ON(!pte_none(ptent) && !pte_present(ptent));
>  	} while (pte += (size >> PAGE_SHIFT), addr += size, addr != end);
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	*mask |= PGTBL_PTE_MODIFIED;
>  }
>  
> @@ -526,7 +526,7 @@ static int vmap_pages_pte_range(pmd_t *pmd, unsigned long addr,
>  	if (!pte)
>  		return -ENOMEM;
>  
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	do {
>  		struct page *page = pages[*nr];
> @@ -548,7 +548,7 @@ static int vmap_pages_pte_range(pmd_t *pmd, unsigned long addr,
>  		(*nr)++;
>  	} while (pte++, addr += PAGE_SIZE, addr != end);
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	*mask |= PGTBL_PTE_MODIFIED;
>  
>  	return err;
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index b2fc8b626d3d..7d2d87069530 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -3551,7 +3551,7 @@ static bool walk_pte_range(pmd_t *pmd, unsigned long start, unsigned long end,
>  		return false;
>  	}
>  
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  restart:
>  	for (i = pte_index(start), addr = start; addr != end; i++, addr += PAGE_SIZE) {
>  		unsigned long pfn;
> @@ -3592,7 +3592,7 @@ static bool walk_pte_range(pmd_t *pmd, unsigned long start, unsigned long end,
>  	if (i < PTRS_PER_PTE && get_next_vma(PMD_MASK, PAGE_SIZE, args, &start, &end))
>  		goto restart;
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	pte_unmap_unlock(pte, ptl);
>  
>  	return suitable_to_scan(total, young);
> @@ -3633,7 +3633,7 @@ static void walk_pmd_range_locked(pud_t *pud, unsigned long addr, struct vm_area
>  	if (!spin_trylock(ptl))
>  		goto done;
>  
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	do {
>  		unsigned long pfn;
> @@ -3680,7 +3680,7 @@ static void walk_pmd_range_locked(pud_t *pud, unsigned long addr, struct vm_area
>  
>  	walk_update_folio(walk, last, gen, dirty);
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  	spin_unlock(ptl);
>  done:
>  	*first = -1;
> @@ -4279,7 +4279,7 @@ bool lru_gen_look_around(struct page_vma_mapped_walk *pvmw)
>  		}
>  	}
>  
> -	arch_enter_lazy_mmu_mode();
> +	lazy_mmu_mode_enable();
>  
>  	pte -= (addr - start) / PAGE_SIZE;
>  
> @@ -4313,7 +4313,7 @@ bool lru_gen_look_around(struct page_vma_mapped_walk *pvmw)
>  
>  	walk_update_folio(walk, last, gen, dirty);
>  
> -	arch_leave_lazy_mmu_mode();
> +	lazy_mmu_mode_disable();
>  
>  	/* feedback from rmap walkers to page table walkers */
>  	if (mm_state && suitable_to_scan(i, young))



From xen-devel-bounces@lists.xenproject.org Fri Nov 07 14:30:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 14:30:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157620.1486328 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHNUB-0002SI-9Z; Fri, 07 Nov 2025 14:30:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157620.1486328; Fri, 07 Nov 2025 14:30:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHNUB-0002SB-6Z; Fri, 07 Nov 2025 14:30:43 +0000
Received: by outflank-mailman (input) for mailman id 1157620;
 Fri, 07 Nov 2025 14:30:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=QcrT=5P=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vHNUA-0002S5-CF
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 14:30:42 +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 56031c08-bbe6-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 15:30:41 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-640f4b6836bso1500909a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 07 Nov 2025 06:30: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
 4fb4d7f45d1cf-6411f813e9fsm4151780a12.16.2025.11.07.06.30.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 07 Nov 2025 06:30: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: 56031c08-bbe6-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762525840; x=1763130640; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4FVQV1oONub5DxPN3iSH+bM2J/Px2UqDvAT6dpx8sl8=;
        b=fmJidqWsAmc1GirMcaJGDeXEF+F5PahGaOny1BKVSXc2xXwieJVk/UIsMOoHwvVUHj
         ZbkLP6zv4N3pXVo38s9HF9xYNcwejJ16SOayIkVDIlTeh2oo1lUjwo446rO2rDGbgfkM
         Y23LhgN7Geu3HXOOzpiLP0+AhyCE8OBN0yKB/utkFj2vOK9u9Hr0IFnjFdNELJKIUswL
         gYMCsf52/+0iDWU3sw9loJVAT2Iz4GQvziaocSEQoFwasnXzRm4X4cuFjw5stet19ijY
         jW6fZyJQAfdtPe6G9t3r9hp/8zi1eZ+iIy0TujhXJqFkUshdymx3QnbG8j7lc8ujz6rc
         KQ3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762525840; x=1763130640;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4FVQV1oONub5DxPN3iSH+bM2J/Px2UqDvAT6dpx8sl8=;
        b=HLEMX/oX1B+GFjC1Ct2sy3+ggLzJDnxDxphDBmX9qCUQjO4yGAZxuWtfGogRmT9wFU
         9SSdyaa4lkzQRvgjSZyQ35XYBKKRiT95cD91hpt3OGTJT2fCT1wmXcyffnPuFavaM2QC
         klXffIDtBrci6t+OfevzHOREXgEsVTEOq4tbzfzV6SFo6PJayAMG+TETYf0aiyLjZ+Xh
         uwhOWE7ILEFF5mMoYwFcZUa9o8iTLj9wWlMXjR3P9efuabhLd2nwH+aSaV2cQB6Z3KtU
         40p0Al1kqNfLaMOsK2QK3oboCGsdej7BRaPoIrXqjlkQj5V4yuUIo0OvnkTzB6Em02Zt
         mTdA==
X-Forwarded-Encrypted: i=1; AJvYcCV5hy8DjeJLTh9avnGiQJvGGv1WyeZSxi1xDfM5/0JyBKBw8Ylqg9hRS54wQjNfUoKZnYamS4nnrzA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzMN5pVFiDXZ8AlXgGpedC+yEu5BVVuOUMefc7mdGeKtARFZF/L
	dlUio5noAjkt6cipeuYpVrExRq0R2BrGEgXQJsalQxTLJbc++c68XZl0pePxRLuFFw==
X-Gm-Gg: ASbGnct3wsYowYbhkpvkyzA7U5pTPpyLvVdrepeHdKWRLIAZCwQzJ0aaV68p8n/NGig
	P0LiN3IeNHPwy1bWysi07H71exNxmGAOfLvNXF2UOIUys2YCQx5JyvKXmUbbGspJU4pZgl8NIzl
	34lPXh9NFgVwFyMFGmxzJz70rM9+sKvK8RjmZ+X+R1IkWf5pMW8p7Xz4GteMKswBHdEK/qn5ffL
	1HRKBDtdDt7EwQQiEDscIZ0QENNQSZ5f0oCU7SRPyjPoM7yu2jxJl8S643LuruLWqg0zxppkG8i
	yL10SmBLjHl9bkOsoV/ma+wtHBZKBk5cSvh1Q8AtR+LjKhpri7zaukVHrqxmSOQbB4wJo2aSVZz
	jDr5FJ1V5QhOUFY1zgvo9csmC3M0i46RpRoBA8i8WPo3Om4PupIR+PVuHU/qX0sfdC0Lun3uBHC
	O5c9GRLpfC9xRh4dyWpuBMesdcm5flRzBzT606RWB5d/W245ugqnmtAr8+Yu7fwpYiRYAIb7A=
X-Google-Smtp-Source: AGHT+IETCgIAPtMw1o8npRrsfKYqq1R7Ka74mVls+7NkpH/lRLGTAb9J0FWyCtW4Fkg8YOvtb5n8bw==
X-Received: by 2002:a05:6402:3487:b0:640:bb20:41be with SMTP id 4fb4d7f45d1cf-6413f072444mr3300891a12.5.1762525840238;
        Fri, 07 Nov 2025 06:30:40 -0800 (PST)
Message-ID: <52dcf4d1-69b7-437d-a01a-eec33f4535dd@suse.com>
Date: Fri, 7 Nov 2025 15:30:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/ucode: Add extra rows to the entrysign model table
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>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20251107134729.20735-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: <20251107134729.20735-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.11.2025 14:47, Andrew Cooper wrote:
> Link: https://git.kernel.org/tip/d23550efc6800841b4d1639784afaebdea946ae0
> Fixes: ff8228ab4658 ("x86/ucode: Relax digest check when Entrysign is fixed in firmware")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

Pretty likely wants to go into 4.21? Cc-ing Oleksii, for him to judge.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 14:34:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 14:34:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157636.1486338 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHNYB-00035q-0m; Fri, 07 Nov 2025 14:34:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157636.1486338; Fri, 07 Nov 2025 14:34:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHNYA-00035j-TH; Fri, 07 Nov 2025 14:34:50 +0000
Received: by outflank-mailman (input) for mailman id 1157636;
 Fri, 07 Nov 2025 14:34: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=NFVh=5P=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vHNY9-00035d-8w
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 14:34:49 +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 e82635be-bbe6-11f0-980a-7dc792cee155;
 Fri, 07 Nov 2025 15:34:47 +0100 (CET)
Received: from DM4PR03MB7015.namprd03.prod.outlook.com (2603:10b6:8:42::8) by
 SA1PR03MB6563.namprd03.prod.outlook.com (2603:10b6:806:1cd::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.13; Fri, 7 Nov
 2025 14:34:43 +0000
Received: from DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9]) by DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9%3]) with mapi id 15.20.9298.012; Fri, 7 Nov 2025
 14:34: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: e82635be-bbe6-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ka88NjU0Wy7rbRRCA8YgYWtwoi9uhqS1XcTSoUB3idxsKsMve1rGeifhCm1JzrlJ7/f1NaBjJPqbM6BBfW1HxuDEF3R8OfIFsn/PifToP+X8n/WsN6NK/gvRIoRe0w0OFwQZ4Ee5GE5QM1X005hgJCghf00BIn9byjkF1xKDYNOynSMHCBDLA/CtaA5awcLFdKp5uc3D8mpL9LvYKRISRXrflyU5q4iiT9rK3HmZ6zxRcJLsLhxsj9ukp/ar7J2ulEtJjyhyIDNoQrKPqR/HSqzSSTnpV0z2hqOPw/DA1ZfhVgHs8nAmh7SA97DYlhooJ3FQqmf9l6rYWrQtsQRJqw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0X/b4sBX/lJbaTbDMvNc/341/5PkSl63GWQpYYsCeLo=;
 b=ySBBDp+CX5wj+Zcvl/6+aqSIM9W33+wd8+Dyn4Tjjehz/fZhp8r+7cYa7ITNNlCbK+NY90gzubsspdjyK/wZFL887qIIVFpeyl9n6fth6OWl18Zs3zAqjcc1dIiB6+zkzv/8+aqsHnay15htM/sOd5DNeTB0PwphcZFWNi3rTrDhdUrCg5KR3H7RheFfpA3wi6ma4Q1Jo2gFIhZeM60NfMHlypMYCAuAiMTskMmMF0XwUqgNoQOrTeoQPQ4OW7Nf2W1YjfCqJH2o4NEpH74mXpimaOEzvbG5Sv2vDNw9dMXVr/5Z0ONf+GPSwgLGXv3sUt0qBWXuz/392obH/QNtoA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0X/b4sBX/lJbaTbDMvNc/341/5PkSl63GWQpYYsCeLo=;
 b=j91/+h/LpnM2/K2VuUpr7PTu65zbyIYdxC02/0kwDUZt4pCc72mLG9G17sq5bEcfFQ0sBGwqC9U78Mqvcsmjt0CApUoCUDN3p+cyGow+u1HQpMJI9yaBu0fQeJsflvuiAZCtvvpxXRj9pC7tOnn+GJmEaIeVqme6kbwmwLSJOt4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <36cdbd68-3285-4c96-b25e-9a0474a9a2ab@citrix.com>
Date: Fri, 7 Nov 2025 14:34:39 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/ucode: Add extra rows to the entrysign model table
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20251107134729.20735-1-andrew.cooper3@citrix.com>
 <52dcf4d1-69b7-437d-a01a-eec33f4535dd@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <52dcf4d1-69b7-437d-a01a-eec33f4535dd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0174.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:312::19) To DM4PR03MB7015.namprd03.prod.outlook.com
 (2603:10b6:8:42::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR03MB7015:EE_|SA1PR03MB6563:EE_
X-MS-Office365-Filtering-Correlation-Id: 99fbe3c2-ceb6-4604-71e0-08de1e0aca8f
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?OE5YOHJ4NXU4WkJGa0RycUcrbTVIY0Rob2ZFeGdISlEwQ3JGVlh1OFVCU3ZX?=
 =?utf-8?B?dXQ3WVAzdHY0MVppNTEzY1dYNThEUlRnWlAyOEd6UzlGSnA0Y0J0WW4rWU9V?=
 =?utf-8?B?aTYxejE5ZVJwTXNEWEtYOE95MVBCU1Z5Z3J6WFppVk4wSEJrc2tpYVA1bGM4?=
 =?utf-8?B?OVRPeXU5eVExR3lQYnFLRENTU3lDTUtFenRrUU5uUTAwOVVLNUsxcjBVeHc2?=
 =?utf-8?B?TmJkTDJFL3AyTS9oVHRMVUhqUVJ4SVRETnY3RmFWU0V0ZmtGckw3NnNmSXdY?=
 =?utf-8?B?WnE3czlpd2xwa2dHM0JhY0REODJMK2JuVVBjWStPc1VFeEMvd3ZZTDkxaXE3?=
 =?utf-8?B?UDU0aDFVWGhRNkNZQ1lDWGhFbmFxZUk3am9TYTBDcGhvd3hXLzRLRk1xYS9z?=
 =?utf-8?B?VmJXRFNqQ0tDSFVTVFJYQXJ5U0YzUHQ3dk51MXdDZjU0YnprTVJ4SWlQMU54?=
 =?utf-8?B?cmhkdHhJUk9pZUNxU2dTVGk0NXI3UFFPOEREOXQ3Q1BxN0V5M3RYeldrWlZo?=
 =?utf-8?B?ZXNXTEQ4dEpLaGw4NTlQRHQ3ZnUreDlYdnJ3bCsxSDhEU0VzOWVqMFVMVCsv?=
 =?utf-8?B?ZVBmbVVqYVFpem1zeWVwbHR0TG1xamxuNlNCQU9Ocm9xVHdaRUFyN0dkOXl3?=
 =?utf-8?B?VURUVHB5aElRTHlPYkRDWkZOTjVFZ3ZsM281a3U0c1RiS05QZjZnN3Z1ckU5?=
 =?utf-8?B?dTVzNHJTR0gzU1BaN3RIbDU0azVibnU3YjZQeUNrSmhRaGJyYUpSNEFsV2tj?=
 =?utf-8?B?MW9YVGJHYW53SkRGY1dNQ3dOWFh0TXJzQjRpSStESllKVUFNZlhvWm9TNXZU?=
 =?utf-8?B?WXJnQnNIN2VwTjQ4Wk5EZ3NaWXdXdXhVcnQ3cUNQU25MMytNVW5McUZHdzNX?=
 =?utf-8?B?dGRITXhHdlpJUGlVZU1Wck9oYkcyWHNPSFVKckY4Z2NyeGh0c3R6bWtjTjJS?=
 =?utf-8?B?b3NRcFNvMTlQSmVMY3hCV0cxUW9OMmtTeG5CeWo2RUtSR1YyUFRCNVJnRmdV?=
 =?utf-8?B?TE1ZMjR5ekdJVElmakZVTWMyMDNCdkFYU0htVFl0MDdwV1RuaTUrOFhUbzRz?=
 =?utf-8?B?Nk1kQ05PeVJPMDRhMGFZN1paS3N2aHlET1hOOVZuYlZRSS9rQS85NjZxZkt0?=
 =?utf-8?B?NUJnQlErNjAyTWtSL1ZkS3J6Sk9Uay8wclpKZjV2N3A2Z3FBa2dUN1BGSTRW?=
 =?utf-8?B?M2p3TCtzNFVnR0EwYUtMK1hZOU15cjhoVWZXYngrQWZRWDYrbHhEcnpRS0F0?=
 =?utf-8?B?b0FwTnBqQmVsdVRieXBZT2xULytSdGsyUUUxTS8vQ0FjbTR6clkvUFdyeTVL?=
 =?utf-8?B?dTFaZVpvVGNObG9HWmtsTGo2Vk14OEJKTXlzRmRkWDVLREhWVXNYWDVwNjA2?=
 =?utf-8?B?VGc1anRGL3lHL2F5RkxlK2tkSlBtTGkxUVowS3ZrbkdxL0RMd2piV3RQMXF5?=
 =?utf-8?B?YktNMUdRYVl5QkF5c25RVmpIempZSTZRcWZ5VVZZakFDbWZyZUF2c0tKQ3pF?=
 =?utf-8?B?NEJ5cHJQRnhaSGEwM3B0QXN1WUpDMVdGYkk4NUtXRUp0TUFIWEFaWXJpenZs?=
 =?utf-8?B?elNudzlCODJ2NEpic2VqKytTSFIyTG83c044VnErWEFZRytTN3I2OUZQeXQ2?=
 =?utf-8?B?U0xwaTdFWmhKVm0rYU94VTI1azhSZk1lSGRZTExwTHlyZmRWM3NiNE13Z2VY?=
 =?utf-8?B?SWZSZ05XV1lsZjROcm15NjdPRE92RGxsWkREQ0tVbTFVN2RGdW9OUHZDZ1JV?=
 =?utf-8?B?QkJpSDBrVFE1MUJKZzBZT2JyQlJleDU2WkU0TGIvTU1ZNCs3bm45eEE0dDZU?=
 =?utf-8?B?YURrQ05zNSttQ21DVnJ0QjVhcUVxeUhVdWtwWHgyZ24zWDVGaTdKMVhkQmxr?=
 =?utf-8?B?alFFSFEzbU5XZ0dDZFVFTjNweXkwMktuSTRjQWU1dmNZMUY2VjFjVFRrYSt2?=
 =?utf-8?B?aGJ5VFRhS0lWeHZqREoyMmZTdmE2L1lLbGRqZFIzb05uaU5tN09UNEc0aDNh?=
 =?utf-8?B?NjZlNzN1OXJRPT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR03MB7015.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?TnNiMGxTbnVDSmQyM0RYaEE2eTBRVDltK2dDMy9KTngrd1hKcEVpdHRXc1pF?=
 =?utf-8?B?NFp1dlFRMnVacGxlZE9xT285eGpzL2FHMmhscEVPTkdDaWZ0Q1crOGprcUgy?=
 =?utf-8?B?K3djeVJZRUd3bU1UalZxdW54amV2cXlKY0FqcDE5WWpjMjlxa1JOclZ3SkNx?=
 =?utf-8?B?RTdmUm1XOCtFNHRoejdLdXhIWjdsZkJ1cHRxL0tmbUhyckxGeklBZVppQWcv?=
 =?utf-8?B?QWd1Z3pBOW9nR3NmVVExNDFPVENPbE5ObEN6bmNBYjNoR3M0QmZNN1NXSWd1?=
 =?utf-8?B?SnVQcTRISGIvTUplSUZHdmhlK3NlSXB3K0NCOUdyT2hnQzY2TGVOYk9SRHlX?=
 =?utf-8?B?bUNNUG00bHVRdkJKSHo4dE14RitiRHZsTUlHMWJ5RnNBejJLL3hoMHlJd1RB?=
 =?utf-8?B?cUtkTlJ2ZmhWQ3JBUUxlSElPbWR5RG9xbVFNZWxsNlU1Y2FVaEtGaUQ0czY3?=
 =?utf-8?B?eVhSU3ZtRnoyMzVrMzRpUmVyN1FVcDVNZHF3VkoxY0ZvdllKU2hQVnVmMTRP?=
 =?utf-8?B?NEhxakJUK2JaWDFydHZnQ1AxZ2xFalFqRmhORDF0MFN3WGpDNURwQThCYTA3?=
 =?utf-8?B?MjUveXFHK3FrVG1qRU1VbGF3M3RjUzRxZTRkTlFXcWM3MkErSUlHcGFpN2xU?=
 =?utf-8?B?ZlhyM1FrRjNLZnZuZ25qRUUvcVB2S1hSNjFMS0wyeTQzNC9qd0M2STdVM1py?=
 =?utf-8?B?MC9XUUtjaVRtUXNuZXBsNjRqdVZFZnJsOXFQMVZITEZBRzl0UXFaOVhUUS9Q?=
 =?utf-8?B?NzRjVGpEM25HSWwyT3QyZERjTFkvN2srZXB1OHllNVJZRGJtNWtWVXVmdFhG?=
 =?utf-8?B?M2tZeGFCM0N6RVNYdUVGRWE5UTJrZWdoY2VwMVFwWld2ODBWY2psWXZUQ2xL?=
 =?utf-8?B?R3NhNU4rYkFyMkh3ZnNjU2VLZGRMQVJFMEN0RnM5TS9UbmIzZjY1MjlEeGJG?=
 =?utf-8?B?SGFrWms0ZThaVm9hOURKUjVBNTcyaEZTUWRwNHpCbmRuL0pPcjZwSjVuSGhM?=
 =?utf-8?B?RXZpa280SDNFZzE4WEFOWFYxVXBvOTZSNDZqS1BvRyt6NEtxdUQ0TWtDVG1x?=
 =?utf-8?B?ZEREb0JwbEkxalY3QjZvY0czRFdNTi9rNm44eGkyOWlOVTl2UFl3Uk0xNEcz?=
 =?utf-8?B?TFVFdmxoekxlWkV1N1cvT0g4bjE2SG9FUW5CemQyam4yZ2JZVDdyY0ZvMlFr?=
 =?utf-8?B?ZGNYTmxCQ2NiUGdQUFFjcU9YTkczZzBtOWR5QkFwTTMwRFpYS0ZaMi8vaVdU?=
 =?utf-8?B?UmxKNW9zY2h0eWtLOGV0bnBMRGs3RUZDSjhmS0RwajZ3dGNMMnNGMkVMUEhi?=
 =?utf-8?B?bk96V0RQWk4wa1ZZMlhUTC9zWXJETkJlTmJLdnhXVmFWajN0QnFYMVlnbWVH?=
 =?utf-8?B?N1FheVZHTkw0amZwN2Q4R3VSelJaR2tNTHl0TnllMU9oMDkvbDZPZEtJU0hl?=
 =?utf-8?B?YXVuY2R5d0NFalZSVTg3akVCM0F1aCtBcnNvWXVFWWJkcEpzeUZqOWh5Yzhk?=
 =?utf-8?B?TVhHd3padDk5Q240SU1PcXFNOW5xR0pLUFdXeUNxMjVZWUdSdVl3SHUrT3RK?=
 =?utf-8?B?SmZrTHpFa3VoeVVlOWFLMXFsTVBaWXByak5qME40bS9EWlUxdXR0R1JEa3VH?=
 =?utf-8?B?bXJ0Vk1IcUlkVDBlYkVVMzZBbFpOeGlxMXNGb2QyWCtWbk0rSm5YMlgzOGFQ?=
 =?utf-8?B?cTNUdWZOK09NOUI4c0RrZHlLY3JPR2psbjNxQll0TFB5Z2hGVVh2MDl3TFFa?=
 =?utf-8?B?eHFxeTlzMEdtZVNkVXlHV2gwck9wY0hQSFVablBNcUdtM29vS2N3RE4vaE91?=
 =?utf-8?B?aTBCQ21CRXNta3I1dUtlYUxMMEdrc09BdUI3VlIycTczQldtYlZlaWhzc0F1?=
 =?utf-8?B?UGtObXFGcHNMcXRpMGx3TEVhVjVsR3FnSm9GSWlpQ2ZFcnVuSnZoM1Z4alY0?=
 =?utf-8?B?czhWUVpvWDlCYjJnbnZFUU8zVzQ3ejk0YXRTTXMwTlZOQ1Q1RFg3bXlqREtj?=
 =?utf-8?B?OVZTRXlYRk00dE01WHJaMy9MQ1F6SW9Nd3hDMDBrd1FZbS9HeFh0MitWd3Nu?=
 =?utf-8?B?WVBLd0x1V1g4QWd4Q08xNFN1UTh0V21BdE9DSEkzMGRPQlY2Z1NIQ0h4TGdW?=
 =?utf-8?B?cnJ4bHhhcjlZRE51dmV1MTM3RWREWDdIWk84Vk0yaTRjSm44VE9jTEZadVNC?=
 =?utf-8?B?dnc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 99fbe3c2-ceb6-4604-71e0-08de1e0aca8f
X-MS-Exchange-CrossTenant-AuthSource: DM4PR03MB7015.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2025 14:34:43.4789
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 5/xRuRUQeIlEgw+HhuQyuCW3V/r7EvjDvEAQh+XZNqLRRxvvhBlsRMe3gReIpJ23eB5EJNIrGGwdU9yKktZx12/JuwDdFzD+3YKmO9sX7ZM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6563

On 07/11/2025 2:30 pm, Jan Beulich wrote:
> On 07.11.2025 14:47, Andrew Cooper wrote:
>> Link: https://git.kernel.org/tip/d23550efc6800841b4d1639784afaebdea946ae0
>> Fixes: ff8228ab4658 ("x86/ucode: Relax digest check when Entrysign is fixed in firmware")
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
>
> Pretty likely wants to go into 4.21? Cc-ing Oleksii, for him to judge.

Yes, and backporting, but I've got more ucode bugfixes I'm working on.

One in particular was always broken, but exasperated by one of my recent
changes, but I'm not sure if the result is going to be comfortable for
4.21 at this juncture.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 15:00:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 15:00:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157649.1486347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHNwe-0006x8-Sm; Fri, 07 Nov 2025 15:00:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157649.1486347; Fri, 07 Nov 2025 15:00:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHNwe-0006x1-QD; Fri, 07 Nov 2025 15:00:08 +0000
Received: by outflank-mailman (input) for mailman id 1157649;
 Fri, 07 Nov 2025 15:00: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=2Yjs=5P=arm.com=ryan.roberts@srs-se1.protection.inumbo.net>)
 id 1vHNwd-0006wv-MT
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 15:00:07 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 6ee8d330-bbea-11f0-980a-7dc792cee155;
 Fri, 07 Nov 2025 16:00: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 35D311515;
 Fri,  7 Nov 2025 06:59:52 -0800 (PST)
Received: from [10.57.86.134] (unknown [10.57.86.134])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 611CD3F694;
 Fri,  7 Nov 2025 06:59: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: 6ee8d330-bbea-11f0-980a-7dc792cee155
Message-ID: <999feffa-5d1d-42e3-bd3a-d949f2a9de9d@arm.com>
Date: Fri, 7 Nov 2025 14:59:53 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/12] mm: enable lazy_mmu sections to nest
Content-Language: en-GB
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-8-kevin.brodsky@arm.com>
From: Ryan Roberts <ryan.roberts@arm.com>
In-Reply-To: <20251029100909.3381140-8-kevin.brodsky@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29/10/2025 10:09, Kevin Brodsky wrote:
> Despite recent efforts to prevent lazy_mmu sections from nesting, it
> remains difficult to ensure that it never occurs - and in fact it
> does occur on arm64 in certain situations (CONFIG_DEBUG_PAGEALLOC).
> Commit 1ef3095b1405 ("arm64/mm: Permit lazy_mmu_mode to be nested")
> made nesting tolerable on arm64, but without truly supporting it:
> the inner call to leave() disables the batching optimisation before
> the outer section ends.
> 
> This patch actually enables lazy_mmu sections to nest by tracking
> the nesting level in task_struct, in a similar fashion to e.g.
> pagefault_{enable,disable}(). This is fully handled by the generic
> lazy_mmu helpers that were recently introduced.
> 
> lazy_mmu sections were not initially intended to nest, so we need to
> clarify the semantics w.r.t. the arch_*_lazy_mmu_mode() callbacks.
> This patch takes the following approach:
> 
> * The outermost calls to lazy_mmu_mode_{enable,disable}() trigger
>   calls to arch_{enter,leave}_lazy_mmu_mode() - this is unchanged.
> 
> * Nested calls to lazy_mmu_mode_{enable,disable}() are not forwarded
>   to the arch via arch_{enter,leave} - lazy MMU remains enabled so
>   the assumption is that these callbacks are not relevant. However,
>   existing code may rely on a call to disable() to flush any batched
>   state, regardless of nesting. arch_flush_lazy_mmu_mode() is
>   therefore called in that situation.
> 
> A separate interface was recently introduced to temporarily pause
> the lazy MMU mode: lazy_mmu_mode_{pause,resume}(). pause() fully
> exits the mode *regardless of the nesting level*, and resume()
> restores the mode at the same nesting level.
> 
> Whether the mode is actually enabled or not at any point is tracked
> by a separate "active" field in task_struct; this makes it possible
> to check invariants in the generic API, and to expose a new
> in_lazy_mmu_mode() helper to replace the various ways arch's
> currently track whether the mode is enabled (this will be done in
> later patches).
> 
> In summary (nesting/active represent the values *after* the call):
> 
> lazy_mmu_mode_enable()		-> arch_enter()	    nesting=1 active=1
>     lazy_mmu_mode_enable()	-> Ã¸		    nesting=2 active=1
> 	lazy_mmu_mode_pause()	-> arch_leave()     nesting=2 active=0
> 	lazy_mmu_mode_resume()	-> arch_enter()     nesting=2 active=1
>     lazy_mmu_mode_disable()	-> arch_flush()     nesting=1 active=1
> lazy_mmu_mode_disable()		-> arch_leave()     nesting=0 active=0
> 
> Note: in_lazy_mmu_mode() is added to <linux/sched.h> to allow arch
> headers included by <linux/pgtable.h> to use it.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
>  arch/arm64/include/asm/pgtable.h | 12 ------
>  include/linux/mm_types_task.h    |  5 +++
>  include/linux/pgtable.h          | 67 ++++++++++++++++++++++++++++++--
>  include/linux/sched.h            | 16 ++++++++
>  4 files changed, 84 insertions(+), 16 deletions(-)
> 
> diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
> index 54f8d6bb6f22..535435248923 100644
> --- a/arch/arm64/include/asm/pgtable.h
> +++ b/arch/arm64/include/asm/pgtable.h
> @@ -82,18 +82,6 @@ static inline void queue_pte_barriers(void)
>  
>  static inline void arch_enter_lazy_mmu_mode(void)
>  {
> -	/*
> -	 * lazy_mmu_mode is not supposed to permit nesting. But in practice this
> -	 * does happen with CONFIG_DEBUG_PAGEALLOC, where a page allocation
> -	 * inside a lazy_mmu_mode section (such as zap_pte_range()) will change
> -	 * permissions on the linear map with apply_to_page_range(), which
> -	 * re-enters lazy_mmu_mode. So we tolerate nesting in our
> -	 * implementation. The first call to arch_leave_lazy_mmu_mode() will
> -	 * flush and clear the flag such that the remainder of the work in the
> -	 * outer nest behaves as if outside of lazy mmu mode. This is safe and
> -	 * keeps tracking simple.
> -	 */
> -
>  	if (in_interrupt())
>  		return;
>  
> diff --git a/include/linux/mm_types_task.h b/include/linux/mm_types_task.h
> index a82aa80c0ba4..632d404f8191 100644
> --- a/include/linux/mm_types_task.h
> +++ b/include/linux/mm_types_task.h
> @@ -88,4 +88,9 @@ struct tlbflush_unmap_batch {
>  #endif
>  };
>  
> +struct lazy_mmu_state {
> +	u8 nesting_level;
> +	bool active;
> +};
> +
>  #endif /* _LINUX_MM_TYPES_TASK_H */
> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
> index b5fdf32c437f..e6064e00b22d 100644
> --- a/include/linux/pgtable.h
> +++ b/include/linux/pgtable.h
> @@ -228,27 +228,86 @@ static inline int pmd_dirty(pmd_t pmd)
>   * of the lazy mode. So the implementation must assume preemption may be enabled
>   * and cpu migration is possible; it must take steps to be robust against this.
>   * (In practice, for user PTE updates, the appropriate page table lock(s) are
> - * held, but for kernel PTE updates, no lock is held). Nesting is not permitted
> - * and the mode cannot be used in interrupt context.
> + * held, but for kernel PTE updates, no lock is held). The mode cannot be used
> + * in interrupt context.

"The mode cannot be used in interrupt context"; except it is for arm64. KFENCE
and/or DEBUG_PAGEALLOC will request the arch to change linear map permissions,
which will enter lazy mmu (now using the new generic API). This can happen in
softirq context.


> + *
> + * The lazy MMU mode is enabled for a given block of code using:
> + *
> + *   lazy_mmu_mode_enable();
> + *   <code>
> + *   lazy_mmu_mode_disable();
> + *
> + * Nesting is permitted: <code> may itself use an enable()/disable() pair.
> + * A nested call to enable() has no functional effect; however disable() causes
> + * any batched architectural state to be flushed regardless of nesting. After a
> + * call to disable(), the caller can therefore rely on all previous page table
> + * modifications to have taken effect, but the lazy MMU mode may still be
> + * enabled.
> + *
> + * In certain cases, it may be desirable to temporarily pause the lazy MMU mode.
> + * This can be done using:
> + *
> + *   lazy_mmu_mode_pause();
> + *   <code>
> + *   lazy_mmu_mode_resume();
> + *
> + * This sequence must only be used if the lazy MMU mode is already enabled.
> + * pause() ensures that the mode is exited regardless of the nesting level;
> + * resume() re-enters the mode at the same nesting level. <code> must not modify
> + * the lazy MMU state (i.e. it must not call any of the lazy_mmu_mode_*
> + * helpers).
> + *
> + * in_lazy_mmu_mode() can be used to check whether the lazy MMU mode is
> + * currently enabled.
>   */

Nice documentation!

>  #ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>  static inline void lazy_mmu_mode_enable(void)
>  {
> -	arch_enter_lazy_mmu_mode();
> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
> +
> +	VM_WARN_ON_ONCE(state->nesting_level == U8_MAX);
> +	/* enable() must not be called while paused */
> +	VM_WARN_ON(state->nesting_level > 0 && !state->active);
> +
> +	if (state->nesting_level++ == 0) {

Hmm... for the arm64 case of calling this in an interrupt, Is it safe?

If a task is calling this function and gets interrupted here, nesting_level==1
but active==false. The interrupt then calls this function and increments from 1
to 2 but arch_enter_lazy_mmu_mode() hasn't been called.

More dangerously (I think), when the interrupt handler calls
lazy_mmu_mode_disable(), it will end up calling arch_flush_lazy_mmu_mode() which
could be an issue because as far as the arch is concerned, it's not in lazy mode.

The current arm64 implementation works because setting and clearing the thread
flags is atomic.

Perhaps you need to disable preemption around the if block?

> +		state->active = true;
> +		arch_enter_lazy_mmu_mode();
> +	}
>  }
>  
>  static inline void lazy_mmu_mode_disable(void)
>  {
> -	arch_leave_lazy_mmu_mode();
> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
> +
> +	VM_WARN_ON_ONCE(state->nesting_level == 0);
> +	VM_WARN_ON(!state->active);
> +
> +	if (--state->nesting_level == 0) {
> +		state->active = false;
> +		arch_leave_lazy_mmu_mode();
> +	} else {
> +		/* Exiting a nested section */
> +		arch_flush_lazy_mmu_mode();
> +	}
>  }
>  
>  static inline void lazy_mmu_mode_pause(void)
>  {
> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
> +
> +	VM_WARN_ON(state->nesting_level == 0 || !state->active);

nit: do you need the first condition? I think when nesting_level==0, we expect
to be !active?

> +
> +	state->active = false;
>  	arch_leave_lazy_mmu_mode();
>  }
>  
>  static inline void lazy_mmu_mode_resume(void)
>  {
> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
> +
> +	VM_WARN_ON(state->nesting_level == 0 || state->active);

Similar argument?

> +
> +	state->active = true;
>  	arch_enter_lazy_mmu_mode();
>  }
>  #else
> diff --git a/include/linux/sched.h b/include/linux/sched.h
> index cbb7340c5866..11566d973f42 100644
> --- a/include/linux/sched.h
> +++ b/include/linux/sched.h
> @@ -1441,6 +1441,10 @@ struct task_struct {
>  
>  	struct page_frag		task_frag;
>  
> +#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
> +	struct lazy_mmu_state		lazy_mmu_state;
> +#endif
> +
>  #ifdef CONFIG_TASK_DELAY_ACCT
>  	struct task_delay_info		*delays;
>  #endif
> @@ -1724,6 +1728,18 @@ static inline char task_state_to_char(struct task_struct *tsk)
>  	return task_index_to_char(task_state_index(tsk));
>  }
>  
> +#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
> +static inline bool in_lazy_mmu_mode(void)
> +{
> +	return current->lazy_mmu_state.active;
> +}
> +#else
> +static inline bool in_lazy_mmu_mode(void)
> +{
> +	return false;

Just pointing out that this isn't really a correct implementation:

lazy_mmu_mode_enable()
ASSERT(in_lazy_mmu_mode()) << triggers for arches without lazy mmu
lazy_mmu_mode_disable()

Although it probably doesn't matter in practice?

Thanks,
Ryan

> +}
> +#endif
> +
>  extern struct pid *cad_pid;
>  
>  /*



From xen-devel-bounces@lists.xenproject.org Fri Nov 07 15:05:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 15:05:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157663.1486358 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHO1Q-0007Ws-FD; Fri, 07 Nov 2025 15:05:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157663.1486358; Fri, 07 Nov 2025 15:05:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHO1Q-0007Wl-Bu; Fri, 07 Nov 2025 15:05:04 +0000
Received: by outflank-mailman (input) for mailman id 1157663;
 Fri, 07 Nov 2025 15:05:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qRNH=5P=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vHO1P-0007Wa-89
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 15:05: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 22b0990d-bbeb-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 16:05:02 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AM9PR03MB7605.eurprd03.prod.outlook.com (2603:10a6:20b:419::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Fri, 7 Nov
 2025 15:04:59 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9298.010; Fri, 7 Nov 2025
 15:04: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: 22b0990d-bbeb-11f0-9d17-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rH87iHK389YV3KQJR/ByOpMwwbGgMWu6rz7WARhv0FWZQO2eeNBdk8OFjqCbEX/Pw4/cdq5lRDHdSDAjDKwz5yNlDrlaecaDMeohQdbtoRNqDdSSWtxMvxu0yeXNGsme+RocuBaxqUb0lwqb8IooFIpH1V3qfwJOBiWMfYjHSd+Ld6m1jygblyfw0DXZcg4pI9qbOIgVnlWy2xcJvwgUAvbmE8BqHLZZFZUHRHO3oivGpr994deHJ30oggbNuQMujdSB2X7HfPPHlJCkjjRN0opNiBzH6e5AoIn7sLg/fPSlkcyMv3vgJChRZbHmJQ+p1eAGtId5xUkUhdTQlhqTHQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=avySyVoUNnEQXlDAooPk+JX3+HVzZzILNmAQk4gwOnc=;
 b=PvhErX/FxLTmp2BhRMQIEX+zrrgW0yoC6FqrT7P0bvW38MpqDjv3/Wj7lnMYhknC1HLzTdtbVoRDg+gN/gZIglkqEbeukh1WChaqjpf/r8Vj6FGzOkv0tZ95SIcIFPCTSzrAJwF5f5c9gpSGRU0JU3ub/W83/ywYdWwsKEY2CpOo40AsVdq+aZA4nYLzqwM82BlMCc3WOvpojSlxs+UvboXwCal7YlgIVeKHOzbBSLPzcMj5eVf4eXhzdKZov01pAAA9yGk0TG6VOv6d48ev8SAr1tTOVy85tVeuwvz+QdmOdyXLQZTbTVUM8rCCu06XKimGSEIYvYFP6TVWam54Xg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=avySyVoUNnEQXlDAooPk+JX3+HVzZzILNmAQk4gwOnc=;
 b=ZNuMmb3ZVgRVy0LwBiHTCK70+PZY9whWq1KsWFsJYHbyJHfwqqwL25mRZd2MjlAVrjlRW/HizlvAMCK1YOvTMe9xx4KFLGIdoiAHJ6ZxVRIb2+FpMBM80h6v/mkt8kL8o+sE+WTgjjuv5HaHWhyzZJB5/P5jd/CZVnl66Qp/ZXdE3XDslKXUHRUpRZC6/EJWyTsUwGuoBSePxeThghLwKCw/iB/7isQ7A2Sy7naxgDpmyXMydQsSmDxF6iTQcWKw4zhd8xAkPZ56jvjkx8Yht7JGEv8eLjnMqZgQP5Vypo85LU1USNS6fGphTDsbdRQrp+2PUJ75B+OsLxF7aTkWZg==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Tim Deegan
	<tim@xen.org>, Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie
	<teddy.astie@vates.tech>
Subject: [XEN][PATCH v2 0/3] x86/hvm: vmx: refactor cache disable mode code
Thread-Topic: [XEN][PATCH v2 0/3] x86/hvm: vmx: refactor cache disable mode
 code
Thread-Index: AQHcT/fi4fFafA7ovEOjKlx2k25ReA==
Date: Fri, 7 Nov 2025 15:04:59 +0000
Message-ID: <20251107150456.2965906-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB8907:EE_|AM9PR03MB7605:EE_
x-ms-office365-filtering-correlation-id: d2a6db04-9824-47b1-be94-08de1e0f0547
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:
 =?iso-8859-1?Q?+LNHg1p3tQg6hNvN3QWCkR8cstI+ykUu79F9y5Z81yc2xoLxjGqE1Q1Aq/?=
 =?iso-8859-1?Q?QhACNlDK54ogvLn8HcYTsf4N6dZEI9EFjl+M2bxQNW2RS0Isgrp5NuU3oU?=
 =?iso-8859-1?Q?ZSJFArNNroIEy3wCX5l7kT4t1X4ln/5HYheKMNB9dLLAd02be6DLv3NsJD?=
 =?iso-8859-1?Q?jsHIAp76GT8dHEVHWToUEecgNADKxQKzgh9ewgS95nvVQy5g6va5iFKLYX?=
 =?iso-8859-1?Q?0Hul67okS1wSNwPXCg3CYcfA+9oAgF49psCWtz90lFufBQkJcx3dawJg+g?=
 =?iso-8859-1?Q?ReBtVZd0F1oHO8L8lW+y2mQerICcbosdnKt6quIaDrBwerkdfmTffzAQ/k?=
 =?iso-8859-1?Q?HxBl+qtFDM1wKhfz8PvMJShGIXPZRNfKWqL1tpSiXn+WS2gbjeX4xhpvWF?=
 =?iso-8859-1?Q?RZ3BxriYxybtuMQT83hPIZt6WYEPshFhRsjPH+dwEgYDL1J3uF0GGNSVIR?=
 =?iso-8859-1?Q?0wpMul5ABou/EyOUfdwaVUz6R4mumo4ixPn8o79LHpUqEFC2E0hjQ1ZK7T?=
 =?iso-8859-1?Q?ibGcVBksJDbie0VjXAbcPLWwBki1RMBCoMZ8F47VktwQjrImCEy11XZSXV?=
 =?iso-8859-1?Q?fQVLiAPNttNZOXth8peDE6v9tyvujQ1ByHHGk9Aqwsr6ytMlYXjIv0j5Ku?=
 =?iso-8859-1?Q?J6c54ckhLeYKsue3P//xuD6IR9jAX8sjBNYQpRmrp7I9jEmmJLOSIBrP24?=
 =?iso-8859-1?Q?zj2slPl4E8gxexZ3oqHespuMq46dZ/T4HBrYuLhwl1iFdlygBbTLy7mgYb?=
 =?iso-8859-1?Q?EM1dxPSpdEIVBsspdVC80tLQwgdZ1yw9FwcGfsJVv3uhmT8Ik52bXut1Xc?=
 =?iso-8859-1?Q?6s1q3hw3lur4HD8B4PSNZaf1J1XXx9WFtNbSju3KiN8MLrJh1/tThJdGda?=
 =?iso-8859-1?Q?8YXyF03q53YHAUcwytZo4OEXungRGtf6qp90mnA8ibHDKx0qC8TqDJdE7U?=
 =?iso-8859-1?Q?d6LVGsjVN5n+PM7fmXMIRpsInX5WxJlOKduYgyZ7Wkpm4Xmkm5yDaDPZ6b?=
 =?iso-8859-1?Q?oFUtafZ+dB7D0UoqQtSCCWxUkocK4NtEz4QwXAMF1J9ehl//rDNPSbHZFO?=
 =?iso-8859-1?Q?mA3Stu/ZeARv4WJpnwswxYZmByUVgfb1k3FyK5/GcZY67H2YZ6JxKbjlbP?=
 =?iso-8859-1?Q?EJ8331AUa8QpJcpnECgppAiAOAZdHKb8WlEG+Rt1t1QQtinMSLgWRddMMe?=
 =?iso-8859-1?Q?YxbxpmRgE4KcWYlHHFIC9b2hepXfyuXUull4Z4bnXIhC61LpGDYvNhMXsX?=
 =?iso-8859-1?Q?1bv6arlU2zAT0qKMEoIq0GLlpB5mLRnG/WirxoYkSNhwlJ09Fe6nf5Mted?=
 =?iso-8859-1?Q?a1siZnC1K+31CV8I1xWF4AFB4od7gIxpMPixaflgWbpinqnNmqNN3YLb7j?=
 =?iso-8859-1?Q?MgpldGP/hcQvZQmkprpjY810/C/9s2ANUTyaa1jI4t8HCCDj4KyhBJHMlW?=
 =?iso-8859-1?Q?lazo3vkCP6DcnPiQHI7S8/HTsPy8iwLOLwxRv7ipcBZmnTMk+8Dgez8ov5?=
 =?iso-8859-1?Q?d78krlodD1pn0YxNLNyWpLhOERValMFig86Lo54mQY6BcDYyy59N6q9TdH?=
 =?iso-8859-1?Q?3sbeFWW/DzEOAblJ3zOdDyRub2Ol?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?NFBokMmNp7ukpEnoK/wtsmYl1R+DV/4l3MdNuW++PMl+gErQceo5wtkFps?=
 =?iso-8859-1?Q?Q8QodZ04jl/cI+qJ1EmQt+TICZLZj5uX1u70XH5vPWgXhrMZgGfo98zK0m?=
 =?iso-8859-1?Q?acRSXCpN4WOt1gGscKL042sy0bGjgfiZdr+Pb5cCRRXdnmVCq6oxxsTXuo?=
 =?iso-8859-1?Q?hcXNZCqZWlXbpIF9LYghb38iSVHPbCdwaUOqdA9WDvxlbe7ZFdCxIg1eQ9?=
 =?iso-8859-1?Q?l/1BDft96PAR4jw7hVkQdlbIVXp24KZflHii+wU64ihLC22LjsS+0bwRe2?=
 =?iso-8859-1?Q?QRsGNLp2Ctq9L8mPgxb7LJvqkvcR2vVRY5SrxkZXr91Te+D4bmeSll0zNi?=
 =?iso-8859-1?Q?6DS+BRfuFb/IeNe9o5EXe8JYGT5bEpGVG5laaq9e2xV9CiXztlgAk2aBAF?=
 =?iso-8859-1?Q?5Je3dawm74y+CPooeE464Hy8VyfWObO6T8w9GQmXdOS34mZ3WVbUi84wqk?=
 =?iso-8859-1?Q?JvELCw22piiyWBi7DxlE6MC+vsZwfSqYu/qvV0NT+V2z87w+MU5VtnjGd6?=
 =?iso-8859-1?Q?IQvjB2YGN7jaK7CoVMbDAVkKXZ2L7QHgJI1/B8c+9jDbP/3PWIhsBFy5wJ?=
 =?iso-8859-1?Q?z0olwAGObalTO8u3klf66ObKm22yJAMo0i/l+oFqprFHO0ptIRLVClQ/OW?=
 =?iso-8859-1?Q?89K5mZeA628GZj8GqayM4JqIKf7OZKAkkiSnQEkIhY2g9asqr6p90n+1Ev?=
 =?iso-8859-1?Q?i2u3AwSQJIy6uOcgOnLVyVuBFfYmPAZk+5LAtDp+y5ouutfO7GEveVMGpW?=
 =?iso-8859-1?Q?vnCu0p4q9jKR29s1vKVbx1u6ndffIjBM90JVEBZOW5bZGC8KRNBfsaQMvE?=
 =?iso-8859-1?Q?3G9jIYgYWTQlJnX+3V2lo3zH4QUNkqiXEiF++U2dw5C95abv9eg4d1mXxg?=
 =?iso-8859-1?Q?eIdGHHh518QHl97J8ihPG/cMe/yxLIb8lZtdixxrPF5v15HeNtWYjIikRQ?=
 =?iso-8859-1?Q?0sv+LNYa5Mgmoow0bwZLpfMSU6qmg6PYEoPy9DzUUUlHQj15ljaRkN1piF?=
 =?iso-8859-1?Q?D4gQYJxrktml9BUEC9i+tjXTAywPVJt3gTnFdqjCSZ4qnia6OYcS5FPMIx?=
 =?iso-8859-1?Q?dUoYBLXutHNQWSDWQHELP95wSUfokDY34sLZzzcy7fT+OEV5Nz8tLSGc7i?=
 =?iso-8859-1?Q?3/awAIbbmQ+zQQs9sr+JUlGd4yRHhyf1E7lrG/7O8QWndjuOorRNckEeWL?=
 =?iso-8859-1?Q?K/OmfeY7GtJVvm00pL8FKP1T9qaqQEQqwtQ98dpaA37xwpT9NOkQl2A29o?=
 =?iso-8859-1?Q?+C6P1yOGypreevzdBEjH0L2X7MFixjbEb+2JwPlIeJhnRV41YUwcamItHI?=
 =?iso-8859-1?Q?olCo9KxlNLrkSDM2376fdAjI/HYyBYEBD0eAZYeDWfRnmyfEZZN/ZTb4Qy?=
 =?iso-8859-1?Q?lpg+EB7c+vwEOwVb4kYrJz/tx+4ZTocSPmpn77aB3CMSwbY3r5Fga1dNv4?=
 =?iso-8859-1?Q?W7nKkxSUpvqt7FMkXDi/QOpO/uLNvFaYPBgIjTLtlg3DNTaMmO5mZD8vBr?=
 =?iso-8859-1?Q?NN/tntUh6oBJ7cMUEb+cmhs/6nrPu7mBZMa76bBMCEE8z7cJG8PeaRs2/s?=
 =?iso-8859-1?Q?nQBk8Mdfqgz1ON6NbvNOEpQK9x+fDQ61JiG+wkGKhBP5HyK9L4ORR1h4iV?=
 =?iso-8859-1?Q?RUwdR0v7w90vZt1pBDPUp8dZMBpiDB+CH71cEWXCmR0mDJIBNymLvhPg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d2a6db04-9824-47b1-be94-08de1e0f0547
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Nov 2025 15:04:59.4622
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: zWdTWHlBxL/wiKu6m4mu1kMJMD6l1iaqH+qMxCVE3JShI4p2zu9Ka2Kxf15Gc7ZAvXE89XJ4CIctwbOyudDE2nMRi40PI66XiWDEXpIVw1I=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7605

From: Grygorii Strashko <grygorii_strashko@epam.com>

The cache disable mode code (hvm_shadow_handle_cd()) is relevant only for I=
ntel VT-x (VMX),
hence:
- move hvm_shadow_handle_cd()/ hvm_set_uc_mode()/domain_exit_uc_mode() in V=
MX code
- account for SHADOW_PAGING when use hvm_shadow_handle_cd()
- move cache disable mode data into VMX specific structures

Based on discussion [1].

[1] https://patchwork.kernel.org/project/xen-devel/patch/20251023151903.560=
947-1-grygorii_strashko@epam.com/

v1: https://patchwork.kernel.org/project/xen-devel/cover/20251029235448.602=
380-1-grygorii_strashko@epam.com/

Grygorii Strashko (3):
  x86/hvm: move hvm_shadow_handle_cd() to vmx code
  x86/hvm: vmx: account for SHADOW_PAGING when use
    hvm_shadow_handle_cd()
  x86/hvm: vmx: refactor cache disable mode data

 xen/arch/x86/hvm/hvm.c                  | 59 --------------------
 xen/arch/x86/hvm/vmx/vmx.c              | 73 +++++++++++++++++++++++--
 xen/arch/x86/include/asm/hvm/domain.h   |  6 --
 xen/arch/x86/include/asm/hvm/hvm.h      |  3 +
 xen/arch/x86/include/asm/hvm/support.h  |  2 -
 xen/arch/x86/include/asm/hvm/vcpu.h     |  3 -
 xen/arch/x86/include/asm/hvm/vmx/vmcs.h | 13 +++++
 xen/arch/x86/include/asm/mtrr.h         |  3 -
 xen/arch/x86/mm/shadow/multi.c          |  2 +-
 9 files changed, 85 insertions(+), 79 deletions(-)

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 15:05:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 15:05:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157664.1486364 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHO1Q-0007ab-O0; Fri, 07 Nov 2025 15:05:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157664.1486364; Fri, 07 Nov 2025 15:05:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHO1Q-0007Zu-Jo; Fri, 07 Nov 2025 15:05:04 +0000
Received: by outflank-mailman (input) for mailman id 1157664;
 Fri, 07 Nov 2025 15:05: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=qRNH=5P=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vHO1P-0007Wa-Tx
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 15:05:04 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2316626e-bbeb-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 16:05:02 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AM9PR03MB7605.eurprd03.prod.outlook.com (2603:10a6:20b:419::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Fri, 7 Nov
 2025 15:05:00 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9298.010; Fri, 7 Nov 2025
 15:05:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2316626e-bbeb-11f0-9d17-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YA34QMzvgeR/MSMSF8jh4tPbyd90G5VCOvJHvg2kaa/I0eAOp9XsJrgQBG/aeuVAg5I9oFWknC2drhioC+dv6camMmz6ULvuyPTKEx9WxeNFi1ZSYCuGTy/cDkamhWJVynURC6dWVRVKBA+A7iFG7ByG0O5aSeqWs7LFOIMrkNxQQJBGBmGI+H6BqXkih3Bqz2jrqP5gMFoKdKlWj5g91RCUx+GYPlcHhSQ6C/IoDbiqYefZGgcvPGSnzww0XPu72Mbov6yEHYUAA00gl9gkaQ3PLO4kaRP70MMFQW8NFliohijL0laSySGPgZ+/LWmUoBqPGr9ocb40QYMUb9qN7w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+avs39yG5SK8mfCma+H15nY8tDlKMQPGd027kBE3V08=;
 b=um2jmdZpLoF/8tsjwWPjNTPAed9YbYtUcp/y/BWGAIOgQfh09wBzKtTDsezT4ncv8WTDqcFSh5sCM6r+COrZp9O+o9yjNAaiBDX1RFNRhQdppW7OulohqEpbAmuA+BD19LzXj/1UjIdNfd7hXokhCJRXm1PxL9wBpULYpr+TRaEoA1MnAOnpBofSRhJT6PcwI7hVX9HZFC1oQACDQMq1m/RtdDAVyXYEmIrKaYRU1WbdOFsFwdtKVPp3OgQpunug0nvwhOZKAluKuT8BgcwzFbQW1CJ8AnNb67i4PlVXeDHekE/EH/z9xhnlII9ASl4mRLjR4OQ5yRd1AylCj5lBTQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+avs39yG5SK8mfCma+H15nY8tDlKMQPGd027kBE3V08=;
 b=E7rEDkO5Xka+JJovUY77Xt80eGYvU3GXTbPEbpJzSTZZFE+RPMcSR+Qwy27xJRohZjvCbZXm8T10PGdxdiGbFXyDsY2SRIVpLabiO630sEHJhLjPgfUihbD410O0FSE4wwvC3R1K7tMDCfBVV0imKkqccV90efTwzSiYSL9AuLGdg63JaBwhQ7EjYhD4JtQ3sCfaZcXtuRxB4r4IfRDo+S+2XWNTTDYkirXaYDW6WyvIF1xZYvDkrCyuin92tSkAAeBIEkGnQyzwe9ZElgcAf7PoZi/WZdGnb4BnDlDgqQT9ha/1srPmIYK+iY9b5XjfSoGlKIXHiJI+mUhS+PqOJQ==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: [XEN][PATCH v2 1/3] x86/hvm: move hvm_shadow_handle_cd() to vmx code
Thread-Topic: [XEN][PATCH v2 1/3] x86/hvm: move hvm_shadow_handle_cd() to vmx
 code
Thread-Index: AQHcT/fjfIdwynHJNUWYN6zFEsAQrQ==
Date: Fri, 7 Nov 2025 15:05:00 +0000
Message-ID: <20251107150456.2965906-2-grygorii_strashko@epam.com>
References: <20251107150456.2965906-1-grygorii_strashko@epam.com>
In-Reply-To: <20251107150456.2965906-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB8907:EE_|AM9PR03MB7605:EE_
x-ms-office365-filtering-correlation-id: 4b4f7f08-54c4-45f1-538f-08de1e0f05cd
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:
 =?iso-8859-1?Q?yQLpeaXyF1ms7dYtUSBjr37me8bPFMXijFv/xbojjLJE/6d/91kM6QoXQA?=
 =?iso-8859-1?Q?gFmOQyLdtFj867XDpNWhjwRHI3FKPu+6nqR4l/s+wjp7qET4EAlf/uaRZ8?=
 =?iso-8859-1?Q?r5tVq9Dyvofpl29/fmzCBvgrNexu8MpSMsoFra2dCvJtSFQEQbXdJ3IA3x?=
 =?iso-8859-1?Q?7y32F0gBI4qujABea7FFbl1VFer6/S6iLqyuKHKgByi9CT/AVGmcobqlOy?=
 =?iso-8859-1?Q?TBCCCWMydZIIQErXF1iU2MiNQJibEfNnyTHeRQQoQ1EbIaHinEn1gcXevj?=
 =?iso-8859-1?Q?LfqDgGh8DzBQBlh03HdO1UXRoXQVYbXexZFnfqNTQqI7ME0o8/Ri4qq+Hw?=
 =?iso-8859-1?Q?QU1PsMFgEAbpYVvb9V3rELJav5sBiiF2AVo2OH0SL0YjKqSCPcoZePn4tv?=
 =?iso-8859-1?Q?9BAwPe/KuHhqbRlxSlkNQpbfDHU/Li9YTE9BYGud3yDRrhUe52V5uQeLSe?=
 =?iso-8859-1?Q?qyO9w6WemUpBrDD8NtUNGma/5rzxRTkrSLi7WeQ+6YeMkRu8VOk5eAGDgl?=
 =?iso-8859-1?Q?0E+99Nak8w116cMwzlMXKXd0rBzGu9B/8LuzMWetlu/JCpA6WnjtfT4hN+?=
 =?iso-8859-1?Q?XGrcvrLvJTPnvKUMz6xBN/VLavKfYveuj3NoTgA6RXW2VDSg5qGAHGVm8y?=
 =?iso-8859-1?Q?vmWuwa0dVQUjWKxQ9RQbiYyLMoKsmXolfqOU2SW9fxCYD1TXl0bcs6kqfF?=
 =?iso-8859-1?Q?j4P4lLmnLIXz8dokPsUHeo0otln44STNyFVUdjib0JQ5OXTzfzKc/CT/fs?=
 =?iso-8859-1?Q?8JB/M2iXV2be9B2AqBdITdmev7TGNVd+6or8bR6Bk1YAnRqJGaLbXd56BZ?=
 =?iso-8859-1?Q?ciFHCdDeUdB531bYEnODLTQtZEoctSdFpLgtrorCOXh/wEEmlDKXNu9Fp0?=
 =?iso-8859-1?Q?r0FobRJuDknh1WQD37todUOKhbXymmAesiS7VNNKdgcOw1EtN2iIDpEaG8?=
 =?iso-8859-1?Q?hQDpO75jyJJZKGgeqWT4LcMpMadUviLDf070DfI47Gv7Bz6WgLxTMX/+Ve?=
 =?iso-8859-1?Q?9IvjcqKJkGKpuUSmaWgJutbNJl4GnCKj2IPs/T+6N3RCGy9mu3lgxEDHnf?=
 =?iso-8859-1?Q?aeSMphMsLfJR3GmQOr1CL4IYlJcBJdeHfMYVcBiz7WJrPCak6v57927NcO?=
 =?iso-8859-1?Q?d0XjOt1o9b3Pfn7snd9NUCN21lc+/aosbh8DNjDTggas8mH6x20iSwDrHy?=
 =?iso-8859-1?Q?XSZhAjpjyZXGBo0+6lWL0kKWFAu2FdzkTk7IP5/TfrTE3qJVnqVVAf5bqZ?=
 =?iso-8859-1?Q?Ib/NYjj9v0444pwZc6oTlkpB6WXSNuM2btptGtuBveNcqg7pD4UYt9owWd?=
 =?iso-8859-1?Q?3fQFZ3AxF/wmTG5WVify03GqWO5dtSS+n38hH4lSMrQc7zrjJDdCw9fkGu?=
 =?iso-8859-1?Q?9NGQ/Z6xr8agjHV0B0JloaphjlQP1xz/b4G2J7MlkZtrftlP3211qmudvF?=
 =?iso-8859-1?Q?dS9KCRpR7mp8B0MVS1xS0/yE+CU3c9mX3lC6pDuvtzT2dKBudlVT0P+/Ut?=
 =?iso-8859-1?Q?gVYnDQR034GvhspPUslTrrEzOeMqxgpx/QPwpOYd318WsOjFoQ0xSmfc1I?=
 =?iso-8859-1?Q?ly16kh7iTiPe6t71hn56m5n7daAC?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?FboyO9z46MQzkXuYNbvVOCWjzzvKBNZIj77sxSEGGXF19HTo5cG+MGnNu1?=
 =?iso-8859-1?Q?XtZPLAWa6zw9aBgR5gMqUf0fPp4LIkvxt4hPKegm4XDhLUIXKS8YZGPFAO?=
 =?iso-8859-1?Q?TfzjoVLOFSE5ozezaCUdqoMB754hcezXLK9V5TV2J6f0Xq2vO5+7Gt0og7?=
 =?iso-8859-1?Q?77N8WG99LwZvK954CTNhz5nbY37uwsF47HjCNxB8sl4115K3ayUG+AeCmN?=
 =?iso-8859-1?Q?ZZEzmecgaaOJxsuxVoG09BjNZ3gonM2+un7aXGG7AMuvMjBnfLZefMNnkN?=
 =?iso-8859-1?Q?MVBq/6wlh6sua0fV4HHvtIt4thD0Vp+rZavyBqiiTc53VnPrJ3PI41ql2q?=
 =?iso-8859-1?Q?16rPG6Luk4hNFCMJYmJAbBH98ZL+ojHiz9DgeYLyZt/d7EUunkZcGHMujJ?=
 =?iso-8859-1?Q?oVWnI9bUpxVP6SbXinWwyBjnjKVmQqxg04WpKGrDscmIASWkA7Nv3cjFb+?=
 =?iso-8859-1?Q?TQXmnL4XJToyZbV2N+4EWWeTP0gK5ihyjJ6o3FKMxFMc3UrEE5b+zxSXOT?=
 =?iso-8859-1?Q?FpT70/FJ0o2/Zsx+TUQfXYCcQ0e4hxS9eY0wFT+qb6KSlgVFfzC0bVIDEs?=
 =?iso-8859-1?Q?xy3ViWAscU1I2u1uPNzgtXczlCtJvSPRwcKuMD55uvatvJh8VosLSKo7Jf?=
 =?iso-8859-1?Q?XCnIENTINmRra8vmzxMaEk38GFKPCB+9iVOQiffaE5M23sxByhW0hnLLu7?=
 =?iso-8859-1?Q?ml8txp2ozuzksBxpEbs4RGFgEeApUkXf1It/bN8I1ZhfvLxx4NovShCdx0?=
 =?iso-8859-1?Q?SwP/1bg23y1j9yeRf+BJ0Mw//Zj5ybVXeXCpC2R7hqU1gjF6yN4nxMnqYe?=
 =?iso-8859-1?Q?1WFaigmAULJ2uIVpgLH08DgUYX5/HPi/Pc3fqKT6V1c3JX1rRRNSYBjhKU?=
 =?iso-8859-1?Q?T8jwxpS/U5120EOxRvdXcAY458ID9B2su3IUYjTZZDTvu13xo1g93f33/W?=
 =?iso-8859-1?Q?SyDUXN499RAH/OCNcjDSN5BDYsF42mhay3S+08Hk4y21p0KJ1VqTZfNjPt?=
 =?iso-8859-1?Q?N7UyD3CxvXpiCZDnTw3Qzj0TYvbmiP5BMwANf5gTzqfavoodimiC01MqqR?=
 =?iso-8859-1?Q?YXLI6xIoU9ziRixh478vA89s4RBE++zRo4NBqnfS77eqFIvDwPa6YhQv0E?=
 =?iso-8859-1?Q?PtnjWwDaF9aKLK2e4Apvm7IExlBtBVii0yPRa7YNHSLTgJ8w4bRydVeEkX?=
 =?iso-8859-1?Q?o//SBc6Fo15+HQNSqzR4UqWNzdUL5uREhKr5V0UHRqyk7PNmnC80oqWrWL?=
 =?iso-8859-1?Q?PdUZUksgqI+243Pvj9chxffm0PIvhrQfkfE+Vfvd++cYNHAuUBNaWOXqy0?=
 =?iso-8859-1?Q?FAOQgTdAEgnZFWvfQRnZEb9qCMKpTm8ThwgOiz80QWlnNThDdlFMDS39to?=
 =?iso-8859-1?Q?MDo9kPXcIsK3jzQjoI47jQGfobvaSpH/v1DfPyib4LkeAwrjgxpBSO/p+k?=
 =?iso-8859-1?Q?mHE+tJbuw7RlI63CmFKLaYKpVTd/T9GN2BA7qb67eo/fQCOHKYQs0XIU5N?=
 =?iso-8859-1?Q?PZI2RN1ItfWB8zbRAZiKwxAYKdrAF7OK4N8YSi2A0wKhV6SGJg1MXsnLhR?=
 =?iso-8859-1?Q?B2Y83K5GNNFwEYSuqAuO55SYZAJoF4KaBlCtT8RCs0OcA3Yh4e9rnQAmLj?=
 =?iso-8859-1?Q?0S1FDZvtmXLUd7hhI/csg1/pMrMKkpQZKCocQ/AMIHYZY2PoXrOhUphA?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4b4f7f08-54c4-45f1-538f-08de1e0f05cd
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Nov 2025 15:05:00.3744
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Uuk/r+JUyJNIqjj9opMYhATCbp1glxnJIPrvF5h7nMdZ7sr6BvxhzBIuuwhmatMpxx6SalBcVpV5SNZVELJTJB2f+V91Pgmo5QPby0IgLo0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7605

From: Grygorii Strashko <grygorii_strashko@epam.com>

Functions:
 hvm_shadow_handle_cd()
 hvm_set_uc_mode()
 domain_exit_uc_mode()
are used only by Intel VMX code, so move them to VMX code.

While here:
- minor format change in domain_exit_uc_mode()
- s/(0/1)/(false/true) for bool types
- use "struct domain *" as parameter in hvm_set_uc_mode()
- use "struct domain *d" as local var in hvm_shadow_handle_cd()

No functional changes.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
changes in v2:
- use "struct domain *" as parameter in hvm_set_uc_mode()
- use "struct domain *d" as local var in hvm_shadow_handle_cd()
- move code before vmx_handle_cd()

 xen/arch/x86/hvm/hvm.c                 | 58 ------------------------
 xen/arch/x86/hvm/vmx/vmx.c             | 61 ++++++++++++++++++++++++++
 xen/arch/x86/include/asm/hvm/support.h |  2 -
 3 files changed, 61 insertions(+), 60 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index da3cde1ff0e6..9caca93e5f56 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -2168,30 +2168,6 @@ int hvm_set_efer(uint64_t value)
     return X86EMUL_OKAY;
 }
=20
-/* Exit UC mode only if all VCPUs agree on MTRR/PAT and are not in no_fill=
. */
-static bool domain_exit_uc_mode(struct vcpu *v)
-{
-    struct domain *d =3D v->domain;
-    struct vcpu *vs;
-
-    for_each_vcpu ( d, vs )
-    {
-        if ( (vs =3D=3D v) || !vs->is_initialised )
-            continue;
-        if ( (vs->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) ||
-             mtrr_pat_not_equal(vs, v) )
-            return 0;
-    }
-
-    return 1;
-}
-
-static void hvm_set_uc_mode(struct vcpu *v, bool is_in_uc_mode)
-{
-    v->domain->arch.hvm.is_in_uc_mode =3D is_in_uc_mode;
-    shadow_blow_tables_per_domain(v->domain);
-}
-
 int hvm_mov_to_cr(unsigned int cr, unsigned int gpr)
 {
     struct vcpu *curr =3D current;
@@ -2273,40 +2249,6 @@ int hvm_mov_from_cr(unsigned int cr, unsigned int gp=
r)
     return X86EMUL_UNHANDLEABLE;
 }
=20
-void hvm_shadow_handle_cd(struct vcpu *v, unsigned long value)
-{
-    if ( value & X86_CR0_CD )
-    {
-        /* Entering no fill cache mode. */
-        spin_lock(&v->domain->arch.hvm.uc_lock);
-        v->arch.hvm.cache_mode =3D NO_FILL_CACHE_MODE;
-
-        if ( !v->domain->arch.hvm.is_in_uc_mode )
-        {
-            domain_pause_nosync(v->domain);
-
-            /* Flush physical caches. */
-            flush_all(FLUSH_CACHE_EVICT);
-            hvm_set_uc_mode(v, 1);
-
-            domain_unpause(v->domain);
-        }
-        spin_unlock(&v->domain->arch.hvm.uc_lock);
-    }
-    else if ( !(value & X86_CR0_CD) &&
-              (v->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) )
-    {
-        /* Exit from no fill cache mode. */
-        spin_lock(&v->domain->arch.hvm.uc_lock);
-        v->arch.hvm.cache_mode =3D NORMAL_CACHE_MODE;
-
-        if ( domain_exit_uc_mode(v) )
-            hvm_set_uc_mode(v, 0);
-
-        spin_unlock(&v->domain->arch.hvm.uc_lock);
-    }
-}
-
 static void hvm_update_cr(struct vcpu *v, unsigned int cr, unsigned long v=
alue)
 {
     v->arch.hvm.guest_cr[cr] =3D value;
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 6f2cc635e582..d7efd0a73add 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -44,6 +44,7 @@
 #include <asm/processor.h>
 #include <asm/prot-key.h>
 #include <asm/regs.h>
+#include <asm/shadow.h>
 #include <asm/spec_ctrl.h>
 #include <asm/stubs.h>
 #include <asm/x86_emulate.h>
@@ -1451,6 +1452,66 @@ static int cf_check vmx_get_guest_pat(struct vcpu *v=
, u64 *gpat)
     return 1;
 }
=20
+/* Exit UC mode only if all VCPUs agree on MTRR/PAT and are not in no_fill=
. */
+static bool domain_exit_uc_mode(struct vcpu *v)
+{
+    struct domain *d =3D v->domain;
+    struct vcpu *vs;
+
+    for_each_vcpu(d, vs)
+    {
+        if ( (vs =3D=3D v) || !vs->is_initialised )
+            continue;
+        if ( (vs->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) ||
+             mtrr_pat_not_equal(vs, v) )
+            return false;
+    }
+
+    return true;
+}
+
+static void hvm_set_uc_mode(struct domain *d, bool is_in_uc_mode)
+{
+    d->arch.hvm.is_in_uc_mode =3D is_in_uc_mode;
+    shadow_blow_tables_per_domain(d);
+}
+
+static void hvm_shadow_handle_cd(struct vcpu *v, unsigned long value)
+{
+    struct domain *d =3D v->domain;
+
+    if ( value & X86_CR0_CD )
+    {
+        /* Entering no fill cache mode. */
+        spin_lock(&d->arch.hvm.uc_lock);
+        v->arch.hvm.cache_mode =3D NO_FILL_CACHE_MODE;
+
+        if ( !d->arch.hvm.is_in_uc_mode )
+        {
+            domain_pause_nosync(d);
+
+            /* Flush physical caches. */
+            flush_all(FLUSH_CACHE_EVICT);
+            hvm_set_uc_mode(d, true);
+
+            domain_unpause(d);
+        }
+        spin_unlock(&d->arch.hvm.uc_lock);
+    }
+    else if ( !(value & X86_CR0_CD) &&
+              (v->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) )
+    {
+        /* Exit from no fill cache mode. */
+        spin_lock(&d->arch.hvm.uc_lock);
+        v->arch.hvm.cache_mode =3D NORMAL_CACHE_MODE;
+
+        if ( domain_exit_uc_mode(v) )
+            hvm_set_uc_mode(d, false);
+
+        spin_unlock(&d->arch.hvm.uc_lock);
+    }
+}
+
 static void cf_check vmx_handle_cd(struct vcpu *v, unsigned long value)
 {
     if ( !paging_mode_hap(v->domain) )
diff --git a/xen/arch/x86/include/asm/hvm/support.h b/xen/arch/x86/include/=
asm/hvm/support.h
index 2a7ba36af06f..9e9fa6295567 100644
--- a/xen/arch/x86/include/asm/hvm/support.h
+++ b/xen/arch/x86/include/asm/hvm/support.h
@@ -119,8 +119,6 @@ void hvm_rdtsc_intercept(struct cpu_user_regs *regs);
=20
 int __must_check hvm_handle_xsetbv(u32 index, u64 new_bv);
=20
-void hvm_shadow_handle_cd(struct vcpu *v, unsigned long value);
-
 /*
  * These functions all return X86EMUL return codes.  For hvm_set_*(), the
  * caller is responsible for injecting #GP[0] if X86EMUL_EXCEPTION is
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 15:05:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 15:05:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157665.1486378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHO1S-0007z1-2u; Fri, 07 Nov 2025 15:05:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157665.1486378; Fri, 07 Nov 2025 15:05: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 1vHO1R-0007ys-VY; Fri, 07 Nov 2025 15:05:05 +0000
Received: by outflank-mailman (input) for mailman id 1157665;
 Fri, 07 Nov 2025 15:05: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=qRNH=5P=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vHO1Q-0007Wa-UH
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 15:05:04 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 235932d9-bbeb-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 16:05:03 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AM9PR03MB7605.eurprd03.prod.outlook.com (2603:10a6:20b:419::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Fri, 7 Nov
 2025 15:05:00 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9298.010; Fri, 7 Nov 2025
 15:05:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 235932d9-bbeb-11f0-9d17-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eZU7OdoNyvhtAmfYIR6tkC6ZzRfysvZmsUe4PHlI93rBdlwmFv6LKjzo2Wk6utWybVYO+2CE19PCOCdza0LB9ZU9GFgDNCJ8pXA9Uwe+Sjpe5bZYkWiGLbMSNUHLLAf6EOpeFtJDapclU0g7Uhmtzc48IR0e2GEkVPcWowxYuzsaD9CBSyNtTxNDT7v8Fsey1dEZXe0KTEpCa2KFw3Tw/9SM2QGY/esqZcaLUC0xCEelFGExVUHj9dazMEQDazcVdLVtGWi0mJkVO8c2433Aw3Tt6ClZScfiw9Ckx+y8w1kBZZwRm983/oSHDNZUHEc8PPYeBvFrzu4/3P3WjISgNA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pgVfk4FXoNNmttOjLxewhjRJ89Pbkd84LjmcffM1nvg=;
 b=hb9DFirdVutGj2eSfnGkxIT4cIpseWv2+Jn2XiCRFObznNOwr+MHZapSEhGCXm8ESrDZF3bY1tYpOnW+bZtYgrl3mues8H4z/7CYV4MAgIWhJXL9i/pF+uvvVNIwb6ZMtQXTx4Z4+6Z4e7sh70e+2lsUmLsJ5UqMBxdXVfxmJ+60JUjgMybsAxv6g9w/BsluldkbhArVpu5I37OQBOt+zUGYlBmli8ih9ud9lyBdw/ePodtVsUg9Iiy+WANufrtBWpHtuddUDeieUS4yd1TUYEORF9tJFVovmhEvC7QlgwL0uU+W8ASFMNVq4ub3cWi35ALjS+eIIqVhKBA57rQfUw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pgVfk4FXoNNmttOjLxewhjRJ89Pbkd84LjmcffM1nvg=;
 b=dd8ikIcitqCHcp92ek/OzzzI9hgzYTlFLI3KIEtDPafK6580/mPbAPcSEVny6XlMiCkkS+s9rwquW4Wn52bGG5BwclLKvHyBpOY62w8OE4LAp/gBbU8Rtht9Tiii1MHZeoUGkiCJMrco89JzaJhhiarFQ62ypgVjMKBdJ+LwuCxtbRsBAbfuFm/1aBslbQGRTFhh24StNfKeFpdGopOxB0UPwK0NHyQCeXj3ncJeVeqiGp267QBg8VL4g5vS7NQ+eWY0nx3kHbHrU+/235wZLZzF9oHRC1O2jfQclpxsE5JCvcYrxYmJI7HTFj9QWyfxdto4lDKvHKh33Y4duSifjg==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: [XEN][PATCH v2 2/3] x86/hvm: vmx: account for SHADOW_PAGING when use
 hvm_shadow_handle_cd()
Thread-Topic: [XEN][PATCH v2 2/3] x86/hvm: vmx: account for SHADOW_PAGING when
 use hvm_shadow_handle_cd()
Thread-Index: AQHcT/fjhmbe8yBr3kSMWLJqeXgjQQ==
Date: Fri, 7 Nov 2025 15:05:00 +0000
Message-ID: <20251107150456.2965906-3-grygorii_strashko@epam.com>
References: <20251107150456.2965906-1-grygorii_strashko@epam.com>
In-Reply-To: <20251107150456.2965906-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB8907:EE_|AM9PR03MB7605:EE_
x-ms-office365-filtering-correlation-id: 6910e75e-7cf2-43b0-f84a-08de1e0f060f
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:
 =?iso-8859-1?Q?XzC8mEYbw91clCZbWK/9CyBUmG+JRJVujQLxhHzt25OEyPNnDHvCOXFbAf?=
 =?iso-8859-1?Q?so7C9m1U3uGX/kznXHHT9AVOajK1GA/mORemy0Cxj0gGbsraBYqPlhw4P7?=
 =?iso-8859-1?Q?BaKKSRx1u+byh8QCFLRUFgB3Siey4Q7tc/n9Wi7mPByGCGWcf4JRtQY5uG?=
 =?iso-8859-1?Q?qzayTS9SXxX0fzMTCx5JZnK/VP0JpCmqpKjN0KKuLKGrmJb3X3vPFw/dLp?=
 =?iso-8859-1?Q?KJCetc/KnYrvodG4QIvuG2Lk6HiUaiDrAf+NuX/eoANak9cgiFYJpgKc/5?=
 =?iso-8859-1?Q?ueI/51iMiwcTu0Pw9o/ODY4WMy5TVDu1WSDlK35jKw1F2+Zq8PI2F5cWCW?=
 =?iso-8859-1?Q?I9UM8eNSAc7ar8yZ76WzvuFsLN0kb5gR9lHbiQQR2LhplBvt3RCxrffbWQ?=
 =?iso-8859-1?Q?dilYhaq2cvAA3nue72YPXd/nEIsH20UskCKK0HsUGoWcViwt+my9axU9zY?=
 =?iso-8859-1?Q?jUIiC3sTCXvoh3DQVnGZ5UPgLgrg+QYrBMUErFgLntYqgKtdMFYag7JRRT?=
 =?iso-8859-1?Q?ZaIs4wOjMR04J84/4Ku3zdZJcrxvfrOurPn1x+sS5LGVwkedrF1/SV3K9D?=
 =?iso-8859-1?Q?9zHxY7viahDSxHWN0MzX7jjDPB1HFXT8iIGbJOImVF14xqNtlXu5uayJwq?=
 =?iso-8859-1?Q?ngVhsXwLRdSZnC+0irxOqDG7cPy9X7ZBXNz08oqpADqXObGPwzzx58eLvk?=
 =?iso-8859-1?Q?PAsQhbwnk6gOnL+hccnMTyAmUqvEm9vm0Ok86wp4ZeLV9yfSZe9m8fgR8c?=
 =?iso-8859-1?Q?UKZGilhewQ604U1S4QaX/Gstimkdvu+i29QgEr8KqFAQDAGQJvQeMAspGH?=
 =?iso-8859-1?Q?UtnQDVID0fEjjOxasuVY7CCda4+c0b7N9LUJoSpmddNiq+SV8DoWc60gTx?=
 =?iso-8859-1?Q?Fw/AHN01/lGOvDM38NUvCS2VxBV1HAF1L7lGJvNxzX9AeGo55C15/q5P5V?=
 =?iso-8859-1?Q?+6Xhwg0cVl9+fR46xd2RkPI8PCCJenT8AdKl8mU39j+OR4isQxq4IImNqt?=
 =?iso-8859-1?Q?dKW+SGTYVzlj5neCgbnBm8JeKr3GOXfPiS6OYIrLJE4J3+ScIEI9E9eWnN?=
 =?iso-8859-1?Q?lgYpekiJiCE+yUxDd1Aw7dvhfiQEMGUYIah8Sm2bBvBUre7oqw4NVgsx+R?=
 =?iso-8859-1?Q?r0GlClXyZHxFFUbpbUTxiQheryKrKYPjddcgP2dCLJyYysY7ekw0ycJfdY?=
 =?iso-8859-1?Q?VfC1lIiAJCa81i85v6GIjCavi8/Vr3gtFI0Fyvy05VPi2qlWdFTZ0m+QXx?=
 =?iso-8859-1?Q?RUYIRyBdbIBTfzXry4o49FNNJ4Ftq9ylOz8/sBVG9wfE6XsY1g9eob1xVH?=
 =?iso-8859-1?Q?ppjSOgqJyrAgzCsBOBayeFhynZ3IB+aF6tnEmLOyQhxFX+Q4vFEb2a8MCS?=
 =?iso-8859-1?Q?EuPcvf0AWOUJKhPpkjb5KzXQ+3A3lHZwAJnILe2v/GIj9Zdb2lV//HMSs2?=
 =?iso-8859-1?Q?DKdkS7gA9Z5NuzKDa04LIOjXcoxz9nshrrW+nAes9dW1dASucQKUL6FcC2?=
 =?iso-8859-1?Q?cFG8iQbp0Cn/q7x9StHtbptLcsWEX4xHrexIna4FYfDQVtdxXlqOGwUwZb?=
 =?iso-8859-1?Q?t9r4q7vaXV1qfLr41tnyVmfvpzp7?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?xBpM3rx9fMYrvLGEsBSmZB7YprYzZnd0/3sIt3Vd+D0bm3Qc0Bhj1rTIIM?=
 =?iso-8859-1?Q?l2Ottg6+bCp2Kp1pSi4kFZ5m2ZjVkENrMkGMFNkYp/cy0b6kmR1jrVPFvi?=
 =?iso-8859-1?Q?WxHxIeNkjSIJ6XhY0DhTkuAKLJsYlLqoBy2q6wsQeawZ6shrfE64MLSIXq?=
 =?iso-8859-1?Q?T1MkBDjzectQ2Tk3HgjgcSFNju/M41UinT99mF0VBSm8sfADZheocxtqAs?=
 =?iso-8859-1?Q?E951yjY/AyyT1Z4vGHfoSrDGS79LGskFiKjVhVX1AD7e44fA0IjWhEpE1k?=
 =?iso-8859-1?Q?bktFo8OF4Ke+khKAdxGXhJiiO0a2/xS6FjR0MojtisJK/1o7fU9PH5sg69?=
 =?iso-8859-1?Q?F+TuTPunGLBI6QRkLQF1FYL4ErC6mf0kYdF5FkAJiob4wRgzcAAklKybTS?=
 =?iso-8859-1?Q?8QZtO1UBvUGkjYy/igMKOiNtS1+pvGkJTImcGcudxakBGuXpGl0Ly8SYnW?=
 =?iso-8859-1?Q?69mylV8gI1ZYSs2yKlzGgtyrFjM4PqzlL3Sf/40whJ+MdlJ5ouGwl25CYf?=
 =?iso-8859-1?Q?J2X/YiUd0BODaUrc4N40/oATJlz/3xrzENz+nKOSoUd1YiufLphhAuiEgo?=
 =?iso-8859-1?Q?6/ruCs3jEfn0kZBkh6ras9wvjTqNXpbLKm/plQgpIclfCsH2eUXvBh1ADY?=
 =?iso-8859-1?Q?B27AKETUxaa9uIIbOrHlL02CUB84U+UQatBv3h5Pyt+KuI0GpJP3gX+v+Q?=
 =?iso-8859-1?Q?nLyTwVT/mowX245Q1N7RxdE2mar5STZwCfoY3ZGpUv1e++WR25/4uGJCIP?=
 =?iso-8859-1?Q?EnAROKSe63de5X7+qM307lf16WQWzxqbBkDIAy5fOEdsqlW6KwZnCNj61m?=
 =?iso-8859-1?Q?/Q19DJP42nn6r/9zXAXryOu9McxM0ukixHflIXV9fD7c27C8dKpi78F2D8?=
 =?iso-8859-1?Q?Uto4LB/aryw3p6dyWX5cvqoTgY0PPTHyKfsMFzSKWCqWLVhVI1Q6/1MX0a?=
 =?iso-8859-1?Q?kjt8wrqrJuvMhwTfNRu74f28DoY3TRXoKVvHgq5XgFLs7PxXOWer2B9Ukl?=
 =?iso-8859-1?Q?3usZBZLGwmrT0nGdV6vqDCuqIUxYxcax7tn8qZbpjCyT4/xQLWhkOXpkyJ?=
 =?iso-8859-1?Q?akJUe6enDlegx+4J6MyOf3/xRGQIr2ow35pHpFOt3SCR1MG+7x5shR9u/t?=
 =?iso-8859-1?Q?94L7McW19stQXzDBCP4qB4gp94bqLdWUDlXaQ8FMmdxsBiLECObQYT+fhu?=
 =?iso-8859-1?Q?323be9SMPuIZapz8e7kfs0fs0Y3SIRarlDI39WG2lAN+nsAh1LiDHvG7S6?=
 =?iso-8859-1?Q?yBA1PSaZjiRndlEIPnwzKIPp2qecRAO4e0uwMkSZHwpLPdx+wgl0Lkarfj?=
 =?iso-8859-1?Q?U3Etnb4kvCzICtOGpAL5ojAYQ508VIKvLmLKStx0JQjTZVVm+efxBeGhta?=
 =?iso-8859-1?Q?h7558IXQ3VWqVwY+xR/wvxx/w7oUff7LElPkRUOja5o0ZTUbNNNoUd32JL?=
 =?iso-8859-1?Q?a4ghe3Gy3i97S7gWVICu/6UKkKYjMTvU+RMErPamoE5eWMewvRUpEaRhjK?=
 =?iso-8859-1?Q?KAp/yzec0wqY0l8gQEeTEJRiIbevpOJg1NNL1EspXRNUMs63Kqjf51MRT6?=
 =?iso-8859-1?Q?+YA6ktlcMKpYkkPF3LvgUprpFYOdx119VQFag/CZCq9A/BDtH6mZ7YB4Bz?=
 =?iso-8859-1?Q?7ib32q09gQN3XBH0B042LOK3jl8MCY16jg1dsNH0MNIHkkcl6DVcUklg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6910e75e-7cf2-43b0-f84a-08de1e0f060f
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Nov 2025 15:05:00.7626
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: GGN+D6o6oXz8Pt4VTrjdqJTPvQEVS/Bo8KS9iRWvL8uX86aYVuLfe8FrOJ4U0Oy4z4Gh3+tH6r0lhpDzB5iMxplmaIRTzTZbBJvAhxpvahM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7605

From: Grygorii Strashko <grygorii_strashko@epam.com>

The hvm_shadow_handle_cd() can be used only with SHADOW_PAGING=3Dy, so guar=
d
hvm_shadow_handle_cd() call with paging_mode_shadow() which accounts for
SHADOW_PAGING state.

bloat-o-meter
 add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-290 (-290)

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
changes in v2:
- s/!paging_mode_hap()/paging_mode_shadow()

 xen/arch/x86/hvm/vmx/vmx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index d7efd0a73add..67861bc8bccf 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -1514,7 +1514,7 @@ static void hvm_shadow_handle_cd(struct vcpu *v, unsi=
gned long value)
=20
 static void cf_check vmx_handle_cd(struct vcpu *v, unsigned long value)
 {
-    if ( !paging_mode_hap(v->domain) )
+    if ( paging_mode_shadow(v->domain) )
     {
         /*
          * For shadow, 'load IA32_PAT' VM-entry control is 0, so it cannot
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 15:05:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 15:05:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157666.1486388 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHO1U-0008EZ-BN; Fri, 07 Nov 2025 15:05:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157666.1486388; Fri, 07 Nov 2025 15: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 1vHO1U-0008EO-7o; Fri, 07 Nov 2025 15:05:08 +0000
Received: by outflank-mailman (input) for mailman id 1157666;
 Fri, 07 Nov 2025 15: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=qRNH=5P=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vHO1R-0007Wa-UM
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 15:05:06 +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 238f2d42-bbeb-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 16:05:03 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AM9PR03MB7605.eurprd03.prod.outlook.com (2603:10a6:20b:419::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Fri, 7 Nov
 2025 15:05:01 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9298.010; Fri, 7 Nov 2025
 15:05: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: 238f2d42-bbeb-11f0-9d17-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zP2ELMR329gCGgI9wMOaFXtotby9FgtsYzAT14L+Fm3MNwJ4kx5jmqgoXszZjXyYw+b35gabecf9FiKYkyRPo4aP2n8+R3FJ0Ard4D+FuvBePb26huKby73/Xu771t2I6YRrtH+OxhZfKFJBFE0r2hru6z4uPD9QSGdTp1Z5u13yYJBMufuGRt5Dscog2wZcmSH9gqYLSP5e9AZAEIP+ZP5wQGu+iFzRMejp7WIqOCMJvT5j8N8FTxhwz0c4KV8kIvlQcKUk3FDAe2M+FDwVGE7TJMqHGUzTRwqpabOWLlsFUE32y1qqoPtZMBaP35mz/jOfORUy36bTq3iem9xGkQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jgSg04VTwELxGBtpkailCzDMtsJ8p2BN93jiaDfig1c=;
 b=s1pe0qGsl61SKJII9UI9+ECWJKvH3BejBHLKIFZvxsSK+MArYW0Q3hMT+4qhVcolwdNksxsaek4AZe7zKcuFo9PoqRUUw5L9U//rNWt95gp+M/3HKvFzrW2ctAiWBbFmiU//Guja6Z7IKTNSwUIFBXHRwvvNtOdeTtXkX/gdiYgIbLyQpRW6n0h5ehxUtch78qq8+tUqGD8/06J9gkJtNFsS6qDMol7SIw4etG+/HNIKFnyFkuX8Ij/+M718Q8XX81CrXrP3Ml+MDTIKYJyd6hVPc7EQG4LfKDIBOhp9z442h4U7Wltkp/nxxlLuyYhMLnXkCk8nsYoHpHjXQ+ANnA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jgSg04VTwELxGBtpkailCzDMtsJ8p2BN93jiaDfig1c=;
 b=I7djVyUos2vyi+uVB2CNaj6TUtfHEPbYwB8lgzjuzNxIknGXFy8czJqBZEXFbpr3qI3jY6682nglPulynzlI52TlwqSVXlcxlUSD7kneyuJ0TwiKX0IHrqWR3NYm8ynagkWMOOE+KPbIbG+zooO2ctW/Nlco+5k01mwOaafg+3QsNhk/lRXWJdqOLebg6KW/9R+jFXUs1CmhW5yZDgOMh2nU53UhgKlHmcSq5/3slEmKZsvoD40DvyrOndc0aRWT3LhcyoVlk3wr8kbF7ZHBfFfSYMCYXfu5BcHgqkD4M6XhxKn7rUbq+KUQZ7E8bHyjGPcSax6a2iyWf7mn9GEnaA==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Tim Deegan
	<tim@xen.org>, Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie
	<teddy.astie@vates.tech>
Subject: [XEN][PATCH v2 3/3] x86/hvm: vmx: refactor cache disable mode data
Thread-Topic: [XEN][PATCH v2 3/3] x86/hvm: vmx: refactor cache disable mode
 data
Thread-Index: AQHcT/fjyqxpZv5UYEyu+2eXf1BscA==
Date: Fri, 7 Nov 2025 15:05:01 +0000
Message-ID: <20251107150456.2965906-4-grygorii_strashko@epam.com>
References: <20251107150456.2965906-1-grygorii_strashko@epam.com>
In-Reply-To: <20251107150456.2965906-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB8907:EE_|AM9PR03MB7605:EE_
x-ms-office365-filtering-correlation-id: 65eba2bf-3ba1-41c5-3649-08de1e0f065c
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:
 =?iso-8859-1?Q?tKR8MNU+GmIzg/b9r7CL9rWLipJ0qgFCf0WvoWSPF/GYAbYna5JEuFXa5c?=
 =?iso-8859-1?Q?pp1KvTaVacsPailDIvr+jp81h4eUMli1hUQErQu4v5zUGY6JHGPfNueXrU?=
 =?iso-8859-1?Q?LNUAMa6DmNsha6azzD+5pAujUvcKT8UF0SWrkg92lqQdIo/ns1EeRen0la?=
 =?iso-8859-1?Q?qEcBzGx1avXFtDTKw3CdMEPl9tLy961P8DGlGJsL1zFrRzZu0+cdOfd5LA?=
 =?iso-8859-1?Q?8gIytuMcDNqJKzZ5L3EGoenvmFD5jSVQdLm8A/xUO6s/CW2b5t1IFhLjFb?=
 =?iso-8859-1?Q?FyYHAZXasKKaCxgVo+P9BwBzRSkwGLsFfHmTtGhSuLPhKu1a4kXvW5xom0?=
 =?iso-8859-1?Q?6DN1GsZ6QIFxiipVbAYldbAswBpphNJAdZbJwbioObC5oYoVPWPfyhDbWt?=
 =?iso-8859-1?Q?hs5vgT29tIwrtP1WMdITVATesib4kRMqfgP0BJBsdkY4g0WaEEdG3u5TPf?=
 =?iso-8859-1?Q?5qQMpbAHdVyWyQock7v8aT99Sxp6NqS0IHsYR/npwt1XIz8WohhcqJMxrk?=
 =?iso-8859-1?Q?OCULOKywv+fAWSRhEzltUFcCb6iVahuyZeWaLucpyxu1856sgrfuj6R2B3?=
 =?iso-8859-1?Q?QfOjxK7n47wZcCNQvGmUDySk1L0F6T45h8bWC328tSTxgNbiw6wBosxHcw?=
 =?iso-8859-1?Q?v1aB4kox6VvPUMn9Hg6UpXj5EMxjEZbmy8/Bp9ORo0OHrq5M7pah/9deeC?=
 =?iso-8859-1?Q?jEK1CTRUZfzZX/aVJ3WGnN4SOOOqFQYqaZYNuISo5ZPtL1aMqF7gFdCRQr?=
 =?iso-8859-1?Q?wenQkPn86knb+Gqjhn96K6LcOeWsFiJ4rsvw06sjMom04PrUk6fvY0dVQP?=
 =?iso-8859-1?Q?wcKFvGon2/IuIk/wNSz0Y6EgtOJupfDyVpzetn8z9kIVrbJacyxqCKyjmN?=
 =?iso-8859-1?Q?uktgv0+DbYUkbZAgRrnrDPAx6kqtTdyu16exTSQQeB8kqiU0BdweZeg8Xs?=
 =?iso-8859-1?Q?M2/w9kfaBkF1tX49iqOFhdG2c6O1W2h3g29X2gVVUCbd9o6EnLQ7ATXXF2?=
 =?iso-8859-1?Q?tb0xCAQMTiU/HYTdrFxp3N5aA8y/ipr+yu6hzh3I80mnUZudp5i+/e8opZ?=
 =?iso-8859-1?Q?T0jB22lb8Lnr3tEB79LT/SN5jiIBGires/Chg368yNYuNXfmy/ZE/fFHcL?=
 =?iso-8859-1?Q?dJgZYevu9qTnX1Ezs6KKQYQ9KRajNc+WmbY3nPwJpE5vRIjtDE2UgtT8iG?=
 =?iso-8859-1?Q?xmHn8hjXjwF9TOzKeEMdLz4HAudfXdbFyrdk4jp14XN3Rw6I43DjeX11xb?=
 =?iso-8859-1?Q?K/fBdEm5cbZqKKCBxLP19dCq2keR4RXESyOiL+kDFcZ95uUEv5Wf7k5ilh?=
 =?iso-8859-1?Q?XFEplF80ze0DcCgBzw+3Mi780G+dHWYrV0xm+F9n+aWg/7HMTW7IU2V0w2?=
 =?iso-8859-1?Q?3HWFRjG1SW1kZHjBvshNF9YT3nj0KkNb19JdM5ZZgMzByVC+qmIJ+hdvMk?=
 =?iso-8859-1?Q?uZBkPIZhs46u3I+2D1uQKY+3+cdMNTodc+oRYPeF23B4j2sNCBjscKLhLc?=
 =?iso-8859-1?Q?DNy7bQUJJJAg6Jb+DHN47dvtRsklcL9FhT5rHDjSHPvXqCU1k8KO4QVVVf?=
 =?iso-8859-1?Q?tjQXujx3XTMjO6wnlJUIwRwXNkf6?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?thv7xRbkl1rb333ajwXCR6FAt9AVU8vjB5EleMYhHhFnEjEy3vEOLjfNEX?=
 =?iso-8859-1?Q?4w8QunFVmIlfPfHSveWKSVXspIsOXOsfoKY3A0uC2k2sh8S0nBFWNeeJaI?=
 =?iso-8859-1?Q?IpLhmDeprxyhWNuRrmTRxsgQgRSx5nCspZUbOlNX+MaUV1fZtE3My5cq0S?=
 =?iso-8859-1?Q?W0WZ/FbVUvQJyaCAct4aZA72i6bFvsefI9bRHEoCS70kcE7EnTpI4XjEta?=
 =?iso-8859-1?Q?4R+36LOMWq23LtHr7xvwHEcQGHkrcOCuUrvAJRKU4Y6DbU+dHCAHCrHbyi?=
 =?iso-8859-1?Q?sl9/YFEen6KOE7efzf+V1X4t6UIJXWjJxWs+RULxGivhAlGR+Dt9LH1ceA?=
 =?iso-8859-1?Q?usc/NyHIElC55Yd/p9JodLAh+ggdMZxtlrGMEtQdC4P5duDp5B6PHBUIGJ?=
 =?iso-8859-1?Q?Ti9V3a1vVJSFPRRskv9hqHXn0L5SK19nmqOESHEPneovGwc3Unt+uzSlaH?=
 =?iso-8859-1?Q?Gazckb6bv7L4cRY7Vpx+ChoHvB84Et57Z+QW2tWy1Z2cU7Gu+w86HN67ak?=
 =?iso-8859-1?Q?2kp8JKVt3H0hTchJbaNFJfO5SjR0vg8Tluax7YYwg4LG2VaaaH2vYMCU+C?=
 =?iso-8859-1?Q?nYxEMy7TL4IjAHPuKy8I6S9ZLrZRu4jWfeyJXV+lUMgGOxqg06HXgK4fh4?=
 =?iso-8859-1?Q?6+L40Fcs1HuaTQ5Q6G/Agbr9ehq1KBfXT5/WCUvwOeVK/RXiq7psQImNqo?=
 =?iso-8859-1?Q?PwquaCDMs4hwwC6VOCvHWmYmt+j3+DM/lX4DzmThgoDZ0Wfle5Pu0L3Vtb?=
 =?iso-8859-1?Q?NmND1g/F//p/fTVYPrTGCrVYAOdpiqifHuUaTzVx8ZWVB0X5N6gd9948fx?=
 =?iso-8859-1?Q?buXJg0dBn8IGQcM35iDZ3zbTUCyvBP1BUFEi3HCm4tCqvuD5yizzcybyLU?=
 =?iso-8859-1?Q?ESQxH2uF+l7LI+Y7CaWD1jRuIlVDnLLlqe7sY0i1TKYPMJEzJq+KiGdnLp?=
 =?iso-8859-1?Q?br6l1PZFFM6VLXPK2SmZ/ttnBjBTSPQPcCSSVVY4/tZIV6Bu393RKHZHAf?=
 =?iso-8859-1?Q?ZfZOvslEW6JseJx8pKm9se45rjNJ2fMxW+AdXOny+hPBGJu3dw7bAjFtb8?=
 =?iso-8859-1?Q?v8Nm/ht2HNEmn1Fee/IAqQ/GKIZNxAMvQ8pimJfPzzvnXHlDZlbbaO8nf6?=
 =?iso-8859-1?Q?a39QVvT1ri4+yoepQw1LKIO97P2FsH+z9S7AZXl0kt+mwiGkPM1EAbGStW?=
 =?iso-8859-1?Q?mLEJwybV06qjLEgU/yavh4gsHx+Fs32Gx8ztD3t+3tBIC8rP/O2it+ig76?=
 =?iso-8859-1?Q?yrrtjaM07piRyEAMwCnfzQo2bku+hxeWXJ3Z24Z1xvLSS6TuZs2XXggSuN?=
 =?iso-8859-1?Q?KZhtX5RWdNSpj15bFUjk+jZU62wbTn9Sp/qlCmYZ0epFTL9mma9pcwIYxy?=
 =?iso-8859-1?Q?7fqbxGsQLjm24/NCb8rGbMAQiLDR4hUnK2Q+PwCEtLuIMgLrACrdtRRykK?=
 =?iso-8859-1?Q?bp1eVMQcAKX7makvsUh6+B3pS5PonbvSkRURWB6SBHCwpNgUZvZc72lAsk?=
 =?iso-8859-1?Q?7R9FVVWMU/jQAIf7ODVti7xLP4TNRATEKLY+BR0BPLUVHJiCe+ERGk7lR1?=
 =?iso-8859-1?Q?7efcO7zSHoH1zX5QzdWGojm3Rn+CXDaKhD/nmSOu822U0L8E+0j21quERl?=
 =?iso-8859-1?Q?7v7EjF7NtioWKIpxCjiOha0mXanl9wYeMlgsQraUVLI2KGR+e+LDrv9Q?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 65eba2bf-3ba1-41c5-3649-08de1e0f065c
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Nov 2025 15:05:01.2991
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 5zOJILz+Uft6dk4Om4hBSUEUhOSF+9trmQnRLkJ0LLPxwccfH+qztW24ENbSnkuDnLdgw1foDeMWy2jJ3/3kEuWQS3oOO2pDNt3oSloIkzo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7605

From: Grygorii Strashko <grygorii_strashko@epam.com>

The Cache Disable mode data is used only by VMX code, so move it from
common HVM structures into VMX specific structures:
- move "uc_lock", "is_in_uc_mode" fields from struct hvm_domain to struct
vmx_domain;
- move "cache_mode" field from struct hvm_vcpu to struct vmx_vcpu.

Hence, the "in_uc_mode" field is used directly in mm/shadow/multi.c
_sh_propagate(), introduce the hvm_is_in_uc_mode() macro to avoid direct
access to this field and account for INTEL_VMX configuration.

While here:
- rename "is_in_uc_mode" to "in_uc_mode"
- s/NORMAL_CACHE_MODE/CACHE_MODE_NORMAL
- s/NO_FILL_CACHE_MODE/CACHE_MODE_NO_FILL

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
changes in v2:
- s/is_in_uc_mode/in_uc_mode
- s/*_CACHE_MODE/CACHE_MODE_* and move them after "cache_mode"
- reorder uc_lock,in_uc_mode in struct vmx_domain
- move spin_lock_init()

 xen/arch/x86/hvm/hvm.c                  |  1 -
 xen/arch/x86/hvm/vmx/vmx.c              | 28 +++++++++++++------------
 xen/arch/x86/include/asm/hvm/domain.h   |  6 ------
 xen/arch/x86/include/asm/hvm/hvm.h      |  3 +++
 xen/arch/x86/include/asm/hvm/vcpu.h     |  3 ---
 xen/arch/x86/include/asm/hvm/vmx/vmcs.h | 13 ++++++++++++
 xen/arch/x86/include/asm/mtrr.h         |  3 ---
 xen/arch/x86/mm/shadow/multi.c          |  2 +-
 8 files changed, 32 insertions(+), 27 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 9caca93e5f56..c09fb2ba6873 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -608,7 +608,6 @@ int hvm_domain_initialise(struct domain *d,
     }
=20
     spin_lock_init(&d->arch.hvm.irq_lock);
-    spin_lock_init(&d->arch.hvm.uc_lock);
     spin_lock_init(&d->arch.hvm.write_map.lock);
     rwlock_init(&d->arch.hvm.mmcfg_lock);
     INIT_LIST_HEAD(&d->arch.hvm.write_map.list);
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 67861bc8bccf..12748298c10c 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -590,6 +590,8 @@ static int cf_check vmx_domain_initialise(struct domain=
 *d)
      */
     d->arch.hvm.vmx.exec_sp =3D is_hardware_domain(d) || opt_ept_exec_sp;
=20
+    spin_lock_init(&d->arch.hvm.vmx.uc_lock);
+
     if ( (rc =3D vmx_alloc_vlapic_mapping(d)) !=3D 0 )
         return rc;
=20
@@ -1431,7 +1433,7 @@ static void cf_check vmx_set_segment_register(
 static int cf_check vmx_set_guest_pat(struct vcpu *v, u64 gpat)
 {
     if ( !paging_mode_hap(v->domain) ||
-         unlikely(v->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) )
+         unlikely(v->arch.hvm.vmx.cache_mode =3D=3D CACHE_MODE_NO_FILL) )
         return 0;
=20
     vmx_vmcs_enter(v);
@@ -1443,7 +1445,7 @@ static int cf_check vmx_set_guest_pat(struct vcpu *v,=
 u64 gpat)
 static int cf_check vmx_get_guest_pat(struct vcpu *v, u64 *gpat)
 {
     if ( !paging_mode_hap(v->domain) ||
-         unlikely(v->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) )
+         unlikely(v->arch.hvm.vmx.cache_mode =3D=3D CACHE_MODE_NO_FILL) )
         return 0;
=20
     vmx_vmcs_enter(v);
@@ -1462,7 +1464,7 @@ static bool domain_exit_uc_mode(struct vcpu *v)
     {
         if ( (vs =3D=3D v) || !vs->is_initialised )
             continue;
-        if ( (vs->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) ||
+        if ( (vs->arch.hvm.vmx.cache_mode =3D=3D CACHE_MODE_NO_FILL) ||
              mtrr_pat_not_equal(vs, v) )
             return false;
     }
@@ -1472,7 +1474,7 @@ static bool domain_exit_uc_mode(struct vcpu *v)
=20
 static void hvm_set_uc_mode(struct domain *d, bool is_in_uc_mode)
 {
-    d->arch.hvm.is_in_uc_mode =3D is_in_uc_mode;
+    d->arch.hvm.vmx.in_uc_mode =3D is_in_uc_mode;
     shadow_blow_tables_per_domain(d);
 }
=20
@@ -1483,10 +1485,10 @@ static void hvm_shadow_handle_cd(struct vcpu *v, un=
signed long value)
     if ( value & X86_CR0_CD )
     {
         /* Entering no fill cache mode. */
-        spin_lock(&d->arch.hvm.uc_lock);
-        v->arch.hvm.cache_mode =3D NO_FILL_CACHE_MODE;
+        spin_lock(&d->arch.hvm.vmx.uc_lock);
+        v->arch.hvm.vmx.cache_mode =3D CACHE_MODE_NO_FILL;
=20
-        if ( !d->arch.hvm.is_in_uc_mode )
+        if ( !d->arch.hvm.vmx.in_uc_mode )
         {
             domain_pause_nosync(d);
=20
@@ -1499,16 +1501,16 @@ static void hvm_shadow_handle_cd(struct vcpu *v, un=
signed long value)
         spin_unlock(&d->arch.hvm.uc_lock);
     }
     else if ( !(value & X86_CR0_CD) &&
-              (v->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) )
+              (v->arch.hvm.vmx.cache_mode =3D=3D CACHE_MODE_NO_FILL) )
     {
         /* Exit from no fill cache mode. */
-        spin_lock(&d->arch.hvm.uc_lock);
-        v->arch.hvm.cache_mode =3D NORMAL_CACHE_MODE;
+        spin_lock(&d->arch.hvm.vmx.uc_lock);
+        v->arch.hvm.vmx.cache_mode =3D CACHE_MODE_NORMAL;
=20
         if ( domain_exit_uc_mode(v) )
             hvm_set_uc_mode(d, false);
=20
-        spin_unlock(&d->arch.hvm.uc_lock);
+        spin_unlock(&d->arch.hvm.vmx.uc_lock);
     }
 }
=20
@@ -1549,11 +1551,11 @@ static void cf_check vmx_handle_cd(struct vcpu *v, =
unsigned long value)
=20
             wbinvd();               /* flush possibly polluted cache */
             hvm_asid_flush_vcpu(v); /* invalidate memory type cached in TL=
B */
-            v->arch.hvm.cache_mode =3D NO_FILL_CACHE_MODE;
+            v->arch.hvm.vmx.cache_mode =3D CACHE_MODE_NO_FILL;
         }
         else
         {
-            v->arch.hvm.cache_mode =3D NORMAL_CACHE_MODE;
+            v->arch.hvm.vmx.cache_mode =3D CACHE_MODE_NORMAL;
             vmx_set_guest_pat(v, *pat);
             if ( !is_iommu_enabled(v->domain) || iommu_snoop )
                 vmx_clear_msr_intercept(v, MSR_IA32_CR_PAT, VMX_MSR_RW);
diff --git a/xen/arch/x86/include/asm/hvm/domain.h b/xen/arch/x86/include/a=
sm/hvm/domain.h
index 95d9336a28f0..83be2bd1c29c 100644
--- a/xen/arch/x86/include/asm/hvm/domain.h
+++ b/xen/arch/x86/include/asm/hvm/domain.h
@@ -97,12 +97,6 @@ struct hvm_domain {
     /* VRAM dirty support.  Protect with the domain paging lock. */
     struct sh_dirty_vram *dirty_vram;
=20
-    /* 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
-     */
-    spinlock_t             uc_lock;
-    bool                   is_in_uc_mode;
-
     bool                   is_s3_suspended;
=20
     /* Compatibility setting for a bug in x2APIC LDR */
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/=
hvm/hvm.h
index 20b373cea6fb..728b9624522f 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -394,6 +394,9 @@ static inline bool using_svm(void)
     return IS_ENABLED(CONFIG_AMD_SVM) && cpu_has_svm;
 }
=20
+#define hvm_is_in_uc_mode(d) \
+    (using_vmx() && (d)->arch.hvm.vmx.in_uc_mode)
+
 #ifdef CONFIG_HVM
=20
 #define hvm_get_guest_tsc(v) hvm_get_guest_tsc_fixed(v, 0)
diff --git a/xen/arch/x86/include/asm/hvm/vcpu.h b/xen/arch/x86/include/asm=
/hvm/vcpu.h
index 9ed9eaff3bc5..eae9ac53767b 100644
--- a/xen/arch/x86/include/asm/hvm/vcpu.h
+++ b/xen/arch/x86/include/asm/hvm/vcpu.h
@@ -168,9 +168,6 @@ struct hvm_vcpu {
=20
     u8                  evtchn_upcall_vector;
=20
-    /* Which cache mode is this VCPU in (CR0:CD/NW)? */
-    u8                  cache_mode;
-
     struct hvm_vcpu_io  hvm_io;
=20
     /* Pending hw/sw interrupt (.vector =3D -1 means nothing pending). */
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h b/xen/arch/x86/include=
/asm/hvm/vmx/vmcs.h
index 53aa9e3556d3..d28a2682e9df 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
@@ -46,6 +46,7 @@ struct ept_data {
=20
 #define _VMX_DOMAIN_PML_ENABLED    0
 #define VMX_DOMAIN_PML_ENABLED     (1ul << _VMX_DOMAIN_PML_ENABLED)
+
 struct vmx_domain {
     mfn_t apic_access_mfn;
     /* VMX_DOMAIN_* */
@@ -56,6 +57,13 @@ struct vmx_domain {
      * around CVE-2018-12207 as appropriate.
      */
     bool exec_sp;
+    /*
+     * If one of vcpus of this domain is in no_fill_mode or
+     * mtrr/pat between vcpus is not the same, set in_uc_mode.
+     * Protected by uc_lock.
+     */
+    bool in_uc_mode;
+    spinlock_t uc_lock;
 };
=20
 /*
@@ -158,6 +166,11 @@ struct vmx_vcpu {
=20
     uint8_t              lbr_flags;
=20
+    /* Which cache mode is this VCPU in (CR0:CD/NW)? */
+    uint8_t              cache_mode;
+#define CACHE_MODE_NORMAL  0
+#define CACHE_MODE_NO_FILL 2
+
     /* Bitmask of segments that we can't safely use in virtual 8086 mode *=
/
     uint16_t             vm86_segment_mask;
     /* Shadow CS, SS, DS, ES, FS, GS, TR while in virtual 8086 mode */
diff --git a/xen/arch/x86/include/asm/mtrr.h b/xen/arch/x86/include/asm/mtr=
r.h
index 25d442659df2..3a5b4f5b6eec 100644
--- a/xen/arch/x86/include/asm/mtrr.h
+++ b/xen/arch/x86/include/asm/mtrr.h
@@ -7,9 +7,6 @@
 #define MEMORY_NUM_TYPES     MTRR_NUM_TYPES
 #define NO_HARDCODE_MEM_TYPE MTRR_NUM_TYPES
=20
-#define NORMAL_CACHE_MODE          0
-#define NO_FILL_CACHE_MODE         2
-
 #define INVALID_MEM_TYPE X86_NUM_MT
=20
 /* In the Intel processor's MTRR interface, the MTRR type is always held i=
n
diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.=
c
index 7be9c180ec43..03be61e225c0 100644
--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -559,7 +559,7 @@ _sh_propagate(struct vcpu *v,
         if ( !mmio_mfn &&
              (type =3D hvm_get_mem_pinned_cacheattr(d, target_gfn, 0)) >=
=3D 0 )
             sflags |=3D pat_type_2_pte_flags(type);
-        else if ( d->arch.hvm.is_in_uc_mode )
+        else if ( hvm_is_in_uc_mode(d) )
             sflags |=3D pat_type_2_pte_flags(X86_MT_UC);
         else
             if ( iomem_access_permitted(d, mfn_x(target_mfn), mfn_x(target=
_mfn)) )
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 15:13:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 15:13:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157634.1486398 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHO9c-0002Th-BL; Fri, 07 Nov 2025 15:13:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157634.1486398; Fri, 07 Nov 2025 15:13: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 1vHO9c-0002Ta-8f; Fri, 07 Nov 2025 15:13:32 +0000
Received: by outflank-mailman (input) for mailman id 1157634;
 Fri, 07 Nov 2025 14:34: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=ijGK=5P=gmail.com=davidhildenbrandkernel@srs-se1.protection.inumbo.net>)
 id 1vHNXU-00034l-Ly
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 14:34:08 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d0b891b9-bbe6-11f0-980a-7dc792cee155;
 Fri, 07 Nov 2025 15:34:06 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-429c82bf86bso428001f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 07 Nov 2025 06:34:06 -0800 (PST)
Received: from ?IPV6:2003:d8:2f30:b00:cea9:dee:d607:41d?
 (p200300d82f300b00cea90deed607041d.dip0.t-ipconnect.de.
 [2003:d8:2f30:b00:cea9:dee:d607:41d])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42ac67845ccsm5465086f8f.36.2025.11.07.06.34.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 07 Nov 2025 06:34: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: d0b891b9-bbe6-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762526046; x=1763130846; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=U9gy2Et/tdx42KkCuY9tv69YTLaLyxM7iG0J3rCGUz8=;
        b=SVxfm8Us9O/Hl2XZVVBQ/NbJlHz9vYs3S2QXaHnswggcbccnDFykZbIMsboidUsMMa
         F1Ytv1Kd6qlmTjCjeEFeItuseoSWUVPRTmCUG2+XQbdIMq8V2Wlf5t1733vWa1QbS9oX
         5p91sdZyT5rDyd0ETH2CEgN2YfbVOJ+Wzf8UbTlKmY/ECkLb5fph9Cz/cEqSE0y+wpPk
         5hU0Vp1l1wKdVqLP7C3H8fXYxytge/Y51oEYIXBxxJifGq0/BXPQd6O9a+V1D4Kc/PvI
         Yc6kwqtwh4umw/cNPI+wqiXyoOWNd32YaLwrvaMyLYh/AYlT4S5OLOzsw6sQWBfYg+Is
         g59g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762526046; x=1763130846;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=U9gy2Et/tdx42KkCuY9tv69YTLaLyxM7iG0J3rCGUz8=;
        b=WPKTYcafxAT8AmkrAzOsJ1H0qjRAfv9hlg5vy0jjGQX2UDvLCS1ymiBjOkltSlxrTA
         2c5zR4eoP2uSd250n1BQ8y3eo8J6OPR+TdRbIJQPaEKyM0UxESKP8bGfjPtszMbWf0S6
         YP7Dz7WbusonYlU4kqCxQDzixJNCsWQcIdfXAMiIPNdi8dZwGG8H8c9Lq+kTvb/YWEXF
         nnlPFY/A500vloDpjDzaZTzr6OB/7ZHzCCUATuL3L8w2uevi69bO0y2BUWcJu5b5TntF
         SRyVpo5TIIAqCsvBArTqucGM8IGs/czyLHlCLjFWqoZdaLuHHoCJIh6Tkxv050Cl7wlC
         gpew==
X-Forwarded-Encrypted: i=1; AJvYcCXjINX7hZhaKGjbFLm8RwgeJnmeEu7kA4cKND3sXFEcDMNg4GPd2611daQ+ebuYnVAEQHsd1N9G4fE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzxh50Oy0d7V61J4I2p/AvHiA7eUGOSeBtnXwCxA2FeinUseMzA
	l9zUA4ekID+kukWpJlDCPb3nnnVKWy5d9OCecWbNktCI2Z84SYUrOQZx
X-Gm-Gg: ASbGncuCbZNb+20+icw6evCcTWc5iz60O1hXrSmNqpZOw5Q/vvw1LE3m1S+FTdCR/Vu
	uNDj4Ghrja6OVVgyDQPcOpTifPuihyD1lTZ4MVgt+f2E20eY+3amwYrIoct1U9mnW7QhN7xkzzQ
	5PRDsFWlaCytFab7kIcKfEhO/X9zKxazIXdHXjvZ1aqoTPziKoTzC21SXDZm/YAHiMpiFiylrgV
	blncrgYj/wDCzDx3wr2nWqSOUu1nlwOz98TPmbUsFfD4fNQQTbM5NQBt96INSAB5K+ua0j6TX7F
	Lt/nRsST3xW/dQYIDQ9/IikReP+SIMDBjm1UCtCF2t/fuDmDuoDZH92nXSKRt6x0y1HbMNHDTZr
	5zZVpC6BaBHefv4M16AdhHRNR2McB98or0nDLzPLFBQFBFuDZHL96lnwkAmeuX7S8SLkKievH58
	cxSbl9pg9MV58BNtdH6Tvi3qV7l4G8OwttPb+KxaJAHfa8KHRJC+m208hy+ItADXq+JxitB5re5
	uk2v++xw0GrHKazQ/zaIjVstkpiEAw=
X-Google-Smtp-Source: AGHT+IEbeI8C8CzNAXSH/bs89gWIf/ZmK+BLjDzXB4QFwcXH6hASOjwiIfYomA42vxdn493DYIICBw==
X-Received: by 2002:a05:6000:2084:b0:427:e1bf:13bd with SMTP id ffacd0b85a97d-42ae5adfd73mr3148986f8f.52.1762526045768;
        Fri, 07 Nov 2025 06:34:05 -0800 (PST)
Message-ID: <c764489e-0626-4a50-87b5-39e15d9db733@gmail.com>
Date: Fri, 7 Nov 2025 15:34:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 06/12] mm: introduce generic lazy_mmu helpers
To: Ryan Roberts <ryan.roberts@arm.com>, Kevin Brodsky
 <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-7-kevin.brodsky@arm.com>
 <71418b31-aedb-4600-9558-842515dd6c44@arm.com>
From: "David Hildenbrand (Red Hat)" <davidhildenbrandkernel@gmail.com>
Content-Language: en-US
In-Reply-To: <71418b31-aedb-4600-9558-842515dd6c44@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

>>   #ifndef pte_batch_hint
>> diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
>> index 5d2a876035d6..c49b029d3593 100644
>> --- a/mm/kasan/shadow.c
>> +++ b/mm/kasan/shadow.c
>> @@ -305,7 +305,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep, unsigned long addr,
>>   	pte_t pte;
>>   	int index;
>>   
>> -	arch_leave_lazy_mmu_mode();
>> +	lazy_mmu_mode_pause();
> 
> I wonder if there really are use cases that *require* pause/resume? I think
> these kasan cases could be correctly implemented using a new nest level instead?
> Are there cases where the effects really need to be immediate or do the effects
> just need to be visible when you get to where the resume is?
> 
> If the latter, that could just be turned into a nested disable (e.g. a flush).
> In this case, there is only 1 PTE write so no benefit, but I wonder if other
> cases may have more PTE writes that could then still be batched. It would be
> nice to simplify the API by removing pause/resume if we can?

It has clear semantics, clearer than some nest-disable IMHO.

Maybe you can elaborate how you would change ("simplify") the API in 
that regard? What would the API look like?


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 15:23:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 15:23:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157727.1486407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHOIp-0004Fk-5S; Fri, 07 Nov 2025 15:23:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157727.1486407; Fri, 07 Nov 2025 15:23: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 1vHOIp-0004Fd-2l; Fri, 07 Nov 2025 15:23:03 +0000
Received: by outflank-mailman (input) for mailman id 1157727;
 Fri, 07 Nov 2025 15: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=2Yjs=5P=arm.com=ryan.roberts@srs-se1.protection.inumbo.net>)
 id 1vHOIo-0004FX-BO
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 15:23:02 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id a5b3da9d-bbed-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 16:23: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 9C58F1515;
 Fri,  7 Nov 2025 07:22:52 -0800 (PST)
Received: from [10.57.86.134] (unknown [10.57.86.134])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C0C093F694;
 Fri,  7 Nov 2025 07:22: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: a5b3da9d-bbed-11f0-9d17-b5c5bf9af7f9
Message-ID: <645178fd-df4e-42fe-b55e-97d9506499be@arm.com>
Date: Fri, 7 Nov 2025 15:22:54 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 06/12] mm: introduce generic lazy_mmu helpers
Content-Language: en-GB
To: "David Hildenbrand (Red Hat)" <davidhildenbrandkernel@gmail.com>,
 Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-7-kevin.brodsky@arm.com>
 <71418b31-aedb-4600-9558-842515dd6c44@arm.com>
 <c764489e-0626-4a50-87b5-39e15d9db733@gmail.com>
From: Ryan Roberts <ryan.roberts@arm.com>
In-Reply-To: <c764489e-0626-4a50-87b5-39e15d9db733@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/11/2025 14:34, David Hildenbrand (Red Hat) wrote:
>>> Â  #ifndef pte_batch_hint
>>> diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
>>> index 5d2a876035d6..c49b029d3593 100644
>>> --- a/mm/kasan/shadow.c
>>> +++ b/mm/kasan/shadow.c
>>> @@ -305,7 +305,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep,
>>> unsigned long addr,
>>> Â Â Â Â Â  pte_t pte;
>>> Â Â Â Â Â  int index;
>>> Â  -Â Â Â  arch_leave_lazy_mmu_mode();
>>> +Â Â Â  lazy_mmu_mode_pause();
>>
>> I wonder if there really are use cases that *require* pause/resume? I think
>> these kasan cases could be correctly implemented using a new nest level instead?
>> Are there cases where the effects really need to be immediate or do the effects
>> just need to be visible when you get to where the resume is?
>>
>> If the latter, that could just be turned into a nested disable (e.g. a flush).
>> In this case, there is only 1 PTE write so no benefit, but I wonder if other
>> cases may have more PTE writes that could then still be batched. It would be
>> nice to simplify the API by removing pause/resume if we can?
> 
> It has clear semantics, clearer than some nest-disable IMHO.
> 
> Maybe you can elaborate how you would change ("simplify") the API in that
> regard? What would the API look like?

By simplify, I just meant can we remove lazy_mmu_mode_pause() and
lazy_mmu_mode_resume() ?


We currently have:

apply_to_page_range
  lazy_mmu_mode_enable()
    kasan_populate_vmalloc_pte()
      lazy_mmu_mode_pause()
      <code>
      lazy_mmu_mode_resume()
  lazy_mmu_mode_disable()

Where <code> is setting ptes. But if <code> doesn't need the effects to be
visible until lazy_mmu_mode_resume(), then you could replace the block with:

apply_to_page_range
  lazy_mmu_mode_enable()
    kasan_populate_vmalloc_pte()
      lazy_mmu_mode_enable()
      <code>
      lazy_mmu_mode_disable()
  lazy_mmu_mode_disable()

However, looking at this more closely, I'm not really clear on why we need *any*
special attention to lazy mmu inside of kasan_populate_vmalloc_pte() and
kasan_depopulate_vmalloc_pte().

I *think* that the original concern was that we were doing ptep_get(ptep) inside
of a lazy_mmu block? So we need to flush so that the getter returns the most
recent value? But given we have never written to that particular ptep while in
the lazy mmu block, there is surely no hazard in the first place?

apply_to_existing_page_range() will only call kasan_depopulate_vmalloc_pte()
once per pte, right? So given we read the ptep before writing it, there should
be no hazard? If so we can remove pause/resume.

Thanks,
Ryan



From xen-devel-bounces@lists.xenproject.org Fri Nov 07 15:29:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 15:29:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157739.1486418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHOOd-0004vS-Q0; Fri, 07 Nov 2025 15:29:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157739.1486418; Fri, 07 Nov 2025 15:29:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHOOd-0004vL-Mb; Fri, 07 Nov 2025 15:29:03 +0000
Received: by outflank-mailman (input) for mailman id 1157739;
 Fri, 07 Nov 2025 15:29: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=2Yjs=5P=arm.com=ryan.roberts@srs-se1.protection.inumbo.net>)
 id 1vHOOc-0004vF-5V
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 15:29:02 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 7b69bb1b-bbee-11f0-980a-7dc792cee155;
 Fri, 07 Nov 2025 16:28: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 55F981515;
 Fri,  7 Nov 2025 07:28:51 -0800 (PST)
Received: from [10.57.86.134] (unknown [10.57.86.134])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7C13D3F694;
 Fri,  7 Nov 2025 07: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: 7b69bb1b-bbee-11f0-980a-7dc792cee155
Message-ID: <06026ad7-fb85-4a78-ba70-7fa1f5bca0cd@arm.com>
Date: Fri, 7 Nov 2025 15:28:53 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/12] arm64: mm: replace TIF_LAZY_MMU with
 in_lazy_mmu_mode()
Content-Language: en-GB
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-9-kevin.brodsky@arm.com>
From: Ryan Roberts <ryan.roberts@arm.com>
In-Reply-To: <20251029100909.3381140-9-kevin.brodsky@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29/10/2025 10:09, Kevin Brodsky wrote:
> The generic lazy_mmu layer now tracks whether a task is in lazy MMU
> mode. As a result we no longer need a TIF flag for that purpose -
> let's use the new in_lazy_mmu_mode() helper instead.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
>  arch/arm64/include/asm/pgtable.h     | 16 +++-------------
>  arch/arm64/include/asm/thread_info.h |  3 +--
>  2 files changed, 4 insertions(+), 15 deletions(-)
> 
> diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
> index 535435248923..61ca88f94551 100644
> --- a/arch/arm64/include/asm/pgtable.h
> +++ b/arch/arm64/include/asm/pgtable.h
> @@ -62,30 +62,21 @@ static inline void emit_pte_barriers(void)
>  
>  static inline void queue_pte_barriers(void)
>  {
> -	unsigned long flags;
> -
>  	if (in_interrupt()) {
>  		emit_pte_barriers();
>  		return;
>  	}
>  
> -	flags = read_thread_flags();
> -
> -	if (flags & BIT(TIF_LAZY_MMU)) {
> -		/* Avoid the atomic op if already set. */
> -		if (!(flags & BIT(TIF_LAZY_MMU_PENDING)))
> -			set_thread_flag(TIF_LAZY_MMU_PENDING);
> -	} else {
> +	if (in_lazy_mmu_mode())
> +		test_and_set_thread_flag(TIF_LAZY_MMU_PENDING);

This removes the optimization to only do the atomic set operation if the bit is
not already set. I think that should remain.

> +	else
>  		emit_pte_barriers();
> -	}
>  }
>  
>  static inline void arch_enter_lazy_mmu_mode(void)
>  {
>  	if (in_interrupt())
>  		return;

Why are you keeping this test? Surely it can go?

> -
> -	set_thread_flag(TIF_LAZY_MMU);
>  }
>  
>  static inline void arch_flush_lazy_mmu_mode(void)
> @@ -103,7 +94,6 @@ static inline void arch_leave_lazy_mmu_mode(void)
>  		return;
>  
>  	arch_flush_lazy_mmu_mode();
> -	clear_thread_flag(TIF_LAZY_MMU);
>  }
>  
>  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
> diff --git a/arch/arm64/include/asm/thread_info.h b/arch/arm64/include/asm/thread_info.h
> index f241b8601ebd..4ff8da0767d9 100644
> --- a/arch/arm64/include/asm/thread_info.h
> +++ b/arch/arm64/include/asm/thread_info.h
> @@ -84,8 +84,7 @@ void arch_setup_new_exec(void);
>  #define TIF_SME_VL_INHERIT	28	/* Inherit SME vl_onexec across exec */
>  #define TIF_KERNEL_FPSTATE	29	/* Task is in a kernel mode FPSIMD section */
>  #define TIF_TSC_SIGSEGV		30	/* SIGSEGV on counter-timer access */
> -#define TIF_LAZY_MMU		31	/* Task in lazy mmu mode */
> -#define TIF_LAZY_MMU_PENDING	32	/* Ops pending for lazy mmu mode exit */
> +#define TIF_LAZY_MMU_PENDING	31	/* Ops pending for lazy mmu mode exit */
>  
>  #define _TIF_SIGPENDING		(1 << TIF_SIGPENDING)
>  #define _TIF_NEED_RESCHED	(1 << TIF_NEED_RESCHED)



From xen-devel-bounces@lists.xenproject.org Fri Nov 07 15:42:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 15:42:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157754.1486427 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHObs-0007oA-TT; Fri, 07 Nov 2025 15:42:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157754.1486427; Fri, 07 Nov 2025 15:42: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 1vHObs-0007o3-QO; Fri, 07 Nov 2025 15:42:44 +0000
Received: by outflank-mailman (input) for mailman id 1157754;
 Fri, 07 Nov 2025 15: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=2Yjs=5P=arm.com=ryan.roberts@srs-se1.protection.inumbo.net>)
 id 1vHObr-0007nx-2k
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 15:42:43 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 64b97bf3-bbf0-11f0-980a-7dc792cee155;
 Fri, 07 Nov 2025 16:42:40 +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 4B6271515;
 Fri,  7 Nov 2025 07:42:32 -0800 (PST)
Received: from [10.57.86.134] (unknown [10.57.86.134])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6F2A33F694;
 Fri,  7 Nov 2025 07:42: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: 64b97bf3-bbf0-11f0-980a-7dc792cee155
Message-ID: <8a38db66-4d1a-4296-a2dc-e0276c6cdde8@arm.com>
Date: Fri, 7 Nov 2025 15:42:34 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 12/12] mm: bail out of lazy_mmu_mode_* in interrupt
 context
Content-Language: en-GB
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-13-kevin.brodsky@arm.com>
From: Ryan Roberts <ryan.roberts@arm.com>
In-Reply-To: <20251029100909.3381140-13-kevin.brodsky@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29/10/2025 10:09, Kevin Brodsky wrote:
> The lazy MMU mode cannot be used in interrupt context. This is
> documented in <linux/pgtable.h>, but isn't consistently handled
> across architectures.
> 
> arm64 ensures that calls to lazy_mmu_mode_* have no effect in
> interrupt context, because such calls do occur in certain
> configurations - see commit b81c688426a9 ("arm64/mm: Disable barrier
> batching in interrupt contexts"). Other architectures do not check
> this situation, most likely because it hasn't occurred so far.
> 
> Both arm64 and x86/Xen also ensure that any lazy MMU optimisation is
> disabled while in interrupt mode (see queue_pte_barriers() and
> xen_get_lazy_mode() respectively).
> 
> Let's handle this in the new generic lazy_mmu layer, in the same
> fashion as arm64: bail out of lazy_mmu_mode_* if in_interrupt(), and
> have in_lazy_mmu_mode() return false to disable any optimisation.
> Also remove the arm64 handling that is now redundant; x86/Xen has
> its own internal tracking so it is left unchanged.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---
>  arch/arm64/include/asm/pgtable.h | 17 +----------------
>  include/linux/pgtable.h          | 16 ++++++++++++++--
>  include/linux/sched.h            |  3 +++
>  3 files changed, 18 insertions(+), 18 deletions(-)
> 
> diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
> index 61ca88f94551..96987a49e83b 100644
> --- a/arch/arm64/include/asm/pgtable.h
> +++ b/arch/arm64/include/asm/pgtable.h
> @@ -62,37 +62,22 @@ static inline void emit_pte_barriers(void)
>  
>  static inline void queue_pte_barriers(void)
>  {
> -	if (in_interrupt()) {
> -		emit_pte_barriers();
> -		return;
> -	}
> -
>  	if (in_lazy_mmu_mode())
>  		test_and_set_thread_flag(TIF_LAZY_MMU_PENDING);
>  	else
>  		emit_pte_barriers();
>  }
>  
> -static inline void arch_enter_lazy_mmu_mode(void)
> -{
> -	if (in_interrupt())
> -		return;
> -}
> +static inline void arch_enter_lazy_mmu_mode(void) {}
>  
>  static inline void arch_flush_lazy_mmu_mode(void)
>  {
> -	if (in_interrupt())
> -		return;
> -
>  	if (test_and_clear_thread_flag(TIF_LAZY_MMU_PENDING))
>  		emit_pte_barriers();
>  }
>  
>  static inline void arch_leave_lazy_mmu_mode(void)
>  {
> -	if (in_interrupt())
> -		return;
> -
>  	arch_flush_lazy_mmu_mode();
>  }

Ahh ok, by the time you get to the final state, I think a most of my
comments/concerns are solved. Certainly this now looks safe for the interrupt
case, whereas I think the intermediate state when you initially introduce
nesting is broken. So perhaps you want to look at how to rework it to prevent that.

Thanks,
Ryan


>  
> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
> index e6064e00b22d..e6069ce4ec83 100644
> --- a/include/linux/pgtable.h
> +++ b/include/linux/pgtable.h
> @@ -228,8 +228,8 @@ static inline int pmd_dirty(pmd_t pmd)
>   * of the lazy mode. So the implementation must assume preemption may be enabled
>   * and cpu migration is possible; it must take steps to be robust against this.
>   * (In practice, for user PTE updates, the appropriate page table lock(s) are
> - * held, but for kernel PTE updates, no lock is held). The mode cannot be used
> - * in interrupt context.
> + * held, but for kernel PTE updates, no lock is held). The mode is disabled
> + * in interrupt context and calls to the lazy_mmu API have no effect.
>   *
>   * The lazy MMU mode is enabled for a given block of code using:
>   *
> @@ -265,6 +265,9 @@ static inline void lazy_mmu_mode_enable(void)
>  {
>  	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>  
> +	if (in_interrupt())
> +		return;
> +
>  	VM_WARN_ON_ONCE(state->nesting_level == U8_MAX);
>  	/* enable() must not be called while paused */
>  	VM_WARN_ON(state->nesting_level > 0 && !state->active);
> @@ -279,6 +282,9 @@ static inline void lazy_mmu_mode_disable(void)
>  {
>  	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>  
> +	if (in_interrupt())
> +		return;
> +
>  	VM_WARN_ON_ONCE(state->nesting_level == 0);
>  	VM_WARN_ON(!state->active);
>  
> @@ -295,6 +301,9 @@ static inline void lazy_mmu_mode_pause(void)
>  {
>  	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>  
> +	if (in_interrupt())
> +		return;
> +
>  	VM_WARN_ON(state->nesting_level == 0 || !state->active);
>  
>  	state->active = false;
> @@ -305,6 +314,9 @@ static inline void lazy_mmu_mode_resume(void)
>  {
>  	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>  
> +	if (in_interrupt())
> +		return;
> +
>  	VM_WARN_ON(state->nesting_level == 0 || state->active);
>  
>  	state->active = true;
> diff --git a/include/linux/sched.h b/include/linux/sched.h
> index 11566d973f42..bb873016ffcf 100644
> --- a/include/linux/sched.h
> +++ b/include/linux/sched.h
> @@ -1731,6 +1731,9 @@ static inline char task_state_to_char(struct task_struct *tsk)
>  #ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>  static inline bool in_lazy_mmu_mode(void)
>  {
> +	if (in_interrupt())
> +		return false;
> +
>  	return current->lazy_mmu_state.active;
>  }
>  #else



From xen-devel-bounces@lists.xenproject.org Fri Nov 07 15:46:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 15:46:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157764.1486437 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHOf3-0008Lv-Aj; Fri, 07 Nov 2025 15:46:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157764.1486437; Fri, 07 Nov 2025 15: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 1vHOf3-0008Lo-8B; Fri, 07 Nov 2025 15:46:01 +0000
Received: by outflank-mailman (input) for mailman id 1157764;
 Fri, 07 Nov 2025 15:46: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=Ov7m=5P=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vHOf1-0008Lg-Qc
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 15:46:00 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dacdaec4-bbf0-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 16:45:58 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b64cdbb949cso169359566b.1
 for <xen-devel@lists.xenproject.org>; Fri, 07 Nov 2025 07:45:58 -0800 (PST)
Received: from ?IPV6:2003:e5:870e:1500:7795:3e8a:56c1:ae53?
 (p200300e5870e150077953e8a56c1ae53.dip0.t-ipconnect.de.
 [2003:e5:870e:1500:7795:3e8a:56c1:ae53])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b72bf9bdf15sm274044366b.62.2025.11.07.07.45.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 07 Nov 2025 07:45: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: dacdaec4-bbf0-11f0-9d17-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762530358; x=1763135158; 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=Bo8hOLP5wIkBbrnuws1pinQ4AYj9Sz8IvZxz60kmJmU=;
        b=LZa6EdZcyJOqcqp5LZvzgZo7AI1MqZAgmbKUgGu969KSqPPP0XmlEJLw3PxQyXgujs
         13F5Cv+A3fIZpdZztQ/8wPs68jzRBtFFdKGHWb5SkIu2cQbAxellA5a93PdS8702/SBi
         JuDSkLdgzunldDZPh20AdDx7XI6yUIXRi5u9PVNO/ATaQMOV/e/DjXeIRykmF80Gwhpi
         ZDuNP0dFMmTNkzlVGLq3dUwCRICU0GF9K7ZA1qKNqUrwSvIKn40cB9EkFf12vMUAy7wD
         lr5e6kMG9RXZJlALp8zKLKdrk/1jnPoo+URiCk/U3IFTpQOb4LN1m3XtLvJlvZ1XIP1b
         yOmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762530358; x=1763135158;
        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=Bo8hOLP5wIkBbrnuws1pinQ4AYj9Sz8IvZxz60kmJmU=;
        b=PLyhEo06/NvgUmc72jQVFjTB9nRASVIIoz46IawArlu1XfgjQ/u8APViOt92jrIWqU
         xrdVv43uULC9OErjVWG5y6mLi+Qvth2LeAdN/ANnsmf9tQcZuw5SP2lvq60G3MBe70FG
         lZuF7ZxulIb0qkHuABBef3C+GcS/0DF9d4tdY1vrewbUvew4BMNyaMJjIZdk7y33Lj/9
         FeJuC4WxlGk4wklfLSye/herMDwh+iuyg0Q52muM7rFSlRSuwGeN11ePsI3sChSLwJDu
         egxjDVLH9hIF2C6QOpbq6iArDJJ0BTg8EIPKwCLC9r+nkp6VweuCfnomvVCAhkMzCCCv
         1vhg==
X-Forwarded-Encrypted: i=1; AJvYcCWbL+UbXs4VNHf0lrUmyEXuB4vcsRFa8te+5+CYdMn62QqJMc4h5lzEtZhHBYfA98Tyq4TpiW9FRxQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwT0rO+uX8xvYtujTfpg1ZXna7BY2CFzeE5QhTPNbSUyE7656Mh
	8Tor1nWJ+xOpqk5WpfxliLsHGfqkTF+lO4xoP6IG22v3vUQ6f0JLS+CMI6rmKo/27RA=
X-Gm-Gg: ASbGncufiDsgfSLeT+q/UtV9jZ/2tA3nsfa203ftjwxUanw9MS22v+xTY1ktmFCJ54O
	1pZORMunpGkfyqqTFClytYUUXf/qVYDhc+zuhCnhm0sa0oAaPtVVkrpa/5foQwGn9VFub8Z7r/9
	s9RTMz+zWXYggVzm6H5VLyZNpxCxLwpHY/89mCL8UNJlwgh1CJDRBb5YGDF05CYWrJXaMrOoTIB
	pPhdq7DAyKZN0AT7JZzgsXLZmynqnUSIR8WtxpigfBt5XLGYQiY8qCJeJc9qbfez2aAtLk8mHrZ
	mDRy1+q22KRQj2Xez/mgrWX9Y0WuhkOddLoN5oJfq6lgqRs5LKrMAzrR884BzRdAUjb5Ckgt4Yt
	ZiX1QN+Bi5i3iS4Is9nXnNeQslvAm2Fsej6hJsKJDvaK5SKgTK1PcqSYxSsTb4+K0scFK+WYIOx
	Is/4SwSLkaXEIYcg+YT0Udnho/d3pWolw7g1kZ4qBR6kdonpUtlOnvQtwZGhxTTOwvPAi0rbHoK
	+7IGnFAFUfQ3cd1sheHLYS6M3CjrEYRamY6EaE=
X-Google-Smtp-Source: AGHT+IFuCx4lTV36ytxTOyAJ/RoowaLhIeY2jVZHeX87aG97vvwLOiA38P+znCtMJ8WqDnaM5A4vXg==
X-Received: by 2002:a17:907:6096:b0:b6d:4dc2:7be3 with SMTP id a640c23a62f3a-b72c08dc800mr387131266b.9.1762530357944;
        Fri, 07 Nov 2025 07:45:57 -0800 (PST)
Message-ID: <ed4971b3-49ea-4263-b225-80a643bca0c4@suse.com>
Date: Fri, 7 Nov 2025 16:45:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/12] x86/xen: simplify flush_lazy_mmu()
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-3-kevin.brodsky@arm.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20251029100909.3381140-3-kevin.brodsky@arm.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------2KDMQGlJELWzw0JdPjGXTYgs"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------2KDMQGlJELWzw0JdPjGXTYgs
Content-Type: multipart/mixed; boundary="------------knysrRNvahQGLFPAzdME9JNX";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org
Message-ID: <ed4971b3-49ea-4263-b225-80a643bca0c4@suse.com>
Subject: Re: [PATCH v4 02/12] x86/xen: simplify flush_lazy_mmu()
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-3-kevin.brodsky@arm.com>
In-Reply-To: <20251029100909.3381140-3-kevin.brodsky@arm.com>

--------------knysrRNvahQGLFPAzdME9JNX
Content-Type: multipart/mixed; boundary="------------0xpsCIW0ItmLiouLur0gOGNm"

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

T24gMjkuMTAuMjUgMTE6MDgsIEtldmluIEJyb2Rza3kgd3JvdGU6DQo+IGFyY2hfZmx1c2hf
bGF6eV9tbXVfbW9kZSgpIGlzIGNhbGxlZCB3aGVuIG91dHN0YW5kaW5nIGJhdGNoZWQNCj4g
cGd0YWJsZSBvcGVyYXRpb25zIG11c3QgYmUgY29tcGxldGVkIGltbWVkaWF0ZWx5LiBUaGVy
ZSBzaG91bGQNCj4gaG93ZXZlciBiZSBubyBuZWVkIHRvIGxlYXZlIGFuZCByZS1lbnRlciBs
YXp5IE1NVSBjb21wbGV0ZWx5LiBUaGUNCj4gb25seSBwYXJ0IG9mIHRoYXQgc2VxdWVuY2Ug
dGhhdCB3ZSByZWFsbHkgbmVlZCBpcyB4ZW5fbWNfZmx1c2goKTsNCj4gY2FsbCBpdCBkaXJl
Y3RseS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEtldmluIEJyb2Rza3kgPGtldmluLmJyb2Rz
a3lAYXJtLmNvbT4NCg0KUmV2aWV3ZWQtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNl
LmNvbT4NCg0KDQpKdWVyZ2VuDQo=
--------------0xpsCIW0ItmLiouLur0gOGNm
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-----

--------------0xpsCIW0ItmLiouLur0gOGNm--

--------------knysrRNvahQGLFPAzdME9JNX--

--------------2KDMQGlJELWzw0JdPjGXTYgs
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/Ey8FAmkOFDQFAwAAAAAACgkQsN6d1ii/Ey+9
7Qf/T56S47fDqEb7wrI6i48Xr9hbJbL1cOc88MTixDkHAfIu70HOLvfAW2G+G73cTTY/1IFY+cr+
wk6KhYqguuIbbFGh6hlD2neoBl0l4Fiujn0c9wTKQbJrDL6h8jDeODAFWmkuyd0Rtnawy6o+0tgP
OLmQ4vhbq2u58C6zzLGQWIz6csmJqnGTKYGIQZI/h7xUZhz/b/RzD8p5aTRMGfVraJlKwuNAsKmp
/f7DpPGGCI7nCZWglBlKRFiGM/bZFdt9rZRV30JAFzq5kyUL6Lp3Y0nGp91si4slpitgwPxEG3M6
oApGVoFTsieG0o5HaiDhf8c0R7g+2PiCjn5h6HxMIA==
=Eb3P
-----END PGP SIGNATURE-----

--------------2KDMQGlJELWzw0JdPjGXTYgs--


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 15:47:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 15:47:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157777.1486448 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHOgl-0000hF-RS; Fri, 07 Nov 2025 15:47:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157777.1486448; Fri, 07 Nov 2025 15:47:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHOgl-0000h8-NT; Fri, 07 Nov 2025 15:47:47 +0000
Received: by outflank-mailman (input) for mailman id 1157777;
 Fri, 07 Nov 2025 15:47:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qRNH=5P=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vHOgk-0000h2-SK
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 15:47:46 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1a067bd3-bbf1-11f0-980a-7dc792cee155;
 Fri, 07 Nov 2025 16:47:44 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by DB9PR03MB11025.eurprd03.prod.outlook.com (2603:10a6:10:5e0::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Fri, 7 Nov
 2025 15:47:42 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9298.010; Fri, 7 Nov 2025
 15:47:42 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1a067bd3-bbf1-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aPm0BwzFmqeLjFd0+QQxaCYD8IGtuQ5thNXGzLJxy7c3J5M01HrHdV/3cIlPHIpdnf2EbzJcCdZGEvqYqPPf6bKc112TQ7UkSIdaDOyhNHg9uvSEP5PLVlk8LwJbBrDRRA8iEUFOJwSaz0w/qRzDUzOk/mQRYMRjyUr8gY06fQRFTe/+YkFkUcOEmVYriLH1xEhJkLCIJF98E30SnOt0ty3sj7lttBSqBsuMQDDzchYzVDpygpLR5WvyET6RbND/C88zXtVdeWQmgMd8xN5DneVkbVO7FmasI1jx2goO109LF5wR3bUm29qD8ZLOvp9fDxVC+bg8nLggGqltwPtNPQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/wYgZ5ceYs3bI4jfU+7Qhn95e1/3T87DUOQUeA9mjhw=;
 b=Uke7G+gPib11Ayn3adzeXyIyRIwZNafm2neM4OAtUFbka6BrjUopwgII+N152JSg3n6Le4m+iNA2akcb4P+VUNl+1gE6cgT/A+EEYH/Eao3gJrtZJLqxPyzqEj4KcaZMqrvL7XZj0o0V6U/nArZ9qGqfiyCjbWL7WPpweHbyMatJ+qJ2zRdpcZ2tNthXY5UlDwJ4GXrlGTM+NCiWovoK9XVQQYuRzZ6NQAvU49Z3sluXic0zLer4ZIEglWUxr/UnjDu7CfbuKcA93JS00XGCM3dfTfQuyktfieQvHuUWvVoIvpuxAPIzUY7+HIo9o8dVx/iwk4XYYRyuvWTk0+n2rA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/wYgZ5ceYs3bI4jfU+7Qhn95e1/3T87DUOQUeA9mjhw=;
 b=u6ugHFJI7pWyqGMmogZ3N/D5hNHRZRj3NrvKWFPMHHi5ybpxIhWJUC5STfwUOtCGbPCxJYyKQga50MLgFHsmW1J51fLwxFndq1dibeKNeyij2+ygVea5yh4zuCwCp1sk4U64kNpqes4bABN9GsW9pSWek7RvtBk1td/TrR7pBgH3OVAdfDYoFe6TvfelPORUjDUtJxCW4oMw4uwoZvhXYBjiMGqGrjPZyWLREl6488QdLWJ+p5MO7GTlY4bZLxn/ghrfl0oic8iNcZLIisrNUSkwzNHFRRaZBEhPaU7g2Et9M+tViOnFb+U3OC/TbIj/CJDxm2iGudjtcZlGkSO3Cw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <acac87ba-5a5a-49d1-925a-8754f4a3179f@epam.com>
Date: Fri, 7 Nov 2025 17:47:40 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen: make VMTRACE support optional
To: Jan Beulich <jbeulich@suse.com>, 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>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Penny Zheng <Penny.Zheng@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251031212005.1338212-1-grygorii_strashko@epam.com>
 <b6337cb5-da85-492d-bba9-688e35695c46@suse.com>
 <e55f990a-1781-4651-a899-9d78bbbbdfd0@epam.com>
 <63525e6f-4e17-4155-87b2-47b9ac9ea474@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <63525e6f-4e17-4155-87b2-47b9ac9ea474@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0341.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:ea::16) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|DB9PR03MB11025:EE_
X-MS-Office365-Filtering-Correlation-Id: 7ffd12e0-2544-4d7e-ec16-08de1e14fcb2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VWlpemYrcTFxWWR5dVF0NUZIb3Q1bjNsRmNJMWE3d0ttQ0tyTUk0aFhhcTgv?=
 =?utf-8?B?Zm5yK3AyK3phWTdzOWxuTW04WnVhYWJqUjJzVVFyOHAxSU1YL2pwL1ZUVENE?=
 =?utf-8?B?QXBtZC9MU3o2b1BqN1RSVG90VE45dkwwcldNU3QxcmRUK2pJTFE3TnU1RkhG?=
 =?utf-8?B?NXkzN0Y4dS85MGdWTE9vbDZJaEIrWE4wTGROOHkxNHV0TUZmVVJnZ0F5NE1s?=
 =?utf-8?B?WE11RTR3S0Z2NWNyaWljQlJZa2lZUjg1UXFXOFpLaWxiU0dXRENlbUpWY1d5?=
 =?utf-8?B?eVp4SUJQT1NmcWxWRjVRU0djb1VxWkowOVpKZmFVenVKVk45anF6cnJwNnI4?=
 =?utf-8?B?U3Z0QTRkK1hWT1dFZGMvd0RPMGxoYUZqelFZOThyN3o2UUkvMUkrVXVraVMx?=
 =?utf-8?B?bUEwcDcyRUs5OXE2UmxQeFhDdTBYRGwxSXFPTy9jamlRRHRzN3Vzb3NoY0d0?=
 =?utf-8?B?ZUovQmcyM0lQOGdRWndTb05URlVETmozOVJRbDI1d3Jqbmp1amR2Wm1neTQ2?=
 =?utf-8?B?ZU1PbXVKcmMrd2ZhQTQ4SmdNRGVIZ2drL1B4S1hNaG0zVEN5SEtnbGxxY0FP?=
 =?utf-8?B?WnQvOXlEOUdPaWRvYWVZYUN2d3ZhNGxVdUFBQ1NLMzZoQTFlcnpCMDR1SnRy?=
 =?utf-8?B?UzNXSU4rZjhUZnlDY2hGQlUvSk1FVml3aWxMT3RlVjBRQktBSlUyRm5GcWlZ?=
 =?utf-8?B?d1c3ZmdkQlhXaytJZ2g4LzB3OWVxc0FONXNGK3JrUnpQcVYwQlJ1cFBIbVkv?=
 =?utf-8?B?clpGa1FCS2ZyLy91ZmlVVmpDTmIvTVEyK01rY2RRVU81YmhLY2xmWENqai8v?=
 =?utf-8?B?TXNHbDFBeVhid3Fjd3prMXFBeWdGcmxldUowNVBPcTQyM0NFSDR6aUMrRXFB?=
 =?utf-8?B?TmNGc3NqMGUxUnVWd1BQQVBWL28wSWZIaWlVSENhSjdkUDVvVGhlUmtUL21l?=
 =?utf-8?B?a0puZDJFcytXNjVFTlJsNXlPQTRIVFNxTmJ4YzlyNlFWdkcwVkxRbGY2S2RC?=
 =?utf-8?B?RlJUVmZXY0w2M1EzMkZvektmeDFSM1BTOEU1Y2VlcGhZNXkrTFhwKzkzZW1Y?=
 =?utf-8?B?ZFYwR2F4dFlZN1lYRGcyYjZ1QVB2clBTL1VjcU96M083MHVZcnpGTG5EbmNO?=
 =?utf-8?B?VjJhN3ZFWW9MbDhiN3ozQTkvY3ZZM1pPZmljZVVhb2psY1ExL2taL1lDMGI4?=
 =?utf-8?B?QzYxTDg0c0JjTFAxVUhUYUhnVk1aMmVRSis0WXJ1RVN0WnFXVWxsdUtSanI1?=
 =?utf-8?B?cnA0Ym1aeCtmQlVUaU5EL2FOWTg3Und1YXBaVVFYVzN1RURGdjhDRnB6WlNt?=
 =?utf-8?B?aXFMNlpOM01nekc2bCtCalJxRndrNG9xNmlmckRIOGNTTlY1cVZUMHQwaGIv?=
 =?utf-8?B?eWhrVzF6U25BOENLaUZpdUVpMGZNdmZFV2dBUGc5dVVRNU9ZdHk4eFI4eVBH?=
 =?utf-8?B?bDV4S1BPVkdIQ3ZzNmtWVkNqMVVDWUxaZldiL1BqbVN1aThaN04vc2lyT1NU?=
 =?utf-8?B?WExHZWk5ZXdYTGVkaEgzTXZiS0NQOS9VcUhpN0dReW1JSnhTSDF3U0FpMkNM?=
 =?utf-8?B?WDRyWjA1ZDkwR3A3VDJKRG5PR0N3VWFaTEwxRVZZYW5BZnhRZzR0VzJYQXkw?=
 =?utf-8?B?YXhTVG5neFdUUkFCc3RSWVFEUnk5dDBBNEdZWUJ2MnQrQitLRnlTbUFQQXR5?=
 =?utf-8?B?bTNGWWlVY3VyR3hkUVVjM3AxWk9BSmxvdHlvL2RkTXU3bFpNZDJBWkVSL0k4?=
 =?utf-8?B?czdWdUh1NnJUNHV6YWw0d1dKSFY2V25oMERuaEtHdExySmU2WEpmczRBNlRV?=
 =?utf-8?B?bmJLWnJwZUE3LzlQQVNjeS9WNGFjY0FNUFA2OXNhVHp3MzBHa3ZSOGxHZDl1?=
 =?utf-8?B?c2tXdmEzK24wTWZYWE85M05TTVI5cHZqUFRnVjB3MVZuOFNPeVVSNEQ0K0Yy?=
 =?utf-8?B?U2JJQzdjcXB6ODN0Q3RiQjAzQjk5VlU0clpnWkNYUlV3K25peFRkSS9Hd05h?=
 =?utf-8?B?MzBBT0NIMGt3PT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VUEvV01JbWlsSU8vVHJaNmVXaDVPZDlrVnloOEdvOGdWZWZ0VDQ5TS9xUkJM?=
 =?utf-8?B?M3ZraU1zVEhZc3VMa01DdlpCUitWTmlRVzkrK1BHWWNyOVd1Z3pOVGtqai9y?=
 =?utf-8?B?T0M0Q0IwR3BXTkZiUS9zSFFlSWcyVm5RNGFhVFRPWGpNa214ZlhGcnlZdkJL?=
 =?utf-8?B?ZFFXdVpzUWRKaTdJb2crdEhWanlKSERVKzlpNUlTNWZaWmZIbjY3THlCcG1K?=
 =?utf-8?B?VmRoeTdQaFFseEpOZHplUTZqaVM1Uyt1MFVwSFhZL1JjcW14Q2ZxRmtZUC95?=
 =?utf-8?B?OGVQdTllWlh3QTBXblo1T05TOWJPd2NxZ3VNTytMU1dYRTZYNVNNQ2k0TU5Q?=
 =?utf-8?B?OWxpTFdvTE1KNkttOW14R3pvQ0dJcHZWMnNLdHduK0pwdE9SUEJCbWFaQ1Rz?=
 =?utf-8?B?MmpScmNjNkRVSjk5ZnEwY0Q3TEpxU1RWcytmam5Mdkw2eGRXdll2ZGV6NU1L?=
 =?utf-8?B?ejJISVBjaGF0MW05WGxYeDY4cmtjM1Q1anZ2akhWV0lmd2RSdkkrTWpjVVBK?=
 =?utf-8?B?ZlpTQWNodDFlRjZWWTVBd1VtcFgxMVNHVng1L0xFQVFCTURwRFlWYVhWdVdh?=
 =?utf-8?B?ckRSM1dHZWhlM1RCTVNXa3N6VzdnWFhKYk1oNi9IUlI4QnRMR0RaYk1FUGRu?=
 =?utf-8?B?M1dFVlJHVTU2Vkg2Z3ZycEJ6WWtlQVNHcG9odW1pQitXalRUT3NNeEZzdzFX?=
 =?utf-8?B?MklOWWxZdWs1K090YnZ6VXA0b0QrMjJVaHdxYTBrUnd4K0t6a29LS0FVVEYy?=
 =?utf-8?B?K1EwQ01BN2hRRlNIMVJpTDNpalFkS1JLUDd6MHVSRCtsY2lQdGwzSCtIcWh5?=
 =?utf-8?B?dzVFbTMxUU1nWTdPWFJneFAzQkxWaXc5c0VzYzZIcGMzUC9nUEtMZlNweE83?=
 =?utf-8?B?bjRyUlE2amdrcTRhdkM2TGdkbzFQV3V5TnZVYUFYdEhZOG0zQm1SVW92QW9V?=
 =?utf-8?B?WTdpM1VhLzFac3BNbzdhTkI0K2EyU1hGZHdrZmk2QjRRVzMvQ0c2NHBFWGhD?=
 =?utf-8?B?S3diSCsyQTlGbWIwZ3pBb0x6d3NER0JpdVh2ZkhrSmwrYW11UXJXRDZ0Vld5?=
 =?utf-8?B?WDdMemh6MGl1LzlFS29mWWtwazJ3UXB6Q2lFU0hSUERneGs5SlBqdXNkZm55?=
 =?utf-8?B?UXdrYVNZRXRLenJnL3dqV3EzcmpNRHNBSENUTk5YNUJ4cHpsOGE3aTRDQU03?=
 =?utf-8?B?Yk16OTNjL2VhTmZDb01pTENLVHp4Wittc3llTDZaakxwemlqb2VpNWJ3YUhl?=
 =?utf-8?B?bzJ5WlQvK1g1a0VZUjdSWTF4djdXTWFZMjJFV01GbXV0R3JHaFVESjIvY0wz?=
 =?utf-8?B?M05sVnltSW5MTWVuQ2w2TDBJVkJ4U2ttc2RjWkZqa0g5blBieGxETWdPV0dT?=
 =?utf-8?B?RG1QZjNhQm1Lcm5yY2NyS1p2TGRMcUdxejFkY0dhald0aURtT3l0WG93TnRr?=
 =?utf-8?B?Rng5T0lwVG92T3FUSlNCTklXcmpZWWltM0MzLzNLSExLaE9naTFLZzdRS1VW?=
 =?utf-8?B?aEQ4R2g1bWZxTFdmVEUrM01HUnBYOUY5dzUvclRjc1VEQWgxRjdvNnVlVGxX?=
 =?utf-8?B?dkJINnM3ZWtnUFMvUnlTeW5rWW9PWjJNdU1VeklnVzZ1NXduTHpuSEhDYXhn?=
 =?utf-8?B?eEl1QU5BVHY1Rk5lYmdBbHN6NEcwNk9hMld6QnE1djYvQ3dadG5XaFJJNVRn?=
 =?utf-8?B?Rk1OQjNrMDBOSHM3UUlIV3NCaXViL0tlTGErOEdIclQyS21GZUJqMGdjOHBQ?=
 =?utf-8?B?M0JNM0pWMVJHbEhPenNFUVdObktYbHRHa2FUTU91eWN3QytITXdkL1JUSzRa?=
 =?utf-8?B?T0JZMDdLUW1KZ3ZVNWZHQzFuWXlPOEZMRkU5UnpnL29VT1RvRVhPOEtLVnhi?=
 =?utf-8?B?Qyt4anRSTTJQd3hWSVptSG0yanVjQ3FNT1h3OVJ5VWxybmFZcG5abThrallx?=
 =?utf-8?B?YXN1ODlodWVDTVdtRmljVEJBMzIrYmZqS210RWtsSm9BVnAzaEF2a3lseGo1?=
 =?utf-8?B?aEhMYlpJaTdWdDVuK1NZaFovQSs3RWg5QjkzdEFLYUxiVWp4WTIzK0xkaHZp?=
 =?utf-8?B?dUJsdm5qWW81U2x3VDVHRTNZeFpQaVRWZ1Z3ZnE0RTY1Rzd5b01uYnQyeFdS?=
 =?utf-8?B?bElTa3lnZHBzc0J2TFpTR2Fnbm4vMFMzUEFZSFBUcFh5WHlEb2wwSHRuNXVC?=
 =?utf-8?B?N1E9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7ffd12e0-2544-4d7e-ec16-08de1e14fcb2
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2025 15:47:42.2304
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: pU6//0PzLW1VH0dXG1eRSPZYERL9Mp1mBBnQNsuuCmhFybhR2A+hmCxZOljihNRC0L+m/wtR8F/bdxWANlgpZGbwWC/MltrgGXhAYuDckRA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB11025

Hi

On 06.11.25 16:09, Jan Beulich wrote:
> On 06.11.2025 14:50, Grygorii Strashko wrote:
>> On 06.11.25 14:00, Jan Beulich wrote:
>>> On 31.10.2025 22:20, Grygorii Strashko wrote:
>>>> --- a/xen/Kconfig.debug
>>>> +++ b/xen/Kconfig.debug
>>>> @@ -155,4 +155,19 @@ config DEBUG_INFO
>>>>    	  "make install-xen" for installing xen.efi, stripping needs to be
>>>>    	  done outside the Xen build environment).
>>>>    
>>>> +config HAS_VMTRACE
>>>> +    bool
>>>> +
>>>> +config VMTRACE
>>>> +    bool "HW VM tracing support"
>>>> +    depends on HAS_VMTRACE
>>>> +    default y
>>>> +    help
>>>> +      Enables HW VM tracing support which allows to configure HW processor
>>>> +      features (vmtrace_op) to enable capturing information about software
>>>> +      execution using dedicated hardware facilities with minimal interference
>>>> +      to the software being traced. The trace date can be retrieved using buffer
>>>
>>> Nit: s/date/data/
>>>
>>>> +      shared between Xen and domain
>>>> +      (see XENMEM_acquire_resource(XENMEM_resource_vmtrace_buf)).
>>>> +
>>>
>>> I was actually meaning to ask that "VMX only" should somehow be mentioned here,
>>> but then I noticed this is an arch-independent location.
>>
>> Right, Arch code advertise VMTRACE support with HAS_VMTRACE.
>> In this particular case:
>> config INTEL_VMX
>> ...
>> 	select HAS_VMTRACE
>>
>>
>>> I'm not quite sure we want it like this (just yet).
>>
>> ?
> 
> To rephrase the question: Are we expecting anything other than VMX to support
> VMTRACE any time soon?
> 

That's I do not know.

I assume your point is similar to what Teddy noted [1].

I think vmtrace code can be consolidate, but question is on what level(s):

only:
  xen/arch/x86/hvm/vmx/
  |- vmtrace.c

or:
  xen/arch/x86/hvm
  |- vmtrace.c
     <- vmtrace_alloc/free_buffer(), acquire_vmtrace_buf(), do_vmtrace_op()
  xen/arch/x86/hvm/vmx/
  |- vmtrace.c

it will require more work comparing to the current change.

[1] https://patchwork.kernel.org/comment/26637627/

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Fri Nov 07 18:18:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 18:18:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157831.1486457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHR1t-00025Z-HW; Fri, 07 Nov 2025 18:17:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157831.1486457; Fri, 07 Nov 2025 18:17: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 1vHR1t-00025S-Er; Fri, 07 Nov 2025 18:17:45 +0000
Received: by outflank-mailman (input) for mailman id 1157831;
 Fri, 07 Nov 2025 18:17: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=qRNH=5P=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vHR1s-000253-GC
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 18:17:44 +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 0d652d83-bc06-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 19:17:43 +0100 (CET)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by DBBPR03MB10293.eurprd03.prod.outlook.com
 (2603:10a6:10:535::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.16; Fri, 7 Nov
 2025 18:17:41 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%6]) with mapi id 15.20.9298.007; Fri, 7 Nov 2025
 18:17:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0d652d83-bc06-11f0-9d17-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VY9F3BW7lTwS29qXDLRTXrKHpzAVrRifISpIRpkn+if5yaZc5InePKg1WZhDyA6t7GZdcWMv+oILSCggDhSlByVgTg8hwC/b533QY6O9x9kTWGG2AXuI9PG61KFG0qIYpGV5UTDHAoOdz7tkgv2CofpSaW7Olkw78e1PehGGvBC/yZj4hJPEdysm2bb4zXyyn+s2axnO28T8NsCQc1gERMEPmbUJClk4AJc2uz0ulbnEer2CYwrRSTSovUAv1D3hYRGVVseSBCJUXM+T9RVLuCeCNsyKsisptJDHq1l/pCykrhQ0qaxtAQueYbkGnRfdNj6UNuBYC7PgjTgyFN5fog==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AD/9dVOEMVFu1MKExFT7CnKSb3AtEHaiYuNxtfykA74=;
 b=dNwYrWgLfxxcxkONAJh2Ts+U200oXf7w9j30YH0KzDAww3Eyg8P2IJefVf5Ns+EpWHCqEh9VFWWpKa4OBm0CcnCjzQlNG5xPkK4HQvgLDezYp0xJtbPY3Vk7HYVc++5EbqTpyd4XjAT85vb5T5uLL/LVYAVK0vkEX2NSpbtmSiCOZ0ETWfHzUGKOsa97lVBaEAGF9z8e+ZvgBbkQRANuEXCDr7OtCmR9w6VVpTHFYW2FhrCZ8Hzq5yF49Y56xyuKU0gYuhjPjJ5hQphKwylaq53+vR9o5GflHwgVxGY+/A9714AiSEVMyIDSY7Fwv3+S8zFaJAzNDoEY4ZDwj3w4IQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AD/9dVOEMVFu1MKExFT7CnKSb3AtEHaiYuNxtfykA74=;
 b=ITFhWRviWwUD25iEjkoqI5OG7j1hfVtYcbSHX/5rnUz6L3oT5/aZb6gb8/POjOniPNbSUahVu8rKKAbVIfH+xmqRSdPya2IfkAm67UykZAnkyjc6x9irxB7AJZXjDSHwKak6F9s14QddgMkDm2PdXBpqFFzCeqFwQXQSa/ykHoI3KB1I19e1ylPVLdEkKcsOl4+psZtEQqYfQ1HW9pLeSMwrzeC2qwzDM7PWFT31CWcqVohjl+e9R9Zekn3wZVkNArM5jRZOjm6UsXP14uGBc8Nb1720wNW+KE+ksSvg78O1wF2oOofvSJzb0s4pFw9n4g0hNilpdC0nZrbP+MK59g==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: [XEN][PATCH v3] xen/x86: guest_access: optimize raw_x_guest() for PV
 and HVM combinations
Thread-Topic: [XEN][PATCH v3] xen/x86: guest_access: optimize raw_x_guest()
 for PV and HVM combinations
Thread-Index: AQHcUBLN3SGq8p5NMUWAtm58KOFfGg==
Date: Fri, 7 Nov 2025 18:17:40 +0000
Message-ID: <20251107181739.3034098-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB3PR0302MB8919:EE_|DBBPR03MB10293:EE_
x-ms-office365-filtering-correlation-id: a6596213-e362-42d0-8926-08de1e29f05f
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:
 =?iso-8859-1?Q?HU5CFNaH85dI16XrziNwm/faT8IkbZBcCzfT47X8EOekhfYPNSUVNi2dbE?=
 =?iso-8859-1?Q?fXAVSKWbkLmRw2UTiJVgVd38ZePoYgeduxzzpQtrllTtNBGfFmllNo0uf4?=
 =?iso-8859-1?Q?3NPiRooyyiUhf/92IPBvgwYZzTrjLLQ8oS7ttyO7fMh04uSgU33FYJlJ/h?=
 =?iso-8859-1?Q?Xqu40CMiaS7iezATJ4IhAhFbuJW61CLn4OUyJNsek5E3PGKqg2JB7v0+au?=
 =?iso-8859-1?Q?zGm6nBtcvQrkbg0bJeX9tHrxy36ZuCSJDOMy1VZBf+WLJmfVejkjNHz17d?=
 =?iso-8859-1?Q?uWMtrTDZ+HsnyDxCGtZrH35Mo5TCgBCCoRgABB+BDvzmaWFkRtr1XGL1zm?=
 =?iso-8859-1?Q?5lXDdEfHO1fA26GUuBCBpeThUQ2FKwZiMyi0aw6flrDnJxiLub6RX2NFDJ?=
 =?iso-8859-1?Q?E5kHmVsOBdIWgG9hZ6R2tyBFW4G8T86jUxF9FIeI6cMTZWx4jNoJMBusL/?=
 =?iso-8859-1?Q?R7uuGuGyJmezz+MPMYHHsLyiKHXhdKNkeO55HCBmcUlJ+Vp7o/0dsb9b0w?=
 =?iso-8859-1?Q?xjOdjHEQ7jxTIryvwhtCazS3zhj2KXkcZKnNfFuvgEM3ZYD5WO8+6KTHwG?=
 =?iso-8859-1?Q?GhNO+25oDhZ0FrL/ixJmWI0QhZxbl1u5ZpyQkx2xSKPX7QEhaH7d5FcDuM?=
 =?iso-8859-1?Q?7Dmm7Hp9W8GEixiqJrbWBDq25eKgODoOqSHQxraKvR7ZgGPodD7d/N7fsP?=
 =?iso-8859-1?Q?8plKtv+WGKfI9VwwQvvxrRcKaBkMw0xL31E5G5exW6X8hM8GUenkLCnHtM?=
 =?iso-8859-1?Q?RObjB7Pv2KY94Gbgg3QYMea7WW5/Dqshs23Ra7CKYQvt+3vozCQDEYZkOe?=
 =?iso-8859-1?Q?EhfZrjlJrQvvCjH5zaL7ZQgqqrpZoGRgYlPeU+KHgwnf/HxBJuYUen4UUx?=
 =?iso-8859-1?Q?V4OmGXOG5cC7CPtclmmcxIzNtyfGUD3YQBXWHHdUlkQnDuBhAvR05KSydR?=
 =?iso-8859-1?Q?sm76Lsxz52xS7pNBh2e+exKqv3lrBz5+3IfFicpDQm+KhZHE/7g5M7y5+u?=
 =?iso-8859-1?Q?5LMKUX+ECclZAqS1b7o2b84kG17mPxjgOJHy0w2NEUzoCPPDDrFdTztCNe?=
 =?iso-8859-1?Q?BtPC/J7FMEIyXIcNPj79mW05GjP6tnx4MkMCXbEdD3HEdZRiSDyoCOeyrV?=
 =?iso-8859-1?Q?iPqHLjGOA/kaNYro/PLy0HROPbgP6PhEFn90mOCPo7GEDkvhJ9B05EAkem?=
 =?iso-8859-1?Q?SxEDQ2c8+rWVg3qVVuFQD7ttzA6NqXQHlHeMqjifJ+URduDD+lgJwbwOB1?=
 =?iso-8859-1?Q?vZ0hkV7DW49tXRSLUT1Te0U67yWzkI4nvhUTgK8GGom7rAzoYPx3HLJe7g?=
 =?iso-8859-1?Q?GUjz1pC6cNljKy6L/eoAbUWJRNbz3h5qOweFutmLPU/1/TrCdlCl5pHNYK?=
 =?iso-8859-1?Q?Uwxcw3+bNEhQ3ImFbqVLFX98rjbX/kNlRckfUJxcvPKVGz601VLoz9G/n/?=
 =?iso-8859-1?Q?LU6eBjwrjXYMqBKEpXShF5ExoNYI2PG/7mDD6Vtfx+ji9ntbmtzsghYT8d?=
 =?iso-8859-1?Q?OxNN0i9JjFx8pMIXKl4ch1wyh6J+bffXA8V2JniBjRg9EGrJue+Ld2nZV7?=
 =?iso-8859-1?Q?6MkMqHOlhTjIaHGPkDotkixpmr3e?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?6fXoxgD333C/qBabBr425Zkq5Ft1S47qeH/rRsXVoJLA4Y/c2USkQbSoNx?=
 =?iso-8859-1?Q?lcS+2IU8rO/2vCCMYgK7OwLGVrhcI/eehu1qm2u2UVMZNQJHQBfMTBCKVe?=
 =?iso-8859-1?Q?oM+pX7kNThWQUI28RUxgeTgXksXiVUn4FEzO2LmtrGe4yWvR6n6NjdyMWq?=
 =?iso-8859-1?Q?4jnJptJYVOiH4rfJx0qdkWwlGX83vlEaZjgpVeI5gHjIMu+8eZEPp7Vl84?=
 =?iso-8859-1?Q?lHJMT3XCpiTV8YDLXPzcLXXUbHcByLw3AwxLxrevG4vKO5zs4y8/tumBmO?=
 =?iso-8859-1?Q?LhlaJ+suys/QZMr4QxS1p+EtZEB5kWzjDKJTqhAFGYIn7+5Z8OSHx0tDA2?=
 =?iso-8859-1?Q?TOELMy4gr7CzYkqXYoQE90Lac5358QKq4JbbomU9paKytE42xC8ZljdjUo?=
 =?iso-8859-1?Q?w7g8h5JIniglXY7H268PKpeu8uTS9p4n6L7jXDpoZMv4NQMoC5pv/1fP3I?=
 =?iso-8859-1?Q?z040/1jLW9VcmAX0r/0fnpaRPvoWQFNM2uk0NpAI+UNXWMaYkQQ8X4B+Rd?=
 =?iso-8859-1?Q?z5z7QeQZee5WxmFXulZfvQ+/kLkgnl1CokS9HVL094LdaevKvDnJafazur?=
 =?iso-8859-1?Q?vklCz5wvo0IfDmErdtCB1xcfwW057aJ2DBFM772Ql2LlWGO7pZwzyENTQg?=
 =?iso-8859-1?Q?Kx+2VcPYeeEv0mPzGHOaAhHRVpjZUzTuTmRRAAYh5DB6Y8LG3PrMo5aD7T?=
 =?iso-8859-1?Q?QE+A0tWtsSUA2EucdSqCWlovFNWNrkU1PnRwUNTW8EE78VNirjb2XYcN9T?=
 =?iso-8859-1?Q?2PhVeyd+uD56aeakR0vI/MbY6D9vv7J8stB8zoULOJhrbMZPUKqLQMuNmD?=
 =?iso-8859-1?Q?wOAywNWmWxP5ZKvj64m6z/HKFgHkwspsFg3vm7CWBqUwdqXOq4EGE64oFB?=
 =?iso-8859-1?Q?OXWGim5Ny7rn9oZ9ySugCH5FMKeEWtH4BgBOGKfUUYJvcz7Rd6ymSbL3bT?=
 =?iso-8859-1?Q?4vAHK7rsj7XWvjfJN4FHRaXshgGkD0Ji0xNxnsbFPXhUmo6ZSLss1Apj8m?=
 =?iso-8859-1?Q?1gGtl+YIC2viTzvYqtVN+EDETFQo9icSGEdXvkgCDEcNIUTSyAUumoqfqS?=
 =?iso-8859-1?Q?U8VvD8NjtDqGygPCySPhNQEGfF47PfFBVEEGYh35GvXNuYa0ADHwUSg8Jg?=
 =?iso-8859-1?Q?BgxAsIsNCseFUnHHLxNvmCRV9APvhkt/+PIz1dZDU1jWSte8/rr9/HgK+f?=
 =?iso-8859-1?Q?9J61KOCYZHvfJwV5SVPOR/+vLbPTgpwz57SNHj2X9cmVqNKhWccX3MADDs?=
 =?iso-8859-1?Q?2lYENVV6N+T1sbW1ap6vZMYpcY6wr0kOQFQ6xA4XRpnBudXQw4dklzOMVK?=
 =?iso-8859-1?Q?vTmrS6f7TyC/gCE+YPhBtgpI9lqjyDUC9LaS8FZnQCf3qjDAfUPulM71Z3?=
 =?iso-8859-1?Q?nVq01dLivFTvQ0RkwDX+6OPjjRPj5TGo48zNyai2CWBqEue1mUmalwc7hc?=
 =?iso-8859-1?Q?G8As15oOT9BxC4eXcPldKxjEgMfH9p1agEaol7DYEIZxa18bs8Pl1xeOS6?=
 =?iso-8859-1?Q?vu5+dxEk37E1H7ui5E6HUHCnqx96Lk4pRV9S6dJhyykOxCGAi0fHzyvyXd?=
 =?iso-8859-1?Q?Z5xvnRjVTZKT4LniIPeLFkO9l3HfbOINBTn6KEQt3ZfyKmxx5Qgmz8sHtP?=
 =?iso-8859-1?Q?leTTObgmNCJc7dxyI+KIvifn0QD6wdYNMG68dbiXlYIcnEw+HmjUDRUg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a6596213-e362-42d0-8926-08de1e29f05f
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Nov 2025 18:17:40.8175
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: /1lVy2eyj30e1W0zzk8laHENZBoouWIZZwliyf8PEhQ4UsdtwAGyG967r/FkwdkOoD5egsaAptCIol5NBk6zj4x8Ic265aXzJkM0lstaoDk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB10293

From: Grygorii Strashko <grygorii_strashko@epam.com>

Xen uses below pattern for raw_x_guest() functions:

define raw_copy_to_guest(dst, src, len)        \
    (is_hvm_vcpu(current) ?                     \
     copy_to_user_hvm((dst), (src), (len)) :    \
     copy_to_guest_pv(dst, src, len))

This pattern works depending on CONFIG_PV/CONFIG_HVM as:
- PV=3Dy and HVM=3Dy
  Proper guest access function is selected depending on domain type.
- PV=3Dy and HVM=3Dn
  Only PV domains are possible. is_hvm_domain/vcpu() will constify to "fals=
e"
  and compiler will optimize code and skip HVM specific part.
- PV=3Dn and HVM=3Dy
  Only HVM domains are possible. is_hvm_domain/vcpu() will not be constifie=
d.
  No PV specific code will be optimized by compiler.
- PV=3Dn and HVM=3Dn
  No guests should possible. The code will still follow PV path.

Rework raw_x_guest() code to use static inline functions which account for
above PV/HVM possible configurations with main intention to optimize code
for (PV=3Dn and HVM=3Dy) case.

For the case (PV=3Dn and HVM=3Dn) return "len" value indicating a failure (=
no
guests should be possible in this case, which means no access to guest
memory should ever happen).

Finally build arch/x86/usercopy.c only for PV=3Dy.

The measured (bloat-o-meter) improvement for (PV=3Dn and HVM=3Dy) case is:
  add/remove: 2/9 grow/shrink: 2/90 up/down: 1678/-32560 (-30882)
  Total: Before=3D1937092, After=3D1906210, chg -1.59%

[teddy.astie@vates.tech: Suggested to use static inline functions vs
macro combinations]
Suggested-by: Teddy Astie <teddy.astie@vates.tech>
Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
changes in v3:
- add raw_use_hvm_access() wrapper

changes in v2:
- use static inline functions instead of macro combinations

 xen/arch/x86/Makefile                   |  2 +-
 xen/arch/x86/include/asm/guest_access.h | 78 ++++++++++++++++++-------
 2 files changed, 59 insertions(+), 21 deletions(-)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 407571c510e1..27f131ffeb61 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -71,7 +71,7 @@ obj-y +=3D time.o
 obj-y +=3D traps-setup.o
 obj-y +=3D traps.o
 obj-$(CONFIG_INTEL) +=3D tsx.o
-obj-y +=3D usercopy.o
+obj-$(CONFIG_PV) +=3D usercopy.o
 obj-y +=3D x86_emulate.o
 obj-$(CONFIG_TBOOT) +=3D tboot.o
 obj-y +=3D hpet.o
diff --git a/xen/arch/x86/include/asm/guest_access.h b/xen/arch/x86/include=
/asm/guest_access.h
index 69716c8b41bb..eb1fb0aef76d 100644
--- a/xen/arch/x86/include/asm/guest_access.h
+++ b/xen/arch/x86/include/asm/guest_access.h
@@ -13,26 +13,64 @@
 #include <asm/hvm/guest_access.h>
=20
 /* Raw access functions: no type checking. */
-#define raw_copy_to_guest(dst, src, len)        \
-    (is_hvm_vcpu(current) ?                     \
-     copy_to_user_hvm((dst), (src), (len)) :    \
-     copy_to_guest_pv(dst, src, len))
-#define raw_copy_from_guest(dst, src, len)      \
-    (is_hvm_vcpu(current) ?                     \
-     copy_from_user_hvm((dst), (src), (len)) :  \
-     copy_from_guest_pv(dst, src, len))
-#define raw_clear_guest(dst,  len)              \
-    (is_hvm_vcpu(current) ?                     \
-     clear_user_hvm((dst), (len)) :             \
-     clear_guest_pv(dst, len))
-#define __raw_copy_to_guest(dst, src, len)      \
-    (is_hvm_vcpu(current) ?                     \
-     copy_to_user_hvm((dst), (src), (len)) :    \
-     __copy_to_guest_pv(dst, src, len))
-#define __raw_copy_from_guest(dst, src, len)    \
-    (is_hvm_vcpu(current) ?                     \
-     copy_from_user_hvm((dst), (src), (len)) :  \
-     __copy_from_guest_pv(dst, src, len))
+static inline bool raw_use_hvm_access(const struct vcpu *v)
+{
+    return IS_ENABLED(CONFIG_HVM) && (!IS_ENABLED(CONFIG_PV) || is_hvm_vcp=
u(v));
+}
+
+static inline unsigned int raw_copy_to_guest(void *dst, const void *src,
+                                             unsigned int len)
+{
+    if ( raw_use_hvm_access(current) )
+        return copy_to_user_hvm(dst, src, len);
+    else if ( IS_ENABLED(CONFIG_PV) )
+        return copy_to_guest_pv(dst, src, len);
+    else
+        return len;
+}
+
+static inline unsigned int raw_copy_from_guest(void *dst, const void *src,
+                                               unsigned int len)
+{
+    if ( raw_use_hvm_access(current) )
+        return copy_from_user_hvm(dst, src, len);
+    else if ( IS_ENABLED(CONFIG_PV) )
+        return copy_from_guest_pv(dst, src, len);
+    else
+        return len;
+}
+
+static inline unsigned int raw_clear_guest(void *dst, unsigned int len)
+{
+    if ( raw_use_hvm_access(current) )
+        return clear_user_hvm(dst, len);
+    else if ( IS_ENABLED(CONFIG_PV) )
+        return clear_guest_pv(dst, len);
+    else
+        return len;
+}
+
+static inline unsigned int __raw_copy_to_guest(void *dst, const void *src,
+                                               unsigned int len)
+{
+    if ( raw_use_hvm_access(current) )
+        return copy_to_user_hvm(dst, src, len);
+    else if ( IS_ENABLED(CONFIG_PV) )
+        return __copy_to_guest_pv(dst, src, len);
+    else
+        return len;
+}
+
+static inline unsigned int __raw_copy_from_guest(void *dst, const void *sr=
c,
+                                                 unsigned int len)
+{
+    if ( raw_use_hvm_access(current) )
+        return copy_from_user_hvm(dst, src, len);
+    else if ( IS_ENABLED(CONFIG_PV) )
+        return __copy_from_guest_pv(dst, src, len);
+    else
+        return len;
+}
=20
 /*
  * Pre-validate a guest handle.
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 18:44:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 18:44:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157842.1486467 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHRRa-0005qT-IQ; Fri, 07 Nov 2025 18:44:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157842.1486467; Fri, 07 Nov 2025 18:44:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHRRa-0005qM-FX; Fri, 07 Nov 2025 18:44:18 +0000
Received: by outflank-mailman (input) for mailman id 1157842;
 Fri, 07 Nov 2025 18:44:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zkPj=5P=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vHRRZ-0005qG-2v
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 18:44:17 +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 c1e49d29-bc09-11f0-980a-7dc792cee155;
 Fri, 07 Nov 2025 19:44:14 +0100 (CET)
Received: from CH0PR03CA0181.namprd03.prod.outlook.com (2603:10b6:610:e4::6)
 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.9298.8; Fri, 7 Nov
 2025 18:44:11 +0000
Received: from DS2PEPF00003443.namprd04.prod.outlook.com
 (2603:10b6:610:e4:cafe::7a) by CH0PR03CA0181.outlook.office365.com
 (2603:10b6:610:e4::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.13 via Frontend Transport; Fri,
 7 Nov 2025 18:43:54 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS2PEPF00003443.mail.protection.outlook.com (10.167.17.70) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9298.6 via Frontend Transport; Fri, 7 Nov 2025 18:44:10 +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; Fri, 7 Nov
 2025 10:44:06 -0800
Received: from [172.30.239.239] (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, 7 Nov 2025 10:44:05 -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: c1e49d29-bc09-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eVTRBtHDJHBSfYlpbLlK9gIIMdsvyZjAE52Bl2e6pUGBz/AQykMIF0yXa5cozVWP22+I0QShIu6yCKD5eeLCVHHftERryiV78oQ+LhEmYq4Po6XON8jOI9f2z/kmDdFSI5rXtxJvwV8MK1MG7rTRYAgGnsVpemGlf5Rg0n8vQteqjgI/QmQCf/R+Slw+Hl72WCRy5r1WL9KFe+dl7QXIw+9+jX84T0xaK7k6q0vheS9bBcO6MRO5gqjBPOP+bvXX4ZXFArudj9/lABhn3/6e5ntki6t0/2ofzjwLzHmVaAsP6hNxsxjndQIdOn6CXT6UCAtTa3dAL6cnXAq4TazOjw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HUAxSaDX2yP+SkUAcyXal3ROpsr3pIZuBD/6lf0Pgx8=;
 b=AEEizmI/K1UpiEpA6kWbpmTUHMxjiuPwZRoQZzGGF9ee7pjrmlXuBogkJnfubxuEAeIBd0tCribV935BpnDBFRIxSA2zGobu2kgUNvF65irbcQrzoFD3Y4/HhFp0FCPF7tZh3pRF9g0a6MwoFmju9vitLmPcIHNmFRp9xjkd7HRKZkhBAu1LW+r2hmchirxIQ6SCzWg5a6N6lKVUO60SimhYRLa4NdMIxLLF6WzSkO8kJVoP9x13Hy9zDBuQD4kRnGL4uvKGJeVnF76Fj24cjJCsFh8Tcw8r8j4kGNPB0l4gVfIMbg3xSKAOxDQBDFU9k24Q2hwMxjAdamYWYL5sww==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HUAxSaDX2yP+SkUAcyXal3ROpsr3pIZuBD/6lf0Pgx8=;
 b=maehuXUntsJ80iI4qWwf/qIn0hW0TpyrAH/y3m3jU6rNLr2JnqBOm4CnyhubUApHw0ik4C5gy9K1Q1joDWwQtGkG393nXiGvEQJgWpntRImYXKstazmWIA33nihyd3lxJIbmiZ7ZssJRc/B+9tcspuHdT71RrwoCvEphqtNqGI8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <01f450cf-c095-4d09-a9cc-de833e98aee9@amd.com>
Date: Fri, 7 Nov 2025 13:44:04 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v3] xen/x86: guest_access: optimize raw_x_guest() for
 PV and HVM combinations
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Teddy Astie <teddy.astie@vates.tech>
References: <20251107181739.3034098-1-grygorii_strashko@epam.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20251107181739.3034098-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF00003443:EE_|PH7PR12MB6489:EE_
X-MS-Office365-Filtering-Correlation-Id: aa79217b-42be-46a0-5648-08de1e2da3ce
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?SHFhVzFwRERqTTlIZGVZcHR1T0YrUmNoWG5tVGwwZEpScldqYlJ0eFM1K2lz?=
 =?utf-8?B?Y2VRaXphNDRaZGxaYXVTQS9MU1hhZUdoYkk4b0NvYXJFYXFtNjVYazZDdGl0?=
 =?utf-8?B?UUt1Y2hiMmkrZ2ZscXJKQTRVbTJjN0svcHZiYnJ3ZE11Z3ppYkpSRUVtVnlo?=
 =?utf-8?B?WXZMeVh2SThOQkU3SGVvaWIzSHdiQys4Nm9WVTJvc2psVGYyK2xudjg0WmEv?=
 =?utf-8?B?aU1iU05ocktseFlKb25JRGhiU1ZiNTVuL0lkcUlDV29TMjRlQ0VjN2hkNGFy?=
 =?utf-8?B?dXZaVnoxQ2ltYmtFYUcxVzF0QW9yaU1wVGVCSU55M1lueHFnY010VXBxWHhl?=
 =?utf-8?B?M2pJc1V3czFmTTgrazJhemZDd3ZBOFBKbEsvVUZZOVJPQ2hYRHVPS0dtbjcz?=
 =?utf-8?B?enlqMnJiV2JQSmZraXdiOW5GVUl5U01qZ1djN2lMVVA2RllGbFhLRURNeUpN?=
 =?utf-8?B?OU9EdEhKeTByZUU4Ym0yaXdORnF6aDd0Y3VGdzhlY3ZmN3pnd3VuU1RoREs4?=
 =?utf-8?B?MWJaKzFnR3J1eWZqSDcyYmlyWXdNK3ZDc2ZhSUx0QU5sQ1ZBNmdFbFZWL2pW?=
 =?utf-8?B?VVJMcWFyMnExNExCU0FWRDJqRmdYQ1IvckR4ZWUyUDJiaDBBZURVZnp6cER1?=
 =?utf-8?B?ME9TSW50cE4rcEd5a2VYSCtEaERGTmozNkh2a3pjVVBZemVvUFZqS05SRy8r?=
 =?utf-8?B?UGZnaHBYbXlua3BJbml5Zys3TGhUajNGd0owaHFXYVJOMHdtWndpVkFBTTlM?=
 =?utf-8?B?bWxSdEpwUkRnWGhxQlVWVVQrVGRsR0wyekZacDBhRVNwRkd6d01CL1IxS3d6?=
 =?utf-8?B?Z2V1TG42eVFnYSsxWE9hQk11Ynl2MFFKS2M2SEpIeTZFbWUwU3NEbVQ5NTRO?=
 =?utf-8?B?SHdGTnJUaTEvdzVIanpCS3p1U0UwMkc4V0tJaGRxRFJ6UTZ1b1RDR0pvNzVJ?=
 =?utf-8?B?WEpEWXpLQWhFWXdGdjFMQ3N4enBzN3d6enFIVlJCcTh5MEkvcFlNY21sa2hN?=
 =?utf-8?B?ZEpGMFBvRnBudVJoZzVtYktCZ2luTDZwN2JWeHlCQlFBV09TeFZLcVo1Z3o4?=
 =?utf-8?B?bEMyT3ZtdlV4ek1yaENTRDNXUU9yd1M0dHFEdmpWdFptUzV4MjR1VE82Y0JL?=
 =?utf-8?B?UjV4WkQ2aU5LV3JZNWN4ME5LbG5pYVI5TlBvYXExRXY2WG1ZTHpUMUI1UnFI?=
 =?utf-8?B?N1lCMkUyZ0grdS8yazlQeDg1QW1FNlc4TGw4cXp3WkdvVWRrR05VYnNLOThq?=
 =?utf-8?B?MGpKY09Xc2pXWHpEbGRuUHpabVQ1NllIQmx5VEsxT3Z6azIwcktGZmkrYk41?=
 =?utf-8?B?OUhxNXVXajZrZW96ZHRYWlJvdUt3eFZvek9HS1lrbHAvRkhLYytJYzJ2UkFO?=
 =?utf-8?B?S2NaRk9XL0lyWllTaVFRVFBDMkFoOGlacm5yVnJvVFN4bVB1ZTRHam14Sk10?=
 =?utf-8?B?Z3RoR0V5WGZXVFpWb3RCTFlDaCtNa1gzRGRQWmkrUEwzdCtKNDg0WGs0RXRi?=
 =?utf-8?B?czBvMEpiUE02WlIyMDBrNGVLT3FCT252RjBWWDlBVGZNOXNVa0NjbDdndHhZ?=
 =?utf-8?B?YkJsNjNXZVllZnFaSFlHTUIvOG1rT01JamNBREdLUDB4a1pKRFgrdDliMjFU?=
 =?utf-8?B?alFsVllHUTlZbFJvbE4vTlFYbTRaQ2Vjcm1nM3RWcUpwTnZVZWVRYndKYjky?=
 =?utf-8?B?UVI4M0hUNE9XUlVQdFd6TG12RWViUW12TXdkS2N6Ny9MNmJqYk4xSWFPaDFm?=
 =?utf-8?B?MXBqOVdMZmgrMW9McG1OaWJqK2IxTjMyQm5HdERSMHpXdUViWUN0ekROOEcv?=
 =?utf-8?B?emN6cEg2eFlncGl5aFg3NVdBdm5BV21OdHg5c2lIYW5hc0ZtRUxQajM3WHk1?=
 =?utf-8?B?ZExnbktIZUR3cVVyNlJwWVFWL28xOXVMOXNLYXl3SzVpVTZmeWtFY3plbU0z?=
 =?utf-8?B?SWlUTUM3V250VElYZVV1ZHVWdk00QUt6Y00zN0R4VENsZWdoMDRVeVNKMk5S?=
 =?utf-8?B?OUpHUkI5dnk1d3BJaHpwZ0Zzbjd2ZDNCcGZnUjFYRUVpSGp5T0htQjljbUpp?=
 =?utf-8?B?NkxKR0FhbjNVd3VTV3JTVzRZRjMyS1ZjcEhOSkN1ZkxKcHg0Nk92R1hNM256?=
 =?utf-8?Q?0ECc=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2025 18:44:10.2958
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: aa79217b-42be-46a0-5648-08de1e2da3ce
X-MS-Exchange-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:
	DS2PEPF00003443.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6489

On 2025-11-07 13:17, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Xen uses below pattern for raw_x_guest() functions:
> 
> define raw_copy_to_guest(dst, src, len)        \
>      (is_hvm_vcpu(current) ?                     \
>       copy_to_user_hvm((dst), (src), (len)) :    \
>       copy_to_guest_pv(dst, src, len))
> 
> This pattern works depending on CONFIG_PV/CONFIG_HVM as:
> - PV=y and HVM=y
>    Proper guest access function is selected depending on domain type.
> - PV=y and HVM=n
>    Only PV domains are possible. is_hvm_domain/vcpu() will constify to "false"
>    and compiler will optimize code and skip HVM specific part.
> - PV=n and HVM=y
>    Only HVM domains are possible. is_hvm_domain/vcpu() will not be constified.
>    No PV specific code will be optimized by compiler.
> - PV=n and HVM=n
>    No guests should possible. The code will still follow PV path.
> 
> Rework raw_x_guest() code to use static inline functions which account for
> above PV/HVM possible configurations with main intention to optimize code
> for (PV=n and HVM=y) case.
> 
> For the case (PV=n and HVM=n) return "len" value indicating a failure (no
> guests should be possible in this case, which means no access to guest
> memory should ever happen).
> 
> Finally build arch/x86/usercopy.c only for PV=y.
> 
> The measured (bloat-o-meter) improvement for (PV=n and HVM=y) case is:
>    add/remove: 2/9 grow/shrink: 2/90 up/down: 1678/-32560 (-30882)
>    Total: Before=1937092, After=1906210, chg -1.59%
> 
> [teddy.astie@vates.tech: Suggested to use static inline functions vs
> macro combinations]
> Suggested-by: Teddy Astie <teddy.astie@vates.tech>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 19:24:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 19:24:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157862.1486478 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHS3y-0002YW-Hf; Fri, 07 Nov 2025 19:23:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157862.1486478; Fri, 07 Nov 2025 19:23:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHS3y-0002YP-Es; Fri, 07 Nov 2025 19:23:58 +0000
Received: by outflank-mailman (input) for mailman id 1157862;
 Fri, 07 Nov 2025 19:23: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=mrvs=5P=dingwall.me.uk=james@srs-se1.protection.inumbo.net>)
 id 1vHS3w-0002YJ-Nr
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 19:23:56 +0000
Received: from smarthost01a.sbp.mail.zen.net.uk
 (smarthost01a.sbp.mail.zen.net.uk [212.23.1.1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4bca03c5-bc0f-11f0-9d17-b5c5bf9af7f9;
 Fri, 07 Nov 2025 20:23:53 +0100 (CET)
Received: from [217.155.64.189] (helo=mail0.xen.dingwall.me.uk)
 by smarthost01a.sbp.mail.zen.net.uk with esmtpsa (TLS1.0) tls
 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (Exim 4.95)
 (envelope-from <james@dingwall.me.uk>) id 1vHS3t-00DAvl-2j
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 19:23:52 +0000
Received: from localhost (localhost [IPv6:::1])
 by mail0.xen.dingwall.me.uk (Postfix) with ESMTP id 6D86CDA9D97
 for <xen-devel@lists.xenproject.org>; Fri,  7 Nov 2025 19:23:52 +0000 (GMT)
Received: from mail0.xen.dingwall.me.uk ([IPv6:::1])
 by localhost (mail0.xen.dingwall.me.uk [IPv6:::1]) (amavis, port 10024)
 with ESMTP id G9XRg2WmnLTn for <xen-devel@lists.xenproject.org>;
 Fri,  7 Nov 2025 19:23:52 +0000 (GMT)
Received: from ghoul.dingwall.me.uk (ghoul.dingwall.me.uk
 [IPv6:2a02:8010:698e:302::c0a8:1c8])
 by dingwall.me.uk (Postfix) with ESMTP id 35E72DA9D92
 for <xen-devel@lists.xenproject.org>; Fri,  7 Nov 2025 19:23:52 +0000 (GMT)
Received: by ghoul.dingwall.me.uk (Postfix, from userid 1000)
 id 17BBA7F4; Fri,  7 Nov 2025 19:23:51 +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: 4bca03c5-bc0f-11f0-9d17-b5c5bf9af7f9
X-Virus-Scanned: Debian amavis at dingwall.me.uk
Date: Fri, 7 Nov 2025 19:23:51 +0000
From: James Dingwall <james-xen@dingwall.me.uk>
To: xen-devel@lists.xenproject.org
Subject: [PATCH] fix xl.cfg docs to correct viridian defaults list
Message-ID: <aQ5HR2eEQ9awKtpC@dingwall.me.uk>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="UBzguPwngLXLn4Ib"
Content-Disposition: inline
X-Originating-smarthost01a-IP: [217.155.64.189]
Feedback-ID: 217.155.64.189


--UBzguPwngLXLn4Ib
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi,

I was trying to work out why this would cause my Windows 10 guest to hang
when it should have been equivalent to ['defaults'] or 1.

viridian = ['base', 'freq', 'apic_assist', 'crash_ctl', 'no_vp_limit', 'cpu_hotplug', 'time_ref_count', 'stimer']

Checking the libxl sources show that in fact the defaults are:

    if (libxl_defbool_val(info->u.hvm.viridian)) {
        /* Enable defaults */
        libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_BASE);
        libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_FREQ);
        libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_TIME_REF_COUNT);
        libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_APIC_ASSIST);
        libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_CRASH_CTL);
        libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_NO_VP_LIMIT);
        libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_CPU_HOTPLUG);
    }

LIBXL_VIRIDIAN_ENLIGHTENMENT_STIMER was removed as a default enlightement in
e83077a3d11072708a5c38fa09fa9d011914e2a1 but the docs were not kept aligned.

Thanks,
James

--UBzguPwngLXLn4Ib
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="af3b374637bae4b30091f731f2bfeea4460478da.diff"

commit af3b374637bae4b30091f731f2bfeea4460478da
Author: James Dingwall <james@dingwall.me.uk>
Date:   Fri Nov 7 19:09:56 2025 +0000

    doc/man: align list of viridian default enlightenments with libxl
    
    The stimer enlightment was removed from the defaults list in
    e83077a3d11072708a5c38fa09fa9d011914e2a1 but the corresponding docs
    change was not made.  Removing from docs as enabling the enlightenment
    will hang Windows 10 guests.
    
    Signed-off-by: James Dingwall <james@dingwall.me.uk>

diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index ad1553c5e9..27c455210b 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -2503,7 +2503,7 @@ guests effectively allowing vCPU hotplug.
 
 This is a special value that enables the default set of groups, which
 is currently the B<base>, B<freq>, B<time_ref_count>, B<apic_assist>,
-B<crash_ctl>, B<stimer>, B<no_vp_limit> and B<cpu_hotplug> groups.
+B<crash_ctl>, B<no_vp_limit> and B<cpu_hotplug> groups.
 
 =item B<all>
 

--UBzguPwngLXLn4Ib--


From xen-devel-bounces@lists.xenproject.org Fri Nov 07 22:51:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 07 Nov 2025 22:51:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157905.1486488 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHVIA-0000cn-E2; Fri, 07 Nov 2025 22:50:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157905.1486488; Fri, 07 Nov 2025 22:50:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHVIA-0000cg-A7; Fri, 07 Nov 2025 22:50:50 +0000
Received: by outflank-mailman (input) for mailman id 1157905;
 Fri, 07 Nov 2025 22:50: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=NFVh=5P=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vHVI9-0000ca-M0
 for xen-devel@lists.xenproject.org; Fri, 07 Nov 2025 22:50:49 +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 333166f7-bc2c-11f0-9d18-b5c5bf9af7f9;
 Fri, 07 Nov 2025 23:50:48 +0100 (CET)
Received: from DM4PR03MB7015.namprd03.prod.outlook.com (2603:10b6:8:42::8) by
 MW4PR03MB6393.namprd03.prod.outlook.com (2603:10b6:303:120::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.13; Fri, 7 Nov
 2025 22:50:44 +0000
Received: from DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9]) by DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9%3]) with mapi id 15.20.9298.012; Fri, 7 Nov 2025
 22:50: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: 333166f7-bc2c-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Yo5gf8hguAXWSkivfbagHAm8FcLMa+7xZayMV/yH9Pz76ezQrtsmbIr56CM9z3DztyHB3ywJjuLyZbMZyKKJavNN4tCskaVgr+qQshvCHDwlU4hb4UnllNj7DDagBO4c8z8HW7gJO8kEVCs7vFGJpGv40t9UZXXc11X0yRGdjdYIjCJ4/4KeQAHosOqFiPC2f7NvK7MTI6cANUMvjS4MoBvpnVRAGi6zoW7CYnQjro91XxgE3Fzlo6dMuD6K4tmquU8R4C8yiYTC55Y2gtQzaVWUE3vBTRf1VUq92XVP/i83yawT5fhOa990CKQAfHL9EgLBrgh+93Bt00kw9z2WTQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZqwxiOrD/gYMZ/l+Bx7Y9hfeywbPkllx7n6cpZI53j4=;
 b=h211SrQ79DbfVFKsDxvKXbxJ/8s0q9XjTkMhC0JP26b5Yk40CuzfWE0dMJmfkHIJBBQhYhfL8Cch/WIWVY4eh3f0uMJvLlzr0zGNHcPwQWOy0PHiYL1evPUDPnb2D8PbazLUEU16n8USTjxNy066RIa4250Bc6tupBrJ+NqVO683mHe+EWXSp9uI/yectybK7n+rAFC5zZq++vSIQwtupAd1ra0loOXQgcV++GnS8XMv/oKrTY7sJueMPHSCcUW/P2RpQdEma41EpWYdm6aMpokr+W4YonXnBXs8uJLhOxN1jCuoHtr+WB9AtS4e4qENS5CUNwERdAWLRTygPpIvuw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZqwxiOrD/gYMZ/l+Bx7Y9hfeywbPkllx7n6cpZI53j4=;
 b=RfCIow1RTjCPqIr9kYZFtNN/OKxowHAB1wvywVUpQvvwslp8+fdCaAidXsipU4TItMEjf38MpQbIUUxN3Iz8wL4i2WsZis36OTHBMeUUOes+kFNh/UEnKTqhFVzd1K0Pa+n6tHZ5JKwsJNGjQmsF1wgm+dHbeLOaM0hIplDjr78=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <8c9f0988-0eb3-40f0-bd22-13b23af03ed8@citrix.com>
Date: Fri, 7 Nov 2025 22:50:39 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.21] fix xl.cfg docs to correct viridian defaults
 list
To: James Dingwall <james-xen@dingwall.me.uk>, xen-devel@lists.xenproject.org
References: <aQ5HR2eEQ9awKtpC@dingwall.me.uk>
Content-Language: en-GB
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <aQ5HR2eEQ9awKtpC@dingwall.me.uk>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0449.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a9::22) To DM4PR03MB7015.namprd03.prod.outlook.com
 (2603:10b6:8:42::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR03MB7015:EE_|MW4PR03MB6393:EE_
X-MS-Office365-Filtering-Correlation-Id: b4266db2-7998-4336-7f16-08de1e5014f4
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?VnBZQ1VQejJzek1tcFF1WXN3b1ZMcUNXNUs0bGorblhiWjB0eWVjcFdiOWVF?=
 =?utf-8?B?SDVyMTMxZjUybjVnTDlyQytXcUEzSnlobkwrZXJ2YWtUVGxHdEE5LytZL3Vl?=
 =?utf-8?B?eHVhbmJtN1d3WGp5dzlZeXBiazhPSTJ6MkFONTFJRXRaQUNSbjRCZmJjNVJZ?=
 =?utf-8?B?ZHU1aXRWNnEvVTJoY25HdG8wc1hsWEZCTWl6bjBYMFU0N2pNVllhY2JHYmpj?=
 =?utf-8?B?Mi9YUkZwM0FkaC9KYUptd2tnMXVNc3dBS2VYdHliZHk4anQ4Yk9meVVnZjVv?=
 =?utf-8?B?OEtFVngrZ1lHMGVjd1RHamJXOTFtMGxWa09ncHJNMnY0Zzd4WWR6bHpibnZj?=
 =?utf-8?B?SldaNFU2V0dUYnBIVitjUzdqWmNYUjRjZmlKSVhOZ0FmeTBWSVdXWjJ5eitJ?=
 =?utf-8?B?dDBrM1ZtR0VRdWIvL1I2bUJwVUFJRmxjRld4ajZjWk9iZEFJSGExVjNFTTRU?=
 =?utf-8?B?SDExV3RFQjBoVGRSR3F5YmxWLzdmcXFYcFdTUkRsWWo2Q2FLdDRoMlh6UGRM?=
 =?utf-8?B?UWtmRjZ6Ymc2QmNjRms4YXZ0eXpNRXJsWFpKRFNnZ09abG5VLzEyV0lXZ1Yy?=
 =?utf-8?B?RHZQK3lsMlhpR016WXhXU2J5TDdkeG54Vk1DTE9DenFWNXFzajJvMnBzV1VP?=
 =?utf-8?B?OTNrR3BoRjBJYkUyNC9ocG4wbWUvemthYU92enRTYWpsR005Wjd0STNmb2ZP?=
 =?utf-8?B?d0JMcGEyalhFNEt4VEY2Zmt3Wktqam42dVpWKzREQXdEQ3NEc2phZVlUcWIz?=
 =?utf-8?B?c1Z2Zk0rL3A1NVBiSXU3ajg4SWlZQVFNZkpUY0JxWjVJZ2VnTFc3cEwrbGRC?=
 =?utf-8?B?QStoSFhESk9lYVZHelNuSi8zd3QrOThZWVZ0c3Q0cHN2VzlVMGZiREhlZ1BJ?=
 =?utf-8?B?cFZKNFNlcHQwclNSc0Y0bmF0dWp5OUVRWWlhYStxM3YxRjVPaGYvVjhaSjg2?=
 =?utf-8?B?c05lOVNOMmN1Q3dDc2NIdDRNUEZVY1ovR1QybDk2cUkzWENqeDdGeGZWZk5m?=
 =?utf-8?B?dGJMemFQZDhPbkRubGN6S0NkMFFMeXBHWGRIcTFHNjQ4NVN6QUpSKzRqVlFY?=
 =?utf-8?B?YkFSZGJkVWovV2loSVBlQzdhZTUyWDNOU2RlQmNXcDRGSElJTzNvRFk3ZzJa?=
 =?utf-8?B?NWQ5K0MvRzZpSnF5ZENnck9YdkdvcDRXUmpMTlVOWVU0MkxBblVYSGMrWFhP?=
 =?utf-8?B?Z2tKYmtETmVhTm5nYmkxTFJkVm9zZFRzMUtkcCtkajhhTDNib2dyTGdYNk9z?=
 =?utf-8?B?SnJHYTFMa1dzOEZYRVlkMERhbU5JdmlCdkp4RkUwckw4WDdpWFhadVM3QmZK?=
 =?utf-8?B?aGR4ZGtobVI3L1ZhU01KRzJ6ZitwMDUzZlAvbUZFMmZIY3BIRzNFMDZDcXgr?=
 =?utf-8?B?dzVRWUhVSk1LQTNYRDg5bm0yMkIvZnljMC81NnV4Rmw5T3N6a1R2em54SkhB?=
 =?utf-8?B?VVRKVjZ0VXo3NWZWN212eWpLNUFISHFWOERtTXhWMSs1QVVlZ0JOUTVHTzZ0?=
 =?utf-8?B?L1dTVVVNUlVmVXZpZEVnRm96MFpPSGFUdXZDRk0xOFlkMjFrVjZCckRvaVN5?=
 =?utf-8?B?R2hRdE9XcWdWNGtzcWtpZUhZSjgrWGkvMWxKOXcrRTYyOFUzZjQ0QkJ1bXhl?=
 =?utf-8?B?bDU3Ym1YQWd3Sjh0YUlRZE9Oekszb0kxVUJGWXJEMEErOTBIQW5wUmloVEho?=
 =?utf-8?B?M2NMN1hxTVlWQ3YyV0lTVjBFWU5iUVoxNlUxWWMwc1R3S1VQZ3ZabzBkTnov?=
 =?utf-8?B?ejB2OFhPYnhoZEVMTTdFWVNwUUQyWExOYzJwRlBTOGlSSG4xbk42UGl5S0hj?=
 =?utf-8?B?N0dLWGhPbDFucUYrT1M0SldFUkxDcDhUZ0d2eDZnS2RZWlJBU29rOXpNYy83?=
 =?utf-8?B?aVJFQVVKYURFS1lOblE5emFHc1JId2tnTXhsRjFscVNGNjg2Z2pqMHpXN3FR?=
 =?utf-8?Q?+1o7EVNWeyzkpMb+HIRr9gv/8/9jHzbD?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR03MB7015.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?Q0wyUmlhNnhna2JJMURaUkZDc0czYWxtR2s1b2ZNbDNRWUVFeGwzNG0zaHRB?=
 =?utf-8?B?SDlrbGpjL3Roa0IrM2MvSWdDRUVoaE5uMC9JWHdQREJIVGxDUWtCdC83TkJP?=
 =?utf-8?B?eE5DUmgzVlo0NW5WWWNSbFZqQ3d1bGdGQUplSUVMcG8xbUp5b3ZTeEozWlM1?=
 =?utf-8?B?YTljMnpYZjJRMFdtZU5zUkxZVHdNaEVQM1FLZWhVc2M5Njc4OTg4NXg0NFhU?=
 =?utf-8?B?RTMraGtWOThzbG1naVdNcnVYbU00STBjTnllam4ycFlObE1UR3dPMk5yamtm?=
 =?utf-8?B?UnQ2Q3V6R1BraHk4SmZ6TU9QdTd4aGVvbG14cFZ5NSs1RmRHMkdvalFVUld1?=
 =?utf-8?B?bWE2bEZVTEZtYnRuSEp5NjJIWmtDYTNUR0kwMHZXN2Jpemh3b1BaQ3ZWMWt6?=
 =?utf-8?B?cHVLM2NxVFpaT21tczFHdS9PajdudnNTT3BGbUJnbmJTNis3SFNELzBUVU5E?=
 =?utf-8?B?K09ISWY3K3RQZ2pkNE5yTThTaStQelc5UlpEWlhqOVpnMEJZRTdHN0h4MTJn?=
 =?utf-8?B?dGNsQ0hXbm1kczBqMm1VcEdUUEd0Q3ljaXNSVXVJdHFpZDhiMVlVWnB1Z1J3?=
 =?utf-8?B?K3hHNUFxbGhXd1BvemdxOFk1bWFmMDdUNXE3cnFJOXRxck9XclhweG81TUZ5?=
 =?utf-8?B?TTlaTFdCTks1dDEvZ3o1eVBLY3hEeGJ3UFh5aHF1NUhld2pWT1hIMkFmOWlx?=
 =?utf-8?B?MC9mUm9TOTJUcG4rTzUrUm14QVhtUG9URVFLVE03VDFiOFp6SWZPbkxkampK?=
 =?utf-8?B?VndxWk8vMlQ3cXZzTHI3enhLNXBKRkJJejRKZ29rdXBDbHpoV3F5ZU9BeTlH?=
 =?utf-8?B?OTRtazB3Q1E2SVI1Y2hFcFlDTjFYcWtmYzArUUI3b1M0aHpKVkNZQnNKYmQ5?=
 =?utf-8?B?dGVqOXZxZTFvdzRKVC9BcWVITTZhVitoMUxqQUdOb3FmczN4a2Z4NXIxL2dU?=
 =?utf-8?B?TVk3dDVLeXRYOTVDaVB6MmpSazZBa2VWc2J3bVZsOTZoVEoyc09mNXk2eHhE?=
 =?utf-8?B?azJ2aDk5ZDI3dkJlVlNFYS9GK0htM1R5YlBrK3JEQTgwWnFGMHlNRVJCdFIz?=
 =?utf-8?B?ZDV5YmNDeTBBT3krNzhaWjFESXZuOEdXcUZFNUZZa0pQalpHcXE1ZVBQR2hs?=
 =?utf-8?B?V0VHOUwvQ1R1OVY5SDB3M0VpNlRlUE10dno1MkhzMTkrQ24vcGFyWXh6anBx?=
 =?utf-8?B?NWk5cG9DcS8wMGxoSXhzQXpUQUtVWFEwWEY5QnlHeERoUktTVlpwWldoQ290?=
 =?utf-8?B?Z05jRzhUMkhFc2N4S0VHSVNUR0VlTm90d1hQRW0zemhGYkNRdTVxVnFoOFBZ?=
 =?utf-8?B?dlVHaWhkS0RKQVpWVGFRbEoxNDZaeW00QkI4bEg1TFVUR0taTzEwS1pyUTBy?=
 =?utf-8?B?SG9KZnhGMXZHV3h0ZXlRaDZXYi90QVZTMWw0RjVXWDhSWWRwZS9kdGNQdVJO?=
 =?utf-8?B?eEVET0FVdmg2RGhTNWFpa3hkbDFiWjFpUW9ESlBvZldud0NHdEZWQklSd01P?=
 =?utf-8?B?VlZUTHgvNFhGUW1hRlRrUUJFS1hmckhBTXhHT0wzZ0FiZ1hRU3lpVUtzMDF4?=
 =?utf-8?B?NFR6LzhscENDMC9DZ2l0eEFzaVVZV2ZvOHQ3ZTNXSmsySE02aEwrM0dpdzNQ?=
 =?utf-8?B?ZFV3SWdhZHRDSHVsR1Z1aUYycVNwSzBSa0VTOEZvU3lZRGp1YjhvTTZnREg0?=
 =?utf-8?B?L1Fjdkg1Uld5RlRqaEdGUU9xSjRwYkZIWTFYS3dCYTVHcGhTOFZ6QTV1UDQx?=
 =?utf-8?B?VE9DN1NJekpKMEhOa010UWhKbGVDMkdpdHVJWWZkaEIybXBNQjd6OEQ3eWdm?=
 =?utf-8?B?azV1cW1Qcy9CaGJrRXZscXNZUWNERGNPZFd4cUptaUdWb1Z0VW5VOHliNmZm?=
 =?utf-8?B?TU93TEkyY0hLN1lDd1U2dDhqSUN2NmoxZEdwWXpTaTZSL2lZZ254bW9SSWVw?=
 =?utf-8?B?WkFBNXJ1bk9OU3BzSE9GdWpaQUFPVEtkWEphdzVRVWxBaVpia3Rxd2FvM0o1?=
 =?utf-8?B?K0xLaDZJM3NweWtKZjRsamI4TFgyeUlseVpweTNrYTBaMFRKUGk2SjlDYnNz?=
 =?utf-8?B?amRTbW42aTZZZ0g2dDRweTlPcTErdlZESGRrM3diOVFCejRLbXRDV3R1SGth?=
 =?utf-8?B?Z1NSVU1MbHNnMUMvaytVTldvVUtxU2N1Y1kwZWQ0WU5ES1R6MG92ODlpclMy?=
 =?utf-8?B?dnc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b4266db2-7998-4336-7f16-08de1e5014f4
X-MS-Exchange-CrossTenant-AuthSource: DM4PR03MB7015.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2025 22:50:43.9908
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8lmzK+9IcHzKOUo/F5sb8H+0T1AWUYnmpenklTVQ92dgcPlurX7ath0+2MSH5xXcC59Wp2NzR84bXmzFZd9s/8J/z+8feu+zU61dWMqHleo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6393

On 07/11/2025 7:23 pm, James Dingwall wrote:
> Hi,
>
> I was trying to work out why this would cause my Windows 10 guest to hang
> when it should have been equivalent to ['defaults'] or 1.
>
> viridian = ['base', 'freq', 'apic_assist', 'crash_ctl', 'no_vp_limit', 'cpu_hotplug', 'time_ref_count', 'stimer']
>
> Checking the libxl sources show that in fact the defaults are:
>
>     if (libxl_defbool_val(info->u.hvm.viridian)) {
>         /* Enable defaults */
>         libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_BASE);
>         libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_FREQ);
>         libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_TIME_REF_COUNT);
>         libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_APIC_ASSIST);
>         libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_CRASH_CTL);
>         libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_NO_VP_LIMIT);
>         libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_CPU_HOTPLUG);
>     }
>
> LIBXL_VIRIDIAN_ENLIGHTENMENT_STIMER was removed as a default enlightement in
> e83077a3d11072708a5c38fa09fa9d011914e2a1 but the docs were not kept aligned.

Hmm, indeed.

For the patch, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

It should have a fixes tag, but I can fix that on commit.

CC'ing Oleksii.Â  This is a docs fix should be considered for 4.21 at
this juncture.

~Andrew


From xen-devel-bounces@lists.xenproject.org Sat Nov 08 02:33:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 08 Nov 2025 02:33:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1157947.1486498 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHYlq-0000Ky-8Q; Sat, 08 Nov 2025 02:33:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1157947.1486498; Sat, 08 Nov 2025 02:33:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vHYlq-0000Kq-3Z; Sat, 08 Nov 2025 02:33:42 +0000
Received: by outflank-mailman (input) for mailman id 1157947;
 Sat, 08 Nov 2025 02:33:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sm31=5Q=gmail.com=ritesh.list@srs-se1.protection.inumbo.net>)
 id 1vHYlp-0000Kk-Hx
 for xen-devel@lists.xenproject.org; Sat, 08 Nov 2025 02:33:41 +0000
Received: from mail-pg1-x532.google.com (mail-pg1-x532.google.com
 [2607:f8b0:4864:20::532])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 55812537-bc4b-11f0-9d18-b5c5bf9af7f9;
 Sat, 08 Nov 2025 03:33:40 +0100 (CET)
Received: by mail-pg1-x532.google.com with SMTP id
 41be03b00d2f7-b98983bae8eso819301a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 07 Nov 2025 18:33:40 -0800 (PST)
Received: from dw-tp ([171.76.85.117]) by smtp.gmail.com with ESMTPSA id
 41be03b00d2f7-ba8f8d7eedcsm6587378a12.2.2025.11.07.18.33.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 07 Nov 2025 18:33: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: 55812537-bc4b-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762569218; x=1763174018; darn=lists.xenproject.org;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:from:to:cc:subject:date:message-id:reply-to;
        bh=8bKq5Kbap+TGIzkU08hwTVasn8Atv2TAiFfbpOuCLu4=;
        b=inXNbaN0kxEE6pD1gvDIUGSLCAiR2dnSYvguT1eh9Xb9TtaToFkRc0AiG3xxwzAXU6
         1faSKcMBwmSPooVCvSUcI8vuE7tpn6cRCrMEWrSQ9j+3v03jQyKGZ+xV/0KE/BbFvv68
         S3DL434WUVov0jrQiCapDIjfi/cGYqVR7ZYBoz0E2ERgjHNOxfZkW/E6kJk7V+jqfcha
         +vHICJxOz9pWnNeHPwUy2QBz2JE5fzlXnjfdSIaIjvNdMvYZMlSz9KCPEhHrijpPe0pl
         UBnn5X69c4vnlDp/Vz7UBY809POkGxCc5lWBo9sRmfmpi0w2rqvLmo5ruAokzucINhY3
         AIQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762569218; x=1763174018;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=8bKq5Kbap+TGIzkU08hwTVasn8Atv2TAiFfbpOuCLu4=;
        b=gNq+Zo3fxJax1mqHCNZdyXqpzxsfSSfiABbjc7IKr45GLlsC87GlJQjYgVgux3XsBZ
         eEQQEdlpfECk9dSBX/2ju0Lq4GhCyaLfeKaF4VuoSBUJHz/U2EIxEAcp39euCR4NxynP
         5NiZhkAYiSPjXaiQP8g0i8ze9CMsDXpBI/EMcH1XFW/NXVA9++kKWgqkxMYLOfbTa3lA
         VQLGhC4PIHbXKKz4kEKzUB+VNlEr6Kpga7fxi30j1E2sISOBaZiDG3wNg7pvcuy86Uis
         JdO6NIc0ORxfexNcaP9s+x8ywec/O0vLGC3Pe5ni0XwCnb8mfiMSjuEp3XmsSH/9Acbe
         jgRQ==
X-Forwarded-Encrypted: i=1; AJvYcCXVC155MfcuLlNZ/pbdkBdUtSTminB/AfNrYirjcFx5HludaK+wGVdnPN9x06Vmxzlik4/DlpqIUN8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwKsgyxPW8maCVUXR36YEFa7XI1RrqzD8k0GfcCpKjUFE9i4jfd
	L3fsEMt/JgIRPW9zeOxCdNX+XYktH2j70PJFQWkb9tji+HfRZHByFRvU
X-Gm-Gg: ASbGncta1G/e38V/PZ+53haESZ5h0XYEOTr8Ut5ilMZDeNA/RmVsadVgLcb6aiqDMTw
	+hioUJMECIT9VViH6GC+KBODN7dMsZ0Ael5jRc/q6DCDh9nrn0VJpWFXc7ULpoGsgrZALn4lnC2
	MP8J4RBGpyQ2e1V8k5Oxjw0mdOwqHV2AdMzNyzntsphVv6CZ8M+Yz4ZY1RXHWkZApU3N7rZ3TWC
	6r88Iugt26RVKMpnh9R6EoMVC0TS04r5y8rK3snITZIQiGEP5uWg6i2sigLE/G9MxFdAgwLAbMY
	zKsAJb5Sor+4Rc9qKGAqAKmomAkz2tYANnSLYB4coU5cm1cyzxAz38o8alcTVme347hiiGYukVs
	rKMUSssDiFqdacFqcEoPB3KQz29GIG7cmqKHuOzFwO90BAkrwx/Dv7CSjWiFdzL/o3b8WRhcTjL
	drJoPa
X-Google-Smtp-Source: AGHT+IH/Pe7wf3Ci181tpT0LHXQVq+Kf1iV5vunI2sKT5fx4KiiLBfIeJu3hgL/jAYkDOG6ZWRYxGw==
X-Received: by 2002:a05:6a20:12c5:b0:33f:9581:5d2f with SMTP id adf61e73a8af0-3539f99e63emr1740681637.3.1762569218334;
        Fri, 07 Nov 2025 18:33:38 -0800 (PST)
From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>, 
	Andreas Larsson <andreas@gaisler.com>, Andrew Morton <akpm@linux-foundation.org>, 
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov <bp@alien8.de>, 
	Catalin Marinas <catalin.marinas@arm.com>, Christophe Leroy <christophe.leroy@csgroup.eu>, 
	Dave Hansen <dave.hansen@linux.intel.com>, David Hildenbrand <david@redhat.com>, 
	"David S. Miller" <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>, 
	"H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>, 
	Juergen Gross <jgross@suse.com>, "Liam R. Howlett" <Liam.Howlett@oracle.com>, 
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>, Madhavan Srinivasan <maddy@linux.ibm.com>, 
	Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>, Mike Rapoport <rppt@kernel.org>, 
	Nicholas Piggin <npiggin@gmail.com>, Peter Zijlstra <peterz@infradead.org>, 
	Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>, 
	Thomas Gleixner <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>, 
	Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org, 
	linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org, 
	xen-devel@lists.xenproject.org, x86@kernel.org, 
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>
Subject: Re: [PATCH v4 01/12] powerpc/64s: Do not re-activate batched TLB flush
In-Reply-To: <b3e4a92f-5b51-4eee-bfb8-c454add0f0d2@arm.com>
Date: Sat, 08 Nov 2025 06:05:17 +0530
Message-ID: <87cy5t4b0a.ritesh.list@gmail.com>
References: <20251029100909.3381140-1-kevin.brodsky@arm.com> <20251029100909.3381140-2-kevin.brodsky@arm.com> <87qzud42n1.ritesh.list@gmail.com> <b3e4a92f-5b51-4eee-bfb8-c454add0f0d2@arm.com>
MIME-Version: 1.0
Content-Type: text/plain

Kevin Brodsky <kevin.brodsky@arm.com> writes:

> On 05/11/2025 02:46, Ritesh Harjani (IBM) wrote:
>> Kevin Brodsky <kevin.brodsky@arm.com> writes:
>>
>>> From: Alexander Gordeev <agordeev@linux.ibm.com>
>>>
>>> Since commit b9ef323ea168 ("powerpc/64s: Disable preemption in hash
>>> lazy mmu mode") a task can not be preempted while in lazy MMU mode.
>>> Therefore, the batch re-activation code is never called, so remove it.
>>>
>>> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
>>> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
>>> ---
>>>  arch/powerpc/include/asm/thread_info.h |  2 --
>>>  arch/powerpc/kernel/process.c          | 25 -------------------------
>>>  2 files changed, 27 deletions(-)
>>>
>> Since the commit referenced in above disables the preemption in
>> arch_enter_lazy_mmu(), so the expectation is that we will never be
>> context switched while in lazy_mmu, hence the code changes in
>> switch_to() around __flush_tlb_pending() should ideally never be called.
>
> Correct, that's the idea.
>
>> With this analysis - the patch looks good to me. I will give this entire
>> patch series a try on Power HW with Hash mmu too (which uses lazy mmu and
>> let you know the results of that)!
>
> That'd be very appreciated, thanks a lot!
>

I did give this patch series a run on Power10 with Hash MMU. I ran the
following stress-ng tests and didn't observe any issues (kernel warnings) so far.

stress-ng --all 0 -t 60s --perf -v --verify \
--tlb-shootdown 0 \
--fault 0 \
--userfaultfd 0 \
--fork 0 \
--exec 0 \
--memfd 0 \
--numa 0 \
--pkey 0 \
--remap 0 \
--vm 0 \
--rmap 0 \
-x swap,pagemove
(Note not all options shown here will work with --verify)

Let me know what else I can run for validation?
Do you know of any specific tests for validation of lazy mmu feature?

>> For this patch please feel free to add:
>> Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
>>
>>
>> CC: Venkat who also runs CI on linux Power HW for upstream testing :)
>
> Ack, will Cc you both in the next version.

Sure. Thanks!

-ritesh


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 06:36:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 06:36:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158117.1486508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vILVk-0002Wl-Kb; Mon, 10 Nov 2025 06:36:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158117.1486508; Mon, 10 Nov 2025 06: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 1vILVk-0002Wd-F8; Mon, 10 Nov 2025 06:36:20 +0000
Received: by outflank-mailman (input) for mailman id 1158117;
 Mon, 10 Nov 2025 06:36: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=Ugol=5S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vILVi-0002WV-SN
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 06:36:18 +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 868b7980-bdff-11f0-980a-7dc792cee155;
 Mon, 10 Nov 2025 07:36:02 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-42b2a0c18caso1623083f8f.1
 for <xen-devel@lists.xenproject.org>; Sun, 09 Nov 2025 22:36:02 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a8d:3447:d20d:2d49:c08?
 (p200300cab70c6a8d3447d20d2d490c08.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a8d:3447:d20d:2d49:c08])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42b32ecf522sm8675021f8f.45.2025.11.09.22.36.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 09 Nov 2025 22:36: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: 868b7980-bdff-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762756561; x=1763361361; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kr+XGRoKIHGRYsiEGErklOAhl7b0/4B1Yaxz6uQK/Zw=;
        b=GzEdIFS01sQ8D43+7ABYJhl7wnibH2yqjb6Ds+uUsnJT0oQ+pxMAyeZECKJiaqXd4U
         qW7cI+aYLQmN0xn4DMdPwTRqnnDK+e18lLA5ud9QN76OXF+PhamyLLHZFQMuJrRQ7M7w
         BnfjCtfvMw8Lvw17D+98P9nbKm1bBVKBiDWweddX4mp+01gvTraseI4IYvnpH0SFm1vz
         Hm7GyASu1ng5vUkbTIQalWQIw9vcmpD511HT0l2JvES9v3B2zV0AxAd69wci8z7j9LkN
         UEqWlZD3lAiaJFdmkOh20zF/1peyTZGhxEFksMZ9cyXIeeFDSzTgK6CJlKH4FWOzqo/L
         dy+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762756561; x=1763361361;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kr+XGRoKIHGRYsiEGErklOAhl7b0/4B1Yaxz6uQK/Zw=;
        b=jYWLsNLHdTy46qmcima9Us+TkBl60rQVqRwn9iQyVLE3xn50TIvnrxMdOCL6z3KzqI
         od7MhhAGNSaUkmZ/v+z9wEHXbAqglqRo7m+vNKor86oi+UXzYzgUu1blqf5GZdm9/Gp5
         rf+7qgwFUqw/4VMYxtxvXzw7+ae4/dyXLMt9wfxjMjq3j1KkgfhaynSHolDW9r+BRgdE
         ulpktNsx3yLiEFLQWef9qNCOmQtOaMa/IbVSZVoolQYdE8wheK6vS3MkZz4uI1MVx7ma
         WfDI8qjL7KWxKOxfgde5tp1gp4pX+QWKkjFIaW/mFh8cY6l5XTZXY7534VhssiecJEw6
         zyOQ==
X-Forwarded-Encrypted: i=1; AJvYcCXgC1JOnp+zoOK3SIwFQk7vc0WFTtl+pb1SnorKRaBvogq3H/Rz5jRsIT2oW4zb6NL3W42Ww5Uo+no=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx5Cy4wPJBl7iYGE5438GZnaJQCkPYHuBn0TRh1BmDs5j8Rs1WE
	qaPDUT2ePrRk6ITuEmjSEdR8MnfPYZWjRv4c50BhGHOLN13Cn7vR2qfQlLjtWcyU5g==
X-Gm-Gg: ASbGnctC+zV3pIVDEvjSQMYyMwaVlLxZUfRaC1Sxr0dUkpaP68HY1qXd4DR4zzHDwPt
	QDRkby/auI0QnN0knGOGkU468tUc5l7HtAlO8V9w5g9J3z2quzw5B4PABRMY+hw8kLukZN2bfEb
	PQtTOf9EzoDOqpUQJCAQZVhk+zJ7ezImM6FBrdqICtlnakSoyGSPFS2cLOFCvMHGFhYbcjG+v2m
	s6vvw5IoN9q1wsxLUOgDs4GFpDAaMap2cFCPh8B33kOduGM8j4BaE8xNw0OSDi1qBauJKBsRUb5
	4wGxeXCR8hemKE1sRijDXtfkGjlGiRFU7WWseRwdRaGZSF4PNnNLUMHhLuSKC/ySjCMaGUhGyfK
	LJNsM8sNFpb0UrStxUZ+tqtcTnuncq8eqRSX/CDd2M9s9wtloFCAdqDb244OGrj2JBn9zlk920B
	kOsNUgi9lKjUnf2aQZfRj1myvD4e2qdpLT0QeJgKzyn9t+mrCB4nAeI9oNADG0t+e2iwIdLRj9T
	5e3juXjlbkFpwSKX5zKBnO28v9L++fTC0sIwRMFkEDQ4Q==
X-Google-Smtp-Source: AGHT+IH4Rvto99U04q4jqjsdpgdqnC+Ko5Aw+FvKiuI1uwej27aa0B60AyTZGc2REe9VkQYIhp0MxA==
X-Received: by 2002:a5d:5f83:0:b0:428:5673:11e0 with SMTP id ffacd0b85a97d-42b2dc8725bmr5205479f8f.40.1762756561429;
        Sun, 09 Nov 2025 22:36:01 -0800 (PST)
Message-ID: <0613cfb9-0f6e-4c55-a250-ba2a5aa0e182@suse.com>
Date: Mon, 10 Nov 2025 07:36:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen: make VMTRACE support optional
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Penny Zheng <Penny.Zheng@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Teddy Astie <teddy.astie@vates.tech>
References: <20251031212005.1338212-1-grygorii_strashko@epam.com>
 <b6337cb5-da85-492d-bba9-688e35695c46@suse.com>
 <e55f990a-1781-4651-a899-9d78bbbbdfd0@epam.com>
 <63525e6f-4e17-4155-87b2-47b9ac9ea474@suse.com>
 <acac87ba-5a5a-49d1-925a-8754f4a3179f@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: <acac87ba-5a5a-49d1-925a-8754f4a3179f@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07.11.2025 16:47, Grygorii Strashko wrote:
> Hi
> 
> On 06.11.25 16:09, Jan Beulich wrote:
>> On 06.11.2025 14:50, Grygorii Strashko wrote:
>>> On 06.11.25 14:00, Jan Beulich wrote:
>>>> On 31.10.2025 22:20, Grygorii Strashko wrote:
>>>>> --- a/xen/Kconfig.debug
>>>>> +++ b/xen/Kconfig.debug
>>>>> @@ -155,4 +155,19 @@ config DEBUG_INFO
>>>>> Â Â Â Â Â Â Â Â  "make install-xen" for installing xen.efi, stripping needs to be
>>>>> Â Â Â Â Â Â Â Â  done outside the Xen build environment).
>>>>> Â Â  +config HAS_VMTRACE
>>>>> +Â Â Â  bool
>>>>> +
>>>>> +config VMTRACE
>>>>> +Â Â Â  bool "HW VM tracing support"
>>>>> +Â Â Â  depends on HAS_VMTRACE
>>>>> +Â Â Â  default y
>>>>> +Â Â Â  help
>>>>> +Â Â Â Â Â  Enables HW VM tracing support which allows to configure HW processor
>>>>> +Â Â Â Â Â  features (vmtrace_op) to enable capturing information about software
>>>>> +Â Â Â Â Â  execution using dedicated hardware facilities with minimal interference
>>>>> +Â Â Â Â Â  to the software being traced. The trace date can be retrieved using buffer
>>>>
>>>> Nit: s/date/data/
>>>>
>>>>> +Â Â Â Â Â  shared between Xen and domain
>>>>> +Â Â Â Â Â  (see XENMEM_acquire_resource(XENMEM_resource_vmtrace_buf)).
>>>>> +
>>>>
>>>> I was actually meaning to ask that "VMX only" should somehow be mentioned here,
>>>> but then I noticed this is an arch-independent location.
>>>
>>> Right, Arch code advertise VMTRACE support with HAS_VMTRACE.
>>> In this particular case:
>>> config INTEL_VMX
>>> ...
>>> Â Â Â Â select HAS_VMTRACE
>>>
>>>
>>>> I'm not quite sure we want it like this (just yet).
>>>
>>> ?
>>
>> To rephrase the question: Are we expecting anything other than VMX to support
>> VMTRACE any time soon?
>>
> 
> That's I do not know.
> 
> I assume your point is similar to what Teddy noted [1].
> 
> I think vmtrace code can be consolidate, but question is on what level(s):
> 
> only:
> Â xen/arch/x86/hvm/vmx/
> Â |- vmtrace.c
> 
> or:
> Â xen/arch/x86/hvm
> Â |- vmtrace.c
> Â Â Â  <- vmtrace_alloc/free_buffer(), acquire_vmtrace_buf(), do_vmtrace_op()
> Â xen/arch/x86/hvm/vmx/
> Â |- vmtrace.c
> 
> it will require more work comparing to the current change.

Well, I don't think code movement is strictly necessary here. But as I'm unconvinced
of Kconfig.debug (in whatever subdir) being an appropriate place to add this, for
the time being merely putting the new Kconfig option directly next to INTEL_VMX (and
then without any new HAS_*) wants at least considering, imo. If and when some other
use appears, HAS_* can be introduced and the whole thing moved.

As otoh abstracting things in an arch-independent way also has its merits, it is -
as said - not quite clear to me which way we'd prefer to have it.

Jan

> [1] https://patchwork.kernel.org/comment/26637627/
> 



From xen-devel-bounces@lists.xenproject.org Mon Nov 10 07:12:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 07:12:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158130.1486518 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIM4E-0007ee-5Q; Mon, 10 Nov 2025 07:11:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158130.1486518; Mon, 10 Nov 2025 07: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 1vIM4E-0007eX-1H; Mon, 10 Nov 2025 07:11:58 +0000
Received: by outflank-mailman (input) for mailman id 1158130;
 Mon, 10 Nov 2025 07:11: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=Ugol=5S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vIM4D-0007eR-L0
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 07:11:57 +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 89dbc640-be04-11f0-980a-7dc792cee155;
 Mon, 10 Nov 2025 08:11:55 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-42b312a089fso704465f8f.2
 for <xen-devel@lists.xenproject.org>; Sun, 09 Nov 2025 23:11:55 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a8d:3447:d20d:2d49:c08?
 (p200300cab70c6a8d3447d20d2d490c08.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a8d:3447:d20d:2d49:c08])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47763da0242sm102606345e9.0.2025.11.09.23.11.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 09 Nov 2025 23:11: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: 89dbc640-be04-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762758714; x=1763363514; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ttuGbKCkdItCP9jPmadASk+Rq7sHRnNWhiGeJiQoEkc=;
        b=Wb3oAarux0njJqyE/7IHQRUoitgTQkXHF0rJj1dJ8HXLAHX0eUewkaX2MYU3CBLxqK
         7PQPUrFNxmypjMUcYqyQ9SfpyzW9R6NIgTen+fVc6jBPhWUJuIAJjLSCZ3u3RRzBrB2c
         sbIcy/xnuE0x6OmSNTuisgsE9PXxUIkOq8a1J3U3rS38s8aZ4FLAlCyvVRKiCWX/9ucP
         0e08pHG5GeNUDvFOgPGfSoj4ApgNFHJMLxjx79eDVEmBjHdmZeor2+naSDe1Qwa7WbYZ
         1fdeBb85DLwQQjRVXAtY/qAyEvWnm4EXMQjPYrO0cPmKVcAXuFvPu9/vXmE4CnGkDRQT
         oxdg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762758714; x=1763363514;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ttuGbKCkdItCP9jPmadASk+Rq7sHRnNWhiGeJiQoEkc=;
        b=F1GzMeY4uZuthVkZrg8okl1KT1+GpTMMlETQqecUHS9KkMUclgnf3mZFyEAmJjge6R
         rbEOddqI/hecHs2Xa3M6+KGWo51FHboONIC11mVZaTRGO3LtRsQqtSz3uD4vLL86q2lx
         jEHLahHrANPUchqTihVcBYJkwc5WFWg21oJmRgmyTjdyomS7WpHHYa+LaoD4gsxMviPe
         qBPnqQN0zE8rpGePMyl6A3BxH1iBJZPPEsV9RbOATUSOdyRAYYZ9cXM8pklrUYeTtvNy
         HHS6vjfoFnW+9PAvrcZuth6bU1bNoZt3vGONA0vwM8aGoXn12gj9Su1nUJLI723S8gEY
         405g==
X-Forwarded-Encrypted: i=1; AJvYcCWitN2/4wGt0jUs3nhvG3CExSj7I35g7j/1oH7RgEwiUnjNtr54j/1RPoYcXTNURamLy+JYUoUF1nQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxVqifWU4x6rprYOg3TbIhtNmUirxXuB06mEvPwezwaUQBWAdW0
	GpO9WwMMkqg2FOuL8PQ/8aLCikKu8QzpMDtoFqhP/lQ2bb7u992FLSUalMVESzlcvA==
X-Gm-Gg: ASbGncvpmMObeIgcWgafftfpE/MoWVgu/SZPqjpGxI2bZ7DK3FsF6guVSkwzhTg4EUf
	qp6Qm03MhLaOvKi5ua7HtwnbePoQ6nsxSCr8gde7gg9ahWzN8T934tk1V1Pt6i9qBL+eJfqwBek
	+jIcRhUXkbHRMbRuRG/8KR5SaAMgDIO7yRdjhu7nKgNctHt7a9ssRRzfSrc/yREO2MzDOJdUU0N
	3r4yev0Hy/qiKDIX8HDclgkTKcYMSVe+ZxaTqtdjs/wuh1Pa6w/wA8GrLHvYW1mRAm5Z5S5K1vD
	BMEy8OsyXQ2Zj48YxBjRGdPpN/kvplSaiQ+rKPInwulHFa2Q7fdznsj5HBHVw841Q2gFVYIFZc5
	VePR7fKFXIYWhUTfFZPlDVMrNMqmuG2gk0OxQNayBhIVGG4WUSBk/TPV0BeO8BwgqtrsWXRcB1V
	C8CkMwR2CMhDF1KFmGLgM/zgRJ2aNaknp7D63HAQByF5NV3Regv7aT9TKr3RypwIvXC/UQV3mYS
	B3QTKd3RCYruV1VLAX9hH2KUsQQVtPYSPQfllORe1SWkg==
X-Google-Smtp-Source: AGHT+IHs4quEVGCJ7ej0+1HlDO/LlNkZHALscGjlkCI9Lah6RGuFonPNb1lWg/APbdiL76LHV8eyVA==
X-Received: by 2002:a05:600c:3b1f:b0:46f:b42e:e360 with SMTP id 5b1f17b1804b1-4777329c723mr60186835e9.40.1762758714526;
        Sun, 09 Nov 2025 23:11:54 -0800 (PST)
Message-ID: <47f86a44-007f-4b90-9656-b2440238b2ba@suse.com>
Date: Mon, 10 Nov 2025 08:11:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v3] xen/x86: guest_access: optimize raw_x_guest() for
 PV and HVM combinations
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251107181739.3034098-1-grygorii_strashko@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: <20251107181739.3034098-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.11.2025 19:17, Grygorii Strashko wrote:
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -71,7 +71,7 @@ obj-y += time.o
>  obj-y += traps-setup.o
>  obj-y += traps.o
>  obj-$(CONFIG_INTEL) += tsx.o
> -obj-y += usercopy.o
> +obj-$(CONFIG_PV) += usercopy.o

Imo, if this was indeed doable (see below) the file would rather want moving
to pv/.

> --- a/xen/arch/x86/include/asm/guest_access.h
> +++ b/xen/arch/x86/include/asm/guest_access.h
> @@ -13,26 +13,64 @@
>  #include <asm/hvm/guest_access.h>
>  
>  /* Raw access functions: no type checking. */
> -#define raw_copy_to_guest(dst, src, len)        \
> -    (is_hvm_vcpu(current) ?                     \
> -     copy_to_user_hvm((dst), (src), (len)) :    \
> -     copy_to_guest_pv(dst, src, len))
> -#define raw_copy_from_guest(dst, src, len)      \
> -    (is_hvm_vcpu(current) ?                     \
> -     copy_from_user_hvm((dst), (src), (len)) :  \
> -     copy_from_guest_pv(dst, src, len))
> -#define raw_clear_guest(dst,  len)              \
> -    (is_hvm_vcpu(current) ?                     \
> -     clear_user_hvm((dst), (len)) :             \
> -     clear_guest_pv(dst, len))
> -#define __raw_copy_to_guest(dst, src, len)      \
> -    (is_hvm_vcpu(current) ?                     \
> -     copy_to_user_hvm((dst), (src), (len)) :    \
> -     __copy_to_guest_pv(dst, src, len))
> -#define __raw_copy_from_guest(dst, src, len)    \
> -    (is_hvm_vcpu(current) ?                     \
> -     copy_from_user_hvm((dst), (src), (len)) :  \
> -     __copy_from_guest_pv(dst, src, len))
> +static inline bool raw_use_hvm_access(const struct vcpu *v)
> +{
> +    return IS_ENABLED(CONFIG_HVM) && (!IS_ENABLED(CONFIG_PV) || is_hvm_vcpu(v));
> +}

Without a full audit (likely tedious and error prone) this still is a
behavioral change for some (likely unintended) use against a system domain
(likely the idle one): With HVM=y PV=n we'd suddenly use the HVM accessor
there. IOW imo the "system domains are implicitly PV" aspect wants
retaining, even if only "just in case". It's okay not to invoke the PV
accessor (but return "len" instead), but it's not okay to invoke the HVM
one.

> +static inline unsigned int raw_copy_to_guest(void *dst, const void *src,
> +                                             unsigned int len)
> +{
> +    if ( raw_use_hvm_access(current) )
> +        return copy_to_user_hvm(dst, src, len);
> +    else if ( IS_ENABLED(CONFIG_PV) )
> +        return copy_to_guest_pv(dst, src, len);
> +    else
> +        return len;
> +}
> +
> +static inline unsigned int raw_copy_from_guest(void *dst, const void *src,
> +                                               unsigned int len)
> +{
> +    if ( raw_use_hvm_access(current) )
> +        return copy_from_user_hvm(dst, src, len);
> +    else if ( IS_ENABLED(CONFIG_PV) )
> +        return copy_from_guest_pv(dst, src, len);
> +    else
> +        return len;
> +}
> +
> +static inline unsigned int raw_clear_guest(void *dst, unsigned int len)
> +{
> +    if ( raw_use_hvm_access(current) )
> +        return clear_user_hvm(dst, len);
> +    else if ( IS_ENABLED(CONFIG_PV) )
> +        return clear_guest_pv(dst, len);
> +    else
> +        return len;
> +}
> +
> +static inline unsigned int __raw_copy_to_guest(void *dst, const void *src,
> +                                               unsigned int len)
> +{
> +    if ( raw_use_hvm_access(current) )
> +        return copy_to_user_hvm(dst, src, len);
> +    else if ( IS_ENABLED(CONFIG_PV) )
> +        return __copy_to_guest_pv(dst, src, len);
> +    else
> +        return len;
> +}
> +
> +static inline unsigned int __raw_copy_from_guest(void *dst, const void *src,
> +                                                 unsigned int len)
> +{
> +    if ( raw_use_hvm_access(current) )
> +        return copy_from_user_hvm(dst, src, len);
> +    else if ( IS_ENABLED(CONFIG_PV) )
> +        return __copy_from_guest_pv(dst, src, len);
> +    else
> +        return len;
> +}

I have to admit that I'm not quite happy about the redundancy here (leaving
aside the imo Misra-conflicting uses of "else"). It looks as if some macro-
ization could still help. Not sure what others think, though.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 08:13:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 08:13:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158142.1486527 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIN1R-00071p-Cw; Mon, 10 Nov 2025 08:13:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158142.1486527; Mon, 10 Nov 2025 08:13:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIN1R-00071i-9X; Mon, 10 Nov 2025 08:13:09 +0000
Received: by outflank-mailman (input) for mailman id 1158142;
 Mon, 10 Nov 2025 08: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=B9Y/=5S=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1vIN1Q-00071c-2N
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 08:13:08 +0000
Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com
 [148.163.156.1]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 14e8ff0f-be0d-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 09:13:05 +0100 (CET)
Received: from pps.filterd (m0360083.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5A9Mrb3H023648;
 Mon, 10 Nov 2025 08:11:59 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4a9wc6y6xk-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 10 Nov 2025 08:11:58 +0000 (GMT)
Received: from m0360083.ppops.net (m0360083.ppops.net [127.0.0.1])
 by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5AA86mfJ029272;
 Mon, 10 Nov 2025 08:11:58 GMT
Received: from ppma23.wdc07v.mail.ibm.com
 (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4a9wc6y6xf-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 10 Nov 2025 08:11:58 +0000 (GMT)
Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1])
 by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5AA51uvx014762;
 Mon, 10 Nov 2025 08:11:56 GMT
Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224])
 by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4aahpjvgyb-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Mon, 10 Nov 2025 08:11:56 +0000
Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com
 [10.20.54.101])
 by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 5AA8BsbP47645168
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 10 Nov 2025 08:11:54 GMT
Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 951A120043;
 Mon, 10 Nov 2025 08:11:54 +0000 (GMT)
Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 7574A20040;
 Mon, 10 Nov 2025 08:11:52 +0000 (GMT)
Received: from li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com (unknown
 [9.87.129.150])
 by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Mon, 10 Nov 2025 08:11:52 +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: 14e8ff0f-be0d-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=pp1; bh=WrPV25
	ztsYqDlknSOqBjqi2t4Xb9rXv0xi6T3uNdmFI=; b=Yv6+1trT97d7+DoSIjC5W6
	OLc4ylQKCKMAex0x0xYUBtCqgGuOUmceIjAitPSSQP4ha308n1vNjyCUQ6cvZ2r4
	ei0eh+6E9Z0WEUSMVNe1jsCNm1I0JTMS3qMI8JK4k2CVJe8jcjFAe6GAYoZoYIPF
	f2cH/cIWwfriYd6HDlkD0TTd91dXSMehLyFJYeYA+XopFefAuy+V38DHQN1UNf/W
	3T+xvOmCCkXhX+7+7DFZbaLjxNtRDGKQpKgGoSwe7T8r3LPSCJLEPD7oCZTkMUFj
	LW2FbGx5/pNgTdyi+piCoZDGmqPtaOa5o+7Wu4AdD2ze9GkYr3qc6pGcoRQ53Zvg
	==
Date: Mon, 10 Nov 2025 09:11:50 +0100
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Ryan Roberts <ryan.roberts@arm.com>
Cc: "David Hildenbrand (Red Hat)" <davidhildenbrandkernel@gmail.com>,
        Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org,
        linux-kernel@vger.kernel.org, Andreas Larsson <andreas@gaisler.com>,
        Andrew Morton <akpm@linux-foundation.org>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Borislav Petkov <bp@alien8.de>,
        Catalin Marinas <catalin.marinas@arm.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "David S. Miller" <davem@davemloft.net>,
        David Woodhouse <dwmw2@infradead.org>,
        "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
        Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
        "Liam R. Howlett" <Liam.Howlett@oracle.com>,
        Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
        Madhavan Srinivasan <maddy@linux.ibm.com>,
        Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
        Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
        Peter Zijlstra <peterz@infradead.org>,
        Suren Baghdasaryan <surenb@google.com>,
        Thomas Gleixner <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
        Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
        linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        x86@kernel.org
Subject: Re: [PATCH v4 06/12] mm: introduce generic lazy_mmu helpers
Message-ID: <413b2c49-f124-4cda-8fea-a6cc165f6326-agordeev@linux.ibm.com>
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-7-kevin.brodsky@arm.com>
 <71418b31-aedb-4600-9558-842515dd6c44@arm.com>
 <c764489e-0626-4a50-87b5-39e15d9db733@gmail.com>
 <645178fd-df4e-42fe-b55e-97d9506499be@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <645178fd-df4e-42fe-b55e-97d9506499be@arm.com>
X-TM-AS-GCONF: 00
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTA4MDAxOCBTYWx0ZWRfX0qxBt6PLz+e1
 5ZkKhsJ1OtkLmCa4F9dckZhmGNoe5OQimO5vrOJyhCGGn+Oo9dBlfBgtY6sJsMOGytiqooOVqqZ
 5VlqH6qDTNOxg7GqSCIIkxN9587HG/yU0g8PN3RC/Kn+8SDIn+tbvRphHit2rtoXvmhJTS9c/na
 zuc/vHReC35SkVZuc771TOtpWXwRcO+j9mxabq08ugqh/MQzZP8E1qqkKzT/vrw3I0gce+auuVH
 8WG34NSJDjSCXhv0z/g1L2qiclooBzH5Y6sWhPQC3GQgXW7SVzsG1L6s2HqrTxBfWDx3OGWlJ4d
 4V2wmLiIQn3wqkNWKtMaFFAnqiHVcDdPhaMGEjvefyMBpcxvcGE7lueGMCRslhcd2O9xOyzBoik
 qwn8HhTZbHMdNrVo7h0rei5NGYuy+g==
X-Authority-Analysis: v=2.4 cv=GcEaXAXL c=1 sm=1 tr=0 ts=69119e4e cx=c_pps
 a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17
 a=8nJEP1OIZ-IA:10 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=7CQSdrXTAAAA:8 a=AOQWXcEz_zGDWlu_gTMA:9
 a=3ZKOabzyN94A:10 a=wPNLvfGTeEIA:10 a=a-qgeE7W1pNrGK8U0ZQC:22
 a=DXsff8QfwkrTrK3sU8N1:22 a=Z5ABNNGmrOfJ6cZ5bIyy:22 a=bWyr8ysk75zN3GCy5bjg:22
X-Proofpoint-GUID: fP4xPRY0VPWa2LszakKlWyXVqqNy18Qg
X-Proofpoint-ORIG-GUID: hjtY_m4sJxhd70lXi6KoIa-Y8h7Rk4-J
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-11-10_03,2025-11-06_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 suspectscore=0 malwarescore=0 bulkscore=0 adultscore=0 impostorscore=0
 lowpriorityscore=0 clxscore=1015 spamscore=0 priorityscore=1501 phishscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511080018

On Fri, Nov 07, 2025 at 03:22:54PM +0000, Ryan Roberts wrote:

Hi Ryan,

> On 07/11/2025 14:34, David Hildenbrand (Red Hat) wrote:
> >>>   #ifndef pte_batch_hint
> >>> diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
> >>> index 5d2a876035d6..c49b029d3593 100644
> >>> --- a/mm/kasan/shadow.c
> >>> +++ b/mm/kasan/shadow.c
> >>> @@ -305,7 +305,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep,
> >>> unsigned long addr,
> >>>       pte_t pte;
> >>>       int index;
> >>>   -    arch_leave_lazy_mmu_mode();
> >>> +    lazy_mmu_mode_pause();
> >>
> >> I wonder if there really are use cases that *require* pause/resume? I think
> >> these kasan cases could be correctly implemented using a new nest level instead?
> >> Are there cases where the effects really need to be immediate or do the effects
> >> just need to be visible when you get to where the resume is?
> >>
> >> If the latter, that could just be turned into a nested disable (e.g. a flush).
> >> In this case, there is only 1 PTE write so no benefit, but I wonder if other
> >> cases may have more PTE writes that could then still be batched. It would be
> >> nice to simplify the API by removing pause/resume if we can?
> > 
> > It has clear semantics, clearer than some nest-disable IMHO.
> > 
> > Maybe you can elaborate how you would change ("simplify") the API in that
> > regard? What would the API look like?
> 
> By simplify, I just meant can we remove lazy_mmu_mode_pause() and
> lazy_mmu_mode_resume() ?
> 
> 
> We currently have:
> 
> apply_to_page_range
>   lazy_mmu_mode_enable()
>     kasan_populate_vmalloc_pte()
>       lazy_mmu_mode_pause()
>       <code>
>       lazy_mmu_mode_resume()
>   lazy_mmu_mode_disable()
> 
> Where <code> is setting ptes. But if <code> doesn't need the effects to be
> visible until lazy_mmu_mode_resume(), then you could replace the block with:
> 
> apply_to_page_range
>   lazy_mmu_mode_enable()
>     kasan_populate_vmalloc_pte()
>       lazy_mmu_mode_enable()
>       <code>
>       lazy_mmu_mode_disable()
>   lazy_mmu_mode_disable()
> 
> However, looking at this more closely, I'm not really clear on why we need *any*
> special attention to lazy mmu inside of kasan_populate_vmalloc_pte() and
> kasan_depopulate_vmalloc_pte().
> 
> I *think* that the original concern was that we were doing ptep_get(ptep) inside
> of a lazy_mmu block? So we need to flush so that the getter returns the most
> recent value? But given we have never written to that particular ptep while in
> the lazy mmu block, there is surely no hazard in the first place?

There is, please see:
https://lore.kernel.org/linux-mm/cover.1755528662.git.agordeev@linux.ibm.com/

> apply_to_existing_page_range() will only call kasan_depopulate_vmalloc_pte()
> once per pte, right? So given we read the ptep before writing it, there should
> be no hazard? If so we can remove pause/resume.

Unfortunately, we rather not, please see:
https://lore.kernel.org/linux-mm/d407a381-099b-4ec6-a20e-aeff4f3d750f@arm.com/

The problem is kasan code invokes apply_to_page_range(), which enters lazy_mmu
mode unconditionally. I would claim that is rather an obstacle for the kasan
code, not a benefit. But it needs to be tackled.

Should apply_to_page_range() had an option not to enter the lazy_mmu mode
(e.g. an extra "bool skip_lazy" parameter) - the pause/resume could have
been avoided.

> Thanks,
> Ryan

Thanks!


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 08:44:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 08:44:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158157.1486537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vINVw-0002cD-SR; Mon, 10 Nov 2025 08:44:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158157.1486537; Mon, 10 Nov 2025 08:44:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vINVw-0002c6-Ph; Mon, 10 Nov 2025 08:44:40 +0000
Received: by outflank-mailman (input) for mailman id 1158157;
 Mon, 10 Nov 2025 08:44: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=cpW6=5S=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vINVv-0002bz-Ac
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 08:44:39 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7cf19759-be11-11f0-980a-7dc792cee155;
 Mon, 10 Nov 2025 09:44:37 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-63b9da57cecso4290664a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 00:44:37 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b72bfa24d1fsm1015564766b.73.2025.11.10.00.44.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 10 Nov 2025 00:44: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: 7cf19759-be11-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762764276; x=1763369076; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:to:subject:user-agent
         :mime-version:date:message-id:from:to:cc:subject:date:message-id
         :reply-to;
        bh=w7LKLmJFnTZd1KGi6HWsaZz7t+rTUNDbLdHP6oTz5XU=;
        b=R96c+9Xbd4Aby/ZTyGa5rLiwqHTJbRfgK+CrSJ8Pkeh/aB9wyZKsdL3YIfU1z5BSwO
         31R66oRAhB/hiFqTCGVGuC3huKIYgKzJRKTAA7VJYpByZsEcpyIXV5wlloclH9VOMAev
         kNRlpw5lXo+mEtl48O5wM/djo6BwBoE1J2P6hHwxcTKgj0PpXM0ZXT5ENCGaM3Hu6jdf
         XC0pXklYBiHWdOVmGCeQnTVuG5IvJBVt4xoxruu9IkFdTxp68Wr2LGhJjXKnylf2wYLB
         UBRmatL17ZxOfD4hSAsn3lKKcadQXSetdxb6tZaJ0GuiaCdbhYv0z0h2/IGCxjWmIhvW
         RvZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762764276; x=1763369076;
        h=in-reply-to:from:content-language:references:to:subject:user-agent
         :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=w7LKLmJFnTZd1KGi6HWsaZz7t+rTUNDbLdHP6oTz5XU=;
        b=oM7uY2fS1RixcngoyOhK7i99QxBXMeIKvgCGcEm8VU2McYDMG4bQ5Pri2vW0o4BCmt
         VRylLvI9rd43BEp5bpXyoyppqI5PrnvuzAjF+xlgXMHse5pX2Dj0hjG1xxP9JBKfPXv0
         fLNmVYw1w485lasaKei7+dJurHEDiteGnWj6+ktrAFHFhVv2P1ZR8iFk7upva2Vij453
         FmMauHCdWY/8A1nwF6TAN9qJo1zykEtVdPSdNaQGHLb1ptxUFDizvSlrh2xRtK//4Nkk
         0vbDJ4XH9QvdNbeh2s6LlslzZDMoIxbvwZ+OR14Ws4nxyvZ3rpsZPyIXItHbDgISFsPb
         1grA==
X-Forwarded-Encrypted: i=1; AJvYcCUeeNxOkvTUp363bKVnYaGDzrffvo42lu6ZSm1TeMaNuatNnGKSMff5F+A+x6Sj6fLEIJjDmnuj0ic=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw8fOy2xzdSUdhQKnEsnfsrpehjBRfdfY3D/UUb39RPa5Zj/kSf
	80LCBCs92MePergGsc4L3K55XcW/CFFganR5do0b8U/ZidoPDXeINsFc
X-Gm-Gg: ASbGncsyGQgjv07nshsfgf2CpaWu/B7ELjSz4vUOxBbrIn2bYlGvv8vUdRo26qrf8TM
	OiKk9x6ru0UsBkTR/iuUr1qqOz3vGLD/tXeMBYKdBTwWDDHVxCC60Gwx7lV3GzwgLFscKDUyJc7
	w6BkrKCd8sfajO9fnDtDmYtIu6m1gQsQyyAnSkYZtF8XsHIgkxLdKmFue4dyf8prYBfBkC+Sdma
	qPUblzjuys7/Kz1orOl2gBYNTKBJDTWgVvIcXBc7aWg69WqkvOea42Ae+vEASj8JAy/Vo4M+YPw
	o6NY3XEJsyr5PL8kPdRK32UrxKcvCOjbIK0xSN27CS/0a19kvhUadRdrqzkM0t86nqLDCCdOubA
	B6I7X6lB9P5w0MeNmDPxppOaXq6+bKtaRb3iStPXqF5Vp6Z3Ox2ifEyI/9ctTjLuaS7WkRy/7Sr
	Z5vjE9xOGItD5frWyB6rkR7tmYgw9OQtjN8SITltO+aQNtE1FKuIB5Bj0JDt4H
X-Google-Smtp-Source: AGHT+IHyaveBc1mFku98W4Fskg3gRtDDG3Znkla0pfa9wn9Mh2FYC7vyX/4wtd1edYvOgXNQkHHkUw==
X-Received: by 2002:a17:907:841:b0:b72:67c2:6eb0 with SMTP id a640c23a62f3a-b72e0562e6dmr805812166b.62.1762764276043;
        Mon, 10 Nov 2025 00:44:36 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------Wvu8FsypiDWNyspQYkevPvrX"
Message-ID: <c71613e1-9309-430b-b656-018dda8e6a07@gmail.com>
Date: Mon, 10 Nov 2025 09:44:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.21] fix xl.cfg docs to correct viridian defaults
 list
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 James Dingwall <james-xen@dingwall.me.uk>, xen-devel@lists.xenproject.org
References: <aQ5HR2eEQ9awKtpC@dingwall.me.uk>
 <8c9f0988-0eb3-40f0-bd22-13b23af03ed8@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <8c9f0988-0eb3-40f0-bd22-13b23af03ed8@citrix.com>

This is a multi-part message in MIME format.
--------------Wvu8FsypiDWNyspQYkevPvrX
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/7/25 11:50 PM, Andrew Cooper wrote:
> On 07/11/2025 7:23 pm, James Dingwall wrote:
>> Hi,
>>
>> I was trying to work out why this would cause my Windows 10 guest to hang
>> when it should have been equivalent to ['defaults'] or 1.
>>
>> viridian = ['base', 'freq', 'apic_assist', 'crash_ctl', 'no_vp_limit', 'cpu_hotplug', 'time_ref_count', 'stimer']
>>
>> Checking the libxl sources show that in fact the defaults are:
>>
>>      if (libxl_defbool_val(info->u.hvm.viridian)) {
>>          /* Enable defaults */
>>          libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_BASE);
>>          libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_FREQ);
>>          libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_TIME_REF_COUNT);
>>          libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_APIC_ASSIST);
>>          libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_CRASH_CTL);
>>          libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_NO_VP_LIMIT);
>>          libxl_bitmap_set(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_CPU_HOTPLUG);
>>      }
>>
>> LIBXL_VIRIDIAN_ENLIGHTENMENT_STIMER was removed as a default enlightement in
>> e83077a3d11072708a5c38fa09fa9d011914e2a1 but the docs were not kept aligned.
> Hmm, indeed.
>
> For the patch, Reviewed-by: Andrew Cooper<andrew.cooper3@citrix.com>
>
> It should have a fixes tag, but I can fix that on commit.
>
> CC'ing Oleksii.Â  This is a docs fix should be considered for 4.21 at
> this juncture.

Agree, it could be in 4.21:

Release-Acked-By: Oleksii Kurochko<oleksii.kurochko@gmail.com>

Thanks for notifying me.

~ Oleksii

--------------Wvu8FsypiDWNyspQYkevPvrX
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/7/25 11:50 PM, Andrew Cooper
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:8c9f0988-0eb3-40f0-bd22-13b23af03ed8@citrix.com">
      <pre wrap="" class="moz-quote-pre">On 07/11/2025 7:23 pm, James Dingwall wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Hi,

I was trying to work out why this would cause my Windows 10 guest to hang
when it should have been equivalent to ['defaults'] or 1.

viridian = ['base', 'freq', 'apic_assist', 'crash_ctl', 'no_vp_limit', 'cpu_hotplug', 'time_ref_count', 'stimer']

Checking the libxl sources show that in fact the defaults are:

    if (libxl_defbool_val(info-&gt;u.hvm.viridian)) {
        /* Enable defaults */
        libxl_bitmap_set(&amp;enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_BASE);
        libxl_bitmap_set(&amp;enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_FREQ);
        libxl_bitmap_set(&amp;enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_TIME_REF_COUNT);
        libxl_bitmap_set(&amp;enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_APIC_ASSIST);
        libxl_bitmap_set(&amp;enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_CRASH_CTL);
        libxl_bitmap_set(&amp;enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_NO_VP_LIMIT);
        libxl_bitmap_set(&amp;enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_CPU_HOTPLUG);
    }

LIBXL_VIRIDIAN_ENLIGHTENMENT_STIMER was removed as a default enlightement in
e83077a3d11072708a5c38fa09fa9d011914e2a1 but the docs were not kept aligned.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Hmm, indeed.

For the patch, Reviewed-by: Andrew Cooper <a class="moz-txt-link-rfc2396E" href="mailto:andrew.cooper3@citrix.com">&lt;andrew.cooper3@citrix.com&gt;</a>

It should have a fixes tag, but I can fix that on commit.

CC'ing Oleksii.Â  This is a docs fix should be considered for 4.21 at
this juncture.</pre>
    </blockquote>
    <pre>Agree, it could be in 4.21:

Release-Acked-By: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

Thanks for notifying me.

~ Oleksii</pre>
  </body>
</html>

--------------Wvu8FsypiDWNyspQYkevPvrX--


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 09:20:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 09:20:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158169.1486548 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIO42-0006sK-Cz; Mon, 10 Nov 2025 09:19:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158169.1486548; Mon, 10 Nov 2025 09:19: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 1vIO42-0006sC-A0; Mon, 10 Nov 2025 09:19:54 +0000
Received: by outflank-mailman (input) for mailman id 1158169;
 Mon, 10 Nov 2025 09:19: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=YXtN=5S=arm.com=ryan.roberts@srs-se1.protection.inumbo.net>)
 id 1vIO40-0006s6-TB
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 09:19:52 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 68511ab8-be16-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 10:19:50 +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 91A6F2B;
 Mon, 10 Nov 2025 01:19:41 -0800 (PST)
Received: from [10.57.85.123] (unknown [10.57.85.123])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id CED693F63F;
 Mon, 10 Nov 2025 01:19: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: 68511ab8-be16-11f0-9d18-b5c5bf9af7f9
Message-ID: <e428b1d5-65a8-49bc-92dc-ec4a4d933dec@arm.com>
Date: Mon, 10 Nov 2025 09:19:40 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 06/12] mm: introduce generic lazy_mmu helpers
Content-Language: en-GB
To: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: "David Hildenbrand (Red Hat)" <davidhildenbrandkernel@gmail.com>,
 Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org,
 linux-kernel@vger.kernel.org, Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-7-kevin.brodsky@arm.com>
 <71418b31-aedb-4600-9558-842515dd6c44@arm.com>
 <c764489e-0626-4a50-87b5-39e15d9db733@gmail.com>
 <645178fd-df4e-42fe-b55e-97d9506499be@arm.com>
 <413b2c49-f124-4cda-8fea-a6cc165f6326-agordeev@linux.ibm.com>
From: Ryan Roberts <ryan.roberts@arm.com>
In-Reply-To: <413b2c49-f124-4cda-8fea-a6cc165f6326-agordeev@linux.ibm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10/11/2025 08:11, Alexander Gordeev wrote:
> On Fri, Nov 07, 2025 at 03:22:54PM +0000, Ryan Roberts wrote:
> 
> Hi Ryan,
> 
>> On 07/11/2025 14:34, David Hildenbrand (Red Hat) wrote:
>>>>> Â  #ifndef pte_batch_hint
>>>>> diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
>>>>> index 5d2a876035d6..c49b029d3593 100644
>>>>> --- a/mm/kasan/shadow.c
>>>>> +++ b/mm/kasan/shadow.c
>>>>> @@ -305,7 +305,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep,
>>>>> unsigned long addr,
>>>>> Â Â Â Â Â  pte_t pte;
>>>>> Â Â Â Â Â  int index;
>>>>> Â  -Â Â Â  arch_leave_lazy_mmu_mode();
>>>>> +Â Â Â  lazy_mmu_mode_pause();
>>>>
>>>> I wonder if there really are use cases that *require* pause/resume? I think
>>>> these kasan cases could be correctly implemented using a new nest level instead?
>>>> Are there cases where the effects really need to be immediate or do the effects
>>>> just need to be visible when you get to where the resume is?
>>>>
>>>> If the latter, that could just be turned into a nested disable (e.g. a flush).
>>>> In this case, there is only 1 PTE write so no benefit, but I wonder if other
>>>> cases may have more PTE writes that could then still be batched. It would be
>>>> nice to simplify the API by removing pause/resume if we can?
>>>
>>> It has clear semantics, clearer than some nest-disable IMHO.
>>>
>>> Maybe you can elaborate how you would change ("simplify") the API in that
>>> regard? What would the API look like?
>>
>> By simplify, I just meant can we remove lazy_mmu_mode_pause() and
>> lazy_mmu_mode_resume() ?
>>
>>
>> We currently have:
>>
>> apply_to_page_range
>>   lazy_mmu_mode_enable()
>>     kasan_populate_vmalloc_pte()
>>       lazy_mmu_mode_pause()
>>       <code>
>>       lazy_mmu_mode_resume()
>>   lazy_mmu_mode_disable()
>>
>> Where <code> is setting ptes. But if <code> doesn't need the effects to be
>> visible until lazy_mmu_mode_resume(), then you could replace the block with:
>>
>> apply_to_page_range
>>   lazy_mmu_mode_enable()
>>     kasan_populate_vmalloc_pte()
>>       lazy_mmu_mode_enable()
>>       <code>
>>       lazy_mmu_mode_disable()
>>   lazy_mmu_mode_disable()
>>
>> However, looking at this more closely, I'm not really clear on why we need *any*
>> special attention to lazy mmu inside of kasan_populate_vmalloc_pte() and
>> kasan_depopulate_vmalloc_pte().
>>
>> I *think* that the original concern was that we were doing ptep_get(ptep) inside
>> of a lazy_mmu block? So we need to flush so that the getter returns the most
>> recent value? But given we have never written to that particular ptep while in
>> the lazy mmu block, there is surely no hazard in the first place?
> 
> There is, please see:
> https://lore.kernel.org/linux-mm/cover.1755528662.git.agordeev@linux.ibm.com/

I've stared at this for a while, but I'm afraid I still don't see the problem.
This all looks safe to me. Could you explain exactly what this issue is?

If I've understood correctly, kasan_populate_vmalloc() is called during virtual
range allocation by vmalloc. This is not in a nested lazy mmu block (but it
wouldn't matter if it was once we have Kevin's nested changes to ensure flush
when exiting the nested scope). kasan_populate_vmalloc() calls
apply_to_page_range(), which will walk the set of ptes, calling
kasan_populate_vmalloc_pte() for each one. kasan_populate_vmalloc_pte() does a
ptep_get() then, if none, calls set_pte_at().

That's not a hazard since you're calling get before the set and you only visit
each pte once for the apply_to_page_range() lazy mmu block.

> 
>> apply_to_existing_page_range() will only call kasan_depopulate_vmalloc_pte()
>> once per pte, right? So given we read the ptep before writing it, there should
>> be no hazard? If so we can remove pause/resume.
> 
> Unfortunately, we rather not, please see:
> https://lore.kernel.org/linux-mm/d407a381-099b-4ec6-a20e-aeff4f3d750f@arm.com/

Sorry but I don't see anything relavent to my point in this mail. Perhaps there
is some s390-specific detail that I'm failing to understand?

Thanks,
Ryan

> 
> The problem is kasan code invokes apply_to_page_range(), which enters lazy_mmu
> mode unconditionally. I would claim that is rather an obstacle for the kasan
> code, not a benefit. But it needs to be tackled.
> > Should apply_to_page_range() had an option not to enter the lazy_mmu mode
> (e.g. an extra "bool skip_lazy" parameter) - the pause/resume could have
> been avoided.
> 
>> Thanks,
>> Ryan
> 
> Thanks!



From xen-devel-bounces@lists.xenproject.org Mon Nov 10 09:27:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 09:27:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158182.1486558 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIOBT-0008SP-43; Mon, 10 Nov 2025 09:27:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158182.1486558; Mon, 10 Nov 2025 09:27:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIOBT-0008SI-1G; Mon, 10 Nov 2025 09:27:35 +0000
Received: by outflank-mailman (input) for mailman id 1158182;
 Mon, 10 Nov 2025 09:27: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=cpW6=5S=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vIOBS-0008SC-0T
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 09:27:34 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7c6ecddd-be17-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 10:27:33 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-b7277324054so394164766b.0
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 01:27:33 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b72bf97d16esm1047362466b.35.2025.11.10.01.27.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 10 Nov 2025 01:27: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: 7c6ecddd-be17-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762766852; x=1763371652; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DwUcULCL/l6E4Vwj4UeykkUTRA6SwlEiv//sFr+BCd8=;
        b=ZAslsPw/BLi0NaEkpOo4pxMlDxrX84rVHyoeStxrj+CzGdRTW2qMoiRu6Uh0ufooLg
         MkyayTtQ7BzUPD555bfKPmyE6EiEKfhXpvNN6f+dW8V/UtS3xz6q6q6atFYQm8wh4PjR
         O2pGz/eNejjfhTHJQjHDrsRk2UExR+NOL3Txks7nw7MgXhVAxcV8MASuQFajzUgMOjzP
         Ffg3ObcEtbAd/c76c5TCc1GmKXKS8QQdJ2SPmvBUbCxIyRWx/qN1/Eggt6Rsi0wB6pzf
         M/f/h3QPsm0LQZk6m7eCWvoixATC9INGKcyAlWO+i0f4J1JAryquClAUywyzX8QOjPIV
         NtuA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762766852; x=1763371652;
        h=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=DwUcULCL/l6E4Vwj4UeykkUTRA6SwlEiv//sFr+BCd8=;
        b=gFEd6/v3zE1tXoyhr0zOA94bX8ep/in/NBohgoDLgcpLwgMbsS0vnsmJDxVEdlMHOh
         HtcNkKN91O01uVej73TAG8A5y5hU/oSRsin5s2J6eyjabLV9GXuOqgVuCIZ+EannaBoe
         O7Z3XKO8DFSwB6TV/Kx+nLooRUGqIZcmRy03xp1r+KVADozRaeNhlwqZDqwGE6mbb8A7
         +b74kFET4WTaQvdJ8hnVMabf1Z0MdaTjYK7RgD8KOFrei7Dg0euH4Lr0AWl4JPh3IVAd
         I7uQlWqGesFTzwGASttg+0T7GccY/miTSGJ73JpoXJ69ZJxIzXbQelV7vEDs/3tU7SLx
         Hz3Q==
X-Forwarded-Encrypted: i=1; AJvYcCWtOpdURs0NAE+UiHPGVjTG1vrAlHF2HT6AtlX8urSkzuQvUOj2kkJU0DQby5CQzFBqM0AMXdwDD0Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyvVcv4HNeZVMs63xGmEj65vv5d5lPD9VKmOEMAjwkUKs918mrk
	xP11KsI3+l3+xR0oHMLE+6f0Q9TaBY/D+R5N2ZPwp9UTm/GZLBcWA7IjE4oubA==
X-Gm-Gg: ASbGnctKrJSMHxkjjkVB0fMyJEcPaQkYSDDCb+r/uuwapmz9VyE/h217Ytpdf4yaT6+
	sUxLf5pwS6xSsu/VDoNO5MgpAC+U8pF6ETyp8Ok2mnv+BLnA0muOs3z1a7yKt8bzObNOoopnpFM
	XWyTH9aItfFhvgxLAu+OCj4t5DG44kqW3dyhawEMEzvIuFLofh43u3+p8WXthWXdxvuggWxwaxp
	HcnK48YVxSs1B6ZwI4dxISCzrVdt/gcz1CJBhs/1F5AkbHeD5eAh61Uknnvb9xS7r2iVumLtauC
	7FzJUoU5zrZOzE+dkhPqT/W1/GVleCfecz3u6S337nDOa6T1pbXgcXnuweqqshmgXdqbwSJB+OO
	1xqKNLx4Hp8wh9rcXjxcu1cq+CKIpRLY1pcaiDNQ6Y+Oe71yFZYd+TJIZM/r8o8rNIKktXBRQUw
	97yAi4EOlCA2RQ4F7Pzkg0eb5TU39NQmE2EdttgazTRJJkvLoB6w==
X-Google-Smtp-Source: AGHT+IE1QuYD1R5kddGCi8WxDMzFkXbSDkMep961KYylK6A+E1y1D6YJ+sqKRLDwpT65wf2PNe4igw==
X-Received: by 2002:a17:907:7b81:b0:b71:5079:9702 with SMTP id a640c23a62f3a-b72e0339aa8mr830464166b.21.1762766852354;
        Mon, 10 Nov 2025 01:27:32 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------0jexM5uCR0K2xI3Y27Hg3Gzq"
Message-ID: <10d0601b-14d8-4a7e-b8e5-dc4bc1d19aa6@gmail.com>
Date: Mon, 10 Nov 2025 10:27:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/ucode: Add extra rows to the entrysign model table
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251107134729.20735-1-andrew.cooper3@citrix.com>
 <52dcf4d1-69b7-437d-a01a-eec33f4535dd@suse.com>
 <36cdbd68-3285-4c96-b25e-9a0474a9a2ab@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <36cdbd68-3285-4c96-b25e-9a0474a9a2ab@citrix.com>

This is a multi-part message in MIME format.
--------------0jexM5uCR0K2xI3Y27Hg3Gzq
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/7/25 3:34 PM, Andrew Cooper wrote:
> On 07/11/2025 2:30 pm, Jan Beulich wrote:
>> On 07.11.2025 14:47, Andrew Cooper wrote:
>>> Link:https://git.kernel.org/tip/d23550efc6800841b4d1639784afaebdea946ae0
>>> Fixes: ff8228ab4658 ("x86/ucode: Relax digest check when Entrysign is fixed in firmware")
>>> Signed-off-by: Andrew Cooper<andrew.cooper3@citrix.com>
>> Acked-by: Jan Beulich<jbeulich@suse.com>
>>
>> Pretty likely wants to go into 4.21? Cc-ing Oleksii, for him to judge.
> Yes, and backporting, but I've got more ucode bugfixes I'm working on.
>
> One in particular was always broken, but exasperated by one of my recent
> changes, but I'm not sure if the result is going to be comfortable for
> 4.21 at this juncture.

I think itâ€™s not a good idea to skip the SHA check, so it makes sense to
accept this patch:
  Release-Acked-By: Oleksii Kurochko<oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii

--------------0jexM5uCR0K2xI3Y27Hg3Gzq
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/7/25 3:34 PM, Andrew Cooper
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:36cdbd68-3285-4c96-b25e-9a0474a9a2ab@citrix.com">
      <pre wrap="" class="moz-quote-pre">On 07/11/2025 2:30 pm, Jan Beulich wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 07.11.2025 14:47, Andrew Cooper wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">Link: <a class="moz-txt-link-freetext" href="https://git.kernel.org/tip/d23550efc6800841b4d1639784afaebdea946ae0">https://git.kernel.org/tip/d23550efc6800841b4d1639784afaebdea946ae0</a>
Fixes: ff8228ab4658 ("x86/ucode: Relax digest check when Entrysign is fixed in firmware")
Signed-off-by: Andrew Cooper <a class="moz-txt-link-rfc2396E" href="mailto:andrew.cooper3@citrix.com">&lt;andrew.cooper3@citrix.com&gt;</a>
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">Acked-by: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a>

Pretty likely wants to go into 4.21? Cc-ing Oleksii, for him to judge.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Yes, and backporting, but I've got more ucode bugfixes I'm working on.

One in particular was always broken, but exasperated by one of my recent
changes, but I'm not sure if the result is going to be comfortable for
4.21 at this juncture.</pre>
    </blockquote>
    <pre>I think itâ€™s not a good idea to skip the SHA check, so it makes sense to
accept this patch:
 Release-Acked-By: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

Thanks.

~ Oleksii</pre>
  </body>
</html>

--------------0jexM5uCR0K2xI3Y27Hg3Gzq--


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 10:37:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 10:37:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158194.1486568 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIPH3-0006EY-31; Mon, 10 Nov 2025 10:37:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158194.1486568; Mon, 10 Nov 2025 10: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 1vIPH2-0006EQ-Tg; Mon, 10 Nov 2025 10:37:24 +0000
Received: by outflank-mailman (input) for mailman id 1158194;
 Mon, 10 Nov 2025 10:37: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=bLcL=5S=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vIPH1-0006E1-TK
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 10:37:23 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 3cb6b0b3-be21-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 11:37:21 +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 CEEFE497;
 Mon, 10 Nov 2025 02:37:12 -0800 (PST)
Received: from [10.57.39.147] (unknown [10.57.39.147])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 0E4913F66E;
 Mon, 10 Nov 2025 02:37: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: 3cb6b0b3-be21-11f0-9d18-b5c5bf9af7f9
Message-ID: <b21fb5b9-2e7f-4cbc-ae62-015b1317a9bd@arm.com>
Date: Mon, 10 Nov 2025 11:36:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/12] x86/xen: simplify flush_lazy_mmu()
To: Ryan Roberts <ryan.roberts@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-3-kevin.brodsky@arm.com>
 <b165098a-8164-4664-aaaf-1e8c4391d797@arm.com>
Content-Language: en-GB
From: Kevin Brodsky <kevin.brodsky@arm.com>
In-Reply-To: <b165098a-8164-4664-aaaf-1e8c4391d797@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07/11/2025 12:31, Ryan Roberts wrote:
> On 29/10/2025 10:08, Kevin Brodsky wrote:
>> arch_flush_lazy_mmu_mode() is called when outstanding batched
>> pgtable operations must be completed immediately. There should
>> however be no need to leave and re-enter lazy MMU completely. The
>> only part of that sequence that we really need is xen_mc_flush();
>> call it directly.
>>
>> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> This looks functionally equivalent to me, so:
>
> Reviewed-by: Ryan Roberts <ryan.roberts@arm.com>
>
> But I don't think this tidy up is strictly necessary for your series to work?
> (perhaps I'll change my mind on that as I go through it).

I initially thought it might be, but in the end I think you're right -
it should still work fine without this patch.

Still, I'd rather avoid unnecessary calls to arch_enter() and
arch_leave() as it makes it harder to reason about what is called where.
Namely, keeping them here means that a nested call to
lazy_mmu_mode_disable() would cause arch_leave() then arch_enter() to be
called - rather unexpected.

The only calls to arch_enter() and arch_leave() that are left after this
series are the ones in <linux/pgtable.h> and the Xen context-switching
logic (the one case where calling arch hooks directly is justified, see
discussion on v3 [1]).

- Kevin

[1]
https://lore.kernel.org/all/390e41ae-4b66-40c1-935f-7a1794ba0b71@arm.com/


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 10:37:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 10:37:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158202.1486578 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIPHX-0006fs-Bb; Mon, 10 Nov 2025 10:37:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158202.1486578; Mon, 10 Nov 2025 10:37:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIPHX-0006fl-8k; Mon, 10 Nov 2025 10:37:55 +0000
Received: by outflank-mailman (input) for mailman id 1158202;
 Mon, 10 Nov 2025 10:37: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=bLcL=5S=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vIPHW-0006ac-AP
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 10:37:54 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 4f185c22-be21-11f0-980a-7dc792cee155;
 Mon, 10 Nov 2025 11:37: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 B4A3CFEC;
 Mon, 10 Nov 2025 02:37:43 -0800 (PST)
Received: from [10.57.39.147] (unknown [10.57.39.147])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 0EB953F66E;
 Mon, 10 Nov 2025 02:37: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: 4f185c22-be21-11f0-980a-7dc792cee155
Message-ID: <0d00dd6e-9e39-4ac6-8ea4-9407e75947eb@arm.com>
Date: Mon, 10 Nov 2025 11:37:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 05/12] mm: introduce CONFIG_ARCH_HAS_LAZY_MMU_MODE
To: Ryan Roberts <ryan.roberts@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-6-kevin.brodsky@arm.com>
 <6a9c846f-22b6-4d5f-81dc-6cdcd4905952@arm.com>
Content-Language: en-GB
From: Kevin Brodsky <kevin.brodsky@arm.com>
In-Reply-To: <6a9c846f-22b6-4d5f-81dc-6cdcd4905952@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07/11/2025 13:56, Ryan Roberts wrote:
>> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
>> index 6663ffd23f25..e6bf5c7311b5 100644
>> --- a/arch/arm64/Kconfig
>> +++ b/arch/arm64/Kconfig
>> @@ -122,6 +122,7 @@ config ARM64
>>  	select ARCH_WANTS_NO_INSTR
>>  	select ARCH_WANTS_THP_SWAP if ARM64_4K_PAGES
>>  	select ARCH_HAS_UBSAN
>> +	select ARCH_HAS_LAZY_MMU_MODE
> nit: This list is mostly in alphabetical order. Further up the list there are a
> lot of ARCH_HAS_* entries. Perhaps move it to the correct position in that lot?
> Then ARCH_HAS_UBSAN stays out of order on its own.

That's fair, it does look like it's mostly in order apart from
ARCH_HAS_UBSAN. Will move it further up.

- Kevin


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 10:45:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 10:45:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158221.1486588 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIPOc-0008Ta-1L; Mon, 10 Nov 2025 10:45:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158221.1486588; Mon, 10 Nov 2025 10: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 1vIPOb-0008TT-Ug; Mon, 10 Nov 2025 10:45:13 +0000
Received: by outflank-mailman (input) for mailman id 1158221;
 Mon, 10 Nov 2025 10:45: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=bLcL=5S=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vIPOa-0008TK-UQ
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 10:45:12 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 5512a26f-be22-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 11:45: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 3DC26497;
 Mon, 10 Nov 2025 02:45:03 -0800 (PST)
Received: from [10.57.39.147] (unknown [10.57.39.147])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 78B2F3F66E;
 Mon, 10 Nov 2025 02:45: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: 5512a26f-be22-11f0-9d18-b5c5bf9af7f9
Message-ID: <b44825dd-aef9-4d3e-91fd-a44122264c23@arm.com>
Date: Mon, 10 Nov 2025 11:45:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 06/12] mm: introduce generic lazy_mmu helpers
To: Ryan Roberts <ryan.roberts@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-7-kevin.brodsky@arm.com>
 <71418b31-aedb-4600-9558-842515dd6c44@arm.com>
Content-Language: en-GB
From: Kevin Brodsky <kevin.brodsky@arm.com>
In-Reply-To: <71418b31-aedb-4600-9558-842515dd6c44@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/11/2025 14:26, Ryan Roberts wrote:
> On 29/10/2025 10:09, Kevin Brodsky wrote:
>> [...]
>>
>> diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
>> index b8d37eb037fc..d9c8e94f140f 100644
>> --- a/arch/arm64/mm/mmu.c
>> +++ b/arch/arm64/mm/mmu.c
>> @@ -731,7 +731,7 @@ int split_kernel_leaf_mapping(unsigned long start, unsigned long end)
>>  		return -EINVAL;
>>  
>>  	mutex_lock(&pgtable_split_lock);
>> -	arch_enter_lazy_mmu_mode();
>> +	lazy_mmu_mode_enable();
>>  
>>  	/*
>>  	 * The split_kernel_leaf_mapping_locked() may sleep, it is not a
> This is a bit unfortunate, IMHO. The rest of this comment explains that although
> you're not supposed to sleep inside lazy mmu mode, it's fine for arm64's
> implementation. But we are no longer calling arm64's implementation; we are
> calling a generic function, which does who knows what.
>
> I think it all still works, but we are no longer containing our assumptions in
> arm64 code. We are relying on implementation details of generic code.

I see your point. The change itself is still correct (and required
considering patch 8), but maybe the documentation of the generic
interface should be clarified to guarantee that the generic layer can
itself cope with sleeping - without any guarantee regarding the
behaviour of arch_*_lazy_mmu_mode.

>> [...]
>>
>> diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
>> index e33df3da6980..14fd672bc9b2 100644
>> --- a/arch/x86/include/asm/pgtable.h
>> +++ b/arch/x86/include/asm/pgtable.h
>> @@ -117,7 +117,8 @@ extern pmdval_t early_pmd_flags;
>>  #define pte_val(x)	native_pte_val(x)
>>  #define __pte(x)	native_make_pte(x)
>>  
>> -#define arch_end_context_switch(prev)	do {} while(0)
>> +#define arch_end_context_switch(prev)	do {} while (0)
>> +#define arch_flush_lazy_mmu_mode()	do {} while (0)
> Andrew converted over the default version of this (which you have removed with
> this commit) to be static inline instead of the do/while guff. Perhaps you
> should try to preserve that improvement here?
>
> See Commit d02ac836e4d6 ("include/linux/pgtable.h: convert
> arch_enter_lazy_mmu_mode() and friends to static inlines")

Good point, I suppose I could also convert arch_end_context_switch()
while at it.

>>  #endif	/* CONFIG_PARAVIRT_XXL */
>>  
>>  static inline pmd_t pmd_set_flags(pmd_t pmd, pmdval_t set)
>> diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
>> index fc35a0543f01..d16ba1d32169 100644
>> --- a/fs/proc/task_mmu.c
>> +++ b/fs/proc/task_mmu.c
>> @@ -2703,7 +2703,7 @@ static int pagemap_scan_pmd_entry(pmd_t *pmd, unsigned long start,
>>  		return 0;
>>  	}
>>  
>> -	arch_enter_lazy_mmu_mode();
>> +	lazy_mmu_mode_enable();
>>  
>>  	if ((p->arg.flags & PM_SCAN_WP_MATCHING) && !p->vec_out) {
>>  		/* Fast path for performing exclusive WP */
>> @@ -2773,7 +2773,7 @@ static int pagemap_scan_pmd_entry(pmd_t *pmd, unsigned long start,
>>  	if (flush_end)
>>  		flush_tlb_range(vma, start, addr);
>>  
>> -	arch_leave_lazy_mmu_mode();
>> +	lazy_mmu_mode_disable();
>>  	pte_unmap_unlock(start_pte, ptl);
>>  
>>  	cond_resched();
>> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
>> index 9894366e768b..b5fdf32c437f 100644
>> --- a/include/linux/pgtable.h
>> +++ b/include/linux/pgtable.h
>> @@ -231,10 +231,31 @@ static inline int pmd_dirty(pmd_t pmd)
>>   * held, but for kernel PTE updates, no lock is held). Nesting is not permitted
>>   * and the mode cannot be used in interrupt context.
>>   */
>> -#ifndef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>> -static inline void arch_enter_lazy_mmu_mode(void) {}
>> -static inline void arch_leave_lazy_mmu_mode(void) {}
>> -static inline void arch_flush_lazy_mmu_mode(void) {}
>> +#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>> +static inline void lazy_mmu_mode_enable(void)
>> +{
>> +	arch_enter_lazy_mmu_mode();
>> +}
>> +
>> +static inline void lazy_mmu_mode_disable(void)
>> +{
>> +	arch_leave_lazy_mmu_mode();
>> +}
>> +
>> +static inline void lazy_mmu_mode_pause(void)
>> +{
>> +	arch_leave_lazy_mmu_mode();
>> +}
>> +
>> +static inline void lazy_mmu_mode_resume(void)
>> +{
>> +	arch_enter_lazy_mmu_mode();
>> +}
> It would be good to add documentation blocks for each of these.

I considered it, but then realised that these functions are much better
explained together (see comment added above in patch 7). Maybe a short
description for each that refers to the big comment above? That wouldn't
work well for the generated kernel-doc though...

- KevinÂ 


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 10:48:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 10:48:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158232.1486597 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIPRP-0000dn-Da; Mon, 10 Nov 2025 10:48:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158232.1486597; Mon, 10 Nov 2025 10:48:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIPRP-0000dg-B7; Mon, 10 Nov 2025 10:48:07 +0000
Received: by outflank-mailman (input) for mailman id 1158232;
 Mon, 10 Nov 2025 10:48: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=bLcL=5S=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vIPRN-0000dX-Gp
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 10:48:05 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id bb042450-be22-11f0-980a-7dc792cee155;
 Mon, 10 Nov 2025 11:48:03 +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 3CA95497;
 Mon, 10 Nov 2025 02:47:54 -0800 (PST)
Received: from [10.57.39.147] (unknown [10.57.39.147])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 183443F66E;
 Mon, 10 Nov 2025 02:47: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: bb042450-be22-11f0-980a-7dc792cee155
Message-ID: <cc9dc398-b9c5-4bb8-94ad-7e7f3ddd5b4f@arm.com>
Date: Mon, 10 Nov 2025 11:47:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/12] mm: enable lazy_mmu sections to nest
To: Ryan Roberts <ryan.roberts@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-8-kevin.brodsky@arm.com>
 <999feffa-5d1d-42e3-bd3a-d949f2a9de9d@arm.com>
Content-Language: en-GB
From: Kevin Brodsky <kevin.brodsky@arm.com>
In-Reply-To: <999feffa-5d1d-42e3-bd3a-d949f2a9de9d@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07/11/2025 14:59, Ryan Roberts wrote:
> On 29/10/2025 10:09, Kevin Brodsky wrote:
>> [...]
>>
>> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
>> index b5fdf32c437f..e6064e00b22d 100644
>> --- a/include/linux/pgtable.h
>> +++ b/include/linux/pgtable.h
>> @@ -228,27 +228,86 @@ static inline int pmd_dirty(pmd_t pmd)
>>   * of the lazy mode. So the implementation must assume preemption may be enabled
>>   * and cpu migration is possible; it must take steps to be robust against this.
>>   * (In practice, for user PTE updates, the appropriate page table lock(s) are
>> - * held, but for kernel PTE updates, no lock is held). Nesting is not permitted
>> - * and the mode cannot be used in interrupt context.
>> + * held, but for kernel PTE updates, no lock is held). The mode cannot be used
>> + * in interrupt context.
> "The mode cannot be used in interrupt context"; except it is for arm64. KFENCE
> and/or DEBUG_PAGEALLOC will request the arch to change linear map permissions,
> which will enter lazy mmu (now using the new generic API). This can happen in
> softirq context.

Are you happy with the wording update in patch 12?

>> + *
>> + * The lazy MMU mode is enabled for a given block of code using:
>> + *
>> + *   lazy_mmu_mode_enable();
>> + *   <code>
>> + *   lazy_mmu_mode_disable();
>> + *
>> + * Nesting is permitted: <code> may itself use an enable()/disable() pair.
>> + * A nested call to enable() has no functional effect; however disable() causes
>> + * any batched architectural state to be flushed regardless of nesting. After a
>> + * call to disable(), the caller can therefore rely on all previous page table
>> + * modifications to have taken effect, but the lazy MMU mode may still be
>> + * enabled.
>> + *
>> + * In certain cases, it may be desirable to temporarily pause the lazy MMU mode.
>> + * This can be done using:
>> + *
>> + *   lazy_mmu_mode_pause();
>> + *   <code>
>> + *   lazy_mmu_mode_resume();
>> + *
>> + * This sequence must only be used if the lazy MMU mode is already enabled.
>> + * pause() ensures that the mode is exited regardless of the nesting level;
>> + * resume() re-enters the mode at the same nesting level. <code> must not modify
>> + * the lazy MMU state (i.e. it must not call any of the lazy_mmu_mode_*
>> + * helpers).
>> + *
>> + * in_lazy_mmu_mode() can be used to check whether the lazy MMU mode is
>> + * currently enabled.
>>   */
> Nice documentation!

Thanks!

>>  #ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>>  static inline void lazy_mmu_mode_enable(void)
>>  {
>> -	arch_enter_lazy_mmu_mode();
>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>> +
>> +	VM_WARN_ON_ONCE(state->nesting_level == U8_MAX);
>> +	/* enable() must not be called while paused */
>> +	VM_WARN_ON(state->nesting_level > 0 && !state->active);
>> +
>> +	if (state->nesting_level++ == 0) {
> Hmm... for the arm64 case of calling this in an interrupt, Is it safe?
>
> If a task is calling this function and gets interrupted here, nesting_level==1
> but active==false. The interrupt then calls this function and increments from 1
> to 2 but arch_enter_lazy_mmu_mode() hasn't been called.
>
> More dangerously (I think), when the interrupt handler calls
> lazy_mmu_mode_disable(), it will end up calling arch_flush_lazy_mmu_mode() which
> could be an issue because as far as the arch is concerned, it's not in lazy mode.
>
> The current arm64 implementation works because setting and clearing the thread
> flags is atomic.
>
> Perhaps you need to disable preemption around the if block?

As you found out this is addressed in patch 12, but indeed I hadn't
realised that this patch leaves the generic API in an unsafe situation
w.r.t. interrupts. We at least need to have in_interrupt() checks in the
generic layer by the time we get to this patch.

>> +		state->active = true;
>> +		arch_enter_lazy_mmu_mode();
>> +	}
>>  }
>>  
>>  static inline void lazy_mmu_mode_disable(void)
>>  {
>> -	arch_leave_lazy_mmu_mode();
>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>> +
>> +	VM_WARN_ON_ONCE(state->nesting_level == 0);
>> +	VM_WARN_ON(!state->active);
>> +
>> +	if (--state->nesting_level == 0) {
>> +		state->active = false;
>> +		arch_leave_lazy_mmu_mode();
>> +	} else {
>> +		/* Exiting a nested section */
>> +		arch_flush_lazy_mmu_mode();
>> +	}
>>  }
>>  
>>  static inline void lazy_mmu_mode_pause(void)
>>  {
>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>> +
>> +	VM_WARN_ON(state->nesting_level == 0 || !state->active);
> nit: do you need the first condition? I think when nesting_level==0, we expect
> to be !active?

I suppose this should never happen indeed - I was just being extra
defensive.

Either way David suggested allowing pause()/resume() to be called
outside of any section so the next version will bail out on
nesting_level == 0.

>> +
>> +	state->active = false;
>>  	arch_leave_lazy_mmu_mode();
>>  }
>>  
>>  static inline void lazy_mmu_mode_resume(void)
>>  {
>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>> +
>> +	VM_WARN_ON(state->nesting_level == 0 || state->active);
> Similar argument?
>
>> +
>> +	state->active = true;
>>  	arch_enter_lazy_mmu_mode();
>>  }
>>  #else
>> diff --git a/include/linux/sched.h b/include/linux/sched.h
>> index cbb7340c5866..11566d973f42 100644
>> --- a/include/linux/sched.h
>> +++ b/include/linux/sched.h
>> @@ -1441,6 +1441,10 @@ struct task_struct {
>>  
>>  	struct page_frag		task_frag;
>>  
>> +#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>> +	struct lazy_mmu_state		lazy_mmu_state;
>> +#endif
>> +
>>  #ifdef CONFIG_TASK_DELAY_ACCT
>>  	struct task_delay_info		*delays;
>>  #endif
>> @@ -1724,6 +1728,18 @@ static inline char task_state_to_char(struct task_struct *tsk)
>>  	return task_index_to_char(task_state_index(tsk));
>>  }
>>  
>> +#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>> +static inline bool in_lazy_mmu_mode(void)
>> +{
>> +	return current->lazy_mmu_state.active;
>> +}
>> +#else
>> +static inline bool in_lazy_mmu_mode(void)
>> +{
>> +	return false;
> Just pointing out that this isn't really a correct implementation:
>
> lazy_mmu_mode_enable()
> ASSERT(in_lazy_mmu_mode()) << triggers for arches without lazy mmu
> lazy_mmu_mode_disable()
>
> Although it probably doesn't matter in practice?

I'd say that the expectation is invalid - lazy MMU mode can only be
enabled if the architecture supports it. In fact as you pointed out
above the API may be called in interrupt context but it will have no
effect, so this sequence would always fail in interrupt context.

Worth nothing that in_lazy_mmu_mode() is only ever called from arch code
where lazy MMU is implemented. I added the fallback as a matter of
principle, but it isn't actually required.

- Kevin


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 10:48:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 10:48:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158243.1486608 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIPRv-00017r-MD; Mon, 10 Nov 2025 10:48:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158243.1486608; Mon, 10 Nov 2025 10: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 1vIPRv-00017k-Ij; Mon, 10 Nov 2025 10:48:39 +0000
Received: by outflank-mailman (input) for mailman id 1158243;
 Mon, 10 Nov 2025 10:48: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=bLcL=5S=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vIPRt-0000dX-RC
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 10:48:37 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id cee7aad2-be22-11f0-980a-7dc792cee155;
 Mon, 10 Nov 2025 11:48:36 +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 9BB20497;
 Mon, 10 Nov 2025 02:48:27 -0800 (PST)
Received: from [10.57.39.147] (unknown [10.57.39.147])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A51E03F66E;
 Mon, 10 Nov 2025 02: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: cee7aad2-be22-11f0-980a-7dc792cee155
Message-ID: <f7ed51e6-c3f6-402c-b328-8af5f970006d@arm.com>
Date: Mon, 10 Nov 2025 11:48:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 12/12] mm: bail out of lazy_mmu_mode_* in interrupt
 context
To: Ryan Roberts <ryan.roberts@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-13-kevin.brodsky@arm.com>
 <8a38db66-4d1a-4296-a2dc-e0276c6cdde8@arm.com>
Content-Language: en-GB
From: Kevin Brodsky <kevin.brodsky@arm.com>
In-Reply-To: <8a38db66-4d1a-4296-a2dc-e0276c6cdde8@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07/11/2025 15:42, Ryan Roberts wrote:
> On 29/10/2025 10:09, Kevin Brodsky wrote:
>> The lazy MMU mode cannot be used in interrupt context. This is
>> documented in <linux/pgtable.h>, but isn't consistently handled
>> across architectures.
>>
>> arm64 ensures that calls to lazy_mmu_mode_* have no effect in
>> interrupt context, because such calls do occur in certain
>> configurations - see commit b81c688426a9 ("arm64/mm: Disable barrier
>> batching in interrupt contexts"). Other architectures do not check
>> this situation, most likely because it hasn't occurred so far.
>>
>> Both arm64 and x86/Xen also ensure that any lazy MMU optimisation is
>> disabled while in interrupt mode (see queue_pte_barriers() and
>> xen_get_lazy_mode() respectively).
>>
>> Let's handle this in the new generic lazy_mmu layer, in the same
>> fashion as arm64: bail out of lazy_mmu_mode_* if in_interrupt(), and
>> have in_lazy_mmu_mode() return false to disable any optimisation.
>> Also remove the arm64 handling that is now redundant; x86/Xen has
>> its own internal tracking so it is left unchanged.
>>
>> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
>> ---
>>  arch/arm64/include/asm/pgtable.h | 17 +----------------
>>  include/linux/pgtable.h          | 16 ++++++++++++++--
>>  include/linux/sched.h            |  3 +++
>>  3 files changed, 18 insertions(+), 18 deletions(-)
>>
>> diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
>> index 61ca88f94551..96987a49e83b 100644
>> --- a/arch/arm64/include/asm/pgtable.h
>> +++ b/arch/arm64/include/asm/pgtable.h
>> @@ -62,37 +62,22 @@ static inline void emit_pte_barriers(void)
>>  
>>  static inline void queue_pte_barriers(void)
>>  {
>> -	if (in_interrupt()) {
>> -		emit_pte_barriers();
>> -		return;
>> -	}
>> -
>>  	if (in_lazy_mmu_mode())
>>  		test_and_set_thread_flag(TIF_LAZY_MMU_PENDING);
>>  	else
>>  		emit_pte_barriers();
>>  }
>>  
>> -static inline void arch_enter_lazy_mmu_mode(void)
>> -{
>> -	if (in_interrupt())
>> -		return;
>> -}
>> +static inline void arch_enter_lazy_mmu_mode(void) {}
>>  
>>  static inline void arch_flush_lazy_mmu_mode(void)
>>  {
>> -	if (in_interrupt())
>> -		return;
>> -
>>  	if (test_and_clear_thread_flag(TIF_LAZY_MMU_PENDING))
>>  		emit_pte_barriers();
>>  }
>>  
>>  static inline void arch_leave_lazy_mmu_mode(void)
>>  {
>> -	if (in_interrupt())
>> -		return;
>> -
>>  	arch_flush_lazy_mmu_mode();
>>  }
> Ahh ok, by the time you get to the final state, I think a most of my
> comments/concerns are solved. Certainly this now looks safe for the interrupt
> case, whereas I think the intermediate state when you initially introduce
> nesting is broken. So perhaps you want to look at how to rework it to prevent that.


Agreed, as discussed on patch 7. I might split this patch - first add
the in_interrupt() checks before patch 7, and then remove the
now-redundant checks on arm64.

- Kevin


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 10:59:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 10:59:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158257.1486619 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIPcU-0002yj-L0; Mon, 10 Nov 2025 10:59:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158257.1486619; Mon, 10 Nov 2025 10:59:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIPcU-0002yc-Fz; Mon, 10 Nov 2025 10:59:34 +0000
Received: by outflank-mailman (input) for mailman id 1158257;
 Mon, 10 Nov 2025 10:59:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EGxd=5S=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1vIPcS-0002yW-JW
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 10:59:32 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5561bc06-be24-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 11:59:31 +0100 (CET)
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by PAXPR03MB8276.eurprd03.prod.outlook.com (2603:10a6:102:23f::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Mon, 10 Nov
 2025 10:59:29 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::d976:7403:c89d:4677]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::d976:7403:c89d:4677%6]) with mapi id 15.20.9298.015; Mon, 10 Nov 2025
 10:59:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5561bc06-be24-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jBxcM52Du91//d+df0q/FSY6SiHD2gwjtwaPblXzVyv/we9wWgAuC/SaMsMUuM58DhxuESpZI+9ygyVuzbK/1LDXuHRs654h75jZxEEQPFalFxzjAFMnAopf94YI+2m5ZuK4jjKHXQuEMUeHDRHX2kDgHB65NdKjyzfdzd/IWqamdgPtjGTwq+a6JluJ4VRtOmVuM3wmDAV6nr7RjQVYcDZqQevinlhAAM96Jm3qkRYbtBXTBYlO9wfSMVziN0ZOGLUh9tcTIS5/2vZB+zvcdS/59ozAGa+s3TIm5f6jR2ogkAdD/BxYCrTgDM5iADb/pyj8rlCNbyTQZXQAREBJFg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KVmkuwZAOk2BI3BVRgitWWF9v+5Te2hQ+t8u3r847dg=;
 b=zDi0AhmxYxAaICkFSx/EUPTL0pts8O0b0VNpW9EsPK+qJ1s7G/b6ZR0/FqHp/kVBK+052tQKjnPIiOlRAz9PyR1XSui2c+XSs/9+1LtPCu6h+9TqlDwSTwTLVOXkUnLE/XxNax3scCkDNOyNvRhWzGGAq1tyNjFmR6TC3XCV1t/pBfE+gVidARewx0C51qWg8CwNgjCCuaFjfYDPEa/10LgXQzltEoabwBlt9PL9jO0wHy3nRdxN4oAJvQj2vWS7LJY9UO3Qoa4RM2xi0fv41CkWgzxGEc2ZRilij1sZ4/9nEjEIzS6lQ/2m8UejV7cR+4eKoXpxr4pumXIooMao5A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KVmkuwZAOk2BI3BVRgitWWF9v+5Te2hQ+t8u3r847dg=;
 b=rgbyatSR/Qy75yvr1JPVuDWDC5qHFsKvdufd4s8dvwl1fWRQRMpz3JwKcOxNi39QF5JE9WvnfQvEcET2kJUEMU4Hb6lyBfeX+nIBW5P1YlNc8WZIAxyqFIU5vifdaTN4+p1/fO/ttKyOdWDFXBEwyIei7sp8Dt0tFEfpKTCmgXVu2ShAfXWPfrG/ddpFub8umNieDTRZccv49YNE4DXWXpjM8X4KCfR5DAWip+0+/ksZLLh8NVZZSpzOInhB13qB4zslKud+96c+H36rXTp6gI1e/3J8GG5wNUlvgMGHSj1vfk50IsG+Q+Ch5yzDQ7Th0wGGuKx0VZnBWj8/1o7D4w==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH] dom0less: Remove redundant magic check in
 'check_partial_fdt()'
Thread-Topic: [PATCH] dom0less: Remove redundant magic check in
 'check_partial_fdt()'
Thread-Index: AQHcUjEWFoN+6Y8Er0i5/VElc9NTMg==
Date: Mon, 10 Nov 2025 10:59:29 +0000
Message-ID:
 <f624c6fd2e63ce92d764519922ec5cf39152fa91.1762772330.git.dmytro_prokopchuk1@epam.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|PAXPR03MB8276:EE_
x-ms-office365-filtering-correlation-id: 0006bf11-de25-451b-6c60-08de20483897
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|42112799006|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?3X3Wt18PCyqRyMYmtuH5DqWuOATrXD+J8ifX/9TXJkIu4rOAukLW4OGDCc?=
 =?iso-8859-1?Q?gnsUf2McRL4hjp7Yr7oz8h3feK+PQwZt/AHzrWquUvR8QwGI0zHCcqq7eH?=
 =?iso-8859-1?Q?7w/lYoXPHiLV3rFfRTsX+44yhL6WWpwbE19IC5UgD2LC/9e0wGveSGK3Y7?=
 =?iso-8859-1?Q?jkCSMzD/TXFKfQ02oMnRBY2JERpcEpEWotsA25OE2rHB7uXXK2HD0VgSar?=
 =?iso-8859-1?Q?SJNWjZwcjoefnDxJ9J5hkmzu7rXVQng8mlqf3qjyExOA9pdYdp3fzEgTAR?=
 =?iso-8859-1?Q?4yogqvLC0uWPtTZxTqCdgqJaEV+9DMr/xYE8uKYEKtI0qTjFfwbGEpAsap?=
 =?iso-8859-1?Q?5qjK3pBztcgwix+3A/GA0oGbz+yget9rAFTeVFJrBBRI806n18I31e1iR8?=
 =?iso-8859-1?Q?S+Lz8IS4ywgXHchsIVPyzDssT3MZ8CvCPCh1Myy6wxzlFtFB2NSZrG9952?=
 =?iso-8859-1?Q?YiQeQGTiBgPobuBLQdH/dzDnNq7i10sIWkQIAXH/XTVwr8bkAGKHv4xEWC?=
 =?iso-8859-1?Q?6fGvjeufUVVxZtao0Yqhtghz21Oft8NRrmjEliUZi3E9evAXXXfprSTHzf?=
 =?iso-8859-1?Q?RixkgOfnz+ww+qwn/QXrChO3GK+/GvHQTnaa4eqmxJREKakv5ut4c7lfo1?=
 =?iso-8859-1?Q?37kYTMJHevC31Egb7ylR1hcgqLsM7s59hPMYKTerntvFIO5OaF5xgCyYIN?=
 =?iso-8859-1?Q?XCMiZfqI3ZD6O2SrHB7ctt70aKLXZk8XGlXyv9wy8miaWnEYWw03jr5X9z?=
 =?iso-8859-1?Q?9zbDbY9qUJWJlJzHoTrk99VCIVurV9fVwyu2YK1q4Cl5jeqodGowXTxGuh?=
 =?iso-8859-1?Q?kwVXlnT/eDVW2pC5i4hXwLlXG6WdUKKrzrl6ZgHnaRU8zfYhST1JHWUpfc?=
 =?iso-8859-1?Q?z/y9wEND65ru97nQwa1qZlTKMUo2bZ5DCkZBpGWmY+hc5Wx0T/7ULSsyth?=
 =?iso-8859-1?Q?s4qVX2XrSJ5TtOiWR7F7M0zb/rf64CQeP2S5WYlG9RhIUcJs14K92RBGt6?=
 =?iso-8859-1?Q?q7X9vycU7qjEeFIs+yaVNawlRtXMjEYHZQYotwaw0YNiiZQ6mCBQ3E1WPE?=
 =?iso-8859-1?Q?gr+lqhtlVDcr75Q17x24mZ3jLDFp4ihky8/LG9ivR24tLcM8saGd0ErO1I?=
 =?iso-8859-1?Q?5J9pGOuynb2QrYBPIJeScMt4LefG7WjcCi85q2rr4HnhrgF/BJSYocqrRf?=
 =?iso-8859-1?Q?bc8K4SWf6Ti4yD/e8wH1XSlA9WkmP7yHv7XUrbLRBwFnrCFzQf52WkkD5g?=
 =?iso-8859-1?Q?aKqdr0SoW1FDjYUYQ2WqPixrDsBWYymX2MoDMF7mTkzaYnazTSmuPNuEXb?=
 =?iso-8859-1?Q?sil0xSVZXMdm2WWN+OZXhJ/Y4pSZButxHUrvBG1c2JrjrVbXFFMFoTwftP?=
 =?iso-8859-1?Q?BOcAZUSXE35NQGIUBKdfWCx1B3Z+maUO05h+NvaOyChtdqnU/z9FUif/kM?=
 =?iso-8859-1?Q?CS2DHwFZXQdOkt7xmHQvZYalMYsmQ8VoCyG0giqmdzoj2Z+GbSbnaOqyfu?=
 =?iso-8859-1?Q?q4LSaZUoXr3h1Kb5CEWTr83MVgtZntmDzZukzQyOfZj1QPZSLvFHJzR/CY?=
 =?iso-8859-1?Q?GjKaikizwVG6RKjDyf9YTKAtG+jU?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(42112799006)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?GYavnNhXUhyCDPhzhh5misL8c4nOBmKnQMk70uKUKENogFxr6IvCcN6jcN?=
 =?iso-8859-1?Q?gfMQ8ZWPaoD/f8nt5wjPH0oYeQPcnAXrnhouhmfD5o3lMsBpiYk4NaZNkv?=
 =?iso-8859-1?Q?ZUQLbbdsaZ82a8+u+bOyYLJ8BS3HP8c/5UxN3hLNDXUzvGnmYCi73hroF4?=
 =?iso-8859-1?Q?UjBN0NjVgazUfp7R2t3yyXRfKDhp0GbPJ7tuPG+KGj7jRS+ayMv9E47uYL?=
 =?iso-8859-1?Q?IAw2ryorPCubQU/PgZqcjh1mvd+fNl1IfeSgG1CttKczN1uLweMx8HNjXS?=
 =?iso-8859-1?Q?Pi0JQ7+8oXLPTc9kjS2sF42rc3OcP1pR1VcoHoYJKLig6r2DodjpuitSXy?=
 =?iso-8859-1?Q?52ygWMzCuDPVOcs9LL+OnvqBu5BI78pa38S6P0OM4wzRGK5Hj8YQfQ25LA?=
 =?iso-8859-1?Q?briRexhxgL90q0g3c4ZzcVhELcyfwD9ytIKW7yTKPC7uoduKtNh5hDv9zt?=
 =?iso-8859-1?Q?wyV5BZKYozSIKE2NLVb+SIiNWK8cufTypvb9x9n5xm9m8ji/S12NDZANH8?=
 =?iso-8859-1?Q?1ReFK+y98U9m7A9Lz1G0Baqx7RFuug9hRmrm4PsKmI4yqwSdaD2e4qVLZp?=
 =?iso-8859-1?Q?eelSvfqYe1XhEGkassP2oM9ctpv81d1h73E3K9QJ0tFrFApDSLpNBmENjV?=
 =?iso-8859-1?Q?fha30k4BRFdyB/SvujSe94r0uLeviHHu1uJYdfNSaOioNMI2dgAtsY95R/?=
 =?iso-8859-1?Q?L7Zln/hormpNNvvY82BWh6yLd9cN9WPxPAq4PV+rMUD7bD+NbLmkUF2ZXa?=
 =?iso-8859-1?Q?zqj+bwjXDYbDvsfRQd1uVq+e6nF+icl3on26+scLrZrJi+rt/+nOlw+SN7?=
 =?iso-8859-1?Q?L04AQPLmKbKAr6OVsd5Jv49Oz+fCd5NXiOaJixHIsWjefvx2Z82MOKw8XV?=
 =?iso-8859-1?Q?mq+9/yeHMJo52ksCvSDDxmfZlltoJ4BOpP4L5+PoOzsutouKyMzsYvNZ6W?=
 =?iso-8859-1?Q?ZSuDi2/06mCUKW0cXDBqRt8QrNraiPGW5h/p0ugtf+M8cBwS1pMlUqwJOF?=
 =?iso-8859-1?Q?UwpK6cQwQAPrZrfc5lkNHbI1eursnjQI9iNLdvy762/LmDelZwg70oq6rg?=
 =?iso-8859-1?Q?k4JySD5vanOtl3Hr7K6pRoLEZNURhfMpkxuB5+z2bhjv6sCWR1w1TCmw9H?=
 =?iso-8859-1?Q?pfP097czwZiHh2UP7OwyJBs/OFUq8HH+ZqSmvovsktQhkDu3aGisQtmWC+?=
 =?iso-8859-1?Q?pbBuxYyqHTHsVr1ieW6jcrhyfBP7opNVWiMm3jGoKsjFt6QIMW99fde96Z?=
 =?iso-8859-1?Q?DUb5HGWAabU0Bi/E27z2PErrJVL+xWYhjvaa7bgkDq727kfdAQoq0LFoU3?=
 =?iso-8859-1?Q?h6thPkNrkSzWoAO4AP1DxojhOiw0URAn/8RKjuMshlSY80SwDMG7pg9rDX?=
 =?iso-8859-1?Q?hz3YP1DEEnHputr0vweI3Ir7cN9ZmmKxrfdhMAE6wFnqHBA/3igQw4R52H?=
 =?iso-8859-1?Q?Y00inG6ARbNXI38tWmlCyzcRpNLfYSyMAur4ymri0F5IveC0z4Td7ia/nZ?=
 =?iso-8859-1?Q?tP68YXsiGRziaFuJyPohuJEsmFt1ZEfJRuLCliGTPHTUxfNkMI6Z6B1JLr?=
 =?iso-8859-1?Q?gEhwwfjtZlmLHhtYJsftRPfN/veq/w5L6hHAntxVzGAOk0/I7stWgNNhn/?=
 =?iso-8859-1?Q?+AHWGxgBB405Esl2mlm6OuqooHQDEL/x6BcKjYMyNDrHswhDZYZ2LI8w?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0006bf11-de25-451b-6c60-08de20483897
X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Nov 2025 10:59:29.1925
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: WtmDtjKpPezHOsQQ73fki7DhaWPCOUdrSRA8gh3jcyNhVi01+QUdZeMhMb5HeXS+NEXCyDL5uct+TM+a3XdZVXuqu6xV+N4KYyI3HBfaxgY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB8276

The function 'check_partial_fdt()' performs an explicit check for the FDT
magic number (FDT_MAGIC) before calling 'fdt_check_header(). This check is
redundant, because 'fdt_check_header()' includes checking the magic number.

Remove the redundant check to simplify the code and rely on the library
function to perform header validation.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
 xen/common/device-tree/dom0less-build.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tr=
ee/dom0less-build.c
index 9fd004c42a..2600350a3c 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -359,12 +359,6 @@ static int __init check_partial_fdt(void *pfdt, size_t=
 size)
 {
     int res;
=20
-    if ( fdt_magic(pfdt) !=3D FDT_MAGIC )
-    {
-        dprintk(XENLOG_ERR, "Partial FDT is not a valid Flat Device Tree")=
;
-        return -EINVAL;
-    }
-
     res =3D fdt_check_header(pfdt);
     if ( res )
     {
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 11:02:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 11:02:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158271.1486627 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIPes-0004gQ-4k; Mon, 10 Nov 2025 11:02:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158271.1486627; Mon, 10 Nov 2025 11:02: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 1vIPes-0004gJ-1p; Mon, 10 Nov 2025 11:02:02 +0000
Received: by outflank-mailman (input) for mailman id 1158271;
 Mon, 10 Nov 2025 11:02: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=s4d+=5S=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vIPer-0004gC-5G
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 11:02:01 +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 ad9914fd-be24-11f0-980a-7dc792cee155;
 Mon, 10 Nov 2025 12:01:59 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by PAXPR03MB8167.eurprd03.prod.outlook.com (2603:10a6:102:2bb::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Mon, 10 Nov
 2025 11:01:56 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9298.012; Mon, 10 Nov 2025
 11:01:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ad9914fd-be24-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EkmlvFMcw7DVVfxA0Hm3qvBqwFMaPgp8mU80SCi7fmdyQzDQDLxjvKACz0E/plZXz4CmVjXYN54yZjH42wbXE3mo/l5/+5V7JfC5ZfEVp5wZtA+ohH18e1uRKeLa3PiWJAN1dDDV/QCE5a2fwqaqbA1ycU6PKry1h1TPheN5/PMNLE6a4bSNLUJk8oi5gqqX6AQ27RbLaM/c+FqN3Vv8lCej9GGCRGUET5vvHdpujLkIT5QHSP/3lxTuNTgygQFxFhbuqsPdlpwzbD4VhtC7vhA376hSfJsjzNI4QCC+14Z/ENN1bFszRXRuhF6T4D81kaz3TlKVoj9t+/VyowsiVQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HWIYH+15wnvPD7WivJa06typUWtIly1q6nY68T6q9x8=;
 b=JTzI3T7MBYvucHKtMbi6NBKIXf8Iua6KdcV61q5I2vWlTGjO8Sjgheir4KwUQqwMWNKGwzrSayH2wR3gvMXN4t+bekdFaJ8PYlc/ZoL34SSuq87c3eXWKv3XIbfP9rLVj4lMFEOqHO0anizrvpTtealWKMvRecCaZoVG07XI+tQSpacv8j9VKouRRG5mrVcrb8eq96AtRyxIvSSldRDnKCnb6EiQIhRjDjbm6H0ksopMWtgMV8VHI4IeAKuFU/8AH3Ipvx+Kk+0FOlMpx7z/m0tWStrXvN4YO7W3QviyGA2cs6O+Hb6hfxcSV8paZ7dQ+HFBMAJ1NX4rT+VbPJbxAA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HWIYH+15wnvPD7WivJa06typUWtIly1q6nY68T6q9x8=;
 b=puaE2ZlHZMGU00iKdHhYSwlZdBWflE7G8ZKOPPEIolxPYhcsLQ6EABcuyj2O1pA8VZpgXda0dpgF0ax356vNT/xwIqpE9sOCNRbhfJCzJanbH/lNVSpBLbNwzhKkn/e580D9CLQZbaJPC7tR4j2bhuTK7TvfstY/KO/pILLYCoS2flDrXTdQPdgn8H7UqlBtL8+4y52poNg5j6coKgWxN4M8HSvUSQuLo7s1GcmNZi91lRokmHHzN4dBPwiECmXNGXacxUcj9Vg0vKP+lyp7JGM45ubgqsXhZZkM615F/7cC3FMwYQ1zSawJsuTps9DxW4nULhxkv+XBujI27lYseA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <5667432c-718a-4c8f-8fa7-982deabfdd57@epam.com>
Date: Mon, 10 Nov 2025 13:01:54 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2 0/3] x86/hvm: vmx: refactor cache disable mode
 code
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Tim Deegan <tim@xen.org>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>
References: <20251107150456.2965906-1-grygorii_strashko@epam.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20251107150456.2965906-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
X-ClientProxiedBy: BE1P281CA0112.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:b10:7b::19) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|PAXPR03MB8167:EE_
X-MS-Office365-Filtering-Correlation-Id: 0adb556a-d633-47a5-aa30-08de20489003
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?T2doS2ZOUkhRYzYzOENHTjJvdDhVN2RWMWRlMFg5K0lIV3cyd2hEU3RqcWRi?=
 =?utf-8?B?V1duRkpQTnFLNXNvN1pnR2FwNThlN2psdW1GKzQ2dnlqcjlSOWg0dWZHMGhM?=
 =?utf-8?B?blJxQnBvODJ3K1JzSnAzTkZHZXA0cjZOSm9heE9ZcE8yNTgzMENFTjFyUklB?=
 =?utf-8?B?VHpOMnhHMGE4dkRwR0RITjZlWDByeDNZOGQxNlZLU1VVYjIyeVp4YXAzNzlx?=
 =?utf-8?B?ZjNlMGwzdnRKWW92QzZWWjZXb3RuK1JCQzhvdXE1VHprUDM0anlKTCtCM0Yy?=
 =?utf-8?B?U040ZHhiYWtJVHVDdzNqUm9IRHZ3cmVFbDJtazR0dkZyR2pNRjZnMEFCTStS?=
 =?utf-8?B?ZlcwMk05c3pORXByODIwYU1yQ3o5Qmo1ZXNJc0Q2M1dZbUxNc3BreEVEcDhk?=
 =?utf-8?B?RlZYajFwN3JJb1c0elJMQzN4U3QzSHVKWWcwcnZLQkVhK2N6bzdpQjVQcVBE?=
 =?utf-8?B?ZGZSVjJEOXRxTWRGTjdVaVJaSHRtUloyN0pIaklXMlhya05DTm03OVNMeksy?=
 =?utf-8?B?dnIrZTJlaFFVK3pCSzlhQUNYZjVZQ0FSam4rVHd1L3F4ejF6TnR3ay9RaFFj?=
 =?utf-8?B?SmxTTjZXNjE1RUt0anpEWDE3UWVlV2dqV0pYSTBVQ09ZNHhuR0p3UHByVzF5?=
 =?utf-8?B?YkJIdENZNnVaMFJkTzZiQk90V0IxSU1nTklRd0JPbjNqV1pTQ0J0Q01HZGJL?=
 =?utf-8?B?ZGQ2Q2ZkdjY0NWF5TXVUanhKTVF5SGVkYW5CNVR1b3dlTlVsaDcxazRQVjBr?=
 =?utf-8?B?aVJ2R04xZXVTak96WlFpZjd1aXFzdFlPcUNTZ0JJWXJsOElJVFdpN2cyWWRR?=
 =?utf-8?B?QUFjR3ptY2ZEdit4VmJ2WWVObTJXd2lQOVJxbDlDUGNrMFVlWFgyRUNrd2Qw?=
 =?utf-8?B?WGVCeE10V3E2NFFMQTVjcy94Y21mTytFMVRYTWE0YWNtQkNzZlJ4N01zYkpa?=
 =?utf-8?B?ZERGUUlUKzNmSUdLNEpRMXl1NjJDb01xME50ZUZ4UGlNa2MzTDFCUGxXSjA1?=
 =?utf-8?B?MWJpYWk2OHZRR3p6alFBQ0dqSFE5YTJKR2hQNVdnNGpUUmxCeTh2V3FwOS9l?=
 =?utf-8?B?Y1FJWmlTREUvVndXKzcxdVZKT0pFNjlQeHRGQ2daTEx4b3BGdUlLd0pDZFZU?=
 =?utf-8?B?b0twc0FITndnbFRKVjB4TGRwb1dFV0lmdE9qeVJxQWx4Yk9ScWRlV01ycE5X?=
 =?utf-8?B?TVhDcEtacUdibWVLWnJ0SkErZVZWWHB0VC9MNzZHSU8zU0xKVTc4N2YvczRl?=
 =?utf-8?B?VVFCMWVkN2hLUjJROVRmTmNkUW5Oa1dWVkthL2t0bmwyY0R0dXplMHY1UkxU?=
 =?utf-8?B?TnF5MHg1b2l4RldYcGpOK3hOS2hXYkJhbWhYSUFIdWhBaW04QXJUUlZNTU9K?=
 =?utf-8?B?M0VvYlAzMFc1bFRhclFIazVzTDR6N0hLL1VudTUrT0oreHN5VEhEeGxMWjdy?=
 =?utf-8?B?bGgyUDVscldGM3dZSUw4Z1Q1ZHBkR0svV1RWUlV6a1VPZzFKSktDalRSdHVo?=
 =?utf-8?B?Lzc3L00rN3QyZWN6bWhCNkdxcW1xa0hUdmhucGlZNkt6a2QxdlRac3VSRDZ4?=
 =?utf-8?B?RU14Y1hoWUhFV0FlWmxoQlVucFdPSE5iRVg2ZGNwaW8wazUrUHI4czRIQWkx?=
 =?utf-8?B?TUZhbEtvdS9ETUhWeGdxZUdvT2xMSG9kRk1uenNNZGZrQnh5Y3ZYUVBRTU9y?=
 =?utf-8?B?VjFkZnBmKzdBSHFTZ0t2QlR0WHdBbXpGcmZHdjhRUXpDSTc1UFV4amlEcWhW?=
 =?utf-8?B?RTlLWGdpQnM3K1AxMU5hY3FtVGdmMDF2M0NaZm1HeVBwZ0ZwRFBMZm9TSkNV?=
 =?utf-8?B?WUQvSnlmdjA2dkNESVFNM1NKS3dDaHFiN0VUWXR4ZHNhRTgxQXM2UFlNOWdX?=
 =?utf-8?B?cm9wWElieTlUQU1hRG54THphbHVDL2EvQVNLd01ML2pWc1RwQW5zVkl3UVoz?=
 =?utf-8?B?dS85NUVXUE1uM1ZROGtOV1BQZ2Nxa0krK3RwVUxFdVdENW9USHh6Tmo2Nnh6?=
 =?utf-8?B?bjVRNmJSQkV3PT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?K0lXVkpZOUZpa1dhYlF5SEo4RnZ3UlpubVpXdVFZbHoxU3Zoc0VxeTZ3QmJi?=
 =?utf-8?B?SnduZG1iMXA5UDkwZTFPK1Nib2Vza3lkUC93OEdPRzVSSGlPTTBjekR2M0Rq?=
 =?utf-8?B?SkR0R1hJSVgwcEluK3IzYm81SmwxUC9uZGlReFA3TUhsY0paS3hqSXZLV1BM?=
 =?utf-8?B?NnlaMDFsYnpCelhjMnI5NXliM0NjdGs1dHBwWWVIdEpOTWJ3SEJvUzdqbkZT?=
 =?utf-8?B?ZXY2UG9CSjUraS9vY1R1WFFKbHg2eWk2VWc0Q3RRSXRrZWdRdy9BSEVoZUh5?=
 =?utf-8?B?c1lzU1RuNkRVV3VCWi9mcmE5ZGMwb1ZhcEZSZXRwSktYbGJyNzNwMFprSGVE?=
 =?utf-8?B?V2hlWjF4V2JDMkRkTURsMjJGMmtWRkVwOFJpUllvUmR0bGNOMjJ3aGt6WVBs?=
 =?utf-8?B?cFhGZnZXRUlFUFNyOFlpZVRPZTlTQmczZmtsZmUwbjJJTzB1MUptazVnVHpw?=
 =?utf-8?B?YnUxTnkyL0xrT2w2OXdlOWlJelVvWFRwRml2R09wcHhyNFg0Y05RdzhWSmxS?=
 =?utf-8?B?R1JnVjcrZ2JTUlpOaG1IM1dkK3pmRU5BQlkxQ2szRUh3Rzdha05BVTNqRmZS?=
 =?utf-8?B?KzdRQm5Qd05NVUZXVU5PZHRtMUlIZ2ZLVGtlL3VJa0dmQzZGRUtxd1J1MHAx?=
 =?utf-8?B?bGRJUEt1NFRoNFRhcFArVkdTWG1PZ3hId1oyWjM2SzNHSGVINWVCSmtSMVAx?=
 =?utf-8?B?azlFam5HOXJ3Q0Fmb0NyajdhUlRQSXNFK3p4T2xTZ0tqR0RIeXdxVU1JWC9V?=
 =?utf-8?B?Ujk5UEVhVDlzMktJZURwa3ZFby96UnlQUjZ6K2hRMmM2enpFZnoramt6RUla?=
 =?utf-8?B?STZESFdyMjdDQzErbnh6VWFuVkVNZC9Ndm1SZlhLT0E5bzBzTkJXVWNjQkdO?=
 =?utf-8?B?VmJqbFZ5NE9rUFpxUFZSb0hIT2JyOERSOU9DM3dYYm5TcldYbTRnSFd4MWRv?=
 =?utf-8?B?NHZ0VUNUbnZqU0txQStqUzJNV0ViWHAwUk4zaXVENG96bUtDWldpVWZtQ3U4?=
 =?utf-8?B?TkN0WmlLTUU0c0tVNFo4cmd0Qk9CWDFIeUJURE1MNkFLUTBld290MlpnRG5m?=
 =?utf-8?B?TExGUDhyYUtlemtKSVRMQS9IR1VWYUlHU1BYYUF3YVFqMU04YmRrdEFBRDVZ?=
 =?utf-8?B?T3Z4QTFWSjFnbzdRa2F3MXhSaHpsRXBLYUR5S1llL0l5Nng1MEtxcXBsendT?=
 =?utf-8?B?UEt3WjhER2lMbmtOM0RvZVZ5R0psUTdySVdVNVFVK3NiNUFvZlRtN3Q2RTJJ?=
 =?utf-8?B?bXVid1hxRGtkNWZQNlo0MmI3LzJ0K3dEOGxnNjlMK3VmTTd5dlZRcnJSNFZQ?=
 =?utf-8?B?bW5oaTQ2QkkvVS9GdldKVkZzVlQ0TmhhRDBUeWdXa1gvcTFPZ01Oa2t6MDRL?=
 =?utf-8?B?OHZmRDBoT2pESEJJZWZrV0xrY3FJei8yWkcxSzdSRTVWaUNTdENDNGUzY0s2?=
 =?utf-8?B?YnM2YysxMFNDbVFBcVVCTVBVekxyY1pkbVJPaFNWdWg3OWFPSmJuaXNrU2dZ?=
 =?utf-8?B?aS81anVDSVIxWUxoOTFsYzRrOEIwWStDWkZUcWt2M1BVM1pCWVZlZ2RaRlZY?=
 =?utf-8?B?R3czUVNXTzhWVzBnVzM2WStzWG9tdmxrdTQ1VDBZV1B6blh1anRRMUlHUTNx?=
 =?utf-8?B?R3ZOZDM4aXVFV3JNRXZhRXF2SVFXaVV3MDBNTHg1SDFLWkdNQWZ1ZXlHeGY2?=
 =?utf-8?B?aVBrdEdnK29qU2UvelJ5ZU81NllaSzduOXBBYTYwZFh0MnVOWk5xWWx5SW1B?=
 =?utf-8?B?cVpMT1NqSnU4OEp6UDhBcUFHMFlHVGxIeG5GejlFY2tDa2VjRlFLdjJjMm93?=
 =?utf-8?B?RkhlWUl4OHo4d1dMZjlIZVhiTTRTQktMNXBkd1ZqMHRmUGIzNit6dGlBNGNm?=
 =?utf-8?B?Uk5zbHBBQUJPQXdYTEZuek0zb0QwazNGWkx6RkhrRnMrV1hTZUxmSFQvL1gz?=
 =?utf-8?B?RnJCVEp4TGVnRUxwYk5nRDQwTVZKYWFCMmhZS1JnY090aDRwWVo5cHRPQ1dv?=
 =?utf-8?B?eFlueU9NOWRYcXVNc1dSZEpJYnk2S0ZxMjM4TzFrQnN6RzFDRkg1S1JqV0ho?=
 =?utf-8?B?TjVUQktLWkVjYnRMaTRCaHFYcUI1VEc1clRRMXA5ZVBQTW41WUlpcEFpYk44?=
 =?utf-8?B?SG1XUjIwQmVtVFllU2crbFp0eWExckg3ZUF0dzc3aEthcVQ0ZW4xMUxqMklF?=
 =?utf-8?B?K0E9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0adb556a-d633-47a5-aa30-08de20489003
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2025 11:01:56.0904
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wMnZmF2meLuXod7lPyQDqOBc3PwZhqKpucwu5DOFR5pvttSMdjNnwTQDGvepT7sf4j3aIHomOFUxFYf5FSVz+uEKLAjhtCnEpxkkXMe3K00=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB8167

Hi All,

Please, ignore this submission.
It was sent incomplete, by mistake.
Sorry for that.

On 07.11.25 17:04, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> The cache disable mode code (hvm_shadow_handle_cd()) is relevant only for Intel VT-x (VMX),
> hence:
> - move hvm_shadow_handle_cd()/ hvm_set_uc_mode()/domain_exit_uc_mode() in VMX code
> - account for SHADOW_PAGING when use hvm_shadow_handle_cd()
> - move cache disable mode data into VMX specific structures
> 
> Based on discussion [1].
> 
> [1] https://patchwork.kernel.org/project/xen-devel/patch/20251023151903.560947-1-grygorii_strashko@epam.com/
> 
> v1: https://patchwork.kernel.org/project/xen-devel/cover/20251029235448.602380-1-grygorii_strashko@epam.com/
> 
> Grygorii Strashko (3):
>    x86/hvm: move hvm_shadow_handle_cd() to vmx code
>    x86/hvm: vmx: account for SHADOW_PAGING when use
>      hvm_shadow_handle_cd()
>    x86/hvm: vmx: refactor cache disable mode data
> 
>   xen/arch/x86/hvm/hvm.c                  | 59 --------------------
>   xen/arch/x86/hvm/vmx/vmx.c              | 73 +++++++++++++++++++++++--
>   xen/arch/x86/include/asm/hvm/domain.h   |  6 --
>   xen/arch/x86/include/asm/hvm/hvm.h      |  3 +
>   xen/arch/x86/include/asm/hvm/support.h  |  2 -
>   xen/arch/x86/include/asm/hvm/vcpu.h     |  3 -
>   xen/arch/x86/include/asm/hvm/vmx/vmcs.h | 13 +++++
>   xen/arch/x86/include/asm/mtrr.h         |  3 -
>   xen/arch/x86/mm/shadow/multi.c          |  2 +-
>   9 files changed, 85 insertions(+), 79 deletions(-)
> 

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Mon Nov 10 11:39:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 11:39:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158284.1486637 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIQF5-0000XD-OC; Mon, 10 Nov 2025 11:39:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158284.1486637; Mon, 10 Nov 2025 11:39:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIQF5-0000X6-Lf; Mon, 10 Nov 2025 11:39:27 +0000
Received: by outflank-mailman (input) for mailman id 1158284;
 Mon, 10 Nov 2025 11:39: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=pRw9=5S=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vIQF4-0000X0-8B
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 11:39:26 +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 e65e305c-be29-11f0-980a-7dc792cee155;
 Mon, 10 Nov 2025 12:39:22 +0100 (CET)
Received: from BN9PR03CA0399.namprd03.prod.outlook.com (2603:10b6:408:111::14)
 by CH2PR12MB9495.namprd12.prod.outlook.com (2603:10b6:610:27d::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Mon, 10 Nov
 2025 11:39:18 +0000
Received: from BN1PEPF00004683.namprd03.prod.outlook.com
 (2603:10b6:408:111:cafe::e9) by BN9PR03CA0399.outlook.office365.com
 (2603:10b6:408:111::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.16 via Frontend Transport; Mon,
 10 Nov 2025 11:39:18 +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.9320.13 via Frontend Transport; Mon, 10 Nov 2025 11:39:18 +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, 10 Nov
 2025 03:39:17 -0800
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, 10 Nov
 2025 03:39:17 -0800
Received: from [10.252.147.171] (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, 10 Nov 2025 03:39:16 -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: e65e305c-be29-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aSUqiKx8x+ssJQLwt34GK5Vw/L5R7njKUQW3xDguJ7S1iCoHK9mFFZBgd2s8B36hQftzqG6zLRTyJ6f/AhULsz82nb7MgiGq4+4Hokbw9a9aNCMdVGO9ISBsfnW0UGUuDkJkQmCLDeTHbwWd4WFYGkVe3J3DNFnzw5NnO7IT0gSHhbsKp42wdJBLOL4mg4nrggw56sOnTNDCDP7VEvIl/nVSd4XSJRuukWKB1ciV5dNT0mLhBnYQTNcQD8I6yfeCd5zE+LXXUN3M07KWLTDzd/HVFoOyYHYoV881Zdp4Ilz5jh6jOAfO8t7bx+u4gY8iiD81aRQSdzJNxplhl/X7Eg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zl+gm+3bPs5uAyz/cGBK6PuqjQ3RKuaPZ1eB12/9J5E=;
 b=L99rCkLr/IYm1opq/tMbwV2WpbV1e+3AyGY2gPMLw40+GhwD4/NoRX/Rh3QBZdMWMZMdrvEzmL7w41S8jX41E+bClxS3Vy0aYr4syNg21Sb/nTWMe6uXyPXKvR9lOYW5b+dUllGw4SvAxT5ngGrYlXivGffmRv3fYfGWImVP4s17z7/uwiF5MCruvktEhjkAplPET8TlyFaVWo5E6U6oHnByCx9+8N4hXHM4QEOaTNiKMIOEb1XMX7i8cOzTLJKyeMJ37WFunGkXKiUCylx9q9lWWYrs9wEmoeefro/nLTr42OcAbHYNj249Ky3W4zhsaxaxEgzLr9DbsH001YhXuA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zl+gm+3bPs5uAyz/cGBK6PuqjQ3RKuaPZ1eB12/9J5E=;
 b=MIVXWOV62Vuk28Q5fu4pVYWdg5pMPQ22iBWp2NRT7fsD6yBfD9P9+O7zPkgAcNxzQXcr4D05sRBA5lS+hnBFmaItnBN8/cEvEBCMkLOfH7bp+cx0Lfs0tY9FmEWtm1N43pgWyIBAvc14br9Ke2Cnm6PhRbsm7fKSq9i2l/2OUSI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <a2204f38-e121-4aa3-bdec-efc2214a3925@amd.com>
Date: Mon, 10 Nov 2025 12:39:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] dom0less: Remove redundant magic check in
 'check_partial_fdt()'
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>
References: <f624c6fd2e63ce92d764519922ec5cf39152fa91.1762772330.git.dmytro_prokopchuk1@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <f624c6fd2e63ce92d764519922ec5cf39152fa91.1762772330.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004683:EE_|CH2PR12MB9495:EE_
X-MS-Office365-Filtering-Correlation-Id: 7861419e-3234-4e97-e1d8-08de204dc875
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?U0JoVjI3aU56MHR6QXgvcDZXOTRsNlBhOFRtSVVBbWhhcGduWDZGRWZuMVkr?=
 =?utf-8?B?VGdGa2JmbHFKU0VWUURyZkVMbFk2WDdaNXRpa0V0WGx6YkxPNVZPTG9oL0R2?=
 =?utf-8?B?Z2VtL1dwWWdkWi84RkNpWTFITng5WlIyMDQxc3AvandLMWtUM3BMWWZ2S1Fi?=
 =?utf-8?B?V2VBdzBNRmRCckZ3bzFJMFRhMTBQNVNyV2lPY2hLVmJLNEZGSmdSNzZNSzdl?=
 =?utf-8?B?QzBJeFRxMUhyZU1EYjkxaTF5TGR2WlJWV0ZFMzZsdkM3SitFQkJQeFNGTXZK?=
 =?utf-8?B?aUREeGwzOGllVHZRZkY0QVpuTTNpRTZ6eGZXbFV6akd1WEQ4Q0k4UFIrTUdY?=
 =?utf-8?B?bHJReDFoSEhqVE5Bc2w3blB0TDg4U3pJakZIOWtQRXBKRTZRVm1vZHZNSzFP?=
 =?utf-8?B?NlRCME96dW5pZmdDaTFZRWY2NndJMGwrbSs3bnpWQ3ZnZ3FYTFQ5WkpVeDY2?=
 =?utf-8?B?N2NYY3NnTUNndzNvK2xXQ0tyQnJlNW9SbUd1Q2FhQmhaTTh0VnZvZ0hXT1RT?=
 =?utf-8?B?SXJkWlczNWF1YjkzMm84SUs2L2tydnlaSGRDSWpXSnc1QU1XYjVWZkN3bFZk?=
 =?utf-8?B?a1d2TE9nYjN6bE1mSkhCS2hIOHVEL0ZrMGJlVERpdEJkY2h2eEFtSktLOUJH?=
 =?utf-8?B?ZlVtU0ZKZEhXUXhPM3JnQVE5NkZtcGd3WGtzOWM1K0V0NzlrdjZLdldoaHlv?=
 =?utf-8?B?cTgybmd0WEpDcWVubnU2VnorcTMrc3Nqb0JVR05GYlJGbGpMaURXLzc4cmlq?=
 =?utf-8?B?SE9CblArSlVzc1RiM2R0WHo5c242SldKSVBuV01yeE9vSmgvY2JNOHVPekJO?=
 =?utf-8?B?TjRadEQwK3d2YzlXd05QUnhNMmdteXdUczhZUkthU1NseDhONEJxSDdYb1Bp?=
 =?utf-8?B?U01iL0pxL1VVNEJsamRRcW8xMDRtaE9XdmQydVZESkFvN3ZxQjZPTDlVWHVx?=
 =?utf-8?B?UWUzZTJxZDMxc1BXV2xWL3llSXJvREJaWVA5eGEzZUIxTWQzMitQbEhBbURu?=
 =?utf-8?B?WXIvbis5OWZHQy9zVUgwYmZReWhqRjErM1A3NnJIMTR6WDY0Q0xSMlREWGJw?=
 =?utf-8?B?TzNIcE5TSDlweDdkdmNaNzRtUDVQZ2Jnc0FsaHhkbjFLWkJ1UjZqUHpvWi9O?=
 =?utf-8?B?UlZNbS9NajczbjQ0ekxQajVlRFVpZGtLMTFPS2pCb2xXTkRGM1BaSDhnK1Mx?=
 =?utf-8?B?aFFZcWQ3WXpzZmNlTENpQmpoUUduZ1lNM0d1d0ZQVEpQV3hnRjM4RVpLZDk0?=
 =?utf-8?B?aFBwNnROVG5rb3lyZnh1NDJFWUZ5c0EvWm93UlJQNmpHQUR4TjFnTHJISzFz?=
 =?utf-8?B?Yjgya25VbklWTWgzZUtUVGQ1aTM1Qll5NEhhbjBib1BFL1NqR1N6QTZTbGhp?=
 =?utf-8?B?WmRIanhzZzdEbHhHZGxIM2JtMHBBY2NBWVFBK24xSUxZVmJDWU01ZTRVUXdZ?=
 =?utf-8?B?T3VqeFhNS2RMamYyMWZlcVhEUDYyOGRqc0ZPSXRiTndQbzFMR1NVYlE0NCtR?=
 =?utf-8?B?N3picktrUnBac1pYOWFpUFRwR3pUeXVPc2xVNm1LRno3VmtVOUU5YmtxamJN?=
 =?utf-8?B?U1Y2YnphcS9PNkg2WTJaVHFLbVo2VExyenRNS0tOVmtXMHVYZEtZdGs5UEhz?=
 =?utf-8?B?S1prbjFUU3MzclFZREtQYnlUbU5jSWVkcXliazZqTUlKWUtSWHZBajZPbnJF?=
 =?utf-8?B?UVBNeVA1V1JEOTZKbHN2bXh2eWR6WTM0eWFNMkh3ZUZtSFM3MFZsQnpUM2ND?=
 =?utf-8?B?WXg1Rmhic0R2NXcyM1Z3V0JhU01HVWUxeWl5N0dSSGkxUkc1cjRkQldTcSt3?=
 =?utf-8?B?UmgrYk1pL2Zrakl2Q0lzVkxqYjArNjN6d0c4eHZJeXJGNXk4S2VHeS9MT3gx?=
 =?utf-8?B?WWhveVNDMW4zbjUzdXcrT1ZrdGVEVXZHVnVndmtHdFJyalhnYytuTGdtaG1k?=
 =?utf-8?B?NmVNOWVtOXpZaC9YK0wvRlJwL0xQZnQwRnAzcFNLQ0hibEY5YmdnUjB1MGpS?=
 =?utf-8?B?Qlp0Mnp4VEt1Z1ZNSnJGdFJYc2ZPRHNDQ01vbHJPbXkzNEgwSnNkUHhKdjh6?=
 =?utf-8?B?OHhybzFheHBvU1JTZkF4ak1BbVFON3lKT2MzS1pEM3dUNGNKMzFQVncwbEhr?=
 =?utf-8?Q?2IMQ=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2025 11:39:18.0505
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7861419e-3234-4e97-e1d8-08de204dc875
X-MS-Exchange-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: CH2PR12MB9495



On 10/11/2025 11:59, Dmytro Prokopchuk1 wrote:
> The function 'check_partial_fdt()' performs an explicit check for the FDT
> magic number (FDT_MAGIC) before calling 'fdt_check_header(). This check is
> redundant, because 'fdt_check_header()' includes checking the magic number.
> 
> Remove the redundant check to simplify the code and rely on the library
> function to perform header validation.
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Nov 10 12:30:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 12:30:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158299.1486647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIR2j-0007oR-Fy; Mon, 10 Nov 2025 12:30:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158299.1486647; Mon, 10 Nov 2025 12:30:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIR2j-0007oK-DG; Mon, 10 Nov 2025 12:30:45 +0000
Received: by outflank-mailman (input) for mailman id 1158299;
 Mon, 10 Nov 2025 12:30:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=D0MZ=5S=citrix.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1vIR2h-0007o9-74
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 12:30:43 +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 120657c0-be31-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 13:30:42 +0100 (CET)
Received: from IA3PR03MB8408.namprd03.prod.outlook.com (2603:10b6:208:546::19)
 by CH0PR03MB5986.namprd03.prod.outlook.com (2603:10b6:610:e1::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Mon, 10 Nov
 2025 12:30:39 +0000
Received: from IA3PR03MB8408.namprd03.prod.outlook.com
 ([fe80::8d7b:218a:6264:2c39]) by IA3PR03MB8408.namprd03.prod.outlook.com
 ([fe80::8d7b:218a:6264:2c39%5]) with mapi id 15.20.9298.007; Mon, 10 Nov 2025
 12:30: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: 120657c0-be31-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=T9pXjzLlVesrR/c+j0O7LZfciBexbFSryJBefeEIAuxxl0r6HqmC085jPZiUOFfQ6CwmLN2TH2LO080WNV6WKQI4pnZR7L91F2Syke03SCBa+9SvtfJDo8k0A9qgfaUWcKjmvWlppCT0/iMM1SllaqwMJeanjVnx+FF0RxwDwuiuLJjgSv35PKPbr1ZAnV8xnhDv+/6fx5KAwfsu8Y43Yyn56SA4ftSHY20b5PX2yBrB1pAMe2iVUoGKCVKfm9cZ+S5puPrYAt9tnBX111pAVo9bDC5PmhfsIHO+fbwUbAwn00tFnsZKjHlAX48HRW3noeEEuHWifZjvtYA2N55C5Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tXPtymH/2fKyiqONi5yxmZtMyuXsg1x7d7EZSTzJA3A=;
 b=WFqZNATfK43xrySt25E1bb5fIqkxbAywPyFFIo82dJGED7H58ZpQqOq7YlwAjyA5QAEPhOjp++LfUNt0NIAl+l7uKYu7ZJHx0csQEbu7AlHC/tZD/FpEXPUVrWkfXZ9Z61NgKHzTIAAOHIBMnFQ4HmdYN1zZ19i3qGVBb1K/bGs/EStnZ6fslyGDprUQsdRt5od/yP8IamjIJwtplW+6zpmJ73uvi13Zi3AkVsfLwFf5jAtdOe1dNpvHo5mEzDH7RiRrI7vwd1puac81rXArsXnoDbmZg4J0Uaasy6gX2Onck+3w2vpfe2+X5WnX6Jvc6UHvqdUszYVVsV8mrwBpyA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tXPtymH/2fKyiqONi5yxmZtMyuXsg1x7d7EZSTzJA3A=;
 b=PYGuBDCQVsQxucwt8fSpx4eLRYyxkX7TZ8+7deUfHijdvijAS/yhTWGLbVRzvlk5K55WfGuKCKOhRZHG5KjqwsW99msTATPHydOutkbz5r47yVhe75UDjvakVRDdoTyerZEPClMn1kXJxinlCCA/+GiCkiuvpVeLxQ9Q0ouD+2c=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Frediano Ziglio <frediano.ziglio@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Frediano Ziglio <freddy77@gmail.com>,
	Demi Marie Obenour <demiobenour@gmail.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v4] xen: Strip xen.efi by default
Date: Mon, 10 Nov 2025 12:30:34 +0000
Message-ID: <20251110123034.77692-1-frediano.ziglio@citrix.com>
X-Mailer: git-send-email 2.51.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0502.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1ab::21) To IA3PR03MB8408.namprd03.prod.outlook.com
 (2603:10b6:208:546::19)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA3PR03MB8408:EE_|CH0PR03MB5986:EE_
X-MS-Office365-Filtering-Correlation-Id: 3c2e5e6b-7cc3-47ab-2928-08de2054f4f8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?xW16HDU/xvTImBcjybuPKSl+B9NcbiV8fjr0FJ7iazfZk5cEvbHKO5FQWnD6?=
 =?us-ascii?Q?iAVE1snEwkoJJe5QcPdQDbjFfWF2pO4I4IUvcIDV1z8WYKYYbYAD/xFnohJH?=
 =?us-ascii?Q?LEcxDnX47178MPMP8tmP2COk5LX/b9JatwDyHSQ12DuJFot0qOFeHE8DAwZo?=
 =?us-ascii?Q?3KzCylJ80zCGJexZ37/mheOgKRcZqr24/VlOHaNTQAmYqvGP3HBTbKd1rYCe?=
 =?us-ascii?Q?Nk6r6kp2l4jlv1CPSs0gW1f6JhRP521CMNRJOBcp6fGEImZ3PayPtJxARvve?=
 =?us-ascii?Q?YcCY4i2v0L62ti3G+amLyTMbQ4p44n3242CIy41kCu8sha6kBrJHx72Us5aD?=
 =?us-ascii?Q?4L0qQpVcYaozB4foFu+SL78dzIxYuoi74uSfqR03bElvWOzVVAc017F8SQqz?=
 =?us-ascii?Q?ietqqe4d7kOyQzpae0W63mSjp6PbjwaTdEr7qf5JukNVOFjaexcoNQXdLMNd?=
 =?us-ascii?Q?SyRB47y5rAalYkspbN+L2P0IM/A+cwR6Tu1BnLPCuMdsPf45/JdfaxTPhpP2?=
 =?us-ascii?Q?sD5E5d4oA/Do0yZB+fCgKOXgJCd3AlK102pJn7Q2olF2pA33Ez3wafb6XjlA?=
 =?us-ascii?Q?UALxflckQZmGAqqd9gcBGqicr+XuMA+eSJNa8BxLOZyRGUzNafset66SixOZ?=
 =?us-ascii?Q?8b3+tVp3Tw1mgKtW6ZFEoeAI8yrFWdBLd6eNI2VM+g1AnzMwfvcbC9i+uLnK?=
 =?us-ascii?Q?Epr2B/apvz3389i34yH3kUmue39b1QQF10f3mAGAG6oS9ywTrTppnMi08wbe?=
 =?us-ascii?Q?Ti/ccLzHdqj51LIDRO43AjyKiwYczJXIehE93zrOhDq6m43iuoqysST811tB?=
 =?us-ascii?Q?uMZo7OoZjFQOuLyGrQPWtuRFLb5DaxLOYYKOmNIA3FrunZBF0HlgUIEpl2U7?=
 =?us-ascii?Q?6ZErkCwKER8pVPgyOm30ljaShIGKurUurHBHbChkJONyfiqbDWdLezQoAasp?=
 =?us-ascii?Q?y04JRHmRxSmZKXIvr8VJWmPrffMo1W1KjjMXDDruBtkBva7c4g85OoKka6Ue?=
 =?us-ascii?Q?ZXvNXZTa2mmZdiF7Sq2NXDcXBKqP6mF/QW/fEbBrJ2KR7YqC7W1lpHksxL7L?=
 =?us-ascii?Q?8aN/9DbTvEAaKyNjMEsYCIzvSuqiGUyKaLv3GjfDPheylp+5KJLCcZ2Cx5EX?=
 =?us-ascii?Q?ROQbmqkI3hE1a60nZE4P17JdNFcahnxCKI2bWhlSFmkwbUuP2SF5taAlLvwn?=
 =?us-ascii?Q?g6BX5yf05PfnFzlXjuq2vPj5o4d+N8/kb1NFtHx9ouJVi/SYGssFYjldFTqK?=
 =?us-ascii?Q?sgAcV0oSMbaF7r1kvE2yNwG448ePNy5uVqfwOQ9aPolyZRUrURRk69fuKPVb?=
 =?us-ascii?Q?A7nGZJCs+phfdnx0zKcoLL1a4bARM74jL5zVwo8pneIGSEUUB39WPTrDiUmW?=
 =?us-ascii?Q?ZZct4onllFJEUsovzUPbGCMKSQOYHpevqrJcuAP6HVyjJlJ19vB1tqyKfV78?=
 =?us-ascii?Q?O61Crvr5SvRbRLSM246XIbRJwCgPaCVY?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA3PR03MB8408.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?PZfPN4Qw/hjVSl6fmlizuZa7F/ZMoSmg3vYNnqJKJwZyEs0wj/88J8+lNzdB?=
 =?us-ascii?Q?vxHa7q+JI4ClB4Qk09gGuk+o5ZtAWH0n0Qe0E67Ou0QkIq5Ga4qzY7EuEOsM?=
 =?us-ascii?Q?YinfZaFuBku6Manpq8qzewfgDQXC8YNJcmYvbG96xFyuTn5r322VY6bKyId4?=
 =?us-ascii?Q?VwnYECoF5VmjkdJ0u4aUNxudfHUGzfl88F4B72mZEXZnPHsQN/J/apSOTnLC?=
 =?us-ascii?Q?HNArsRYHc0Htd26NvQ2Tf3TK74cZKXtcl3wsk/Zq3UIEF8len0BFFmdQDhdB?=
 =?us-ascii?Q?Kf46Bzs8EluMVup8CAtO/mODk0OQXetoHLtpuDlVyGf92KJEA/Vs+wS+CoLv?=
 =?us-ascii?Q?wylv3sGCKH225s66o3Zgkio+yb5xZTuUOCxhdR1wDXQBde55nByJAZXInwCi?=
 =?us-ascii?Q?GCzsEKZq6eebFUUpiPzYpJqk+iYfTnhO+JFrN1qcY4I0vc5edb8oJqchtRxJ?=
 =?us-ascii?Q?mlSvgX3yISCTAAFG6R42gSKL3SWLE23RnvLRmfZ30QSebFlXlhwBEYZqiNnk?=
 =?us-ascii?Q?FmnkZwCHb8benJ179tJc+YF6hb2tmXTmIWOF/UtDktQDZE+Zy5i2Dm4U0+Oh?=
 =?us-ascii?Q?xtkVJRgyb23plOoXZkFoGoM9LLT9YQkokXyhsfXeskcOugFkGQ4iAo17XpOa?=
 =?us-ascii?Q?oBCoCJYWJ0eFdCBxcZ958pvmHa7hWH+2CjL1MCcwFF6yuApWA2sMexUZYbVZ?=
 =?us-ascii?Q?twZRbqvcb1ZMCTPYjWmsLnbAYAwYyurebcVXtGzO2QDWL5GpU3AC2706RNpa?=
 =?us-ascii?Q?yPtyDHcOekF61T9AS1+6vD+9LBAbolMBcR+9DwrFqgrilRoNXjN+kEPvavnD?=
 =?us-ascii?Q?nl3gQBSBpKgZ4X/rI2tWzFUNeDzBeaDF57yFbFAueslOPYKXUewXXUu6pzia?=
 =?us-ascii?Q?+jOwaC1DHPMb+SDDQpHbspe1cx0WgsJrge/w+k1RHmthEy5BJkGsuBcSLpCx?=
 =?us-ascii?Q?2TphMuJmbvvratiXXWNr2+/jCrwq5BT5vksIJ2MGsSBRKGLIWctnOvYs/Or6?=
 =?us-ascii?Q?PwdNd/hN+AfPnnU+ziCwYlz/l8uv6aC+mrOHZMCZhokQH9HZv9pe45muCiqg?=
 =?us-ascii?Q?pb2LyJPvWj0H/5gKvlIFquvEgtiO5iF38VoCPiUz2yOl0/emjcwK2NCHOgag?=
 =?us-ascii?Q?S0OT6Nlwh2uAteS5IgZS2Q5yY8qMx+R/VOfVvR1fC3YQXSHKP4LkmOsGUx4I?=
 =?us-ascii?Q?KUjSy+yIIkHBECVAB7VVxPSYI2u6iKLBBCklAN7SfLkHnp3PCV7Y5JLkmEzN?=
 =?us-ascii?Q?lt2HruYjK2JqTurQ6MpMIMXKbDy45QYNYwdIRZE9SmkcI23MH/YRZo45xDcM?=
 =?us-ascii?Q?PSHckNOk6LAetDbgkXjmsK0cuNi5x94ioXZQZGSj8BomsBX2gARVMV2nRu8u?=
 =?us-ascii?Q?dbNg0DS8Q/xta1aDhTsSpynWv1m7ysZzztW8+NpMKys0npvT4j2zFzKWdv00?=
 =?us-ascii?Q?wJvLfP0aySDsSFjLEK3pmAJ6YvLrmfUbNi5eWJHzk5keNRR910OoncQw4uvX?=
 =?us-ascii?Q?yCCK7nPhdHZFqzgO1BtGDloYXHO/rCQ/sgsaLUdNT8PgKzgB+3EJaFvqZK8b?=
 =?us-ascii?Q?gErzIpIYTe+PWyuxUqNphHmHVNj4ca2VWnot5qeR4DlSMhfjrcl2GEolOuYF?=
 =?us-ascii?Q?iA=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3c2e5e6b-7cc3-47ab-2928-08de2054f4f8
X-MS-Exchange-CrossTenant-AuthSource: IA3PR03MB8408.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2025 12:30:39.3754
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: S208RIfObJaSCE/94lmtcqcysRSGUt8SNqYW65C6Qm8VURZSlGS6Wzcxx8dEvwV+s+8Y+/9t/rbEuZ0Rtq1TJo50qPA7MPG57DwRew5qIwk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB5986

From: Frediano Ziglio <frediano.ziglio@cloud.com>

For xen.gz file we strip all symbols and have an additional
xen-syms.efi file version with all symbols.
Make xen.efi more coherent stripping all symbols too.
xen-syms.efi can be used for debugging.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
Changes since v1:
- avoid leaving target if some command fails.

Changes since v2:
- do not convert type but retain PE format;
- use xen-syms.efi for new file name, more consistent with ELF.

Changes since v3:
- update documentation;
- do not remove xen.efi.elf;
- check endbr instruction before generating final target.
---
 docs/misc/efi.pandoc  |  8 +-------
 xen/Kconfig.debug     |  9 ++-------
 xen/Makefile          | 19 -------------------
 xen/arch/x86/Makefile | 16 +++++++++++-----
 4 files changed, 14 insertions(+), 38 deletions(-)

diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
index 11c1ac3346..c66b18a66b 100644
--- a/docs/misc/efi.pandoc
+++ b/docs/misc/efi.pandoc
@@ -20,13 +20,7 @@ Xen to load the configuration file even if multiboot modules are found.
 Once built, `make install-xen` will place the resulting binary directly into
 the EFI boot partition, provided `EFI_VENDOR` is set in the environment (and
 `EFI_MOUNTPOINT` is overridden as needed, should the default of `/boot/efi` not
-match your system). When built with debug info, the binary can be quite large.
-Setting `INSTALL_EFI_STRIP=1` in the environment will cause it to be stripped
-of debug info in the process of installing. `INSTALL_EFI_STRIP` can also be set
-to any combination of options suitable to pass to `strip`, in case the default
-ones don't do. The xen.efi binary will also be installed in `/usr/lib64/efi/`,
-unless `EFI_DIR` is set in the environment to override this default. This
-binary will not be stripped in the process.
+match your system).
 
 The binary itself will require a configuration file (names with the `.efi`
 extension of the binary's name replaced by `.cfg`, and - until an existing
diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index d900d926c5..1a8e0c6ec3 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -147,12 +147,7 @@ config DEBUG_INFO
 	  Say Y here if you want to build Xen with debug information. This
 	  information is needed e.g. for doing crash dump analysis of the
 	  hypervisor via the "crash" tool.
-	  Saying Y will increase the size of the xen-syms and xen.efi
-	  binaries. In case the space on the EFI boot partition is rather
-	  limited, you may want to install a stripped variant of xen.efi in
-	  the EFI boot partition (look for "INSTALL_EFI_STRIP" in
-	  docs/misc/efi.pandoc for more information - when not using
-	  "make install-xen" for installing xen.efi, stripping needs to be
-	  done outside the Xen build environment).
+	  Saying Y will increase the size of the xen-syms, xen-syms.efi and
+	  xen.efi.elf binaries.
 
 endmenu
diff --git a/xen/Makefile b/xen/Makefile
index ddcee8835c..605a26c181 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -493,22 +493,6 @@ endif
 .PHONY: _build
 _build: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 
-# Strip
-#
-# INSTALL_EFI_STRIP, if defined, will cause xen.efi to be stripped before it
-# is installed. If INSTALL_EFI_STRIP is '1', then the default option(s) below
-# will be used. Otherwise, INSTALL_EFI_STRIP value will be used as the
-# option(s) to the strip command.
-ifdef INSTALL_EFI_STRIP
-
-ifeq ($(INSTALL_EFI_STRIP),1)
-efi-strip-opt := --strip-debug --keep-file-symbols
-else
-efi-strip-opt := $(INSTALL_EFI_STRIP)
-endif
-
-endif
-
 .PHONY: _install
 _install: D=$(DESTDIR)
 _install: T=$(notdir $(TARGET))
@@ -535,9 +519,6 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi; \
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T).efi; \
 		if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; then \
-			$(if $(efi-strip-opt), \
-			     $(STRIP) $(efi-strip-opt) -p -o $(TARGET).efi.stripped $(TARGET).efi && \
-			     $(INSTALL_DATA) $(TARGET).efi.stripped $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi ||) \
 			$(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \
 		elif [ "$(D)" = "$(patsubst $(shell cd $(XEN_ROOT) && pwd)/%,%,$(D))" ]; then \
 			echo 'EFI installation only partially done (EFI_VENDOR not set)' >&2; \
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 407571c510..31ea1da5bc 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -228,17 +228,23 @@ endif
 	$(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
 	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
 	      $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
-	      $(note_file_option) -o $@
-	$(NM) -pa --format=sysv $@ \
+	      $(note_file_option) -o $@.tmp
+	$(NM) -pa --format=sysv $@.tmp \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map
 ifeq ($(CONFIG_DEBUG_INFO),y)
-	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
+	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) \
+		-O elf64-x86-64 $@.tmp $@.elf
+	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))mv -f \
+		$@.tmp $(TARGET)-syms.efi
+	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(STRIP) \
+		$(TARGET)-syms.efi -o $@.tmp
 endif
-	rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
 ifeq ($(CONFIG_XEN_IBT),y)
-	$(SHELL) $(srctree)/tools/check-endbr.sh $@
+	$(SHELL) $(srctree)/tools/check-endbr.sh $@.tmp
 endif
+	mv -f $@.tmp $@
+	rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
 else
 $(TARGET).efi: FORCE
 	rm -f $@
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 10 12:34:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 12:34:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158311.1486657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIR6F-0008OW-UE; Mon, 10 Nov 2025 12:34:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158311.1486657; Mon, 10 Nov 2025 12:34:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIR6F-0008OP-Rb; Mon, 10 Nov 2025 12:34:23 +0000
Received: by outflank-mailman (input) for mailman id 1158311;
 Mon, 10 Nov 2025 12:34: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=thpE=5S=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vIR6F-0008OJ-6k
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 12:34:23 +0000
Received: from mail-yw1-x1135.google.com (mail-yw1-x1135.google.com
 [2607:f8b0:4864:20::1135])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8d848cf2-be31-11f0-980a-7dc792cee155;
 Mon, 10 Nov 2025 13:34:09 +0100 (CET)
Received: by mail-yw1-x1135.google.com with SMTP id
 00721157ae682-78665368a5cso26951157b3.3
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 04:34: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: 8d848cf2-be31-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762778048; x=1763382848; 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=mjcld7zYhMN6TAnYLFoVGfl+DSMvi2tJblgnEWonM24=;
        b=FaMsMIZDEfKtf+mmOWjyPPx0jYtqcl2a8BQiHixkd8XmOHkdfM5jenkAHRGW1gdFQd
         tbS+fSQK3259b2TmAnJ4Mpk3dc9ZOlG/h62APOiqm2MaDcjz9adRc6VoM+G+NfA6F6eh
         PL/iTVkm2ukxsVa/TZa5QJMEJwyBVC/TNv5uGfqyrf3iI4+QVafvHZxk0xaGaStVKOsY
         SxPAFnm9A9AgYV9X8+6+ZdfHTGlxvBBAr+/mpRLOymXg+xRBkrGRoP2sRBJWMAudJxkn
         svT+CzhHUdDV3+s+tKsWoro+mlxgn5+m3zIaF6SYZZK6HsqIRb6/b+yc+4RbVTXn0Klz
         h2ZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762778048; x=1763382848;
        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=mjcld7zYhMN6TAnYLFoVGfl+DSMvi2tJblgnEWonM24=;
        b=JsGITrGK0y0Fn5Ng19hvrrPJ+SIea6a5DyJp4awXlajcOvLs/qIlu6KJcwR6K9+6yJ
         ELplRcmZvc7TLuK5oPZPbEXIjYyfr2pYtQDj64AU09Za8/v2eG+Ia3lTNVkNBadkxXcb
         qOOeoGiefcdqoZaqdOWGYQNCotMlsdhB3HVWO1k0hDnZBYc+o3TOKSQJWyQjXGURA3tG
         0o+mC3ha0UOQioX/jMDWZiUPtoUD0F9D0Fr3JF5Ln5gwWVNTTTGrEbqfNSbGElg19hTK
         JME2x9+J7SCRRBpTXbXZOl2V/c48y+2lfkihumQUWgDXUgq0lK8ovGrfDsDCo8O4Pt33
         MQkQ==
X-Forwarded-Encrypted: i=1; AJvYcCXCcmlmzQXObwPgvpnTMQmQKZc74qbk8GzPi+cNlNg/ti27SmtoyLWyR+TD6GRUkLPHE92c6Hkj/Z4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxbbQIi6hYFNHHTqcRSCZQ4xgGpVA+6O/h+y+sodQxEvRjnQ4dc
	Wdds8lrXQPI3U40nhVNBENCqzDf05Q5TSKxhKp4k5FZvok46Zvxkz9luamLIW9TfZxwOLT+F7Pv
	ALqDP/OAi/BxEwLhzNvF75e67/eaNlkU=
X-Gm-Gg: ASbGncudWLkcRSD1RMZWkX58J/30khH3gR1ejGYQ6Wvp7axg/S+l58M/9sERsLkDp+t
	2jIUf3W7LdLdpOPKnKos3jFMOxUVL8YH/UWkQ7T5aax9bgETYuBfcTqNYI7Unv92eJE9q9yPZjF
	3P2t1Axfld8GMUp0DMarMEQWX+iQ5+SGRQQOzB2YfzYYJomuzRH9DaRZO/tYsPTqu2sxCMwoN2w
	JMUzuh6Zyr9d3lkyHS4Nb+pvxL2NtJzCxP8vcF8VqPE5nxiWBpBsrhIyunHO+RXdhPiFEw=
X-Google-Smtp-Source: AGHT+IECnJtKtQG4p4Nvi7wT8vPtBdN2mXckrMlbcYbo51IkLk8cRTxhiEXCBhQg53xQjymmEUDszkN2rYzff/w89eg=
X-Received: by 2002:a05:690c:6284:b0:787:c849:6544 with SMTP id
 00721157ae682-787d535092cmr75648767b3.5.1762778047953; Mon, 10 Nov 2025
 04:34:07 -0800 (PST)
MIME-Version: 1.0
References: <20251105153808.20278-1-frediano.ziglio@citrix.com>
 <97611b79-228c-40a6-9fb2-4571b2447258@suse.com> <CAHt6W4ce9cPwdaYXwgL4Unkprh4BQ2Qh_CSM0q9WjP2fdVf-Gg@mail.gmail.com>
 <c0a7d349-8338-45a3-b701-f07ef3e6526b@suse.com>
In-Reply-To: <c0a7d349-8338-45a3-b701-f07ef3e6526b@suse.com>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Mon, 10 Nov 2025 12:33:55 +0000
X-Gm-Features: AWmQ_bnn4Y9t4Y5Q3zMjC-AGE1mpF9S2-VxCecq0gdoRAEsrscdbz8xSvyjp89c
Message-ID: <CAHt6W4dqe9mX=CFrdbUTkfxwy8XYNi+2eRCfaQZOmbo=195ZRg@mail.gmail.com>
Subject: Re: [PATCH v3] xen: Strip xen.efi by default
To: Jan Beulich <jbeulich@suse.com>
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Fri, 7 Nov 2025 at 07:08, Jan Beulich <jbeulich@suse.com> wrote:
>
> On 06.11.2025 17:37, Frediano Ziglio wrote:
> > On Thu, 6 Nov 2025 at 10:32, Jan Beulich <jbeulich@suse.com> wrote:
> >> On 05.11.2025 16:38, Frediano Ziglio wrote:
> >>> --- a/xen/Kconfig.debug
> >>> +++ b/xen/Kconfig.debug
> >>> @@ -147,12 +147,7 @@ config DEBUG_INFO
> >>>         Say Y here if you want to build Xen with debug information. This
> >>>         information is needed e.g. for doing crash dump analysis of the
> >>>         hypervisor via the "crash" tool.
> >>> -       Saying Y will increase the size of the xen-syms and xen.efi
> >>> -       binaries. In case the space on the EFI boot partition is rather
> >>> -       limited, you may want to install a stripped variant of xen.efi in
> >>> -       the EFI boot partition (look for "INSTALL_EFI_STRIP" in
> >>> -       docs/misc/efi.pandoc for more information - when not using
> >>> -       "make install-xen" for installing xen.efi, stripping needs to be
> >>> -       done outside the Xen build environment).
> >>> +       Saying Y will increase the size of the xen-syms and xen.efi.elf
> >>> +       binaries.
> >>
> >> Why xen.efi.elf and not xen-syms.efi?
> >>
> >
> > I forgot to update this part.
> > Now that I see the comment, was the suggestion about having an
> > additional xen-syms.efi file or having xen-syms.efi instead of
> > xen.efi.elf ?
>
> The former. We want to have the binary available that the linker produced
> directly. Anything else are extra's for what people think they may need.
>

Done in v4.

> >>> --- a/xen/arch/x86/Makefile
> >>> +++ b/xen/arch/x86/Makefile
> >>> @@ -228,14 +228,17 @@ endif
> >>>       $(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
> >>>       $(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
> >>>             $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
> >>> -           $(note_file_option) -o $@
> >>> -     $(NM) -pa --format=sysv $@ \
> >>> +           $(note_file_option) -o $@.tmp
> >>> +     $(NM) -pa --format=sysv $@.tmp \
> >>>               | $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
> >>>               > $@.map
> >>>  ifeq ($(CONFIG_DEBUG_INFO),y)
> >>> -     $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
> >>> +     $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))cp -f \
> >>> +        $@.tmp $(TARGET)-syms.efi
> >>> +     $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(STRIP) $@.tmp
> >>>  endif
> >>>       rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
> >>> +     mv -f $@.tmp $@
> >>>  ifeq ($(CONFIG_XEN_IBT),y)
> >>>       $(SHELL) $(srctree)/tools/check-endbr.sh $@
> >>>  endif
> >>
> >> I see $@.tmp here, but no sign of xen-syms. Did you submit a stake patch? Am
> >> I missing something?
> >>
> >
> > I don't know what a "stake patch" is.
>
> Sorry, typo - "stale" was meant.
>
> > xen-syms.efi (that is $(TARGET)-syms.efi in the Makefile) is not a
> > target of this rule so if the rule fails it will be generated again.
>
> How does this matter in this context? The description talks of a xen-syms.efi
> being generated, yet I'm simply unable to spot where that would be happening.
>

It was "generated" with a "cp" command, now I use "mv" + "strip -o"
(in v4) to make it more clear.

> >> I also think the mv should sit ahead of the cleaning-up rm.
> >
> > Are you sure?
> > Usually you want it as the last command so any failure won't create
> > the target. For instance here if check-endbr.sh is failing the target
> > is still created and next make command will succeed.
>
> Except that the rm is tidying up rather than creating anything.
>

Updated this moving endbr check before the "mv" and the cleanup after.

> Jan

Frediano


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 12:37:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 12:37:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158322.1486668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIR9F-0000XI-BT; Mon, 10 Nov 2025 12:37:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158322.1486668; Mon, 10 Nov 2025 12:37: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 1vIR9F-0000XB-8f; Mon, 10 Nov 2025 12:37:29 +0000
Received: by outflank-mailman (input) for mailman id 1158322;
 Mon, 10 Nov 2025 12:37: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=thpE=5S=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vIR9E-0000X5-Mt
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 12:37:28 +0000
Received: from mail-yw1-x112b.google.com (mail-yw1-x112b.google.com
 [2607:f8b0:4864:20::112b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 03aadc6b-be32-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 13:37:27 +0100 (CET)
Received: by mail-yw1-x112b.google.com with SMTP id
 00721157ae682-787cc9de986so22719427b3.2
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 04:37: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: 03aadc6b-be32-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762778246; x=1763383046; 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=9wae001CoERG5WO46lzb4HtEOVA8lNVhjUvYhOsjDUc=;
        b=TSMHPGeNE9g6lKaNKlHIa2Ute/WIy79KUTjRFoJnEvu696VL6f1X43pnTcr7Zz40Dd
         xUZoKj0G6yapZd38608tdXF2FDif22fpz/3Gaw7dQP4htkMY51tGqdVBNyR5KG6u0JQV
         uG/Ik30Spqvr0GRI3T/ssXs+LE1GUwxrWisexQHem9F3VbIyyKliovw+lcOCNgyygRoZ
         3ofXIR+v5bT4n+7PihWQnYrKAveElCB/anFqmuPfTkcR/NL+LA52d7emm2jWtlYnhRV/
         HgLbgEfVOrO4EiYKW8QxGfiNoq5ILwjJYiEMPNj2MDcDdXrnsiG6EYV3hMyM0S/yZ7iG
         XwLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762778246; x=1763383046;
        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=9wae001CoERG5WO46lzb4HtEOVA8lNVhjUvYhOsjDUc=;
        b=BK6KVE6j2djXc+piHyj3HE+yLhecQwlwK8vDE2vM1Xoc2GCbgLxhLKKYitMOy2veGk
         drTMvqnj6gQDGRq4Rqj4x7vhwBklGlHENmVdTs0u1YIyqAOtStuo38ktJJuSop6bbZEz
         9Sr0XmFE6Vfm7Bx/Z2xxCMnFKCTt1c8wNN1yH4sdpMbB8bJJawyjjBus3+QZtPdtIt5D
         Css7oTpdwY2TkkuCCV4sBMqMZSns9m+IAi0pof5hWxoKylEbD679t2orl7QYTPTPeg8N
         RZJXyQsfdwJ/itTK9RsKjYPaBmmf1KeZf/7goOmkwM4AQEKMh6+aTb7wx4sbZ8fWeAvB
         e1ug==
X-Gm-Message-State: AOJu0YxlmJ6ny9GxMBZNTBtyrS1nnY9HWsBGrkeOAxTqF+chkR/FlLo6
	6C3IUFo+J34XtblURB6ppqr0vSiBwZv9RUTBICOaXH6ykZ26TVsP/3roQoHrbj16FqSODyprVZ9
	VGjfzgR09ya+33USknX+SRvOS+cqAic4=
X-Gm-Gg: ASbGncu7NpNyn4jlTKcZA0PRlF7lecf67/xfawb1FMnBXdqbN3IIvMVkza1w1mu/MsM
	VCqLtka6rJ55Xn5XKFJH9N+2+kI2Nhgr46TNWAAMZBdsTMOC+705tVa7nvngvOIxGd6teqUwS9p
	CrCYmbk3dcFp3yXniKYXwQJRElLrZA4zIeZxeLr5hg1lSUx2TG1ka9Vpb6z0uQMtsNsd2jbTbIr
	rhEQuoEzJqg0lb0kcssMa8y0n/QugqEBZNd0uK8eZ3QXyYyIWaXaY2W6Q+h
X-Google-Smtp-Source: AGHT+IGJ293TP3BsXKshsR7HuRKuHMZf0ID0Tzia4t5syzJ8A7LG4In7UKur087FGg9weiyvgkVYQeOoYWU/6TeXlpQ=
X-Received: by 2002:a05:690c:5996:b0:784:a232:b3d9 with SMTP id
 00721157ae682-787d53765a6mr58245567b3.18.1762778246060; Mon, 10 Nov 2025
 04:37:26 -0800 (PST)
MIME-Version: 1.0
References: <20251105153808.20278-1-frediano.ziglio@citrix.com>
 <fdc9fd41-2224-4672-911e-3e17b428d32a@gmail.com> <CAHt6W4eyH_7c4Q-KYaDjNJnSXjKSVNT1iSw0sNbLMXnK3iEHRg@mail.gmail.com>
 <d193feac-3285-4c26-9a8a-ba09437e7e76@gmail.com> <CAHt6W4fEbuk+VzjFxfz5=T8GXCVW_jSoqqMAkiQTXL79B93SPg@mail.gmail.com>
 <98e2f19f-5fce-4ad1-b821-f5abb1f815f6@suse.com> <CAHt6W4fscR1zAPbEmmgy5ARUGN5R2XBLF=Lkbjw3GU_RwibTfA@mail.gmail.com>
 <1fa1ca4d-62ce-49ee-8a8a-8d0d9e8abf2e@suse.com>
In-Reply-To: <1fa1ca4d-62ce-49ee-8a8a-8d0d9e8abf2e@suse.com>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Mon, 10 Nov 2025 12:37:14 +0000
X-Gm-Features: AWmQ_blkxVAXKVTlgNA7yJwVR9gISJiYP0I0CYBWVMETb0VbbeEKn0zNFqkemIo
Message-ID: <CAHt6W4ci9QfOn0cKgsyqaemn1R8eOh2bd=4wQehXFFZn22aNiA@mail.gmail.com>
Subject: Re: [PATCH v3] xen: Strip xen.efi by default
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, 
	Frediano Ziglio <frediano.ziglio@cloud.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	Demi Marie Obenour <demiobenour@gmail.com>
Content-Type: text/plain; charset="UTF-8"

On Fri, 7 Nov 2025 at 07:04, Jan Beulich <jbeulich@suse.com> wrote:
>
> On 06.11.2025 17:32, Frediano Ziglio wrote:
> > On Thu, 6 Nov 2025 at 10:27, Jan Beulich <jbeulich@suse.com> wrote:
> >>
> >> On 06.11.2025 10:58, Frediano Ziglio wrote:
> >>> On Thu, 6 Nov 2025 at 03:52, Demi Marie Obenour <demiobenour@gmail.com> wrote:
> >>>> Does objdump on the signed file return correct section names?
> >>>
> >>> From objdump -x
> >>>
> >>> Sections:
> >>> Idx Name          Size      VMA               LMA               File off  Algn
> >>>   0 .text         0016c9ae  ffff82d040200000  ffff82d040200000  00000320  2**4
> >>>                   CONTENTS, ALLOC, LOAD, READONLY, CODE
> >>>   1 .rodata       0006b9e8  ffff82d040400000  ffff82d040400000  0016cce0  2**2
> >>>                   CONTENTS, ALLOC, LOAD, DATA
> >>>   2 .buildid      00000035  ffff82d04046c000  ffff82d04046c000  001d86e0  2**2
> >>>                   CONTENTS, ALLOC, LOAD, READONLY, DATA
> >>>   3 .init.text    0004d123  ffff82d040600000  ffff82d040600000  001d8720  2**2
> >>>                   CONTENTS, ALLOC, LOAD, READONLY, CODE
> >>>   4 .init.data    0006c9b0  ffff82d040800000  ffff82d040800000  00225860  2**2
> >>>                   CONTENTS, ALLOC, LOAD, DATA
> >>>   5 .data.read_mostly 00028da8  ffff82d040a00000  ffff82d040a00000
> >>> 00292220  2**4
> >>>                   CONTENTS, ALLOC, LOAD, DATA
> >>>   6 .data         0000feec  ffff82d040a29000  ffff82d040a29000  002bafe0  2**4
> >>>                   CONTENTS, ALLOC, LOAD, DATA
> >>>   7 .bss          00223108  ffff82d040a39000  ffff82d040a39000  00000000  2**4
> >>>                   ALLOC
> >>>   8 .reloc        000016b8  ffff82d040c5d000  ffff82d040c5d000  002caee0  2**2
> >>>                   CONTENTS, ALLOC, LOAD, READONLY, DATA
> >>>   9 .sbat         000000a6  ffff82d040c5f000  ffff82d040c5f000  002cc5a0  2**2
> >>>                   CONTENTS, READONLY
> >>>
> >>> Which looks correct.
> >>>
> >>> From hexdump -C I can see close to the end
> >>>
> >>> ...
> >>> 002cc580  30 ae 38 ae 60 ae 00 00  00 80 a3 00 10 00 00 00  |0.8.`...........|
> >>> 002cc590  a0 ae c0 ae e0 ae 00 00  00 00 00 00 00 00 00 00  |................|
> >>> 002cc5a0  73 62 61 74 2c 31 2c 53  42 41 54 20 56 65 72 73  |sbat,1,SBAT Vers|
> >>> 002cc5b0  69 6f 6e 2c 73 62 61 74  2c 31 2c 68 74 74 70 73  |ion,sbat,1,https|
> >>> 002cc5c0  3a 2f 2f 67 69 74 68 75  62 2e 63 6f 6d 2f 72 68  |://github.com/rh|
> >>> 002cc5d0  62 6f 6f 74 2f 73 68 69  6d 2f 62 6c 6f 62 2f 6d  |boot/shim/blob/m|
> >>> 002cc5e0  61 69 6e 2f 53 42 41 54  2e 6d 64 0a 78 65 6e 2e  |ain/SBAT.md.xen.|
> >>> 002cc5f0  78 73 2c 31 2c 43 6c 6f  75 64 20 53 6f 66 74 77  |xs,1,Cloud Softw|
> >>> 002cc600  61 72 65 20 47 72 6f 75  70 2c 78 65 6e 2c 34 2e  |are Group,xen,4.|
> >>> 002cc610  32 30 2e 31 2d 37 2e 32  32 2e 67 33 65 30 36 37  |20.1-7.22.g3e067|
> >>> 002cc620  32 36 62 2e 78 73 39 2c  6d 61 69 6c 74 6f 3a 73  |26b.xs9,mailto:s|
> >>> 002cc630  65 63 75 72 69 74 79 40  78 65 6e 73 65 72 76 65  |ecurity@xenserve|
> >>> 002cc640  72 2e 63 6f 6d 0a 00 00  00 00 00 00 00 00 00 00  |r.com...........|
> >>> 002cc650  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
> >>> 002cc660  2c 00 00 00 2e 69 6e 69  74 2e 74 65 78 74 00 2e  |,....init.text..|
> >>> 002cc670  69 6e 69 74 2e 64 61 74  61 00 2e 64 61 74 61 2e  |init.data..data.|
> >>> 002cc680  72 65 61 64 5f 6d 6f 73  74 6c 79 00 00 00 00 00  |read_mostly.....|
> >>> 002cc690  9e 05 00 00 00 02 02 00  30 82 05 92 06 09 2a 86  |........0.....*.|
> >>> 002cc6a0  48 86 f7 0d 01 07 02 a0  82 05 83 30 82 05 7f 02  |H..........0....|
> >>> 002cc6b0  01 01 31 0f 30 0d 06 09  60 86 48 01 65 03 04 02  |..1.0...`.H.e...|
> >>> 002cc6c0  01 05 00 30 5c 06 0a 2b  06 01 04 01 82 37 02 01  |...0\..+.....7..|
> >>> 002cc6d0  04 a0 4e 30 4c 30 17 06  0a 2b 06 01 04 01 82 37  |..N0L0...+.....7|
> >>> 002cc6e0  02 01 0f 30 09 03 01 00  a0 04 a2 02 80 00 30 31  |...0..........01|
> >>> 002cc6f0  30 0d 06 09 60 86 48 01  65 03 04 02 01 05 00 04  |0...`.H.e.......|
> >>> 002cc700  20 e2 47 64 f8 e8 7b 62  eb 17 e0 13 0a 0d 93 02  | .Gd..{b........|
> >>> 002cc710  7a d8 3b f0 20 a8 ee 3d  49 98 3f de c1 47 de 15  |z.;. ..=I.?..G..|
> >>> 002cc720  43 a0 82 03 2c 30 82 03  28 30 82 02 10 a0 03 02  |C...,0..(0......|
> >>> 002cc730  01 02 02 11 00 8f fc 11  bf 41 54 40 74 89 2c 53  |.........AT@t.,S|
> >>> 002cc740  a5 78 c1 e8 32 30 0d 06  09 2a 86 48 86 f7 0d 01  |.x..20...*.H....|
> >>> 002cc750  01 0b 05 00 30 1c 31 1a  30 18 06 03 55 04 03 13  |....0.1.0...U...|
> >>> 002cc760  11 58 65 6e 53 65 72 76  65 72 20 58 65 6e 20 64  |.XenServer Xen d|
> >>> 002cc770  65 76 30 1e 17 0d 32 35  30 33 32 30 31 36 35 35  |ev0...2503201655|
> >>> 002cc780  30 37 5a 17 0d 33 37 30  31 31 39 30 33 31 34 30  |07Z..37011903140|
> >>> 002cc790  37 5a 30 1c 31 1a 30 18  06 03 55 04 03 13 11 58  |7Z0.1.0...U....X|
> >>> 002cc7a0  65 6e 53 65 72 76 65 72  20 58 65 6e 20 64 65 76  |enServer Xen dev|
> >>> ...
> >>>
> >>> So, this confirms that the string table is there to support larger
> >>> section names and the signature is there and it's working.
> >>
> >> But is it going to work on all EFI implementations, or merely the one you tried?
> >
> > Can you be more specific ?
> > The file was tested using dozens of different hardware and under Qemu.
> > Only x64 if it's what you mean.
>
> No, I was referring to the fact that there are distinct EFI implementations,
> which may differ in their loader behavior. But see also Demi's clarification
> on her original remark.
>
> Jan

Demi posted an update on that remark that it was a mistake.

The signature should be applied as the last step resulting in it to be
at the end of the file. This as any following update to the file
(beside updating the checksum or the signature itself) would
invalidate the signature and correctly the firmware would refuse to
load the file if secure boot is enabled.

Frediano


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 12:41:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 12:41:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158337.1486678 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIRCQ-00025s-Sp; Mon, 10 Nov 2025 12:40:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158337.1486678; Mon, 10 Nov 2025 12:40: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 1vIRCQ-00025l-Q4; Mon, 10 Nov 2025 12:40:46 +0000
Received: by outflank-mailman (input) for mailman id 1158337;
 Mon, 10 Nov 2025 12:40: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=Ugol=5S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vIRCP-00025f-DT
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 12:40:45 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 79409d6c-be32-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 13:40:44 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-b7277324204so507849166b.0
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 04:40: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
 4fb4d7f45d1cf-64179499189sm4264591a12.8.2025.11.10.04.40.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 10 Nov 2025 04:40: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: 79409d6c-be32-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762778443; x=1763383243; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=j87a6bVg9MU3HmA2emq5QiStErZQHTMqJIqHtg/3KiM=;
        b=f5rIHecD8ewBJ807ro8u6XQ4NM3WLjSnlgIsqegf+8BnWTQBJBVQQVHEbCc+ccR1BO
         Op/r1JjUJpg26ucfQ7PXHQ5cIyq13H1S+zvj8wuLuKhv4fOjcz13qkxyLivithLYfp6c
         E6JWgxVB5NuoNKBCTZUSs6d4+tyTCdJ3cEtkdcI7lYRPEMLEbQV3uZc0RqFo1ByFVHxL
         ZGf+hP/4KAMHTkdZdTRC121VAQkZv4TxgA0CGXPla72ylfikrVCKziNXVB5RFXHbBtTB
         NezrxIKEmstmSEo0pwFtoFPfOUhOBVkkB7p3HsKQnIDxGxpD9A0u3LDmT0BLUZjYE/yb
         xtGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762778443; x=1763383243;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=j87a6bVg9MU3HmA2emq5QiStErZQHTMqJIqHtg/3KiM=;
        b=l/57C4pBIXWmNvI+Cp76R6/OZzbX3mxp5wZjucTLUueKGe92RGqy/9wlvDy6LXv01j
         ExcAh7/Zfz2pW9rKhqzIfcMeLcPfbyEuN/n+AlD+OBOIswTg/CFnK9HWkOIrzfkRiJON
         1kdTLNcfFza4PYYphwbtTC7jiSxjsygHN3BsSM6aO9zn4azGUzUfGqsPOwtudIgBMsUH
         hBhHWjdg+xReZ4nlLPY5VI3hqX//dZdKrVpPj4F1r+7+pmBCW7LEkLrsxg3t4dgIgXDh
         3+5xJkQQPkMKx5hLrwYVjLBCOsBusOkh8+A1AXi3NOPPZqF9De4/E8ZCFx7chql/T2tg
         ESAA==
X-Forwarded-Encrypted: i=1; AJvYcCWLkbrC9CwccjdyIvoHjB7E8KmYM/3kgCTbK3Lmxrv8YcIxabE16ZUMn0Y5Aq/dItG6pExrvMxFT4U=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz/TAWGUGrJ4k+fcZhq2zcbTYiWgcZmQTFal+V3y4aK3+c+WAdC
	7F9NOmJPZWu5uuGsa3f4nA2+OArLP8dk7z5lJvAOPmcz5iUEQzXQo2K8EiWRLsFAGA==
X-Gm-Gg: ASbGncsuIOGegnkWVtCLaKBBLpNFVsUbmy0RTtAjte/N9jRQMfzYgsTWWsmgp7amGJy
	+YEq/ILSPJU0KSvbLaL7Af1PYePFWSIaQ7P/bR4DIuywW6JI1wHDYtc1KnkZXQgq2SoKa1yq9O5
	l+UhsJJ0TqpGgv+3DO5NZ7PkpPeqpdJ4UmQ0vye0a0ZZM1LjX7yJRW4tS/TfIZbK1UkU/wUdG1i
	oPclb1p2+X1DMDN9x8FVyiaslfZSbqt4ZPXqH77mqTxn8u7VrdzGz1R6yULARCcduJGRgIrCStx
	AZ+ShEQijT6xAIyVogv0RtWngvr4kGzsHSKGGdp8aWMsNlJng2X3dfIQWXEuiDnTnM4zF8fqxw7
	t+ZI3VbBymbWmH3mtB7yzjBPmfFYdAfT3ceJxBeMs2LpsnXYvKhqaheqREtj/UFPapSdzelL0q4
	pBNDe0g/N0K3T6RG390owTWnav4gnLX1X8rkFOeJe8XaJCHPCfVN7iml87mMlUv2Tw
X-Google-Smtp-Source: AGHT+IG5baqsr5mEOt3+qZlFZOEASO9CgA/6SiXUjnceX7GhYw12ZvbeEZDEhzo8jaixkTdAkeAN3Q==
X-Received: by 2002:a17:906:7309:b0:b72:5f93:2959 with SMTP id a640c23a62f3a-b72e02d9744mr690600966b.17.1762778443517;
        Mon, 10 Nov 2025 04:40:43 -0800 (PST)
Message-ID: <f1785ee8-2c70-41e5-9cb6-0506dc110ef0@suse.com>
Date: Mon, 10 Nov 2025 13:40:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen: Strip xen.efi by default
To: Frediano Ziglio <frediano.ziglio@citrix.com>,
 xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Frediano Ziglio <freddy77@gmail.com>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20251110123034.77692-1-frediano.ziglio@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: <20251110123034.77692-1-frediano.ziglio@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.11.2025 13:30, Frediano Ziglio wrote:
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -228,17 +228,23 @@ endif
>  	$(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
>  	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
>  	      $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
> -	      $(note_file_option) -o $@
> -	$(NM) -pa --format=sysv $@ \
> +	      $(note_file_option) -o $@.tmp
> +	$(NM) -pa --format=sysv $@.tmp \

Why is this needed in this shape? Can't you use $(TARGET)-syms.efi here
right away, ...

>  		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
>  		> $@.map
>  ifeq ($(CONFIG_DEBUG_INFO),y)
> -	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
> +	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) \
> +		-O elf64-x86-64 $@.tmp $@.elf
> +	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))mv -f \
> +		$@.tmp $(TARGET)-syms.efi

... avoiding the need for this mv and ...

> +	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(STRIP) \
> +		$(TARGET)-syms.efi -o $@.tmp

... double use of $@.tmp?

>  endif
> -	rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
>  ifeq ($(CONFIG_XEN_IBT),y)
> -	$(SHELL) $(srctree)/tools/check-endbr.sh $@
> +	$(SHELL) $(srctree)/tools/check-endbr.sh $@.tmp
>  endif
> +	mv -f $@.tmp $@
> +	rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*

At least part of the rearrangement here also looks unrelated, and isn't
mentioned at all in the description.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 12:59:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 12:59:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158349.1486687 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIRUE-0003uq-5s; Mon, 10 Nov 2025 12:59:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158349.1486687; Mon, 10 Nov 2025 12: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 1vIRUE-0003uj-3D; Mon, 10 Nov 2025 12:59:10 +0000
Received: by outflank-mailman (input) for mailman id 1158349;
 Mon, 10 Nov 2025 12: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=D0MZ=5S=citrix.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1vIRUD-0003ud-3W
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 12:59:09 +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 0b2561e7-be35-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 13:59:07 +0100 (CET)
Received: from IA3PR03MB8408.namprd03.prod.outlook.com (2603:10b6:208:546::19)
 by SJ0PR03MB7150.namprd03.prod.outlook.com (2603:10b6:a03:4eb::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Mon, 10 Nov
 2025 12:59:03 +0000
Received: from IA3PR03MB8408.namprd03.prod.outlook.com
 ([fe80::8d7b:218a:6264:2c39]) by IA3PR03MB8408.namprd03.prod.outlook.com
 ([fe80::8d7b:218a:6264:2c39%5]) with mapi id 15.20.9298.007; Mon, 10 Nov 2025
 12:59:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b2561e7-be35-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RT8uYT5qv1JbuhDHpR3UGR2nvEx7lvbZQsFXvyeoVsG2EX05LU9zA9TSD2mmjvEOqKuR8Gm9LpIRbucD4eKj9nMX4ud38Z4br0egb2O9L92//jx/ZLsb2cbIqbxcy493h2nRdkSH54QutCNB/VkWiz4bBAk+u8eh2C+yijuWZnI2iyWUv8mvqwN22XfRFzwpoYVWHwYcaqKnMkz66hMQZy4YK5wMFX6FEHBuUA45VhMz4sxwmPrqV28WvkzVKimSVgSVHKgMFhSIpnQY4SjKnsdfdUuygnENyOK9emCL4cHu8XlgvYLpV4jZ7EMFG579M3skZ5vAC9RZbWrl+cxh/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=OgnsOP1yOnWrKA6YRpqlH9/do+T3aNwg6qIwmyShu3k=;
 b=Pmto2NOCsialzCF0wcm60sH42hmtgN7pMmxGZuZVxbXKBQC7VNG6IiuGSuKzev6Sj+Xj965cjQFVOH32o/VyZguNuiAU2PMvFUPFN0733NwwHd/TDljNpATCxc8umoq8nQzTUjed4B09/mU1l/QtnlR9xjcm1jYiRDcyNOXnJOofp3XzSYU4ABn7HENkQK7wv0BbD9R2J8/T+yJC3ot7ybn6njiIN8rUQwLwKW+NtXhfEs2G9XVk6pkNUTZ9evvvr2Up/5vb0QIJDXuNT44HGU3L16R6GWKtZ+1ST5lxMnszazF3HKyz+BvekqDQKTfK+Sfb1Ize1NaZjQ6cQavTjQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=OgnsOP1yOnWrKA6YRpqlH9/do+T3aNwg6qIwmyShu3k=;
 b=yAJGP1J5jh7fgC5ykGUZvAkd59Zqn/3KZ0vacy4yNiMbxNWOmmn++9Ln2426LbfOkV85F5MIfGapJBU7kWDgbmN+kCN9lFvAVPjOb3sro8sMT53jXhUo6UwJcJOwwHuNVSWTt6KiK6jQMFnsBMtdQ3Et1t/uv84z6Ll4Ci8qaAk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Frediano Ziglio <frediano.ziglio@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Frediano Ziglio <freddy77@gmail.com>,
	Demi Marie Obenour <demiobenour@gmail.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v5] xen: Strip xen.efi by default
Date: Mon, 10 Nov 2025 12:58:59 +0000
Message-ID: <20251110125859.78124-1-frediano.ziglio@citrix.com>
X-Mailer: git-send-email 2.51.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P265CA0031.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ae::7) To IA3PR03MB8408.namprd03.prod.outlook.com
 (2603:10b6:208:546::19)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA3PR03MB8408:EE_|SJ0PR03MB7150:EE_
X-MS-Office365-Filtering-Correlation-Id: d0cbb7d3-02a0-4b96-543b-08de2058ece7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?YL3x+JUbfz3c3h81f+0dQkIYjbnHMc0H+/G4i5pZOItzQrBF1ZmuSvFFk3uI?=
 =?us-ascii?Q?QS1DVKWtLboBqQ3MqhW720i3Mw05LqgRdLz2kLG4NlSmfRpaWw1Y14fAwjX3?=
 =?us-ascii?Q?e6DXN3O/LWvi8d8b9w/bXYJANtCKQaCPLrunT/N9LaW11xVmh81xVd4NOtyF?=
 =?us-ascii?Q?Ue6HoCV8O84WmIpJ6v2Yp+00rH06XJS3owsmbl5p+CtNCvvYH0sCBV7b6axg?=
 =?us-ascii?Q?atpVnssnfP3iHyGtl0XXt2reqJKLmmzZP1L3DIiChwMYkRvWi2YX76H8nn3V?=
 =?us-ascii?Q?Ikow8HM32HyJleFb01R5xhkomPmo6peeJde9e2E/SfSYy2SUGqbZe/9OIP92?=
 =?us-ascii?Q?VnYey6u1QGxvr9/NrRtOpJaXpGdI9e1njcAnRAwC5yEflDDvNr/p5rsGtFF1?=
 =?us-ascii?Q?rC+I8EtpISQY9eoIgNRhu4cIkwx2NroZOQ1PvWRf1cBe4f5JTGkHCgIjnGWK?=
 =?us-ascii?Q?VjQbtKwohXsLK7HSwCjA5Nh2Na5ECx0i9rnLvuC9WwjWNWzQik0CMbiqIXym?=
 =?us-ascii?Q?sMUHqwQs9qVcAWttFE6xEIGeC3CM66+XS7VQTAPxJJ2WwId3Arld8s3QJtsP?=
 =?us-ascii?Q?8m0efssX9dzUQ+Rr8x5JvKoKyjxnY1yKF4094TZwUIGMCyQaRnXx+1XF49RM?=
 =?us-ascii?Q?ZVk0BpsGzrkh80NBX1TUpwsWBMj7+eMw9M5Y+r2V5csPgnHrRaoR3R0Z5YuO?=
 =?us-ascii?Q?K5Ng7ki9+g3ecWZjTPuvhoI2OJWO3/kEX31hIXWTiB4LhXUZitSkKEXomfKp?=
 =?us-ascii?Q?DJjli8hbeg4CUDKJOc5VifsegZQDbDBT5xFdk+gXiaDbEeZCW7TejakqEZDX?=
 =?us-ascii?Q?3xY7tx7fBR6yhFoQuNyAZzKJqsYj7OQ82A+XGBc9dTn2nVKrDMiGGThO1IT8?=
 =?us-ascii?Q?cPMchO/A6BeNKO+KlnpMALB0RbhaJAI7wRQd8seihi4nUe4bIm0IgbYTDT3W?=
 =?us-ascii?Q?fXIYUiIjIAYvL2pquIydmFggZcMpsAdexdB0zK+1sEpF8yQyYp8CXYARv3KZ?=
 =?us-ascii?Q?sxyAXqCWtXvamjxSm1pFLVtrpySFG8z5W0f+82TgfcN1RR2AROOA9n3ZoZJO?=
 =?us-ascii?Q?7Zn3BFzm7W9kbZ9Wz3NxNbMUX9g/Imlb4sgxUoZPceT+u1Y4l+5Q/NQIm3wp?=
 =?us-ascii?Q?OJfkM0X6CCkQNNCUaAr0ge+SRgAFl9Zw9luDxrgUhAAcGxShxKQjUEQaKyui?=
 =?us-ascii?Q?SCG0TSolv+d6SENzapcNuOmH4z+gVltgajcXbCQiAx10ThIFtZfdoAm40Ekx?=
 =?us-ascii?Q?FFBP7YGhwQOVlPTmY/vTJcp0O7qDVcN1pFWUL3j2N2PXj/vIcv4KXTx0l3Vt?=
 =?us-ascii?Q?qyIks6ITEtxLDUM9jMJTLCoq8VEbDJtzuPr28/pXzB0f9+sE/nHvy+Ypfidk?=
 =?us-ascii?Q?ifwcleuWJErgNyrc56b5b/6ls/Rfxq8XTh7cHtAv47lw4Ar2tXKD10niOIPf?=
 =?us-ascii?Q?NXyyndRNvp83veOMDH1dH9fA2dWxkF3k?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA3PR03MB8408.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?wuLjdQUPtxAdyxMEewqCpYbEJPvcSuSe47lwmFfqiUd3TdHpRouHAOHMzf7L?=
 =?us-ascii?Q?mdyb+d+qeQ4relQwQe3ptVeMsYKemjvHmn5NBOL4GNZXRBXzaCHEbRkVqiZ6?=
 =?us-ascii?Q?0VDdYxKbmvB/XQ/Nw1FkGf/pnLDcKPFMUVaf8ucanROUBq/ddN6Q7g349pys?=
 =?us-ascii?Q?njEZsSrxlFlnFtRY0N/nXCgg8QOPaAWP0VTGYEsUb8vxQG1UyQVFeekmLqqF?=
 =?us-ascii?Q?X2/11w7XtiFGjUXPe7pXuPjLEZDldKc/B+zdF3YkqM3zIa2GlfIflCWHOK98?=
 =?us-ascii?Q?vyfgCt5qn5hO+KGuIOq2RqWDuH0S3t3J/l0uIsU5MeBv4o1wv71wuRmk4UGf?=
 =?us-ascii?Q?LcCq0NvM4M8l/k48PqxWGAadO002MqPhozCzIqCsaVgxsRPQQbE3bDWCDGkt?=
 =?us-ascii?Q?dZiJKbIDuO7dhN/elLJPVn0Rkm909G27r5i0vrTqhCzOSkuGzjX9mGrYhAGb?=
 =?us-ascii?Q?PVp0NQfVHAXxNMyRfeCNyLjBUqYfKNHirFlU679r675xnzALQT1+5FCiZezW?=
 =?us-ascii?Q?GmkF9j2RWGiKVXCAOrBzevnTdM07lTEGc+vVPaHpEQf42S+tLU+0lHOpwv/z?=
 =?us-ascii?Q?5jxAvEzKRnzfDBg3MoQvPQlpKgMsCt0nXqiLWKfTRZudrp0+hvkfWLHDqKLJ?=
 =?us-ascii?Q?idWeW/3C1QLyuxu4nNxZAekCS13mboDr3aYltY0Glb6WmpM2ch+1TQa0YLCV?=
 =?us-ascii?Q?jIPFbi/Aonl53HEeZntgv2r4mx+fH4xDpI/NVvsOe0TbjNPLG+gURmcFLTYc?=
 =?us-ascii?Q?YGRV5RwlmXOZJz/lF109Q69TMnDvY/LfFlkGoDDqzvA5xWlebKIJ+IW4e/kJ?=
 =?us-ascii?Q?32bEbJFMlo13A4cOkKkhPJdNFiWqjHMH9vPmgULiUqzF5jRrmXXZpa2DbCgU?=
 =?us-ascii?Q?+TkArlOUOFhYGyVuGUIMZLRKo+vCtPWCjWBqrWr8/7G+b1YUYGERY9CRtWej?=
 =?us-ascii?Q?4pj4AMcQdXAq5iTTLgkBPrDsA7SI2w9NcciRBpV05if3O3khmzbzPoBk9IwG?=
 =?us-ascii?Q?8cN9JSOJ05dkMABLNNm4mdtn/gqJm6y5cf/CsCMOHwNVY9eSrNon5EJilAC7?=
 =?us-ascii?Q?zFbKBy+jSsGkiqpICmKtuYorcuJP1ToTwDLjdVZD4T6xoAooqEHeAPvBPl2T?=
 =?us-ascii?Q?5+4Xgu1LYTutQgqnJ3tLe61myQ1YXlMCNImUKp2VayymIgf190oP/v2fDzZD?=
 =?us-ascii?Q?kM+rEr4Gct1kwMExjpgM5ZF2OBg3m2JVbU/MmJxtsa6FrVCQSOrC4RHI6ZPn?=
 =?us-ascii?Q?9hkGPwOPvoRcIluUz/kfcZHtinerM9WYzKP89vwAjPjBrmCSB14+A1eqQ3Lu?=
 =?us-ascii?Q?PCoh7j5Ha2Zxn/Ak7azE6fWSMWX/S6QKmrLNGKwY0rIyrwJe26RPOobmsIRT?=
 =?us-ascii?Q?qG4V+kS4XJ7fsY/B/cX9UcH4D1vVOe+1P/Z7kZZh8WbIRHknItMcoHYTXDAQ?=
 =?us-ascii?Q?KUrrh4oaz3unMyz3NULOU5HnA8KpzLcgrqkUxDtG4WgDIHNgf/aE/05wnNj6?=
 =?us-ascii?Q?9qyK9cH/lzGddUumeGALWhGw3Y+Kaf6qeNnwTOY3/cVncY3z8m/nrGJPbblw?=
 =?us-ascii?Q?fp7y0dRIUNIg2hT0SOfDUZg5peiLTDXZDz6gFg9TU3esfo1RuvPENwDJtwoo?=
 =?us-ascii?Q?Nw=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d0cbb7d3-02a0-4b96-543b-08de2058ece7
X-MS-Exchange-CrossTenant-AuthSource: IA3PR03MB8408.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2025 12:59:03.8305
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Q/Glwe8dfwpUWIr38kh4+cpsXljNdsi83jkhUtjZr9tc6o+j0EEQXReBb6g/GGh6pSipsztlA+DaTFWBdGp72lEAogYIlfn7AEwyjkwVsqg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB7150

From: Frediano Ziglio <frediano.ziglio@cloud.com>

For xen.gz file we strip all symbols and have an additional
xen-syms.efi file version with all symbols.
Make xen.efi more coherent stripping all symbols too.
xen-syms.efi can be used for debugging.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
Changes since v1:
- avoid leaving target if some command fails.

Changes since v2:
- do not convert type but retain PE format;
- use xen-syms.efi for new file name, more consistent with ELF.

Changes since v3:
- update documentation;
- do not remove xen.efi.elf;
- check endbr instruction before generating final target.

Changes since v4:
- simplify condition check;
- avoid reuse of $@.tmp file.
---
 docs/misc/efi.pandoc  |  8 +-------
 xen/Kconfig.debug     |  9 ++-------
 xen/Makefile          | 19 -------------------
 xen/arch/x86/Makefile | 16 ++++++++++------
 4 files changed, 13 insertions(+), 39 deletions(-)

diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
index 11c1ac3346..c66b18a66b 100644
--- a/docs/misc/efi.pandoc
+++ b/docs/misc/efi.pandoc
@@ -20,13 +20,7 @@ Xen to load the configuration file even if multiboot modules are found.
 Once built, `make install-xen` will place the resulting binary directly into
 the EFI boot partition, provided `EFI_VENDOR` is set in the environment (and
 `EFI_MOUNTPOINT` is overridden as needed, should the default of `/boot/efi` not
-match your system). When built with debug info, the binary can be quite large.
-Setting `INSTALL_EFI_STRIP=1` in the environment will cause it to be stripped
-of debug info in the process of installing. `INSTALL_EFI_STRIP` can also be set
-to any combination of options suitable to pass to `strip`, in case the default
-ones don't do. The xen.efi binary will also be installed in `/usr/lib64/efi/`,
-unless `EFI_DIR` is set in the environment to override this default. This
-binary will not be stripped in the process.
+match your system).
 
 The binary itself will require a configuration file (names with the `.efi`
 extension of the binary's name replaced by `.cfg`, and - until an existing
diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index d900d926c5..1a8e0c6ec3 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -147,12 +147,7 @@ config DEBUG_INFO
 	  Say Y here if you want to build Xen with debug information. This
 	  information is needed e.g. for doing crash dump analysis of the
 	  hypervisor via the "crash" tool.
-	  Saying Y will increase the size of the xen-syms and xen.efi
-	  binaries. In case the space on the EFI boot partition is rather
-	  limited, you may want to install a stripped variant of xen.efi in
-	  the EFI boot partition (look for "INSTALL_EFI_STRIP" in
-	  docs/misc/efi.pandoc for more information - when not using
-	  "make install-xen" for installing xen.efi, stripping needs to be
-	  done outside the Xen build environment).
+	  Saying Y will increase the size of the xen-syms, xen-syms.efi and
+	  xen.efi.elf binaries.
 
 endmenu
diff --git a/xen/Makefile b/xen/Makefile
index ddcee8835c..605a26c181 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -493,22 +493,6 @@ endif
 .PHONY: _build
 _build: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 
-# Strip
-#
-# INSTALL_EFI_STRIP, if defined, will cause xen.efi to be stripped before it
-# is installed. If INSTALL_EFI_STRIP is '1', then the default option(s) below
-# will be used. Otherwise, INSTALL_EFI_STRIP value will be used as the
-# option(s) to the strip command.
-ifdef INSTALL_EFI_STRIP
-
-ifeq ($(INSTALL_EFI_STRIP),1)
-efi-strip-opt := --strip-debug --keep-file-symbols
-else
-efi-strip-opt := $(INSTALL_EFI_STRIP)
-endif
-
-endif
-
 .PHONY: _install
 _install: D=$(DESTDIR)
 _install: T=$(notdir $(TARGET))
@@ -535,9 +519,6 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi; \
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T).efi; \
 		if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; then \
-			$(if $(efi-strip-opt), \
-			     $(STRIP) $(efi-strip-opt) -p -o $(TARGET).efi.stripped $(TARGET).efi && \
-			     $(INSTALL_DATA) $(TARGET).efi.stripped $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi ||) \
 			$(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \
 		elif [ "$(D)" = "$(patsubst $(shell cd $(XEN_ROOT) && pwd)/%,%,$(D))" ]; then \
 			echo 'EFI installation only partially done (EFI_VENDOR not set)' >&2; \
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 407571c510..51d8084693 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -228,17 +228,21 @@ endif
 	$(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
 	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
 	      $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
-	      $(note_file_option) -o $@
-	$(NM) -pa --format=sysv $@ \
+	      $(note_file_option) -o $(TARGET)-syms.efi
+	$(NM) -pa --format=sysv $(TARGET)-syms.efi \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map
-ifeq ($(CONFIG_DEBUG_INFO),y)
-	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
+ifeq ($(CONFIG_DEBUG_INFO)_$(filter --strip-debug,$(EFI_LDFLAGS)),y_)
+	$(OBJCOPY) -O elf64-x86-64 $(TARGET)-syms.efi $@.elf
+	$(STRIP) $(TARGET)-syms.efi -o $@.tmp
+else
+	mv -f $(TARGET)-syms.efi -o $@.tmp
 endif
-	rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
 ifeq ($(CONFIG_XEN_IBT),y)
-	$(SHELL) $(srctree)/tools/check-endbr.sh $@
+	$(SHELL) $(srctree)/tools/check-endbr.sh $@.tmp
 endif
+	mv -f $@.tmp $@
+	rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
 else
 $(TARGET).efi: FORCE
 	rm -f $@
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 10 13:18:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 13:18:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158361.1486697 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIRn1-0006fN-E5; Mon, 10 Nov 2025 13:18:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158361.1486697; Mon, 10 Nov 2025 13:18: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 1vIRn1-0006fG-BN; Mon, 10 Nov 2025 13:18:35 +0000
Received: by outflank-mailman (input) for mailman id 1158361;
 Mon, 10 Nov 2025 13:18: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=bLcL=5S=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vIRn0-0006fA-1H
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 13:18:34 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c08857db-be37-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 14:18:32 +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 E7B25497;
 Mon, 10 Nov 2025 05:18:22 -0800 (PST)
Received: from [10.57.39.147] (unknown [10.57.39.147])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D493F3F63F;
 Mon, 10 Nov 2025 05:18: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: c08857db-be37-11f0-9d18-b5c5bf9af7f9
Message-ID: <d0ce35ad-bfcd-496b-996d-17e59a1d5a73@arm.com>
Date: Mon, 10 Nov 2025 14:18:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/12] powerpc/64s: Do not re-activate batched TLB
 flush
To: "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Ryan Roberts <ryan.roberts@arm.com>,
 Suren Baghdasaryan <surenb@google.com>, Thomas Gleixner
 <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
 Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
 linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, x86@kernel.org,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-2-kevin.brodsky@arm.com>
 <87qzud42n1.ritesh.list@gmail.com>
 <b3e4a92f-5b51-4eee-bfb8-c454add0f0d2@arm.com>
 <87cy5t4b0a.ritesh.list@gmail.com>
Content-Language: en-GB
From: Kevin Brodsky <kevin.brodsky@arm.com>
In-Reply-To: <87cy5t4b0a.ritesh.list@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08/11/2025 00:35, Ritesh Harjani (IBM) wrote:
> Kevin Brodsky <kevin.brodsky@arm.com> writes:
>
>> [...]
>>
>>> With this analysis - the patch looks good to me. I will give this entire
>>> patch series a try on Power HW with Hash mmu too (which uses lazy mmu and
>>> let you know the results of that)!
>> That'd be very appreciated, thanks a lot!
>>
> I did give this patch series a run on Power10 with Hash MMU. I ran the
> following stress-ng tests and didn't observe any issues (kernel warnings) so far.
>
> stress-ng --all 0 -t 60s --perf -v --verify \
> --tlb-shootdown 0 \
> --fault 0 \
> --userfaultfd 0 \
> --fork 0 \
> --exec 0 \
> --memfd 0 \
> --numa 0 \
> --pkey 0 \
> --remap 0 \
> --vm 0 \
> --rmap 0 \
> -x swap,pagemove
> (Note not all options shown here will work with --verify)

That's great, many thanks!

> Let me know what else I can run for validation?
> Do you know of any specific tests for validation of lazy mmu feature?

I don't think there is - lazy MMU is not supposed to have any observable
effect, all we can do is exercise the paths that use it and check that
nothing explodes.

That said it wouldn't hurt to run the mm kselftests:

Â  Â  make -C tools/testing/selftests/ TARGETS=mm

Thanks!

- Kevin


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 13:40:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 13:40:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158373.1486708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIS7s-0001tF-3p; Mon, 10 Nov 2025 13:40:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158373.1486708; Mon, 10 Nov 2025 13: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 1vIS7s-0001t8-0H; Mon, 10 Nov 2025 13:40:08 +0000
Received: by outflank-mailman (input) for mailman id 1158373;
 Mon, 10 Nov 2025 13:40:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ugol=5S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vIS7r-0001t2-39
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 13:40:07 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c42230e3-be3a-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 14:40:05 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b3e7cc84b82so560975666b.0
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 05:40: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
 a640c23a62f3a-b72bf97e54asm1086562166b.34.2025.11.10.05.40.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 10 Nov 2025 05:40: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: c42230e3-be3a-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762782005; x=1763386805; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4QLvdO2P/9/r0HSykvK/idkNhnhAYBCDP6fxe4vk9nA=;
        b=Ip9cIqj2BXUjVeJVW2hSEZG3njRWMxv4T7fz383USjotZcfn45GRW7e7SKQ/b9wU85
         wClLntSYJQzrsWJFR9QUdKSF69N7HXAdvbQ5Nz7mw7c6/XlgU92xr6ZPbDB1lEMSlZtP
         htH4jlFYEHACArn9b8YDJQv2E8y3OeFFb1GLcpQf/+WW/YhK4S99tEK2Wyha11746t1N
         Fhp8VS9ez/LscbWqj5mDO8etXausEPwDn+HFFKHZJjA5zoKoxLhLG+naOhmll9dhbg3b
         MkXg7aUIkqPJrUUzncmN+RLqK8K6oRqI0yAMlY+gRO2wGSmsRyiWNz014H+X5IZqWl89
         F6cA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762782005; x=1763386805;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4QLvdO2P/9/r0HSykvK/idkNhnhAYBCDP6fxe4vk9nA=;
        b=MbGKiZZPAS7hpf1u0+Vf4JcUpdCppcFpQuk0v2tg04uWGZkdZVEvHGDTH0jHvpFeHX
         9m2h051q1bLQYt3lunVqB4eNDMVi+ri199R3QagM+iq3h/pWBR6dGmTxQADOZB4jujwQ
         WklFiIJtWPZobk4JFgoexLrkpBvHi7WpZPrA2kWg8fZwdDc2ySMFU3lFeWfmYoNL21W+
         QFil1hBYsSFGmKpdNEf8YDb4moRwtwZCVinUiYJl7qR95CrXyYi4zBQd2TX5bxSmhHgE
         G6sZsAfbejzLIZMHH3UCfGActy3kgdIsCYSEHgBJZdTpRwp+4NpKx8sxb77fRNP3eTzD
         lJCw==
X-Forwarded-Encrypted: i=1; AJvYcCVbycFKplXbzRNFY5yHCsdJYCHv6iyYINqgWVghjeoxtKRB6SqcT+rOQyEQJhEbtYEa9jeahbY5iTE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxSAfKTtPCmpWJB+lsHMQUplI0LUhb4a3Ys6eIZluOKmI0Hykgi
	BYU3Gu+RJA8OfnYAh4sc8cXnfnrLCbUHrhkDmEnm0E5qXrqrxhA56BTpSXRJeqsJOg==
X-Gm-Gg: ASbGncvHjNTbmCjTXwj8MMyP1fxXd7QoTsHIZWQbwS5GYo+uByg8A47wgeP+qeReXpP
	Uz267dzd1YjNTchKHtw/YIuOiyQOPepGHrZ84rdLTyWokA7gn6rC6XEd7d4Np1/HcF8+dJCyA6p
	FuN5hZUNLSwiD8XXKHVZPS2nHU9pK2q0zILXkmeOECkjrfjxoZ9o7lAZET5xrzimfDycFynMMkR
	PG3GKQbHZ1LmZtWu8Z0CrYC1WPfaU5sdQJDWQgH2jphZkVt6dNzYso0WEgNbvblPA0nap5YcGR5
	ke6isJMhXtIIjhXx9cjAjnPmKizLJKv8sMnK0Rm3Jpat/PjSdeSW+FZs/jOb8QeSP2nden3kBAR
	kdncZ8aQCQGbs+rKNtHiCmy0Th7vonHw5iL17X475Q30Wrk/wxb4m0sGAzXxo9MrsmLp2U2YR1x
	jIHny67omDsBgpMHBMKzAS+qsDwGYsGGknZ0BXAMja9AfHIvsN7i+fETcpJrK1frF1eRlQ+owvi
	vy71cJyRzRGcg==
X-Google-Smtp-Source: AGHT+IG9yglJ74O+cqSdVo/ZXbwyyHI467VR92sXZfChBRwL9b4Cl+3mYCf3BRY5dxic2148ZaJoCg==
X-Received: by 2002:a17:907:3d8c:b0:b70:ae6a:5fdb with SMTP id a640c23a62f3a-b72e05e6c11mr866055666b.45.1762782005178;
        Mon, 10 Nov 2025 05:40:05 -0800 (PST)
Message-ID: <55f0f1f2-3892-44fa-94d6-15e0e8513ef1@suse.com>
Date: Mon, 10 Nov 2025 14:40:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] xen: Strip xen.efi by default
To: Frediano Ziglio <frediano.ziglio@citrix.com>
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Frediano Ziglio <freddy77@gmail.com>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <20251110125859.78124-1-frediano.ziglio@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: <20251110125859.78124-1-frediano.ziglio@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.11.2025 13:58, Frediano Ziglio wrote:
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -228,17 +228,21 @@ endif
>  	$(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
>  	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
>  	      $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
> -	      $(note_file_option) -o $@
> -	$(NM) -pa --format=sysv $@ \
> +	      $(note_file_option) -o $(TARGET)-syms.efi
> +	$(NM) -pa --format=sysv $(TARGET)-syms.efi \
>  		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
>  		> $@.map

This part if fine with me now.

> -ifeq ($(CONFIG_DEBUG_INFO),y)
> -	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
> +ifeq ($(CONFIG_DEBUG_INFO)_$(filter --strip-debug,$(EFI_LDFLAGS)),y_)

This extra change looks correct to me, yet I wonder if doing it this way isn't
fragile. If EFI_LDFLAGS wasn't set globally, but only for xen.efi, aiui this
wouldn't work anymore.

> +	$(OBJCOPY) -O elf64-x86-64 $(TARGET)-syms.efi $@.elf
> +	$(STRIP) $(TARGET)-syms.efi -o $@.tmp
> +else
> +	mv -f $(TARGET)-syms.efi -o $@.tmp

This, while I think I understand why you do it, looks somewhat odd. Plus the
reason you do it is, like ...

>  endif
> -	rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
>  ifeq ($(CONFIG_XEN_IBT),y)
> -	$(SHELL) $(srctree)/tools/check-endbr.sh $@
> +	$(SHELL) $(srctree)/tools/check-endbr.sh $@.tmp
>  endif
> +	mv -f $@.tmp $@
> +	rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
>  else
>  $(TARGET).efi: FORCE
>  	rm -f $@

... (still) most of this, unrelated (and, as before, not mentioned at all in
the description).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 14:03:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 14:03:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158388.1486718 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vISUk-0004wm-WD; Mon, 10 Nov 2025 14:03:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158388.1486718; Mon, 10 Nov 2025 14:03:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vISUk-0004we-S2; Mon, 10 Nov 2025 14:03:46 +0000
Received: by outflank-mailman (input) for mailman id 1158388;
 Mon, 10 Nov 2025 14:03:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ugol=5S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vISUj-0004wY-4q
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 14:03:45 +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 111c9629-be3e-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 15:03:43 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b710601e659so483046566b.1
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 06:03: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
 a640c23a62f3a-b72bf723172sm1083303066b.32.2025.11.10.06.03.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 10 Nov 2025 06:03: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: 111c9629-be3e-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762783423; x=1763388223; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wSutJynqUHnomCF4KsE5mzQKxNJhi8zqiMrkd4Jy/BA=;
        b=dsZsTTbhf9Wvbi0zwjCav2I4aGh5vXUauBNplIlduRYlOSRv2Hian1Vo/vqKt6//xg
         JI0DY3NbV1+EZ594ZRvZhsEVTm67MSwxSoy2EKlLqw/4CrwBpJGA5JIkFof5H0wL+lhn
         oHYdvy5QNcO0v/2kcEc8zTUR/Yd4WxYQQDMKyOJ5e6adA0hpWvNw4KzIvhGJdH0yfFmH
         XAOWpVhY3g8F++DIJwqSsQa5SNd5IpmKIX0o8l7fB6/f1R3XRDS3dz9CayXYqxG9M7Rz
         FcH36ZxVwHgf2p8mjuENkaUfjT5b78W/qtl6/rR4p0cPMR98ZF0Fxlb3VgrnLNpxgYTf
         ngbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762783423; x=1763388223;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wSutJynqUHnomCF4KsE5mzQKxNJhi8zqiMrkd4Jy/BA=;
        b=OUoKYgieQ8MVK8dy0K4trOppA+FEN/PWTY+wMorhQ/GMTYx8KEEWY9Ztfyb+0sYJ4x
         er+k93B6P3YSuqlqJBTytvS5g2C5z0O1ca8qK6o4jQY6+LOG2NPzvp+3Mhehr+N9KfDT
         lrr5fzATstSd2M4dZDkbyj9X5ir0qt/sTdgEkZLkMDmLqLmiZSslPxMGcDVpKA+Jd/xp
         gqrbVIQ9zxzY1XQhHQwGRSWTFBa9NI7ymJAvIT1rPxTVW/oGdPYbq6PYk0V9XIMtw5Tc
         LEf31RXphY9XJ+KzVIegHMD9NE6A8LRxQ8y2703jGKc/D9W3/5PtdHS58ZhJ1TVOV7I/
         2xvw==
X-Forwarded-Encrypted: i=1; AJvYcCWlpLmIbH4g2k/6lq9gWLPtHvZcjjnX5kdF+6HeXj5slVSILouZxs/Lw1xjEezD6b0lbGBFS4Csliw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwnksDFuBg4F4BFFFZHwVdT26ViXXWd7Y9JLQIwoGPcAi6rwGw2
	8U3nehzxNwUqFR2kPRcADWkFbYYTrSAwV5au4591/Pqc02orpP5ZF233xOg1RMu7+g==
X-Gm-Gg: ASbGnctrVRlJdhev9uoWOPpVfqiYdAVwS0W1QNrDFu3CL62OL3pQhAuXNd6rfAWSWEZ
	m6wDDi5gI6ga9w/ZBJBg271wX8GES6UJcfFRJ576TvvG8rcnxtQ/jtjwcVhb4Ip1OrnEmLl8C9n
	k2FaI9IBXQ0x8Ed2sGbqfdzQz8ej9D/8fDLmSQ/Wv9LQDPzlaecORsMRysW53OWmE0vw3F2hxgF
	BaJwoh4+jhYccbS5zuaGds3Z8mwFg0uKUO2DFCrMpPgEAzMHZm0MrnVThal9OZzVCdOwSDQPGQr
	8JYQwb1UaBAI4OnxmhMsAb/ppLT4Y9JU7jRmp344mkUQKRUbLTDoJzJm2s2w4kugHqctRX6N25a
	KkNu9eZEQxQJQKEZ8WI3lM2wP9WSfz9uIuDDL5TgKomJ9B9SXjeVv9MAnRfoKC6W9kbt1HDlf+f
	q1KpOFLCJkwfIsJwRk8nr8irj3CWSQCq16+PMaaUE7+HhSHyPIXWOY+dhcKSFzAcz2m+zhMJAOE
	sNzATtlaorkfQ==
X-Google-Smtp-Source: AGHT+IEGegTxAnWAtafIOBlYWGPfe9YDVdnCnwKSn2NmEzMr2ootnN0chCme2Y2fi1+oPGI5nY+wWQ==
X-Received: by 2002:a17:907:7246:b0:b72:5e29:5084 with SMTP id a640c23a62f3a-b72e02729dfmr910394366b.4.1762783422687;
        Mon, 10 Nov 2025 06:03:42 -0800 (PST)
Message-ID: <ed198b16-f15f-40f2-ae38-85292e52dad1@suse.com>
Date: Mon, 10 Nov 2025 15:03:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen: Support LLVM raw profile versions 5, 6, 7, 8, 9,
 and 10
To: Saman Dehghan <samaan.dehghan@gmail.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>,
 Wentao Zhang <wentaoz5@illinois.edu>,
 Matthew L Weber <matthew.l.weber3@boeing.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <06646f747f21c3f388cf6e9d59a20238a4a91170.1761263588.git.samaan.dehghan@gmail.com>
 <6f708273afb6de9c5f26f2c71c34c98e957904a0.1761599320.git.samaan.dehghan@gmail.com>
 <b701374d-61b4-4657-bd01-4c6975741fbd@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: <b701374d-61b4-4657-bd01-4c6975741fbd@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 27.10.2025 23:36, Andrew Cooper wrote:
> On 27/10/2025 9:30 pm, Saman Dehghan wrote:
>> This change enables compatibility for measuring code coverage
>> with Clang versions 11 through 20 by supporting their respective raw
>> profile formats.
>>
>> 1- Added support for LLVM raw profile versions 5, 6, 7, 8, 9, and 10.
>> 2- Initialized llvm_profile_header for all versions based on llvm source
>>    code in compiler-rt/include/profile/InstrProfData.inc for each version.
>> 3- We tested this patch for all Clang versions from 11 through 20
>>    on x86 platform.
>> 4- Fixed linking warnings related to LLVM profile sections in x86.
>>
>>
>> Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>
>> Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> Tested-by: Wentao Zhang <wentaoz5@illinois.edu>
>> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> Changes from v3 to v4:
>>   1- Use LLVM_PROFILE_VERSION in preprocessor conditionals
>>      instead of __clang_major__.
>>   2- Use DIV_ROUND_UP helper.
>>   3- Remove unnecessary zero initialization inside struct.
>>   4- Remove fallback macro definitions in linker script.
>> Changes from v2 to v3:
>>   1- Additionally support raw profile version 5, 6, 7 in clang 11, 12, 13.
>>   2- Fix coverage related linking warnings in x86.
>>   3- Revert unnecessary type changes, casting, etc.
>> ---
> 
> Excellent.Â  Thankyou.Â  This all looks in order.Â  I've committed it.

I thought I would backport this, but I would need a variant that wouldn't
regress profile version 4 on the older branches.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 14:53:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 14:53:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158402.1486738 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vITGj-00030j-OT; Mon, 10 Nov 2025 14:53:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158402.1486738; Mon, 10 Nov 2025 14:53:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vITGj-00030c-KP; Mon, 10 Nov 2025 14:53:21 +0000
Received: by outflank-mailman (input) for mailman id 1158402;
 Mon, 10 Nov 2025 14:53:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ugol=5S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vITGi-0002mX-1x
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 14:53: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 fe83c80a-be44-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 15:53:18 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-64162c04f90so3601559a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 06:53: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
 a640c23a62f3a-b72bdbc95e4sm1133486866b.12.2025.11.10.06.53.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 10 Nov 2025 06:53: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: fe83c80a-be44-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762786398; x=1763391198; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qWbUcsoDsnhykZseLVGlMZHroLW5Lmx6xTj8GoPQ6Bo=;
        b=TI+GmoI7YxbtkBpTyOyGSsO03S7ocIMBvX0WndwGb91720D3UV1oo/q9lmBrTLZWUm
         3io952Vecv6389iXE5ia9Iq++UTWJd4zkMVNi5X0rYoh16IHYmsD1g6t6hxAYLxP0cq7
         5finYDxbFrY/H0P6DzhOCB6RFUuvMhlEfG2jKHYrbz99R1tdFKq+mM4Q5e8NrU3fEAXb
         dDJaK0fBEeSpTkhKMFYJaBdVKVFigomqj/EtqSA3wcxawnLgF6wJmcVQ5B8FLIZ7hxVw
         hyKBkYCmdp93cs5Rj0ftU4gjiK0e0aaZl6wdxC4jkW3kN7jWxNKREmPCAuA0+Lv1YVXp
         m/sw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762786398; x=1763391198;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qWbUcsoDsnhykZseLVGlMZHroLW5Lmx6xTj8GoPQ6Bo=;
        b=jyLGyD8n4fj8pCC4YMIXHfx50xft7sQKDFFnWgY7i0W2FOXEIvoKL6lPQvEpiMITjx
         9IiTFVBER36zU8J4nPXmFhXUMXdU+JBH9yDbOnHuofUde79+S/gFATqjYKQ2kjeMHJoP
         RYtF0BESOUfO1/tM6rRaLvnWT6sTeXAUGExhMue3myyHqR5hh6QNSmKmFlCD4eSh4Uu3
         CeLeYH+Gemv6gzJviNw9JmQ9OvBHF4ghNsQ36f8nHfj4k3rMdkKcvJOYJIpi1R8u9ITQ
         jt9Hdpp2Y0Vfc+grnJOnfqJEbEN5YwKcmheariDBSzH/rMEpSQ2icupZlR/PFoiPBmUt
         MRxw==
X-Forwarded-Encrypted: i=1; AJvYcCVHZUamO25vI1cZ123ymiBcVX7q7LAtFD/H4i+k3mxhRZLhtDqdCKxkjuwkUrKI5GF2KlqxG/2owOo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy25K4H3UXBqnb+2Ireq9IaAwft2HMAWoGJhL/J5qg8xuGqxqAz
	hVjF6uqXfY+YcHPlcU89PNlLZVHt7Pf3jBOxAK6nzjetOurWyi0t6UYcLotFjAub5A==
X-Gm-Gg: ASbGnctzvt4VSdE1seQDjXgDdCNQuNjt4Qw0GCjdjv8yHdGOE0WbcHz+QN4sVlnzKe+
	DTGvQCFhw2v4ww8+ABf7i/sBsvO0iuOQ6FtNHh72ZGqIigApxXMW1W9cjeVaN9MjHm/Wbv1yjXv
	z56zQVhcm0z1rpHWuBAUA5rvSAcHqNvmJWtMNEBzXWEDgIop1OspZXyVOVNFSKuDyD6PhvtmbMw
	fpMlldvR3W0cDwuZLBfyI4hUTAljtQMFiHgmj1yV6BoBZesKaI93GdTF6a0XOwPiq2A+WNzCz5U
	72QexuwwsrU1ipvmeEgtLaN1zAjdHlhHyP1IK49UJletetQq7e7HvwEzRan+wLw5f9yz15gUrgG
	WezQgQ6ufMeNV0Sx+2io8AaWycUt3nlhSleREkWpHr5UuL+72lSUQM+OLiknpEBMGGbtvsa7yOv
	3RCeOYqvdcS3zsBnZ2eUya4X+rgirbuJKCCyqkAzjuAEtknTTHbupAqzZ7jijkff8b
X-Google-Smtp-Source: AGHT+IFD71Kk/Mq1fjoCRR8oet1pD93k1yek/7s+QlZyzRMEUN2dkSl6Cy2g+xZE9pUZNIo4fFnB1Q==
X-Received: by 2002:a17:906:ef02:b0:b72:579e:6aff with SMTP id a640c23a62f3a-b72e0410a52mr909419566b.21.1762786397952;
        Mon, 10 Nov 2025 06:53:17 -0800 (PST)
Message-ID: <1595e62d-1ee5-41fa-aec8-e848813d50b5@suse.com>
Date: Mon, 10 Nov 2025 15:53:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 10/18] xen/riscv: implement p2m_set_range()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <d689c48582505b0dab6896b414d01d844d834bd5.1760974017.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: <d689c48582505b0dab6896b414d01d844d834bd5.1760974017.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.10.2025 17:57, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/p2m.h
> +++ b/xen/arch/riscv/include/asm/p2m.h
> @@ -8,12 +8,45 @@
>  #include <xen/rwlock.h>
>  #include <xen/types.h>
>  
> +#include <asm/page.h>
>  #include <asm/page-bits.h>
>  
>  extern unsigned char gstage_mode;
> +extern unsigned int gstage_root_level;
>  
>  #define P2M_ROOT_ORDER  (ilog2(GSTAGE_ROOT_PAGE_TABLE_SIZE) - PAGE_SHIFT)
>  #define P2M_ROOT_PAGES  BIT(P2M_ROOT_ORDER, U)
> +#define P2M_ROOT_LEVEL  gstage_root_level
> +
> +/*
> + * According to the RISC-V spec:
> + *   When hgatp.MODE specifies a translation scheme of Sv32x4, Sv39x4, Sv48x4,
> + *   or Sv57x4, G-stage address translation is a variation on the usual
> + *   page-based virtual address translation scheme of Sv32, Sv39, Sv48, or
> + *   Sv57, respectively. In each case, the size of the incoming address is
> + *   widened by 2 bits (to 34, 41, 50, or 59 bits).
> + *
> + * P2M_LEVEL_ORDER(lvl) defines the bit position in the GFN from which
> + * the index for this level of the P2M page table starts. The extra 2
> + * bits added by the "x4" schemes only affect the root page table width.
> + *
> + * Therefore, this macro can safely reuse XEN_PT_LEVEL_ORDER() for all
> + * levels: the extra 2 bits do not change the indices of lower levels.
> + *
> + * The extra 2 bits are only relevant if one tried to address beyond the
> + * root level (i.e., P2M_LEVEL_ORDER(P2M_ROOT_LEVEL + 1)), which is
> + * invalid.
> + */
> +#define P2M_LEVEL_ORDER(lvl) XEN_PT_LEVEL_ORDER(lvl)

Is the last paragraph of the comment really needed? It talks about something
absurd / impossible only.

> +#define P2M_ROOT_EXTRA_BITS(lvl) (2 * ((lvl) == P2M_ROOT_LEVEL))
> +
> +#define P2M_PAGETABLE_ENTRIES(lvl) \
> +    (BIT(PAGETABLE_ORDER + P2M_ROOT_EXTRA_BITS(lvl), UL))
> +
> +#define GFN_MASK(lvl) (P2M_PAGETABLE_ENTRIES(lvl) - 1UL)

If I'm not mistaken, this is a mask with the low 10 or 12 bits set.
That's not really something you can apply to a GFN, unlike the name
suggests.

> +#define P2M_LEVEL_SHIFT(lvl) (P2M_LEVEL_ORDER(lvl) + PAGE_SHIFT)

Whereas here the macro name doesn't make clear what is shifted: An
address or a GFN. (It's the former, aiui.)

> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -9,6 +9,7 @@
>  #include <xen/rwlock.h>
>  #include <xen/sched.h>
>  #include <xen/sections.h>
> +#include <xen/xvmalloc.h>
>  
>  #include <asm/csr.h>
>  #include <asm/flushtlb.h>
> @@ -17,6 +18,43 @@
>  #include <asm/vmid.h>
>  
>  unsigned char __ro_after_init gstage_mode;
> +unsigned int __ro_after_init gstage_root_level;

Like for mode, I'm unconvinced of this being a global (and not per-P2M /
per-domain).

> +/*
> + * The P2M root page table is extended by 2 bits, making its size 16KB
> + * (instead of 4KB for non-root page tables). Therefore, P2M root page
> + * is allocated as four consecutive 4KB pages (since alloc_domheap_pages()
> + * only allocates 4KB pages).
> + */
> +#define ENTRIES_PER_ROOT_PAGE \
> +    (P2M_PAGETABLE_ENTRIES(P2M_ROOT_LEVEL) / P2M_ROOT_ORDER)
> +
> +static inline unsigned int calc_offset(unsigned int lvl, vaddr_t va)

Where would a vaddr_t come from here? Your input are guest-physical addresses,
if I'm not mistaken.

> +{
> +    unsigned int offset = (va >> P2M_LEVEL_SHIFT(lvl)) & GFN_MASK(lvl);
> +
> +    /*
> +     * For P2M_ROOT_LEVEL, `offset` ranges from 0 to 2047, since the root
> +     * page table spans 4 consecutive 4KB pages.
> +     * We want to return an index within one of these 4 pages.
> +     * The specific page to use is determined by `p2m_get_root_pointer()`.
> +     *
> +     * Example: if `offset == 512`:
> +     *  - A single 4KB page holds 512 entries.
> +     *  - Therefore, entry 512 corresponds to index 0 of the second page.
> +     *
> +     * At all other levels, only one page is allocated, and `offset` is
> +     * always in the range 0 to 511, since the VPN is 9 bits long.
> +     */
> +    return offset % ENTRIES_PER_ROOT_PAGE;

Seeing something "root" used here (when this is for all levels) is pretty odd,
despite all the commentary. Given all the commentary, why not simply

    return offset & ((1U << PAGETABLE_ORDER) - 1);

?

> +}
> +
> +#define P2M_MAX_ROOT_LEVEL 4
> +
> +#define P2M_DECLARE_OFFSETS(var, addr) \
> +    unsigned int var[P2M_MAX_ROOT_LEVEL] = {-1};\
> +    for ( unsigned int i = 0; i <= gstage_root_level; i++ ) \
> +        var[i] = calc_offset(i, addr);

This surely is more than just "declare", and it's dealing with all levels no
matter whether you actually will use all offsets.

> @@ -259,13 +308,293 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
>      return rc;
>  }
>  
> +/*
> + * Map one of the four root pages of the P2M root page table.
> + *
> + * The P2M root page table is larger than normal (16KB instead of 4KB),
> + * so it is allocated as four consecutive 4KB pages. This function selects
> + * the appropriate 4KB page based on the given GFN and returns a mapping
> + * to it.
> + *
> + * The caller is responsible for unmapping the page after use.
> + *
> + * Returns NULL if the calculated offset into the root table is invalid.
> + */
> +static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
> +{
> +    unsigned long root_table_indx;
> +
> +    root_table_indx = gfn_x(gfn) >> P2M_LEVEL_ORDER(P2M_ROOT_LEVEL);

With the variable name shortened (to e.g. idx) this could be its initializer
without ending up with too long a line. The root_table_ prefix isn't really
adding much value in the context of this function.

> +    if ( root_table_indx >= P2M_ROOT_PAGES )
> +        return NULL;
> +
> +    /*
> +     * The P2M root page table is extended by 2 bits, making its size 16KB
> +     * (instead of 4KB for non-root page tables). Therefore, p2m->root is
> +     * allocated as four consecutive 4KB pages (since alloc_domheap_pages()
> +     * only allocates 4KB pages).
> +     *
> +     * Initially, `root_table_indx` is derived directly from `va`.

There's no 'va' here.

> +static inline void p2m_clean_pte(pte_t *p, bool clean_pte)

"clean_pte" as a parameter name of a function of this name is, well, odd.

> +/* Insert an entry in the p2m */
> +static int p2m_set_entry(struct p2m_domain *p2m,
> +                         gfn_t gfn,
> +                         unsigned long page_order,
> +                         mfn_t mfn,
> +                         p2m_type_t t)
> +{
> +    unsigned int level;
> +    unsigned int target = page_order / PAGETABLE_ORDER;
> +    pte_t *entry, *table, orig_pte;
> +    int rc;
> +    /*
> +     * A mapping is removed only if the MFN is explicitly set to INVALID_MFN.
> +     * Other MFNs that are considered invalid by mfn_valid() (e.g., MMIO)
> +     * are still allowed.
> +     */
> +    bool removing_mapping = mfn_eq(mfn, INVALID_MFN);
> +    P2M_DECLARE_OFFSETS(offsets, gfn_to_gaddr(gfn));
> +
> +    ASSERT(p2m_is_write_locked(p2m));
> +
> +    /*
> +     * Check if the level target is valid: we only support
> +     * 4K - 2M - 1G mapping.
> +     */
> +    ASSERT(target <= 2);
> +
> +    table = p2m_get_root_pointer(p2m, gfn);
> +    if ( !table )
> +        return -EINVAL;
> +
> +    for ( level = P2M_ROOT_LEVEL; level > target; level-- )
> +    {
> +        /*
> +         * Don't try to allocate intermediate page table if the mapping
> +         * is about to be removed.
> +         */
> +        rc = p2m_next_level(p2m, !removing_mapping,
> +                            level, &table, offsets[level]);
> +        if ( (rc == P2M_TABLE_MAP_NONE) || (rc == P2M_TABLE_MAP_NOMEM) )
> +        {
> +            rc = (rc == P2M_TABLE_MAP_NONE) ? -ENOENT : -ENOMEM;
> +            /*
> +             * We are here because p2m_next_level has failed to map
> +             * the intermediate page table (e.g the table does not exist
> +             * and none should be allocated). It is a valid case
> +             * when removing a mapping as it may not exist in the
> +             * page table. In this case, just ignore lookup failure.
> +             */
> +            rc = removing_mapping ? 0 : rc;
> +            goto out;
> +        }
> +
> +        if ( rc != P2M_TABLE_NORMAL )
> +            break;
> +    }
> +
> +    entry = table + offsets[level];
> +
> +    /*
> +     * If we are here with level > target, we must be at a leaf node,
> +     * and we need to break up the superpage.
> +     */
> +    if ( level > target )
> +    {
> +        panic("Shattering isn't implemented\n");
> +    }
> +
> +    /*
> +     * We should always be there with the correct level because all the
> +     * intermediate tables have been installed if necessary.
> +     */
> +    ASSERT(level == target);
> +
> +    orig_pte = *entry;
> +
> +    if ( removing_mapping )
> +        p2m_clean_pte(entry, p2m->clean_dcache);
> +    else
> +    {
> +        pte_t pte = p2m_pte_from_mfn(mfn, t);
> +
> +        p2m_write_pte(entry, pte, p2m->clean_dcache);
> +
> +        p2m->max_mapped_gfn = gfn_max(p2m->max_mapped_gfn,
> +                                      gfn_add(gfn, BIT(page_order, UL) - 1));
> +        p2m->lowest_mapped_gfn = gfn_min(p2m->lowest_mapped_gfn, gfn);
> +    }
> +
> +    p2m->need_flush = true;
> +
> +    /*
> +     * Currently, the infrastructure required to enable CONFIG_HAS_PASSTHROUGH
> +     * is not ready for RISC-V support.
> +     *
> +     * When CONFIG_HAS_PASSTHROUGH=y, iommu_iotlb_flush() should be done
> +     * here.
> +     */
> +#ifdef CONFIG_HAS_PASSTHROUGH
> +#   error "add code to flush IOMMU TLB"
> +#endif
> +
> +    rc = 0;
> +
> +    /*
> +     * In case of a VALID -> INVALID transition, the original PTE should
> +     * always be freed.
> +     *
> +     * In case of a VALID -> VALID transition, the original PTE should be
> +     * freed only if the MFNs are different. If the MFNs are the same
> +     * (i.e., only permissions differ), there is no need to free the
> +     * original PTE.
> +     */
> +    if ( pte_is_valid(orig_pte) &&
> +         (!pte_is_valid(*entry) ||
> +         !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte))) )

Besides my continued impression of this condition being more complex than it
ought to be expected, indentation is off by one on the last of the three lines.
(Since, otoh, I can't suggest any simpler expression (for now), this isn't a
request to further change it.)

> +/* Return mapping order for given gfn, mfn and nr */
> +static unsigned long p2m_mapping_order(gfn_t gfn, mfn_t mfn, unsigned long nr)
> +{
> +    unsigned long mask;
> +    /* 1gb, 2mb, 4k mappings are supported */
> +    unsigned int level = min(P2M_ROOT_LEVEL, _AC(2, U));

Further up you has such a literal 2 already - please make a constant, so all
instances can easily be associated with one another.

> +    unsigned long order = 0;
> +
> +    mask = !mfn_eq(mfn, INVALID_MFN) ? mfn_x(mfn) : 0;
> +    mask |= gfn_x(gfn);
> +
> +    for ( ; level != 0; level-- )
> +    {
> +        if ( !(mask & (BIT(P2M_LEVEL_ORDER(level), UL) - 1)) &&
> +             (nr >= BIT(P2M_LEVEL_ORDER(level), UL)) )
> +        {
> +                order = P2M_LEVEL_ORDER(level);
> +                break;

I'm pretty sure I did complain about the too deep indentation here already.

> +        }
> +    }
> +
> +    return order;
> +}
> +
>  static int p2m_set_range(struct p2m_domain *p2m,
>                           gfn_t sgfn,
>                           unsigned long nr,
>                           mfn_t smfn,
>                           p2m_type_t t)
>  {
> -    return -EOPNOTSUPP;
> +    int rc = 0;
> +    unsigned long left = nr;
> +
> +    /*
> +     * Any reference taken by the P2M mappings (e.g. foreign mapping) will
> +     * be dropped in relinquish_p2m_mapping(). As the P2M will still
> +     * be accessible after, we need to prevent mapping to be added when the
> +     * domain is dying.
> +     */
> +    if ( unlikely(p2m->domain->is_dying) )
> +        return -EACCES;
> +
> +    while ( left )
> +    {
> +        unsigned long order = p2m_mapping_order(sgfn, smfn, left);
> +
> +        rc = p2m_set_entry(p2m, sgfn, order, smfn, t);
> +        if ( rc )
> +            break;
> +
> +        sgfn = gfn_add(sgfn, BIT(order, UL));
> +        if ( !mfn_eq(smfn, INVALID_MFN) )
> +           smfn = mfn_add(smfn, BIT(order, UL));

Off-by-1 indentation again.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 14:53:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 14:53:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158401.1486729 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vITGi-0002mp-He; Mon, 10 Nov 2025 14:53:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158401.1486729; Mon, 10 Nov 2025 14:53:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vITGi-0002mi-Cs; Mon, 10 Nov 2025 14:53:20 +0000
Received: by outflank-mailman (input) for mailman id 1158401;
 Mon, 10 Nov 2025 14:53: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=Ugol=5S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vITGh-0002mX-Dd
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 14:53:19 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fe138d4d-be44-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 15:53:18 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b403bb7843eso563783766b.3
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 06:53: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
 a640c23a62f3a-b72bdbc95e4sm1133486866b.12.2025.11.10.06.53.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 10 Nov 2025 06:53: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: fe138d4d-be44-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762786397; x=1763391197; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qWbUcsoDsnhykZseLVGlMZHroLW5Lmx6xTj8GoPQ6Bo=;
        b=OjX+omoo5cDj/yCJjxXugRP65GQk0Dk+sn/FGpnzN0QaptN+l1PD2nM7Q6SxviylSH
         CF7QYpMT/d2A5qzqDyS7GBrzJk0u8SWIkYRHFgzMPV4KepHgMtl1NQ613Rf68rG55imR
         I+uqCaNvJyPTNuxFWN3p7IuBHj5EKnl4/rA6DOEKzMU/VoN+pWV1q3Vu61B/4rnpEW+I
         03K9Z2++gMCAu2peXPOAuvVc6T7W7+ov51Bb7huyiBEacHATUZ/cES53JsvFKg5Qz5fi
         /IHj7nEHsFHg/6n1wMtH6/UPIae8iuoG29hD0N+7RWpXHHhLIY0iYquZPHId8fztWAK1
         jiog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762786397; x=1763391197;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qWbUcsoDsnhykZseLVGlMZHroLW5Lmx6xTj8GoPQ6Bo=;
        b=F3nNJS5edYm/f/HktEFzxd0+p6e3FtBUGzGpvRK1qo1W0ZCaYtHQCkM5PGG1pHEjy3
         68FyM7h7kK8wDkyoJZPW+Q5bmtfAg16Z3Djn8df+B3qeOI2h20J11HTGVjSXZxuXtC4l
         oGNhwwt+OiERsuF46qlo/zUA1iB3r9nlLHnzVZ7+ToQI+sWkGyXisom7c5wz7znwKRER
         M2Er1khECKxfvo3zzVlnQiSuiDSATiHu7jenGnmwHt4fr074dsKm6rF+Aljd8QUQOxPu
         NzUJjLhsKK4gKPZaFWP4A2GdZzdUpZTn9/ZUqjY1Umhz0PmX9fAk5lWLxBLgGvCqZwlO
         576Q==
X-Forwarded-Encrypted: i=1; AJvYcCWLjdVIiDGWsgp/5ToQLCsMdhB2/Pf/wyH1nKW4sPagLjYLWSghVt+qn/P9o7ybEMyz86OBObYSAl4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzyYceS4KyXepAg/zxTxmeadVTmce8reWwk5fYgjYwAipdDfPu8
	an/4QsjDfBiSBxOO2Q3JZpesz6RbOtL9Rm1wQ0qViJnYHe0c7QfsmoH64Bebz2Ssiw==
X-Gm-Gg: ASbGncs20kgdyyHvP3FXHJ8yuGwbhFgQuP7UJvfOx4ntXfVZQyb+znwFldEWGrclfsa
	kKFdYKkH7CsEYP7CTcOvNmaG6OeviaNaYu/2BfsAPUs7wZ7hONU4wpaQFpvr90ZvINT4uyQs/r9
	qcAmoU0BokkZ9F8TtkUdQEIb0P2KrfKRpyzq4NA/0MS0+gaCD79htLO3qh98V/gQox4PTk+wakz
	6KWxkN+lvi+6cFf7+H1wDk7JqrSCyua5ZwFX3Rcz+LgylnLgJnIvA+tlcqXg+YFKRYAl2+RKbdF
	X8ewr8Iz1JLbiDQ8E65zymxk9XU77AB7Lu3a6T33JK7hXQT6nFudfxsCo282YVEeIW+6zxgxUof
	BrqsnxTXwQpdYdM4pYuAcWScUYXRPn30NWmJ20JaT4lUHRIUS0DcLLPXt4NcTVG4bXsx3YNc3r4
	iI+SJO3m0WKtpjYNHnjKksgrVPWX57PvGgfAZHX0uv4mXK9vA6QWY5Njo4Uyq0QJSA
X-Google-Smtp-Source: AGHT+IEbyGCFzMqvbUEVfcw5oTNWsbQad134yhYRsHkrhI8rZ7Gj/Pc5aalD3EZTSnaa+shduRdJNg==
X-Received: by 2002:a17:907:3e86:b0:b71:854:4e4e with SMTP id a640c23a62f3a-b72e044fa03mr817905966b.38.1762786397194;
        Mon, 10 Nov 2025 06:53:17 -0800 (PST)
Message-ID: <cfe9da20-5680-4f42-92f6-f46350811380@suse.com>
Date: Mon, 10 Nov 2025 15:53:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 10/18] xen/riscv: implement p2m_set_range()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <d689c48582505b0dab6896b414d01d844d834bd5.1760974017.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: <d689c48582505b0dab6896b414d01d844d834bd5.1760974017.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.10.2025 17:57, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/p2m.h
> +++ b/xen/arch/riscv/include/asm/p2m.h
> @@ -8,12 +8,45 @@
>  #include <xen/rwlock.h>
>  #include <xen/types.h>
>  
> +#include <asm/page.h>
>  #include <asm/page-bits.h>
>  
>  extern unsigned char gstage_mode;
> +extern unsigned int gstage_root_level;
>  
>  #define P2M_ROOT_ORDER  (ilog2(GSTAGE_ROOT_PAGE_TABLE_SIZE) - PAGE_SHIFT)
>  #define P2M_ROOT_PAGES  BIT(P2M_ROOT_ORDER, U)
> +#define P2M_ROOT_LEVEL  gstage_root_level
> +
> +/*
> + * According to the RISC-V spec:
> + *   When hgatp.MODE specifies a translation scheme of Sv32x4, Sv39x4, Sv48x4,
> + *   or Sv57x4, G-stage address translation is a variation on the usual
> + *   page-based virtual address translation scheme of Sv32, Sv39, Sv48, or
> + *   Sv57, respectively. In each case, the size of the incoming address is
> + *   widened by 2 bits (to 34, 41, 50, or 59 bits).
> + *
> + * P2M_LEVEL_ORDER(lvl) defines the bit position in the GFN from which
> + * the index for this level of the P2M page table starts. The extra 2
> + * bits added by the "x4" schemes only affect the root page table width.
> + *
> + * Therefore, this macro can safely reuse XEN_PT_LEVEL_ORDER() for all
> + * levels: the extra 2 bits do not change the indices of lower levels.
> + *
> + * The extra 2 bits are only relevant if one tried to address beyond the
> + * root level (i.e., P2M_LEVEL_ORDER(P2M_ROOT_LEVEL + 1)), which is
> + * invalid.
> + */
> +#define P2M_LEVEL_ORDER(lvl) XEN_PT_LEVEL_ORDER(lvl)

Is the last paragraph of the comment really needed? It talks about something
absurd / impossible only.

> +#define P2M_ROOT_EXTRA_BITS(lvl) (2 * ((lvl) == P2M_ROOT_LEVEL))
> +
> +#define P2M_PAGETABLE_ENTRIES(lvl) \
> +    (BIT(PAGETABLE_ORDER + P2M_ROOT_EXTRA_BITS(lvl), UL))
> +
> +#define GFN_MASK(lvl) (P2M_PAGETABLE_ENTRIES(lvl) - 1UL)

If I'm not mistaken, this is a mask with the low 10 or 12 bits set.
That's not really something you can apply to a GFN, unlike the name
suggests.

> +#define P2M_LEVEL_SHIFT(lvl) (P2M_LEVEL_ORDER(lvl) + PAGE_SHIFT)

Whereas here the macro name doesn't make clear what is shifted: An
address or a GFN. (It's the former, aiui.)

> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -9,6 +9,7 @@
>  #include <xen/rwlock.h>
>  #include <xen/sched.h>
>  #include <xen/sections.h>
> +#include <xen/xvmalloc.h>
>  
>  #include <asm/csr.h>
>  #include <asm/flushtlb.h>
> @@ -17,6 +18,43 @@
>  #include <asm/vmid.h>
>  
>  unsigned char __ro_after_init gstage_mode;
> +unsigned int __ro_after_init gstage_root_level;

Like for mode, I'm unconvinced of this being a global (and not per-P2M /
per-domain).

> +/*
> + * The P2M root page table is extended by 2 bits, making its size 16KB
> + * (instead of 4KB for non-root page tables). Therefore, P2M root page
> + * is allocated as four consecutive 4KB pages (since alloc_domheap_pages()
> + * only allocates 4KB pages).
> + */
> +#define ENTRIES_PER_ROOT_PAGE \
> +    (P2M_PAGETABLE_ENTRIES(P2M_ROOT_LEVEL) / P2M_ROOT_ORDER)
> +
> +static inline unsigned int calc_offset(unsigned int lvl, vaddr_t va)

Where would a vaddr_t come from here? Your input are guest-physical addresses,
if I'm not mistaken.

> +{
> +    unsigned int offset = (va >> P2M_LEVEL_SHIFT(lvl)) & GFN_MASK(lvl);
> +
> +    /*
> +     * For P2M_ROOT_LEVEL, `offset` ranges from 0 to 2047, since the root
> +     * page table spans 4 consecutive 4KB pages.
> +     * We want to return an index within one of these 4 pages.
> +     * The specific page to use is determined by `p2m_get_root_pointer()`.
> +     *
> +     * Example: if `offset == 512`:
> +     *  - A single 4KB page holds 512 entries.
> +     *  - Therefore, entry 512 corresponds to index 0 of the second page.
> +     *
> +     * At all other levels, only one page is allocated, and `offset` is
> +     * always in the range 0 to 511, since the VPN is 9 bits long.
> +     */
> +    return offset % ENTRIES_PER_ROOT_PAGE;

Seeing something "root" used here (when this is for all levels) is pretty odd,
despite all the commentary. Given all the commentary, why not simply

    return offset & ((1U << PAGETABLE_ORDER) - 1);

?

> +}
> +
> +#define P2M_MAX_ROOT_LEVEL 4
> +
> +#define P2M_DECLARE_OFFSETS(var, addr) \
> +    unsigned int var[P2M_MAX_ROOT_LEVEL] = {-1};\
> +    for ( unsigned int i = 0; i <= gstage_root_level; i++ ) \
> +        var[i] = calc_offset(i, addr);

This surely is more than just "declare", and it's dealing with all levels no
matter whether you actually will use all offsets.

> @@ -259,13 +308,293 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
>      return rc;
>  }
>  
> +/*
> + * Map one of the four root pages of the P2M root page table.
> + *
> + * The P2M root page table is larger than normal (16KB instead of 4KB),
> + * so it is allocated as four consecutive 4KB pages. This function selects
> + * the appropriate 4KB page based on the given GFN and returns a mapping
> + * to it.
> + *
> + * The caller is responsible for unmapping the page after use.
> + *
> + * Returns NULL if the calculated offset into the root table is invalid.
> + */
> +static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
> +{
> +    unsigned long root_table_indx;
> +
> +    root_table_indx = gfn_x(gfn) >> P2M_LEVEL_ORDER(P2M_ROOT_LEVEL);

With the variable name shortened (to e.g. idx) this could be its initializer
without ending up with too long a line. The root_table_ prefix isn't really
adding much value in the context of this function.

> +    if ( root_table_indx >= P2M_ROOT_PAGES )
> +        return NULL;
> +
> +    /*
> +     * The P2M root page table is extended by 2 bits, making its size 16KB
> +     * (instead of 4KB for non-root page tables). Therefore, p2m->root is
> +     * allocated as four consecutive 4KB pages (since alloc_domheap_pages()
> +     * only allocates 4KB pages).
> +     *
> +     * Initially, `root_table_indx` is derived directly from `va`.

There's no 'va' here.

> +static inline void p2m_clean_pte(pte_t *p, bool clean_pte)

"clean_pte" as a parameter name of a function of this name is, well, odd.

> +/* Insert an entry in the p2m */
> +static int p2m_set_entry(struct p2m_domain *p2m,
> +                         gfn_t gfn,
> +                         unsigned long page_order,
> +                         mfn_t mfn,
> +                         p2m_type_t t)
> +{
> +    unsigned int level;
> +    unsigned int target = page_order / PAGETABLE_ORDER;
> +    pte_t *entry, *table, orig_pte;
> +    int rc;
> +    /*
> +     * A mapping is removed only if the MFN is explicitly set to INVALID_MFN.
> +     * Other MFNs that are considered invalid by mfn_valid() (e.g., MMIO)
> +     * are still allowed.
> +     */
> +    bool removing_mapping = mfn_eq(mfn, INVALID_MFN);
> +    P2M_DECLARE_OFFSETS(offsets, gfn_to_gaddr(gfn));
> +
> +    ASSERT(p2m_is_write_locked(p2m));
> +
> +    /*
> +     * Check if the level target is valid: we only support
> +     * 4K - 2M - 1G mapping.
> +     */
> +    ASSERT(target <= 2);
> +
> +    table = p2m_get_root_pointer(p2m, gfn);
> +    if ( !table )
> +        return -EINVAL;
> +
> +    for ( level = P2M_ROOT_LEVEL; level > target; level-- )
> +    {
> +        /*
> +         * Don't try to allocate intermediate page table if the mapping
> +         * is about to be removed.
> +         */
> +        rc = p2m_next_level(p2m, !removing_mapping,
> +                            level, &table, offsets[level]);
> +        if ( (rc == P2M_TABLE_MAP_NONE) || (rc == P2M_TABLE_MAP_NOMEM) )
> +        {
> +            rc = (rc == P2M_TABLE_MAP_NONE) ? -ENOENT : -ENOMEM;
> +            /*
> +             * We are here because p2m_next_level has failed to map
> +             * the intermediate page table (e.g the table does not exist
> +             * and none should be allocated). It is a valid case
> +             * when removing a mapping as it may not exist in the
> +             * page table. In this case, just ignore lookup failure.
> +             */
> +            rc = removing_mapping ? 0 : rc;
> +            goto out;
> +        }
> +
> +        if ( rc != P2M_TABLE_NORMAL )
> +            break;
> +    }
> +
> +    entry = table + offsets[level];
> +
> +    /*
> +     * If we are here with level > target, we must be at a leaf node,
> +     * and we need to break up the superpage.
> +     */
> +    if ( level > target )
> +    {
> +        panic("Shattering isn't implemented\n");
> +    }
> +
> +    /*
> +     * We should always be there with the correct level because all the
> +     * intermediate tables have been installed if necessary.
> +     */
> +    ASSERT(level == target);
> +
> +    orig_pte = *entry;
> +
> +    if ( removing_mapping )
> +        p2m_clean_pte(entry, p2m->clean_dcache);
> +    else
> +    {
> +        pte_t pte = p2m_pte_from_mfn(mfn, t);
> +
> +        p2m_write_pte(entry, pte, p2m->clean_dcache);
> +
> +        p2m->max_mapped_gfn = gfn_max(p2m->max_mapped_gfn,
> +                                      gfn_add(gfn, BIT(page_order, UL) - 1));
> +        p2m->lowest_mapped_gfn = gfn_min(p2m->lowest_mapped_gfn, gfn);
> +    }
> +
> +    p2m->need_flush = true;
> +
> +    /*
> +     * Currently, the infrastructure required to enable CONFIG_HAS_PASSTHROUGH
> +     * is not ready for RISC-V support.
> +     *
> +     * When CONFIG_HAS_PASSTHROUGH=y, iommu_iotlb_flush() should be done
> +     * here.
> +     */
> +#ifdef CONFIG_HAS_PASSTHROUGH
> +#   error "add code to flush IOMMU TLB"
> +#endif
> +
> +    rc = 0;
> +
> +    /*
> +     * In case of a VALID -> INVALID transition, the original PTE should
> +     * always be freed.
> +     *
> +     * In case of a VALID -> VALID transition, the original PTE should be
> +     * freed only if the MFNs are different. If the MFNs are the same
> +     * (i.e., only permissions differ), there is no need to free the
> +     * original PTE.
> +     */
> +    if ( pte_is_valid(orig_pte) &&
> +         (!pte_is_valid(*entry) ||
> +         !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte))) )

Besides my continued impression of this condition being more complex than it
ought to be expected, indentation is off by one on the last of the three lines.
(Since, otoh, I can't suggest any simpler expression (for now), this isn't a
request to further change it.)

> +/* Return mapping order for given gfn, mfn and nr */
> +static unsigned long p2m_mapping_order(gfn_t gfn, mfn_t mfn, unsigned long nr)
> +{
> +    unsigned long mask;
> +    /* 1gb, 2mb, 4k mappings are supported */
> +    unsigned int level = min(P2M_ROOT_LEVEL, _AC(2, U));

Further up you has such a literal 2 already - please make a constant, so all
instances can easily be associated with one another.

> +    unsigned long order = 0;
> +
> +    mask = !mfn_eq(mfn, INVALID_MFN) ? mfn_x(mfn) : 0;
> +    mask |= gfn_x(gfn);
> +
> +    for ( ; level != 0; level-- )
> +    {
> +        if ( !(mask & (BIT(P2M_LEVEL_ORDER(level), UL) - 1)) &&
> +             (nr >= BIT(P2M_LEVEL_ORDER(level), UL)) )
> +        {
> +                order = P2M_LEVEL_ORDER(level);
> +                break;

I'm pretty sure I did complain about the too deep indentation here already.

> +        }
> +    }
> +
> +    return order;
> +}
> +
>  static int p2m_set_range(struct p2m_domain *p2m,
>                           gfn_t sgfn,
>                           unsigned long nr,
>                           mfn_t smfn,
>                           p2m_type_t t)
>  {
> -    return -EOPNOTSUPP;
> +    int rc = 0;
> +    unsigned long left = nr;
> +
> +    /*
> +     * Any reference taken by the P2M mappings (e.g. foreign mapping) will
> +     * be dropped in relinquish_p2m_mapping(). As the P2M will still
> +     * be accessible after, we need to prevent mapping to be added when the
> +     * domain is dying.
> +     */
> +    if ( unlikely(p2m->domain->is_dying) )
> +        return -EACCES;
> +
> +    while ( left )
> +    {
> +        unsigned long order = p2m_mapping_order(sgfn, smfn, left);
> +
> +        rc = p2m_set_entry(p2m, sgfn, order, smfn, t);
> +        if ( rc )
> +            break;
> +
> +        sgfn = gfn_add(sgfn, BIT(order, UL));
> +        if ( !mfn_eq(smfn, INVALID_MFN) )
> +           smfn = mfn_add(smfn, BIT(order, UL));

Off-by-1 indentation again.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 15:08:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 15:08:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158428.1486748 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vITVd-00057m-3D; Mon, 10 Nov 2025 15:08:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158428.1486748; Mon, 10 Nov 2025 15:08: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 1vITVd-00057f-0F; Mon, 10 Nov 2025 15:08:45 +0000
Received: by outflank-mailman (input) for mailman id 1158428;
 Mon, 10 Nov 2025 15:08: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=Ugol=5S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vITVb-00057Z-K4
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 15:08:43 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 24e47d8c-be47-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 16:08:42 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-64165cd689eso2685664a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 07:08: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
 4fb4d7f45d1cf-6411f86ea13sm11518032a12.37.2025.11.10.07.08.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 10 Nov 2025 07:08: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: 24e47d8c-be47-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762787321; x=1763392121; 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=HWO7O0zZXfQpvyBYyTuSJBWkk4NvwcbNkye75F/8MWg=;
        b=GKEQimcsam5upZrQb2zNpJdrX96CzuI0VC3H9Ji7RDJa2yvRAEXJOSYrgEgXGp6ix2
         gsqQHv9jcQPbn1L2/ePHI6057LSoZ82K3O8z9IgzOT4KQp2i12WSesP+GEWSMtRrx07n
         FiiuMiXW2L5vQdCEQz7A/18FzE6N0NWnYw9VK/WIZUTX2YkfE7q4YrhlL7+4ISg3mbJN
         8MgoNrBbw/JoJavw7FvtudwWZ+IK4NzlEyZzEVQDeyi4O1m6FI0oLXSK60NePnOVnBLS
         DjxpIJWXxNCzfWkeoDVlGF/+domSh51OTPbeWlXycEAY/gq01qS9WfN9cXKR+LYRsrEx
         mw7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762787321; x=1763392121;
        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=HWO7O0zZXfQpvyBYyTuSJBWkk4NvwcbNkye75F/8MWg=;
        b=gYQKWDDYdNlk8amonE3L6heDLGelyTdzJISNSoyxrZLWAwiyPhd486Vt0lOsBrMt1S
         xydin5LCtM+D6kRpix8zmtbEWyhH2dIj6LVrkAeguQ+kEPaF88nJwuBZVINzeVb22btW
         M4Kqjazcq9v/HSH71fACUahmsU4pu6+xKa3C+YrHwADI5BkJr9nv/muPMdZYZffRK3o4
         bFouZA9bXRDbR7ppLkyfcTB7pdOhSXgw+1q1LrGfRcL7Za/sZiaBvgMfbB9kSzVGyUBK
         fGHzV58Fz6ZKa7r5xL51wkbTLHys7XQgIYJKctPBalzAWGXd0j52wKNNWv2sa/KGzc5W
         +d5w==
X-Gm-Message-State: AOJu0YxgV6kvuDvjVkDych1LpWKGGQFnXcGUOI+vlSF3WHti4r4IcN/1
	yPUkoUpcdfuOLSmULqCROAugdsIXFewODs9t8u0HS3e99uNMAIBhMZahfxoAwY6obt6JfRJCZb9
	AClw=
X-Gm-Gg: ASbGnctMILG3pxMDk7JpfMrlZz4DLktDQph2ZxVzhc6wka1x2e3soFz2LibMX8iVwqE
	Nt9V88osINq2/A4KjSo2Q1rAKEOIr2pXpgdhjEbZ7panpHrmznkoYCuJUSmkF+i2fUgtLSyrcXA
	KwcZgGRffYjH5uWn8vF5XJRFbdS/ydz+wrn9T2K2d1cFLbjunNBscCk2cBajjvHaukBqu/d0CoW
	uK8hlA2TXLGE8LChaE8mgUGol463ou7DomSo4v+gq6YWOYcx5N1h/cUBvGH27rZ+4zLcStZhW6x
	+dxQQUvL+cTzesHcJ3Y+Yvs8WW9pncFEqxn6HYmR7uT9vuiyFnxgJ+VhSIWYf/ta5PZuqklImh7
	8TZxKwNeOfRL9RP3JEUcAlUka6p4aEK7DgkLYI5PWOzz1Eq8BhzwWIf5pjU2vfxn3EZkYMVVu9w
	wd1XH3Y2aTDxDTlE4Sesa5p3E4zkSWbXfwa9C29DFfunVlGpNIzan1RqOBh900RcwdsvGpcojVD
	DU=
X-Google-Smtp-Source: AGHT+IFyAeQEfLuM2tPF0sJKgmSp51UAMkZ2VH6nBA/1X0kw/vi7rhQroApJlkg9zh2Ya2YV1VORcg==
X-Received: by 2002:a05:6402:2794:b0:640:b625:b920 with SMTP id 4fb4d7f45d1cf-64159b67505mr8051908a12.6.1762787321536;
        Mon, 10 Nov 2025 07:08:41 -0800 (PST)
Message-ID: <0aa341eb-5662-487a-a9f6-713932d2f6ca@suse.com>
Date: Mon, 10 Nov 2025 16:08:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: preparations for 4.20.2
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>,
 "community.manager@xenproject.org" <community.manager@xenproject.org>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

All,

the release would have been due over the weekend; it slipped my attention. Please
point out backports you find missing from the respective staging branch, but which
you consider relevant.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 15:29:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 15:29:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158452.1486806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vITpu-0008R3-4k; Mon, 10 Nov 2025 15:29:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158452.1486806; Mon, 10 Nov 2025 15:29:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vITpu-0008Qw-0T; Mon, 10 Nov 2025 15:29:42 +0000
Received: by outflank-mailman (input) for mailman id 1158452;
 Mon, 10 Nov 2025 15:29: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=Ugol=5S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vITpt-0008Qq-3U
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 15:29:41 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11f3823f-be4a-11f0-980a-7dc792cee155;
 Mon, 10 Nov 2025 16:29:38 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-640ace5f283so3849896a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 07: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
 4fb4d7f45d1cf-6411f6780b7sm11604534a12.0.2025.11.10.07.29.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 10 Nov 2025 07: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: 11f3823f-be4a-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762788578; x=1763393378; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=O5pYIZhbo7pLnFAv55ABo3MihsiXamJgbeGRbEuDLt4=;
        b=Y82uhdIqp2awIucIWz1LRolNZmeg0qJb31sS54vHtbGVOth89mAbryFnuho63gNUK7
         XtanEJf0SI+hAedTADZutRU3SnBAtCLyX7chpp0LMWJvObYJ2IIVmuiG8EMKEfP8qxW2
         hwbTgL50Dst3U5xaKxBMOHHjkQd4yuZxABVlLX4CBjzEkdkrPz+2mxhy26POY4v9KGfE
         +toPNshCdEXFAhFSl63nFeBe7ORoJfQBIomgo4LsXNwu51szZCe7X6M3nev3YSph1nRS
         qgmXKMfw9QGeajWVuroQkmCusvLj8ruxtmT0eHtN49pR1QVAa690ggL4gHoIygbQB58a
         67Ug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762788578; x=1763393378;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=O5pYIZhbo7pLnFAv55ABo3MihsiXamJgbeGRbEuDLt4=;
        b=dJSAkhyVGhkoWXrOnr97B/GwFgKtBXsJxviTFFqiY0Ea4LiBtvfWKkBsU3+Dr+EFaR
         dgiV2bbS7QoPDlM9i2lNC9jrsanFfeXymNnXHpdCceQiltZqO639BkGgUDWnDMeWDRjP
         farQH6DTZZPVs4FqCvXzW7bCoUD5uwH3mDmpmfuottOsIJjrYfonU3n2b1jhKjhE2IsY
         syyzFcX3p7isRfiy95X8ta4v57RYZDUUXdRQW2FL5ljTANvTMcSxN48Mqq3Zw8orlBg3
         NCHJAKL1+pKs84HbJAFBk4cEurzmWKaZBc8cGS55d8F3TI5G3ReBLwahDtDZpulptrD2
         S+MA==
X-Forwarded-Encrypted: i=1; AJvYcCVyCWj6lXiLcnF+bUpBjfphreFfd6ZTw16Wp7ZwgggpbzeT/k/exT4LnA+9QiGM8O/UtoTDubaUEGc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YywDWronE/Yfp4tFBaS+GV4Y1HuquNffYJW6l7PbeJXkYLlCmA8
	TGQSmxKO2YqcTOD2HcCDsQgTYRDnCotm3SXQ5AiXoxKUSl/m641MpDmVS6gi8jCfuw==
X-Gm-Gg: ASbGnctme/FtakQeR6DJKuFbCgMIV1/QEw/lpQI9UFB9AhNciJ8nHpi0JXsuAiHkS05
	1wP7DQ7Dmzp+hdMfbhibwYFiqwy2NXCKgUyl1JuDTW+MBzrReuBgilkKhZUqH5hEqsRvpxxQMRY
	DnOGGz0MQle2sMeUq0L/vCcdJgl2Yi/MtwHb61ZEi55HEVTAbFYla5exXIGnx66n41XNyfBhDDJ
	c/5sprtebUaFeXVpGfDmQD16qkK47d1Nv3wRbkrFgB69HODlbX438wmKoSi/yVGRiz0hCB/eaZc
	ZParnBSo5rsrMzrWvJmUu/D/s/rsjMhIeR3t0vjwpgE7T1sYMKB2WubA1Wesv4mPPLm6T0EtBOM
	xuKCdBGzMbkpEBVp6pb8ORDG1CaPdzD1cZk08uuBAQ/yhM/Tb+t1LZ9sXSIFPfBf2IbQpR7MMkf
	REe8P9sfLSec125UFJ1l09aqbDJ5/WqsrQEo5NYDfm3i3iqVqiYXlbcppxEyW5QCX3Mjm6su/J8
	Ik=
X-Google-Smtp-Source: AGHT+IH/4zhIB2uMBG2OnoWRdrqhwu+IHpi7OSeKRePgsK8ctr4xguPgxqqHF2HVGhTDGscue+MbIw==
X-Received: by 2002:a05:6402:51cd:b0:641:1f22:fc68 with SMTP id 4fb4d7f45d1cf-6415e6efc9bmr7671037a12.24.1762788578094;
        Mon, 10 Nov 2025 07:29:38 -0800 (PST)
Message-ID: <acf32e9d-4c07-45dd-baac-29e6d93cff56@suse.com>
Date: Mon, 10 Nov 2025 16:29:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 11/18] xen/riscv: Implement p2m_free_subtree() and
 related helpers
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <24928a25f63f81ee72b78830306881b2c4c5a1e4.1760974017.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: <24928a25f63f81ee72b78830306881b2c4c5a1e4.1760974017.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.10.2025 17:57, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/p2m.h
> +++ b/xen/arch/riscv/include/asm/p2m.h
> @@ -110,6 +110,8 @@ typedef enum {
>      p2m_mmio_direct_io, /* Read/write mapping of genuine Device MMIO area,
>                             PTE_PBMT_IO will be used for such mappings */
>      p2m_ext_storage,    /* Following types'll be stored outsude PTE bits: */
> +    p2m_map_foreign_rw, /* Read/write RAM pages from foreign domain */
> +    p2m_map_foreign_ro, /* Read-only RAM pages from foreign domain */
>  
>      /* Sentinel â€” not a real type, just a marker for comparison */
>      p2m_first_external = p2m_ext_storage,
> @@ -120,15 +122,28 @@ static inline p2m_type_t arch_dt_passthrough_p2m_type(void)
>      return p2m_mmio_direct_io;
>  }
>  
> +/*
> + * Bits 8 and 9 are reserved for use by supervisor software;
> + * the implementation shall ignore this field.
> + * We are going to use to save in these bits frequently used types to avoid
> + * get/set of a type from radix tree.
> + */
> +#define P2M_TYPE_PTE_BITS_MASK  0x300

Better use PTE_RSW in place of the raw number?

> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -17,6 +17,8 @@
>  #include <asm/riscv_encoding.h>
>  #include <asm/vmid.h>
>  
> +#define P2M_SUPPORTED_LEVEL_MAPPING 2

I fear without a comment it's left unclear what this is / represents.

> @@ -403,11 +415,147 @@ static int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,
>      return P2M_TABLE_MAP_NONE;
>  }
>  
> +static void p2m_put_foreign_page(struct page_info *pg)
> +{
> +    /*
> +     * Itâ€™s safe to call put_page() here because arch_flush_tlb_mask()
> +     * will be invoked if the page is reallocated, which will trigger a
> +     * flush of the guest TLBs.
> +     */
> +    put_page(pg);
> +}
> +
> +/* Put any references on the single 4K page referenced by mfn. */

To me this and ...

> +static void p2m_put_4k_page(mfn_t mfn, p2m_type_t type)
> +{
> +    /* TODO: Handle other p2m types */
> +
> +    if ( p2m_is_foreign(type) )
> +    {
> +        ASSERT(mfn_valid(mfn));
> +        p2m_put_foreign_page(mfn_to_page(mfn));
> +    }
> +}
> +
> +/* Put any references on the superpage referenced by mfn. */

... to a lesser degree this comment are potentially misleading. Down here at
least there is something plural-ish (the 4k pages that the 2M one consists
of), but especially for the single page case above "any" could easily mean
"anything that's still outstanding, anywhere". I'm also not quite sure "on"
is really what you mean (I'm not a native speaker, so my gut feeling may be
wrong here).

> +static void p2m_put_2m_superpage(mfn_t mfn, p2m_type_t type)
> +{
> +    struct page_info *pg;
> +    unsigned int i;
> +
> +    /*
> +     * TODO: Handle other p2m types, but be aware that any changes to handle
> +     * different types should require an update on the relinquish code to
> +     * handle preemption.
> +     */

I guess if I was to address this TODO, I wouldn't know what the latter part
of the sentence is warning me of.

> +    if ( !p2m_is_foreign(type) )
> +        return;

Are super-page foreign mappings actually intended to be permitted, conceptually?

>  /* Free pte sub-tree behind an entry */
>  static void p2m_free_subtree(struct p2m_domain *p2m,
>                               pte_t entry, unsigned int level)
>  {
> -    panic("%s: hasn't been implemented yet\n", __func__);
> +    unsigned int i;
> +    pte_t *table;
> +    mfn_t mfn;
> +    struct page_info *pg;
> +
> +    /*
> +     * Check if the level is valid: only 4K - 2M - 1G mappings are supported.
> +     * To support levels > 2, the implementation of p2m_free_subtree() would
> +     * need to be updated, as the current recursive approach could consume
> +     * excessive time and memory.
> +     */
> +    ASSERT(level <= P2M_SUPPORTED_LEVEL_MAPPING);
> +
> +    /* Nothing to do if the entry is invalid. */
> +    if ( !pte_is_valid(entry) )
> +        return;
> +
> +    if ( (level == 0) || pte_is_superpage(entry, level) )

Considering what pte_is_superpage() expands to, simply pte_is_mapping()?

> +    {
> +        p2m_type_t p2mt = p2m_get_type(entry);
> +
> +#ifdef CONFIG_IOREQ_SERVER
> +        /*
> +         * If this gets called then either the entry was replaced by an entry
> +         * with a different base (valid case) or the shattering of a superpage
> +         * has failed (error case).
> +         * So, at worst, the spurious mapcache invalidation might be sent.
> +         */
> +        if ( p2m_is_ram(p2mt) &&
> +             domain_has_ioreq_server(p2m->domain) )
> +            ioreq_request_mapcache_invalidate(p2m->domain);
> +#endif
> +
> +        p2m_put_page(entry, level, p2mt);
> +
> +        return;
> +    }
> +
> +    table = map_domain_page(pte_get_mfn(entry));
> +    for ( i = 0; i < P2M_PAGETABLE_ENTRIES(level); i++ )
> +        p2m_free_subtree(p2m, table[i], level - 1);
> +
> +    unmap_domain_page(table);

Please can the use of blank lines in such cases be symmetric: Either have them
ahead of and after the loop, or have them nowhere?

> @@ -435,7 +583,7 @@ static int p2m_set_entry(struct p2m_domain *p2m,
>       * Check if the level target is valid: we only support
>       * 4K - 2M - 1G mapping.
>       */
> -    ASSERT(target <= 2);
> +    ASSERT(target <= P2M_SUPPORTED_LEVEL_MAPPING);

Ah, this is where that constant comes into play. It wants moving to the earlier
patch, and with this being the purpose I guess it also wants to include MAX in
its name.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 15:36:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 15:36:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158464.1486816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vITwA-0001gc-Oe; Mon, 10 Nov 2025 15:36:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158464.1486816; Mon, 10 Nov 2025 15:36:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vITwA-0001gV-L0; Mon, 10 Nov 2025 15:36:10 +0000
Received: by outflank-mailman (input) for mailman id 1158464;
 Mon, 10 Nov 2025 15: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=D0MZ=5S=citrix.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1vITw9-0001gP-13
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 15:36:09 +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 f53e5bdb-be4a-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 16:36:01 +0100 (CET)
Received: from IA3PR03MB8408.namprd03.prod.outlook.com (2603:10b6:208:546::19)
 by PH8PR03MB7217.namprd03.prod.outlook.com (2603:10b6:510:259::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.15; Mon, 10 Nov
 2025 15:35:55 +0000
Received: from IA3PR03MB8408.namprd03.prod.outlook.com
 ([fe80::8d7b:218a:6264:2c39]) by IA3PR03MB8408.namprd03.prod.outlook.com
 ([fe80::8d7b:218a:6264:2c39%5]) with mapi id 15.20.9298.007; Mon, 10 Nov 2025
 15:35: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: f53e5bdb-be4a-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=p6z0vToHpaYimQDo4axHHLDf3u9I5Ylp2PI7LJhO38U9utfrMewpb0ilS8aw1Xqdn74rFeaAJHgx1/TMWEEKDwMha3un59kLMEcs+WON4NmXNvBKBl8VOUPyAncrRMlhqFRG5y0VnDsobXg8oWiMjejR/kmeBTV7lBqZAE4yfMj5/emu9NrHZlximSztt5gZl8xEdyRPZrvWdo4u4EwHYymHSwCmG2JBApyJzpNKADnG0Lkeq/VvoAex1zKPqTJsBtFPYevyTmKqG1T5kTcR7VVKxFJ3Gr2Lg7fnXArPZ+HVImx04ksoCyiNJfLDT0e9Jsr1RTardM2JLSmv0L1CEQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OgnsOP1yOnWrKA6YRpqlH9/do+T3aNwg6qIwmyShu3k=;
 b=p6/Vj+hqNOqeQBhgriq1i/smjPeqGfiOCjo7ZV6liixoFXvd+bUGQvhVn5h2zMRdmcWz7vhMDfY7Bihla/3wCBYFe7UrSQKIJRcncPuxwaGedt+m2/qStPjXnY7h2XoGimStO6hxv27BcLwc4S5vKQPwyCDi0qg+5u5rWI6yo8esWy42pAgjOtl88N6v9P9qse0gDKPq7wtQ3v3pJMIChAxNfKd1MY2Upc6hmMmtvbwNqplGieijg4zJuaYXEhgUY+GEpzqfThp6IsyNlC7zPbMN5xFGrW6EgNXz6Bki/PPWXbTJkbw+VulWWGcRGBxFWhKmFCqd/uQRaaAfNe8Hzw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=OgnsOP1yOnWrKA6YRpqlH9/do+T3aNwg6qIwmyShu3k=;
 b=yMfGsKRVjCOikrohsyi7OKwTqUKXM6tu4l2B7/3pRgTeANOjPJk6Jucf+X7/wi5j8ah0MJQDkqS+C5Tsn+A+tn8WUa5VyY3cOR8PU53QPDbRfhRrMbImTwSqKtTJsTWEA/YbC5FTEiL1kqeVOTo/SQtdLM9a8BNsHJqe88ZNcCc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Frediano Ziglio <frediano.ziglio@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Frediano Ziglio <freddy77@gmail.com>,
	Demi Marie Obenour <demiobenour@gmail.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v5] xen: Strip xen.efi by default
Date: Mon, 10 Nov 2025 15:35:51 +0000
Message-ID: <20251110153551.84813-1-frediano.ziglio@citrix.com>
X-Mailer: git-send-email 2.51.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO3P123CA0017.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:ba::22) To IA3PR03MB8408.namprd03.prod.outlook.com
 (2603:10b6:208:546::19)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA3PR03MB8408:EE_|PH8PR03MB7217:EE_
X-MS-Office365-Filtering-Correlation-Id: a44041dc-c924-4d46-151d-08de206ed6ba
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?JFhZBsLcIqDpaBpi3NB9DH0BUBXbrE+IEIRXzNCzSM6/Si7ihZFto2FOQMh9?=
 =?us-ascii?Q?Ybsz73NPnpe+7/q+KAy2g87Yoj3yE/Lr9lmF7cpWQ+XO8X55fuDp3gS7WVmw?=
 =?us-ascii?Q?i9WKeGIEqdnoC9JIMISwQ/NGyh2PVjEITSXsRF+rzsLE+z494DfiFK7ZHuBl?=
 =?us-ascii?Q?8h2R93UgpTQ6ZhSMmSMH6S+jKX0mMa/61HXnDXO7kAy35hon+Qlk/FChN/O/?=
 =?us-ascii?Q?EKC+Sh+hCJ7Q3QQFNpPRMEJVC/xGgkKxxTT9H1wPzyH3kFWBocPYQxo18PSW?=
 =?us-ascii?Q?BnUIi75vZBWCgcFce64AcceUhC508sfSFsHznshZ8WQGDYTgSpGc/6SgaGNQ?=
 =?us-ascii?Q?ZJDgwnX0VV0plcfLbEIkfQMI3n4OSOsIFUh+UWhJbhHplJe9vhfrcIdQqjgd?=
 =?us-ascii?Q?sHd1UsSLbosj4B62a9/ITKu241iJoXAn6J14L7aGiPpmfY4NGsZ4ehrjvo3Y?=
 =?us-ascii?Q?AnOcl76TqmDyMkmuke2McGHWTCSj8Mt66QtPJ7eidLgKqb7n7cUdHQXP1yAx?=
 =?us-ascii?Q?950hxCSbacyR9UtiIAlyPpAc82kL6h1P9LlaIJ6znbkuIqFBJCnejvx4DHb2?=
 =?us-ascii?Q?7X8pTQQF2h6Ce3KdRsxVOmj4Gmwr+tyMjJyTPgwdW4cemOQ9qiJn1m0LjEju?=
 =?us-ascii?Q?/xJfd5QHKnwk3OtAE57D8M/3mcohpkRTRThtzNZ0zQL92lIAkM7dqJRMHR89?=
 =?us-ascii?Q?qIRKNQluIu58D14d6ZNk5XQrO6abEhBBpPhF/Ef284gOVhEIzE+NJRRfmBuM?=
 =?us-ascii?Q?J2JMBPmhpH1v+NOci8bizL/+6LLIX5tWUB3vhb+4tZfG7i79gl3n18hEsItO?=
 =?us-ascii?Q?cJcxVi49mDKLAyu0k3rkrxieVETfUz8WKLmQFgUXEsLz2/cn0MtOU+mII2dB?=
 =?us-ascii?Q?NappdBXIk5dex2cgMpVBZkDgqDHr5NfDYXcK/P64P4ON27xq0opA0Acsf5ct?=
 =?us-ascii?Q?7TJj2MDIrWsiR7Fam/mtvdXIToCfDs2FlOONgm+1l7lgkAQDPKfzrdwg8DH2?=
 =?us-ascii?Q?KUbRfgi1vRiFlxW0io94AsmeQFUI94f0b7/n4sQijETc5tEIKwnQprkVtBpb?=
 =?us-ascii?Q?3VbvuJVDPWwRe2OA6ng96f2xDnXgmXmen9FuALue159geFGocz1lhJEPevH1?=
 =?us-ascii?Q?0Q6D1NqlmlzcumOCzZ3uwuU0YB6gyBfcw5oqhrIDA+ck8YA1MNrCQcN09EoB?=
 =?us-ascii?Q?4D3R41C1rxT3jlqb2dOmvlLFcTmYVfoa9oh/+E1TthnudHSQxPpfF/hFWbc3?=
 =?us-ascii?Q?UQv/oHsxvWPRq3Ij0X7q+RGh7zBxY6n1XEn1PNHTSTC4Y5ZCItlWQyWyFL5H?=
 =?us-ascii?Q?w6wjKE3i8RbyEMAMrI46D5Vo2OF1Gvam7o3dYXqElhvCIxJdtEr493PEVWqo?=
 =?us-ascii?Q?Dij+sMD89btr/6wymvbWe2XCHF/3JIWW98GhJOXG3CeF63YSHA0C6rMsxwA3?=
 =?us-ascii?Q?Wq4GMF5FeSAqqi1Tet/i54DOkKirZj1l?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA3PR03MB8408.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?N1T5uSydZEEY1cY9moU0dicN9kJNox4m01YFhNhcvZIGUSukdjyIgIYun5VJ?=
 =?us-ascii?Q?6pGUfXko6fejw+uvq3vQOWfnsfvspNFpH//lu385Pg3kLcz4jRmha83zyJjd?=
 =?us-ascii?Q?hSKWOqEN/yHyREBtE8i1cblVKNVyKkvvNuf+6NwQVx+yG7Oa8D0T+Bd5M7+7?=
 =?us-ascii?Q?LXPAlK/GwSaPr2EO4A7DO5DuIfyB+lPLXsPBJThuuHKjc5BnXs0kANH9cw2e?=
 =?us-ascii?Q?I/6j9JS/mFkBdKLjv5bVuaSrpc1gUmZ3dFqP08G9xPGHW29bcUyaqRPYd/5S?=
 =?us-ascii?Q?FLWT3/zlkQeonr8Ro5suIzj/VCPxAfOVZgLVffSXBPz2i4RgZofxLh9i5qQy?=
 =?us-ascii?Q?+BiFznBOoaPiqkD/rrEH4m3zy+fYSvUainG+9QUvVBuZLwIk+lFPz3RMRvjX?=
 =?us-ascii?Q?V4gv99JS9EGk8CaohpVbE3Wgr1GjDMascVSBHpj7jOsH/buTaZ/g5HmPWLBh?=
 =?us-ascii?Q?yQS81dQMkOl41V+gkFH8W5cxTO74Uj3sXMgHLYtaLcNiKTT4+5koXWG/MxIl?=
 =?us-ascii?Q?i/3BX3JgwtoJ4biLaf/Mu8OKqwayzXBo00aAScCROmZfETNmmpQtia1vT1oa?=
 =?us-ascii?Q?SEVfve6U2MZew1qUX1smGI9sowNanOsrygLsqWD5TqR+cPZqfMPXUXe8ytWq?=
 =?us-ascii?Q?oQcplKdjTH0PKItNcRX7n0iDU75RgxnpqkFJ+zajtaR1jrYahjypzgSswKrq?=
 =?us-ascii?Q?6ParXNDlBzjrYYG8+xVjvq+hu4e6cejgsjNUfPUnr4WxMPrXMyK4bvmy+cFA?=
 =?us-ascii?Q?0Cf2zkR9pd/Cxh/fxRKgPVwM+V919m0CbC3EYByvQ1TYAaBt4cckWmjnhR5F?=
 =?us-ascii?Q?b7ZS7V23StkKmsFdd35KZanvRYOQnYxwzQBHb8WUc2d3HcOh6SSnTKEfHTC2?=
 =?us-ascii?Q?gzhzbWIgvsICuCdqKvmxjsLhPkzK5tr7aTT46lwmhtsMpo/l3dRNo4+3RWxU?=
 =?us-ascii?Q?/W5UTNwRfw989TsQb2pg5b12CSpX2CB35uO2Bvoy7sWwODYFnzM8XAsplDua?=
 =?us-ascii?Q?LSotB5KBIfe7OJXG5Iuj8/n0dRvmadf4mOthagDKc8+qj7tb1dyZ2VGSdAjM?=
 =?us-ascii?Q?XtkbUPmVMsuuZwh3BoDs5X/+HXDGe8MF/WhkH9breXCjigdVBCPxMZEBAZpQ?=
 =?us-ascii?Q?eq6MOQRuui0+9S1uzPBxbSO46hhoTDC6Q5WicQFl3b6D+5vQhwyBJwO5Y/P/?=
 =?us-ascii?Q?nzpA7ny/BT1HVTnenWARVdbPH9P3BvbuN5eG1XAfx8H4wdWe6Tw8i/sUvpGQ?=
 =?us-ascii?Q?VsDeBhR6LEm5pbgoi8Q6AW/1zXvD+bixCAFasAfhX9O00TZP4ygOn2MoXMR/?=
 =?us-ascii?Q?DB/bkrWaRLWXdmGZPFa3Y4K4s8LTHmW83BOu6mLtBJfdHXfc2Szu/wwjO2sb?=
 =?us-ascii?Q?bc0Mu+NBzPd0UN+0ropwdXvVefFgl0v8Qja9nxNQALnyIYjVljUQAPhjoJkr?=
 =?us-ascii?Q?8jiqqMJZceLOK9uOVEu40MHdwqo/Zxav2BEs2yynQ6ZXKTWGCvw/JTdNFMBQ?=
 =?us-ascii?Q?4jXFLIX57pJuWbiouqE5K/mMaIzRhcd/dgBeIlx0bUeMFYXjg4X9IUUTq21x?=
 =?us-ascii?Q?7y5L5X514JQYd4WYISDOql2mowvvxZxpAu3SZ3kOvEvNBrnChLVupiU3DwRL?=
 =?us-ascii?Q?uA=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a44041dc-c924-4d46-151d-08de206ed6ba
X-MS-Exchange-CrossTenant-AuthSource: IA3PR03MB8408.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2025 15:35:55.4782
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: WWntoSvWjQJqm45t7j7B5rmUP3G3dMbv1hJB6nzDkAoU5jwd8ykp+C/lKAXoF9ftXEhrCZqFq9dO3QOzDTAzxJr6ao7yu64fV1VBxtMnlLI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR03MB7217

From: Frediano Ziglio <frediano.ziglio@cloud.com>

For xen.gz file we strip all symbols and have an additional
xen-syms.efi file version with all symbols.
Make xen.efi more coherent stripping all symbols too.
xen-syms.efi can be used for debugging.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
Changes since v1:
- avoid leaving target if some command fails.

Changes since v2:
- do not convert type but retain PE format;
- use xen-syms.efi for new file name, more consistent with ELF.

Changes since v3:
- update documentation;
- do not remove xen.efi.elf;
- check endbr instruction before generating final target.

Changes since v4:
- simplify condition check;
- avoid reuse of $@.tmp file.
---
 docs/misc/efi.pandoc  |  8 +-------
 xen/Kconfig.debug     |  9 ++-------
 xen/Makefile          | 19 -------------------
 xen/arch/x86/Makefile | 16 ++++++++++------
 4 files changed, 13 insertions(+), 39 deletions(-)

diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
index 11c1ac3346..c66b18a66b 100644
--- a/docs/misc/efi.pandoc
+++ b/docs/misc/efi.pandoc
@@ -20,13 +20,7 @@ Xen to load the configuration file even if multiboot modules are found.
 Once built, `make install-xen` will place the resulting binary directly into
 the EFI boot partition, provided `EFI_VENDOR` is set in the environment (and
 `EFI_MOUNTPOINT` is overridden as needed, should the default of `/boot/efi` not
-match your system). When built with debug info, the binary can be quite large.
-Setting `INSTALL_EFI_STRIP=1` in the environment will cause it to be stripped
-of debug info in the process of installing. `INSTALL_EFI_STRIP` can also be set
-to any combination of options suitable to pass to `strip`, in case the default
-ones don't do. The xen.efi binary will also be installed in `/usr/lib64/efi/`,
-unless `EFI_DIR` is set in the environment to override this default. This
-binary will not be stripped in the process.
+match your system).
 
 The binary itself will require a configuration file (names with the `.efi`
 extension of the binary's name replaced by `.cfg`, and - until an existing
diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index d900d926c5..1a8e0c6ec3 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -147,12 +147,7 @@ config DEBUG_INFO
 	  Say Y here if you want to build Xen with debug information. This
 	  information is needed e.g. for doing crash dump analysis of the
 	  hypervisor via the "crash" tool.
-	  Saying Y will increase the size of the xen-syms and xen.efi
-	  binaries. In case the space on the EFI boot partition is rather
-	  limited, you may want to install a stripped variant of xen.efi in
-	  the EFI boot partition (look for "INSTALL_EFI_STRIP" in
-	  docs/misc/efi.pandoc for more information - when not using
-	  "make install-xen" for installing xen.efi, stripping needs to be
-	  done outside the Xen build environment).
+	  Saying Y will increase the size of the xen-syms, xen-syms.efi and
+	  xen.efi.elf binaries.
 
 endmenu
diff --git a/xen/Makefile b/xen/Makefile
index ddcee8835c..605a26c181 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -493,22 +493,6 @@ endif
 .PHONY: _build
 _build: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 
-# Strip
-#
-# INSTALL_EFI_STRIP, if defined, will cause xen.efi to be stripped before it
-# is installed. If INSTALL_EFI_STRIP is '1', then the default option(s) below
-# will be used. Otherwise, INSTALL_EFI_STRIP value will be used as the
-# option(s) to the strip command.
-ifdef INSTALL_EFI_STRIP
-
-ifeq ($(INSTALL_EFI_STRIP),1)
-efi-strip-opt := --strip-debug --keep-file-symbols
-else
-efi-strip-opt := $(INSTALL_EFI_STRIP)
-endif
-
-endif
-
 .PHONY: _install
 _install: D=$(DESTDIR)
 _install: T=$(notdir $(TARGET))
@@ -535,9 +519,6 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi; \
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T).efi; \
 		if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; then \
-			$(if $(efi-strip-opt), \
-			     $(STRIP) $(efi-strip-opt) -p -o $(TARGET).efi.stripped $(TARGET).efi && \
-			     $(INSTALL_DATA) $(TARGET).efi.stripped $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi ||) \
 			$(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \
 		elif [ "$(D)" = "$(patsubst $(shell cd $(XEN_ROOT) && pwd)/%,%,$(D))" ]; then \
 			echo 'EFI installation only partially done (EFI_VENDOR not set)' >&2; \
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 407571c510..51d8084693 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -228,17 +228,21 @@ endif
 	$(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
 	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
 	      $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
-	      $(note_file_option) -o $@
-	$(NM) -pa --format=sysv $@ \
+	      $(note_file_option) -o $(TARGET)-syms.efi
+	$(NM) -pa --format=sysv $(TARGET)-syms.efi \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map
-ifeq ($(CONFIG_DEBUG_INFO),y)
-	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
+ifeq ($(CONFIG_DEBUG_INFO)_$(filter --strip-debug,$(EFI_LDFLAGS)),y_)
+	$(OBJCOPY) -O elf64-x86-64 $(TARGET)-syms.efi $@.elf
+	$(STRIP) $(TARGET)-syms.efi -o $@.tmp
+else
+	mv -f $(TARGET)-syms.efi -o $@.tmp
 endif
-	rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
 ifeq ($(CONFIG_XEN_IBT),y)
-	$(SHELL) $(srctree)/tools/check-endbr.sh $@
+	$(SHELL) $(srctree)/tools/check-endbr.sh $@.tmp
 endif
+	mv -f $@.tmp $@
+	rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
 else
 $(TARGET).efi: FORCE
 	rm -f $@
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 10 15:36:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 15:36:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158476.1486826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vITwr-0002Bj-4k; Mon, 10 Nov 2025 15:36:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158476.1486826; Mon, 10 Nov 2025 15:36:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vITwr-0002Bc-17; Mon, 10 Nov 2025 15:36:53 +0000
Received: by outflank-mailman (input) for mailman id 1158476;
 Mon, 10 Nov 2025 15:36: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=thpE=5S=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vITwp-0001x0-BV
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 15:36:51 +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 126a2ffc-be4b-11f0-980a-7dc792cee155;
 Mon, 10 Nov 2025 16:36:49 +0100 (CET)
Received: by mail-yw1-x112b.google.com with SMTP id
 00721157ae682-787e7aa1631so12794817b3.1
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 07:36: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: 126a2ffc-be4b-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762789008; x=1763393808; 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=LOe8TgRpWBfAxvRIai6ZtiX6imJc01nwknvnRL9Z53M=;
        b=PxBoI6aM0UMjno0GnQZZ+1TggRP7eOj9GfCDBxQO+l9F0Cbhmj2EdVq0ByuG8bA+uu
         p8NlEH4w6OgjesLAwhWM0s/p1SkamlKh0tM2CLWrFhUVQaD9liWGtrQlVeprz2hxv8I2
         W0QLz4iB34OzDRmfip2HbMkAPYqoE9ZJPyVNmOz2ZLOkv1+IXidsl9zCDE/baUvKd5yQ
         /XtUCThCb/rDeAucUgvs+S3Afeo5GZhbxn3/s0UVtMWQdC0nxW4ILG1/1Aszvf0KSESg
         pOFfi2Rx/MUsnl44Tizkvble9tC1glFx/ce37nsvie8PExP372zefcXfK9QabWZP8KU+
         0AIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762789008; x=1763393808;
        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=LOe8TgRpWBfAxvRIai6ZtiX6imJc01nwknvnRL9Z53M=;
        b=fqTraPZ0+4yKm0WlN/OaapkyAgAazCtWJ1IGU+ed/5G3AHtWeRKEeDGNTh2w4+hCnb
         GQsDevFp9TOIQusuwmV4FQpxncHnOUg3w9KX6gPmJk039ik+V4XRM6b4IKbIncA91hOU
         9lqQ8QLVAtgU68gN1gpRBZKnIAGiQanOTJ7+pauBxQrWV/7IAw0ccR0vWiuclv7nZKNL
         lGclZtbPN56jBaoCZOPF1rtvlVcl6KLJX+Ba6zayNRpkXvUzuHPV2snfvLiJ3DlcCGEP
         RKzJWH2o98gD+Q1L9uzQd7nFlIGvxkoxO/bkki9QzuFmx3wTk4dLnx63JJ7GqaaojZ2i
         +OHw==
X-Forwarded-Encrypted: i=1; AJvYcCU3xepJSMKFOaTVxmQ/p2/RreilyGaWxQ/6ZDt/Iyqnz3zhSahG76og50Rwa2xB6A9LhgfWLgWT+ls=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy/XYJNa+O1GeGPmHel1Gi/1RA6M3wnox0YLTBJPlatXU6bBMuA
	k9lzpFqMIjFKV7576les8Q7P8DtkUVcuzVbjykkrkOnZpb2ln9WaeGxl2erx75xofL9kaFMzTXy
	yhSLPNUphIZzLWpWxd9mLqQXQpj/663g=
X-Gm-Gg: ASbGncvqMQhq90vBGXbNdMM5gSh+/nK70wyeX7av9gIM2ENqLU3mob6zC7E6OYRRkp6
	QnuvxnviicuOQBgdQwAfUU6M0D2CehPbq3qKWme/kWBwNaMt6LLondihN2PIgMzgjxyO82dNpyV
	PBuGdxLwvT/bMPDo8pN/WjoIq/0b61KFLYITE8usNVRvaMI3SaoLpKyXchhDHM6058KkkCqxccC
	MtD4cOrWAkEtGWY0pjbO+Mmx+G82MidN5FrZZWGJY6DhN1f2CRnMoIi5pLkPSfxceUTd3g=
X-Google-Smtp-Source: AGHT+IFKf/sVvsGa0qxdWATiL5+z4OSTuGLnneQ3dIkUSlbqUtDKNnwgKYKQa1KJjo50J5ZxQA/zeUBbAHR04Sx4xhY=
X-Received: by 2002:a05:690e:1697:b0:63f:a4ca:dc21 with SMTP id
 956f58d0204a3-640c9d60f05mr8902266d50.19.1762789008190; Mon, 10 Nov 2025
 07:36:48 -0800 (PST)
MIME-Version: 1.0
References: <20251110125859.78124-1-frediano.ziglio@citrix.com> <55f0f1f2-3892-44fa-94d6-15e0e8513ef1@suse.com>
In-Reply-To: <55f0f1f2-3892-44fa-94d6-15e0e8513ef1@suse.com>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Mon, 10 Nov 2025 15:36:34 +0000
X-Gm-Features: AWmQ_bnZ7yUJlqdHBV99NVXmj8haUWjOKE1DEyza--C3eQq4G9FxeUrSOjeviW8
Message-ID: <CAHt6W4d3dJrmJ9DM-6Th+0YsUaJGH7Msvq_t6GpffJu7rALzbg@mail.gmail.com>
Subject: Re: [PATCH v5] xen: Strip xen.efi by default
To: Jan Beulich <jbeulich@suse.com>
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>, Frediano Ziglio <frediano.ziglio@cloud.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Demi Marie Obenour <demiobenour@gmail.com>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Mon, 10 Nov 2025 at 13:40, Jan Beulich <jbeulich@suse.com> wrote:
>
> On 10.11.2025 13:58, Frediano Ziglio wrote:
> > --- a/xen/arch/x86/Makefile
> > +++ b/xen/arch/x86/Makefile
> > @@ -228,17 +228,21 @@ endif
> >       $(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
> >       $(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
> >             $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
> > -           $(note_file_option) -o $@
> > -     $(NM) -pa --format=sysv $@ \
> > +           $(note_file_option) -o $(TARGET)-syms.efi
> > +     $(NM) -pa --format=sysv $(TARGET)-syms.efi \
> >               | $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
> >               > $@.map
>
> This part if fine with me now.
>
> > -ifeq ($(CONFIG_DEBUG_INFO),y)
> > -     $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
> > +ifeq ($(CONFIG_DEBUG_INFO)_$(filter --strip-debug,$(EFI_LDFLAGS)),y_)
>
> This extra change looks correct to me, yet I wonder if doing it this way isn't
> fragile. If EFI_LDFLAGS wasn't set globally, but only for xen.efi, aiui this
> wouldn't work anymore.
>

Maybe, but it's not a regression of this patch, the same test was
present before, just using another syntax

> > +     $(OBJCOPY) -O elf64-x86-64 $(TARGET)-syms.efi $@.elf
> > +     $(STRIP) $(TARGET)-syms.efi -o $@.tmp
> > +else
> > +     mv -f $(TARGET)-syms.efi -o $@.tmp
>
> This, while I think I understand why you do it, looks somewhat odd. Plus the
> reason you do it is, like ...
>

Can you explain why "it looks somewhat odd" ?

> >  endif
> > -     rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
> >  ifeq ($(CONFIG_XEN_IBT),y)
> > -     $(SHELL) $(srctree)/tools/check-endbr.sh $@
> > +     $(SHELL) $(srctree)/tools/check-endbr.sh $@.tmp
> >  endif
> > +     mv -f $@.tmp $@
> > +     rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
> >  else
> >  $(TARGET).efi: FORCE
> >       rm -f $@
>
> ... (still) most of this, unrelated (and, as before, not mentioned at all in
> the description).
>

I will remove it for now.

> Jan


Frediano


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 15:37:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 15:37:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158486.1486836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vITxE-0002gb-Bw; Mon, 10 Nov 2025 15:37:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158486.1486836; Mon, 10 Nov 2025 15: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 1vITxE-0002gU-8U; Mon, 10 Nov 2025 15:37:16 +0000
Received: by outflank-mailman (input) for mailman id 1158486;
 Mon, 10 Nov 2025 15: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=D0MZ=5S=citrix.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1vITxC-0001gP-Ug
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 15:37: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 20fa4008-be4b-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 16:37:14 +0100 (CET)
Received: from IA3PR03MB8408.namprd03.prod.outlook.com (2603:10b6:208:546::19)
 by PH8PR03MB7217.namprd03.prod.outlook.com (2603:10b6:510:259::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.15; Mon, 10 Nov
 2025 15:37:11 +0000
Received: from IA3PR03MB8408.namprd03.prod.outlook.com
 ([fe80::8d7b:218a:6264:2c39]) by IA3PR03MB8408.namprd03.prod.outlook.com
 ([fe80::8d7b:218a:6264:2c39%5]) with mapi id 15.20.9298.007; Mon, 10 Nov 2025
 15:37: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: 20fa4008-be4b-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iH8IuLcZd8gTib2KrqnLMUMJ+kuc6qZ5yjCIQDO6eBJN7rUUFWvOao20/iMW4H3RjHdbqq+ORxbYU22D9vj+G8Bpxo39sFU0HJe8ws7t/izJ85GWqovOhlwOTkpC3RFS8+7oJmisrKUv2ocgm2XMC7IaPCyvlX9id+G1M0CMnTQpxm5KWnUciOIp1saO9GJZ2CheuLMBYylSdhaw8yU9LVmeuXdmSGgNH8shVp95PO+vrS9FELd7hIFbUqa2DnrbVGCMxLLKsibBZ1KEMFrWPrFI+KXlANKtEpE1JMXWqXnwI2gpAscCciTGD0bPzHbZDUYrwH+7yBy5xGvFsxi9PQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W6K6aaajrW8VIEhu3i/NZpMFo2SqpymsLAqSBqEjiJc=;
 b=cCyvQny/22QLw15bGMSL+ejOD6p4TQLgYfNFzQDk5w+7paJQcsksXFe3sAA2hxOQxsO9U5dxguvvZ8jcXZYvre0nf4lBUyK4Ip1wjOOirLFumnh3RK1/YeiS0sp9JKP6LglN10ZEqfMNwUdNuIfPM2R14bZNXUMZeV+KKlKWOb5VeJgHjaOdbNI2boolyhBxwRPzGgFYDHN4CVZ+MR8EIQKgcmwMxB6Ryn/HEiM+QeAK0ng8pveGpEtnRxuEtW5b5wybhiYC3uFA9ttcXoJcou6mvxCc42THYz40fVH9gjfeAtaq156t+id9hjEY1EAGgLIdMhZiD3XlkZhVUvsM/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=W6K6aaajrW8VIEhu3i/NZpMFo2SqpymsLAqSBqEjiJc=;
 b=LDlA3UVXS9+UMn91JRfgUMxdyjL8S/posocAd1IhbagGToSLhSpipBLDIQYpWirERW0Xdo1qQuOylWZn8wP+d8J7geYnt8kW35X/c1iKYD8snro5pOzvLTyujPN/YQhp1doB9+h8bkv3t2L15CNvPCLsRK4r07ccj5fkF1TBFzQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Frediano Ziglio <frediano.ziglio@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Frediano Ziglio <freddy77@gmail.com>,
	Demi Marie Obenour <demiobenour@gmail.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v6] xen: Strip xen.efi by default
Date: Mon, 10 Nov 2025 15:37:07 +0000
Message-ID: <20251110153707.84879-1-frediano.ziglio@citrix.com>
X-Mailer: git-send-email 2.51.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0698.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:37b::11) To IA3PR03MB8408.namprd03.prod.outlook.com
 (2603:10b6:208:546::19)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA3PR03MB8408:EE_|PH8PR03MB7217:EE_
X-MS-Office365-Filtering-Correlation-Id: 1cbaab37-ebcd-49cd-4aea-08de206f03d3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?j6zs/uejU69gJD9sWqio6NKx3jnpEbO5LMZB0doL0xkud4+8f6UMQ5hepES+?=
 =?us-ascii?Q?zkKL5CodETYOxddgof/Z42FKlWmlf9fT68ncwqpqOeeCS1t1gL+M/qITbOuP?=
 =?us-ascii?Q?1EYcELKJUFOQgXhy5P290LMa3S71CoD3EHQD5Za9CC7RqJ+QsV9kIdGHnsR2?=
 =?us-ascii?Q?Cthgca/mK6mSDZ1786KPSMhVftjFzgTW8yxRbRBpRRsnO6gM2npdl+dIrtW6?=
 =?us-ascii?Q?53xKLVnsDQ9YTUDvQDno1seIMEPvYJHWS2f6+Seul/abzIiGkrNAOFtE4O6J?=
 =?us-ascii?Q?rxeqbeMvEkywSYgcRgjB/oFnXYUK0hrCjWNuqFxFLDFLQP2kAUYYXms/uH4M?=
 =?us-ascii?Q?Ajkf/gnFfE60utAa+1oFe0SCC/pNWPQQkVgHJ/3GieYTgp/XYjtBvd3w5wtf?=
 =?us-ascii?Q?RvVDTjPNubi6GZ4q1DvDq839OQwT477XnNIUcVW9+A0EnVBmRnrw0ME/UEuw?=
 =?us-ascii?Q?R//e/LZfjw8df+m1QcnwCJmJJAm78rF1YJanmyuFaDcMsDrzwAr2UiuaU/ZN?=
 =?us-ascii?Q?b/BlYtQRj+03FNDJjCHyx3swv39zkqcVpfi+fk3emhuWUojQVxXKW79XMifo?=
 =?us-ascii?Q?yFhdlY+k4KtPcHOFeqdGSP/M56Jrx+wEwherDOy/pjb/JYYZ73PunIQKfBgN?=
 =?us-ascii?Q?nz5UtXPGAl2Lv+xImmCYb4o3TENsCt8RZa6vU01TR4q7mu+GaSVw2W5OeKEh?=
 =?us-ascii?Q?+z47GpA64M8MVGaJRFa/QiNVsBZ+rAastB+1uyQzvQW551I4Gt+DnNGw/ldv?=
 =?us-ascii?Q?p3/S9YlEXIIzic67ylic2zfP5V7DTr2J33A83u+b14gEmg/laL3O93sVryDF?=
 =?us-ascii?Q?FEM7iFOZQIJVFvZc5sL498SB34s6QxNp+DU89oW+urf+4vGvQov1FYqQJAbG?=
 =?us-ascii?Q?chR+KwO/XC52WIfIZllYzsc+Qnk8bzs69+6R71p0Z7PbO9q7pbRJCL8ksJOv?=
 =?us-ascii?Q?AfsIiauCjFY34RiG0CovkKjx9BGwuhGLFv61lfxY4yZvhsjPg69Dg0IQVlxq?=
 =?us-ascii?Q?sK4YsMCfY5tFLfOxxpp8/Fvhv2rtdT+eptddUHqAL+c2Fb95na/9ApbFKsbd?=
 =?us-ascii?Q?IMYubEmb5p0OZSWKlBsBWpJzfkGBjPcRNGgJtKleMaJNp2wWTrTYoLLxRHYS?=
 =?us-ascii?Q?odd895tweIdTyIqV7VrwDJHbEsuBxHM3fNMUsm3kPHdt1PwyuX5HLNzTpyPP?=
 =?us-ascii?Q?4RURw1zu8VEmWpmGdt0ApUQtBIb+V6zca5zwV+/4gJUmbK3D3BVwP/+pD1eS?=
 =?us-ascii?Q?sXThnMmqhM2H0Ht7oTW+kZn1xTjRBbNZYE5IO5aarxCvWTlErEILwp6onTt5?=
 =?us-ascii?Q?IPrHvJx7GhPinwYYGjM/KPt/httuestze0E1joUc5emJRBumT4UB1Wpyh0EE?=
 =?us-ascii?Q?3jzb2dGd9BERlny/rV8SikVNlYXyQDYPr+p66q+M6+gOmxS8EOftodtHgljE?=
 =?us-ascii?Q?FFCslkgEB2URQ8DUYVlGgKU4fl1OIWEF?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA3PR03MB8408.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?QGjAn5icXD7fPz2xNZmRScQQ74GpKFSwaLDtxcmyvlFk3ZXWPIDCze54zh4b?=
 =?us-ascii?Q?Emk7j9FWIbd+xrbqyhM+zhZ/kD67GOnmdGIpDiE5JKx/OOmri02NSV0YqlYE?=
 =?us-ascii?Q?V6wKJ96VS9DPluVapErHC9mvT9CFhufVBHydyLlekxElBrgcNWKKGDZzV3D8?=
 =?us-ascii?Q?7LV14+jfFYhc4iV9X6qTvRA2QeT7OeCpp9U5xE/a9AzzIfy8wLuwfFULm4WZ?=
 =?us-ascii?Q?nc2/5P2HZDY4V+LvCCzawYuyYhrGDPz3f3Be27IdLf1wrcsXg8hDdaMOkPtE?=
 =?us-ascii?Q?5VPhAv7zxjMyuTvDz46tsAKgSEOLMJyHNoIgnNK+SlAlkUvFg50ZDidpoPTy?=
 =?us-ascii?Q?SH+4c3Ikf+5e0JBYANNQRKQgW4KNJEn9jkUqnXH9TxRPVBBBkhaulH/5uq5N?=
 =?us-ascii?Q?hIVr6vfWn9R6DfgIdEIlx3aluAzzdUTbStSVLWjdwX1YCfbEaQGYEsCEY8LG?=
 =?us-ascii?Q?Qdixs/h/1aSxxCc3RkF7ELI+so/oyGaNfk3rzxrmMKB2dOvNnnfUK7mIe2r9?=
 =?us-ascii?Q?WomwWk47yDG2i8887uAMxBFk0q+cXCCrHlv4OTUolZ3HjNQZK/4lbchjzeer?=
 =?us-ascii?Q?Uv1h52hKLAt9r/tNQ/DD3ttNDnHw4PsxvB9F+prVFZaC3NSdSIRinl+kyhfs?=
 =?us-ascii?Q?ZjlqufPmUCofa1exH9Qc9/qVaQvb9roBgadFPuXZZwb5sl/GARjRpv/brneT?=
 =?us-ascii?Q?c+2o78upnViJG42cDa5pt0wu1KrCdblJ+BpDPHNhm3icgWIYvBl4F0LcPw5D?=
 =?us-ascii?Q?L4BjVWN21spO6LNW4QkKurxHGu0NlqajwJHRGSr+mwkVauTsJl0HZGC74U31?=
 =?us-ascii?Q?W2eGN5ikEUmWklNLV8q8OIjD9glrtYOaROJAeNd4im8vTprqbZA2Ap0aDA3l?=
 =?us-ascii?Q?6G2YKM6rE7sLpCEYQNZs2q+4qPpN7W0MsU4JX5tMNwKVAaw0YiHD++ud452P?=
 =?us-ascii?Q?fsfd4fT0Y3Z8CeHn+ElaWk7k9pTgfaM3z1wWBAYqKcDX9bVAMvwcibMvcNG0?=
 =?us-ascii?Q?OyYCsKtBJGUzkluAZaHmW6TVbYAHrlPEl2N4pkxJqvMRcDoTp4FjptSwvVew?=
 =?us-ascii?Q?K+Yg+M39jXmhI74cpU8AuSWe1tYrnLmtBYhyqsRgGBaKRges3yyxV6NqISMR?=
 =?us-ascii?Q?dFEWn1zypaSsD0bKH0UZV0eS99Lgjy7jEcIETdrkEET0BwLj+hZWNMlwa1bz?=
 =?us-ascii?Q?cd+zfsvw06XXWyLJMdLbPW4Z8cnbOk5e/MsdjgEL7LEhBNKJZehRoIpFyjRK?=
 =?us-ascii?Q?0+g+naeiEfMMHfoPTn6oMmLqke6audrKjIEE+nFMHaG9rEkbJ25pc+92upEX?=
 =?us-ascii?Q?5gWzhxXWIovduVtrM5An0/YMI+Ylu9fqpl953HGwW9s0E7Mv9x3YY1RJNCkD?=
 =?us-ascii?Q?e3jFhj9y+3pBMQdVlhy1xT0y2OvceDIn364+ZH5PpK9JlBCgPn3KNHWpSuAG?=
 =?us-ascii?Q?ySkBmT2l1Z/OYNmo68c43ysdj00Jj3E2BTsHkfDyc+mGphd1TgIax+eJ9w+9?=
 =?us-ascii?Q?7zNFTUkjfp9xyFNsrhZIlz4OnayJ2Rq0aNxz2VXptTd8rfA6kR9liW73YveG?=
 =?us-ascii?Q?Q/fqkFTfBAVr7jIku+esuTb4N+9ea1uhe0k1YCww/qf1ij8X5IkerpzgNF1A?=
 =?us-ascii?Q?Lw=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1cbaab37-ebcd-49cd-4aea-08de206f03d3
X-MS-Exchange-CrossTenant-AuthSource: IA3PR03MB8408.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2025 15:37:11.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: zT1FeLIIEYDwoRofcF7p3++ZFT7tGO3n8hbUyEuO/xwOXpsMnvwB3HWm+LDS4hLMbAUnx6x+qTHwgwkUxYM2alhURRVypA+/23DesU8poQM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR03MB7217

From: Frediano Ziglio <frediano.ziglio@cloud.com>

For xen.gz file we strip all symbols and have an additional
xen-syms.efi file version with all symbols.
Make xen.efi more coherent stripping all symbols too.
xen-syms.efi can be used for debugging.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
Changes since v1:
- avoid leaving target if some command fails.

Changes since v2:
- do not convert type but retain PE format;
- use xen-syms.efi for new file name, more consistent with ELF.

Changes since v3:
- update documentation;
- do not remove xen.efi.elf;
- check endbr instruction before generating final target.

Changes since v4:
- simplify condition check;
- avoid reuse of $@.tmp file.

Changes since v5:
- avoid creation of temporary file.
---
 docs/misc/efi.pandoc  |  8 +-------
 xen/Kconfig.debug     |  9 ++-------
 xen/Makefile          | 19 -------------------
 xen/arch/x86/Makefile | 11 +++++++----
 4 files changed, 10 insertions(+), 37 deletions(-)

diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
index 11c1ac3346..c66b18a66b 100644
--- a/docs/misc/efi.pandoc
+++ b/docs/misc/efi.pandoc
@@ -20,13 +20,7 @@ Xen to load the configuration file even if multiboot modules are found.
 Once built, `make install-xen` will place the resulting binary directly into
 the EFI boot partition, provided `EFI_VENDOR` is set in the environment (and
 `EFI_MOUNTPOINT` is overridden as needed, should the default of `/boot/efi` not
-match your system). When built with debug info, the binary can be quite large.
-Setting `INSTALL_EFI_STRIP=1` in the environment will cause it to be stripped
-of debug info in the process of installing. `INSTALL_EFI_STRIP` can also be set
-to any combination of options suitable to pass to `strip`, in case the default
-ones don't do. The xen.efi binary will also be installed in `/usr/lib64/efi/`,
-unless `EFI_DIR` is set in the environment to override this default. This
-binary will not be stripped in the process.
+match your system).
 
 The binary itself will require a configuration file (names with the `.efi`
 extension of the binary's name replaced by `.cfg`, and - until an existing
diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index d900d926c5..1a8e0c6ec3 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -147,12 +147,7 @@ config DEBUG_INFO
 	  Say Y here if you want to build Xen with debug information. This
 	  information is needed e.g. for doing crash dump analysis of the
 	  hypervisor via the "crash" tool.
-	  Saying Y will increase the size of the xen-syms and xen.efi
-	  binaries. In case the space on the EFI boot partition is rather
-	  limited, you may want to install a stripped variant of xen.efi in
-	  the EFI boot partition (look for "INSTALL_EFI_STRIP" in
-	  docs/misc/efi.pandoc for more information - when not using
-	  "make install-xen" for installing xen.efi, stripping needs to be
-	  done outside the Xen build environment).
+	  Saying Y will increase the size of the xen-syms, xen-syms.efi and
+	  xen.efi.elf binaries.
 
 endmenu
diff --git a/xen/Makefile b/xen/Makefile
index ddcee8835c..605a26c181 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -493,22 +493,6 @@ endif
 .PHONY: _build
 _build: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 
-# Strip
-#
-# INSTALL_EFI_STRIP, if defined, will cause xen.efi to be stripped before it
-# is installed. If INSTALL_EFI_STRIP is '1', then the default option(s) below
-# will be used. Otherwise, INSTALL_EFI_STRIP value will be used as the
-# option(s) to the strip command.
-ifdef INSTALL_EFI_STRIP
-
-ifeq ($(INSTALL_EFI_STRIP),1)
-efi-strip-opt := --strip-debug --keep-file-symbols
-else
-efi-strip-opt := $(INSTALL_EFI_STRIP)
-endif
-
-endif
-
 .PHONY: _install
 _install: D=$(DESTDIR)
 _install: T=$(notdir $(TARGET))
@@ -535,9 +519,6 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi; \
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T).efi; \
 		if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; then \
-			$(if $(efi-strip-opt), \
-			     $(STRIP) $(efi-strip-opt) -p -o $(TARGET).efi.stripped $(TARGET).efi && \
-			     $(INSTALL_DATA) $(TARGET).efi.stripped $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi ||) \
 			$(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \
 		elif [ "$(D)" = "$(patsubst $(shell cd $(XEN_ROOT) && pwd)/%,%,$(D))" ]; then \
 			echo 'EFI installation only partially done (EFI_VENDOR not set)' >&2; \
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 407571c510..270800694c 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -228,12 +228,15 @@ endif
 	$(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
 	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
 	      $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
-	      $(note_file_option) -o $@
-	$(NM) -pa --format=sysv $@ \
+	      $(note_file_option) -o $(TARGET)-syms.efi
+	$(NM) -pa --format=sysv $(TARGET)-syms.efi \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map
-ifeq ($(CONFIG_DEBUG_INFO),y)
-	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
+ifeq ($(CONFIG_DEBUG_INFO)_$(filter --strip-debug,$(EFI_LDFLAGS)),y_)
+	$(OBJCOPY) -O elf64-x86-64 $(TARGET)-syms.efi $@.elf
+	$(STRIP) $(TARGET)-syms.efi -o $@
+else
+	mv -f $(TARGET)-syms.efi -o $@
 endif
 	rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
 ifeq ($(CONFIG_XEN_IBT),y)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 10 15:38:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 15:38:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158496.1486846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vITyY-0003Hh-LG; Mon, 10 Nov 2025 15:38:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158496.1486846; Mon, 10 Nov 2025 15: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 1vITyY-0003Ha-IM; Mon, 10 Nov 2025 15:38:38 +0000
Received: by outflank-mailman (input) for mailman id 1158496;
 Mon, 10 Nov 2025 15:38: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=thpE=5S=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vITyX-0003HS-37
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 15:38:37 +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 51e0d5e4-be4b-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 16:38:36 +0100 (CET)
Received: by mail-yw1-x112f.google.com with SMTP id
 00721157ae682-78677ff31c2so26906457b3.2
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 07:38: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: 51e0d5e4-be4b-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762789115; x=1763393915; 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=f8zd3fGJAuArDUHDL5NCKT0rGrwvyC4AhZ8coX0EP6Y=;
        b=I/6PIwHtI1M1qCLkqwKmmdFpeW8zFx4hC+8IzC/c4Ewfb+8fTZ9oxlIarrDScB9wHx
         /gDSRTpBqbne/5aS9ugeaSL2XrzBJBrcwz5u3EUXiIZo+VZlMn9P4u8pV8Hkut0cTX5k
         Vq+EMzIkdNIlb72QaIdR0lY6cdgdhLh15Mcx3J4yKcryMF+SFYrvaNrlEjV2hpMFoBy5
         JuD3PmKnC6Xo/O+LrCOE4O99ea+m38mkCSb0b78GfQAv9woAVxyTFfKHnAOxn1uk/tbx
         kjBC46vX0oMfcMkqa1PySwgwGcOKz+Y/KBCargYzoJoCJ/Xmvj7GshHTQHEf1HV8g6NE
         2iTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762789115; x=1763393915;
        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=f8zd3fGJAuArDUHDL5NCKT0rGrwvyC4AhZ8coX0EP6Y=;
        b=SBWXaZAPlivOXjOMj4sTMm2r6KzeQi9Wt7xGd77v8KTHquaSF64Hr4e2yOkeayzLLO
         hs6UljTDOp+BuIMoAAgmxa6NSUv7Q9pkVItU4XW2o/QAJ9YcqnXWLuNfznaN/hMhNFPt
         +96vmeZwrBdsMZL6hq2g5LDYFqT6O2Vr+jExTeqUZkY36GeiMuhT5ZrtmqrfJGZsyRiw
         4zrWBkLZREdSUQKYURmbDTWZ8t6WshrnMnLomoYBf4s1vlzsafS4FyPFTFD5nUFN7QWP
         4y7K3n22JPA+eCAsmGfngv8a7/nB5mkiqiLvnw4eWKt3YLhPvKYhdDu/iX7ZGqfX50k/
         vbOw==
X-Gm-Message-State: AOJu0YxioHtEdzo8gsIkSXsEpzDkNrNzGpkpQsMHnYbaYSY5birL/JWr
	FHAxe0dI+Lrx+7wRvNSfYu8zHw9PNshDsupEBAyjwQ1V0BriWjmm2vHRet53HheUe7F+rz3uvzn
	8RY+LRnl/lpeSqB7A4Yk0Weq4ely5WbI=
X-Gm-Gg: ASbGncstonmFnuPvqxqrsNTZMAUsxouYbwl4+IwDuGf827ghjhASmG2beawe3EliND7
	3LN8dOB/pK/GaXJ9+Lm4J9t5Z5ZJzoLiL9b/2mPohQTLfiJP53dohxv1gkTuAXU/MW2rK/f1iAk
	ZSo/KigoUgnpQgD9kokv4W8tV3SYPk9HyS6j6lEqMs5n3MlCnfK+nBmQrV24ctQJ8Cjaajh2nXi
	hWy7P0ioNlxyKB7AoWN2GZsa+7o9TYhB5cmtnaI8Tz5qrpZ+Aa265qHcugv
X-Google-Smtp-Source: AGHT+IFsaCgzfwJjyilF4FaDx1pE7BWmXzMblBoyQ+DWgSsDWm6GyYsXKNJ/pJui+EXILvMI07iVHFad0eRBdm74fxY=
X-Received: by 2002:a05:690c:c00b:b0:784:f14d:6946 with SMTP id
 00721157ae682-787d5470dccmr59633587b3.55.1762789114719; Mon, 10 Nov 2025
 07:38:34 -0800 (PST)
MIME-Version: 1.0
References: <20251110153551.84813-1-frediano.ziglio@citrix.com>
In-Reply-To: <20251110153551.84813-1-frediano.ziglio@citrix.com>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Mon, 10 Nov 2025 15:38:23 +0000
X-Gm-Features: AWmQ_bm_W_U9a2rhWaDUsw6H9UCR14UoBfP3Kg6Y5CmGxZpNhxa5ZMCNO7eMHYs
Message-ID: <CAHt6W4fkMT0YMjptxxpCyqVAU=VwF8HY2M=iOu=CKqx_A8VprA@mail.gmail.com>
Subject: Re: [PATCH v5] xen: Strip xen.efi by default
To: Frediano Ziglio <frediano.ziglio@citrix.com>
Cc: xen-devel@lists.xenproject.org, 
	Frediano Ziglio <frediano.ziglio@cloud.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Demi Marie Obenour <demiobenour@gmail.com>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset="UTF-8"

Sorry, I sent version again by mistake

Frediano

On Mon, 10 Nov 2025 at 15:35, Frediano Ziglio
<frediano.ziglio@citrix.com> wrote:
>
> From: Frediano Ziglio <frediano.ziglio@cloud.com>
>
> For xen.gz file we strip all symbols and have an additional
> xen-syms.efi file version with all symbols.
> Make xen.efi more coherent stripping all symbols too.
> xen-syms.efi can be used for debugging.
>
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> ---
> Changes since v1:
> - avoid leaving target if some command fails.
>
> Changes since v2:
> - do not convert type but retain PE format;
> - use xen-syms.efi for new file name, more consistent with ELF.
>
> Changes since v3:
> - update documentation;
> - do not remove xen.efi.elf;
> - check endbr instruction before generating final target.
>
> Changes since v4:
> - simplify condition check;
> - avoid reuse of $@.tmp file.
> ---
>  docs/misc/efi.pandoc  |  8 +-------
>  xen/Kconfig.debug     |  9 ++-------
>  xen/Makefile          | 19 -------------------
>  xen/arch/x86/Makefile | 16 ++++++++++------
>  4 files changed, 13 insertions(+), 39 deletions(-)
>
> diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
> index 11c1ac3346..c66b18a66b 100644
> --- a/docs/misc/efi.pandoc
> +++ b/docs/misc/efi.pandoc
> @@ -20,13 +20,7 @@ Xen to load the configuration file even if multiboot modules are found.
>  Once built, `make install-xen` will place the resulting binary directly into
>  the EFI boot partition, provided `EFI_VENDOR` is set in the environment (and
>  `EFI_MOUNTPOINT` is overridden as needed, should the default of `/boot/efi` not
> -match your system). When built with debug info, the binary can be quite large.
> -Setting `INSTALL_EFI_STRIP=1` in the environment will cause it to be stripped
> -of debug info in the process of installing. `INSTALL_EFI_STRIP` can also be set
> -to any combination of options suitable to pass to `strip`, in case the default
> -ones don't do. The xen.efi binary will also be installed in `/usr/lib64/efi/`,
> -unless `EFI_DIR` is set in the environment to override this default. This
> -binary will not be stripped in the process.
> +match your system).
>
>  The binary itself will require a configuration file (names with the `.efi`
>  extension of the binary's name replaced by `.cfg`, and - until an existing
> diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
> index d900d926c5..1a8e0c6ec3 100644
> --- a/xen/Kconfig.debug
> +++ b/xen/Kconfig.debug
> @@ -147,12 +147,7 @@ config DEBUG_INFO
>           Say Y here if you want to build Xen with debug information. This
>           information is needed e.g. for doing crash dump analysis of the
>           hypervisor via the "crash" tool.
> -         Saying Y will increase the size of the xen-syms and xen.efi
> -         binaries. In case the space on the EFI boot partition is rather
> -         limited, you may want to install a stripped variant of xen.efi in
> -         the EFI boot partition (look for "INSTALL_EFI_STRIP" in
> -         docs/misc/efi.pandoc for more information - when not using
> -         "make install-xen" for installing xen.efi, stripping needs to be
> -         done outside the Xen build environment).
> +         Saying Y will increase the size of the xen-syms, xen-syms.efi and
> +         xen.efi.elf binaries.
>
>  endmenu
> diff --git a/xen/Makefile b/xen/Makefile
> index ddcee8835c..605a26c181 100644
> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -493,22 +493,6 @@ endif
>  .PHONY: _build
>  _build: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
>
> -# Strip
> -#
> -# INSTALL_EFI_STRIP, if defined, will cause xen.efi to be stripped before it
> -# is installed. If INSTALL_EFI_STRIP is '1', then the default option(s) below
> -# will be used. Otherwise, INSTALL_EFI_STRIP value will be used as the
> -# option(s) to the strip command.
> -ifdef INSTALL_EFI_STRIP
> -
> -ifeq ($(INSTALL_EFI_STRIP),1)
> -efi-strip-opt := --strip-debug --keep-file-symbols
> -else
> -efi-strip-opt := $(INSTALL_EFI_STRIP)
> -endif
> -
> -endif
> -
>  .PHONY: _install
>  _install: D=$(DESTDIR)
>  _install: T=$(notdir $(TARGET))
> @@ -535,9 +519,6 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
>                 ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi; \
>                 ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T).efi; \
>                 if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; then \
> -                       $(if $(efi-strip-opt), \
> -                            $(STRIP) $(efi-strip-opt) -p -o $(TARGET).efi.stripped $(TARGET).efi && \
> -                            $(INSTALL_DATA) $(TARGET).efi.stripped $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi ||) \
>                         $(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \
>                 elif [ "$(D)" = "$(patsubst $(shell cd $(XEN_ROOT) && pwd)/%,%,$(D))" ]; then \
>                         echo 'EFI installation only partially done (EFI_VENDOR not set)' >&2; \
> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index 407571c510..51d8084693 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -228,17 +228,21 @@ endif
>         $(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
>         $(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
>               $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
> -             $(note_file_option) -o $@
> -       $(NM) -pa --format=sysv $@ \
> +             $(note_file_option) -o $(TARGET)-syms.efi
> +       $(NM) -pa --format=sysv $(TARGET)-syms.efi \
>                 | $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
>                 > $@.map
> -ifeq ($(CONFIG_DEBUG_INFO),y)
> -       $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
> +ifeq ($(CONFIG_DEBUG_INFO)_$(filter --strip-debug,$(EFI_LDFLAGS)),y_)
> +       $(OBJCOPY) -O elf64-x86-64 $(TARGET)-syms.efi $@.elf
> +       $(STRIP) $(TARGET)-syms.efi -o $@.tmp
> +else
> +       mv -f $(TARGET)-syms.efi -o $@.tmp
>  endif
> -       rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
>  ifeq ($(CONFIG_XEN_IBT),y)
> -       $(SHELL) $(srctree)/tools/check-endbr.sh $@
> +       $(SHELL) $(srctree)/tools/check-endbr.sh $@.tmp
>  endif
> +       mv -f $@.tmp $@
> +       rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
>  else
>  $(TARGET).efi: FORCE
>         rm -f $@
> --
> 2.43.0
>


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 15:49:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 15:49:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158518.1486856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIU8v-0005Cn-Mb; Mon, 10 Nov 2025 15:49:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158518.1486856; Mon, 10 Nov 2025 15:49:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIU8v-0005Cg-K3; Mon, 10 Nov 2025 15:49:21 +0000
Received: by outflank-mailman (input) for mailman id 1158518;
 Mon, 10 Nov 2025 15:49: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=7fAs=5S=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vIU8u-0005Ca-U7
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 15:49:20 +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 d16032ab-be4c-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 16:49:19 +0100 (CET)
Received: from DM4PR03MB7015.namprd03.prod.outlook.com (2603:10b6:8:42::8) by
 BL1PR03MB5959.namprd03.prod.outlook.com (2603:10b6:208:31a::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9298.16; Mon, 10 Nov 2025 15:49:15 +0000
Received: from DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9]) by DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9%3]) with mapi id 15.20.9298.015; Mon, 10 Nov 2025
 15:49: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: d16032ab-be4c-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hlJtHKxBCE8hg7J4cdIThyY6htL2BzmP1ZRTEHObWCKncjQMHWLtXBteGHLZpWvQMTqgFakT/Cc/xPLjqW3nOwYU66EmxYzW5RCUCGwB2U9k73jyARVgPnGGEP107DlTF9m5oss6TGNXG6zX8lW4e3hwZB1wewQf5SdQwFIOQwJDXeICX/yBO14opYQw8x7DYhNUW2BzbIdgw8u+0kV84+dWZ+hpZUKhpVIxrM5apoqz/B3jA3TkpJqJUukTLtTJtAMlQH2/mGWgtG1BzKbzzxiwMypLFV3TG9J7fVOHskIuiGLTdfS6llxdSdMwh3xvhQTd1mVeJPCejws5fZNXYQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=atyCoqZBbcgHr6/1iIcTBUwS1SAKosiw0NtG+XfMZhk=;
 b=SUdEOXNE4eX4OIYAoZ3sEB6QaVeZv43C/OEx63KCW4vz5cmU449WKMF7PaySPHVE6yS3wBn0+JIeVYGcaAWDgZXwJNv4g67dODqGj277UWf9rK6bJ+PYZxZn6z8msG108wAorBsYzqCo2VOSFIkg3sGvxo5IadX9muUMBHPxAFYE0Zib0gPQRW0rpbEH/JJoWEyQLjJc8YsoZxO7Go2bOHqoBJJdQC45aDZ1A9Yi1CAs2Tp1UizmOQIhIVm6oRkhjfOlz1FYS7iBc2JItR9ShuLeA9vT7zY5hKtGQpbE5lHa9J3+udCrh7ftu5RldKGrqS4r/rnbxMTsI5GEvbsXAA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=atyCoqZBbcgHr6/1iIcTBUwS1SAKosiw0NtG+XfMZhk=;
 b=kMd11bOw8nPpw9rNmgdhhXYTwm7F/eU1mf/Pp2Efoj3qfhGyGEOyB457jWhfXkpP1wbmlJk/4svgtIF4zIhVH6u3Gabes3zHvf61vVJKJe4pdEYMek6EezHoBplVo5IKqi/d0QU+ek/b46KcFq9o0YbfUUTvQeiTbJByEH6gDj8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <456a6e0e-e722-4b19-b2f7-ab9b58419063@citrix.com>
Date: Mon, 10 Nov 2025 15:49:10 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: preparations for 4.20.2
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>,
 "community.manager@xenproject.org" <community.manager@xenproject.org>
References: <0aa341eb-5662-487a-a9f6-713932d2f6ca@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <0aa341eb-5662-487a-a9f6-713932d2f6ca@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0557.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:33b::13) To DM4PR03MB7015.namprd03.prod.outlook.com
 (2603:10b6:8:42::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR03MB7015:EE_|BL1PR03MB5959:EE_
X-MS-Office365-Filtering-Correlation-Id: 5d518e5b-77c2-4492-9d9b-08de2070b2e9
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?RGw1UmlVeE55MndPZnFvK2oybnV5bGw3NkpDSXF1bHhhc2NIYXhmdm9Vckxw?=
 =?utf-8?B?cnd4TUZOUHNtc1k1Q083UGIwWHV2ZC9PZDFDSHRQckFBeWV1YzNhZkl1YmUr?=
 =?utf-8?B?ZHpSNXROUy9BNndDaFQwUE1WTlB0ZGVqcVBKQVBmZkQ1eXNvOUdobExFTjlY?=
 =?utf-8?B?cnFaek9IQlNrNE0zYXlZLzdzVlV5cU1NMVMyNFBqbWk3RWF5ZWNGczFVeDRp?=
 =?utf-8?B?aGNCbXRpKzNQK2J1bXZFQ0JVS04wNmtiTTZlSGJzOHFEcTZQWmUwRXpsc2sx?=
 =?utf-8?B?dVprSG8vSS9xaDVqb2dlUkVydmZRUm4zdXZrSU13MWpNSEYwVUxNVzhLZzZQ?=
 =?utf-8?B?VFVPdnlaK0dBdHZFbWVvNXFDcERxdjdJd0ZBWCt4RkgvU21XRnNtOUZWMEc4?=
 =?utf-8?B?UnVvOWdhWDNuTHFaSGF0c2JFWjZwbkZDMWg4WEI5TzJLRVZpeXI3K3RGTlZv?=
 =?utf-8?B?UzVwRk5JN0JBQzhIK3FYTnRFUlQ0dlZEQXBub1BiaHAyZ1ZsU3RSNUN1SVVU?=
 =?utf-8?B?T0dxK0NiQXNiZXhacGdKSkFOT1pmTkF3dFY3NEZxdzYvYlMxTXo0VUNhWXMz?=
 =?utf-8?B?dk5ESEs4cFNwWlI1Vmp0bExDVThzbDhBcnNTQ0I2Z0NxNzVXdzRkMkczTzVJ?=
 =?utf-8?B?dm9qWnpQVDNYTzJzWlA4b0JTSEk2bGFnNXdaTkFXT2Z5aHRhajBCc1poU2ph?=
 =?utf-8?B?NUYxNk1sRG1RTHpaTFNkR0VQaU8xcEV1M2NzbzNsemhTV1ZFNGdXV3VZS0dv?=
 =?utf-8?B?b2F1TnVBc2NPbDhZZmpuUmw4WW5jQm8vY096K3hLbXFQS2F6bnFEWHc2V0RJ?=
 =?utf-8?B?SDVzNFdZLzJyS1pQSVFYYUU1VXNHSlozQzkvZC9YSWRrcTJwWjgyTmxIMk1T?=
 =?utf-8?B?RzJTenBMbmhhM2YrYWw5Z1dUT3N1YmRFN0JBc0IrT2h5QzR2bmZtUjljMDRD?=
 =?utf-8?B?aGR5RzNkQ0pubjRBc3Ird214dHQwbnVENExCV3Z5cHJWSzBYQVhTTTZOeEtY?=
 =?utf-8?B?SGxsZTZMMUJ1aFdSc2Y5QkxuakQ5L1RFa05DNkZJVXNhTGFVUlQ3RGd1eUts?=
 =?utf-8?B?YlNsZ0s5UCtiVnpZVFI2NXowSHJ4OUxnZGRUdEpONzJzV0hVSHZScjJMN3Bi?=
 =?utf-8?B?TVNwSVN3byt3ODI1SExFQXRRcThCZFcvZTBXSnJWRnZRMG1hTS8yWURodGI3?=
 =?utf-8?B?cXU4SW1CQVM4NXprRlhVblBKYU5zRHVHY2JpL2JaUzNnNWxLV0VSWG9OOTh0?=
 =?utf-8?B?VHphK1dWQ2VKZzhPeURrRitleGVZRDYzRldvY0cyaXEzd2pnT1FaaWZPakl6?=
 =?utf-8?B?OHlFWm5DZGdtY0RKVTkzRHBTcW5naUxpRmN5MG05d3MrVWdxaGcrYjN2Vks0?=
 =?utf-8?B?VG9CYTZud0tvTndnWktXRStWVU9MVE9ONmFhNlhJTklnUmpDU2txV1krR3ZL?=
 =?utf-8?B?MlpMZFZLOTVEdWZEbVpLakg3YzBZalhUL1VHL2lGa2puNklBSWJmUExOeEpw?=
 =?utf-8?B?S0xVaDRiZitJeHJ0V2I0L21YV2t0enptQmdKUzJDSEoxQS9zRHRQYmN2U2Mv?=
 =?utf-8?B?TE9SNUZVdC9QZWQ3WXhZVmpWRVYrTTJKMEhpSHhuTjNIayt3NnkrcTZBTzBT?=
 =?utf-8?B?MXZENFUvcU5BUEJXR3lCY29LV3E0bVQxVWRUVTh0MjBGdWxSRGttUEhMc09G?=
 =?utf-8?B?dElRRXVJMUoyQktHZlB6NjE4ZGYxazZiNGFmMVJJdEs1RXEwR1crTEJYY0Rl?=
 =?utf-8?B?NEd2ckQvZWJhUnFrNEtxamhIelM1NGVvbWNGeGVHZEZ6bk9FVndja3Yyb3li?=
 =?utf-8?B?Ym83aXEzUENHMUVnT2hXcWt1RTBvdSs2WHgvMGQ2a3pxT2g1RnU5MkEwb2R1?=
 =?utf-8?B?eW56R1EzNC9zRFJpZUNsV3dQeXNxNFRWTENNK3pIL0ZUN2UrNDVlZll6QkpY?=
 =?utf-8?Q?sWaBDXfqAs1ThG1Rt9YRTzIUfIgJU4X6?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR03MB7015.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?YjRtSjRGWnhZMTVRMnpLSklOQ2V4RDAzTlRvMWJPSDlFTW42d0FaSGRVMzUz?=
 =?utf-8?B?L1U1WHpYMC9yTWdEbXJaMGFPSk5kUHN2RTlhTTg2RzhuNDBRRzZ4b3BwUDlu?=
 =?utf-8?B?eGhGb2dzWTVWenZCMmtzOVZwNzdZdk1yek44VE5JRjZvZ3V5dWJBSktlQmp0?=
 =?utf-8?B?STM0ZGxTUFBmWkN6TCsyYVNNN0orYjQwVEh2WmN6TElzY24xMWZkZC9ER29x?=
 =?utf-8?B?aWlNaTRIamNmaVA2Nm9jbnV2M2l0c0YyNnZrbU9JT1kyTFVTNUtDbWtDcHFr?=
 =?utf-8?B?a25VTUtUdHhFZ2NCaE55L1RuSC9JYkNmc21yek14c2hGUmRBK1JRdXA5OG01?=
 =?utf-8?B?dkRhT2FId3EyRENVYnVRUzdiQkMvVXBVWHp5WVpKNU9xeWNoZDNlQU5HYjhJ?=
 =?utf-8?B?WlJKRWYwdVlxbFpRdmlnUmlGdVliV1NMb0l0L1BOYS8zdzBOREJOYnE4QkRH?=
 =?utf-8?B?ekZrMUQ5OFMwV3RwS1ltUjFZSHc1VlR6TmV5T1dHQ1RvTVpReStNOVR0V2Z6?=
 =?utf-8?B?QTVRaDMrZTRjaUduYmkyaWlDZ0txYWg2VWVYWVM3aW1EVDFhQXliZXlCcnVl?=
 =?utf-8?B?NzRucVhDWjBlYmdwU08vSUl5OVJLR2VXSW8wUUgySlA3dWF6cTlQMHBVYlVH?=
 =?utf-8?B?WGNOTEM5YWd3WDVCNmY4d3VLdkQvTEpMd29zeGJpeXV2ejF5VkY4Q1djYUYw?=
 =?utf-8?B?MmsvWjZGQlFMNkZhbTZJRmxrc0dwemh1QjZ0cGk1RTh5SFFKN0VhKzl1MjJr?=
 =?utf-8?B?YUUrVER3Y1Nia0M4ZlNpV2VlUDc2QTJyc3poMXJ6MFdTWDJPNEF6U0hFUmFi?=
 =?utf-8?B?Y1RoNFQxUGd5REFVbHJJNEJrd1pZTGJSVVQxeWdxMlBjMUprMUFGaFpUN0h6?=
 =?utf-8?B?SVJ4cEluYjhLWEh5a2JuV2VlSklDclM3ZFBDaGJaWnYyRm95SDRSU1FiKysr?=
 =?utf-8?B?Q3IxeENKU0NZWlp0UWhqM1RRTGFPTkQyUVVHZkRPRmFmSnlaQ3dBRTNQRDRJ?=
 =?utf-8?B?eXEveHFxYnJIQzJvTzhuT085UnRQbEpHc3lvQmxPcXI4eFJpck1DMVhhQzVF?=
 =?utf-8?B?NUU1NWVKZkp0eEJIaTFoVlc3ZUVBYW1idmZLTExRWUdzZTY0Q2V2R0w1Sk43?=
 =?utf-8?B?eFNoa2x1c3FUeXllU3hGTi84SUJoMEQ5Z3BuQWo3ZXM1N3lIVXptN0FsdjEw?=
 =?utf-8?B?NFE0M3V4alUrMzRBZEJUMDlkM0l4QW40ejF5TGgxKzNpcDFTdXpUbGVvOXZm?=
 =?utf-8?B?T2NJTEhkNEtnVzVxUnVWMjIwVnM0WFJka1ZjTXREL3ZWc3hBUFpsZzFwMWRr?=
 =?utf-8?B?NVhKZXVkU1JsWTk0LzVnZEdRM2Y5Vm5JR1cxdC9NZnkyQktUdno5QjZQSUJS?=
 =?utf-8?B?bkpieHM0dzdpTmtPRWgwdnJGSGs1WnJwMTZiMVQ4enpkUjNUMDlUS0RDWWs1?=
 =?utf-8?B?bWhWaUJsRng5ZUlxS2kyajJldTdVZDBqbTZCOVp5bk95MXZoQkxrakJKTHpX?=
 =?utf-8?B?UXA5ZDBUUlYra2E5Vlh2ei95SzFDRWxtVzNWd0JTWkU4R3owV2c5SFllYlhV?=
 =?utf-8?B?UlFmeXJDc3NoTmhpQWMwa2N3dkxEMlNnNkZiY01raTZqS3JGdGtrUExOVndi?=
 =?utf-8?B?WnNUeFZYVXE3R2VOZ2hKYUVjQ1pWb0w3ZUFQYWs4bnQvelpxSG9uYUd5b2Qz?=
 =?utf-8?B?aU9SNXRvMzRyOXpnQUk5Vk1PUlhUM0dqMUFWU2JLek9VRnlKQytUUXpCV3JP?=
 =?utf-8?B?MHJ5REpRSVN1SDFRSlZPN2VrUHZ4NzFTTm5zODNDNXpuRi92NlBZVnhjQlhp?=
 =?utf-8?B?a2F0TmlmVUdRdExsd0l0M1phelR6anJiTm5waHljMjB3Wld4SncxUk5vRWJD?=
 =?utf-8?B?bFg1Y2VaZDlVM3NFbVpCNlUxalNqTSsvY0k5OGt2UCtiUTFEOEE2RnN1UEs1?=
 =?utf-8?B?blRwNmVya1lXR2JlWGVveERreWo5Wkt0UWpmMm5FUmdTWk9SWGdla1BiWUJv?=
 =?utf-8?B?SDY3SlJPWXV2UGV4MU4zZEZWZ1B6S1A4Q2ZrMUVHUVVrZFVSWEpZVC9YQmVB?=
 =?utf-8?B?QlAyM28xbysxeEl0ZW11b2RtVmZ5eXorbHkrbUlzOGF1SmdJS0Q4OWx6OEN1?=
 =?utf-8?B?VDROK2tNVWZNM0ZPTjZqQmQxWnJMMDQ4N1hGdlRQYmNlb0FSekwzZU9sNFRQ?=
 =?utf-8?B?dFE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5d518e5b-77c2-4492-9d9b-08de2070b2e9
X-MS-Exchange-CrossTenant-AuthSource: DM4PR03MB7015.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2025 15:49:14.9084
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: VJq8jyuFgRHm/bquefRBwmX1NxEgB3yRsq8QyDLkAeheK8JemwLq+wWwFQf1XUcPXoKG9QtmRGartg0a1WYuTVtTyXYe2eg1xy4ZCEl00ds=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR03MB5959

On 10/11/2025 3:08 pm, Jan Beulich wrote:
> All,
>
> the release would have been due over the weekend; it slipped my attention. Please
> point out backports you find missing from the respective staging branch, but which
> you consider relevant.

Looking at the XS patchqueue, the only obvious one is:

b7838d12bd1a - tools/libxc: fix xc_physdev_map_pirq_msi() with PCI segments != 0


We did also backport migration superpages (50baf2d9f7bb) but I suspect
that's too much of a new feature for your liking.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 15:53:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 15:53:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158530.1486865 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIUD6-0006u2-7E; Mon, 10 Nov 2025 15:53:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158530.1486865; Mon, 10 Nov 2025 15:53: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 1vIUD6-0006tv-4P; Mon, 10 Nov 2025 15:53:40 +0000
Received: by outflank-mailman (input) for mailman id 1158530;
 Mon, 10 Nov 2025 15:53: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=Ugol=5S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vIUD4-0006tm-WE
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 15:53:39 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6b15f0dd-be4d-11f0-980a-7dc792cee155;
 Mon, 10 Nov 2025 16:53:36 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b64cdbb949cso548678266b.1
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 07:53: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
 a640c23a62f3a-b72bdbca75bsm1154852566b.14.2025.11.10.07.53.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 10 Nov 2025 07:53: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: 6b15f0dd-be4d-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762790016; x=1763394816; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=v6YacTpvcvzIyAZEz+zA694UUn9SpWUXLp8JDTFmmwg=;
        b=HJNfyjZVuiDVIBpOhwtPVAAY5vvxANqKrbpXgXvXZKExL3qCAgZYnVgEoDPd8u9TiG
         dWoAxwRfg4Ne5z9KnI3VAHnoTqELzXDEicygMf0eOTI3JxAjG1+5zUqpZi+U4g2PQpyl
         c0SExqv5tOLWrhRf/enaEUgeJEGYKKJj4gGiwY07NvVGw6pwN5+QgvfuXsse0Z+lyvyE
         2i+R7RFVuZSqDezP9Lxnchy8JX2mNfRIUxigvd0vJhWHopcQmDQst/gbmUvA0aPMLpje
         MMJ70/HjxMVWi9fxI1MQvalI3ji7v5Eo2s83n9WmK9R6fbHnLImQZnoP6nUxTNIqJQ0V
         j1tA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762790016; x=1763394816;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=v6YacTpvcvzIyAZEz+zA694UUn9SpWUXLp8JDTFmmwg=;
        b=spPB6/i6zrPzT8NAuu3jnMP9cb4ONgW6zKPHtQTugrswktpu1QNmtg3lZw/ppPue3Y
         FhRif+Wpwbr7PSEw573hvX56XHI7ZugAfa/pLAYCSF03Xk2cbV5RDQCw7v5RLnHE7DNo
         h02Av03R7MOAeECtXS1OFOKlWNX824pSeSaGyx5WU0nskmfL/dtzw4/j8uIE6gIknI43
         2p1SZxkDv0ZFwKNuJmxvJP8xTwTJp7PSbY0+yj206NREedVFr+bZ987X2kjMmcelCN0y
         /bDgacRDvvlISmyQuX5SC7bLCL0USXvsNEKfWdhpp9WGK2i9vJcvTpWx0ep9wcXw3OsA
         5siw==
X-Forwarded-Encrypted: i=1; AJvYcCWZoG9KrmIY4AyImTsU+MaRmxjM13E/ftw9zhvxkWrSh7ZqNroS3W6SHZUcSPWQCGVEnvv4SkgOjH4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx3LezpyUnE1HB3AKOti+FDRfAG8woJ9ouqU/636tV3YQ4id5sI
	QtvCeVD61fIdZzsbaTJO3plYezJxyJCIDLpEjsLyFRvtdlz/YJW+WOoPZofGaN7mOA==
X-Gm-Gg: ASbGncu3Cn1sl9NtliAIeYLuu6zB4Lh3eRdi2ciMA36EijgjC0PFMEcZramdLbcMJil
	jPI+VKa1xbI+ObYjaAPyLtNNMHydsA8uWITK+LBvMF0msxl5wDn0ZRqle1Ip74F5aUj+bJliHiH
	lopooaAcu601m+/xxOPFQTGJfWaSIjP1RzY0/O/wqyYJWciOqEc+fIn8usgTOu2t9n3rKjiwwcs
	mmMYDLBwgvAwySccSIZNQj9pd62ooqlhdfAJO3qg59zAnoZyYz9PjOC8IGhoiwfh1aKexSpE8LT
	bRv62JfwECyKFwzqbmSKfBWoa3qKoWQJbDmeGiOcrhek1GKAaXDNTi8y+Ixjc8CXWcKaMpk97w5
	AYGIwnIO40gqiPK9NC3uJhWZzu8zhV0DVQkUr/DoGirEmvifJE9Aa1AvZnsRHdRVgdHzeiMrkDv
	9vcDXB3tiUpo8Nr7ELPBasIqa0QPE4mVFRx8GuhRSbxELITWzdzzEYMjy1+u+W0dtS
X-Google-Smtp-Source: AGHT+IE578uK7GZ+f7Ttd7MefyFPM32tQjTwAPBVZ8hTP/Fhn5qvp9xRjviYT0uof2Cmdr1fqL9/iQ==
X-Received: by 2002:a17:907:3e9f:b0:b70:6e0e:1a07 with SMTP id a640c23a62f3a-b72e036c995mr907126666b.27.1762790016106;
        Mon, 10 Nov 2025 07:53:36 -0800 (PST)
Message-ID: <2c3fffbf-68cb-4850-95f2-71ae1af1a6bb@suse.com>
Date: Mon, 10 Nov 2025 16:53:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] xen: Strip xen.efi by default
To: Frediano Ziglio <freddy77@gmail.com>
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <20251110125859.78124-1-frediano.ziglio@citrix.com>
 <55f0f1f2-3892-44fa-94d6-15e0e8513ef1@suse.com>
 <CAHt6W4d3dJrmJ9DM-6Th+0YsUaJGH7Msvq_t6GpffJu7rALzbg@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAHt6W4d3dJrmJ9DM-6Th+0YsUaJGH7Msvq_t6GpffJu7rALzbg@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.11.2025 16:36, Frediano Ziglio wrote:
> On Mon, 10 Nov 2025 at 13:40, Jan Beulich <jbeulich@suse.com> wrote:
>> On 10.11.2025 13:58, Frediano Ziglio wrote:
>>> --- a/xen/arch/x86/Makefile
>>> +++ b/xen/arch/x86/Makefile
>>> @@ -228,17 +228,21 @@ endif
>>>       $(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
>>>       $(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
>>>             $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
>>> -           $(note_file_option) -o $@
>>> -     $(NM) -pa --format=sysv $@ \
>>> +           $(note_file_option) -o $(TARGET)-syms.efi
>>> +     $(NM) -pa --format=sysv $(TARGET)-syms.efi \
>>>               | $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
>>>               > $@.map
>>
>> This part if fine with me now.
>>
>>> -ifeq ($(CONFIG_DEBUG_INFO),y)
>>> -     $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
>>> +ifeq ($(CONFIG_DEBUG_INFO)_$(filter --strip-debug,$(EFI_LDFLAGS)),y_)
>>
>> This extra change looks correct to me, yet I wonder if doing it this way isn't
>> fragile. If EFI_LDFLAGS wasn't set globally, but only for xen.efi, aiui this
>> wouldn't work anymore.
> 
> Maybe, but it's not a regression of this patch, the same test was
> present before, just using another syntax

How is it not a (latent) regression? It is my understanding that the ifeq()
is processed when the Makefile is parsed, whereas the original $(if ...) was
processed as the rule is executed.

>>> +     $(OBJCOPY) -O elf64-x86-64 $(TARGET)-syms.efi $@.elf
>>> +     $(STRIP) $(TARGET)-syms.efi -o $@.tmp
>>> +else
>>> +     mv -f $(TARGET)-syms.efi -o $@.tmp
>>
>> This, while I think I understand why you do it, looks somewhat odd. Plus the
>> reason you do it is, like ...
> 
> Can you explain why "it looks somewhat odd" ?

You're moving a properly named file to a temporary one. (Just to later move
it again.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 16:01:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 16:01:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158542.1486876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIUKu-0000bH-VU; Mon, 10 Nov 2025 16:01:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158542.1486876; Mon, 10 Nov 2025 16: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 1vIUKu-0000bA-RU; Mon, 10 Nov 2025 16:01:44 +0000
Received: by outflank-mailman (input) for mailman id 1158542;
 Mon, 10 Nov 2025 16:01: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=Ugol=5S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vIUKt-0000b4-Jq
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 16:01:43 +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 8c61c7d4-be4e-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 17:01:42 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b72db05e50fso491466866b.0
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 08:01: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
 a640c23a62f3a-b72bf9bd36csm1155270166b.61.2025.11.10.08.01.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 10 Nov 2025 08:01: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: 8c61c7d4-be4e-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762790501; x=1763395301; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=g4so7OLSY4DXQD42oGJC/cphEJsZdKiRBCvcc5b/+Js=;
        b=HQAwh7YSI79F+rJYXqdPe10Xpp0DX0moGYgZD089OMSpnwYSLXy0eF+ySLnIk1srd6
         mqQgp8lqYjPBdZzalNMcvyXgYODtyK5QH5/+ptF4lyFagMzm1UeXH66XA4naFK09Z4mN
         FkyCJcY8tQGFWJc2SipuvvbO4Z4rTHpPT7ZeYkT+D6R46w9wDiGuUdCBgsDAdeUh7Wnj
         VH6PAdxbB+NCmXJ413CcGUJboHTr2hi5X/eq+iDkjaanxsJN2ei3MVXxeEyV5pqsF22L
         hQoF3hDx6xHQ8ucYdCIyhKFX4yaqRMamJgJOraiZs3tAkwR8CrhtssTdY53nSxSZdMEa
         eukQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762790501; x=1763395301;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=g4so7OLSY4DXQD42oGJC/cphEJsZdKiRBCvcc5b/+Js=;
        b=PKuZx0k3xRzxHsrgf9hhLdmBvVhA8FJ70IsXBbjgP8F9jy8gKYkmAr6O3g0jbOt7H8
         DiDCAieAl4+Pn18g0mKdRUyvb53GedvWaNhIEjOZ6jJGXioXBvvfjreQDbLuRUAaZi4X
         OTpC4zH3kXl2RywJ6rIKvkQFSt8BCHKZcUrJLYJY10B/TaMcvHFusMbi1qEf8O1D3Qy0
         QGwUGbu+In8HuX+Rf4ktMykDOcI81RF0+vzhSqxgN2wQ6wdrJ9X+nArCvqVX2uyLI9Pd
         uAO23F+B1y3lH4IpzW9ZvnYsDnY7DTEWWYwtPFEkJRmif/9p6xhYvArJLv8KbtWSEdJS
         goQA==
X-Forwarded-Encrypted: i=1; AJvYcCU6nRqOTsgJdh4VX2KDRN3bDYbElCM79u7xvEvhf7IlXxLTNcVtumABD6xkBUceOY6qsbGwbv9hmi8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz7RqtMyoTjgsrlolzWSINB/7U5I8WzzGfmfylDydorqHp/7a19
	qvTFw7b5Q52pqaUZ+umu1kzfVapp1d1GvAhTSVTUhU3KG0x8+c0MgeVqFP7ZWwiSvA==
X-Gm-Gg: ASbGncvufXAvH9OpdtlZQThiJ/9P/G4moo0Aj4f7VmbPCv3d0PoDZO1F1nQ8rj34XyM
	fPw4vXx58NrKHAugpYls0uyTGdaTpnZXTI1lgb7q5ZPcxA4XjtxHTnMlLjEbiX7KDCsp4v6H48S
	X/FIe/08/6JTM5B6lK6p2LraL7x2vOcdAWU3eP27eYmfU6eOSpQoyiNPnWu+aPqsvNF6fRqKXmk
	Cryqt6PLxcU8DF8OucYucvQcgzpv3y/fnPNK8F/eNQK9/R1KQbqL5jpZ88QzemfXx4r6mG/x9Wp
	VkuD3s+oZvXJt6VrS8abwTWp6cxDozS1D2qB+8tSbgNNKX8OVoAu498sw0Ee0lL2MJspWA5CmCC
	UBi88prhyR7+Kma1z0J2OREGCeJ2T5DIQlK0PXjrsFkN92/4NukLXZ4YucA5Yrre2YBtrC644Qh
	Bzck0FeDOe/E4Z8FQSdnOp+58eleOyvx+uEIwQ+Q0rE3E47+ULv/IkPSZrRyEeIW7z
X-Google-Smtp-Source: AGHT+IGMVOJT/D2CV5+kYq3OovFmdbNZBVBwFcyjRkmLKzQqgznWWLRUDckpU7ergnDnPF3MIv3jvg==
X-Received: by 2002:a17:906:6a20:b0:b72:a0f2:5f99 with SMTP id a640c23a62f3a-b72e0333d1emr947632066b.18.1762790501201;
        Mon, 10 Nov 2025 08:01:41 -0800 (PST)
Message-ID: <4ac8284c-e7f1-4d6a-9241-d6c30155551b@suse.com>
Date: Mon, 10 Nov 2025 17:01:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] xen: Strip xen.efi by default
To: Frediano Ziglio <frediano.ziglio@citrix.com>
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Frediano Ziglio <freddy77@gmail.com>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <20251110153551.84813-1-frediano.ziglio@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: <20251110153551.84813-1-frediano.ziglio@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.11.2025 16:35, Frediano Ziglio wrote:
> From: Frediano Ziglio <frediano.ziglio@cloud.com>
> 
> For xen.gz file we strip all symbols and have an additional
> xen-syms.efi file version with all symbols.
> Make xen.efi more coherent stripping all symbols too.
> xen-syms.efi can be used for debugging.
> 
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> ---
> Changes since v1:
> - avoid leaving target if some command fails.
> 
> Changes since v2:
> - do not convert type but retain PE format;
> - use xen-syms.efi for new file name, more consistent with ELF.
> 
> Changes since v3:
> - update documentation;
> - do not remove xen.efi.elf;
> - check endbr instruction before generating final target.
> 
> Changes since v4:
> - simplify condition check;
> - avoid reuse of $@.tmp file.
> ---
>  docs/misc/efi.pandoc  |  8 +-------
>  xen/Kconfig.debug     |  9 ++-------
>  xen/Makefile          | 19 -------------------
>  xen/arch/x86/Makefile | 16 ++++++++++------
>  4 files changed, 13 insertions(+), 39 deletions(-)
> 
> diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
> index 11c1ac3346..c66b18a66b 100644
> --- a/docs/misc/efi.pandoc
> +++ b/docs/misc/efi.pandoc
> @@ -20,13 +20,7 @@ Xen to load the configuration file even if multiboot modules are found.
>  Once built, `make install-xen` will place the resulting binary directly into
>  the EFI boot partition, provided `EFI_VENDOR` is set in the environment (and
>  `EFI_MOUNTPOINT` is overridden as needed, should the default of `/boot/efi` not
> -match your system). When built with debug info, the binary can be quite large.
> -Setting `INSTALL_EFI_STRIP=1` in the environment will cause it to be stripped
> -of debug info in the process of installing. `INSTALL_EFI_STRIP` can also be set
> -to any combination of options suitable to pass to `strip`, in case the default
> -ones don't do. The xen.efi binary will also be installed in `/usr/lib64/efi/`,
> -unless `EFI_DIR` is set in the environment to override this default. This
> -binary will not be stripped in the process.
> +match your system).

This behavioral change likely also calls for a ChangeLog entry, btw.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 16:22:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 16:22:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158556.1486893 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIUev-0003rD-Jf; Mon, 10 Nov 2025 16:22:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158556.1486893; Mon, 10 Nov 2025 16:22:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIUev-0003r6-Gn; Mon, 10 Nov 2025 16:22:25 +0000
Received: by outflank-mailman (input) for mailman id 1158556;
 Mon, 10 Nov 2025 16:22: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=Ugol=5S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vIUeu-0003qq-3a
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 16:22:24 +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 6fa48717-be51-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 17:22:22 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-b5b823b4f3dso471611766b.3
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 08:22: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
 a640c23a62f3a-b72bf60ef8asm1114440866b.30.2025.11.10.08.22.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 10 Nov 2025 08:22: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: 6fa48717-be51-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762791742; x=1763396542; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=V0t4rrBwBHijLz1anaEDIZMWzVwXcpEnLjROG7ZSmIg=;
        b=NS5eLV5OiEOyRVcStGDDzbEzNDDapdhokfKWw9P2iCfw6oG3natm1RLwPeY1qiwc+m
         37QsNLcaJZEhy4AyZVMTiUdbYNwQcNBk823BaGcxSMDu/jFfBkFGnI0PgZRhminMnS6O
         5k0/dpHaJCLYbGPbnirClAH4mhrO3z96HMvwXWwq2rMfkVev5CNiffEss23QHKuMYNBj
         SrG4eZ+FUQCH2QBdqkk/xThQRVUUB7EtA+JQyMcrX4fc0FATXNsI4zr6osbEM++K04pA
         HZ/StnjUeTdqRP4ztEI2YjtVRxQaO8Bw8aXIKl3xlyerZVAdH6LkAR6aimd7f4C7667B
         Xqwg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762791742; x=1763396542;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=V0t4rrBwBHijLz1anaEDIZMWzVwXcpEnLjROG7ZSmIg=;
        b=TtRzhKQm9oxvKB9nxz6BWDOZ3Flo7HnIfj5E3N6kIzFvuWJDetkpcYGmhh7LzdZMcN
         CxtNe7ppahD18ySxDJ002Pj3vQ8lUcWh3g8oVfAUvJY0kFpCuJazYOeY/mMrKD32r0FR
         csYzeJBlOfqXByOVUwbWsfXlHuzPaJt/QgQo7CmlUHFDsE7MpdjMAv34D1oyP2sAA0CQ
         8Ev/Ls3yRy6Q0codSqbTWKVdFmDFu4J2nWT7phpEmKRaVaYLrS6A/BYFLfXSvhdG7ZUB
         W43SNNkdX7oQBLgdacdkwqbqPAaZ+GHwZGK0kGO5QOPakHpQzDtzerONwZAvUsf04qo3
         1hgw==
X-Forwarded-Encrypted: i=1; AJvYcCWxM/kEMcRvwzrAmmoiAP58dCCcruT8zKuo5H1DVjSkE52J139Y/uX+kNGCbApRZR8QEvgtfFnTNzM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyjfy7wyzDaTUv9d59kMTuMJSGBbh2ZpoRLj86RlErwsAeciEF4
	dcLf3KkGDEzpwmmtm9zYTtmZhDJpi8NXiCU6cIvku0J10Jj2zZf/LEZqON8J2/FIlw==
X-Gm-Gg: ASbGnctjhBslKK500vbuRUlMzEJL4rrkoGhxwqW4eQGWko3/HTNzN+NUgsnCPHudbFg
	3/UYw5Nz1SlVxLHxYzZPXePYTSl0WjaxXfRj9gaOkw1S+c8178qtQsAODiehPYRHriPSgN8vIZn
	PNmAyob9wOHb4d+GWECGIe8BDq6TbdxrOdIQBXHq4Hm4EvjxIR8rlxI69f27tyzaBqICxfH6V4K
	aJnMPZob5NhurdEN+iOecBuD7gynQswZlUQ0xPnVV83O2gE+QX3lkB7C82ooOJnPbL9gpXmCSTg
	XHbhBLMxx7R2KWaqH6a6/ra+4/61iQAcHZgycbgI45cuPNgOYUAq81Ktwv4EX3Y4WiiTeuFEnku
	s0UpW6Y/oRyfV3Z6s6LEibnVkq9/MUHp9XEl3maA9fUgJFD0CW6rqN+ob17sqllQeel7MCjc+YY
	riJljueluGGcfjVRPKKnBasqwEsA50eNlWCFk7yVe97fFwtAl8KAuFbgqbtUJfLpWGYLJz3J1+Y
	ec=
X-Google-Smtp-Source: AGHT+IHP9lfCd20AVDBtRKbtWyVtpmpv2vFiRDVTM75rVA757oPw5nUkotRs8aegUiwmEjnD7hHaxA==
X-Received: by 2002:a17:906:ef04:b0:b70:ac7a:2a8b with SMTP id a640c23a62f3a-b72e040f8b2mr871802766b.19.1762791741742;
        Mon, 10 Nov 2025 08:22:21 -0800 (PST)
Message-ID: <c77881bf-98aa-483f-8767-0be566f3dc34@suse.com>
Date: Mon, 10 Nov 2025 17:22:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 12/18] xen/riscv: Implement p2m_pte_from_mfn() and
 support PBMT configuration
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <ff69e96dbb17e38e10468454d534061388201680.1760974017.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: <ff69e96dbb17e38e10468454d534061388201680.1760974017.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.10.2025 17:57, Oleksii Kurochko wrote:
> This patch adds the initial logic for constructing PTEs from MFNs in the RISC-V
> p2m subsystem. It includes:
> - Implementation of p2m_pte_from_mfn(): Generates a valid PTE using the
>   given MFN, p2m_type_t, including permission encoding and PBMT attribute
>   setup.
> - New helper p2m_set_permission(): Encodes access rights (r, w, x) into the
>   PTE based on both p2m type and access permissions.
> - p2m_set_type(): Stores the p2m type in PTE's bits. The storage of types,
>   which don't fit PTE bits, will be implemented separately later.
> - Add detection of Svade extension to properly handle a possible page-fault
>   if A and D bits aren't set.
> 
> PBMT type encoding support:
> - Introduces an enum pbmt_type_t to represent the PBMT field values.
> - Maps types like p2m_mmio_direct_dev to p2m_mmio_direct_io, others default
>   to pbmt_pma.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in V5:
>  - Moved setting of p2m_mmio_direct_io inside (!is_table) case in p2m_pte_from_mfn().
>  - Extend comment about the place of setting A/D bits with explanation
>    why it is done in this way for now.
> ---
> Changes in V4:
>  - p2m_set_permission() updates:
>    - Update permissions for p2m_ram_rw case, make it also executable.
>    - Add pernissions setting for p2m_map_foreign_* types.
>    - Drop setting peromissions for p2m_ext_storage.
>    - Only turn off PTE_VALID bit for p2m_invalid, don't touch other bits.
>  - p2m_pte_from_mfn() updates:
>    - Update ASSERT(), add a check that mfn isn't INVALID_MFN (1)
>      explicitly to avoid the case when PADDR_MASK isn't narrow enough to
>      catch the case (1).
>    - Drop unnessary check around call of p2m_set_type() as this check
>      is already included inside p2m_set_type().
>  - Introduce new p2m type p2m_first_external to detect that passed type
>    is stored in external storage.
>  - Add handling of PTE's A and D bits in pm2_set_permission. Also, set
>    PTE_USER bit. For this cpufeatures.{h and c} were updated to be able
>    to detect availability of Svade extension.
>  - Drop grant table related code as it isn't going to be used at the moment.
> ---
> Changes in V3:
>  - s/p2m_entry_from_mfn/p2m_pte_from_mfn.
>  - s/pbmt_type_t/pbmt_type.
>  - s/pbmt_max/pbmt_count.
>  - s/p2m_type_radix_set/p2m_set_type.
>  - Rework p2m_set_type() to handle only types which are fited into PTEs bits.
>    Other types will be covered separately.
>    Update arguments of p2m_set_type(): there is no any reason for p2m anymore.
>  - p2m_set_permissions() updates:
>    - Update the code in p2m_set_permission() for cases p2m_raw_rw and
>      p2m_mmio_direct_io to set proper type permissions.
>    - Add cases for p2m_grant_map_rw and p2m_grant_map_ro.
>    - Use ASSERT_UNEACHABLE() instead of BUG() in switch cases of
>      p2m_set_permissions.
>    - Add blank lines non-fall-through case blocks in switch cases.
>  - Set MFN before permissions are set in p2m_pte_from_mfn().
>  - Update prototype of p2m_entry_from_mfn().
> ---
> Changes in V2:
>  - New patch. It was a part of a big patch "xen/riscv: implement p2m mapping
>    functionality" which was splitted to smaller.
> ---
>  xen/arch/riscv/cpufeature.c             |   1 +
>  xen/arch/riscv/include/asm/cpufeature.h |   1 +
>  xen/arch/riscv/include/asm/page.h       |   8 ++
>  xen/arch/riscv/p2m.c                    | 112 +++++++++++++++++++++++-
>  4 files changed, 118 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/arch/riscv/cpufeature.c b/xen/arch/riscv/cpufeature.c
> index b846a106a3..02b68aeaa4 100644
> --- a/xen/arch/riscv/cpufeature.c
> +++ b/xen/arch/riscv/cpufeature.c
> @@ -138,6 +138,7 @@ const struct riscv_isa_ext_data __initconst riscv_isa_ext[] = {
>      RISCV_ISA_EXT_DATA(zbs),
>      RISCV_ISA_EXT_DATA(smaia),
>      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 768b84b769..5f756c76db 100644
> --- a/xen/arch/riscv/include/asm/cpufeature.h
> +++ b/xen/arch/riscv/include/asm/cpufeature.h
> @@ -37,6 +37,7 @@ enum riscv_isa_ext_id {
>      RISCV_ISA_EXT_zbs,
>      RISCV_ISA_EXT_smaia,
>      RISCV_ISA_EXT_ssaia,
> +    RISCV_ISA_EXT_svade,
>      RISCV_ISA_EXT_svpbmt,
>      RISCV_ISA_EXT_MAX
>  };
> diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
> index 78e53981ac..4b6baeaaf2 100644
> --- a/xen/arch/riscv/include/asm/page.h
> +++ b/xen/arch/riscv/include/asm/page.h
> @@ -73,6 +73,14 @@
>  #define PTE_SMALL       BIT(10, UL)
>  #define PTE_POPULATE    BIT(11, UL)
>  
> +enum pbmt_type {
> +    pbmt_pma,
> +    pbmt_nc,
> +    pbmt_io,
> +    pbmt_rsvd,
> +    pbmt_count,
> +};
> +
>  #define PTE_ACCESS_MASK (PTE_READABLE | PTE_WRITABLE | PTE_EXECUTABLE)
>  
>  #define PTE_PBMT_MASK   (PTE_PBMT_NOCACHE | PTE_PBMT_IO)
> diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
> index 71b211410b..f4658e2560 100644
> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -11,6 +11,7 @@
>  #include <xen/sections.h>
>  #include <xen/xvmalloc.h>
>  
> +#include <asm/cpufeature.h>
>  #include <asm/csr.h>
>  #include <asm/flushtlb.h>
>  #include <asm/paging.h>
> @@ -349,6 +350,18 @@ static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
>      return __map_domain_page(p2m->root + root_table_indx);
>  }
>  
> +static int p2m_set_type(pte_t *pte, p2m_type_t t)
> +{
> +    int rc = 0;
> +
> +    if ( t > p2m_first_external )
> +        panic("unimplemeted\n");
> +    else
> +        pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
> +
> +    return rc;
> +}
> +
>  static p2m_type_t p2m_get_type(const pte_t pte)
>  {
>      p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
> @@ -379,11 +392,102 @@ static inline void p2m_clean_pte(pte_t *p, bool clean_pte)
>      p2m_write_pte(p, pte, clean_pte);
>  }
>  
> -static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t)
> +static void p2m_set_permission(pte_t *e, p2m_type_t t)
>  {
> -    panic("%s: hasn't been implemented yet\n", __func__);
> +    e->pte &= ~PTE_ACCESS_MASK;
> +
> +    e->pte |= PTE_USER;
> +
> +    /*
> +     * Two schemes to manage the A and D bits are defined:
> +     *   â€¢ The Svade extension: when a virtual page is accessed and the A bit
> +     *     is clear, or is written and the D bit is clear, a page-fault
> +     *     exception is raised.
> +     *   â€¢ When the Svade extension is not implemented, the following scheme
> +     *     applies.
> +     *     When a virtual page is accessed and the A bit is clear, the PTE is
> +     *     updated to set the A bit. When the virtual page is written and the
> +     *     D bit is clear, the PTE is updated to set the D bit. When G-stage
> +     *     address translation is in use and is not Bare, the G-stage virtual
> +     *     pages may be accessed or written by implicit accesses to VS-level
> +     *     memory management data structures, such as page tables.

Can you point me at the part of the spec where this behavior is described? If
things indeed work like this, ...

> +     * Thereby to avoid a page-fault in case of Svade is available, it is
> +     * necesssary to set A and D bits.

... I'd then agree with the "necessary" here. (Nit: note the extra 's' in your
spelling.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 16:25:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 16:25:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158570.1486904 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIUhg-0004Rl-4D; Mon, 10 Nov 2025 16:25:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158570.1486904; Mon, 10 Nov 2025 16:25:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIUhg-0004Re-11; Mon, 10 Nov 2025 16:25:16 +0000
Received: by outflank-mailman (input) for mailman id 1158570;
 Mon, 10 Nov 2025 16:25: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=Ugol=5S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vIUhf-0004RY-4K
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 16:25:15 +0000
Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com
 [2a00:1450:4864:20::531])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d614250f-be51-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 17:25:14 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-64162c04f90so3811189a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 08:25: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
 4fb4d7f45d1cf-6416001a4a8sm6815258a12.15.2025.11.10.08.25.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 10 Nov 2025 08:25: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: d614250f-be51-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762791914; x=1763396714; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=VkfMhLjkH8+zTRoFSW8oQV/xNcY16zj+gjbST8LvTac=;
        b=Ea+bMyq+HpczUCfF2B7b8hMxxOneUcI4iU/gfPQGU8rmlOXJPYOTWS+gkkxMt++wsY
         d1JgKdW+wg2pnNexLexXMANceOPSzWblyElF1AaAkuGhWTNbDXBS/XSlpaGIt8XsU+H9
         ip/tonaoY5/g7MsmYsd8CpBfvsuAiD0g9KZ4IQCe1XFMZb51DsY63qRpA5WsMIclB2/D
         zj+E3RaxbIbpqEDVIrH1rXCKUmoeUnZBgGAB/s+HYDj3VzAU5zO/oarzr1BmZMjflPcm
         cSwwNc83H3vGlzRtQXk3tNxzpPN3yP+BReF8shLR5XkESq4580ACf1I0eugZKwBXf64o
         0zfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762791914; x=1763396714;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VkfMhLjkH8+zTRoFSW8oQV/xNcY16zj+gjbST8LvTac=;
        b=uM9A6lxMv3KAB5RcEgiTeiGHVffUh2S73Y7Osv7rkWCt50UPCKWkLNN43fhrGpM8FH
         mjlqed6SKCzAK+GAAmMeaQ1ccJ6tHutp/3fCTCGM7twOKP/6HwxsGwo+YmK99TEamrFs
         tZbANpcmYW6x38IzJuYEPEk8ZXBFWJlrRDLQYhqIr/2RyQDtVeMscqIIcrG3vdGFtUFf
         49OozuNhITuMTc7pGgEJ/ItbYtEgjvGiXz/Jbm3wRQOAW8mpMkcNasBMX8tgqRklIsPe
         H2N+yE1/fhpN8qkDq+2lpdR6unYcKnn+gov78qb1amXR8gwOUPBcJFYxfy7v1Amej2RK
         JUsg==
X-Forwarded-Encrypted: i=1; AJvYcCUhsKgJCD5q2U4hcJOYWexNo4VpAvY/SSp/JAiwkhARjnluKF5Ez38oMgKYEiQTWecEmPjQqj8HwEw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxLffcO6/+bQSe/Qy1e4rdvkYUUbFeu5UP1fK433W22+NuhovRX
	208qwVAhKCAkkPsO5aIjSwPlRD3y3+NlCo8Dx8tKyVTDbRScedxJieiJfgAU6VO2Ug==
X-Gm-Gg: ASbGncsf+KqxQrCIPzQ23UXI16CCiVoYYHGDEQ1qAQWW8m+p6dZMRMOK84a/vpxHe84
	F1QN74AeQ0n6PxDihxjwwqNSbkRy+ObWk3DFRg51ZCVZAVmSsxgH5nWaog8Mg0HXcKOUZvixT+U
	mu7EHGNCmzw1CO4I0nK6Wmvnhe+TES5gENkOlXKsMoZ2IjZs+PysXbAfpfCU/U7CD42hQFJtGeG
	GgXEjzK6VNQVuDGRJ98OXYX/qDFDAmEybZu7dosnHiubnbZZgf6tk3MrNy4VMYFiIkFlltqaMLo
	aGM2B9vQn8njZrskC5BNB+ZWkExnRLFIAmm9cqpAZrJz1hv34Lljtbv8FlNZdAHoemj/a8hHbEH
	Z89wUXHNNSHnx+cEmBOClT29/ju2SKQZM/VLIOVkgDOmd6sz56gBu36+W+6zQQssLEjI/t0oI+A
	jyzFrMHj7XP50XdUjhUlRLiZpQzOq+U0DsdzybFI3jtXLa0lf/vWz7UObJYzrXgDk3lQUFadcSb
	lM=
X-Google-Smtp-Source: AGHT+IGzYAym/8Kw0UG18mb8pzv4p/av00m7lWZ6faI9slAiC/Qxtvr8bnk0jvswVz/oci2u0/uFYg==
X-Received: by 2002:a05:6402:d0d:b0:641:8d6b:88cb with SMTP id 4fb4d7f45d1cf-6418d6b8affmr3196460a12.28.1762791913711;
        Mon, 10 Nov 2025 08:25:13 -0800 (PST)
Message-ID: <28920d5e-6672-41b5-8927-e24aedc7f694@suse.com>
Date: Mon, 10 Nov 2025 17:25:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 13/18] xen/riscv: implement p2m_next_level()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <cfcec559252a365368d1ce19ea75ea41e8e8ee7b.1760974017.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: <cfcec559252a365368d1ce19ea75ea41e8e8ee7b.1760974017.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.10.2025 17:57, Oleksii Kurochko wrote:
> Implement the p2m_next_level() function, which enables traversal and dynamic
> allocation of intermediate levels (if necessary) in the RISC-V
> p2m (physical-to-machine) page table hierarchy.
> 
> To support this, the following helpers are introduced:
> - page_to_p2m_table(): Constructs non-leaf PTEs pointing to next-level page
>   tables with correct attributes.
> - p2m_alloc_page(): Allocates page table pages, supporting both hardware and
>   guest domains.
> - p2m_create_table(): Allocates and initializes a new page table page and
>   installs it into the hierarchy.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>
Just one further nit:

> @@ -490,6 +503,33 @@ static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
>      return e;
>  }
>  
> +/* Generate table entry with correct attributes. */
> +static pte_t page_to_p2m_table(const struct page_info *page)
> +{
> +    /*
> +     * p2m_invalid will be ignored inside p2m_pte_from_mfn() as is_table is
> +     * set to true and p2m_type_t shouldn't be applied for PTEs which
> +     * describe an intermidiate table.

intermediate

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 16:30:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 16:30:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158582.1486914 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIUmL-0005mL-Mo; Mon, 10 Nov 2025 16:30:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158582.1486914; Mon, 10 Nov 2025 16:30:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIUmL-0005mD-In; Mon, 10 Nov 2025 16:30:05 +0000
Received: by outflank-mailman (input) for mailman id 1158582;
 Mon, 10 Nov 2025 16:30:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7fAs=5S=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vIUmK-0005VE-E6
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 16:30:04 +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 8002be1a-be52-11f0-980a-7dc792cee155;
 Mon, 10 Nov 2025 17:29:59 +0100 (CET)
Received: from DM4PR03MB7015.namprd03.prod.outlook.com (2603:10b6:8:42::8) by
 SJ0PR03MB6390.namprd03.prod.outlook.com (2603:10b6:a03:396::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Mon, 10 Nov
 2025 16:29:52 +0000
Received: from DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9]) by DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9%3]) with mapi id 15.20.9298.015; Mon, 10 Nov 2025
 16:29: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: 8002be1a-be52-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YRsR3ceXJsqHyT1+TwgXtJCynWlPPlmMy45PnaG9sstbjHN9indsJwoCo5iEt4e7JezFTCiHgxPa2/a1ah6vrPz+d+umB6F977PZGS7pqSoO68HdrJhT3eVe5odlxFL6TfwMQ4vhmqK6BhJdULwrDs5sYMvpkW0aOrwR3Z0q7udESiyryG18i7cwTAsF1s+tQmmj0IwIWggEwiEKh3wM5vxERwDFCbHiyEScOy3Z9lGvbt4cfFHgxFY2fZwOfMBWJYrgAFqaqou9Hozlr4YCiMRSi48mujLv5ALbrKAflQuruWsJh1eGYvUKVnXORqbHsrKm2bvIjzJzwA6yq7Nznw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nL+GyyFrwz6uOqGV6oCoXxIJHFMOn2qfbiUELJN9OPM=;
 b=uHKLb4ONtChPz3cixiQ2kq2EuzFnYEeeCMeiUewY+ubF7D6zivG7OQmvCVFkdMndsK3A3ffyDzAyTwnVAFv5YbA3bA4yLWOIndcOeA+p8wr1WYRt0y8sxjkI2biVDF7GQ70jGV65uSRp4uUOxfybvLagKt0BWC3SAxk+MAw/0qkUF5isua+7P+2mhxJZyqwlatGshlgwiJ606eTd0vfUqOXARxv1S2w24UGvwS8jh3lqlbkBWP5F/T1eT4TPq3e3ou6ezBgiFFW1wTEX3E23Y3ZHYLmvcnhQN5X2b2Jec+IOhTTjtF1YUIeIj43WNF5WE7QPij4M6C/MisiIqRV0qA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nL+GyyFrwz6uOqGV6oCoXxIJHFMOn2qfbiUELJN9OPM=;
 b=cpR9gho3ItfdiZ8jHk8+nDjm8zXZ7eScI1mXisSTmGODaCYlaeab8w4Bh4D6zjRasnHAf3q86MwCgn63Yd3ZFXBIgvR8Lc3ipO6MVb+AeYAxnb+atIwWTeU0b8tv8yXWJEFGVhdLYFNDK/mmgDWKQO1aAF0g4W9MA9gzAqsa5dc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <60d1d66e-83cd-47b5-9b94-0325f411ca72@citrix.com>
Date: Mon, 10 Nov 2025 16:29:48 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] CHANGELOG.md: Update for 4.21 release cycle
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
Cc: Community Manager <community.manager@xenproject.org>,
 committers@xenproject.org
References: <1930832802df980a6fe610233265bc238fcfaca4.1758901622.git.oleksii.kurochko@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <1930832802df980a6fe610233265bc238fcfaca4.1758901622.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0282.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a1::30) To DM4PR03MB7015.namprd03.prod.outlook.com
 (2603:10b6:8:42::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR03MB7015:EE_|SJ0PR03MB6390:EE_
X-MS-Office365-Filtering-Correlation-Id: 153a2f37-9b01-4771-f8b0-08de20765f9a
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?cmdhb2RHOTVlNG15V21OYkhYcWhTd3BQSkQrUW5LSStIS3BhM0FDbHY5Sytj?=
 =?utf-8?B?WW5nM2RGUHAvQTlTWm9xMFZMUTd3MWdwTHVZaTFoNlZYeXdnN3FTTldxOEhj?=
 =?utf-8?B?NVEwS1h1SHpWSCs2Mk1SMGF4QVc1S0MwR1hVNFFBWEc5STFGL2ZqWWRGQ0di?=
 =?utf-8?B?UDNSL0JGZjJBajV2N2RSUmQrMW5NWCtYOEZIdVdrS2pyTU5QZzBwUHdZOUdz?=
 =?utf-8?B?MWxWaGJQbkRqNlhkZzNwbVRvd0hCYzNuZ0xwcmx3eFBSL3JybStWRFBLcHU1?=
 =?utf-8?B?SHltQTZvZWVoMTVGdVh4OG5HYU1iUVVTbXdCQUFyQ3J5Vmd6Z2liOUk0N2M3?=
 =?utf-8?B?MGdWR1BuNCtTaGRoTTlDK1Q0bFd1ZHNsYm9XNXNzbEZQdzlzaXBpN0UxeTBE?=
 =?utf-8?B?Mk5Da0NHblZsQ2pTWDljc01pMEJ2bk9hbnNHcG9RQnJUUnBlKzJ5RFRoK1Nx?=
 =?utf-8?B?Q0R5N0piWGNMYmdEV1dDZ1M4VHBlSEdTaU5BVC9JeEhHVXdkUytoK09kU1dG?=
 =?utf-8?B?TDZhaXpIWll3Rno1YkhVTXk0T1VsRk5WQ2xDemZIQnlMV21LWE5oTURFT0ow?=
 =?utf-8?B?alp3RDVvbFZNcUpwcGxCNGwrTUtmS0p2NTk5MUxZV3ZxV0tsbmxmVWoxejdj?=
 =?utf-8?B?RW5ZWVpZdVJ6ZExrNmhmWEVDcllyTG9kOTdwc2pXRFkyNEVkWTF1RXhYREw3?=
 =?utf-8?B?c05USmZXa005QiswN0FJQlFRMnBMTzJ4dFd1d0dHZXRNRGtoTVJIeUF1OTc5?=
 =?utf-8?B?bXRIc1p4UTduSGxtQklrQVI4ZGRDK0w0WktiQWord1lrNHdDSGd1UXdrOFhI?=
 =?utf-8?B?dEt3aEIzYUw2Q21oSFlMR2IwYzZSTlNnWnV4UEEwT0JNRFNJTkZtK1U2cEIv?=
 =?utf-8?B?Vmh6bmJrNEg5R2tnLzI1YTI4aXRVdkFKNzZwdGdUU3huN3FhUkduMjVXL3RQ?=
 =?utf-8?B?c3pnSGJ1R2MvQ2lMZENGOHF5eWNHNDBDM3hjOFd3YmpxWmNQZmZtb05aeVNv?=
 =?utf-8?B?SFhnWThkSmxsMFhBck9OSUo1d0xWdVk1aC85aUcvYTdFLzBmbVpIWndhcWJa?=
 =?utf-8?B?d25jRXlxbDgvd3J2aGxYLys1M1hYaTFKV3AxQzhhZzZrOWxZaGxVRzBNb2x0?=
 =?utf-8?B?ZkkwSmtLUWtRWHhZMVJWand1bi9qNjJBTjR3MGtqZ2xPQUV1eFdGWUhGYUtw?=
 =?utf-8?B?OUZRZnAwWGlYMGZ6K2ZvdmtvKzFLd3FOZDZPbzdrKzU5M3VNWEdGTXpSZnRR?=
 =?utf-8?B?aFpESVdkOGxnaFp6UU5CUVgvalkvdmVQU1A0K2JGQlpPM2ZkZzl3K3lNa1NI?=
 =?utf-8?B?em9XaTJMM3pIWHpUZXJiNmltVngyQVVwQ1lQRHlFdXR4RjlRVUw3MkxjcVY5?=
 =?utf-8?B?K0xabTVKeERFVzdTWFNvZDJ6bW8waHV1V1I2R3BmS0dtVmtScDd6WFlSSW43?=
 =?utf-8?B?ZHp0YjIrL0I0MWpQWHZUWkhCamxqYkU5Tzd3d25WT2gxcGt2R1RjSjJkczdj?=
 =?utf-8?B?UktRUmhRbXAyakNISUJVTndkQUJpWlgyZUV1MFJLbEw5VExVODE2Z2RocXJM?=
 =?utf-8?B?QjhPM3h3VlNCNnFjVW9WSW9UVWNqeE9qeVdSRk13NThHSm5ydERrM3B4aHJa?=
 =?utf-8?B?UGJyejk5K2tlWlhBeU93WTFSajNveGRRZFgySjJSNWNoV2pRQ2U4ZllTVUVo?=
 =?utf-8?B?QUhvQ3F5dWc2NWFrVzIyZCtTc1VqYk9oYWZzVW93akZmVmRwVXpQKzdHVG5r?=
 =?utf-8?B?K0FNMUgzL2o1K2swNnhOdG4zR21Qait6djFnMVdBSUI4OXZHK2o4RUZiekFI?=
 =?utf-8?B?YWxhZFRzSEZEVEE5U0NZRlR1RUMzVjVTQkw4U1Q5M2p0UllLa2RmTTFsR2JE?=
 =?utf-8?B?MHJhU2hjRlBEdFBZMEpyU3dVVDFNRGRLT3Q2dG1EM24weFE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR03MB7015.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?S1FYSkRHTWNKbUJ6eEUxN0FhOHJobUhlUUxVK0o5ZGx3TnNzS2hPVkRveVI2?=
 =?utf-8?B?cTZhT2dEQkVkN2luczNqNmxjeEpsOENuSktDVld1TytUdkI4TE1ITUFSLzJq?=
 =?utf-8?B?ZFN4N1NQU0Z5TEhsd1IvU1UrYlNSdW5ocStWRFVvNFNYeWdScEVUYmhyQ1Ix?=
 =?utf-8?B?azFHQmJxcEJlUTF5bUgwS3R1THAyTk1CWEIwVktWNUhieEQ1WjhlZTRTaHgz?=
 =?utf-8?B?bkd6ekcxd2Jsb0xiL1JJVGg1UUZGakx4ZG5hTmsvd2lCYWt5a0g5UWRwV0s0?=
 =?utf-8?B?aGlDK0JvelhSM1ZCSVpvYWgwVDJiSjdIWUR4QTFlMlZrR2lIcVlkZDhYZldh?=
 =?utf-8?B?MjRTM3pxbU5uUXNRdjQ5b05Od2lBWFpyNWtxcG5ram9Dd3dDWUV5ekYxV2Ni?=
 =?utf-8?B?NlNnYlZxVko0VXh6Y3labzJVVFBGS3YzN1pWbit6cDdraTB3Q3BjOW1GRWpJ?=
 =?utf-8?B?VmRMbDhNMjAzNndXTThXMkViNyt5TmtxUnRrQ2hrYWNndVVpOVNIZlFjUFBo?=
 =?utf-8?B?dW03RGtFMzJzd1dJZENibVl4RGdocS9mbURCR0hqT3M3bDg0NEZaYWNicWNP?=
 =?utf-8?B?TnFQc2dRWWhaWklIb1drWmQrYmErT2g3U0h0Sk9JNWhFMmQ0c0ZVT0tINUcy?=
 =?utf-8?B?QS8yUnB6MkY3dUg3ZHB6c3BFVWNNV0JWbG96RUJ1dWE0dlNzcDF1L0loRVZs?=
 =?utf-8?B?UFFoOHZ3Y1hveWtuRElRb3Fhc0NpZDI1cjQzd3prbCtDK0pUQW5NWEUwb29s?=
 =?utf-8?B?dTZleUFxbGRMQWRKKy9vZzE1Y0xjM0Z3UFdLRVJoTzVzcmY3YmZkSlN5b1pD?=
 =?utf-8?B?R3kwOTNmamZjK205S3V4WngrcGg2T3loQnBPc2FiWEhWU2pWK1dGVk1RZi9w?=
 =?utf-8?B?VGFzK1ZxYTBsSEpYZ1k3TXZGYk9BWlZGUEE2RVMrMTl2MUpnOHQvL3VwNVNa?=
 =?utf-8?B?VjNVR0tJZUxvZjhQSkdKMmpPNjd5eThIZVQ5QUp3WWxtMms1QWdRckdKVytK?=
 =?utf-8?B?VURLRFo2dXM0NTFDNW1ndkthdE9tZ0dMcnRkRjVHZ2hyK1MwSkJjN0hlcFRT?=
 =?utf-8?B?RW5XMFk2WjcrNWgvcUUzRjBZdkxhaE5rbWV3c3JlN2EzUkNzZm1ZZ1R4TWgz?=
 =?utf-8?B?bFFtWm1ZU2NycStkem5yRXp5Q1o4UzBoaGc0bFBvSm5mNUJNR1ZJTUZaUjda?=
 =?utf-8?B?aHpQZzlMNC9uQVpWNDFtSTV5VzVBdFRGbE9VZHhGSXZ6RTdIVzI2VjBvZVhv?=
 =?utf-8?B?ZHdtRHFER2txeHNyd0hpTmNYeHNjTkJTUXF1eGdNbC9IcFN3SGtucXFCL1dC?=
 =?utf-8?B?a2d0alpyUFN6TC9jcFFNK3NKenhoTklVWVc3WkZpb2xrazlCL05LenBWRnUz?=
 =?utf-8?B?MXU4SVcwMVAvZGdtU0JHWGk0cFBLZHFZY0g3L0dzTnJnSTFhRXpnbjRsUzFM?=
 =?utf-8?B?QjE0ZjhaWTlrSGQ1aGxuRzljUGFNL3ZhZDlTNnJJUm9lYnpXakVvdWpPZTRE?=
 =?utf-8?B?bWZabS8wU0xkUTNmaGVySFRaRHpLbXZGRzNQbC95SmVYWk56eWNwaldyR2xN?=
 =?utf-8?B?MzhiSGE1Z3lpZ0daL2NvRmUrM1IwQTZWeU81UHExaWdFTGxUUHRUb3UwRnhU?=
 =?utf-8?B?SUpsekxtbEZ2RTU0ZTJHdWRLZmlQRC9vY3hPempaSGVBR3NIL2lTdUQrOEFp?=
 =?utf-8?B?aUFhWEVHT3FqcCt5WUJMbEpFRFJKeUxJK1BRbGFPNlFpS0NSOHJTWWYwdWE2?=
 =?utf-8?B?L1NhOWlFaUdWdWtiV2pERldzRSt5R0tZdTIvM05HUkcvMExzVWhoTjBHN3A5?=
 =?utf-8?B?RCtPbkpnN3hBWXU4c0R3YTg1bk5uRC9FUjE2U3NGNU5ubFVIR29vRko4Z3E4?=
 =?utf-8?B?cXNlQy9VMTJoTjIxTldWM3AxL1IxODQ0dVp0bTJFaEpRem54YUJIeTFNSkhn?=
 =?utf-8?B?Q3hEa3FVWEJnN2F3VytFelZVOE1BcURBN29mbDBJcmE5YWtzbWNWK3kxYlYy?=
 =?utf-8?B?MG83MTdSajJkb3YxWFJFZUtRRzhhUEdoMUJTYkZDUWVweis0bks0dklyQ29n?=
 =?utf-8?B?TUVCQ2U2WkIvUHF0OVN0SFV5dUJaN1BjZGh1azlYejdEcXBBNVJTVE5lNVN6?=
 =?utf-8?B?eFlkNFlSbHFpMEFRUGZ4VURBbjJRcWY2WWs1Unl2RU5FTkw4WDVHUGJSdmp6?=
 =?utf-8?B?c3c9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 153a2f37-9b01-4771-f8b0-08de20765f9a
X-MS-Exchange-CrossTenant-AuthSource: DM4PR03MB7015.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2025 16:29:51.9438
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wXVY3mygWCe4fJ+paLglfpafyQmhz5Wx1WIhT/d/GnSt2iDWbf3jQPKYU6B13t2o/tN7SpHv8z3nLfe2gDF9h8dAB4HD6g7bdAwdgmdOlyI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6390

On 26/09/2025 4:47 pm, Oleksii Kurochko wrote:
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Chnages in v2:
> - Drop the following items:
>   - Allow to unflatten DTs.
>   - Basic kexec support to Mini-OS for running in PVH mode.
> ---
>  CHANGELOG.md | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index ca1b43b940..0afd2eeb4b 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -14,6 +14,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>   - Debian Trixie added to CI.  Debian Bullseye retired from CI for RISC-V due
>     to the baseline change.
>   - Linux based device model stubdomains are now fully supported.
> + - Remove libxenctrl usage from xenstored.

This is about libxenmange.Â  I think it wants to say:

- Introduce libxenmanage as a stable library, replacing xenstored's
dependency on unstable libraries.Â 

Otherwise, LGTM.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 16:43:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 16:43:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158595.1486924 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIUzd-00084E-Nm; Mon, 10 Nov 2025 16:43:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158595.1486924; Mon, 10 Nov 2025 16:43:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIUzd-000847-KR; Mon, 10 Nov 2025 16:43:49 +0000
Received: by outflank-mailman (input) for mailman id 1158595;
 Mon, 10 Nov 2025 16:43: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=cpW6=5S=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vIUzc-000841-Mk
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 16:43:48 +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 6d6a3fc3-be54-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 17:43:47 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b72b495aa81so365533866b.2
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 08:43:47 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b72bf9be184sm1115880066b.56.2025.11.10.08.43.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 10 Nov 2025 08:43: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: 6d6a3fc3-be54-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762793027; x=1763397827; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zRniwjdc0UfaBLxkygqufg0mM1L6TlFxiMGSTb/bxmQ=;
        b=khVyWxdarrSTnD8hNziHPF/vot/mrjbKzJOSqSdxdDoYbf2GwDzdA9Z9j8WULvLy1E
         aOKsXgdbdBjH38MV0e8dsaWLqzUazV7SHKVaEYqZoqdTr56TMzetjoQtOZrsqvMfxZPB
         vDRCm8UGTGbEcs7AL5NFFdHHhGGC/6+KiLKh5fNJWAvxxhIgQXEXFVKtxGlkD7kowSdx
         boMrgCaVdaicNevaluuEKx8pm+PX8YuMSXmb/Qfo2tjslIoERAY9scGYvloa82R+rPS4
         hFsXzVV21SURqrDuYi6WL+v1EPZMuHHoKP8MrAe5KsaOkRMJ3DBmSAjrxpc8dKKKfzmQ
         rsZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762793027; x=1763397827;
        h=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=zRniwjdc0UfaBLxkygqufg0mM1L6TlFxiMGSTb/bxmQ=;
        b=dkWzMYKiOOMzb2h3I+7ngPT6y8CdUuPIl7mhC5EPRGASv65V2EAhpHmV7sFpVPWYqj
         17LnUwXOChVAxBWGlVdCmDZ46lNKOsHYpi/iImzZJuwkzQk/zlHT/HeFL+pyvXdhAsqM
         TspcCmR/TVgRnylKKxFEmDCtqBvAtGzgYVAzNaQndoP3dOwmcVMV19z0aLC9JQISQB8G
         +K8PG7NgBz3oHRqoMa3EbaqxGL3AKMcG0bzLMM3mI86VoLep6QE/BG6bvztRPwDBjbp1
         Uc64+vwl8txovTzlGI3hOxegJPI0lwDSYhjdUnAxE1olpKT2kwEubNCLB06Rp/52cWDK
         Bhbg==
X-Forwarded-Encrypted: i=1; AJvYcCXKrEJTMzlPnuRvzTW8LWoX2zaa4Gku1v0tVlrIyxYDkDIjq7muPSRAbcbUgdkTLMyaNYRyHfnSCC8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzLVpa7LS1rhny9Aa6/YtC67cP9NbjEXU2xqFNh2GefaG9HB2Ie
	n68yUXkyM1FkxhQA5iQsPSvs7Dnuy3DaYo4g/EDDiiq7OgFpZSkAV7Kb
X-Gm-Gg: ASbGnctnSM3qI/e1vSlACOWDFjcr/92PuPSrN6JP8ZfA95YR2jhC2v7u4hCZfzQAiNn
	2FKrY11Fa9s2fBnh+kDaBySeZsj3TxmstyvphgVQGVb3/gY0sVAtOqaRDEIGoeiKpFX0Kn/rxTT
	jP5GefUacpBxqmimwi0FDLBwo1wQEOZ+qFan9DlpyuLTtFFrnD5/CZP5eEY4wU55KjJv+DVWNEI
	f7ancZ9jY0YHhS3au+MXuNOwsOt9Tn5wuED4mswqQU5+bedowxvmIH7kLMZ3aO6e5NcyYbGBQq9
	HCFBqCLl424E+9fkn/YlE58hZy5d9kNUy7PPJCF6YfDSGBe9/QqxsL3vG3Utuy+x4V6eXL70VTt
	mmNCos5KRxU+uvf6/YZvpMIBUkjY6fRULFmhNlmLzijBkaLh9P99EUFcKVtHn4tWDr79N1fhnrF
	gJJ5dNPz0KuN2jNnmRKJV+KAZ/mmtWa0cC/OJkfu0d/o6s46/xEVnXwN6Fg34BcozQgAREkHU=
X-Google-Smtp-Source: AGHT+IE+Y1GCJ2WQX77Q3XWTOtt/Lgqy6/kagF35saYNe7k1ssyiOZQ+raISJLiuZ9b2DCVV4jigeA==
X-Received: by 2002:a17:907:3f97:b0:b70:f2c4:bdf2 with SMTP id a640c23a62f3a-b72e02dc592mr827710566b.23.1762793026141;
        Mon, 10 Nov 2025 08:43:46 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------D0bQwLXqUnPjcg6bY6Yul0lb"
Message-ID: <0b90e356-6d70-4a50-a426-d3919be019ec@gmail.com>
Date: Mon, 10 Nov 2025 17:43:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] CHANGELOG.md: Update for 4.21 release cycle
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
Cc: Community Manager <community.manager@xenproject.org>,
 committers@xenproject.org
References: <1930832802df980a6fe610233265bc238fcfaca4.1758901622.git.oleksii.kurochko@gmail.com>
 <60d1d66e-83cd-47b5-9b94-0325f411ca72@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <60d1d66e-83cd-47b5-9b94-0325f411ca72@citrix.com>

This is a multi-part message in MIME format.
--------------D0bQwLXqUnPjcg6bY6Yul0lb
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/10/25 5:29 PM, Andrew Cooper wrote:
> On 26/09/2025 4:47 pm, Oleksii Kurochko wrote:
>> Signed-off-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
>> ---
>> Chnages in v2:
>> - Drop the following items:
>>    - Allow to unflatten DTs.
>>    - Basic kexec support to Mini-OS for running in PVH mode.
>> ---
>>   CHANGELOG.md | 11 ++++++++++-
>>   1 file changed, 10 insertions(+), 1 deletion(-)
>>
>> diff --git a/CHANGELOG.md b/CHANGELOG.md
>> index ca1b43b940..0afd2eeb4b 100644
>> --- a/CHANGELOG.md
>> +++ b/CHANGELOG.md
>> @@ -14,6 +14,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>>    - Debian Trixie added to CI.  Debian Bullseye retired from CI for RISC-V due
>>      to the baseline change.
>>    - Linux based device model stubdomains are now fully supported.
>> + - Remove libxenctrl usage from xenstored.
> This is about libxenmange.Â  I think it wants to say:
>
> - Introduce libxenmanage as a stable library, replacing xenstored's
> dependency on unstable libraries.

>
> Otherwise, LGTM.

It is much better, Iâ€™ll be glad if this update can be done during the commit.

Thanks!

~ Oleksii


--------------D0bQwLXqUnPjcg6bY6Yul0lb
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/10/25 5:29 PM, Andrew Cooper
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:60d1d66e-83cd-47b5-9b94-0325f411ca72@citrix.com">
      <pre wrap="" class="moz-quote-pre">On 26/09/2025 4:47 pm, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Signed-off-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
---
Chnages in v2:
- Drop the following items:
  - Allow to unflatten DTs.
  - Basic kexec support to Mini-OS for running in PVH mode.
---
 CHANGELOG.md | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index ca1b43b940..0afd2eeb4b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,7 @@ The format is based on [Keep a Changelog](<a class="moz-txt-link-freetext" href="https://keepachangelog.com/en/1.0.0/">https://keepachangelog.com/en/1.0.0/</a>)
  - Debian Trixie added to CI.  Debian Bullseye retired from CI for RISC-V due
    to the baseline change.
  - Linux based device model stubdomains are now fully supported.
+ - Remove libxenctrl usage from xenstored.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
This is about libxenmange.Â  I think it wants to say:

- Introduce libxenmanage as a stable library, replacing xenstored's
dependency on unstable libraries.Â </pre>
    </blockquote>
    <p></p>
    <blockquote type="cite"
      cite="mid:60d1d66e-83cd-47b5-9b94-0325f411ca72@citrix.com">
      <pre wrap="" class="moz-quote-pre">

Otherwise, LGTM.</pre>
    </blockquote>
    <pre>It is much better, Iâ€™ll be glad if this update can be done during the commit.

Thanks!</pre>
    <pre>~ Oleksii</pre>
    <br>
  </body>
</html>

--------------D0bQwLXqUnPjcg6bY6Yul0lb--


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 16:44:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 16:44:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158606.1486934 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIV0K-00005i-WE; Mon, 10 Nov 2025 16:44:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158606.1486934; Mon, 10 Nov 2025 16:44: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 1vIV0K-00005b-Se; Mon, 10 Nov 2025 16:44:32 +0000
Received: by outflank-mailman (input) for mailman id 1158606;
 Mon, 10 Nov 2025 16:44:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8h32=5S=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vIV0J-000841-01
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 16:44:31 +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 873d6c02-be54-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 17:44:30 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-42b387483bbso1114020f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 08:44:30 -0800 (PST)
Received: from localhost.localdomain (host-78-149-11-196.as13285.net.
 [78.149.11.196]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42ac675caecsm23199456f8f.30.2025.11.10.08.44.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 10 Nov 2025 08: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: 873d6c02-be54-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1762793070; x=1763397870; 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=ATYaMcg4FdVN2MNi5kBpKlRbqlIhW8GlJrzSP+D662c=;
        b=ASmVSa45tcRod+cRwWAGcms2CgzrUUc2AJfHUA8EDSF3tDikxyboXlTtkneBy06JZQ
         I+Cy10aGnkUyex33eW5gqPQ8pOpJgoIdyKFJYVGfB0Ux2imUSsTKhtCRjUr24nj+xXCO
         KnjjsbeiZA42zPoX01bDZRzFPNVZUc4jKCYnY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762793070; x=1763397870;
        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=ATYaMcg4FdVN2MNi5kBpKlRbqlIhW8GlJrzSP+D662c=;
        b=NgmBDRSONH0J/VsK8tav1LxQ4NAUq40K8+RikXhS70DhxLQc3ascTGlqy2UHxHGbo8
         CmFbd7Gm9OIzBfXpTpuXFvOkx2FwOf//0BcXXD3oziciyscF0LB0Gl5ogFArt66hOFTg
         JjJ2Oy8UJLMFb68eGAB3a5XltwbKteJkkb9xLaXobVoKqOZGS9CguP5mjfjg9rJpHBwK
         LziYLi/Uui/16JYxn0JzQsRKaVbJbaoStUkMBqYGdQrBln+okVfcPPkhVZsuiMfwxvhe
         ua004uZbHIbScf0b3cnlCaGZNPllytJPdhQL8Sa1uqwgx7MYOTmUEoM1SQkDHLL1/rjc
         v66A==
X-Gm-Message-State: AOJu0YzyvH+OHANncZOf731DGrOLHy0CeUnjWiPMmtX/+/m/DG/gxHg6
	BqISNLbroNE9qJHp6tgtddqZh5I7MSFQV4ldKlgh2HEPrYBnCE0skWeVTEbA5ekcERjB9+ZkIbE
	o8/RDJgQ=
X-Gm-Gg: ASbGnct1GH9B3tgrWcgu8/qTkghKung/2cqPUHhw+IHeIxQtvqBnywpTXn16qgs7iJS
	B6kvvuStgXsCdgjXGwoDrAMVlOg9iZ6eeVgeY3oWRs3VXcdqB/QCQfquPoPoyGR0JJ6x1FuhPdb
	yuc9TuWBvxSBGeeLUkn26f4EU0ApY/U6sPlzRXZnlAUdSh4/+5HU0EDopHgCMoh69W9L0PkC+wq
	Nh4hTyi5j61xmiHT2c0Uu/U6PYd1tRwzl5gTeGgnlBlilrbNLMyE+MWMK+yh3GgYdnqZ1jMOyzL
	EwYDm+JY7VqZptuhOjgn0CZewjsPTATy2aF2XjL6F6wLvcHQQaqpJUTI0U0cI9BFoQutiZX3L5+
	oCGHTc9ssZVKDqEwlL3QjXMB7C4+dr5dT8yGl6F6TcpRjbxHIR9w99WBh7phuP3AbELP2s9YzL4
	1L7mgrp0KRvCv/fCm7z0+UpzzPuBppvWGWlPflrANWlaVq+wGnedMhbYV7UDBLqw==
X-Google-Smtp-Source: AGHT+IG4NH9qxjkFD9F37q4SK7PLG3paAGuS/tDALl4u+nmg7eo0NhiViB40kuNY5TZBUrzFCUkzMQ==
X-Received: by 2002:a05:6000:2510:b0:427:9e6:3a64 with SMTP id ffacd0b85a97d-42b2dc9f65bmr6875751f8f.47.1762793069663;
        Mon, 10 Nov 2025 08:44:29 -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>,
	Christian Lindig <christian.lindig@citrix.com>,
	David Scott <dave@recoil.org>,
	=?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@cloud.com>,
	Rob Hoes <Rob.Hoes@citrix.com>,
	Pau Ruiz Safont <pau.safont@vates.tech>,
	Andrii Sultanov <andriy.sultanov@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH] CHANGELOG: Note about oxenstored being deprecated
Date: Mon, 10 Nov 2025 16:44:27 +0000
Message-Id: <20251110164427.54299-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Christian Lindig <christian.lindig@citrix.com>
CC: David Scott <dave@recoil.org>
CC: Edwin TÃ¶rÃ¶k <edwin.torok@cloud.com>
CC: Rob Hoes <Rob.Hoes@citrix.com>
CC: Pau Ruiz Safont <pau.safont@vates.tech>
CC: Andrii Sultanov <andriy.sultanov@vates.tech>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

I'd like to add a --with-system-oxenstored= but I don't have time.  That will
have to wait for 4.22.
---
 CHANGELOG.md | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index fc4f6d7c8a09..080305ef456f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -53,6 +53,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 
  - Support of qemu-traditional has been removed.
 
+ - The in-tree oxenstored is deprecated and will be removed in a future
+   version of Xen.  It is moving into the Xapi project
+   https://github.com/xapi-project/oxenstored so it can be maintained in line
+   with the other Ocaml projects in the Xen ecosystem.
+
 ## [4.20.0](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.20.0) - 2025-03-05
 
 ### Changed

base-commit: 343e01fd1d31dc6867473599c2c49039386bdf79
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Nov 10 16:46:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 16:46:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158621.1486943 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIV2Y-0000lY-Er; Mon, 10 Nov 2025 16:46:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158621.1486943; Mon, 10 Nov 2025 16:46: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 1vIV2Y-0000lR-C6; Mon, 10 Nov 2025 16:46:50 +0000
Received: by outflank-mailman (input) for mailman id 1158621;
 Mon, 10 Nov 2025 16:46: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=Ugol=5S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vIV2X-0000lL-L1
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 16:46:49 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d84f21b6-be54-11f0-980a-7dc792cee155;
 Mon, 10 Nov 2025 17:46:46 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b725ead5800so428154166b.1
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 08: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
 a640c23a62f3a-b72bfa0f37csm1125001066b.64.2025.11.10.08.46.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 10 Nov 2025 08: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: d84f21b6-be54-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762793206; x=1763398006; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vMaAnMq1S1h5nBzqUg9PRKg5j8qtxsXvMkJvhFl3xkc=;
        b=eWET3o1sPrLphriBB04280bxufxuyLL5iumvx0e72/FXIqbeXPHDZxt5pZkBB9uQFh
         iskIULRne5b05a+ZtcYn4hEVig07abrZz0YQt9BtwyExGdX9OGEw0tf2jDwpFDnCpkdS
         BQODyUw8hR4kX7Psco5bv15vhQq1dy/iwxLDeX7M0gFore7jvRvL+VLsU2+p5iPcE7pN
         SsYOS+6esVj3hObrdyrV1zXateSM3RiE0oJmgXVsY2sFumQT8rLgVgXmYtK3Q34mM7Dr
         P/foQ01pyGlc9PvqIwCfm5cW5DhJChAIkzL9anU9rh3lsEeMeWvWvStUJ0LHUiIcDn6m
         R9/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762793206; x=1763398006;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vMaAnMq1S1h5nBzqUg9PRKg5j8qtxsXvMkJvhFl3xkc=;
        b=fzstmTp2KT5M0B0/50FDu5Wv/yR3foc4MOsAFr7cjsWNCk0HtchGzMsafzjVdCKCy2
         dBy8FYXwtuQ97F+TatpYQfnkIC4h7iuB5WOwgu70RO7D3SwwLb6Gygz1NzLUo0DdjYMh
         jymiIVyouq8tOXT2cVPRLJA3z6YYChPwFG6x8k5LeFhDQfgSdWNY40OCjEIreWEmqoTc
         j5m8mcNYmOb22UTCu3Y0NklV2L4L6LenMBgRMPmk1har4bDWQljGhkEfsR3ENQZVWZ5p
         gp78NFX+R0X10ZrHB1a73FDiwBBHWFPew4lattx01OiSZArKxGa1lz+D/jx+ZkdHHrxz
         tygg==
X-Forwarded-Encrypted: i=1; AJvYcCXaNHwAOen6OqTE/XNjy6TMAPfc4armtTEj7Ud1OY81lAh02MQBW8nz8Dkmrm1tQRXJolNk0T1FhHA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywlxw/v+1J0uMgLTmf45b6QdIImbdS0d83c34k+ZBNXxdJePGyE
	LHRwP7sABIuJsyrCE5eNZqq6x/2uaT9wC6/CsqWqmAYGi6GIe0LFcQ3JWWe+SReaWw==
X-Gm-Gg: ASbGncuRDdtNiDj+YPfTYaufWb2izwtNc91cKKeRw//YXovFxiXgyAMC8nwDjq1Wzsz
	VKfIG+IKNpXaQqULfMIntYXFF0OdFn+HAluiRnyzAPeBZmXXkauoXh+ktUl+FknPXYPF+CnUoEt
	CZlLZ3bMEQq532Mz3DZZ7L2B3u4fHjsiAwNIk1hiZb8vJ5zb6ZA9q2JEZAZ7SARZaev2dJfqV8+
	o+LKpMR1vz3MsFXojtNzwy/m/sg/W16jTPFHPfQXXBbxoqPJwnNeAJqMJF5FIl3yUOu95POwZkM
	lP4D/k62s0EWx7b6t2qQRZBXmZqFudq/4kTxxMXERcAcZ9qiRQh7YBe4DFUuj0HGsATVZ1KNvJb
	LvpK9mRwS1TlEYsgCFMWuUvcqVU1MtBJYrgLFQWgCtczfQZ57nhkMCJfQrskaMtuRHrK96fLedn
	U1bvES/NIMKHDlbMaWQzpWFw7J9IIkh1N+9iV+ZSx4fj649fDsLtGf+H9u/SmbbxgTe4HSXDlW6
	JI=
X-Google-Smtp-Source: AGHT+IGWt6it8T2LMnBSKMAzRlrs5QzgCbc3mBhJppPH+OKUapWDU8AjOuwo9704Eb72gnNv1J3ZXQ==
X-Received: by 2002:a17:907:7ba4:b0:b6d:8e29:8f67 with SMTP id a640c23a62f3a-b72e02dcc65mr858100966b.26.1762793205959;
        Mon, 10 Nov 2025 08:46:45 -0800 (PST)
Message-ID: <c40be165-0db3-4115-b96b-92624b669e74@suse.com>
Date: Mon, 10 Nov 2025 17:46:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 17/18] xen/riscv: add support of page lookup by GFN
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <3eea04894401202666ea0bb7ee1240a23ba54d8a.1760974017.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: <3eea04894401202666ea0bb7ee1240a23ba54d8a.1760974017.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.10.2025 17:58, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -1049,3 +1049,178 @@ int map_regions_p2mt(struct domain *d,
>  
>      return rc;
>  }
> +
> +/*
> + * p2m_get_entry() should always return the correct order value, even if an
> + * entry is not present (i.e. the GFN is outside the range):
> + *   [p2m->lowest_mapped_gfn, p2m->max_mapped_gfn]).    (1)

There's one closing parenthesis too many here (likely the one before the colon).

> + * This ensures that callers of p2m_get_entry() can determine what range of
> + * address space would be altered by a corresponding p2m_set_entry().
> + * Also, it would help to avoid cost page walks for GFNs outside range (1).

DYM "costly"?

> + * Therefore, this function returns true for GFNs outside range (1), and in
> + * that case the corresponding level is returned via the level_out argument.
> + * Otherwise, it returns false and p2m_get_entry() performs a page walk to
> + * find the proper entry.
> + */
> +static bool check_outside_boundary(gfn_t gfn, gfn_t boundary, bool is_lower,
> +                                   unsigned int *level_out)
> +{
> +    unsigned int level;
> +
> +    if ( is_lower ? gfn_x(gfn) < gfn_x(boundary)
> +                  : gfn_x(gfn) > gfn_x(boundary) )
> +    {
> +        unsigned long mask = 0;
> +
> +        for ( level = P2M_ROOT_LEVEL; level; level-- )
> +        {
> +            unsigned long masked_gfn;
> +
> +            mask |= PFN_DOWN(P2M_LEVEL_MASK(level));
> +            masked_gfn = gfn_x(gfn) & mask;
> +
> +            if ( is_lower ? masked_gfn < gfn_x(boundary)
> +                          : masked_gfn > gfn_x(boundary) )
> +            {
> +                *level_out = level;

For this to be correct in the is_lower case, don't you need to fill the
bottom bits of masked_gfn with all 1s, rather than with all 0s? Otherwise
the tail of the range may be above boundary.

> +struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
> +                                        p2m_type_t *t)
> +{
> +    struct page_info *page;
> +    p2m_type_t p2mt = p2m_invalid;
> +    mfn_t mfn;
> +
> +    p2m_read_lock(p2m);
> +    mfn = p2m_get_entry(p2m, gfn, t, NULL);
> +
> +    if ( !mfn_valid(mfn) )
> +    {
> +        p2m_read_unlock(p2m);
> +        return NULL;
> +    }
> +
> +    if ( t )
> +        p2mt = *t;

Doesn't it need to be the other way around? The way you have it, when a caller
passes NULL for t, p2m_get_entry() won't give you a type, and you'll do all
further work with p2m_invalid.

Also, might this better move ahead of the earlier if()? Callers might be able
to do still something based on the type, when they get back NULL as function
return value. (Practically this might only become of interest once you add
something like PoD, paging, or sharing.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 16:48:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 16:48:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158631.1486954 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIV4E-0001Hp-QD; Mon, 10 Nov 2025 16:48:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158631.1486954; Mon, 10 Nov 2025 16: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 1vIV4E-0001Hi-MH; Mon, 10 Nov 2025 16:48:34 +0000
Received: by outflank-mailman (input) for mailman id 1158631;
 Mon, 10 Nov 2025 16:48: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=Ugol=5S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vIV4D-0001Hc-V4
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 16:48:33 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 17ae2014-be55-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 17:48:32 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b731b176b5eso37073366b.1
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 08:48: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
 a640c23a62f3a-b72bfa24d2asm1113644766b.70.2025.11.10.08.48.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 10 Nov 2025 08:48: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: 17ae2014-be55-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762793312; x=1763398112; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=R8+QZGgVmEaud9doZNmkJqdoOW5bjN903RjW0q6qGLI=;
        b=dJdwCtECzXcVKwYjaaPyUDKWXEek8zRu7KDtdaToOsL95+QS9ZMiaXOhNvY+JJmPhD
         lxvc2OfKXXJLsrtgQQNNeS9VaYpll/HunSV5KPi7SSioGSTm8PPAYDccizSnGTDocqqf
         EDW1awi5W/myFY3yi6FthuRbDTF6c1FX1sW8XAVCaNCbwj9XKTrh13FF8gwxARBnUpt5
         /oZrop7rwflMGtizrLZKi+Av2hqCgeibHSyQTf+Xobno2rhD3/z2U6IHOYc658Oudehq
         2/uOzM3m+VigPY2mPfBpmfucKxotFTZ3gxo/cjU0v9ALBj88+TwqJKc3LyHi4F5WNSNz
         Ksiw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762793312; x=1763398112;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=R8+QZGgVmEaud9doZNmkJqdoOW5bjN903RjW0q6qGLI=;
        b=A5IkhJyAUFP1LP0FGcVtXPXFjQaRGu5m4cgVYzekZko9n4C9F9KKxsc2KF1/8GSacr
         jGk06O5rVHyTrB2H2/Q2x0YXARFNYHE2QhVKMSevOWu+AbVt6Uj7S9vVLVbarpVZlJuE
         I9fpL1YHW5N4xxe6btIf5Ypq3t8idIObLo5PgcnQfgu5TpyRHkSI9H7JaKVaYamsKIWu
         pDiQh72cdAzbR7U/1iHEzPTUbNUQvJsGJdjgBhdPvPy08SuTshJ/mG9+rdqyg4stQT/p
         l6KHJgzZViZkjKg14tVwlOaaDj2Crk4VPo3R1D+KO4SrLUIvfrGg6oCJ8YxY0LXlslG9
         /Tcg==
X-Forwarded-Encrypted: i=1; AJvYcCUBFAHdmvq2d2M6vAabMChlapjMSP0W4RUKUcmWcRUKDKvDx22nlkU3ltocH45LMqamAlIxx13K+kE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzqjg3B1FCGe7KbTbyzB4zfk4/5QEbUZM6sw3+x1N0es6Pu2M+m
	bvyAm+0t/E+Ln5ejunB0lRH+1h0hqV+nAWErZpoV8mkByN/01/KcDpnQfGu1CRlwz77fI6KPccU
	T6D8=
X-Gm-Gg: ASbGncuHpsQbVjWbSlu+zfyFds415CWKT+6Z5okFoevbzXoQjGwgamEc41zPPMKCLmS
	WW/tDW/cUmi6KjkaA7SCDO41hfQRLioQldTqsFmll4UyDlZ852X4z5CqNCIB9cFWlhvM3ok+V5k
	C7eHI8cc+iNSQAVRlw77B5mXEYjwCC7tZ2Dw1gqA7s7PTEHXdGRnjBJcQxH+SzfR2+zpcW+4eGn
	qHHKJa4KLb3KmlPaNADS+74GVwz7Q4fuhw/DTUsaiNLmlLjt/9OGaaK6Lj7fhZ3lf7op6iEEQte
	UGMsRtdR3IedF1aExDgvl30fvzvMx9jO10hCHAZYqS0xrHBLqkeAWK78QbG31wtnJADk9uRIdk4
	JHKOtCvAfZ5WJFUOGYidVR8L+Et+hC2etult+rvCxjWxoz9iGiDxQBV4U5K6JIK37RRS8y73/8R
	t+g8ndROJGFFHiKhxXJTIaiTAFs5hyrldnk+PEN4fzHoeajQoJ895+6FLsTXNJ2KVkLEizeFaBC
	9oG+bU4pxbwDQ==
X-Google-Smtp-Source: AGHT+IFzyT23zB+JKnbAU6yqJPaFEwaQRrC3AkD6id1HpRGpKmwmCTYvgILSyOh/Gyl5aRoA2iV88Q==
X-Received: by 2002:a17:907:ea5:b0:b71:29f7:47ef with SMTP id a640c23a62f3a-b72e05a4cd7mr720571066b.61.1762793312268;
        Mon, 10 Nov 2025 08:48:32 -0800 (PST)
Message-ID: <06fcbcc3-0c21-4d33-b02a-059f70823235@suse.com>
Date: Mon, 10 Nov 2025 17:48:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CHANGELOG: Note about oxenstored being deprecated
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>,
 Christian Lindig <christian.lindig@citrix.com>, David Scott
 <dave@recoil.org>, =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@cloud.com>,
 Rob Hoes <Rob.Hoes@citrix.com>, Pau Ruiz Safont <pau.safont@vates.tech>,
 Andrii Sultanov <andriy.sultanov@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251110164427.54299-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: <20251110164427.54299-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.11.2025 17:44, Andrew Cooper wrote:
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Based on the prior discussion:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 16:49:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 16:49:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158642.1486964 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIV4p-0001lU-1g; Mon, 10 Nov 2025 16:49:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158642.1486964; Mon, 10 Nov 2025 16:49:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIV4o-0001lN-UV; Mon, 10 Nov 2025 16:49:10 +0000
Received: by outflank-mailman (input) for mailman id 1158642;
 Mon, 10 Nov 2025 16:49:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7fAs=5S=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vIV4n-0001Hc-KS
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 16:49:09 +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 2c5361b9-be55-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 17:49:08 +0100 (CET)
Received: from DM4PR03MB7015.namprd03.prod.outlook.com (2603:10b6:8:42::8) by
 DS7PR03MB8070.namprd03.prod.outlook.com (2603:10b6:8:251::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9298.16; Mon, 10 Nov 2025 16:49:05 +0000
Received: from DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9]) by DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9%3]) with mapi id 15.20.9298.015; Mon, 10 Nov 2025
 16:49: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: 2c5361b9-be55-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=auVqcZJHz+lD3v/zYnmX65IOkdvx0Nl876r/+RbA+87FVulQubYQP4R5kD3vG/X3qMw/N7lsJJ/EhwYci6hfLfYC1wjUWShs3RWhXp1OmfRXP/8AcykLKT4Ws2/BCDwKjCEcQpBF/CEcIyDxpyFjYdXW1tJMSfml7aBWj1YpMGYklaIBpKoNDHgvdVWjCq1ts6eXtMqMo2Ua+E0a7bqEHmcSLl8vOgW8gWrWauIU/sHTmT7Xu+P9ZEs4i6WkqX7Xctf4HD2VsenukhxxBv7z/xafUxVJSCucoeUVldvdn8nYvW0qFf5ppE8nu794CqfIhMaPdzsqupj5DSqfiTPHCw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ovrz+Gv7X8NjgGn22TrXQnjpRTpoKBXB7w5Uq+s+8Cg=;
 b=Le4S+HZMUs1Jhn2iGGhwIfx9R6rZkeINO7jfR8m/Zynh7jripZ5T6jUTbRhSdjaLENj6CxeB+CAyxS3xxPxKk1nPJv2f3awBSNz9wdCFEcAnCbOwGv6RyaVrEVoVqSeNy77SQrmiRpcATKQMUQowwD+8VrAwkVIShH2G1jkatWQa1CKF3RnFQH3ITgs1O+QxYF48qMPRb2zJBJSid0FmFhKsWuPn3I0Omnj3kjVMD/3bc82rQwVYA0AP7fdj2jwKqdPXaeRZy1hGKK4Sc5Lsewv3LkOQl939vjfdzJ941hQRUv7MKZl2nxRL3hktgcTASV13B6jFJMTLDK4CQo9Q0Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ovrz+Gv7X8NjgGn22TrXQnjpRTpoKBXB7w5Uq+s+8Cg=;
 b=uf3fdtxNIlVfdYwr8oIDz6gu3wWdgtQ5nkG+nbD+xMa0YvKEXPKH+GcU5WLFrVwC5/s+7ZTVs/VPb3RYAxp/wz3MWfnGnPvNahgahzXuCR2EjFRSY/OqZJ78VqUdzdGVXJ3O8DMnMA5pr5FRqETmNsudBj3mS7Jv2TbCgh9MPjM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <af578377-8c77-496f-a553-3894077c3ade@citrix.com>
Date: Mon, 10 Nov 2025 16:49:01 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] CHANGELOG.md: Update for 4.21 release cycle
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
Cc: Community Manager <community.manager@xenproject.org>,
 committers@xenproject.org
References: <1930832802df980a6fe610233265bc238fcfaca4.1758901622.git.oleksii.kurochko@gmail.com>
 <60d1d66e-83cd-47b5-9b94-0325f411ca72@citrix.com>
 <0b90e356-6d70-4a50-a426-d3919be019ec@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <0b90e356-6d70-4a50-a426-d3919be019ec@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0012.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:150::17) To DM4PR03MB7015.namprd03.prod.outlook.com
 (2603:10b6:8:42::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR03MB7015:EE_|DS7PR03MB8070:EE_
X-MS-Office365-Filtering-Correlation-Id: cd7a6f8f-c193-436c-30d5-08de20790f02
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?OXI5SXRSZ0ZXa1c4SjF4V1hJemFQTFpuSTNKTXhsY1A1dHNSRVVPNitxdmxn?=
 =?utf-8?B?bHBkR1kxTFRPWTZsMGtWbHNtY1QyTUUzSWljdllsNlJYOVpuZmdwN2RzVXU2?=
 =?utf-8?B?aGdGaEZ5b1JVZlRhdy9SRGJVOTI5QWlyNVBOdXhCb21VWUZsdE9BRFZjRUdR?=
 =?utf-8?B?QmlGZndMWDlyVDJGTEkwRDl3QU9jbjJWbWllbGx1WUtzak0vbDIxZEhJa2hS?=
 =?utf-8?B?OG1QVFI3dEdOMDNtaEF4VDcrRXM3WUhqL05zeDVWak9QTU0xU3Z4WnNQRDVx?=
 =?utf-8?B?RTRzeVJDcDZ0V2RRdjBvRHJaVmRhci9wZ0NrMklnbCtIUE1FOVRRZ1FCdTRj?=
 =?utf-8?B?eTMvVWo2S3VhS0YyREJ6K0hralNZU2FMRkxDVDB6ZzZZeFA5dlVDY0JxUHJo?=
 =?utf-8?B?VVplQmprbGJJdHZ2dGlubXc5Vm01UU5DSmZvSjUvTUtUU1JKajB1eEoxSzJV?=
 =?utf-8?B?L0U2OUdqOWM1WjA4ZzFzaDhRYXJnWno4YXFlTU05ckZybFNqR1lManozUEdM?=
 =?utf-8?B?STNUUzF5aDFyenNhMUlDVll4Q3J4Yy9rUkZxYWpEWnh3RVJ5REJQNW1YTTVS?=
 =?utf-8?B?Qk1sNTFKNXpvU1FPemwzNTlvNDdadlg0S0VoYUs1T3I4QlE5Q3MwbFphYi84?=
 =?utf-8?B?Tk5RVTZRbHlDYkxWSS95OGw2aC9VUnBsMXhHRGlJVmZ0ckZBTS9MODRwY3VX?=
 =?utf-8?B?M21tLzlmMlo1amhwVWZhR3AyMVNmdmtpb3h6RjJRV2tnQUpMWVNGd2lTNEph?=
 =?utf-8?B?dE1CZXFkYytLZmFTeDN4bURlTnZDZXJVWGh6aGgzRFBOQVlTY0R0OGJON0xw?=
 =?utf-8?B?Mitsb1FacjRqZU1keUVKNm5yZGNsZ2tJV1ByM0U5c3ViWDZUT0RraTE1WXgr?=
 =?utf-8?B?Ry9FK2V6UmVvbHVNYUhMbk1oK3pwd0p1OXJFUU5rRjRPOWR1UTExSkFCS1BZ?=
 =?utf-8?B?K0s1cm1PZ3M0VWtTRHJkOG55b2hlUzdwN2hPS0JibndBb2g1clJkdWZZTVpU?=
 =?utf-8?B?NFlFdms5RmZYZldMRWZDMjZVYnhMZFVlay9Ya0R3cGZidjNoTXZJUXN1cnVa?=
 =?utf-8?B?emNHMXNkMFh5dTV6bks1dnUrTk1rVzBlQjAwSDAySk5RQS9DUjNWbTRyc0VQ?=
 =?utf-8?B?T2RZRWVsNlZmekJWMnV5Qnh0RzBPTWhTT3poUERUdC81ajgreEZ2Q1pvSlY4?=
 =?utf-8?B?c2Nkbnk0SW5HVVR0YXVZUlNWWHZvV2crSmtFUUpLY2l2L3ExWU5PTW1VZWZx?=
 =?utf-8?B?Qjk0T0NqNjVPaTk2ODlXL284VHloSURJNXJJaWRGRTVlRFlkL0pza2hNZUFN?=
 =?utf-8?B?ajBvWDBXY1JGd2F6NWQ3UzZHeGVWUjJPb3hqMjFLZHlMUWVxSHBIU1phQW9h?=
 =?utf-8?B?dFdqS0FVR25SR0YrSHZHTUsvNjFZQUNaTUlHQmM5NndrdG9aek1CMTVwOW5v?=
 =?utf-8?B?SGpLOGZLNWdzTExvU2xmUUEyR25JT296c1NBMUwwY0w0YTNNTkcwbHJuakV5?=
 =?utf-8?B?ZmdJenRycm5nZzAzZkZOcStjSStsUnN0MDlySENBbTEwa1pzUEo3L3M2ZUZr?=
 =?utf-8?B?RndWTG5va2prWTIzcVZJSkhtUEJQcTZESmJoQ0NwbWE4STMwcFk4S2RkcnRr?=
 =?utf-8?B?OVZ5YjJWWjVZOXE1czJGOCtVQ2JXMEt2enJkbWxqQ0JVcGdvQnQreUhwRG1a?=
 =?utf-8?B?Wk9pUit0TTVJMGNXL3JxZTZad1pCblB5TGE4WWk0eWw3WW9LVzRTeDZCNzdQ?=
 =?utf-8?B?YlFRQ3NoU3FHYXltbTZXamcxSDhiVDVEMXU2SlVvYUc0VlBNYUQxcnZZdWhk?=
 =?utf-8?B?UnVpbHk3b0pITlNmWjhDZUpQdWRFV1FjOG05ZjhWZy9mZkRvb2c1NGRYVVU5?=
 =?utf-8?B?bXg4MUJtZjdSdUVROWp0ZXN2WCszZTlKZ2UxZFNoeGgyNmc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR03MB7015.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?ZVZXeU9OVVMvNCtNWlk0bXhRcE8wSVhCN0tkdlpjV1hWMFNHNzNmbVdJZGpV?=
 =?utf-8?B?YTNlQW5TdGptekYvUmtLMi8xcTk2bTdBWHkrbGVwN3JpQTE4TTBDL0IyUTNw?=
 =?utf-8?B?a01TSHJxazFMZ3lvNjhRTExxQVNJWUg4MmVBZ1lVSEd1RDBlRGxmL3luZHVZ?=
 =?utf-8?B?cFRFa0tkUHRaTzQ5dFBUVncyeE9XTzFrNG00c3I1VlJKb3FuYXJOa1oxVkRC?=
 =?utf-8?B?cmFrRDRJdXRHQnU1MDd2UUtLM1JEYk1PN2VrTU96RWJKU2d2dzFuMzJtZHgz?=
 =?utf-8?B?ajN3L01Hc2t2dkFWb3hpbUN4c3cxbVJtTjBUR3FmVVVPbG02THBQcEdmSUN2?=
 =?utf-8?B?Um52c3M5MjVYVDMxVXFaOW1mbEh3TVBiZTRHQVRzQWlqWUw2d2tDcE1RWUcr?=
 =?utf-8?B?YUl2MERtcFBCcWtBUFhYdjFOUDFIMmJpWmxjWW90QUFha040VmRwODNhenRp?=
 =?utf-8?B?QnA1WUp5NFRBT3dZWUhhWDRnODlsaCtsT3lVR0VwSTB1RXVKYjNwM3dVWUxv?=
 =?utf-8?B?OVdIWG9xbENlWERoSkMyME5td2Z2Yncvc2ZoWERFQTFsazN2dkVPZE52SjZD?=
 =?utf-8?B?QkN3dllxUzgwdXoxcW9peU1CVmMyM3owM3UwcUxxSWJmbDUvWi9BejR2Q1JZ?=
 =?utf-8?B?ZmswcldpVUsxd2Q5U1duU1JFSEx2RE56RlhFSE93NE5rYkI2L3JHUGhVL0xF?=
 =?utf-8?B?dEEvdjBmS0wwbVgxeWRndk1DZTVkbTBqQ05QTjlNdjRpTnNmUFdCTEtHUVdU?=
 =?utf-8?B?YkFrSlhVRjRNUHlLOUxOaTVjUWxhM2lWQll3K1liOGJYdFZyMGdqbnlxejVE?=
 =?utf-8?B?bk1vUVZQWE1GZXAyYUd6NkpwQ1NvcU8zRUJYTDNQcmd5VENiejF5Ly81b2hU?=
 =?utf-8?B?WkVpcW44WjRYK1Y3SHNxVmRVMkxJUFpaT1E4TTFtY2lYRGExME9CNGNqaFo0?=
 =?utf-8?B?U3dYTk1uaEZjY0FJQUY2a3lJWGpHMEJhM09yTzBpbTVvODNUNjhTMGFZUUNI?=
 =?utf-8?B?U2JYT0VjeHJkTS9aOC95ckVIYzIyT3dCVDRCdkRzUkt1SVBaUWVJNStXOTEz?=
 =?utf-8?B?NlZHRm5SWXM3V0xQOGw4VWFOS2ZINDY0SHBzYjVLVkh1bkYyTDdxd1E1cG9x?=
 =?utf-8?B?MUQvY29Ed1Y2amNQVmVGN21Ta1QrTkNYVnR6VFlGSitPMm5RanhpM0JYWW5X?=
 =?utf-8?B?VzB6cmVxQmtENCszYncyYmtMeUcrNzVKdys5L1F3SjI1K1VISWJpdVVyVUJ6?=
 =?utf-8?B?T1UzcWE1MUJUL1RUR2x0YkZDTFh5a1htK1U0Y3pSd012TTZ5UlBEenlYWmZw?=
 =?utf-8?B?a3hCUzkwZnpNV0o0VTJiS2hNYUdhNUlvZzFSWTZTYUpEMkcxb1JPK3pxRDN0?=
 =?utf-8?B?NkZTZU5YZzlnNTNabjBtTUFJU1VzY2JlZm9nSVpFSDJ5bzl4Z0xTRFdRcVJN?=
 =?utf-8?B?cnoxWG00NlpyVkg3QS9XbWtQUXc5d0FuYVdVVlRYRVlScnBxNnMwbjE4ZW1q?=
 =?utf-8?B?V1JKTVYyU0tRbGh5WFR6emZxbTZzVElzdFlDUWU1TmNNS2FWV2xKUE9UemZT?=
 =?utf-8?B?RytGaXMrektCZjRjRDV0akU2emYyWXN3cXVHOUE3OWRNbzBCY05pYUNDS1M5?=
 =?utf-8?B?bng2YkJxSWNQbWRGSVg1c084QjAzbWJoSk5Cenl2Nzl3cFhGM1BXYTZ2alIw?=
 =?utf-8?B?KzRKWnFvTkc4VDBIN1I4VWhpSWxWS1dDRGNNNTdYQmZ4MnBhNXBVYWJTQTM0?=
 =?utf-8?B?c24zcThvTWdERlB5UWxnNDhlUkNuTzFPNGVwUDUwaEhva0c4VEFacUJJVGNp?=
 =?utf-8?B?WHNMSnErUmRiZWRPK1UwQ0RiWGpOd0lieDUxR29QS203S2R2OFp4TWF2endC?=
 =?utf-8?B?QllFbG4yOGtXRGdiNU5OVDBaRUlEU0RIWjlVTXVBWEx4U1c2TVFua1RtMkhx?=
 =?utf-8?B?YnFYS0FtWmxIMEZFZE5GQmlZVG5tMnNNRUNOaTFjckE0Wm9KS3J4MXZkaGFi?=
 =?utf-8?B?cXcyNVJFZEtXRWRMb2Z1bVgxSGhtS1ZDSm5la0ZJK0g2WU5JNkxhRTE4RlU3?=
 =?utf-8?B?ckh5WnlHRUQyNXkwOFhkR2cwbFBJbFQ1aE5NSGE4L2tZL1lPZTZ3eFNXRVJx?=
 =?utf-8?B?cHF6K1Y2a20xSHl5bEdpb05xUGRSYlJnalpsNnAxQk1ZaWs2THdJU3NuQ3Br?=
 =?utf-8?B?S2c9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cd7a6f8f-c193-436c-30d5-08de20790f02
X-MS-Exchange-CrossTenant-AuthSource: DM4PR03MB7015.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2025 16:49:05.0356
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: B3gAydAzL+Qq9qBk3TBg9U3lLD+98cazzmgL/e1c+Sx4J2YSJxokoYK5D1dONxeCiUETlAdotsCeGPLmjFEvRGd3ajIjhr30ofzAC3Jn7IE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB8070

On 10/11/2025 4:43 pm, Oleksii Kurochko wrote:
>
>
> On 11/10/25 5:29 PM, Andrew Cooper wrote:
>> On 26/09/2025 4:47 pm, Oleksii Kurochko wrote:
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>> ---
>>> Chnages in v2:
>>> - Drop the following items:
>>>   - Allow to unflatten DTs.
>>>   - Basic kexec support to Mini-OS for running in PVH mode.
>>> ---
>>>  CHANGELOG.md | 11 ++++++++++-
>>>  1 file changed, 10 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/CHANGELOG.md b/CHANGELOG.md
>>> index ca1b43b940..0afd2eeb4b 100644
>>> --- a/CHANGELOG.md
>>> +++ b/CHANGELOG.md
>>> @@ -14,6 +14,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>>>   - Debian Trixie added to CI.  Debian Bullseye retired from CI for RISC-V due
>>>     to the baseline change.
>>>   - Linux based device model stubdomains are now fully supported.
>>> + - Remove libxenctrl usage from xenstored.
>> This is about libxenmange.Â  I think it wants to say:
>>
>> - Introduce libxenmanage as a stable library, replacing xenstored's
>> dependency on unstable libraries.Â 
>> Otherwise, LGTM.
> It is much better, Iâ€™ll be glad if this update can be done during the commit.

Will do.

Thanks,

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 16:53:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 16:53:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158656.1486974 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIV99-0003K5-HA; Mon, 10 Nov 2025 16:53:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158656.1486974; Mon, 10 Nov 2025 16:53:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIV99-0003Jy-EE; Mon, 10 Nov 2025 16:53:39 +0000
Received: by outflank-mailman (input) for mailman id 1158656;
 Mon, 10 Nov 2025 16:53: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=cpW6=5S=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vIV98-0003Js-Dq
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 16:53:38 +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 cd42984e-be55-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 17:53:37 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-64175dfc338so2891864a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 08:53:37 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-6411f713a68sm11747199a12.2.2025.11.10.08.53.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 10 Nov 2025 08:53: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: cd42984e-be55-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762793617; x=1763398417; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qqYiM8716F5Irc6ZGhE2C1vfyNNOVpEmZavfNHXNCzs=;
        b=ltjfRWdriY7A2SnneVATkMmR4bJDMB2UEz+azyZx77SGRrI/14oZewqjh+XVGKqK1c
         YM911/ATrETarivgRFq/QF6VY+7BGBMv7JUd7uAUXVhfeCv5FJ/ZakeGYPrbUBWnyHZG
         OGe92xzNH1nHFoVqNWJ6UvpwTK4qgr64Eghjejh14hPTYNYmiXPuJQYbut0ISryWGuWi
         2pU3VplrEMfR5rjjFwVT7gs7gYqKCYD29CnXoY7krU38XgKQ9tOiruTIbYzhKswA+QPu
         GZWYdTdhgeEC5hl9YhKuaLXKPYFUNcXGAuWNe57EuXSUxVlQc9ppbY0sH7SCtW6ZDc/+
         A1Sg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762793617; x=1763398417;
        h=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=qqYiM8716F5Irc6ZGhE2C1vfyNNOVpEmZavfNHXNCzs=;
        b=TUPsFepaqOix54p99JPmvgOxbUD/n0uKh++40dMjZVnNuKe4IZKmAbFX2JSVBzlE6g
         vWvMDBlvy3HoSRv2JZVIUU4k3r2gxGtZJ4jBuXzEDZXmPkXzFo148gr+xg0SW65Cqr2b
         Xzzsao0yvtw7qyMLgQ3qkg5yhMi1RSOXUtAsC/F9yJIH9ptR05MAHs2Z9tXTcvLj5Z9L
         0CpAayH1A7cF4bcUKNfEmpR6BE4NN3Ahb+xw0dMiIeaR7geYnIUO8TwMLPbU260X9O6b
         NHr3ulnsq+jPKS+v0qtDbR8WMBCqXIiaRF3z9U9h3fNRNJvRblURUV0f9yJocigRAZcY
         iv8w==
X-Forwarded-Encrypted: i=1; AJvYcCUDkDDMyYAxLy8nP/6DoA0WcMAUq0HK4Dcir69zFgDdMP1nQwtI9QUm0CrcUO5icOvE3bI9TLKvalQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwuxD9RjvVTSF99sww87bGlLvCniFN3Zp0tvmwGCnEdomUDlMMF
	P6IKuYXqXBrxw/+VLF/r3uAlPrpxC5eK4p1fdlQ2x67TMZqHGp6MX+yb
X-Gm-Gg: ASbGncueqjuyutzltdXBVp/5PcTodq6CjZqpgJpmbQBKs7G7MSY62kqOoBVq3HtR1dJ
	EPh4W5d3WFZmas3JlLFa/htiXEeVKTKxNxWRiYqcuSUT/87PM6G7I4cgOkIw0jRwktP0mpL1Qmb
	y17q08YZ+j6GIB1g+druju/LvOnVduVb9ipL3LsYUHkEto/C1C8uTwHaqJIcbaQqTfcnrOuoUCJ
	xf8XnUjii3fAcUSNZLZxv/JeLjMBI7rtUVLu6MwLqFFd9Iq1Xgb3P/Q1knaqo0vBinIaWCCYp/F
	hyyztJjt20cK7G8wvt+x0LmBDSpbnR2WCSOWHNXooJ30m6RKydGJLns+GefVt/jWLn1vdGnfBBY
	BEvGips/lCN7M0fueE3xNGLrmbstjtgbvlQMAr/Kp4vjBVT5sIu7MRnq2u7m4TBBHu6Vwa2vraX
	yOpyLpeQPgFYXjNLdjyvcuVQvFEkYH62kk/J+MFz9lk0dnLN+VX2XVMvdfVlrg
X-Google-Smtp-Source: AGHT+IHdZCCoMgZe6OW5EM0rxzL90QYVYbv/XC+Nh5KF4n4y/XUC2UxWtkFM+hvKYFlBLdn0UtL+pg==
X-Received: by 2002:a05:6402:26d0:b0:640:3210:6e48 with SMTP id 4fb4d7f45d1cf-6415dbf4f94mr7209732a12.4.1762793616760;
        Mon, 10 Nov 2025 08:53:36 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------oe5d8GbDWJ2guFaWTtG6z0U0"
Message-ID: <d5b79f66-2b03-418c-96bf-f0f4fad3b713@gmail.com>
Date: Mon, 10 Nov 2025 17:53:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CHANGELOG: Note about oxenstored being deprecated
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Christian Lindig <christian.lindig@citrix.com>, David Scott
 <dave@recoil.org>, =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@cloud.com>,
 Rob Hoes <Rob.Hoes@citrix.com>, Pau Ruiz Safont <pau.safont@vates.tech>,
 Andrii Sultanov <andriy.sultanov@vates.tech>
References: <20251110164427.54299-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20251110164427.54299-1-andrew.cooper3@citrix.com>

This is a multi-part message in MIME format.
--------------oe5d8GbDWJ2guFaWTtG6z0U0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/10/25 5:44 PM, Andrew Cooper wrote:
> Signed-off-by: Andrew Cooper<andrew.cooper3@citrix.com>
> ---
> CC: Anthony PERARD<anthony.perard@vates.tech>
> CC: Michal Orzel<michal.orzel@amd.com>
> CC: Jan Beulich<jbeulich@suse.com>
> CC: Julien Grall<julien@xen.org>
> CC: Roger Pau MonnÃ©<roger.pau@citrix.com>
> CC: Stefano Stabellini<sstabellini@kernel.org>
> CC: Christian Lindig<christian.lindig@citrix.com>
> CC: David Scott<dave@recoil.org>
> CC: Edwin TÃ¶rÃ¶k<edwin.torok@cloud.com>
> CC: Rob Hoes<Rob.Hoes@citrix.com>
> CC: Pau Ruiz Safont<pau.safont@vates.tech>
> CC: Andrii Sultanov<andriy.sultanov@vates.tech>
> CC: Oleksii Kurochko<oleksii.kurochko@gmail.com>
>
> I'd like to add a --with-system-oxenstored= but I don't have time.  That will
> have to wait for 4.22.

ItÂ would be nice to introduce "--with-system-oxenstored=", but, at the moment,
I can agree that it is enough to announce that oxenstored is deprecated and
will be removed in a future version of Xen:
  Release-Acked-By: Oleksii Kurochko<oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii

> ---
>   CHANGELOG.md | 5 +++++
>   1 file changed, 5 insertions(+)
>
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index fc4f6d7c8a09..080305ef456f 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -53,6 +53,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>   
>    - Support of qemu-traditional has been removed.
>   
> + - The in-tree oxenstored is deprecated and will be removed in a future
> +   version of Xen.  It is moving into the Xapi project
> +https://github.com/xapi-project/oxenstored so it can be maintained in line
> +   with the other Ocaml projects in the Xen ecosystem.
> +
>   ## [4.20.0](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.20.0) - 2025-03-05
>   
>   ### Changed
>
> base-commit: 343e01fd1d31dc6867473599c2c49039386bdf79
--------------oe5d8GbDWJ2guFaWTtG6z0U0
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/10/25 5:44 PM, Andrew Cooper
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20251110164427.54299-1-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">Signed-off-by: Andrew Cooper <a class="moz-txt-link-rfc2396E" href="mailto:andrew.cooper3@citrix.com">&lt;andrew.cooper3@citrix.com&gt;</a>
---
CC: Anthony PERARD <a class="moz-txt-link-rfc2396E" href="mailto:anthony.perard@vates.tech">&lt;anthony.perard@vates.tech&gt;</a>
CC: Michal Orzel <a class="moz-txt-link-rfc2396E" href="mailto:michal.orzel@amd.com">&lt;michal.orzel@amd.com&gt;</a>
CC: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a>
CC: Julien Grall <a class="moz-txt-link-rfc2396E" href="mailto:julien@xen.org">&lt;julien@xen.org&gt;</a>
CC: Roger Pau MonnÃ© <a class="moz-txt-link-rfc2396E" href="mailto:roger.pau@citrix.com">&lt;roger.pau@citrix.com&gt;</a>
CC: Stefano Stabellini <a class="moz-txt-link-rfc2396E" href="mailto:sstabellini@kernel.org">&lt;sstabellini@kernel.org&gt;</a>
CC: Christian Lindig <a class="moz-txt-link-rfc2396E" href="mailto:christian.lindig@citrix.com">&lt;christian.lindig@citrix.com&gt;</a>
CC: David Scott <a class="moz-txt-link-rfc2396E" href="mailto:dave@recoil.org">&lt;dave@recoil.org&gt;</a>
CC: Edwin TÃ¶rÃ¶k <a class="moz-txt-link-rfc2396E" href="mailto:edwin.torok@cloud.com">&lt;edwin.torok@cloud.com&gt;</a>
CC: Rob Hoes <a class="moz-txt-link-rfc2396E" href="mailto:Rob.Hoes@citrix.com">&lt;Rob.Hoes@citrix.com&gt;</a>
CC: Pau Ruiz Safont <a class="moz-txt-link-rfc2396E" href="mailto:pau.safont@vates.tech">&lt;pau.safont@vates.tech&gt;</a>
CC: Andrii Sultanov <a class="moz-txt-link-rfc2396E" href="mailto:andriy.sultanov@vates.tech">&lt;andriy.sultanov@vates.tech&gt;</a>
CC: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

I'd like to add a --with-system-oxenstored= but I don't have time.  That will
have to wait for 4.22.</pre>
    </blockquote>
    <pre>ItÂ would be nice to introduce "--with-system-oxenstored=", but, at the moment,
I can agree that it is enough to announce that oxenstored is deprecated and
will be removed in a future version of Xen:
 Release-Acked-By: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

Thanks.

~ Oleksii</pre>
    <blockquote type="cite"
      cite="mid:20251110164427.54299-1-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">
---
 CHANGELOG.md | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index fc4f6d7c8a09..080305ef456f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -53,6 +53,11 @@ The format is based on [Keep a Changelog](<a class="moz-txt-link-freetext" href="https://keepachangelog.com/en/1.0.0/">https://keepachangelog.com/en/1.0.0/</a>)
 
  - Support of qemu-traditional has been removed.
 
+ - The in-tree oxenstored is deprecated and will be removed in a future
+   version of Xen.  It is moving into the Xapi project
+   <a class="moz-txt-link-freetext" href="https://github.com/xapi-project/oxenstored">https://github.com/xapi-project/oxenstored</a> so it can be maintained in line
+   with the other Ocaml projects in the Xen ecosystem.
+
 ## [4.20.0](<a class="moz-txt-link-freetext" href="https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.20.0">https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.20.0</a>) - 2025-03-05
 
 ### Changed

base-commit: 343e01fd1d31dc6867473599c2c49039386bdf79
</pre>
    </blockquote>
  </body>
</html>

--------------oe5d8GbDWJ2guFaWTtG6z0U0--


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 21:18:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 21:18:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158709.1487140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIZH0-0001gy-HT; Mon, 10 Nov 2025 21:18:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158709.1487140; Mon, 10 Nov 2025 21: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 1vIZH0-0001gr-Do; Mon, 10 Nov 2025 21:18:02 +0000
Received: by outflank-mailman (input) for mailman id 1158709;
 Mon, 10 Nov 2025 21:18: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=NhZs=5S=gmail.com=samaan.dehghan@srs-se1.protection.inumbo.net>)
 id 1vIZGz-0001gl-H7
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 21:18:01 +0000
Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com
 [2607:f8b0:4864:20::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ba805f40-be7a-11f0-980a-7dc792cee155;
 Mon, 10 Nov 2025 22:17:58 +0100 (CET)
Received: by mail-pl1-x62f.google.com with SMTP id
 d9443c01a7336-297eca3d0a3so27382685ad.0
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 13:17: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: ba805f40-be7a-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762809476; x=1763414276; 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=HlTqH2QqRYRkrsFCW1+6qU6zhJzU2clBO3yX2ShB2Dw=;
        b=b6KSiZZVvXnBQ4kKCrL8iscC55yokzZiyDUHMrdT23QsEQC5eodj878At95jB5mb8k
         OobMMEsbfon5a6Y6UaUCj1VaPqjoLtTCYFsELmsqq7QeRM2LsTR1IttiK5JB9jEJkLuj
         zGC1mCdAvAFdEZDwytE5moMJJxYFwqaGb9TcdX+HpWQiCIVNEOEsmXgJowl8YmHbXNuK
         XvLNn3evPecb6A6QlgQQExm3D3tlT3ai5nUfueqoHADTCNuz486ZAns5KjHXLN+rTWZh
         mTh1quijTwt+CZKOXUN2RmQYsbLUIxgb9XGmkLDw4LU58eNiD5WYB45+J1qn80ZCt3mD
         Sgkw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762809476; x=1763414276;
        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=HlTqH2QqRYRkrsFCW1+6qU6zhJzU2clBO3yX2ShB2Dw=;
        b=N1aKpX8m6469xIGMgTifXrok+4mOxNulAnq41I+U4timBm4/U60tBRFoMh2tS6/08N
         uBVDvhw/5JBpkB2jHWHu1vztIDX6KcHQo11nNYvnLvlX4drB/I9DfOpHgr5dlgVFQJXq
         cW+8BRVlrf/r42qS5I9ICff/jgxTXRXZ+6CagVXoxAjlEly9ZDzlZtHYLSc3UqTa7Dl0
         krmNXLtHKbgefpN8KDJAo4+ETYVpYTaeDdugS7NZKUu5U4guSCu+eoBpmlRfJ51K5aku
         UedLg2anb2cmVZXwjK7lehVxrLewz3BmoFy73b3dqM2wSSn2IPPHjaTAlJUXr5YyIww3
         T8Qg==
X-Forwarded-Encrypted: i=1; AJvYcCV1c3yn1W+QKzExivCuGyJk+vUvcqtgsA0h2BpQV6VvRf8SjDCZhITA5jgZLnx3alL/SUIPp4+EEfI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwKLxeQhfpBepWXKMnhPxOjq5v0oYU8c+hjRUFnkrShVU/Uq+/8
	6G1GcVBlftEKAkkmvISs9MPI8PQ8q/YWm0clP7J9yX0GmkfzA2pkZsJnWP2vB/5QHUaxjJvjQDB
	H9xtgI3tL41tOUHCi2Cq9sGfersAkCQ==
X-Gm-Gg: ASbGncuFad/FF1flOHFe9G9bgNrWJPhkXTeQ9sc/QODZWrVEWEirSCE32Bner5CagKS
	jbJLn9nPfdKG2DngW6S0SLIP5R9iZT+YXDH+2S8v71Q/6saEBp3xMYwhJxhzIYuUgaSUwHQ2h5t
	lAvclofYGdf8Iw5GvrvYopFOipgjVjUSJB12a5Nre7xzPj0HIY/O4ZsPnT/UEH/yLhkBr4z5EcF
	Zcl2t17WcMQnF6xN4GyBdrJPoMcXUQTGNtVP7S7Wq+I1lfuouWppjogCg==
X-Google-Smtp-Source: AGHT+IGsaXeuQa2bpyTz/UVSFBN6MS2vjtdGN9vE1W06qF+XGm4PfJepC/O+Z/ErK8RG0UzL4ttlD+bK5PnldlEFaGg=
X-Received: by 2002:a17:902:f70a:b0:290:c94b:8381 with SMTP id
 d9443c01a7336-297e540d89bmr125911475ad.7.1762809476512; Mon, 10 Nov 2025
 13:17:56 -0800 (PST)
MIME-Version: 1.0
References: <20251023233408.16245-1-samaan.dehghan@gmail.com>
 <f61d5a29-04f0-44cc-bef6-de05f240bbc8@citrix.com> <88bff8bf-195b-432d-97af-317398796d40@xen.org>
 <CAJ=z9a2=jzZSJW9Y8rNhA2L=m9jYF1ziuzoEwH7+DAG+q-HKCA@mail.gmail.com>
In-Reply-To: <CAJ=z9a2=jzZSJW9Y8rNhA2L=m9jYF1ziuzoEwH7+DAG+q-HKCA@mail.gmail.com>
From: Saman Dehghan <samaan.dehghan@gmail.com>
Date: Mon, 10 Nov 2025 15:17:45 -0600
X-Gm-Features: AWmQ_bkJ3CYcuYqtxh8JHBeX3XPx6T6BTJPaL-KQWOlv1Av8yZV6g8LB3Y1sCgU
Message-ID: <CAHFNDNgfDaYUeN5fWs82urAzsG++cCAwWaPZyXDo0Vn4yEEK_g@mail.gmail.com>
Subject: Re: Support of building Xen with Clang/LLVM on Arm?
To: Julien Grall <julien.grall.oss@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Wentao Zhang <wentaoz5@illinois.edu>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Nov 4, 2025 at 5:35=E2=80=AFAM Julien Grall <julien.grall.oss@gmail=
.com> wrote:
>
> Le mar. 4 nov. 2025 =C3=A0 10:44, Julien Grall <julien@xen.org> a =C3=A9c=
rit :
> > Happy to review any patches for clang support on Arm.
>
> I was told privately that there is a series on the ML to add support
> for Clang (see [1]). It looks like there series
> had some reviews but needs a new version. Adding Volodymyr as the
> original author.
>
> [1] https://lore.kernel.org/all/20241129014850.2852844-1-volodymyr_babchu=
k@epam.com/
>

Thanks for the pointer. We have tested this patch from our side and it
already solved our problems (specifically patch 1, 4 and 5). Shall we
resubmit this patch again or follow up on the original thread?

Also regarding the comment [1] shall we explore alternative fixes?

[1] https://lore.kernel.org/all/1d1684b2-ed0e-47cb-ab78-72cd2f51aafc@suse.c=
om/

Thanks,
Saman

> >
> > Cheers,
> >
> > --
> > Julien Grall
> >


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 21:26:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 21:26:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158721.1487150 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIZPB-0003N5-9O; Mon, 10 Nov 2025 21:26:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158721.1487150; Mon, 10 Nov 2025 21:26:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIZPB-0003My-6I; Mon, 10 Nov 2025 21:26:29 +0000
Received: by outflank-mailman (input) for mailman id 1158721;
 Mon, 10 Nov 2025 21:26: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=NhZs=5S=gmail.com=samaan.dehghan@srs-se1.protection.inumbo.net>)
 id 1vIZPA-0003Ms-M6
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 21:26:28 +0000
Received: from mail-pl1-x635.google.com (mail-pl1-x635.google.com
 [2607:f8b0:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e5f16b49-be7b-11f0-9d18-b5c5bf9af7f9;
 Mon, 10 Nov 2025 22:26:20 +0100 (CET)
Received: by mail-pl1-x635.google.com with SMTP id
 d9443c01a7336-298250d7769so8471165ad.0
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 13:26: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: e5f16b49-be7b-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762809979; x=1763414779; 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=WFaSpbEeEWlm6saSXKTVet3psxgvT7XoH/HQLrH0hns=;
        b=Ryo69RD2PDoI94Y32RGqpEs0hr+qQ8+Ul0zPccx84oMntST0P+TJJFmPIjEQWie3Qv
         pcXCxiIhauu8froPbUKIzyXqSUqkeAKD8Q9d1RvDqi5HiMeItypE2WVAHzgeKaY5iXMA
         ABQ9GPoxoaOBbBZU0TZOiDwg3/mOoiIQHGZqSCUlUMhL8A3a29ibW2lHbzjil32TFHQQ
         kMNdqsCoeTUvohEFZwdc0cqH3igzGSWL328b0Ziml8pIGUy+pDZ6fluHK3gg93F30etP
         v+XxDojuo1I7zW65meLVus53rYN1JVuxqoet+OGa+5dMJ4z4ZDDCskv9WbvJUM+yqK4H
         ThRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762809979; x=1763414779;
        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=WFaSpbEeEWlm6saSXKTVet3psxgvT7XoH/HQLrH0hns=;
        b=M0VBa3TdcKpilsBE/rsO4JQjjzB6WAaxNWfuSd4qK1PsK6zlhUpwZhqW4Hg6AnXr6/
         LFbCNUryqhcl9f9TPwwnFXDQ5Ho8xaQLhfqjau90kc9nEdSGrMSRV2BaMvReOBZDmLYx
         HituHEDPjv1IFJHT1n0Gpc+uplMIEiISM84kppGZqTF04Fgc3ztE3DeA6v1MSHplbzUn
         QDex9BruoUc1uAc5UC5lNtOR+q2nw/4xxrY5Kd5IyLWD3cxro+OVn6Dam4rXLkiQNCRm
         /UehRVVsMBFK+/KLWLDKSgm3tGsD+vOAtEakENVY/v5HlEQoFrkZOE2Soj48IARrFsin
         Rokg==
X-Forwarded-Encrypted: i=1; AJvYcCVrKAOUto87esfEK6oBwf3ylCCtVxpTwxqSwi6tjOq/Yct3Kcc3+rohfh7ql7NBv2gAlO0U0eCe2lU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZ1PVHksq3bIoVnCV0jPI2QuOhBXEV9t3GC5ARzDqIotsCzd29
	6RtW25NcgC+pZ8o/FeiuqANMg+7WaGHdl4VQq6GJJh/zRwfIguXFqLdR8xMBSHKrFXfFSwTLdhn
	lzqmAPK5EwupvxmWHYf68IM3//gzLQpVPQE/1CA==
X-Gm-Gg: ASbGncsd0lYROPPOHTEknmOYKNcmjeZt/ummVunRtTCHK5f9tGrkpHUwQvqfNcUDKYH
	QS/YbaLk+WzvnlBh+nr0/re+en6H+YnDi+DdIbpTq9gEmn5tfNVTz28/Anq0LrO6aoUjk666Q9y
	ID8UG2OfHS6JJ1+1U3RzUVvUlM1nknTvJElHXI0Ozkvb0VP5L2ASM2ye5fEJyDNx+ogauD2Kv/0
	Q6Gw6TvkRAzu8C0GjTm7geqykio8HPawS8aBa23K//j62TA+F3ENpc5dQWJOBvZmkq6
X-Google-Smtp-Source: AGHT+IE8i7GQxkWg034R9C/DqIgb7t0E60wx7hRqXAOSHMQOCM+M7ULYjPULGdBlccDi19/asahJrp3Te3C8qtcwWI0=
X-Received: by 2002:a17:903:988:b0:295:9cb5:ae07 with SMTP id
 d9443c01a7336-297e56c9dccmr102362685ad.38.1762809978973; Mon, 10 Nov 2025
 13:26:18 -0800 (PST)
MIME-Version: 1.0
References: <06646f747f21c3f388cf6e9d59a20238a4a91170.1761263588.git.samaan.dehghan@gmail.com>
 <6f708273afb6de9c5f26f2c71c34c98e957904a0.1761599320.git.samaan.dehghan@gmail.com>
 <b701374d-61b4-4657-bd01-4c6975741fbd@citrix.com> <ed198b16-f15f-40f2-ae38-85292e52dad1@suse.com>
In-Reply-To: <ed198b16-f15f-40f2-ae38-85292e52dad1@suse.com>
From: Saman Dehghan <samaan.dehghan@gmail.com>
Date: Mon, 10 Nov 2025 15:26:08 -0600
X-Gm-Features: AWmQ_blOkyT29G0mOoKssCVTl3j7y9IRCwrMJYfSj_mnCFBBSndXZ0PYGBNd1YY
Message-ID: <CAHFNDNjcUYC2AiU12eifOeqAbveAqCGHX6+=2oE15-bQ8NzjGw@mail.gmail.com>
Subject: Re: [PATCH v4] xen: Support LLVM raw profile versions 5, 6, 7, 8, 9,
 and 10
To: Jan Beulich <jbeulich@suse.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>, 
	Wentao Zhang <wentaoz5@illinois.edu>, Matthew L Weber <matthew.l.weber3@boeing.com>, 
	Oleksii Kurochko <oleksii.kurochko@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Nov 10, 2025 at 8:03=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 27.10.2025 23:36, Andrew Cooper wrote:
> > On 27/10/2025 9:30 pm, Saman Dehghan wrote:
> >> This change enables compatibility for measuring code coverage
> >> with Clang versions 11 through 20 by supporting their respective raw
> >> profile formats.
> >>
> >> 1- Added support for LLVM raw profile versions 5, 6, 7, 8, 9, and 10.
> >> 2- Initialized llvm_profile_header for all versions based on llvm sour=
ce
> >>    code in compiler-rt/include/profile/InstrProfData.inc for each vers=
ion.
> >> 3- We tested this patch for all Clang versions from 11 through 20
> >>    on x86 platform.
> >> 4- Fixed linking warnings related to LLVM profile sections in x86.
> >>
> >>
> >> Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>
> >> Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> >> Tested-by: Wentao Zhang <wentaoz5@illinois.edu>
> >> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
> >> ---
> >> Changes from v3 to v4:
> >>   1- Use LLVM_PROFILE_VERSION in preprocessor conditionals
> >>      instead of __clang_major__.
> >>   2- Use DIV_ROUND_UP helper.
> >>   3- Remove unnecessary zero initialization inside struct.
> >>   4- Remove fallback macro definitions in linker script.
> >> Changes from v2 to v3:
> >>   1- Additionally support raw profile version 5, 6, 7 in clang 11, 12,=
 13.
> >>   2- Fix coverage related linking warnings in x86.
> >>   3- Revert unnecessary type changes, casting, etc.
> >> ---
> >
> > Excellent.  Thankyou.  This all looks in order.  I've committed it.
>
> I thought I would backport this, but I would need a variant that wouldn't
> regress profile version 4 on the older branches

Thanks Jan for offering to backport this. Which target branches do you
have in your mind?

> regress profile version 4 on the older branches

Do you mean some of these branches are still using clang < 11 so that
we need to adapt our patch accordingly? Let me know how we can help.

Thanks
Saman

>
> Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 10 23:02:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 10 Nov 2025 23:02:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158736.1487167 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIau6-0006vc-W5; Mon, 10 Nov 2025 23:02:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158736.1487167; Mon, 10 Nov 2025 23: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 1vIau6-0006vV-TQ; Mon, 10 Nov 2025 23:02:30 +0000
Received: by outflank-mailman (input) for mailman id 1158736;
 Mon, 10 Nov 2025 23:02:29 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vIau5-0006vP-HU
 for xen-devel@lists.xenproject.org; Mon, 10 Nov 2025 23:02:29 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vIau4-000Gln-31;
 Mon, 10 Nov 2025 23:02:28 +0000
Received: from [2a02:8012:3a1:0:7c23:6ba:10ba:c44c]
 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 1vIau4-001hT3-1s;
 Mon, 10 Nov 2025 23:02:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=0xwmyzEEGDSQClUJUJsvvMbHRf2FWr64X4lXqjn9IQg=; b=JkajC3ezAx++GkOQcfgjWEjWzW
	p4FE87yqw+z+Ni0/R5dkQz8zL75k6WzoCntRl1Ul3i0Z+GXLNC3GTDNxqmO0dyJvwZO7lWk+jF089
	IRGuO9BRSAiyjfjzFvzFz4e321xtfyP5/kK8y+PWQJdJfDTwUj6+dl4AUo9JOKtPDrHo=;
Message-ID: <241eaaf3-069c-4dc8-8161-45a9563dbc77@xen.org>
Date: Mon, 10 Nov 2025 23:02:26 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v13 01/12] xen/common: add cache coloring common code
Content-Language: en-GB
To: Mykola Kvach <xakep.amatop@gmail.com>,
 Carlo Nonato <carlo.nonato@minervasys.tech>, xen-devel@lists.xenproject.org
Cc: andrea.bastoni@minervasys.tech, marco.solieri@minervasys.tech,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20241217170637.233097-1-carlo.nonato@minervasys.tech>
 <20241217170637.233097-2-carlo.nonato@minervasys.tech>
 <0b5f19ea-6e33-4658-a165-f0af1cffbd03@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <0b5f19ea-6e33-4658-a165-f0af1cffbd03@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Mykola,

On 07/11/2025 08:27, Mykola Kvach wrote:
>> +void __init llc_coloring_init(void)
>> +{
>> +Â Â Â  unsigned int way_size;
>> +
>> +Â Â Â  llc_coloring_enabled = (opt_llc_coloring >= 1);
>> +Â Â Â  if ( (opt_llc_coloring != 0) && llc_size && llc_nr_ways )
>> +Â Â Â  {
>> +Â Â Â Â Â Â Â  llc_coloring_enabled = true;
>> +Â Â Â Â Â Â Â  way_size = llc_size / llc_nr_ways;
>> +Â Â Â  }
>> +Â Â Â  else if ( !llc_coloring_enabled )
>> +Â Â Â Â Â Â Â  return;
>> +Â Â Â  else
>> +Â Â Â  {
>> +Â Â Â Â Â Â Â  way_size = get_llc_way_size();
>> +Â Â Â Â Â Â Â  if ( !way_size )
>> +Â Â Â Â Â Â Â Â Â Â Â  panic("LLC probing failed and 'llc-size' or 'llc-nr-ways' 
>> missing\n");
> 
> As far as I can see, this error means that we did not detect a suitable 
> LLC/unified cache.
> Maybe it would be better to make that explicit in the panic message.

I am rather confused why there are reviews on the series that was merged 
nearly a year ago. If you have comments that needs to be addressed, then 
it would be best to either send a new series or start a new thread (if 
there are bugs which needs discussion).

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Nov 11 05:41:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 05:41:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158750.1487178 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIh7V-0001Ta-Gg; Tue, 11 Nov 2025 05:40:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158750.1487178; Tue, 11 Nov 2025 05:40:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIh7V-0001TT-Dx; Tue, 11 Nov 2025 05:40:45 +0000
Received: by outflank-mailman (input) for mailman id 1158750;
 Tue, 11 Nov 2025 05:40: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=6vR8=5T=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vIh7U-0001TN-3s
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 05:40:44 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f394c3ff-bec0-11f0-980a-7dc792cee155;
 Tue, 11 Nov 2025 06:40:38 +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-out2.suse.de (Postfix) with ESMTPS id 93CEA1F399;
 Tue, 11 Nov 2025 05:40: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 EE43F147C6;
 Tue, 11 Nov 2025 05:40: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 WgjyN1LMEmnJEQAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 11 Nov 2025 05:40: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: f394c3ff-bec0-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1762839636; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=WzB9snX+1cQR5aQuTxWO/g7tHthgNAiuBjoyn4m6Zj4=;
	b=ZXl3lVpxhNvAkTvDsbeUDY01+Mwkkf9cZ0UK6td4LyEuxOcf8X/DsMEibhNYZNzaHfTe5P
	sysEmAWFcR/316n3e2TxwZRRKXwFDn4X22gzc/zF3woMlBrhje2UqB1lknfXAHD3iIAPs9
	KtJE5sTvKcaCXrU8eLbP7m1yzRFlF+c=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=KgOWke1h
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1762839635; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=WzB9snX+1cQR5aQuTxWO/g7tHthgNAiuBjoyn4m6Zj4=;
	b=KgOWke1hVRHhfaQPY/nVCBfXo/Evocj8ljfMtytKvO+CULklDdMipJTRFMES1loL8N2wi/
	kknrh3PAm6NS3LgLW3bfcwi8CyyRcR4aoJDtYzOuzIZDKLsmpC6Xg8zC+oNbLZZriewLGN
	vw0XAq8wVfYHdvBmurlIXx/5I4rk9OE=
Message-ID: <1edf3212-14a1-4525-91b2-967fd4d736e9@suse.com>
Date: Tue, 11 Nov 2025 06:40:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CHANGELOG: Note about oxenstored being deprecated
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Christian Lindig <christian.lindig@citrix.com>, David Scott
 <dave@recoil.org>, =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@cloud.com>,
 Rob Hoes <Rob.Hoes@citrix.com>, Pau Ruiz Safont <pau.safont@vates.tech>,
 Andrii Sultanov <andriy.sultanov@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20251110164427.54299-1-andrew.cooper3@citrix.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: <20251110164427.54299-1-andrew.cooper3@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------ZQG8HmEisg0kZZe18hzBrThb"
X-Rspamd-Queue-Id: 93CEA1F399
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-4.91 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	SIGNED_PGP(-2.00)[];
	SUSPICIOUS_RECIPS(1.50)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	NEURAL_HAM_SHORT(-0.20)[-0.989];
	MIME_BASE64_TEXT(0.10)[];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MX_GOOD(-0.01)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com];
	TO_DN_ALL(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	RCPT_COUNT_TWELVE(0.00)[15];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	FREEMAIL_CC(0.00)[vates.tech,amd.com,suse.com,xen.org,citrix.com,kernel.org,recoil.org,cloud.com,gmail.com];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	MID_RHS_MATCH_FROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	TAGGED_RCPT(0.00)[];
	HAS_ATTACHMENT(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns]
X-Rspamd-Action: no action
X-Spam-Flag: NO
X-Spam-Score: -4.91
X-Spam-Level: 

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------ZQG8HmEisg0kZZe18hzBrThb
Content-Type: multipart/mixed; boundary="------------VNcoahBNNhpFyyVINew9Fv0Y";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Christian Lindig <christian.lindig@citrix.com>, David Scott
 <dave@recoil.org>, =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@cloud.com>,
 Rob Hoes <Rob.Hoes@citrix.com>, Pau Ruiz Safont <pau.safont@vates.tech>,
 Andrii Sultanov <andriy.sultanov@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Message-ID: <1edf3212-14a1-4525-91b2-967fd4d736e9@suse.com>
Subject: Re: [PATCH] CHANGELOG: Note about oxenstored being deprecated
References: <20251110164427.54299-1-andrew.cooper3@citrix.com>
In-Reply-To: <20251110164427.54299-1-andrew.cooper3@citrix.com>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------VNcoahBNNhpFyyVINew9Fv0Y
Content-Type: multipart/mixed; boundary="------------9l013AKPNQ5K7KTR8HV9zznA"

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

T24gMTAuMTEuMjUgMTc6NDQsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IFNpZ25lZC1vZmYt
Ynk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+DQo+IC0tLQ0K
PiBDQzogQW50aG9ueSBQRVJBUkQgPGFudGhvbnkucGVyYXJkQHZhdGVzLnRlY2g+DQo+IEND
OiBNaWNoYWwgT3J6ZWwgPG1pY2hhbC5vcnplbEBhbWQuY29tPg0KPiBDQzogSmFuIEJldWxp
Y2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPiBDQzogSnVsaWVuIEdyYWxsIDxqdWxpZW5AeGVu
Lm9yZz4NCj4gQ0M6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPg0K
PiBDQzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPg0KPiBD
QzogQ2hyaXN0aWFuIExpbmRpZyA8Y2hyaXN0aWFuLmxpbmRpZ0BjaXRyaXguY29tPg0KPiBD
QzogRGF2aWQgU2NvdHQgPGRhdmVAcmVjb2lsLm9yZz4NCj4gQ0M6IEVkd2luIFTDtnLDtmsg
PGVkd2luLnRvcm9rQGNsb3VkLmNvbT4NCj4gQ0M6IFJvYiBIb2VzIDxSb2IuSG9lc0BjaXRy
aXguY29tPg0KPiBDQzogUGF1IFJ1aXogU2Fmb250IDxwYXUuc2Fmb250QHZhdGVzLnRlY2g+
DQo+IENDOiBBbmRyaWkgU3VsdGFub3YgPGFuZHJpeS5zdWx0YW5vdkB2YXRlcy50ZWNoPg0K
PiBDQzogT2xla3NpaSBLdXJvY2hrbyA8b2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20+DQo+
IA0KPiBJJ2QgbGlrZSB0byBhZGQgYSAtLXdpdGgtc3lzdGVtLW94ZW5zdG9yZWQ9IGJ1dCBJ
IGRvbid0IGhhdmUgdGltZS4gIFRoYXQgd2lsbA0KPiBoYXZlIHRvIHdhaXQgZm9yIDQuMjIu
DQo+IC0tLQ0KPiAgIENIQU5HRUxPRy5tZCB8IDUgKysrKysNCj4gICAxIGZpbGUgY2hhbmdl
ZCwgNSBpbnNlcnRpb25zKCspDQo+IA0KPiBkaWZmIC0tZ2l0IGEvQ0hBTkdFTE9HLm1kIGIv
Q0hBTkdFTE9HLm1kDQo+IGluZGV4IGZjNGY2ZDdjOGEwOS4uMDgwMzA1ZWY0NTZmIDEwMDY0
NA0KPiAtLS0gYS9DSEFOR0VMT0cubWQNCj4gKysrIGIvQ0hBTkdFTE9HLm1kDQo+IEBAIC01
Myw2ICs1MywxMSBAQCBUaGUgZm9ybWF0IGlzIGJhc2VkIG9uIFtLZWVwIGEgQ2hhbmdlbG9n
XShodHRwczovL2tlZXBhY2hhbmdlbG9nLmNvbS9lbi8xLjAuMC8pDQo+ICAgDQo+ICAgIC0g
U3VwcG9ydCBvZiBxZW11LXRyYWRpdGlvbmFsIGhhcyBiZWVuIHJlbW92ZWQuDQo+ICAgDQo+
ICsgLSBUaGUgaW4tdHJlZSBveGVuc3RvcmVkIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUg
cmVtb3ZlZCBpbiBhIGZ1dHVyZQ0KPiArICAgdmVyc2lvbiBvZiBYZW4uICBJdCBpcyBtb3Zp
bmcgaW50byB0aGUgWGFwaSBwcm9qZWN0DQo+ICsgICBodHRwczovL2dpdGh1Yi5jb20veGFw
aS1wcm9qZWN0L294ZW5zdG9yZWQgc28gaXQgY2FuIGJlIG1haW50YWluZWQgaW4gbGluZQ0K
PiArICAgd2l0aCB0aGUgb3RoZXIgT2NhbWwgcHJvamVjdHMgaW4gdGhlIFhlbiBlY29zeXN0
ZW0uDQo+ICsNCg0KSSBrbm93IHRoaXMgaXMgYSBsaXR0bGUgYml0IGxhdGUsIGJ1dCBuZXZl
cnRoZWxlc3MgSSdkIGxpa2UgdGhlIGNvbmZpZ3VyZQ0KaGVscCB0ZXh0IHJlZmxlY3QgdGhh
dCBtb3ZlIGJ5IGNoYW5naW5nIHRoZSBwYXJhZ3JhcGggdG8gbm8gbG9uZ2VyIG51ZGdlDQp0
aGUgdXNlciB0b3dhcmRzIG94ZW5zdG9yZWQgYnkgY2xhaW1pbmcgb25seSBveGVuc3RvcmVk
IHdvdWxkIGJlIHJvYnVzdC4NCg0KDQpKdWVyZ2VuDQo=
--------------9l013AKPNQ5K7KTR8HV9zznA
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-----

--------------9l013AKPNQ5K7KTR8HV9zznA--

--------------VNcoahBNNhpFyyVINew9Fv0Y--

--------------ZQG8HmEisg0kZZe18hzBrThb
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/Ey8FAmkSzFIFAwAAAAAACgkQsN6d1ii/Ey+c
Hwf/Rq5nn7JNNDjbuzp1UbL6A51+3H2f7+qBreDFHuPgBemJnX+/ROtQdCRJcyiKXv88Z9whmyq3
NyGuYStQSkEqu0IZXrDfKSnq18FX2dfe6YHf6fwhCzQpUTjid+vYpeeJC/InrrwEuA/r0foQ+uyl
1pv2IWVmTDEwAtoNudZCDIDvVfN3AykOTzrssKUXY7iWhU877qicBG6cNd3XrFB2ZNV8biu+CcbO
b8emu8OtHhTmrsvXgE29gfNaIWZZiBJJEoJrRsXC/cYyqMjg5Vl3l6I/Tbz9UH5MGFBF2IUiEKdL
jRLXd3lWvGRNNkZfdeAlcZ5UBqwdT5ZxDbPYFa2pxw==
=oftM
-----END PGP SIGNATURE-----

--------------ZQG8HmEisg0kZZe18hzBrThb--


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 07:08:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 07:08:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158767.1487188 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIiU8-0002jU-FO; Tue, 11 Nov 2025 07:08:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158767.1487188; Tue, 11 Nov 2025 07:08: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 1vIiU8-0002jN-C2; Tue, 11 Nov 2025 07:08:12 +0000
Received: by outflank-mailman (input) for mailman id 1158767;
 Tue, 11 Nov 2025 07:08: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=Ifhn=5T=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vIiU6-0002jH-FV
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 07:08:10 +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 2bf79a8f-becd-11f0-980a-7dc792cee155;
 Tue, 11 Nov 2025 08:08:07 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 SN7PR12MB7153.namprd12.prod.outlook.com (2603:10b6:806:2a4::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.15; Tue, 11 Nov
 2025 07:08:02 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%3]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 07:08: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: 2bf79a8f-becd-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Id111xkmCRbKxIQi679UzPymjOia5W1Dx51eVgsDmodC12EaNkD4aViBQr5fz0da2c1GN9dYBaUVM9fM8/t40WOout4MXmh25wHLtSoDlu3AmXXuhDCJEBAL5XjPVN2XPVOkOvi+HP7KqMP7CeXtdiPSu6rNAZRUKwzWB7GZbzxonNxfj73ARxnxJP/LF+T1kjVyLCT+OGwRsPbhvUD/xhSRnePu4bVSJOluWXsgtifkFeFf3szN/mwMaIARqw/mm6HhZVUqRQpF7Yu0AsAzUk3DpDloVM+U5yn584Rmdx3qejXJsNzOEqz8S7OEtK8LkZRL3+48EtlivueF8Z6I7A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pP7lJJsLPhy1oqOsULEvMvu97coRCOdXjbh/x/rTAs8=;
 b=YQpBzme818Qdt6oEmtvAR+mEZzaWQv5FGVipOtOAT05y+pYnJWEZPoAV2FLE9WrTagDwzItCnPZBa6PbURsCr9ScJywMN/yhYdRIi4uYiW7GuHHfLiz6nkwXxin1e5miPeP/ecIdd+LQeR0ea8EqRq1tM1f1oEUiHJnIRSZaE7RI1fl+ETepc9AsQoeDpWRMpeZj+kgVEVeNYb5ND49xEjQefedlTxlMdjVN+NMKm8cAjSHMeXR0dAEm16KhIECV41tPDYlUxgFkbX2uoLRwFliXW1AZCMM/zBxG+E9BSeISviovqQy12QMESk6RJ+OWwFGYjEnUjmKVDCP3qqtWeQ==
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=pP7lJJsLPhy1oqOsULEvMvu97coRCOdXjbh/x/rTAs8=;
 b=N8dlmPQSAF6r2hO1rOqc2oLgVliupXaSdzm8qemCV8ibVePqmHkwErrO+0Ol5YDd5ikEtg1LPKufmTexRGTp9z+8N0dk657fNd4vZGoL+ywsTdDkhVFCH9LlpTf0kjQ90LN4SMmf5RO1VfOhJYfXr0ylxBtBKm+aGD4WyQo0MIE=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>, Tamas K Lengyel <tamas@tklengyel.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "oleksii.kurochko@gmail.com"
	<oleksii.kurochko@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, "Orzel, Michal" <Michal.Orzel@amd.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Alexandru Isaila <aisaila@bitdefender.com>, Petre Pircalabu
	<ppircalabu@bitdefender.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v3 09/28] xen/vm_event: consolidate CONFIG_VM_EVENT
Thread-Topic: [PATCH v3 09/28] xen/vm_event: consolidate CONFIG_VM_EVENT
Thread-Index: AQHcPCqA+mY6s9fCEkmLa9SlVlA0PrTZYSAAgBPVwiA=
Date: Tue, 11 Nov 2025 07:08:01 +0000
Message-ID:
 <DM4PR12MB84515407D91133DF7B182BF1E1CFA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251013101540.3502842-1-Penny.Zheng@amd.com>
 <20251013101540.3502842-10-Penny.Zheng@amd.com>
 <1a9ac91c-2295-4749-8807-668fcecf8f8e@suse.com>
In-Reply-To: <1a9ac91c-2295-4749-8807-668fcecf8f8e@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-11-11T07:07:08.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_|SN7PR12MB7153:EE_
x-ms-office365-filtering-correlation-id: 53b88c66-3214-4ad0-c6a7-08de20f10d99
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|7416014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?TmsyYSs1cStiZDBwaTBiMnhQOU5jWTFLYVRuRk1tYTM5Q01KU09nYTFDT0l2?=
 =?utf-8?B?dzhSVmFkWkxWRmY3eVlUZEhJNnZSWHhYdGFNRTVuNENtQWJUUkZ3SG01VGlW?=
 =?utf-8?B?U0kvU3Fhbm9wenZCc3U1b2tGazZ3Mkl4ZVd5Y085eTBzbEhTQk8zVVIrSGFa?=
 =?utf-8?B?ZHBSMnlQbXVWZGZLUmxmZjlJd2lyV2lseWwzR093R1BGdWdrdTlsZUJWWU5W?=
 =?utf-8?B?U3kxU0lOcWNNUnhKT2p0VnhBTkM2RjJiMEZCT05USXVsVE9oK1pydDdIeDlx?=
 =?utf-8?B?N3poeUY2NXlJTzcvcnJ4eXVIbnBBMTZ1bkZobm5vTGNwVkoxOTEwRlNqR3Zq?=
 =?utf-8?B?aHlvU2Y5Q2RiaS9NUld2R2xyUjRSNjIreFdyelBsMmcwbEEvcklrTm9DeXFT?=
 =?utf-8?B?aTkxY0xneThXUXZVMUlVRVBpNTRPd2ZhbkdpYUFBdWlLOTRjd1k4cVlNS24v?=
 =?utf-8?B?MjZVVThaWDl2NFRtTVNncm4xeUs5bE1qNUpNb0o1Y2ZaeXJIT00wbzhYNG1N?=
 =?utf-8?B?NHdyV3N5d0ZlclpSb1RMZmJsdkNXdy9WcHBISTJCTlJ1M015NEJ5dFRlMEhE?=
 =?utf-8?B?U1J4MnFrZHR6cHplYXI3cGRiMWNWV0NNUC8ybnR1RTUwZHREbmlUSGI0azZD?=
 =?utf-8?B?dTFieHJ0KytTaGhXaVBBdTJOa1ByRHlKczA0QzE4UjNNcndyclVvenJqbERB?=
 =?utf-8?B?ajJTTGF4T2JvaU5FbCszb0FmNXVwam1IM3Y1Q2JFdHRyM3pLUUtqVU5XNm13?=
 =?utf-8?B?YkhZSWJxZzc5ei9jY1Y4R0RZNmdOUWRLRTdkaytwOGJ5TmtEUDYzVlhMZHdE?=
 =?utf-8?B?VFlxYjBDcnJKWWJjOVRsZkozZmhTQVFybjVWdXY4cGtTRXBHbGxQSDVaaVVD?=
 =?utf-8?B?UmVHQ2V1SmkzeThjajNTVlU4UGRpNHNzUHd2TnhVbzFjTUNiZUh3MVZOY0Zi?=
 =?utf-8?B?NzVZUTRzOVJzRHVyTHg4clFnL2ZLcDl6TVhwcE56NHR2SXZMbnNxZUFFczJK?=
 =?utf-8?B?MnlDdmFiZ0VPck0yNHpkeUZ1UHZsTEI4R0pWazdZWWlNWTExMUM4OUhscmpT?=
 =?utf-8?B?K1B3ZTlCRGtGZzg0eVRYTVRkUDZIKzc5SHh1d25teU1hK3JpTGhuTDlIbHFm?=
 =?utf-8?B?eTVZVCtnNlNhT1pMbU9NWXdmK1Z4eTVQWktodTdTams0bDlTaVhRSCt5L0VK?=
 =?utf-8?B?Y01zWS9KYzk3bXRld1BvNks5cVZBSmY0cC9MSWhOeDNXSXlweGNNVjBKQnpK?=
 =?utf-8?B?S3hpZkFPWVVHZHAzM3FKcVBXRnpXSE1IYUlUOTJiTG55MXdvSGJrWSt4Ky93?=
 =?utf-8?B?SUVva0dzZDEza2RYMmd4UWh4czd5Tmo1b2pON0QwMFZlb2tCTGp1ZGtmV25Z?=
 =?utf-8?B?RWptMFFhRk8yMkV6d3QxRHZCMk0wY2U4clFva292bW1uN1NEczNjcjVrdmpw?=
 =?utf-8?B?a2FKdmVTVi84MlU5RVM5N0ZkSTlzam9MQytQMHJGT3JkYVFSZExOczBlQ3VS?=
 =?utf-8?B?YW1oMGNZZHVTSURURlFVb3ZhQnQwMTBOSW83SFp5QXB5clJGbTM1eml0SFp0?=
 =?utf-8?B?MTRVQkQzMGpnejMrZjVZNTJ5bkR3NWtGV251VFFxdTI1MWlHVHk3RFZjcDh5?=
 =?utf-8?B?QkRyK05GZ1FDUzJYdjl2cFNrWkhmOE0zdFg1SjRiNHhVRm5EdStxN0lZQkI1?=
 =?utf-8?B?anFXZDhzbngzS29OMmxwUC9MdExybkx3MGIxL0hjRFVXNWJYT1dvbi96WGRh?=
 =?utf-8?B?cFFJNmRsaUdIaWVRTWF5d2hVNGl0WlV1OGpZMUpoNHQ2akwrQ212dU9HdTgr?=
 =?utf-8?B?bGcwSDBKcEJTcWwvdWEwaEtIalA2U2piT2QzWUMrVkJjWEhjMytvaTQ3RFR1?=
 =?utf-8?B?eWVxVlpMWHY0Q0VuNS9ZMXlFdmFQMS9CZlkwVWxHNjlPeGtuN0ZVelZaMnBq?=
 =?utf-8?B?aElOemt3ZW1uc3BjTUlaTDR4a1Z4UHpacVNzR1lnL3JTeVk0Ym40ZndkdWhr?=
 =?utf-8?B?UnBOeW0wVGZXczJUSitONnF3ajdsT0dTREFxMENpWjNTeG1wTU9GNHA0Tzhn?=
 =?utf-8?Q?J6JOrr?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WEFiTnY1NEx3Nk9JT3lUdEhFTTZOZTI5ODJkeHd0LzR3YnFmNG5wN0tSb1ZU?=
 =?utf-8?B?VVNTY0ViVUtRWFVGZmsxLzhBbWdSUWNtaWRtTndwR0tXYmJ2ZVU1SVUxdHph?=
 =?utf-8?B?ZUlEMS9MSWI3TVdsZmhpVk1nTDJDaEJKWmxoVVd4RHhCRG5BbUhxRXZvNFlG?=
 =?utf-8?B?VWdPRGd3TU5zUnFzYlZoWnVNck9sQlJwR25ZUU5INm9nQmk2YUx5dHJuakdT?=
 =?utf-8?B?KzZIZ3lIZDZOVjNDNkRCdVl5RWVYMUNTUjQzNFptdGFZUCtmeXRoSzFQbHFV?=
 =?utf-8?B?Z1cxQTRoQllzblNEOW9ybkRXUzJJUDN3NFJNbGxEZm85OE1NSHMyMmI0NDZt?=
 =?utf-8?B?d29UUVF4TW16NWl6UmN1ZktERGlHc1J6eG1LNW9pMnFpaDVKRlI3LzY2Uys0?=
 =?utf-8?B?TWpwUUpDNWd3dmhtSEZVQ2RVMGFFdEdDelZ3cU5Mak9jaThPNkNrQjZMa0FV?=
 =?utf-8?B?VjRxZC9aeTMyS2dFYXB1QmtKdGllQm9rblVmWk1XaExwVkpjdW9XMXFUSVln?=
 =?utf-8?B?WTgrNkVqeHB4Ti8xWE9TYkVldHVJTm5Xc2thOGhZdFBNUkFEazN3alIvQnZY?=
 =?utf-8?B?b3pQcEE1c1pCOEI1SWdtZlZIcFVWK0E2RHBEYXJXbEpxdm5OQ09vclgvczY5?=
 =?utf-8?B?WEZ4eWZxSm50d25YQ2R4Z3NjcFN4bEhac1Y3S1VPdkNhUHR5ZjNZU1h5cHNv?=
 =?utf-8?B?QkhqUnl6ODBnTDdnblE3YkxrU0hiM2xUSk00MnNpdXFNQ01DT2tNSmNlTEk4?=
 =?utf-8?B?VVR3cXhqQ2swSnNaa25Wc1RuUGlNMkFpMFUwV05tbVpkV3FvRU13dWFEY0Fs?=
 =?utf-8?B?NUNXeElhVlY4ZWQ2b3grQVVGZFdiTzVReDIyaG0rUDRjajR1eW9kaDJndFhG?=
 =?utf-8?B?b2VLbkcvUS81K0xpU0l2NFNKRlRNM0VVYVdGSXRwWW9razdRTnVpcEo3Ymxk?=
 =?utf-8?B?bEZENDF3akZIZTVjYllmNENwbFBvTHFlVjEreHRLTTdUeDdYK2FYL2FmMWJl?=
 =?utf-8?B?b0crWHp4dnY1bTdrUVJDZDJIOW1wZEE2cXl5eVFMMlgxMXlvVDNrdmpuWnI0?=
 =?utf-8?B?aG1QMW1pQ1lDSjd4QVNGTTZaRmZaRSt3aTJxTkdsV2hrcmJPNnNDNGJlN3hG?=
 =?utf-8?B?OFhrbHJueng5YU93bEtHKzBZOUNvMEZoV0JrVmZoK2JEdFBOMFJwNFl3KzRz?=
 =?utf-8?B?c3QyTy9nRmdZblU3OU9HWWdtU2VBNGE3T09qZ3ZkUUtaNFFIZUhmNUpWZUZW?=
 =?utf-8?B?MVBtTGJmKzFSeEtLUTRISlJEdWFWVFNDcEJZMjlMZFNuR3JlVGhSNng2UDlm?=
 =?utf-8?B?VkZBcW4rMFpVb0RXSXZnNHNhUktBS3kyRGl4Vlk4MWZFVWlJek5pb0E1SGdz?=
 =?utf-8?B?cHZ5ZjdITlZTLy94SVFST0liM3lCYUlhdGZJWmVzNzBGRGNTMTE5TVZxVnM2?=
 =?utf-8?B?TUYzRVk1VktxWjZXVVpZWm5CY0Q4aWdJMWdPQTlIWGh2SFQvK0lyK0VwKzly?=
 =?utf-8?B?L01odkJxU0dzamkrL0lmQTFXMWZWMFhIdklZVFpId1A5OFlhWlhBYUo2Y3Jr?=
 =?utf-8?B?QWpHaUxaTHJFSjhPUnpIaDdTRy91RFI5RHJJT2UyM2N5N0t3dng3WWZBYzJh?=
 =?utf-8?B?RHQ0SFd3cy9sa0tGYjdmYVhPRDVkdlVuNVZrazVIRjVESmhRWnhycitma0Z6?=
 =?utf-8?B?cVhJaWNMUTRUNVhkbmRQa1N2MmY0aThsWTY5MWcyVVJsYVNkR05aRjFEQXlC?=
 =?utf-8?B?bUxnMytnd0pqbWpCQ0J0d0FDNUdkQXdkQ1JieGxhOGRHcFBLT0lQOEZtdWVE?=
 =?utf-8?B?L1M5Sk1vV3Q3dmNIbTJrNGxjSTdwN3Q1M3JKdWRhKy9nRVBSYk9INDNXSU9y?=
 =?utf-8?B?SzZXbGlSUHowdEM0c0pudkt0ZzFWVmZCUXlJQ0d1c091Z0dTdmJ1YXV2bHZF?=
 =?utf-8?B?OS9KMW1EMDh3V3kwb1UrNnIyTWpTekFFSUo1c1dHeHJhOXBWNjA1K2NpajFw?=
 =?utf-8?B?R3I5b2I0RGhpL2FuVlpYcU55Y3VQVUI1bTRqV0JMbkNSVEZzTFZVWXcva0xM?=
 =?utf-8?B?a2V2REdVSmh4bSttbEgzT3BLdnBTa3R2cmdrYldwNkpKQXNXaW93dURRd0dl?=
 =?utf-8?Q?7zcc=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 53b88c66-3214-4ad0-c6a7-08de20f10d99
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2025 07:08:01.9971
 (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: p2xgWIRyTOUrWp5D/dsC64LIqZxQTRVDRUqDobn1dFXWZEHZ/29vlgp/zUjBqaragTiWuLR2g4ai6Gtg411wOw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7153

W1B1YmxpY10NCg0KSGksDQoNClNvcnJ5IGZvciB0aGUgbGF0ZSByZXNwb25zZS4gSnVzdCBnb3Qg
YmFjayBmcm9tIGxvbmcgYW5udWFsIGxlYXZlcw0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t
LS0tDQo+ID4gLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21lbV9hY2Nlc3MuaA0KPiA+
ICsrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tZW1fYWNjZXNzLmgNCj4gPiBAQCAtMTQs
NiArMTQsNyBAQA0KPiA+ICAjaWZuZGVmIF9fQVNNX1g4Nl9NRU1fQUNDRVNTX0hfXw0KPiA+ICAj
ZGVmaW5lIF9fQVNNX1g4Nl9NRU1fQUNDRVNTX0hfXw0KPiA+DQo+ID4gKyNpZmRlZiBDT05GSUdf
Vk1fRVZFTlQNCj4gPiAgLyoNCj4gPiAgICogU2V0dXAgdm1fZXZlbnQgcmVxdWVzdCBiYXNlZCBv
biB0aGUgYWNjZXNzIChnbGEgaXMgLTF1bGwgaWYgbm90IGF2YWlsYWJsZSkuDQo+ID4gICAqIEhh
bmRsZXMgdGhlIHJ3MnJ4IGNvbnZlcnNpb24uIEJvb2xlYW4gcmV0dXJuIHZhbHVlIGluZGljYXRl
cyBpZiBldmVudCB0eXBlDQo+ID4gQEAgLTI1LDYgKzI2LDE0IEBADQo+ID4gIGJvb2wgcDJtX21l
bV9hY2Nlc3NfY2hlY2socGFkZHJfdCBncGEsIHVuc2lnbmVkIGxvbmcgZ2xhLA0KPiA+ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBucGZlYyBucGZlYywNCj4gPiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdHJ1Y3Qgdm1fZXZlbnRfc3QgKipyZXFfcHRyKTsNCj4gPiArI2Vs
c2UNCj4gPiArc3RhdGljIGlubGluZSBib29sIHAybV9tZW1fYWNjZXNzX2NoZWNrKHBhZGRyX3Qg
Z3BhLCB1bnNpZ25lZCBsb25nIGdsYSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0cnVjdCBucGZlYyBucGZlYywNCj4gPiArICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2bV9ldmVudF9zdCAqKnJlcV9wdHIpDQo+ID4g
K3sNCj4gPiArICAgIHJldHVybiBmYWxzZTsNCj4NCj4gTGVhdmluZyAqcmVxX3B0ciB1bnRvdWNo
ZWQgZmVlbHMgZGFuZ2Vyb3VzOyB0aGUgZmFjdCB0aGF0IHRoZSBzb2xlIGNhbGxlciBoYXMNCj4g
d2hhdCBpdCB1c2VzIHNldCB0byBOVUxMIHVwIGZyb250IGlzIHNlY29uZGFyeS4NCj4NCg0KSWYg
d2UgKnJlcV9wdHIgPSBOVUxMOyBjb21waWxlciB3aWxsIG5vdCBEQ0UgdGhlIGZvbGxvd2luZyBj
b2RlIGJsb2NrIHdoZW4gVk1fRVZFTlQ9bjoNCmBgYA0KICAgICAgICBpZiAoIHJlcV9wdHIgKQ0K
ICAgICAgICB7DQogICAgICAgICAgICAgICAgaWYgKCBtb25pdG9yX3RyYXBzKGN1cnIsIHN5bmMs
IHJlcV9wdHIpIDwgMCApDQogICAgICAgICAgICAgICAgICAgICAgICByYyA9IDA7DQoNCiAgICAg
ICAgICAgICAgICB4ZnJlZShyZXFfcHRyKTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gcmM7
DQpgYGANCk9yIGFtIEkgbWlzdW5kZXJzdGFuZGluZyB3aGF0IHlvdSBzdWdnZXN0Pw0KDQo+IEZy
b20gbG9va2luZyBhdCB0aGUgZnVuY3Rpb24gaXQncyBhbHNvIG5vdCBxdWl0ZSBjbGVhciB0byBt
ZSB3aGV0aGVyICJmYWxzZSIgaXMNCj4gdGhlIGNvcnJlY3QgcmV0dXJuIHZhbHVlIGhlcmUuIFRh
bWFzPw0KPg0KPiA+IC0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tb25pdG9yLmgNCj4g
PiArKysgYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vbW9uaXRvci5oDQo+ID4gQEAgLTMyLDYg
KzMyLDcgQEAgc3RydWN0IG1vbml0b3JfbXNyX2JpdG1hcCB7DQo+ID4gICAgICBERUNMQVJFX0JJ
VE1BUChoaWdoLCA4MTkyKTsNCj4gPiAgfTsNCj4gPg0KPiA+ICsjaWZkZWYgQ09NRklHX1ZNX0VW
RU5UDQo+DQo+IFR5cG8gYXNpZGUsIGlzbid0IHRoZSBlbnRpcmUgZmlsZSAocGVyaGFwcyBtaW51
cyBzb21lIHN0dWJzKSB1c2VmdWwgb25seSB3aGVuDQo+IFZNX0VWRU5UPXk/DQo+DQoNClllcywg
bWF5YmUgb25seSAgYXJjaF9tb25pdG9yX2dldF9jYXBhYmlsaXRpZXMoKSBuZWVkcyB0aGUgd3Jh
cHBpbmcuIEFzIGl0IGludm9rZXMgaHZtX2hhc19zZXRfZGVzY3JpcHRvcl9hY2Nlc3NfZXhpdGlu
ZygpLCB3aGljaCBpcyBkZWNsYXJlZCBvbmx5IHdoZW4gVk1fRVZFTlQ9eQ0KDQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 07:57:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 07:57:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158779.1487198 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIjFY-0000HF-V3; Tue, 11 Nov 2025 07:57:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158779.1487198; Tue, 11 Nov 2025 07: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 1vIjFY-0000H8-SR; Tue, 11 Nov 2025 07:57:12 +0000
Received: by outflank-mailman (input) for mailman id 1158779;
 Tue, 11 Nov 2025 07:57: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=qJwk=5T=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vIjFX-0000H2-OY
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 07:57:11 +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 0667002e-bed4-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 08:57:10 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b71397df721so440684566b.1
 for <xen-devel@lists.xenproject.org>; Mon, 10 Nov 2025 23:57: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
 a640c23a62f3a-b72bf407a01sm1297204466b.22.2025.11.10.23.57.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 10 Nov 2025 23:57: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: 0667002e-bed4-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762847829; x=1763452629; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+RlQP2cvCnOd+Wo5mKtYktJLrGWk9650R0nBrzw2baY=;
        b=KyWTKWZ/FQSR3bkvKDiiLw/Djow1IQYZ45JYt7O9ckOGLD7hAcCfivu+Qh1mjO5sql
         Zjmo8/qCGwvO4Iv9bIKsrcnMoVIL6bI5wh6tUFCnzUrqH2iHIqdRO1xkQeLpPI6u6fAx
         u2mmNxEmthITzo4/jOHVC3LvQ8/GdEYAEHlgiAnThZ7AQy0yzq6ENOKcOX1DmKNC9jyN
         r0qCDWQtY8m0w5TfNupA+HVpE6P7SYLmdfnftIbEiMaybWoBh30ZrAcSTY9bgQ6kkngl
         dF9jjuuTBzQAY8z1lE9Up+2F1v0fLVnUOo8f4kv7qZM6NkNDQLFQN96PY3mo3x3ON78S
         G59g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762847829; x=1763452629;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+RlQP2cvCnOd+Wo5mKtYktJLrGWk9650R0nBrzw2baY=;
        b=qOvXvoY/G2ORg+Qybvn9hdKFO5AqR4uONfbQycGfZtQN6j5V784OTSMsOVyimeBE4R
         +71pQNfg/VrXdtHiqH2cfC6S2HsvOjuEQRSO+pu+ot2Nobv7rt/g7uQ+LllZivH8ivvw
         nMo9G10FJ67wLzdZsI7TkI3z9SyaNsvRFQstbDu82IZqKo0pLacb1Q67ZTyoqFct5RqY
         WHc/e+0ONidJvJNs+scPuEKvj86aUAhkF1EmIR4/4w4yvMtHr0nL5vm0Ln7fX0tDXCmp
         XAC8Vv4ZUN8yYi0LAI/N6jtNnFi4gi8qtnhkJqtm80YcECr44Dd+RyFNmdq3UOCPho1g
         exag==
X-Forwarded-Encrypted: i=1; AJvYcCXPqemwjJjxYZmSdtb6JdegoJCKN7YwXZ0UZlexvqN2E8l7a2SElYX5brOODXwzsMlgB8R9QFoibg8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwChB41mE51DjCxUZgdjbtipmdhADwGO/tPIBvjvMeACsPuont2
	axwhcqHkbXXwOfKLd2QVJ7SBoDnhE34/3QJsM44jSj33UyW0CcEfXiwf3uGc5F9aWA==
X-Gm-Gg: ASbGncsXeyzIOkKK8Smab68n/MQvlsS2xQ0qdwFc5MWtfu0T5jRkFD0pUaXluZ/dT7v
	zKCNTzXo9mNMuUXC0n2IjjJWrkD8+BW/ENljMwv12aRNtue6/0rleiil2ks/AHWlAW8bWh+5uMd
	5YOV7uYpTn4E1bDGKaMDwQ9kbD0pG1P/WSiofv1uMUzkFZK57up+luEsVoZKq6xj1YF+eRXj9VR
	XGHteXwVhBzpbqhtNT0gvBbv8LKbUoSnDkR8gmRrSMsmliuszHoV+pNJDDqI1qDxa+J5tfqtmwY
	OUYkqOf3V5qsOAZ0dNyxOl1z7yEW81lxidlF9zEY5xfMs4GatNTTLqp696JM/K+TP8cy9dxs8lU
	G7xGCKvnIV3ELGWCgxL6fhVcNlA9q2+30kaUK9N4cYKWA4qOJVqViQ3rLAeRCio0F8RKYfmlHr6
	OvYBSaJAbPH89RSLKbzb1dj/bJv7FpuNYd2b45LB3+dyvS5AuDUc5JfgPf/EoL20wn7ECzf3WGM
	c4=
X-Google-Smtp-Source: AGHT+IHqhdnPYLfomifchMVb3SbhFefafO8Q9uxvvY5rsVCEdZNCai3J+Rsgjhg7n8JndwxkxbZ2dg==
X-Received: by 2002:a17:907:a0c8:b0:b70:50f1:3daa with SMTP id a640c23a62f3a-b72e053a7f4mr1147872766b.57.1762847829388;
        Mon, 10 Nov 2025 23:57:09 -0800 (PST)
Message-ID: <b0f84506-f299-41d7-b888-606c8c45b99d@suse.com>
Date: Tue, 11 Nov 2025 08:57:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen: Support LLVM raw profile versions 5, 6, 7, 8, 9,
 and 10
To: Saman Dehghan <samaan.dehghan@gmail.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>,
 Wentao Zhang <wentaoz5@illinois.edu>,
 Matthew L Weber <matthew.l.weber3@boeing.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <06646f747f21c3f388cf6e9d59a20238a4a91170.1761263588.git.samaan.dehghan@gmail.com>
 <6f708273afb6de9c5f26f2c71c34c98e957904a0.1761599320.git.samaan.dehghan@gmail.com>
 <b701374d-61b4-4657-bd01-4c6975741fbd@citrix.com>
 <ed198b16-f15f-40f2-ae38-85292e52dad1@suse.com>
 <CAHFNDNjcUYC2AiU12eifOeqAbveAqCGHX6+=2oE15-bQ8NzjGw@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAHFNDNjcUYC2AiU12eifOeqAbveAqCGHX6+=2oE15-bQ8NzjGw@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.11.2025 22:26, Saman Dehghan wrote:
> On Mon, Nov 10, 2025 at 8:03â€¯AM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 27.10.2025 23:36, Andrew Cooper wrote:
>>> On 27/10/2025 9:30 pm, Saman Dehghan wrote:
>>>> This change enables compatibility for measuring code coverage
>>>> with Clang versions 11 through 20 by supporting their respective raw
>>>> profile formats.
>>>>
>>>> 1- Added support for LLVM raw profile versions 5, 6, 7, 8, 9, and 10.
>>>> 2- Initialized llvm_profile_header for all versions based on llvm source
>>>>    code in compiler-rt/include/profile/InstrProfData.inc for each version.
>>>> 3- We tested this patch for all Clang versions from 11 through 20
>>>>    on x86 platform.
>>>> 4- Fixed linking warnings related to LLVM profile sections in x86.
>>>>
>>>>
>>>> Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>
>>>> Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>> Tested-by: Wentao Zhang <wentaoz5@illinois.edu>
>>>> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>> ---
>>>> Changes from v3 to v4:
>>>>   1- Use LLVM_PROFILE_VERSION in preprocessor conditionals
>>>>      instead of __clang_major__.
>>>>   2- Use DIV_ROUND_UP helper.
>>>>   3- Remove unnecessary zero initialization inside struct.
>>>>   4- Remove fallback macro definitions in linker script.
>>>> Changes from v2 to v3:
>>>>   1- Additionally support raw profile version 5, 6, 7 in clang 11, 12, 13.
>>>>   2- Fix coverage related linking warnings in x86.
>>>>   3- Revert unnecessary type changes, casting, etc.
>>>> ---
>>>
>>> Excellent.  Thankyou.  This all looks in order.  I've committed it.
>>
>> I thought I would backport this, but I would need a variant that wouldn't
>> regress profile version 4 on the older branches
> 
> Thanks Jan for offering to backport this. Which target branches do you
> have in your mind?

The two ones in general maintenance, 4.20 and 4.19. I expect a single patch
will do, i.e. will apply to both equally.

>> regress profile version 4 on the older branches
> 
> Do you mean some of these branches are still using clang < 11 so that
> we need to adapt our patch accordingly? Let me know how we can help.

Well, the introduction of 11 as the baseline requirement did happen in the
4.21 dev cycle. Prior to that, 3.5 was the baseline. As we only had support
for profile version 4 (Clang 3.9 onwards as it looks), only that version
would need covering. Of course, if other versions could be easily supported,
that might be fine as well. Yet this isn't a requirement at all.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 08:02:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 08:02:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158792.1487208 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIjL3-0002Po-Kg; Tue, 11 Nov 2025 08:02:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158792.1487208; Tue, 11 Nov 2025 08: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 1vIjL3-0002Ph-HK; Tue, 11 Nov 2025 08:02:53 +0000
Received: by outflank-mailman (input) for mailman id 1158792;
 Tue, 11 Nov 2025 08:02: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=m/Ya=5T=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1vIjL2-0002Pb-PW
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 08:02:52 +0000
Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com
 [148.163.158.5]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d1688048-bed4-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 09:02:51 +0100 (CET)
Received: from pps.filterd (m0360072.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5AALY1xc017402;
 Tue, 11 Nov 2025 08:02:00 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4a9wgwtumd-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 11 Nov 2025 08:02:00 +0000 (GMT)
Received: from m0360072.ppops.net (m0360072.ppops.net [127.0.0.1])
 by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5AB7kG37026652;
 Tue, 11 Nov 2025 08:01:59 GMT
Received: from ppma23.wdc07v.mail.ibm.com
 (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4a9wgwtumb-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 11 Nov 2025 08:01:59 +0000 (GMT)
Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1])
 by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5AB5Gbhj014853;
 Tue, 11 Nov 2025 08:01:58 GMT
Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225])
 by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4aahpk1q0u-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 11 Nov 2025 08:01:58 +0000
Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com
 [10.20.54.104])
 by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 5AB81uo343188530
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 11 Nov 2025 08:01:56 GMT
Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 80F072004B;
 Tue, 11 Nov 2025 08:01:56 +0000 (GMT)
Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 2ADFB20040;
 Tue, 11 Nov 2025 08:01:54 +0000 (GMT)
Received: from li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com (unknown
 [9.111.64.50]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Tue, 11 Nov 2025 08:01:54 +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: d1688048-bed4-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=pp1; bh=a9W0L6
	CfK0bWdTLm9fJi4xkSwBtlng03J+x1NVveACU=; b=qdo1txQgzgOvIHTmCzU7HB
	Gn+DrVuskN48MqA/40OYsz0tP49ocEYlsaI4/lyOl87fxVMg8ZYDJ6WfohfxUa2H
	sCIXGOdWkVT7byFFSSNba85ql3Jovzbu3vHW6s+6oA+dceJ5xhYy0xmHLma5lXwH
	lco3Z991ZRYlMBrC8ph0/LJ1Vvt/e3RGPvY6qNS+2DRsPg2MSEcRVFMIwTtKS8WI
	KYdt+tIQ5ETwHVz86a6K28vbtfyBvCD2F1E+28XuqeV3bN6vX0T9xvwyMQDiSz6P
	IcBBYG90bfN/z8xaZDRdprnl55ftC0Cnz9ls8W5PCCk0f7PgPqbw7DMxKYlyocBw
	==
Date: Tue, 11 Nov 2025 09:01:52 +0100
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Ryan Roberts <ryan.roberts@arm.com>
Cc: "David Hildenbrand (Red Hat)" <davidhildenbrandkernel@gmail.com>,
        Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org,
        linux-kernel@vger.kernel.org, Andreas Larsson <andreas@gaisler.com>,
        Andrew Morton <akpm@linux-foundation.org>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Borislav Petkov <bp@alien8.de>,
        Catalin Marinas <catalin.marinas@arm.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "David S. Miller" <davem@davemloft.net>,
        David Woodhouse <dwmw2@infradead.org>,
        "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
        Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
        "Liam R. Howlett" <Liam.Howlett@oracle.com>,
        Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
        Madhavan Srinivasan <maddy@linux.ibm.com>,
        Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
        Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
        Peter Zijlstra <peterz@infradead.org>,
        Suren Baghdasaryan <surenb@google.com>,
        Thomas Gleixner <tglx@linutronix.de>, Vlastimil Babka <vbabka@suse.cz>,
        Will Deacon <will@kernel.org>, Yeoreum Yun <yeoreum.yun@arm.com>,
        linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        x86@kernel.org
Subject: Re: [PATCH v4 06/12] mm: introduce generic lazy_mmu helpers
Message-ID: <92eca53f-eb5d-4bd0-ad6c-56c65fdcea86-agordeev@linux.ibm.com>
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-7-kevin.brodsky@arm.com>
 <71418b31-aedb-4600-9558-842515dd6c44@arm.com>
 <c764489e-0626-4a50-87b5-39e15d9db733@gmail.com>
 <645178fd-df4e-42fe-b55e-97d9506499be@arm.com>
 <413b2c49-f124-4cda-8fea-a6cc165f6326-agordeev@linux.ibm.com>
 <e428b1d5-65a8-49bc-92dc-ec4a4d933dec@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <e428b1d5-65a8-49bc-92dc-ec4a4d933dec@arm.com>
X-TM-AS-GCONF: 00
X-Proofpoint-GUID: 6zTX9ZOrNUJdIPkZTpOF6inwbKLmfWMW
X-Proofpoint-ORIG-GUID: LChZoM8zrhHNbPBL-El76cxb9g1AeKQe
X-Authority-Analysis: v=2.4 cv=VMPQXtPX c=1 sm=1 tr=0 ts=6912ed78 cx=c_pps
 a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17
 a=8nJEP1OIZ-IA:10 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=7CQSdrXTAAAA:8 a=RmnHjvQuIkE0_jnVAnoA:9
 a=3ZKOabzyN94A:10 a=wPNLvfGTeEIA:10 a=a-qgeE7W1pNrGK8U0ZQC:22
 a=DXsff8QfwkrTrK3sU8N1:22 a=Z5ABNNGmrOfJ6cZ5bIyy:22 a=bWyr8ysk75zN3GCy5bjg:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTA4MDAyMiBTYWx0ZWRfXyGhka9ktVQcp
 NtumBxw6X433jOZ6hxU7cflzh+FFuYKWWKnULzVPcUOjZXQmkTAqOCdXlHIsHv1lpUX47VickOd
 +ymisGDp/K22Lqycx3j2XXMo0XpqaRXvqkKxvBKvJKxPXuUfuzt3AXkbSqNOdA4ImI9C+Xq1kxt
 TEOnl7KKGrGzBnDhvUHkdpLWQe2Lh5ecd2l9m9sQhLcN/N7oBhjXJoRqt609HdHHCQ8kIUpq28s
 Sh00eZmpM+PD2+npNB09KeaWuLe3d4wgMIavWSzMSuvE62y1vEOzjS8GZEWtbBR0nfeizZ8kPEd
 goqFEPPBTD0yzYfjqEub6US2xXlbVyhasXpHCLWJWgCsNJJetNjX1OgXN6mLcI9N0yKOs9EGAVS
 77b7qIhDEPM4ZI6Q7fzDt9a5okKZvQ==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-11-11_01,2025-11-11_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 impostorscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0
 clxscore=1015 phishscore=0 spamscore=0 malwarescore=0 adultscore=0
 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000
 definitions=main-2511080022

On Mon, Nov 10, 2025 at 09:19:40AM +0000, Ryan Roberts wrote:
> On 10/11/2025 08:11, Alexander Gordeev wrote:
> > On Fri, Nov 07, 2025 at 03:22:54PM +0000, Ryan Roberts wrote:
> > 
> > Hi Ryan,
> > 
> >> On 07/11/2025 14:34, David Hildenbrand (Red Hat) wrote:
> >>>>>   #ifndef pte_batch_hint
> >>>>> diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
> >>>>> index 5d2a876035d6..c49b029d3593 100644
> >>>>> --- a/mm/kasan/shadow.c
> >>>>> +++ b/mm/kasan/shadow.c
> >>>>> @@ -305,7 +305,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep,
> >>>>> unsigned long addr,
> >>>>>       pte_t pte;
> >>>>>       int index;
> >>>>>   -    arch_leave_lazy_mmu_mode();
> >>>>> +    lazy_mmu_mode_pause();
> >>>>
> >>>> I wonder if there really are use cases that *require* pause/resume? I think
> >>>> these kasan cases could be correctly implemented using a new nest level instead?
> >>>> Are there cases where the effects really need to be immediate or do the effects
> >>>> just need to be visible when you get to where the resume is?
> >>>>
> >>>> If the latter, that could just be turned into a nested disable (e.g. a flush).
> >>>> In this case, there is only 1 PTE write so no benefit, but I wonder if other
> >>>> cases may have more PTE writes that could then still be batched. It would be
> >>>> nice to simplify the API by removing pause/resume if we can?
> >>>
> >>> It has clear semantics, clearer than some nest-disable IMHO.
> >>>
> >>> Maybe you can elaborate how you would change ("simplify") the API in that
> >>> regard? What would the API look like?
> >>
> >> By simplify, I just meant can we remove lazy_mmu_mode_pause() and
> >> lazy_mmu_mode_resume() ?
> >>
> >>
> >> We currently have:
> >>
> >> apply_to_page_range
> >>   lazy_mmu_mode_enable()
> >>     kasan_populate_vmalloc_pte()
> >>       lazy_mmu_mode_pause()
> >>       <code>
> >>       lazy_mmu_mode_resume()
> >>   lazy_mmu_mode_disable()
> >>
> >> Where <code> is setting ptes. But if <code> doesn't need the effects to be
> >> visible until lazy_mmu_mode_resume(), then you could replace the block with:
> >>
> >> apply_to_page_range
> >>   lazy_mmu_mode_enable()
> >>     kasan_populate_vmalloc_pte()
> >>       lazy_mmu_mode_enable()
> >>       <code>
> >>       lazy_mmu_mode_disable()
> >>   lazy_mmu_mode_disable()
> >>
> >> However, looking at this more closely, I'm not really clear on why we need *any*
> >> special attention to lazy mmu inside of kasan_populate_vmalloc_pte() and
> >> kasan_depopulate_vmalloc_pte().
> >>
> >> I *think* that the original concern was that we were doing ptep_get(ptep) inside
> >> of a lazy_mmu block? So we need to flush so that the getter returns the most
> >> recent value? But given we have never written to that particular ptep while in
> >> the lazy mmu block, there is surely no hazard in the first place?
> > 
> > There is, please see:
> > https://lore.kernel.org/linux-mm/cover.1755528662.git.agordeev@linux.ibm.com/
> 
> I've stared at this for a while, but I'm afraid I still don't see the problem.
> This all looks safe to me. Could you explain exactly what this issue is?
> 
> If I've understood correctly, kasan_populate_vmalloc() is called during virtual
> range allocation by vmalloc. This is not in a nested lazy mmu block (but it
> wouldn't matter if it was once we have Kevin's nested changes to ensure flush
> when exiting the nested scope). kasan_populate_vmalloc() calls
> apply_to_page_range(), which will walk the set of ptes, calling
> kasan_populate_vmalloc_pte() for each one. kasan_populate_vmalloc_pte() does a
> ptep_get() then, if none, calls set_pte_at().
> 
> That's not a hazard since you're calling get before the set and you only visit
> each pte once for the apply_to_page_range() lazy mmu block.

I have to admit I do not remember every detail and would have to recreate
the issue - which is specific to s390 lazy_mmu implementation I think.
Both kasan_populate_vmalloc_pte() and kasan_depopulate_vmalloc_pte() do:

apply_to_page_range()
{
    arch_enter_lazy_mmu_mode();

    kasan_de|populate_vmalloc_pte()
    {
        arch_leave_lazy_mmu_mode();             <--- remove?

        spin_lock(&init_mm.page_table_lock);
        <PTE update>
        spin_unlock(&init_mm.page_table_lock);	<--- PTE store should be done

        arch_enter_lazy_mmu_mode();             <--- remove?
    }

    arch_leave_lazy_mmu_mode();
}

Upon return from spin_unlock() both kasan callbacks expect the PTE contains
an updated value to be stored to pgtable. That is true unless we remove
arch_leave|enter_lazy_mmu_mode() brackets. If we do the value is continued
to be cached and only stored when the outer arch_leave_lazy_mmu_mode() is
called. That results in a race between concurrent PTE updaters.

> >> apply_to_existing_page_range() will only call kasan_depopulate_vmalloc_pte()
> >> once per pte, right? So given we read the ptep before writing it, there should
> >> be no hazard? If so we can remove pause/resume.
> > 
> > Unfortunately, we rather not, please see:
> > https://lore.kernel.org/linux-mm/d407a381-099b-4ec6-a20e-aeff4f3d750f@arm.com/
> 
> Sorry but I don't see anything relavent to my point in this mail. Perhaps there
> is some s390-specific detail that I'm failing to understand?

Sorry, with this message I meant the branch where it was discussed,
I will try to C&P some excerpts and summarize it here.

* lazy_mmu_mode_enable()

This helper is parameter-free, assuming the MMU unit does not need any
configuration other than turning it on/off. That is currently true, but
(as I noted in my other mail) I am going to introduce a friend enable
function that accepts parameters, creates an arch-specific state and
uses it while the lazy mmu mode is active:

static inline void arch_enter_lazy_mmu_mode_pte(struct mm_struct *mm,
						unsigned long addr,
						unsigned long end,
						pte_t *ptep)
{
	...
}

* lazy_mmu_mode_resume() -> arch_enter_lazy_mmu_mode()

Conversely, this needs to be -> arch_resume_lazy_mmu_mode(). And it can not
be arch_enter_lazy_mmu_mode(), since a lazy_mmu_mode_resume() caller does
not know the parameters passed to the original lazy_mmu_mode_enable(...)-
friend.

> 
> Thanks,
> Ryan

Thanks!

> > 
> > The problem is kasan code invokes apply_to_page_range(), which enters lazy_mmu
> > mode unconditionally. I would claim that is rather an obstacle for the kasan
> > code, not a benefit. But it needs to be tackled.
> > > Should apply_to_page_range() had an option not to enter the lazy_mmu mode
> > (e.g. an extra "bool skip_lazy" parameter) - the pause/resume could have
> > been avoided.
> > 
> >> Thanks,
> >> Ryan
> > 
> > Thanks!


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 08:14:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 08:14:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158807.1487218 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIjVd-0004Bu-NR; Tue, 11 Nov 2025 08:13:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158807.1487218; Tue, 11 Nov 2025 08: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 1vIjVd-0004Bn-KG; Tue, 11 Nov 2025 08:13:49 +0000
Received: by outflank-mailman (input) for mailman id 1158807;
 Tue, 11 Nov 2025 08:13: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=qJwk=5T=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vIjVb-0004Bf-RQ
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 08:13:47 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 52858937-bed6-11f0-980a-7dc792cee155;
 Tue, 11 Nov 2025 09:13:36 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-640a503fbe8so7002650a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 11 Nov 2025 00:13: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
 a640c23a62f3a-b72bdbcaeaasm1337125666b.1.2025.11.11.00.13.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 11 Nov 2025 00:13: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: 52858937-bed6-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762848816; x=1763453616; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GhQCzFDE+/IZZdWnVD3OLYOkqAxegmWsEGoaRQC8V9c=;
        b=YTCwlaaTqk+/mBMAKmkVnrgVCa5/THjjPuSoffoIFM7AEw6JSDpfeJMSNGnGlaQS/u
         9td9eG588qq3DAYa0gx75w3Zq57VsxiN532G2Pkte2SfU1I0TaPPtZ7dv8bbcUkUNyA0
         o06WikI+nDbaCtsHvkFVZA74/3F3a7cbPfhpGz0lL+Fdvkg+8rr3ckYH7huuaNu32Wus
         28Otp4yDF6oV7jW5nx8bpoY718cen11PrEZxRdMFOI7X88DDKzSRo2HOHYg/3gD7AWnw
         8nVsGFFo4ghB3F4saZyU1kAd82mt34pIeNTb4lokWsRKgBfg8SYzYoFYNLXHdFLcfq7o
         bAnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762848816; x=1763453616;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GhQCzFDE+/IZZdWnVD3OLYOkqAxegmWsEGoaRQC8V9c=;
        b=htsFZg5Rl4kED/3ePmfz36lG+WWnaT5T/6KRtBLlf6iCioku2zOSQcngn7JNI/4iB9
         M7Io33d4h/bwB5swcGUHSqnPxos6IQ2Dv9CkOWABoPzM6VhET0PuDNevYF6K5AMRyzZ7
         xYo93BPpXvRyxb/2Ab5jeTyQzdX0hc3VCKu9LZikU5ECCup+cqREOd/q6FaiOnO62eqC
         TYE6dJHYN/tPQ4pQv1SSsvhApf/nZPId7CrwACE1AnGxb4+PbhjRBmA2nmeP7+mHnB34
         gPboEGZSokh3RIVtfY1AVXVeOAO1pR3dVQMQeFCETzOWb4QyQ4ly+hE6ZpWW4JfbCySs
         Rutw==
X-Forwarded-Encrypted: i=1; AJvYcCW0L/VhK9UzMrp8w3ZU+DdrZX+z76uzCzzmKkEnWebJ9YJRKzWV0FnZtwVteth0kSyfHNsPcEgclIA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxt9BiE1yCKgxhXUMl4u8PN9Hot3OtGjeBGkvVnoq078Bn0Vyzp
	ioJyWPNyLizKtL+HtoNAnSb+ZJSxcVbKwx2x819UngPqgMjROhAWRrSqULfPZ4k2HQ==
X-Gm-Gg: ASbGncsApcqvixDtt+sU66F8jm6Pie7s2qyQZTsH11KZTXTVyRXPWsTtVR2A62giknZ
	0S1tsy0VyZskDq8glOU31Jz9TKyvLMMiGX+2LSYX7kbmH55gy5XW3cA3dgRZrSVAPLmBXGpes/+
	O1yrtH4Fbpo8eMOsUTZ4pThZ2GE/HZkqSeoEzbmprcQC2r9IjSHmdR76uJN6moZJM+2UGE4ojs8
	hDtDqNVlVT8Dmdlk46/EGFyd2fM3LXSY+Q1MgnR1LDQZOv2npr9LhkpaQjo+g94EMK0kOsGIrBz
	WanlZaHCBRSNSRaZ6c6wdDqlEW2HT9+VekZwDw4K5nW44hcvTNvhgUrgXXzM9TTLRhdLw6DJbcK
	H2Wls69EXH5Wr398A6P7IQpEoizoNT+F1ORxZMi2EIdcaqmfW19HrT4c8k0wlIDkPKZplV9jjur
	iFUzjbt0qeBcOXyi5b5yk0to/iRqEAjQN0vl1ZfE0ND6IkI5IH36+5PlobMzOc7w7oXZdqo409E
	/PxPiWb0XtMng==
X-Google-Smtp-Source: AGHT+IHy2v0PYGZGvkBvaCsBHMbknsqU0SqQ5b9Ci+RLIJQ0ZgFE1esX4oQY0e66jaLJz5eHeQA9hw==
X-Received: by 2002:a05:6402:26d0:b0:640:cd2a:3cc1 with SMTP id 4fb4d7f45d1cf-6415db564bbmr9211727a12.0.1762848815988;
        Tue, 11 Nov 2025 00:13:35 -0800 (PST)
Message-ID: <c1fbdd8a-1c4d-4dda-8dff-e0206ab1cdc1@suse.com>
Date: Tue, 11 Nov 2025 09:13:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 09/28] xen/vm_event: consolidate CONFIG_VM_EVENT
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 "oleksii.kurochko@gmail.com" <oleksii.kurochko@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Tamas K Lengyel <tamas@tklengyel.com>
References: <20251013101540.3502842-1-Penny.Zheng@amd.com>
 <20251013101540.3502842-10-Penny.Zheng@amd.com>
 <1a9ac91c-2295-4749-8807-668fcecf8f8e@suse.com>
 <DM4PR12MB84515407D91133DF7B182BF1E1CFA@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: <DM4PR12MB84515407D91133DF7B182BF1E1CFA@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2025 08:08, Penny, Zheng wrote:
> [Public]
> 
> Hi,
> 
> Sorry for the late response. Just got back from long annual leaves
> 
>> -----Original Message-----
>>> --- a/xen/arch/x86/include/asm/mem_access.h
>>> +++ b/xen/arch/x86/include/asm/mem_access.h
>>> @@ -14,6 +14,7 @@
>>>  #ifndef __ASM_X86_MEM_ACCESS_H__
>>>  #define __ASM_X86_MEM_ACCESS_H__
>>>
>>> +#ifdef CONFIG_VM_EVENT
>>>  /*
>>>   * Setup vm_event request based on the access (gla is -1ull if not available).
>>>   * Handles the rw2rx conversion. Boolean return value indicates if event type
>>> @@ -25,6 +26,14 @@
>>>  bool p2m_mem_access_check(paddr_t gpa, unsigned long gla,
>>>                            struct npfec npfec,
>>>                            struct vm_event_st **req_ptr);
>>> +#else
>>> +static inline bool p2m_mem_access_check(paddr_t gpa, unsigned long gla,
>>> +                                        struct npfec npfec,
>>> +                                        struct vm_event_st **req_ptr)
>>> +{
>>> +    return false;
>>
>> Leaving *req_ptr untouched feels dangerous; the fact that the sole caller has
>> what it uses set to NULL up front is secondary.
>>
> 
> If we *req_ptr = NULL; compiler will not DCE the following code block when VM_EVENT=n:
> ```
>         if ( req_ptr )
>         {
>                 if ( monitor_traps(curr, sync, req_ptr) < 0 )
>                         rc = 0;
> 
>                 xfree(req_ptr);
>         }
>         return rc;
> ```
> Or am I misunderstanding what you suggest?

First: It would have helped if you had also said where that code fragment actually
was taken from.

Seeing it's in hvm_hap_nested_page_fault(), I'm having trouble following why the
compiler wouldn't be able to see that the local variable "req_ptr" there would
never change value, i.e. remain NULL throughout its lifetime. If indeed there's a
compiler shortcoming, that either wants working around or properly writing down.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 09:15:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 09:15:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158884.1487264 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIkT4-0003qQ-3a; Tue, 11 Nov 2025 09:15:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158884.1487264; Tue, 11 Nov 2025 09:15: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 1vIkT4-0003qJ-00; Tue, 11 Nov 2025 09:15:14 +0000
Received: by outflank-mailman (input) for mailman id 1158884;
 Tue, 11 Nov 2025 09:15: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=gJlB=5T=citrix.com=christian.lindig@srs-se1.protection.inumbo.net>)
 id 1vIkT2-0003qD-Nd
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 09:15:12 +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 ebe50c4f-bede-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 10:15:11 +0100 (CET)
Received: from DM6PR03MB3482.namprd03.prod.outlook.com (2603:10b6:5:ae::22) by
 LV8PR03MB7398.namprd03.prod.outlook.com (2603:10b6:408:18f::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Tue, 11 Nov
 2025 09:15:07 +0000
Received: from DM6PR03MB3482.namprd03.prod.outlook.com
 ([fe80::4cad:bfaa:fd27:3555]) by DM6PR03MB3482.namprd03.prod.outlook.com
 ([fe80::4cad:bfaa:fd27:3555%6]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 09:15: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: ebe50c4f-bede-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iQ5TXGbvfXYw8estEBoiM94+Y+UdwbkWroEmpRCakvwBrAPatGrdH4lU6ilDBnc2yU/KlDjZEkovQHW9bHrtxJwhyAJTyiD0yPh//jbeFblRyyU4GjdwAh4ZpoDIxLsdGKaJOOiX8Z9MI4edWga6yaWXuuj+dLwog9kT6hvG3OpM2o2VbrYDle9pHAk9yFRNQhA+0M0KLQtPeus06ysRrNrP2H11+AKKjocTI/VXlNHBzRVQn27dnwo2LHe6crYulEA/6dpwxiQrAfSPpiMqAItjeZ5i8Dd+NvPqZtnUx/sEUJS9sUyF/C7wfA9hiq/XOyBeBaRFYSnbQi9IpO5CWQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1y076mZFuH72wSJE7nvwv5TrF2pMr7d0M/3voJLUbmQ=;
 b=Y3T3fEmTxAGUYpAySeLtCCvaI8d22qttj4Q+Fv9hV54EAX9FFLzz3r136PgMqyL1daThB3TKEYelu7vMv0dCDUfKINoeUUmCy526+3aF+Z+Sc1JuN7r7kWJMYygEMnJ9p8rnRT6RCAnOS4GiVjGliw02SW+MKarCrLNJ8cDG4dHX/J6Ds6vP9GAZvb9rBsEXIVbEt8frZSvOO7UXXoVh5z6XQSws4wsO0+c4Bd2cM7RJ3Uo3disgMy0f1DQWl2deAViYQnjCLcslDmz3cuL2hd3YpBCuZCM5plOYfzlV9pO8kk3p19mlKTINcLyvsRC5YFbofNSKIy7mU/YTJeAS1A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1y076mZFuH72wSJE7nvwv5TrF2pMr7d0M/3voJLUbmQ=;
 b=ApM1TUGGOUDVuK+DzFCBFew3QwDLrKm4TSOw9DgNtHh/k1QZ99ABzZR/NeFazXHedgw9uNB5geb6o9n7RETWL+qrXY4yKZAtEa8cJGPDnSIanhp8i3atR36eMFQdOvaW99g1UzhObGhgtz+d5C0eZ6S0rQu/f9KUW1ZZzyS46QI=
From: Christian Lindig <christian.lindig@citrix.com>
To: Andrew Cooper <andrew.cooper@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>, Roger Pau Monne
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, David
 Scott <dave@recoil.org>, =?iso-8859-1?Q?Edwin_T=F6r=F6k?=
	<edwin.torok@cloud.com>, Rob Hoes <rob.hoes@citrix.com>, Pau Ruiz Safont
	<pau.safont@vates.tech>, Andrii Sultanov <andriy.sultanov@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH] CHANGELOG: Note about oxenstored being deprecated
Thread-Topic: [PATCH] CHANGELOG: Note about oxenstored being deprecated
Thread-Index: AQHcUmFLeTNSyd5DFkCJtNk09fxZ7bTtMogA
Date: Tue, 11 Nov 2025 09:15:06 +0000
Message-ID: <95BD615C-BA0A-4694-AB92-66F9D7285AD2@citrix.com>
References: <20251110164427.54299-1-andrew.cooper3@citrix.com>
In-Reply-To: <20251110164427.54299-1-andrew.cooper3@citrix.com>
Accept-Language: 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: DM6PR03MB3482:EE_|LV8PR03MB7398:EE_
x-ms-office365-filtering-correlation-id: 9377688d-f08b-48ef-fce9-08de2102ce45
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|7416014|376014|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?4K+tkXTF4zkCAb131nNiM4XEYN7Z/L4d8aVRPa6SRjU7lbstDgrHd1e6cN?=
 =?iso-8859-1?Q?vYL5uu7kFe2+enKSdxROsmy/W75sRmRTGQWydkHoU4cIqxRj3g8GA5v704?=
 =?iso-8859-1?Q?T9l1J0S30hIkSo232S/38/jJAaHiHpTP0u79/Lt5IYo+o/TF+v/0yEKy75?=
 =?iso-8859-1?Q?ag7RcI2h/ePCQAQYC3PM+MisNkDHdL5u8wDr+jVjjloUUJLi1z0xhonxPH?=
 =?iso-8859-1?Q?R4cGzRn6pMQUXtZw2AZOT6q1pmdDDHeUQCE+BmQOU4sye+c0T1Je7s9mw+?=
 =?iso-8859-1?Q?2AjOxal++yj0y3KGRawuYXbwlIR8P6jWyh67WpqqRgLDcvsiJCjZMvUoZ6?=
 =?iso-8859-1?Q?r0Z7UlFkN7A836kAyZEIWZAZ7Tukqna1cjncVpaBC6CjABX3RS3xnt6Tro?=
 =?iso-8859-1?Q?+mmBua84oPTlW1CwNVRixKAyWR2LtXjv6pL6aIMsiWlgW5thS+3AqfHNSp?=
 =?iso-8859-1?Q?GvyyA6f//ja5KiPgNfWMyPOs2s+GtD7kjUNAVPF35JJhNWXT6zU0A8Co/H?=
 =?iso-8859-1?Q?sy19hrKLstHwttWrpTCGKJVMCZExaIuiIGfLapwbFSNfTphZ+o+trPPR2v?=
 =?iso-8859-1?Q?GPyR84wdZOkPUFFlk6dey9cQzO5umHhdOKzeoYUXybwCHbEyjNIoOS8cM/?=
 =?iso-8859-1?Q?O+sQC9TeMoKuLS9khDiGshSeQhOSF6On4j75rAf8FPE4Ny1SK1Z8RAkLHi?=
 =?iso-8859-1?Q?PN/UZUmTJu8y225pBs/TcwNfXN44rE5zAoChB/gMGCllyzmjsWjx8p5zat?=
 =?iso-8859-1?Q?7PmTqPOeMl889G03jbFnEDksOfh8O5k3ZRu4V51M71ZrOG7PPyvHB5txeh?=
 =?iso-8859-1?Q?du5BJQJgqFv8xxnuM/ZQkjSjT7b/AYhhtnmM5p6tYCHwLcOH2cDuHgXfov?=
 =?iso-8859-1?Q?2je9LDzvaJNvlVEkBxzkP2Vro0n7a/mkQcQpy1ltHok26+TogUo7EFMgQp?=
 =?iso-8859-1?Q?0LsHSpH3HVEpK5pyF9iDST2NsclAo7LSb122pDjm22EfKqgoBMLJ/nUYbK?=
 =?iso-8859-1?Q?vixFszee+KEKlIt1koYY+W5d4uq5rxoOAZH4mDDBBK74gquxVKtenYFvKe?=
 =?iso-8859-1?Q?touoJ6+ZCaOtWN0lVpHJk5EKfmDs/tlOiyfHRKe2XF4XJ1UNoKs3GyitAp?=
 =?iso-8859-1?Q?3bwJYyVhgEUks5OHXZzznHUrzomAVEETmqUYDO/AEjWOT53JvNQPDVQItS?=
 =?iso-8859-1?Q?VwykAC5YcP3cdm7T0f4VbMH9W61BSQFhwoOKtnB+/8S9SnPCsozriYnjUv?=
 =?iso-8859-1?Q?3Cx6hKC273LEhMq2rfwLGTvuAuCZxLomZShl6yUrsAlG/J79FJUwSCuzoP?=
 =?iso-8859-1?Q?rOZ4DQ85ZOLXEeMZkmZWxq0O5GAaUd+BcNeEHSniz/ZRZ/rQyAy1ArFMQh?=
 =?iso-8859-1?Q?rtD38nk5OA2DxfBzH5CXbbkv4T2IRI9aNZp2W/8rBFcZihRb7Pycqvr+Vz?=
 =?iso-8859-1?Q?MxBEOYl83fnKA754ypHDzGtmkTGvGgTcBdHCqss2XTXaIzDwcAowk1DOWx?=
 =?iso-8859-1?Q?GkwrWJCJBnsxgumrVSjzt7mwLPX5psEBnUQABzW8D3f+OXMsXU984I638M?=
 =?iso-8859-1?Q?fW7rc877kt+QVo/4maEdqJoGT/BQ?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR03MB3482.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?c5hNFaMaM3OBhjPrr8ccL4+lOo8gd+sQwj7XYUPwvsjCcjDMvBK8AEhxs3?=
 =?iso-8859-1?Q?XkUxfr7XkGmwMPnCjgzQ7jFZA6mCJD63g9c539BX4IKfNXGfFnRnCzyB2K?=
 =?iso-8859-1?Q?irZWJpBlr5AhjPi4425G6MMJmpecplPggVSQdb9zzLw9TaSaV/k/zPLgJr?=
 =?iso-8859-1?Q?TpMbZGMrh8XdOqVOrucfa2+q+ACwCCc3VragQtFUeIdiuxhSAps+OdHWw/?=
 =?iso-8859-1?Q?9RAT9gre42AZ31v7Q561zuk55H5Q15q1Qiq7OlxXI2gEtf3KOCt7+sBhZl?=
 =?iso-8859-1?Q?9VEfcWVRKcgXVA6L0lPK727XH0eFbD8qqWJYdIPFQ5I+G8+VrHuP/N04Ie?=
 =?iso-8859-1?Q?ZxxFaiKWq9mCZeJXL6DEYsWVY+TOG59y7uc2TwxfiULfmFwP5NPrSoLhr4?=
 =?iso-8859-1?Q?gqReFWaS9NjPtdd3foiAL5fxm31Bme+sGNx/UxiOvmRY4yuE99iSRidfr9?=
 =?iso-8859-1?Q?8YspgjWO96GEQs2nu+3zr01iFQ+2IVpu3Fwgc1bN4cXNzj8aTloXa9dfAI?=
 =?iso-8859-1?Q?bNpsNZmOgxM4OXkYMB6UvkfRrEYOYDJzv2UiUp3uiGVlJ895xtcb8JSMHE?=
 =?iso-8859-1?Q?72eRxTOvGtXeGMBHB9/BX8S/yl6DEVuVUDJ5e4EWNlg+Sw+lpdgYqcfFF2?=
 =?iso-8859-1?Q?J6DcxCzyBFo3Z6VYITODWN/TVf0cWLo5V13wMk/GikMi9l91ug6oF4ITis?=
 =?iso-8859-1?Q?u1UzCvYOAch4R/+pVCM8k4MHt5/hqXpT1JE7UV1FkzlLtozoyiuH4eBj5S?=
 =?iso-8859-1?Q?EsQ5cMgp3nmXDH4dr4u58Ys2//OejAuxSCIm8qz3pFU97Xc1UfR/cE9JOe?=
 =?iso-8859-1?Q?TfGjv5TVMw9kUA6O4msZqvzwpKA6IbWSvmU2fD3hVPKZbgBF0Rbls47FKY?=
 =?iso-8859-1?Q?JfM5kPe5w7WyCfsaLd1L9qyk+YQyb2Ocz9NaSdq1rseSVoG8FJZ6q0knd6?=
 =?iso-8859-1?Q?uac38K86/Pxn0p3UhSWchpiKW/xiw3Dg3ShfcsRPt4DeKhdWzsjom+fO19?=
 =?iso-8859-1?Q?kp38XwiI5HqF4bg1EeKIqQLrxlzYj2mCh64UTBchIjxTPJqrLiRXHdXbO2?=
 =?iso-8859-1?Q?xKE9H5t+A+TgkDvp/Ov+IEfgibdN0cc0D5GQQpiygcw5Oco3vw2cnWXa7r?=
 =?iso-8859-1?Q?lqlH/xf3A9PJDAjqD5HTurGXp6v1nqnxtfSAunxFOpNMckvo/uhjeUR2lW?=
 =?iso-8859-1?Q?Z+iTelozULVDQKtaPYvyyZ2vhKeQqHQRhZlhGP1j6MHMfGkMFG/e3f692a?=
 =?iso-8859-1?Q?Bd35elqa2iqBTrsmMIXbxbgMaLsNkHcwr7aKzeiS2e+0rJd+cdYDB32eUp?=
 =?iso-8859-1?Q?iujxe6+IUQrW4t12pSdbvAss9wfHa3bp7CkBY2WBx13gF1yXd1fLW4mOKf?=
 =?iso-8859-1?Q?rmi6OeD8f6knm1VuSdDBx5qiHu0pakqRW098cS4OYZkyBSIYj7AXAUQNTn?=
 =?iso-8859-1?Q?CtR/rmWXG8xe4wuJXcXCpoj9nrhTZcTS6VoenWnvdZd7xS5hkJp/unFUi1?=
 =?iso-8859-1?Q?GRlaEZ/jP+thIF41SGZHwSUhbQ6K9NdJCUuk2uPKpL8wHfB7gZeRuFBffm?=
 =?iso-8859-1?Q?RgkbIuZV7e2LLPqjP6cphVj7ny/FpTwOsC+UPkAznRyVtyU4hE7d/GSKGo?=
 =?iso-8859-1?Q?4ETVRGfM452uYbSo/TJy0tYQAjvx2hpfSGJ3Eg0YeuGC8nfyeabQPnRA?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <592564521841E641B3FAB89B3A2C4FDB@namprd03.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR03MB3482.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9377688d-f08b-48ef-fce9-08de2102ce45
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2025 09:15:06.6990
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: /5j0csFDTWFOxCbXb0qFzgCkrbgOT5OObC8nizx3Gulfpc00e0av5xc2zu63OLw2RCp2TExZ75kting7OaWxpudeLWVmSv+Oq36tXGW922k=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR03MB7398



> On 10 Nov 2025, at 16:44, Andrew Cooper <andrew.cooper3@citrix.com> wrote=
:
>=20
>=20
> + - The in-tree oxenstored is deprecated and will be removed in a future
> +   version of Xen.  It is moving into the Xapi project
> +   https://github.com/xapi-project/oxenstored so it can be maintained in=
 line
> +   with the other Ocaml projects in the Xen ecosystem.
> +

Acked-by: Christian Lindig <christian.lindig@cloud.com>



From xen-devel-bounces@lists.xenproject.org Tue Nov 11 09:47:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 09:47:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158895.1487274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIkxs-0007rb-FF; Tue, 11 Nov 2025 09:47:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158895.1487274; Tue, 11 Nov 2025 09:47:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIkxs-0007rU-Bz; Tue, 11 Nov 2025 09:47:04 +0000
Received: by outflank-mailman (input) for mailman id 1158895;
 Tue, 11 Nov 2025 09:47: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=Ifhn=5T=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vIkxq-0007rO-Me
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 09:47:02 +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 56ba1575-bee3-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 10:46:48 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) 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.9320.15; Tue, 11 Nov 2025 09:46:43 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%3]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 09:46: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: 56ba1575-bee3-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=e3EpDjn8pcqBXWk//0YKLeXllXih948U4MJNTlVUO2LyeKP3K8iNbM1CCzLAkrt2lU6lMnNV4SIEuZIqSWKips3oD86kVL1fsgpSyxZn87MspwthyVZ4NcIHd803KdOz5elz1D1AdVJjh0BMK4TPXwwEyLrohj78Ru1fOYFXdtRmFj5H34+pbVLBBKWDLtqpGWtA84PSdP7lethKKYj4kkG5kW6SqdGAcNk22lfvAh4CAbR9M07C+s9Z320Mp8U1NZ/zdosKXO4ykgWTjPokvfn1tq3HxrFFTdZjgyej4+rJpiua7r1ja1SzRqDyzqJ7WjRE0zas74htOF299Jqh3g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SRmkybsfnEO975H3bsyuVrhD4+SDTVTgo5Iq+4pho+I=;
 b=p7Rd++8kMEcNL8zZHRz+Wu8W0s/QBeKEgddn28L5f5i71VVuoU6YwrkTknvmTIM1SbOBmJpawGtnKUVb5YA8j08UnVOVhU+TbEEi8E/YCu/9TpUHZ+JBMfASK/zUJxBkDSLw4MmKjAH3x3byMIGIuzQEixtWiv7AlGiUqKfT+l5/ZEDvyxQvuQxk/QT3TKBSqFR9PJSoo/+nTFVRARHVhlI7QGduBVyd+PQOGTdLEX148v+o8Q3ftfv7TiT0pC9wNFUJn9E5Ae9mhD0gBwOwKJ3cC9VoIzC0fgdfglSIy0YtCRr0q+tpPi14L3/liY82wUGA7sHt0Mfuq1ILUlMj6g==
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=SRmkybsfnEO975H3bsyuVrhD4+SDTVTgo5Iq+4pho+I=;
 b=WCfuFDXgT3eP2jPjeAjMs3sdcmMy851rilkCAKfJXU01yocTCADKhWTGvWB9CqAsABE3j5Vq4l61MxgHy+0Sm+qjbRMiOtLLPa40ekIw1WhSVGrYLdwm9VOokm24beN0YMRB6NMZwcTwgG2u7uhOz2fwdYqnxfV5trwJNuS0B9U=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "oleksii.kurochko@gmail.com"
	<oleksii.kurochko@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, "Orzel, Michal" <Michal.Orzel@amd.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Alexandru Isaila <aisaila@bitdefender.com>, Petre Pircalabu
	<ppircalabu@bitdefender.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Tamas K Lengyel <tamas@tklengyel.com>
Subject: RE: [PATCH v3 09/28] xen/vm_event: consolidate CONFIG_VM_EVENT
Thread-Topic: [PATCH v3 09/28] xen/vm_event: consolidate CONFIG_VM_EVENT
Thread-Index: AQHcPCqA+mY6s9fCEkmLa9SlVlA0PrTZYSAAgBPVwiCAABbwAIAAFwrQ
Date: Tue, 11 Nov 2025 09:46:41 +0000
Message-ID:
 <DM4PR12MB8451D02B2F0878219556EB3AE1CFA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251013101540.3502842-1-Penny.Zheng@amd.com>
 <20251013101540.3502842-10-Penny.Zheng@amd.com>
 <1a9ac91c-2295-4749-8807-668fcecf8f8e@suse.com>
 <DM4PR12MB84515407D91133DF7B182BF1E1CFA@DM4PR12MB8451.namprd12.prod.outlook.com>
 <c1fbdd8a-1c4d-4dda-8dff-e0206ab1cdc1@suse.com>
In-Reply-To: <c1fbdd8a-1c4d-4dda-8dff-e0206ab1cdc1@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-11-11T09:46:02.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_|DS0PR12MB7725:EE_
x-ms-office365-filtering-correlation-id: 865d73e0-27a8-42bb-be78-08de2107378c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|7416014|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?bU8xemZEVmtOWGJCdUl3YUdvR0xMZEIyYkpDRmZySUJobWpiZTI3UldaVXhB?=
 =?utf-8?B?ZkE2RlNjaE5wek5qdjNNcmlMb0hXUHEreGdBR2JIdzJRWnM2eUJNOWxjY2ZM?=
 =?utf-8?B?UitSV3JwL3lGVnN6dDJUTWdIcWxocmZFSXlBb2t1bEJ5VW15MWlia3JzZkU4?=
 =?utf-8?B?RGlOb2lGSjVhNXNScElwdWR6VXNJTW5MWS9BdWlMYUpqWFlPSU1aVG40OWVn?=
 =?utf-8?B?MkdvV2lUaHFPMXNUelhOWWhJTzgvbGpxeEVDdFVRbnlZT0VoaEVkaWNwU1ht?=
 =?utf-8?B?RnpvSjJLZEt2ckMwcEtKYkVmQWxqcHNYS3AxMFI3d2ZEeHczNVpFeU9qOCtj?=
 =?utf-8?B?cFpoVVRkWlM5bHVhQXJPNEpVUXd5dGZIdHpnSWU0NEpyRFlTSDRCTHF2UWFM?=
 =?utf-8?B?NkJwZzhrbDU4SkhlQmM4L29HMldsN213N1E2U0o5RUwvTkI4T3NXUzFUKzRY?=
 =?utf-8?B?RW9HNExwWlJKVkVSUjRPd3ViQWNCazFRVFlyQXA4RE5kdGZLZWxZQXgxTjBw?=
 =?utf-8?B?bFhFOVByaGpRUVlYU1h4SzQ2eG5ReElUOXE1RHVzaWh6OHRaYkNYYStHZzJH?=
 =?utf-8?B?NE0wUE1zckc1SldUSHpEaHJwVllTS3JFV0NrZDJHRnhRSXhTSWoyRXgyVi9L?=
 =?utf-8?B?R25HL3Y4enRYRVRIR05zMUNrWTM4N0RWaVpYMDllMzBPV1ZVMjB2RFZLdmVH?=
 =?utf-8?B?OG1XaTVITVVzM0FocHpBcXJ3UFZFSzlFb1JGMGNPMm5qWnR3NXlhVHJYQ2Nq?=
 =?utf-8?B?SU12U1duRSt5ZHYxdnJPR0VsbnA4MnArQ0ZjeHpZMlROWmZQUTFvcytjeUhv?=
 =?utf-8?B?Q05ma21lUWRvRzc3L2tYZXk2bUlvYUdpRU1DamtMR0M2Y1FhMkM4TjZMQXc1?=
 =?utf-8?B?b0dzdXJKOU85NFVpck1CN0RqdW5pbEF0YmROOUJqYTVwNW9uN1pzRTNiSmV3?=
 =?utf-8?B?cXZSRS9GMjFrRzVwbkZWU2pnNjRZWUdMWkJJY0RJaW9COHVXRlc5Nnd4V05u?=
 =?utf-8?B?YUU1K2dmUll1NzY0KzVZbzA0WUYzakpWK2lQUXlBSTd1OW5wdDMvQVdoWmZy?=
 =?utf-8?B?Y2o4aEF5ZU53cDFyMmRTbW8rNGhRVm5oVFl5dHY1QXhxR0dMd2JBY2hoNVc1?=
 =?utf-8?B?RFFVdHg3NjNjTjVYU2xZaDBxemNYdkhWMVFqS2JmZzRVQUd6SExkQnRCdHov?=
 =?utf-8?B?Y0ZLa2hTMnpkTEFvMloxVytJVk1oc3RaQldMSG9yR2RKVDNYWXBuQm1uUHIz?=
 =?utf-8?B?YUZvYWdqRjZ0RUtsVkpicmJqLzFERWcrZWhjcVI4ajY5VE9NVmRQWGVnd0xN?=
 =?utf-8?B?eVNHVjlFZDNZQmhYeVNNbkpHTXN6NjE3TmZqRXNtTHN0TitPanFoNHF0OWJk?=
 =?utf-8?B?V2cweGczZ285QTluSUVMOTlQUy9IVENxaWV0YlpvVEorUmkxTDRpUnN6V2Vi?=
 =?utf-8?B?YmowOHF0MFRtZkkxTWc1aVJPREVwdGtTd04vNjFjK3pjZmR6amN4WUgrZEFG?=
 =?utf-8?B?cG5RM0ZQbWVFWTdPS2xrNVhBVUhjZEVpZ1hiRE9ERmE4eHJHY25WeC8zek9u?=
 =?utf-8?B?TzJtdXlOeEt5dE9KSXpFclAyblp0TzVJY28yclJscFMrdWtyZ0x4ZVYvc3Fq?=
 =?utf-8?B?cGtPQkdlMVJreW1RdFF2Z0NpUTJmWVRxckxVcUNBMVJqSkdmOEFFNlVPOGJ5?=
 =?utf-8?B?bmFBYndhaVE1RjE1VVVyTkw2OC9Pa0c0Z0VuZk4vZm1yaFUyWkU4T3V3c05l?=
 =?utf-8?B?ZnRiejM3UWJaMlFYblhCWUlVUDVzM1dKMXhqbDlwSGRoZ1hiN05kRENZbkhm?=
 =?utf-8?B?RDM4N0M4ZmFJV2FKcHFTaThYaS9hcDdjUlUxOElqZHhibG5kME03eGU0UFhu?=
 =?utf-8?B?V2tSa3VRL1hUQTBCWTk0czBCK3c1cVl3V3hqZUxOeXRORGQxQVpjOWlST0pR?=
 =?utf-8?B?NHMxQUlQSCtjdFdwS3FpcEt1Ty84eHpOVVFGQjA3T05odHd1QnQ1K1lWUEcz?=
 =?utf-8?B?KzFCK3hnaUc5ZnBtRWFwVnJDZXAyWmNCVnpDQnNnSkIrSjBKWVgycHpwTjVi?=
 =?utf-8?Q?T2iJ5P?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?UERaa3I5eXhQNjRSR0taY0VHamxaTi9kT045N3p4UWF2Qng0Tm92TkZ4TmFm?=
 =?utf-8?B?NEVCV3ZtQWgwL0w1blJDQXVRbXdIQXdDeWQrR3JlQTVINTBQWHhubFdueVoy?=
 =?utf-8?B?WjRKK0kwNUtnSytJRlVoVFIzUXgraTMzdUh4ZnFYZDA1R2t5V21ITkI4V2Ny?=
 =?utf-8?B?OCtPL1JJRFRGRVRrcGxMbDhpMCs4SnhUUDc0b3ptYTVUNW45aUQ4U3c0UVNv?=
 =?utf-8?B?b1k1a2RyRnZMN2UzcFdjdERYNEhDaDdyT0tBb2JTUHJBbnRtOVhQRmdMZVVy?=
 =?utf-8?B?TWxTQzFKSjQyazdVeFpoT0gxZWo0cG9UMUxYTklyMmJ3bWNESklVbndCRGZo?=
 =?utf-8?B?M1VQNjl4MjZXYzVIcURaR2xFdTEvSjBpSFY4VFRJWWxTc041RndJSmF6QzhM?=
 =?utf-8?B?M1E5dzI5OGovcVhFRHVJYnJ6ZEVZVzhrK1FqQVB5aGtFMWVoUlZlOGR3U2ln?=
 =?utf-8?B?MTRjbHVOdmpZWmcvTEo4MzdZTzM4SmE3MVYxS2FmQ3dQL3ZlL2grWTQ1TmVi?=
 =?utf-8?B?TE03SkRiZll2bU9URk14T1ZwNVFiNlJmSC9ZVFZOTVFZUHhsMXd1bmROaFFM?=
 =?utf-8?B?ZGowSnJqNGM5LytyLy9VMEhwMk1qbzU2Sk1lcnRUYVI1ZHFYY2NiZ3pTMDNi?=
 =?utf-8?B?Z2VUVW9uRTNVdEFZa2xFcE0zMkRNeGhoVTI1VlNTZHIrcFpWelRtNlk0eEUr?=
 =?utf-8?B?eC9JUTRTNEIzVjdiYXd5ZUs5c09wemZzbFdXZEZ6Z014bmZoeGNiZWhpVzZi?=
 =?utf-8?B?YUVuR2JreWdKTitWOWxNOXRwUHp1ek5mTzVSL2U1V1VVd1UreEdlMUV1Zitq?=
 =?utf-8?B?eU9TM1VGZFJ5ZzdPaFFUNzFwVDRTbURkUEI2MjhTTGtFaXZtNnRBV285SUtD?=
 =?utf-8?B?ZmF0M0xHMG96UURsL2lueEtrRXY3ZnBMeDZ6MDU0R29KdnVmaWx0WUxVNlJt?=
 =?utf-8?B?YUpuZWpxUGlYaTRGclR3TVZjd1FCdlg4UHFoV3dhK09UUTdheXkzNFRZdEVH?=
 =?utf-8?B?RUpZS21TSUZCenllWTNuUENlZ25SY1ZOKzNaTFRjeElQNTRqWEx2Q1MxSFE4?=
 =?utf-8?B?UHdLb0c4L0w4ZVE4Z2M0azVxTEpPVUZaM1VIY0RTNjlHem5CVHUxVmtBc3JM?=
 =?utf-8?B?UXB6N3ZwQVFBMjI4b2gzU3V1dXBoNmhJSlRqL1AydHhuK3lLSFBEcmJDcmhS?=
 =?utf-8?B?YlhpdmVsRFRDbGR4Z0lxejRFc1Zmc3prNE84Mjl4WXZoeWtLUmZVWXBqNzc5?=
 =?utf-8?B?cDJKTW9uSmZIVVBUY056NWtiVTdYNmRJdE9MSjZLTGQ2Slk3Q29lZGRLdUdQ?=
 =?utf-8?B?dmJLNzNTV1NOdURrVlQyRi9iOVBYOWVUaWhjZzd5NGdCS1pDVnFHZm01N2tW?=
 =?utf-8?B?UXhIWExVRHpYNk52UkpHRTFNLzlrQ2tRSWxobGtIMjVGRElZVTZUaWdveS9t?=
 =?utf-8?B?VXVNNUtmQ3RtMGlraW9JY2tHOGUrTm9ESnQ5RDhWbnl1SmNxODhyMXcxUjlr?=
 =?utf-8?B?V2srNy82d3pDT2VtYlpRQk5IS29PcCtyT2g1M0tjbjF6TG9VaHhSeHBLRW9p?=
 =?utf-8?B?KzcxcjdxOVdFRXZxcFJjTXpsNEVuaFBISkJkc1BGVXV2aEtBR2RwVEg5THdm?=
 =?utf-8?B?Q2psd1IvVTRjN3NPcTRqNUw5VzBOZWYrNGNPdHBrcUZFTnFxRUhvSHRqS1hz?=
 =?utf-8?B?K1VObmp3cC9FWndqNFkyVG1QbDhyZXplNXA4SXIrcVRhdTc3byt6UWFia3ll?=
 =?utf-8?B?ZkhSdkMyYTNPbytVY3lvQm9XU3lhY3lFU1BBOVBwZ0RycWZxdVV5U0Q3a3lw?=
 =?utf-8?B?ZFAza1o0SlVLSHQ3TFFQRmlZbnpJTzBWQkhsWG9vMk9EUkxnK1NSTEluZFNJ?=
 =?utf-8?B?Vkh3bmtPMGlSd0lKODcrVlRNZlg3QkFmV3prZ0F2VjhPWWRCTzVyVXVzcEhD?=
 =?utf-8?B?TTdWblZSWEw4NjMyS0ZFc3VRNHhZRVJUWGVWbDQzcE9pME9WaUxJRWVUY1Fz?=
 =?utf-8?B?VUFtcnArSSt2KzgrQ3haMEdIL2pDSFBZdGFqL2xHeDhVUytoRmhrZGxOQkJw?=
 =?utf-8?B?QngvLzF4UmVoeFZkVHY2NURuNm5jL29FM001NTVZaVlPTDZlR1B3dVk0Zjdt?=
 =?utf-8?Q?7lSM=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 865d73e0-27a8-42bb-be78-08de2107378c
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2025 09:46:41.3564
 (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: 0mH6GMReATF0AtzHivkf2KkANXTjaCsOJ3l5kjLQhY9NB0TcV9JHIt3Owo1aeYhdI27Nrzza8S4/Eg3c/Uu2xQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7725

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIE5vdmVtYmVyIDExLCAy
MDI1IDQ6MTQgUE0NCj4gVG86IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT4NCj4g
Q2M6IEh1YW5nLCBSYXkgPFJheS5IdWFuZ0BhbWQuY29tPjsgb2xla3NpaS5rdXJvY2hrb0BnbWFp
bC5jb207IEFuZHJldw0KPiBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+OyBSb2dl
ciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT47DQo+IEFudGhvbnkgUEVSQVJEIDxh
bnRob255LnBlcmFyZEB2YXRlcy50ZWNoPjsgT3J6ZWwsIE1pY2hhbA0KPiA8TWljaGFsLk9yemVs
QGFtZC5jb20+OyBKdWxpZW4gR3JhbGwgPGp1bGllbkB4ZW4ub3JnPjsgU3RlZmFubyBTdGFiZWxs
aW5pDQo+IDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPjsgQWxleGFuZHJ1IElzYWlsYSA8YWlzYWls
YUBiaXRkZWZlbmRlci5jb20+OyBQZXRyZQ0KPiBQaXJjYWxhYnUgPHBwaXJjYWxhYnVAYml0ZGVm
ZW5kZXIuY29tPjsgRGFuaWVsIFAuIFNtaXRoDQo+IDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMu
Y29tPjsgeGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnOyBUYW1hcyBLDQo+IExlbmd5ZWwg
PHRhbWFzQHRrbGVuZ3llbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjMgMDkvMjhdIHhl
bi92bV9ldmVudDogY29uc29saWRhdGUgQ09ORklHX1ZNX0VWRU5UDQo+DQo+IE9uIDExLjExLjIw
MjUgMDg6MDgsIFBlbm55LCBaaGVuZyB3cm90ZToNCj4gPiBbUHVibGljXQ0KPiA+DQo+ID4gSGks
DQo+ID4NCj4gPiBTb3JyeSBmb3IgdGhlIGxhdGUgcmVzcG9uc2UuIEp1c3QgZ290IGJhY2sgZnJv
bSBsb25nIGFubnVhbCBsZWF2ZXMNCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t
LQ0KPiA+Pj4gLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21lbV9hY2Nlc3MuaA0KPiA+
Pj4gKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL21lbV9hY2Nlc3MuaA0KPiA+Pj4gQEAg
LTE0LDYgKzE0LDcgQEANCj4gPj4+ICAjaWZuZGVmIF9fQVNNX1g4Nl9NRU1fQUNDRVNTX0hfXw0K
PiA+Pj4gICNkZWZpbmUgX19BU01fWDg2X01FTV9BQ0NFU1NfSF9fDQo+ID4+Pg0KPiA+Pj4gKyNp
ZmRlZiBDT05GSUdfVk1fRVZFTlQNCj4gPj4+ICAvKg0KPiA+Pj4gICAqIFNldHVwIHZtX2V2ZW50
IHJlcXVlc3QgYmFzZWQgb24gdGhlIGFjY2VzcyAoZ2xhIGlzIC0xdWxsIGlmIG5vdCBhdmFpbGFi
bGUpLg0KPiA+Pj4gICAqIEhhbmRsZXMgdGhlIHJ3MnJ4IGNvbnZlcnNpb24uIEJvb2xlYW4gcmV0
dXJuIHZhbHVlIGluZGljYXRlcyBpZg0KPiA+Pj4gZXZlbnQgdHlwZSBAQCAtMjUsNiArMjYsMTQg
QEAgIGJvb2wgcDJtX21lbV9hY2Nlc3NfY2hlY2socGFkZHJfdA0KPiA+Pj4gZ3BhLCB1bnNpZ25l
ZCBsb25nIGdsYSwNCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBucGZl
YyBucGZlYywNCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2bV9ldmVu
dF9zdCAqKnJlcV9wdHIpOw0KPiA+Pj4gKyNlbHNlDQo+ID4+PiArc3RhdGljIGlubGluZSBib29s
IHAybV9tZW1fYWNjZXNzX2NoZWNrKHBhZGRyX3QgZ3BhLCB1bnNpZ25lZCBsb25nIGdsYSwNCj4g
Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG5wZmVj
IG5wZmVjLA0KPiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dHJ1Y3Qgdm1fZXZlbnRfc3QNCj4gPj4+ICsqKnJlcV9wdHIpIHsNCj4gPj4+ICsgICAgcmV0dXJu
IGZhbHNlOw0KPiA+Pg0KPiA+PiBMZWF2aW5nICpyZXFfcHRyIHVudG91Y2hlZCBmZWVscyBkYW5n
ZXJvdXM7IHRoZSBmYWN0IHRoYXQgdGhlIHNvbGUNCj4gPj4gY2FsbGVyIGhhcyB3aGF0IGl0IHVz
ZXMgc2V0IHRvIE5VTEwgdXAgZnJvbnQgaXMgc2Vjb25kYXJ5Lg0KPiA+Pg0KPiA+DQo+ID4gSWYg
d2UgKnJlcV9wdHIgPSBOVUxMOyBjb21waWxlciB3aWxsIG5vdCBEQ0UgdGhlIGZvbGxvd2luZyBj
b2RlIGJsb2NrIHdoZW4NCj4gVk1fRVZFTlQ9bjoNCj4gPiBgYGANCj4gPiAgICAgICAgIGlmICgg
cmVxX3B0ciApDQo+ID4gICAgICAgICB7DQo+ID4gICAgICAgICAgICAgICAgIGlmICggbW9uaXRv
cl90cmFwcyhjdXJyLCBzeW5jLCByZXFfcHRyKSA8IDAgKQ0KPiA+ICAgICAgICAgICAgICAgICAg
ICAgICAgIHJjID0gMDsNCj4gPg0KPiA+ICAgICAgICAgICAgICAgICB4ZnJlZShyZXFfcHRyKTsN
Cj4gPiAgICAgICAgIH0NCj4gPiAgICAgICAgIHJldHVybiByYzsNCj4gPiBgYGANCj4gPiBPciBh
bSBJIG1pc3VuZGVyc3RhbmRpbmcgd2hhdCB5b3Ugc3VnZ2VzdD8NCj4NCj4gRmlyc3Q6IEl0IHdv
dWxkIGhhdmUgaGVscGVkIGlmIHlvdSBoYWQgYWxzbyBzYWlkIHdoZXJlIHRoYXQgY29kZSBmcmFn
bWVudCBhY3R1YWxseQ0KPiB3YXMgdGFrZW4gZnJvbS4NCj4NCj4gU2VlaW5nIGl0J3MgaW4gaHZt
X2hhcF9uZXN0ZWRfcGFnZV9mYXVsdCgpLCBJJ20gaGF2aW5nIHRyb3VibGUgZm9sbG93aW5nIHdo
eSB0aGUNCj4gY29tcGlsZXIgd291bGRuJ3QgYmUgYWJsZSB0byBzZWUgdGhhdCB0aGUgbG9jYWwg
dmFyaWFibGUgInJlcV9wdHIiIHRoZXJlIHdvdWxkIG5ldmVyDQo+IGNoYW5nZSB2YWx1ZSwgaS5l
LiByZW1haW4gTlVMTCB0aHJvdWdob3V0IGl0cyBsaWZldGltZS4gSWYgaW5kZWVkIHRoZXJlJ3Mg
YSBjb21waWxlcg0KPiBzaG9ydGNvbWluZywgdGhhdCBlaXRoZXIgd2FudHMgd29ya2luZyBhcm91
bmQgb3IgcHJvcGVybHkgd3JpdGluZyBkb3duLg0KPg0KDQpUaGlzIHJ1bnRpbWUgdW5kZWZpbmVk
IGVycm9yIHdpbGwgb25seSBvY2N1ciB3aGVuIHdlIHR1cm4gb24gQ09ORklHX1VCU0FOKCwgdGhl
biAtZnNhbml0aXplPXVuZGVmaW5lZCBpbiBDRkxBRykuIElkayB3aHkuLi4uDQpCdXQgaWYgd2Ug
c3RyZW5ndGhlbiB0aGUgY29uZGl0aW9uIGNoZWNrIHdpdGggdm1fZXZlbnRfaXNfZW5hYmxlZCgp
LCB3ZSB3aWxsIHBhc3MgZXZlbiB3aGVuIFVCU0FOPXkuDQpgYGANCmlmICggcmVxX3B0ciAmJiB2
bV9ldmVudF9pc19lbmFibGVkKGN1cnIpICkNCmBgYA0KDQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 10:08:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 10:08:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158911.1487284 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIlIW-0002Qg-90; Tue, 11 Nov 2025 10:08:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158911.1487284; Tue, 11 Nov 2025 10: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 1vIlIW-0002QZ-53; Tue, 11 Nov 2025 10:08:24 +0000
Received: by outflank-mailman (input) for mailman id 1158911;
 Tue, 11 Nov 2025 10: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=Xtop=5T=arm.com=ryan.roberts@srs-se1.protection.inumbo.net>)
 id 1vIlIU-0002QT-GE
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 10:08:22 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 596957b1-bee6-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 11:08:20 +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 ACCFF2F;
 Tue, 11 Nov 2025 02:08:11 -0800 (PST)
Received: from [10.57.88.30] (unknown [10.57.88.30])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D9E443F63F;
 Tue, 11 Nov 2025 02:08: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: 596957b1-bee6-11f0-9d18-b5c5bf9af7f9
Message-ID: <e2497863-8cbf-42b2-8f83-2c7b46fd1f47@arm.com>
Date: Tue, 11 Nov 2025 10:08:12 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/12] x86/xen: simplify flush_lazy_mmu()
Content-Language: en-GB
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-3-kevin.brodsky@arm.com>
 <b165098a-8164-4664-aaaf-1e8c4391d797@arm.com>
 <b21fb5b9-2e7f-4cbc-ae62-015b1317a9bd@arm.com>
From: Ryan Roberts <ryan.roberts@arm.com>
In-Reply-To: <b21fb5b9-2e7f-4cbc-ae62-015b1317a9bd@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10/11/2025 10:36, Kevin Brodsky wrote:
> On 07/11/2025 12:31, Ryan Roberts wrote:
>> On 29/10/2025 10:08, Kevin Brodsky wrote:
>>> arch_flush_lazy_mmu_mode() is called when outstanding batched
>>> pgtable operations must be completed immediately. There should
>>> however be no need to leave and re-enter lazy MMU completely. The
>>> only part of that sequence that we really need is xen_mc_flush();
>>> call it directly.
>>>
>>> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
>> This looks functionally equivalent to me, so:
>>
>> Reviewed-by: Ryan Roberts <ryan.roberts@arm.com>
>>
>> But I don't think this tidy up is strictly necessary for your series to work?
>> (perhaps I'll change my mind on that as I go through it).
> 
> I initially thought it might be, but in the end I think you're right -
> it should still work fine without this patch.
> 
> Still, I'd rather avoid unnecessary calls to arch_enter() and
> arch_leave() as it makes it harder to reason about what is called where.
> Namely, keeping them here means that a nested call to
> lazy_mmu_mode_disable() would cause arch_leave() then arch_enter() to be
> called - rather unexpected.
> 
> The only calls to arch_enter() and arch_leave() that are left after this
> series are the ones in <linux/pgtable.h> and the Xen context-switching
> logic (the one case where calling arch hooks directly is justified, see
> discussion on v3 [1]).

OK yeah, sounds reasonable.

> 
> - Kevin
> 
> [1]
> https://lore.kernel.org/all/390e41ae-4b66-40c1-935f-7a1794ba0b71@arm.com/



From xen-devel-bounces@lists.xenproject.org Tue Nov 11 10:16:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 10:16:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158925.1487309 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIlQD-0004M6-FX; Tue, 11 Nov 2025 10:16:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158925.1487309; Tue, 11 Nov 2025 10: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 1vIlQD-0004Kj-9v; Tue, 11 Nov 2025 10:16:21 +0000
Received: by outflank-mailman (input) for mailman id 1158925;
 Tue, 11 Nov 2025 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=zKkU=5T=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1vIlQB-000451-P6
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 10:16:19 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 7424ee41-bee7-11f0-980a-7dc792cee155;
 Tue, 11 Nov 2025 11: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 4A9EA2F;
 Tue, 11 Nov 2025 02:16:06 -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 0C0673F63F;
 Tue, 11 Nov 2025 02: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: 7424ee41-bee7-11f0-980a-7dc792cee155
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 v2 0/3] Third MPU Series
Date: Tue, 11 Nov 2025 10:15:58 +0000
Message-ID: <20251111101601.4171120-1-harry.ramsey@arm.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement `setup_mm` for MPU systems. This variant does not require
setting up a direct map.

To reduce code duplication the common initalisation code for both MPU
and MMU Arm64 configurations is refactored into `setup_mm`. Platform-specific
setup steps are now handled by a new helper function `setup_mm_helper`.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
---
Changes in v2:
- Improve clarity with regards to MPU setup in setup_mm and the creation
  of inclusive regions
- Fix code format issues
---

Harry Ramsey (3):
  arm/mpu: Implement setup_mm for MPU systems
  arm/mpu: Implement reference counting for inclusive regions
  arm/mpu: Implement ioremap_attr for MPU

 xen/arch/arm/arm32/asm-offsets.c         |   2 +
 xen/arch/arm/arm64/asm-offsets.c         |   2 +
 xen/arch/arm/arm64/mmu/mm.c              |  26 +-----
 xen/arch/arm/include/asm/arm32/mpu.h     |   2 +
 xen/arch/arm/include/asm/arm64/mpu.h     |   2 +
 xen/arch/arm/include/asm/mm.h            |   2 +
 xen/arch/arm/include/asm/mpu/regions.inc |  11 ++-
 xen/arch/arm/mm.c                        |  48 ++++++++++
 xen/arch/arm/mpu/mm.c                    | 114 +++++++++++++++++++----
 9 files changed, 164 insertions(+), 45 deletions(-)

--
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 11 10:16:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 10:16:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158924.1487303 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIlQD-0004Iy-5r; Tue, 11 Nov 2025 10:16:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158924.1487303; Tue, 11 Nov 2025 10: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 1vIlQD-0004Ir-2n; Tue, 11 Nov 2025 10:16:21 +0000
Received: by outflank-mailman (input) for mailman id 1158924;
 Tue, 11 Nov 2025 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=zKkU=5T=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1vIlQB-000451-1f
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 10:16:19 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 74e5a882-bee7-11f0-980a-7dc792cee155;
 Tue, 11 Nov 2025 11:16: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 7453B169E;
 Tue, 11 Nov 2025 02:16:07 -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 3A84D3F63F;
 Tue, 11 Nov 2025 02:16: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: 74e5a882-bee7-11f0-980a-7dc792cee155
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 v2 1/3] arm/mpu: Implement setup_mm for MPU systems
Date: Tue, 11 Nov 2025 10:15:59 +0000
Message-ID: <20251111101601.4171120-2-harry.ramsey@arm.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251111101601.4171120-1-harry.ramsey@arm.com>
References: <20251111101601.4171120-1-harry.ramsey@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement `setup_mm` for MPU systems. This variant does not require
setting up a direct map.

To reduce code duplication the common initalisation code for both MPU
and MMU Arm64 configurations is refactored into `setup_mm`. Platform-specific
setup steps are now handled by a new helper function `setup_mm_helper`.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
---
Changes in v2:
- Improve clarity with regards to MPU setup in setup_mm
---
 xen/arch/arm/arm64/mmu/mm.c   | 26 +------------------
 xen/arch/arm/include/asm/mm.h |  2 ++
 xen/arch/arm/mm.c             | 48 +++++++++++++++++++++++++++++++++++
 xen/arch/arm/mpu/mm.c         | 30 ++++++++++++++++++++--
 4 files changed, 79 insertions(+), 27 deletions(-)

diff --git a/xen/arch/arm/arm64/mmu/mm.c b/xen/arch/arm/arm64/mmu/mm.c
index 3e64be6ae6..70b53be032 100644
--- a/xen/arch/arm/arm64/mmu/mm.c
+++ b/xen/arch/arm/arm64/mmu/mm.c
@@ -4,8 +4,6 @@
 #include <xen/llc-coloring.h>
 #include <xen/mm.h>
 #include <xen/pfn.h>
-#include <xen/static-memory.h>
-#include <xen/static-shmem.h>

 #include <asm/setup.h>

@@ -240,33 +238,18 @@ static void __init setup_directmap_mappings(unsigned long base_mfn,
         panic("Unable to setup the directmap mappings.\n");
 }

-void __init setup_mm(void)
+void __init setup_mm_helper(void)
 {
     const struct membanks *banks = bootinfo_get_mem();
     paddr_t ram_start = INVALID_PADDR;
     paddr_t ram_end = 0;
-    paddr_t ram_size = 0;
     unsigned int i;

-    init_pdx();
-
-    /*
-     * We need some memory to allocate the page-tables used for the directmap
-     * mappings. But some regions may contain memory already allocated
-     * for other uses (e.g. modules, reserved-memory...).
-     *
-     * For simplicity, add all the free regions in the boot allocator.
-     */
-    populate_boot_allocator();
-
-    total_pages = 0;
-
     for ( i = 0; i < banks->nr_banks; i++ )
     {
         const struct membank *bank = &banks->bank[i];
         paddr_t bank_end = bank->start + bank->size;

-        ram_size = ram_size + bank->size;
         ram_start = min(ram_start, bank->start);
         ram_end = max(ram_end, bank_end);

@@ -274,16 +257,9 @@ void __init setup_mm(void)
                                  PFN_DOWN(bank->size));
     }

-    total_pages += ram_size >> PAGE_SHIFT;
-
     directmap_virt_end = XENHEAP_VIRT_START + ram_end - ram_start;
     directmap_mfn_start = maddr_to_mfn(ram_start);
     directmap_mfn_end = maddr_to_mfn(ram_end);
-
-    setup_frametable_mappings(ram_start, ram_end);
-
-    init_staticmem_pages();
-    init_sharedmem_pages();
 }

 /*
diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index 7a93dad2ed..f702f4a0d6 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -202,6 +202,8 @@ extern void remove_early_mappings(void);
 extern int prepare_secondary_mm(int cpu);
 /* Map a frame table to cover physical addresses ps through pe */
 extern void setup_frametable_mappings(paddr_t ps, paddr_t pe);
+/* 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);

diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index 3b05b46ee0..c1208de26c 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -12,8 +12,12 @@
 #include <xen/grant_table.h>
 #include <xen/guest_access.h>
 #include <xen/mm.h>
+#include <xen/static-memory.h>
+#include <xen/static-shmem.h>
 #include <xen/vmap.h>

+#include <asm/setup.h>
+
 #include <xsm/xsm.h>

 #include <public/memory.h>
@@ -24,6 +28,50 @@

 unsigned long frametable_base_pdx __read_mostly;

+#if defined(CONFIG_ARM_64) || defined(CONFIG_MPU)
+void __init setup_mm(void)
+{
+    const struct membanks *banks = bootinfo_get_mem();
+    paddr_t ram_start = INVALID_PADDR;
+    paddr_t ram_end = 0;
+    paddr_t ram_size = 0;
+    unsigned int i;
+
+    init_pdx();
+
+    for ( i = 0; i < banks->nr_banks; i++ )
+    {
+        const struct membank *bank = &banks->bank[i];
+        paddr_t bank_end = bank->start + bank->size;
+
+        ram_size = ram_size + bank->size;
+        ram_start = min(ram_start, bank->start);
+        ram_end = max(ram_end, bank_end);
+    }
+
+    total_pages = ram_size >> PAGE_SHIFT;
+
+    /*
+     * On MMU systems we need some memory to allocate the page-tables used for
+     * the directmap mappings.  But some regions may contain memory already
+     * allocated for other uses (e.g. modules, reserved-memory...).
+     *
+     * On MPU systems we need to pre-reserve regions that were allocated for
+     * other uses (e.g. modules, reserved-memory...).
+     *
+     * For simplicity, add all the free regions in the boot allocator.
+     */
+    populate_boot_allocator();
+
+    setup_mm_helper();
+
+    setup_frametable_mappings(ram_start, ram_end);
+
+    init_staticmem_pages();
+    init_sharedmem_pages();
+}
+#endif
+
 bool flags_has_rwx(unsigned int flags)
 {
     /*
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 3f155b7db2..b80edcf1ca 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -5,12 +5,14 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/mm.h>
+#include <xen/pfn.h>
 #include <xen/sizes.h>
 #include <xen/spinlock.h>
 #include <xen/types.h>
 #include <asm/mpu.h>
 #include <asm/mpu/mm.h>
 #include <asm/page.h>
+#include <asm/setup.h>
 #include <asm/sysregs.h>

 struct page_info *frame_table;
@@ -378,9 +380,33 @@ int map_pages_to_xen(unsigned long virt, mfn_t mfn, unsigned long nr_mfns,
     return xen_mpumap_update(virt, mfn_to_maddr(mfn_add(mfn, nr_mfns)), flags);
 }

-void __init setup_mm(void)
+/*
+ * Heap must be statically configured in Device Tree through "xen,static-heap"
+ * on MPU systems, use setup_mm_helper() for that.
+ */
+void __init setup_mm_helper(void)
 {
-    BUG_ON("unimplemented");
+    const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
+    unsigned int bank = 0;
+
+    for ( ; bank < reserved_mem->nr_banks; bank++ )
+    {
+        if ( reserved_mem->bank[bank].type == MEMBANK_STATIC_HEAP )
+        {
+            paddr_t bank_start = round_pgup(reserved_mem->bank[bank].start);
+            paddr_t bank_size = round_pgdown(reserved_mem->bank[bank].size);
+            paddr_t bank_end = bank_start + bank_size;
+
+            /* Map static heap with one MPU protection region */
+            if ( xen_mpumap_update(bank_start, bank_end, PAGE_HYPERVISOR) )
+                panic("Failed to map static heap\n");
+
+            break;
+        }
+    }
+
+    if ( bank == reserved_mem->nr_banks )
+        panic("No static heap memory bank found\n");
 }

 int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
--
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 11 10:16:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 10:16:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158926.1487316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIlQD-0004Sd-QU; Tue, 11 Nov 2025 10:16:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158926.1487316; Tue, 11 Nov 2025 10: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 1vIlQD-0004QD-Jg; Tue, 11 Nov 2025 10:16:21 +0000
Received: by outflank-mailman (input) for mailman id 1158926;
 Tue, 11 Nov 2025 10: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=zKkU=5T=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1vIlQB-000451-Vw
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 10:16:19 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 76454cc3-bee7-11f0-980a-7dc792cee155;
 Tue, 11 Nov 2025 11:16:18 +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 D582F1756;
 Tue, 11 Nov 2025 02:16:09 -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 984DA3F63F;
 Tue, 11 Nov 2025 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: 76454cc3-bee7-11f0-980a-7dc792cee155
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 v2 3/3] arm/mpu: Implement ioremap_attr for MPU
Date: Tue, 11 Nov 2025 10:16:01 +0000
Message-ID: <20251111101601.4171120-4-harry.ramsey@arm.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251111101601.4171120-1-harry.ramsey@arm.com>
References: <20251111101601.4171120-1-harry.ramsey@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement the function `ioremap_attr` for MPU systems.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
---
 xen/arch/arm/mpu/mm.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index cd84f9e3c6..d9f415a447 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -475,8 +475,13 @@ void free_init_memory(void)
 
 void __iomem *ioremap_attr(paddr_t start, size_t len, unsigned int flags)
 {
-    BUG_ON("unimplemented");
-    return NULL;
+    paddr_t start_pg = round_pgdown(start);
+    paddr_t end_pg = round_pgup(start_pg + len);
+    if ( xen_mpumap_update(start_pg, end_pg, flags) )
+        return NULL;
+
+    /* Mapped or already mapped */
+    return maddr_to_virt(start_pg);
 }
 
 /*
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 11 10:16:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 10:16:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158923.1487294 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIlQB-00045S-Vu; Tue, 11 Nov 2025 10:16:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158923.1487294; Tue, 11 Nov 2025 10:16:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIlQB-00045K-SG; Tue, 11 Nov 2025 10:16:19 +0000
Received: by outflank-mailman (input) for mailman id 1158923;
 Tue, 11 Nov 2025 10:16: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=zKkU=5T=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1vIlQA-000452-NQ
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 10: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 7593c4b0-bee7-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 11:16:17 +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 A41B81713;
 Tue, 11 Nov 2025 02:16: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 69A293F63F;
 Tue, 11 Nov 2025 02:16: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: 7593c4b0-bee7-11f0-9d18-b5c5bf9af7f9
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 v2 2/3] arm/mpu: Implement reference counting for inclusive regions
Date: Tue, 11 Nov 2025 10:16:00 +0000
Message-ID: <20251111101601.4171120-3-harry.ramsey@arm.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251111101601.4171120-1-harry.ramsey@arm.com>
References: <20251111101601.4171120-1-harry.ramsey@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement reference counting to enable inclusive MPU regions. An
inclusive region is defined as a region encapsulated inside a
previously allocated region sharing the same permissions.

References are incremented and decremented in xen_mpumap_update_entry. A
region will be destroyed if the reference count is 0 upon calling
destroy_xen_mappings and if the full region range is specified.

Additionally XEN_MPUMAP_ENTRY_SHIFT and XEN_MPUMAP_ENTRY_SHIFT_ZERO are
no longer hardcoded and defined inside asm-offsets.c.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
---
Changes in v2:
- Improve clarity with regards to MPU inclusive regions
- Fix code format issues
---
 xen/arch/arm/arm32/asm-offsets.c         |  2 +
 xen/arch/arm/arm64/asm-offsets.c         |  2 +
 xen/arch/arm/include/asm/arm32/mpu.h     |  2 +
 xen/arch/arm/include/asm/arm64/mpu.h     |  2 +
 xen/arch/arm/include/asm/mpu/regions.inc | 11 +++-
 xen/arch/arm/mpu/mm.c                    | 75 +++++++++++++++++++-----
 6 files changed, 78 insertions(+), 16 deletions(-)

diff --git a/xen/arch/arm/arm32/asm-offsets.c b/xen/arch/arm/arm32/asm-offsets.c
index c203ce269d..951f8d03f3 100644
--- a/xen/arch/arm/arm32/asm-offsets.c
+++ b/xen/arch/arm/arm32/asm-offsets.c
@@ -79,6 +79,8 @@ void __dummy__(void)
 #ifdef CONFIG_MPU
    DEFINE(XEN_MPUMAP_MASK_sizeof, sizeof(xen_mpumap_mask));
    DEFINE(XEN_MPUMAP_sizeof, sizeof(xen_mpumap));
+   DEFINE(XEN_MPUMAP_ENTRY_SHIFT, ilog2(sizeof(pr_t)));
+   DEFINE(XEN_MPUMAP_ENTRY_ZERO_OFFSET, sizeof(prbar_t) + sizeof(prlar_t));
    BLANK();
 #endif
 }
diff --git a/xen/arch/arm/arm64/asm-offsets.c b/xen/arch/arm/arm64/asm-offsets.c
index 320289b281..38a3894a3b 100644
--- a/xen/arch/arm/arm64/asm-offsets.c
+++ b/xen/arch/arm/arm64/asm-offsets.c
@@ -73,6 +73,8 @@ void __dummy__(void)
 #ifdef CONFIG_MPU
    DEFINE(XEN_MPUMAP_MASK_sizeof, sizeof(xen_mpumap_mask));
    DEFINE(XEN_MPUMAP_sizeof, sizeof(xen_mpumap));
+   DEFINE(XEN_MPUMAP_ENTRY_SHIFT, ilog2(sizeof(pr_t)));
+   DEFINE(XEN_MPUMAP_ENTRY_ZERO_OFFSET, sizeof(prbar_t) + sizeof(prlar_t));
    BLANK();
 #endif
 }
diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
index 0a6930b3a0..137022d922 100644
--- a/xen/arch/arm/include/asm/arm32/mpu.h
+++ b/xen/arch/arm/include/asm/arm32/mpu.h
@@ -39,6 +39,8 @@ typedef union {
 typedef struct {
     prbar_t prbar;
     prlar_t prlar;
+    uint8_t refcount;
+    uint8_t pad[7];     /* Pad structure to 16 Bytes */
 } pr_t;

 #endif /* __ASSEMBLY__ */
diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
index f0ce344e78..17f62ccaf6 100644
--- a/xen/arch/arm/include/asm/arm64/mpu.h
+++ b/xen/arch/arm/include/asm/arm64/mpu.h
@@ -38,6 +38,8 @@ typedef union {
 typedef struct {
     prbar_t prbar;
     prlar_t prlar;
+    uint8_t refcount;
+    uint8_t pad[15];    /* Pad structure to 32 Bytes */
 } pr_t;

 #endif /* __ASSEMBLY__ */
diff --git a/xen/arch/arm/include/asm/mpu/regions.inc b/xen/arch/arm/include/asm/mpu/regions.inc
index 23fead3b21..0cdbb17bc3 100644
--- a/xen/arch/arm/include/asm/mpu/regions.inc
+++ b/xen/arch/arm/include/asm/mpu/regions.inc
@@ -14,14 +14,12 @@
 #define PRLAR_ELx_EN            0x1

 #ifdef CONFIG_ARM_64
-#define XEN_MPUMAP_ENTRY_SHIFT  0x4     /* 16 byte structure */

 .macro store_pair reg1, reg2, dst
     stp \reg1, \reg2, [\dst]
 .endm

 #else
-#define XEN_MPUMAP_ENTRY_SHIFT  0x3     /* 8 byte structure */

 .macro store_pair reg1, reg2, dst
     strd  \reg1, \reg2, [\dst]
@@ -97,6 +95,15 @@

 3:

+    /* Clear the rest of the xen_mpumap entry. */
+#ifdef CONFIG_ARM_64
+    stp xzr, xzr, [\base, #XEN_MPUMAP_ENTRY_ZERO_OFFSET]
+#else
+    mov \prbar, #0
+    mov \prlar, #0
+    strd \prbar, \prlar, [\base, #XEN_MPUMAP_ENTRY_ZERO_OFFSET]
+#endif
+
     add   \sel, \sel, #1

 1:
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index b80edcf1ca..cd84f9e3c6 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -106,6 +106,7 @@ pr_t pr_of_addr(paddr_t base, paddr_t limit, unsigned int flags)
     region = (pr_t) {
         .prbar = prbar,
         .prlar = prlar,
+        .refcount = 0,
     };

     /* Set base address and limit address. */
@@ -170,6 +171,37 @@ int mpumap_contains_region(pr_t *table, uint8_t nr_regions, paddr_t base,
     return MPUMAP_REGION_NOTFOUND;
 }

+static bool is_mm_attr_match(pr_t *region, unsigned int attributes)
+{
+    bool ret = true;
+
+    if ( region->prbar.reg.ro != PAGE_RO_MASK(attributes) )
+    {
+        printk(XENLOG_WARNING
+               "Mismatched Access Permission attributes (%#x instead of %#x)\n",
+               region->prbar.reg.ro, PAGE_RO_MASK(attributes));
+        ret = false;
+    }
+
+    if ( region->prbar.reg.xn != PAGE_XN_MASK(attributes) )
+    {
+        printk(XENLOG_WARNING
+               "Mismatched Execute Never attributes (%#x instead of %#x)\n",
+               region->prbar.reg.xn, PAGE_XN_MASK(attributes));
+        ret = false;
+    }
+
+    if ( region->prlar.reg.ai != PAGE_AI_MASK(attributes) )
+    {
+        printk(XENLOG_WARNING
+               "Mismatched Memory Attribute Index (%#x instead of %#x)\n",
+               region->prlar.reg.ai, PAGE_AI_MASK(attributes));
+        ret = false;
+    }
+
+    return ret;
+}
+
 /* Map a frame table to cover physical addresses ps through pe */
 void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
 {
@@ -284,22 +316,26 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,

     flags_has_page_present = flags & _PAGE_PRESENT;

-    /* Currently we don't support modifying an existing entry. */
+    /*
+    * Currently, we only support removing/modifying a *WHOLE* MPU memory
+    * region. Part-region removal/modification is not supported as in the worst
+    * case it will leave two/three fragments behind.
+    */
     if ( flags_has_page_present && (rc >= MPUMAP_REGION_FOUND) )
     {
-        printk("Modifying an existing entry is not supported\n");
-        return -EINVAL;
-    }
+        if ( !is_mm_attr_match(&xen_mpumap[idx], flags) )
+        {
+            printk("Modifying an existing entry is not supported\n");
+            return -EINVAL;
+        }

-    /*
-     * Currently, we only support removing/modifying a *WHOLE* MPU memory
-     * region. Part-region removal/modification is not supported as in the worst
-     * case it will leave two/three fragments behind.
-     */
-    if ( rc == MPUMAP_REGION_INCLUSIVE )
-    {
-        printk("Part-region removal/modification is not supported\n");
-        return -EINVAL;
+        /* Check for overflow of refcount before incrementing.  */
+        if ( xen_mpumap[idx].refcount == 0xFF )
+        {
+            printk("Cannot allocate region as it would cause reference overflow\n");
+            return -ENOENT;
+        }
+        xen_mpumap[idx].refcount += 1;
     }

     /* We are inserting a mapping => Create new region. */
@@ -323,7 +359,18 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
             return -EINVAL;
         }

-        disable_mpu_region_from_index(idx);
+        if ( xen_mpumap[idx].refcount == 0 )
+        {
+            if ( MPUMAP_REGION_FOUND == rc )
+                disable_mpu_region_from_index(idx);
+            else
+            {
+                printk("Cannot remove a partial region\n");
+                return -EINVAL;
+            }
+        }
+        else
+            xen_mpumap[idx].refcount -= 1;
     }

     return 0;
--
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 11 10:24:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 10:24:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158974.1487333 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIlY1-0007JR-Ng; Tue, 11 Nov 2025 10:24:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158974.1487333; Tue, 11 Nov 2025 10:24: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 1vIlY1-0007JK-Ko; Tue, 11 Nov 2025 10:24:25 +0000
Received: by outflank-mailman (input) for mailman id 1158974;
 Tue, 11 Nov 2025 10:24: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=Xtop=5T=arm.com=ryan.roberts@srs-se1.protection.inumbo.net>)
 id 1vIlY0-0007JE-1O
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 10:24:24 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 96f4741b-bee8-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 11:24: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 EEC872F;
 Tue, 11 Nov 2025 02:24:13 -0800 (PST)
Received: from [10.57.88.30] (unknown [10.57.88.30])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 11C6E3F63F;
 Tue, 11 Nov 2025 02:24: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: 96f4741b-bee8-11f0-9d18-b5c5bf9af7f9
Message-ID: <824bf705-e9d6-4eeb-9532-9059fa56427f@arm.com>
Date: Tue, 11 Nov 2025 10:24:14 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/12] mm: enable lazy_mmu sections to nest
Content-Language: en-GB
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-8-kevin.brodsky@arm.com>
 <999feffa-5d1d-42e3-bd3a-d949f2a9de9d@arm.com>
 <cc9dc398-b9c5-4bb8-94ad-7e7f3ddd5b4f@arm.com>
From: Ryan Roberts <ryan.roberts@arm.com>
In-Reply-To: <cc9dc398-b9c5-4bb8-94ad-7e7f3ddd5b4f@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10/11/2025 10:47, Kevin Brodsky wrote:
> On 07/11/2025 14:59, Ryan Roberts wrote:
>> On 29/10/2025 10:09, Kevin Brodsky wrote:
>>> [...]
>>>
>>> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
>>> index b5fdf32c437f..e6064e00b22d 100644
>>> --- a/include/linux/pgtable.h
>>> +++ b/include/linux/pgtable.h
>>> @@ -228,27 +228,86 @@ static inline int pmd_dirty(pmd_t pmd)
>>>   * of the lazy mode. So the implementation must assume preemption may be enabled
>>>   * and cpu migration is possible; it must take steps to be robust against this.
>>>   * (In practice, for user PTE updates, the appropriate page table lock(s) are
>>> - * held, but for kernel PTE updates, no lock is held). Nesting is not permitted
>>> - * and the mode cannot be used in interrupt context.
>>> + * held, but for kernel PTE updates, no lock is held). The mode cannot be used
>>> + * in interrupt context.
>> "The mode cannot be used in interrupt context"; except it is for arm64. KFENCE
>> and/or DEBUG_PAGEALLOC will request the arch to change linear map permissions,
>> which will enter lazy mmu (now using the new generic API). This can happen in
>> softirq context.
> 
> Are you happy with the wording update in patch 12?

Yes!

> 
>>> + *
>>> + * The lazy MMU mode is enabled for a given block of code using:
>>> + *
>>> + *   lazy_mmu_mode_enable();
>>> + *   <code>
>>> + *   lazy_mmu_mode_disable();
>>> + *
>>> + * Nesting is permitted: <code> may itself use an enable()/disable() pair.
>>> + * A nested call to enable() has no functional effect; however disable() causes
>>> + * any batched architectural state to be flushed regardless of nesting. After a
>>> + * call to disable(), the caller can therefore rely on all previous page table
>>> + * modifications to have taken effect, but the lazy MMU mode may still be
>>> + * enabled.
>>> + *
>>> + * In certain cases, it may be desirable to temporarily pause the lazy MMU mode.
>>> + * This can be done using:
>>> + *
>>> + *   lazy_mmu_mode_pause();
>>> + *   <code>
>>> + *   lazy_mmu_mode_resume();
>>> + *
>>> + * This sequence must only be used if the lazy MMU mode is already enabled.
>>> + * pause() ensures that the mode is exited regardless of the nesting level;
>>> + * resume() re-enters the mode at the same nesting level. <code> must not modify
>>> + * the lazy MMU state (i.e. it must not call any of the lazy_mmu_mode_*
>>> + * helpers).
>>> + *
>>> + * in_lazy_mmu_mode() can be used to check whether the lazy MMU mode is
>>> + * currently enabled.
>>>   */
>> Nice documentation!
> 
> Thanks!
> 
>>>  #ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>>>  static inline void lazy_mmu_mode_enable(void)
>>>  {
>>> -	arch_enter_lazy_mmu_mode();
>>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>>> +
>>> +	VM_WARN_ON_ONCE(state->nesting_level == U8_MAX);
>>> +	/* enable() must not be called while paused */
>>> +	VM_WARN_ON(state->nesting_level > 0 && !state->active);
>>> +
>>> +	if (state->nesting_level++ == 0) {
>> Hmm... for the arm64 case of calling this in an interrupt, Is it safe?
>>
>> If a task is calling this function and gets interrupted here, nesting_level==1
>> but active==false. The interrupt then calls this function and increments from 1
>> to 2 but arch_enter_lazy_mmu_mode() hasn't been called.
>>
>> More dangerously (I think), when the interrupt handler calls
>> lazy_mmu_mode_disable(), it will end up calling arch_flush_lazy_mmu_mode() which
>> could be an issue because as far as the arch is concerned, it's not in lazy mode.
>>
>> The current arm64 implementation works because setting and clearing the thread
>> flags is atomic.
>>
>> Perhaps you need to disable preemption around the if block?
> 
> As you found out this is addressed in patch 12, but indeed I hadn't
> realised that this patch leaves the generic API in an unsafe situation
> w.r.t. interrupts. We at least need to have in_interrupt() checks in the
> generic layer by the time we get to this patch.

Yeah that should solve it.

> 
>>> +		state->active = true;
>>> +		arch_enter_lazy_mmu_mode();
>>> +	}
>>>  }
>>>  
>>>  static inline void lazy_mmu_mode_disable(void)
>>>  {
>>> -	arch_leave_lazy_mmu_mode();
>>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>>> +
>>> +	VM_WARN_ON_ONCE(state->nesting_level == 0);
>>> +	VM_WARN_ON(!state->active);
>>> +
>>> +	if (--state->nesting_level == 0) {
>>> +		state->active = false;
>>> +		arch_leave_lazy_mmu_mode();
>>> +	} else {
>>> +		/* Exiting a nested section */
>>> +		arch_flush_lazy_mmu_mode();
>>> +	}
>>>  }
>>>  
>>>  static inline void lazy_mmu_mode_pause(void)
>>>  {
>>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>>> +
>>> +	VM_WARN_ON(state->nesting_level == 0 || !state->active);
>> nit: do you need the first condition? I think when nesting_level==0, we expect
>> to be !active?
> 
> I suppose this should never happen indeed - I was just being extra
> defensive.
> 
> Either way David suggested allowing pause()/resume() to be called
> outside of any section so the next version will bail out on
> nesting_level == 0.

Ignoring my current opinion that we don't need pause/resume at all for now; Are
you suggesting that pause/resume will be completely independent of
enable/disable? I think that would be best. So enable/disable increment and
decrement the nesting_level counter regardless of whether we are paused.
nesting_level 0 => 1 enables if not paused. nesting_level 1 => 0 disables if not
paused. pause disables nesting_level >= 1, resume enables if nesting_level >= 1.

Perhaps we also need nested pause/resume? Then you just end up with 2 counters;
enable_count and pause_count. Sorry if this has already been discussed.

> 
>>> +
>>> +	state->active = false;
>>>  	arch_leave_lazy_mmu_mode();
>>>  }
>>>  
>>>  static inline void lazy_mmu_mode_resume(void)
>>>  {
>>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>>> +
>>> +	VM_WARN_ON(state->nesting_level == 0 || state->active);
>> Similar argument?
>>
>>> +
>>> +	state->active = true;
>>>  	arch_enter_lazy_mmu_mode();
>>>  }
>>>  #else
>>> diff --git a/include/linux/sched.h b/include/linux/sched.h
>>> index cbb7340c5866..11566d973f42 100644
>>> --- a/include/linux/sched.h
>>> +++ b/include/linux/sched.h
>>> @@ -1441,6 +1441,10 @@ struct task_struct {
>>>  
>>>  	struct page_frag		task_frag;
>>>  
>>> +#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>>> +	struct lazy_mmu_state		lazy_mmu_state;
>>> +#endif
>>> +
>>>  #ifdef CONFIG_TASK_DELAY_ACCT
>>>  	struct task_delay_info		*delays;
>>>  #endif
>>> @@ -1724,6 +1728,18 @@ static inline char task_state_to_char(struct task_struct *tsk)
>>>  	return task_index_to_char(task_state_index(tsk));
>>>  }
>>>  
>>> +#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>>> +static inline bool in_lazy_mmu_mode(void)
>>> +{
>>> +	return current->lazy_mmu_state.active;
>>> +}
>>> +#else
>>> +static inline bool in_lazy_mmu_mode(void)
>>> +{
>>> +	return false;
>> Just pointing out that this isn't really a correct implementation:
>>
>> lazy_mmu_mode_enable()
>> ASSERT(in_lazy_mmu_mode()) << triggers for arches without lazy mmu
>> lazy_mmu_mode_disable()
>>
>> Although it probably doesn't matter in practice?
> 
> I'd say that the expectation is invalid - lazy MMU mode can only be
> enabled if the architecture supports it. In fact as you pointed out
> above the API may be called in interrupt context but it will have no
> effect, so this sequence would always fail in interrupt context.

Yep, but previously there was no way to query the current state so it didn't
matter. Now you have a query API so it might matter if/when people come along
and use it in unexpected ways.

> 
> Worth nothing that in_lazy_mmu_mode() is only ever called from arch code
> where lazy MMU is implemented. I added the fallback as a matter of
> principle, but it isn't actually required.

Yes, I agree that's the intent. I'm just wondering if it's possible to enforce
that only arch code uses this. Perhaps add some docs to explain that it's only
intended for arches that implement lazy_mmu, and don't define it for arches that
don't, which would catch any generic users?

Thanks,
Ryan

> 
> - Kevin



From xen-devel-bounces@lists.xenproject.org Tue Nov 11 11:23:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 11:23:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1158987.1487344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vImSP-00064C-Pk; Tue, 11 Nov 2025 11:22:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1158987.1487344; Tue, 11 Nov 2025 11:22:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vImSP-000645-ML; Tue, 11 Nov 2025 11:22:41 +0000
Received: by outflank-mailman (input) for mailman id 1158987;
 Tue, 11 Nov 2025 11:22: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=SIBT=5T=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vImSO-00063y-NO
 for xen-devel@lists.xen.org; Tue, 11 Nov 2025 11:22:40 +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 b6fd13bd-bef0-11f0-980a-7dc792cee155;
 Tue, 11 Nov 2025 12:22:34 +0100 (CET)
Received: from PH7PR03MB7004.namprd03.prod.outlook.com (2603:10b6:510:12f::22)
 by SJ0PR03MB5904.namprd03.prod.outlook.com (2603:10b6:a03:2d3::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Tue, 11 Nov
 2025 11:22:29 +0000
Received: from PH7PR03MB7004.namprd03.prod.outlook.com
 ([fe80::58d9:f998:8591:d601]) by PH7PR03MB7004.namprd03.prod.outlook.com
 ([fe80::58d9:f998:8591:d601%6]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 11:22:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b6fd13bd-bef0-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fz663qTnCwIOL9QYHvgseKn02COMtfXICoDxoUY4Gs0nJdKLjjUF4WWI7/+uLwkKRaf0M/iusso3Y3kdB97PD2GMHvOK3sWvRZGDfs+Xs5wU9CYpSFdCsl+HBzXXHgNaDAUGeYlCbVoHoFIB/LDJeRUUXoo7nBCQJxSiKiItif9rh58LwrHKB6Sv1nDfErDu2MWVLqU5P2ldwgr1SBH9KsLTx40h/G6+eynkz1oEbl8X2hmu9R96becFl2x9DJK90LMHu4she9PMWxnNgXSQEA+dEfQbkEAsyIMq6DcFxtyMCorujw+MkkP8uXJaWraik1r9H4q4RbEjUVdRGpupfw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OD5zv+p2zVuzsQv+J5Cqi1thCYSYg8o63Q7FckABUMA=;
 b=Bb9G9qz6OKm7zQ7K8b6zZwdUCO2p6uj+BYmC2U9M71C7pvBtLB6pO6BC/OTX6Dbx+b8snryRa7wCLWfDY1jdUAGe4CeDG0/hmZUABaMK7uR3AQsydWDeX5HMrCF/AiZrvWjL/XVJ3cKUtR+HTX4/YxRnGO688kvQF7kKpx3iCfo/xm0mYDkAxHl1GSufcWFHRmqYI6+Vw0ceuKvk0fyem5vpBSuCcC/UBB6JVxfjVOanGkigxNVTrWXZpAqQENmqfJcccSweqDg+biwNb2EBLEcFdl5BZlicm0LQjUdV9dYH3MnpTePNIbQIOXwv6Z98QlFqsCYV9iCC52gsCXa7kA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=OD5zv+p2zVuzsQv+J5Cqi1thCYSYg8o63Q7FckABUMA=;
 b=Z6zyIusCeAUcY62vCdxuCyIhZ1VBed5ThAf17OtPwpmESr1nUeVhxSWiwcAYe43GOzrPI6HukZUP0TjwM2nSFS0mv7Ayl63BfyzMtEKqXFyMuWrq7+/b0vvoMvbmgHgJ3mRbmGFuCM0FG+bEGSN9du2xLEBClWSKEYS5k/ZFiB8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <7957dea8-dbc0-4c0e-8364-0b1ff2e75f25@citrix.com>
Date: Tue, 11 Nov 2025 11:22:22 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG]: Crashing Xen when nestedhvm is enabled
To: Patrick <patrick@failmail.dev>, xen-devel@lists.xen.org
References: <ab3a978a-2088-4a39-a4c1-822ae5050fe6@failmail.dev>
Content-Language: en-GB
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <ab3a978a-2088-4a39-a4c1-822ae5050fe6@failmail.dev>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0027.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ae::17) To PH7PR03MB7004.namprd03.prod.outlook.com
 (2603:10b6:510:12f::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH7PR03MB7004:EE_|SJ0PR03MB5904:EE_
X-MS-Office365-Filtering-Correlation-Id: 5b0e847a-0213-4a96-8971-08de211497b0
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?bFhsL3hvbDB4cGRoQTE1dFV0SEpTUkIwMzZhdWJtS1R6cWNKSmlDbldzK2Rp?=
 =?utf-8?B?LzJ3YjdpYUVndWhleU5sUHg5U2RzQk1PbDB3SVpJd29RRFg5R1BMYjZUbmdE?=
 =?utf-8?B?cUZ0dThlYncybEtleG1CVjNOaW95R1Bzb3J2cW5HaEpwTTBYTTZDa3pNNENP?=
 =?utf-8?B?VE00TzNISUNLS2R5aGJLNDlGTEpVUWw0cmdpMTFaS081elpZeVNhc1YyOEVt?=
 =?utf-8?B?Nk43MEJUNW5NQ214TUNxcEd6ZmRMckpqQURRRksvNGpydWRPWDF1NFZFd2ln?=
 =?utf-8?B?dXZtTXlZR3lMNFBidFZEN2dhNHV6RjJONGJqRVgvMXVxT2Fmd2NXUmpHMGpz?=
 =?utf-8?B?NS9WWjcyVzhsMWNRdmdvL204MEJIZzNoQThSZkVFcGlwZ2NidmJhWVM3eUZm?=
 =?utf-8?B?VjNDMWxhbmFsRUFYTFlXTHNqUlFXd01ydllDVHZYTDFaYUc1NEdBa0pPQU1N?=
 =?utf-8?B?Mm5SVnpiMWE0Rjc1ZERIdVU5cDVvLytUWS9HblF4alkyUlFCbDNGbUFXQU1l?=
 =?utf-8?B?cU12bFh2MDJ3azhTdzhyQU5iQkZhakRpNUJ1dkVpRTdKd0Q5aE9NbDJFSUtx?=
 =?utf-8?B?S0dSUVEyL0lBc01wYmtBTU9qU2M3bXFrTituOExyUkZDRnVSbmJzUkRlZ3pP?=
 =?utf-8?B?dDRwVmdzckF2ZzVwRjlwaG9jdnBJRVZwZURFSnFEenRDRElFNXd2MytWbHk5?=
 =?utf-8?B?WVd2MWVnOVIzcTNWS09Sb1ByZE9IVUxrajl2R3BXMXZuc2lqVFFaK01NQ3BD?=
 =?utf-8?B?dVVESWFqUDdVQm5uV1FMRHo1U1ErUXk4c2diWWxqMDdTOWVxNHVYVERoT3pJ?=
 =?utf-8?B?cUlESCtTVEZoT0k4eUVUYy9YSVNLMUNMZGx6Slpyem1pL2RrTGgwdVNUby9O?=
 =?utf-8?B?c2d5VHl0VVN3U1p3YzlPaG5vNk0vRjI2d2xsOGJmUHpveXpkaFRUTWpIY2Yz?=
 =?utf-8?B?cVdUejJNU0dTVm1zaXBzd0Uvby9mT3hBR2ZIenlOUG9veDZZVXAvY0ZxYmZq?=
 =?utf-8?B?aExqNlpSS2luV3dHRG1WRFl2ZXpoUjBlZ1NQQWpmNjlGZmc5RnF6YXJJbzI0?=
 =?utf-8?B?T3QwNk0yRDRTKzkxUE0zaGxpaW5WNHV4Nm4yMGN4S3l0UTIwak95dTFjdXo1?=
 =?utf-8?B?YldLUnRHU01RMUVIR3doTER0VTd2d0VDbUJ5VXhXeDVvS3NaSjJxbkhrL3Uz?=
 =?utf-8?B?aXBjeTdLSlFVUWw3WUtiSlBpNTVsVDhOeFZtclF5TXBBb3RqWko1UmM2czVs?=
 =?utf-8?B?MnBsSnJiWkVlbnBwV3ZGeDdraDBiZ1E1Wm1pNTJ3ck1FTmwrbFF6NjAxQktx?=
 =?utf-8?B?anJTdURSdU1BTlR3NjdKMVQ0MDhtU2xpM2NxMDVXRkROdDdVN0xTWTN0MzJP?=
 =?utf-8?B?djdSV0M3dXl4Q1hKVmZTMitQTW45UVlyQThHQjZRK1dobEVJeThjLzBWODJK?=
 =?utf-8?B?Vzd4YU9nRDlNT0FYci9sWkl5QitxY0JTNGlJbGZmMWMza3V1Z295bU9DTjBB?=
 =?utf-8?B?Q3VVdEY4MVg4ZVVZSmUrUnRNQjI2bThITnZ5QXFPVFpTMHRrd3RSbldabXJY?=
 =?utf-8?B?R0xqbld1aUhyeEh0RTFsaFR5TkhXNG92R0NZWlNaeG5YMmdRODhpR2I0TlEw?=
 =?utf-8?B?ZGROK1pWNjNFNDBqbzZKMGJHeEpqWm4rRnRNY3BjakxRdUdmVTFucjU5S0tY?=
 =?utf-8?B?Z29qeFN1eHBGRkowSU5tS3k1cWlYK0tmOGRZVnVxY2o0TUVaU0R0MWlsblpS?=
 =?utf-8?B?SEhLQm04NytxU3F4SlllNGNiNmtPZlhRUHRFVWpRN0U3WEhEWExLYkl2cUtT?=
 =?utf-8?B?YlNOUWEycHNEc2lJR1FpV241ZTZhMVZneUhRUGtEVThQU2gzTm1lRjJaTVp2?=
 =?utf-8?B?VzdIMUhEV0dlMWRTWjFqdTc0WkZTLyszY3hoMkFQM0ZRQkloMUptZlkrNmtq?=
 =?utf-8?B?SUJBenh3bjgzOGNEOGZBcFQydHBXNnpUL2JNNXBEUkVKT1BtL2UvN2RQdldK?=
 =?utf-8?B?V0cxMEEvalFBPT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR03MB7004.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?Z29vc3JGOEVVcmJWeFkxTlp2RVpxSlNVNlpHMmtwSzRuQmNqVUk1U2ZTZDRN?=
 =?utf-8?B?Qm5NVVl1VDh4empsdXQzL1hpVCtFOVZZL3Yva1dwZ2VnSnMvd1FsWnU4TGcy?=
 =?utf-8?B?dXIyVXV2aVE2Yi9KaUtiS1B0ejdCZTRMbnp6THJNMkUwU2diM0RCZjBDb0Ft?=
 =?utf-8?B?ck5xTmtob25VZURnZUV3Ky9GOStwUGFjekdaMjVJS0JCRGFmWURQaDFjOTRE?=
 =?utf-8?B?MkFsRmdzTlhKZ3RPQ3VRMHNFU0k1MmJWRmdhcGZ4WDJoQjBQaVkxdlBpNzBr?=
 =?utf-8?B?OVZpaCtzblZHRnFubnkySGtVc204K2RwYUg2OW9BUEZYQkRMMjZtVGNTMTRN?=
 =?utf-8?B?NUhXaUJLeGJFWDJRTDN1WWI5cWJqaHNUNkdHUVhhTkYwUGViT0o1b0tscWVV?=
 =?utf-8?B?Tm00MnVQYXNGdE1yNGVsQXUzSndqRXFEWFUwcWg1cUt6eFB2ajJJK1lPYmVG?=
 =?utf-8?B?Ni9aMWZqNW44L3hldlE5b1FjbkMwazVSMEJyZUFxK2toUk11TXc2dVF5MXFz?=
 =?utf-8?B?dTIyVVExSFFDWUlmc3A5U2U3dzZRMzRiL21KZndjQzRjTk9pNGMxRGczOFhZ?=
 =?utf-8?B?cEFNTDhIZjBCQmZ0MG1MdDBqYnRWL1NrNzVCVU5XZjkrQnI5ekhBNDNtc3Ji?=
 =?utf-8?B?Ti9PY2JmM0J2YnQrMlk0U0xiTWpHTDRzTjR2SmhxbWJuQWlGQVhra3RJbFZS?=
 =?utf-8?B?QjZ3aU1RdG5lRlJ6SEg1Ymtha3l6ZStYMVJGMlluTFFSdk50OXBCUkROUWVX?=
 =?utf-8?B?NkE3RUFSZzVqOHVzSzNMVHBHcUVmajBIbFZyZnlRS3BxNTZrbDVUMkVnVmtQ?=
 =?utf-8?B?ZGZFMFpkaUZ0a3dVTzg1S0RoOW5kU2ZicjI3MWx2K1hJTzFFSjBtaHRyd3Jt?=
 =?utf-8?B?RCtYbkExemN5VDZmSm5OY0YxcEVlbHlHZUtpSUZaMHNicWt5K3BPUmVGRzVQ?=
 =?utf-8?B?RncxNVpkR0FUSFljN1Foc2xaY3E0ZzA3WDF4a0EzNDgzTDk5dEYveERRZ3l4?=
 =?utf-8?B?am14S3VTME9sVis2SXZQWUZPdS9HSGlaMlQxU01mNlhZbEFIODBCK3RzZyth?=
 =?utf-8?B?MlRCZHNMMHdXb0dTSEdvQnNxN1ZpZGw5MHUvRTg4M3hkV1cwbUp1b0hNVFQw?=
 =?utf-8?B?a2hvKzB0Tjg1bWVvSG90dHNIWmF1UCthVW9mY0NFYTdXN3YxSUY1akE0aW9j?=
 =?utf-8?B?Z2p1K2ZXWVdTa1BhVmpHZnFia1h4MHdrdERoNXlndzhRRWMzK01QQ2JYc1RX?=
 =?utf-8?B?R2o4MTNSV3p5VmR2M0pvZk9WVHQ2Z1BxUDk3RGQ3a1plZTdnVUlxbUZIejNs?=
 =?utf-8?B?T2RiQUpyVFJBZWtwTjNWa2pPWUxyN1hWQVhzQjRpMjRZWUl1QjZ4VXY5Wm11?=
 =?utf-8?B?VUJuc1Nwb2VUSTRySCtpTkphcEhyajhweFAwQUozT3JxYndHN3pUY0ZYVDJN?=
 =?utf-8?B?RkRCbVNjYi9XY0liaWZ0cjdYUyttc0tVVWtSN2o2anRCQm9sTmdkd3BLbkQr?=
 =?utf-8?B?SFg5bUZrTE1BT3luZDZaYXVCQU1LVS81Q01ndTNtc010S0JNeUVKR0NVUGJ3?=
 =?utf-8?B?a2J3UzBJVUV0dnZlOFFLZWEyeFRDbW5WS1FmV1U1aGdvRkVSNGFrL1V2Y2gr?=
 =?utf-8?B?T1Axem1hNWdYeW9ieThoL2M2K1E5V3dDYzdrWmh6R2tqY2xQNXl4VUlXQURE?=
 =?utf-8?B?ZXJuMlBMeExyelNoK2x4SmhSY0R1TXMzR05yVXhjT3Yrb2l5RVd4MlhwcHla?=
 =?utf-8?B?ZVdqRHdKcjlyR1hVQ0dWRkNJWm9vQWRMSDZka2V4ZDFobCt4SlBXNHA5bFhG?=
 =?utf-8?B?ZUsxZ1ZEOHY4TlI4cDhDck1jYWhDTUZLK3QzTjdaYXJFYnFoNmVHdjNQM1Vi?=
 =?utf-8?B?MlVZOEsxSThZYlhBcFlxckVyYjBldzIxTUs2bzRsNnBGOGpMblFZVGdDRFJJ?=
 =?utf-8?B?Rmh6ZkF3bGoyQldTaDE0dWdObVpIMnEwUU51Q3VRd0dncmtNUmkzcXd5VFNw?=
 =?utf-8?B?bUdnbmg3SldVeVJCYkx6S2p0OG1QRGU2ODkvZHN2NktqalprQTRFZnd2WGlw?=
 =?utf-8?B?aEMrdVVQcStHL0lxVzBhWHZRektCaGZ5ZmdKRlJZaW90VnlDenV1VGkzbVo1?=
 =?utf-8?B?N01tUmdpSE9BbGRWRkRGVHdBSnFuU1pQaDJKaTh4YjFBc0hIZnBNSlQyR1dT?=
 =?utf-8?B?SVE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5b0e847a-0213-4a96-8971-08de211497b0
X-MS-Exchange-CrossTenant-AuthSource: PH7PR03MB7004.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2025 11:22:28.0640
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: JRP1cHRI8prFIiYe/T80/hKFN4Vub8IM/xtdHBKFI5Yq2rCA3+X12OK/f0SDTy1gOvPPqNwf8ZcZGsTzPN5dDHq0QthNF2EjXeEzwz13IRQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5904

On 25/10/2025 2:44 pm, Patrick wrote:
> Dear all,
>
> I think I have found a way for a guest to crash the hypervisor,
> when hardware nesting is enabled and we are running on Intel using VMX.
>
> This is done by executing the following steps in the non nested guest:
>
> - Enable VMX and set a vmcs active
> - Override the revision id of the active vmcs using memory access to any invalid id
> - call vmwrite to write the `MSR_BITMAP`
>
> Basically this:
> ```C
> vmxon();
> vmcs = alloc();
> *(uint32_t*)vmcs = correct_vmcs_revision_id;
> vmptrld(vmcs);
> *vmcs = invalide_vmcs_revision_id;
> vmwrite(MSR_BITMAP, NULL);
> ```
>
> The `vmptrld` will set the provided vmcs as the link pointer as seen in
> `xen/arch/x86/hvm/vmx/vvmx.c:1834`
> ```
> if ( cpu_has_vmx_vmcs_shadowing )
>     nvmx_set_vmcs_pointer(v, nvcpu->nv_vvmcx);
> ```
>
> If the guest now calls `VMWRITE` it will access that vmcs directly,
> execpt if writing/reading the `IO_BITMAP` or the `MSR_BITMAP`
>
> `xen/arch/x86/hvm/vmx/vvmx.c:107`
> ```
> /*
> * For the following 6 encodings, we need to handle them in VMM.
> * Let them vmexit as usual.
> */
> set_bit(IO_BITMAP_A, vw);
> set_bit(VMCS_HIGH(IO_BITMAP_A), vw);
> set_bit(IO_BITMAP_B, vw);
> set_bit(VMCS_HIGH(IO_BITMAP_B), vw);
> set_bit(MSR_BITMAP, vw);
> set_bit(VMCS_HIGH(MSR_BITMAP), vw);
> ```
>
> If we now execute `vmwrite(MSR_BITMAP, 0)` in the guest it will execute this stack:
> ```
> nvmx_handle_vmwrite
> set_vvmcs_safe
> set_vvmcs_real_safe
> virtual_vmcs_vmwrite_safe
> virtual_vmcs_enter
> __vmptrld
> ```
> The vmcs pointer being loaded in the last step being the one supplied by the guest
> that has been overwritten.
> Since we have overwritten the `vmcs_revision_id` the hardware will reject the vmptrld, which
> will call `BUG()`.

Hello, thanks for reporting this.

The manual very clearly says "Don't Do This", but Xen should not crash
as a result.

I think the bug is letting the shadow VMCS remain in guest memory.Â  It's
also ridiculous that we intercept writes into control state then emulate
what hardware would have done anyway.

One interesting thing about VMCSes is that VMXON/VMPTRLD may make them
non-coherent with the rest of memory.Â  This is implementation dependent,
but works in our favour.

Architecturally, the only time revision_id is sampled is during
VMPTRLD.Â  There are no equivalents to VMX Error 11 for other
instructions, and no mechanism I can see for reporting this specific
failure during VMEntry or non-root operations.

But, with nested virt in the mix, while a vCPU is is in (v)non-root
mode, we can de-schedule entirely, run another VM, and come back to this
vCPU.Â  We need to be able to guarantee that such errors can't occur, or
to be able to forward the errors properly into the guest.Â  There seems
to be no option for the latter.


>
> ---
> A secondary similar bug happens when calling `VMXOFF` while a shadow vmcs is active.
> This will not clear the shadow vmcs, and crash the guest if it ever writes to the vmcs again.
> Effectively locking the page of being modified until a new vmcs is set active.
> This should be fixed by applying this patch:
>
> diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
> index 2432af58e0..3895dd158a 100644
> --- a/xen/arch/x86/hvm/vmx/vvmx.c
> +++ b/xen/arch/x86/hvm/vmx/vvmx.c
> @@ -1589,6 +1589,8 @@ static int nvmx_handle_vmxoff(struct cpu_user_regs *regs)
>      struct vcpu *v=current;
>      struct nestedvmx *nvmx = &vcpu_2_nvmx(v);
>  
> +	if ( cpu_has_vmx_vmcs_shadowing )
> +		nvmx_clear_vmcs_pointer(v, nvcpu->nv_vvmcx);
>      nvmx_purge_vvmcs(v);
>      nvmx->vmxon_region_pa = INVALID_PADDR;
>
> As far as I have read it is not specifically stated in the Intel SDM that a VMXOFF clears the active vmcs, however it
> does also not state anything otherwise and I thinks it's saner to clear it than to crash the guest because of an
> vmcs error, when it has vmx disabled.

This is different.Â  The manual very clearly says the VMCSes may become
corrupt if they're not VMCLEAR'd before VMXOFF.

In fact, there's a long standing bug/misfeature in Intel CPUs that upon
VMXOFF, non-coherent VMCSes remain non-coherent until the next VMXON, at
which point new VMPTRLD's can cause older VMCSes to be cleared (the CPU
can only hold a certain number of VMCSes in internal registers) and
written back to main memory.

In the case of e.g. kexec, the new kernel has no ability to figure out
that this is going on.

Xen will need to clear all guest VMCSes for safety, but if we were
feeling helpful, we probably ought to poison such VMCSes with 0xc2 or so.

I've opened https://gitlab.com/xen-project/xen/-/issues/218 but it might
be a little while until we get to this.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 12:16:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 12:16:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159010.1487386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vInII-0004KJ-3C; Tue, 11 Nov 2025 12:16:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159010.1487386; Tue, 11 Nov 2025 12:16: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 1vInII-0004KC-0O; Tue, 11 Nov 2025 12:16:18 +0000
Received: by outflank-mailman (input) for mailman id 1159010;
 Tue, 11 Nov 2025 12:16: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=Xtop=5T=arm.com=ryan.roberts@srs-se1.protection.inumbo.net>)
 id 1vInIG-0004K6-9P
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 12:16:16 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 35040d1f-bef8-11f0-980a-7dc792cee155;
 Tue, 11 Nov 2025 13: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 B4FDA2F;
 Tue, 11 Nov 2025 04:16:01 -0800 (PST)
Received: from [10.1.31.216] (XHFQ2J9959.cambridge.arm.com [10.1.31.216])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 976253F63F;
 Tue, 11 Nov 2025 04:16: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: 35040d1f-bef8-11f0-980a-7dc792cee155
Message-ID: <b7581d35-29a1-44d4-bf81-395949bd4da1@arm.com>
Date: Tue, 11 Nov 2025 12:16:03 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 06/12] mm: introduce generic lazy_mmu helpers
Content-Language: en-GB
To: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: "David Hildenbrand (Red Hat)" <davidhildenbrandkernel@gmail.com>,
 Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org,
 linux-kernel@vger.kernel.org, Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-7-kevin.brodsky@arm.com>
 <71418b31-aedb-4600-9558-842515dd6c44@arm.com>
 <c764489e-0626-4a50-87b5-39e15d9db733@gmail.com>
 <645178fd-df4e-42fe-b55e-97d9506499be@arm.com>
 <413b2c49-f124-4cda-8fea-a6cc165f6326-agordeev@linux.ibm.com>
 <e428b1d5-65a8-49bc-92dc-ec4a4d933dec@arm.com>
 <92eca53f-eb5d-4bd0-ad6c-56c65fdcea86-agordeev@linux.ibm.com>
From: Ryan Roberts <ryan.roberts@arm.com>
In-Reply-To: <92eca53f-eb5d-4bd0-ad6c-56c65fdcea86-agordeev@linux.ibm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/11/2025 08:01, Alexander Gordeev wrote:
> On Mon, Nov 10, 2025 at 09:19:40AM +0000, Ryan Roberts wrote:
>> On 10/11/2025 08:11, Alexander Gordeev wrote:
>>> On Fri, Nov 07, 2025 at 03:22:54PM +0000, Ryan Roberts wrote:
>>>
>>> Hi Ryan,
>>>
>>>> On 07/11/2025 14:34, David Hildenbrand (Red Hat) wrote:
>>>>>>> Â  #ifndef pte_batch_hint
>>>>>>> diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
>>>>>>> index 5d2a876035d6..c49b029d3593 100644
>>>>>>> --- a/mm/kasan/shadow.c
>>>>>>> +++ b/mm/kasan/shadow.c
>>>>>>> @@ -305,7 +305,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep,
>>>>>>> unsigned long addr,
>>>>>>> Â Â Â Â Â  pte_t pte;
>>>>>>> Â Â Â Â Â  int index;
>>>>>>> Â  -Â Â Â  arch_leave_lazy_mmu_mode();
>>>>>>> +Â Â Â  lazy_mmu_mode_pause();
>>>>>>
>>>>>> I wonder if there really are use cases that *require* pause/resume? I think
>>>>>> these kasan cases could be correctly implemented using a new nest level instead?
>>>>>> Are there cases where the effects really need to be immediate or do the effects
>>>>>> just need to be visible when you get to where the resume is?
>>>>>>
>>>>>> If the latter, that could just be turned into a nested disable (e.g. a flush).
>>>>>> In this case, there is only 1 PTE write so no benefit, but I wonder if other
>>>>>> cases may have more PTE writes that could then still be batched. It would be
>>>>>> nice to simplify the API by removing pause/resume if we can?
>>>>>
>>>>> It has clear semantics, clearer than some nest-disable IMHO.
>>>>>
>>>>> Maybe you can elaborate how you would change ("simplify") the API in that
>>>>> regard? What would the API look like?
>>>>
>>>> By simplify, I just meant can we remove lazy_mmu_mode_pause() and
>>>> lazy_mmu_mode_resume() ?
>>>>
>>>>
>>>> We currently have:
>>>>
>>>> apply_to_page_range
>>>>   lazy_mmu_mode_enable()
>>>>     kasan_populate_vmalloc_pte()
>>>>       lazy_mmu_mode_pause()
>>>>       <code>
>>>>       lazy_mmu_mode_resume()
>>>>   lazy_mmu_mode_disable()
>>>>
>>>> Where <code> is setting ptes. But if <code> doesn't need the effects to be
>>>> visible until lazy_mmu_mode_resume(), then you could replace the block with:
>>>>
>>>> apply_to_page_range
>>>>   lazy_mmu_mode_enable()
>>>>     kasan_populate_vmalloc_pte()
>>>>       lazy_mmu_mode_enable()
>>>>       <code>
>>>>       lazy_mmu_mode_disable()
>>>>   lazy_mmu_mode_disable()
>>>>
>>>> However, looking at this more closely, I'm not really clear on why we need *any*
>>>> special attention to lazy mmu inside of kasan_populate_vmalloc_pte() and
>>>> kasan_depopulate_vmalloc_pte().
>>>>
>>>> I *think* that the original concern was that we were doing ptep_get(ptep) inside
>>>> of a lazy_mmu block? So we need to flush so that the getter returns the most
>>>> recent value? But given we have never written to that particular ptep while in
>>>> the lazy mmu block, there is surely no hazard in the first place?
>>>
>>> There is, please see:
>>> https://lore.kernel.org/linux-mm/cover.1755528662.git.agordeev@linux.ibm.com/
>>
>> I've stared at this for a while, but I'm afraid I still don't see the problem.
>> This all looks safe to me. Could you explain exactly what this issue is?
>>
>> If I've understood correctly, kasan_populate_vmalloc() is called during virtual
>> range allocation by vmalloc. This is not in a nested lazy mmu block (but it
>> wouldn't matter if it was once we have Kevin's nested changes to ensure flush
>> when exiting the nested scope). kasan_populate_vmalloc() calls
>> apply_to_page_range(), which will walk the set of ptes, calling
>> kasan_populate_vmalloc_pte() for each one. kasan_populate_vmalloc_pte() does a
>> ptep_get() then, if none, calls set_pte_at().
>>
>> That's not a hazard since you're calling get before the set and you only visit
>> each pte once for the apply_to_page_range() lazy mmu block.
> 
> I have to admit I do not remember every detail and would have to recreate
> the issue - which is specific to s390 lazy_mmu implementation I think.
> Both kasan_populate_vmalloc_pte() and kasan_depopulate_vmalloc_pte() do:
> 
> apply_to_page_range()
> {
>     arch_enter_lazy_mmu_mode();
> 
>     kasan_de|populate_vmalloc_pte()
>     {
>         arch_leave_lazy_mmu_mode();             <--- remove?
> 
>         spin_lock(&init_mm.page_table_lock);
>         <PTE update>
>         spin_unlock(&init_mm.page_table_lock);	<--- PTE store should be done
> 
>         arch_enter_lazy_mmu_mode();             <--- remove?
>     }
> 
>     arch_leave_lazy_mmu_mode();
> }
> 
> Upon return from spin_unlock() both kasan callbacks expect the PTE contains
> an updated value to be stored to pgtable. That is true unless we remove
> arch_leave|enter_lazy_mmu_mode() brackets. If we do the value is continued
> to be cached and only stored when the outer arch_leave_lazy_mmu_mode() is
> called. That results in a race between concurrent PTE updaters.

OK, I've been staring at the code and KASAN docs and believe I understand the
problem now. Thanks for your patience!

The core of the problem is that the shadow memory which is being allocated here
is 1/8th the size of the virtual range it covers, and so a single page of shadow
memory can be shared by multiple vmalloc areas. The implication here is that
multiple concurrent vmalloc() calls can allocate adjacent areas and both will
race to allocate the same shadow page. That's why we have the spin lock and the
check for pte_none(); the winner is the one that sees pte_none() == true and
will perform the mapping.

And so yes, this does indeed create a read hazzard; there are 2 racing threads,
both reading and writing the pte.

One alternative solution would be to grab the spin lock around the whole
apply_to_page_range(), but for the populate call, that would imply holding the
lock during __memset(). And for depopulate, it would imply holding it during
__free_page(). Neither of these are desirable.

So I agree pause/resume are required here. Sorry for the noise!

Thanks,
Ryan


> 
>>>> apply_to_existing_page_range() will only call kasan_depopulate_vmalloc_pte()
>>>> once per pte, right? So given we read the ptep before writing it, there should
>>>> be no hazard? If so we can remove pause/resume.
>>>
>>> Unfortunately, we rather not, please see:
>>> https://lore.kernel.org/linux-mm/d407a381-099b-4ec6-a20e-aeff4f3d750f@arm.com/
>>
>> Sorry but I don't see anything relavent to my point in this mail. Perhaps there
>> is some s390-specific detail that I'm failing to understand?
> 
> Sorry, with this message I meant the branch where it was discussed,
> I will try to C&P some excerpts and summarize it here.
> 
> * lazy_mmu_mode_enable()
> 
> This helper is parameter-free, assuming the MMU unit does not need any
> configuration other than turning it on/off. That is currently true, but
> (as I noted in my other mail) I am going to introduce a friend enable
> function that accepts parameters, creates an arch-specific state and
> uses it while the lazy mmu mode is active:
> 
> static inline void arch_enter_lazy_mmu_mode_pte(struct mm_struct *mm,
> 						unsigned long addr,
> 						unsigned long end,
> 						pte_t *ptep)
> {
> 	...
> }
> 
> * lazy_mmu_mode_resume() -> arch_enter_lazy_mmu_mode()
> 
> Conversely, this needs to be -> arch_resume_lazy_mmu_mode(). And it can not
> be arch_enter_lazy_mmu_mode(), since a lazy_mmu_mode_resume() caller does
> not know the parameters passed to the original lazy_mmu_mode_enable(...)-
> friend.
> 
>>
>> Thanks,
>> Ryan
> 
> Thanks!
> 
>>>
>>> The problem is kasan code invokes apply_to_page_range(), which enters lazy_mmu
>>> mode unconditionally. I would claim that is rather an obstacle for the kasan
>>> code, not a benefit. But it needs to be tackled.
>>>> Should apply_to_page_range() had an option not to enter the lazy_mmu mode
>>> (e.g. an extra "bool skip_lazy" parameter) - the pause/resume could have
>>> been avoided.
>>>
>>>> Thanks,
>>>> Ryan
>>>
>>> Thanks!



From xen-devel-bounces@lists.xenproject.org Tue Nov 11 12:31:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 12:31:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159022.1487396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vInXD-00072N-9a; Tue, 11 Nov 2025 12:31:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159022.1487396; Tue, 11 Nov 2025 12: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 1vInXD-00072G-53; Tue, 11 Nov 2025 12:31:43 +0000
Received: by outflank-mailman (input) for mailman id 1159022;
 Tue, 11 Nov 2025 12:31: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=C1Vt=5T=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vInXB-000725-83
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 12:31:41 +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 5aa63ee4-befa-11f0-980a-7dc792cee155;
 Tue, 11 Nov 2025 13:31:33 +0100 (CET)
Received: from SA1P222CA0010.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:22c::12)
 by BL1PR12MB5753.namprd12.prod.outlook.com (2603:10b6:208:390::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Tue, 11 Nov
 2025 12:31:26 +0000
Received: from SA2PEPF000015CC.namprd03.prod.outlook.com
 (2603:10b6:806:22c:cafe::63) by SA1P222CA0010.outlook.office365.com
 (2603:10b6:806:22c::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.16 via Frontend Transport; Tue,
 11 Nov 2025 12:31:15 +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.9320.13 via Frontend Transport; Tue, 11 Nov 2025 12:31:24 +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, 11 Nov
 2025 04:31:12 -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: 5aa63ee4-befa-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CR41mtm9eJz7qaK2QQIsmc3qpzt5ybMRH8lq+YeVxd0Pk3u4327/z/5AAl5XKbj++/PJt8WEvlSDxszoDrekEqitFu3KmmQpz+HFhCIkrDOSkfVaw7aDD6kFNqsREf8ie1mh0ufH/Qs2Ro4V+MRuyvHJ4EeSfNM9R3EDV60L7+qVMHfXGTX/7WMxiVs4n3k16HtgQaewWzRjVNC+RdDGU2iO/DcoATAQPIqPQ2vQ/II0DjNsB2OrsdPoGVQY0bkrc1QafRxmKms4cBpJSv/E/jBhsWL1gj1wDAfhohpgaNaCmeG9B+UdV7Jiconrx/v/Y5G8dPTwl3z6XvctT59nGQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1JixLRuDbhpo601JIIBwobSidqDWDYIIxUEqG5Wma9Y=;
 b=qXydFMibpHzIDbG2tvlej9lpeO19RrWcQANMdiDnHIx11hDAO5JmTHRQfOo6x9x7jSJqZfS6OAUllgjWF3YSWQHtvaYYnM9D7YjCDqO8lJV4/KMNpj+ZO/voD9J9dwP1KkHNeCQMnxVbGp11KKR6O6TA7EIziFpezQG8G37bkPkJf7y6N7iyUxv5HL3kCeFACW9qeJmZO0k9+AN1p+1TvjN+1lS7lOfFU0clverkuVU9bwBSQZDtWwbE9XmXqITn0MIQ+uUNuebnB+BSVTcNI4/ZEP6te/VLESipbvHsQff72QsgnJIre9LTaiGkwMPuG3MlOfRqDqT49/u2fbGQoQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=vates.tech smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1JixLRuDbhpo601JIIBwobSidqDWDYIIxUEqG5Wma9Y=;
 b=ZV9Qwb4K63KKNpGfBw+MqRAlcYKxdROWaowIoYOAWKhgi2dgfPnoPWulJWY/pf2yKNwD6ypx08x0Vo0p19nOFBAgLuAUreWXdPbGUxes8hSEUUE/87oBjUSpHVt8zGPRywkhbkRBjU+d3agc3KpSEDjP8r/jtRi1Cf0ZUC7C1y0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 11 Nov 2025 13:31:11 +0100
Message-ID: <DE5V8ACYEX88.9BO1WIVYJ3U1@amd.com>
CC: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
	<jgross@suse.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Xen-devel <xen-devel-bounces@lists.xenproject.org>
Subject: Re: [RFC PATCH for-4.22] x86/hvm: Introduce force_x2apic flag
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Teddy Astie <teddy.astie@vates.tech>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <d498a50f6187b362ac5da3c6a7a7c348f35dc4b3.1761761288.git.teddy.astie@vates.tech>
In-Reply-To: <d498a50f6187b362ac5da3c6a7a7c348f35dc4b3.1761761288.git.teddy.astie@vates.tech>
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_|BL1PR12MB5753:EE_
X-MS-Office365-Filtering-Correlation-Id: bad8da4d-b0d8-4b84-e265-08de211e3a79
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?ZitaR2JSU2Q2UkJWeEZnV21mRTNrU0dTYzdoU04rbktTTWFyaWliM0F5aEN0?=
 =?utf-8?B?RUlQNENkK0NZaWRuOGZIMTB0Zi9iWWVMSU9NK0lwTXVQbXVraW54cSsxQlB1?=
 =?utf-8?B?dEpQTmFHdTRwWXhuZGhrRnFSV0cyZDhDS3prRU1YYUVQM0pMWHpyTFozNjg4?=
 =?utf-8?B?S2M2ZHJpY3k2bC9pQVJsakdSS3JxaUNtamRsOXlFRHFrWGRsdkhGRXp4VmJy?=
 =?utf-8?B?aVQwQnVvZ0gvSHJZdFFnWC8zcUg1SnRuOGZ6bGZSOTFyK3hMR2lKbUE2Z1kx?=
 =?utf-8?B?UlJiVHpTOExvZ2pGaHovYWtkeGI0S3M1U0FlcndqL0RabVUrT0lTVEtHaFRy?=
 =?utf-8?B?YUFUUWlUMG5jZjlvcUVQZHlvNysrWFlMQnVNUTVuaGtCYmRMV3ZhbDFBTEdq?=
 =?utf-8?B?WGRYdERVRTRSSyttRVpEelgyV0owc0ZJSlA1STVJUUpPa0ZxQkd5SXNYdnRl?=
 =?utf-8?B?c3ZtRHk3eW5CbktLR2NYNU14Mzh4TFF6cmwybEpZWDJiM2pWRVNzMzRZd1l6?=
 =?utf-8?B?NGs4Wm1qOUhJWDlzWW9OSEhqZ1J5a2QrcVhLNTBidzllSXUvVWNlUVBmT0Jh?=
 =?utf-8?B?dVpVd2I1RTJ6TUFzK1QxZGRaZVBEVDNtSkRjeUJaL0N3VWVROG02K3c3V2NO?=
 =?utf-8?B?QkowOFZSdWt1STc3T3RBaUF4SXFYUnAvZ1hzVC8zNTdjOTdmOWxBSHlzUmUy?=
 =?utf-8?B?T1prc0JpQ25tSlFCeDR0d252UkJrVkpmekNrbEJvWGM3TEhOMDNUeHVNZS81?=
 =?utf-8?B?WEptMjJlKy9TWm9GYjk1cGU5dHBiVVRsQlZFcFpOT25rU08vOGxSWk5ISE9S?=
 =?utf-8?B?SURnOFRHTWNJNjJ4bWozaTNNL3pCRlBaY3k2cGRGL3BrWDk0bVhlNTVPT3Bv?=
 =?utf-8?B?OUdObzA2NUxlQ3BaaGFXVEFPaUJhNWdXTGNEMEowcG5CbW1VdGtvcVZsUUVt?=
 =?utf-8?B?QVdXUjdyKyszUHhqYmtCd3ArWHRSUzZkNENZSEl5aGVvNUxtRzNJb3phYk8y?=
 =?utf-8?B?WVJ3K3pGUmJSS1NGOTF5WXZybTI0aFlabDNkbm5qNUIxVjJGemR1alFOYW8y?=
 =?utf-8?B?Sk1pN3NkOCtyQ1Y1YlYvSnZXT05pL3dxclQwcUh3aHk3UEY1NVIrdTZxTW9x?=
 =?utf-8?B?YWsvMk5oNDFmNUpGdEhXeWJhT2ZTMGZ2L1BSc0dMWTEzN2NKU25FS3hmUXZz?=
 =?utf-8?B?OHM0KzJhVG9hNU0vVmRNdGhoUWlBTXhhZVdoUW1neDc2K05RWnRFTjh5NWFi?=
 =?utf-8?B?dHk0c3ROREtrdk9Fc0tvUXZ5ajFNY29MWExFeVJOWjlBRTl6eWhyTDd5eE40?=
 =?utf-8?B?RzVIenJhMnl5K2NDL3dsQlhQanVxMUFhTHBFMnRCdGtFbVQwdi9WOTUyYmZx?=
 =?utf-8?B?bUlHUlFTVFpobk12dFlURzNic3d5Q2NKeXppZjlsMG9tZHo1dkdMTW5iVFFY?=
 =?utf-8?B?UmtaOU44cmNIMngxVklnbFhnUHZMSHV6KzVtWGZiWEpWMGtMTW9MNzFrNjYx?=
 =?utf-8?B?LzY3eVFibitva0tSelp1ckM2YlBueUYvNG91ZEduN2R4VnpvTmN0M0Zlb2pT?=
 =?utf-8?B?anhqem1RYUpDaTdNcGtvNXdyNE5MZE1RbHlSTnNKNG1vdWJmczRnNXN2cENv?=
 =?utf-8?B?aUFIcjdXMmZmQ2FvQWlYMjlTYlo2K3JEM1Q4a2xtSVlqWEw3dForV1U3RWg0?=
 =?utf-8?B?aGRtdStSaGsrcUF5Tk1iRkFKNFBxa1A1QUp0QmJjeGxxNVZOeFRRM0JqSkY1?=
 =?utf-8?B?UU5PWHQzOHc4aEcrdzBtcllMUVpEWDZMK0dFc3VkeU9oYVJmWnY2Q1dLcStt?=
 =?utf-8?B?eEFuYTBHZ0NTK1puSlpjRFlyWVVmbUxXdUFiNWpKQ05YK3NWQUUrOU55eFJH?=
 =?utf-8?B?eFhxY1lLWWoySWg0Smd0VEZoNlh5N3NOVUhYK1BQMmlualZ5dVl1V0tNNzJM?=
 =?utf-8?B?VjllZGFjVE90UVRMUHhNTm10L3cxS1IrLzdGWTQxNHpGTlUrbEE4VEtHaEU0?=
 =?utf-8?B?dlYxR2N2SjZROVRSanRoWm82U3RKRjlXb3U2MGR6MnIxWkRQSnJ3bG9yYkZw?=
 =?utf-8?B?VWNvcGtWamRjTUhodm1URjFTT1BqbmpqeEdHNjhzSi9kTmxOTGpjb2pMb2Yx?=
 =?utf-8?Q?mPCI=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2025 12:31:24.6327
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bad8da4d-b0d8-4b84-e265-08de211e3a79
X-MS-Exchange-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: BL1PR12MB5753

Hi,

On Wed Oct 29, 2025 at 7:26 PM CET, Teddy Astie wrote:
> Introduce a new flag to force the x2APIC enabled and preventing a
> guest from switching back LAPIC to xAPIC mode.

I don't think you can really do this on AMD without advertising it somehow.

And there's no architectural way to do so.

>
> The semantics of this mode are based IA32_XAPIC_DISABLE_STATUS
> architectural MSR of Intel specification.

Yes, I can see this being usable and a good idea on Intel hardware.

>
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
> This feature can be useful for various reasons, starting with SEV as
> it is complicated (especially with SEV-ES) to handle MMIO, and legacy
> xAPIC is one thing that needs MMIO intercepts (and Linux uses it during
> boot unless x2APIC is initially enabled, even if it switches to
> x2apic afterward). It could also be interesting to reduce the attack
> surface of the hypervisor (by only exposing x2apic to the guest).

On AMD (again, AFAIK) you do have to implement xAPIC support to provide a t=
rue
AMD-like system. Anything else would be a Xen-specific extension.

The intended way to go around trap-and-emulate for xAPIC access is to bite =
the
bullet and implement accelerated AVIC. That has explicit provisions to enab=
le
SEV operation and would have the neat benefit of elliding certain VMEXITs (=
i.e:
EOI). It'd also simplify MSI delivery on non-oversubscribed CPUs.

I assume you already looked at it and concluded it was more work than you c=
ould
afford, but thought I'd bring it up anyway.

>
> As it can allow to have MMIO-less guest (using PVH), perhaps it can
> be enough for avoiding the problematic cases of virtualized INVLPGB
> (when we have it).
>
> In my testing, Linux, FreeBSD and PV-shim works fine with it; OVMF
> freezes for some reason, NetBSD doesn't support it (no x2apic support
> as Xen guest). HVM BIOS gets stuck at SeaBIOS as it expects booting
> with xAPIC.
>
> On Intel platforms, it would be better to expose the
> IA32_XAPIC_DISABLE_STATUS architectural MSR to advertise this to
> guest, but it's non-trivial as it needs to be properly exposed
> through IA32_ARCH_CAPABILITIES which is currently passed-through.

ARCH_CAPS is part of the CPU policy. You can have toolstack set the bit and
have Xen take the hint. Then it'd also be sent on the migrate stream.

Granted, that wouldn't help you on AMD hardware, but it'd be perfectly
spec-compliant on Intel. A different take might be to have a Xen-specific b=
it
in the hypervisor leaves, mirroring the arch_caps bit.

I think SeaBIOS, OVMF and NetBSD failing to boot gives you a hint that, whi=
le
this might be a good idea for some cases, you do need xAPIC for a general
purpose VM. IMO, at least.

>
>  docs/man/xl.cfg.5.pod.in              |  7 +++++++
>  tools/libs/light/libxl_types.idl      |  1 +
>  tools/libs/light/libxl_x86.c          |  4 ++++
>  tools/xl/xl_parse.c                   |  1 +
>  xen/arch/x86/domain.c                 |  2 +-
>  xen/arch/x86/hvm/hvm.c                |  2 ++
>  xen/arch/x86/hvm/vlapic.c             | 23 ++++++++++++++++++++++-
>  xen/arch/x86/include/asm/domain.h     |  2 ++
>  xen/arch/x86/include/asm/hvm/domain.h |  3 +++
>  xen/include/public/arch-x86/xen.h     | 12 +++++++++++-
>  10 files changed, 54 insertions(+), 3 deletions(-)
>
> diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
> index ad1553c5e9..01b41d93c0 100644
> --- a/docs/man/xl.cfg.5.pod.in
> +++ b/docs/man/xl.cfg.5.pod.in
> @@ -3198,6 +3198,13 @@ option.
> =20
>  If using this option is necessary to fix an issue, please report a bug.
> =20
> +=3Ditem B<force_x2apic=3DBOOLEAN>

nit: I'd say "x2apic_only" to show not only that it starts in x2apic mode, =
but
also that it must stay that way. But tomato-tomahto.

> +
> +Force the LAPIC in x2APIC mode and prevent the guest from disabling
> +it or switching to xAPIC mode.

The "or switching to xAPIC mode" part is redundant. The means to transition=
 to
xAPIC mode is through disabling it.

> +
> +This option is disabled by default.
> +
>  =3Dback
> =20
>  =3Dhead1 SEE ALSO
> diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_ty=
pes.idl
> index d64a573ff3..b95278007e 100644
> --- a/tools/libs/light/libxl_types.idl
> +++ b/tools/libs/light/libxl_types.idl
> @@ -738,6 +738,7 @@ libxl_domain_build_info =3D Struct("domain_build_info=
",[
>                                 ("arm_sci", libxl_arm_sci),
>                                ])),
>      ("arch_x86", Struct(None, [("msr_relaxed", libxl_defbool),
> +                               ("force_x2apic", libxl_defbool)
>                                ])),
>      # Alternate p2m is not bound to any architecture or guest type, as i=
t is
>      # supported by x86 HVM and ARM support is planned.
> diff --git a/tools/libs/light/libxl_x86.c b/tools/libs/light/libxl_x86.c
> index 60d4e8661c..2e0205d2a2 100644
> --- a/tools/libs/light/libxl_x86.c
> +++ b/tools/libs/light/libxl_x86.c
> @@ -26,6 +26,9 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
>      if (libxl_defbool_val(d_config->b_info.arch_x86.msr_relaxed))
>          config->arch.misc_flags |=3D XEN_X86_MSR_RELAXED;
> =20
> +    if (libxl_defbool_val(d_config->b_info.arch_x86.force_x2apic))
> +        config->arch.misc_flags |=3D XEN_X86_FORCE_X2APIC;
> +
>      if (libxl_defbool_val(d_config->b_info.trap_unmapped_accesses)) {
>              LOG(ERROR, "trap_unmapped_accesses is not supported on x86\n=
");
>              return ERROR_FAIL;
> @@ -818,6 +821,7 @@ int libxl__arch_domain_build_info_setdefault(libxl__g=
c *gc,
>  {
>      libxl_defbool_setdefault(&b_info->acpi, true);
>      libxl_defbool_setdefault(&b_info->arch_x86.msr_relaxed, false);
> +    libxl_defbool_setdefault(&b_info->arch_x86.force_x2apic, false);
>      libxl_defbool_setdefault(&b_info->trap_unmapped_accesses, false);
> =20
>      if (b_info->type =3D=3D LIBXL_DOMAIN_TYPE_HVM) {
> diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
> index af86d3186d..d84ab7c823 100644
> --- a/tools/xl/xl_parse.c
> +++ b/tools/xl/xl_parse.c
> @@ -3041,6 +3041,7 @@ skip_usbdev:
>                      "If it fixes an issue you are having please report t=
o "
>                      "xen-devel@lists.xenproject.org.\n");
> =20
> +    xlu_cfg_get_defbool(config, "force_x2apic", &b_info->arch_x86.force_=
x2apic, 0);
>      xlu_cfg_get_defbool(config, "vpmu", &b_info->vpmu, 0);
> =20
>      xlu_cfg_destroy(config);
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index 19fd86ce88..02f650a614 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -704,7 +704,7 @@ int arch_sanitise_domain_config(struct xen_domctl_cre=
atedomain *config)
>          return -EINVAL;
>      }
> =20
> -    if ( config->arch.misc_flags & ~XEN_X86_MSR_RELAXED )
> +    if ( config->arch.misc_flags & ~(XEN_X86_MSR_RELAXED | XEN_X86_FORCE=
_X2APIC) )

As I said, I'd reuse the bit in ARCH_CAPS in the CPU policy. That also mean=
s it
can be properly migrated and you wouldn't need an extra boolean in the doma=
in.

>      {
>          dprintk(XENLOG_INFO, "Invalid arch misc flags %#x\n",
>                  config->arch.misc_flags);
> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> index 0c60faa39d..73cbac0f22 100644
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -616,6 +616,8 @@ int hvm_domain_initialise(struct domain *d,
>      INIT_LIST_HEAD(&d->arch.hvm.mmcfg_regions);
>      INIT_LIST_HEAD(&d->arch.hvm.msix_tables);
> =20
> +    d->arch.hvm.force_x2apic =3D config->arch.misc_flags & XEN_X86_FORCE=
_X2APIC;
> +
>      rc =3D create_perdomain_mapping(d, PERDOMAIN_VIRT_START, 0, NULL, NU=
LL);
>      if ( rc )
>          goto fail;
> diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
> index 993e972cd7..ae8df70d2e 100644
> --- a/xen/arch/x86/hvm/vlapic.c
> +++ b/xen/arch/x86/hvm/vlapic.c
> @@ -1116,6 +1116,20 @@ int guest_wrmsr_apic_base(struct vcpu *v, uint64_t=
 val)
>      if ( !has_vlapic(v->domain) )
>          return X86EMUL_EXCEPTION;
> =20
> +    if ( has_force_x2apic(v->domain) )
> +    {
> +        /*
> +        * We implement the same semantics as MSR_IA32_XAPIC_DISABLE_STAT=
US:
> +        * LEGACY_XAPIC_DISABLED which rejects any attempt at clearing
> +        * IA32_APIC_BASE.EXTD, thus forcing the LAPIC in x2APIC mode.
> +        */
> +        if ( !(val & APIC_BASE_EXTD) )
> +        {
> +            gprintk(XENLOG_WARNING, "tried to disable x2APIC while force=
d on\n");

This is intended behaviour, not a warning. I'd remove the printk.

> +            return X86EMUL_EXCEPTION;
> +        }
> +    }
> +
>      /* Attempting to set reserved bits? */
>      if ( val & ~(APIC_BASE_ADDR_MASK | APIC_BASE_ENABLE | APIC_BASE_BSP =
|
>                   (cp->basic.x2apic ? APIC_BASE_EXTD : 0)) )
> @@ -1474,7 +1488,14 @@ void vlapic_reset(struct vlapic *vlapic)
>      if ( v->vcpu_id =3D=3D 0 )
>          vlapic->hw.apic_base_msr |=3D APIC_BASE_BSP;
> =20
> -    vlapic_set_reg(vlapic, APIC_ID, (v->vcpu_id * 2) << 24);
> +    if ( has_force_x2apic(v->domain) )
> +    {
> +        vlapic->hw.apic_base_msr |=3D APIC_BASE_EXTD;
> +        set_x2apic_id(vlapic);
> +    }
> +    else
> +        vlapic_set_reg(vlapic, APIC_ID, (v->vcpu_id * 2) << 24);
> +
>      vlapic_do_init(vlapic);
>  }
> =20
> diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm=
/domain.h
> index 5df8c78253..771992d156 100644
> --- a/xen/arch/x86/include/asm/domain.h
> +++ b/xen/arch/x86/include/asm/domain.h
> @@ -509,6 +509,8 @@ struct arch_domain
>  #define has_pirq(d)        (!!((d)->arch.emulation_flags & X86_EMU_USE_P=
IRQ))
>  #define has_vpci(d)        (!!((d)->arch.emulation_flags & X86_EMU_VPCI)=
)
> =20
> +#define has_force_x2apic(d) ((d)->arch.hvm.force_x2apic)

This would be a check on the CPU policy instead with my proposed change.

> +
>  #define gdt_ldt_pt_idx(v) \
>        ((v)->vcpu_id >> (PAGETABLE_ORDER - GDT_LDT_VCPU_SHIFT))
>  #define pv_gdt_ptes(v) \
> diff --git a/xen/arch/x86/include/asm/hvm/domain.h b/xen/arch/x86/include=
/asm/hvm/domain.h
> index 333501d5f2..b56fa08b73 100644
> --- a/xen/arch/x86/include/asm/hvm/domain.h
> +++ b/xen/arch/x86/include/asm/hvm/domain.h
> @@ -108,6 +108,9 @@ struct hvm_domain {
>      /* Compatibility setting for a bug in x2APIC LDR */
>      bool bug_x2apic_ldr_vcpu_id;
> =20
> +    /* LAPIC is forced in x2APIC mode */
> +    bool force_x2apic;
> +
>      /* hypervisor intercepted msix table */
>      struct list_head       msixtbl_list;
> =20
> diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-=
x86/xen.h
> index b99a691706..75aa31d9ed 100644
> --- a/xen/include/public/arch-x86/xen.h
> +++ b/xen/include/public/arch-x86/xen.h
> @@ -309,11 +309,21 @@ struct xen_arch_domainconfig {
>   * doesn't allow the guest to read or write to the underlying MSR.
>   */
>  #define XEN_X86_MSR_RELAXED (1u << 0)
> +
> +/*
> + * This option forces the LAPIC to be in X2APIC mode (IA32_APIC_BASE.EXT=
D =3D 1)
> + * using the same semantics as IA32_XAPIC_DISABLE_STATUS:LEGACY_XAPIC_DI=
SABLED
> + *
> + * Attempts by the guest to clear IA32_APIC_BASE.EXTD (e.g disable X2API=
C) will
> + * inject #GP in the guest.
> + */
> +#define XEN_X86_FORCE_X2APIC (1U << 1)
> +
>      uint32_t misc_flags;
>  };
> =20
>  /* Max  XEN_X86_* constant. Used for ABI checking. */
> -#define XEN_X86_MISC_FLAGS_MAX XEN_X86_MSR_RELAXED
> +#define XEN_X86_MISC_FLAGS_MAX XEN_X86_FORCE_X2APIC
> =20
>  #endif
> =20



From xen-devel-bounces@lists.xenproject.org Tue Nov 11 12:36:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 12:36:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159037.1487406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vInbi-0007f9-U4; Tue, 11 Nov 2025 12:36:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159037.1487406; Tue, 11 Nov 2025 12:36: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 1vInbi-0007f2-RN; Tue, 11 Nov 2025 12:36:22 +0000
Received: by outflank-mailman (input) for mailman id 1159037;
 Tue, 11 Nov 2025 12:36: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=C1Vt=5T=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vInbi-0007ew-D4
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 12:36:22 +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 06390190-befb-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 13:36:21 +0100 (CET)
Received: from BN9PR03CA0144.namprd03.prod.outlook.com (2603:10b6:408:fe::29)
 by DM6PR12MB4203.namprd12.prod.outlook.com (2603:10b6:5:21f::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Tue, 11 Nov
 2025 12:36:16 +0000
Received: from BN3PEPF0000B071.namprd04.prod.outlook.com
 (2603:10b6:408:fe:cafe::18) by BN9PR03CA0144.outlook.office365.com
 (2603:10b6:408:fe::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.15 via Frontend Transport; Tue,
 11 Nov 2025 12:36:14 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN3PEPF0000B071.mail.protection.outlook.com (10.167.243.116) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Tue, 11 Nov 2025 12:36:16 +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, 11 Nov
 2025 04:36:13 -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: 06390190-befb-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=svA9MudBrAETWZFIoYZy7r8X32fSETE/CkxaKkZILBqHiawJW8KNrFFx3y8TWkdtGbHHenmhONt3NiRcaDitsDxV/SVZJs1HaY2CRLxJofdT04JyO/ytnze7alwBtCrE0gcPBtWgvggF0fMwel6nQy7XfvwIZOqz5lW+35bhHslvMtwq7QF1LfmPVw3ydAui67C7k6qI4ubbfHK21rkZIV9AArrcmAyxMzCccQpWsqU2YwlyC67GaL6Vd4f5jk5RQPGpDnS0RACYF/giQdO2aKGcTD8qtRVIe3YTN98a6qZKIQ5TN+S2cRfsOtNGyJ4KJE0BOStFW2hRaw+YJmaFHw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/th7md/mSVFlOCeAT4rakNbxkj07LGvOhqct4OOUx9s=;
 b=cCTjl8HcokEkeaVLVesp7nJ071XbrJRxJGXHlH7zWQE39cWDn99XPnglMd6itHaVsM7wCvPAFHWlaQqkooymqqTbqyWviucgiofEy0hw1C/e7ln7WKKHnFmTdpbNuaImnaSIL5TIZtRtEukvbiYha+JeY7vYRhNzpNC+bYUp5bETYPbuGBYGmU5oD1vljj/DYnSu/8rjHGsSCGsOXJJTdpojnO5YN4tJGc/TNe6MjDf68JAEIzDM4fQEI2pUZsI7+cEpm+CDxntbA6SnNGOuY/2Z0DUwoRkbJfR//2IFaaQdM99zOabXD+2LYanDsOEY4+aoSUh4Lu/nkHSQ9d7tmg==
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=/th7md/mSVFlOCeAT4rakNbxkj07LGvOhqct4OOUx9s=;
 b=T51hp98Uvh5oINB5C0CJg83ErVVbOPkc6oDfn0IB0Ljqk0/iaJaPq/cJBP+VNqPfdlZAAUvIkRIX4KTv3V19X3GJMYHo6aGLttRWqT43+Sc6M3BlQO1m+zdmz8Uv1g9Z3O8W07rsgLpsahPN6zm5sLjHAEJ8eyJeQ44R9o8LZvg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 11 Nov 2025 13:36:07 +0100
Message-ID: <DE5VC2FANSAP.1K7VQ62XM33JQ@amd.com>
CC: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
	<jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, "Alejandro.GarciaVallejo@amd.com"
	<Alejandro.GarciaVallejo@amd.com>, Jason Andryuk <Jason.Andryuk@amd.com>,
	Teddy Astie <teddy.astie@vates.tech>, <xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH for-4.22] x86/hvm: Introduce force_x2apic flag
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
X-Mailer: aerc 0.20.1
References: <d498a50f6187b362ac5da3c6a7a7c348f35dc4b3.1761761288.git.teddy.astie@vates.tech> <ee234574-384f-438a-8bf2-e250b61bc75b@epam.com> <1d1170cb-debc-4063-b98c-263c7b9e62d8@suse.com>
In-Reply-To: <1d1170cb-debc-4063-b98c-263c7b9e62d8@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: BN3PEPF0000B071:EE_|DM6PR12MB4203:EE_
X-MS-Office365-Filtering-Correlation-Id: 4ca7e65d-8e2d-48c3-bf57-08de211ee87d
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:
	=?utf-8?B?ajVnck1oQVd0c0hjOXpCMkJPUTBUSDBLOS8yNm1xd0RieEFVb2dkSytpUXZo?=
 =?utf-8?B?T1Bpa3JUSTBoY0FIaHI0cFJrbzYyeTdiQlA5MUhBQ0lyQko3aVB0akZLOVhv?=
 =?utf-8?B?eEk2V2lZRDFtTHpGSnE1OGlVL0pqZ0NWMzJIMXhmRDBIdmdPMXlLT29HNU10?=
 =?utf-8?B?SllsUWFKU2V2S2RyWE5FOXViTzA4d2RGbmRCZENBckdzUFBhZXV3WmwyOEYw?=
 =?utf-8?B?SEQ0YTNpS01qTTFtL01WZFZ2RmgvQ1llQk9UOXRiSk04eWxMZURKRlR3eVB6?=
 =?utf-8?B?eFRob2IxT0UwalovTEYxUjE5eFdINmF0MHBhMVhsWmNVTEtMQjdJNTNaS051?=
 =?utf-8?B?eCtXazdZa255b3A1TjZCckV0dnpUellrWTg0dzFPT2RZYkxtalZCTzhCRk5Y?=
 =?utf-8?B?ZitvcHRyWmdUN2ZGYzFUV205VGx5SVFCZXdWQlRpRmpqczhrSjEvNm9QY1k1?=
 =?utf-8?B?SGhKYm9NR2VKM0xMODNabnJ5b012MTFkdEQ4RytaZGljTExlbVJ1RlpMNmhV?=
 =?utf-8?B?dVQ5NEtsZDcxZ0ZsQ1A5Ui9scTB3djBxcjNQclEwU1dmSlFSczNFaHd3RnR0?=
 =?utf-8?B?R29RTi9MOStLOTlRYTRXU0ZpVFRvRC9BaDRGZ0ZuZWYwY1N4T1lnWUlsUUU1?=
 =?utf-8?B?QjF4SytxM2dZeUJ4dFViV09MMzg4NExHR2FUWnhiY3JueEMvY3d4bEtaZFN6?=
 =?utf-8?B?YnJucVBSREdHQWw1R1FHdDEwVWhvd0RsdUtESE9ZQ3h1MTJDT1JnQkwxSEZU?=
 =?utf-8?B?WFBGRlB6RFM4Z2pGZDJPYTYycU5xMWw0Wmo5MmVMWlZDS3NoVyt0SEFYZlEz?=
 =?utf-8?B?SHpZRG5CU0pLRlNrMC9aOE1NZ3FJMlE5TXBTQURrTWdNZzhDcklaRDNsNUE1?=
 =?utf-8?B?WVFsdFdwZzJXSmtOVTZLeFlmYzhpRzhnSkV1ZnJOWTVESFEyd3U4ZXVZWTMw?=
 =?utf-8?B?dXhBVThtakRUK2VZUE11WmsrTEJWR3ptU0J6RmYvbHZreEhSb0lNYjFuZ3ll?=
 =?utf-8?B?R3dVNWJwMmFEWWhCOHhSMFRlS2oxYkNLa0JJVFo4MXhnbC83WS9YRUQ1ME85?=
 =?utf-8?B?c1NMRVpWVllXVHU0UFpoRHRyUExMMnBxeWxHa3M5RytoaG9NV251QTc2Zyt6?=
 =?utf-8?B?cG96SDB6MzdjcXJzQ0taUmFYYTFoaWJ0aVZFUTRRVXlZekxDajlvSzJtTXhP?=
 =?utf-8?B?Ni90a05qM1lVVDgrMHFEOTNycHIwT0tzSWU5TWZpd2FCVHc4c0txeG53YjUw?=
 =?utf-8?B?TE5uRnhUV0czc0tzTHJPbGdSN1NaVDFFWVNnMyt3bzlySExmdW0yazVmQkdX?=
 =?utf-8?B?NVdJNWRQVTdBSWx4bFpRSlJtWUdjOG5VSHdCa3N2TyswbER0aFVJNHpCT2Fw?=
 =?utf-8?B?SXAwQmIyMUF0Sk9iVWZSWjVBY0xiNmlRZVZnMWNKc25BbFNtSjJ1K2RuMmY5?=
 =?utf-8?B?OFh2MFN0YUJycTJrbUFjUTFDRHV2QVNxQlptTERUbE94RzV4cDV2R3pvUTkr?=
 =?utf-8?B?dGVKK0ZBTzdxMWZHeDE2QUNxTHNqLzFCS0lzTHBIMHVRRWdQTExwNlF3WDho?=
 =?utf-8?B?N1JTTXBOcmVhYjFRT0ttTmc0NzZIU09VOGgwYWozNmx0aDhlVEV6ZklMelhH?=
 =?utf-8?B?Nkw0cEJnU09WK3A1WjJDa0hMZ09uSHJXUkVURlFpc0l0U0F6ZDhCRUd0TXAr?=
 =?utf-8?B?MU1zOGNOT3RjVExEeEFabjYxTUZMZDZoK1FQR1BiL2s0Q2JRSzdvUFVEMWRm?=
 =?utf-8?B?QmN1Uy9EWi9US3gvOHdIN2M5UlI1ZTR0Ui9aWENkUThyZlJyRzZUa2tkS09K?=
 =?utf-8?B?ZVhEcnZKd3JZUXNuUUtESVNPMU1MOWZKakNRUUNTb3JBUTEyTWJ3K3UrTDZq?=
 =?utf-8?B?MklRWVZIcU9aZ3ozTUVYNmx5QVF1amhtUTZ2REpiM2VZU2tzeEw1UFk2RjAv?=
 =?utf-8?B?bDdkTE5iOHlYUG5YMEtMNW1HUlA2c1N6WWY3L25tTThvdC8weVVZcUtaYnVh?=
 =?utf-8?B?UHRsdWg1Z0tiK0E5U2IrTG5Xd1U1Y1k3MEkrQnJySHpaWmdSbk5XdnVUU2JX?=
 =?utf-8?B?dVlNck9jdU95MHdkTnJ3dndjZmgwTUhOZzhLS3hBb3NvSUJxTTdtcUtjVlZ1?=
 =?utf-8?Q?H5Jo=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2025 12:36:16.6058
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4ca7e65d-8e2d-48c3-bf57-08de211ee87d
X-MS-Exchange-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:
	BN3PEPF0000B071.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4203

On Thu Oct 30, 2025 at 8:46 AM CET, Jan Beulich wrote:
> On 30.10.2025 00:08, Grygorii Strashko wrote:
>> On 29.10.25 20:26, Teddy Astie wrote:
>>> --- a/xen/arch/x86/include/asm/domain.h
>>> +++ b/xen/arch/x86/include/asm/domain.h
>>> @@ -509,6 +509,8 @@ struct arch_domain
>>>   #define has_pirq(d)        (!!((d)->arch.emulation_flags & X86_EMU_US=
E_PIRQ))
>>>   #define has_vpci(d)        (!!((d)->arch.emulation_flags & X86_EMU_VP=
CI))
>>>  =20
>>> +#define has_force_x2apic(d) ((d)->arch.hvm.force_x2apic)
>>=20
>> Would it be possible for you to consider having Kconfig option to make
>> such configuration global, static?
>
> Especially considering the post-commit-message remarks I don't think this=
 can be
> other than a per-guest setting.
>
> Jan

It'd certainly be of use to us to compile out the entirety of xAPIC emulati=
on
in favour of x2APIC.

Granted, it imposes restrictions on what guests are able to run and how, bu=
t
that might be acceptable in the interest of a leaner hypervisor.

It is fairly annoying there's no architectural means to signal it.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 13:33:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 13:33:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159049.1487415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIoUT-0006T0-Se; Tue, 11 Nov 2025 13:32:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159049.1487415; Tue, 11 Nov 2025 13: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 1vIoUT-0006St-Pp; Tue, 11 Nov 2025 13:32:57 +0000
Received: by outflank-mailman (input) for mailman id 1159049;
 Tue, 11 Nov 2025 13: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=SIBT=5T=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vIoUS-0006Sn-0m
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 13:32:56 +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 ec3e95c8-bf02-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 14:32:54 +0100 (CET)
Received: from DM4PR03MB7015.namprd03.prod.outlook.com (2603:10b6:8:42::8) by
 DS0PR03MB7289.namprd03.prod.outlook.com (2603:10b6:8:120::13) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9298.16; Tue, 11 Nov 2025 13:32:49 +0000
Received: from DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9]) by DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9%3]) with mapi id 15.20.9320.013; Tue, 11 Nov 2025
 13:32: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: ec3e95c8-bf02-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=R5W2WG0AK0aeTVDE4KblhECzlS9pO4AZ+gAWvXlZjJVKRETk1aSlyTRxLnKBrJhqcpSn7LE5+kU7wCTMsurpO16cTpMhni8W4vZUWmBBlQFoylWIK5n9Jq8TUGiRuRS9Elxl95irChV4qdSQ0p45ldmH4EVaKJTqzzhC8lVSeNIG5AfaDGJzfMvUPUdVCxskEpGNy2XWTMWSc9+uLAyi35RgByo+OFM6FFr7DfmwsgDDlNwgsvyNuxcUv0y+YjMFytAKJv0aoVt2svr6atFNiKKipb1rss7GROe+cY7Hsq89h/BHJGhqIkcBvgBuA1focfPrGd1D+tXSwfTJs0mzBQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=z39PZnE/UWKc4M/MPsBUoIxASly3Ow5JD9+rvf7AIdE=;
 b=rjvfZp6GMRvlUNlqPNNbidCIgf6RWZI1YZ12XOYR8sYY5DTrO3Ds5Dg3Db7Z3arS+ZLX1vLmBAxG8pr88RC87pc0a5Ru/d+ejXBScu/dLtJ6pgsRdxFAzv/9ymnE9qHAa1MhZpt856z/KbrW3kDIKjY7UHC9ctwGtQiNkfjFSmbINCMAPK351E4yaNfC9MF9vWfe4oCkT6ub4xwpMGQRqMLjIQsTGKhWO6r448MdljNrIcS4MmCzIJOiM1W3K0K0s9ZL+D4YWq/DG1tqSKB42YFBljyzMtnOl7SbYn2jD8arZnyWHESzpBcRrHB5W1rIvxgTSzKErlsPq1ocnNI5ew==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=z39PZnE/UWKc4M/MPsBUoIxASly3Ow5JD9+rvf7AIdE=;
 b=nm4Pw6HlB20AHPJRqVvB5g32nIpnrVzFj8x8dSN3MxzatI3P5ziC+3UJ60YMG6hwYwpNqn51LP5d1kNKjQ20FHln7r+++B3uLKQOM+1ovbgF5Nsfm5TxPT5TEUbGnJzyEt3Vi7zJP/wpjUcW6FoFutnSUO7pvokETCKp3VVVKyo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <c77ffda6-9472-4183-b765-74a029421c42@citrix.com>
Date: Tue, 11 Nov 2025 13:32:45 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH for-4.22] x86/hvm: Introduce force_x2apic flag
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <d498a50f6187b362ac5da3c6a7a7c348f35dc4b3.1761761288.git.teddy.astie@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <d498a50f6187b362ac5da3c6a7a7c348f35dc4b3.1761761288.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0663.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:316::10) To DM4PR03MB7015.namprd03.prod.outlook.com
 (2603:10b6:8:42::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR03MB7015:EE_|DS0PR03MB7289:EE_
X-MS-Office365-Filtering-Correlation-Id: fe5a5ba6-4e71-4689-94f7-08de2126ce85
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?NVg2RlNVdGVUODNOQ3NrbkRwUk9LSlpSMExVdERJL1pwMHd4cmZnc0RVa200?=
 =?utf-8?B?THQ4cjRXeHFRb1ZDWWpWeUc0cU95SkVNTS9sWjZYRkZyNkVRUkMraTdiT0Nr?=
 =?utf-8?B?ZU5HM3NhR0N4bVc4dDlsc0RSNXpEMXplTUJuZys2MjA4c2ZGZ0RxTWU2bTRQ?=
 =?utf-8?B?cnhQMFY4amVCNG4wN3RnNjNUWjN0RkJ1RU5Xb09wTjlFVVRRMWVTQlErL0JC?=
 =?utf-8?B?NEJENlYzSHVrbzF0TExIcGcvYlhwS3g2alR3WGNTZ005ZzJsYmlDQjZrVDBU?=
 =?utf-8?B?b2VYT0Q2SDl2cHdQT0hIeFhkcU5TUGJCUDAwbjZjM2pTQnZpZUtybnIxeHp6?=
 =?utf-8?B?a0RKekRLZHpidHgvZVhlNCtoZllWa04xak5aSGtaMTlmOFc0d25vODVKL05W?=
 =?utf-8?B?Q3d1OFg2b09SSGF1cVJ4cDVXZEZrZmJneFVvQmQrTUlQQ0U5Q2VIelc5MGgy?=
 =?utf-8?B?VFBIVXRZV0NOKzM3KzdFbWRuNnRQL1Z5Z2tGTjFsd2EwSU01QTVwRTZ3Q1Zl?=
 =?utf-8?B?TFZTYVRaTTRETDRrSXpnODA5WkV3dVg4ajNZSm5vd0RPS1FOZVRPN0ZqaWxq?=
 =?utf-8?B?MmZxc05kY0F6SHIrbW5CL3VIdVBOL1dTR1hqeUhxUUtka3hEZ2o4SzlramxG?=
 =?utf-8?B?ckZ1dUhEYXRjYUhCWElVUHJkNDErcU43YkRyanJNYWlsM1hFRVNUYXpGVm8x?=
 =?utf-8?B?bDl2ak01SkgwK3ZBU3lzY2ZCMkVtQjZCVm84WE9aS09ycFhiNmVLa2d3Wksr?=
 =?utf-8?B?eHZ2NnNhbFVSUktXcC9QRDVjZEhSZkdCc3pWSXh6UEExcDFoQ0tjUWxNcFdv?=
 =?utf-8?B?RFFXRTVnZWVKSXNZWjI1Q0JWTWh1UlovVER0N2lUdUttUS9DRG9tQmF1eksr?=
 =?utf-8?B?blJlcjRXMGlZM0lCNi9NVEttVjZTT3dvci9ubHgrSExXcXdsRnVLcURuNlZ5?=
 =?utf-8?B?RGZGY2NSa3BuTkg2eGhLbEg1cHJBeDluaWptY1FWUHp3VlJjK2U5ZDk2dkpz?=
 =?utf-8?B?Y2pnM2s1ZmNGT0ZwTFdWd2RxVVQ1a3p4OFFEUUJqQTZWREJZMC80WS9BRW9Z?=
 =?utf-8?B?Unc5eWRCVHV1am1uTjc1MGI1bnhvTjN1aXJRUHd5UllITmVJekd2Y0xLZWE3?=
 =?utf-8?B?NVY5ZksyQzdNQlQvOWNmUjY2R3FGb0hZT0RSd0tMQWsxb3NTTmJPb2ZBUUM5?=
 =?utf-8?B?d0I2cTArcmozS1hZMzA3UENKZ2RIczhBb2h4MU54MDM2aUU0M2t4SkxvUi9V?=
 =?utf-8?B?UW83eWZkcGd6V0lPUzl6ckxtbTRYa1A1OGI5a0FscVpDVHBIVTlUMzNxOWZj?=
 =?utf-8?B?S1hBMjFaYWY1a24wdEZMRkhQeWhvcUYvNmpmNmYyQkpuelR5WkdyKzErVEZz?=
 =?utf-8?B?WWNHeFB3Y3Q5Y2hQR055a1QxUlR1SW95TWVyenlwY2JqZGpYcGxzd2tOUXdz?=
 =?utf-8?B?TDREWTQ0Q2NZMjVMMXdwbG83R3lrY2FSMFVYc0VWOUVpQTdNMDBLYlgwVk1Z?=
 =?utf-8?B?N2YwYmdGWnVnaHBpd3RING9CM3lNRXE1K2FKd3ZFUjh6TkdMbm16RHU0eEFB?=
 =?utf-8?B?bTY1TjdLcHdpc3lRd1hxUW1ySU92QXloRWNnTTJWQTRETFh0NE40TG53T2g0?=
 =?utf-8?B?MXVPOVdDSFJvbzVETnNVVGtYMVAzeWVTdWhFNWZlN1M2NUxsTktjblFkWStD?=
 =?utf-8?B?VEdjMEZxK0R2RWc2c0JMQUp4Zjk3TE8rdDh2N1NhaCtvUmh5a25PL0tLREhT?=
 =?utf-8?B?UkZQbk1hRFM1MEw1ZTFaNXlFU0RxcTAyZ1c5QldVYWZRbXdFNGMwMzRZcmdB?=
 =?utf-8?B?c1ZGVmR1ak5YLzRoeWo1a1c1R1N3cHZFNWxNeDZKNFNiZVQya2FKam9sZ1BG?=
 =?utf-8?B?RWtuS05HNGI3QzhCazB4NG1ZY1BHZEZ0aiswemROUFBMSm1FbkFxYTcxUEE1?=
 =?utf-8?Q?fwax3rNc6mOB2zRQ2lBeSrTUgDAt+c5g?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR03MB7015.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?S2w5cVhzc3lyZmplczVIN25RRU9aZ01Gd3hKbnVGTzVsZ0dFbkM0ZTd0OU4y?=
 =?utf-8?B?b01kbXlCcFlzNHFpbFBQQjJFRURaVFFoVkhUM0ZqME9wbGlZRklPeHp4KytP?=
 =?utf-8?B?MitmSkEvWmR0VDJzM0dmM2JESnhZdmNobmNBUHcxdVlRVzkrOFdYeXB1dTZl?=
 =?utf-8?B?MnhxZ3NsTXY1RW5ud2ZWcnRwdk8xUjY4YzRnK29Ib2VvSGZBQVhXZmVKWEJM?=
 =?utf-8?B?V1JVT0p0eUpWam56VTQ0TXdiNUhFOXlweGJJbVB2VUtJQ0NHaUlMek9wVzNo?=
 =?utf-8?B?RlBBU0RRbndWR0tjQ0JscFZhQlBZOVlKUzdKb0VRTE9PSnFKeWpKUy9WOHpu?=
 =?utf-8?B?cS9RVWF4TmU3R2VNVVVubkpDMkhOOTVSQjdJOWxGVW9aOUZVU2VzSUd5dVNv?=
 =?utf-8?B?bmRYdnhpcGtJOGtYeVZDZUZ3aEV0UjNjbTRoQlcxZmRJWVdFQk5pcTF4V3ov?=
 =?utf-8?B?bWNuSHBZRmpncUc0c2NPQ0FTTHRFQ1FVSlJaWWFaQW1BcndTQTU4VnFwK2RT?=
 =?utf-8?B?eDBISkNKd1dKSTVUZkxPQzlKTjJyK3NRN1RieThkSElQZ1hRY3gvSURlc0s4?=
 =?utf-8?B?cWh1QUcrS0c4QkdENkhDNUJ3amJZUk1jOGEzaEQ5TXQxcDhzOEdIQVR3TEU0?=
 =?utf-8?B?WnB0UTFKSWhOdEQ0OHVkR2gvZ29YUXFZbGRXbnVpMEY5c0lYbk5LV3c0aXdi?=
 =?utf-8?B?cHFTNVQrTnRDL1lnQ1MzTUw1ZGNzeFBvSVo4elJmbmpuTjdjR2NoZ3B6N2Rv?=
 =?utf-8?B?eXlUL3pRSXphSzh1OFd3Q3lraUdETjh2Smp4NUNjTUpwUUVPUlRuamRYNHFa?=
 =?utf-8?B?NmVaNXIyNkxoY09pc2tJZ3k1RTN6RTFJQzZ5K21xK1lSUXBVWVZ1VzVZbWlB?=
 =?utf-8?B?V2ZoWklEa3Y1NU1jNWp1R2tFL2Y5andOQnFiaDNnRlJyNkV3V1h0eXpNSUtt?=
 =?utf-8?B?SkFiZFp5UGMxK3hJWUxWSzFjUXVZU3VxR3FtMmVHNU1iVzZRTE1oVkY5dHUv?=
 =?utf-8?B?MkhHcklGQjdsU2lRZ21LV2RPa2crQzJsbG5BTlk4bjNqRHBiSElBQnNpOEpv?=
 =?utf-8?B?TnJnS0dlbTcyR29YSlVySFJNbmhGR2ZiTk9VS1VXbFc0bEgxaDRWVVNkb21a?=
 =?utf-8?B?UTZ0cklvczlSQUhRcTgvbmF1TFFnNTBCNVEvL0FhOWpJUVdja1R2eTFEeFpz?=
 =?utf-8?B?eExGbkhaMk1UU1JsSU5XSW5MNmNNQzJicG5xWVZIRlV1M0ZJWVZ0UTgzcUhk?=
 =?utf-8?B?UW5qdGczZitoeHpkOWtZcGd2YjJldjQ3cE96TmRJQU85ekgzTmNmbFZUMFlo?=
 =?utf-8?B?Q2pnU3BmcXhMUFRJK2E1RS9jM1U5UW9CT2MwRVpIT1g4RzUzYVM5VmJOZDRj?=
 =?utf-8?B?OUwySTZ2c2kyVGQrL29LRGpRMzJGRDlKUVFPeG1BY3pqcnU3MEdBaVZiaE1D?=
 =?utf-8?B?eTNqVElONm9JcGJlR2lkNG9GNUo2RDJyMmZ0VVRYNmVocUt5L21WZnM0RHhX?=
 =?utf-8?B?ZCtVQTczNmdmWm9HSWc0aERLejZUZnN4YnlSMU5tQkFlYS9tU2JPWEhMOStO?=
 =?utf-8?B?cXNtK21nczgrVDZHYkhqVFFtQlc2WWxwbjBMTFg4c0gveDNPeU9KRkZBaHZz?=
 =?utf-8?B?U05RM3R4cWJmWVNXVHUzMnRJZVZxSytGZ1RZTnFjSlBQV0JvdGRjWjZSR25P?=
 =?utf-8?B?bTJHVnlveHcxMndtTFdKcWRQcTI3Z3RENi95ZnNXaTBKY3d0UUdmc0JrR1Mz?=
 =?utf-8?B?WnIzY04yR3RoZm5FLzJVSkljRlVtMHN4OWpHNUp3RzU2Slc3VThrK2pFNkNK?=
 =?utf-8?B?cHdoSkZTQmpmNkFvVm8vS1Q5ZmNKZTB4cVd0NU5tNiswa2YvWXVLQ0xBWEV6?=
 =?utf-8?B?NHJZb1lnN2Nvb1phZ0lZS1NHRWVyWnFuNU5PT202NkxhVUFRM3lybW9zS3l1?=
 =?utf-8?B?WllRVkJINEw5dEM4TmRWUmFrempVRm1sM2NMQmUyWCtXa3d3QUtiblRyVHR1?=
 =?utf-8?B?d1NrT1BHRWN3azJ2M0szTEx2TFVicERndmNsd01nSDlDaldKQWxRODJBTUho?=
 =?utf-8?B?YmQ1UWlLQVU2Z2Z1d2U3WllhdVk5OUsvYXBUYWt6QUZ1aS9jekZ1M0ozN045?=
 =?utf-8?B?dTI3Wmw0Rk5uWHRCaTE2OE5xRzUyc1EvS3BWRDJPV1dKU29oLzJXN1UvMFp0?=
 =?utf-8?B?VFE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fe5a5ba6-4e71-4689-94f7-08de2126ce85
X-MS-Exchange-CrossTenant-AuthSource: DM4PR03MB7015.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2025 13:32:49.2991
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: INlpwP/CUIi8vq2GaFanIOXa0vk7evUv6KZW4m50EfV4htOlfQQq2AB7bchyYQSKpaW9utRnJ+Lr5SBkg72WMReWVc33sPIpdNdymTt+IeU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB7289

On 29/10/2025 6:26 pm, Teddy Astie wrote:
> Introduce a new flag to force the x2APIC enabled and preventing a
> guest from switching back LAPIC to xAPIC mode.
>
> The semantics of this mode are based IA32_XAPIC_DISABLE_STATUS
> architectural MSR of Intel specification.
>
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>

You can do what you want by simply starting the VM in x2APIC mode.

OSes don't tend to switch out of x2APIC mode, especially if it was set
by firmware.

IA32_XAPIC_DISABLE_STATUS is garbage.Â  It was an emergency "fix" the
fact that the entire L2 cache datastream was architecturally visible in
the xAPIC MMIO window, included decrypted SGX contents.Â  Furthermore,
upon this being discussed, and it being pointed out that the proper
place to put the lock bit would be in MSR_APIC_BASE itself, Intel
declined citing "too much effort to qualify".Â  So we're left with this
instead.

We do virtualise one Intel control on AMD for the benefit of L1, but AMD
have finally grown CPUID Faulting into an architectural feature so we
can see about retiring the old bodge.

But, the Local APIC is far more complicated, and which mode you want
depends more on which hardware acceleration is available to you, and
there's a huge amount of work needing to do to get our x2APIC support
into better shape.

Either way, start simple by starting the guest in x2APIC mode.Â  It will
probably be sufficient for your needs.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 15:57:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 15:57:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159070.1487462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIqjq-00064A-1p; Tue, 11 Nov 2025 15:56:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159070.1487462; Tue, 11 Nov 2025 15:56:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIqjp-000643-VV; Tue, 11 Nov 2025 15:56:57 +0000
Received: by outflank-mailman (input) for mailman id 1159070;
 Tue, 11 Nov 2025 15:56: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=g0ws=5T=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vIqjp-00063t-1q
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 15:56:57 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 0aedf674-bf17-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 16:56: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 5ECCC2F;
 Tue, 11 Nov 2025 07:56:45 -0800 (PST)
Received: from [10.57.38.153] (unknown [10.57.38.153])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 489953F63F;
 Tue, 11 Nov 2025 07:56: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: 0aedf674-bf17-11f0-9d18-b5c5bf9af7f9
Message-ID: <58fd1a6e-f2c4-421c-9b95-dea4b244a515@arm.com>
Date: Tue, 11 Nov 2025 16:56:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/12] mm: enable lazy_mmu sections to nest
To: Ryan Roberts <ryan.roberts@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-8-kevin.brodsky@arm.com>
 <999feffa-5d1d-42e3-bd3a-d949f2a9de9d@arm.com>
 <cc9dc398-b9c5-4bb8-94ad-7e7f3ddd5b4f@arm.com>
 <824bf705-e9d6-4eeb-9532-9059fa56427f@arm.com>
From: Kevin Brodsky <kevin.brodsky@arm.com>
Content-Language: en-GB
In-Reply-To: <824bf705-e9d6-4eeb-9532-9059fa56427f@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/11/2025 10:24, Ryan Roberts wrote:
> [...]
>
>>>> +		state->active = true;
>>>> +		arch_enter_lazy_mmu_mode();
>>>> +	}
>>>>  }
>>>>  
>>>>  static inline void lazy_mmu_mode_disable(void)
>>>>  {
>>>> -	arch_leave_lazy_mmu_mode();
>>>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>>>> +
>>>> +	VM_WARN_ON_ONCE(state->nesting_level == 0);
>>>> +	VM_WARN_ON(!state->active);
>>>> +
>>>> +	if (--state->nesting_level == 0) {
>>>> +		state->active = false;
>>>> +		arch_leave_lazy_mmu_mode();
>>>> +	} else {
>>>> +		/* Exiting a nested section */
>>>> +		arch_flush_lazy_mmu_mode();
>>>> +	}
>>>>  }
>>>>  
>>>>  static inline void lazy_mmu_mode_pause(void)
>>>>  {
>>>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>>>> +
>>>> +	VM_WARN_ON(state->nesting_level == 0 || !state->active);
>>> nit: do you need the first condition? I think when nesting_level==0, we expect
>>> to be !active?
>> I suppose this should never happen indeed - I was just being extra
>> defensive.
>>
>> Either way David suggested allowing pause()/resume() to be called
>> outside of any section so the next version will bail out on
>> nesting_level == 0.
> Ignoring my current opinion that we don't need pause/resume at all for now; Are
> you suggesting that pause/resume will be completely independent of
> enable/disable? I think that would be best. So enable/disable increment and
> decrement the nesting_level counter regardless of whether we are paused.
> nesting_level 0 => 1 enables if not paused. nesting_level 1 => 0 disables if not
> paused. pause disables nesting_level >= 1, resume enables if nesting_level >= 1.

This is something else. Currently the rules are:

[A]

// pausing forbidden
enable()
Â  Â  pause()
Â  Â  // pausing/enabling forbidden
Â  Â  resume()
disable()

David suggested allowing:

[B]

pause()
// pausing/enabling forbidden
resume()

Your suggestion is also allowing:

[C]

pause()
Â  Â  // pausing forbidden
Â  Â  enable()
Â  Â  disable()
resume()

> Perhaps we also need nested pause/resume? Then you just end up with 2 counters;
> enable_count and pause_count. Sorry if this has already been discussed.

And finally:

[D]

pause()
Â  Â  pause()
Â  Â  Â  Â  enable()
Â  Â  Â  Â  disable()
Â  Â  resume()
resume()

I don't really mind either way, but I don't see an immediate use for [C]
and [D] - the idea is that the paused section is short and controlled,
not made up of arbitrary calls. A potential downside of allowing [C] and
[D] is that it makes it harder to detect unintended nesting (fewer
VM_WARN assertions). Happy to implement it if this proves useful though.

OTOH the idea behind [B] is that it allows the caller of
pause()/resume() not to care about whether lazy MMU is actually enabled
or not - i.e. the kasan helpers would keep working even if
apply_to_page_range() didn't use lazy MMU any more.

>>>> +
>>>> +	state->active = false;
>>>>  	arch_leave_lazy_mmu_mode();
>>>>  }
>>>>  
>>>>  static inline void lazy_mmu_mode_resume(void)
>>>>  {
>>>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>>>> +
>>>> +	VM_WARN_ON(state->nesting_level == 0 || state->active);
>>> Similar argument?
>>>
>>>> +
>>>> +	state->active = true;
>>>>  	arch_enter_lazy_mmu_mode();
>>>>  }
>>>>  #else
>>>> diff --git a/include/linux/sched.h b/include/linux/sched.h
>>>> index cbb7340c5866..11566d973f42 100644
>>>> --- a/include/linux/sched.h
>>>> +++ b/include/linux/sched.h
>>>> @@ -1441,6 +1441,10 @@ struct task_struct {
>>>>  
>>>>  	struct page_frag		task_frag;
>>>>  
>>>> +#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>>>> +	struct lazy_mmu_state		lazy_mmu_state;
>>>> +#endif
>>>> +
>>>>  #ifdef CONFIG_TASK_DELAY_ACCT
>>>>  	struct task_delay_info		*delays;
>>>>  #endif
>>>> @@ -1724,6 +1728,18 @@ static inline char task_state_to_char(struct task_struct *tsk)
>>>>  	return task_index_to_char(task_state_index(tsk));
>>>>  }
>>>>  
>>>> +#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>>>> +static inline bool in_lazy_mmu_mode(void)
>>>> +{
>>>> +	return current->lazy_mmu_state.active;
>>>> +}
>>>> +#else
>>>> +static inline bool in_lazy_mmu_mode(void)
>>>> +{
>>>> +	return false;
>>> Just pointing out that this isn't really a correct implementation:
>>>
>>> lazy_mmu_mode_enable()
>>> ASSERT(in_lazy_mmu_mode()) << triggers for arches without lazy mmu
>>> lazy_mmu_mode_disable()
>>>
>>> Although it probably doesn't matter in practice?
>> I'd say that the expectation is invalid - lazy MMU mode can only be
>> enabled if the architecture supports it. In fact as you pointed out
>> above the API may be called in interrupt context but it will have no
>> effect, so this sequence would always fail in interrupt context.
> Yep, but previously there was no way to query the current state so it didn't
> matter. Now you have a query API so it might matter if/when people come along
> and use it in unexpected ways.

I suppose the best we can do is document it alongside those helpers
(David has already suggested some documentation, see patch 11).

>> Worth nothing that in_lazy_mmu_mode() is only ever called from arch code
>> where lazy MMU is implemented. I added the fallback as a matter of
>> principle, but it isn't actually required.
> Yes, I agree that's the intent. I'm just wondering if it's possible to enforce
> that only arch code uses this. Perhaps add some docs to explain that it's only
> intended for arches that implement lazy_mmu, and don't define it for arches that
> don't, which would catch any generic users?

Yep sounds like the best option - a lot less risk of misuse if it can't
be called from generic code :) The build would still succeed on arch's
that implement it, but the kernel CI should catch such calls sooner or
later.

- Kevin


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 16:20:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 16:20:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159088.1487484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIr6G-000280-1j; Tue, 11 Nov 2025 16:20:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159088.1487484; Tue, 11 Nov 2025 16:20:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIr6F-00027t-VJ; Tue, 11 Nov 2025 16:20:07 +0000
Received: by outflank-mailman (input) for mailman id 1159088;
 Tue, 11 Nov 2025 16:20:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=6vR8=5T=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vIr6E-00027n-H7
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 16:20:06 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 480d5dff-bf1a-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 17:20:05 +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 6C55521CE5;
 Tue, 11 Nov 2025 16:20:02 +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 0BF0214A47;
 Tue, 11 Nov 2025 16:20:02 +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 tYE6ATJiE2k/DQAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 11 Nov 2025 16:20: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: 480d5dff-bf1a-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1762878003; 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=TXYSHdawEHsmAGrSuze4VfCWTtsO74yLxzbTMsz6XcM=;
	b=AU65P3BxWF54Au3Kya+Xi2n94jCp9F7Gs4l+DqAztevlIYHQY1NDYHnJTWVGLjk1b7Mz7Y
	XBJQ6Uozr/81bv56iYzTToFyP8C8VlzZzxeILcwa8i6L89jPOAWUEk7Jwrgsizdy9F/VXW
	tbhkMfWEeW+PjCrGuigAJM7X4eMxLMc=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=BZAFoQz+
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1762878002; 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=TXYSHdawEHsmAGrSuze4VfCWTtsO74yLxzbTMsz6XcM=;
	b=BZAFoQz+MzPpyyg+eNf7+YW91Z9S02jRb422qIbTaiD91QaM4kJHdk9+lipcl5sAVsIHuK
	w0yQX+yRkv6VrGWdatiDah/oHuvwYMFy39aZ/wXHnq5YWovy6AjE5I9DUEYkzaUS1dJ0ML
	2PCZyw/YrLl6RACMdN5OmVw+xY3GGmw=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Christian Lindig <christian.lindig@citrix.com>,
	David Scott <dave@recoil.org>
Subject: [PATCH 0/5] configure: reduce number of files created
Date: Tue, 11 Nov 2025 17:19:54 +0100
Message-ID: <20251111161959.13667-1-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spam-Flag: NO
X-Rspamd-Queue-Id: 6C55521CE5
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	MIME_TRACE(0.00)[0:+];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	TO_DN_SOME(0.00)[];
	FROM_HAS_DN(0.00)[];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	RCPT_COUNT_SEVEN(0.00)[11];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:mid,imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo,conf.in:url,xen-watchdog.in:url,pod.in:url,config.mk:url,xendriverdomain.in:url,ml.in:url,xendomains.in:url,launch-xenstore.in:url,vif-setup.in:url];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	DKIM_TRACE(0.00)[suse.com:+]
X-Spam-Score: -3.01

Instead of creating lots of files during configure, create those
files (where possible) rather at build time. This reduces the need
to run configure when e.g. changing a man page containing a path
defined by the configure run.

Juergen Gross (5):
  config: remove stale definition from Config.mk
  build: add new make pattern for making file from file.src
  docs: rename *.in files to *.src
  config: remove unused paths from config/Paths.mk.in
  tools: rename most *.in files to *.src

 .gitignore                                    |  1 +
 Config.mk                                     | 20 ++++++++++++------
 config/Paths.mk.in                            |  5 -----
 config/Tools-paths.mk.in                      | 10 +++++++++
 docs/Makefile                                 |  8 ++++++-
 docs/configure                                |  7 +------
 docs/configure.ac                             |  9 +-------
 ...pod.in => xl-disk-configuration.5.pod.src} |  0
 ....in => xl-network-configuration.5.pod.src} |  0
 docs/man/{xl.1.pod.in => xl.1.pod.src}        |  0
 .../man/{xl.cfg.5.pod.in => xl.cfg.5.pod.src} |  0
 .../{xl.conf.5.pod.in => xl.conf.5.pod.src}   |  0
 tools/configure                               | 21 ++-----------------
 tools/configure.ac                            | 19 +----------------
 tools/hotplug/FreeBSD/Makefile                |  8 ++++++-
 .../rc.d/{xencommons.in => xencommons.src}    |  0
 ...xendriverdomain.in => xendriverdomain.src} |  0
 tools/hotplug/Linux/Makefile                  | 11 +++++++++-
 ...xencommons.in => sysconfig.xencommons.src} |  0
 ...xendomains.in => sysconfig.xendomains.src} |  0
 .../{xen-watchdog.in => xen-watchdog.src}     |  0
 .../init.d/{xencommons.in => xencommons.src}  |  0
 .../init.d/{xendomains.in => xendomains.src}  |  0
 ...xendriverdomain.in => xendriverdomain.src} |  0
 ...launch-xenstore.in => launch-xenstore.src} |  0
 .../Linux/{vif-setup.in => vif-setup.src}     |  0
 ...common.sh.in => xen-hotplug-common.sh.src} |  0
 .../Linux/{xendomains.in => xendomains.src}   |  0
 tools/hotplug/NetBSD/Makefile                 |  8 ++++++-
 .../rc.d/{xencommons.in => xencommons.src}    |  0
 ...xendriverdomain.in => xendriverdomain.src} |  0
 tools/hotplug/common/Makefile                 |  5 ++++-
 .../{hotplugpath.sh.in => hotplugpath.sh.src} |  0
 tools/ocaml/libs/xs/Makefile                  |  7 +++++++
 .../libs/xs/{paths.ml.in => paths.ml.src}     |  0
 tools/ocaml/xenstored/Makefile                |  7 ++++++-
 ...oxenstored.conf.in => oxenstored.conf.src} |  0
 .../xenstored/{paths.ml.in => paths.ml.src}   |  0
 38 files changed, 78 insertions(+), 68 deletions(-)
 create mode 100644 config/Tools-paths.mk.in
 rename docs/man/{xl-disk-configuration.5.pod.in => xl-disk-configuration.5.pod.src} (100%)
 rename docs/man/{xl-network-configuration.5.pod.in => xl-network-configuration.5.pod.src} (100%)
 rename docs/man/{xl.1.pod.in => xl.1.pod.src} (100%)
 rename docs/man/{xl.cfg.5.pod.in => xl.cfg.5.pod.src} (100%)
 rename docs/man/{xl.conf.5.pod.in => xl.conf.5.pod.src} (100%)
 rename tools/hotplug/FreeBSD/rc.d/{xencommons.in => xencommons.src} (100%)
 rename tools/hotplug/FreeBSD/rc.d/{xendriverdomain.in => xendriverdomain.src} (100%)
 rename tools/hotplug/Linux/init.d/{sysconfig.xencommons.in => sysconfig.xencommons.src} (100%)
 rename tools/hotplug/Linux/init.d/{sysconfig.xendomains.in => sysconfig.xendomains.src} (100%)
 rename tools/hotplug/Linux/init.d/{xen-watchdog.in => xen-watchdog.src} (100%)
 rename tools/hotplug/Linux/init.d/{xencommons.in => xencommons.src} (100%)
 rename tools/hotplug/Linux/init.d/{xendomains.in => xendomains.src} (100%)
 rename tools/hotplug/Linux/init.d/{xendriverdomain.in => xendriverdomain.src} (100%)
 rename tools/hotplug/Linux/{launch-xenstore.in => launch-xenstore.src} (100%)
 rename tools/hotplug/Linux/{vif-setup.in => vif-setup.src} (100%)
 rename tools/hotplug/Linux/{xen-hotplug-common.sh.in => xen-hotplug-common.sh.src} (100%)
 rename tools/hotplug/Linux/{xendomains.in => xendomains.src} (100%)
 rename tools/hotplug/NetBSD/rc.d/{xencommons.in => xencommons.src} (100%)
 rename tools/hotplug/NetBSD/rc.d/{xendriverdomain.in => xendriverdomain.src} (100%)
 rename tools/hotplug/common/{hotplugpath.sh.in => hotplugpath.sh.src} (100%)
 rename tools/ocaml/libs/xs/{paths.ml.in => paths.ml.src} (100%)
 rename tools/ocaml/xenstored/{oxenstored.conf.in => oxenstored.conf.src} (100%)
 rename tools/ocaml/xenstored/{paths.ml.in => paths.ml.src} (100%)

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 11 16:20:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 16:20:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159089.1487494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIr6I-0002Ld-7v; Tue, 11 Nov 2025 16:20:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159089.1487494; Tue, 11 Nov 2025 16:20:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIr6I-0002LW-4z; Tue, 11 Nov 2025 16:20:10 +0000
Received: by outflank-mailman (input) for mailman id 1159089;
 Tue, 11 Nov 2025 16:20:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=6vR8=5T=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vIr6H-00027n-4N
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 16:20:09 +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 4a53aac1-bf1a-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 17:20:08 +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 38DC521CE4;
 Tue, 11 Nov 2025 16:20:08 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id CFEB414A47;
 Tue, 11 Nov 2025 16:20: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 KzMnMTdiE2lDDQAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 11 Nov 2025 16:20: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: 4a53aac1-bf1a-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1762878008; 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=9sxmnTjwEbOo9LTw+g6Xhcgog1RwNkt63wuL1s3lR+k=;
	b=sSbz6ggdRUHPgJNvKpQMkLp7A5AgFSdjhbyP4Q3EYxoGIU3pYDYKoInd6QPS0Yr636gBEB
	4DU43bl1WTZ+vmr3d3shL1soy0ADrsKzWH/zN6kHhbMpfhraiQFph2+9p6CdPCCDnuDUsQ
	Y0sUynag83H/BDJeBxGtIU4FmOtoxbM=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=sSbz6ggd
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1762878008; 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=9sxmnTjwEbOo9LTw+g6Xhcgog1RwNkt63wuL1s3lR+k=;
	b=sSbz6ggdRUHPgJNvKpQMkLp7A5AgFSdjhbyP4Q3EYxoGIU3pYDYKoInd6QPS0Yr636gBEB
	4DU43bl1WTZ+vmr3d3shL1soy0ADrsKzWH/zN6kHhbMpfhraiQFph2+9p6CdPCCDnuDUsQ
	Y0sUynag83H/BDJeBxGtIU4FmOtoxbM=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 1/5] config: remove stale definition from Config.mk
Date: Tue, 11 Nov 2025 17:19:55 +0100
Message-ID: <20251111161959.13667-2-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251111161959.13667-1-jgross@suse.com>
References: <20251111161959.13667-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Queue-Id: 38DC521CE4
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	MIME_TRACE(0.00)[0:+];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	TO_DN_SOME(0.00)[];
	FROM_HAS_DN(0.00)[];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	RCPT_COUNT_SEVEN(0.00)[9];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns,suse.com:email,suse.com:mid,suse.com:dkim,config.mk:url];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Action: no action
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level: 

buildmakevars2shellvars is used nowhere, so remove it.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 Config.mk | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/Config.mk b/Config.mk
index 7edbab8efe..e1556dfbfa 100644
--- a/Config.mk
+++ b/Config.mk
@@ -149,12 +149,6 @@ else
 date = $(shell LC_ALL=C date $(1))
 endif
 
-define buildmakevars2shellvars
-    export PREFIX="$(prefix)";                                            \
-    export XEN_SCRIPT_DIR="$(XEN_SCRIPT_DIR)";                            \
-    export XEN_ROOT="$(XEN_ROOT)"
-endef
-
 #
 # Compare $(1) and $(2) and replace $(2) with $(1) if they differ
 #
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 11 16:20:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 16:20:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159090.1487504 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIr6Q-0002fL-Fq; Tue, 11 Nov 2025 16:20:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159090.1487504; Tue, 11 Nov 2025 16:20:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIr6Q-0002fE-CF; Tue, 11 Nov 2025 16:20:18 +0000
Received: by outflank-mailman (input) for mailman id 1159090;
 Tue, 11 Nov 2025 16:20: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=6vR8=5T=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vIr6O-0002cf-HU
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 16:20: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 4dc7bffa-bf1a-11f0-980a-7dc792cee155;
 Tue, 11 Nov 2025 17:20:14 +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 EA1CF21CE5;
 Tue, 11 Nov 2025 16:20: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 9815A14A47;
 Tue, 11 Nov 2025 16:20:13 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id /xtlIz1iE2lYDQAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 11 Nov 2025 16:20: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: 4dc7bffa-bf1a-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1762878014; 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=6/icCTTtv5rJ6FYoAuIqJyhSavJniLkM4kKGv1wpb8o=;
	b=emMRyEOJEMR4txVJq43sjPHczZwLu3XjxqJ1ggsiy8mKxM6jFoEpCQDA0UXixoWsnvoLvL
	3uk/aZ/Xni/BvdmJcvbkEWHpjJmWXDC2Xpvv/3QgWu34DeKKJ1m31hwywgm49xUFon1f4k
	e5AbGWFel2dt9MdPB4PGOzTfghmf0Ig=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=tOGIctiu
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1762878013; 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=6/icCTTtv5rJ6FYoAuIqJyhSavJniLkM4kKGv1wpb8o=;
	b=tOGIctiuADyOGbDT4ZOWRU9iDqJFmnl3cOXk3NsGSXTujVd6V9nTFzpNm/R1qaXxqANtSz
	tWIm7VFr8wPXL/RbyM0GH515oGnr/pv+gDtXiTHV5V+ntMjeJD0l1cwMbklyjQ7Uc3xgQW
	kyePb/BXc8kyOapdYScJY3GCOLrv7vk=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 2/5] build: add new make pattern for making file from file.src
Date: Tue, 11 Nov 2025 17:19:56 +0100
Message-ID: <20251111161959.13667-3-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251111161959.13667-1-jgross@suse.com>
References: <20251111161959.13667-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Queue-Id: EA1CF21CE5
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	MIME_TRACE(0.00)[0:+];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	TO_DN_SOME(0.00)[];
	FROM_HAS_DN(0.00)[];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	RCPT_COUNT_SEVEN(0.00)[9];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns,suse.com:email,suse.com:mid,suse.com:dkim,config.mk:url];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Action: no action
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level: 

Add a new make pattern for creating <file> from <file>.src at build
time. Define the recipe as a macro in order to avoid replicating it
for cases where it needs to handle subdirectories (creating
<dir>/<file> from <dir>/<file>.src).

This can be used instead of the current approach to perform the similar
step for file.in during ./configure by renaming the source file to
file.src.

This will avoid having to run ./configure just because of modifying a
file depending on a variable set by configure.

Prepare to have multiple files as source for the replacement patterns.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 Config.mk | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/Config.mk b/Config.mk
index e1556dfbfa..0ea1640371 100644
--- a/Config.mk
+++ b/Config.mk
@@ -159,6 +159,20 @@ define move-if-changed
 	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
 endef
 
+PATH_FILES := Paths
+INC_FILES := $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
+
+include $(INC_FILES)
+
+BUILD_MAKE_VARS := $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).mk.in))
+
+define apply-build-vars
+	sed $(foreach v, $(BUILD_MAKE_VARS), -e 's#@$(v)@#$($(v))#g') <$< >$@
+endef
+
+%:: %.src
+	$(apply-build-vars)
+
 CFLAGS += -fno-strict-aliasing
 
 CFLAGS += -std=gnu99
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 11 16:20:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 16:20:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159093.1487514 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIr6U-0002yE-MW; Tue, 11 Nov 2025 16:20:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159093.1487514; Tue, 11 Nov 2025 16:20:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIr6U-0002y7-JC; Tue, 11 Nov 2025 16:20:22 +0000
Received: by outflank-mailman (input) for mailman id 1159093;
 Tue, 11 Nov 2025 16:20: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=6vR8=5T=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vIr6S-00027n-RZ
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 16:20:20 +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 5136b0b8-bf1a-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 17:20:20 +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 C285D21CE4;
 Tue, 11 Nov 2025 16:20: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 94A5E14A47;
 Tue, 11 Nov 2025 16:20:19 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id jYZZIENiE2ldDQAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 11 Nov 2025 16:20: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: 5136b0b8-bf1a-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1762878019; 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=a+soXsd5RJ+tn6vw+rsKME/DKU3Va+AYoo0xgD3bolg=;
	b=iQu0Lniq9q9KFB5LLSufnptCv2dv0wVj/G7cbRshOi3prYanYMOKX3UuPDFPr1paEVE3HM
	oF+WE+Kze2uLABmbG2dgIpfm63yK9dDYIwOdrjFbOiXQjmpaqYgiVdh8Phdn/niSPj56BT
	jshC8s6j5hIqx/McrkbobT/d13V7prY=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1762878019; 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=a+soXsd5RJ+tn6vw+rsKME/DKU3Va+AYoo0xgD3bolg=;
	b=iQu0Lniq9q9KFB5LLSufnptCv2dv0wVj/G7cbRshOi3prYanYMOKX3UuPDFPr1paEVE3HM
	oF+WE+Kze2uLABmbG2dgIpfm63yK9dDYIwOdrjFbOiXQjmpaqYgiVdh8Phdn/niSPj56BT
	jshC8s6j5hIqx/McrkbobT/d13V7prY=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 3/5] docs: rename *.in files to *.src
Date: Tue, 11 Nov 2025 17:19:57 +0100
Message-ID: <20251111161959.13667-4-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251111161959.13667-1-jgross@suse.com>
References: <20251111161959.13667-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-2.80 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-0.999];
	MIME_GOOD(-0.10)[text/plain];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	TO_DN_SOME(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email,pod.in:url,imap1.dmz-prg2.suse.org:helo];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCPT_COUNT_THREE(0.00)[3];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -2.80
X-Spam-Level: 

Rename the *.in files under docs to *.src, resulting to replace the
@...@ markers only at build time.

This allows to change the affected document files without having to
run "configure" for making the change effective.

While at it add the generated files to the distclean make target.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 docs/Makefile                                            | 8 +++++++-
 docs/configure                                           | 7 +------
 docs/configure.ac                                        | 9 +--------
 ...guration.5.pod.in => xl-disk-configuration.5.pod.src} | 0
 ...ation.5.pod.in => xl-network-configuration.5.pod.src} | 0
 docs/man/{xl.1.pod.in => xl.1.pod.src}                   | 0
 docs/man/{xl.cfg.5.pod.in => xl.cfg.5.pod.src}           | 0
 docs/man/{xl.conf.5.pod.in => xl.conf.5.pod.src}         | 0
 8 files changed, 9 insertions(+), 15 deletions(-)
 rename docs/man/{xl-disk-configuration.5.pod.in => xl-disk-configuration.5.pod.src} (100%)
 rename docs/man/{xl-network-configuration.5.pod.in => xl-network-configuration.5.pod.src} (100%)
 rename docs/man/{xl.1.pod.in => xl.1.pod.src} (100%)
 rename docs/man/{xl.cfg.5.pod.in => xl.cfg.5.pod.src} (100%)
 rename docs/man/{xl.conf.5.pod.in => xl.conf.5.pod.src} (100%)

diff --git a/docs/Makefile b/docs/Makefile
index 37776d303c..5d7fbcb032 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -8,8 +8,10 @@ DATE		:= $(call date,"+%Y-%m-%d")
 DOC_ARCHES      := arm ppc riscv x86_32 x86_64
 MAN_SECTIONS    := 1 5 7 8
 
+GEN-MAN := $(sort $(patsubst %.src,%,$(wildcard man/*.pod.src)))
+
 # Documentation sources to build
-MAN-SRC-y := $(sort $(basename $(wildcard man/*.pod man/*.pandoc)))
+MAN-SRC-y := $(sort $(basename $(wildcard man/*.pod man/*.pandoc) $(GEN-MAN)))
 
 RST-SRC-y := $(sort $(filter-out %index.rst,$(shell find * -type f -name '*.rst' -print)))
 
@@ -77,11 +79,15 @@ clean: clean-man-pages
 distclean: clean
 	rm -rf $(XEN_ROOT)/config/Docs.mk config.log config.status config.cache \
 		autom4te.cache
+	rm -f $(GEN-MAN)
 
 # Top level install targets
 
 .PHONY: man-pages install-man-pages clean-man-pages uninstall-man-pages
 
+man/%: man/%.src
+	$(apply-build-vars)
+
 # Metarules for generating manpages.  Run with $(1) substitued for section
 define GENERATE_MANPAGE_RULES
 
diff --git a/docs/configure b/docs/configure
index 98dda3cd0f..8871914dcb 100755
--- a/docs/configure
+++ b/docs/configure
@@ -1794,7 +1794,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
-ac_config_files="$ac_config_files ../config/Docs.mk man/xl.cfg.5.pod man/xl.1.pod man/xl-disk-configuration.5.pod man/xl-network-configuration.5.pod man/xl.conf.5.pod"
+ac_config_files="$ac_config_files ../config/Docs.mk"
 
 
 
@@ -3063,11 +3063,6 @@ for ac_config_target in $ac_config_targets
 do
   case $ac_config_target in
     "../config/Docs.mk") CONFIG_FILES="$CONFIG_FILES ../config/Docs.mk" ;;
-    "man/xl.cfg.5.pod") CONFIG_FILES="$CONFIG_FILES man/xl.cfg.5.pod" ;;
-    "man/xl.1.pod") CONFIG_FILES="$CONFIG_FILES man/xl.1.pod" ;;
-    "man/xl-disk-configuration.5.pod") CONFIG_FILES="$CONFIG_FILES man/xl-disk-configuration.5.pod" ;;
-    "man/xl-network-configuration.5.pod") CONFIG_FILES="$CONFIG_FILES man/xl-network-configuration.5.pod" ;;
-    "man/xl.conf.5.pod") CONFIG_FILES="$CONFIG_FILES man/xl.conf.5.pod" ;;
 
   *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
diff --git a/docs/configure.ac b/docs/configure.ac
index c2e5edd3b3..43dc516056 100644
--- a/docs/configure.ac
+++ b/docs/configure.ac
@@ -5,14 +5,7 @@ AC_PREREQ([2.67])
 AC_INIT([Xen Hypervisor Documentation], m4_esyscmd([../version.sh ../xen/Makefile]),
     [xen-devel@lists.xen.org], [xen], [https://www.xen.org/])
 AC_CONFIG_SRCDIR([misc/xen-command-line.pandoc])
-AC_CONFIG_FILES([
-../config/Docs.mk
-man/xl.cfg.5.pod
-man/xl.1.pod
-man/xl-disk-configuration.5.pod
-man/xl-network-configuration.5.pod
-man/xl.conf.5.pod
-])
+AC_CONFIG_FILES([../config/Docs.mk])
 AC_CONFIG_AUX_DIR([../])
 
 # M4 Macro includes
diff --git a/docs/man/xl-disk-configuration.5.pod.in b/docs/man/xl-disk-configuration.5.pod.src
similarity index 100%
rename from docs/man/xl-disk-configuration.5.pod.in
rename to docs/man/xl-disk-configuration.5.pod.src
diff --git a/docs/man/xl-network-configuration.5.pod.in b/docs/man/xl-network-configuration.5.pod.src
similarity index 100%
rename from docs/man/xl-network-configuration.5.pod.in
rename to docs/man/xl-network-configuration.5.pod.src
diff --git a/docs/man/xl.1.pod.in b/docs/man/xl.1.pod.src
similarity index 100%
rename from docs/man/xl.1.pod.in
rename to docs/man/xl.1.pod.src
diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.src
similarity index 100%
rename from docs/man/xl.cfg.5.pod.in
rename to docs/man/xl.cfg.5.pod.src
diff --git a/docs/man/xl.conf.5.pod.in b/docs/man/xl.conf.5.pod.src
similarity index 100%
rename from docs/man/xl.conf.5.pod.in
rename to docs/man/xl.conf.5.pod.src
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 11 16:20:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 16:20:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159097.1487524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIr6Z-0003Lc-4r; Tue, 11 Nov 2025 16:20:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159097.1487524; Tue, 11 Nov 2025 16:20:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIr6Z-0003LR-1Z; Tue, 11 Nov 2025 16:20:27 +0000
Received: by outflank-mailman (input) for mailman id 1159097;
 Tue, 11 Nov 2025 16:20:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=6vR8=5T=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vIr6Y-00027n-9u
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 16:20:26 +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 548ed356-bf1a-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 17:20:25 +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 667F521CE4;
 Tue, 11 Nov 2025 16:20:25 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 3E5B614A47;
 Tue, 11 Nov 2025 16:20:25 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id qlSlDUliE2lpDQAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 11 Nov 2025 16:20: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: 548ed356-bf1a-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1762878025; 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=Cfv/xgHZLZE2wANukYWztkqRSmV6C5Zi4y/LQSiOMQM=;
	b=Y2keFVwknK7R+SgY5Tll5//kL6L1r8wxCK2oP6BdCXxS7+yIu6qBXoRJ84z83aCftZGw86
	wS0MhKEWQNjE7/AGH1D9mwV/hV7tOASpLHonJ0whcsta5Qc1g5b54avZzej2VjvG/WdgCE
	FY3q6kOKI4YcB/aGuh2yBiDgo/GnS7U=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1762878025; 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=Cfv/xgHZLZE2wANukYWztkqRSmV6C5Zi4y/LQSiOMQM=;
	b=Y2keFVwknK7R+SgY5Tll5//kL6L1r8wxCK2oP6BdCXxS7+yIu6qBXoRJ84z83aCftZGw86
	wS0MhKEWQNjE7/AGH1D9mwV/hV7tOASpLHonJ0whcsta5Qc1g5b54avZzej2VjvG/WdgCE
	FY3q6kOKI4YcB/aGuh2yBiDgo/GnS7U=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 4/5] config: remove unused paths from config/Paths.mk.in
Date: Tue, 11 Nov 2025 17:19:58 +0100
Message-ID: <20251111161959.13667-5-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251111161959.13667-1-jgross@suse.com>
References: <20251111161959.13667-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spamd-Result: default: False [-2.80 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-0.999];
	MIME_GOOD(-0.10)[text/plain];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	TO_DN_SOME(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:mid,imap1.dmz-prg2.suse.org:helo];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCPT_COUNT_THREE(0.00)[3];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -2.80

Some paths in config/Paths.mk.in are used nowhere, so remove them.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 config/Paths.mk.in | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/config/Paths.mk.in b/config/Paths.mk.in
index bc42748b7a..668545be2f 100644
--- a/config/Paths.mk.in
+++ b/config/Paths.mk.in
@@ -20,10 +20,7 @@ libexecdir               := @libexecdir@
 datarootdir              := @datarootdir@
 mandir                   := @mandir@
 docdir                   := @docdir@
-dvidir                   := @dvidir@
 htmldir                  := @htmldir@
-pdfdir                   := @pdfdir@
-psdir                    := @psdir@
 includedir               := @includedir@
 localstatedir            := @localstatedir@
 sysconfdir               := @sysconfdir@
@@ -34,8 +31,6 @@ LIBEXEC_LIB              := @LIBEXEC_LIB@
 LIBEXEC_INC              := @LIBEXEC_INC@
 
 SHAREDIR                 := @SHAREDIR@
-MAN1DIR                  := $(mandir)/man1
-MAN8DIR                  := $(mandir)/man8
 
 XEN_RUN_DIR              := @XEN_RUN_DIR@
 XEN_LOG_DIR              := @XEN_LOG_DIR@
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 11 16:20:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 16:20:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159114.1487534 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIr6i-000442-Fw; Tue, 11 Nov 2025 16:20:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159114.1487534; Tue, 11 Nov 2025 16:20:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIr6i-00043g-Br; Tue, 11 Nov 2025 16:20:36 +0000
Received: by outflank-mailman (input) for mailman id 1159114;
 Tue, 11 Nov 2025 16:20: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=6vR8=5T=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vIr6g-00027n-WD
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 16:20:35 +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 581ec7d4-bf1a-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 17:20:31 +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 2C09E21CEB;
 Tue, 11 Nov 2025 16:20:31 +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 CB38914A49;
 Tue, 11 Nov 2025 16:20: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 WPYBME5iE2lwDQAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 11 Nov 2025 16:20: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: 581ec7d4-bf1a-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1762878031; 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=R8kSGCqMJe/YFQNzWivvH+Qqy7p73QZsAmfOgR9P6UU=;
	b=hJLpvTPUhjeuG1xQvcwENY8hbZXdYxJNftj+YwaMbUD5/3KX69vvWtPiNK5biR8Rg0/GLa
	x5twkbSTlxXXt46JrZQ4XaIrPBzNfBwridnMn/5sWNEBGKJSy9X3MuZ+MW/D6VLPbLcfBN
	21MKc+7NnHuZS2Zd4Rk9JllmvQFxNx4=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1762878031; 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=R8kSGCqMJe/YFQNzWivvH+Qqy7p73QZsAmfOgR9P6UU=;
	b=hJLpvTPUhjeuG1xQvcwENY8hbZXdYxJNftj+YwaMbUD5/3KX69vvWtPiNK5biR8Rg0/GLa
	x5twkbSTlxXXt46JrZQ4XaIrPBzNfBwridnMn/5sWNEBGKJSy9X3MuZ+MW/D6VLPbLcfBN
	21MKc+7NnHuZS2Zd4Rk9JllmvQFxNx4=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Christian Lindig <christian.lindig@citrix.com>,
	David Scott <dave@recoil.org>
Subject: [PATCH 5/5] tools: rename most *.in files to *.src
Date: Tue, 11 Nov 2025 17:19:59 +0100
Message-ID: <20251111161959.13667-6-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251111161959.13667-1-jgross@suse.com>
References: <20251111161959.13667-1-jgross@suse.com>
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)[-0.999];
	MIME_GOOD(-0.10)[text/plain];
	ARC_NA(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	MIME_TRACE(0.00)[0:+];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCVD_TLS_ALL(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCPT_COUNT_SEVEN(0.00)[11];
	RCVD_COUNT_TWO(0.00)[2];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo]
X-Spam-Flag: NO
X-Spam-Score: -2.80
X-Spam-Level: 

Rename the *.in files under tools read by configure to *.src,
resulting to replace the @...@ markers only at build time.

As some of the markers are local to tools/configure, introduce
config/Tools-paths.mk.in and add the related make variables to it.
Add Tools-paths to the PATH_FILES make variable in order to include
the definitions for replacing themin the *.src files.

Add the generated files to the distclean target.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 .gitignore                                    |  1 +
 Config.mk                                     |  2 +-
 config/Tools-paths.mk.in                      | 10 +++++++++
 tools/configure                               | 21 ++-----------------
 tools/configure.ac                            | 19 +----------------
 tools/hotplug/FreeBSD/Makefile                |  8 ++++++-
 .../rc.d/{xencommons.in => xencommons.src}    |  0
 ...xendriverdomain.in => xendriverdomain.src} |  0
 tools/hotplug/Linux/Makefile                  | 11 +++++++++-
 ...xencommons.in => sysconfig.xencommons.src} |  0
 ...xendomains.in => sysconfig.xendomains.src} |  0
 .../{xen-watchdog.in => xen-watchdog.src}     |  0
 .../init.d/{xencommons.in => xencommons.src}  |  0
 .../init.d/{xendomains.in => xendomains.src}  |  0
 ...xendriverdomain.in => xendriverdomain.src} |  0
 ...launch-xenstore.in => launch-xenstore.src} |  0
 .../Linux/{vif-setup.in => vif-setup.src}     |  0
 ...common.sh.in => xen-hotplug-common.sh.src} |  0
 .../Linux/{xendomains.in => xendomains.src}   |  0
 tools/hotplug/NetBSD/Makefile                 |  8 ++++++-
 .../rc.d/{xencommons.in => xencommons.src}    |  0
 ...xendriverdomain.in => xendriverdomain.src} |  0
 tools/hotplug/common/Makefile                 |  5 ++++-
 .../{hotplugpath.sh.in => hotplugpath.sh.src} |  0
 tools/ocaml/libs/xs/Makefile                  |  7 +++++++
 .../libs/xs/{paths.ml.in => paths.ml.src}     |  0
 tools/ocaml/xenstored/Makefile                |  7 ++++++-
 ...oxenstored.conf.in => oxenstored.conf.src} |  0
 .../xenstored/{paths.ml.in => paths.ml.src}   |  0
 29 files changed, 56 insertions(+), 43 deletions(-)
 create mode 100644 config/Tools-paths.mk.in
 rename tools/hotplug/FreeBSD/rc.d/{xencommons.in => xencommons.src} (100%)
 rename tools/hotplug/FreeBSD/rc.d/{xendriverdomain.in => xendriverdomain.src} (100%)
 rename tools/hotplug/Linux/init.d/{sysconfig.xencommons.in => sysconfig.xencommons.src} (100%)
 rename tools/hotplug/Linux/init.d/{sysconfig.xendomains.in => sysconfig.xendomains.src} (100%)
 rename tools/hotplug/Linux/init.d/{xen-watchdog.in => xen-watchdog.src} (100%)
 rename tools/hotplug/Linux/init.d/{xencommons.in => xencommons.src} (100%)
 rename tools/hotplug/Linux/init.d/{xendomains.in => xendomains.src} (100%)
 rename tools/hotplug/Linux/init.d/{xendriverdomain.in => xendriverdomain.src} (100%)
 rename tools/hotplug/Linux/{launch-xenstore.in => launch-xenstore.src} (100%)
 rename tools/hotplug/Linux/{vif-setup.in => vif-setup.src} (100%)
 rename tools/hotplug/Linux/{xen-hotplug-common.sh.in => xen-hotplug-common.sh.src} (100%)
 rename tools/hotplug/Linux/{xendomains.in => xendomains.src} (100%)
 rename tools/hotplug/NetBSD/rc.d/{xencommons.in => xencommons.src} (100%)
 rename tools/hotplug/NetBSD/rc.d/{xendriverdomain.in => xendriverdomain.src} (100%)
 rename tools/hotplug/common/{hotplugpath.sh.in => hotplugpath.sh.src} (100%)
 rename tools/ocaml/libs/xs/{paths.ml.in => paths.ml.src} (100%)
 rename tools/ocaml/xenstored/{oxenstored.conf.in => oxenstored.conf.src} (100%)
 rename tools/ocaml/xenstored/{paths.ml.in => paths.ml.src} (100%)

diff --git a/.gitignore b/.gitignore
index d83427aba8..57d54f676f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,6 +47,7 @@ config.status
 config.cache
 config/Toplevel.mk
 config/Paths.mk
+config/Tools-paths.mk
 
 dist/*
 extras/
diff --git a/Config.mk b/Config.mk
index 0ea1640371..713fb5eb89 100644
--- a/Config.mk
+++ b/Config.mk
@@ -159,7 +159,7 @@ define move-if-changed
 	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
 endef
 
-PATH_FILES := Paths
+PATH_FILES := Paths Tools-paths
 INC_FILES := $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
 
 include $(INC_FILES)
diff --git a/config/Tools-paths.mk.in b/config/Tools-paths.mk.in
new file mode 100644
index 0000000000..ac6298e761
--- /dev/null
+++ b/config/Tools-paths.mk.in
@@ -0,0 +1,10 @@
+-include $(XEN_ROOT)/config/Paths.mk
+
+XENSTORED                := @XENSTORED@
+XENSTORED_KVA            := @XENSTORED_KVA@
+XENSTORED_PORT           := @XENSTORED_PORT@
+XEN_RUN_STORED           := @XEN_RUN_STORED@
+
+LINUX_BACKEND_MODULES    := @LINUX_BACKEND_MODULES@
+
+qemu_xen_path            := @qemu_xen_path@
diff --git a/tools/configure b/tools/configure
index 3111f5688c..479c7c9a3c 100755
--- a/tools/configure
+++ b/tools/configure
@@ -2742,7 +2742,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
-ac_config_files="$ac_config_files ../config/Tools.mk hotplug/common/hotplugpath.sh hotplug/FreeBSD/rc.d/xencommons hotplug/FreeBSD/rc.d/xendriverdomain hotplug/Linux/init.d/sysconfig.xencommons hotplug/Linux/init.d/sysconfig.xendomains hotplug/Linux/init.d/xen-watchdog hotplug/Linux/init.d/xencommons hotplug/Linux/init.d/xendomains hotplug/Linux/init.d/xendriverdomain hotplug/Linux/launch-xenstore hotplug/Linux/vif-setup hotplug/Linux/xen-hotplug-common.sh hotplug/Linux/xendomains hotplug/NetBSD/rc.d/xencommons hotplug/NetBSD/rc.d/xendriverdomain ocaml/libs/xs/paths.ml ocaml/xenstored/paths.ml ocaml/xenstored/oxenstored.conf"
+ac_config_files="$ac_config_files ../config/Tools.mk ../config/Tools-paths.mk"
 
 ac_config_headers="$ac_config_headers config.h"
 
@@ -11268,24 +11268,7 @@ for ac_config_target in $ac_config_targets
 do
   case $ac_config_target in
     "../config/Tools.mk") CONFIG_FILES="$CONFIG_FILES ../config/Tools.mk" ;;
-    "hotplug/common/hotplugpath.sh") CONFIG_FILES="$CONFIG_FILES hotplug/common/hotplugpath.sh" ;;
-    "hotplug/FreeBSD/rc.d/xencommons") CONFIG_FILES="$CONFIG_FILES hotplug/FreeBSD/rc.d/xencommons" ;;
-    "hotplug/FreeBSD/rc.d/xendriverdomain") CONFIG_FILES="$CONFIG_FILES hotplug/FreeBSD/rc.d/xendriverdomain" ;;
-    "hotplug/Linux/init.d/sysconfig.xencommons") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/sysconfig.xencommons" ;;
-    "hotplug/Linux/init.d/sysconfig.xendomains") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/sysconfig.xendomains" ;;
-    "hotplug/Linux/init.d/xen-watchdog") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/xen-watchdog" ;;
-    "hotplug/Linux/init.d/xencommons") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/xencommons" ;;
-    "hotplug/Linux/init.d/xendomains") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/xendomains" ;;
-    "hotplug/Linux/init.d/xendriverdomain") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/xendriverdomain" ;;
-    "hotplug/Linux/launch-xenstore") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/launch-xenstore" ;;
-    "hotplug/Linux/vif-setup") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/vif-setup" ;;
-    "hotplug/Linux/xen-hotplug-common.sh") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/xen-hotplug-common.sh" ;;
-    "hotplug/Linux/xendomains") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/xendomains" ;;
-    "hotplug/NetBSD/rc.d/xencommons") CONFIG_FILES="$CONFIG_FILES hotplug/NetBSD/rc.d/xencommons" ;;
-    "hotplug/NetBSD/rc.d/xendriverdomain") CONFIG_FILES="$CONFIG_FILES hotplug/NetBSD/rc.d/xendriverdomain" ;;
-    "ocaml/libs/xs/paths.ml") CONFIG_FILES="$CONFIG_FILES ocaml/libs/xs/paths.ml" ;;
-    "ocaml/xenstored/paths.ml") CONFIG_FILES="$CONFIG_FILES ocaml/xenstored/paths.ml" ;;
-    "ocaml/xenstored/oxenstored.conf") CONFIG_FILES="$CONFIG_FILES ocaml/xenstored/oxenstored.conf" ;;
+    "../config/Tools-paths.mk") CONFIG_FILES="$CONFIG_FILES ../config/Tools-paths.mk" ;;
     "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
     "hotplug/Linux/systemd/proc-xen.mount") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/systemd/proc-xen.mount" ;;
     "hotplug/Linux/systemd/xen-init-dom0.service") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/systemd/xen-init-dom0.service" ;;
diff --git a/tools/configure.ac b/tools/configure.ac
index 285b4ea128..ecd45e782e 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -7,24 +7,7 @@ AC_INIT([Xen Hypervisor Tools], m4_esyscmd([../version.sh ../xen/Makefile]),
 AC_CONFIG_SRCDIR([libs/light/libxl.c])
 AC_CONFIG_FILES([
 ../config/Tools.mk
-hotplug/common/hotplugpath.sh
-hotplug/FreeBSD/rc.d/xencommons
-hotplug/FreeBSD/rc.d/xendriverdomain
-hotplug/Linux/init.d/sysconfig.xencommons
-hotplug/Linux/init.d/sysconfig.xendomains
-hotplug/Linux/init.d/xen-watchdog
-hotplug/Linux/init.d/xencommons
-hotplug/Linux/init.d/xendomains
-hotplug/Linux/init.d/xendriverdomain
-hotplug/Linux/launch-xenstore
-hotplug/Linux/vif-setup
-hotplug/Linux/xen-hotplug-common.sh
-hotplug/Linux/xendomains
-hotplug/NetBSD/rc.d/xencommons
-hotplug/NetBSD/rc.d/xendriverdomain
-ocaml/libs/xs/paths.ml
-ocaml/xenstored/paths.ml
-ocaml/xenstored/oxenstored.conf
+../config/Tools-paths.mk
 ])
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_AUX_DIR([../])
diff --git a/tools/hotplug/FreeBSD/Makefile b/tools/hotplug/FreeBSD/Makefile
index a6552c9884..0ad4372687 100644
--- a/tools/hotplug/FreeBSD/Makefile
+++ b/tools/hotplug/FreeBSD/Makefile
@@ -8,6 +8,11 @@ XEN_SCRIPT_DATA :=
 
 XEN_RCD_PROG := rc.d/xencommons rc.d/xendriverdomain
 
+GEN_FILES := rc.d/xencommons rc.d/xendriverdomain
+
+rc.d/%:: rc.d/%.src
+	$(apply-build-vars)
+
 .PHONY: all
 all:
 
@@ -35,7 +40,7 @@ uninstall-scripts:
 	rm -f $(addprefix $(DESTDIR)$(XEN_SCRIPT_DIR)/, $(XEN_SCRIPT_DATA))
 
 .PHONY: install-rcd
-install-rcd:
+install-rcd: $(GEN_FILES)
 	$(INSTALL_DIR) $(DESTDIR)$(INITD_DIR)
 	set -e; for i in $(XEN_RCD_PROG); \
 	   do \
@@ -51,3 +56,4 @@ clean:
 
 .PHONY: distclean
 distclean: clean
+	rm -rf $(GEN_FILES)
diff --git a/tools/hotplug/FreeBSD/rc.d/xencommons.in b/tools/hotplug/FreeBSD/rc.d/xencommons.src
similarity index 100%
rename from tools/hotplug/FreeBSD/rc.d/xencommons.in
rename to tools/hotplug/FreeBSD/rc.d/xencommons.src
diff --git a/tools/hotplug/FreeBSD/rc.d/xendriverdomain.in b/tools/hotplug/FreeBSD/rc.d/xendriverdomain.src
similarity index 100%
rename from tools/hotplug/FreeBSD/rc.d/xendriverdomain.in
rename to tools/hotplug/FreeBSD/rc.d/xendriverdomain.src
diff --git a/tools/hotplug/Linux/Makefile b/tools/hotplug/Linux/Makefile
index 9a7b3a3515..59f7bab96b 100644
--- a/tools/hotplug/Linux/Makefile
+++ b/tools/hotplug/Linux/Makefile
@@ -26,6 +26,14 @@ XEN_SCRIPT_DATA := xen-script-common.sh locking.sh logging.sh
 XEN_SCRIPT_DATA += xen-hotplug-common.sh xen-network-common.sh vif-common.sh
 XEN_SCRIPT_DATA += block-common.sh
 
+GEN_FILES := launch-xenstore vif-setup xendomains xen-hotplug-common.sh
+GEN_FILES += init.d/sysconfig.xendomains init.d/xen-watchdog
+GEN_FILES += init.d/xencommons init.d/xendomains
+GEN_FILES += init.d/xendriverdomain init.d/sysconfig.xencommons
+
+init.d/%:: init.d/%.src
+	$(apply-build-vars)
+
 .PHONY: all
 all: subdirs-all
 
@@ -37,7 +45,7 @@ uninstall: uninstall-initd uninstall-scripts subdirs-uninstall
 
 # See docs/misc/distro_mapping.txt for INITD_DIR location
 .PHONY: install-initd
-install-initd:
+install-initd: $(GEN_FILES)
 	$(INSTALL_DIR) $(DESTDIR)$(INITD_DIR)
 	$(INSTALL_DIR) $(DESTDIR)$(SYSCONFIG_DIR)
 	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
@@ -81,3 +89,4 @@ clean: subdirs-clean
 
 .PHONY: distclean
 distclean: clean
+	rm -rf $(GEN_FILES)
diff --git a/tools/hotplug/Linux/init.d/sysconfig.xencommons.in b/tools/hotplug/Linux/init.d/sysconfig.xencommons.src
similarity index 100%
rename from tools/hotplug/Linux/init.d/sysconfig.xencommons.in
rename to tools/hotplug/Linux/init.d/sysconfig.xencommons.src
diff --git a/tools/hotplug/Linux/init.d/sysconfig.xendomains.in b/tools/hotplug/Linux/init.d/sysconfig.xendomains.src
similarity index 100%
rename from tools/hotplug/Linux/init.d/sysconfig.xendomains.in
rename to tools/hotplug/Linux/init.d/sysconfig.xendomains.src
diff --git a/tools/hotplug/Linux/init.d/xen-watchdog.in b/tools/hotplug/Linux/init.d/xen-watchdog.src
similarity index 100%
rename from tools/hotplug/Linux/init.d/xen-watchdog.in
rename to tools/hotplug/Linux/init.d/xen-watchdog.src
diff --git a/tools/hotplug/Linux/init.d/xencommons.in b/tools/hotplug/Linux/init.d/xencommons.src
similarity index 100%
rename from tools/hotplug/Linux/init.d/xencommons.in
rename to tools/hotplug/Linux/init.d/xencommons.src
diff --git a/tools/hotplug/Linux/init.d/xendomains.in b/tools/hotplug/Linux/init.d/xendomains.src
similarity index 100%
rename from tools/hotplug/Linux/init.d/xendomains.in
rename to tools/hotplug/Linux/init.d/xendomains.src
diff --git a/tools/hotplug/Linux/init.d/xendriverdomain.in b/tools/hotplug/Linux/init.d/xendriverdomain.src
similarity index 100%
rename from tools/hotplug/Linux/init.d/xendriverdomain.in
rename to tools/hotplug/Linux/init.d/xendriverdomain.src
diff --git a/tools/hotplug/Linux/launch-xenstore.in b/tools/hotplug/Linux/launch-xenstore.src
similarity index 100%
rename from tools/hotplug/Linux/launch-xenstore.in
rename to tools/hotplug/Linux/launch-xenstore.src
diff --git a/tools/hotplug/Linux/vif-setup.in b/tools/hotplug/Linux/vif-setup.src
similarity index 100%
rename from tools/hotplug/Linux/vif-setup.in
rename to tools/hotplug/Linux/vif-setup.src
diff --git a/tools/hotplug/Linux/xen-hotplug-common.sh.in b/tools/hotplug/Linux/xen-hotplug-common.sh.src
similarity index 100%
rename from tools/hotplug/Linux/xen-hotplug-common.sh.in
rename to tools/hotplug/Linux/xen-hotplug-common.sh.src
diff --git a/tools/hotplug/Linux/xendomains.in b/tools/hotplug/Linux/xendomains.src
similarity index 100%
rename from tools/hotplug/Linux/xendomains.in
rename to tools/hotplug/Linux/xendomains.src
diff --git a/tools/hotplug/NetBSD/Makefile b/tools/hotplug/NetBSD/Makefile
index 1cd3db2ccb..7953fd4360 100644
--- a/tools/hotplug/NetBSD/Makefile
+++ b/tools/hotplug/NetBSD/Makefile
@@ -12,6 +12,11 @@ XEN_SCRIPTS += qemu-ifup
 XEN_SCRIPT_DATA :=
 XEN_RCD_PROG := rc.d/xencommons rc.d/xendomains rc.d/xen-watchdog rc.d/xendriverdomain
 
+GEN_FILES := rc.d/xencommons rc.d/xendriverdomain
+
+rc.d/%:: rc.d/%.src
+	$(apply-build-vars)
+
 .PHONY: all
 all:
 
@@ -39,7 +44,7 @@ uninstall-scripts:
 	rm -f $(addprefix $(DESTDIR)$(XEN_SCRIPT_DIR)/, $(XEN_SCRIPT_DATA))
 
 .PHONY: install-rcd
-install-rcd:
+install-rcd: $(GEN_FILES)
 	$(INSTALL_DIR) $(DESTDIR)$(INITD_DIR)
 	set -e; for i in $(XEN_RCD_PROG); \
 	   do \
@@ -57,3 +62,4 @@ clean:
 
 .PHONY: distclean
 distclean: clean
+	rm -rf $(GEN_FILES)
diff --git a/tools/hotplug/NetBSD/rc.d/xencommons.in b/tools/hotplug/NetBSD/rc.d/xencommons.src
similarity index 100%
rename from tools/hotplug/NetBSD/rc.d/xencommons.in
rename to tools/hotplug/NetBSD/rc.d/xencommons.src
diff --git a/tools/hotplug/NetBSD/rc.d/xendriverdomain.in b/tools/hotplug/NetBSD/rc.d/xendriverdomain.src
similarity index 100%
rename from tools/hotplug/NetBSD/rc.d/xendriverdomain.in
rename to tools/hotplug/NetBSD/rc.d/xendriverdomain.src
diff --git a/tools/hotplug/common/Makefile b/tools/hotplug/common/Makefile
index 62afe1019e..e9cbd35881 100644
--- a/tools/hotplug/common/Makefile
+++ b/tools/hotplug/common/Makefile
@@ -7,6 +7,8 @@ include $(XEN_ROOT)/tools/Rules.mk
 XEN_SCRIPTS :=
 XEN_SCRIPT_DATA := hotplugpath.sh
 
+GEN_FILES := hotplugpath.sh
+
 .PHONY: all
 all:
 
@@ -17,7 +19,7 @@ install: install-scripts
 uninstall: uninstall-scripts
 
 .PHONY: install-scripts
-install-scripts: all
+install-scripts: all $(GEN_FILES)
 	$(INSTALL_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR)
 	set -e; for i in $(XEN_SCRIPTS); \
 	   do \
@@ -38,3 +40,4 @@ clean:
 
 .PHONY: distclean
 distclean: clean
+	rm -rf $(GEN_FILES)
diff --git a/tools/hotplug/common/hotplugpath.sh.in b/tools/hotplug/common/hotplugpath.sh.src
similarity index 100%
rename from tools/hotplug/common/hotplugpath.sh.in
rename to tools/hotplug/common/hotplugpath.sh.src
diff --git a/tools/ocaml/libs/xs/Makefile b/tools/ocaml/libs/xs/Makefile
index e160e6a711..a9b534c929 100644
--- a/tools/ocaml/libs/xs/Makefile
+++ b/tools/ocaml/libs/xs/Makefile
@@ -8,6 +8,8 @@ OCAMLOPTFLAGS += -for-pack Xenstore
 .NOTPARALLEL:
 # Ocaml is such a PITA!
 
+GEN_FILES := paths.ml
+
 PREINTF = xsraw.cmi xst.cmi
 PREOBJS = queueop xsraw xst
 PRELIBS = $(foreach obj, $(PREOBJS),$(obj).cmo) $(foreach obj,$(PREOJBS),$(obj).cmx)
@@ -17,6 +19,8 @@ LIBS = xenstore.cma xenstore.cmxa
 
 all: $(PREINTF) $(PRELIBS) $(INTF) $(LIBS) $(PROGRAMS)
 
+$(OBJS): $(GEN_FILES)
+
 bins: $(PROGRAMS)
 
 libs: $(LIBS)
@@ -43,4 +47,7 @@ install: $(LIBS) META
 uninstall:
 	$(OCAMLFIND) remove -destdir $(OCAMLDESTDIR) xenstore
 
+.PHONY: distclean
+	rm -rf $(GEN_FILES)
+
 include $(OCAML_TOPLEVEL)/Makefile.rules
diff --git a/tools/ocaml/libs/xs/paths.ml.in b/tools/ocaml/libs/xs/paths.ml.src
similarity index 100%
rename from tools/ocaml/libs/xs/paths.ml.in
rename to tools/ocaml/libs/xs/paths.ml.src
diff --git a/tools/ocaml/xenstored/Makefile b/tools/ocaml/xenstored/Makefile
index c333394a34..138537ee7a 100644
--- a/tools/ocaml/xenstored/Makefile
+++ b/tools/ocaml/xenstored/Makefile
@@ -72,6 +72,8 @@ XENSTOREDLIBS = \
 	-ccopt -L -ccopt $(OCAML_TOPLEVEL)/libs/xsd_glue $(OCAML_TOPLEVEL)/libs/xsd_glue/plugin_interface_v1.cmxa \
 	-ccopt -L -ccopt $(XEN_ROOT)/tools/libs/ctrl
 
+GEN_FILES := paths.ml oxenstored.conf
+
 PROGRAMS = oxenstored
 
 oxenstored_LIBS = $(XENSTOREDLIBS)
@@ -83,7 +85,7 @@ oxenstored_OBJS = $(oxenstored_MLSORTED:.ml=)
 
 OCAML_PROGRAM = oxenstored
 
-all: $(INTF) $(LIBS) $(PROGRAMS)
+all: $(GEN_FILES) $(INTF) $(LIBS) $(PROGRAMS)
 
 bins: $(PROGRAMS)
 
@@ -99,4 +101,7 @@ uninstall:
 	rm -f $(DESTDIR)$(XEN_CONFIG_DIR)/oxenstored.conf
 	rm -f $(DESTDIR)$(sbindir)/oxenstored
 
+distclean:
+	rm -rf $(GEN_FILES)
+
 include $(OCAML_TOPLEVEL)/Makefile.rules
diff --git a/tools/ocaml/xenstored/oxenstored.conf.in b/tools/ocaml/xenstored/oxenstored.conf.src
similarity index 100%
rename from tools/ocaml/xenstored/oxenstored.conf.in
rename to tools/ocaml/xenstored/oxenstored.conf.src
diff --git a/tools/ocaml/xenstored/paths.ml.in b/tools/ocaml/xenstored/paths.ml.src
similarity index 100%
rename from tools/ocaml/xenstored/paths.ml.in
rename to tools/ocaml/xenstored/paths.ml.src
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 11 17:03:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 17:03:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159168.1487543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIrmA-0002Bb-Jg; Tue, 11 Nov 2025 17:03:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159168.1487543; Tue, 11 Nov 2025 17: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 1vIrmA-0002BU-Fd; Tue, 11 Nov 2025 17:03:26 +0000
Received: by outflank-mailman (input) for mailman id 1159168;
 Tue, 11 Nov 2025 17:03: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=Xtop=5T=arm.com=ryan.roberts@srs-se1.protection.inumbo.net>)
 id 1vIrm9-0002BO-AB
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 17:03:25 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 53d33c9e-bf20-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 18:03: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 32480497;
 Tue, 11 Nov 2025 09:03:13 -0800 (PST)
Received: from [10.1.31.216] (XHFQ2J9959.cambridge.arm.com [10.1.31.216])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 106E43F5A1;
 Tue, 11 Nov 2025 09:03: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: 53d33c9e-bf20-11f0-9d18-b5c5bf9af7f9
Message-ID: <8f70692c-25a9-4bd0-94ab-43ab435e4b1b@arm.com>
Date: Tue, 11 Nov 2025 17:03:14 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/12] mm: enable lazy_mmu sections to nest
Content-Language: en-GB
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-8-kevin.brodsky@arm.com>
 <999feffa-5d1d-42e3-bd3a-d949f2a9de9d@arm.com>
 <cc9dc398-b9c5-4bb8-94ad-7e7f3ddd5b4f@arm.com>
 <824bf705-e9d6-4eeb-9532-9059fa56427f@arm.com>
 <58fd1a6e-f2c4-421c-9b95-dea4b244a515@arm.com>
From: Ryan Roberts <ryan.roberts@arm.com>
In-Reply-To: <58fd1a6e-f2c4-421c-9b95-dea4b244a515@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/11/2025 15:56, Kevin Brodsky wrote:
> On 11/11/2025 10:24, Ryan Roberts wrote:
>> [...]
>>
>>>>> +		state->active = true;
>>>>> +		arch_enter_lazy_mmu_mode();
>>>>> +	}
>>>>>  }
>>>>>  
>>>>>  static inline void lazy_mmu_mode_disable(void)
>>>>>  {
>>>>> -	arch_leave_lazy_mmu_mode();
>>>>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>>>>> +
>>>>> +	VM_WARN_ON_ONCE(state->nesting_level == 0);
>>>>> +	VM_WARN_ON(!state->active);
>>>>> +
>>>>> +	if (--state->nesting_level == 0) {
>>>>> +		state->active = false;
>>>>> +		arch_leave_lazy_mmu_mode();
>>>>> +	} else {
>>>>> +		/* Exiting a nested section */
>>>>> +		arch_flush_lazy_mmu_mode();
>>>>> +	}
>>>>>  }
>>>>>  
>>>>>  static inline void lazy_mmu_mode_pause(void)
>>>>>  {
>>>>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>>>>> +
>>>>> +	VM_WARN_ON(state->nesting_level == 0 || !state->active);
>>>> nit: do you need the first condition? I think when nesting_level==0, we expect
>>>> to be !active?
>>> I suppose this should never happen indeed - I was just being extra
>>> defensive.
>>>
>>> Either way David suggested allowing pause()/resume() to be called
>>> outside of any section so the next version will bail out on
>>> nesting_level == 0.
>> Ignoring my current opinion that we don't need pause/resume at all for now; Are
>> you suggesting that pause/resume will be completely independent of
>> enable/disable? I think that would be best. So enable/disable increment and
>> decrement the nesting_level counter regardless of whether we are paused.
>> nesting_level 0 => 1 enables if not paused. nesting_level 1 => 0 disables if not
>> paused. pause disables nesting_level >= 1, resume enables if nesting_level >= 1.
> 
> This is something else. Currently the rules are:
> 
> [A]
> 
> // pausing forbidden
> enable()
> Â  Â  pause()
> Â  Â  // pausing/enabling forbidden
> Â  Â  resume()
> disable()
> 
> David suggested allowing:
> 
> [B]
> 
> pause()
> // pausing/enabling forbidden
> resume()
> 
> Your suggestion is also allowing:
> 
> [C]
> 
> pause()
> Â  Â  // pausing forbidden
> Â  Â  enable()
> Â  Â  disable()
> resume()

I think the current kasan kasan_depopulate_vmalloc_pte() path will require [C]
if CONFIG_DEBUG_PAGEALLOC is enabled on arm64. It calls __free_page() while
paused. I guess CONFIG_DEBUG_PAGEALLOC will cause __free_page() ->
debug_pagealloc_unmap_pages() ->->-> update_range_prot() -> lazy_mmu_enable().

Arguably you could move the resume() to before the __free_page(). But it just
illustrates that it's all a bit brittle at the moment...

> 
>> Perhaps we also need nested pause/resume? Then you just end up with 2 counters;
>> enable_count and pause_count. Sorry if this has already been discussed.
> 
> And finally:
> 
> [D]
> 
> pause()
> Â  Â  pause()
> Â  Â  Â  Â  enable()
> Â  Â  Â  Â  disable()
> Â  Â  resume()
> resume()
> 
> I don't really mind either way, but I don't see an immediate use for [C]
> and [D] - the idea is that the paused section is short and controlled,
> not made up of arbitrary calls. 

If my thinking above is correct, then I've already demonstrated that this is not
the case. So I'd be inclined to go with [D] on the basis that it is the most robust.

Keeping 2 nesting counts (enable and pause) feels pretty elegant to me and gives
the fewest opportunities for surprises.

Thanks,
Ryan

> A potential downside of allowing [C] and
> [D] is that it makes it harder to detect unintended nesting (fewer
> VM_WARN assertions). Happy to implement it if this proves useful though.
> 
> OTOH the idea behind [B] is that it allows the caller of
> pause()/resume() not to care about whether lazy MMU is actually enabled
> or not - i.e. the kasan helpers would keep working even if
> apply_to_page_range() didn't use lazy MMU any more.
> 
>>>>> +
>>>>> +	state->active = false;
>>>>>  	arch_leave_lazy_mmu_mode();
>>>>>  }
>>>>>  
>>>>>  static inline void lazy_mmu_mode_resume(void)
>>>>>  {
>>>>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>>>>> +
>>>>> +	VM_WARN_ON(state->nesting_level == 0 || state->active);
>>>> Similar argument?
>>>>
>>>>> +
>>>>> +	state->active = true;
>>>>>  	arch_enter_lazy_mmu_mode();
>>>>>  }
>>>>>  #else
>>>>> diff --git a/include/linux/sched.h b/include/linux/sched.h
>>>>> index cbb7340c5866..11566d973f42 100644
>>>>> --- a/include/linux/sched.h
>>>>> +++ b/include/linux/sched.h
>>>>> @@ -1441,6 +1441,10 @@ struct task_struct {
>>>>>  
>>>>>  	struct page_frag		task_frag;
>>>>>  
>>>>> +#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>>>>> +	struct lazy_mmu_state		lazy_mmu_state;
>>>>> +#endif
>>>>> +
>>>>>  #ifdef CONFIG_TASK_DELAY_ACCT
>>>>>  	struct task_delay_info		*delays;
>>>>>  #endif
>>>>> @@ -1724,6 +1728,18 @@ static inline char task_state_to_char(struct task_struct *tsk)
>>>>>  	return task_index_to_char(task_state_index(tsk));
>>>>>  }
>>>>>  
>>>>> +#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
>>>>> +static inline bool in_lazy_mmu_mode(void)
>>>>> +{
>>>>> +	return current->lazy_mmu_state.active;
>>>>> +}
>>>>> +#else
>>>>> +static inline bool in_lazy_mmu_mode(void)
>>>>> +{
>>>>> +	return false;
>>>> Just pointing out that this isn't really a correct implementation:
>>>>
>>>> lazy_mmu_mode_enable()
>>>> ASSERT(in_lazy_mmu_mode()) << triggers for arches without lazy mmu
>>>> lazy_mmu_mode_disable()
>>>>
>>>> Although it probably doesn't matter in practice?
>>> I'd say that the expectation is invalid - lazy MMU mode can only be
>>> enabled if the architecture supports it. In fact as you pointed out
>>> above the API may be called in interrupt context but it will have no
>>> effect, so this sequence would always fail in interrupt context.
>> Yep, but previously there was no way to query the current state so it didn't
>> matter. Now you have a query API so it might matter if/when people come along
>> and use it in unexpected ways.
> 
> I suppose the best we can do is document it alongside those helpers
> (David has already suggested some documentation, see patch 11).
> 
>>> Worth nothing that in_lazy_mmu_mode() is only ever called from arch code
>>> where lazy MMU is implemented. I added the fallback as a matter of
>>> principle, but it isn't actually required.
>> Yes, I agree that's the intent. I'm just wondering if it's possible to enforce
>> that only arch code uses this. Perhaps add some docs to explain that it's only
>> intended for arches that implement lazy_mmu, and don't define it for arches that
>> don't, which would catch any generic users?
> 
> Yep sounds like the best option - a lot less risk of misuse if it can't
> be called from generic code :) The build would still succeed on arch's
> that implement it, but the kernel CI should catch such calls sooner or
> later.
> 
> - Kevin



From xen-devel-bounces@lists.xenproject.org Tue Nov 11 17:52:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 17:52:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159187.1487570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIsXP-000050-Dm; Tue, 11 Nov 2025 17:52:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159187.1487570; Tue, 11 Nov 2025 17: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 1vIsXP-00004s-Ab; Tue, 11 Nov 2025 17:52:15 +0000
Received: by outflank-mailman (input) for mailman id 1159187;
 Tue, 11 Nov 2025 17:52: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=KiuT=5T=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vIsXN-0008WS-JH
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 17:52:13 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 24282feb-bf27-11f0-980a-7dc792cee155;
 Tue, 11 Nov 2025 18:52:08 +0100 (CET)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by PAXPR03MB8249.eurprd03.prod.outlook.com
 (2603:10a6:102:24f::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Tue, 11 Nov
 2025 17:52:05 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%6]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 17:52: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: 24282feb-bf27-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zHnV3nqwauEKf1g00Fu5qHVt/n4CmIq3EJGkJ+Ri43dWWLh0fP4Ba5JjcRGw0QokoQHNWE1DC1WtWczjwEU5NRz3KgG75gvL1Aw+D8waKHhoG1N4nDWwEr6OUz63j2v8W6RkGKTbKRdZcrdHq0un4M+PL47VQp/0qqgLJL1X1iz1dm36+lDW+xR9wOpziPFNxH9d5hjT72Q0MQZBvMM5Q4PhSzV9gvHFvW17Muxckn9a9r5TubRIlGk46RCsPNmJ+P8IBOqBO9CmNr0asxoRmYnasMLytyV/Qt7k3kHBIQvsnvMh67LoxBaVP413ifNgrd1hx6BpzNQnN6JZ84rg9g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1aezGidGgtshjyPLhbIqrw5klDLEFqQlUAJ01YoMbnE=;
 b=lG+DzXuHChan2M10ryB3GsEU+7TEDvqpHOWGPy4XrDIuiS3GP9pCEOa2ItyCrzDc2UoGEZrd5VTT8bFXHH7UfWnid5pOTOpcsR3j/zEskPeLfjNk2wf4RV1I2++b4hKmV0JulftHmJUitEVXfYAnGLCVfnqrnjfWzjlK8LQ15rVfZuOFfUSGJIspnq0crFJnsUS54nBB/QgBxdEL4NELvCF47HbJjlp8lUDOGDPdDtcaYAea1vsyiSjswpbBQA68D58pOY0Fe5c1GYt6LJD8124z330kOSkp50uGt+X7iEQVrBIrFo5HiVp3ykLwOHXJxWDdbJUPs3RclgRTykRSfQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1aezGidGgtshjyPLhbIqrw5klDLEFqQlUAJ01YoMbnE=;
 b=C/mO/VPWMP/6Xedutr5Ads5rCAtNTFXtdsEw63yl/hwlW4THCTSnPW3OFhVK3U3Cg7i01+hFMlOoKo7MHfZGV6Ccs0kmnBPVeHsZwYx8/MafFiWjE38b512/iyC4CGnbFsRkFJ51aN4FI6Z3tYH7VKfwwJCa88M65tdVheVbJUuaBw7+nHShRby/80HgNJTSaO6HFNO3tuEdjZBiusTNJl9FjyeLV/l4UQrA7Xo1+VuI21ihIDuUi/t7G2Hsm3kDGTTZSyjZjX6qjmPVOlJyFy/Oh9P1qfmtAZxf+7yI4bdc7Ed7TxNL2Y07rv0PRyoaQ6oRU5C/lZlb84rgezYyEQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <f0a5a939-7d66-417d-8a88-34cc172623e6@epam.com>
Date: Tue, 11 Nov 2025 19:52:03 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v3] xen/x86: guest_access: optimize raw_x_guest() for
 PV and HVM combinations
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Lira, Victor M" <victlira@amd.com>
References: <20251107181739.3034098-1-grygorii_strashko@epam.com>
 <47f86a44-007f-4b90-9656-b2440238b2ba@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <47f86a44-007f-4b90-9656-b2440238b2ba@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR2P281CA0181.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:9f::17) To DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DB3PR0302MB8919:EE_|PAXPR03MB8249:EE_
X-MS-Office365-Filtering-Correlation-Id: 59309015-fd79-446c-8fcf-08de214b06a5
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?dElseXJ3d0YyYVJHQkpFckF4L1VTKy91UGJZSUJUcmNqS2RuS1FzR0dYblBi?=
 =?utf-8?B?TnArTkFZbzcyL2ZJczNtYlNEWEZ6c0JHWS8vMWZUNUlkK0xGL2MxRlMzM3ZS?=
 =?utf-8?B?Ykhkd1J1Q0RFcVAwZlJzdFZWdVR0R0Z3MnpYd1p5dURheXVHbTlYaVVCSDJ5?=
 =?utf-8?B?ZmNpWEVXb2laMy96Z0xRbU9ZeUNvR2MxcDJzSnUrTUpsbHpsN05rREVDSERJ?=
 =?utf-8?B?Q3RsSGllZnNlQTU2UktoTXhZZ3o0Q3BrM29yMlBLVnRFajIrYVBNOHJkR1FY?=
 =?utf-8?B?dkJvcTRKOWVUU0t6SC9Ec1hGa1RLbGpHdyswRzVabzFvOXJPT2E3aUVYSjh4?=
 =?utf-8?B?MXFOMStOSjh0NDhzUDJLbFJraTcvQjkxZ2hQTUdXeXo3clRoUzVOSzJTTjJ2?=
 =?utf-8?B?UmcvYkVCVlZKUklXc2xUejVRN0xxdjdIVDBUQ0RoekRHankyMSt2OURiMENQ?=
 =?utf-8?B?b1phd3dOTFVmUzkrMHJqQ0p6S1pJNjcyaFVad2VuZWtaTEl1NVNaL2JKVmtF?=
 =?utf-8?B?ajU3M1VsR3ROc2ZHNVpCK2l4eVFBTmVMcEZ3S01kVHh0SDBYdDZQSUJYUlpU?=
 =?utf-8?B?Vm1tZVBLcDN2Z2VTMVdFT1k4TGpIdTYwRGhHQU5LM2loaDl6KzBXN0pKOWRP?=
 =?utf-8?B?dzE1Rk1xV0JpamJVQjE2WUFVQlFiWDk0OWd3dzlWc2lwTmp2eUtFSXFiTmtz?=
 =?utf-8?B?czlPNDlSTnBSaDhzTzFjUHl4VDV5L2cwRU5Cay8xMW9sK25GcVNEZTNhZWRH?=
 =?utf-8?B?V1JxNjFUOGI2c2NWNVVqZHVDa081aTJSSStlQVdSV2M2M3cybXY5bGpyT011?=
 =?utf-8?B?WHJwaEZQejZjSVJyc2pqeEZXbjdPM3NIRG1sY3NGN3Z0eDY1WTk1R04wTEN6?=
 =?utf-8?B?Y3FRMnB1OVh5SDhOdVhQYy92OUg3ZFNONGxYYi9wakc5RVRpbHluNDJEVDNM?=
 =?utf-8?B?UytneGxpaHZjVGJHRDdESjdkU1JRSGxXQmd6VUlVcllJNEZHdE5HdEd0WElQ?=
 =?utf-8?B?MUlvaHZ6a0M2Z0hSQjJndWY0bVJIQ2RkYWtkSFNlVXJ1eXVhY25JZGpPam1N?=
 =?utf-8?B?RWorSkxTZVBFWkFQYUZuemtzVTl1aFJoRE1TRHFQVGlGY3h6Y3NOWUdheVFU?=
 =?utf-8?B?MWwyZm5rdVNIRHJoR1RNeGdTVS9OUnBGU1pkN0F0SXRPL2FiVWRsOTZtUTZ0?=
 =?utf-8?B?YVNMQlJxSFYvalJiMzAvTVlxV25JdE1jWG1zeEI1UU1QRUEwbExRK0I4dG9n?=
 =?utf-8?B?SHRCWkQ1eHdMb3NLRzlXakhGaVYrTkY3YnhMU2kybEtIREg4Qmd5QkYzOFlj?=
 =?utf-8?B?L2x5WCt0ZUk4YkFVb0k2Y0JVZExMaDduTllZd0lVaDdMMC9GdVZ5SmR4eUFS?=
 =?utf-8?B?RzEwYUJVZk15MVEwVnkvdlhlbXNFdlpkSjJUNHdRaHBIS2lKNWdJUXhEc3cz?=
 =?utf-8?B?bHRBTHdkYzJYd2h3blk4MDdRSU5qS3l0S0x6ZkNMc0FiV1pnVThXc2Y4RTZD?=
 =?utf-8?B?cHV3ajhVOUJYdVRIdUtlQU16MEZ2TG5vSDhzK05wUWFjS0tveDE2dlZ1aXU3?=
 =?utf-8?B?S0piVHozNFZQNzhOMjhuWW92MHR3SjBnNHdHUTNuM0E3bGVsN1hPdDRDd1d1?=
 =?utf-8?B?V015WTNuYlRKTFVrM3pVVzRDUUpCbkhaa0hiRUtWV0c3NXZzczN0MHlucllt?=
 =?utf-8?B?d2lxOHoxbnV5YUV2bDlwdXlyRFFPZkE0QWMrazk5dlNSRmpKSVJSL0F2OFRS?=
 =?utf-8?B?TlZ2b2xMM3BydjZZZTh3T2w5ZEQ0SE1CYXpSNTlyc1h6QktMTzdKY1JOeGhm?=
 =?utf-8?B?TmpZQmo0K2xkVTdRcWkwZ1Z2M05uYmtSVFJEMTVISGhMdTUxbU43L1diYWVT?=
 =?utf-8?B?cDdlOXRmNmtBWHRMUVZJdnE5N0FzNWRabExyaURLY0dmNWJiTDI0ajE5czVo?=
 =?utf-8?Q?kPkDynvJNGfyexrKB+ejf+VBMstEnqeM?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MzRHdjFmRElrbkFyYkcrdTJhL3g3Y08wVlZzbXV6dmZyOXJrbnVUUEZRQjRW?=
 =?utf-8?B?bGxER3FkK1A3UWJBbkhPRm9LeitmOC9ONk1kSVk2eXlKSkRTZGhxaUR6enZ6?=
 =?utf-8?B?Y2pxQjNOZWxUNjBNUmlWcGRYQVowMmJQRTZ0SjduZ0MwekUwQ2MyWEVJTCtl?=
 =?utf-8?B?OUc3MGc1dys2ckhlekluU2RPZTdRbFN4WWc0aWx6L1dMQ3VvWmUrN3lsRUFt?=
 =?utf-8?B?STd3dUEyQTFmZFNZSGJCKzV1L2ZiT1ZGbG5Ecm9mRE9TQTA3dzRFYTVUT1Vo?=
 =?utf-8?B?aWs1NlM4TDU0ZGFzVnRudm1WeHQxWHIwOGRpWXVoSEZUd0I3TzRPZ29DdTRK?=
 =?utf-8?B?cmM0UWR1M005U3Q3NWdlblU4M0FPTlpGZFNkYUZmckZiOWRlbGoxWmgxOTJ2?=
 =?utf-8?B?cFFpVE1wSWFjdUNyWW5uNXp6LzZJYVZJTk14d0R1RlJMbGsvditHTmtTOUhs?=
 =?utf-8?B?cnNHTVNFKy95RkMrWWo3K1RreUMvTS8rbjE3Y0pheDFoNGtUdTVvYmxYNjFp?=
 =?utf-8?B?Q203ZUtHRkppeENnV2Z1NU9za2taSFlMbWs0YU1BT29rR2djMlRrYklaOUpZ?=
 =?utf-8?B?dGR3Q05xTDQxVUNheFBoK1FvWWtWdzRYUXhnN05SUEJjeDJWblcxVlk0QjBT?=
 =?utf-8?B?V3Y4d1ZqaFhEeUg2ZEdPNUV5K055K09QMkpKamR5bk05bWlzNmlHZ29JcGhD?=
 =?utf-8?B?eUNvczIvNUxkZm5aSkZUMWJWa0VROWtYWldDWDBjR3hnVHdYOHI2V3BGUnY5?=
 =?utf-8?B?Z2tkK1dFK0hodUpOaWx2NFFvOTBnQ1BIdnF3dGlvenFWYTBIbW8xN3VjRTVu?=
 =?utf-8?B?R3VKOFdMdDJCZHB1V3ovWDUyQytRYWFaUzZQalJvejRHQndseDRGejVjY1Az?=
 =?utf-8?B?TTNPRk1lR2xXbkh2dU9PMXlaMVgyRDNWamF2WDRZanVRQ1hGVTBvTXF0N3BB?=
 =?utf-8?B?ZldmcTFodU1SKzcxRU92T0hvRUE4eERHRXljeEtHd3RYcTlHcTFMdnBYNG91?=
 =?utf-8?B?Z25nWVpvMEpjcnpSVEMrUVczbnRTZzBCdi8rZjc4TDZrdllCOHVzSTVpcDZK?=
 =?utf-8?B?NlMzeHZnWlMxWXBQdzJSMHo2elArcHJqU3liRTJtMWZjSFdYRXllNDZDWWsy?=
 =?utf-8?B?ZFFmcTczQ3gvbnVsWkJpZ1g3cEhBVk15dGdwbTExSFFqV0FGU3ZNK3hkU3p1?=
 =?utf-8?B?NlFORi9tVFVLSWpzeG5xekRUOHNTRE5ESXY5REZYYnVuTzZidzVmK2xXOXIv?=
 =?utf-8?B?QnZnMVpFay9RaG1PUDhQbE5zSUhTbTFBZDJBYmFpVkI5ZVZib3c2MnRCMzRQ?=
 =?utf-8?B?RFU4d2JWZEQ5OGtOM2thT0Irdk5UL2xsQ01PQjJBNnQ4QTBrN3lUbi9GRHhF?=
 =?utf-8?B?MkljTktZYkV0MjZ2dlIxblc0bmRsL2ZMaHFIQ0cvTFl4dVhUVFBONXVROG1H?=
 =?utf-8?B?MGIzN2ovdmVvUlliS0xjS0wzeHd3NHQ1d0k4YUxiRHlXUU1aTHBpMTh2MjNq?=
 =?utf-8?B?VDNmWFdVc0VITXV1MGVvVUl1cGtGbkpqWlJGYTZoajNERHpBc3RUUEJmbGlO?=
 =?utf-8?B?RUdKN3NrTmxRNHdGYUgwS1lsbjVrUWM0bGhGNGRkWjE4VFprOUd5OEx3bTNZ?=
 =?utf-8?B?a1lhMzJPYUFMaG9OZER6Ykh1eUp0Q0dWVEVBKzBnak51cTVPZ0o5amhJUXRq?=
 =?utf-8?B?STJITzBNd1g3c3AzenZVZHhWZ3U1c0VodmcvdzR3WnVQUmJJRXZROWRmNjlu?=
 =?utf-8?B?VmtsMXRVRXBGOUlWL2lJUEQ5QVdYQmloMVBlTFEwN0xMSE9Zc0d2c29FK3FY?=
 =?utf-8?B?eVdkWEM2aXBQTXY2dDlWbHNzQ2xLd0lCYytEZUs0NEpoRVpQaHlwM3l4SE9x?=
 =?utf-8?B?K0EyWTh2Zk96OEVTQjRBV3l4UnVlWE1OaERGMGdOeGNlMExvMlhSYnpSV1U1?=
 =?utf-8?B?S2QrSjh3T0hWcEZiMEZXc1lZb0hzWGNML0pXeitEK013S3ljV2ZRMnJTOU0z?=
 =?utf-8?B?eUVUQlVHVDAxUTlENDcwOWVKOVVJUE1heWtYZWs0cjQ2T3JVc3ZyNDZid082?=
 =?utf-8?B?dWVTK2VmM0c3NHAvUWZOL2k3QlRHMDJyRHhHMThwNXAwdXB5TnQ3YmZNMWpp?=
 =?utf-8?B?eEorRUtxc2FxbDN0OUEwZ3UwZklDK3JhbEh6Ry80TXdXTzl3a0plUGkrYzN6?=
 =?utf-8?B?Q3c9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 59309015-fd79-446c-8fcf-08de214b06a5
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2025 17:52:05.4235
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: dG/jny7xlJblAtw/EArO5LnyehTRIqQ2/WWZbH+omP8iOnB/mU1s+/nzVanTmyXMuXB3By5qdwBN3mMxqaSN99HgxkigKjrTh2ic8Sdrlsg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB8249



On 10.11.25 09:11, Jan Beulich wrote:
> On 07.11.2025 19:17, Grygorii Strashko wrote:
>> --- a/xen/arch/x86/Makefile
>> +++ b/xen/arch/x86/Makefile
>> @@ -71,7 +71,7 @@ obj-y += time.o
>>   obj-y += traps-setup.o
>>   obj-y += traps.o
>>   obj-$(CONFIG_INTEL) += tsx.o
>> -obj-y += usercopy.o
>> +obj-$(CONFIG_PV) += usercopy.o
> 
> Imo, if this was indeed doable (see below) the file would rather want moving
> to pv/.

I've tried it :( But at that time it has failed for me because of macro magic which uses
"# include __FILE__".

Now I see that additional Makefile line:

# Allows usercopy.c to include itself
$(obj)/usercopy.o: CFLAGS-y += -iquote .

need to be moved also.

> 
>> --- a/xen/arch/x86/include/asm/guest_access.h
>> +++ b/xen/arch/x86/include/asm/guest_access.h
>> @@ -13,26 +13,64 @@
>>   #include <asm/hvm/guest_access.h>
>>   
>>   /* Raw access functions: no type checking. */
>> -#define raw_copy_to_guest(dst, src, len)        \
>> -    (is_hvm_vcpu(current) ?                     \
>> -     copy_to_user_hvm((dst), (src), (len)) :    \
>> -     copy_to_guest_pv(dst, src, len))
>> -#define raw_copy_from_guest(dst, src, len)      \
>> -    (is_hvm_vcpu(current) ?                     \
>> -     copy_from_user_hvm((dst), (src), (len)) :  \
>> -     copy_from_guest_pv(dst, src, len))
>> -#define raw_clear_guest(dst,  len)              \
>> -    (is_hvm_vcpu(current) ?                     \
>> -     clear_user_hvm((dst), (len)) :             \
>> -     clear_guest_pv(dst, len))
>> -#define __raw_copy_to_guest(dst, src, len)      \
>> -    (is_hvm_vcpu(current) ?                     \
>> -     copy_to_user_hvm((dst), (src), (len)) :    \
>> -     __copy_to_guest_pv(dst, src, len))
>> -#define __raw_copy_from_guest(dst, src, len)    \
>> -    (is_hvm_vcpu(current) ?                     \
>> -     copy_from_user_hvm((dst), (src), (len)) :  \
>> -     __copy_from_guest_pv(dst, src, len))
>> +static inline bool raw_use_hvm_access(const struct vcpu *v)
>> +{
>> +    return IS_ENABLED(CONFIG_HVM) && (!IS_ENABLED(CONFIG_PV) || is_hvm_vcpu(v));
>> +}
> 
> Without a full audit (likely tedious and error prone) this still is a
> behavioral change for some (likely unintended) use against a system domain
> (likely the idle one): With HVM=y PV=n we'd suddenly use the HVM accessor
> there. IOW imo the "system domains are implicitly PV" aspect wants
> retaining, even if only "just in case". It's okay not to invoke the PV
> accessor (but return "len" instead), but it's not okay to invoke the HVM
> one.
> 

This patch is subset of "constify is_hvm_domain() for PV=n case" attempts.

It was made under assumption that:
"System domains do not have Guests running, so can't initiate hypecalls and
  can not be users of copy_to/from_user() routines. There are no Guest and no user memory".
[IDLE, COW, IO, XEN]

If above assumption is correct - this patch was assumed safe.

if not - it all make no sense, probably.
  

>> +static inline unsigned int raw_copy_to_guest(void *dst, const void *src,
>> +                                             unsigned int len)
>> +{
>> +    if ( raw_use_hvm_access(current) )
>> +        return copy_to_user_hvm(dst, src, len);
>> +    else if ( IS_ENABLED(CONFIG_PV) )
>> +        return copy_to_guest_pv(dst, src, len);
>> +    else
>> +        return len;
>> +}
>> +
>> +static inline unsigned int raw_copy_from_guest(void *dst, const void *src,
>> +                                               unsigned int len)
>> +{
>> +    if ( raw_use_hvm_access(current) )
>> +        return copy_from_user_hvm(dst, src, len);
>> +    else if ( IS_ENABLED(CONFIG_PV) )
>> +        return copy_from_guest_pv(dst, src, len);
>> +    else
>> +        return len;
>> +}
>> +
>> +static inline unsigned int raw_clear_guest(void *dst, unsigned int len)
>> +{
>> +    if ( raw_use_hvm_access(current) )
>> +        return clear_user_hvm(dst, len);
>> +    else if ( IS_ENABLED(CONFIG_PV) )
>> +        return clear_guest_pv(dst, len);
>> +    else
>> +        return len;
>> +}
>> +
>> +static inline unsigned int __raw_copy_to_guest(void *dst, const void *src,
>> +                                               unsigned int len)
>> +{
>> +    if ( raw_use_hvm_access(current) )
>> +        return copy_to_user_hvm(dst, src, len);
>> +    else if ( IS_ENABLED(CONFIG_PV) )
>> +        return __copy_to_guest_pv(dst, src, len);
>> +    else
>> +        return len;
>> +}
>> +
>> +static inline unsigned int __raw_copy_from_guest(void *dst, const void *src,
>> +                                                 unsigned int len)
>> +{
>> +    if ( raw_use_hvm_access(current) )
>> +        return copy_from_user_hvm(dst, src, len);
>> +    else if ( IS_ENABLED(CONFIG_PV) )
>> +        return __copy_from_guest_pv(dst, src, len);
>> +    else
>> +        return len;
>> +}
> 
> I have to admit that I'm not quite happy about the redundancy here (leaving
> aside the imo Misra-conflicting uses of "else"). It looks as if some macro-
> ization could still help. Not sure what others think, though.



Just an observation note:
  From my recent experience I see that macro-magic makes Coverage report (gcov)
to provide not exactly correct results in terms of code lines coverage at least :(
For example, for usercopy.o: 7 functions reported, but lines coverage is accounted
only till '# undef GUARD".


-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Nov 11 17:54:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 17:54:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159198.1487579 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIsZR-0000cG-Nh; Tue, 11 Nov 2025 17:54:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159198.1487579; Tue, 11 Nov 2025 17:54:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIsZR-0000c9-L0; Tue, 11 Nov 2025 17:54:21 +0000
Received: by outflank-mailman (input) for mailman id 1159198;
 Tue, 11 Nov 2025 17:54:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KiuT=5T=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vIsZQ-0000bw-CB
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 17:54:20 +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 72416e1f-bf27-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 18:54:19 +0100 (CET)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by PAXPR03MB8249.eurprd03.prod.outlook.com
 (2603:10a6:102:24f::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Tue, 11 Nov
 2025 17:54:16 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%6]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 17: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: 72416e1f-bf27-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=O+7nLabN2fiZ4MYB244mEZoMckMO83NAPHMpWfbW17ztClvcNR67kuudt599TZlbCLuWBlJmHLzLuIyeaDl7LxKugUmjZh5DXfVG826wAnePs40JjVARw+mu5lH5eM7ojbk8J92P5WM/Zt4gCNY4jdTvEakd8Kb0w+5CAhOlF+xktSH+tK1pcYEL4cg/2ymUKR4Ibdxh5fns8IM/lUdDaF344VJ18OQwQLY8VlTFfFZ8FP7NLBzz3z936CHqitcO6r4ETKbSHMlmIdF13sH4zxBD63p+rAxUGBAwGycFOcxt3FNXfrcaMlnpjogim2/vfl8PIQfle1JXek5wJ3bFdA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WStR14FRN9SDUmcVSXUNThnh8CjpvL+KrKqdZ8Ikji0=;
 b=UPxO0AcGjwUXFxKkGaePJsPNih1QwGwIoWPEfQlisItJELHp6fKKHgu1fwuOy8Fmb6dvriiGmFPrkOeZGtPjWRrqRx+qbpkQS9DKmaLKeCFkCPk24lzAHN3SlKzV30tqVaaqyIHv3/1XeYYQ1YfHBV7UN1x9+lGkRA50Fue6TmchMLQdwtlH9io+FPvu7ZD/2ztx0qVVVgjHNq6bHARPh2YC9VgLRoKCEkh8imzzwbzmg0Gar+7Zp2wyLEBE/UH79DaNaYLqKXgU6S40R8Gsm1rqr9qZafuP6VXKHolVVR/xM9VXIeVvrd02RW9TsiFS65Zt9lOgubqabCDh27pSdw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WStR14FRN9SDUmcVSXUNThnh8CjpvL+KrKqdZ8Ikji0=;
 b=KlX2kLDLm5tkcUz43s99T7wwgtOOwbgMvNpZKCoVfTy9X2LFxuMYPksBFsFj4apkP6C/dIjjMDnP+y2fcyAkebp06qNDYrV5olw2jx7XkNUfCRXDtQ9uH8sUpFekmQQ4AOBjHpp5uBHADqCeGT+PevGh2gjTUat83uBz5ZapunwW3IZVa8XDSas6zNaN8oWCkhW7nOC56RDMeK3bWh7YYFvw1VGzhGdXgxiCSgQUKXkWWDZLnEuEN+BnLYB62B9V76rVosju77opWASL4Fd5CHMGpeIRWJ4A/4inRd98rgrRh+3B65SHTfL6HeRdXLg+Cul9eUnmQGNdCbsk/sywbg==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [XEN][PATCH 0/5] x86: pvh: allow to disable 32-bit (COMPAT) interface
 support
Thread-Topic: [XEN][PATCH 0/5] x86: pvh: allow to disable 32-bit (COMPAT)
 interface support
Thread-Index: AQHcUzQyJNTOWnI1O026JOH0FraEjA==
Date: Tue, 11 Nov 2025 17:54:16 +0000
Message-ID: <20251111175413.3540690-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB3PR0302MB8919:EE_|PAXPR03MB8249:EE_
x-ms-office365-filtering-correlation-id: 5b2d6f69-9d40-4c60-345b-08de214b54d7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|7416014|376014|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?LeuOb4ruWkWZt289SgXiGIdTFPm48oIVH4nnCCwRqJrQu/GOp8pYs7gkIL?=
 =?iso-8859-1?Q?CiWb/g5Qjhd0qJb9mkTg8XUqzmdEh/HsgXba0UO//yhGlmeDa6zit+HmoB?=
 =?iso-8859-1?Q?JNj+GMfY2Bte8rimEkFya3LcXvEjveZOgsS2J+dMfAgpaG216PnxWbdbz7?=
 =?iso-8859-1?Q?aKOx560PVfqDte0hS+o16/bcXpQX8jfJOd9jpETj2tLpw+TLiPP30UYvSA?=
 =?iso-8859-1?Q?Hb/JhBUJorbn1DJHgve0uDUEMaEQxAhB5bVwJ2AvysPJjmj83KsAhInxTp?=
 =?iso-8859-1?Q?n0GU0H229AVdRQZXeWpV8FsVQaEpY/y50ix3Y2PDvNXx4oOWpU0P39poIG?=
 =?iso-8859-1?Q?JV8dg9qkaxv8QX9FB08UvkDBTO7qdkf6Af2IxuNMEoJBX0NYvQL6e2FBR/?=
 =?iso-8859-1?Q?64Qj8wrdJjCbGXebuRRYyEMPTA74ovmFbvbgguhkCy9drZ/LVXEPv0KHKT?=
 =?iso-8859-1?Q?UR0U46Wg4wPLrXtnGmS/E+eqqC3hj4r3pVsTme/WQf4f3G677PNBa/RM4s?=
 =?iso-8859-1?Q?0EaIxd7hlF+MAT0D8eZkWpDSWZD6cBAAbJEM2vwFw6HbnJXApfoiExmC6c?=
 =?iso-8859-1?Q?2yU20ttvO8u34KQC2ObJmGu6khMNlyKk6zQ4m/Kj21Sw0sTfUa/UWGUCD6?=
 =?iso-8859-1?Q?lgaXMAU5NKdshAbXvRfpGWmhjXPP0s7gBaaY/5h7IDYh4bzHkY31BqyHsx?=
 =?iso-8859-1?Q?b5vchnAG9Hb4PW+AKcjFCuxpQdTryegi6V+o6WeVM3oKBPxOND3g4AVdwx?=
 =?iso-8859-1?Q?zevLmgxWsfmnuW/OGSUdardTlCTHpEcn7iogkA8DRdxTOxf2IZwtOP3VVO?=
 =?iso-8859-1?Q?BFDTI0nc2y1ACEhr6t+09vw9R4yw4MLBSWT/TDzjbCn98ydCMZoi8zECO6?=
 =?iso-8859-1?Q?ca/9xQ2GMPQNBKfbqu+YHEBI9QT7BYQEGsOrihSRcjDE9/UkPF2G67md2H?=
 =?iso-8859-1?Q?9VdnKA9Ukl3wLx95eLCFad9QWt9g4o3wTkPtP17clrQvD/x9U+zTRwc4u7?=
 =?iso-8859-1?Q?Kkcu9ltNSsCO5FJne4mphjYeE1HUGiLZcgqpvNWoNddO1vtidJKQoV+g4c?=
 =?iso-8859-1?Q?YM0IC1iczOjLugmqPXh/Q/GgJZOhR4sq3MbUA1xArhZNDvP/njGQTAKuYM?=
 =?iso-8859-1?Q?qoY3JG0MCRGEj5F5nT5leOnvm1hzs9HVYLG9125utrBPIUAtGwGo1IWc+9?=
 =?iso-8859-1?Q?CnwIUt9NkAkxyJ4s9Df30/5pQcRry6Po4/tqZyBdz5dMNUXil8IX1cMIJB?=
 =?iso-8859-1?Q?2TPkQnnwoDK3vcWK7lItxKLmWoYIuJ7j2vzcEGe7rlMZYQuM3Qo5vsol26?=
 =?iso-8859-1?Q?4CTCDuBhka8CfCwh4LpxkouS/BfXi12LbDN3nsxkGd5t6jYbJWNHPV9xYN?=
 =?iso-8859-1?Q?hIC8kJkPHLtkZAFzlfnGG6j85EKwXk/X7sJXDz5ia8cuWFEEfc5BVx0Wfr?=
 =?iso-8859-1?Q?q9tdgdB2axegwlbjWM6mxpCauezHXvN8r9qxBOQVEOSR9EGHuyqf4pbRY/?=
 =?iso-8859-1?Q?1j0X7uvufDz8F2dIOa+NdsyTTHMbrGue2umdLGbfCW92GhCNekbHR5VtwH?=
 =?iso-8859-1?Q?XtL/hC0Vn/52ooj2h5E7jsddBVGi?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?MYUZDUqg+8m0OHqwtmsQktGRhaYFXw9DlhCkAynPJMoaRisrbFEzTdzUTd?=
 =?iso-8859-1?Q?1kwHZdvoGUl5MUZlm3PI6v+m7e1HhrehATd91G/IGUDlwJyYHTq3/TNlVk?=
 =?iso-8859-1?Q?kD7VGWxEvoT7Crdb2SEq6xquVePSYZiKeGVCVB+ESh2X56dy4xaGiPvvi7?=
 =?iso-8859-1?Q?cmyXdSmTtWP6lKgiMA5zcwoxVwFZ20YoIAKefOfws9fS7Bg4ANzQYujaes?=
 =?iso-8859-1?Q?ogorM6T18xn4EXQK4YOxEqV3Eo4CXEdeBXS/2LteDGmaUdGFQ1z4Sx4I8P?=
 =?iso-8859-1?Q?ezrjgGF4Zezdf44LIboKeXFaYVilgCBEDlFp9njLYMBKdEyeWhmGxKX5O8?=
 =?iso-8859-1?Q?b8+hafTU7un4ePQOUubvXOcd3mtfgiDoJihWse+9yir8X8F1mtSjeD/BEk?=
 =?iso-8859-1?Q?I+Fou+kqawMxQfF6Jge9usH8VJ/u7hE3Mz6qY8ZLyYoCiUdyD26SJVd49p?=
 =?iso-8859-1?Q?2q8iCH7dJF9Im0O0z7vpTJ/jKidVJfUScE5U1KLKJpS/91eCYD0Z9ZNhY2?=
 =?iso-8859-1?Q?ArZ7dXDpngXUR/YMeEk3ny1+Dmu4JJzO2DB1YH6mqnn6TC+/0rutbuwgaH?=
 =?iso-8859-1?Q?SF7UuwoK0qyJrqbeShchTqR9/V1MbSud+Eu81D3Ipnoo3qr5x1UjzERgoh?=
 =?iso-8859-1?Q?yzFX29XVGGU/FSnSqjXY4aGexyXIDqkByNnVoFwboOitt+ApbvyZr0Fvjx?=
 =?iso-8859-1?Q?wZkPJdUAE2QrjPorhhj97GMi6vpwQIbDTMHAKV0lGw/l3bQxbRRrTybYfE?=
 =?iso-8859-1?Q?PHhHKjaeDQtIxl1FsSnMLkfidg0mkMsGqyChzGA0bQ5hlEvWk2wHq+MEf3?=
 =?iso-8859-1?Q?VIQIFeMn8eag7R59+fxd/xh9gaNuzCe+HjTUuVxDWNQ0vcI4u5SasV7eXw?=
 =?iso-8859-1?Q?GJas+StHHGh3dAnACUmcoEYYq4bw4rSM2a8kc3nWuzs+3VSS2quacguwBy?=
 =?iso-8859-1?Q?cC1/MhxZsOA7+g+E1YT/kuGmzTJRNXCrGyOzvFNzKy/dw/UFZCXPtNjz8d?=
 =?iso-8859-1?Q?Pedt1/V0DSH8MYS4z7FoYWTz0x9AMngYV5CcsQ5c3yfRqufWCjHC1zmfb9?=
 =?iso-8859-1?Q?PZ2dccTFGiEc3GunrBfE007lWUVOyQ7nWlCwu2gszhDGCk9AKKTympVL3z?=
 =?iso-8859-1?Q?lV8SPeUrgJShKucpfBxcc8P0Y4aFc9qsWkBQo89obLtP1xFOyXXYR3CjtQ?=
 =?iso-8859-1?Q?kQbMNaIKPaRXDII9H4ET6k4a7Vzg3ij6OYPWhD6P7JfF9s4fGa4s9y0n74?=
 =?iso-8859-1?Q?+cbnZChWLWeMvnv+IqlerYejoPe3dB3tiRicMN99o2sthgNnEezPpPkVnk?=
 =?iso-8859-1?Q?jFeSwnZPM18ft9zWisd2/ZUONfnFBN0xcs2SDFOFywFi+5cXQw9QmNVZpd?=
 =?iso-8859-1?Q?a1BrmbZMyTECHksV6ImJFBFZtvNvd5qnxpwrhrPaT5eRhHC2k+QlWHeN8u?=
 =?iso-8859-1?Q?79YsyZlcLlpX8B9GGqkEadZ2QPonGTse//ilwWorbHZYEnhuCdXfNBVhhC?=
 =?iso-8859-1?Q?ZQipDVS4oqp2hH4IS+AJz7vBhQFl+8BV5joTSsQ2VcLQXIVKI12//qnEnU?=
 =?iso-8859-1?Q?V0FEAudXrB011GQUY8/1HK2iLIonsgVZHqZyLXZTDLGiUPTqJNmMcOVGG4?=
 =?iso-8859-1?Q?QAWPclACAbYhsOC4OvK0Ai5cVUKUFd9I8FdKFvyc9Pm61daFKQ0Me/kA?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5b2d6f69-9d40-4c60-345b-08de214b54d7
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2025 17:54:16.2776
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: kmFArKMHdPcCIijJDrs3POEUmQeC6mJRbUYHbgJv9XMTc7Fn8qThmiPi+nk8PsqVmXOoakpwes0hIFhRq0GhaqMXlzoUvsu8pqmBnEh/Xf8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB8249

From: Grygorii Strashko <grygorii_strashko@epam.com>

Hi

This series introduces possibility to disable 32-bit (COMPAT) interface sup=
port
in the following cases:
      - Only PVH domains are used
      - Guests (OS) are started by using direct Direct Kernel Boot
      - Guests (OS) are 64-bit and Guest early boot code, which is running =
not
        in 64-bit mode, does not access Xen interfaces
        (hypercalls, shared_info, ..)

If above criterias are met the COMPAT HVM interface become unreachable and =
can be disabled.
Coverage reports analyze and adding guard (debug) exceptions in hvm_hyperca=
ll/hvm_do_multicall_call
and hvm_latch_shinfo_size() confirm that COMPAT HVM interface is unused for=
 safety use-case.

Grygorii Strashko (5):
  x86: hvm: dm: factor out compat code under ifdefs
  x86: hvm: compat: introduce vcpu_is_hcall_compat() helper
  x86: hvm: factor out compat code under ifdefs
  x86: pvh: allow to disable 32-bit interface support
  x86: constify has_32bit_shinfo() if !CONFIG_COMPAT

 xen/arch/x86/hvm/Kconfig          | 19 +++++++++++++++-
 xen/arch/x86/hvm/dm.c             |  2 ++
 xen/arch/x86/hvm/hvm.c            | 22 +++++++++++++-----
 xen/arch/x86/hvm/hypercall.c      | 37 +++++++++++++++++++++++--------
 xen/arch/x86/hypercall.c          |  6 +----
 xen/arch/x86/include/asm/domain.h |  3 ++-
 xen/common/kernel.c               |  2 +-
 xen/include/xen/sched.h           |  9 ++++++++
 8 files changed, 78 insertions(+), 22 deletions(-)

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 17:54:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 17:54:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159199.1487590 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIsZS-0000qD-Ub; Tue, 11 Nov 2025 17:54:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159199.1487590; Tue, 11 Nov 2025 17:54:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIsZS-0000pz-Rc; Tue, 11 Nov 2025 17:54:22 +0000
Received: by outflank-mailman (input) for mailman id 1159199;
 Tue, 11 Nov 2025 17: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=KiuT=5T=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vIsZR-0000bw-1j
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 17:54:21 +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 72cf042c-bf27-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 18:54:20 +0100 (CET)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by PAXPR03MB8249.eurprd03.prod.outlook.com
 (2603:10a6:102:24f::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Tue, 11 Nov
 2025 17:54:17 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%6]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 17: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: 72cf042c-bf27-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xHhEwRrhOcnYNZO7yUFauQxVDiyfQGA+yT0cQwAYLaE9DIXULWqt3lH8UVpZfIe3ASs36KpjVVDWjtlZ/YlnplVumTQQWj7GMs+RJp1p5vxYTRQep2+KslcKWJoHafkTo3RZXObRxWmMv2PXtIb8dctfLBp0fQmXiq4mFx5IxJwV3cETn5sYea4nQfPi0/8ZrDCm6P+4h5AM0sK6Uw4fpP7WijA+KhMPjAIv8FQXFSfXQybyNv7C8F081tDMc8hkNGIkQN5N/9JofPztn7adChmX8CdaeKZm8tqUYWpIKtTD7frs/o4E/hnPGksk4LkHoYL5QQQUTOPeMtsAMjvITQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KyLj4uxco1utI0YM423aHw7wHV4ljQvVnpBhYG6PylI=;
 b=CN9g99Gw6LaILTevmA6+8FN0zMJhymC/U6rU9/DfLKf8h9d1v8ibN9fNtgF4zpzrwnOLwdlH0hn+yW2TG1EvfIsIOqMEAr361x3fyCUwX/YB9cYITddvF2gkcjJcjY52WGkYSk0mo5m5t1xvboyhUUOrSRshz9q8zfTAMQwgemDsEi07j8aWKMDN8UdhK6KoIc+Gwe/rVLVZtbsW6jEBqDg5xr65htCzHGMwyVouNnQ0d2V5dmFg4fS6k3kkMY5gf/uAm9v9tDZJeS+HAbqdWjtwg/4QVgw5rSMlcdpHoBvpvblTWm2KGkQzmv/g5M7pFhq8P/l5niEbbgTepy2PZQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KyLj4uxco1utI0YM423aHw7wHV4ljQvVnpBhYG6PylI=;
 b=oohJHfE+1b55VgS0aRBRfMn6hzW+JVC5U1NOZ+5ZwYkuHnIN/+WWNekmCDj/hnM4c9cK/txy3qLfKc755v9PGCoROHDCMHovpZxcy8K+HYQ/mtIlDA1XeX5a2ie7+TT5jN7hIEs2r0/sAiwsGcV+WfK0C4x8Hoesk9d1oL7Omm/+S8AfeJQpy65f5qHaUGiu9mTEqlgS6azqMG62hEDyZtewH3gk1OSWgX+Y3oKzKlO94UCbC4HTQZnBZMevNhy5kKf7bDA/gcHI9W4VlZo8V9THX9QQ8zR5Spy7vAE77kKyEsbePl/8hNP8BRY7zzWBOA609G2YB3W2XSZE8Qvozg==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Alejandro Vallejo
	<alejandro.garciavallejo@amd.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: [XEN][PATCH 1/5] x86: hvm: dm: factor out compat code under ifdefs
Thread-Topic: [XEN][PATCH 1/5] x86: hvm: dm: factor out compat code under
 ifdefs
Thread-Index: AQHcUzQyGKgXSqPuKkqMDOUnq/taOw==
Date: Tue, 11 Nov 2025 17:54:16 +0000
Message-ID: <20251111175413.3540690-2-grygorii_strashko@epam.com>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
In-Reply-To: <20251111175413.3540690-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB3PR0302MB8919:EE_|PAXPR03MB8249:EE_
x-ms-office365-filtering-correlation-id: 909ad333-eb81-4603-cbe2-08de214b5536
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:
 =?iso-8859-1?Q?cLld1Xa9hI3ABbkG2ni5e9b7T4XQN9TcbVhnFgpn7BUlIiBBKnylsyGPAG?=
 =?iso-8859-1?Q?LTG7IOKjivC1yGDRYJ8MRs9mZgKqnJwazYzZhzbL0lw0GW0vETrjVmb+Gx?=
 =?iso-8859-1?Q?YY1CYAqVeC5XYFdiqq9NXadvsQL4cYaSmZURSeXKv1fCICs4ZIgEDy4LkO?=
 =?iso-8859-1?Q?1eEaSKu1lDkjrU8pb//WcR8rLwlhi26qRhhJpPWmymJ+fWglPs1RVQFpPH?=
 =?iso-8859-1?Q?7XNhAoFQc9UmauObyJxxiWBAlbY3Uqb3QV5MwkwH1mC2lgWURMb5jqd7qy?=
 =?iso-8859-1?Q?06iWLxEMhcMC+Xpa8qU/xBZ2AfAgnuI3i3FFLsqs576Cq9x3gG3QAThTrD?=
 =?iso-8859-1?Q?6laaxmbTwpVijgfdCBxyksR10kIyCOpf9tM5UfwF7kMGSofPm+HTOK6cHt?=
 =?iso-8859-1?Q?S1PTTU3qcRVCdQshovkVYxahRFjUmsAY5WZ54uomh2UCTmdoboFGY8Htb9?=
 =?iso-8859-1?Q?j4OoKQwMihTmYkG8Jl8r114mVeed7CMVWvel++Yns4VOfjz2oX11zmmr3L?=
 =?iso-8859-1?Q?lvyaAr0hYUgMkALLG/DP8RsGVFLzEVueld63yDtDU0gfkaeRWjs+lWQi2Y?=
 =?iso-8859-1?Q?Wxdkq/SsxnsBadMvNyQTFq4y9FZ3xP10H/tdrti6qnbrgSgapJmORxQN4F?=
 =?iso-8859-1?Q?z1+XRifdcZlAW4egZjgXrW4hVssW/XaP2AANqEVwcqgWCbgCFwm713Gxkx?=
 =?iso-8859-1?Q?4z1uV7jaYQL05cfSEk3zww8xPwdM/sbuywJkq+RBjezBkf2poaKEts3oLz?=
 =?iso-8859-1?Q?rOQSAK6T647IZQJCHKFp8oQhsqhKUhF03ZvryzCa+i+v6lC0U8/+RDdmJd?=
 =?iso-8859-1?Q?WR3cDDhvNKAuvpSdDTW/siddr+/qiYxehKxK5EcO5COEsxDERqTNYAKeez?=
 =?iso-8859-1?Q?tfNfIX1IaqedFDA4dbeNJqMn9Eaz5ct72L2xBVSu7Lf3QRns62TFe190I9?=
 =?iso-8859-1?Q?ssI+06hFCG3jWbIrMxdteGrM+KOJZBlyBLihZ/PZhXm1FmM+HjU9kXY1MM?=
 =?iso-8859-1?Q?GN8DGA1a8M+mlQpTC30Fom3upRClfYpd38qSrxOs6JHjYsOasQGKXxEhUC?=
 =?iso-8859-1?Q?KTuCBLg5T03NBxUK6YeovO79reSMR/OKlkvJlOeBI4A0tr+HY2xAJJwQPh?=
 =?iso-8859-1?Q?eG1KYY4yIGNHiVpwzuSWVMwtjHDHR84tlX+z9Lkkt8Rmaqmb65eXE1bm+4?=
 =?iso-8859-1?Q?VBunPxp2ncb5TFiJAZauwVnyBm90Cz4aOcDY3UtVpRmUYVnqzxlqicGO2F?=
 =?iso-8859-1?Q?uzXaKGBcOQilvsru1+Vlc8NfkTN2fkPqZrHeQYPgsqIzP7qPratpFNQhjT?=
 =?iso-8859-1?Q?8I4tL5mkQY+FZ4S7z7l5WkR06JG1FT9nTso5m2lt2ZNRyMpk9QBuZ7en+y?=
 =?iso-8859-1?Q?Ce7h/XDYb83SMliGKAFq5bbt82NxidIQwEqmsXa16ARmaWyCJTarspSf0A?=
 =?iso-8859-1?Q?ReNftxg+ABVHO8Ws6u7Ia1gTY46Of5H5JT/yCwUVeugpjY/CiCBR/gVeC0?=
 =?iso-8859-1?Q?bTJaLrVNIXz0OL34fCuQHJE7o5efRpZnnk5Y7wDsh8XBgzD9UDMy8qHtqt?=
 =?iso-8859-1?Q?ZJQf+tWD4x6o7ZsK3BjHw3KbGqeH?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?JIDXPKYmINsdtXHrNd4E/UlJw+PHTSKApiQ/JOBc5tfuI9vmH/Q7LVrFjm?=
 =?iso-8859-1?Q?Pjk5fOnKMd7kK0Dzyi4LnjmvHG5MmWcACOdwB1ViWzsRJtAt/IcwH+QVC3?=
 =?iso-8859-1?Q?R2hQVYn9R1DElKCXu474OR6zf5mS9XkLGgjCh59QyvchiKTQ8SE0fPkNRw?=
 =?iso-8859-1?Q?EAk3pbnrf7f8i6xcGe0wcclIyP3Di5xiRvX28nPbTJEPznxuy2SqTExsg4?=
 =?iso-8859-1?Q?F4ZWjv+WpUyuj9XyKs7l9IxkU5/Zaex1sxHey1Lx1u7epYtKG2M6XWY9PB?=
 =?iso-8859-1?Q?DuwPE4GS2MEKMPJS8AtV5zPV3hXiTYlfEb0eqdBWu0sfvUWpmwXc60OUkc?=
 =?iso-8859-1?Q?R7TmJVnJTJayidWEfzDoPnetb/iCdYfQxkFbAPN22+gVNOJaEZPrix4oI8?=
 =?iso-8859-1?Q?ldZxN7LFcYdNxoHUAOw9ykOqOyYUzq7U3p/R3jfbgY2CwN/iBMKhqQbRdR?=
 =?iso-8859-1?Q?W0zKMponATZNVq6XPT5kNWObLyyyeNtPd1pvFzhKTUkiKv6s9Y1y7B08Hr?=
 =?iso-8859-1?Q?Za4sbc2BNhlavGqCt+cTadJyuoMg7avO6Ls1oKFYe9bBbV57bfn1WT91Ks?=
 =?iso-8859-1?Q?gBSxtXQ4hsXXdvDprVBFXDopSIzIL5ix/ySSzDSJaJHbJzn4UYKO6ik2IK?=
 =?iso-8859-1?Q?gGRsAzE57uB08l3GKAovOmOlihwY6x+a9KqzoOtjKNNGHsdEysViRQdp1U?=
 =?iso-8859-1?Q?Jlz4KmiAZ46dDsrhogtNEdVAqTOsULeWPbdJqb2U4GG2k2vbAohYBR3IdN?=
 =?iso-8859-1?Q?IixthUBWmPc3NCV9TnwP+smewINuN1Z9AcGp1njQmL42F9lMrsD1A3T6Lj?=
 =?iso-8859-1?Q?SQgIO9nMO5de0rpYeGDQSvQ0EynrgYd4OGORUGQPTQYWZa5EXokbiemQnf?=
 =?iso-8859-1?Q?W2YO7kw3CwtpVjA4z36GEOOFHfVQF+tQOsRwjzuz61xK4FnQDP2VkIm56G?=
 =?iso-8859-1?Q?yFOAv52XOyFOsNp/IPpDQTVrzEq+sH8clbfZy6Q3ycPltF7GaE2/1b/xt9?=
 =?iso-8859-1?Q?fCqJr5qmg4SwtsVUT455SkkNDDqSN/LXd30CKN9tDuGPkyPinaD/94BgNU?=
 =?iso-8859-1?Q?AgmQ/jp/5PDWSuKouiWXobsS2UHLfsECMxkzvbO6aKTJvPyVzADoK3ZSuc?=
 =?iso-8859-1?Q?aUy2SFaPqy2ePAXRwvHYCsOLCgP/GdnmWJEGlsPwQatEOwuHf5v7zpoyZv?=
 =?iso-8859-1?Q?PpPXBGD3iN8yuZ7n9G4dn9Ow9bIyjET7bG+I80CqHdo9HkDkVtCOLtSPD2?=
 =?iso-8859-1?Q?dTRVvPI7hHmxIU7SfkAYxSLdp/lcrsaNwQnU92KaKGmZ8DdjJhB8Wb7ifm?=
 =?iso-8859-1?Q?LzbqU9/5VB28nlt8Svgwi7Sq11eMVX1l++lLahgiuszohIpso2+MO62DYY?=
 =?iso-8859-1?Q?UqrzBrzImgX6QXDGbk60oPCxcZKqrt+kh0bav3Tb4zjaNpljEzrjyIrHJc?=
 =?iso-8859-1?Q?ZGZtgcvHe5hNTaEf909JKqtAPVf8hzhqSwSfVc36jxezMGAptVOdSx5F+w?=
 =?iso-8859-1?Q?yEmYuopav5YsD9bmhnvtqq89XZFJKO41ckHesASLdYayttbRZtahR7pIyb?=
 =?iso-8859-1?Q?oEDl2lboLV2vDJPnCmbV7z/dvyTyS/MM7fPnKavhkosJ3Df69MSiK0YGsp?=
 =?iso-8859-1?Q?Dk0a6Mt1aAznD881Ag+PW05qBK2ItrJOeqXqw7w/3dGVpp0+94/RdqHQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 909ad333-eb81-4603-cbe2-08de214b5536
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2025 17:54:16.8562
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: fvB0NPyCHEr5A/92U4eU8GoGgmfmBRnLMoZUxRQpTY6nfOu/IMxLXkZfdSfnDcG5x+qPaeHvrpSj+A2XHCflXgU9hDakW+P9ACdPEuwFonM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB8249

From: Grygorii Strashko <grygorii_strashko@epam.com>

Factor out COMPAT HVM DM code under ifdefs in preparation for making HVM
COMPAT code optional.

changes in v2:
 - do not move code, use ifdefs

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
 xen/arch/x86/hvm/dm.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/arch/x86/hvm/dm.c b/xen/arch/x86/hvm/dm.c
index 3b53471af0d9..f6dd1634428a 100644
--- a/xen/arch/x86/hvm/dm.c
+++ b/xen/arch/x86/hvm/dm.c
@@ -623,6 +623,7 @@ int dm_op(const struct dmop_args *op_args)
     return rc;
 }
=20
+#ifdef CONFIG_COMPAT
 #include <compat/hvm/dm_op.h>
=20
 CHECK_dm_op_create_ioreq_server;
@@ -680,6 +681,7 @@ int compat_dm_op(
=20
     return rc;
 }
+#endif /* CONFIG_COMPAT */
=20
 /*
  * Local variables:
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 17:54:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 17:54:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159200.1487596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIsZT-0000ww-EB; Tue, 11 Nov 2025 17:54:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159200.1487596; Tue, 11 Nov 2025 17: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 1vIsZT-0000uo-9k; Tue, 11 Nov 2025 17:54:23 +0000
Received: by outflank-mailman (input) for mailman id 1159200;
 Tue, 11 Nov 2025 17: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=KiuT=5T=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vIsZS-0000bw-1l
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 17:54:22 +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 730c5f5a-bf27-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 18:54:20 +0100 (CET)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by PAXPR03MB8249.eurprd03.prod.outlook.com
 (2603:10a6:102:24f::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Tue, 11 Nov
 2025 17:54:17 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%6]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 17:54:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 730c5f5a-bf27-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uFPtKbmi7JJYxK7YwS2R30fAyHljV0dkNqxC93VgatUqgGo7txOXGGkQuZ/Uv4gz+8zEdvltXpGpIyfzAYRu2O0F+BlXZpWQKYq1Whe2akQcr1ah8tdV23MxUtir+pYQ8yH4kjJ5PJoeAawi0qmOR0eIbV937WlI+ENcJYQtYS/sJs/7kFYNI821naumm3z/UAgCq3YX3Aza4ENHoZV+vfZXSlvl+N08kC1cPQLcfkKFNY5zDfRWTq0u9AJsn7IkTIIa6V5XLYF3OI3vNBUrEYmYbzRNdoT2sZMBr15PJOd89KSBt7xWgPFlYRLY8hltWf3Qrz53VhTiO3yz6HvLeQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NdG5tINzAGu7lVrXunYrDCL0aGs+duhAEMHzUb/OBiM=;
 b=j0R0P6h4HknIMVLJhxBjrbQANYlPv4treFBwoEGaxBUPFJ7bKomJzoR9r4nHVMKZHxBpK8H9a7VbFnteRqw+vX2SBiHHw2vir6Z7jFTDjDp/qvB6AcooFFZZWjy2HHyC7RIMjqCeF3GGMnfeHokJmI5UdvBPfNRPnbY6Suvv/BOSqb+dlss+IQVdi/m0tP6HWWm6DEdTNdzdU+lbHA3EttkmmYI4ksUEldC2+9Bo3H5qyZFEjwyTYy6CtjIxlQQVDS3rhCY9od+INWcslmmC2oFbxtn4saTr4hosz6iuuxVtC+IE4k7szpKWQPacof/cQ3AZAkH3gf8L7n/ME2fUoQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NdG5tINzAGu7lVrXunYrDCL0aGs+duhAEMHzUb/OBiM=;
 b=SIGccxnLzWVgDmMpMoBEkyCXAYWqGQ1x06TC/VxtqWEYcS1h0Mh5jt5nz0mLIEFd04VwlVWL/Vqp3k3sO8znyU9dOBQSQj4f0+4KoGOIo+jTbraLhyo2gv6IB6Ddjpq++yUbDlFPwQBMXvtUFzNwsV6v8N/AnJXSfrOFDYjG34I5jHJg5ytGCZwA/kV0OKBAEVs1aJpe6yUcNkz62baY5qfM60hxrRzEcAFpmWWtzPFF3LRcqFyyeePeG1y4GZUsRRMm/U6kg1RBooPG6Ma9F1Ht/FhSJmNr6u9wwpkL/a217nk82UVIAihNpBqmQy4yuail9kO9x4rD0vO6MsBaVQ==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [XEN][PATCH 2/5] x86: hvm: compat: introduce vcpu_is_hcall_compat()
 helper
Thread-Topic: [XEN][PATCH 2/5] x86: hvm: compat: introduce
 vcpu_is_hcall_compat() helper
Thread-Index: AQHcUzQySuWq07a/80u5KWcUyXBJ9A==
Date: Tue, 11 Nov 2025 17:54:17 +0000
Message-ID: <20251111175413.3540690-3-grygorii_strashko@epam.com>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
In-Reply-To: <20251111175413.3540690-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB3PR0302MB8919:EE_|PAXPR03MB8249:EE_
x-ms-office365-filtering-correlation-id: a8417112-8fad-4da8-15e0-08de214b5575
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|7416014|376014|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?rnJ0ZStlNkhp4poySRxiXI+Yb5t7EBDLb01E1pIgTI2TDYdFomcRlJdTLR?=
 =?iso-8859-1?Q?9waWe+O13ZCasYqPAexSYK0VBbEjjLXfLWspb3HRINfSC2Yc+K0SqXA0Zu?=
 =?iso-8859-1?Q?yEgyBXYwtSqfdQuFqzpXEy7ZoUL8pvw8CVS1F9WUyqx0T6uO7I5wRmCqlc?=
 =?iso-8859-1?Q?7nMo8xVz2fnR9f4fjQcprC5in+T0uNRBNKSfPhiLltT2MBhnUpfIfyiYjT?=
 =?iso-8859-1?Q?yAV9Un6Ok9wCf9/JvDStFp6ClTHiYQ91ZZTJLsUDMSLa/Ub+7Y1RZdKrrj?=
 =?iso-8859-1?Q?i+Nje/bmDhnnr21V8fCojKgD+cXEiVoOL/7lv8ZoDdt1xeCr1BDlp17hZM?=
 =?iso-8859-1?Q?n3k7pXT3NwNcgz4RycfbzEm2YOoHWDcApwgh+KjahH3rbFFvo2C6NCyFaG?=
 =?iso-8859-1?Q?4H4GXr0ofXJQmWvc4MAFXwDs5BSfOnFXEoWPrXjmNP7pkrksUX1JSZ8tjS?=
 =?iso-8859-1?Q?3GkMbhfVfr17NfCvLaq8xy9c5mApDbEf+1hvsgXlOa6zH/Ikv2dhpnR+7s?=
 =?iso-8859-1?Q?eQqRh+bdDNUStQVhEnhRgUKlHtDwQQ12JQbQTbtmoU4IoumyD1wGffKqt7?=
 =?iso-8859-1?Q?L+YOm5aLoZe7hNFdNv9BjOwaoESZIx5apQjYwcN758BahlBf8wGAOacC6g?=
 =?iso-8859-1?Q?2c48UL0z2NIuQLSAF35RF4UnlFlbFeQxnYIX2TyqgqDcZWkWiEk7j4xTzX?=
 =?iso-8859-1?Q?lnekGhvFAgfzjsQtXNSmNmp/7I5N2kJadw8yF7Xzf6Dl63e3Lqvpdwuo4M?=
 =?iso-8859-1?Q?eCue3V9iIv9p1EDFQxa2TIv/juU77eLeZT/e0+EfJqtdM03aHxMb1zA/P3?=
 =?iso-8859-1?Q?pWtAw4wfk+yYR7lOPSeb3kMolPWv3KOJqQN+FcaLgzGa9a93bVNkm3sFHa?=
 =?iso-8859-1?Q?Qwb/syGcUGt/WEDlZ+hbCNezwjkxBTecMcy6QQ7TEUcu7hbPsczVtkyFsl?=
 =?iso-8859-1?Q?u+qEaYvvftOtRarBRex+8FU31EpLRmkWknS8X1n5QCdOjXaLrFx4jYXp8j?=
 =?iso-8859-1?Q?KZaCs4F7581z0xZOcHk+KtwjiYuFxHq3K6I+qn8iC5w+9pjNLauBrCvmFT?=
 =?iso-8859-1?Q?ysSjCxRxViLlkVAD+xjpbZEE31pJ1YlMzy78UcgzNKb39oz33QB0Dsrxlj?=
 =?iso-8859-1?Q?znH7ETRgFGnLQIMY6EXlKZepkRrsuK81oZbHJLlo14I0ebqCCsfNJ/DQab?=
 =?iso-8859-1?Q?u7rQ0aAtOCvolRQps/sLbsivRjwQ3uIkQzZ72G/6Tc38NFIfVHO/oT4NNk?=
 =?iso-8859-1?Q?IlWpOGtBed/kBJghJiu9AlMWpulKrpgi7w4FA51D8D3TS3Lkoj3xzw6E52?=
 =?iso-8859-1?Q?+3jXUSMOh9dNhW0beWHPH2k/7DuBHiH5V/+jb7O/YHxTe8hlFdh4eQBjYj?=
 =?iso-8859-1?Q?xYnE9YRcKDDTgaKe9T39yA1X3zBM0WBJlRL701qEGLqu2zh1vW9aXCbVlJ?=
 =?iso-8859-1?Q?9WqlMFsqbk4eSU6h2tGHecOFGwyNaJaOZbIpUo9nxPhN4E8iBE3TXf9QlE?=
 =?iso-8859-1?Q?rueUlqRW5XLQD6NiQWfccKjFtTd2z/EfPDJAvDqZ5bNdqqPsrYTg+Mw+uE?=
 =?iso-8859-1?Q?k9vyjIouy1wj0Ty/xsqVXiLP28+p?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?j5N6Rbz6nGBd7M7DpghJe5H9eYlZCI/0wPLhaKEJ83OUA80E22eb6yZLLK?=
 =?iso-8859-1?Q?btRS2cRv0EKN8ZF0+81xjUVSpd5BzXnpF4PIZHSIVvEJlkrFjR7Axx7aQw?=
 =?iso-8859-1?Q?4AscyOCIpXB7Unkd1qHcm6/CtuB6HdBOHadwqs3XnP5xZyjdBnLv5MLXe5?=
 =?iso-8859-1?Q?8GFqWI2NzpVXxfo1FswvQHbyhxsadFCpDDa6+uEg9Xc0GOanaHf4gcNqoB?=
 =?iso-8859-1?Q?XE0rT162K++EuShmBVlwGxxsxp4zTw0AAFo4Tfa0ebAzxuG+peS7gBYbpg?=
 =?iso-8859-1?Q?mMolg8GWZlsD+PnoDJkrfGjL597JPx7JIQ2Jw8x5D6K2elErtFiHCW4nuz?=
 =?iso-8859-1?Q?bwYwHU0jrHxZllIS7cME4deSr/zHbTz+JSP5elfu+PFF7aYxy/qYMjCKHI?=
 =?iso-8859-1?Q?8/jqmfQg5BftVDOXMzivr4kB3Ad3GJmM4yFp/1lGtO8UpL446yY+SaJvqR?=
 =?iso-8859-1?Q?OHfJukxxidf0qB1Pee3PEF3rUbDTP+4Se5JpP9rRLTXwVB9gFY/w+KTHl+?=
 =?iso-8859-1?Q?N2c/ZHLENv73JWTYry2iYEYhr3V65OSdIJFCtyVAp2o/qi6T3APRWL3TX+?=
 =?iso-8859-1?Q?KY48PFEDlpNNZcNdYHFwE/MJLISVMONZsW/biRBJmo6rFmdJptygpTYo8J?=
 =?iso-8859-1?Q?JQEy0VHs52ucY0v3PHTbG8QsSjoCgtATCoQlGHZSz5KGU0vpXRdmEuRsZC?=
 =?iso-8859-1?Q?TkWYLVUgWyfkr26DBWyrj3d77G/MrYh+MVD1Q+bP2BwFG5dfDHGeemT0AQ?=
 =?iso-8859-1?Q?twJt4hQ9iEwSbUhURepXCk+bmAAe7RLdpbRBm1seH0RUKX/RJOhEQnWcP5?=
 =?iso-8859-1?Q?0byRJJAD5YUZHkac1yhj8TzYkJjJYrfmbSNpie/wMjuZe8lChNQSYYM3RL?=
 =?iso-8859-1?Q?IKnMaZikFGYDXS5k5uiYLU4eSrnKMCI4LQOLZGOC7CjRiGbxOLeVbtQ8mV?=
 =?iso-8859-1?Q?yOBLYwi4WtQ+xsuOSneipdojgIT72CvncOK9PfPyeBemKyritLX/ZQx+uD?=
 =?iso-8859-1?Q?mPOObzD1JbKOAcNZA0L4VtZFzcz9W/9WMX7lNwr6EVm3DnlmNgAcm8sCMP?=
 =?iso-8859-1?Q?wZCzGUjKlW3BwngN5coCUD9TUdtmvVHsy1frQWV/avTZ3lkX7DYKqklMNn?=
 =?iso-8859-1?Q?W28FjfQWHz9WgAPdR7N6D/OttiZP49R1BZ9lvp0xedK8zyvxD/dQNtf5Mb?=
 =?iso-8859-1?Q?g88ksx4oJysGzql+xiH5KGVmarxEcsCG7uWrw5UiesF/BPBWmp3oeGZBwU?=
 =?iso-8859-1?Q?dC1BO/MZxUawft29rw8eKNDaaszDc3ISdOkuI/jfyP8LblM4DxWT1q9HI0?=
 =?iso-8859-1?Q?gz8TZylcXXllp15Xc7P0VuJEs/UZVnAKsSyyL3Mr9I80VJPLK2hiVjrGZe?=
 =?iso-8859-1?Q?8R5BwUbjp3KipS+cKBvZyo8cB0/BDcJEWqhC3dgii+4YcayB1PEfhvxbQU?=
 =?iso-8859-1?Q?SpBmQhK4JhxjUs8gHU+JF8HoSilEG+r9XZz1ZfDbah9Vq1sX3oC5s99sFd?=
 =?iso-8859-1?Q?e2pyLhMi5UEBiPW4On0brfClnyNMBxxyOdRyesD3hGgQj/yBNKH2MG84SO?=
 =?iso-8859-1?Q?/FmRSt2zqH4pdz3SoBYG0yUyRmFHc27hrYUIZiZ3mZOtX/QtZxgkMtLo7k?=
 =?iso-8859-1?Q?OM09PyDwF7ITRzv3XDEvbzAVWrUorvDCqL6NX0fs0lqzljaRIfBnZxaQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a8417112-8fad-4da8-15e0-08de214b5575
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2025 17:54:17.2643
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: MPux3sg9r4VhicU51LWh+A3tbypdqcbY8VhD5t+pk/WdP6OD5jBp22qdwslOgN0XshqV0oTGlZY0psZrLIE+X7wf6Y4Hu8HzYcWA/cAkcuk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB8249

From: Grygorii Strashko <grygorii_strashko@epam.com>

Introduce vcpu_is_hcall_compat() helper and use it instead of direct access
to struct vcpu->hcall_compat field in preparation for making HVM COMPAT
code optional.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
 xen/arch/x86/hvm/hvm.c       | 9 +++++----
 xen/arch/x86/hvm/hypercall.c | 6 +++---
 xen/arch/x86/hypercall.c     | 6 +-----
 xen/common/kernel.c          | 2 +-
 xen/include/xen/sched.h      | 9 +++++++++
 5 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 0c60faa39d7b..2e47a71714fd 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3500,7 +3500,7 @@ unsigned int copy_to_user_hvm(void *to, const void *f=
rom, unsigned int len)
 {
     int rc;
=20
-    if ( current->hcall_compat && is_compat_arg_xlat_range(to, len) )
+    if ( vcpu_is_hcall_compat(current) && is_compat_arg_xlat_range(to, len=
) )
     {
         memcpy(to, from, len);
         return 0;
@@ -3514,7 +3514,7 @@ unsigned int clear_user_hvm(void *to, unsigned int le=
n)
 {
     int rc;
=20
-    if ( current->hcall_compat && is_compat_arg_xlat_range(to, len) )
+    if ( vcpu_is_hcall_compat(current) && is_compat_arg_xlat_range(to, len=
) )
     {
         memset(to, 0x00, len);
         return 0;
@@ -3529,7 +3529,7 @@ unsigned int copy_from_user_hvm(void *to, const void =
*from, unsigned int len)
 {
     int rc;
=20
-    if ( current->hcall_compat && is_compat_arg_xlat_range(from, len) )
+    if ( vcpu_is_hcall_compat(current) && is_compat_arg_xlat_range(from, l=
en) )
     {
         memcpy(to, from, len);
         return 0;
@@ -5214,7 +5214,8 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PAR=
AM(void) arg)
         break;
=20
     case HVMOP_altp2m:
-        rc =3D current->hcall_compat ? compat_altp2m_op(arg) : do_altp2m_o=
p(arg);
+        rc =3D vcpu_is_hcall_compat(current) ? compat_altp2m_op(arg)
+                                           : do_altp2m_op(arg);
         break;
=20
     default:
diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index b254b3e2f7d6..549e25445e67 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -29,7 +29,7 @@ long hvm_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PA=
RAM(void) arg)
         return -ENOSYS;
     }
=20
-    if ( !current->hcall_compat )
+    if ( !vcpu_is_hcall_compat(current) )
         rc =3D do_memory_op(cmd, arg);
     else
         rc =3D compat_memory_op(cmd, arg);
@@ -57,7 +57,7 @@ long hvm_grant_table_op(
         return -ENOSYS;
     }
=20
-    if ( !current->hcall_compat )
+    if ( !vcpu_is_hcall_compat(current) )
         return do_grant_table_op(cmd, uop, count);
     else
         return compat_grant_table_op(cmd, uop, count);
@@ -96,7 +96,7 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void)=
 arg)
         return -ENOSYS;
     }
=20
-    if ( !curr->hcall_compat )
+    if ( !vcpu_is_hcall_compat(curr) )
         return do_physdev_op(cmd, arg);
     else
         return compat_physdev_op(cmd, arg);
diff --git a/xen/arch/x86/hypercall.c b/xen/arch/x86/hypercall.c
index dc0a90ca0915..3a1a363d8648 100644
--- a/xen/arch/x86/hypercall.c
+++ b/xen/arch/x86/hypercall.c
@@ -53,11 +53,7 @@ unsigned long hypercall_create_continuation(
=20
         regs->rax =3D op;
=20
-#ifdef CONFIG_COMPAT
-        if ( !curr->hcall_compat )
-#else
-        if ( true )
-#endif
+        if ( !vcpu_is_hcall_compat(curr) )
         {
             for ( i =3D 0; *p !=3D '\0'; i++ )
             {
diff --git a/xen/common/kernel.c b/xen/common/kernel.c
index e6979352e100..99be0fbb9d90 100644
--- a/xen/common/kernel.c
+++ b/xen/common/kernel.c
@@ -615,7 +615,7 @@ long do_xen_version(int cmd, XEN_GUEST_HANDLE_PARAM(voi=
d) arg)
         const struct vcpu *curr =3D current;
=20
 #ifdef CONFIG_COMPAT
-        if ( curr->hcall_compat )
+        if ( vcpu_is_hcall_compat(curr) )
         {
             compat_platform_parameters_t params =3D {
                 .virt_start =3D is_pv_vcpu(curr)
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 02bdc256ce37..e3ce427f0bd9 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -311,6 +311,15 @@ struct vcpu
 #endif
 };
=20
+static inline bool vcpu_is_hcall_compat(const struct vcpu *v)
+{
+#ifdef CONFIG_COMPAT
+    return v->hcall_compat;
+#else
+    return false;
+#endif /* CONFIG_COMPAT */
+}
+
 struct sched_unit {
     struct domain         *domain;
     struct vcpu           *vcpu_list;
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 17:54:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 17:54:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159201.1487610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIsZU-0001JW-L6; Tue, 11 Nov 2025 17:54:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159201.1487610; Tue, 11 Nov 2025 17:54:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIsZU-0001Id-Hi; Tue, 11 Nov 2025 17:54:24 +0000
Received: by outflank-mailman (input) for mailman id 1159201;
 Tue, 11 Nov 2025 17:54: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=KiuT=5T=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vIsZT-0000bw-25
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 17:54: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 73d7b209-bf27-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 18:54:22 +0100 (CET)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by AM0PR03MB6323.eurprd03.prod.outlook.com
 (2603:10a6:20b:159::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Tue, 11 Nov
 2025 17:54:19 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%6]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 17:54:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 73d7b209-bf27-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NNie5hzaFx/BQCr0Xl1Fo1fX/mVN2VoQi4ourxs/zJQJ9F0uVZYUAotVLlPWNeFWraNsNeUm3/QtIxtgh4HdVal2htt3cPQw3RH2ePmpredffOTNaEKPWgxHo1Z/A6v/sGyB5XW7+ILo3GF7YpIqGsYOF8ya4AXL3n8t1HXNDnS0YTTr5m+rcTl0/b+3jNhYwCtDeaCq9/7LzIBqt0Jqmyxl4oGy0FkHIDRQd10KBjpXftvaO2CVit3RVsEH8wr373jor9yNGmbh1Sjpe67oiIEfXiIJeor8e/VklDKcC8gO9AbLbPNRfGWG+Ys6GbgBJB2XAouNXETqoU0/sOJs9Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=U/lnQxdGMZSF9FLwYWN8SmKP15cEH8ABapnXho5cQ0U=;
 b=YdHnE52jxLMnmuFAFjEatlfM/i/AWas4z7KG7UE9ZTXhKJuPMhodhZR/0V7Kbh5AIkptoTxGM5vQJO85Uzx9+hKU5bUXn+A9tmaOkOsKqdmqeqjwzZTTV2roLvZKpFI21GRCbchHy8XU5uKj9i4FwzJ8qoqa3mhctfTe2eFnmcsptRZ5sS58kUZpB3J8a+5cp1Ae5XgZPq4iHaIK/QxAGBZvkMpSH3d6b+d5GtquTdCjg/5KPS4dI6B5Xp/HOam0ZNLTlGJVQ3GGWwzeClOqp9vZbrmvS/iYzYkwSVf5zNqakgxAGVWpjgFtQI/6xeyTutEce8IRjMz9kxZGzptaZA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=U/lnQxdGMZSF9FLwYWN8SmKP15cEH8ABapnXho5cQ0U=;
 b=jdLmPmfomyzWEhnlUtwHfVdFtckruX3gPTj9J+oU/41w7ZMRTjd/OvRBBBagz/aJGE0j2fwPu6vibxAKMe7kSI3+zjTlNKUR/K9CO1j2jmR1ejN7Pm6b5UarcvisRGL8x5v1AE28gHtCswVAUBnbSevOfuyULxMu16DVRfWXwhgmnjO/pykHBX6sSnzwg58X/+ogyhSct9sFhpotmLqBdba2Sl28JN1vVDGyVCRGXEXOjpGRfKvIUnT+H5XjluxREldfT3rsH619Y6FTkYu2YmCtsyCiUWH4UOljl3KBSK7nO6UpFnyd0hM7X3ll5Gjp4KYWqV5TajaiSekrsb3now==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Alejandro Vallejo
	<alejandro.garciavallejo@amd.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: [XEN][PATCH 5/5] x86: constify has_32bit_shinfo() if !CONFIG_COMPAT
Thread-Topic: [XEN][PATCH 5/5] x86: constify has_32bit_shinfo() if
 !CONFIG_COMPAT
Thread-Index: AQHcUzQz61ny0hXUD0mGRD03jggr5Q==
Date: Tue, 11 Nov 2025 17:54:18 +0000
Message-ID: <20251111175413.3540690-6-grygorii_strashko@epam.com>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
In-Reply-To: <20251111175413.3540690-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB3PR0302MB8919:EE_|AM0PR03MB6323:EE_
x-ms-office365-filtering-correlation-id: 5cac667c-5354-418e-fe51-08de214b56d5
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?xP9HR70JCWVImCa5IsggLUUAN8nL5Xt7YDDE/ZgJR7ZTefYL408gK740lD?=
 =?iso-8859-1?Q?W1V9yj3PFqbURQA1GSO82NVPdKxZ9acRduy4vrzoi4LMZtzNIabjL4+G/2?=
 =?iso-8859-1?Q?+lu5lXAUjjeZY6VyPqXk3sIuGxo5H69GIH41VyT8lJJszraf1QQb0JTMbL?=
 =?iso-8859-1?Q?FG6zFLtDSyfXMYDEWLni7E/+AIUFTZP8sIyYJ+/xuQo/1/Nq9lsXdWeY7O?=
 =?iso-8859-1?Q?Q5FKADv77N92BkHEFIl9Zc1DDERdowdSq2h+8i+rdaFKGKVY6HwVhqsLfq?=
 =?iso-8859-1?Q?c0A742zBlCVO71a82m6fU3Pe5j9ayvppSawed/+3ccYvVnJ8//iWyofNBr?=
 =?iso-8859-1?Q?V79RbYm9iENs32UDgj93eOc3fasrgWmGouktY2MlmEeOA2J3IrIl2+4Int?=
 =?iso-8859-1?Q?uS0KDmmYASBuQHE644TNkcTo6QxEbFgFUg/BGVPUS51qdOLPicWU5z3TNB?=
 =?iso-8859-1?Q?U+QbaSHci1jgm/OiODho30hvqVlkT3gIeONg4xFxLZlWBSsmbiEON6Sfrp?=
 =?iso-8859-1?Q?pHIa0NP+DX9wYo1hiU2fKY482Dzc5x5yOHK/kLdJfgdjy7Diaf3HOykg0N?=
 =?iso-8859-1?Q?d8TdXD36Xwt0Hd9SGf0fcgvfeHAOS4LrBJ7wC3ytHXrgEieN90xh7AuYwV?=
 =?iso-8859-1?Q?y77G6bnYRPJPmJ+3g2pfxoPsvTJxYSYg0lMDlIKzfaezSxsZML8/Y2WIHu?=
 =?iso-8859-1?Q?5C3Royy6/8lv7u/WfiWpTbM7p+O4f/h3Ox3n49W88B0l2pQ08nqTfCgrrd?=
 =?iso-8859-1?Q?BxI1Vjqb25xaFxH6m7ZLvgmcSTKM2+4hVkwcBX10vlO0V1Ze3auwzGjvez?=
 =?iso-8859-1?Q?Bg28HDX2qUIBoEAz/+xlnaT8qhHkShdEqDudHJnyuPoWKwJYmTG9+E1mEy?=
 =?iso-8859-1?Q?lDghrWKgQQr8HF25r0QTa7uGHqpBWkc85HwnYC+wvdXGEpv7NJafZurFM3?=
 =?iso-8859-1?Q?8VU2YVG4OUSEoZE4dgk7NZ97fXvVdeKaOfXBNVt1ffjg9rrHY+HNoo9+xx?=
 =?iso-8859-1?Q?AxcVypLQt/LVPYodcpHSz43dCFEQvMkLcSaONfOg3aQNa1pTkjTE1/+ghi?=
 =?iso-8859-1?Q?MTrAGxjzuwqbPB4URXoKADcN/D0pn0uVnK7yD0z3tgdXE3r3EbjYXWp5xU?=
 =?iso-8859-1?Q?KsrtPygmdhgtNs88blvgIsfKw0wM3ZCygpz+pcFpKdL4Z4ubapSPgTQxW7?=
 =?iso-8859-1?Q?w97YLMtoBA3zVlc+vhx/bHdvusi45miPyK8mmBEwkNyG2HlY1iIJBsFzzs?=
 =?iso-8859-1?Q?eQuZxl4sKSuLjGw2KKqB6XNZczDZ8Nblvpo3k9iiKZLQU2M7OQSKHyITF9?=
 =?iso-8859-1?Q?s4HS2N5eNc2rHVd1AWOLQW1+y+FNolTGhjAL2FbFHEAtk/YbDh7gqNjdzC?=
 =?iso-8859-1?Q?vwkhPm8L8fVe4AEwABxzyq5gxnT0AF7s+mBugfpjeEbYpb27dOXisvN5Wr?=
 =?iso-8859-1?Q?Nh1rY7zMsSpqVME352OER8cWMTX6vqFv75lcWfi2ktmefHF1sDpFNfn/Bw?=
 =?iso-8859-1?Q?6i/3Xlh1g1zpW2TSqioTorHCqiNP3m3WZoINGYbG9KdWRNhIHXI9KFI2Hx?=
 =?iso-8859-1?Q?4/z58758seDJHgoFFJWgETPXyKDT?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(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?L7oVqU7Kqes35U+v1tMA60UN+IED7c6FsRqox0Yf8mBNyfncFx21y/5Bir?=
 =?iso-8859-1?Q?JHnZ025kOVm4wUBE7yZeDl3wBF9IEJsXR/g6GTHkakDFhd7hYNeRIiJu6G?=
 =?iso-8859-1?Q?xtq/aQD2fAIkTsSpIuWbF3yCyrCAliDtlgF7yPo5rrMbhs/FyRxoLhnNm9?=
 =?iso-8859-1?Q?7wkvhm/grn4ZFFCD88a9yCJPHNlhjyy5F1MrF2TGtD5s5s8jPzrLGOqDTs?=
 =?iso-8859-1?Q?0/VlmcOPWGHr0YOS2jQXkyS1p6s0OO17Vp71XmLfeKAFNroLiPS6KwjttS?=
 =?iso-8859-1?Q?dIG/oDqV11T7YY1DRvz+PSvw0sGo784TwJiP1yuWYgYsJ3VtdHgb/gkzzL?=
 =?iso-8859-1?Q?sw/TlLgkzKTq2ef0CKQd78jNgSf07NhpyU3OjuPUbaIaLjnUNd9QyNx7N7?=
 =?iso-8859-1?Q?7cSKAYrHFasDyDfpzbznBOI3aYzqcparfdKw6lNo9eApyucPpayW6BXT2N?=
 =?iso-8859-1?Q?1qUUwlQZa4E0B/Inp7mxLM5yVq0qrV1TU3oQbZX9V87VYHpH1+oKd/x4k/?=
 =?iso-8859-1?Q?WH2InKEQ7Fy/QQ9W887k48Jy+6jn4TfOwzwTT/hbv24CJkp6nuQgI57mk/?=
 =?iso-8859-1?Q?ZUXL9eFKg2u0tkPE3pRUeTA2BpxAu4+QSMui+UPCU/VZRY0xhzpHsjFwgP?=
 =?iso-8859-1?Q?CNakPCJ7kShhyUVfDf+T9zbChAy5pNrJNZTb7EhLBKmMctEIFiuh3QDWmf?=
 =?iso-8859-1?Q?nuah8XwhJnpt4hZdIdhmvEE+QXvOUsCc/xRGtmgZ8uMB5Adr/fO3iGn5IW?=
 =?iso-8859-1?Q?OQuqk6azS98DuUQ2n8r1/rlBV4JemBOJ9QiT4hS02D1IUwIn6xYJ/oC0nC?=
 =?iso-8859-1?Q?Sl+XXHZvSHb6bUVA1GNG7oHgq2YGoUgYlne9DVnLxVPilHG2qWIkw8K811?=
 =?iso-8859-1?Q?Asc6Ot7lCrz/qbd9igGpF4Mp+PHl/zgGM+U9SVBg0VxVD7UjCz+nghyh95?=
 =?iso-8859-1?Q?dQYy0DmuYEc9JUGnPtOeMNEnyF6ShK4MYN8yvwzSj95bxdQcdYjY/MpzzU?=
 =?iso-8859-1?Q?iGWLo6owoZ9qr+qeDLsAdYr2Sx4IxE21jOXoMCqRIIyDNjs9HFn0Sw40Fa?=
 =?iso-8859-1?Q?YNONQNzBGpTM7TNP+3kSiiRkCTBwryYTn1S+gAJPlr+oLNUNVPARPy7BcN?=
 =?iso-8859-1?Q?g6V+njpOS6BRxEl7wlgqPol2mpo5tR7IBHHLrwcvSuYWqbG2A2zZA4C0la?=
 =?iso-8859-1?Q?UElBUGRhlk0ySrwL3TRGUS7sAea3xggVLEylgT+KIyHVJCbGfR7heJdgRn?=
 =?iso-8859-1?Q?PLtO8UOaoLoQMDSHq0WjGYnXhF+IhHGMHTAc5jpAhkbzuqnORzRJXDRKB5?=
 =?iso-8859-1?Q?cBgpcUkD850osvzul2D0tZgyDlA4kW3Q7OjSV7GwJ3br04kiwiZLcNultv?=
 =?iso-8859-1?Q?l2JonFdgwJH7OqJck6vVYy3z/IVuKBNFpcKAl+D37rqWJNSYjS8U9ZiYta?=
 =?iso-8859-1?Q?AZKNxm9tqF8DRAC5d+qwYnzWeTv2b5JuBUz9PU+tyR6ZfClaETfu41fs+m?=
 =?iso-8859-1?Q?nIU8gNllmOn1lgjQd/qsUaXoVT3WqWwp2T6WSRPUZScLzI3o9kwZdQAH6l?=
 =?iso-8859-1?Q?KiOrEg/hXszJyMFLFh8ojqWOP1X7jWGRw33F+Yp5l3ZlgwwZsiI0UC/7tT?=
 =?iso-8859-1?Q?+fVPGsPLf9vuhN8vCtlY6MrINE7eMPEIRJoI5XGj0fYMJW4Fogehw+RA?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5cac667c-5354-418e-fe51-08de214b56d5
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2025 17:54:18.4610
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Qa60MR0lUrs3Mm/ESIb2Ub1G4/hfGHKSih4mn4O4aRivV1gdbmWEN+d+5ro2tCpiaqzzjuyAgBeLWOUUhS55B28tWFyytURkxi+W188CPng=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6323

From: Grygorii Strashko <grygorii_strashko@epam.com>

Constify has_32bit_shinfo() if !CONFIG_COMPAT.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
 xen/arch/x86/include/asm/domain.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/d=
omain.h
index 5df8c7825333..6883b7226aa7 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -12,7 +12,8 @@
 #include <public/vcpu.h>
 #include <public/hvm/hvm_info_table.h>
=20
-#define has_32bit_shinfo(d)    ((d)->arch.has_32bit_shinfo)
+#define has_32bit_shinfo(d)                                               =
     \
+        (IS_ENABLED(CONFIG_COMPAT) && (d)->arch.has_32bit_shinfo)
=20
 /*
  * Set to true if either the global vector-type callback or per-vCPU
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 17:54:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 17:54:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159202.1487619 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIsZV-0001Z3-Tt; Tue, 11 Nov 2025 17:54:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159202.1487619; Tue, 11 Nov 2025 17:54:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIsZV-0001Yq-Qz; Tue, 11 Nov 2025 17:54:25 +0000
Received: by outflank-mailman (input) for mailman id 1159202;
 Tue, 11 Nov 2025 17:54: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=KiuT=5T=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vIsZU-0000bw-2R
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 17:54:24 +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 744a069a-bf27-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 18:54:22 +0100 (CET)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by AM0PR03MB6323.eurprd03.prod.outlook.com
 (2603:10a6:20b:159::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Tue, 11 Nov
 2025 17:54:18 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%6]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 17:54:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 744a069a-bf27-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LGtbIXYXG46U8/BoBTsjcxQALLYUXHtoWWvCrY1012tU3SAKS9yYFDYR/m5A1X4+UAmQ9LHAAspePYZLj8VZIVjniT124pD7w5qmSdLyyKel7QQrZTWzId6m7NGvXv+PDljUrUE+YZMqJ7zQmghGb2YgcwiwK0WX6BKW3vThXP4C5YX6PHA4N58QY4zJTmFfmHUdHC10aLdjBJqzHODbzTBMCnhmqAopStyjwuYkFRCdZ+qP9y8i58DWbR4QrBVruKwk9ic6PPaXmrvQzNznN4b3K5P8PjgZbIg0m8q/Phu49/pxV2Y9ITSIueSI3jxoU2WYEWiY/5S+ERP2cpCqzw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hS6MnFghC+Qj7tFhTma9PYKjRin7yKtaSHIg329odxk=;
 b=CpX1xtXE/cBfnmVVwcsu5Bf6PWC0BvHHz0tFleQ4ziWcwnSAFvIYOzAcpuZIV35EGbfwlVU18dXGeR3iYqARIpAx0HET2g9Tg4fcyU6/hHFTTKKf6OXhAcdb/LRf6dSPbQY0nQwbFz63jEW3Zn03B/i8FAtLfC1MNFoCaTvNfSW7r26IJvrPqha9lgO+kesQDrR/KUgy6/JqLKmSJZyYItryCG0/wFK2Kh6Ylvq4RV7t1sK1Acn3ErhgVyZb/Sf3ervw/RueYHzIxyAELQhumDFMvOvO9qus3FUD51TyZWzhNwU10jNDF9gomMwoFtYG5ErZMwQmRasH2+udjML5JQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hS6MnFghC+Qj7tFhTma9PYKjRin7yKtaSHIg329odxk=;
 b=IFEZdKKuLiCMv+PY9mM53iI4pSW+6FxJzyzba8z+WPJJ+y536DUNB91xUeNhXFMwJy24eowxH7rqD5YjA97LEe2GG9OGhtgU0JT9Y2svcsxC6Zcq8QLp0epd3s8KncCuGCAQMZy5/LOD/i+C8DoL3PL5GMUOh/b3M4N0Q+00D3B8YeqFGV9zGdhvnkC/HnSu4AWezuTeM39BLwShceHnEZLRx+lVFcrEqYKC6OVCN1sNDkQIGJ62fZa5HQAsGjNh5sXgTOEohNtCUFS1/dRp3eFYGCRA34wKbnMKzNQrDXiX0hQbRU6+UCxHlu+W5EsWu2Dn2D0ockCwT1rv/q7ciA==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Alejandro Vallejo
	<alejandro.garciavallejo@amd.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: [XEN][PATCH 3/5] x86: hvm: factor out compat code under ifdefs
Thread-Topic: [XEN][PATCH 3/5] x86: hvm: factor out compat code under ifdefs
Thread-Index: AQHcUzQziKdu2C0rLUOkIzlzxAvY8g==
Date: Tue, 11 Nov 2025 17:54:17 +0000
Message-ID: <20251111175413.3540690-4-grygorii_strashko@epam.com>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
In-Reply-To: <20251111175413.3540690-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB3PR0302MB8919:EE_|AM0PR03MB6323:EE_
x-ms-office365-filtering-correlation-id: fd30497c-ccaa-4067-dac9-08de214b55c0
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?jwCmjtiPQqA5NVKfb7I1OCm/DLN4guIBzSUG+BDYLQM7Hq7AORcmYuZj2J?=
 =?iso-8859-1?Q?D3ruCBl4C9dHIpeAz07tZUsFmaj0vbeq1r72RLM2cO33gRmjxns9TcVi6S?=
 =?iso-8859-1?Q?AJYsovVKhVM8fELtHgT3R6fHIeLJXa85O/+EECR2vAJvC5Wj3VoJh1uZPO?=
 =?iso-8859-1?Q?fGKBLBd7jfyN/7BS17eXPN+q1hHDZsEOciZZ/clPbR6MSpwQcBqq5ZGE8t?=
 =?iso-8859-1?Q?Sb1eWmOLvHJkF4Db2O5WcItZ5omSxlJ5dOijUPiIaEuETcFAk6I9wJUWMH?=
 =?iso-8859-1?Q?c4j3Y25gTRVdXk8Wte7h5DzM7Tfj3q6TyxnSpL6VR3/6ojISG6rfE1imlt?=
 =?iso-8859-1?Q?iOqJmXnh1+wDmStZRTMU9uJgq3RiyPAFRUm2JXgfZogxd7t9hjXBzJ2dJd?=
 =?iso-8859-1?Q?Rn4m73CqqFpVwWvEfAJlmB350SCRSR4vW89xgxRm/M4W20R6U5/ABgTsgp?=
 =?iso-8859-1?Q?A7T3Cxj+Xmz3hIzDfdqsvbExAMQdfdddlfa1xx8fWQ3mkIB2GmO8RYizv/?=
 =?iso-8859-1?Q?i2ewChEwm2Zai3Aw97/Ltptk5Tbof2JoFf7lCr4/M+YX+3niWp1tVl/5mW?=
 =?iso-8859-1?Q?ED6AN7iIjIAgXCJM7ryg1f1GtdcvV8n3Tvg5ds66DJJPj5ebT8xri+/uv+?=
 =?iso-8859-1?Q?NWcIVupVgP0/I5dTevdKg9ohJyH/tuH1nP9PVDDTF3H670FD1cCKA753OJ?=
 =?iso-8859-1?Q?IjnEuRVdm/pBhaB4XTiTSQMirj6rjN+uhEifxgfSkdUgKMkIYlRuYN/FiB?=
 =?iso-8859-1?Q?W63y/9tyzMDCCNcEOpFgdCqqPTmT78dszUkfPh1h2AKMcZXLW/DmFs3i6d?=
 =?iso-8859-1?Q?6yTLhtQXk//frx6Z2eBDBV+zsyrlKTh/kUZLCQIYBEgoTxBUIOdEKzUXJG?=
 =?iso-8859-1?Q?ajxbXlnbvTBhqmXPZ7kZaHrbb7cIiUUzsnmmIzfLokxJjqDuK8/nZcmqum?=
 =?iso-8859-1?Q?5QWJNwgvrvLT7uhMcQDyS14/351RgBvZhoF03WAZdrLz8iZWRWVq5sO1hZ?=
 =?iso-8859-1?Q?RA3d6S3d9RjfhbXT9K7zBMZTurGEGaPLPmKyKIuoDCLBHFzfPk3Q1aiXJV?=
 =?iso-8859-1?Q?C2Cixo+LI1/dI6PUHwpEtCsoHja+VVTcz6H6FrSUVS1Ananv/77A1UKGct?=
 =?iso-8859-1?Q?Z94XBtgoBu85RwB0utG2OewrQKB5USpkkZKRucl3mjLhl9Zs5ZuMQcaAVb?=
 =?iso-8859-1?Q?0zAl1y35mUDKPuDfS6cifOoZbkXBTE9JHomY90Qu8sB0J3wrtLPrqLJBrM?=
 =?iso-8859-1?Q?KmO30msRUM7u8zy6/T/r7/DOEWLuRP749JY7arq2x6GekCU2COhFOjDOno?=
 =?iso-8859-1?Q?gWagFZnW5/b6ShgZ7YHdFeLrdxZK8hHNKaMCMeNnSqBrukdqVzRG37r6fA?=
 =?iso-8859-1?Q?fD4K95z0tA5WUUDgiv7yfDvJhnc6LHDBlhM41mEavg9kT1wXG7O0kSmtQj?=
 =?iso-8859-1?Q?ZA/C499l62z4oPtv2GL+ZgkERdY6/2OfH5FzXqcbgiK5uS21lMyzSIcCsH?=
 =?iso-8859-1?Q?cDDs/n5xz1j7U3HX4ItzV8JVn0i+uxQAzb+CWeZm7Irx/PVLzPWjvwVVyd?=
 =?iso-8859-1?Q?CxNFvoi1XiCsQZ9YSEYTZ0+ODWgW?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(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?SenZggk+Cp6pup9tIBD0jMc5X7hTOtE/Yz3gwnjPkrNMyXW/CnRSqZouXO?=
 =?iso-8859-1?Q?ejDYYzEUsaue5Qz8atHKb4h70rLlo4bhrCjal/UNSRzAZl2zh7bvRxzDiI?=
 =?iso-8859-1?Q?GjMlCunZejrcf39ro3/hnJIviv+tngaxcK7mHBQfAvCqnAWcQnkM32qUYr?=
 =?iso-8859-1?Q?fHyxjnlzj8X7PhtMPPuwlSoAbJAZW+x1qtG17sNFjfwQVJiKohVViZiLY+?=
 =?iso-8859-1?Q?9gvQraRAmKfpaHXKN6Uqb3Lb9LsLcEjwpzO48uE88T1yMOgl+DZfvh2Y9Z?=
 =?iso-8859-1?Q?MiI63MBfD9L1kNBt0bnc+vACFdT+/labWmpoq0usClOWb1O1Y5U0qWW3/J?=
 =?iso-8859-1?Q?5uettgAQ+vq7k8YgvHRIQtehvn2Q/x5RwgSD6D1hyQnK7Fc/z6BY3Up/Or?=
 =?iso-8859-1?Q?PSpYR2z8xiq1ofbUAcnQvJ53t+dFb8Q2rwUGL5xaS4VllzA/Eo47l7/nm0?=
 =?iso-8859-1?Q?ZybDE30IXPT2+aFNXzXDs3Q4k5ExLweY5GxCfhweEgXFws3tkkZSX9p652?=
 =?iso-8859-1?Q?Z8vWEnLi8sG1nLXCBSeuMzCq0yyvgssQW9x++1sRz38Tvc7pGKHiWIEECM?=
 =?iso-8859-1?Q?/BcqOdsL7H2C16M2PMM3/+CBzVR0ObxMSVwqnyo5T1n8tIUrA3DlzFn4mL?=
 =?iso-8859-1?Q?TF0ZjvScpng+/bQEBlnj56NarJA7VqrGJEAD7TX6xQ5Z3D0mXoSh2j1usk?=
 =?iso-8859-1?Q?qxqlKRLhypnP3FHQprtvTpXyw/5y++vCjUwhjkDFgP8sWsUnyQfZlM1rv2?=
 =?iso-8859-1?Q?xduAi1acxjObYmBGVp6gSf0A4xP3lEU3/LlIRhUtzi9voMZ90pLOm2KheW?=
 =?iso-8859-1?Q?ES6NeFjAoJLQca/pm5we+y+3Q2APkuAUtkFFOyXOFDHRbar3JOm4GAMyHn?=
 =?iso-8859-1?Q?v7NnuBb6hwZTf6aaVjM9wabxepKcJ0YXwJjoKNKKFgdU1ZPPeDw0BvA8m/?=
 =?iso-8859-1?Q?POqEo6MdyakpQMIlnpaFE6H32+Oyf6KqLAnnUMxh4g64BanyFE15X5nmC/?=
 =?iso-8859-1?Q?AgkFi6rFx4W+8maSNx5VjbBk6n+ZfVHUGQQByqYvhuZZmemzBS9Z8HQLev?=
 =?iso-8859-1?Q?rG+qPHRqMRnaplmcBMEKUrbb/5h/wF43BRbrOgf0Gqd2CTjl/FybUch/rd?=
 =?iso-8859-1?Q?JkQDXJYC5fBwynt7zv1tfKhoJM9i83+nYzsIOu5ma5W/Y7nG2XWRar+Zsr?=
 =?iso-8859-1?Q?yNx3QT9k5pI+kwy7sW2cUz/l+VxoJ80XAMtv7AhW2AiUL41Y8z8uTD3QPo?=
 =?iso-8859-1?Q?K6GDZPNGIguUntMcXTW2/ImE8l3hF9tQSgnTEJ/OO5H0e0qAEB+NgD5i2x?=
 =?iso-8859-1?Q?6P2g/RltEJ3012cIZeRtbJk9jWSXEjbHPYyggF3HfAYbgtHYzKcNigpF/G?=
 =?iso-8859-1?Q?HFbeb28lhFT9TachrS0+d3O+utOJEj0jqHCU16MDStxsNwwLnmGP81Y8cV?=
 =?iso-8859-1?Q?q9kodkKB1/nFJlF9zBu0pEETf8F260baqtYQ7MPjnnSJhqTaBxF/60jw/N?=
 =?iso-8859-1?Q?v+5O7y5Cfjr6RsdN9XSj++yDauocV0cfzWo9axqHPRTRrd8meKsKHRONnS?=
 =?iso-8859-1?Q?KkNB8UZT8DdDt6MOF/yBES66Xofa8+Hqxfo3lQxgonKFPSQnmoZIhCAgpc?=
 =?iso-8859-1?Q?Ov+NYU77h5ZWzyKSBS9tdoWvBxaaPTmyv7CSlSQrBidEM4CQ5FQHMf+A?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fd30497c-ccaa-4067-dac9-08de214b55c0
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2025 17:54:17.7563
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 2KEVDnbwkNVNmxjcbH3xxB4XCAxaaMSDzV9OysOzUaDondxPaL2A7Y9fwrnUvK6RaKsC14FGt7LX0sdk9MD7mKC4GPPkwuSlt8AClVfs2Bw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6323

From: Grygorii Strashko <grygorii_strashko@epam.com>

Factor out COMPAT HVM code under ifdefs in preparation for making HVM
COMPAT code optional.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
 xen/arch/x86/hvm/hvm.c       | 13 ++++++++++++-
 xen/arch/x86/hvm/hypercall.c | 37 +++++++++++++++++++++++++++---------
 2 files changed, 40 insertions(+), 10 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 2e47a71714fd..56c0059401d0 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -69,7 +69,9 @@
 #include <public/version.h>
 #include <public/vm_event.h>
=20
+#ifdef CONFIG_COMPAT
 #include <compat/hvm/hvm_op.h>
+#endif
=20
 bool __read_mostly hvm_enabled;
=20
@@ -1255,6 +1257,7 @@ static int cf_check hvm_save_cpu_xsave_states(
     return 0;
 }
=20
+#ifdef CONFIG_COMPAT
 /*
  * Structure layout conformity checks, documenting correctness of the cast=
 in
  * the invocation of validate_xstate() below.
@@ -1267,6 +1270,7 @@ CHECK_FIELD_(struct, xsave_hdr, xcomp_bv);
 CHECK_FIELD_(struct, xsave_hdr, reserved);
 #undef compat_xsave_hdr
 #undef xen_xsave_hdr
+#endif /* CONFIG_COMPAT */
=20
 static int cf_check hvm_load_cpu_xsave_states(
     struct domain *d, hvm_domain_context_t *h)
@@ -3991,7 +3995,7 @@ static void hvm_latch_shinfo_size(struct domain *d)
      */
     if ( current->domain =3D=3D d )
     {
-        d->arch.has_32bit_shinfo =3D
+        d->arch.has_32bit_shinfo =3D IS_ENABLED(CONFIG_COMPAT) &&
             hvm_guest_x86_mode(current) !=3D X86_MODE_64BIT;
=20
         /*
@@ -4965,6 +4969,7 @@ static int do_altp2m_op(
 #endif /* CONFIG_ALTP2M */
 }
=20
+#ifdef CONFIG_COMPAT
 DEFINE_XEN_GUEST_HANDLE(compat_hvm_altp2m_op_t);
=20
 /*
@@ -5064,6 +5069,12 @@ static int compat_altp2m_op(
=20
     return rc;
 }
+#else
+static int compat_altp2m_op(XEN_GUEST_HANDLE_PARAM(void) arg)
+{
+    return -EOPNOTSUPP;
+}
+#endif /* CONFIG_COMPAT */
=20
 static int hvmop_get_mem_type(
     XEN_GUEST_HANDLE_PARAM(xen_hvm_get_mem_type_t) arg)
diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index 549e25445e67..f8b2c90b7c41 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -29,10 +29,12 @@ long hvm_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_=
PARAM(void) arg)
         return -ENOSYS;
     }
=20
-    if ( !vcpu_is_hcall_compat(current) )
-        rc =3D do_memory_op(cmd, arg);
-    else
+#ifdef CONFIG_COMPAT
+    if ( vcpu_is_hcall_compat(current) )
         rc =3D compat_memory_op(cmd, arg);
+    else
+#endif
+        rc =3D do_memory_op(cmd, arg);
=20
     return rc;
 }
@@ -57,10 +59,12 @@ long hvm_grant_table_op(
         return -ENOSYS;
     }
=20
-    if ( !vcpu_is_hcall_compat(current) )
-        return do_grant_table_op(cmd, uop, count);
-    else
+#ifdef CONFIG_COMPAT
+    if ( vcpu_is_hcall_compat(current) )
         return compat_grant_table_op(cmd, uop, count);
+    else
+#endif
+        return do_grant_table_op(cmd, uop, count);
 }
 #endif
=20
@@ -96,10 +100,12 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(vo=
id) arg)
         return -ENOSYS;
     }
=20
-    if ( !vcpu_is_hcall_compat(curr) )
-        return do_physdev_op(cmd, arg);
-    else
+#ifdef CONFIG_COMPAT
+    if ( vcpu_is_hcall_compat(curr) )
         return compat_physdev_op(cmd, arg);
+    else
+#endif
+        return do_physdev_op(cmd, arg);
 }
=20
 int hvm_hypercall(struct cpu_user_regs *regs)
@@ -171,6 +177,7 @@ int hvm_hypercall(struct cpu_user_regs *regs)
         HVM_DBG_LOG(DBG_LEVEL_HCALL, "hcall%lu(%x, %x, %x, %x, %x)", eax,
                     regs->ebx, regs->ecx, regs->edx, regs->esi, regs->edi)=
;
=20
+#ifdef CONFIG_COMPAT
         curr->hcall_compat =3D true;
         call_handlers_hvm32(eax, regs->eax, regs->ebx, regs->ecx, regs->ed=
x,
                             regs->esi, regs->edi);
@@ -178,6 +185,9 @@ int hvm_hypercall(struct cpu_user_regs *regs)
=20
         if ( !curr->hcall_preempted && regs->eax !=3D -ENOSYS )
             clobber_regs(regs, eax, hvm, 32);
+#else
+        regs->eax =3D -EOPNOTSUPP;
+#endif
     }
=20
     hvmemul_cache_restore(curr, token);
@@ -208,10 +218,19 @@ enum mc_disposition hvm_do_multicall_call(struct mc_s=
tate *state)
     }
     else
     {
+#ifdef CONFIG_COMPAT
         struct compat_multicall_entry *call =3D &state->compat_call;
=20
         call_handlers_hvm32(call->op, call->result, call->args[0], call->a=
rgs[1],
                             call->args[2], call->args[3], call->args[4]);
+#else
+        /*
+         * code should never reach here in case !CONFIG_COMPAT as any
+         * 32-bit hypercall should bail out earlier from hvm_hypercall()
+         * with -EOPNOTSUPP
+         */
+        unreachable();
+#endif
     }
=20
     return !hvm_get_cpl(curr) ? mc_continue : mc_preempt;
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 17:54:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 17:54:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159203.1487625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIsZW-0001cG-AI; Tue, 11 Nov 2025 17:54:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159203.1487625; Tue, 11 Nov 2025 17:54:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIsZW-0001ay-2u; Tue, 11 Nov 2025 17:54:26 +0000
Received: by outflank-mailman (input) for mailman id 1159203;
 Tue, 11 Nov 2025 17:54: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=KiuT=5T=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vIsZV-0000bw-2h
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 17:54:25 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 74995b25-bf27-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 18:54:23 +0100 (CET)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by AM0PR03MB6323.eurprd03.prod.outlook.com
 (2603:10a6:20b:159::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Tue, 11 Nov
 2025 17:54:19 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%6]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 17:54:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 74995b25-bf27-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OycX37PFSRQ7kEwlQ7PN5S6yrKUfu9K9Kqvn/eGus2MXub8ly13AjXUA4TdH3B41fnXabLQDACYoYLOWb5C71QT9WPtTY0naPtnT6SPfeVzyUlPrZ6RDNNuXCGtNTrhtm9gYhVRLG/MEF6AcU0fkMYTtzVjGmUqU7o+fEOUoexFS8UIpYnsutmbR0S/MJbQQ9S8CXv54YLvMX3DbKIsQIdZQnc/qQiTAIieSwlQhQCMIhh6rKlRoQnxk1QX/I9whgmuXRFX5LUDeA4FJzJbkVLush/d8YNHs6g4wLp3f21zCAAA1idjG1Ufdn+RRe75scH1xI4GaFPXNGlnaj6BfzQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3A7OT5/ufNOH81JW5rVPduye4mgGyIZJbGANJBYeD0g=;
 b=spZvHUtbIkqKEcf51X/JNwFYQQtSkSQ9++f5+pBEEGKCT3BT0iX+7o+iPQWjvZUcJkAiTVi1pvTL/Qn5hVuXkrQxcFJx6vfvjm14qyeX9dlVyH6mHoivTo6rrU1R2jC/oE74qU67mF5/ZUJtR/Q3H7ArbXsop0OvQQKVrykY69MItcwYPxZj3WavSYivMULadZEiVyb3Pa8eXjM+FN0/ZKbEvgkirPgx2tAX6PcCkEkR+mBh0QHpN1GpT4DMnFGILHgK6E45dN4lq/CNVTlQEPWztqG5YF5CYsWXAcfborMS7izx6UDOcMP+6BjpzQALckUAYtL0ItlWqW6flvTB5A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3A7OT5/ufNOH81JW5rVPduye4mgGyIZJbGANJBYeD0g=;
 b=aKprAjUepm1ifDGVVrOQ3SNlnmUWmj4EPuLYOUrQIXEO4dqJQsub0nw07J7tjlVlID5oOEqDO6xC+rQKNHUsaX7FQuwDx2StaKKx+Ft80KIswcfoB7fetK3WOCu1ArNQrz6RjKmvdmPJykiNUD2E//oaidTXZz00nlQp98W9LnxLDm9REGjxI+qB4b+qsnzsFoZBXg1uqoLJ577Hi+rksgojQBBGZT7bgalpCbFs0EouBeMpVQFhobvt4HeKd8exMvflKp0NBLePNdnyqrfTUEvbxSGG6UjwgBiShTqU/KeFbVrEawnCvAnAV2fHQxqYtPABLQ9lzLVpTzyUInBDtg==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Alejandro Vallejo
	<alejandro.garciavallejo@amd.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: [XEN][PATCH 4/5] x86: pvh: allow to disable 32-bit interface support
Thread-Topic: [XEN][PATCH 4/5] x86: pvh: allow to disable 32-bit interface
 support
Thread-Index: AQHcUzQz9f1HDJfsFUqvNYpVQZRYUQ==
Date: Tue, 11 Nov 2025 17:54:18 +0000
Message-ID: <20251111175413.3540690-5-grygorii_strashko@epam.com>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
In-Reply-To: <20251111175413.3540690-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB3PR0302MB8919:EE_|AM0PR03MB6323:EE_
x-ms-office365-filtering-correlation-id: f5c5ecda-33c8-44ef-b6ac-08de214b569a
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?34k2rtnZj29e9BFV853TVwW8+xOoIfwb3jUMT5PUZnH5QbROumJmvI06j6?=
 =?iso-8859-1?Q?mq+pp0BvDrLtP2sjFSlsa+RPXEPoC35wrYFVY3k2bLgSmlkF+WZZzbK+pt?=
 =?iso-8859-1?Q?70cntC+8V0U5X/pjTHsvr7mO2jUbGKV4euDuY5i93KZwCxUCHC6wv3OHah?=
 =?iso-8859-1?Q?7qZXUAkr/AMy2L4wqPE/dQPk1qudn4pcol9lNzOtlrcO3QzB9GfDbmbqiN?=
 =?iso-8859-1?Q?6Cv9YOmdqiptpM06S1Ifs1Q3Q0ETPkR4YcMA065vAbSnI+ivm5Ra7FvhWv?=
 =?iso-8859-1?Q?nGZxNyTSZmgyILkJlu1iD3PqGPzA+CTuyhHeQ56iu2dYAqdiNjyZ5UqntO?=
 =?iso-8859-1?Q?xEDzlmzvArVSMPUnxx6sF3iwGWseABrVrBfvk32FBzODLW5lVoShvaeT6q?=
 =?iso-8859-1?Q?UkjMAbpMLfOrYLqs0jrLn5lX7Cc8UkKiDe/i729LhxHo471U74b44WUMCl?=
 =?iso-8859-1?Q?+2E3HxNkO7wjyDQQu7vhT9anAVvjUJI7MsifB9QBuWCP8rHQIZ3hHJZtJt?=
 =?iso-8859-1?Q?lYdVO4h6M3YXfdYtPEyIPdmFihXfBCc1p03R73CmcGRMfyRvMJ14P40wFc?=
 =?iso-8859-1?Q?FFM3dT5+YjTfVU00mEDe46qGLjs1Cwwe2bELzDGBwKJfLF1RD6iwG56FG6?=
 =?iso-8859-1?Q?3dlvl9DMPXqTMOPxrVbaIC53FhiujoYEFiZfKBkUvw0WgVQ3NXHboQ0pI8?=
 =?iso-8859-1?Q?/TdlaMQ9OTUyH6sJ7F/NtSE+tbvvTdygLqjs04pHFRg3xZYHfVuknnGLIN?=
 =?iso-8859-1?Q?7z2REYJoeobEdjG2ms0myhNArayan7K2tYdpdDrWkhscCmgSnEUS3dpIYU?=
 =?iso-8859-1?Q?Aeefp2dFr6u/ZprabklLRxQOfOyahilPIfssZ911tikVm1dmytAg03WPPS?=
 =?iso-8859-1?Q?L0VlsQmVz2D/jP0HrqlC9EHPRFc0FVVkNVk+I0nF+zMzhTUGqaCayGyOgv?=
 =?iso-8859-1?Q?PcXtq3m+T5xdZ48k41cGy1JJaQ+FPXjRttIwrPqY4cYPFmS0pwwUDmaB4o?=
 =?iso-8859-1?Q?95wfEjBCiDlGhFfus96gV1bhQF7ulqwhnKxITku2nQuL6q+2bHKGgkAWt3?=
 =?iso-8859-1?Q?TIOOERfJi+vUUzV/MumihZkbbx7qS0dGmUCyUQGoCN005hhe03reomuM/v?=
 =?iso-8859-1?Q?SseDiGdqf0qyHPFz0pfyyEFTwhNsKZOPJF35UqY/Hbh7Pi/mK2NKmzh58g?=
 =?iso-8859-1?Q?UntIcS1dEJvtg5sj94vc0lG9upt34OeINlVTyUoPdPUYSAaQd7IcoB3+u/?=
 =?iso-8859-1?Q?IBfe3Y4Oeig9YiT+30wOsNUlqjAXNzTdlEUYJhnsTl5TOhasyZw7hNCEnk?=
 =?iso-8859-1?Q?/JzUprg6a7zEjjvxZQqHYFgMKFfSvyunKILBnciQepQMNQM+sruxEYzXDX?=
 =?iso-8859-1?Q?vxN9ng8PIriDpLH0tm4hF/ooMWdqdYxJ4uUckyTugyhzmABh2mJHPON0ix?=
 =?iso-8859-1?Q?rEm+5OnyGPqHvHImm/t4zVgfWjag1KLmpiZ2/MifFIZ5jxDckdP6ZJU0vH?=
 =?iso-8859-1?Q?Y7uqfD8GlJYfbRlRFTINPTSQSq2ez60ajVmhF+mXFhqzre+V1fSArRahRi?=
 =?iso-8859-1?Q?2ynd4oOlCf8F3fx17kM4ZoMW3/8L?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(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?DqpJPe11S04FGPFBwb+hZMhbMyqEdFv7wYkEMaXjalc/DNiCAyO4GCt7xQ?=
 =?iso-8859-1?Q?lfXuY8Jk0I6AahwT+VF1s9PkPenioUJ1eBtwcMfEde9YWHapCfrHZ/bMOL?=
 =?iso-8859-1?Q?xR7jxONjGI9CBCNHbCobTeZFgVUHPXXbawcKZvifCHyOMnuL0JSDwGVgIb?=
 =?iso-8859-1?Q?OzElgKiBuGI5urfEb1pLUgKyxTmreATsqfKLl74CBCLmg9IV5rptbvf65r?=
 =?iso-8859-1?Q?eMDwcEmd/oKLBCfJVVs+LZL2aSzkPVrovfBGAA2Lv63Kvet4cYkVWxIzui?=
 =?iso-8859-1?Q?r0or5XHIgzQqcwe85fQ938vPx8XMSFLO//lnCjIw9k6YvrfBVthN+kPgZT?=
 =?iso-8859-1?Q?MsyBpivJM0XWxC6BTvEvDOWF/lu5/jEX26zjASXfFx0NpFfCf4zYyjicOF?=
 =?iso-8859-1?Q?BNCaGz9YBbPYwIWPDgJw4Dqg5fIR/kGvzDKgy6ktu/9FOudF+CG6chJuG1?=
 =?iso-8859-1?Q?5N1MgiL1uulCd2kQ5UMiI4SSHgpAtfDRKuyrFX8Ct7cY//e4Bq+lQLs5EJ?=
 =?iso-8859-1?Q?+OFbNM9UoOWTQgN/70P94TitHuE7+c052TDda8gIO2xPZondbB3CkdcAPL?=
 =?iso-8859-1?Q?OiBxVxxz6gHX4gJJZ3hfE8Qlp0ZaDkqjQqgU4P5y1cntrmmd6YvfSRMXuM?=
 =?iso-8859-1?Q?NONJ4Due82wSJxd7U5VUBUgouc+gd/zqA4obzp+LdhWSc9+Ps4aHHd5tyf?=
 =?iso-8859-1?Q?/CsB6nlbPRrvqhXq00Tj9yBZtI6t1s5ANkdyP9CsyF0racJLWpMO/qkqng?=
 =?iso-8859-1?Q?N0AtByKUmjCnZw/e/a0PnuWI2n6nzGl3ArWE9l537YxoQoqqdHfUq2K+sz?=
 =?iso-8859-1?Q?8mHwi+Rsj/E9S0PSwRwo9Yv3PFFplO8GjhU3X5EkcDSSC8dQOpacBzyZs3?=
 =?iso-8859-1?Q?e4IFqiClGK6amu6CFdQ92mOk9QHlqhA8NXU/WAypWckhaQRsVxpgsSR+Rd?=
 =?iso-8859-1?Q?Xv7oA+gPTa59rwJAykwjKEhPHBvL0iwKzRvNfZrnPwjMeYMKXAVqwZGhvq?=
 =?iso-8859-1?Q?SMUeOCZKrA9l8dEl1Euco1CmJpKDNgYSjLk3fRmWqE/WisvBdpRaRR4d5I?=
 =?iso-8859-1?Q?UxKCfR4ksGCLR4WBdE6i4Dhtc6LLNt/iwMuUVKvhmrKJeErAyqGwVceGeb?=
 =?iso-8859-1?Q?+bTKLvYcXsY35f12RySAa8STsorFmoo5LE8P/6I1I4+bK9vYxa8r98qzYb?=
 =?iso-8859-1?Q?w69VsCzzUPAzlB1ieiUaFREFrJS26hjH77CTtzq5cNu12ZgEallNdSSqqA?=
 =?iso-8859-1?Q?nMcLzPs9IvMM6BgLZWnzUmIvQCRjtbjFRLqeElVc0HdxtLBK+sfJldXvzV?=
 =?iso-8859-1?Q?pGzbUJQoW2tNTUW1siwl0/ioY6qSQgwClo4I8wi3/h73T0sYNnQnbe5Eqt?=
 =?iso-8859-1?Q?Q4c5ABgRp1LurYZmunfMApRG4fy9Ldy56GfskhTwZEbBSkBjLc6hhn3JqJ?=
 =?iso-8859-1?Q?hmWn+ZJuSRwJr4QDe6TsF+CHP/DVQoz5itlLchlhRda9kykwJ28nbSvuGH?=
 =?iso-8859-1?Q?QSbk8OPY8WKRWvxEGxoyLpQQ2SkdeXiLRrxwQJlQy2FiUNU1Whgat4FuXp?=
 =?iso-8859-1?Q?DDkK+5kkX6vxmzYXnmUApIMs7CMdDb8FwyXPkwQ69HoXCBVRA+Gnley4uO?=
 =?iso-8859-1?Q?qqZT65v8SEUPAwyR3+gYB0yTzNi3EsyELhKrI4mb8hxQd2ubBc0j2qBw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f5c5ecda-33c8-44ef-b6ac-08de214b569a
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2025 17:54:18.0751
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Um0gOsVvvd6DYlXT7iIs+/HLO4Ry7QLb03U1IRxCEkwOcZI9zL7RH+FQnkmvTyzvNHABNyCwXj3MOYnAGXlVkpTAYlh2tyk5zTPy1gQwfic=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6323

From: Grygorii Strashko <grygorii_strashko@epam.com>

For x86 Xen safety certification only PVH Gusts are selected to be allowed
which are started by using direct Direct Kernel Boot only. There is also an
assumption that x86 Guest's (OS) early boot code (which is running not in
64-bit mode) does not access Xen interfaces (hypercalls, shared_info, ..).

In this case the Xen HVM 32-bit COMPAT interface become unused and leaves
gaps in terms of coverage.

Hence now all prerequisite changes are in place, introduce a
CONFIG_HVM_COMPAT option through which HVM(PVH) 32-bit interface support on
64-bit Xen can be disabled.

By default, CONFIG_HVM_COMPAT is ("y") enabled and accessible only in
EXPERT mode.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
 xen/arch/x86/hvm/Kconfig | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index f10a2b374448..33152f2a6bbe 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -2,7 +2,6 @@ menuconfig HVM
 	bool "HVM support"
 	depends on !PV_SHIM_EXCLUSIVE
 	default !PV_SHIM
-	select COMPAT
 	select IOREQ_SERVER
 	select MEM_ACCESS_ALWAYS_ON
 	help
@@ -70,4 +69,22 @@ config MEM_PAGING
 config MEM_SHARING
 	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
=20
+config HVM_COMPAT
+    bool "HVM 32-bit interface support on 64-bit Xen" if EXPERT
+    select COMPAT
+    default y
+    help
+      The HVM 32-bit interface must be enabled for HVM domains to be able =
to
+      make hypercalls in 32bit mode. Non-PVH domains unconditionally need =
this
+      option so that hvmloader may issue hypercalls in 32bit mode.
+
+      The HVM 32-bit interface can be disabled if:
+      - Only PVH domains are used
+      - Guests (OS) are started by using direct Direct Kernel Boot
+      - Guests (OS) are 64-bit and Guest early boot code, which is running=
 not
+        in 64-bit mode, does not access Xen interfaces
+        (hypercalls, shared_info, ..)
+
+      If unsure, say Y.
+
 endif
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 18:22:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 18:22:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159275.1487640 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIt00-0007cl-Dr; Tue, 11 Nov 2025 18:21:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159275.1487640; Tue, 11 Nov 2025 18:21: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 1vIt00-0007ce-AG; Tue, 11 Nov 2025 18:21:48 +0000
Received: by outflank-mailman (input) for mailman id 1159275;
 Tue, 11 Nov 2025 18:21: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=KiuT=5T=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vIszz-0007bJ-Iq
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 18:21:47 +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 4538a3b9-bf2b-11f0-980a-7dc792cee155;
 Tue, 11 Nov 2025 19:21:41 +0100 (CET)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by PA4PR03MB7453.eurprd03.prod.outlook.com
 (2603:10a6:102:e3::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Tue, 11 Nov
 2025 18:21:39 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%6]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 18:21:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4538a3b9-bf2b-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XPgXiLgpr73H14i3Tguk2Qdop3C1HpfQj7i6UoLyhTq/gEFyqVEVmVVrh5+0fDvcJm8DWia1wY8hp+z/OsTawmtUPkOKkPXKbPMmy3CBc6SEBBRVDDLYBSPZWYZH6AJPeYDk4eJDS4aXPSvxZDc6NHfwz3MVIEBLXM/dRkF8rNQtaTFSxPAWOteN+sxGNCrFxv+ttb/kTkiZoXvUsKtQyLCkHn5QHj4Ueq66cwOknmoER+PThC/CgJdTThY+2wSSOPe2SJgEvYM8CuPt0cmMhANI4YBIl2JqgtUSltXzvb6+SIUKPaT48VeRvPmP+cEYozTT0m0jH4DeKYfe4ltBEg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=H21cx4bnj4u1fPlLjXy2JWQVGn4I7j0WjgmUiq2H2pA=;
 b=OdWefzSG8ojKzXcs8zuM3JX90+jvm57E6O+vC+VdU2QuMocIGqy1eAAzsMmibXxZGE9iCWPGlGE1Ukk3HIGvbRw2u4xiaW0O8Ym8qSKBYIvTtfEnPdaNKooayZlymhOw780NouTLRpOG0t7EF9IrDkHoaCjF7pLENtAas+Xpie8vWQzqQtifDZ7s9Uapd5asmMNAoEwUbIdQNyy5qCvFmUbpKmO9evnS999DfUjvvFSEfhuZcAXhnS6JU7S/LvvBL2o54piFCdChsegCnPT84nWidw8w2FFICp4ced4MGEh66T1q71ZJrAO7MF7HTZ/TKpbnREZGqLBoBlS0GQsu3A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=H21cx4bnj4u1fPlLjXy2JWQVGn4I7j0WjgmUiq2H2pA=;
 b=jGjF8lswOm+CsF04YQ64/SFmYiV9ix2mifksgjg36g+FJ5qKGXwcRYTflEVbMVt/VvRWKTp0KY90Gjet55K4Cp7GSU20KDGDXVhuz2yswq+mkxOT9fTOCIIpkbo4rzwfmA13nAvx5A++5PJmEY1GfX95/PBxQm+Peuk7yWEukdVpcnKmqMv2O4riUTXNFlZitbRjTBa9oLzn1l18LMk9/oHx4RCwBZFcZsotik2h2c+QcIfM02Hhcl0cK63P4ivaf8/eIejbxYsp72MT2EDIRpSASBt4TD7N+OcYOVKCrf2e3VQy4OBgM1YGhsPlcIictCguK3CLLk60+PsBd2R5vw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <7e3422fd-893c-41df-b783-71e02335aaef@epam.com>
Date: Tue, 11 Nov 2025 20:21:34 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen: make VMTRACE support optional
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Penny Zheng <Penny.Zheng@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Teddy Astie <teddy.astie@vates.tech>
References: <20251031212005.1338212-1-grygorii_strashko@epam.com>
 <b6337cb5-da85-492d-bba9-688e35695c46@suse.com>
 <e55f990a-1781-4651-a899-9d78bbbbdfd0@epam.com>
 <63525e6f-4e17-4155-87b2-47b9ac9ea474@suse.com>
 <acac87ba-5a5a-49d1-925a-8754f4a3179f@epam.com>
 <0613cfb9-0f6e-4c55-a250-ba2a5aa0e182@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <0613cfb9-0f6e-4c55-a250-ba2a5aa0e182@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0037.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::17) To DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DB3PR0302MB8919:EE_|PA4PR03MB7453:EE_
X-MS-Office365-Filtering-Correlation-Id: a2b36b9b-a8bd-4937-8f61-08de214f27c8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cWJkWXdDdXNreDVpd29HU202TnVjSnZ2bXNFWjVWcnlDaWJNRk16QW5YT2RP?=
 =?utf-8?B?eXBLaFAvWHFTQytZQ2xZTjlPNDBqdEQwQnREcmRGaGFUb0RHY2VDWlNEd1VW?=
 =?utf-8?B?cWc0MS9VV1k2WDJDZWVFTkVTSDdvZzhJcVkxK2ZEQ3FDTzdadFJVdjFsaG9J?=
 =?utf-8?B?bUxQbUx4Ri96UXUvaW5FNkpLMlhYQkhONytJbE1aYm53TkRXbk5odlphOGNE?=
 =?utf-8?B?N1ZyZkU3TkNQTnJzOGkzdXVGQm45VGJVb0tSZnpwcy9VZm9XbzE1clBwbnZ2?=
 =?utf-8?B?b1ZIU3dUc3pPRFhES2Y4UFFmcmtZRTd5UktZcko5bFZGUU1aLzg3eUVac1Jy?=
 =?utf-8?B?dmxDQTRMSENQN3ZCS29ScW9PWG5uMkdZL0pSdGFKa3BxNGx2K2lMU091VnU5?=
 =?utf-8?B?b3d5cnVCTGx5dWY4ZXlMY0RNS1NDdWZ2UnQzdG96MHhIbEtrdXhQRnFzK0NX?=
 =?utf-8?B?aklDWWFWNTVGbDU5Y29BbTFwbGJjeTZMUWZOSUI5aVhlMWpNOHdvVlpJY3hu?=
 =?utf-8?B?d3ZvSXE2d2ZLS2VUeC9md1pOMVJDZ3hhNnY5Z1I3SFV5dVZLdkpYYXFXWkpu?=
 =?utf-8?B?dVNsQVdHV1ZFRDNSMEtSWjBiYVBKV3M3eUZWWWJhU1BaNjdFY0NQVXFqSThV?=
 =?utf-8?B?dWc2eDdpWm93WnlZQVZBNFdnd3JEb2JzeExYWVVLK3VUejN5ZHpvVmxxM0pB?=
 =?utf-8?B?MUZIOEs1TGJYdEdMZ25zSUxidi9HMnlIQ2ZRQXFieFFva3dsOUVKL3VUeWFY?=
 =?utf-8?B?OEV6U25vYzBibXNIMlpFaEI3WjVlM1d0b3ZsN25UckgzYTM3RTdaS25ITlRU?=
 =?utf-8?B?dE5IY2lzbUNMM2I4OHVoYkpMbnhEbk85bmgvSllQTnlwV0FSQXFEaElPS3JZ?=
 =?utf-8?B?eTRLU0ZSTzR4bk82WFZnYnNZWXoyYUhqZE85S0EyYTVtcDJPY0dROTZYWTc3?=
 =?utf-8?B?Wm13QUlGbDZkMXhNMExQdjR4Q3VaTWdHNkN2YnZQKzV5WDliaEZCaDRQTmwz?=
 =?utf-8?B?MnJxUkJSV0FlT0pqZ0RqZmx2aW5pRHRmMFVXRi9HR0t6TUFOdk5QenErcTRD?=
 =?utf-8?B?bDg2L3NCMzZCbHVwVVk4N1hWL0d1b3l0SGJncWp1RE1hby9SNmRtMkIxY1Jp?=
 =?utf-8?B?N0dKb0d4a3QwRC9Rd1FqS1BXMnYza2ZWOXNoVDVQbUo3WnV6VS93NG5JN0U1?=
 =?utf-8?B?TytvY2tkMm5sTTBnbjFZU0prTEZWY1l2TnZ2Z2NoTXdPU2QzeDluU3I5S2tU?=
 =?utf-8?B?UzZOSXpLZ1RYVmZrMWUyMlZHUFZReC9uUk5BTFYrQmxqakJRQXhwUUhWS01k?=
 =?utf-8?B?ajI2L2ZkUU85Mm81OW5tcFJqcW4xK1pvaW1rc3NnT1J3QXFqblEyRjFsZkps?=
 =?utf-8?B?QTJrVWNOTDVoY3dpcmZZeTlUc2lCaE9oVUlURU5STXBHT0ZvVENsc1dpUnJY?=
 =?utf-8?B?Q0I3amlPZzdWeDM5Zzl0akdkL3VicldMZXRxM3RoQnYwUmhweVlUZkRpWERr?=
 =?utf-8?B?QmNmWkpHclA3TnhrNHlWTG84RU83aWFNakM3YnlHUmJmbm9FdnNHVDBHUlI0?=
 =?utf-8?B?b1RWcGREQzdFUDkwVkFkRHpQUU1lRktoTE5SNmF6RzVDNTlJM3UwODdEN1Vm?=
 =?utf-8?B?c3liMmM1TjF6UEFXOEdZR0tmQXp6SDhRN0pWdEt5VHhsZ3BhczdINHpiSUxw?=
 =?utf-8?B?K2RqZmp6WTliaWtRQ3Rzd3lwY3VZc2QrdEMzNW04bnczWHh3WkpvZ29sK2xl?=
 =?utf-8?B?aStqbGd4QWszTDRKelExVWIwK2JDcndTSXhIWUMzcTMycWI1T0lFSWduK08y?=
 =?utf-8?B?THVOZGVzQkpGaWp3RVpmd05HL1VBeUIzR0RpbHFZZU9XU0cwR0J4aTE4cEtp?=
 =?utf-8?B?MVY0c0VVbGRldWU1R0o5N1h5bkVBTW1WYzBhMzJsd1dDR0E9PQ==?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OXVrK1dnS0pTUmYxWFhoMmw4V3grOWREUjNaUnZ0ZVJsWmpRWWtUQldYTDJx?=
 =?utf-8?B?NDFoVFBicEk3dDFJM3U0UWJOVG93NHNhdGVuS3duSGVxaXdQTWtMMUlBUDZo?=
 =?utf-8?B?OElKTjdnN3MwaXExanpxWUltTlJEbzZKM0RuSU1YWFMyKzh1Q1hpU1pLMkVR?=
 =?utf-8?B?UHpKeGx6elNGdjNyQ2xFLzR5dzFPZUtLSHpFNGJvNElTWnFGd1NqT09Ydnli?=
 =?utf-8?B?ZWpWNGh4VlY2RE1PQWlCQ3FxTVd2ZXc4RnpoNjJqbXZ3ODY2b2lqbUxwN2t1?=
 =?utf-8?B?bU1MbVNZdm5TRk1LdUJuLzBsU1J6NG16citRdnQzUSsrOXZzZGI1Wk5vMUpP?=
 =?utf-8?B?aTVaZEsxcVFxZkdnUkVVMEFsSzBGQzA4dERQZ1FsaFpUL0ZoYWloazFPOWZD?=
 =?utf-8?B?SHFyQmR1VUFtQXNKUFJBWnN3Snd0TzlvL3lwNjFTMStIVUVTQnpYWDBFdzJQ?=
 =?utf-8?B?bHU1bWpOWENMU2dQQ2pWRTBUYzhJdHMyc1VxSll3aEQydlV6QlhsODkwb25q?=
 =?utf-8?B?M0VGY1JjeFBGWTEvVHhFSGQwOGFpQXBwYlV5UDJuc3laVklNR2RTcXVjaU00?=
 =?utf-8?B?R1ZVc0lPU0l3bVR5M1o5dTNsTFVVcUsxUHIrUEJtU2tEdjVoUEZjeCtIVVp4?=
 =?utf-8?B?YTdHYnpsTWgxdkwrRlJzODg0NHE5SUJVN1dOWi80T2FzOHgrWUJCSUQzeHJD?=
 =?utf-8?B?V0QzK2dOaXdKZEJPejZmS0liM0ZsSEdYNVlFV096WnRUZ3YyTHBYakV1M1Zp?=
 =?utf-8?B?d0pQWmJST0c0SVREeUV2TU5meWFlSU9nMzhtcytnMzllQWJrcEV2ZkdmWE5m?=
 =?utf-8?B?RkJGcFFWT2FlcmdpNjR2LzFQK091YmlVQUkrTnlCWlVzbGlRZ1BUcWxHY0Zw?=
 =?utf-8?B?cVRjeHQzVnlJY0tOcHJxMVdqZkZTWlptbTcwKzE1T0hNVGp5QUowaDFxZ3R1?=
 =?utf-8?B?VlFVbGJ0VEZqUEYvaW9wQ000UkxmQXgyeTJvSWNZak1ZMHFwRVZkU2l1SFJp?=
 =?utf-8?B?d2ZwSXpQeTRnQXYzeW80Qm1XSXJJM0plOEVHMDd5YjVjSmJrMUtiWDlnUWI0?=
 =?utf-8?B?SUl0a2paajJJQXVPdldBWWZRMEQ5ZUlweEJ2R0JDbXRUUFRtT08xbTBDU2Ew?=
 =?utf-8?B?QmVHYWNZR3psTFY5L2NCUlQ0Qks1NDFIT0MwcncvQ0ZBakxpRWJRSmhGYTli?=
 =?utf-8?B?UklmUkRiay9RRlZFd0ZMc3ZiMXM0T0RxTzFSTVdKVkd3aGRBZEJGVHl3QWw0?=
 =?utf-8?B?YXpHNnpiSEw0SGlxWTRYeXNEOHpMVTIzK2ZkRTNoWVhSNXF0dWkzWHBnc0c1?=
 =?utf-8?B?WW0vcGRJWFVISFVXaFd4SE5vcDc3Wjdkb0xvRVVnbjI1S1M5VTU1NldoQjRy?=
 =?utf-8?B?Sk5yL0J6WVBLZDZhZ2R4bk9kWUdGbkE2WFZObDN2a3B6QlFEOFNYQkoxOWRh?=
 =?utf-8?B?c2dudjhMMVN4ZUsyZFduaFptOHFIUU9iLzNrR252SEhkVldvamREQnBoYlZz?=
 =?utf-8?B?cVhNSTMwMm5CTTBUeWRDVUU5NlMxVjlKU2RTMTdkY0pvRG5RcUxUb2xMejlw?=
 =?utf-8?B?bFBQNmNWQzhTMithQ2c0eUE0cEpYbFdZNWVyY1FObzRYVkdsMVAyb0JPTVhL?=
 =?utf-8?B?d0NTc05GV2lQLzA2bm5ETjdRV3BZb25WSTFTb1Q2dXNSNkVmZjZPSmpVcUFE?=
 =?utf-8?B?b01LQWRaQy9la3FIT1Z0ZXdrWDlhN3llMFp2N2dDQmVJaDFMRGd0bzhyZlhK?=
 =?utf-8?B?TnliSlhVcjk3TUUrWVJydnByNDZtMEtwNVZrb1gxcWlYaTJPMlQxd2t3K0ts?=
 =?utf-8?B?a0t2RUpiZkdmd21FSmcvTUlqWXVySDN6MnJBVEVkSmxHTUt1c3lKSEcxRWNM?=
 =?utf-8?B?YTAxY1VuUzIzUGFJTFcwWnQxQUNMVFg1d1lIa2kxdFZwVEJnMWpPaFMyck9z?=
 =?utf-8?B?dWYyWVlZQWJhZHZEY0l4RnZpWTB4cDlnbTJDbExQL0ZNYURZOXYzR1BwdWRj?=
 =?utf-8?B?eDdhZ2FFQ0FTQ2pQR3VaYUNxOVdQaEMzYmlnZmZSOTR2RXpYb095MGZ0d3Ix?=
 =?utf-8?B?VXVaYmdjc3Q5S0lid0xENjJnakNjZWhRd0lTMkF1ak1Pdzloc2w3N3NuUzcz?=
 =?utf-8?B?ekpMYzlJZWc1dERYRjRxOVlLYUZIbXRZVzhkODRmTDJTVC9BQjhTc25oUlpP?=
 =?utf-8?B?VFE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a2b36b9b-a8bd-4937-8f61-08de214f27c8
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2025 18:21:38.8473
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: sZ7ATySaJ2N4EqcgycP9EdejeQFo42rg2G7CV4+J0GMNFPT2ElfON36nraGLsG9h46vIsUOY24TAHIPK95yy3aKaEJoCIs78u6MotuBba/s=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7453



On 10.11.25 08:36, Jan Beulich wrote:
> On 07.11.2025 16:47, Grygorii Strashko wrote:
>> Hi
>>
>> On 06.11.25 16:09, Jan Beulich wrote:
>>> On 06.11.2025 14:50, Grygorii Strashko wrote:
>>>> On 06.11.25 14:00, Jan Beulich wrote:
>>>>> On 31.10.2025 22:20, Grygorii Strashko wrote:
>>>>>> --- a/xen/Kconfig.debug
>>>>>> +++ b/xen/Kconfig.debug
>>>>>> @@ -155,4 +155,19 @@ config DEBUG_INFO
>>>>>>  Â Â Â Â Â Â Â Â  "make install-xen" for installing xen.efi, stripping needs to be
>>>>>>  Â Â Â Â Â Â Â Â  done outside the Xen build environment).
>>>>>>  Â Â  +config HAS_VMTRACE
>>>>>> +Â Â Â  bool
>>>>>> +
>>>>>> +config VMTRACE
>>>>>> +Â Â Â  bool "HW VM tracing support"
>>>>>> +Â Â Â  depends on HAS_VMTRACE
>>>>>> +Â Â Â  default y
>>>>>> +Â Â Â  help
>>>>>> +Â Â Â Â Â  Enables HW VM tracing support which allows to configure HW processor
>>>>>> +Â Â Â Â Â  features (vmtrace_op) to enable capturing information about software
>>>>>> +Â Â Â Â Â  execution using dedicated hardware facilities with minimal interference
>>>>>> +Â Â Â Â Â  to the software being traced. The trace date can be retrieved using buffer
>>>>>
>>>>> Nit: s/date/data/
>>>>>
>>>>>> +Â Â Â Â Â  shared between Xen and domain
>>>>>> +Â Â Â Â Â  (see XENMEM_acquire_resource(XENMEM_resource_vmtrace_buf)).
>>>>>> +
>>>>>
>>>>> I was actually meaning to ask that "VMX only" should somehow be mentioned here,
>>>>> but then I noticed this is an arch-independent location.
>>>>
>>>> Right, Arch code advertise VMTRACE support with HAS_VMTRACE.
>>>> In this particular case:
>>>> config INTEL_VMX
>>>> ...
>>>>  Â Â Â Â select HAS_VMTRACE
>>>>
>>>>
>>>>> I'm not quite sure we want it like this (just yet).
>>>>
>>>> ?
>>>
>>> To rephrase the question: Are we expecting anything other than VMX to support
>>> VMTRACE any time soon?
>>>
>>
>> That's I do not know.
>>
>> I assume your point is similar to what Teddy noted [1].
>>
>> I think vmtrace code can be consolidate, but question is on what level(s):
>>
>> only:
>>  Â xen/arch/x86/hvm/vmx/
>>  Â |- vmtrace.c
>>
>> or:
>>  Â xen/arch/x86/hvm
>>  Â |- vmtrace.c
>>  Â Â Â  <- vmtrace_alloc/free_buffer(), acquire_vmtrace_buf(), do_vmtrace_op()
>>  Â xen/arch/x86/hvm/vmx/
>>  Â |- vmtrace.c
>>
>> it will require more work comparing to the current change.
> 
> Well, I don't think code movement is strictly necessary here. But as I'm unconvinced
> of Kconfig.debug (in whatever subdir) being an appropriate place to add this, for
> the time being merely putting the new Kconfig option directly next to INTEL_VMX (and
> then without any new HAS_*) wants at least considering, imo. If and when some other
> use appears, HAS_* can be introduced and the whole thing moved.

For me it will be fine.

> 
> As otoh abstracting things in an arch-independent way also has its merits, it is -
> as said - not quite clear to me which way we'd prefer to have it.
> 
> Jan
> 
>> [1] https://patchwork.kernel.org/comment/26637627/
>>
> 

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Nov 11 18:25:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 18:25:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159286.1487651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIt3Z-0008FU-U5; Tue, 11 Nov 2025 18:25:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159286.1487651; Tue, 11 Nov 2025 18:25:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIt3Z-0008FN-PS; Tue, 11 Nov 2025 18:25:29 +0000
Received: by outflank-mailman (input) for mailman id 1159286;
 Tue, 11 Nov 2025 18:25: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=KiuT=5T=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vIt3Y-0008FH-C2
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 18:25:28 +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 cb8875f7-bf2b-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 19:25:26 +0100 (CET)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by PA4PR03MB7453.eurprd03.prod.outlook.com
 (2603:10a6:102:e3::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Tue, 11 Nov
 2025 18:25:24 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%6]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 18: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: cb8875f7-bf2b-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UB+Tu9YSHCFM9Qmzpsrc3SFnOrMeZYJaDcQtz0OJg8oD5zajFw6ckjcUpUGYQjgQHGfu5YQcM8sjbDJ1jZo2XVQEx7mW/rJGcp8pStWLnIjZQrCcpkxAQUIcDhvz2F/WOG/7l+P7pgFplbZmDeHIa9NFZGDDjbPopBzwHO6z23D+ql6UBId7N4qCZx8MHlYpkoXJ8XBEfASQWBkXB5UaEZcFttE1JDsOhcrDtqrGAN/yAfx4gb1EO5Ob3ssZ3qu6AhC5oNNAD1vgoPYV0uakyORU5SfXSVngM18ulfzfD2rqjJ2Us4Zhj/Hc1xnCXi/ebGi6JzWbOwgzRJKwDGvQ6A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MujHwEvH9fQGdWuKIksiRjYbWNiTAHP3lIb0CxOPtb4=;
 b=QFcI3ExIKZd6e+etoJoStdrfvuCm0boJLdO3OtkZ/+xqCXcxuOzx3v4ULi5pwx1TTlr/wvvPKutwO7VjsA1AyOtt15rUdQ/G3bfQNuf+DZV2DDIcVa6KrnCQC6NKhEUXpdvyg+P3z86l8OhayxmgcXe/E7w5W0rWS/XCLmxOaxQbgtSrn34zUegYgEniewuq8x57MKgc2e1/ObN1W4SvGrbNxYQCHgM7+fhrLrdvaWcVnfTzU+WZI9av9Y3UUJmEiVeka+dnOzQ6QM7E6rmv31OyzZLszvWZHJW4xcrJVzlmsYb+PFrxK4NyZXe70L8VKfyHBqRLMOBYpEcDJpeB1A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MujHwEvH9fQGdWuKIksiRjYbWNiTAHP3lIb0CxOPtb4=;
 b=RwenEz+4UEPvwngZ69bjrbqKmGgv75DdcXJHXqH8B+JY42/lsXr3KOQg/eIrxZrNdmWoE4rMR4CJ3xKR42OES/Ng2x7Dito/oFPGmNyhJV7DJ1O426B2X2+7ox1/ewcYoTC2z4C+WJ7s0Ke9ibDUme0VancDjXFJ4I4zWg/LY0n81/07I/SPsU3a4tL6ZsQtxdn3B7tXf0WV4dOwoTB+mFjudRD9wyAU4pc1iwhn6iWm7WPu5b8EJG4kO8dQx1hu3scbJD0HZ3Yy3hHZFzKT0s5zOi2+OjnD7F7BefpP06q/fGLtnGosRxmh6GWg12qmndJZXXrZdxnPeVScddM+fQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <0a5af540-214d-46cc-93e5-f0266bb79064@epam.com>
Date: Tue, 11 Nov 2025 20:25:21 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v7] x86: make Viridian support optional
To: Jan Beulich <jbeulich@suse.com>
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Paul Durrant <paul@xen.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <20251031161716.1222956-1-grygorii_strashko@epam.com>
 <a4d3eb8d-17ea-4d3c-87ef-ba5c3477b8c3@suse.com>
 <edb590e4-340d-4a0f-9543-0dfdcc7b54b1@epam.com>
 <210edee7-8525-47a9-8191-ea7d94db5fce@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <210edee7-8525-47a9-8191-ea7d94db5fce@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0042.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::14) To DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DB3PR0302MB8919:EE_|PA4PR03MB7453:EE_
X-MS-Office365-Filtering-Correlation-Id: 99f8f888-357b-495d-8117-08de214fae58
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?akdNOTkxQ3BEZXJHUHhIRTVNcDlOeHZSaTAwczFqQjdhZkp6VFBOTmJRU1lG?=
 =?utf-8?B?R2s1OGpRQnJ1Ym03L1oxOGtwWjA1Rmc3OFBhOXNqSmZpLzFrNGpLOE9TY1VG?=
 =?utf-8?B?MnNMOGVhUzlhbFQ5T3NSUmV0SVpCMUhjMGY4NVNvL3QzTlgxRmJ4NnV0ZjYx?=
 =?utf-8?B?OHo5dVZ2c0FzNUNVT3VhME52WStYZWcxVEN0c0pBRUUydGlHaHI5TXlkSEg4?=
 =?utf-8?B?MnVvdjJmL1pucThvZ01CQk1FaXBxWDA3WFUrMnljcFpGUXlPUllETXJPNjM4?=
 =?utf-8?B?RHVnM01NNGxySGpZQUVPckp0aFFaZzFXc3liaElLZzBkdzE0eTZQRjYvcnNE?=
 =?utf-8?B?bUp4RVVhb0RXb3hCeERWVTJ6cFZzeG9zWFRycndDalZtOUJoZ3d1em1wMnFM?=
 =?utf-8?B?Zk9Ia1kxNVVLbDNFbHFQRjBFSXNORGs2S1hQOTZ1SEs2ZWd4L1FMYUVpWmZt?=
 =?utf-8?B?YVU4bGtRamo0UEE2YXAwRzFOZXFBUkhnV2JLak5BRys3UGIyZXhhd1ZGanlT?=
 =?utf-8?B?UythL2dldGFCOThyU1QzRlNqSVFqUmU4SFNiOUFiNFJtTlhzZkt6bjE5ckVi?=
 =?utf-8?B?UU96Z3VFMkVJTG0zWVg3UUp3c0VaYSsvRUtHUDF4TlFJWkVPbVRtTmRFSnZi?=
 =?utf-8?B?WjFnZXpUVzZ4T1IxdHBqQnZFV0kzN1NqaGJYaDBueE9QZWFFYXVzUm1mQ0J2?=
 =?utf-8?B?RnkxMmNRZFBMcThldVd5NVh2a3ZhUHNoMjVsSnJVTVFpM053ZlJHRXphaHFT?=
 =?utf-8?B?SkJJem5zK2tkUldyVW1zOXZnU01jUzFhWSthVkZoZ3Q0MnJTMWk3MWVpQXc1?=
 =?utf-8?B?VmhJNjRPZjg1LzRHWVpiYkJvTFdhSVpxem1ZSERmVGpHUER5VVJNbWRqU1gw?=
 =?utf-8?B?c05SMzhMNm1leUdzQVNTMjIvZnlKSnc1NFA4Zml6UnJzUC9CdmxJY0lRWWxv?=
 =?utf-8?B?MEZwOGh5d1I5VzBuUmliRTUrTlRVTlcxWU5rc0hleUJybnFVOXM4M1EvZmZk?=
 =?utf-8?B?TlRYUVdPUjI0TldWbndRakpoM0ZBR2ExZmNMQ2hzblJyMzJ5cE1VcVN5Vk5h?=
 =?utf-8?B?bEZKZkVuYkRPZUsvUGRVZGdRS09CYUwybWZBamRlVXVHUElTL29SNmZ3aEp6?=
 =?utf-8?B?ZHN3WmZYVzJXU2JuS2taQzBMMmlZaFBTbGM3NkkvRUdUSEkvZnlrUldWVm9o?=
 =?utf-8?B?UldYSmRxV21Zb1FGeXZtQWx0Zlg1b1JuN3hEbHNZOXgzN0pROFVybUFUSEF2?=
 =?utf-8?B?bUhKZTJJSk5xNXh6SU9ZUzJ6NDZDR3hycWVqeG5aVXdJRTNDTlB4K0J0ODEw?=
 =?utf-8?B?Yk1ZS21UY05ydFljWUg1TFV2S3dtT202VDc1ekVCYmY5ak81cStnQ2FBelFT?=
 =?utf-8?B?Vmg4NjR2VXRwSkxtTk5MUUpYam15d1NHdGd1OFBoZEJQc3h5VnJTdnRmOTNP?=
 =?utf-8?B?T1dHaDUxWUdRTWVudHZHOEM5ZDVnM0JCVEZNVlJIK3pNQUY4QU5KeHk1clF5?=
 =?utf-8?B?QUdjeU52UnIwQzEwTFhydTl5ZjhxcVNzNllZckE5S05zZXdBUEtRKytPTld1?=
 =?utf-8?B?ZDRnYzZxMTBPOURXNmxSUEFtRlV0NFYwTXA4dmJXQ1FrQXJsSzVwSjBSNWti?=
 =?utf-8?B?MGNYMXpKNFd1anJ4VUtpRXpDQW5hZlNRL1NKMm5OYlRvUWMxRWQxVEJYN1Rk?=
 =?utf-8?B?UDJFQjNQcGYzV0I5R05zSk5MUi9WV0pRYjdxSnV4SmhQa3dqeU1MWGcxY3ZH?=
 =?utf-8?B?N1hsMG1ITzJlN1pJUEtnQVpRc2gvSGlBRnlQUFNYQjE2OXloMmRINFhSZnBR?=
 =?utf-8?B?cjNRZ2ZCZGRtR3ppY1RsS3N1MGVTOTBPcHVJS09ZeGoySmRqeHNodlZIZzN5?=
 =?utf-8?B?QVJpNy9oQXY3QU1PczluUThLVndVbjFHUkozY3cvc3pUenc1RHBNZTRhRkhl?=
 =?utf-8?Q?0wZt2klB45JsDojTMh1+4sNPVcBqQY5s?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RjJBZ2VZd2hmZ08wY1dFb080SDl6OEVGeTNrYjlNYkNVNW1CSVp2akhTOGU0?=
 =?utf-8?B?WW56Tk80azAvKzN5RGl4R1UwT3ZIdnZUWjJ4V1lRQVkzNHNPUExoU0ZzSGhR?=
 =?utf-8?B?OVZYZEtNVnhPUkRFY0g5eCttZXRmN1kzaUFXa2JFdDJZOWxaQm5USTNHcGti?=
 =?utf-8?B?N3ptTEo1MHZPbEttVlUxV0NPL3NuaGNFaDNNVFoyK01vNnJQZ2MwZ1pYQ1Fw?=
 =?utf-8?B?bUtyclB3UXZ6YW9rOVFELytKYXNRZzVpdU1yL003VXlNZStQb2J2Z1hGbW5V?=
 =?utf-8?B?anJFRTlTcHdHYjh0TWI4cTVxeUhGOXVuWnl5S1F3RG8vaGRwdFJuRkx6YTYx?=
 =?utf-8?B?aFdGQXh6cEhKRE5ORGxXZWt0aGJXL0ZNSE85Z0NwL3JVVjlVcXl3WDJmTzJQ?=
 =?utf-8?B?YXZ2bHBsdTBna2JmVW51bE56VlFFV2Rzb3ZLUEw0eXl0TDJ6dzBrUzhCd2g2?=
 =?utf-8?B?U0Q3MENnTmZqUkhEOXRQRWZrazZveW4xaVM3cWpRYjZxdjhUaXA2bFJwTUNp?=
 =?utf-8?B?R2g1NkNJTGxsUzh2OXZPNmhBNzUrU0JhQVhDV05uenJmUXgxZ0FYZW9qZmdS?=
 =?utf-8?B?Y0tzblpZR2dHUDV3RG9QOUZMTGlXbmdsbWpKQVBEN1ZUeGcrVTgzZHp1eHN0?=
 =?utf-8?B?b2FlNjZZQ0FVVGVBaVdYK0dyb0pBNmYxQlZ5d3NqZ0J1WHUwUEdqdUl4YUxL?=
 =?utf-8?B?a0lzQU1pdFhrZ1BZOC9uY2N3OFRwT0t3K0JOejVKVXNNY2doaXlLcVp2ZVlD?=
 =?utf-8?B?ODdBT0J4M1ZabE94TjRMa0R4SlhQRm5xcHB2Y0toaS9xVVBVdndqUVZuZ1F2?=
 =?utf-8?B?a01nQk1EL2xXbG5obDdPSmZ0ZEFmZUxoNm5ycWhMS0tQQlA0MURJQk5kZzhS?=
 =?utf-8?B?UnlCVTdpemY5cnE2REEyUlVpMVFIckZiZVlmV2tKN2ZUWlJ1MUd2TWVXdXlJ?=
 =?utf-8?B?TXNBYmFZN0Qxb2poditmYi8xa0xjR3E3UDJLeHlFaDVtUldhRmNYY3djL3Ex?=
 =?utf-8?B?QzVVUk50RjdrZng1Y0gzemtlaUJDSzZHa3dub21zL3NGM3hUNEgzMnhldmhu?=
 =?utf-8?B?SzN2dDZwVldSUXBPWUIwR3pOazd6K0xvLzBmSld0aFJ0K0N3OGw5QVduNmFx?=
 =?utf-8?B?L3pxcnRBNkd4aGtUS1IwbDkyVUNob3U4VXphdVpUcnpLcm1RWXN0Nnpzc0Zt?=
 =?utf-8?B?SHhIYU0ySXViejhFcTZTMlJFZHJVbm1xNjN6ZXdSUUdKUTRMSmNyQjd2bFN5?=
 =?utf-8?B?WDFNNmRHcHNEaGhiK1V6bk1PQllsbGRvSVdUc2ZCS2NYMVZlYlRjd3puYmwv?=
 =?utf-8?B?bHZtdDZpdmRYdUtsWEZkak9XcEMrbW5NNC9tTnJ4a2ZrRlVlcjExWVNwWDlV?=
 =?utf-8?B?RzM5aUxpT3EyTzAreUdoMXN5OWk1UlMrS3dyTmpyVGVWVHFzNXhlV09TcS90?=
 =?utf-8?B?UkxMcE1aYyttNmpmckpzVU5aVE5Kc3lUTFJhSnhMYWhEVHY3TFBscTZNa2RF?=
 =?utf-8?B?MTJHOVhaWXl6K0REemF2U1BjT3FBdzFVL2FRSG1EZFdlRkRBTERMMW4vNWRr?=
 =?utf-8?B?RXpJQWlnaGJiM0ZyaHF4YkJCdnhHcE52dUlFWFJuN1EzMy9NRHVIWjB6WTZG?=
 =?utf-8?B?c0lhRnliVmZxa05rcCsrdUlpSGt3UzhwYWN2NjJoYkc2UFB3cnNBTUxDTXpG?=
 =?utf-8?B?cDVWRVZ1K3Y0SjhOb252UEh4bnQzUHJwRStNb3lYcXBNRlRzS3lzTzZrSXpp?=
 =?utf-8?B?QUxBdWFoQkxHbnk5QzR0cmcrTnJSS1k2WlBlM2hwVUgzMzlTL3c0QUVGK21Y?=
 =?utf-8?B?cHhpOHFYbENpVVU1blpremM1WjJvekl5VHhmclc5OWF3UDJ3OXBNMFdFWE85?=
 =?utf-8?B?TlBnaU1obnFvWmQrNGN4cVRqSytMekJJWTBYcjJkZVpVWFhibUpWQjVHeVln?=
 =?utf-8?B?SVhBR0RIMUlrZFA0VTdKc0NMWTZXMjRBV0FzY1doMGlVeERSd2RIb3FqdmpG?=
 =?utf-8?B?dmR2T3ZGKzNhRmR3ajh5c0ZGdlJTRDhYUlQweHdaajg0SDNzRXU4RzN2YU4x?=
 =?utf-8?B?RmV6aHhmMm1XU0dyT3FoV3JaZDFBVS9hZWt5R3ZuQXFyc1RpQkl5dk45ekpG?=
 =?utf-8?B?YzIzWkJpcVd6MTFZaVI4aCtlU3A1Vi9BclBGODhKeTlUNEpBajBuQnRzd3Ex?=
 =?utf-8?B?Mnc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 99f8f888-357b-495d-8117-08de214fae58
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2025 18:25:24.6255
 (UTC)
X-MS-Exchange-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+1ctiwgvwzHn4s/Cqgy1C4dlLwzYn7PWSRSvtQYJrSt6sfPdK2YWRKjnZqB95M4XPxrBxtmmv4doZ6JTYoWqKDVLWfSt2RtI5by1xFphWE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7453



On 06.11.25 15:47, Jan Beulich wrote:
> On 06.11.2025 14:42, Grygorii Strashko wrote:
>> On 06.11.25 13:35, Jan Beulich wrote:
>>> On 31.10.2025 17:17, Grygorii Strashko wrote:
>>>> --- a/xen/arch/x86/hvm/Makefile
>>>> +++ b/xen/arch/x86/hvm/Makefile
>>>> @@ -1,6 +1,6 @@
>>>>    obj-$(CONFIG_AMD_SVM) += svm/
>>>>    obj-$(CONFIG_INTEL_VMX) += vmx/
>>>> -obj-y += viridian/
>>>> +obj-$(CONFIG_VIRIDIAN) += viridian/
>>>
>>> With this, what is the point of the additions to viridian_load_{domain,vcpu}_ctxt()?
>>> You're adding dead code there, aren't you?
>>
>> Hgrr. And we end up back to v3 regarding this part.
>> Check in viridian_load_{domain,vcpu}_ctxt() may/may not work depending on toolstack
>> behavior which is not strictly defined (loading HVM_PARAM_VIRIDIAN before/after
>> viridian_load_{domain,vcpu}_ctxt()).
>>
>> So what's the conclusion here - drop this check?
> 
> Well, Misra wants us to not have any dead code. Hence why would we add new
> instances of such?
> 
>>>> --- a/xen/arch/x86/hvm/hvm.c
>>>> +++ b/xen/arch/x86/hvm/hvm.c
>>>> @@ -4231,8 +4231,9 @@ static int hvm_set_param(struct domain *d, uint32_t index, uint64_t value)
>>>>                rc = -EINVAL;
>>>>            break;
>>>>        case HVM_PARAM_VIRIDIAN:
>>>> -        if ( (value & ~HVMPV_feature_mask) ||
>>>> -             !(value & HVMPV_base_freq) )
>>>> +        if ( !IS_ENABLED(CONFIG_VIRIDIAN) && value )
>>>> +            rc = -ENODEV;
>>>> +        else if ( (value & ~HVMPV_feature_mask) || !(value & HVMPV_base_freq) )
>>>>                rc = -EINVAL;
>>>
>>> I find the check for value to be (non-)zero a little dubious here: If any caller
>>> passed in 0, it would get back -EINVAL anyway. Imo -ENODEV would be more suitable
>>> in that case as well. Things would be different if 0 was a valid value to pass in.
>>
>> The idea was to distinguish between "Feature enabled, Invalid parameter" and "Feature disabled".
> "
> But you don't, or else the addition would need to live after the -EINVAL checks.
> I also question the utility of knowing "parameter was invalid" when the feature
> isn't available anyway.

My understanding here - I need to drop non-zero "value" check.
will be:

     case HVM_PARAM_VIRIDIAN:
         if ( !IS_ENABLED(CONFIG_VIRIDIAN) )
             rc = -ENODEV;
         else if ( (value & ~HVMPV_feature_mask) || !(value & HVMPV_base_freq) )
             rc = -EINVAL;
         break;


-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Nov 11 20:08:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 20:08:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159303.1487660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIufU-0004Gi-0F; Tue, 11 Nov 2025 20:08:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159303.1487660; Tue, 11 Nov 2025 20:08: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 1vIufT-0004Gb-Te; Tue, 11 Nov 2025 20:08:43 +0000
Received: by outflank-mailman (input) for mailman id 1159303;
 Tue, 11 Nov 2025 20:08: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=KiuT=5T=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vIufS-0004GQ-Fw
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 20:08:42 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 378ee571-bf3a-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 21:08:41 +0100 (CET)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by AM9PR03MB7758.eurprd03.prod.outlook.com
 (2603:10a6:20b:3dc::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Tue, 11 Nov
 2025 20:08:26 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%6]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 20:08:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 378ee571-bf3a-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fcsQlWhCR44PPbZxswoiXzDPIQOrz0hbzx38fhIEZLMIcKMeOqjRCdIBlZ9fwsmznqPVMkUPY+D+8CCPESrapniBTIvTf0S88j+Ax4CYmD7NKabYlLe3+QtmaenRYyHs6LiKexmvzynNde1Ux/zudtNXCK323qM04s8ugIRppNz8cT1i5o3IGbAsXg7vIha8Td5xjWYvDYIivWxQn+ytsRk2/eJpxpxl+2A3w2NA8DjCXfIyC12OaAvmYKdYe8ueCYkXCbpgm72JU2fhyzexoEpyJuRqh2Lp8f5ccXrC3nHUEp2EwiafKMzMUKQnMHeWR6s+innENhR8CIdpyOgmbg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+avs39yG5SK8mfCma+H15nY8tDlKMQPGd027kBE3V08=;
 b=jRCuIVzuINS30gEyPCfMn7DNf1LaFrcyTUi15pO1vkVh/WT0CYLcxwlTAp4h3KkhzieE9Chs3b2t5ingPexpUAgd6iR7zCBkh09kIRqPo26/rSC83keIeunWQXhYzZ3sAkK8Qe7gVWpweKRHj4LnW7NBYM/suLgnIZwUWsb16xMnRF5XhKEv1MuqJqQOySLpIPNsUx/qeLWJhO3saRyLGMysRqqC3PwWBBX8aET4LrIxn6wmGKSy7QAYnA7o7hH+IDwKKCdttVyV2erowoUTvJHttOBC12Ky3s/lNrcCEeAR7aDMllPxRPBl0UbQUpyZROYSddQuQV1gNn9WdZIpuQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+avs39yG5SK8mfCma+H15nY8tDlKMQPGd027kBE3V08=;
 b=BjDC8YfYAcxJ1O49Nzg4Upmnn0ky6q8NkqlGe8uu2LWPsq71FhW/QUelhZltPK/q6IiJ1YKrRUcorJ6z56b1Px2Kc6fMezAALhfOlcKgnAIARP8AYDUPHl4G1ILV5opjXO6qdR0i8AYRcHpP/oT4CZ7mygvww1f0gCIMim/WldwUbuylAa9wtut6nh4s+uB0g/qoFr7+u/A6+95psryLxBW3LubJwU4/K5PeXHMWirKgdW68+PBs1/lz3NuO6NVr2LF0Z8mPSzNBxZpd7j1+QCh5PM/KoVgaYwEaLAG9zOvQJZ76uQGPE7XjGOn1nm/rqVMgiqTPVj2OcUcs1f5iJA==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: [RESEND PATCH v2 1/3] x86/hvm: move hvm_shadow_handle_cd() to vmx
 code
Thread-Topic: [RESEND PATCH v2 1/3] x86/hvm: move hvm_shadow_handle_cd() to
 vmx code
Thread-Index: AQHcU0bwuBVmBHjS2k6n1jYAWQNcbg==
Date: Tue, 11 Nov 2025 20:08:26 +0000
Message-ID: <20251111200754.3575866-2-grygorii_strashko@epam.com>
References: <20251111200754.3575866-1-grygorii_strashko@epam.com>
In-Reply-To: <20251111200754.3575866-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB3PR0302MB8919:EE_|AM9PR03MB7758:EE_
x-ms-office365-filtering-correlation-id: 326c23ee-e286-44ef-ec87-08de215e12ec
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?kuVn5phmoQY2VNF1W+2UP2YEohAf2aKEdCPsdJiqBaKRZWGep5LC6qixIJ?=
 =?iso-8859-1?Q?jzYf1Z5EnuyQ+ufpHYo60AE4vWXu8a6izhHzhAKILOc7XX+DChJEtTjrIW?=
 =?iso-8859-1?Q?UkwbHO8TVuoknCQVIXv0K/TntLIAq4Z+QHThwinN8BhG16Wbw31c/d+6Gx?=
 =?iso-8859-1?Q?JHD9/jHAFr6zDFObrbnVLri2jm2ilx6etE8ihYgS3E2q2CsOO/Oi65PGvP?=
 =?iso-8859-1?Q?S4GoejK1Nb09pPhmll7D9h9smN2RMBATbq438nvr/y4T3GLNw8UR6GS+lx?=
 =?iso-8859-1?Q?PKm3GPSbHnvJ7txqxySAybM0al5ttBo/nZusyMbEz7Z7kOET/zAihYKROz?=
 =?iso-8859-1?Q?l07O3Sl4C6hqoGQd4Z1xswsRVrjOpQ90E+8JqMq/ZPoq6bxQOa+xxyUFib?=
 =?iso-8859-1?Q?2zWh/T2/9S/AyMM9voNjXuO/+mOHJT0yiXY8cd4emv3lgCq6ODutECYvpB?=
 =?iso-8859-1?Q?0CQXyMNuwiH+I1AOPr1uK+ysmCiIS5hhkLF0uU2SFIdFMjt4/MZzh6KdTj?=
 =?iso-8859-1?Q?KRafLbKPmxXaD8dTeX6hzvCRJ8+kVNT8M5KXM9DE5iW1NzB+uyFqDoBxZD?=
 =?iso-8859-1?Q?SvL4UKUWiokBAjwVPnzrBqRrgQA3+Gi8WZcgOnlswlMA90q/9PnJkubn/h?=
 =?iso-8859-1?Q?+CwYQwUOo8nXDcHcr54XIzpf2RwrZc3X5TwMB853mY4o3GyiBDD+vo0MY0?=
 =?iso-8859-1?Q?qFjyR8aREs2jBbmN9x5KfZKyb7kcWAmXsptVT944QYVqHtmIYv9Q+jpmE4?=
 =?iso-8859-1?Q?0azGDWAP8INcFmRMue0AnWED69e5z6Lyn4B4HVcLjrV8Ox1wIrVBVi1iOa?=
 =?iso-8859-1?Q?LudSCZKsl2caN98iC9vWVdNj1PEzULqanuzMBakEHXmInChoML5uZFFjRb?=
 =?iso-8859-1?Q?OJouh1qpGQ19TfS5D4vKiIaJan9ZEL9vGWfDaB2xMDC6Hh0xLlac5w9rBn?=
 =?iso-8859-1?Q?4Yhcf7yP2EsTj+ahqBPhCMulXjjXyDnstdPk0joya+RgPfksyobLnJsYyk?=
 =?iso-8859-1?Q?Pt7kZAq5UEUUXuC+vvp+BJ0IT4Ud2QLgon1gYZ9VBU517zYiIzsHBORIJ8?=
 =?iso-8859-1?Q?LbunDy3oSDFEEf8u+qY/RZHIbAN4x+Z7JVOjZ2KB8J5dFPCcnGbeDK/o+3?=
 =?iso-8859-1?Q?koukcuAA71AH7aKq5E6ijFzcOPpGMopZi3dVycow+LuGLTLkZoRXJLwOem?=
 =?iso-8859-1?Q?/SQ0OTflNAHxlDDCAKRkDMrOWs2Ie2wMLAHkHLHFB8ykiOzyQO9mI8yFFS?=
 =?iso-8859-1?Q?/+B0kwvy/MFQbsIoxYXpzakesJDwQcpp2NH9sib3j21zOUhIFKsFsjYsWA?=
 =?iso-8859-1?Q?M2dVkSHBqtq7Weh0xYhHqIyrnYP5YJr9YuZCPjl28mkaht+WZLMF2NcoOh?=
 =?iso-8859-1?Q?VfxfGmX0uRYviqqwrJn+ROdEmv4vfrxrhmfiYUJlfaTGnMcGhIgTiSeNYQ?=
 =?iso-8859-1?Q?guqXvlaseoS0yOAD7DZtY3x1O9uAaH5qW1DuyJx7gVhf/bFK9vPBaI80fv?=
 =?iso-8859-1?Q?N0tZag4GyxGSDVUZkdHL0aa7s5d2oj5TV6cs2u+GOLSAOMgP5be7P7m+v5?=
 =?iso-8859-1?Q?Wh1W/CSjLMN7Ln50s1D40Eddx3gE?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(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?XgVI8pLc1NpTvhW9A7uI+8SGrIcbK1suxKVyovI5nh5LGkY+HVCCzHXgWJ?=
 =?iso-8859-1?Q?1VfRKxfIqm37Iyr81BFAffpfQ521Y0vBJEWarPi3Mb+vt/HSiQkYlRuQye?=
 =?iso-8859-1?Q?OGS0u2nQDZ1RbNStrwQri9kqk1AfSLBzWlGRPXIOw+WJH0M2YAxj7HwaZU?=
 =?iso-8859-1?Q?j+RQTrFkJhFThB4qD1HFjFLCAA8A6tLgQEAnagmIVP2c9RZuW6yRQ9kfzO?=
 =?iso-8859-1?Q?f1Qe3AIuerZO1T6nt5zpg7s5AE++Ezicj/KumSdkH/Rqt5wkI5/EFpOdTq?=
 =?iso-8859-1?Q?8TyzVrBZ+Oi9F3Nt0z6pWLFEdnhPtz2Gc7NjW8flc3Y5tSfKW0eh7zT/jj?=
 =?iso-8859-1?Q?i473n6OEvAOunol3zVzZrEpWFgRVvtKRkAC/V4JLroa8jXdpqfgeogdg8w?=
 =?iso-8859-1?Q?y4q0qrmtoldjf6CfcGuFaezCOHnXmZr6vB7iq1aavSUc6DBI6jvcS1zyGB?=
 =?iso-8859-1?Q?wv0e+b0B2XyBemEFFA0W9NELXEN/OiCRG3lcVEjXEdaTx7/eKGUXbM4xzn?=
 =?iso-8859-1?Q?tFOidKL4G0RFD9eEkMcug+2uEDsM0E0RQBechhvCFNqzGQVDbiUd2vFyIa?=
 =?iso-8859-1?Q?7RJY0DutPjFa5/YDTNpH6fT/kexmvp9YFFBJMq3VOgWYGfu4Ldb+TscZdE?=
 =?iso-8859-1?Q?e6nxPh9A97TH+yBiekprLQqgt9iJSe7+pd7LLnjZRRohDRtYaQ+T2rJ8YT?=
 =?iso-8859-1?Q?TTqrqnqmamju6/L9DACM95Hco2dDv2ppMulpN+jrkjA7Sn4jmy51F/BQdH?=
 =?iso-8859-1?Q?S9pGwJkNZo9of/02aZ1H4f5qMa6tWT7C3wkUMSjfcpyROmiWS1AjDQnZLL?=
 =?iso-8859-1?Q?Bgg1gCKIFzxJw5LOku+Tr2wNQalgMhXPIKMHZqLax9hlFrgKU4aR0Zsx4Q?=
 =?iso-8859-1?Q?mzv8n6MEMJi2GJrp5G2iybU6dlZqH1GDZPVTxZ9gAlguKCVhlQefXIUtUw?=
 =?iso-8859-1?Q?qghHCFvHgrfapJoIGHGa7q7ubZyyPAXV2DS2/9gPQikpYpewACZW4wy4J7?=
 =?iso-8859-1?Q?X0uvrsJf0FTIONXigP2RcSriHSJ/qS1NO8PJ0rr1rDbxaq+gWgu0mKwJ9/?=
 =?iso-8859-1?Q?Aam8uYGWVwrkkd1mkCcJwlEJ7fdsOO0Azws02+CJzLGrzjAlL4s67Q6vZp?=
 =?iso-8859-1?Q?Yk7u2jBFhBp/vXQ3Ir65hT2rGzdgqFpMVbcFO37mYjnkd/wKMUG1biUOFP?=
 =?iso-8859-1?Q?B9Dgvvo/G8CL9fQkulGudiQs7QjUyh7pVueibLYuedipg7Ys2yUcPLS5xx?=
 =?iso-8859-1?Q?VfxkVf/b872k6lyC8TzQuf/0gvyuvz76+95VGV/4CXV6pOZIl9ZcME7IOA?=
 =?iso-8859-1?Q?EI7ndFLs1h4/hd9/UdwcgOg3xN4+gSqiNvIdhPXuAAERLMcPBXkH1/1ff0?=
 =?iso-8859-1?Q?twimy2C4Ey++sgGIkZNhlDkcLXwxW7vUVBFIaXuTbBkFGJSy/u8YkBTOwn?=
 =?iso-8859-1?Q?3HDHB9emi1y5T7JrLrp3l9YQiinprVbxHQi0r/hjIwo3Apgu26QW8F12jA?=
 =?iso-8859-1?Q?P2/FOGYmKG/Km4wnI/xC5mqZ37m9cB6/9LiZaM7S8l7owJ+qhvSOfS0Kpe?=
 =?iso-8859-1?Q?MPZT2saYJwC9t4B25jGI/dqzCNrVC1dvrFHZCcjYjWD6hhCWDLVFhEMuyj?=
 =?iso-8859-1?Q?UGlbeQzW2ww30xKjb620eWXT8/tQlmkz+w/yPORw9uunruOp7ksWwOPQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 326c23ee-e286-44ef-ec87-08de215e12ec
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2025 20:08:26.0972
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: EtbRX+k0wJogls3x4WBB1G7UYfKrTxawonxKtui4NEZQ4krM70YrbU529PdtWhznM4luVjxq4nseyw5IpF4c8EVIVCSD5xMPxTQRIOp2RUg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7758

From: Grygorii Strashko <grygorii_strashko@epam.com>

Functions:
 hvm_shadow_handle_cd()
 hvm_set_uc_mode()
 domain_exit_uc_mode()
are used only by Intel VMX code, so move them to VMX code.

While here:
- minor format change in domain_exit_uc_mode()
- s/(0/1)/(false/true) for bool types
- use "struct domain *" as parameter in hvm_set_uc_mode()
- use "struct domain *d" as local var in hvm_shadow_handle_cd()

No functional changes.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
changes in v2:
- use "struct domain *" as parameter in hvm_set_uc_mode()
- use "struct domain *d" as local var in hvm_shadow_handle_cd()
- move code before vmx_handle_cd()

 xen/arch/x86/hvm/hvm.c                 | 58 ------------------------
 xen/arch/x86/hvm/vmx/vmx.c             | 61 ++++++++++++++++++++++++++
 xen/arch/x86/include/asm/hvm/support.h |  2 -
 3 files changed, 61 insertions(+), 60 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index da3cde1ff0e6..9caca93e5f56 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -2168,30 +2168,6 @@ int hvm_set_efer(uint64_t value)
     return X86EMUL_OKAY;
 }
=20
-/* Exit UC mode only if all VCPUs agree on MTRR/PAT and are not in no_fill=
. */
-static bool domain_exit_uc_mode(struct vcpu *v)
-{
-    struct domain *d =3D v->domain;
-    struct vcpu *vs;
-
-    for_each_vcpu ( d, vs )
-    {
-        if ( (vs =3D=3D v) || !vs->is_initialised )
-            continue;
-        if ( (vs->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) ||
-             mtrr_pat_not_equal(vs, v) )
-            return 0;
-    }
-
-    return 1;
-}
-
-static void hvm_set_uc_mode(struct vcpu *v, bool is_in_uc_mode)
-{
-    v->domain->arch.hvm.is_in_uc_mode =3D is_in_uc_mode;
-    shadow_blow_tables_per_domain(v->domain);
-}
-
 int hvm_mov_to_cr(unsigned int cr, unsigned int gpr)
 {
     struct vcpu *curr =3D current;
@@ -2273,40 +2249,6 @@ int hvm_mov_from_cr(unsigned int cr, unsigned int gp=
r)
     return X86EMUL_UNHANDLEABLE;
 }
=20
-void hvm_shadow_handle_cd(struct vcpu *v, unsigned long value)
-{
-    if ( value & X86_CR0_CD )
-    {
-        /* Entering no fill cache mode. */
-        spin_lock(&v->domain->arch.hvm.uc_lock);
-        v->arch.hvm.cache_mode =3D NO_FILL_CACHE_MODE;
-
-        if ( !v->domain->arch.hvm.is_in_uc_mode )
-        {
-            domain_pause_nosync(v->domain);
-
-            /* Flush physical caches. */
-            flush_all(FLUSH_CACHE_EVICT);
-            hvm_set_uc_mode(v, 1);
-
-            domain_unpause(v->domain);
-        }
-        spin_unlock(&v->domain->arch.hvm.uc_lock);
-    }
-    else if ( !(value & X86_CR0_CD) &&
-              (v->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) )
-    {
-        /* Exit from no fill cache mode. */
-        spin_lock(&v->domain->arch.hvm.uc_lock);
-        v->arch.hvm.cache_mode =3D NORMAL_CACHE_MODE;
-
-        if ( domain_exit_uc_mode(v) )
-            hvm_set_uc_mode(v, 0);
-
-        spin_unlock(&v->domain->arch.hvm.uc_lock);
-    }
-}
-
 static void hvm_update_cr(struct vcpu *v, unsigned int cr, unsigned long v=
alue)
 {
     v->arch.hvm.guest_cr[cr] =3D value;
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 6f2cc635e582..d7efd0a73add 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -44,6 +44,7 @@
 #include <asm/processor.h>
 #include <asm/prot-key.h>
 #include <asm/regs.h>
+#include <asm/shadow.h>
 #include <asm/spec_ctrl.h>
 #include <asm/stubs.h>
 #include <asm/x86_emulate.h>
@@ -1451,6 +1452,66 @@ static int cf_check vmx_get_guest_pat(struct vcpu *v=
, u64 *gpat)
     return 1;
 }
=20
+/* Exit UC mode only if all VCPUs agree on MTRR/PAT and are not in no_fill=
. */
+static bool domain_exit_uc_mode(struct vcpu *v)
+{
+    struct domain *d =3D v->domain;
+    struct vcpu *vs;
+
+    for_each_vcpu(d, vs)
+    {
+        if ( (vs =3D=3D v) || !vs->is_initialised )
+            continue;
+        if ( (vs->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) ||
+             mtrr_pat_not_equal(vs, v) )
+            return false;
+    }
+
+    return true;
+}
+
+static void hvm_set_uc_mode(struct domain *d, bool is_in_uc_mode)
+{
+    d->arch.hvm.is_in_uc_mode =3D is_in_uc_mode;
+    shadow_blow_tables_per_domain(d);
+}
+
+static void hvm_shadow_handle_cd(struct vcpu *v, unsigned long value)
+{
+    struct domain *d =3D v->domain;
+
+    if ( value & X86_CR0_CD )
+    {
+        /* Entering no fill cache mode. */
+        spin_lock(&d->arch.hvm.uc_lock);
+        v->arch.hvm.cache_mode =3D NO_FILL_CACHE_MODE;
+
+        if ( !d->arch.hvm.is_in_uc_mode )
+        {
+            domain_pause_nosync(d);
+
+            /* Flush physical caches. */
+            flush_all(FLUSH_CACHE_EVICT);
+            hvm_set_uc_mode(d, true);
+
+            domain_unpause(d);
+        }
+        spin_unlock(&d->arch.hvm.uc_lock);
+    }
+    else if ( !(value & X86_CR0_CD) &&
+              (v->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) )
+    {
+        /* Exit from no fill cache mode. */
+        spin_lock(&d->arch.hvm.uc_lock);
+        v->arch.hvm.cache_mode =3D NORMAL_CACHE_MODE;
+
+        if ( domain_exit_uc_mode(v) )
+            hvm_set_uc_mode(d, false);
+
+        spin_unlock(&d->arch.hvm.uc_lock);
+    }
+}
+
 static void cf_check vmx_handle_cd(struct vcpu *v, unsigned long value)
 {
     if ( !paging_mode_hap(v->domain) )
diff --git a/xen/arch/x86/include/asm/hvm/support.h b/xen/arch/x86/include/=
asm/hvm/support.h
index 2a7ba36af06f..9e9fa6295567 100644
--- a/xen/arch/x86/include/asm/hvm/support.h
+++ b/xen/arch/x86/include/asm/hvm/support.h
@@ -119,8 +119,6 @@ void hvm_rdtsc_intercept(struct cpu_user_regs *regs);
=20
 int __must_check hvm_handle_xsetbv(u32 index, u64 new_bv);
=20
-void hvm_shadow_handle_cd(struct vcpu *v, unsigned long value);
-
 /*
  * These functions all return X86EMUL return codes.  For hvm_set_*(), the
  * caller is responsible for injecting #GP[0] if X86EMUL_EXCEPTION is
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 20:08:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 20:08:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159304.1487666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIufU-0004Jv-9L; Tue, 11 Nov 2025 20:08:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159304.1487666; Tue, 11 Nov 2025 20:08: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 1vIufU-0004Io-3O; Tue, 11 Nov 2025 20:08:44 +0000
Received: by outflank-mailman (input) for mailman id 1159304;
 Tue, 11 Nov 2025 20:08: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=KiuT=5T=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vIufT-0004GQ-5C
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 20:08:43 +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 38356c6b-bf3a-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 21:08:42 +0100 (CET)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by AM9PR03MB7758.eurprd03.prod.outlook.com
 (2603:10a6:20b:3dc::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Tue, 11 Nov
 2025 20:08:25 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%6]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 20:08:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38356c6b-bf3a-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pRAeooyAsCeYSRv/h/YNEnXoMyuondtk0jwR+mTEroXAofXdjAfjk8rYC0YyL9rnTjB2bJmkSMVIrRnIScHjqJ5Qlz1hGUdmLaxTkbZzWYvkJIt7fErKyV9/2dJcgNQHKnMjrMlfV63xizzNAdRRyWvex/ozZUNWuAL0R2xcd3XcEdQQB8NaH2dwYHMh1hq1N69wGLhvUeBuqVVRwPMvM4tSQTWJ9iNgZgAtqSHZV2lBQhepgpcsTEK3tOm6CJIEE3x1iMTfZoaRAAiZ3AuK7c31BF2mMjzWZ9NhsEbKnIAy3BCjiv6g/bRQcozuTZvb61tUMVhHSV2BPBqHcgPtmw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=avySyVoUNnEQXlDAooPk+JX3+HVzZzILNmAQk4gwOnc=;
 b=q6iXZv8uoQ3ALV2PMTYA+pKQBE68CAwbbbfda4fUiG/7wiOE4a3H6RIKmpnMCMhKFnARin7htXNn6XF6yd92vHbzK7oIuDEiNqcdhE0gJ59Qz3uLaETLqB0YkUSs8otRn5FHOoACBqBDrS5wsRZFuT/Ifoxz1Yxd+MUzRijphoEO6sFPFnNZG3kqFeXMTfgOjOisVJjL9zjGcYMPMr4lli0M8TdPjMwyrjul1NT8GGfpoWfiIRiY23U1d19k/N4Xehwyon5lzSNkKE4MRxaL0prpyV+UDyNujNaPIBr31XiED5+3MI58BTPnCxeb0KR7XLb2KsJumtzFeQqSta62KA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=avySyVoUNnEQXlDAooPk+JX3+HVzZzILNmAQk4gwOnc=;
 b=AOCkTYR+CaTcLSefsXjPbRa7LarXcZ7JLhh+7dBncM5bqAXy7VnYlag2fcKbBjORXXwtgzUE9RTrJkgqApYEXejFofF1SlulSsTOn+CC/cQF1z1oGPg6q5ulsGIdwdxm+4WI1nkLwDx57maXCbppx6daBZO4IGiwG+GASLy0A0thzJHCOD3pcMseNCooZDZh2BKZL4L3akGvJGexAoyaldSgltrF6B5laSsPIcn1JI8v0pj2M41nNIuUpT6l7+wD8QwIdKgY/ytqTnkSOz0tpHYivyTiCOpGV5XgdvLEWGjcCoEieNAvwrjg+RKpOdMh276xF5u0PGnDpqGit8TBlg==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: [RESEND PATCH v2 0/3] x86/hvm: vmx: refactor cache disable mode code
Thread-Topic: [RESEND PATCH v2 0/3] x86/hvm: vmx: refactor cache disable mode
 code
Thread-Index: AQHcU0bwuQvBODsdvUmnszqCxPJRGA==
Date: Tue, 11 Nov 2025 20:08:25 +0000
Message-ID: <20251111200754.3575866-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB3PR0302MB8919:EE_|AM9PR03MB7758:EE_
x-ms-office365-filtering-correlation-id: 2d998cad-9a8d-47bf-4eda-08de215e12a4
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?NSC2DJ/v+a5ztusy/VaunIIgsFhEm95kouWdrURO8krbEoNSRcn6bKiAiP?=
 =?iso-8859-1?Q?nj2HBvhV9tH/WdHQ78psByHr8TqJ/vZ+K75ShtCNboLS2Qms747ATs6CjA?=
 =?iso-8859-1?Q?txmhwsGlylvQVzLE14tqV19yNraWSNsw4s63ktEgCQDztguM/u0aIbqtWq?=
 =?iso-8859-1?Q?oqMKhHvWvQ2ADiZxKd+gKvkgRnoNHGcoKm2BOw2b0OpbMwpUcAypuD0Hto?=
 =?iso-8859-1?Q?JFhkMy6g+jQDWXxsN0EfcJSRDEMID2csWchWC+XsJEdDXU6nh02RaRNH4k?=
 =?iso-8859-1?Q?+g1fcy3Q7Mjuw9VljD1jD1J3UxQ65AWePEcl1I/27dmTER1l/Iy+W+WsXZ?=
 =?iso-8859-1?Q?EowT+F75f/7V5Zemrsa2AjjTp+FB1nhC4US7Em78r3C+mTLTi0PBdkCDSD?=
 =?iso-8859-1?Q?Y4pTlmZ+5wpD0NTerOaDhX/dUey0z89pJlAmVSrgqsUKrqu+dEQ0p7BtFI?=
 =?iso-8859-1?Q?RHJSUhfC2yIve+kaZIQj/eu/KbkCdeNLydXyBAnayXBrwCjeWGLCgb39jQ?=
 =?iso-8859-1?Q?/nU0g1kSZtftNnomooAlYXdX0ahXQocIG2gn1OtXbaygG9H2OjME4egagW?=
 =?iso-8859-1?Q?UHVkTgQaaLjKSjyJlymayECjsPE3RX/3T/nc8XR6639bZ73ZOAPbwq/sOL?=
 =?iso-8859-1?Q?y7h5rV0aMtgYYVwC/bUi1lx5eABWLF3DSj/+t7Fy8cH7Qd/ExJjd7RnN2x?=
 =?iso-8859-1?Q?j9zGCepTSrbvbYyKhBPP4faWT8mRoWpHJV2EZjHDpvdKvDjYZK+sAcGF2C?=
 =?iso-8859-1?Q?hUhQkIuDNz9CrYhqsuvs/LDAm7nHvqn4EXsTTKXuSqq22eqS+hhb5RMUOp?=
 =?iso-8859-1?Q?loEyIoNpEbw78GDGzTkFgamPlYRCRsIbqxsTr7K/rS9IjRFrUJ5XCZjCZk?=
 =?iso-8859-1?Q?QKyDTorJ1zZ4Wd5RnG62qZb7FAle1bTzjA/H5nFqvceyAoGwamcws/EuJj?=
 =?iso-8859-1?Q?KPdwvkNr8iYynLGoKYIXP5Agdx4DvqGYOhWVHYEM0b0n62ehAkwY5uhEFK?=
 =?iso-8859-1?Q?E8fna2Yai1w+vzdh/EtDlkMMw7WJkoqELu7MAYfFnYYM6gj3UbDGt/QAlw?=
 =?iso-8859-1?Q?TWPNd/cuGwL1mBGUAMDj+tYVuVa0brnepcLek91D5M7V8PZSiPrXcqGf3+?=
 =?iso-8859-1?Q?D0koQPWQOI40Qb5sqnfkeEdBnx41bVN7EqCVxWlGcIglcwRNXEHFfNvIGu?=
 =?iso-8859-1?Q?EZJKjv4OVkXsQ6JRfNKE2QehN1sDcV38bY+keEeTwyc/Xil0DYguU6R8wq?=
 =?iso-8859-1?Q?LH+QJaoIxdlQkhGJzOY/S/qcHAtjNNyMZKHELe/cHXCBxKRYZoSilvS/CZ?=
 =?iso-8859-1?Q?Z7g2P7FQ+1yTySDBN87KErTiZvB/JETU93RqMH3NIcn3vKokmnxZIloDLw?=
 =?iso-8859-1?Q?LG5Rlf/YOMfnliHaXnzYkJPW/mSNkT3qL5g4VyWLOgdbJ8i7LSL3wmnwF1?=
 =?iso-8859-1?Q?PDWHILasrhEHFHE2/Mg/v/yr364Hcd1e3ejGMEOfQJQ7pgSMQTatOm22cn?=
 =?iso-8859-1?Q?8mZcatcQNy0fgV8mps/CysCJzQ8/63sGw2NQ8zo360QiCpt2uVNO0wtYDA?=
 =?iso-8859-1?Q?0AJVxOQewb4YndMWAwawxaf0k5ro?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(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?mPc7h5VwtwBS+ljxFzxZ68Xp5Tb1Ju6wSCDZL6o2jsCyywye+EsZuSu8BJ?=
 =?iso-8859-1?Q?tpdHhEZG5mAOb7/r5NGyaMK4Y0Zhc6uPjc5iTG8GjHLY8aEw32DEMMTMVv?=
 =?iso-8859-1?Q?L/Jg0uRPdYF0uibhWS0zbLJsOXyjf6P2LbVdvSGPfUwuIS7auKJGL+wU7t?=
 =?iso-8859-1?Q?7j1GPNgKW0FNaR32xTd7ci+Soj26+42rMXyggyKBv+c/Iy+o9ID97E3PKj?=
 =?iso-8859-1?Q?Ti+MPjBeKaitPoxoHRse1VSvvONo5RgCqOutn4JpWkfb7oaWMyCYX00D12?=
 =?iso-8859-1?Q?WHPfRjy3UFO1UMjVbTCK3hrx0QgH8VzMgYOd4DD7tZLoCmnSOiVD+vRTRr?=
 =?iso-8859-1?Q?F+R+kS25ljRbVPswMy9go7d/o3n6dVw/rIy94QXUBuKkGgIn9IhDsKzvyv?=
 =?iso-8859-1?Q?qWoxPep9v3YRlHaPPQhmdq5WkckIP6S+ln/yiMq6ulBuDrFP0SzqeBcQii?=
 =?iso-8859-1?Q?gWbJwocMlDDhjs+2XRO9FifjAigKRuGyqwhHqZXNYfCCHRnAg+jJzxpLQ/?=
 =?iso-8859-1?Q?YcxtryszIZH2cY6qXOAARYe+qgLcwuDS4S4eM9uY29hAf8KlURh8cG8hwi?=
 =?iso-8859-1?Q?zw1k6vZLkUlp3Gjpbis4yqN320Ef1wDCkSZyMUFt9e9BekNcRuxtLpzBgz?=
 =?iso-8859-1?Q?ccFI0Kd3/kAxocHeSsEf2WYjhn+3emffBPxTrgVtkgjKgHqzlC4fUNLC3x?=
 =?iso-8859-1?Q?L60C3WmrEf/vPsqdH+evi4pq6rDJp1pRsCicZNSH88OwDDxcja8rPuPE/G?=
 =?iso-8859-1?Q?RABnvLDBD3F7xaPpIpIiwaei9+hLZiawaYV6H8odBbmzMDck30gJ+3A8Fr?=
 =?iso-8859-1?Q?XJfy1fL8LTeYI09ZByIMCmbVojXNDjvsIgO4x+bIgyTfl4raG6a3mO2H8l?=
 =?iso-8859-1?Q?OIXAQlPqeXAhCqsmjOMehE2rXYfnj9C3Qgfo0rfU6p/13QbRQgEcBkNVz6?=
 =?iso-8859-1?Q?ekkrAZYOo8bM9xHXV1WNJbuDHeUTYLYuCtXwIgBo5ZI40lNNjnnHhgzgUu?=
 =?iso-8859-1?Q?utU0uoJsEaV8Ix/u1pk6BRC6fP7elSDjDqsLLIi4A2+u6o1R1nAY+7E3uB?=
 =?iso-8859-1?Q?xPnoNZ6l3B4wixPUosWFpHp4YE2SWGzAAjQzk3TAq8jgnAw7wTJ7vvTFPK?=
 =?iso-8859-1?Q?B+XW1csicfUxhiHXh80/Qy1nC99UlF5nG6UlLhko8tVE2GTFMEmr2nXvgX?=
 =?iso-8859-1?Q?e9CGs4nuy8UtCmys1IUtg6jSIuYGuh0p1kihhblzQvWHxze4uOdHobuRj5?=
 =?iso-8859-1?Q?a9Kr5Ei/Xz2B2/YiNCfnqY62xQ9C1jwESQLikeV7BmlPAN97HFH//QWKSx?=
 =?iso-8859-1?Q?Z93hhx25YrejR7gYsIUKxlFrXL8eeB+hg1BZOs2sDCymEhO/ZCWhnZ6jyo?=
 =?iso-8859-1?Q?77KWBeNqL95sQMsGThFODqRTeGGLpwARe/TSYlVBYhvLJ39Htia3X2NOpn?=
 =?iso-8859-1?Q?TiVx1O0eloowJar+nieNVHn5IfK9ry7jR5qEyUG16JPExlgu1DoV3MucuC?=
 =?iso-8859-1?Q?mKNS0cwrryiFqE6+gRmdfuVU5Cax4Nbab5PaorcUt0ymyxzaGOp425aAaC?=
 =?iso-8859-1?Q?EHa++ouCllDWb7Gyp5O95sfUnPMEe3FVaLBo3Wj+BVxyqHQJ4V/OnWeoom?=
 =?iso-8859-1?Q?r0rXLy+MFys3mR/aqtBTBAgJwW94gQVXoFgGZqoQNaDXmgWGyRqxtn8w?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2d998cad-9a8d-47bf-4eda-08de215e12a4
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2025 20:08:25.6492
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: vIpXLHFiGTm/TtI/4fe8VP7HGZjLZALSL6bTDTFJrBhm+cLoAOUcJkYfPJ3ufwD4c8aaa5roxRfC2A8BxyAwzRPHL6+ck7zWo3lRltHDies=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7758

From: Grygorii Strashko <grygorii_strashko@epam.com>

The cache disable mode code (hvm_shadow_handle_cd()) is relevant only for I=
ntel VT-x (VMX),
hence:
- move hvm_shadow_handle_cd()/ hvm_set_uc_mode()/domain_exit_uc_mode() in V=
MX code
- account for SHADOW_PAGING when use hvm_shadow_handle_cd()
- move cache disable mode data into VMX specific structures

Based on discussion [1].

[1] https://patchwork.kernel.org/project/xen-devel/patch/20251023151903.560=
947-1-grygorii_strashko@epam.com/

v1: https://patchwork.kernel.org/project/xen-devel/cover/20251029235448.602=
380-1-grygorii_strashko@epam.com/

Grygorii Strashko (3):
  x86/hvm: move hvm_shadow_handle_cd() to vmx code
  x86/hvm: vmx: account for SHADOW_PAGING when use
    hvm_shadow_handle_cd()
  x86/hvm: vmx: refactor cache disable mode data

 xen/arch/x86/hvm/hvm.c                  | 59 --------------------
 xen/arch/x86/hvm/vmx/vmx.c              | 73 +++++++++++++++++++++++--
 xen/arch/x86/include/asm/hvm/domain.h   |  6 --
 xen/arch/x86/include/asm/hvm/hvm.h      |  3 +
 xen/arch/x86/include/asm/hvm/support.h  |  2 -
 xen/arch/x86/include/asm/hvm/vcpu.h     |  3 -
 xen/arch/x86/include/asm/hvm/vmx/vmcs.h | 13 +++++
 xen/arch/x86/include/asm/mtrr.h         |  3 -
 xen/arch/x86/mm/shadow/multi.c          |  2 +-
 9 files changed, 85 insertions(+), 79 deletions(-)

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 20:08:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 20:08:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159305.1487680 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIufV-0004i6-GU; Tue, 11 Nov 2025 20:08:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159305.1487680; Tue, 11 Nov 2025 20:08: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 1vIufV-0004hv-CR; Tue, 11 Nov 2025 20:08:45 +0000
Received: by outflank-mailman (input) for mailman id 1159305;
 Tue, 11 Nov 2025 20:08: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=KiuT=5T=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vIufU-0004GQ-5U
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 20:08:44 +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 387452a8-bf3a-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 21:08:42 +0100 (CET)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by AM9PR03MB7758.eurprd03.prod.outlook.com
 (2603:10a6:20b:3dc::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Tue, 11 Nov
 2025 20:08:26 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%6]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 20:08:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 387452a8-bf3a-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GChkTFZjWg0jioLvr2XJAI3ae4bgAA8OsViHVrMfzhLJu8sms/Pd71QN56KO+N4JagVtYGeQ9qc5gFqtOElwUlsPRB1bqJTVmkjLCBqnbjjtwL9fj6kfdKjfe9mZsSdBuVJfxOkBSWt3ARWGoK4oSDx4wxiijCFAeWNiWGRwoSRlJDRtscUhKA859DgZamTnWafvlisChZcN/0wvGpBVyJf3DQWEDhNzilAUv7OxrxRxVZ6sJopkDRZA8U2OSIuNEb8fvyTuio4+Xk7/EeXn1oLwA1eZFTZbxR/D39Fdp0aXWC6GgU4U55QE6UoDonnDHl7UMJM5aKgCBagctiCrQQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pgVfk4FXoNNmttOjLxewhjRJ89Pbkd84LjmcffM1nvg=;
 b=X4WtQE45+41Bpd7xpv5XZu9oSUNNdJ8gZoJC34pIO1JzaUn3xypiZf0PmzsVaabIebqt77OlacNFy8zeT/F4EjRQFgw5cdQRntpS4DEdj+TWYR0JLil/5nWM4DyBCUfeeYBIpPoV4S1w27CQKStLx6ms38yylaqtmGtbAU01QBGvQf9394otgnheu9+udPq1+UihSSZcj49oImK5OAsKoj4LqYeZX19DqvCqj8lrV6l6ZGHRpBwVDmC/sc3b5Ox9iW/Gr0FvmB08ya4PXYwPY4gXz52FhTda2JcDeLQHeL8OOVwULkWaaNDynUMmLT2f78TC2lVXivrj/7eobtCagg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pgVfk4FXoNNmttOjLxewhjRJ89Pbkd84LjmcffM1nvg=;
 b=CdMR8gZSBXg6B9vxcxmk9jH+QlwBpdRV7p/cranQtSgQTd36PY7MAXRPn3YvtnxJyF0umiu1RW57yU1wxlVgMBGKa5iXm3W0mR47I5EFaXzaoe+ypSP6jmqs8mIBWEGvSP4K6XK8TA2k6jdXHgF275KwaSwsyPo/OtBykuo1UtXSW5na8yasKaiA+JRhzit8Bk6bxQLmWJ0L+0fc6fOW0jd8btbk7WdgD9jcqFTjrBH+9OYYKPOMr2BdRbqPjlQtP/GS5rnsgCWDdloq+Gm1FZGOuq+8aYe8+JWZCPBg1qNLqNfC8BS7qIvdLlxNFaAx9jfIffo4Jyr2jRXGz6hpMQ==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: [RESEND PATCH v2 2/3] x86/hvm: vmx: account for SHADOW_PAGING when
 use hvm_shadow_handle_cd()
Thread-Topic: [RESEND PATCH v2 2/3] x86/hvm: vmx: account for SHADOW_PAGING
 when use hvm_shadow_handle_cd()
Thread-Index: AQHcU0bwAk/DeRt/Z0ykYoQbMThuGw==
Date: Tue, 11 Nov 2025 20:08:26 +0000
Message-ID: <20251111200754.3575866-3-grygorii_strashko@epam.com>
References: <20251111200754.3575866-1-grygorii_strashko@epam.com>
In-Reply-To: <20251111200754.3575866-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB3PR0302MB8919:EE_|AM9PR03MB7758:EE_
x-ms-office365-filtering-correlation-id: 7e9e3bd6-9374-4b35-921b-08de215e1339
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?1eN7LXCnyNy7x6DKMW63D+MiAgNqcnaQrhLEH1SdAaFQgaOG6Di5nhQBIg?=
 =?iso-8859-1?Q?3eMizkEycsu8Z517kzQLOjTg20kU59LNpHAZVrxcEoRptUlccFhPO3z9hk?=
 =?iso-8859-1?Q?rVhKNSyMdjORHFz4NbO2XY/UME61+LJb69+0XPBOu+OVn0+D27e0ZUmFT+?=
 =?iso-8859-1?Q?/ddRrE32675Y5+MNo6REWzALNvW+byFi3+ExtVzxLKT8cQmI8r1hhwFMMS?=
 =?iso-8859-1?Q?1br3VTLOWXxTRQsunDukT6/QQzZGCzOGoQqi/4pYIFnTis0K0GWZ4QoW6t?=
 =?iso-8859-1?Q?dQ2fmmFF0QQSdSKyfpmcqWKa998uF9/vDKaOd7jy5KbJJfJTy38qQPUioC?=
 =?iso-8859-1?Q?vFpdFy0d6451gMidx7i4F0ywdoQQIGbIqsA3wF2USob6GETIc5NoXVdyB9?=
 =?iso-8859-1?Q?1h+LBwYsTc1lu0EVJGT+TdVi5WU94TY5etLlPB3fMdrrkeFxbKFOU+knGM?=
 =?iso-8859-1?Q?ZaruqBo7Dbk/mxKd6+48iDTwgyGdYfbWYZ9N9yo6seSrUgBdxo8kgKiBbs?=
 =?iso-8859-1?Q?ySofVGCargF9KV1793ONqESEuWk1u7ntNaQvV0KJYUvLk3M+MHwVsePakx?=
 =?iso-8859-1?Q?fhYf4fSvim86MmIggmd4fyXzMn3cWTjEhDCkLhnKeFej9MI2cFrfbhF7La?=
 =?iso-8859-1?Q?AuYuL7ElnBSFqcW3+f/ZfoROV7WPoKGec88SHUsaDx+rguYGTMBAAS/kz0?=
 =?iso-8859-1?Q?p/wflPxA8qCD8zxq0/ndgRfR59LViYFLiCEnTTX8ByKPXstuGTFwAfel9b?=
 =?iso-8859-1?Q?xOzrgRfmFM+xVPwzIBg4JP/QPPfTpyLXRnHAPmD5i7OMHerzFC8JwAihcf?=
 =?iso-8859-1?Q?uqUSaUJyCHcupWDQYuUr7R9WhworFufZqM9EWasCgX3kPeudDTFUa1KHAV?=
 =?iso-8859-1?Q?e8F+E4hBYoofLSseS8pQ1cUmtjFlA4qTAKMIL1SsQnIFJ+QyGpKTuHkPEj?=
 =?iso-8859-1?Q?skBpsUsjg7H8RvNOp4vsyirPvqZ49W8QReMqmP89kYBn6oUuKoFG/00Q+7?=
 =?iso-8859-1?Q?t0bVkNosEbYdLo1CpMphpvFMLskssurPJfhCG8Be5uDxAz+9aUy1/5Ig1c?=
 =?iso-8859-1?Q?cQjGTU9kk5zsMf55FK5J/M8XDQw+OOIwDk3myicbRVR88UghSbgICKgLir?=
 =?iso-8859-1?Q?NWTRPOiUZTF2pfEgQPhMafdLvyHuxva6AmDgv2LXp+wui+3zOq5FmR3Z1H?=
 =?iso-8859-1?Q?kTwlbkcT+SNBrYflxRUVYnGNET0oYBdX9MzQmhN8sni8DtgMZcFYgPcr+N?=
 =?iso-8859-1?Q?lSu9EiX02mjVNOqZLIKkMyzBlumgsQAdi/A49X677T67xPkuCWOg9rmvmP?=
 =?iso-8859-1?Q?zE82qAyQ3HyfF0hTb1O6YWcJfP2NfUMf3MF/5VV2g3SLNpClGKPRo6qIry?=
 =?iso-8859-1?Q?PcBGwXsH0aPkCnPPLB0XPqnX/WHamTvr74BCqhkm+igEz1RsDtVYTVsjGU?=
 =?iso-8859-1?Q?w6hxKxNsaVFEfR820IdRAvmubU0a4/4MnkLmkYwERbWUWb6JF8XZEFKZMq?=
 =?iso-8859-1?Q?NwxOr5X8F5s2mxyiy5YOv13IQNLB7zqYVDj99lZca2LKdlfsnhrY4yXKmM?=
 =?iso-8859-1?Q?/EBwVQR034t6Ab7uDt0pMeNl7wkT?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(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?XoHkZAdZz02/e03j0tWQ+InhZFJeQ16PLlGs/jlIPxZAEfbw68wkqqxksi?=
 =?iso-8859-1?Q?S9r9Pp3QG0uvNzcYFppJs39A94757fjd4R9jffR7U/2+ZCmGbgMc33LLLF?=
 =?iso-8859-1?Q?WdioyRyvBOHx8h/IuIzlQWhdiTK5MXdOZU2eh/lT//dSMUqg0LsMlELAo3?=
 =?iso-8859-1?Q?+JRoj2VY2aL27PKkss8/1voLF3kil33JGZHEHbSRKbwO0DNjTbEcgw3qes?=
 =?iso-8859-1?Q?KAkv/6D+7FYDeM4BoqT7He9LMiPVoPQOVH3aVOEmFocF0pGoE6St9BQxI3?=
 =?iso-8859-1?Q?ipnaY4pnWQ3yr2UY+JhNFni8VTve8WG50S483I/Twl/m68aBhzwQRpzBBr?=
 =?iso-8859-1?Q?hx5v2gVcF9qYm+8wnsqfiLhVv1Gvzp0RWf71QouMDvyi/ZQO8vx2q4Ke+8?=
 =?iso-8859-1?Q?iwwv8L561J0vNWPAYT9OxDpttId9S7ZUM4PPQyrRKgGLcx05cycerprKzi?=
 =?iso-8859-1?Q?jkQXUkyXlGcFct84oIOMAh5za52TMtom02cbfpUKw/pZYOfZCc0qYb/Dtl?=
 =?iso-8859-1?Q?o/0YHgoiOQbtRdpJIgCj7r9H8JBx26y/KP43zdfXbPrvPUzombP3wsyhzY?=
 =?iso-8859-1?Q?T+bTei6aptvtP430YzO7LKYNDi8SpuK4gbh8wSwJocTPW2K8YMoEKHLgqN?=
 =?iso-8859-1?Q?dCQyzMcrRddHqHyJy3xJsi9kS8yF7cy15jjUtzte8IfjcIQesr6ZYDGC3L?=
 =?iso-8859-1?Q?GJDieQO4ufZ6KYotKYz0RuvtjqMMUWg6In+kpP9gyXPAALQSB+rvzm9j99?=
 =?iso-8859-1?Q?qO7t5nbYxNzbxGyH6rrJ6dWFyWrhSUa9WW90XKdv9TWPdOXH9IK9lvID9p?=
 =?iso-8859-1?Q?Xu390/mU+yVDh2W3cV1uc3/ntyqki7DBrMh3t/+Tef6SlNuNEMH8dw3tER?=
 =?iso-8859-1?Q?13D/7lcOziPmazbSOQCDDNd1CuoMJbmaxMEw4MOmVIVwjL5kanyo3Uze04?=
 =?iso-8859-1?Q?bEgFhdc2H9LztBk7D1epfxvKe0/qTaL//dvA7lalf0ggqfcU2D4AL0Y5Rc?=
 =?iso-8859-1?Q?9LrrU8f6n+o+1DCXMh4mZQdBTYx8WDbTWi854N7Z2rtBA2IcdzwNH0UDH4?=
 =?iso-8859-1?Q?X9WPOoFOPRyr9qDfL8EMifI+1nspMrMcy8uQ5ErdgtVQKX51nv0gemgzbB?=
 =?iso-8859-1?Q?bOEPcXVyGeWGQpJXB0dHD8zvkvnFK+e6VnvU/pdyqcwkNj/Wail/KSJbhY?=
 =?iso-8859-1?Q?xMop1QjmvpZ3US52M6Tj+zDoMzixhwq2ezU6GcYZ+PE1mWXk9oZ4uWzwe1?=
 =?iso-8859-1?Q?4WAFbSCqyTfoK9f3CVIND9GaC+wwaglK28kOTn1ZkhTNhR/6Y+CHLWSDXZ?=
 =?iso-8859-1?Q?sr3ndTXxIo9SbibI7Z0pdHAngT3yA2OZESC0o9xL/vr6wCV3/tDmkfcmqo?=
 =?iso-8859-1?Q?qmNDyC6DzjTdvmIqMNPC6ytl4sCEY0ThtFFq9mY0079zSwFoYAkAdS7Waf?=
 =?iso-8859-1?Q?86hIdLbN4qwC7bla3Z9ogc54/Kc9UFqpqIBGW8WGfKxV7RJbJMqN3TfBM8?=
 =?iso-8859-1?Q?nnL2F1e7JBUlvuU0MmT0vEJR9ZLkENjzO8ijL76U8V+gf1SMcH5WhPv7U/?=
 =?iso-8859-1?Q?geDo5VAY/0iIFpSGas3dNAjXFTT0hb6GbM2AHD6ewdVTBZpH3kH7H6kQ0Q?=
 =?iso-8859-1?Q?afbQyxecSfGtgVOc7z7bFrBfChZlqjLFqa7II5f7HDc8acnqYlqmijEg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7e9e3bd6-9374-4b35-921b-08de215e1339
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2025 20:08:26.5729
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: CIPFWV0bXXtKZjdPTA40fQZp/IzIIKn9zcgyLywzhWef8HX5ynWVdDnpiGBVJ2KZAA1YOkhE5NgJktUsPtIyN30UMAdnPTwqC48+2SjGWmM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7758

From: Grygorii Strashko <grygorii_strashko@epam.com>

The hvm_shadow_handle_cd() can be used only with SHADOW_PAGING=3Dy, so guar=
d
hvm_shadow_handle_cd() call with paging_mode_shadow() which accounts for
SHADOW_PAGING state.

bloat-o-meter
 add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-290 (-290)

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
changes in v2:
- s/!paging_mode_hap()/paging_mode_shadow()

 xen/arch/x86/hvm/vmx/vmx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index d7efd0a73add..67861bc8bccf 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -1514,7 +1514,7 @@ static void hvm_shadow_handle_cd(struct vcpu *v, unsi=
gned long value)
=20
 static void cf_check vmx_handle_cd(struct vcpu *v, unsigned long value)
 {
-    if ( !paging_mode_hap(v->domain) )
+    if ( paging_mode_shadow(v->domain) )
     {
         /*
          * For shadow, 'load IA32_PAT' VM-entry control is 0, so it cannot
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 20:08:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 20:08:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159306.1487690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIufW-0004wC-Pg; Tue, 11 Nov 2025 20:08:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159306.1487690; Tue, 11 Nov 2025 20: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 1vIufW-0004w5-Le; Tue, 11 Nov 2025 20:08:46 +0000
Received: by outflank-mailman (input) for mailman id 1159306;
 Tue, 11 Nov 2025 20: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=KiuT=5T=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vIufV-0004GQ-5r
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 20:08:45 +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 38b2c75b-bf3a-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 21:08:42 +0100 (CET)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by AM9PR03MB7758.eurprd03.prod.outlook.com
 (2603:10a6:20b:3dc::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Tue, 11 Nov
 2025 20:08:27 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%6]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 20:08:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38b2c75b-bf3a-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Gw+Hp6U5Kv5CgzluALCj3FrwmjA06q5oF8auei73QpNqxiBvJOxSKG2nPmgTPfveNMJmFV4FkNbegPhAzxdRgooVN2uSoHi4KldS24VexNGg/f3ZBXB4jRda9EDQwpuUTR9C+qv0WAtG4YvM4sEwboAPMnCrutKmCbksR0FJR9ptZzX+TP4CxzigKBiEqXMiKy8KDkWozGhGsOPMTBZ1dZiQliZff/dSriddKAHidLvOXNNYHUFvx8qY5m+MKg51rX61gmAcaLQwXjhVlyNNGwpqCK1zs7wDwv+WdvtJUf6WOJpLVTJcmR3WKNNJtJpy3DgwEIN1F6NQTDxkDxlFzg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3fc8kqULrDlEecW0AMKDiqA+VYZUna5h4+g6PU7mwyI=;
 b=ncF02tUf3bXWZ/4GTgvkCV27izhwOTFrTZduf1h4GWJKyZWwz35vh1LCY4o+EbjVvLfemE6rnNm93A4uof7fI3CtVK5nPu+xdTGdNKvudEbpCj4QXaLUFQ0hWiKTyrN+bltHb8igCm4nWmq8iqMEVb/QUJnH8zEP8ieKXB2a510ZiAmHDP+nEieqgZFHqqLi2X02BT7HKwtn/hgl+CJAtXYYo9eLXctYX0w7W7pWFwv6/OUuNvdWk+0bESFz8Er8bHh2cNBQskBmMUVdjTWZ+6aoZA4CWlcDrS4rkzfuGgwpldHXHPcMy4piISvCISfBj8cs1tjT5rx/6sWDHMdi3g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3fc8kqULrDlEecW0AMKDiqA+VYZUna5h4+g6PU7mwyI=;
 b=RPcEjmJ6lkqUseVJmFvWSMndzUeUqzveZz9tiiZi0qIeAvn0h3X38ALsO6IZ2ag/L7i382CZUeWZmQO8gHQQ8JWJjrnM1iZUzs6bTAWkaSYO9iROJnVtbDexcf+TAG785Y8JZ2q5PF8INzfV/XGzVcrN1/6N3WINclAXTARHNa7gwz2E2liFqD4ceswBgyN/wTUwEpZfOP1Y8Tk0Z1g+GGBcaJYaYUNhQOOkpaED8lKXIP3IuM4UxXk07/EBEyQvY1uxQw7hQ5hDeFypxTQHQUNRDOjHd59vewjX4FRpmdjqnIrUb795spXt9vy1Cc1xKqgwQuV/lNU0mDgjvh2JIQ==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: [RESEND PATCH v2 3/3] x86/hvm: vmx: refactor cache disable mode data
Thread-Topic: [RESEND PATCH v2 3/3] x86/hvm: vmx: refactor cache disable mode
 data
Thread-Index: AQHcU0bwLNN2MekWRUyLAAcFJooieg==
Date: Tue, 11 Nov 2025 20:08:26 +0000
Message-ID: <20251111200754.3575866-4-grygorii_strashko@epam.com>
References: <20251111200754.3575866-1-grygorii_strashko@epam.com>
In-Reply-To: <20251111200754.3575866-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB3PR0302MB8919:EE_|AM9PR03MB7758:EE_
x-ms-office365-filtering-correlation-id: b47fb9ef-ef0b-48ad-b339-08de215e1375
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?FLjFatVUM2kh2zJXml9EuJ2u/cuSAwXsX1QBgVeBTKwgJuHm+VzYHRzZEp?=
 =?iso-8859-1?Q?qChRm4y+LbiJuDg+Qt/oj09PWCfkEwhheUWDy69ZkintQ6ARcFr/QJYtlO?=
 =?iso-8859-1?Q?6nmw/XNoJq57iijrPT2ROx0wRSdhJXl8WaS/k8GlOeP17dpfbv+BbJKPvf?=
 =?iso-8859-1?Q?dEff7th4BAOuDYJZCfPe57Q1JGdXamTifAYrn4jOV6jjUZZBAVO5fTqAee?=
 =?iso-8859-1?Q?4wPWtdqrRgn5zSg/tyO76lxmqBjiIgfSUw0tyH1gARcW01KywMVpT7w30L?=
 =?iso-8859-1?Q?nY2eQWaYB/7vnTAQxiYmOPWw3szld5KI0MS0/eHHc+FKzSCQpie0m36omM?=
 =?iso-8859-1?Q?5QgwBLFXjxmw4QYAOIyqGo0mGpY4RhwlDrKQ+5ocDjzn8YF5EFsNpByjnI?=
 =?iso-8859-1?Q?zSc8dEN8v1SDk52bnu9y2b6JbM2rZc9SEdo29SlIGCUNCfJ6QJOfOAHjYN?=
 =?iso-8859-1?Q?IcHekz40jy/O9VB9muWmjmR4EUdVDWcr+UoCd9wkVOlOWtqt93Xdm8u1Ft?=
 =?iso-8859-1?Q?nYKtFr+j0UDsdThEg2weMKaMjsgrL4xSdJWHRchsyRnwfgwnFmZW6m7Zx5?=
 =?iso-8859-1?Q?AKABV176tAfPDiW29Y1o7fJx2GLspNwecTMmKDxr3efgU2Hijrp5vmGQiA?=
 =?iso-8859-1?Q?V7x0vQ/iSFeXdj41WAvKK/K9zCiLeMBrAx4QTDh9QIRVcDf584t3jD9ck/?=
 =?iso-8859-1?Q?gYTNwxhmJP4q3DmoxHHmbrNGVk8an4akgdE8eUh1IqRAd5UtREssOhnNPy?=
 =?iso-8859-1?Q?7TLDai8/JTbYbrAtzVo1u+C5Y8IFLvHs54ze2VIc6SQKDZK7EC0pi1ziW6?=
 =?iso-8859-1?Q?mN74xICCSIvEoJ2nImXKF65fwL0uBpkfSFaB2gdsbIDFGuUOciFBCOsbd7?=
 =?iso-8859-1?Q?oMTP181e/wl/gBW3FHKNZynbGh+gVta1TOP/jJZzMgeGtJ6uJCHPIKiM/d?=
 =?iso-8859-1?Q?40igmkXB5ULqg2/NeHJYPX2ltPmIzUu8d6U1RPt3UbcApLLeQnILAS3rwK?=
 =?iso-8859-1?Q?HnXqmkO0OGgqByuKARCObFXMT3aFYs70Z9tg+Gyg7yFqHlBvBNvnlhpRmD?=
 =?iso-8859-1?Q?6EV0rXpiuwyNg2jadjGthlGG5sDkvxCnRcuOLOvSTd/BivhA6u9ltXbht/?=
 =?iso-8859-1?Q?A4r0nKBIuM2WKi++sEREwfJlR5wvFjKo4nVO0HWrCJjUygLsmeNhj1Ls6f?=
 =?iso-8859-1?Q?Pe5W6528hC6ziTi0FY0Do7+GwooAAmWBi1ju8XLCaoonhjJ/vpkyiltjZt?=
 =?iso-8859-1?Q?nMETyKkP2lzwb1GFu4MLsyy0wkgdomBOUDxr7K1NIgHP+UDew/utPfbTS2?=
 =?iso-8859-1?Q?8zNhjynpo4gR7KRF7WY/mxl0L5IieZujq/TB4ZGwEqj6lAZ/4YUbj7M0Z/?=
 =?iso-8859-1?Q?swdUJBcBjLbVkz6AbevOuYT8CTzcN/+K6+sgzPzI1iMbGW890QFOqwDL9o?=
 =?iso-8859-1?Q?+9GsHx6YMt9t1mMr043zlBCWPb7jQlLjf8d++R0qVVVI7FrdwNbWSXswlH?=
 =?iso-8859-1?Q?Oy1ElcZOAyK67pxrrsBDGmYByK7mL/zbPQkYwr56uI7BV3oyQmi0WFgSOc?=
 =?iso-8859-1?Q?vbJnciiBLbUuW/tIc3QCxzDC3CDw?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(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?7+X9rXka39UYbXAu+gtIyjzlUKTry0bQ2BVIumERRYjkNy6CSwqzwHbd+G?=
 =?iso-8859-1?Q?xHipK3VegXfpKBF4OIDhTDHsFU4UgJ4iR1Yii9KTzDUC3gpOv6gDsThBzh?=
 =?iso-8859-1?Q?JOxnlZ7DodpPGbsjs224E5+ueVx/wDX/GHeuwsXel4b/IJ179O+ueGjQho?=
 =?iso-8859-1?Q?a0zbyHVRo0J+bScVbSyNg4LuGimFNyR1E2+MXfYLcoFuZy4Z+UZdUwP479?=
 =?iso-8859-1?Q?/e2tIIMM0fkAw4HJh/ipXbqtrngVtIyNXqPUMoOuQV9s7kCCzAcfnBO70/?=
 =?iso-8859-1?Q?bJIqL8Tsr2gbdUUSv5siLG94gRbHK7gP/2xb2QFqHcUwDZW6oI5jadLh91?=
 =?iso-8859-1?Q?ZVuunb5qiKSv+kZdqeTKnO8n7GH1g7QdiNyfTmRolSmgvHOJZjEoKfJtuY?=
 =?iso-8859-1?Q?MttRKiDlsF0zcu5YNxxgBtGlqNJxZpX1Jr6/N8A07YuLN+Wu5szsVU3IcO?=
 =?iso-8859-1?Q?+tgm+d7E8ezMPtGpFEeP+UwVjqKt+S0w1sKh8GpxpeWWnV4dh+TCYmTA05?=
 =?iso-8859-1?Q?02z/W4qQw9e0GEOVm+HPt59Wos3BIhTwY+q2SfILvoITJqS8E5E0mquIB7?=
 =?iso-8859-1?Q?0g5qnfYkM3sDVVUs5W6+OwB6dZn1v0xPI6/IfF/nDeh+wSKVy133udvSbA?=
 =?iso-8859-1?Q?vvooBObkcaAOzEbyeiFhdwzQJPFBI2pTAXZL7kmvHrOWV3/t/IkS9u3cqu?=
 =?iso-8859-1?Q?ONfbGjFxQ/JWGqh70iHdmLXbji+czJW2piWcRAYuwUkoPhqdWQFQKesT6Z?=
 =?iso-8859-1?Q?/1O+mDjrl6KL2CNHQJq9Y99yvZtX2IyFrvSYfor/GNvkyeszVgz5UCjw6n?=
 =?iso-8859-1?Q?raNNMPOE8DAkdVupAUXLQwSB5fj/xX4FeS6t5L28MhMH5QxfpV090RvG22?=
 =?iso-8859-1?Q?vv1fDwEb92bIuiPB2KJPOYpj8wseBMxTqRjuz1WdJQC1B5L/MxPQHp25sV?=
 =?iso-8859-1?Q?/wSN/fn1Ao94NBx3L3TlVxPqQ2f/eb9LwXgI2klEV8BbwYwetVFZzWwE74?=
 =?iso-8859-1?Q?PxzReyndPOiBQmIihedJpy7PhOUXGkr3x4CtbNc96TRxk52zlpFBGiz2To?=
 =?iso-8859-1?Q?V2ghKtE5MEp862etSVT+ojBjYoIKvTua/F+x0uMY1l7pQM0ux9L+r338+U?=
 =?iso-8859-1?Q?C6WgoNAet/wyrECC0cn+Q2WGgMl9eOO8+kuJGMj/jliyCIsenDH4tNyTG4?=
 =?iso-8859-1?Q?+cq1TgEeSeSRzpRKzASynhAvOMa6MORkFn5LwiFuGfwlfg5dE4XaHeG1aO?=
 =?iso-8859-1?Q?y1MbR2RgGTJHWG1a2sn+qlipe7wpEJ3LDbRhM/BMe70OSf/FzIFzXNJQ1J?=
 =?iso-8859-1?Q?DQQEhgWE8PQGRe9q4q266fHUNG1nWR+spZakxtWf04tsWvo/VISVAZQr0L?=
 =?iso-8859-1?Q?6o+fXHy7ommkwgCx5/6XBDAT6JCsWkIPrhnG3YQt2A3b0DzTWR57sD4rC/?=
 =?iso-8859-1?Q?UOk46HokTDBvOfzxP1OSXbf17GJ2iXcjAqh1EFlb7VEQiP9HMWyHAL2Rph?=
 =?iso-8859-1?Q?N80CRNRyXcU3VB/VQn+XS8gvR79N7fR35i3Yd2gOFS3fuzxcd+MAWWlVRg?=
 =?iso-8859-1?Q?5QgES9kaWnQURZlpjMgNH8FQ2FsKMozs2Sj8EmdO20vbvbRZix16r7M52p?=
 =?iso-8859-1?Q?fycK27jQ25D7vGa0zmheblBdnXTQiNVxiJFd3CQaB0M+9o4DjQooPoyQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b47fb9ef-ef0b-48ad-b339-08de215e1375
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2025 20:08:27.0007
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 95jexWdLC4EiJ7V6J/bumHsONLdsuTO2KgBvdF4oPp7IbnPmfKzEFBciYKp366GXudUOxZAiAm2TWdg7IuRk2/bka7jq5/wATrY1WNyiSwU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7758

From: Grygorii Strashko <grygorii_strashko@epam.com>

The Cache Disable mode data is used only by VMX code, so move it from
common HVM structures into VMX specific structures:
- move "uc_lock", "is_in_uc_mode" fields from struct hvm_domain to struct
vmx_domain;
- move "cache_mode" field from struct hvm_vcpu to struct vmx_vcpu.

Hence, the "in_uc_mode" field is used directly in mm/shadow/multi.c
_sh_propagate(), introduce the hvm_is_in_uc_mode() macro to avoid direct
access to this field and account for INTEL_VMX configuration.

While here:
- rename "is_in_uc_mode" to "in_uc_mode"
- s/NORMAL_CACHE_MODE/CACHE_MODE_NORMAL
- s/NO_FILL_CACHE_MODE/CACHE_MODE_NO_FILL

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
changes in v2:
- s/is_in_uc_mode/in_uc_mode
- s/*_CACHE_MODE/CACHE_MODE_* and move them after "cache_mode"
- reorder uc_lock,in_uc_mode in struct vmx_domain
- move spin_lock_init()

 xen/arch/x86/hvm/hvm.c                  |  1 -
 xen/arch/x86/hvm/vmx/vmx.c              | 30 +++++++++++++------------
 xen/arch/x86/include/asm/hvm/domain.h   |  6 -----
 xen/arch/x86/include/asm/hvm/hvm.h      |  3 +++
 xen/arch/x86/include/asm/hvm/vcpu.h     |  3 ---
 xen/arch/x86/include/asm/hvm/vmx/vmcs.h | 13 +++++++++++
 xen/arch/x86/include/asm/mtrr.h         |  3 ---
 xen/arch/x86/mm/shadow/multi.c          |  2 +-
 8 files changed, 33 insertions(+), 28 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 9caca93e5f56..c09fb2ba6873 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -608,7 +608,6 @@ int hvm_domain_initialise(struct domain *d,
     }
=20
     spin_lock_init(&d->arch.hvm.irq_lock);
-    spin_lock_init(&d->arch.hvm.uc_lock);
     spin_lock_init(&d->arch.hvm.write_map.lock);
     rwlock_init(&d->arch.hvm.mmcfg_lock);
     INIT_LIST_HEAD(&d->arch.hvm.write_map.list);
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 67861bc8bccf..0d9a4a17c433 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -590,6 +590,8 @@ static int cf_check vmx_domain_initialise(struct domain=
 *d)
      */
     d->arch.hvm.vmx.exec_sp =3D is_hardware_domain(d) || opt_ept_exec_sp;
=20
+    spin_lock_init(&d->arch.hvm.vmx.uc_lock);
+
     if ( (rc =3D vmx_alloc_vlapic_mapping(d)) !=3D 0 )
         return rc;
=20
@@ -1431,7 +1433,7 @@ static void cf_check vmx_set_segment_register(
 static int cf_check vmx_set_guest_pat(struct vcpu *v, u64 gpat)
 {
     if ( !paging_mode_hap(v->domain) ||
-         unlikely(v->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) )
+         unlikely(v->arch.hvm.vmx.cache_mode =3D=3D CACHE_MODE_NO_FILL) )
         return 0;
=20
     vmx_vmcs_enter(v);
@@ -1443,7 +1445,7 @@ static int cf_check vmx_set_guest_pat(struct vcpu *v,=
 u64 gpat)
 static int cf_check vmx_get_guest_pat(struct vcpu *v, u64 *gpat)
 {
     if ( !paging_mode_hap(v->domain) ||
-         unlikely(v->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) )
+         unlikely(v->arch.hvm.vmx.cache_mode =3D=3D CACHE_MODE_NO_FILL) )
         return 0;
=20
     vmx_vmcs_enter(v);
@@ -1462,7 +1464,7 @@ static bool domain_exit_uc_mode(struct vcpu *v)
     {
         if ( (vs =3D=3D v) || !vs->is_initialised )
             continue;
-        if ( (vs->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) ||
+        if ( (vs->arch.hvm.vmx.cache_mode =3D=3D CACHE_MODE_NO_FILL) ||
              mtrr_pat_not_equal(vs, v) )
             return false;
     }
@@ -1472,7 +1474,7 @@ static bool domain_exit_uc_mode(struct vcpu *v)
=20
 static void hvm_set_uc_mode(struct domain *d, bool is_in_uc_mode)
 {
-    d->arch.hvm.is_in_uc_mode =3D is_in_uc_mode;
+    d->arch.hvm.vmx.in_uc_mode =3D is_in_uc_mode;
     shadow_blow_tables_per_domain(d);
 }
=20
@@ -1483,10 +1485,10 @@ static void hvm_shadow_handle_cd(struct vcpu *v, un=
signed long value)
     if ( value & X86_CR0_CD )
     {
         /* Entering no fill cache mode. */
-        spin_lock(&d->arch.hvm.uc_lock);
-        v->arch.hvm.cache_mode =3D NO_FILL_CACHE_MODE;
+        spin_lock(&d->arch.hvm.vmx.uc_lock);
+        v->arch.hvm.vmx.cache_mode =3D CACHE_MODE_NO_FILL;
=20
-        if ( !d->arch.hvm.is_in_uc_mode )
+        if ( !d->arch.hvm.vmx.in_uc_mode )
         {
             domain_pause_nosync(d);
=20
@@ -1496,19 +1498,19 @@ static void hvm_shadow_handle_cd(struct vcpu *v, un=
signed long value)
=20
             domain_unpause(d);
         }
-        spin_unlock(&d->arch.hvm.uc_lock);
+        spin_unlock(&d->arch.hvm.vmx.uc_lock);
     }
     else if ( !(value & X86_CR0_CD) &&
-              (v->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) )
+              (v->arch.hvm.vmx.cache_mode =3D=3D CACHE_MODE_NO_FILL) )
     {
         /* Exit from no fill cache mode. */
-        spin_lock(&d->arch.hvm.uc_lock);
-        v->arch.hvm.cache_mode =3D NORMAL_CACHE_MODE;
+        spin_lock(&d->arch.hvm.vmx.uc_lock);
+        v->arch.hvm.vmx.cache_mode =3D CACHE_MODE_NORMAL;
=20
         if ( domain_exit_uc_mode(v) )
             hvm_set_uc_mode(d, false);
=20
-        spin_unlock(&d->arch.hvm.uc_lock);
+        spin_unlock(&d->arch.hvm.vmx.uc_lock);
     }
 }
=20
@@ -1549,11 +1551,11 @@ static void cf_check vmx_handle_cd(struct vcpu *v, =
unsigned long value)
=20
             wbinvd();               /* flush possibly polluted cache */
             hvm_asid_flush_vcpu(v); /* invalidate memory type cached in TL=
B */
-            v->arch.hvm.cache_mode =3D NO_FILL_CACHE_MODE;
+            v->arch.hvm.vmx.cache_mode =3D CACHE_MODE_NO_FILL;
         }
         else
         {
-            v->arch.hvm.cache_mode =3D NORMAL_CACHE_MODE;
+            v->arch.hvm.vmx.cache_mode =3D CACHE_MODE_NORMAL;
             vmx_set_guest_pat(v, *pat);
             if ( !is_iommu_enabled(v->domain) || iommu_snoop )
                 vmx_clear_msr_intercept(v, MSR_IA32_CR_PAT, VMX_MSR_RW);
diff --git a/xen/arch/x86/include/asm/hvm/domain.h b/xen/arch/x86/include/a=
sm/hvm/domain.h
index 95d9336a28f0..83be2bd1c29c 100644
--- a/xen/arch/x86/include/asm/hvm/domain.h
+++ b/xen/arch/x86/include/asm/hvm/domain.h
@@ -97,12 +97,6 @@ struct hvm_domain {
     /* VRAM dirty support.  Protect with the domain paging lock. */
     struct sh_dirty_vram *dirty_vram;
=20
-    /* 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
-     */
-    spinlock_t             uc_lock;
-    bool                   is_in_uc_mode;
-
     bool                   is_s3_suspended;
=20
     /* Compatibility setting for a bug in x2APIC LDR */
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/=
hvm/hvm.h
index 20b373cea6fb..728b9624522f 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -394,6 +394,9 @@ static inline bool using_svm(void)
     return IS_ENABLED(CONFIG_AMD_SVM) && cpu_has_svm;
 }
=20
+#define hvm_is_in_uc_mode(d) \
+    (using_vmx() && (d)->arch.hvm.vmx.in_uc_mode)
+
 #ifdef CONFIG_HVM
=20
 #define hvm_get_guest_tsc(v) hvm_get_guest_tsc_fixed(v, 0)
diff --git a/xen/arch/x86/include/asm/hvm/vcpu.h b/xen/arch/x86/include/asm=
/hvm/vcpu.h
index 9ed9eaff3bc5..eae9ac53767b 100644
--- a/xen/arch/x86/include/asm/hvm/vcpu.h
+++ b/xen/arch/x86/include/asm/hvm/vcpu.h
@@ -168,9 +168,6 @@ struct hvm_vcpu {
=20
     u8                  evtchn_upcall_vector;
=20
-    /* Which cache mode is this VCPU in (CR0:CD/NW)? */
-    u8                  cache_mode;
-
     struct hvm_vcpu_io  hvm_io;
=20
     /* Pending hw/sw interrupt (.vector =3D -1 means nothing pending). */
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h b/xen/arch/x86/include=
/asm/hvm/vmx/vmcs.h
index 53aa9e3556d3..d28a2682e9df 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
@@ -46,6 +46,7 @@ struct ept_data {
=20
 #define _VMX_DOMAIN_PML_ENABLED    0
 #define VMX_DOMAIN_PML_ENABLED     (1ul << _VMX_DOMAIN_PML_ENABLED)
+
 struct vmx_domain {
     mfn_t apic_access_mfn;
     /* VMX_DOMAIN_* */
@@ -56,6 +57,13 @@ struct vmx_domain {
      * around CVE-2018-12207 as appropriate.
      */
     bool exec_sp;
+    /*
+     * If one of vcpus of this domain is in no_fill_mode or
+     * mtrr/pat between vcpus is not the same, set in_uc_mode.
+     * Protected by uc_lock.
+     */
+    bool in_uc_mode;
+    spinlock_t uc_lock;
 };
=20
 /*
@@ -158,6 +166,11 @@ struct vmx_vcpu {
=20
     uint8_t              lbr_flags;
=20
+    /* Which cache mode is this VCPU in (CR0:CD/NW)? */
+    uint8_t              cache_mode;
+#define CACHE_MODE_NORMAL  0
+#define CACHE_MODE_NO_FILL 2
+
     /* Bitmask of segments that we can't safely use in virtual 8086 mode *=
/
     uint16_t             vm86_segment_mask;
     /* Shadow CS, SS, DS, ES, FS, GS, TR while in virtual 8086 mode */
diff --git a/xen/arch/x86/include/asm/mtrr.h b/xen/arch/x86/include/asm/mtr=
r.h
index 25d442659df2..3a5b4f5b6eec 100644
--- a/xen/arch/x86/include/asm/mtrr.h
+++ b/xen/arch/x86/include/asm/mtrr.h
@@ -7,9 +7,6 @@
 #define MEMORY_NUM_TYPES     MTRR_NUM_TYPES
 #define NO_HARDCODE_MEM_TYPE MTRR_NUM_TYPES
=20
-#define NORMAL_CACHE_MODE          0
-#define NO_FILL_CACHE_MODE         2
-
 #define INVALID_MEM_TYPE X86_NUM_MT
=20
 /* In the Intel processor's MTRR interface, the MTRR type is always held i=
n
diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.=
c
index 7be9c180ec43..03be61e225c0 100644
--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -559,7 +559,7 @@ _sh_propagate(struct vcpu *v,
         if ( !mmio_mfn &&
              (type =3D hvm_get_mem_pinned_cacheattr(d, target_gfn, 0)) >=
=3D 0 )
             sflags |=3D pat_type_2_pte_flags(type);
-        else if ( d->arch.hvm.is_in_uc_mode )
+        else if ( hvm_is_in_uc_mode(d) )
             sflags |=3D pat_type_2_pte_flags(X86_MT_UC);
         else
             if ( iomem_access_permitted(d, mfn_x(target_mfn), mfn_x(target=
_mfn)) )
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 20:10:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 20:10:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159342.1487699 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIugn-0006yM-5I; Tue, 11 Nov 2025 20:10:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159342.1487699; Tue, 11 Nov 2025 20: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 1vIugn-0006xs-2Z; Tue, 11 Nov 2025 20:10:05 +0000
Received: by outflank-mailman (input) for mailman id 1159342;
 Tue, 11 Nov 2025 20: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=KiuT=5T=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vIugl-0006ga-UT
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 20:10:03 +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 686292d3-bf3a-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 21:10:03 +0100 (CET)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by AM9PR03MB7758.eurprd03.prod.outlook.com
 (2603:10a6:20b:3dc::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Tue, 11 Nov
 2025 20:09:59 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%6]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 20:09: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: 686292d3-bf3a-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IKx1Hf/PxqC5nvxnCXGRlpRXz0QONd/AFIupcLKW7Y1wVGrzVD63BHK91GQbrFSN4GqakOPJGdFLJMlhx1khpaz0nvn3U6aN6VIhaRQtmtpomID94bxSkn14OsS1RzmJtr1ngTzsrQZW9g+kzwjYQu/dWCakKKUezzQUF1xYnccdTgO/XXCfkqXtlBBpVdh83c1Xi4TTJ/eKcCX5tVpbvKhOW6w8WBO38NA6m/jLnTVnjqxF+1K39S8K7LECPVnExKofgxzLZwE4W/BhQL+mystOZVnBgmagR770tTSnfKlQL42T0nZvrbnNkvW9Icn391ASPi8tAjl5duWIEi4ucw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=avySyVoUNnEQXlDAooPk+JX3+HVzZzILNmAQk4gwOnc=;
 b=N5gesflvMk6vxvrNNZ1nQGSM0QOjSc5fN4caK6WRvQhdaEwhL+aoHlU1AL8U2XdQd66XrXIMk7/1065FmvSoUMOiq2fuhUwvjKkTb5cOsv70QeVcIWNNiCthZtKaFydXVETT913K8B6c/aYTQF+uRbssKYK6/Vo9fqbe5sDIdhQfQhkn0SsUIRXzT7lo+gyuG0F9tMjvuvmm5OncjZ4r7oZkYlmLx3M22G8kLFBRn+8wTqZI2IVTQvsjZychnVkRJyYiMkIBndDsHVKKQyRWV5UQE+cqm2emens34W1pUbgOwRLq0XrtAAnsQR/FZK9lk1REocsKvh3wv3wiYTywbA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=avySyVoUNnEQXlDAooPk+JX3+HVzZzILNmAQk4gwOnc=;
 b=PwBfP7awMogWTOPY3bkQwHzvLW1oEFeyrTmBWpOaETvtWlXUnwcE7SmX1bnwP5La7Tlg0A42b9bQEIvqmi3D/wr5ZyU6opAM/bgtQIyoIqlFhjVgI+qSkvu9+FgIgbts8WA8fLFPrqSwUDyuOIJfFQqz8zHAI69UKaRZjycVxsod8TMGriGOGIrLmf82U4cM1E1pTHRWOetVeaixo7elXlS6S/tNT+Fe0VGvkeewYD3gaBpq18srFnU10VW9EQcGW0MG6QaD+Ksm9kCLHs+1CvB4AGBbccyr6eqjjilmGFs9GT03NCv/apFfvi9IPG5tAok/l8ww5GkpRBGunmSRIw==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Tim Deegan
	<tim@xen.org>, Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie
	<teddy.astie@vates.tech>
Subject: [RESEND PATCH v2 0/3] x86/hvm: vmx: refactor cache disable mode code
Thread-Topic: [RESEND PATCH v2 0/3] x86/hvm: vmx: refactor cache disable mode
 code
Thread-Index: AQHcU0co4QnguYI6BEq1l/TCR7Zibg==
Date: Tue, 11 Nov 2025 20:09:59 +0000
Message-ID: <20251111200958.3576341-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB3PR0302MB8919:EE_|AM9PR03MB7758:EE_
x-ms-office365-filtering-correlation-id: 04a338fb-0a39-4438-1275-08de215e4a9b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?oKTYyGKVAaniklo7kLZPkdYTv/HkOAXzFuJL6rtFbt+Nqc/xU/UZu9ysWM?=
 =?iso-8859-1?Q?CiDGtbbDNaiwFJWN3VfED/axzs8y7kNq9DilHI8A43K84E7MncjUjjXJw5?=
 =?iso-8859-1?Q?aU2ZEpY51aRxxe2aQ2sPR4bfbihWSJD279+rkWNyzsW9uhP2RA8R/kBm0D?=
 =?iso-8859-1?Q?0N99UEJzwp3SN5aAogF2zlGCXhfbMxQeby7E73gJ+U2BLGnB+c+0ZCrA9A?=
 =?iso-8859-1?Q?hCIMVcO1eaIAZKlhDa3Hb3US9pIdOa1ICNfRdbA0oxNlwr2I78UQ08wmM+?=
 =?iso-8859-1?Q?ml8ReyITZuQULP648aIJ6Z4duexZ1lGEO1aFM6CsR3hBiH/LKX0GL4WRRv?=
 =?iso-8859-1?Q?+7W20V1j+5mDFn9nUNH0t9rg7RSwVzw1fGdG5S4uexwcAQXe1LhbE7ftRW?=
 =?iso-8859-1?Q?in1niuxpdo6DX9PmTCyYsVrKdlEBNUfwPo7Z4iGsQlnAYF+EPEGeENx3XZ?=
 =?iso-8859-1?Q?yax87HyfrHQKzOMn4ymaYOBAYUTifNd3afBXNp0Lu8viCAUramPB8D5VP9?=
 =?iso-8859-1?Q?ITS9xZvCqt56XZJfAFPdeOdtbPZFuy+vKgsrzjNc+5nShxn1oKwOBtPoFN?=
 =?iso-8859-1?Q?UpvZafBqn98nodUS7F/EXFabsAcbxkj3OiovcF82MZZTK5uOQ5CydfzarO?=
 =?iso-8859-1?Q?4dr+Vv1xFvCqLiY5MGOVNERyPHxi9n8NZ20mA3HJu29mAB2jUvTK4iQdoS?=
 =?iso-8859-1?Q?lJiOH6iC/etKnvqJctYlJzCx1vazmIFNm43OK3qB9ASdTBcwufMjZWKy9y?=
 =?iso-8859-1?Q?E5oRxgAMwxbbusz0cd27WbSe8zV1b9TBMMp000Qb2xmC7q0BZBgftnuWmI?=
 =?iso-8859-1?Q?lI+JwpQDOgVXGy74ixGPVLYHnBtIHpURKCrdBXQ5/tbfwaHL03xXt0mWLw?=
 =?iso-8859-1?Q?bI1tg2ckBuxqN3jdZZMSrRHioGyI8IZKv+eYlNuTPiStyvTTfirHwN3wxs?=
 =?iso-8859-1?Q?pGP6qJT+UIvjoq6lJvlQOK6m3XTPP4XZ1ls+q9rP3gcGPiK8DcNOOiNiSz?=
 =?iso-8859-1?Q?YJgZS3T/NRReGByFpmcb6opgUbog4MU/Uv+cCntNR0et5cv+rAH6TiRObn?=
 =?iso-8859-1?Q?ZtznLXrg++WaYjQthSUnUpb5CYdbuLNlgRg2NQbeFNhG6qqMFPg4NZSxxa?=
 =?iso-8859-1?Q?NCjDXksN2bkXagdhMgs384TtgGPXEWQuNfWQTLvqtiwxBjXNJ9IFKiI5+N?=
 =?iso-8859-1?Q?X6+SYTPdQ34gYxGIc67YSdmkzc3SIN+KaZffHLTfxDxj34kj5AJb8ycmLp?=
 =?iso-8859-1?Q?Wmlh52qxBfh2VR7froTvMoydafm8p+5yR/X/u55SNQiuJxZdHDLmqA5UGr?=
 =?iso-8859-1?Q?cWFnGVCPggqjncZxrW3Cq+dpwSVdHhDUPD9Ndj8HEoIPfghLsqF9Yjok2Z?=
 =?iso-8859-1?Q?3KGkfLHZsQdsI8uGxdNiZKivctxDFAa6HZyfaT6FNGLxl5yjY+P6gDMhfv?=
 =?iso-8859-1?Q?RQJ8D1/SjLKK6OY7I+B0NVW9xDKWx6b3uiyfvoJdudQeTQc1KosrSRBhjb?=
 =?iso-8859-1?Q?vkUHB/et/sMu4vqgZ3UHOPSVnxj/kkDcrqkW/HcYUPVk86VBjkN0XgHiog?=
 =?iso-8859-1?Q?Z7pYODrOOtM4+t3J0fUe3TDViy/O?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?/GTuhB83NfIZX4aA43fpCiGb1ZJ1teBRpyodUez0RHI9SPhOpWKaLSDnCB?=
 =?iso-8859-1?Q?iQLZwvELSVhqCkt5pM7AY8icPY3N+Bb5xW0uUejta+5lwBsfsaZoa0rGA/?=
 =?iso-8859-1?Q?CASsgyefZLlT9JjZsav97NQi081NV9yC0O2MllxkhubsuJm2x4Ub60naOb?=
 =?iso-8859-1?Q?Ymjw2Db+CjRBaq2BcPedNqeMDSc8mv6PiN7PA4OLRJk2vDAZy2pSKCYDTc?=
 =?iso-8859-1?Q?gk0sk9gIJ+Vu+FrJSKwrzuQj5r0iUh5UZVEgZ/J1PsgwbCzTn/j/asSXAj?=
 =?iso-8859-1?Q?RjCesfWCZqpJGOEDfRYeL8BXDtvM50alSquHdKY6Tq/H9cWP09YnZhXU2N?=
 =?iso-8859-1?Q?UoKVi4sEEJWzKAHLn5V7OTE+XUXFdPsY9u8S7p4wFd5xySe0aFaRoWGq+s?=
 =?iso-8859-1?Q?BdKWUXH8eMzh0DkIpW7brp/J7h7A44QNmYO5ETjIcKaOXfeGMtiPwj6kVw?=
 =?iso-8859-1?Q?BPS6EMIvzAxRbXUdS989OUbice3Kr3Y19eWkZ5Js3T52L+M46Q0JN4uXMq?=
 =?iso-8859-1?Q?9LKcbPdnw7tWvDX1escp8sL/FCM2Miw4yadCXuVNkHwQtS0PO1ijnY2K58?=
 =?iso-8859-1?Q?fmwiMaPgkqhtM3vqcwltEdATBttYx5TY0DS+JOZyNWGL+eYUdeh0NOOl4u?=
 =?iso-8859-1?Q?CRrh/WYpSGXPQuMu13VWIl9wvSgFSq0ymjK/2v/ebfvagLxIl3yKqvBye6?=
 =?iso-8859-1?Q?JWnhAgbEcAifZx7PdMjcE4DTHZW1ATZVry6j7FT3SEtwZWHfvQqk921Ltp?=
 =?iso-8859-1?Q?0pb+sqo1VroXzNPw6a8trLPswbuTfkkGcyVSscuAk0t4n2gdAaFNg4ZX3e?=
 =?iso-8859-1?Q?9qx6UNCQ8OhxFSj/MAuhw67I2w9ydC2S1M1NGleYncayHIDeY5aIg7giYn?=
 =?iso-8859-1?Q?Ij5dMHAJz8XCUO9JZLqBrxf+iYNHW5oFSq3XyZr5bFdo2+4xhHT091xX+E?=
 =?iso-8859-1?Q?pUxLcdWcG+3Nw8pS5tb/7PAQ1M4S3FJi7ELbMlfZTXxXakbXPxGX5jjFic?=
 =?iso-8859-1?Q?YSiBBJYNpCA1RRpXU0x+MPREIKo6Evg1C1G0OC12j/NqckTdweo6S8Afs/?=
 =?iso-8859-1?Q?vO85lVWPa6LuHusF+rPkdGUii9kKqQKK1Po9ETQFaf3QX3vZ8FeO03bte7?=
 =?iso-8859-1?Q?lWSYtSYvwpgk8fguYLf+DSWVMRpUSP8I6rLnwEzmxIwU2xCV/8VcVwgYT9?=
 =?iso-8859-1?Q?plGcO8urvo8G1ocsKXRu/Py1jaLmW5eRefgDW76QzjWD+O7zPI+p9XsXOr?=
 =?iso-8859-1?Q?MSTWrQqsXPHQbQbkEhx/DNQJDIPvGnOsrpPRREr3c4SheP8sFxpJ44G7RI?=
 =?iso-8859-1?Q?aqYPnKJbmNks3eVqfguS2dykmqfVEEWdVDqjfF2pxIJ0lH6OUykds2KPHh?=
 =?iso-8859-1?Q?9SLJusnqDgVBH4CGv8FrzPC6xMjWAEt5d06RahZFjfenAJdogiuFODvwkI?=
 =?iso-8859-1?Q?LkrnV3iQg8IuhOfG3H2f+E3sZEc+PeVMToKaFng5xPyoEPxVfSyzGoEn/r?=
 =?iso-8859-1?Q?xWUAeMgV+bsuOcm2qybdgcxc3mptg6NlvLkd+xQK5oZ85CqYEvEvbmdPw7?=
 =?iso-8859-1?Q?10/AAJgfwMr+x91spP0UR55LkOjA3NK7CV2gafhOl1Uiz74laEOpWgbh5B?=
 =?iso-8859-1?Q?zYdSF14D3gv7Xp9M+YPvgHYjiMXCwv521VgotBZoiYROkJetYmz3eKQw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 04a338fb-0a39-4438-1275-08de215e4a9b
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2025 20:09:59.5267
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: odmjKHajuqlvjwLr4qssNvObhcSx+YklTdKm180I/xPf9PfdYtGANRCCYCE5lIyDyfkNA5vMFIJBa3j+ZaCODZxaASCkpGcYbXqf1gVmV7A=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7758

From: Grygorii Strashko <grygorii_strashko@epam.com>

The cache disable mode code (hvm_shadow_handle_cd()) is relevant only for I=
ntel VT-x (VMX),
hence:
- move hvm_shadow_handle_cd()/ hvm_set_uc_mode()/domain_exit_uc_mode() in V=
MX code
- account for SHADOW_PAGING when use hvm_shadow_handle_cd()
- move cache disable mode data into VMX specific structures

Based on discussion [1].

[1] https://patchwork.kernel.org/project/xen-devel/patch/20251023151903.560=
947-1-grygorii_strashko@epam.com/

v1: https://patchwork.kernel.org/project/xen-devel/cover/20251029235448.602=
380-1-grygorii_strashko@epam.com/

Grygorii Strashko (3):
  x86/hvm: move hvm_shadow_handle_cd() to vmx code
  x86/hvm: vmx: account for SHADOW_PAGING when use
    hvm_shadow_handle_cd()
  x86/hvm: vmx: refactor cache disable mode data

 xen/arch/x86/hvm/hvm.c                  | 59 --------------------
 xen/arch/x86/hvm/vmx/vmx.c              | 73 +++++++++++++++++++++++--
 xen/arch/x86/include/asm/hvm/domain.h   |  6 --
 xen/arch/x86/include/asm/hvm/hvm.h      |  3 +
 xen/arch/x86/include/asm/hvm/support.h  |  2 -
 xen/arch/x86/include/asm/hvm/vcpu.h     |  3 -
 xen/arch/x86/include/asm/hvm/vmx/vmcs.h | 13 +++++
 xen/arch/x86/include/asm/mtrr.h         |  3 -
 xen/arch/x86/mm/shadow/multi.c          |  2 +-
 9 files changed, 85 insertions(+), 79 deletions(-)

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 20:10:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 20:10:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159343.1487710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIugp-0007TO-GN; Tue, 11 Nov 2025 20:10:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159343.1487710; Tue, 11 Nov 2025 20:10:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIugp-0007TF-Df; Tue, 11 Nov 2025 20:10:07 +0000
Received: by outflank-mailman (input) for mailman id 1159343;
 Tue, 11 Nov 2025 20: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=KiuT=5T=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vIugm-0006ga-K6
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 20:10:04 +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 68c19a29-bf3a-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 21:10:03 +0100 (CET)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by AM9PR03MB7758.eurprd03.prod.outlook.com
 (2603:10a6:20b:3dc::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Tue, 11 Nov
 2025 20:10:01 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%6]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 20:10: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: 68c19a29-bf3a-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Uqqrbz1fkos4x7kBPHdwWFSUVzINzWgiIufyXJj0dGO8++zyKGAIj2Mu6aITQSlzodf3vKCNFQs8eYbzvEf+y3aTAwMap4q38pUJ9E0uAs2CANwZuQNmt7jqv6in91eJ97UKFHVaQlt5c1Jan0TJM3yCQ/4n2nDsP2iqbCsnG+cwMMrcWeHd+uVG4WW5xDZ+yUrsSPHBFPq+U6THOzZmcL/mUix9heQuNBlzeJeh7BQk1uCXvQENkHIywct8M1VPhlUSpTGPNIKWcdpUbJSmpE8JqI2wH5xu5hjInVpHw6YCdHD61cDDH0CusfRLp89+cOCLv9qZMS7p5emG/70Few==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+avs39yG5SK8mfCma+H15nY8tDlKMQPGd027kBE3V08=;
 b=cj7Qg+Qvm0K/gJv/g100ujBGKk2iEcngFIDX8EenC7oC2RSUKy7ZyLtsmUI8anRxbi89hMoIKbij6svktY2+NTAOUx05CqO+NNJUYq5XOcPd++/0q/meI461IgAj8ZjYFZiaapEgOjLPS7nHP073qXpZ0Ye89WhNYyG9A9BuL5lQIocLsGOFAMt0lC9GR1MZp30suz91bYgkRTaY8dKX5nmdyoQ5gq1qcM1Oio0fX/tTmQIB1jViy7woOIaJjxlKLb1in5CO2ZQZ6stuIoDGzBuwKeSmwm4Lgzh5y5K3QIXGdcvYzq1zFPP1GQ2vUcMNp7d1Ck3zBIg/IPymckfaWA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+avs39yG5SK8mfCma+H15nY8tDlKMQPGd027kBE3V08=;
 b=jnM21kvUxEmgw5VuTbkCibomGjwSmfuOmYZFu88I/khYJ0hbwa2/crHRmJ1ls8e7BpdEP47T+c0EgI5VTN455UpPtavcGc4DBc/IlCstP9F/+IS+wFPesHkfx8M+dHiFyrWz+5qTzcBXsWlEjCMxZhlQywC3vjQNI47WuSI1XfU+bMlAaJCUGV1jSUivbONLPATXt6oJuItO+d05MpldMXoTRw69sMunz2ybIWURMh80v/jar77/GKkJxhG1so8NwFfhVD2Btm50+qUbMwny5Q4NVsYo+OdlH55VKUrPQTdxjzGm4OKLwXXrSnIBkk/+UlCRef6cBSylWuox28xwdg==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: [RESEND PATCH v2 1/3] x86/hvm: move hvm_shadow_handle_cd() to vmx
 code
Thread-Topic: [RESEND PATCH v2 1/3] x86/hvm: move hvm_shadow_handle_cd() to
 vmx code
Thread-Index: AQHcU0coeroPA1YNb0eMzNzEaOtgJQ==
Date: Tue, 11 Nov 2025 20:10:00 +0000
Message-ID: <20251111200958.3576341-2-grygorii_strashko@epam.com>
References: <20251111200958.3576341-1-grygorii_strashko@epam.com>
In-Reply-To: <20251111200958.3576341-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB3PR0302MB8919:EE_|AM9PR03MB7758:EE_
x-ms-office365-filtering-correlation-id: f14df5e5-b372-4f34-8d9b-08de215e4bc4
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?AGasMzrpATybdeml51+oHyQfy3913jr+rA1gW8zKjwF7Sg+v0ZY5w1vu6I?=
 =?iso-8859-1?Q?O43G9Qxo9udlnWCSEgP2iLzCGJTTRgGv829mgF5rQs8JEv270+1lSFfEtC?=
 =?iso-8859-1?Q?tIHUbZmXABiLPU8+Ogu086gi+u+KXOGJT9nIY4uDs/fHGED1dMp75pkoem?=
 =?iso-8859-1?Q?zQ9QwMrwPEc40dXW7Db2FHQAGn4LPewEbggJd2icpBrz/b7OGt/Bw82h3v?=
 =?iso-8859-1?Q?XdOCSgnApz0TYZQJOx7xi1/6zTnU9S1f7lGHcnLhMhMsZlB8kAaTHF3fRU?=
 =?iso-8859-1?Q?NLia3SL3+RKS/WRvH75WbW/q21tRcXe0muO2+ijllqjMzRHwglDxg5wJwf?=
 =?iso-8859-1?Q?I6ybGu+XfBUY5S89vR8z4KvgiLN+oU1/yYQMAlEMNoTiRSajOzuf40RA/F?=
 =?iso-8859-1?Q?+wGEMEddAnsYw6Zt9smSVDGUPyBlaPRxGeJmiZ8qslU7qN0zpyPU5RHgI2?=
 =?iso-8859-1?Q?92/gUgEYvahFkK7/wx458LLVixdy0PR1WGFg9+/LiOHgjv5iZp4l8ILLv/?=
 =?iso-8859-1?Q?jSCyBl63jF/RhI2lquIr9CkbjEiloyiKlDD+gfp+acd/A83WwzAr0KCa/f?=
 =?iso-8859-1?Q?N2LpcrvnR0042zLZh3Pj+RyF9NdmI8J65X/nLBcEjillmmWZWJngcsYQyX?=
 =?iso-8859-1?Q?jo9fEIZZPRRuNqDXCv6VikLVZJ+bsG04Mk8fwaFncMkska4zzKSEDeoQs4?=
 =?iso-8859-1?Q?WgFU/mFpMlUQshPBMdmnJnLErMyYI1lgj7MNJPKMNVq+Zt6tS0K2WRNxSu?=
 =?iso-8859-1?Q?cXcMifxE/vQikVnLqaZUcFkcYjTEAQF4g6WPvcVtUQlvel5iIEMW6SUmRo?=
 =?iso-8859-1?Q?IxSn055ZXqLdUC7ilU65nadW0lC21rE1ROi0eR4j9fxDD7KA2iAk1+vH16?=
 =?iso-8859-1?Q?jJQIC511Dv7BbpIj8Rp7qASk20BwYj2kK8Rujkr+SxiX9Ocp4Dj+1nCGHR?=
 =?iso-8859-1?Q?bmdx1DmrqFrxMyIZEfjvrkiSbBEyKXiZb3E84dc6HYdlicAF2MboqQIx1P?=
 =?iso-8859-1?Q?nPXtUkOZ87x/nv8pGgx6uT7AaCpmqeWTpFDzNQlb5gelE5eHLId2jrcbro?=
 =?iso-8859-1?Q?zeQxBi06VGZV7kqOA4vC5uEhH71uT0AQ7qmPEgU6gWcuch1M6a3ZtQ8JyR?=
 =?iso-8859-1?Q?EmcKCskmTrbhrBSpCQF2ZZfqC9/fNeEFhYmCUe3Jqdasmy5zRp2PP8Ft09?=
 =?iso-8859-1?Q?7RKIiYQRPF12dnpH4TUCfr+Oax8z9hMVqvYKr5h4NIRo0DLMgyTilNnJ5u?=
 =?iso-8859-1?Q?b0OuWQL4Vx5BoQRe0TOQN9mKNY6a6dhPO40aD8Arggg/00tlHq0698dM4r?=
 =?iso-8859-1?Q?FXm/BWf1jH+S1kNnzTwJFMHzD9qCOrHQcT7gf1YEu5dOxBTLvReOK9g23B?=
 =?iso-8859-1?Q?YG7hhanMaDRlcDkXvIsEyWMZQJPU/3WX5KrKyNbUIBKGWTMnnesyR/e91m?=
 =?iso-8859-1?Q?xOsgwyjVkpZjdPH9keT4bibvFwMkdaYWB6kSancv9jZL9CYxhrHPHXpHEj?=
 =?iso-8859-1?Q?MsND8zyRGG0bXQsbyobvgqeg4708pmzz7XF8HnTbnE6xls4EPcd7KtmnqC?=
 =?iso-8859-1?Q?c8wvkyaZOyPbNIpIJtrSwLaUbbyu?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?HNu/SlnkzQoXocXQyj+yMQxFyDSfs832PTizwcfqpPQgPbyhH1Ji89Igiz?=
 =?iso-8859-1?Q?gvfL6cvTkZLyAfdfQQkHV6c+gux1rpDjU2wBPOcV7UcSvQxFGvRnpxVNR8?=
 =?iso-8859-1?Q?nUTWxu43jvB64jJ8hQyxaB9MNh/SUSsYwa2UOEa/O8xc4xtn1f9oNGpmRC?=
 =?iso-8859-1?Q?OfzbithEmSPBMHfKaBhoZlxq55KKBvFHVeU4bvsAS3m9UcPqIuEitVpfET?=
 =?iso-8859-1?Q?3cRq6tfBtiO/Sjep8LABU5Aw8tTOYMnIkYsKsDwTqJDqrdkAqXjlOQm8Gs?=
 =?iso-8859-1?Q?vP68Ve7vW3WqEZUNLvo6tT5/5f2XWQRBjTgzFPtNPHtWVrUMcxlJPjSMTs?=
 =?iso-8859-1?Q?nzotaZXqX2gng5MAkh67g00Dt+4wgqVlnTZb5W6nwVx95GUaIBI6WncviX?=
 =?iso-8859-1?Q?IP9mjPSACvrlC96yiP5npcGxK5H90VR7wxudzysgA521XiHlT2+lNEWVvL?=
 =?iso-8859-1?Q?3Fvqjgbb6J4KDs8FyJP6+dxJH18LEsDPSMzdDrqvdvxvkDYfDTsPG5eSX7?=
 =?iso-8859-1?Q?UJUWfjZaW80wdiZyrN7q/07BphMODK9H+rc9kCadVGIJiQf2ccTKRbwb5D?=
 =?iso-8859-1?Q?GB6gMrQ+f2kWGd9+VPCIwFj0DjjZoYvaByd52YDPg4LnbEeAVtx6mx6ANQ?=
 =?iso-8859-1?Q?UvFUkfNZyZYZJfuMBSfxjVMfCeeimi7yaI/wTo0MXNUxnu8rhOCAYXgkWF?=
 =?iso-8859-1?Q?4XE2O2nYe+6ratPsXRKrCq7YRq1Nc4iVWy1fuyMhYAYP7P+mI57/SrFCzO?=
 =?iso-8859-1?Q?YikVNjn6PejjNeSmKuWXlSNrSOXzLE5/R+2+i5UzfrpEoLjHEmrJwYHnHS?=
 =?iso-8859-1?Q?LHNZ75fo+77K6BqpygkhoQXcQaak63ccK38hSs73l3BeU1U+E089OOfu9w?=
 =?iso-8859-1?Q?6+MQ1U3JrUX2LQV1tI79Kgsl6V60gi7d195q8KX1SLu2ShaN98XKBlU5aK?=
 =?iso-8859-1?Q?jqv5SDx5S9hezlw+KACMEKFSLqc67piFRsCnjkcz2wnKDQQp5iyYHH6jOr?=
 =?iso-8859-1?Q?z5viBKyO+xy3h8cOldLrSSNjwIbKTLJhyI7HhHl/0AaSOxaHqgxa9SgwQ7?=
 =?iso-8859-1?Q?akOGWVDW7uR5UlaGWZmlsWZex/0yO3yzT4XAlj/oijfbjUyH+VG83UytYB?=
 =?iso-8859-1?Q?8CLAEVnnc90c2TeJ77weLGPr5zNMO0e3jHHXQMbHzUI3dh4T6ZuoCSbLbq?=
 =?iso-8859-1?Q?OeZgW0Ub4Ak4s74/GT+apXVX5ftVhHvEuvFPe7BVXd0k7fSYCAKs2x87Bm?=
 =?iso-8859-1?Q?I82l+g+yIjJCKydlDHY2NawcAI/uI+nGFAo8uveTBtGa+If2b9uVkoehbk?=
 =?iso-8859-1?Q?u+9AR5LKbVTO7ZikH5W80EBF1jRqLEJyboV+oLUPsn8RTfAjKjsCLu1dlR?=
 =?iso-8859-1?Q?G0lb+96+WObv1mINKB3ebMjA/GNrey2oGjkASHyOsqRm09NdgLghUigx7U?=
 =?iso-8859-1?Q?c34k58S17KN5FWOXRBKdJZr6zJFUAmC2hgqYUd/EAru9qENJEtY5hg0YwT?=
 =?iso-8859-1?Q?ofzryADm9MOa28M8UH588f30aizn3laQPHB6BXF4CF9xrjLzBkUxJolhTH?=
 =?iso-8859-1?Q?+n7uBzLMhvn1onKwDdf5wvfEX55rx70zFKYPtE/1pnSuIgk/wFfadf2/RZ?=
 =?iso-8859-1?Q?mnqlo99fTF16b+xQJOfgEAMvwTOhs/2zdZaiEnRF7fHm+Dpit1/hdPwQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f14df5e5-b372-4f34-8d9b-08de215e4bc4
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2025 20:10:00.2924
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: pLpOg/lUrMhLeMu15ZzPZOvIbY3IRzTPHMu9ng/mbXw3jNsPgekHynekggG0xK/qe+36nbKiYzoQj2PXnqDINPrzlefjWQLqmjw2o5Lp3IU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7758

From: Grygorii Strashko <grygorii_strashko@epam.com>

Functions:
 hvm_shadow_handle_cd()
 hvm_set_uc_mode()
 domain_exit_uc_mode()
are used only by Intel VMX code, so move them to VMX code.

While here:
- minor format change in domain_exit_uc_mode()
- s/(0/1)/(false/true) for bool types
- use "struct domain *" as parameter in hvm_set_uc_mode()
- use "struct domain *d" as local var in hvm_shadow_handle_cd()

No functional changes.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
changes in v2:
- use "struct domain *" as parameter in hvm_set_uc_mode()
- use "struct domain *d" as local var in hvm_shadow_handle_cd()
- move code before vmx_handle_cd()

 xen/arch/x86/hvm/hvm.c                 | 58 ------------------------
 xen/arch/x86/hvm/vmx/vmx.c             | 61 ++++++++++++++++++++++++++
 xen/arch/x86/include/asm/hvm/support.h |  2 -
 3 files changed, 61 insertions(+), 60 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index da3cde1ff0e6..9caca93e5f56 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -2168,30 +2168,6 @@ int hvm_set_efer(uint64_t value)
     return X86EMUL_OKAY;
 }
=20
-/* Exit UC mode only if all VCPUs agree on MTRR/PAT and are not in no_fill=
. */
-static bool domain_exit_uc_mode(struct vcpu *v)
-{
-    struct domain *d =3D v->domain;
-    struct vcpu *vs;
-
-    for_each_vcpu ( d, vs )
-    {
-        if ( (vs =3D=3D v) || !vs->is_initialised )
-            continue;
-        if ( (vs->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) ||
-             mtrr_pat_not_equal(vs, v) )
-            return 0;
-    }
-
-    return 1;
-}
-
-static void hvm_set_uc_mode(struct vcpu *v, bool is_in_uc_mode)
-{
-    v->domain->arch.hvm.is_in_uc_mode =3D is_in_uc_mode;
-    shadow_blow_tables_per_domain(v->domain);
-}
-
 int hvm_mov_to_cr(unsigned int cr, unsigned int gpr)
 {
     struct vcpu *curr =3D current;
@@ -2273,40 +2249,6 @@ int hvm_mov_from_cr(unsigned int cr, unsigned int gp=
r)
     return X86EMUL_UNHANDLEABLE;
 }
=20
-void hvm_shadow_handle_cd(struct vcpu *v, unsigned long value)
-{
-    if ( value & X86_CR0_CD )
-    {
-        /* Entering no fill cache mode. */
-        spin_lock(&v->domain->arch.hvm.uc_lock);
-        v->arch.hvm.cache_mode =3D NO_FILL_CACHE_MODE;
-
-        if ( !v->domain->arch.hvm.is_in_uc_mode )
-        {
-            domain_pause_nosync(v->domain);
-
-            /* Flush physical caches. */
-            flush_all(FLUSH_CACHE_EVICT);
-            hvm_set_uc_mode(v, 1);
-
-            domain_unpause(v->domain);
-        }
-        spin_unlock(&v->domain->arch.hvm.uc_lock);
-    }
-    else if ( !(value & X86_CR0_CD) &&
-              (v->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) )
-    {
-        /* Exit from no fill cache mode. */
-        spin_lock(&v->domain->arch.hvm.uc_lock);
-        v->arch.hvm.cache_mode =3D NORMAL_CACHE_MODE;
-
-        if ( domain_exit_uc_mode(v) )
-            hvm_set_uc_mode(v, 0);
-
-        spin_unlock(&v->domain->arch.hvm.uc_lock);
-    }
-}
-
 static void hvm_update_cr(struct vcpu *v, unsigned int cr, unsigned long v=
alue)
 {
     v->arch.hvm.guest_cr[cr] =3D value;
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 6f2cc635e582..d7efd0a73add 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -44,6 +44,7 @@
 #include <asm/processor.h>
 #include <asm/prot-key.h>
 #include <asm/regs.h>
+#include <asm/shadow.h>
 #include <asm/spec_ctrl.h>
 #include <asm/stubs.h>
 #include <asm/x86_emulate.h>
@@ -1451,6 +1452,66 @@ static int cf_check vmx_get_guest_pat(struct vcpu *v=
, u64 *gpat)
     return 1;
 }
=20
+/* Exit UC mode only if all VCPUs agree on MTRR/PAT and are not in no_fill=
. */
+static bool domain_exit_uc_mode(struct vcpu *v)
+{
+    struct domain *d =3D v->domain;
+    struct vcpu *vs;
+
+    for_each_vcpu(d, vs)
+    {
+        if ( (vs =3D=3D v) || !vs->is_initialised )
+            continue;
+        if ( (vs->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) ||
+             mtrr_pat_not_equal(vs, v) )
+            return false;
+    }
+
+    return true;
+}
+
+static void hvm_set_uc_mode(struct domain *d, bool is_in_uc_mode)
+{
+    d->arch.hvm.is_in_uc_mode =3D is_in_uc_mode;
+    shadow_blow_tables_per_domain(d);
+}
+
+static void hvm_shadow_handle_cd(struct vcpu *v, unsigned long value)
+{
+    struct domain *d =3D v->domain;
+
+    if ( value & X86_CR0_CD )
+    {
+        /* Entering no fill cache mode. */
+        spin_lock(&d->arch.hvm.uc_lock);
+        v->arch.hvm.cache_mode =3D NO_FILL_CACHE_MODE;
+
+        if ( !d->arch.hvm.is_in_uc_mode )
+        {
+            domain_pause_nosync(d);
+
+            /* Flush physical caches. */
+            flush_all(FLUSH_CACHE_EVICT);
+            hvm_set_uc_mode(d, true);
+
+            domain_unpause(d);
+        }
+        spin_unlock(&d->arch.hvm.uc_lock);
+    }
+    else if ( !(value & X86_CR0_CD) &&
+              (v->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) )
+    {
+        /* Exit from no fill cache mode. */
+        spin_lock(&d->arch.hvm.uc_lock);
+        v->arch.hvm.cache_mode =3D NORMAL_CACHE_MODE;
+
+        if ( domain_exit_uc_mode(v) )
+            hvm_set_uc_mode(d, false);
+
+        spin_unlock(&d->arch.hvm.uc_lock);
+    }
+}
+
 static void cf_check vmx_handle_cd(struct vcpu *v, unsigned long value)
 {
     if ( !paging_mode_hap(v->domain) )
diff --git a/xen/arch/x86/include/asm/hvm/support.h b/xen/arch/x86/include/=
asm/hvm/support.h
index 2a7ba36af06f..9e9fa6295567 100644
--- a/xen/arch/x86/include/asm/hvm/support.h
+++ b/xen/arch/x86/include/asm/hvm/support.h
@@ -119,8 +119,6 @@ void hvm_rdtsc_intercept(struct cpu_user_regs *regs);
=20
 int __must_check hvm_handle_xsetbv(u32 index, u64 new_bv);
=20
-void hvm_shadow_handle_cd(struct vcpu *v, unsigned long value);
-
 /*
  * These functions all return X86EMUL return codes.  For hvm_set_*(), the
  * caller is responsible for injecting #GP[0] if X86EMUL_EXCEPTION is
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 20:10:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 20:10:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159344.1487716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIugp-0007XC-Tn; Tue, 11 Nov 2025 20:10:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159344.1487716; Tue, 11 Nov 2025 20:10:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIugp-0007Vz-MO; Tue, 11 Nov 2025 20:10:07 +0000
Received: by outflank-mailman (input) for mailman id 1159344;
 Tue, 11 Nov 2025 20:10: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=KiuT=5T=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vIugn-0006ga-KP
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 20:10:05 +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 690612a1-bf3a-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 21:10:03 +0100 (CET)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by AM9PR03MB7758.eurprd03.prod.outlook.com
 (2603:10a6:20b:3dc::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Tue, 11 Nov
 2025 20:10:02 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%6]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 20:10: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: 690612a1-bf3a-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wQvmiwF5qlQIJEAJzLS05w/fQIf6++lZh8KsfosEXoNDUdh1ZsgHI+Cg9Yf10SrL9Z/mnx9/0j/1Xz6rZJ+01E2cggArDdCX8eDQ5iYHatl+oI/rnSVroKVRJJubM4Qg4cWkaK/kOn7715NLRQ0dN4NonQ62Istc+PPCdW83Sv8PP9dS+p/PoBcdTg5GhyDwVra5Wbt8ym9k6cz3whNai5acerm010SB7xtFoshAPTko4mrfmp7+RPcAwi1jkcGoyVvwC3u+lD/kfzhwfraKawux2HpnZn1c6CQ5N2049mFqEtKdJYyDVeeoHQ+YgqK0sX44r+XTOzT/pjbEQm3OEg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pgVfk4FXoNNmttOjLxewhjRJ89Pbkd84LjmcffM1nvg=;
 b=juw/umd5P0NcIEXo1UtUT2+NmZYQVAQ6hp33nt403aoYYbBUwtLW2r8lLMVhStNoRjGASiX1ZQC/fXn7mitXWQP5DnAGJG80yto6EZPYdCi+rTufzoBxS1LyoGx5NbwCQzAHyR3bEq9em+fDTzFTfHF6wpcbsUigJKmEVMU9fRefWflD2WQeW8huCGiPu3wesq0xoErSSdkHVOFIhKby5Z3G4vkRSHT8axrUCBm1rakOchMyhMaGbEItXRPqvrb7mFXknsPaADx703OchxP7FQ6XNXqFf40OYXcD6jSXmZrRgca/RBkS2c19mvnGJpazXtGlhi1dCSa7U+0OUJf2TA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pgVfk4FXoNNmttOjLxewhjRJ89Pbkd84LjmcffM1nvg=;
 b=HlJvOBC0iw1iXR4Y7OcQCkiK9g4Tr+XK54lMUBUGzxoRFIEQtwc5QvLiON2onZs10iMMKlT14cnCXCwrs2k97vx/OP4HQSchXCWeQeJZrQOMtejPqmBbiBYAtxbBHZPPwzhTucNdb0yD0C1dnTTYq0y157KLfYhmZnrDSjaPTwFqBmfI8UQRjqpkRvo9SFp3II/tV5CgMu1tD6WyGw5zbYoZ1j/huHMaZhm22ms2z07W90U34LF+PQy8mMkaBBIvF/TDUr/4IbI5OXpDTXQr877PYCZMpeLc/Ign4d5cbyrf6yGjOmdt7LK4Vx3dh5pX9VmLpqE7CHGcU1oBv5OVdg==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: [RESEND PATCH v2 2/3] x86/hvm: vmx: account for SHADOW_PAGING when
 use hvm_shadow_handle_cd()
Thread-Topic: [RESEND PATCH v2 2/3] x86/hvm: vmx: account for SHADOW_PAGING
 when use hvm_shadow_handle_cd()
Thread-Index: AQHcU0cp8fef9PeSd06dFSU8qlXKnA==
Date: Tue, 11 Nov 2025 20:10:01 +0000
Message-ID: <20251111200958.3576341-3-grygorii_strashko@epam.com>
References: <20251111200958.3576341-1-grygorii_strashko@epam.com>
In-Reply-To: <20251111200958.3576341-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB3PR0302MB8919:EE_|AM9PR03MB7758:EE_
x-ms-office365-filtering-correlation-id: 9804fbff-d443-483a-80e7-08de215e4c26
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?MEStXg8xfWqdGND2k2ik0o1WWOIjULtK0pthDJMuX2GFzjw4jGhZFocjhU?=
 =?iso-8859-1?Q?kAZOZgxVl+LffY36P4PapdeyzEeib2l5KzRYqHOOkGRlCWnhQ1NggqWWLk?=
 =?iso-8859-1?Q?GOBUYf5YUCasn3qCcO57QUGEJtb1TJ8Plhjw+u5fLpsOkpdU9hr35HyM61?=
 =?iso-8859-1?Q?t+Hs4GuZwsJiFwPffoivj9TE2jujcE2XSNbDgx0N3jhjEE4Km/H+CK20GC?=
 =?iso-8859-1?Q?+Vpv90eMDEWvvsuqeHtgpXx6inGDiqJu0nXr35RGEK+Or9hDc/EkiJ7lYA?=
 =?iso-8859-1?Q?BU3DDjQJjr+hKk9DPQdiwUT4HkoVR0J3DB35YocSotZZL7e1X6pguZ2Pio?=
 =?iso-8859-1?Q?GgLcPMWbsjFk6UL5rujYfxU2nfW9MMpqd0glVTlBK9raJJSMARG2BC6T/a?=
 =?iso-8859-1?Q?0xampA89mei9S78zKKpSsXCtXNjQzv7Yx0JaR9bNDuzkliRYB6jcDDy17d?=
 =?iso-8859-1?Q?CcIribm2mEmFcJ5peUwPgfW+dmJ/TVZS+nTd31mCBbBaWoPMPI0dI6nSrm?=
 =?iso-8859-1?Q?am1beXFwKylq5iW08ZUHBp/X85vOtYkiZ3XLgNSw6tRlU6ozE2UaGM3HQ/?=
 =?iso-8859-1?Q?dNcreOAoaiShU+zfhOHNtVJYx37TfdRq+/rb8YhSp3qGdPzak+xK4KgpmG?=
 =?iso-8859-1?Q?HbFkBMZD6iAjAwt3U8PoaM86WofAnrxtA9KyAio5qaSepZeYmZLsmLZ4Q3?=
 =?iso-8859-1?Q?pRbAwxWDk7XDCLd+rgk6hzmtfjJGzoouLI2/0tGdsQ8gJhRSpnUyxA1fVx?=
 =?iso-8859-1?Q?j5GeExjFha7EiF6HmzoPiSdtH6Kski6LJLry1IlaUWC/77OFITxE13S6Qy?=
 =?iso-8859-1?Q?wlGvj03Hw1582iz4BGOCvru34bcIgUoqk+2pvmC5D8II2uyF3EOgdXR0tI?=
 =?iso-8859-1?Q?Ja7/LArz+jyI3rUugYx0aUkqpu+btJmiUA04VqPUUSoLqQ85WbC0/weBBZ?=
 =?iso-8859-1?Q?AG5MuZaQfPIQtDfAfI7sHLVmaSpFsaCig2AS61ek8gNvToNZ2SvGM+jBLO?=
 =?iso-8859-1?Q?vMRB3bFLlJlQ9fLT7OpLcwt1DSLMC0y6wzIFNZ2wMpCuZMF6i0MS9A+dMO?=
 =?iso-8859-1?Q?0skr/Mg8oLfbDqTK8s6M3CaKCsXmgpWpvrXWq4fgkY1gUSgQ6hEvZOLNEi?=
 =?iso-8859-1?Q?ZhSYGe8TasMR5dCpgqsuobw6GZHJDaMjtI2qCYCwgXNoK3TR1z+cegpDms?=
 =?iso-8859-1?Q?RL1cGPf7XdXEKu2N3uNN2nVLopJ/3hFnl3J57z3ihLwB9KinoHZYY2H8w3?=
 =?iso-8859-1?Q?UTqVrXzBcgyw+1l1eHn1/i9d0ToZwRK1LckED1NpLAKukcyEUjDk3HA36u?=
 =?iso-8859-1?Q?pC+gUlY9yvFWMcAvx0znxjOKDn7KgH5KGirPWehM4y0vldeBJX7nZlWN6S?=
 =?iso-8859-1?Q?1j5qB2wywZFBG9XEyNC/saW6Kcez3F0zWLh/6RzI/EYy3pzZIDCHX9Zf6J?=
 =?iso-8859-1?Q?XymTay0W1EJ01h3mAvWbX0F2dC7nGpQPMBYWMwKtm2+XCYQ07iSBcV4C0r?=
 =?iso-8859-1?Q?K6WhOuQApSo9ujcGgLVLlNePksgWIBDny9yTR2EttAKGF2UglSFR5NcuEM?=
 =?iso-8859-1?Q?KWu0IfPHLW4/gdZMeZAcku/UDtlh?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?xayXg3kV+7TQdoIomv1Mivng5U7GE0qcKjrlgUlItpbbsZM3q8e9L4eAJ4?=
 =?iso-8859-1?Q?EdlSoTeu5g3qSCWR2Z/MgkawvfYAl6vQCGpTZYZbbMoZHVvk9qdTY0exEh?=
 =?iso-8859-1?Q?pyibktg45SJwqXtTa9IaPXdJHxcGZNZnWXuVRISTbmwRXaMEYF3covI1Ki?=
 =?iso-8859-1?Q?MLuVhN4LcJaR1cJZRLw+IxVfjloC+mHgct8XDC7GD67pyQApIjPqEXnNCQ?=
 =?iso-8859-1?Q?LzXrnmXGUAeOeypOxREC4/8GD0KZ3gwovlf+zL6lzPLHb8/KsI7uAkzoGD?=
 =?iso-8859-1?Q?I4vS/gkUTrczhRWly0Z0WTreUOGzta49REuamkOk7pNdA1jKeb7OcSXD1v?=
 =?iso-8859-1?Q?lZZus1zPyEgrhPNO0P76txOKGQY0qmijaFE1nQgXwrgd11YdjbcUdGS6Vy?=
 =?iso-8859-1?Q?Es/68madtrVCGlkhMFmY2M2WMfSsm5qJQRUx0DdlEDxGpMQGG7lVyEDhEA?=
 =?iso-8859-1?Q?s+fuhfM+ufz9Vt25+gQRBOdOQHLDWT1S4fMTfwqYGJrOgM5KL3iwuM3dLe?=
 =?iso-8859-1?Q?A/I8zcd4DHPAW+hmYJGeRZILPGzP4pk+H/GFayQ0anoaCsxydcG3GwfqPL?=
 =?iso-8859-1?Q?ak2NxxO8sZ3d2NGtUU+7dDRhSTbVmZSbY1NMAidR1AGasnyDIPIjGOZCO2?=
 =?iso-8859-1?Q?227CAjNfJi2QSY7mHKPIwvVBIysHk0vhMGXQnHrnBMfDnIG/K4nyu2JGYh?=
 =?iso-8859-1?Q?sHrC3yukhCWHxCAZ6PWpfGud4hEKzAW9oxF4Br/Ko6WXCCPCn6fk4xPMni?=
 =?iso-8859-1?Q?lawVra0y0W6d4eJca7PChpQ1T6487oGD8fIEsFhNqsPxb5x8ZW2wONF3IX?=
 =?iso-8859-1?Q?aOaAxmTw1unW1VC7o7CeXuoFDvVBZIYbmh2VrTKc33M4rWmH3G4yjWSYKn?=
 =?iso-8859-1?Q?1qF1+QGWiLSYPwP8n0EVDcUrpEbezy5zPtumXM7F3t9KgGBU+IPHxkoqRR?=
 =?iso-8859-1?Q?sLLQZQbI4SvqJiZ2/txENF2UADG7Eo8Ee55CViqnBL+NoaOGaCHLkkU1fe?=
 =?iso-8859-1?Q?XmYXCwK+eKVkJJq3F2xW+ujg1DFSSkkgQIoJtW6/6neVLTI4UiMzU718m6?=
 =?iso-8859-1?Q?582YCnX1PSTq+D1U6hppG8VJY/s3Nx/o6MU7FnN/o1S7U8mIjPthEOS1WY?=
 =?iso-8859-1?Q?SJ/XRrIs2+Oax8wCMkGF5YHhG+QiGxDuiIILOeACzHRxIFoH/Z8iy8VQ4N?=
 =?iso-8859-1?Q?Jwagzk0yOoh87jnWaSWFSYktUdZgzr2ITIBhJWUTjdvzruBK+KHX6FjYjX?=
 =?iso-8859-1?Q?4aIZ0Hr4QKUOkgmBIDQ6pj9BxjMmpXp7qZwlWqnA0rAGMrY4wy4a8Oxx2T?=
 =?iso-8859-1?Q?CZPH7lVxumrJ8mMa6pANvsILHTNW+Oj5vTd4wbdtIbSe6Z4RqzO4G5uc21?=
 =?iso-8859-1?Q?KWX9ovQWlqg4JTDndwJxglFGGs0M4hEWrQBw3yDh4IwXnh2wr1/F4+DQ/R?=
 =?iso-8859-1?Q?Vqk2vNvOOunFhHtszRfKGnq2wXyRrgQVU82JW3tRtlEpblali1lfewNJUz?=
 =?iso-8859-1?Q?D2BgM8eebBExbVvBOFsbpVTIUv7PyS4CAgXe4VmyDgSgQeZnqjXNbKtIAT?=
 =?iso-8859-1?Q?jV/8+FQqQJnTqbHCkI79QHBWlS1xRoYUkzbDoQng+0WqGcFqNDnjH+hiDw?=
 =?iso-8859-1?Q?TlIPkRlrf1uMBbK+gP8zGtfx0atdNqQJM6Nf/jCa7o4ZGtCFw5DYqyEg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9804fbff-d443-483a-80e7-08de215e4c26
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2025 20:10:01.0607
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 6vBRJE6kz8KVVvSkVutDpRvuN5DoJDC74RkaWFG36ocPOe4ccPuT/d68bbCG/LZbBEXe/pdw9V7CJHiqCiHGskydUz5HXUvkTOXhIWA1NaU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7758

From: Grygorii Strashko <grygorii_strashko@epam.com>

The hvm_shadow_handle_cd() can be used only with SHADOW_PAGING=3Dy, so guar=
d
hvm_shadow_handle_cd() call with paging_mode_shadow() which accounts for
SHADOW_PAGING state.

bloat-o-meter
 add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-290 (-290)

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
changes in v2:
- s/!paging_mode_hap()/paging_mode_shadow()

 xen/arch/x86/hvm/vmx/vmx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index d7efd0a73add..67861bc8bccf 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -1514,7 +1514,7 @@ static void hvm_shadow_handle_cd(struct vcpu *v, unsi=
gned long value)
=20
 static void cf_check vmx_handle_cd(struct vcpu *v, unsigned long value)
 {
-    if ( !paging_mode_hap(v->domain) )
+    if ( paging_mode_shadow(v->domain) )
     {
         /*
          * For shadow, 'load IA32_PAT' VM-entry control is 0, so it cannot
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 20:10:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 20:10:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159345.1487721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIugq-0007ex-9L; Tue, 11 Nov 2025 20:10:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159345.1487721; Tue, 11 Nov 2025 20: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 1vIugq-0007dZ-3S; Tue, 11 Nov 2025 20:10:08 +0000
Received: by outflank-mailman (input) for mailman id 1159345;
 Tue, 11 Nov 2025 20:10:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KiuT=5T=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vIugo-0006ga-Kj
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 20:10:06 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6936e856-bf3a-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 21:10:04 +0100 (CET)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by AM9PR03MB7758.eurprd03.prod.outlook.com
 (2603:10a6:20b:3dc::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Tue, 11 Nov
 2025 20:10:02 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%6]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 20:10: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: 6936e856-bf3a-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=y1IQQZ1r+FmEzWH/eF1Ztj7bzpxozSBpPfDp3wnbup0FWHu26sKFrgwgbNh445EWXjYr854spdt8KoBZ+e2eTK0oQSMvw/aRXgEzcXXOanakulSuLgaf2J/lB+EpCN5yWGQ49RPViCWb1ezBmwwSjH2M5ITqWgTq1lD2ISk9W6oiA1juGxAgUpeSzoSZCGDpYl76ZksROzM2PcqzFVTw7tBVQv8IvYtrab0LCUH9oyzvU0Trx84lq7RIMnFi2x1cSZ+V1yYJPKQba/37hlErfGnRmblif2lkC+hNzdG8stYM0wR0wANTkyeXvYQ1nO6gmk4Tl+42HL/iCzTVCS9kqA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3fc8kqULrDlEecW0AMKDiqA+VYZUna5h4+g6PU7mwyI=;
 b=d8EZAOrnw0gdKd/Q9kQCGyLZW6oOKG9lq6q0gkYa2kVxjHCYfVea9fZ+zKEQ+JapO+6qmiP7hus4Uw5EHXpExz1TFgV8AVmQ+qpCkURvifsWFrrdbFKXBBm5sv9O+qamzbqVXLv0QmkmC1xjUjHmI8sSkQ79Ns0LOYkzsDBh1oAS/QMZifbBKN55Ryz0Z3PxmEZ3Cd9StdmMTxqIT+dM60PwfoVCb35KCQFDcX6/2GqwMAM9hP6EOYJ54W/SAevbe934Wlo8wMJfGp89pfkYYoekhDvcIOQHT+d3CFk4b+RTZ+/vLrn0iVZe6FvsrjrKNlteIBydbdGWWcCFDlnf6A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3fc8kqULrDlEecW0AMKDiqA+VYZUna5h4+g6PU7mwyI=;
 b=kbZjEuY77xQK4bpxt/23sGo5PuTz/s5WRtJuaOF767/RQzzTSfly0HW071CiC7buMDd2STBTkCwPVrF+FyCm/xcw7aJPUWMR5wqsKnrq7+uuJIX6wbm0qE3BG5AITOax0AofqCi1zRTbYqmG9FP65HxDusKYpD7AeG6lDKmllsAm12n4IDVhpgqgtsXm4w5xg2V/psEdgQEp5XeXt2ZNvypbQlZDpqA8muAM+erlCqSz+hRFMKvEQDyx6rzBPCr+3TRSUdf+CqokggszupVqrPeDdAkeXU17g+ZNyMr5t8YkNVgmemNtxb9+Sw1jFNbU4Smn7TmfOOlkQuzFCFEELA==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Tim Deegan
	<tim@xen.org>, Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie
	<teddy.astie@vates.tech>
Subject: [RESEND PATCH v2 3/3] x86/hvm: vmx: refactor cache disable mode data
Thread-Topic: [RESEND PATCH v2 3/3] x86/hvm: vmx: refactor cache disable mode
 data
Thread-Index: AQHcU0cpl9PlXpLMdEqFkDnu6fI4GA==
Date: Tue, 11 Nov 2025 20:10:01 +0000
Message-ID: <20251111200958.3576341-4-grygorii_strashko@epam.com>
References: <20251111200958.3576341-1-grygorii_strashko@epam.com>
In-Reply-To: <20251111200958.3576341-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB3PR0302MB8919:EE_|AM9PR03MB7758:EE_
x-ms-office365-filtering-correlation-id: e7d1592c-4371-460a-8e6a-08de215e4c5e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?/Sy/b1ofl7T4z1gQbENVqsAe7j/ZEWpojfGFqwiFbegmP04LDy8WI0uE/w?=
 =?iso-8859-1?Q?7HjYYm26eVd9ybrPHT+vpFyI1ZCjrodo7DH5nfSOLKaaJob/LgCj1FAtWA?=
 =?iso-8859-1?Q?BopxqCDD8/uTsGc/8qQtvF31cF7fuSI+fBE4cxuOgUTaqT30CXUIDkCRGv?=
 =?iso-8859-1?Q?OVV1+RbZTQYECEn4eI23GgXLO5BTESgmLXSZ/RATX5Ir37eAaPs0gk1BIv?=
 =?iso-8859-1?Q?1GofNqggKwtDVPzcrcLBqmsES79XdwZ3QopAuJsjr/l1MtVCCOewSAUB/n?=
 =?iso-8859-1?Q?f9q8vKs9aKC0v8rQgHU/rD+rxO82KZefU/pb/ouEp9vbcvbVpE7Ahc/wA4?=
 =?iso-8859-1?Q?iD+Nnzp/nkyWHG+892AcKq99NZC51heWh4CYoDTVVzDIqZnXxiBuhMyIpK?=
 =?iso-8859-1?Q?N+1t1vQxsp5wquTesiXH97L3f+MpvRGj4LTqCW6ST6kTKneP0aZYUiQZ1o?=
 =?iso-8859-1?Q?K70l0DJW6U67Cem1DI+4Tp1IThFP1brj6zhGrqVOH1wHxHQ6cApGimCwd4?=
 =?iso-8859-1?Q?G6P/xv4OEWwEj/V/RgeWunJ0ljJ4SBZyErXX55BYYLIgwjHltllUzk7YPp?=
 =?iso-8859-1?Q?IGqrQBCFWUHEy9BakMGF66pZZJzXTE+kYP/uZw7rNjAQOgb5821DNWHHoX?=
 =?iso-8859-1?Q?ga+ubkinVyRro+XLieVEBAUzF0XLJx3CjP1BC/+LMRMa7Z1Mw4p5tZdSsw?=
 =?iso-8859-1?Q?cYGk3PuEYoDT0+PkW2bAyroX9+iogd0cxdc4aqSEztD7CbIt+9CHsprg6M?=
 =?iso-8859-1?Q?pyflJZj7D4LyHcmCKooxj1uA4A4VPDNF8ME+LRLk8ClPereabzYgPxxvSL?=
 =?iso-8859-1?Q?KREGC0BUSq1iZZ2cL808aHdlChRVX3YVtMngRfnu6+ziBK5WySEFCGOY5Q?=
 =?iso-8859-1?Q?p4Lv2Soajd9/CLasj+3ycVbj0CRGs4WYwiKVknwe0IPCC4bwMHDw9vqRGw?=
 =?iso-8859-1?Q?UuUAgznMQ1rorqjjYppvKGbVJ3NwuCczZyG/XwEtQ/76wfgVjjDxgetO4O?=
 =?iso-8859-1?Q?XxspJxgbn7crfw2sfPf20lkojpUNsayyGNYOb5BtMLicvw8dnieitM6gBh?=
 =?iso-8859-1?Q?obbzuYSnQFmy6N542NhHSQmDDzduxmlEOFvtpmVDdVkQh1ddXoUkVSS3IH?=
 =?iso-8859-1?Q?YwHA+KDOxzKBj/5oO8lQTQEBxiGdxgSocqSlzDhLmwnkbQlMVnQpikFtTa?=
 =?iso-8859-1?Q?0QduhQFAaYKjcYytDPd+RZXkTrgdN6CsdP46o6OBT1Eu7AxtEG2Z+w8Yxm?=
 =?iso-8859-1?Q?7nQdmSJKnApuQ7O2BFRxzUrYvQhXnacIkWTRB8YfKySVC9u9DAMTQFEu+S?=
 =?iso-8859-1?Q?pEHbdG8d58rPkLkORCcWLa5lH0vn97kqiYYvMACKD/wnJp+J16N0pVYvUR?=
 =?iso-8859-1?Q?moLvo74dABJ+pV5acXeLSnevYMK2WcXCjWM9DdASIZnLl1nZeI5rISPVVB?=
 =?iso-8859-1?Q?DZu2kD/PyErC5ufJciAx4E34es/F5hHdbbHMBcY2LA1HsVw0gXEFzMltHA?=
 =?iso-8859-1?Q?TBOuju5MG5wyLjSPESEVbv1eSm3CHeNoVF1MO4h9HSiG/UBlz11WvSCOQq?=
 =?iso-8859-1?Q?1FIdLzBAN2mc52bmc5+5isG6yQkU?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?I/GXpMxHUqj2ABUfDs0bmVe+LpOYXNd8dYyCkxFnPxiX6QCvZSOzDXwQ/A?=
 =?iso-8859-1?Q?o29gpVgXvP/FvC44Qx2VndiT/ooLEEgKibEsbuCErsDMCAyufl/SeWvwZO?=
 =?iso-8859-1?Q?UksgvGkbTBgqMEJwJc0+YjVE/KEjrsdQN98/GZuBB/cx2pq01+J0B1HZhM?=
 =?iso-8859-1?Q?uyImrlwIskWEtoOfKKClA9AxWsRZqNyoZRNkTrobWQaPy1JYgpGUyHGRNN?=
 =?iso-8859-1?Q?QShx2k6HxXMiVQxFNNBbtjLsovt0T5tIMxmZfIPuzjBsC1i4d9NkHhygWP?=
 =?iso-8859-1?Q?/1xHtLaCU/Wo3ajNypqP2I3DgsPSvOLjCilsa1jrpQOI0/KAKw+6bGooEm?=
 =?iso-8859-1?Q?lUWZp294qsNLZFkwsH2OjoSMsxDDMHoaElTkniTvRYMLGp9cL/V8cQT18U?=
 =?iso-8859-1?Q?9adg5vZdKwBi20gswbwqPJkICtueztAe9nyniGDegETqG7Ymib8s05iNIB?=
 =?iso-8859-1?Q?eDHdzth04EUe85NkBaGsLU0FiNyPIPfQmHHB4uOxlqP6WsMa7dQo/0/qK3?=
 =?iso-8859-1?Q?Jfj37maDcmakcN8bm71TUfMT/nB5zlxOoMnsgoUb9Qi79fEM5Kipn3MfCr?=
 =?iso-8859-1?Q?Rbb4O++WMi5TQ8v+EblxQC828k17wLaa9n8FjXmawzxXonv3vYllZLJxCY?=
 =?iso-8859-1?Q?QNt3hGjDNu62fkDUptJDgTn629N83FLuouvYb/ISXjFl3fFk0YdsUlk0SS?=
 =?iso-8859-1?Q?7eorZmASvziW2Jec5CBE5dUgv570OU3h5Sxn1qFpLaaZ+9HBNIE6QNfF6m?=
 =?iso-8859-1?Q?D8E1AMpzCmmeRXgevp9Dm2Vs5DiQjjAdFRgx0K2y6RQg28hsVgnh5KJaBB?=
 =?iso-8859-1?Q?yw0DUYm0MD2TB/QDljJ/mh+CYzAR+zP3IRXVLD9NghFX1zET7k+7SYnj+j?=
 =?iso-8859-1?Q?pzzp/Y3FI8mYlUUMvJSQ74YEJJHXQf2oXDZWQyI6RZ0kpcdIucxufM4Oqv?=
 =?iso-8859-1?Q?s5J4B1j1Iepa1TfVx3e6Vdds0WzmkRi3ngJj8BtgYGzxYD5J34r+vD2Ow5?=
 =?iso-8859-1?Q?TOhdXsBN87XdxgTyiVsVNfO6JTzkpnQb16PEzROiTqmH52rUE4dmrSG4q1?=
 =?iso-8859-1?Q?StkEiwAPZAcDznBkYhc88i3wehmj48fIEMb4vk/9NcyVr/z8FoYAGlyKem?=
 =?iso-8859-1?Q?B2Pao/odNrkyBSXgYSIAmzCkY3sL0QixaeL+cBlTkY/zWmkk2uWEHa4W/+?=
 =?iso-8859-1?Q?0qXiGgKVK7hahU5+lIJ1XJGapKNzv5dvzy3mYdJc5jeszcj9F80G51P2jp?=
 =?iso-8859-1?Q?GGPTa3hal0uuXV3dFXRGwF636pIEJZ/+Pr48sVuUXffxchLgdjZhRP6FCV?=
 =?iso-8859-1?Q?8jvVaHJkVsLFr9BMqRZtuXRIlh+sKurXxHWoP9togc3ByGqG5ujcVMIbck?=
 =?iso-8859-1?Q?4h46VoYYBbP0b4f+58aUF73zAtGtV2aYSpfoXqZ4wC4Ds7dpYIAPvrQHwc?=
 =?iso-8859-1?Q?DuvT4nmzxF7oZCy7XJ/yPvLMi4gwLtqpDrEQY0QnmQRPn+jiDUybAWhgHS?=
 =?iso-8859-1?Q?na1m+QuhFiq1MjL42Vt+fJ10JAdEiZYnQrqgwPxXdpTUa3VgoOwxoMEN6o?=
 =?iso-8859-1?Q?QwCMYLMAeaQDOkEb9H69Wyrj2h7w9JTJvXKHieWgZVXCnvW6yKTS4GfFFR?=
 =?iso-8859-1?Q?STEnlDUT/mIq24zpUCPHzOCgnvgXNvuM7STX8CbQQ6ud9loAiMsXAzuA?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e7d1592c-4371-460a-8e6a-08de215e4c5e
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2025 20:10:01.6485
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ILHPTK8Dbt8OMMIfS9/ttQDw1/PsoHOzILxRo0x18BgMv1PqKxQBWA58w50yF1k5Ifqhkh1qB0J5EmF8B+RYPozlXV2NR3OSc3IWtIX537k=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7758

From: Grygorii Strashko <grygorii_strashko@epam.com>

The Cache Disable mode data is used only by VMX code, so move it from
common HVM structures into VMX specific structures:
- move "uc_lock", "is_in_uc_mode" fields from struct hvm_domain to struct
vmx_domain;
- move "cache_mode" field from struct hvm_vcpu to struct vmx_vcpu.

Hence, the "in_uc_mode" field is used directly in mm/shadow/multi.c
_sh_propagate(), introduce the hvm_is_in_uc_mode() macro to avoid direct
access to this field and account for INTEL_VMX configuration.

While here:
- rename "is_in_uc_mode" to "in_uc_mode"
- s/NORMAL_CACHE_MODE/CACHE_MODE_NORMAL
- s/NO_FILL_CACHE_MODE/CACHE_MODE_NO_FILL

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
changes in v2:
- s/is_in_uc_mode/in_uc_mode
- s/*_CACHE_MODE/CACHE_MODE_* and move them after "cache_mode"
- reorder uc_lock,in_uc_mode in struct vmx_domain
- move spin_lock_init()

 xen/arch/x86/hvm/hvm.c                  |  1 -
 xen/arch/x86/hvm/vmx/vmx.c              | 30 +++++++++++++------------
 xen/arch/x86/include/asm/hvm/domain.h   |  6 -----
 xen/arch/x86/include/asm/hvm/hvm.h      |  3 +++
 xen/arch/x86/include/asm/hvm/vcpu.h     |  3 ---
 xen/arch/x86/include/asm/hvm/vmx/vmcs.h | 13 +++++++++++
 xen/arch/x86/include/asm/mtrr.h         |  3 ---
 xen/arch/x86/mm/shadow/multi.c          |  2 +-
 8 files changed, 33 insertions(+), 28 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 9caca93e5f56..c09fb2ba6873 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -608,7 +608,6 @@ int hvm_domain_initialise(struct domain *d,
     }
=20
     spin_lock_init(&d->arch.hvm.irq_lock);
-    spin_lock_init(&d->arch.hvm.uc_lock);
     spin_lock_init(&d->arch.hvm.write_map.lock);
     rwlock_init(&d->arch.hvm.mmcfg_lock);
     INIT_LIST_HEAD(&d->arch.hvm.write_map.list);
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 67861bc8bccf..0d9a4a17c433 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -590,6 +590,8 @@ static int cf_check vmx_domain_initialise(struct domain=
 *d)
      */
     d->arch.hvm.vmx.exec_sp =3D is_hardware_domain(d) || opt_ept_exec_sp;
=20
+    spin_lock_init(&d->arch.hvm.vmx.uc_lock);
+
     if ( (rc =3D vmx_alloc_vlapic_mapping(d)) !=3D 0 )
         return rc;
=20
@@ -1431,7 +1433,7 @@ static void cf_check vmx_set_segment_register(
 static int cf_check vmx_set_guest_pat(struct vcpu *v, u64 gpat)
 {
     if ( !paging_mode_hap(v->domain) ||
-         unlikely(v->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) )
+         unlikely(v->arch.hvm.vmx.cache_mode =3D=3D CACHE_MODE_NO_FILL) )
         return 0;
=20
     vmx_vmcs_enter(v);
@@ -1443,7 +1445,7 @@ static int cf_check vmx_set_guest_pat(struct vcpu *v,=
 u64 gpat)
 static int cf_check vmx_get_guest_pat(struct vcpu *v, u64 *gpat)
 {
     if ( !paging_mode_hap(v->domain) ||
-         unlikely(v->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) )
+         unlikely(v->arch.hvm.vmx.cache_mode =3D=3D CACHE_MODE_NO_FILL) )
         return 0;
=20
     vmx_vmcs_enter(v);
@@ -1462,7 +1464,7 @@ static bool domain_exit_uc_mode(struct vcpu *v)
     {
         if ( (vs =3D=3D v) || !vs->is_initialised )
             continue;
-        if ( (vs->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) ||
+        if ( (vs->arch.hvm.vmx.cache_mode =3D=3D CACHE_MODE_NO_FILL) ||
              mtrr_pat_not_equal(vs, v) )
             return false;
     }
@@ -1472,7 +1474,7 @@ static bool domain_exit_uc_mode(struct vcpu *v)
=20
 static void hvm_set_uc_mode(struct domain *d, bool is_in_uc_mode)
 {
-    d->arch.hvm.is_in_uc_mode =3D is_in_uc_mode;
+    d->arch.hvm.vmx.in_uc_mode =3D is_in_uc_mode;
     shadow_blow_tables_per_domain(d);
 }
=20
@@ -1483,10 +1485,10 @@ static void hvm_shadow_handle_cd(struct vcpu *v, un=
signed long value)
     if ( value & X86_CR0_CD )
     {
         /* Entering no fill cache mode. */
-        spin_lock(&d->arch.hvm.uc_lock);
-        v->arch.hvm.cache_mode =3D NO_FILL_CACHE_MODE;
+        spin_lock(&d->arch.hvm.vmx.uc_lock);
+        v->arch.hvm.vmx.cache_mode =3D CACHE_MODE_NO_FILL;
=20
-        if ( !d->arch.hvm.is_in_uc_mode )
+        if ( !d->arch.hvm.vmx.in_uc_mode )
         {
             domain_pause_nosync(d);
=20
@@ -1496,19 +1498,19 @@ static void hvm_shadow_handle_cd(struct vcpu *v, un=
signed long value)
=20
             domain_unpause(d);
         }
-        spin_unlock(&d->arch.hvm.uc_lock);
+        spin_unlock(&d->arch.hvm.vmx.uc_lock);
     }
     else if ( !(value & X86_CR0_CD) &&
-              (v->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) )
+              (v->arch.hvm.vmx.cache_mode =3D=3D CACHE_MODE_NO_FILL) )
     {
         /* Exit from no fill cache mode. */
-        spin_lock(&d->arch.hvm.uc_lock);
-        v->arch.hvm.cache_mode =3D NORMAL_CACHE_MODE;
+        spin_lock(&d->arch.hvm.vmx.uc_lock);
+        v->arch.hvm.vmx.cache_mode =3D CACHE_MODE_NORMAL;
=20
         if ( domain_exit_uc_mode(v) )
             hvm_set_uc_mode(d, false);
=20
-        spin_unlock(&d->arch.hvm.uc_lock);
+        spin_unlock(&d->arch.hvm.vmx.uc_lock);
     }
 }
=20
@@ -1549,11 +1551,11 @@ static void cf_check vmx_handle_cd(struct vcpu *v, =
unsigned long value)
=20
             wbinvd();               /* flush possibly polluted cache */
             hvm_asid_flush_vcpu(v); /* invalidate memory type cached in TL=
B */
-            v->arch.hvm.cache_mode =3D NO_FILL_CACHE_MODE;
+            v->arch.hvm.vmx.cache_mode =3D CACHE_MODE_NO_FILL;
         }
         else
         {
-            v->arch.hvm.cache_mode =3D NORMAL_CACHE_MODE;
+            v->arch.hvm.vmx.cache_mode =3D CACHE_MODE_NORMAL;
             vmx_set_guest_pat(v, *pat);
             if ( !is_iommu_enabled(v->domain) || iommu_snoop )
                 vmx_clear_msr_intercept(v, MSR_IA32_CR_PAT, VMX_MSR_RW);
diff --git a/xen/arch/x86/include/asm/hvm/domain.h b/xen/arch/x86/include/a=
sm/hvm/domain.h
index 95d9336a28f0..83be2bd1c29c 100644
--- a/xen/arch/x86/include/asm/hvm/domain.h
+++ b/xen/arch/x86/include/asm/hvm/domain.h
@@ -97,12 +97,6 @@ struct hvm_domain {
     /* VRAM dirty support.  Protect with the domain paging lock. */
     struct sh_dirty_vram *dirty_vram;
=20
-    /* 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
-     */
-    spinlock_t             uc_lock;
-    bool                   is_in_uc_mode;
-
     bool                   is_s3_suspended;
=20
     /* Compatibility setting for a bug in x2APIC LDR */
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/=
hvm/hvm.h
index 20b373cea6fb..728b9624522f 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -394,6 +394,9 @@ static inline bool using_svm(void)
     return IS_ENABLED(CONFIG_AMD_SVM) && cpu_has_svm;
 }
=20
+#define hvm_is_in_uc_mode(d) \
+    (using_vmx() && (d)->arch.hvm.vmx.in_uc_mode)
+
 #ifdef CONFIG_HVM
=20
 #define hvm_get_guest_tsc(v) hvm_get_guest_tsc_fixed(v, 0)
diff --git a/xen/arch/x86/include/asm/hvm/vcpu.h b/xen/arch/x86/include/asm=
/hvm/vcpu.h
index 9ed9eaff3bc5..eae9ac53767b 100644
--- a/xen/arch/x86/include/asm/hvm/vcpu.h
+++ b/xen/arch/x86/include/asm/hvm/vcpu.h
@@ -168,9 +168,6 @@ struct hvm_vcpu {
=20
     u8                  evtchn_upcall_vector;
=20
-    /* Which cache mode is this VCPU in (CR0:CD/NW)? */
-    u8                  cache_mode;
-
     struct hvm_vcpu_io  hvm_io;
=20
     /* Pending hw/sw interrupt (.vector =3D -1 means nothing pending). */
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h b/xen/arch/x86/include=
/asm/hvm/vmx/vmcs.h
index 53aa9e3556d3..d28a2682e9df 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
@@ -46,6 +46,7 @@ struct ept_data {
=20
 #define _VMX_DOMAIN_PML_ENABLED    0
 #define VMX_DOMAIN_PML_ENABLED     (1ul << _VMX_DOMAIN_PML_ENABLED)
+
 struct vmx_domain {
     mfn_t apic_access_mfn;
     /* VMX_DOMAIN_* */
@@ -56,6 +57,13 @@ struct vmx_domain {
      * around CVE-2018-12207 as appropriate.
      */
     bool exec_sp;
+    /*
+     * If one of vcpus of this domain is in no_fill_mode or
+     * mtrr/pat between vcpus is not the same, set in_uc_mode.
+     * Protected by uc_lock.
+     */
+    bool in_uc_mode;
+    spinlock_t uc_lock;
 };
=20
 /*
@@ -158,6 +166,11 @@ struct vmx_vcpu {
=20
     uint8_t              lbr_flags;
=20
+    /* Which cache mode is this VCPU in (CR0:CD/NW)? */
+    uint8_t              cache_mode;
+#define CACHE_MODE_NORMAL  0
+#define CACHE_MODE_NO_FILL 2
+
     /* Bitmask of segments that we can't safely use in virtual 8086 mode *=
/
     uint16_t             vm86_segment_mask;
     /* Shadow CS, SS, DS, ES, FS, GS, TR while in virtual 8086 mode */
diff --git a/xen/arch/x86/include/asm/mtrr.h b/xen/arch/x86/include/asm/mtr=
r.h
index 25d442659df2..3a5b4f5b6eec 100644
--- a/xen/arch/x86/include/asm/mtrr.h
+++ b/xen/arch/x86/include/asm/mtrr.h
@@ -7,9 +7,6 @@
 #define MEMORY_NUM_TYPES     MTRR_NUM_TYPES
 #define NO_HARDCODE_MEM_TYPE MTRR_NUM_TYPES
=20
-#define NORMAL_CACHE_MODE          0
-#define NO_FILL_CACHE_MODE         2
-
 #define INVALID_MEM_TYPE X86_NUM_MT
=20
 /* In the Intel processor's MTRR interface, the MTRR type is always held i=
n
diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.=
c
index 7be9c180ec43..03be61e225c0 100644
--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -559,7 +559,7 @@ _sh_propagate(struct vcpu *v,
         if ( !mmio_mfn &&
              (type =3D hvm_get_mem_pinned_cacheattr(d, target_gfn, 0)) >=
=3D 0 )
             sflags |=3D pat_type_2_pte_flags(type);
-        else if ( d->arch.hvm.is_in_uc_mode )
+        else if ( hvm_is_in_uc_mode(d) )
             sflags |=3D pat_type_2_pte_flags(X86_MT_UC);
         else
             if ( iomem_access_permitted(d, mfn_x(target_mfn), mfn_x(target=
_mfn)) )
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 20:16:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 20:16:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159409.1487741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIun4-0001cG-7d; Tue, 11 Nov 2025 20:16:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159409.1487741; Tue, 11 Nov 2025 20:16: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 1vIun4-0001c9-36; Tue, 11 Nov 2025 20:16:34 +0000
Received: by outflank-mailman (input) for mailman id 1159409;
 Tue, 11 Nov 2025 20:16: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=KiuT=5T=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vIun3-0001c3-1I
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 20:16:33 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5030467b-bf3b-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 21:16:32 +0100 (CET)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by AS2PR03MB10060.eurprd03.prod.outlook.com
 (2603:10a6:20b:64f::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Tue, 11 Nov
 2025 20:16:28 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%6]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 20:16:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5030467b-bf3b-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zWEhgwYcZAKLbAiIgOtlrPftY9mCVsW8d/ToZzWuX5SUzjuX4/vitOYD2s2ey4XhyCzts63oKsxU7JyGIIc8l6zr78dovseY/Qi/RZfOgn46bB/at7vTDunSDOwLUUttayJD6jJFT7ndc8MbnRa+fN7cg/E89FZvdo4xCjlma2zreeXfmjnthQCa/QS1qejbGg/gY82ly/OqbdXy2w4fbSdEc/iNzzRkH1dJuhdnGlkU5cZs40IbliRDPH/Kol7QeTteA4uzcJ6ZUt5Yv3B2yLIkwW9KpJiAtvp8pMlRADjnNKoWjS5EjIS/prGSVGbSjsFuSkIwhXVvlUa0CXnOoA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lm02RrJ+Zmog2LO5aBkDGYRaTMo3FfGlxm9+jCriFPg=;
 b=XUqlk62JGmvgKFWa4IEkg2UZwq8CkdQHrHUWMfWvMX6sqlEuRMttppLcgQe/THbs6bgxyPzGtJiZTwpUGIT/fXwbMKgPmQZF2NBu50MFF5Ku8oulcmgROxZ334L+JFHGqzAdJkXObwHNm9g7gedhlNMCbpgZneM4uaxeAOzQtvyjBns6h3pzvT0K7S1XrkLyptwdLoPLXxtma5/DRC/YokbicqeRBheJ6HFL/iAuWosXIcm49OCALvD6AsIEKkkLXUTTWbh/pZrJjH8Nuv4+oAKQ1qGv/iFu2k5V/ylyL+AnAZrAtr3CAMt3d4kvWs5Sz3KYmlkFC90H7d+hHsWpOw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lm02RrJ+Zmog2LO5aBkDGYRaTMo3FfGlxm9+jCriFPg=;
 b=HDrFeZqaNtgDTta1B+C1nEIf8lh1Zb4yeGAfU15PCHWxD2rtkWR5iyOZdcX1SWNz2IAdmBEqKpegZBgzVGgCfLRfbtipRWxFeM1+/pHF4U/uvYpIZ9jnO6MA0S7ke03l8awdndq/W7nOxt4bUVPF3FgQReL2a6wA/2ltddxCpvxfiWtaYNrrqtJ5lWXBE4IGwQiutA6HWQL5VswjXcIRTarDxJyXzApOEi0LTy1/SzetTpr2aw7qV1kDTlUHZZr+rqZOhJQ7NZopaLQsOXvN5qdTyWjlaY1+698sYbAa5v+AS+wiOUcrvsyoXDIukWzUpguAGIjMDniiHAau60jwEA==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN][PATCH] xen/domctl: add XEN_DOMCTL_CDF_ALL mask
Thread-Topic: [XEN][PATCH] xen/domctl: add XEN_DOMCTL_CDF_ALL mask
Thread-Index: AQHcU0gPJuvEPEXhnkuhV+1ykI6wJw==
Date: Tue, 11 Nov 2025 20:16:27 +0000
Message-ID: <20251111201627.3579504-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DB3PR0302MB8919:EE_|AS2PR03MB10060:EE_
x-ms-office365-filtering-correlation-id: a8678701-6705-45cd-2d89-08de215f3233
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?3b0qhO/WWfkpYCyn47selaNBygn6OcLK+lGATzHaIv1UDDvqNvyo4Vxohn?=
 =?iso-8859-1?Q?0rPs3oUvKjQNC5Nf4EyoCX+MRvzMGdyE5GXNz9eImnOjghXXuNJtXXz+9L?=
 =?iso-8859-1?Q?J3Tr4RKLjI6P/vlvvaT+S6ZE/GJA7liFiPLjKzB5JtTLxGf3H9F64ClOtO?=
 =?iso-8859-1?Q?ITBkAfxfZLt5B+fmoNqCbgCzYB2mWDb0z+24yPlkOli2TtE09MaSuqEwqo?=
 =?iso-8859-1?Q?UPsn4N+0u0SZLQva+uExeQpf9g9nM3yRFrqAaEcKBZCaERu2FmKj6kvhN/?=
 =?iso-8859-1?Q?y7Id4qlDm4XBB9Eu/PNsyJJt+O06XBu3IM5HskWD63rQbIkBSQv0y04F8e?=
 =?iso-8859-1?Q?s1YMea2m9jhlk8qaNeRvkTVNhp6vF3q4jRWOeQ+GX9K/LJFqtZLQLNiTHm?=
 =?iso-8859-1?Q?F4lZ539cI9P6Q+tGsWtT/qwW476A3LKDIEwn0W8utZ5VMVaCtFv/yQ8eeJ?=
 =?iso-8859-1?Q?JOAB0PkI45b5x6iCr9oRWDbkfjz0E0QfLqFVRrOmX5XZEL5yqdr9KrUetP?=
 =?iso-8859-1?Q?+3UCWq/V6IsNvWS8pYoEXmlvmLX5eU1FS40O3T2LETzt7H8XgcEbjj5vKO?=
 =?iso-8859-1?Q?FX+xLHvGKc3cIwKX8iw0N8HZ+bc5aQKR1F1BniKa7JqggJ2XTOf61imo+e?=
 =?iso-8859-1?Q?SWQ0vWW88at38n7Sji4smabSV9ACALEWP9/gs18PuZCynJsKjiQQoLrR65?=
 =?iso-8859-1?Q?1Et/SB/gCiGyhqJhyqm9qi5vhKHoHjiUV9D35RsA0e8uYDacK1nw1jPznW?=
 =?iso-8859-1?Q?KwSq5jcoovPADySSztuZYJy25+LZt4q1ukFJ5I6hFfIT2tJHCvlIKoVGKa?=
 =?iso-8859-1?Q?Xa/2Nep2zMhoPiTNyDZsh1AM2sM79zl/C8XcP4lw4OangfIjd7JXIniB+H?=
 =?iso-8859-1?Q?tH/cf3nLwcy4DweldF4Whhkd/uX2atTAhHCS8meGXYpWxSdLTk7aIakE4X?=
 =?iso-8859-1?Q?bOG3BuZwbuHKcsGIauYaRxb4ZXh1W/N0rJxu64h+gzaGLXwfgy9y/PtKit?=
 =?iso-8859-1?Q?CWKwDuRD3Jaa7DLpVr5nyALHTrkq7KYt3+0gUVSxT+fFSlGsrrSsjxTbvb?=
 =?iso-8859-1?Q?1YpOQqCpZ9HJCj2XeOomd8oQsNg7BzuoquV3QI6mv4RVnUISTXZYlj9day?=
 =?iso-8859-1?Q?NkE8e64mIySd9K7GiqKZCfhRq4pRyjhPdqig9srrdUrD4lRzt4HlIvyB48?=
 =?iso-8859-1?Q?RUIDpR+JxQ6vljh32/UvXqZpS1lHC77S2cFZ2f8/oLtqxH8BHJc9h87bi1?=
 =?iso-8859-1?Q?xTrync/ShGqlfubIKqW8hCIl/riSbM+Rsin+bmZoJO92Qc7qjhSnPYEkuK?=
 =?iso-8859-1?Q?md1F+fRI7iQJWPeLxd3p3fUTlNP1P7sgezfeUBXq4Y5K6hp588igP5RTel?=
 =?iso-8859-1?Q?AqBGgwK2Tyflb7uwmsxtaqEKb57p48AUev3VfZyn/jGprwwZNjMr9mPDMr?=
 =?iso-8859-1?Q?sdchwCDo4YUYmgv986y6GlJi49JRJlP4t7JVxLXx4gkFT6m5iiOsKVa5jM?=
 =?iso-8859-1?Q?DNPC7r1jDxBOUaEDn7orKdMxEZ139KBldwRdp51fcXCo6fq4igeq9sme+F?=
 =?iso-8859-1?Q?wV1E/1WiWb6EAYV7HvS7da6t2mGl?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(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?fHj2GWghF/EiuVDSXB8ROVq6uIpHk0EiXkSBSmtXNPoew/N8EFFedy6NjS?=
 =?iso-8859-1?Q?qsegFE5MPHRD3rXhoE2ZSY9SJMiOnmGLJ5sKi3LGdMf8I+nNm17jkF/5Ug?=
 =?iso-8859-1?Q?kYJOBcZ92NBwJu4HwCq4yPQ10cPpO7Mej7qM1vEyXJSNbDmJvV6h2NXzvi?=
 =?iso-8859-1?Q?U5VWY12UoMObwhVJd8VAw63RFQ2JfWl+v4Db+upoJnORppwJ5aXSWwB+ls?=
 =?iso-8859-1?Q?ZZhiCx+WeDd4RUmDPjJQOVSwLVqXfzF4vbI5bE2A6P9L6KiyEmCT2b2z4a?=
 =?iso-8859-1?Q?5SJWcw0CcmTl3db6whYW950Ow/MDbnl8EQ53eBIdr5TMzY0cFXs51N+qxG?=
 =?iso-8859-1?Q?pisMQpTou3XDABjF5il6Mfwqlai3BJt1vbDW5BXzhsDV8dJMWuHw3yiUTZ?=
 =?iso-8859-1?Q?Dw9K2jYLaeLnWaOE0HO/ohOiLYEBFA2AKWY1M+ljLj0KTs0WaBcOfmoM4S?=
 =?iso-8859-1?Q?TRfJYqj9poTnn2FsxjQzl3g9ska9pvEjmgNdipe9nysC+BCAU+GRjo6gXY?=
 =?iso-8859-1?Q?LfYKw+zpLFKjp0knSADVacVfPm+o1zfLpGAtqqV6BYWtP19kjwXCTURyJr?=
 =?iso-8859-1?Q?rplvY9Y3vPcWkmzzRMjcvCbfl7sgLdKjcEiPy4tkO4wGsd0JkJzwf0706g?=
 =?iso-8859-1?Q?pBKhR/Ww+OVX1nZZHB0oBOI6Q8FcrKR1zQHuUqvC2JPj06N08bOF2E2vyF?=
 =?iso-8859-1?Q?X5I7xnuEhQk5QqUCu3XuSPTa14AOXLkGOTo0SbhuzD1De9iYk3dxOdZg7z?=
 =?iso-8859-1?Q?ez8681HXzOmWLgm1BHt/fdGLoFjrYIaBsz8X/XEBsazkaEQopTtYCwaWWF?=
 =?iso-8859-1?Q?dSUJ/mrIc7hfVQbJ3r4AJMwa1lU6vcIRx5EuO+6x+SpICvfrKJ+02ueE39?=
 =?iso-8859-1?Q?sSMub/YoWdIG4z2sWuSSZoPKrUTgbFviXTtkMJbsc0FoIWxWwFOj54MTUL?=
 =?iso-8859-1?Q?s3ghJ22bRgcbdtbCn1OZtcTNdsxIJa8LueEIAbuDjNM+FdJVUi4hPzq0AR?=
 =?iso-8859-1?Q?1DsIYZLZHZ01H1KxO1GZwCbmHTjUExUFl8DwCHXENanyCnVbFBJV3zktQf?=
 =?iso-8859-1?Q?c4F84wAWFLuHw01oHBEHyV/00pD2czoqkJPBBbeDps6pdsZeJ+rWSHt6jp?=
 =?iso-8859-1?Q?XRX1uqTNhJ0brAS1Yq2hyqNj8L4uUzYnQSJMecI/wZojQp+xKbvpLzx8Te?=
 =?iso-8859-1?Q?cz/HyocBkeJv4u8JccUuYl834VuyJBdwZd+3jqRuIWJBfcKIl/ieu4pWqN?=
 =?iso-8859-1?Q?tM6tHnoGgKkQ7DRhIp0fII7F8I8haT9MW1hGgfcL6x0TrLN0CbSL7yKF3a?=
 =?iso-8859-1?Q?lcq6QemhH/Gf+SbNTYUB8cth8xdv3t/H/uHzZ36Ne/vGk8jzfY0S1lLGHB?=
 =?iso-8859-1?Q?zaiF2KUJFHDP3tKrhXE5LFn3RYr3n5ytiz7MYozxCEvtGKi0t81fzhAfd1?=
 =?iso-8859-1?Q?kwTtn2VGPwWqsR+xs0lnJP3PucV0khu95RwKPSP/HXW7CACA1IiLxoUPGG?=
 =?iso-8859-1?Q?b8YWrFqDrjnQN0Y66nofc2V6uc3/afslD4MxKiGiPqKXKXmvXpg+HEUR0U?=
 =?iso-8859-1?Q?1fS90aOLISYeWEU9lrvaY8ZBiiP+pp22R+6nJnZVpZZ1Rza2NBxjuscOHo?=
 =?iso-8859-1?Q?w4d1vHbXmzlJhnDVTdxU+wK987di3mRlC27a46vx5gK/3SwBgyzcnjJQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a8678701-6705-45cd-2d89-08de215f3233
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2025 20:16:28.0150
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: lWlqYpjIBQkdO8QuW7MzYp/LUuX1X5KABPwgb5O9WTJpA2BCMy3GwRmvVXXXH4KGzM1a7TS0OF5xisqOV70gzFKvqUkz6iZks4wRd+ZL7gs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB10060

From: Grygorii Strashko <grygorii_strashko@epam.com>

Every XEN_DOMCTL_CDF_x flag:
- is defined in public/domctl.h
- explicitly listed in sanitise_domain_config() (common/domain.c) to form
mask containing all supported DOMCTL_CDF flags for "Unknown CDF flags"
check.

So, it is required to modify two files every time XEN_DOMCTL_CDF_x flags
set is modified.

Simplify the things by introducing XEN_DOMCTL_CDF_ALL mask, so
sanitise_domain_config() no need to be modified any more.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
 xen/common/domain.c         | 7 +------
 xen/include/public/domctl.h | 7 +++++++
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 775c33928585..4f91316ad93e 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -730,12 +730,7 @@ static int sanitise_domain_config(struct xen_domctl_cr=
eatedomain *config)
     bool iommu =3D config->flags & XEN_DOMCTL_CDF_iommu;
     bool vpmu =3D config->flags & XEN_DOMCTL_CDF_vpmu;
=20
-    if ( config->flags &
-         ~(XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap |
-           XEN_DOMCTL_CDF_s3_integrity | XEN_DOMCTL_CDF_oos_off |
-           XEN_DOMCTL_CDF_xs_domain | XEN_DOMCTL_CDF_iommu |
-           XEN_DOMCTL_CDF_nested_virt | XEN_DOMCTL_CDF_vpmu |
-           XEN_DOMCTL_CDF_trap_unmapped_accesses) )
+    if ( config->flags & ~XEN_DOMCTL_CDF_ALL )
     {
         dprintk(XENLOG_INFO, "Unknown CDF flags %#x\n", config->flags);
         return -EINVAL;
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 8f6708c0a7cd..94a8e3042cbf 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -72,6 +72,13 @@ struct xen_domctl_createdomain {
 /* Max XEN_DOMCTL_CDF_* constant.  Used for ABI checking. */
 #define XEN_DOMCTL_CDF_MAX XEN_DOMCTL_CDF_trap_unmapped_accesses
=20
+#define XEN_DOMCTL_CDF_ALL                                                =
     \
+        (XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap |                        =
     \
+         XEN_DOMCTL_CDF_s3_integrity | XEN_DOMCTL_CDF_oos_off |           =
     \
+         XEN_DOMCTL_CDF_xs_domain | XEN_DOMCTL_CDF_iommu |                =
     \
+         XEN_DOMCTL_CDF_nested_virt | XEN_DOMCTL_CDF_vpmu |               =
     \
+         XEN_DOMCTL_CDF_trap_unmapped_accesses)
+
     uint32_t flags;
=20
 #define _XEN_DOMCTL_IOMMU_no_sharept  0
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Nov 11 22:06:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 11 Nov 2025 22:06:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159421.1487749 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIwUs-0007Et-OD; Tue, 11 Nov 2025 22:05:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159421.1487749; Tue, 11 Nov 2025 22:05:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIwUs-0007Em-LV; Tue, 11 Nov 2025 22:05:54 +0000
Received: by outflank-mailman (input) for mailman id 1159421;
 Tue, 11 Nov 2025 22:05: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=hiK2=5T=epam.com=Oleksandr_Tyshchenko@srs-se1.protection.inumbo.net>)
 id 1vIwUr-0007Eg-1q
 for xen-devel@lists.xenproject.org; Tue, 11 Nov 2025 22:05: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 95d7c938-bf4a-11f0-9d18-b5c5bf9af7f9;
 Tue, 11 Nov 2025 23:05:51 +0100 (CET)
Received: from VI1PR03MB3583.eurprd03.prod.outlook.com (2603:10a6:803:2b::12)
 by AS8PR03MB7832.eurprd03.prod.outlook.com (2603:10a6:20b:400::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Tue, 11 Nov
 2025 22:05:48 +0000
Received: from VI1PR03MB3583.eurprd03.prod.outlook.com
 ([fe80::2bc:5a50:f3a5:29b8]) by VI1PR03MB3583.eurprd03.prod.outlook.com
 ([fe80::2bc:5a50:f3a5:29b8%4]) with mapi id 15.20.9298.015; Tue, 11 Nov 2025
 22:05: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: 95d7c938-bf4a-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WOBsIUnQ3ntrypGI5K8ttSoLtYCd/MlqTBHR5m1WncV6Pyd+5eIjC7BVazXZjkoqf/lttjwWGhHfv2LJG/nWVT7BZqOWx6n2cAxdgOIiCUP3MpWw2QYQK+kftTsrWLyBMCFYt7hbWiDIOVWC+d9tYXRM/PCVXUHmK9+BTRlitoFHdNxmiv/i5S2VsZokJNMzcNgz4UPINZUphevCE8W6kvvtR/KxP05CS+BNH/dcAKgul+wrmoTJ/OlvChhtd9j8obUdGlMiEt1yg2i8upd+YPR3eM5RqEJNERCuioYsRW91DHSpyuDh6vSz0uEIUVJ5ugOrSWL8pBPQRDaZvwSg0g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=latH6tYcpoTTr0oBLr56i5bL242qq6FJCNkhqLqSt0Q=;
 b=cJ1W50gbTkxQggEM5VGfjdi0MU4OZcExfq/6dikZlA41pEa0g9oHkyU//kIDz94G2kTXXsXD5u2TaVSJWr667MoQl1pn14gjmShBK1FgD7w1VBHnK25WIwwN8gPpclTa7O7rajX3mn+Cbs7sEWTVVgXXcnmoktiMDvszzYAWN/PTHA9pKjBkkC5wQrs3HvSunLI5l4zkcmm6/Cvf7m3V3qu58JPchHQ6UxFWNeNtxBGdZKnd2MGPjGcnJeI8UeSN2qY/79BLjFDlOGKaV2tgS8mbLzot3jmOGnLbyBMyMcjM+VA47tx1nYvVcjXpfTjO+0ec2po7zptmBd3lYniTRQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=latH6tYcpoTTr0oBLr56i5bL242qq6FJCNkhqLqSt0Q=;
 b=ZCmVEl67kKYK76pMZFnFjmxG2ptBzbTKwTpwmEu0H16+tvf5u75M1yQMXzcPJX1kqQ/yKciqFuzSWrChoFseI4Lo8gcNeG6xBGgRcPKb28dqPXGqyAGKAj++LKdkLhbwxQfUsdrGH66kLpfsoj1ydhDaJM4kLuSTUj6OmXrH8BJszm4uKeT18PgVqCvyOA8fAojKVD/lzbSqTte2azNIZQbIUwYmtvjl8R/Tp9wCsw0mwCa5tKPGwseUJy6lbrHLXmbt+EjriWdAwed9DGnxhCm7+zTgvLvdYcUdaxXvelkJw+AFXzaTOsDsA9pOfR+26UcF96LN6aK79br7mqXY/g==
From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Michal Orzel <michal.orzel@amd.com>, Ayan Kumar Halder <ayankuma@amd.com>,
	Stefano Stabellini <stefano.stabellini@amd.com>
Subject: [ImageBuilder][PATCH] Add DOMU_TRAP_UNMAP parameter to control
 unmapped access behavior
Thread-Topic: [ImageBuilder][PATCH] Add DOMU_TRAP_UNMAP parameter to control
 unmapped access behavior
Thread-Index: AQHcU1dVYvgILOSeA0Gujbru3cwUKQ==
Date: Tue, 11 Nov 2025 22:05:47 +0000
Message-ID: <20251111220541.2531935-1-oleksandr_tyshchenko@epam.com>
Accept-Language: en-US, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: VI1PR03MB3583:EE_|AS8PR03MB7832:EE_
x-ms-office365-filtering-correlation-id: 6c174c6c-f63a-400c-ed5a-08de216e7868
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|42112799006|1800799024|376014|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?hOVj+Sc2Uqqcd9bWzAUzS3BWQ4aAP7GeJ8iTLWNUTouKlQwigmUtrmRRdG?=
 =?iso-8859-1?Q?09l9n42RNdtO/JRjOfHG0h2V2sW/isDySVJ6KAN/UVmapQDOWQ+jQTMNdK?=
 =?iso-8859-1?Q?5EPkXh0sPeP5AN8x9DMAuw/3Y9jZPMznr4u07VTpsmi+gmId2k8wNCs9z4?=
 =?iso-8859-1?Q?hQw2nWucRaNFkiHuKN3+5VJqw1+OcR4o10JucjbuD1OL7OxGvoDBcbLj8C?=
 =?iso-8859-1?Q?GFSCM97wCf9gi9URGjQRASQapbglSiUrDDa2UEi1EL0TThdY8XxN4l0Avr?=
 =?iso-8859-1?Q?v+sgjmQfUcKHnPPaEqhZeBskaJQgYPIpQNOdess1m/fg/NBFJccABsiZt9?=
 =?iso-8859-1?Q?FD3k0hXrAfYTOwEsDRMjvaAy2IN2rnGeoco3yzDU4MODAw3qv2davWqhlz?=
 =?iso-8859-1?Q?MmfnTeS7tb4wDv+sTdYCPjVXepftUVypLVCU6f0gDhBjxnJs1Mv9xsgb1t?=
 =?iso-8859-1?Q?nNTfiIcl5qaQHZwIbG3oQsgeOr99GKwpVq9Ov3+jpAXfRza2Id1/mmLlk6?=
 =?iso-8859-1?Q?xQO3TDQxmJmj+3crdH4hh0LkRw5gUOJl+98kA0MkuiMlfKK6pthZUCe3lR?=
 =?iso-8859-1?Q?tZ6mYqEYH/kdjA+Ws6URg0UZFa9pDUBCy0FEdYV5IwtDmlW7LPvoDIk2tn?=
 =?iso-8859-1?Q?wf/IzmZojRLhIBX+qX/gYbsA83toWgPCKwJs8ovjfeJ3gjAKGEsXbBsRDP?=
 =?iso-8859-1?Q?ty8BClIeJF9PepF8Ul1A52ZjSlPrpohPk++X/VqSpdEFVpp+RH8WmwzPiv?=
 =?iso-8859-1?Q?o3xUpCtfCGUM8BiTAcMrC/jJm1mByc/v/GgDW8sGssGAmaJTxkx6kvNhsb?=
 =?iso-8859-1?Q?vBpTyCk7POfLqS3cezpy1w4ceWP2HghPDKev2K8+iO2TYX6bm22OZPhq5E?=
 =?iso-8859-1?Q?MCvzRjyf1eso4zaOASBss9/ozVsX7Uf1AH34uYa94Q+UQ5jy2nWNbauK62?=
 =?iso-8859-1?Q?gUo7xvBXt7DaR95Lrsgl3mzYhaZig1igHGvDbFp0YQK55VFxrq/fsrZR4S?=
 =?iso-8859-1?Q?qhcel80bPbZqYS68CWS1J+1vcvXEVtJh6SE2LVRslI5rPKii8oRYofEZ02?=
 =?iso-8859-1?Q?0HZLW9aFYz7YNdRHoYlqKpGx4pFeJoCEosStLPOIBHKOXt5EnxfOM0CK5v?=
 =?iso-8859-1?Q?B7eClAQSWxwY+BCRhhzv87Tn4hWMGjZwg57gdL277ciUPFmhDvPxEi/5aK?=
 =?iso-8859-1?Q?1GtFmY8NT0LtkRgMFdUDD34PM8Pom1p0PUgMs9uXspr93obARbdIpqmfVx?=
 =?iso-8859-1?Q?UMTOl4UZ+JyZXSamaCdENopX3qC2/wPtC1bcc/ZHV3XHYTU0VUp+kVfKD6?=
 =?iso-8859-1?Q?c1EHCkjp+3UUxr3zeBdZkjagaKxkTlVO+tsd97nDk7WmnprOmvGGqrK+nd?=
 =?iso-8859-1?Q?Eom4yhKmIwYUSiqZAEB3n9qyuWpA4w+hZyfDiJ/ywG+fBPdCVk4Y1B6z/y?=
 =?iso-8859-1?Q?OV160zGbo3GcGxzVSSRB5ML4G8ZIhSQpoH7h5HHhfywYr0V1IHPqUXfBfj?=
 =?iso-8859-1?Q?cmLugnEYKQdjJdUlXWhi7+PDoHTablVlvyVXj2TknGy+2Z9IgynjGgiFfI?=
 =?iso-8859-1?Q?xEiiNWdx5TEKEsJdfj5Rx6XLLFLH?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB3583.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(42112799006)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?OFU04pJ7NJjtQBNdJz/hmK03xWihXB7Wlf19Q2PuA6UawNN77RTGpDfDFe?=
 =?iso-8859-1?Q?LCx5YEtiU0hx8emgGPscLFfix7Sbji3l5OXpwDds0VbWLYNnjQGPRC45Xg?=
 =?iso-8859-1?Q?4ElkNgigSjZeRVohLvXMUFeU+fwiCUuE/ltKXT2L2f9L7/0V4MG4rMHiel?=
 =?iso-8859-1?Q?nnQkUZ/jGl9i1gBnvJAU8gC98pv7rENWnPdwIlITznJv/BvNJqWsWAqrKS?=
 =?iso-8859-1?Q?4yauYhOuWsEuEmIX2dXOAn/SGpFWBm3uoWjWsd5KLUFWnu++She9YDrbHe?=
 =?iso-8859-1?Q?n+cLBQybs6heLZfOdc0OyB1z70Z0csdpIbEkyt2BBgme/muhFBu8a2JwzI?=
 =?iso-8859-1?Q?7tfXV+Gqry3JkazX3eoCsL5qknyHwFTT4//ivA1yKyTLOYo8RzBRXlZSkM?=
 =?iso-8859-1?Q?ZOmJdniDwqgksGkZkjkj8KpMu8C6JKrLmn/HzGTU4x+ovMK7ui23M9Z29Y?=
 =?iso-8859-1?Q?v3qSHwcnGm1sm85vGEp6WyXVwX81X+/qcfFhj79q2R+ESj3mTWaZOnXBfc?=
 =?iso-8859-1?Q?huGO3n6uW8AWSn8HcvgKKHb3VwOgv23mDIxeJ1WD/f1RIpCjNnX3pxCfq3?=
 =?iso-8859-1?Q?pqfhv5UZmmBaJOEguXUzN8vtIXUn0B8LdIWHf2YGX70jtb2eQyZYdQerwC?=
 =?iso-8859-1?Q?0b80UxDz3Qd5fMWcON9I48xZliC8Ey8TcRCdhDZEmPIBCqnGIT8PoJmK9C?=
 =?iso-8859-1?Q?vjJkYpXc3ZeWL697+0STFkXTK1F34jp9VbEsmvARfKqDtzrJmcJ2gPN4Vv?=
 =?iso-8859-1?Q?1Isy6Cr/x+OeVoSUo8K5mLLob35Y6YG5evUSAsdIIE01dz/8E1zB8MUEk0?=
 =?iso-8859-1?Q?ICy76ww7Tg/jju6OfppDO6ROzXYu4Cb69yt3IM/dmUycuXu8UOdFkdfFsR?=
 =?iso-8859-1?Q?vMaGQO17rUhOR/VSOm463er/WWVWKUr2x6IbzWJPRw7nCqaW2wAaRDQyOd?=
 =?iso-8859-1?Q?pQCobtFASUwa7mKY07B5F2f4v+/fgbzJdAbZrMvaQ5ZF813BjdxP/dJ8ZG?=
 =?iso-8859-1?Q?mCq/kK+YNjwuvt/TniA+DCdO1aoK11KzeaMTKlIAVqdecffuk6VgfN+Iun?=
 =?iso-8859-1?Q?hEXC/7Z0B5GOHv7GgiUl+Yift2eYe5Znt3pbk7GXl5t5U1lxNRkJwzM5wE?=
 =?iso-8859-1?Q?ObLiyTCi2+YBihWx80TelSCpEnengGVqNMi3gFBA2gQ0ET/EpCVq/ATNvP?=
 =?iso-8859-1?Q?D9X1LgGB0sObknUrFpLcnYm+mFZaNklBMYh9JOyylXUFtjb6C4vf1hq3hQ?=
 =?iso-8859-1?Q?bWpYz1yl1oCJeOabsxs4C6W5b3+gfwFCI/TPt9XpWOdnlxsnk+psGxbZgZ?=
 =?iso-8859-1?Q?WdiyoO4OAGwEqkEQOt0UDbigfrlRVLBOjIMOYmIe/l9G2RC92rLcY0Hjyp?=
 =?iso-8859-1?Q?VcUDXrbBPL69cFWh+y0+jXoxGubZ0N+B1AVEkwPky8RR4SdhQb+kGa23HZ?=
 =?iso-8859-1?Q?R7ThbVcgzmTJNcFxGz6EwNYIpv9lVoqBy61zlIxdC6xtP5Ol1KDsxvcqSa?=
 =?iso-8859-1?Q?g45wmTXT3tCVQjgWWxLPVZ9ZE1MThS3QXVVcoNAuBEZwmFj45fYm1WA305?=
 =?iso-8859-1?Q?UhpY2rTncwdGGzNyJodg+frq4wgp0z+TwKk7fPvcnDLj5cW3CQn7kJqDb6?=
 =?iso-8859-1?Q?UKXgmlhLo8OgK4yRZ8/+dzIDbzuz0onyuRXAvwLGRGwrDkRZhmEXi6hfBW?=
 =?iso-8859-1?Q?TVVbltFOrxzNCf29DeI=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: VI1PR03MB3583.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6c174c6c-f63a-400c-ed5a-08de216e7868
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2025 22:05:48.3196
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: S40OSPms21HY1L5pNO6Y7FlFbd0c14d7izPXCHCJKueXCwuC4g7l91Tq1B0zW4CBbHA5AatX55e5G+EzfFi4keaj9OS4pQ/bscNssi6pdX0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7832

Introduce a new Arm-specific DOMU_TRAP_UNMAP parameter that allows
configuring how Xen handles domain accesses to unmapped address ranges.
This parameter corresponds to the "trap-unmapped-accesses" device tree
property.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
 README.md                | 6 ++++++
 scripts/uboot-script-gen | 5 +++++
 2 files changed, 11 insertions(+)

diff --git a/README.md b/README.md
index 2efac97..7ec7e7c 100644
--- a/README.md
+++ b/README.md
@@ -319,6 +319,12 @@ Where:
   2: Hardware
   4: Xenstore
=20
+- DOMU_TRAP_UNMAP[number] is an Arm-only option that configures handling o=
f
+  domain accesses to unmapped address ranges. It is optional and has no ef=
fect
+  on x86. If set to 0, domain reads will return all bits as ones correspon=
ding
+  to the access size and writes will be ignored. If set to 1, such accesse=
s will
+  trap. The default is 1 when not specified.
+
 - LINUX is optional but specifies the Linux kernel for when Xen is NOT
   used.  To enable this set any LINUX\_\* variables and do NOT set the
   XEN variable.
diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
index e319de8..7912cc7 100755
--- a/scripts/uboot-script-gen
+++ b/scripts/uboot-script-gen
@@ -493,6 +493,11 @@ function xen_device_tree_editing()
             dt_set "/chosen/domU$i" "capabilities" "int" "$caps"
         fi
=20
+        if test -n "${DOMU_TRAP_UNMAP[$i]}" && (test "${DOMU_TRAP_UNMAP[$i=
]}" -eq "0" || test "${DOMU_TRAP_UNMAP[$i]}" -eq "1")
+        then
+            dt_set "/chosen/domU$i" "trap-unmapped-accesses" "int" "${DOMU=
_TRAP_UNMAP[$i]}"
+        fi
+
         if test -n "${DOMU_SHARED_MEM[i]}"
         then
             add_device_tree_static_shared_mem "/chosen/domU${i}" "${DOMU_S=
HARED_MEM[i]}"
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 01:21:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 01:21:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159435.1487760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIzY2-0004cS-E1; Wed, 12 Nov 2025 01:21:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159435.1487760; Wed, 12 Nov 2025 01: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 1vIzY2-0004cL-AU; Wed, 12 Nov 2025 01:21:22 +0000
Received: by outflank-mailman (input) for mailman id 1159435;
 Wed, 12 Nov 2025 01: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=P68F=5U=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vIzY0-0004cE-AH
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 01:21:20 +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 dff4a30a-bf65-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 02:21:13 +0100 (CET)
Received: from SN1PR12CA0092.namprd12.prod.outlook.com (2603:10b6:802:21::27)
 by SA1PR12MB8985.namprd12.prod.outlook.com (2603:10b6:806:377::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Wed, 12 Nov
 2025 01:21:06 +0000
Received: from SA2PEPF00003F64.namprd04.prod.outlook.com
 (2603:10b6:802:21:cafe::a1) by SN1PR12CA0092.outlook.office365.com
 (2603:10b6:802:21::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.16 via Frontend Transport; Wed,
 12 Nov 2025 01:21:06 +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.9320.13 via Frontend Transport; Wed, 12 Nov 2025 01:21:06 +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, 11 Nov
 2025 17:21:03 -0800
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, 11 Nov
 2025 17:21:03 -0800
Received: from [172.28.100.6] (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, 11 Nov 2025 17:21:01 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dff4a30a-bf65-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tNDYkdt/knD78PD4vNQUQKUAUMfaRFvK8wbA1PlPdOvgUbJ8AKobZMHEtnOdHBbBCE3FIykeBo+3MAv6yU16LQ31huD3AzszkadvZMBcAKyuj3M0+E3WCr7GeEXGtPWciNgSpODwt3SA4EG4u16T+lzY+aYOpwef5Pdx9hKMhgw2nOpugtbRojbIYLMIJ1z0C7l22stHR8+K4wJ+Ypl0BU/F24NEymZeT3YoFQIlruKVz8RtOTuEx2KlEsj9NZpM/g16gTWQVlcRAyW7ieMyi8SCcq7VBfHkubUFaPZWFXIRp4MExVyF5/qGIdrVuxL6We+NjPVP5ZkZ2hPHT7c6CA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ktGJPSQTd+vfBwXa7rurz/0mSlEmpoQZvOmd02Cocdo=;
 b=wYPojAmiUZWKgkBfJS5Gy9IO2siJaIU73a2uIHKKpUfkCG4qsTaiVTBM06C8kd5zkwt14RxaiVKWy4u/m3lxyMGtFKUrzdP6iWofNr1IIktnfHj11oSgc6vJJrEBRck0yp6hqk693adU/RD2nXMlWmyc9paT0FgjlNxQPcjePFxG26bYLebs8NMU2A7zVgl8SiWXSL36pGIMCkE647K5sKTBPZyj42WBKn0hUHfbgJV4Z35FtwHl9XfEKcFxyHtbqBH4/t49SrDa+O6KLBLMzWZQXtfTl/45WlEYWzFEw4kxui+MrwJ9CO2+WcCMPopOg5pQrvTQ2wwuazzUPXLzEw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ktGJPSQTd+vfBwXa7rurz/0mSlEmpoQZvOmd02Cocdo=;
 b=avpBGRC5QPuxUqWUWuBJyBZmG/+M9WTaccxP1THrZUZP7ARapjNwRyRjm5DWd7CXIPeJ+GeIlHAir8Vw+S4OBA4ZteiXMWwEEeQmyn+PvlQ+kiglXJcawPU7ELat6pOh733iuj5W+QjfMh+ytNwDwOvTUtugCVBjuu2ev4d7VBI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <84db78e4-313e-4d6a-81e0-230cf27ca78d@amd.com>
Date: Tue, 11 Nov 2025 20:21:01 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 1/5] x86: hvm: dm: factor out compat code under
 ifdefs
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <alejandro.garciavallejo@amd.com>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <20251111175413.3540690-2-grygorii_strashko@epam.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20251111175413.3540690-2-grygorii_strashko@epam.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003F64:EE_|SA1PR12MB8985:EE_
X-MS-Office365-Filtering-Correlation-Id: 49e455bd-87a6-4904-0b86-08de2189c12b
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?Vmd5VmdHTGFwNzRSTjVrU0txWjFoNW5rQlM5bGVEVlZKNDd0aDl0MWlHZWVC?=
 =?utf-8?B?Rys1a0hWU29Cd1JLODBGMloxVndJeFVuN3d2bTExYkJoMkdDMGpBclY5bkRZ?=
 =?utf-8?B?ZlpBSDJoNUJOMTdKUFlsYkdZQ0Fac3hZTGtUNnNmZjFMR2piU29MQjZpdlhE?=
 =?utf-8?B?T1RMZUdTMDBQTDhJeGx5MkowZ1lRc2RZa2hnK1o1QUgzOGErYjQ4MjQyWCtQ?=
 =?utf-8?B?YlhQL2kvaGRaYXQxc0VGOGZFQnFBTFdWcDlZWUdpMVp0dFNZN1c3dE1rZytG?=
 =?utf-8?B?Q0pWM3Z3djRmYTFkODVxbUlwMElLMDA2UStXZ2Z4TXFhaVl2bm1icVZsaGZa?=
 =?utf-8?B?MWFoZGVsK2VpNHhkdHhtNkJNR0d6REl4cVJRUTY0eUhpM1Baa1QvMUJUMDNO?=
 =?utf-8?B?WmZvNmJJMXRPSlRqczFZcEZBT3lXcXVrZ3RZaTg0TkhRVkN5dE5PSmovZ3VW?=
 =?utf-8?B?cEkwTVo2aEc5T0s0NllmdDRSTDgzS05qZlk4MmNaQTc1c1lLdWp5bmVUZlRP?=
 =?utf-8?B?RFoxelloRXFvMlM3SHdqZGlpOFMxU3ZXZXN2cjlySkdjeXhVOXVvaWt6TVpB?=
 =?utf-8?B?aldOWFNLeDFpOThMMjUrK0g4Q2svOWJ4eFlvM0tmMTF1dmplVWdNaVNWdUZN?=
 =?utf-8?B?QmtxSGYwR244SXJTUmNQcGgvVCs3RkE1N0ptbXpSRjFyR1JqanNkUnVnK3ZY?=
 =?utf-8?B?eFEwakhmbGJhN2YvRUEyMEFuMCtCNld0YnhvQm9DSnlQbFZBc3gzclFTZmdo?=
 =?utf-8?B?VEN1MnU5R05YUjZmY2IvRVk3V1Q0WmVvR3RaZVR0UVl1Z2RYZUhWZWQ5TG1O?=
 =?utf-8?B?MlRJYVUwWHNRL2pTdGFUbElSVUVKeHJqSjVvZGhna3dSbU1aNENhNlhzdXdI?=
 =?utf-8?B?T0xYYmxFNG4zWVJta1FlQUZsTEJyd1ovVU1lbWEyL095MWJsQ29ISzg5UFpj?=
 =?utf-8?B?OEh3WGVFaCtOYjNPdXYzbjdhSUtDSTRyUTdNbUJPQ2VHQy9jZ3lITlFWSmlq?=
 =?utf-8?B?aDVuMnM3SXp5RTJQczUwR3JCak5hT2FtS1FJaVdWcUtLdXpQaUxFNEl3aFh6?=
 =?utf-8?B?L1NEeHRZVmNNaWlRM2g4YnRRdnQydk82RjZwWUcrZFFuUDRLTDc5S2VUY3J0?=
 =?utf-8?B?cmp0dVB4NTZpek9mdGVxK1c4TXRydzhmN211YnJIR2VaVGdFRitxa3FFSDd3?=
 =?utf-8?B?NEU2V1hKaTVLRnJxSy9Vci9YUGcyUjZPc2Q1bXJkMENkRVg3NTQwNEp1MGly?=
 =?utf-8?B?QTB1MGp2TW5BNVUrdWgrQVZDaWZsbXEvaDhkUGJQalFjUThXaDdzL3JIWkR5?=
 =?utf-8?B?TGdwaVZFSFNtakRIUCs4Q09scGluSzJzU2w1YWM5UldMcmk1b0xrV0RlY2Mx?=
 =?utf-8?B?aVpDRk14VDBoSUdOUDVlMUlDVmJEb3RZMUg4a0x2UjBQMU9jNVN0Qm9DSWxD?=
 =?utf-8?B?TkNMTEFrQm9oUW5rSmpEdXNRTXpnb3JuM0gvY0VGL2drWGczM2RKdmh4WlRh?=
 =?utf-8?B?bjA4VjhLSzlXemFRbVdzRS9IZ0FpVnNhUUhuNGtubC9qOE9FR1ZNRzRtQjZp?=
 =?utf-8?B?YVkzQTh5WmVZZTVQMzZ6cW9QcUtGWVZrMUNWSGxKTFFNMCtSalJqNnN3R0Jj?=
 =?utf-8?B?M3lCY3F1QjRYTlBSMXlJa2tWdXRmVkhodGNWamNIU2k0bTdxN2RNVjhlODRK?=
 =?utf-8?B?bGp1NFpvZFRGcEt1L3hiM1VKU3o0ZG5HNnM0RjEvbDNJeU5UT0I5bkU2VVgv?=
 =?utf-8?B?OFdWSENxMmhCelh5bkhnOEROTDd3a1NubEhET3RPeE1VYkFnOG51VDd3aCtJ?=
 =?utf-8?B?WXhpVTVIWGYxcG4xdmt5YWo2OTYrbTc1UTVLVnhkRjZ4S2tLZEVVcEU4Y3ZP?=
 =?utf-8?B?Smd0dG0zVGVLRHllb0I4Ky9odDdTS1pFZ1p1M1c3Ung1NWtrRFRCazJnVmZ6?=
 =?utf-8?B?RE0xTkVaNDZOeWJLbFpYSXd6eXVCaVVLUEc2OGdDSW9zOUd0WGltVno1N3JM?=
 =?utf-8?B?V2dFeFpHc0YrT0FIekorbVJxbFVvd3dhdkhNVTVMVytGLzYxa0lybmh6TCtu?=
 =?utf-8?B?SWhQbmVrVmltaHRWTU1YcnM3Tm84VVJveWMrUUtKM2FJUlRCNWIzS2VZcmg3?=
 =?utf-8?Q?I/k4=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 01:21:06.7585
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 49e455bd-87a6-4904-0b86-08de2189c12b
X-MS-Exchange-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: SA1PR12MB8985

On 2025-11-11 12:54, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Factor out COMPAT HVM DM code under ifdefs in preparation for making HVM
> COMPAT code optional.
> 
> changes in v2:
>   - do not move code, use ifdefs
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 01:23:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 01:23:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159447.1487770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIzaA-0005Ct-TK; Wed, 12 Nov 2025 01:23:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159447.1487770; Wed, 12 Nov 2025 01:23:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vIzaA-0005Cm-Qm; Wed, 12 Nov 2025 01:23:34 +0000
Received: by outflank-mailman (input) for mailman id 1159447;
 Wed, 12 Nov 2025 01:23:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=P68F=5U=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vIza9-0005Cc-Td
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 01:23: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 32538c41-bf66-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 02:23:31 +0100 (CET)
Received: from SA0PR11CA0085.namprd11.prod.outlook.com (2603:10b6:806:d2::30)
 by MN2PR12MB4405.namprd12.prod.outlook.com (2603:10b6:208:26d::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Wed, 12 Nov
 2025 01:23:24 +0000
Received: from SA2PEPF00003F63.namprd04.prod.outlook.com
 (2603:10b6:806:d2:cafe::b6) by SA0PR11CA0085.outlook.office365.com
 (2603:10b6:806:d2::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.16 via Frontend Transport; Wed,
 12 Nov 2025 01:23:24 +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.9320.13 via Frontend Transport; Wed, 12 Nov 2025 01:23:24 +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, 11 Nov
 2025 17:23:23 -0800
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, 11 Nov
 2025 17:23:23 -0800
Received: from [172.28.100.6] (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, 11 Nov 2025 17:23:22 -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: 32538c41-bf66-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iUIGPEUdedSAPuSj5VMD1SDXD/+y3Z2HH1YuxbM9K1nAASHhJZf8P0Ewm/7LQ72yY7kUEywN3GL4GE8IyIeZ+J91wMDoeGVzxvVmeKcddOKBvKNrZ8cXKwO3uIwcQI8DAzJWjBKOFVV0eQK4etDyMfpVSoGkbUQ6votmeeg3OBvKsoDj5RtdNcg0hQeM40y7WQzns3FdVzB2Yp6ZlihmrSzFH630T+t3iGA340xN9dHne4VAP3DtjA0NmM7KEeChzfALyVcPTUh23Lqrrifxdl4v2rijkZOKo8ZD3SoCbEXd+CRqBWnq8/pg+z2XZewUfoCdnsXDYlnhKRd1TG7cjg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=g8x/9tXkN/lAbw5bYMeeVxIhTOlPZhdFSyUxiHE0hPQ=;
 b=idGZkRZp5W9EDEd4yW0FP4imYwhxWTykJQI6OAC3at4iCRQ2Zup/p0JQ0idk5vlJliuHMaQkb5rSstfNzKsblMSKWwPJUYxH51tDm1LJ87giNOiMov77AsqmONOPTC57vJNz8lAJjD+aXVF4KHhrL9fd+5lGKTZcT/J4n/RVOQj5lVO37R4QGZbyQUV0iibUQ8U7Q9+zqEGj6V2DCwdo3dZVCD8rIC53juBIGlfV6P+EPE8pxPO4uSPR+dZYhS8rWnAHP/FMxWwKOlm+rnT9UXcLnkF6FlrFNEf7gJYPHoYGRElAl39s2LriwpWN3dmNhCeBM+2BvlFEKskmdOgppw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=g8x/9tXkN/lAbw5bYMeeVxIhTOlPZhdFSyUxiHE0hPQ=;
 b=1mhHacQvJoihtxNO2vvO4sxKo0FfRUl6WNpIrdZC1a5FqK1gKDAya+SAaEydOT+OOATzuI98ZdzvflaBdTYJ0zOgNpC75vMc86zNynUJVdZIdY31kmS8yaUJ+hV5ecMOngCPJdHfabME1l5TN1+SkfbBgNpdofuu23HTyMA+VqY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <a46ba647-1b40-450a-8732-77db1be03f44@amd.com>
Date: Tue, 11 Nov 2025 20:23:22 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 2/5] x86: hvm: compat: introduce
 vcpu_is_hcall_compat() helper
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, 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: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <20251111175413.3540690-3-grygorii_strashko@epam.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20251111175413.3540690-3-grygorii_strashko@epam.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003F63:EE_|MN2PR12MB4405:EE_
X-MS-Office365-Filtering-Correlation-Id: 8bfb4d15-eb50-4a1c-df84-08de218a1312
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OGZGQ1I3WGNYdUJvbHBwM0dLZHRzelI5WWQwM0h1OG5LNEFqdHo2UlIrY1Rv?=
 =?utf-8?B?V0FLUlVmbE9aOUpsdkpkbzZPdVlMVDgvcWFxRWdyZW1zK2VLV2xEekZ5aEcv?=
 =?utf-8?B?U2xtcXpSZTBCc21WOW1RQUo2R3UzY3ZGc09TelI4M1ZoYjBSL3NjYjdES0hk?=
 =?utf-8?B?SjkzU25nbXhLclpaUG4xdm95UWRJTk4wdzlnUlhtWGJTTzcxSmFPbStQM0Mr?=
 =?utf-8?B?SEI4dlVoRHF2REFCeXJiQUg1ckxsNjl6Nm4yNWZ2dVVzVWpBaW40UFp0c2Iy?=
 =?utf-8?B?RFBscDBNS2YvdzJoaTlnMERpSGUzOFhVckdEektiYkRncVpiOEQ1YWRpdEVK?=
 =?utf-8?B?VTNMaFpxbk9HR1h2TUhZTDZCZWtucGp0VTF3OERUeC8xbjRVdlliT0I4VzNY?=
 =?utf-8?B?Ync1cFJ5ZE1TaWVXTnJwOHVOTW9oNFhSaXhBQ2dYUU80RDF4YVFJVk9INldk?=
 =?utf-8?B?TGNSMDFRWTluR2Y2WkpWRTU1dVhlWjhiNThOaDVrbU9GV0lrU2dsSFJmbkhh?=
 =?utf-8?B?cnphTElwY0lOcGRNZ0xlNS9BdDRpT3JJVG9sUUgyalNZNmN5TTlaaWN6aU9q?=
 =?utf-8?B?WGlQVkh5M253L0cyZTFhRFU3UzRoNUZ4M2lGOVFDODd5eitrTkZ3UXpqL2dP?=
 =?utf-8?B?cW56ZFl5dTNhbDJQZ3grbW1GV2ZYY09NWDl6YnJrcnkxSkpDUU9VUnZ0dlpH?=
 =?utf-8?B?NXZwUTQ3VDdjdkxzNFlidGQ0c3huWVFYRkNOUUl4eHM0ZUlkc3ZKOVRrUStW?=
 =?utf-8?B?eHpKcWo1UDdVQXE0UzFVM2MzOGtQN2k2NVRBSFlidzVjZnZPbGwrZ2V1Mjhm?=
 =?utf-8?B?azlqSENxK2p4S0dEREt1c2NnZnB0MHN3ZXdkMmdLcndpV2R4eEU1MXgwbnp2?=
 =?utf-8?B?cjdXVlRiM0c2Mi9NNzRiVGlXeGVkWmowQ0hzVG11WFlHUlBaNXhkTGdQNUtY?=
 =?utf-8?B?YzRGRWRha2NzbUQ1N2NIK2ZLb29BQzRmdHlnWUhzd0hHUDVaTHZ5QlRmN0FB?=
 =?utf-8?B?Y2VJRzg4T0l5eWNzdGFadmtpMnVwQ1B0M1BYTW9VdVdvZzB3OXRwOEVZZk1i?=
 =?utf-8?B?WXhNdldzN2wrN25WcTlyb29BemUxKzBFdWhIb0h4YW95TWF4QitTVmJYcCtY?=
 =?utf-8?B?eWs4T3ZFR1ArUkFOcTdYVjNtVzBOMERXYlJ2TFlQM0dTanhxT1dOblZocDM0?=
 =?utf-8?B?K1h1c3JHaDFWVS9CNUs2M1IzMEZkS2JZYzZicC9lU0NCdDRGemRrWDVaMWNs?=
 =?utf-8?B?eHc0WEdiQ0xqV25ZZmZ6UjgvREhScnprVUZ2N3k1R3pjSUw1NFlEalNKcTMy?=
 =?utf-8?B?VlBaajlJWlZlai9DSlJyUjc2SzlUaDZnelNLK3F5V2VSTnJGWVUvek5YeEs5?=
 =?utf-8?B?TFV1N1R1K1A0d2RCazA1UTJzNW1XNGZnYjV0N3JlTDVGVXlKaHo0bFlPRVlG?=
 =?utf-8?B?b1ZPWFlPaWhEUzB6RWIrMFVYSFRBVGl0OGtnVWZLRmQ3cW1XaHU5aG9yc29E?=
 =?utf-8?B?Q2xQMU5GYXdhU3BtbXRkUm5xeUphakNVa2d6c25KUCtQZkE0eGZ4SzBoYmdx?=
 =?utf-8?B?QVUwdDd5V2o5NVdIbWVvcy9kWjJxVEFWRytyemxDYVNCV1E5TVpZSlZtWWhr?=
 =?utf-8?B?WHl1UnowN0x2RnhNNmNBKzNvTm1pZmwxQjdvUnZWNDJmQllPZzZCU01XeFA4?=
 =?utf-8?B?bllrZ1YyaUhPWVZKeDc3QWU2c3FiaitvSkdQalpZQVEyQ2tiS3ZqVFpyb2k4?=
 =?utf-8?B?L0xWbXptc0xsL1hGL3NwWVA5TXl5M1VpSWgwMDM2YXgxdFNDT1ZIeUg3clZB?=
 =?utf-8?B?cHdDS0o3RUpLRG1uNXpFZDBhV2R5YmZOb1NwNVRGR1dEZS9PdTZlYlF5UkRz?=
 =?utf-8?B?SUx6N1lPVUo5aXhxbUx3M0V5RlBsNzFLQjVWMm9CS3NoK0JOajJ3STFoZWx5?=
 =?utf-8?B?QnRTVndTaFNXbDNvQlJ5UTRvRFdqdFNoYTBndVZOTnQxMkxuODVQVndVdmJx?=
 =?utf-8?B?OFF5NjBPcEg2NjhwS01QZDRIMUpUWFNLaUNNYlBDZUNmYXFsalN4MmZlSFVt?=
 =?utf-8?B?cklWMzFLenJHckZ5ZXIvb2ZDM0crWi96eHFxNnU3RGpSMW8yTjF2ME5jQVFZ?=
 =?utf-8?Q?FTDA=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 01:23:24.1771
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8bfb4d15-eb50-4a1c-df84-08de218a1312
X-MS-Exchange-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: MN2PR12MB4405

On 2025-11-11 12:54, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Introduce vcpu_is_hcall_compat() helper and use it instead of direct access
> to struct vcpu->hcall_compat field in preparation for making HVM COMPAT
> code optional.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 06:39:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 06:39:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159462.1487779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ4VU-0007EV-7d; Wed, 12 Nov 2025 06:39:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159462.1487779; Wed, 12 Nov 2025 06:39: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 1vJ4VU-0007EO-4q; Wed, 12 Nov 2025 06:39:04 +0000
Received: by outflank-mailman (input) for mailman id 1159462;
 Wed, 12 Nov 2025 06:39: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=K5hw=5U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJ4VS-0007EI-2F
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 06:39:02 +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 4345e44b-bf92-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 07:38:56 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-477442b1de0so2980395e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 11 Nov 2025 22:38:56 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a60:8d0a:6473:d951:bd22?
 (p200300cab70c6a608d0a6473d951bd22.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a60:8d0a:6473:d951:bd22])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42b2e052f32sm25464536f8f.17.2025.11.11.22.38.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 11 Nov 2025 22:38: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: 4345e44b-bf92-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762929536; x=1763534336; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1hs6yILGDXwX38IaKxeSn+uiT17ZYoCtwioJI1+qqjM=;
        b=R7MGmTEqwrDot1t+sGDZNV5bQ7Mbox/Ebcffua+kP54HA9hDh9kp7juvACasX47/kY
         I52IHfrhicAhM/GOlOUgpTrQM9ltkGZxwW9VAvnVurJIGQOWWQsPGYIivKrckDJBfk6t
         yM/Hrt9LYyxsJY56oWzFcRWwuFb+CrkbXyyLWKX81VZWRaJui2cmgZy4Co6kjWiMPxT8
         2cKmPS2AqABs7qZB8Xp6JtzowA6tqVna3TJNKPgZMHCIF9G8REXzKtXz7/GaEKO0doEd
         NKW9/CFtrNODSnFX4393F2RSKtgMTn/EFXtz4ta5v0LpTFuaWuUK/eu63M+jZAiFMJtO
         m/5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762929536; x=1763534336;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1hs6yILGDXwX38IaKxeSn+uiT17ZYoCtwioJI1+qqjM=;
        b=IVNNvKSTv7xVpGbArfhbCAgzMFdkimtrJtI5znGInbRfPL5YnWY1f/P7a4dQPXojRP
         pTNkibexXPtXboYpVGc1BjdHKNPQUUTCI27LDvU6YZRNyqGwUFR4tyyy1HOi1qUt0pS+
         uL14S9tJmAc6x5msv4c3h8lFw5iXourK4SJp6iLS2rIWj6RvVtGYGtLLgn9xNbEAHdHa
         ai6DWChueBwze8YOfBHHh6qs7IVeKbcesZmSmg3KM2TwkDf5dt0pOcJUeDbXX1pnDTXw
         dAghLAM6eWTVpMwl47KTs2eyAcfVOq18TFYmxVf4OgeNh5W3wUTJYZba7SfXMCwF58Qd
         cIgQ==
X-Forwarded-Encrypted: i=1; AJvYcCUE4cSCbC2XuMaHnSlE8vn7SQM6OKuXrN0evZwoK2JOXBXAaxe/4EhmrEB0US7zwtvRNYQ5bC4BF0k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzdSulhML0rbWNm78I2/2jv1wh1cShPcC4pY+0XO5BlQpEjElEu
	NpiFpz1H9+vNpdR6X2PNdHznIWxMIzhU059Gxgu4mBIzgSzpQGR+EcT0Shq9M/+Aiw==
X-Gm-Gg: ASbGncvH359gyfW+NU8OKJbGtLFNEqC4J6NFC+1fx7uENhVUdR4qik8/MCiqjRWUT20
	+MHNVg/hn55+cxCwTv79t0npMOmF6aTv4322IjkWGn5dfFAEpQiDpk2q8oLJ4hSBetv6Xnxv6Rj
	oAt6ApzQYHeLYZZDzVzxW1SBwpEmEZsbfPuhx8Rx1/mhc0RrwKAesdDf1PPba2+fatpkpEBOR0N
	sTilm9apr5r0bBgaEgYpmfFswgWREINfjHVK1W4T/fDECgrvFnnmz6hxFIIAjFrP+Up+d6R4JcL
	yitSjicFEpmbg8H3oZOtkAYVW7FlO0AjMTjSxQxuJF8rzOpNqmFjbRotNn52iTUoQ81MEpw7+Eu
	kfmzll5A2NUAY6/63vF3YToDc0Yh16NWYY4UJp/UDKhKJd8QU2A5bNfO+sVf0EmcvOvgUF7WK6l
	eGXfC0nNShc05yYhFIMlkTRT1bQDTuq20RMrWzHVnQ6p2OahHW58VzAmvz4Rm7vSGYzboKwO0hL
	a5khE/bPJAGiaWCLvgwxlWsEESPrrFxeJAubW4rvcbZAA78
X-Google-Smtp-Source: AGHT+IGe7CKZLN3BVyEiPzsTMqoj06VUfp3wOHo9z2yVPi0u+ZODzE1BGqLhP1E9DHcIf/V1rp6eag==
X-Received: by 2002:a05:600c:c4a3:b0:476:4efc:8ed4 with SMTP id 5b1f17b1804b1-4778704a657mr12852635e9.11.1762929535762;
        Tue, 11 Nov 2025 22:38:55 -0800 (PST)
Message-ID: <faab050f-677f-469c-8bca-93c55a53165c@suse.com>
Date: Wed, 12 Nov 2025 07:38:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v3] xen/x86: guest_access: optimize raw_x_guest() for
 PV and HVM combinations
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Lira, Victor M" <victlira@amd.com>
References: <20251107181739.3034098-1-grygorii_strashko@epam.com>
 <47f86a44-007f-4b90-9656-b2440238b2ba@suse.com>
 <f0a5a939-7d66-417d-8a88-34cc172623e6@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: <f0a5a939-7d66-417d-8a88-34cc172623e6@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.11.2025 18:52, Grygorii Strashko wrote:
> On 10.11.25 09:11, Jan Beulich wrote:
>> On 07.11.2025 19:17, Grygorii Strashko wrote:
>>> --- a/xen/arch/x86/include/asm/guest_access.h
>>> +++ b/xen/arch/x86/include/asm/guest_access.h
>>> @@ -13,26 +13,64 @@
>>> Â  #include <asm/hvm/guest_access.h>
>>> Â  Â  /* Raw access functions: no type checking. */
>>> -#define raw_copy_to_guest(dst, src, len)Â Â Â Â Â Â Â  \
>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>> -Â Â Â Â  copy_to_user_hvm((dst), (src), (len)) :Â Â Â  \
>>> -Â Â Â Â  copy_to_guest_pv(dst, src, len))
>>> -#define raw_copy_from_guest(dst, src, len)Â Â Â Â Â  \
>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>> -Â Â Â Â  copy_from_user_hvm((dst), (src), (len)) :Â  \
>>> -Â Â Â Â  copy_from_guest_pv(dst, src, len))
>>> -#define raw_clear_guest(dst,Â  len)Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>> -Â Â Â Â  clear_user_hvm((dst), (len)) :Â Â Â Â Â Â Â Â Â Â Â Â  \
>>> -Â Â Â Â  clear_guest_pv(dst, len))
>>> -#define __raw_copy_to_guest(dst, src, len)Â Â Â Â Â  \
>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>> -Â Â Â Â  copy_to_user_hvm((dst), (src), (len)) :Â Â Â  \
>>> -Â Â Â Â  __copy_to_guest_pv(dst, src, len))
>>> -#define __raw_copy_from_guest(dst, src, len)Â Â Â  \
>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>> -Â Â Â Â  copy_from_user_hvm((dst), (src), (len)) :Â  \
>>> -Â Â Â Â  __copy_from_guest_pv(dst, src, len))
>>> +static inline bool raw_use_hvm_access(const struct vcpu *v)
>>> +{
>>> +Â Â Â  return IS_ENABLED(CONFIG_HVM) && (!IS_ENABLED(CONFIG_PV) || is_hvm_vcpu(v));
>>> +}
>>
>> Without a full audit (likely tedious and error prone) this still is a
>> behavioral change for some (likely unintended) use against a system domain
>> (likely the idle one): With HVM=y PV=n we'd suddenly use the HVM accessor
>> there. IOW imo the "system domains are implicitly PV" aspect wants
>> retaining, even if only "just in case". It's okay not to invoke the PV
>> accessor (but return "len" instead), but it's not okay to invoke the HVM
>> one.
> 
> This patch is subset of "constify is_hvm_domain() for PV=n case" attempts.
> 
> It was made under assumption that:
> "System domains do not have Guests running, so can't initiate hypecalls and
> Â can not be users of copy_to/from_user() routines. There are no Guest and no user memory".
> [IDLE, COW, IO, XEN]
> 
> If above assumption is correct - this patch was assumed safe.
> 
> if not - it all make no sense, probably.

I wouldn't go as far as saying that. It can be arranged to avid the corner
case I mentioned, I think.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 06:40:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 06:40:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159473.1487789 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ4XB-0000Fy-Hg; Wed, 12 Nov 2025 06:40:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159473.1487789; Wed, 12 Nov 2025 06:40: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 1vJ4XB-0000Fr-F9; Wed, 12 Nov 2025 06:40:49 +0000
Received: by outflank-mailman (input) for mailman id 1159473;
 Wed, 12 Nov 2025 06:40:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=K5hw=5U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJ4XA-0000Fl-RO
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 06:40:48 +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 8524168c-bf92-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 07:40:47 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-42b31c610fcso343080f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 11 Nov 2025 22:40:47 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a60:8d0a:6473:d951:bd22?
 (p200300cab70c6a608d0a6473d951bd22.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a60:8d0a:6473:d951:bd22])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42abe63e13csm31985301f8f.19.2025.11.11.22.40.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 11 Nov 2025 22:40: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: 8524168c-bf92-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762929646; x=1763534446; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=s/MV7yDOzfqCSM/45fhpa5D1WC2nfoCMfFecxUzX42g=;
        b=dk7F86b9pGgb8CkGiC7ukN7rQbBYn1JRGKHrZtm/L2zUifaBM10bSy/blBRdRSNHCR
         d6YnYHXdn8dM9v6AK7sEhxA+dRyd6sOpYF8fYfsNCa2T6rJUZXy5DWrIdBQViHDxyGQN
         ncZGbB7N+7SXAcsEv9fjRPpvA2kqGb6+pv0TKR4GSXLyAtXBfWqOvNJbEYQx4KX/YKbl
         MrpbuDQJUeD9P8Iyf3488cuopzhtj2fyf7bRYD2UkDX/UP6txiaAndHRm7K8wANtd7x3
         eGzt6QtNyIVKhMq9sjghQgeko0O3bV/kDw4TP0Fk0R79POr7wwaXRdvbRTVT0/ymnyBe
         OWmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762929646; x=1763534446;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject: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/MV7yDOzfqCSM/45fhpa5D1WC2nfoCMfFecxUzX42g=;
        b=j1I0u8BTVHNaxWYj5hOowlxHIOWBJE+5cqQlP0vPjt0nHLlf00RpBgEGVHO+98CSA7
         571tHeohnk7CKkO4YXqap1gxJbDDHqr1ddRuka9sKuictOYFoxezWojre3SZYO3WVAgZ
         w3HdJUmzyyikNJkSmJxWilLDBoYVr45fl7TOxhR6gpry/2+VbnUhuFKSLifBFYCYZztb
         JwUT0Y0TyPsRM+mdtaxzEe8NOOl1uUrGjO/ByybYtgBPoQHCGVfTNi6FZU5a/t2Ajygg
         aRSPbRDjgthxqgNKYj0QEAKEi2CbGD6xmE6DY9BpomkAVatIp0uvbKm52oQHvsd20ot3
         DQDA==
X-Forwarded-Encrypted: i=1; AJvYcCWG6ksc9ERnfA/e2Y7cKgrpE4kNkyGkXxmq7zMW2tWv3Z+aGDheclNoLTujbaEZ6JkeqNU2IPghEOc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxPmGAue+6OHfnThFf/bT+IBPuWswCyCmxF4bw0WjHoR8He8kzk
	u3joFoiqntVlsWrR5f9dvLxHdS55wG7VDbuSy0vaolgaEdZHDuuNSLsjCJCiUQnDyQ==
X-Gm-Gg: ASbGnctkAbOuIIKDxlSmJCqLNb1/2DfgbGUo0QTuU8Jfh/NKAar30aznP0QBZ6UUzFL
	9vlw+WooRpyRa93+dSFIdRCCAb+75Ld9pdSPxXk4yKvx2YYLIInqYy8HG71vg06/O6L76QBdY+h
	/fkx6wGbqbotl49Npdw80k+msBCwfbamwfIKEFx5Xyky3VNYYDs77s7SYSKdvFLKnCdptJcrUGw
	U/fwcsTqpwqgSTjTd3JqIMLcBK3ngBN7+dN3othdFNxuM0HSe/i4UcqyOmXEnYhrKy3GtFR2vzK
	b7Wd2h30Adm3bRNtGO+IdY5ncBItUpW+jUtpB8178xhcUVwP542XbLw0LDy6B4oEm1VDd00dZz8
	iy090SncizuCnnVqOVUnFYwj8L08gKDmkG6vo3xj4R3ujjFHADlvOSAOOXAszEG5lNyGJS8G0Ok
	vciFR0z9eSdKJ5eYglDzUPxB27AstXpzYoLJwGtkOo1CbGNa3ECe+QyfGWscgeDwOsPjOWR2/MI
	KaNnro9cHDI7g0vK6Vi2Z6xlJ8Zq70m2IuLnw==
X-Google-Smtp-Source: AGHT+IHVef6uX0+z56B9hXwP4OntPwVIgvlxMFNOYQE6KPCWLeplfvW0rMA71+q/9Dokesjg7P0CBA==
X-Received: by 2002:a05:6000:250c:b0:42b:300f:7d8d with SMTP id ffacd0b85a97d-42b4bdaeb5bmr1255497f8f.34.1762929646416;
        Tue, 11 Nov 2025 22:40:46 -0800 (PST)
Message-ID: <b829a9dc-ed1d-45f9-a56f-ec288e0d5523@suse.com>
Date: Wed, 12 Nov 2025 07:40:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v7] x86: make Viridian support optional
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Paul Durrant <paul@xen.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <20251031161716.1222956-1-grygorii_strashko@epam.com>
 <a4d3eb8d-17ea-4d3c-87ef-ba5c3477b8c3@suse.com>
 <edb590e4-340d-4a0f-9543-0dfdcc7b54b1@epam.com>
 <210edee7-8525-47a9-8191-ea7d94db5fce@suse.com>
 <0a5af540-214d-46cc-93e5-f0266bb79064@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: <0a5af540-214d-46cc-93e5-f0266bb79064@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.11.2025 19:25, Grygorii Strashko wrote:
> On 06.11.25 15:47, Jan Beulich wrote:
>> On 06.11.2025 14:42, Grygorii Strashko wrote:
>>> On 06.11.25 13:35, Jan Beulich wrote:
>>>> On 31.10.2025 17:17, Grygorii Strashko wrote:
>>>>> --- a/xen/arch/x86/hvm/hvm.c
>>>>> +++ b/xen/arch/x86/hvm/hvm.c
>>>>> @@ -4231,8 +4231,9 @@ static int hvm_set_param(struct domain *d, uint32_t index, uint64_t value)
>>>>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â  rc = -EINVAL;
>>>>> Â Â Â Â Â Â Â Â Â Â  break;
>>>>> Â Â Â Â Â Â  case HVM_PARAM_VIRIDIAN:
>>>>> -Â Â Â Â Â Â Â  if ( (value & ~HVMPV_feature_mask) ||
>>>>> -Â Â Â Â Â Â Â Â Â Â Â Â  !(value & HVMPV_base_freq) )
>>>>> +Â Â Â Â Â Â Â  if ( !IS_ENABLED(CONFIG_VIRIDIAN) && value )
>>>>> +Â Â Â Â Â Â Â Â Â Â Â  rc = -ENODEV;
>>>>> +Â Â Â Â Â Â Â  else if ( (value & ~HVMPV_feature_mask) || !(value & HVMPV_base_freq) )
>>>>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â  rc = -EINVAL;
>>>>
>>>> I find the check for value to be (non-)zero a little dubious here: If any caller
>>>> passed in 0, it would get back -EINVAL anyway. Imo -ENODEV would be more suitable
>>>> in that case as well. Things would be different if 0 was a valid value to pass in.
>>>
>>> The idea was to distinguish between "Feature enabled, Invalid parameter" and "Feature disabled".
>> "
>> But you don't, or else the addition would need to live after the -EINVAL checks.
>> I also question the utility of knowing "parameter was invalid" when the feature
>> isn't available anyway.
> 
> My understanding here - I need to drop non-zero "value" check.
> will be:
> 
> Â Â Â  case HVM_PARAM_VIRIDIAN:
> Â Â Â Â Â Â Â  if ( !IS_ENABLED(CONFIG_VIRIDIAN) )
> Â Â Â Â Â Â Â Â Â Â Â  rc = -ENODEV;
> Â Â Â Â Â Â Â  else if ( (value & ~HVMPV_feature_mask) || !(value & HVMPV_base_freq) )
> Â Â Â Â Â Â Â Â Â Â Â  rc = -EINVAL;
> Â Â Â Â Â Â Â  break;

Yes, or alternatively

    case HVM_PARAM_VIRIDIAN:
        if ( (value & ~HVMPV_feature_mask) || !(value & HVMPV_base_freq) )
            rc = -EINVAL;
        else if ( !IS_ENABLED(CONFIG_VIRIDIAN) )
            rc = -ENODEV;
        break;

Both have their up- and down-sides.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 06:50:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 06:50:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159485.1487800 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ4gE-0001wV-BO; Wed, 12 Nov 2025 06:50:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159485.1487800; Wed, 12 Nov 2025 06:50: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 1vJ4gE-0001wO-8W; Wed, 12 Nov 2025 06:50:10 +0000
Received: by outflank-mailman (input) for mailman id 1159485;
 Wed, 12 Nov 2025 06: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=K5hw=5U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJ4gD-0001wI-1Z
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 06:50:09 +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 d2eaa389-bf93-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 07:50:07 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-42b32a5494dso165979f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 11 Nov 2025 22:50:07 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a60:8d0a:6473:d951:bd22?
 (p200300cab70c6a608d0a6473d951bd22.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a60:8d0a:6473:d951:bd22])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42ac675ca86sm32389144f8f.31.2025.11.11.22.50.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 11 Nov 2025 22:50: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: d2eaa389-bf93-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762930206; x=1763535006; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=i1GLyRhvFZlmUdvAsV3vRpeqfv9Dtimp8WWjTBXjIe0=;
        b=TDMMqb7ifcn0/Hyuzvv3zo0QQ0na0ssCOSYJOKVIJYc8MOWPdhdYTF1pGqkpD1KG8s
         a8tZq8oqukyqDZEmLB1Qb0n4LLNfG7vVO66XfFa0Dc9QxZLR859wosppBN2iSYeufff+
         2qvZZBGaNfaFs5T1TiG92wMdH9qU+wHFEMlHDRIubExVuojzgeE3K+D6bhTgyLmozQwX
         8nK94mFBDXzFbVOVbDnw0cXicHTIST6KbQ1ylxbWheCCp57xr7co7PQcME3rORPoqvi6
         EaAyCGkubCaAhZw3oXl5xVgX13/0r3u49hrCIqwoJFpVZbA4WsfgDiAbr9vUsIOaJYGP
         KvsA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762930206; x=1763535006;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=i1GLyRhvFZlmUdvAsV3vRpeqfv9Dtimp8WWjTBXjIe0=;
        b=suVE8BaV+7mI3iOZfSlBn4MbtcKLViAqDSYXFuDcSrDixVtUcCHOahd0MQLv9eHf6b
         tkB+dGaG9GoN59dyRf9Jb+3FbT/UjZ0kexyuPtwgNFyzUAzRVc5eSVEHL0SfVg7evBAa
         PzyLcJKbkNNcfjx5sxSrQzN2uca0r3wnndXrKEk2KJSPAOKWOk2iRFJM33iFhgkxOEck
         WYITYbQAVHNiOZPnSdoVXcKMz9LKViZIdr425n0ypR2pk4eV19Cy2LJYoTvQA0L4/V17
         Za8vH2TBB9yy7Ae4/v1B4JnqPWMUZHOWc9a4ZVQqW4JHDz4kxYBXXjfcq/DY/hkHBVkB
         g1Dw==
X-Forwarded-Encrypted: i=1; AJvYcCX3gfw3WSb64v4INnxpn3a17NWtxh5BfhqprvEJEQlqefYn6brMdGTT7ERXAIPNOSFfTXIZA+2Djuc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzROL00B9QjOEMjoxaBeFDWtBlkkHL5xLrAD/k/6Xg1VPNaRZtu
	tJZkgeK/OhwLW+4CnoB0G7uUtUe+PYeS5PpAguqtxreN+LYh+C38dsMF9P7JAIEZEg==
X-Gm-Gg: ASbGncsqghrhOMbtZUeZdazPTZikv7bks318WfLDAF9aV4h22MzawlsANJZVHzrcGzj
	JrpGctmk2LOPGVmDfoyrWZ9rCGOMbEcDJPR2BEoqLo5C211zO3U56xTBYKMHzHXGn6OGigxjT6O
	QUQJVzCWeV0n0AOi4pTONWkMKHTQpelGnmsbDME+zuLipajI58WfnE1KI6NIhC3HEIhp/lK95S0
	U6bydSw+VlDaSmd+oo/uxyubWFSdi5z9xMlV+61kOPgPJ5BpVkkPsed7B/jYTZZ2KDIizdWGjt0
	CXcvfywWEbwZryM1xr3zLrEj/KCG8kDXMM200QG95itndfzOYO6qig5czrpa2nPuAL8XTdX/uw0
	mN5ZYkpnBRY6dqLwW88XL6fUnmlf7JEH4+gF1IJkohM2iuVpga/WhiateYJ0stGIcbAEkEjsjox
	RsQtW/5GMDTs56oDDy53J35WWJDGP68u0SD1dt+2EBPa+ZHh8rBq6wn9Tb+2D1q6ZVy98v/hjgc
	/Mqr2X0umRspZShllp4573JAlVGSWunFXEC8A==
X-Google-Smtp-Source: AGHT+IEmfHopHTPbHjU0mIYNFLlG1Qm0pdFllJth2uauvyYK1Qwfnk+7j3htuZTTxzCizkBNr9Aoig==
X-Received: by 2002:a05:6000:2888:b0:42b:3da6:6d32 with SMTP id ffacd0b85a97d-42b4bb94f09mr1323542f8f.23.1762930206333;
        Tue, 11 Nov 2025 22:50:06 -0800 (PST)
Message-ID: <cea9d2cc-ba33-4483-92e9-4aa31c24960b@suse.com>
Date: Wed, 12 Nov 2025 07:50:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 0/5] x86: pvh: allow to disable 32-bit (COMPAT)
 interface support
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251111175413.3540690-1-grygorii_strashko@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: <20251111175413.3540690-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2025 18:54, Grygorii Strashko wrote:
> This series introduces possibility to disable 32-bit (COMPAT) interface support
> in the following cases:

The use of plural here ...

>       - Only PVH domains are used
>       - Guests (OS) are started by using direct Direct Kernel Boot
>       - Guests (OS) are 64-bit and Guest early boot code, which is running not
>         in 64-bit mode, does not access Xen interfaces
>         (hypercalls, shared_info, ..)

... makes this an OR list, which I don't think would be correct. PVH domains,
for example, can well be 32-bit ones, can't they? Otoh the latter two points
look as if they really enumerate alternatives. Can you clarify please what is
meant?

Jan

> If above criterias are met the COMPAT HVM interface become unreachable and can be disabled.
> Coverage reports analyze and adding guard (debug) exceptions in hvm_hypercall/hvm_do_multicall_call
> and hvm_latch_shinfo_size() confirm that COMPAT HVM interface is unused for safety use-case.
> 
> Grygorii Strashko (5):
>   x86: hvm: dm: factor out compat code under ifdefs
>   x86: hvm: compat: introduce vcpu_is_hcall_compat() helper
>   x86: hvm: factor out compat code under ifdefs
>   x86: pvh: allow to disable 32-bit interface support
>   x86: constify has_32bit_shinfo() if !CONFIG_COMPAT
> 
>  xen/arch/x86/hvm/Kconfig          | 19 +++++++++++++++-
>  xen/arch/x86/hvm/dm.c             |  2 ++
>  xen/arch/x86/hvm/hvm.c            | 22 +++++++++++++-----
>  xen/arch/x86/hvm/hypercall.c      | 37 +++++++++++++++++++++++--------
>  xen/arch/x86/hypercall.c          |  6 +----
>  xen/arch/x86/include/asm/domain.h |  3 ++-
>  xen/common/kernel.c               |  2 +-
>  xen/include/xen/sched.h           |  9 ++++++++
>  8 files changed, 78 insertions(+), 22 deletions(-)
> 



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 07:06:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 07:06:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159500.1487809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ4vZ-0003vY-ON; Wed, 12 Nov 2025 07:06:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159500.1487809; Wed, 12 Nov 2025 07:06: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 1vJ4vZ-0003vR-Lt; Wed, 12 Nov 2025 07:06:01 +0000
Received: by outflank-mailman (input) for mailman id 1159500;
 Wed, 12 Nov 2025 07:06: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=K5hw=5U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJ4vY-0003vJ-9K
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 07:06:00 +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 0a6c0591-bf96-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 08:05:59 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-42b427cda88so261698f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 11 Nov 2025 23:05:59 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a60:8d0a:6473:d951:bd22?
 (p200300cab70c6a608d0a6473d951bd22.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a60:8d0a:6473:d951:bd22])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42b4789896esm6498295f8f.38.2025.11.11.23.05.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 11 Nov 2025 23:05: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: 0a6c0591-bf96-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762931158; x=1763535958; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CEzIo7/N6EGU0IppSdci/EWmEm145xbiQsm65A5WP0E=;
        b=NRBjhZJ8xUePU3KuqpPNkXpU8yvdPMPkOx0FlZen/vzdcWt7WZjgDfSUaYRJZPJOAW
         oOBwJeA6Sf5L6Iirk/g3HyV6NvYPvMOvIcRSCkbpaxRlrtg54hDjDS+b75JUWl26uFU6
         fxMUNEFsU27qiGmv3/1vgBfqfH0ilo9oD1tEAPbZBOkUqSpbX22SkLzxmx/y2IOXsCJX
         Uh2X/sWFJKW0c8jN97SgOl1IA7TmK7d67mFqHrZ5faGhiaM2D231fpi4/nLIJT9dh9Lb
         l7sD1Ph/shmDnhDRx39tX2mVK6/FtrbgUoZWzbUnqn8/SH9OK/EgGLzDJ2BG01ZHv1Wf
         Y9qA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762931158; x=1763535958;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CEzIo7/N6EGU0IppSdci/EWmEm145xbiQsm65A5WP0E=;
        b=go4NmJ7DMS3gejXEFa1ogFUmYrEuhD2Mb20kZchKDtbcukJy/MWf8cfK5ok4qsWVM3
         d0hB+7VS2glIdHh4JeS1MJo8zsk03rW8JMejo2yVyVinUo+4yEbxAFamsunGKT7tNmxD
         m/W8XKQENITbBpsqQxA4q9PGc11Z5qsqq/ALwB3tMT8aW1sQVIrqHvwPgbmkOdL+LWJq
         qqvf4qisYNupvvxteMrcnzMNSNgFtlQNzdT0Zk4tHIrCm7ZohVn6LVCzoTJNwhByRAo3
         S7PRn/99lltY4/CukKc+Co15UXDIStxmsRMiQsI5nIMxxLsmZOuU8jRHrGV/MnMKeDqL
         KtMQ==
X-Forwarded-Encrypted: i=1; AJvYcCVGakKyFvwXsYQ6QgHBBLze6q0RZ+k2b/M3yew/i4CYoXLPttzfWVjbIF5fTEMyi/cgCm8vZR1QOy0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YydYtt1O9xX/ulpTUg4rbn6d7LQ6AgUFUTenbYtijMCykof2zRS
	nz/LX6+4Gb3dZnkx2dkNUheonDjl/cKXSGufHjZ39cgQodp4lncDcICJmU28SZ2ZkA==
X-Gm-Gg: ASbGncsq9j6VQc38bYaXfPRYo/CnzKRCB1uZtGByFoUroSbWZhhlLeFxCEM6mNyUkcv
	ucViPRweIQss01m2LQpUkq95X3cmNyeKpqNtUryxdZnyp0b5WuGsC3rbgQYcrBjF2AqoruDvlXn
	dSLD07qKc9jOf8VdqvwDvkTpZz9GUjBw4k0uhPpQezD4ntmkygX/MIYX+6lWVN5r5PxuKW/BZWU
	Du80FJQEkTHyfwDG/fh+eDlEVseTJciJY2agZRhMg+9XPsA6gtIQVzXSwMZY0MJ7UP4Q3rSIbno
	84zjFNLYNprW8XLP5ax6G1BHoyyU1TVJESoWHDTu2UmNTaHra9axh1i3AuSz4W1wn3Q+hF9ivbo
	KEV/nbU+XMwlcWj/WyAPqEsEU0IwbSF/Oju+cuSWfcO8jE02Os+mvOS6BKaOi82OiHmW38M6hE4
	7smD9K0xvLqOcYeb0n4iS5SkH9wwbzT/ZPtCJ5eLcxgrKW6cdce8Dq2ymHRVHZB9RtKk0Ju9x8a
	Vv0X9fj8y4OnHjsSAkz4rdxdrpvZEER8XY53g==
X-Google-Smtp-Source: AGHT+IG2U3PMGkNQQCcqiCvmR+tiG4atE0kkbDtxKYB0IZ/Q6/XYA3RGptxpGDhxWVRCNv3ivM5wVA==
X-Received: by 2002:a05:6000:178c:b0:42b:4081:ccea with SMTP id ffacd0b85a97d-42b4bdaacbdmr1238512f8f.35.1762931158498;
        Tue, 11 Nov 2025 23:05:58 -0800 (PST)
Message-ID: <0192173c-c88d-4f73-95fc-5ae2ab3a0bb1@suse.com>
Date: Wed, 12 Nov 2025 08:05:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] config: remove stale definition from Config.mk
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251111161959.13667-1-jgross@suse.com>
 <20251111161959.13667-2-jgross@suse.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251111161959.13667-2-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2025 17:19, Juergen Gross wrote:
> buildmakevars2shellvars is used nowhere, so remove it.

Amends: 1eb944f65055 ("tools: remove qemu-traditional")

> Signed-off-by: Juergen Gross <jgross@suse.com>

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



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 07:08:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 07:08:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159511.1487821 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ4xz-0004S8-5j; Wed, 12 Nov 2025 07:08:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159511.1487821; Wed, 12 Nov 2025 07: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 1vJ4xz-0004S1-19; Wed, 12 Nov 2025 07:08:31 +0000
Received: by outflank-mailman (input) for mailman id 1159511;
 Wed, 12 Nov 2025 07:08: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=EQc1=5U=bounce.vates.tech=bounce-md_30504962.69143269.v1-d068692f474a423bb6591a33a5e4c6c5@srs-se1.protection.inumbo.net>)
 id 1vJ4xx-0004Rv-Gv
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 07:08:29 +0000
Received: from mail136-17.atl41.mandrillapp.com
 (mail136-17.atl41.mandrillapp.com [198.2.136.17])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 62a680f2-bf96-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 08:08:27 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4d5vd5690rzPm0ZmK
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 07:08:25 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d068692f474a423bb6591a33a5e4c6c5; Wed, 12 Nov 2025 07:08:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 62a680f2-bf96-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1762931305; x=1763201305;
	bh=Oa4yrycR7NIuFObzqDKHG41ZmuCJzPot29fGUbt2GPo=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=S7rkVGk4NzzMc0ty25NVhMX/EhcVew8Ob4VNw/upJv/qQanYMyaGKbhAxTs81dAZC
	 ilfhl58S68VkjJlFm+TMaSNcb+ACWsShm9VPOE7dJ0btyuUSkUohR5R3DLNlGtgsTg
	 npCrVykHtBf4aurJa+h2YRglJcUK5ST6kd4nEn9iHk2ZlJXyGWh7SYbt3XHUMY9GZq
	 aOWDki8LWD/Ul69G7UI14+bbmihWSV0R3x10a9uzFfaBDLKOGJUJMznkMl1ejQyUJk
	 ij0YBwFWvxzaGRla9YbpZEeaXyHhS4cUZdfNw5bqkfrcdeAqohAp63Oyn1TtkddUQd
	 Rny6FWxhOoiSQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1762931305; x=1763191805; i=ngoc-tu.dinh@vates.tech;
	bh=Oa4yrycR7NIuFObzqDKHG41ZmuCJzPot29fGUbt2GPo=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=CSaW4rK3iIQVvqUAoWd633BSSoDHptDkDEdj2ruoBlm5hPC/ufnF5yFixOOFIkwcD
	 yVh9/x34UBfXUSiN2xKtlq1aRWdVy3X7eUyLuB1Nhu+PLUPyxEG9iV0MRkvGV5dE+O
	 DL+w1lU+2yZnxqYgn1d1VCBlHvGftzY/KxMxPKTLeyZHkdyT5CVzL4WGjFXDHtFtQA
	 zsSbz5RYNU5h6hI5LgSDURVOrbiBczJIi5wqeGj7Zwl1RVc9Qf+6pVkz/kP6jxKL4W
	 4YoQMDFez2fdMUJ+GIjJBK/7qBhiGQPqXQw56qZfo21LzBUEkHN35QQ3fenwACL3Dm
	 ztHN7jggUy6YA==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[PATCH]=20xen:=20Expose=20time=5Foffset=20in=20struct=20arch=5Fshared=5Finfo?=
X-Mailer: git-send-email 2.51.2.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1762931304036
To: xen-devel@lists.xenproject.org
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Bertrand Marquis" <bertrand.marquis@arm.com>, "Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>, "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Message-Id: <20251112070815.545-1-ngoc-tu.dinh@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.d068692f474a423bb6591a33a5e4c6c5?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251112:md
Date: Wed, 12 Nov 2025 07:08:25 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

time_offset is currently always added to wc_sec. This means that without
the actual value of time_offset, guests have no way of knowing what's
the actual host clock. Once the guest clock drifts beyond 1 second,
updates to the guest RTC would themselves change time_offset and make it
impossible to resync guest time to host time.

Since there's no way to add more fields to struct shared_info, the
addition has to be done through struct arch_shared_info instead. Add two
fields in arch_shared_info representing time_offset's low and high
32-bit halves.

Provide a new feature bit XENFEAT_shared_info_time_offset for this
functionality.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 tools/include/xen-foreign/reference.size | 5 ++---
 xen/common/kernel.c                      | 3 ++-
 xen/common/time.c                        | 5 +++++
 xen/include/public/arch-arm.h            | 2 ++
 xen/include/public/arch-ppc.h            | 3 +++
 xen/include/public/arch-riscv.h          | 3 ++-
 xen/include/public/arch-x86/xen.h        | 3 +++
 xen/include/public/features.h            | 5 +++++
 8 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/tools/include/xen-foreign/reference.size b/tools/include/xen-foreign/reference.size
index 11a06a7a43..38e799617a 100644
--- a/tools/include/xen-foreign/reference.size
+++ b/tools/include/xen-foreign/reference.size
@@ -9,6 +9,5 @@ vcpu_guest_context        |     352     352    2800    5168
 arch_vcpu_info            |       0       0      24      16
 vcpu_time_info            |      32      32      32      32
 vcpu_info                 |      48      48      64      64
-arch_shared_info          |       0       0      28      48
-shared_info               |    1088    1088    2344    3136
-
+arch_shared_info          |       8       8      36      56
+shared_info               |    1096    1096    2352    3144
diff --git a/xen/common/kernel.c b/xen/common/kernel.c
index e6979352e1..dbd2cf9c76 100644
--- a/xen/common/kernel.c
+++ b/xen/common/kernel.c
@@ -676,7 +676,8 @@ long do_xen_version(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 #ifdef CONFIG_X86
                         (1U << XENFEAT_vcpu_time_phys_area) |
 #endif
-                        (1U << XENFEAT_runstate_phys_area);
+                        (1U << XENFEAT_runstate_phys_area) |
+                        (1U << XENFEAT_shared_info_time_offset);
             if ( VM_ASSIST(d, pae_extended_cr3) )
                 fi.submap |= (1U << XENFEAT_pae_pgdir_above_4gb);
             if ( paging_mode_translate(d) )
diff --git a/xen/common/time.c b/xen/common/time.c
index c873b5731b..0f38b1342d 100644
--- a/xen/common/time.c
+++ b/xen/common/time.c
@@ -118,6 +118,11 @@ void update_domain_wallclock_time(struct domain *d)
     shared_info(d, wc_sec_hi) = sec >> 32;
 #endif
 
+    shared_info(d, arch.time_offset) =
+        (uint32_t)(uint64_t)d->time_offset.seconds;
+    shared_info(d, arch.time_offset_hi) =
+        (uint32_t)((uint64_t)d->time_offset.seconds >> 32);
+
     smp_wmb();
     *wc_version = version_update_end(*wc_version);
 
diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
index b31324f8d4..2f34fb409b 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -363,6 +363,8 @@ struct arch_vcpu_info {
 typedef struct arch_vcpu_info arch_vcpu_info_t;
 
 struct arch_shared_info {
+    uint32_t time_offset;
+    uint32_t time_offset_hi;
 };
 typedef struct arch_shared_info arch_shared_info_t;
 typedef uint64_t xen_callback_t;
diff --git a/xen/include/public/arch-ppc.h b/xen/include/public/arch-ppc.h
index 4ca453a284..5bb47e09d3 100644
--- a/xen/include/public/arch-ppc.h
+++ b/xen/include/public/arch-ppc.h
@@ -92,6 +92,9 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
 
 struct arch_shared_info {
     uint64_t boot_timebase;
+
+    uint32_t time_offset;
+    uint32_t time_offset_hi;
 };
 
 struct arch_vcpu_info {
diff --git a/xen/include/public/arch-riscv.h b/xen/include/public/arch-riscv.h
index 168263b920..e502aade99 100644
--- a/xen/include/public/arch-riscv.h
+++ b/xen/include/public/arch-riscv.h
@@ -65,8 +65,9 @@ struct arch_vcpu_info {
 };
 typedef struct arch_vcpu_info arch_vcpu_info_t;
 
-/* TODO:  add a placeholder entry if no real ones surface */
 struct arch_shared_info {
+    uint32_t time_offset;
+    uint32_t time_offset_hi;
 };
 typedef struct arch_shared_info arch_shared_info_t;
 
diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x86/xen.h
index b99a691706..598af31e4e 100644
--- a/xen/include/public/arch-x86/xen.h
+++ b/xen/include/public/arch-x86/xen.h
@@ -263,6 +263,9 @@ struct arch_shared_info {
     /* There's no room for this field in the generic structure. */
     uint32_t wc_sec_hi;
 #endif
+
+    uint32_t time_offset;
+    uint32_t time_offset_hi;
 };
 typedef struct arch_shared_info arch_shared_info_t;
 
diff --git a/xen/include/public/features.h b/xen/include/public/features.h
index 8801930947..b48591c17a 100644
--- a/xen/include/public/features.h
+++ b/xen/include/public/features.h
@@ -128,6 +128,11 @@
  */
 #define XENFEAT_dm_msix_all_writes        20
 
+/*
+ * arch_shared_info provides time_offset and time_offset_hi
+ */
+#define XENFEAT_shared_info_time_offset   21
+
 #define XENFEAT_NR_SUBMAPS 1
 
 #endif /* __XEN_PUBLIC_FEATURES_H__ */
-- 
2.43.0



--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 07:08:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 07:08:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159512.1487831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ4y6-0004hx-C6; Wed, 12 Nov 2025 07:08:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159512.1487831; Wed, 12 Nov 2025 07:08: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 1vJ4y6-0004hq-7Z; Wed, 12 Nov 2025 07:08:38 +0000
Received: by outflank-mailman (input) for mailman id 1159512;
 Wed, 12 Nov 2025 07:08: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=8ume=5U=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1vJ4y4-0004h8-VX
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 07:08:37 +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 6128ab85-bf96-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 08:08:29 +0100 (CET)
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by VI1PR03MB6384.eurprd03.prod.outlook.com (2603:10a6:800:193::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Wed, 12 Nov
 2025 07:08:01 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::d976:7403:c89d:4677]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::d976:7403:c89d:4677%6]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025
 07:08:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6128ab85-bf96-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Qk/Ruc78cTvuVkIikNnQW3xfJJscFKLnuHhKWZqhscrRbKCLE5BXeyiSZFxwTiPzFcxkV0NScE+aks74uzxFqqwtYovLVIf3Qef6R5mnpzP2JpMRRYXD2YpDYpqyFK894vHxT2O0ocsHM4YJDBdo97Y8VxUT8dkNq56oo+/NXBRBhGZY81n0ErB2knLgbyVlroIcJ2+Qy04qNDzU8N3tVrIdtPXT7ZjNa5ZGMqxmeeNYkafTM/6i8EeYDI8Cswv2TcnNgE/zp8b3trrTOyF2WqI0SN/yu6RSDKO6mTB9+o7kdlTpyeL5U7d0Osum8XupiiRW61R555turKz2ZZEiEw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xETYGnJkNgVlooehPx8NuhdN7rntm8FPEct7pYgXeMc=;
 b=qU0fYmir8W0OpqGZBIHDQVKfXUzhbnWgK/SJYFtRMyndVR8A0nwYTwa4fXeNoBRpG5BVBOkR8yOyhYLxhKCOQY0YbM3r/e0jISj099m294Qlefz/26dY6zR7wDY3KwnX4pUsrEONGxFya1PIQQoQlzdH4eg1DYwNnR4/EcW+y6+U7MFeW25lcA/M57eZstRrF9dq0fl8ce+TSeeLGB2QAn5sQhVhCUU7FENAdMfqEU7To15367RyvlGlaSAjh8YPPV7mdPpYMAR/4F8XZPwleF8bBfjOs3HB5/OALgWARx9AJMMbJ1zdfmIAMgq53GnVsrjY8cNDQekJ4izDCUA6Qg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xETYGnJkNgVlooehPx8NuhdN7rntm8FPEct7pYgXeMc=;
 b=Mk+dFv3He38ymCHuqt60jS2kzdAjcCy2gewRlsI1X0TP0XElIS1l5QNCTrE9q0VD0q67G53dX/5Y+tmYFGIfPqnQRuCTaYytX7cvtclkCUZAA9OuD6DLWu/hVQPG66Ao+J4qtNwitiYgJa06Xy5qI1zqQuKoONhaLJPu5mlbTPnXfClw3Zl4EM1HmN8y2+98MCce79V+IcDT1/ryY6JJYGZrRJNrwsxJSP1UbEC5KlSasEJMehCy9F1AUMh3lWivaZp29V1boi8BIsqUK2M06WCXHIvNAnR0Q7HjYwF4B7QhVwDqNHyisgl85Q/S6HkSJh4c7gCPs9yGHA0b3z3C/Q==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Stefano Stabellini
	<sstabellini@kernel.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: Use FDT_MAGIC from libfdt instead of local macro
Thread-Topic: [PATCH] xen/arm: Use FDT_MAGIC from libfdt instead of local
 macro
Thread-Index: AQHcU6MU9r1SyxgepkCxXro0WqQYWg==
Date: Wed, 12 Nov 2025 07:08:00 +0000
Message-ID:
 <464fb509cc7f66934689d9e2d3a77bf5fcd45c24.1762931200.git.dmytro_prokopchuk1@epam.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|VI1PR03MB6384:EE_
x-ms-office365-filtering-correlation-id: 3ba82cc7-f070-420e-9507-08de21ba3750
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|42112799006|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?tU7caCM0iHCIyvN4nRiumwAn0FuGA+VCgV/PrPpNddv/DsW7QiMCrSjuhA?=
 =?iso-8859-1?Q?lAWt32hnbYW+zdG3MRTj69ZVAM4XNnPiFUFl5traeewL83xr2nwPJ/++kG?=
 =?iso-8859-1?Q?GGlrbgtex+TSsMjcItvgTl1cELWur0QkrNrFPmuudJ6Ql1ZWvhNMsCiRNH?=
 =?iso-8859-1?Q?aocJah62WJDY9xthzPgO9w1WE8gXpbXNBGquWEwNMaIQZEZWgeQvjY7VfL?=
 =?iso-8859-1?Q?V3vPHai2dw86CHxqen/mjH1HwmvQr841phxSk6dIZZXUbtuJbQyAkRWIMX?=
 =?iso-8859-1?Q?Vwi+W8+tiESHJftceV3+MDEZkbBvJ4UojuQB+rN1WgXQt3bniRlwgm50Cf?=
 =?iso-8859-1?Q?Oy1tw9RC7TaYKvibvYb6rlxNxOmdRQuWFO9txdWRL+47CfH8daSuuJaZHm?=
 =?iso-8859-1?Q?lC7XsIx1lL0apmuD8zN8Bs+qfMgDyAAbNd69LhhkQmq6aZBt6uAOBFVCcs?=
 =?iso-8859-1?Q?DXSXGLRbgcWEOonE1tF2Yf3YJ7GS4+mmm5UqTFrz5is9dMmaQOZ+dkSjQf?=
 =?iso-8859-1?Q?JovsXP5xlZZyjUAAWqH2h+H9gulVRjwH/7m/e6Ip3voZdJM87CpIwm0jnG?=
 =?iso-8859-1?Q?14HMSO8cTBNY6gqVFTKzk5Tu+cTtY1sOtKdqj7qWcwEUTKN9eRlxahXZG/?=
 =?iso-8859-1?Q?MUXSpaN2oJTJTJy9285sXusy7O/929N8ov0bGuUyf71/AZzHeRhN0jBP1Q?=
 =?iso-8859-1?Q?RhRGHTW4QaNyVd+/51WcmqhGsclx1/2n556pg0KPC0ssk+AAA7mtLErH+0?=
 =?iso-8859-1?Q?IfLkrCgzExPPdMaSag60sdCsK2M0b+sYMbpFeHMTTVsGxVyQGOmsceV2iW?=
 =?iso-8859-1?Q?LmIW/YHv69OVHuI8Df0faO5db2t7ImvdCgcf+dDMpTeX1fJnWVm+lGx/B5?=
 =?iso-8859-1?Q?ziQbFYWXUi3wdhx+6xocR7wnaEez2eMeyOdYosXHpoG5x4WzYK5GUEW4RM?=
 =?iso-8859-1?Q?UagE2kgkFxzplU0QMZ8G9MRGF1bhbbgDX1A0pIOCTAoFlYs5XFVScK+e9v?=
 =?iso-8859-1?Q?O/530ledlVZgaxnXzmRQhrcWUfPyG1anpdqQqku+iscR8psaOSMdwv1ERo?=
 =?iso-8859-1?Q?WB0nN8HBYPxCrCOuOnhV/Mey34husYl03eZ1bcs6U68qEsGd6c3J9aPiRR?=
 =?iso-8859-1?Q?ViD3qDgvHZ13TPKyrmi5NpZAvv+cTmDMNApnUlF7F5Z9WXCdRJoTdqAE4u?=
 =?iso-8859-1?Q?jAWJBFbxQna/lRpZ3ztTs4gASHUNhXc0RLR53bR/SkJQNN/ZCM9UAVE1vT?=
 =?iso-8859-1?Q?9LvzrlJdX3gyOEgyBUGrIkaVAFWJM1iG95y+bcwQ1gqGu72EnXP2E2Gr/M?=
 =?iso-8859-1?Q?bCdO1aeJvTCKTRPkqOPj2vHev+AJgKKdjE30wO9xeFl6VxMBRHY04P4Nfy?=
 =?iso-8859-1?Q?1QMKCsW00qmAqk54kQ6vwJqRt1EqswXFHQRfuVEjG0myDkrOqUuEZNmzCy?=
 =?iso-8859-1?Q?ze2WonOTcu7aI5FgeQcS9+65kmD+S7PAurWrD75zQ2LgCAnmpjR3Di9oq1?=
 =?iso-8859-1?Q?4PaHNjFmTB4Q4hkhhZ/T60wbKz+PvRr3OPRI7VPLIlyhPOOw+0+k6e9Smo?=
 =?iso-8859-1?Q?WMIAakPEj8cNQgRIIz+sXTg0yQvs?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(42112799006)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?/9VQrmxLmsKKfAGf7jX/ffYDdhm0RFXFNEJBOOKl+07MTr3tpggoMquLv+?=
 =?iso-8859-1?Q?4xeM2NrOsjPbM7X4UJ75n9iAAKT0fxaNloGBP+o06bMis2+mIrVGnbZQFr?=
 =?iso-8859-1?Q?tsS9Tg2jWz9f4KjdFBPqst567TCarmXchLteOloEljEBwWXT+kD7HZkag7?=
 =?iso-8859-1?Q?tZc4VlbZhcfm/F3D9+wTbX5LHm0UxtqxlwRkR78GkLERsEPrK5JsGWJSdb?=
 =?iso-8859-1?Q?nzpX6UGOqA87+ciTrUfblThg2TZOU018fbzdM0Mpu4ALK9ALyiDTq2e8Hn?=
 =?iso-8859-1?Q?y+cGf1q06l0eBqQEzs60CBrTDnnAnj/h1TLmYluELIjTC8NAi/dxcx1fUh?=
 =?iso-8859-1?Q?sFeeYk0V9QSO6jZy6C7jbapmr7mPfeWNOZym7eCzq8vxMsrKL54ZW3y0CW?=
 =?iso-8859-1?Q?NEbWz30I5+Lwmj7DQwdTp7VnHVNXEGZhuOITEOiakCVzeWtlec7yRXvdFX?=
 =?iso-8859-1?Q?tZSguxO+Oqxuvga7gGplgGjqULj/Ent3A2v76BQcou3zatolG9fkadV9I7?=
 =?iso-8859-1?Q?7psx2qK+wE63Qp4RA+C2+lGT/C8u625mqI/AGC6vqGsS5ZMEhjcCYRGBPx?=
 =?iso-8859-1?Q?O0qlYatEv7Fqz6oZLWAwMqQ5Xh8acLBzcIcNsDuNF3nUjUKsFPVKs/QJ1b?=
 =?iso-8859-1?Q?2qPjIUlvthCzQ9M/5DiW0KIvRWQaDhtiGTPNYhvsOMzrBYNIHuM97yn7t4?=
 =?iso-8859-1?Q?xlZTzsVLCUXhvdRWe5fvg04eqPj5MVlvzc8yvBWlnldw+UBToe/rTDO7A6?=
 =?iso-8859-1?Q?tO2AmSNOobfnMka88mGxT4v/U+lnRuaOzf6dELx7ELJnb14HDFV9G3Odsx?=
 =?iso-8859-1?Q?+YOOwGveo+d5xKgBzYzn/p6mWbMc1WV4UqZIrwf53CSgBGzWbqYR7cqetq?=
 =?iso-8859-1?Q?mXsbmUjsKb5kcOHt7TT1IgIulAEuLpULOlUh1kKF2itSPoVzXnP4ZfBz8I?=
 =?iso-8859-1?Q?tNkKEWFNAsubkKjEgXxP5+eDQJQHlLdqKf+WIrwqOfbcmeKhr3+AHxHuN4?=
 =?iso-8859-1?Q?4pRUg0DNRR2Nw+bHlNxT3gQpK5H/JuRYCMf23xnpKv4QBnaBEmKdKslG1a?=
 =?iso-8859-1?Q?9fvC1ObOr0qdrR8cV7FchZwVeN9RxwU8cVY8iHC8edjB+zbBwqyzlIcuJI?=
 =?iso-8859-1?Q?UInHkV+6DW/ZZSFQIu/RVoXXAOAaoIoG7vk1QmZINoh6pG3XUH6uF02RxT?=
 =?iso-8859-1?Q?zmbHoYta33v/WMIOEkMyDLIBalHtr7G3XVKyNh8Vm4pfoVKUV4/8n9py/7?=
 =?iso-8859-1?Q?1nCBs7EhVZNelq4Hknz4D817k82NC8aX1GQYde2I4qzq02P6L6KHD8MJsz?=
 =?iso-8859-1?Q?/HyRcQCp5xMsXe4+qWRr3N+PpJhsc4vC9vbIzekWY+PJA3PIxZkWlZ1XHD?=
 =?iso-8859-1?Q?hVJP2dave3/SN706Qr2OBN0ebC7c2s496tC2ot0acQt9wTbkcvnoerilOi?=
 =?iso-8859-1?Q?evYxlKx1UkqO1AqCr428Lbs4AcNjOjbBFSbfCLlxaYSGIOUpct/hxuXeGL?=
 =?iso-8859-1?Q?dRIJ919+WjULDAFYCel5g7JQrw6aN/SWSRn5xgZSf813WhxzSz0z0WqeUU?=
 =?iso-8859-1?Q?bwC8hUKVTW6Qnu3oERNdUPIIzfBqC55IQ9fg9NziC2srqbgi7ZEYbcE1dN?=
 =?iso-8859-1?Q?Eb5P0Sg5v6NFm32CjtIOct2m3HYrHHCkDyLKcXDjMEuGu0bxcR68adfw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3ba82cc7-f070-420e-9507-08de21ba3750
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Nov 2025 07:08:00.8227
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: H776GSKta3829b1gJtji3FAv2qa/u9Qe0NI43X9jydmql5l+uMqtASqoQ+Jrcem5Iqdc4TZAX7EHAUmzyzP+L2awRcNslnvKb36ZF9kh2S8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6384

Remove the redundant local 'DTB_MAGIC' definition and replace its usage
with the canonical 'FDT_MAGIC' from 'libfdt'.

Fixes: 66edeb2e3972 (arm: copy DTB appended to zImage)
Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
 xen/arch/arm/kernel.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
index 48f4b56d0c..7544fd50a2 100644
--- a/xen/arch/arm/kernel.c
+++ b/xen/arch/arm/kernel.c
@@ -40,8 +40,6 @@ struct minimal_dtb_header {
     /* There are other fields but we don't use them yet. */
 };
=20
-#define DTB_MAGIC 0xd00dfeedU
-
 static void __init place_modules(struct kernel_info *info,
                                  paddr_t kernbase, paddr_t kernend)
 {
@@ -383,7 +381,7 @@ static int __init kernel_zimage32_probe(struct kernel_i=
nfo *info,
     if ( addr + end - start + sizeof(dtb_hdr) <=3D size )
     {
         copy_from_paddr(&dtb_hdr, addr + end - start, sizeof(dtb_hdr));
-        if (be32_to_cpu(dtb_hdr.magic) =3D=3D DTB_MAGIC) {
+        if (be32_to_cpu(dtb_hdr.magic) =3D=3D FDT_MAGIC) {
             end +=3D be32_to_cpu(dtb_hdr.total_size);
=20
             if ( end > addr + size )
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 07:48:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 07:48:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159536.1487840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ5aO-0001yO-8P; Wed, 12 Nov 2025 07:48:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159536.1487840; Wed, 12 Nov 2025 07:48:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ5aO-0001yH-56; Wed, 12 Nov 2025 07:48:12 +0000
Received: by outflank-mailman (input) for mailman id 1159536;
 Wed, 12 Nov 2025 07:48: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=21S/=5U=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1vJ5aN-0001yB-Ab
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 07:48:11 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id edc1a038-bf9b-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 08:48:08 +0100 (CET)
Received: from DU2P250CA0025.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:231::30)
 by AM8PR08MB5713.eurprd08.prod.outlook.com (2603:10a6:20b:1dc::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.13; Wed, 12 Nov
 2025 07:48:03 +0000
Received: from DB1PEPF000509FC.eurprd03.prod.outlook.com
 (2603:10a6:10:231:cafe::cd) by DU2P250CA0025.outlook.office365.com
 (2603:10a6:10:231::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.16 via Frontend Transport; Wed,
 12 Nov 2025 07:48:01 +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.9320.13
 via Frontend Transport; Wed, 12 Nov 2025 07:48:02 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by AS2PR08MB9000.eurprd08.prod.outlook.com (2603:10a6:20b:5fd::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Wed, 12 Nov
 2025 07:47:27 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc%5]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025
 07:47: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: edc1a038-bf9b-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=OtefcMgUsG+rlmB6v05xDJ1dv38G49qpc+HzgYcR2P9LBA+aukUdNfT2JHKTUwCqwuZMxYKP+BvAI/o/cSRntyh0H63S87CAu68cfP0CIuOoq7wGSGgqDKkkpDNYsyZB8wXtI08YjRmgqrKPOAF0xSZeWmykXCzCv/4I3t0YmbkRtfbYW3uE/6jNnQCSLSMH+5gN+mvzrGsVsJ9rwOM0ufVNItHlTH1SmgZtE25OcT6VOd2h/3HP0io5INoklTTa7EQS/FcOOQ2zhkX4IQOgpBYER6tv8LyxfUE5REoZxuB25NsSGGF29DxYrBrPxPCs2757WT1mppK47bJx2VwTVQ==
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=pch2KVFYJZ3k3jnuyzWiscTST8PxHu8Qog87IinwUxs=;
 b=Il+rBNjYz1OdXX/OJ9++ZUL4GnFSKOi87ZcR2hKrQH8ieQa0mMZ7qG4H/JCsdhWONEwRLbBcB4978XIV6UlDq9uUaJAatrqfBB5Gsi1qiX+XeWluQAMWxHNV2TiuSFpWxwL59ZouCylxKiTl3MaT2FgpiOjBlFeE6PAnpZddMnm1CTTwds3aFawN3fx04H8u7wjB5Ekf97ligzO84N/stAsgGx7/yKGyxynQWmEItt+OHYqFCw9b69xhP2Ovz+D43sSDnpqVplGbJZ1xa0BE4xlCDpo2YEGGxQZlHT8EYLZFJrnEspePJhjIkV5wrkWxgbXWWl6rTdYgb3FSWRJZ0Q==
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=pch2KVFYJZ3k3jnuyzWiscTST8PxHu8Qog87IinwUxs=;
 b=ap8jJAKFiFaN+SquP0eeSgcgGtsf6O9E2pDxwuT9D05fn7b+ZuMvEex+ks8s3ajLJBx3UZ0nHPoTH5H4GB1YgH5qwErDWa7pS38d3vWT5Hu2s2MlxLfEllVmKCoDN1j4qg6TqpupzC+anBrYJjq2V56GYFMupk08m60XQS/gKsw=
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=DxTABJgEg7u9x3l8W5KKqC5TY1S7kw18C7HX0/bprqg4YN+f9lO+pH/4P9Fp+Rgi0/XMPpW8w0LrXlhzLMitM2xADI3ccjNqtL0LWQt6614wqqbA+IsS4waF7yxHZdocwXvIuhOiNs6Xo2Z3Z8EM/RgJQ3PjoEm8jjg02LF8MXDj+tNSB4qZWVWZ1u+INjNKb7PxrzzIOgBCf6gkVEjudQ5/aVIG2F2MbxKLT6VH5ztYN+w4ZOCS7IAE7TtKsPEKOSg7pPjribyugz09caML/82cOYol14l+Qh40MFgisZQzB2SthiAIhDc6Pi1sncMFzIKr3ZAhN9dHk5Svlvbtog==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pch2KVFYJZ3k3jnuyzWiscTST8PxHu8Qog87IinwUxs=;
 b=AGbTVnf4ljmpBTY1pUYMclGcx0fKN3iCVAvh6SOP5+vDzfY38RTMTBBBk2ek/NSBb0ceg/Lv2m2yTx/sML46tNNYw8xc00liwWxkd9ycWisU8ZVzNpa7pm7KdV28hJyQfsnQEFwcm5jjNIfIb9jdmHUVaqzzrkXBnPYrn8Ng7MTTJowro7P4uP4A9IinK35yl6ZjcC44h4YhI9ba7pIEmuI23VPT2PH+xFTuuxl/5ltYvhJ5lvhjwV98sRduBpPhi+zDFtDU8PWXZRtm5h7+ZrzBgAvRiIW//7gmnjKS5sy8kDNlzB82KjUgERfnEsFgTBRpGtdRmAOqY5etjyl/tQ==
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=pch2KVFYJZ3k3jnuyzWiscTST8PxHu8Qog87IinwUxs=;
 b=ap8jJAKFiFaN+SquP0eeSgcgGtsf6O9E2pDxwuT9D05fn7b+ZuMvEex+ks8s3ajLJBx3UZ0nHPoTH5H4GB1YgH5qwErDWa7pS38d3vWT5Hu2s2MlxLfEllVmKCoDN1j4qg6TqpupzC+anBrYJjq2V56GYFMupk08m60XQS/gKsw=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] xen/arm: Use FDT_MAGIC from libfdt instead of local macro
Thread-Topic: [PATCH] xen/arm: Use FDT_MAGIC from libfdt instead of local
 macro
Thread-Index: AQHcU6MU9r1SyxgepkCxXro0WqQYWrTuqdCA
Date: Wed, 12 Nov 2025 07:47:27 +0000
Message-ID: <80431F4E-4512-478F-94B0-1CDDC5E8B6E7@arm.com>
References:
 <464fb509cc7f66934689d9e2d3a77bf5fcd45c24.1762931200.git.dmytro_prokopchuk1@epam.com>
In-Reply-To:
 <464fb509cc7f66934689d9e2d3a77bf5fcd45c24.1762931200.git.dmytro_prokopchuk1@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|AS2PR08MB9000:EE_|DB1PEPF000509FC:EE_|AM8PR08MB5713:EE_
X-MS-Office365-Filtering-Correlation-Id: c2a90795-286e-477b-ad20-08de21bfcf0d
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?SE91YW5iNnNpa09pYlYzMCtQeERidFA5WkVqTTYxajFPY0dzbU1rd3NGdlNF?=
 =?utf-8?B?WlpSNGMwQXNsUDBDWGhlUis5anhkamgycUdEamlYcjBLc0JxZ3AyWm8yN1BF?=
 =?utf-8?B?TkFuSlROTi9XalA2ZjRNMExyRW9NT1QxenJSWVBUQ2FESnR5MnlaM3dsRTBl?=
 =?utf-8?B?RFMvUUFWRFRHSm5GY2tXNFI0bVc5T21iTHFVUWIvaHk4OHJFb2hCLzhMeHps?=
 =?utf-8?B?d0xFM0k3N1lGRE5yMEhpQTFSajFEQlYybU9KL01idzRJMFBNbnJEbnEvcGFD?=
 =?utf-8?B?d01LNHBYbUFzUkVtSncwZVUwOTVTSG01SjlxamdGV3JaMTlPYWVjM2pZSGxp?=
 =?utf-8?B?M0hBWUk5N2tJbmhMU2h1UkJ1eFpQOUpBMWRKelZlbXV1OEVmRDFoQi9oZ0JZ?=
 =?utf-8?B?VytHSWd5S0hTNVNkWG8zMm5wZ1JiUE4yM3Q3NnhTd2xHTlhtM1IrTmxsWUJk?=
 =?utf-8?B?YStKZ1dMWC9QdXFuZVB0T2ltdlVxQTUzU3lUZTdRZndQQWgrSnJ5WnlUckhH?=
 =?utf-8?B?RGZ4MTIvRUd3Yko4MGdKU00zajB0RzRMY2lxZmpsc2xCNjQxMkw1ZWpMaWw2?=
 =?utf-8?B?NFo4MjU0WXVlUi91dHluK1M4cmV4aGVoRGlBd05vT2NwOU94WFFXTWNEeG05?=
 =?utf-8?B?cjJuUUVHQ3VFL2hYaWMvamxnTHJReXUzLzlGQVAzc1VvOXU3RTN5MTdtaHNz?=
 =?utf-8?B?OGlpTFpUYUdwUHlkbkZkYXBpSGIvVStmOUNzQkFWQjJweWVlN3ppTmtYaldJ?=
 =?utf-8?B?NVZvY21iVkJ4QVNtMUUzNXFiSUtFWnh2ZmJ3bmtCREM0dGRRQkdmWFlIOEhu?=
 =?utf-8?B?R05uZ2M4ZjFVL3RkQ1dUZktBZlpobGFERC9LbmRLYzZjRkd3TFV2c2V1Rlkw?=
 =?utf-8?B?VFlLbFRydlVDbXNubThGR3o1Rm9oY2MxSGdEb0YzRGJIbC94MENkSUZCclRI?=
 =?utf-8?B?VEhhaFVvV2pyQ2VaQjBWOGgxWmw3OWh1eTZ6bWtsZWY4Y3ZLcnlaVmlVUDJr?=
 =?utf-8?B?T3VmaGI3SGVzK1hTemh3STRjYXlxVUM5K1h0NHdsU3U0NEc0enJSUHNJTjli?=
 =?utf-8?B?UzNTRnJ0ZlQwQy9wVlZKbXpXMEs2aWgrME0zMlI1YlNmYjhQU1ZRaUxqYkN1?=
 =?utf-8?B?dXlsckI0MGJGNjRMKzJTZHNIbUlRd2tRdzMvWGtpQzJXOFBQaDlockxOajk4?=
 =?utf-8?B?MDJGVmpmdWNkS29LU2M3RE5vKzhVcUV3NU5uSW94S3YxdGxSWHVhT1lLSTla?=
 =?utf-8?B?cit1ZVpabDVha2ZvUlIwNklYbW0zeWRTdUdpNjJJWkdLbnhNbnB2TzNLVFVR?=
 =?utf-8?B?aWhhMERweHdEQkdvSm44UDhWNHZiL3hNY1VlVkpaYVF6UjVlR1IyVVN2WU5u?=
 =?utf-8?B?bDhyS1Y0bnJYTnNPNGFlTzlLSzduenBIcnllbHlJQzhlTXZpQ3BwNmJSZ1Fm?=
 =?utf-8?B?SHpmNW5sVjd6WDZxQzNPdncrZ0VOcE9JWVY5aDIrVFA4SG1ncm9XYm5jQjdu?=
 =?utf-8?B?RHp0UUpaN3pESmMyQ0I5L3lkTFp5UHk4SFgwKzN3K1IrMEYySE9zSlJYMEdM?=
 =?utf-8?B?ay9ZWGMzZDgzdloyUDlRV0o5bExObXJZdkRnTWRxMTBFSzV2eTdoSnRjUGlt?=
 =?utf-8?B?L0EwbzZSalN6MVJQM2l6TGtEakRwZExwWnZwWS9hWFhMRDZkTlJjRTl5VlNS?=
 =?utf-8?B?V25Bamh0ajU3YTRwOFZyVG4vazFoeEdmYTlhUkpUYUp3WE9MeVpQOWhINk8r?=
 =?utf-8?B?c0wrOW90aHJYYWZIYVMyc3lSaWI1b2tlL1lJUkV5cE12WWhoamFlbU5LaWV6?=
 =?utf-8?B?c3J1SGEwbFBIUGpqTU9iR01FaXMxMFVhY1U1MHlMWW1ES1RmWnRFY1owc1Iw?=
 =?utf-8?B?NUh6U2MzV3ZsQU5Yak9FbFovb2pBdmhZNHVvaDlOYmluWTg1U3VCcU01Z0hR?=
 =?utf-8?B?MWdCRVdncUszQnQ4ZUMzRWpuWkxWVFpZL1pnTUNFTmU4NE51aFB1NlJGTFlt?=
 =?utf-8?B?QzFpc2F1Z3VjQTJhYnBvLzlFa0I2ekVFOWtpWFVya1dYQ09rOThCTzdhOHZw?=
 =?utf-8?Q?/5rRBT?=
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: <521DFA59B168C34BABE4B7A9A23C2641@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9000
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509FC.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	980aacd0-7a36-472d-3133-08de21bfb9f7
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024|35042699022|14060799003|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dUE2VVBnaVB0cW1rc2dnNy9vQ2hkZ0R2V3VDb1hWSG5KVnpPVzJaeWRtNDdS?=
 =?utf-8?B?NDdod1pjbUtFM3VQSVZuMklkTjhNMFQxNk1kM0VKOU5nZklJcXFtWUx5aHhr?=
 =?utf-8?B?YU1KekxJYTdIcUpxN1JIbXFuRWw1N2RiRGhVYmdkYVhUNXAzUUFGVUVEbkZw?=
 =?utf-8?B?ZWdpL1JBVnl5UGFpY2lTQjV1SDE4dmdzaXVjS3E1aWg0NEwwcDBKYWlPcTRL?=
 =?utf-8?B?TGR3cnQ1dU9yR2ZBTmRFcEI3N292ZFNUejBWZ05rOWxPS3haY0pSSVp4VWc4?=
 =?utf-8?B?NHBIcjgvU2tLYlFoYk1QRjc1VTRHSzNYY1JGQnUyNTMxb1h3UHdhdDRvbWZl?=
 =?utf-8?B?b3FYNC9ud1QrWVlGYU4zMGlxK0JTZU5zTmhwV1VRQkhlaHlncGVTTVMvVU4y?=
 =?utf-8?B?MkFwWkFzbTRvWkNhOW85c1pGNXRPcVpic25hUzhIbG5tbFVVVVNZZHhJOStR?=
 =?utf-8?B?cHdyMmJJeS9hQUxoVVp5c2pPbGFzTnpDbFNoU2xxK21aeUVvL3Q1VHRRbWNJ?=
 =?utf-8?B?emg4NzZXaVV5QzNWdzNGbWFxUHFORGVCQjM2R0h4KzlzeHVuMjlDSFlWTmt2?=
 =?utf-8?B?Y1BCWm1oVDBDTDliaGRiTDNpVVlET1BlMXBYZjJpZ3RsQjd2bzMzMWR1ZEh2?=
 =?utf-8?B?c0kxRkdkOS9iOEVodTdqQVhzWElNek5ya2UxU25PY0pEc1A2VEQzL0lwUElu?=
 =?utf-8?B?dE51c0E1Y0RQMmJSOHc4QndYVlU1SG1xVGV1Z2pQUU1mdnJHV3FMT2U0RGpU?=
 =?utf-8?B?Z1lZcHdrM0JONlRja2UwUllXZW0zbVhXUUh3Q0NhZGZyWnNTOXdnZlZpRi8r?=
 =?utf-8?B?UGM1Z3Y3ZmIyK1FQOFZnM2g1UVl0NU0wZGFjRGhtcDFDckVJeG5vM25GNFFt?=
 =?utf-8?B?SDdlUE1zUW5jVXBMdTVocEdDNTVQVGV4T29Pa2xoY0F0NVM3Y3JEaUtVUlhY?=
 =?utf-8?B?TytUTXEyZWh4Vm9hWWg3OS85Nk5tTTl1bW1RNVRrbWc3OGZZd2oxOXBXd3Vo?=
 =?utf-8?B?RlZONVhrZldiK280NG9Ma0VNS3dqWk8raFRLWU0zWnpVT2tSRGNjN3BIZEhQ?=
 =?utf-8?B?a3BhalZCdVdjODYvQlE3SGlFcWlEZ3VxSVczYkhGZU9RVGF0OTJnYk05WVB3?=
 =?utf-8?B?V1VpS01GZHpFVkpwWTVJR2JOYU9wVVFYc2hVb0hxTmZURTlIR0gwR0syVGhr?=
 =?utf-8?B?WXpCams5TVVGL1piSHMyRDVBelNCY1pHOCs4TzR0cHdBaitRR1JCZ1lZM002?=
 =?utf-8?B?SmF0cG4reUFNYWhadERHcmpFaTJDVE8xMXphTktrenZuWW90V050aFZzNUs5?=
 =?utf-8?B?RWhveExuYXM0K2wrZkx2T09OdkN3QzArZDIrMi9EcHFINkFkaDlUSjBFS2J0?=
 =?utf-8?B?aWoxRlVvVkNGL1MxNEJRNzVpWS9YWUN0U2FIRHdLa3BDa1dVV1k5REFZZm8y?=
 =?utf-8?B?bzBCTmc5aE94aVJDZk52ZTB6MXFORWJvaFIxcU5MeHJGV1pJcFNpemRaOWRj?=
 =?utf-8?B?eHUvU0Q0V1JzMGt2MEhaaXRUUUpNZ3ErZ2xKSmFBL29LcUJWOHJQZlFTZDBi?=
 =?utf-8?B?Uzg3UFJKcjRXNkt1dTFML3U3cjJSUFF1dGpSTGkxcFEvSlJKVWp3OUhQTHBq?=
 =?utf-8?B?RTFBOE9Bd3hrR2t1eDJWNmcxZVRzbmlpWkFOcEdmQ1I2UVppb3ZpKzFLK0p6?=
 =?utf-8?B?em9MbmpmZFJGNjhXMUIxcWxSa0RHZnV2Mk1vK09laFNGVXVybFZBVWRNS0hO?=
 =?utf-8?B?VWkwWGFzalNtWXBmT21DdDBZNEF5T1VaSUNoZHU4aXZoUDV3UVVqZlB0UHZO?=
 =?utf-8?B?b2FlYTMwQ1YvanVOejlmN2JOK1lmdE9JY21HMU11UDdMV29wWkJpZHk1MVYr?=
 =?utf-8?B?aXJUTWJlZG9LS0tiRUNNNHFQRzZwZTVzTUl2NDJiWExNUnJhendNbWsvczlQ?=
 =?utf-8?B?ZHBQUjhYd0xrL01WNy84YzRpb1IwUWR3VHdOaWVYU2dHaXR1RjJ0WVdHVVha?=
 =?utf-8?B?aFd5UFI5S0JieUR6Mm5NcmhSNU9JczU2bzBzS2RtckRjWHJQaHN3ZkFBOFhR?=
 =?utf-8?B?K1hDSVBLMWtvbDhocFYxd0hJdGJWMGlmTHFwd21iMWNwemNRT1NieCtlY3Zr?=
 =?utf-8?Q?Ru4M=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)(82310400026)(36860700013)(1800799024)(35042699022)(14060799003)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 07:48:02.8359
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c2a90795-286e-477b-ad20-08de21bfcf0d
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: AM8PR08MB5713

SGkgRG15dHJvLA0KDQo+IE9uIDEyIE5vdiAyMDI1LCBhdCAwNzowOCwgRG15dHJvIFByb2tvcGNo
dWsxIDxkbXl0cm9fcHJva29wY2h1azFAZXBhbS5jb20+IHdyb3RlOg0KPiANCj4gUmVtb3ZlIHRo
ZSByZWR1bmRhbnQgbG9jYWwgJ0RUQl9NQUdJQycgZGVmaW5pdGlvbiBhbmQgcmVwbGFjZSBpdHMg
dXNhZ2UNCj4gd2l0aCB0aGUgY2Fub25pY2FsICdGRFRfTUFHSUMnIGZyb20gJ2xpYmZkdCcuDQo+
IA0KPiBGaXhlczogNjZlZGViMmUzOTcyIChhcm06IGNvcHkgRFRCIGFwcGVuZGVkIHRvIHpJbWFn
ZSkNCj4gU2lnbmVkLW9mZi1ieTogRG15dHJvIFByb2tvcGNodWsgPGRteXRyb19wcm9rb3BjaHVr
MUBlcGFtLmNvbT4NCj4gLS0tDQoNCkxvb2tzIGdvb2QgdG8gbWUhDQoNClJldmlld2VkLWJ5OiBM
dWNhIEZhbmNlbGx1IDxsdWNhLmZhbmNlbGx1QGFybS5jb20+DQoNCndoaWxlIHRoZXJlIEkgbm90
aWNlZCB3ZSBoYXZlIERUQl9NQUdJQyB0aGF0IHNlZW1zIHRvIGJlIG5vdCB1c2VkIGluIHRoZSB0
b29sc3RhY2sNCnhlbi90b29scy9saWJzL2d1ZXN0L3hnX2RvbV9hcm16aW1hZ2Vsb2FkZXIuYy4N
Cg0KSSBkb27igJl0IHRoaW5rIHRoYXQgc2hvdWxkIGJlIGFkZHJlc3NlZCBpbiB0aGlzIHBhdGNo
LCBJIGp1c3Qgd2FudGVkIHRvIHJhaXNlIGF3YXJlbmVzcy4NCg0KQ2hlZXJzLA0KTHVjYQ0KDQoN
Cg==


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 08:15:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 08:15:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159554.1487854 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ60y-0006fJ-Hl; Wed, 12 Nov 2025 08:15:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159554.1487854; Wed, 12 Nov 2025 08:15:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ60y-0006fC-EG; Wed, 12 Nov 2025 08:15:40 +0000
Received: by outflank-mailman (input) for mailman id 1159554;
 Wed, 12 Nov 2025 08: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=StYb=5U=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vJ60w-0006f6-Tb
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 08:15:39 +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 c0795789-bf9f-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 09:15:30 +0100 (CET)
Received: from CH2PR14CA0004.namprd14.prod.outlook.com (2603:10b6:610:60::14)
 by IA1PR12MB8224.namprd12.prod.outlook.com (2603:10b6:208:3f9::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Wed, 12 Nov
 2025 08:15:26 +0000
Received: from CH1PEPF0000AD75.namprd04.prod.outlook.com
 (2603:10b6:610:60:cafe::d9) by CH2PR14CA0004.outlook.office365.com
 (2603:10b6:610:60::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.16 via Frontend Transport; Wed,
 12 Nov 2025 08:15:26 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH1PEPF0000AD75.mail.protection.outlook.com (10.167.244.54) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Wed, 12 Nov 2025 08:15:26 +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, 12 Nov
 2025 00:15:25 -0800
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, 12 Nov
 2025 02:15:25 -0600
Received: from [10.252.147.171] (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, 12 Nov 2025 00:15:24 -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: c0795789-bf9f-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tqZvjjanhvr1FTsKMgwYcr+cYGgsZOwVR4gWTxVxX0NHvbG5N5n4kV60bqxuQBiVCxZpP8rSkAic8uSv2tzmPvoVsf2RwyqNbmAAuTxKk5Jneap8HqC4M2z1+7hMSr/PyS1fdTtOWapUdQFtkKwuLN8l5GpbmGS/U7DXpQlmMm6ThhWmFgJr9fD+KZjQzOscQ6kUq/1txEoLpKRxUOZlD2tZm0hDDCW9MuHv//Gg0VJruORODPEF16QuiURtvpAd0net8mfsJ5V/++Sm0EdNzv7i3msjecGMG7CKfwXhKl0qxyBg6WreXkGbCFEwCNR/c5gYoi1S0tbTC7jYgSA9ng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yLnFpXyUB8/COLBPlJenNeNEFAicpjBvy8JZOhSkedg=;
 b=rUipHGZ/dX71TtTAvtSI1mZDPuvw91g3FYIPl1ByHUIN7ptV2b6IO5bIvovj+JcrniAd8I1nwa3JcfbCtC5iZAHmBxeVWvGLdvourAunAudWq2vd8+OVStlY7h0v+0YnK4ZYqE+5po25NnVscHRxP4jvwA+SiLNihVowFW+9xf9VlKX9rTl+saTr/gCQ2ri4iLDF3eh2pEAu39+O+qlTqTr9oOu7O8nRTeNtP37qm86x/n4HcbOqXnn2xu5WMDPdxvg6tQG2XUr/pH+z6lLS6ieNhdwpKMXgFOHggmJVhrmZo63cXq6gS1SWCecrt9eI2WdKS/GZZOdAIprqaq7EVg==
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=yLnFpXyUB8/COLBPlJenNeNEFAicpjBvy8JZOhSkedg=;
 b=iF8aUhfnbncQQ7aL0dAxkOl7Cu6Y4DCH6poccO5tNPUkduLPUT1bPDp1Sx2EV7NuzAI4xllZGIkAacxWq1/gt+wngNeCBCPIgFFGmgp9bYbqgiV4wDv7XkRzUZGtWrDmDf2rQBz+HFovhkwcA+1k+60DFcE5+hFiAADiUXrER3s=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <e91c18fe-37f0-4890-a8c0-96ec73470b88@amd.com>
Date: Wed, 12 Nov 2025 09:15:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: Use FDT_MAGIC from libfdt instead of local macro
To: Luca Fancellu <Luca.Fancellu@arm.com>, Dmytro Prokopchuk1
	<dmytro_prokopchuk1@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
	"Bertrand Marquis" <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
References: <464fb509cc7f66934689d9e2d3a77bf5fcd45c24.1762931200.git.dmytro_prokopchuk1@epam.com>
 <80431F4E-4512-478F-94B0-1CDDC5E8B6E7@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <80431F4E-4512-478F-94B0-1CDDC5E8B6E7@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD75:EE_|IA1PR12MB8224:EE_
X-MS-Office365-Filtering-Correlation-Id: dd931486-8c9d-454e-cc1e-08de21c3a2a0
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?T2hkd3lWMmNWamV1bzEvaFBEbmNHZENza0FUYXBsTCtmaEZjaHNJUVNySHlV?=
 =?utf-8?B?ZUtzOFhtVGJIZkY0TWNER3hTQkNDVXVYRno5SGxHZGptVWF6MkVmcWQvbUtl?=
 =?utf-8?B?MWNucjN3VU9rQTA3bmhFQi9QakNUaC9tc2hkZnpuTFJXd2cvajYzSDlOS0pZ?=
 =?utf-8?B?U21QTE93alp2WnJwUkFLcmdjaHdBbVVTUkNkMytMV2liTEtiR2E2UWpwRnFu?=
 =?utf-8?B?bkFjZ3pYcHJDTDNvU29DTUpQNVNZUG9haHpqWnpIbmpaVllqa1FuYmFpSHYr?=
 =?utf-8?B?enR3M3Q0THVyaUlZcGJWUldQaUdnVnVPOU0zK3ZTaUo4ZGRkNWIzSmtNemlT?=
 =?utf-8?B?dzZkdkFxaitMSExVTzl4bVhHL3dlTTgyNWloZnJnZmF2aFdiWGFTSVBhN1cx?=
 =?utf-8?B?STJrODNISDdVaXVtdjJvRG94a2FBTGk4elpIUXNtTzZwWW9EeWxYVUUyeTZx?=
 =?utf-8?B?eW9Gb0VMYXFCVUFjbk1MWGJmM2xkVHJReU93OVlRRS9XQ1Zob0FQcnNRN0hQ?=
 =?utf-8?B?UTI5Zml6L3dBeUoxQkxscFRxOHpyNHpRcmQvT3ZsR0M2UTlqMnBNUGlvZE92?=
 =?utf-8?B?bFh0U1Iza3RjQUlZU1dBZUFQTzk5VjA0REo2Vnh6ajhzTTJqb09qaEd4M2xn?=
 =?utf-8?B?alNsc3FGamtpUUcycUNEK1hvNnhJYkJualhtbTgyTStNTmNJYWRjQnQwY21j?=
 =?utf-8?B?b0VVVDk3WE9qV2cvQkFlZ25aVWtldGxxbU0xZHlZRjNKVmZKYmUyZnMvZ2tQ?=
 =?utf-8?B?cUJtVTRwWEhPS2t1MmJKQkducnIvckYybHQ1aVo4VDNNOGRLaVlRMXZTR016?=
 =?utf-8?B?d0RncUFNZUFLaStYeXAvVWplVmNVT3BxQ1JBQWFlQzVUa29VWFhpdTNEcHVV?=
 =?utf-8?B?aHlEOWkvbWF6a2RLT2hSWGoxNmpwSi81VEk3R1dWNnRuNnV0alltZENEN2NC?=
 =?utf-8?B?MEs2LzNxRWVaM3ZZM29jL1JsN0tINkp4RForRHExMWUvc0dQeWxRcHRJOTlE?=
 =?utf-8?B?K2xtdVFMZG1LaFNidGpZOTNmakYrUHpmVnF0WEFhMUQ5czBlZXpSODJsbm9C?=
 =?utf-8?B?N3gvcXJta2k4VHR3cVI2ZHF1a0xQcXV6SnNuS1FCVHh3NkRmMmUxMGhLcmFo?=
 =?utf-8?B?cE8zQ0RzRm4yazhjczNlNXErVWtXWnVKckFwMkppb0QyTzNPVHhLL0haUWZ3?=
 =?utf-8?B?cVV6YlZhY0JjdTZ3c05qTmRzZXUvVTJmdVRNai8rTXVJNUl0bWd6TGdqTlQ5?=
 =?utf-8?B?aFpYN0M3U25pRnpNTk5zb0RjaEtDdi9JNmJKay9tNjBONEJyWUJxdStJY29D?=
 =?utf-8?B?VENOaFVNaXU0ckk4L0Z0dWxkcE1VRHUzcWlLclI2UGV3cmZCb1JWVTNUSHZH?=
 =?utf-8?B?ZDNCci9kYysydlptcDRPblpSNDJjcjN1K2x4VlV2VTVYL0YwTTJDSjdOZldQ?=
 =?utf-8?B?UHJMTTY5ZlJ1Z3pvZmkzd24yZHBFVVJzN1hETE5yeTNkV2psWXVJL1UzRmhL?=
 =?utf-8?B?dkd6NDdxbjNJa1NMU21Qdmw1eXBCSmIwT2NTcGJpcnZmUlRzRmc5bEZCT0Nr?=
 =?utf-8?B?RVpucVFjcCsrWjcvcHZWYjU4RXl2RGlzdTREYURuZExlWThRb0lKY0VRcDlB?=
 =?utf-8?B?Z1J0MkhyOWkyZit3dHVuT05mQVVrTjJEWXhFUTAraVJHRXNVOS9mak53UUFp?=
 =?utf-8?B?bXkxZ0pXMmRZem5QbERhU0VDMWdPM1ZlWi9VMElqeGt6TDdScXBZZ1JRQ1dz?=
 =?utf-8?B?N0VnWmlualpJWjNpVjlzUjlWMGp0eklXSHluN284eDV1dGZzeDJjMVpScjhu?=
 =?utf-8?B?SmsvMTN0WTF1M1N4TEFRZCtVejNqNG1SeXl1aTh1azBYZVJocmhnWWxxWHBS?=
 =?utf-8?B?bThzTDJPdTdXOW91blJaYTNCUHd1NTlRakpIQ1BvMmNTZk1JdkZSeVpWd1lV?=
 =?utf-8?B?NkdzZFcrazZhbHo5M0dxUUZ0RFpBS3lWZUZXQ2tob0REVThGeTFpdWhnNzdF?=
 =?utf-8?B?QXFDc04xQkt0bkdYZEZoVUpSa011TzlsVy93TS9uNnQ0dWYrcm5OUnpzamJj?=
 =?utf-8?B?SFBzSTRPY3BEWmlCNnJRR3Vpc1IvUU12MGxRWkZBM0JFM3NZa3lEVklPWUtM?=
 =?utf-8?Q?HWMs=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 08:15:26.3411
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dd931486-8c9d-454e-cc1e-08de21c3a2a0
X-MS-Exchange-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:
	CH1PEPF0000AD75.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8224



On 12/11/2025 08:47, Luca Fancellu wrote:
> Hi Dmytro,
> 
>> On 12 Nov 2025, at 07:08, Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com> wrote:
>>
>> Remove the redundant local 'DTB_MAGIC' definition and replace its usage
>> with the canonical 'FDT_MAGIC' from 'libfdt'.
>>
>> Fixes: 66edeb2e3972 (arm: copy DTB appended to zImage)
NIT: Fixes is for bugs. Redundant macro is not a bug I believe.

~Michal

>> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
>> ---
> 
> Looks good to me!
> 
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
> 
> while there I noticed we have DTB_MAGIC that seems to be not used in the toolstack
> xen/tools/libs/guest/xg_dom_armzimageloader.c.
> 
> I donâ€™t think that should be addressed in this patch, I just wanted to raise awareness.
> 
> Cheers,
> Luca
> 
> 



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 08:27:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 08:27:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159571.1487884 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ6Cb-0000AQ-OC; Wed, 12 Nov 2025 08:27:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159571.1487884; Wed, 12 Nov 2025 08:27:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ6Cb-0000AI-LU; Wed, 12 Nov 2025 08:27:41 +0000
Received: by outflank-mailman (input) for mailman id 1159571;
 Wed, 12 Nov 2025 08:27: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=K5hw=5U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJ6Ca-0000A5-9p
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 08:27:40 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6dab258e-bfa1-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 09:27:30 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b72dc0c15abso102965666b.1
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 00:27: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
 a640c23a62f3a-b72bf312e51sm1527746566b.17.2025.11.12.00.27.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 12 Nov 2025 00:27: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: 6dab258e-bfa1-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762936049; x=1763540849; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ErIjk5sD3Fk+4HUkoRVoPmVJ/0fKHfi245lzKleiq6s=;
        b=H214hB3Or2YS9uU+kyIDh8DLl1Pkh0sh9VplLYdDL29/2D5aOYOH4fXVK4ttFKEIhi
         r0vuHg44pBSUn15pPeVkocyW0RhPujHJqCa29VBFIy63u/u9mfmcj6tLkUgP54eF4T5R
         efQlcte8kkqio/RLG7lCIaKm14ohtwVsODJ7sKvrf2bkgZPH3YMgoxwoVYRq9Xs7jBxN
         og0BJxdiW3ZQqcKb9u/xBsvWw3mCE75fy/razngB+fXdkGQq71xddIIyt01lq1RJdPR0
         kEKWQ6G557qK8jsddDnz5hh1n81ZHH+qt/iTQKTMN8QOx6oetQF16eq9EqDIgWXR631e
         bgug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762936049; x=1763540849;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ErIjk5sD3Fk+4HUkoRVoPmVJ/0fKHfi245lzKleiq6s=;
        b=wnKUsFCqWLTo/bsynKjXlHxpjo7y5VkjwN+QfgpbXQuPd1aj/pFu65uRRxFjJR7wCB
         xDeKN9pTh8s8uWct54Tidn4jLUIw37qZBzYDvNyj8r7dn09ksS+1zvffRUTyzlTech8n
         kLNFFc8x3Vjx3fChO5n/emLQ4Wvx0lRPA5l8+i1uWEUYOESkmqZhpg+4+0bykgkVDytj
         Bt0NJNKWwgsUZzzdyXXPqNRd4MddIhM6Eqn0DHWYeZRqZE1KkhWNuEg+7acJbZR/dT9b
         OU6a94V4AaLqTAXiJq9cSkoNrH1RCGZrcGOpZSvZRVAIMxdzDxAVkZVjH7TltGVppuUQ
         qmzQ==
X-Gm-Message-State: AOJu0Ywab+7LFIVxBKb/Bou0OJoekrpacj4GHZkyiZFy72T6VdnJbov7
	R4xyYaRmHGO5VWjGt7G/1OQXK0YoqfU6XCYFpeVAOtjsebujVdEbYrK5A7YfJTLlRw==
X-Gm-Gg: ASbGncuc+6gVHZY6pwrvSNN6nlKULI7mVwr/kTaU0OEVd/E1NT2KZUyR5+OSPPadPjY
	qg+c3m4Jt01exl3eGjIY5yDsn2i/DTponwOE8E+PUoI8wjRXe3mN/LBfZc7ypU0hfgnI7VCjPoC
	qJ7V9FH4XItqrjLPGr9XQOB2i/AYosdi0ZRQ7oc+zrXnUT0SOQglTumV2NmyBsWHo54wsY5168Q
	np8gOV5tcGy9u9h5nFI2LLZcyzjoqU3BpUUPIeP+Fr1Gkqitc6SLmgGgiKlvD5QJbca1Ob0dzG1
	ezdzsPq1jAd/WxIl9mXdh9ldH2n2Aw5tDXDNngo3CcgBBN9eS13K2aX4vV3/xUixMrZHNiu2b8U
	K6g4naVRSZFuVaaAxnpFAuPW3ltoNQEfSuZyYduu7/S1bAZvxPd3tEtuS/C6LK7ZMJ3kflzhaeT
	ag2iXwnMZ+gUGqPKZ4eUim2mFVZu3zQut69PpcLxQ4zQSNP5XlQOto4HGTFv82hFh8
X-Google-Smtp-Source: AGHT+IE+DHPujMiPERj3Dercvc335FYDylK9IBqSoL7oX245m+YdZxxDWH8T4NzSoHEL/kDXLCAn1Q==
X-Received: by 2002:a17:907:3f0b:b0:b73:2df0:9fa9 with SMTP id a640c23a62f3a-b7331aec6fcmr185215866b.59.1762936049392;
        Wed, 12 Nov 2025 00:27:29 -0800 (PST)
Message-ID: <105ce473-93e9-4ccb-9cb9-938cd5fd3f29@suse.com>
Date: Wed, 12 Nov 2025 09:27:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: Use FDT_MAGIC from libfdt instead of local macro
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Luca Fancellu <Luca.Fancellu@arm.com>
References: <464fb509cc7f66934689d9e2d3a77bf5fcd45c24.1762931200.git.dmytro_prokopchuk1@epam.com>
 <80431F4E-4512-478F-94B0-1CDDC5E8B6E7@arm.com>
 <e91c18fe-37f0-4890-a8c0-96ec73470b88@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: <e91c18fe-37f0-4890-a8c0-96ec73470b88@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.11.2025 09:15, Orzel, Michal wrote:
> On 12/11/2025 08:47, Luca Fancellu wrote:
>>> On 12 Nov 2025, at 07:08, Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com> wrote:
>>>
>>> Remove the redundant local 'DTB_MAGIC' definition and replace its usage
>>> with the canonical 'FDT_MAGIC' from 'libfdt'.
>>>
>>> Fixes: 66edeb2e3972 (arm: copy DTB appended to zImage)
> NIT: Fixes is for bugs. Redundant macro is not a bug I believe.

Maybe use the relatively new Amends: here instead?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 08:31:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 08:31:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159584.1487899 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ6G3-0001kZ-Bq; Wed, 12 Nov 2025 08:31:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159584.1487899; Wed, 12 Nov 2025 08: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 1vJ6G3-0001kS-6E; Wed, 12 Nov 2025 08:31:15 +0000
Received: by outflank-mailman (input) for mailman id 1159584;
 Wed, 12 Nov 2025 08:31: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=21S/=5U=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1vJ6G2-0001kM-Gx
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 08:31:14 +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 f2be3599-bfa1-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 09:31:13 +0100 (CET)
Received: from DU6P191CA0027.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:53f::27)
 by PAXPR08MB6686.eurprd08.prod.outlook.com (2603:10a6:102:13e::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Wed, 12 Nov
 2025 08:31:10 +0000
Received: from DU6PEPF00009528.eurprd02.prod.outlook.com
 (2603:10a6:10:53f:cafe::4f) by DU6P191CA0027.outlook.office365.com
 (2603:10a6:10:53f::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.15 via Frontend Transport; Wed,
 12 Nov 2025 08:31:10 +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.9320.13 via
 Frontend Transport; Wed, 12 Nov 2025 08:31:09 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by AM0PR08MB11703.eurprd08.prod.outlook.com (2603:10a6:20b:743::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Wed, 12 Nov
 2025 08:30:38 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc%5]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025
 08:30:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f2be3599-bfa1-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=bpF+eKUeqjT9AHeADAo7m674hwZdv9/3BOEjX/K0DpoJsZuUv+QzI8M4/bzfg4/uj9Qq1zabEgmcZwljWwlmJR21+lOGA69zj836IGcfwdi6k9KPWnwATCjWQTaKqdf3t41sMJQM2ELycBxLjHL4INwVawfbyjG3p+OoVlzQcKc0LSZoDuxl2BZCQrK9BzBqVAp95ryxzJkStTkjsHQGQxOK/8in/7328vaKGe+3XOP6F0bz+U85i1M7LU/NgEMqnWTYYfB0RCpseBuxfU1M4G09XtgB24CTD8qqUMG46phs4efmotDp/Wx2+IeZ7Fj5UrMbFnQ2kVJPsEkTC9Hx4A==
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=A/rSRZyPrz26OL8ssugMf6l3FFTzeAKS/w/k9327CUA=;
 b=t1utpVmT3lKTT/Vpn1s6R/EXV1fJEWbcyI8wdQ280448TT7qM9I5ept/a0LZ95Qm9Kog+i39UJxPy6PmpLvEy4OQMdveZsboLJD89YZD/O9LUpIPRioLp86a+OcwbmrskIJiy+wNCJOIc2x1cYJt5TAo4BQwsaEXNt+nvyXq62n/uYQncqeBlgE5GkPl72IvdpH6W/JN6rBf/Ezt4mla+4bbgNGZb3Tlb9PP6Zqu8Ouvom+YBKtvgT9kaRfuNgZFOyEKCjTdDGf7wsohC6Rl83+RYEtFK61WgqUPyuz6XiUngtNnI9QimiLCyK+XkVowBQXvTnuKUzuMSa7NKwykyw==
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=A/rSRZyPrz26OL8ssugMf6l3FFTzeAKS/w/k9327CUA=;
 b=DEt+/d/MRlC3hNoEfm3QDY4CBEj3wPa3vCILnqpYTiQVYV4kwJvsNln/pXwfG5TWKPe+gpP6+5Vorl/REbLir8HtZEmAE1Q15pyHUSEnZ5yG8UGB/JTdKY2wR1kP7HGKi/qpxFhST2pBQGX06Hl++A+GgXDPVUVGwaJo2DJ9dRs=
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=NNlckOIblKdaV+qJpn1BG6kKP9up/8IywTRtw5YC6wb4N8CwaMK/K/s6+pGc6uGcj0biFy121whVXH5LjwJUKPs8II+pD2qgWbtdT3rNnS/3CIo6arF9QzRdtE+icFZFLj2RNfDzyhwaKgf+jxVHTBUZSLR4drNSIf2P1FJwsn0JOmeUgJAJ9iitemyepTkMpuUoYysQsFJsoXYtnYhm57vCso1Th6BpBAPEMTe42hQWSmcLr4EgsefuFxp4FwxOSuRcJIIb7V9NO7Tm2CS1ihGsRx/PxYhmi9yrI1MEk0NBZZYOtSIhFuML25tDDCaRmiTAzA/FUD2dm3qilw6cPA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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/rSRZyPrz26OL8ssugMf6l3FFTzeAKS/w/k9327CUA=;
 b=nan2fL3EQZeuzGiGWBgmE6CsWl0hJbg2Db0+YDdVI52ZKScqWzBxsU0B2cRYwlif8+iOy3/VIxd/BKTawf51jYo+UyFT9l3YiDzHU34FUuJA+9OH2FCKiVaw9f4wh6qa2wun0iVJtSZzVax0Ix2s1cmZ83ITeaFCVjq4h6mFQxkPO6J6W4STbH1z4sTIHsyrdbiUJUV1smHr8Fh/M/Bv42mw+4ULkvjiB+snH2sSeikDg2G2ODW8SK0oerYINebmIbP7qoQpnmXRNMlI7bqfzVW2BGqbCXtJcRS1AgphU97/Nr/FpGQI7EVyzWaDMomlB/7PWZmPip+Wan1L1P4RMg==
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=A/rSRZyPrz26OL8ssugMf6l3FFTzeAKS/w/k9327CUA=;
 b=DEt+/d/MRlC3hNoEfm3QDY4CBEj3wPa3vCILnqpYTiQVYV4kwJvsNln/pXwfG5TWKPe+gpP6+5Vorl/REbLir8HtZEmAE1Q15pyHUSEnZ5yG8UGB/JTdKY2wR1kP7HGKi/qpxFhST2pBQGX06Hl++A+GgXDPVUVGwaJo2DJ9dRs=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v2] arm/xen: zero init memory region before returning to
 the heap
Thread-Topic: [PATCH v2] arm/xen: zero init memory region before returning to
 the heap
Thread-Index: AQHcSn+3Bvk2A/mifU6ZI0j7ZDmNtLTuyBqA
Date: Wed, 12 Nov 2025 08:30:37 +0000
Message-ID: <5DCD0584-BFC8-41EA-84B2-B87A66BFB0BF@arm.com>
References:
 <c2a15402f87de85c2733362ef3ebc3ffe55b231f.1761926280.git.dmytro_prokopchuk1@epam.com>
In-Reply-To:
 <c2a15402f87de85c2733362ef3ebc3ffe55b231f.1761926280.git.dmytro_prokopchuk1@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|AM0PR08MB11703:EE_|DU6PEPF00009528:EE_|PAXPR08MB6686:EE_
X-MS-Office365-Filtering-Correlation-Id: 979be9cc-5b02-408f-8abd-08de21c5d511
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?SjZrdE9LVzk1L3Zwb0p3V2hvYUdWOTJVOXFqL0VCTi9BenFDV3d1MEZlSlBr?=
 =?utf-8?B?Zmt2cWxvTGV3aXIrSTUwbHg5UzkrOUtIVzd1TmV2NTJnR3NEdHJ2Y2x0SEZQ?=
 =?utf-8?B?OVpkczBkU0QrTnE3WVZTNHRmQldaVXFWV2dCaUV3WlhMb3h6SmlwSWlwcVEy?=
 =?utf-8?B?L2JRaHZSMWFUa1VuanJ5YkV4Ynl2RlVkVFJLSCsxK1pUZmNuY3BPMklKZkpQ?=
 =?utf-8?B?emJLa1NoR0toKzZZY2VUeSs5QUVSS1NhMU51RFhhZklHYlZVWU9oazJsV1pR?=
 =?utf-8?B?RFdCem11ODZBeFB6L2FWZVB6MmJycmM0dExBL3ZPS0t5TDdraVQvbXN5NVYw?=
 =?utf-8?B?aGQwS3BXUi9QVnUwWDBZZE52UE9RV2N1T2R0S0NYQytDeTBTWllLQUJoNVJu?=
 =?utf-8?B?cndtTUcybFhOYWNpeFJ4Q2VxNUh5b3pYZWVJUTJVMitXcFBmWlZUTVpNUVhq?=
 =?utf-8?B?MjdzUzM4eXIzTU9tRVJTN3ZRRVNXRUdhSkc1MjZuWDIwWFlpUm5sWXdCMWhY?=
 =?utf-8?B?azNmVkZIUmxNTEdiN2VwbGl1OEg5MjdzUFVJbEorU0I5aExHTmY2OEdCNVR6?=
 =?utf-8?B?bFhkSm1iQ2ZHYklIZ1NkOU9zRi94WmZvcXBuM1REVDFhZ0dXbTJ5ZnAySElZ?=
 =?utf-8?B?dVRGa1Jmb1hlWlpZbXpvQnRXQmU2a0orUmxGMTE4VWNTaEE1REdvSXBYMHRz?=
 =?utf-8?B?czF6ZkNxb2RKa2NiV21yZFVpaXpnK1NsalFDRE02eG41bjg4VlZRNmprR1dT?=
 =?utf-8?B?VDhnQzkyWHd3c05LWGlnaVcyVTFLU3ZqeUlWZDJhSnBmNkIrUENwSGlQekgv?=
 =?utf-8?B?VFkzQ2x5bTVGVzBxVldUNTFyYU5wemlmVjMzR3BsQW12OFBLaFdxcTNWTW80?=
 =?utf-8?B?cGovMC9EbkZIVnJsSnhwWGQxN1poUHpUQ2FlTERjM3F2cjV6am1HajdvS2Ew?=
 =?utf-8?B?WFpsTFl4Y2RGcHNXcTNnWDNBMGliU000bk5LM3JuU1Noc2RzZ2JqRWl3MEox?=
 =?utf-8?B?dDU0eDJzMUdsblJOVnRXeVcrcnB3aTRCQUJMNDJyMnZrcWlkMHJHY0x5TkZw?=
 =?utf-8?B?SzkvZXFNTGkzdUNidmF5WmRSY3dKQXRDakMyZDFtbzhJajZQd2M4VzhLQnpH?=
 =?utf-8?B?eUt5YUpFUkQyckNXR3ViYzh3V0R6K2FSMW9JM1dmLzc0K1prajcvNXZsV0R5?=
 =?utf-8?B?dGI1alVSMkRwWEVUcHZnVzNFZ0tTWHRKVW1RQkI4ak9EbElLbG90RXhSb0lT?=
 =?utf-8?B?dDY1dnFPL3dQRWJWbXhmTGVkei9lZFJ5Q1FLclVwMDNtUE8yb3psdDVtVzBV?=
 =?utf-8?B?MnVGL0JTcFl5SjZCWDRSamxidDBrOFFNTDR6ZlN2MHhlVktuMlVMWXprblVx?=
 =?utf-8?B?b3I2cnJSOXYxbzE2V0dMbVBBM01BV2Fmc05jZGdrT3NNMDdabGRhZlVtRTdF?=
 =?utf-8?B?ZXlEeGhYSjJ6ZDBZMEwza3p1K1dGK3h2a1h4RjJDTmRPUFRKaCtPTFBSQktK?=
 =?utf-8?B?YU1sdWJOd2ZiMVJTMlNsdEVCZ3hZaitJeU84bmNQVFFBc0NHUFhXZE01eUU0?=
 =?utf-8?B?bTdiZFdmYklFU2x6Qk9WNGdGdHQ3UjFSUjBtM1BIZVg3NnJ5bllXeGNDT1JZ?=
 =?utf-8?B?WUgrMVZZQkhLanF4VEJGZ2NjNkQrR2RkV084NU9KbFFDMkVqUDZveUY2eW01?=
 =?utf-8?B?OU5yR3FTY2F6Wlg1Qi9SN1VRK2lKM2JnbnZPMVUvcWE5bnl2RXRKMytSRGNi?=
 =?utf-8?B?L2kyWVdBc25ONU1RdW5MVE5QK3VWZk5vRE5yZHpuTHYybUVReGZ0emc3NUZY?=
 =?utf-8?B?NVdlMHJZcHl2bkJUOGZsSkJoc2FiekV6TmVxMUMrTmJyOTBSRllHcXJnUTFp?=
 =?utf-8?B?Q3lQK2dsSDMwSXhsSnFLSzdXcVVZeFRLYTVBYk4rME5CMGp2dGYyQ1lzZG1o?=
 =?utf-8?B?c3NWKzJOWGRBbXFseFJSQ2laNXMySXJia2pWU3JuS3dXUUtFVEV1UksyOGN0?=
 =?utf-8?B?dW0ydEpTK0R2dVZlamdpbzljZjVIME8vcXNzcVJON2pxOEFXNksrTmt0c3Np?=
 =?utf-8?Q?DVKtA3?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <950054021BE0124EB553E82551EE177B@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB11703
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF00009528.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	50cc5064-1bf9-4e18-d373-08de21c5c1d1
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|14060799003|376014|36860700013|1800799024|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?akV4bnVza0J6bFlnb2orQVhFMUZ1T1RzUmVvZGlKWU9zd1pMcXNsaUM4N3lI?=
 =?utf-8?B?TDdtWkRWYWpJT2MxcnkyckNxN3ZWZkZ3UzNLdDhSdTR0NGVkemVlcnlqVUNL?=
 =?utf-8?B?Vzc0UnVqelBEUTFjNENzRFlSRnJYMmJUbVgxdkU1V2taa0k4YlRqMEpVTnhh?=
 =?utf-8?B?Q1BTZTZyT21GaE9SM1R5VGlYaVZ4WTRUeElkZlR0ZzFhRHNtZHo0czNmdDBx?=
 =?utf-8?B?T1pnSzF6WHpIWk9IK1Q0RDFpcmptMlYvZTBhMlN3MTNTZWJXZW1vTCtsbnlO?=
 =?utf-8?B?bm00VmV0eGZCUldDOWk5M1RwM0lBVjBTSzZzU2ZvK3h1Rng2Mk1rL1d4a2VK?=
 =?utf-8?B?dW5RRTdjeFIxTTdqbUdQREUybUVOaXl1eFBBWlovdW16RFhxenlsWVJFejhO?=
 =?utf-8?B?cmZPSndUYmVyVkZnMTZOZllXMGlkMVRBTHUvNWdHY0lDL0h1a0k3MTlYakdr?=
 =?utf-8?B?WC9UdG5XK2dBdEJtTExpZFoyNWkrUVdpbGNpOGNxYlJ6eHBPSWVMRUQvNXVu?=
 =?utf-8?B?QzZsUDRlK3l6SERkbHFjVFZIQllZN2pRcVNOc2cxdDFPSUlQc0tuMlRRdlNn?=
 =?utf-8?B?M0x5Nm1ISjBCNUN0VEF2OHUwWmE0THdIaVhWK0RWd0IrTUxSVzQxRVpBbUlu?=
 =?utf-8?B?RDVseThzaFlLbDMvSzh5NXM4MFh2RU9BbU5YTHltNFkwbWw5R2QvRmNLTURS?=
 =?utf-8?B?R2w3Sk9UUiszRDdxUVJEdUJ1cUpvUHVIRWFyK0cvT2JXdklHYkxucUtZa3ZP?=
 =?utf-8?B?bDc0UEdpajd4NWE3MXo4N3gwZWdZTSt1cDl0Umk2d1pQam53eDByY3FKZE94?=
 =?utf-8?B?SHk4YVJvMlVReVdEcHZkM2FVRmJIWDhmVTVtdFV2RTFacGFUKzFXdVZaL0R2?=
 =?utf-8?B?ZWtQZ0FGMEdJb211QjFmaFZZSkhKUjdrczVnOXJpY1NQbmFmUnhZV2QwSmtS?=
 =?utf-8?B?RzJZMWg4VjhwRUowUExELzNzRFV6R3hieVdQWmwwOWFJSnl2bHBLNzc2dzJZ?=
 =?utf-8?B?REM5N09DQjFwOVlSRzdzOUt5djNZNE1rc01JQXJJSC9qaDdtMXltRnpWRWYx?=
 =?utf-8?B?eGpVT1pFRTlrZWo5MjRoUUg3MlNkM2xORjVkRkVqSGpHZUlvRGNPYW5UOEw1?=
 =?utf-8?B?c01GTVBab3czNEp5WVFMRlFJVjFmWWVzcFBrSERhZFBRaVg4RU1FL3VUeDd2?=
 =?utf-8?B?WE00NWpvQzFRNkYvcjdyVXNjV0pMWnpkMzRvVnpEQm1ONlNFN2Jra3ZwV0t3?=
 =?utf-8?B?UFFEdnFZUDUzT29pSXBvd1V4RUtJdlZvc2VTazB6SjRyOHhPdTYxbEtzWmFk?=
 =?utf-8?B?cUlXUFltN3lkaXFSTmZQY0wwczJTNU1NMTdPWEdWc1hmVWdVL25rRmNDUHRC?=
 =?utf-8?B?Y3lNdWdzbXZ1SUVwWU5Ebjl4MjQ1UzhhakdRaGxOdlcrSjZmcWkwTHBpZ3RT?=
 =?utf-8?B?OGxsUHFnWlRTZTJsbnZpb09QQlRPSXB5bXh6UHNIME9SUE0zNEV4K0RqZm8w?=
 =?utf-8?B?N3ZXMnhZUzdhLzUrcTBJeG1WK283dWttY0NjWXdKT2JqRlpOK082TmFvdWYx?=
 =?utf-8?B?aWFMK1JsZFJvNVdMS2ZIMTd3dngvckw3WmRyL3gxZnh1RFZTZkhmRU4yWWxp?=
 =?utf-8?B?c21ld1BIVmJTejF5blp2TUphMmJ4NGtZOXlTcHk0VVNNNDU3Rk9pazNPdE5T?=
 =?utf-8?B?bjdpWEpUQ2RzZWZGRXZUQUh6QzVhWVl6aVdqT2hjbCtyeWxDTTlvS1JWTTQ4?=
 =?utf-8?B?emE2d2lZSE1TRFJpelVrT3U1L3hoUjdjRmRWUjdzZFBUYUZoWmQreXdjNDRR?=
 =?utf-8?B?QnY5aGl3c21lRm13cklnNmpUdk1WRFV1R0taTnBDMUN5a2szT1ByakZmVDhV?=
 =?utf-8?B?SmMyL2NXQStibjc5ZlpNVW1Idmd6L2FQZW5yTUdQejFwWU42aVBGc2hBVk9y?=
 =?utf-8?B?aFNhVDVBTE9OQndqbHhZem5BK0x5aXRGVmJWMFc3dTB0MDNVU2ZISkRHZ1Vk?=
 =?utf-8?B?UnVIajF0M2U1LysvMzBTMkN2N1o4bFJFZFJ4SWFmQXZQSWV5YXU0eWFXdDJD?=
 =?utf-8?B?Wms1WUplZ1Y0RlNMUk8vM0NlZHNObS9QeE1LRFJiNEllamUvc2JXVjdwS09Q?=
 =?utf-8?Q?ePYg=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)(14060799003)(376014)(36860700013)(1800799024)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 08:31:09.9179
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 979be9cc-5b02-408f-8abd-08de21c5d511
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: PAXPR08MB6686

SGkgRG15dHJvLA0KDQo+IE9uIDMxIE9jdCAyMDI1LCBhdCAxNjowMiwgRG15dHJvIFByb2tvcGNo
dWsxIDxkbXl0cm9fcHJva29wY2h1azFAZXBhbS5jb20+IHdyb3RlOg0KPiANCj4gVGhlIGN1cnJl
bnQgaW1wbGVtZW50YXRpb24gb2YgJ2ZyZWVfaW5pdF9tZW1vcnkoKScgZmlsbHMgdGhlIGZyZWVk
ICdfX2luaXQnDQo+IGFuZCAnX19pbml0ZGF0YScgbWVtb3J5IHJlZ2lvbnMgd2l0aCBhIGZhdWx0
aW5nIGluc3RydWN0aW9uIGJlZm9yZSB1bm1hcHBpbmcNCj4gYW5kIHJldHVybmluZyB0aGVtIHRv
IHRoZSBoZWFwLiBIb3dldmVyLCBhZnRlciB1bm1hcHBpbmcsIGFueSBhY2Nlc3MgdG8gdGhpcw0K
PiByZWdpb24gd2lsbCByZXN1bHQgaW4gYSBwYWdlIGZhdWx0LCBtYWtpbmcgdGhlIGluc3RydWN0
aW9uIGZpbGwgcmVkdW5kYW50Lg0KPiANCj4gUmVwbGFjZSB0aGUgaW5zdHJ1Y3Rpb24gZmlsbCB3
aXRoIGEgY2FsbCB0byAnbWVtc2V0KCknLCB6ZXJvaW5nIHRoZSBlbnRpcmUNCj4gcmVnaW9uIGJl
Zm9yZSBpdCBpcyB1bm1hcHBlZCBhbmQgcmV0dXJuZWQgdG8gdGhlIGFsbG9jYXRvci4NCj4gDQo+
IEFkZGl0aW9uYWxseSwgdGhpcyBjaGFuZ2UgcmVzb2x2ZXMgYSB2aW9sYXRpb24gb2YgTUlTUkEg
QzoyMDEyIFJ1bGUgMTEuMw0KPiAoY2FzdCBiZXR3ZWVuIHBvaW50ZXIgdG8gb2JqZWN0IHR5cGUg
YW5kIHBvaW50ZXIgdG8gYSBkaWZmZXJlbnQgb2JqZWN0IHR5cGUpLA0KPiBjYXVzZWQgYnkgcGVy
Zm9ybWluZyBhIGNhc3QgZnJvbSBhICdjaGFyIConIHRvIGEgJ3VpbnQzMl90IConIHBvaW50ZXIg
dG8NCj4gd3JpdGUgaW5zdHJ1Y3Rpb25zIGRpcmVjdGx5IGludG8gbWVtb3J5LCB3aGljaCBpcyBu
b3QgY29tcGxpYW50IHdpdGggTUlTUkENCj4gZ3VpZGVsaW5lcy4NCj4gDQo+IE5vIGZ1bmN0aW9u
YWwgY2hhbmdlcy4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IERteXRybyBQcm9rb3BjaHVrIDxkbXl0
cm9fcHJva29wY2h1azFAZXBhbS5jb20+DQo+IEFja2VkLWJ5OiBKdWxpZW4gR3JhbGwgPGpncmFs
bEBhbWF6b24uY29tPg0KPiAtLS0NCg0KTG9va3MgZ29vZCB0byBtZSwgSeKAmXZlIGFsc28gdGVz
dGVkIG9uIEFybTY0IGFuZCBBcm0zMiBxZW11Lg0KDQpSZXZpZXdlZC1ieTogTHVjYSBGYW5jZWxs
dSA8bHVjYS5mYW5jZWxsdUBhcm0uY29tPg0KVGVzdGVkLWJ5OiBMdWNhIEZhbmNlbGx1IDxsdWNh
LmZhbmNlbGx1QGFybS5jb20+DQoNCkNoZWVycywNCkx1Y2ENCg0K


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 08:58:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 08:58:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159600.1487912 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ6gc-0005C6-GM; Wed, 12 Nov 2025 08:58:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159600.1487912; Wed, 12 Nov 2025 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 1vJ6gc-0005Bz-DE; Wed, 12 Nov 2025 08:58:42 +0000
Received: by outflank-mailman (input) for mailman id 1159600;
 Wed, 12 Nov 2025 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=skpP=5U=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vJ6gb-0005Bt-F2
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 08:58:41 +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 c4700c4b-bfa5-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 09:58:34 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 CH3PR12MB9099.namprd12.prod.outlook.com (2603:10b6:610:1a5::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Wed, 12 Nov
 2025 08:58:30 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%3]) with mapi id 15.20.9298.015; Wed, 12 Nov 2025
 08:58: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: c4700c4b-bfa5-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=D3KwcBbeXcXlkHAHdF2vIWpmR1EFjKVqPmj13sv9rwUKCD2S2HmLAdkSMWwzzho84ZsUGWDTaJMy236Fpby55YLcTgDu7e204Hdq/42GAhzApoNxqUAjs2/vFT32HPZK67ZYW0lTyURXsav1KXn4VMN2vmI/5ZHHdDUKtno5IjmiiYtIEAP4n8ign7zsyIWGOMEXo+jAE/CnKimlK4jKgxIbkN31QMmd+C7nciHyr9z0SnVsBFEKCEjFm6t69OGFBwM+B2Z8LZBgVNe1OMr8Sc5+qoc2YmV9loUApx+LRp1AuvtB0aWVex055+SwwphLSYFKUGLsGMTgziD4e+/J6Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TM8/v1CzzK3nXKTbFWzQamZBiKvsRN+R/eiFMR1Z91Q=;
 b=uifBiWN8169Cz71O4HM7TlmSr9ITSzaTgt+XkwLI7qZ1z8KQd/zCHdF4zHI/19nkoLkS05UoR9VDy1yl8FS0p095hr8VGhY7+AhkKzs/padC7ly2eKTHgfWnfqpBe2OsfxSS05ayn71NJg2ZwLWp2C2lFsdwiEPnJiISqAsrF8PHudvwZzyv4RksovGxfATCO3gR4AY9766FZHqHboAmuhp8RRW/haPtDsaBhMpGEOLdOxjtTFexWHe5YxFJzWCkYjXoXZsPz1znnuag91cOo525rv02SikLjitD+rJibLkm/QMJq/PvlxBvcXsz00QOkJdD8UGgrXHD2sRWQF9rdg==
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=TM8/v1CzzK3nXKTbFWzQamZBiKvsRN+R/eiFMR1Z91Q=;
 b=qyw9XaIjiCKTvqPQWUweebKywe1xEF2aaTxsilQ/Zk79FW7hsx38hYgXxMj/79LdRpBU7nnKf0O39hpNTwGRC9U6p2k3W2wpNKZ6dJT7h8EFc2l51uiDTTdDyxOhBgB0KObj4g80JWQouMwmybwD0V/dtqjib2S83OJzCV1OtbM=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "oleksii.kurochko@gmail.com"
	<oleksii.kurochko@gmail.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	"Orzel, Michal" <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>, Shawn Anastasio
	<sanastasio@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, Connor
 Davis <connojdavis@gmail.com>, Tamas K Lengyel <tamas@tklengyel.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v3 15/28] xen/domctl: wrap domain_kill() with
 CONFIG_MGMT_HYPERCALLS
Thread-Topic: [PATCH v3 15/28] xen/domctl: wrap domain_kill() with
 CONFIG_MGMT_HYPERCALLS
Thread-Index: AQHcPCqOfEVt2Jk05kOchIzPOp9r0LTavU6AgBQtWvA=
Date: Wed, 12 Nov 2025 08:58:29 +0000
Message-ID:
 <DM4PR12MB845189415FBE1E8C250C81D2E1CCA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251013101540.3502842-1-Penny.Zheng@amd.com>
 <20251013101540.3502842-16-Penny.Zheng@amd.com>
 <8c74774a-458b-4918-8d65-fcb3eacfe98b@suse.com>
In-Reply-To: <8c74774a-458b-4918-8d65-fcb3eacfe98b@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-11-12T08:58:18.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|CH3PR12MB9099:EE_
x-ms-office365-filtering-correlation-id: 7d5ff605-7564-4bca-1b62-08de21c9a67f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|366016|7416014|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?ZlpyYXhVS081R2FGN2NlbjFKbTlScjJTWDYvUnl5VWlmSUJaNXRBdEdDbTlC?=
 =?utf-8?B?TXNnRkI0UGJPU3dQK2g0YTZXUWgwRXNDUU13T1o3bWpoR0d4aGRjN3pLL3lt?=
 =?utf-8?B?aXZISStqampHRFE4WTJDVDJkbXVldkpnYTduTFB4T2R5Q0hSdWZLQjNLbUZo?=
 =?utf-8?B?cjRpOXRVWU1CS3N5SForSnR3VzBQKzNWdkFyOThKVHAvSk5mTzdLQjZnU0VZ?=
 =?utf-8?B?UHNSTmhHWGVkWW1WaFFxUmNYTXVIdHVmMzJCa3hxN3Uvd3gvWWVsR3QxQ1Ew?=
 =?utf-8?B?YTZsUHB1SSs5REtvRFZkeGp3RDVYeTNlRWtCRXh4Y2RnL201NGFIL2Q3TXdz?=
 =?utf-8?B?dVE0TFlka0txWGNJb00vMXVOT1VPUDZ2RXJOb3hhM0pIYlh3L1N2OHYwTVFs?=
 =?utf-8?B?WTVzaGdsaUZseEU0NjdlNkw4bWovRkhGQXpuSGEvNGJLa1hyYmhmdWlPNWR4?=
 =?utf-8?B?SGFvMjRPNzFpeXFkSktNOFp6aFZFdjF4elRxUVhIS0F4YUluQTNXUDhDYkRq?=
 =?utf-8?B?VXpjRGpINmh2clBteERIK0tUYi9CKy81b2N3VVhEM3dSRWVJR3RrYkxpdURO?=
 =?utf-8?B?TXJad0VzbDR1bFc4a2tJb3RRbHF2MjdncEhsajJyY3U3NStaTHlORVpqWlVT?=
 =?utf-8?B?eUJEWXFibGVXOFU4emNtRkdnaU1CWTFJZDNaY00walVyWGJuV2w5aExaNWNC?=
 =?utf-8?B?akpYN0llenFvOGY3MitNNVphZUt3VStjZ0ZhM0xNTFNHSUN4K2JKaEhJRk9O?=
 =?utf-8?B?bjJ1ZGNGZzI4ZTE2MFc0L2RQQk9xeU92OW0zazNYSHA2VXR3d2MwODFmcjlr?=
 =?utf-8?B?MkY1a3VWQ2hHSlFzOUtUamlCRXF0N1hqK3hJS1lBVk1qZ0grdnNiWFc3aVhm?=
 =?utf-8?B?MUgvVDlaTUVFVnlvb3RwUGZKT0J5VEpUSWZkNGVXb25vZXc4L0IvbThDeWNS?=
 =?utf-8?B?SjZaVDVCNFNCRmxKMGwvN0ppVHBnVzM5ZFN5WDAwQlNaWHJaUGJ2UGVFOWlS?=
 =?utf-8?B?VllzdmlscHRHVGUrUE5QRmZoa0o5VWRRQ1FOSGZaV0NSV01iY0dSdVNPU3k2?=
 =?utf-8?B?UkVPTFNEbDAxMGZMYkdBR0wvay8wcDYvOEdNNXF0bzBiZVhxZkRVc3pTS2NJ?=
 =?utf-8?B?YkxEc2lEVWRCYmoxSmZsU09zYTZVeUt5UjVpK2tlUUpRai9LMU54dndpTlox?=
 =?utf-8?B?Sm1nbmo1Zzc3T3U1Vmt3cThaRmh0djN4djcvYXBjUW8zRjdxMG1Lci9pTVdM?=
 =?utf-8?B?MzlPNFUzZG1NUWtXOWp0bzhobTluY1RvQXJLVG9rK3VtZDZ6NDBpU29QT3pU?=
 =?utf-8?B?UjBwN1czRU1YNnFWNU1hQ0ZqV0JiSGhBZWZRTFNtY3RSQlhJQmVzVUlENmVx?=
 =?utf-8?B?aGw3czhXTzlCejY1ZXNuOUJadFR3RzBEZmYwaEhjZ3RGd2Y0RDJyZFhPUVR2?=
 =?utf-8?B?ei9WS1VWMHhTdUNjcHZLSUVESjlkSDlVc3ZHeHF5NkcrVVB5eVE1TzB5ZGY1?=
 =?utf-8?B?SHgvNW94MVJCdkNUc0xxZVF4cHBlTTg5MzUxSWpSY2FzU1pkV0dkNk40TnZ3?=
 =?utf-8?B?V3V5S1djTFpxRzRvb2N0OWxmYnZ1aE9YMVN0Z3N6aVVnM0hjOEJveGhyaVpm?=
 =?utf-8?B?bk55VVpUUTNnSVltdXpmRUxUdGZCWHp5YlIzd3FZWGEwNVVYNEhMMkluYVBm?=
 =?utf-8?B?RVAvMXlLaWVmOFdBQ1ZUQlBPRzU4V2ZvS2ZwSytNTW1aeU5aNHpwR1dlOHMv?=
 =?utf-8?B?T05ZN2NiVjBXYVFYN2pGZng3SDlqVGRvTm1ZV05mcUNIb1N4ZWZkbExsQXps?=
 =?utf-8?B?SkpSSWZ1ditpU3F1TGYyREJDTzJrdVZveUhjUGkvN1IzanZ3NFVpKy91Q0da?=
 =?utf-8?B?YVl3a25IMlkyN0twYzB1ZTk2OU5LYVRsS1FzUjA4LzM1ODZvc3pFN056UDJQ?=
 =?utf-8?B?SkZEbjNIbUk5ajR1RDN1SUovTVhSajFWcUR1ZVRRM2FsZ25MMk9nWVRMcXNt?=
 =?utf-8?B?UFFuZmZsK2RTRjhKYWsvaVRnUTZYWTNTSHB3ek9Rdld5eXN1ek9UT29XNmd2?=
 =?utf-8?Q?yaqnsA?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7416014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?S1U0Snlza3RZMkluR2x2VmF2QmtNMTJibjJQT3RtcFBvcHpEYlVTTHJpUTYv?=
 =?utf-8?B?a2FPOW1RMDRSM2xtWmNoQ1FQL2IvdGxSdzdPMldTRlFhaTB6Smlhdkh0MXN1?=
 =?utf-8?B?N1pFYVp1c2pQVkdESllCUmltalVqZXVmNWpkdG41SjRyRDdCbzBJams1Yldr?=
 =?utf-8?B?STJldDhZS3lsZmJybUwyRTJqQzJWakRYWFBUQ2trd3hFclVIZHdjMVc4ZDUz?=
 =?utf-8?B?eHlGSklEWCszd293RU45enRSVG5tbkVSQ2ZiV09pVzRlZWlUa2Jid1hoZjJl?=
 =?utf-8?B?dGRXUndpd2dSbU5nT0hlcXI5ODhDYTRDTzlXOXhJdG16UFh5bVg2VStSQk5Q?=
 =?utf-8?B?OGU3RXlvbE1wYkFaeDdwdjZWNG5rbzNyUTdxUFl0YnFWR2V6QlMyYzhyMVJv?=
 =?utf-8?B?NGNXc2ZMUk5WaEVjRHltYzQ4NXpheGtsRnZDSGZnNHdwcm9uTzVyMmNlb1Za?=
 =?utf-8?B?Nk9wNHFLSDZ5RXR6MjlJa3hPLzE2Q1VWbENhOGEzR1llRkZwbmhJVmJjaTY0?=
 =?utf-8?B?YnczaUEwM1dsVjFPaTdLNlFzN08vYmdHMGFMb1lLT3RRVm5SN0FNd2RsZmpp?=
 =?utf-8?B?Yk8yYVI5VVNYMU16dS9pQzlrTlY2b0VmUDFFQy8rR0RDUzROK1pOT1FIOW8v?=
 =?utf-8?B?U1BLTndkTHE5bTQycEYwc3MzYlArR1l0cHlNU3I0Qm44V3hCaXZMWTRwTGlY?=
 =?utf-8?B?Y01wMjEvNXJRSFBEUHhKOUxOZDg2aTc0UVRGSXp3VmNIdEVyV0orZDlVaDVO?=
 =?utf-8?B?bkoyOFJ4QnZWZko0TVEybDhYcDVDeTJoaGxkTnE5VW1uNlR0dm5xVUdmemZP?=
 =?utf-8?B?LzlPTFMzYzZxQldUVG5JK0NyS3B1RWh1RmQreFhWZzJ3eFJtWm02ZU1pdGdC?=
 =?utf-8?B?RUdpZnBvbW5lQUxkOStXMXVGbXREb3JjT3NMblgrQ1dGYks0Y0hNVXo4ZGZr?=
 =?utf-8?B?bVR2VlkwdUVYTXJJS0xxS0tkcGdXVytEL0NXR1dOZXBHTXl4SzN3Nnc0NW9O?=
 =?utf-8?B?M2pNQkxSS0E2UHFGN1NnYWZ1REZ4TEJxME5qdUp1ZjZFUmtmbytMSGFNWWRw?=
 =?utf-8?B?OXUxamhNSUREUUZNem1nTWljUmxoWFZaUmZaSE44bkJoc2dyWTRSeTREalhX?=
 =?utf-8?B?dlo4UVlXRDNJbFN2bkg3YjllTmNpT20xSGRqTjBIdW1YS0Q0djhpZzB0Qm9n?=
 =?utf-8?B?LzJrZkJBdUMxK1h2SmR1QjBXVFBrZUVtZnlyMDdxMXV6L0JyYTBCMGRxVnZQ?=
 =?utf-8?B?aHNrWFhJY2R2UkNIUnBVTkVSUStaYzFJcm9PVGswL2lBbHhOWVNtaXhsbnhE?=
 =?utf-8?B?bEI3TGJ0V1owclJWVDlYeGExbTRHeXVVaTBaOHJva3Zzak9ibytDdGlqQTI2?=
 =?utf-8?B?M1dJNkZ1TVkvQmRQejU5dHNmL1hHU3c0VHZuZUdya2s2SGZiMVRlNndYd0dH?=
 =?utf-8?B?TjYreHAvc0dHTERqVjNOamQ3YkwyM2ZRZ1U3dzdvcERxZWhHM3ZtRnViSnY1?=
 =?utf-8?B?c1dkeThFaGJCSkVMekhsTHBaZWlZenZUL1FNUHI3aFYzRmNCVzVZWFFOR2tr?=
 =?utf-8?B?WVI0RllwOHU4YWI3QWxnTGxEYk1OV1hFZnRIZzBHYWJ6dWhESS91Y0IwVkZG?=
 =?utf-8?B?YlBFQ2tvMVJFdUV6OUVaWGxpVTNZWENqbCs2ZTJPZEJPMlRHU2hCeldpSDd6?=
 =?utf-8?B?UjZnVlEycW1QTkR5L3dCRStUQlNGRFVERUJXNGdaZzZ6cmkrZGdNcFY3OTVW?=
 =?utf-8?B?bWozbVhVZnF1amlEamhOZlNkdVpVK1pib1BCWHRod2NTKzZGejZCczlqUTNj?=
 =?utf-8?B?cmV5WlFORmUxZ28zUEdxMmo0ZUlzcDl0VlNKU1FTTjhIeVJCRVhsenpYblYv?=
 =?utf-8?B?cjgrbDBBSU9LZm54OUEzVmwvSGswVUZHY1l2eFBkaDJhMjhrd29XeHg5Vkls?=
 =?utf-8?B?Y1hOcEs3Z3RNeXZPOVZjOW1uZlUwWlErWVd6aFhTaVRXVTVveGpjN21tRmxF?=
 =?utf-8?B?ZUJEVG5hODFXaUJJUXZGTTFRL3YxR2xBRVMvY1F6ZGdPSTkxUng1MXNvT1BV?=
 =?utf-8?B?V2dRRWxNZHlSTUJPbXJWdjUzRlcxZlFLVWFOVGZaVTUyTWRBTXpaVUxEaUp2?=
 =?utf-8?Q?Zx+k=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7d5ff605-7564-4bca-1b62-08de21c9a67f
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Nov 2025 08:58:29.8564
 (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: fThrR4Dt1K5bglwEJD4MQRWyl/TD5FrqvVNWJvBEvqAxFuPjtrixFE0e+NSioVU6VOcITF3F9CEyuizPJM0GRA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9099

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDMwLCAy
MDI1IDg6NDQgUE0NCj4gVG86IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT4NCj4g
Q2M6IEh1YW5nLCBSYXkgPFJheS5IdWFuZ0BhbWQuY29tPjsgb2xla3NpaS5rdXJvY2hrb0BnbWFp
bC5jb207IFN0ZWZhbm8NCj4gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47IEp1
bGllbiBHcmFsbCA8anVsaWVuQHhlbi5vcmc+OyBCZXJ0cmFuZA0KPiBNYXJxdWlzIDxiZXJ0cmFu
ZC5tYXJxdWlzQGFybS5jb20+OyBPcnplbCwgTWljaGFsIDxNaWNoYWwuT3J6ZWxAYW1kLmNvbT47
DQo+IFZvbG9keW15ciBCYWJjaHVrIDxWb2xvZHlteXJfQmFiY2h1a0BlcGFtLmNvbT47IEFuZHJl
dyBDb29wZXINCj4gPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+OyBBbnRob255IFBFUkFSRCA8
YW50aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD47DQo+IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBh
dUBjaXRyaXguY29tPjsgU2hhd24gQW5hc3Rhc2lvDQo+IDxzYW5hc3Rhc2lvQHJhcHRvcmVuZ2lu
ZWVyaW5nLmNvbT47IEFsaXN0YWlyIEZyYW5jaXMgPGFsaXN0YWlyLmZyYW5jaXNAd2RjLmNvbT47
DQo+IEJvYiBFc2hsZW1hbiA8Ym9iYnllc2hsZW1hbkBnbWFpbC5jb20+OyBDb25ub3IgRGF2aXMN
Cj4gPGNvbm5vamRhdmlzQGdtYWlsLmNvbT47IFRhbWFzIEsgTGVuZ3llbCA8dGFtYXNAdGtsZW5n
eWVsLmNvbT47IHhlbi0NCj4gZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDog
UmU6IFtQQVRDSCB2MyAxNS8yOF0geGVuL2RvbWN0bDogd3JhcCBkb21haW5fa2lsbCgpIHdpdGgN
Cj4gQ09ORklHX01HTVRfSFlQRVJDQUxMUw0KPg0KPiBPbiAxMy4xMC4yMDI1IDEyOjE1LCBQZW5u
eSBaaGVuZyB3cm90ZToNCj4gPiAtLS0gYS94ZW4vYXJjaC94ODYvbW0vbWVtX3NoYXJpbmcuYw0K
PiA+ICsrKyBiL3hlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmluZy5jDQo+ID4gQEAgLTEzOTYsNiAr
MTM5Niw3IEBAIGludCBfX21lbV9zaGFyaW5nX3Vuc2hhcmVfcGFnZShzdHJ1Y3QgZG9tYWluICpk
LA0KPiA+ICAgICAgcmV0dXJuIHJjOw0KPiA+ICB9DQo+ID4NCj4gPiArI2lmZGVmIENPTkZJR19N
R01UX0hZUEVSQ0FMTFMNCj4gPiAgaW50IHJlbGlucXVpc2hfc2hhcmVkX3BhZ2VzKHN0cnVjdCBk
b21haW4gKmQpICB7DQo+ID4gICAgICBpbnQgcmMgPSAwOw0KPiA+IEBAIC0xNDUyLDYgKzE0NTMs
NyBAQCBpbnQgcmVsaW5xdWlzaF9zaGFyZWRfcGFnZXMoc3RydWN0IGRvbWFpbiAqZCkNCj4gPiAg
ICAgIHAybV91bmxvY2socDJtKTsNCj4gPiAgICAgIHJldHVybiByYzsNCj4gPiAgfQ0KPiA+ICsj
ZW5kaWYgLyogQ09ORklHX01HTVRfSFlQRVJDQUxMUyAqLw0KPiA+DQo+ID4gIHN0YXRpYyBpbnQg
cmFuZ2Vfc2hhcmUoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGRvbWFpbiAqY2QsDQo+ID4gICAg
ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG1lbV9zaGFyaW5nX29wX3JhbmdlICpyYW5nZSkN
Cj4NCj4gSXMgdGhpcyBuZWNlc3Nhcnk/IFNob3VsZG4ndCBNRU1fU0hBUklORyBhcyBhIHdob2xl
IGJlY29tZSBkZXBlbmRlbnQgdXBvbg0KPiBNR01UX0hZUEVSQ0FMTFMsIHRoZW4gYWxzbyBjb3Zl
cmluZyBYRU5NRU1fc2hhcmluZ19vcD8gKFRoZSBzYW1lIHdpbGwNCj4gYWxyZWFkeSBpbXBsaWNp
dGx5IGhhcHBlbiBmb3IgTUVNX1BBR0lORywgZHVlIHRvIGl0cyBWTV9FVkVOVCBkZXBlbmRlbmN5
LikNCj4NCg0KWWVzLCBTaW5jZSBJIGRpZG4ndCBzZWUgVk1fRVZFTlQgZGVwZW5kZW5jeSBmb3Ig
TUVNX1NIQVJJTkcuIEknbSBub3QgMTAwJSBzdXJlIHRoYXQgd2hldGhlciBtZW1vcnkgc2hhcmlu
ZyBmZWF0dXJlIGlzIGRlcGVuZGVudCBvbiBWTV9FVkVOVC4gQWxzbyBhcyBJIHJvdWdobHkgbG9v
ayB0aHJvdWdoIHRoZSBjb2RlcyBpbiBtbS9tZW1fc2hhcmluZy5jLCBtYXliZSBvbmx5IG1lbV9z
aGFyaW5nX25vdGlmeV9lbm9tZW0oKSB1dGlsaXplcyB2bSBldmVudCBzdWJzeXN0ZW0uDQoNCj4g
SmFuDQo=


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 09:45:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 09:45:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159613.1487927 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ7PJ-0003Ja-RF; Wed, 12 Nov 2025 09:44:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159613.1487927; Wed, 12 Nov 2025 09:44: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 1vJ7PJ-0003JT-Ms; Wed, 12 Nov 2025 09:44:53 +0000
Received: by outflank-mailman (input) for mailman id 1159613;
 Wed, 12 Nov 2025 09:44: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=8ume=5U=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1vJ7PI-0003J7-BL
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 09:44:52 +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 385a2f01-bfac-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 10:44:46 +0100 (CET)
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by DU0PR03MB9633.eurprd03.prod.outlook.com (2603:10a6:10:42f::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Wed, 12 Nov
 2025 09:44:40 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::d976:7403:c89d:4677]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::d976:7403:c89d:4677%6]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025
 09:44: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: 385a2f01-bfac-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YfiDm+vnXjJzbKAUd2W+u3+yIlBfLwYzXNXoDSYyfUIhYFbPNMJRZv8t9lUd4hgVLFLKI8tLuZ8xh/Aqjb74sHAgvAbAKTK9dKvOTfFbkbgqwO0IpHCPvrjC7FRNSjvJ/Vuy/DsT883qO9JqqiLMNNcyka/brP4W6Jd6CHock9scYZyICEK6QFF+Aw/FiUBK3GgPJDKXNwfUIsv1kpEHDZKkES5umltRLIi9CJ1GJxl515x7VBKICFCaNdcb37tCeUE2+FY/zOEz4G7lC1AAETUq0UnG0g5WVnJxKKolVYwj6bbKxRTCejysy93h+t3ox7w67hWR8+m917SMuvYW7g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=S3rppuRjFLdgutdboEhEFyRp6WDVMVwOaTRGpKaELhA=;
 b=pjOWWsRQv01uR55bm6+imDJiAJ3Ee6kgMosyFL33MRVydr2HJtGWZiJ+hk8o3Odh1rcH0bnJSIVw3Os7yUlLuEIsqa9Uz3Oc12+GxTT3BDXBF+Wj4hwSShQ0OKqHqLXzQJf1Poc0v5Y1kZ/cIAzV97S1b9ZiFarijVdJAzp9nTiLv0M9yNG9XyXSRakCXGu6z7HAth3ZGwUQ8KkMkZdBzrMOumeM08Ck58cgiPWuPiZ3zfbh0lhsDMBsCG/a8Ht2NzEh7tADPJeZx+7puBcUr0Rz2w71+RJ80K4dKNek+IbWhtL2WR6YaDZe4GA7m7VenCzeSYMVWtv9ki1BX70+xg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=S3rppuRjFLdgutdboEhEFyRp6WDVMVwOaTRGpKaELhA=;
 b=OrQj9wnnH8XrojQ1F+o8lb8UyZh9rUqEyildm9HVk/180jUnNemNgCTuPukyaoP9t3CqFmWf6Thkfi7IVX7QHoLB3Y/KB8lkQJhmpzzoJMOtFkYS/8Pc8vy+up2hQ5L6QXKsuJqURBUNodrgKUsWfLr3t9tn4voSWM6VZAregFmvjZpbe8rIhZUYCRRcR0IvI76p4AJRX1OBGtiJbSjr1Tz+vifeuP6wE+7z+QMaD37eB7SO5v+efKpm6K2zFHioNkpAJu26b1M/7A43RJRUF7YxB9hYPSwmSyLnsE05WQOxrcHzKCQcwxvaNcv2y+HqieSvrFvclM9/LumoWBsBxg==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>, "Orzel, Michal" <michal.orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Luca Fancellu <Luca.Fancellu@arm.com>
Subject: Re: [PATCH] xen/arm: Use FDT_MAGIC from libfdt instead of local macro
Thread-Topic: [PATCH] xen/arm: Use FDT_MAGIC from libfdt instead of local
 macro
Thread-Index: AQHcU6MU9r1SyxgepkCxXro0WqQYWrTuqdCAgAAH5wCAAANfAIAAFY8A
Date: Wed, 12 Nov 2025 09:44:39 +0000
Message-ID: <f628e8af-0fa6-4585-9bf8-8449ffc636b7@epam.com>
References:
 <464fb509cc7f66934689d9e2d3a77bf5fcd45c24.1762931200.git.dmytro_prokopchuk1@epam.com>
 <80431F4E-4512-478F-94B0-1CDDC5E8B6E7@arm.com>
 <e91c18fe-37f0-4890-a8c0-96ec73470b88@amd.com>
 <105ce473-93e9-4ccb-9cb9-938cd5fd3f29@suse.com>
In-Reply-To: <105ce473-93e9-4ccb-9cb9-938cd5fd3f29@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|DU0PR03MB9633:EE_
x-ms-office365-filtering-correlation-id: 094058a6-e5c7-4be3-c8e3-08de21d01967
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|42112799006|376014|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?RU9xWEpWbE1kdVlXanJ1STU3ZUVqK3c1Z3lsdzVQT3IvNS83SzJWZlZ2YUVZ?=
 =?utf-8?B?U21sTEFybW5NZlliZm5ncjIxT0JmQnhpZ1RZMDVDT3lZWGRQR1J5QW12RlRt?=
 =?utf-8?B?cUFPR3lsSDlCS2JXVVJGZHN2bmpJeDNnZHpFWEZ5UlNzb043ODdhUHpBSlBp?=
 =?utf-8?B?aFBMUC9za3VteTFQMlBFUTRRUGZaMjJWYlhrc29Ndm9XVmJveDgvMHFrYm9U?=
 =?utf-8?B?ZTZyM29YRWVnUVpDTHNjOGJpZEhGL2VEUHhiQ1hUWnl4cWJPUzFPMTJnQ00z?=
 =?utf-8?B?OHJmWWFkanJzZEIycHErdWFPdDVnMW1tY2xRZzk4RnhsNHJ6bDdQaEFPT0FZ?=
 =?utf-8?B?L1VXQldUNFBnTERVQkZTbDRXTVZ6bFFxTTJTc1kxaXdJMUtFemxORU4rSW50?=
 =?utf-8?B?RjVXUHVLTU0xTnlrSzF6aEpkVXdLM0p6NGdDMWFpWkxURDYxS0t1VlI4OW5m?=
 =?utf-8?B?QVFzc1h2TmIwTWMxWUc2MjhxUHNtRHh1cDlYcGxYU3hBWFlkRkx1Vkh5dzB2?=
 =?utf-8?B?d3JvOVhmeUpTL1J2UWoyS2dvUHNBQ2JXKzg3c0VmWnYyaWhraXZxRjExZUN0?=
 =?utf-8?B?bG5kbjRwN0tVZXVpY1FCc2ZMcTVuYzlKMUwxNlk3WTV2SU9JaUoraENJbVlj?=
 =?utf-8?B?UzJyeHJJT2FrMkNaaVhjNzdIZVRLeTRZSndEcDJSVk9oR0E4YzVUUjNXd1hq?=
 =?utf-8?B?Y3ZlV0I2SERaaVRaaDY4K3lsYm9rRXhEMHpnZU9PUUVLM0RJdEJsR3l3MGgy?=
 =?utf-8?B?N2tNa3dYakdMKzZ5NHAxSTNTR3llaFlkN2grc1FVMmZ3M2F0RSttSFNCd0Fk?=
 =?utf-8?B?WVR6ZmVaYi84MkJRRmloUkJwWEd0N2RVR29HSC8vNHZwZXQvYTV0eUgvY3VD?=
 =?utf-8?B?ei9adlJSMXBncDY5d0hoY1ZrVkcveXJISUNxSElTYThXVjNTbVNpdThCSGpF?=
 =?utf-8?B?aERzWXEweE5IVmxRTW82Sk5uK2JkbGYvSFJJY25ER0RpRHRoSHBtSTNnQmRv?=
 =?utf-8?B?SEY5eTE4SGY0L0d3YldXckNKY21aY2pQQVMrS29hQ1lSRG1zZUhVMVkwZ2VI?=
 =?utf-8?B?cmk0SjZndm9sOFlOMVVnS3ZuWGRHcGR5b0Y2K1FFeEFIY0xUVVVJZUVYdWM2?=
 =?utf-8?B?ekdjUk9Ma0M5djVPV0JWa0lwdk1EQXZtanRhamZ1MFdYSHd5Y1dPOEVoOFpt?=
 =?utf-8?B?THFUcWpSVjVnaThBeW5QT2UvVncxUnhoeVNCdEZtRkEwYmMydnhvN1B2a2NC?=
 =?utf-8?B?dkRES0Z6Zk14UEVjNTdJdGptV09KYW5UUm13QmtYWm0wNXpMTTU1dGt4cytI?=
 =?utf-8?B?eEtFdmFlLzJBQlJJSVJWejBJUGlsK2l0a0NZNWhJRk9GMVF4eDhENHZEMnBt?=
 =?utf-8?B?M1hWd0ZSTmpHU1FPdHI0RHJleml4RktzbWplbWp0YjcyZC90N2EyN1pJVk9R?=
 =?utf-8?B?V0lTUzJmWFJFWW51bytrU05JYzB6TWwxZFdWYmFkR0k3cDlFL0xxUFlxMnFS?=
 =?utf-8?B?andVaGx1dklJV0NocVJyV2hCbkV3UmlUdC96RjRyUW1WSm1WSldpVS9XOFZi?=
 =?utf-8?B?MHlmNENKYnlMM200clh0bmtncThSbWlTK1lnNFlFbnIyaW5BbGcrR0dUL25X?=
 =?utf-8?B?QWxjQUJwZ3BpME5XRXFuVEpUMmhSSGpmSjkweXBvaEZsVGduOXpkQ0U3VmdR?=
 =?utf-8?B?emNVZ1d6Y1JQa2V6K21vbU5Hc1h2NGVTR1ZxTkFORnVkUVhwYWRBOTVEWCth?=
 =?utf-8?B?ODQrc2pTckY5U29yWUM0NU9NMit4b0NVQVBRQTlpcjFLZWZlVHdSSFIzNENu?=
 =?utf-8?B?eHZNdUMwM3BsMTQ1OWF1U2dVaEdreGFGSkRPeCtUYXVtMVFoYStreGdJTU1r?=
 =?utf-8?B?VGlSb1d6aW0yNEJIWDhBSElwZWtnbnVoaTk2c3I3SC84d0FJVWoyWmxRUmlK?=
 =?utf-8?B?d1FOTWZMS05TaWxBdXdtcHk0ays0b1FibFE5TGZCVTNlcHhhaUNESDFKcjJ3?=
 =?utf-8?B?MFFaUlJXTEg1TXFXK0h5ckpidXc1LzV0VllSSlV4dVU3SnROQUNucnUralo1?=
 =?utf-8?Q?6NcoR6?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(42112799006)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?aTRBb2U4V2xTcFVDMzQ5NzdOV04xUGMzUmIwZHdWOVZ6Mk5CaThsQ2krTnhG?=
 =?utf-8?B?S0J1VU1oYUlDOUhPbkd3Y0FjZ0kxMDJsWGY1eUFrNnREZlRjTkJUZnovWTVm?=
 =?utf-8?B?UkVvMUJVR3dSY2ZQTEx2L1dIZ0RFL2hmTFcvTit3T2tYNDRKUjNmbTVLRzlU?=
 =?utf-8?B?OHl1U3BmUlNVYUJMdjF5RjhGdXAxQUNLRWJoMlVjSThDZFk0S2VsS1QzdTVo?=
 =?utf-8?B?V0M3aGJMK2NvQnNEV2twT2NzdldqSkNzRmhQRUYxam1uYkVMbXdSTmVEWC9z?=
 =?utf-8?B?bGVWcnFNVHBRc1pxR2o3b2JlWkZnWkpqcmJtRk0rU3dFcEo3bTVvYTdpR3pt?=
 =?utf-8?B?cHhQTnpoN2F1dlYyOE5CUjVOcHVVRWd6d0ZrcXgzMFNlanhXSVdCRG9JVHMv?=
 =?utf-8?B?TTJzVi8xdnNsZ0NSOUdVZjFiNU9DcE9iY0pkazBxNjBJSkFXT3BDcnlsY2ZU?=
 =?utf-8?B?ajF0clc3aUNpeGNocHhVYkJ0djRjVEtSZVdHMExlNzdrYTFLLzZ2NDMwakNY?=
 =?utf-8?B?eTIrRFZpMThQVlovSGhpdEZJMHZQU2ZFVUNFRW5LK3JkQ0d3MjVUbGkvRjEv?=
 =?utf-8?B?eTlubnpiN0k5dkk0M3VDVFMwcnN0Mll1c0xTM29RL2VGV3lURVJ5QWtFVkg3?=
 =?utf-8?B?Sm1yNVdjTEk1Z0FrRlVxWE9uRXZReUZIOWRPcXUvNUZ0dFhGazNOV1ptTzlY?=
 =?utf-8?B?VXJ4N1NJakZOREJ1UmZhV0FabWpPUndxaVNxLzEvZzZaKzM4UGN3VmNxYm4y?=
 =?utf-8?B?ZEtneFN6OWhmd2Y5Wk1DMjhaWGU1TjFxekFaTG1BSlFKaUZOdllJRkRFQlVK?=
 =?utf-8?B?MFBFVlJRajkrZUVMQktrVHhwaVNzSzJHeGtlRDFhT1FEbFE5dzMweHhWWEdD?=
 =?utf-8?B?eXVXTUpPbzVmeTNRZUdtc3JTS3pRaGxSUnQ4SmtiWkZDaHdnYmFjRDJSbXJY?=
 =?utf-8?B?U1BOWDYrS05YUk10SURCSVpKRXJuTkx4SWh1OWJRWmQ1NlFsL2crYU9UZUgw?=
 =?utf-8?B?aHdIdWJpR2JOM3BtVXVZMDQvaWltOGxOMkdDMnhhT1B2WVFBeFVFb1ZqRXVH?=
 =?utf-8?B?cFE2R1QwREQwM255dkprdUhVVExML0lUNVFHTER1amZhSW1reWViSUs2RFBw?=
 =?utf-8?B?cFMxVFZvT1VMMlRGQisxaUtCNEg3KzFYNmVOenRldC9HYUhBTTg3cmdVcWFh?=
 =?utf-8?B?NXQ0K2NHamRHaGZuTUszMythU200SGUwNit1M205bmNYM0FnKy9rRzJJblhP?=
 =?utf-8?B?QVh5SU9OcE5IQnNOYzNZc2xvZFQzNHY0M090N3hRSkJZZU5nb2dWVlhFNndB?=
 =?utf-8?B?cTV1SERpdXlNSy9LbUVxSzZORXc4ZmVZTVZQa3BKaU80Ny9BbWMva0RLbk1E?=
 =?utf-8?B?MjJ5NERnU1QzMHBIZVYwc1M5clNITDZwcVIvT1o2Qm83a09rak1VbjFDNmJS?=
 =?utf-8?B?dkVNNU4reURUaXNHbUlwL1ZqOVU4S0VwZnprWncvWXZYR24vWnVSUEdGUno5?=
 =?utf-8?B?Z0JwRnRzTFZHRkR6YkdPRmNPd3A5ZlF5KzJOVHhsMEtFc05rODRiYU5xRVRr?=
 =?utf-8?B?M2tPRmp0SVd1S1dDd0F0S2JScUNhNlRNQUZmOFM4YU5ldXh4U1N5S3BnbEdR?=
 =?utf-8?B?L0FoWGh6TStFaG5TNzhWVVA2NEpKT28rZ1M5cWJCRHVDbTdQVTY2SnoxeTNE?=
 =?utf-8?B?SlhhbG11SUErZUZnUFJFM0xjMjU1U2RJM0FxZEpyTTZlTkgwZ3AzQ1gyWnRy?=
 =?utf-8?B?Z2NpaTIrWWhaOGp5UHFaUmF3aUYwMFFtWngyM3NPQ2h2ZEFycVVPSC9USTVZ?=
 =?utf-8?B?WHZJdWlmL1VGbmtvMFFTWGZRL05CYnA2c0d1djdUcFIveHBvcFZHWnhyajFO?=
 =?utf-8?B?R0U0VU93NzkzZVBsNmFNZEl6OTZudzdUaTBlV0pUT0p3NUxFbXhKRkM3Z0Jq?=
 =?utf-8?B?MmVsT25OSG1USHk2NzM4WmVVTW1jK3NXSlJPS25jNVRYZUtCYk1RZHJFM3JU?=
 =?utf-8?B?NkV3QkhLVmI0dklMeXBBNXE4N2Nla0hCM2RnTjBuK2lHWGFuMmNnTTN6bTlU?=
 =?utf-8?B?Nlp0Y3NZZ2xwajR5Zk8rdnhLRzRYNW5YL1RQamxiaG90Wi85SVdtZG9paVpG?=
 =?utf-8?B?RWN2VmkxQXlNUnFKeC9KcVc3TURuaXBNQ21laVJKT1crR3hETmNhODRMVmVO?=
 =?utf-8?B?YVE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <7A6F209BBD2C6049B4D59CE00F539FA0@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 094058a6-e5c7-4be3-c8e3-08de21d01967
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Nov 2025 09:44:39.6164
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: b45h/X+I8csMGtTdAvk0sROaLSJcCFAeKwopup/23GTHbwFyeCHF0mJebPtjbOTYAIhXbtQv69alXQiDOLBfsDPYttMGK7b8K7SgEQ67ZhY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB9633

DQoNCk9uIDExLzEyLzI1IDEwOjI3LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gT24gMTIuMTEuMjAy
NSAwOToxNSwgT3J6ZWwsIE1pY2hhbCB3cm90ZToNCj4+IE9uIDEyLzExLzIwMjUgMDg6NDcsIEx1
Y2EgRmFuY2VsbHUgd3JvdGU6DQo+Pj4+IE9uIDEyIE5vdiAyMDI1LCBhdCAwNzowOCwgRG15dHJv
IFByb2tvcGNodWsxIDxkbXl0cm9fcHJva29wY2h1azFAZXBhbS5jb20+IHdyb3RlOg0KPj4+Pg0K
Pj4+PiBSZW1vdmUgdGhlIHJlZHVuZGFudCBsb2NhbCAnRFRCX01BR0lDJyBkZWZpbml0aW9uIGFu
ZCByZXBsYWNlIGl0cyB1c2FnZQ0KPj4+PiB3aXRoIHRoZSBjYW5vbmljYWwgJ0ZEVF9NQUdJQycg
ZnJvbSAnbGliZmR0Jy4NCj4+Pj4NCj4+Pj4gRml4ZXM6IDY2ZWRlYjJlMzk3MiAoYXJtOiBjb3B5
IERUQiBhcHBlbmRlZCB0byB6SW1hZ2UpDQo+PiBOSVQ6IEZpeGVzIGlzIGZvciBidWdzLiBSZWR1
bmRhbnQgbWFjcm8gaXMgbm90IGEgYnVnIEkgYmVsaWV2ZS4NCj4gDQo+IE1heWJlIHVzZSB0aGUg
cmVsYXRpdmVseSBuZXcgQW1lbmRzOiBoZXJlIGluc3RlYWQ/DQo+IA0KPiBKYW4NCg0KWWVzLCBz
dXJlLiAiQW1lbmRzOiIgdGFnIHNob3VsZCBiZSB1c2VkIGhlcmUuDQpUaGFua3MuDQpEbXl0cm8u


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 09:50:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 09:50:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159626.1487936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ7Uo-0004sJ-CH; Wed, 12 Nov 2025 09:50:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159626.1487936; Wed, 12 Nov 2025 09: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 1vJ7Uo-0004sC-9h; Wed, 12 Nov 2025 09:50:34 +0000
Received: by outflank-mailman (input) for mailman id 1159626;
 Wed, 12 Nov 2025 09: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=8ume=5U=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1vJ7Un-0004rx-3w
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 09:50:33 +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 07490a76-bfad-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 10:50:32 +0100 (CET)
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by DU0PR03MB9633.eurprd03.prod.outlook.com (2603:10a6:10:42f::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Wed, 12 Nov
 2025 09:50:25 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::d976:7403:c89d:4677]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::d976:7403:c89d:4677%6]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025
 09:50: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: 07490a76-bfad-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Xr52im+wIrCTj2F1dYqWcglwa5UFWYxWMXvZ0dOACeXQPgdC59stHCaRDTPO0kFOcfOAbB1mfFLff4CsTk7KmXCq/2kB9u49sVQ0Q79R3k6zlKLzbPxcVdMi0jJ547gVQ0PBbbkn1hOojq2WXIKxvhv9Wn2xtjbwuXIuz3QB6wK6l16RPVv0qJ70Vt0yP3c7KqlWvqIpT/huG8SOMr+xY/1zQtRqpik/Sep6/l0WmSumc+S9DZJtv8ADZKj7HEI5cb0A57ZQqmD//qef798qCY1dIJ0sTMg6OBoNz+quFB5mjiaDzc0Psm3Dg+ps1l4EC/3fxNz2Ogl8o6YIuTVfWw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hYHVTZOonjDSkdIOBbIUb9cCFIEfDr58ylOWab5gnlQ=;
 b=O0BqVbyFJDxT3w30P4l5auZOn7ddUuZ0dpA/XsHSeRegxss/xSow1pt2pm3KlDxsDRs8am246GjRoybL1N7PEk3Cp6AFKfaMJesxfHbQDQeIzsVzFRf1nEz1D75iY4/P8C4KYnUwp3e+sOz/P+HS3eBfvwNgCVFFhiyiMdjzUSqS+hSGsWd/AJobXrtwn9EvfNaIfUwIydXbF4JWDxHjhyREU6YKkPNNEeAnQCKHqB9KtQZgxlIItzH3ulr7U0uBNfkkys9JrSn7rh9CbTyPOIQFytP5f+SAnzd9W/3FML0eNMFtp8sX2zk5lfkyusPLEK/+L7QU/4wonAicIvK3CA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hYHVTZOonjDSkdIOBbIUb9cCFIEfDr58ylOWab5gnlQ=;
 b=qhrLo2MYCA+eedlBwTbbWMYaeDRhinySeUsn8Xm3Q2N+t7lKhoy0V293YJp9/+QrSWcTCHh3aDL5FcUU5j97+PMGHr509gOHgg/4dkWtu98xfQW5yhNo19BriyjHH52+2KeQCKbg/08/nTL6Vekh2YCYDLRyCJh7m2TvnTnPynM7H16mscsqcFjr0XadhwKycEkRBHcnyuD75CkbnPJZXpzveTeBYN+lKMseK0H39+rs1VjiyC8w+Zmwl0+Avna6Lg/IywguBOZiXR/hSy9fDYEH+Chcijm6nzkBcBsVJKS7Il1aIRQqjaHJ79ECmbMuozIuWUuWRPmeYT5IuA43bw==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2] xen/arm: Use FDT_MAGIC from libfdt instead of local macro
Thread-Topic: [PATCH v2] xen/arm: Use FDT_MAGIC from libfdt instead of local
 macro
Thread-Index: AQHcU7nF1Zr/ErjEH0+gSpDahlo6Lw==
Date: Wed, 12 Nov 2025 09:50:25 +0000
Message-ID:
 <92efc0f0bb286ceeb8788a8900bac9f9f1ed9613.1762940762.git.dmytro_prokopchuk1@epam.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|DU0PR03MB9633:EE_
x-ms-office365-filtering-correlation-id: 6c833251-bfc7-4e3f-6996-08de21d0e786
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?CBv7GrrGnO4zNVWqYsQaxCN9/2NiaegPKRJEZxI87QQqJfVfoBTN/6THvO?=
 =?iso-8859-1?Q?5Ecmpy4BPlyh9AC2hNrwq49ptMx1aUtYhupmLAjn/ATL7CLgnyNNE1r6SD?=
 =?iso-8859-1?Q?g50J9fZeX1ILLLBsp58CaXXgF3SddMYEgcEimcJjF1Jm1RjkUrHrS7F6TF?=
 =?iso-8859-1?Q?Fh5a9/2OY9zUZ40j40tpvoay4ZPur3liaJ/n75fwDyHseIZgHb/7pHpVz8?=
 =?iso-8859-1?Q?lIk/1Yg6HZiOpNX15iRifuWBCURhFSOVhI8RmPLOj3s2Nh8c24/dUk8BbD?=
 =?iso-8859-1?Q?5upx3/SfQivj1XoRB7TzyfesiWVyqIFdQhP1/UBB0FfDJ94Bcqi4k2areB?=
 =?iso-8859-1?Q?uPVdHoAbAgmPqVy4RcFuxVe1BUWdiJ4jb1xhEIZOaREguWtKqQvf1aV5lt?=
 =?iso-8859-1?Q?Ch6whjx9Wnsegcz16ff+zHRgISjmW+o4sYkLH60NEGvv/B2OZl2PtZdTtf?=
 =?iso-8859-1?Q?PT/a9tFLQqMItwrmpaf+xzwinuTJU0DkZ0LF4MG98E32jKT1coOrwxWPHR?=
 =?iso-8859-1?Q?EV4uqfPBm+ovqbhN6n2mik8UwscApmOoUit0D0Ju4cPwPyfVrt6PlaLT5M?=
 =?iso-8859-1?Q?SvaBfrCnYkyslWbKv4elECNtEgAb2GCm2lb2c4jKXZn00fPDB7d8UrCBt1?=
 =?iso-8859-1?Q?Ysn3SelZm8f/VMuw1ss1/uzcIVPYkwW2uYL+5m+JsdKVyzDKEEBGoJPef3?=
 =?iso-8859-1?Q?289zz1ZFrM1ucELb7rE7S4y2yVvnK4pR5LsiSIo9BjdYiIs77toEZ1rDDv?=
 =?iso-8859-1?Q?0DwYFCtwFHMRdEeqjtEKieddXgNo2kVTelS51up/Ki7yyyACJIqvgbGRoE?=
 =?iso-8859-1?Q?uNe6h9WG1DQWDRrj2tWHfokZ+vNCKwXEkOH1FN8jwWr1SneOGw9IG6sNYl?=
 =?iso-8859-1?Q?9uET5DMYJP6bdbY/z5FGcsbUWWLDI6/eCGNcbSR4lDRd2ocWh/vC4PpX2M?=
 =?iso-8859-1?Q?h5YBuHjMLTFlsAnreVbW4c2an+2YeAwWpPfZ9BK8vyyBxvEl48WF6GLl8g?=
 =?iso-8859-1?Q?A2yUfZo72i4Pk1Bt8w6CR2/a7JDrjWlEGkzbROBqqKY4vVIe9FAI85dS9p?=
 =?iso-8859-1?Q?bCvdRhFABPunFL60tP+ICgyQJ7iQ8ZLusxbf6Su7Hdpr9CH3xF60khDbQI?=
 =?iso-8859-1?Q?TT48H6O6GncB40L0G/0uJLA8rpp78dgRKFeZssSMhFkceFPAbTdFqEZzUH?=
 =?iso-8859-1?Q?dxcuazL1+jvXrioXEWO0a0T78sGwYCznAlPmbeLlJ44c6+wR0wyOnlCocd?=
 =?iso-8859-1?Q?+kQ866cK2O/N+2v+BOL2lmtx4ttmPQGV91X3xgEhqqH3NCKJGcIlXV1qki?=
 =?iso-8859-1?Q?JtuPv/CiOc/otnikZpeSH333NJxG2dUcajujaD4cZANMK59Jfr6t0nUips?=
 =?iso-8859-1?Q?BkJ6cWoJm9V/ZGbnfLTsyQYAyJEAd8dbgR2uX+ULzm1zNcoKa9w5mCrJVr?=
 =?iso-8859-1?Q?DTl2QYDSwDft1Kak02HI9ukJTfWB5tWFDRhS+pEfaUBLId7rfC35KkV8Fv?=
 =?iso-8859-1?Q?wGSu55NgiJ1TR8lH+5WPr9sFtE5VktQNupzOXCJSN+pg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?pW3rgblsL1iVfgg5BWKUXDllmoPIzm8S6SZ5vLcQXsrid0nCiOyLd5ZyCp?=
 =?iso-8859-1?Q?FhkyWJdHOtl4Vr7Eor+Nd1VmVxguf3b+n0vsJZjbyGUhaZXUmf8dBSNUXk?=
 =?iso-8859-1?Q?PWLIBA9cmkQ+uCu/HOPwr5GrwhBplXwO1IPmOy746f8XgJjvenHZWZLN9/?=
 =?iso-8859-1?Q?6v4zho3KVyTI6OKmTaLwGsUwsR/m2pkTQki6MCzbmrA8rTpmQS5zDdeTRZ?=
 =?iso-8859-1?Q?bQAZmV/3pQ2+BIkLP8nmhT+VTdaY86Bfo0S7Pd25D0Y4w7fkkbsjnW6c6D?=
 =?iso-8859-1?Q?fcR7KsiwZa9uTVVLeQKjMiB+YtaLaPdY+gaqQlwUGmkvfF/LzUZBT46yht?=
 =?iso-8859-1?Q?la34zoRoqiATPEc4j8D2YOGAaC2o34TRdKVVJ48v3PnIrTwUT9sqHUfkM5?=
 =?iso-8859-1?Q?6n6iU36VD2H2l2UYYxTgidcoZ5UZ6deNeHuOUpi3tGxgUnnxsSoIy9Pu1Z?=
 =?iso-8859-1?Q?kbrZ3N4rpHfP63UrubuBFAt6G75nJ5CwrX6SWRCtB+0WPSGhYlYaWjkatt?=
 =?iso-8859-1?Q?zco5XTNz+e8216gprrO4IbjStEFffnex82cb3VIEBvBZLf6e2GvSWpnGV3?=
 =?iso-8859-1?Q?tmUtPfPkG8SH8Twl+rdVs9Z0fxacybfMhw7Kp0nEiWvu6yjNTFaogp7Jjp?=
 =?iso-8859-1?Q?DLTgN3m9Jy26EVvcEqUCZWmgMfMFQ48k4bCV3i2mKUXZEIuM8jJAUhnaG/?=
 =?iso-8859-1?Q?bukLxl902y3HQZcBXQgjJcta/FIrYEhvOi/JYrfPx/Vcu5HsuLv7fJGUfT?=
 =?iso-8859-1?Q?+2Ar2Cjp15FN29LSUjWyVo4Yk+EHJIzJDUDOm+oFFwmIA9igSdjP7QNG2/?=
 =?iso-8859-1?Q?ufgDtfbSn839lagHS4CMUCXNKxRULdMssMwnH2DZnpw954JExCh1lCkKmS?=
 =?iso-8859-1?Q?H/J9EI5flPshO3xFA3YQaKI8h7MWPcuSUhET7Kyou0S8ZfRhDyKB7Rp7q/?=
 =?iso-8859-1?Q?FyRtbLVm9g9msDSbLhUE+hZW2Iko+DSWcbqF6ywrcqUa0dIU22KS04Jx5i?=
 =?iso-8859-1?Q?8yf63kyI1XZDZM7mpVzKHlAUUDK+FQ6GL9AJT4iDTnfglDesgcIMGgPt/P?=
 =?iso-8859-1?Q?aebysRvLmDPaTS4CmbH868SVh3CjgWmDBZn+PZjFun0bYZzGi6mkC3zxUI?=
 =?iso-8859-1?Q?YApQEHTVbo4QervQXzLeL8OX/60Pqf77o5zXAwXnDjtAN4z77phyMHJNBJ?=
 =?iso-8859-1?Q?1FIoFq0cVWMMR3ZxF6wZ75UV5bR4BnewNc5/TBoG7KN/bYzHJWp7SIK+py?=
 =?iso-8859-1?Q?b8zx3N633YLK6lLo0LmXXh04AOsnrcmAH5K2jUvbxAFaDu6jUqt26y8AQS?=
 =?iso-8859-1?Q?1bWEBfbN+ROb4nxvgTxs7qsLHXntUwPQfoRbdXQl6qIPN3zaVHdi1LdiKa?=
 =?iso-8859-1?Q?FgIzjzN11kAkOxpqcVI5t3f06ThjAOBnPJHv3qv9OzPIPhy+2BZMTfKUkG?=
 =?iso-8859-1?Q?v2aIKuvPoYHp6JVVGUAVeB/j1SK/eBOGm+I9+fxzohuFbYLiI+IJyGflCn?=
 =?iso-8859-1?Q?1250e6Xscwfg9wpRVRl1PGbDeK2Qk4Jd1F3ofdyyB1XUNGFGQh2RvYu2DX?=
 =?iso-8859-1?Q?IyTlvUscbUIpKkFz6IcjeimKRpJb0/imBC+QTjlZDA9MS6A019MnvOV67G?=
 =?iso-8859-1?Q?ofVpDEr4S5LTB34B6hLQjAEGLB4ndX44qFv4ODgJzQKOBL1JxKguwgCw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6c833251-bfc7-4e3f-6996-08de21d0e786
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Nov 2025 09:50:25.4153
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: cJQgiIDoDoxI+89xWitArgJu2BbRTlCXnBQLInvsE3qcEGGXDS01s0lJXpdqBy27XXy0jhx99eq/uf5ErP6gRVuLOOqL+RkTRYvNX/Xj1xQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB9633

Remove the redundant local 'DTB_MAGIC' definition and replace its usage
with the canonical 'FDT_MAGIC' from 'libfdt'.

Amends: 66edeb2e3972 (arm: copy DTB appended to zImage)
Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Changes in v2:
- "Fixes" tag was replaced with "Amends"

Link to v1:
https://patchew.org/Xen/464fb509cc7f66934689d9e2d3a77bf5fcd45c24.1762931200=
.git.dmytro._5Fprokopchuk1@epam.com/
---
 xen/arch/arm/kernel.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
index 48f4b56d0c..7544fd50a2 100644
--- a/xen/arch/arm/kernel.c
+++ b/xen/arch/arm/kernel.c
@@ -40,8 +40,6 @@ struct minimal_dtb_header {
     /* There are other fields but we don't use them yet. */
 };
=20
-#define DTB_MAGIC 0xd00dfeedU
-
 static void __init place_modules(struct kernel_info *info,
                                  paddr_t kernbase, paddr_t kernend)
 {
@@ -383,7 +381,7 @@ static int __init kernel_zimage32_probe(struct kernel_i=
nfo *info,
     if ( addr + end - start + sizeof(dtb_hdr) <=3D size )
     {
         copy_from_paddr(&dtb_hdr, addr + end - start, sizeof(dtb_hdr));
-        if (be32_to_cpu(dtb_hdr.magic) =3D=3D DTB_MAGIC) {
+        if (be32_to_cpu(dtb_hdr.magic) =3D=3D FDT_MAGIC) {
             end +=3D be32_to_cpu(dtb_hdr.total_size);
=20
             if ( end > addr + size )
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 10:02:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 10:02:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159645.1487957 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ7g5-0006yf-Lz; Wed, 12 Nov 2025 10:02:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159645.1487957; Wed, 12 Nov 2025 10: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 1vJ7g5-0006yY-Iv; Wed, 12 Nov 2025 10:02:13 +0000
Received: by outflank-mailman (input) for mailman id 1159645;
 Wed, 12 Nov 2025 10: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=K5hw=5U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJ7g4-0006yR-5S
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 10:02:12 +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 a6a7256f-bfae-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 11:02:09 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b7291af7190so101950466b.3
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 02:02: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
 a640c23a62f3a-b72bfa25454sm1540594666b.75.2025.11.12.02.02.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 12 Nov 2025 02:02: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: a6a7256f-bfae-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762941728; x=1763546528; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dIJLZf1CFtolWEgSjwO7An0+GPUmbc4i4F4px3YqsZE=;
        b=UHOyg92IAICrY8fkATFCpsJm+C4fJXnwkiw7zeQ8P0T9/EorAVSR8k1mgV1R6AQVka
         WDql+ZvnwaV7Kps7OIW+MDAbjmmR/keqlwX3aqhKToWihTFQCc44sFOD7KQiYirUGOA5
         VoE1Xrm8Exe4/EIyVk0jd73JyJqZHMZVh91ieb7z63oxZcCMNLgBd3GAt96Xqy4jLRiv
         ZvjzE5fIK5FVljYB3s61JF4nhrQtScDm2xNXWtC7YA9yDpkx9I/7N3aAkn4dFzhF0i7Z
         yd+iwQOLV7iqPV1Sg0c5HLvZvKFYrOkTI+wqk8iP1cYj/CHo3Rwps0AW+JnO5j4MKd8f
         tbEw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762941728; x=1763546528;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dIJLZf1CFtolWEgSjwO7An0+GPUmbc4i4F4px3YqsZE=;
        b=c5foKHGfJYuquc/ot14meYLBl3soUD6qzPS4+kI6ziUSYiwnrl2JdmR/cjIPKYmhnh
         6kdUGP9fUVyY137r60J4jaio9XlIJCVJ8rKvDVmNhVt1IRdkEWB01xM5s96NAWjHoV18
         mC6vP6dq2OSzhzG0FvXexZXRRNgFQ2KigCkQJSqYwxQ7j/JQYWfToGJ6pgFIpugl/+KC
         oqdxfi57XMNIiR9CDJw9+3WyOtKtp9JvWp2cJKsZppOkZqQBiR76IFObS6HioU3SShN0
         SDTtxa2UZi+PTHTgV52LRlWsdxfjOhI8K8EgheR94ifIsH8wFngiEsoVXy0fxgs2HVme
         aIKQ==
X-Forwarded-Encrypted: i=1; AJvYcCUe9BKaMKXwTL6sqKwfXViIZl6fEyA4QXbECENy4r0qoBIlISxdDuM86UjoRdXtG8OVQ34er0YhCxo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyyrc9NTq0s50tRyvwlSTSmMyl11o2Ng8HZCmPw3k7s+ckcJU/u
	th11Mq9F0217p9lkkCta+EIGfcALEz6SWQKkpuRz0c4X+nWMivOc4xSilbc8Kim1gQ==
X-Gm-Gg: ASbGnctp4ArD9iv9gMxdfs+bIe7VyAxwpkPtFAwyfLgVJmBTPXk0SkE0DiN66HyZaKL
	d7+FDsaqq4KmRSNJNQSfkv0uDowL/3XD4dX4j5rnROJXvEEhAAlBRlP7jLtVz1FyFM3d+H7ffTr
	RG3NbVOunNGpkFAVEwz/kkVSuy9t7VPkJJ1WD+YVqt5xBugBi9/sBNOsbsLo9JzUEpFKoIoIs+K
	KBejL+G3TaY0ZYRYCJPouT2raSBlFHT8fFsV9JbNkJwHMC+n6LlXCeMbPMG3PaXTLhJnQL3rGYz
	T01mexpEDW4ey5R1+ZAnRXcPTzq5MOGgHbnaQt288Hlz3I8pwrW/oKGEFind9tUdsNqti9hdPb5
	X/zBYeZYTf6QgN0Ut7bOyMAXg2tZMB+XVHCJumYJdJ4qzCeFxYCN8PXAisGlLTcfFeeG0+owqyD
	T8rfiC6YSMc6qT0sAE0MnludPPjVAyZBAsLTSLFMRiH96d+iihhf5pukPiqgkR2Ri7
X-Google-Smtp-Source: AGHT+IESjGUbmjPG+49pZQ8EsNiv/DSur+BhTL6kYGqfbJckOAcZ9NUJlM9NCSyw/rYqfMgZhDANtg==
X-Received: by 2002:a17:907:d0e:b0:b43:b7ec:b8a1 with SMTP id a640c23a62f3a-b733197ed5cmr269327266b.24.1762941728456;
        Wed, 12 Nov 2025 02:02:08 -0800 (PST)
Message-ID: <58508638-ecff-4507-a11a-8dd7ac52e61f@suse.com>
Date: Wed, 12 Nov 2025 11:02:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 15/28] xen/domctl: wrap domain_kill() with
 CONFIG_MGMT_HYPERCALLS
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 "oleksii.kurochko@gmail.com" <oleksii.kurochko@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 "Orzel, Michal" <Michal.Orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Tamas K Lengyel <tamas@tklengyel.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251013101540.3502842-1-Penny.Zheng@amd.com>
 <20251013101540.3502842-16-Penny.Zheng@amd.com>
 <8c74774a-458b-4918-8d65-fcb3eacfe98b@suse.com>
 <DM4PR12MB845189415FBE1E8C250C81D2E1CCA@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: <DM4PR12MB845189415FBE1E8C250C81D2E1CCA@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.11.2025 09:58, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Thursday, October 30, 2025 8:44 PM
>> To: Penny, Zheng <penny.zheng@amd.com>
>> Cc: Huang, Ray <Ray.Huang@amd.com>; oleksii.kurochko@gmail.com; Stefano
>> Stabellini <sstabellini@kernel.org>; Julien Grall <julien@xen.org>; Bertrand
>> Marquis <bertrand.marquis@arm.com>; Orzel, Michal <Michal.Orzel@amd.com>;
>> Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>; Andrew Cooper
>> <andrew.cooper3@citrix.com>; Anthony PERARD <anthony.perard@vates.tech>;
>> Roger Pau MonnÃ© <roger.pau@citrix.com>; Shawn Anastasio
>> <sanastasio@raptorengineering.com>; Alistair Francis <alistair.francis@wdc.com>;
>> Bob Eshleman <bobbyeshleman@gmail.com>; Connor Davis
>> <connojdavis@gmail.com>; Tamas K Lengyel <tamas@tklengyel.com>; xen-
>> devel@lists.xenproject.org
>> Subject: Re: [PATCH v3 15/28] xen/domctl: wrap domain_kill() with
>> CONFIG_MGMT_HYPERCALLS
>>
>> On 13.10.2025 12:15, Penny Zheng wrote:
>>> --- a/xen/arch/x86/mm/mem_sharing.c
>>> +++ b/xen/arch/x86/mm/mem_sharing.c
>>> @@ -1396,6 +1396,7 @@ int __mem_sharing_unshare_page(struct domain *d,
>>>      return rc;
>>>  }
>>>
>>> +#ifdef CONFIG_MGMT_HYPERCALLS
>>>  int relinquish_shared_pages(struct domain *d)  {
>>>      int rc = 0;
>>> @@ -1452,6 +1453,7 @@ int relinquish_shared_pages(struct domain *d)
>>>      p2m_unlock(p2m);
>>>      return rc;
>>>  }
>>> +#endif /* CONFIG_MGMT_HYPERCALLS */
>>>
>>>  static int range_share(struct domain *d, struct domain *cd,
>>>                         struct mem_sharing_op_range *range)
>>
>> Is this necessary? Shouldn't MEM_SHARING as a whole become dependent upon
>> MGMT_HYPERCALLS, then also covering XENMEM_sharing_op? (The same will
>> already implicitly happen for MEM_PAGING, due to its VM_EVENT dependency.)
>>
> 
> Yes, Since I didn't see VM_EVENT dependency for MEM_SHARING. I'm not 100% sure that whether memory sharing feature is dependent on VM_EVENT. Also as I roughly look through the codes in mm/mem_sharing.c, maybe only mem_sharing_notify_enomem() utilizes vm event subsystem.

Right, a little while ago (iirc in the context of your work) Tamas said the same.
But I didn't ask about VM_EVENT; I asked about MGMT_HYPERCALLS.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 10:05:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 10:05:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159656.1487968 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ7jZ-0007XI-4w; Wed, 12 Nov 2025 10:05:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159656.1487968; Wed, 12 Nov 2025 10:05: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 1vJ7jZ-0007XB-0w; Wed, 12 Nov 2025 10:05:49 +0000
Received: by outflank-mailman (input) for mailman id 1159656;
 Wed, 12 Nov 2025 10:05: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=EiA8=5U=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJ7jX-0007X5-Lf
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 10:05:47 +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 27b4db64-bfaf-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 11:05:45 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by VI1PR03MB6142.eurprd03.prod.outlook.com (2603:10a6:800:142::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Wed, 12 Nov
 2025 10:05:42 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025
 10:05: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: 27b4db64-bfaf-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dFFHE6Eht3YNJldF6d/WAFEpcagGrWMI5nn8kPEvR9FF+GeR6B8cTQ3aCmq3UgCH6og3osHzZA2ZN9OU7or9RGHNY2V0u9RPs6Zl3eH3k0QL9qNwCmIT9FQe9FJrbJPKA7dngob7AqYgWXMPMEAs/jdr1z82nPrZ7a2fQWAMeHs3q583OwsFkgjm5rCtqX8gwXBwaei/Mudoc7zUq8x5XIW2w+e9D0bwSU6Beks92RmvOzIUAHOxYDisoUEW/+IfH1RncOtJ0dxsGECLefl3C5nW8bpKhdpbFJlPWgtiVMhv3Z3EGhPeQ4Yw3wGpwu8mVXPA/X5N2d2vMs/Fl3XpCw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=igzEDLR9CwnFw7DmypRVbWYrYEcaUJeATM/YMlhE3ow=;
 b=hoEXBSr9kT/w8b1h/HWt13Fbythg2OfecpJbgTeGwUZabJJTL9JAsyBf78Fx94OgoXkvkwZs/xjZfLS6q6nNlmNPg2e97ZUqH7AuFgQfTDN4KRpB9MMArHKy14UqRXMosNemC8KpRrQERcr7LpZTLYzZ5WgyeKzy/k5ZrqXbom+a21YGGANMQeyxPISYDsLa1ukUqnOkfCo5VuFvv2KDn2wuShEMpS5e+udFFjqC3B+MWWuBAzn0INfEITl4AH/yCXuaZqY8sU2EGi6bZ4vykgsLG1BFyKIUQCHp0KtREQ7S4RLQGHmzuvVpq7rHTc5D13uaIQFkrDpSDAxItKLNZQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=igzEDLR9CwnFw7DmypRVbWYrYEcaUJeATM/YMlhE3ow=;
 b=gw6sOgO30nw/2eiaXTCFpDJeMyRXjau53lwGEfp7hpaoCtDgVttmtAD8iw7ACfO5kkNDW9P91duRjvJiHd/dqhf2RuwVBjWnILDAti7nDTbPAV1v+bn5FTkuMJFM5J5Zf4OYcFJgh97SAEMtxmb7vBRCvZ+NtQvnULRsn7Fp98p4GgpeE/wc4wbVe+mg/ejsP+JpIwR0jTdLi4k0NqLU0va9oQXeOXD3D8wlxYHacPOI4eq3rnOaL6woEgiT8fzdYBkY13eIgef2fXwJFgepYuPeeqrdTFti/WWzCd2VuDhzQuY2xEPKPuKl+qtkWL6bcPYkTLGQF6QUOKRJ965hiQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <50c7e5ee-50d1-450a-a5e9-9d059228224e@epam.com>
Date: Wed, 12 Nov 2025 12:05:39 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 0/5] x86: pvh: allow to disable 32-bit (COMPAT)
 interface support
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <cea9d2cc-ba33-4483-92e9-4aa31c24960b@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <cea9d2cc-ba33-4483-92e9-4aa31c24960b@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0025.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::6) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|VI1PR03MB6142:EE_
X-MS-Office365-Filtering-Correlation-Id: e6817f33-ba0e-4198-cd15-08de21d30948
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?djNEd0RnZmdac0sxVzlabkN2OGoxWEovR3VJMm5nRVpHZHZDNVlPc3NzTHho?=
 =?utf-8?B?d1N4MC9qWmxJUWlXSm5iZHo5N2lTMXRqdGZqQWtZSU9MNUZrZG5oUi9TT1NM?=
 =?utf-8?B?M3lKa3lrTGxGQUF4dk00NVRUSVVRNTVUd0didXc1RnZaUi80Q083ZElQa1ZY?=
 =?utf-8?B?bCttVzZxU0NsbWRkUFVpeDlRUmNPc3h1WDFpS3l0WGNwMmtRVVhMYklxcWJ2?=
 =?utf-8?B?UDJKSW9RVmFyN1JwYXA1aTFMU2xtNjJiWWs5VjdLNzVrRjZ1Q2NlckoxVEhr?=
 =?utf-8?B?VmorUWxONlZydUFpOE8rVFRiNklTNDZuZ1hjWTJTSUJDc0QrZVczMDNxM3Ez?=
 =?utf-8?B?Q2ZEckp1bC9KSWtqbFM5K3RjYi9xNm1GNU9sTnBLZ2Y0K0pqdXRJaEIxVk56?=
 =?utf-8?B?ck9tdC9haEtLWjFXVHRwY0lUcUtDRDNLSjJSUlh2bGUzR0g1VlpBanRWdDZV?=
 =?utf-8?B?TlR3UVdLQTNHdmx6S0NOZWdubDdKVjdVYlpLTXBBQ2l5NU81Yk44eGwyRlZT?=
 =?utf-8?B?L0pkVURjRHhRQ2R5ajdZc3YwZ0VCOVNKQmo1RWNaemlqUGlZTEpGOGVBSFJF?=
 =?utf-8?B?ZTczbEc3cVEzeGVmT2lZcjVBVUNGUkxESmloQjBPQnNBQ2ZBdXhGYU8yaUJH?=
 =?utf-8?B?WHZSQVdSMlRNdWNhL1gxQzk5Ylczakw3ak1WcVdWd3Y3NW5jUUp0TE9uWWp2?=
 =?utf-8?B?eTc5M0J1Ync2TVh5dHdNYkxadVh5aHdjZGZscXhWWm1GWGd2N0E1bHFKOWV0?=
 =?utf-8?B?OXpRRVErL0c4eCtwc1ZPVXVIY1BPUWQzb2kzUFZmSC9OaEdqS1ZhSGJqN3lk?=
 =?utf-8?B?WjZRN29hcUtuNG80NW5vV3pBcXFETVI5VnZBSVNrYldTYTRBYlp5VGQ5UHJa?=
 =?utf-8?B?ZkQrOGVWWWZUOVRMU3ZuejRIdXJaM0swZmQwbXhtSlg0ak4vMVpmQ0svMUh0?=
 =?utf-8?B?V2RoeEVHdEVabEp2U2VqdW5yYnl0NXlHa1V4TWlQS1ArR2N6NzduZlp4ekd6?=
 =?utf-8?B?NVhaSUR1K2U5TVBoMXd6ZktCR3ZrNVo1UDZ3TmRsbUI3QUtCMTA4S2FuSzYy?=
 =?utf-8?B?dHI5S2FQZDlRZW9SK2JMSjBsby9PNEl4bVNrM3lXbWxFSVl3SjZxZklJMHhE?=
 =?utf-8?B?L0FFV1dvbXdpcmZ4NWZZS2R6dWExb3o0dWNic25UampLWW5WaWM0UkJCMW5w?=
 =?utf-8?B?ckplS0ZId1hmYWtSTEJzbCtUdU9kY0RmK3R2ZlI3cGRIWXZ3NTVVZmJoNFln?=
 =?utf-8?B?a0pQcjgyRVhoRnNkNWVIZXVFZnZ0bGpPOG42R1JvUmdtT0ZkQXBRQ2ovQWY4?=
 =?utf-8?B?dUZ0MzNPNm5jUFlleEVZRTNSM0dUTDduZEUxaFBuNm5VdjdpRmQ5L216SmxH?=
 =?utf-8?B?SW9MNmx4L1U5cE9maW1DdDBZa0s1SHlQY0ZCdTQzSVZNU0hhYVFKZEpIanpt?=
 =?utf-8?B?SVg2d2F2bUZwS24wMy9VYzF4cVRxQW5KSzI4RTZaZ2w2NEZPZmRNcGNUU0t2?=
 =?utf-8?B?Tk0ybStmamZaWGRIYk9jQUJQMlhRRndlZGZqYzlnV1JhWTNXdkVIVEZzRTBQ?=
 =?utf-8?B?U1crMjhIb2YwNWJSOFFSWmtNU1QzVGpDL1N1WVR1YlFCRkdCejI5enJxTE9T?=
 =?utf-8?B?NHQ1cHB6Uzg2VTBod09NbWYvcWR3ZG9UYXNNMVpYR0ZjcnFSTzZzV3ltZVBa?=
 =?utf-8?B?b2l2KzhpSHdGN0doc2lobW5MRWVUYUFqeks4Q3pEeWVudTlvL3dqam1RNitY?=
 =?utf-8?B?cmIzRTdVM2RsZHBCWVk4VlZUd25KVXN3WjVxcitZa0cyaWZwdWZpKzlhQU8z?=
 =?utf-8?B?WVVaU0M1ZC9IQUtvMXpWSkc0d05xZUxiSkJZRzRoeEc0SlF6Ly9XVzMrTk1Z?=
 =?utf-8?B?cWpDRnYwbHgvS0QwdmxuQTdLbm1KWUNRSjcyQkxuNWVLQm1Cd1NFRWR0QTlw?=
 =?utf-8?Q?IcNB1txvrcjakEuUWFWZixnUT2GXr2fv?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YVhEQkVuc1RVQzFCdjNsNDc3RUw3SjcwOHVhWlpVREN3Qm1nd1pPa1VSVXdJ?=
 =?utf-8?B?dkRvQXpRbjlMaUtCWlhmWVdFSWZVSkxZNW5ydDRGMkVGdEREOVZtaEZIODdl?=
 =?utf-8?B?THVNRG9SaVFCZytTejRhUWE1TVRhcVY5VjBHVitWQkdKWDlDcWJaMEZVSGVp?=
 =?utf-8?B?VDhxVU9tT2VCYTFaeWlMK3hZNzRmVTl0bUVyM203QUM2RTB2eUZhZzB5LytU?=
 =?utf-8?B?Uk9qVXBZVUlBT0dzZHhzVm8wMGtLSG1WejhybmNBbVVvemt5R2QxV2VVZitE?=
 =?utf-8?B?bzR4OGtTL3lBb2tRT0ZKcHRBejRvdVcvcUNvM2tJZ0NSMjdtdlk1Z1oySUc1?=
 =?utf-8?B?elRlYjlRQ3JFZm1hODYzMXpPNFkwaTJYeXAyVjRHRFM4cmtybXMrVUtDUGlU?=
 =?utf-8?B?aGVVa1JndnQ0ajlKanBmM01PMEk0SlRvMXlYZzlrSXBROTgydzdXRWlWZnk0?=
 =?utf-8?B?VDNzWWpROGlYRnRsOEh3d2dYV2phNVBPZG5TMTRQLzVVc0JnV2FRempEK3Vx?=
 =?utf-8?B?WUJBWXlMdGxGc0tVa0pDeTJJSWt5ZmNxQ2E3SmJJRGRiY2RkZ3dzY1h5ajVP?=
 =?utf-8?B?SmoyZ2o4RFVsNDJZWk9CQzVsZHZmeE1HVVc4d2JPTmduV3Y5TkhsR3c0NXpN?=
 =?utf-8?B?bHpadjJGQ1RuUkNSdVdCZWNFZ2JBekJVVWhJUTB0eDNiL25xQkxQVGluRDV4?=
 =?utf-8?B?dk9LM3FQS1BZaEo1d0pJRUNVWkZIZUhRMklFU2tiQk9NUFlzemM1RUZPTWFw?=
 =?utf-8?B?MEtkam1Fc3djbExTV20vMGVRTlkxSUNlRVB4UkM3ckFicVlMMzVZWlI3Vllj?=
 =?utf-8?B?bHlxd3dmZHhkREpqcWxISEJmL3VYaXNFTWpSOFVma0pQcHpTZHpGNWlwTlYw?=
 =?utf-8?B?b1ZVdU5ESisrN3g4bnk1M2RhckVpNlplRHZhalVvLy9wby9IRWJtZlJKNytn?=
 =?utf-8?B?Q2dYWmlGWXlXSWIrNmtSOHJ0Qm9FYnk5TEw1bHBxQkgzZ2FDYzdiNVR4QU05?=
 =?utf-8?B?U2hYVVBpYXdROEViR1QybjRGUVpKRDhqOXhTaGVpbGJTRHpoNTFIT0NqRkNZ?=
 =?utf-8?B?T2dwNlRmSjgzcGdOVzFKMTlmTk43MFJoMnBreGRMa1FKaEExN3J2bk5CWGFn?=
 =?utf-8?B?YjJCYjdvRndqSmVIdVNla0ZBd0xkd3hqSkdYS1NEYlpTQVRrMnN6WVNrcENp?=
 =?utf-8?B?MCtuVkRxVXJvR2tKd2RRK25nM1ZEZ2hQNVFnZzZ4V2ZFK083aDdkVEtRcFA5?=
 =?utf-8?B?UmxHY2ZtUGU1T1kzeFJObzgwWVEyR0VyZkVFQ1QvcVNIYjRVNnVDdkFMOWYy?=
 =?utf-8?B?YmFKaHVJSGFjOHpUa0haQWtvcFFWbmhpRXdPNzY2TGg3cHk2VGRRMSs2SnMz?=
 =?utf-8?B?NDZ5dUdNUTF1Sm9BWXhJVCtMb21hQkpWUzRyWG95eG12YVhWZW1HUFhUUGd1?=
 =?utf-8?B?Z2Zva2lNZGtTdm5HQ01sdVdJM0pjREsrK0ZtMmFtZ0JsV3BBZ0tsMUJOUVhh?=
 =?utf-8?B?bkZwRldIbisrYUJUUDBtNmlKblhlaU1aNmdkQlV4SExyaEt2OFNHTGg1c2sw?=
 =?utf-8?B?MzkzNjAyRWlqdmpNL3VoTEJ2OXJ4S2NmMUlBUy9vNDJOWVRtMHhhMXpLM2Rm?=
 =?utf-8?B?c0p6eGlmOW5XOU5CcU9CNWdrUk5aeTR2N3U3bWkrU25Tc1VTWUoxNWJQZzM4?=
 =?utf-8?B?NTgwV1JJVVZjLys5RlBVUk16cWNDazlsTmpFWlNTcnRoZXpNcGpzVzJsYnhG?=
 =?utf-8?B?RFQrUmwrdEZkcXZBMnNDL2lWSWhpZmY0RDZBUy9DSWdDUVRYWDNJcW5aUFM0?=
 =?utf-8?B?bStydS9IcnFtb2ZpUUpoOTVNV3V4aTdMdkorSDBtU1Bad0dCVTBNZ1hEeHBt?=
 =?utf-8?B?NFZnNlozRlgzbDRPRFRSZVdqajVmQXg2Zk52ZVUvMWtJR0V0aFovNFN2L0lV?=
 =?utf-8?B?S1B1eTNGd2hPZGJBVWhsRy9Cb2d1cWpDSFEvR2lXS2hUdFRxSC8rYncvRUFS?=
 =?utf-8?B?aGNiK1NCQjdXMnh1RWkxcUZNKzlYK2RhTlViSHc2SlFqUkl4RGRVRE5PR01z?=
 =?utf-8?B?dHd4Vm1zcCtnYUJtS0tzaDUvNXluYldYVkJheXVVcGVHazVPYmtLZlE2UXlk?=
 =?utf-8?B?WnF5RXVFK0hzcDlaZGpEMEhLR1dGeEZzbktLaHZFL2RUQ094UWdRdnlnY0JR?=
 =?utf-8?B?L1E9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e6817f33-ba0e-4198-cd15-08de21d30948
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 10:05:41.1894
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: NHKlggNLkEYCMlG069Dup31q695VE90xhZdfqkoYzwPXstkScNxBIu70CGHVe13lc1E2B+VA+c6cHRA7bR+Iku1nyhsx2UgxDGy0q6uNb4Y=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6142



On 12.11.25 08:50, Jan Beulich wrote:
> On 11.11.2025 18:54, Grygorii Strashko wrote:
>> This series introduces possibility to disable 32-bit (COMPAT) interface support
>> in the following cases:
> 
> The use of plural here ...

should be "case"

> 
>>        - Only PVH domains are used
>>        - Guests (OS) are started by using direct Direct Kernel Boot
>>        - Guests (OS) are 64-bit and Guest early boot code, which is running not
>>          in 64-bit mode, does not access Xen interfaces
>>          (hypercalls, shared_info, ..)
> 
> ... makes this an OR list, which I don't think would be correct.

It is AND for all items.
I think I worded it better in Patch 4

  PVH domains,
> for example, can well be 32-bit ones, can't they? Otoh the latter two points
> look as if they really enumerate alternatives. Can you clarify please what is
> meant?
> 
> Jan
> 
>> If above criterias are met the COMPAT HVM interface become unreachable and can be disabled.
>> Coverage reports analyze and adding guard (debug) exceptions in hvm_hypercall/hvm_do_multicall_call
>> and hvm_latch_shinfo_size() confirm that COMPAT HVM interface is unused for safety use-case.
>>
>> Grygorii Strashko (5):
>>    x86: hvm: dm: factor out compat code under ifdefs
>>    x86: hvm: compat: introduce vcpu_is_hcall_compat() helper
>>    x86: hvm: factor out compat code under ifdefs
>>    x86: pvh: allow to disable 32-bit interface support
>>    x86: constify has_32bit_shinfo() if !CONFIG_COMPAT
>>
>>   xen/arch/x86/hvm/Kconfig          | 19 +++++++++++++++-
>>   xen/arch/x86/hvm/dm.c             |  2 ++
>>   xen/arch/x86/hvm/hvm.c            | 22 +++++++++++++-----
>>   xen/arch/x86/hvm/hypercall.c      | 37 +++++++++++++++++++++++--------
>>   xen/arch/x86/hypercall.c          |  6 +----
>>   xen/arch/x86/include/asm/domain.h |  3 ++-
>>   xen/common/kernel.c               |  2 +-
>>   xen/include/xen/sched.h           |  9 ++++++++
>>   8 files changed, 78 insertions(+), 22 deletions(-)
>>
> 

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 10:36:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 10:36:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159669.1487978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8Cn-0003GY-Bx; Wed, 12 Nov 2025 10:36:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159669.1487978; Wed, 12 Nov 2025 10:36:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8Cn-0003GR-8Z; Wed, 12 Nov 2025 10:36:01 +0000
Received: by outflank-mailman (input) for mailman id 1159669;
 Wed, 12 Nov 2025 10:36: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=LXb0=5U=bounce.vates.tech=bounce-md_30504962.6914630c.v1-b47811629e5f415c9e9276478d1b43fa@srs-se1.protection.inumbo.net>)
 id 1vJ8Cm-0003GH-6m
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 10:36:00 +0000
Received: from mail136-17.atl41.mandrillapp.com
 (mail136-17.atl41.mandrillapp.com [198.2.136.17])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5fbe819c-bfb3-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 11:35:58 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4d60DX37GNzPm0ZmB
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 10:35:56 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 b47811629e5f415c9e9276478d1b43fa; Wed, 12 Nov 2025 10:35: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: 5fbe819c-bfb3-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1762943756; x=1763213756;
	bh=uopzZcAexBVhZB+T7b3Dzoc1+hwrJIO3k293J16pMOk=;
	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=WR9We+54ceraJ1wknJjr4ITHgSF8etRoiVJtPcfcAW0guu75S90bFlN04eEg350Bf
	 Xrwh++RbjMXQajjnxcpAyXEGjE3H+lUCKtc8q7jwgMZnfYTvIjFfaOna0RZDW1HbgE
	 zBTcic0lj08WjlQuKT9c3JFOfErywr7qdNKQdKq0VYopEZkfshU6zVvqMDAWrCyVdI
	 sprDrxbgYVD2oXrtp88Vh5pHxwbTsgYwwZvcta/WNqXH2yLFzX29zTTNwLDOQJQ2ZQ
	 GxiWZgnyuGNqn5npXrtum5U4lzDeRlUKvnArZ/BBis5ldqydozklI4zwe69YyHjPZx
	 bzXAdFQTNf1Bw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1762943756; x=1763204256; i=teddy.astie@vates.tech;
	bh=uopzZcAexBVhZB+T7b3Dzoc1+hwrJIO3k293J16pMOk=;
	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=mPDlsLTc0dY+GrvN5AigmqVPlq3q574D/0ACQ9P986AyGr82l7LWkW4uNw+sURHTZ
	 6sY/9T+j2pVAi/r94TgIObBm3+ggujchXOrzUUcw6vke1kvuWkpsek0NbTHepb/iGC
	 sVwxHhTlMl11+iV8PBRlIk+IN9SFEHwiryUutYos54Ox3kCbdLFHJ9MLz1lnRNWJ9H
	 u3EipM9+MqvQd0Wys/1r9ceySqMc9Jp73TOYnPFTbbkPYSO6CqRF4+Of4q33mQYA9Q
	 hgLzEXS1rsgGLBcniOjzd0aKNe50e3ItmHYeiRHwo6jGSqFyrCFaMQPsBed1NmmpL+
	 rEj8ZVrI/ZO/g==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH=20for-4.22]=20x86/hvm:=20Introduce=20force=5Fx2apic=20flag?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1762943754497
Message-Id: <c1d2fece-02fe-4c3a-b08b-ac8525277787@vates.tech>
To: xen-devel@lists.xenproject.org
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Juergen Gross" <jgross@suse.com>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Alejandro Vallejo" <alejandro.vallejo@cloud.com>, "Grygorii Strashko" <grygorii_strashko@epam.com>
References: <d498a50f6187b362ac5da3c6a7a7c348f35dc4b3.1761761288.git.teddy.astie@vates.tech>
In-Reply-To: <d498a50f6187b362ac5da3c6a7a7c348f35dc4b3.1761761288.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.b47811629e5f415c9e9276478d1b43fa?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251112:md
Date: Wed, 12 Nov 2025 10:35:56 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 29/10/2025 =C3=A0 19:26, Teddy Astie a =C3=A9crit=C2=A0:
> Introduce a new flag to force the x2APIC enabled and preventing a
> guest from switching back LAPIC to xAPIC mode.
> 
> The semantics of this mode are based IA32_XAPIC_DISABLE_STATUS
> architectural MSR of Intel specification.
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
> This feature can be useful for various reasons, starting with SEV as
> it is complicated (especially with SEV-ES) to handle MMIO, and legacy
> xAPIC is one thing that needs MMIO intercepts (and Linux uses it during
> boot unless x2APIC is initially enabled, even if it switches to
> x2apic afterward). It could also be interesting to reduce the attack
> surface of the hypervisor (by only exposing x2apic to the guest).
> 
> As it can allow to have MMIO-less guest (using PVH), perhaps it can
> be enough for avoiding the problematic cases of virtualized INVLPGB
> (when we have it).
> 
> In my testing, Linux, FreeBSD and PV-shim works fine with it; OVMF
> freezes for some reason, NetBSD doesn't support it (no x2apic support
> as Xen guest). HVM BIOS gets stuck at SeaBIOS as it expects booting
> with xAPIC.
> 
> On Intel platforms, it would be better to expose the
> IA32_XAPIC_DISABLE_STATUS architectural MSR to advertise this to
> guest, but it's non-trivial as it needs to be properly exposed
> through IA32_ARCH_CAPABILITIES which is currently passed-through.
> 
>   docs/man/xl.cfg.5.pod.in              |  7 +++++++
>   tools/libs/light/libxl_types.idl      |  1 +
>   tools/libs/light/libxl_x86.c          |  4 ++++
>   tools/xl/xl_parse.c                   |  1 +
>   xen/arch/x86/domain.c                 |  2 +-
>   xen/arch/x86/hvm/hvm.c                |  2 ++
>   xen/arch/x86/hvm/vlapic.c             | 23 ++++++++++++++++++++++-
>   xen/arch/x86/include/asm/domain.h     |  2 ++
>   xen/arch/x86/include/asm/hvm/domain.h |  3 +++
>   xen/include/public/arch-x86/xen.h     | 12 +++++++++++-
>   10 files changed, 54 insertions(+), 3 deletions(-)
> 

I guess for now, it would be preferable overall to :
- just add a way to enable it by default, not lock in it in x2apic mode
- the ability to lock it down (i.e disable xAPIC at compile time) could 
be introduced separately

I'm not completely decided on the naming of the option, maybe something 
like :
x2apic_mode =3D <default> | <pre_enable> (or just enable ?)

`default` will keep the current behavior, or force x2apic if xAPIC is 
disabled at compile time; `pre_enable` will enable it by default, but OS 
may be able to go back to xAPIC mode if supported.

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Nov 12 10:43:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 10:43:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159680.1487989 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8Jo-0004uh-3f; Wed, 12 Nov 2025 10:43:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159680.1487989; Wed, 12 Nov 2025 10:43: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 1vJ8Jn-0004ua-Vy; Wed, 12 Nov 2025 10:43:15 +0000
Received: by outflank-mailman (input) for mailman id 1159680;
 Wed, 12 Nov 2025 10:43: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=DUs6=5U=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vJ8Jm-0004uU-EN
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 10:43:14 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 602d0799-bfb4-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 11:43: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 7755A1515;
 Wed, 12 Nov 2025 02:42:59 -0800 (PST)
Received: from [10.57.41.24] (unknown [10.57.41.24])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A008F3F5A1;
 Wed, 12 Nov 2025 02:43: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: 602d0799-bfb4-11f0-980a-7dc792cee155
Message-ID: <cdb4b97a-415b-4dba-877b-0cd570381a6d@arm.com>
Date: Wed, 12 Nov 2025 11:42:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/12] mm: enable lazy_mmu sections to nest
To: Ryan Roberts <ryan.roberts@arm.com>, linux-mm@kvack.org,
 David Hildenbrand <david@redhat.com>
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-8-kevin.brodsky@arm.com>
 <999feffa-5d1d-42e3-bd3a-d949f2a9de9d@arm.com>
 <cc9dc398-b9c5-4bb8-94ad-7e7f3ddd5b4f@arm.com>
 <824bf705-e9d6-4eeb-9532-9059fa56427f@arm.com>
 <58fd1a6e-f2c4-421c-9b95-dea4b244a515@arm.com>
 <8f70692c-25a9-4bd0-94ab-43ab435e4b1b@arm.com>
From: Kevin Brodsky <kevin.brodsky@arm.com>
Content-Language: en-GB
In-Reply-To: <8f70692c-25a9-4bd0-94ab-43ab435e4b1b@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/11/2025 17:03, Ryan Roberts wrote:
> On 11/11/2025 15:56, Kevin Brodsky wrote:
>> On 11/11/2025 10:24, Ryan Roberts wrote:
>>> [...]
>>>
>>>>>> +		state->active = true;
>>>>>> +		arch_enter_lazy_mmu_mode();
>>>>>> +	}
>>>>>>  }
>>>>>>  
>>>>>>  static inline void lazy_mmu_mode_disable(void)
>>>>>>  {
>>>>>> -	arch_leave_lazy_mmu_mode();
>>>>>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>>>>>> +
>>>>>> +	VM_WARN_ON_ONCE(state->nesting_level == 0);
>>>>>> +	VM_WARN_ON(!state->active);
>>>>>> +
>>>>>> +	if (--state->nesting_level == 0) {
>>>>>> +		state->active = false;
>>>>>> +		arch_leave_lazy_mmu_mode();
>>>>>> +	} else {
>>>>>> +		/* Exiting a nested section */
>>>>>> +		arch_flush_lazy_mmu_mode();
>>>>>> +	}
>>>>>>  }
>>>>>>  
>>>>>>  static inline void lazy_mmu_mode_pause(void)
>>>>>>  {
>>>>>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>>>>>> +
>>>>>> +	VM_WARN_ON(state->nesting_level == 0 || !state->active);
>>>>> nit: do you need the first condition? I think when nesting_level==0, we expect
>>>>> to be !active?
>>>> I suppose this should never happen indeed - I was just being extra
>>>> defensive.
>>>>
>>>> Either way David suggested allowing pause()/resume() to be called
>>>> outside of any section so the next version will bail out on
>>>> nesting_level == 0.
>>> Ignoring my current opinion that we don't need pause/resume at all for now; Are
>>> you suggesting that pause/resume will be completely independent of
>>> enable/disable? I think that would be best. So enable/disable increment and
>>> decrement the nesting_level counter regardless of whether we are paused.
>>> nesting_level 0 => 1 enables if not paused. nesting_level 1 => 0 disables if not
>>> paused. pause disables nesting_level >= 1, resume enables if nesting_level >= 1.
>> This is something else. Currently the rules are:
>>
>> [A]
>>
>> // pausing forbidden
>> enable()
>> Â  Â  pause()
>> Â  Â  // pausing/enabling forbidden
>> Â  Â  resume()
>> disable()
>>
>> David suggested allowing:
>>
>> [B]
>>
>> pause()
>> // pausing/enabling forbidden
>> resume()
>>
>> Your suggestion is also allowing:
>>
>> [C]
>>
>> pause()
>> Â  Â  // pausing forbidden
>> Â  Â  enable()
>> Â  Â  disable()
>> resume()
> I think the current kasan kasan_depopulate_vmalloc_pte() path will require [C]
> if CONFIG_DEBUG_PAGEALLOC is enabled on arm64. It calls __free_page() while
> paused. I guess CONFIG_DEBUG_PAGEALLOC will cause __free_page() ->
> debug_pagealloc_unmap_pages() ->->-> update_range_prot() -> lazy_mmu_enable().

Well, I really should have tried booting with KASAN enabled before...
lazy_mmu_mode_enable() complains exactly as you predicted:

> [Â  Â  1.047587] WARNING: CPU: 0 PID: 1 at include/linux/pgtable.h:273
> update_range_prot+0x2dc/0x50c
> [Â  Â  1.048025] Modules linked in:
> [Â  Â  1.048296] CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted
> 6.18.0-rc3-00012-ga901e7f479f1 #142 PREEMPT
> [Â  Â  1.048706] Hardware name: FVP Base RevC (DT)
> [Â  Â  1.048941] pstate: 11400009 (nzcV daif +PAN -UAO -TCO +DIT -SSBS
> BTYPE=--)
> [Â  Â  1.049309] pc : update_range_prot+0x2dc/0x50c
> [Â  Â  1.049631] lr : update_range_prot+0x80/0x50c
> [Â  Â  1.049950] sp : ffff8000800e6f20
> [Â  Â  1.050162] x29: ffff8000800e6fb0 x28: ffff700010014000 x27:
> ffff700010016000
> [Â  Â  1.050747] x26: 0000000000000000 x25: 0000000000000001 x24:
> 00000000008800f7
> [Â  Â  1.051308] x23: 0000000000000000 x22: fff00008000f7000 x21:
> fff00008003009f8
> [Â  Â  1.051884] x20: fff00008000f8000 x19: 1ffff0001001cdea x18:
> ffff800080769000
> [Â  Â  1.052469] x17: ffff95c63264ec00 x16: ffff8000800e7504 x15:
> 0000000000000003
> [Â  Â  1.053045] x14: ffff95c63482f000 x13: 0000000000000000 x12:
> ffff783ffc0007bf
> [Â  Â  1.053620] x11: 1ffff83ffc0007be x10: ffff783ffc0007be x9 :
> dfff800000000000
> [Â  Â  1.054203] x8 : fffd80010001f000 x7 : ffffffffffffffff x6 :
> 0000000000000001
> [Â  Â  1.054776] x5 : 0000000000000000 x4 : fff00008003009f9 x3 :
> 1ffe00010006013f
> [Â  Â  1.055348] x2 : fff0000800300000 x1 : 0000000000000001 x0 :
> 0000000000000000
> [Â  Â  1.055912] Call trace:
> [Â  Â  1.056100]Â  update_range_prot+0x2dc/0x50c (P)
> [Â  Â  1.056478]Â  set_memory_valid+0x44/0x70
> [Â  Â  1.056850]Â  __kernel_map_pages+0x68/0xe4
> [Â  Â  1.057226]Â  __free_frozen_pages+0x528/0x1180
> [Â  Â  1.057601]Â  ___free_pages+0x11c/0x160
> [Â  Â  1.057961]Â  __free_pages+0x14/0x20
> [Â  Â  1.058307]Â  kasan_depopulate_vmalloc_pte+0xd4/0x184
> [Â  Â  1.058748]Â  __apply_to_page_range+0x678/0xda8
> [Â  Â  1.059149]Â  apply_to_existing_page_range+0x14/0x20
> [Â  Â  1.059553]Â  kasan_release_vmalloc+0x138/0x200
> [Â  Â  1.059982]Â  purge_vmap_node+0x1b4/0x8a0
> [Â  Â  1.060371]Â  __purge_vmap_area_lazy+0x4f8/0x870
> [Â  Â  1.060779]Â  _vm_unmap_aliases+0x488/0x6ec
> [Â  Â  1.061176]Â  vm_unmap_aliases+0x1c/0x34
> [Â  Â  1.061567]Â  change_memory_common+0x17c/0x380
> [Â  Â  1.061949]Â  set_memory_ro+0x18/0x24
> [...]


> Arguably you could move the resume() to before the __free_page(). But it just
> illustrates that it's all a bit brittle at the moment...

Difficult to disagree. With things like DEBUG_PAGEALLOC it becomes very
hard to know what is guaranteed not to use lazy MMU.

>>> Perhaps we also need nested pause/resume? Then you just end up with 2 counters;
>>> enable_count and pause_count. Sorry if this has already been discussed.
>> And finally:
>>
>> [D]
>>
>> pause()
>> Â  Â  pause()
>> Â  Â  Â  Â  enable()
>> Â  Â  Â  Â  disable()
>> Â  Â  resume()
>> resume()
>>
>> I don't really mind either way, but I don't see an immediate use for [C]
>> and [D] - the idea is that the paused section is short and controlled,
>> not made up of arbitrary calls. 
> If my thinking above is correct, then I've already demonstrated that this is not
> the case. So I'd be inclined to go with [D] on the basis that it is the most robust.
>
> Keeping 2 nesting counts (enable and pause) feels pretty elegant to me and gives
> the fewest opportunities for surprises.

Agreed, if we're going to allow enable() within a paused section, then
we might as well allow paused sections to nest too. The use-case is
clear, so I'm happy to go ahead and make those changes.

David, any thoughts?

- Kevin

>
> Thanks,
> Ryan
>
>> A potential downside of allowing [C] and
>> [D] is that it makes it harder to detect unintended nesting (fewer
>> VM_WARN assertions). Happy to implement it if this proves useful though.
>>
>> OTOH the idea behind [B] is that it allows the caller of
>> pause()/resume() not to care about whether lazy MMU is actually enabled
>> or not - i.e. the kasan helpers would keep working even if
>> apply_to_page_range() didn't use lazy MMU any more.
>>
>>>>>> +
>>>>>> +	state->active = false;
>>>>>>  	arch_leave_lazy_mmu_mode();
>>>>>>  }
>>>>>>  
>>>>>> [...]


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 10:51:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 10:51:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159699.1488032 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8SB-0007PP-1S; Wed, 12 Nov 2025 10:51:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159699.1488032; Wed, 12 Nov 2025 10:51: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 1vJ8SA-0007O7-TF; Wed, 12 Nov 2025 10:51:54 +0000
Received: by outflank-mailman (input) for mailman id 1159699;
 Wed, 12 Nov 2025 10:51: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=ulhw=5U=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vJ8S9-0006fP-U2
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 10:51:53 +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 9947d3f4-bfb5-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 11:51:53 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PAWPR03MB9786.eurprd03.prod.outlook.com
 (2603:10a6:102:2e8::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Wed, 12 Nov
 2025 10:51:48 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%7]) with mapi id 15.20.9298.015; Wed, 12 Nov 2025
 10:51: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: 9947d3f4-bfb5-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xq3AMRceXQOpZuHdxUeHS/m2Yr/1YG3voPokSFkMINk0XAc2XWhxX3YDOrqEz8JYb9jX7Pln7t5Mj6SkV9fgzD6aKVMLRyVUDyqohWnqF+0YR5WiiYuu8OtkZqHFowa+CB5r27qI6UHrsLGw52Y2owOxeP7pkPMpYbIYyUJArS6/qKwjYxY3rvuqYG/1q4ittA6QpWAMXF+JjZUhyuGgvI77DRJ7rfuatD0733c5xsTVHnCShKLX2XHBVwqaEQkKJb0mOvbflGeZOynAzmo7cOIkF/3zuJgc59Ak9yIgdQ45jlpEpGclYepJ/3tOtfy0vlneksXWgPFqlNYprZ//Bw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=v7Xue1J/5TT4npEO/DAmlQiS+zcOzlt5re/MztD1gyY=;
 b=Zo+VdohhfjAgn6TpdFOBW1jtFpSCFiK8IvD4bBWppiPY8Ye3r9YqfDR61vGtyNS2XTVxsIwpBGTmK9/DrHrNwUfGpmgGi7rM0i/4VWDVeePsodYKbY5H0C/nNo25f7a7gZ1vsLe5nQ6nI4zkNiHzA4uB80LKdqxPejlbOlHW0DYOXmm3PcXKR4Wn6yGKIx2SOBQs/DPf4t/39WqYAWS/bX+Jdg7QYDAgqt9K7QA6CnQ88udlqu6cWh1gcTZ7Ws99AnNTLxf/wrMPuFpTjlckR6kEjf4hbNVqPVZNKlFApcywMOR4jMYJCVmTUPCDUSfKySdl/aPwQFkD1IrjLKNnzg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=v7Xue1J/5TT4npEO/DAmlQiS+zcOzlt5re/MztD1gyY=;
 b=vJbu7+qPn3b+54iPwQFRusTGws/QVFFTFTOBVOb2atIAr2O4KUMP9Ue5HzUoH4AdKaf2reVtUPbx57Gcm6eilIlryDls7rnZLk8AvA5jS/OwAdo+zDnAVSbb6seKMMgLJfiOB8Zl9Hf1t9KWJsN8neYrhrHJd5T5qPILlUnMxRhg4oMwijgU8vXFRdEW/MYOFsTxpFJqdri9ClBnO234pyw6TO8P8FhsPOHV8OGwtHH7a79giLTTM32S/1f9DlEY7rlFvmKdusJ4nPW3yAQnGnyOH1Uxx55ItlXK1W/YHNWLqogsOaa+h5Yk5VcOAAxNQXwkl3yVGkSjlBlePY+9mg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v4 4/8] arm/irq: Migrate IRQs from dyings CPUs
Thread-Topic: [PATCH v4 4/8] arm/irq: Migrate IRQs from dyings CPUs
Thread-Index: AQHcU8JYvjT2yDm5JUiekiWBeQTl2w==
Date: Wed, 12 Nov 2025 10:51:48 +0000
Message-ID:
 <6371ac96102f48b55ffd884656770187ed3a7f84.1762939773.git.mykyta_poturai@epam.com>
References: <cover.1762939773.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1762939773.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_|PAWPR03MB9786:EE_
x-ms-office365-filtering-correlation-id: 28371c27-a8b0-463d-f3a7-08de21d97a9b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?Chr7kuPHwSmrOW3fu4daLM2bZj+xl3vtqgGCRvOJq62ZlEFQGaq5ObuBDU?=
 =?iso-8859-1?Q?NK9dhLwQoqmNoTKMVsCBYnDxYOQyWi/+sR3l9LouS52j72nuud8MVqHdMA?=
 =?iso-8859-1?Q?u9owY12NFjKzoMIhJpiADXVy1uuEAJ63Jbepq1UdIueetspsDWEA7aEHPN?=
 =?iso-8859-1?Q?EQc6HN3xz1mSMIkehrln7w+PtETwBqqMiqqc4kmuq9kniuN7FxVZVZiMNu?=
 =?iso-8859-1?Q?dHaD43yscZTeP9Bwfddd/C4R/JUIpTl5ZwF/JvgKCQGxgZirXNqBLYYRgB?=
 =?iso-8859-1?Q?atUtBqbLwL7TM5ZrssudlqYJhTaFZOgn5RZmyF4FqjDr2ve3BRAaxkeenC?=
 =?iso-8859-1?Q?1koayFURvNm9TmMZuNdivvgPgDq23SYcqg434gP0/v4YpU8hQ99rtOyVdc?=
 =?iso-8859-1?Q?J2Js+1HgUlH61nzSHkregaawBECwq9cty5GY5Fn79E8jXof3ZxjWCf3utz?=
 =?iso-8859-1?Q?pUjt5RDJL2nBEC1gAwKw0g08N6MH4xyeyBNEfF5nrVj4NXfx9JPuXinXaM?=
 =?iso-8859-1?Q?rqIP59Ljj9uRL98f1ir9dsf9NuFEg1CSlo77EGKJxyqIavH1Gw74UHi6Y/?=
 =?iso-8859-1?Q?Gh/dDPKx3o+9sNzxjFVfJtdulwszqJkP3RTeegOURDcknbz5NbcA3sr+Yh?=
 =?iso-8859-1?Q?YvdXvzf6+9CdD6jfwNq2zG143agUL+oJAuIBIIAwNbiNVLGE/JhPEWzXbO?=
 =?iso-8859-1?Q?eJP+z/cfA+cEy2dm2eihPsajHmM8bbHr4jPUf2ANVLY9ZEG8IrhUFqtt+e?=
 =?iso-8859-1?Q?3h5ZCd9WeM21vXG2xDVtD2iN69lx17sx3PBx58/SoIkxI4OzTi7cIGvX18?=
 =?iso-8859-1?Q?AwFwv2rTIY3gy7QaVFVvFHa9AcqEKSJG2S/uoijUGZvHQDA9LWgsnq/0xe?=
 =?iso-8859-1?Q?d63vfk+IzyRJAn5+NqKT3Nl8i8qAM1AREPGpC2B1aMf2F5zQDx8RInevA4?=
 =?iso-8859-1?Q?9xjUJSXWlfuDE6R5dhyVv+PLTB6jia1BHg4kpemRXHNq63IrlBI72EfzKt?=
 =?iso-8859-1?Q?L+f+t7douKSobbsggKMZ4z2OB0ZMYMtCi84T5z9z3oTtN4Yz4NpI6L9YOL?=
 =?iso-8859-1?Q?qFPHT5853KBFW5fkFDD3Tp9COPh5h7s0w5v88yBTY5fhQJlkjpgTv6aLzt?=
 =?iso-8859-1?Q?YPnQbT3+jJ2xj9culfNEsoezwsYc4waGGYxAVXaCP7YmhQShBmxVsOzOw1?=
 =?iso-8859-1?Q?pVL0BqrnyzhdRBHwvJjPGEqKTRjDdeaSPFMvAekBPOeTCTjbykFrJVmDRN?=
 =?iso-8859-1?Q?ghvLpJ/2eXfkhUGxhoGxZ/iQAnzKIIV6NxNNDT1AWb8GOsmxLBlOi2uGc9?=
 =?iso-8859-1?Q?Do4DksL9Fao+L2D4scFjEhZE+3O8GdS+IHkR+3mzRe2YGMZ3EfrvtirDwB?=
 =?iso-8859-1?Q?HPNQi9Lfbv/xP+m4llMCAKG/B91XXo6Go7aOkg+e+G/sg4No8UH/YNFN/+?=
 =?iso-8859-1?Q?whD4PDW4swosv7J1LiaY7C0eQcNgLcTFSxstLTzi95dB33OTP9rsOvLUeT?=
 =?iso-8859-1?Q?SKRFwOOVcuFRkr27fdPuljTkorATUP0RG+MlEaxR+J6dZXGz5J0DYwa1QW?=
 =?iso-8859-1?Q?O6NjmrruoxdGL2y3G+lmuj68mv9U?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?euEOK8VJiDGSt8X31jLxDhxkhZjrFCa87PNb6I8JSnRzD8ncTiD4kQgaEz?=
 =?iso-8859-1?Q?F3IpRRk32XPtSJWmeqtrKTgnw+hVXC/tRTQyzywVxtNalccNpiam+kxhny?=
 =?iso-8859-1?Q?hV/oetGMZVhf72vsL1nVV9MJVFaxkhn6xq7V1hE+PxHxk7cvWFA5hM97I2?=
 =?iso-8859-1?Q?I4RrwPdvhjPUpFtcRYiTL+hd371A7IkkHEurGQygfzAmLtmqqtYRvJhALC?=
 =?iso-8859-1?Q?KFtGLfyjxwPka3Z+EB4AstRSOU3yrL//eRfX0LyPJ15FFjY8B0QTGvtppV?=
 =?iso-8859-1?Q?41gY/KVKLCz9VEmDDVrLnLWBWy8ZcT0sGrijU2POyBn0i+PiG+UGsRMspF?=
 =?iso-8859-1?Q?841NDcxwYpq2L/M/r2CReVPlAAWL17okyTWjSOJafBYZChXCZhWodYggkY?=
 =?iso-8859-1?Q?C20/HdjVEqiuw71pi5ZhXHap4Ma76GPrJVjVQS/aQZouHnSYa0gIllV6lq?=
 =?iso-8859-1?Q?HXVVd7U/RgT+tkABSrVHBL6DnK7LtYNVYdftIeoi+xeCYpYR8xCMkuhAvH?=
 =?iso-8859-1?Q?z4boFB94TNqH6JR4ZMD2SQdHv4YeAkINuCXWe8UDgzTF/KElLRFFEt9Qjw?=
 =?iso-8859-1?Q?/EDfOskzDSkBZToaWe3gEaVm/Y16yxAuRfUNV83Q3t0mMJLPbePS40CGYN?=
 =?iso-8859-1?Q?ofQa4noZx22Lg6UYB4CwM2i3SX+OYjk9DhM8iocX+VDkC8wfP9Bc0LmM5Q?=
 =?iso-8859-1?Q?e7LQx4fkjsNAxqB8/HmgqdlSkhIoKV6zu98Ma3Z5lZUGCoJFcKGn5ngaI6?=
 =?iso-8859-1?Q?JIXD8pq6+9nfI58WqdKxK6vQsnlVzKL5q+tMXm1jBneHrP8MATyp/E0sts?=
 =?iso-8859-1?Q?kVaS4mg/9fbWBPhhcL/vNU9yvLsty2FhA6VIMDb4iBF+FfxW6QCzGn9jOc?=
 =?iso-8859-1?Q?ArHnJDO8uJXdSFITgqtw/KXyMh37ppzG+z9bU8tloH6lGSthp+1zr3pokK?=
 =?iso-8859-1?Q?fp9sPrbA3naMY9om/Id+1yCFERBXnOAFGgGETLWOk+MLFnASjc/FmZZ4V/?=
 =?iso-8859-1?Q?cfdMBljUGee7iru2fEvn0UM4y+EWdFYwdazvTqY/VVPHJHWZ78KVsWCQ5U?=
 =?iso-8859-1?Q?RO819bsV0thocZWo5m/O4iaYNYaVUroxzV5UaHbmlAITgv5nqLiW8N4XwF?=
 =?iso-8859-1?Q?XVNaq/kbqxP73uy76tKZnOco7LcNIFfxlhMuVrdFJksDcz5zVTMzci/ujL?=
 =?iso-8859-1?Q?VGx1zEMK+bAry9/NRw7ujQ8leZRciNUYV3zF/odDh4XS2EXoz5ESYH6XQS?=
 =?iso-8859-1?Q?fLrloJozhKQfFjir+WV1vMK01d1raeOKrAMaacb3XaY6lbQyzyxPN9X/OV?=
 =?iso-8859-1?Q?7V7OIrPdRM4CKBBtzIuo44g8PVowI58fRdQYapBuNExlP0GOi2ogD3ZdB9?=
 =?iso-8859-1?Q?Da5xNLSN+xITcGz/dcZklW23AXEG4XB+ruoYX8k9UYPzIUOGqwH3khaV+j?=
 =?iso-8859-1?Q?y1T4xwTaktBhK7BiyTqLfSI9cvRQjdU82guJG3dsbINxC+VLusZZuIubar?=
 =?iso-8859-1?Q?bCUJ7f8ihmwSk0m5pCRXTJu+BS1YCF3wwu8xel9hig41XoY08tbzLxqYhV?=
 =?iso-8859-1?Q?7eqTU48vxNpGeyItLWvNQOWZf4+TD6d4OIQ68b5v4rjhtspxTDVSzLn50q?=
 =?iso-8859-1?Q?37Hkcso6R94R/3qpZRie+VVbJUGLqQyNURybVlhmLZ/rVXDMBzP24crA?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 28371c27-a8b0-463d-f3a7-08de21d97a9b
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Nov 2025 10:51:48.1152
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: l5FLPJZUFgD3iE5eRA1Q4RFrlG7pSqeuJWkOqEp91KdRQnJdDP0yzUAwwmAPkM7tCJbOxAqgdJeLNeU8faecng==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9786

Move IRQs from dying CPU to the online ones.
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.

If IRQ is to be migrated, it's affinity is set to a mask of all online
CPUs. With current GIC implementation, this means they are routed to a
random online CPU. This may cause extra moves if multiple cores are
disabled in sequence, but should prevent all interrupts from piling up
on CPU0 in case of repeated up-down cycles on different cores.

IRQs from CPU 0 are never migrated, as dying CPU 0 means we are either
shutting down compeletely or entering system suspend.

Considering that all Xen-used IRQs are currently allocated during init
on CPU 0, and setup_irq uses smp_processor_id for the initial affinity.
This change is not strictly required for correct operation for now, but
it should future-proof cpu hotplug and system suspend support in case
some kind if IRQ balancing is implemented later.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

v3->v4:
* patch introduced
---
 xen/arch/arm/include/asm/irq.h |  2 ++
 xen/arch/arm/irq.c             | 39 ++++++++++++++++++++++++++++++++++
 xen/arch/arm/smpboot.c         |  2 ++
 3 files changed, 43 insertions(+)

diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/irq.=
h
index 09788dbfeb..6e6e27bb80 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 evacuate_irqs(unsigned int from);
+
 #endif /* _ASM_HW_IRQ_H */
 /*
  * Local variables:
diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 28b40331f7..b383d71930 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -158,6 +158,45 @@ static int init_local_irq_data(unsigned int cpu)
     return 0;
 }
=20
+static void evacuate_irq(int irq, unsigned int from)
+{
+    struct irq_desc *desc =3D irq_to_desc(irq);
+    unsigned long flags;
+
+    /* Don't move irqs from CPU 0 as it is always last to be disabled */
+    if ( from =3D=3D 0 )
+        return;
+
+    ASSERT(!cpumask_empty(&cpu_online_map));
+    ASSERT(!cpumask_test_cpu(from, &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;
+
+    if ( cpumask_test_cpu(from, desc->affinity) )
+        irq_set_affinity(desc, &cpu_online_map);
+
+out:
+    spin_unlock_irqrestore(&desc->lock, flags);
+    return;
+}
+
+void evacuate_irqs(unsigned int from)
+{
+    int irq;
+
+    for ( irq =3D NR_LOCAL_IRQS; irq < NR_IRQS; irq++ )
+        evacuate_irq(irq, from);
+
+    for ( irq =3D ESPI_BASE_INTID; irq < ESPI_MAX_INTID; irq++ )
+        evacuate_irq(irq, from);
+}
+
 static int cpu_callback(struct notifier_block *nfb, unsigned long action,
                         void *hcpu)
 {
diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
index 7f3cfa812e..46b24783dd 100644
--- a/xen/arch/arm/smpboot.c
+++ b/xen/arch/arm/smpboot.c
@@ -425,6 +425,8 @@ void __cpu_disable(void)
=20
     smp_mb();
=20
+    evacuate_irqs(cpu);
+
     /* 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 Nov 12 10:51:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 10:51:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159696.1488008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8S8-0006tg-4c; Wed, 12 Nov 2025 10:51:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159696.1488008; Wed, 12 Nov 2025 10:51:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8S8-0006tY-1X; Wed, 12 Nov 2025 10:51:52 +0000
Received: by outflank-mailman (input) for mailman id 1159696;
 Wed, 12 Nov 2025 10:51: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=ulhw=5U=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vJ8S6-0006fP-T6
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 10:51:50 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 97583643-bfb5-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 11:51:49 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PAWPR03MB9786.eurprd03.prod.outlook.com
 (2603:10a6:102:2e8::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Wed, 12 Nov
 2025 10:51: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%7]) with mapi id 15.20.9298.015; Wed, 12 Nov 2025
 10:51:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97583643-bfb5-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DJbt7y3Nj7fFfrTfMVzz11x2RXLJBobBsNjV4lxrmAmG9DSIw7eLU0s5FAhlLS2zUqunVBtDNZEydKYPa2ynVvmZEEuipIkFQJ7TtXFHI3tRPe7hEhyl0jYTMQG5SvCXSXAN1y8JQIA06SNbBtHKzU0zVMZmE60+bqhs1YHSdnJH55DLa/LLGx3ZDUTzf+2yEcB4hF+qKbktTaHw0tCqwvcGf65A7WjbocFqoMJEGqud66JLpSQ4HXBX74QUpHJW1B1fw4eLQkXCsbX5E3z/ThXHITg8eYB95zlKLUYHCiqXYzh/wdfZlSuFQHG65R6YQOM8Os8+FfaFl0oFQoqZ+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=uKewhMtfhm9oAfuSqQfQEZ2zvUqEq/hkfVu6gP/SC5Q=;
 b=AdzSjm+NQeZso/vxbkXmWRbnI6OqZFWjxH4x8oZQjD4cDmhEmRYpfboe/WK2QKfNNQH+VYlZ36MMj57OLH3BoaRN4WHsCUzK73bX/FKnASHKU3p93FvD/VCLjhaF5IOOPM4c7GozJgJ1/pJ1CKTI8u1cgEergZkocJFPTd4xoAI7p5QaMnkb01aq4lOlLV4YEImLMTB3gQRmcqpBkabt6GKKTI6IYe2jM0XcOy4tpbWXhlJyogFihfbWQaoX5HTRLPNxENfEVTM1BMX4YlqKGLwjZtlHeADr6eK5rr5wo/AjvJR3kTRBvhGw/wBT+dvZNsup0uxodhc1+GyTnr/IHg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uKewhMtfhm9oAfuSqQfQEZ2zvUqEq/hkfVu6gP/SC5Q=;
 b=QsnEbBt2KgH0WzUQAL11gsm379H82xjpmXM5dOZ+63KlbAuBUBGyD4DJtaHDJZGpXia3ZXM5kxlvyrlPXUh7N+wRtNkz8IHKkpIxtMMAn+pwUuad4LZlzfCzwKLjZgrhKwe8/4aL8qhG2FA69XqLzQPcF5gMQTB1MJUFLvTC8xyU3ytNuhx4SS4Q4M3XGVmyupaNXSttL9NZ3ut2/yphbkPlB0uEqJkUbJNfhKsK10YhRnj/ynIxKQosND34f0RGoI0qmg7HcuHd/d71JqitZzgxig4ubddkSoTH+D/MYPdJru4anwX0rD4AtxHtYsyIJlcXiU+lwjYpAVbITMS8Vw==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Mykola Kvach <Mykola_Kvach@epam.com>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v4 1/8] arm/time: Use static irqaction
Thread-Topic: [PATCH v4 1/8] arm/time: Use static irqaction
Thread-Index: AQHcU8JXZqRbcquv2ku6ajz5kDSmTA==
Date: Wed, 12 Nov 2025 10:51:46 +0000
Message-ID:
 <8b5ea60e3224b9272c8047af42b3b20c23aef379.1762939773.git.mykyta_poturai@epam.com>
References: <cover.1762939773.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1762939773.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_|PAWPR03MB9786:EE_
x-ms-office365-filtering-correlation-id: 1f59f719-8a77-4859-4e07-08de21d979e5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?w9sotDtQbCiwRDvsaa2lmwZ27YaW2y9BurIM/KQcjjhWl74x5zzBC2+Lkx?=
 =?iso-8859-1?Q?ydvwwLqrOIVbskjCOZEfIFGj5xkVEhTAhCVD8PKIhJc0Yp74ndj9+830n+?=
 =?iso-8859-1?Q?ynJkgZ0ZYp6gQvfLNXQahMh9Q51qiXnRXjlL5jEarwNliBJ2cUdDBREqQJ?=
 =?iso-8859-1?Q?9+fzr85fq10lpwoRbwlxj8YDWGRJECwRVN8sqYhhYyDDRhLBrWO4ad1ia+?=
 =?iso-8859-1?Q?NUNJWHxAkJuMlOptMemtbSsJCVRmCWO0YANLG/niaLAgXKGxfeP/YyCqGi?=
 =?iso-8859-1?Q?XaabRw5ldujN8mCS5tyj79WXY8rq7dN5TBoWy8UpspG0JreVqHj/p1LE0F?=
 =?iso-8859-1?Q?j5pz+HlXI3CC7ZfIfWeffVTvMlr+UbiVq7YBP6QYECJi87KHHI7Nns4Px4?=
 =?iso-8859-1?Q?nyaofivRKYWzJIrgvk7UD+HDJ9/L0/8Y0KTDkLUm9yGUZmEo/XiB/yVacr?=
 =?iso-8859-1?Q?YF+7S8dyOfitFXbQlleofAlhb/O3+Von5sEgrl1AKTUBB6ZLE9xgSgAn5m?=
 =?iso-8859-1?Q?1fi0z+JadiqpVWpDIpHG4V47MqWl1AhVhdK+vpzVtXkLBmRzQAsw40Ej7D?=
 =?iso-8859-1?Q?G6cRbRfv7yzBCMsoQgJm8WeboSowEU7fKxzXwtXccQxCk9U3bBr+ahsrFN?=
 =?iso-8859-1?Q?ZoV8Fdy9+MC5xUsRKMe7gotg6OPpqNq1ixxobwRRvbdcBc+l7oKV1E9Hnk?=
 =?iso-8859-1?Q?67EsgunzxDwm49GUjJ0MfQVqwGo0BwSJoGBchTf/BgnWT253qw61Z/jIkp?=
 =?iso-8859-1?Q?eHO4OiLwvDdHT9n/E6uFcaS1M6UZZGpEx4y08phe4wtpabYOgQXRu8HFXS?=
 =?iso-8859-1?Q?aXJcdWrJ4NJn963u1ehNI1ZDi/4gQHfWpITgXKl8JAIqU8GdovICYk9t+r?=
 =?iso-8859-1?Q?PYQwgVckxCFXcmBpD5gq7hN4KXoIviSSKwAqv1BzCGtuwZGrCw//DkZCG7?=
 =?iso-8859-1?Q?q2v2X5YLsqlNzIav0bCC6dWAOpYN3a8E66M/GsWlGqguOcAB5sIRKCE1Qv?=
 =?iso-8859-1?Q?AW7JZQT/FR3LbZxX0kpYvZ2BEQ5Pz8JPoKZ9swkdNLArT2jqg19czMR7T1?=
 =?iso-8859-1?Q?6B5Y4+lx6IoMw0Wfm4XRvTY43AFHsfGoj0CizKHmXdfrU7HwLW5uGhwjeF?=
 =?iso-8859-1?Q?195DWFlS5HsfBs8+P6Q3vIJe/gcrKeXQewOstbymWuEKUPsWF9mcciYz+n?=
 =?iso-8859-1?Q?7PpBisFQjUTQJ5ScIuPh6v1ia/k8rRqUwSFghQG74XFgXbCvMCM+LRaL4O?=
 =?iso-8859-1?Q?B3aAp1BdbDd5ky+NUA4d6lwH1W1GKEIhIDm+FefqBpRXtEo7gzWkZUEncW?=
 =?iso-8859-1?Q?WqjEFWRMaGSZj7R77MDgZ8mrOQTFA7NrQ0n7n6krfNG966tLwmKesfimLW?=
 =?iso-8859-1?Q?vP4XNGBUDkkNPDVl9Va6AXwAyunE5w4R+ewdigoJUu40yQ/3VNEYnal9rD?=
 =?iso-8859-1?Q?zmtOauRuGZ56m8KVcpbflBbHREhSxisRldG80krnc3dsKNMlZCH5gpboPK?=
 =?iso-8859-1?Q?Dq5s89rpedStgU//FvWE6D9cD2IfIe/1TxlNLyVojlwSdZU9Qx7P/xOzEX?=
 =?iso-8859-1?Q?a8XVPCa/lqxlSiVzJuLcGBMi3ln8?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?jwNuDaDqI/WB3WX75c10T6fF5PRLO2O6MvWgPbhugxk2iYj8YH+t/XIpPr?=
 =?iso-8859-1?Q?dLJ3fiN5D4pq7ttPK+BQUvgonEai/vN1rTbz9+VETpRpMrLsdaLWbwqcQb?=
 =?iso-8859-1?Q?8zdM4m8ymtFfk1dRg16U2SzsGG0+qNX21ln2Z+u7MgUJKELthX52hyDunu?=
 =?iso-8859-1?Q?IfE8TNOdK7ztyVXCaa6l85OCCfO9PRrx0INFNW6IMdbDnnc52yfNDj+3BQ?=
 =?iso-8859-1?Q?q+67UVEEuBdHiSWSJ3aJm8k+rqSPNE+gswhSnD6KqyJx3X4nvmh9L255Bq?=
 =?iso-8859-1?Q?c5NLdRaqAb5IPKCa8COYL7+2WjMkczBvkfJroy6kv/fADpbRHk0fWvADo3?=
 =?iso-8859-1?Q?H2yVp1ByrdZfi9InPhtIE5nSXPPq2OeBYdo4tOih1xYoBm8vy8uwvPVouO?=
 =?iso-8859-1?Q?DVoOm4da2C4yz1qnBzJqh305YocuSWhFQKId3PljJ0ehLibIQ5D4I8j4H4?=
 =?iso-8859-1?Q?wT+yXj0eUniJTIREAPr0EtW78V4liEoh7kETS1Ajhm4To770kg5XKSdIyf?=
 =?iso-8859-1?Q?i/ZNdREN2rV9UKFJ87U1MDMc0705JbxMMRoIxImcn+1pcpepxXxVtX+M6G?=
 =?iso-8859-1?Q?JmFSKA2pWBNvbVc7/8LDzwsPvcdLtJ3+6BczQ97MhAPsnNSW2y7zhuGBcp?=
 =?iso-8859-1?Q?eXFzZPbv7v7zIH2lK7mAKv5YmOMpIVXJWxm4wnf1bjhLCZTmdq5uDxliIu?=
 =?iso-8859-1?Q?HFnusaBk42u9m+PVjdW+myd4Mp2O3aeOPLHsz0VBi/GHL3TvGFpIvQruqw?=
 =?iso-8859-1?Q?d6XMgBU/nhPxVBjK7ZRpj+KryjIU70tTbgbdAI/U9XdrQE6n9arU7Kp5GO?=
 =?iso-8859-1?Q?/MzcQlCojw5GaVku1uxayKjS7UxDEkurNkEKR/8GHcLvAxvZd6/Y7sjw0r?=
 =?iso-8859-1?Q?hiaqMFLmY5OtL0hMTtH2Wzexk8PGHmk6LGOHCWFYBw5LVYpa5HSeQ14otK?=
 =?iso-8859-1?Q?mX3LK/ldTadCJ2Gw1IiZdmMGKYfl1RXU7lqQ/AUIkFEBRB72LcVKfHe5Rp?=
 =?iso-8859-1?Q?pkJf5GTBtFqj+6Y2W8f7yxVDh1nvC1rCw2Qf6QLBQV+9Gf8kqExxO8O6Ne?=
 =?iso-8859-1?Q?65JdcPscMco/THH6x51swuH3UDkico+vKLJC74TMN3qh329y9yYCUpzVFT?=
 =?iso-8859-1?Q?+fN7EdXUyXb112CgYI+/5zeoFIuUbD7+1s8SVL9Ofus+XKBGfCLAvTjpBp?=
 =?iso-8859-1?Q?3MdsrkPd8vsQtelsw+W2ig+/ZI0O8FzQrPaZOpLN629kQ9YbjBSDxRVEKq?=
 =?iso-8859-1?Q?TMFy/b8HVllV5P9GstAbO69OszW51U7gNDZnbtQGfJ2kSJHzIMxxvVEPQr?=
 =?iso-8859-1?Q?nlMIEiUjBBfq5MSvZfINMaZCXmAlNFR8sp5X3dvZ+TCS/VcIdAqmFI0bUt?=
 =?iso-8859-1?Q?gyN1GnukaZ8GwAmb/L/hhXqnJrCjaIRwRuvEXHybv8lHozJQuGGC0E2sO4?=
 =?iso-8859-1?Q?EyFxT5F4AKf6xAF/ujGONyakEjqbf1EWzqMsGUy4YV390Hqs1uF2EIQL7A?=
 =?iso-8859-1?Q?F+RlHu7KNzw48gJl9/JADHOfXbr69UOafPoLFUgk5jnLZFBwzYkNFzE+tP?=
 =?iso-8859-1?Q?2wKdnTX7AGjZTJ7RtooBDJWCzPbCcTONtRG4TIbtbb9uJIuF9F+Eeac57A?=
 =?iso-8859-1?Q?AM52GzDUOVNnoBCfv85DcpimiX9GIV8gw6lznSRx5Z75gKvujMqb03dw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1f59f719-8a77-4859-4e07-08de21d979e5
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Nov 2025 10:51:46.9532
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: QX2OXb2S1M0kltWTmajWDXjBVFkmoRdbfvncz70luuToK1w0xCwvLhvRfn4t3Z8rM0q5uWYsE/MSBDzIgmKqVw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9786

When stopping a core deinit_timer_interrupt is called in non-alloc
context, which causes xfree in release_irq to fail an assert.

To fix this, switch to a statically allocated irqaction that does not
need to be freed in release_irq.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Reviewed-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Julien Grall <jgrall@amazon.com>

v3->v4:
* make irqactions static
* collect RBs

v2->v3:
* no changes

v1->v2:
* use percpu actions
---
 xen/arch/arm/time.c | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
index e74d30d258..3710eab109 100644
--- a/xen/arch/arm/time.c
+++ b/xen/arch/arm/time.c
@@ -303,9 +303,15 @@ static void check_timer_irq_cfg(unsigned int irq, cons=
t char *which)
            "WARNING: %s-timer IRQ%u is not level triggered.\n", which, irq=
);
 }
=20
+static DEFINE_PER_CPU_READ_MOSTLY(struct irqaction, irq_hyp);
+static DEFINE_PER_CPU_READ_MOSTLY(struct irqaction, irq_virt);
+
 /* Set up the timer interrupt on this CPU */
 void init_timer_interrupt(void)
 {
+    struct irqaction *hyp_action =3D &this_cpu(irq_hyp);
+    struct irqaction *virt_action =3D &this_cpu(irq_virt);
+
     /* Sensible defaults */
     WRITE_SYSREG64(0, CNTVOFF_EL2);     /* No VM-specific offset */
     /* Do not let the VMs program the physical timer, only read the physic=
al counter */
@@ -314,10 +320,17 @@ void init_timer_interrupt(void)
     WRITE_SYSREG(0, CNTHP_CTL_EL2);   /* Hypervisor's timer disabled */
     isb();
=20
-    request_irq(timer_irq[TIMER_HYP_PPI], 0, htimer_interrupt,
-                "hyptimer", NULL);
-    request_irq(timer_irq[TIMER_VIRT_PPI], 0, vtimer_interrupt,
-                   "virtimer", NULL);
+    hyp_action->name =3D "hyptimer";
+    hyp_action->handler =3D htimer_interrupt;
+    hyp_action->dev_id =3D NULL;
+    hyp_action->free_on_release =3D 0;
+    setup_irq(timer_irq[TIMER_HYP_PPI], 0, hyp_action);
+
+    virt_action->name =3D "virtimer";
+    virt_action->handler =3D vtimer_interrupt;
+    virt_action->dev_id =3D NULL;
+    virt_action->free_on_release =3D 0;
+    setup_irq(timer_irq[TIMER_VIRT_PPI], 0, virt_action);
=20
     check_timer_irq_cfg(timer_irq[TIMER_HYP_PPI], "hypervisor");
     check_timer_irq_cfg(timer_irq[TIMER_VIRT_PPI], "virtual");
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 10:51:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 10:51:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159695.1487997 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8S6-0006fc-US; Wed, 12 Nov 2025 10:51:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159695.1487997; Wed, 12 Nov 2025 10:51: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 1vJ8S6-0006fV-Rk; Wed, 12 Nov 2025 10:51:50 +0000
Received: by outflank-mailman (input) for mailman id 1159695;
 Wed, 12 Nov 2025 10:51: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=ulhw=5U=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vJ8S6-0006fP-7U
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 10:51:50 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 96e10857-bfb5-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 11:51:49 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PAWPR03MB9786.eurprd03.prod.outlook.com
 (2603:10a6:102:2e8::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Wed, 12 Nov
 2025 10:51: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%7]) with mapi id 15.20.9298.015; Wed, 12 Nov 2025
 10:51: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: 96e10857-bfb5-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MUhiXFLywyOHp5fHm7QOkFavZ5Z6uo2+5RxVw8ZMZKAAmwu4OvahnH02kweCZ/oIAYPHhVhCtsatjVlQ8prw0++LSFFBi+9HNySmfwAL/v6t+ZzyNbD5xdSY/e93YjNmfbB8WOYvmlPxBNsUY9fHRmZNDeObkjJRj6pObQRXKhlk829uRQR4pKXUrXdhT6daYRP1L4svSyT2pNtqwU7f/emSQyeKZ92rs6QREYqcNBv/Vdg3g3J+q0xLhSzZqiCDy9FrQqZZNXqZPICzUI5Bv0bClThFdaZBUClqdcQzDOJL3FA8sm8h0DSCAFrxT5e+Azwnrv36vi3gAJlozSAKnw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AR9jAYTpubrvxc8ShR9MMo0f5MmFAzXVAJSGuuTt3Po=;
 b=TxGo4KenQJT/KDnLydluVvW8I6xiLHJ8nwdKjCJAszoMQyGMfd+n3AHJB2+nLoBCPECq4ZoQauKFiRu3LWr6ScTZvQMRF1OB2iA+pAych+WxXT3haBAkMpebMNMCBjnAP7FERCF7G5I3Z7jQmOvm05bwypoK3155vKZIkrWL9ldWvo3HdHGrSP0EL5YB35GOqGTSC7lJj9O5FLJ6fewc6rcHennRwEgMgZDtNDZAB187pzYJUVF00II5TjvSjTJyEFKv8Bx+1eKtux9goIW6IveFw6dhE1qqwaSditBkbOVZEwIY66wj5g09uX3CNVbiYEoPFEIn6vLuvKL3eCUUhg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AR9jAYTpubrvxc8ShR9MMo0f5MmFAzXVAJSGuuTt3Po=;
 b=H+l0bUATkWjtHceeI3nNgB92GqiSLqPITl/yBYccXm9BYORHgd/6sU/7bDezzlg1B84AAozeWepMW6jst327L5QaNl7I6Ndd7SpNzXt4ZeYJ+r7rxHbw9VXMOR0iqPrZE9b4+pz7xHZ1roy5SQd0lHcLE9v2IAuiy7ZLgTzbNY3AQffakzOybYeOgATSiuH8KIMDwcqrUynezSmc+AFVKWjGst19Y5vDxfA6OeqnRE8S8NerabG2tHqeFDol3t1RM+yBFT4aPOb1AfaEIUukSVbzlaEwxEzqCkSxKoXBYYudGhr3TcTHOBBI/JPQG4JuyJ51FYu/ijcY/85pLURVuw==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Oleksii
 Kurochko <oleksii.kurochko@gmail.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Juergen Gross <jgross@suse.com>
Subject: [PATCH v4 0/8] Implement CPU hotplug on Arm
Thread-Topic: [PATCH v4 0/8] Implement CPU hotplug on Arm
Thread-Index: AQHcU8JXoOHRlCVaaUGVyvNzAw9qGQ==
Date: Wed, 12 Nov 2025 10:51:46 +0000
Message-ID: <cover.1762939773.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_|PAWPR03MB9786:EE_
x-ms-office365-filtering-correlation-id: 8a9cc670-f322-4e49-24db-08de21d979a5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|7416014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?t3okICYxMEpKeL0rj+lK9xBfMVbhXR9BCUyaO7ZVR9i8SZEXCBrdDY9ngQ?=
 =?iso-8859-1?Q?UKpcj9IbCsPbcy0atoinm76rhy1AlnkxgdtwbBgDb44Curh8ok+4j+tBJd?=
 =?iso-8859-1?Q?94d/RrUnH+NV9q+AT4OUCva+fXaKmzb8QfAvmmU6yVfdUE9KcvCgBu03A3?=
 =?iso-8859-1?Q?AshK5vThW1RLn2/RoMcqQGpwM0PL6lZ8LmPCx60jDq13ulVMaD4eK07yWk?=
 =?iso-8859-1?Q?2uIH+tE4bq3+oMcLN2Cm9m+Rkk30I/1f1rwNsy/P7HRRcTpTzB3UMyQZdZ?=
 =?iso-8859-1?Q?XZl8sdtY5KM3+JJ1lU6pvyz7pgXWvz4+0PihkHIHWdDweV4jpf5h0T9dEt?=
 =?iso-8859-1?Q?jYGKmrQZfeOCTIKMMeWFar04E4PszQZljiEGP1W8Kpw3XCUQdV2qT1cSw2?=
 =?iso-8859-1?Q?J8Dcx57+C00jLkPma0q2CfwvbAnbVXCQGF1DPG5/tAFdOiNTIEyP9hZkr2?=
 =?iso-8859-1?Q?t2npyBPm8VgvA208bm6EBLzPqBIxbkwxd5prfphbvfPavQDrKCMUVpxqf9?=
 =?iso-8859-1?Q?yV/uuOwl8ytRlztCiIumVzvpT7c4pRlOANsm1M4C6AINz+kcmmY0fASsh2?=
 =?iso-8859-1?Q?4BAclYXyn6RNtJyKwTptNVIY8vNOI4UdvaTK6AidWgg2i6FliLGkF+NXr1?=
 =?iso-8859-1?Q?kqX4ndWNOTZS74pCaRPe3L2/wJjNxTBteegRA0L+VigqYfOxEzf/zCA+jr?=
 =?iso-8859-1?Q?pllg9yJoytaK4XlKMaIgeo2SKGOKp7KyxXPvmeympU45DEIRAeg5s28z4/?=
 =?iso-8859-1?Q?iD0xUKU3ptUX+RZd862bzcgtWi9sRE53CerT3WXODitvnAzkvEVA+mCRUB?=
 =?iso-8859-1?Q?gyG991pQhrkR7M+zQpBLLvNbppqiGTbM5Icrfsy5tO5m3yzOwtu0MIAnYm?=
 =?iso-8859-1?Q?it5B3RhPCN0mBkc/Zu5SGiLuK3uyJak8+DxRyOZt72ht/jk07R3B6J1v94?=
 =?iso-8859-1?Q?A8X7UEEriDr4Q0PHIC8855Pxu363jzFsnT9JbSY6bvXOdwGYMjRnuTlImB?=
 =?iso-8859-1?Q?MgSW2D7uvWzbHGRI2AeiNZUNw7DgM+CsrU7MHrtgfuBa9ws542wVchhYqz?=
 =?iso-8859-1?Q?hljSRefKG8RO0hbBdy04+PwRwO9PM3HWQ0hg1BcL2Jl1DMOnwZgeY3bO/v?=
 =?iso-8859-1?Q?+1hNYVl1x9CP9Gnh9QZP9baty0ta2xfwIMP0QMwWErHwg8Kf03EWFDDlr7?=
 =?iso-8859-1?Q?roN/aVbRU4maJBEUOLyVj1LnUPJ2/5+9ZrwYc79Ew+gAZocbNhpQWUR3QY?=
 =?iso-8859-1?Q?RQmN6QWM7GI4GetybUSETGssSNxeRFlOMI7kqR1iW94PkzkWptS8YzuIaM?=
 =?iso-8859-1?Q?4Juje8kwrDqxxFa+qOkehslA5mi5uO7CFi0/IA74j9i8PZ0xKi1y8kim80?=
 =?iso-8859-1?Q?M4yxsF5Shq0/2w9SMkslOFjpDl6B9Ud72rXcdWVwOl5xbPfeq8ual1xTAE?=
 =?iso-8859-1?Q?bbrXxOfrZhs6pBBxUj/vCfJGsOveREq1SbTiZ51vPPuFUB8xZredX9PMiL?=
 =?iso-8859-1?Q?4O+wYunFPr2lwS5vjqFO2FJZ8H7UMR+tu4++LRiQyZd/0QvALJQNI55ooJ?=
 =?iso-8859-1?Q?Os9OvnDMWlN5CaGAFeWvLDSYwR+U?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?lCMsk5OkLXQqtEF0jzfwqW7va2BrDaVfP035yLXkvzSeAFnwljina7LJIG?=
 =?iso-8859-1?Q?0zhc1PLz+X1UdCP/h37TxNAmvGiyGFF1mOEJTEqRHzEm4JASwGPyIe0Chl?=
 =?iso-8859-1?Q?XHSBkjWxQ1SQBDBGPdt0ufQttD4haWjGFvIZZtyGnGSMpw3aGMmTVaoZN4?=
 =?iso-8859-1?Q?8s+/2Ne9HxFfaHX0o1ZXZifGVdDNc02oH89vlNqW95yuXl9u0hfCrCZgxK?=
 =?iso-8859-1?Q?6egjzV6IJb8OAbV8bImJJZ9/TfWKLiqOAsofoI+gRgs4ms3GdofSyIZIzE?=
 =?iso-8859-1?Q?XoSybI9CQQ4sGQVdSrOnawTPJizKFAfR+ro31imXe4x4YubdzPKYpTUbwH?=
 =?iso-8859-1?Q?p9xdna3IqlcDYVi/gSyfF1T2x+rVLCGA5x3GwT2Lrwq89WaJJ9uvMRC5ma?=
 =?iso-8859-1?Q?apUh6XMszL2rNSfnPTRKMfOnj+rw2CZtLCii629MtM6p1u+39Osd5DinRE?=
 =?iso-8859-1?Q?nYk1RXzkFQW+U+bUrS3uY5bRn2Qf09kLUljcNS6OExm2dsR7jdC+eRpaJY?=
 =?iso-8859-1?Q?ODfvwxs4Bv4eKSxVDec/rvfmz1cll06Zv/N18H4Mv5Shtz1k9xT1OfcRt4?=
 =?iso-8859-1?Q?eo1YcJ0L0DPehu+du/ckZG+1EZ6VLJfVoeUfQxHSaxJWqIjE8eFeiKkCON?=
 =?iso-8859-1?Q?3vo2hne9khy31+jJWikZl+bTWmvQM9O65NML+T3RQMAzfpNyWTjN04YLFH?=
 =?iso-8859-1?Q?sh43kjLUnyJMjiEOviLkbKubNcBGKIMjcntCxwKq8BgOoTVyKtQqcfHDls?=
 =?iso-8859-1?Q?p98MVFDbdZ0gE8AbeHBd8wTFu3gzWl+obdxEMZVaxSCfIrjq7dUz6tGGN5?=
 =?iso-8859-1?Q?Rp6RDTKphe0+1gqd3E6hVRUTcVtT6RaeRy/s5G1AyD/uNw8s/qEDzfomDZ?=
 =?iso-8859-1?Q?/6y3DCMgw+vgFhiEWgOmN3nWBBZIFLAEQxXGFW/lpMCnTb5mUan2mdDhbU?=
 =?iso-8859-1?Q?PMtM9oNzMu3UvWVgt6zzU5Sr5NkVAGRjLuf3/t5qwgjK1ySq/YAN5gUdiX?=
 =?iso-8859-1?Q?g9/WJUuZTzkAG2qDSFn1DUO2oZ+rmW54Qv6LaOn75IwtUxm1soRvUnoAKK?=
 =?iso-8859-1?Q?S76F1qqdN05RLcWsQky3PRTA6s80OsjCO+yCVqyqh/E0Fnqe98VdLEMzkf?=
 =?iso-8859-1?Q?kLcadBSCF69sOIL8tWAbG1cZI2xsQU4d+MA8a4kx5c5p2AVFoZ+ZuDtmfQ?=
 =?iso-8859-1?Q?X0LfKKkO4P9W1CMUytja+rn1kYK3HlrjYLUzfw2SE61G8tSzdNltOln+dj?=
 =?iso-8859-1?Q?qQjqDFUI1G+u3DMqUbvdnjukaQw03YGqXEvGwdoVr60i5tBe6KVlLaDWXN?=
 =?iso-8859-1?Q?QmzSfMXqWB+fjtDDnIO4A0tt5MCjzO0znXfVptGOpf/CD32829FQqgNl3e?=
 =?iso-8859-1?Q?+05Mq643jw1iSpm14S0yhWadBZtYHbv9M2Sf1pseRAAlBofMNPjphijyGa?=
 =?iso-8859-1?Q?98GV9hP7Y6jlftGfEpZSVedxV/x9RP3p3prTiMpZ5MznynI1L2UOPnQid6?=
 =?iso-8859-1?Q?+b8v6IxogZNNFocC8dH7PwCkzq1BWWzZDs3gNxOC5T34MzK16bYeFvsun3?=
 =?iso-8859-1?Q?zF7BnqMxKhS89OVU8berkfBjpV+348g8Sgb9Y4kONWKtHa6nm+IUr21eeL?=
 =?iso-8859-1?Q?xFUnFw5KEvHkONIgeuHfuUvMAI0F4EhBnOjW2T30S3kB8MUmtACii2fQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8a9cc670-f322-4e49-24db-08de21d979a5
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Nov 2025 10:51:46.4892
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: lRRfJtD4jCeDIsJP3xGX/qPo8QxW7ecEwymnx1WOL5/VmcRar6QBZ+gahIl8KAp6Sjr8etlaw2CWFduHka+x7w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9786

This series implements support for CPU hotplug/unplug on Arm. To achieve th=
is,
several things need to be done:

1. XEN_SYSCTL_CPU_HOTPLUG_* calls implemented.
2. timer and GIC maintenance interrupts switched to static irqactions to re=
move
the need for freeing them during release_irq.
3. Enabled the build of xen-hptool on Arm.
4. Migration of irqs from dying CPUs implemented.

Tested on QEMU.

Note: As there are currently no Xen-used IRQs on non-zero CPUs, I used a ha=
ck
that changed default affinity of IRQs in setup_irq to properly test IRQ
migration. The hack consisted of changing smp_processor_id call to some
hard-coded non-zero number.

v3->v4:
* add irq migration patches
* see individual patches

v2->v3:
* add docs

v1->v2:
* see individual patches

Mykyta Poturai (5):
  arm/time: Use static irqaction
  arm/gic: Use static irqaction
  arm/irq: Keep track of irq affinities
  arm/irq: Migrate IRQs from dyings CPUs
  smp: Move cpu_up/down helpers to common code
  arm/sysctl: Implement cpu hotplug ops
  tools: Allow building xen-hptool without CONFIG_MIGRATE
  docs: Document CPU hotplug

 config/Tools.mk.in               |  1 +
 docs/misc/cpu-hotplug.txt        | 51 ++++++++++++++++++++++++++++++++
 tools/configure                  | 30 +++++++++++++++++++
 tools/configure.ac               |  1 +
 tools/libs/guest/Makefile.common |  4 +++
 tools/misc/Makefile              |  2 +-
 xen/arch/arm/Kconfig             |  4 +++
 xen/arch/arm/gic.c               | 11 +++++--
 xen/arch/arm/include/asm/irq.h   |  2 ++
 xen/arch/arm/irq.c               | 42 ++++++++++++++++++++++++++
 xen/arch/arm/smp.c               |  6 ++++
 xen/arch/arm/smpboot.c           |  2 ++
 xen/arch/arm/sysctl.c            | 32 ++++++++++++++++++++
 xen/arch/arm/time.c              | 21 ++++++++++---
 xen/arch/ppc/stubs.c             |  4 +++
 xen/arch/riscv/stubs.c           |  5 ++++
 xen/arch/x86/include/asm/smp.h   |  3 --
 xen/arch/x86/smp.c               | 33 ++-------------------
 xen/common/smp.c                 | 32 ++++++++++++++++++++
 xen/include/xen/smp.h            |  4 +++
 20 files changed, 250 insertions(+), 40 deletions(-)
 create mode 100644 docs/misc/cpu-hotplug.txt
 mode change 100755 =3D> 100644 tools/configure

--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 10:51:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 10:51:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159698.1488028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8SA-0007Mo-Ol; Wed, 12 Nov 2025 10:51:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159698.1488028; Wed, 12 Nov 2025 10:51: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 1vJ8SA-0007Ma-KT; Wed, 12 Nov 2025 10:51:54 +0000
Received: by outflank-mailman (input) for mailman id 1159698;
 Wed, 12 Nov 2025 10:51: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=ulhw=5U=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vJ8S8-0006fP-Tl
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 10:51:52 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 97c28258-bfb5-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 11:51:50 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PAWPR03MB9786.eurprd03.prod.outlook.com
 (2603:10a6:102:2e8::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Wed, 12 Nov
 2025 10:51: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%7]) with mapi id 15.20.9298.015; Wed, 12 Nov 2025
 10:51:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97c28258-bfb5-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UIunFsVEGYhcl5IVW48zB1HszazKjgssxNQVOZ5Uq/Wkcws+2wpKqvgOW31V2Df2pCn3UdQ6Fm1gU1VgQYRi7nPBNWUuQ3rxf7rcAGD3qfLzmb6KblZ4Tm9aFNH7bB0eJO/Aba38ICypVDrsRVTDsmtZohXh/ndVmhPoLH8WmisxK6cyxJXYuNVjhFfJBwwpzPeqMPMVwQQ6NJOf9nndgCIU7WQkTi7gHo/nqFZlJUvPW+gJ9Nvy2l+hIZH+1YS7o2MaxXzzWIqQ7v6bIUhT0b4FVRitw9rRGYviG9OTYM1ClKORpXtR+aF/GLYJ5/tmZNzmy6+529pynHP/Kf+rjA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0NqkjAuClLmD7EKX2Kq8rTElBLtaqpCAVge0cueom7o=;
 b=N4/WcQHSsZVyhLsciYsN4EXyoyTRoWqp0vKfXGe/rh9ro3vwWN6DMTbDPLg7Kpxfv3YzEGG6kzsh/0P2XsAfom2r7RQD9uKkydMA0SXCS3n7Cozx/5AIE1D2al5/zSXKIGZrWxM56Egzor/320Tf2QuRrdUTIZ+D2DUhM6ta2aRNyo9pZKlWWOOIBjoeT1Rn5s7tkVxhGTbXWvlPt0vIsCGi93nP/N4gXddrrrSj5WyzNO+cFaq9q0K1gkB95UI03HhMrGsmJvBgoHhyXCg9O0oEBYVkUlqOX+MouFJZUM21eUbgcttGOfoshpmIteByoTwm+Zx1qm6VbZZFhv9i5g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0NqkjAuClLmD7EKX2Kq8rTElBLtaqpCAVge0cueom7o=;
 b=K/w1Rzv51YJ/zNYvo6FwMOOIVOCiurge7rM7thqvlBhdkePMUBe3iDvB+UdKy+bTK3iyMD9rNKKRNHZBbezG8klZjIWpAi8OrEt1uCszwfpdMSx8WQjDQNo+8Fg/hR8QkIP2ioNy8tApCrRMw1QKqZlBiz/wJiU8+bWkgtBtpiPjkKwAot6WAH/VQDq6Ba+7KagOzgzvP7D+K/zZaJ6oFbqSu0vpJWTqhpa1gd0Wf/t21a2fJIU9Tmapu1Jrkh8eeVd/gKPfmNWqRQ7sd/SE/g/6+HLetqbClMt2+6oKWP5iB9CSX+xwP7sx/sNjxz4Msr1Tw3G7pTEgad91Fca6KQ==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v4 3/8] arm/irq: Keep track of irq affinities
Thread-Topic: [PATCH v4 3/8] arm/irq: Keep track of irq affinities
Thread-Index: AQHcU8JXa8Kfz7C3KE+RoTRetAsLUA==
Date: Wed, 12 Nov 2025 10:51:47 +0000
Message-ID:
 <a467474ba2476ff85c52483f47ac1ba6a67a7a22.1762939773.git.mykyta_poturai@epam.com>
References: <cover.1762939773.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1762939773.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_|PAWPR03MB9786:EE_
x-ms-office365-filtering-correlation-id: e783116c-4e85-46f4-22e6-08de21d97a6c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?cd20ZZNR6TSzY+/yHhwLVYz+2LfditFAn5Ep/rs5LVI24cKX+oeM4vEckf?=
 =?iso-8859-1?Q?zfCMbT8s9+ripUjWpUwnjbdjnzp70ZIaSUgrScrpPGLyAjI5fPTfAwqw3l?=
 =?iso-8859-1?Q?0ud5XdQJdl0LR7kBCVfpZ0C6mdmZCYNpGv7ezK59254h1+yF+o5cja3yjV?=
 =?iso-8859-1?Q?bq6D8iTERsxrBLBUgVfuVip6Q5DfmCOLnxD70E6EQyD0jRvc+CpXQL45gd?=
 =?iso-8859-1?Q?LVAFJPz1R7KZ5AfmQjFynf+HrGeBABQS3B39E94+rgfp5kC8L1+Oy4R2Ol?=
 =?iso-8859-1?Q?nE13SWQPuvZf5RH69j7B9WshIOb6D9URaCYYgxfb/hlQ2RwdAHtXbCCauj?=
 =?iso-8859-1?Q?JB50NVWYIZeeI9rowsjUfMAoE7Z2pi+eCoSWWIyLEGkYSjAFfl2SJ+BhTl?=
 =?iso-8859-1?Q?M7dag/y30WUpWDgI4LH/XYQM7FgRDyzM2ZjG2ykjwfeJfvHBMNgBA6j3AR?=
 =?iso-8859-1?Q?cI1e1DYVDn+Wot0//lwJU49PBeSf877ixkr7fHop4Aq5VlUhh3LfW8MszQ?=
 =?iso-8859-1?Q?7YH2WAzPvzWt6J1ltaSy0L8o5CtuOtywHWNzn8n2i0LiTwyJWYOyZoM24Y?=
 =?iso-8859-1?Q?rCITe+2J6CRKiacqe4dRvZSkViy+Hq/j7M9EFaDZjlmFQaAn0343eZlOGQ?=
 =?iso-8859-1?Q?qaEJvFTfp77Lz79Wik8El3rHZ5oG4yrePwMzhRZkae31CJBACgwt7FgjSG?=
 =?iso-8859-1?Q?pV8wjPCtWa7hJZuz/wdeRxao9Ge4C1GIYXRo57T5+R4HWd4gtcWXMwDkg/?=
 =?iso-8859-1?Q?tJXrJiooB0p8ZYRvFJo2yN6Ln5O3ysh4z5U/VNVEXiaDN1YyEmHcCE45O+?=
 =?iso-8859-1?Q?slGBpzh1r49Tb5q6rxx1u2rclH5E6Cc1myKjAaVnwfZ6rxlgAZtfQ+mLTF?=
 =?iso-8859-1?Q?jpoIAX8UR8mJ/6UJPhhq036PRJmTqbTwM+1i0thtBGj71bfCI7wlMMM7XA?=
 =?iso-8859-1?Q?i74pO1GPCK11T8bBli1Xm6ntMXEzRLy1tiArZLm27lvOda034qzQ4HKzy7?=
 =?iso-8859-1?Q?XYezl7x6ly3jzYlURBKOUw52l/TrglXPJ7vtIltF/lr66Dz7WsSq/S8Std?=
 =?iso-8859-1?Q?pX8wE7oYQSwWxSsbrOBmFo6uFoRqNOpfK05YRrwYD5OsC7i3ikk0EMZQ7C?=
 =?iso-8859-1?Q?qr1DHz+GL2VZSuT/DhbsFzuLpYgLtKDOpgxon+17GHbGVmwllPs5VOlVhF?=
 =?iso-8859-1?Q?UfDxAy2a5WtUVQAINTdX0XZ/VBXVBU5PUd8Y2acbdgrSGi3HzsP5eqzoV7?=
 =?iso-8859-1?Q?4moAUFF16W5QumNuZpgn0y3VDt6WB5+n/9rksCM/XupSgjQ9y0FwJeA9jL?=
 =?iso-8859-1?Q?tiIIcLnrxbbzBPIL6yViXFLMuJybnR3LY/wskH1eBXqgI7pIfi49UrsPHj?=
 =?iso-8859-1?Q?lUh/svQj5/FEuhIhTFhCVqQ3Ya9TADA5u5d2lOCYf1cZ8qTxKRVKtgEQXL?=
 =?iso-8859-1?Q?50fdCnIVOYXNIFmVYDzh8ZOeci9s/+kgPjMhn6pGrsDSVhLk9uZQVF5n4K?=
 =?iso-8859-1?Q?8TPya89Cvtg/Sy3wGh2ThzowEVwQo/ZsbMAeXs8LEwz+2kyZ0uKlggvIAI?=
 =?iso-8859-1?Q?iWVNC3Acrt2m5X/GPCMJZys2UVDy?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?BeOiBqAv4PR6fLUNmvFCELM0iCmFPeNqKu3hMf4S9Ge9akJBjDqmsSboKE?=
 =?iso-8859-1?Q?zYILBFU2xKspoVF/D8ZbUk9YvhdOEzin6ElvRuUbdEgLa52f0YRjXEt8Mu?=
 =?iso-8859-1?Q?LleWiJri8/EfHAvn1scOHgIcLzvSJmU6zYklbi6Y/+U05n9xSiNiX8z3BF?=
 =?iso-8859-1?Q?kpPwppRaUHPz784x4hk/ysjqWP1d+lObm4O/Y4HFHUDgTnSk29BAKlWmr2?=
 =?iso-8859-1?Q?Dxsq1awtMRtD09ur5Z0QpczRxNLiECJ77gLXk290lW/1ZYOOS+rbyCdwpk?=
 =?iso-8859-1?Q?8RHTxqngykCoOGk7LfVlhoB1XHSctHxfMVT/6ZRNt3lVUsMMQ57tUZuCq9?=
 =?iso-8859-1?Q?yrh4tM4xkXKPdc9r866NQlLKbMUqIYUkGjBKq/pC4c4tK1rc0evMnqHUoL?=
 =?iso-8859-1?Q?N3TAy2FM+N1bAx47eARqf43hPbM9dqzR6UJOMvp7RiV99oi+0zO6ZjP4XF?=
 =?iso-8859-1?Q?iTv8ui9uxXNwPJdtLveVOr3BxdCzkkGSj99WlciD1vwAOAkjxulQnvNluW?=
 =?iso-8859-1?Q?nbrDYe3rqO+6WZtzWwsCFYclQ0qsyMXa9P5eah9tj9k/51A7Patwn4IBvp?=
 =?iso-8859-1?Q?qvKebqTB8XFT3rU/cAmjYGdXAN+XSZNX3H2h+P81R0OdGckfNVYg4MIUy6?=
 =?iso-8859-1?Q?L4klAtLptUo27pqMRshdNbYV0zWVOl7/t0LBtV/a59yRJo0TWaxJt4Orlh?=
 =?iso-8859-1?Q?Rpet6LGH6ktbzQOq3x+eYp8yr9KDuEU9WwXb2faASgLAUXR9kIMoDldqVa?=
 =?iso-8859-1?Q?a+MhdwAn8wizGOT3OBSmHAUPOJh+L4901fttqNpmhdngamewgMZL4BUmwm?=
 =?iso-8859-1?Q?FAi+Hn4SPMeWe6umjZW3dkWWOASJIghjG6p/UxawouPmrHS8zydmmwWb5X?=
 =?iso-8859-1?Q?T3zBjc/07dT8IUCs/AnSr4TQvxmgTLHJQqTxsFNcKYIXpn6zrpbLtiPn/7?=
 =?iso-8859-1?Q?rx9PkpxKnkmopbCHgbceUSB2gmuJaEAf9ohvMHUeby3V961vdYsg6N5g/V?=
 =?iso-8859-1?Q?QF7dQWQ6jFPFvs8dRDatIaFYrT4gNrNAIyJgMXiyU068VBLrqkZFSypWEw?=
 =?iso-8859-1?Q?r2UH7o4gBp/EngWkKSxBeSWsFwFZxGFVr5TJ01/mh/JXW8FztjDFk4rj/Y?=
 =?iso-8859-1?Q?wFCTAubC8N4VnR4KKOldGkxVQKqlCotiBx4lwKccn3KNOKos4W3V2P3eYF?=
 =?iso-8859-1?Q?fy4LYX4+njVu6zWNOhdTJjWESsqHxe11FpwiO23ctV9c4By97PIKjjhwrA?=
 =?iso-8859-1?Q?0raPfl6uulj3oEhq138ApfyG8IQAWCs9uIiwaJAxG1iOp23IixeCSwvcS4?=
 =?iso-8859-1?Q?rvNIMp0sXl7Hx5lbGokCVFgPOOkZtTy8db1IeF8P+GebYWKqqvYHBcyz1S?=
 =?iso-8859-1?Q?PbNN6vEQmMPCo19BqdSCnk3tW7cFURAUPDtnZsUkqXbh0xV+1esUwQUuRt?=
 =?iso-8859-1?Q?VMkLykKiP8L4z5P9A/hNNw3zHRI9L4hzMTi0QUWYNoW+FG+8rA6OrPfeu7?=
 =?iso-8859-1?Q?O0EZPUzAiK+v7OJ+Bo5W85yECWTL0/WXDoFib5CBCY7fp/4gN26481AdkH?=
 =?iso-8859-1?Q?PS4i2LQglI8ASq5OITroBUis8k8Ti69SNrrz5tQi9V9y4PJp3KmZrmjGUB?=
 =?iso-8859-1?Q?Jr7+/RvVxHfF+v0N0ky0bDvITMNbWZejiUqTgjYNZNgEL7GYBiWm+0CA?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e783116c-4e85-46f4-22e6-08de21d97a6c
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Nov 2025 10:51:47.7457
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: vjAZlfqUelx24C+9gUWiL7EBWMITQoeijk/CnzJKWnNnLbKHzuLz3VQEmX6vE2cEGwYvqA1j2dJXGnia6Dwgeg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9786

Currently on Arm the desc->affinity mask of an irq is never updated,
which makes it hard to know the actual affinity of an interrupt.

Fix this by updating the field in irq_set_affinity.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

v3->v4:
* patch introduced
---
 xen/arch/arm/irq.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 73e58a5108..28b40331f7 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -219,7 +219,10 @@ static inline struct domain *irq_get_domain(struct irq=
_desc *desc)
 void irq_set_affinity(struct irq_desc *desc, const cpumask_t *mask)
 {
     if ( desc !=3D NULL )
+    {
+        cpumask_copy(desc->affinity, mask);
         desc->handler->set_affinity(desc, mask);
+    }
 }
=20
 int request_irq(unsigned int irq, unsigned int irqflags,
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 10:51:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 10:51:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159697.1488019 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8S9-00077U-CW; Wed, 12 Nov 2025 10:51:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159697.1488019; Wed, 12 Nov 2025 10:51: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 1vJ8S9-00077N-7z; Wed, 12 Nov 2025 10:51:53 +0000
Received: by outflank-mailman (input) for mailman id 1159697;
 Wed, 12 Nov 2025 10:51: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=ulhw=5U=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vJ8S7-0006fP-TR
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 10:51:51 +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 978e5c21-bfb5-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 11:51:50 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PAWPR03MB9786.eurprd03.prod.outlook.com
 (2603:10a6:102:2e8::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Wed, 12 Nov
 2025 10:51: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%7]) with mapi id 15.20.9298.015; Wed, 12 Nov 2025
 10:51:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 978e5c21-bfb5-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QU/E6D/VLWvTbrcom6n2/JUvZDwsJgd6kK2n4+lKTHmpUdkBrFU4wF5GciPKSsrpTLZe8PeD1xMhQyf4Qtg4IMa3bzkhlSDj+SoOdAe8vKGddMEIl+3wuJr40g6X1F7DSlLyn5yUfCrHpZaepZuvgUIKP2kEpvoKLXkCDbIQp9mExp/DA4KXSskNDhjX/pL/5sicG7+ELw2IBmUA+Q6UJqz2CSnz8VAmzUitsVZHjFt+KxWDdApWYoSi3iPO1DJ4rv9BWY0y1EZmVOV1Nlv3VrXCpjiOD8u3UOs8+xeO2VwZZIpGP8DH2f3fohd3X4JH5jCoDvjVdIMfLHPw/yPdyw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4FxshkFkWOqZmPT//TbkNT6jPbFRsRNuCROPuKtzNAY=;
 b=KPfne4HO/C7co+vVmTq0MtrkhJjnx4uIpvZr7kGik02O4kJZ2F6GGIlZpmuO7lIE7EAOVub4izheem8qJHJSnWqXxlYGM4doI6cvEbXXLlVSjQcoRQ9QWNUg/7PyFofAJ1PvCcW2Cpjp5qoYtqyQ4CPfLnhljA1cs4AlythO2SI7KRKJvPpFM1AwdLqB/WD9ZDq2d8kLSYUWIR2Ofo19RORCy0ehtTqmmHI3wLkzwmX9iAi2LLITFg84gcRTGD820qmWjp5e+lNnaMQeB/a9gvhWegLCzw4o5mg2FNKaTzz3+ccV0W+sTTfW/PlkrEv7Rg0MedxFDepwcWCZNx1NzA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4FxshkFkWOqZmPT//TbkNT6jPbFRsRNuCROPuKtzNAY=;
 b=nC198cCGI9tZlfZ0caPgj6E42EGc++ofujKMmzLDCXthd5tdDEfB+lXOc/yJoQiY6N6i40FznKpzEl0s/MdsoYR2n3mxgytrl/BEV3eDfG6k3+LjVdAZ/eGt3JOasxP0MPBlQmoT2YAZglv2L9MhObn5Kl47ZNokb7QDPCcaCqF1PZHFokAKrdWuQ1fSWbxmFKp99pSZQl2w3kg9FayKztNx3IlehlD/Xuha8Aw2jMnzBghqlilAHcQJGGAvsj83WLoC3zTx9aB1K9G6wzpzC7OK7EBbfQEwUhhmT1ayJZLtj4fU2rKnVG+Xdl1bwZNo6AgWcVDabEaH51xZfu/dTg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Mykola Kvach <Mykola_Kvach@epam.com>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v4 2/8] arm/gic: Use static irqaction
Thread-Topic: [PATCH v4 2/8] arm/gic: Use static irqaction
Thread-Index: AQHcU8JXITHNd+O1aUapS4pb98alZA==
Date: Wed, 12 Nov 2025 10:51:47 +0000
Message-ID:
 <64269e5a7989e8593d670126f488a09dcab0c9ae.1762939773.git.mykyta_poturai@epam.com>
References: <cover.1762939773.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1762939773.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_|PAWPR03MB9786:EE_
x-ms-office365-filtering-correlation-id: 927b82e9-f60b-4460-9534-08de21d97a28
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?qguHDPPAHsCK6t3SxLIL33zg1OrjV6jjaxSQNGmUFADJ8Dz3UK+zxKHIcw?=
 =?iso-8859-1?Q?rAQg/0TG0cr0jFmRdSVgdCm4hbiVdp8RLCdlfPpXMjUwd+mSjGAT8s6V26?=
 =?iso-8859-1?Q?gWLsmOMI+GZfb4NUQDgEJLcbuWc3LdKgB6jXUA8ws4S5AMJaoZKcYmSPm1?=
 =?iso-8859-1?Q?SPo9OEK87kBqkVwL20AMRDvyJ2w/f5JlkFCdYgASjtpQiU38or0OankwX7?=
 =?iso-8859-1?Q?ziGc3fHXU6S8J+jII4IjTDx8BkDtqYk9juLmCcU8kEBIfARyKsAUTlVe9+?=
 =?iso-8859-1?Q?Fsi0N3NowIvlWyd+rV6nUwms9txI+aSIf+vjKTX6q2VRLoSCJ+2UrfFzWn?=
 =?iso-8859-1?Q?SEE1+jayCPrgWiD8IU78ydp0+3XdydwSEL25pCKnnxzoIoltj3l+oFT8UV?=
 =?iso-8859-1?Q?n78NW2hCNrLMcZICaDbiYbfUioj5NGz63rNUL8BVvwsvABxV1UA21ZExDl?=
 =?iso-8859-1?Q?Ti7XxGWfL1FPCLaN+0J/14Nou2Jh8nZrSimk0c8a6zzAeJbIkKTRMm0W4h?=
 =?iso-8859-1?Q?ZjJdLiFr8yo6hajAtjFzrKQI9kcFzlhtutsUDBnYVgSzrI1uXnWESUcDcr?=
 =?iso-8859-1?Q?7nO9W1KIv7DGMEK4D9xT/3QPtRABGUOyA/q/UqodPRaZXh6CdeJrtSLPDe?=
 =?iso-8859-1?Q?aFnB16MI9EtNp/1E49Nc0avonvQ4yG4HSRA13JESnsNIhJGFcTKcYSdASu?=
 =?iso-8859-1?Q?OQZ9Oae3RkHvIUm4bffHdikbxdrpzmlReC7QmAylUhMe9FZO1i8kM4mQGp?=
 =?iso-8859-1?Q?agSeGjSY/Yu7BEjkDUAh2wPjZTHOK2P2qr3L6GCjARdDGUpj0uKPqp033a?=
 =?iso-8859-1?Q?CJA0kQJwl8lcWs4gnkzcOPBwtV8UnfBee1PHwrvBew80IY5hGZLRUEESDq?=
 =?iso-8859-1?Q?m2UF3R3ZuJR/gmYz/WgiEeuDJbWTzSJV8lixUgDnR5QebVOnPlUbKW6Y8T?=
 =?iso-8859-1?Q?F2OB62zx0o5SaafRPITzA32AijRS1u4kdkroWeXxtQU6BB1WeTFRNqK0Ve?=
 =?iso-8859-1?Q?hwyOAXzqVO/whfZRyIWKzlsPWUCTPHT/F+SuQ6RxR6p74Rohu9s53igd68?=
 =?iso-8859-1?Q?qkfQplelaDs63viPyza2di5qVkdzaEJkoYTr6zGcovtwebYzQcuckM4j/i?=
 =?iso-8859-1?Q?m98eulgs48rhU/o8a+K/j8X/iHEhhhoWKc+FIw+4faYELU6HkuqlrVBphK?=
 =?iso-8859-1?Q?26+uY3c6EtTqmupzMjSSTVuNeaSCRzcZc4bHfUzjBldq2L/GDfCMiRdjrz?=
 =?iso-8859-1?Q?5mFoO6P0i+PNTmyZefGNxquRrowmR6R5a9pze3Nxo8fYa1mSJbqWqGgXBZ?=
 =?iso-8859-1?Q?bxRVKqhoCgtaoehd2lyZidZDvBtXP+XHePNbmJLMDX5BGd8EuplogNQUJk?=
 =?iso-8859-1?Q?54Xq1EsX+/so3lPCeBX4o7BLtBeJR8s3Na6k6v07wIjJHXOAleew7mshBh?=
 =?iso-8859-1?Q?cqzQRVLLhTohc2cZfHpxez8DXlVpRvKzhMUwgr/S7CKP4opimJ1q2VRYoV?=
 =?iso-8859-1?Q?D4ahc3c1sD2N+ygnStI6GNT6ryYNdpfWyGOQSY5PQu8ldHopI/5YZeYbir?=
 =?iso-8859-1?Q?fWo8As8/KFRm6+OyFY3FOqNUocrz?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?FksaG3WkQj/qNdlBZ85Xj7l/lc2v/SlMgmFkA18T/rwprQL6T/AkqgSBl9?=
 =?iso-8859-1?Q?9YKVf91nSgZQ0DMSy11iBfssY+oWV414UFbzZdxnpYvyo3Ko1O2AurjU7a?=
 =?iso-8859-1?Q?vllJAXv5TMaLvDf1jgE+tOPvoLilUk9sftu+nrb+9Jkb62lOW9jMV2/NP8?=
 =?iso-8859-1?Q?TammXpA/TaJdcGNfO83znvktF1wWdTNnYzXYDV0NhvE9vCC+f9ZDBB8FSQ?=
 =?iso-8859-1?Q?QtKqajOuK37WTU6G20o9Yzt+d74TbXOU9J9ul+TfnneV/rZgj2wmElQ22m?=
 =?iso-8859-1?Q?HkOWdOf4Wbh+mjLyTxucl2DrBLO8qAmDHdpWXsUW4GYhXB9kFdPKoWneho?=
 =?iso-8859-1?Q?lWQ5YeBnL1hzAut+RD/+L8WdmfaDZKaQKewqUVzUNXRTwGiPBs6307f4a0?=
 =?iso-8859-1?Q?03Ulh2ti6GqRuM9kdNcmulLi/f6IXIfOMBjF2ATvgfHG+ep3Bx4RWsusnY?=
 =?iso-8859-1?Q?t3A9uKSlr+hDGtcZ0F4yC+F0Obz7thXx4Jh0W0SKDiEdrXcnmia37sl4+C?=
 =?iso-8859-1?Q?gF8r/dgt8O+9yMEQfKmrhlil3AO5t296Nkby2lB4sEGO6J0A3RH+7EEKfD?=
 =?iso-8859-1?Q?1WDqUij1Qpc5uYqcoGaaQm7T/LQWT5ycwvBAsSpFWlaW2Gct5olTvY/g0v?=
 =?iso-8859-1?Q?aIXgSS4uh7v5gDs/ChMGm8/Y7SwowCKv2sT9fBJEkz+BcNjessjCTo/Td4?=
 =?iso-8859-1?Q?5Wle0fUF8qxA8LEHFs6gZjAdIU53ui79tQYHF8Ah4E5Iz1c2VV2G75IG/O?=
 =?iso-8859-1?Q?bs9hgEDghXq6dr/wUu/iZcdNM4A6mHjf8pLi2DtURRfIwVHueL55F+Vca3?=
 =?iso-8859-1?Q?BhM5BPejz5qcUgC/pu5K9xC3FGELBDI8Pl78pQLzQRDkWzPrQ/ACvufNhJ?=
 =?iso-8859-1?Q?vLYflH5Cinqkr3bdDWUwRAnk04Ik6z1SyjkGc1CnoQP238NttRbc8tGJgd?=
 =?iso-8859-1?Q?H8BpJhZJCTaljP9k83p4UaVQJrv2bXTtFunqqPI0HHhaiGWt/5u0hBPj9G?=
 =?iso-8859-1?Q?GhhcdnfOGm7847lp7nh+my7rNRsMjKGopOobb7ZS8eVSXwSUrAOMwo09dC?=
 =?iso-8859-1?Q?LB7kd2qm45vhDUusDOxiM7y6hOh+EBlIVacVGGRvh3V58QWb2ARLGLx/X9?=
 =?iso-8859-1?Q?q0N6JoIoBNeCAF27+UKO+nSYQnI6tf+i6UJ0shLhGU0k1Fh6vvTjq+Cjtv?=
 =?iso-8859-1?Q?hnjrXzeWW6Y15T9vkzV5TJ3EVKD51d4dJCDN5s/B7UlPrEA+rL1/knyJLn?=
 =?iso-8859-1?Q?Li3Pda4XWgR6szMlYJ+PdHtKQ/n1l7FS/iQaMntgiKqFmLxmeJpZAH/EWt?=
 =?iso-8859-1?Q?tOQukRqc9RpPqMTMW/7rWvbxmez1mnaXWWUj0+ptSRZtMBlHbSKcwMczLa?=
 =?iso-8859-1?Q?ZUHHqrob4MIwBoqS+icI4vbOR8u0+vab+K8dyfLSFtdr4xT6KQ7lJ9iF9j?=
 =?iso-8859-1?Q?VBZ8t1H2WiB0IkwuqSZ3PRmZocduyzy9o6zOeODuG2IgeIupN0y4w/WGNG?=
 =?iso-8859-1?Q?DmMz5TQ0RM24WF5iMiVdq/3C6662/+QvY5DnlutlYly2exDe+VNKrrtlYm?=
 =?iso-8859-1?Q?KpCj8aM3WpVSWLVMdSCc5ZG53+VvKxkfObU/22pCHcwdXzekqiCfed5wWB?=
 =?iso-8859-1?Q?1mXa259zVyq7ZXFPnqW7K3Lu7i7P4Cz1YQJ6SbpbRU/cC+uW88q4/vvA?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 927b82e9-f60b-4460-9534-08de21d97a28
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Nov 2025 10:51:47.3691
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: dGepZV0w5ptRmN7w+OQxOzcpFflsxNL5yhumyMH3f6Z+T7EwCy8IFT2N4wXW6j8k63V7NKHYq2cJ28ri+umqcA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9786

When stopping a core cpu_gic_callback is called in non-alloc
context, which causes xfree in release_irq to fail an assert.

To fix this, switch to a statically allocated irqaction that does not
need to be freed in release_irq.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Reviewed-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Julien Grall <jgrall@amazon.com>

v3->v4:
* make irqactions static
* collect RBs

v2->v3:
* no changes

v1->v2:
* use percpu actions
---
 xen/arch/arm/gic.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index 260ee64cca..ee75258fc3 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -386,10 +386,17 @@ void gic_dump_info(struct vcpu *v)
     gic_hw_ops->dump_state(v);
 }
=20
+static DEFINE_PER_CPU_READ_MOSTLY(struct irqaction, irq_maintenance);
+
 void init_maintenance_interrupt(void)
 {
-    request_irq(gic_hw_ops->info->maintenance_irq, 0, maintenance_interrup=
t,
-                "irq-maintenance", NULL);
+    struct irqaction *maintenance =3D &this_cpu(irq_maintenance);
+
+    maintenance->name =3D "irq-maintenance";
+    maintenance->handler =3D maintenance_interrupt;
+    maintenance->dev_id =3D NULL;
+    maintenance->free_on_release =3D 0;
+    setup_irq(gic_hw_ops->info->maintenance_irq, 0, maintenance);
 }
=20
 int gic_make_hwdom_dt_node(const struct domain *d,
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 10:51:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 10:51:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159700.1488048 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8SC-0007qJ-Ex; Wed, 12 Nov 2025 10:51:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159700.1488048; Wed, 12 Nov 2025 10:51:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8SC-0007pP-9p; Wed, 12 Nov 2025 10:51:56 +0000
Received: by outflank-mailman (input) for mailman id 1159700;
 Wed, 12 Nov 2025 10:51:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ulhw=5U=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vJ8SA-0006fP-UE
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 10:51:55 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 99824a73-bfb5-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 11:51:53 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PAWPR03MB9786.eurprd03.prod.outlook.com
 (2603:10a6:102:2e8::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Wed, 12 Nov
 2025 10:51:48 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%7]) with mapi id 15.20.9298.015; Wed, 12 Nov 2025
 10:51: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: 99824a73-bfb5-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fJilnOwp6mhwWhuraiIt2pOq1ZHHAK4W2WL/z8/DPU+pBVUTcrtDm+0N1HiTE3JcXMH9+pfINhWHd1y762Oisb13gjEbDqToLY8WSuvjs2K8Od8PC+Ld3dZTuc/uhz3YC15grUMjBwvXmehluJ3x82ResGW7FmRx9Wc8IUBzYsbysgoAhrKUZyh1K9M7939mCweenzzTjytX6H7Ss1j8l7perSa+nm9mRtxv+BEQfn6un+FVFDJ93VHFAB34ddgu+NXzLNqhjn90FY3p01aVtCa62NL90hwzvSDJJrZNLZNLQm6UG4B8JmcncfGOUc3N0QiRADMtZP4Gsa/+z1Tv1Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jMZm3LDcUtStDARrFmbJcMu3ghMVkEWfJ14QTbgWQCc=;
 b=ZRkpXYWC859N7qpTcIavCe3Epu0z38hcYhRQTrhM9MBTE9Jjel7uGfsRka9CbgYgAw5fD3WrUD4QwPI0eHTbEeubbuE7g2mQ8qGarsjp9uqzl7L46WmIGTocwQtrqoX5I1L72xoDhTsWzhkv2Trg+qjkjf51dq9cdOuRHFPd0UrnwGpFDc0QnYogS7VdAeGCzeJ2rvl/XuyYo94bYk8OboQNkZwktQHL5yyQjydoh9mNsJqCIOEEMoiUqyuVWNel1jyISWzDGhPMmHo0S9+/YU9RddevnBFCtD9kyTNlJSdFG7avBVhs9MM7PEql/osAPrGYdysxkgWngtOe8Eww6A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jMZm3LDcUtStDARrFmbJcMu3ghMVkEWfJ14QTbgWQCc=;
 b=dBNzSE+JWQEeEwTVRx9YJlMlZ5gFEOA2rn+A9X0jfXgjXbg+YZWzFCUxaaWhj7Jg4Tktv7OsDJrapgJ7CdOJUg4SdDPLh5X0Syns1b2h5RbNRcdaQSrZ23ci1U5o5AsOzrkgy4xMnmtjNSBrHmGO9udfQqzzpzqYD5ESBuHdOPBe+FouBIMbCNBTSv28zWZXJRuB926V9c1ZdlhsN1flBoOF5UzwaSpD1m9zdLa4+y5Hqq0OEaEusUPbX+M7ohtfQCs7OkfiCpHQjT5rlxov5tDoo6ehhGKAZ/Ui/q2cEZShcTiVulNtgTLBqVNcVEJDzJPRGq/li3k2SeBCrg16Qg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Oleksii
 Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v4 5/8] smp: Move cpu_up/down helpers to common code
Thread-Topic: [PATCH v4 5/8] smp: Move cpu_up/down helpers to common code
Thread-Index: AQHcU8JYQt16KVNB8U2nXkz3fMDrJQ==
Date: Wed, 12 Nov 2025 10:51:48 +0000
Message-ID:
 <e0fe3bb03af9c612605a2a5dd9b5670d0428fa1a.1762939773.git.mykyta_poturai@epam.com>
References: <cover.1762939773.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1762939773.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_|PAWPR03MB9786:EE_
x-ms-office365-filtering-correlation-id: cc993a82-5cc7-438e-19dd-08de21d97adb
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|7416014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?rC1ctaKxefUf8o8c0qWKehUfQ/kaVhjOdF2hC2ZEKoJ3lv/m4f+SG2fmbs?=
 =?iso-8859-1?Q?cbtkaN/Mn/yYtl/UYIjsT/9BQ82JmCbw203CngvMo3duGz1Upf9pY+6n7y?=
 =?iso-8859-1?Q?kME/ie+NE/6uSFW3gHbMD7KKLN1XsTiynp5uMuvNem8g7JtjoLXg3eRSBt?=
 =?iso-8859-1?Q?YsE37eNM9wJNsZwjHH0H4aAvwNYnrDNmIV7t2XHoaKuZZ1RV4nLK3a8A4Z?=
 =?iso-8859-1?Q?R7zvY6YUlZPBbG23X206SUHXAG333eo809S7k2/RMrjAKUCSwwoZOyiSnS?=
 =?iso-8859-1?Q?i8Eye6TpZLjk7ev2zbWTlLSrL4NdAV44rPwmvhJ4UnLD1VAJ1CiLV+ZVSg?=
 =?iso-8859-1?Q?Apt/AZH+RkK/18h7ijd68ef3eleFb5GdGp5wQVvaqsQr/N4r+oH9F7dz7G?=
 =?iso-8859-1?Q?uorGXl5lfO0keuZaxO0qS81YFvpYJve8ALZmrCa0tVX2pztkALbY0rk/7H?=
 =?iso-8859-1?Q?RJzGQ6MvICy3pUZIeLYKb6B+EiOXNvzjwvGVt8aimNQqChBPyuirIQkLio?=
 =?iso-8859-1?Q?FZeiCnRdRhp8dUXqXu1fmx17ChWRUaEycJvgbzssMhQF5O6ZKTi9TsYaVb?=
 =?iso-8859-1?Q?3eOcSdWpHweu2a9ujBUrdWHlQR9fsqu5k8IHKf9XSZwRIZm10ZaMws9ATF?=
 =?iso-8859-1?Q?nH+eRqbaZDWqGya4wtz+WdJRH3IX6OrS/qbJxzPR0eIXZT3zyqsuxnse7E?=
 =?iso-8859-1?Q?XrXOTzzupJjOXGHpqzNy19pXoHvENn0dStwlCzo5WPZKa3kjUgoF/vw8SB?=
 =?iso-8859-1?Q?z24CyPa7oaH4r+cKbnGjdqAswnjTHGo3I/UrlZdKAPE9dSB6s6m/yE+2KI?=
 =?iso-8859-1?Q?fTJ/G8aW/0af3lShIWRmkoisKbzc6WWt+p49JBz7Q3biwPyGxHmV3APGuj?=
 =?iso-8859-1?Q?umFJnZ26wwRQmbhINYoXJaoxkdM1ZsnUCnwTKJuk2+aQOUnSOl/PF4/8yq?=
 =?iso-8859-1?Q?0CQurhsfARpQ02KukaZxffa4u+ay2YGPJXhxA1N5dCbztkuipvMqiZ1iGi?=
 =?iso-8859-1?Q?hgrZLhrXzLh9lXTmYmz/YXnnMry+iUJvpZFHSkGoWwPezWT07+drGXmJGK?=
 =?iso-8859-1?Q?klL2rhmdaEOXWXlbJ+6nOwZg8pqYAkcKKI1Ir1VN//l4HH654XKOZ92ke5?=
 =?iso-8859-1?Q?S+TFFVeffgkfurwp6u8iZxhRffENhLlBHtX23J0K6yd7dnR72i1VA6OeQQ?=
 =?iso-8859-1?Q?oklTCT4c24H4GAaY9RTw8dUTbnQshccWLA52RWfphk5OiCrukOfp748lsO?=
 =?iso-8859-1?Q?NDGf8dc5HQMQ2PVxE7BxqDm/kCioX8yT1RexxZ/FnxcnXXvnpswP+go0DS?=
 =?iso-8859-1?Q?c+Y32dZlg4KHroVd1tsS14CVGDzTFc97L4orDZ/idsPGniAU5Sw+zy98vO?=
 =?iso-8859-1?Q?do/cgIwFr/RsrDbDJEyQYalFI+gYhOoP2p/8oaltqYaoi3PYQFpDBmWZ//?=
 =?iso-8859-1?Q?jilrkL0Huc+EcCp+Xcx/tktB8uGow5fsZzpg5fgFYhE2Nwg66wUW/4ZcwE?=
 =?iso-8859-1?Q?YeBP465nkTBU0f/0hxDLKpc5LiFvPkwgSGOLwkQwWdEnjzkzHGzVlEN7up?=
 =?iso-8859-1?Q?hhb/wBJ0Z63REY1bnpscd1gG8AT4?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?HpqLbPIse2E/I1FmuEqwMz0rml0t8l72t6ZdidcOntbO9yow30vLwhPHlc?=
 =?iso-8859-1?Q?DLOmse/H4SLdLTDzKQweSKWvogKha4vMpoWaBijrTY32QLVBMU+yuYt1zg?=
 =?iso-8859-1?Q?6ICmrwvKjir63cWwAaOMoqDLnu2uW6eF0ODCZTnDDSM+Tl+3ab/8e46Zmw?=
 =?iso-8859-1?Q?TEKireNfo7+s6LSTKYH1lVIMLJFq4b0ST9vdRmoM2CzL5a7QRmerXCYc77?=
 =?iso-8859-1?Q?oufV7sU/vlYzfF5No49ZVQCsjAz1vSe5v6bGNgqj2SP1/Pmf9so0hQrdyQ?=
 =?iso-8859-1?Q?jVnDMqwn0MJ7mDM7dnnJ2V7dInjMcPS/zIjYBt+u6CCHAvyDYNrgf/Bi00?=
 =?iso-8859-1?Q?Oz+sNyYVxxx1Fq1cJwjUbFOkh7cpfgEmziP4F9jDJdoEe1ImPbtEJCTIWB?=
 =?iso-8859-1?Q?+0PylHISFICNPrb/VikDXgacF5OaoWqTxOBS4HX4oTZWpaHr4CZ+/mXL/1?=
 =?iso-8859-1?Q?m+etoF2Nr6B3C9JeivB2SgYW/Q14xCso7E4UIug17IgnQxpoIB1AvXuJgN?=
 =?iso-8859-1?Q?rLcn1WkCul2fWY5WEErI+FDKif2et7oS/nipRJV5GitCA7e7bVljHJBYnf?=
 =?iso-8859-1?Q?Y/znm5r0DPeipdQkKxftF5gUrVqeyDghHxBw1ipFtpvI6RW1/fZIisiYbE?=
 =?iso-8859-1?Q?BwvbDYn9kSvb7DzLsnQh3XktbsaWfd8x5677L101fWuHKCIOuIOEoQxOHJ?=
 =?iso-8859-1?Q?AS8IjR9nwGqbRDIlnVvxlgdQSyDWhYakBYYC2YoTz1KIvHJOoHA14FKRoT?=
 =?iso-8859-1?Q?GADXAvIuprZaKID1/cIs6fYU2hSjWTs+c4xn7vVK0Wkz/Y6vVuFX9wyvVH?=
 =?iso-8859-1?Q?zd1GeTU4pwRqWWzxS8kJ4bsvHLhHf9tu+KgOKQbBaV/5Vjt2Ti/J7G9ChQ?=
 =?iso-8859-1?Q?Xk3ENoDVEfgn30vNuHE1IA86c6mixRb4NBkbztmC4h5MSvxrmeMjm/h1MQ?=
 =?iso-8859-1?Q?u/pv2mJsAoqCmh9nRNK/DivbYvH3pqgDA1ExcAVA6ybTjhU3VdLhGZhm+/?=
 =?iso-8859-1?Q?QjRbTqhtjzN8ArzeT2LeKG5zEH5LPvbZqOKwvLT2cNzu3/SkhsmG9JVZyy?=
 =?iso-8859-1?Q?H/Xv4C7opphPwTVRgHPWD8o2d1ps5ULKxoTzjyGv+T5Go91DKx5oDElQhH?=
 =?iso-8859-1?Q?bvHBBFR2ZknACJiLOxxVY43Z//wQiL9notRxvUpmq2Mef1zQ5mMfHQpweq?=
 =?iso-8859-1?Q?BNL0P4IbMQUZTsknvimpQ7YlrdfAm1FO0oPqTP64BoI+xTqH2tGBU9A63K?=
 =?iso-8859-1?Q?mrXdmUtwmx0xqEgd1/Xk7VUaMsZWI8g1DvDVocalY7GTYke9NrOnuuA0WS?=
 =?iso-8859-1?Q?owBaOL3mA7o9dsDH3ouUn9n6bdg+Hgq/b6pAQO4cw0+rTr36wKFdXBpeKn?=
 =?iso-8859-1?Q?phcKew7NNtN83PNyO4pe4zgTmw1awJqBBAPX2qOKvPLHySq2Flhg7P0B/o?=
 =?iso-8859-1?Q?WK2lbNO/gsmk3kD95fCzKsa1hoAnJtLBC5npxTDVhRFxgcyr1FjywGxDwU?=
 =?iso-8859-1?Q?8sBbsf5Nj9wV44s3A6lG/Y/fEEOP3QPVl+IJnI3DTuEcERn5h3hxmBh6PR?=
 =?iso-8859-1?Q?YdbS5lEJnYvTSG/NUKY2TqJ8ODOfPfPfkL5jYk1Hn+GgW6AIMvzA4O8m5J?=
 =?iso-8859-1?Q?E6vRpB20a+9RAoz6vsDccqUsfPERqSkHZF7TlGLQK752SHOgRG/619FQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cc993a82-5cc7-438e-19dd-08de21d97adb
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Nov 2025 10:51:48.5687
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: pIMqDUUxA+VBFhfTSNwZb/GlDlJIFVsvBZYaPNN25PyRq7qEIWiACCXOAC7D2TpA+5oiuD535PlHFvnjEIKrqw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9786

This will reduce code duplication for the upcoming cpu hotplug support
on Arm64 patch.

SMT-disable enforcement check is moved into a separate
architecture-specific function.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

v3->v4:
* patch introduced
---
 xen/arch/arm/smp.c             |  6 ++++++
 xen/arch/ppc/stubs.c           |  4 ++++
 xen/arch/riscv/stubs.c         |  5 +++++
 xen/arch/x86/include/asm/smp.h |  3 ---
 xen/arch/x86/smp.c             | 33 +++------------------------------
 xen/common/smp.c               | 32 ++++++++++++++++++++++++++++++++
 xen/include/xen/smp.h          |  4 ++++
 7 files changed, 54 insertions(+), 33 deletions(-)

diff --git a/xen/arch/arm/smp.c b/xen/arch/arm/smp.c
index b372472188..85815aeda0 100644
--- a/xen/arch/arm/smp.c
+++ b/xen/arch/arm/smp.c
@@ -44,6 +44,12 @@ void smp_send_call_function_mask(const cpumask_t *mask)
     }
 }
=20
+/* ARM don't have SMT so we don't need any special logic for CPU disabling=
  */
+bool arch_smt_cpu_disable(unsigned int cpu)
+{
+    return false;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index bdaf474c5c..ca97cec51f 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -101,6 +101,10 @@ void smp_send_call_function_mask(const cpumask_t *mask=
)
     BUG_ON("unimplemented");
 }
=20
+bool arch_smt_cpu_disable(unsigned int cpu)
+{
+    BUG_ON("unimplemented");
+}
 /* irq.c */
=20
 void irq_ack_none(struct irq_desc *desc)
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 1a8c86cd8d..60610349cb 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -80,6 +80,11 @@ void smp_send_call_function_mask(const cpumask_t *mask)
     BUG_ON("unimplemented");
 }
=20
+bool arch_smt_cpu_disable(unsigned int cpu)
+{
+    BUG_ON("unimplemented");
+}
+
 /* irq.c */
=20
 void irq_ack_none(struct irq_desc *desc)
diff --git a/xen/arch/x86/include/asm/smp.h b/xen/arch/x86/include/asm/smp.=
h
index 60eb4ac254..b77fc0bc6d 100644
--- a/xen/arch/x86/include/asm/smp.h
+++ b/xen/arch/x86/include/asm/smp.h
@@ -50,9 +50,6 @@ int cpu_add(uint32_t apic_id, uint32_t acpi_id, uint32_t =
pxm);
=20
 void __stop_this_cpu(void);
=20
-long cf_check cpu_up_helper(void *data);
-long cf_check cpu_down_helper(void *data);
-
 long cf_check core_parking_helper(void *data);
 bool core_parking_remove(unsigned int cpu);
 uint32_t get_cur_idle_nums(void);
diff --git a/xen/arch/x86/smp.c b/xen/arch/x86/smp.c
index 7936294f5f..d64b533cc0 100644
--- a/xen/arch/x86/smp.c
+++ b/xen/arch/x86/smp.c
@@ -418,35 +418,8 @@ void cf_check call_function_interrupt(void)
     smp_call_function_interrupt();
 }
=20
-long cf_check cpu_up_helper(void *data)
+bool arch_smt_cpu_disable(unsigned int cpu)
 {
-    unsigned int cpu =3D (unsigned long)data;
-    int ret =3D cpu_up(cpu);
-
-    /* Have one more go on EBUSY. */
-    if ( ret =3D=3D -EBUSY )
-        ret =3D cpu_up(cpu);
-
-    if ( !ret && !opt_smt &&
-         cpu_data[cpu].compute_unit_id =3D=3D INVALID_CUID &&
-         cpumask_weight(per_cpu(cpu_sibling_mask, cpu)) > 1 )
-    {
-        ret =3D cpu_down_helper(data);
-        if ( ret )
-            printk("Could not re-offline CPU%u (%d)\n", cpu, ret);
-        else
-            ret =3D -EPERM;
-    }
-
-    return ret;
-}
-
-long cf_check cpu_down_helper(void *data)
-{
-    int cpu =3D (unsigned long)data;
-    int ret =3D cpu_down(cpu);
-    /* Have one more go on EBUSY. */
-    if ( ret =3D=3D -EBUSY )
-        ret =3D cpu_down(cpu);
-    return ret;
+    return !opt_smt && cpu_data[cpu].compute_unit_id =3D=3D INVALID_CUID &=
&
+           cpumask_weight(per_cpu(cpu_sibling_mask, cpu)) > 1;
 }
diff --git a/xen/common/smp.c b/xen/common/smp.c
index a011f541f1..114c1da77d 100644
--- a/xen/common/smp.c
+++ b/xen/common/smp.c
@@ -16,6 +16,7 @@
  * GNU General Public License for more details.
  */
=20
+#include <xen/cpu.h>
 #include <asm/hardirq.h>
 #include <asm/processor.h>
 #include <xen/spinlock.h>
@@ -104,6 +105,37 @@ void smp_call_function_interrupt(void)
     irq_exit();
 }
=20
+long cf_check cpu_up_helper(void *data)
+{
+    unsigned int cpu =3D (unsigned long)data;
+    int ret =3D cpu_up(cpu);
+
+    /* Have one more go on EBUSY. */
+    if ( ret =3D=3D -EBUSY )
+        ret =3D cpu_up(cpu);
+
+    if ( !ret && arch_smt_cpu_disable(cpu) )
+    {
+        ret =3D cpu_down_helper(data);
+        if ( ret )
+            printk("Could not re-offline CPU%u (%d)\n", cpu, ret);
+        else
+            ret =3D -EPERM;
+    }
+
+    return ret;
+}
+
+long cf_check cpu_down_helper(void *data)
+{
+    int cpu =3D (unsigned long)data;
+    int ret =3D cpu_down(cpu);
+    /* Have one more go on EBUSY. */
+    if ( ret =3D=3D -EBUSY )
+        ret =3D cpu_down(cpu);
+    return ret;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/include/xen/smp.h b/xen/include/xen/smp.h
index 2ca9ff1bfc..c734033bfb 100644
--- a/xen/include/xen/smp.h
+++ b/xen/include/xen/smp.h
@@ -76,4 +76,8 @@ extern void *stack_base[NR_CPUS];
 void initialize_cpu_data(unsigned int cpu);
 int setup_cpu_root_pgt(unsigned int cpu);
=20
+bool arch_smt_cpu_disable(unsigned int cpu);
+long cf_check cpu_up_helper(void *data);
+long cf_check cpu_down_helper(void *data);
+
 #endif /* __XEN_SMP_H__ */
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 10:51:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 10:51:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159701.1488058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8SD-000887-UZ; Wed, 12 Nov 2025 10:51:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159701.1488058; Wed, 12 Nov 2025 10: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 1vJ8SD-00087s-RP; Wed, 12 Nov 2025 10:51:57 +0000
Received: by outflank-mailman (input) for mailman id 1159701;
 Wed, 12 Nov 2025 10:51: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=ulhw=5U=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vJ8SB-0006fP-UR
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 10:51:55 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 99c20714-bfb5-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 11:51:53 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PAWPR03MB9786.eurprd03.prod.outlook.com
 (2603:10a6:102:2e8::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Wed, 12 Nov
 2025 10:51:49 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%7]) with mapi id 15.20.9298.015; Wed, 12 Nov 2025
 10:51: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: 99c20714-bfb5-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=unIW4zEC0wHFFctVtNHkc+oWco2vI6W1nDkCgucoqWIbUAiS/besPfKUvjccDuve2aCAulbtwn6GrMz9f56y29H5DbdpwemPUMsSZSoGkXiqa1U8hScPDIGEKhP5OoZm+HK6qB3MdWdPtX9lj3wgHWAtDgpEItkiUjuOXNQycpv6F3s0Rkm8wblBETqRrxFJvcNIkzh+pqsCzDsAerMA++SrRyvQsF490F0tYqCJ8e/bhC46IADilpm4iP0l3Ffa1XV1u4D1nLSpZpZpG8wc82ytRPff8q2jIBdnnEpPl613lQG2vSmWrE2lL55B/5Ld9jIv3GEErPSwUZye/HhQiw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RK3xjJT1/m7h8Eiq8scWUKysHO6uL/FasxMvbQpKdSo=;
 b=tjeCWW4PqlQHCqLy1MnansX6f+goo0eWfOj/q1YwjTxcs+L4JJkgOq22lfmBAf2dIRVi5Sj7E9wgS6kmu+QuVpLICCp1FOrOuVWtOkKugguQuYWNpIHZhuwjw5fZVmWbE/MCjjx8HZieHziwgc7Hzz9LHXZD2eQy25zVwD3T0jK0tsfyL+xuTsBfBhicfgPLwqQZQnjDA2lQw/QkBolhNdo+9oCTG2A3Bsu096Q36OnwlpRO/kSXEEdkbwYcuYeyT+FR+yBC8Rb3c5SPRuAF11VmWKVUmh3oPn+hy/ksjhFTSkperMH0icM7aoRgVVEmIRObWIdAJP/qMJGvp3fciQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RK3xjJT1/m7h8Eiq8scWUKysHO6uL/FasxMvbQpKdSo=;
 b=q1diejAUXV+jdjwUMJkRw0DuP6YQFwMz+v4omjDtjgn9c2ezO9Ta0FidIVRdGBx/3U7U8yy9GorcDaoYUEjCw/bGq9HrUVZ+xfAaE4ydTHabBlgCXtYMU70vLUwrz18uiJ/ov+1izfB78hqlISPCiJfiTInH/b0BDtdE7F/fJpJ4naY7lE8beXMY6VwjBKc50VudmxWKSxvwkW4g97BshBm5hOl/Lt+YANJTRAGoC0hYlVyyEE5A2T7E9ezKX8bKxKv71SxNQk1rDQK7hdgwQdgIDAgBnC4c1NVuKGZCD6M+9rVDg0YFqZGKcbk+EBY8OvpiJsFnChj58ys3YvXWpQ==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
Subject: [PATCH v4 6/8] arm/sysctl: Implement cpu hotplug ops
Thread-Topic: [PATCH v4 6/8] arm/sysctl: Implement cpu hotplug ops
Thread-Index: AQHcU8JY4MUEJP5v5ECe3RrLj+fwXw==
Date: Wed, 12 Nov 2025 10:51:48 +0000
Message-ID:
 <656cb01061f2ec726eb23784d01517a94117618e.1762939773.git.mykyta_poturai@epam.com>
References: <cover.1762939773.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1762939773.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_|PAWPR03MB9786:EE_
x-ms-office365-filtering-correlation-id: e2c5d9b2-e834-4c46-91ae-08de21d97b1e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?7WyZVAbBsrJYl/SB/GcPH0Isi8Nlh855KJks4d8wHieoQVkKrIRKUmsdoa?=
 =?iso-8859-1?Q?QlyqeBjqiS8x99hp26DhueYu0+VvLzqI4P+sJoxXvPtpceaiLT92cN6hy8?=
 =?iso-8859-1?Q?/Q+DIOHhvlZHupGPaUxBISBFm46+OvG3ITEAoXq/QZ6jH76ow2zt0wBuLL?=
 =?iso-8859-1?Q?ssBwJ0hOhvwy8hEZC45Ep+jkCXrGA/Yu3Paet4eXMZ37KWjlpjD8r7w1kj?=
 =?iso-8859-1?Q?Z6lUdMUbarHpOmLyvVI5V3HbB/F56g8hL17QQ5W/0oTm9r39k8r1n3qEuE?=
 =?iso-8859-1?Q?vEl0Tu2yaIVajzG2Jxg0O8ED0JUJiNhMpCxNTtpvgWcWyTQcoNB5VVEVmH?=
 =?iso-8859-1?Q?adJUI4wzWxfbai57EvHnK5gCJHOYTEh52pDEwLKEFEYsvjMsGbqVNOkNeq?=
 =?iso-8859-1?Q?H8rjsu+vs47AeXDe+O/FMQYvT6vK3j9aErRnH/G3mXyqELfm6T9+bOldA1?=
 =?iso-8859-1?Q?Dm63wBuvdE5GrqylAuMULMgOLdv6p5IiAPEQiYq1YXhjsBsf+M5rAznosM?=
 =?iso-8859-1?Q?meSGDuhuDMfR5leaJDuTbjSV1rgA2ZWj0OiYIXxAovjBOp+AK9t+nV7AdC?=
 =?iso-8859-1?Q?S42zdjtX2JYv+qha77pxDy4mQ15ltLERDtQWvZdCSLib2p2aAu9Xq65zhb?=
 =?iso-8859-1?Q?Xj15iKR6c2unUuQ1fJbjvKBiNZn0vGyeWrETwF27rEx1IHENqa1ldoKVr4?=
 =?iso-8859-1?Q?HAGSMp5C4Z1W1EVlDNiH/5qEOJ6L7jXK/F/C4neheKPEnkFEeQ3zFhbqrl?=
 =?iso-8859-1?Q?Ohe2HpY3uh0v1iCeWRObfQx8EFs4557bqfOfA8hbjIhqWT/62IGXl0XhR3?=
 =?iso-8859-1?Q?kA5WctKCFFJqRJPEvQUU462pC4oXVP7m/17hwPuMyt9nx3RFuQRcsT6poY?=
 =?iso-8859-1?Q?Rz3HfeVPN/jZ0tGW475VrAyuut/dfMwL9B+MIhFupZ7w7oZa9u0zrS/tZv?=
 =?iso-8859-1?Q?36CGVKmNgal7yU8hv3raGovGvf2RCmmfPrPzotkjt2r7lJZJpbIWeJXpJP?=
 =?iso-8859-1?Q?vYtb/I0dAALTd2wLysVOthM6Xck/XfRkBVxJbWXTmQNI76zG2geTdpGFuS?=
 =?iso-8859-1?Q?YF8hQh6Cuo6rkxMreAncAgemZmLQFttOSAEdrUYfLDgsnC/k5CQAeJf2Ah?=
 =?iso-8859-1?Q?PimaxqnM1JpPgpv35F455WHvVHtgRU/xE05ET7PREyXS/OCsCXrDPLWlF5?=
 =?iso-8859-1?Q?zObuP3KqoeakM99KdNDgXJMzFjLw+tQg2QF3tmA6D2w97lhfZgFGVCUg/4?=
 =?iso-8859-1?Q?VFZP/rQY4ddnczC6rwwM1yIr9Xr9g4LpBNu01IW1hqpH7sRVJX5yXAepV3?=
 =?iso-8859-1?Q?cfzzhB/Tl5owyf/Cnii8gXLCvAMkzL10TC6veI16v6pMabRnuOmg4VAGbZ?=
 =?iso-8859-1?Q?ZBOXop+Q6qID5EYrSHS9+yIjcSMN9KQyplUOa8PPWS0f7KCsm5IYKIuWeO?=
 =?iso-8859-1?Q?eV/y0BfVZ4sekoGHT+saFOFGRAxecojP+kAb4tQL7HObb9iQ46/2+FjzEk?=
 =?iso-8859-1?Q?3L0fJSBOkvo38R7QF3oHCiDRTn5Zmq6yCwo3kyel7Hu9Q1Z89WwNXAiF8x?=
 =?iso-8859-1?Q?k7fp13O8aRqycC2XvXGBlooolMQe?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?R2/loyO7+u8znGONUJxJbT0c5GLVepvuUitfGTnM4/Hm+GlNWv10ThOrHi?=
 =?iso-8859-1?Q?IoTJW6O/OT7HKFe3T33BWzcKF3bVSyNV/WHPHS1cgE+rNLWTcsXSe66Ujk?=
 =?iso-8859-1?Q?99jkZDnp9uKRPQG4dmMwVEeX5ELOjnKxnB2P2pxCAeCNbtQdmvfh85Zf9o?=
 =?iso-8859-1?Q?LNsHZFil/eQDRFJ5RUA7HXdTvk2DRpMwjGv5p0Ck6GGdxn0s2QWjQsByh4?=
 =?iso-8859-1?Q?DrMQJvjCVr3978qTPV9P/x4Qh4qlLslF8wNt7LKELO4o+H0FVhpbu8jECs?=
 =?iso-8859-1?Q?HwmNhkZUDJOPxB4RJOTgbWs0GuKxG9RM0Xcnc9zdoXmjR/zq7EYBbSCmrk?=
 =?iso-8859-1?Q?YE6KvKS/fW3kugPC/U4/mNg89PrQI5FsCYifjTtIV0sBj4JApR8BCJMRtA?=
 =?iso-8859-1?Q?D8J9pCYAWfvSjuEYW/7JFFWoW8SsUgIykaA+P3hM+AZPcHKCaRdZts4ymL?=
 =?iso-8859-1?Q?Pa5Jnp+MDDaN8g4jBtDMVRfVbVn31n5xfoOM71DVplnKlagpmK/h5NESPg?=
 =?iso-8859-1?Q?3KtzT0vPZYfL1QOIWFQzD0+3gMwTQrRgrorizlj2Te/ri3X38LY/r74A2t?=
 =?iso-8859-1?Q?1XIU+OBr5vOEi4BpDybb2IJCM12QVB0WF87YiRxvigP+Jz60RwHPy8GaDA?=
 =?iso-8859-1?Q?3vl9jhcQbm5tP7imtWDUVneLXaVBZPgFSfzeOAJhd6QUPqy+/0fB2wrKIb?=
 =?iso-8859-1?Q?eQiBqWuhdS8T2pouI77QkoFBU8gqiJthmMtU3iHUlDDBP8cP7SKkJyTIuz?=
 =?iso-8859-1?Q?Bh3cjHjJHPEZPbTsD/6ohLX3sag9mWVdMOqTJRl5lnh2hEJt0f8iJ2aK/H?=
 =?iso-8859-1?Q?wu3sCkA+pb38Zx26kb9Db7uVw50PwD+XSBfxdNipET0xal5PiURpmXY1Zw?=
 =?iso-8859-1?Q?NpEzbb5c1bFgSeaXWi9XhKmSBCqTQkfQKi/nYPRDS01QYPpzSYuoOvC8W3?=
 =?iso-8859-1?Q?GfjL2hjnj/qRYUhu5z6DcYfyCkSpvT1g81Kh4U61UzZVWWTSSSgqQoPuqw?=
 =?iso-8859-1?Q?MSP+LOqIwRUD8sqYDBmK04nuqEwBX1Wase5HiFnMHfnM2Aap513uRi7IBg?=
 =?iso-8859-1?Q?DTEUIsfZ5/O9KqiGjevjAM99o17nzJLggefqPaO/jpn8qAdIRBWSo3e+jQ?=
 =?iso-8859-1?Q?+TeaQySH+mho/HTe9IgaEhIZ9f4n4wbBhPnHTs54fhLKCFQhtMvA61v4em?=
 =?iso-8859-1?Q?sGZlTmIhSy5YngbetamFOrPGgue86C/39CHNH+D/+6qV+VyL+7Pp0rGqIU?=
 =?iso-8859-1?Q?Zlxc61QfTGHhysQkjO5c/MPETG2SemRwMmx6FIYrFFFJklurzJLo6SGv9q?=
 =?iso-8859-1?Q?/puBntGzzw3fHtij9cJvzRpvSOM06Fav4iW9lZpZDj9YDDZkw792aWa8qp?=
 =?iso-8859-1?Q?bagidUC/j2Q6yqU4uK6CaqlC0Pq9PhnI9RPqKKqv3sWcRrFwgv7yfS4IY0?=
 =?iso-8859-1?Q?05+zE7C0YkXX42k+y5wAFafKwMnx4wNRfPz2L87T1gGL1HT8s27fa5X3sV?=
 =?iso-8859-1?Q?g8ckV8V/2cgdth88lXJM86T7j0tbwDhKW/GAl/Ff8nHLRHRwGv8R7HF0zF?=
 =?iso-8859-1?Q?dejmfpp5Dzgl+ZzLYyXectBf0noDOcqYbUpIW0Neu/Fpwp6cKZ2DCHIR5/?=
 =?iso-8859-1?Q?F84x8hFR/aotVy6jAXieOBGGqKdrx8QrbsgF92LfYGu8+8xSlEo0Uutg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e2c5d9b2-e834-4c46-91ae-08de21d97b1e
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Nov 2025 10:51:49.0352
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: zXMOreC99SoWseZ0KgOhN46PyW3A0dWzsLhJHRlSKlI3MnDLQhaRT9O3KZTk29YkuqDB5tAc2Syb6QfJEB4Ubg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9786

Implement XEN_SYSCTL_CPU_HOTPLUG_{ONLINE,OFFLINE} calls to allow for
enabling/disabling CPU cores in runtime.

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.

Create a Kconfig option RUNTIME_CPU_CONTROL that reflects this
constraints.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

v3->v4:
* don't reimplement cpu_up/down helpers
* add Kconfig option
* fixup formatting

v2->v3:
* no changes

v1->v2:
* remove SMT ops
* remove cpu =3D=3D 0 checks
* add XSM hooks
* only implement for 64bit Arm
---
 xen/arch/arm/Kconfig  |  4 ++++
 xen/arch/arm/sysctl.c | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 36 insertions(+)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index cf6af68299..931ae51575 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -274,6 +274,10 @@ config PCI_PASSTHROUGH
 	help
 	  This option enables PCI device passthrough
=20
+config RUNTIME_CPU_CONTROL
+    def_bool y
+    depends on ARM_64 && !TEE && !FFA && !HAS_ITS
+
 endmenu
=20
 menu "ARM errata workaround via the alternative framework"
diff --git a/xen/arch/arm/sysctl.c b/xen/arch/arm/sysctl.c
index 32cab4feff..3c4e29d82c 100644
--- a/xen/arch/arm/sysctl.c
+++ b/xen/arch/arm/sysctl.c
@@ -12,6 +12,7 @@
 #include <xen/dt-overlay.h>
 #include <xen/errno.h>
 #include <xen/hypercall.h>
+#include <xsm/xsm.h>
 #include <asm/arm64/sve.h>
 #include <public/sysctl.h>
=20
@@ -23,6 +24,33 @@ void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
                                        XEN_SYSCTL_PHYSCAP_ARM_SVE_MASK);
 }
=20
+static long cpu_hotplug_sysctl(struct xen_sysctl_cpu_hotplug *hotplug)
+{
+#ifdef CONFIG_RUNTIME_CPU_CONTROL
+    int ret;
+
+    switch ( hotplug->op )
+    {
+    case XEN_SYSCTL_CPU_HOTPLUG_ONLINE:
+        ret =3D xsm_resource_plug_core(XSM_HOOK);
+        if ( ret )
+            return ret;
+        return continue_hypercall_on_cpu(0, cpu_up_helper, _p(hotplug->cpu=
));
+
+    case XEN_SYSCTL_CPU_HOTPLUG_OFFLINE:
+        ret =3D xsm_resource_unplug_core(XSM_HOOK);
+        if ( ret )
+            return ret;
+        return continue_hypercall_on_cpu(0, cpu_down_helper, _p(hotplug->c=
pu));
+
+    default:
+        return -EOPNOTSUPP;
+    }
+#else
+    return -EOPNOTSUPP;
+#endif
+}
+
 long arch_do_sysctl(struct xen_sysctl *sysctl,
                     XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
 {
@@ -34,6 +62,10 @@ long arch_do_sysctl(struct xen_sysctl *sysctl,
         ret =3D dt_overlay_sysctl(&sysctl->u.dt_overlay);
         break;
=20
+    case XEN_SYSCTL_cpu_hotplug:
+        ret =3D cpu_hotplug_sysctl(&sysctl->u.cpu_hotplug);
+        break;
+
     default:
         ret =3D -ENOSYS;
         break;
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 10:51:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 10:51:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159702.1488061 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8SE-00089s-Aa; Wed, 12 Nov 2025 10:51:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159702.1488061; Wed, 12 Nov 2025 10:51: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 1vJ8SE-00089H-3F; Wed, 12 Nov 2025 10:51:58 +0000
Received: by outflank-mailman (input) for mailman id 1159702;
 Wed, 12 Nov 2025 10:51: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=ulhw=5U=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vJ8SC-0006fP-Um
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 10:51:56 +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 99f8dfd7-bfb5-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 11:51:54 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PAWPR03MB9786.eurprd03.prod.outlook.com
 (2603:10a6:102:2e8::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Wed, 12 Nov
 2025 10:51:49 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%7]) with mapi id 15.20.9298.015; Wed, 12 Nov 2025
 10:51: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: 99f8dfd7-bfb5-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Oo6tgQLzFRZSLaZzMwzySm/rVZky7/q6T4KD8IMHV2GTGQ2sYgXJhQUMfv6Kv6aFhPm6+SBD11U0WUvd9CHyPyWznH/XdVtEZyDEXtUioVady1UdQknAUPQOTC8PRY05nVyWN/LSv/YHcU8uIr2jKoQx5jq2Emz6UhFYdVlht/oAmzOx+V9yGXIm9kXZiOS8XvJtd1SmvIWQB6iRR3IYTLQSFQIJMJZFzXRBwAZjYIDu4dVHqQEU74KmJnmavsO/gamUukwuzEdjp9KkBXdIWA0dTHUbmrWaAt9hKB86R9FOEhFX6RjCKeMMCB7C/cCIGq7lRnvgnhMeZhWOJYZRDw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hHWxEhZr2qxm7Hi5KjcTQQYKD/7NED9STP8YDDxxDx4=;
 b=Whj4BpdIAHqjsR44UcmTxXbOy1DaS0ymVoC60qi7TGmKZ7mvS3/rtFMsa/EHhVnKxo53NRahE2EUbo/QDTOh3lfCzCAQ7Bj44VYyAsOXkCTYF/z5Ml83RA0nVA17dkME4YOsWAV253j25IvJE8Dn/cTilDvJhbZ6/BG73/ZBzFy5cplSFxTwYyQ8A/TCq2lSynH71AHut7VnsUuBxqm86GFaJjR7H8r2r+7C9Tpi+0rz8XUrwfaoVoA1a3XSLKuHd7awqOmXD40WEg5bGqZ+robip+alLECv2G/ltcSA3EE3ddadIJN/pASlbW4I7GXh1YZMJfP1NF4odkTXbfbtLg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hHWxEhZr2qxm7Hi5KjcTQQYKD/7NED9STP8YDDxxDx4=;
 b=uq5OWBTObst50o4TlhqipOQQ63zvmpxpDz4WqIZp08wb9QSe3PaJYFuyGRF8tPVslZQcFZ9f00fCsB/jQ+9y0CeluetWeKfic7eH3e3QsVoCeGzhexVa4xsItvIsroHx3XAn3EWuum4IFb2cM+aHeRPS5ZSJvAOCfnyOI4M4ETD4oADzsYxVla7O5JhHAxUsYEDZW3HOwhKBzAXRcHexoL/6Ko8m1lpmwETlkknb3CBiiZK9DEnOis7OYRSZ0Q+2PZc+o8ebtN0kwbjXybPfgwejssTvGKZPkm9ipzVAa3s8d4au3833mCWcVhZe71zq5ZjCNc3y+VNjXYUEEn7ttQ==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>
Subject: [PATCH v4 7/8] tools: Allow building xen-hptool without
 CONFIG_MIGRATE
Thread-Topic: [PATCH v4 7/8] tools: Allow building xen-hptool without
 CONFIG_MIGRATE
Thread-Index: AQHcU8JY88Sv3J3KcUCnbLXdCp+q+g==
Date: Wed, 12 Nov 2025 10:51:49 +0000
Message-ID:
 <6da5b8b1aad1af18cf6ed352697ad39786adc37e.1762939773.git.mykyta_poturai@epam.com>
References: <cover.1762939773.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1762939773.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_|PAWPR03MB9786:EE_
x-ms-office365-filtering-correlation-id: 09306751-89f3-48d6-f7aa-08de21d97b5f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?epZnBjE417oZSqDP58+zsLlMlnMXbxcKdyHaAkFIPz4y/ulWdGSOEoohnc?=
 =?iso-8859-1?Q?Zk7TOq2QScOlURbY1sn1KXZ4cClAGY+jN7mdIDsm76b9sEgHpLMy+MrJpu?=
 =?iso-8859-1?Q?tk6ZlX4k/qZ8KbS+zHiOvfHm92i6g/ToMSuTPZq+4TVJtsQEp5Rc0dp5sZ?=
 =?iso-8859-1?Q?G51eVT1M5Y3pwuMeg3mAPzh8wRZPSnAFe1QzfiWKMveX9ADZ2ydDajWcBC?=
 =?iso-8859-1?Q?VdesL7zEpfzKH/+IL95ACuLMq8Kbt+mAoNhcf2zhrcprJvm+2XP/1L3ZkG?=
 =?iso-8859-1?Q?jxwhpKZRQSIv5x/9OyAywedWAkLcC1AyEV8ei4UqneXwxxqZvh+5c9jib+?=
 =?iso-8859-1?Q?Wtc1iTj/gB45BZqEOrErcKHftSfJcg+3cL0bLTITBsIvxnTAQyckE5PYaH?=
 =?iso-8859-1?Q?kyxY6RVcXPDrppLahccvWV1dzBtsJUO175ZwbVwImYb+3izIeJQVXnNKcm?=
 =?iso-8859-1?Q?8F8SJ6vYMUeshddJLy4ZnFjX1yVmqG6EQILoRcEmb3IB/V5V9TVavF/pPo?=
 =?iso-8859-1?Q?LlLxXYGzN3C76MfHymfYZnvm+oMy/otjH7QAe55bkBgNsF2IHzn9DcwAGd?=
 =?iso-8859-1?Q?RsR09ewQP9TE0axYX4IhBQZ2h/CrdlvYOMSepkQfzANbBqT/d/cgCzCR9L?=
 =?iso-8859-1?Q?ykfBj2waMPz5xc83hMZnSq12+fJd5ej4BV1EoGa23L1Pl6KNIW4Q4UDGIZ?=
 =?iso-8859-1?Q?N2QNWXX9GOyPpu1yxdrbzhvXMcTqhXnEm3Kfr1lK354CVxEBGRQ41UiWG/?=
 =?iso-8859-1?Q?SplndkVc2LNijJUH0IwEgFXqyZKnSCuEy/NQNjRzTckHIBKYnyvcMm3FHO?=
 =?iso-8859-1?Q?37b0zSZb/J6nbUmOz1O8iSTRbV3lvFmFYFQt1PsWZhLlbQ6Xlk5cYKGSa1?=
 =?iso-8859-1?Q?swKZ5w+y0XWEbWEivbBYmEAcR3UdMlc6VBzNIHELWwImqmlw6gvu6tmtp6?=
 =?iso-8859-1?Q?ldjXszO2OZKF5N2aGNIK/O5A0ct5XriG77+eitqgydt+97Tqwsu9GZonIn?=
 =?iso-8859-1?Q?ltiMSo1upRbcHY/yM91ktMNi6gBpl+31si/qR/Meve/M2f06v7iZKM2B6y?=
 =?iso-8859-1?Q?vDvDP6O/FpmC0HceBrnP3b8tIY3HmGEJUfwevoNlqirzJz6E35K+uBfsaY?=
 =?iso-8859-1?Q?i/I9oOan8ZhPQtfJBWamThc8Bv+pXBHky1xEMi6Xotn0UV2RCxDPuluyjt?=
 =?iso-8859-1?Q?dgWL3pYPQ8vM8r+jQO1vZf8pT3+u1E/P6xiYtwF8K4nrJURCDBCceE2IQO?=
 =?iso-8859-1?Q?c5cOuSsFUwoGq5HECoooMdwbpwNosFzVnJ7DAMmc1YFAdc3T+WYvz7HVeV?=
 =?iso-8859-1?Q?d1hb5/5j9kCAHdzUexci7eRA6abN53CpQ1e/Pt+LFYMrW32blCjuvAGChI?=
 =?iso-8859-1?Q?dAyqqwkQPgWk1SkfIg2Ne/KRuQkpJCMsy66ZYuupe3Tplq8rq1pTvmOYeq?=
 =?iso-8859-1?Q?saNKCkV4m4NUAhnCGcML6ADHPs6oXPpVzIJcwBkwFPLAyguylDrxJeaAlU?=
 =?iso-8859-1?Q?tx29tAFmhoVp7eaO0Xwmue/bnKYEtCmVJB2029i5736Orv0ZJsg3OGCAHc?=
 =?iso-8859-1?Q?v9hMktqQ5+5Y6d9vbXIgI69gKHm9?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?dRUWybDNhoKGL/zBe+5qquUK8ykdO0O5YBdwny5ZytLLH1A1SKbD2eg1c8?=
 =?iso-8859-1?Q?QqlSt8dpe7iPyJFhp/xFZcxoHyHwutJ2MTEdc7mX0RVtl+y2vJlaO+oBP1?=
 =?iso-8859-1?Q?scjfjI6CYxcIloKIdGr5pKaoR1It3PfnlaTT6e+HQgZz6HLbWExAjwcbfL?=
 =?iso-8859-1?Q?ljt3moROjinnllxb2uM+PwLJhihEOMXufhnetlEqC+RoD1VKvinQF/u903?=
 =?iso-8859-1?Q?KSArk0qrdtrVqtJqMAj4VQzM2WX8K0U6gPgcZzdT63jfQRMqN9KENRxNUR?=
 =?iso-8859-1?Q?raXuVld17Qf7TvuGAQgMSPM3+zjYiqqcqj3jlIWD2SJ7mkFyC1asyvydJK?=
 =?iso-8859-1?Q?kD9f8KHxEdviISLDgsgg1M27OgvLemM0c/9proFFRc7uAc98o9IfEI2ABd?=
 =?iso-8859-1?Q?76ehM4OB23qKAVXnDj/62ZZE7frI1POGHNNEaat6TSladF5ZuT1+pcLacG?=
 =?iso-8859-1?Q?iZ8+dz2cEyaOSlccDFCuGJGv46z6ga+T52V45KeK1fTosBhX/YV+i1Gdzi?=
 =?iso-8859-1?Q?2JzAuXqZFkTYbXpJdQw+1IjrvPbt/OVXe8ZsQdhAWD00r5NLsHlx27HiO6?=
 =?iso-8859-1?Q?VBAvkhUvMgspZe8s+c4OB0p0MLyuzA+WvkXWv7D67pc8Alhte4V6wWtAbO?=
 =?iso-8859-1?Q?fJzl31HBr4Cf42MKlT053R40cfR2I+FFsRuyWqtx8ABBqby6O7pYhG4oW5?=
 =?iso-8859-1?Q?mVnQV2yY9OuOAVL3V/LLKPXV3JzgF+xB2f54lPECweD9b7g9RUAoanJ3d/?=
 =?iso-8859-1?Q?yrjOOVDoWWNvRJwJiLchd85TUbveHJyoebVggeYqbcbG7ZYxrenaJN/Ofm?=
 =?iso-8859-1?Q?xspdgaSbVQfRD4drCMovZwGfjN9ZrxKWeNBSU3hzVnZUWKTMCFHkVGW6nH?=
 =?iso-8859-1?Q?y41Ddaqsy2ZhpcDhy29DucaCuMpj+tyfj9GWL3rVNL3QTHCWECrQa5GMVk?=
 =?iso-8859-1?Q?F+jAZYnfbyVkrhYmMWbfvpusQJXfKS684A1x8Z+RmnFmpm5oWpSjB+Njgu?=
 =?iso-8859-1?Q?/r9XG1UjJrnAbvo68H0CI5XgLqZYqPgmy+ll/oP8ZLMxJTEvHY4W+WDYNC?=
 =?iso-8859-1?Q?fE7yubFcRSRdNQGxsRPtGAf7WfPWOt04SPRf+GYgTdNPyWQmqdVU2LmPI7?=
 =?iso-8859-1?Q?9q3gixz6l3BdujYWAqRdgbuyo1SA0a5+vs+UkIdtKH4gK+ddRzxS0e0mtl?=
 =?iso-8859-1?Q?2lXIHoPdEkrS271cmdH8c7Onkeeg25hEGlARqmZkeTEW4I3Y2PBzgm1l0P?=
 =?iso-8859-1?Q?r22lsGzTHH3E0ih3xTWkL0OjoVL5KnLZJLaESlxOcaBYFaNnn/b2qbs8iE?=
 =?iso-8859-1?Q?84OOzhTC57WbqGIAmAlhVEzqfUv5pyEc5EbNrn8mPz00bz5UCJtuAZ7227?=
 =?iso-8859-1?Q?sD+7nfPYXCv524giNz3e0DWfjuWmK3fisgph1vdVwH7lD56GCxkpY/oPYT?=
 =?iso-8859-1?Q?tx1GCHQjg5lzZFaY+KMemiQpXRjWRhCR2Ns2TlML2IPV6Hkn8BWDyjjVmc?=
 =?iso-8859-1?Q?jwoWIVqu/xs0h9bH5OqtXaHRflTJr1gGZCpyI4X4dH4pDi5TuFKAkP1hlR?=
 =?iso-8859-1?Q?EieCK+lYhD3+pEd8WVXTdMbVZXYVLN7qAvxMlEd/B9NnxEhBDevrqF51Ql?=
 =?iso-8859-1?Q?dzxCdLLeiGjwLoKd5sTyvVXiOmTxUa45IID22aTXtOTlLaqPxPYnVK2Q?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 09306751-89f3-48d6-f7aa-08de21d97b5f
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Nov 2025 10:51:49.4298
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: SyRW3I8VItaclnc+w9oiEZLwb1TGJSv03RiVosmKCfzrapc+AFkvkWFOnxNgHmVzqRwZNALEbEO/TizbadBzJA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9786

With CPU hotplug sysctls implemented on Arm it becomes useful to have a
tool for calling them. Introduce a new congifure option "hptool" to
allow building hptool separately from other migration tools, and enable
it by default.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

v3->v4:
* no changes

v2->v3:
* no changes

v1->v2:
* switch to configure from legacy config
---
 config/Tools.mk.in               |  1 +
 tools/configure                  | 30 ++++++++++++++++++++++++++++++
 tools/configure.ac               |  1 +
 tools/libs/guest/Makefile.common |  4 ++++
 tools/misc/Makefile              |  2 +-
 5 files changed, 37 insertions(+), 1 deletion(-)
 mode change 100755 =3D> 100644 tools/configure

diff --git a/config/Tools.mk.in b/config/Tools.mk.in
index 0037ad5a64..d5855ca090 100644
--- a/config/Tools.mk.in
+++ b/config/Tools.mk.in
@@ -49,6 +49,7 @@ CONFIG_LIBNL        :=3D @libnl@
 CONFIG_GOLANG       :=3D @golang@
 CONFIG_PYGRUB       :=3D @pygrub@
 CONFIG_LIBFSIMAGE   :=3D @libfsimage@
+CONFIG_HPTOOL       :=3D @hptool@
=20
 CONFIG_SYSTEMD      :=3D @systemd@
 XEN_SYSTEMD_DIR     :=3D @SYSTEMD_DIR@
diff --git a/tools/configure b/tools/configure
old mode 100755
new mode 100644
index 3111f5688c..8a86582ece
--- a/tools/configure
+++ b/tools/configure
@@ -731,6 +731,7 @@ LD86
 AS86
 ipxe
 LINUX_BACKEND_MODULES
+hptool
 pygrub
 golang
 seabios
@@ -837,6 +838,7 @@ enable_ovmf
 enable_seabios
 enable_golang
 enable_pygrub
+enable_hptool
 with_linux_backend_modules
 enable_ipxe
 with_system_ipxe
@@ -1524,6 +1526,7 @@ Optional Features:
   --disable-seabios       Disable SeaBIOS (default is ENABLED)
   --disable-golang        Disable Go tools (default is ENABLED)
   --disable-pygrub        Disable pygrub (default is ENABLED)
+  --disable-hptool        Disable hptool (default is ENABLED)
   --enable-ipxe           Enable in-tree IPXE, (DEFAULT is off, see also
                           --with-system-ipxe)
   --enable-rombios        Enable ROMBIOS, (DEFAULT is on if ipxe is enable=
d,
@@ -4816,6 +4819,33 @@ pygrub=3D$ax_cv_pygrub
=20
=20
=20
+# Check whether --enable-hptool was given.
+if test ${enable_hptool+y}
+then :
+  enableval=3D$enable_hptool;
+fi
+
+
+if test "x$enable_hptool" =3D "xno"
+then :
+
+    ax_cv_hptool=3D"n"
+
+elif test "x$enable_hptool" =3D "xyes"
+then :
+
+    ax_cv_hptool=3D"y"
+
+elif test -z $ax_cv_hptool
+then :
+
+    ax_cv_hptool=3D"y"
+
+fi
+hptool=3D$ax_cv_hptool
+
+
+
=20
 # Check whether --with-linux-backend-modules was given.
 if test ${with_linux_backend_modules+y}
diff --git a/tools/configure.ac b/tools/configure.ac
index 285b4ea128..28a0c095c2 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -90,6 +90,7 @@ AX_ARG_DEFAULT_DISABLE([ovmf], [Enable OVMF])
 AX_ARG_DEFAULT_ENABLE([seabios], [Disable SeaBIOS])
 AX_ARG_DEFAULT_ENABLE([golang], [Disable Go tools])
 AX_ARG_DEFAULT_ENABLE([pygrub], [Disable pygrub])
+AX_ARG_DEFAULT_ENABLE([hptool], [Disable hptool])
=20
 AC_ARG_WITH([linux-backend-modules],
     AS_HELP_STRING([--with-linux-backend-modules=3D"mod1 mod2"],
diff --git a/tools/libs/guest/Makefile.common b/tools/libs/guest/Makefile.c=
ommon
index a026a2f662..774b1d5392 100644
--- a/tools/libs/guest/Makefile.common
+++ b/tools/libs/guest/Makefile.common
@@ -25,6 +25,10 @@ OBJS-y       +=3D xg_core.o
 OBJS-$(CONFIG_X86) +=3D xg_core_x86.o
 OBJS-$(CONFIG_ARM) +=3D xg_core_arm.o
=20
+ifneq (,$(filter y,$(CONFIG_MIGRATE)$(CONFIG_HPTOOL)))
+OBJS-y +=3D xg_offline_page.o
+endif
+
 vpath %.c ../../../xen/common/libelf
=20
 LIBELF_OBJS +=3D libelf-tools.o libelf-loader.o
diff --git a/tools/misc/Makefile b/tools/misc/Makefile
index c26e544e83..f783f16ae6 100644
--- a/tools/misc/Makefile
+++ b/tools/misc/Makefile
@@ -16,7 +16,7 @@ INSTALL_BIN                    +=3D xencov_split
 INSTALL_BIN +=3D $(INSTALL_BIN-y)
=20
 # Everything to be installed in regular sbin/
-INSTALL_SBIN-$(CONFIG_MIGRATE) +=3D xen-hptool
+INSTALL_SBIN-$(CONFIG_HPTOOL)  +=3D xen-hptool
 INSTALL_SBIN-$(CONFIG_X86)     +=3D xen-hvmcrash
 INSTALL_SBIN-$(CONFIG_X86)     +=3D xen-hvmctx
 INSTALL_SBIN-$(CONFIG_X86)     +=3D xen-lowmemd
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 10:51:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 10:51:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159703.1488075 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8SF-00007m-KY; Wed, 12 Nov 2025 10:51:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159703.1488075; Wed, 12 Nov 2025 10:51:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8SF-00005Z-EX; Wed, 12 Nov 2025 10:51:59 +0000
Received: by outflank-mailman (input) for mailman id 1159703;
 Wed, 12 Nov 2025 10:51: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=ulhw=5U=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vJ8SD-0006fP-V0
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 10:51:57 +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 9a3a9c2e-bfb5-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 11:51:54 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PAWPR03MB9786.eurprd03.prod.outlook.com
 (2603:10a6:102:2e8::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.12; Wed, 12 Nov
 2025 10:51:49 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%7]) with mapi id 15.20.9298.015; Wed, 12 Nov 2025
 10:51: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: 9a3a9c2e-bfb5-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZGa8XjVjnp2FzFUSBZ8QyJOOuBVhe0oD6NXEz9TrS0x+QEJ5ArGth4xhGfojKktN3PS+leW3dnAXbdsSvmWTZaSOiVh+L7wUQQiZDaPlILkZS311MyUGLkOP59QC0kQdQiAcBB24oCxMlbTaah7ivPTo07ixYG6vHIqOVK/e0BWm8hNshFwdSwg5c9g7FZuAvtr2pqA27JKeq5I83H5S7QW2S6nHmEnoDEqQAB09OP/Cnx8RzoYjDh9iicghk7o4Cz9OgYfRMk5tumV399DKUc3SVjkx4TATo3bMngqN9m6Ug5c4HNMtLTlkgwKYrgxRtdF41YDGvx+pV2ECsCIMYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W8D5Acrs8dUv0P8H4kunal5LzEZVvHwHaF8eBKEKwHc=;
 b=gQZMiOibJzHMUO/AXruTFoClKBj68mMPD36LnS6Q3kZPwRnupYRqY9FSN2tG/p0A1/zSMtii+tXqnJpZtILfp7n2qgALnsDEdkGp0FT7HvUJwg3ckxswrDxC6MtFifL7ge5z+qhq5ermuMMvCQqJkYXeiR5EvJLZ9utVHO3Sv1kEaPKyeIT9fyJYxOGBJamBzPtgg44QPN/DNfbR0YQDL2/Mdu2TUCT+ruiNPcAyzg9K7ixE0h9quvVlgJRMnkd89mwRXuOqiNkoa/k0Giy/Nim7p0q0p5+B0fobWSZf2L2zxzPCxGm5SqYZ+MSXFniIw6VyJoAjJt6PXstLgOwTPg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=W8D5Acrs8dUv0P8H4kunal5LzEZVvHwHaF8eBKEKwHc=;
 b=qTo0Rf3NUUr96anJg+MHAjV26kmocfECRoq050iSbfS4bsdZyhZBi2fIL22ytAisUoZ2/+AfaXtoBwraZrLX8PMGmMXwchF1HLMeK0Kd7wdhPeqDx8dQBdqPcM4UY3XNA91LfU2fSR4nnyQN7ZW9srjjQuD9mgLnYW5zXWtvcjkv72uV/oJX3sosjMHss5jW4wSUptnErzBh90K4DgyBQ4l7CLw3w2bU28ZGYbtLehyt82kxInn41EzsHEAX902AOXDkf/dpH466wTqSVJdE+8I1HtV9LStWezZIdTQFlOUmud3OL6x1qlcWLj9E6oDBpTdMhEeSM4Wb5rpom0httQ==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 8/8] docs: Document CPU hotplug
Thread-Topic: [PATCH v4 8/8] docs: Document CPU hotplug
Thread-Index: AQHcU8JZkVRIhtuRGUSqQZ7RQo1TrQ==
Date: Wed, 12 Nov 2025 10:51:49 +0000
Message-ID:
 <48bafdb8e6269a3d958065c6a1062ce2736632a0.1762939773.git.mykyta_poturai@epam.com>
References: <cover.1762939773.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1762939773.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_|PAWPR03MB9786:EE_
x-ms-office365-filtering-correlation-id: 6f16fa93-8259-49b6-2fc4-08de21d97b90
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?SDxfglLU2fuSoGQDU8fjKysBSgxbPf+cw4OP8SG9EOggT2qnozc0jQkEMM?=
 =?iso-8859-1?Q?nfpQJdEgDRUaqAO+GpzDwP8Mg+8bXEpY+xjeac4FNHSPoTNOehEoi6HmY0?=
 =?iso-8859-1?Q?X0Y650Me9rpnkcXuvyn70T+Jru2hccNXvHHZBVXdwUrBylzl7toEbPhM0L?=
 =?iso-8859-1?Q?xCEKvJjWB0K6IWkEYWkDOV1tvZQoh/d+DZL/B+8Ragren4tCRANPwM30hn?=
 =?iso-8859-1?Q?rISfVff3grMl10+S7RWHU23qr/d5zzfD6rpze1ulBI00+VWq9dJ5SUeMh/?=
 =?iso-8859-1?Q?i1sX8ovKJUxfeWNQmmU8WqcY0xsLQLNouhyFUd2/QB2+wZZI37RqA9PHgf?=
 =?iso-8859-1?Q?OgZvvUEEExu9RxgHkKOqsASPClsbZJ9O+WU0tmThhTvjWAiLa+gkoyg9xs?=
 =?iso-8859-1?Q?8+tKjpg/Q7SMDBHSgetEVAyewdi0E9AbRK4Aonjsoe3fvkmswzQ0vZKLfD?=
 =?iso-8859-1?Q?17SF6+eoq1uz2DxlnBlLGcrHfIVUjYJ487EY3SQJ1fRfmuCUvR3wPC0VHM?=
 =?iso-8859-1?Q?ft9HNglr0MzumkwIbV4J1e0MM8GbMfoeOPdxFfn+FDqODx32/WEgXW5+pk?=
 =?iso-8859-1?Q?1VDzuTuwJosmgCUKCry422eRwAZiK/Og2UK8Mb5v8TEEObZ0WkZVTe/I0K?=
 =?iso-8859-1?Q?eblsTmdpLzDbKiB/pSLwsi5p+jEeZreII4gIkj8/+3+BCZGa5CgAL4HXv0?=
 =?iso-8859-1?Q?lIUBQ7qMTPUKQROy5oXlMTFaGxMRGYy0sfwzqVHh5eiru2vFQQJXJYzeNu?=
 =?iso-8859-1?Q?lMyiYDkCHzlMI0pzPZNztpuVCF1hu5FoZUBFbBkrPBgfhfKnyeRcqKYrOY?=
 =?iso-8859-1?Q?R1n8odpYAZwhTJDKyPD6mpzQbSeZujMdPVTXgM9CfeEUYEA2lgIeOellhf?=
 =?iso-8859-1?Q?fED14Z/TLnzLrSHycCQCONna+eotAhIAXBoFmOG1/slE0CGiIz8shJe5PX?=
 =?iso-8859-1?Q?lh2d+rNbmVP9o7GSuTYaxRq63Xc8wTwRNhFVzIwFRnuIOurg3zPCXufAC5?=
 =?iso-8859-1?Q?FLPASQp3yylzjJXwm97guXalT9DyXMG7uiIMM0Q5QpO63x5uPtPXYGsyZx?=
 =?iso-8859-1?Q?eIgh9xRJYC1gfE3APWcaTR3+nu2DXK88upTRb+XpFCtF25JlKlrcFc6qpP?=
 =?iso-8859-1?Q?PoJP9Ao5eL5uE9mYJWJjGRMgKSl04ECv5LSFQafxYkZM/YustI3TvI89qu?=
 =?iso-8859-1?Q?5cnEVjrm5vrVik/XfEx1ZxLAkF1769fPuZ3l3j0SBH7k3bv4VbIEB7Wwv0?=
 =?iso-8859-1?Q?EIR9uhKeigFDRqjrVy5djPCAF9QJ78uhgVYhspsYMB1gRAftU+wAgmr6es?=
 =?iso-8859-1?Q?2uwAPkyGiPv25PkKNxxlX71DVAz5WkhLSlgqn7WHX8WAjRoV6a2gqLrvP3?=
 =?iso-8859-1?Q?5C33FUWLW/uj1fdYO1cXYCVCkB5/8nCC0aUZGDzE5YPA+LdGTXyfs5i0uA?=
 =?iso-8859-1?Q?w9UzkoyIzW53+xU2HrzgKLDZx64eCa12qRfhMRYQH8panbRfnervQ57bmG?=
 =?iso-8859-1?Q?upuOw3LoGRNcdCYL0ZEbye0yAPB/I9BNOruznZ83xDUNuEhX0pGByb3eHJ?=
 =?iso-8859-1?Q?L/ys1kGg8+XfgYcDHJDqhL4yFXat?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?8vqfqVDchHU6QjU2r88oyiNaQdhu1z99y205f/nXFGV8OMC1MimmWqixCi?=
 =?iso-8859-1?Q?Fb8LMm7eA2oMH+K5mNLHYwVghLpk3zLlmnOc54cebmB8R6IbAPp9k+P5ik?=
 =?iso-8859-1?Q?C5s7kFgKK+mG7y2H8z40T5Pjtv4Iy6qWkMI0sstwzycMWh6jfGHHGPGMXo?=
 =?iso-8859-1?Q?cUm1RHVnJxDEgLXA2ofoG6UEJ/Tue9Q7HIIMTflRzY67E2NlSuXDyKVR/3?=
 =?iso-8859-1?Q?eafth1Fv2JzdLsFY3v4nONiQLbtk3cl6fapGoXJw7cQDs8LF/OSaOhkxlk?=
 =?iso-8859-1?Q?48j2+3z0fqXZeD78F7ifWryBRAukWZJ4igIdte+NuTTGkMrn6gOVRKzdnk?=
 =?iso-8859-1?Q?Jm4HkMwn0LKFol9ZePqeXpXoQ7M7BuopDMCGvVsJp1oarATWSToSvTi9OP?=
 =?iso-8859-1?Q?xBcYGQddJjHHcf/atrhMlBAcpC5I+fPrc8u4xrJUj9SRitavIRoIZwu2wb?=
 =?iso-8859-1?Q?sFhvDRTqQdq1vGngjTkcZvqylfbF9g0qeAyoIFKcOj7mFIw89Zd6IUol1I?=
 =?iso-8859-1?Q?6z4chqArGAnT6tF8F0uXWK6U/gq4vQXTyVQlhThNWrCr4ujBU5BKgZv0JG?=
 =?iso-8859-1?Q?M/C4GB2YFqW5f/eCN3cRdVEUgEYroAoyNtPyFCVfJUqbkp1HL7lE40c/P7?=
 =?iso-8859-1?Q?POSxsbJmqSHO67pr5rvMYI/z3A4a86N3yuLTNf2Q6cdJ0ILhGN7wNgkryC?=
 =?iso-8859-1?Q?jCBD2OS/fpRtwDgzzz9GbgCFzS/0nBAoLKjArnXGmJ8Sl9JIJgqFZonDzK?=
 =?iso-8859-1?Q?5hrSJ5pseG7IqdujVER5RMAYfbX2T2PLT4MNNmMExDC0K6vACCLVjz0Y+4?=
 =?iso-8859-1?Q?BY1GVqanezmGZh2gPoLt9k9cHJp1+uH21pFb8AJDy7JlkiPQef09gajXM0?=
 =?iso-8859-1?Q?IdR8wmDsxFU/RZJz+CfEx39HgcrwaRYEzSKU/c1f3u2ONGR/gHpGM9LvfY?=
 =?iso-8859-1?Q?lIkZ018ciyjxmdyvg49fTm45KuQVCahPiJ0vbNFLzhwEVp/NX5VoR8yEWN?=
 =?iso-8859-1?Q?p4Ptt0rLn5a8RUmwR+m34myT/5XXMH1XI+fiR4eGKjLlVn8W2rZwXQj8am?=
 =?iso-8859-1?Q?JF7mLnzwZz8m5joMn64YIDPqmYWGkVRxH29Pl2pzN0sFRZOR379vdvheFJ?=
 =?iso-8859-1?Q?IkC5D3w2T+igu71fRXXqHvZPqEMy7AFFkt6WdvisFZe/wwuHjBhQhDeAN3?=
 =?iso-8859-1?Q?SjcCsmOfhrq2aJe9OxZ7xFoMg/gqtF5F1+GEYEYNro3B2dtBhkukSY+Ncq?=
 =?iso-8859-1?Q?gIp/DC8hg4so+LlQNhLjmQOiXpoLZujzWcVb7iLo42bApEs9cRYwmHGJgM?=
 =?iso-8859-1?Q?zqSusZVcJtjL6sne1zH2e3q9xinS01VfwvyfhMq4fQ1PqKlWDHPpSxMtHs?=
 =?iso-8859-1?Q?xbow3F+PJOr4hjvcDNO3m26ZNHvjaceFiMhCN5o5RTxeutIpK23lWkjurK?=
 =?iso-8859-1?Q?ARWb9//+J+JZphHmATsSsrR2PlEqlzJ1M1ZWPGaD3GvGNxjHFjjLq71e1e?=
 =?iso-8859-1?Q?g42Mj4RQKXJESeEnR6kwmOWixxqcmTX8ddj3c05FCCo3r2s5LC7+XG+gSU?=
 =?iso-8859-1?Q?jSiUYOfccITzgxhtau/oYmQDoLN0LVkqwlwf9DzI+L+p3m2d0uI7sBgJws?=
 =?iso-8859-1?Q?5SRhDNs8oMvrDaAuvZN/kl0oGi/L1ixvTwyoO2D7nTB/exISvyQ/oNGg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6f16fa93-8259-49b6-2fc4-08de21d97b90
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Nov 2025 10:51:49.7721
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: /fpYk6gqwWV6R89SzekAz0RqQ0lgjg4Lnz+h0uR89c1s3K7+VZebhgtjhKCC/RzGUHwmMDlWo/ALvv0Hq0GUGA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9786

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

v3->v4:
* update configuration section

v2->v3:
* patch introduced
---
 docs/misc/cpu-hotplug.txt | 51 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 docs/misc/cpu-hotplug.txt

diff --git a/docs/misc/cpu-hotplug.txt b/docs/misc/cpu-hotplug.txt
new file mode 100644
index 0000000000..1fbad0ecf7
--- /dev/null
+++ b/docs/misc/cpu-hotplug.txt
@@ -0,0 +1,51 @@
+CPU Hotplug
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+CPU hotplug is a feature that allows pCPU cores to be added to or removed =
from a
+running system without requiring a reboot. It is supported on x86 and Arm6=
4
+architectures.
+
+Implementation Details
+----------------------
+
+CPU hotplug is implemented through the `XEN_SYSCTL_CPU_HOTPLUG_*` sysctl c=
alls.
+The specific calls are:
+
+- `XEN_SYSCTL_CPU_HOTPLUG_ONLINE`: Brings a pCPU online
+- `XEN_SYSCTL_CPU_HOTPLUG_OFFLINE`: Takes a pCPU offline
+- `XEN_SYSCTL_CPU_HOTPLUG_SMT_ENABLE`: Enables SMT threads (x86 only)
+- `XEN_SYSCTL_CPU_HOTPLUG_SMT_DISABLE`: Disables SMT threads (x86 only)
+
+All cores can be disabled, assuming hardware support, except for core 0. S=
ysctl
+calls are routed to core 0 before doing any actual up/down operations on o=
ther
+cores.
+
+Configuration
+-------------
+
+Sysctl handlers are enabled unconditionally on x86 architecture. On Arm64,
+handlers are enabled by default when ITS, FFA, and TEE configs are disable=
d.
+Building of the userspace tool "hptool" is controlled by the "hptool" flag=
 in
+the configure script. It is enabled by default and can be disabled with
+--disable-hptool command line option.
+
+Usage
+-----
+
+Disable core:
+
+$ xen-hptool cpu-offline 2
+Prepare to offline CPU 2
+(XEN) Removing cpu 2 from runqueue 0
+CPU 2 offlined successfully
+
+Enable core:
+
+$ xen-hptool cpu-online 2
+Prepare to online CPU 2
+(XEN) Bringing up CPU2
+(XEN) GICv3: CPU2: Found redistributor in region 0 @00000a004005c000
+(XEN) CPU2: Guest atomics will try 1 times before pausing the domain
+(XEN) CPU 2 booted.
+(XEN) Adding cpu 2 to runqueue 0
+CPU 2 onlined successfully
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 10:57:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 10:57:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159778.1488088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8Xv-00033b-Jg; Wed, 12 Nov 2025 10:57:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159778.1488088; Wed, 12 Nov 2025 10:57:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8Xv-00033U-Gn; Wed, 12 Nov 2025 10:57:51 +0000
Received: by outflank-mailman (input) for mailman id 1159778;
 Wed, 12 Nov 2025 10: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=K5hw=5U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJ8Xt-00033O-QS
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 10:57: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 6d5b3573-bfb6-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 11:57:48 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b72cbc24637so155041666b.0
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 02: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
 a640c23a62f3a-b72bf97d430sm1645829166b.37.2025.11.12.02.57.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 12 Nov 2025 02:57: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: 6d5b3573-bfb6-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762945068; x=1763549868; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=whUktnCUBMheayfjio0tZjgzlpQ8tugGy0/dfWLMM1w=;
        b=ck2SApYjY0azjtx4pb0j6ComLzEiGWgMYv4yI4z7WFTqUTailQluEYfmdpYHYXBR1L
         VMCvpAP0RQHzHYSZ//1UVZ4SuzWdmcg55vWN0U4spSf5A4s+O29Li9XbCDy48+JxDBNa
         j+Y/YRUeyIdmWYIkXtXtoYCJ3fISH5CvUnvIqbpA7i6DdW/qV5xCaByf/chVCIxQWgBX
         U7UBhU8LAU+kHE06yBzljjJLuWz9tdFhusZHLUaNaAP+iwdJfiad2G3YN5qfpWWWmlJ5
         ITifJeQW9WJPGl9MV1+xo5Bcx/O70UF55ZNhNAaC5jyFxXljuxW+jcsJJvgVCdenxCL7
         AOmg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762945068; x=1763549868;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=whUktnCUBMheayfjio0tZjgzlpQ8tugGy0/dfWLMM1w=;
        b=Hf2AZ5qCAypb5/J6yvd+dRMSf7PQX4v/8uooo1e3eTDKB0sKZytjRtSq1dcg6/oAhx
         v9kNeI91bs6TQ4C6TfU4mQSxUJzhiqJtyDBBuII/BKUU6f/V1pq4Q4QvY0YLZmbiNsJp
         ZFhX4y22+goFOlpa8xhoyj+Y3BVXI8ky3ywCABXnV5MRo8fJTRG2mqyxwLG+TPCaylcb
         wMSa9WDb195gc/yIoSuctV24wCe4QN9yLq2VEPfJ4IFePIh5BqxoNIzRWDSfT6BKbQxg
         jsrDWIJAtwuGb1fOtIpMrbPrC4j41znuRYKqXVQuvpcKc5kTED5Z1gwpxOJi7DEStRTb
         DYIA==
X-Forwarded-Encrypted: i=1; AJvYcCWLY9VQFjJYGYOjfucVIGNqjINjgSSYNd+El2pgreIFfaI9YbnNBPjpdzBBrlED9fZFz1yJRYiDH2k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxiomIWB/MAx+hnF7Y3sB6FKWcbtg2o/+8C/4cK4+OdXudUxOJZ
	xfjJUjd8cTOjb5jUtIXXp5FbDUCVH0KGos3ci4izOhP7CxHd4mHLmpDMSd3jGQKhpQ==
X-Gm-Gg: ASbGncuAO7v19RM9tjGAxXGLqZO4XcotDbzuBxIBl3yFqZgsralV1/jJLCRmyu1KG4t
	SSH4KFcdU4B7hWeKuCo+sySOk6MntXUiSO7pp1FZHPYxOSEs6KRFmGS0PpRsYOicnRqKwlbVpoj
	wHIXmQMDGwURkqDu8KneEmMOYZr2QWtitlqXnqrAQEshoanywkF1aiG7u37WJSyo1Q91b1MPRCb
	0wNSvBJVIhyMfaL0XzXwUrooCIr8kCYMTNuxA4dywg+h4du1dEDs0Cwp9JDQRYiOTjKOPivXko5
	rHkQsSd5dvROlZdY9KqwlbN2hyFNikcksUrn4oWzIFlc5ut4jSgXZQyZX2wS6s6EzQwzsYeNPqE
	lYWCGFQNi9XsjLt5/QIA4bsurOkD4qsrrkWNTyQYJKFDaJGpbwWSyfUIxjGCJKmsOPCJY+Ok/Mu
	q7vLAF+StniSwyXbaxc/p1eTANz+E0rC5gObwTzhGEijnSUESMlf8/fciwg3VJUVYO
X-Google-Smtp-Source: AGHT+IHkc9HHRz4/NhrJa2msyLvJq8Sr+CkHjc1o+UglbAPukHCZ21K+Gi5dm3hVjqPRP3f/fsSBZQ==
X-Received: by 2002:a17:907:7f8c:b0:b30:c9d5:3adc with SMTP id a640c23a62f3a-b7331aaad1cmr233464166b.49.1762945068358;
        Wed, 12 Nov 2025 02:57:48 -0800 (PST)
Message-ID: <51a7d586-c1a0-4d35-b0de-6258aecaa668@suse.com>
Date: Wed, 12 Nov 2025 11:57:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RESEND PATCH v2 1/3] x86/hvm: move hvm_shadow_handle_cd() to vmx
 code
To: Teddy Astie <teddy.astie@vates.tech>,
 Grygorii Strashko <grygorii_strashko@epam.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: <20251111200958.3576341-1-grygorii_strashko@epam.com>
 <20251111200958.3576341-2-grygorii_strashko@epam.com>
 <93dd7056-234d-4d3d-ae1f-d73f33a35f1a@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: <93dd7056-234d-4d3d-ae1f-d73f33a35f1a@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.11.2025 11:52, Teddy Astie wrote:
> Le 11/11/2025 Ã  21:11, Grygorii Strashko a Ã©critÂ :
>> @@ -1451,6 +1452,66 @@ static int cf_check vmx_get_guest_pat(struct vcpu *v, u64 *gpat)
>>       return 1;
>>   }
>>   
>> +/* Exit UC mode only if all VCPUs agree on MTRR/PAT and are not in no_fill. */
>> +static bool domain_exit_uc_mode(struct vcpu *v)
>> +{
>> +    struct domain *d = v->domain;
>> +    struct vcpu *vs;
>> +
>> +    for_each_vcpu(d, vs)
>> +    {
>> +        if ( (vs == v) || !vs->is_initialised )
>> +            continue;
>> +        if ( (vs->arch.hvm.cache_mode == NO_FILL_CACHE_MODE) ||
>> +             mtrr_pat_not_equal(vs, v) )
>> +            return false;
>> +    }
>> +
>> +    return true;
>> +}
>> +
>> +static void hvm_set_uc_mode(struct domain *d, bool is_in_uc_mode)
>> +{
>> +    d->arch.hvm.is_in_uc_mode = is_in_uc_mode;
>> +    shadow_blow_tables_per_domain(d);
>> +}
>> +
>> +static void hvm_shadow_handle_cd(struct vcpu *v, unsigned long value)
>> +{
>> +    struct domain *d = v->domain;
>> +
>> +    if ( value & X86_CR0_CD )
>> +    {
>> +        /* Entering no fill cache mode. */
>> +        spin_lock(&d->arch.hvm.uc_lock);
>> +        v->arch.hvm.cache_mode = NO_FILL_CACHE_MODE;
>> +
>> +        if ( !d->arch.hvm.is_in_uc_mode )
>> +        {
>> +            domain_pause_nosync(d);
>> +
>> +            /* Flush physical caches. */
>> +            flush_all(FLUSH_CACHE_EVICT);
>> +            hvm_set_uc_mode(d, true);
>> +
>> +            domain_unpause(d);
>> +        }
>> +        spin_unlock(&d->arch.hvm.uc_lock);
>> +    }
>> +    else if ( !(value & X86_CR0_CD) &&
>> +              (v->arch.hvm.cache_mode == NO_FILL_CACHE_MODE) )
>> +    {
>> +        /* Exit from no fill cache mode. */
>> +        spin_lock(&d->arch.hvm.uc_lock);
>> +        v->arch.hvm.cache_mode = NORMAL_CACHE_MODE;
>> +
>> +        if ( domain_exit_uc_mode(v) )
>> +            hvm_set_uc_mode(d, false);
>> +
>> +        spin_unlock(&d->arch.hvm.uc_lock);
>> +    }
>> +}
>> +
> 
> Given that these functions are now static in vmx.c, I would give them 
> the vmx_* prefix instead of hvm_* (which could be confusing as it sounds 
> like something that is in general code).

There's no need for either prefix really, I would say.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 10:58:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 10:58:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159789.1488097 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8Yg-0003Y0-RC; Wed, 12 Nov 2025 10:58:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159789.1488097; Wed, 12 Nov 2025 10:58:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8Yg-0003Xt-Of; Wed, 12 Nov 2025 10:58:38 +0000
Received: by outflank-mailman (input) for mailman id 1159789;
 Wed, 12 Nov 2025 10:58:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=76yT=5U=bounce.vates.tech=bounce-md_30504962.6914685b.v1-68640975b6574f6b8a5b1d3da2c2f2b5@srs-se1.protection.inumbo.net>)
 id 1vJ8Yf-00033O-Ii
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 10:58:37 +0000
Received: from mail136-17.atl41.mandrillapp.com
 (mail136-17.atl41.mandrillapp.com [198.2.136.17])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 895d6952-bfb6-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 11:58:36 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4d60kg19pxzPm0ZNG
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 10:58:35 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 68640975b6574f6b8a5b1d3da2c2f2b5; Wed, 12 Nov 2025 10:58: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: 895d6952-bfb6-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1762945115; x=1763215115;
	bh=tBMtXLUrgGGGSeKU3UBukiIF2xYXSSZmdQGOIQ0dPwI=;
	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=NX4L6NBSPxfbqhJ0pUjK/vh6oJQxscppgq04n9B1iiXJ+dtfKAl6fTOJbpI+BFSFJ
	 gxWg6+N5JouZ7m/8tUgGWuSN66EF76FYQ3VKW/in52iExWBqVHtKj0098xHwcn3p8z
	 jtZM5BPtVfJiZE0NdcYwxd9GRs3bVVUIyOEDvNS5equ2TzzDP7gcKiUsMiFujRhl5H
	 gj0fZ1tsbkVylrtqToGOd0X/r+JPAWnuCgRFsFFHA/EMYfwdOOaY1heQVeQfE6aEm3
	 JvIoYMuT0vb92sEs/EmLgvh9LYRVkMp15UwFmxQpJMCfWJOk5PDzj/pRDwqiTGc08V
	 zu/EFoK0c7dcQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1762945115; x=1763205615; i=teddy.astie@vates.tech;
	bh=tBMtXLUrgGGGSeKU3UBukiIF2xYXSSZmdQGOIQ0dPwI=;
	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=ZARYiMwDH6UoMyNcgvdyd8iZF+XgZXWLkC7UnCfSycYKZSnGD0hzIRjnwA63NDjUA
	 HYepfdOza5bO61jCdrx6RXoL0LPouby3JE3Z0vpwCJHxnn5ArnZJU7VI2gl3W31l5Y
	 2Bvndz19dJGuT8sPGy2leAUJg6gQ5jYNP0YVZmJqP8AH0h68DkOa2HQ4ReatWEoalQ
	 R0mmY0x7TsfUNgkZLalKSAfusP7AUtoqx82X9VvfSNlz1iYnVd/I6e9F9KXu9px0+W
	 WwllN5eGcsTZ6XBNiywsmPK+EdCnJzuUiVn+6kfFtU9ERg5WoDNbigEKB5/Xmxp8hW
	 5tI/JSoIZhImA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[XEN][PATCH=200/5]=20x86:=20pvh:=20allow=20to=20disable=2032-bit=20(COMPAT)=20interface=20support?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1762945113454
Message-Id: <fa98c390-db6a-4b3a-b34c-820625f139a4@vates.tech>
To: "Grygorii Strashko" <grygorii_strashko@epam.com>, xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, "Alejandro Vallejo" <alejandro.garciavallejo@amd.com>, "Jason Andryuk" <jason.andryuk@amd.com>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
In-Reply-To: <20251111175413.3540690-1-grygorii_strashko@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.68640975b6574f6b8a5b1d3da2c2f2b5?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251112:md
Date: Wed, 12 Nov 2025 10:58:35 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 11/11/2025 =C3=A0 18:55, Grygorii Strashko a =C3=A9crit=C2=A0:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Hi
> 
> This series introduces possibility to disable 32-bit (COMPAT) interface s=
upport
> in the following cases:
>        - Only PVH domains are used

I assume this one is mostly due to hvmloader being today running in 
protected mode 32-bits rather than a limitation "HVM" itself. I don't 
think of anything else preventing HVM (with 64-bits guests or 32-bits 
ones without Xen support) from working with COMPAT disabled.

>        - Guests (OS) are started by using direct Direct Kernel Boot
>        - Guests (OS) are 64-bit and Guest early boot code, which is runni=
ng not
>          in 64-bit mode, does not access Xen interfaces
>          (hypercalls, shared_info, ..)
> 
> If above criterias are met the COMPAT HVM interface become unreachable an=
d can be disabled.
> Coverage reports analyze and adding guard (debug) exceptions in hvm_hyper=
call/hvm_do_multicall_call
> and hvm_latch_shinfo_size() confirm that COMPAT HVM interface is unused f=
or safety use-case.
> 
> Grygorii Strashko (5):
>    x86: hvm: dm: factor out compat code under ifdefs
>    x86: hvm: compat: introduce vcpu_is_hcall_compat() helper
>    x86: hvm: factor out compat code under ifdefs
>    x86: pvh: allow to disable 32-bit interface support
>    x86: constify has_32bit_shinfo() if !CONFIG_COMPAT
> 
>   xen/arch/x86/hvm/Kconfig          | 19 +++++++++++++++-
>   xen/arch/x86/hvm/dm.c             |  2 ++
>   xen/arch/x86/hvm/hvm.c            | 22 +++++++++++++-----
>   xen/arch/x86/hvm/hypercall.c      | 37 +++++++++++++++++++++++--------
>   xen/arch/x86/hypercall.c          |  6 +----
>   xen/arch/x86/include/asm/domain.h |  3 ++-
>   xen/common/kernel.c               |  2 +-
>   xen/include/xen/sched.h           |  9 ++++++++
>   8 files changed, 78 insertions(+), 22 deletions(-)
> 

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Nov 12 11:02:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 11:02:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159807.1488108 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8bs-0005Go-9I; Wed, 12 Nov 2025 11:01:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159807.1488108; Wed, 12 Nov 2025 11:01: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 1vJ8bs-0005Gh-6J; Wed, 12 Nov 2025 11:01:56 +0000
Received: by outflank-mailman (input) for mailman id 1159807;
 Wed, 12 Nov 2025 11:01: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=K372=5U=bounce.vates.tech=bounce-md_30504962.691466e9.v1-1fd812512d564af1beb27716acce14a2@srs-se1.protection.inumbo.net>)
 id 1vJ8Sm-0000Wh-0L
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 10:52:32 +0000
Received: from mail136-17.atl41.mandrillapp.com
 (mail136-17.atl41.mandrillapp.com [198.2.136.17])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id acca7913-bfb5-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 11:52:26 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4d60bY13JHzPm0bYq
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 10:52:25 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 1fd812512d564af1beb27716acce14a2; Wed, 12 Nov 2025 10:52: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: acca7913-bfb5-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1762944745; x=1763214745;
	bh=86aQGi/7GaUPH3vqhUSGrPmTwZia3vX6HeEK4SO4NAs=;
	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=aZJVM2zfz6tLfkQtLB8W5lFwm4X3VObWKiH6VrAAFQJ7B6AQ8+CzHkZpViDKy4VJ/
	 sKWDN5iUeVPDFKbx44KuqY9TdtD16bDlKhMdKPDBpYldBe7DR2VJkti7fwNwCfqYlQ
	 juzGlIv9fY434WqzPetarbj7Z+fvgO0mSW5iHVLBXxAOzb0FuaOboF8kZiJjn8d7sh
	 38AQicU1lBkmFjtQtqtxwPwVVbs+INN+xXlmPZK4w22XQbD/xy1rK9L0wH9GuRaL++
	 8Aw35lbNxAQRYQ5CSk4yua+940v2IZTzgNnBaPAiXspXZoIIGaJY0danrFSdHc8g3K
	 bBUEhDrPF5bnw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1762944745; x=1763205245; i=teddy.astie@vates.tech;
	bh=86aQGi/7GaUPH3vqhUSGrPmTwZia3vX6HeEK4SO4NAs=;
	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=gghIszI8ppzkHpmXXAoIM7qBapCg6fzPlPfORzROVnF1CKiuw3Z44G7pcgRxCTufZ
	 9DeQ3mdK6WG1dxJrIKiGBnQJ0wPZsttfclHD5QWWzm5U/YSiFqKWPe80EiOV26kW3S
	 Wu35s0+izpfdSZpBu/0wODsXIEDHc2Lv/agwLCfXTyMZghHaVt4DvzuGG0ZXQJ8W8B
	 GQRQfnhLk0CFQFL/3betC2zpl4l8HQ0qIN1lZxyfn9w6ocBrTwM+h5zINARoOGHPzT
	 n4RDZ5lUqrcBLJKh95uAqKmxh4Cpr6cdFOIWFcw1qLr4eNs22FGBsIHTopxPJvDVjV
	 5ZLxjUE8p90Mg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RESEND=20PATCH=20v2=201/3]=20x86/hvm:=20move=20hvm=5Fshadow=5Fhandle=5Fcd()=20to=20vmx=20code?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1762944743850
Message-Id: <93dd7056-234d-4d3d-ae1f-d73f33a35f1a@vates.tech>
To: "Grygorii Strashko" <grygorii_strashko@epam.com>, xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Jason Andryuk" <jason.andryuk@amd.com>
References: <20251111200958.3576341-1-grygorii_strashko@epam.com> <20251111200958.3576341-2-grygorii_strashko@epam.com>
In-Reply-To: <20251111200958.3576341-2-grygorii_strashko@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.1fd812512d564af1beb27716acce14a2?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251112:md
Date: Wed, 12 Nov 2025 10:52:25 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 11/11/2025 =C3=A0 21:11, Grygorii Strashko a =C3=A9crit=C2=A0:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Functions:
>   hvm_shadow_handle_cd()
>   hvm_set_uc_mode()
>   domain_exit_uc_mode()
> are used only by Intel VMX code, so move them to VMX code.
> 
> While here:
> - minor format change in domain_exit_uc_mode()
> - s/(0/1)/(false/true) for bool types
> - use "struct domain *" as parameter in hvm_set_uc_mode()
> - use "struct domain *d" as local var in hvm_shadow_handle_cd()
> 
> No functional changes.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
> changes in v2:
> - use "struct domain *" as parameter in hvm_set_uc_mode()
> - use "struct domain *d" as local var in hvm_shadow_handle_cd()
> - move code before vmx_handle_cd()
> 
>   xen/arch/x86/hvm/hvm.c                 | 58 ------------------------
>   xen/arch/x86/hvm/vmx/vmx.c             | 61 ++++++++++++++++++++++++++
>   xen/arch/x86/include/asm/hvm/support.h |  2 -
>   3 files changed, 61 insertions(+), 60 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> index da3cde1ff0e6..9caca93e5f56 100644
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -2168,30 +2168,6 @@ int hvm_set_efer(uint64_t value)
>       return X86EMUL_OKAY;
>   }
>   
> -/* Exit UC mode only if all VCPUs agree on MTRR/PAT and are not in no_fi=
ll. */
> -static bool domain_exit_uc_mode(struct vcpu *v)
> -{
> -    struct domain *d =3D v->domain;
> -    struct vcpu *vs;
> -
> -    for_each_vcpu ( d, vs )
> -    {
> -        if ( (vs =3D=3D v) || !vs->is_initialised )
> -            continue;
> -        if ( (vs->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) ||
> -             mtrr_pat_not_equal(vs, v) )
> -            return 0;
> -    }
> -
> -    return 1;
> -}
> -
> -static void hvm_set_uc_mode(struct vcpu *v, bool is_in_uc_mode)
> -{
> -    v->domain->arch.hvm.is_in_uc_mode =3D is_in_uc_mode;
> -    shadow_blow_tables_per_domain(v->domain);
> -}
> -
>   int hvm_mov_to_cr(unsigned int cr, unsigned int gpr)
>   {
>       struct vcpu *curr =3D current;
> @@ -2273,40 +2249,6 @@ int hvm_mov_from_cr(unsigned int cr, unsigned int =
gpr)
>       return X86EMUL_UNHANDLEABLE;
>   }
>   
> -void hvm_shadow_handle_cd(struct vcpu *v, unsigned long value)
> -{
> -    if ( value & X86_CR0_CD )
> -    {
> -        /* Entering no fill cache mode. */
> -        spin_lock(&v->domain->arch.hvm.uc_lock);
> -        v->arch.hvm.cache_mode =3D NO_FILL_CACHE_MODE;
> -
> -        if ( !v->domain->arch.hvm.is_in_uc_mode )
> -        {
> -            domain_pause_nosync(v->domain);
> -
> -            /* Flush physical caches. */
> -            flush_all(FLUSH_CACHE_EVICT);
> -            hvm_set_uc_mode(v, 1);
> -
> -            domain_unpause(v->domain);
> -        }
> -        spin_unlock(&v->domain->arch.hvm.uc_lock);
> -    }
> -    else if ( !(value & X86_CR0_CD) &&
> -              (v->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) )
> -    {
> -        /* Exit from no fill cache mode. */
> -        spin_lock(&v->domain->arch.hvm.uc_lock);
> -        v->arch.hvm.cache_mode =3D NORMAL_CACHE_MODE;
> -
> -        if ( domain_exit_uc_mode(v) )
> -            hvm_set_uc_mode(v, 0);
> -
> -        spin_unlock(&v->domain->arch.hvm.uc_lock);
> -    }
> -}
> -
>   static void hvm_update_cr(struct vcpu *v, unsigned int cr, unsigned lon=
g value)
>   {
>       v->arch.hvm.guest_cr[cr] =3D value;
> diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
> index 6f2cc635e582..d7efd0a73add 100644
> --- a/xen/arch/x86/hvm/vmx/vmx.c
> +++ b/xen/arch/x86/hvm/vmx/vmx.c
> @@ -44,6 +44,7 @@
>   #include <asm/processor.h>
>   #include <asm/prot-key.h>
>   #include <asm/regs.h>
> +#include <asm/shadow.h>
>   #include <asm/spec_ctrl.h>
>   #include <asm/stubs.h>
>   #include <asm/x86_emulate.h>
> @@ -1451,6 +1452,66 @@ static int cf_check vmx_get_guest_pat(struct vcpu =
*v, u64 *gpat)
>       return 1;
>   }
>   
> +/* Exit UC mode only if all VCPUs agree on MTRR/PAT and are not in no_fi=
ll. */
> +static bool domain_exit_uc_mode(struct vcpu *v)
> +{
> +    struct domain *d =3D v->domain;
> +    struct vcpu *vs;
> +
> +    for_each_vcpu(d, vs)
> +    {
> +        if ( (vs =3D=3D v) || !vs->is_initialised )
> +            continue;
> +        if ( (vs->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) ||
> +             mtrr_pat_not_equal(vs, v) )
> +            return false;
> +    }
> +
> +    return true;
> +}
> +
> +static void hvm_set_uc_mode(struct domain *d, bool is_in_uc_mode)
> +{
> +    d->arch.hvm.is_in_uc_mode =3D is_in_uc_mode;
> +    shadow_blow_tables_per_domain(d);
> +}
> +
> +static void hvm_shadow_handle_cd(struct vcpu *v, unsigned long value)
> +{
> +    struct domain *d =3D v->domain;
> +
> +    if ( value & X86_CR0_CD )
> +    {
> +        /* Entering no fill cache mode. */
> +        spin_lock(&d->arch.hvm.uc_lock);
> +        v->arch.hvm.cache_mode =3D NO_FILL_CACHE_MODE;
> +
> +        if ( !d->arch.hvm.is_in_uc_mode )
> +        {
> +            domain_pause_nosync(d);
> +
> +            /* Flush physical caches. */
> +            flush_all(FLUSH_CACHE_EVICT);
> +            hvm_set_uc_mode(d, true);
> +
> +            domain_unpause(d);
> +        }
> +        spin_unlock(&d->arch.hvm.uc_lock);
> +    }
> +    else if ( !(value & X86_CR0_CD) &&
> +              (v->arch.hvm.cache_mode =3D=3D NO_FILL_CACHE_MODE) )
> +    {
> +        /* Exit from no fill cache mode. */
> +        spin_lock(&d->arch.hvm.uc_lock);
> +        v->arch.hvm.cache_mode =3D NORMAL_CACHE_MODE;
> +
> +        if ( domain_exit_uc_mode(v) )
> +            hvm_set_uc_mode(d, false);
> +
> +        spin_unlock(&d->arch.hvm.uc_lock);
> +    }
> +}
> +

Given that these functions are now static in vmx.c, I would give them 
the vmx_* prefix instead of hvm_* (which could be confusing as it sounds 
like something that is in general code).

>   static void cf_check vmx_handle_cd(struct vcpu *v, unsigned long value)
>   {
>       if ( !paging_mode_hap(v->domain) )
> diff --git a/xen/arch/x86/include/asm/hvm/support.h b/xen/arch/x86/includ=
e/asm/hvm/support.h
> index 2a7ba36af06f..9e9fa6295567 100644
> --- a/xen/arch/x86/include/asm/hvm/support.h
> +++ b/xen/arch/x86/include/asm/hvm/support.h
> @@ -119,8 +119,6 @@ void hvm_rdtsc_intercept(struct cpu_user_regs *regs);
>   
>   int __must_check hvm_handle_xsetbv(u32 index, u64 new_bv);
>   
> -void hvm_shadow_handle_cd(struct vcpu *v, unsigned long value);
> -
>   /*
>    * These functions all return X86EMUL return codes.  For hvm_set_*(), t=
he
>    * caller is responsible for injecting #GP[0] if X86EMUL_EXCEPTION is

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Nov 12 11:03:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 11:03:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159831.1488118 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8cu-00067M-IL; Wed, 12 Nov 2025 11:03:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159831.1488118; Wed, 12 Nov 2025 11:03:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8cu-00067F-Er; Wed, 12 Nov 2025 11:03:00 +0000
Received: by outflank-mailman (input) for mailman id 1159831;
 Wed, 12 Nov 2025 11:02:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=X0mN=5U=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJ8ct-000673-MR
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 11:02:59 +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 2581fc48-bfb7-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 12:02:58 +0100 (CET)
Received: from DM4PR03MB7015.namprd03.prod.outlook.com (2603:10b6:8:42::8) by
 CO1PR03MB5874.namprd03.prod.outlook.com (2603:10b6:303:9c::11) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9275.12; Wed, 12 Nov 2025 11:02:55 +0000
Received: from DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9]) by DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9%3]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025
 11:02:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2581fc48-bfb7-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ewm49zHvDlVZ1cODLVrARZCWucEacfDMH5XhVhHtGOBE4s1bomJup1zbEK340tvj/KjVWJtHlz4z1NDWxxU9gzXZ7PXBGQCuVDe9R6AkL3hs/HvLTwpB9sQswNZ5mWlHk6yyohZcq3Sn9fBnjJn6Pekf5V3jzZMfAniBJOmiTmH5S28crfbfB5i2V4v+rJqVmZW/tkj5CRA+39Aqjq1HgA4VGGdXaRxM1n42qgAZo3dNQoXQUQ28NuzJ/lrILbaekqB4R3IJ2sdqnoyHZ3/OLJZM+K+uDP0PZJ3DjYXCVTYHCPslaw0kSosb86gHh6H/S1krkopqRZIUfr/QoSNJkw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0ZiXP8Zepi5lNeaO9BfEkf0pA6E1xpycNBx/AuwO7pI=;
 b=EQqwoBsdEAIfpZSfmGaoamHtZmfUUskBKoDsUHWt2P2iWRG7k+V+miKSj9ekuYqP5eD3ED/EL0ycQA9BCYxeTdIPgQxBA+TdKccbHGjAnIZ8n2dgo8Z4Fy6d06pg77/0DywqhPUVCBCoKBJORY8C/fDCYjcsK8nhRDkZiA0Hp9ay1cmBKxDdXNB+b6JPavnkDrSmPp+Z+yAAuP8tiEK1cDiEC0hZRVd0iigO1VYwQmYngRAq/nED3ZbM43V1oEvkhwKrvO8Td1aKlDVegdOu930iM5La77Ly4u3TwyBfaB90Q0OXB3LLenP5l3O2rwNacwgNKtai1ul8/RKZRgWw6w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0ZiXP8Zepi5lNeaO9BfEkf0pA6E1xpycNBx/AuwO7pI=;
 b=TYTh5FtGd4iI+dBLGYFipPoWQCZVs8ZPEs4NS1vslpYooY7ABy1w9Xi3d5FbiVJsPQ7RPKUJxvhIjDOkEvWTk3cngUMSw+yt6xBfIZJycpzkfW0AqN+07hwbJQ6VOSoXL4TN+pPK+INhNhUyBsJgY2kTnJwubXSpkAwSz2Z/fOk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <746a6690-0fff-4b03-8f56-efa0ca84310d@citrix.com>
Date: Wed, 12 Nov 2025 11:02:50 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH for-4.22] x86/hvm: Introduce force_x2apic flag
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <d498a50f6187b362ac5da3c6a7a7c348f35dc4b3.1761761288.git.teddy.astie@vates.tech>
 <c1d2fece-02fe-4c3a-b08b-ac8525277787@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <c1d2fece-02fe-4c3a-b08b-ac8525277787@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0416.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a0::20) To DM4PR03MB7015.namprd03.prod.outlook.com
 (2603:10b6:8:42::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR03MB7015:EE_|CO1PR03MB5874:EE_
X-MS-Office365-Filtering-Correlation-Id: 48f5b617-0caa-439d-6b91-08de21db07f9
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?RFdyTTJ1SW1WUUtiYWwzU1N2ZkU4c2VPV0dhUFBJbWZBTlhsQnpaaS95R1JN?=
 =?utf-8?B?SUF2TDJQYXliU21uaFFudVd0MW5uU0RKSSs3Vlo1dVZFaG1xcFZlQXlOeFlB?=
 =?utf-8?B?eHlkY2lyOHFQa2U1ZS9Hc3VKLzliRzdUeGptOVBFdWxsWVBLMWh5MitmMGdj?=
 =?utf-8?B?OVhIQU81SHpNZkM5ZlNXK0VDenJ5amRBOU5ZMjFLeFp5aXREVldUZTloNm1y?=
 =?utf-8?B?RWdoSDRybE9KZ3REL0kycEVQWlFrcU42MW5oblM1WkQzMHNuRFp0ZWNqQzdh?=
 =?utf-8?B?aEoxUkZsSm1UU1Y0Z3FZMFFFNDRnc0RFbStOWTFLUTl2NXhKbGYyQnI3anpM?=
 =?utf-8?B?NDREeFc2WnlUekhTZGVRQ1RCU2EwemVKSko3K0d1ZXg0WS9Ta3Y3TkdZeWYz?=
 =?utf-8?B?aHFZU2F1bEhlTmp6YTF1eUxaV01GalJHMEh4cHdSdWFKUXlKSXF6NUlDODVY?=
 =?utf-8?B?eitra2RyaldHbGxyQklFNUoycWtoN1U3NTdGYm5oVDJwUS9kbXk1SW12N09p?=
 =?utf-8?B?SUpCdkZlWGR2S3NGTHpTV09GdXlMTkFjZm14NGtkdjdxZWxDV0FzUkRUVzlW?=
 =?utf-8?B?WHE0MEdpQkZtMnZUbFpCSUhVcGs2azNVZXpLVkNMcUxkSkt2N0tJdDhtdHFh?=
 =?utf-8?B?Zis0bktVcENRRU0raUhnTURHVWdvRjRnSGkxYXFXTVBWVTVlcEFPS3BwZjg0?=
 =?utf-8?B?VHA2SDBES0prZmJjQ2dmZlErUkNER1RyVndHaGJFVDhNUUpjYlZWa1Q2Q1h3?=
 =?utf-8?B?WUlVUnpYZlFoSUJkNHZZbkJQK0hLTmYrYXoxb2pyc2xSd0tQQ2RrQTZNZlhi?=
 =?utf-8?B?OHZVU1EycG5pOFlpSStHYys4M05ac2N4Z3hORTJIKzNiVHMxdkN0ZDZMNEpa?=
 =?utf-8?B?ZFVsUG9vK0FKZThVNHBVYkpkTlc1aXZxRllMQVN1QkZPSkhvSlZGaTdyRXZS?=
 =?utf-8?B?VzNvUFpZdHgwanZXS05Wb3hic2FkY05BdDNhUWF5SS92TjRTcTBlOFdFd0pC?=
 =?utf-8?B?RkRtNU81TTcyeGRwUEVBa3NCOXVKT2hLR012TFF5T0UzenZsbEVMOTJLRlBL?=
 =?utf-8?B?bUFvZXBkcmw4cFVOYmFFczVzRytOT215MU1ReC92R3BwNVNyRDlvMFN4Q3Fz?=
 =?utf-8?B?TG03Y2dCaFVDWU16OWNOV3JlL1haN3JYdWRQbHJKNUV2MnFKWHcyVkpnWGtv?=
 =?utf-8?B?NXp6TDlhQ0ZwbTRUMC9vTXo4NHFVRWJEaGw4cEJIV3NDWVhmRTdRL0gzM3Zu?=
 =?utf-8?B?V1VHcCtaaUo0eWNuQ1ZRbmVZSUQvZk1KUmJvYUxpUFRVby82MU5xQk9YY3VP?=
 =?utf-8?B?Q3RUUU1NUmg2RUNLd3dCWS8yakhJZUVKRUFGbHcxeFJnakp3Mkh6a3Jpc0Rs?=
 =?utf-8?B?MWRya1pDdTA4MC9HbzhYZituWUFsNzI4WHpzM0hPbXhDZHlycXc5Y2U2THoy?=
 =?utf-8?B?MnRiR3ZoZVJMZWNrVXFuNU9wNlRKVzRZdGI4Y0VXYTRuanhUYnhkYUg3L2Jl?=
 =?utf-8?B?aWxHRzdBYndhMzA2WTNTeW5peHFoYlZtaFJCWW9iUVc5aTR2ck5sazF6R20z?=
 =?utf-8?B?eGxPSThPUUxYR1hMNFh5c2plVTh1VUJaM2pTRzROblZldlErMjc1RzBOU2FS?=
 =?utf-8?B?REtkenJXTUhpNVdrV3JjTVA4c3k4ZGplR1dDRkRhakNtaWN1ZXVvcGFZTWll?=
 =?utf-8?B?WS9aVElURnk2Sm9kZ1FaTDBxY3pHUTlUWC91OUZKU3pFZnJKNGJ4dEdVam5s?=
 =?utf-8?B?Z1BDVzVSdVZ5YmFySWtpZzlZMk9UblNieGR4OHB6Uk1KSTV1TzY2aU1iT2NV?=
 =?utf-8?B?Mm0wQVAxWmk0TWNLTFRSbUZJY2ppckNENzM1MHQ1eE9GSEIvNVlxTkxlNkJL?=
 =?utf-8?B?OFlYRENUeXRBYzJ2WGJzWUhLMXEzSlRvY1p4MzQrTlVhK1hRcXlIUWNkNURC?=
 =?utf-8?Q?PteX2pZAo/6oP9gHspNuz+1kbjWcD49Q?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR03MB7015.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?Y2daU2VZSFFNaklpSVBOdXFUNXM0TjlYSWdYUkUxMXJNT1ZmYkd5N1Fub2Vx?=
 =?utf-8?B?bzlGaUdoZmpOOXRtUmNFbDE4RFFMSnZPeEZveWMxRmJUeDdDUllZeDZZcVUx?=
 =?utf-8?B?S1pFRXRYKzFLVm00c3oyZjdkay83YkVDaDVHYnR2WmxMQnpPSVJVQ1FsQk85?=
 =?utf-8?B?R2tpb1V6SFEwaGpRWG1aS3c4b2t6UlI3VnB0TG5mZ2Z1VmhzcWFNVFNURVY1?=
 =?utf-8?B?dG5UU004eDBLZHQ0ckYxVjJIcFBpUzUxOU1QMzNHSWp4b3BaNkFOcFRCODhr?=
 =?utf-8?B?bEZqUVNOVklZSWhMZ3lnNEV0Tk42d293dUFKUnAvRVN4U3ljczZaTFdQcXlh?=
 =?utf-8?B?WE1OWFVheC9maVdxQnR1T1hPZUJ4bi96VnBCamI2REZtaWZHR1dOYUJQNEhD?=
 =?utf-8?B?ZzErSG8yM2huZVFhVDB6QlBFN1BvS3UrdktwQnk1YjZ2NGx5OHZRekVaVEZ1?=
 =?utf-8?B?UGIzMlFkcTlXMzRHT3kySXZnMEVBOWhIdTdGbnJyQ3pFa2s2Y0o1Z2JReFh5?=
 =?utf-8?B?RTdvT0hUeW5hOVFrOGhwNS9QWmd5dXlpQWZZY1ZLNEVwYnVhQWMwK3lCUFJE?=
 =?utf-8?B?UzhDS1lHd1ZNUklMY09hOTJYT2hIT29FS1doZklyUFVlM0p5RVkvMlAxNFRC?=
 =?utf-8?B?TUJUTU01Ly9HOEhhMktpRHN5cys5WlRaejhOQ0E5NlMrSGZvS0ZneklxVDhh?=
 =?utf-8?B?MkFYa3NjOFNXaFhKVEJDS0hvRTV6MWpOOXpjVTRLdXNsRUxFVTRoQjdRbDlu?=
 =?utf-8?B?TnBJTklSTjdiZnhWTlVUb3M5Q1ZOY3V5SkFOMSs5QmFoMVo1UFk1LzVySGdh?=
 =?utf-8?B?ZE5sQ1lPTTdETkF0WnFJY0ZoMGk2cDM2Q24rdVorVjhjbUpwTGpVemNzaU92?=
 =?utf-8?B?RXRacHpVdE9wOW9YTGhkSEQ2ayttKzVnUE4zMmdGZHlyeEs4MXpBdVFOWG81?=
 =?utf-8?B?aVh2NUZaV3JqaUt2VFN5eVViMW5PUzl3YzZ4UDQrSWFDcWhHOUVTUmZkSklG?=
 =?utf-8?B?amVVejM1aXVuSzQrUFoxN3cvWHFXc3M1anNKOHZuNTRiUElRU09wM0RQaEdJ?=
 =?utf-8?B?WHc5UDRieUxlckZJUG50T3lqd1d4NEhPSVFjekNEOVg5WnR1dEZvTDJpMTcz?=
 =?utf-8?B?ZGVnWldjbmU0TmtrWWdWaHM3Wlc1Z1lMaldZWWV1R01zN3ljRWpWQlBqd2lY?=
 =?utf-8?B?RkdwQmNacW1GU0ZyOGN6MCs5cU91WUlQdkpsZDZqT01IcXYyVitZRUgyUDhi?=
 =?utf-8?B?Wmx4dDBwTUcyWW5pdCsrVkdmTWtEejFpd1QzRmJzeVN5VUx3Q0hBRjZrSWEy?=
 =?utf-8?B?Q1MzZTlzc2NDcm5jdmUweFF1d3FUbFJNQmJDS3c4M21qTUhCVm9NdndqQlR5?=
 =?utf-8?B?S2g3cE9MUjg1VXJYMXNGRU9IZ0J3R1dCaWp6a2RBVUVMdHE0RmtmVE1RZ2Iz?=
 =?utf-8?B?K2J2SVNsMEFPMGN6bmltWEZVMGlSVmJZTDZGK0FIaWx6MmVRTzVNRDJMVlUv?=
 =?utf-8?B?Qnh2amszcmFZWWV6THFYeWVVampHVVN1bTdDeUl1Y094NFMvNzVvN2tpVkF4?=
 =?utf-8?B?ajZsdTFlbDRkd2tSZXZFQTBYU1ZabGU0L25FelY1MUw0V2FaS0JNbXlWci9D?=
 =?utf-8?B?cncxMmFSK2dlS0RiU3huSU9WRS80SmIvZ01xK3RxOUNsY2wzR05BZGJERUxB?=
 =?utf-8?B?ZFozSjFFU1AyRE9QaGlyYUk1RGZFelFHOVNGMkNyZ0czem94MGxsY2VCTjE5?=
 =?utf-8?B?cGNMalpVNjJoaXpyTEpOcllLNDBrdGNYaWtRbFRuNGRFeU9FYmgvbWhSdG4z?=
 =?utf-8?B?cW5aV01mWDFqc3dXNndUck9ha0J3K0VqVjVJam1LZU5LYXlJUkZTdUxkbWcr?=
 =?utf-8?B?SEVWUFAySnExUnlJMmF4ZmIwb21oL0hxUmU3Q1VKTjFMajA4UEwycFlMbWZl?=
 =?utf-8?B?SVVvNCtzb1h2WjRmVGFzWjlyRWxXbjVlTng1emRyQlJrV0FKRTdiT2ZEQW9v?=
 =?utf-8?B?WFl1OVBkY1dvQXlGOFBkMG4rYnN3VTNZSnBRdVRiVmhnOGtaRXNpYnZScGEy?=
 =?utf-8?B?dDhpOGVCMnpBWjgwblhqWjZzVWNMU0VINzhVSGZIS1FDTHl3Uno0QVNRWnlq?=
 =?utf-8?B?QnhxUWhpSS95bVdUN1FFbWx6MUl6ZkRwVEMrYXBHMWFxMG5HWS9ubzk1cWhF?=
 =?utf-8?B?eHc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 48f5b617-0caa-439d-6b91-08de21db07f9
X-MS-Exchange-CrossTenant-AuthSource: DM4PR03MB7015.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 11:02:55.1118
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: gG5lZ0VSU+Vyy2JypKL7dW9MLNpx5u98mU9DxZCjkxxFkZ6wBbTgKUKcMr++VXWfsWLQdLAPQyvrrLGaN7ZoWjxIxlseiH6qBk8C4d2lPDU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB5874

On 12/11/2025 10:35 am, Teddy Astie wrote:
> Le 29/10/2025 Ã  19:26, Teddy Astie a Ã©critÂ :
>> Introduce a new flag to force the x2APIC enabled and preventing a
>> guest from switching back LAPIC to xAPIC mode.
>>
>> The semantics of this mode are based IA32_XAPIC_DISABLE_STATUS
>> architectural MSR of Intel specification.
>>
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>> ---
>> This feature can be useful for various reasons, starting with SEV as
>> it is complicated (especially with SEV-ES) to handle MMIO, and legacy
>> xAPIC is one thing that needs MMIO intercepts (and Linux uses it during
>> boot unless x2APIC is initially enabled, even if it switches to
>> x2apic afterward). It could also be interesting to reduce the attack
>> surface of the hypervisor (by only exposing x2apic to the guest).
>>
>> As it can allow to have MMIO-less guest (using PVH), perhaps it can
>> be enough for avoiding the problematic cases of virtualized INVLPGB
>> (when we have it).
>>
>> In my testing, Linux, FreeBSD and PV-shim works fine with it; OVMF
>> freezes for some reason, NetBSD doesn't support it (no x2apic support
>> as Xen guest). HVM BIOS gets stuck at SeaBIOS as it expects booting
>> with xAPIC.
>>
>> On Intel platforms, it would be better to expose the
>> IA32_XAPIC_DISABLE_STATUS architectural MSR to advertise this to
>> guest, but it's non-trivial as it needs to be properly exposed
>> through IA32_ARCH_CAPABILITIES which is currently passed-through.
>>
>>   docs/man/xl.cfg.5.pod.in              |  7 +++++++
>>   tools/libs/light/libxl_types.idl      |  1 +
>>   tools/libs/light/libxl_x86.c          |  4 ++++
>>   tools/xl/xl_parse.c                   |  1 +
>>   xen/arch/x86/domain.c                 |  2 +-
>>   xen/arch/x86/hvm/hvm.c                |  2 ++
>>   xen/arch/x86/hvm/vlapic.c             | 23 ++++++++++++++++++++++-
>>   xen/arch/x86/include/asm/domain.h     |  2 ++
>>   xen/arch/x86/include/asm/hvm/domain.h |  3 +++
>>   xen/include/public/arch-x86/xen.h     | 12 +++++++++++-
>>   10 files changed, 54 insertions(+), 3 deletions(-)
>>
> I guess for now, it would be preferable overall to :
> - just add a way to enable it by default, not lock in it in x2apic mode
> - the ability to lock it down (i.e disable xAPIC at compile time) could 
> be introduced separately
>
> I'm not completely decided on the naming of the option, maybe something 
> like :
> x2apic_mode = <default> | <pre_enable> (or just enable ?)
>
> `default` will keep the current behavior, or force x2apic if xAPIC is 
> disabled at compile time; `pre_enable` will enable it by default, but OS 
> may be able to go back to xAPIC mode if supported.

You don't need any new hypercalls.Â  Just set the state correctly in a
LAPIC record in libxg's vcpu_hvm().

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 11:06:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 11:06:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159862.1488128 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ8g2-0006xH-3U; Wed, 12 Nov 2025 11:06:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159862.1488128; Wed, 12 Nov 2025 11: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 1vJ8g2-0006xA-0q; Wed, 12 Nov 2025 11:06:14 +0000
Received: by outflank-mailman (input) for mailman id 1159862;
 Wed, 12 Nov 2025 11:06: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=21S/=5U=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1vJ8g0-0006x4-3r
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 11:06:12 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 97b8ca4d-bfb7-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 12:06:09 +0100 (CET)
Received: from DUZPR01CA0081.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:46a::6) by DBAPR08MB5863.eurprd08.prod.outlook.com
 (2603:10a6:10:1a1::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Wed, 12 Nov
 2025 11:06:04 +0000
Received: from DB5PEPF00014B97.eurprd02.prod.outlook.com
 (2603:10a6:10:46a:cafe::6d) by DUZPR01CA0081.outlook.office365.com
 (2603:10a6:10:46a::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.16 via Frontend Transport; Wed,
 12 Nov 2025 11:06:04 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B97.mail.protection.outlook.com (10.167.8.235) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.13
 via Frontend Transport; Wed, 12 Nov 2025 11:06:04 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by AS8PR08MB9147.eurprd08.prod.outlook.com (2603:10a6:20b:57e::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.15; Wed, 12 Nov
 2025 11:05:29 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc%5]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025
 11:05: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: 97b8ca4d-bfb7-11f0-980a-7dc792cee155
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=FyMxQtxW9S0pe7yv4cJjaU1urvNxC6VCAsOHGgnN092k9zT7LjrC+unaKw/bMIRLd7k63+0B7FQmv/lRs7YP4T12oSd9bS5439DxdvX0j+wl4y+kmRdZ6vofzzMROgQYdTvNjr/TjhapevPRIlHf/LwhFtIv6cVvxYftEodsveY8PkNJWZXCRFMXbhmQHzvJWDE1MY4GuD6YzNdGcitz2Y6ASU0wIFHIDDlTHnlDnbWwmF4ZBNTEOhF+kTiLzHi0WiKHyQVBKxBo+p31w2ReBQ2BJz20rEmg8MHHKu1Ble3Rx/TBcFZznxw/jt4EYSicDJsxA2pDlYEPUm4/LJcsUA==
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=J00A0u+LTp5MHlX0LCiutNk3+xlaDNZBgWNsHm0GalM=;
 b=rDohA3eyvRamVwG4gcW9CCN7vR3eqPKhe6AiMJklZ0bVYcW+gIyhxUDIrGd5YIzdVowAyCjcmPsrsRsAzwaeF3e9XWhl58NgQMAQQCmehXDekQdYYTGhOV1XVKmkhSz4TlYZHOvV6GC97EbRJu7gfrk3VBZcLxn/4iRCkRzHyOx3qNl3ipyDRiD/IRN0H8rYekKQTUBOFMMb7lujJbz6u9VVGKhjJ0h1VLEy9CeO1ZYAa/HprEfL4hWVRkR0Ae96fpDcS3sPKSd5VdQnrDYGSVw9ufpqLCs9mtao8zXFpi0vbq2EV6snloUH3N4wqESbHotqnytgZq/NYiRteM0yDA==
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=J00A0u+LTp5MHlX0LCiutNk3+xlaDNZBgWNsHm0GalM=;
 b=gZA11uLH/ETkTn4uFua5KB8hzwj5avRGQlPG7zBtEvXCtQtjttUsi2esoVxtFGySnmSzTjiDJz4ZpL+rRxuPW48KTlJmTVzsp8qHpL4fsj5G3vxSY50rrPO2ku6dmd0dMODXaQ3BPhOgXMyann/O+3n7jzNU66fv/GMme3SVd/o=
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=etimu8ZOe8EH2rhmgEqKbuFhVfM5CPSI77yY1S3rJsZIJeI0xtV2S4vpGlA1+YVJhAueG8KsG8TjJMnJn8wMFcdE4XzvMY/CmmTGo5ZpZCz41wx6jOmxD5OB1BTfntcwERhnWhgOTyM3POvepFfs/WSQYtk+535LTyl6yFQ9WbMbLqyjFDVNHZs7k+wz5dSakK8KqfzIjcN5PypQFiGKy6Zh6Rn4qgeQWqDrOV45ilAqm6CRuYgilRiFDpL4cBcXkmZ3FH5MiwY5acrF5oswLeIPyEs4x7p/wGkZljqlBj/vRQMKU2mWw8yD0GWNqF6M41+/htgoqoO/VBAGx7AFgg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=J00A0u+LTp5MHlX0LCiutNk3+xlaDNZBgWNsHm0GalM=;
 b=SBZ1UXu8El9aZ2Ec6D7RPlLiD6H5RDWaaImLvzrHR5iRiNWRgcviklZRrrSC0vOzYR5LYAl5uBg3OPI8tZX94H/6hXHvHCDF7fBlZvrRhaOgBZPNO2seUdvq9sY3pl44lHufmvv5cVju90mlyufUGVYAneTE7S+MLQOIbH3zrbxZLYYt2+gyyCDJ7GLVKxlLJn2AiTxm8nSDzxLIXvkqtn3T0dScQRxiLJy0IImzo9050iGG1VBPlCGqM+Yghs5/jvRnG9Y0DDULDaQVMPEGfm2oPQIAeN72Q4y7ydeHfTAitxsMuI7Plu8dbCN4JYGG7DjzHjSHPn161ON5o7tAXw==
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=J00A0u+LTp5MHlX0LCiutNk3+xlaDNZBgWNsHm0GalM=;
 b=gZA11uLH/ETkTn4uFua5KB8hzwj5avRGQlPG7zBtEvXCtQtjttUsi2esoVxtFGySnmSzTjiDJz4ZpL+rRxuPW48KTlJmTVzsp8qHpL4fsj5G3vxSY50rrPO2ku6dmd0dMODXaQ3BPhOgXMyann/O+3n7jzNU66fv/GMme3SVd/o=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v2] xen/arm: Use FDT_MAGIC from libfdt instead of local
 macro
Thread-Topic: [PATCH v2] xen/arm: Use FDT_MAGIC from libfdt instead of local
 macro
Thread-Index: AQHcU7nF1Zr/ErjEH0+gSpDahlo6L7Tu4OoA
Date: Wed, 12 Nov 2025 11:05:28 +0000
Message-ID: <91A85A43-F853-4010-B190-61A8ACC3DC60@arm.com>
References:
 <92efc0f0bb286ceeb8788a8900bac9f9f1ed9613.1762940762.git.dmytro_prokopchuk1@epam.com>
In-Reply-To:
 <92efc0f0bb286ceeb8788a8900bac9f9f1ed9613.1762940762.git.dmytro_prokopchuk1@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|AS8PR08MB9147:EE_|DB5PEPF00014B97:EE_|DBAPR08MB5863:EE_
X-MS-Office365-Filtering-Correlation-Id: 0905aaaa-7f8f-4d45-305f-08de21db7917
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?ankzbklQWkFQbHR6NVhyUWJRN25KaUd2Mk16dExINEJFM1lyK3ZBcktkSE02?=
 =?utf-8?B?eXRFbitQdExoTEg3TlNyb2hjVUJaRWhqZThKZkljQlBJQnkvVFBaWDUzMW5N?=
 =?utf-8?B?N3NySzJuMGw5MklXdE1YMHNNSlhHTG5vSTVEUUdDQ2hlOGtjWmo3dmsrMUg3?=
 =?utf-8?B?YnVPd3lvOHlvNDVpL09oU2tHMmE5bGFtLytUVWRJTGdNYnR5Sm9GTTJzeVBh?=
 =?utf-8?B?NDQra1lrK3Z4ejBZbkxhbEYwSUpGSExSOVVXcnR0NjdHeUhUNWhpVUtjU3Zo?=
 =?utf-8?B?amcvM0VPL2NhcU50YklsRmJxT3NSS1J6S20yODFCK0pNMzR1RzlNa1UxbjhE?=
 =?utf-8?B?SGRZYVZsZ0I2RHRRUWV5dXVSTkwzWGxXWWV0N1IvNVVTRjVlK0l1Z09yb2Nv?=
 =?utf-8?B?TXFDTFcweFdvNGlRQ2tGazYxSDdYS0J3UCtMYi8xVmNDWG1Za3F5cTg1eWUy?=
 =?utf-8?B?WFRvSEJqZDkvUk80dWZNTzB1ZzJya2tWZzhwWDArdG5rd1lJdll1cTQ1aXJU?=
 =?utf-8?B?c01aOXFVWlFYSWZ5STl1eit1SjRkZzBYVklkaEJkaEszQ3FmcWQ0ak9SQ3E4?=
 =?utf-8?B?RlNXczBqRDVGUFRZaHNwWXkwRHk2TkhHWW01Q0RrdGRVWE5iaUxjQ0syZFdr?=
 =?utf-8?B?R1lWaWhsbi9lMko1ZDlVUDBMWm5kZHUrdlZFV1dEN1Rmd0lEWWNpMWwxUzBu?=
 =?utf-8?B?Unk1VVZLM0R3RE1jNUo2YWNYMmJwZ09mSGJsNnNUeVg1RUtKQ0ZZcmlWYVFW?=
 =?utf-8?B?cmxSSjArNWdLYktSQXRTZk5pUWZHTEpRVzZLVVpWYUxyYTVMSWY4eVRvL3RH?=
 =?utf-8?B?RVZHd1NMd0Rwc1RqL1R5ekh0WE1xMHNhNFRqclhQSzhiQkNWSGFZOVFVY3dp?=
 =?utf-8?B?V0pDREhTSTdCaTlKQyt0YWp2SHhkNTIzWGNkc0VodUUyUGZGMEhDUHJuL0w5?=
 =?utf-8?B?c1k3ZitBN1BFUm9zR1Y4WXIraU9WeER3MG1LUUpOMjVjbndvQ0dxUHA1RUQ0?=
 =?utf-8?B?NDNNeW05b3lrSGhEYXNBdUgzUm00WDh3bERrZU5kcUs1dWprdVg3NEJ1OXpM?=
 =?utf-8?B?MkQvOWFlbFZRdWs4Y2N5RWhMdVc2ODJBNE5obFcvMTdHdmFoUjRLYnhPZjVy?=
 =?utf-8?B?eFF2eFBNdzduTVFPUGx4R3M5ZlVrcEgzZjczajFVc1FXWEoxcWo2bHY3amhB?=
 =?utf-8?B?UEg3Rjl5UDRmQXErd2U3elF4U1VSSkF0Z0pNc1hJcUhhYm1Bek1kd0hQQnBE?=
 =?utf-8?B?MGNyZGhoOHpiTzQ2YjEwVUdJQ05LU1Nia0JPUVlFOFhYdUIzVG5sUHVzbmx2?=
 =?utf-8?B?VSs3cW9MTWVpblAvUnpvRkh2S3o2WlorSjBhK01OOVU2N3ZhcTZmRFdYWkFt?=
 =?utf-8?B?MG1DdnNWWkwzdnRRRzVPSXI3RkFNZGFhTDUyc3Q3TFI1Q0F6T1d1NUFVaVda?=
 =?utf-8?B?aVBFTktJR1g4ekpsaGErR1lXdFdwUllWb3ZSWTh6MFdvSk9SYVpxaDV5ckow?=
 =?utf-8?B?aDRVa3FEL1hoSVhaTFhQdXk0eUdnRVMyZmN4bFdWRU9HM0dFVWVNdUV6U3l4?=
 =?utf-8?B?TDVVUXZpcm0xQ1FEVTFsanFvaGw0Y2pxR1YxMVJhY2s4cnE1eFVnd2ZCMUFx?=
 =?utf-8?B?VUZkY2FZNGRHYS80SkZUL3JiZEhXL1NNalNhZWVPREZnQU55OWtVQ1NMSm9o?=
 =?utf-8?B?dy9BbFBFWHhyeVRMU3NQVEI5SHA2ODJjdGp6a3J1a3lEdzlTZ0pEV2RQSHJ0?=
 =?utf-8?B?NnZYOFhDSHNMbndLc0svWVBiNnVBVWpjTDdweFdLTExYR3o1aEVvVitVRkNl?=
 =?utf-8?B?cVVOWnpiOTY0Q3JMbmZDd3V1VmF2Ty8wWUdxV0pVd0RkSjMzbURQc1IwMkVJ?=
 =?utf-8?B?S0hyMXlONnpIRTRmT2F0Y2thRndxWlpMWW9RZlJtUE15UnhrQnU1eG84OTVC?=
 =?utf-8?B?bHBXRmR0Z1pTYmtRSVFnSWRVYzJ4bDQxdTd1WDBQUjlSNitGMEhmUHp4OHQy?=
 =?utf-8?B?MWhJOVBNc2huT3daUjJsTEtwMWRoZWxrcnR5THJvU3dQc3lFUEgzR1JOeGQ2?=
 =?utf-8?Q?xUX2fB?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <B2704E82CF6FB8459795B9D9688C9715@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9147
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B97.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	768408b3-5bdf-4734-486c-08de21db63c6
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|35042699022|1800799024|14060799003|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VWlORk5QaVdqbWJlUTdSTEx0czFQL2NjTzR1b1E4WXZ6aVBGcVFkTVgyVjNV?=
 =?utf-8?B?ZlJkMER4UU96d3MzeGlvTll2bmsrMnpKTVRDUzJ2aXRYcnVnL2QwakI0YVRk?=
 =?utf-8?B?OUFVb0U3UmNqSjA4TFI5MXBpNlJQSGwyVVhmekkrbXNNRTVZWFBoaUtHSXI2?=
 =?utf-8?B?SUZST3NuKzdiS0IzcVlBYkFaS09DSzZuaXNMTjJNdHFUV1d0TzhVeVdTQVBM?=
 =?utf-8?B?WHA5c2hrL0ZrZ2xDY0tndEJSOWpPSDlBQXFPcTNCWGZ2d0VtazJQN01QRy8v?=
 =?utf-8?B?d1Q3eE53ZjQwWnJWbE9HWkRVZzdLVDV3V0R0Rys1SWJEZ2MzRy9pM2pHYXdm?=
 =?utf-8?B?cXNteUNtUVZQYXRxME03eUpPdTlrUUFTZDJYMW1TbDFVRGo5RVYyM1BTMVBr?=
 =?utf-8?B?bkp0N0JMZlovOUJXR1RyTHJjelZZTGFhL05TamFiMGxBOFJWVVlUWEhEZFZy?=
 =?utf-8?B?WlZzRkNSbDJhWFVwVE1iejNwd2NyOHJXNmFZMkh5enNUZWtXcXNZMjJEVS9h?=
 =?utf-8?B?aEVWWVBkQkxIQXduQXhseDN3Rm12Mm9XZG9Nek1CQ1huV0s1Ky9rM2NYdlYw?=
 =?utf-8?B?QTIwMkwvaW1nRStJUkY0M1k3QkpoQUxRSnFiMmtjaXFVQnh6RVFGTnlSa2FX?=
 =?utf-8?B?VDZaK0Ribmpnb1hsV0pmVnhZMmw1bTJsMTgvazFpTE9BMnJlL0NyUHJuUVEr?=
 =?utf-8?B?YlFxVEFzUGtVZnJYOHd1Q2ZhK1d4YUU2WnRVRkxDeVFENFBrS2tPZDJhOUpY?=
 =?utf-8?B?RUg0TWowWCtUbk9WNEtMKyt4ZG4zSGdLOWxycjRzUXgxc29zSTVGeHBZODlr?=
 =?utf-8?B?TFl6Q3ZsYWFOK1F2TFBpN3B0S2ZrajErN1JZN3B4bG5nTEdUREQwdkhNRkds?=
 =?utf-8?B?SVRXNFJySzlEdy9HQjk4TnkyZkprLys3b1hpQkoxY2VyOTlkd1RTaThsK0Fw?=
 =?utf-8?B?aXNyeDRDemlZeC80YW41SkdkTjBuUk9tWTVzenVkTVlqM1FzZjd5eThoUUdm?=
 =?utf-8?B?cVdQemxiQUdXdmFZRUJZSUk2SjdPV3g4UEQyN29RZVhjVUM1RWhUajlRVEtL?=
 =?utf-8?B?eHFMRnVIZW1md2FKTUt2dWVZVHdJVTJhT29vMHdlUUtKRjBzL1RuOG9VdjVD?=
 =?utf-8?B?R2lsZU1mODJ0cHVKVGV5amsxUXNmMFVzNi9sRnkvc1ljMFF6ZGdOV25pdnVN?=
 =?utf-8?B?SnFPdzJJZ0Fkd3N5c2RPRkgxdGV5Q2oxM0cxMkhzUzNaRUpsQ2lweExERlM4?=
 =?utf-8?B?dHg4NDZPSXRlemxIL2hXYmpCYXIzR29kSVFXMFQ5bzcwekZaRGRBR0dHRC9V?=
 =?utf-8?B?TGpyb2hFVDRJclBWWDZJdnZNaUNCbGZVQ3FrMU1vSXVDK3ExTTRiVmxHNVFN?=
 =?utf-8?B?S0w3MHpBOExpbFFWWjJobCtVMVZ3Q2NVc1hyemFRb1hxSitYWHZqcWgzZHRv?=
 =?utf-8?B?L3VyS01JY3RKN21wN01sSVVKakZhdXVocG9jSFJmYmkxNnh4SmMxV2ZueHJY?=
 =?utf-8?B?UnRrUVN0NmVkYldNMmNuVXhTbkhCeGNGM0t3dTFZenFtTUdCaWxSVVQ4RENR?=
 =?utf-8?B?ZG03d3dITEtWSTlSTVBjYUpBc25SLzNDcmtxcjNtbjNjMTlXSHZrK1FFdjJ5?=
 =?utf-8?B?djZJKys3SU9DY0hEU09lVDkraHh1eUpqbUNLMDFNZUdzcXFvR1pnMGN2YnhT?=
 =?utf-8?B?eHQwU2srVWU1SklRcW12SklDd2R0VTR5TitBemc4dGRlckpNN3Frdng1T084?=
 =?utf-8?B?aHFERGhUNFZEWVNUTE91WmpoQWpYbmU3R0hzQnk2K29JQ1IvQ0FSOElBVThG?=
 =?utf-8?B?c1U4RnVXZjY4U1hDUkdYNXY0RUZMUTVoTzRjMXUvMVFZejA5NkdER1JtamYy?=
 =?utf-8?B?MzZjRXlqaTdSOXorWloyRDNVV1Nvemw4SDVBdi9kdDFaN2lUQ2xRUkF5cDdX?=
 =?utf-8?B?QjNrMVdORG44NW5yRXEyTVF6ZDdIUUlld1RvVGZVT0VlNHljUDZOcFBUcTV3?=
 =?utf-8?B?MWJzWVU3NzBlZm1iY1huL3U2YXljek53ZG44MnlDNWFlOW1ZdklwM1AyWWhT?=
 =?utf-8?B?WHJKL0tiSGtHaEtWdnJEQ0NSbUpKSW9RbDdlbXQzbnBHOS9heGUwTUFjYnNU?=
 =?utf-8?Q?ujVQ=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)(36860700013)(35042699022)(1800799024)(14060799003)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 11:06:04.5297
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0905aaaa-7f8f-4d45-305f-08de21db7917
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B97.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR08MB5863

DQoNCj4gT24gMTIgTm92IDIwMjUsIGF0IDA5OjUwLCBEbXl0cm8gUHJva29wY2h1azEgPGRteXRy
b19wcm9rb3BjaHVrMUBlcGFtLmNvbT4gd3JvdGU6DQo+IA0KPiBSZW1vdmUgdGhlIHJlZHVuZGFu
dCBsb2NhbCAnRFRCX01BR0lDJyBkZWZpbml0aW9uIGFuZCByZXBsYWNlIGl0cyB1c2FnZQ0KPiB3
aXRoIHRoZSBjYW5vbmljYWwgJ0ZEVF9NQUdJQycgZnJvbSAnbGliZmR0Jy4NCj4gDQo+IEFtZW5k
czogNjZlZGViMmUzOTcyIChhcm06IGNvcHkgRFRCIGFwcGVuZGVkIHRvIHpJbWFnZSkNCj4gU2ln
bmVkLW9mZi1ieTogRG15dHJvIFByb2tvcGNodWsgPGRteXRyb19wcm9rb3BjaHVrMUBlcGFtLmNv
bT4NCj4gLS0tDQoNCllvdSBjYW4gcmV0YWluIG15IFItYnksIG5vIGNvZGUgY2hhbmdlcyB3ZXJl
IGRvbmUgaWYgSeKAmW0gbm90IHdyb25nLg0KDQpDaGVlcnMsDQpMdWNhDQoNCg==


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 11:28:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 11:28:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159874.1488138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ919-0002GD-Qm; Wed, 12 Nov 2025 11:28:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159874.1488138; Wed, 12 Nov 2025 11:28:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ919-0002G6-Mr; Wed, 12 Nov 2025 11:28:03 +0000
Received: by outflank-mailman (input) for mailman id 1159874;
 Wed, 12 Nov 2025 11:28: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=EiA8=5U=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJ918-0002G0-UC
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 11:28:03 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a2a4a73c-bfba-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 12:27:57 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by DU2PR03MB7861.eurprd03.prod.outlook.com (2603:10a6:10:2d0::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Wed, 12 Nov
 2025 11:27:53 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025
 11:27: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: a2a4a73c-bfba-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QKWGvRsKvdJVdAX2IcizvNgwhBexT03cAQ5G8wxpTp0N14Him3VxXv/YiQI+x2pg5QpS3ApRxw3i6LlKvWLOinKPrWTp+55CbnXDg65Z1jFPkFQa8vc7/Q+NGf3jZh4rbbvn8AImXVWAqm3X7Vq39PSgjcukry2cqZs+dMBlMibPzdvj3CPQSbX706OUaQTDYkGv3jWxLok01Cj2Ego5m3y0qLhQ0qnoHrzM6uWgbsF9a7njPW0pwKmCS6cfq0tKCZgxSLpNLzFUR1W+f04t9UNSRYTDQAB2B9fYc+IHcmnfaSP9Nz7/qngLziO4akyBlan4tPtX4cZAU7Wx8nUuTA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Q1I9TJrjgMudyBKRZmrKvMnKVLHf4X1aEgWQ4H56dCI=;
 b=w3iCs4Cz1TLWCMryLhUBXRjzV8DYnLGVHPOGKIDyUSktbLHBaUyPkSF1O5OXs2iEeBMHNnlX28B0p/Vqp8SIGYR75GIbYnyASjM99jmnmr3mV1imYNaN1jaK1ZtBtnzxPap/jt3gqO8agrkOMVwMIEEotdnvXWta1M9SqHclkErb0nEMGpxLGBJV/wL48kpBX3cexQMTyGNAnubBAQKsdiuiJjraOudQz531gGwY3DrLwuz469366bKyO75T8+DqJmt7KZvGqOJzf1ECxd+KoXjvrLYzrN1AjLjSQE+thgODIxW5OXBL2l+5FEbYIwTkROv6XP6UH9tSTnZnf1ks2A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Q1I9TJrjgMudyBKRZmrKvMnKVLHf4X1aEgWQ4H56dCI=;
 b=VlU3ySTWWKvSaORYnXaUSijoKgv9TlgHZVttsrRaWfgca/ZE6k0MRwp6KeiGgJBTEgaF5BGkjh1czkTh8ty0uC5MoTIKwUdPEKgxDBOB5ijwW3SDi2reovNQ8ChcuuwFAZFZCBeEI/OigPwc0VtTlcXM50vClJf8zyDkXcznrGrsKwzYHcSmTOPQtkV8LXu9SBDs06sGNvahgZmTuD/s/9heNfCe1Fx3oawkC0PivqzH12aSDohP+1ZQs8DfvrSoB9Gp74eAaIBIw6A6XaCxZ4CUFXZSVsAjaZPF1UXomyhKrLWL8IbopG5PPXXVexOdqVcS9BVewBN9isp114L/aA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <a858cfd2-c6cc-4ed1-bb12-8cad488f4542@epam.com>
Date: Wed, 12 Nov 2025 13:27:51 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v3] xen/x86: guest_access: optimize raw_x_guest() for
 PV and HVM combinations
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Lira, Victor M" <victlira@amd.com>
References: <20251107181739.3034098-1-grygorii_strashko@epam.com>
 <47f86a44-007f-4b90-9656-b2440238b2ba@suse.com>
 <f0a5a939-7d66-417d-8a88-34cc172623e6@epam.com>
 <faab050f-677f-469c-8bca-93c55a53165c@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <faab050f-677f-469c-8bca-93c55a53165c@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0038.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::8) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|DU2PR03MB7861:EE_
X-MS-Office365-Filtering-Correlation-Id: 5cef52e1-d34f-4a10-9de0-08de21de84bc
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?YUc4M3JGb1p4UTNrSEVoZy9rL1NNbmtBZnkyL054VUkrVklaRnNDZng4NUZO?=
 =?utf-8?B?dWhqK3h0Q1R3aDA4cGY5bVc4VjRtSGxMZlNCK3Z6NFU0YlMzd0VpQjIrMXQx?=
 =?utf-8?B?bUhQVE9weHhZMDA0MFgweG9wTmlIZkRMdFZ0TjZEa3JSelYrQ2FGUkJNMFI1?=
 =?utf-8?B?dm1YS3R0WUg5L2tWcTdKY2VrUVNhQjBrYXhUQ2hvaE1JajRIeUQ3TkNuVTF4?=
 =?utf-8?B?cDNPVXJtV3lhaENLR0xLanJBV0VUMDZyMjlobnoyLzFqdEUyZFUwcFZUbnVP?=
 =?utf-8?B?ZXhwNURFd0lONFpKOHJmT0ZRNFNDZkNlRXNRM2xqQkhFWGFJTG1QU1lEdUFB?=
 =?utf-8?B?Q2duTTRRckxZbTVteVdjQXhxaFNvQ21jRktocXVlM1Q4N2luRVU3L0NLRU5O?=
 =?utf-8?B?N25DUXdmQVhkQkl1dXFQQy9HZ2Y0cU5USzdGbmRRZzlaMm1DN3RrcCtTK0Rk?=
 =?utf-8?B?czZERnFvMTBhWG5KZWU2b2lacXU5N2dyejRZMTNYRnlRVFMvZXAvZTlrcG5o?=
 =?utf-8?B?NzBWbGw5L0txZi9QTVhFLzlLSjBrR2dsK0JOTjlLUWVmSzBuVzcyTWNtN2lW?=
 =?utf-8?B?cEhkSHBwSCtTSENrZUFzUDJ5ejVDNE9aYXY3dmREcm42OThOcktWdkR3azNF?=
 =?utf-8?B?T003bUs1Sjd3eFFCajJYbFB2NC9MRlA5dmUyUnVSMWpLMzFwRFhZZWdvNjYr?=
 =?utf-8?B?QXBVeFJXQTRnR0ZZRmN4eUlkUi9QSW9kOTd2ZnhqZzU1cGNpNjRzd1RnWmw4?=
 =?utf-8?B?RVdwSFZsMi9TRURibU5ta0M2Y0J2MmZOR2lOQlJ4dWJhNVFZdVBOWllsOHhU?=
 =?utf-8?B?ZlZOd3JRSkF5U0QzR2QwYzUrNFpmdjduZ3ZNTlNUdHpBSkdnZmtzODVrN3Nl?=
 =?utf-8?B?V3Nvbm0zTVp1M0RsOHdycjdHdVVOYmFPMkhNZ01uQ1lYWE1oV05IUktZd2tW?=
 =?utf-8?B?M1hNQ3EzTk9ieHNaMkxoUDQ3U3o3UnhVeE5jWUpWNy9va3F5QkxzQVBrc3Ar?=
 =?utf-8?B?Z3pLR1NvREtlN1Y4bWNsMEE5WFB6TzhEbjd2bXFwZUE0VDUzWG5GL1ZiK3Fi?=
 =?utf-8?B?N3ljUkNDdkhiaXF4SjhHckJ6RGZrS1VkMG5rbEdTY0srTmtUS0dzTk40ZENh?=
 =?utf-8?B?NVJWMm1POEEzbG5RMENZc0JyKzRSaEFIWGlOWDd2c3JKN0VXNWF0aGpSUDZ6?=
 =?utf-8?B?WFFjampDVnJtYjdBbURqbzRKak9GNDUzMEFwRE4zQW5CZ01UeDROKzJMN3ZG?=
 =?utf-8?B?VHc4eFFiQVo5ekhwbHg1cWZjWU5kbEx5VnVJVEJkNXI2Nlpmcmw0NHV1ZE9Q?=
 =?utf-8?B?eGRrTHV0TG9DZzdqa1k5OTBvU3BTakRKbHhLRzdSaVdKUm8vYXN0dTZkOU1Z?=
 =?utf-8?B?YUxtbTE4aHNBajliV0Z0a2lNWTRrdTRteWR1OFkxbjFBOGxET3dndFBoenJ0?=
 =?utf-8?B?RUdoMWZlRS96djlYWm9xL0ExcWFWZU9QSm9yUkJibXUwdjRlOEQ3bHpLdStI?=
 =?utf-8?B?RDRpNGlkOVkyQ3E2aVc5bGpJWXZsR1VlOVhKOXBZRFNneWlROVNOUXVTUDcy?=
 =?utf-8?B?UGpwbGhsZEdGR2R2UkorUHJ4dXZVUG5uWEtJYVA4WlMzNUdJWlphV2N5N0k0?=
 =?utf-8?B?KzdXWmJmYTgyV1hsVUV3WmRwTmgrWlV1TGVPZjlUKzhtTDJUaUEreFBIMDUy?=
 =?utf-8?B?U3lJc0ZwQW12NllraTVUS1NwK1pjYnM0OG5aVUxGbnJ3cVFPYmszTldxckJN?=
 =?utf-8?B?eXFKUnM1cmhoUnlXTnBQOGVxcW5zcDZSRDAvbGZ2SlhGUnVZUnJ0dWZhWVVy?=
 =?utf-8?B?emdwcW9kMU9oZDcwRGdIWkEycnNQWkZ6Zm1hQklQL0tBRDFzSVFHdkg2Qzl4?=
 =?utf-8?B?NnVHVFhHR1B1aUJhYW5oVDJrekZrQ24yT1preWN2V0NJUnZ1SHBGMjhibk5S?=
 =?utf-8?Q?xJ0XVE8xqLjdaBvLNnu9uU3f0UyL149p?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bHhrd2dzdGNFenZNSXFmY1AxY3REK0pveHZNemtoS0FFRTBSY2VzcUdBZU5D?=
 =?utf-8?B?MjBBWkgvSC9keGljSllsQlZkN0FpYXVHeGd0U21KZFR5UmdoUWJHRWxTaU1o?=
 =?utf-8?B?Qk5XcThLbFJSN0ZWelNKVWhsMjZRMXNJRFdCemRpSDU1UEVuRU0zdkhZU3RM?=
 =?utf-8?B?MldFTDdKa0ppVlFXMFhFdXMyYjR0alFYUXBJL3RBTVBSeGZKNTMwOEgvR1pv?=
 =?utf-8?B?bEZpeFJ3YXRRSGZWY2RVb1E4cVVkaDRYK2FtWDJzRHJCU3grWGlpb3QrbEE4?=
 =?utf-8?B?QzVXUWhkN0E4SldVUlpiSldCbHg4RTRxalY2M1Q2N2NNeEVZQy9ISC9IdEZQ?=
 =?utf-8?B?eW94d3VaWGtOMTVYZitRN2QrSlkzMXlVcE9BbUhFc3o1ay9QTDNkQkcvWFhY?=
 =?utf-8?B?UVF5ZEMyTjdtUUhMOUI3M0ZqNG9KNGVnQjdaVnM1ZFU5amhlVVhVVUo3Z0Vs?=
 =?utf-8?B?OVFVNCttUTA3QTFxc3VxYitLNXN1YUdIZ3c3Y3RJcWdkcFdVOWFGRWVuSS9o?=
 =?utf-8?B?eVErRlBZMW9GOHJQcHQ4TVpNSjZ3ZUFSbUhqT3h1TjVSVGxBZ1AxdUNMODJl?=
 =?utf-8?B?cGhoSi9kb3prZ3pEWU1TRXhkZU5rMFZOUWtRTlYwRnI4R0RDT2c4YzRwZEZN?=
 =?utf-8?B?WUVYblV6RUtkaWlRUVZHbFpyR2JVemd0dWdqcDZzeHZJa1BHZkFkODRxKzd0?=
 =?utf-8?B?cWxzTms5UlF5VHFYelFHK3QreU9sUlUybUgreVFkOEc1bHJwWkNtZkFmVEZw?=
 =?utf-8?B?QWFySVpEdWtwQlRnbElGWkhCc2dlcCtualo5OU9XQjE4WjI3SE82elViTDFv?=
 =?utf-8?B?b0FudkFkb1g0ZzFhNjllQ09uZzJDQWhlQTdsQTNoTWNDRUJLbHZGME5YY20v?=
 =?utf-8?B?SlNIZXduaFNIc2JON3NRUEdJN29IMkgweDA0ck5XN3cxUkZrUDlTOXQyTmZt?=
 =?utf-8?B?bHNNd2xMU0ZobXRYaG5iakJvVk54TGpBb2cxYlVmWWwxRHR4QkhZbzVmSm4w?=
 =?utf-8?B?SjhaUlI4VGpMRHVBSEFMUHBRV2FZRGpJMDVEWDdKTWpwdkY3VStxa1JxSS9p?=
 =?utf-8?B?UjI0WWxQOFc4ZVBLbld3VVlqTTR2cnREVllXWE9pZ3VqaUJNblJaUzkxQS9I?=
 =?utf-8?B?SzIwUTdhaXM5MlE5YU1xYmNIQmk5bzZCdjAvSXlVam4zTzQvbmJ6NjRDcjE2?=
 =?utf-8?B?MEhVd0cvYmptY21uQnMvSHFqMVM5bGQ4bkhGejZqNkdXdWZva3dtWEVpa0lx?=
 =?utf-8?B?alhBUXNDNEJxVCtyTkFwRTRubFZLVVBGVWtCRG5yb2UvN2JiRG9YSnFpRytJ?=
 =?utf-8?B?WjlFaVUyRUp0QWV1LzlBQjdoL1NnNDFyTmJVRlNIN1pNMVJPRmpsRjBpRktM?=
 =?utf-8?B?VWhDdkxiVmd5M3c4Tk4vRFh2aWtJM0N1aGgvZzlZZUNYZVlEdmE1ek5sNERh?=
 =?utf-8?B?MUJsWi9EaFBnZnEvK2ttcG8wM213T2NPR0lsYWJxUXNrV2FFN1lZSDQ4NjRQ?=
 =?utf-8?B?UGJ2Q3NQckZJYzlTYkd6NlhRK3kxNVJESCtjbFhXaXgwM3U4L1YxZlkrK3l6?=
 =?utf-8?B?N0dHV3JWTjRxZmR4QWdBQ2lWaVJWWXZzWW4rektyV2ZaTnhmV0RQemd1MGNS?=
 =?utf-8?B?SU5iRmIzSmZjRXY4cmlqWCtMUlc5SDVsZTJpc0VZZEZJOEhpaWdQcjNpZ0V3?=
 =?utf-8?B?WGhaUURjbDcyL05zbDJXM2RKbVhQRm5iMzhDQWlWakU3eVg0cnZOUTVWZVps?=
 =?utf-8?B?Uk01K1JmK3AvbS9POTFlZFhTcTJyYkY0azNIdlIzblczTGZ3OXpFNzR5TjRq?=
 =?utf-8?B?ejdwelFPMHZ6WVVUdXdGbmg3c24rUmZDSTRPTUhJc3ZXSSt2aVlzMFdLUGRr?=
 =?utf-8?B?aHJSc0NDeGV6NGlsZXloR0pFMHcxQ2lUT25nbjZET3hGbWFyRHJqUkNIVUNs?=
 =?utf-8?B?c0hWSkRFRTF1dGZFTDNReWJFMWxod2RNOVFFL3VsMmExblplTE0xdWdrNXVS?=
 =?utf-8?B?ellFTyt2bWpoRkltcVFqTVRHaFFEVnBLSmdUMHdQSXdtQnFBcVE0YVE5djdN?=
 =?utf-8?B?c2VpblFkWk9ydUlFY0k0T21aQzUwdTFLQmlybFJLU3J2aEhNVytYSTZBNXZr?=
 =?utf-8?B?VGFGbG9BbGQwQW1NbkExZHJDU1JJalJIR3pud05oamZOUFEwUlozQ29ma1Vy?=
 =?utf-8?B?NXc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5cef52e1-d34f-4a10-9de0-08de21de84bc
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 11:27:52.9637
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: xFj3IoCrtajLl+83yWuGgStPJOQ50S1Q7bo9efV75NYv/76GJfbk5I4Ni58mEbR5Mk60RujE1w6IxF6VvcJIwgng0xIii/HLFJYNSSIrxfs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR03MB7861



On 12.11.25 08:38, Jan Beulich wrote:
> On 11.11.2025 18:52, Grygorii Strashko wrote:
>> On 10.11.25 09:11, Jan Beulich wrote:
>>> On 07.11.2025 19:17, Grygorii Strashko wrote:
>>>> --- a/xen/arch/x86/include/asm/guest_access.h
>>>> +++ b/xen/arch/x86/include/asm/guest_access.h
>>>> @@ -13,26 +13,64 @@
>>>>  Â  #include <asm/hvm/guest_access.h>
>>>>  Â  Â  /* Raw access functions: no type checking. */
>>>> -#define raw_copy_to_guest(dst, src, len)Â Â Â Â Â Â Â  \
>>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>> -Â Â Â Â  copy_to_user_hvm((dst), (src), (len)) :Â Â Â  \
>>>> -Â Â Â Â  copy_to_guest_pv(dst, src, len))
>>>> -#define raw_copy_from_guest(dst, src, len)Â Â Â Â Â  \
>>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>> -Â Â Â Â  copy_from_user_hvm((dst), (src), (len)) :Â  \
>>>> -Â Â Â Â  copy_from_guest_pv(dst, src, len))
>>>> -#define raw_clear_guest(dst,Â  len)Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>> -Â Â Â Â  clear_user_hvm((dst), (len)) :Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>> -Â Â Â Â  clear_guest_pv(dst, len))
>>>> -#define __raw_copy_to_guest(dst, src, len)Â Â Â Â Â  \
>>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>> -Â Â Â Â  copy_to_user_hvm((dst), (src), (len)) :Â Â Â  \
>>>> -Â Â Â Â  __copy_to_guest_pv(dst, src, len))
>>>> -#define __raw_copy_from_guest(dst, src, len)Â Â Â  \
>>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>> -Â Â Â Â  copy_from_user_hvm((dst), (src), (len)) :Â  \
>>>> -Â Â Â Â  __copy_from_guest_pv(dst, src, len))
>>>> +static inline bool raw_use_hvm_access(const struct vcpu *v)
>>>> +{
>>>> +Â Â Â  return IS_ENABLED(CONFIG_HVM) && (!IS_ENABLED(CONFIG_PV) || is_hvm_vcpu(v));
>>>> +}
>>>
>>> Without a full audit (likely tedious and error prone) this still is a
>>> behavioral change for some (likely unintended) use against a system domain
>>> (likely the idle one): With HVM=y PV=n we'd suddenly use the HVM accessor
>>> there. IOW imo the "system domains are implicitly PV" aspect wants
>>> retaining, even if only "just in case". It's okay not to invoke the PV
>>> accessor (but return "len" instead), but it's not okay to invoke the HVM
>>> one.
>>
>> This patch is subset of "constify is_hvm_domain() for PV=n case" attempts.
>>
>> It was made under assumption that:
>> "System domains do not have Guests running, so can't initiate hypecalls and
>>  Â can not be users of copy_to/from_user() routines. There are no Guest and no user memory".
>> [IDLE, COW, IO, XEN]
>>
>> If above assumption is correct - this patch was assumed safe.
>>
>> if not - it all make no sense, probably.
> 
> I wouldn't go as far as saying that. It can be arranged to avid the corner
> case I mentioned, I think.

do you mean adding "&& !is_system_domain(v->domain)" in raw_use_hvm_access()?

Hm, I see that vcpu(s) are not even created for system domains in domain_create().
So seems !is_system_domain(v->domain) == true always here.

Am I missing smth?
Or you meant smth. else?


-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 11:49:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 11:49:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159886.1488148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ9M4-0005dV-EC; Wed, 12 Nov 2025 11:49:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159886.1488148; Wed, 12 Nov 2025 11:49:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJ9M4-0005dO-BV; Wed, 12 Nov 2025 11:49:40 +0000
Received: by outflank-mailman (input) for mailman id 1159886;
 Wed, 12 Nov 2025 11:49:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=K5hw=5U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJ9M3-0005dH-Qz
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 11:49:39 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a9fb710d-bfbd-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 12:49:37 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-64320b9bb4bso1045055a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 03:49: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
 4fb4d7f45d1cf-6411f857839sm15877412a12.21.2025.11.12.03.49.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 12 Nov 2025 03:49: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: a9fb710d-bfbd-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762948176; x=1763552976; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dZsXBBltHKS7myVt68IUNVNFySdlGuq3PycWFZbim5c=;
        b=g7g2d3DUgazqtxpaY2t5zQxZZG4TQR6rmowAWlI8N56jvfN9QSw6tsXPiX/7gRI3+J
         r6wvII7AOGhEgjyuHDP+wfPdcP/tD6/BVb/tJZOw8EpDjNJ9xl6BpWU3nWE8v7MAw5vy
         Ue5y7RKZTm6DLhnEZFq9xk5cHoBceRJeszDwOPtWxD2BCcFCXrzkWY+1CFTDYZKPec/g
         KKwa/NUHHm4F+1MMTbh8/uDt1kBV6kvuTLjqIEQ0gspakLRoO2ljvIsRBrHrukqhHUMh
         bOfPW11bpOo0ZX4jb9R/swnvX0pSWVOI4Y+pKYkl922sNs69bGdkbZI1DNPCi9gJAh/+
         BnxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762948176; x=1763552976;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dZsXBBltHKS7myVt68IUNVNFySdlGuq3PycWFZbim5c=;
        b=PYjw1ZV12MWkJHhgzclS3kYFKy5MrrGg8gM8DbwvGwQ9M5IIZZ9wiWNd8zK1RYnwkK
         I+S9iJk5TmM3OJl6qsy2nTQQXjZM2nNwDF4Xchg620/HWHnQ7A8NsfF/j8JM81q94xqY
         kHrBsGkElHmpNZgjjkHU/yI7Qlo9u+EKuyHxpIRQeEN03Fhdn0MMTH6azsNZZBDiviIL
         VaBMvuzMBchmEHNrsOF4GUwI2uvDFJuSCsj6fwPG5CBP13glpV48hZk9A4H67qWM+9/H
         MZkjFjfZWzyPu88UrpGF1cBpZml2x2+HLfCt29MUsSFotTm0hrXJ2CUDfL0nxriGHihV
         8MvQ==
X-Forwarded-Encrypted: i=1; AJvYcCUX5lVF9sz7qQywjABltrPeF8S5z0DtTAm/tqORnokwRR7Jr5j7zY2bkyal4JfB51TZvIo2zL+CMdo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxwCUDTdZFqYbaNwPFMZAqdQiqACo7zgeIcRHmyvA2qvBAnDRkB
	3RHvjGI238UL9bOQImDM/bAJ2jrm+nciWzld0dQz8j0EgH6LvRcQEOauR9tcsXMw1w==
X-Gm-Gg: ASbGncv8O9laGX3ndbPQUvvLADQhqeAcmZRuil6auXEmriIYs5eCRunxEuO2lpUP3T4
	3mGNaPK5bUCw2Ky7vPFmd1XJS7YO7yrjv9K4l+33CC6hIJ+02SbB2OWpGGSmaL1pcWjeYULUH+8
	7QODgVooGqXpYdu7woXKguQ3fdeh1EkPImTHubNmdIj0CvcDi5a6eF4UuLlgJNeP+STTghriiv8
	PetKwXjzOVf69b9gjVxJ9ckt8odNuTHuLzDqClk5ja+MpzICgLulxazCINjq8FLKXkyYwcjQoak
	NqmJj7PJKOvIMeHNIIaGPVqPv+0nwl2+kSAA/9YatD09/zLwiTpbRuTxKokP5ngcnUyYufJ4J0i
	QqPOPbNi1p1LZ4+Djb3fNm1tHQbr0YJ8GkxCar1plz+Lgn5oV6IwkwLEIuXaiXhBuNYp8YGYQGj
	8qZSm2RB6da+30CWdVyuE4pQgTSbqSW6iDB5QOYE6H4WgK+jlRdxCA4uCXJAM4xbnL6nPQ98iNO
	fM=
X-Google-Smtp-Source: AGHT+IEhD+rpqIQ+U3+sFldTkBv/zpilums/HcvjCoLD2OwMaeZNxyMhSArg6uUsOZdqxf83ZysamQ==
X-Received: by 2002:a50:a69a:0:b0:641:57e9:c426 with SMTP id 4fb4d7f45d1cf-642e27d453amr4741152a12.19.1762948176379;
        Wed, 12 Nov 2025 03:49:36 -0800 (PST)
Message-ID: <6a5a9f4e-1f0e-453f-b1d1-d0e2acf97e2a@suse.com>
Date: Wed, 12 Nov 2025 12:49:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 18/18] xen/riscv: introduce metadata table to store
 P2M type
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <d291d2efe7dcc6ddd3d16677a81c57d755c7ada2.1760974017.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: <d291d2efe7dcc6ddd3d16677a81c57d755c7ada2.1760974017.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.10.2025 17:58, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -20,6 +20,16 @@
>  
>  #define P2M_SUPPORTED_LEVEL_MAPPING 2
>  
> +/*
> + * P2M PTE context is used only when a PTE's P2M type is p2m_ext_storage.
> + * In this case, the P2M type is stored separately in the metadata page.
> + */
> +struct p2m_pte_ctx {
> +    struct page_info *pt_page;   /* Page table page containing the PTE. */
> +    unsigned int index;          /* Index of the PTE within that page. */
> +    unsigned int level;          /* Paging level at which the PTE resides. */
> +};
> +
>  unsigned char __ro_after_init gstage_mode;
>  unsigned int __ro_after_init gstage_root_level;
>  
> @@ -363,24 +373,89 @@ static struct page_info *p2m_alloc_page(struct p2m_domain *p2m)
>      return pg;
>  }
>  
> -static int p2m_set_type(pte_t *pte, p2m_type_t t)
> +/*
> + * `pte` â€“ PTE entry for which the type `t` will be stored.
> + *
> + * If `t` is `p2m_ext_storage`, both `ctx` and `p2m` must be provided;
> + * otherwise, only p2m may be NULL.
> + */
> +static void p2m_set_type(pte_t *pte, const p2m_type_t t,
> +                         struct p2m_pte_ctx *ctx,
> +                         struct p2m_domain *p2m)
>  {
> -    int rc = 0;
> +    struct page_info **md_pg;
> +    pte_t *metadata = NULL;

I'm not convinced it is a good idea to re-use pte_t for this purpose. If you used
a separate type, and if then you defined that as a bitfield with only a few bits
dedicated to type, future changes (additions) may be quite a bit easier.

> -    if ( t > p2m_first_external )
> -        panic("unimplemeted\n");
> -    else
> +    ASSERT(p2m);
> +
> +     /* Be sure that an index correspondent to page level is passed. */
> +    ASSERT(ctx && ctx->index < P2M_PAGETABLE_ENTRIES(ctx->level));
> +
> +    /*
> +     * For the root page table (16 KB in size), we need to select the correct
> +     * metadata table, since allocations are 4 KB each. In total, there are
> +     * 4 tables of 4 KB each.
> +     * For none-root page table index of ->pt_page[] will be always 0 as
> +     * index won't be higher then 511. ASSERT() above verifies that.
> +     */
> +    md_pg = &ctx->pt_page[ctx->index / PAGETABLE_ENTRIES].v.md.pg;
> +
> +    if ( !*md_pg && (t >= p2m_first_external) )
> +    {
> +        BUG_ON(ctx->level > P2M_SUPPORTED_LEVEL_MAPPING);
> +
> +        if ( ctx->level <= P2M_SUPPORTED_LEVEL_MAPPING )
> +        {
> +            struct domain *d = p2m->domain;

This is (if at all) needed only ...

> +            *md_pg = p2m_alloc_page(p2m);
> +            if ( !*md_pg )
> +            {

... in this more narrow scope.

> +                printk("%s: can't allocate extra memory for dom%d\n",
> +                       __func__, d->domain_id);

The logging text isn't specific enough for my taste. For ordinary printk()s I'd
also recommend against use of __func__ (that's fine for dprintk()).

Also please us %pd in such cases.

> +                domain_crash(d);
> +
> +                return;
> +            }
> +        }
> +    }
> +
> +    if ( *md_pg )
> +        metadata = __map_domain_page(*md_pg);
> +
> +    if ( t < p2m_first_external )
> +    {
>          pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>  
> -    return rc;
> +        if ( metadata )
> +            metadata[ctx->index].pte = p2m_invalid;

Shouldn't this be accompanied with a BUILD_BUG_ON(p2m_invalid), as otherwise
p2m_alloc_page()'s clearing of the page won't have the intended effect?

> +    }
> +    else
> +    {
> +        pte->pte |= MASK_INSR(p2m_ext_storage, P2M_TYPE_PTE_BITS_MASK);
> +
> +        metadata[ctx->index].pte = t;

If you set t to p2m_ext_storage here, the pte->pte updating could be moved ...

> +    }

... here, covering both cases. Overally this may then be easier as

    if ( t >= p2m_first_external )
        metadata[ctx->index].pte = t;
    else if ( metadata )
        metadata[ctx->index].pte = p2m_invalid;

    pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);

Then raising the question whether it couldn't still be the real type that's
stored in metadata[] even for t < p2m_first_external. That woiuld further
reduce conditionals.

> +    unmap_domain_page(metadata);
>  }
>  
> -static p2m_type_t p2m_get_type(const pte_t pte)
> +/*
> + * `pte` -> PTE entry that stores the PTE's type.
> + *
> + * If the PTE's type is `p2m_ext_storage`, `ctx` should be provided;
> + * otherwise it could be NULL.
> + */
> +static p2m_type_t p2m_get_type(const pte_t pte, const struct p2m_pte_ctx *ctx)
>  {
>      p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
>  
>      if ( type == p2m_ext_storage )
> -        panic("unimplemented\n");
> +    {
> +        const pte_t *md = __map_domain_page(ctx->pt_page->v.md.pg);
> +        type = md[ctx->index].pte;
> +        unmap_domain_page(md);

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

> @@ -470,7 +545,15 @@ static void p2m_set_permission(pte_t *e, p2m_type_t t)
>      }
>  }
>  
> -static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
> +/*
> + * If p2m_pte_from_mfn() is called with p2m_pte_ctx = NULL and p2m = NULL,
> + * it means the function is working with a page table for which the `t`
> + * should not be applicable. Otherwise, the function is handling a leaf PTE
> + * for which `t` is applicable.
> + */
> +static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t,
> +                              struct p2m_pte_ctx *p2m_pte_ctx,
> +                              struct p2m_domain *p2m)
>  {
>      pte_t e = (pte_t) { PTE_VALID };
>  
> @@ -478,7 +561,7 @@ static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
>  
>      ASSERT(!(mfn_to_maddr(mfn) & ~PADDR_MASK) || mfn_eq(mfn, INVALID_MFN));
>  
> -    if ( !is_table )
> +    if ( p2m_pte_ctx && p2m )
>      {

Maybe better

    if ( p2m_pte_ctx )
    {
        ASSERT(p2m);
        ...

(if you really think the 2nd check is needed)?

> @@ -506,12 +589,19 @@ static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
>  /* Generate table entry with correct attributes. */
>  static pte_t page_to_p2m_table(const struct page_info *page)
>  {
> -    /*
> -     * p2m_invalid will be ignored inside p2m_pte_from_mfn() as is_table is
> -     * set to true and p2m_type_t shouldn't be applied for PTEs which
> -     * describe an intermidiate table.
> -     */
> -    return p2m_pte_from_mfn(page_to_mfn(page), p2m_invalid, true);
> +    return p2m_pte_from_mfn(page_to_mfn(page), p2m_invalid, NULL, NULL);
> +}

How come the comment is dropped? If you deem it unecessary, why was it added
earlier in this same series?

> +static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
> +
> +/*
> + * Free page table's page and metadata page linked to page table's page.
> + */
> +static void p2m_free_table(struct p2m_domain *p2m, struct page_info *tbl_pg)
> +{
> +    if ( tbl_pg->v.md.pg )
> +        p2m_free_page(p2m, tbl_pg->v.md.pg);

To play safe, maybe better also clear tbl_pg->v.md.pg?

> @@ -749,6 +849,10 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
>      unsigned int next_level = level - 1;
>      unsigned int level_order = P2M_LEVEL_ORDER(next_level);
>  
> +    struct p2m_pte_ctx p2m_pte_ctx;

I think this would better be one variable instance per scope where it's needed,
and then using an initzializer. Or else ...

> +    /* Init with p2m_invalid just to make compiler happy. */
> +    p2m_type_t old_type = p2m_invalid;
> +
>      /*
>       * This should only be called with target != level and the entry is
>       * a superpage.
> @@ -770,6 +874,19 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
>  
>      table = __map_domain_page(page);
>  
> +    if ( MASK_EXTR(entry->pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage )
> +    {
> +        p2m_pte_ctx.pt_page = tbl_pg;
> +        p2m_pte_ctx.index = offsets[level];
> +        /*
> +         * It doesn't really matter what is a value for a level as
> +         * p2m_get_type() doesn't need it, so it is initialized just in case.
> +         */
> +        p2m_pte_ctx.level = level;
> +
> +        old_type = p2m_get_type(*entry, &p2m_pte_ctx);
> +    }
> +
>      for ( i = 0; i < P2M_PAGETABLE_ENTRIES(next_level); i++ )
>      {
>          pte_t *new_entry = table + i;
> @@ -781,6 +898,15 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
>          pte = *entry;
>          pte_set_mfn(&pte, mfn_add(mfn, i << level_order));
>  
> +        if ( MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage )
> +        {
> +            p2m_pte_ctx.pt_page = page;
> +            p2m_pte_ctx.index = i;
> +            p2m_pte_ctx.level = next_level;

... why are the loop-invariat fields not filled ahead of the loop here?

> @@ -927,7 +1061,13 @@ static int p2m_set_entry(struct p2m_domain *p2m,
>          p2m_clean_pte(entry, p2m->clean_dcache);
>      else
>      {
> -        pte_t pte = p2m_pte_from_mfn(mfn, t, false);
> +        struct p2m_pte_ctx tmp_ctx = {
> +            .pt_page = mfn_to_page(domain_page_map_to_mfn(table)),
> +            .index =  offsets[level],

Nit: Stray blank.

> @@ -1153,7 +1301,14 @@ static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
>      if ( pte_is_valid(entry) )
>      {
>          if ( t )
> -            *t = p2m_get_type(entry);
> +        {
> +            struct p2m_pte_ctx p2m_pte_ctx = {
> +                .pt_page = mfn_to_page(domain_page_map_to_mfn(table)),
> +                .index = offsets[level],
> +            };

.level not being set here?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 12:41:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 12:41:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159906.1488157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJA9e-0004uU-Ar; Wed, 12 Nov 2025 12:40:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159906.1488157; Wed, 12 Nov 2025 12:40:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJA9e-0004uN-88; Wed, 12 Nov 2025 12:40:54 +0000
Received: by outflank-mailman (input) for mailman id 1159906;
 Wed, 12 Nov 2025 12:40:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=StYb=5U=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vJA9c-0004uH-JE
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 12:40:52 +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 d0e32f8c-bfc4-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 13:40:49 +0100 (CET)
Received: from CH2PR07CA0014.namprd07.prod.outlook.com (2603:10b6:610:20::27)
 by SJ2PR12MB9209.namprd12.prod.outlook.com (2603:10b6:a03:558::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Wed, 12 Nov
 2025 12:40:42 +0000
Received: from CH1PEPF0000A349.namprd04.prod.outlook.com
 (2603:10b6:610:20:cafe::b5) by CH2PR07CA0014.outlook.office365.com
 (2603:10b6:610:20::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.16 via Frontend Transport; Wed,
 12 Nov 2025 12:40:42 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CH1PEPF0000A349.mail.protection.outlook.com (10.167.244.9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Wed, 12 Nov 2025 12:40:41 +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, 12 Nov
 2025 04:40:41 -0800
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, 12 Nov
 2025 04:40:40 -0800
Received: from [10.252.147.171] (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, 12 Nov 2025 04:40:39 -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: d0e32f8c-bfc4-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hMY/R6FH/HGaJ1EukzGNRGDZW9PDTSAYN9GXLL/LXTx0W2OMWmp3OaD3ugV88IvkKZ0ydd1+o9iEzWkq6h9bRSoruyetoCOb2kWOY7VO9FiGOkK/fXnezePttwzZRTp9smygiIWbmC1/gPyDMoFKinEADXL5MPIVG0qfVDEQ4UP6SGGyOtfiiW4xyHsvPfPqiynbZ4Q6Kq+02N2rLAjW4/tqFtW/KwxtYY9EH4+Dy13tG8JvSK8KNI6VMc+U1EJnrjSNhlfSqFFAXdv+3470ej/Dt39Yfd4bFfM14mUZs+jSmrzFg2sghHggQWVeFFk+Cl2IWls1iewU0ENJ/uMy/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=EE3+909UHoHRw3H1PXye8HgvdIJOubT0T9Oqjuv4lo8=;
 b=nyIGO6e2/rU+0Ej9t969NoNG8i/1irrWTkHlQYafSCyzYBn+6yA0r4lmVz7ty9FINAmQ1dLFrV7DZAV1eHyx3M3PnYGlrPmsOWHSx8EY71tPNsXqOAcmLNuGQtHSAA+ZjoJycW0oL8xWbnfid+RzC9Da/vvWfVh76EcDzYNC2jniRgMS3Qdv7jKwe49CsUO7ocPpLAtYg1vO5wqQqEo3k9XQXREjwCTSRCDgV6GdpafKSA+zFWqGeJKVMRUnfyWfAJTuw+OaR+NHCO1VVhUFbkYVuG7PhrI0y3MMoPbeLmEfHfUlpCRa8t+Fdv+OcBZigdz9vbJVh05GY4C/zkkCwg==
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=EE3+909UHoHRw3H1PXye8HgvdIJOubT0T9Oqjuv4lo8=;
 b=0vw/X/HnLgisKUMtloHrwSSgAl/XbunPkTMNVkFbO8QDnKMAqvgrj4AXknJfrMfj81ltwoZknaGplODqQZHp/MBTFS78ZcwK1tsATM8X2HURPw0Wx61H/mhX+2Nj59i/o1CyF7C+zeSmd9NV74B/letkOTWZ9zqDcHTLZnnFby4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <80c02055-2687-4e24-8de0-8fb4dfe2af02@amd.com>
Date: Wed, 12 Nov 2025 13:40:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] arm/mpu: Implement setup_mm for MPU systems
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: <20251111101601.4171120-1-harry.ramsey@arm.com>
 <20251111101601.4171120-2-harry.ramsey@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20251111101601.4171120-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: CH1PEPF0000A349:EE_|SJ2PR12MB9209:EE_
X-MS-Office365-Filtering-Correlation-Id: d21e65d9-39fe-4f81-06db-08de21e8b0e6
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?cVNGOFZuTUZKMWNsd29oOTBtalpTWis0Ri9ULzZZcTQvU2ltUXI1eUxIWG8r?=
 =?utf-8?B?dVBNMDljbDhQN3VRWXRhd21Cc00zY1FVUXhWeXJvRFZqRzQwMWRSVTVGUXJD?=
 =?utf-8?B?Rjc4d2tIZUxMYmplSmF3cGZ2WmhOVkxlb1ZxODhOdFRPd1dsblBoY2VnNUw1?=
 =?utf-8?B?TThvTUJqanB2RVVxQzdMMzhONU1xaHpvYzVGTkNnbVNOL1NIVnVjRFVhTkRD?=
 =?utf-8?B?NlI1Z1dIWGJwOHd3cyt5YjROcEZRazVYeWRyQ2NGbXJoNWhuVHFYenUwR0sr?=
 =?utf-8?B?U0lNYnkrQXR3UmlPZ2R6ZUR1VDFFL0duZkxPYno5c212Y25oaDZmR0dMdThx?=
 =?utf-8?B?RW81OGxOeDUzQVYrSHYzbFR6U1dsa0JrQmVuU2paaTJVUTgrelVLcGtnYzhL?=
 =?utf-8?B?VEVwRGIrREJIQkJmVFdHaFhEb1BuaTExRll5alZRQmhEU1RWbWdVdDIwNDZ5?=
 =?utf-8?B?MnJReVdXbmJZVkJRWm9YUE5PZFBWQkxqRTVFZG1mc3R2aW96WHJqZGRLMk1h?=
 =?utf-8?B?bklqdFRCTnA1SmcvdlpBQTlBVGxINVJsbzJIRVZLa05sZ3dVUDhqTmNId09z?=
 =?utf-8?B?NmhZRHo5UTc1M0tna1VBa0c1NS9hQVhCSzJPYkVmcFJteDJxclQxZVhkSUJ3?=
 =?utf-8?B?OHlyeElZcC9DTGpCQWNlNEdoK0ljdmtPcTZEYlRDWDBwSmZtUDdUV0YxMWl6?=
 =?utf-8?B?aFJSM3FnRmQ0SitZVWtYc0ZURFR3dWNnTzBaL3ZLK0xVN1VkNGpFaVYvSEE1?=
 =?utf-8?B?M2Zldjc1R084QXUvTElhRnVOU1hkWnNCcE1VcjI0TmZtc2xWdGxORUZyQ2xX?=
 =?utf-8?B?NE5RSk52QU1YSndEdGt1SjdlZmQ0WG9nTUVLSXZVY3BmVEJ3aElicDAxL0RR?=
 =?utf-8?B?R040K1Z0d29aZUFiYVFQZExpbHdkUnhlVWNhZlRLZmlLSU0ycHkyMnlKbVFi?=
 =?utf-8?B?Yk8zTExEajFjWDZGc25ZM0RkSUIwZTV0NGRMT3VCcm16R2h3Mlg3SkwzSER2?=
 =?utf-8?B?ZkxEMEFCbEE4WDlPR0tkdFN3emlnckgyV2NOaG1hMUYwQ0YvMWEwWnM5TDJC?=
 =?utf-8?B?ZVl4Nko2MHhlbk9SdncvRTZMZkwwa01jcnJueVpCc2NaZHI2YWpNWWhGbjFv?=
 =?utf-8?B?dFhFZW5mbzlib0lmM2JrVnBLOGJwcmVYZE1QTkd2QmJZREh4cEg2eWZJRC9l?=
 =?utf-8?B?d1diZ1drSU5iSE1RUDZQdW9QK0pNQktGWVppRWIrdDlrT2FyUjRtS0F4MjFp?=
 =?utf-8?B?T2ptTDc3S01sOTZqc1QwaGdmc3ZJWGpvbGJJeCtjRmk3M0dOblFaSW84UllY?=
 =?utf-8?B?UjVxN000WmZ6VExpVEwraVdpeEh1RTJGMWtQc05ObWpza1ZoSDVKRE9WczlH?=
 =?utf-8?B?ZnZqRHozMDZSYm8yNnU5Z0ZpZ0JlR3FwUHhKUEtGeHVodlpIUDVkaXJFUlV0?=
 =?utf-8?B?NVdxN2paMWVsQnQ4MXRGVzdlendSaEdyZm9ZK2ZlZDhwWkRMSG5adElheW5H?=
 =?utf-8?B?aytmWHgwcitLOE5uYmxhd2xUcWlFaUNkcTFaNGIzbFlkQlJMZVNPMmowbWFO?=
 =?utf-8?B?ZXc1a3ZxSU53NmRjaHg3UGo5b2VzUzBNTy9mL0p5ZFM3QytGNGcwZEI0L01T?=
 =?utf-8?B?U2tGZzFNUXRyaTNLeUdsSHB6NmVOc0lvWFZvSktKNVRPLzRZNGovY1hQMGht?=
 =?utf-8?B?SU5WSmppUWZvb3U4NTdYdEpGNUd3aUpUN2pDaUZEM2daa2RUY2ZIU2JJbk5a?=
 =?utf-8?B?N0Vvd01OanVQcGU1dkZYRnNORFFqVXhwaFl2WTgxa3BqRzBFUDRmWkZVWVM1?=
 =?utf-8?B?ZzljQldpNWpEdi9IT1BBRWZnMEt3V3BzcTFzTk9RZUFrRitRWWpuUGJMUGZk?=
 =?utf-8?B?Sk9UZlFRcGFoMFZnVzJ5dzdOcUUzZFp4a0JsUWhHUVREczdVSXZveXRqNzNz?=
 =?utf-8?B?TUY1UVZyQ21QdFR5bm9TeUlRaDZmODZHeVE4bGgrV2Qxbi9PenJXZS9CL2RN?=
 =?utf-8?B?dm9DaG9HK3crZmF4TGlQZGdoSFF2ZU5sVGtEc1pHcExQbG1OSnh3Sm9RZml0?=
 =?utf-8?B?RFRGVG1xUXowbEJEUmZVTGFEZ3hDU3JyVjk4eDNNcjdkTWNKVStrdW9QOGhR?=
 =?utf-8?Q?LeaM=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 12:40:41.6645
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d21e65d9-39fe-4f81-06db-08de21e8b0e6
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000A349.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9209



On 11/11/2025 11:15, Harry Ramsey wrote:
> Implement `setup_mm` for MPU systems. This variant does not require
> setting up a direct map.
> 
> To reduce code duplication the common initalisation code for both MPU
> and MMU Arm64 configurations is refactored into `setup_mm`. Platform-specific
> setup steps are now handled by a new helper function `setup_mm_helper`.
> 
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
> ---
> Changes in v2:
> - Improve clarity with regards to MPU setup in setup_mm
> ---
>  xen/arch/arm/arm64/mmu/mm.c   | 26 +------------------
>  xen/arch/arm/include/asm/mm.h |  2 ++
>  xen/arch/arm/mm.c             | 48 +++++++++++++++++++++++++++++++++++
>  xen/arch/arm/mpu/mm.c         | 30 ++++++++++++++++++++--
>  4 files changed, 79 insertions(+), 27 deletions(-)
> 
> diff --git a/xen/arch/arm/arm64/mmu/mm.c b/xen/arch/arm/arm64/mmu/mm.c
> index 3e64be6ae6..70b53be032 100644
> --- a/xen/arch/arm/arm64/mmu/mm.c
> +++ b/xen/arch/arm/arm64/mmu/mm.c
> @@ -4,8 +4,6 @@
>  #include <xen/llc-coloring.h>
>  #include <xen/mm.h>
>  #include <xen/pfn.h>
> -#include <xen/static-memory.h>
> -#include <xen/static-shmem.h>
> 
>  #include <asm/setup.h>
> 
> @@ -240,33 +238,18 @@ static void __init setup_directmap_mappings(unsigned long base_mfn,
>          panic("Unable to setup the directmap mappings.\n");
>  }
> 
> -void __init setup_mm(void)
> +void __init setup_mm_helper(void)
>  {
>      const struct membanks *banks = bootinfo_get_mem();
>      paddr_t ram_start = INVALID_PADDR;
>      paddr_t ram_end = 0;
> -    paddr_t ram_size = 0;
>      unsigned int i;
> 
> -    init_pdx();
> -
> -    /*
> -     * We need some memory to allocate the page-tables used for the directmap
> -     * mappings. But some regions may contain memory already allocated
> -     * for other uses (e.g. modules, reserved-memory...).
> -     *
> -     * For simplicity, add all the free regions in the boot allocator.
> -     */
> -    populate_boot_allocator();
> -
> -    total_pages = 0;
> -
>      for ( i = 0; i < banks->nr_banks; i++ )
>      {
>          const struct membank *bank = &banks->bank[i];
>          paddr_t bank_end = bank->start + bank->size;
> 
> -        ram_size = ram_size + bank->size;
>          ram_start = min(ram_start, bank->start);
>          ram_end = max(ram_end, bank_end);
> 
> @@ -274,16 +257,9 @@ void __init setup_mm(void)
>                                   PFN_DOWN(bank->size));
>      }
> 
> -    total_pages += ram_size >> PAGE_SHIFT;
> -
>      directmap_virt_end = XENHEAP_VIRT_START + ram_end - ram_start;
>      directmap_mfn_start = maddr_to_mfn(ram_start);
>      directmap_mfn_end = maddr_to_mfn(ram_end);
> -
> -    setup_frametable_mappings(ram_start, ram_end);
> -
> -    init_staticmem_pages();
> -    init_sharedmem_pages();
>  }
> 
>  /*
> diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
> index 7a93dad2ed..f702f4a0d6 100644
> --- a/xen/arch/arm/include/asm/mm.h
> +++ b/xen/arch/arm/include/asm/mm.h
> @@ -202,6 +202,8 @@ extern void remove_early_mappings(void);
>  extern int prepare_secondary_mm(int cpu);
>  /* Map a frame table to cover physical addresses ps through pe */
>  extern void setup_frametable_mappings(paddr_t ps, paddr_t pe);
> +/* 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);
> 
> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
> index 3b05b46ee0..c1208de26c 100644
> --- a/xen/arch/arm/mm.c
> +++ b/xen/arch/arm/mm.c
> @@ -12,8 +12,12 @@
>  #include <xen/grant_table.h>
>  #include <xen/guest_access.h>
>  #include <xen/mm.h>
> +#include <xen/static-memory.h>
> +#include <xen/static-shmem.h>
>  #include <xen/vmap.h>
> 
> +#include <asm/setup.h>
> +
>  #include <xsm/xsm.h>
> 
>  #include <public/memory.h>
> @@ -24,6 +28,50 @@
> 
>  unsigned long frametable_base_pdx __read_mostly;
> 
> +#if defined(CONFIG_ARM_64) || defined(CONFIG_MPU)
> +void __init setup_mm(void)
> +{
> +    const struct membanks *banks = bootinfo_get_mem();
> +    paddr_t ram_start = INVALID_PADDR;
> +    paddr_t ram_end = 0;
> +    paddr_t ram_size = 0;
> +    unsigned int i;
> +
> +    init_pdx();
> +
> +    for ( i = 0; i < banks->nr_banks; i++ )
> +    {
> +        const struct membank *bank = &banks->bank[i];
> +        paddr_t bank_end = bank->start + bank->size;
> +
> +        ram_size = ram_size + bank->size;
> +        ram_start = min(ram_start, bank->start);
> +        ram_end = max(ram_end, bank_end);
> +    }
> +
> +    total_pages = ram_size >> PAGE_SHIFT;
> +
> +    /*
> +     * On MMU systems we need some memory to allocate the page-tables used for
> +     * the directmap mappings.  But some regions may contain memory already
> +     * allocated for other uses (e.g. modules, reserved-memory...).
> +     *
> +     * On MPU systems we need to pre-reserve regions that were allocated for
> +     * other uses (e.g. modules, reserved-memory...).
I'm not sure I understand this part of the comment with regards to
populate_boot_allocator(). Could you please explain?

~Michal



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 13:07:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 13:07:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159921.1488179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJAZ6-00080K-DH; Wed, 12 Nov 2025 13:07:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159921.1488179; Wed, 12 Nov 2025 13:07:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJAZ6-00080D-A8; Wed, 12 Nov 2025 13:07:12 +0000
Received: by outflank-mailman (input) for mailman id 1159921;
 Wed, 12 Nov 2025 13:07: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=K5hw=5U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJAZ4-000807-Qe
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 13:07:10 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f08d486-bfc8-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 14:07:09 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-6419aaced59so1164637a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 05:07: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
 4fb4d7f45d1cf-6411f713a68sm15924162a12.2.2025.11.12.05.07.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 12 Nov 2025 05:07: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: 7f08d486-bfc8-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762952829; x=1763557629; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QWayfFwJBjKTbKQ+piSMhN7FPcy9SGuz11nllg1LtV4=;
        b=RP4RL1EwC0thmwoTV25iMGK31YwrXfgP2zRzPiOCd13r3NRX+J4P+/iGY3UaS2GxFq
         P3MCpJxtWwW+yjF+SYJE3SWYNGFB7/cKmaGvELUJAIS33robspPuOsYEgYHJ6U6k+z8m
         G3auP6/QCIv0vJaFvEfVgYTfxzUiShr7RH38lNwoTfn6p6swhGLgc9E3wdprCDINzBaX
         0aVKmbKIuPMvj7qpE0fuTp9LVhMXUnJ70Xs+DrchfXmKRd0G5YEke97Heh4yQwSpTmtg
         O1jFRkPOeo2ZiP69B2/FDd1VW3LG4AhVWn6ATXttbscW/91IPZpr2LXuUfsirBks7GE9
         Xhtg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762952829; x=1763557629;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QWayfFwJBjKTbKQ+piSMhN7FPcy9SGuz11nllg1LtV4=;
        b=NTUZbWgTSK/xUrbp0Mzztebr9p3/SbJo6Djsqui0bSTI8huJw9NNLVio1ns0JRfnla
         UqYkuzMH1yny1L/NZjPMAzuUt/xnZyDAIxhUcg4QhYQay7H3tiEKdzAGdefSwVrcL7O0
         GW0wMh9SNMqDJ5of0lQKLnxPYhObm/F12hQiRbaIgZwANReewyB6wJzYZhKsAs3kJT0A
         oUDqoS28nXsbzIIW5UwrcXtLmQM7TUHg6MQeDBsOby3XRIoc4/nUf8UahXTjqc71QmvO
         29YgzcNBWOsOVDsrwpImjUhT6kVuaJdGd2LTqAYb6ShbRrdF0+xZjtrsrXLOMHqNzq4l
         4k1A==
X-Forwarded-Encrypted: i=1; AJvYcCW8d9GbV1MFL1KXqjMh/qYOTn7QwUCtwaaI9DNGvgP6IV4R6/yJzTc4OSX5xdgSAsug6M+N1TCRYvM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxKr/xDubmCw3lRPbrj3JYX312nS9CnWcjf418+2ktMe0U62Q5y
	Rp6FvBp/Nk7zM/xqZ2Zt7Gpn25zAxQCEa6jiqnLD4qKOjDdPgkrj9zi6QtGuJL/iyQ==
X-Gm-Gg: ASbGncvh1LM7YkqFj+K/tP2/tmwevzYtlOMu136x9v2YhxWUY1f0oBscC/C0+OMkgZw
	9lYmkNtWrZX+m33fzvnMiI7gm8/p+xOunMS340IH9mWFH76M2pmZqkvUofHCDRjLwE1cD63yXuM
	kPUK46hIWEPfsnEUUSdoHP8+6uai3jnhnl4rr0T+KqziX8nOhhfvHNFsF2nEHfeTACwLyhNsnVD
	6xPF0+0xb7KyYM5yRWsNXCoDjkrKbdPMRxo8JfvEPVaOfY0lie2zYBEuRNuuWnf/0CKJ/vXGrTw
	42tAHYuaxMc6wBFBFACJG18ub0PhL5/9CteqMzSwXs9x7Zd9Gip/yxQ/FeKyPNIHN/1ND8BBbqx
	wXPp7To4p+sxe9xe70lmVxRXLaXWFvK9WzRy48M1KJugNT5aL0fF9u6Ygh7823bVjPngrBm44y0
	olzHzjPnNq2QzZrQr9Gu5txGTEMXGjd7+thyY5HbL7m0qQW0w8kG1yzZYsBp6ZDvjD
X-Google-Smtp-Source: AGHT+IFqMKU2U5AXIRn+3EoRF0/+8pYGcgoFqL6hZwwwXYYffR1ju6ERKSn2zkPrlTuBLbghP6DERw==
X-Received: by 2002:a05:6402:2396:b0:641:27d8:ec3f with SMTP id 4fb4d7f45d1cf-6431a55e4c8mr1707075a12.29.1762952828836;
        Wed, 12 Nov 2025 05:07:08 -0800 (PST)
Message-ID: <be5586a8-bb32-448f-b249-538d1b65f626@suse.com>
Date: Wed, 12 Nov 2025 14:07:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v3] xen/x86: guest_access: optimize raw_x_guest() for
 PV and HVM combinations
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Lira, Victor M" <victlira@amd.com>
References: <20251107181739.3034098-1-grygorii_strashko@epam.com>
 <47f86a44-007f-4b90-9656-b2440238b2ba@suse.com>
 <f0a5a939-7d66-417d-8a88-34cc172623e6@epam.com>
 <faab050f-677f-469c-8bca-93c55a53165c@suse.com>
 <a858cfd2-c6cc-4ed1-bb12-8cad488f4542@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: <a858cfd2-c6cc-4ed1-bb12-8cad488f4542@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.11.2025 12:27, Grygorii Strashko wrote:
> 
> 
> On 12.11.25 08:38, Jan Beulich wrote:
>> On 11.11.2025 18:52, Grygorii Strashko wrote:
>>> On 10.11.25 09:11, Jan Beulich wrote:
>>>> On 07.11.2025 19:17, Grygorii Strashko wrote:
>>>>> --- a/xen/arch/x86/include/asm/guest_access.h
>>>>> +++ b/xen/arch/x86/include/asm/guest_access.h
>>>>> @@ -13,26 +13,64 @@
>>>>>  Â  #include <asm/hvm/guest_access.h>
>>>>>  Â  Â  /* Raw access functions: no type checking. */
>>>>> -#define raw_copy_to_guest(dst, src, len)Â Â Â Â Â Â Â  \
>>>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>> -Â Â Â Â  copy_to_user_hvm((dst), (src), (len)) :Â Â Â  \
>>>>> -Â Â Â Â  copy_to_guest_pv(dst, src, len))
>>>>> -#define raw_copy_from_guest(dst, src, len)Â Â Â Â Â  \
>>>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>> -Â Â Â Â  copy_from_user_hvm((dst), (src), (len)) :Â  \
>>>>> -Â Â Â Â  copy_from_guest_pv(dst, src, len))
>>>>> -#define raw_clear_guest(dst,Â  len)Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>> -Â Â Â Â  clear_user_hvm((dst), (len)) :Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>> -Â Â Â Â  clear_guest_pv(dst, len))
>>>>> -#define __raw_copy_to_guest(dst, src, len)Â Â Â Â Â  \
>>>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>> -Â Â Â Â  copy_to_user_hvm((dst), (src), (len)) :Â Â Â  \
>>>>> -Â Â Â Â  __copy_to_guest_pv(dst, src, len))
>>>>> -#define __raw_copy_from_guest(dst, src, len)Â Â Â  \
>>>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>> -Â Â Â Â  copy_from_user_hvm((dst), (src), (len)) :Â  \
>>>>> -Â Â Â Â  __copy_from_guest_pv(dst, src, len))
>>>>> +static inline bool raw_use_hvm_access(const struct vcpu *v)
>>>>> +{
>>>>> +Â Â Â  return IS_ENABLED(CONFIG_HVM) && (!IS_ENABLED(CONFIG_PV) || is_hvm_vcpu(v));
>>>>> +}
>>>>
>>>> Without a full audit (likely tedious and error prone) this still is a
>>>> behavioral change for some (likely unintended) use against a system domain
>>>> (likely the idle one): With HVM=y PV=n we'd suddenly use the HVM accessor
>>>> there. IOW imo the "system domains are implicitly PV" aspect wants
>>>> retaining, even if only "just in case". It's okay not to invoke the PV
>>>> accessor (but return "len" instead), but it's not okay to invoke the HVM
>>>> one.
>>>
>>> This patch is subset of "constify is_hvm_domain() for PV=n case" attempts.
>>>
>>> It was made under assumption that:
>>> "System domains do not have Guests running, so can't initiate hypecalls and
>>>  Â can not be users of copy_to/from_user() routines. There are no Guest and no user memory".
>>> [IDLE, COW, IO, XEN]
>>>
>>> If above assumption is correct - this patch was assumed safe.
>>>
>>> if not - it all make no sense, probably.
>>
>> I wouldn't go as far as saying that. It can be arranged to avid the corner
>> case I mentioned, I think.
> 
> do you mean adding "&& !is_system_domain(v->domain)" in raw_use_hvm_access()?

No, we want to avoid adding any new any runtime checks.

> Hm, I see that vcpu(s) are not even created for system domains in domain_create().
> So seems !is_system_domain(v->domain) == true always here.

"always" in what sense? It _should_ be always true, but in the unlikely event we
have a path where it isn't (which we could be sure of only after a full audit),
behavior there shouldn't change in the described problematic way.

> Am I missing smth?
> Or you meant smth. else?

I was thinking of something along the lines of

    if ( is_hvm_vcpu(current) )
        return ..._hvm();

    if ( !IS_ENABLED(CONFIG_PV) )
        return len;

    return ..._pv();

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 13:58:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 13:58:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159933.1488190 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJBMH-0005tf-1B; Wed, 12 Nov 2025 13:58:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159933.1488190; Wed, 12 Nov 2025 13:58: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 1vJBMG-0005tY-U9; Wed, 12 Nov 2025 13:58:00 +0000
Received: by outflank-mailman (input) for mailman id 1159933;
 Wed, 12 Nov 2025 13:58: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=HsTr=5U=kernel.org=david@srs-se1.protection.inumbo.net>)
 id 1vJBMG-0005tI-Ai
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 13:58:00 +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 94d44a76-bfcf-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 14:57:53 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 6148D60213;
 Wed, 12 Nov 2025 13:57:51 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 29847C2BCB4;
 Wed, 12 Nov 2025 13:57: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: 94d44a76-bfcf-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1762955871;
	bh=wyYh5JA+N7mRZY7BRonX9hRu7lWf6kG2xADXz4mWKHk=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=uDdn5b0TMd79Lh5gGh2J4WjGYOU7mL3bVuBbQ/VXgzY4nMQRUASwOOOn1wPdm3Cym
	 W4XE28wEzp5MfEzdP2hqphehcMkmvAS/b8w6wcpUiLZxYE0rCMGLEp+rVCdW9qI4ba
	 ocobM87q4/c0/j7wdbVyzm/yrXe8KetWir7vwxyUiRXtVNS/+8DnZ7OaB4HqMTf7u6
	 36VSYtBbbyHuGEXAGGvXe/GFkuJFAWR+xBF55ycy4xXYzkSJweCr6O/7vY6qeuk4iJ
	 2JAYXvNk5KDLXblAvdwOWYLaBc3JfMXId6w7fnEaMQeOyF/yR5GPTl+Yi8z7SCHe3i
	 /nZPR2FUDupLg==
Message-ID: <ba3cf0c1-174e-4e86-b464-7c5c15a803d8@kernel.org>
Date: Wed, 12 Nov 2025 14:57:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 07/12] mm: enable lazy_mmu sections to nest
To: Kevin Brodsky <kevin.brodsky@arm.com>, Ryan Roberts
 <ryan.roberts@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-8-kevin.brodsky@arm.com>
 <999feffa-5d1d-42e3-bd3a-d949f2a9de9d@arm.com>
 <cc9dc398-b9c5-4bb8-94ad-7e7f3ddd5b4f@arm.com>
 <824bf705-e9d6-4eeb-9532-9059fa56427f@arm.com>
 <58fd1a6e-f2c4-421c-9b95-dea4b244a515@arm.com>
 <8f70692c-25a9-4bd0-94ab-43ab435e4b1b@arm.com>
 <cdb4b97a-415b-4dba-877b-0cd570381a6d@arm.com>
From: "David Hildenbrand (Red Hat)" <david@kernel.org>
Content-Language: en-US
In-Reply-To: <cdb4b97a-415b-4dba-877b-0cd570381a6d@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


>>>
>>> I don't really mind either way, but I don't see an immediate use for [C]
>>> and [D] - the idea is that the paused section is short and controlled,
>>> not made up of arbitrary calls.
>> If my thinking above is correct, then I've already demonstrated that this is not
>> the case. So I'd be inclined to go with [D] on the basis that it is the most robust.
>>
>> Keeping 2 nesting counts (enable and pause) feels pretty elegant to me and gives
>> the fewest opportunities for surprises.
> 
> Agreed, if we're going to allow enable() within a paused section, then
> we might as well allow paused sections to nest too. The use-case is
> clear, so I'm happy to go ahead and make those changes.
> 
> David, any thoughts?

I don't mind allowing nesting of pause(), so works for me.

-- 
Cheers

David


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 14:21:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 14:21:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159949.1488209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJBjC-0001uk-2B; Wed, 12 Nov 2025 14:21:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159949.1488209; Wed, 12 Nov 2025 14: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 1vJBjB-0001ud-VY; Wed, 12 Nov 2025 14:21:41 +0000
Received: by outflank-mailman (input) for mailman id 1159949;
 Wed, 12 Nov 2025 14: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=vOna=5U=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vJBjA-0001eo-JL
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 14:21:40 +0000
Received: from mail-yx1-xb12a.google.com (mail-yx1-xb12a.google.com
 [2607:f8b0:4864:20::b12a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e6bd2067-bfd2-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 15:21:39 +0100 (CET)
Received: by mail-yx1-xb12a.google.com with SMTP id
 956f58d0204a3-63e16fbdd50so843997d50.2
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 06:21: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: e6bd2067-bfd2-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1762957298; x=1763562098; 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=6/bWzIkTQbzHmrTJlxqJKqiprn96CBsLf7XFab00P5A=;
        b=TChmxlvivyqI/7LZ/JmX90OjzNH7hmUbkdXWaG3rt1I9sgO8ydzpDywVbzJ8ScENTE
         1O+e0j+Z0gVbo9PxXS79R8Sn5eqauG49H6iiqzCM6jR5V7PGIBEPbFllhi9dqPxJXJ6r
         mvNixr8Kk6qJH9WsNtpv8CFG1jqojWg8x6+vrfuO7D/FfKgyG5DNP6HSE5lkO2Q12nZx
         3bEt5VcZ+FhQLgmn7yk/N3H6DldPtzor89QqdXuSvKUuRFG1GKwkXBy+UkoA0PpeBhNk
         c38f0dcKxQaq/c0wIs8SF+KLzKp8227omnDT7vRw4vDYpr9K/w0eQxylIuEh0qoqudUF
         l5lw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762957298; x=1763562098;
        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=6/bWzIkTQbzHmrTJlxqJKqiprn96CBsLf7XFab00P5A=;
        b=aMrvh+B1BNGsYhznUWradSIGPJ9me/uCZlWZ/SHwnDKbG+jWK2u62G7Qab/UJdVipX
         /f8jokvoV7lWEetTICUrzVDHmY5XFRq4eDi866odoOBGfizO22Imphy0s4qfLWWI87vO
         PBRfE1c9ogqgt9XRdZ1oBlt3SUuXILnzoZq/IYCC06RU1Bo1XtvTM/pWaeViNp4VrBRk
         V9dP79vJl7O+2oj9BsLqhXhcw/xK3n0vQe2AZZWYZAQn4yx60bknnzBjGWiyJ3wNVpjM
         ZQZJJ5komHvXAAwPqYtNFgL3W/AwCPNRfIR5w+NvuQ5nn2k3lJRegnLMXzHMVK4xGn8Z
         ztog==
X-Forwarded-Encrypted: i=1; AJvYcCV2BL/5FLqqQH3iemyRU2nCU0119PDRIphqy6H1VUJdonISN6vQUX12xNfJQY1vvGJJg3Kq9o9ydMQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyBjeKwXdYuJJ09ZV2VlP1gm85D8doVC2BgMKz9bLq8Hbf/eyjo
	ezIv7TfcOl/jiMJD03xhw93pBEJPp6RvPrjWGYo9mngkGI9QFhHClOUCrz3/hYZssX7thuRX0/q
	QgiTqm3lWyAAKbtzNjAsffagWr94+4Cc=
X-Gm-Gg: ASbGnctMZ22JGhPrgZ47BfJZhVO3b9etDk5kDjZ7MovLY/d+xVQfpxgnrWzRRqM4qd1
	dGnIYmk1diHDW1sElEkXEAVchwNxFblCXkNUS2lvHxoIgbLwO3KlESnUoPNCi489SQKREz5j1Xv
	EtVunFzbsyy7bLRbU3prSIKewlOHrzAxgebxnCTPpGL5aHthrt6/3Qe69vIxBqlkICUAeRMchyK
	aFrT1ThToRMwaUHLr415IboVczgZE56W51lXXo29g9ULweaM91htLkd3fzY
X-Google-Smtp-Source: AGHT+IH/cR01kRSKyI94vcVB7mJo0PEKHexuNZ5cMasFIbDX95wIlGhSLKCmYnckLOqkNXRrvXgb77nJLfO8O3UEjco=
X-Received: by 2002:a05:690c:d0c:b0:787:c9a1:13f0 with SMTP id
 00721157ae682-78813610f44mr25172497b3.8.1762957297684; Wed, 12 Nov 2025
 06:21:37 -0800 (PST)
MIME-Version: 1.0
References: <20251110153551.84813-1-frediano.ziglio@citrix.com> <4ac8284c-e7f1-4d6a-9241-d6c30155551b@suse.com>
In-Reply-To: <4ac8284c-e7f1-4d6a-9241-d6c30155551b@suse.com>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Wed, 12 Nov 2025 14:21:25 +0000
X-Gm-Features: AWmQ_bkxICBKmYqknrHT_nb1_4imFiMIBh7r47VmdCEIqeaANBfR_t4EahOKWio
Message-ID: <CAHt6W4eJi2hPjwyd5nQM3RKi3+pyw7LMiZA9WQMdFa1vp0i+Rw@mail.gmail.com>
Subject: Re: [PATCH v5] xen: Strip xen.efi by default
To: Jan Beulich <jbeulich@suse.com>
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>, Frediano Ziglio <frediano.ziglio@cloud.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Demi Marie Obenour <demiobenour@gmail.com>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Mon, 10 Nov 2025 at 16:01, Jan Beulich <jbeulich@suse.com> wrote:
>
> On 10.11.2025 16:35, Frediano Ziglio wrote:
> > From: Frediano Ziglio <frediano.ziglio@cloud.com>
> >
> > For xen.gz file we strip all symbols and have an additional
> > xen-syms.efi file version with all symbols.
> > Make xen.efi more coherent stripping all symbols too.
> > xen-syms.efi can be used for debugging.
> >
> > Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> > ---
> > Changes since v1:
> > - avoid leaving target if some command fails.
> >
> > Changes since v2:
> > - do not convert type but retain PE format;
> > - use xen-syms.efi for new file name, more consistent with ELF.
> >
> > Changes since v3:
> > - update documentation;
> > - do not remove xen.efi.elf;
> > - check endbr instruction before generating final target.
> >
> > Changes since v4:
> > - simplify condition check;
> > - avoid reuse of $@.tmp file.
> > ---
> >  docs/misc/efi.pandoc  |  8 +-------
> >  xen/Kconfig.debug     |  9 ++-------
> >  xen/Makefile          | 19 -------------------
> >  xen/arch/x86/Makefile | 16 ++++++++++------
> >  4 files changed, 13 insertions(+), 39 deletions(-)
> >
> > diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
> > index 11c1ac3346..c66b18a66b 100644
> > --- a/docs/misc/efi.pandoc
> > +++ b/docs/misc/efi.pandoc
> > @@ -20,13 +20,7 @@ Xen to load the configuration file even if multiboot modules are found.
> >  Once built, `make install-xen` will place the resulting binary directly into
> >  the EFI boot partition, provided `EFI_VENDOR` is set in the environment (and
> >  `EFI_MOUNTPOINT` is overridden as needed, should the default of `/boot/efi` not
> > -match your system). When built with debug info, the binary can be quite large.
> > -Setting `INSTALL_EFI_STRIP=1` in the environment will cause it to be stripped
> > -of debug info in the process of installing. `INSTALL_EFI_STRIP` can also be set
> > -to any combination of options suitable to pass to `strip`, in case the default
> > -ones don't do. The xen.efi binary will also be installed in `/usr/lib64/efi/`,
> > -unless `EFI_DIR` is set in the environment to override this default. This
> > -binary will not be stripped in the process.
> > +match your system).
>
> This behavioral change likely also calls for a ChangeLog entry, btw.
>
> Jan

Hi,
  I'm not familiar with the format/style of this file.

Could it be simply

### Removed
- ...current list ...
- INSTALL_EFI_STRIP environment was removed, xen.efi will be stripped.

?

For simplicity, should we always strip xen.efi and provide also
xen-syms.efi only if debug info is enabled?
It would probably be more consistent.

Regards,
   Frediano


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 14:21:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 14:21:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159948.1488200 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJBj9-0001h8-Rx; Wed, 12 Nov 2025 14:21:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159948.1488200; Wed, 12 Nov 2025 14:21: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 1vJBj9-0001h1-PH; Wed, 12 Nov 2025 14:21:39 +0000
Received: by outflank-mailman (input) for mailman id 1159948;
 Wed, 12 Nov 2025 14:21: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=Vb/2=5U=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vJBj8-0001eo-Hy
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 14:21: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 e30d7cb0-bfd2-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 15:21:33 +0100 (CET)
Received: from BL1P223CA0016.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:2c4::21)
 by MN2PR12MB4144.namprd12.prod.outlook.com (2603:10b6:208:15f::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Wed, 12 Nov
 2025 14:21:28 +0000
Received: from BL6PEPF0001AB56.namprd02.prod.outlook.com
 (2603:10b6:208:2c4:cafe::8f) by BL1P223CA0016.outlook.office365.com
 (2603:10b6:208:2c4::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.16 via Frontend Transport; Wed,
 12 Nov 2025 14:21:28 +0000
Received: from satlexmb07.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.9320.13 via Frontend Transport; Wed, 12 Nov 2025 14:21: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; Wed, 12 Nov
 2025 06:21:25 -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: e30d7cb0-bfd2-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=f9aAqzh4bE9SCrAnbt2Mx+Aj63gDWnFB7NmtrDnSCCGjYVmNlwv+/zmsNmqU3RUxOQgtRhluFVMZhJ4pJXEGui5BiJbfjzrA1rRricZhHviU2gUD/Byt6KXMZNjjb00UpFIZAcc/5urUQs2fobD6uppdVUWtIJWFphRjIjQD/BUKEJwMBMJCyuAxZhUk7ebiTA9vAXGeCqIOEgMEjwSMfkkgHuP9v9wNa+qrFMid/PS/XaJKi/MvHgfHYhf8u4xc+71lmXpdZchgbKufIc3/ButIXXb/mhzCu5wcEa1XCjb68dh6b7aEex1nD+Ravk4NQj1rngHhfrEWKC+SjB5trw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Zq4BWceTs99e/JZyZudkANMJgFrYNQEqP4+vSrvNoHM=;
 b=yS61L9SAVMM9nHP8WVKhnsDVse4zJGdZQsPEPU5JuliSM1udRo17LrkMvzzW5nP3hjeoM35uDQKSuEqWbTvbfy9Q8zi1Sr1NPlWbGP4NlIjiHpnnjqs/saqO3ezxlDLjErSJJct1DZp+BoDDaW+CP6xf7dFtCd2d1/0Rcl8kh1Q+qjZ50r2iXVpku7pyIZCkDRPY9PDiYdjGhzN6x+SCjYW1Z64zT/BHFNeNihW1fe0yc8LEtiXJGtjCykXs0wrRAQdq/Ivxe4zonhqI6rmBpLE7vzf3gLy8oB1asWEuB0mTBOpHbWZYSvbTreAJZsVXU/zgaJcIbUY2SEvF35UoQw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=vates.tech smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Zq4BWceTs99e/JZyZudkANMJgFrYNQEqP4+vSrvNoHM=;
 b=EESgSUNnRMgd5YKjV3dKZbSm3uGs07quDgugmxLyIK2XR5QyBOD1fMlAog0N1eSGyrO+rY05l7NeE1q3oBI9t3EUqFjbvvNUnYRAXOYufIRFshdhBW5dDqyd18EuaT35Yl7mq4HbazstIFIpkPGdcE+tZXhNy4y7qmoajL/BTlU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 12 Nov 2025 15:21:24 +0100
Message-ID: <DE6S77WBXSMS.1P0AZU6C9TL3E@amd.com>
Subject: Re: [XEN][PATCH 0/5] x86: pvh: allow to disable 32-bit (COMPAT)
 interface support
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Teddy Astie <teddy.astie@vates.tech>, Grygorii Strashko
	<grygorii_strashko@epam.com>, <xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Jason Andryuk <jason.andryuk@amd.com>
X-Mailer: aerc 0.20.1
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <fa98c390-db6a-4b3a-b34c-820625f139a4@vates.tech>
In-Reply-To: <fa98c390-db6a-4b3a-b34c-820625f139a4@vates.tech>
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: BL6PEPF0001AB56:EE_|MN2PR12MB4144:EE_
X-MS-Office365-Filtering-Correlation-Id: 56922eeb-52c9-4e42-dec2-08de21f6c4b9
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?YjVINDNiUHNYaCtlUklKQlBReUVBQ2lDQnZMT1lUbENydVZBVXVTS2dXV3Zl?=
 =?utf-8?B?R1VqRXhFMTRjRHkxeCtHRk9DS1krWjI3WURpSDNmS05qK3dvVGdGZi85MGFH?=
 =?utf-8?B?SUxweHlVV0E2ck1vT3RsUllmcloydGxIaEtzZy8zSnJyY3Z3S1VVdmdSZDB6?=
 =?utf-8?B?YU5QcUFKNnZUQU5hMktNT3pST1BPV080MURROTdGMWZCQSsxSGx2UWEyTFp6?=
 =?utf-8?B?L0NoYU5semZpZzdoblMxWDgrVkVJdXlEV3JmTkxTN2lKYmpuMVNNcURwNWdJ?=
 =?utf-8?B?OXNGZ252bzdsSHY4bGZTY0k5NE15TUpENmdWRkRyVjdaRm02T2QvS2oxNEFJ?=
 =?utf-8?B?Mm16MUJHaEFSckhhTjZFR0t2Q0QrVS91aHR5aWZkdnBDeTBCYWhPVy94R255?=
 =?utf-8?B?bnpSY2ZYMDg5TUFyQWhBeVdLcm5HMDU2M0FQTXlZakRoQWtMR2MwbldnTjVx?=
 =?utf-8?B?Znk2OW5RMTErYnRVV05ESTNLMzVzT0dXV2RQcWNZS3E4VzdQV0VyZk80UW5u?=
 =?utf-8?B?ZEg4QlRTdVIzd3JKVHhWTEtxeUhzVG4wWERsQjZ2c3Zzc2RKVDFYSkhWL3Rn?=
 =?utf-8?B?Uk1OMStnYStQQXA2d08zbEZWejBOS1VtWUoxMzBsejh2Qm5KOEQ3elRQU05O?=
 =?utf-8?B?Y041elBSU0RGQSt1OUgxSFcrT1FaaVVWRVJEemFsMk5hQllkZFY4eU5PazNq?=
 =?utf-8?B?dldScmlmL1hUNERXY0Nwdk93ZnJnazFyUDBnVUx6ejd4SGdtSU5veVJ5d2xr?=
 =?utf-8?B?QTMwb2dxdktXYU1WMWNDM3FjZEJOKytPVG1zVlFIT0VleUpoSDlxeHNjZCtX?=
 =?utf-8?B?NmkwdjUzNmlYNDBwMFRHMGZBMEt5eVlJaE5KT1FYV1RUU0E0aHBqQjk0a2Ny?=
 =?utf-8?B?QVdHYUl5bWZVditRa3g3VE1MZlVzZ3hsSHdKc09Ud0EzSmcxeU5jdjNaQnNx?=
 =?utf-8?B?b1FJdGlqQzZhcnk0NWNySDROdklXR1c3bmU3bzI0OTFTZSt0em9mbzJxMlM2?=
 =?utf-8?B?TVBtVUZMVjR0S3ROYXF0OWM2TXRlV29xaWZSSDh4NzlvckEwUk4rYnRFR2Zv?=
 =?utf-8?B?WHZUUGswa0gxRW1uQVdiaWw1ODBMQnh5cjI2MmdVdmlYK1dqNmhDc0hTRnZk?=
 =?utf-8?B?SThyZE5vSjhrODMwSFFlRmhBK1E4QkcwKzg4SCs4ejJSaFptMlFvODlzUUhs?=
 =?utf-8?B?YUNSQkFVUk5xOVNlZW02UUtiTFVVZjhKemN1V3VKNnIvV2RMaXdjN1Q0Uk03?=
 =?utf-8?B?QVg4WHdIMjFNK2VOcnJQWUtWbTBUekNMd1pBZXN0djNrRjBkREtCNUNoVzdj?=
 =?utf-8?B?eEVEbVFMeVJGRmhtREZSWnJDMlN2dDdjaGFZMTl4eC9TY0R4KzVmU0crdVlu?=
 =?utf-8?B?c2duQlpta0xyVEtBOHFkK2MvQ3grTHk4WkQvU3oyMnZyOURZSXY1cDlia2px?=
 =?utf-8?B?cHV1Z2hYM2NHeGJ6L21nTVJ4c3dncVRvaFY3S1JyZHgxTzVBSlpaUmdKaXJ1?=
 =?utf-8?B?TDV3NlFrSktuM0ZVNEhRay9pbExqR0VsRTZQOG5pTndXSE9KOWJwdUNGMzZI?=
 =?utf-8?B?ZWpweUVlK3UyOW4vUzk4MlNXV01MVHhyZDZyNlJYL3J4R1BwL0lHNlJVbElu?=
 =?utf-8?B?MU54NnBqKzdJYWNuMFY2OHI5ZTlqVFhJWTMweWpTN2RBdEh6bCtvZ0xIbFJV?=
 =?utf-8?B?V1FmY3h2ODB6SWMybDE0R1piSDhKYWRPUnVkMkdzdklTdzFFOXJJR1VFMkw4?=
 =?utf-8?B?dFZPVENOc3BOUXZoMGdhT1lLWFNYYUlFTVpuZUpiK01BY0RZRUttUU9acHNQ?=
 =?utf-8?B?QTNEWjZiOElINnRkUERYc204cXc3Qy9abUxzSlM4eWFDMkxNUUN5VCtxaCtV?=
 =?utf-8?B?dnVmaVpNSzlpK3VNODdIZkJyME9VMWczY1NqUGJpZ0ZiTFpCN2QwT29jNTM4?=
 =?utf-8?B?WXFWNWJ1djRNOGRUeUhxcDhJMjR6TFNwM1RibWFGL1ZWaVRvODJBNjNheTFs?=
 =?utf-8?B?UTg4WUZTRnhCVy9hZUc0ZExQQ1BpMlc3SDFpSnAwb0U5S2hVTU90RHQ3a090?=
 =?utf-8?B?QjNPM2U1VERsdHYzVHl2ZEpGMklOVEJyUGdib0Rzd0hEb3JGdWlrMk5wcmZG?=
 =?utf-8?Q?S/ls=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 14:21:27.8917
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 56922eeb-52c9-4e42-dec2-08de21f6c4b9
X-MS-Exchange-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:
	BL6PEPF0001AB56.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4144

On Wed Nov 12, 2025 at 11:58 AM CET, Teddy Astie wrote:
> Le 11/11/2025 =C3=A0 18:55, Grygorii Strashko a =C3=A9crit=C2=A0:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>=20
>> Hi
>>=20
>> This series introduces possibility to disable 32-bit (COMPAT) interface =
support
>> in the following cases:
>>        - Only PVH domains are used
>
> I assume this one is mostly due to hvmloader being today running in=20
> protected mode 32-bits rather than a limitation "HVM" itself. I don't=20
> think of anything else preventing HVM (with 64-bits guests or 32-bits=20
> ones without Xen support) from working with COMPAT disabled.

It is indeed because hvmloader makes hypercalls. Otherwise HVM would work t=
oo.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 14:28:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 14:28:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159972.1488220 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJBpG-0002pm-Mb; Wed, 12 Nov 2025 14:27:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159972.1488220; Wed, 12 Nov 2025 14:27:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJBpG-0002pf-JJ; Wed, 12 Nov 2025 14:27:58 +0000
Received: by outflank-mailman (input) for mailman id 1159972;
 Wed, 12 Nov 2025 14:27: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=Vb/2=5U=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vJBpF-0002pU-5o
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 14:27:57 +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 c5bd1dab-bfd3-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 15:27:53 +0100 (CET)
Received: from SN7PR04CA0208.namprd04.prod.outlook.com (2603:10b6:806:126::33)
 by SN7PR12MB7202.namprd12.prod.outlook.com (2603:10b6:806:2a9::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Wed, 12 Nov
 2025 14:27:48 +0000
Received: from SN1PEPF000397AF.namprd05.prod.outlook.com
 (2603:10b6:806:126:cafe::2) by SN7PR04CA0208.outlook.office365.com
 (2603:10b6:806:126::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.15 via Frontend Transport; Wed,
 12 Nov 2025 14:27:46 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF000397AF.mail.protection.outlook.com (10.167.248.53) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Wed, 12 Nov 2025 14:27: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, 12 Nov
 2025 06:27:46 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c5bd1dab-bfd3-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WtQ5wVd9yZEiSZheeyJ5pKbr1U2RujyAFRCT5LaoQcJqOzaxWqdJCZ+iqrmOFWowS3rrgwOjvHPD9aanikyU/urKjE9lLLQSpV7a0CaHN85hYXl361iO79iwi6xGXEcUMU6fPIKk6dkFvidAktubFsZJ13PBXxffx/7z9YUfTafmgr2BLyRYxJWhQTEo/3xxqW/2fW3o/S6zA8zVhlKpQHbC7LzsC2dYuek0UrFjJruSV3Eh1vXBo+vE9du4NHGy9uVkNmmIM3mtH52DR8xNyPwuBbR/0Hsay6rbVLoizTUn6q5BlkHjriuNLavshYRr2kPZBsVnVFBBrokE/Y2Iaw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wGuOmNpP5yyZ1l/CrpgcvPM7sz1OuSZiU/VII2toOT4=;
 b=mTJYomaYpxU9Pw4x93QhH4Iozy09TwmWmoXhiO6HvHzoCd/V+kC99tCRX+tGAhOLXWwZfcGdOci6YswQZRUpcrfEhEg2MaGP0Myq2L7cOPwKE9P+8Bzj9l6HAPYNIg2NLirUDHhQvmEErl/qgbHtwa5975wCz9X/A9qWDJlU/8Y6ZHbF5Nw9HTB0P0C/XKbF48FSGdKEkXdoLE4Z0C8gLg5Cf5FDpQneE7l9XDbFgE/NCWVedoeGyHDfcWW3j9h+iz6CH2S/Qg8cHYZgyt2RdLBJUQrFSCkhuo0Y+MBwnqrR19swxdjCUCc1/6Oq9mgv3+ffOchBk3LFo79XXKmkXg==
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=wGuOmNpP5yyZ1l/CrpgcvPM7sz1OuSZiU/VII2toOT4=;
 b=SYaLcMTNHkdW9MgBuq7lAxSk4QgWKdPEq2EA0UWaqh/v25ku+SOEWNqJuKb1zBU3WdmC+Kc9EAWg5R/wR4u1TX+OCyXqEhRe6TjoEM/IHirLZWK/JeDnlF2C/uJ4LdI8uikL3oodOyfosbYhcuf1O2+t6ymOjalktt0ak1dVbFk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 12 Nov 2025 15:27:45 +0100
Message-ID: <DE6SC2RG21IK.20ONZLHO187R5@amd.com>
CC: Sergiy Kibrik <Sergiy_Kibrik@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Paul Durrant <paul@xen.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: Re: [XEN][PATCH v7] x86: make Viridian support optional
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
X-Mailer: aerc 0.20.1
References: <20251031161716.1222956-1-grygorii_strashko@epam.com>
 <a4d3eb8d-17ea-4d3c-87ef-ba5c3477b8c3@suse.com>
 <edb590e4-340d-4a0f-9543-0dfdcc7b54b1@epam.com>
 <210edee7-8525-47a9-8191-ea7d94db5fce@suse.com>
 <0a5af540-214d-46cc-93e5-f0266bb79064@epam.com>
 <b829a9dc-ed1d-45f9-a56f-ec288e0d5523@suse.com>
In-Reply-To: <b829a9dc-ed1d-45f9-a56f-ec288e0d5523@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: SN1PEPF000397AF:EE_|SN7PR12MB7202:EE_
X-MS-Office365-Filtering-Correlation-Id: 5fb78638-0daa-426b-226e-08de21f7a77e
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?eGh3eitkZEVlb2NZUnlNTGRQSTZVK1ZtQXlQRGVSRGZDMGMySWxYMTQ2ZEx6?=
 =?utf-8?B?M0h1RDQ4OXJ1RVJQODNUKzFUL3I5L1RPUmpIVm1Eb2JSRnhEbmE0bTltOHNp?=
 =?utf-8?B?SVZVcG92K3Jsc2kwdWNBcjJwb0dUQXh0dEgxaEJDbFZmaHdmQitLY2JxRDkz?=
 =?utf-8?B?b0tIYi9ZN1NNNHVMWlJSTWFKdlZHR3gxOXd0eDhkbGx2TG9PMGI4cDNOMHhP?=
 =?utf-8?B?N0FjUUtJNmV0ZkZTM0NlVVV6bTduNUxONEo0dFdtT2lqYVBKY2lYSGgxQ0FF?=
 =?utf-8?B?bUY2MHVOWnBLbm5qbFk3M2ltcEl1WXRnbDl3U2xDTjFrT1YxMWdQbW9ZbnJ1?=
 =?utf-8?B?cWlabnBuOXZRS0ZYR0ZzV3ZrOFV6Vlo5RElaQWJncnFJTVhNLzhZYnp0NmlX?=
 =?utf-8?B?L2tHSE5OY2NORzFUSGJBWHNGdlRoWXRoeU9udGQ5K3JxS1ZwdjhrMWVXUWY5?=
 =?utf-8?B?M25TRW0wWVNDclcrQ21OZytOYW5Sbk5oSmtTMmtld25wU21sUmVkSkhpV3JT?=
 =?utf-8?B?bXZEMXcxTkZPeTB1US9xZy81R1lZdXRkbC82QVRqOFlxQjBUaHNpWERvSVhs?=
 =?utf-8?B?ZGpydlFraWJRMmRPSElZNkkwQ0t1NkViY09jeXM1RW10eWY5aUV6eFhnNWF0?=
 =?utf-8?B?TVplR1dIdGVkeWVMdGorcmZkR2VnTWpJTDVpZjh6Mi9KKzdIa2pGTTc5ZVhF?=
 =?utf-8?B?NEpUK1ppclE4RWp1M0x1NGE2aFhOUGxLWWh6V1Z2RTBpbXAyV01CMWd2VjI0?=
 =?utf-8?B?b1R0alh3LzBaV0c2R0lUQmg2Y0NueXRxZ1Q0T1BTTnF1QW1VLzFWZTZHY3h6?=
 =?utf-8?B?N0dzazlZUjRwS2NvbjBJV0NhTTM5aDJ0bWsxbDRVL1dQbHRhSlB4TFRib0ow?=
 =?utf-8?B?aVhTVjFtOWlNK3NlZFlXTTZXWnJwanVTRDBpZ0U0a3IzclR1dzRPandKd1Nj?=
 =?utf-8?B?N3JkcVFTdC85M05zbzN6SVlpclJ0RXZYZCtHeWxnTXhHZHc2Y3oxQXl5NDkv?=
 =?utf-8?B?cGp6eFlHaG5vN1pEc1NCaHU1d2FIcHU0SVNJRitQaTNtTzl1T1Jjd2FiMEhQ?=
 =?utf-8?B?ekRrTE9Sd0VvZHBCYWFVc21PN0ZSWWpnSVVJa1lxT2RldzlRc1pTSktnc1ha?=
 =?utf-8?B?dEJoZ0p6aHJheEZSakM4K2dLUFViL2xrN0o3cmRoZmJ3eUJqSjgweXVDTnpB?=
 =?utf-8?B?NTYyNmRKLzhoQ0xrWFk0a0NyVHZzOXZVQm1YSTRRVE95SnlrN25OWUQzUWkr?=
 =?utf-8?B?YXNMbmNPc3pvc2hkS2tuOVZiK1A4YnVuM1NYM2VOYjNOVUpiT0EwYW1OZDJv?=
 =?utf-8?B?TWgyeGFBaWhkSmpaYU9ZR3N0WDFsanpMeXE5amxRYWlya29KSEh0bmRPMGlY?=
 =?utf-8?B?T3lLR2NjVUhGbjBhMWplUzVnTzZkdTR1T0xQR0NqR0xMUW04bUE0c0wvZTJr?=
 =?utf-8?B?c2tDQUtYeWxoVFpvM0dZeW4yRGFhVHFMWVRCWUJ5VVQvc016Mkt4ZWtNOGZu?=
 =?utf-8?B?R01ocFVab25ZZ2lKbjBrWmZoSEF4aGM0NHVob2ZQZm5yZ2V6aFZBMGtYZ2tv?=
 =?utf-8?B?MTVYTTNaUlc2ODhjaVlNLzZUc200ZldUR3BScUh1UTlNQXozd2dvSHdsSC9s?=
 =?utf-8?B?U2dlR1hLS2ZXd2hWNm5DbWNjUEdFR3ZCbXVKNFRTUmxGQTAvSzhmdVFTUkhr?=
 =?utf-8?B?Y1dmWE9QdFBOQXBlTVZQUWhiR3JrdEFCeXNWc2t5SFZublNLVHo0NVY3RXpB?=
 =?utf-8?B?OVVKNzJSV3g2Z05LNnNhRE1DNVVhaTQ5V1lJV3cwN1RDd083Q3k0em1ETDBH?=
 =?utf-8?B?UjcrVitGZlpPNzNsNzFvZlY3eUtrc09JYU5UdW9PVUpCQVVmbndBS3AwTjRC?=
 =?utf-8?B?NVc5Z1NlM3pMT1hlVFdYUmRYM05EVWxYMjZlSnVVMEM2V3ZhSm1nNnpyWno4?=
 =?utf-8?B?ZFZoVUYvSUdRVmpqVnBKTWd1U3pxR2xwVXBBbVNDQWk4WUliT1BTTDZaZHAv?=
 =?utf-8?B?UEorVXZiZjlLdGZPTVpGUkVNanFmZ0FON0RHdUcza2E2eFRVUU9jTjNzQUJQ?=
 =?utf-8?B?Z2NiYjNYOEhNL2xsOWIzNlhFTzIvUHpFbHZrM212Q3pnWVE3Y1NMQStqQ1dW?=
 =?utf-8?Q?cGTs=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 14:27:48.3141
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5fb78638-0daa-426b-226e-08de21f7a77e
X-MS-Exchange-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:
	SN1PEPF000397AF.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7202

On Wed Nov 12, 2025 at 7:40 AM CET, Jan Beulich wrote:
> On 11.11.2025 19:25, Grygorii Strashko wrote:
>> On 06.11.25 15:47, Jan Beulich wrote:
>>> On 06.11.2025 14:42, Grygorii Strashko wrote:
>>>> On 06.11.25 13:35, Jan Beulich wrote:
>>>>> On 31.10.2025 17:17, Grygorii Strashko wrote:
>>>>>> --- a/xen/arch/x86/hvm/hvm.c
>>>>>> +++ b/xen/arch/x86/hvm/hvm.c
>>>>>> @@ -4231,8 +4231,9 @@ static int hvm_set_param(struct domain *d, uin=
t32_t index, uint64_t value)
>>>>>> =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 rc =3D -EINVAL;
>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 break;
>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 case HVM_PARAM_VIRIDIAN:
>>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( (value & ~HVMPV_fea=
ture_mask) ||
>>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 !(value & HVMPV_base_freq) )
>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( !IS_ENABLED(CONFIG_=
VIRIDIAN) && value )
>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
rc =3D -ENODEV;
>>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 else if ( (value & ~HVMP=
V_feature_mask) || !(value & HVMPV_base_freq) )
>>>>>> =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 rc =3D -EINVAL;
>>>>>
>>>>> I find the check for value to be (non-)zero a little dubious here: If=
 any caller
>>>>> passed in 0, it would get back -EINVAL anyway. Imo -ENODEV would be m=
ore suitable
>>>>> in that case as well. Things would be different if 0 was a valid valu=
e to pass in.
>>>>
>>>> The idea was to distinguish between "Feature enabled, Invalid paramete=
r" and "Feature disabled".
>>> "
>>> But you don't, or else the addition would need to live after the -EINVA=
L checks.
>>> I also question the utility of knowing "parameter was invalid" when the=
 feature
>>> isn't available anyway.
>>=20
>> My understanding here - I need to drop non-zero "value" check.
>> will be:
>>=20
>> =C2=A0=C2=A0=C2=A0 case HVM_PARAM_VIRIDIAN:
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( !IS_ENABLED(CONFIG_VIRID=
IAN) )
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 rc =
=3D -ENODEV;
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 else if ( (value & ~HVMPV_fea=
ture_mask) || !(value & HVMPV_base_freq) )
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 rc =
=3D -EINVAL;
>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 break;
>
> Yes, or alternatively
>
>     case HVM_PARAM_VIRIDIAN:
>         if ( (value & ~HVMPV_feature_mask) || !(value & HVMPV_base_freq) =
)
>             rc =3D -EINVAL;
>         else if ( !IS_ENABLED(CONFIG_VIRIDIAN) )
>             rc =3D -ENODEV;
>         break;
>
> Both have their up- and down-sides.
>
> Jan

We should aim for Grygorii's form, imo. If anything because it eliminates
the second else-if on !VIRIDIAN, leading to a marginal binary size reductio=
n.

There's no value in validation when viridian support just isn't there.

Cheers,
Alejandro



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 14:51:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 14:51:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1159989.1488229 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJCCM-00079m-Ja; Wed, 12 Nov 2025 14:51:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1159989.1488229; Wed, 12 Nov 2025 14:51: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 1vJCCM-00079f-H1; Wed, 12 Nov 2025 14:51:50 +0000
Received: by outflank-mailman (input) for mailman id 1159989;
 Wed, 12 Nov 2025 14: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=wyU1=5U=bounce.vates.tech=bounce-md_30504962.69149f01.v1-52d6befa532c45509e8e4ebbc4f991d1@srs-se1.protection.inumbo.net>)
 id 1vJCCK-000787-Qo
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 14:51:48 +0000
Received: from mail179-26.suw41.mandrillapp.com
 (mail179-26.suw41.mandrillapp.com [198.2.179.26])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1c4f7140-bfd7-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 15:51:47 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-26.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4d65vj35BWzKsbYwq
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 14:51:45 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 52d6befa532c45509e8e4ebbc4f991d1; Wed, 12 Nov 2025 14:51: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: 1c4f7140-bfd7-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1762959105; x=1763229105;
	bh=IuOrOxBNA8cMhpMdlUPw8GDI0O10TQFvQKvWOyS1SPc=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=DFOEYkAh9ebmUVJ9eN0DjxpnxfsRRVOlT/FCgmV+NqIm8e5iwGgSGgOgIEeYAyfMg
	 Q29kepInuYfrduAA1CHjexzUTNA2tNHses6Wfp/j193VbDm3LgRXLpF+iTzCcbl7Kk
	 Ae0Zo9gHO1NWWZCtv6x1iUM021qkBi9gnoLMvwpf1HY0BcbwR7bQCXzLrk6RLXDS1K
	 IPPMiqpI82dhI997Hr4BjYt92h4BbYUVuTm2hnVtba6bHH6muzxDIl434KEeDyE/80
	 EloVSX2X1E6830WrcjPKxM+DKBNLHcYxOkAOGn5BaBmyeoXV1IWMFYJ6Xw8eEYZJYI
	 /URQsOeBse6ww==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1762959105; x=1763219605; i=teddy.astie@vates.tech;
	bh=IuOrOxBNA8cMhpMdlUPw8GDI0O10TQFvQKvWOyS1SPc=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=OEQ1vAPj5iNee8+/+Br36Vwy6Kg/8lck2j+aHURrG2pkgCA1w3c1kB5W9lsNgRROW
	 ArI7R0t5jyKF8WERYiy7rT6Qipcxfp1ugIwbEkpwmj+zoEzmlR/Dax7ldY5R20bGGp
	 CZUrMrRTdAJM5VjgwzviSV1Iu5zRWHOFe21Rfl1xCT+dMwPKoDxuLq4/bhHTDnG5Ih
	 umLB+eyaxEaaoLQ/CDBEpjCRSJ6cvehJuLmA9xY+GRFx47qgxgZsxl9r61VJwMJe06
	 Vz/eunXzEfHMW7yx8OeiPP+NoA6AU+KpEykoxgYYquHggtCdXMAP8f6eeJA5KGZOwW
	 3rgI/KBl3dx/Q==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=20v2]=20x86/hvm:=20Allow=20pre-enabling=20x2apic=20mode=20on=20BSP?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1762959104208
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Anthony PERARD" <anthony.perard@vates.tech>, "Juergen Gross" <jgross@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Jan Beulich" <jbeulich@suse.com>, "Alejandro Vallejo" <alejandro.garciavallejo@amd.com>, "Grygorii Strashko" <grygorii_strashko@epam.com>
Message-Id: <0cb4d1f91212a65baf924ed0ef825d8adb4b5423.1762958551.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.52d6befa532c45509e8e4ebbc4f991d1?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251112:md
Date: Wed, 12 Nov 2025 14:51:45 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Introduce a new option to start the BSP vCPU in x2APIC mode instead
of xAPIC mode. Expose this in xl through a new "x2apic_mode" option.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Grygorii Strashko <grygorii_strashko@epam.com>

Later on, we could consider with this option to use x2APIC ACPI
tables instead of xAPIC ones.

There is also some room into introducing a new Kconfig option to
only support x2apic mode, which would change how the "Xen default"
would behave.

changed in v2:
 - only pre-enable instead of forcing
 - use domain builder to pre-enable instead of introducing a new domain creation flag

v1:
- https://lore.kernel.org/xen-devel/d498a50f6187b362ac5da3c6a7a7c348f35dc4b3.1761761288.git.teddy.astie@vates.tech/
---
 docs/man/xl.cfg.5.pod.in         | 16 ++++++++++++
 tools/include/libxl.h            |  8 ++++++
 tools/include/xenguest.h         |  4 +++
 tools/libs/guest/xg_dom_x86.c    | 42 ++++++++++++++++++++++++++++++++
 tools/libs/light/libxl_types.idl |  1 +
 tools/libs/light/libxl_x86.c     |  4 +++
 tools/xl/xl_parse.c              | 11 +++++++++
 7 files changed, 86 insertions(+)

diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index ad1553c5e9..0f7a89fe92 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -3198,6 +3198,22 @@ option.
 
 If using this option is necessary to fix an issue, please report a bug.
 
+=item B<x2apic_mode="MODE">
+
+Sets the x2apic mode of the domain. The valid values are as follows:
+
+=over 4
+
+=item B<"default">
+
+Use default Xen LAPIC behavior.
+
+=item B<"pre_enable">
+
+Initially enable x2apic for the BSP of the domain.
+
+=back
+
 =back
 
 =head1 SEE ALSO
diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index bc35e412da..9850e8aa41 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -1537,6 +1537,14 @@ void libxl_mac_copy(libxl_ctx *ctx, libxl_mac *dst, const libxl_mac *src);
  */
 #define LIBXL_HAVE_XEN_PLATFORM_PCI_BAR_UC
 
+/*
+ * LIBXL_HAVE_X2APIC_PREENABLE
+ *
+ * libxl_domain_build_info contains a boolean 'arch_x86.x2apic_preenable' field
+ * to initially set the BSP LAPIC in x2APIC mode.
+ */
+#define LIBXL_HAVE_X2APIC_PREENABLE
+
 typedef char **libxl_string_list;
 void libxl_string_list_dispose(libxl_string_list *sl);
 int libxl_string_list_length(const libxl_string_list *sl);
diff --git a/tools/include/xenguest.h b/tools/include/xenguest.h
index c88958faa9..408a0c77e8 100644
--- a/tools/include/xenguest.h
+++ b/tools/include/xenguest.h
@@ -223,6 +223,10 @@ struct xc_dom_image {
     /* If unset disables the setup of the IOREQ pages. */
     bool device_model;
 
+#if defined(__i386__) || defined(__x86_64__)
+    bool preenable_x2apic; /* 1 makes x2APIC enabled initially, 0 keeps default Xen behavior */
+#endif
+
     /* BIOS/Firmware passed to HVMLOADER */
     struct xc_hvm_firmware_module system_firmware_module;
 
diff --git a/tools/libs/guest/xg_dom_x86.c b/tools/libs/guest/xg_dom_x86.c
index a82b481a12..43ada5a6ac 100644
--- a/tools/libs/guest/xg_dom_x86.c
+++ b/tools/libs/guest/xg_dom_x86.c
@@ -58,6 +58,9 @@
 #define MTRR_TYPE_WRBACK     6
 #define MTRR_DEF_TYPE_ENABLE (1u << 11)
 
+#define APIC_BASE_EXTD   (1UL << 10)
+#define APIC_BASE_ENABLE (1UL << 11)
+
 #define SPECIALPAGE_PAGING   0
 #define SPECIALPAGE_ACCESS   1
 #define SPECIALPAGE_SHARING  2
@@ -1131,6 +1134,45 @@ static int vcpu_hvm(struct xc_dom_image *dom)
         }
     }
 
+    if ( dom->preenable_x2apic )
+    {
+        struct {
+            struct hvm_save_descriptor header_d;
+            HVM_SAVE_TYPE(HEADER) header;
+            struct hvm_save_descriptor lapic_d;
+            HVM_SAVE_TYPE(LAPIC) lapic;
+            struct hvm_save_descriptor end_d;
+            HVM_SAVE_TYPE(END) end;
+        } lapic = {
+            .header_d = bsp_ctx.header_d,
+            .header = bsp_ctx.header,
+            .lapic_d.typecode = HVM_SAVE_CODE(LAPIC),
+            .lapic_d.length = HVM_SAVE_LENGTH(LAPIC),
+            .end_d = bsp_ctx.end_d,
+            .end = bsp_ctx.end,
+        };
+        const HVM_SAVE_TYPE(LAPIC) *lapic_record =
+            hvm_get_save_record(full_ctx, HVM_SAVE_CODE(LAPIC), 0);
+
+        if ( !lapic_record )
+        {
+            xc_dom_panic(dom->xch, XC_INTERNAL_ERROR,
+                         "%s: unable to get LAPIC save record", __func__);
+            goto out;
+        }
+
+        memcpy(&lapic.lapic, lapic_record, sizeof(lapic.lapic));
+
+        lapic.lapic.apic_base_msr |= APIC_BASE_ENABLE | APIC_BASE_EXTD;
+
+        rc = xc_domain_hvm_setcontext(dom->xch, dom->guest_domid,
+                                      (uint8_t *)&lapic, sizeof(lapic));
+
+        if ( rc != 0 )
+            xc_dom_panic(dom->xch, XC_INTERNAL_ERROR,
+                         "%s: SETHVMCONTEXT failed (rc=%d)", __func__, rc);
+    }
+
     /*
      * Loading the BSP context should be done in the last call to setcontext,
      * since each setcontext call will put all vCPUs down.
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
index d64a573ff3..9fdf89d88b 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -738,6 +738,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
                                ("arm_sci", libxl_arm_sci),
                               ])),
     ("arch_x86", Struct(None, [("msr_relaxed", libxl_defbool),
+                               ("x2apic_preenable", libxl_defbool)
                               ])),
     # Alternate p2m is not bound to any architecture or guest type, as it is
     # supported by x86 HVM and ARM support is planned.
diff --git a/tools/libs/light/libxl_x86.c b/tools/libs/light/libxl_x86.c
index 60d4e8661c..f9725f069a 100644
--- a/tools/libs/light/libxl_x86.c
+++ b/tools/libs/light/libxl_x86.c
@@ -555,6 +555,9 @@ int libxl__arch_domain_init_hw_description(libxl__gc *gc,
                                            libxl__domain_build_state *state,
                                            struct xc_dom_image *dom)
 {
+    if (libxl_defbool_val(d_config->b_info.arch_x86.x2apic_preenable))
+        dom->preenable_x2apic = true;
+
     return 0;
 }
 
@@ -818,6 +821,7 @@ int libxl__arch_domain_build_info_setdefault(libxl__gc *gc,
 {
     libxl_defbool_setdefault(&b_info->acpi, true);
     libxl_defbool_setdefault(&b_info->arch_x86.msr_relaxed, false);
+    libxl_defbool_setdefault(&b_info->arch_x86.x2apic_preenable, false);
     libxl_defbool_setdefault(&b_info->trap_unmapped_accesses, false);
 
     if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) {
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index af86d3186d..92bf9d2ad5 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -3040,6 +3040,17 @@ skip_usbdev:
                     "WARNING: msr_relaxed will be removed in future versions.\n"
                     "If it fixes an issue you are having please report to "
                     "xen-devel@lists.xenproject.org.\n");
+    
+    if (!xlu_cfg_get_string(config, "x2apic_mode", &buf, 1)) {
+        if (!strcmp(buf, "pre_enable"))
+            libxl_defbool_set(&b_info->arch_x86.x2apic_preenable, true);
+        else if (!strcmp(buf, "default"))
+            libxl_defbool_set(&b_info->arch_x86.x2apic_preenable, false);
+        else {
+            fprintf(stderr, "Unknown x2apic mode \"%s\" specified\n", buf);
+            exit(EXIT_FAILURE);
+        }
+    }
 
     xlu_cfg_get_defbool(config, "vpmu", &b_info->vpmu, 0);
 
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 14:59:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 14:59:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160001.1488239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJCJz-0007oj-Ax; Wed, 12 Nov 2025 14:59:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160001.1488239; Wed, 12 Nov 2025 14:59:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJCJz-0007oc-8T; Wed, 12 Nov 2025 14:59:43 +0000
Received: by outflank-mailman (input) for mailman id 1160001;
 Wed, 12 Nov 2025 14:59: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=K5hw=5U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJCJy-0007oW-An
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 14:59:42 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 343d750e-bfd8-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 15:59:36 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b7321b03aecso165084966b.3
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 06:59: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
 a640c23a62f3a-b732c87ccecsm294976466b.12.2025.11.12.06.59.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 12 Nov 2025 06:59: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: 343d750e-bfd8-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762959575; x=1763564375; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=A/dH8/QgWa9rA2OhyZhjy+UHDXs/Z59JiDmNuh0l0S0=;
        b=gzpO7zcyKpEYywsbeF5DVUOuavjZ2MNsUmd27+Ilnt/qw2AHUh4boCA1EQTXg1/1xN
         9BWBiXgMqoEKlCq8kS8/StEgMUTex8zrCrcxpvWtLKGAoNgeiw5HfJQgJehbOTpMVe60
         HfMgs/NN5J+2sbxYJOJiFLcvSFta9TB2AH3Bnkw1Nfn8meRf08o7LnDykUXMa6R1H8e4
         4Iucq+RYMbWS0XU3ldCXZapryDaLWvwDD0oLhSmETpzhfs2ldQTaSl9XLsHni5sxvD12
         FtdafNCIk2a1JhUZ2rYOIEIji9oXOrKA+0pZhgQp1l8nGtuMDAfbaapLatzyMP+oT3px
         WeHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762959575; x=1763564375;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=A/dH8/QgWa9rA2OhyZhjy+UHDXs/Z59JiDmNuh0l0S0=;
        b=nbrlTqDf67lBUahzXwFrb684Cd0IV1EpyVzqYEuNHDNV3nrCjVziYF7iQ0Sth7GI9E
         sXcC7VZp7bpombO9D9LqzJren7s58MrpzqX9W+9KcCSuSsTKyZ9GLxBW30mgl4g1kKTM
         0dTxUgNXoBnDuhxgv2wYceEYXHCXceyK7gIDTYc9ZhJ/v1lBRQBYOKIfRgWi7K0CdHgE
         eaaRdxAdbYQtxU5pmmxIC3QQqiCDp58luGmXGYgtbkd6a4JnHfq54z4kPaPe0qqDs1t6
         LyNBlOUvacuMB6uNIP1JUME3nZ25Bagrp1i994kEt3svftk4Dgepw0Kh6AKHjmie3B70
         lxnw==
X-Forwarded-Encrypted: i=1; AJvYcCXFx32aDjsQu4lApWotjpBWePindtTXLRfIdCdekC2J2wR3ZnasyvqpzPMr5ucJy7cBS4r0xtCUStM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy13qlcFcYi0HiZ5RI6m4x8nMmnvv9f3LlWdwrzC3K2q6rz45xx
	m3HXeUbYGbm/6ZzC5sPrZwe4LQxlV/kd9nYGhBiAjfM71vpvk13EiC61yxdBvOODjA==
X-Gm-Gg: ASbGncut4CnfHQgtQYgOVHqhow9GG2NoxJrYyeQXngQrtHgzQiCyxpwrxBi7O9nsM3N
	KIJwpsCwKCWs9XotIZXMT90OUCUlK5YY83idaitC1UJdrnWKlOfj4EKjz/mzyuTXStPNt3OU6Iq
	t32wzoL03Xb7Dfuoc2Q8ZLpl310xl3sWNB3ZOyI40E00elRwgQO0ZTiGQnaNpP07FB7CIUEWMcQ
	Bk8O5V6T9B0DJxCl7qmGno27NQGVNKR5YJZG+5mcr5x4z1ozGK4GoYtmsRP2rZ5uW43vQu1ExUJ
	PFySaVwlhXN+2YCHpWMeTkq230ZhjR6i6LxNZtP3gTVeDl2qIQrFfkZ31QxUnI7aAd7wbyAXXsE
	oA+7D5Nkq4SiHRh55sBoBOuUmFVXUtzuhlmlowWjHvthaHMXy4aB+b8aWvzYg29n79WAqKkBbES
	YPnzFGL8hVC/s1QxHf/axguIf5Acx5YUIpErxbDl2k07T4HBHf+qKtDXRVTclxkkS1ySPXOiwTV
	DM=
X-Google-Smtp-Source: AGHT+IGI+QcuhMphF3ddWZMfZD+WKN9odj6d9GiQdijY5nO5oj/gNsQ73OfVqEdNOvMajw9W4fnLTA==
X-Received: by 2002:a17:906:794e:b0:b70:a982:ad71 with SMTP id a640c23a62f3a-b7331aabddamr354821366b.33.1762959575415;
        Wed, 12 Nov 2025 06:59:35 -0800 (PST)
Message-ID: <90b52fb4-aa65-4673-b386-cf08f332c5b0@suse.com>
Date: Wed, 12 Nov 2025 15:59:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] xen: Strip xen.efi by default
To: Frediano Ziglio <freddy77@gmail.com>
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <20251110153551.84813-1-frediano.ziglio@citrix.com>
 <4ac8284c-e7f1-4d6a-9241-d6c30155551b@suse.com>
 <CAHt6W4eJi2hPjwyd5nQM3RKi3+pyw7LMiZA9WQMdFa1vp0i+Rw@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAHt6W4eJi2hPjwyd5nQM3RKi3+pyw7LMiZA9WQMdFa1vp0i+Rw@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.11.2025 15:21, Frediano Ziglio wrote:
> On Mon, 10 Nov 2025 at 16:01, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 10.11.2025 16:35, Frediano Ziglio wrote:
>>> From: Frediano Ziglio <frediano.ziglio@cloud.com>
>>>
>>> For xen.gz file we strip all symbols and have an additional
>>> xen-syms.efi file version with all symbols.
>>> Make xen.efi more coherent stripping all symbols too.
>>> xen-syms.efi can be used for debugging.
>>>
>>> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
>>> ---
>>> Changes since v1:
>>> - avoid leaving target if some command fails.
>>>
>>> Changes since v2:
>>> - do not convert type but retain PE format;
>>> - use xen-syms.efi for new file name, more consistent with ELF.
>>>
>>> Changes since v3:
>>> - update documentation;
>>> - do not remove xen.efi.elf;
>>> - check endbr instruction before generating final target.
>>>
>>> Changes since v4:
>>> - simplify condition check;
>>> - avoid reuse of $@.tmp file.
>>> ---
>>>  docs/misc/efi.pandoc  |  8 +-------
>>>  xen/Kconfig.debug     |  9 ++-------
>>>  xen/Makefile          | 19 -------------------
>>>  xen/arch/x86/Makefile | 16 ++++++++++------
>>>  4 files changed, 13 insertions(+), 39 deletions(-)
>>>
>>> diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
>>> index 11c1ac3346..c66b18a66b 100644
>>> --- a/docs/misc/efi.pandoc
>>> +++ b/docs/misc/efi.pandoc
>>> @@ -20,13 +20,7 @@ Xen to load the configuration file even if multiboot modules are found.
>>>  Once built, `make install-xen` will place the resulting binary directly into
>>>  the EFI boot partition, provided `EFI_VENDOR` is set in the environment (and
>>>  `EFI_MOUNTPOINT` is overridden as needed, should the default of `/boot/efi` not
>>> -match your system). When built with debug info, the binary can be quite large.
>>> -Setting `INSTALL_EFI_STRIP=1` in the environment will cause it to be stripped
>>> -of debug info in the process of installing. `INSTALL_EFI_STRIP` can also be set
>>> -to any combination of options suitable to pass to `strip`, in case the default
>>> -ones don't do. The xen.efi binary will also be installed in `/usr/lib64/efi/`,
>>> -unless `EFI_DIR` is set in the environment to override this default. This
>>> -binary will not be stripped in the process.
>>> +match your system).
>>
>> This behavioral change likely also calls for a ChangeLog entry, btw.
> 
>   I'm not familiar with the format/style of this file.
> 
> Could it be simply
> 
> ### Removed
> - ...current list ...
> - INSTALL_EFI_STRIP environment was removed, xen.efi will be stripped.
> 
> ?

Not sure if it would better go under Removed or Changed. I'd also be a
little more verbose here, to provide context. E.g. "The install-time
environment variable INSTALL_EFI_STRIP is no longer supported, xen.efi
will is now always being stripped."

> For simplicity, should we always strip xen.efi and provide also
> xen-syms.efi only if debug info is enabled?
> It would probably be more consistent.

That's an option, I suppose.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 15:01:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 15:01:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160012.1488249 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJCLU-0000tE-LT; Wed, 12 Nov 2025 15:01:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160012.1488249; Wed, 12 Nov 2025 15:01: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 1vJCLU-0000t7-Iy; Wed, 12 Nov 2025 15:01:16 +0000
Received: by outflank-mailman (input) for mailman id 1160012;
 Wed, 12 Nov 2025 15:01: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=K5hw=5U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJCLT-0000sz-RK
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 15:01:15 +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 68159a8e-bfd8-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 16:01:03 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b72dad1b713so155595566b.2
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 07:01: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
 a640c23a62f3a-b72bf312240sm1631753366b.18.2025.11.12.07.01.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 12 Nov 2025 07:01: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: 68159a8e-bfd8-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762959662; x=1763564462; 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=lcaPRH865n6YAGwHTcQgRwG+65KxLjrfsA86bwzNm3E=;
        b=MmMlxDIEJJxsZAIwn1++sOG8U/3O9eE2lf3y8rxolcSuuJpHEz+1rz57wUcVoc73OT
         GQM5KM3r2QpknVxjt8oKHW9MGpTF+Bri+VwNrYRlnyWrKTjovfJ0YCfeLyzV8VuYo1mB
         dSDLyGf/J+687hPnidBeFND12pNUeas9A+UJgOzL2hzlsRwvsCoKyshrbFl9fMRG3sJg
         lR1QyswjeHbimziyEsVoZsqb/NuGtkRFnjlazMUc2lUNczdG+Qkiqq1+qQfHv37mS4js
         TCwvhHnwEGX+6ZG71tz5RWKCR9nH1JA8UvNCGguvd8+Ef9RPVFJVf0H7BacQnRU18GV/
         BkWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762959662; x=1763564462;
        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=lcaPRH865n6YAGwHTcQgRwG+65KxLjrfsA86bwzNm3E=;
        b=bWt1z+BD9/fgiAzqi7srBiEEyN3ZyhM8h9H5DkLtLg0F/r7fs8fiErzo4wjcHc8DBv
         yCX+VYoqjP/Xwm9NAUpze4h6hfSBSiV06sa4keYwZcRaVKIsC6ioIozvvzxEJ6daJV3y
         zSAmKUNuZuC4vtgG78Tn+FnptW8X/JT3ZOp8PRi9IvSxYzreCF8fubQoXvECAfgcujU/
         9PraxMpReHK2raoochxAwhhtvIErDSfPtLX6M88lebVLfAqrEe04GOQzu+Ne3mRhQ2yj
         5C+0dIpjToZ2wS7tq4esbiSr2txOuRy8t5raI0DpcTpt2JjQtVkrwFXJx53HBYSBTjxu
         dFuQ==
X-Gm-Message-State: AOJu0YzT/srblhN4i/wEbwm7RHnCdJvm2tMbPQZgooSbsU12dbd7L+7H
	sTekvXdWDgemA98qkHqWuT1ai4ZN14EWXvc1bBYyxmlbRBEQUzCtjU1j28BPRlUwrazsdUmx5/8
	pUJ8=
X-Gm-Gg: ASbGncvwXcMN1aX7HA1nApuqn/0ZHK1h0C6/v1waqR6DWzHOvUbS0zOD6GmSdGrCYC4
	3dF3SN6nlHOSJ5fD012WPFlhWkqJskLk2gmpecJk6Qd89pTYY7RfSULyHPA0QB8BdvM3Q+I2WBA
	852YMiX5TUEz71OkCalb73/BN5F/wGDYFoKy5VpGX1U3+6g0fgfbY58JCUjMmQ2+o8AOqIvo9Lv
	YTvP5qTlO6yhPsqhp7aaG/OvqBFLCl1x11/ck7aeP/Du0U7fG+EhPfv8iZHQyaPccQUNKHPl8SR
	6iyknpMPYbmM49IBlvgOoyix8AJjtRUmJD+zfNzKGy7B9dcR4Xg8Kmfeo06W734nE+u3t15D8KD
	0SdIHWUvM0qBkjMdTOQc1DJLocv60f19XNRTWWkZX1fbBRs9Xege19a5Z/SkDIW0Or3rui/TpAg
	kF/Jf+bDoJsR4v2giy1g3l4ByMnw3wp7N2YGkKy1Mg29I+Hz7582MRS5gP26tRwwQVsuHyi3TYe
	PI=
X-Google-Smtp-Source: AGHT+IFlETA1VKOaq8Ipa1G+1E6pA6c8HY80zxqJBNw3RggB/6c5oNFKedrzD8x5ltjiTtzGqwwAnw==
X-Received: by 2002:a17:907:3f23:b0:b72:b6ae:266 with SMTP id a640c23a62f3a-b7331970a45mr368430666b.10.1762959662132;
        Wed, 12 Nov 2025 07:01:02 -0800 (PST)
Message-ID: <14254365-bd77-4081-92c3-fcd0e649adae@suse.com>
Date: Wed, 12 Nov 2025 16:00: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] x86emul/test: extend cleaning of generated files
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Many *.c files are symlinked while building, so along with generated *.h
files they ought to be removed. Conversely $(TARGET) doesn't need removing
twice.

Fixes: cb4fcf70b2f3 ("x86emul: parallelize SIMD test code building")
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/tools/tests/x86_emulator/Makefile
+++ b/tools/tests/x86_emulator/Makefile
@@ -261,7 +261,8 @@ $(TARGET): $(OBJS)
 .PHONY: clean
 clean:
 	rm -rf $(TARGET) *.o *~ core *.bin x86_emulate
-	rm -rf $(TARGET) $(addsuffix .h,$(TESTCASES)) $(addsuffix -opmask.h,$(OPMASK))
+	rm -rf $(addsuffix .h,$(TESTCASES)) $(addsuffix -opmask.h,$(OPMASK))
+	rm -rf $(addsuffix .c,$(filter-out blowfish,$(TESTCASES)))
 
 .PHONY: distclean
 distclean: clean


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 15:23:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 15:23:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160025.1488261 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJCgZ-0004JY-Dw; Wed, 12 Nov 2025 15:23:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160025.1488261; Wed, 12 Nov 2025 15:23: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 1vJCgZ-0004JR-8k; Wed, 12 Nov 2025 15:23:03 +0000
Received: by outflank-mailman (input) for mailman id 1160025;
 Wed, 12 Nov 2025 15:23: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=Vb/2=5U=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vJCgX-0004JE-8o
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 15:23:01 +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 781946b2-bfdb-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 16:22:58 +0100 (CET)
Received: from SJ0PR03CA0362.namprd03.prod.outlook.com (2603:10b6:a03:3a1::7)
 by PH0PR12MB7816.namprd12.prod.outlook.com (2603:10b6:510:28c::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Wed, 12 Nov
 2025 15:22:53 +0000
Received: from SJ1PEPF000026C4.namprd04.prod.outlook.com
 (2603:10b6:a03:3a1:cafe::c) by SJ0PR03CA0362.outlook.office365.com
 (2603:10b6:a03:3a1::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.16 via Frontend Transport; Wed,
 12 Nov 2025 15:22:51 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF000026C4.mail.protection.outlook.com (10.167.244.101) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Wed, 12 Nov 2025 15:22: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; Wed, 12 Nov
 2025 07:22: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: 781946b2-bfdb-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dIYrsoJOO4JP/4NSViIpru5xAsxEHWwTQsIXXHpVijUqnWMMfFJpJTHXWS78ixkEAUi92NScp2inMUoNDOJGwOENCuVAP+cmtukqRJdm6LgL0FtBlMQvDoO5wlirYI50FSzjdH9FKQ5N+Ri2MfBiotRwYfZrLjRigQ7ZEvqgHcC5x0JkS5aQunpa9NOxy5le/UxwgwosJ8XGogO+DCNaQ1H58TFROtkl7tiWR0bTDP35VOaQS9ApNZDyc04lhII3Vz5Z6Cd4crJlmA7AqJdTLpq5Nm0hG4hO9BaPgMobJkOoQ/slEW7jRNA+bQ/rLx1gqcrtIDhYvrtyedlLMhUwjA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dX8R/jW53mU7NUcc3K2eBriT6B0nvPDZPTWwrtrazdE=;
 b=mGQNsdGRqqS2Xx0dV09m4QwIzY8cIgOfyFxeDeqtsnVmvQCRPHdBD6msSDkF67gTnOxPpCQoVJHU2K4tfstN8FKVgYeSg/B3O9S54S2aHw/eoqGxtJxKPaaFwPr3M9icTdwh/pzOJ1Gv4yErMz0ULEitbuBKgUj0ozeC9FZxzdUYxVleebPpjhdo1cn6xHaqhL2A+OHVYlMqvUuESq89ntlDpkgudkFetNvoUaGDMg7+bYTPfB2jSl471O/S76x8mRbfUx8+wlK40kJWhgKq8Rtr5OyasOGLZ6VvYEmqlWjlB6apZkKLezWGF9641xThBDzuDLEqwKkwFp/cVLUuyg==
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=dX8R/jW53mU7NUcc3K2eBriT6B0nvPDZPTWwrtrazdE=;
 b=TXOFjviL4qOTIuNKlsFfSjIKoeD+rrGPkDvZNuaPa4eunpvox7wNDk5Bw1f6HBRz1tbjppk2TxLqTXeC/3DxhKyo31f8QSsxtAtbPANsCxCmy9oKm+v0GSCR/xvG2RBrhhxex0B4ar9ShggwbDtrQkgBP1iFF3AtuU0h7FVrMfs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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 0/2] Code removal for !CONFIG_PV
Date: Wed, 12 Nov 2025 16:22:29 +0100
Message-ID: <20251112152235.224001-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: SJ1PEPF000026C4:EE_|PH0PR12MB7816:EE_
X-MS-Office365-Filtering-Correlation-Id: faa1f061-4588-4b46-5f14-08de21ff590e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?8au46VFR4FkKiqHHKU27H38RD6RfZ4rVc7YbNOTdd1plw3uVX2uQQrbld7OZ?=
 =?us-ascii?Q?rImf1xHxcJsgmrlw3NZFS0LMHGsQ2vseW68LXaf0p/vM67KAkcqvrarI/h/l?=
 =?us-ascii?Q?Oti/QxDO99XCLp9HJk+gpDEJhl5/DOGFLDQzKKMXZT78ojsOYEBU6XaISvJi?=
 =?us-ascii?Q?jqqmr9Q3MvtIbO+vUlvltiO0d1isMG0lY0UFHaToGXnzhxFilTSQPyGbx25w?=
 =?us-ascii?Q?tEBwB/lDRSVZbS3PVRWdmpHXHWVHTJcu/0tkrK5GD8gl6T26VunYKDg43x98?=
 =?us-ascii?Q?vnBVk6obGZZOTUx25Ho7hvCt46W+bMBMS2SBixUr2gebFEWBrxU0NdBZ6nkr?=
 =?us-ascii?Q?s14C79kWKEncNxS/StzlRVIFjtMPxdgNlwei4unh4i4NnYuqPyFq2NtKeYZg?=
 =?us-ascii?Q?1SVyIoJegtIHE+Hy4Wr+UetewRLkhjQ/3hNfTP+5W+U/HY594ovvEzZJaKxr?=
 =?us-ascii?Q?0zgch1UT02NKUws3hG6fh3OBDpPacixeGInHGm8XUP8pTVrGxeTPMxYkHqNB?=
 =?us-ascii?Q?gZ4+E1YSIAEbADPNqP5WFZ59RIBDLMCCZ6bGVveVv5S1WSGvYXmkpM7SDDfA?=
 =?us-ascii?Q?yrK6trNHFm4sFmZzSLr94hCqtfj2rCnYgE7eyUicZB6NzMs1Ld7t0pUsmRrB?=
 =?us-ascii?Q?VwYD79ZcZ4sbPXyUsRu5ReQWK7XmeUzDyK5lfiTg7zp1QWMsrNx90gE5L1yL?=
 =?us-ascii?Q?ZJ/y3FIE00/+/vMfghTiTa59GNcGbr4AS5Tzni7Sqww0OAGiFEZ4R+ShatHg?=
 =?us-ascii?Q?GzsZMnZmZmraFqMrjXMGQZ5fuYm3LK9ttxSvdy39tgrAabUuQtV8N0LeF0ce?=
 =?us-ascii?Q?F2zWlrX+CzKtysFs4pXDJhdJtG+BeVoIquY02Db+qUgtI2LrExQXTjbN27h5?=
 =?us-ascii?Q?ivOM6zOhxOrs40moWgaVfhg2C98Tf1KWUCbLR8RYojC7A1ZeQc0kODor3hxi?=
 =?us-ascii?Q?ydM8Z9hKGveALwuV3rCIbXs8tkLVTRuMBTqiZmFijBshopahsB7W3XC3CjS5?=
 =?us-ascii?Q?8Dfd5optZL66ieTmK6TH8n+TD0kW3ZFLoZsLUjt6a/m3VdytafLGJ7GXcrrm?=
 =?us-ascii?Q?gdy1g+WKUh3Cyo9O5HrcOCCKAd3XjIsqUjsiZkPpTGWssxliglJwlmOdDgZ8?=
 =?us-ascii?Q?vzP2N52iC+Z3JKljnfl8MXIi5CbWuNAbOP0o6jVsUeEgnpjP4sfgWwSyteD6?=
 =?us-ascii?Q?FR4AfwVs5VdMHV5HLVcWtBduVh1QAIfrgJgZeBoMr6AhCrDCtEGbdbiPa2bs?=
 =?us-ascii?Q?erAnA3E1j4gwvTe5mISMlFQYVpSENJspRd7vWeegYb0YuWeufaTUn4En82h2?=
 =?us-ascii?Q?+zQfJOhAR/SX+XteXbaCn8v/FZ3vstahWKnXwXBtg4I/eHnAILqyWYF37wnc?=
 =?us-ascii?Q?Jk+HVBCiL8MRDeEhaWKmC4s84YkFeTmhZ/t0g0tbTUUHQNrHW0A0JEhC31Ex?=
 =?us-ascii?Q?WThp9mWSaBVc5EYuse84UF8pObT0Fj1NUxph5W8xWUx8rgrnqZtZKrV3xhr6?=
 =?us-ascii?Q?v1BIhK6thlYAwhS2Q7JNMfmsWlR69411eWUPxm/SSwxOBJW3tvTCnq4LJc1k?=
 =?us-ascii?Q?L4J9ufkfifppOBRYJd8=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 15:22:52.6339
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: faa1f061-4588-4b46-5f14-08de21ff590e
X-MS-Exchange-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:
	SJ1PEPF000026C4.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7816

General cleanup, with marginal binary size reduction in the !CONFIG_PV case.

Some PV-only code remains in the build when !CONFIG_PV because it's in fallback
else branches and there's a number of stubs in asm/pv/domain.h that are either
irrelevant or can be made irrelevant through trivial changes to the else
branches on which they are used.

Alejandro Vallejo (2):
  x86: Conditionalise PV-only fallback branches on CONFIG_PV
  x86: Remove stubs from asm/pv/domain.h

 xen/arch/x86/cpuid.c                 |  4 ++--
 xen/arch/x86/domain.c                | 10 ++++++----
 xen/arch/x86/include/asm/pv/domain.h | 25 -------------------------
 3 files changed, 8 insertions(+), 31 deletions(-)


base-commit: e00c1673992e07ed31e9c60fefa8d053491abbe6
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 15:23:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 15:23:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160026.1488267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJCgZ-0004QU-OX; Wed, 12 Nov 2025 15:23:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160026.1488267; Wed, 12 Nov 2025 15:23: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 1vJCgZ-0004PB-L6; Wed, 12 Nov 2025 15:23:03 +0000
Received: by outflank-mailman (input) for mailman id 1160026;
 Wed, 12 Nov 2025 15: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=Vb/2=5U=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vJCgY-0004JE-F6
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 15:23:02 +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 772d9bc8-bfdb-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 16:22:57 +0100 (CET)
Received: from SJ0PR03CA0385.namprd03.prod.outlook.com (2603:10b6:a03:3a1::30)
 by CH1PR12MB9574.namprd12.prod.outlook.com (2603:10b6:610:2ae::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Wed, 12 Nov
 2025 15:22:54 +0000
Received: from SJ1PEPF000026C4.namprd04.prod.outlook.com
 (2603:10b6:a03:3a1:cafe::57) by SJ0PR03CA0385.outlook.office365.com
 (2603:10b6:a03:3a1::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.16 via Frontend Transport; Wed,
 12 Nov 2025 15:22:54 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF000026C4.mail.protection.outlook.com (10.167.244.101) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Wed, 12 Nov 2025 15:22: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; Wed, 12 Nov
 2025 07:22: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: 772d9bc8-bfdb-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oa/E9qQfQoNy8YhQAB/KcB0AwKXiUwRXUlW7K36bFU09TUyX10udihHwFNeBNkXYw7Rk5OZYCHlgtDoVsFJBBKK9CdW3EPvAJQciP+oswuBd9Y7E5tXsB5V28keO4M7eu6+5EASB0+TfSHymAXVwijuXLN8P4umaQcs14Lh9GEf7vSx4ihWIyGJvWsVf2+2776Cp8acA0efh4jUL4lWgNxXnKGDG25p/nDrqTBu/nP53UfFNChLw05gvTgJ3SHhGfdd3F0/8Q0FOTrduFv9coZx5Y/RRAdNLmBVcEebHyJVK7IsD4mX/LOtJ5pJcCCB+TvN8uugs990OsDGTIiSIsw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sSNMRiJhvIm2jM238s1+EHLPCDbys9wV9XE8+uZm1rI=;
 b=fhFHt6aw3qNwA22Vxyi1V5cic5mqRFdRfALJLnQJVEsKyo5HBhf6dT2MF1tv5q/IRQqHJYYq5vIDKyCdswqFaYj7Jxb1GM0vJz0NV4og8rFtZJaEWyQbo9oKhU8JvNJCJ8zcqyIdCJ177Sok7tsGU1bLzoLjTIVk7y7NZqr+uuDHlsYWH1/XlJSQV75hopT+yse+/QyaTLsxGBNxmieX9U8HOZ3bzfamXG6/LaL44w97EESN0On/BKACzCtElhAcXxjtSXwLYaDcOdmE7QZpyLrF0aHMmD4V39oS6XUSbcND5VnUw11xzYZ6A48F71UzBz+TilAlPturEYX/Lk/8yA==
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=sSNMRiJhvIm2jM238s1+EHLPCDbys9wV9XE8+uZm1rI=;
 b=45stwo0QJsc6fkncuwc/njI+NF9iA0RaSOkb5Xc2zFd5BF0cDCcMyzEiRxFZQY+8Cve10P3mmjKF9Dtv68t1KF6jhTrnASL45dV5U2rcu6wZEwsHU4e5fJaKIMaXlPhmKKLDQL3nY/3vgnTqMTzbtvTkAzt5Ss1BR6rdJj6Fpow=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: Conditionalise PV-only fallback branches on CONFIG_PV
Date: Wed, 12 Nov 2025 16:22:30 +0100
Message-ID: <20251112152235.224001-2-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251112152235.224001-1-alejandro.garciavallejo@amd.com>
References: <20251112152235.224001-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: SJ1PEPF000026C4:EE_|CH1PR12MB9574:EE_
X-MS-Office365-Filtering-Correlation-Id: c88f7379-30de-42ab-fdb2-08de21ff59bd
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?oft3npbfVn16+GLiqMpRtXw9KdtglRns0VeE0PJYy752oa2+3gcPc+Q4MFoC?=
 =?us-ascii?Q?SRqktQz0U+YuOzH5xA0WeTqoTilxj4Edb8yWmU3GrsAa8/snqOVylUwWsjym?=
 =?us-ascii?Q?2T2/q2HP2wmTBDcSWoePZCRazKHcoY+MecLsmEMpuBAcn4ACC/M/tV+66TXO?=
 =?us-ascii?Q?++rXHw13Wf28WRyGMRPf6nAg4EIJ7iS9v8Nz65f0PXZ8CzybS7suhxulcooR?=
 =?us-ascii?Q?0deWK6qQr+sBCttrvXOsm/fSDNrp4cZsO9TPSH/rlfZ6sPlJnAoGqpP+gQSs?=
 =?us-ascii?Q?Y8n4efRoXXrpkXLEG3LIdGncba3/NlQIkNQ8xxnUuQ7JSoU/GEsml+ZM61m7?=
 =?us-ascii?Q?BLQrkzUxDfeUft/Is63HF3/RQC3sB6zz89rVGzMTwnUufJyBNnRlAloJdYFt?=
 =?us-ascii?Q?1Jsg7fT7WpdeboamHEdouT34ZD4P5W231outPjVGy0uWCANlcHV452N7izsi?=
 =?us-ascii?Q?YPxgdmufuSTedStCBbTHI2CCQIj7evVlIEzkMVLaOQEjy9AKrQcPbcGds6cH?=
 =?us-ascii?Q?xe4jSwrWJOcRKOepIT7Ns2RUBpbHw7D/ojHpBisTK4oGGekxbBMCnjda08TT?=
 =?us-ascii?Q?M9ZUmrADH6cq4pNkSgLJ4aSCq3JJagu/JIuQvuu1OiA40Y7mxWOdsR/1BXuP?=
 =?us-ascii?Q?5O6vBH3Pa4vhMlsLycllJpQkCvIzkeReuhp5sBVZXUIppdsNPp/Pfz3tGhVy?=
 =?us-ascii?Q?kDPeo0KWcVNuMOeFlOI1f2GsRLZxymWiPgDhVQPo/HPBujjrG83bF/KTfWII?=
 =?us-ascii?Q?L8kH4OQj7o3TUjmeay5XyUDYuk+dM/aoRGnQAyuearkvoRau9+eyf1Ynm5FJ?=
 =?us-ascii?Q?IQTP5Hf8SheFTFK+VxLNvo64R3dePlH9r7duiuUNOfb2bu9Ka+zGMca/UMqw?=
 =?us-ascii?Q?orkWzzuE8sreqb9XhSUk0LBWDEGI0swVTxwgp06RD72ue9Dy+phoSLsD4Nnl?=
 =?us-ascii?Q?ZqV3BnThrBK6KRg5Bk+9a3qNpfvYzRLwQyL9HirdZUiC35U2WmD1/gKzS/31?=
 =?us-ascii?Q?NllU1CdSkseF6E6BsrrRfg457Q0MOIMtmvO/YWtn7JVLpDPfn/RdCruMqjVu?=
 =?us-ascii?Q?99Ua76bNs3Uia9mtIvjA8vHz65LwfnGeJuhPja4ktKamMoeV1eGiUMyQg1cl?=
 =?us-ascii?Q?D6/dFC+I1jbZnmH5U4H3WX8rDEhQsBwxhLXwy3a9/KALNE5e0no9mYiQnumU?=
 =?us-ascii?Q?zTc6ud6KxrFg7ZDlk58yIgV86fvVT52osdCystfnTORk2w3cntjHUP1XvjpA?=
 =?us-ascii?Q?QomdEGZIFKWSh1OE8Oo/EumnCrUpG8ZYZzIP7zK9GdDfupm4vgTLyQ9v7jeA?=
 =?us-ascii?Q?EwtCSxIIzDfMikubN93zodmEIm+hvhw9RTwq/PAD6XtAwAgkwPkqUp0V+IVY?=
 =?us-ascii?Q?MSLDH4XZDqqNEJaiM82+/TQdG+YZUPvy67SP5x/1yzRJhzxn/U/1rSE1kjrN?=
 =?us-ascii?Q?QHcMVpB6HmLwN5Qxf1RQT2z4pHRHSUxjhqmOmKaeWfiTAfA8TuEhki0Jm8sN?=
 =?us-ascii?Q?D6BrmjAI11t9ai6V3GKX5zj50Svquem9JISGzbZ98gLVppI8sB6owwQ/0gjz?=
 =?us-ascii?Q?OzCTI8+SgGxddV413Y4=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 15:22:53.7849
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c88f7379-30de-42ab-fdb2-08de21ff59bd
X-MS-Exchange-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:
	SJ1PEPF000026C4.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PR12MB9574

A couple of branches rely on PV being the "else" branch, making it
be compiled even when PV support is not itself compiled-in.

Add a explicit conditional on CONFIG_PV in those cases to remove the
code in !CONFIG_PV builds.

Not a functional change.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/cpuid.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
index b63a82dd38..2e24c84708 100644
--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -297,7 +297,7 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf,
             if ( v->arch.hvm.guest_cr[4] & X86_CR4_OSXSAVE )
                 res->c |= cpufeat_mask(X86_FEATURE_OSXSAVE);
         }
-        else /* PV domain */
+        else if ( IS_ENABLED(CONFIG_PV) )
         {
             regs = guest_cpu_user_regs();
 
@@ -509,7 +509,7 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf,
             if ( !hap_enabled(d) && !hvm_pae_enabled(v) )
                 res->d &= ~cpufeat_mask(X86_FEATURE_PSE36);
         }
-        else /* PV domain */
+        else if ( IS_ENABLED(CONFIG_PV) )
         {
             /*
              * MTRR used to unconditionally leak into PV guests.  They cannot
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 15:23:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 15:23:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160027.1488280 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJCgc-0004lN-1z; Wed, 12 Nov 2025 15:23:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160027.1488280; Wed, 12 Nov 2025 15: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 1vJCgb-0004lE-Ti; Wed, 12 Nov 2025 15:23:05 +0000
Received: by outflank-mailman (input) for mailman id 1160027;
 Wed, 12 Nov 2025 15:23: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=Vb/2=5U=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vJCgb-0004kl-6M
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 15:23:05 +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 7ae86ff6-bfdb-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 16:23:03 +0100 (CET)
Received: from SJ0PR03CA0365.namprd03.prod.outlook.com (2603:10b6:a03:3a1::10)
 by DS4PR12MB9683.namprd12.prod.outlook.com (2603:10b6:8:280::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Wed, 12 Nov
 2025 15:22:59 +0000
Received: from SJ1PEPF000026C4.namprd04.prod.outlook.com
 (2603:10b6:a03:3a1:cafe::8b) by SJ0PR03CA0365.outlook.office365.com
 (2603:10b6:a03:3a1::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.16 via Frontend Transport; Wed,
 12 Nov 2025 15:22:57 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF000026C4.mail.protection.outlook.com (10.167.244.101) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Wed, 12 Nov 2025 15:22:56 +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; Wed, 12 Nov
 2025 07:22:53 -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: 7ae86ff6-bfdb-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mDWf6E5ssYzP5urjrqp/F4+TSWg+UL4rvEk+RsbGzcpwCMf5AF3BonkDYVArwe3UU6J+PohbsEfORF+ALNeXzRYR3mC8SfeuuNY83MZKNjImLi5ugNYs7Ba1gwHzfQeCXSVppzPoqu1Ya7Tl8FfTaWO/bXwD6vwda/6/2za/oGdAM1DOcenAEhT1ivbY9vI4AFPqVK34JTl4u58wnmd2X9LI0OzZDuCXGqoU3TgD15KTbHSRCNlPQ2vDqPLA2KAfWwwBvzBpz+suri85NKnqyysaMQwI19T+PbO9BVBoj/E9FqkZYPXijoFhWLZRbhKbiQ21VICvXOsccEEHI7188w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aAc/ZghjNNJf/U8+nHmCJOTDYsRUBccDQGmMHB8S8v4=;
 b=OV6sX4fdmNHZO6GQE4v72BtCskiELP5kqmIHwlBzbdSgRtpTFSC17t9SiX5rWwxGV82iOS+RTPIemmQA+v9chsBNVjvPZ/snO+2YM054grGJJDgfKLtRESoO7JzuKVNRK8Xv+uF56/gOHKhMwRajIfI1bLaB9rmvBCGUNBJXo5Y8IijJjbVB4b5ZrLUCoWi4f4ukgcS3CdP0r3HFaoATzgOMQJ/dOOVqCAZcHxhdKcLvlJ2faPuOE3AiX3ZHzSL6KNqJZmarEZmA67K9lzHY37hG0ErColGE/ONQTWWoje+FM6xH2/8s1P5YFPWW7yM+laq+WyQ1xYBjWAYLbHXL4w==
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=aAc/ZghjNNJf/U8+nHmCJOTDYsRUBccDQGmMHB8S8v4=;
 b=laDFqQgLO22S3vNVIdsPZQPl5DYkUmT3ftOWgWjV1JVohXns4VvNpI5hY3y1WFcDWBdKUyyCrBisRWnXjCLJhE27GwLwwTQPUNLp+GvwfQiy8Dq688ocOIsFrP/cyaDBZrFEUQw3yuvDT9DfZNuPx7dzaeNlp55+FvZLVHcZCGM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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 2/2] x86: Remove stubs from asm/pv/domain.h
Date: Wed, 12 Nov 2025 16:22:31 +0100
Message-ID: <20251112152235.224001-3-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251112152235.224001-1-alejandro.garciavallejo@amd.com>
References: <20251112152235.224001-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: SJ1PEPF000026C4:EE_|DS4PR12MB9683:EE_
X-MS-Office365-Filtering-Correlation-Id: 82ac522a-79f0-4572-4a85-08de21ff5ba0
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?yDE2wzW0qYCnzFwtlaprpF8oQIFZxhQoOlolvtKLRKGUkJjInDYfqTJ1C/OM?=
 =?us-ascii?Q?r0yMctYYidC/8jw+XGkvaE5MIe2No49Ba3ZqbK/qjb0K+iQPLSMb8kwDf43N?=
 =?us-ascii?Q?06x+MRhptf7FW8+FtNvHS1w/UI/SVxXS1Edu9SWPeDcHiSeqG73AFPOB+JzB?=
 =?us-ascii?Q?raWo2lveXPdy/rRgHgrv7r2K/dYtmgK+YCzLNK8EiTAlfdES/uD1wii3Vhd2?=
 =?us-ascii?Q?HnKhlqJiRKNS/HGLhLnIFJUr+6d4QeetLBw173F7oVLkG2fWHd273wZlJnSh?=
 =?us-ascii?Q?SnqpI6loP0zP9DJVtXYv1xj8uTdTWe/VeD6kwIcPNjnO0vYf4HA/Dn/MU+uR?=
 =?us-ascii?Q?CPhdYzIaUnsVnqI2tNGWvvXdlccIj97kglQQ0HswFoG6DuTNo3FF6AwSlZs6?=
 =?us-ascii?Q?/mnmWWkupNG1N33da2Qko8faNaTpukvDHqaRMJS+GhXg5e3bki+mdR/NWP7L?=
 =?us-ascii?Q?qzxl6ugIqH+CoRUBG50vO+6/Itd8pdQRFwdh5B2BqeDkauJzReGWer8gMW7l?=
 =?us-ascii?Q?61EgNOzRziRo2sIORxaUPFp+FMWMYgJuh2hBy4nwNNCGhHpnY5OtDK5gOhGJ?=
 =?us-ascii?Q?/roiqdQThax9gGN6hZVvma4qVHKh3W/LiJnh2LhqU4wu3K0cjC69UL4Jdfkx?=
 =?us-ascii?Q?X98RBXMMlLSrRDpjyvXsJQgBa/7tGa9FNghOvtJlXDxc6puI4gtnRIMUONNE?=
 =?us-ascii?Q?1dN2YBrr/30/57zFcIrwW7KRXP5kvXTEWkYBxeCRtIJ8VL3nCB/dc/cz4tOp?=
 =?us-ascii?Q?5Cyk38jU9WCgJQ8UfiofEkz2OUDw+ktwyuiqoTT0yY540OG601cfTJ1qxyBJ?=
 =?us-ascii?Q?OlXsgpQ/KFL9FXdYLGRLkXEsojUEhXyDVR8B5WV0LeOZu7pC7Va2sOI9bqdk?=
 =?us-ascii?Q?eNvTyajpgFVV0CVURMKjejpUolzLAqQLncyx1mLB9BF4wSOCc9Vil6eKnQNL?=
 =?us-ascii?Q?LPu9t8kXAmxZ5r73ILLlldHc5dcbI3jNDODAWpyEWIGoVKB9zmfUowIpBhI/?=
 =?us-ascii?Q?94Z/5Lj6pD7dQK6Od3qqB1/FUEy89F1zrzBvTuYfA2Eh+TkQvE0CFwllxm18?=
 =?us-ascii?Q?viTmH7SaDYiErtEA3xAQg9XcUhB6/qmUQaH/r/3yE4SktVNJ1T8Y6S74xXDz?=
 =?us-ascii?Q?xpWaY925Ykyg4+3wWz6JbXBUojFZJnx8P0FS2jAeZy2NzEQPOxrdBAShClDw?=
 =?us-ascii?Q?oQppmVJp3CUzv7B7boNZsAaiAGrnPEU+ziKJSw1SnzeUntTKImnZCusIV91R?=
 =?us-ascii?Q?JBwfoq39TsrX6rH0WzSSHKyQzhwFYUpM73j0PCxKNMUn1PRZ+cyW3aJvEEMh?=
 =?us-ascii?Q?tc13WGYRkkKFVUbi1mdQ/l3HljpbvzYn0ykX3xL7KZFgio2S8bP7EaKSgRhl?=
 =?us-ascii?Q?U/WiIdblA32zJ4lD+KeLu8QjzJvh8HkTmqk+V/2mIexA+LbRmJwWySXB1Ip9?=
 =?us-ascii?Q?wiRlIJnKAEtbqIKorIp+pwclMuTMhvBrja0LcKWo1W9PIzxvDqoPgfOpcOPV?=
 =?us-ascii?Q?Y0e8wQZTqufA7TEERPgA5pOfzqH009rHL65JJaH0iX+fGHRaV4NyEhbZdZ9O?=
 =?us-ascii?Q?1x42f+rQiVSPdp/I25k=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 15:22:56.9465
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 82ac522a-79f0-4572-4a85-08de21ff5ba0
X-MS-Exchange-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:
	SJ1PEPF000026C4.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9683

They are unnecessary. The only two cases with link-time failures are
fallback else branches that can just as well be adjusted with explicit
IS_ENABLED(CONFIG_PV). HVM has no equivalent stubs and there's no reason
to keep the asymmetry.

No functional change.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
I'd rather remove the "rc = -EOPNOTSUPP" branch altogether, or replace
it with ASSERT_UNREACHABLE(), but I kept it here to preserve prior behaviour.

Thoughts?

---
 xen/arch/x86/domain.c                | 10 ++++++----
 xen/arch/x86/include/asm/pv/domain.h | 25 -------------------------
 2 files changed, 6 insertions(+), 29 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 19fd86ce88..0977d9323d 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -571,15 +571,17 @@ int arch_vcpu_create(struct vcpu *v)
 
     if ( is_hvm_domain(d) )
         rc = hvm_vcpu_initialise(v);
-    else if ( !is_idle_domain(d) )
-        rc = pv_vcpu_initialise(v);
-    else
+    else if ( is_idle_domain(d) )
     {
         /* Idle domain */
         v->arch.cr3 = __pa(idle_pg_table);
         rc = 0;
         v->arch.msrs = ZERO_BLOCK_PTR; /* Catch stray misuses */
     }
+    else if ( IS_ENABLED(CONFIG_PV) )
+        rc = pv_vcpu_initialise(v);
+    else
+        rc = -EOPNOTSUPP;
 
     if ( rc )
         goto fail;
@@ -614,7 +616,7 @@ void arch_vcpu_destroy(struct vcpu *v)
 
     if ( is_hvm_vcpu(v) )
         hvm_vcpu_destroy(v);
-    else
+    else if ( IS_ENABLED(CONFIG_PV) )
         pv_vcpu_destroy(v);
 }
 
diff --git a/xen/arch/x86/include/asm/pv/domain.h b/xen/arch/x86/include/asm/pv/domain.h
index 75a6b9e5c7..582d004051 100644
--- a/xen/arch/x86/include/asm/pv/domain.h
+++ b/xen/arch/x86/include/asm/pv/domain.h
@@ -54,8 +54,6 @@ static inline unsigned long get_pcid_bits(const struct vcpu *v, bool is_xpti)
 #endif
 }
 
-#ifdef CONFIG_PV
-
 void pv_vcpu_destroy(struct vcpu *v);
 int pv_vcpu_initialise(struct vcpu *v);
 void pv_domain_destroy(struct domain *d);
@@ -84,29 +82,6 @@ void pv_set_reg(struct vcpu *v, unsigned int reg, uint64_t val);
 
 bool xpti_pcid_enabled(void);
 
-#else  /* !CONFIG_PV */
-
-#include <xen/errno.h>
-
-static inline void pv_vcpu_destroy(struct vcpu *v) {}
-static inline int pv_vcpu_initialise(struct vcpu *v) { return -EOPNOTSUPP; }
-static inline void pv_domain_destroy(struct domain *d) {}
-static inline int pv_domain_initialise(struct domain *d) { return -EOPNOTSUPP; }
-
-static inline unsigned long pv_make_cr4(const struct vcpu *v) { return ~0UL; }
-
-static inline uint64_t pv_get_reg(struct vcpu *v, unsigned int reg)
-{
-    ASSERT_UNREACHABLE();
-    return 0;
-}
-static inline void pv_set_reg(struct vcpu *v, unsigned int reg, uint64_t val)
-{
-    ASSERT_UNREACHABLE();
-}
-
-#endif	/* CONFIG_PV */
-
 void cf_check paravirt_ctxt_switch_from(struct vcpu *v);
 void cf_check paravirt_ctxt_switch_to(struct vcpu *v);
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 15:35:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 15:35:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160063.1488291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJCsg-0007Iy-4k; Wed, 12 Nov 2025 15:35:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160063.1488291; Wed, 12 Nov 2025 15:35:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJCsg-0007Ir-0S; Wed, 12 Nov 2025 15:35:34 +0000
Received: by outflank-mailman (input) for mailman id 1160063;
 Wed, 12 Nov 2025 15:35:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=X0mN=5U=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJCse-0007Il-Kd
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 15:35:32 +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 359b43b5-bfdd-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 16:35:27 +0100 (CET)
Received: from DM4PR03MB7015.namprd03.prod.outlook.com (2603:10b6:8:42::8) by
 SJ0PR03MB5407.namprd03.prod.outlook.com (2603:10b6:a03:28f::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Wed, 12 Nov
 2025 15:35:23 +0000
Received: from DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9]) by DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9%3]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025
 15:35: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: 359b43b5-bfdd-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ii+7IgxUnvOCiUu+Ogo49l2YLJIkZp3f3HSPsCfhyLewTo8/8Emuec+WanCTyABhEToEnupRyRY6gl8psC4X3uFT6oVDQ9e3DuN5uySBSI1D55fJ2ozC781rMa7mQPbf7VyGn+dnA/AB8PCdm7V1S2TVxLwqURxxtow8lZQ3i19qQLvAoryK250BTHcXcrFByhxt6YdXylS9QKKpCcAiXWipms0uNRPx2f1j4pSsJXm8pxybjGEVf2eqTj3ddxX3B45DjAHH79qmne/IORj8wHU6BSYQ7vP2YyWK+NMjQ6ybqRyOoaYjE0d66COtPuNkuW98i2oyWwjlT3kfumpFxQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8SuR0EaxsMstdCukpJYov7lN6pb4OUX+GdtIY/WObpo=;
 b=CpZs0oC0DlG63WCHP85SI2i7jJ1Pr+oP3j0y2S2Il4nPByYRBmFP0wmwR9p+iFenvJ1k4A5Fca0HqXhJYqorO4Vl3U4B4sI5cKg/bLcnIzdJh7UrxuwUbrUrhZaDCG6gwxpPu5IlUIofpPG3b+0U+KItOqVY7DPuMvn+VNaq6/Gakwx0pZGbNA0p30WnAkvTZAoQOPh7mDPszcu4yogZNd3ujGrB4yF1+XOWoO1gianlJQoaDYJibeozVcqblfk/FcQPdzMJQwHLNJcKZPgk29UPzV1KZIrEUChlja0Pd599JYOersxcDK3mmROWsUnesxTPKpKQr8osKMEmphPzLQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8SuR0EaxsMstdCukpJYov7lN6pb4OUX+GdtIY/WObpo=;
 b=pLbKIL86Y5g3O6S1693wJmk0MmgEKrU21WKO5amBq900Ep9ajuwmWGkQoGtbkYBVFLPp5WKuJ6zaUn1mdwnNeirmX9pGkbTDCqHOPolD0uDMYaQMF8zu5fBknmssLq73GiNGKA56cFsS6TiEkgzhWLU+ZF55NWqidJAuS3uohWg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <0afd80de-9f22-4ff9-8592-6cbef064a5f1@citrix.com>
Date: Wed, 12 Nov 2025 15:35:19 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86emul/test: extend cleaning of generated files
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: <14254365-bd77-4081-92c3-fcd0e649adae@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <14254365-bd77-4081-92c3-fcd0e649adae@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0318.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:390::17) To DM4PR03MB7015.namprd03.prod.outlook.com
 (2603:10b6:8:42::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR03MB7015:EE_|SJ0PR03MB5407:EE_
X-MS-Office365-Filtering-Correlation-Id: fe9ee3d2-e934-41d9-30f2-08de220117fb
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?aFhHS0dqNnFkSVAvdGtjaVJrV3dpd3ZVeGVFaTRRUEhZUkRuQTFOR1dsWkNQ?=
 =?utf-8?B?cSs1Z3VPZkxYMjV6amF1c3VtNVJtNmJQdGUxQk4xckdZV2JsZzJCdTFVR2RD?=
 =?utf-8?B?Q1NQWUZyMHoxcDdacjdsN3lPRkt4ZXBPSjJDaHlwNzVOYVZZaFZRNExuUVBX?=
 =?utf-8?B?SVFLbHNyREZEQXNLbXBjUm1lOXNWMEF2SGdKSUhZanZSaFUxN2FqSTZFRUV0?=
 =?utf-8?B?MU04OVFTUFJYUUJPYk9SOWpHNy9EWGpLN3dTNXlzTFRqR2NyenRVYlNxTUly?=
 =?utf-8?B?TDBEdTQ4Q1VJOGR4dEs0SlRTODdhdFlWQlJZZjdzUlk1Q3ZNOGlKMjJvMGt2?=
 =?utf-8?B?OEttNVgzdExDK2VFeG5jaW9Ibk9VUlI3ZXdFcHBuUFlyMnJqWEl4VWlHajha?=
 =?utf-8?B?YTFzWE15WTBVUFRYK3FSL0FiSU43aDNsS0twVzJZZGYydEc3TFhwRWpWNlVv?=
 =?utf-8?B?QVcvNDJLVmNsTFFuY1NuS1NLQU1kdmVhWXpYUFpKSW1qR3BOOGpvU2JMcGh6?=
 =?utf-8?B?VWN2cGVocG9ReCszYmRPRUhvSWV0ckFqZVVYSEVHMVlkNHV6OVlocjlTWlF1?=
 =?utf-8?B?Z1h2YTRHN3ZOaTNXRnR6T2FsTUliWW1XelVXeEZhZkpGNC9xaWZuZFFNcjA3?=
 =?utf-8?B?SmZoczVEVEEvc09QSDA5NEgwS1gvSUVTcGY3bzNxQ3RCZWtvcldQZDQ5Q2lH?=
 =?utf-8?B?b2IwWmJsbmhub3NrSlFlZ3VHS3U4VXYvMHhTejNGRDkreFhEazBqell5M1Zv?=
 =?utf-8?B?V0dTSCtMaUZrVnZBUHV6aWZHWk5ReVNFRU1MemxGNEF0UmdGeXhNdHZpaWYv?=
 =?utf-8?B?TnhJRWNtdGUyemh3cGdWN01lNmJBc1dieG9CWG9ZcEdkUU0vakJKelBoSGNU?=
 =?utf-8?B?YzYxdnJQUGJ6aUxlYlU5RmRmL0JLV2hYMlhPL3B4TittZ2F4eTRxbVcxdjRW?=
 =?utf-8?B?VDJ0YUlvdVluUUpLYkc4dFZuN1hoVU5zL1NVRDRVZmtWb0FsMnJMVis3SGZY?=
 =?utf-8?B?WFB3KzNGM1VZVUNWUjlYSS9wN1RxRHdDN2FKeGhYNk8vekphZ1cvY3lUY2Fo?=
 =?utf-8?B?TmhsYm1vNDBDdnJYTU45RkxzWFRxQ3laY1JvMzhSV3FJNEZzaUNlaG4vN09L?=
 =?utf-8?B?SG8zem9XZ29uMU9haGFPd0FmRm95dkpUZGJoL0RBNG1USGNZM2dWUHVFSEtG?=
 =?utf-8?B?VjhGN3BEdnNXMjl5WXViYmp2UUV2Tnl2MG1SRGZQUVVkSGpZRS85VW5wM21s?=
 =?utf-8?B?c2pybmorazZvTEFMQzE0YXVtWHBjd2FJamREZWpxZ3JDdkVkTjV1SjJuZlVp?=
 =?utf-8?B?aWpGOTA3WVFtSDJuWGpDM2JmcUVmZHNDV00reS83ZXEzaEJwVStuSUc5YmNn?=
 =?utf-8?B?SXhEOHI2SE5MRy82OU15VXBVR2tTejNUeS9JTmlWZXNSejFzTUhTQkZkRTVU?=
 =?utf-8?B?aVc0ZDdFYlVMNituWFZxRlVvQllGNFdmYmR4d0llNGkzMGFKVENNVVBhby9T?=
 =?utf-8?B?czBSQUZhVFlOeGlERUc2SjByWVF4MnV2ZEJQb2VyUkxUSkQrTjNtNTVUNGFY?=
 =?utf-8?B?SURPaVlaNVV3V1czQmhsSEtRY2VBeHFUeXdicmVldnk4Zkh3djNZaWhTWTg5?=
 =?utf-8?B?ZEM1NUZEMDdsTlBHZHAwakR0aW95OVkzS3luRnhQKzJkdWl4V0NaQ1c3OW1q?=
 =?utf-8?B?SGc0VDNnNktBaHVMY3pvaUlYbnNva0c4cnVUeTNqTVozZGpCcnYxN3pRNnpB?=
 =?utf-8?B?Zjl5Z0lQZXhDMlQ0b2wyS2xHVVRoZ1ozWG05Y2VEa2hGSWdTVVAxc2hLOWpl?=
 =?utf-8?B?dFhBSTNJaENnenRUU2RXK0tCa3I2cHFKMDBkTDd6RXVnRnRXOTFXZFh5eW5x?=
 =?utf-8?B?c1AxUEVXd1JMSU10WnI2UkxjSkoyVStWYWJNVFFYdkNqRXRrWU0vVUV3UWg0?=
 =?utf-8?Q?ALwu+XnPw0Py0caWrrTzo+T5Bzm6SAsK?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR03MB7015.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?YlBVQk5WQ0ZPcXVhb2t0U3NLYTRyWmpKU2Y5UzN1ZlRMSVlic2lOc1ZHZXM3?=
 =?utf-8?B?YWpNZGQ4SU1aaTBNekdUWkYzeWs2RnFQOWZHM3pMT3UwRyttTFVUYWpRamdB?=
 =?utf-8?B?cThJK0JlcTZNNmk5S0tpRldHUmN0eDhtZEFwMHc4azM3MldvMU9ybDdXTWNF?=
 =?utf-8?B?Y1ZjSXdhRUxPQ0NsOEdxSjRCbkVUVHlnSVFhUVhaWkdnMWUyVC9qdUFpVE9o?=
 =?utf-8?B?aDFTbVNWRUpSRmgrSEN4NS9ySk5SQkF3TWpQQVd4M3I0NjZnUWdmTUtFMjFZ?=
 =?utf-8?B?eWJIYXRsMnA2NU15VmVUTmd5WWNvd2RhdmlxZkpHUVJmY01JK0ZDMTVLbXpF?=
 =?utf-8?B?NnNiYTBDVjg0QmFKQ2dHaENGZHplbEJNeDF4bGFnSmc4a0owR1JleksxTDIw?=
 =?utf-8?B?dHBQT0NYTjVzTXZrdGRlRUtCVVF0dk5QRWxlUFVQQ2pXc1Uwbk5RcCtiRm5F?=
 =?utf-8?B?SnFNSm1heFJ6ZUt4TUE2Y1hobnVubHMvMzJZUGpwL0o0UnQyMGR3MTVuczNi?=
 =?utf-8?B?YUsyaXJvUElER0dJVG5sNVEraytVc2lGTnFEZE40dC9pM2x5eEc4SXZ1bXVu?=
 =?utf-8?B?WjYxQWI5UXMyL1d0Nks1TjJ3YUF6eVFtQlNNeHd5MmJyMVZ3VjJGNm9lVlZE?=
 =?utf-8?B?QWVrd05rQ3lFd1JDUzVZVW93S0NWdUpNWjVNWGxBdjhWbWU3NFViaklJSzhZ?=
 =?utf-8?B?SVFtQ3FqL2E2b2hlTUJDazVmUFB1UDdKbENudHZabE00aE9GL01WVGtJSm5N?=
 =?utf-8?B?U2VEcWZIb1FzOXlFbzgvZmdYNUdUYTU1L2cxR3FnV1JGN1c3cmpYeGw0a2s5?=
 =?utf-8?B?dzJ5blU3dnUxeElTajdacXZianlhUlV6Y2phT21uYUkyY2I3cllBU2Yyd0Nz?=
 =?utf-8?B?a2trRk1IdFVDOXRiQVNsQjNBbzcvdzJBK2doT04rcXhGYXNUQ3dKWkl4TEpC?=
 =?utf-8?B?YWlLVEVibXY4clFQcnNUdXQ0enBHQnFPT2tPdno4MkhCekN5cmh0NmVmMUFR?=
 =?utf-8?B?ZGs5UFBwNmVZeFUxZjJoaG4weThSZUd6V0drU2d0aFpvdDdQVGE2cjB5Vko4?=
 =?utf-8?B?UXN3dGFDNzJ3N21veHJXMXZwMFA0SEdwVUg2L2FwZkpGbmFiR3NaVXVkYWZZ?=
 =?utf-8?B?WHZlUjF4WEVhbG1TcHRWNXg2K3NYZDZDWUJ5S0VCc2wrT3NxVlh2SHJuNXZN?=
 =?utf-8?B?YzhUZU1OQ2svMmdhY1B5WDZacE4rVjljUlBTM2JYVW8zZ3ZRR3hiaWtoUDdJ?=
 =?utf-8?B?U0hvNW82VnVPckRJR3JtYm1VZ1hMWllKZHZqK0JOTmtiMXIyZGtkK0dWdEk0?=
 =?utf-8?B?VU1tYTNwZnFvS01mbS9PdUw5QXd0MXF1eFNNZlJGMWRYMUxEMk5XblRNZlgx?=
 =?utf-8?B?dnMvSi9JZjVtVGJRKzJmMTRRUnBpTEdyTG1yN3VxSENPWDAvbjM4WWQ5SWFZ?=
 =?utf-8?B?NFhySmNLRUV1NWMxM1RtZ0Y3ZVJlYzI3cUZnSExhMXFUQmJKRFkyZWVoTHVM?=
 =?utf-8?B?M1VJNFE3cSs1NU1yU1hVT25ucDJZY2NQMTc0WnJ2aC9nMXptTEtQODFXRzNu?=
 =?utf-8?B?cFd4TVRFWTlnSkVHM1lOc0oyb253Z0l3TlNneGpXbDF6Q1NBVGlCcEM2eXFr?=
 =?utf-8?B?b3FYRmwxQlZjMjFRaU12NVZTSFhmd1JHTDJqVVpDSVBYMm1nME9DR1puN1dF?=
 =?utf-8?B?eXZWdnNjb0RvdW95VDdyT0dQSTFWRlVZVDkrSjZjMjFrWm5TSFI0TDBROWVI?=
 =?utf-8?B?dmJDM2lVY2N2QUdrRUozYjQ3dFFDeFRBWXc4eG95ZFdPWC9oZHBDK29mUitC?=
 =?utf-8?B?L3JlRnZzaDBIOFU3Z0FmTEp5MW5tUnVQdWk2V1JvRm1VMVVIOU4xZXNqdmhC?=
 =?utf-8?B?ZndSRzJjVXNpbTZyZEVzYlhORHNsdWRUZDg3cWEwTEFxRnZGVExhK1F6VExF?=
 =?utf-8?B?ckZPQ2RLUW9NWkQ1RFkrMTFmeGVXNmhtSC9QcGhhNTJsSG1BOTFIUTVtR3pX?=
 =?utf-8?B?ZTZNNjJzVlpoTjFabWpwbStZTGhNSDA0a0VJNzdQUTJ2cFJVZzcvTmUxai9a?=
 =?utf-8?B?ZnRqbDhMOFRZRW0vaTNZbURQNzZLTytmUlpTTythaHRnWXdhUE9nN2FObkpM?=
 =?utf-8?B?dDhMT2RXeUl3YlhxUlUzeEtUeDBDL0lEQ3hMNTBmaXhwRllucDdKR3R1YTNC?=
 =?utf-8?B?YUE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fe9ee3d2-e934-41d9-30f2-08de220117fb
X-MS-Exchange-CrossTenant-AuthSource: DM4PR03MB7015.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 15:35:22.9860
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 51dbLZEZAzgPszHtu3Eh1csKbY/n0Zvl1qeZVKCuIe4ubuoR7wo9N7AD0lJAusQPpW53XAm0ql7jVppSgS/PKHwXuGA8PZGk9FBgw+zfOI4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5407

On 12/11/2025 3:00 pm, Jan Beulich wrote:
> Many *.c files are symlinked while building, so along with generated *.h
> files they ought to be removed. Conversely $(TARGET) doesn't need removing
> twice.
>
> Fixes: cb4fcf70b2f3 ("x86emul: parallelize SIMD test code building")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 15:38:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 15:38:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160077.1488301 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJCv2-0007vV-Jk; Wed, 12 Nov 2025 15:38:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160077.1488301; Wed, 12 Nov 2025 15: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 1vJCv2-0007vO-F4; Wed, 12 Nov 2025 15:38:00 +0000
Received: by outflank-mailman (input) for mailman id 1160077;
 Wed, 12 Nov 2025 15: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=zpN+=5U=bounce.vates.tech=bounce-md_30504962.6914a9d3.v1-ca881e3520284e09af5a0d4a5edb2e05@srs-se1.protection.inumbo.net>)
 id 1vJCv1-0007vC-3g
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 15:37:59 +0000
Received: from mail136-17.atl41.mandrillapp.com
 (mail136-17.atl41.mandrillapp.com [198.2.136.17])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8fdb73a7-bfdd-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 16:37:57 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4d66x00Lp0zPm0XnY
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 15:37:56 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 ca881e3520284e09af5a0d4a5edb2e05; Wed, 12 Nov 2025 15:37: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: 8fdb73a7-bfdd-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1762961876; x=1763231876;
	bh=J9x4ke0xLc2x3x8APrrN6CRsBsF1UIlxpCMJLxJb3Gg=;
	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=bobo2YqkI0DN8lMnubvtH1DhxBMTxBW1NrqIN7Lmp0AJPCJPs+6F0c78+p2oxCmbS
	 2TM+11FnYMk5iLKgSq+yFhTZ6HKKxpG+U8WmarnxO7H+sC4635ODuOiq4hl/BWT2yw
	 mIitzn23mvugWJoW8BTvtSIpQsYdrSZXW4zYAFUXoKmzUE5UgoID5tT8oDzTu2Ud3H
	 5H4IIJFuaL8F5SV5x5ln1sHfY4DRKLk8HAhAgOmFX8YC/fmfl+QKFeDF/RSVDh6mXT
	 XPosCKqZCOHhi08fAp+q7YXJLBKFFn8RqrDmeK6JIMVYPkQr81XqHKPqoInPsyJNUW
	 mYvTghtoe2sPA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1762961876; x=1763222376; i=teddy.astie@vates.tech;
	bh=J9x4ke0xLc2x3x8APrrN6CRsBsF1UIlxpCMJLxJb3Gg=;
	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=Shcu5diDseLfdZWVYNHW0OzCuKA6bHs4szVgFdQq5vHIdxo8Gtq0enZ3W0g8+43cJ
	 ODwph8ONPm5R+yXvZFya7gG6ne+lV6wrpkcdXx9a2Wtk91jAtBcz/99jgY/oEUzom7
	 y3PKVYiaAjiszWAse8A8l4TaPEwdbTsxiydjCw7gGfJogb1J0k9yibw1QfuQsA8NdJ
	 axExwtIx7F3X7iC68muDARKne+CZlEm+70O9L5L2fKDlGM4rQ2WAXsP4+P8ukkGWHQ
	 E+3mELp47+ZlSefKHEMu9QPo1EcJ8pwQs2qT8jwfjb0rSCLOP+8XFDnxWWwzjOce/Y
	 Si74+KyEynDrg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=201/2]=20amd/iommu:=20Always=20atomically=20update=20DTE?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1762961874465
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>, "Jason Andryuk" <jason.andryuk@amd.com>
Message-Id: <a14812d39743f5f49614d099bdac6720bf7c4fae.1762961527.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1762961527.git.teddy.astie@vates.tech>
References: <cover.1762961527.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.ca881e3520284e09af5a0d4a5edb2e05?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251112:md
Date: Wed, 12 Nov 2025 15:37:55 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

amd_iommu_set_root_page_table chooses between updating atomically
and non-atomically depending on whether the DTE is active or not.

This choice existed mostly because cx16 wasn't supposed always available
until [1]. Thus we don't need to threat the non-atomic path in a special
way anymore.

By rearranging slightly the atomic path, we can make it cover all the cases
which improves the code generation at the expense of systematically performing
cmpxchg16b.

Also remove unused raw64 fields of ldte, and the deprecated comment as the
function actually behaves in a more usual way and can't return >0.

[1] 2636fcdc15c7 "x86/iommu: check for CMPXCHG16B when enabling IOMMU"

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/drivers/passthrough/amd/iommu_map.c | 78 ++++++++-----------------
 1 file changed, 25 insertions(+), 53 deletions(-)

diff --git a/xen/drivers/passthrough/amd/iommu_map.c b/xen/drivers/passthrough/amd/iommu_map.c
index 320a2dc64c..e3165d93aa 100644
--- a/xen/drivers/passthrough/amd/iommu_map.c
+++ b/xen/drivers/passthrough/amd/iommu_map.c
@@ -154,69 +154,41 @@ static void set_iommu_ptes_present(unsigned long pt_mfn,
     unmap_domain_page(table);
 }
 
-/*
- * This function returns
- * - -errno for errors,
- * - 0 for a successful update, atomic when necessary
- * - 1 for a successful but non-atomic update, which may need to be warned
- *   about by the caller.
- */
 int amd_iommu_set_root_page_table(struct amd_iommu_dte *dte,
                                   uint64_t root_ptr, uint16_t domain_id,
                                   uint8_t paging_mode, unsigned int flags)
 {
     bool valid = flags & SET_ROOT_VALID;
 
-    if ( dte->v && dte->tv )
-    {
-        union {
-            struct amd_iommu_dte dte;
-            uint64_t raw64[4];
-            __uint128_t raw128[2];
-        } ldte = { .dte = *dte };
-        __uint128_t res, old = ldte.raw128[0];
-        int ret = 0;
-
-        ldte.dte.domain_id = domain_id;
-        ldte.dte.pt_root = paddr_to_pfn(root_ptr);
-        ldte.dte.iw = true;
-        ldte.dte.ir = true;
-        ldte.dte.paging_mode = paging_mode;
-        ldte.dte.v = valid;
-
-        res = cmpxchg16b(dte, &old, &ldte.raw128[0]);
-
-        /*
-         * Hardware does not update the DTE behind our backs, so the
-         * return value should match "old".
-         */
-        if ( res != old )
-        {
-            printk(XENLOG_ERR
-                   "Dom%d: unexpected DTE %016lx_%016lx (expected %016lx_%016lx)\n",
-                   domain_id,
-                   (uint64_t)(res >> 64), (uint64_t)res,
-                   (uint64_t)(old >> 64), (uint64_t)old);
-            ret = -EILSEQ;
-        }
+    union {
+        struct amd_iommu_dte dte;
+        __uint128_t raw128[2];
+    } ldte = { .dte = *dte };
+    __uint128_t res, old = ldte.raw128[0];
 
-        return ret;
-    }
+    ldte.dte.domain_id = domain_id;
+    ldte.dte.pt_root = paddr_to_pfn(root_ptr);
+    ldte.dte.iw = true;
+    ldte.dte.ir = true;
+    ldte.dte.paging_mode = paging_mode;
+    ldte.dte.tv = true;
+    ldte.dte.v = valid;
+
+    res = cmpxchg16b(dte, &old, &ldte.raw128[0]);
 
-    if ( valid || dte->v )
+    /*
+     * Hardware does not update the DTE behind our backs, so the
+     * return value should match "old".
+     */
+    if ( res != old )
     {
-        dte->tv = false;
-        dte->v = true;
-        smp_wmb();
+        printk(XENLOG_ERR
+                "Dom%d: unexpected DTE %016lx_%016lx (expected %016lx_%016lx)\n",
+                domain_id,
+                (uint64_t)(res >> 64), (uint64_t)res,
+                (uint64_t)(old >> 64), (uint64_t)old);
+        return -EILSEQ;
     }
-    dte->domain_id = domain_id;
-    dte->pt_root = paddr_to_pfn(root_ptr);
-    dte->iw = true;
-    dte->ir = true;
-    dte->paging_mode = paging_mode;
-    smp_wmb();
-    dte->tv = true;
-    dte->v = valid;
 
     return 0;
 }
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 15:38:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 15:38:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160078.1488310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJCv4-00089e-Ov; Wed, 12 Nov 2025 15:38:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160078.1488310; Wed, 12 Nov 2025 15: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 1vJCv4-00089X-Lu; Wed, 12 Nov 2025 15:38:02 +0000
Received: by outflank-mailman (input) for mailman id 1160078;
 Wed, 12 Nov 2025 15:38:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OM5g=5U=bounce.vates.tech=bounce-md_30504962.6914a9d4.v1-98f689ac8ef6429eba55bb534baecc65@srs-se1.protection.inumbo.net>)
 id 1vJCv2-0007vC-HH
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 15:38:00 +0000
Received: from mail136-17.atl41.mandrillapp.com
 (mail136-17.atl41.mandrillapp.com [198.2.136.17])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 912f6e0e-bfdd-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 16:38:00 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4d66x00cdYzPm0Zms
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 15:37:56 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 98f689ac8ef6429eba55bb534baecc65; Wed, 12 Nov 2025 15:37:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 912f6e0e-bfdd-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1762961876; x=1763231876;
	bh=kCjQ/w4mi64pHFYbQXYYAj4/n0muw09kfLASyhbwR3Y=;
	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=J0hi8lk5FCgyJsaDLkkVsDEOmpJGDK7vPr06fWvfA2+bO7hhLghFQ+lPH163R+25m
	 3gJw1Ru3vVU5ZoKgyStzHbuf+Js+IJS+3QOBY66ccblc+S9RwTdUtn/OHs0t6r1IwD
	 MnclgqeawIFwfgInb6DBTNFMtwPAYE9Mfm2XUHKOvJCrsxyIaI6DkypTmCAkJdzjXi
	 5RkQCUFwRX4/IK7BGbI8ovOcDEBp47WGb9xRSOzGDMxb6E1IovPvXxnPP80gE0P+wr
	 Aep/USDeXGxSPKKX9v6/t9ErEzaFBQD94VUWqKbujnKN69IVQfqP4hacQVlSmKgIuT
	 MyalPI2MgJZQw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1762961876; x=1763222376; i=teddy.astie@vates.tech;
	bh=kCjQ/w4mi64pHFYbQXYYAj4/n0muw09kfLASyhbwR3Y=;
	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=vgaj0LtADCuCvad7mQ7zgjGaGFNrB9WaMwLciqRruKy7vqv61JGa2eSZ7jspe8rdj
	 qF5PlAmFpMICfzH8SHu+dY+D7Z6XdhIWPhd++wJH9n5ORxrE0yrAruneXAQBdoGB1b
	 NBTPR+u44I+rk33Hm9mM9Ks+KWBy7nBPAQ+iLs6ask57Mh8vU/rmHpu0n/krm/9duZ
	 Yhz6etH5dsBMNonBO2fxPDwOKs9mFfMdpKvUHeBtemBsRpFyLXomUw1hv+7uAWzk8m
	 zShoZql9b/d13CoMMp4WFb81LfUIno/EiMgNBYap5XHHgd4q9RS3Q3DHUZsiBUyPxf
	 O02sYDc7HPxxg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=202/2]=20amd/iommu:=20Remove=20dead=20non-atomic=20update=20checking?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1762961874950
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>, "Jason Andryuk" <jason.andryuk@amd.com>
Message-Id: <b0e81bd67c3f135a4102d12ed95a52ce56482992.1762961527.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1762961527.git.teddy.astie@vates.tech>
References: <cover.1762961527.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.98f689ac8ef6429eba55bb534baecc65?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251112:md
Date: Wed, 12 Nov 2025 15:37:56 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

When updating a DTE, amd_iommu_setup_domain_device() would check if
the update had been non-atomic (i.e rc > 0) and throw a warning if
such non-atomic update could be dangerous.  However since commit
3fc44151d83d, rc can no longer be positive, making this branch
unreachable code.

No functional change intended.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/drivers/passthrough/amd/pci_amd_iommu.c | 18 ------------------
 1 file changed, 18 deletions(-)

diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/passthrough/amd/pci_amd_iommu.c
index 3a14770855..02eee4e658 100644
--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
+++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
@@ -225,24 +225,6 @@ static int __must_check amd_iommu_setup_domain_device(
             spin_unlock_irqrestore(&iommu->lock, flags);
             return rc;
         }
-        if ( rc &&
-             domain != pdev->domain &&
-             /*
-              * By non-atomically updating the DTE's domain ID field last,
-              * during a short window in time TLB entries with the old domain
-              * ID but the new page tables may have been inserted.  This could
-              * affect I/O of other devices using this same (old) domain ID.
-              * Such updating therefore is not a problem if this was the only
-              * device associated with the old domain ID.  Diverting I/O of any
-              * of a dying domain's devices to the quarantine page tables is
-              * intended anyway.
-              */
-             !pdev->domain->is_dying &&
-             pdev->domain != dom_io &&
-             (any_pdev_behind_iommu(pdev->domain, pdev, iommu) ||
-              pdev->phantom_stride) )
-            AMD_IOMMU_WARN(" %pp: reassignment may cause %pd data corruption\n",
-                           &PCI_SBDF(pdev->seg, bus, devfn), pdev->domain);
 
         /*
          * Check remaining settings are still in place from an earlier call
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 15:38:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 15:38:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160079.1488320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJCv5-0008OP-Vj; Wed, 12 Nov 2025 15:38:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160079.1488320; Wed, 12 Nov 2025 15:38:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJCv5-0008OI-Sb; Wed, 12 Nov 2025 15:38:03 +0000
Received: by outflank-mailman (input) for mailman id 1160079;
 Wed, 12 Nov 2025 15:38: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=6SUh=5U=bounce.vates.tech=bounce-md_30504962.6914a9d3.v1-e949b06b9e564745b25a47e47821002d@srs-se1.protection.inumbo.net>)
 id 1vJCv5-0008Gb-BG
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 15:38:03 +0000
Received: from mail136-17.atl41.mandrillapp.com
 (mail136-17.atl41.mandrillapp.com [198.2.136.17])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8fbb0437-bfdd-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 16:37:57 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4d66wz4Zw9zPm0Pgv
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 15:37:55 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 e949b06b9e564745b25a47e47821002d; Wed, 12 Nov 2025 15:37: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: 8fbb0437-bfdd-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1762961875; x=1763231875;
	bh=bAIekkhp/BKtr62/rlriAxaCAr8fs4tufSc18XCcYVQ=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=x/yp2Qn+qLhavL2KM547Fovgwuv9oNIK2KTgLlJLpHaPgzv2LN7czhImJ8/aQpVjR
	 cdbItmqJ6s2tJ0Ulrtd499eon0imTy/imRbCL1z/gm9ThcQeKMApbhcgjTp04nszGq
	 29Bs1oR3S7ETYEyDoIiZkYinK4ANRrHaKvIXJM0Ap2sliE+21NZngFkPqOAcIr7g7M
	 VdQZvR7F32rVWEGfMZQn3oLfs+aO+Gv0vmNeqkOpRTowzCjiOBAnWPeShcvdfGghI3
	 DyBZm0wKfvuVlrA7KkLi35ErTzRRBYHVQ3u4Jne21aKPQPC0T52t4R87Iud5b4vgL8
	 sHgv8C31pmKuw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1762961875; x=1763222375; i=teddy.astie@vates.tech;
	bh=bAIekkhp/BKtr62/rlriAxaCAr8fs4tufSc18XCcYVQ=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=shzVzP9NaOuH2XW3KVE6PaRxv5Fc35UcPSQCewPHg2TK2AAzKw4L5DTnERqv081nH
	 quPiHRpcAa7Z08fLp9ItY5Yq5fZ9MDDjNix5k7a/xRXrlQFsjP/3gsiqbrN8EB/hXy
	 UayVtITSPkh5MzpTkHLZ8R/8kfy6Ss1Qmg2buwIg01o4x8BNc6q44La3WZqz2IFZ6i
	 +Wa1DXUhW7NrpKmTTHg6colNJ+WpPDuuvJDW3vSu26k6ZQFV+riqsGKz08pGMbeoRu
	 gcwxuPmMD5iXALMayo7/61sAEBdQDWhU8obPoVuexSt+WiBWbbxq8EbJvKL070VxbE
	 1OKjXbAtyIjig==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=200/2]=20AMD-Vi=20cleanups=20around=20domain=20device=20setup?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1762961874207
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>, "Jason Andryuk" <jason.andryuk@amd.com>
Message-Id: <cover.1762961527.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.e949b06b9e564745b25a47e47821002d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251112:md
Date: Wed, 12 Nov 2025 15:37:55 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Various simplifications (redundant logic merging and dead code removal)
with no expected impact on effective behavior.

Teddy Astie (2):
  amd/iommu: Always atomically update DTE
  amd/iommu: Remove dead non-atomic update checking

 xen/drivers/passthrough/amd/iommu_map.c     | 78 +++++++--------------
 xen/drivers/passthrough/amd/pci_amd_iommu.c | 18 -----
 2 files changed, 25 insertions(+), 71 deletions(-)

-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 15:38:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 15:38:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160101.1488330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJCvT-0000nK-7S; Wed, 12 Nov 2025 15:38:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160101.1488330; Wed, 12 Nov 2025 15:38:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJCvT-0000nD-3p; Wed, 12 Nov 2025 15:38:27 +0000
Received: by outflank-mailman (input) for mailman id 1160101;
 Wed, 12 Nov 2025 15: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=K5hw=5U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJCvR-0008Gb-Sp
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 15:38:25 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9b17f5bf-bfdd-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 16:38:16 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b727f330dd2so159636066b.2
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 07:38: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
 a640c23a62f3a-b72bf723172sm1603651966b.32.2025.11.12.07.38.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 12 Nov 2025 07:38: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: 9b17f5bf-bfdd-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762961895; x=1763566695; 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=rvdn/YOEw/NnNm8kV+DjBN/TshsYdk9FMorxA63YZUM=;
        b=HwjvDR3z83Oih77XawyXqnqWur0Iszx7pasyACezccX/t6Am+jnebQX2PCf7iEWO2e
         i8lZBead5/twKQ0MQuF4YwGKGGBBhZJSGbU3w29bC50tgOZtjXIS7ODMjF/Qsyn9q1W/
         QknuGO/rWVrape8PQ8Y8lkmQPDIWJPezVRRKrFAhflkH2sVmEoiQvBENj9F3W73MZl16
         gcm+jrcXaCt16EYMo7zNyGz3t6tmveff4pkkmMX6plvgi5ZOfUHzsW13ls5fBkyyDRPG
         ZT/i50Hpx6TSScthUGoTX6mB742/j/WJhtotob2KEyxnnP5MHtjLnNCYPEIyFaNY6ptn
         88PA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762961895; x=1763566695;
        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=rvdn/YOEw/NnNm8kV+DjBN/TshsYdk9FMorxA63YZUM=;
        b=uWtGEdqcJ4VCFtfxI1dfxMOjMDyoFwinXAqBCBAx7kMleQWVJ/WwrmXDE3JWp176Ho
         7uG4hd8SCHFMDw/jp4NPq4iDFaN3ZwQGe6Ih5PZoW5kjEESAViwbC063Z1jfx8tjZhQN
         fYcdfJXs3N+nJP8nuifY8qAxnGAK2WKS8mSFy3IxBurR7gKuuBgHPIxwAuXrh61Dg1MB
         196zuuYWY5LZXJm3dWqOW5kJ2ZGdTrt/lAB23oGD7QgEhGZNZnLvGg4j1oykK+agw8yB
         nhJP5Aig7rADuuE7IqeKiiuTpSBwn+3Jf+Ar8nD+mzKnDVJQJLgfoJAL+g+xvqsSf8Ke
         vD4w==
X-Gm-Message-State: AOJu0Yy+sYWsOWb6CfZhTST+UidGf8mivzP+7WcPGtEBJ0Q2U9KWlG1d
	yk0Rgpc5QD0xBnEep4cRmbYa+iaWuppIvigQD3m6ZHGGffqgGVUNNKGmWBeMaNLH0NlWo1xWzlA
	0COY=
X-Gm-Gg: ASbGncvgVvdJUpp8wFPzgSDeCvEm8u/ArYfOL4baS0oUBnpMtjL+12vMvYgaieQAWcg
	X+E4ZyQXWnIO0ZD2PQnamEhmLfX2MdBt4J+KMLCSwbLdV2QLmgnIOoK7ka+lKxQqgVmTywm35XY
	1Nmb5nVpf7DEzPz0xWZSDmWCCjSxcJ+Jyxko9FFHmfjOpKVSm3bLn6NM9lEte8y2jTPyStHBRPO
	TkyPN5mBL8SnaEsSGdnDu1SHXECB9gfxulue10K6XFXWuBhw/8Q/xZUK3ha2ulhj93P9n49XS61
	0apCpho83RCmsAaZ0Lu1xm6KfgxN48DQgLTrFKCUd6qKj/tGpx0Bpc6/dV+r+WxsUYKASOYHdea
	hOpcAvhXKnYu/x9trLGu7R7CzMOuulMvQ5Uh1BspsZ9vymbGZbaxit9hzLQ8o1WnWJ6H4+OFwMT
	AWIIUEpquT/5lcxMXqf0ssVspcAaXdPl40pAbVRnUPdgf2V3/ciW+ATAbaR3N3yfUb
X-Google-Smtp-Source: AGHT+IFk+RTd/pu58Fj0kLi5co02NEQH384dGAfAnPx5TLBwVNmjmnvwAxLXYV/QjLkYlo6nNMgcjg==
X-Received: by 2002:a17:907:60d3:b0:b28:b057:3958 with SMTP id a640c23a62f3a-b7331aec36cmr336231666b.48.1762961895446;
        Wed, 12 Nov 2025 07:38:15 -0800 (PST)
Message-ID: <af03f611-ef38-49d0-ac7b-4bad39db46c1@suse.com>
Date: Wed, 12 Nov 2025 16:38:13 +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] core-parking: shrink and relocate core_parking_cpunum[]
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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 NR_CPUS-dimensioned array is likely unused on most installations.
Therefore it is especially wasteful for it to consume more space than
really needed. Use the smallest possible type.

Further the array having all fields set to -1 is actually useless. Nothing
relies on it, and core_parking_remove() doesn't restore the sentinel for
vacated slots. Drop the initializers, moving the array to .bss.

Finally take the opportunity and update an adjacent variable's type, where
a fixed-width type was pretty clearly inappropriate to use.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
I assume there is a reason this is acting (mostly) as a LIFO. Else a
simple cpumask_t would suffice.

An alternative would be to use the new BRK allocator, at least for NR_CPUS
above a certain threshold.

--- a/xen/common/core_parking.c
+++ b/xen/common/core_parking.c
@@ -27,8 +27,16 @@
 #define CORE_PARKING_DECREMENT 2
 
 static DEFINE_SPINLOCK(accounting_lock);
-static uint32_t cur_idle_nums;
-static unsigned int core_parking_cpunum[NR_CPUS] = {[0 ... NR_CPUS-1] = -1};
+static unsigned int cur_idle_nums;
+static
+#if CONFIG_NR_CPUS <= (1U << BITS_PER_BYTE)
+    unsigned char
+#elif CONFIG_NR_CPUS <= (1U << (BITS_PER_BYTE * __SIZEOF_SHORT__))
+    unsigned short
+#else
+    unsigned int
+#endif
+    core_parking_cpunum[CONFIG_NR_CPUS];
 
 struct cp_policy {
     char name[30];


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 15:39:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 15:39:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160119.1488339 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJCw5-0001Sp-EW; Wed, 12 Nov 2025 15:39:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160119.1488339; Wed, 12 Nov 2025 15:39:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJCw5-0001Si-Bn; Wed, 12 Nov 2025 15:39:05 +0000
Received: by outflank-mailman (input) for mailman id 1160119;
 Wed, 12 Nov 2025 15:39: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=K5hw=5U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJCw4-0007vC-Iz
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 15:39:04 +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 b7a894ec-bfdd-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 16:39:04 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-b71397df721so157016166b.1
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 07:39: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
 a640c23a62f3a-b72bdbc9656sm1633664466b.7.2025.11.12.07.39.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 12 Nov 2025 07:39: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: b7a894ec-bfdd-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762961943; x=1763566743; 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=kYT8qoqnprdkjXlqI1OoX8dNcvzXGPzmLDAARTBQY5E=;
        b=fGoYH7d/ELZPH9du88k69a0sK2D4ad3v5m7mCGTpau4qoi06Th00Az4QQ/LsHCtjmJ
         r7mAmKdjP5QQr2DdwtlwKBlAryuGLRp6zJmPjUfDW5wwOC4O3kJ4aS3TD/nqOM7PLyre
         7IPPj9lsN+pvMeY9aagjgZ/2x7qXaENcuQMfkkyj+6yY+6hBujKaQqLYTIjI5pt9vSn0
         IWJluK3nwaGq/zBfQ8nOLro9O08uXT3khSfYpelom0m2nQIR8GobAB/BraixbgrsG0qK
         y6quAGTZAkMSx/r5Yr8crIxaAW+ICE3Bf3W/4xJ4/Ou59qYJeSqkvTzhMSE3JeLw3aL4
         PCMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762961943; x=1763566743;
        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=kYT8qoqnprdkjXlqI1OoX8dNcvzXGPzmLDAARTBQY5E=;
        b=FwjgU9EAwlp0pa0naGvEG1vfQ0itkPumSb4bOoasmCpk05YTaYNhLq9PQdL4PUwYgU
         mfuZ0de19gywx68RzVNdLFdtmnZLRijzhEwNthasuQCoZ6l1QYiWCqQr75MDLaQiFgAp
         xrQSuYOOMLepV3Ba1StZHLYcKDpcAnvRHphfsco8OZ0zhp8eK0s/nsZok8VLSP/ugW7w
         UkoqE1q/kmBAikk3TDx738sjZbgOslrJtNHcpqv1EwgmrbutkyEPDJWxzfbvJ64Yolcn
         HvVqsqdodLqCrZAE2DGm4XmXbk5tH12KxnLGS8TlLkt0O1mxKBrL+XGdJm/rHcg6KVUq
         tzCQ==
X-Gm-Message-State: AOJu0YzDHVWIc6CAIxIbjZDthlzPSfIcgo224B8dVB1Brxl6xXgHwkBQ
	J2onGA0zMxgyiHb7rFn8VJIGkftd/nz1/4C74kd3UY+/JVuxWh558iq5xrMFTBhTuFa1bioBxDU
	z2IQ=
X-Gm-Gg: ASbGncuTCl1Y3fdmsXRWKv9t/RcyC/797HLRrYJoGkloxNPNwv4JOJsws/h1M75FFJI
	ov4YIt6sIQdOJOrs9Y5UQ2y9o8la5GC8WLTDHp7yL8dJXgJWJXdMqt0z2uULLVebOndLYGlGjhR
	Du/t48KnkMHM0QCcWe8sPwmVFopXXpPH4Wv393m+aw7SgW9ZIXW3U/QS/Zy7ZDSv90nK4KnWb0S
	dUHzMLhLfhprGLiFZi+s7LINInkPPhnNatN4td3NUNiUiWGpsD2Uc70ZgS4JDabqy6EoLTm+GHU
	I8wTXstupiUfrLATrNsDC/u7NQeyJj8lHGEt8oSde6TEGNWIadbumGLL7Ht0jqd12delqwX22dn
	yK6xi76vNj/fgCQdEV2I7oAkXIFUgEdsss0cNAEcWSXMZswQjksl7y5ya9xt21TdwF1U1y2rut3
	HMDYbFfMpMy9o0rPpc7NK0leAifhyFl25F+CgywXp+jYStrzPP/Hu1XCmY7G0Hnob+
X-Google-Smtp-Source: AGHT+IFwR8ZmuJ/y07Tp1TJmMESrpC1W6wK+FNKST+o20axNFjm84y3H/Zbw2E/LEqP9u/+/rZmi/A==
X-Received: by 2002:a17:907:7f0c:b0:b6d:3f38:2969 with SMTP id a640c23a62f3a-b733198f05bmr397997766b.18.1762961943172;
        Wed, 12 Nov 2025 07:39:03 -0800 (PST)
Message-ID: <8f814892-9f20-436a-907f-f25b294a9741@suse.com>
Date: Wed, 12 Nov 2025 16:39:01 +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: there's no use for -mpreferred-stack-boundary= when
 assembling
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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 option is only relevant for C ones.

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

--- a/xen/arch/x86/Rules.mk
+++ b/xen/arch/x86/Rules.mk
@@ -7,4 +7,4 @@ else
 object_label_flags = '-D__OBJECT_LABEL__=$(subst /,$$,$(subst -,_,$@))'
 endif
 c_flags += $(object_label_flags) $(CFLAGS_stack_boundary)
-a_flags += $(object_label_flags) $(CFLAGS_stack_boundary)
+a_flags += $(object_label_flags)


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 15:43:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 15:43:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160140.1488351 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJCzx-0003aA-2a; Wed, 12 Nov 2025 15:43:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160140.1488351; Wed, 12 Nov 2025 15:43:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJCzw-0003a3-V2; Wed, 12 Nov 2025 15:43:04 +0000
Received: by outflank-mailman (input) for mailman id 1160140;
 Wed, 12 Nov 2025 15:43: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=K5hw=5U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJCzv-0003Zv-8s
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 15:43:03 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 45ba9896-bfde-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 16:43:02 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-640bd9039fbso1796357a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 07:43: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
 4fb4d7f45d1cf-6411f86ea13sm16131405a12.37.2025.11.12.07.43.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 12 Nov 2025 07:43: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: 45ba9896-bfde-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762962181; x=1763566981; 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=9SFf8juCkudErh44zooLXSedZjoB2NxiVe5ocYoeq6g=;
        b=QbLWJynL6RyeE/wxueJWfT/itO3eGu4NeoEw/i/jReDoMeLE5S2x1aZkom8BbBLiQQ
         qmKTM9ouDjuz+S13ERM7gI2dSai19At1Wmb7674a7LDpHjqAHQxsrwhNwQ3cItejXVm5
         FjtQDJUlTweD0XP7Oyi+lYz0gpWEWcvYK+pYMpUV4Fxv0/DZNlM0zmcPfAvnQwvH39o5
         hv5+JzZo/dD/iBzpE6bWBonoN3ULAOqZYx2FcCoWcUuoJ0UKPY08oa/T90kSlfK+tbLh
         x7T7no6Km0YAqeOFyM0iM0pmocxVDRFUOk2WpsyPZQVkIlyYuw9jRwe+U53fdgmK3ENU
         engA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762962181; x=1763566981;
        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=9SFf8juCkudErh44zooLXSedZjoB2NxiVe5ocYoeq6g=;
        b=Pv+zxJEM8rbHht6Ozzkq22O1jLe7I0fsZ85gQFULXrZKZj7UQ2asz0c9IhEfnGsIt0
         JHhWuxogIXXJjvetQnqhASZVaoAGQ9WfgK5PGmqwn0nqF+z0ot0+J+GZwMNHq20/V1S8
         5xuatJ7sratMFlHedJiSwvkmDNlbItDAFI8AApwR8loP+gv8ZW1X0Esw2Ro8RF1pw/zv
         /boupvfVL8xTqSLKdqw3tas8m6e1uj9lLBWtK+6mB0SS2OoYYfRqlxzns4Q7ZDJMNDdM
         iHU6VtvCOs2W5MDgDXa1gsLJyjfGRTwqQI/SpHIGb61cDm0Qrnzl5+V5seK8QEavUHxa
         Ug3w==
X-Gm-Message-State: AOJu0YzF0Dyc66X3iLicB1T9iZLVg16p5nUXKLeFyb5Czkzo0bOlZozB
	PqdY+lXJ3DS7AZQLNl++7VSp2Fn0uFV6N2dV8vVcDx8ZeLwl51YDKgSuWNoH2f7mZtX6FpYNRdU
	/78o=
X-Gm-Gg: ASbGncsm6CrDTQyaho5bS5HfZkyCY2F2PP6jEC20m2F1zF9gdpC1jWyKrE293bwDdlN
	1i7c34Dk8vlnPhb2d0akpHcvNNoV8kfcXMmP/eFYEkwWzI4z7py+FMJnwQ3Eo78pzuj3X7BBG7V
	QQJDgGnV3k/oIS67BjeDBVH4Y5VF96vhdX7Q704IjgCdQy6zwfqX55fEK67pHRKpjNJz5/A91oJ
	nMwWlUdQp6GlpVT/f6QF18aUExg5PXxbCYdN+lG9Dp4S5dsD9XF2reQ9ehqLQqKTZ8igQG+61RW
	aNZAtIm3mkbRdYoVCmAMjBgteJsaolX6UBWJ+MAKpdlo+AeZNSuO1td/TM+lP3D+jgRJ+1/Mn9L
	1hvlwSRDd7M0KIjOGlpXHzVdVCILa51WZbFPqOqnlnPUdMNRu/M4Fl1l0LlaukvLT0rwZuvoT7b
	KJkHV5w7yjwbHqlEzyDnpnQQPmA//IIfNZxFxTyIy8JE2EvkdxpPqy2Mp4utaO1Z3X
X-Google-Smtp-Source: AGHT+IFc0/J/d2hr8fjKhIdErXbuFbWyu/1KJ6vm965wQOHY7XU7H0ofR2KAgmcBjTdUd+9T1F+oLw==
X-Received: by 2002:a05:6402:40c6:b0:640:b1cf:f800 with SMTP id 4fb4d7f45d1cf-6431a39286bmr3055364a12.4.1762962181555;
        Wed, 12 Nov 2025 07:43:01 -0800 (PST)
Message-ID: <88bbddc8-61cb-4284-9b0b-9735a4a8099c@suse.com>
Date: Wed, 12 Nov 2025 16:43:00 +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/IRQ: use LOCK-free bit setting in init_irq_data()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Much like done later in the function, syscall and hypercall vectors can
have their bits set without use of LOCKed accesses.

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

--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -450,12 +450,12 @@ int __init init_irq_data(void)
 
 #ifdef CONFIG_PV
     /* Never allocate the Linux/BSD fast-trap vector. */
-    set_bit(LEGACY_SYSCALL_VECTOR, used_vectors);
+    __set_bit(LEGACY_SYSCALL_VECTOR, used_vectors);
 #endif
 
 #ifdef CONFIG_PV32
     /* Never allocate the hypercall vector. */
-    set_bit(HYPERCALL_VECTOR, used_vectors);
+    __set_bit(HYPERCALL_VECTOR, used_vectors);
 #endif
     
     /*


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 15:45:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 15:45:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160151.1488360 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJD1y-00047h-D5; Wed, 12 Nov 2025 15:45:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160151.1488360; Wed, 12 Nov 2025 15:45:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJD1y-00047a-9s; Wed, 12 Nov 2025 15:45:10 +0000
Received: by outflank-mailman (input) for mailman id 1160151;
 Wed, 12 Nov 2025 15:45: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=K5hw=5U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJD1w-00047S-7S
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 15:45:08 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9061e42e-bfde-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 16:45:07 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b5b823b4f3dso145226866b.3
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 07:45: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
 a640c23a62f3a-b72bf9be009sm1599906566b.60.2025.11.12.07.45.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 12 Nov 2025 07:45: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: 9061e42e-bfde-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762962307; x=1763567107; 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=QjhqL87pzp+2XHaJgFqLk9Y6GoXRUy4qE8hyCMxk1sc=;
        b=VeWKIflHGvL/AobxzZzK38lyr4ik6qH8PzOUuALdbSEu/At9kCXy8FHXxjeQK3MIXy
         BkZLj2HuJ0ARxOLPSpb4e6ySXr13pOpw6daHh8OZnHgM3PxG70SDz5S2tyqKnKxmgq+B
         tJP7kz4nVyhGIOKc743bA/QYIc5ZkAVDCCAPasTutBMvz5lhAEyBh1xRDDS+TpqFAkhK
         1tm2YDXq0c/KHrf8LVOy+0JpGdNr48Tlpa4BB+TwRm6qzGIJ4UBfJpOsGH77MgQQ+yVI
         YKwa6rmKfW/gzA6wh8GVravet0P+eaDNZRHGp3EAV4oMgOgSU9pNwrwlRx7pLqqZc/3U
         Fn9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762962307; x=1763567107;
        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=QjhqL87pzp+2XHaJgFqLk9Y6GoXRUy4qE8hyCMxk1sc=;
        b=M54CCpO4mtjixiLtccfF8ypP4lvYlhafc6OuhwSbvYcenluJGRVYOlSikaDuoeq90M
         nNYEFHbx3PAKsjn3RoVqfRjuMztMNt4mu+Os3GRSTCXcejgCZbPs0z4/hym1MQFEsqMB
         bIu3XdlPU6FBEYVkzUmNLJaANJvMXpC/h4cytGIuyu5MzjDqT1sR4rgh19aE3Anj/xvR
         kkhrn6dR/48MNFGVNJnEXXjC9sRq+im0ye/NjL53wiVJfBZE4rK/i5I+lG/Zf7C+6++v
         wMOBQkLtZHE46yIVfnNrXvbWKEUQsoKXX+JI0GyIDzY5zJ/ppteFgu5Q9fMM3Bn9La9i
         IsYA==
X-Gm-Message-State: AOJu0YxQ4JSP8LmOUrlb9WdFLLkSjMIJnKFrb983VoBL26wojn4s7zc1
	O4FSlwTg0QT62pMW5soxBmoOFHpC1Cl928zNJoVhzUrddjaC5LdNRKwbz9ZrM+yPVPo/BR3M6Ai
	1iwY=
X-Gm-Gg: ASbGncvFJqB63slWZCKZfzeVVyWbwr8ew9AvlCgWDQ2AQoB8+HGWYvKWHfcWB7Eq42y
	QlmLWSmr3LGsa7n6wW4LxMAwr2Um+411S/bExUu9T2Ooqtg8xTKxB/UWyOF636q1MXXjftaXiFm
	2CZMrX6m+WVruGB9Ez9YAPTFn1AiRVXHdaGZSYa3BH89822HlVMc3XYzFTn+Ryn3AvIcCj/NHdB
	V+ehVVP7mNwJluDqok/xQJP+5rfvN6DD44X6/F2xp6t3rlDmA1tpE81pSEwi/2209SeVIhQzB3m
	0Sb9PmF3G1H7/Def6n9mjF4n8gvebNKLVMdKjlRC3kIoBFMy4LIbIQqeup8GQewYnJgCPbshvxX
	JvSuSGmF4h4ng5LshkdZXfSpbXJfEe3dirkT50qmJbSKG/GXqcvn/jOri4nS0Nz4DnYvzkhNymS
	Me22yItDzOr6vXICIm/vZOwaTayrtQk7pjzDVRCnIj5AKsLv0HEZFA2uTxhlGiJ8jv
X-Google-Smtp-Source: AGHT+IFFSO4oEiMOFKN16gV7CFuTZ6lC17oVGjwrmomRLYFiqmIEzUVTYQhsDR0TrKfLTDWi/dwJwA==
X-Received: by 2002:a17:907:9717:b0:b72:51fd:5a5f with SMTP id a640c23a62f3a-b733197086cmr339607766b.1.1762962306540;
        Wed, 12 Nov 2025 07:45:06 -0800 (PST)
Message-ID: <52227196-dbc9-4f6d-9c64-a5da5037b1ec@suse.com>
Date: Wed, 12 Nov 2025 16:45: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>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/MSI: adjust permitted vector range
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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 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 )
         return;
 
     if ( cpu_mask )


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 15:47:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 15:47:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160162.1488370 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJD4I-0004fr-PB; Wed, 12 Nov 2025 15:47:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160162.1488370; Wed, 12 Nov 2025 15:47: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 1vJD4I-0004fk-MZ; Wed, 12 Nov 2025 15:47:34 +0000
Received: by outflank-mailman (input) for mailman id 1160162;
 Wed, 12 Nov 2025 15:47: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=K5hw=5U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJD4I-0004fe-6U
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 15:47:34 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e7476ff6-bfde-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 16:47:33 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-b7277324054so142448666b.0
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 07:47: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
 a640c23a62f3a-b72bf97d0ffsm1679868966b.46.2025.11.12.07.47.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 12 Nov 2025 07:47: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: e7476ff6-bfde-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762962452; x=1763567252; 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=iy7oTaOzKlzz8YelCHtRD+AO8mQ+0asw2evB4QFPDgc=;
        b=P/FrKfnxw9Tcj8rn3jYqTypYf4qfLn5IPRBb8NjFsuWguz5MyXBCSfmR0JVvqNBnoC
         gz9wXWdL64MxaJ6g3zso5N1irQFUQVh7flDpy1RSsUNnvM/uCmF8RQtSG24fo1ut57xw
         3OTFuAanWpl+11dSae8mifUwRULbdJ8U8NJck3+vDLx0wmJ3S3+XbBaLY4kMuhuM0Wj1
         hY0AvXKzc0Oz9bOEh2NCt7qNaPLx1MS9Sq2opV29IMp4TkTO2ck2K3vnAlxzXwPs2xFv
         x2udviG3QlGTYQuWVC1Xp4NNtQKXTmtuUui3bcUGzKBE8L0JYvAE187Q0m9q1cZJJrn/
         Fueg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762962453; x=1763567253;
        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=iy7oTaOzKlzz8YelCHtRD+AO8mQ+0asw2evB4QFPDgc=;
        b=qT10HC6vmSiizmroSgdLqCCXMrgRxNAYXxT5x8IY6EOlbfb4eB37aa4FS/TXUEefSq
         oCxj66TayIO6Nnl8b6r0+QJpx09qEQF9X8PFsUa5A+gpu9VMhhlMDoOlHhgNSqBC6weU
         WF2ejOgIkTDHDMTcxOWZSGS/DI7XU12PeVBnOsFW6tIscRy3qMqi3iG0y2LG9enDfujy
         VM/fCpwtlzdRNep76nyV81JLHA+DRYxEKHXQjnOfXxmWkyM3/J6XMuuqiwQV44Cybhpu
         rs1lFV/0dFNpKr/06AFI9mwFVWQoRqqrBg9Ivz4hVnaabRRbJUrr+bhb4Rsu2++xli6G
         krNQ==
X-Gm-Message-State: AOJu0YwUMbTAVMW6ZksjR1LHKsWsdCxc/fz7tna2w9ps3PacJEHeHGFD
	DT8p63Vim8UGeq0S3s+UrbptRD6DGE6oLbXbcc1ixxGK+/jv4WgN+4hIuXGSa7MXLDsrPGc71Sp
	lCAQ=
X-Gm-Gg: ASbGncsQaQt08LNcvckLtbud0dSDAZVv2AipQKKmm26bZEBI5/t94hhPkfGwkUUCeLG
	Ra9M4AxRQxuAYYZ5Lih6EivwsWgdVmqI4e/YSGGbb7gK6dlHLW1ECTgrTKISJOgYteQq8SiNxKk
	PsS3fpQJVRpR5mavzPVNUzcXarXCGfO8WKS0dVZwkIXJREuDxSCbUhgF0O2fQecR7M+HwSYgfPz
	CmGkoA7Huq6Iv1mAQb7YVZgWiI1ngnFJALuH/COjrlza4JIujuL07q2KXRLepU5LfKdememJovK
	S1CeAGh7KDVCMOLFJIhs5oPCWpqX0SxtsTRT0FEvBSnk6JGp3RHuwrz9To+R6q61k9mNKLrvra8
	NPgTK/1AcAYETDbN44zpmYfcRZzr8H0FvQC/lVJF59+5yt8m+xv6xPh9hA8lOdFKfFl2JziW59U
	5yOgzL6C6dmFChZCC0IR5wi8awJj8PE8ewoONMZwrrOIvKrFdQnabAz9iQW+diz0U1
X-Google-Smtp-Source: AGHT+IF7tOn23vYszST83UM72Zvl2x/2BvtxYZmhI+N07C2CK5tyZCcxDsNgsLgJzy31Qj84Hy6vcw==
X-Received: by 2002:a17:907:971e:b0:b72:6728:5baa with SMTP id a640c23a62f3a-b7331a373ecmr369499266b.25.1762962452564;
        Wed, 12 Nov 2025 07:47:32 -0800 (PST)
Message-ID: <3dce4f28-558b-495c-ac45-0f699da82458@suse.com>
Date: Wed, 12 Nov 2025 16:47:31 +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>,
 Penny Zheng <Penny.Zheng@amd.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/mm: split struct sh_dirty_vram and make results private
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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 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>

--- 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;
 
     /* 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;
     }
 
     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;
 
  out:
     paging_unlock(d);
@@ -1226,7 +1226,7 @@ void shadow_vram_get_mfn(mfn_t mfn, unsi
                          const struct domain *d)
 {
     unsigned long gfn;
-    struct sh_dirty_vram *dirty_vram = d->arch.hvm.dirty_vram;
+    struct sh_dirty_vram *dirty_vram = d->arch.hvm.dirty_vram.sh;
 
     ASSERT(is_hvm_domain(d));
 
@@ -1256,7 +1256,7 @@ void shadow_vram_put_mfn(mfn_t mfn, unsi
                          const struct domain *d)
 {
     unsigned long gfn;
-    struct sh_dirty_vram *dirty_vram = d->arch.hvm.dirty_vram;
+    struct sh_dirty_vram *dirty_vram = d->arch.hvm.dirty_vram.sh;
 
     ASSERT(is_hvm_domain(d));
 
--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -608,7 +608,7 @@ _sh_propagate(struct vcpu *v,
 #ifdef CONFIG_HVM
     if ( unlikely(level == 1) && is_hvm_domain(d) )
     {
-        struct sh_dirty_vram *dirty_vram = d->arch.hvm.dirty_vram;
+        struct sh_dirty_vram *dirty_vram = d->arch.hvm.dirty_vram.sh;
 
         if ( dirty_vram && dirty_vram->last_dirty == -1 &&
              gfn_x(target_gfn) >= dirty_vram->begin_pfn &&
--- a/xen/arch/x86/mm/shadow/private.h
+++ b/xen/arch/x86/mm/shadow/private.h
@@ -424,7 +424,15 @@ mfn_t sh_make_monitor_table(const struct
 void sh_destroy_monitor_table(const struct vcpu *v, mfn_t mmfn,
                               unsigned int shadow_levels);
 
-/* VRAM dirty tracking helpers. */
+/* VRAM dirty tracking support */
+struct sh_dirty_vram {
+    unsigned long begin_pfn;
+    unsigned long end_pfn;
+    paddr_t *sl1ma;
+    uint8_t *dirty_bitmap;
+    s_time_t last_dirty;
+};
+
 void shadow_vram_get_mfn(mfn_t mfn, unsigned int l1f,
                          mfn_t sl1mfn, const void *sl1e,
                          const struct domain *d);


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 15:51:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 15:51:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160175.1488379 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJD88-0006DU-8p; Wed, 12 Nov 2025 15:51:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160175.1488379; Wed, 12 Nov 2025 15: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 1vJD88-0006DN-60; Wed, 12 Nov 2025 15:51:32 +0000
Received: by outflank-mailman (input) for mailman id 1160175;
 Wed, 12 Nov 2025 15: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=Onbl=5U=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vJD87-0006DF-7v
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 15:51:31 +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 73111bb0-bfdf-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 16:51:28 +0100 (CET)
Received: from SN7PR04CA0042.namprd04.prod.outlook.com (2603:10b6:806:120::17)
 by PH7PR12MB6468.namprd12.prod.outlook.com (2603:10b6:510:1f4::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Wed, 12 Nov
 2025 15:51:22 +0000
Received: from SN1PEPF000397B4.namprd05.prod.outlook.com
 (2603:10b6:806:120:cafe::a6) by SN7PR04CA0042.outlook.office365.com
 (2603:10b6:806:120::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.16 via Frontend Transport; Wed,
 12 Nov 2025 15:51:21 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SN1PEPF000397B4.mail.protection.outlook.com (10.167.248.58) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Wed, 12 Nov 2025 15:51:21 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 12 Nov
 2025 07:51:21 -0800
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 12 Nov
 2025 09:51:21 -0600
Received: from [172.31.139.223] (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, 12 Nov 2025 07:51:19 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 73111bb0-bfdf-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TYdAOyFE+BJWMoetwofGts653UC6eVTlxsVeyHKX3jYH/tT4tu3lxOU10Zay8PG5plgH2NbzmH/jFjuyzgVDTtvtGTNFrtQ90UGsgEaQyFMpmeP4k07K0YbNRCsozNfkHaZ+fXUjkVXLBcxh7BSov7MG3wCckvVF81cwsAUixKCaIo2EXcQEFM+hSQBzLctgBw/zZK8pqR1NgbUSfiXCE3eJw9mi7U7pJfvgbR95ON0jYLCRnMqt2gXh8HvAqtPfmcKNv/+PVknJDf9VdeEDHsvA8dz6EpfE7ZwbtYUNNJDXu7wM/LRTx++8VP68vZiv9pnzuN9vJJ6jVIGZttol8A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HhOhxZSzbM/DBiNV0hItvRWwAI0FPi50RpxqEs3zpSk=;
 b=pLT89I49hdu2hdP3xO0QAy949YSisl6ZfmduHgHTchLu+GJFyZkWvn3TrJmSrlDdcRmyqOFYIsOthf/WXdm/XIH+eAVahJMRDNCrsFSjW4+/7lgI08k8UJhADPTSKmllq7+sraLb0zsxRuEY13LOjr14MuFBdNB6Tzi3qFpX9jSVqoeJ1znfRizhZ+UlbHrMVPzeb2GrR9GYz92IaJ/vLqMV/Go3mgE6swO1F5aIt1jh1gc3TnrMJdD/SG7bwYFv6R9hqRSmjx3UxfO9YQQu8TwKC05YNbStdDTBJZU4BV9lykdOR105lLOnlD3kpdgmT71tdhY9PDd1GkUOyLqVZQ==
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=HhOhxZSzbM/DBiNV0hItvRWwAI0FPi50RpxqEs3zpSk=;
 b=yXwhNbkOcmYOjqAz5kx+qWK7dMkP6yc4zDPmON0YY4y1922txeMO++z7Q5lAkpD4bzlSk3MDP5If399GVFf+jHHj7qPlZwOq+nkVB57c4CbIx/uHfJViTg1AuK8uYUDUpkLMB6ah/U8Dj5yfjig7WeUBiDwrgra6mcYfgJnwMq8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <8b9d7300-ef9b-497c-b6c7-3922edbb7f75@amd.com>
Date: Wed, 12 Nov 2025 10:51:20 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6] xen: Strip xen.efi by default
To: Frediano Ziglio <frediano.ziglio@citrix.com>,
	<xen-devel@lists.xenproject.org>
CC: Frediano Ziglio <frediano.ziglio@cloud.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Frediano
 Ziglio <freddy77@gmail.com>, Demi Marie Obenour <demiobenour@gmail.com>,
	=?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20251110153707.84879-1-frediano.ziglio@citrix.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <20251110153707.84879-1-frediano.ziglio@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF000397B4:EE_|PH7PR12MB6468:EE_
X-MS-Office365-Filtering-Correlation-Id: aedf1aa3-461b-43fe-7683-08de220353cf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Y210aW9iSlJsaWtoaHpGeThvMy96bmthOGNhOUdyY0h3Q3NLdW9VWWtFV2E3?=
 =?utf-8?B?NlI3alhTcEI2U1hvZUd2eG1RU2I4OWVOZVJCeWViVmVtdlk3OU13UDRwMWhP?=
 =?utf-8?B?Q1Rna21mUDEzdTIycTkvejJGdmtFR1h6NFlLSDFJV2x3bElNOUtPbHg3WGU4?=
 =?utf-8?B?Q3dTOUNwSUF1MXpnMEJvSTJaZXI0S05mTFF5VEl3RDEyTTFBK3NVMjlJQWc1?=
 =?utf-8?B?SUpKS1BBQTFNNkg4ZTJyak9Za1ZHRHpUS0VKeDVBL1Y5eEZsTzR1a1dqaE9B?=
 =?utf-8?B?VDVTM0I3a2s3VHpoUDV1OGhYTHFqcWZxMDhiTTg1MHBZbllKQUI5amg1UE5L?=
 =?utf-8?B?aWdtMVdFSHpwZy9WU2VFbTYzWWNEdS9xZ1JOdElYdDdlYWtXMGZwSTZGN2VH?=
 =?utf-8?B?djl0MzRqRzdCL1dmcjlkTWFhelJYWURVNFI1YmhKYVlvdGdQT3BWbDY2VGlL?=
 =?utf-8?B?OGlrTTUyWXZZNWhvTHNuQW9lalBDYnVxSC9WN1I0ZVUrb3N1TmtlbVlvQUlr?=
 =?utf-8?B?RURmREtOWHc5S3EzcklZOW9GcGhHSHVPdk1LbDRrMkRtQS9lLzFvbFBBd1ZD?=
 =?utf-8?B?aDJ1SHE3M281OHVOSTZPQWduZzIyS0FLOG9CbG5WR1YybDlkbHQxWnNEbmNP?=
 =?utf-8?B?MHBCRWV2Mk54ZUFUOUxxS0xja2hGNGhscitRNVV3aXpJbnNiMTFlVGZHaDlW?=
 =?utf-8?B?d2c4Wlo2dldTYXRsK0NJaU9YN3pLT2RxT2xVVG1RTzRuQmRTejVzcVRuT3NK?=
 =?utf-8?B?NisxVnVCQVhOQjdBbmE4bWtMYjRjUEkzV0Y2cWFRdXZrbjltdWNjdGtYNXBK?=
 =?utf-8?B?R0U0N3JROEE0bWdaV2FORmNQRlArTEdDdnlURHArdkRHVFViQ1hJNlMxT20x?=
 =?utf-8?B?cTFUMElMQjlHaTNTYkJlV1RDeGFmU1hsUnA2SHozcDdMVDJGeEJyUkRlc0Qr?=
 =?utf-8?B?TzU2M01Gc2ZLUFdJdU5DMHdpZDd6SzFxVXVtUHBWR0NUaklLbkZjZmxUL1lF?=
 =?utf-8?B?bjI1NGt6RDVoNVk4NWZDbHhhdFJNVjVIcjk3NGRYV1lIbkFmREpTUnhYQUNo?=
 =?utf-8?B?Q0NScktIbHVsQlFvSXUycWRHcWFwb2pOV0pQT3I1OWN4QzJNelk2dFZkYlVR?=
 =?utf-8?B?ZGVDeXVhTzBmbTN6WXpsYVRtVDZoTW9zWlY4RnEvdFliVWpYekNXVE9QVWt3?=
 =?utf-8?B?dlJNZmlSYzJLYk9EczVQRTIyQS93eTlqYkw5RVdldGlXM2VmU0gzM0FCUjVi?=
 =?utf-8?B?cEEwelZSVDBZOTFwZUlzY1ZranI4QzBXeW1sS09VR1VZQVVGYllaZzljUkV1?=
 =?utf-8?B?V0tnN0xlWjBRcUY1M0hERUZMNjVXeWF1ajRpWGF0eUZFSnJyRHNOV1pwWkxl?=
 =?utf-8?B?SE5Sb1ZTb0lxYXlvaHVsNTRvVUN4QkJhV2VnY0JOOU5OcVVwREhaSlJyVU5i?=
 =?utf-8?B?ckY1QXYwMkpPeURRTU5BL2lWOW5td045Z29RblBzQkhBTEZyVXJUVUtrdVJV?=
 =?utf-8?B?MHdrZlRRWHB2alJDcDlnblR5V3E5TDlkV3ozNUZhZ3ZiNTBoTGlaUFMwM2dZ?=
 =?utf-8?B?bEVmOWlDbXcyR082OUNGTnpXYW1ZVU44R3JTSGxuTURuTTJPTXRZMXlmeitW?=
 =?utf-8?B?Tm14SnROSWJnSTZqRE9LeHdmTGNEQllUU3Q0ZjZRcjV3Q1ZLUEhJanA5TWZy?=
 =?utf-8?B?cVdpdEQxUzlSLzZnL1VRR0ljVXFjakM5cVJrK3ZhRUhjTFpjWFFhSStCSWly?=
 =?utf-8?B?QUJFOXNiZ2RPL2gzODB2MHhQNG0veVArM005QVgxb3MxNWZMTmk2RFlScWF0?=
 =?utf-8?B?Mjc2UWkzMmt1Z3ZLbjhHS0tZME5iUDlBdkZDcWlycVJuWDNLbmZ2bTFhNUNM?=
 =?utf-8?B?WFJ1M0c1NVZDTXB3SXJxVjBXQWN0VzBxdFVtOWt4S21NSk1nTkJ6eGNhTmJl?=
 =?utf-8?B?OWErZnJtT2ozcDZNSlY3Q3d2M3JEbGY0dWFBUzg3aktIdGJrM3IrSUxtcnYz?=
 =?utf-8?B?ZDU1Y2tUMk55aXJzMlZQbXVTbG43WkpIUXRpZTZSQ3EzVHBUK29EZ0hzanAv?=
 =?utf-8?B?alRhNHQvZzQ1TTZCMXJxMndLYzdLTkVUd2VrZE5kbGtjSTdDS0xFRWtmb0E1?=
 =?utf-8?Q?OLR8=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 15:51:21.8846
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: aedf1aa3-461b-43fe-7683-08de220353cf
X-MS-Exchange-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:
	SN1PEPF000397B4.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6468

On 11/10/25 10:37, Frediano Ziglio wrote:
> From: Frediano Ziglio <frediano.ziglio@cloud.com>
> 
> For xen.gz file we strip all symbols and have an additional
> xen-syms.efi file

Can you add xen/xen-syms.efi to .gitignore please? Or perhaps change the
existing xen/xen-syms.map to xen/xen-syms.* ?


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 15:52:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 15:52:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160182.1488391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJD8f-0006sd-Lm; Wed, 12 Nov 2025 15:52:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160182.1488391; Wed, 12 Nov 2025 15: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 1vJD8f-0006sT-Hk; Wed, 12 Nov 2025 15:52:05 +0000
Received: by outflank-mailman (input) for mailman id 1160182;
 Wed, 12 Nov 2025 15:52: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=31i5=5U=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1vJD8e-0006dK-5b
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 15:52:04 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 87d22629-bfdf-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 16:52:03 +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 3FE902B;
 Wed, 12 Nov 2025 07:51:54 -0800 (PST)
Received: from [10.57.40.63] (unknown [10.57.40.63])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id ACC473F5A1;
 Wed, 12 Nov 2025 07:52: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: 87d22629-bfdf-11f0-9d18-b5c5bf9af7f9
Message-ID: <fe082ad9-ee55-46bd-8b93-5320649e6aca@arm.com>
Date: Wed, 12 Nov 2025 15:51:59 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] arm/mpu: Implement setup_mm for MPU systems
Content-Language: en-GB
To: "Orzel, Michal" <michal.orzel@amd.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: <20251111101601.4171120-1-harry.ramsey@arm.com>
 <20251111101601.4171120-2-harry.ramsey@arm.com>
 <80c02055-2687-4e24-8de0-8fb4dfe2af02@amd.com>
From: Harry Ramsey <harry.ramsey@arm.com>
In-Reply-To: <80c02055-2687-4e24-8de0-8fb4dfe2af02@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 12/11/2025 12:40, Orzel, Michal wrote:
>
> On 11/11/2025 11:15, Harry Ramsey wrote:
>> Implement `setup_mm` for MPU systems. This variant does not require
>> setting up a direct map.
>>
>> To reduce code duplication the common initalisation code for both MPU
>> and MMU Arm64 configurations is refactored into `setup_mm`. Platform-specific
>> setup steps are now handled by a new helper function `setup_mm_helper`.
>>
>> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
>> ---
>> Changes in v2:
>> - Improve clarity with regards to MPU setup in setup_mm
>> ---
>>   xen/arch/arm/arm64/mmu/mm.c   | 26 +------------------
>>   xen/arch/arm/include/asm/mm.h |  2 ++
>>   xen/arch/arm/mm.c             | 48 +++++++++++++++++++++++++++++++++++
>>   xen/arch/arm/mpu/mm.c         | 30 ++++++++++++++++++++--
>>   4 files changed, 79 insertions(+), 27 deletions(-)
>>
>> diff --git a/xen/arch/arm/arm64/mmu/mm.c b/xen/arch/arm/arm64/mmu/mm.c
>> index 3e64be6ae6..70b53be032 100644
>> --- a/xen/arch/arm/arm64/mmu/mm.c
>> +++ b/xen/arch/arm/arm64/mmu/mm.c
>> @@ -4,8 +4,6 @@
>>   #include <xen/llc-coloring.h>
>>   #include <xen/mm.h>
>>   #include <xen/pfn.h>
>> -#include <xen/static-memory.h>
>> -#include <xen/static-shmem.h>
>>
>>   #include <asm/setup.h>
>>
>> @@ -240,33 +238,18 @@ static void __init setup_directmap_mappings(unsigned long base_mfn,
>>           panic("Unable to setup the directmap mappings.\n");
>>   }
>>
>> -void __init setup_mm(void)
>> +void __init setup_mm_helper(void)
>>   {
>>       const struct membanks *banks = bootinfo_get_mem();
>>       paddr_t ram_start = INVALID_PADDR;
>>       paddr_t ram_end = 0;
>> -    paddr_t ram_size = 0;
>>       unsigned int i;
>>
>> -    init_pdx();
>> -
>> -    /*
>> -     * We need some memory to allocate the page-tables used for the directmap
>> -     * mappings. But some regions may contain memory already allocated
>> -     * for other uses (e.g. modules, reserved-memory...).
>> -     *
>> -     * For simplicity, add all the free regions in the boot allocator.
>> -     */
>> -    populate_boot_allocator();
>> -
>> -    total_pages = 0;
>> -
>>       for ( i = 0; i < banks->nr_banks; i++ )
>>       {
>>           const struct membank *bank = &banks->bank[i];
>>           paddr_t bank_end = bank->start + bank->size;
>>
>> -        ram_size = ram_size + bank->size;
>>           ram_start = min(ram_start, bank->start);
>>           ram_end = max(ram_end, bank_end);
>>
>> @@ -274,16 +257,9 @@ void __init setup_mm(void)
>>                                    PFN_DOWN(bank->size));
>>       }
>>
>> -    total_pages += ram_size >> PAGE_SHIFT;
>> -
>>       directmap_virt_end = XENHEAP_VIRT_START + ram_end - ram_start;
>>       directmap_mfn_start = maddr_to_mfn(ram_start);
>>       directmap_mfn_end = maddr_to_mfn(ram_end);
>> -
>> -    setup_frametable_mappings(ram_start, ram_end);
>> -
>> -    init_staticmem_pages();
>> -    init_sharedmem_pages();
>>   }
>>
>>   /*
>> diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
>> index 7a93dad2ed..f702f4a0d6 100644
>> --- a/xen/arch/arm/include/asm/mm.h
>> +++ b/xen/arch/arm/include/asm/mm.h
>> @@ -202,6 +202,8 @@ extern void remove_early_mappings(void);
>>   extern int prepare_secondary_mm(int cpu);
>>   /* Map a frame table to cover physical addresses ps through pe */
>>   extern void setup_frametable_mappings(paddr_t ps, paddr_t pe);
>> +/* 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);
>>
>> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
>> index 3b05b46ee0..c1208de26c 100644
>> --- a/xen/arch/arm/mm.c
>> +++ b/xen/arch/arm/mm.c
>> @@ -12,8 +12,12 @@
>>   #include <xen/grant_table.h>
>>   #include <xen/guest_access.h>
>>   #include <xen/mm.h>
>> +#include <xen/static-memory.h>
>> +#include <xen/static-shmem.h>
>>   #include <xen/vmap.h>
>>
>> +#include <asm/setup.h>
>> +
>>   #include <xsm/xsm.h>
>>
>>   #include <public/memory.h>
>> @@ -24,6 +28,50 @@
>>
>>   unsigned long frametable_base_pdx __read_mostly;
>>
>> +#if defined(CONFIG_ARM_64) || defined(CONFIG_MPU)
>> +void __init setup_mm(void)
>> +{
>> +    const struct membanks *banks = bootinfo_get_mem();
>> +    paddr_t ram_start = INVALID_PADDR;
>> +    paddr_t ram_end = 0;
>> +    paddr_t ram_size = 0;
>> +    unsigned int i;
>> +
>> +    init_pdx();
>> +
>> +    for ( i = 0; i < banks->nr_banks; i++ )
>> +    {
>> +        const struct membank *bank = &banks->bank[i];
>> +        paddr_t bank_end = bank->start + bank->size;
>> +
>> +        ram_size = ram_size + bank->size;
>> +        ram_start = min(ram_start, bank->start);
>> +        ram_end = max(ram_end, bank_end);
>> +    }
>> +
>> +    total_pages = ram_size >> PAGE_SHIFT;
>> +
>> +    /*
>> +     * On MMU systems we need some memory to allocate the page-tables used for
>> +     * the directmap mappings.  But some regions may contain memory already
>> +     * allocated for other uses (e.g. modules, reserved-memory...).
>> +     *
>> +     * On MPU systems we need to pre-reserve regions that were allocated for
>> +     * other uses (e.g. modules, reserved-memory...).
> I'm not sure I understand this part of the comment with regards to
> populate_boot_allocator(). Could you please explain?
I think I should remove the MPU section and move this comment into patch 
3 as it is confusing without the additional context of reference counting.

During Xen initialization, the MPU assigns a refcount of 1 to 
pre-allocated regions in head.S prepare_xen_region. Unlike an MMU, an 
MPU has no virtual memory, so we must prevent these regions from being 
freed or remapped to non-preallocated areas.

>
> ~Michal
>
~Harry


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 15:52:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 15:52:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160200.1488399 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJD9O-0007eK-SW; Wed, 12 Nov 2025 15:52:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160200.1488399; Wed, 12 Nov 2025 15: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 1vJD9O-0007eD-PN; Wed, 12 Nov 2025 15:52:50 +0000
Received: by outflank-mailman (input) for mailman id 1160200;
 Wed, 12 Nov 2025 15: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=fKgU=5U=bounce.vates.tech=bounce-md_30504962.6914ad4f.v1-a088325c52bd4b45ab4dbc8a8e7ebfca@srs-se1.protection.inumbo.net>)
 id 1vJD9N-0006dK-N4
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 15:52:49 +0000
Received: from mail179-26.suw41.mandrillapp.com
 (mail179-26.suw41.mandrillapp.com [198.2.179.26])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a30b2673-bfdf-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 16:52:49 +0100 (CET)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-26.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4d67G71xl9zKsbmYF
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 15:52:47 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 a088325c52bd4b45ab4dbc8a8e7ebfca; Wed, 12 Nov 2025 15:52:47 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a30b2673-bfdf-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1762962767; x=1763232767;
	bh=ruW9iBncENpG8nrkxDa8tPpqRo7R4vCtqNBQqHtYGDk=;
	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=h+y8S0eY9fcYR2UpY9SODWdZTpfjO9XKJ7gdumTZW+tPloGG6bWod21FWe0JnH4GG
	 yIIK4sZ4PMMdoeia2hH12oAKp/ERnq8fXN4diwGMOsonIDIaP5y8sdMZfZeKdCOyvI
	 0LnTr1WvftLdZ7EZGBP217II7KxXMACcvvSj3T+e6L/h+417IdAOZI+frbtC+Zur7R
	 3gX7XniBimGsAsyIiccgPcJjorV80CPxuBog9zhuo+ZMcSgHfjOrYqDBhE4B9cTObB
	 Bz758rJ3I4yFDjA2FsfW6pN43BCzQXVL88O1CzgsKamotAqcW9h8P/qoBiu1T7b8Qw
	 p+Vk6KH/rUKCw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1762962767; x=1763223267; i=teddy.astie@vates.tech;
	bh=ruW9iBncENpG8nrkxDa8tPpqRo7R4vCtqNBQqHtYGDk=;
	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=sKyvEWYyZlzAJ0DaJQnxblF6KqT0He/82B4nSMILEEyDwmXmklqD/wEtyzd25afq5
	 GChf4HkJm1RAwgJmvy4Ao8+3CWopOrotf5GSPHY1bJ9LkTeWqmuLPh6DR2+rj5Cy6f
	 G4cD0vN+j7neBfdGWSWX/RrD0kiu0W7OXc0J2cl3e++7Brjch5jJLEn3OJqjqye/wZ
	 ajEFme61rojB45nfSTYV4ZJnytOQj3lAIJ3UiTP70lJq4Y42BqBVGVNwefvc3tzBBE
	 6X8ZkZxBPn7PH/KgtFYU7PSUNmREf9BAPZ4H5jvU5bdaDA/nYTsvO3aXqxiBaHU/Qc
	 iISBHjvM6pweA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=201/2]=20x86:=20Conditionalise=20PV-only=20fallback=20branches=20on=20CONFIG=5FPV?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1762962766178
Message-Id: <de2b8cfa-d9b3-405a-af51-cc2b5b22271a@vates.tech>
To: "Alejandro Vallejo" <alejandro.garciavallejo@amd.com>, xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
References: <20251112152235.224001-1-alejandro.garciavallejo@amd.com> <20251112152235.224001-2-alejandro.garciavallejo@amd.com>
In-Reply-To: <20251112152235.224001-2-alejandro.garciavallejo@amd.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.a088325c52bd4b45ab4dbc8a8e7ebfca?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251112:md
Date: Wed, 12 Nov 2025 15:52:47 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 12/11/2025 =C3=A0 16:25, Alejandro Vallejo a =C3=A9crit=C2=A0:
> A couple of branches rely on PV being the "else" branch, making it
> be compiled even when PV support is not itself compiled-in.
> 
> Add a explicit conditional on CONFIG_PV in those cases to remove the
> code in !CONFIG_PV builds.
> 
> Not a functional change.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> ---
>   xen/arch/x86/cpuid.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
> index b63a82dd38..2e24c84708 100644
> --- a/xen/arch/x86/cpuid.c
> +++ b/xen/arch/x86/cpuid.c
> @@ -297,7 +297,7 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf,
>               if ( v->arch.hvm.guest_cr[4] & X86_CR4_OSXSAVE )
>                   res->c |=3D cpufeat_mask(X86_FEATURE_OSXSAVE);
>           }
> -        else /* PV domain */
> +        else if ( IS_ENABLED(CONFIG_PV) )
>           {
>               regs =3D guest_cpu_user_regs();
>   
> @@ -509,7 +509,7 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf,
>               if ( !hap_enabled(d) && !hvm_pae_enabled(v) )
>                   res->d &=3D ~cpufeat_mask(X86_FEATURE_PSE36);
>           }
> -        else /* PV domain */
> +        else if ( IS_ENABLED(CONFIG_PV) )
>           {
>               /*
>                * MTRR used to unconditionally leak into PV guests.  They =
cannot

I don't like having IS_ENABLED(CONFIG_PV) here, but I don't think of a 
better solution as using e.g is_pv_domain isn't really better as it 
would make us evaluate d->options twice.

That said,
Reviewed-by: Teddy Astie <teddy.astie@vates.tech>

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Nov 12 15:53:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 15:53:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160208.1488411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJDA4-0008Jy-65; Wed, 12 Nov 2025 15:53:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160208.1488411; Wed, 12 Nov 2025 15:53:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJDA4-0008Jr-2D; Wed, 12 Nov 2025 15:53:32 +0000
Received: by outflank-mailman (input) for mailman id 1160208;
 Wed, 12 Nov 2025 15:53:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=K5hw=5U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJDA2-0008IB-17
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 15:53: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 bb58f16c-bfdf-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 16:53:29 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b72cbc24637so214745166b.0
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 07:53: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
 a640c23a62f3a-b72bfa24d14sm1621914266b.74.2025.11.12.07.53.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 12 Nov 2025 07:53: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: bb58f16c-bfdf-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762962808; x=1763567608; 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=KOudpYJ0be8RTqnBRUMnFbqtoyMnoVQ+VmxJe0HQzyw=;
        b=QDUhNBKo2SnYsfffGBV17gJh0CXkuHbVIrhcQTb1oR2CD9TCyrbgHb2fuljkv4ft8v
         psbeV9OuiUJkC+6c23+vvOesE24DVsUJSwum6IWZq3B16xTIn1H1eeytTRgCJnFJvpAZ
         2i/k6q7+Mzv68+CLTwRyCjc7Hm2CEavEe8SHRuJPsWZdZvYOXl76REGK1WV5RprbeWEy
         9H3G7vU5lHmtYcx2jHGApRIkOYFSVuA9lL4qrpBoRRYKD8Ruui2xh5nzZAqjG2ZwMPid
         9+noGpY+6VrMOZxHZ+CAo4xBOs9Pg1m4+UISZCpxT6NlZzbohlvNto0B5XcBYBv5Cmxl
         VGAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762962808; x=1763567608;
        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=KOudpYJ0be8RTqnBRUMnFbqtoyMnoVQ+VmxJe0HQzyw=;
        b=cb6EFoEA/EZcvBDksLq6LnabmQ+NnYpx9dTa9G2kpLvv3IIANYItbEW+msrePDHRkl
         wZR93vwsKaLqg7wyLMY/6x3JcKGkADc4PbFXb3v1kBiQamYZNRtRL4susABxIdScMLZ9
         m5qp8KL1H/qZbtxtvNVoedEiTJk0uQtgYjlWZjPGIpSp3zeR+Rt32nImF5sX59Lsh2dD
         93BeGf7wnLL79jv6Pz75CS1ZuPXxNIPOvX3H+SeqghA9TiFOmgfMnp6+gwWu+7tqlWx+
         9frT2pBjoP8BL/aoNWM8DVL01YQn6pxvL6k6775J1P88hCnoaWkUW0ngCEYVTQWi0kIB
         RMJQ==
X-Gm-Message-State: AOJu0YywXalQAW3oHBp4vMOqARQbzINiKh8sv4RWFxw41r8ySHJxlQqk
	ezx5GfxTjwXIfdenaUkUXXL+nik3kNimDjdhdY9zrX3v4AhQ4Gr80AXgyt707kQIyknwLbj8NlF
	vbRE=
X-Gm-Gg: ASbGncufssSSbdSTVAJYLXZDJVVcj9v7xHcOz7WN5ZLY7uf7EAKAoxKe0fxyXXbCx68
	Xbu5vdJJH7JQY10V4LYFU4Q6XX5UCBWcuT5kozsMkVHeCOpU2B7KZEt3pb2qtVd8mlrrMK/JLhq
	cd0Fjuamuh/3HN4YiMtWb5hxtHO+HoWuG1lEp21mDd5QbCI+909HORqV/WDn1mNvUK1BcF0truv
	Bj2I7LckAXyL4LsTPMdLCP112CWuA9NywwWrH7t/2qJsC5rjAz29EZnSXCvhKb/yGkN2anFPJ2H
	R1Pkvj/pV7Xj9diABQSx897UGtqxwRlKxMtUH6ZDLYQ+zk67sqhALAMTwZM9MWbki+QJi9XNkyu
	vaEClkAykccPYTmNhyPBFoRehgBIgDpI4Ze3a6XSdcQTRKtPChhq9f3YzuvbxC3eVBpWDhyoseY
	AMZHmeftWBeHxEMiHeFXXZHOrXTlHqpWjcqbnvR948luf5NW4gXh7Acie39O2TtzF7
X-Google-Smtp-Source: AGHT+IGbGh7VwnZnQmbew8JbA8pjvk/p73SWu+ElvrhjxV2WJlQOkvbwKDDs7QnvcMSUQm/+v8rjnA==
X-Received: by 2002:a17:906:6a1b:b0:b70:b077:b94b with SMTP id a640c23a62f3a-b7331aa33a8mr318563266b.43.1762962808422;
        Wed, 12 Nov 2025 07:53:28 -0800 (PST)
Message-ID: <fe35f075-ff44-4942-bcd1-dcd917179867@suse.com>
Date: Wed, 12 Nov 2025 16:53: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>, 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] CPU: abstract read-mostly-ness for per-CPU cpumask_var_t
 variables
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

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>
---
Really in the pointer case it would be nice if the allocations could then
also come from "read-mostly" space.

--- a/xen/arch/x86/genapic/x2apic.c
+++ b/xen/arch/x86/genapic/x2apic.c
@@ -20,7 +20,7 @@
 static DEFINE_PER_CPU_READ_MOSTLY(u32, cpu_2_logical_apicid);
 static DEFINE_PER_CPU_READ_MOSTLY(cpumask_t *, cluster_cpus);
 static cpumask_t *cluster_cpus_spare;
-static DEFINE_PER_CPU(cpumask_var_t, scratch_mask);
+static DEFINE_PER_CPU_CPUMASK_VAR(scratch_mask);
 
 static inline u32 x2apic_cluster(unsigned int cpu)
 {
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -52,13 +52,13 @@ DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t
 /* representing HT and core siblings of each logical CPU */
 DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_core_mask);
 
-DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, scratch_cpumask);
+DEFINE_PER_CPU_CPUMASK_VAR(scratch_cpumask);
 static cpumask_t scratch_cpu0mask;
 
-DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, hpet_scratch_cpumask);
+DEFINE_PER_CPU_CPUMASK_VAR(hpet_scratch_cpumask);
 static cpumask_t hpet_scratch_cpu0mask;
 
-DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, send_ipi_cpumask);
+DEFINE_PER_CPU_CPUMASK_VAR(send_ipi_cpumask);
 static cpumask_t send_ipi_cpu0mask;
 
 DEFINE_PER_CPU_READ_MOSTLY(struct stubs, stubs);
--- a/xen/include/xen/cpumask.h
+++ b/xen/include/xen/cpumask.h
@@ -311,6 +311,9 @@ extern const cpumask_t cpumask_all;
 
 typedef cpumask_t *cpumask_var_t;
 
+#define DEFINE_PER_CPU_CPUMASK_VAR(sym) \
+	DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, sym)
+
 static inline bool alloc_cpumask_var(cpumask_var_t *mask)
 {
 	*mask = _xmalloc(nr_cpumask_bits / 8, sizeof(long));
@@ -349,6 +352,9 @@ static inline void free_cpumask_var(cpum
 #else
 typedef cpumask_t cpumask_var_t[1];
 
+#define DEFINE_PER_CPU_CPUMASK_VAR(sym) \
+	DEFINE_PER_CPU(cpumask_var_t, sym)
+
 static inline bool alloc_cpumask_var(cpumask_var_t *mask)
 {
 	return true;


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 15:56:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 15:56:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160216.1488421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJDCp-0000WP-JC; Wed, 12 Nov 2025 15:56:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160216.1488421; Wed, 12 Nov 2025 15:56: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 1vJDCp-0000WI-EZ; Wed, 12 Nov 2025 15:56:23 +0000
Received: by outflank-mailman (input) for mailman id 1160216;
 Wed, 12 Nov 2025 15:56:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EiA8=5U=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJDCo-0000WC-TA
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 15:56:22 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1fc793f7-bfe0-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 16:56:17 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by PA4PR03MB6781.eurprd03.prod.outlook.com (2603:10a6:102:e7::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Wed, 12 Nov
 2025 15:56:15 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025
 15:56:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1fc793f7-bfe0-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TXjxJD+vhfLOxH1KoEtOukKNtIvqXkGYD9C3boBbNvWTucZv5G+wAnbyQWB3FDK4sdA/Du187eeHxhIrkzxk9yCpPTpXsjRmuJ5XujeZDWIEXkews5atAIsiKjfcWqdpSCIjtjjDwJn9s78ag3xYkwse6UB5WiLdOZ6SveIRtWgB6ovS5OzpUDTvIEBz9pmsuxqByHec4YkMkupjE0IDuOY2f0J1STVu8OCyEuYkLVO1Z5LZTTNEvdRzdp5X9jRovE9HYAeGDmZ5IFi44Gxs2yM5TlwioxEX62hmUfglOnZ4S6pL/ktMLvyOjSz60RE/EEUJDTqjRz3rFGquLDHjhQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=s1AXOjqK7Zh/8g0QjNTicma1iqBPbyRrbdmUBx8soSQ=;
 b=ypZefSO5kM4s3azrt3h2VWUg7KF0YBlW4gfUVeMAI2zXIbL2sCGH2xVmu5BORAwAKAU9xfTxVTJXKTUKqvTzIzWFk1C4qBorGAMNh0XE/KHoKkJ4tVb0kvLCxk2R4JA6iaLivmFxVkeNFh5m1317pDGvSVDLZIhin0mh3AZItsfCCPPiAjV0+ElxdwpB3c8/TbFnV1HRALNyhV1rEn7DjgQK6tOicoDHkjTiAbY5LRdDMnqYO3VsiZ2UMbg5rIbfYLYmihwQtHe6DYcXu+b1mK+oABrHbTmR42C1NfLBsV6ukWeJWYok8K2VhiazOte6bMVV3WcMeo+DCBk01fecyg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=s1AXOjqK7Zh/8g0QjNTicma1iqBPbyRrbdmUBx8soSQ=;
 b=FPi+Oyt8H94dLk3OFfi5OmN9sirK/w/BoBvqMwtrRY2tZjAvm+J4gnC/4uMy7SzRawtSBZsEIftwdsv8tkQpNjDmjx10B0PoSy3xgMS69DmfjQfJiQO1zrRKZQXsmPdPeZtgI3S/tEqxCMi12axqK9gsY5mkHCuoYIme2rS0RAetrgnbVvTUGmKY6Qv6E+pMyAalHOV3IKNX2LzCFAtqM1us5RRV0XAqgXwKoQlinfZIdIAWl2hd5nAacLUfYBnpqW0qyUhpbwnBjQgnBkXpU8lujb4iZWXrbFuIVe/uqpL0JDrkASnFYWMGYhZYrc/v1M2hUN18X9urxC0HHiPP6A==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <a7991534-b200-4b00-9a45-2d4c167d7ec3@epam.com>
Date: Wed, 12 Nov 2025 17:56:14 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86: Remove stubs from asm/pv/domain.h
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <Jason.Andryuk@amd.com>
References: <20251112152235.224001-1-alejandro.garciavallejo@amd.com>
 <20251112152235.224001-3-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20251112152235.224001-3-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0127.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:94::13) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|PA4PR03MB6781:EE_
X-MS-Office365-Filtering-Correlation-Id: 939fc7f6-9e2a-4a7b-2e43-08de22040297
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?NUxSRmgxZ0NRYzBmd0dWWXc0R2p0Ylp1cm5vNno1SG5uV3gwYjUrRnY4STdr?=
 =?utf-8?B?QzFTeXl1NzU4SVNaUUlvWFJCNDVhMzdCbmJGZ0dnZlltNU42REhlQ0Jwd0sy?=
 =?utf-8?B?NWpXQ3pzbjNPbFptNGh1YnNkdjFsR2ZUTmhhelFqQ3FwOTBENjBCMmFiQjJl?=
 =?utf-8?B?a21WUGNqb0VjVEo0SFpHVW9HV1V4WU4zOERiY0huY0lRaHVEakY0YXRab1VL?=
 =?utf-8?B?elRrTTVmeDFFOFNRY2czd29WQnpEQUtJZVcyQnFqL3A1Z1Z6NUlmNzkrM0VP?=
 =?utf-8?B?UytLaHZqellzVDYyeUpGTzdJZmsxQ1JuU3kvRkFHK2R4S3hldUlzQ3JCTU5J?=
 =?utf-8?B?ZVhuM3hzTmwvUGFSV3RLRm4xL2dhRWtVL1lBRnlkejdqZVpvZnFKL1RZV1VE?=
 =?utf-8?B?S0dCUlhVMmg5NFYxK2JQS3ZOMEg5YncxUEpIbzVHRUVvc3NMS1VhN3dNSldj?=
 =?utf-8?B?VUtjMkNRbUoranRtb1crTDdCZjZ3Q1Y4WVkyeHV4ekhsZG1Vc25kUSs3Wm9o?=
 =?utf-8?B?ZHJXTVZzcWdXTC9LdEF4NzVDYVFURTd5V2JDZmltbDcvVCtaMkJYRXV6WmJY?=
 =?utf-8?B?Q081ZGxENHhNL0NyL3FPcVpXazkzS3lTUmlVU0lGNnhrZHpMYjh4dkgzWmFE?=
 =?utf-8?B?MDBSYWtyRVY1UGFkV1lXQ2pYVkpZa0tjVXNQNUw0OE81TS9rMTB5dDRJcHMx?=
 =?utf-8?B?TG5VRHE4VjdiN1hQWkdndHd4WFFEQ3VKd1NCMG1VUzhtRmc1UEh3REpzeEZ3?=
 =?utf-8?B?TVNrbzUwODRDamRWU0dHNmh4YU9qaGcwMUFtZng3TTBCMGVHMWF4YjZqRkF1?=
 =?utf-8?B?eVNSd3dYSlRya2F6WkFOU0dNZXpVUEJzUEovM1JPMnZTZW5RU05RS2hlcmVs?=
 =?utf-8?B?Rm1Ocjl2QzIva0c0dnNCNTY0UThpNGRTZkNKMU5mMnRwQ2FzZ2lGTmdsT1lp?=
 =?utf-8?B?QVRTRWZwWmtFSDlUT284QThIR2NUVUkwZzJqM0RPZ1B4R1hLS2wvemNMb2oy?=
 =?utf-8?B?TXgwWlNoeEJSNzBaOWdkZFNXWm5nMWMxYTg5aHNJYUxsUDIyL0c0WHVzOWNI?=
 =?utf-8?B?VE5nUmY5Q2wwVEZlSDB4eEdERldxM2w3cUJIT2M0ZzYrTWJaU2R0cExNS0JH?=
 =?utf-8?B?Q0Y1eFV4WWZaZkNvemRSb0c1bEQ4SzlXbXc1cXVreUpXTTFMaTI1NzF5S3o1?=
 =?utf-8?B?V3FubTFic2NGSTlNbitlWGpZdVVTQlRaaXpHTEppQ2Iza3c2Rmt4YWRYRkFF?=
 =?utf-8?B?VEpUSG9WSzNONE02SEJqUUVRQUl4N1lWMGZtajc3L1FuSDVRbGZmZnpUbWtk?=
 =?utf-8?B?bENFdm5sWTdJRlZvMWpsbUtWNzFKY0xXNjA2NUthQ1dSeFVPMlR6d0x5akds?=
 =?utf-8?B?NExSeGFYemVqYzlxdDVDUDk5WWZpeXVaN1ZrYmRqSEJjS2VDbGZiWklnZnB0?=
 =?utf-8?B?aGhGTVNEL1VyazJBUnpCY0o0OEc1bmlnYWkvZlJrOFBoQVRTSDlvaDNWZy9i?=
 =?utf-8?B?bHVUbk1RUTdFSUNHWU40ODNUQTYwRUptblpEa2U2TVRwRlVBZTEzczA4ZHUr?=
 =?utf-8?B?QnAxWDJyTElLazhVQ3E1S1Jxb1BvTkcwcHJrYnI4U2xVZGxNM0VwWk5IVEhK?=
 =?utf-8?B?djM3MEZ4Rkcwcy9PM09FOGlacDQ3alVzWVptNHlkczQ0emtydFpESTJoNlVV?=
 =?utf-8?B?RmZtTDRzTlRJMjV3SEUvM2dpaGU0T1h1eGVUeHhobDZ6MVBZaGQxbW02Ryt4?=
 =?utf-8?B?ckl6TXJGNi9hc3ZOQTdOM2ZqRlNWWFYxdXhiVnQvcnZldWhFNDRuM0c5ZW0z?=
 =?utf-8?B?enZDU1pTeDEvUEtlQWlSZ1FrbjdCYXJhUVdzV00zQm5ZbFY1anVkNk5ySkpp?=
 =?utf-8?B?MGZxbS82MjUzNXgwR3ozVWcralExUnVReGFjOUs0VWJrNUE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VjJMd2FXTTdkMERyekpGcVdPcm5ya0R3TUVFc3pQbmxWVmd1ZE54bVhWTzZW?=
 =?utf-8?B?WDRnczY1UXFwdzNVQkRibUNueEVhWEQyTVZ3ZVQzdzJpWExSU1p2OFV4M2R1?=
 =?utf-8?B?ekNqSGV2NDNJNGVVNHRoWG1CVGV6M00raitSQUlsdi9CN1Bnbm1nRE9ZQTJP?=
 =?utf-8?B?WVJMWHd5WndOSUF5WlZYVXFwa1h2Q1RWNEV3RDdyVTQ5SU9yODFnNjI5VXdM?=
 =?utf-8?B?VVhjZDNRZEJpakV2R3pnUmtTcDYwZkNicEhnM0p5UmxPeWI2NW55ZUZ4RVNU?=
 =?utf-8?B?RzlDTkplNkI5RDIybE9PdVM2bWc5TnI2L1A2bEVpMjA1eGI1MVVLL0wzRFVZ?=
 =?utf-8?B?L0k3b2tHeEcydzlUSlF6RWMrSWdyQy9RaHl3ZDAvTDJzNldRL0xNUHdOdDly?=
 =?utf-8?B?dXlxdVRMUllQOGQzK2ZpZ3NGb3pyNWE5L096M09PUGU4WkptaEYwTHIwdVJq?=
 =?utf-8?B?ZWhqbGt5c05YeG9iRU9NRDZRdEVNNmMvOXVTOEVXZDg5ODVvQ0IyQnQrZEx6?=
 =?utf-8?B?dGdmM3RJaVdyYUM4KzlvMjk2ZHdhYloxZ2s2Z2lFNTgyTVQvcllCSWNUWmNG?=
 =?utf-8?B?eGhJZTZEOXp0ZEgzQkc3dWZJRlpLaWllRm9qdnUzUE5CWUNKZlJFU1FyUnV0?=
 =?utf-8?B?KzA2TUZ0UmpYeHYvUmJBR0tMK0d3Tm5ISC94VS8xTmFwUEhGM3lxampYVSsy?=
 =?utf-8?B?YXF5Mm90Nm04V1FvV3A4Rzg1cm5TSHpuanYxd1g2ZUpBV1Vtc3pIYXpaOWl0?=
 =?utf-8?B?S1Z4c0Jtd3FpOGx5MmpCSHZEWE13MDhZL1hSd0pIbWUxeTZOWUpKUlB4VlRN?=
 =?utf-8?B?bFFOdkxoL3A2Y3Z4NHV0SUdBcDV5bzBNTmtaYThhYmxZVTFueU9oc3VIOFFE?=
 =?utf-8?B?enRqaWJOeWhrMElkUFZzSXJzZ1kvMG5LVTYrZmVDdXpvbitZQWhKSDI3eERX?=
 =?utf-8?B?V2ZzZXllckYrcEU4MXlPQzM0dTI1cDk1WTY1MURtWUN2VVRBRFBOMUtGZGJ1?=
 =?utf-8?B?bHdySDhkUnljemVlT2lJN0xYTmNaa1I2QlFaVEJGeGxibWpBSkd4dlNoa0hk?=
 =?utf-8?B?ZzM5S1pqREVQb1I4SjlEQjVTTW9Db1BpdW9vVGg2bWp4dWFJN05YSWdqZlha?=
 =?utf-8?B?KzVOT3lhT0c3Vi9lY2xBWHZSRi9zUDZGTy9XV1k1SUtpWG9jYjFZcyt1WlVZ?=
 =?utf-8?B?TXdlc3lxS1pIcjZoNWRJd054emtTQkczMEJiNkxORnZENE03ZzFQVHZ1RTBO?=
 =?utf-8?B?bitqSUZSWm44dGN3U1J6SHlnUDZyOHJDS0kzNkVCTzRKcjNHOTltUVNOVUZh?=
 =?utf-8?B?c1NFa1NaRXpNMDVOd2xxbkJIRlltdFh2Rm1XejRmMzlxQlkxMXVsQlVJS2Rl?=
 =?utf-8?B?Yy9acndwK2orRFAycjVsR244Q3lGcEhMb0NnYi9Kekt3ZlpQRmhQdGgzbmM0?=
 =?utf-8?B?YTd3RUNidG9PUFVOZ1lVbzdtVTNMcHRPMEc4NkZpdlJCM3BrY1hnc0hYcmFT?=
 =?utf-8?B?aTB1UW5id012cFU3VGtMQU1kdjczYXVFU1BKZ2F5NGhNcVpBTUhyV0ZZbTV4?=
 =?utf-8?B?b3lqUktUTWI3MzhISWlDNHBXRnFiM2ZpZFNPUmJMT0EwZXR1a3VoRzErTlB1?=
 =?utf-8?B?SUNvdktHM0Q0Qjk1dGtJTU5WV282LzNWTGM1MlI4VWU5RWhMdU04R2oxVktV?=
 =?utf-8?B?K1RyMGRqM2w0WjJLYlZnUmI5RFM2UW52Qk9MbzNObXhycTFDRTVvMDhGcWlm?=
 =?utf-8?B?VnhwVTI3Qkk0Z2FQN3dGcHltRm1OaE1wbGxjUDdqMnlab3hBeDNwMjF3K3BM?=
 =?utf-8?B?QWpnWjJYYmtPUlZmSlNoMGxaZXluMTIzNy90cmNLUzEza00xUDVSUDNvUEx3?=
 =?utf-8?B?RVQ3NGtSMXI4YUxCeVBkRnJua3dLTlBvVjZDa2RLcGRvREpzQXZYOUoyeEVT?=
 =?utf-8?B?TllLeVM0TmRGS1BzRWFaYWl6NkxZUGNmOGRDdU9qeGl1cVV2MmNpeFRyRXdt?=
 =?utf-8?B?SkVhRWNKN2hFdVJiVXYyL2FlQ254K0ZoMHpjRzRsQzJ4eXFQS09sMm5YelpK?=
 =?utf-8?B?dEtiZ0Rub2VEbUNreElrdkpGUUtOQzdlaDBUbkZ3cC94WkJQVzl5eFVPOEpE?=
 =?utf-8?B?MUtIWkFjSjVMTXg1eU5TREJJU3BFTjlZY09FelVacmFMT0tBaHZZQzZZK1Ja?=
 =?utf-8?B?RXc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 939fc7f6-9e2a-4a7b-2e43-08de22040297
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 15:56:15.2903
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: duw3wORrOdOo4GA+kt6R9UhSZ2zkMANGJjQXqfcbtB4zOJwiXibQU3V3llq9nJx2zP+QSUFiwuTf8XhU4+8l0VuAwtgk40FxL2P03Qlmwhs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB6781



On 12.11.25 17:22, Alejandro Vallejo wrote:
> They are unnecessary. The only two cases with link-time failures are
> fallback else branches that can just as well be adjusted with explicit
> IS_ENABLED(CONFIG_PV). HVM has no equivalent stubs and there's no reason
> to keep the asymmetry.
> 
> No functional change.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> ---
> I'd rather remove the "rc = -EOPNOTSUPP" branch altogether, or replace
> it with ASSERT_UNREACHABLE(), but I kept it here to preserve prior behaviour.
> 
> Thoughts?
> 
> ---
>   xen/arch/x86/domain.c                | 10 ++++++----
>   xen/arch/x86/include/asm/pv/domain.h | 25 -------------------------
>   2 files changed, 6 insertions(+), 29 deletions(-)
> 
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index 19fd86ce88..0977d9323d 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -571,15 +571,17 @@ int arch_vcpu_create(struct vcpu *v)
>   
>       if ( is_hvm_domain(d) )
>           rc = hvm_vcpu_initialise(v);
> -    else if ( !is_idle_domain(d) )
> -        rc = pv_vcpu_initialise(v);
> -    else
> +    else if ( is_idle_domain(d) )
>       {

The is_idle_domain() wants to go first here, i think.
[1] https://patchwork.kernel.org/comment/26646246/

>           /* Idle domain */
>           v->arch.cr3 = __pa(idle_pg_table);
>           rc = 0;
>           v->arch.msrs = ZERO_BLOCK_PTR; /* Catch stray misuses */
>       }
> +    else if ( IS_ENABLED(CONFIG_PV) )
> +        rc = pv_vcpu_initialise(v);
> +    else
> +        rc = -EOPNOTSUPP;
>   
>       if ( rc )
>           goto fail;

Actually, if you are here and have time and inspiration :)
- if ( is_idle_domain(d) ) staff can be consolidated at the
   beginning of arch_vcpu_create() which will make it much more readable and simple.
- mapcache_vcpu_init() is PV only (->pv_vcpu_initialise()?)

> @@ -614,7 +616,7 @@ void arch_vcpu_destroy(struct vcpu *v)
>   
>       if ( is_hvm_vcpu(v) )
>           hvm_vcpu_destroy(v);
> -    else
> +    else if ( IS_ENABLED(CONFIG_PV) )
>           pv_vcpu_destroy(v);
>   }
>   


-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 15:57:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 15:57:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160230.1488429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJDDx-00015T-W4; Wed, 12 Nov 2025 15:57:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160230.1488429; Wed, 12 Nov 2025 15:57:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJDDx-00015M-Sd; Wed, 12 Nov 2025 15:57:33 +0000
Received: by outflank-mailman (input) for mailman id 1160230;
 Wed, 12 Nov 2025 15:57: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=ozL9=5U=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1vJDDw-00015E-RI
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 15:57:32 +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 49baf557-bfe0-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 16:57:30 +0100 (CET)
Received: from SN7PR18CA0001.namprd18.prod.outlook.com (2603:10b6:806:f3::15)
 by DS0PR12MB9038.namprd12.prod.outlook.com (2603:10b6:8:f2::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Wed, 12 Nov
 2025 15:57:25 +0000
Received: from SA2PEPF00003F67.namprd04.prod.outlook.com
 (2603:10b6:806:f3:cafe::d4) by SN7PR18CA0001.outlook.office365.com
 (2603:10b6:806:f3::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.16 via Frontend Transport; Wed,
 12 Nov 2025 15:57:25 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SA2PEPF00003F67.mail.protection.outlook.com (10.167.248.42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Wed, 12 Nov 2025 15:57:25 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 12 Nov
 2025 07:57:22 -0800
Received: from [10.71.195.192] (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, 12 Nov 2025 07:57:22 -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: 49baf557-bfe0-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pHV/3YWsRTHQX7c1syNWri2OAbTSAZ4cVv43tdWXet/eKdCYfMwHgAyOieyYUPgDGMvFvLsG8Hh7y8aUEo02BpTtrgvAm1NAt1XlUSSzAmft2kSl+GMhr2fhYiBvm4SwnvJ895P8dsiNhsrqrs7oG9VqeXRQT9yDrx6i5Y9qeMNdJFPV6+W6euoya76sLV6+rRVM7YhcoXvTe2p7P3xGfN04TFO1g7p01l4BWsOjMEwScfiswfRVJcmK9/cuy3g+wT/B1qA+BGhP8/DKzotv1TsyBX708H9tdxYl74tKInFTOwdcAcm/JWdJK4BQ0O6UZqL046Yvy7Whrik+7MZaJg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YII8INiDe7golv5ZdoCQ3iels1T22o9SkYEhUD7lEAQ=;
 b=Z5mU4j87dlgAjP4Lhyuld4T6w2/qqcH8m+upbyZR/y98Fdt4PA1M4qdC8FszsIyPV3Y38jzHd66Zsn5LqobaQdJCcoZVXeipK5knwI9EVzZlnwq9vziSsAYXSyx9a5OvDvXH0qFv3r+GBEORQ+LrV6cTrXlYtR60GJXOoI5OeLlXxt7E3KRJsJrkB/6yFARN497srdapDqU+ADXxECaS32Qokg30Ct6VJK2LtSavZWu32CaRhdACro7n/qUMoKKK9qgRsailjRiqljXvQHFdQf23ZYa5uAXO1SzA3VEHpu8A67yBtUFE/vjs1wkrgWJarkk8jIif6dSqRCVwXrZxgw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YII8INiDe7golv5ZdoCQ3iels1T22o9SkYEhUD7lEAQ=;
 b=vScsSLWI/CemGAkQ5tErWvC4LRuOYudjxYi3w1r+gmm8fjDSN+skm//7aa7ZCs7LWwSfoQxlI2KnXywLim9rgboD9s/0QeEGmH6TiHWHOoucWvQkbCvlC0fuVG6R1NLANt1Su0pWynaJVcTkokCmRTeVI9K0tmrXPC/g4Cbz4S4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <62f7c571-9c55-4a29-b8b5-1912c3aa3ab5@amd.com>
Date: Wed, 12 Nov 2025 15:57:21 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [ImageBuilder][PATCH] Add DOMU_TRAP_UNMAP parameter to control
 unmapped access behavior
Content-Language: en-GB
To: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Michal Orzel <michal.orzel@amd.com>, Stefano Stabellini
	<stefano.stabellini@amd.com>
References: <20251111220541.2531935-1-oleksandr_tyshchenko@epam.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <20251111220541.2531935-1-oleksandr_tyshchenko@epam.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003F67:EE_|DS0PR12MB9038:EE_
X-MS-Office365-Filtering-Correlation-Id: 9cc0e500-779e-4991-a0a4-08de22042c4f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?N0U2N0llbDVUdW5zQ0NIT2Y3YkF3OVFYUTJPZ2dmdFdNZVhWL3lCMUlvNm9W?=
 =?utf-8?B?T3kyd0FVYXpYNWlUbjBFZVNWR2NDcHZ3dHN3SjNBQ0RYVnpISUhyZHU1TURh?=
 =?utf-8?B?WWJDNzdOZjFKY3Y3c2FWWHEwT3RmbDlXcHRmMUgyZC9GV09vc2ljRUVsdkVJ?=
 =?utf-8?B?T2JjVWxPY3VtSUVCNEpPVFRVamFxelBWMlFpQ0g3dGZvSm0rVHp3WEV5R0FW?=
 =?utf-8?B?aW5DSDFHUGY3cUREMEZZVGlFLzRpa010b2lUeUhtc3RlZjZ4ZFRBUC84R21B?=
 =?utf-8?B?SGMxcVM3TWJNMDJwdjEydWl0L21jNXNPSlpzaEVPSkJHallRaSthTFNhMWkx?=
 =?utf-8?B?MlVIbHpZeGN3K05HRjhocG95WCticitNNkQwVEpIc3hEZVRpVEk1cGJyd3pQ?=
 =?utf-8?B?NGFYaTBJYW5BNmRwQW82ZGhIWVRKYnVqYzlacHY3eWI2ZEx4TVNUcmJpQ1pH?=
 =?utf-8?B?Q2VHeWRNMnpYU3VZUFNIWFBId2tOWDhNckJtcDJJRGk3MWVoZzZuWEdNSXdm?=
 =?utf-8?B?K0RZS2k4MTh6MDZPUnZKWjZleGhHMzcvUFpwVG94dWkxQ1dQU2xmdk0wdkhF?=
 =?utf-8?B?OUNFUUEySDhHc2RhZzd1U05mdjBZQzQ2Y01WSlJ0WWYveFdCZ1hoOVorNHB2?=
 =?utf-8?B?WHFLNk9KQWZBSEFFdFZ4bWtodk4xeUhqTDczK2ZhZTNIZGJORWIzVkFjZHhj?=
 =?utf-8?B?Tnk4LzhFakxlUCthUzlDOEZzZGtSNDBNQ1pxQ2UxdFpvOXp6dS9nWUcybVBk?=
 =?utf-8?B?S2xtTms0eXl4bEtDSldQWllrdnJzY0ZlOWdYY0NiMGxrQ3BMTlppb1VSWUN2?=
 =?utf-8?B?OEsvMTkvZ2QrbGxJL0xMWWZtNjRaTjNiZFlya011azV5clFBenkybjFQazRt?=
 =?utf-8?B?SERUOEFkMVFUSWgwWTFEblJ4ZUI2bDIxS2Q1bkJTZkRaLzRTR2xYM1VHTGcz?=
 =?utf-8?B?RzR1cmNQeXRFbXBFcnBkUVZUN1dJcUpXbUJCKytmRFArRnBqMWxFZmZpNEpx?=
 =?utf-8?B?bUNWMUxjWG1XSEpkZ2VobWp3TTk5YktuZXNwK3VjZWl0aE5rK3FmMzIwUlYr?=
 =?utf-8?B?bWF6SVRJRG1qcnBLcThaMUFpVHdrSHJwdUE0U1l2T0hTaEF2bEl6TU5NaTBO?=
 =?utf-8?B?TDJJR0kyWFZ6N0QzTlZ2NDgzUHJUOURUeWpmK0M0VThSVmM3S0txS0xNUUFj?=
 =?utf-8?B?bnpEMmdESHB6Q1doYkp2S0lzbUFsaFdiekkrT3M5QUdWUFN6b0Zjb29PMVFa?=
 =?utf-8?B?V3RoTGFBdzdxL0sybmw0VGdiRXFUUmZsejVLODM3Q0xvQ0RJdHNJR2Q4TnFj?=
 =?utf-8?B?Q0poeGhYM0FQSTlXU0V3elR0NElCNVdiQ0VVTDU3cThNSkxwSGZhTGgyZDNV?=
 =?utf-8?B?RWFhdkVwR2xlVHFqUXFobWJSUVhGRGViOTNVcisxM3F3bzBVS2tuU0dzY3RT?=
 =?utf-8?B?K1VaWXAyQkhkaGhjTUJLZHpDeXpIZ2VWWVBuNjJKVTJ0K0NzdnJ2dVUzYTFO?=
 =?utf-8?B?d0k5bHcrZEtuSmpkandqc3hGWkdTaDl6MG5oei9FeUxBUE1TRUJBbzV2Mm43?=
 =?utf-8?B?S0xuOElRY2NNOFJEdnBZd1NtVTlNTkZvWXZSeEpQeWR0bEliK2daQ0VORVly?=
 =?utf-8?B?NUtlays2MERjNUxvUWJxL0dYYW9Pb0ZPUit4SmNIL01CZ1pDZWpnRjNzQ1RG?=
 =?utf-8?B?WFNoYWsra2ZoSVNOcHVYTFhVOGtwbXpzR3h5UXNVV0RuN0Z1RWpJTzVtZzI5?=
 =?utf-8?B?bDlzd3dGUFJvYXdLWHpBbFB5elF3NGlzQnlnbldXSlNUVU9ndExRSEFJTDB5?=
 =?utf-8?B?VG9Vb0d1SVB3TUNHWXMwUWlsS1RJV0hRTnlHeXN0bUtpc3U2cHRoa3F3eXJD?=
 =?utf-8?B?dzlYYnJzWjUrMGZ5MFV5UlFXMERCYVZkUkZtY2YxNklOOHIxNlpDNFljS0Vl?=
 =?utf-8?B?a2paMzRoMGhmak40a3JtTE9Gb0R2bis0U3hORkdXbllyUUV6akpKeEtHeVRM?=
 =?utf-8?B?UVBjT1NBMmtOcVpEUVpKazVxNk9YN2hnRWRyNXFtamk3TGxadUtqYkt2VStP?=
 =?utf-8?B?ZW1MV1YyRFJkSHJuUEtzbzJhVnJmZ2o1Mng4NjRObEVUYXdwbFlBb2hoSVZy?=
 =?utf-8?Q?fPf8=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 15:57:25.1213
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9cc0e500-779e-4991-a0a4-08de22042c4f
X-MS-Exchange-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:
	SA2PEPF00003F67.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB9038

Hi,

On 11/11/2025 22:05, Oleksandr Tyshchenko wrote:
> Introduce a new Arm-specific DOMU_TRAP_UNMAP parameter that allows
> configuring how Xen handles domain accesses to unmapped address ranges.
> This parameter corresponds to the "trap-unmapped-accesses" device tree
> property.
>
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

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

- Ayan



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 16:01:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 16:01:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160248.1488439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJDHL-0003B6-D6; Wed, 12 Nov 2025 16:01:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160248.1488439; Wed, 12 Nov 2025 16: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 1vJDHL-0003Az-9y; Wed, 12 Nov 2025 16:01:03 +0000
Received: by outflank-mailman (input) for mailman id 1160248;
 Wed, 12 Nov 2025 16: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=X0mN=5U=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJDHJ-0003Aq-Op
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 16:01: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 c8041cbc-bfe0-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 17:01:00 +0100 (CET)
Received: from DM4PR03MB7015.namprd03.prod.outlook.com (2603:10b6:8:42::8) by
 SJ2PR03MB7140.namprd03.prod.outlook.com (2603:10b6:a03:4f2::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Wed, 12 Nov
 2025 16:00:57 +0000
Received: from DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9]) by DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9%3]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025
 16:00:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c8041cbc-bfe0-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=diYtuecjqGYNL7wsDk131NT1wkV2gyfsn1+m+Qu3u6CA+daMpijIfXvDuKQYnT5LpZ1zDjSceAoPjvka1t5eerYdJqC6kxT/bxEAr/qV7noTffqpBFY51p7APOGIU2CPDBAHCkP47Q8RA3bpc8yrizPZtj9MEhylPVE9KvB21P3Tx37l910ogR7HZYZ1CdlArhzOXycvHs2Hx6/K5Y+liV2GXRPXD+8gowlYkNZLnnn7HykWmfcRPnkSAw7jruGNUZc4Cbgj0rDKDKleqLaKlPLmWW8TGihHsrOsFmkz5JDg0PFQmx0ZyPewhFeosfcvqjgaC6vBg8bH8sN0ZPUy8w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cgCXa7LlzhDldNZCfU6vxMe2QQIZBu4xkbX/oYDUjI8=;
 b=i3g6RYYDGYRiZoQTZdHpPIH6HHM+O1xZqDGrLEIl43xzAGNwuDFAftTukuJJHuBE4lR6Jln0QuaTf3LEIpmfBcNACilDKjfw4LF3VhypsSYsxRPrli7I4i8948peO4JDpDaTrDjP6ZvKQfb/rvXAKhcdnxP+IUt4NvxAMSo0xjmx8pNJ2azomp2ZzwKzcAWqBJJQEfLYfPA0WFJxU2DYOJSb1cyHHCQAPC4KctZU5C35MXHbVfn8n1vvwkt/uhXuXU1Nl3M5CovG5nNHjNxEyoyYaB3Ux4RUEsE+5wtJFWpeStRb1C2hwdyMgjm+MAdRw++K7gKzMp0uNpUtnOmayw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cgCXa7LlzhDldNZCfU6vxMe2QQIZBu4xkbX/oYDUjI8=;
 b=A3SkqTBsWvk8YTf6R5RECgs5y7Q56YFzsTmIjLEDy5dHCFJxWCAPmeGpZu1Z/47rGH4KZfM+w9SH9u4wWVtoef997p8MvEj4cDGQXYUO882RFEIPIchdYSv4TOTKHGrCFZHzIPs2RH61IeKEckLCNXRpRNidyFh9s8HHG2peewM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <a8a87ff0-ee37-4f35-bf42-4ea580a425e4@citrix.com>
Date: Wed, 12 Nov 2025 16:00:54 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: there's no use for -mpreferred-stack-boundary= when
 assembling
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: <8f814892-9f20-436a-907f-f25b294a9741@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <8f814892-9f20-436a-907f-f25b294a9741@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P123CA0007.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:a6::19) To DM4PR03MB7015.namprd03.prod.outlook.com
 (2603:10b6:8:42::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR03MB7015:EE_|SJ2PR03MB7140:EE_
X-MS-Office365-Filtering-Correlation-Id: a822e2fa-154a-42a2-c3bf-08de2204aae8
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?UDJHRkxNT3dMK1orMlBPUXNmRHZzQ28rY2RRN1hXYXRqUG93d2MvK1dSd0hF?=
 =?utf-8?B?TFRwVkxudjhxTFlVcUc4b0ZrQnN2enZpL0M4SXNnUUNWU05zbXl5ZWNkRGZu?=
 =?utf-8?B?UlE2dEZ6ZjYzejFYcjZsMG4zNXk1L1V5dmMwUmVrWHRjcm13ZGkxTUhpUFNZ?=
 =?utf-8?B?VUxxSlRPN1Rsa0tpWk1KMnZZNHJsYjcyNXRleVFiMERlR0lXR2wyU2g3N2xI?=
 =?utf-8?B?aVBmTndTUE5vcy9ub2V5aWJlbzdSVitDY2FacTFEMG9HOUR6TnJCWEpaS3cv?=
 =?utf-8?B?UkRTbTVnQnJmYnVNVlNlcHpmK2grd21pTlVVWUhmWmt0TXlMTzhHSXczR1RO?=
 =?utf-8?B?dENhb09ITkExNkF5NjlEVmtEejJOQkk2alg1L3U1YThxVmZ2UnFDRTBXYVdC?=
 =?utf-8?B?QlRDYXhBcStZeGp0YWZ6L3NEWlVVL1JCbmo3ZHZKVFJuQ3JxM3JEOEhUWE1Q?=
 =?utf-8?B?YkFNNWJGbWJURnNNV3JkckdtcEpaM2dLMlNvVnhmNy9RWW5MZG1PYVFnNDQr?=
 =?utf-8?B?ejdLUXNpOU0zY1lCbWxmaU9zK1diUHNRNVpRcWdGZUdvQlhvdzZUeGREakgx?=
 =?utf-8?B?akRlNEo5N0JrQXRRRSt1azMwZ1dmZVB2czhNMm5oT3kvMzA3M3BicXpmSTd5?=
 =?utf-8?B?UG5WM29aL0w2ZUN5RnQyV2p4UFE2U3MwSGVkaW5YLzhWa1F6dkFnUzl1Nlh5?=
 =?utf-8?B?WXRTR2NKMlJnOFZmL1lCQ1hzQ0FhQ2IzVDlKakE1bGJpRjFtOStZaEJKWDFk?=
 =?utf-8?B?K1kzZ1REWmJzZXFBSjFzaUZGYTFrdFAwT3lnODdkUSthOW5sTWd4M0MyWm1O?=
 =?utf-8?B?Slg4V09OUHZhdnZKcThsUWcva1dWUysxLzA3b3pGVFZTVkNIT1BoTlExQTlh?=
 =?utf-8?B?Q1ZBaFpPUkpRU1lzNUtIM1RtOCtDc285Q1p1SHYzcVpQamFhb1plbGxkS3Fn?=
 =?utf-8?B?Q1RscThTUlBuNHcrSXp1aFI1am1ya01mbjBReWkyOTRXdXMzNUpkRkdUS01y?=
 =?utf-8?B?dEhjWGZQRWllWW1DTy90RDlMUlFlVnZnTlc0ZFBlMlVPcEJtenk0bUwwUVJQ?=
 =?utf-8?B?N2MxSkpyYUh0NEdiOHFaRFVSS2hIVXVzbmV4U1YyYVYxMlBqY0l1NVpnSDdS?=
 =?utf-8?B?UHRHRG11Z25IczJBZ1VZV2h4RjI5RjlwRW1YM3cralRJQmJ3UGNPNGhmL3pz?=
 =?utf-8?B?V2RLM2tCcmk3bkNEN01FUVpqSUxkb2NCVW54SVF5S0NmN2dyZVdQcTJkWVJu?=
 =?utf-8?B?ZWsvc3F2QmdGWVhHeERxZDc4WnloaXg3dm1yaUxPMTVqa3F4akxNNEVHMGpn?=
 =?utf-8?B?T1FhV1ZDMUxIOG1rbjVRbXY5V0pJVWdQcTZTVlpMa0dneC9ENldONmNTakxi?=
 =?utf-8?B?MEhZVElpUTB6d0dYdVJkOGtKK3JSaDB0RGdoT2RkNkNkWmt1bHZMeTBJWWps?=
 =?utf-8?B?WlhEY0s2QWlwQVFxU2MzTlNaTnhOdTlobzBKMWc4eUFiR3JIY3lJWHpab1pD?=
 =?utf-8?B?UEZJSlRVMFZvSXdpS2VKSUx4ME8vTC9qa1ZYb1NmOEtLaHh5ZmRvaUhDSEh1?=
 =?utf-8?B?ekdhdDJpbUdpcDdzTy9ZRFN0bDIvZGhCUFd2TFJoZHlFVGtTTTMyN083d04r?=
 =?utf-8?B?aVhMMTY5TGl5Z1EyeEkvNEU2ZDlBYkhIVkU4M00ySTdkSUY3Y0l2ZHo2c2Rr?=
 =?utf-8?B?UHNPZCtUZjQ1KzRZb2gvTVpmTHFtRWNYV1VyNmR2WURqQmZUT25yVWlybVlO?=
 =?utf-8?B?TzFzcE5NeFg5NENXY3hRRHZ5czIxMU5JVnkvR1d6OERHR3lyaUthN3ZoVTYx?=
 =?utf-8?B?WlVZVFdrNnhFS2MyU2FsNGxSb2hONlcxbWdSaFUwQTRRL1lIU3pXVmp3MXNk?=
 =?utf-8?B?dlNaUVFPYzY1RDluQ0lqTGpldTk1OVhoZ0pZT1U0MkxRekJXaFBncUx1K2dB?=
 =?utf-8?Q?aX85b5SeYHsIKJlSaxsK8SfWrd9Bxa2w?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR03MB7015.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?dVFtZHdrSHFKZ3lrdHU4enRjU1gvYnRnWjQ1OWtnZ05QV1BvWXhvdFd1UVE5?=
 =?utf-8?B?c1VNQ0FRYnhHQkFrWTZhVExiNjBMRGFESW5rMzlkU2ZGTGdlNnBRemF3WUtj?=
 =?utf-8?B?blRJSmw4SFBDemVxelppZ3hua3dhMWp0b2xEaUpSNEZKOC93RU1QRWFTbFVB?=
 =?utf-8?B?Vnowd0RhMjVmSHQ5Mi9SdElQOW9mSnowVmhXZFRaK2YwVUFLaVpmSEljRHFB?=
 =?utf-8?B?djFpeURoZng1Y0gxaGs0Q2gyQmdGeTR6RlVtNUZjU1FjM2N1cFVrS1JmU2lo?=
 =?utf-8?B?eTFMVjN0SjRGQTdzMzVNNkpxWFh4NmY2NDZYc3NqOVFidEhEWU5CTHc2T1hz?=
 =?utf-8?B?eXVNRDFweWlacHpFamlPKzRrUHZtSzh3RnlFbkJMUVhVeFNjMm85bVd1b3VF?=
 =?utf-8?B?VkR3cEZiVEdIYUo1Q214UWYyei9xZVRNU2g5cnQwMU5NQXlveEtBbDZCNGFF?=
 =?utf-8?B?TkhXanM0d28rMkpKNHh6M3pwVWorbFhBY0ZPWFoyMGR2MytjY2VLb1BaV29W?=
 =?utf-8?B?VGd4RlI4S0Z3UURlc3NPSkdOSW5YQldRQ01xTlRYVS9MVmJNVFhTYy9CUTV6?=
 =?utf-8?B?TXlWenlzUEJCeEdYT2hUUmFEUmI0VWgxRWkxdXdTWnNBd1puT29sTDdqTWRY?=
 =?utf-8?B?b2poWEk3VWNKd1BLM2FvUjRmSWNIS1pyU1k2ZTd3ZmU2aUZqa3orVUxGWnZD?=
 =?utf-8?B?V0E5d2VHL1h2SkFrTUtvQ0VWVkFSa0pKQUZTNitrS0x2Z0pVVkF6eEpoYmtU?=
 =?utf-8?B?RWIyTXZ5eThHTmw0QUV6eTVTTGNYdjRTdm1WR25CelpMRkk1QThVQjlHbnJ2?=
 =?utf-8?B?QW9RaUpWUFdGaEV0aElXaFFCTUVxblNnemZlYlZkRE5NbUlLMTVYeXhrSFB4?=
 =?utf-8?B?UjQxK0lLdHJqME9YbDgrRlA1SlJlUVFVUlcvQTAxQ0ozeEVoNmh5czBqM2Na?=
 =?utf-8?B?NEROZW8zNFVxRXNHYTJBYVlrNzJycGMxUWlCV2lCWGRhc1ZWVi9YY1ZNMzcr?=
 =?utf-8?B?Ky9qaDViV0h4SG1pN3E1VDJIZVdONlpTOHZka25sN2I1ZFFVU2ZjekhYTm9N?=
 =?utf-8?B?ajBJMTVFZGtSWU1nQnRvSzNCTE9YdXc0LzdCZDMyTXRQNDNRM1JzSWUvK0U1?=
 =?utf-8?B?dmlMcDN2TmhmbjRGdFcrUEUrRm9BOU1yYUdPVkVxYkpkeDFLaWRWWnJJTC9r?=
 =?utf-8?B?N0xqNDBHK25XWUQya21Ud215OEVVMUxWQkNoczJSYkNHclJjbHRhc0JPQnJr?=
 =?utf-8?B?ZTFqYTJ6dmU1OFMwTWtmY21YQnJZU1dIU09kR0RUSHFjcnhudjFtYUxZTmh0?=
 =?utf-8?B?QVZkaFM2U0dieWxoU042TlVDUlNaY3hBOXphZTN5UjBNVXhsT25XOGI3VTZJ?=
 =?utf-8?B?QXZpM25wT0NkUkltUTAwOTBjWEZZeVAvRHVPb2grWjdFQWZlMS9qa2JUUTA3?=
 =?utf-8?B?SHlvZzBNOEZBakN0LzNMOUFtMVdWcTdieEV0bVZ2TjVXOWJJR3AxbGVmTWxs?=
 =?utf-8?B?aEhQa0xRSS8rV0RtdUQvQWpCb1A5NG93Q1psQURQWTcyZE1rcDVVeUN4UE16?=
 =?utf-8?B?bm5wUSsxWDVHaTlCa095dHdMK2I0bFI1bVFtSEpSZWhKaXlIcFFsSXpES1kz?=
 =?utf-8?B?NnhkakQzbWlqc2ZYTGR5c3V6MjgvcDB3NjZKbmRydDZ5SkJFWVlTRHpBRVMy?=
 =?utf-8?B?Tld5VlAyNnhGNHBrRVBjQnNSUENjNnV6MWhPRUtISHBKMzlpaEEzZ2NRYWxp?=
 =?utf-8?B?MGtBcjU0cDRGbW5IUEQ5K25la0xqT1lsQTNxcmRHUWo5ZVEyb2srMGNmalZ3?=
 =?utf-8?B?dHBBS3pEYTY1M1EwZ3JsejM2MllNaE5DYmdNWExDcHFXWVEvTEpjU1BYVFpF?=
 =?utf-8?B?djdxZ0ZhK2MvMm1sUFZ5OGp5N0lROTEzQ0Rjd3A3UHJUOFFlZHlXWVhST0hz?=
 =?utf-8?B?MldSYjBoTW9qWmpRRkx0Qmhsb1hiUmdBNXhwSHM2S2EyOGRPYVVCcGVOS2d0?=
 =?utf-8?B?MDk3d1J2dFJRTVNhUHBaL1lDN21yNWRSUUFEQ3RBV2xwK3Vtd3RrWHZBcm5C?=
 =?utf-8?B?b3NlaGNLZUZlakhDdlFBZiswVnZSMWhWNzEveUNTOFRKVUJ5b1IzdDhYbS85?=
 =?utf-8?B?ZXovYzRxNFp3aEJqVU80Wko1SFFRZC9KdER0QUtMV2gvck40YVZZTjVGS0Va?=
 =?utf-8?B?aFE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a822e2fa-154a-42a2-c3bf-08de2204aae8
X-MS-Exchange-CrossTenant-AuthSource: DM4PR03MB7015.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 16:00:57.8269
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hwgV3eegwvZ8i1XtlrNmxF0tzqVXLIgenjI9x7nvevYvwehtW8HmHqpObrlI8da0fcXNQ/l3VwfmhVGQWvaDTH5fbseM6/uGSw5e9Q9FaA4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7140

On 12/11/2025 3:39 pm, Jan Beulich wrote:
> This option is only relevant for C ones.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 16:01:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 16:01:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160257.1488450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJDHx-0003iX-Ka; Wed, 12 Nov 2025 16:01:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160257.1488450; Wed, 12 Nov 2025 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 1vJDHx-0003iQ-HE; Wed, 12 Nov 2025 16:01:41 +0000
Received: by outflank-mailman (input) for mailman id 1160257;
 Wed, 12 Nov 2025 16:01: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=X0mN=5U=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJDHv-0003f1-J8
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 16:01:39 +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 dd90db10-bfe0-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 17:01:37 +0100 (CET)
Received: from DM4PR03MB7015.namprd03.prod.outlook.com (2603:10b6:8:42::8) by
 IA3PR03MB7620.namprd03.prod.outlook.com (2603:10b6:208:50d::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Wed, 12 Nov
 2025 16:01:33 +0000
Received: from DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9]) by DM4PR03MB7015.namprd03.prod.outlook.com
 ([fe80::e21:7aa4:b1ef:a1f9%3]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025
 16:01: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: dd90db10-bfe0-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tYscxDt6KrGNkKxAoFbYu0miMr1vHU/w5V8f9Q9BVY9I+RcDZ7EtyTYwYzgkyR4QX100M15RHm+p9WG/lziPB8hg5NeZK1arjI06pDgbCJe+GwlELOYFiubkxqK02zsbpIcXWF2uNjh1gTb7K9Yr1BY8h4SMIW50W7z5OTuAw2mHz4Rbn9AeTe5JRapDaZOvWBNp/IZU17Ntzp5d/rXLhnH7EfL+T/Q3LLbjiGkCQitaNdRzTG3MGb0kdfSbt2QgpbLqXt0DayeJl5FhpMjyC2BltP4BNU/QddRg40JJeYlcSqTi190tLIVLWzY7k2/bgmgDqRqqxW5kCW7YWvs6LQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9ti+m6syFQlzgcND+CNg8RFMHCuHNnTNIaCqH/wRQjo=;
 b=emA27fTutwefA4NwzPOT46oedg20OxQtLvUDcUSiCo3EzjmZXYrF4pEefOGoJlfND0N51OqNl7CvJk3z80DddHUy2hnGflqBFJdBSEFSUa8CeVFtNWQY3PW31MLBBXO9Nkx0N1P7vBrTSrXnhHGAuTPDS7emtxKMZ8BIpNgertz0TuVgRA+obndVWUpDA1j8uS/I3Nq5znCsZFrTb29chWHY9nDEQVy6VJvTeTZHG1RuAAaqk/kgNI4rPZKk0cYgZ1tvINnbmXSVkCiai3MRjCRx9iCeQ+VcWb30hAqr0Ygmp4QYDyNbFGX5eUvwHZ0rX4ycoA2gTNaIe396+JJYKg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9ti+m6syFQlzgcND+CNg8RFMHCuHNnTNIaCqH/wRQjo=;
 b=xamFVCX1VVHfQey+GAfMejhrGEOI/lVP8d90xstqqd3SelYy5sgwJVuuW9sm/ubVYh3OI5MiM7uxNb0n3WLZVc6pDA804KE9H8/2Zwcy8V/W3ps0HoeIKIYbH4Q1fi3Kig64Olualhmou7/tI1pAQypg3xpmDG/EQn0SHKRT3So=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <a1e1c169-74cb-4d60-ae78-e634b1452f2d@citrix.com>
Date: Wed, 12 Nov 2025 16:01:30 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/IRQ: use LOCK-free bit setting in init_irq_data()
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: <88bbddc8-61cb-4284-9b0b-9735a4a8099c@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <88bbddc8-61cb-4284-9b0b-9735a4a8099c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P123CA0005.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:a6::17) To DM4PR03MB7015.namprd03.prod.outlook.com
 (2603:10b6:8:42::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR03MB7015:EE_|IA3PR03MB7620:EE_
X-MS-Office365-Filtering-Correlation-Id: 33e60d3d-89c0-4f4d-40e4-08de2204c058
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?WnFsSW5ScnhPZnM1WHNhVzBlbGhZeG8zZHdxR2N6blllNVdUbTNVS3VCZzVl?=
 =?utf-8?B?QnF2bUZMWUR5VnJ2TXo1MjJldU9VV1lGdGo3Vk5GMEdzN2IwbytZRTBZT0VR?=
 =?utf-8?B?U3lFcE5HdTArZDZaNkxIYW1TaEhyTCtmaU5JWUQ1bGpNdjd5cVZZWmpkWEJE?=
 =?utf-8?B?T1ZnNFlPYnFjdDNLeXkwWUNDTk9LT1RZOTNxOTcrREp4OVBxNlZOd1lycHdM?=
 =?utf-8?B?Y1hHYjZtU1VLTFIyQ3ZLcUdEYXg2ck1HV1JwUlF1MnJiRk5qK0sxOGhPb0Q5?=
 =?utf-8?B?aEVGcWtBZkhCLy9wbFdZYXFhRlBrcmVlZDJ2L2I4eExtaUVBbUs0M3ZIU3dN?=
 =?utf-8?B?bS9tcGd0QkM2K29pblY5QVRZcVZ6NE9sbnU4bG9Sd0M5NWhBbWJ5MlhSQ20r?=
 =?utf-8?B?MDMwT2FsdTNzSTVXQS9hc0JXRG01VlM4amk2cUthSEpPTy9GQ1A3aFRxempx?=
 =?utf-8?B?d3hScVpZMGh6UkptcUFiSCtmUG1WeXd6UGp2UWIzY2h5NWc2OXEzcWRhTVd3?=
 =?utf-8?B?NS9kSFNTOG4vQ3kzdFE3dGYvVWUwL1ZWQ21OSENpNVM4SjNqZG9JdmlxY3o1?=
 =?utf-8?B?OVlJUkNpc1A4QjVpS09PUTVEaWdFeVlCQWNTWmhlM0hVM2tQKzBscU1lQTcz?=
 =?utf-8?B?UTJrbzlURHI2TTVrVXVJYXNpdEU4TXJzblhUdTlRQk10QWZLT0kwVGQ3R1dZ?=
 =?utf-8?B?SXVBMXcyNlVLVi9yd1gwZlM1RG5HcFFDV3QwR3htTTllMmdEcHN1U0JzdTZV?=
 =?utf-8?B?U1ZxakhsRjM3YmhIa2h2YXZiZXZLdi9BUk1TSXZYQUcxa1Z3Z1Uxb2krQ1dY?=
 =?utf-8?B?N1RXc0tEbm5PcHYrM0hQRmNYM3lQMnRCUStiSnNieWVwQVNjcjRDc1NSdWt4?=
 =?utf-8?B?dEJFSHRsWFZQT3lKSWxHbnE1OHQvc0s3c0RCSmV5UTBuM0FEaVhid1BERFpQ?=
 =?utf-8?B?bHRjR2lvb05ZeU1GQnFNbTlmbkt3eldiRTlULzFxVWJDQ28reU10Z1hEK2ZN?=
 =?utf-8?B?V2RtejZiMElZTXQ3akl4WTMzcWg5Yzg1OVhNOSs2RWpxa245c2h3Z3dmNEJk?=
 =?utf-8?B?NGx0U1dlTmhXcm1TcURFWXV2TmVRLzBEMHJVa012bFVMemRQZ2hhTnNhUDBH?=
 =?utf-8?B?R2lPdWtpNG1JMkZrTDhVOHc1MVVrSDl6WGxmL3hTNHZTeFl3SmNzWlEvaXQ3?=
 =?utf-8?B?bUxjalp6OERFWXgvQjUwRHNUdit4Sm5RUVJFUlp3dWo1dlFxcGlUUVAxYjdD?=
 =?utf-8?B?a3lvK2pmVm9yYUlPSVpVV2ZXdXNlL01jSkd4a1U5d20wNnlFN05CQlBnY0hs?=
 =?utf-8?B?UFUrRi9sRjlEQXkxVjczRm1KK0JuSDZSMTAyYjJaRnBrQ0hMa3ZFdEE4dUh5?=
 =?utf-8?B?WWY0ZzhzVi9CNmlDRGtaRG81b3orNWs4THl5U0J5SGtKNkk4c3owMmNicTBI?=
 =?utf-8?B?KytPNEQyRzRwUEh5VDFPVVloL0tSQi9xV1JCODVhTlk3ZDVEcys2aWRmaHpR?=
 =?utf-8?B?RU5HWE1GOHZHc1cxR3pJejhZOXp2VG1GSmU2aVBTL3VxUEtWM3F2bmgwaVVw?=
 =?utf-8?B?UmN2bGZLTWljdU9yWE1aSlB6SU1JTTc1d0ZKcFFocklVb0pKQXZxVVMrVUFz?=
 =?utf-8?B?TDlMQUdtYWErTnN5ZGhub0RCRTRVVUNiU1ZlQXpTWXVBTDBwcFp3emo3eXg5?=
 =?utf-8?B?dHNCWDRCdHJqQzRYdDVWaXRQTWljd2d1ZFNiNzJOV0JoWDJJY3VSTWVkaERo?=
 =?utf-8?B?dGVHaUlsVG9HQ1AwRStYMW1nV3VFSE9sdTBoZmtBSjN4Q3FmNUhBSmVlNzNZ?=
 =?utf-8?B?dEhRbEZlUDlucHN3NllXUkppZWoxckM2R2R0Y3FERmE1TnRrQWFlcll4NkVQ?=
 =?utf-8?B?Mk83cmd4Q0pHRjhKMGpvZDRUZDcvVTdrc1l6N2ZjTnNXMHJqaFBYTStNQzNM?=
 =?utf-8?Q?rMT9dhA5uOvBnIgL6SKEZKj7iDxYN5HR?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR03MB7015.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?Q1E4Yk56VHQyZlpWZkJIRGY0ZC9uNStPWVNncFVUUDFRNzFXRHd3QmZ4bk9K?=
 =?utf-8?B?RW03ZXhpbkk4QWFQQUJHY2kyeU1vRmhmUGZiOUN5K2ZGVEtKWi9jOWFXZzE1?=
 =?utf-8?B?TzZJeENrcFhwWnkvSmlPelp4NEU5OEpBVlZKRTBsamlaRkk3OEppMkRCNlhK?=
 =?utf-8?B?d3N4bWNHUkdHM0JwOWVNUWhmb20rY1NRb24yNkRJeHBBVjV5NStpeUkyLzI0?=
 =?utf-8?B?eWgwajNqeGpJd3lCQVlZNlJqaUFZVERGemRVWTJjU0pvNmxQejZoNkRHVjll?=
 =?utf-8?B?dUZ6N1VnWTNrMkttUStxdzlYQkN6ekdEUkJXbTVCb0ZrVFFiTUJ6bDY5SUtM?=
 =?utf-8?B?MWk2RTVNVEdGN2dmREdvT1RiL1NtMHd4eTQyN3V2SzZUczgwTnJvWS9Md3E0?=
 =?utf-8?B?dTFBeGNvRWZ3NCtuMGljbmh6cWRZWHFhUFVSUndUTkl0bWVLYVgrWnE2a0E2?=
 =?utf-8?B?Q3hTVjNlM0JSVU1CMmVUa2pzWEVDSWNmRmNFOUxVeGZMb2EwUncxZFRnNXBa?=
 =?utf-8?B?bUtwaC8zeTdwUGpBQ3N2UmZxTUIzYVQ1N0lJTHRweG5seXUvWGdoVkdPc2VY?=
 =?utf-8?B?ZkEra09ReEVzRTdZOWt0d2JCamhjOGJ5RDY2cnZiWCt5TTJmdTh5SUQyVHlL?=
 =?utf-8?B?K0tLV05rUnRTcWxPanFlWXV2cE85Y2gxKzV5aGNROGllWlhQRmthbHhJWEZ3?=
 =?utf-8?B?VkxFY2VNOWY2cDNETmsyeVVVQ1RjSVBoU1RWbkc0bkZ2cXFabWdQaHUrUTVQ?=
 =?utf-8?B?NUN2bTdtRDYwejlCYzhZTHZXbExZYWVDTkpOZTlVMHRMYVIzT2FQaUNDVnE4?=
 =?utf-8?B?SFBaU2daWkZ6andBbXhJOU5LaHZlVEJoLzRGRThLSHd2U3N6Y3JXdm1zRTQ4?=
 =?utf-8?B?cDUyK0RlQ3Y3d2VhN1dLeGMzUDNPNXdGSk9BZVJnTHhtVlJoT1p4K2VFU1pB?=
 =?utf-8?B?cEE5V2VpT1hCMnZYQ2pzbmlzdVJIUUM4Y3Y2Sk95NGI1Q1gzQnpkOTR3ZElp?=
 =?utf-8?B?U1ord09WejVUelB5R3B1aGk0NFpvWW54d0c2NkJQeTJpc1h0aG5vSVBnNElh?=
 =?utf-8?B?dGhJbnRyVm84Z3dqRmIvUzhzc2tVT090TlNINnk1OGZ5UzdvcGRyUWU5eXp1?=
 =?utf-8?B?YW4rRk1QNFVYSW4vb2hBdWFnV082TEpGajcrbENrUlR3cGNQN0FiT1dJWkp5?=
 =?utf-8?B?TWNWa25HN0pVMzJTZTFHTHMrWWlqOTJEWWxNb0luWGFaNnRxbEdRVldZYTFK?=
 =?utf-8?B?WFdyM3NrUXFia3N0VkF6am5pQzU3U29UdW1mNWtpS0FOREJ4TFVuZ3R1WmZv?=
 =?utf-8?B?UzBJN1pkMGhlSyt1VGJpRDN5cU1qWFRCZHdIaVNRRGE5UDVtdFZtMFRZYUEw?=
 =?utf-8?B?aVlFNHdwQlhQZXpaSTM2azlwaXczRGh1TEQyYVQxMzJZa0IyNEYxQ3lMTjNo?=
 =?utf-8?B?SWorU1haZUxDM0F3QWNqOXRIYjJaNVJQdEs4bWdubXVKbWQzVmVBTHlENFU2?=
 =?utf-8?B?bWFha25CaEZDWnVud0UrWW9aeHVLWFRremFNTXQwczBqQ1pJSENETlRJdnlk?=
 =?utf-8?B?US9yK3NPT1RSZXp2eW5pOHBwWXR3aU01emNkcFFYcHdTZ1I4WDMvTjRXVyt3?=
 =?utf-8?B?VTJWM2hSTWczUVVwY1hkbE56RGtyYlYrelk1ckIxS1VnUVVhL2RSaVgvTEZ3?=
 =?utf-8?B?cmNVYSt4WFN2SzI2U2F2b0VpWGhXckRlblZ0Qm85YjJUeUJ6OFBXWUFjOEp0?=
 =?utf-8?B?N3l1NjNmUXNPZE4xeDhWYTI3OVE4Ui9JWjJMaHdCODlldGxjOEJ2cFhlaFhi?=
 =?utf-8?B?NE44SjBGS2c0WHlGMTMvNmhyM1AxTmg5QWRERTgyU0lnZWQxK0I5cS91c0FF?=
 =?utf-8?B?Smo3WHpySGFvNEtUZnpqSFpySnNSbGdqSVlXd212VHR5aVh0R2NDVXVmaXFw?=
 =?utf-8?B?TEc0SzRZTEZMUy9PTVRpN3FvazZCK3lERlE1ZERRNXhjUm9FWVluK29xVTdw?=
 =?utf-8?B?TkEzcDZGS3pxYjI0YzQ2Tnh2b1NMR1BpYlc3K0dpUXpONklZTFVaNmpEalRa?=
 =?utf-8?B?UmdmV3ZKYnl5Q1F5KzBpbytxNkdVSG14ME9aUWlpcVZMREtyUkhjK2dXNU0v?=
 =?utf-8?B?KzQ2Y0tmRHN1NU9jNHRScDhyanVtbm1RWWZzVW4vcnhFckhqbGFFdU9wWlBs?=
 =?utf-8?B?amc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 33e60d3d-89c0-4f4d-40e4-08de2204c058
X-MS-Exchange-CrossTenant-AuthSource: DM4PR03MB7015.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 16:01:33.8174
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: p/yTRnGRuXE69+mWNREfYpemJdYTujFJzFZydi5peQUwoeDTgv4QnhJ5pjJfdsc5sTh8CySZ8lfQWMwfbdubZ562svu5g3JiGrNba37NYww=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR03MB7620

On 12/11/2025 3:43 pm, Jan Beulich wrote:
> Much like done later in the function, syscall and hypercall vectors can
> have their bits set without use of LOCKed accesses.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 16:02:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 16:02:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160273.1488459 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJDIx-0004dm-2x; Wed, 12 Nov 2025 16:02:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160273.1488459; Wed, 12 Nov 2025 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 1vJDIx-0004df-04; Wed, 12 Nov 2025 16:02:43 +0000
Received: by outflank-mailman (input) for mailman id 1160273;
 Wed, 12 Nov 2025 16: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=K5hw=5U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJDIw-0003Aq-Do
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 16:02:42 +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 04d926c2-bfe1-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 17:02:42 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b7346565d7cso1497266b.1
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 08:02: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
 a640c23a62f3a-b72bdbc9656sm1637870866b.7.2025.11.12.08.02.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 12 Nov 2025 08:02: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: 04d926c2-bfe1-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1762963361; x=1763568161; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Wgkw+eYOL5L3CwgaXu6ndBDKkP0t/xOwNYF4OBIds/I=;
        b=FGFJTghD7aaOlcaD9U3mmdR8Xdk1apbvdLzZBPz0I7PQa/DecympL80qzTHkPcbyUh
         5kYPchwepDuEZWwUo4xs29S2TvpzSqELmhgkYW+v6a7kjTNgL0dLdEoGKKv6ERBNMiI6
         y36Umj8Cf2/UHUtVkCz7zSHmz+6cM+xPjHLGeapmNjemR+/6dzlIeSKAiRLKavsXsbYi
         jK9WYc9POaQBULb5xShe8hC/Tp4v7SzMOMkhc4honH09KqtIicYLbp+rjuu4Nvy2P5vR
         3HROror52wt4Lz0VDNJM/GHTZdIbjE7EPLGd/mztUPAMt7/mBKsN4iK29yPkLYzGcJN2
         85lQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762963361; x=1763568161;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Wgkw+eYOL5L3CwgaXu6ndBDKkP0t/xOwNYF4OBIds/I=;
        b=ofe/kpR2bhVFjA8TblDyqDDcIXUwBAXr1orWycPrPFMqHPSg0l8wJzDJH6XO0iF8cr
         1sxS+Osko2h+fsnKQNV9eko12kXQG1VqeK0a0nAZuT5dWoiuZGU4+xS0uObDtemXpYKc
         VLGhU77AibFB8gvqtDmEE0CcACshqz94nxy27RlnGmZ2CndTXV+zQJxVoRk7dUU6dsRF
         k+yI/LXLpj5MJOg9p4R7qmeM5I9twZE1A4dgLfXPrN+RkQEA9qi/Xuha8e8xkcPg9+47
         WCGqxOof+YY8YgcAk6VcXODYpSfDKr5IrvFM2lPfqn82CjkMwJQHTiEdU9RpCkPJBs3v
         csJg==
X-Forwarded-Encrypted: i=1; AJvYcCVFs/zmVwlRHSzhUVy8++mwF9335gsWb+bed9Kq7sMijwokpjp3Sf212qxD5o2+aJE0H5jsZZYvZUc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx8PRuvqn/T2LkdeGeJYAuWvoQNU4MeJA7nIqul5ZxwnR5fTCqK
	Qy+eaa9RNlkq9sSx7Wm+4B6k8OPW4DGhJ4spKCu6d9W781pt7zh3HK0iYzqH9uDW7g==
X-Gm-Gg: ASbGncsVoFcYIVaFbyft0y+GpHLAl9LHsqU6YuR1kEvnh1kpeeA34M1APEt/4lazRGB
	47HI8ScOEfulh+MlBzoQWi07IQG4Fcm8bOODlv75Uof2in6PPa3lVrTqLFeBTZWvRS+EOUBSsdv
	vuFyFUqADadIi/ZSHCRHh288qDOMCnQ/SKI8VztUYw3ckKxu+9CcGNQrWZDChwX3L3gLiyi4w2V
	HOFWo0/izaLVXlaSew+NeKM1UqeDJFeJ8CZLMiVRv6IVlT8Zkz5K8sjEnag8N/lqX70qRyvvY22
	MrHsGtHumO4XPtEt346FnfO2Y5OqzmNZJ8wGnHWdGMs9CGyYwRBi/PWRCNSCzhY+l9V+63F8omW
	8fh2Cm//KvXUQAFuKMZy6FwEXPM1N8dOBBYZoLP8kgya1UdiowyxdI0BeRWTqViHW3Uo3u1ZVDo
	zMpHl0SHWsFbXSSlV3jPYO9ZekOYxEl+5oCVujWk3gZ+uDhGJUrAMZGQOdsDG9ECDkimWLUYqii
	kc=
X-Google-Smtp-Source: AGHT+IH+cymoi9wa/1QnVqHpLVASOZ7QslR267tYQckiMfiX1Qy9pKnV+v50igM6QlXZTMQ47eW4Dw==
X-Received: by 2002:a17:907:3d8f:b0:b70:e15b:286a with SMTP id a640c23a62f3a-b7331b69ddfmr389284166b.57.1762963361251;
        Wed, 12 Nov 2025 08:02:41 -0800 (PST)
Message-ID: <3f73f2a0-1c91-44de-b87b-fac35447af5b@suse.com>
Date: Wed, 12 Nov 2025 17:02:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86: Remove stubs from asm/pv/domain.h
To: Grygorii Strashko <grygorii_strashko@epam.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>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 xen-devel@lists.xenproject.org
References: <20251112152235.224001-1-alejandro.garciavallejo@amd.com>
 <20251112152235.224001-3-alejandro.garciavallejo@amd.com>
 <a7991534-b200-4b00-9a45-2d4c167d7ec3@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: <a7991534-b200-4b00-9a45-2d4c167d7ec3@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.11.2025 16:56, Grygorii Strashko wrote:
> On 12.11.25 17:22, Alejandro Vallejo wrote:
>> --- a/xen/arch/x86/domain.c
>> +++ b/xen/arch/x86/domain.c
>> @@ -571,15 +571,17 @@ int arch_vcpu_create(struct vcpu *v)
>>   
>>       if ( is_hvm_domain(d) )
>>           rc = hvm_vcpu_initialise(v);
>> -    else if ( !is_idle_domain(d) )
>> -        rc = pv_vcpu_initialise(v);
>> -    else
>> +    else if ( is_idle_domain(d) )
>>       {
> 
> The is_idle_domain() wants to go first here, i think.
> [1] https://patchwork.kernel.org/comment/26646246/

It's a "positive" check (no !) here, so no, imo the order above is fine.

>>           /* Idle domain */
>>           v->arch.cr3 = __pa(idle_pg_table);
>>           rc = 0;
>>           v->arch.msrs = ZERO_BLOCK_PTR; /* Catch stray misuses */
>>       }
>> +    else if ( IS_ENABLED(CONFIG_PV) )
>> +        rc = pv_vcpu_initialise(v);
>> +    else
>> +        rc = -EOPNOTSUPP;
>>   
>>       if ( rc )
>>           goto fail;
> 
> Actually, if you are here and have time and inspiration :)
> - if ( is_idle_domain(d) ) staff can be consolidated at the
>    beginning of arch_vcpu_create() which will make it much more readable and simple.

This may indeed be possible, but needs to be done with care. Iirc at least
once someone already screwed up there, while trying something along these
lines.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 16:07:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 16:07:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160288.1488469 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJDNb-0005Ua-LG; Wed, 12 Nov 2025 16:07:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160288.1488469; Wed, 12 Nov 2025 16:07:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJDNb-0005UT-I3; Wed, 12 Nov 2025 16:07:31 +0000
Received: by outflank-mailman (input) for mailman id 1160288;
 Wed, 12 Nov 2025 16:07: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=21S/=5U=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1vJDNa-0005UK-J2
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 16:07:30 +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 aae7fde4-bfe1-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 17:07:20 +0100 (CET)
Received: from DUZPR01CA0269.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4b9::18) by MRWPR08MB11806.eurprd08.prod.outlook.com
 (2603:10a6:501:9a::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Wed, 12 Nov
 2025 16:07:16 +0000
Received: from DU6PEPF0000A7E3.eurprd02.prod.outlook.com
 (2603:10a6:10:4b9:cafe::a7) by DUZPR01CA0269.outlook.office365.com
 (2603:10a6:10:4b9::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.16 via Frontend Transport; Wed,
 12 Nov 2025 16:07:15 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU6PEPF0000A7E3.mail.protection.outlook.com (10.167.8.41) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.13 via
 Frontend Transport; Wed, 12 Nov 2025 16:07:15 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by DU4PR08MB11790.eurprd08.prod.outlook.com (2603:10a6:10:63d::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Wed, 12 Nov
 2025 16:06:44 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc%5]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025
 16:06: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: aae7fde4-bfe1-11f0-980a-7dc792cee155
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=TubpE13QBW8QgGPX3pA+xn+ZJWSdNlSnbLNVMDEyyEERuCtqRJZF5QX9UNikLw+1uK8zttnel0elrR4fLvodBoVDPuroy7T76Ms4jnHazqMB46Azu2UJ7WHN2f/5FWjWJCu+w3CpR8u0PgIrfCNFEbw9fZMDsxCUjhv/S7AijKOa61VJQDfLkt+1vW3B0owTKJ8ORv37XvedmdP00yNOLL/PvXRRL94VtVzeh5vSQ9LkL5PSYrrJ4lWr/kAOnG5uA1+k050za3la3rI+xXfoC/duCIyNE3iebtTal1d+w5mJgPeadM6x0tSOmW87ALzk85tMDPihi2mBX7l/yqSqQg==
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=MiZanPlUn/H4shEpLntazS/TlvwQOAjkfJbdp3mM5S0=;
 b=O0ZtGg2LJQ0VoWhYlkq1f8gNLMSLYBOAIwUwr1SJAQCyhPpkWO4dUjtGnkQmA5jNvl8gMU2DK6OUMMdJv/cEqYCEYli/WBopV7UK+gJKpWsvVuj4DutWGdJwTwiFUw/HXXGz9vYDTWhrLjhJiFtPf33MbJKeUecU7k2GjyRsNpZGDCdYd51xx58gtiQyUf6fot0cmX+L9laxoDbVGGzCW7hhhEXPjELpoT2xJ4pvAp/+MuVoL43AIRoqyDnjk1ARUcsS1+p3Dj9q6AR9tycff4rbDFwm+/PAJ0uqKL2FegoKruxH1YOqZ6cQ0QQ+Hu9U7sYtc9F2m8lbWxgWRxtD2w==
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=MiZanPlUn/H4shEpLntazS/TlvwQOAjkfJbdp3mM5S0=;
 b=N/6grF18TL841Le8fMfxNiMTtL8HNHgGVoe+DN3/n4THU/yuXkvKOq8gZ03JFjqnaurEsOmBQHijGZs225s77lT+1fJlmMJWmxFpz3nKcwzvQMzRF6iX9whO5v0YsZmE1nj6ZcpWw7tGMZeksZGNyaaG0Ntr2Mth7UQhPDatYSs=
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=DuIM5LWuNcSaihjUOgqmpcfS6l1dcb2PTDgSPVbhNZCkp801rlGRHFhFzQNB58BAiF6cvADI2PhOtX9iPyGHhHaeWXqIceJ+AbmQIQ75lgu2YXOZbKVtIvClr7au4Hib/n7Lz0ZJMIxI1bcU+mFcUeGIfuXWjmvh8nork1sliRVxFyUjo6mWziOGr7wYIan1kKU2kbCquIGoL4S6xbedvboX9D5MLCSYNf3TJVEPiBU7SAUxevtBbWNNRiIs9lCnyQbMGkVYjYi0blvhOHjcZGkJoe760PBtLVl5G5o5xGRzJG7G+w+31v8TCpCE/O+x1tSDk7It8masqUzuBFvSvw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MiZanPlUn/H4shEpLntazS/TlvwQOAjkfJbdp3mM5S0=;
 b=gwHcJMcVjrcDE+qbDCCuab9sBmzxWeKWRhcLrzUXMuuVPQrzABTc7e9zRmzyqJNMaaGqM4EMVajDeKIsFGcxcx8Y17n7R9fmxBohehWn/AdgOgJk/uKrmLctenvGaoi1gjS1e/xI60V5UilPGxdnfJ1VIqQpn7lzFAcdWITCF95fUMhFeDeNyL1j28O7+0rhRgotGexZ+vH25KX+QTHqqxUvH2o35+J+yOOWionpigjzBLO2atfpipzsG+IXy2jA/SO6OedzIpfiJpW+H2Iu1Fcx7p70kAyWwFjs4xMV7MdqcY8wu1kpEciIpPzrDtRIljfT+RB+WzDk8AhTenszxw==
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=MiZanPlUn/H4shEpLntazS/TlvwQOAjkfJbdp3mM5S0=;
 b=N/6grF18TL841Le8fMfxNiMTtL8HNHgGVoe+DN3/n4THU/yuXkvKOq8gZ03JFjqnaurEsOmBQHijGZs225s77lT+1fJlmMJWmxFpz3nKcwzvQMzRF6iX9whO5v0YsZmE1nj6ZcpWw7tGMZeksZGNyaaG0Ntr2Mth7UQhPDatYSs=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Orzel, Michal" <michal.orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Harry Ramsey <Harry.Ramsey@arm.com>
Subject: Re: [PATCH v2 1/3] arm/mpu: Implement setup_mm for MPU systems
Thread-Topic: [PATCH v2 1/3] arm/mpu: Implement setup_mm for MPU systems
Thread-Index: AQHcU9GZpx9Ewja+9EW1e1HUZJtzELTvMOuAgAAD+oA=
Date: Wed, 12 Nov 2025 16:06:43 +0000
Message-ID: <EF7146C1-4351-49F1-A0A2-9BAE0EEFB888@arm.com>
References: <20251111101601.4171120-1-harry.ramsey@arm.com>
 <20251111101601.4171120-2-harry.ramsey@arm.com>
 <80c02055-2687-4e24-8de0-8fb4dfe2af02@amd.com>
 <fe082ad9-ee55-46bd-8b93-5320649e6aca@arm.com>
In-Reply-To: <fe082ad9-ee55-46bd-8b93-5320649e6aca@arm.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|DU4PR08MB11790:EE_|DU6PEPF0000A7E3:EE_|MRWPR08MB11806:EE_
X-MS-Office365-Filtering-Correlation-Id: ae69e009-f1e8-4057-e6df-08de22058c42
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?bk5wTWhJOUYybisxa3kwcjkxQklCTW1LQzNhdHVkSnFoY0xtVXBCbnV4VHN3?=
 =?utf-8?B?SG5LNDMvU3BzVUtucTM1NmxheFdRTS9sVHZ5bVd3ZU00cEcra2NTRXFHQzRN?=
 =?utf-8?B?ZlorencxdGR6dm94NytyYUdWS2I4UGFMdy8xYlQzVEs4M243aWJxRHc1eUda?=
 =?utf-8?B?dXNIWENGVERsL3hnVHU3S3VUYjdQS2dxV1poVW1JNXQyZTYwVE9ENHQweU1E?=
 =?utf-8?B?NVNKOUM4emU0M1c5ajh1MjZUN1E2Rk04eWxhYkQvN3prVDBZdjR1T2xaWDRD?=
 =?utf-8?B?cUFIdXczcmk2QUNjbEEvT1ltWW1RQmw3L2lHWUlUSU9EL25oSmduRlEwWGtQ?=
 =?utf-8?B?eTRyY1ZKUStlcTFNcDJML0RndjcvQXR4d2FvcUhQbjIzNWYvR01oejVtamph?=
 =?utf-8?B?TXJOTXFuaTQvRWZwVm1hM0lobGNVckF5TDIreGRwNUVmaWV2dmYyQWFwOU1K?=
 =?utf-8?B?K1E1dUdtd0tlcStjYmxXNDZaY0xaaUdJRG1UVTRTdEJsRTZQdzE1MnlObVNx?=
 =?utf-8?B?dlRsM3YxdFV2V1dVUmp0eDlUd1RqVkNOMERwaTc0QWR1M2VPUEI1UEN5Syt0?=
 =?utf-8?B?NWRQUUpjalRlZXdEeEV2L3BzR0hWa3pNbVY3M1lMM1JxVGNzdk5seTZ0VGxs?=
 =?utf-8?B?cDhDb2V1NHUwQWFmZHhya0tBcjlqc0FYU1IvQzdVMmZjRHlZUDY0VGQ3enV1?=
 =?utf-8?B?bllQZklCZHk3UUxFTVl1S1JqVzlqaFVVRVBLeEJxZ2ZZUWtHZDNuVXcxRHJh?=
 =?utf-8?B?WVdpbzI2aTlqWm8zV2JnSVdKM2tHV1hLcmxlS01VWlFXelZ1eFNiWTl5T0xj?=
 =?utf-8?B?QVJTd1dXb0RSZzkvNW5sQ2Mxd0RCaGRVTkZUSXBKK1VtelF6bnpYck1zRkZG?=
 =?utf-8?B?cXZwYjBaSUo1ZzRaRzRJN1BXbkM5Y0tmZklONjFRQ2hTalJKTXpvbDkrZ25n?=
 =?utf-8?B?ajZuN1E3Ung0Wk9yT3d2bmQrRVEvVUlsS29UZjRLVXNOYVQ3RnlTVjJBK1Zo?=
 =?utf-8?B?bjNYTkwrSFFvQ1kzci9YQVdyOFlXMlZqR3lvSldTY3dwRE52SGRveGRsOFRk?=
 =?utf-8?B?eVBLS2I3N0FTdnJ0cGJZOVJXTGIxbEFKUlZSUzhvaWVQRjROYUJadDVIY1o1?=
 =?utf-8?B?aEZRMG9RNG41dVNtVnZrdjBTRHREUXVFcXhvbEZzWWNySFJSU2s3ZVNraHdH?=
 =?utf-8?B?a3c1LytFeVJsSjV6eXFQWmFicTdSNWt1SGZuWDdOVHdqUTI5UzArb3dwQkFv?=
 =?utf-8?B?YjZiTjZiS0p3ajJRdEg3YVFWNlNBYjFtbjdibGhNOHhkWXZkMkhTRnd2UUt0?=
 =?utf-8?B?SU83bmlXOTJ4czliUEgwYVdNWTlQWTJURjRERDRVY01CcE8vWU9FMDl6RnZR?=
 =?utf-8?B?QVpMT25nOTFJZEZsMlRMMmVlRjRxbCtDeWo4NDJka3ZPZGFVL0U2cUZFRjUy?=
 =?utf-8?B?QnVoRk5DaHMrN2Jjb3BFcXh3TElqYSsvZzNHRlNkL0JIUXd0T3FvMUdVcy9r?=
 =?utf-8?B?cFE3cWt4bytYZ05RbmlNbU84d1pNWGY5V2psa01DUHdpUmpvcnAybjV4N0pq?=
 =?utf-8?B?VTJENFRoWFJjdm56cWZnelMzZmZtc1ZmWDBoYklxazZHcWNXRGhaUjMxQ21t?=
 =?utf-8?B?b3M0SFFPMWtHL2pwaUd4b1gxTTRWZllHNjRmOXBXSGtQOC9BcjBGam0vVHVk?=
 =?utf-8?B?WkxGbE9KNHZkVVFaL2JLd0JwRUpIemJJODZEU01jSVZmaURsekY4TzJmQzJG?=
 =?utf-8?B?OTR2aWh2QnpHQjJuUlhYRm0zaXpXV0R1T3poQk53S0xtcDdPb0o4Y2VWMXFL?=
 =?utf-8?B?SkppNFlGWDk2MmU2dzVJZGx2N0s2Q0wvbGwzcDN4TmxXSm0xRERKWWhaUU00?=
 =?utf-8?B?OTBFSkRFSUY5Qy9yVEh0Nk1sYU93TExCMUdOUTVaelZPRzVIZHJicEhGMVUw?=
 =?utf-8?B?RjFIZTRpb0VNRHg5Q01wcmF3MWZHM2lRalUzRmZ5MmlNVVZtdm9zNTJDbDlx?=
 =?utf-8?B?OGZhMHFUaWNYdjAxS0JYczRsNWw0a2RsUEtvcjYyT1BMd01Dc3BsZk02dFE4?=
 =?utf-8?Q?LgVSuC?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <C1D246E90183364FAC68ADEF83DF384F@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR08MB11790
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF0000A7E3.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	32c9c507-6150-433d-6e23-08de2205794d
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|82310400026|376014|36860700013|35042699022|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QVpsWUpUU2xxMHgvL0FEMDlHSDQ3aUdCdldoNGsxd29lR1hvNUhUTkNWTGFh?=
 =?utf-8?B?SEttMTVsOHdVTHc1b3B1MW5JSU4xT0dQblBWQTdKZW04YlUwMlVsemZEd2xn?=
 =?utf-8?B?cVp6ZTNkcVBkUGswaXdUeXA2ai9EdWFmTHhjaFlwVnlVeVAxK21lVHZTL3Rk?=
 =?utf-8?B?RmpMMmliL1MzSzgybEUvR3k5MEZmTzhDWUNadDZyQWZUM2syUUxoUzB0SHpP?=
 =?utf-8?B?czZTK3ZSdFZOQ3JJaG55RC9ETmswS09QRUVKQWFvWlNqMElkQlk3OUFDU3JR?=
 =?utf-8?B?a2dTUjlJcE4xWGp0WnduS3J4MFpReU9JbjZlNXM5QzVJaFBrSWtJWDd3WGtF?=
 =?utf-8?B?WXBqWWl0cGJ0SVBMSmhFU3JWa09xb1FLR2tlM3YvNFZRT0s1cGJDY2tlNWtN?=
 =?utf-8?B?RytVRDVtb0RJUUVKVjJwOXlhOENiUXpvUmN0MmhoQk52UjMxZTV2Rmk4aTIr?=
 =?utf-8?B?Y01IWWNSaE5RZjI5SHo2VStOQnNUYnRRbkRHQUZ4ay9PZFRTVFhWckV3dGFq?=
 =?utf-8?B?Z1pOeFErMFdDZnQ2bmIyWUtRL2xBRkpWOHlabHI0eTI4UXZtbnNLU0k0Umhr?=
 =?utf-8?B?TklPMVNlb2Y1UGVwZTBaYWttdjdrazlrb1hGYURBMGZJZG9VdWhYeWxHRldo?=
 =?utf-8?B?Y3NSMS9SZHlHOVlpcXNRVEVPZkJjN0I2MEtNMmtRcDV4U1dqVUEyMWJJS0Mw?=
 =?utf-8?B?MCthYVZuSktpOHpKNFhUSGM3REdXK0JDczhLd1l2RUJiczltNTJONDVuOXUr?=
 =?utf-8?B?WE5CZFRZaTVVb2F1bXVwb2pUNngzZU9GTnova1M4TEtBVmtDUDdNc2tOL3VJ?=
 =?utf-8?B?aktrQlJpVFhXd1k1ZUc2akVxOWd0RWxrSWxhZGpiNkZoZmFzSWFZeVc2U2FS?=
 =?utf-8?B?UXpaNnBCajBrTGVJYU42NU9wRnI5a3h3Uk9KNDNGYmFyY3lGeUdMMUpjUWIr?=
 =?utf-8?B?dnU3b2djZDVKdjRIUHptRUd3aUhiQmtxMkI3aGUxYlJEM1gzZlppa0RQL2xZ?=
 =?utf-8?B?cUxKa0dtYVIzQkZKV1JsZVpjWVhQUk9Wd3luU1hWQm1HTWpRNGhkSTNHdjA2?=
 =?utf-8?B?N0FZNEVyS3FIZmlERGpwb3AyVWMzcUZFVzJkZ1krdkpTT01HRHJiNTJZeTYy?=
 =?utf-8?B?ektNUzJFSER1YmpwNGN5WnFTaWZPMnA0eWl0cGJvR1A1M0xIQlZHK2FVaXFw?=
 =?utf-8?B?VXg0K2dpV2RvTXpoQ1FUQWdUQUs0SVFSVHFKWEpvQ3l0YTA5b0hiZGVnbUdG?=
 =?utf-8?B?V3dpUnNFUWdoZDdXSXdMVE9qbTk2VTRrNU1OaWJGS2duTktsQ3cya2hyK0cz?=
 =?utf-8?B?MWFmVk5Bb2RKOE4rcGtJV2JQVTdzbmdBbW5BbFJxbkFXTWF0YmtCd2VZcXB6?=
 =?utf-8?B?TXdzVWhMYkVaMG9nRndNbG5QOXJIOUs2REY3enRZZXFPMmZCbEFKeTg3bmlE?=
 =?utf-8?B?VDZ5U2wvMDZaSnRidzF0NDRzRkxoT252T3QrcVJrRTgyZTVNbjBaRnFwYnhT?=
 =?utf-8?B?TElpTGdNYjlYNHdCQ204b2lndmVJc1Y1blhQSGc4bUsrR3hUNkRSOTNZUkZL?=
 =?utf-8?B?ZTJ4MUp0Nm0rcWRZaCtydlUzd3dPcXM2cW5TWFpYN1JXYVBTQytabGlBUUlw?=
 =?utf-8?B?czRYelpmeStyeVlCMXhRQi80dW5iUzI3dkkwSGpNRGFkMFJoV3g3VGxNcWZT?=
 =?utf-8?B?R0NIaTloK0NaU09wMG1TdDd5OXUzVzcwY3V6YzdFK2xiajM3RTlMaVhsOXVn?=
 =?utf-8?B?RmlJYXZxRDhycjBROG1yQXNYRVM4N3cxeU1GWjNZQmZVSFBrcHJnamRScWJS?=
 =?utf-8?B?amUyYVpXV0NGUC9FM0FqT3lpb2FBRHVTbVJvVDRqOWdBeUhtdTB5blhTR3po?=
 =?utf-8?B?ZFR1Z0NZYjJWVTdyWUgrdVc1Mko4Yzc2alIvaW9ZaWIvU0R6aVZNaHVGUThK?=
 =?utf-8?B?NWxRSWEvdHorTmtGRXB2aGoxRWdiZGI0Q0RMaTRTSjBDWnRKWFFhRGZlL05F?=
 =?utf-8?B?dTNPWVhHQzlsWTA5bVhJVFg4QUt3bnFRZGZTRm42ODJSZ3cxSGtrckVpcTE3?=
 =?utf-8?B?SWc4VzdhNXVnNkZTdTB0Wm9kUk9IODNtZ3ZpNDFWY08reVJBZ2Q3WHRicEVp?=
 =?utf-8?Q?qPnU=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)(82310400026)(376014)(36860700013)(35042699022)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 16:07:15.5493
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ae69e009-f1e8-4057-e6df-08de22058c42
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU6PEPF0000A7E3.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR08MB11806

SGkgTWljaGFsLA0KDQo+Pj4gK3ZvaWQgX19pbml0IHNldHVwX21tKHZvaWQpDQo+Pj4gK3sNCj4+
PiArICAgIGNvbnN0IHN0cnVjdCBtZW1iYW5rcyAqYmFua3MgPSBib290aW5mb19nZXRfbWVtKCk7
DQo+Pj4gKyAgICBwYWRkcl90IHJhbV9zdGFydCA9IElOVkFMSURfUEFERFI7DQo+Pj4gKyAgICBw
YWRkcl90IHJhbV9lbmQgPSAwOw0KPj4+ICsgICAgcGFkZHJfdCByYW1fc2l6ZSA9IDA7DQo+Pj4g
KyAgICB1bnNpZ25lZCBpbnQgaTsNCj4+PiArDQo+Pj4gKyAgICBpbml0X3BkeCgpOw0KPj4+ICsN
Cj4+PiArICAgIGZvciAoIGkgPSAwOyBpIDwgYmFua3MtPm5yX2JhbmtzOyBpKysgKQ0KPj4+ICsg
ICAgew0KPj4+ICsgICAgICAgIGNvbnN0IHN0cnVjdCBtZW1iYW5rICpiYW5rID0gJmJhbmtzLT5i
YW5rW2ldOw0KPj4+ICsgICAgICAgIHBhZGRyX3QgYmFua19lbmQgPSBiYW5rLT5zdGFydCArIGJh
bmstPnNpemU7DQo+Pj4gKw0KPj4+ICsgICAgICAgIHJhbV9zaXplID0gcmFtX3NpemUgKyBiYW5r
LT5zaXplOw0KPj4+ICsgICAgICAgIHJhbV9zdGFydCA9IG1pbihyYW1fc3RhcnQsIGJhbmstPnN0
YXJ0KTsNCj4+PiArICAgICAgICByYW1fZW5kID0gbWF4KHJhbV9lbmQsIGJhbmtfZW5kKTsNCj4+
PiArICAgIH0NCj4+PiArDQo+Pj4gKyAgICB0b3RhbF9wYWdlcyA9IHJhbV9zaXplID4+IFBBR0Vf
U0hJRlQ7DQo+Pj4gKw0KPj4+ICsgICAgLyoNCj4+PiArICAgICAqIE9uIE1NVSBzeXN0ZW1zIHdl
IG5lZWQgc29tZSBtZW1vcnkgdG8gYWxsb2NhdGUgdGhlIHBhZ2UtdGFibGVzIHVzZWQgZm9yDQo+
Pj4gKyAgICAgKiB0aGUgZGlyZWN0bWFwIG1hcHBpbmdzLiAgQnV0IHNvbWUgcmVnaW9ucyBtYXkg
Y29udGFpbiBtZW1vcnkgYWxyZWFkeQ0KPj4+ICsgICAgICogYWxsb2NhdGVkIGZvciBvdGhlciB1
c2VzIChlLmcuIG1vZHVsZXMsIHJlc2VydmVkLW1lbW9yeS4uLikuDQo+Pj4gKyAgICAgKg0KPj4+
ICsgICAgICogT24gTVBVIHN5c3RlbXMgd2UgbmVlZCB0byBwcmUtcmVzZXJ2ZSByZWdpb25zIHRo
YXQgd2VyZSBhbGxvY2F0ZWQgZm9yDQo+Pj4gKyAgICAgKiBvdGhlciB1c2VzIChlLmcuIG1vZHVs
ZXMsIHJlc2VydmVkLW1lbW9yeS4uLikuDQo+PiBJJ20gbm90IHN1cmUgSSB1bmRlcnN0YW5kIHRo
aXMgcGFydCBvZiB0aGUgY29tbWVudCB3aXRoIHJlZ2FyZHMgdG8NCj4+IHBvcHVsYXRlX2Jvb3Rf
YWxsb2NhdG9yKCkuIENvdWxkIHlvdSBwbGVhc2UgZXhwbGFpbj8NCg0KTWF5YmUgaGVyZSB3ZSBz
aG91bGQganVzdCB3cml0ZSB0aGF0IG9uIE1QVSBzeXN0ZW0gd2UgYXJlIHBvcHVsYXRpbmcgdGhl
IGJvb3QgYWxsb2NhdG9yIHdpdGggdGhlDQpzdGF0aWMgaGVhcCByZWdpb24sIHNpbmNlIHN0YXRp
YyBoZWFwIGlzIG1hbmRhdG9yeSBmb3IgTVBVLg0KDQpXaGF0IGRvIHlvdSB0aGluaz8NCg0KZS5n
Lg0KDQovKg0KICogT24gTU1VIHN5c3RlbeKApg0KICogW+KApl0NCiAqIA0KICogT24gTVBVIHN5
c3RlbSB3ZSBuZWVkIHRvIHBvcHVsYXRlIHRoZSBib290IGFsbG9jYXRvciB3aXRoIHRoZSBzdGF0
aWMgaGVhcCByZWdpb24sIG9uIHN1Y2ggc3lzdGVtcw0KICogdGhlIHN0YXRpYyBoZWFwIGZlYXR1
cmUgaXMgbWFuZGF0b3J5Lg0KICoNCg0KQ2hlZXJzLA0KTHVjYQ==


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 16:22:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 16:22:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160304.1488500 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJDcM-0000tI-CV; Wed, 12 Nov 2025 16:22:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160304.1488500; Wed, 12 Nov 2025 16:22:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJDcM-0000t9-9h; Wed, 12 Nov 2025 16:22:46 +0000
Received: by outflank-mailman (input) for mailman id 1160304;
 Wed, 12 Nov 2025 16:22: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=Vb/2=5U=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vJDcK-0000RX-3i
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 16:22:44 +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 ce90ee0a-bfe3-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 17:22:41 +0100 (CET)
Received: from BN9PR03CA0208.namprd03.prod.outlook.com (2603:10b6:408:f9::33)
 by DM4PR12MB5962.namprd12.prod.outlook.com (2603:10b6:8:69::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.15; Wed, 12 Nov 2025 16:22:36 +0000
Received: from BN3PEPF0000B06C.namprd21.prod.outlook.com
 (2603:10b6:408:f9:cafe::32) by BN9PR03CA0208.outlook.office365.com
 (2603:10b6:408:f9::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.16 via Frontend Transport; Wed,
 12 Nov 2025 16:22:36 +0000
Received: from satlexmb07.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.9343.0 via Frontend Transport; Wed, 12 Nov 2025 16:22:36 +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; Wed, 12 Nov
 2025 08:22:32 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ce90ee0a-bfe3-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QmPN4YBt7yNXE+jjPnx8iDtyXkGr47xIjDbH0mFNUXyOM8aBfhb8FY9ifrmIRvCwYaEKkL/q1dVVRQ79orkeVRwYWwcwc/CBLM+1Udv2pIFQNhTMSvbpcRh/cOWj4j9Zw3aKbMamRpKIelm4dqaq06Cq65wHuG58nIkunIMSOFzUhLLhob0mcKbeJ+a09Q7uFx7nUL1ZbovQe+wqN/CEky2+VeIRPjRGeVLbdxGrXDLS37zTJ/4jnOpnC1FqkbgZXSLfR6EGofxz8Izd9L4NJ4o/geK27JOyarq99F5Pk3LJ4ValE3KHmke5LrcjUWrc4wTjifArG1dTpmWQLSmVQw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/b7AVkE9aycwDP7HcBPMZRjIqnxoGF/E1DlqBnoWYQ4=;
 b=SF9pFSQEXQh46VN68Q6gxoFsQ7uATQmd0lt4fN4Kiuv+FihLl5IR51GpRQC3RR06jvCRR272JHofDhA8B48IDG0G5QiaG3diYNWiWOUk+QuvDAu3i0pa28gOU0iCc+rorjJIthbFgnHWjBkd2sQ1IL7+k2452mI8MRQ+BMHy2NyrzfAsqXaIPkzBMQZ0Htf09ecByxsk11gLJxq9AfLoRPqrvu7UfCWeuY0zmBu29lnTSjezdu/24+Bs2WuuXW5bOO23HsLdz5gMrZuEDDYHpMnNPbYRW8NUHYv1qzyPzob9/g2Fbk4SZ5K1uYAibhgMsDt3drtidFNTVO7o7Hszvw==
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=/b7AVkE9aycwDP7HcBPMZRjIqnxoGF/E1DlqBnoWYQ4=;
 b=q4ZRAaevOJrZa/RV+Lkyb/2NAimh2SLOodzYPM+RuKMwnHL98CL1iH/TWNshz+rST9Ybq/2lnu68q1y+GGBvtvL9EZbYGyvw4YY1P9Psj0EKNwPkKltxw8u3QNhneJNdDVj7lVD/r6Z26tNjLyuzu2E3dX065do0A6m9bQyKioI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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/4] x86: Split out AMD-specific code to be executed without ucode loading
Date: Wed, 12 Nov 2025 17:22:14 +0100
Message-ID: <20251112162219.226075-2-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251112162219.226075-1-alejandro.garciavallejo@amd.com>
References: <20251112162219.226075-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: BN3PEPF0000B06C:EE_|DM4PR12MB5962:EE_
X-MS-Office365-Filtering-Correlation-Id: 5ea56d63-f4ad-4e6c-b1c0-08de2207b124
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?MVqrmT2tOvya6kaqebB49aOvRMegOL8MRwy7AWSN7gQqEVQ8VrdKGjjLJ9ok?=
 =?us-ascii?Q?+iGfGaptzt2cW+Xb+UuCoyllSRI1ZcFuohTa9+pNuWQyt+I3yFuJE5XkAzb9?=
 =?us-ascii?Q?4ZHIkAbFyDkC3ILl9ysehQC7WNs/VUl6DhbG16PdTwUlyxldTiZ7k+kP+XHX?=
 =?us-ascii?Q?4VnjKbEq/CIEPdi7FfG1cDMU43tbxQKNQg9kHbZ6h5Rxs1UCPnNaVQ2VaF7D?=
 =?us-ascii?Q?QxO/1+lltfe48KrD/yqKnI1hgel1Hk57YYQbDeYu6MTC5e7LbnQAZId0HCu9?=
 =?us-ascii?Q?ZsqpbQml4fDH2Wuspze3TfvD4clyeRCtQIYSh3dUsUIMXPIAJXk8GmixmcB8?=
 =?us-ascii?Q?mX2ZkFW10WXNn3rTIAJSHhmzPSzIjk8rXpaeZtSRbB4HM0To66oEvJcYqL+k?=
 =?us-ascii?Q?DyN78HLMlZyV6VgpFG4tpIU2EKDno4sgoP6u+cuWkXB1UUl0KF43w8OR7PfQ?=
 =?us-ascii?Q?CM4gYdj45oUhpVl1lWiR4pJj3p0tiv8ePUrK4RIq/CAc3m5FKElBapSSlIYs?=
 =?us-ascii?Q?DBPmdapaGE/frgwETaFGSYDjw8/R3AoWAoHczlEfB30PdV+Ahm1osVoaQIuY?=
 =?us-ascii?Q?59BtAqfp2LopTT80Loe6Dcj2NKl0X8Zak21QlSpGF4sZn+445cvvMd3sBK31?=
 =?us-ascii?Q?mONMuqT2f4QOiuWbKBfS9gHCyiElY2UJZ1/PktLjyLin76eP0OK67dZ4VlF+?=
 =?us-ascii?Q?x8iF4vkdvxp3EANMP/iqIOU3FM1jAJs7rCt2h2dwsTA6Ooc2vRjQx5ttAkYR?=
 =?us-ascii?Q?UscBpLa1eqwF32sWmIzLuuVQMncjqpJcEMVm5nChsKz+gsgTiUleQJStwXHv?=
 =?us-ascii?Q?Bc3XBt6ss12tqrzPYik4GG9PgftE7UPLynTuMIQJ3GXvxo6iO7OvYkvqwRjc?=
 =?us-ascii?Q?Zj+dwhKnMi6ibR8zKpaZV97CxFwlrhD6tM5o/xXD44KdfYE+5s/jeMKIpwfr?=
 =?us-ascii?Q?inuZAQ5vYVfWnEAplXZ8WdvkAV/LzPGUaw2aeJnfvQbXa44iSosPW1zZWyFk?=
 =?us-ascii?Q?F77AWKUlqImr5OZFe9n5gqkkm+r8J7QrIY42jWJwJuUh32P7W6Rre6jLCL+9?=
 =?us-ascii?Q?n5yUzHkqIG5Uars18rtjxM3jrDE4bLDOFdjMiftWoriQpdr1KXDwsVotflw2?=
 =?us-ascii?Q?mLrZwBK+U7fTrTZkr3isK10o6xQG5ADwXm6LXZGf+V0Mz8M3aHsbp7XbcaAb?=
 =?us-ascii?Q?Hbb4kGVRnKZZu9Id/CY9YswmicQij2PA9Vn2U0jzROgMHninOPhBGIwx7Gfc?=
 =?us-ascii?Q?SWNySyCjUDCocc3Gn3l/dygSf7Pc++4sDrGuCzZUatYmfLT/rLWJsGXfA5NI?=
 =?us-ascii?Q?hnenVx2I2SpgVX52dEx6Pf6cy+Ex9LgdD/0dJSDukE67jjIB1OxMNAI5JfgK?=
 =?us-ascii?Q?dRbIjrQXlGFfQA7kaBsr+b/wD2B12PAwRW1qpsjGoE6c0l+3pPug9K+ed82z?=
 =?us-ascii?Q?ofaLaWuwf2XPrW4kbNPnsqXVyxAxxq15XBunSicKcfOJSgTHteAAKw9WpV8M?=
 =?us-ascii?Q?IGHeIJ/nMyIknli5dfx95rcbAJm9USZAvSOnfTepmaL2103q/IiYt9KDBGDn?=
 =?us-ascii?Q?BRNAjZ1MSde+gWhciAs=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 16:22:36.4844
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5ea56d63-f4ad-4e6c-b1c0-08de2207b124
X-MS-Exchange-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:
	BN3PEPF0000B06C.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5962

Some code must be executed even with microcode loading disabled to find
out the current microcode revision. This is important to determine active
erratas and such.

With the intent of stripping microcode loading via Kconfig, move such
essential AMD-specific code to an amd-base.c file.

Not a functional change.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/cpu/microcode/Makefile   |  1 +
 xen/arch/x86/cpu/microcode/amd-base.c | 50 ++++++++++++++++++++++++
 xen/arch/x86/cpu/microcode/amd.c      | 55 +++------------------------
 xen/arch/x86/cpu/microcode/amd.h      | 15 ++++++++
 4 files changed, 72 insertions(+), 49 deletions(-)
 create mode 100644 xen/arch/x86/cpu/microcode/amd-base.c
 create mode 100644 xen/arch/x86/cpu/microcode/amd.h

diff --git a/xen/arch/x86/cpu/microcode/Makefile b/xen/arch/x86/cpu/microcode/Makefile
index 30d600544f..00aa0f24e4 100644
--- a/xen/arch/x86/cpu/microcode/Makefile
+++ b/xen/arch/x86/cpu/microcode/Makefile
@@ -1,3 +1,4 @@
 obj-$(CONFIG_AMD) += amd.o
+obj-$(CONFIG_AMD) += amd-base.o
 obj-y += core.o
 obj-$(CONFIG_INTEL) += intel.o
diff --git a/xen/arch/x86/cpu/microcode/amd-base.c b/xen/arch/x86/cpu/microcode/amd-base.c
new file mode 100644
index 0000000000..f8f5fac1e1
--- /dev/null
+++ b/xen/arch/x86/cpu/microcode/amd-base.c
@@ -0,0 +1,50 @@
+#include <xen/init.h>
+
+#include <asm/msr.h>
+#include <asm/processor.h>
+#include <asm/x86-vendors.h>
+
+#include "amd.h"
+
+#define pr_debug(x...) ((void)0)
+
+static void cf_check collect_cpu_info(void)
+{
+    struct cpu_signature *csig = &this_cpu(cpu_sig);
+
+    memset(csig, 0, sizeof(*csig));
+
+    csig->sig = cpuid_eax(1);
+    rdmsrl(MSR_AMD_PATCHLEVEL, csig->rev);
+
+    pr_debug("microcode: CPU%d collect_cpu_info: patch_id=%#x\n",
+             smp_processor_id(), csig->rev);
+}
+
+static const struct microcode_ops __initconst_cf_clobber amd_ucode_ops = {
+    .cpu_request_microcode            = amd_cpu_request_microcode,
+    .collect_cpu_info                 = collect_cpu_info,
+    .apply_microcode                  = amd_apply_microcode,
+    .compare                          = amd_compare,
+    .cpio_path                        = amd_cpio_path,
+};
+
+void __init ucode_probe_amd(struct microcode_ops *ops)
+{
+    /*
+     * The Entrysign vulnerability (SB-7033, CVE-2024-36347) affects Zen1-5
+     * CPUs.  Taint Xen if digest checking is turned off.
+     */
+    if ( boot_cpu_data.family >= 0x17 && boot_cpu_data.family <= 0x1a &&
+         !opt_digest_check )
+    {
+        printk(XENLOG_WARNING
+               "Microcode patch additional digest checks disabled\n");
+        add_taint(TAINT_CPU_OUT_OF_SPEC);
+    }
+
+    if ( boot_cpu_data.family < 0x10 )
+        return;
+
+    *ops = amd_ucode_ops;
+}
diff --git a/xen/arch/x86/cpu/microcode/amd.c b/xen/arch/x86/cpu/microcode/amd.c
index 550b8c1e57..c6d61fd38c 100644
--- a/xen/arch/x86/cpu/microcode/amd.c
+++ b/xen/arch/x86/cpu/microcode/amd.c
@@ -22,9 +22,7 @@
 
 #include <asm/msr.h>
 
-#include "private.h"
-
-#define pr_debug(x...) ((void)0)
+#include "amd.h"
 
 struct equiv_cpu_entry {
     uint32_t installed_cpu;
@@ -153,19 +151,6 @@ static bool check_digest(const struct container_microcode *mc)
     return true;
 }
 
-static void cf_check collect_cpu_info(void)
-{
-    struct cpu_signature *csig = &this_cpu(cpu_sig);
-
-    memset(csig, 0, sizeof(*csig));
-
-    csig->sig = cpuid_eax(1);
-    rdmsrl(MSR_AMD_PATCHLEVEL, csig->rev);
-
-    pr_debug("microcode: CPU%d collect_cpu_info: patch_id=%#x\n",
-             smp_processor_id(), csig->rev);
-}
-
 static bool verify_patch_size(uint32_t patch_size)
 {
     uint32_t max_size;
@@ -264,7 +249,7 @@ static bool microcode_fits_cpu(const struct microcode_patch *patch)
     return equiv.id == patch->processor_rev_id;
 }
 
-static int cf_check amd_compare(
+int cf_check amd_compare(
     const struct microcode_patch *old, const struct microcode_patch *new)
 {
     /* Both patches to compare are supposed to be applicable to local CPU. */
@@ -310,8 +295,8 @@ static bool check_min_rev(const struct microcode_patch *patch)
     return this_cpu(cpu_sig).rev >= patch->min_rev;
 }
 
-static int cf_check apply_microcode(const struct microcode_patch *patch,
-                                    unsigned int flags)
+int cf_check amd_apply_microcode(const struct microcode_patch *patch,
+                                 unsigned int flags)
 {
     int hw_err, result;
     unsigned int cpu = smp_processor_id();
@@ -424,7 +409,7 @@ static int scan_equiv_cpu_table(const struct container_equiv_table *et)
     return -ESRCH;
 }
 
-static struct microcode_patch *cf_check cpu_request_microcode(
+struct microcode_patch *cf_check amd_cpu_request_microcode(
     const void *buf, size_t size, bool make_copy)
 {
     const struct microcode_patch *saved = NULL;
@@ -559,37 +544,9 @@ static struct microcode_patch *cf_check cpu_request_microcode(
     return patch;
 }
 
-static const char __initconst amd_cpio_path[] =
+const char __initconst amd_cpio_path[] =
     "kernel/x86/microcode/AuthenticAMD.bin";
 
-static const struct microcode_ops __initconst_cf_clobber amd_ucode_ops = {
-    .cpu_request_microcode            = cpu_request_microcode,
-    .collect_cpu_info                 = collect_cpu_info,
-    .apply_microcode                  = apply_microcode,
-    .compare                          = amd_compare,
-    .cpio_path                        = amd_cpio_path,
-};
-
-void __init ucode_probe_amd(struct microcode_ops *ops)
-{
-    /*
-     * The Entrysign vulnerability (SB-7033, CVE-2024-36347) affects Zen1-5
-     * CPUs.  Taint Xen if digest checking is turned off.
-     */
-    if ( boot_cpu_data.family >= 0x17 && boot_cpu_data.family <= 0x1a &&
-         !opt_digest_check )
-    {
-        printk(XENLOG_WARNING
-               "Microcode patch additional digest checks disabled\n");
-        add_taint(TAINT_CPU_OUT_OF_SPEC);
-    }
-
-    if ( boot_cpu_data.family < 0x10 )
-        return;
-
-    *ops = amd_ucode_ops;
-}
-
 #if 0 /* Manual CONFIG_SELF_TESTS */
 static void __init __constructor test_digests_sorted(void)
 {
diff --git a/xen/arch/x86/cpu/microcode/amd.h b/xen/arch/x86/cpu/microcode/amd.h
new file mode 100644
index 0000000000..1df1b61adb
--- /dev/null
+++ b/xen/arch/x86/cpu/microcode/amd.h
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef ASM_X86_MICROCODE_AMD_H
+#define ASM_X86_MICROCODE_AMD_H
+
+#include "private.h"
+
+int cf_check amd_compare(const struct microcode_patch *old,
+                         const struct microcode_patch *new);
+int cf_check amd_apply_microcode(const struct microcode_patch *patch,
+                                 unsigned int flags);
+struct microcode_patch *cf_check amd_cpu_request_microcode(
+    const void *buf, size_t size, bool make_copy);
+extern const char amd_cpio_path[];
+
+#endif /* ASM_X86_MICROCODE_AMD_H */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 16:22:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 16:22:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160303.1488490 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJDcL-0000fN-6o; Wed, 12 Nov 2025 16:22:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160303.1488490; Wed, 12 Nov 2025 16: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 1vJDcL-0000fG-3M; Wed, 12 Nov 2025 16:22:45 +0000
Received: by outflank-mailman (input) for mailman id 1160303;
 Wed, 12 Nov 2025 16:22: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=Vb/2=5U=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vJDcJ-0000RL-Hy
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 16:22:43 +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 cf9992f6-bfe3-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 17:22:42 +0100 (CET)
Received: from BN9PR03CA0204.namprd03.prod.outlook.com (2603:10b6:408:f9::29)
 by SJ0PR12MB6758.namprd12.prod.outlook.com (2603:10b6:a03:44a::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Wed, 12 Nov
 2025 16:22:35 +0000
Received: from BN3PEPF0000B06C.namprd21.prod.outlook.com
 (2603:10b6:408:f9:cafe::55) by BN9PR03CA0204.outlook.office365.com
 (2603:10b6:408:f9::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.17 via Frontend Transport; Wed,
 12 Nov 2025 16:22:35 +0000
Received: from satlexmb07.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.9343.0 via Frontend Transport; Wed, 12 Nov 2025 16:22:34 +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; Wed, 12 Nov
 2025 08:22:31 -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: cf9992f6-bfe3-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dWoddzX0nL/RtPDkX4fGkha15irCHr8QiqGhyb9X9InBHYZktYCybDYm+W3D3RxOZIAFZlbs5F58XM/tu/56tdxFW6FpLBJPTeIH57Mp0TtqoyFc8ZP0dUQ6TlSulq6uUrQblJazJ4zfAa1pdsEnQkiK3Mr29VMGpMwrwuGknbd9H8IJrDJ1Wvp7dgtyjrHeU4OUXeeOyamRShuZ4yTZx6MdV3AmfEbp3uRJ0dQpQ2fL2h8kZDo2SgHWCnrJchQC1/iiL5URleS6wKHSYMip5U3jUds0QXQO/p6eAZ2N5q/ze7MJlD9rf5lA3dAemE1xNVBqS7uhfMURM7jCY+Sggg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4Loe3auNsQGtsQe4VcnZlToVD2AT8r0kPmm2eVxOlhk=;
 b=clog8pkVJjIrb7UJ8xkvSeSNSIRyWTmcSYCyTue3Tkyq0Q2PDxoE49LkVePELQ0t28ThUauzL34do1hg10HMR0qFdTLZ+2iJZwbXAD5QC5+qp4Hg4Pkawc29eV/03LVH9El6oL/z6GWwuCwVoCddqHqcJemkibyc4VAR69H7y9Jw7NL5yhio1Ga2TBbfUZPSiAFTScqgfpInd+YWydEvwGcS8Wzeon3SwgljbHWcmAcr0avARg10fjUyeleVlZoBzIyLbBrulFFv7eXMzKbXtjCvpcX2GrBRwfSdEfV+co+wnwCDHMK8MykvD0IgegB3Ip2G3SaoJOAKB/O9buIeTg==
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=4Loe3auNsQGtsQe4VcnZlToVD2AT8r0kPmm2eVxOlhk=;
 b=a0vNrh8NWuvYtXmINn4rAQcLu66ezWLCrE5CubS/8FQPq9BtKox+AkjNtK1uVvkpgw0zheGjldXWss+T0yeG5hrf6VTikfDzlPGqUSD3/Jk/rNVBkDLa6QE7tRUJ4Ofd2TpVVTsu9UlBsXz5fGzo0l/6tT49+zcOo6xonWb1LHs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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>, "Daniel P.
 Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>
Subject: [PATCH 0/4] Add Kconfig option to remove microcode loading support
Date: Wed, 12 Nov 2025 17:22:13 +0100
Message-ID: <20251112162219.226075-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: BN3PEPF0000B06C:EE_|SJ0PR12MB6758:EE_
X-MS-Office365-Filtering-Correlation-Id: f5a9dfec-2edd-4c67-522d-08de2207b03c
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?/QuRt4Rfc6IdGMyiJT3RZsHSpI7yzNj5UlZlw2bH1XOsOMU2fMRycHEjL3tJ?=
 =?us-ascii?Q?mPQY0otZr4pKNcsSNnJw1JN7GAoQG2CSG9tcXqW79LjVin1lvQqo8ircSXnL?=
 =?us-ascii?Q?0vNeK8HzOuL401CC56Pa5kAtpanMieg379kprk2e/qu+t3AC91zCe29OfhB0?=
 =?us-ascii?Q?dwyhvDex8S57uKwzGJE5vD/JOMlen9hq4FOGAP6rd3xOfjRG1/EZBptP1Gz9?=
 =?us-ascii?Q?8IndUCtIh/nXrkrSPq8vOK4B7QlLhQENv7H+/1DnVeH6XhP9rf5XHX0GnVLh?=
 =?us-ascii?Q?jmdcXHj6yfilqkX8+wKDBTUB9a5lYCdLg1g3yULcAwdRp9k80lEPB75MWwsg?=
 =?us-ascii?Q?k573MipzC3Cut0Qn//+XGMSy2LIpQm1AdUPQPJ1ZsyDuf2P2lI5k4vtgNlgy?=
 =?us-ascii?Q?w4vDpWm5aWiPuLXuYUy+zjYwDsAOjkabCApQRwNGq5OA3C44vf7GMX3NLT8j?=
 =?us-ascii?Q?Sc7UeGX6rpkbT0NL4p4WVB4149ZZCMRFoP36w12ka1+2Vz4+DO/um14WvXSR?=
 =?us-ascii?Q?5xJid2n2r6hKIK+rOe6ygqLU0MyxnIPn5IXitNMN8gyid1zQ+9JXbVmbHI84?=
 =?us-ascii?Q?217yb3ZksZQ8EpZFmcr5zUyJ7A9MGjOcLo3j0PzX3uxDwaJuvxzdphoT334r?=
 =?us-ascii?Q?ILoBjxKGxUaOthL4iWkT7coBWhvGm8yTAgARnfYOM86lri9jzblBtBZ7qmBD?=
 =?us-ascii?Q?SxRMYimhIJwH0y7HI1aXK3PdoWbA13wZ1mPFEvxIWvHXyGHY0o/7hHEcp34H?=
 =?us-ascii?Q?t8E45HdNHvFFNFbaFFYxgzdvleKssJbffHbXXxV4BeVTLnlpDP53gWqG6uY/?=
 =?us-ascii?Q?GUGgeebFBOfhTyk5zuEZYwQEJRIOa4Bw5sCj0k/eFmpCZ0hAR/hgvdqjGlCY?=
 =?us-ascii?Q?vkSQTvGDMd/bcpuIak7s7svCf2huwLusAmC04bURijGYyDTygD3qyCAGSwBf?=
 =?us-ascii?Q?uYsVpmbPIcHNtuXaNwVEB2rI9dEHNqmUZLYOvDfKc1T/pWrZ1MUcbYZ261LC?=
 =?us-ascii?Q?UAygwgC3xZRc7MBeZB39A5Wh20NXDw9n7pYr+DIeHFGIiAsMVezhFl/bdLef?=
 =?us-ascii?Q?b2ygTnHCumnCOK06HWAZ9WqfXj+LA6XCMVvmIOnHavh4p65K0BPwLrhJSK9m?=
 =?us-ascii?Q?3c1OpSNPizEvNmcoMB+wMUKa+oyo2Z7TW/g1Qwb56wpPrpvB7Tz4N8w8Nl4y?=
 =?us-ascii?Q?cxvgJhBg/J4xo70kTMFtq1fiMnw4EO7eIj4sYHP1FbdNWIJ4y689kDTG2TXb?=
 =?us-ascii?Q?0JmBTuabeEgtPTBsgpblDBrEeX96rVcpof0H6iTM4XwYyhJK0nfL0j93RHBQ?=
 =?us-ascii?Q?RoayRsp0z++GawGOjTPBr6+rJJriU4CN+6Ysu69FYnKWWupP7yXuMu509gxd?=
 =?us-ascii?Q?3fhVdqIab9Fu2NQo9FYPOyyaHcC0XtcSZC2vQILtRU8oyy1MI5FH1oJpUNJo?=
 =?us-ascii?Q?w+9hxYkH64bvOS+NMLau70E0pzmrUgpsNx+3Er/TVavDDUeOEb2f1j4OlwAM?=
 =?us-ascii?Q?4pdg12lt2JC+AkUYS7mQEMh+6Ol1fbeSWVorZNdLlOb+XMyePVMeDiLNCoNa?=
 =?us-ascii?Q?U/wuSxwmtrHe9GBK+m0=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 16:22:34.9607
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f5a9dfec-2edd-4c67-522d-08de2207b03c
X-MS-Exchange-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:
	BN3PEPF0000B06C.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6758

Hi,

The series is mostly a refactor between everything needed to load microcode and
the bare minimum to probe the current microcode revision.

The Kconfig option keeps the reading of microcode rev data around, as it's very
relevant for security and debuggability in order to deduce which erratas apply
to the current platform.

The idea is to move everything that must still be compiled with !CONFIG_UCODE
onto {,amd-,intel-}base.c, then remove everything else conditionally at the
Makefile level.

Renaming files (e.g: s/base/core/ and s/core/common/) would better reflect
post-series reality, but it'd be annoying for later backports in this general
area.

Cheers,
Alejandro

Alejandro Vallejo (4):
  x86: Split out AMD-specific code to be executed without ucode loading
  x86: Split out Intel-specific code to be executed without ucode
    loading
  x86: Split out early_microcode_load() and microcode_load_one()
  x86: Add Kconfig option to disable microcode loading

 xen/arch/x86/Kconfig                    | 12 ++++
 xen/arch/x86/cpu/microcode/Makefile     |  9 ++-
 xen/arch/x86/cpu/microcode/amd-base.c   | 55 +++++++++++++++++++
 xen/arch/x86/cpu/microcode/amd.c        | 55 ++-----------------
 xen/arch/x86/cpu/microcode/amd.h        | 15 +++++
 xen/arch/x86/cpu/microcode/base.c       | 73 +++++++++++++++++++++++++
 xen/arch/x86/cpu/microcode/core.c       | 58 +-------------------
 xen/arch/x86/cpu/microcode/intel-base.c | 50 +++++++++++++++++
 xen/arch/x86/cpu/microcode/intel.c      | 56 +++----------------
 xen/arch/x86/cpu/microcode/intel.h      | 16 ++++++
 xen/arch/x86/cpu/microcode/private.h    | 14 +++++
 xen/arch/x86/efi/efi-boot.h             |  2 +-
 xen/arch/x86/platform_hypercall.c       |  2 +
 13 files changed, 259 insertions(+), 158 deletions(-)
 create mode 100644 xen/arch/x86/cpu/microcode/amd-base.c
 create mode 100644 xen/arch/x86/cpu/microcode/amd.h
 create mode 100644 xen/arch/x86/cpu/microcode/base.c
 create mode 100644 xen/arch/x86/cpu/microcode/intel-base.c
 create mode 100644 xen/arch/x86/cpu/microcode/intel.h


base-commit: e00c1673992e07ed31e9c60fefa8d053491abbe6
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 16:22:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 16:22:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160302.1488480 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJDcJ-0000Re-SB; Wed, 12 Nov 2025 16:22:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160302.1488480; Wed, 12 Nov 2025 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 1vJDcJ-0000RW-Pa; Wed, 12 Nov 2025 16:22:43 +0000
Received: by outflank-mailman (input) for mailman id 1160302;
 Wed, 12 Nov 2025 16:22: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=Vb/2=5U=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vJDcI-0000RL-SO
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 16:22:42 +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 cf0375b7-bfe3-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 17:22:41 +0100 (CET)
Received: from BN9PR03CA0199.namprd03.prod.outlook.com (2603:10b6:408:f9::24)
 by BY5PR12MB4162.namprd12.prod.outlook.com (2603:10b6:a03:201::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Wed, 12 Nov
 2025 16:22:37 +0000
Received: from BN3PEPF0000B06C.namprd21.prod.outlook.com
 (2603:10b6:408:f9:cafe::3) by BN9PR03CA0199.outlook.office365.com
 (2603:10b6:408:f9::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.16 via Frontend Transport; Wed,
 12 Nov 2025 16:22:37 +0000
Received: from satlexmb07.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.9343.0 via Frontend Transport; Wed, 12 Nov 2025 16:22:36 +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; Wed, 12 Nov
 2025 08:22:34 -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: cf0375b7-bfe3-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=c4FyQ4PDxvp7+M1JKdbnFTNc7S2F/LfTCG+F9d0xa+TtdMUrHmTJQpSDaUIGjutqnbn6yKGs7Q9xEfku6KgOBGEk+p/93NIf4/MwN5uS22Mdp/vePCDvRgXt/2to1+2yBzNpclVBpopu3TWaWJkE5Tr+7LnaUYy5VvE4nHkj9EllgfbtzGQ5fmb4rxSa4Y0PigbClkH1TzkhwTr8EqBYX4xfhfQJvhQ5VTqnpFMnIivRBJXS0DFnl5cYgeX3Znrd9kesDahZ7/iR3A1Em8/IqF8+wpQyt27cnnUf9psEhwwoKma4y5r0glLEaZ0Uq7VW+3ExrmF0ll8WKWpApssgtA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7AD+PhPKcjdOH7op5TswjHIaXy9fjfsf0PKlh/uahcQ=;
 b=BG5Vjdca5jsHhyX6l4Tj+SqQV/BA9cSpgf7n3/4q1Ju7o9jWgn9oB63EnIots0aqhmXdo5g/MPcYOtqkxuNbd1R2MnVk6B4LjpH6YNeTAWmivtTzClARiDM/lc5du+elto12CoXtC6QIwnUi5eNHgExxs+NthgvRWgCKYRQTIh4DO3jZeBzTn9PEvmlKvKweetGXseXzJq3zauaUPCGPG7GRzWR2xic/sPsrBuFKytgUkOFjEcTUvNSgG3/RZB7l00fJScQMlFUyh1FloIbKfDmv41nSY5kb/RtWRVwHP3BsPCjppno2MtQXStCeeq8f0UnZzUeXfps1iblT6w8uXw==
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=7AD+PhPKcjdOH7op5TswjHIaXy9fjfsf0PKlh/uahcQ=;
 b=XpnKf11RuKZw31zP7mbz6QBuuPs+kpA9/ykli+/ziXlpMCcGHCJ4fPgRIPkwSaeSbO7o6GVQ7T7rUgcw56QDYULsoI1zfyBppuDsCgzwNMZ4E9RQJQighkE753FxYLGzgnFBjxTV24O/qIwuFcmcbNtxBDE4V94du21vZlUSMKE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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 2/4] x86: Split out Intel-specific code to be executed without ucode loading
Date: Wed, 12 Nov 2025 17:22:15 +0100
Message-ID: <20251112162219.226075-3-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251112162219.226075-1-alejandro.garciavallejo@amd.com>
References: <20251112162219.226075-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: BN3PEPF0000B06C:EE_|BY5PR12MB4162:EE_
X-MS-Office365-Filtering-Correlation-Id: 31423ed2-b646-4625-2b61-08de2207b172
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?o9GDH+QqjCfz11Z9JDl2ci0equP4etU0vBP3xfb2vYjb7DRwIiobx1TuWS71?=
 =?us-ascii?Q?qGyOC0xrSu+CXkEXrp7j9uKbeLKTkjunjk7l7DMx0ahpAGtvwXYisdmCDBPf?=
 =?us-ascii?Q?Pkq/CNdbx6lR5DKv3bxDuTeL22raIi+R4gu1gsh3NnEx3f7qcKTERjMKRYWn?=
 =?us-ascii?Q?xh4guEStyOCGq+aGeZLeK/cS7D5dpWAUzyK2/awhU6sJkjCizXRXph0z9ud1?=
 =?us-ascii?Q?UMypaelPppCiUkjyKlNQb2gvO8Pye1Rt1wNvUUEay0WwS5c2hJm1Glq7vekX?=
 =?us-ascii?Q?Cws9Tys7IdLIyxwwYpWrKhzfjQDWFPCdlk4zNcnXh/oB8lNKALLzMu6GltRD?=
 =?us-ascii?Q?F6UAMg6U3ujy0fWtA3TbpLFsyU83shlrd9A6IrEEnYx/n7A+AV+kE722V+x4?=
 =?us-ascii?Q?YW4iMwFV3B0hV2W8PcgNXV/8UyiFJB7KOSTji4q/m8ObLL7Fl1oFb10x+ynx?=
 =?us-ascii?Q?m8wvM6y9xrx1E6LOs64cIdYvwXb0I2g+CNp2qnEPI/GW/yVszGyVSRFVdxIC?=
 =?us-ascii?Q?5TTh/wBs+W2oAWFmjm3uvQKmsfsT2zgfgcy27z6o3OyXXAun/mk3d3rlQo4w?=
 =?us-ascii?Q?4aHD3XAxjwFab45E7Jotzc1mHLjNgDAQYk6n/PK5ppayO6FVM85YV/D4bIuC?=
 =?us-ascii?Q?HeR72riVwshHJ5YbC7n/WnBNYSup/DaukkO8+3BWa1ScL29gDIDAE3DjCWYU?=
 =?us-ascii?Q?YtRMrBjCtC6/V9QLOtTF7ISIshT9XpsRn2XNFkt5LLFpN8or8WutKKjFMkdX?=
 =?us-ascii?Q?qEY4FiTVAkUi6gkOHfpPY2QuLdbWbl68ZyL7UuQ347TwbZ/ROoxvvg04HF5b?=
 =?us-ascii?Q?J+jzW1azIM3inKN0/veVLZRCZXWzSdk6stp6fTNQXlwYXjxKfj81MH+P35OO?=
 =?us-ascii?Q?IbdGKYzmDQOa/7kVuLUXfhg7IWxXeMhHYd8gBEiX6sZCX4drTlk0HIYmUu2R?=
 =?us-ascii?Q?N71bR8Y5gijVafgsZ8XDCJ292RmL2qlWGviLVX9zsoCcIEkQAH1N5/OGghk4?=
 =?us-ascii?Q?oFvsXGMU4OPCi0IeyfERfHSEXKiVe5gctSIqp5VUcGIGqyYbk/FbkajrlVx4?=
 =?us-ascii?Q?LjtaWEAVER8qpWhS8tPU8WTxfUfjwbFSdVUgn5ktzdhyyJ/IXRIfAh2PLDHR?=
 =?us-ascii?Q?uVrVNkEbHRAobmA70eMxKEfJxrLw+FrK3gKv+9F5UMT8QqUOHl6lPMTEx5PU?=
 =?us-ascii?Q?rE5OQ9rxXyZy1DA52ktMNcgZSNRxaKHaj0l0VNfmvHVtNlnyHbNJt/2d9ZLw?=
 =?us-ascii?Q?yyfdcnVuLq7cU/hDCdVZCiibHr8IMIZPb/HAYmN2aGNTmMyOfwOLqNBcTg/q?=
 =?us-ascii?Q?dBKHp/gLHGq4Ft5eNP0kYHTAUdYVidnFpN5H9463yIKcsRSGWrPIMOO8u97S?=
 =?us-ascii?Q?CoIKT9lr89igNhdLPamb4RtmQr1hiE8GlehgU7gxMUv7QDx6S+LVLT6/aPUY?=
 =?us-ascii?Q?N4bTLiB81TOrtwaY/xLZwkyfzXx8c8PyHjAjaDT1ycUHsSEXaVXz1+q6Dt75?=
 =?us-ascii?Q?sbHHdBOA+jgWuXnwx0tFAW+WtznscJVHbO3l0FbKKtf9hCQNEPJkOiuoRkVI?=
 =?us-ascii?Q?2pI5HCU1OG7f757fbow=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 16:22:36.9923
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 31423ed2-b646-4625-2b61-08de2207b172
X-MS-Exchange-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:
	BN3PEPF0000B06C.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4162

Some code must be executed even with microcode loading disabled to find
out the current microcode revision. This is important to determine active
erratas and such.

With the intent of stripping microcode loading via Kconfig, move such
essential Intel-specific code to an intel-base.c file.

Not a functional change.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/cpu/microcode/Makefile     |  1 +
 xen/arch/x86/cpu/microcode/intel-base.c | 48 +++++++++++++++++++++
 xen/arch/x86/cpu/microcode/intel.c      | 56 ++++---------------------
 xen/arch/x86/cpu/microcode/intel.h      | 16 +++++++
 4 files changed, 72 insertions(+), 49 deletions(-)
 create mode 100644 xen/arch/x86/cpu/microcode/intel-base.c
 create mode 100644 xen/arch/x86/cpu/microcode/intel.h

diff --git a/xen/arch/x86/cpu/microcode/Makefile b/xen/arch/x86/cpu/microcode/Makefile
index 00aa0f24e4..74289981e3 100644
--- a/xen/arch/x86/cpu/microcode/Makefile
+++ b/xen/arch/x86/cpu/microcode/Makefile
@@ -2,3 +2,4 @@ obj-$(CONFIG_AMD) += amd.o
 obj-$(CONFIG_AMD) += amd-base.o
 obj-y += core.o
 obj-$(CONFIG_INTEL) += intel.o
+obj-$(CONFIG_INTEL) += intel-base.o
diff --git a/xen/arch/x86/cpu/microcode/intel-base.c b/xen/arch/x86/cpu/microcode/intel-base.c
new file mode 100644
index 0000000000..4fcacaa192
--- /dev/null
+++ b/xen/arch/x86/cpu/microcode/intel-base.c
@@ -0,0 +1,48 @@
+#include <xen/init.h>
+
+#include <asm/msr.h>
+#include <asm/processor.h>
+
+#include "intel.h"
+
+#define pr_debug(x...) ((void)0)
+
+static void cf_check collect_cpu_info(void)
+{
+    struct cpu_signature *csig = &this_cpu(cpu_sig);
+    uint64_t msr_content;
+
+    memset(csig, 0, sizeof(*csig));
+
+    rdmsrl(MSR_IA32_PLATFORM_ID, msr_content);
+    csig->pf = 1 << ((msr_content >> 50) & 7);
+
+    /*
+     * Obtaining the microcode version involves writing 0 to the "read only"
+     * UCODE_REV MSR, executing any CPUID instruction, after which a nonzero
+     * revision should appear.
+     */
+    wrmsrl(MSR_IA32_UCODE_REV, 0);
+    csig->sig = cpuid_eax(1);
+    rdmsrl(MSR_IA32_UCODE_REV, msr_content);
+    csig->rev = msr_content >> 32;
+
+    pr_debug("microcode: collect_cpu_info : sig=%#x, pf=%#x, rev=%#x\n",
+             csig->sig, csig->pf, csig->rev);
+}
+
+static const struct microcode_ops __initconst_cf_clobber intel_ucode_ops = {
+    .cpu_request_microcode = intel_cpu_request_microcode,
+    .apply_microcode       = intel_apply_microcode,
+    .collect_cpu_info      = collect_cpu_info,
+    .compare               = intel_compare,
+    .cpio_path             = intel_cpio_path,
+};
+
+void __init ucode_probe_intel(struct microcode_ops *ops)
+{
+    *ops = intel_ucode_ops;
+
+    if ( !intel_can_load_microcode() )
+        ops->apply_microcode = NULL;
+}
diff --git a/xen/arch/x86/cpu/microcode/intel.c b/xen/arch/x86/cpu/microcode/intel.c
index 281993e725..c5e0012a03 100644
--- a/xen/arch/x86/cpu/microcode/intel.c
+++ b/xen/arch/x86/cpu/microcode/intel.c
@@ -31,9 +31,7 @@
 #include <asm/processor.h>
 #include <asm/system.h>
 
-#include "private.h"
-
-#define pr_debug(x...) ((void)0)
+#include "intel.h"
 
 struct microcode_patch {
     uint32_t hdrver;
@@ -120,30 +118,6 @@ static bool signature_matches(const struct cpu_signature *cpu_sig,
     return cpu_sig->pf & ucode_pf;
 }
 
-static void cf_check collect_cpu_info(void)
-{
-    struct cpu_signature *csig = &this_cpu(cpu_sig);
-    uint64_t msr_content;
-
-    memset(csig, 0, sizeof(*csig));
-
-    rdmsrl(MSR_IA32_PLATFORM_ID, msr_content);
-    csig->pf = 1 << ((msr_content >> 50) & 7);
-
-    /*
-     * Obtaining the microcode version involves writing 0 to the "read only"
-     * UCODE_REV MSR, executing any CPUID instruction, after which a nonzero
-     * revision should appear.
-     */
-    wrmsrl(MSR_IA32_UCODE_REV, 0);
-    csig->sig = cpuid_eax(1);
-    rdmsrl(MSR_IA32_UCODE_REV, msr_content);
-    csig->rev = msr_content >> 32;
-
-    pr_debug("microcode: collect_cpu_info : sig=%#x, pf=%#x, rev=%#x\n",
-             csig->sig, csig->pf, csig->rev);
-}
-
 /*
  * Sanity check a blob which is expected to be a microcode patch.  The 48 byte
  * header is of a known format, and together with totalsize are within the
@@ -273,7 +247,7 @@ static bool microcode_fits_cpu(const struct microcode_patch *mc)
     return false;
 }
 
-static int cf_check intel_compare(
+int cf_check intel_compare(
     const struct microcode_patch *old, const struct microcode_patch *new)
 {
     /*
@@ -286,8 +260,8 @@ static int cf_check intel_compare(
     return compare_revisions(old->rev, new->rev);
 }
 
-static int cf_check apply_microcode(const struct microcode_patch *patch,
-                                    unsigned int flags)
+int cf_check intel_apply_microcode(const struct microcode_patch *patch,
+                                   unsigned int flags)
 {
     uint64_t msr_content;
     unsigned int cpu = smp_processor_id();
@@ -333,7 +307,7 @@ static int cf_check apply_microcode(const struct microcode_patch *patch,
     return 0;
 }
 
-static struct microcode_patch *cf_check cpu_request_microcode(
+struct microcode_patch *cf_check intel_cpu_request_microcode(
     const void *buf, size_t size, bool make_copy)
 {
     int error = 0;
@@ -391,7 +365,7 @@ static struct microcode_patch *cf_check cpu_request_microcode(
     return patch;
 }
 
-static bool __init can_load_microcode(void)
+bool __init intel_can_load_microcode(void)
 {
     uint64_t mcu_ctrl;
 
@@ -404,21 +378,5 @@ static bool __init can_load_microcode(void)
     return !(mcu_ctrl & MCU_CONTROL_DIS_MCU_LOAD);
 }
 
-static const char __initconst intel_cpio_path[] =
+const char __initconst intel_cpio_path[] =
     "kernel/x86/microcode/GenuineIntel.bin";
-
-static const struct microcode_ops __initconst_cf_clobber intel_ucode_ops = {
-    .cpu_request_microcode            = cpu_request_microcode,
-    .collect_cpu_info                 = collect_cpu_info,
-    .apply_microcode                  = apply_microcode,
-    .compare                          = intel_compare,
-    .cpio_path                        = intel_cpio_path,
-};
-
-void __init ucode_probe_intel(struct microcode_ops *ops)
-{
-    *ops = intel_ucode_ops;
-
-    if ( !can_load_microcode() )
-        ops->apply_microcode = NULL;
-}
diff --git a/xen/arch/x86/cpu/microcode/intel.h b/xen/arch/x86/cpu/microcode/intel.h
new file mode 100644
index 0000000000..3c1419dc77
--- /dev/null
+++ b/xen/arch/x86/cpu/microcode/intel.h
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef ASM_X86_MICROCODE_INTEL_H
+#define ASM_X86_MICROCODE_INTEL_H
+
+#include "private.h"
+
+bool intel_can_load_microcode(void);
+int cf_check intel_compare(const struct microcode_patch *old,
+                           const struct microcode_patch *new);
+int cf_check intel_apply_microcode(const struct microcode_patch *patch,
+                                   unsigned int flags);
+struct microcode_patch *cf_check intel_cpu_request_microcode(
+    const void *buf, size_t size, bool make_copy);
+extern const char intel_cpio_path[];
+
+#endif /* ASM_X86_MICROCODE_INTEL_H */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 16:22:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 16:22:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160305.1488510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJDcP-0001AS-Lz; Wed, 12 Nov 2025 16:22:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160305.1488510; Wed, 12 Nov 2025 16:22:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJDcP-0001AJ-Ir; Wed, 12 Nov 2025 16:22:49 +0000
Received: by outflank-mailman (input) for mailman id 1160305;
 Wed, 12 Nov 2025 16:22:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Vb/2=5U=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vJDcO-0000RL-Om
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 16:22:48 +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 d1822444-bfe3-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 17:22:47 +0100 (CET)
Received: from BN9PR03CA0206.namprd03.prod.outlook.com (2603:10b6:408:f9::31)
 by DS0PR12MB8220.namprd12.prod.outlook.com (2603:10b6:8:f5::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Wed, 12 Nov
 2025 16:22:38 +0000
Received: from BN3PEPF0000B06C.namprd21.prod.outlook.com
 (2603:10b6:408:f9:cafe::87) by BN9PR03CA0206.outlook.office365.com
 (2603:10b6:408:f9::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9298.16 via Frontend Transport; Wed,
 12 Nov 2025 16:22:38 +0000
Received: from satlexmb07.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.9343.0 via Frontend Transport; Wed, 12 Nov 2025 16:22: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; Wed, 12 Nov
 2025 08:22:36 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d1822444-bfe3-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xxbhyjluirJVoWJZblUTH8OstIYyf3XwNnUCv0I3+FyeNBkBeCgvDHj20AJIW4/Pc2v55LPPET4CyNwxS5yU3Vyk0Qyn3prniB29ZBNaj3bvwjYLSYWn9J36jrCVxdN9D9I+CrIDyz5O6EWzxhm1Qp86UiAzjXYEyhXFggS+rlXVlRBs4nd3+koZBx9gILvoIWa2iRHHVYR+zechQXx+UcVQRkISkTJsoUbXh6uRtL4oBG42+e7nCdaJFr3QATb35OkPMdCZBvebX64MWv5ruNa1fUbpG5hkQR0PCKQ1CTjrEpuz4Jfl7ypDAo8n1rijNtHu4tckonYPlgkLZUs+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=KlUqvqE/VFp5EaRFjnobC2TG4Ik3upgV5GDSchMkSS8=;
 b=SRnlvMNMcYmttRYyh3p3x94E0fGPOATi3ZTfLM7wce4gh0pMdzjU9NsTRvzhlMNxCVTsF20Bql3kg9wTD++KicLOYME+N6zJLz78BWecoWz6/WwP5KWEBvg7zNjTtQNmZtFY8drPcWLrZBFxHJalt4J+LcrxgqoVdc1GwYM04Tlx+0ffCWjEBXP560aCzWtQG+bRzaXd+7fDzRtYc/vTSOt/Esgpj1xqITuiLhRCHMkwi9QS3/GXTuYp2figRNs15eWiHbEHv49jawdvpDAQsW2OhgUeUyu2KSkLXexX+ZaOxkyNOabIvAMEZpqOpXreqqJKuHA6kwArfbZZ0MAwVg==
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=KlUqvqE/VFp5EaRFjnobC2TG4Ik3upgV5GDSchMkSS8=;
 b=1rXKMENccQ2AYTQ9WUmOJdsxWd5jeSlkl8eiaoYUgajNK53vG1qat79aWk94L3XfmtLJQ2kj9zUoKHuuvB4d7IXZYbWvjboBIczxVMqfJdMlhFfqTbZFWEFdrrI6GsrFsTJ+zkE9/NMpGpFn9q/R2icn68TV3G+4P/GaVA7zZ6w=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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>, "Daniel P.
 Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>
Subject: [PATCH 4/4] x86: Add Kconfig option to disable microcode loading
Date: Wed, 12 Nov 2025 17:22:17 +0100
Message-ID: <20251112162219.226075-5-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251112162219.226075-1-alejandro.garciavallejo@amd.com>
References: <20251112162219.226075-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: BN3PEPF0000B06C:EE_|DS0PR12MB8220:EE_
X-MS-Office365-Filtering-Correlation-Id: 6c4ab6e9-3356-4077-6ec3-08de2207b247
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?RZ2G5MwND2ydle6GMkTvpZmrx2APiMnKoJ8L8IorzyHsF5UnQsckqV2Vkjg3?=
 =?us-ascii?Q?47tVp/JiXOCoWnTQsIjEHT8PZ+PaNiKhzvwU7XsY7qNJ36LbUY2+jryBeIPq?=
 =?us-ascii?Q?jqRSzCcRnpRwNfiyYp5z4DJhhlzMpxLRO6KwSSawcQAPi9cy9plMORt1jmyg?=
 =?us-ascii?Q?vYldmTc/40vl3now+e/zTR7a/CEF2cr/c03e9jcM5GBDOeR3sSCv5bYA53Bj?=
 =?us-ascii?Q?2zNoDWYQ9pT1TRV6BjHayT8siA3jnvlTwL2cJXh4sgN9unSxw/rTIS5+PefX?=
 =?us-ascii?Q?GYyTw+bQI1DCwNqtS+1vbMdWaZ6YMhywQOjSTpvc4eT5Y2Ms3MOas+vxMUq9?=
 =?us-ascii?Q?/ZN1mixTVkHbGpHuQvd+TkIgijH5AXuMm5oqIML5caqO4beha+pcDG2lUAu/?=
 =?us-ascii?Q?NFgwA+Qu8tISvIjgWzAV8jna6M8Wt4Dnu76gleGyZrzsgzdw+Hl2FNmYrrGX?=
 =?us-ascii?Q?Eh4Qdg5jMUFw/G2bmv/d3viG1kLvjf5mDsc39w+zKGxhCEAl6VNI8a2t9sZv?=
 =?us-ascii?Q?A4qcydJ5CwsjXegxW3faEMlyD6EYedlGBDXFIFs8RfmDIvE4Hr80DrEz5qS8?=
 =?us-ascii?Q?tYx89aKFO3hYlXxRJmP0cZslvEyDB0SH9L78523/PHha2sJ0XRODsnmb0gPJ?=
 =?us-ascii?Q?mZNILpjXUIQksIdwmrhakygDBtje7F5Dq2mSi1ZGXngZ5k+f12VS6mlOoI8l?=
 =?us-ascii?Q?HfKNF8C+6OrVlDjwv8tkFjkejUWWP30+h1oQwtWYyPvdN2HK0J/TMf1pM9xZ?=
 =?us-ascii?Q?BDaDCBYtQpDviboBuZdN3byowza1imvZ9ESVDrfK6sLA/62inJrTMEgJMZAt?=
 =?us-ascii?Q?rR5GM3t/kdv15Xv6T6QjOO9lWiKaNIZNWIPnUzw+KQtPY/fNHmk0THsJk/sN?=
 =?us-ascii?Q?rvgr/HeIxTpVIJ9VTKWmY7dR4ZqdaEZLH5CetjDUdx6GcgHWNiOy7NUUackS?=
 =?us-ascii?Q?Y595k8AXnetVSfNeyKo3OxicYtHatL8TqvvkDpqlG3fAoyE1LOIocDOJj0io?=
 =?us-ascii?Q?zpi67PKy+pJGCEvaYn6KWfEbzFNFoq/u3TQymV4SBs583hieoel1KkoAdjIQ?=
 =?us-ascii?Q?1EsJKAFuL24RifHSQLAg10c8feBKOqfODqOs91c50aGvCYKLo2V+PCzJMaAV?=
 =?us-ascii?Q?Tg2CJzxvNcCnO2skDCj8uVe+0SFqykxPRnGzEOmYYatq+KyVmVKBoyHYk5C3?=
 =?us-ascii?Q?BGs0jRtFgMAS64cBZssE/Q7XLx2Re3OqupBbGYHimV8caH2b14RpVzcZq5es?=
 =?us-ascii?Q?G+NmQU+PytFPmZ2f66JO1pqXNdEv9joS4gDGs5qWB5lRU8zpGCssq2dL8G49?=
 =?us-ascii?Q?4UqmTVMHmbaI7EJ4ZkPtZ+30B/wuAS77PL6CPqOGNn7lZsgdnzDSN4adxFKZ?=
 =?us-ascii?Q?Cli2Y1HTUO9a23bMvsLcbb7okEZCHIT8o2ypz1sl8XLBBONO4+PlhqJ8vvnZ?=
 =?us-ascii?Q?My939rkilTORS91os5HGnkrZRrliVsQJ+swsivSJVDWRMyCm1YySogXQOJ6J?=
 =?us-ascii?Q?oDlZ30u6c21d1Gve56yGOWAgF0rkYEBRwrN0EVWjSgTUwuOiFf+ZTkx7scOF?=
 =?us-ascii?Q?tvZamAIx8Xlgf8+v4Uk=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 16:22:38.3902
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6c4ab6e9-3356-4077-6ec3-08de2207b247
X-MS-Exchange-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:
	BN3PEPF0000B06C.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8220

Keeps around the microcode revision reading logic, as that's security
sensitive to detect out-of-date patforms and report them.

Move cpu_sig to base.c, because that's externally visible symbol outside
the microcode subsystem and we need it always accesible.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/Kconfig                    | 12 ++++++++++++
 xen/arch/x86/cpu/microcode/Makefile     |  6 +++---
 xen/arch/x86/cpu/microcode/amd-base.c   |  9 +++++++--
 xen/arch/x86/cpu/microcode/base.c       | 21 +++++++++++----------
 xen/arch/x86/cpu/microcode/core.c       |  1 -
 xen/arch/x86/cpu/microcode/intel-base.c |  6 ++++--
 xen/arch/x86/efi/efi-boot.h             |  2 +-
 xen/arch/x86/platform_hypercall.c       |  2 ++
 8 files changed, 40 insertions(+), 19 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 3f0f3a0f3a..948dd00dbc 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -330,8 +330,20 @@ config REQUIRE_NX
 	  was unavailable. However, if enabled, Xen will no longer boot on
 	  any CPU which is lacking NX support.
 
+config UCODE
+	bool "Microcode loading"
+	default y
+	help
+	  Support updating the microcode revision of available CPUs with a newer
+	  vendor-provided microcode blob. Microcode updates address some classes of
+	  silicon defects. It's a very common delivery mechanism for fixes or
+	  workarounds for speculative execution vulnerabilities.
+
+	  If unsure, say Y
+
 config UCODE_SCAN_DEFAULT
 	bool "Scan for microcode by default"
+	depends on UCODE
 	help
 	  During boot, Xen can scan the multiboot images for a CPIO archive
 	  containing CPU microcode to be loaded, which is Linux's mechanism for
diff --git a/xen/arch/x86/cpu/microcode/Makefile b/xen/arch/x86/cpu/microcode/Makefile
index 765195ada3..4ec38b56a2 100644
--- a/xen/arch/x86/cpu/microcode/Makefile
+++ b/xen/arch/x86/cpu/microcode/Makefile
@@ -1,6 +1,6 @@
-obj-$(CONFIG_AMD) += amd.o
+obj-$(filter $(CONFIG_AMD),$(CONFIG_UCODE)) += amd.o
 obj-$(CONFIG_AMD) += amd-base.o
 obj-y += base.o
-obj-y += core.o
-obj-$(CONFIG_INTEL) += intel.o
+obj-$(CONFIG_UCODE) += core.o
+obj-$(filter $(CONFIG_INTEL),$(CONFIG_UCODE)) += intel.o
 obj-$(CONFIG_INTEL) += intel-base.o
diff --git a/xen/arch/x86/cpu/microcode/amd-base.c b/xen/arch/x86/cpu/microcode/amd-base.c
index f8f5fac1e1..4e705fe602 100644
--- a/xen/arch/x86/cpu/microcode/amd-base.c
+++ b/xen/arch/x86/cpu/microcode/amd-base.c
@@ -22,19 +22,23 @@ static void cf_check collect_cpu_info(void)
 }
 
 static const struct microcode_ops __initconst_cf_clobber amd_ucode_ops = {
-    .cpu_request_microcode            = amd_cpu_request_microcode,
     .collect_cpu_info                 = collect_cpu_info,
+#ifdef CONFIG_UCODE
+    .cpu_request_microcode            = amd_cpu_request_microcode,
     .apply_microcode                  = amd_apply_microcode,
     .compare                          = amd_compare,
     .cpio_path                        = amd_cpio_path,
+#endif /* CONFIG_UCODE */
 };
 
 void __init ucode_probe_amd(struct microcode_ops *ops)
 {
     /*
      * The Entrysign vulnerability (SB-7033, CVE-2024-36347) affects Zen1-5
-     * CPUs.  Taint Xen if digest checking is turned off.
+     * CPUs. Taint Xen if digest checking is turned off and microcode loading is
+     * compiled in.
      */
+#ifdef CONFIG_UCODE
     if ( boot_cpu_data.family >= 0x17 && boot_cpu_data.family <= 0x1a &&
          !opt_digest_check )
     {
@@ -42,6 +46,7 @@ void __init ucode_probe_amd(struct microcode_ops *ops)
                "Microcode patch additional digest checks disabled\n");
         add_taint(TAINT_CPU_OUT_OF_SPEC);
     }
+#endif /* CONFIG_UCODE */
 
     if ( boot_cpu_data.family < 0x10 )
         return;
diff --git a/xen/arch/x86/cpu/microcode/base.c b/xen/arch/x86/cpu/microcode/base.c
index 895ee78d2e..3e0b5a7447 100644
--- a/xen/arch/x86/cpu/microcode/base.c
+++ b/xen/arch/x86/cpu/microcode/base.c
@@ -13,6 +13,7 @@
 #include "private.h"
 
 struct microcode_ops __ro_after_init ucode_ops;
+DEFINE_PER_CPU(struct cpu_signature, cpu_sig);
 
 int microcode_update_one(void)
 {
@@ -23,6 +24,9 @@ int microcode_update_one(void)
     if ( ucode_ops.collect_cpu_info )
         alternative_vcall(ucode_ops.collect_cpu_info);
 
+    if ( !IS_ENABLED(CONFIG_UCODE) )
+        return 0;
+
     return _microcode_update_one();
 }
 
@@ -30,16 +34,10 @@ int __init early_microcode_init(struct boot_info *bi)
 {
     const struct cpuinfo_x86 *c = &boot_cpu_data;
 
-    switch ( c->vendor )
-    {
-    case X86_VENDOR_AMD:
+    if ( IS_ENABLED(CONFIG_AMD) && c->vendor == X86_VENDOR_AMD )
         ucode_probe_amd(&ucode_ops);
-        break;
-
-    case X86_VENDOR_INTEL:
+    else if ( IS_ENABLED(CONFIG_INTEL) && c->vendor == X86_VENDOR_INTEL )
         ucode_probe_intel(&ucode_ops);
-        break;
-    }
 
     if ( !ucode_ops.collect_cpu_info )
     {
@@ -60,10 +58,13 @@ int __init early_microcode_init(struct boot_info *bi)
      *
      * Take the hint in either case and ignore the microcode interface.
      */
-    if ( !ucode_ops.apply_microcode || this_cpu(cpu_sig).rev == ~0 )
+    if ( !IS_ENABLED(CONFIG_UCODE) || !ucode_ops.apply_microcode ||
+         this_cpu(cpu_sig).rev == ~0 )
     {
         printk(XENLOG_INFO "Microcode loading disabled due to: %s\n",
-               ucode_ops.apply_microcode ? "rev = ~0" : "HW toggle");
+               !IS_ENABLED(CONFIG_UCODE) ? "not compiled-in" :
+               ucode_ops.apply_microcode ? "rev = ~0"        :
+                                           "HW toggle");
         ucode_ops.apply_microcode = NULL;
         return -ENODEV;
     }
diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index 553a0ced15..d6ba250dca 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -164,7 +164,6 @@ custom_param("ucode", parse_ucode);
 
 static DEFINE_SPINLOCK(microcode_mutex);
 
-DEFINE_PER_CPU(struct cpu_signature, cpu_sig);
 /* Store error code of the work done in NMI handler */
 static DEFINE_PER_CPU(int, loading_err);
 
diff --git a/xen/arch/x86/cpu/microcode/intel-base.c b/xen/arch/x86/cpu/microcode/intel-base.c
index 4fcacaa192..18fdb4e7fc 100644
--- a/xen/arch/x86/cpu/microcode/intel-base.c
+++ b/xen/arch/x86/cpu/microcode/intel-base.c
@@ -32,17 +32,19 @@ static void cf_check collect_cpu_info(void)
 }
 
 static const struct microcode_ops __initconst_cf_clobber intel_ucode_ops = {
+    .collect_cpu_info      = collect_cpu_info,
+#ifdef CONFIG_UCODE
     .cpu_request_microcode = intel_cpu_request_microcode,
     .apply_microcode       = intel_apply_microcode,
-    .collect_cpu_info      = collect_cpu_info,
     .compare               = intel_compare,
     .cpio_path             = intel_cpio_path,
+#endif /* CONFIG_UCODE */
 };
 
 void __init ucode_probe_intel(struct microcode_ops *ops)
 {
     *ops = intel_ucode_ops;
 
-    if ( !intel_can_load_microcode() )
+    if ( IS_ENABLED(CONFIG_UCODE) && !intel_can_load_microcode() )
         ops->apply_microcode = NULL;
 }
diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 0194720003..9ec9291681 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -295,7 +295,7 @@ static void __init efi_arch_cfg_file_late(const EFI_LOADED_IMAGE *image,
 {
     union string name;
 
-    if ( read_section(image, L"ucode", &ucode, NULL) )
+    if ( !IS_ENABLED(CONFIG_UCODE) || read_section(image, L"ucode", &ucode, NULL) )
         return;
 
     name.s = get_value(&cfg, section, "ucode");
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 79bb99e0b6..b2527bca93 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -307,6 +307,7 @@ ret_t do_platform_op(
         break;
     }
 
+#ifdef CONFIG_UCODE
     case XENPF_microcode_update:
     {
         XEN_GUEST_HANDLE(const_void) data;
@@ -327,6 +328,7 @@ ret_t do_platform_op(
                                  op->u.microcode2.flags);
         break;
     }
+#endif /* CONFIG_UCODE */
 
     case XENPF_platform_quirk:
     {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 16:22:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 16:22:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160306.1488516 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJDcQ-0001EG-3K; Wed, 12 Nov 2025 16:22:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160306.1488516; Wed, 12 Nov 2025 16:22:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJDcP-0001Cp-S8; Wed, 12 Nov 2025 16:22:49 +0000
Received: by outflank-mailman (input) for mailman id 1160306;
 Wed, 12 Nov 2025 16:22: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=Vb/2=5U=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vJDcO-0000RX-Qt
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 16:22:48 +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 d29f6041-bfe3-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 17:22:47 +0100 (CET)
Received: from BN9PR03CA0199.namprd03.prod.outlook.com (2603:10b6:408:f9::24)
 by SJ5PPFE4FC9FAB3.namprd12.prod.outlook.com
 (2603:10b6:a0f:fc02::9a7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Wed, 12 Nov
 2025 16:22:37 +0000
Received: from BN3PEPF0000B06C.namprd21.prod.outlook.com
 (2603:10b6:408:f9:cafe::7c) by BN9PR03CA0199.outlook.office365.com
 (2603:10b6:408:f9::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.16 via Frontend Transport; Wed,
 12 Nov 2025 16:22:37 +0000
Received: from satlexmb07.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.9343.0 via Frontend Transport; Wed, 12 Nov 2025 16:22:37 +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; Wed, 12 Nov
 2025 08:22:35 -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: d29f6041-bfe3-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nmWRS0VEPOiBM7Sad1179CXDJoO/5iCuoJgUYVUJJNXF6Q9THJOCqmuBj2LutWVMexB7K5AXSkDvtWT7Lnuht4x+YqLcvqgY7/G02zlv5dmTrY5ULKSuNH1nISC70nE1v30FSBRilSgyomRXrGe1OKRlrQQ2GYz4M9uF7pqyZc9q8bKuFbAuNUOxSZ/o5FJaMsGFkS4Cm9ylTlVX/SPwwV9zrfbobMaaabg8Wt82/D9UZw8djlr0fpw+JjL8aJ6C8SBdKuARbu64DGlcrlhMVwLDZw4n0VZpPpoWrslIqKHGK4ywEHUEPuQp9x3GCHJmzs1nUeMCB3Chr9gGCl0hpA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZXBRlT+vmpj7q780lMTRkbD8kmp9sJpq7zet8o+dSy0=;
 b=JOhhLXC1WsStcH3+7YOk2mcTzjf21RxF4Oi7I+o/GxPzeB5xJYpneEjK4ddXEnYp3Fs5Azm4LfDfxXHjWGmz+goA3fOGgGPwdDI561uKYW1rlnJQnWkbFJZ2ZlBiUMNHPElOVRi78CJtnRheAyccNU9uOrWQ8RLmOo9VNvQCeSiGapK+fV+Q0n54sQEHbW/D+R0cZB4cVLv437Af0j7bCCZnBmJmVrHleI12Tyrx7Rwk+bEMZGjxiQPjbtLsSDfPkJvAsU18PnsnM5F1NBeqq9nVoqOJ38GmU4IOOwbStzBGqR+BSspRDCnkCHifS0ZCYAc0V2M+bVfP/DU6md0lzw==
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=ZXBRlT+vmpj7q780lMTRkbD8kmp9sJpq7zet8o+dSy0=;
 b=avAMx6LNDVt0+g3zsTmp3V+Kd8oKOGkaEFjl3sTF2t6w40/a4OrM+6VKJ3XjnUuaORzMKMR919vTuKbt6WpoRayUrynS235ybbPJv8mR0dBTJYKDed3KTg3SJ6g5A2DBg3urzMFwoPXnCGwJ7cEaYPxSbdmwu4xmmDPNUbqB+7k=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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 3/4] x86: Split out early_microcode_load() and microcode_load_one()
Date: Wed, 12 Nov 2025 17:22:16 +0100
Message-ID: <20251112162219.226075-4-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251112162219.226075-1-alejandro.garciavallejo@amd.com>
References: <20251112162219.226075-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: BN3PEPF0000B06C:EE_|SJ5PPFE4FC9FAB3:EE_
X-MS-Office365-Filtering-Correlation-Id: 3f27baef-e039-4b20-1cbb-08de2207b1de
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?hQKbQR2MaDAKGtXTeonY3HgciYsVBb1kjp1E211JQoMN3D3QDV2anCbsjQ2k?=
 =?us-ascii?Q?HOhSgmmklcoezIBz85LKUd6j+8hBI+21qSd97d6coznzC8lYecPm45/upnFJ?=
 =?us-ascii?Q?BOBYUTdiIKHnyNjBPEgMw0URtleuaZqM1Iur5VHcVw2GwDg618nzOw6Ch3IG?=
 =?us-ascii?Q?GttBrLxfqiuyYgm7aJKat3uWbG8BgQ4G9z8UdfReMSQaAWmm2/VSHQHPuoXd?=
 =?us-ascii?Q?fw9GoFK/9odNAEwGlge0FnrH+OAriKsEfTY5odLwR+4XKw/Rjpf+g/J/W+Wg?=
 =?us-ascii?Q?E9wPIw+vyRZPJpDO5vhZcVp5byQq18MbLoLnPM+C9c+teA+5j0yafbKrGHtQ?=
 =?us-ascii?Q?kuhn4xGsoG/Hljh/kNeIm/sSlCJrPjK8HH9rwIe2rXhB97/bBTJ6OAsL/iMI?=
 =?us-ascii?Q?0u8Sy8FTCX2fNvUQ4jUCH1jVsxCsxRt9paDLWZoj7FJoqDMPsLTUXf8WmL4c?=
 =?us-ascii?Q?YnuN4/U/n1zMHF9DfxHxT7VoqzOCK8uOwu9WsaTUbZTZAL/uSeDAnsnOrJAH?=
 =?us-ascii?Q?0gi0ZflQWhNaSB1sSK7ltCL3FlPjdBeoF4bQ5CUuNJfgfU+bp3ZzjN3ELEwZ?=
 =?us-ascii?Q?VtdrZyVydwTcSxIQ5ZQVi+/EF6MptGMnMRANEXdmS8X2xm+GotFagwb6VgpK?=
 =?us-ascii?Q?NL++svOW8GUj3AKJnOQsz3TngDtnq34b2K+Pxh5BkYjc+UAIRnaDxIOpS2Ov?=
 =?us-ascii?Q?/rb6Hg1WkdQol/MCX4BCmluBDdZA6y6a9PLH5UrQsFIPlbR20AZxFyT+S/4p?=
 =?us-ascii?Q?oIFKvNlauBALzwBHjGUEPTxIxOlI72uU88RIKmt0XaeR5yGKqt1tBXY2WnHE?=
 =?us-ascii?Q?M6BmeJTzYGZrNOxhFUvEGht5zVA0rsy1EsMkFDty2NaA2Mtut+nJ1cIn6tV9?=
 =?us-ascii?Q?maKnhdT4C21r3l4bDbHfhCYBy0eRCNoN6FodG5HxWuR5zHyQPJfGFqFNx7Uu?=
 =?us-ascii?Q?gnpS/uB5q8VoUKIPcCblDYaMauVXHS6PDF2ylf79c6IzRJ6DVbm7oecy7W/0?=
 =?us-ascii?Q?08eanYEsEaUSFHBsOyuiyMKvYT5zv+snj8FMcm1mbYzT5d8F1vXSpR7YKTd7?=
 =?us-ascii?Q?zEdC0nSxFxZEXtoeZrQXRw1s22Dl4VkQcqhvNdR1Ojwf1sC6jg6mWFBa4Uao?=
 =?us-ascii?Q?4rpy5B79PovOIXuBeltwuCFtOLFhUw2i67RAXPo0FJBdsV7htkH/+ait5AFa?=
 =?us-ascii?Q?ivGXli3ZzQEbH+BEUndWPN4HAA7Lr0hs7DV/Pw1o5M4a80qEACwqwz1XCF6A?=
 =?us-ascii?Q?8LhaYTlWRplmoa46HxvXTkjzM1KfWLxlNDFBHaUpgsVcL9utAxQ02udDD0tp?=
 =?us-ascii?Q?TNzYu+0wxhDG9bLkPvk1HevA3sfoU/cYm3q1kAbRaWWEg5cHEDpnvk3taPin?=
 =?us-ascii?Q?UoOt1i/C93KAsUbCMKkkBwQIUsLUqR6dXP9ZgAmrCUFc0NS/44jWTQqgOgaG?=
 =?us-ascii?Q?PgIvph49wICKoN6Uwo4ifpuFaWsuMjNvLgYBC+I6uGiJGq/tcVxAKU5513Fi?=
 =?us-ascii?Q?vwK7QVrdBTJnnmTZXEAY/Xu2/2HIT/2SjjD2qW8SaIB4+teQdT+3C+QL2Ys1?=
 =?us-ascii?Q?0Wqj/TD7p0wV001Dvx8=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 16:22:37.7006
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3f27baef-e039-4b20-1cbb-08de2207b1de
X-MS-Exchange-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:
	BN3PEPF0000B06C.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFE4FC9FAB3

A later patch compiles out most of the microcode loading code by removing
core.c from the Makefile based on Kconfig. These functions are important
to set up the ucode_op to read the microcode revision and report it on
every CPU.

Not a functional change.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/cpu/microcode/Makefile  |  1 +
 xen/arch/x86/cpu/microcode/base.c    | 72 ++++++++++++++++++++++++++++
 xen/arch/x86/cpu/microcode/core.c    | 57 +---------------------
 xen/arch/x86/cpu/microcode/private.h | 14 ++++++
 4 files changed, 89 insertions(+), 55 deletions(-)
 create mode 100644 xen/arch/x86/cpu/microcode/base.c

diff --git a/xen/arch/x86/cpu/microcode/Makefile b/xen/arch/x86/cpu/microcode/Makefile
index 74289981e3..765195ada3 100644
--- a/xen/arch/x86/cpu/microcode/Makefile
+++ b/xen/arch/x86/cpu/microcode/Makefile
@@ -1,5 +1,6 @@
 obj-$(CONFIG_AMD) += amd.o
 obj-$(CONFIG_AMD) += amd-base.o
+obj-y += base.o
 obj-y += core.o
 obj-$(CONFIG_INTEL) += intel.o
 obj-$(CONFIG_INTEL) += intel-base.o
diff --git a/xen/arch/x86/cpu/microcode/base.c b/xen/arch/x86/cpu/microcode/base.c
new file mode 100644
index 0000000000..895ee78d2e
--- /dev/null
+++ b/xen/arch/x86/cpu/microcode/base.c
@@ -0,0 +1,72 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#include <xen/alternative-call.h>
+
+#include <xen/errno.h>
+#include <xen/init.h>
+#include <xen/lib.h>
+
+#include <asm/asm_defns.h>
+#include <asm/cpufeature.h>
+#include <asm/x86-vendors.h>
+#include <asm/microcode.h>
+
+#include "private.h"
+
+struct microcode_ops __ro_after_init ucode_ops;
+
+int microcode_update_one(void)
+{
+    /*
+     * This path is used for APs and S3 resume.  Read the microcode revision
+     * if possible, even if we can't load microcode.
+     */
+    if ( ucode_ops.collect_cpu_info )
+        alternative_vcall(ucode_ops.collect_cpu_info);
+
+    return _microcode_update_one();
+}
+
+int __init early_microcode_init(struct boot_info *bi)
+{
+    const struct cpuinfo_x86 *c = &boot_cpu_data;
+
+    switch ( c->vendor )
+    {
+    case X86_VENDOR_AMD:
+        ucode_probe_amd(&ucode_ops);
+        break;
+
+    case X86_VENDOR_INTEL:
+        ucode_probe_intel(&ucode_ops);
+        break;
+    }
+
+    if ( !ucode_ops.collect_cpu_info )
+    {
+        printk(XENLOG_INFO "Microcode loading not available\n");
+        return -ENODEV;
+    }
+
+    ucode_ops.collect_cpu_info();
+
+    printk(XENLOG_INFO "BSP microcode revision: 0x%08x\n", this_cpu(cpu_sig).rev);
+
+    /*
+     * Some hypervisors deliberately report a microcode revision of -1 to
+     * mean that they will not accept microcode updates.
+     *
+     * It's also possible the hardware might have built-in support to disable
+     * updates and someone (e.g: a baremetal cloud provider) disabled them.
+     *
+     * Take the hint in either case and ignore the microcode interface.
+     */
+    if ( !ucode_ops.apply_microcode || this_cpu(cpu_sig).rev == ~0 )
+    {
+        printk(XENLOG_INFO "Microcode loading disabled due to: %s\n",
+               ucode_ops.apply_microcode ? "rev = ~0" : "HW toggle");
+        ucode_ops.apply_microcode = NULL;
+        return -ENODEV;
+    }
+
+    return early_microcode_load(bi);
+}
diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index 1d1a5aa4b0..553a0ced15 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -162,8 +162,6 @@ static int __init cf_check parse_ucode(const char *s)
 }
 custom_param("ucode", parse_ucode);
 
-static struct microcode_ops __ro_after_init ucode_ops;
-
 static DEFINE_SPINLOCK(microcode_mutex);
 
 DEFINE_PER_CPU(struct cpu_signature, cpu_sig);
@@ -648,7 +646,7 @@ int ucode_update_hcall(XEN_GUEST_HANDLE(const_void) buf,
 }
 
 /* Load a cached update to current cpu */
-int microcode_update_one(void)
+int _microcode_update_one(void)
 {
     int rc;
 
@@ -736,13 +734,7 @@ static int __init cf_check microcode_init_cache(void)
 }
 presmp_initcall(microcode_init_cache);
 
-/*
- * There are several tasks:
- * - Locate the ucode blob in the boot modules.
- * - Parse and attempt in-place load.
- * - Inform microcode_init_cache() of how to find the blob again.
- */
-static int __init early_microcode_load(struct boot_info *bi)
+int __init early_microcode_load(struct boot_info *bi)
 {
     void *data = NULL;
     size_t size;
@@ -873,48 +865,3 @@ static int __init early_microcode_load(struct boot_info *bi)
 
     return rc;
 }
-
-int __init early_microcode_init(struct boot_info *bi)
-{
-    const struct cpuinfo_x86 *c = &boot_cpu_data;
-
-    switch ( c->vendor )
-    {
-    case X86_VENDOR_AMD:
-        ucode_probe_amd(&ucode_ops);
-        break;
-
-    case X86_VENDOR_INTEL:
-        ucode_probe_intel(&ucode_ops);
-        break;
-    }
-
-    if ( !ucode_ops.collect_cpu_info )
-    {
-        printk(XENLOG_INFO "Microcode loading not available\n");
-        return -ENODEV;
-    }
-
-    ucode_ops.collect_cpu_info();
-
-    printk(XENLOG_INFO "BSP microcode revision: 0x%08x\n", this_cpu(cpu_sig).rev);
-
-    /*
-     * Some hypervisors deliberately report a microcode revision of -1 to
-     * mean that they will not accept microcode updates.
-     *
-     * It's also possible the hardware might have built-in support to disable
-     * updates and someone (e.g: a baremetal cloud provider) disabled them.
-     *
-     * Take the hint in either case and ignore the microcode interface.
-     */
-    if ( !ucode_ops.apply_microcode || this_cpu(cpu_sig).rev == ~0 )
-    {
-        printk(XENLOG_INFO "Microcode loading disabled due to: %s\n",
-               ucode_ops.apply_microcode ? "rev = ~0" : "HW toggle");
-        ucode_ops.apply_microcode = NULL;
-        return -ENODEV;
-    }
-
-    return early_microcode_load(bi);
-}
diff --git a/xen/arch/x86/cpu/microcode/private.h b/xen/arch/x86/cpu/microcode/private.h
index e6c965dc99..881ea7d8d9 100644
--- a/xen/arch/x86/cpu/microcode/private.h
+++ b/xen/arch/x86/cpu/microcode/private.h
@@ -5,6 +5,8 @@
 
 #include <asm/microcode.h>
 
+struct boot_info;
+
 /* Opaque.  Internals are vendor-specific. */
 struct microcode_patch;
 
@@ -68,6 +70,7 @@ struct microcode_ops {
 };
 
 extern bool opt_digest_check;
+extern struct microcode_ops ucode_ops;
 
 /*
  * Microcode loading falls into one of 3 states.
@@ -93,4 +96,15 @@ void ucode_probe_intel(struct microcode_ops *ops);
 static inline void ucode_probe_intel(struct microcode_ops *ops) {}
 #endif
 
+/*
+ * There are several tasks:
+ * - Locate the ucode blob in the boot modules.
+ * - Parse and attempt in-place load.
+ * - Inform microcode_init_cache() of how to find the blob again.
+ */
+int early_microcode_load(struct boot_info *bi);
+
+/* Attempt performaing a microcode load */
+int _microcode_update_one(void);
+
 #endif /* ASM_X86_MICROCODE_PRIVATE_H */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 16:35:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 16:35:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160370.1488529 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJDow-0005Hc-DC; Wed, 12 Nov 2025 16:35:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160370.1488529; Wed, 12 Nov 2025 16:35:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJDow-0005HV-AH; Wed, 12 Nov 2025 16:35:46 +0000
Received: by outflank-mailman (input) for mailman id 1160370;
 Wed, 12 Nov 2025 16:35:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EiA8=5U=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJDou-0005HP-Gk
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 16:35:44 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9f3b0bc6-bfe5-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 17:35:39 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by GV1PR03MB8381.eurprd03.prod.outlook.com (2603:10a6:150:54::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Wed, 12 Nov
 2025 16:35:34 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025
 16:35: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: 9f3b0bc6-bfe5-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qpGy9EVlfunHxvtSAg5FC5ETvRb0BNGuHCXm5T35q9tmabZsSeR/zjF6VBPkg4Fmb5/nNlv7s6O9FgL554K7JcaHge9IgKImS6Ad841/jRVDtZPgapMSL62buWxucEAeq/3ptT80W9RBAy0QMRQYTYifiSJyHuKx8kjq9PE+Kd59jgSIVRc6lI7rnHldNf3TK5ZDUKDSmrEFxIxaU2dc8wEIFngbDnB4iVyDBIes0e4UTvUn2/l7AwJ4L2Bfq6oEZ2cPgSvg//6KTOJNdh6n/G8MEBWwpxDjQU+PLChI1S/ywB9Et/gqaezEFp5pki00MRZ8TW8uDk9leT4DJJL48g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zs56Xkx4v/tlIQ5LvTJU1FgUW1cUPBdnAO4M5Byl1fc=;
 b=k5nP5Mr+MDq57G6QIk9eOsncT8gY9Dg32B9xW4ljCQLMvYsIUohrHQUGJZHK1oQIKVLvhn0X281MDOAFVLcUrApofxURIL2i4/E6RmUgNBJyBLYLSg7x+KZ2O2NvNCuVAwuB3LsMQQTz4E0MKDaRaLH+GPc1geISFSl+HKvPIXvVCvqZTkWv1JuE2pU0/wEn6RrfELpMebSvgQ5nd4Zv4rxiBe+GBC+6FXMwBrnZvVmqZJ/tcIwyoGqEdPMKFEN/BU1M4jNDaNxEc2lp2+xYIu+PNOatIlQwAQTn8uEuWMuenPNg39pYGQ/iVW18D0CXLHJlhn4q81yE2ZYBRJWq2w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zs56Xkx4v/tlIQ5LvTJU1FgUW1cUPBdnAO4M5Byl1fc=;
 b=f6U7iKoVB9pahCh9x3n8wGGCBdDJf8sZ+T2ZH0zYbMDixPAnEnSLB/3c6vYBgF9j1URGmLQud3kmclptIBpgftastsJq3L4EKm64YxL/KOA9AP5kJy6skqdqfh8wkeQ3kqRhxjFrWsTJtGlktIWolMN+AGUVTZojPWxtTdbkpeM2Yn/urdrSqXSXG8Rm+9Q9ckX3ct80L/VEy2UHuoVchQTLRok+M5CogWhc9/7muWOOE8Pd3oTwt00rihJZJlgRcddYc171kCDX9rgdgZ4Em+FVJ3nrrxlutmkHfblYoFu8rulYXiNkGBngmbnoqkP7v/cPBsqXVq2HayJ5NzQrAg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <6468bf48-deec-4c92-8158-92d1b28580f1@epam.com>
Date: Wed, 12 Nov 2025 18:35:32 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v7] x86: make Viridian support optional
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Paul Durrant <paul@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20251031161716.1222956-1-grygorii_strashko@epam.com>
 <a4d3eb8d-17ea-4d3c-87ef-ba5c3477b8c3@suse.com>
 <edb590e4-340d-4a0f-9543-0dfdcc7b54b1@epam.com>
 <210edee7-8525-47a9-8191-ea7d94db5fce@suse.com>
 <0a5af540-214d-46cc-93e5-f0266bb79064@epam.com>
 <b829a9dc-ed1d-45f9-a56f-ec288e0d5523@suse.com>
 <DE6SC2RG21IK.20ONZLHO187R5@amd.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <DE6SC2RG21IK.20ONZLHO187R5@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR0P281CA0243.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:af::10) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|GV1PR03MB8381:EE_
X-MS-Office365-Filtering-Correlation-Id: 6b98745f-ea53-425d-981f-08de22098038
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?MW9kWitkSzIrejJuYUtMRHhHQ0RrU1VXZjBoWjBKUFU1cEo3MUtwZHh5WllB?=
 =?utf-8?B?Umt3T3NJMG1QQjhrcGk0VjFjU0t2OG9ZN2t0eVpPalR5cm1TNTRGR3RZRkY3?=
 =?utf-8?B?NUw4Mkk5Q2hqai9ubmZydHBmcU0yVlhnV0pUMC9oYVBMQTFQNEpWR1UrUVZI?=
 =?utf-8?B?QXYxS0RLdUo2UTNHTFF3RnltdDdMVExsa200WW1OQXdQWHBLTXN1S2wraUo3?=
 =?utf-8?B?QVVZNktkVS9HcGZKQ1RueCtsblZGWjl1bjJ1RFJHaTVOays2QlhReE9sR2Rw?=
 =?utf-8?B?TmQxazQzWW9LSW9FMzlvZ1J3Q3Y2cnVtZ256ZGFYOWxFb0tFR3NtSFJDRkx3?=
 =?utf-8?B?S2ozR0JKcCtxTmgwVnZPQklBUytlbzVieFc0RkE4VVZYL3JabURvM0RMMjlw?=
 =?utf-8?B?L240RHpvdmRHRVhxdTdHU09ZTkxVdXVoN25FUDJCNkFwaEdnNEhnUnRvUkU2?=
 =?utf-8?B?VFBuVWZpMHhOMDZ5RDZQdVZYVjlpUmpVS0tZakZKbzY0Z3NROFNQTnBUVUd5?=
 =?utf-8?B?dndONGdmS3FWVTZzN2pMdHZ2SFExRTAzN2hXRDhCM1JNYzF1YmVYYkpMWHkv?=
 =?utf-8?B?NTlKM3BPZWFQVW9Icng3TE1mV3lQU29Zc09LaEFPYVBnSHdGQURoeGJRdUdy?=
 =?utf-8?B?SEs4a21UaUUvay80YWZIQmREOTR3RnFHdit1Y2NVekNSMkNIUExidE9WaDBD?=
 =?utf-8?B?Rm5nemRiYW9zOUg2VXpEZ2s5ZUNOMk1nMjc3T05sUGsyZVhPOWdjV3ZnQkgx?=
 =?utf-8?B?OVdZNmpPczVIYTZSVTl2TGdRTTAvRkwzeWdESG84SjZMTmc1MlFIeDg2YVZR?=
 =?utf-8?B?Y0poeVRtUHJLMElkTnpYY1RLTFF3cHJ6YVM3bHg2dWtDVWxBK1hJSkpEZ2Fn?=
 =?utf-8?B?TzkxNXp1OTcyWEsrOEg1czBhYS9RTmZqNEdWSElyL1p0ZE1QS0VQL1B3OUJa?=
 =?utf-8?B?Tm9qRXN4b0NSTnhVRTZuS3lzYlEwL0dIUXZTU3NYN1VqS0k4Yk9DUnRCRHdp?=
 =?utf-8?B?T1pRcFpJMEVrUU5jZkNnK1dteGI3d3BwK01IMlYzNnFjdEJMQVB1NTRBVUx4?=
 =?utf-8?B?dU0xRXJPcGtGTGhuWUpXRDJBcUswZGNYeC9zV1locU91S2N4RG4zUDk3cE1G?=
 =?utf-8?B?Q0Rac09ZdkVjaUJmcVZpdVNHdGdRMHg5ZEMvZkJNNFlPZXZQTWo4eUtFSGNO?=
 =?utf-8?B?WVhweFRqUGppVXNkUXhhUDFPZEhrZDFMNkFQeGpqSUdDWXJmZnkrY1VFcUpT?=
 =?utf-8?B?RGVyN3M3YkdiblJ3MmExbmtIZXZ5c1VrTzlVZStxTnpZRnN2Mzk1em9ET0JM?=
 =?utf-8?B?UzFmZ1BxUDFVVFBYRDFLbXlGcnFkWlBMOGo0bVlDL05JTnRVa2ZvRjhMQUNP?=
 =?utf-8?B?bzdtdmw1QlFZcUNVVXhTUmVXZGtYSWN4SVNDZFNyVFBwOUpPNHJtQTBsV2Jl?=
 =?utf-8?B?V2ZHNlVlcnpiSHNQdWl1SWNFdE5haGlraXljQWJFazEyU3JoQUVZS04zd29U?=
 =?utf-8?B?d2w1YXQxS3hHSjlYQnM1ekJuZW8vbGRzcjlWcVFMaVJUL0pnYnVMV2lLdXZU?=
 =?utf-8?B?cmszbE51NjAyM1JQdGxHSVNrWE5PMFM3UzNsaG1IbDFGMyt3ajRqeGdJbFJ4?=
 =?utf-8?B?TDkxSGQ0R0tXVUR2RzRVU0MxNUlXZWR4dnlyOUJvWFQ3OFFzZ0pmRThuYTQ4?=
 =?utf-8?B?MmRKM1BlSU9FcFBUVG1BT1Z4anBlVE9yRDdORWlnLzE1WHoyendYeVBVUWk2?=
 =?utf-8?B?c2V4Zkd0YkRIQW8vbE1NV3RtVkxwVVJJblM5YmRoYUZabEtQUHlRQjN5Um5L?=
 =?utf-8?B?aW5lc3VYaTYrbHpCeWZWdmdoREcxcjVWOVBsMW5PWElnQ2Z3KytzOC81SVNF?=
 =?utf-8?B?TWRQQkdOemFOSFZpelFvRUI2OEo4dzFRTENtQzNqbE5zZXV1enpGb3VSeGZ5?=
 =?utf-8?Q?FMb1/DaCkfUDQS0iy57PWXM0imdmutmR?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?THlJRXJhYzRWM200aVpPVWJoK2ltckl0QmN1ZHlSTTVDMDZLKzRKQkFmZjNw?=
 =?utf-8?B?WUdtRWxoL3hiejMwMG45eksvdkYxTE9uSzNGUW1FZDBhaXowUGhtNDZreW4z?=
 =?utf-8?B?LzhWRldiZ3ZwRmc0cExvWmZJVlR2bk9kS05FTmJoU3JuTGpSTnh6Nk1NSDhK?=
 =?utf-8?B?UWxzYkdIam5NRWx3UVBBdVVUZVhCNE5BQ1FETkVCZ1pKVS9tY1pBN2tEcjJu?=
 =?utf-8?B?M2o0VjMrdXZrTm50UDFlaXp3Y1hTL3l6S2c2dWE2TmU1WlVsUkVsQ2k4QndB?=
 =?utf-8?B?eWZRZnJYTXV0OENwbjVHcXFxZjF4Z25JeUN1azQrSXIxOGFUWnA2QzM1czBt?=
 =?utf-8?B?VjBrNEpIb3VybEVPR1NxYUJrcHFkNkpoeThMWTd3Z2pFa0FyTzhBSU8za2Yx?=
 =?utf-8?B?WC9IenBRbnQxWlMrbllzTTNEVGJWT2JxYmQwdGpoRnZQS1hBYm8yeWV4ekVO?=
 =?utf-8?B?cVYwV0FGUTQvNGM3N1pwbUFIUStBMDNvVWhlNmxUUktobWFqbUZxM1F3WXVn?=
 =?utf-8?B?blZGQkRTTWlXWTdDb3ZOdUxCcnZ4OHhlMEFTQXczdXMvalEwM3ZJdVQwOUxR?=
 =?utf-8?B?bUJPZk04TXRKQXhYQ3U2RFpmUEhjWVVySkoraDd5WEl1TWVCcDNpdGx2N3FX?=
 =?utf-8?B?aHNGQ0xzRElvdVRaTlJnSGZRUTA2UGFHL3V4Z3p3aXhWcWJwQWdXdDQ2aEpk?=
 =?utf-8?B?SVdMTDF4M3NlUlRHQ1E5aTg0QkErZ0Y0N084NVlOdUIzL3BIZXo0dEJwZVR2?=
 =?utf-8?B?YTg5SmxHTytpS3QwQ2V2VDFKMFlUUUozb01LaVJRR1NBZVFFVzRUdXBVdDdD?=
 =?utf-8?B?RnZpejBlUTQybG0rS2lwR0xBN3NvL2oxcVlNQVpQVkxNdlFNM2dTWHZOcWlo?=
 =?utf-8?B?UnllV3hMd2QvZDhOeDg1OGkxYnNnUjhMaGdKRjdlVWo2STVoSnR3ZUx1Rlor?=
 =?utf-8?B?UHVrQjRaU1gwUytWU3duVGRwQUlNZ0ZOV0Y2L3dmU1VGUTJ2ODY3aWlVRWR3?=
 =?utf-8?B?dGxnOG1XN1dTbnlNY05OSWllVVFiT0llN1ZvMkN5cE5LM2ZveCs2eG14azhZ?=
 =?utf-8?B?K1lXUXlpQUcxUTVQUzlnT3V1aGE4eTlLc0tHeVRmRlB5MldJQ3JsOVkwYnhO?=
 =?utf-8?B?NS8yeDNQKzhZRlBCNkJNUldhK0wwQitjYjhBc05Fd2NHNS9Ic2RpUWc0dHRZ?=
 =?utf-8?B?emgzT0ptVU1ZeGh6YVI0S24xdXNRRUdvU2sxK2d1T3BMMjA3QjFoT0Y0YnBm?=
 =?utf-8?B?WTIrc2U2Z29yV2NEb3NhMXFGb2dkQXpJekE5QmVzUmo1UEZsakJ2clNBQStU?=
 =?utf-8?B?bHpWZW5iSWJUdytmKysxQzNob0IzNGpuNjZsTmZzRUpKUVI2QmpKN0ZnNHE4?=
 =?utf-8?B?dThRWlZQVGlvZS9wbk1ZNWJPbUtwM08rNFVpeGczMXMwUnhkZWFZelVZdnYr?=
 =?utf-8?B?UVFqaHVITXR1WGZWVHNIV1NyZloyRVVZdEVmTHRhazhwbmtDUDVUNU90YTE5?=
 =?utf-8?B?UXlJTndaeFBOUXdrQk9md3Zmd0dpUGpVM2l6ZnVnSW5wN1gyK05iOWF1S1lV?=
 =?utf-8?B?S2pYSXZjVmdOdTdJWDRsWEdpWkdCWUx0a2toNWVzam5XVjlzQ2MwU3g0QndL?=
 =?utf-8?B?cjhQQmtZRDRHblpjTkdlQzdvTXFQWHRRVC9ObkVBVkN6cmZkQlJLZDRWYkR5?=
 =?utf-8?B?M1laQVNwS2g5ZkhHYUpldkt6bThGaVhzZHZ0c2pVT2ZDYTNIM092T3hmT2tr?=
 =?utf-8?B?YmZabENHZ0VuNXEwUm9namRrajlEZzgxT2RFSENQVm53TEJ0UWRFL0lITmgr?=
 =?utf-8?B?bi9POHpwVmV5WHlHMkJ0SExNWnVHSi9wQUYxbHh4bGgxb0g3QWJBT0RIMUxV?=
 =?utf-8?B?QUFiSHFscmVQZVVMcnd5S2lHMzFuWCsrV0I2NmFCNExZdGhkWHQ3NCtnMDJV?=
 =?utf-8?B?aFg3Qk9OR0M1QzZIMDBMMzZRMkpaSFVaMjFwTm9jN3l2dGsyZjBKY3JwOUN1?=
 =?utf-8?B?U0YrdktGTkcxZm5MNlRCbGI3aGFvWElYRU1sYWprN29HVjhIa3BoNWo2QzFC?=
 =?utf-8?B?Tmd1dkZ0M3Z2N0NEN3BoRzlXTG1HZHl5UmNqaUtibmFGR2hST1JQQ1hoZHlp?=
 =?utf-8?B?MkpNYXpEZU05T2RzSHNtSDZUR0MzZVUwTTRPMERoaXdtY0pPMFZXd1hTWnBt?=
 =?utf-8?B?TGc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6b98745f-ea53-425d-981f-08de22098038
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 16:35:34.0836
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8La/l7jv2Qy3GJ9Ov0Yh8Ert2rcR9HERkTqawy5DxlTwCdr/230ofpmTEekBF9bf62qu5dSWhwkJxijOTIJ0Ciedntva2HDRtHsCGBH1J3M=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB8381



On 12.11.25 16:27, Alejandro Vallejo wrote:
> On Wed Nov 12, 2025 at 7:40 AM CET, Jan Beulich wrote:
>> On 11.11.2025 19:25, Grygorii Strashko wrote:
>>> On 06.11.25 15:47, Jan Beulich wrote:
>>>> On 06.11.2025 14:42, Grygorii Strashko wrote:
>>>>> On 06.11.25 13:35, Jan Beulich wrote:
>>>>>> On 31.10.2025 17:17, Grygorii Strashko wrote:
>>>>>>> --- a/xen/arch/x86/hvm/hvm.c
>>>>>>> +++ b/xen/arch/x86/hvm/hvm.c
>>>>>>> @@ -4231,8 +4231,9 @@ static int hvm_set_param(struct domain *d, uint32_t index, uint64_t value)
>>>>>>>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â  rc = -EINVAL;
>>>>>>>  Â Â Â Â Â Â Â Â Â Â  break;
>>>>>>>  Â Â Â Â Â Â  case HVM_PARAM_VIRIDIAN:
>>>>>>> -Â Â Â Â Â Â Â  if ( (value & ~HVMPV_feature_mask) ||
>>>>>>> -Â Â Â Â Â Â Â Â Â Â Â Â  !(value & HVMPV_base_freq) )
>>>>>>> +Â Â Â Â Â Â Â  if ( !IS_ENABLED(CONFIG_VIRIDIAN) && value )
>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â  rc = -ENODEV;
>>>>>>> +Â Â Â Â Â Â Â  else if ( (value & ~HVMPV_feature_mask) || !(value & HVMPV_base_freq) )
>>>>>>>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â  rc = -EINVAL;
>>>>>>
>>>>>> I find the check for value to be (non-)zero a little dubious here: If any caller
>>>>>> passed in 0, it would get back -EINVAL anyway. Imo -ENODEV would be more suitable
>>>>>> in that case as well. Things would be different if 0 was a valid value to pass in.
>>>>>
>>>>> The idea was to distinguish between "Feature enabled, Invalid parameter" and "Feature disabled".
>>>> "
>>>> But you don't, or else the addition would need to live after the -EINVAL checks.
>>>> I also question the utility of knowing "parameter was invalid" when the feature
>>>> isn't available anyway.
>>>
>>> My understanding here - I need to drop non-zero "value" check.
>>> will be:
>>>
>>>  Â Â Â  case HVM_PARAM_VIRIDIAN:
>>>  Â Â Â Â Â Â Â  if ( !IS_ENABLED(CONFIG_VIRIDIAN) )
>>>  Â Â Â Â Â Â Â Â Â Â Â  rc = -ENODEV;
>>>  Â Â Â Â Â Â Â  else if ( (value & ~HVMPV_feature_mask) || !(value & HVMPV_base_freq) )
>>>  Â Â Â Â Â Â Â Â Â Â Â  rc = -EINVAL;
>>>  Â Â Â Â Â Â Â  break;
>>
>> Yes, or alternatively
>>
>>      case HVM_PARAM_VIRIDIAN:
>>          if ( (value & ~HVMPV_feature_mask) || !(value & HVMPV_base_freq) )
>>              rc = -EINVAL;
>>          else if ( !IS_ENABLED(CONFIG_VIRIDIAN) )
>>              rc = -ENODEV;
>>          break;
>>
>> Both have their up- and down-sides.
>>
>> Jan
> 
> We should aim for Grygorii's form, imo. If anything because it eliminates
> the second else-if on !VIRIDIAN, leading to a marginal binary size reduction.
> 
> There's no value in validation when viridian support just isn't there.

I'm planning to resend with below diff applied:

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index c09fb2ba6873..7299cfa90ad5 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -4231,7 +4231,7 @@ static int hvm_set_param(struct domain *d, uint32_t index, uint64_t value)
              rc = -EINVAL;
          break;
      case HVM_PARAM_VIRIDIAN:
-        if ( !IS_ENABLED(CONFIG_VIRIDIAN) && value )
+        if ( !IS_ENABLED(CONFIG_VIRIDIAN) )
              rc = -ENODEV;
          else if ( (value & ~HVMPV_feature_mask) || !(value & HVMPV_base_freq) )
              rc = -EINVAL;
diff --git a/xen/arch/x86/hvm/viridian/viridian.c b/xen/arch/x86/hvm/viridian/viridian.c
index 5fb148b2aa15..90e749ceb581 100644
--- a/xen/arch/x86/hvm/viridian/viridian.c
+++ b/xen/arch/x86/hvm/viridian/viridian.c
@@ -1117,9 +1117,6 @@ static int cf_check viridian_load_domain_ctxt(
      struct viridian_domain *vd = d->arch.hvm.viridian;
      struct hvm_viridian_domain_context ctxt;
  
-    if ( !IS_ENABLED(CONFIG_VIRIDIAN) )
-        return -EILSEQ;
-
      if ( hvm_load_entry_zeroextend(VIRIDIAN_DOMAIN, h, &ctxt) != 0 )
          return -EINVAL;
  
@@ -1156,9 +1153,6 @@ static int cf_check viridian_load_vcpu_ctxt(
      struct vcpu *v;
      struct hvm_viridian_vcpu_context ctxt;
  
-    if ( !IS_ENABLED(CONFIG_VIRIDIAN) )
-        return -EILSEQ;
-
      if ( vcpuid >= d->max_vcpus || (v = d->vcpu[vcpuid]) == NULL )
      {
          dprintk(XENLOG_G_ERR, "HVM restore: dom%d has no vcpu%u\n",


PS: Not sure I have enough stamina and enthusiasm to continue post v8 version.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 17:15:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 17:15:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160386.1488539 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJEQh-00037U-DS; Wed, 12 Nov 2025 17:14:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160386.1488539; Wed, 12 Nov 2025 17: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 1vJEQh-00037N-Ar; Wed, 12 Nov 2025 17:14:47 +0000
Received: by outflank-mailman (input) for mailman id 1160386;
 Wed, 12 Nov 2025 17: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=mOdF=5U=linux.dev=thorsten.blum@srs-se1.protection.inumbo.net>)
 id 1vJEQg-00037H-1p
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 17:14:46 +0000
Received: from out-186.mta0.migadu.com (out-186.mta0.migadu.com
 [91.218.175.186]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 14800c86-bfeb-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 18:14:43 +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: 14800c86-bfeb-11f0-9d18-b5c5bf9af7f9
X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers.
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1;
	t=1762967681;
	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=ZPcbU/HjyHzjDNdh8oZgw6FUm0OlxveuLUPT+TNJvls=;
	b=AT5U8QoU/4yVoI0kNxptJ2hvBfaaRXmzvm4o1oLcdkbjEWJmjVDR035GudP1Mt1XUGnOAU
	lfgMaWLQZWfiGWcCbAdJG0dRjyBPB9iZg+x6fbNrak6zJ9d14d3hh3FHICf1UGayxq4hLc
	aIiutbYgxmtzKZZ1giBVzcTShRrINrk=
From: Thorsten Blum <thorsten.blum@linux.dev>
To: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"Dr. David Alan Gilbert" <linux@treblig.org>,
	Thorsten Blum <thorsten.blum@linux.dev>
Cc: xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH RESEND] drivers/xen/xenbus: Simplify return statement in join()
Date: Wed, 12 Nov 2025 18:14:07 +0100
Message-ID: <20251112171410.3140-2-thorsten.blum@linux.dev>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Migadu-Flow: FLOW_OUT

Don't unnecessarily negate 'buffer' and simplify the return statement.

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
---
 drivers/xen/xenbus/xenbus_xs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/xen/xenbus/xenbus_xs.c b/drivers/xen/xenbus/xenbus_xs.c
index 528682bf0c7f..7c6c12925326 100644
--- a/drivers/xen/xenbus/xenbus_xs.c
+++ b/drivers/xen/xenbus/xenbus_xs.c
@@ -407,7 +407,7 @@ static char *join(const char *dir, const char *name)
 		buffer = kasprintf(GFP_NOIO | __GFP_HIGH, "%s", dir);
 	else
 		buffer = kasprintf(GFP_NOIO | __GFP_HIGH, "%s/%s", dir, name);
-	return (!buffer) ? ERR_PTR(-ENOMEM) : buffer;
+	return buffer ?: ERR_PTR(-ENOMEM);
 }
 
 static char **split(char *strings, unsigned int len, unsigned int *num)
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 17:21:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 17:21:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160399.1488550 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJEXW-0004sB-3u; Wed, 12 Nov 2025 17:21:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160399.1488550; Wed, 12 Nov 2025 17:21:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJEXW-0004s4-13; Wed, 12 Nov 2025 17:21:50 +0000
Received: by outflank-mailman (input) for mailman id 1160399;
 Wed, 12 Nov 2025 17:21:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Vb/2=5U=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vJEXV-0004ry-2W
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 17:21:49 +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 100b17b6-bfec-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 18:21:46 +0100 (CET)
Received: from SJ0PR13CA0072.namprd13.prod.outlook.com (2603:10b6:a03:2c4::17)
 by MN0PR12MB5883.namprd12.prod.outlook.com (2603:10b6:208:37b::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Wed, 12 Nov
 2025 17:21:40 +0000
Received: from SJ5PEPF000001EA.namprd05.prod.outlook.com
 (2603:10b6:a03:2c4:cafe::88) by SJ0PR13CA0072.outlook.office365.com
 (2603:10b6:a03:2c4::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.6 via Frontend Transport; Wed,
 12 Nov 2025 17:21:40 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ5PEPF000001EA.mail.protection.outlook.com (10.167.242.198) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Wed, 12 Nov 2025 17:21:40 +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, 12 Nov
 2025 09:21: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: 100b17b6-bfec-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gAuG92hq6frk7OxhbTPubusFHD4FOSGj5C4Lys8TLNBiSnprlJQAxKc/dyn80pchbhEirX4hTA+kYytwvFMNKQDCEzWXRFlT0m5Gb1FjZs4mRJVpPviGocBSR3ZiyWYeLsI1+j/Hy94LWzYS/jBH39sr3cPRtbUwOiCkZnQfJlwssSqQhaGzWtY9vDvzXcmYxN1CaY9o72BH9+gz3sxnUScQ93V/6jFDp+283+FJHvmjNrkJURwO2AzSLrl4MK2+BGGI0YLAkZn7TBzNERbIgepTbUw6FdPjetTUTVOaYTovLbl2Sm6aUF/HrYDanB95v2T+E88kMltSoKNgXezZzQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fO3LhbHyUb4uHq0X7a53YLERszG34i+96s5FCgZT1W0=;
 b=j8KAQzC2thti2YDsQ0wQQL/7JZ46kddqQQ0xXSLpoQDDWY9FQnOOS3otlLgzPCGjnpyBRkQWtaDgxXOg3pkOMRHqFVAjUg654JrmhTAu5n12fdJ0LCOj3g76sAnab5vrkgygCIzZScYbLbdXY80LGNBk55P8Avxl4anurSUhITfXqHrIIm3aglRoTTJqZ9wv9JSt3hq8s4nEZ8wk4q+E7IDWv5CXEtUBg8M3AAuZoSJSZDUQ4eYxIj1usT739M+q9JeXRA4ih9OXL8zXf/qs828Yv9FQQOrZ6v3avQonzEGWiyfKUC2f5XwDuknuT95eLQz/9yjXwxUCj9XYh127rQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fO3LhbHyUb4uHq0X7a53YLERszG34i+96s5FCgZT1W0=;
 b=iaf6up6Ooa8HPDJo5rTnNrfpM5w2KDj1p6UllTy5aKnzjtl++viZ476+k/12BO8yLjtDjCto6iRC3lqyZYI+k3NbFtUJJXqTDyYlCaUl3CyVkHbz/FGOo7v7mPn+KWSJ5eMeRdRoXGJ0SLhD7WlkLoHs38qifuWL9k16Qk7oyFo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 12 Nov 2025 18:21:36 +0100
Message-ID: <DE6W16PDQHA8.DM0FQ1YLFQ7R@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>, Jason Andryuk <Jason.Andryuk@amd.com>
Subject: Re: [PATCH 2/2] x86: Remove stubs from asm/pv/domain.h
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	<xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20251112152235.224001-1-alejandro.garciavallejo@amd.com>
 <20251112152235.224001-3-alejandro.garciavallejo@amd.com>
 <a7991534-b200-4b00-9a45-2d4c167d7ec3@epam.com>
In-Reply-To: <a7991534-b200-4b00-9a45-2d4c167d7ec3@epam.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: SJ5PEPF000001EA:EE_|MN0PR12MB5883:EE_
X-MS-Office365-Filtering-Correlation-Id: b387312c-84b9-436c-93dd-08de220ff181
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700013|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YVRWbXhIYzRxU09aRi9hRUY5blZ5M29rQytRSDlHWjhCc1pxYVlCSmlnWllS?=
 =?utf-8?B?bVdzekxpNzYzQ245eFFTayt2YnJxMFhvK0s3VllublgrNU5qVlNMM1BheVF0?=
 =?utf-8?B?TkN6NXhFankrb3M1MmdlRXhtZjhENFRmMkxqakwwanIzOFIwZU1oc2QzOC91?=
 =?utf-8?B?Rm1vVzdCc28rSnBWclRqcS9nQkNwVWtvaUJCOEplS1JONkg3M2RZT0NRNUZC?=
 =?utf-8?B?eGFpdkVuRjYyUmRGcjBsMU02RlZIakpPYzdGQUNGNkpMcE4zSHppWmlGajBH?=
 =?utf-8?B?c2ljLzhQTGNrK2lJT0s0eFVhWklqTndwR2tPQlRVS2Q1WDRuUXBCa2phUjJC?=
 =?utf-8?B?OC94LzQ5b1dES1g1MGJvTEtHaXVWaFFXOVB5RFRMN3g2REk3YTZKREJicWRx?=
 =?utf-8?B?Y0lvcGliUEF0SzhxTlFtTmFpajRVbUVvOVBpUm84bzhMOFo1NVpBVzVJODlB?=
 =?utf-8?B?VmdwT2NSbTd0ZkVyNnFKZ0l2cUo1d3EwWGtBQWdMQ1FuMGhXTHRyaXNIanBu?=
 =?utf-8?B?Y0VSUWc5ZUFhR3lDT2Y5S3piOWp0aHlwZHpmWkhOUHRpR2ZSTmlPZC9ONGc0?=
 =?utf-8?B?bHRDalk3ZzhEcEFwZUo2Q25BWkVOczFUb3F3VkV4TXRBR2FCRlJEYUcraVZs?=
 =?utf-8?B?ZXZzNTlOb1paSy9ubzhMSUhYTTI2Y3RUUys0Zzh0M1Q2MlpSbVlLb3l6aWRr?=
 =?utf-8?B?S1JzRW1ib0VjQ1RmcTFjM1RLNFFieFZxTm9YRUdLd3FnakhCZGJhL21Tb3dw?=
 =?utf-8?B?YXBsU1paZDg3ZHFQNW5pc0g2YmFWSzdVSE10RHhLVlp0ajZIN2JTNVJNNGdu?=
 =?utf-8?B?d1lFSEUyd1VFcjZ6SjhvazZJNWVVa3V5c3Z0WDg1SzZhUWhBY2M3ZzVXZ3dq?=
 =?utf-8?B?OWgzdmx6MUpVRndCQlBCOXRFSWwrZmQraElpKzVyd1NCbGRJRE91MlZTTGg3?=
 =?utf-8?B?T0dBa2VITG0rRlprcEprYmJYa0NsVEVjZU9iTmZBZldZNnNweDJnZkY4V0tI?=
 =?utf-8?B?TUptck1QS2VENjZQZWxOUGNZeGo2cTVabWtaa043RDhwM2gza1F4MFlNY3Vs?=
 =?utf-8?B?Wm1IMGxjVDRGSmI4ZW5nNTNDZm9Dc2F5YTJFdGZRMjJQUk9mbkw0bE5hYTR5?=
 =?utf-8?B?amxqcUVSQTVHaUJNRDkvQ2dlYzduakNtV3lyWDNRY1hFL0dHNDlYWU5oZ1VU?=
 =?utf-8?B?alN4VkdsVklnTXhVYldoTmFRMDlpL04rM0hwamUvcGZhK2pXSHNWc2ZITzVi?=
 =?utf-8?B?WHFwN29HQ0cvR0pCQzd5cmdvSExXOWhrTEVLVWxpUEI3MnF1a1c0U203ZjRv?=
 =?utf-8?B?SUoxMzhId3RRbU9PQy9pMC9WOFREdmY4NVMzQnBmbFVhcXR4SHNNbkVCcHdY?=
 =?utf-8?B?UkxRSjBWdkVvaTNGMEloR0dBS1JZMHdSbW9mRisxZ3EvWVZPZzRCeDE4dllB?=
 =?utf-8?B?enhSTzF4bFR3RWVnZmdtSVovVmZzdW9QVUxYMVd4elVYL1NVeWNvKzJzcUEw?=
 =?utf-8?B?QjR6R3ZRWGhIeThMNWh4RmVLVnV6UnQxNENXdy9Fcy9DdTNDclpCRmFaNEk5?=
 =?utf-8?B?ZHJyUXpUcjJ4ejUzWEVsVUc3MVFtSGhCK2pmKzJyM2NUOGZQRW9rZE1jd0V1?=
 =?utf-8?B?Z2I3VjFxVDNOc1JrYkV0OWYzZ1ExaHRrWUVQQjA0TTU2dHJYZEUvcG53cDR1?=
 =?utf-8?B?SjZOa0dqeHh0QndxVUhGek53YmdIM01QVEhnN0g4WnBpY2VMMjBCYmk3VURN?=
 =?utf-8?B?L2gvUzduVVpJMkxFY0pjRGZKMjhXK3p0dGZ1Y3pHamJYc1lKVyszZW5WY3A4?=
 =?utf-8?B?ZkZMTEFUWjJCSTZ3VDlEbHF6dkRCdzdmNndEaWY4NWdUcFFWcmdzTkZIc1dz?=
 =?utf-8?B?Vm4xbkxpa2w2NUU5eU12SlJvS1JabmE5TzdiUVlkcU14cmM5WUMyL3krencr?=
 =?utf-8?B?TjhkU3NUQnR0clhVQXg2ZjYzWWQzQXRQQ1FrZnQ5SjN6c00zZVA3bmoySlU5?=
 =?utf-8?Q?FbTmhomRuiIMUPvXwFfX2rVQ1fsldE=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 17:21:40.3501
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b387312c-84b9-436c-93dd-08de220ff181
X-MS-Exchange-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:
	SJ5PEPF000001EA.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5883

On Wed Nov 12, 2025 at 4:56 PM CET, Grygorii Strashko wrote:
>
>
> On 12.11.25 17:22, Alejandro Vallejo wrote:
>> They are unnecessary. The only two cases with link-time failures are
>> fallback else branches that can just as well be adjusted with explicit
>> IS_ENABLED(CONFIG_PV). HVM has no equivalent stubs and there's no reason
>> to keep the asymmetry.
>>=20
>> No functional change.
>>=20
>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>> ---
>> I'd rather remove the "rc =3D -EOPNOTSUPP" branch altogether, or replace
>> it with ASSERT_UNREACHABLE(), but I kept it here to preserve prior behav=
iour.
>>=20
>> Thoughts?
>>=20
>> ---
>>   xen/arch/x86/domain.c                | 10 ++++++----
>>   xen/arch/x86/include/asm/pv/domain.h | 25 -------------------------
>>   2 files changed, 6 insertions(+), 29 deletions(-)
>>=20
>> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
>> index 19fd86ce88..0977d9323d 100644
>> --- a/xen/arch/x86/domain.c
>> +++ b/xen/arch/x86/domain.c
>> @@ -571,15 +571,17 @@ int arch_vcpu_create(struct vcpu *v)
>>  =20
>>       if ( is_hvm_domain(d) )
>>           rc =3D hvm_vcpu_initialise(v);
>> -    else if ( !is_idle_domain(d) )
>> -        rc =3D pv_vcpu_initialise(v);
>> -    else
>> +    else if ( is_idle_domain(d) )
>>       {
>
> The is_idle_domain() wants to go first here, i think.
> [1] https://patchwork.kernel.org/comment/26646246/

I'm not sure I follow. I inverted the condition in order for the PV case to
become the fallback "else" and be thus eliminable through DCE.

>
>>           /* Idle domain */
>>           v->arch.cr3 =3D __pa(idle_pg_table);
>>           rc =3D 0;
>>           v->arch.msrs =3D ZERO_BLOCK_PTR; /* Catch stray misuses */
>>       }
>> +    else if ( IS_ENABLED(CONFIG_PV) )
>> +        rc =3D pv_vcpu_initialise(v);
>> +    else
>> +        rc =3D -EOPNOTSUPP;
>>  =20
>>       if ( rc )
>>           goto fail;
>
> Actually, if you are here and have time and inspiration :)

I may find at least one of those two :)

> - if ( is_idle_domain(d) ) staff can be consolidated at the
>    beginning of arch_vcpu_create() which will make it much more readable =
and simple.

Good point

Though it's subtle because the idle domain has wacky matching semantics
and there's many exit paths. Let me see if I can make a clearer version
with that sort of consolidation that is not a functional change.

> - mapcache_vcpu_init() is PV only (->pv_vcpu_initialise()?)

This I shouldn't do. It's PV-only only temporarily. The directmap removal s=
eries
(in-flight for a while now, but ought to make it upstream sooner or later) =
makes
it also usable for HVM when the directmap is sparsely populated. I'd rather=
 not
generate more churn than I have to for that series.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 17:34:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 17:34:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160414.1488560 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJEjF-0006f3-4H; Wed, 12 Nov 2025 17:33:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160414.1488560; Wed, 12 Nov 2025 17:33:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJEjF-0006ew-1K; Wed, 12 Nov 2025 17:33:57 +0000
Received: by outflank-mailman (input) for mailman id 1160414;
 Wed, 12 Nov 2025 17:33: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=EiA8=5U=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJEjD-0006eq-Hq
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 17:33:55 +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 c28d01f8-bfed-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 18:33:54 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by PAVPR03MB9824.eurprd03.prod.outlook.com (2603:10a6:102:31b::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.16; Wed, 12 Nov
 2025 17:33:51 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025
 17:33: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: c28d01f8-bfed-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Vi6JlBdCgIAlahhrtpvsG1nJjxCJ+KDvlwNyvmo0vyinG66wC0Vgae2hTT25Eg+QccFNhTqnwzUFTQ7xI/cWHVC04dEOu5pv/FdiDv74iCUkHD8J4OwLp8oowmz+SyBXJte3bi76v0CEzG39YAnvgpkuZhJ9m9vOFiqrLgmFK4HDp61ixkWj1XTGg/G1iBnIZDVQn1oFa10lMH9+8mcSR/dkDMl0NEhTwgy/F+8kjIwZQJiHHcFXteWFIZO2pOZbwHGh3nwGiXfj4mAlXSCBDooa5NrVno3wltVygxFCHUAtrNnFvkZeBCdwrMBx1UKP8Ae/JNyoxTgvu2V3JOZt3g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fbcnMpmu8fmXTvUYdsKN65HOyD0JP0Ynz/yfKg8mzCo=;
 b=CIsWG68v9HEg9fd02fylvVhBMowAPhCJ+Tc9Cz0EO244sLI/YLjNSixhIYWBo9Ee1pUrta9z6HyarCPrgZAvSofWRyuOLcaa0hRlOpgrATcnn0sYd9Oo7ef0JktvPujf5YoDGvYFydu30KyPmdomOQAmuSczooo+quDufHCtnTOzIU19chPzJLnWYTo1pQ7ooZagWhtKw/7IjBQqyt2g+aYHqKa3QcVgQ8Okw6ezYjNgkLgIYvzQ8gwEOY6/86mMskkbb184JwiqpmjZrMAhghighJvspOxw7zcbopQObqB2mtWgS9e8Ob/Z1rf0n49xyQfXHM4OOfLjkf1NmTJcqQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fbcnMpmu8fmXTvUYdsKN65HOyD0JP0Ynz/yfKg8mzCo=;
 b=GWTM8NJ850Vj0QD2vojwYHCWsGJ2+/yZTxjAgBvsFjVohEcaHyYcFCAkmwlqzLvARuzmPFOnu3vTtRk7saFGc5T43/78OYKqe9BhEr8X1v+Z2n9EA3i5IrivVlzvExHC1L4WIXRkJws2HQTj1JL/fsLAG3DE9t7orzfFXW/95J+LsboiCbY0vAdp8mcHkL+QmCilf6Z/HGpbPVFz5IJPmVY0NRKgJ8L/yjQbeJV6Z8L9GjYt50yJw7MoH8dgNMpc1cBhxtulc8TENNA/GSm4jsmga013PsRWejPCsuDqAjMhpEbH+A/mzP5GshnK4suw1nqxxErCFlpnwry1wk4Wbg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <1ca5880e-b0d7-4539-b265-35848fe37f25@epam.com>
Date: Wed, 12 Nov 2025 19:33:40 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86: Remove stubs from asm/pv/domain.h
To: xen-devel@lists.xenproject.org
References: <20251112152235.224001-1-alejandro.garciavallejo@amd.com>
 <20251112152235.224001-3-alejandro.garciavallejo@amd.com>
 <a7991534-b200-4b00-9a45-2d4c167d7ec3@epam.com>
 <DE6W16PDQHA8.DM0FQ1YLFQ7R@amd.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <DE6W16PDQHA8.DM0FQ1YLFQ7R@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
X-ClientProxiedBy: FR4P281CA0030.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:c9::7) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|PAVPR03MB9824:EE_
X-MS-Office365-Filtering-Correlation-Id: 388cf03c-3882-4060-b582-08de2211a52a
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?Rng1OHdaV0lEcUpreGV4OEpNb2xwZGY1V3JzYVdjcTVyMjhSZ1ozTmpLREFm?=
 =?utf-8?B?TmdpNmdtTXdxZUN3WHlyS0Y3MzUvWXFSWG1GZTkxTU12R3Q5bys2OGhGSzVw?=
 =?utf-8?B?bGkrUjhoakhJbkdHN21ZNGpGNGJ2MGFEeDlTZ0lLL1pqN3JYazRwdHQ3cTFT?=
 =?utf-8?B?YVVxcXg0UzVGeDVCV0lZUTFBRGNtZFhxV0Y3d2FrSHdBZ0JoU1lRdEU0Y21s?=
 =?utf-8?B?Z2tDOFE3R0h2ZnVpYzg3aDl5Ky9SdkhGdzB4S3hEb0MwdDBrQ21XN2QzQTZp?=
 =?utf-8?B?WjB6Y1VtSFIwbVpsbXliUmtRVDBCTGJlRjZuQ0taNzcrTFFQRndWd1pXazRO?=
 =?utf-8?B?RWF4UnA5aVdaT0hIZXdMSVhtU3FQa21KeUZjMXQzSUhMRElTOHJWMjhrb3B5?=
 =?utf-8?B?NnVLSHhQTWxDZkU2TGNZN2pCc0xkS1ZEbGN0L0NpR1BPR0FsOExtTHhtc056?=
 =?utf-8?B?bkwrTFhpSWMvd09UeUo1L0lvb3ZhS2JIcFlybklnSEEwMEdwWTlzT2pQNE9V?=
 =?utf-8?B?aU9mcWhlVjJQeVlWWEx1eVA0Z0JBNURkMEZvR29oWHJzK014MnpYS2xqc01r?=
 =?utf-8?B?U1lUa2gzaWJmaStZWEhxa0xCT2xCdk5Nd2V1dzF6c0ZIWnRWZjVqczdQTEln?=
 =?utf-8?B?UmFQdHhJVFBTWWpBd3Bzc3FPVUdhQ0lEVkx2RGhkUVUzY2pZdnMrUWIzQjAx?=
 =?utf-8?B?NlF2bW5BMENGUFhXeXUvOFljN05EeU9SS0tiUlc4b2lub0NYazB1ekd3ekhw?=
 =?utf-8?B?aU9OditmWlRrc3dNVitoVXluOHVOaitBdFdNZ0c2TXlkQW4zNCsvZEMxT0dk?=
 =?utf-8?B?MjZQU3pvY1dzd1J6clNjbFFLL0I0c1hFREZRZE9rWVplN290Mk8vK3NSdFJi?=
 =?utf-8?B?Z0MyVUNwOFRrWEYrbzQ4ZzBBVUVKWUh1ZUVFc0sxY2NGVGlSMFlwKy9YYmlL?=
 =?utf-8?B?aGVPSGhabGEyZEFqZ3IrU0pOWTRKbWh1eFRTM3NhbVFJSHM3VEcrUHVUNVNw?=
 =?utf-8?B?NHBQNzNhRnowTFBUcTRNVW9jNWVlRmMrNEd2VXB0cEVwOHQ0TGhDcEVFQ0xO?=
 =?utf-8?B?M3lLWEFoZE1XclFIdFp6R0RBdVphMW5VZkVsQ3FHT2ViOG5qQzl4dkwrQi9H?=
 =?utf-8?B?OFZ5aldzQkx4UjZMUG4yK04wdDNna2dwMkJGTHp0cDR6SWdXNE8rcnpjU283?=
 =?utf-8?B?REhZNHNKOHA1MzAzTGlLcGtZbVo1akVPRUtuTGczYkJ6UXNBTEd5QjY1Q0E4?=
 =?utf-8?B?S2lCUEpHUFlGT1lxTjZTcU91UmxrWFp4b3JiQlFURUlqQjVNeDdEL2ZsOWFt?=
 =?utf-8?B?c2NEemxMcUsyMnd5N3c1eTJqVDNwZUNZSzRPMjg5MURwWE0xYSsrVnpST1E4?=
 =?utf-8?B?Q2VHLzFnaVRuL1Q5SjdJdmswS01wMHR4bzNzaG1FZW4rSVU2QW1xNW1OZmRJ?=
 =?utf-8?B?d3U2SENWeklxVXRkbDVmcUYxNW5aSElJMFlhdXI2QXdqZVM1NkJYRFJORW5u?=
 =?utf-8?B?c0JsNXFqWURuY1pSUnpEcGdrY1FwWUxRZlhKMm53dVd6R05BNVE3UFVvaUkz?=
 =?utf-8?B?YWpLenpnNWFSSXZqNWEwb091Lzh2QnFwb04zMFdMT2VESDJQVC8rTzN3ZEoy?=
 =?utf-8?B?NDNnbHdVOFFxRjBxSHF4TllINXdxMDJmWDJhRmxmOURJN3V6NHYyd0JlOXFp?=
 =?utf-8?B?ZFo1Y3Q4eG9mc3pCQkVieHlYQTRFL1BnOWtMVzJCdnh0REFiZnRQeWdTS05L?=
 =?utf-8?B?Uk05WG5tT1RxVkIrMGNwbWt0bXNQMXM0bGFleCs0bnpMSTNORmJUeFJpRzY2?=
 =?utf-8?B?RXQ4MVE5S1VldkoxelNlSUhqWXVkbHBoTG1POCtoM1NzUE4wOG5iMlUydzVz?=
 =?utf-8?B?ZndiSFFyZ3Bhb1p6NDEwM0htMmhPUnhHVzFTQVZUZGFJK0E9PQ==?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SmUzeFZPV3M4dFc4M3RBdFpGYTlNVVc3NVBPaFo5VHlCUmR1TTZtUTFoVmtF?=
 =?utf-8?B?RitvUEhwZW1JQ0V6SC8zQVNuWnNVK3AwWUppN24yTXVmMWRIcHRzT3ZjSnBR?=
 =?utf-8?B?WmdrcmR6VDFyblRnL0FwV2pSakM3MDJ4N291aCtqZ1BnSTNJVEtDWWlqTmNZ?=
 =?utf-8?B?cmxWTEhzcHFvQ0RzQ2pUSDlOZkJVc293cVFpTmFWeGZRaGlqZ3lmRTlZYURy?=
 =?utf-8?B?eHlPM3QyaGFDblZKZ0NVWjArL1E0RXByTHVUaXRNbDVLcW5jbzV4ci9rQWFv?=
 =?utf-8?B?MGFTcDZldXR1cW0ySnk5Z3VWUlo3WFNXMncyditFYzNRKy93VmNac3I3VTJa?=
 =?utf-8?B?WXJha1dSYkMvU096MjUyZnJFMlpJMFNUbnNFRUpCSkZlTnJ6bUNhSTZOOWli?=
 =?utf-8?B?MEJVbFZRVEl4MENlc0M1VTB2WmlLRFNCbGpJQXVtWHlFZ2tkZlRZMW9wVS8z?=
 =?utf-8?B?dytza3ZGa2p2eWxldUN4Zmw4NmlvSnRPeDNxbWErQWd5TzZkZnhrT2FhczN6?=
 =?utf-8?B?VDRmR3VFT0lUUmlBWGlBbi9oZnFOclBsVXR3QUdNN2xXSllXcFQ2aytTdDFS?=
 =?utf-8?B?N1BhOE56K1lqcUN3dTV2QVhCYU83QzJiU0ZsM2hsUENHVkNIT2dVR3BYcXVh?=
 =?utf-8?B?WHJXK2RnMjAvdkZjSms0MEtNc3hDalJxS3JHcnBaUmRjVldFL1ZQWCtoZHYz?=
 =?utf-8?B?OFBTSHpWaWgxMTQzSXNNOFNIZzRJNUR6dHg4ajlDZXNkcWRRYytKNlo3UkYv?=
 =?utf-8?B?NU0vQXhBV1pGTFVPYTVMMUhlZTZhcU9oWnFKcjcxdGxtY1Q4UnBaa1FKdG9m?=
 =?utf-8?B?czdMVnhqalVNSWVoRXRzazRRaDAwVDFVa2dXK1pndVFMcGlhWDc1cC90NnRm?=
 =?utf-8?B?ZVoyWTJXU1VKMUNEbUVFbWRGbUpGZExvejdCOC9CTUZXR3pNWnVDN2c4TDNN?=
 =?utf-8?B?QnpqcnJ0RTI1Zk1Ud2Nod1p1eEdkQmw4S2xMSC9nL3RUTGNsc3AwdlhPdWxG?=
 =?utf-8?B?SFdRZjlRTHNqVHF1d3ArdTREMFhuK2ZOU0JXS3BOZXAyNk4wN2xUQWdTOHBC?=
 =?utf-8?B?QklvL281cExyUXhoQllqdk0rcTNtSk0rcUJXYlhvT0xVd1p2WlM4Qlg1eU5v?=
 =?utf-8?B?a1hDTzF5YVdpSmdIdkM2cGMxS2tFMjhSU2VCK3BST2VFb0xmZ3gzSWsvQ1Ni?=
 =?utf-8?B?R1Z6QXVoM2s5Nm5mdVpkWmV3bm1rdWZ1Skg2WEFGVThsaGFIUHYybytERmJF?=
 =?utf-8?B?MVZ5cE9LdmNRRnZCdTZBME1TaitYRHdla01iY2R1YWp4S3d4dFZpZ3VkMzh1?=
 =?utf-8?B?TXQ3WVlKb3dLMkZlTUdEUlFZejNGM3c0cUg4QkozcitRTGVXdzhPenc0WTVu?=
 =?utf-8?B?eU54MW0vcmd3ckZ2SlM3NnZ5TXlKa0VLaDVxQW43ZHVUL0toZ0ZQc1crM0ht?=
 =?utf-8?B?d2l1L2dLU0V6WjZNNWRqVG1aMFloRWpzaWZmOFI0UUdSbi84TUpMUFF4ZTVC?=
 =?utf-8?B?TkVGZ1BycVl5amozbi9jb1FqWlJEOFVobks5RXV6akhQZ3hFTTdPMEd0NXVN?=
 =?utf-8?B?cE8vMit6ZzFUSFJESVBQN29GUWdtNGh2a3QyUHZpa3hBZFRGZzNKdW9UbENP?=
 =?utf-8?B?ZklrYTZzb2RyZ2k1N2RuRGUzSlU1WGtiVktLZnpMOFNtOGs2cEZtbXJOTW5o?=
 =?utf-8?B?ZWZtS0xEcmxLVmhURWMvUWxMUW43N1p3SlFPU3BVdncyN1VJUmk2VVpzc3RE?=
 =?utf-8?B?NEtpNEtocS94eE10OVpYMTVSUWRTaEtNZzExdmVTMmg5bVM3SlJsWno1d1Uw?=
 =?utf-8?B?eHMrdVdkSHdLUGcwNDJXR0ttRGR1NlpRTTYyWnd4SW5CWHhRNE82STdjUFl5?=
 =?utf-8?B?VTNGTjdXU2wxQnhEa2IzM2hNQkRVQUFyYmVNUTd1MVFTMW8xakNaMnFzVGlx?=
 =?utf-8?B?S1UvNEJtVWN4aElEbkF1aU5nOG5KTlFhaE1xUjlmc2o1RmU4bmhkR210ZW8v?=
 =?utf-8?B?NXNWRUZsWmx0S1Uzekl3bzkwSzNEd3JsZXZIOHRvSk5CNTY1M0p3UitOU3V5?=
 =?utf-8?B?UDQ3aDVKaitrWFRLOGJBYVFtbFVVKzdxdkRmVlV1VllJd3dYTGd3RTRBRmYr?=
 =?utf-8?B?c3B3VVc1b2pYZEJoN2JoVFNLTlg3YWd5SHdMUC9BUW0vNWtwL2pRbHRNMWo3?=
 =?utf-8?B?cWc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 388cf03c-3882-4060-b582-08de2211a52a
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 17:33:51.5159
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: AqPH2rTOyODGK/zYis+fLDHKJHfSdjktN6tu+XuX0ouSa8wliR/21wcdQsGVggk4/ks8H38r4jebttUE7zlHZdf8HBVtpK5w/KiyCgrWW48=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9824



On 12.11.25 19:21, Alejandro Vallejo wrote:
> On Wed Nov 12, 2025 at 4:56 PM CET, Grygorii Strashko wrote:
>>
>>
>> On 12.11.25 17:22, Alejandro Vallejo wrote:
>>> They are unnecessary. The only two cases with link-time failures are
>>> fallback else branches that can just as well be adjusted with explicit
>>> IS_ENABLED(CONFIG_PV). HVM has no equivalent stubs and there's no reason
>>> to keep the asymmetry.
>>>
>>> No functional change.
>>>
>>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>>> ---
>>> I'd rather remove the "rc = -EOPNOTSUPP" branch altogether, or replace
>>> it with ASSERT_UNREACHABLE(), but I kept it here to preserve prior behaviour.
>>>
>>> Thoughts?
>>>
>>> ---
>>>    xen/arch/x86/domain.c                | 10 ++++++----
>>>    xen/arch/x86/include/asm/pv/domain.h | 25 -------------------------
>>>    2 files changed, 6 insertions(+), 29 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
>>> index 19fd86ce88..0977d9323d 100644
>>> --- a/xen/arch/x86/domain.c
>>> +++ b/xen/arch/x86/domain.c
>>> @@ -571,15 +571,17 @@ int arch_vcpu_create(struct vcpu *v)
>>>    
>>>        if ( is_hvm_domain(d) )
>>>            rc = hvm_vcpu_initialise(v);
>>> -    else if ( !is_idle_domain(d) )
>>> -        rc = pv_vcpu_initialise(v);
>>> -    else
>>> +    else if ( is_idle_domain(d) )
>>>        {
>>
>> The is_idle_domain() wants to go first here, i think.
>> [1] https://patchwork.kernel.org/comment/26646246/
> 
> I'm not sure I follow. I inverted the condition in order for the PV case to
> become the fallback "else" and be thus eliminable through DCE.
> 
>>
>>>            /* Idle domain */
>>>            v->arch.cr3 = __pa(idle_pg_table);
>>>            rc = 0;
>>>            v->arch.msrs = ZERO_BLOCK_PTR; /* Catch stray misuses */
>>>        }
>>> +    else if ( IS_ENABLED(CONFIG_PV) )
>>> +        rc = pv_vcpu_initialise(v);
>>> +    else
>>> +        rc = -EOPNOTSUPP;
>>>    
>>>        if ( rc )
>>>            goto fail;
>>
>> Actually, if you are here and have time and inspiration :)
> 
> I may find at least one of those two :)
> 
>> - if ( is_idle_domain(d) ) staff can be consolidated at the
>>     beginning of arch_vcpu_create() which will make it much more readable and simple.
> 
> Good point
> 
> Though it's subtle because the idle domain has wacky matching semantics
> and there's many exit paths. Let me see if I can make a clearer version
> with that sort of consolidation that is not a functional change.
> 
>> - mapcache_vcpu_init() is PV only (->pv_vcpu_initialise()?)
> 
> This I shouldn't do. It's PV-only only temporarily. The directmap removal series
> (in-flight for a while now, but ought to make it upstream sooner or later) makes
> it also usable for HVM when the directmap is sparsely populated. I'd rather not
> generate more churn than I have to for that series.

It's all up to you.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 17:43:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 17:43:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160427.1488569 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJEsZ-0008Tv-0e; Wed, 12 Nov 2025 17:43:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160427.1488569; Wed, 12 Nov 2025 17:43: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 1vJEsY-0008To-Ty; Wed, 12 Nov 2025 17:43:34 +0000
Received: by outflank-mailman (input) for mailman id 1160427;
 Wed, 12 Nov 2025 17:43: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=EiA8=5U=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJEsX-0008Ti-Dh
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 17:43:33 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1ad5a67f-bfef-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 18:43:32 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AM9PR03MB7092.eurprd03.prod.outlook.com (2603:10a6:20b:2da::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Wed, 12 Nov
 2025 17:43:28 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025
 17:43: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: 1ad5a67f-bfef-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EI/2DnmMa07WqBfFT3nXpVxDqc2mdp9alat+poPT4hGcYSSZCBukt/6F6c6Cs9HRUn9ilwivcpQeTXFq2hfRWED9NjTbnT5kqxn2BMjuR60u6kGM6RUW1v0bHBSv/pA9Wk5UW+47hgK1YmxsXFTcwkWx3mOveei9ldDWPHInW4vPwnyvDd4J9f63/9eDXp9tRFXsS+/PNfD86bPUHyHPtr3CSzzfCT//B1OuOWFH9OYQ/kLcJFw+WVhU0F56Nt6Bl1Co7INTNXf5+bNwog76WxGNsBBrzOt2UMOpdD/17cXalYL33nTYM7wURNF66sMoZj24BIE+tiYVpby05zAavg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zgXVSZKXyuLA2RhHH8YGNr86VFo+6JSzHJCAS2d3nYc=;
 b=FCy6ODgeZx9r3vCDdnxSF1tnAi3JEGcHBO/7IgP0OXP3TbG3tkStKKhgSeFf78CgjDZlh5/IS+B6b0/q+6I7Pd+d/Ow70TEAe4ppJnp+fSyH2hZhbmCU/uuyWMLpKARk7cPmLtJYngCm2KKH/biyXwgBCneaic03hDd4AQa7X3YMKYmxfiV9MO8YICdk+nRsP7C/3720ndIQ4k7GXtGufrqUjt3W8U5W4V8tI4UbDSg2QrTDv6C2fQgcsD7ZyZbqQijS82ByFYMEBWSW9QXZvSc/1hxJI2GQO4Rn2nPxsSjruPK2saXSscjHBDDqSOsCuhrgIHjYoa61om4/rsEU0g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zgXVSZKXyuLA2RhHH8YGNr86VFo+6JSzHJCAS2d3nYc=;
 b=I03BWNy1FNCzDHGfdxCw2yJZHhrnS1pYp5FXVVrIn5dSipKM44/y1OhlaM4th9Finu4CotIQ/ctv3gAS8/AyA03mNirTOd47EO/L2z0YlZWINgCrKFi7RLoXive2lPNrAiNMDhZjCX9kTyHqlkwxv5mCx7/MkzmIDSZ9hj543cxXnv5CdfxRR+SBLN10wQ5PoqGf32y9MTgV4tq36g/4U+Vrto2HXz0lYtzUtC7hDsyU32SLcIFGG8c1WymIAxrPiM+W6Tm5gKzlYYW0nfzvyyNLuYGEcCcupuAbg1CveMKYb1JTRX3DSql1CDUuChMUgBJuPwsiOprpQfdVekx2MA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <51f5ea06-96aa-45f7-a90b-50d7be1c10cd@epam.com>
Date: Wed, 12 Nov 2025 19:43:26 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v3] xen/x86: guest_access: optimize raw_x_guest() for
 PV and HVM combinations
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Lira, Victor M" <victlira@amd.com>
References: <20251107181739.3034098-1-grygorii_strashko@epam.com>
 <47f86a44-007f-4b90-9656-b2440238b2ba@suse.com>
 <f0a5a939-7d66-417d-8a88-34cc172623e6@epam.com>
 <faab050f-677f-469c-8bca-93c55a53165c@suse.com>
 <a858cfd2-c6cc-4ed1-bb12-8cad488f4542@epam.com>
 <be5586a8-bb32-448f-b249-538d1b65f626@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <be5586a8-bb32-448f-b249-538d1b65f626@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR4P281CA0150.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:b8::16) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|AM9PR03MB7092:EE_
X-MS-Office365-Filtering-Correlation-Id: 90f520de-2d3e-4976-02e5-08de2212fccc
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?T0xoUjJ0aXZUamsxbFBoK01hUlQvUnovUTVpc0R0MlJrT1FEUHR1aEtBM295?=
 =?utf-8?B?aTFGU3NwQ0NzeUFCNmRreE50V2FmVHRxWStLNllDdWFWVG12c1FNcFkyZ081?=
 =?utf-8?B?KzRzcWtYbFA5VCs5OGZ2Uy84Q05uODJxeTBFSUJ4aDlCZzVzVHhVTVNWMDRX?=
 =?utf-8?B?Zi9TOVZQbXAvY3h1WG5IK3I5QlFaNzh2MU9LU3FLUW1DNlI1TGh3TDFaTk52?=
 =?utf-8?B?bVc3KzJaSkNUUVVkOHJqVFltc1BHOCtab1dhZ2RQbndRYlRPeTBtalo0OUlk?=
 =?utf-8?B?aXNGaXlVMDZ0NWlhblRXTlloVDJFdzUrS0hDUDFxbFpGc3UyNjNXOGh2citR?=
 =?utf-8?B?YzM5ajhIUi9XTFN6VTR0SERXQnE3SXdKSFJaQWk0dituK0VQVUc2RDZlOVZF?=
 =?utf-8?B?WXRvUVpERTV6blpuVC9tRngzUFBwZURBdnNVOCt0eFpPWldmREpjbHhTYVJt?=
 =?utf-8?B?aHNNM2lZVGlvTVNxTmdma2M3SkxkYk1JT3NGU2pGNkV6NE5namt3S2Y0S0Mr?=
 =?utf-8?B?NjVWSEtRcmVsRFFGYVdOYzNUaVdIemh6UnN4cjJpUWY1OXlxS00wTlF4aSt1?=
 =?utf-8?B?d2dISW5QMEFKeVdIR3NMSXl5WVVydmFDMGZFYWVzVUI0bmE5UEptTnhOL29H?=
 =?utf-8?B?TlFtNUxUdFhtTE5sSVpBMWNqdlVWcGo4Tk5NSDVCaHEvVmVrS1NkWFR6YlNa?=
 =?utf-8?B?YXFxckJGcHdPb0xRUDE1MExBakxjWFcrZWk1V1A3cmNubjl2cGZSZ2xneFhy?=
 =?utf-8?B?cjMxN203cnJFMi9nWlN6OTVwWDhad24xN2dNK3FvakNDM2FReDhqS2pHWnNs?=
 =?utf-8?B?bnJKcW4xV0lZSlA3TG1ZaFUzYXJ6Wi9rdkt5NUhnYWxTU2M3VldZN1hyK2JF?=
 =?utf-8?B?dkFDK3kzb2ZQaCtwWEV0M2lwQ0liYnBNWmZNaWZzTUdURHJvL2NWZDZlWmg3?=
 =?utf-8?B?L2NEVS9SOXhrdHJxTzE5ZDJnbzBsYXlMUnBIZlNpdCtaLytNQUI0WFhJRDE1?=
 =?utf-8?B?T1dIODhYR2p1OEF0SWRJR3JXanhId1JYQW02RkpVTzQ0Zzh5UjlIUy9zNG5X?=
 =?utf-8?B?QlJ5RXJPdTlLcUt1bldUZGs1akpEbG42ZHA5YlhEUmJ0cGNFVCs4R2l1aGZY?=
 =?utf-8?B?YUNQZFIvaXFmVHJTWXpoZkV5R09OdkVVdG1PbTc0aExBbmkwQVl5R0szUkJn?=
 =?utf-8?B?RG1jQlhrR3FWblpUU1lzSDhPcFViWUFCNW9ES0N1QisxaWxFU2c3SWdmNDc0?=
 =?utf-8?B?UGVmWVFUcGltNlA2Wk5kTyt0R2NEOEZvQkdmeE1BU3NnbWgxMnkvOVRGamRi?=
 =?utf-8?B?bys1dXY5cUdKUUlFam50ZXNvd2hHU3U2Q2tYSGxzaDdzaXU5ZkJlek9TeXFn?=
 =?utf-8?B?UnNkcEhnYmorK3FaT1laRHB6UGRBZGVYQ0NNcHZVcTFrU2NKazdXRWthMUxq?=
 =?utf-8?B?a2wydHRDNEdwWUgzZmRNcTFsdndrcmIzR0tPeklGK2JQL3Q4czU5VmlPUXlC?=
 =?utf-8?B?UnEzOGRxMldNV0tReWpGaUlxWFBQem1LR2R6VVVUSmRzNitjN0pnRlk4SXFh?=
 =?utf-8?B?Ry8xTGVPYTA1L2EvMFhXci92WnkzaUlYS1lhNnM5bmZoaUNXZUc5QThCN0Rz?=
 =?utf-8?B?cGJqVGhJejRicE02S0toVWZXOGtzN01mN296MGtISkE1NWkrdkMySE4relBE?=
 =?utf-8?B?RTZSMVdKTEpkQTQ0VHlQcGQwelRZZWtuY243enNqR0xsYmJWRTdVaFpnZWZK?=
 =?utf-8?B?ZHhLdjBLbWtXN25hUjdJVWpKazBTOUcwVS8yODU4aURlL3JxMDM1T0lOeE9F?=
 =?utf-8?B?dUtGQnR0eWlrMXlIYjBHcXdlKzB1VW1EUEJqOE01VTd1TUd0MVNiZU9wQUY3?=
 =?utf-8?B?QWFXa3dyYlZSdkhkbXp4YUVLbDNnazdXMHZveXp6bCtQZGtGVXFXNDRwSHVL?=
 =?utf-8?Q?FDwVE4DUvlpPbJGNDjJLQtj2uJmG7bWd?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TTh4ZGE2MTZjMjZGVFNoOHJTY2EwSDFwOVJIMk11ZUo4OHNmRC9qNVpSaEo0?=
 =?utf-8?B?c3VhMCtwbUF5bzllVEsxOTBXNHdENzZBZE1UanNSK0tNM2YzbTRUdmtVc1l5?=
 =?utf-8?B?SXA5em1YQWFhZlFIMXJuYUhYTmE2amk1a2hRNlZFV2UxZTIraEVOV01DbGRn?=
 =?utf-8?B?dHphVEhTRlVYQUpDZFRvQ1dzN0hKdXNZWEEwL09RSXlMbUVuTWNTTSs3WHpX?=
 =?utf-8?B?U2EvQk5TVVdhSVM3cENwK0psL2FRL0RrU1hlMTRYWUpiWCt5dkMvUUdCM2ZS?=
 =?utf-8?B?Z1g5VzZ4YitjODNXM2RVaTNKY1VBWmF0aE9yNlAyMzg1bTAxV1p0NzhRdmtz?=
 =?utf-8?B?WXltc3kyMXYxd280Z2VnSzkvZHpBRlNEOURlUXZMQUNXTVpDVTFCV2laRitZ?=
 =?utf-8?B?QVcySEl3VjdrWnViTWdKZjlIZ0tyQTJvOHZrWTNQcDNoRThCSVZhcTN5TUd4?=
 =?utf-8?B?ZGRjVldDT3pnVWFweDdjMUZNSXlWcEFBV2tWSHVscXc4Wmt4aFE5Y0w3SzVj?=
 =?utf-8?B?dlVOMFhKNkpMNEhwdUhYLzFJdFAzTzhWb25JMkJlNzgrbmRabDZpMVU2TzBI?=
 =?utf-8?B?SGdSck4wcHB5NDduVldMaGdzY1h0azBYT3MvZ2VBYS9KMjZieTE3NGxoZGZY?=
 =?utf-8?B?VjVoSW1KNVB3eDFCZFNIemZPVlRpL21iem9EcmxPZTdMcFZUelo4T2t2dW9x?=
 =?utf-8?B?bkNaNEQ1RFpxRjltQWJhRGVlS1JuOVNKZE1OcGRqNWlubjZyQ1hUTC9CYXV3?=
 =?utf-8?B?YVVxblp4cWJiTXBadVdDSk51NnRDVWtnOUk5UWdYYlNxcEFDM21hWVpMSXdo?=
 =?utf-8?B?MUUrSVMrbVMwOGcrZDNVVm5VR3U2VDFCM3IvZzBpbE5mQUIxYUlBRmttSlhh?=
 =?utf-8?B?NTJwT2swQXhlZDRkSk9uQUFnMlczYUE0dm8wSW5sLzZhNjJodGwvQ1BkRWV0?=
 =?utf-8?B?bHc1SDhkMXA2NzhIZ0swb0FpNU4zeExZenhWQnJyVEY2VVZoREJ0RzhUSTNt?=
 =?utf-8?B?SzhnbzlacitYeWpXckxOR2J5aDNsL0YrOTdTM2FLcVo1UmRUVXUwSzUwZVFj?=
 =?utf-8?B?d3dPM0xXWDVtYkJGSEhwMUI1UWZlc3FBbms5N0paQzF4OXJuMWdPcEUrVVJm?=
 =?utf-8?B?OEVqQUk5emc2bU5oT0M4OTJkUjQyTVVLclFvb2l1Z05xMzBKM1hRMkVOcnhM?=
 =?utf-8?B?Q3ltT1h1OG52S3lXaExBR2FjWDNRdnJkZGk4cTFHNld0cGFnSUFCOUVvdkdN?=
 =?utf-8?B?cjBlNlJVamtveXlMV2RMeCtOUGE4VzEzYUdEeDBhR1dIeFErUlN2N3g3NlBx?=
 =?utf-8?B?N3hvaGxSdmJ3S1BTMDRkOHZqd0hWT2UzSGtrMm5STDluY1RhdCsxYW1DQUV3?=
 =?utf-8?B?aXRkVytFQS9wSE42OEtHb1NTT0xBL2RMdXhCV0prTkVpMGI0dTh1UEFER2E5?=
 =?utf-8?B?eFl3Q0RXbXFzK25hOU9uWWJ5WXdWT3lTWHpaeDBLZEJicXQwN0R3bjJ3UjhX?=
 =?utf-8?B?TE1VNjRWYURlQUtEV2k4cUFITUxDZ2EweXhPS0xPSS9OT0NzdjdxWEZLcFBo?=
 =?utf-8?B?ZWRLRHZVbGFtWno1TzRaTm9NZStTWFlRSzB5MDdMUlZMK3N6MDVHNlVNVUVz?=
 =?utf-8?B?WWJjOHp5d2cxM3RtUUZsb3NtNHl3N0dZNWNIK21lMFQvaTl0OVU1VkJVYS9w?=
 =?utf-8?B?ajBrSDRSZVlZeVgvM3EzN2dOMHdvdUV6alFSUEJSRjRKbTh2M2Ezcy83dFpK?=
 =?utf-8?B?aDJpVWdBSkFGQ296bGVVM00yMDFTQlRsZ3lmOUN6VG1DRzdrdWVMOUF5L0xn?=
 =?utf-8?B?d0FnbWlCV3ZTZmdXN2taSXdWWFl0OHRiYlRpY3NLQVgrTDUwSWJBbXFQNzV3?=
 =?utf-8?B?NHE2RWlMOUZDNEVaYjhtTWVyQkZrdVhSd0I5OWF2MEM3UndUNUMyQXUyNkpw?=
 =?utf-8?B?Y2JnL28xdlhvVzBiWDdTSGx2cGVaTjErVjJrWURaK2w1T0JsamRoRy9wU3dV?=
 =?utf-8?B?MUloNVYvZGp1dXNBRCtPdWZvbkZTcEc2M3UrdFBEMEQ3eE1EQnVab2RpSlRs?=
 =?utf-8?B?TUdhajhaSTFoUFFmNnRtZno5Yjcxb1EzcVE1c0FIS3d2NWJHRWE2eEkzNnVO?=
 =?utf-8?B?ZGVwQlR5L3N4aGxrKzB5ZFpXTTh5eU9TL21OVFVuWjdWUUdXSVNnbVlTTEwz?=
 =?utf-8?B?anc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 90f520de-2d3e-4976-02e5-08de2212fccc
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 17:43:28.0386
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UY4lcNdzTsR5DimLeT4Mwh5QP2ZR/wYHZF+/ste0U6qNrBwm8vERFjXVSTIyeClnYMs8W+FsWaYsactLesrFkc4bWHI2CxL9ImtA0USWM8w=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7092



On 12.11.25 15:07, Jan Beulich wrote:
> On 12.11.2025 12:27, Grygorii Strashko wrote:
>>
>>
>> On 12.11.25 08:38, Jan Beulich wrote:
>>> On 11.11.2025 18:52, Grygorii Strashko wrote:
>>>> On 10.11.25 09:11, Jan Beulich wrote:
>>>>> On 07.11.2025 19:17, Grygorii Strashko wrote:
>>>>>> --- a/xen/arch/x86/include/asm/guest_access.h
>>>>>> +++ b/xen/arch/x86/include/asm/guest_access.h
>>>>>> @@ -13,26 +13,64 @@
>>>>>>   Â  #include <asm/hvm/guest_access.h>
>>>>>>   Â  Â  /* Raw access functions: no type checking. */
>>>>>> -#define raw_copy_to_guest(dst, src, len)Â Â Â Â Â Â Â  \
>>>>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>>> -Â Â Â Â  copy_to_user_hvm((dst), (src), (len)) :Â Â Â  \
>>>>>> -Â Â Â Â  copy_to_guest_pv(dst, src, len))
>>>>>> -#define raw_copy_from_guest(dst, src, len)Â Â Â Â Â  \
>>>>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>>> -Â Â Â Â  copy_from_user_hvm((dst), (src), (len)) :Â  \
>>>>>> -Â Â Â Â  copy_from_guest_pv(dst, src, len))
>>>>>> -#define raw_clear_guest(dst,Â  len)Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>>> -Â Â Â Â  clear_user_hvm((dst), (len)) :Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>>> -Â Â Â Â  clear_guest_pv(dst, len))
>>>>>> -#define __raw_copy_to_guest(dst, src, len)Â Â Â Â Â  \
>>>>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>>> -Â Â Â Â  copy_to_user_hvm((dst), (src), (len)) :Â Â Â  \
>>>>>> -Â Â Â Â  __copy_to_guest_pv(dst, src, len))
>>>>>> -#define __raw_copy_from_guest(dst, src, len)Â Â Â  \
>>>>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>>> -Â Â Â Â  copy_from_user_hvm((dst), (src), (len)) :Â  \
>>>>>> -Â Â Â Â  __copy_from_guest_pv(dst, src, len))
>>>>>> +static inline bool raw_use_hvm_access(const struct vcpu *v)
>>>>>> +{
>>>>>> +Â Â Â  return IS_ENABLED(CONFIG_HVM) && (!IS_ENABLED(CONFIG_PV) || is_hvm_vcpu(v));
>>>>>> +}
>>>>>
>>>>> Without a full audit (likely tedious and error prone) this still is a
>>>>> behavioral change for some (likely unintended) use against a system domain
>>>>> (likely the idle one): With HVM=y PV=n we'd suddenly use the HVM accessor
>>>>> there. IOW imo the "system domains are implicitly PV" aspect wants
>>>>> retaining, even if only "just in case". It's okay not to invoke the PV
>>>>> accessor (but return "len" instead), but it's not okay to invoke the HVM
>>>>> one.
>>>>
>>>> This patch is subset of "constify is_hvm_domain() for PV=n case" attempts.
>>>>
>>>> It was made under assumption that:
>>>> "System domains do not have Guests running, so can't initiate hypecalls and
>>>>   Â can not be users of copy_to/from_user() routines. There are no Guest and no user memory".
>>>> [IDLE, COW, IO, XEN]
>>>>
>>>> If above assumption is correct - this patch was assumed safe.
>>>>
>>>> if not - it all make no sense, probably.
>>>
>>> I wouldn't go as far as saying that. It can be arranged to avid the corner
>>> case I mentioned, I think.
>>
>> do you mean adding "&& !is_system_domain(v->domain)" in raw_use_hvm_access()?
> 
> No, we want to avoid adding any new any runtime checks.
> 
>> Hm, I see that vcpu(s) are not even created for system domains in domain_create().
>> So seems !is_system_domain(v->domain) == true always here.
> 
> "always" in what sense? It _should_ be always true, but in the unlikely event we
> have a path where it isn't (which we could be sure of only after a full audit),
> behavior there shouldn't change in the described problematic way.
> 
>> Am I missing smth?
>> Or you meant smth. else?
> 
> I was thinking of something along the lines of
> 
>      if ( is_hvm_vcpu(current) )

this condition will not be constified any more for HVM=y and PV=n

>          return ..._hvm();
> 
>      if ( !IS_ENABLED(CONFIG_PV) )
>          return len;
> 
>      return ..._pv();

Possible benefit will be reduced from:
   add/remove: 2/9 grow/shrink: 2/90 up/down: 1678/-32560 (-30882)

to:
   add/remove: 3/8 grow/shrink: 3/89 up/down: 1018/-12087 (-11069)

Any way it is smth.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 18:54:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 18:54:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160445.1488579 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJFyr-00011Q-4R; Wed, 12 Nov 2025 18:54:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160445.1488579; Wed, 12 Nov 2025 18:54:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJFyr-00011J-1Y; Wed, 12 Nov 2025 18:54:09 +0000
Received: by outflank-mailman (input) for mailman id 1160445;
 Wed, 12 Nov 2025 18:54:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=R8Yv=5U=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vJFyp-00011D-VJ
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 18:54: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 f6e754d3-bff8-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 19:54:06 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso137705e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 10:54:06 -0800 (PST)
Received: from localhost.localdomain (host-78-149-11-196.as13285.net.
 [78.149.11.196]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47787e3a63asm50059175e9.1.2025.11.12.10.54.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 12 Nov 2025 10:54: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: f6e754d3-bff8-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1762973646; x=1763578446; 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=5k8Z21gLVTYm6B0Dso+ikwMCEQe44y5PQXbxI2nGMZ8=;
        b=HojHs3gGCLKeByheAJ4MhydMIb7RzEs+0cHTiznDIAG602Hd10Gxzfhx26Z/LBAjeS
         S1d3ihd7kbugTqEuSulJxxYp9IuUWNWb0I4EW/A3qlD6Rc3+0GoieV83LidBN2mk+6Do
         hr6/WncLvL9SlgVT5tL8MyT2vmkVv+IQYRsAY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1762973646; x=1763578446;
        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=5k8Z21gLVTYm6B0Dso+ikwMCEQe44y5PQXbxI2nGMZ8=;
        b=P4SAckpWg/cRWhO9MuNv5uA97J/i7YOfDvsGQ+A5pC1lWKsTZ4aBoMebZkc4+cTuNj
         h2P9pHnl2d0mdPRJ48+MMblcj7kpWwfkDPQhFbx4Fy267EGX9zCicfNURDJ+FFJbcCo5
         5yz43JV3Zk3cVsIp6L5bwJrgkhnjsDEw7VWFiki4Z2q2QgJ9XVsfQDZst8R7clxfRG9r
         PFTUuNgJfBbzN1HlTTI99oPrvYd9sUWBvNP4FyLiaaNfPqD7uDWlN0g7sEsDFCxI8ps8
         gRNRB/PfupmvDCRE7vgUWWEzl8mxrF25ZWWEBhAtXm/cNYB2oyIap9L6D29EgcgO1v1V
         tuLg==
X-Gm-Message-State: AOJu0Yx/AbpjZY/VDA9BKzbSr/yIDj9etSlQAdF6qOwa5KqpIN5eRpns
	EhtVOSQC4sXVo4TlZd3HcD17bYgHtaPU5c8lmmBFPF2IjffJRYxYWEthRNeirv0OmXRfa+2+7c6
	vetjN1Ok=
X-Gm-Gg: ASbGncvZdu4Ig8DahXYgfzZtMTiIgD1HqYMzh9b8txIWXugMqddTPcQ9DfUjI9gvLc9
	RGvPj/IS17aQfyHmCWu0vDLvWmYMA4Lpgpag5Nn9CCu3Yl7u8KtkpPsINrIsWh4idW5d8ARo2/0
	208H8YeS8u4EjlJNT6VU0D2TuMD+WFdEZu2mXbizwFMB6ymoMRNa1EUjm11Y2r5427V2t76NXTf
	+9atLex9Cv8npAbRtl4t77UivV7p0U9D+kRjcs5fjkfTW7dBdCjoXWEUCtgN5BywfxoatGkMd0v
	b33FkVYQ+IFOjGZSoXnq19i2jv3obvpX+u7CdQpZyzTeSFSfORfE0SFCNngP836llPgyzoyYkSV
	HKv6QWpN+oF2R7ZVawJq/n2RS9GlJ3nE6uIOSPwQOJtdRE6Ji11re/lnTgH+SWYrDGaIDXTLIM7
	oQn2wnxjYxBA/M7mRMeFHu8GlooPmL0NS6C7JNzakAg9qiG9cAX8s=
X-Google-Smtp-Source: AGHT+IFElUgNsYU/vgmDo87ZKRZvl5iBZKGXHPA7SDIMCOuW10l69/+cwQSxoZZuMwEmL2rTILPuNg==
X-Received: by 2002:a05:600c:154d:b0:477:4f97:cb31 with SMTP id 5b1f17b1804b1-4778bd2c40emr3920195e9.2.1762973645252;
        Wed, 12 Nov 2025 10:54: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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH] docs: Rewrite the Tagging and Branching checklist
Date: Wed, 12 Nov 2025 18:54:02 +0000
Message-Id: <20251112185402.209485-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

There's a lot of stale information in the current checklists.  Merge the
documents and present the information in chronological order.  Provide real
examples from the tree rather than trying to be too prescriptive.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

A rendered version can be found here:

  https://andrewcoop-xen.readthedocs.io/en/docs-branching/process/tagging-branching.html

As I'm about to do the 4.21 release, I'm tempted to defer this patch until
after I've done so, so all the examples can be consistently 4.21.

I wanted to replace CVS with something more modern, but Git really sucks with
binary files and this repo in particular.  (For anyone interested, the VM is
so small that the Git server process OOM's when you try to clone it.)

This is (AFAICT) an accurate statement of what gets done.  It highlights some
inconsistences with how we branch and tag other trees, particularly QEMU which
is now the only tree that moves back to being master.
---
 docs/index.rst                                |   9 +
 docs/process/branching-checklist.txt          |  91 --------
 docs/process/index.rst                        |   9 +
 docs/process/release-technician-checklist.txt | 174 ----------------
 docs/process/tagging-branching.rst            | 194 ++++++++++++++++++
 5 files changed, 212 insertions(+), 265 deletions(-)
 delete mode 100644 docs/process/branching-checklist.txt
 create mode 100644 docs/process/index.rst
 delete mode 100644 docs/process/release-technician-checklist.txt
 create mode 100644 docs/process/tagging-branching.rst

diff --git a/docs/index.rst b/docs/index.rst
index bd87d736b9c3..3513d4b609d8 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -54,6 +54,15 @@ kind of development environment.
    misc/ci
 
 
+Process documentation
+---------------------
+
+.. toctree::
+   :maxdepth: 2
+
+   process/index
+
+
 Unsorted documents
 ------------------
 
diff --git a/docs/process/branching-checklist.txt b/docs/process/branching-checklist.txt
deleted file mode 100644
index 9632888a56e2..000000000000
--- a/docs/process/branching-checklist.txt
+++ /dev/null
@@ -1,91 +0,0 @@
-=== Before starting ===
-
-Access to the following accounts is necessary:
-    * xenbits.xen.org: xen, xendocs
-    * osstest.osstest-test-lab: osstest
-
-=== Check list ===
-
-v=4.1
-ov=4.0
-
-# make branches in xenbits.xen.org qemus
-    ssh xen@xenbits.xen.org
-    cd ~/git/qemu-xen.git
-    git branch staging-$v staging
-    git branch stable-$v master
-
-# make branch in libvirt
-    ssh xen@xenbits.xen.org
-    cd ~/git/libvirt.git/
-    git branch osstest/frozen/xen-$v-testing   xen-tested-master
-
-# make branches in xenbits.xen.org xen.git
-    ssh xen@xenbits.xen.org
-    cd ~/git/xen.git
-    git branch staging-$v staging
-    git branch stable-$v master
-
-# update xendocs@xenbits docs generator to generate new stable branch
-#  docs too. commit to git.
-* make 13:37 <ijc> https://xenbits.xen.org/docs/4.2-testing/ is now live true
-#14:17 <ijc> HOWTO: login to xenbits. become "xendocs" . cd cronjobs . edit
-#            xenbits-docs-all.sh in the obvious way. git commit
-    ssh xendocs@xenbits.xen.org
-    cd cronjobs
-    ed xenbits-docs-all.sh
-    /for branch
-    s/$/ 4.6-testing
-    # ^ OR SIMILAR
-    w
-    q
-    git add -p
-    git commit -m "Branch for $v"
-
-* make branches etc. in osstest
-    ssh osstest@osstest.test-lab
-    cd testing.git
-    OSSTEST_CONFIG=production-config ./mg-branch-setup xen-$v-testing bisect
-    OSSTEST_CONFIG=production-config ./mg-branch-setup qemu-upstream-$v-testing bisect
-
-* add branch to osstest
-    Add both qemu-upstream-$v-testing and xen-$v-testing to BRANCHES in cr-for-branches
-    git add -p
-    git commit -m "cr-for-branches: Add Xen and QEMU $v branch"
-
-* add to patchbot
-    ssh xen@xenbits.xen.org
-    cd ~/HG/patchbot/
-
-    cp xen--master.patchbot-reported-heads xen--stable-$v.patchbot-reported-heads
-    cp xen--staging.patchbot-reported-heads xen--staging-$v.patchbot-reported-heads
-    cp qemu-xen--master.patchbot-reported-heads  qemu-xen--stable-$v.patchbot-reported-heads
-    cp qemu-xen--staging.patchbot-reported-heads  qemu-xen--staging-$v.patchbot-reported-heads
-
-    #emacs versions
-    perl -i~ -pe 'next unless m/\b\Q'$ov'\E\b/; $x=$_; $x=~ s/\b\Q'$ov'\E\b/'$v'/g; print $x;' versions
-    git diff
-    git add versions
-    git commit -m "Branch for $v"
-
-Ensure references to qemu trees and Mini-OS in xen.git's Config.mk are updated.
-The variables and there content should be:
-  * QEMU_UPSTREAM_REVISION: qemu-xen-X.Y.0
-  * MINIOS_UPSTREAM_REVISION: xen-RELEASE-X.Y.0
-Where X.Y is the release version (e.g. 4.17).
-
-Update newly diverging staging (unstable) according to
-release-technician-checklist.txt section re README etc.
-
-Update newly diverging staging-$v according to
-release-technician-checklist.txt section re README etc.,
-including turning off debug.
-
-Set off a manual osstest run, since the osstest cr-for-branches change
-will take a while to take effect:
-    ssh osstest@osstest.test-lab
-    cd testing.git
-    screen -S $v
-    BRANCHES=xen-$v-testing ./cr-for-branches branches -w "./cr-daily-branch --real"
-
-Send message to committers and RM.  Use previous mail as a template.
diff --git a/docs/process/index.rst b/docs/process/index.rst
new file mode 100644
index 000000000000..d83d6ba9271d
--- /dev/null
+++ b/docs/process/index.rst
@@ -0,0 +1,9 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Process documentation
+=====================
+
+.. toctree::
+   :maxdepth: 2
+
+   tagging-branching
diff --git a/docs/process/release-technician-checklist.txt b/docs/process/release-technician-checklist.txt
deleted file mode 100644
index ae369c6dc5de..000000000000
--- a/docs/process/release-technician-checklist.txt
+++ /dev/null
@@ -1,174 +0,0 @@
-
-s=master
-#b=unstable
-v=$v-rc1
-
-OR
-
-x=4.1
-m=1
-rc=-rc2
-
-r=$x.$m
-s=$x-testing
-#b=$x-testing
-v=$r$rc
-
-t=$r$rc
-OR
-t=RELEASE-$r
-
-
-# FIRSTLY
-#  - check (for point releases, but not RCs) all XSAs have been applied (Lars)
-#
-* check, even for point releases
-*  http://logs.test-lab.xenproject.org/osstest/results/all-branch-statuses.txt
-
-
-# QEMU
-
-  git checkout $s
-  git show # should show appropriate intended commit
-  git-tag -u 'Xen.org Xen tree code signing' -m "Xen $v" xen-$v
-
-# consider making tag in minios, and updating xen.git Config.mk
-  git checkout SOMETHING
-  git show # should show appropriate intended commit
-  git-tag -u 'xen tree' -s -m "Xen $r$rc" xen-$t
-  git push xen@xenbits.xen.org:/home/xen/git/mini-os.git xen-$t
-
-* Also tag upstream qemu tree (Stefano)
-  git checkout SOMETHING
-  git show # should show appropriate intended commit
-  git tag -u 'xen tree' -s -m "Xen $r$rc" qemu-xen-$v 
-  git push osstest@xenbits.xen.org:/home/xen/git/qemu-xen.git qemu-xen-$v
-
-* consider bumping sonames of shlibs
-
-* change xen-unstable README. The banner (generated using figlet) should say:
-    - "Xen 4.5" in releases and on stable branches
-    - "Xen 4.5-unstable" on unstable
-    - "Xen 4.5-rc" for release candidate
-
-* for major releases, drop staging-only text from MAINTAINERS and add stable
-  maintainer(s) there
-
-* change xen-unstable Config.mk
-#   QEMU_UPSTREAM_REVISION,
-#   MINIOS_UPSTREAM_REVISION
-#     (drop any references to the specific commits, e.g. date or title)
-* change SUPPORT.md heading version number; -unstable or -rc tag
-*     (empty in stable branches after .0 release).
-* SUPPORT.md: insert correct version number in release-notes link
-* CHANGELOG.md: set section heading to delete UNRELEASED and add date;
-#               in unstable branches set to X.Y.0 and RELEASE-X.YY.0
-* change xen-unstable xen/Makefile XEN_EXTRAVERSION
-# if main version number has changed (eg 4.7 -> 4.8) rerun ./autogen.sh
-* rerun ./autogen.sh to update version number in configure
-#    - XEN_EXTRAVERSION should be as follows
-#      `.0-rc$(XEN_VENDORVERSION)'       during freeze, first rc onwards (including staging, before branching)
-#      `-unstable$(XEN_VENDORVERSION)'   unstable aka unfrozen staging (or unstable branch, after branching)
-#      `.0$(XEN_VENDORVERSION)'          actual release of Xen X.Y.0 (aka first actual release of Xen X.Y)
-#      `.Z$(XEN_VENDORVERSION)'          actual release of Xen X.Y.Z (stable point realase)
-#      `.Z-pre$(XEN_VENDORVERSION)'      stable branch, after release of Z-1
-#
-#    - turn off debug on stable branches, if not already done
-#           - tools/Rules.mk
-#                 debug ?= n
-#           - xen/Kconfig.debug
-#                 config DEBUG
-#                     default n
-
-* tag xen-unstable
-
-# In xen.git
-  git-fetch origin
-  git-checkout staging-$x
-  git-pull
-  git-show # should show commit updating version to right version
-  git-tag -u 'xen tree' -s -m "Xen $r$rc" $t
-  git-push origin $t
-  git-push origin staging-$x
-##  hg tag <tag_name> ; hg sign -k "Xen tree" <tag_name>
-
-
-
-HANDLING TAG GENERATED BY RELEASE MANAGER
-
-   fetch the tag into my tree
-   make the tarball (RELEASE TARBALL, below)
-   test build (see below)
-   website (see below)
-   merge tag into staging and push to staging
-   maybe force push into master
-   definitely push tag to xenbits
-        git-push origin $t
-
-
-
-
-RELEASE TARBALL
-
-   for 4.5 and later, use tarball target
-       git checkout $t
-       git clean -xdff
-       # export http_proxy=http://localhost:3128/
-       ./configure
-       make src-tarball-release   # must be used for actual releases
-       make src-tarball           # uses git-describe (best for RCs)
-        # ^find some way to add git-cache-proxy to this (done in ~iwj/.gitconfig)
-       mkdir /volatile/iwj/website-thing/xen.org/oss-xen/release/$v
-       mv dist/xen-$v.tar.[glx]z /volatile/iwj/website-thing/xen.org/oss-xen/release/$v/.
-
-       # website-thing/xen.org is cvs -d mail.xenproject.org:/home/downloads-cvs/cvs-repos co xen.org
-	cd /volatile/iwj/website-thing/xen.org
-
-# test build
-                cd /volatile/iwj/d
-                mkdir build
-                cd build
-                tar zxf /volatile/iwj/website-thing/xen.org/oss-xen/release/$v/xen-$v.tar.gz
-#                rsync -a --delete xen-$v build/
-                cd xen-$v
-                export http_proxy=http://localhost:3128/
-                (./configure && make -j4 KERNELS='' && echo ok.) 2>&1 | tee ../log.$v       # post 4.2
-
-# [[ test build amd64 ]]
-
-	cvs add -kb oss-xen/release/$v/
-
-        cd oss-xen/release/$v
-        for t in xen-$v.tar.[glx]z
-        do
-            gpg --digest-algo=SHA256 --detach-sign -u 'xen tree' $t
-            cvs add -kb $t
-            cvs add -kb $t.sig
-        done
-        cd ../../..
-
-	cvs ci -m $v
-
-        ssh downloads-cvs@mail.xenproject.org
-	cd /data/downloads.xenproject.org/xen.org
-	cvs -q up -d
-	# should show something like
-	#   U oss-xen/release/4.8.0-rc2/xen-4.8.0-rc2.tar.gz
-	#   U oss-xen/release/4.8.0-rc2/xen-4.8.0-rc2.tar.gz.sig
-	#   U oss-xen/release/4.8.0-rc2/xen-4.8.0-rc2.tar.lz
-	#   U oss-xen/release/4.8.0-rc2/xen-4.8.0-rc2.tar.lz.sig
-	#   U oss-xen/release/4.8.0-rc2/xen-4.8.0-rc2.tar.xz
-	#   U oss-xen/release/4.8.0-rc2/xen-4.8.0-rc2.tar.xz.sig
-
-After a .0 release, update XEN_EXTRAVERSION again (to .1-pre, see above).
-
-After a .0 release,
-Update new stable tree's MAINTAINERS to contain correct info for this
-stable branch: usually, copy text from previous
-staging-$ov:MAINTAINERS section "Stable Release Maintenance"
-into new staging-$v, deleting what's there.
-  git cat-file blob origin/staging-$ov:MAINTAINERS >MAINTAINERS
-and review the changes, commiting ONLY THE RELEVANT ONES
-
-Notify release manager of completion
-
diff --git a/docs/process/tagging-branching.rst b/docs/process/tagging-branching.rst
new file mode 100644
index 000000000000..b39dd2c248a1
--- /dev/null
+++ b/docs/process/tagging-branching.rst
@@ -0,0 +1,194 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+===============================
+Tagging and Branching Checklist
+===============================
+
+Before starting
+===============
+
+ * Review this checklist for changes during the development window.
+ * Access to the following necessary:
+
+   * The 'xen tree' signing key.
+   * The xen and xendocs users on xenbits.xen.org
+   * The downloads-cvs user on mail.xenproject.org
+   * A checkout of the xen.org CVS repository
+
+::
+
+  cvs -d downloads-cvs@mail.xenproject.org:/home/downloads-cvs/cvs-repos checkout xen.org
+
+
+For RC1
+=======
+
+ * Pin ``QEMU_UPSTREAM_REVISION`` to an exact SHA.  Commit.
+
+ * Update ``XEN_EXTRAVERSION`` from ``-unstable`` to ``.0-rc1``.  For
+   ``README`` and ``SUPPORT.md``, use the slightly more generic ``-rc`` so
+   they doesn't need to change during subsequent RCs.  Commit.
+
+ * Tag.  Produce tarballs.
+
+e.g. from Xen 4.21, ``ffd25d717a74^..d1478321eacb``::
+
+  * d1478321eacb - (tag: 4.21.0-rc1) Update Xen version to 4.21.0-rc1
+  * ffd25d717a74 - Config.mk: Pin QEMU_UPSTREAM_REVISION
+
+
+For subsequent RCs
+==================
+
+ * Update ``XEN_EXTRAVERSION`` to the next RC number.  Commit.  Tag.
+
+e.g. from Xen 4.21, ``eff32008be0d`` and ``9632ce6fe5b2``::
+
+  * 9632ce6fe5b2 - (tag: 4.21.0-rc3) Update Xen version to 4.21.0-rc3
+  * eff32008be0d - (tag: 4.21.0-rc2) Update Xen version to 4.21.0-rc2
+
+
+Branching
+=========
+
+On xenbits:
+
+ * Create new staging and stable branches in xen.git.
+
+ * Add the new branches to patchbot.  In ``~xen/HG/patchbot`` copy the exsting
+   master and staging reported heads, update the ``versions`` file, and commit
+   the result.
+
+ * Add the new stable branch to the docs cronjob.  In ``~xendocs/cronjobs``
+   edit ``xenbits-docs-all.sh`` and commit the result.  e.g.:
+
+::
+
+  ssh xenbits.xen.org
+
+  cd ~xen/git/xen.git
+  git branch staging-$v staging
+  git branch stable-$v master
+
+  cd ~xen/HG/patchbot
+  cp xen--master.patchbot-reported-heads xen--stable-$v.patchbot-reported-heads
+  cp xen--staging.patchbot-reported-heads xen--staging-$v.patchbot-reported-heads
+  $EDITOR versions
+  git commit -am "Branch for $v"
+
+  cd ~xendocs/cronjobs
+  $EDITOR xenbits-docs-all.sh
+  git commit -am "Branch for $v"
+
+
+On the new branch:
+
+ * Switch to release builds by default.  Commit.
+
+On staging:
+
+ * Update ``XEN_SUBVERSION`` to the next version.  Update
+   ``XEN_EXTRAVERSION``, ``README`` and ``SUPPORT.md`` back to ``-unstable``.
+   Commit.  Tag the start of the new development window.
+
+ * Rerun ``./autogen.sh`` to refresh the configure scripts.  Commit.
+
+ * Switch ``QEMU_UPSTREAM_REVISION`` back to ``master``.  Commit.
+
+ * Create a new section in ``CHANGELOG.md``.  Commit.
+
+e.g. from Xen 4.21, ``d510f9c1430c^..62d0a92057ca`` and ``d510f9c1430c^..b0255656d121``::
+
+  * 62d0a92057ca - CHANGELOG.md: Start a new 4.22 section
+  * 7b88e463f999 - Config.mk: Switch QEMU back to master
+  * d954e8c5c8de - Rerun ./autogen.sh for 4.22
+  * 85768c28b705 - (tag: 4.22-dev) Update Xen to 4.22
+  | * b0255656d121 - (staging-4.21) Switch to release builds by default
+  |/
+  * d510f9c1430c - doc/man: Align list of viridian default enlightenments with libxl
+
+
+Releasing
+=========
+
+ * Finalise the release dates in ``CHANGELOG.md`` (backported from staging)
+   and ``SUPPORT.md`` (only in the release branch).
+
+ * Tag the release in relevant external repos, and update ``Config.mk`` to
+   refer to the tag.
+
+ * Update ``XEN_EXTRAVERSION`` to drop the ``-rc`` suffix, and update
+   ``README`` to match.  Commit.
+
+ * Tag.  Produce tarballs.
+
+e.g. from Xen 4.20, ``5cd830509d38^..3ad5d648cda5``::
+
+  * 3ad5d648cda5 - (tag: RELEASE-4.20.0) Update to Xen 4.20
+  * 89fd1ba88403 - Config.mk: Bump tags to final
+  * 6bf05e086765 - SUPPORT.md: Define support lifetime
+  * 5cd830509d38 - CHANGELOG.md: Set release date for 4.20
+
+
+Tagging
+=======
+
+ * Confirm that HEAD is on the commit which adjusts ``XEN_EXTRAVERSION``
+   suitably.  i.e. ``git show`` shows the intended commit.  Check that all CIs
+   are happy with this commit.
+
+ * Tags are expected to be in one of following forms:
+
+   * ``RELEASE-$X.$Y.$Z`` for releases.
+   * ``$X.$Y.0-rc$N`` for release candidates.
+   * ``$X.$Y-dev`` for development windows.
+
+ * Tags need to be annotated and signed with the appropriate key.  e.g.:
+
+::
+
+  git tag -u 'xen tree' -s -m "Xen $VER.0-rc1" $VER.0-rc1
+
+
+Producing tarballs
+==================
+
+ * Confirm that HEAD is tagged.  i.e. ``git describe`` does not contain a SHA
+   on the end.
+
+ * In the root of Xen, run ``make src-tarball-release``.  This produces one or
+   more tarballs with different compression schemes.
+
+ * In the CVS repostiory, create a new directory and add it.  Copy the
+   tarballs in, sign them and add them.  Commit the result (pushes to the
+   server).
+
+ * On mail.xenproject.org, update the webroot.  e.g.:
+
+::
+
+   cd /path/to/xen.git
+   make src-tarball-release
+   ... # output in dist/
+
+   cd /path/to/xen.org.cvs
+
+   # Make and add new directory
+   mkdir oss-xen/release/$VER
+   cvs add -kb oss-xen/release/$VER
+
+   # Copy the tarballs, sign and add them
+   cp /path/to/xen.git/dist/xen-*.tar.* .
+   for t in xen-*.tar.*
+   do
+       gpg --digest-algo=SHA256 --detach-sign -u 'xen tree' $t
+       cvs add -kb $t
+       cvs add -kb $t.sig
+   done
+
+   # Commit the result (also pushes to the server)
+   cvs commit -m $VER
+
+   # SSH to the server and update the webroot
+   ssh downloads-cvs@mail.xenproject.org -- \
+       'cd /data/downloads.xenproject.org/xen.org/; cvs -q update -d'

base-commit: 781cf8affe407654fd5d216f3bcb148601f1a61f
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 20:25:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 20:25:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160465.1488590 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJHOd-0003sv-EF; Wed, 12 Nov 2025 20:24:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160465.1488590; Wed, 12 Nov 2025 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 1vJHOd-0003so-9E; Wed, 12 Nov 2025 20:24:51 +0000
Received: by outflank-mailman (input) for mailman id 1160465;
 Wed, 12 Nov 2025 20:24: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=EiA8=5U=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJHOc-0003si-Br
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 20:24:50 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a22dde3e-c005-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 21:24:48 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AS4PR03MB8506.eurprd03.prod.outlook.com (2603:10a6:20b:576::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.13; Wed, 12 Nov
 2025 20:24:44 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025
 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: a22dde3e-c005-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YigWvIQujKMWnW1ZG6+SD7YcDZJ1cJ4elcJ5GVSBIFn8VkJKneuTlKz3kuGcIMjVVzPdtwss+2xJdikVn+m+eGqyxvVZdUjakxjCIh0RD8ny77aNnwylR13cdxlK1cjxdSwjpSm5gUrWI9+ER+2sXygBEkg0yaeS6a05jFUvHmVzS+xIiRDPbb4CH2uYoMOGb5PTWmZbAOyALZ7MN7b6S4fpHXN1L3cwCu7SzXXnbSKzHcLD9MtOVzbUrBnuFlyuW9EgIKGfoeHNUyymQCqWVwc6kNRHd+MZ5I55z2qYT8TKXR84sp0cnLXIuKO63rS1smwl0BIWMgVCydgt4cfM2A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GDN1Xz98/FqKkXmOY2pxplpXxc8aFt7mDbeg21m2vRk=;
 b=nGz4PqAZrqw6tvOsJ+BdofvPbGGXQPXhMNcF9uqctBMMT/uVl7gYczvt710wu8T1juMxqgt9mKmcZk5BlmMjjdNlkpmqvs6qGg0gi1JREqDp8WWk7Vb9LtCAlOWMh3KZbHhp/RdmvYGOr87qJmQYWlyEKtoKSb65W8lII7SGzTyQcvK6fr2V5ao56IJdsvdzbiZtp2LU6mPEv8cbgwTuZ7PFr+3sTmiCBySw2g/mdJpoIlmWxgXP4fneSoiXda4/PPrXg4nozR6Fp8AeIKWtohQ2sB2fQ41PKM6DiZUudcdeBevVqmt8+UpaHWTE7f2mn+aLkUf/q4LEzKFwDSxoBA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GDN1Xz98/FqKkXmOY2pxplpXxc8aFt7mDbeg21m2vRk=;
 b=JWwmZtrm3yrvmRJnrEhIn/xJbxtcpq6BL+UFrdQPGCvMQ4fwHhUIW+2dKMCIm0BCPM8/5ZxpTMh+GtlxqfFZMs3JjWKx4VJdw/nNoYBQoMY9w8kj5vRjvHZKHCpOyIOqhsvuVizIlDt5NfkQ73t5vXie8UVXaFfbfRtC8P8wTiJm2yd5udRJLjhL0xK1sOkHwMmY+kb3K3vzuZ/lutaDSbRA3oS36Ue+FAXa+G2yf2iJ9K1F5kIbbYL1oG0SpKYZtVIHI5B06e9L9LFTvs+inH1tXNkNCTKC+5Fv8DR/A4UH6kInvflNx2HVT6pbW58x4SqCYX5MB4NM71Of6Y5P+Q==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Tamas K
 Lengyel <tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>,
	Petre Pircalabu <ppircalabu@bitdefender.com>, Teddy Astie
	<teddy.astie@vates.tech>, Penny Zheng <Penny.Zheng@amd.com>
Subject: [XEN][PATCH v2] xen: make VMTRACE support optional
Thread-Topic: [XEN][PATCH v2] xen: make VMTRACE support optional
Thread-Index: AQHcVBJh32SIAsW070+7GZyMQ8BkVA==
Date: Wed, 12 Nov 2025 20:24:44 +0000
Message-ID: <20251112202442.3879997-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB8907:EE_|AS4PR03MB8506:EE_
x-ms-office365-filtering-correlation-id: bbf0c264-22de-456f-7def-08de22298456
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|7416014|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?FoHNpH3vTlZ2rvTnuyHL8YImM/CR0pYz3ug1sryA7Ow8fipqlovYrqZhf3?=
 =?iso-8859-1?Q?qGgVlrywFE3W7IgN8fxVqqSp5XjZaYbLTBv5loML5vrEB+Pd7oH4I6/o8S?=
 =?iso-8859-1?Q?6oU63D98iboD5qJ7SeAnBlDgNXxw2FxkhGOZ/PTGof5qBYWEhWGmKzACzm?=
 =?iso-8859-1?Q?pUhsrfXCFSALyZu0s86+5yeZT/Xh7oXwigc/s8VkM/w5XKaz8vx27yud1/?=
 =?iso-8859-1?Q?qLxAW6CmAS7YMJDOi5bXpLiCgMxlSnN7RmuXBGHxuMd31C0COUD/ParQty?=
 =?iso-8859-1?Q?ev9CWICUF0vAeL7rKbGi+AyYTjpEYA98i0rN3007kUjKqSBUVofzd1r61X?=
 =?iso-8859-1?Q?FfrQBj3FaEWqdM28RmdEGfMimgFF28FxjQ1Gxf54E//CWx1YohykX154wp?=
 =?iso-8859-1?Q?SJ4VR/G+RrEbMO9pnHydgjF2d+/DTmrGXOuXW7gSWKec2piEFU1vV6SlGd?=
 =?iso-8859-1?Q?HI6e6xhlDCuS30LqAZEmjlWAYKaeoQZdWQmBMjZSn14UILyDPHfgRSw+ow?=
 =?iso-8859-1?Q?8U+iNbKmgTGd91HNW2t0uo3UBjm5ZJitu37TkelmIg+yQUByxsXVxJRPLX?=
 =?iso-8859-1?Q?zQYm0YSsg/JSTxTSdVIT6juYARNOg3LpY384Nk6so2r7a1yHSYSCrpYgIx?=
 =?iso-8859-1?Q?8DORJKr/cN3LROoNg04GUUWk2xlOsKQdwYJ2Y/peuERHpmpVMKRvq8DuQk?=
 =?iso-8859-1?Q?OE9zBoqyKxKHWPPfYxFjeMyAHe5L1E6Nac+6k44zo6ljAjOOwR014b3vAO?=
 =?iso-8859-1?Q?4wEF52CHQQaZ3Hrm97V1CZ/4zEI9mxTdQFbBSQY3ZWUMkfREDjKxr6AYy3?=
 =?iso-8859-1?Q?I5UAcL4eIAMawIRNFZE+uVe7L7TQvGD+DXKFF/W4gONutSFthDdxc62eXN?=
 =?iso-8859-1?Q?5F4dlwVbYm2mgYkMlTOmkEVIlpJQnRKzYjUvhhY1VangdriVCskN13Xn+K?=
 =?iso-8859-1?Q?Yk2dCWSH4p42R4F9y0V3fzFGuXdXn+FXM7y5JIGQQWKUVpbwNYpuABz7a4?=
 =?iso-8859-1?Q?4gURuJjhOe4aKiKbvz35tIhj5Xtlx/pvL+CR/UZp3qj5AzRvGVsZ97/ZaV?=
 =?iso-8859-1?Q?KS7FCcYl+LL95KS9gKAEM7gt05ewdmEkMyaI3g564dTKGb2PHggweSWwD5?=
 =?iso-8859-1?Q?eMzv9NmjHtNYFXTwQjHaTNtFqBpcrok+uiKLqjGo5XWojd7qYOe5UZP0zD?=
 =?iso-8859-1?Q?fuYDbVUUQg3uQ9KbQ4iZh1bZV83Zxfs+JIX7pL4XFaIK8sY3MR4LcHJd0d?=
 =?iso-8859-1?Q?U7wyR/9I+wTR/wSVKEUE41vS2B6r2vrOu9nA0seg2kb8Cs8L4u73kJyeiJ?=
 =?iso-8859-1?Q?dXtdg1vvlQx0niZdrCR9tQxE6NDvZYkkvkekJ669t0txXN//cyCw+HX7g5?=
 =?iso-8859-1?Q?sza8jsiLx5V2WVfC5lIqbMiDUR/YN4vvU4f7LkKFxG0fCGrGRxAeksG23a?=
 =?iso-8859-1?Q?rEdy5nFzMX8AkgZuZuzsLHlA66PNlprkS2J6vRLwkyOpqMv3K1YyMULCEN?=
 =?iso-8859-1?Q?jV1Y8Xcc1aQdfe8uKwYshgKwiEOVHtPUbmi/7pae2ivrDWv+strFGa7e+M?=
 =?iso-8859-1?Q?Pmmeh2+tmB95yacyF31DADAiFl51?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?dJQqOIHWs4Zbv2NukShPClhJOggd4rC1S49B0zjTyE/DYkf2NcQVeSpjXk?=
 =?iso-8859-1?Q?5z/bQf+YnN31ygd/jMwaYK1FfvpFqdA1Svc0gMhWI7aPMTf9yB26t6S2Et?=
 =?iso-8859-1?Q?KCVmZuztuhX05Rc9ELnVoQx/6m46iDAiDCRO4i574MHO1hKp9VIltzXU8N?=
 =?iso-8859-1?Q?HerrxbWBRmwQv/7ZhuHURRGwQx9vRQrPTTni30t1rFVvI4fw+jBmqbamoa?=
 =?iso-8859-1?Q?cLOK2YIfFjlfJbhX4RikdSOkVs7D2iR1Y7/5fDGPrjO9/4sscL9mdx8lfg?=
 =?iso-8859-1?Q?z2pHddQj9dc0SAey/AUTzeXmZ2kJemrwUxll2jgwmgm2DN/CWlmjf/xV84?=
 =?iso-8859-1?Q?5aesUJNoa0abnjRCMKMKVXTd2sbfxvpe0TrE3Tb8eaSDkGXKRjs+ajdYDb?=
 =?iso-8859-1?Q?zqfNcMxp1LOZ9zcgv9hxmNBD73piZXMsbuXmtVzfU6OuVC6/o0VWtmon2L?=
 =?iso-8859-1?Q?EaqBgd33k1CCvOyvozltmOFHYITQylJI4AvyL/HL/nIWr+sSl7ZfGuMtJc?=
 =?iso-8859-1?Q?VZZKv8G59M9+5uN69brdnuxhx7UO3j70QvyRLOeUr6T+SJ89B8Id9j+E8w?=
 =?iso-8859-1?Q?hMBeOkwL8dB+Sk+yJivX/ZSTb3Z3iNSfP5nWc90qHafuv4Zu0yB+DM1ymd?=
 =?iso-8859-1?Q?mxziWcHNK/czps+GbKewuhClBc1NGA07Dg+bWAQ/IF6JvgpAOCjKtJIQCP?=
 =?iso-8859-1?Q?zQSCtoCn48PLUV2PE8h+eG2NSB+c6QElfbd3ze3ZgByc1LvamXaB0dgTTa?=
 =?iso-8859-1?Q?un2qRCnqwqxij07JBUZJx9srhsihMwZO6XUlC9Vf8UG9su7q45ZO4HOJ/d?=
 =?iso-8859-1?Q?AKEzdwqC7OvarblBlNGwAc4qbL21Yi9RcL52METgAcFIJhuUe5UVzbHjOP?=
 =?iso-8859-1?Q?CaWNBJfG2/ZKePCgO3ha6/htYNlUXLNWqKwOC1NAMSh7vPNmxhqgE6n6wB?=
 =?iso-8859-1?Q?dyzocLyQfKSx3pIHQbV9cyiWSHH9YOmdk0cGdtQhNM1/l0/RtldpSgrUvD?=
 =?iso-8859-1?Q?EN+eL76+lVYeTlQ/A4cBzBOmLpyZuc1kIQypDWSEZNkDDygaCeZpBjCyzI?=
 =?iso-8859-1?Q?RLA8nt8PC5/jIgI2aIt28B7kQeptor3OT/qbhYG0b80+yTDfa2GHupfSh/?=
 =?iso-8859-1?Q?ys9ladkvPPs7PR6cD3yYRBr8qxlXjXBnPWgZ6vmR7tE+akSGbA3bmDOt1p?=
 =?iso-8859-1?Q?L3hd3eGj0EAcupLwfW3N7sxWQyQP6HtXXIKdYDWJYIPgdrmcv4La3LJOdw?=
 =?iso-8859-1?Q?rG8Um9qCncgkYslovcgGwd4jz5yNyFedyFgvAOVMPC3LXhASeX/dsdvuxx?=
 =?iso-8859-1?Q?EWk3UVggNfVEAHkwbjuvrY2hCchGgrr8GgTk18Le580G/qmpJLgJR9xSp0?=
 =?iso-8859-1?Q?TSxb1veHZYn0zt+C++G3Pp5d9dD+kGq8eNw4qKhnITo0ETbfd7Qlm5Taea?=
 =?iso-8859-1?Q?dNY5E5Paag664F1yDASC79/xXd0kAtt35i3MipvwHEhwJnd/xL/S1ceF2x?=
 =?iso-8859-1?Q?WKi6i41wpuLI6eziXYCxkMqqyMcgjE7vXz9oRYdYmaahrZCNrGTbbmmyfP?=
 =?iso-8859-1?Q?9ByLayRlMxwdaOrwuupLCb+5fKNs7eZviP20NKjK2te7itqyOdJcHkDcNi?=
 =?iso-8859-1?Q?VbIIUd3m3F3aBHVCO/ilxDqHlikAgL0Q4RvCQsk/fUteAS4v+w0pnyrg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bbf0c264-22de-456f-7def-08de22298456
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Nov 2025 20:24:44.2242
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: pOHRy2lgcMw/WnBzFXI3UdIOdeND1zyyKUnVuja0wbh8odI3K631wGqa54lcMpJMuhSm6tyAfSOLpefd4FCcSzVBdNid11OFk5AI1FFHkwk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR03MB8506

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 v2:
 - fix comments from Jan Beulich
 - move CONFIG_VMTRACE in HVM
 - drop HAS_VMTRACE
=20
v1:
 https://patchwork.kernel.org/project/xen-devel/patch/20251031212005.133821=
2-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      | 10 ++++++++++
 xen/arch/x86/include/asm/hvm/vmx/vmcs.h |  2 ++
 xen/arch/x86/mm/mem_sharing.c           |  2 ++
 xen/arch/x86/vm_event.c                 |  7 ++++---
 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, 75 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 6153e3c07e2d..d9521808dcba 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -154,6 +154,7 @@ void arch_get_domain_info(const struct domain *d,
 static int do_vmtrace_op(struct domain *d, struct xen_domctl_vmtrace_op *o=
p,
                          XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
 {
+#ifdef CONFIG_VMTRACE
     struct vcpu *v;
     int rc;
=20
@@ -198,6 +199,9 @@ static int do_vmtrace_op(struct domain *d, struct xen_d=
omctl_vmtrace_op *op,
     vcpu_unpause(v);
=20
     return rc;
+#else
+    return -EOPNOTSUPP;
+#endif
 }
=20
 #define MAX_IOPORTS 0x10000
diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index c1a131d1851a..5c47a45c9350 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -35,6 +35,18 @@ config INTEL_VMX
 	  If your system includes a processor with Intel VT-x support, say Y.
 	  If in doubt, say Y.
=20
+config VMTRACE
+    bool "HW VM tracing support"
+    depends on INTEL_VMX
+    default y
+    help
+      Enables HW VM tracing support which allows to configure HW processor
+      features (vmtrace_op) to enable capturing information about software
+      execution using dedicated hardware facilities with minimal interfere=
nce
+      to the software being traced. The trace data can be retrieved using =
buffer
+      shared between Xen and domain
+      (see XENMEM_acquire_resource(XENMEM_resource_vmtrace_buf)).
+
 config HVM_FEP
 	bool "HVM Forced Emulation Prefix support (UNSUPPORTED)" if UNSUPPORTED
 	default DEBUG
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index cd5ac8a5f0e3..2fffc2006ab0 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -307,6 +307,7 @@ static int vmx_init_vmcs_config(bool bsp)
     rdmsrl(MSR_IA32_VMX_MISC, _vmx_misc_cap);
=20
     /* Check whether IPT is supported in VMX operation. */
+#ifdef CONFIG_VMTRACE
     if ( bsp )
         vmtrace_available =3D cpu_has_proc_trace &&
                             (_vmx_misc_cap & VMX_MISC_PROC_TRACE);
@@ -317,6 +318,7 @@ static int vmx_init_vmcs_config(bool bsp)
                smp_processor_id());
         return -EINVAL;
     }
+#endif
=20
     if ( caps.cpu_based_exec_control & CPU_BASED_ACTIVATE_SECONDARY_CONTRO=
LS )
     {
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index e2b5077654ef..66367adf3393 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -619,6 +619,7 @@ static void cf_check domain_creation_finished(struct do=
main *d)
=20
 static void vmx_init_ipt(struct vcpu *v)
 {
+#ifdef CONFIG_VMTRACE
     unsigned int size =3D v->domain->vmtrace_size;
=20
     if ( !size )
@@ -629,6 +630,7 @@ static void vmx_init_ipt(struct vcpu *v)
     ASSERT(size >=3D PAGE_SIZE && (size & (size - 1)) =3D=3D 0);
=20
     v->arch.msrs->rtit.output_limit =3D size - 1;
+#endif
 }
=20
 static int cf_check vmx_vcpu_initialise(struct vcpu *v)
@@ -721,11 +723,13 @@ static void vmx_save_guest_msrs(struct vcpu *v)
      */
     v->arch.hvm.vmx.shadow_gs =3D read_gs_shadow();
=20
+#ifdef CONFIG_VMTRACE
     if ( v->arch.hvm.vmx.ipt_active )
     {
         rdmsrl(MSR_RTIT_OUTPUT_MASK, msrs->rtit.output_mask);
         rdmsrl(MSR_RTIT_STATUS, msrs->rtit.status);
     }
+#endif
=20
     if ( cp->feat.pks )
         msrs->pkrs =3D rdpkrs_and_cache();
@@ -744,12 +748,14 @@ static void vmx_restore_guest_msrs(struct vcpu *v)
     if ( cpu_has_msr_tsc_aux )
         wrmsr_tsc_aux(msrs->tsc_aux);
=20
+#ifdef CONFIG_VMTRACE
     if ( v->arch.hvm.vmx.ipt_active )
     {
         wrmsrl(MSR_RTIT_OUTPUT_BASE, page_to_maddr(v->vmtrace.pg));
         wrmsrl(MSR_RTIT_OUTPUT_MASK, msrs->rtit.output_mask);
         wrmsrl(MSR_RTIT_STATUS, msrs->rtit.status);
     }
+#endif
=20
     if ( cp->feat.pks )
         wrpkrs(msrs->pkrs);
@@ -2563,6 +2569,7 @@ static bool cf_check vmx_get_pending_event(
     return true;
 }
=20
+#ifdef CONFIG_VMTRACE
 /*
  * We only let vmtrace agents see and modify a subset of bits in MSR_RTIT_=
CTL.
  * These all pertain to data-emitted into the trace buffer(s).  Must not
@@ -2705,6 +2712,7 @@ static int cf_check vmtrace_reset(struct vcpu *v)
     v->arch.msrs->rtit.status =3D 0;
     return 0;
 }
+#endif
=20
 static uint64_t cf_check vmx_get_reg(struct vcpu *v, unsigned int reg)
 {
@@ -2877,11 +2885,14 @@ static struct hvm_function_table __initdata_cf_clob=
ber vmx_function_table =3D {
     .altp2m_vcpu_emulate_ve =3D vmx_vcpu_emulate_ve,
     .altp2m_vcpu_emulate_vmfunc =3D vmx_vcpu_emulate_vmfunc,
 #endif
+
+#ifdef CONFIG_VMTRACE
     .vmtrace_control =3D vmtrace_control,
     .vmtrace_output_position =3D vmtrace_output_position,
     .vmtrace_set_option =3D vmtrace_set_option,
     .vmtrace_get_option =3D vmtrace_get_option,
     .vmtrace_reset =3D vmtrace_reset,
+#endif
=20
     .get_reg =3D vmx_get_reg,
     .set_reg =3D vmx_set_reg,
diff --git a/xen/arch/x86/include/asm/guest-msr.h b/xen/arch/x86/include/as=
m/guest-msr.h
index 5f0cb0a93995..702f47fe1e16 100644
--- a/xen/arch/x86/include/asm/guest-msr.h
+++ b/xen/arch/x86/include/asm/guest-msr.h
@@ -50,6 +50,7 @@ struct vcpu_msrs
         };
     } misc_features_enables;
=20
+#ifdef CONFIG_VMTRACE
     /*
      * 0x00000560 ... 57x - MSR_RTIT_*
      *
@@ -81,6 +82,7 @@ struct vcpu_msrs
             };
         };
     } rtit;
+#endif
=20
     /*
      * 0x000006e1 - MSR_PKRS - Protection Key Supervisor.
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/=
hvm/hvm.h
index 6f174ef658f1..e59d91ded63d 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -234,12 +234,14 @@ struct hvm_function_table {
     int (*altp2m_vcpu_emulate_vmfunc)(const struct cpu_user_regs *regs);
 #endif
=20
+#ifdef CONFIG_VMTRACE
     /* vmtrace */
     int (*vmtrace_control)(struct vcpu *v, bool enable, bool reset);
     int (*vmtrace_output_position)(struct vcpu *v, uint64_t *pos);
     int (*vmtrace_set_option)(struct vcpu *v, uint64_t key, uint64_t value=
);
     int (*vmtrace_get_option)(struct vcpu *v, uint64_t key, uint64_t *valu=
e);
     int (*vmtrace_reset)(struct vcpu *v);
+#endif
=20
     uint64_t (*get_reg)(struct vcpu *v, unsigned int reg);
     void (*set_reg)(struct vcpu *v, unsigned int reg, uint64_t val);
@@ -735,6 +737,7 @@ static inline bool altp2m_vcpu_emulate_ve(struct vcpu *=
v)
 bool altp2m_vcpu_emulate_ve(struct vcpu *v);
 #endif /* CONFIG_ALTP2M */
=20
+#ifdef CONFIG_VMTRACE
 static inline int hvm_vmtrace_control(struct vcpu *v, bool enable, bool re=
set)
 {
     if ( hvm_funcs.vmtrace_control )
@@ -769,13 +772,20 @@ static inline int hvm_vmtrace_get_option(
=20
     return -EOPNOTSUPP;
 }
+#else
+int hvm_vmtrace_output_position(struct vcpu *v, uint64_t *pos);
+#endif
=20
 static inline int hvm_vmtrace_reset(struct vcpu *v)
 {
+#ifdef CONFIG_VMTRACE
     if ( hvm_funcs.vmtrace_reset )
         return alternative_call(hvm_funcs.vmtrace_reset, v);
=20
     return -EOPNOTSUPP;
+#else
+    return 0;
+#endif
 }
=20
 /*
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h b/xen/arch/x86/include=
/asm/hvm/vmx/vmcs.h
index ecd91389302c..24fd3162af40 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
@@ -146,8 +146,10 @@ struct vmx_vcpu {
     /* Do we need to tolerate a spurious EPT_MISCONFIG VM exit? */
     bool                 ept_spurious_misconfig;
=20
+#ifdef CONFIG_VMTRACE
     /* Processor Trace configured and enabled for the vcpu. */
     bool                 ipt_active;
+#endif
=20
     /* Is the guest in real mode? */
     uint8_t              vmx_realmode;
diff --git a/xen/arch/x86/mm/mem_sharing.c b/xen/arch/x86/mm/mem_sharing.c
index 4787b2796479..074f1b2562b3 100644
--- a/xen/arch/x86/mm/mem_sharing.c
+++ b/xen/arch/x86/mm/mem_sharing.c
@@ -1888,7 +1888,9 @@ static int fork(struct domain *cd, struct domain *d)
         domain_pause(d);
         cd->max_pages =3D d->max_pages;
         *cd->arch.cpu_policy =3D *d->arch.cpu_policy;
+#ifdef CONFIG_VMTRACE
         cd->vmtrace_size =3D d->vmtrace_size;
+#endif
         cd->parent =3D d;
     }
=20
diff --git a/xen/arch/x86/vm_event.c b/xen/arch/x86/vm_event.c
index fc349270b9c5..e9ac1d497594 100644
--- a/xen/arch/x86/vm_event.c
+++ b/xen/arch/x86/vm_event.c
@@ -253,7 +253,8 @@ void vm_event_fill_regs(vm_event_request_t *req)
     req->data.regs.x86.shadow_gs =3D ctxt.shadow_gs;
     req->data.regs.x86.dr6 =3D ctxt.dr6;
=20
-    if ( hvm_vmtrace_output_position(curr, &req->data.regs.x86.vmtrace_pos=
) !=3D 1 )
+    if ( IS_ENABLED(CONFIG_VMTRACE) &&
+         hvm_vmtrace_output_position(curr, &req->data.regs.x86.vmtrace_pos=
) !=3D 1 )
         req->data.regs.x86.vmtrace_pos =3D ~0;
 #endif
 }
@@ -303,12 +304,12 @@ void vm_event_emulate_check(struct vcpu *v, vm_event_=
response_t *rsp)
 #endif
 }
=20
+#ifdef CONFIG_VMTRACE
 void vm_event_reset_vmtrace(struct vcpu *v)
 {
-#ifdef CONFIG_HVM
     hvm_vmtrace_reset(v);
-#endif
 }
+#endif
=20
 /*
  * Local variables:
diff --git a/xen/common/domain.c b/xen/common/domain.c
index e13e01c1d272..ce4f55339fb4 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -136,7 +136,9 @@ struct vcpu *idle_vcpu[NR_CPUS] __read_mostly;
=20
 vcpu_info_t dummy_vcpu_info;
=20
+#ifdef CONFIG_VMTRACE
 bool __read_mostly vmtrace_available;
+#endif
=20
 bool __read_mostly vpmu_is_available;
=20
@@ -318,6 +320,7 @@ static void vcpu_info_reset(struct vcpu *v)
=20
 static void vmtrace_free_buffer(struct vcpu *v)
 {
+#ifdef CONFIG_VMTRACE
     const struct domain *d =3D v->domain;
     struct page_info *pg =3D v->vmtrace.pg;
     unsigned int i;
@@ -332,10 +335,12 @@ static void vmtrace_free_buffer(struct vcpu *v)
         put_page_alloc_ref(&pg[i]);
         put_page_and_type(&pg[i]);
     }
+#endif
 }
=20
 static int vmtrace_alloc_buffer(struct vcpu *v)
 {
+#ifdef CONFIG_VMTRACE
     struct domain *d =3D v->domain;
     struct page_info *pg;
     unsigned int i;
@@ -377,6 +382,9 @@ static int vmtrace_alloc_buffer(struct vcpu *v)
     }
=20
     return -ENODATA;
+#else
+    return 0;
+#endif
 }
=20
 /*
@@ -825,7 +833,9 @@ struct domain *domain_create(domid_t domid,
         ASSERT(!config->altp2m.nr);
 #endif
=20
+#ifdef CONFIG_VMTRACE
         d->vmtrace_size =3D config->vmtrace_size;
+#endif
     }
=20
     /* Sort out our idea of is_control_domain(). */
diff --git a/xen/common/memory.c b/xen/common/memory.c
index 3688e6dd5032..66dc7f7a0a41 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -1155,8 +1155,10 @@ static unsigned int resource_max_frames(const struct=
 domain *d,
     case XENMEM_resource_ioreq_server:
         return ioreq_server_max_frames(d);
=20
+#ifdef CONFIG_VMTRACE
     case XENMEM_resource_vmtrace_buf:
         return d->vmtrace_size >> PAGE_SHIFT;
+#endif
=20
     default:
         return 0;
@@ -1198,6 +1200,7 @@ static int acquire_ioreq_server(struct domain *d,
 #endif
 }
=20
+#ifdef CONFIG_VMTRACE
 static int acquire_vmtrace_buf(
     struct domain *d, unsigned int id, unsigned int frame,
     unsigned int nr_frames, xen_pfn_t mfn_list[])
@@ -1220,6 +1223,7 @@ static int acquire_vmtrace_buf(
=20
     return nr_frames;
 }
+#endif
=20
 /*
  * Returns -errno on error, or positive in the range [1, nr_frames] on
@@ -1238,8 +1242,10 @@ static int _acquire_resource(
     case XENMEM_resource_ioreq_server:
         return acquire_ioreq_server(d, id, frame, nr_frames, mfn_list);
=20
+#ifdef CONFIG_VMTRACE
     case XENMEM_resource_vmtrace_buf:
         return acquire_vmtrace_buf(d, id, frame, nr_frames, mfn_list);
+#endif
=20
     default:
         ASSERT_UNREACHABLE();
diff --git a/xen/common/vm_event.c b/xen/common/vm_event.c
index b2787c010890..cf0258223f50 100644
--- a/xen/common/vm_event.c
+++ b/xen/common/vm_event.c
@@ -441,7 +441,8 @@ static int vm_event_resume(struct domain *d, struct vm_=
event_domain *ved)
             if ( rsp.flags & VM_EVENT_FLAG_GET_NEXT_INTERRUPT )
                 vm_event_monitor_next_interrupt(v);
=20
-            if ( rsp.flags & VM_EVENT_FLAG_RESET_VMTRACE )
+            if ( IS_ENABLED(CONFIG_VMTRACE) &&
+                 (rsp.flags & VM_EVENT_FLAG_RESET_VMTRACE) )
                 vm_event_reset_vmtrace(v);
=20
             if ( rsp.flags & VM_EVENT_FLAG_VCPU_PAUSED )
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 8aab05ae93c8..aa86a9f46022 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -191,7 +191,11 @@ void vnuma_destroy(struct vnuma_info *vnuma);
 static inline void vnuma_destroy(struct vnuma_info *vnuma) { ASSERT(!vnuma=
); }
 #endif
=20
+#ifdef CONFIG_VMTRACE
 extern bool vmtrace_available;
+#else
+#define vmtrace_available false
+#endif
=20
 extern bool vpmu_is_available;
=20
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 02bdc256ce37..dcd8647e0d36 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -300,9 +300,11 @@ struct vcpu
     /* vPCI per-vCPU area, used to store data for long running operations.=
 */
     struct vpci_vcpu vpci;
=20
+#ifdef CONFIG_VMTRACE
     struct {
         struct page_info *pg; /* One contiguous allocation of d->vmtrace_s=
ize */
     } vmtrace;
+#endif
=20
     struct arch_vcpu arch;
=20
@@ -623,7 +625,9 @@ struct domain
     unsigned int nr_altp2m;    /* Number of altp2m tables. */
 #endif
=20
+#ifdef CONFIG_VMTRACE
     unsigned int vmtrace_size; /* Buffer size in bytes, or 0 to disable. *=
/
+#endif
=20
 #ifdef CONFIG_ARGO
     /* Argo interdomain communication support */
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Nov 12 20:25:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 20:25:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160475.1488600 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJHPL-0004P4-Pn; Wed, 12 Nov 2025 20:25:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160475.1488600; Wed, 12 Nov 2025 20:25: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 1vJHPL-0004Ox-N6; Wed, 12 Nov 2025 20:25:35 +0000
Received: by outflank-mailman (input) for mailman id 1160475;
 Wed, 12 Nov 2025 20:25: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=EiA8=5U=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJHPK-0003si-Lk
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 20:25:34 +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 bdb1d539-c005-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 21:25:34 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AS4PR03MB8506.eurprd03.prod.outlook.com (2603:10a6:20b:576::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.13; Wed, 12 Nov
 2025 20:25:32 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025
 20:25:32 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bdb1d539-c005-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IgLML+ayXDhYMs6c74tVIxzoola2z6s/dmRyZoC5033WvueQQQKEluPX5MA8oaeQFPS+DVPEwm+04ZcuoZBeHv0MDabUyxaA6aK7pPuEs1RwTz1UwouDdNqT+VghLe8CK5MnF9itBaa82ZFf/R7DtGq6mzZ4ehyJuPoGTkbWU9qgL3baAT60NQC32gcEQDLfEGdljY3TTjemVNLe0Owo1eknWEAUdj3oVW27zP/OSiOMtdKOIlQBR2IyUJ7KVV0puvTSs/C/o36u0I/TdlqeGerse8Mp3TeOvfV9iUa0m1ct/bQr7DA7wR4Rjx+HyVi8hf8M/clcW30IZonbT/03Aw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vEc11qj6VNeS+qQGExmT8/5BSuSV1Y4Xhy3y9veJe4s=;
 b=WQUw6HMwezkwmx6N0RicXsvZvNxpgeBVCCA6hYakiNWQLKPwwhKx/rgY3y7pWv2XWJCkI0TbPaDad7VuODux3KqkGCJ8eSs6nPfEJRtEJZeZ6vwTxu1+TvZM+IvkFLvZ07fdpSO4zRr/fukpXGLCJNobYdLZ94aQ8kF8GNOAJSrCpZUTdPIpZJcOx1gypjYlKmGjSGfGTTwqQEwJY9nhfoq3R1UvKWweiaQLlx5Hk3M/Uy+UtOVlrl387jcHQlK2QKV/rK5T7jZngWypBfpt3IgFWQgoVp2CFuEPTfJoHl15cxarejSsxgstcNWxl5Ksj//BnYjzgg/I2gLW6IIi+w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vEc11qj6VNeS+qQGExmT8/5BSuSV1Y4Xhy3y9veJe4s=;
 b=XCHYTsrZO/LrOMdaKADUU77jxIJvR934fGu25/Srr4b/dmhLtGv6ZCUYE+eKbpbjTPPAiCie4Mr+arYlJuooOzwrNxHue3N0BdEQcG1OZ+XiYzEPsmBxSYyJIMyexBjmwE74b6i9KvLv49IK2gcULR0qwKKuQlWTfWO6slT07MrIJA4nZEcdFrx7nY71B0dLLynObQoXclxrlbGRg4+QQP9H+4fHJJ6+Bwfr05jirW+BN1W7/AIxyieST/a+GHectysoweOzEVl78B/M0BxIFT9HPBSO85aDH6pLdFup4UksL8sMvJ+GC7Dk7vi1nvrLe/Sw+hF4tSeuFokswosbvg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <7b2fe09a-02f4-4575-9e42-1328f3a40f1d@epam.com>
Date: Wed, 12 Nov 2025 22:25:31 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] x86/hvm: revise "cpu_has_vmx" usage for
 !CONFIG_INTEL_VMX case
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Alejandro Vallejo <alejandro.garciavallejo@amd.com>
References: <20250924101417.229108-1-grygorii_strashko@epam.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20250924101417.229108-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0046.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::15) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|AS4PR03MB8506:EE_
X-MS-Office365-Filtering-Correlation-Id: 8090cf44-484a-46ec-9421-08de2229a10d
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?NU9tMm9wZUJLYVFUbCt2TDJJc0lTMFJyVk03NmhqMlFoT2RyUjVlUWpyYnZG?=
 =?utf-8?B?ZFJtS2p1VTVqaVIyL2xmU1VqcTN0Y1VpVm9sck56aXJrRWlRb3RSNS9zaFZJ?=
 =?utf-8?B?VitWZzlXbjlyMzBxRDRXT25ZaWdTWWQ4aFcwazlqcWNWd29rUnduZDlhWjM4?=
 =?utf-8?B?UmFUV3JiZC9Ob1VpNEtFcitIWkZRQSt4NW1zcGdxQmFvbGVvZm1iclRjOXpL?=
 =?utf-8?B?OGszcVBKRGhrNGJIayt3cE9RQXFBWGZ0RjFETVJLK0tPRU9WZzdoMENRM0xt?=
 =?utf-8?B?UTRqTjZOUTVuU0xCSy9WaTIxbkZrUEtnc05zSFc4K0NKcW43cVI3OXAvNzNU?=
 =?utf-8?B?N2FFeGc4b3pPeG5nS0xpTE96T2I0RUdXT1htaUlITS9NUDNjY0YrT0dBVk0z?=
 =?utf-8?B?WkhPOWN5NUQwZmZHa0x0b0E3KzEvNEI4WElTN2M1eGU0UFFWNXdKQWs2cy9F?=
 =?utf-8?B?WERtYjN1dmI5WXRKKytVTGxMY2xrUGhjVlJHYnJUVlJiSHUzL2JTbkd4TE9Q?=
 =?utf-8?B?cHZwalpVN0FzeUg3bmgvbENhRUxNQURFRjg0ZHpZZnpKTTVjM2dkQ0NjcVNX?=
 =?utf-8?B?UXNEd0pDNXVNUUt3dXVZNjNWMzNsQjY3YitqbmV6QXR3MGZmWmFRSjFlMlIx?=
 =?utf-8?B?N0JwaERLekVOYXhVRzhRdlk1bk1PR0hpS28zZ2ZSRnYvclJZTDNvUFBoaEFJ?=
 =?utf-8?B?UG5wbHh3M3dmTU9KK2hYQThUUS81T3ZyckpkekpaTHlsZVBnSUE0cms0ajNF?=
 =?utf-8?B?NmJGWkMrNkNsdTNMK1BWMjdOblhRdC9USTlkbFRBT3N5WkJmT0pPR1hrMDBm?=
 =?utf-8?B?RWtocGVCRkJvT0RyUjh1VEJFYVV1NHkzdjlWVkZZV3NTU2FmRkZyQlBkMVFO?=
 =?utf-8?B?N0d3eTJyVUw4ZDQvMGJ5RG9tTS9reWVpaXB5ZWtZckR0aE5iNVR3M3ljUFgz?=
 =?utf-8?B?NjBnNDFMLzJ0Y1U2REhHU29aOW8rRnNCOXUrTis1dnlrWEJ4a2NoUXlMeG16?=
 =?utf-8?B?M2RkcXdXUWxwdUpheU9YNTNiUllPR01PR3FncXNYUFgyVG1ETU94aE1vWjE0?=
 =?utf-8?B?Y2VacFN6VnlJZWFNeUovR3JhK1QzZy9pandpcGtFOStsS2ord3ovOG1xMHk5?=
 =?utf-8?B?WktjSk41NmF0TzZFV0lGdSt4TS9ySVhJM1djenE5WXNzME85UUpXYW4wZUtG?=
 =?utf-8?B?UTVSSEFHUFVTYlBsb0dMNUdJRjArZ0E4RW15K21vbGlIVXBXYk9nZm5PN2x3?=
 =?utf-8?B?SERhMHg1WnZ1K2tVN1Y4WWhzeE53SXBPamtPMjdzSkdGMFZnTU5CckJBWmRD?=
 =?utf-8?B?NktpOFlESXl6NGtwRC9ZdndnZkJOZWE3YjhyeWloVnlWdmYybE9YdVErSUlr?=
 =?utf-8?B?Y05yUWN0UFNzTXhlOG0rajVhcUlKcVhGM1l3M0xzdDJ0OFZ0ajBFY1FUZm1j?=
 =?utf-8?B?V3lERGtjaEJycXJaVVhHQ2xIUmVmMkMzNUZxbEgzY2pJRXBiQkdoR0wzZEZz?=
 =?utf-8?B?cWU1MW1nS3ZOc0pLbWlPaytMMDRBT0YzQmxRVk4zdjFXNWw3cUZTZkg3ZEZa?=
 =?utf-8?B?UzV6WGpZb05qZE1YUjR1ZlYrOWJnWHViU0UxU1d5SjFxUGpvOTd1dXJjbGhv?=
 =?utf-8?B?SzdwNUx5MjlhaXhPdWZGY0hWbE5VcDBPYTg3YVIvQ0FYRlBoNFJmYVhUeVA2?=
 =?utf-8?B?bUpkWkpCa0pwcC9JWklXUWpoZXBMUHVXalRVRGUwbGtVRTEyVzQ1M3pvYURK?=
 =?utf-8?B?TU1ocGhLbTlRUVV6Q01yQWdEcEhFYThyc3o2bVBvdlcya01mZzJrMEpDWUdu?=
 =?utf-8?B?UWU1M1piZm9GeStDaTRML0RCZlhDRDBvdDFjL2hWVHB0R2dYU3hVS0tRK0w5?=
 =?utf-8?B?dlVHdm83UVBTQTRoZDV4Tm5mV3ljejNrSng3STNNeFU0STYwWHVLd096SXp6?=
 =?utf-8?Q?0F1t2nU5RM7swvNn7avaUccF9MbjzkKc?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Z2IzSEsvMWVEVzFrZnNpUGlnMTUzMXhiV0VHWmtSblJFSlhvVjFGemRmNk1T?=
 =?utf-8?B?RHhMUVJvQXUyYStmZ2JVa1Bod09Kamp2SnZ6SFcwVUMvMDFNR3ZZYXRCOGQy?=
 =?utf-8?B?ZDZDbG85NGVGZWp1aEhtblhTYmFWVEtXbWRjK0tablF1M2g3VWRMTUFqUWlC?=
 =?utf-8?B?THFoM2xjcXJJZnZudElRV1AxaXc3TTBVa0xza01iS2Znb2xZYVE4OTNackJv?=
 =?utf-8?B?NW44YVBQQWJnT09YNndzMm1MVkZUZlpWaVlIZjMxSVgweEFIc3pVWmYzbi9R?=
 =?utf-8?B?MUloUWJ1Zm5aMUNqK3V1UFJwUVp1TU1WenBqa25BYlE4ZkxCekQ0eVRyTy9u?=
 =?utf-8?B?cDBrdWp4NHgvTFFob2ZTZFB5QW1GYTEwcGxnUEVqc093VHFWdHc0YlczS2hD?=
 =?utf-8?B?SHZ3UFc5aXBvQ09heGdVbUtCMVc2SzJVQmFhVmsvd1Z3WmUxRlhwZm1aOVpD?=
 =?utf-8?B?SnZsS1k5SG1VM0ZBcDc1M3ZzdVUwVjhZcTh3ZTg2OEZTN0wrL0QzczM3RXVt?=
 =?utf-8?B?RUE0bGluK2ZMUFdINWN0d3Z3dmNiSW8rM212b1YzcFFJZFhZQ1paQ011MFlr?=
 =?utf-8?B?TEU5OVNreFFJZWwrZHk4L1A4VVpSM2NqanE1blM1ZVFnK05xbTlhY1VIOS9r?=
 =?utf-8?B?ZHNNYmYwaDlINjBYeGlDQUZZeDVsaE9NNWNQNWxqTEtpcjNtRnlIQjBXbitp?=
 =?utf-8?B?RXVaQnVmZHZaWmRGV2xyZ2ZLbUdQQTRMUjNta0NrTVVueFVpQ2dLd0lxT3BF?=
 =?utf-8?B?ajFFZFYwU1BrVUp0VW9MREJZalpxZnBSSno0MzlzamJPaDAvUDJqa1doeXRo?=
 =?utf-8?B?Y0VPUjVNTGFEcnlLeUs5ekhVY1pSdGhDK1VvQUw0UDAzbElhbHZYMnVYK0JN?=
 =?utf-8?B?bUpyMGZSS0RFUlNNbk9Ib3ptWDYrQ0FUeWdWOEMwUGZabWp4TysyQUJqbk9C?=
 =?utf-8?B?b21QWUxRRWg0dC82c0ljZUMxQUUxK1FWbzhxdDVlbVp0WS9LRkJjYmNVcXFU?=
 =?utf-8?B?MEVST1c2N3pkaVphcXQvQWVJWXh5RytkZGRVUXl0NEJnRU5MWWhiYnpxTHAz?=
 =?utf-8?B?NVdaaFMxVDVxMHVQSUlVWjYwUGV5MHBIcXBuc3dvMjQzWXQycld3M0Noc01m?=
 =?utf-8?B?aHF2am8wUnB3NVBveFZ5UGJMMlRqVk4rNE93Q0ZKamxuYzY2MzY4QUNPekds?=
 =?utf-8?B?ejNUY2VLRkNzYmJIejB5SW9oOXBrQ3dtWEpvcVdGZ3VWTzJ5allJOC9nMEc2?=
 =?utf-8?B?NlJQcm0yUThHZWF6aUMyeG5ic3pGQWlwZXFHb3htYTVjSDFrWG8xWDdhRElt?=
 =?utf-8?B?MXB5MWxCWTVRUURPTFRwa1JSQ3hBWUtKdHpDNW1oeFdmS0hlUTEyR3M4dnYz?=
 =?utf-8?B?R2lwTUVFbm5wK2pQckpYVFpkKy9zSmFLOXRNTVJ4VE9LWDBkRUJjVytObVl3?=
 =?utf-8?B?RTFrejVYS29MVHlCeVdPWUFjRzhhKzJHRXFRS0grREpiY2YxQnJuVlNuaDdt?=
 =?utf-8?B?VDRxQ0lsYVdCS2pUKzZwVXdhU1hyOGZ2bWEzYUh5TFVDNkExcGFaV3k3cGNy?=
 =?utf-8?B?ZWh4bXIzMXRNeEJxYnkzd1E5SFZqTkx0dm50b0Y0Z0ZFNkRJVVJXMWpsRnF2?=
 =?utf-8?B?NzZzMXZ3NUNzc3hOTEx0RFY1Um5zMmJveU1rdjBwZkF4RlZEUm5sMmo2RFJu?=
 =?utf-8?B?ajlUNlVuaHN1cWVwR2xEdzlqcXNDMkpuT2F3TjZSRUxuZUZlRXFjd1Q3emdO?=
 =?utf-8?B?c3JnZnZiRDhCVU1yZkdlV0xlRnNPMkxJRzRyZ2w3ZXAwTXQ4OXV0ei9vYnlV?=
 =?utf-8?B?NXRGNWFCdENCTEVHeE53S1dBN3JtUnhUN3ZVNmV1bkRDcUd2ZTdEbldEU3Yv?=
 =?utf-8?B?VHRTTnRjRVRwSGh3bE04ZWxmc3NKSHhyUkVEQWZONWMvSTIxY25KVkhUQmdl?=
 =?utf-8?B?VjkzUFMxOWJ5WXNYYnh5WGhrTHBoREw1Y0Zza0FnRUJWQ1Y4aTk4SFk2S1RB?=
 =?utf-8?B?NHdZNUtTSmEvMXo2U3h2M0ZHUUc2Y3B6UFpPSlR5ZTRjbEtRbEJ1dVZONlpF?=
 =?utf-8?B?ZGo4aTlNd0hSSDNsWERTVStjN09veHNlZE5RTHJuK0xNZklhM0pOOUxzQ0Z3?=
 =?utf-8?B?b1QyTGJlZDNqOWc5OVFLVDBjSnJTRkNqbjJ6K2E1L0ZqcTcwanAyUEFsU3do?=
 =?utf-8?B?bHc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8090cf44-484a-46ec-9421-08de2229a10d
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 20:25:32.5402
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: slcQg8rxjiNjnK/+vV9k/Y8lJbKq8rvtqoRfABIw9z2Z5pvJ2fK6qTCZ9oGVFIlkaW/XTVznW2rQPLHq0XfJ5jcTx0H4WWn8Ppqc4MYA3MM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR03MB8506

Hi

Could it be merged if no other comments, please?

On 24.09.25 13:14, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Since commit b99227347230 ("x86: Fix AMD_SVM and INTEL_VMX dependency") the
> HVM Intel VT-x support can be disabled, but it still keeps VMX
> code partially built-in. Particularly in HVM code there are two places:
> 
> 1) hvm/dom0_build.c
>   dom0_construct_pvh()->pvh_populate_p2m()
>      ...
>      if ( cpu_has_vmx && paging_mode_hap(d) && !vmx_unrestricted_guest(v) )
>      {
>          ...
>          [unreachable for !cpu_has_vmx case]
>          rc = pvh_setup_vmx_realmode_helpers(d);
> 
> pvh_setup_vmx_realmode_helpers() allocates memory and configures
>   HVM_PARAM_VM86_TSS_SIZED
>   HVM_PARAM_IDENT_PT
> 
> 2) hvm/hvm.c
>   hvm_set_param()
>      ...
>      case HVM_PARAM_IDENT_PT:
> 
>          if ( !paging_mode_hap(d) || !cpu_has_vmx )
>          {
>              d->arch.hvm.params[index] = value;
>              break;
>          }
>          [unreachable for !cpu_has_vmx case]
>          ...
> 
> Hence HVM_PARAM_IDENT_PT/HVM_PARAM_VM86_TSS_SIZED are used only by VMX code
> above code become unreachable in !cpu_has_vmx case and can be optimazed
> when !CONFIG_INTEL_VMX.
> 
> Replace "cpu_has_vmx" with using_vmx() to account !CONFIG_INTEL_VMX and allow
> compiler DCE to optimize code.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
> add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-604 (-604)
> Function                                     old     new   delta
> hvm_set_param                               1602    1473    -129
> dom0_construct_pvh                          4438    3963    -475
> Total: Before=3567191, After=3566587, chg -0.02%
> 
>   xen/arch/x86/hvm/dom0_build.c | 2 +-
>   xen/arch/x86/hvm/hvm.c        | 2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
> index 5551f9044836..5ac2cf8394d8 100644
> --- a/xen/arch/x86/hvm/dom0_build.c
> +++ b/xen/arch/x86/hvm/dom0_build.c
> @@ -473,7 +473,7 @@ static int __init pvh_populate_p2m(struct domain *d)
>           }
>       }
>   
> -    if ( cpu_has_vmx && paging_mode_hap(d) && !vmx_unrestricted_guest(v) )
> +    if ( using_vmx() && paging_mode_hap(d) && !vmx_unrestricted_guest(v) )
>       {
>           /*
>            * Since Dom0 cannot be migrated, we will only setup the
> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> index 95a80369b9b8..70331aeec9a0 100644
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -4302,7 +4302,7 @@ static int hvm_set_param(struct domain *d, uint32_t index, uint64_t value)
>            * Only actually required for VT-x lacking unrestricted_guest
>            * capabilities.  Short circuit the pause if possible.
>            */
> -        if ( !paging_mode_hap(d) || !cpu_has_vmx )
> +        if ( !paging_mode_hap(d) || !using_vmx() )
>           {
>               d->arch.hvm.params[index] = value;
>               break;

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Nov 12 21:13:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 12 Nov 2025 21:13:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160491.1488610 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJI9z-0002bT-5h; Wed, 12 Nov 2025 21:13:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160491.1488610; Wed, 12 Nov 2025 21:13:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJI9z-0002bM-35; Wed, 12 Nov 2025 21:13:47 +0000
Received: by outflank-mailman (input) for mailman id 1160491;
 Wed, 12 Nov 2025 21:13: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=Wz/o=5U=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1vJI9x-0002bG-EY
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 21:13:45 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 76c637d7-c00c-11f0-9d18-b5c5bf9af7f9;
 Wed, 12 Nov 2025 22:13:43 +0100 (CET)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:8ac4:0:0:0:0:f7])
 by mailhost.m5p.com (8.18.1/8.17.1) with ESMTPS id 5ACLDYAA025674
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO)
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 16:13:40 -0500 (EST)
 (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.18.1/8.15.2/Submit) id 5ACLDYTn025673
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 13:13:34 -0800 (PST)
 (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 76c637d7-c00c-11f0-9d18-b5c5bf9af7f9
Date: Wed, 12 Nov 2025 13:13:34 -0800
From: Elliott Mitchell <ehem+xen@m5p.com>
To: xen-devel@lists.xenproject.org
Subject: Xen DomU Bootloader Experiences
Message-ID: <aRT4fiuF8soWI6tc@mattapan.m5p.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
X-Spam-Status: No, score=0.4 required=10.0 tests=KHOP_HELO_FCRDNS autolearn=no
	autolearn_force=no version=4.0.1
X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on mattapan.m5p.com

A few times there have been mentions of a need to choose between boot
methods for DomUs.  There is a need to decide on ones to recommend and
put effort into supportting.  I may not have tried that many nor done
particularly great amounts of experimentation, but I do have some
experience with multiple User Domain bootloaders.

PyGRUB
Xen's bootloader.  PyGRUB is quite functional within its limits.  In
particular it simulates the domain's environment in Domain 0.  This means
the security exposure is problematic.  Another big concern is that it
only does GRUB v1 syntax.  For a long while Debian had a package for
generating those files on a modern system, but that package was dropped.

Yet PyGRUB does avoid needing to use external tools to retrieve the
kernel.  If the kernel is updated inside the domain, this does get the
new kernel.  Further being architecture-independent this works on x86,
ARM*, RISC-V and PowerPC.

As it is the only GRUB-flavor loader available on ARM*, that is the only
place where I've used PyGRUB.


PvGRUB
I'm sure nearly everyone knows about PvGRUB.  By being a proper port of
GRUB to run directly on Xen, it overcomes PyGRUB's disadvantages.  The
one disadvantage is needing to get patches into an external project for
changes in Xen.

Two changes to Xen urgently need propogation to PvGRUB.  I'm unsure
whether PvGRUB unmaps its mapping of vcpu_info data.  The second is
needing to work on ARM*, RISC-V and PowerPC.  The latter is the one and
only way in which PvGRUB is inferior to PyGRUB.

As PvGRUB is only available for x86, that is the only place I've used
PvGRUB.


EDK2/Tianocore
Quite well-known for being the basis of most x86 firmwares, plus being
part of a typical Qemu setup.  Not nearly as well known for being a Xen
DomU bootloader.

When it was working you would build their ArmVirtXen.dsc file and get
XEN_EFI.fd as output.  You would then use XEN_EFI.fd for the domain's
kernel.  If you looked at the console you saw something which looked and
acted pretty similar to a UEFI firmware on x86 machines.  This was
extremely functional for OSes which didn't particularly like GRUB.
Notably I've read of it being able to load a Redmond OS and it was quite
functional for booting an ARM64 port of FreeBSD.

Sometime after November 16th, 2022 or commit fff6d81270.  The built
images stopped functioning.  This is actually rather concerning since it
may also effects firmwares built for x86 HVM domains.  I don't presently
know whether there are multiple bugs, or a single one effecting all Xen
builds.

There is also an urgent need to get EDK2/Tianocore updated to match
Xen/ARM's disallowing mapping the shared information page multiple times.
As I did not wish to become deeply involved with EDK2/Tianocore I sent a
patch to xen-devel close to 1.5 years ago.  Lack of action suggests there
is an urgent need for a liason.



Recommendations:
PyGRUB is functional within its limits.  Problems are GRUBv1 syntax and
running within Domain 0.  Given this I feel the Xen Project should be
heading towards deprecating PyGRUB.  Since PvGRUB works for x86 now, I
would default to neither building nor installing PyGRUB on x86.  For
other architectures PyGRUB is still useful.

The Xen Project should formally ask the GRUB Project to port PvGRUB to
ARM, RISC-V and PowerPC.  The need for PvGRUB on ARM seems rather urgent.
Without a proper bootloader VMs aren't too useful.


The Xen Project needs people to work with EDK2/Tianocore.  The oldest
report I've seen of the EDK2/Tianocore issue dates to mid-2023.  Now two
years later the bug is still present.

The ability to configure XEN_EFI.fd as a domain kernel is a feature
highly worthy of being ported to x86.  For OSes which don't particularly
like GRUB, but do have PV drivers this is an ideal boot method.


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Thu Nov 13 01:01:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 01:01:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160463.1488620 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJLiK-0005mb-Qh; Thu, 13 Nov 2025 01:01:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160463.1488620; Thu, 13 Nov 2025 01:01:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJLiK-0005mB-Mg; Thu, 13 Nov 2025 01:01:28 +0000
Received: by outflank-mailman (input) for mailman id 1160463;
 Wed, 12 Nov 2025 20: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=3wlB=5U=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1vJHIS-0002m5-Jf
 for xen-devel@lists.xenproject.org; Wed, 12 Nov 2025 20:18:28 +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 bc4d2106-c004-11f0-980a-7dc792cee155;
 Wed, 12 Nov 2025 21:18:23 +0100 (CET)
Received: from DS2PR03MB8444.namprd03.prod.outlook.com (2603:10b6:8:331::20)
 by SJ0PR03MB6963.namprd03.prod.outlook.com (2603:10b6:a03:431::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Wed, 12 Nov
 2025 20:18:18 +0000
Received: from DS2PR03MB8444.namprd03.prod.outlook.com
 ([fe80::9e66:7fb0:f412:e3cd]) by DS2PR03MB8444.namprd03.prod.outlook.com
 ([fe80::9e66:7fb0:f412:e3cd%6]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025
 20:18: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: bc4d2106-c004-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=he2Ab6zWD3G1/xTjfVRt7av5MLDQ4rYIQP7UWGxsWzIkvufswVEnwzVoajvl93mZspoDVomXwSgElyhzcHrpyLEBMjRHVrH1hfh3XeFJq1fhmkF/JhMwRQ7u8A7YQemEBvQSghUqOfPgmGzdhwBl9IROOpqs4TQdHXQQAQwPAhdxZyoqR3l0zTMBsSYCb9gbwHYugfPVxi12RERG9WOf5f8FJzlVinSOFDyxozjVKsnwkBS5H1y5qKs9EMjEGKaMNc0qpyFTpDfNO10nNsb/DEzZRqPyVbKrLFyxrgzdiQpmr6xxSK3MbLurf/PL5O+BpzWIbvoT3iTqQXkMog/OJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CCh5AUiAieRdltULojbrVcpXSJCkFme0QwiMZmkzfi8=;
 b=ytyjRLx0LPGRZz6tSqeg2U0sms0HME9LffOrx9uTpk3sXUM9muBtAGm/6Yqa4rfpQYB7+jzksvAyHn7FbBJAze8qHYytSWfUGCIT8qILbCVcr7W4KK6ykZgQib6VbSaI5OmPQ3emIT+tSf+A9C+pNBp+Xqw9SZgYGWCP61C+uebaXobxq6WhmI0dBp5EGVGjR6bjEZeltXTsQSwELlUMOjU0pkPiGJ4R/4AH2kmqdWRbY+5HZX/PhpMUzEpAtuxfXnEKlWKMqLrxEd3TDvmIURDgD65jzZCy4L7YyMDQC00JAxSPdK0l+MY/EfuTzLWdSdcQu1131iMeTetep61v2A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CCh5AUiAieRdltULojbrVcpXSJCkFme0QwiMZmkzfi8=;
 b=Px5jQag0FfMbQVRPfpGFsPYpoW0U1aiUs7zJ+/xPi3GR4nL6eFXauuLu5m4XYT9Du5QQI6ohPgTTiQcTKk3lGSQl0P7ILK3+vgikOWxbQMP4CHSqPPoDZiLke2ih8sxfttAxWuz0LiX1ihFbRTrTl4/oYoj24Pn0vJKvbVTnSaw=
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
Date: Wed, 12 Nov 2025 20:18:00 +0000
Message-ID: <20251112201800.3678184-1-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0532.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:2c5::14) To DS2PR03MB8444.namprd03.prod.outlook.com
 (2603:10b6:8:331::20)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PR03MB8444:EE_|SJ0PR03MB6963:EE_
X-MS-Office365-Filtering-Correlation-Id: a0b6f390-6059-4069-5c77-08de22289e7d
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:
	=?us-ascii?Q?oXS0DmOCEHQ9lmkBLp9xO4kFFvdLm2k1VBXKOWfZV5Yo9LJg8/jlC0CJnkrJ?=
 =?us-ascii?Q?WOlHB4FUhwPdm/w4mLQFf7UmQU+gdlufWOzlAgufeuT6zJAsgRxw8ho7wZdI?=
 =?us-ascii?Q?Q0iBp2MvtQgZvWvg3HvPbSBRFQeuD/fGfVsdpG8IB/rXW1j77sWh7EWv8pg3?=
 =?us-ascii?Q?zZzVpyH46h1GV08J+/M+wuxgDvrbtGMrzl2iZsuRkxdt0EReHkkB1B7135WB?=
 =?us-ascii?Q?jpFX2moMVk7X2HGuIVpuqfDEbwG3whFUHDyjjSBYurnkXSxzNkIFbIapJmQZ?=
 =?us-ascii?Q?zDkMAX7NnrqAOTNYG+QodYv4bcA1UD/o7lWREY3smzm3GpWNTpuHT+mUHDAT?=
 =?us-ascii?Q?tpzpS3VyomHPMgHa5oO7TdQb0tE7cAtISJ5DYdb311Rtd3ZIV41PTvTtd02g?=
 =?us-ascii?Q?sBbKWvDabnBo0c9HXJALS5plVSZboxVHGfIf7Yp3jszlMKg0RZfCP+cZvpsu?=
 =?us-ascii?Q?JKUCKnaz8pABAzU3WYGzOWdQHCDT4ZVbKHeDqoul9oM2kk3NPLFuy269SYsN?=
 =?us-ascii?Q?8GiQP7mQckOU1ayBgiLcmQ9mcbm/V2QGbC+AyuirZHY9YJ1v7TbVdKPwqM0Z?=
 =?us-ascii?Q?Q5UqA0hxR+CQou5XH5jMKvcKD07YCzDek6nWsmmaYOi2jpF5s/dEpaXh/a+C?=
 =?us-ascii?Q?TlDPN4wxd0USOPhLx2KGt3fyZ+J7oWaOj5KHg/v5FLazEkZ+n6ioUT/KnWS0?=
 =?us-ascii?Q?ZpJp9H8PPoslNPUdzg9WTWdG3yPX8ULEIhuAXGM3NiNfsg05r2pzm3L+CvgW?=
 =?us-ascii?Q?LkSg8S49/DdiojB74Pew0PfGHO5YzRLlqFO/S9yPXBUGpoGjj+hMc9dWC8Ug?=
 =?us-ascii?Q?/OUTjafXD/D2o0hfzFwVg6ddWTSefmQv4xJy22CRt6UUtFFkCBPjQ00mDoPV?=
 =?us-ascii?Q?N6aF9HxoLgJSPu9MUeiYmFl/wlPnZi9WqWxnvo5zW4fexYTt+7OZq0vKzkrO?=
 =?us-ascii?Q?v0ubH33dKqQO+dChsu0PrSmY5PHzZmneq8xKbeYqvgFmN2y0FIcTl/Ky6JiS?=
 =?us-ascii?Q?Pg2CDGC/BkL//Vi+1z/WHHoBUiDASVLegdVgR/vanK9kyrXsaEipU2OsMmH5?=
 =?us-ascii?Q?jI8exY4iG+G4M0Q42V+4M+bl9k9ExFRUZQSsrPpUTauAbzDSrF7t2ASNyy1m?=
 =?us-ascii?Q?MtiYi+Li7P9qbnVLrep6exYktmYKcRRf29PA9gFi+AuFRCCYeYdjq706l9RP?=
 =?us-ascii?Q?9Bvj3HWBwbt/x6+1qFxrnfCnXLlS2iPloRCye3Kwnd9B9EeTYPee42VZhtFP?=
 =?us-ascii?Q?vToEQTfYyF69u2+YsQwDBdc1n1KAiUz7W3ROTAjm4ygG0dqUY/XBebqdJSQK?=
 =?us-ascii?Q?BYAWqo/f58hQokYYIRbCVNASpT+jANFJkh9GWWY3ZooJkOFSVtFmwJ10yWrH?=
 =?us-ascii?Q?R5sB9m7pgYn7rGkLTTCRzv+Jaxh3+4SUfjXn8SqnUYLHxX+/DEkSgVAl9/U3?=
 =?us-ascii?Q?iBvKvJ0EdKongUZwtrCP0vvdAIN1QQZR?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS2PR03MB8444.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:
	=?us-ascii?Q?0LoCECpDyQleWF7/jHLwYlkH3mulBKHxN62CRFIDaE7AtnCRT5yYDAPVren0?=
 =?us-ascii?Q?Za9NlGieEPW+bFNjimYq6zjHdEjaUhZRfTm7lEgzsHsorrN5Uus6xz6OYqsW?=
 =?us-ascii?Q?5W5uWlv6SZGeMLD8/grRRs5699XRuaOWSFxaFOv80RUxksOzhAeJiRQtf4iX?=
 =?us-ascii?Q?sk90xfiLA/cdmjHPuUCRh70SDC8kJ/puiZSQ+KSRLRHfvwnlpYrJuL3p+rKV?=
 =?us-ascii?Q?nPgv9k3hrN/2mRds2xbzCy1XjovTU9EM3lKAp3XwZ+qrD8aRESBOMAF3TCHc?=
 =?us-ascii?Q?vvarG7yVwZtoZ6FLZuOwiY7q02sagX3ZcaEKVVqnOqXr2omllfbFUmBQFEIt?=
 =?us-ascii?Q?oQ/bBv7qOj0ZSiw1LrWoaiNsvhtIW3s+m6LDxTsjGIP10ASo+RJSL+5Bj2ob?=
 =?us-ascii?Q?qdL2jSQE+rdRcuII8gxv9ZdR93GexW9zLfA+emUp2t+mgtmJLzhd+w7DLF4u?=
 =?us-ascii?Q?nLNU7unVVyc+0w46TTvIEkBj94GUG2oOa/TV/7hjWLsf9JHBsfM9kyCo92Yb?=
 =?us-ascii?Q?nlqDQkkAnFH24RIZRDgoPzds+KOfccIItzvHGTTLoZ9G1hNGn1nXHo1aUsBX?=
 =?us-ascii?Q?HWCtSHrkCUXD6kpOvAymDh6mTo4aVHIzEo+BAvRoaKoy7Xx/67olXd288T8C?=
 =?us-ascii?Q?fgAt5kcSCunurnzPR13kzYPkRzkXhKGxVo/ZeVotI4du+sF85cP0r1yTU31b?=
 =?us-ascii?Q?DF4pdZwUPVY5fQX5ajDPnhDjQQME9zZ12fQiMm9qoiV1vuyUzuVjzfx0L2Rk?=
 =?us-ascii?Q?eqm9PtasLoV0stCnT6g68/ua7zswwVLLOldOoERQ4B/lKaoq9rrFSaMrSlD7?=
 =?us-ascii?Q?UUoQxwK3UUTOq0BB7j5vmsazePzGAX0jhE8ezEtU2J/AB076KFCpWHyAmpgo?=
 =?us-ascii?Q?OANl93UxMsONsbqd7EsazhTJZSv4jgu6JBPtWtP3gum0MdOKawzIyHmjD4F8?=
 =?us-ascii?Q?YLxP6bXnE4GTQsJJwYncqFxA54VTlqM4GVxcYxwzfK56mUGI3AloHhDNyNLm?=
 =?us-ascii?Q?jzvrxZIf+4Wk4KW4JZttt9PuXBaiTUnpfQ6y7ia8jQtDxBXk0hZgWwKWeCVR?=
 =?us-ascii?Q?tIBmZIcC1LvBdDIhkszzwktSNLpEzVm7DC63dnfCv4HdkDEtm+NLE+3Iak30?=
 =?us-ascii?Q?VIUuH+o9GPeOCIf+d98zxto1cHkzb96HPV30JGf6E+KA1hvyjts2w5Vu51v9?=
 =?us-ascii?Q?o4koG18m3b7ck4dBr4PW4wVlbEd91rZlEo770OcrybIQhyKpKoCpqIoQWLnr?=
 =?us-ascii?Q?wOtNaeGhM93wZDjsOPhAwwvhMUcoS660//wMoime209qA9QpT5uXaASxRuT/?=
 =?us-ascii?Q?pULxyfp/kKYwTCdSwFllIE7iYytobutXwNaVuZbtcvyGdaGoowns5Y1cdCTT?=
 =?us-ascii?Q?AvMSAlcp/9aQNLbHklaliivYnh0Q8TDV3Xm/vVM6imhKZQf9SY4y0QYcqfXY?=
 =?us-ascii?Q?csXYBJeSWEhlsnUMVEZ1ZBdDBYOkddN0gjSKCBlFxKxCKxXtBc5xHlpEAtKw?=
 =?us-ascii?Q?ndYdm9LX7KXPk6rG9YP96MmJwRlRV2rj54rl5LSaBymf8/zuywO4bW8OMb4/?=
 =?us-ascii?Q?H6oikDQpj0YVK5fKrueTv/vhIUFRG/EVVCv3roMY?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a0b6f390-6059-4069-5c77-08de22289e7d
X-MS-Exchange-CrossTenant-AuthSource: DS2PR03MB8444.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2025 20:18:18.7145
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: nCqcOlDlhNWdERj5Qfcs7GTxtM40fo4v7ZSyKyac0znKHhK2wlWRHdsuD0DxmYSquR00Xok6KXZXnCrYOwK0iQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6963

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.
---
 xen/arch/x86/cpu/intel.c                | 32 +++++++++++++------------
 xen/arch/x86/include/asm/intel-family.h |  4 ++++
 2 files changed, 21 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
index 6f71365b7e..36e4c71802 100644
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -86,7 +86,7 @@ static void __init check_memory_type_self_snoop_errata(void)
 	if (!boot_cpu_has(X86_FEATURE_SS))
 		return;
 
-	switch (boot_cpu_data.x86_model) {
+	switch (boot_cpu_data.model) {
 	case 0x0f: /* Merom */
 	case 0x16: /* Merom L */
 	case 0x17: /* Penryn */
@@ -137,10 +137,10 @@ static void __init probe_masking_msrs(void)
 	unsigned int exp_msr_basic, exp_msr_ext, exp_msr_xsave;
 
 	/* Only family 6 supports this feature. */
-	if (c->x86 != 6)
+	if (c->family != 6)
 		return;
 
-	switch (c->x86_model) {
+	switch (c->model) {
 	case 0x17: /* Yorkfield, Wolfdale, Penryn, Harpertown(DP) */
 	case 0x1d: /* Dunnington(MP) */
 		msr_basic = MSR_INTEL_MASK_V1_CPUID1;
@@ -191,7 +191,7 @@ static void __init probe_masking_msrs(void)
 	       expected_levelling_cap, levelling_caps,
 	       (expected_levelling_cap ^ levelling_caps) & levelling_caps);
 	printk(XENLOG_WARNING "Fam %#x, model %#x expected (%#x/%#x/%#x), "
-	       "got (%#x/%#x/%#x)\n", c->x86, c->x86_model,
+	       "got (%#x/%#x/%#x)\n", c->family, c->model,
 	       exp_msr_basic, exp_msr_ext, exp_msr_xsave,
 	       msr_basic, msr_ext, msr_xsave);
 	printk(XENLOG_WARNING
@@ -265,7 +265,7 @@ static void __init noinline intel_init_levelling(void)
 	 * so skip it altogether. In the case where Xen is virtualized these
 	 * MSRs may be emulated though, so we allow it in that case.
 	 */
-	if ((boot_cpu_data.x86 != 0xf || cpu_has_hypervisor) &&
+	if ((boot_cpu_data.family != 0xf || cpu_has_hypervisor) &&
 	    probe_cpuid_faulting()) {
 		expected_levelling_cap |= LCAP_faulting;
 		levelling_caps |= LCAP_faulting;
@@ -348,7 +348,7 @@ void intel_unlock_cpuid_leaves(struct cpuinfo_x86 *c)
 static void cf_check early_init_intel(struct cpuinfo_x86 *c)
 {
 	/* Netburst reports 64 bytes clflush size, but does IO in 128 bytes */
-	if (c->x86 == 15 && c->x86_cache_alignment == 64)
+	if (c->family == 15 && c->x86_cache_alignment == 64)
 		c->x86_cache_alignment = 128;
 
 	if (c == &boot_cpu_data &&
@@ -358,8 +358,8 @@ static void cf_check early_init_intel(struct cpuinfo_x86 *c)
 	intel_unlock_cpuid_leaves(c);
 
 	/* CPUID workaround for Intel 0F33/0F34 CPU */
-	if (boot_cpu_data.x86 == 0xF && boot_cpu_data.x86_model == 3 &&
-	    (boot_cpu_data.x86_mask == 3 || boot_cpu_data.x86_mask == 4))
+	if (boot_cpu_data.vfm == INTEL_P4_PRESCOTT &&
+	    (boot_cpu_data.stepping == 3 || boot_cpu_data.stepping == 4))
 		paddr_bits = 36;
 
 	if (c == &boot_cpu_data) {
@@ -458,7 +458,7 @@ static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
 {
 	uint64_t val;
 
-	if ((c->x86 == 15) && (c->x86_model == 1) && (c->x86_mask == 1)) {
+	if ( c->vfm == INTEL_P4_WILLAMETTE && c->stepping == 1 ) {
 		val = rdmsr(MSR_IA32_MISC_ENABLE);
 		if ((val & (1 << 9)) == 0) {
 			printk (KERN_INFO "CPU: C0 stepping P4 Xeon detected.\n");
@@ -468,8 +468,10 @@ static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
 		}
 	}
 
-	if (c->x86 == 6 && cpu_has_clflush &&
-	    (c->x86_model == 29 || c->x86_model == 46 || c->x86_model == 47))
+	if ( cpu_has_clflush &&
+	    ( c->vfm == INTEL_CORE2_DUNNINGTON ||
+	      c->vfm == INTEL_NEHALEM_EX ||
+	      c->vfm == INTEL_WESTMERE_EX ))
 		setup_force_cpu_cap(X86_BUG_CLFLUSH_MONITOR);
 
 	probe_c3_errata(c);
@@ -540,7 +542,7 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
         }
     }
 
-    switch ( c->x86 )
+    switch ( c->family )
     {
         static const unsigned short core_factors[] =
             { 26667, 13333, 20000, 16667, 33333, 10000, 40000 };
@@ -553,7 +555,7 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
         if ( !max_ratio )
             return;
 
-        switch ( c->x86_model )
+        switch ( c->model )
         {
         case 0x0e: /* Core */
         case 0x0f: case 0x16: case 0x17: case 0x1d: /* Core2 */
@@ -657,8 +659,8 @@ static void cf_check init_intel(struct cpuinfo_x86 *c)
 	/* Work around errata */
 	Intel_errata_workarounds(c);
 
-	if ((c->x86 == 0xf && c->x86_model >= 0x03) ||
-		(c->x86 == 0x6 && c->x86_model >= 0x0e))
+	if ((c->family == 0xf && c->model >= 0x03) ||
+		(c->family == 0x6 && c->model >= 0x0e))
 		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
 	if (cpu_has(c, X86_FEATURE_ITSC)) {
 		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
diff --git a/xen/arch/x86/include/asm/intel-family.h b/xen/arch/x86/include/asm/intel-family.h
index d8c0bcc406..c71e744731 100644
--- a/xen/arch/x86/include/asm/intel-family.h
+++ b/xen/arch/x86/include/asm/intel-family.h
@@ -179,6 +179,10 @@
 #define INTEL_XEON_PHI_KNL		IFM(6, 0x57) /* Knights Landing */
 #define INTEL_XEON_PHI_KNM		IFM(6, 0x85) /* Knights Mill */
 
+/* Family 15 - NetBurst */
+#define INTEL_P4_WILLAMETTE		IFM(15, 0x01) /* Also Xeon Foster */
+#define INTEL_P4_PRESCOTT		IFM(15, 0x03)
+
 /* Family 5 */
 #define INTEL_FAM5_QUARK_X1000		0x09 /* Quark X1000 SoC */
 #define INTEL_QUARK_X1000		IFM(5, 0x09) /* Quark X1000 SoC */
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 03:17:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 03:17:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160536.1488641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJNpi-0003tL-G4; Thu, 13 Nov 2025 03:17:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160536.1488641; Thu, 13 Nov 2025 03: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 1vJNpi-0003tC-Bx; Thu, 13 Nov 2025 03:17:14 +0000
Received: by outflank-mailman (input) for mailman id 1160536;
 Thu, 13 Nov 2025 03:17: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=zWJc=5V=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vJNph-0003dm-6c
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 03:17:13 +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 3eab5e93-c03f-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 04:17:12 +0100 (CET)
Received: from BN0PR04CA0001.namprd04.prod.outlook.com (2603:10b6:408:ee::6)
 by LV9PR12MB9832.namprd12.prod.outlook.com (2603:10b6:408:2f3::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Thu, 13 Nov
 2025 03:17:07 +0000
Received: from BN1PEPF00004687.namprd05.prod.outlook.com
 (2603:10b6:408:ee:cafe::9d) by BN0PR04CA0001.outlook.office365.com
 (2603:10b6:408:ee::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.15 via Frontend Transport; Thu,
 13 Nov 2025 03:16:59 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN1PEPF00004687.mail.protection.outlook.com (10.167.243.132) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Thu, 13 Nov 2025 03:17:06 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Wed, 12 Nov 2025 19:17:00 -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: 3eab5e93-c03f-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QAgjckaBMC83nZ50BXC+BI0FO/pOOG+Bf0OnHc3pyamBmz0hT7KDJq1bkRtBhl449/v1mWz49vOg9jinloqVulbJa6Yi1pbkJxU72Sp+4kICXHex25bF0+U7FLL6NWQ35KwecdNT58Hh2Y57YMiPGzWJgeKVFX4quKkC26CvMaPN7hGcwnu/W0Cgsb1IH1gpkgeGjqNxHFakha9EyPVzQ11WPHgb72vA8C6vJZtQxxklMfgl7WqIkd1V2t6nmharhd6/3dUAgzoccUvgOCZ0b0NkIa38fRzgowx+nH8YWy3jcweZTg5L3pHVQN04cDX+82oczgaY8CyUQD2nPwV1nw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Y3kG+geAE72cNuegALIQOm3cZ5UOGQs4E87VfcT4cus=;
 b=Cq7pCqek7fHjbxWl44Z9UoqWU0X+G0LSIgaI0UkMjphk28kHYtOismokdNj6YAMR4xN2vaRizR9iZEBuu/FMho52V2ZYfON3+CRKV+sind4H3Qm056c8v/XCGaXvEz188YvKGCv6JUReP+InorWjvM2XyGZaw74qMDmfnMd2wexU1OpzTjSdLrqMVOVcpiQTrbuNzglllq4QOzeliPOl8bRXDBod/GDM0FbLfmp3vc1ElZjyGo0Prtxj0HCW1P88sYWQSC4FKzUirbdFZvddPFwWpkP2fqEqB7BpWHt9DBxTuiaaBnR/GG0UMQTjG3AutcH0XGUa44yUCZ9+gEQsIA==
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=Y3kG+geAE72cNuegALIQOm3cZ5UOGQs4E87VfcT4cus=;
 b=oj3lBu4q8cMm0Jqa5SdhWdnj0oms/oWTn/1pp8YaJc7a8eJtB/RYnBaaHPW5nb92/qUKhc/e8g2ltyFiRDbPTH8VqK3pjkq9vREF+nzCYAixeKE4mLpYEx4p4kNyYaB726ytTBe+26JATcFADQPT+XEWCdAjvq1s9ua6xiUklrA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich <jbeulich@suse.com>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, "Tamas K Lengyel" <tamas@tklengyel.com>, Alexandru
 Isaila <aisaila@bitdefender.com>, Petre Pircalabu
	<ppircalabu@bitdefender.com>
Subject: [PATCH v1 3/7] xen/monitor: wrap monitor_op under CONFIG_VM_EVENT
Date: Thu, 13 Nov 2025 11:16:26 +0800
Message-ID: <20251113031630.1465599-4-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251113031630.1465599-1-Penny.Zheng@amd.com>
References: <20251113031630.1465599-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN1PEPF00004687:EE_|LV9PR12MB9832:EE_
X-MS-Office365-Filtering-Correlation-Id: d93d08d4-bafd-4e1f-3a9d-08de22632023
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?e9qvgQrHrCHuogUWaqwqc3ku9Tjt9F0avukwe0A8nT37fnSdGhcNWkOgH27j?=
 =?us-ascii?Q?fmC8pQcwchsqQf2gI/zvsPUVr5dTmD5YPc1Ngw7L9wWXtis6xgu3mLhAutq9?=
 =?us-ascii?Q?vHoEXdEt5y7shRaDeevJndMOcC0KjFtrBDivngJ1b6gNOycGlNRc4z7qj40q?=
 =?us-ascii?Q?ARWmiGUO0fBS86Mp2Stewhj4cQq9GYesuQGEagWkyci7Y33zrnvqMXjUtrG0?=
 =?us-ascii?Q?s16yIsQ7DqkPtsjl5pSozd3wnSel1+RN1FdQbWz7mqRlG4k1FXgZmagG7cMZ?=
 =?us-ascii?Q?PceFODxTA5fhWevanzpb8bAwLSiIF58XhUy2N8yHc+ZoBDUCh8iscbm3Z0uN?=
 =?us-ascii?Q?nT4CdUfa33Y7CX8uADRdYJDOzZ8WvCNEj+pZVztdmLiLBCImPz0B2ZifgQfm?=
 =?us-ascii?Q?BzyRd7AlPMnw1y1Pb9OfZUr8z330BpfzW/DyGt3gGy/d8NH5ZoqG2at36pg3?=
 =?us-ascii?Q?maLauqpU03kGy6Al73MFA/s3A/CmWvBXSKk+xjmo51b/pjvSvGWGA+beFo1J?=
 =?us-ascii?Q?W4YIIwqCuazeH6VkeB2pOPr+yg+46+A6XAMEeDMAnsOBFI6kRiuZA5tGbfm/?=
 =?us-ascii?Q?s1Swgtyln6vqrlwTvwo1IsLVKoiyd6idDLwRQ9Cz7Vg8peuoUdPw12IizQQ/?=
 =?us-ascii?Q?ojRAva81KzNLVRmVuG2UsDix/6xsxgboZhP97in/tqAYXubbCZuBqlzEkF8S?=
 =?us-ascii?Q?uye/0X+A3D7Nu/kyKmC2EdixRHXQcDeohiSM5YoWcr+PXu4fDrc8F2ZKsw2E?=
 =?us-ascii?Q?g/BUSPAMbwr+V8ylXJK3C0g97yvxPoqTcy2b8hWe6ATDdsuTz0e4iJh6RlwB?=
 =?us-ascii?Q?cUaExXZ23tqgXK2hQM/FUnUypGdOWd+wKn7HZL9V5Yah08r399D52GSWNqJI?=
 =?us-ascii?Q?moB0bW5M7+x+c+ptOr+OLyveGaEXFSy4M+l1UaftTRGaVNQKE7P1nHjmouor?=
 =?us-ascii?Q?2YE4yQl1oy8JB18uHpZtky8UXQP2dO+xMfJlWTfTg1Wh3jlWvdB1MvhJSXVQ?=
 =?us-ascii?Q?4f/bjJ7+lHiOYKCKKb9kvf0ZS6VKyAhnrZIDloeVWjRYvspEnCVRbzml/x7a?=
 =?us-ascii?Q?jeUPfD/HRz0WOYAnkbr0OcU2RJrD2SVcWHZoJg19/OeBn81XqANW2Zq/CViN?=
 =?us-ascii?Q?VDruTPH9ZKk7ArkWTEecFlfcab9Lx2a/L9ewlQc9jSM8YI4yqMSTEarSGHGh?=
 =?us-ascii?Q?Y/Et5QUA4fsvaUpH4OOgf1Hrf/UDn/To8/n5atsf9FZAhRLRXrBjiydzCECf?=
 =?us-ascii?Q?M4xmm7NT1qQKRX2E/clpmMtBPZV7Oj+YHAV+0yP58oOMXFHpvmClHxAyKZYn?=
 =?us-ascii?Q?95vMpA7sAvK4Z5ZeYBxc6vjcx+e3AF3NEvRycUHZNL63hpw57uIMrFyOOx/8?=
 =?us-ascii?Q?lb7LMTyTIF2BOQ8R20UMRXYeQMB0o1Q50oeaYLQE712ggSH5Ou17IEB+c3sQ?=
 =?us-ascii?Q?U3TTqJ+b4KFADU8ef613oJdrLAtstZj84OhoFfdWs+gc6KwFF5nq8MK+F9uB?=
 =?us-ascii?Q?wQBkBdn4zXD+WnJz1qQCJiDduAKyXUP2H8gMED5W3UcyumrLVAksKGIt6a39?=
 =?us-ascii?Q?KqSOhcLhyM8o+W4nz6g=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 03:17:06.9043
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d93d08d4-bafd-4e1f-3a9d-08de22632023
X-MS-Exchange-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:
	BN1PEPF00004687.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV9PR12MB9832

Feature monitor_op is based on vm event subsystem, so monitor.o shall be
wrapped under CONFIG_VM_EVENT.
The following functions are only invoked by monitor-op, so they all shall be
wrapped with CONFIG_VM_EVENT (otherwise they will become unreachable and
violate Misra rule 2.1 when VM_EVENT=n):
- hvm_enable_msr_interception
  - hvm_function_table.enable_msr_interception
- hvm_has_set_descriptor_access_existing
  - hvm_function_table.set_descriptor_access_existi
- arch_monitor_get_capabilities
Function monitored_msr() still needs a stub to pass compilation when
VM_EVENT=n.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- a new commit split from previous "xen/vm_event: consolidate CONFIG_VM_EVENT"
- Another blank line ahead of the #ifdef
- Move hvm_enable_msr_interception() up into the earlier #ifdef
- only arch_monitor_get_capabilities() needs wrapping, as this static inline
function calls hvm_has_set_descriptor_access_exiting(), which is declared only
when VM_EVENT=y
---
 xen/arch/x86/hvm/Makefile          |  2 +-
 xen/arch/x86/hvm/svm/svm.c         |  8 +++++++-
 xen/arch/x86/hvm/vmx/vmx.c         | 10 ++++++++++
 xen/arch/x86/include/asm/hvm/hvm.h | 18 +++++++++++-------
 xen/arch/x86/include/asm/monitor.h |  9 +++++++++
 5 files changed, 38 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 6ec2c8f2db..50e0b6e63b 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -16,7 +16,7 @@ obj-y += io.o
 obj-y += ioreq.o
 obj-y += irq.o
 obj-y += mmio.o
-obj-y += monitor.o
+obj-$(CONFIG_VM_EVENT) += monitor.o
 obj-y += mtrr.o
 obj-y += nestedhvm.o
 obj-y += pmtimer.o
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 9de2fd950e..06e4572d89 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -299,6 +299,7 @@ void svm_intercept_msr(struct vcpu *v, uint32_t msr, int flags)
         __clear_bit(msr * 2 + 1, msr_bit);
 }
 
+#ifdef CONFIG_VM_EVENT
 static void cf_check svm_enable_msr_interception(struct domain *d, uint32_t msr)
 {
     struct vcpu *v;
@@ -306,6 +307,7 @@ static void cf_check svm_enable_msr_interception(struct domain *d, uint32_t msr)
     for_each_vcpu ( d, v )
         svm_intercept_msr(v, msr, MSR_INTERCEPT_WRITE);
 }
+#endif /* CONFIG_VM_EVENT */
 
 static void svm_save_dr(struct vcpu *v)
 {
@@ -826,6 +828,7 @@ static void cf_check svm_set_rdtsc_exiting(struct vcpu *v, bool enable)
     vmcb_set_general2_intercepts(vmcb, general2_intercepts);
 }
 
+#ifdef CONFIG_VM_EVENT
 static void cf_check svm_set_descriptor_access_exiting(
     struct vcpu *v, bool enable)
 {
@@ -843,6 +846,7 @@ static void cf_check svm_set_descriptor_access_exiting(
 
     vmcb_set_general1_intercepts(vmcb, general1_intercepts);
 }
+#endif /* CONFIG_VM_EVENT */
 
 static unsigned int cf_check svm_get_insn_bytes(struct vcpu *v, uint8_t *buf)
 {
@@ -2457,9 +2461,11 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
     .fpu_dirty_intercept  = svm_fpu_dirty_intercept,
     .msr_read_intercept   = svm_msr_read_intercept,
     .msr_write_intercept  = svm_msr_write_intercept,
+#ifdef CONFIG_VM_EVENT
     .enable_msr_interception = svm_enable_msr_interception,
-    .set_rdtsc_exiting    = svm_set_rdtsc_exiting,
     .set_descriptor_access_exiting = svm_set_descriptor_access_exiting,
+#endif
+    .set_rdtsc_exiting    = svm_set_rdtsc_exiting,
     .get_insn_bytes       = svm_get_insn_bytes,
 
     .nhvm_vcpu_initialise = nsvm_vcpu_initialise,
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 2e9da26016..d29c9a2ff2 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -1520,6 +1520,7 @@ static void cf_check vmx_set_rdtsc_exiting(struct vcpu *v, bool enable)
     vmx_vmcs_exit(v);
 }
 
+#ifdef CONFIG_VM_EVENT
 static void cf_check vmx_set_descriptor_access_exiting(
     struct vcpu *v, bool enable)
 {
@@ -1534,6 +1535,7 @@ static void cf_check vmx_set_descriptor_access_exiting(
     vmx_update_secondary_exec_control(v);
     vmx_vmcs_exit(v);
 }
+#endif /* CONFIG_VM_EVENT */
 
 static void cf_check vmx_init_hypercall_page(void *p)
 {
@@ -2413,6 +2415,7 @@ static void cf_check vmx_handle_eoi(uint8_t vector, int isr)
         printk_once(XENLOG_WARNING "EOI for %02x but SVI=%02x\n", vector, old_svi);
 }
 
+#ifdef CONFIG_VM_EVENT
 static void cf_check vmx_enable_msr_interception(struct domain *d, uint32_t msr)
 {
     struct vcpu *v;
@@ -2420,6 +2423,7 @@ static void cf_check vmx_enable_msr_interception(struct domain *d, uint32_t msr)
     for_each_vcpu ( d, v )
         vmx_set_msr_intercept(v, msr, VMX_MSR_W);
 }
+#endif /* CONFIG_VM_EVENT */
 
 #ifdef CONFIG_ALTP2M
 
@@ -2871,7 +2875,9 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
     .nhvm_domain_relinquish_resources = nvmx_domain_relinquish_resources,
     .update_vlapic_mode = vmx_vlapic_msr_changed,
     .nhvm_hap_walk_L1_p2m = nvmx_hap_walk_L1_p2m,
+#ifdef CONFIG_VM_EVENT
     .enable_msr_interception = vmx_enable_msr_interception,
+#endif
 #ifdef CONFIG_ALTP2M
     .altp2m_vcpu_update_p2m = vmx_vcpu_update_eptp,
     .altp2m_vcpu_update_vmfunc_ve = vmx_vcpu_update_vmfunc_ve,
@@ -3079,9 +3085,11 @@ const struct hvm_function_table * __init start_vmx(void)
 
     vmx_function_table.caps.singlestep = cpu_has_monitor_trap_flag;
 
+#ifdef CONFIG_VM_EVENT
     if ( cpu_has_vmx_dt_exiting )
         vmx_function_table.set_descriptor_access_exiting =
             vmx_set_descriptor_access_exiting;
+#endif
 
     /*
      * Do not enable EPT when (!cpu_has_vmx_pat), to prevent security hole
@@ -3152,8 +3160,10 @@ void __init vmx_fill_funcs(void)
     if ( !cpu_has_xen_ibt )
         return;
 
+#ifdef CONFIG_VM_EVENT
     vmx_function_table.set_descriptor_access_exiting =
         vmx_set_descriptor_access_exiting;
+#endif
 
     vmx_function_table.update_eoi_exit_bitmap = vmx_update_eoi_exit_bitmap;
     vmx_function_table.process_isr            = vmx_process_isr;
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index f02183691e..da00ed0694 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -192,7 +192,11 @@ struct hvm_function_table {
     void (*handle_cd)(struct vcpu *v, unsigned long value);
     void (*set_info_guest)(struct vcpu *v);
     void (*set_rdtsc_exiting)(struct vcpu *v, bool enable);
+
+#ifdef CONFIG_VM_EVENT
     void (*set_descriptor_access_exiting)(struct vcpu *v, bool enable);
+    void (*enable_msr_interception)(struct domain *d, uint32_t msr);
+#endif
 
     /* Nested HVM */
     int (*nhvm_vcpu_initialise)(struct vcpu *v);
@@ -224,8 +228,6 @@ struct hvm_function_table {
                                 paddr_t *L1_gpa, unsigned int *page_order,
                                 uint8_t *p2m_acc, struct npfec npfec);
 
-    void (*enable_msr_interception)(struct domain *d, uint32_t msr);
-
 #ifdef CONFIG_ALTP2M
     /* Alternate p2m */
     void (*altp2m_vcpu_update_p2m)(struct vcpu *v);
@@ -433,11 +435,18 @@ static inline bool using_svm(void)
 
 #define hvm_long_mode_active(v) (!!((v)->arch.hvm.guest_efer & EFER_LMA))
 
+#ifdef CONFIG_VM_EVENT
 static inline bool hvm_has_set_descriptor_access_exiting(void)
 {
     return hvm_funcs.set_descriptor_access_exiting;
 }
 
+static inline void hvm_enable_msr_interception(struct domain *d, uint32_t msr)
+{
+    alternative_vcall(hvm_funcs.enable_msr_interception, d, msr);
+}
+#endif /* CONFIG_VM_EVENT */
+
 static inline void hvm_domain_creation_finished(struct domain *d)
 {
     if ( hvm_funcs.domain_creation_finished )
@@ -679,11 +688,6 @@ static inline int nhvm_hap_walk_L1_p2m(
         v, L2_gpa, L1_gpa, page_order, p2m_acc, npfec);
 }
 
-static inline void hvm_enable_msr_interception(struct domain *d, uint32_t msr)
-{
-    alternative_vcall(hvm_funcs.enable_msr_interception, d, msr);
-}
-
 static inline bool hvm_is_singlestep_supported(void)
 {
     return hvm_funcs.caps.singlestep;
diff --git a/xen/arch/x86/include/asm/monitor.h b/xen/arch/x86/include/asm/monitor.h
index 3c64d8258f..9249324fd0 100644
--- a/xen/arch/x86/include/asm/monitor.h
+++ b/xen/arch/x86/include/asm/monitor.h
@@ -71,6 +71,7 @@ int arch_monitor_domctl_op(struct domain *d, struct xen_domctl_monitor_op *mop)
     return rc;
 }
 
+#ifdef CONFIG_VM_EVENT
 static inline uint32_t arch_monitor_get_capabilities(struct domain *d)
 {
     uint32_t capabilities = 0;
@@ -102,6 +103,7 @@ static inline uint32_t arch_monitor_get_capabilities(struct domain *d)
 
     return capabilities;
 }
+#endif /* CONFIG_VM_EVENT */
 
 int arch_monitor_domctl_event(struct domain *d,
                               struct xen_domctl_monitor_op *mop);
@@ -123,7 +125,14 @@ static inline void arch_monitor_cleanup_domain(struct domain *d) {}
 
 #endif
 
+#ifdef CONFIG_VM_EVENT
 bool monitored_msr(const struct domain *d, u32 msr);
+#else
+static inline bool monitored_msr(const struct domain *d, u32 msr)
+{
+    return false;
+}
+#endif
 bool monitored_msr_onchangeonly(const struct domain *d, u32 msr);
 
 #endif /* __ASM_X86_MONITOR_H__ */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 03:17:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 03:17:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160535.1488630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJNpZ-0003eI-8F; Thu, 13 Nov 2025 03:17:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160535.1488630; Thu, 13 Nov 2025 03:17: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 1vJNpZ-0003eB-4V; Thu, 13 Nov 2025 03:17:05 +0000
Received: by outflank-mailman (input) for mailman id 1160535;
 Thu, 13 Nov 2025 03:17: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=zWJc=5V=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vJNpX-0003dm-Rl
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 03:17:04 +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 38122847-c03f-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 04:17:01 +0100 (CET)
Received: from BN0PR08CA0003.namprd08.prod.outlook.com (2603:10b6:408:142::19)
 by DS7PR12MB6189.namprd12.prod.outlook.com (2603:10b6:8:9a::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Thu, 13 Nov
 2025 03:16:55 +0000
Received: from BN1PEPF0000468D.namprd05.prod.outlook.com
 (2603:10b6:408:142:cafe::4d) by BN0PR08CA0003.outlook.office365.com
 (2603:10b6:408:142::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.17 via Frontend Transport; Thu,
 13 Nov 2025 03:16:55 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN1PEPF0000468D.mail.protection.outlook.com (10.167.243.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Thu, 13 Nov 2025 03:16:55 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Wed, 12 Nov 2025 19:16: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: 38122847-c03f-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PW/a2CCYAJ6lRpfA96nU4BF3Dr4bl7k2Tk1Sta7Tons1CgP4+Avl6RwqzpimLnEFn73DiZM8xnbAzx33khEczjpns/47wx9nx9S24OHRK3zJNT+7qgetQGpFfvfdsATdbK9Rkv0vlA9xYcjsXbJ+4/cKLyn1P8d2fEiCx7RF+AIxeOjRSZ9fR8BcdqMwFvYLh8znaRQHo0VKVd1GQVxhlmwDUbeqeoUKUr7l2wn75esYsWKVrXvI7JjeagRBzNvfwUM5/xhvmdnxANrwYZeJG2rTCplm3/jQw7srlpmtOru7wRyuv7Xe9J8D8tZ43Ve4dlP76YoJZ/fRJwfOxiNfpA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9FDNO415xiZvDXNB3TUXesp76OqUeka2h1D93hRa5wk=;
 b=JOH9Lg82TGQvZXfY6h+QI5jrTA3EAzBqZQyQZ/sQkYx4znUTs6diLlS2UnLDS0mXs/6n1VSbkCO1a604nct2+Uo4JvERQQtTwfWoN71RRDW58pcAxyBpHTOh5kC3b0mTkXb8D+MWavLLaO8qEUWiuvbYvkbsCB46+VPTF89i5VXjhsl2rWjYk+D/Sz4pHbFiuyKLOedNL4gFP3YaMpvO8YC7QbL5AVDu01+h+Zk+WVeioD7R4QwoQIlz+NOm7jwed8z/trTwxPliFMARC53fnerybM+4dC0VYqHqJijS9kIQO3bdhlpaRJV3QPy4pQkm6CZAs++8ArZO6DpTkiuSWg==
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=9FDNO415xiZvDXNB3TUXesp76OqUeka2h1D93hRa5wk=;
 b=odcQxtj3eTzreXUlQcz+7PaLPrZOUZTxamiv95JgeUQbRWtXWfqUB5oUmRFuRVW1lSjaK5t108y/wj+G6nQrOEiWOigMj64fjOE3D6xMSY2r2EHAX49PVjtreDmfdoTBcGIqyGG1QTln2mWFLpqOlx83uy91MBgqIly98jNH30Y=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich <jbeulich@suse.com>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, "Tamas K Lengyel" <tamas@tklengyel.com>, Alexandru
 Isaila <aisaila@bitdefender.com>, Petre Pircalabu
	<ppircalabu@bitdefender.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
Subject: [PATCH v1 0/7] consolidate vm event subsystem
Date: Thu, 13 Nov 2025 11:16:23 +0800
Message-ID: <20251113031630.1465599-1-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN1PEPF0000468D:EE_|DS7PR12MB6189:EE_
X-MS-Office365-Filtering-Correlation-Id: 73c397f4-8748-4d9b-d82b-08de2263194d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|7416014|376014|1800799024|36860700013|7053199007|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?0ezi81jvR6egzGwTND28dg+xQTG7/4dCQRJFJ8N5aEhSRvoSXXf8avk71wYy?=
 =?us-ascii?Q?TB1h3XqUYSvLfsJIv7lWzTEcV6frqysTIk4ccTM7Nqa0JrDksO3ywsIzlCp1?=
 =?us-ascii?Q?dC9Z41pO0i201AYS5dYNqakGBX5IPeYR4EG7DAPGzUWar/ULiUFhE4/6jMuQ?=
 =?us-ascii?Q?cYoYZiyc2K18lYqjRGgnm/loWOmZHo7xaHtxRnVqJBVnsb659gA9y9Lq5GA0?=
 =?us-ascii?Q?1QgTofLwKF/0CeQCmupD9WHCPqtRR34dEMG19Lc22/H03k+81KB5JelOgSHP?=
 =?us-ascii?Q?I/GJQhBR5eajdQOkMy1rXNFDx+VGbsUvjw4QLm1QpCkpJJ3JU6ZT27sZSRII?=
 =?us-ascii?Q?+iYTG/HNfYK7AtPZeJ+L7bYYDKp4N4OqDYPkJR+V9GrLF3SJxfZ+yYDqAwna?=
 =?us-ascii?Q?0yrR9JVsde2ZCsW1QkjgrYwOIs2N7sf/v+qCneTRnAqZkDslVXBjHZVrw2Qn?=
 =?us-ascii?Q?bYpKj1fE0UqNiPRt9a1zTVwSYKFkWD6HvQgLyAYE6gI60i8DtZLJKBheO5Am?=
 =?us-ascii?Q?UJ6qKVfCVlKPL6Ny3GthIjMuBJgVVsudJMor3r/eoFZe31uqtCrxq6DQbPB1?=
 =?us-ascii?Q?NhbTmyLS25tGWQ1w/Hyu7LGLBBlzXOqbhs3vfb9SMHcA9J0dVSa1VDASkL3P?=
 =?us-ascii?Q?WaFPCVZwoxZD6+AnsxwmlRdJ73fV+26LPLAaumM1Mttej0nh652DfmeyNDHd?=
 =?us-ascii?Q?hphRylNWqIrGMXpy27flO/xzRG3vUFZIEkqG2SkX9umxxmyOeRS4b8lp604w?=
 =?us-ascii?Q?yAU5bO8BnDm9elLyFZa/VffA4ocP3j189OucEBBgphmciB2cDq/TS9mPBbam?=
 =?us-ascii?Q?BRdXfgk053yG3P3VpNnjWd83qpTWs30ssfVmYfFl824c0mFWtq5j+N+bQ9uG?=
 =?us-ascii?Q?7XND4WRJY7WYXHoN/211+khQ3GuUqP/1B1jWlil/FOBTds6jNfZGD9LZbV3V?=
 =?us-ascii?Q?KuIXYEIgEA1FgW1W0h25HMdXuqWMxD9GHMZZ5yj758qllZYOgVrwiSFReyEl?=
 =?us-ascii?Q?iEwBGv3U048cvLDHpXYwykVIhKfK/9GettXTskzHOs/m4KWaPp4939NmXtoa?=
 =?us-ascii?Q?GyHibwybi6n2LxZPHDWsv4tBWAsNYRtInkssZo6q037wQGmaGIFstPfR/UDh?=
 =?us-ascii?Q?sToD7S3gJMYft9IoHlx9Rk1rRFQQFF+JGo0eZ5Lff5lt+uG0i6D0C6uu/+zZ?=
 =?us-ascii?Q?UxKl14YPmT8b57z8Q5EWPSRKB5fAFHfd5ykpVSW2Pj/aijuztXPgYyjY8OoC?=
 =?us-ascii?Q?psUzutbtP3i4mJ6sSMx+09bYIT40Kv21nEYV94t+yeCnJOnaHM7gvjU5Tf9E?=
 =?us-ascii?Q?gsoL1Jz6o+K7XLVjU8xDYuUHKOImKvVO+BpvFULfYO6IdofGB8exdop/rvEM?=
 =?us-ascii?Q?zUStqKq3rGicuhBIyYnw5pcSZ7j4A+ldD+U6kaM/99c+0kFI1qa5iD1clsBt?=
 =?us-ascii?Q?eQOxXzeSM7P6ogNkLBXNcfi8+OQ2oETEb/xzwJl90iGAKGr7VWCOj0czJF4e?=
 =?us-ascii?Q?bW49G9e8M8IHBgU=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(7416014)(376014)(1800799024)(36860700013)(7053199007)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 03:16:55.4358
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 73c397f4-8748-4d9b-d82b-08de2263194d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF0000468D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6189

This patch serie originates from "Disable domctl-op via CONFIG_MGMT_HYPERCALLS"
[1], and focuses on consolidating vm event subsystem (i.e. VM_EVENT), and its
derived features, like memory paging, etc.

[1] https://www.mail-archive.com/xen-devel@lists.xenproject.org/msg200843.html

Penny Zheng (7):
  xen/svm: limit the scope of "rc"
  xen/vm_event: introduce vm_event_is_enabled()
  xen/monitor: wrap monitor_op under CONFIG_VM_EVENT
  xen/p2m: move xenmem_access_to_p2m_access() to common p2m.c
  xen/x86: move declaration from mem_access.h to altp2m.h
  xen/mem_access: wrap memory access when VM_EVENT=n
  xen/vm_event: consolidate CONFIG_VM_EVENT

 xen/arch/x86/Makefile                 |   2 +-
 xen/arch/x86/hvm/Kconfig              |   1 -
 xen/arch/x86/hvm/Makefile             |   4 +-
 xen/arch/x86/hvm/emulate.c            |  67 +++++++-------
 xen/arch/x86/hvm/hvm.c                | 123 ++++++++++++++++----------
 xen/arch/x86/hvm/svm/intr.c           |   2 +-
 xen/arch/x86/hvm/svm/svm.c            |  82 +++++++++++------
 xen/arch/x86/hvm/vmx/intr.c           |   2 +-
 xen/arch/x86/hvm/vmx/vmx.c            |  73 +++++++++------
 xen/arch/x86/include/asm/altp2m.h     |  10 +++
 xen/arch/x86/include/asm/hvm/hvm.h    |  18 ++--
 xen/arch/x86/include/asm/mem_access.h |  20 ++---
 xen/arch/x86/include/asm/monitor.h    |   9 ++
 xen/arch/x86/include/asm/vm_event.h   |   8 ++
 xen/arch/x86/mm/mem_access.c          |  36 --------
 xen/arch/x86/mm/mem_sharing.c         |   3 +
 xen/arch/x86/mm/p2m.c                 |  38 ++++++++
 xen/common/Kconfig                    |   7 +-
 xen/include/xen/vm_event.h            |   7 ++
 19 files changed, 319 insertions(+), 193 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 03:17:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 03:17:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160537.1488650 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJNpn-00049Z-Ns; Thu, 13 Nov 2025 03:17:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160537.1488650; Thu, 13 Nov 2025 03: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 1vJNpn-00049P-Kk; Thu, 13 Nov 2025 03:17:19 +0000
Received: by outflank-mailman (input) for mailman id 1160537;
 Thu, 13 Nov 2025 03:17: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=zWJc=5V=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vJNpm-0003dm-Jl
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 03:17:18 +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 41dc68b6-c03f-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 04:17:18 +0100 (CET)
Received: from BN9PR03CA0279.namprd03.prod.outlook.com (2603:10b6:408:f5::14)
 by DS7PR12MB8231.namprd12.prod.outlook.com (2603:10b6:8:db::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Thu, 13 Nov
 2025 03:17:08 +0000
Received: from BN1PEPF00004689.namprd05.prod.outlook.com
 (2603:10b6:408:f5:cafe::54) by BN9PR03CA0279.outlook.office365.com
 (2603:10b6:408:f5::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.15 via Frontend Transport; Thu,
 13 Nov 2025 03:17:07 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN1PEPF00004689.mail.protection.outlook.com (10.167.243.134) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Thu, 13 Nov 2025 03:17:07 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Wed, 12 Nov 2025 19:17:02 -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: 41dc68b6-c03f-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rWDNcJFfFSBxRDtPR3xftvgiSE+qJl8COMp8sVqHpqAtFzo0vQSOxBZ8mEoaBW7lm3a0vwU877uofnJsau+lqgCNvXIN7sxPEhCrfb+bNH0JmEM2MKFbB6we4ryfapZQGsyXi5cKA4xLvugOi2jRvWhyRR5qb9FA7DmO+6QyV7jo5oCm8epzfLpQpWUzYxtNVbAClxPzsomLq2rtREzi1TCaAnkrDsi7ksBjvO9ZyX8zgNjw/zfWu3YiQJVrR8nmMYANiIXstgn6xkDvWx20DuM/vhqFblYrWLUq7MmMMtGhqE4yv7/0d2c/fpWgKLmaFH7ELN0gpUiZ3gAKi0n1Ng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3Q12+M0OwuIkHlopjraGyEJ5y3DeGTjmnV498MkT3eM=;
 b=CBfz+GEoOOXQvca4AdB1a9rfs3NRMCnJ3kr/htZFQ6LH7qloDfVtjXM99vKVHXGCy+ksPNszLQNGwAuQ3pjQDYjbyXFeX0G1EJJ79zRVgusc91fNtCYNOYL8+E1OWzxsOhvW09zg2P8GVpnN3S/XUM+c7FjKHLfghigm4hCbm70vzxiPjE9YMu+kj4q11IQAhLk2Nuqj363n6o07yCJbNnjw5rQsyWkp3oEZjKW1571ouCGa6yKC96SsmQvWB6opbM/kkuBemaK5qfBzFGzk99ScmDfuapEgdbbWWApT/rJp3Y7nDsk+LQq/M1XlvpBRpVzFJghMYEnZVo6IzKGF3w==
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=3Q12+M0OwuIkHlopjraGyEJ5y3DeGTjmnV498MkT3eM=;
 b=BQ1g6RJvDYQ9CgkBs6yXnYIl3ricd0Sw4THUFkO2uLNUVfcnPyrC+rPi72jNSFbOnUjDgjN9agk15LY1TfQf9u2O8q8KiGqYAk3fEwmkrhMiXnC9S1xRcpIMsjXd78YyTqqo/S40uF6VV1yFid+0R7/24nuRG8eRItkynLh23TI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Penny Zheng <Penny.Zheng@amd.com>, Tamas K Lengyel <tamas@tklengyel.com>,
	Alexandru Isaila <aisaila@bitdefender.com>, Petre Pircalabu
	<ppircalabu@bitdefender.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v1 4/7] xen/p2m: move xenmem_access_to_p2m_access() to common p2m.c
Date: Thu, 13 Nov 2025 11:16:27 +0800
Message-ID: <20251113031630.1465599-5-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251113031630.1465599-1-Penny.Zheng@amd.com>
References: <20251113031630.1465599-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN1PEPF00004689:EE_|DS7PR12MB8231:EE_
X-MS-Office365-Filtering-Correlation-Id: ab65e609-fbd7-44ef-6f32-08de2263205e
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?xwGO9fsoFLSPFSFcz246KUg3hyQWvfV/9V402P/E3W5D+swhpQIqx8fiWpeS?=
 =?us-ascii?Q?i9EKMbymTJKo2wjNtDgOINaP6L0UIG1SvWu0Tdknsigf5P5uLsfmGKblADe0?=
 =?us-ascii?Q?WsSLojJZBjreFgpBcgHtiahZ9uFvIGycMbCZ6GwWt4lRSNNM1tQUtuB2xSyj?=
 =?us-ascii?Q?XMRzWfSdJEM39EinyLsumwn4nZzxQA0fEh9nurFYQLylqYSNGDcQlF9UE6j6?=
 =?us-ascii?Q?UfsNrqSfDRatN4k8+EI0J1uzuiHjGo7Nq9hfH9p5aX1fSkQDjflre/Iozu/h?=
 =?us-ascii?Q?z0weW3YaWmGSuKb7oXuLG97cbWhSypmcZRv95a/mZuY/5T1cvTfbdazo2EYU?=
 =?us-ascii?Q?A/0cHVejrKILMWkoTglpiA3AU5gua/ZYCT6BiCTaopvkNno/xIgdU7osiyX9?=
 =?us-ascii?Q?CpmXuEqJOf9ExhxQghEXrVFcWMhuT5a/9St3LoFWzbzpO5HSJyS1Ub+co3tE?=
 =?us-ascii?Q?vDBADJ6+I+xvJsQEuI6BNqKntW364EYQeSClYdGTZ3PfGoXG6nlhFqSDGsyD?=
 =?us-ascii?Q?k+lyf1EI+8Y7G9dVnDkkDdW08DNoSTHaelnwCK4OA8UpSOISFCPyUvlRMbYe?=
 =?us-ascii?Q?JNZgAaGXMMZnLdqXmSqNTH10sixTA3WHoZehrnDjO+rFEFbvEtEwohehpyt5?=
 =?us-ascii?Q?zR9J9V3TIKegrOAoC5LqXeS5QTUJqLoAt87+9Q6yYjEO/5RrO1slY8kHw5wX?=
 =?us-ascii?Q?Vv38ukO9IoBeCzMEV4EEWuCR3abXPHzj3CQRuLfI5779oGf6mS9UpRRekWRi?=
 =?us-ascii?Q?R1Yor6FYBjr5pzbH1gcldKFLSSTQV9l4H9nOFnQU/RpbI2OajIs5sYVdsi0j?=
 =?us-ascii?Q?CgnHlslQsy7HfW8SbKZr3bOgb5ZQFRhTTzl8DsmiuzNV4wV0LjuU2zCerjQG?=
 =?us-ascii?Q?ruFAvH9Pq4vzk2J+RRwmoIBCx3lHrUUXD6KthkU9+QwIMbIgIo6e5ZttXFNP?=
 =?us-ascii?Q?v37/k9/8n1sJZtoqDoE937o21OXd5CR+BuWYoS9KJDDMxCz5ERW1DZPvmOy3?=
 =?us-ascii?Q?HSIgZQ4Dmu0LCqWuaJ4q4RjUxqPB2WPpRNxJOnUxysPpxeF9ZbdRJ85CuoN/?=
 =?us-ascii?Q?qZI32sS1GHY7JEvIm1HsfNK/2fi1upZQ46cxBna7BSN2M1go2qIXkzAcl3xD?=
 =?us-ascii?Q?/sz+2nOxYzHQeHgegMZdf3w4aI4ubp7DH2lEiLXXr/zdE6BU4HZa6DeyZDpw?=
 =?us-ascii?Q?T+9yIUxll/WKJnySNzOrPNkIDfyIM9y24cb6jJRp/bs2ZDaHrGa9ffZSjMEc?=
 =?us-ascii?Q?70mQQTQuvVj0AogSd/O7/4x49ZjfyDVrt8N+Rtq6/BmvVuyhoZ0BDqPTLFn6?=
 =?us-ascii?Q?KRrrDod+WSWDJ42TgxzI1uR62TXWMefr0kh4680DEIJF+d3Vzv4yptdhbzia?=
 =?us-ascii?Q?41TwVaHGobctc69j64STOej72TCXzb+Yyst918wWBaUd+TEMo0SHsT0dkqj8?=
 =?us-ascii?Q?TZjkQ3duHlhEfs6WjIf9uk5nPYLDEYXXMlBrnzLAgZszOt/LP6aDRlq+QHXT?=
 =?us-ascii?Q?h/FFN02yu3LzMaiRws+lXhHKlSPsckCb0js+j99Abq6FIgv/mrBaQ2HX7Q?=
 =?us-ascii?Q?=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 03:17:07.2920
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ab65e609-fbd7-44ef-6f32-08de2263205e
X-MS-Exchange-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:
	BN1PEPF00004689.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8231

Memory access and ALTP2M are two seperate features, while both depending on
helper xenmem_access_to_p2m_access(). So it betters lives in common p2m.c,
other than mem_access.c which will be compiled out when VM_EVENT=n && ALTP2M=y.
Coding style has been corrected at the same time.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- new commit
---
 xen/arch/x86/mm/mem_access.c | 36 ----------------------------------
 xen/arch/x86/mm/p2m.c        | 38 ++++++++++++++++++++++++++++++++++++
 2 files changed, 38 insertions(+), 36 deletions(-)

diff --git a/xen/arch/x86/mm/mem_access.c b/xen/arch/x86/mm/mem_access.c
index e6b609064c..e55e53f44c 100644
--- a/xen/arch/x86/mm/mem_access.c
+++ b/xen/arch/x86/mm/mem_access.c
@@ -298,42 +298,6 @@ static int set_mem_access(struct domain *d, struct p2m_domain *p2m,
     return rc;
 }
 
-bool xenmem_access_to_p2m_access(const struct p2m_domain *p2m,
-                                 xenmem_access_t xaccess,
-                                 p2m_access_t *paccess)
-{
-    static const p2m_access_t memaccess[] = {
-#define ACCESS(ac) [XENMEM_access_##ac] = p2m_access_##ac
-        ACCESS(n),
-        ACCESS(r),
-        ACCESS(w),
-        ACCESS(rw),
-        ACCESS(x),
-        ACCESS(rx),
-        ACCESS(wx),
-        ACCESS(rwx),
-        ACCESS(rx2rw),
-        ACCESS(n2rwx),
-        ACCESS(r_pw),
-#undef ACCESS
-    };
-
-    switch ( xaccess )
-    {
-    case 0 ... ARRAY_SIZE(memaccess) - 1:
-        xaccess = array_index_nospec(xaccess, ARRAY_SIZE(memaccess));
-        *paccess = memaccess[xaccess];
-        break;
-    case XENMEM_access_default:
-        *paccess = p2m->default_access;
-        break;
-    default:
-        return false;
-    }
-
-    return true;
-}
-
 /*
  * Set access type for a region of gfns.
  * If gfn == INVALID_GFN, sets the default access type.
diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c
index e2a00a0efd..f2bf5ef8d3 100644
--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
@@ -2189,6 +2189,44 @@ void p2m_log_dirty_range(struct domain *d, unsigned long begin_pfn,
     guest_flush_tlb_mask(d, d->dirty_cpumask);
 }
 
+bool xenmem_access_to_p2m_access(const struct p2m_domain *p2m,
+                                 xenmem_access_t xaccess,
+                                 p2m_access_t *paccess)
+{
+    static const p2m_access_t memaccess[] = {
+#define ACCESS(ac) [XENMEM_access_##ac] = p2m_access_##ac
+        ACCESS(n),
+        ACCESS(r),
+        ACCESS(w),
+        ACCESS(rw),
+        ACCESS(x),
+        ACCESS(rx),
+        ACCESS(wx),
+        ACCESS(rwx),
+        ACCESS(rx2rw),
+        ACCESS(n2rwx),
+        ACCESS(r_pw),
+#undef ACCESS
+    };
+
+    switch ( xaccess )
+    {
+    case 0 ... ARRAY_SIZE(memaccess) - 1:
+        xaccess = array_index_nospec(xaccess, ARRAY_SIZE(memaccess));
+        *paccess = memaccess[xaccess];
+        break;
+
+    case XENMEM_access_default:
+        *paccess = p2m->default_access;
+        break;
+
+    default:
+        return false;
+    }
+
+    return true;
+}
+
 /*
  * Local variables:
  * mode: C
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 03:17:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 03:17:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160538.1488660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJNpr-0004SN-4f; Thu, 13 Nov 2025 03:17:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160538.1488660; Thu, 13 Nov 2025 03: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 1vJNpr-0004SF-1K; Thu, 13 Nov 2025 03:17:23 +0000
Received: by outflank-mailman (input) for mailman id 1160538;
 Thu, 13 Nov 2025 03:17: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=zWJc=5V=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vJNpq-0004P7-1g
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 03:17:22 +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 40da3892-c03f-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 04:17:16 +0100 (CET)
Received: from BN0PR04CA0023.namprd04.prod.outlook.com (2603:10b6:408:ee::28)
 by DS7PR12MB8371.namprd12.prod.outlook.com (2603:10b6:8:e9::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Thu, 13 Nov
 2025 03:17:07 +0000
Received: from BN1PEPF00004687.namprd05.prod.outlook.com
 (2603:10b6:408:ee:cafe::fd) by BN0PR04CA0023.outlook.office365.com
 (2603:10b6:408:ee::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.17 via Frontend Transport; Thu,
 13 Nov 2025 03:17:07 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN1PEPF00004687.mail.protection.outlook.com (10.167.243.132) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Thu, 13 Nov 2025 03:17:07 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Wed, 12 Nov 2025 19:17:05 -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: 40da3892-c03f-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=O+91XROzIxgbi2/uG1GWsFz/+BY9qkEynHTeg+aKmlQRF1bxbNudgyrxTljGRXFVv7GgYkga935Wgz8zdlDAVuSMYKRyANbROwudf6GojzX57jrc7AD68O0T7oOcpVMKUjxAIqiAPxTML1pAKYRg0oKWGvCQ4mhboAzJ0g+2z4MKDecJ+vg38m75eeZlk+tnVXW8aW970gLbREqzf7bYLwZ4y4fcJAQ0lcWoe/FyofEyKVHaU4A1I7m2honwz7bkud8UbeED7wq0rZTfDTLGSlttG1oQdLf8yLLkGYiIO09a/L8UmMT9vH8h93oLgxod+5yfUdKyXUghVoOj1H5+CA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4x2ARk3ZxYxwpxUDHDaaqu67aOVqpGDeb1IHQh8e0yI=;
 b=apmDhCjEIOZOnR3pzEiXyEBkgrFfXf+77RqH4cAlDrkcxuIvO4yavAWXGmWgTDhxVOlQnmQBSv2mJDf8++ORIJ1fyfLdBRCV20DW7esj9ED845uC5a57fgj8K4aPf0VfrAJQMnoLoy/2YaPbcUnr2NKDBY7a3xnX4wj5QNsriMNqucs1D6Ip7QOM6bqQ+fH3NcEQJUlVzCJK/L38P4Q+ch969EsbzX1j39oc1ao7axDJDTQBAPsogntA1iF1curYMYiqEPI/7YfoGc4NudKrhU2cDNU3s8XywQ8MmC0xJkDVMApuNXYB0pNLMB42wVU2X6mHAmJq326H6UWRL1EE7Q==
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=4x2ARk3ZxYxwpxUDHDaaqu67aOVqpGDeb1IHQh8e0yI=;
 b=kIQutGK+W9quxrILEkzxTqtdFaWp2Nh14MoHckw2TuyjL/829dyUFdtnbAxhwiZmvavnSr7Dr2SyD9lEzcPpRSXK6lbxRkudX7aK8A+JdLva0WdsXlrrlHo8GMoH+uB5Y/2AgHjcMtvYGJ41xYDN0T/HBDrACbeY0J8YuKoixUA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich <jbeulich@suse.com>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Tamas K Lengyel
	<tamas@tklengyel.com>, "Alexandru Isaila" <aisaila@bitdefender.com>, Petre
 Pircalabu <ppircalabu@bitdefender.com>
Subject: [PATCH v1 5/7] xen/x86: move declaration from mem_access.h to altp2m.h
Date: Thu, 13 Nov 2025 11:16:28 +0800
Message-ID: <20251113031630.1465599-6-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251113031630.1465599-1-Penny.Zheng@amd.com>
References: <20251113031630.1465599-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN1PEPF00004687:EE_|DS7PR12MB8371:EE_
X-MS-Office365-Filtering-Correlation-Id: cfeb5208-3e14-4044-f6da-08de22632088
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?TXxT7zah4uVDg5JCts8aj4ZQRTRbT4Pl/aNhDt7lErszT8h+BabBxrMoJJP8?=
 =?us-ascii?Q?IMEpA/np4TxysIuhgDPs43nolKpxmBaevm6RAntOIWVnp6f9hyESP/0zMFv6?=
 =?us-ascii?Q?2BYQmvCL5iCI6klpxKPRC6jS6p5wGOQjlANirbS1D7A8u9VmLyMG74Pun/h1?=
 =?us-ascii?Q?tpOfeNCo9gfgg06+7/G1bV/GwAMlJqUEIeUezBqprsi1237aECGiVuTCGm5+?=
 =?us-ascii?Q?9qzNXmzuGHxkeM5gQafe7Nhkcw+RAPO2tKn68pgy5UV5w07PbFhsq8KPhdOx?=
 =?us-ascii?Q?kbIfx3RBRXm09sX5LNiDz4iyxBVPIZb2yzoqSIVKwxPvpHMp18yuB7tKRhSP?=
 =?us-ascii?Q?vg6NxsiwrFYd9i+pUXx0auwCNto5MvBGrHsJfI0IEe/B2ShJJL+RPpviX3fN?=
 =?us-ascii?Q?m6eWrqRxPuufeesu5ZIA0GQQPfc12oSIqvZo47dv2TPg+M0z2SHclNrN2p44?=
 =?us-ascii?Q?w1RIWfd3cYkDtqUqcwI/fG4uauushT2G/JYGof+JN+Ztz2h40DjGflLYK1+j?=
 =?us-ascii?Q?SCNmAnUqIlWTtW+R8AZlMmMIaauWJV5g+QT6FcbkV8jkiTlWkj4B9sEwvHd1?=
 =?us-ascii?Q?4wcuTkeqSqSfoGqtWont1eqlY/G6Hn3jMm8/7NH3oZxOgm916v2D3i2Omfti?=
 =?us-ascii?Q?WpcYqfjHQIuxi/dyfiioiwDvuOrcHPUnMDTCZaw4kULNYr4fbYa/hx6STnYF?=
 =?us-ascii?Q?k2pRWY6GBBnZSMSdIJ6jacQTo27YVvP9INzE4HP84hYuJOzYz9l3fuYh2NIK?=
 =?us-ascii?Q?JpoP/GYKbH3g030pL+O/cilQky0sBqV8B7rHx2L3S9P7JFbkY2jx9mEDFOjz?=
 =?us-ascii?Q?jhj8Wz+dME7ook+pFBMMSGK4KvhDlBSwoWvJpVslQGQnnHMYZ1JadtTtTprp?=
 =?us-ascii?Q?P0Zut+OR83K4RBNvTfqNWiUhA7vMTqYYozH70obbb7x5czc08hN71PCI0BmX?=
 =?us-ascii?Q?P+vmkPzYBhHlniJo7+s5VIxcvN+/LL3nZ9HobPvPFGMT2SoMkIzBXu0a8jkE?=
 =?us-ascii?Q?GEv3eLZK+zIHm8gc406QNkxyHWqzmPS9R1HFByuNoUD5xNIb1GGcbhnafl3S?=
 =?us-ascii?Q?GTHgpjxmvGWreXhtlC5c+i9TZ43gZZASDqvO3wWAmkVrJ9eEPBsb+qgubWv7?=
 =?us-ascii?Q?SH9DRhRPPBcqPkfA6IJq9vWmk60pEQ08WPoegiAilY3Lqr7jIjvylP9LalPc?=
 =?us-ascii?Q?Xrs87T9DvA/KRLZDRyPJezkhdLAijiBJQsUNT3DpnWWinMSlw8j/BxV33bnt?=
 =?us-ascii?Q?8uOGmeMMFjiCaLbSLlyLKIMYpvV+0OM8j8ZE8pLjTbpJmtiE9DuNWa2YTIrC?=
 =?us-ascii?Q?WwXgHSKFOoTJtUTJ/23AHwf4xJwWCVB7pqfJ6tl9G+leHA+dcd5ZSl3+yKJg?=
 =?us-ascii?Q?+ND9+CghIFCn85A17iSQGmvmVod+M5P1krjVWKY0u44eXXXDFXTCUvYi4bQ8?=
 =?us-ascii?Q?Jo86JGYiY5uxljWbhNl5TAEFS4DbRGXW8IdAgYP9DoH81fYzJ7N9sXiiMfYR?=
 =?us-ascii?Q?uwARWy35PsO4dKU613UXV4QhJrdQ6Cc4PunlR0NVqkhmbqtJBGXCtW16iXxB?=
 =?us-ascii?Q?A2vUwf2hN79ycRhUU1w=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 03:17:07.5706
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cfeb5208-3e14-4044-f6da-08de22632088
X-MS-Exchange-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:
	BN1PEPF00004687.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8371

Memory access and ALTP2M are two seperate features, and each could be
controlled via VM_EVENT or ALTP2M. In order to avoid implicit declaration
when ALTP2M=y and VM_EVENT=n on compiling hvm.o/altp2m.o, we move declaration
of the following functions from <asm/mem_access.h> to <asm/altp2m.h>:
- p2m_set_suppress_ve
- p2m_set_suppress_ve_multi
- p2m_get_suppress_ve
Potential error on altp2m.c also breaks Misra Rule 8.4.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- new commit
---
 xen/arch/x86/include/asm/altp2m.h     | 10 ++++++++++
 xen/arch/x86/include/asm/mem_access.h | 10 ----------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/xen/arch/x86/include/asm/altp2m.h b/xen/arch/x86/include/asm/altp2m.h
index 8ecd74f363..9c1ac3cc26 100644
--- a/xen/arch/x86/include/asm/altp2m.h
+++ b/xen/arch/x86/include/asm/altp2m.h
@@ -46,6 +46,16 @@ void altp2m_vcpu_destroy(struct vcpu *v);
 int altp2m_vcpu_enable_ve(struct vcpu *v, gfn_t gfn);
 void altp2m_vcpu_disable_ve(struct vcpu *v);
 
+int p2m_set_suppress_ve(struct domain *d, gfn_t gfn, bool suppress_ve,
+                        unsigned int altp2m_idx);
+
+struct xen_hvm_altp2m_suppress_ve_multi;
+int p2m_set_suppress_ve_multi(struct domain *d,
+                              struct xen_hvm_altp2m_suppress_ve_multi *sve);
+
+int p2m_get_suppress_ve(struct domain *d, gfn_t gfn, bool *suppress_ve,
+                        unsigned int altp2m_idx);
+
 #else
 
 static inline bool altp2m_is_eptp_valid(const struct domain *d,
diff --git a/xen/arch/x86/include/asm/mem_access.h b/xen/arch/x86/include/asm/mem_access.h
index 1a52a10322..257ed33de1 100644
--- a/xen/arch/x86/include/asm/mem_access.h
+++ b/xen/arch/x86/include/asm/mem_access.h
@@ -34,16 +34,6 @@ bool p2m_mem_access_emulate_check(struct vcpu *v,
 /* Sanity check for mem_access hardware support */
 bool p2m_mem_access_sanity_check(const struct domain *d);
 
-int p2m_set_suppress_ve(struct domain *d, gfn_t gfn, bool suppress_ve,
-                        unsigned int altp2m_idx);
-
-struct xen_hvm_altp2m_suppress_ve_multi;
-int p2m_set_suppress_ve_multi(struct domain *d,
-                              struct xen_hvm_altp2m_suppress_ve_multi *sve);
-
-int p2m_get_suppress_ve(struct domain *d, gfn_t gfn, bool *suppress_ve,
-                        unsigned int altp2m_idx);
-
 #endif /*__ASM_X86_MEM_ACCESS_H__ */
 
 /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 03:17:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 03:17:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160543.1488670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJNpt-0004ih-BE; Thu, 13 Nov 2025 03:17:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160543.1488670; Thu, 13 Nov 2025 03: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 1vJNpt-0004iT-82; Thu, 13 Nov 2025 03:17:25 +0000
Received: by outflank-mailman (input) for mailman id 1160543;
 Thu, 13 Nov 2025 03:17: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=zWJc=5V=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vJNps-0003dm-Ae
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 03:17:24 +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 447725bc-c03f-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 04:17:22 +0100 (CET)
Received: from BN9PR03CA0279.namprd03.prod.outlook.com (2603:10b6:408:f5::14)
 by DS4PR12MB9746.namprd12.prod.outlook.com (2603:10b6:8:2a4::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Thu, 13 Nov
 2025 03:17:13 +0000
Received: from BN1PEPF00004689.namprd05.prod.outlook.com
 (2603:10b6:408:f5:cafe::51) by BN9PR03CA0279.outlook.office365.com
 (2603:10b6:408:f5::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.15 via Frontend Transport; Thu,
 13 Nov 2025 03:17:13 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN1PEPF00004689.mail.protection.outlook.com (10.167.243.134) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Thu, 13 Nov 2025 03:17:13 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Wed, 12 Nov 2025 19:17:09 -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: 447725bc-c03f-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=O/SFmDRRjRN05KadZFDubnECPRlNLb5yYpjDQzpdeSXXurCvtJf2tkY0vffPFJc/R+E42j7OO8zTo7PYI/GEMOrnyTFYnXwVdH81R6LjUAfyYICK8M1m1lfucfjx1bZ9fSg4dB/g+24U0Zb0P95zzTfXWQzPPBX4nzAHIz2CfjTD+GeIOuNxOqbdTucJ9LHY0fRHV0QF4MM+Qj3M/xAtseReKgC2W0AeOQy/8xi2ajIlsJaUf8FAI4ru3QATXHtQgiG3YX2+1WuMja+x+MNN62lZ3jY0t7V4F2aQwPtwlh45dQ16+7P6Tx15ECNPx8k6rlpJXG7P62MDdg9Pxd9hjw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rKCKALH1kF3T6qF6WwQEaecmZDHj8AqCwh32rmOdMv4=;
 b=Ayi2CwiF6t2Nn673oq+f/nTQ5aB7zKEPMB4XhLyDl3TbzP1CuyRVnasC6pBBjY10Cl4Z4JA9r1tuqnZeY/hna9X3OUYvRrMjQh23tXYMGjqpfm48lgN1VcBRJ/XOlkIOpcQq+S1YLD6aEPXWCUht7O51Jcp7pMK75hiyOiiJx1DoPkfpHPneKVPREF7ALhu14QjSRugq7forYQQfFyXWeGDkXgpzG0IiM/n4hQzgwwElx4rUQSyQMxPzPjhpNw2aZhjiAAQMr0wVlAHe4n/Qlk3vGEJdVY8TaVqtqzOgnqRZ8uuEpihzMbw8PCLVsuL+9lwgdoIiJhhZT7kYBWv3Og==
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=rKCKALH1kF3T6qF6WwQEaecmZDHj8AqCwh32rmOdMv4=;
 b=Z7EMWRyOzS0byWQ2d/AhuRdyq9FFDtCibLXL8YXiWPyrGhB+81PqBtaXe9ddy4HdFFC3TZdRLrP0rvwEC82A2WB+ARBKbsVFPskMtGLCPH/rLWFfgSbPlogs9MHovAriiJPBGpavAgK+tbFkvCY4Zign06O/BaWwucg1OrJf0js=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich <jbeulich@suse.com>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, Tamas
 K Lengyel <tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>,
	Petre Pircalabu <ppircalabu@bitdefender.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
Subject: [PATCH v1 7/7] xen/vm_event: consolidate CONFIG_VM_EVENT
Date: Thu, 13 Nov 2025 11:16:30 +0800
Message-ID: <20251113031630.1465599-8-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251113031630.1465599-1-Penny.Zheng@amd.com>
References: <20251113031630.1465599-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN1PEPF00004689:EE_|DS4PR12MB9746:EE_
X-MS-Office365-Filtering-Correlation-Id: d4ff8ba0-4d99-4b98-c692-08de22632405
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|7416014|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?FDcAfJp1U6Ii+fmSMHNKMXIJQQPS/IepEDdskwbvBlf9ecIn5IBoc/Zixpuy?=
 =?us-ascii?Q?Zus6/atzI3qMHX3AFjPma2ABcjSxlN9akzXNdhSBoPfXh9spZ9mRu5bXSsKh?=
 =?us-ascii?Q?yllvqBXO409WRxFhtGlRcfsWaHbvkqzVPIW5xNywYt87V6dv5IXmUk3aSKdf?=
 =?us-ascii?Q?YocLSj0GojpMES1ddiXKqwJJ+lwO2EDNFJiU2gdqhH3CmEj0Iz/zPxg0ofx5?=
 =?us-ascii?Q?avxInJPkpRcP8qaXEbYHfz/MB0C43/2tU9jcHG6xHj6e47DPFNdiZTJ6VIrN?=
 =?us-ascii?Q?hy6AttQ1+XHjt0n3u3G7LnihpMG/DfFJEJbEvnAX9cEB2FJ4reC/uyzvCV1r?=
 =?us-ascii?Q?pj/EmQZ14WnrIgA+IjpV6fgHvjJInSBzvrllEPGsmEv2Rw0iebsoiIacmV+v?=
 =?us-ascii?Q?nSdlJKtyEyoWmYY3NcG5xH/q3AbQF5xGboy1dWtQR7iEgg7sZxEDCJ7+QC6D?=
 =?us-ascii?Q?HPmxNiD7ppgUbi3zKg2coztxmrTAGQ4M8d9yDMtDf+WVE/6K1XZUgnl6Wlcd?=
 =?us-ascii?Q?Rf0MW6FNcRyPSBfpoi3ukEUcyFjoImq1V/27Hgrg+Sj0Q+eRficLx5XEwvrA?=
 =?us-ascii?Q?F3U2hN118QDtvx8n2dshCga46uqXhzt37C/4IQffUU6DEQ/kcesJ10qP/AiN?=
 =?us-ascii?Q?C1mganS6qQY8tXTHkvipAwOp95D39bMq1YH5oivXeJYRZo588C5tmQWUaggK?=
 =?us-ascii?Q?+Yq+FNe3Ls5OW0qf/ZMlsrmYUABPmQPKmN6CIReNKDR3vOMjSBi+2wz7Bg5e?=
 =?us-ascii?Q?9pCuaO5sOJ2d/1oF97LETBHQROU71OwkQNgJqkuvjvTLKtYezLNGi74vxNoy?=
 =?us-ascii?Q?RIgz3l5VYq1t+GDf0YZpYog8iS667t9GXYrVav3EXyEWgWAdDvtV98RQsWle?=
 =?us-ascii?Q?nQ6JUJ0FuHapIuRAUEgDAeahgr19+gnWz+EWBrHCEVTSUSZiSbasEquvaobr?=
 =?us-ascii?Q?E4oce8mspALlYzIdEzSh+iJ84McDyP/fzWHM4gr61Tta/15ot0vhNKfn0Low?=
 =?us-ascii?Q?PtVt6W8auywARJneck36mInLt7FdRac+ucHqxUFd3lL3JDffOINhrhz7aPjk?=
 =?us-ascii?Q?BClPZNtscT9zhTD+aFu1vNfBSAKQXeoaAcsvvGsOyeTKz19CWWZHhRasUaT5?=
 =?us-ascii?Q?QdSS86UrbyiGU/b4AXtGCdKlRjQVikURNY5qD+CbzIo0hwF+mCvoD21gpXSp?=
 =?us-ascii?Q?4Y5Wmo8gEYMriRrCuM0Bh8PcEmcQgHQWLy8fsfYLEvIccw2VJhEn5N36xSS+?=
 =?us-ascii?Q?FwzQ5/uP2ce2ULOxk5iSAae+S6VAhtf7ZiBTdKFCq0TRJZ/oI2uCDKp1jwnj?=
 =?us-ascii?Q?f+HZ9bPxYSt6/h5T7DO1PkXy5sm+FFna17iOsDEjnT6wYC68AIi+O884Qw2N?=
 =?us-ascii?Q?RO0ApadnRrHY+n1R3D5pkNz1Pbbs63zQmS1Soy+oMaDMD/awlDIHwZdpvcuq?=
 =?us-ascii?Q?ptKYbuSopcGGwkAKr8JIY91xCwYI6d9rZpoVHjqylPh0hHxkRdXe7BSOwpsF?=
 =?us-ascii?Q?hydLXFBGKVlPfBlBUew+VsfttC6zkAX8wWlV0CgqdbwdkAQvGp9RX8Jc5J23?=
 =?us-ascii?Q?zoxFjXlmsDmOX+NpA/k=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(7416014)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 03:17:13.4226
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d4ff8ba0-4d99-4b98-c692-08de22632405
X-MS-Exchange-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:
	BN1PEPF00004689.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9746

File hvm/vm_event.c and x86/vm_event.c are the extend to vm_event handling
routines, and its compilation shall be guarded by CONFIG_VM_EVENT too.

Although CONFIG_VM_EVENT is right now forcibly enabled on x86 via
MEM_ACCESS_ALWAYS_ON, we could disable it through disabling
CONFIG_MGMT_HYPERCALLS later. So we remove MEM_ACCESS_ALWAYS_ON and
make VM_EVENT=y on default only on x86 to retain the same.

The following functions are developed on the basis of vm event framework, or
only invoked by vm_event.c, so they all shall be wrapped with CONFIG_VM_EVENT
(otherwise they will become unreachable and
violate Misra rule 2.1 when VM_EVENT=n):
- hvm_toggle_singlestep
- hvm_fast_singlestep
- hvm_emulate_one_vm_event
    - hvmemul_write{,cmpxchg,rep_ins,rep_outs,rep_movs,rep_stos,read_io,write_io}_discard
And Function vm_event_check_ring() needs stub to pass compilation when
VM_EVENT=n.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- split out XSM changes
- remove unnecessary stubs
- move "struct p2m_domain" declaration ahead of the #ifdef
---
v2 -> v3:
- move .enable_msr_interception and .set_descriptor_access_exiting together
- with the introduction of "vm_event_is_enabled()", all hvm_monitor_xxx()
stubs are no longer needed
- change to use in-place stubs in do_altp2m_op()
- no need to add stub for monitor_traps(), __vm_event_claim_slot(),
vm_event_put_request() and vm_event_vcpu_pause()
- remove MEM_ACCESS_ALWAYS_ON
- return default p2m_access_rwx for xenmem_access_to_p2m_access() when
VM_EVENT=n
- add wrapping for hvm_emulate_one_vm_event/
hvmemul_write{,cmpxchg,rep_ins,rep_outs,rep_movs,rep_stos,read_io,write_io}_discard
---
 xen/arch/x86/Makefile      |  2 +-
 xen/arch/x86/hvm/Kconfig   |  1 -
 xen/arch/x86/hvm/Makefile  |  2 +-
 xen/arch/x86/hvm/emulate.c | 58 ++++++++++++++++++++------------------
 xen/arch/x86/hvm/hvm.c     |  2 ++
 xen/common/Kconfig         |  7 ++---
 xen/include/xen/vm_event.h |  7 +++++
 7 files changed, 44 insertions(+), 35 deletions(-)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 407571c510..f71ca9f18b 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -75,7 +75,7 @@ obj-y += usercopy.o
 obj-y += x86_emulate.o
 obj-$(CONFIG_TBOOT) += tboot.o
 obj-y += hpet.o
-obj-y += vm_event.o
+obj-$(CONFIG_VM_EVENT) += vm_event.o
 obj-y += xstate.o
 
 ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index f10a2b3744..ea957363a9 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -4,7 +4,6 @@ menuconfig HVM
 	default !PV_SHIM
 	select COMPAT
 	select IOREQ_SERVER
-	select MEM_ACCESS_ALWAYS_ON
 	help
 	  Interfaces to support HVM domains.  HVM domains require hardware
 	  virtualisation extensions (e.g. Intel VT-x, AMD SVM), but can boot
diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 50e0b6e63b..952db00dd7 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -26,7 +26,7 @@ obj-y += save.o
 obj-y += stdvga.o
 obj-y += vioapic.o
 obj-y += vlapic.o
-obj-y += vm_event.o
+obj-$(CONFIG_VM_EVENT) += vm_event.o
 obj-y += vmsi.o
 obj-y += vpic.o
 obj-y += vpt.o
diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index fe75b0516d..d56ef02baf 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -1615,6 +1615,7 @@ static int cf_check hvmemul_blk(
     return rc;
 }
 
+#ifdef CONFIG_VM_EVENT
 static int cf_check hvmemul_write_discard(
     enum x86_segment seg,
     unsigned long offset,
@@ -1717,6 +1718,7 @@ static int cf_check hvmemul_cache_op_discard(
 {
     return X86EMUL_OKAY;
 }
+#endif /* CONFIG_VM_EVENT */
 
 static int cf_check hvmemul_cmpxchg(
     enum x86_segment seg,
@@ -2750,33 +2752,6 @@ static const struct x86_emulate_ops hvm_emulate_ops = {
     .vmfunc        = hvmemul_vmfunc,
 };
 
-static const struct x86_emulate_ops hvm_emulate_ops_no_write = {
-    .read          = hvmemul_read,
-    .insn_fetch    = hvmemul_insn_fetch,
-    .write         = hvmemul_write_discard,
-    .cmpxchg       = hvmemul_cmpxchg_discard,
-    .rep_ins       = hvmemul_rep_ins_discard,
-    .rep_outs      = hvmemul_rep_outs_discard,
-    .rep_movs      = hvmemul_rep_movs_discard,
-    .rep_stos      = hvmemul_rep_stos_discard,
-    .read_segment  = hvmemul_read_segment,
-    .write_segment = hvmemul_write_segment,
-    .read_io       = hvmemul_read_io_discard,
-    .write_io      = hvmemul_write_io_discard,
-    .read_cr       = hvmemul_read_cr,
-    .write_cr      = hvmemul_write_cr,
-    .read_xcr      = hvmemul_read_xcr,
-    .write_xcr     = hvmemul_write_xcr,
-    .read_msr      = hvmemul_read_msr,
-    .write_msr     = hvmemul_write_msr_discard,
-    .cache_op      = hvmemul_cache_op_discard,
-    .tlb_op        = hvmemul_tlb_op,
-    .cpuid         = x86emul_cpuid,
-    .get_fpu       = hvmemul_get_fpu,
-    .put_fpu       = hvmemul_put_fpu,
-    .vmfunc        = hvmemul_vmfunc,
-};
-
 /*
  * Note that passing VIO_no_completion into this function serves as kind
  * of (but not fully) an "auto select completion" indicator.  When there's
@@ -2887,6 +2862,34 @@ int hvm_emulate_one(
     return _hvm_emulate_one(hvmemul_ctxt, &hvm_emulate_ops, completion);
 }
 
+#ifdef CONFIG_VM_EVENT
+static const struct x86_emulate_ops hvm_emulate_ops_no_write = {
+    .read          = hvmemul_read,
+    .insn_fetch    = hvmemul_insn_fetch,
+    .write         = hvmemul_write_discard,
+    .cmpxchg       = hvmemul_cmpxchg_discard,
+    .rep_ins       = hvmemul_rep_ins_discard,
+    .rep_outs      = hvmemul_rep_outs_discard,
+    .rep_movs      = hvmemul_rep_movs_discard,
+    .rep_stos      = hvmemul_rep_stos_discard,
+    .read_segment  = hvmemul_read_segment,
+    .write_segment = hvmemul_write_segment,
+    .read_io       = hvmemul_read_io_discard,
+    .write_io      = hvmemul_write_io_discard,
+    .read_cr       = hvmemul_read_cr,
+    .write_cr      = hvmemul_write_cr,
+    .read_xcr      = hvmemul_read_xcr,
+    .write_xcr     = hvmemul_write_xcr,
+    .read_msr      = hvmemul_read_msr,
+    .write_msr     = hvmemul_write_msr_discard,
+    .cache_op      = hvmemul_cache_op_discard,
+    .tlb_op        = hvmemul_tlb_op,
+    .cpuid         = x86emul_cpuid,
+    .get_fpu       = hvmemul_get_fpu,
+    .put_fpu       = hvmemul_put_fpu,
+    .vmfunc        = hvmemul_vmfunc,
+};
+
 void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
     unsigned int errcode)
 {
@@ -2949,6 +2952,7 @@ void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
 
     hvm_emulate_writeback(&ctx);
 }
+#endif /* CONFIG_VM_EVENT */
 
 void hvm_emulate_init_once(
     struct hvm_emulate_ctxt *hvmemul_ctxt,
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index c3417b0593..196de2db67 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -5297,6 +5297,7 @@ int hvm_debug_op(struct vcpu *v, int32_t op)
     return rc;
 }
 
+#ifdef CONFIG_VM_EVENT
 void hvm_toggle_singlestep(struct vcpu *v)
 {
     ASSERT(atomic_read(&v->pause_count));
@@ -5323,6 +5324,7 @@ void hvm_fast_singlestep(struct vcpu *v, uint16_t p2midx)
     v->arch.hvm.fast_single_step.p2midx = p2midx;
 }
 #endif
+#endif /* CONFIG_VM_EVENT */
 
 /*
  * Segment caches in VMCB/VMCS are inconsistent about which bits are checked,
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 53f681bbb2..0070fe42a6 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -170,13 +170,10 @@ config HAS_VMAP
 config LIBFDT
 	bool
 
-config MEM_ACCESS_ALWAYS_ON
-	bool
-
 config VM_EVENT
-	def_bool MEM_ACCESS_ALWAYS_ON
-	prompt "Memory Access and VM events" if !MEM_ACCESS_ALWAYS_ON
+	bool "Memory Access and VM events"
 	depends on HVM
+	default X86
 	help
 
 	  Framework to configure memory access types for guests and receive
diff --git a/xen/include/xen/vm_event.h b/xen/include/xen/vm_event.h
index 27d0c74216..1b76ce632e 100644
--- a/xen/include/xen/vm_event.h
+++ b/xen/include/xen/vm_event.h
@@ -51,7 +51,14 @@ struct vm_event_domain
 };
 
 /* Returns whether a ring has been set up */
+#ifdef CONFIG_VM_EVENT
 bool vm_event_check_ring(struct vm_event_domain *ved);
+#else
+static inline bool vm_event_check_ring(struct vm_event_domain *ved)
+{
+    return false;
+}
+#endif /* CONFIG_VM_EVENT */
 
 /* Returns 0 on success, -ENOSYS if there is no ring, -EBUSY if there is no
  * available space and the caller is a foreign domain. If the guest itself
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 03:17:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 03:17:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160544.1488680 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJNpv-00050k-Mj; Thu, 13 Nov 2025 03:17:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160544.1488680; Thu, 13 Nov 2025 03: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 1vJNpv-00050Z-He; Thu, 13 Nov 2025 03:17:27 +0000
Received: by outflank-mailman (input) for mailman id 1160544;
 Thu, 13 Nov 2025 03:17:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zWJc=5V=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vJNpu-0004P7-En
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 03:17:26 +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 412c9694-c03f-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 04:17:16 +0100 (CET)
Received: from BN9PR03CA0288.namprd03.prod.outlook.com (2603:10b6:408:f5::23)
 by SA1PR12MB7410.namprd12.prod.outlook.com (2603:10b6:806:2b4::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Thu, 13 Nov
 2025 03:17:10 +0000
Received: from BN1PEPF00004689.namprd05.prod.outlook.com
 (2603:10b6:408:f5:cafe::f6) by BN9PR03CA0288.outlook.office365.com
 (2603:10b6:408:f5::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.17 via Frontend Transport; Thu,
 13 Nov 2025 03:17:09 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN1PEPF00004689.mail.protection.outlook.com (10.167.243.134) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Thu, 13 Nov 2025 03:17:09 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Wed, 12 Nov 2025 19:17:07 -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: 412c9694-c03f-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FqgPmJbnNtuJ6ZcFconha4N3tx4WzJxVfW0TTciNvA1tcUuH486uJUaKriWDJ3mcd9YXtdsehBZPcXOXtYxt2NYUpBVfYUigjfgkX7wnFUlw5AVsWvuU1ZfyNZyUTdTzsr1wqHdR/INpsayES/OHQ/eP8LKCrQMLb4W7k0NY3SdWtZCos29gIiEyAgqoipVbfEFfFl4AoTkV6YsEpL7sVIlAD3xMh0UE2gTWoM1eEI3+G0tWbtmfmPMIx57A2lbV1r7NCI2XscOvNbbiXMfJvkuunh8Wi+SHr/vCQgXXZXrfFk7R/HHmwy3m2Fek1mTpnRlcKue/u1eDA8JwgT5Jgg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1LovvxR5KePvF7Qho1obVT0p6ABqutOpA3RIDRtk+eM=;
 b=vjT0ab0+GtQYkyfnq7x+ZMEJm8+kA4zGubabcpBSyelXKyTIojeOSdHFr5hIL5NCZMYyh65XP2LilcqSQcZY1mhEP2ppXvJdG+U/LKp0TlW84RB4DHi8ZKVlz0ZvEJAL+1VjwC1i9mv+CYnygBpz+T6z7ljbwZa5a/qyIGMwDR/KWpvHs8bPBmxmyo9lQUPtVBqFHL5Fb7rG84yddcpB1d8PU7GgSQnlpnM7m4euk8VXT4EC1kaGbQAeTU9bcd9MuKbN18PhkeFoxsxwsdD+sXRhq8GYZ16AqQhP70C4LqhCZlNVFNu9h4T/9PmH6owFK0rpDzmNvhU07+F0PmPLdA==
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=1LovvxR5KePvF7Qho1obVT0p6ABqutOpA3RIDRtk+eM=;
 b=juhluuaTvIjzNCMrV7mXbO/P8TSeYLrMNrn5BT4bCccCpgzV1Cywj9iHYzbJfaWBzh7QxSJy3vx7GgTIcWPMTzzStTjiFl13Y9qCE5fxVGenLM/e0bNkSG/Zy8CMgLk+sv0OQ6N4wmS3LmE3atYHtSI33L0i/L9XPWroJED7XQE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich <jbeulich@suse.com>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Tamas K Lengyel
	<tamas@tklengyel.com>, "Alexandru Isaila" <aisaila@bitdefender.com>, Petre
 Pircalabu <ppircalabu@bitdefender.com>
Subject: [PATCH v1 6/7] xen/mem_access: wrap memory access when VM_EVENT=n
Date: Thu, 13 Nov 2025 11:16:29 +0800
Message-ID: <20251113031630.1465599-7-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251113031630.1465599-1-Penny.Zheng@amd.com>
References: <20251113031630.1465599-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: BN1PEPF00004689:EE_|SA1PR12MB7410:EE_
X-MS-Office365-Filtering-Correlation-Id: 7d405d3c-89d2-4f87-75c8-08de226321cc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?1n3pkVSqs+kAFjPK2dEkwUPMma8OaBNJqj/X2Gt6xGpu3SDH9wIkGbRXCNCU?=
 =?us-ascii?Q?Zd9qnL+kbKz53UU8b1OEkCkDqt0rvwkpR/n98Sm1fg4BC3FZDPMXZVyQ83wz?=
 =?us-ascii?Q?9Yly0l799khKNIJ88FwinP4anR63QxBweD2mp4F6AYI+d+0c68sH38mCJGK/?=
 =?us-ascii?Q?2+tbjj6ZUyFM8dsKpWgKCE3pgcw0yjuuANG6K5q9UnSiDPLeweVaT8iEA5Dl?=
 =?us-ascii?Q?OgYHgyh9YCIowEdJgdm0BQYy3Vm70aW/WptLXD7eJ9y0tkPyL++uV648RalM?=
 =?us-ascii?Q?kx8tVOHxYayj+3/nzyCJwjYurvpjq83C/aUdG5uDsOPj853gNMAdxWiETM4f?=
 =?us-ascii?Q?mZE2SWc80CudYpzIwEFABUPwozUTqcRsuSclFADUt+oM04MtjscoXmb+SsSf?=
 =?us-ascii?Q?qg6QUZ03XLelxsteAm9p6jFTTsKQQNCAYBj8L7aUviiGfFQ1EFyrV/+m5QBO?=
 =?us-ascii?Q?qC0HnRRPVGcZ8PWnse6V5SRUq/V1s/AoWuy413lRIb9DOSLSahYPFuZiIA5I?=
 =?us-ascii?Q?v9Q+iRAAEzP6j598zvCsEMWQLma2Q4fVP/XYh8z8T6V5J/5xHqIQ5CosRcUT?=
 =?us-ascii?Q?s7eDzHQZZoKZhmrOja8kv5YBGTKDwsKACdSdIeisN/8Z+nhlFhXCHTX26Jaw?=
 =?us-ascii?Q?6l406k9Y2l21sBIsl/tHJQdJn5ildLa7uV4hypM9DH5cea0D0z7h4A+Iw2Jc?=
 =?us-ascii?Q?9FK0PbQOb5Svv0GownNco1myI/UqcehMtJ865jqbD3yaSksJe+/gT9chnneg?=
 =?us-ascii?Q?qJyIgo6J1+UTEsjDnVDl9bYE9MtE9zGg3MvovUmHjVP7PY9p9dp+pvdaiiEs?=
 =?us-ascii?Q?pePIpVuHrI76dzv1SwlgL4zG5Ql6w8uiuPa11wqIkbTRH80e4pUH1tUg+caR?=
 =?us-ascii?Q?g0MDvdPtH9Rey8QUa3tBERPo6artAWoYWt4tjXuAJXBIbipPZa5oaBnvdNyV?=
 =?us-ascii?Q?uNOJD9Sc7st6nxaYHKptcWXfTAeeoKjNkH0kqVj8iK8rbm83UclhiLuRkg/r?=
 =?us-ascii?Q?tCq1gsKWl04vJsi1ytAJ4Eee+SWjmyaX+0NsddOPcQUslLNggrFqo7NSA6bm?=
 =?us-ascii?Q?PKnxZjM8nfCP4mZ1eXZT8ndCC43gVV+9BwXFEa3VoIFOarthaIGnXfc9h7oo?=
 =?us-ascii?Q?+V7E9KKkGKIstBq8BNyCsvtJj8vL5bRWPUdMkrOgtyHYUACrdNISQZ8YW1x5?=
 =?us-ascii?Q?t1O1y2UT/7/KZqrlN4Luo5Gys+uEFyAO1+UCY2zckfoQ/K7jdera3ycJuv0e?=
 =?us-ascii?Q?zahunfsBGPf+WsZrts6j60LXYw3ly3tHnvKORu2ZDx8TbRgPDN2MHVvzD2IW?=
 =?us-ascii?Q?r2pU0Q8bcpUbXS79oKg9npf+E6u2CPxcermrqlbE3NjN/E+H+tZQZG55HPjS?=
 =?us-ascii?Q?wwOTjkeQv/hS0XhQIE4w9hFGUuJ9VKM6g8xNv5+oPPG+p64PHOp6vraqTzNz?=
 =?us-ascii?Q?9k7uxPotSQiI+Fmnup29qqahReYctzTvzwuKT7HK07xuDjJhJKoqc1X1BNf7?=
 =?us-ascii?Q?Ju4Wn1AesdLlNEqlq4u+w0la08GPBznmsOX4H8snMWy1YP6nXglMB4wavnyz?=
 =?us-ascii?Q?LutIpGfS5L5n3tkHrTI=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 03:17:09.6919
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7d405d3c-89d2-4f87-75c8-08de226321cc
X-MS-Exchange-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:
	BN1PEPF00004689.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7410

Feature memory access is based on vm event subsystem, and it could be disabled
in the future. So a few switch-blocks in do_altp2m_op() need
IS_ENABLED(CONFIG_VM_EVENT) wrapping to pass compilation when ALTP2M=y and
VM_EVENT=n(, hence MEM_ACCESS=n), like HVMOP_altp2m_set_mem_access, etc.
Function p2m_mem_access_check() still needs stub when VM_EVENT=n to
pass compilation.
Although local variable "req_ptr" still remains NULL throughout its lifetime,
with the change of NULL assignment, we will face runtime undefined error only
when CONFIG_USBAN is on. So we strengthen the condition check via adding
vm_event_is_enabled() for the special case.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- a new commit split from previous "xen/vm_event: consolidate CONFIG_VM_EVENT"
- use IS_ENABLED() to replace #ifdef
- remove unnecessary changes in compat_altp2m_op()
- strengthen the condition check to fix runtime undefined error when
CONFIG_USBAN=y
---
 xen/arch/x86/hvm/hvm.c                | 97 +++++++++++++++------------
 xen/arch/x86/include/asm/mem_access.h | 10 +++
 2 files changed, 65 insertions(+), 42 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index ebadcf2289..c3417b0593 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -52,6 +52,7 @@
 #include <asm/i387.h>
 #include <asm/mc146818rtc.h>
 #include <asm/mce.h>
+#include <asm/mem_access.h>
 #include <asm/monitor.h>
 #include <asm/msr.h>
 #include <asm/mtrr.h>
@@ -2081,7 +2082,7 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
 #endif
     }
 
-    if ( req_ptr )
+    if ( req_ptr && vm_event_is_enabled(curr) )
     {
         if ( monitor_traps(curr, sync, req_ptr) < 0 )
             rc = 0;
@@ -4862,58 +4863,70 @@ static int do_altp2m_op(
         break;
 
     case HVMOP_altp2m_set_mem_access:
-        if ( a.u.mem_access.pad )
-            rc = -EINVAL;
-        else
-            rc = p2m_set_mem_access(d, _gfn(a.u.mem_access.gfn), 1, 0, 0,
-                                    a.u.mem_access.access,
-                                    a.u.mem_access.view);
+        if ( IS_ENABLED(CONFIG_VM_EVENT) )
+        {
+            if ( a.u.mem_access.pad )
+                rc = -EINVAL;
+            else
+                rc = p2m_set_mem_access(d, _gfn(a.u.mem_access.gfn), 1, 0, 0,
+                                        a.u.mem_access.access,
+                                        a.u.mem_access.view);
+        }
         break;
 
     case HVMOP_altp2m_set_mem_access_multi:
-        if ( a.u.set_mem_access_multi.pad ||
-             a.u.set_mem_access_multi.opaque > a.u.set_mem_access_multi.nr )
+        if ( IS_ENABLED(CONFIG_VM_EVENT) )
         {
-            rc = -EINVAL;
-            break;
-        }
+            if ( a.u.set_mem_access_multi.pad ||
+                 a.u.set_mem_access_multi.opaque >
+                    a.u.set_mem_access_multi.nr )
+            {
+                rc = -EINVAL;
+                break;
+            }
 
-        /*
-         * Unlike XENMEM_access_op_set_access_multi, we don't need any bits of
-         * the 'continuation' counter to be zero (to stash a command in).
-         * However, 0x40 is a good 'stride' to make sure that we make
-         * a reasonable amount of forward progress before yielding,
-         * so use a mask of 0x3F here.
-         */
-        rc = p2m_set_mem_access_multi(d, a.u.set_mem_access_multi.pfn_list,
-                                      a.u.set_mem_access_multi.access_list,
-                                      a.u.set_mem_access_multi.nr,
-                                      a.u.set_mem_access_multi.opaque,
-                                      0x3F,
-                                      a.u.set_mem_access_multi.view);
-        if ( rc > 0 )
-        {
-            a.u.set_mem_access_multi.opaque = rc;
-            rc = -ERESTART;
-            if ( __copy_field_to_guest(guest_handle_cast(arg, xen_hvm_altp2m_op_t),
-                                       &a, u.set_mem_access_multi.opaque) )
-                rc = -EFAULT;
+            /*
+             * Unlike XENMEM_access_op_set_access_multi, we don't need any
+             * bits of the 'continuation' counter to be zero (to stash a
+             * command in).
+             * However, 0x40 is a good 'stride' to make sure that we make
+             * a reasonable amount of forward progress before yielding,
+             * so use a mask of 0x3F here.
+             */
+            rc = p2m_set_mem_access_multi(d, a.u.set_mem_access_multi.pfn_list,
+                                          a.u.set_mem_access_multi.access_list,
+                                          a.u.set_mem_access_multi.nr,
+                                          a.u.set_mem_access_multi.opaque,
+                                          0x3F,
+                                          a.u.set_mem_access_multi.view);
+            if ( rc > 0 )
+            {
+                a.u.set_mem_access_multi.opaque = rc;
+                rc = -ERESTART;
+                if ( __copy_field_to_guest(
+                        guest_handle_cast(arg, xen_hvm_altp2m_op_t),
+                        &a, u.set_mem_access_multi.opaque) )
+                    rc = -EFAULT;
+            }
         }
         break;
 
     case HVMOP_altp2m_get_mem_access:
-        if ( a.u.mem_access.pad )
-            rc = -EINVAL;
-        else
+        if ( IS_ENABLED(CONFIG_VM_EVENT) )
         {
-            xenmem_access_t access;
-
-            rc = p2m_get_mem_access(d, _gfn(a.u.mem_access.gfn), &access,
-                                    a.u.mem_access.view);
-            if ( !rc )
+            if ( a.u.mem_access.pad )
+                rc = -EINVAL;
+            else
             {
-                a.u.mem_access.access = access;
-                rc = __copy_to_guest(arg, &a, 1) ? -EFAULT : 0;
+                xenmem_access_t access;
+
+                rc = p2m_get_mem_access(d, _gfn(a.u.mem_access.gfn), &access,
+                                        a.u.mem_access.view);
+                if ( !rc )
+                {
+                    a.u.mem_access.access = access;
+                    rc = __copy_to_guest(arg, &a, 1) ? -EFAULT : 0;
+                }
             }
         }
         break;
diff --git a/xen/arch/x86/include/asm/mem_access.h b/xen/arch/x86/include/asm/mem_access.h
index 257ed33de1..790bed81e8 100644
--- a/xen/arch/x86/include/asm/mem_access.h
+++ b/xen/arch/x86/include/asm/mem_access.h
@@ -14,6 +14,7 @@
 #ifndef __ASM_X86_MEM_ACCESS_H__
 #define __ASM_X86_MEM_ACCESS_H__
 
+#ifdef CONFIG_VM_EVENT
 /*
  * Setup vm_event request based on the access (gla is -1ull if not available).
  * Handles the rw2rx conversion. Boolean return value indicates if event type
@@ -25,6 +26,15 @@
 bool p2m_mem_access_check(paddr_t gpa, unsigned long gla,
                           struct npfec npfec,
                           struct vm_event_st **req_ptr);
+#else
+static inline bool p2m_mem_access_check(paddr_t gpa, unsigned long gla,
+                                        struct npfec npfec,
+                                        struct vm_event_st **req_ptr)
+{
+    *req_ptr = NULL;
+    return false;
+}
+#endif /* CONFIG_VM_EVENT */
 
 /* Check for emulation and mark vcpu for skipping one instruction
  * upon rescheduling if required. */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 04:11:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 04:11:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160613.1488690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJOgO-000631-LX; Thu, 13 Nov 2025 04:11:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160613.1488690; Thu, 13 Nov 2025 04:11:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJOgO-00062u-J3; Thu, 13 Nov 2025 04:11:40 +0000
Received: by outflank-mailman (input) for mailman id 1160613;
 Thu, 13 Nov 2025 04:11: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=zWJc=5V=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vJOgN-00062o-N8
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 04:11:39 +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 d812b7d3-c046-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 05:11:37 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 SJ1PR12MB6268.namprd12.prod.outlook.com (2603:10b6:a03:455::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Thu, 13 Nov
 2025 04:11:30 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%3]) with mapi id 15.20.9298.015; Thu, 13 Nov 2025
 04:11:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d812b7d3-c046-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VnQcWQmgpBZ37ObnrCYuzMzCIkUM1Cl0sRYcCUGJoPl0UE8a4yKXifonMcunzHJCQ/zDsz4dF+4nzyA13+umVmEujR5ZQyfb+714s2WWAgWNqKgHyQQKFq0FEEK/0fpX0BKeJvNeDlPmVuS/+pTyKNrc3Ml5byKLMMIOwDU3FWGYtDX4bCwI/1HtL5XzYwv5EeV4ft9UJg50ZucBBRdgWUb9BsUAYfx6Sj2yxD21U9CzEW7fuigY7eUevtJI9vl37t+4kP70+ytfxWw+gnl2glu67qyRcS0mzobFJ2YiZSg8x0KJ+wydvP3Klh+M3d8n52gufHXKBvDN1webZi/5Gw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4ZX5mnDOYXjqReCfLrAek0so2UZhIy+M04R3URQAvRU=;
 b=qrNFYxyr2LzkoPll4t3nlHMlTBJXzamTYzisQpbYA18Mv7cD4HuKvjnEH0DgPnPQV/N5L2ah6VbDRDDoEWC37umsEBBswBTV/D/wyUlL9Gd9odZXxFjx1xIb4wvkNWyF64ur73KyfDpRpxt0xkYVUu/NhsPvfgIRmDipGqPAcPMs9ecvVZ+N6Uofv4IUBd9HWF1utBJoeHWRF+RQvitLKgFh5qtcNf6Lwj2VFTiV+bELxZvYoRXGSodUA3tIX7wOiRaaFPv9Xz1gD9NWe/pUiugXwLjPgnDws7zt/35OsGD14nxbkYdBPpMmLhDm/JZRKclnP3i+fOH0iT4cz3SkSg==
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=4ZX5mnDOYXjqReCfLrAek0so2UZhIy+M04R3URQAvRU=;
 b=2pkecL3bvI6zphgWPOoAU1JHECaMbOPUK8amhiuV7rlEJJi1A1KxiC0RqThHSMvZhl8fvldnbPsd16R3vBJU8JYMZDsjFxEW5OvwKc75iGBuPtNNciMjNu1ZLVt7216B+eg/hMWx+Mq+QWOaawEnvPV2Z7E7GglWQfi31mMmUT8=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "oleksii.kurochko@gmail.com"
	<oleksii.kurochko@gmail.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	"Orzel, Michal" <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>, Shawn Anastasio
	<sanastasio@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, Connor
 Davis <connojdavis@gmail.com>, Tamas K Lengyel <tamas@tklengyel.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v3 15/28] xen/domctl: wrap domain_kill() with
 CONFIG_MGMT_HYPERCALLS
Thread-Topic: [PATCH v3 15/28] xen/domctl: wrap domain_kill() with
 CONFIG_MGMT_HYPERCALLS
Thread-Index: AQHcPCqOfEVt2Jk05kOchIzPOp9r0LTavU6AgBQtWvCAABPQAIABL62w
Date: Thu, 13 Nov 2025 04:11:30 +0000
Message-ID:
 <DM4PR12MB8451EDD8CB080ABBEE5902A7E1CDA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251013101540.3502842-1-Penny.Zheng@amd.com>
 <20251013101540.3502842-16-Penny.Zheng@amd.com>
 <8c74774a-458b-4918-8d65-fcb3eacfe98b@suse.com>
 <DM4PR12MB845189415FBE1E8C250C81D2E1CCA@DM4PR12MB8451.namprd12.prod.outlook.com>
 <58508638-ecff-4507-a11a-8dd7ac52e61f@suse.com>
In-Reply-To: <58508638-ecff-4507-a11a-8dd7ac52e61f@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-11-13T04:11:21.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|SJ1PR12MB6268:EE_
x-ms-office365-filtering-correlation-id: a258618a-2f0d-4038-e776-08de226ab967
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|366016|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?eDRJaVJEaVhNeXZVVldhcGJCL295NW5jWTU0TmVmSUVKb281MGhyemdRNU5X?=
 =?utf-8?B?VDM5bGxMeWZCNmhnV0ozaWNXYnpyV2h4dXBNNEdveWNVR3BTR1lKa1c5UUZ3?=
 =?utf-8?B?cS8ya0JYeVFmTXV1OXNlSnZsYVMyUDZhZXFycjE4OVNIRWdaVXZHRGZpMmNY?=
 =?utf-8?B?dTFvZXZCS3MzeHAxbUVNMkt1NjcvcDF5ZGk3ckhDSk5NT2ZuL0xudU50eFBv?=
 =?utf-8?B?MjZUcjFiWVIxUXVGeU5xaHlzQmxUSmt0ZTM1NERBR1h2dlpRSnNCZTh1SnhP?=
 =?utf-8?B?TVc4VGMxRlovWVJlTW94dUxjZWhnZWdiRVlhVkI4Tm8reEoyeTNjT0dwaE9I?=
 =?utf-8?B?aTMzcEt6cm4ySTVmUTkyT3lzRWxYcG82aG1JVEJad2lJYVVmY2ljMUN0QjdS?=
 =?utf-8?B?VFBxbEQySmVvaVhPZG0vbXJVQUF1dW9jU1hQUm9aakNvTlhTeEhCVU10Mkd4?=
 =?utf-8?B?NGFuNmxpcDl4Ky83QjNiL1Q1V0UyQTFFM2UyLzMxOGszN040Qm0xTGM3QWs3?=
 =?utf-8?B?MjFVaGpRb1ZlZ1FvcmJ4MVJPYmdWTVU0TmRQUCswY01vNTZaZlZId3NzdTdB?=
 =?utf-8?B?cUV1MjF2ZUJyRGlaeGo3NXpjbDQ0MS91eUV4ZjhpM1RqN3pJRm15alpVOXlB?=
 =?utf-8?B?RWZPbmh4RlcyRko5RWhvekFzVnJxbTJ0b1FOK2VFOUM1UEI4Qjk5a0RHSEs4?=
 =?utf-8?B?ZkZSTHRTVFdLelBaaHNROFZFeVYxbmNhRUxWckxkODRQWkUwOW1YajROdlYx?=
 =?utf-8?B?bU1PYm80RytsOU5DUHZzM1Z5dy91QWtwMlJTR2c4YWxINkR0dGUyNVMvdmh2?=
 =?utf-8?B?UStOZjZjeURNWmNWcUhGWDhVUnNXQkVOdFlXWGpoZ2VnbHF0TjRJOHZpU2xN?=
 =?utf-8?B?L0s5QzNIVVpDdHJVQkxDbnIybFRyYWQ2b001cDh1ZXNwa3ZVVGV3bGFHUVFq?=
 =?utf-8?B?dUp4UEJWNzRlZm42M3g0ZTlEYkZPNFBEMUhaeEgxNmExKzl5MllsbFU5YTZE?=
 =?utf-8?B?SUl4R3VQT3RkbExsdHh5WmtNVlZhdkM3a0ROaGNUeVF5cGNBVmV6OWp3ZkVT?=
 =?utf-8?B?NlNFODA2NDY3QTN0OC9nT1kwdzBPclU0N1EyQkRaVzQ0d3o1Q2kydVNqNS94?=
 =?utf-8?B?ZDhDQTRNb3JwZUZXaDZMUzgrQm5WL01aU0QzclJJZVdZNElYYXdUaGVFdFd4?=
 =?utf-8?B?b2x0LzN4UFBQc0hjVm01b0RocWtqUTdCTW51M3NZTTZIMUNMTXBPRTU3YmhR?=
 =?utf-8?B?ZHZnL2hWQk9oVWhuOHdhUWFSN2dieklCZHYrOC84Ukw0Q1NVNlY4VjNrVUFM?=
 =?utf-8?B?K0NnZ0FsNzk1K0loRmhEanQ0amM3QllFYWNLbGtJSGl5UHJoN2NSWG80TTI1?=
 =?utf-8?B?bFR6ZUlIaWJOcGJvdDJBUFpLNnpnSDZzbWM2VHk5cjB2bWpkTEs4MFpKMksz?=
 =?utf-8?B?ZWdJRXYxRnNSdWdSU2xyRnV0K0l4WnBUekpDbm1PYXM2ZEFOWml2RnA0YjQ2?=
 =?utf-8?B?R0VrZ2xtUU9wblFsM2UrVFdla2JZR0tFUHJGaU4wWVV5TEl1RnJ4Z3ZVaGQ2?=
 =?utf-8?B?QU9qQ00rRHNGQ2ZGK2F3TDVjY0dQMXhHL3gwRTdIa1BQbVh6cWtmTnRtK3VD?=
 =?utf-8?B?enEzOHVlM0dkVkhOR1A4Q2ZzZnBxRVZoV1RmcG1XSjNMbjcwTnRRVXN4S3pE?=
 =?utf-8?B?azBSWEc5cVdhT2p3Slp5ZldVVk9XV2kzSS9XVElYc05ueEJBVHM2aEt6N2hn?=
 =?utf-8?B?ci9RM3o2Y1pndVZsZVM2VXRaWnVSVGZIcGd1c1lvZ2xBNWdwU3JOUFFVTm5Y?=
 =?utf-8?B?QW1UOUx5UU91ei9ZdWxuVVBkaVFvY0d5S0hTdmg3WDYzZjZtb2kxZnBqSW03?=
 =?utf-8?B?bzh6RW0wMnA3N3RKRHZSeWFFcUdQM1V3WEI5bHdWOXBnWERoVGxOM2FkZzZK?=
 =?utf-8?B?eXlneERWYU5COHBSZEw0NUZkRzFzSm14cWhwdXJBeFpsWE1Jak5XS1REY0tp?=
 =?utf-8?B?SHBRdkxicWV4NUlybzB1cEU5T2kyeVU3WVNObTF3VjhNS2p2Q1NITEo2QVBN?=
 =?utf-8?Q?hjJcG9?=
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)(7416014)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?TUMrbmk5Ulgrb3V6ZHFRR2tPZUtkSlgxYTV5b0FlYlcyMzl6aXlkSXdLSmMr?=
 =?utf-8?B?N1hvVElPZW0rYTdRbG9nei9qR3kvRVFBOHJqd1BENUd3cDZhOXdkWXBDYmFi?=
 =?utf-8?B?MWJNczEwZFN1Q2MvTzYrUWxqd0wwckErb093RGYwTDFHamU4Z29RYjByMFJ2?=
 =?utf-8?B?NlBMRFNNY0ZGOXhmWGdYR0NVVnZnNGdMRDA1NjBZdk1rWEtHRjlhTTBKVWpO?=
 =?utf-8?B?MkpVemVMd0JOVDU1eXd2VUgwSmdxNWxnRDJLSkIzbElpaTVpUFBrRGFwN1VX?=
 =?utf-8?B?OG5hY0lieUF4K01HcUZBV2ROVFd5a21JMHpyakRTYm1oZTJJbk53Sk1JY3RR?=
 =?utf-8?B?RWNsY3JKcTY0SVpJalNsd1hXdGVLY25KbkhDTmk4UFhiVkcxNStjVm5nZTVW?=
 =?utf-8?B?dXk1TDNkTWI1T2F1aVZyQ0pzQkhDQyswSXRnUndhY1RtZXlHYkhMU3ZpNDJ5?=
 =?utf-8?B?Rno3V1Z6dzNraEphazRnbHU4aS9nZmRTdkRJY1ZuZVczcHc3NmdURlBqMmo3?=
 =?utf-8?B?TFVqb3RNTFE2RWdtK3RyblFZV2xsKyswSmt4S1FFMTdMTi9hOXozR0N5VGpH?=
 =?utf-8?B?QXhMT1NhRTBvOVMyUEhodzhMRkYwbU9vcGxMK1ZjdDl1RUJrNjUwc0tScGRz?=
 =?utf-8?B?SjFJZzMxVmVEWFhpUUdQS2J0em1ZeGpNZmhhcGZEQ2k1TVQ2NUR1OW4yTkRk?=
 =?utf-8?B?VVJja01uMkhWeU9vdDdCWDNQYUFwZjU0RWtKbWE4cG4vMnk5c1Q1M2k1YTRk?=
 =?utf-8?B?S3kzY2FIWUFuOTVTM3Q3MDB4czM3NUZMZkdJdC93UldzVWI1UW85ZXFBb2oz?=
 =?utf-8?B?cDlvV2d5RzVYQ1ZRbXJPQXhrSFV4OWNnS3BsRDQzZDNteXFYeWk0OG9nWkVl?=
 =?utf-8?B?dlhSUXVkTnU1ZnJPSGM5T1JlOE9EVlpKQjUzWHRGZWo5RXVlUlB0UTJTNThG?=
 =?utf-8?B?eVA2NFY4MytHVDlYVmtlVENFckxranQxK3puSE9sdC82WkJLQi9HUENSbFhE?=
 =?utf-8?B?SDVXMUhIbDRKOWdLVmhoM2VJdGNEckFxZG44MDF3NnBickNCVERZVVF5Sjho?=
 =?utf-8?B?dkUwdWpDdFNJQzhYN1pZdUpIc1QyVXd1ZExXZnpOSlEzNFM4MzR0ZEF4Z0Fh?=
 =?utf-8?B?SSsrT0lRaCtaVjVsaUdZbUlLa2FrWEp6NXNxeU1BVG43RWY1YjRWQStGVGp2?=
 =?utf-8?B?NFFVcmpjVFR5Wkp3SXFrbnR0UDlCRWNiZzBwYjVTWE9kTDBoL0p6aVozYWtN?=
 =?utf-8?B?RlhETjFBZUlpSU8zb0dha1VpS1N3L0NFMTc5YktBblNad3JWK1UyNkRPSjA5?=
 =?utf-8?B?V0p5NnBHZ2pDdmkyb2k0Y2pYUmYwK0gycGlrb1VNYlU4K21yOW1peWQrS0lJ?=
 =?utf-8?B?SmRGeFBST21iZjI2K0hWSnk0Nm9oUjh1NVZBbWl5MXBPYUNmaWVXSDczVFlq?=
 =?utf-8?B?c1RwWTdOM1RVd3U5UlVTTlhBUDZnalBIQVpkM3pTYUUyMTk5N09QTXBFWmdP?=
 =?utf-8?B?aDRKUDh4a2U5NXdJYlBBd0pWNVJ4alRQelRYUENIb0Z5aFNKVmlPYUgybS9D?=
 =?utf-8?B?VTJVWnRjUlFQUWd0VFUxVkY2eUdQWjA1RlRHUUZqejdRcG5JMmZab0d4Z3pU?=
 =?utf-8?B?RlFuL09UckJJS21ybVRuRXlJZzRJazBBR0p5T2lCTTZmS05VOHNRMXZ6b2tI?=
 =?utf-8?B?dmQ5cVVVUDFHT1R3bFQ4M3V3K3RUY0xUTis4WXhEMWdPWGdlVnJOR3pCZ1NJ?=
 =?utf-8?B?d2lQNWc0bVVLckZGL0Ivd1FGTzhueVJncldGS1FKM01sZy9kRFFJS0dlTGVh?=
 =?utf-8?B?b3dYa3pVZmY2dEJRZkJZb0tCRkpGTDd3TGo3cW44OHIvcnlMdndYcHdyVGNH?=
 =?utf-8?B?WnhJbG9NQVBZRDRKZ1VmQ3ZodnZaRVlkazdHbDJ1OGYvdGlsM1AvVmVVa08w?=
 =?utf-8?B?cVlpcVpmMVZTQVdKZ3JVdE1CVllMYmJZOXd1TmlOWHdIOGpQZHdEaFdKZnRJ?=
 =?utf-8?B?cXBmMFFENEhQS2M5NlcyRkJMdEttZ0UzV0gwb2k0ZG9UbDZoRVJpNEZoYWdh?=
 =?utf-8?B?OGJNZGpscFpHTTlZRDdid05hajZJS1N5ODZ6aTdoSmJQMDNJRHdhZVVVMjVR?=
 =?utf-8?Q?+fWo=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a258618a-2f0d-4038-e776-08de226ab967
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Nov 2025 04:11:30.5585
 (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: iAsHy+X2pgsXD3nGsMt2mW6MX9c9XDj+M10Koqm/lGSU6QMYgqL0405AUdcvXKBFRd8NMHXHX11i0fcCn+T9qw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6268

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIgMTIs
IDIwMjUgNjowMiBQTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0K
PiBDYzogSHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBvbGVrc2lpLmt1cm9jaGtvQGdt
YWlsLmNvbTsgU3RlZmFubw0KPiBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPjsg
SnVsaWVuIEdyYWxsIDxqdWxpZW5AeGVuLm9yZz47IEJlcnRyYW5kDQo+IE1hcnF1aXMgPGJlcnRy
YW5kLm1hcnF1aXNAYXJtLmNvbT47IE9yemVsLCBNaWNoYWwgPE1pY2hhbC5PcnplbEBhbWQuY29t
PjsNCj4gVm9sb2R5bXlyIEJhYmNodWsgPFZvbG9keW15cl9CYWJjaHVrQGVwYW0uY29tPjsgQW5k
cmV3IENvb3Blcg0KPiA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT47IEFudGhvbnkgUEVSQVJE
IDxhbnRob255LnBlcmFyZEB2YXRlcy50ZWNoPjsNCj4gUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIu
cGF1QGNpdHJpeC5jb20+OyBTaGF3biBBbmFzdGFzaW8NCj4gPHNhbmFzdGFzaW9AcmFwdG9yZW5n
aW5lZXJpbmcuY29tPjsgQWxpc3RhaXIgRnJhbmNpcyA8YWxpc3RhaXIuZnJhbmNpc0B3ZGMuY29t
PjsNCj4gQm9iIEVzaGxlbWFuIDxib2JieWVzaGxlbWFuQGdtYWlsLmNvbT47IENvbm5vciBEYXZp
cw0KPiA8Y29ubm9qZGF2aXNAZ21haWwuY29tPjsgVGFtYXMgSyBMZW5neWVsIDx0YW1hc0B0a2xl
bmd5ZWwuY29tPjsgeGVuLQ0KPiBkZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0
OiBSZTogW1BBVENIIHYzIDE1LzI4XSB4ZW4vZG9tY3RsOiB3cmFwIGRvbWFpbl9raWxsKCkgd2l0
aA0KPiBDT05GSUdfTUdNVF9IWVBFUkNBTExTDQo+DQo+IE9uIDEyLjExLjIwMjUgMDk6NTgsIFBl
bm55LCBaaGVuZyB3cm90ZToNCj4gPiBbUHVibGljXQ0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwg
TWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4N
Cj4gPj4gU2VudDogVGh1cnNkYXksIE9jdG9iZXIgMzAsIDIwMjUgODo0NCBQTQ0KPiA+PiBUbzog
UGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiA+PiBDYzogSHVhbmcsIFJheSA8
UmF5Lkh1YW5nQGFtZC5jb20+OyBvbGVrc2lpLmt1cm9jaGtvQGdtYWlsLmNvbTsNCj4gPj4gU3Rl
ZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPjsgSnVsaWVuIEdyYWxsDQo+
ID4+IDxqdWxpZW5AeGVuLm9yZz47IEJlcnRyYW5kIE1hcnF1aXMgPGJlcnRyYW5kLm1hcnF1aXNA
YXJtLmNvbT47IE9yemVsLA0KPiA+PiBNaWNoYWwgPE1pY2hhbC5PcnplbEBhbWQuY29tPjsgVm9s
b2R5bXlyIEJhYmNodWsNCj4gPj4gPFZvbG9keW15cl9CYWJjaHVrQGVwYW0uY29tPjsgQW5kcmV3
IENvb3Blcg0KPiA+PiA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT47IEFudGhvbnkgUEVSQVJE
DQo+ID4+IDxhbnRob255LnBlcmFyZEB2YXRlcy50ZWNoPjsgUm9nZXIgUGF1IE1vbm7DqSA8cm9n
ZXIucGF1QGNpdHJpeC5jb20+Ow0KPiA+PiBTaGF3biBBbmFzdGFzaW8gPHNhbmFzdGFzaW9AcmFw
dG9yZW5naW5lZXJpbmcuY29tPjsgQWxpc3RhaXIgRnJhbmNpcw0KPiA+PiA8YWxpc3RhaXIuZnJh
bmNpc0B3ZGMuY29tPjsgQm9iIEVzaGxlbWFuIDxib2JieWVzaGxlbWFuQGdtYWlsLmNvbT47DQo+
ID4+IENvbm5vciBEYXZpcyA8Y29ubm9qZGF2aXNAZ21haWwuY29tPjsgVGFtYXMgSyBMZW5neWVs
DQo+ID4+IDx0YW1hc0B0a2xlbmd5ZWwuY29tPjsgeGVuLSBkZXZlbEBsaXN0cy54ZW5wcm9qZWN0
Lm9yZw0KPiA+PiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDE1LzI4XSB4ZW4vZG9tY3RsOiB3cmFw
IGRvbWFpbl9raWxsKCkgd2l0aA0KPiA+PiBDT05GSUdfTUdNVF9IWVBFUkNBTExTDQo+ID4+DQo+
ID4+IE9uIDEzLjEwLjIwMjUgMTI6MTUsIFBlbm55IFpoZW5nIHdyb3RlOg0KPiA+Pj4gLS0tIGEv
eGVuL2FyY2gveDg2L21tL21lbV9zaGFyaW5nLmMNCj4gPj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni9t
bS9tZW1fc2hhcmluZy5jDQo+ID4+PiBAQCAtMTM5Niw2ICsxMzk2LDcgQEAgaW50IF9fbWVtX3No
YXJpbmdfdW5zaGFyZV9wYWdlKHN0cnVjdCBkb21haW4NCj4gKmQsDQo+ID4+PiAgICAgIHJldHVy
biByYzsNCj4gPj4+ICB9DQo+ID4+Pg0KPiA+Pj4gKyNpZmRlZiBDT05GSUdfTUdNVF9IWVBFUkNB
TExTDQo+ID4+PiAgaW50IHJlbGlucXVpc2hfc2hhcmVkX3BhZ2VzKHN0cnVjdCBkb21haW4gKmQp
ICB7DQo+ID4+PiAgICAgIGludCByYyA9IDA7DQo+ID4+PiBAQCAtMTQ1Miw2ICsxNDUzLDcgQEAg
aW50IHJlbGlucXVpc2hfc2hhcmVkX3BhZ2VzKHN0cnVjdCBkb21haW4gKmQpDQo+ID4+PiAgICAg
IHAybV91bmxvY2socDJtKTsNCj4gPj4+ICAgICAgcmV0dXJuIHJjOw0KPiA+Pj4gIH0NCj4gPj4+
ICsjZW5kaWYgLyogQ09ORklHX01HTVRfSFlQRVJDQUxMUyAqLw0KPiA+Pj4NCj4gPj4+ICBzdGF0
aWMgaW50IHJhbmdlX3NoYXJlKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBkb21haW4gKmNkLA0K
PiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG1lbV9zaGFyaW5nX29wX3Jhbmdl
ICpyYW5nZSkNCj4gPj4NCj4gPj4gSXMgdGhpcyBuZWNlc3Nhcnk/IFNob3VsZG4ndCBNRU1fU0hB
UklORyBhcyBhIHdob2xlIGJlY29tZSBkZXBlbmRlbnQNCj4gPj4gdXBvbiBNR01UX0hZUEVSQ0FM
TFMsIHRoZW4gYWxzbyBjb3ZlcmluZyBYRU5NRU1fc2hhcmluZ19vcD8gKFRoZQ0KPiBzYW1lDQo+
ID4+IHdpbGwgYWxyZWFkeSBpbXBsaWNpdGx5IGhhcHBlbiBmb3IgTUVNX1BBR0lORywgZHVlIHRv
IGl0cyBWTV9FVkVOVA0KPiA+PiBkZXBlbmRlbmN5LikNCj4gPj4NCj4gPg0KPiA+IFllcywgU2lu
Y2UgSSBkaWRuJ3Qgc2VlIFZNX0VWRU5UIGRlcGVuZGVuY3kgZm9yIE1FTV9TSEFSSU5HLiBJJ20g
bm90DQo+IDEwMCUgc3VyZSB0aGF0IHdoZXRoZXIgbWVtb3J5IHNoYXJpbmcgZmVhdHVyZSBpcyBk
ZXBlbmRlbnQgb24gVk1fRVZFTlQuIEFsc28NCj4gYXMgSSByb3VnaGx5IGxvb2sgdGhyb3VnaCB0
aGUgY29kZXMgaW4gbW0vbWVtX3NoYXJpbmcuYywgbWF5YmUgb25seQ0KPiBtZW1fc2hhcmluZ19u
b3RpZnlfZW5vbWVtKCkgdXRpbGl6ZXMgdm0gZXZlbnQgc3Vic3lzdGVtLg0KPg0KPiBSaWdodCwg
YSBsaXR0bGUgd2hpbGUgYWdvIChpaXJjIGluIHRoZSBjb250ZXh0IG9mIHlvdXIgd29yaykgVGFt
YXMgc2FpZCB0aGUgc2FtZS4NCj4gQnV0IEkgZGlkbid0IGFzayBhYm91dCBWTV9FVkVOVDsgSSBh
c2tlZCBhYm91dCBNR01UX0hZUEVSQ0FMTFMuDQo+DQoNCk9oLCBzb3JyeS4uLi4NClllcywgVGhl
IGVuYWJsaW5nIGJpdCAoZC0+YXJjaC5odm0ubWVtX3NoYXJpbmcuZW5hYmxlZCkgY291bGQgb25s
eSBiZSBlbmFibGVkIHZpYSBkb21jdGwtb3AuIEkgd2lsbCBtYWtlIGl0IGRlcGVuZCBvbiBNR01U
X0hZUEVSQ0FMTFMuDQoNCj4gSmFuDQo=


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 04:40:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 04:40:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160626.1488700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJP87-0001bS-R0; Thu, 13 Nov 2025 04:40:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160626.1488700; Thu, 13 Nov 2025 04: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 1vJP87-0001bL-NR; Thu, 13 Nov 2025 04:40:19 +0000
Received: by outflank-mailman (input) for mailman id 1160626;
 Thu, 13 Nov 2025 04:40: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=zWJc=5V=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vJP86-0001aT-Dg
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 04:40:18 +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 d96fe2c9-c04a-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 05:40:16 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 DS0PR12MB9274.namprd12.prod.outlook.com (2603:10b6:8:1a9::6) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.16; Thu, 13 Nov 2025 04:40:10 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%3]) with mapi id 15.20.9298.015; Thu, 13 Nov 2025
 04:40: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: d96fe2c9-c04a-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hQSUXrPs/TNqq4X2krFwKD0RzO2JtB8wusqMzF0qDc02sHDLltewy8TVeceRKYQtibCOlvWLa2DRgVfb4GtN4ozXLZDwpAbcOqEgwCe4WRWWg5NY2u6t5uSamtwzanE81g0kMqWJoFtOWkSL64cF6Kuy5ixiW70ttJKi5EYZvZAXFi6pfYlvsiccCnADnceXRGZewlEfqngqMRcKTXrrEnMuCvuLxQxNYiw5kEIHq2Qbhf++35WyBA330cRuFRXhQbNWygyvSFAXi6SZKxEaZfs40K/XoA215fmBDbkgEymuMTwYcMzlLmwAOObztZaQx9IOwwZfepIAdFevofgVlw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=flpKEo+6p4kKoWbZSNSUB7qhP02KSIoHgKhxRIxqGgU=;
 b=ZyZ/+jDpvU8cd4bZ2jcuOrgOJzXUfcaOwGSVFArCiLXDsAe6P06Xgtktb14degM+2/kwBw2ajlGKGGKw8K0dsR1OBFWSoO8qSQwYPbMB41v6xkU+3Bb9KGDJv9C0OvgRn0VFQ7kKrJNsX3TUq1E1fspo9tpX7n+w/u39bQWyltGoEjCmijIUewpxyFaPwOWX6FXkoeCgSDmph1Xqb/hIpsu+fii2Vyto27QtqFycKmxhO4oCksbhVyh1EZ8zOwKPwwor3g1w/aeqGCWFdY6K+FpYMfaM0yzU4koz2d8Z9CAJ0AR4s4a5w/mFmB5GF+1RReNjVpVL1zYcrWLOb431dw==
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=flpKEo+6p4kKoWbZSNSUB7qhP02KSIoHgKhxRIxqGgU=;
 b=rnLqOovJzeorIh6ZQR8k6acBJGYzGjVAdlzFbQM6uGeyq2rlYJMx34LeIPYj4Lajj0LN8jCCfHhHJvO3UbgndCioXensXnOCPJjUM7Cngsfo9+lpYctMoapx6LSGco3ogqQNbFDMtVUTYvcuuyt7EJF5FqzDTjE0z1cywaaNyCU=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "oleksii.kurochko@gmail.com"
	<oleksii.kurochko@gmail.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	"Orzel, Michal" <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>, Shawn Anastasio
	<sanastasio@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, Connor
 Davis <connojdavis@gmail.com>, Tamas K Lengyel <tamas@tklengyel.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v3 15/28] xen/domctl: wrap domain_kill() with
 CONFIG_MGMT_HYPERCALLS
Thread-Topic: [PATCH v3 15/28] xen/domctl: wrap domain_kill() with
 CONFIG_MGMT_HYPERCALLS
Thread-Index: AQHcPCqOfEVt2Jk05kOchIzPOp9r0LTavU6AgBVxtTA=
Date: Thu, 13 Nov 2025 04:40:10 +0000
Message-ID:
 <DM4PR12MB8451CF3CD3A8ED2D80B8275AE1CDA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251013101540.3502842-1-Penny.Zheng@amd.com>
 <20251013101540.3502842-16-Penny.Zheng@amd.com>
 <8c74774a-458b-4918-8d65-fcb3eacfe98b@suse.com>
In-Reply-To: <8c74774a-458b-4918-8d65-fcb3eacfe98b@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-11-13T04:39:44.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_|DS0PR12MB9274:EE_
x-ms-office365-filtering-correlation-id: 239e164a-9958-4780-ccef-08de226ebac3
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|7416014|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?QnlnQkZhcVhPRGU3NHZDVDB3QlZoSHJiTkZyWUlIMllhdXJ1QmVlaG9tVHF5?=
 =?utf-8?B?L2tiQnk2Slc2R2w2R2JyU3liazhnRVhSV1cyNVNzQ0tCOWZPZE81b3RBMzFa?=
 =?utf-8?B?MzBLL1BYSGVuVzBPTUg4MXo2d3IzTzVhRmQvS1BYb1YrQWxGU21acW0zTmZL?=
 =?utf-8?B?aDNrTlk0NmpXdDdsVmptOUJyellOTW5aTDZMdnVLUkNoZnRQUGZMYytHY2Uw?=
 =?utf-8?B?MzhsMzBRYVhFeXlPRlo4RkxsUzRsZG5EOEwxWEZ2VmRram5id1ZvWnBJdmpE?=
 =?utf-8?B?UG1vdGIrbGtJK0NGdS8rd3hQdTIxNlVWaGFwVWw5Nmxidnd4bDRpd0haQXg3?=
 =?utf-8?B?LzZiblFoTnRWbjNKcHpuQWZyRFYzc1pnZXNGdm5POHA4M0xVa0hkZTNGT0lK?=
 =?utf-8?B?K1Y1UjNUL1FGcnFuL3ZXcmVvRmdLTE5kbXBFejh1ZURnbEd0Y09vaUIrQ2xa?=
 =?utf-8?B?c3lVM0FZOTlxQUdXcWxicmFwcjhOOFdxMW5JaDB3bTJ1aWRsRXVsN0taYlNG?=
 =?utf-8?B?aWltViszNVlYamFlNVlNZ3Z4NHdBWVRac005Y1lXdjBHK1NqK3J6RTdmRVZz?=
 =?utf-8?B?ZlpMeXNzUkxOWWhkSjE1NGhXRmNSVkR3b0F4OTVWWno4djBmaE9OeFFjNjhX?=
 =?utf-8?B?MUVZUmMvdjUyQ1BKbG04YlRpajd4c0FRQ21kdFRFYksraEJkdTJVYXhYQXN1?=
 =?utf-8?B?bVIzL0ZCeHF6dVhwaktzcGZGT0JFUlR3SWRONWpvNHNyd2ltbUZ6R3d0RWd1?=
 =?utf-8?B?Y1A5VmdmU1RXT3hUejJCV0dXZ2N0bGsyUXlxcHM2TDR5cnNmWjl6OXhCdjky?=
 =?utf-8?B?WTEyQmtBWElydVZBWStpZlg3VEN6cFVxRithazR4RVB0Y1RXZmtDMncyVFhJ?=
 =?utf-8?B?MUFlTHYyeStpbXRKYkUvYncyUjVDNFBqQnpwWEhxM3JQQlgrLzdmUkdzVVFn?=
 =?utf-8?B?akFFUjBJRnF4QjkzcWxPMU1DZmRLSGNpKzk1QVQ2dTNGOWZyUXVsM29LYTcv?=
 =?utf-8?B?R1FMaHJkTHlNWmJWTjJIVDljQ2RhaFVpSEhMSnV4UG5IVDVlRWxacDVSdWZQ?=
 =?utf-8?B?Nmdoc0tLcDFrQmR0MEtldGFoam1Id0Z6NzNmUlIrN0gxRzhBQUlhWEtIV21z?=
 =?utf-8?B?NW1wM2dKTitLL2lEVERNdjhHWlNGbjRmV1lFQm1UY0dtc0Vrb2R6V3JiekYv?=
 =?utf-8?B?cXNPZVZiL3F6dmFqYmd3QXdSWnNIbWN0NTVRd1hoWEQ1Mkp6b3AzV2ZDalFF?=
 =?utf-8?B?RFlZY0x3czZZa2d2UWlOTGJQem84aEhJQUd2KzBJUGdDcENOY3gxL01lbkk3?=
 =?utf-8?B?aWlrZlM4Ty9iQkQvTmYvVE5adHpIbE44dEsyVXBoVnk5ZlkrVEI5STA1SG1u?=
 =?utf-8?B?ZWRBK3ZUSkUxTHQ5Uis2Ui9pMVB6N2FsQWdtbkd4ek0rSzdnMzgxS0Fka3NC?=
 =?utf-8?B?ZlNXZEtMdzZYOXRnY0NsL2J2aVEwbVM1aU5aeHRQM3N1cUp6OVByVVIwZHY2?=
 =?utf-8?B?OUdrZTNhMDJaYkRrM1ZQQTNPd2c1SHBTdVlJOXQvMzNVdEIwSjh2Qml1eGE1?=
 =?utf-8?B?aTJLMWxSUHZFY1dsVklCV2dVTit5OUlIV0hKYnk5VVJWTE1tdEZhL0JWY2Ew?=
 =?utf-8?B?Smx4aDlwMGRWNjM3UmdZTFo5dlFCQnVvY0VrRUtsd1pEOEwwSTRzSHhBL1JR?=
 =?utf-8?B?TWdJR3M5QnJYd3kyUnBIS2o5Tk9idDB3UDhvYTdVclZweDRoN2psMjlJc2pv?=
 =?utf-8?B?cE53L3l6Y3h4SmIvWk5qVE5SVFhzZUtIbTd5aG5zOU45ampwOE1XMXlsUHhi?=
 =?utf-8?B?Wm1kb3l2NEU0TjFPSUprU0IwdnhVcEg4OUJVekduaFJzZllyM1owTEgyTDVC?=
 =?utf-8?B?ZnROWnFvMjJZMDR3M0ZlSGQ4WG4ydmZUcmJmTzA0aFArbERFclZCTkdqQjBO?=
 =?utf-8?B?N2xqdHBDaG9rbXkycHNaUDJoWWpUNXEzVlFvd3RwZlZwdEVhVS9rSHdnOUlU?=
 =?utf-8?Q?EIDRBd/dzGjBDjFthJZQ3yCuISmgB8=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ajkrb00yaENuUndsR0d2YXlwRlAxdzJuc3hBVGpacm5Cblp6WjFwb3JneVIr?=
 =?utf-8?B?VzIxMC8zTUE1V2JaMTVCTmtqdFlGc3c3MXdZSzRKdnZEM1Y5UWRpMmxXN050?=
 =?utf-8?B?TzYzSG42WU5pSksvWmgxNlJNbUJGUVhSNXlmNHowQkRCNzE2SjY1ZjdFSEZa?=
 =?utf-8?B?T3J3UVU1emd5SlJKWS9nUzdBZGZxWk14NnVjZGl6RTZwZ2U2bVgzYldMeXhB?=
 =?utf-8?B?YWRRZ2hCOE1teGFIaWJiWlU0YVhUZWNQY25QTWJ0SGh4OFFUa05BallCVis2?=
 =?utf-8?B?cGMvbnZUZm5qVGZibkg5SGhNbG9xWE10azNNUXpvWHQ2ajFVaVRxbEluV2Zw?=
 =?utf-8?B?dDJEcC9rWGY0WGR2ZjF6QTJTNi9FSlZvVEtrOTJsTzkzeHBYMndYVVhwbHZy?=
 =?utf-8?B?SXNJemhNLzRBT25PNE1uSnhTY3BJMHBpNU14eUwzcUlRVjM0RlpZKzMzU2Jp?=
 =?utf-8?B?cUZTQVpRZGc3NUtiR2dPZ1RqWnRXbkZXbWNZYTNrbFhTcTRxTUFBYVpIZlB5?=
 =?utf-8?B?Y21JbktWV1NvcGpyV0ZJMU5PYUxzaDRGQUtjNEIrbFVEcW42ZFV1L0NWSzBI?=
 =?utf-8?B?Q0cwTTlTcDliTmN2T2hCbWFsY1JBRTErNDRNVmlXZ2NoTVZWZGlyUW1sWU9Y?=
 =?utf-8?B?RTRiTzlnTmV3eGdFdlUxL2hGNWFPbnk1WG1lVm5jelZnaFV1b2l1dUN3MGJB?=
 =?utf-8?B?dnF3bjhkMGVmcS9KQVk5QXRWcFcvRXYzNEo5aDBSZ1hRODU2N1ZmOE5qUjlz?=
 =?utf-8?B?TVBnbjkxd2R1NHloUzhzeXBhODNvVVBUN2lpNGRvRHJxd2FwSDRVN3p4L1dH?=
 =?utf-8?B?YUdvb1AxWjRkLzRUWGFLamRVYjV3SEJDWGx4OEZzNkxyM05lbFh0RjVVTnZa?=
 =?utf-8?B?Y3o1Zi9Hb2tvaERCVDBCc0tFdmREcFo4aWUzUlIvcnRDOHFuQytYTDc2WGJw?=
 =?utf-8?B?R3hkK01TRDlZWWhHQWFMZlZmTC9MOEtUZTFCczRjK0xLVVBLNXBLTFQwbHdD?=
 =?utf-8?B?TkNPbldDcG9DN3d6MHVVOW9vMkxTNUYzY0htSW1ERzR4c2s0K01wTjVHUG5H?=
 =?utf-8?B?QmZ2U2NzYmVaclhSS2RFaXlaZWppWThaRkJQY3ZsQWhub2lXSnRWb1A1RkZN?=
 =?utf-8?B?dFEwRFI4bEpIY205WTZRWUdqdnE0dENJQ0JXQSswNElvb2wzdlNVUkVIbXhm?=
 =?utf-8?B?dDIzbXAxSjV2MmNjcXRQQy9BeWpvOURWVzJxUzJRZjMxTTk3aWxSeGlxTmJo?=
 =?utf-8?B?djhNdWM2eTdheGlnTEMybjZJYzEvUjlxaGVDbThDNHl1aTdkcFlha3hFdTlN?=
 =?utf-8?B?ZlhWVkoxeGRtSjFHQ3EvRFY5NmI2QkxpZEcrdEZHUXA4VEdhUFAxemdsTHZ3?=
 =?utf-8?B?L1hmWjFKU0l4Z00yTHNsbzRVSlJheUNBN1FWRXphRytUdFNjWE01UHUyQUNh?=
 =?utf-8?B?ZW0wcjNJWFBEdTRzbk1aTEM5bm52OHJpcXUwa2VFZ1dBcTkzQ3hkU0trRW1q?=
 =?utf-8?B?dGFTa2hQUXVQSkNUS1VpR0VaVm1yazNaK1hzVDY2K1l1ODZ4ZDNOWVZVbEtt?=
 =?utf-8?B?WkluUXFLVTdMcFBpMzBOanI5QjMybVhnelUxVzQvT0pGUjJoRWd3SytKMUw3?=
 =?utf-8?B?cDdsUHF0Z2ZTVlFqK1JrRVhLNUZNeCs2QmZ2TkFWa3lQT3U2S3NRSkxWcnJn?=
 =?utf-8?B?OWpqUXAyRENjblYxaXN5eVU5SW5qaFNjdDNQUUt5TE5MaGRvYXdaeENvWHk5?=
 =?utf-8?B?K0pnUlBJTDdzbjE1ckh2WERKNllCZ2FrcldZOTRUMEgwajJCUjlkcjVrYkpw?=
 =?utf-8?B?NC9ZVUt5ODlOV1BEU1M4eWtEbXJCRVJIK0FwdUdsenV6ajZXQ3BDMVVnTWFk?=
 =?utf-8?B?V0ZmUWN4TGdTZkZDTHdFTXFTaTh4dnlyYW9JODB0QUR5YW5CcVQrMU5yWndT?=
 =?utf-8?B?RFhGOVBPb1ZqNkZKVkFIVDhraURUZHRFVjVmM3pWK0gwM05WdlA2eGprT2pS?=
 =?utf-8?B?MkdxVmJmMGw4VjFmaEtPb2pyYWtnWmkrcERqdE9FUTFoWXRjRTVhZThwV3NX?=
 =?utf-8?B?UlUxbTVvL2c1MWQrMEo0ZnpSSEJUR3M0K3dQZTNremtjOWFrMVB0TlhwZVhL?=
 =?utf-8?Q?q+Y0=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 239e164a-9958-4780-ccef-08de226ebac3
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Nov 2025 04:40:10.7838
 (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: O+4LptalonbuNuHUQsxWE+x4jVenWc6BcttjgCYk6ZaRvUoVVNZWNHjHNrMw1Tx+a+tqHEgpshdpZfukKjIN+Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB9274

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDMwLCAy
MDI1IDg6NDQgUE0NCj4gVG86IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT4NCj4g
Q2M6IEh1YW5nLCBSYXkgPFJheS5IdWFuZ0BhbWQuY29tPjsgb2xla3NpaS5rdXJvY2hrb0BnbWFp
bC5jb207IFN0ZWZhbm8NCj4gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47IEp1
bGllbiBHcmFsbCA8anVsaWVuQHhlbi5vcmc+OyBCZXJ0cmFuZA0KPiBNYXJxdWlzIDxiZXJ0cmFu
ZC5tYXJxdWlzQGFybS5jb20+OyBPcnplbCwgTWljaGFsIDxNaWNoYWwuT3J6ZWxAYW1kLmNvbT47
DQo+IFZvbG9keW15ciBCYWJjaHVrIDxWb2xvZHlteXJfQmFiY2h1a0BlcGFtLmNvbT47IEFuZHJl
dyBDb29wZXINCj4gPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+OyBBbnRob255IFBFUkFSRCA8
YW50aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD47DQo+IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBh
dUBjaXRyaXguY29tPjsgU2hhd24gQW5hc3Rhc2lvDQo+IDxzYW5hc3Rhc2lvQHJhcHRvcmVuZ2lu
ZWVyaW5nLmNvbT47IEFsaXN0YWlyIEZyYW5jaXMgPGFsaXN0YWlyLmZyYW5jaXNAd2RjLmNvbT47
DQo+IEJvYiBFc2hsZW1hbiA8Ym9iYnllc2hsZW1hbkBnbWFpbC5jb20+OyBDb25ub3IgRGF2aXMN
Cj4gPGNvbm5vamRhdmlzQGdtYWlsLmNvbT47IFRhbWFzIEsgTGVuZ3llbCA8dGFtYXNAdGtsZW5n
eWVsLmNvbT47IHhlbi0NCj4gZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDog
UmU6IFtQQVRDSCB2MyAxNS8yOF0geGVuL2RvbWN0bDogd3JhcCBkb21haW5fa2lsbCgpIHdpdGgN
Cj4gQ09ORklHX01HTVRfSFlQRVJDQUxMUw0KPg0KPiA+IC0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9w
YWdpbmcuYw0KPiA+ICsrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wYWdpbmcuYw0KPiA+IEBAIC03Njgs
NiArNzY4LDcgQEAgdm9pZCBwYWdpbmdfdmNwdV90ZWFyZG93bihzdHJ1Y3QgdmNwdSAqdikNCj4g
PiAgICAgICAgICBzaGFkb3dfdmNwdV90ZWFyZG93bih2KTsNCj4gPiAgfQ0KPiA+DQo+ID4gKyNp
ZmRlZiBDT05GSUdfTUdNVF9IWVBFUkNBTExTDQo+ID4gIC8qIENhbGwgd2hlbiBkZXN0cm95aW5n
IGEgZG9tYWluICovDQo+ID4gIGludCBwYWdpbmdfdGVhcmRvd24oc3RydWN0IGRvbWFpbiAqZCkg
IHsgQEAgLTc5NCw2ICs3OTUsNyBAQCBpbnQNCj4gPiBwYWdpbmdfdGVhcmRvd24oc3RydWN0IGRv
bWFpbiAqZCkNCj4gPg0KPiA+ICAgICAgcmV0dXJuIHJjOw0KPiA+ICB9DQo+ID4gKyNlbmRpZiAv
KiBDT05GSUdfTUdNVF9IWVBFUkNBTExTICovDQo+ID4NCj4gPiAgLyogQ2FsbCBvbmNlIGFsbCBv
ZiB0aGUgcmVmZXJlbmNlcyB0byB0aGUgZG9tYWluIGhhdmUgZ29uZSBhd2F5ICovDQo+ID4gdm9p
ZCBwYWdpbmdfZmluYWxfdGVhcmRvd24oc3RydWN0IGRvbWFpbiAqZCkNCj4NCj4gVGhpcyBpcyBp
cnJpdGF0aW5nLCBhbmQgY291bGQgaGVuY2UgaGF2ZSBkb25lIHdpdGggc29tZSBjbGFyaWZpY2F0
aW9uIGluIHRoZQ0KPiBkZXNjcmlwdGlvbiAodG8gYWlkIHJldmlldywgaWYgbm90aGluZyBlbHNl
KTogT24gdGhlIHN1cmZhY2UsIHdoeSB3b3VsZA0KPiBwYWdpbmdfdGVhcmRvd24oKSBuZWVkIGV4
Y2x1ZGluZywgYnV0IHBhZ2luZ192Y3B1X3RlYXJkb3duKCkgYW5kDQo+IHBhZ2luZ19maW5hbF90
ZWFyZG93bigpIHdvdWxkIChuZWVkIHRvKSBzdGF5PyBZZXMsIHRoZSBsYXR0ZXIgdHdvIGFyZSB1
c2VkIG9uIGZhaWx1cmUNCj4gcGF0aHMgb2YgY2VydGFpbiBmdW5jdGlvbnMuIChTYW1lIGUuZy4g
Zm9yIGRvbWFpbl90ZWFyZG93bigpIGFuZCBoZW5jZQ0KPiBhcmNoX2RvbWFpbl90ZWFyZG93bigp
LikNCj4NCg0KVGhlIHJlYXNvbiBmb3IgZG9tYWluX3RlYXJkb3duKCkgaXMgdGhhdCBpdHMgYW5v
dGhlciB1c2FnZSBpcyBpbiB0aGUgZmFpbHVyZSBwYXRoIG9mIGRvbWFpbl9jcmVhdGUoKQ0KVGhl
IGV4Y2x1c2lvbiBvZiBwYWdpbmdfZmluYWxfdGVhcmRvd24oKSBpcyBibG9ja2VkIGJ5IGRvbWFp
bl9kZXN0cm95KCksIHdoaWNoIHdpbGwgYmUgdHJpZ2dlcmVkIHdoZW4gcmVmY250IGVxdWFscyB6
ZXJvLg0KDQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 06:46:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 06:46:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160642.1488710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJR6F-0000LL-GL; Thu, 13 Nov 2025 06:46:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160642.1488710; Thu, 13 Nov 2025 06: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 1vJR6F-0000LE-Dc; Thu, 13 Nov 2025 06:46:31 +0000
Received: by outflank-mailman (input) for mailman id 1160642;
 Thu, 13 Nov 2025 06: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=lXFW=5V=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vJR6D-0000Kf-OZ
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 06:46: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 7ab8927b-c05c-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 07:46:28 +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 AE5B8218FB;
 Thu, 13 Nov 2025 06:46: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 8D0343EA61;
 Thu, 13 Nov 2025 06:46: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 7rv1IMJ+FWmtUgAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 13 Nov 2025 06: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: 7ab8927b-c05c-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763016386; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=0CQSXzirt5jkt2QxgJkUMdJ0KDvIsVBosMFpoGQso3Y=;
	b=YSmY3FkQWWYs/ad0yS0XeExCC5AQ/dnlsD2iMKjl3Lp/mKRKOt0oPETwt6M8BYjJ0yix5a
	dUwkci5fs1SorLZ3e2hJf+6k9fnmGFPMOLtaZV9RTD5PPgxpCpKx/WB+fUsEEoATCz+aGE
	tcs71LtuhwAd9aOc46iA6EKMuQWXYd0=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763016386; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=0CQSXzirt5jkt2QxgJkUMdJ0KDvIsVBosMFpoGQso3Y=;
	b=YSmY3FkQWWYs/ad0yS0XeExCC5AQ/dnlsD2iMKjl3Lp/mKRKOt0oPETwt6M8BYjJ0yix5a
	dUwkci5fs1SorLZ3e2hJf+6k9fnmGFPMOLtaZV9RTD5PPgxpCpKx/WB+fUsEEoATCz+aGE
	tcs71LtuhwAd9aOc46iA6EKMuQWXYd0=
Message-ID: <8b3d8e28-6501-462e-b028-8f4dc44027e7@suse.com>
Date: Thu, 13 Nov 2025 07:46:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Xen DomU Bootloader Experiences
To: Elliott Mitchell <ehem+xen@m5p.com>, xen-devel@lists.xenproject.org
References: <aRT4fiuF8soWI6tc@mattapan.m5p.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: <aRT4fiuF8soWI6tc@mattapan.m5p.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------uB80qtV9gL8muERTY0LCTpVp"
X-Spam-Level: 
X-Spamd-Result: default: False [-5.20 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SIGNED_PGP(-2.00)[];
	MIME_BASE64_TEXT_BOGUS(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_BASE64_TEXT(0.10)[];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FROM_HAS_DN(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	RCPT_COUNT_TWO(0.00)[2];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	HAS_ATTACHMENT(0.00)[];
	TO_DN_SOME(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	TAGGED_RCPT(0.00)[xen];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,imap1.dmz-prg2.suse.org:helo]
X-Spam-Flag: NO
X-Spam-Score: -5.20

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------uB80qtV9gL8muERTY0LCTpVp
Content-Type: multipart/mixed; boundary="------------DAqQCSpoGUJyWUwk8B7Srrtt";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Elliott Mitchell <ehem+xen@m5p.com>, xen-devel@lists.xenproject.org
Message-ID: <8b3d8e28-6501-462e-b028-8f4dc44027e7@suse.com>
Subject: Re: Xen DomU Bootloader Experiences
References: <aRT4fiuF8soWI6tc@mattapan.m5p.com>
In-Reply-To: <aRT4fiuF8soWI6tc@mattapan.m5p.com>

--------------DAqQCSpoGUJyWUwk8B7Srrtt
Content-Type: multipart/mixed; boundary="------------RkIsOllKgeNEoAtS0urlvohf"

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

T24gMTIuMTEuMjUgMjI6MTMsIEVsbGlvdHQgTWl0Y2hlbGwgd3JvdGU6DQo+IEEgZmV3IHRp
bWVzIHRoZXJlIGhhdmUgYmVlbiBtZW50aW9ucyBvZiBhIG5lZWQgdG8gY2hvb3NlIGJldHdl
ZW4gYm9vdA0KPiBtZXRob2RzIGZvciBEb21Vcy4gIFRoZXJlIGlzIGEgbmVlZCB0byBkZWNp
ZGUgb24gb25lcyB0byByZWNvbW1lbmQgYW5kDQo+IHB1dCBlZmZvcnQgaW50byBzdXBwb3J0
dGluZy4gIEkgbWF5IG5vdCBoYXZlIHRyaWVkIHRoYXQgbWFueSBub3IgZG9uZQ0KPiBwYXJ0
aWN1bGFybHkgZ3JlYXQgYW1vdW50cyBvZiBleHBlcmltZW50YXRpb24sIGJ1dCBJIGRvIGhh
dmUgc29tZQ0KPiBleHBlcmllbmNlIHdpdGggbXVsdGlwbGUgVXNlciBEb21haW4gYm9vdGxv
YWRlcnMuDQo+IA0KPiBQeUdSVUINCj4gWGVuJ3MgYm9vdGxvYWRlci4gIFB5R1JVQiBpcyBx
dWl0ZSBmdW5jdGlvbmFsIHdpdGhpbiBpdHMgbGltaXRzLiAgSW4NCj4gcGFydGljdWxhciBp
dCBzaW11bGF0ZXMgdGhlIGRvbWFpbidzIGVudmlyb25tZW50IGluIERvbWFpbiAwLiAgVGhp
cyBtZWFucw0KPiB0aGUgc2VjdXJpdHkgZXhwb3N1cmUgaXMgcHJvYmxlbWF0aWMuICBBbm90
aGVyIGJpZyBjb25jZXJuIGlzIHRoYXQgaXQNCj4gb25seSBkb2VzIEdSVUIgdjEgc3ludGF4
LiAgRm9yIGEgbG9uZyB3aGlsZSBEZWJpYW4gaGFkIGEgcGFja2FnZSBmb3INCj4gZ2VuZXJh
dGluZyB0aG9zZSBmaWxlcyBvbiBhIG1vZGVybiBzeXN0ZW0sIGJ1dCB0aGF0IHBhY2thZ2Ug
d2FzIGRyb3BwZWQuDQo+IA0KPiBZZXQgUHlHUlVCIGRvZXMgYXZvaWQgbmVlZGluZyB0byB1
c2UgZXh0ZXJuYWwgdG9vbHMgdG8gcmV0cmlldmUgdGhlDQo+IGtlcm5lbC4gIElmIHRoZSBr
ZXJuZWwgaXMgdXBkYXRlZCBpbnNpZGUgdGhlIGRvbWFpbiwgdGhpcyBkb2VzIGdldCB0aGUN
Cj4gbmV3IGtlcm5lbC4gIEZ1cnRoZXIgYmVpbmcgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50
IHRoaXMgd29ya3Mgb24geDg2LA0KPiBBUk0qLCBSSVNDLVYgYW5kIFBvd2VyUEMuDQo+IA0K
PiBBcyBpdCBpcyB0aGUgb25seSBHUlVCLWZsYXZvciBsb2FkZXIgYXZhaWxhYmxlIG9uIEFS
TSosIHRoYXQgaXMgdGhlIG9ubHkNCj4gcGxhY2Ugd2hlcmUgSSd2ZSB1c2VkIFB5R1JVQi4N
Cg0KVGhlcmUgaXMgb25lIGZ1cnRoZXIgYWR2YW50YWdlIGZvciBQeUdSVUI6IGl0IGNhbiBs
b29rIGludG8gdGhlIGtlcm5lbA0KX2JlZm9yZV8gdGhlIGRvbVUgaXMgYmVpbmcgY3JlYXRl
ZCwgc28gaXQgY2FuIHRlbGwgWGVuIHRvb2xzIHdoZXRoZXIgYQ0KMzItIG9yIDY0LWJpdCBk
b21VIGlzIG5lZWRlZCBiYXNlZCBvbiB0aGUgc2VsZWN0ZWQga2VybmVsLg0KDQpUaGlzIGlz
IHRoZSBtYWluIHJlYXNvbiB3aHkgUHlHUlVCIGlzIHN0aWxsIGV4aXN0aW5nLg0KDQo+IFB2
R1JVQg0KPiBJJ20gc3VyZSBuZWFybHkgZXZlcnlvbmUga25vd3MgYWJvdXQgUHZHUlVCLiAg
QnkgYmVpbmcgYSBwcm9wZXIgcG9ydCBvZg0KPiBHUlVCIHRvIHJ1biBkaXJlY3RseSBvbiBY
ZW4sIGl0IG92ZXJjb21lcyBQeUdSVUIncyBkaXNhZHZhbnRhZ2VzLiAgVGhlDQo+IG9uZSBk
aXNhZHZhbnRhZ2UgaXMgbmVlZGluZyB0byBnZXQgcGF0Y2hlcyBpbnRvIGFuIGV4dGVybmFs
IHByb2plY3QgZm9yDQo+IGNoYW5nZXMgaW4gWGVuLg0KPiANCj4gVHdvIGNoYW5nZXMgdG8g
WGVuIHVyZ2VudGx5IG5lZWQgcHJvcG9nYXRpb24gdG8gUHZHUlVCLiAgSSdtIHVuc3VyZQ0K
PiB3aGV0aGVyIFB2R1JVQiB1bm1hcHMgaXRzIG1hcHBpbmcgb2YgdmNwdV9pbmZvIGRhdGEu
ICBUaGUgc2Vjb25kIGlzDQo+IG5lZWRpbmcgdG8gd29yayBvbiBBUk0qLCBSSVNDLVYgYW5k
IFBvd2VyUEMuICBUaGUgbGF0dGVyIGlzIHRoZSBvbmUgYW5kDQo+IG9ubHkgd2F5IGluIHdo
aWNoIFB2R1JVQiBpcyBpbmZlcmlvciB0byBQeUdSVUIuDQo+IA0KPiBBcyBQdkdSVUIgaXMg
b25seSBhdmFpbGFibGUgZm9yIHg4NiwgdGhhdCBpcyB0aGUgb25seSBwbGFjZSBJJ3ZlIHVz
ZWQNCj4gUHZHUlVCLg0KDQpOYW1pbmcgaXMgZGlmZmljdWx0LiA6LSkNCg0KWW91IGFyZSB0
YWxraW5nIGFib3V0IGdydWItcHYuIHB2LWdydWIgaXMgdGhlIFhlbi1pbnRlcm5hbCB2YXJp
YW50IGJhc2VkDQpvbiBNaW5pLU9TIGFuZCBsZWdhY3kgZ3J1YiAwLjk3LCBzdXBwb3J0aW5n
IGdydWIgZm9yIFBWLWRvbVVzLg0KDQpncnViLXB2IGNvbWVzIGJhc2ljYWxseSBpbiB0aHJl
ZSBmbGF2b3JzLCBhbGwgeDg2LW9ubHk6DQoNCi0gZm9yIDMyLWJpdCBQVi1ndWVzdHMNCi0g
Zm9yIDY0LWJpdCBQVi1ndWVzdHMNCi0gZm9yIFBWSC1ndWVzdHMgKDMyLSBvciA2NC1iaXQp
DQoNCkFkZGluZyBQVkggc3VwcG9ydCB0byB1cHN0cmVhbSBHcnViIGZvciBlLmcuIEFybSBz
aG91bGQgYmUgcmF0aGVyIGVhc3kuDQoNCj4gDQo+IA0KPiBFREsyL1RpYW5vY29yZQ0KPiBR
dWl0ZSB3ZWxsLWtub3duIGZvciBiZWluZyB0aGUgYmFzaXMgb2YgbW9zdCB4ODYgZmlybXdh
cmVzLCBwbHVzIGJlaW5nDQo+IHBhcnQgb2YgYSB0eXBpY2FsIFFlbXUgc2V0dXAuICBOb3Qg
bmVhcmx5IGFzIHdlbGwga25vd24gZm9yIGJlaW5nIGEgWGVuDQo+IERvbVUgYm9vdGxvYWRl
ci4NCj4gDQo+IFdoZW4gaXQgd2FzIHdvcmtpbmcgeW91IHdvdWxkIGJ1aWxkIHRoZWlyIEFy
bVZpcnRYZW4uZHNjIGZpbGUgYW5kIGdldA0KPiBYRU5fRUZJLmZkIGFzIG91dHB1dC4gIFlv
dSB3b3VsZCB0aGVuIHVzZSBYRU5fRUZJLmZkIGZvciB0aGUgZG9tYWluJ3MNCj4ga2VybmVs
LiAgSWYgeW91IGxvb2tlZCBhdCB0aGUgY29uc29sZSB5b3Ugc2F3IHNvbWV0aGluZyB3aGlj
aCBsb29rZWQgYW5kDQo+IGFjdGVkIHByZXR0eSBzaW1pbGFyIHRvIGEgVUVGSSBmaXJtd2Fy
ZSBvbiB4ODYgbWFjaGluZXMuICBUaGlzIHdhcw0KPiBleHRyZW1lbHkgZnVuY3Rpb25hbCBm
b3IgT1NlcyB3aGljaCBkaWRuJ3QgcGFydGljdWxhcmx5IGxpa2UgR1JVQi4NCj4gTm90YWJs
eSBJJ3ZlIHJlYWQgb2YgaXQgYmVpbmcgYWJsZSB0byBsb2FkIGEgUmVkbW9uZCBPUyBhbmQg
aXQgd2FzIHF1aXRlDQo+IGZ1bmN0aW9uYWwgZm9yIGJvb3RpbmcgYW4gQVJNNjQgcG9ydCBv
ZiBGcmVlQlNELg0KPiANCj4gU29tZXRpbWUgYWZ0ZXIgTm92ZW1iZXIgMTZ0aCwgMjAyMiBv
ciBjb21taXQgZmZmNmQ4MTI3MC4gIFRoZSBidWlsdA0KPiBpbWFnZXMgc3RvcHBlZCBmdW5j
dGlvbmluZy4gIFRoaXMgaXMgYWN0dWFsbHkgcmF0aGVyIGNvbmNlcm5pbmcgc2luY2UgaXQN
Cj4gbWF5IGFsc28gZWZmZWN0cyBmaXJtd2FyZXMgYnVpbHQgZm9yIHg4NiBIVk0gZG9tYWlu
cy4gIEkgZG9uJ3QgcHJlc2VudGx5DQo+IGtub3cgd2hldGhlciB0aGVyZSBhcmUgbXVsdGlw
bGUgYnVncywgb3IgYSBzaW5nbGUgb25lIGVmZmVjdGluZyBhbGwgWGVuDQo+IGJ1aWxkcy4N
Cj4gDQo+IFRoZXJlIGlzIGFsc28gYW4gdXJnZW50IG5lZWQgdG8gZ2V0IEVESzIvVGlhbm9j
b3JlIHVwZGF0ZWQgdG8gbWF0Y2gNCj4gWGVuL0FSTSdzIGRpc2FsbG93aW5nIG1hcHBpbmcg
dGhlIHNoYXJlZCBpbmZvcm1hdGlvbiBwYWdlIG11bHRpcGxlIHRpbWVzLg0KPiBBcyBJIGRp
ZCBub3Qgd2lzaCB0byBiZWNvbWUgZGVlcGx5IGludm9sdmVkIHdpdGggRURLMi9UaWFub2Nv
cmUgSSBzZW50IGENCj4gcGF0Y2ggdG8geGVuLWRldmVsIGNsb3NlIHRvIDEuNSB5ZWFycyBh
Z28uICBMYWNrIG9mIGFjdGlvbiBzdWdnZXN0cyB0aGVyZQ0KPiBpcyBhbiB1cmdlbnQgbmVl
ZCBmb3IgYSBsaWFzb24uDQo+IA0KPiANCj4gDQo+IFJlY29tbWVuZGF0aW9uczoNCj4gUHlH
UlVCIGlzIGZ1bmN0aW9uYWwgd2l0aGluIGl0cyBsaW1pdHMuICBQcm9ibGVtcyBhcmUgR1JV
QnYxIHN5bnRheCBhbmQNCj4gcnVubmluZyB3aXRoaW4gRG9tYWluIDAuICBHaXZlbiB0aGlz
IEkgZmVlbCB0aGUgWGVuIFByb2plY3Qgc2hvdWxkIGJlDQo+IGhlYWRpbmcgdG93YXJkcyBk
ZXByZWNhdGluZyBQeUdSVUIuICBTaW5jZSBQdkdSVUIgd29ya3MgZm9yIHg4NiBub3csIEkN
Cj4gd291bGQgZGVmYXVsdCB0byBuZWl0aGVyIGJ1aWxkaW5nIG5vciBpbnN0YWxsaW5nIFB5
R1JVQiBvbiB4ODYuICBGb3INCj4gb3RoZXIgYXJjaGl0ZWN0dXJlcyBQeUdSVUIgaXMgc3Rp
bGwgdXNlZnVsLg0KPiANCj4gVGhlIFhlbiBQcm9qZWN0IHNob3VsZCBmb3JtYWxseSBhc2sg
dGhlIEdSVUIgUHJvamVjdCB0byBwb3J0IFB2R1JVQiB0bw0KPiBBUk0sIFJJU0MtViBhbmQg
UG93ZXJQQy4gIFRoZSBuZWVkIGZvciBQdkdSVUIgb24gQVJNIHNlZW1zIHJhdGhlciB1cmdl
bnQuDQo+IFdpdGhvdXQgYSBwcm9wZXIgYm9vdGxvYWRlciBWTXMgYXJlbid0IHRvbyB1c2Vm
dWwuDQoNCldlbGwsIEkgZGlkIHRoZSBncnViLXB2aCBpbXBsZW1lbnRhdGlvbi4NCg0KRG9p
bmcgdGhhdCBmb3Igb3RoZXIgYXJjaGl0ZWN0dXJlcyBzaG91bGRuJ3QgYmUgcm9ja2V0IHNj
aWVuY2UuIDotKQ0KDQo+IFRoZSBYZW4gUHJvamVjdCBuZWVkcyBwZW9wbGUgdG8gd29yayB3
aXRoIEVESzIvVGlhbm9jb3JlLiAgVGhlIG9sZGVzdA0KPiByZXBvcnQgSSd2ZSBzZWVuIG9m
IHRoZSBFREsyL1RpYW5vY29yZSBpc3N1ZSBkYXRlcyB0byBtaWQtMjAyMy4gIE5vdyB0d28N
Cj4geWVhcnMgbGF0ZXIgdGhlIGJ1ZyBpcyBzdGlsbCBwcmVzZW50Lg0KPiANCj4gVGhlIGFi
aWxpdHkgdG8gY29uZmlndXJlIFhFTl9FRkkuZmQgYXMgYSBkb21haW4ga2VybmVsIGlzIGEg
ZmVhdHVyZQ0KPiBoaWdobHkgd29ydGh5IG9mIGJlaW5nIHBvcnRlZCB0byB4ODYuICBGb3Ig
T1NlcyB3aGljaCBkb24ndCBwYXJ0aWN1bGFybHkNCj4gbGlrZSBHUlVCLCBidXQgZG8gaGF2
ZSBQViBkcml2ZXJzIHRoaXMgaXMgYW4gaWRlYWwgYm9vdCBtZXRob2QuDQoNCg0KSnVlcmdl
bg0K
--------------RkIsOllKgeNEoAtS0urlvohf
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-----

--------------RkIsOllKgeNEoAtS0urlvohf--

--------------DAqQCSpoGUJyWUwk8B7Srrtt--

--------------uB80qtV9gL8muERTY0LCTpVp
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/Ey8FAmkVfsIFAwAAAAAACgkQsN6d1ii/Ey8M
dwf8DmVZiBgmbFXPmpdVZ01uYROS2w+gI/nWhZm5nQPtVYLXIuTHnn9VaDsc2suvLN6OuTlqVI9E
Qz4SFBGmbmpCJv9v67CvI42g/IZa2MUl/CleCdXXWslsH/dNSDVKVu4fWHIXIYjclTfmzXPrMarh
a9JMBATNjdZFdM121aS+yuyqI4C4hWCk1hmjFw+MaHv33RgLeQUjwe6Tnd9Qp0KoBJ5lI1bmYvFA
80E7F3hX1BnMdVtfkpkMksHtnNH5D12dpTYtWXIji78bU78kTitowz+JoGH2VPZCpFmfDFATlOmG
6eK1DA63gI0PAgug++TGuZLghh9Kii+lR3wUSLe86Q==
=gxZG
-----END PGP SIGNATURE-----

--------------uB80qtV9gL8muERTY0LCTpVp--


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 07:09:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 07:09:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160656.1488719 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJRSH-0003LT-6G; Thu, 13 Nov 2025 07:09:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160656.1488719; Thu, 13 Nov 2025 07:09:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJRSH-0003LM-3a; Thu, 13 Nov 2025 07:09:17 +0000
Received: by outflank-mailman (input) for mailman id 1160656;
 Thu, 13 Nov 2025 07:09:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJRSG-0003LG-8v
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 07:09:16 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a964148d-c05f-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 08:09:14 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b727f330dd2so57552366b.2
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 23:09: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
 a640c23a62f3a-b734fda8d69sm100077266b.50.2025.11.12.23.09.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 12 Nov 2025 23:09: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: a964148d-c05f-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763017754; x=1763622554; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ILNGvSFxrjslJ+FVYctpHwd4EignvOFY1VWLMWv5W6w=;
        b=L0PXNJG3Gd7oMnobKqWYXecNxJ3kaGczTo0C7AsV7/us1E+jlZ06f3VvY+Amv+Sveu
         Ofd6JRZ1g5+9OF6CT9dedqQWcGsElyRquggDYQvo4jKwHoqKPx9UiVVC99WYR2kZujda
         /nW7ZtonpHTR4csE5fTeeWc0mscfUleZQUDGIXJji0fMlzlrOAuI7Sb8aeb2WEGIl6Ow
         0aY2msigsB+z/pTT8oDiR34NLFVxtdsbv2xhU6+DTIP6zQltneIBDHWx9aSGrWMId6E4
         4sOFFUMeUwSEA5LoEtcRgaoduoc8zi1q8XW4HcASxjXKPyoe9ZHB5eUDP0BE/t7DKATW
         ohkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763017754; x=1763622554;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ILNGvSFxrjslJ+FVYctpHwd4EignvOFY1VWLMWv5W6w=;
        b=jOFMRj6DQkborLlHEvVJf3a22mbPs5GWrDzEw8mU8ehJTAQUGjA1hinckRllL6o53X
         0Aerfz3TSUNF+Ad1W6OZthWGKlby2EpRJ7g0EylCiqMZqu5euAJgGbX4Sx2bvBJXSPw7
         T2mox3+uRu0+tE6TTQAK1O5SBCpZ1T06ItFQdtvsdPKEjCadGu1ZWKHNigPNP4vgDgsd
         krUcjEvyV3VGqEs0qZrUdpwYt+3kl8Z+kux5+2xsVE2K9k7qUUdkO9ou2kFnGe2k4nZE
         PVrscTVRXNuIP8bgAiYpOfvyYHvtvQVc3O4LSYD5zq2QnU53JFMcY7zMCJE6SIDYCWoJ
         TW2w==
X-Forwarded-Encrypted: i=1; AJvYcCWEAwBRClqyhykWOFYQ4xSAZRmVbyY3J7MdHqfpalLkoz5qQ8J7FGRUbIpZOsry7S9WIkabIYU54bA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzXHqL+Txfb0nqEgH6xZ4pb5oGzEa86Bk2F8FB2dbQbYRIIpgcd
	Ny7YpCDp8dyGBbTNKmziOC689Am14lGqMgK8QpXAH+RwWrMpopKxKyx2BDzFsEGaNR9XlbW6RLq
	I2z4=
X-Gm-Gg: ASbGncuSKBRd09vQkidTyRqjpb3blalCRJyWnPthtU3apqGe+HFyT9+Pz+8I2kFFF+z
	EE9nVKdoztXY4+YZLnEvzqI7d91m1cDT0wt8h72Mp1VqcWntcU8jBVamdMxO390Vy7p7Dvhcg3T
	Bxb3gwo3wIS9F/UctKUHq5AHiwjoNTkbl4PY0B4lOqRxQIFRmBqddpumHODfNB+VXSF5ySN1LKD
	kn4HerLGjDpBYWaoO/iJcmPDgPCuSXQp2zL+cvAc0j7K5RsNj2crRlCmsaWXvAsU6sxSMSIkeGC
	ArAn+GIxHN/QnQDsstpsuumiPfCwFpHE4k7z76PdmD6EZtXyMzRC8KZ7LtEU45lbzg15FhCULlG
	Mk8JicrkuEvLuNeT0S6/JpzGGxiHbc4hlaTMIOA3dtotR0PgwCtDP0mN+C3KQ4DeKsg9SIqP0eA
	pTLyyRdEHm7zESNUoAOpIlvGMqgdhNhA6OIQRZytVD0wlWYWZTl1Ef0DHhzCWeuUGq+8b+mZF5o
	wI=
X-Google-Smtp-Source: AGHT+IF4nxhaMlHKtwthd20ueHjaP/nVzGPIxhA445mCHD47K390EQNN1h1nisjI8NSOWWPkUq4KDQ==
X-Received: by 2002:a17:906:eec4:b0:b72:5983:db25 with SMTP id a640c23a62f3a-b7331aac664mr654030666b.32.1763017753876;
        Wed, 12 Nov 2025 23:09:13 -0800 (PST)
Message-ID: <105178e4-4f97-45a6-ba16-f57f5945f9cf@suse.com>
Date: Thu, 13 Nov 2025 08:09:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v3] xen/x86: guest_access: optimize raw_x_guest() for
 PV and HVM combinations
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Lira, Victor M" <victlira@amd.com>
References: <20251107181739.3034098-1-grygorii_strashko@epam.com>
 <47f86a44-007f-4b90-9656-b2440238b2ba@suse.com>
 <f0a5a939-7d66-417d-8a88-34cc172623e6@epam.com>
 <faab050f-677f-469c-8bca-93c55a53165c@suse.com>
 <a858cfd2-c6cc-4ed1-bb12-8cad488f4542@epam.com>
 <be5586a8-bb32-448f-b249-538d1b65f626@suse.com>
 <51f5ea06-96aa-45f7-a90b-50d7be1c10cd@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: <51f5ea06-96aa-45f7-a90b-50d7be1c10cd@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.11.2025 18:43, Grygorii Strashko wrote:
> On 12.11.25 15:07, Jan Beulich wrote:
>> On 12.11.2025 12:27, Grygorii Strashko wrote:
>>> On 12.11.25 08:38, Jan Beulich wrote:
>>>> On 11.11.2025 18:52, Grygorii Strashko wrote:
>>>>> On 10.11.25 09:11, Jan Beulich wrote:
>>>>>> On 07.11.2025 19:17, Grygorii Strashko wrote:
>>>>>>> --- a/xen/arch/x86/include/asm/guest_access.h
>>>>>>> +++ b/xen/arch/x86/include/asm/guest_access.h
>>>>>>> @@ -13,26 +13,64 @@
>>>>>>>   Â  #include <asm/hvm/guest_access.h>
>>>>>>>   Â  Â  /* Raw access functions: no type checking. */
>>>>>>> -#define raw_copy_to_guest(dst, src, len)Â Â Â Â Â Â Â  \
>>>>>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>>>> -Â Â Â Â  copy_to_user_hvm((dst), (src), (len)) :Â Â Â  \
>>>>>>> -Â Â Â Â  copy_to_guest_pv(dst, src, len))
>>>>>>> -#define raw_copy_from_guest(dst, src, len)Â Â Â Â Â  \
>>>>>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>>>> -Â Â Â Â  copy_from_user_hvm((dst), (src), (len)) :Â  \
>>>>>>> -Â Â Â Â  copy_from_guest_pv(dst, src, len))
>>>>>>> -#define raw_clear_guest(dst,Â  len)Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>>>> -Â Â Â Â  clear_user_hvm((dst), (len)) :Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>>>> -Â Â Â Â  clear_guest_pv(dst, len))
>>>>>>> -#define __raw_copy_to_guest(dst, src, len)Â Â Â Â Â  \
>>>>>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>>>> -Â Â Â Â  copy_to_user_hvm((dst), (src), (len)) :Â Â Â  \
>>>>>>> -Â Â Â Â  __copy_to_guest_pv(dst, src, len))
>>>>>>> -#define __raw_copy_from_guest(dst, src, len)Â Â Â  \
>>>>>>> -Â Â Â  (is_hvm_vcpu(current) ?Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>>>>>> -Â Â Â Â  copy_from_user_hvm((dst), (src), (len)) :Â  \
>>>>>>> -Â Â Â Â  __copy_from_guest_pv(dst, src, len))
>>>>>>> +static inline bool raw_use_hvm_access(const struct vcpu *v)
>>>>>>> +{
>>>>>>> +Â Â Â  return IS_ENABLED(CONFIG_HVM) && (!IS_ENABLED(CONFIG_PV) || is_hvm_vcpu(v));
>>>>>>> +}
>>>>>>
>>>>>> Without a full audit (likely tedious and error prone) this still is a
>>>>>> behavioral change for some (likely unintended) use against a system domain
>>>>>> (likely the idle one): With HVM=y PV=n we'd suddenly use the HVM accessor
>>>>>> there. IOW imo the "system domains are implicitly PV" aspect wants
>>>>>> retaining, even if only "just in case". It's okay not to invoke the PV
>>>>>> accessor (but return "len" instead), but it's not okay to invoke the HVM
>>>>>> one.
>>>>>
>>>>> This patch is subset of "constify is_hvm_domain() for PV=n case" attempts.
>>>>>
>>>>> It was made under assumption that:
>>>>> "System domains do not have Guests running, so can't initiate hypecalls and
>>>>>   Â can not be users of copy_to/from_user() routines. There are no Guest and no user memory".
>>>>> [IDLE, COW, IO, XEN]
>>>>>
>>>>> If above assumption is correct - this patch was assumed safe.
>>>>>
>>>>> if not - it all make no sense, probably.
>>>>
>>>> I wouldn't go as far as saying that. It can be arranged to avid the corner
>>>> case I mentioned, I think.
>>>
>>> do you mean adding "&& !is_system_domain(v->domain)" in raw_use_hvm_access()?
>>
>> No, we want to avoid adding any new any runtime checks.
>>
>>> Hm, I see that vcpu(s) are not even created for system domains in domain_create().
>>> So seems !is_system_domain(v->domain) == true always here.
>>
>> "always" in what sense? It _should_ be always true, but in the unlikely event we
>> have a path where it isn't (which we could be sure of only after a full audit),
>> behavior there shouldn't change in the described problematic way.
>>
>>> Am I missing smth?
>>> Or you meant smth. else?
>>
>> I was thinking of something along the lines of
>>
>>      if ( is_hvm_vcpu(current) )
> 
> this condition will not be constified any more for HVM=y and PV=n

Right, and intentionally so (as explained).

Jan

>>          return ..._hvm();
>>
>>      if ( !IS_ENABLED(CONFIG_PV) )
>>          return len;
>>
>>      return ..._pv();
> 
> Possible benefit will be reduced from:
>    add/remove: 2/9 grow/shrink: 2/90 up/down: 1678/-32560 (-30882)
> 
> to:
>    add/remove: 3/8 grow/shrink: 3/89 up/down: 1018/-12087 (-11069)
> 
> Any way it is smth.
> 



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 07:31:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 07:31:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160668.1488730 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJRni-0007ND-Tn; Thu, 13 Nov 2025 07:31:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160668.1488730; Thu, 13 Nov 2025 07: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 1vJRni-0007N6-PH; Thu, 13 Nov 2025 07:31:26 +0000
Received: by outflank-mailman (input) for mailman id 1160668;
 Thu, 13 Nov 2025 07:31: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJRnh-0007Ly-OW
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 07:31:25 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c1941920-c062-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 08:31:23 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-6419aaced59so706919a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 23:31: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
 4fb4d7f45d1cf-6433a498102sm819709a12.24.2025.11.12.23.31.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 12 Nov 2025 23:31: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: c1941920-c062-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763019083; x=1763623883; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zaodl8B6QbQFdBfXqLETJkEz+q3oMSYf+0RLjRBTEmQ=;
        b=O5/+Hss9cCkPec5VvDqHA0NERtHe79BxSTSGtywxaVHkW2AvrdGAdWl5F9RpV4bzLG
         /2yLWHkIe/TGsjYfjY5nCzC8xu97VCx2eGoF+rP2sgBIDoMdYNzP8ZUFEAXInPh5teLz
         SW2JV56ZLgvv38LCs/VxdDnYCnozuHIw2iG1G01z0tkI9chGBvcu60UocoZpgbeGmHKh
         4RLrGh/3+XFQMNHvXFuAt692FiLeYeGZ6vJtZZP4WMUypswORUV1Cu4MXQnS2RC5C0z4
         wp+c0t2PMcLN/JYWZ58AQYXUdLCVSmfB8COyVkGfTAXT+VdGQGRWR9xrIFFQoMds5g1D
         u1AQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763019083; x=1763623883;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zaodl8B6QbQFdBfXqLETJkEz+q3oMSYf+0RLjRBTEmQ=;
        b=kWYKS/uEMAI4lYmKXqVvnk6CYQvEJGKWNyxKaasNHBCnwcsjYJv05b6aEGnqlCqMiR
         aDDFtndk6kJZfgl2rw9wVusLbR1XWJKObICiTejlOwep0AlMSpnjGKKbOqPsWXKzFENn
         jk7rWom9RmM9mnvVUX6NvJMn2zuLSwGGfyKTefFWBiW50j6CbZooDjFOjXgjSy7D3Iks
         NT7Mz25NS0HAy+yptfmkfSI6gkFoJZtlnjDQRmJ1gZG+KMMN9RkUD4pU1AcQxDSXzAa9
         Fr2lcO6tVNvHmyWPElDN8VmEzLXBg8g6Aa9WJXqBXDGEA5R/ueDfnZiPsTcXK2fmXeW0
         Hl+Q==
X-Forwarded-Encrypted: i=1; AJvYcCUq9XWhSlB7SCeTQUjjapaHn7Xed39T2UKixKall+vOo5lD/s29CPE/5GbACi3KDB3BwV/d/lSb65w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YztI3jNpMW3s78ZTcoaz+MZLZopuOJTuEKa3Sb3CKqBrW6o5q3l
	GnQU3vwZ0bqag0YlnN+cAayUHQ36KOYP/HnQ9HrhxQ/KU4oPSgXpP4PKWm3343JALA==
X-Gm-Gg: ASbGncv16K3OQunecg1HU/igwheJj7PSftNBHsLppXxzs5fsW68qKWhBbiKi5vjMM/x
	IPN08jgpNEclRBGcD8HIKDF+cQ1Jv9OxsrRJBBWGBkFGwuLrab9xn9Mp5CgxgtFdu15k4NQpqe1
	WX27JfpglujViTWLbQIuoj0DFS4nLyHAV+zGgnfzQXlMWwqezNthvVwgQ1HO9WhfIHyqE+z+vRF
	habIk9RebnXuZjqKZU7pHpDXDo5eZtvmrI7k8dvOHVtwxZ5RQ59faWLUfhryxDjHjL8nprRaI+N
	Tlu7DhUtXgtscvY3vZnZLB2iWBM6+1ix3DvipwYbTXT7KL2TK1A41hEtEun88JYWZi5i2IHcIZg
	pqTlCPdf8WE8stCSnRGCLAmxBH3gRMltTjhU9a5Vnk+DoiTKSkXJhowLuU/vihLqY1XNMj4tZ9k
	sMuL4g5VvHgRSIUtZmko/e0pTzERugNsDEOFo9dCCmzB7sCj00toAlOlxnTg0SjltYSkfB0ma6R
	dU=
X-Google-Smtp-Source: AGHT+IEuhK/HrDOZkIoH0wiJVlBRL75MxfNFFoRTfj96aHpRpJu2WPSf1yEbeHQVN4cxIhYm3a1S5Q==
X-Received: by 2002:a05:6402:3586:b0:640:c454:da with SMTP id 4fb4d7f45d1cf-6431a3948d1mr5022789a12.5.1763019083342;
        Wed, 12 Nov 2025 23:31:23 -0800 (PST)
Message-ID: <cc64ffb5-4419-458b-9526-fa765eda7bd6@suse.com>
Date: Thu, 13 Nov 2025 08:31:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] x86/hvm: revise "cpu_has_vmx" usage for
 !CONFIG_INTEL_VMX case
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250924101417.229108-1-grygorii_strashko@epam.com>
 <7b2fe09a-02f4-4575-9e42-1328f3a40f1d@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: <7b2fe09a-02f4-4575-9e42-1328f3a40f1d@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.11.2025 21:25, Grygorii Strashko wrote:
> Could it be merged if no other comments, please?

It's on my list of things to put in. However, since you ask: You do realize that
all your recent postings were while the tree was frozen? That's okay-ish, but
when preparing a release people would preferably focus on the release, not on
what is to come afterwards. This change of yours, like quite a few from others,
will need to wait until the tree is fully open again. It having been progressed
to the point where it can in principle go in was already a courtesy, considering
the timing.

Jan

> On 24.09.25 13:14, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> Since commit b99227347230 ("x86: Fix AMD_SVM and INTEL_VMX dependency") the
>> HVM Intel VT-x support can be disabled, but it still keeps VMX
>> code partially built-in. Particularly in HVM code there are two places:
>>
>> 1) hvm/dom0_build.c
>>   dom0_construct_pvh()->pvh_populate_p2m()
>>      ...
>>      if ( cpu_has_vmx && paging_mode_hap(d) && !vmx_unrestricted_guest(v) )
>>      {
>>          ...
>>          [unreachable for !cpu_has_vmx case]
>>          rc = pvh_setup_vmx_realmode_helpers(d);
>>
>> pvh_setup_vmx_realmode_helpers() allocates memory and configures
>>   HVM_PARAM_VM86_TSS_SIZED
>>   HVM_PARAM_IDENT_PT
>>
>> 2) hvm/hvm.c
>>   hvm_set_param()
>>      ...
>>      case HVM_PARAM_IDENT_PT:
>>
>>          if ( !paging_mode_hap(d) || !cpu_has_vmx )
>>          {
>>              d->arch.hvm.params[index] = value;
>>              break;
>>          }
>>          [unreachable for !cpu_has_vmx case]
>>          ...
>>
>> Hence HVM_PARAM_IDENT_PT/HVM_PARAM_VM86_TSS_SIZED are used only by VMX code
>> above code become unreachable in !cpu_has_vmx case and can be optimazed
>> when !CONFIG_INTEL_VMX.
>>
>> Replace "cpu_has_vmx" with using_vmx() to account !CONFIG_INTEL_VMX and allow
>> compiler DCE to optimize code.
>>
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> ---
>> add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-604 (-604)
>> Function                                     old     new   delta
>> hvm_set_param                               1602    1473    -129
>> dom0_construct_pvh                          4438    3963    -475
>> Total: Before=3567191, After=3566587, chg -0.02%
>>
>>   xen/arch/x86/hvm/dom0_build.c | 2 +-
>>   xen/arch/x86/hvm/hvm.c        | 2 +-
>>   2 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
>> index 5551f9044836..5ac2cf8394d8 100644
>> --- a/xen/arch/x86/hvm/dom0_build.c
>> +++ b/xen/arch/x86/hvm/dom0_build.c
>> @@ -473,7 +473,7 @@ static int __init pvh_populate_p2m(struct domain *d)
>>           }
>>       }
>>   
>> -    if ( cpu_has_vmx && paging_mode_hap(d) && !vmx_unrestricted_guest(v) )
>> +    if ( using_vmx() && paging_mode_hap(d) && !vmx_unrestricted_guest(v) )
>>       {
>>           /*
>>            * Since Dom0 cannot be migrated, we will only setup the
>> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
>> index 95a80369b9b8..70331aeec9a0 100644
>> --- a/xen/arch/x86/hvm/hvm.c
>> +++ b/xen/arch/x86/hvm/hvm.c
>> @@ -4302,7 +4302,7 @@ static int hvm_set_param(struct domain *d, uint32_t index, uint64_t value)
>>            * Only actually required for VT-x lacking unrestricted_guest
>>            * capabilities.  Short circuit the pause if possible.
>>            */
>> -        if ( !paging_mode_hap(d) || !cpu_has_vmx )
>> +        if ( !paging_mode_hap(d) || !using_vmx() )
>>           {
>>               d->arch.hvm.params[index] = value;
>>               break;
> 



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 07:36:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 07:36:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160683.1488739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJRsY-00088w-I1; Thu, 13 Nov 2025 07:36:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160683.1488739; Thu, 13 Nov 2025 07:36:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJRsY-00088p-F5; Thu, 13 Nov 2025 07:36:26 +0000
Received: by outflank-mailman (input) for mailman id 1160683;
 Thu, 13 Nov 2025 07:36: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJRsW-00088j-VO
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 07:36:24 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7464bfa9-c063-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 08:36:23 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b735487129fso43360366b.0
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 23:36: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
 a640c23a62f3a-b734fd80a6dsm105689366b.47.2025.11.12.23.36.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 12 Nov 2025 23:36: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: 7464bfa9-c063-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763019383; x=1763624183; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=l4lYzfBwuVBBaYXQk2HXq2XAaL01PNUOBEPgjYVMHQo=;
        b=brtGbDy+5SY9+tU3587djE/xJAAzU0SnwsQGnkUxjO+75gSl3blPyOk5Sb/0TO58/i
         N4szH+1hP/PA8WnwhkiEL2PbN3EQNrkuKhZNxuQ/isq9yltCj5DGUco8cuP4saLslIuM
         T9lkEnVmWV+zSZQ4RpTKIHlpAtusauty5KHUnIwELjM0A6fB6BhvQvxQySYYE1vbMZ3T
         ZzTr4Ff9K5OF+3XCdN2vHiUZtvAjaHh0Ru4GjNnx8TeuPV7EB2Eki1H5iKQkh5wy+ywN
         vnI6YT1zwRjaIzI5Fq7v9tJmTheIO7Tt77nCS4X0GiQjwOJqIoKsNls0E9j+3ijxckil
         gmww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763019383; x=1763624183;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=l4lYzfBwuVBBaYXQk2HXq2XAaL01PNUOBEPgjYVMHQo=;
        b=KAlJlzHfYP797epLII70ZtfJZQElbBDZZ+a0dLcuy09OvVI1uDW0Qh1JxtLtq5YexN
         uiR5Fz9J/pL2ZzJyjVmkqCiWyFSPilVer4JoMgtXFxS0gb599+BbNBRJI9FHQQ5KK32P
         d9DI40nRmXlevP+19L9sPISByhI+HMcztMYQNqr+woJuialXgtXWWJO0oGa4DoqD0eHQ
         yh8XM3cQEMqQleZSHyz1S/bXX6MrhcoInJ1PCeaIO425ByGODeIwPZbQjQa2fEzCiBXR
         OkDhl6cqg0zj4PQOHc8bEKdQVfO6zi+Aq5zQOpqLSjyPkz5mVU09QDZOF+L4NbLuzD1B
         +ZEQ==
X-Forwarded-Encrypted: i=1; AJvYcCWkgeanIFdQ+XtvR9q0p/hKsWZC0RkzQuwzieSekpSueuVYyinXGqTClPCbyaEts2ENDV31FiCnh0o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzSnTnKAIDn8QNFnynP8Vq6vLzlOXYrJVWXJoBZk6e+D4KUbqVT
	jaR2bfNwLdKZCiFovaV+l9CehJJELyh8nB5FcbgQmnbwxFOShTLvE9ab6nl02QmJhA==
X-Gm-Gg: ASbGnctEo1SgNm91esqqkYhP+waYJo2K53kezar1rXw+P8liGE+MIRrDWMVvmCe8NZT
	OPfFQxkHbMUC59bDohJjwQ+zfiL+4sqAySx5ixi3grTxwvmbe2TNayZpvOuyiHrZ1PMz0s3gkoO
	gsmOVFMU5ZNYejhJN1YPtBBY6YyzVHskFuVV4L02bq30OU8nesxsXDDVwZwd9VftzV/zMsr2L/2
	Kh6fXS9Jio8F3C6nF7fvN9MME4Daq8feVpUKPTVsKY9QUO6N6EMwAwK/61ptX89WCT+Vy7t8b2f
	stzuxNTJQzC92sKX8YqvAktwm8FqE6oVVEuC3YiRPIOfS9ke7ny/lE95s7WL2H8da+QRE3yWEOJ
	JSeDiHRpcehHSNRZtimDDVtiBfFwcANKBxyRP4MALZ6fgj6hh7D0JraF4L+hKFlOyhc8S7Wj7bn
	u8IMZsJSUsRjYaoD9IRhwpHCPChh1+djDEroZgmUyKV3Ph4yq91UDhiQQ3i+fh+vbQhEPbkqA3l
	Zs=
X-Google-Smtp-Source: AGHT+IEtyS2aG1IhYt6x/h8xdG1/XyYuD2UNH7t73WWHSh6NcJ3y17nQVOQ5CzBMd7Lxyw4ldER64w==
X-Received: by 2002:a17:906:6a16:b0:b73:246d:cf1c with SMTP id a640c23a62f3a-b7331af0e07mr624322466b.63.1763019383365;
        Wed, 12 Nov 2025 23:36:23 -0800 (PST)
Message-ID: <248593ca-e24a-4518-800e-2c58e3197937@suse.com>
Date: Thu, 13 Nov 2025 08:36:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/4] Add Kconfig option to remove microcode loading
 support
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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <20251112162219.226075-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: <20251112162219.226075-1-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.11.2025 17:22, Alejandro Vallejo wrote:
> Hi,
> 
> The series is mostly a refactor between everything needed to load microcode and
> the bare minimum to probe the current microcode revision.
> 
> The Kconfig option keeps the reading of microcode rev data around, as it's very
> relevant for security and debuggability in order to deduce which erratas apply
> to the current platform.
> 
> The idea is to move everything that must still be compiled with !CONFIG_UCODE
> onto {,amd-,intel-}base.c, then remove everything else conditionally at the
> Makefile level.
> 
> Renaming files (e.g: s/base/core/ and s/core/common/) would better reflect
> post-series reality, but it'd be annoying for later backports in this general
> area.
> 
> Cheers,
> Alejandro
> 
> Alejandro Vallejo (4):
>   x86: Split out AMD-specific code to be executed without ucode loading
>   x86: Split out Intel-specific code to be executed without ucode
>     loading
>   x86: Split out early_microcode_load() and microcode_load_one()
>   x86: Add Kconfig option to disable microcode loading
> 
>  xen/arch/x86/Kconfig                    | 12 ++++
>  xen/arch/x86/cpu/microcode/Makefile     |  9 ++-
>  xen/arch/x86/cpu/microcode/amd-base.c   | 55 +++++++++++++++++++
>  xen/arch/x86/cpu/microcode/amd.c        | 55 ++-----------------
>  xen/arch/x86/cpu/microcode/amd.h        | 15 +++++
>  xen/arch/x86/cpu/microcode/base.c       | 73 +++++++++++++++++++++++++
>  xen/arch/x86/cpu/microcode/core.c       | 58 +-------------------
>  xen/arch/x86/cpu/microcode/intel-base.c | 50 +++++++++++++++++
>  xen/arch/x86/cpu/microcode/intel.c      | 56 +++----------------
>  xen/arch/x86/cpu/microcode/intel.h      | 16 ++++++
>  xen/arch/x86/cpu/microcode/private.h    | 14 +++++
>  xen/arch/x86/efi/efi-boot.h             |  2 +-
>  xen/arch/x86/platform_hypercall.c       |  2 +
>  13 files changed, 259 insertions(+), 158 deletions(-)
>  create mode 100644 xen/arch/x86/cpu/microcode/amd-base.c
>  create mode 100644 xen/arch/x86/cpu/microcode/amd.h
>  create mode 100644 xen/arch/x86/cpu/microcode/base.c
>  create mode 100644 xen/arch/x86/cpu/microcode/intel-base.c
>  create mode 100644 xen/arch/x86/cpu/microcode/intel.h

Purely based on this diffstat: A doc update likely is necessary as well, as
the ucode= command line option now becomes only conditionally applicable (aiui,
i.e. without having looked at the patches them selves).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 07:54:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 07:54:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160696.1488750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJS9v-0002h2-0S; Thu, 13 Nov 2025 07:54:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160696.1488750; Thu, 13 Nov 2025 07:54:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJS9u-0002gv-T1; Thu, 13 Nov 2025 07:54:22 +0000
Received: by outflank-mailman (input) for mailman id 1160696;
 Thu, 13 Nov 2025 07: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJS9t-0002gj-FD
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 07:54:21 +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 f580f623-c065-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 08:54:20 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-6431b0a1948so878843a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 12 Nov 2025 23:54: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
 a640c23a62f3a-b734fd809d2sm108231866b.42.2025.11.12.23.54.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 12 Nov 2025 23:54: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: f580f623-c065-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763020459; x=1763625259; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nh4jlbd2A4PXp9wNRBxx115wquv3uJxgOyL4oNtHSsw=;
        b=IvRnObvofDhosEXq5k+ny9eX7wfQacOwp5jIu5nEPWUajYD2mmoS4uDxT6OIZU+dw6
         9ZmPoLgpaQE20qDZzoDzSDTiHJLT12ivmV5ZlET0/Az49zeoBHtpDjAHc5Hvd7pCM9d2
         +00MGi5Ll3BtQgJdIEvWCyh367FfhjDRQ6zveiIjrUp8MkMDqlG/29nhkkUUtxQWlMTo
         brOSsi0RwCotYOaPM3BPum2B3nyZ7agvhKOeAHSqoXSIebeWwHN5ekic34wRDy12G8hc
         0aatEJUePvvuv+HN4YOe1xDm3o4B8+piZ6SmwBnI6Ct7S/ySc/OyD5qkIqMCO1LfMuVz
         Q+2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763020459; x=1763625259;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nh4jlbd2A4PXp9wNRBxx115wquv3uJxgOyL4oNtHSsw=;
        b=DlBokLESd2Emz2l5J2HeXivl/6vzDz+DornHT0x3kqqN4/o8tqOnLfyfQWphEZBoQv
         JM2Kmw/ypqrh2EMbyP9eTE+yrmHyOVEGslEo7d4nUA4ZBYfg/L4tEbXXgVg+q/JjZt1G
         4m0pBO2ulnpkq+eo+9CSEVezwBFj6vfmcoHCjCDH08fzGvbCescFRJ6xMCAp7NUTE+sf
         F2PnxZlvjHEds2fSrjW3y12hy2dGAZJa+J/1p6sc8FxDuOszTYf5VaURG3U9WPXaQdTo
         R1SavK0u36i3YKv02Bgng/oGE66AEX4l3QsH0hH9dNJpf2/PT8deYSUVfjHURwXqT/US
         RxPw==
X-Forwarded-Encrypted: i=1; AJvYcCX81b+th+8ufpvPkmXcDZmq6eAO8LuYIRa1NilX2o26WHnHMLw9ju+XOhnrxlyY9h/jDznO8rHCGis=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyvMuP2BNvn2vkcLC+3kNPJjU615OYAPbfnOHqV4C19yuhT4Epb
	F+OZ6i16hXIXzwVyajYkfIYxhI73A+frot8cSjEMcb5CCoIDER7WwhhraI/eGdYMxg==
X-Gm-Gg: ASbGncvlU/+5JYaAF8jCBNvzCI52WiugLN7Tw656TfOJhuaveUu2crUlsT5W7r2iI19
	AGs7raZz6klZziI+rpqiYGAI7p6kA0SLZI069d3JnUj9PNLOn1Rd3TzBdnG/3MVzQ3J9NeGwM28
	XPtR9di3RpA+ziidTU/s5KmmVQ3G/hNFmz6cltzHAOws83yxG+ceNy0G+ALZnA5BTKPCYpdO9x2
	pn7tsgVTuKmv7SmyMoWPphQEKw1zHp5fWvvmRDyYvgxjPgd8D+kricMj2MxqwaRSSlNII+TpwAg
	HLsgxG9/sZk1BN6Vx06aU8OBp6FmKk/QY7+kmZycl/UCBau7Pg2pncGBsctL9nA4ulaCx7aGhiF
	Z4zBO33Xpb57riGN6UCO7FhB+VKCoGt3782kWw5rBpqYVFZroBF6Q1oc9lSaN5BYClnPaJf6b6Y
	3/qjPyJW3VAm358w/6n5TrjYMJSmnzLIvetY2eSmI2Jop1F0ol3jFrYueDcucphh1Hv77128n2g
	5PsPHdgGesGjg==
X-Google-Smtp-Source: AGHT+IFSwq15YQZ/wO4fG/rpyghnnBXdfdoiegmJ0I70VOwv2TmX9bxD72WhYOmk1yvjsixy2VUm5w==
X-Received: by 2002:a17:907:2d2c:b0:b70:b71a:a5ae with SMTP id a640c23a62f3a-b7331aa3be1mr641438866b.44.1763020458664;
        Wed, 12 Nov 2025 23:54:18 -0800 (PST)
Message-ID: <9a949edb-8eb8-4984-adf0-4ab8b82e64db@suse.com>
Date: Thu, 13 Nov 2025 08:54:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs: Rewrite the Tagging and Branching checklist
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251112185402.209485-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: <20251112185402.209485-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.11.2025 19:54, Andrew Cooper wrote:
> There's a lot of stale information in the current checklists.  Merge the
> documents and present the information in chronological order.  Provide real
> examples from the tree rather than trying to be too prescriptive.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Hardly anything is being said about stable releases - is this intentional?

A few comments below, but ultimately I think it will need to be Julien to
ack.

> --- /dev/null
> +++ b/docs/process/tagging-branching.rst
> @@ -0,0 +1,194 @@
> +.. SPDX-License-Identifier: CC-BY-4.0
> +
> +===============================
> +Tagging and Branching Checklist
> +===============================
> +
> +Before starting
> +===============
> +
> + * Review this checklist for changes during the development window.
> + * Access to the following necessary:
> +
> +   * The 'xen tree' signing key.
> +   * The xen and xendocs users on xenbits.xen.org
> +   * The downloads-cvs user on mail.xenproject.org
> +   * A checkout of the xen.org CVS repository
> +
> +::
> +
> +  cvs -d downloads-cvs@mail.xenproject.org:/home/downloads-cvs/cvs-repos checkout xen.org
> +
> +
> +For RC1
> +=======
> +
> + * Pin ``QEMU_UPSTREAM_REVISION`` to an exact SHA.  Commit.
> +
> + * Update ``XEN_EXTRAVERSION`` from ``-unstable`` to ``.0-rc1``.  For
> +   ``README`` and ``SUPPORT.md``, use the slightly more generic ``-rc`` so
> +   they doesn't need to change during subsequent RCs.  Commit.

Nit: don't

> + * Tag.  Produce tarballs.
> +
> +e.g. from Xen 4.21, ``ffd25d717a74^..d1478321eacb``::
> +
> +  * d1478321eacb - (tag: 4.21.0-rc1) Update Xen version to 4.21.0-rc1
> +  * ffd25d717a74 - Config.mk: Pin QEMU_UPSTREAM_REVISION
> +
> +
> +For subsequent RCs
> +==================
> +
> + * Update ``XEN_EXTRAVERSION`` to the next RC number.  Commit.  Tag.
> +
> +e.g. from Xen 4.21, ``eff32008be0d`` and ``9632ce6fe5b2``::
> +
> +  * 9632ce6fe5b2 - (tag: 4.21.0-rc3) Update Xen version to 4.21.0-rc3
> +  * eff32008be0d - (tag: 4.21.0-rc2) Update Xen version to 4.21.0-rc2
> +
> +
> +Branching
> +=========
> +
> +On xenbits:
> +
> + * Create new staging and stable branches in xen.git.
> +
> + * Add the new branches to patchbot.  In ``~xen/HG/patchbot`` copy the exsting
> +   master and staging reported heads, update the ``versions`` file, and commit
> +   the result.
> +
> + * Add the new stable branch to the docs cronjob.  In ``~xendocs/cronjobs``
> +   edit ``xenbits-docs-all.sh`` and commit the result.  e.g.:
> +
> +::
> +
> +  ssh xenbits.xen.org
> +
> +  cd ~xen/git/xen.git
> +  git branch staging-$v staging
> +  git branch stable-$v master
> +
> +  cd ~xen/HG/patchbot
> +  cp xen--master.patchbot-reported-heads xen--stable-$v.patchbot-reported-heads
> +  cp xen--staging.patchbot-reported-heads xen--staging-$v.patchbot-reported-heads
> +  $EDITOR versions
> +  git commit -am "Branch for $v"
> +
> +  cd ~xendocs/cronjobs
> +  $EDITOR xenbits-docs-all.sh
> +  git commit -am "Branch for $v"
> +
> +
> +On the new branch:
> +
> + * Switch to release builds by default.  Commit.
> +
> +On staging:
> +
> + * Update ``XEN_SUBVERSION`` to the next version.  Update
> +   ``XEN_EXTRAVERSION``, ``README`` and ``SUPPORT.md`` back to ``-unstable``.
> +   Commit.  Tag the start of the new development window.
> +
> + * Rerun ``./autogen.sh`` to refresh the configure scripts.  Commit.
> +
> + * Switch ``QEMU_UPSTREAM_REVISION`` back to ``master``.  Commit.
> +
> + * Create a new section in ``CHANGELOG.md``.  Commit.

Should this really be four separate commits?

> +e.g. from Xen 4.21, ``d510f9c1430c^..62d0a92057ca`` and ``d510f9c1430c^..b0255656d121``::
> +
> +  * 62d0a92057ca - CHANGELOG.md: Start a new 4.22 section
> +  * 7b88e463f999 - Config.mk: Switch QEMU back to master
> +  * d954e8c5c8de - Rerun ./autogen.sh for 4.22
> +  * 85768c28b705 - (tag: 4.22-dev) Update Xen to 4.22
> +  | * b0255656d121 - (staging-4.21) Switch to release builds by default
> +  |/
> +  * d510f9c1430c - doc/man: Align list of viridian default enlightenments with libxl
> +
> +
> +Releasing
> +=========
> +
> + * Finalise the release dates in ``CHANGELOG.md`` (backported from staging)
> +   and ``SUPPORT.md`` (only in the release branch).
> +
> + * Tag the release in relevant external repos, and update ``Config.mk`` to
> +   refer to the tag.
> +
> + * Update ``XEN_EXTRAVERSION`` to drop the ``-rc`` suffix, and update

Since further up it's now rc<N>, imo it would be better to also say it that way
here.

> +   ``README`` to match.  Commit.

The latest here QEMU_UPSTREAM_REVISION and MINIOS_UPSTREAM_REVISION also need
adjusting to reference version tags, aiui. Taking tag creation in the respective
leaf trees as prereq.

> + * Tag.  Produce tarballs.

Link to the respective section further down?

> +e.g. from Xen 4.20, ``5cd830509d38^..3ad5d648cda5``::
> +
> +  * 3ad5d648cda5 - (tag: RELEASE-4.20.0) Update to Xen 4.20
> +  * 89fd1ba88403 - Config.mk: Bump tags to final
> +  * 6bf05e086765 - SUPPORT.md: Define support lifetime
> +  * 5cd830509d38 - CHANGELOG.md: Set release date for 4.20
> +
> +
> +Tagging
> +=======

Likewise this section may want linking to from respective places above?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 08:37:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 08:37:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160716.1488760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJSpB-0000II-35; Thu, 13 Nov 2025 08:37:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160716.1488760; Thu, 13 Nov 2025 08:37: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 1vJSpB-0000IB-0C; Thu, 13 Nov 2025 08:37:01 +0000
Received: by outflank-mailman (input) for mailman id 1160716;
 Thu, 13 Nov 2025 08:37: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJSpA-0000I2-6Q
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 08:37:00 +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 ea67370d-c06b-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 09:36:57 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b72dad1b713so74686866b.2
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 00:36: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
 a640c23a62f3a-b734fda92c5sm113316166b.53.2025.11.13.00.36.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 00:36: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: ea67370d-c06b-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763023017; x=1763627817; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KKRt9vZHD+sKgNrjDwmHcf8CKsr8hx5uNNH8e7WqOzA=;
        b=crJSM6jaH7XdKgQr8CNDlFyDmWShkO2V97DRB1BYOHIJgFAolF5BSRnnR2v5kOqVZr
         jYTXUnpB/0lW9BHyk9nF/20Wv8gM6jWSaIUuwIVBro0UznRTOYRsNTjIbotJaGeNqUlP
         u3Ne4ZCIYh92SeKoUEbp6Gy2hC5iB2xslQ2fMDAOj3e7wGU5SjXhvLccVwS5io0vKXnk
         5z9cKGzxP+mkJXuwIbArLo4/RbzEcRsaQ2cFfxO57LOyzl16sbdAvyUCIAwTlzJXy77O
         YgqnjfoTnzkkeEO507FLv4QZ0qn21gZ97bITiJczAdFHapZqwMF0+JZJMyXtvqW1YKLj
         iOUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763023017; x=1763627817;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KKRt9vZHD+sKgNrjDwmHcf8CKsr8hx5uNNH8e7WqOzA=;
        b=jUwFqpTOH5sHOxeFjenDH7J2ZBt3vwKTJoafDgWntin5QDNdmP3otwIs2dRDurBkg8
         LZVuBXAdejKudMymiItft+nh0xMUp7rEeERpW543UIjksUhFuMZUwvYWLm2VyMmF8bFY
         vd59H+uQiw5TbL6nMgTGHaQM30/sZy5VMp8M8pt9pifyIrv+vTZXITKNFNsgeJidPEJ/
         cPLHaIZFcJCdeU33DBu2UjyXyEfGDEwlNoIICdLBi+2k9gavLvyBsAhhW6YOdSfxRlWw
         yAfhreWIs40q3hBdLpQ7XwUOCYQNt3Lpw0V5BbAO220hV6MHSsxBcLfShs5DlExZigw4
         0EVw==
X-Forwarded-Encrypted: i=1; AJvYcCUuGJ1NITXi3T22xmwXOQhkggwQ2qpa3zS3BncsaObUw4/ZXBp9KDclkqpan6WytabQZiWtSDBEJlA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwBVGbrh2SX1HD3359ggc7Zn3ORQBQicXgY3ISBR0GHkbqE7Zqu
	MCI2l+EXQnvycGjAVYTOUUhwZwQcqRCw0ibXHnHNq6d4b5booYDZftVL67r+QBZ5LA==
X-Gm-Gg: ASbGncsXh/dIzV6uH3NnmLfi2UaQVHshoYQbv+L3muIJUmiopgbK5I/lkeucZGJp+XG
	y+unzB+IFeBWM6V5R/SSqGCLIIqvxaxUC3BPWDe48M+fWUTRHwKiGQlR9Bl60EhfVUCUOEoc4wu
	VkjZSmzgeCu0Z2LfUPgy/Acctgz2/bWlge134b6cME/+nRjpOGXsbizeGW1fh+bBx/ZDH7vODAn
	CWdDFoL1VbUtNN3K5XsSxVy7HR7OOQPTmqhM7agmpYX7VM5/JttHmVfJXaMCFS4XFJdSlUUfjWX
	bvqDjyQD8N1Z9fWwrDKutzMbYSkBbh4I7p5Ul8ctHDrnr02pD5UYE+3qoAO1wQvmryh4/mB6Ngn
	E3JBXCcBfaRZ9eH/4E8iJ2gS0uAj9Db4LiJqtoeGAWs/eHwDQlew4GBGsGDmjDUt8UJGIG3lrtn
	P2YyO9TiICGBQ0xPEJfxWs+uGM3GXo1tsaNwnKiyVTcyOQ1Vq7ZA==
X-Google-Smtp-Source: AGHT+IGUmdm1aQ6L3W2GeoEolsNtMxYsw+ekEzR+jcR/4fH5iMIA+/HfOwU+/OHVqgaqaNGyqjNNPw==
X-Received: by 2002:a17:907:80e:b0:b72:5d08:486c with SMTP id a640c23a62f3a-b73319ba692mr699660466b.27.1763023016757;
        Thu, 13 Nov 2025 00:36:56 -0800 (PST)
Message-ID: <a634c192-9ea3-46d9-a087-f0f48a5c2494@suse.com>
Date: Thu, 13 Nov 2025 09:36:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2] xen: make VMTRACE support optional
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 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>
References: <20251112202442.3879997-1-grygorii_strashko@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: <20251112202442.3879997-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.11.2025 21:24, Grygorii Strashko wrote:
> --- a/xen/arch/x86/hvm/vmx/vmcs.c
> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
> @@ -307,6 +307,7 @@ static int vmx_init_vmcs_config(bool bsp)
>      rdmsrl(MSR_IA32_VMX_MISC, _vmx_misc_cap);
>  
>      /* Check whether IPT is supported in VMX operation. */
> +#ifdef CONFIG_VMTRACE
>      if ( bsp )
>          vmtrace_available = cpu_has_proc_trace &&
>                              (_vmx_misc_cap & VMX_MISC_PROC_TRACE);
> @@ -317,6 +318,7 @@ static int vmx_init_vmcs_config(bool bsp)
>                 smp_processor_id());
>          return -EINVAL;
>      }
> +#endif

Initially I was inclined to ask for use of IS_ENABLED() here, but that wouldn't
work since vmtrace_available isn't an lvalue when VMTRACE=n. Hence why generally
I think it is better to check the particular identifier in such cases, rather
than the original CONFIG_* (i.e. "#ifndef vmtrace_available" here). I'm not
going to insist though, as I expect opinions may differ on this matter.

> --- a/xen/arch/x86/include/asm/hvm/hvm.h
> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
> @@ -234,12 +234,14 @@ struct hvm_function_table {
>      int (*altp2m_vcpu_emulate_vmfunc)(const struct cpu_user_regs *regs);
>  #endif
>  
> +#ifdef CONFIG_VMTRACE
>      /* vmtrace */
>      int (*vmtrace_control)(struct vcpu *v, bool enable, bool reset);
>      int (*vmtrace_output_position)(struct vcpu *v, uint64_t *pos);
>      int (*vmtrace_set_option)(struct vcpu *v, uint64_t key, uint64_t value);
>      int (*vmtrace_get_option)(struct vcpu *v, uint64_t key, uint64_t *value);
>      int (*vmtrace_reset)(struct vcpu *v);
> +#endif
>  
>      uint64_t (*get_reg)(struct vcpu *v, unsigned int reg);
>      void (*set_reg)(struct vcpu *v, unsigned int reg, uint64_t val);
> @@ -735,6 +737,7 @@ static inline bool altp2m_vcpu_emulate_ve(struct vcpu *v)
>  bool altp2m_vcpu_emulate_ve(struct vcpu *v);
>  #endif /* CONFIG_ALTP2M */
>  
> +#ifdef CONFIG_VMTRACE
>  static inline int hvm_vmtrace_control(struct vcpu *v, bool enable, bool reset)
>  {
>      if ( hvm_funcs.vmtrace_control )
> @@ -769,13 +772,20 @@ static inline int hvm_vmtrace_get_option(
>  
>      return -EOPNOTSUPP;
>  }
> +#else
> +int hvm_vmtrace_output_position(struct vcpu *v, uint64_t *pos);
> +#endif

There not being any definition for this declaration (regardless of configuration),
a comment might have been warranted here. Furthermore, can't the stub further down
in the file now go away (addressing a Misra concern of it now being unused, as
HVM=n implies VMTRACE=n)? Possibly this applies to a few other stubs there as
well?

>  static inline int hvm_vmtrace_reset(struct vcpu *v)
>  {
> +#ifdef CONFIG_VMTRACE
>      if ( hvm_funcs.vmtrace_reset )
>          return alternative_call(hvm_funcs.vmtrace_reset, v);
>  
>      return -EOPNOTSUPP;
> +#else
> +    return 0;
> +#endif
>  }

This doesn't look right - if absence of a hook results in -EOPNOTSUPP, so should
VMTRACE=n do. (There's no practical effect from this though, as - perhaps wrongly -
neither caller checks the return value.)

> --- a/xen/common/memory.c
> +++ b/xen/common/memory.c
> @@ -1155,8 +1155,10 @@ static unsigned int resource_max_frames(const struct domain *d,
>      case XENMEM_resource_ioreq_server:
>          return ioreq_server_max_frames(d);
>  
> +#ifdef CONFIG_VMTRACE
>      case XENMEM_resource_vmtrace_buf:
>          return d->vmtrace_size >> PAGE_SHIFT;
> +#endif
>  
>      default:
>          return 0;
> @@ -1198,6 +1200,7 @@ static int acquire_ioreq_server(struct domain *d,
>  #endif
>  }
>  
> +#ifdef CONFIG_VMTRACE
>  static int acquire_vmtrace_buf(
>      struct domain *d, unsigned int id, unsigned int frame,
>      unsigned int nr_frames, xen_pfn_t mfn_list[])
> @@ -1220,6 +1223,7 @@ static int acquire_vmtrace_buf(
>  
>      return nr_frames;
>  }
> +#endif
>  
>  /*
>   * Returns -errno on error, or positive in the range [1, nr_frames] on
> @@ -1238,8 +1242,10 @@ static int _acquire_resource(
>      case XENMEM_resource_ioreq_server:
>          return acquire_ioreq_server(d, id, frame, nr_frames, mfn_list);
>  
> +#ifdef CONFIG_VMTRACE
>      case XENMEM_resource_vmtrace_buf:
>          return acquire_vmtrace_buf(d, id, frame, nr_frames, mfn_list);
> +#endif
>  
>      default:
>          ASSERT_UNREACHABLE();

Without the intention to ask for a change right in this patch, this is a little
awkward: resource_max_frames() returning 0 results in acquire_resource() to
return -EINVAL, when with VMTRACE=n for XENMEM_resource_vmtrace_buf it imo
better would be -EOPNOTSUPP.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 08:50:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 08:50:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160732.1488770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJT2P-00038i-AQ; Thu, 13 Nov 2025 08:50:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160732.1488770; Thu, 13 Nov 2025 08:50: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 1vJT2P-00038b-6o; Thu, 13 Nov 2025 08:50:41 +0000
Received: by outflank-mailman (input) for mailman id 1160732;
 Thu, 13 Nov 2025 08:50: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=X5Bi=5V=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJT2N-00038V-E1
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 08:50:39 +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 d12f65a5-c06d-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 09:50:34 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV9PR03MB8414.namprd03.prod.outlook.com (2603:10b6:408:367::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Thu, 13 Nov
 2025 08:50:31 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 08:50: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: d12f65a5-c06d-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eidLP5OUCO2z6Bin8XyR6kFb9QupWz+0GFVQ8183m8+5E/VHSD69PoW9RvgjOB/mkY5QCo1Q/zu2HnCG5iMUmLpzbE6IgFlvO88Zu53OSxSeV9cG+UDiXiNcRc/NH+weDpenOoXBFq/Q+DiRmgwRSEIqTXz2ZbiV2WRtlSoODB/uQ0AKrGcqon8RlOXOED5ViYLhojbwpruwkJGTThL+S8X7xPboxH6oAEsg9E3IHZAxyV3M5P1qI6EKE1MsS2TwAQzPk47DxbSTMLaM4l8pISYYp6+GRYEFwU9Y0oG2+dRQy86wHLJNjzmSwFKbTXMZqlbXfRWLyes5yC/wq1SCNw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=a5CE7BskFbAShkzoatBTPAQRq9eltihu2CpVsPkTlC4=;
 b=WGZKHyBfjnH76r51/ZM7doMLoLMD/Rw7qtV0aYBXnwo8V3rVODclrGF2P4uGTMW9Ey7W82UhpiqD4wmDGSDYwtxxrLt0tPvYXXtUqbkEdizzwW0PPkJVWomcuFnBc32Xd1KMp3HUn6nswebNW8s5wSQswDO8SgpNMVy0lAut/ZSY+yr6bCclvCIFq/KD3Odslioc15nyZ+JC/ISDORvsy2GY9Nj+7Ht2hVMcW+anC6+W7QEPlBkxMotTPZU5oh+DiH1Uz5aHlz5U01ISe6jtXRk1hy2H2Im2y+E1vr5W1F8bdAY8FZkN68qDotXuUxVVvH++6r4l8X/CHNNv4El2tA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=a5CE7BskFbAShkzoatBTPAQRq9eltihu2CpVsPkTlC4=;
 b=GivA5U7BZvnWg4zMRdRVegoji1iXfSqtMxRjUAYHHxA8ufc6ipbvfvFJH/nVk+6BMkWv8spfwyTVqZ/yziPxzptsDrYBf4uVgqxI5ByoSQ9TMPad1GASuDFOp+FL7EDrwDidB/pwEgAtizRWB+BqAxf9zJOmfi1JeaOCl0o1Hmg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <61df49ba-4aab-42e3-b945-700a8f20c739@citrix.com>
Date: Thu, 13 Nov 2025 08:50:27 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/4] Add Kconfig option to remove microcode loading
 support
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20251112162219.226075-1-alejandro.garciavallejo@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251112162219.226075-1-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0506.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:13b::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_|LV9PR03MB8414:EE_
X-MS-Office365-Filtering-Correlation-Id: a278bb84-5d8f-45c5-96e9-08de2291b371
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?ZG5aR3I4bmFLQ2Y2bTVES0lVc01MYXZSK3RRUStvQTdRTHlmUldwZXAvT3V6?=
 =?utf-8?B?bG5scWoyWENmcGlGSzVuYmZmVk9HS2s2czlnVitLSFArRTFIWjVOUlhRMGh1?=
 =?utf-8?B?Zi8veGFVNFdCQyt5eVk1ekRlQkY5bzRQUGc5Y0h3NWxZd2tjSVpkUTNNK0dw?=
 =?utf-8?B?OGlZUXgzdnlDRzI1ZHlzRTBXd0pIbERBV3pVYUJqQ05pa2YyVDlCdWR4ckFz?=
 =?utf-8?B?S1QvQkM0M3V3Z1EvWmxiSEtTS0h0WVBjZXg4Rzd5NnJKN3dHSitjRG50dHhE?=
 =?utf-8?B?cUZjR09jb1VPRFVXMHZTWThvck1kMXcvaHl3N1lNUjhDQ0FyMU45UGtyUisx?=
 =?utf-8?B?TmpHNldNb1ZLUG15NzV0QXRXamFTeFo2RHJjZlB1N1VQU0xQM2pvZzlEOHFH?=
 =?utf-8?B?SFc1a0VrT3JKN2d5Rm1mazdLMEFheXdEUDhmWjZiMjdONWxxSW0rdE5GTURT?=
 =?utf-8?B?YU9nbVhYQzdJLzdWRVl5STRwN3FZK1ZJYzZnb2syclNyTW9QclI3N1dqc1B6?=
 =?utf-8?B?eTRxd25NSmc5V1BHVXZUN3VVQm9pTDFaY1ZTQUlhSjcyMkVnRTE4TEpkbktB?=
 =?utf-8?B?MjVhR1ZRU3pYaWFQeTFCS2JZS3BENjllSGtUWHVBOSt2NEhwdWRxSnZML0Y1?=
 =?utf-8?B?ak1pTmQrbUROUFJ0NitOblNWZ2ZWTVZyQXpYVWVJWWtOL0lvZG9zYks3QWFQ?=
 =?utf-8?B?N0ZSYlN4bDlyWWl4b0txaGtYMTgySTdFMnhXMS9VTlZBYTlPaXFiMW5nSzVt?=
 =?utf-8?B?L1VyRE96VVVKakZnU21EL01odWNmbyt6enRoVU80Q043QllFbU41ZGhoaGxk?=
 =?utf-8?B?UGI1dTRacjAzUmp5eXk0T2czVHJ1cnFDR2V4Y1o3bU9TMHhsTWszQUovUUtR?=
 =?utf-8?B?QXZPOWxyYkt3NTJ6WTB2ejJadm5tdnJPK3lyVmpaQmRxS2ZPZnQwajdZU0hZ?=
 =?utf-8?B?SWJjMy9JKzMzZU84aWlTVXJDUGIvRHgxam0zK0VGVXMzdVphWmVjZWFaZDBo?=
 =?utf-8?B?TDlkYnV5cTBwUEtQL281N3VRMHljY0lLY2k3WS85OXdNZ2RHaVV5YlVjWHYv?=
 =?utf-8?B?czcyTDZCVnBucDR3L01aUUxtRVNlbklNNFRFQ0FZQ0R4SlNyNGQ0bkFmYjY4?=
 =?utf-8?B?bU9rdDVQYmltWHl6T2RHTDVuRlF5aUQyZ3dUZjNydTVCRzkydXJSK2hJaWZo?=
 =?utf-8?B?U3JSVGFEcFRCY1RyN1N3L250WVRzZGVxTjlzSkZrdit2UVAzWC9wcWlnZHpm?=
 =?utf-8?B?VTN0SG5kYWliTFlTYWwySlNrMTUzUmlkeDdSY29zbVZMODB2MHhBRWFaaVpm?=
 =?utf-8?B?UXFCMXhleGdiVXBYdGVqdTYvNU5GSFNIWTA5TXduaW56RkZJdlQ0T1FMVGxj?=
 =?utf-8?B?ai9vQ2RpamtqVEYxQURTZkVVUHJrYW9IYVNBSzgzaFpadGhYcnZKVHowN0FC?=
 =?utf-8?B?WnM3YXRjaUpIY2xqd3VIdlZHWnlOb2NCVHhHMHZzUGJiaWJubTJ0bk5XZThK?=
 =?utf-8?B?bWR3MkRnTkZIb1VTZWt5QlhLQ0ljYldpRlQrWWFkYXA3Sk9iQzZsUGxNbVJn?=
 =?utf-8?B?V1hFOStnaTQ3ZXBzWC90VXFacUhUbTg3TmN1aVNPUjNvUnlwa1JqWTA0VldO?=
 =?utf-8?B?dU5RT1A1SnlVZGd3UHczeW13akpvL1UyRzFMcGEzWnZPNTZra3JpYnBQT0ZX?=
 =?utf-8?B?d25rRkR1UUw4OUtpOXlIM0tWSXlqSURpSXFTL3d3THFxK3o1Rld3SmZXYzgw?=
 =?utf-8?B?NjQ3VUoyMzM3T3lvZlpqWU5SR2ZucGVpYUxlTzlFSkUxWmpWa0hSNlA3N2F6?=
 =?utf-8?B?dysrTmNnKzI2WDNaV2NudTBZSTdraWZmWU5DeWFzcGFpMXNESDRPUXRsUTQ0?=
 =?utf-8?B?OTZNTjNoVG5oNWgwcDVWUll1bUNtTHBXM2p1ak1Eb0dKTUcvMzNINEk4eHZv?=
 =?utf-8?Q?8Kl/Ym8JUfR4bpP6R3aCX1q3SN4E8iM9?=
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?VWtqemlJaGVDVy9VTWIyUUdsS2xtUlh5eVB3RldDRWthNnRiczI0TlcwQTFN?=
 =?utf-8?B?aUJpMnJ4ZUozbk1IMnpPMy9VZHY3cVNSSkcrdHRVa1hMODU1SXJicTQrbjMw?=
 =?utf-8?B?bDlZN1hMcFNBUDBjUUQxK005b1pURXU1MWM1ZldXLzZNQ3FxVkEwRlAwWjVr?=
 =?utf-8?B?YlZwRi9uM1RpZ1ZXM2JjK2lQL3c4Uk9uVURRTlIwYXZNTUl4NTRaNmZIV2VB?=
 =?utf-8?B?VUg3V1JzYUlWV1cxckNOK1V4MFkreHJqR2RraVVOQnZDeWtoT2EzRDc4dkJN?=
 =?utf-8?B?UUYwQ1RtWUNTemVyMmJsTGxZQXVIOHNmT3dYR2M0c01wNUFvNnAyaFVKTklz?=
 =?utf-8?B?VksvY3IwWXBMWUZUU1BEbEFacS9HWHhtVXFITHJJaFdsYU9xbTYwTnoycFVy?=
 =?utf-8?B?eWl0cTNPSWxxcjV5c3V2YkRldXY3dXFuU3pHc20ydHN0cTdLWnp0ZE0zVUly?=
 =?utf-8?B?QXF0d3hpSDRiTmFvME1hTVdpZ1JXRDNVcG1YSmlGQXdVeVlCVDZOa2kzMjE3?=
 =?utf-8?B?UmRCY1JVdEtrWDJyc3dOZmpQY2Njb1IzS3RLejJEeXNYOUNrQXExMTJ4Y1Rn?=
 =?utf-8?B?c21OZDEreDJPVHFZNFNDRjQ3K1ZaZjUvR0dXSy9JSnQ0RlFXS3MrMHBMSW5o?=
 =?utf-8?B?dWo1NDRkV3p4QjVNYnE3NGZETXhDcnVnVEZ3dTcwL1k2cEhBS2lta1Fvbjh2?=
 =?utf-8?B?Q1J2T21VOHpoMzFzUkszZnMwNkdQVmQ4V21wWkhGS2p0UGkyU1psdHZiaVNR?=
 =?utf-8?B?RmhCc0YvelFTRnBhTlJGdmZkK2RmaHhVeXVMU1ZKa1Jhd2ZRQ29NVGNwV2cr?=
 =?utf-8?B?UEVLWHl5b0xpNHBUTzZQRFFtN0puWVYyMjRxaHRVcUVFTnRPK0s1dmJ5SnFq?=
 =?utf-8?B?b3BrMWxac0cxQ0hiLzBESU11QmF2eWk1N3NjRS8wRFo3ajBHczgrdTB3WFQ3?=
 =?utf-8?B?TG8wTS9IQjc2RUFwNGZqWVBJZzc1VDBzV0J3UDJFTVBJVjkyQ1puS2NGMTE3?=
 =?utf-8?B?Y1B4V3VSeGJabXB6eXdON1R2UENBVVNOWVJvY0I4SHFGRmQwNEowUHIxVmVD?=
 =?utf-8?B?YnVNUGdiVW83cmF4UGduRTBjRjlkRFRzR1VtSUJvbURsQzRKaDBkdGgvWkZj?=
 =?utf-8?B?bnd1N0VNSnYyWFlXenFiTUdZSlJxUGZKU2RxVHpvUFpvcG5SQWp4d0tpdUlY?=
 =?utf-8?B?OFAwbmRzeXVSWTNuWWlRaTBGb1Q2THdSTlgyY1RtQWorak5IblFDSWE2WTla?=
 =?utf-8?B?U29qYjJFcjJNZ1BkSWdQYmpQQzdYcE94VmIvQ1JUb0I2ZkRZalp1UlJ0R2pv?=
 =?utf-8?B?L1Y1TFo1VnUybkEwbmZQckdOQzl4YjNISG91RDRGRzN4dG1FU2tMSDhaYWEz?=
 =?utf-8?B?bWNDUXNaQ0JZQkRmYWhlNVo3VENqWWZmSlZadWhWUlkyWnNCSnc5bmxMSWE3?=
 =?utf-8?B?dDZoKzduaVY0bnNNQjRQdklHNE8yVWtvR1pmZHNEaDVFak1TYlplTHg3M2dV?=
 =?utf-8?B?WVNRd05rYkh6N0lER1BHSFpkOTFIZDluaWlteHhrRC9YSzY2c2IxUnNEa3hW?=
 =?utf-8?B?MUR0MTJqU0Q0dnZCalNxY0FiTWplK1k0RWxCZWhkeWphQjNXMGdUUXBPQ2lD?=
 =?utf-8?B?VGM0SC9lMHRRWXVleHROYytGS0pWVzdWanJSZC92OW9wNnkwejczMFkvMGMy?=
 =?utf-8?B?M29tNHhDbmNYb2szQWRmY0hhRlorNCtZSXJYOWV4VUloN3ZUV3JmNjBkd1dN?=
 =?utf-8?B?VCtKODVMVnZkUlZWd3lVTE9jZERacUs4ZkdOVTBFRVN1QjQ1VGQrNGJZSVV4?=
 =?utf-8?B?NnZpV2FWdUxLSTRrd3VxeWFqdVBGV1pmU3MxcDdMeGFzd1VZc3paMUU4QWRC?=
 =?utf-8?B?VS9LSC9qRnIvY05rYkVPYldqckJHYjh2NU1wSno1Q0Z2bllyMEhVU1Z5Rnc2?=
 =?utf-8?B?SFNTMVJjc09teDEvU3dZK2UvNlVPK2tpL3pDTnNOM01FS21uSWpXdUFhb3Mz?=
 =?utf-8?B?RllpbzlTSU5tWFFiRllGRFo4ME9YVmo1cjNBbEtsMCsvRkc2a1pxTUtObTly?=
 =?utf-8?B?em9HZTd4d1VZL01oMUlpczlOMHppQklBNDl5aDl4bkxaa2JKMzBQM1F5Tmgx?=
 =?utf-8?B?TTNLeUxVTnBPckFkUmZyTGZudGRsUTZmaXErSWhlSzlWYVlTU3dGM0I1UGxH?=
 =?utf-8?B?TXc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a278bb84-5d8f-45c5-96e9-08de2291b371
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 08:50:31.1942
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hKxeMbTiU1tIki37u/vaka1fe66O+mmFhvGHVXXTXtZZG4uZIGVF3xb/MvMWQ3an3uC0gj9+nTlSjjjMnW8OJGmTdnTp4bEYYabA3mEeUyw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV9PR03MB8414

On 12/11/2025 4:22 pm, Alejandro Vallejo wrote:
>  xen/arch/x86/Kconfig                    | 12 ++++
>  xen/arch/x86/cpu/microcode/Makefile     |  9 ++-
>  xen/arch/x86/cpu/microcode/amd-base.c   | 55 +++++++++++++++++++
>  xen/arch/x86/cpu/microcode/amd.c        | 55 ++-----------------
>  xen/arch/x86/cpu/microcode/amd.h        | 15 +++++
>  xen/arch/x86/cpu/microcode/base.c       | 73 +++++++++++++++++++++++++
>  xen/arch/x86/cpu/microcode/core.c       | 58 +-------------------
>  xen/arch/x86/cpu/microcode/intel-base.c | 50 +++++++++++++++++
>  xen/arch/x86/cpu/microcode/intel.c      | 56 +++----------------
>  xen/arch/x86/cpu/microcode/intel.h      | 16 ++++++
>  xen/arch/x86/cpu/microcode/private.h    | 14 +++++
>  xen/arch/x86/efi/efi-boot.h             |  2 +-
>  xen/arch/x86/platform_hypercall.c       |  2 +
>  13 files changed, 259 insertions(+), 158 deletions(-)
>  create mode 100644 xen/arch/x86/cpu/microcode/amd-base.c
>  create mode 100644 xen/arch/x86/cpu/microcode/amd.h
>  create mode 100644 xen/arch/x86/cpu/microcode/base.c
>  create mode 100644 xen/arch/x86/cpu/microcode/intel-base.c
>  create mode 100644 xen/arch/x86/cpu/microcode/intel.h

This is awfully invasive for something that ultimately drops only a
handful of lines of code.

First, it should be CONFIG_MICROCODE_LOADING.Â  We're not getting rid of
all microcode capabilities.Â  Also, of all the places where UCODE needs
expanding properly, it's Kconfig.

Next, annotate the functions that you conditionally don't reference in
{amd,intel}_ucode_ops with __maybe_unused, and dead code elimination
should do the rest.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 08:56:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 08:56:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160750.1488805 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJT85-00045F-6F; Thu, 13 Nov 2025 08:56:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160750.1488805; Thu, 13 Nov 2025 08: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 1vJT85-000458-1e; Thu, 13 Nov 2025 08:56:33 +0000
Received: by outflank-mailman (input) for mailman id 1160750;
 Thu, 13 Nov 2025 08:56: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJT84-000452-Ng
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 08:56:32 +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 a62c85a3-c06e-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 09:56:31 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b72dc0c15abso86770766b.1
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 00:56: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
 a640c23a62f3a-b734fad44b4sm121431366b.28.2025.11.13.00.56.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 00:56: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: a62c85a3-c06e-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763024191; x=1763628991; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WB8iAefIMVSJ6o2G71x2/0COcjSjFkkT6GJyrw7d7rc=;
        b=X095tyqjNeZtik6+tjy8TWZybcZSoD9QjDxTnEL6scz9nvE2RdjNosvBm8Ht2KF97K
         JOXSST82m/QC1A1K8U6qedoOnu5QYVA/yh2wwaSy/onXKapSpXSBsOoAadUvXbZRaf+d
         iQ7NBHzqVu4bLqDeNpEVauNRf4Plh9Is3Y+qQxlteevW3jf9imCIIrI058K8SjdZqpSe
         ntVFkYj+m/PjftxobuA1lVH++4PNixFEKJofbSKPE8QUogANXAKLcTMy49XBxXXctsZC
         9xbBBg39DLbihlyWdCuiIMYzGt1N5Z7HJefExBpZPk+gq2tuaiT2oPhh+ef1aQMvOcA0
         yKgw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763024191; x=1763628991;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WB8iAefIMVSJ6o2G71x2/0COcjSjFkkT6GJyrw7d7rc=;
        b=AHjENtv7Eb1wPSbF1BO1gckbLMfrLLwWWTkBc5MMpCeRcIZwlxt98FsTzeGSH3xYKS
         UHtLb92Lt4/C8XjjnDpy9GUef8EgusUD5i0WpD+CjDDSzz4Op/UspOj/RW/ZaMVhptgt
         CItRiRc+I5k2bDQU6uJE4JRF4y+Bm7Ss+KO5I51cs/KQs/iL+4YXUs8M4A2Wnjudw9hA
         fpC7g6fMwI+twjFOam9J3BCdzGWoHMYUMFevRwHg7Fo9yh1k0Dmvzy8iwy+eRdp3Kqdx
         ErlCB2XONgA4qrVvehTIkS2iHCKO8vVEaU5GR7xUmSWqvguTRBrZ0yHnUxQpnFaDZk18
         qlEA==
X-Forwarded-Encrypted: i=1; AJvYcCUNB6UfljldRLdk5fGhnZEX52ZEmkmcHJfKEeVL+s2qmmnER/GK+0aIh6EHnnSpPImL8VwIkP/s0Vw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyjcRSL7r9Dn/4zdYkcI13WufulsmxZjXooxOEjSayi4RYl5udl
	IA4xkkL050MEB0ukHvncV0phZAvAwFPJkzhGgJ6fPgSFkdjrjsct13E70NTQMVih1A==
X-Gm-Gg: ASbGnctvobkRMIej+/k28EjZGLxVh9ghNnREyE8GAYWRrOt7vLfeJdfZNdV+ywvpsz6
	Qv4YQdx8IsxVSh06oy/gq72gh/1Ty6Bk/VIlXekxVQSz0ZkpYKZb8t3MYmWdYcZeG+EKAzE/h1n
	DgacvpMYPTrY3VVcftrHNRjph1F9qqDZGulLdpLCleWpUanDoCiKNRnnR0n12jjtqjDDRZwQb+V
	T9i+/1f9Mr7fh3tfOP4uHRIIz4gL1ayLFhOAFU42rYl9MB57PWgFHq0zSYXTAXPfapdOSB0ntWm
	T95MI/UAJEqXbb4gX1Y8uS0LlbU+NIu6eGr27el0mvtdfjvWDAEigiPWtcUECDSufim6daPw19w
	JG7KqAog+4CX1nCtZ9EEXfyb6C5/E+X0VycqMzNvCLe130WKwttd2jvRMaJwfGm2+B82ES0XND2
	v9/EGCiEuPkFBJuxALq0M/NCtg0K/XJxmY2b66EtZNhHQGg9HF5dd6DQREm/QSbBlwvhARKsE0r
	VqdNGRcN9Qtfw==
X-Google-Smtp-Source: AGHT+IEPeUAQcLKj2ePCcM2V+hFqcv9hLl1CiLz2ny5oovhHFWTUl9sKcchtXdaEMn5FabMtxflj3w==
X-Received: by 2002:a17:907:2d20:b0:b72:6f76:cf73 with SMTP id a640c23a62f3a-b733198d627mr687017966b.21.1763024190974;
        Thu, 13 Nov 2025 00:56:30 -0800 (PST)
Message-ID: <8304ea57-0574-482b-a2ea-e1dadc58656e@suse.com>
Date: Thu, 13 Nov 2025 09:56:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/7] xen/svm: limit the scope of "rc"
To: Penny Zheng <Penny.Zheng@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: <20251113031630.1465599-1-Penny.Zheng@amd.com>
 <20251113031630.1465599-2-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251113031630.1465599-2-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 04:16, Penny Zheng wrote:
> To make codes less fragile, we limit the scope of "rc" through adding several
> instances in relatively narrow scopes. We also fixes wrong indentation.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

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

> @@ -2748,16 +2749,18 @@ void asmlinkage svm_vmexit_handler(void)
>          }
>          else
>          {
> -           rc = hvm_monitor_debug(regs->rip,
> -                                  HVM_MONITOR_SOFTWARE_BREAKPOINT,
> -                                  X86_ET_SW_EXC,
> -                                  insn_len, 0);
> -           if ( rc < 0 )
> -               goto unexpected_exit_type;
> -           if ( !rc )
> -               hvm_inject_exception(X86_EXC_BP,
> -                                    X86_ET_SW_EXC,
> -                                    insn_len, X86_EVENT_NO_EC);
> +            int rc;
> +
> +            rc = hvm_monitor_debug(regs->rip,
> +                                   HVM_MONITOR_SOFTWARE_BREAKPOINT,
> +                                   X86_ET_SW_EXC,
> +                                   insn_len, 0);

As you touch the code anyway, make this the initializer of rc? And at the same
time join the latter two lines? (I may take the liberty of making these
adjustments while committing.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 09:13:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 09:13:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160762.1488814 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJTOm-00074v-FQ; Thu, 13 Nov 2025 09:13:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160762.1488814; Thu, 13 Nov 2025 09: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 1vJTOm-00074o-B5; Thu, 13 Nov 2025 09:13:48 +0000
Received: by outflank-mailman (input) for mailman id 1160762;
 Thu, 13 Nov 2025 09: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJTOl-00074i-BJ
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 09:13:47 +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 0e98df83-c071-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 10:13:45 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b728a43e410so85292266b.1
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 01:13: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
 a640c23a62f3a-b734fad45afsm123420266b.24.2025.11.13.01.13.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 01:13: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: 0e98df83-c071-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763025225; x=1763630025; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kQOSH/xsrnviIaxP4tMdhE9UpPXE9h9HanA6W7ECFMw=;
        b=SNTzuSJkpkbIbhTNmItN1goaETsfSeu4hVMPtSOVE2v3vv/w7EL5rZF0sbCtTWdjo3
         YQcl9WI8kClg5JcWkv3us18sIkeJaDnPAKbpcC4UteJwLlxQye3bLTKaAthm05QkCgmg
         DpuLR3uHFDz8gTpi6w4eruoYLFEQZczh7K3jC3q/iOJ0jZirVAasdWCDV0YlxkiuoJW9
         iPe1HGy4yk0DvlCOu2rOebmIZQ1dVh3wnt44fYTwSoxMCp6WZKdLTX9l83xbPWoQ3wIi
         53dKvwQEOsKP7sSVukwOH74ipu1YzMjkidp9aeZJcAQVuUbut9rtEFo7tut57xHA5cRI
         ZlZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763025225; x=1763630025;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kQOSH/xsrnviIaxP4tMdhE9UpPXE9h9HanA6W7ECFMw=;
        b=UGk0m1oOQJwgNKAJ4ROnUe9OCfAjzIY+pMUC0u5Ou4nH/YG9X9HVE0AuT2iZc/n9eI
         lB0u2iCxOZPHhj0TK9daYkd/cC2xiKmFFUiWbUlJEUthgSJRsmHbq5rJHqewd01diVms
         5WR6FbcXww+vDBSKun4C4wUgaEQDQRw315XbsjJpwQMl1LcM4COk8mlPTgfjRN/XszgJ
         pjx6kV4p7vABhNp+pgLp/2Ndz/Mt6CChJ5pJzDdDCBuq//3qMO8++R7NkgjeCuSH2YMN
         OrO1X9faypqL5Zq38xAqL0bJfosLJyoxOsNWx5FK77hzOHP+xZcwbwSCnXovA2xIQ6R3
         NzCA==
X-Forwarded-Encrypted: i=1; AJvYcCWpIfA9PS313JZ0B8gkbh9/PfUyu++vDbkQLEUjO3cBOj9o+mJR1M16h2CM8lTEXGHQGK9TYkr7DPk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw3Wbu0q89EjkCZ7ckiSyHsLQjWKkKZq4lBrEnB8wpo6HmuARYm
	0hwm9Ivoubyn+2IaujmncJNZflHTHNlFsjiRkdu1E/XnCvpllEjDHPsJ9EliNzQN5w==
X-Gm-Gg: ASbGncs58TYEYi+jwr3lgdRAcSPOw5bbQ33UpwWL8mj2074mWBIAoC2onNnnUvVmbwZ
	zDwBt70z/D3effV/kfxDlj8B5mtJWwjVhJFlo/27WY9DsDkCK/pdsLYMq8tDs1vUnag9LlQanJ3
	7wE86r5vKeuffxe79BFxFNHafsPeP1FaBrv8LQz2NaksqOpu+2OJiRnioDBpi9sjklFhORxbpyb
	SWePxjegpcwFXVY92mbSrrHn/dbBemyueLwkQ7BwIWR9euRNfqvpVWm3hLiEhQxzCoU+Lu6gRYf
	7KosqbCyjdb5KtSPtVoXnzT8P6XN/8JgYGX0B3Hced4gMmIV9yyM1SXozLjJUAz0uI+qc8ccrkS
	NHfgdLjkNvkPpfzZs/kmX3fFA3Ei+AC80X8sdCoZD3pe6R1Bpl7WslVonERWHHOXFUDJmciGsot
	nYMdloc1C42nUSd23IHGJABNIqKSwMDs4GCd3KbXmTDexXVHN0VrwexqWEtffXs27sP2UmkA5fT
	3Q=
X-Google-Smtp-Source: AGHT+IFLdyltBls2Zc3flTeMOJCRlcmvRpa6+xUfrYynpSRcOCO+cwkKc0UVDonEp3n9STRI780Igg==
X-Received: by 2002:a17:907:d644:b0:b72:b7e1:5c90 with SMTP id a640c23a62f3a-b7331a838e7mr597080866b.34.1763025225266;
        Thu, 13 Nov 2025 01:13:45 -0800 (PST)
Message-ID: <8c74b068-ba9a-4867-8d39-31c77f3cc339@suse.com>
Date: Thu, 13 Nov 2025 10:13:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/7] xen/vm_event: introduce vm_event_is_enabled()
To: Penny Zheng <Penny.Zheng@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>, Tamas K Lengyel
 <tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20251113031630.1465599-1-Penny.Zheng@amd.com>
 <20251113031630.1465599-3-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251113031630.1465599-3-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 04:16, Penny Zheng wrote:
> Function vm_event_is_enabled() is introduced to check if vm event is enabled,
> and also make the checking conditional upon CONFIG_VM_EVENT, which could help
> DCE a lot unreachable calls/codes, such as hvm_monitor_io(), etc, when having
> VM_EVENT=n.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> ---
> v2 -> v3:
> - move assignment (to ev) past the check.
> - remove redundant check
> - make "may_defer" & with vm_event_is_enabled() and have assertion back
> - add vm_event_is_enabled() for hvm_monitor_xxx() in svm.c/vmx.c/mem_sharing.c, then later there is no need to add stubs for them
> ---
> v3 -> v4:
> - move "may_defer" & with vm_event_is_enabled() to the very top of the function
> - use ?: to avoid introducing a new local variable
> - fix the wrong order
> - use pointer-to-const when possible
> - use IS_ENABLED(xxx) instead of #ifdef-block

This is irritating, as the subject (bogusly) says v1.

> ---
>  xen/arch/x86/hvm/emulate.c          |  9 +++--
>  xen/arch/x86/hvm/hvm.c              | 24 ++++++++---
>  xen/arch/x86/hvm/svm/intr.c         |  2 +-
>  xen/arch/x86/hvm/svm/svm.c          | 54 +++++++++++++++----------
>  xen/arch/x86/hvm/vmx/intr.c         |  2 +-
>  xen/arch/x86/hvm/vmx/vmx.c          | 63 +++++++++++++++++------------
>  xen/arch/x86/include/asm/vm_event.h |  8 ++++
>  xen/arch/x86/mm/mem_sharing.c       |  3 ++
>  8 files changed, 106 insertions(+), 59 deletions(-)

As before - why's there no "x86" in the subject prefix?

> @@ -3860,9 +3870,11 @@ int hvm_descriptor_access_intercept(uint64_t exit_info,
>      struct vcpu *curr = current;
>      struct domain *currd = curr->domain;
>  
> -    if ( currd->arch.monitor.descriptor_access_enabled )
> +    if ( vm_event_is_enabled(curr) &&
> +         currd->arch.monitor.descriptor_access_enabled )
>      {
>          ASSERT(curr->arch.vm_event);
> +
>          hvm_monitor_descriptor_access(exit_info, vmx_exit_qualification,
>                                        descriptor, is_write);

Stray (and not really necessary) addition of a blank line? Did you perhaps
rather mean to remove the now pointless ASSERT()?

> @@ -2907,16 +2914,19 @@ void asmlinkage svm_vmexit_handler(void)
>  
>      case VMEXIT_IOIO:
>      {
> -        int rc;
> +        if ( vm_event_is_enabled(v) )
> +        {
> +            int rc;

With this the outer figure braces introduced by patch 1 can also go away again.

> @@ -4703,16 +4711,20 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_regs *regs)
>              };
>          } io_qual;
>          unsigned int bytes;
> -        int rc;
>  
>          __vmread(EXIT_QUALIFICATION, &io_qual.raw);
>          bytes = io_qual.size + 1;
>  
> -        rc = hvm_monitor_io(io_qual.port, bytes, io_qual.in, io_qual.str);
> -        if ( rc < 0 )
> -            goto exit_and_crash;
> -        if ( rc )
> -            break;
> +        if ( vm_event_is_enabled(v) )
> +        {
> +            int rc;
> +
> +            rc = hvm_monitor_io(io_qual.port, bytes, io_qual.in, io_qual.str);

Make this the initializer of the variable?

> --- a/xen/arch/x86/include/asm/vm_event.h
> +++ b/xen/arch/x86/include/asm/vm_event.h
> @@ -45,4 +45,12 @@ void vm_event_sync_event(struct vcpu *v, bool value);
>  
>  void vm_event_reset_vmtrace(struct vcpu *v);
>  
> +static inline bool vm_event_is_enabled(const struct vcpu *v)
> +{
> +    if ( IS_ENABLED(CONFIG_VM_EVENT) )
> +        return v->arch.vm_event != NULL;
> +
> +    return false;
> +}

Simply

    return IS_ENABLED(CONFIG_VM_EVENT) && v->arch.vm_event != NULL;

?

I guess I might as well do the adjustments while committing, even if it's quite
a few of them. In any event, with the adjustments
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 09:18:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 09:18:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160776.1488824 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJTT3-0007iO-22; Thu, 13 Nov 2025 09:18:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160776.1488824; Thu, 13 Nov 2025 09:18: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 1vJTT2-0007iH-VK; Thu, 13 Nov 2025 09:18:12 +0000
Received: by outflank-mailman (input) for mailman id 1160776;
 Thu, 13 Nov 2025 09:18: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJTT1-0007iB-Kb
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 09:18:11 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id abcba1c5-c071-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 10:18:09 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-640c6577120so1030376a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 01:18: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
 4fb4d7f45d1cf-6433a497ffdsm1016727a12.21.2025.11.13.01.18.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 01:18: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: abcba1c5-c071-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763025489; x=1763630289; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SV8Y/QsOuXLF5oLXrwfPXc6plXQC0djuVsHcadHB8tA=;
        b=Kvc8GeWsAVSiA8K34xRqdJ6MfOJQsURPY8lSAoQuwYoY5UzSpmkSI0v6ptDODrO2wi
         Xly4OzospuEu/O5dNNf3/IN1j15UU3x76BSrAfe3h6hcLWqXphaJrTJ8+oscvaDUiSkx
         m1zZfcLj+XkPQTDsN/7Ra/SszD7+MA23iUiSS7cakIim0ZaPTlBA/n1lzOLwv3YqB3aD
         IqckX/l4cgg9Aq2kTK/DE8mMGsyKGugIRwxIuTKCd5EPaz538mhAfCZFiQaUqS2WMbQv
         gjTSQP006uniP1foJGXBaYJMRG6otVQW35Hb1o3LADuRD+xRZaZwDlK9r4sf0ztyrJP/
         AmsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763025489; x=1763630289;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SV8Y/QsOuXLF5oLXrwfPXc6plXQC0djuVsHcadHB8tA=;
        b=BGQcsjSeWeYgQDW9XpEM1Z7g2KCXXAlHHlghnenZFozhpNGFtXlMnrP2QdAKMdYCFR
         fUR8pLfMjlnvXPtwJEsleYDg3n7PBTZ9+5ECtAphvD82UYFbfK7d4ILRUKfjO+YbMFk6
         4oDY5y3fiCftRhMK2TIznchOmM9hgwMu3I1sDKSd5T1vrUygZm69oK4i8lPXIwmncwr7
         6ts9RrZmWq98XTaiZFFpj2c4eLpI+4YqnrtvZKBRtdY1gK1fCw6r+Bv4JkNvYhZvpfR2
         yk9UbvgsdntrfviWZ1cs1k4x93WnkrM4pUMKM7BwHf0uA1q4F9wKBmOwlKn9zg9jnUva
         YCLw==
X-Forwarded-Encrypted: i=1; AJvYcCVfvUvUmBFPteneylNbJZw8JjvLM4UATre7pQkq0KF/nuygYXGBd19MxNZSFg6+Tt/NTObu0giozOk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzklfzzB+dftgM2fUrYZvK2O042mbn23ZxM2EYKswKlA3TubSf9
	4YVlCz0ovXt0Uzn/cbdZ0HcNeZhUUud0nCKDZb5cg3AMh7/V7YSmeHW8k/QSOxH+iw==
X-Gm-Gg: ASbGncsbpHZGRQteI1Z8Pf1Wx9Sjd+dC83Fc37GjDxw//ya2f/QFXrMtNw7w9/Kg6jv
	MJcNmucx5/C6r5w8bUR1JgD2fE/4371VFI11KHwlkrXX8TIxP1KHebOvW4wDYDnRXtAy17Bpj1L
	obQSBtxy4a9TMtKl9SkzRXHUShyYifu6DfN2ZX+qZBJY8lYmfxSQlvEK6sk2tJA/hTjmtoM9lJS
	wIC33Zr6WODAW+G4KIi+ChA6NsfGYQ3g10JT3/3DEcsKjQa1ScufuQ5SHIqk1gD0H1ekKpkBSR8
	VjXyR3KlSVZRhE7DYWdlYi/XYB6GpI4AZH+0cuzyaSZ3aCftJ2IrtsJ6TqamW3eLKWhAbr0vdrb
	RIgRb72PBePjTXEdLIsdVNDFc9seco8th/eGSCyaE8E37wBhx1TvjcLpxHgmyi672chaiSSHLpb
	oJRhVAsgDeRgid5+K1ffK1uDKCckMZKTEBBkBjjMsBYFAB0suhJfRtq4dbA1B+wa6YZLWWk0zGP
	/c=
X-Google-Smtp-Source: AGHT+IHfj8KwgMeyLIbHR87rzTVNwKv5Gq8srGMKk+ANr/RbrDmg7w1eZa0fYmBaM4lT33+lMFwweQ==
X-Received: by 2002:a05:6402:2106:b0:643:e03:daed with SMTP id 4fb4d7f45d1cf-6431a49e91dmr5103948a12.1.1763025488974;
        Thu, 13 Nov 2025 01:18:08 -0800 (PST)
Message-ID: <e443bbe9-e2ac-42c7-803f-2017848c4f58@suse.com>
Date: Thu, 13 Nov 2025 10:18:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/7] xen/monitor: wrap monitor_op under CONFIG_VM_EVENT
To: Penny Zheng <Penny.Zheng@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>, Tamas K Lengyel
 <tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>, xen-devel@lists.xenproject.org
References: <20251113031630.1465599-1-Penny.Zheng@amd.com>
 <20251113031630.1465599-4-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251113031630.1465599-4-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 04:16, Penny Zheng wrote:
> Feature monitor_op is based on vm event subsystem, so monitor.o shall be
> wrapped under CONFIG_VM_EVENT.
> The following functions are only invoked by monitor-op, so they all shall be
> wrapped with CONFIG_VM_EVENT (otherwise they will become unreachable and
> violate Misra rule 2.1 when VM_EVENT=n):
> - hvm_enable_msr_interception
>   - hvm_function_table.enable_msr_interception
> - hvm_has_set_descriptor_access_existing
>   - hvm_function_table.set_descriptor_access_existi
> - arch_monitor_get_capabilities
> Function monitored_msr() still needs a stub to pass compilation when
> VM_EVENT=n.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> ---
> v3 -> v4:
> - a new commit split from previous "xen/vm_event: consolidate CONFIG_VM_EVENT"
> - Another blank line ahead of the #ifdef
> - Move hvm_enable_msr_interception() up into the earlier #ifdef
> - only arch_monitor_get_capabilities() needs wrapping, as this static inline
> function calls hvm_has_set_descriptor_access_exiting(), which is declared only
> when VM_EVENT=y
> ---
>  xen/arch/x86/hvm/Makefile          |  2 +-
>  xen/arch/x86/hvm/svm/svm.c         |  8 +++++++-
>  xen/arch/x86/hvm/vmx/vmx.c         | 10 ++++++++++
>  xen/arch/x86/include/asm/hvm/hvm.h | 18 +++++++++++-------
>  xen/arch/x86/include/asm/monitor.h |  9 +++++++++
>  5 files changed, 38 insertions(+), 9 deletions(-)

Same remark as for patch 2 regarding the subject prefix. Then
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 09:24:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 09:24:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160792.1488847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJTYk-0001C9-PB; Thu, 13 Nov 2025 09:24:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160792.1488847; Thu, 13 Nov 2025 09:24:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJTYk-0001C2-LF; Thu, 13 Nov 2025 09:24:06 +0000
Received: by outflank-mailman (input) for mailman id 1160792;
 Thu, 13 Nov 2025 09:24: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=EIX7=5V=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vJTYj-0001Bw-8H
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 09:24:05 +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 7c65d8ee-c072-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 10:23:59 +0100 (CET)
Received: from MN2PR18CA0014.namprd18.prod.outlook.com (2603:10b6:208:23c::19)
 by MN2PR12MB4344.namprd12.prod.outlook.com (2603:10b6:208:26e::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.13; Thu, 13 Nov
 2025 09:23:55 +0000
Received: from BL02EPF0001A100.namprd03.prod.outlook.com
 (2603:10b6:208:23c:cafe::a4) by MN2PR18CA0014.outlook.office365.com
 (2603:10b6:208:23c::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.17 via Frontend Transport; Thu,
 13 Nov 2025 09:23:48 +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.9320.13 via Frontend Transport; Thu, 13 Nov 2025 09:23:55 +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, 13 Nov
 2025 01:23:53 -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: 7c65d8ee-c072-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OuE9ocLXD2Z2wRH3FEW18SIZmGgNzSzhMbXSR+wm3soXzRjrLf2jG6d8qHMSQi7kSlIxYQtTiFVETEmIGDQiWgT/sAGqnyi+ib0Q5hzwGsOTWfkxINKPrUeRqlr2OnPm1ucLK+couNQYj6M6A09+JHGejF6nz5PJkDi4ra9J6UeL5AbvgBqLk9A+zaPJu9Zz0TpMzQS6YhJjdnyS4+jhTnyIToknoZmP2f0FOKtMzEm/QXQ/Ra2gXpga7X/dpSlxzjKgliM5k+cCxj5IqJGIbCa5nIMuNtcR3AvDA3brdtll8mvF4fd59OWtF1bxGuhSKCuziisqueQa8/9J94loQA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ToD+1QSJ4j8cbbrFdFnbxzS0fOebb+EAuHIMn53ZfSI=;
 b=I8PO59YysAFwLN851MpIxFy6rLgvtO5HpR8TUjWNKunka7We0PkpEFUFYDJdwDRKV9Dv1vvoZsc1PW2OSbUO9LugutQllqmau6N+4f55sCGMWmf46cCT/2gjqwVmeRxV5O3OrjAVcQngDDVkQzsmQ6CLJjDmungIOgORlk3bNqob+L1rl3MuAa9RONdb5Ho8qBbh2iiT+qOIKT3KR/vlP46MjkfQimDhczDUC1TG+aEVvUEmfgR+VgKgouq3hdLSsvfym7rvAXq931WtRcCy5Y1HTZrC3yFT2TvxoUuDJMnYMxbDDVfUp5yB8Of7z/D2tttLQg0WcFqcwU8QnEZtFg==
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=ToD+1QSJ4j8cbbrFdFnbxzS0fOebb+EAuHIMn53ZfSI=;
 b=muO1gEZ+lEI40n0h7dbnMSyZVQolDmYEFjLI4vzVgiqFR2djXf5vHRRq0zNIAlK+5day4a4sANSPTrEbgBXqtiOwGWU9A7RtOqJPXa51fc86tKyughla47FPgK2wkP5VFhTQ8k11nXISMlpU2NcQqG0mrhHP98pngYqQ+/LNJbA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 13 Nov 2025 10:23:50 +0100
Message-ID: <DE7GHXHQPEVH.3BHEZR1Z99J4O@amd.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [XTF PATCH v2 0/2] Remove Xen as a hard requirement to run XTF
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: <20251002135542.28076-1-alejandro.garciavallejo@amd.com>
In-Reply-To: <20251002135542.28076-1-alejandro.garciavallejo@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: BL02EPF0001A100:EE_|MN2PR12MB4344:EE_
X-MS-Office365-Filtering-Correlation-Id: c18f9b81-8034-40d4-23b5-08de22965e35
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?L3BEaGxQY2dQMk5BUXkrWHRuYklCVXR0YXFUUnhvTFhVcUhQY3UwN0lGRFMz?=
 =?utf-8?B?Ym5pRmN0cUpOMHFkc0U1K0tOQzVLZXQ5YmNPUldBNXFsaERnWUJwdmJWam1N?=
 =?utf-8?B?aWxrWnhUeHc2TFk5TXYxZTh5Wmd0eTdhcXFwWkJhWlE2S0dZMGtocldWSVFa?=
 =?utf-8?B?UVdvZXhsRU83RmNrRVNlQ2NOR09BaEZRdUphTjhZMlY1MTJRanpaOXlBemY4?=
 =?utf-8?B?b0I3OTFCb21tYzdUOFB3am12QXJLeUZHcUhGZWNWOFNKd2FHZ2FXRjV5Vzgw?=
 =?utf-8?B?ZUdNemE4MmpQRWdVeGJxaEdEbFI2Qk5ZbUx6WTkwTkVKMlc3ZkVyQTg0OUlI?=
 =?utf-8?B?cVdIcGhmWHZPT2lhT0U3ZGpMK01SQ2dIbENyVDR1dkI0Sm1USVhBYTlVakh0?=
 =?utf-8?B?ZmdQQXNnUDZHZXNiOVNibk5kRzFBMXMxQzdEV1hzMDdoc0FGTGx2NUJBYU9s?=
 =?utf-8?B?eWZvam50WUNENi9zSlVqUkpUcWNNN3NCSk9XVmcxNldLbXV3bHdrRlkzNG9W?=
 =?utf-8?B?cDdGQmEyc01rN2FuR0pqUGxoKzc1NVMrdm9NV2Zjc2pBUVd1TlQ4dEEweW50?=
 =?utf-8?B?Ymt0d1F1VkdjMFVCZnVVUURnK1JTM0ZDcHBMZWs2ODVXT2RHaEp4V1B3UWNT?=
 =?utf-8?B?TVBrV2RpQXphcHVsaU11eWo0TnVtTUhFKzhqT1BxODg5R3diRzNSZExFWm05?=
 =?utf-8?B?THdoZ2RGYUozaHpmMGpUMzhKaEQrS3hUTERSb0tKV2RVQ3pKYXEweGlJTDlj?=
 =?utf-8?B?NVBDQk1IWU1qQm5ERFR4b2hISFMrK0p0STZ6U0JUbElMRVhLSzBQZDZzYU1s?=
 =?utf-8?B?NU5FRXJNTDFONFcwQ1dpK3VYVjFweG5JWFVxb0N4bmVFdHFyaW8zRDdoNkZs?=
 =?utf-8?B?NUxyQWtUQWZlaWtwTHhFRjg4RjNMRVVtRkdrN3VWaTlsdWtRWFphSEVBZnVw?=
 =?utf-8?B?cUJhcEMyRVBjenJUTXBqRVljL3dwUzVFKzM4WUplRzFPL3dvZkVzek5aSUxn?=
 =?utf-8?B?dzZtUHdMK0U3OVZYbnBEd3JUSjZUcjB4Njk5dmhGdlZCc2xlUStsckt0QjJm?=
 =?utf-8?B?SWY1TXFaM0FoMlV1eUNNR1VQanpvekdBbWhRamFlRng3aWlHMTAzUGhLU1ZJ?=
 =?utf-8?B?dzJDZkRVTEErdnJQN3BUaStXeC9EVzZ0RTNWNjhDb0tlc1h2MXZPWWREeDQ0?=
 =?utf-8?B?cFhVZFNtRHZQYnBSZzdFZlJ5SDRGazVvWmc5Z3BHZXR3UEFYRG0vK1AzaG1Y?=
 =?utf-8?B?VDlhRHpQYllYa2RONGRTRWwvc2xQc3NPODkxYzgvRy9mbW12c2dLb093bzkr?=
 =?utf-8?B?c0hBZnZLUlFXTkMxUXR1V05UdnVLTG1YQ3JTUTU1TkdtbzVZVHk3Szh2UFZs?=
 =?utf-8?B?Rm9KekNpdnJWVGIwZGNheGlzUmhrS0NQckc0RDhzNE8yeVZZbHVwQVM2dDFN?=
 =?utf-8?B?RCtuUVBQOHdEd2F3YnphM3hPNm1Qbm82NmNYWUQwYnp0dnFHcGY3L05jaHUr?=
 =?utf-8?B?YjNERVFGOXQrbHNnQ2ZZSFBJSHRlNWYyZUlYUW82bklIYjl3VmgrbDZhdFgv?=
 =?utf-8?B?WjZNRkVyVkRpdHBuT0tEK0R2dzRFNWYzT2UyY2ZvemNMR3FndHpWbDVOb0hl?=
 =?utf-8?B?aEIvMmpJWEo4TGhUNkQ5S1k5c2F3aEdsS3JaTnpUZW8zbktGc3dKazhwUW0x?=
 =?utf-8?B?d1UzNHVwQWN4V2IwZUIzSHpsQlMrWWhSbnA1M25HdEwzTTR4SUMvbDJKYmxH?=
 =?utf-8?B?RDdDNkgvSlEvNEVUSmw3RUxIOFlVQWsvQXZYUWVmMnJtdmRHRWR4Q1gycVYv?=
 =?utf-8?B?NmJXU2FXUkUySGRIU0dVV3pGU2prRytVa3BsNEhnbW9HY1Z4OXZqdHcxakh3?=
 =?utf-8?B?RkI3aTBobDFXRDhERTdLaTBlM1pEZ3FZd2hkdUZ1bzJ3Vm4ydHRtZDhvN3RV?=
 =?utf-8?B?c2VidXZlTkg2ZmRUZWdXM085QXZONzZVVk0rc0dVem0yMlh1ZWtCV2NnS1g3?=
 =?utf-8?B?R2NtZlpUcmpZdW5aOEdlZnhlMFNVTzg5aGgwSWxhWTFueXoybkVKd2Z4TWZ5?=
 =?utf-8?B?a0JsN3NUQ0l2WTkvRUk3VlFRUVdqcGMxZ1J4S0VQd3ZrYVkyNytRdGxRWlhz?=
 =?utf-8?Q?Lku0=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 09:23:55.3747
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c18f9b81-8034-40d4-23b5-08de22965e35
X-MS-Exchange-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: MN2PR12MB4344

On Thu Oct 2, 2025 at 3:55 PM CEST, Alejandro Vallejo wrote:
> Hi,
>
> I've included logic to exit QEMU using the ISA debug exit device. See pat=
ch 2.
>
> Cheers,
> Alejandro
>
> Alejandro Vallejo (2):
>   x86: Remove Xen as a hard requirement to run XTF.
>   x86: Allow exiting QEMU in TCG/QEMU
>
>  arch/x86/hvm/traps.c    | 16 ++++++++++++-
>  arch/x86/pv/traps.c     |  5 ++++
>  arch/x86/setup.c        | 53 +++++++++++++++++++++++++++++------------
>  common/lib.c            |  2 +-
>  common/report.c         |  8 ++++---
>  include/xtf/framework.h |  3 +++
>  6 files changed, 67 insertions(+), 20 deletions(-)
>
>
> base-commit: 11b552a416d1164c63be4da670f16cf8a5a9044d

Ping


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 09:29:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 09:29:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160804.1488856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJTdb-0001mI-8r; Thu, 13 Nov 2025 09:29:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160804.1488856; Thu, 13 Nov 2025 09:29:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJTdb-0001mB-62; Thu, 13 Nov 2025 09:29:07 +0000
Received: by outflank-mailman (input) for mailman id 1160804;
 Thu, 13 Nov 2025 09:29: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJTda-0001m5-4T
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 09:29:06 +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 31eb2930-c073-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 10:29:04 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-b403bb7843eso112522666b.3
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 01:29: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
 a640c23a62f3a-b734fda8bc8sm123519066b.49.2025.11.13.01.29.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 01:29: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: 31eb2930-c073-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763026143; x=1763630943; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=V9aOP1Dp/9mYbtTrsKqHJZ6AvRGu7n4rjcFCoLOgIQg=;
        b=ZqHsrZ5J2uE4BiwCmFhTbqIEOHA8DSLnH4I1LWnG9d4sEVwgnc7yHl3O6ufrEQCUE/
         UMJegcqnWpw4XK31jX/ID3ejqkM5j0gwTWaDzusI6cS4dIklpkmyCqBJ9mpOlpLYt3I9
         D1WlBL1pmsgzgUA0SQn+0H5OYKItty61Ya/FSdD6qGH3ytzEgo0b2TwjrHX1vJlT69Jm
         NeoXYLjL5v+/qZXhFbmZHFlWnCxUIZhLGcr52KULwgS1NVfn2eCV3U3/VokPsUpkMhGz
         c9Fyf267TxKJrewSR74qODpZ8x2laZR5S0F1Vl+WgY7OHKJUVbiVXMi5ihO40Ty/g5nv
         KAIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763026143; x=1763630943;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=V9aOP1Dp/9mYbtTrsKqHJZ6AvRGu7n4rjcFCoLOgIQg=;
        b=D+4N6RYSRavVdjVy03sv6AJ722KqbNAmTwnpY3VZ4JOVQXVovx+Yc++CQNM9m8G5fU
         vYaPBlq00uB51QXredWPJIHwJIUdnNtt8U/q5vijVJNRfMC9dfGCe/vLbeFUExrNBRxv
         VZMeKnlWw1RrxF91O+wtJdP4sfToZAl8/IhBkK3q6AsPhDfdXq5p4aEKDF95I9M8dVGQ
         Dijmf9GPp2xIA3a/p4nIZjCXqmCZAb0AEesByMOvkNWhZmR6ZwKnBG8n+O+gU5Irx7bL
         c8s93ucgVAtl/RUe95O5CPK3ROMhV3fo1KJiOfeAHdfoj08wemEg/T+jZp6p54stzOCW
         mo9w==
X-Forwarded-Encrypted: i=1; AJvYcCU5c/WcSsZslGcDxf7KAOzXqKpA8mbdGiKRmxnS2sywsQ/JPxzBPSvY1mOgfheG2Jl5547fos82q0s=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxyk1t/yjJ6GOWKRIF/5stbmFjd3mGmQBJlxqlfc9DOoQ03Ikik
	LTrev3BKWkPNhnaK5Bqvw2GDiLw9KJcTwgu7XC3C2ug+GUA1YXe8FwtKYH7PrDVYaw==
X-Gm-Gg: ASbGncvvh40NTNVePyCjkwNXCRiSkscHDHcvD0gavOZM3XxBgNatTBOJJOYPnXBHPb8
	NRBc86DNvxpsekYeHIkJ6icAyl6J15T9LGt3u+ultbp7vLPeEd+h+ceUXt8Oo2+KsJOgTk+8nji
	eL7HV3JZWaYGuWNsZe+9pfIJC7zHlx3XCRocqrgzkwJ6Cl0yP8su5l5XqHp4OmHa7s1XybVXuku
	RGzYEu9VcXAgp0bLa/L7fVfFNfkFXlFFI0luFo2EDO3x2Im9yIbBPul4K9LbJlYQ4zNEAAEPMl/
	eR5dM6Ihx/P8pxoimjDBi+FC/euPTcr1tQNo2S3h05BumyknEtVocHhsqEjIgpwKfUo5rdTwoCI
	YxxIJyPobdtKf+mcMa0eZEwU4dZBfeo1hPsWYieAMYa2RHGy6U5rVq/XNC+7KHSbItcXDqJdvyo
	ekOAoKfvj/p2UHekf/BZPdVavqOA4d7zaAUusbXMJ/6xOciy8Mxo0mEi7ptLsc1biAJ4h+1Fb3U
	Fg=
X-Google-Smtp-Source: AGHT+IFPTJQtZGMbR58PZXPBJDG/lu5Sjjtha3ebGNAGhrw94sPMlWKoAb0Ja8LzM6pe42BVokuZNg==
X-Received: by 2002:a17:907:7f87:b0:b71:2145:dfc8 with SMTP id a640c23a62f3a-b7331a7031fmr666717666b.39.1763026143476;
        Thu, 13 Nov 2025 01:29:03 -0800 (PST)
Message-ID: <dd96b628-a4e2-42a9-b8ba-4ea597f9ded6@suse.com>
Date: Thu, 13 Nov 2025 10:29:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 4/7] xen/p2m: move xenmem_access_to_p2m_access() to
 common p2m.c
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20251113031630.1465599-1-Penny.Zheng@amd.com>
 <20251113031630.1465599-5-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251113031630.1465599-5-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 04:16, Penny Zheng wrote:
> Memory access and ALTP2M are two seperate features, while both depending on
> helper xenmem_access_to_p2m_access(). So it betters lives in common p2m.c,
> other than mem_access.c which will be compiled out when VM_EVENT=n && ALTP2M=y.

Yet when both are off, the function becomes unreachable? I.e. doesn't there need
to be #ifdef around it, to please Misra?

> Coding style has been corrected at the same time.

That is, blank lines were inserted and nothing else, afaics. Could have been said
explicitly.

> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> ---
> v3 -> v4:
> - new commit
> ---
>  xen/arch/x86/mm/mem_access.c | 36 ----------------------------------
>  xen/arch/x86/mm/p2m.c        | 38 ++++++++++++++++++++++++++++++++++++
>  2 files changed, 38 insertions(+), 36 deletions(-)

Imo with this movement, the declaration wants to move out of mem_access.h as well.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 09:35:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 09:35:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160816.1488866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJTjW-0003fE-U8; Thu, 13 Nov 2025 09:35:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160816.1488866; Thu, 13 Nov 2025 09: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 1vJTjW-0003f7-QV; Thu, 13 Nov 2025 09:35:14 +0000
Received: by outflank-mailman (input) for mailman id 1160816;
 Thu, 13 Nov 2025 09: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJTjU-0003f1-Q0
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 09:35:12 +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 0c22ed61-c074-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 10:35:10 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b729a941e35so86096966b.3
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 01:35: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
 4fb4d7f45d1cf-6433a49884dsm1043134a12.20.2025.11.13.01.35.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 01:35: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: 0c22ed61-c074-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763026510; x=1763631310; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YG9oWxQDB0T28MDS53X67Wp77jXQH/URljytmECbxiI=;
        b=Ll2GVfW+euxyQ7AId61PWbx/Q5FtUfFmnCbfpl9VArJPCYALBJ0A61EPYAVMqM31e+
         B4Btf3FaSjJiYqUaMiEphRAsYmL87HStCH5FG0W3jmE2luv4BiMVJBIWOLP+ol+m9nT0
         hGzbVoEMguOJcDatUMHMO5aY8p2v0qCwmmvMTNv63WZtvofon60NxDntOPcZvQsFu2g9
         YW0l9MHWX1ze1OQ+y6TjEDRcIIzA6jjlEMvg8pIFEIplyYm/9rfQy5VfoifEqBdFoho6
         V07dtoXYHNN6lwqFWK/QWBE/A91YeNi23+vqPlu4Ko3vCnwmgfL3uG4xiImttCyVHAnk
         4yUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763026510; x=1763631310;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YG9oWxQDB0T28MDS53X67Wp77jXQH/URljytmECbxiI=;
        b=MI/BIgk8na5f1K8QK6el4urSvC8MdGgl/vHBPOZybKmeHhBz4/PpubGnDN93gQFPN/
         8WMWMxqgZZGMX69pmoPzZx7/UxjjlDJ8JRZExldY9EQJujtN2cNKcPvNlShIt6tufbhX
         nZD3ojHJE5Uj/PYbZssIP905FNwqlwD5DPH/XkXMJZu5zhaajRJrlaFZpfe1StqjiDeJ
         z9ne+c2UCw16n6SceegBytS/D5o/yUrD1cx6VfqXUDmz4qzfZ0UtS76SRC9yJujLjHaC
         uQNLXqe88kAh2knsImOTSDf7BwnhWQOqAgTvNFF4UfbDlJWYMiQIGp3WobtFohI4ooN7
         DltQ==
X-Forwarded-Encrypted: i=1; AJvYcCVB8gxTQydItMDmTqZ2xyrS2K966ox8Aa6yZcFzt3tO4ylkEDBTrc4cFLWMo+x/K6HxhUSKg+vS+b4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxAlD0M2Toslq3vM4mthEoD2oqXFg2iodTr7RranyVS/EQO4oS/
	uJqPKqoVh09JZMkUema+XO8z0AJEHATmARG78YB0FReXkb/vjkkH33zVIsXbqH1HPQ==
X-Gm-Gg: ASbGncvi+8646CrugkJP94CPH+P1itpU9GeJa9TGg9cTom9mwb8iHLyuNyLNDMHIy/e
	6f8S8G89sciT/6mcabnCldArxDmga2ylIrCwFYVWeP+I/QbJKhn9Pfen0EDOEQVxoEaU4ICLp/C
	bQtQxX3HvCGHid+hR6Pqu+DbFOPjTAJNZG3JcdmOP7UUpjz99s2aitvIBstUNNdgbxQZ996C/1R
	KU3KSakFyQuiI0uF/9o/PVLyMi2xuZqgZfLHg+KyXXg7Qu8AN1K1lp3WaVGTXHatwwgqITZaXKB
	R28qd6kLYe2D5R1Xv0jcTk/Ueex/njo/RBbAa1n3+YytPq+YYksuGjqsg33k3yyja3cvLHRnRrA
	Lcju33UGeDiPTV6gtwaiANTSuF4dw3ZYuHgQLRayTOGl2pioR91lG9v9zW+0CNkAhqL29NTKA3Z
	tAeWIJmoynzpCB0647PHAwmSou8rnudbG7wd9wvqu1soGZzn+WR8vSNaytsxMyLWqO
X-Google-Smtp-Source: AGHT+IGbP609jo4Jxn/0MtRsp0M++k9Ekz5xs7+FXeeKtYHY5i5iVePZfCjHa2VGFVa9GmrJ2nKoGg==
X-Received: by 2002:a17:907:9709:b0:b46:abad:430e with SMTP id a640c23a62f3a-b7331a972abmr636309666b.37.1763026509636;
        Thu, 13 Nov 2025 01:35:09 -0800 (PST)
Message-ID: <136416d6-ea2b-444d-b331-8aef1881ed91@suse.com>
Date: Thu, 13 Nov 2025 10:35:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 5/7] xen/x86: move declaration from mem_access.h to
 altp2m.h
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>, xen-devel@lists.xenproject.org
References: <20251113031630.1465599-1-Penny.Zheng@amd.com>
 <20251113031630.1465599-6-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251113031630.1465599-6-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 04:16, Penny Zheng wrote:
> Memory access and ALTP2M are two seperate features, and each could be
> controlled via VM_EVENT or ALTP2M. In order to avoid implicit declaration
> when ALTP2M=y and VM_EVENT=n on compiling hvm.o/altp2m.o, we move declaration
> of the following functions from <asm/mem_access.h> to <asm/altp2m.h>:
> - p2m_set_suppress_ve
> - p2m_set_suppress_ve_multi
> - p2m_get_suppress_ve
> Potential error on altp2m.c also breaks Misra Rule 8.4.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

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

This looks to be independent of all earlier changes, and hence could go in ahead
of any of them?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 09:49:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 09:49:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160831.1488875 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJTwm-0005lU-4R; Thu, 13 Nov 2025 09:48:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160831.1488875; Thu, 13 Nov 2025 09:48:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJTwm-0005lN-1z; Thu, 13 Nov 2025 09:48:56 +0000
Received: by outflank-mailman (input) for mailman id 1160831;
 Thu, 13 Nov 2025 09:48: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJTwk-0005lH-Ko
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 09:48:54 +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 f66d2ff1-c075-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 10:48:52 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b735487129fso63401466b.0
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 01: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
 a640c23a62f3a-b734fed80f0sm124507266b.66.2025.11.13.01.48.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 01: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: f66d2ff1-c075-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763027332; x=1763632132; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SK0JPbL+U5AOnhbtjDfulyIUpo+HnOPs20u2boZFh9A=;
        b=KRuitHp1YeD8Q1yyHfnnMId7i7gxYzJ780J2kjvnr96MbheMckHcHC0ODM7PAA8ypB
         AyRnRYujw0WTFVF5MdV2rHFoKw+FWa01foPQmI5DV5Os0Vy4wEef1TFelFbt++iSe8dK
         XWiTu9/TBeC1+1RU9TpD5vO7CQfgBs1vIRLsKyHlyd8NVk0m1XBU7Hcy7WTgvgOQXc+p
         GrcUs6VYYIfC9rnZLkG+Okudej5bk5dIYIVsOBuJOVWmm3oNOM0DNM8oMqwjnGc6u7bm
         QZcYx6dzi7fJAH+0mAj2cIRxgqT3JUMkUUAoJ+T86vSdy3eeso+z3SBbf1QQqG3h9BJI
         TJBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763027332; x=1763632132;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SK0JPbL+U5AOnhbtjDfulyIUpo+HnOPs20u2boZFh9A=;
        b=vrAhpGx43Zn9iWQMlqfsCuZEyn4Zwq7ZyqvBUBhZZU4xIYS8tKa+MNbY3/B2q2Q/de
         dNBiJ255k1Nc5poIX+QuX4mMeKjZBkSmMAY/cSYiddACag5GpjEoLAKC0tW5oWyrsrrg
         qrpe/5mvi4BVW4X3O1ySAwuRy7FLvKJdhzyy//3xApEvSNYz7zhNFj0R2YfkecIC1e1/
         8in4YbkVQz+3kTpDO0GpeCo49VTLU1ibvKzrolmTdEnrQ3yUzS8RZliq3+6qb7DmkQmT
         YcpNhhOVHk62qL739z1Qd7ngVQAQzmPLO3hIsjJkW8fyzx07va3/+gosyPSBz2QVGrY5
         fqeA==
X-Forwarded-Encrypted: i=1; AJvYcCXRjA+Xap+OuV1t8SLQaY9+uudT7nmmazmmU52GAtxWgrxpg3ifFpkU4eKViJIS8Jav7qYodS+Y6ds=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx9o8F1Vg+Z84Zp75hPBap+Swldp3PLls1BbXeu+7OZc/r+QOdz
	0MwpsOdC8yZQiTmqe08VaJDFBAlXbWhhTFuXsiEJSPYRLUfpVvSBU/IXXaOM6MeAfw==
X-Gm-Gg: ASbGncscIic8gQGm1wIc+rx86F+IfTK7F01KqQK4kj1mfzKFUTeSaWQtcz3YsYvsY0C
	Zr2GFRJKsYWb+nJUhQ5Etzub8Ct4I9fpVvgANQzmiJjOmk1TFZqV6WZSTEGr29p20oqM8x/4K+o
	MnqR6A8DJGCTULs4xrnzlDQN2qx9d4+PkGTzL+gvY3G8C8kSvaUxPbgVn81JxpRe3jZFZcuIqP6
	BqvIDXy7VW5rY3Z9xWBh5WEtSg0MdUl21J+XC3oX14GFbYMBJFxRg4u4mxf67m2dfJXBShFFsOS
	vHCu07jSms/Mhqx9Lygs8GcI7LFMhE15PzIO9tjKFUJ6WW6gEMhQG6ZMGxmezMPzK7DeZ97F0hR
	Tn0lsF6lq9U/KOtOxj2ezGmgmV5NsmZ8r1DHXRDICp/I/1rFVxGo3XSihPeGcnNPLYAU0tURTMP
	V4KcI1d48chQ58H4BFrKQOW9+EZJGt6ChFsUE0UcMk8fbnMZHkRWtJyn3BjMyn0TUf
X-Google-Smtp-Source: AGHT+IF+oY/iXXqDvmvaiS5+26d5qafl56HrbUWIOBEu6AJMU7vOtUM3htqMmteVbfHINRFrROFrNA==
X-Received: by 2002:a17:907:60cb:b0:b6d:5718:d43f with SMTP id a640c23a62f3a-b7331a69bb1mr619141966b.39.1763027332204;
        Thu, 13 Nov 2025 01:48:52 -0800 (PST)
Message-ID: <a4407571-5185-4203-a0a5-8cb7821055b2@suse.com>
Date: Thu, 13 Nov 2025 10:48:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 6/7] xen/mem_access: wrap memory access when VM_EVENT=n
To: Penny Zheng <Penny.Zheng@amd.com>, 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>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>, xen-devel@lists.xenproject.org
References: <20251113031630.1465599-1-Penny.Zheng@amd.com>
 <20251113031630.1465599-7-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251113031630.1465599-7-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 04:16, Penny Zheng wrote:
> Feature memory access is based on vm event subsystem, and it could be disabled
> in the future. So a few switch-blocks in do_altp2m_op() need
> IS_ENABLED(CONFIG_VM_EVENT) wrapping to pass compilation when ALTP2M=y and
> VM_EVENT=n(, hence MEM_ACCESS=n), like HVMOP_altp2m_set_mem_access, etc.
> Function p2m_mem_access_check() still needs stub when VM_EVENT=n to
> pass compilation.
> Although local variable "req_ptr" still remains NULL throughout its lifetime,
> with the change of NULL assignment, we will face runtime undefined error only
> when CONFIG_USBAN is on. So we strengthen the condition check via adding
> vm_event_is_enabled() for the special case.

As to this, didn't I ask for ...

> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -52,6 +52,7 @@
>  #include <asm/i387.h>
>  #include <asm/mc146818rtc.h>
>  #include <asm/mce.h>
> +#include <asm/mem_access.h>
>  #include <asm/monitor.h>
>  #include <asm/msr.h>
>  #include <asm/mtrr.h>
> @@ -2081,7 +2082,7 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
>  #endif
>      }
>  
> -    if ( req_ptr )
> +    if ( req_ptr && vm_event_is_enabled(curr) )
>      {
>          if ( monitor_traps(curr, sync, req_ptr) < 0 )
>              rc = 0;

... a comment next to the (now seemingly excessive) condition?

> @@ -4862,58 +4863,70 @@ static int do_altp2m_op(
>          break;
>  
>      case HVMOP_altp2m_set_mem_access:
> -        if ( a.u.mem_access.pad )
> -            rc = -EINVAL;
> -        else
> -            rc = p2m_set_mem_access(d, _gfn(a.u.mem_access.gfn), 1, 0, 0,
> -                                    a.u.mem_access.access,
> -                                    a.u.mem_access.view);
> +        if ( IS_ENABLED(CONFIG_VM_EVENT) )

Wouldn't this then better be vm_event_is_enabled()? Or can this (and the ones below)
be carried out ahead of enabling? Tamas?

In any event, here and even more so ...

> +        {
> +            if ( a.u.mem_access.pad )
> +                rc = -EINVAL;
> +            else
> +                rc = p2m_set_mem_access(d, _gfn(a.u.mem_access.gfn), 1, 0, 0,
> +                                        a.u.mem_access.access,
> +                                        a.u.mem_access.view);
> +        }
>          break;
>  
>      case HVMOP_altp2m_set_mem_access_multi:
> -        if ( a.u.set_mem_access_multi.pad ||
> -             a.u.set_mem_access_multi.opaque > a.u.set_mem_access_multi.nr )
> +        if ( IS_ENABLED(CONFIG_VM_EVENT) )

... here please avoid this heavy churn by using the inverted condition plus break;
In all cases you fiddle with rc also needs setting to a suitable error indicator,
e.g. -EOPNOTSUPP, I think.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 09:49:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 09:49:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160835.1488885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJTx4-00064F-Bo; Thu, 13 Nov 2025 09:49:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160835.1488885; Thu, 13 Nov 2025 09:49: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 1vJTx4-000648-93; Thu, 13 Nov 2025 09:49:14 +0000
Received: by outflank-mailman (input) for mailman id 1160835;
 Thu, 13 Nov 2025 09:49: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=MRe4=5V=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vJTx3-0005lH-9B
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 09:49:13 +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 019c6599-c076-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 10:49:11 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by GV2PR03MB9451.eurprd03.prod.outlook.com
 (2603:10a6:150:d8::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Thu, 13 Nov
 2025 09:49:02 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%7]) with mapi id 15.20.9298.015; Thu, 13 Nov 2025
 09:49:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 019c6599-c076-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NIG7sT0rvFh7m+1N6DRDwu3VfHezgQPZBaYS2Xo1q82PWKQtMdY59+QBWGmzcRKOsF835Sw/KQa7sfjYEJw7HW9v0rLh/0lv4FhFOeEk46QOwAZlv7HGCiyF9MnMtS88z7L5eUA779d9bR+AzJv62klN9jitok66hs0eyvJtz0fDBw/cnPGlwPlI+u+B/AFPmXNvuohsJowyRxwm6PjT7sl6fQUVoO+KRmCLaOoT0+9Vq3s29OH+DotL5kqeqYmJANvPPrcqnUNP1g8taf0RtmWnh20pS7KN8WgTIMzlcRfjyy0NvmJiRaYhYXnOoMQuP3Tt/1zQy6X1XGtIPO4wag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ocok5+6KyO2CnExoU/r9C98Mtul8NiQfKINon8RrYPk=;
 b=fnJv8BpAW6cZi8siTywnyxfFF6R1LDUtpUGXsvZK9SrW89U8qcC3aygRUW6ySLDx/+a10bRulf/Iyn/i/H+5PNgMFXyI572BPz1t/EQtfFx0rlxR+zdVD10PAvKs5KIFbbnq6fzUiKcINLAqhLBCExYNj1FTBMxg6xm0gi2EFBHs38wlnWNt67tV6ofWGzIHkkO7WJAys3PXZki+xxEyHuENhO1KPOq6VqB1wtdeI2ovz/P7qAPstol4yqIB1FdzHGlua/WKVbhRmaT1Bnrbp08U6Px0O42m1uWsJXkaivfl39InfyrFoT+iOG+l3CWLtfww47f85i3Pddk8GyqZCg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ocok5+6KyO2CnExoU/r9C98Mtul8NiQfKINon8RrYPk=;
 b=mZDmAZObPH/+gW1YeqwleI2T5rhLGnxEKUAq6JXeAFW+/BEmPVGFjBoSMDP0lEQCNbRE/xLFY0QQy7GiEx8UpfUlEgINpzP/swxY7IUy55F1RC6GMfK1tbgYavTN/w+D0Ao2wdhon/svGPqRytymvrSm2m/Mer0ymYnxA5tG3X9MqjgRrza9tk1rYS4QloXzhvme33Eyt6n2pLqjtBjQV51cDbj0HLr5Esz1HCZs3v+dLDIkaIY/jq2tn6GTIMoHT0JOHiledPLkvVgTlexSXGycKfRefMmStcMXRx+Orf/GfwTMa4J/Ff2IYqvgL7ZCTevPGHiXpZ+Ye6LirMX5pw==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Stefano Stabellini <stefano.stabellini@amd.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stewart
 Hildebrand <stewart.hildebrand@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v1 5/8] xen/pci: introduce has_vpci_bridge
Thread-Topic: [PATCH v1 5/8] xen/pci: introduce has_vpci_bridge
Thread-Index: AQHcLSkjUCcQVsMHP0qfA2BNpZwKybTl064AgArXagA=
Date: Thu, 13 Nov 2025 09:49:01 +0000
Message-ID: <b287a8ec-0f85-409c-b133-b709026028d2@epam.com>
References: <cover.1758618839.git.mykyta_poturai@epam.com>
 <acb8da959fac97fbec7bc086b921e31dd52d44f6.1758618839.git.mykyta_poturai@epam.com>
 <39458e03-31c1-4aa6-8b66-f6d72ec8bdd9@suse.com>
In-Reply-To: <39458e03-31c1-4aa6-8b66-f6d72ec8bdd9@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_|GV2PR03MB9451:EE_
x-ms-office365-filtering-correlation-id: 15b03532-afb0-447d-3d35-08de2299e027
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?UHcza3ZPM0VENjB2VEpOSktVS3hPOHkvbmZPSklmTGM2Y0JqVXA1cm5vbXB0?=
 =?utf-8?B?WTYzWUhqZ3NsMFJnN1htUFBBb2J6T0RyeVJsUzRPazZVMUJuZ1RKbWptbSt4?=
 =?utf-8?B?endtSVg4RitLTjZDUXJPWlJyV0FmQzB3MVV1bkZhalh3Q3lrSHpkSkp4Mkdw?=
 =?utf-8?B?MDNKV3ZDZVRsR0tTTjAveDNoUWl6QUlveTFBblhRYTdaWWNwSTFDOU0rVTFK?=
 =?utf-8?B?RThOdkdZZzY4YWk2R0ZuUFgyS2lmN2N0Ni9tMXNMNTNVblFTMlh6TE8zall6?=
 =?utf-8?B?dFF1QUpBWlZKTkh0Uldqc0FObU9vM2x0a20rUmIxVVNGOCtRZ05JdE1wWGlu?=
 =?utf-8?B?UExQRWNqRmtCYm1NNnBwbVdSN1MvejJUWUx3SThsazV2NXdnQnJRS05lbGZp?=
 =?utf-8?B?WlNTZTNYNUpxRWFqYXFrWi9CdHg3dXVpYnNmMEwrS1VpblNiUkljV0tldWxV?=
 =?utf-8?B?ek5GRnE5NTJsYmhIV0dFK3ZiZyt3K0gxQVFXSnVzSkliK25lOWtadG5nZWtW?=
 =?utf-8?B?N25hcUZQb2F5OW13WWpGZ0dxVkJOV3d1NEZyTC9HS1NaSGNjYTJheUhKY085?=
 =?utf-8?B?bzhHdFhhZ2VsOE1kckRQUnZWN1o0UTdGYzhpNDBVL05xVWM5RHBkVUg1MXNo?=
 =?utf-8?B?SklQKzhiUlAxOHZnU1N4REhmZUsrdDhRaU83YVJlV3JQUDMrMGJHSWt3ZEFq?=
 =?utf-8?B?VGVwek4rSHJvdmxjeWhCRWwyZ1pvQlJ6NEFEUU5jM01nUmdiRXZwWTFHaytv?=
 =?utf-8?B?VXlMMmJVUzZyaFljR0tEVFBvY0ZBZkJubnhncEVqTVVPdWhuZm9nQ04zM21T?=
 =?utf-8?B?eW5VTTJMbXc1TDdVKzUvdi9JbGlaakZKZ1JaWWlUdHVCWHFOTUREbmluTWUz?=
 =?utf-8?B?Mlc0Y0ZsUW9FNGhIUjVKUTFaQkovUUxoSzZLZjB0dUZwczFSUVdzVnY1SDhS?=
 =?utf-8?B?U2tlY2hJK3FNR1hKUkNWbkc0aGlQYk5JWnBVVDRmR0FVUmtRa1F2LytpQjQy?=
 =?utf-8?B?RUloNkMrMUFpUWRYSGRuWDFJZXo0dVppQTdiTmVBdVFvMlBiTXprSFcwSSt3?=
 =?utf-8?B?TWhvd2s3MGRJbUlWOU5BLzZWamFmV2ViUk1iS1Y3Rk04Wi9ZaitTc041a0Rn?=
 =?utf-8?B?TUpjQzhQUlUxcFpaTE52c0hYaVV6SXpDa2Vsdm5tTGNZbHJwekF6NmhNNVNL?=
 =?utf-8?B?aVNMNVIrWmpyZmErSlBNZWJRL2picitjZUwxL292STU1OEdVcmRQN2wzSnlD?=
 =?utf-8?B?U2k5eGJJd24ybG56bWs4TWhhcHo0QjBJMWlsdUE2WlNSWEQwSWMrbUxrcno4?=
 =?utf-8?B?VnhZVmR6VDBTUDRKM2Z1ZExiMlFQVVhUMzQyL1ZlSm9XaFZCYmJ6YnZLRkJw?=
 =?utf-8?B?MEpqU3kwdDdHTGFyRzh5RnJUREVvaDNLMGhRV1FkQ284K043emdLdnJ0UlFE?=
 =?utf-8?B?RUNZMjEzMGQ4MWp6SjZqN0xhS0Z4UEY4dXc2YWdxNWlLaTMvSDMxZWUveGMy?=
 =?utf-8?B?TkJRczgrWVIyRXNYYjVFYVMxaHE0TVFIUjR2WGNkMGtIREhLRlBFdjBEa1Fy?=
 =?utf-8?B?V1hTSnY4NmxEUVMrK0tvNXcrU0txK29POUVTTUxaanVzVVhhdjAwMlZXdUdQ?=
 =?utf-8?B?Y1hLYTBpTXp4WHMvYmpOMFZLem9PM2hwYVhwQ0hwU3hHSi95MWdZOXBFYXF6?=
 =?utf-8?B?WUs3U0RBbUxsejJJUEd6ZE82ZXF6aXJpdWNvWUlscmo3OEdNSEVoMldIblZs?=
 =?utf-8?B?WkRtU1BiNFhudGxta0ROLzFwUlBxNkZlVnZ3MDNqTmhoVDZ3UGJncDIzVWRz?=
 =?utf-8?B?UVhBZlFDZ2VqOEVDR1dDd25zcFRXV1NmTWlSQkRUTVZWdWFlZ3VvVWpWTmVl?=
 =?utf-8?B?VmpMS3dxVXI1emwxVmhFazlTOHlIU0I5UGlBTitnazBEZTA2bGwrd2dpYnNU?=
 =?utf-8?B?RmhFYSt2enExRERkcGdLb2pRL1FUYXNIM25udWttcS83VXp4UEY0ZmRNcDEy?=
 =?utf-8?B?bVdoUVlsTzlhbzV5dlg4YXpud2luMFdLZ3dRRmVvOWpOb1JaV1N4WEJUbUp0?=
 =?utf-8?Q?+twr48?=
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:
 =?utf-8?B?aFh6M1lNSk5hR3ZTU1ZuQkQ5UjkzQkxwTTA2L1dUSkJuZ2haUW9PUjlRbTY0?=
 =?utf-8?B?ZVEwSnEyMkQzdVc5bDM5OTYxN3FSVjZQekY5ZE01ZnZxcUcxVUZHbU91QW1P?=
 =?utf-8?B?Q0N6V2ZHeVhGd01nREZHWUQ4aktPOUFVbVZjS3kwZllyQWc0SUdzTzg5c291?=
 =?utf-8?B?UnJ6Q042Y3FtcXBOMVF6RDYxVlY0bkY4ZmdXemFmZ1NPOU5ma0FneGVTazIy?=
 =?utf-8?B?ekJHYzI3SVVRemluZldYZGxCWjloOW9QYm5yTXRQT1VKZnNURG4xVzh5WC9l?=
 =?utf-8?B?YVUzaDVoSEgxNGtHa3NRUk1ycElJcFRzTFFsN1Nxb2pYS2czdGxVSVh3aElQ?=
 =?utf-8?B?R3NyMG1DZkhrR1k1VWRlVFZiYVBCRUo2RUpZOGJPR0ZBdHdUQ203b1VKdHdO?=
 =?utf-8?B?c0hPRW1EVEZ1WTlVTEVNYkNHcGlZbU5NUC8rYkhvMDZnQ3BrNVZuM2NsMzJ5?=
 =?utf-8?B?UVZ3RGFxVW9CNEUrVi9nelZudmpVOFJkL2pHbEJpZ2VBZnZWQVZ1cDg3T3Vr?=
 =?utf-8?B?ODZLUFhhcFk2bmtBdGlMVS9Tb09NUFl0bjI1TklJeHA2MHdBVFpWVkdNT2M2?=
 =?utf-8?B?SkdkWk43S3ZUVE9ubkt2dGNXVEhZNHFodVVTUmlpbW5BR2F0NWdTcGtPQjhw?=
 =?utf-8?B?ZTRLd2RvekpzaGM1UzZhU3lVMmg2UEpjeEJ5VGZSR092VnVLT1Uvak42UnFC?=
 =?utf-8?B?WkJwczhDQi9leS9YbUxOelM3OXVQWG14YVlZNnFlb1BZUGdWdHBadjl4Mkls?=
 =?utf-8?B?Q0lGV2tYQk0vbXZmMGtIRVR0ek5RSU9ORGQzRkRSc2NUUytIcDVIUTZQcndD?=
 =?utf-8?B?MXNadFdYNDJnQWZva2h1blZKVHA3a3ZiMndjOERZSkhzMk0rbnZpd05vUHg5?=
 =?utf-8?B?cmtrNjVuZDJvUWYvWE9NVmFhTUlvSlNZWXZCd0ZTOWtWU2ZWekt6MzRPWjZC?=
 =?utf-8?B?WGlaL0VaNzR0bkFWV0IzSjlldWdsVmNGT1kvUTJBWWgrVGxFb2ppZWM4WmM2?=
 =?utf-8?B?dDJOekRRd25tRDlZTlduYm9xL1FpRHl5M29LRWRUTEtJK0YrQWhmNWxiNkFl?=
 =?utf-8?B?aTZlOEtoZVlMVWE3ZmV2MUkrTCtTMno3T0FWbmp3bldRMDdMeklzSzBBWlZZ?=
 =?utf-8?B?Skkycm1mVXU1U2dwQ2RLKzN1YWI1TzRGWUo2TXFDZi84WHF6NXU3Mjk4eWVo?=
 =?utf-8?B?RlNxbS9zOXJrRzdHamM4REp5QlhvSUIxK25kNndWTURJSWFuUEdGN21jOWoy?=
 =?utf-8?B?UVprSzF5elBhK2ljZE9weElEb2RVZFYzRHlZaFNyNEkwY2xGN2JqdHpIZlBr?=
 =?utf-8?B?ckdHVlVTKzB0Q0RjUFV1amhyRVBxUi9WZ2hBeFE2SnA2VnVJNXlma1RkckM0?=
 =?utf-8?B?dWVBeWxZK1diYk1zSk1sdVMzL3F3SnVpQVJGMWlFVGRNODJpS1BRTENXOHJ3?=
 =?utf-8?B?N0Zudm9iNDMzYnBQd0Q0Sm1lOEF1VWVyWkl2UVJ4L0JwVlg1UW9CQmhrNkxE?=
 =?utf-8?B?YndrYXVVMzBZNHhUNDBnd2c0THZ2V0wyTEdsUHkrd2liaUxnRFR1eDlhck91?=
 =?utf-8?B?VjFIQlJkTUV5L0dldXRnZmpTNVZuWjBsUnU5elNJQTlPTURiN0pOVmhIdkpH?=
 =?utf-8?B?MnUzQlBucTNwRVNCWitNbGNJMFN4bnZFT2xWMUdlWFFCY0FEQlkyTjZEMEx2?=
 =?utf-8?B?Ky9JcXBrdlhFallKQjZyd1lJRFFkWlBQaUdlMzRpM1hlalU3cElBUElWQTJC?=
 =?utf-8?B?TUdIWG0yZ3RlQVJrbDVSazBjMnZDeXVPUTd4UDJOMU1ReXdzRklBM1VnWm1z?=
 =?utf-8?B?eVB1RjJVZW5iY01aRHNuQXdWWkRReE1DNnNoTG1yaDMyS2ZTcmxuOWVsc2xO?=
 =?utf-8?B?NzBhVWR6RUltWDZFUGZQbSttQ3NmVkhGdUtScGx2WmJraWh0ZW5xbjY2bVRu?=
 =?utf-8?B?cXE1TjNpQjhuRU9uZUVmQjdTeXZNYlNsUjNVcTRGaEZOMVZWK0V4MW9tMG1D?=
 =?utf-8?B?NUdNU2d1aDI2WEV5R3pXbDJ0bWZ4M1QwMHZyNGI4eEVEMW9mN05Na0Z1QWJk?=
 =?utf-8?B?Tkh0MjJDcHQxTEdDTnZyT3pvV1dFQUVud2d5emd4ZmVxODZrZ05PZmlMQ0Fz?=
 =?utf-8?B?VktseWhkd0FEQk41cWdlUHhET0lXaHlwclExV3B6eVV1TE5YREV6UEtkdmln?=
 =?utf-8?B?eGc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <0AFD8119D7508A4EBD7B329CDC4059E7@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: 15b03532-afb0-447d-3d35-08de2299e027
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Nov 2025 09:49:01.8377
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: UtRz3UNKhT5AoQtdK0Wxsxbqi7nwm5k4rpT8FiKC5yJxNW8x551Xd2SQBWDhU7C74XQXJn6Q77nVkTmLIECztw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR03MB9451

T24gMDYuMTEuMjUgMTQ6MTUsIEphbiBCZXVsaWNoIHdyb3RlOj4gT24gMjQuMDkuMjAyNSAwOTo1
OSwgTXlreXRhIA0KUG90dXJhaSB3cm90ZToNCiA+PiBGcm9tOiBTdGVmYW5vIFN0YWJlbGxpbmkg
PHN0ZWZhbm8uc3RhYmVsbGluaUBhbWQuY29tPg0KID4+DQogPj4gaGFzX3ZwY2lfYnJpZGdlIGlz
IGEgbWFjcm8gdG8gY2hlY2sgaWYgdGhlIGRvbWFpbiBpcyBhIGRvbVUgb3IgaXMgZG9tMA0KID4+
IHdpdGggdlBDSSAocGNpLXNjYW49eWVzKSBlbmFibGVkLg0KID4NCiA+IEhtbS4gV2h5IHdvdWxk
IERvbVUtcywgbm93IGFuZCBmb3JldmVyLCBub3QgaGF2ZSAodmlydHVhbCkgYnJpZGdlcz8gDQpX
YXNuJ3QgdGhlbQ0KID4gZ2FpbmluZyAodmlydHVhbCkgYnJpZGdlcyBhY3R1YWxseSB0aGUgbG9u
Z2VyLXRlcm0gcGxhbj8NCiA+DQoNClNlZW1zIGxpa2UgdGhlcmUgaXMgYSBtaXN1bmRlcnN0YW5k
aW5nIGhlcmUuIEluZGVlZCBpdCBpcyB0aGUgcGxhbiBmb3IgDQpEb21VcyB0byBoYXZlIHZpcnR1
YWwgYnJpZGdlcyBhbmQgdGhpcyBjaGVjayBpcyBkZXNpZ25lZCB0byANCmRpZmZlcmVudGlhdGUg
dHdvIGNhdGVnb3JpZXMgb2YgZG9tYWlucy4NCjEuIEFsbCBEb21VcyArIERvbTAgd2l0aCB0aGUg
dmlydHVhbCBicmlkZ2UuDQoyLiBEb20wIHdpdGggSFcgYnJpZGdlLg0KDQpJIHdpbGwgdHJ5IHRv
IHJlcGhyYXNlIHRoZSBjb21taXQgbWVzc2FnZSB0byBiZSBtb3JlIGNsZWFyLg0KDQogPj4gQEAg
LTg2Niw3ICs4NjYsNyBAQCBpbnQgdnBjaV9pbml0X2hlYWRlcihzdHJ1Y3QgcGNpX2RldiAqcGRl
dikNCiA+PiAgICAgICBzdHJ1Y3QgdnBjaV9oZWFkZXIgKmhlYWRlciA9ICZwZGV2LT52cGNpLT5o
ZWFkZXI7DQogPj4gICAgICAgc3RydWN0IHZwY2lfYmFyICpiYXJzID0gaGVhZGVyLT5iYXJzOw0K
ID4+ICAgICAgIGludCByYzsNCiA+PiAtICAgIGJvb2wgaXNfaHdkb20gPSBpc19oYXJkd2FyZV9k
b21haW4ocGRldi0+ZG9tYWluKTsNCiA+PiArICAgIGJvb2wgaXNfaHdkb20gPSAhaGFzX3ZwY2lf
YnJpZGdlKHBkZXYtPmRvbWFpbik7DQogPj4NCiA+PiAgICAgICBBU1NFUlQocndfaXNfd3JpdGVf
bG9ja2VkKCZwZGV2LT5kb21haW4tPnBjaV9sb2NrKSk7DQogPg0KID4gRm9yIG5vbmUgb2YgdGhl
IGNoYW5nZXMgKGFsc28gZnVydGhlciBvbmVzKSBpdCBpcyBjbGVhciAodG8gbWUpIHdoeSB0aGUN
CiA+IHN1YnN0aXR1dGlvbiBpcyAobG9naWNhbGx5KSBjb3JyZWN0LiBGb3IgdGhpcyBsYXN0IGlu
c3RhbmNlIHRoZSB2YXJpYWJsZQ0KID4gbmFtZSBhbHNvIGVuZHMgdXAgd3JvbmcgYWZ0ZXIgdGhl
IHJlcGxhY2VtZW50Lg0KID4+IEphbg0KDQpUaGUgZ2VuZXJhbCBsb2dpYyBmb3IgdGhpcyBjaGFu
Z2UgaXMgdGhhdCBiZWZvcmUgaXQgd2UgYXNzdW1lZCB0aGF0IA0KaHdkb20gYWx3YXlzIHVzZXMg
SFcgYnJpZGdlLiBOb3cgaXQgaXMgbm90IGFsd2F5cyB0cnVlIGFuZCBod2RvbSBjYW4gDQphbHNv
IHVzZSBhIHZpcnR1YWwgYnJpZGdlLCBzbyBpdCBuZWVkcyB0byBiZSB0cmVhdGVkIHRoZSBzYW1l
IHdheSBhcyANCkRvbVVzIGFyZS4NCg0KWW91IGFsc28gbWVudGlvbmVkIG9uIGEgcHJldmlvdXMg
c2VyaWVzDQoNCiA+IEhlcmUgYW5kIHBlcmhhcHMgZXZlcnl3aGVyZSBlbHNlIEkgd29uZGVyOiBJ
cyB0aGlzIHJlYWxseSBhbiANCmFwcHJvcHJpYXRlbHkNCiA+IG5hbWVkIHByZWRpY2F0ZSBmb3Ig
dGhlIHB1cnBvc2UgLyBjb250ZXh0Pw0KDQpNYXliZSB5b3UgaGF2ZSBzb21lIGlkZWFzIG9mIGEg
YmV0dGVyIG5hbWU/IEZyb20gd2hhdCBJIGNhbWUgdXAgd2l0aCANCnRoaXMgc2VlbXMgbGlrZSB0
aGUgYmVzdCBvbmUuDQoNCi0tIA0KTXlreXRh


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 09:53:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 09:53:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160854.1488896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJU1U-00089m-Sc; Thu, 13 Nov 2025 09:53:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160854.1488896; Thu, 13 Nov 2025 09:53:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJU1U-00089f-PR; Thu, 13 Nov 2025 09:53:48 +0000
Received: by outflank-mailman (input) for mailman id 1160854;
 Thu, 13 Nov 2025 09:53: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=xbc0=5V=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJU1T-00089Z-G7
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 09:53:47 +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 a2e9bfe8-c076-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 10:53:42 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by DU0PR03MB8855.eurprd03.prod.outlook.com (2603:10a6:10:40d::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Thu, 13 Nov
 2025 09:53:39 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 09:53: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: a2e9bfe8-c076-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=r6vcwsUic/P2OFZnXwlL+EcFJqWIKqCt4Zw/qQxgr8+Oz9Ogkziz5D4SXP6uB/pJmv3s17XfJ5jf7x/6BTrhpU13MtUdPn+jqK7+00mGlgtZDluNRsMpUhUBrOktbDto3mJKVNmmhntuPCNIPf0eBKbB6aXSUnE2pLwfhhmQXLGRlUFBKbFnXzs6thVQlzJqk7sLgsumrTqDGuYWa1rAHhoPMhtvBG3s/4ybCW9wGJRqlc6iJ5E7hlEwJKcL0yfaH+Qt5N6r+WS7SIhiK1vvZy251RVLooCCw4jCBvLNhfHQ5wfvS/bwFUEdz0WMgJ0J6eWcTcduMQklpXpGOnGX5w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FUsUl6w46Bh78hBSMK/B+3FKBrMR0h9jVX2u5E/VfiA=;
 b=TjwOMxh5RpC6EjxQNG+YtTLMSixU2ceHXC65104Hm8+dbWLDmYxbu+mTsU5ZRK1FgAAXcFaxm9jZ4nho/81tlKIg7EbEpdglefRS6sjnjRdaxTHvSJSnSPF/tM2EBpj0IsursQulWfDSHVqzx0Y60MSNr/3Is+t308hi/N9X7eb8Fx8KjBBcHSHb76u04g0R6S+s9Pot7Xd382weY3NN/pnDkACQ+CWfzWigkzCWxenn6nkmYbJ4yE9VZs2xRdZn1uDEdVgiNhjeZMZqhcpD/M06TwPHKEA+ZhNLi+xJ426RFJQLDGk9eV5CpwlE/+354bHn0DdJJ6QFO+GHkrKC1g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=FUsUl6w46Bh78hBSMK/B+3FKBrMR0h9jVX2u5E/VfiA=;
 b=E6CbtvJoL8KchmttC2Z6lYlriNprHwl3XvH+zK5ZjQ2XUSRYsICB+58UFjJJBSTjB7JGWGc2a+WGQE3fZ4Tpmz+1ubzQU/TzB+/hXUx9zbHrPum7pHIAP9vP5ApAHVPZNbl4QS9E+GAGHgbaOvVsG+4W5ntslSyHrUd9SpAPsT2tbcDkv84sx+y2UZWCpzzGMKlAkvQcmUcWfBreFxyVCnpQUH0Am+zGvogGX4QNrII/xUhcIFAzDzxhXOdNiILegnhNV57o1tirFjSKhtphcQaryDtSVQ8cfHL2bqfhw+5gJr9/4O+SfLNrFltYsVgv3My2+OwUapg7N3LRr6W4rA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <9f6a14f8-3290-47bb-9c35-5e9e06285720@epam.com>
Date: Thu, 13 Nov 2025 11:53:38 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] x86/hvm: revise "cpu_has_vmx" usage for
 !CONFIG_INTEL_VMX case
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>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250924101417.229108-1-grygorii_strashko@epam.com>
 <7b2fe09a-02f4-4575-9e42-1328f3a40f1d@epam.com>
 <cc64ffb5-4419-458b-9526-fa765eda7bd6@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <cc64ffb5-4419-458b-9526-fa765eda7bd6@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA0P291CA0012.POLP291.PROD.OUTLOOK.COM (2603:10a6:1d0:1::7)
 To AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|DU0PR03MB8855:EE_
X-MS-Office365-Filtering-Correlation-Id: 228bf51d-54af-490e-6641-08de229a85b9
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?STBiNUxqS2ZvdE1OSkQzU3Q3T21HTDYvWWdxTGZDSHRCZWp5TkdZUmJFWTN3?=
 =?utf-8?B?NE1IcVlIOG9zNTE1VCtSd1R5WGRBQS9yVVBVZ3Z0M1Y2TzhLL3FFSFRFNGFh?=
 =?utf-8?B?c0hzbUJmMzJaUkRXY0ZTeG9GOC9mdTBEVE5yNGZZbW1HTkR4WllLdG41RG0y?=
 =?utf-8?B?YXNOWHBseUFCTnVGSGxqZWZrUERQazgweUJYVWZSd1FRaGNNVTM0ZWFCZmp3?=
 =?utf-8?B?TFcyL2YzSHNWa21ZaXBXaktLL00vR3E5dGFGZU5hSlVYWTZ2NnpLMG1oWHJo?=
 =?utf-8?B?Rm1nZHF4WnNVNnh0WWplTXc4VHByU0ptSEdETGlZdUhCalFVdW5TdVN5VFZX?=
 =?utf-8?B?KzVUK2lXL3lFT2xYbDhXWnJpeWI1REdMTDZZMXBhUElWZGdRdCsveG9MOTAw?=
 =?utf-8?B?NGVLRjlXKzJ2eWJSNkJjbnVxS2JHRCtrTCtPaGVRTE1JNFFIcFF2Z0FkOGhr?=
 =?utf-8?B?bzkwMEtkODZ5anh0aWRKRk00NnBOVHpINks1K2pWaGdoSm1YS3hOMGJNTGJQ?=
 =?utf-8?B?djUzcFZETVVpaWt4Und3Wk52TGExcHZXK25ISGlBQ09qa1RwWXBtamxHMUpp?=
 =?utf-8?B?QmljU0I0cFlhRXErbmhIaE5rZEhqVnJOeWp6K1p4SUtKZG85LytrSFc4OG93?=
 =?utf-8?B?MUlSYnh1N1FEVmx2MzZjaW53eVRmSmo2b2lsM2tSMlpQVUsrYWZTdmNMZWFD?=
 =?utf-8?B?NjJVOVVwcnJBT2pWeGtSR29sRUFjOHFUa1cvdHFoYXZXK0d5eXZuS1Y5eGJF?=
 =?utf-8?B?MHgwZ2pmR2xHZUlsOStXT1htK1FPMmhtMW1mM1laMUIwVnE4TWVXOWhNR2NI?=
 =?utf-8?B?bHp6cnByL0tzWFFzSGxFbXVtcFVudXVyaTdQSGdONklGZ3NpKzNTVUphWUg4?=
 =?utf-8?B?STZKMGFWS2hlS0UzUEdHQXdxS2w1T25MM1JjMEw4Qmtaa2k1dXB6N2lEWmtz?=
 =?utf-8?B?ajc5b3RWQVdMOGFNSzBiMWU2SzIwNUVNSGJnVWc5dG5aTnhwcEJhZEZWazZ0?=
 =?utf-8?B?ZnJJbWJGTEthRGRqOUw4R0luczk4aDgwalY1VUxQL3B3MzVSSHc3dC9IdmlK?=
 =?utf-8?B?V2VxdFF6VWZtZlVvOVVKakxpU2xDSUF4ZHdVc1B3dUVvOGZRTFFJcXkyNHh3?=
 =?utf-8?B?K2xrWk4xRVE5Y3hkWlJ6Uk1rTXJQNUMya2NZVEhTVVZLSjlnYUVMRXFBYkdM?=
 =?utf-8?B?N29Rdzl4UUhhejR5TFhRaitQVUtjVzVyNTdWbzRvSXIrT0FoNi9NNVFZdmRm?=
 =?utf-8?B?U1lUNXpZMGdhVDJ2bkJ5RE9QT1hLUnllZjdrRmgwYk9uVStsbmtSVHpwbWlF?=
 =?utf-8?B?K25DYXI4T1RQbnVIWVdYRDVEVG5nYlhrSEQyMXV2dkxBcCtYT1Nwc1pjWDZF?=
 =?utf-8?B?TGhzY3ZFWG85ekVOamZPWWxSTFdTK1FlSmxUWFRyOEdlSVV0VWlBaGNnTExL?=
 =?utf-8?B?US9oeXRoRVNCbFFpUWR2K1pBS2RPUDhxNmxvaW5pancxVENHNzVxNGE5SXpj?=
 =?utf-8?B?NlM1WUo4R1Z6U3ZJRngrd0sxT1ljVk1NZVVrM3had3FUN1ZXcUxUQnNjS1hY?=
 =?utf-8?B?alI2c2ptT214c0JDdmJsbmxralhOcnVwVlM5MzJ2ZmRQTmJ4MFdzQk9IQ0NL?=
 =?utf-8?B?RU15S29wUmtUalFpdjNIdzZoajVzcXFvcFhtQ3Q4UkpRMmc3aGpuR3B0dktN?=
 =?utf-8?B?OVZoUS9uVUQxcnJ1anhTT3hDYjJNcG5xYXB6WDBVZnFRUitCb0t4djJHREE1?=
 =?utf-8?B?V1RHRkZOdEI3TTFhb1NqSGlxeUNGbktCdE5Na1gzVHRuRjh4UTI1U1BoVFNV?=
 =?utf-8?B?UzljMStGVGxuWHFiZ2lKc0c5Z0hBYVJnSndkUjlqN01OWWppVTFDWVF5VnFu?=
 =?utf-8?B?UzBHWFZXenFXREdIaUIrNEFDVDBIeG5QU2lXWlZpTHJneUNpOGMybzVUOGlh?=
 =?utf-8?Q?fx9LHYfyKfnC+lx1PNaZ8SI3MOuhoFy7?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aWh4VThwVlRhSWVuNU44NWNYcjBsb205RU1RUTNYMDF5MUNEQkppREc3RnUy?=
 =?utf-8?B?OGRKODkvTEhVUmVCcGt1Ync3OCtrZndYdWdtdmlqdTVsWTdVRC9lRDlZYTFw?=
 =?utf-8?B?T0VyTWtiVFNPd2czVTExTEltZnRTNmRQRVQzMmFGSUJyZUxocVNGSmYwTEtm?=
 =?utf-8?B?SnczVWdvK0N5MmxJYm1BTjRUQTl4eXN3Umg4dlhFbU1nYlBBN0Q4K0ZveWJn?=
 =?utf-8?B?MU0vUmo5ekdWSk1NVlZ6RW5NT2k4ZHFzd2ZTa1BZYXdsbjBnK0RodXFXV0Z4?=
 =?utf-8?B?UXY5UGFtWDJ5YkFxUTNnUFZiTTE5V1BoT0dXT2MxaG1YbHMyY2FtSnR6azVp?=
 =?utf-8?B?T3c5RE0vTGRoUHdXcnk1WExmckc4RkFnOEJTb0JtUnRxV2VJSThWU2ZjSjRi?=
 =?utf-8?B?ak95QUQ5c0ROZ0pCMjk1TmVvSFJORXlVbFdvSEZDbHVBdGRKanhxVnBRUDEr?=
 =?utf-8?B?ZnVNSkJKdVc4ZjV3ZkwxSHdmdm16dTZTbzdlSE1UK2M2L0h0d3V0ZjF0ZjJN?=
 =?utf-8?B?QUZ4QVg2U1BkSFFZN2tCTDl2VE45WElabGJVaWlCUWdKZnhLUktFQ240ekRj?=
 =?utf-8?B?MnFBdytXYzM1OXhTaHdSTDkrcXdhZkFDbEZ6bWs0R2lubVpEODRnYUZRRGxP?=
 =?utf-8?B?ekhNaDFWTUMxVHpzU0VMZkc5N2I5NTkxTy9pcWIzWGpWelJVeDFIamhLbUhi?=
 =?utf-8?B?WWNVVXc4MG9VS2VOclNpUGhtRFpXQkVPWk5aaXJCTG11TTExcHFRQnFqZWZI?=
 =?utf-8?B?b0JXUUg4bG9laW9JaWhVTEtZazh2TEdkR3AvSzAwYnNPNUZlanlRaDAvZFhs?=
 =?utf-8?B?R2ZnaUg3emxUMDJoU2RIZXQrYnlEMTRRcTNycjlaRGQwQUMxUE0ydkxVU2U2?=
 =?utf-8?B?WHV6d21FRE5LOVNVZWhBRFZ5TWhKQ3NqcVgxck13cWVyVG1lbVQvei8xdjdl?=
 =?utf-8?B?M3J0ZFFGUFBWVUVsMUp5S21VUEE4T0xFMzZHMURPK2lQL1lKeUdRb0FmME01?=
 =?utf-8?B?UHdxbTBKZEt5bVp1OUhNOVFxK3ZiZjB0N28xb3dwelNCTmZOajh1ejBxLytk?=
 =?utf-8?B?TU43NFRtK2VDZmx2bVdyQWhIU1RrUnBncThJSyt6bUxRUGFiSDVQcGhlalBY?=
 =?utf-8?B?RkI0dVE5N0RjUE02MTMzNTJHUmd6amtYWVR2eFYzRFJZeVlhWUVOQlNXa2VN?=
 =?utf-8?B?ZnMzTGZ2WC85c2VjcGZWUEFOL0pqNVZlLzFzTGxmeGI4VlIxZW5sY1RXcVhu?=
 =?utf-8?B?UVQxRmpib3JGdGhGSTI1MWlKZnRCZUhVekRpVzU4U0tOR2IxY1F2SVBMTWR6?=
 =?utf-8?B?R1dZbUNNemJodE5SRExmaWxGZmZZUHY0S08vQ05JcW5tQTJ1Um9rRFR5WmdG?=
 =?utf-8?B?OTU5M0YzcDV4WENVci9VaEV1NWY1Z2lSemVna3AxNi9xOHNUNHJreUlsRnB1?=
 =?utf-8?B?bDQvQTVQNDAxd09KMWNYVkhTMXJVaFJhenBPVWpnQVlYaDhqUGdrZzNsdzVz?=
 =?utf-8?B?dkxhd2tUdEhYZUNhU0J0R01wQ1pKQjdXUWxkZ0EwMFllaHZ3YkdzSzVnT29m?=
 =?utf-8?B?bXdsSGNvbTlWVzlOTklDSkJ1dGhNYWRRT1ViUCtkVnJ2cTB6bjljOEp3Rlo4?=
 =?utf-8?B?TjRtRlJwU0g0cE5ORmpubnZLVVRveGc3azI3WW82Nkt2RitkdmxQUW9hVFdh?=
 =?utf-8?B?dXVzWStJMmdlQWNGRm5UcDRrQ2dFMTdseHVrYlNleDJjbTZ6U2lieE85bmNG?=
 =?utf-8?B?d3dxd0dXbVo4OUoxa09mcjVzR3dJVTFNTnQ0L3JsOW5sTkh5MHR5V3hZZmRP?=
 =?utf-8?B?RTUyNjZTVWRqVTgxUTh3SzJpZTJEV0tkRzhEQTNPeGg5U2k2T1IxdVc4K0M1?=
 =?utf-8?B?cDBnOHNyUTBnYjRZSktxUGYzYnJaeFNPTW9hNDRQSzM0TWxJZTBmd05GOXFR?=
 =?utf-8?B?Q2I2dWwwZ3ZHN1ppTGRyMVJCckkwVmVkcEVDaVE2SDV4aFNTOUZVVjRQTDBW?=
 =?utf-8?B?eGJmbnBQSCs0TlpUS0lnUEtMTW1WUEJrdERmRGRUSUxNOGZIUmEyUlY2bUJP?=
 =?utf-8?B?Z09XdTRTR2J2Z3pEU0RUMytneFhkSGJWWDErcDdMczhjeC8wMVY4dW5hSE8z?=
 =?utf-8?B?eTV5TW12N20xMXE3bWpLbjlHdExLaUsvZkhLVlkvUGZ1T25OTFlMS1NDc0x3?=
 =?utf-8?B?dVE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 228bf51d-54af-490e-6641-08de229a85b9
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 09:53:39.8536
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UHOTxJQRWCaf64pkZaNKwDUkVIGXqxkrwRWn4zNa0Ix0Wpju0/4PaHuk2apmHRtyMuedsvkpPRikAGuEyoJLOm4qRGfH0OfP/bQA1wQby6g=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8855

Hi Jan,

On 13.11.25 09:31, Jan Beulich wrote:
> On 12.11.2025 21:25, Grygorii Strashko wrote:
>> Could it be merged if no other comments, please?
> 
> It's on my list of things to put in. However, since you ask: You do realize that
> all your recent postings were while the tree was frozen? That's okay-ish, but
> when preparing a release people would preferably focus on the release, not on
> what is to come afterwards. This change of yours, like quite a few from others,
> will need to wait until the tree is fully open again. It having been progressed
> to the point where it can in principle go in was already a courtesy, considering
> the timing.
> 

I'm very sorry for disturbing you and being annoying in this regards.

> 
>> On 24.09.25 13:14, Grygorii Strashko wrote:
>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>
>>> Since commit b99227347230 ("x86: Fix AMD_SVM and INTEL_VMX dependency") the
>>> HVM Intel VT-x support can be disabled, but it still keeps VMX
>>> code partially built-in. Particularly in HVM code there are two places:
>>>
>>> 1) hvm/dom0_build.c
>>>    dom0_construct_pvh()->pvh_populate_p2m()
>>>       ...
>>>       if ( cpu_has_vmx && paging_mode_hap(d) && !vmx_unrestricted_guest(v) )
>>>       {
>>>           ...
>>>           [unreachable for !cpu_has_vmx case]
>>>           rc = pvh_setup_vmx_realmode_helpers(d);
>>>
>>> pvh_setup_vmx_realmode_helpers() allocates memory and configures
>>>    HVM_PARAM_VM86_TSS_SIZED
>>>    HVM_PARAM_IDENT_PT
>>>
>>> 2) hvm/hvm.c
>>>    hvm_set_param()
>>>       ...
>>>       case HVM_PARAM_IDENT_PT:
>>>
>>>           if ( !paging_mode_hap(d) || !cpu_has_vmx )
>>>           {
>>>               d->arch.hvm.params[index] = value;
>>>               break;
>>>           }
>>>           [unreachable for !cpu_has_vmx case]
>>>           ...
>>>
>>> Hence HVM_PARAM_IDENT_PT/HVM_PARAM_VM86_TSS_SIZED are used only by VMX code
>>> above code become unreachable in !cpu_has_vmx case and can be optimazed
>>> when !CONFIG_INTEL_VMX.
>>>
>>> Replace "cpu_has_vmx" with using_vmx() to account !CONFIG_INTEL_VMX and allow
>>> compiler DCE to optimize code.
>>>
>>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>> ---
>>> add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-604 (-604)
>>> Function                                     old     new   delta
>>> hvm_set_param                               1602    1473    -129
>>> dom0_construct_pvh                          4438    3963    -475
>>> Total: Before=3567191, After=3566587, chg -0.02%
>>>
>>>    xen/arch/x86/hvm/dom0_build.c | 2 +-
>>>    xen/arch/x86/hvm/hvm.c        | 2 +-
>>>    2 files changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
>>> index 5551f9044836..5ac2cf8394d8 100644
>>> --- a/xen/arch/x86/hvm/dom0_build.c
>>> +++ b/xen/arch/x86/hvm/dom0_build.c
>>> @@ -473,7 +473,7 @@ static int __init pvh_populate_p2m(struct domain *d)
>>>            }
>>>        }
>>>    
>>> -    if ( cpu_has_vmx && paging_mode_hap(d) && !vmx_unrestricted_guest(v) )
>>> +    if ( using_vmx() && paging_mode_hap(d) && !vmx_unrestricted_guest(v) )
>>>        {
>>>            /*
>>>             * Since Dom0 cannot be migrated, we will only setup the
>>> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
>>> index 95a80369b9b8..70331aeec9a0 100644
>>> --- a/xen/arch/x86/hvm/hvm.c
>>> +++ b/xen/arch/x86/hvm/hvm.c
>>> @@ -4302,7 +4302,7 @@ static int hvm_set_param(struct domain *d, uint32_t index, uint64_t value)
>>>             * Only actually required for VT-x lacking unrestricted_guest
>>>             * capabilities.  Short circuit the pause if possible.
>>>             */
>>> -        if ( !paging_mode_hap(d) || !cpu_has_vmx )
>>> +        if ( !paging_mode_hap(d) || !using_vmx() )
>>>            {
>>>                d->arch.hvm.params[index] = value;
>>>                break;
>>
> 

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 10:07:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 10:07:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160877.1488926 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJUEl-00027F-A5; Thu, 13 Nov 2025 10:07:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160877.1488926; Thu, 13 Nov 2025 10:07:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJUEl-000276-6n; Thu, 13 Nov 2025 10:07:31 +0000
Received: by outflank-mailman (input) for mailman id 1160877;
 Thu, 13 Nov 2025 10:07: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJUEj-00026s-Vy
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 10:07:29 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8f2a2f01-c078-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 11:07:28 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-64088c6b309so1086815a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 02:07: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
 a640c23a62f3a-b734fd809absm129504266b.44.2025.11.13.02.07.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 02:07: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: 8f2a2f01-c078-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763028447; x=1763633247; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zw+YHlQ/peQO5V4lUzzZ3ZPKQmLeOrJGX3UasDPLo08=;
        b=VDO/+XWvi+cT4OBlalDSLzXiKBHkz7J6bKrj3dcE0kjsePE8XOKZZy0GhEuANapleD
         xQENwpqbyNx7JvVg16VBH24k2ru14urCFCfLD1X4mS7X5/0+Nr0RJZsJ+G2s7E+/L8VG
         r1pV5MUxTcH4WLfxf+c6MFIOslXv88zWVZ5VKb3gWvhXMdzZMGIt0G73tUAWSTvS6iFh
         nlKt6nmmZxFiJnlcvh2arSaNITrzIzalfdab2iav1RjfWFCJ7XDim/4Zo+D5ufl9PNfu
         cHRRyKtZCCAHhgvmthrS7LR/FGb0OpjKkldIxlatKOwuMoOT9POScASeqd9n1hybCzuC
         rB1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763028447; x=1763633247;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zw+YHlQ/peQO5V4lUzzZ3ZPKQmLeOrJGX3UasDPLo08=;
        b=ejzXw8rrym8nyjrcJGP3bK5ViSWn8qgtr0MuCenjhasz4g8Z7W8JuWiZsAYrmSPIAt
         o3GhzgKEbrpYJcTJf2BOfsWSfR4NKPFOnnWNnUfDk4u3erhjnrL8w2ujfNUL+elWaxMK
         mw1oklN3DCWj1uv3Or474zV54PCdutxUx//9sbz/YyDOI1P2NOnFPsDhdcMUTF+6ExJf
         Uxr35fD/4q14NOi22mv+GwrdsGgEwq46nArvBAc2NScxHQAGyStqvg/tAQOH3fL+c7PR
         EJhxuZSTTA8Kibk3P6+VsGxOoeJ6I3sXBqg38VvsxTZiSEpCcCwUaJ1rDZBKtg9E+lH8
         gkNg==
X-Forwarded-Encrypted: i=1; AJvYcCXDj7CRxwiHudncfjCYqyZOyEhheQD1DSYgnSbSjv6AqbGEitWqds/6x92Hy8MH+4Mz31HftZgLYe8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx7FYaGv/KAtgUBXmAD1U6NCJAmsWdIX3pF/MJe2ZuLRYB6TfIm
	nMfeB/D2FKPmsAxdTgb+BqQsVHdU3YMlGWOGPXRIogneuLp6HkqA8VXDoBbR77FeUTiPra6ZisE
	Hp6Q=
X-Gm-Gg: ASbGnctG5qk78OwPvdozKh07Yr/F1dIXXwLHbUMqw+ntWBqz3dGHrDUShtLXbQ7AqAH
	pu9cFzMWNx9k+yhpmS4XQxIMS8A9sWHPvBtLjs++3SDg0T2o1GGlFVfNwQSVtUC8ssZUb5YsPdR
	wye7J1vl4hgVdzZ2Go/pL2wrgJWTSNO0zfxhbujZXN8xupywEXhbQy4MO8jqxZKIUnELHoQXcGR
	jDkZduF40v1gkhYUOM/adxtJsTU0y6gPnyMyZUbkGe/GMumm1wf0PU3m3r4R3dDAw9X0G2UyS/y
	yfi9nLFarTIgJ+RkJsDAr9pRSORxEBJIESZQ6HpGWtSFfiajEKbFVqg3Lh2eUcoFYvNbMGxx8OV
	u5glaO1re6A4kYB5QCcgZWLdaDgGKWdaQsTnMtME6+Qw+wxOmDJnYufq9LCkSr46JWJRE4lgc94
	Q7gCqqd/7wJsUqiHQwwMtkVSOmv2EYf+GxElgW7+lJPQiyt76ywP1OwCmTkWVrGF9z
X-Google-Smtp-Source: AGHT+IHKbgtl1lKhL7B/M844zEyn1UVxl3KMhxX97Zz4TlDFoJyALyD0jLuLPjzuKRWvCvti+QiuTw==
X-Received: by 2002:a17:907:9713:b0:b72:5a54:1720 with SMTP id a640c23a62f3a-b7331ae8bbbmr574138866b.57.1763028447355;
        Thu, 13 Nov 2025 02:07:27 -0800 (PST)
Message-ID: <1d0f9933-c12a-410e-84ee-e58fa78d0f8a@suse.com>
Date: Thu, 13 Nov 2025 11:07:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 5/8] xen/pci: introduce has_vpci_bridge
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Stefano Stabellini <stefano.stabellini@amd.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1758618839.git.mykyta_poturai@epam.com>
 <acb8da959fac97fbec7bc086b921e31dd52d44f6.1758618839.git.mykyta_poturai@epam.com>
 <39458e03-31c1-4aa6-8b66-f6d72ec8bdd9@suse.com>
 <b287a8ec-0f85-409c-b133-b709026028d2@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: <b287a8ec-0f85-409c-b133-b709026028d2@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 10:49, Mykyta Poturai wrote:
> On 06.11.25 14:15, Jan Beulich wrote:> On 24.09.2025 09:59, Mykyta 
> Poturai wrote:
>  >> From: Stefano Stabellini <stefano.stabellini@amd.com>
>  >>
>  >> has_vpci_bridge is a macro to check if the domain is a domU or is dom0
>  >> with vPCI (pci-scan=yes) enabled.
>  >
>  > Hmm. Why would DomU-s, now and forever, not have (virtual) bridges? 
> Wasn't them
>  > gaining (virtual) bridges actually the longer-term plan?
>  >
> 
> Seems like there is a misunderstanding here. Indeed it is the plan for 
> DomUs to have virtual bridges and this check is designed to 
> differentiate two categories of domains.
> 1. All DomUs + Dom0 with the virtual bridge.
> 2. Dom0 with HW bridge.
> 
> I will try to rephrase the commit message to be more clear.
> 
>  >> @@ -866,7 +866,7 @@ int vpci_init_header(struct pci_dev *pdev)
>  >>       struct vpci_header *header = &pdev->vpci->header;
>  >>       struct vpci_bar *bars = header->bars;
>  >>       int rc;
>  >> -    bool is_hwdom = is_hardware_domain(pdev->domain);
>  >> +    bool is_hwdom = !has_vpci_bridge(pdev->domain);
>  >>
>  >>       ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));
>  >
>  > For none of the changes (also further ones) it is clear (to me) why the
>  > substitution is (logically) correct. For this last instance the variable
>  > name also ends up wrong after the replacement.
>  >> Jan
> 
> The general logic for this change is that before it we assumed that 
> hwdom always uses HW bridge. Now it is not always true and hwdom can 
> also use a virtual bridge, so it needs to be treated the same way as 
> DomUs are.
> 
> You also mentioned on a previous series
> 
>  > Here and perhaps everywhere else I wonder: Is this really an 
> appropriately
>  > named predicate for the purpose / context?
> 
> Maybe you have some ideas of a better name? From what I came up with 
> this seems like the best one.

How to name it depends on the (ultimate) purpose. If, as you say, it's intended
to cover Dom0 and DomU uniformly when they have a virtual bridge, the name might
be quite okay. Then, as you said you would do, better wording may be needed,
variable names like the one mentioned above may need adjustment, and any code
paths suddenly becoming usable for DomU-s need to be audited for this being a
safe/secure thing to do (quite a few of the Dom0-only paths have been taking
some liberties so far).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 10:16:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 10:16:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160890.1488940 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJUNL-00046V-4g; Thu, 13 Nov 2025 10:16:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160890.1488940; Thu, 13 Nov 2025 10:16:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJUNL-00046O-1D; Thu, 13 Nov 2025 10:16:23 +0000
Received: by outflank-mailman (input) for mailman id 1160890;
 Thu, 13 Nov 2025 10:16: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJUNK-00046I-8K
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 10:16:22 +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 ca8cf30e-c079-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 11:16:17 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-b7277324054so79838066b.0
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 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
 a640c23a62f3a-b734fad800dsm136057766b.29.2025.11.13.02.16.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 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: ca8cf30e-c079-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763028976; x=1763633776; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gPEYLCwfTCc+w39ymAHJHeVUMUfjvXkqi2G7RerLYFg=;
        b=eTNdRLOn62ndFrRkHpxO8Fsm1sALPjvu2uiMVQzHinWO36aPOntI6uevvTZj5/VSnR
         ecpEEVbedzg91+CcBhrxrlZ4FJrBov/W23CQE4OqmodvakVI/cas/5FEx0FvD3DpiALT
         KP1KACqZIZtkg8D2WijwAMs4EJ8fOI69iVYwaMJrgcwaiZqzp63oAc+K0e5x+jCtusZ3
         EGStQNy0R1eZaK9J2GXNiHMtR0qfzZ428eCmN13/0J3ILH4XKZcPNL78OzqKJ3RcaBat
         hdxxeVvPPKxyRgdpM9sDjYC4tCl4kYtZ0PLU4haI1R2ERfwGmOzn5aVvKDuzZWVJ7X7Z
         Nw9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763028976; x=1763633776;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gPEYLCwfTCc+w39ymAHJHeVUMUfjvXkqi2G7RerLYFg=;
        b=lzmfIzsvR5pO9NS8WQYBXAUx4wJdszQe88y2qvqHos/dS2w3VdqE0IUo/EdGbgAvi3
         xx8AekQV3iI38a23CsXHLaJvnLmdD1Lfpofd+jDdKgX464fKHw+AgvLFdGCthgNXjmer
         RGPDCLRUtG/vyFMn91PXEp/eKuaMPUTQC9YLIP5oWftrrbSq1X82cn/BTtvmpX1DmjOy
         XLenD7RPn3Y31ynQJQtBIOF/nZD4aHO8AD5zDY6jj9ncMkzNTf+mJLxA1PxQpWZ3O7vc
         DolJ/LqtYBrqx61SQCGgBOSJwFpkMTISJS0RvqiUoCtDAYVMpnK4AZwyJsMNQZyFCSwx
         +49Q==
X-Forwarded-Encrypted: i=1; AJvYcCVcz03qVbpiEKEYjy5tpPyNDFzaXlw28/2a5meBXnc9Jzk1oxR4LrjSQ9GM7AEXr9A4AbE/0P+19RY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyKQ3+LnTqIwN6cmpE+XE2HK/cr0jaT2zl1jmysK+/vKnrfGk2z
	opOFn7u040sBb5Eb1Oi20yKfJaMN4SHAcyw5lqYu7ONtCcehA8abclBmnFNYGcy0Zg==
X-Gm-Gg: ASbGncsjs0lGA1YHlADHlsePUGT/DY+UCmqZpx6lvx/7EOxVi8ReYbGL6lz9n/ZZDJd
	Wrj7RfUdeInJkaPmxKlWfeTK/P9watmr5xEmiR5pmcBxjj29BruOeLfSe+LB8mGg3gJM2lbdydR
	eGkwwx+ZZ2funtqYm0n5tTtVmLWtK/YU4bLnWHzX0hk/4VWVyB7OZ3T/0oCVsCgDq8PtVEs0yzf
	uJU6DzYY1Azph7WF7goRhWoKiufp2QYOegBLXbIzSwzVUkL9J6MSgZC4ltfp+JdSXht+cuj204+
	xQb1wkgOq7C1EHPFFRo1h23V/546y1iAZjXVvqu+iXV4SJcFqewXsI77JJoSkmKFLg3lMoFut9K
	Kub4EyENKZ9rbnJrfecyZmp8DL2x5wWo8qSHDQlHDkA3yXGYk8vmffYlgkOBex7gbYvkeyc98SD
	354SFuhFkfK4ScwiJJzCRYm8VkB8oVnlBiVE6I8zpdDuai4L6AkPtIbouPClZPkS17s4Em06R3f
	YM=
X-Google-Smtp-Source: AGHT+IEFoe6aGHoiYxLhHZB+kolAewuWbWSR4NrtheCvnIxj/uQFhKlUQnHHiM1Et5bXR7uTSfVcSQ==
X-Received: by 2002:a17:907:7290:b0:b73:53ab:cfa1 with SMTP id a640c23a62f3a-b7353abdf18mr173771166b.17.1763028976531;
        Thu, 13 Nov 2025 02:16:16 -0800 (PST)
Message-ID: <9ca0d80e-2566-4874-b4b3-914d8b99f33d@suse.com>
Date: Thu, 13 Nov 2025 11:16:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 7/7] xen/vm_event: consolidate CONFIG_VM_EVENT
To: Penny Zheng <Penny.Zheng@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>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 xen-devel@lists.xenproject.org
References: <20251113031630.1465599-1-Penny.Zheng@amd.com>
 <20251113031630.1465599-8-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251113031630.1465599-8-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 04:16, Penny Zheng wrote:
> File hvm/vm_event.c and x86/vm_event.c are the extend to vm_event handling
> routines, and its compilation shall be guarded by CONFIG_VM_EVENT too.
> 
> Although CONFIG_VM_EVENT is right now forcibly enabled on x86 via
> MEM_ACCESS_ALWAYS_ON, we could disable it through disabling
> CONFIG_MGMT_HYPERCALLS later. So we remove MEM_ACCESS_ALWAYS_ON and
> make VM_EVENT=y on default only on x86 to retain the same.
> 
> The following functions are developed on the basis of vm event framework, or
> only invoked by vm_event.c, so they all shall be wrapped with CONFIG_VM_EVENT
> (otherwise they will become unreachable and
> violate Misra rule 2.1 when VM_EVENT=n):
> - hvm_toggle_singlestep
> - hvm_fast_singlestep
> - hvm_emulate_one_vm_event
>     - hvmemul_write{,cmpxchg,rep_ins,rep_outs,rep_movs,rep_stos,read_io,write_io}_discard
> And Function vm_event_check_ring() needs stub to pass compilation when
> VM_EVENT=n.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> ---
> v1 -> v2:
> - split out XSM changes

Isn't that split out patch also needed as a prereq to the one here? The one
here on its own:
Acked-by: Jan Beulich <jbeulich@suse.com>

But the possibly missing dependency question needs addressing before this may
go in.

> - remove unnecessary stubs
> - move "struct p2m_domain" declaration ahead of the #ifdef
> ---
> v2 -> v3:
> - move .enable_msr_interception and .set_descriptor_access_exiting together
> - with the introduction of "vm_event_is_enabled()", all hvm_monitor_xxx()
> stubs are no longer needed
> - change to use in-place stubs in do_altp2m_op()
> - no need to add stub for monitor_traps(), __vm_event_claim_slot(),
> vm_event_put_request() and vm_event_vcpu_pause()
> - remove MEM_ACCESS_ALWAYS_ON
> - return default p2m_access_rwx for xenmem_access_to_p2m_access() when
> VM_EVENT=n
> - add wrapping for hvm_emulate_one_vm_event/
> hvmemul_write{,cmpxchg,rep_ins,rep_outs,rep_movs,rep_stos,read_io,write_io}_discard
> ---

No changes at all in this version? The v3 patch was much larger, after all.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 10:29:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 10:29:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160902.1488950 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJUaD-00061t-7i; Thu, 13 Nov 2025 10:29:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160902.1488950; Thu, 13 Nov 2025 10: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 1vJUaD-00061m-4Q; Thu, 13 Nov 2025 10:29:41 +0000
Received: by outflank-mailman (input) for mailman id 1160902;
 Thu, 13 Nov 2025 10: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJUaB-00061f-Jj
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 10:29:39 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a78378b0-c07b-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 11:29:37 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b7277324204so81265066b.0
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 02:29: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
 a640c23a62f3a-b734fd80a06sm134164866b.38.2025.11.13.02.29.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 02: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: a78378b0-c07b-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763029777; x=1763634577; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/ttcA9edh9vnp+IaPKlmzYvg8f0SUWfOabydm86TO2Q=;
        b=IVvmGsSri+tFlOnVbL3aze43B6fFD8AtxRt4miNXjRpkCArPL1vR/0e3d9CKeIloqf
         09qpWv8V41MH2b0faxwdNulhTfHFw78pomfa8vokN2cs95ksXnQNqcGl9adO9//iURLb
         JuMbtyMFoWR4iNSq2/IFIwknyXyCPrFNc+4xGsZILZi+V2a7WcfMo8qlZAywKUOtggmc
         KLJNDKNxxkZr0XqJLqUYp/gsLuMkuyUBAflTj5e1+G8h1DPtVlj0GMUvFVizlMc5IZeP
         NbRzfEemd/avyX/eWempmjxmFZDQb1nRwvIgm5tuCbDJPOLTzgyXJQ8K8uKdgz16My7+
         IrsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763029777; x=1763634577;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/ttcA9edh9vnp+IaPKlmzYvg8f0SUWfOabydm86TO2Q=;
        b=BUZLNeShmqTXVWpdm3oGi5rKx1Fsu96dVx3dyTW9sjqGhFcIPq38oQF0ml3/TX+E3F
         UzGyIwIW4ETWzEyXTA+/c6OPsqlLpYbD8NMbpKKCBK22GcExAshRliIIVZcCo2ikSsO+
         +vYjM5V3eZkAdqzCn524ylAWLPlwb3P1ZtbKRDeKqSGifDXR+WbbIgHkKF7z9+8qkR+7
         3WjKckHs8jkMR2SiogPhkAZKLnsDlbeqs4fsuzDeuLJ5D075U0A+j2C5yo0En75RNFjC
         VoDl+3FsMvKe+Up3Z5du8+/dygztZjPKi4L/9yoHu4oR+vnPvPkxIUFUdq9v2BXySrE/
         daxA==
X-Forwarded-Encrypted: i=1; AJvYcCVjpp55myJPL6DJ5DUeK/rI8eRe9IsuA0x5q9ToommJ2C3aoLJ34vkMh9/uPni4TOZviUaD5zqypEE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyUTuATFNe1Lv71dsCQn0GV23T3WWr24vePh2HqReeJ/SmqUykN
	/vHSag9oA1nGQU5+NvNFO45SJep5qThCoywDGYCq3kGOcjs31UdPY0Z5BqeE6MyVpA==
X-Gm-Gg: ASbGncubMvPYQEjFI1taie4MaqrJxt7oKgd2Y6Inv8OLJj9g/4Q+UUWx1WddyKlJCuV
	Q4ebgT8uevY7Hj00bBg8ptkZWhDElHkGimprXnwTIb+v2/s+N/cL7ywnvu9NvtYFxyLSI5gue+X
	fbNdIScwMjLoaWaoH/GfsCNwzbnztX8y4WxyTvJut+qeJWaIjGSLEr8px+fy+ERcS3NjgGbCVed
	MM8RcsgmqbsUyTUO0QE1Vvb2wdGIq6O/fj2Up/bLk9oVbV0i3Zrb6uADYmaU46WiOrxhCf+Z+cp
	7Y3/6ojVIeJtbQG40KiMbLblTu0h6mtBzqZEvwA70KBrW/f2dehzmu7a5KWyzsuCLffZzM+cCSG
	OAdpNZ1jF3eBqv+inD2pZa4yBfC2SoLEjw3nXaK9MgaWk436IbOWg4RqEZpMlZ2O+iGqA7KVvxC
	z+XSGM5mZqdmhwuiFNVsmIBZ06FV48dRKER/8/wG1Yrvd7Y6tHtqga4x7Y9KwCAEH6AgKurtevD
	KQVTvjEIWJyyw==
X-Google-Smtp-Source: AGHT+IFlknKAqvfPEPQoWhbYleuFC3W8dyH1oZCn+Zw67IzAu9StQ82zBWbFs6ALa223/eCd74evVw==
X-Received: by 2002:a17:906:31d2:b0:b73:52c7:faba with SMTP id a640c23a62f3a-b7352c81c04mr114435266b.4.1763029776630;
        Thu, 13 Nov 2025 02:29:36 -0800 (PST)
Message-ID: <2b05b9e8-3f87-41d9-8073-5a4d5c9238ae@suse.com>
Date: Thu, 13 Nov 2025 11:29:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: Remove x86 prefixed names from cpuinfo
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <20251112201800.3678184-1-kevin.lampis@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: <20251112201800.3678184-1-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.11.2025 21:18, Kevin Lampis wrote:
> struct cpuinfo_x86
>   .x86        => .family
>   .x86_vendor => .vendor
>   .x86_model  => .model
>   .x86_mask   => .stepping
> 
> No functional change.

Needs you S-o-b. Also the subject is too generic - it gives the impression
that you do the transformation for all of xen/arch/x86/.

Then:
Reviewed-by: Jan Beulich <jbeulich@suse.com>
albeit with two remarks:

> @@ -657,8 +659,8 @@ static void cf_check init_intel(struct cpuinfo_x86 *c)
>  	/* Work around errata */
>  	Intel_errata_workarounds(c);
>  
> -	if ((c->x86 == 0xf && c->x86_model >= 0x03) ||
> -		(c->x86 == 0x6 && c->x86_model >= 0x0e))
> +	if ((c->family == 0xf && c->model >= 0x03) ||
> +		(c->family == 0x6 && c->model >= 0x0e))
>  		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);

While you touch this, indentation also wants correcting.

> --- a/xen/arch/x86/include/asm/intel-family.h
> +++ b/xen/arch/x86/include/asm/intel-family.h
> @@ -179,6 +179,10 @@
>  #define INTEL_XEON_PHI_KNL		IFM(6, 0x57) /* Knights Landing */
>  #define INTEL_XEON_PHI_KNM		IFM(6, 0x85) /* Knights Mill */
>  
> +/* Family 15 - NetBurst */
> +#define INTEL_P4_WILLAMETTE		IFM(15, 0x01) /* Also Xeon Foster */
> +#define INTEL_P4_PRESCOTT		IFM(15, 0x03)

Any reason not to also add the other two that Linux has in this group:

#define INTEL_P4_PRESCOTT_2M		IFM(15, 0x04)
#define INTEL_P4_CEDARMILL		IFM(15, 0x06) /* Also Xeon Dempsey */

?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 10:36:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 10:36:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160914.1488959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJUgj-0007ud-Su; Thu, 13 Nov 2025 10:36:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160914.1488959; Thu, 13 Nov 2025 10:36: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 1vJUgj-0007uW-QM; Thu, 13 Nov 2025 10:36:25 +0000
Received: by outflank-mailman (input) for mailman id 1160914;
 Thu, 13 Nov 2025 10:36: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=8/hc=5V=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1vJUgi-0007uQ-Kt
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 10:36:24 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 97081c94-c07c-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 11:36:19 +0100 (CET)
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com (2603:10a6:20b:3de::17)
 by GVXPR03MB10777.eurprd03.prod.outlook.com (2603:10a6:150:221::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Thu, 13 Nov
 2025 10:36:16 +0000
Received: from AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::d976:7403:c89d:4677]) by AM9PR03MB7526.eurprd03.prod.outlook.com
 ([fe80::d976:7403:c89d:4677%6]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 10: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>
X-Inumbo-ID: 97081c94-c07c-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ALJlAML/T/gnexz3uoxvLenHZhinSEkuSnt/REK9AS0NaC0e83RF9ndKvfo62YEZayKtOWSRvQdnTA5sy0FgAI2OVOPB6IlrLUwdQs81EIRq2+PkMC1nR90wZs0JhosDqAw3azHKkmHr7M3F4XDcMr6YfMpVNNLb/yp4IO1OuirNYnrh0bg7HTtztQb7EEhni0vUd9kZX+cBEUss4glV5+4pv2wEewdVUQAKNSLTGsIiB8nAk/eZIwOzlgMisec6M9XB7LwiOgRfat5Xq458tcCw8qen4d2tcdXtw8ZksMj0S1Cfz4MrqukzINzqvQZMm6PDrA0MEFiSBrhGkk578A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CbxJhpzrqz+EFeD1v9Ld8Gc4lj4WhTVnIX6MzzfdEuc=;
 b=QPsdo5YgGrk9X0TOzcHuACadDj2Nt8xNewh2VVSaioDlccK723Uw7FZb+iAmIXSrIhCluLzx0SCquEkOwcDVHyXKrj7vujV1mztgDMV/g3S5oMddZcguJjDS80/qze8yWQ5Ft7OecqiyZoqcNb3UhPgDOK+2JXUCedyoOWLeXIGNzt4JTYzSL6DJavJmJ2l78QVDOAN2BaMFiohKPSu/EfIZgYAsO4ayZ/FzUummekA1y23NhLwnqMkfy3EmQHvlxeUfo2Qp3jGTnJ1h5D5oDxO613UEfIWHpHbs8SYEpZOMSBWmTCXlUBvAzsUqCOYpKQA6jLH7dpQRwLj0xlgJdA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CbxJhpzrqz+EFeD1v9Ld8Gc4lj4WhTVnIX6MzzfdEuc=;
 b=leZ4PWKjj0gUqw5hVjqHWl44SrZepbeVRSTbC6opvE+ZhGrLr7FGy3TAqTLwWHGGKEUTlyzwwVMPNc/B6g1LAvTIW9h+K2Ddp/l3wcDmAkWwvf+kVx4Fb6oCdj4+AbxSwg6PiF6tfV3by3/M/5dap/ude0nmsHMVnXlG4f6H3phz/Piedi2ntN4zRY3QRzWi0pcBAFi8zUKXMJIGOixDrD6bQoOxinN3V85Ll7a0FSyYXRxRFaSq74C4yXcdgmKVAabxkG9eJTdhzKE90Aj/CCYCGM00e7MZ0PQOnyKGILQKFsFC4ocmXDVnlhKfDU5Ypv8DIqp/P6X1CUxKpXfu8Q==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH] libfdt: Replace hardcoded FDT version numbers with macros
Thread-Topic: [PATCH] libfdt: Replace hardcoded FDT version numbers with
 macros
Thread-Index: AQHcVIlX6FmSxVBd8UyRU/9awRURXA==
Date: Thu, 13 Nov 2025 10:36:16 +0000
Message-ID:
 <b449ec7262c4e04c7e82eb50df294991dd9fbe50.1763030084.git.dmytro_prokopchuk1@epam.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM9PR03MB7526:EE_|GVXPR03MB10777:EE_
x-ms-office365-filtering-correlation-id: 413b537b-6136-4324-e995-08de22a0798e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|376014|1800799024|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?e87eouxlHPi/o+jb9hpnb/4sZkgAMULd1D+VKeWEiEDyHy9FO5XDctspwL?=
 =?iso-8859-1?Q?fPtmTROZYT2eIIWN40qdcvLqSvo2uRpZ2/zv8lF8AXiBb6iYefFMpImEun?=
 =?iso-8859-1?Q?Ca0CxIohqoVgaSs5i3RO6qFt+br92IUgbw7nYWNbv5Vi7NDV82pyTDkkio?=
 =?iso-8859-1?Q?xGJaCBkYJYXescTayKNNwVi5EM3BJOUlW+ovB1snRfpKHnIBFMqlRhYbYe?=
 =?iso-8859-1?Q?IQGrxolubhdiHmXxyiTW+nAuO8uTzTAbZZb6hI/qNdgx9BgPaHECcMj+vx?=
 =?iso-8859-1?Q?yv0U4B6p4uNPDwg87S3OOEQ0H46IhkU8oWvEdi8RvkshZySU7xeYlUBS/I?=
 =?iso-8859-1?Q?pE7wfmtanJYObzaFxq8sNWP8UHwxAjdS1EWlZA+ho3URxh2WUE3nm0SmW2?=
 =?iso-8859-1?Q?De0368jPFDSgrEWRktQsG0q+J3IiKdl+JA5UEzFXFgIFBxbEnGl9TNopbG?=
 =?iso-8859-1?Q?OqNDSUbCWBmNGvaBIMGmAJvlugZboGJbXLnIAzaK6Bz3ft5pVT1/HDdV3e?=
 =?iso-8859-1?Q?Ou3SBK1UgdPSLAWUpzAWX3BqR+z7nx0L6GWbvrAVjwIESjXjBGeMmOoOuK?=
 =?iso-8859-1?Q?grV1fXGrjK18GT++IQmBn2ED1AbFminIyRY+wUSHsMjUM5Y8kIPbQR9FD4?=
 =?iso-8859-1?Q?SOPJJ9vxBo0t98vW6a9zGqs8Divom9+faZ4I5KS5NdYfNlMItf/2TlpyzR?=
 =?iso-8859-1?Q?LAmdq9/KI0g3nLUg0bhYeQxaTVwRZBvthegc1zI5gAz3qcUvFbuZAARCob?=
 =?iso-8859-1?Q?/6kGuH1UXnx/Q1VjazAkJgurPxzazSq8dL+qs+4udJyb3WoFq7D0bBdjtw?=
 =?iso-8859-1?Q?V+VCz6i8n9bxz56TKDyLRN8sNxHNQRaCy3gyalK+wvEXgoZvD48RyXEsGC?=
 =?iso-8859-1?Q?/BUtjG8DiNrWGd6gBArZurN6L0PkYK8GWYUJ8Ojd3gZLDrIycgwOgICnFm?=
 =?iso-8859-1?Q?ZxlUf3HyLFdTnd5wsTp4SZtD4tsG0Xx8lOynIKcN5Xhs2DcO9ziBo35Y73?=
 =?iso-8859-1?Q?brdin/rzfH5Pn9z60mzCy4bR63xWE+xHWshTpQd0ik/gNug23e3IhT3+l4?=
 =?iso-8859-1?Q?/6uhWNtoqn2bgv3kymKD5OJsdT10qI9izjz3NEwRhyLXq2yMAWn8228CoF?=
 =?iso-8859-1?Q?Iq11OY/hOjd0G359cb3TCOJo4LYG7rYHj1Fjf224N0xf9idJB9DrqJli2B?=
 =?iso-8859-1?Q?FZzXt+jc88jWP0RtTsPUO/MyBF0z/a4emSbHDfT3zKrEE1DlE6UW5yvOFr?=
 =?iso-8859-1?Q?ZTSyMmpW5AvSGHqm4IPMYlC0g4GuJ3U78Ba+i/aohfaw5x0IwkKoHWJi3t?=
 =?iso-8859-1?Q?KmZiqS7liBX6DA+18tTG8FWQG38jk/NZTBZ46VWAMaA7ZRBX1ccYx3ong3?=
 =?iso-8859-1?Q?GgFQW5cXIJErD36Q2/C4ob8SK6ZzW+mco/jm6DGuJFp/9dCuowpZbdwlli?=
 =?iso-8859-1?Q?yKUB67z85vbc1rSdbUXNhKKEpFM8hyaezRrOP1MB0680ni9EXKHVMVIIww?=
 =?iso-8859-1?Q?XzDqTtdDGvZsuD09Qsv9/2paBNjhMLOLhSRyOncBlNZxuqjtaFfg7PDUD5?=
 =?iso-8859-1?Q?47Eyeqbfw5UBE+sGp3aZca/Lq/mR?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7526.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?zHTUuDxaFVjGcrQ7OYzTgyWnmUhKsTwg7be/5MBcu7PPwp1hV9u+nR/P/C?=
 =?iso-8859-1?Q?sVVxIRrKYgzLFSGYkv2ejFtEpVWz1g40w57WR1rxC1BvrU88qFTp159xmH?=
 =?iso-8859-1?Q?IzHXdE2NC7Og6XnKQPFAgRZHFtB8LI2E086qK95sIMlZ136SJ0HZ+Pk/1z?=
 =?iso-8859-1?Q?f4zsH0/yINbYe4JHu7+uUl3m6CQ2a+kaSdw2vLfQ2W/8XKNhIxPBq3WV28?=
 =?iso-8859-1?Q?PeS7C27OibJYflOxQg19YPe+0XbxPGIQh8X3Q1GTJ6kgC7XtHyr9VJgE0N?=
 =?iso-8859-1?Q?KNz0UiksTK5hxOjfQSMpT2nsA08essdNvKCYjTgr7wLrV+Q90PGqsq7hkf?=
 =?iso-8859-1?Q?dYkSgo+s2W9v3w/AYb8eHH0dRXyO+2daI3lnpWLNn+GnuqS11HcH+Enqj5?=
 =?iso-8859-1?Q?xW7cKKF8PaQJTBruUapyTmgIL7prdFn2TtYa1qD4/55qg/IfmcLFN69YI0?=
 =?iso-8859-1?Q?ZMJSVdA3L2YxnFR9iGlUJ/2aD5CBaDfGs0fZSZWENXHOsYCjv4cODsNlih?=
 =?iso-8859-1?Q?3KyUD+IA8f73inyaF1n4Ry/vvx35+bmFH+w19JQ80iEKffwl4jUrmu0lo1?=
 =?iso-8859-1?Q?CvfLtO+uSCrYsUV7QZJJwdpI73Xj940CDxsWrPeGAJ/RV0F/Xd+yxNgdkR?=
 =?iso-8859-1?Q?jPoCLg+zPs5nkonKwSw82I4IAJHMvd7MikH/JCRViwBDlEMTzhEbDIdg01?=
 =?iso-8859-1?Q?nizUPlxDPe12h9BjlDdjrlS6uA9eNys9oAQuoyF9A3oCT8vF92iVF6Z3vm?=
 =?iso-8859-1?Q?XdgBF8i6JW6566jr7u8Tf65fDf3GmsvPTCsJmNcBwW9OOyFb5stVbux1pY?=
 =?iso-8859-1?Q?tvUUwTSWIHiw7yU7gYhr1s1cD2TzJLLYANFXLUQSXARDQmJjy39cAzMBxT?=
 =?iso-8859-1?Q?cNhttAIGHEGlzf6YkbzkGzf8Ms07PgLxm/Lx9ZoBeA7XH4veVeT4R078uN?=
 =?iso-8859-1?Q?zkj7hRre/oUpbFFs5zBIpSufZ9fHt3YeCUq89NafRfRqWKytBJvmyF7DsJ?=
 =?iso-8859-1?Q?sr7O0XjUuMDfb7unsGpnU+AiWrvwi/ZHpxHooGzN9N3RDgtHnj/v4hUBNs?=
 =?iso-8859-1?Q?3f7Hpaf8LwkRmoxAiBMCVKgwTIlRVjXp1zqyzkAscCEWQz8whqiqFJbxjQ?=
 =?iso-8859-1?Q?K9e89PA3n4Ea8a1hHPuhwSI7bHxm8PyXAdsDrZP33qZY53YG+A9Skje69I?=
 =?iso-8859-1?Q?C2ZEubVZLla5avOzakZyJI8RsA2swLdgB3vSNqQC3B0xsNHcp2ICt89Ih4?=
 =?iso-8859-1?Q?ztGqwFO6xyeQiN9bY6xnQLXH3roqTyQF0Qlg2sO6tswQPI2wl3oHlXa+t2?=
 =?iso-8859-1?Q?keV3OoIeHhnNMlacANfL9k9e8zhce677B0JVT+slMMPEQ7jIVpzBefGV/M?=
 =?iso-8859-1?Q?jIbLGiqGlI/E/n+lZsDBSKPZuml9eoh9jwj/f5g/ST0TmLsQXsPxqgtSs/?=
 =?iso-8859-1?Q?hzXLa6IJiaQV/yk74YIEE14gH+shSvEIliUY0+bxtbdjyTYszqJf4zGdS7?=
 =?iso-8859-1?Q?mXmc7EvNpY8TwEIjeVCupSEV05I+xF8Eqr/YfV6W8PHAHMqlqcc1g5GpTP?=
 =?iso-8859-1?Q?kTtDAntB/BRzUzULmeP28xooioSJ/JPv2l6jjZM3DvS67wYN0mokohpgkd?=
 =?iso-8859-1?Q?DSRfg3fN6/qJ16lSBGJrqbmOk/Yb30lKO2lLZHlrYV4APQYbH/ZeKIhA?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM9PR03MB7526.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 413b537b-6136-4324-e995-08de22a0798e
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Nov 2025 10:36:16.1941
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: fnWiA20eJM/U5F+27ViuW5r/WFiq02x89BJADhw7BDo8wdxAmfmLn1SLo7WPr7xxbbkzsi5jJLJHGh7L+Hd8GMCgR2WEMwLI8txMwwH9pmU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB10777

Replace all hardcoded FDT version numbers (such as 16 and 17, or 0x10 and 0=
x11)
with the macros FDT_LAST_COMPATIBLE_VERSION and FDT_LAST_SUPPORTED_VERSION
throughout the Xen device tree and libfdt code.

This avoids magic numbers and makes the Xen codebase more robust to future =
FDT
version changes.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
 xen/common/device-tree/device-tree.c |  2 +-
 xen/common/libfdt/fdt.c              |  8 +++++---
 xen/common/libfdt/fdt_ro.c           | 13 +++++++------
 xen/common/libfdt/fdt_rw.c           | 16 ++++++++--------
 4 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/xen/common/device-tree/device-tree.c b/xen/common/device-tree/=
device-tree.c
index 0b5375f151..ee8b32a8b4 100644
--- a/xen/common/device-tree/device-tree.c
+++ b/xen/common/device-tree/device-tree.c
@@ -1949,7 +1949,7 @@ static unsigned long unflatten_dt_node(const void *fd=
t,
         sz =3D be32_to_cpu(*(__be32 *)(*p));
         noff =3D be32_to_cpu(*(__be32 *)((*p) + 4));
         *p +=3D 8;
-        if ( fdt_version(fdt) < 0x10 )
+        if ( fdt_version(fdt) < FDT_LAST_COMPATIBLE_VERSION )
             *p =3D ROUNDUP(*p, sz >=3D 8 ? 8 : 4);
=20
         pname =3D fdt_string(fdt, noff);
diff --git a/xen/common/libfdt/fdt.c b/xen/common/libfdt/fdt.c
index 9fe7cf4b74..4b30a17b93 100644
--- a/xen/common/libfdt/fdt.c
+++ b/xen/common/libfdt/fdt.c
@@ -119,7 +119,8 @@ int fdt_check_header(const void *fdt)
=20
 	if (!can_assume(VALID_DTB)) {
 		/* Bounds check structure block */
-		if (!can_assume(LATEST) && fdt_version(fdt) < 17) {
+		if (!can_assume(LATEST) &&
+			fdt_version(fdt) < FDT_LAST_SUPPORTED_VERSION) {
 			if (!check_off_(hdrsize, fdt_totalsize(fdt),
 					fdt_off_dt_struct(fdt)))
 				return -FDT_ERR_TRUNCATED;
@@ -154,7 +155,7 @@ const void *fdt_offset_ptr(const void *fdt, int offset,=
 unsigned int len)
 		    || (absoffset + len) > fdt_totalsize(fdt))
 			return NULL;
=20
-	if (can_assume(LATEST) || fdt_version(fdt) >=3D 0x11)
+	if (can_assume(LATEST) || fdt_version(fdt) >=3D FDT_LAST_SUPPORTED_VERSIO=
N)
 		if (((uoffset + len) < uoffset)
 		    || ((offset + len) > fdt_size_dt_struct(fdt)))
 			return NULL;
@@ -195,7 +196,8 @@ uint32_t fdt_next_tag(const void *fdt, int startoffset,=
 int *nextoffset)
 		offset +=3D sizeof(struct fdt_property) - FDT_TAGSIZE
 			+ fdt32_to_cpu(*lenp);
 		if (!can_assume(LATEST) &&
-		    fdt_version(fdt) < 0x10 && fdt32_to_cpu(*lenp) >=3D 8 &&
+		    fdt_version(fdt) < FDT_LAST_COMPATIBLE_VERSION &&
+		    fdt32_to_cpu(*lenp) >=3D 8 &&
 		    ((offset - fdt32_to_cpu(*lenp)) % 8) !=3D 0)
 			offset +=3D 4;
 		break;
diff --git a/xen/common/libfdt/fdt_ro.c b/xen/common/libfdt/fdt_ro.c
index 17584da257..f719712b71 100644
--- a/xen/common/libfdt/fdt_ro.c
+++ b/xen/common/libfdt/fdt_ro.c
@@ -60,7 +60,8 @@ const char *fdt_get_string(const void *fdt, int stroffset=
, int *lenp)
 	if (fdt_magic(fdt) =3D=3D FDT_MAGIC) {
 		if (stroffset < 0)
 			goto fail;
-		if (can_assume(LATEST) || fdt_version(fdt) >=3D 17) {
+		if (can_assume(LATEST) ||
+			fdt_version(fdt) >=3D FDT_LAST_SUPPORTED_VERSION) {
 			if ((unsigned)stroffset >=3D fdt_size_dt_strings(fdt))
 				goto fail;
 			if ((fdt_size_dt_strings(fdt) - stroffset) < len)
@@ -309,7 +310,7 @@ const char *fdt_get_name(const void *fdt, int nodeoffse=
t, int *len)
=20
 	nameptr =3D nh->name;
=20
-	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
+	if (!can_assume(LATEST) && fdt_version(fdt) < FDT_LAST_COMPATIBLE_VERSION=
) {
 		/*
 		 * For old FDT versions, match the naming conventions of V16:
 		 * give only the leaf name (after all /). The actual tree
@@ -382,7 +383,7 @@ const struct fdt_property *fdt_get_property_by_offset(c=
onst void *fdt,
 	/* Prior to version 16, properties may need realignment
 	 * and this API does not work. fdt_getprop_*() will, however. */
=20
-	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
+	if (!can_assume(LATEST) && fdt_version(fdt) < FDT_LAST_COMPATIBLE_VERSION=
) {
 		if (lenp)
 			*lenp =3D -FDT_ERR_BADVERSION;
 		return NULL;
@@ -429,7 +430,7 @@ const struct fdt_property *fdt_get_property_namelen(con=
st void *fdt,
 {
 	/* Prior to version 16, properties may need realignment
 	 * and this API does not work. fdt_getprop_*() will, however. */
-	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
+	if (!can_assume(LATEST) && fdt_version(fdt) < FDT_LAST_COMPATIBLE_VERSION=
) {
 		if (lenp)
 			*lenp =3D -FDT_ERR_BADVERSION;
 		return NULL;
@@ -460,7 +461,7 @@ const void *fdt_getprop_namelen(const void *fdt, int no=
deoffset,
 		return NULL;
=20
 	/* Handle realignment */
-	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
+	if (!can_assume(LATEST) && fdt_version(fdt) < FDT_LAST_COMPATIBLE_VERSION=
 &&
 	    (poffset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >=3D 8)
 		return prop->data + 4;
 	return prop->data;
@@ -493,7 +494,7 @@ const void *fdt_getprop_by_offset(const void *fdt, int =
offset,
 	}
=20
 	/* Handle realignment */
-	if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
+	if (!can_assume(LATEST) && fdt_version(fdt) < FDT_LAST_COMPATIBLE_VERSION=
 &&
 	    (offset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >=3D 8)
 		return prop->data + 4;
 	return prop->data;
diff --git a/xen/common/libfdt/fdt_rw.c b/xen/common/libfdt/fdt_rw.c
index 3621d3651d..9e87eabc5d 100644
--- a/xen/common/libfdt/fdt_rw.c
+++ b/xen/common/libfdt/fdt_rw.c
@@ -28,13 +28,13 @@ static int fdt_rw_probe_(void *fdt)
 		return 0;
 	FDT_RO_PROBE(fdt);
=20
-	if (!can_assume(LATEST) && fdt_version(fdt) < 17)
+	if (!can_assume(LATEST) && fdt_version(fdt) < FDT_LAST_SUPPORTED_VERSION)
 		return -FDT_ERR_BADVERSION;
 	if (fdt_blocks_misordered_(fdt, sizeof(struct fdt_reserve_entry),
 				   fdt_size_dt_struct(fdt)))
 		return -FDT_ERR_BADLAYOUT;
-	if (!can_assume(LATEST) && fdt_version(fdt) > 17)
-		fdt_set_version(fdt, 17);
+	if (!can_assume(LATEST) && fdt_version(fdt) > FDT_LAST_SUPPORTED_VERSION)
+		fdt_set_version(fdt, FDT_LAST_SUPPORTED_VERSION);
=20
 	return 0;
 }
@@ -430,9 +430,9 @@ int fdt_open_into(const void *fdt, void *buf, int bufsi=
ze)
 	mem_rsv_size =3D (fdt_num_mem_rsv(fdt)+1)
 		* sizeof(struct fdt_reserve_entry);
=20
-	if (can_assume(LATEST) || fdt_version(fdt) >=3D 17) {
+	if (can_assume(LATEST) || fdt_version(fdt) >=3D FDT_LAST_SUPPORTED_VERSIO=
N) {
 		struct_size =3D fdt_size_dt_struct(fdt);
-	} else if (fdt_version(fdt) =3D=3D 16) {
+	} else if (fdt_version(fdt) =3D=3D FDT_LAST_COMPATIBLE_VERSION) {
 		struct_size =3D 0;
 		while (fdt_next_tag(fdt, struct_size, &struct_size) !=3D FDT_END)
 			;
@@ -448,7 +448,7 @@ int fdt_open_into(const void *fdt, void *buf, int bufsi=
ze)
 		err =3D fdt_move(fdt, buf, bufsize);
 		if (err)
 			return err;
-		fdt_set_version(buf, 17);
+		fdt_set_version(buf, FDT_LAST_SUPPORTED_VERSION);
 		fdt_set_size_dt_struct(buf, struct_size);
 		fdt_set_totalsize(buf, bufsize);
 		return 0;
@@ -477,8 +477,8 @@ int fdt_open_into(const void *fdt, void *buf, int bufsi=
ze)
=20
 	fdt_set_magic(buf, FDT_MAGIC);
 	fdt_set_totalsize(buf, bufsize);
-	fdt_set_version(buf, 17);
-	fdt_set_last_comp_version(buf, 16);
+	fdt_set_version(buf, FDT_LAST_SUPPORTED_VERSION);
+	fdt_set_last_comp_version(buf, FDT_LAST_COMPATIBLE_VERSION);
 	fdt_set_boot_cpuid_phys(buf, fdt_boot_cpuid_phys(fdt));
=20
 	return 0;
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 10:37:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 10:37:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160927.1488970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJUhf-0008Tn-Ab; Thu, 13 Nov 2025 10:37:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160927.1488970; Thu, 13 Nov 2025 10:37: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 1vJUhf-0008Tg-7a; Thu, 13 Nov 2025 10:37:23 +0000
Received: by outflank-mailman (input) for mailman id 1160927;
 Thu, 13 Nov 2025 10:37: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJUhd-0007uQ-FS
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 10:37:21 +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 bb2e9cea-c07c-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 11:37:19 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b727f452fffso279496566b.1
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 02:37: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
 a640c23a62f3a-b734fda8d69sm134702666b.50.2025.11.13.02.37.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 02:37: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: bb2e9cea-c07c-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763030239; x=1763635039; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=H6dVcWosJ7I6Kkwur9ex04TNB6MAFRxEteR0K6IOoAA=;
        b=KtQ0myC5CKH85fBCR+MHKb6jTOwYWolGS8m8xNqrhl1qdUuHDbiUIcvL6QKS5wguDl
         gyydNErbx9280eRD63LLZWh8/iQv3q1+BrVwDJXhZ0FVd1YIesJYtxc9HvwFU5BxKMXY
         Vc131kbHOOCx1vkGQZ3TUrMMrqNYGei7faYIl8b1thAfFZb1HKl3mjPy3zpJXGW9ItLZ
         SwKDMh/CMhavEKwwc0Bi1dflmDpipe3mv/qqNQkuxuBDgM7PWa1uWvVjhej1sce4+N2L
         9pTaRXvtFh3RKKlg7vptmxy+Pb9CB21rCZ+DUq3ISKrLxFGkt3Elbgxu5p6MV9Eum2Hs
         GrNw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763030239; x=1763635039;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=H6dVcWosJ7I6Kkwur9ex04TNB6MAFRxEteR0K6IOoAA=;
        b=PMWOW+DORc68AUmNsxlp5o+eTT1BpK+QkwJTwi9Oe4gJ1gxQOslTcnRjXHoHPGVxpo
         AnEQUjNDDkABE45ZjU6cL7chBiX6YH5EY7IFz9xWyXzSPpfgpLvWfqDyf87ZrEMDfMhx
         ohoVknjL+h7ZGyuHnL+ZCxkzRNjYBF8GI7Ykae/AXMNSuocAiLTEQ8n7oH6XorXuH/xV
         1Rny2ObL1GnLvcd/FXgMovTo0jOGBrNO89/t7e7wgoWy5b4Nt0MbrG2pr9KytqrLbDtc
         rnNUKXcT/xwnQBkqJ1d2ygvTKlHuNuxCMMwyLZcTCdafWx2+4wr/qjO92wRepjsBgOWa
         LtAg==
X-Forwarded-Encrypted: i=1; AJvYcCXbyPUYeJOLTTFuXk4lZrFBynFfjfp4ZCo6UHeY6/s0VeVQCPb0xT0YwwRa404SyhaULI3zhqDEI3w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwazUqIuzQLeCMFbshKLvv0UvE0FTllFbPFPUGuYTrNTiNBFMEZ
	BGj+83+U8IlHMC5O8uOSSsbdwwnQMLXPmmL1MeSGhB/N7ibYPj06kcT1CqIodQBAhw==
X-Gm-Gg: ASbGncvzrCTxzJ5cHAeiu6LztDAygh0t9rx90AzwmC6xy7zRAJPnx9JlIYc0xUN6GLA
	gqoo8Pu5pdkuN0HlBQXGvlMZhGSnJGT9tCtXQZb+lQHYRucLqHEYKWiBQyWxoBTV0KnkTkEk7wk
	9Yn2TYeKDE7uWcZjJ+4eLQeeNykBY5LnxNww6A9U41SC6NlHEP2czVHsZgEKUkRGDsyV6yzVB6w
	LiAwjQNrTJhAZ4Wvgwa3FIvXoU4N5LnB9H6ocfwYDCEMqR/2syk9IuHPRsR4rQTxkH7c3c5AJuo
	ZXVwyfW9/yWeMYi4VIvLUllhp3mliMnaQZEWaqmdS5Q4NS45PV2x3eFGgGBNP4/orrK8VSjw51Z
	DFQCGDQN6UWjIqMm+YO9i/dY8KrlkuenCQrvkzMNUnTGgy/cj94Fub3d+TccCu9vBWtKkLEPh1N
	aD5XRpB54Ki2jnzQqVqoxb1LlBoDoQVnAtr4vtZyiYdSi7DbHP8EtdvVThEW99bgINh2CdqT0ID
	vs=
X-Google-Smtp-Source: AGHT+IHOhqpL6Wcjb1RIVcl4yJSLenhKuyI5EeSc4Kuayssr7gCl74tW6cku5q03WgGWg1GE3zb1EQ==
X-Received: by 2002:a17:907:74c:b0:b70:83a2:3f5a with SMTP id a640c23a62f3a-b7346956cb2mr325525066b.0.1763030239247;
        Thu, 13 Nov 2025 02:37:19 -0800 (PST)
Message-ID: <901e9a91-60f0-4b9b-a989-fbd64cf40fb1@suse.com>
Date: Thu, 13 Nov 2025 11:37:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/8] smp: Move cpu_up/down helpers to common code
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>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1762939773.git.mykyta_poturai@epam.com>
 <e0fe3bb03af9c612605a2a5dd9b5670d0428fa1a.1762939773.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: <e0fe3bb03af9c612605a2a5dd9b5670d0428fa1a.1762939773.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.11.2025 11:51, Mykyta Poturai wrote:
> This will reduce code duplication for the upcoming cpu hotplug support
> on Arm64 patch.
> 
> SMT-disable enforcement check is moved into a separate
> architecture-specific function.
> 
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

Solely from an x86 perspective this looks okay to me, but on Arm you introduce
...

> --- a/xen/common/smp.c
> +++ b/xen/common/smp.c
> @@ -16,6 +16,7 @@
>   * GNU General Public License for more details.
>   */
>  
> +#include <xen/cpu.h>
>  #include <asm/hardirq.h>
>  #include <asm/processor.h>
>  #include <xen/spinlock.h>
> @@ -104,6 +105,37 @@ void smp_call_function_interrupt(void)
>      irq_exit();
>  }
>  
> +long cf_check cpu_up_helper(void *data)
> +{
> +    unsigned int cpu = (unsigned long)data;
> +    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) )
> +    {
> +        ret = cpu_down_helper(data);
> +        if ( ret )
> +            printk("Could not re-offline CPU%u (%d)\n", cpu, ret);
> +        else
> +            ret = -EPERM;
> +    }
> +
> +    return ret;
> +}
> +
> +long cf_check cpu_down_helper(void *data)
> +{
> +    int cpu = (unsigned long)data;
> +    int ret = cpu_down(cpu);
> +    /* Have one more go on EBUSY. */
> +    if ( ret == -EBUSY )
> +        ret = cpu_down(cpu);
> +    return ret;
> +}

...unreachable code, which - for the case when RUNTIME_CPU_CONTROL=n - won't
even be rectified by the next patch.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 10:44:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 10:44:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160944.1488980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJUoC-00021d-0s; Thu, 13 Nov 2025 10:44:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160944.1488980; Thu, 13 Nov 2025 10:44:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJUoB-00021W-TY; Thu, 13 Nov 2025 10:44:07 +0000
Received: by outflank-mailman (input) for mailman id 1160944;
 Thu, 13 Nov 2025 10:44:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJUoB-00021Q-0z
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 10:44:07 +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 acad15ee-c07d-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 11:44:05 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b7355f6ef12so63485066b.3
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 02:44: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
 a640c23a62f3a-b734fda8da2sm133547566b.55.2025.11.13.02.44.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 02:44: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: acad15ee-c07d-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763030644; x=1763635444; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JImBlaVHtIbdMKfPNgP2nMGlhSt+jCNCdhLCnCDqYec=;
        b=F99u2VYEX4ZypybP2Yl8i2r0Fh/535MAm8Hrj7Gf7gABQYmLPjPa5cSam/GykKOQSU
         mTl4syVFOxEwz8x0jWJecdb63iYTorRVN9q6dxJNuy3StnlPiPVkH4jMQq5COy6Wcmae
         JXafNCaucGzc3TSDmrM2tsiFLUJJckrQ1Il+iScxbx2ell3YQ5pCG9cCNn56r42xoQWw
         6kA9OQoYQ0xtKTrUjYPFi7s1zOIg8XF1rMf6+0uhBrF5oDmjZrP9VrLmKLj/CC3Eq3et
         OfQSgAFRofFbbyezRb4UH9kFv6oufcADXr5ebMCY5eROPkdOwdacKg33JVx8MjY6Gd08
         KBPA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763030644; x=1763635444;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JImBlaVHtIbdMKfPNgP2nMGlhSt+jCNCdhLCnCDqYec=;
        b=Hyp4aP6ZdrpSCnct9xxWS2Niq1/yqS7o/mkBlJpnwmgVzFnSCdqGTYFFfC27EElNjH
         m1cbcAqlWGCTFLbq+LOwmmmF/AnyH8cPIe4bI009YjF1AqZM8obLhSh9o86AMuncUVW+
         1cXz1yhCLW4HNxM+UPJvGM5UgOivXCkfibz8G5G3NQqxhhwfpUe/IuIWkV1dh5x9Udh5
         29T5fYiRI+tB3G1JYt2jDo/6HVdoeC+3NOQUe7HOcN7VAPUUSj2voe30uxNLX0gop0PG
         WM0yWV1tiVRwABITPeRUYbyeVI/OBzBJApjXQGo9Be/uBO2aTfdSSk1zLSR5Uwjcyl+c
         Ooiw==
X-Forwarded-Encrypted: i=1; AJvYcCWnD3EFwem3xryxAzdl5cUiRNsEhqsxP63jaRXiZh4u6Qz5QzrNcCSTnrXZeoiQhzI1INGjw4VCJCU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyOtdaDCW4mWu1CmiqD4YE1QMfYRw3QCGoRaiydWvih04vOpwl/
	xL/5D44GQJCUJ8zBONpFSJh48CbT4sE93i3swDIUcegrOwEws6/u9MGcLs4gj9+txg==
X-Gm-Gg: ASbGnctHAqJkSmR47w3MdN2OvUK++62XcZ0QHZDnjZxySseYZClsVjS8vY//xT/uFc0
	17yjtiUmmxqAXRAuZWZi8BEDfWTF9C4J3UtkwfTTDCP9ejV8k8cLKxs4kbE+JM259FZ/DFOg8bx
	hYFE1Z+cvSizBJglyp+Uav3w0OBYFo3I5Ke2QUuNKoBH6HeL51FUC3W6xC3KtEAtm0DczVvaaQ5
	y8z0hCdnmeW9omXNrozOcBfMSwidquKuXUqreMMm5VP9Vn5wDy+baX7g03n24iGm2l1KzHwm3N3
	t6xCbue4mLuuQi956tF8JQuUB20TAlIMVg/CClyyaN/wz0H1+pz9hZZBU1HXAXCvWQbr6S/NQS/
	6xyfx7zEEYpG9y/FLsa6COKM7FLwK28oxS/DN8OmRYZdJLcVqMTTgxIJLDkt0othGSl5U9YUX4G
	6kzY8/wST7KHgtMXVwYjG7I7Y6jtRO3I2oCcXcvN7cJTq0Lrwxws5Ey6HJOLblyOmF
X-Google-Smtp-Source: AGHT+IFmhnr5BLkO44xAA+T0S96KFYNdA6bY+1/A9MTOSoeX4pbKNNUXQlTIUwVLWhrRtsLebmM92Q==
X-Received: by 2002:a17:907:3e12:b0:b70:af3d:e97b with SMTP id a640c23a62f3a-b7331997c12mr732607966b.17.1763030644453;
        Thu, 13 Nov 2025 02:44:04 -0800 (PST)
Message-ID: <25ec2731-e629-4cc7-b374-5e48fba4c814@suse.com>
Date: Thu, 13 Nov 2025 11:44:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RESEND PATCH v2 1/3] x86/hvm: move hvm_shadow_handle_cd() to vmx
 code
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251111200958.3576341-1-grygorii_strashko@epam.com>
 <20251111200958.3576341-2-grygorii_strashko@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: <20251111200958.3576341-2-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2025 21:10, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Functions:
>  hvm_shadow_handle_cd()
>  hvm_set_uc_mode()
>  domain_exit_uc_mode()
> are used only by Intel VMX code, so move them to VMX code.
> 
> While here:
> - minor format change in domain_exit_uc_mode()
> - s/(0/1)/(false/true) for bool types
> - use "struct domain *" as parameter in hvm_set_uc_mode()
> - use "struct domain *d" as local var in hvm_shadow_handle_cd()

One more please:

> @@ -1451,6 +1452,66 @@ static int cf_check vmx_get_guest_pat(struct vcpu *v, u64 *gpat)
>      return 1;
>  }
>  
> +/* Exit UC mode only if all VCPUs agree on MTRR/PAT and are not in no_fill. */
> +static bool domain_exit_uc_mode(struct vcpu *v)
> +{
> +    struct domain *d = v->domain;
> +    struct vcpu *vs;

const on all three pointer target types. Then, together with the function
prefix adjustment discussed on the other sub-thread,
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 10:59:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 10:59:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160958.1488990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJV2e-000420-7N; Thu, 13 Nov 2025 10:59:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160958.1488990; Thu, 13 Nov 2025 10:59:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJV2e-00041t-4d; Thu, 13 Nov 2025 10:59:04 +0000
Received: by outflank-mailman (input) for mailman id 1160958;
 Thu, 13 Nov 2025 10:59:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJV2d-00041n-F7
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 10:59:03 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bd840d88-c07f-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 11:58:52 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-b7277324204so85797966b.0
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 02:58: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
 a640c23a62f3a-b734fdaf6dasm138748666b.63.2025.11.13.02.58.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 02:58: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: bd840d88-c07f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763031532; x=1763636332; 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=tGxBTIU10Y/v1zy5kRtoc14zm7cERi9DxeHKAfNyZsM=;
        b=E9MfgM23VCNJwJajYViaTFlpDqD/5KN+qYSQ5zuDTGjQMIJw6w/A2ZyKtkyZ02aFAA
         myefvF45VRJhysF3G8rpMZftk0DOIswPuDeuzi/r2m3vw/5F1dYV3QKBDVgBFH+jmJCI
         GzaqAF8GSiK0OIstId0lgdk4zHxk9lpvy9f/N5NG5b8dtGEo0WPzMxO/RtZxalIIL2PP
         3x1XHWqwMWM6iOZOTkoPU8fqaZBxOtM6mhmeAG7OA0uwB4+bEzOPOh0uqI9krDQQCMk5
         ce05+ffMgq6eeqgFHlM9cJXGvDAOLhpcwPX/aO/w1dKYsZ2KI6UFOVto2lFMTiCf3wUQ
         6ZiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763031532; x=1763636332;
        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=tGxBTIU10Y/v1zy5kRtoc14zm7cERi9DxeHKAfNyZsM=;
        b=NsiYpmEaN9evZafu/eWbUgKRrIfQs138wB5MTPTR5q4Aq9kiTCoua8sDn3yLcP+ncF
         qbwAnTcbE3kd28dljPxxBHqgS3JQCQDJwhlSHqJ3kVKyOl8/5ffxRlhBqHlekcUD4Hwy
         9YjGml8eLiSVWeFrdnGDRWkipWChdP2OTqXrDpG3xHMzjB/ns77Aa5UnxfA+J+V5VnDp
         rmJab8+4QDmPIXIyQJ7lXadE86N3H01FIyF23Dizr8aUz9VZ9q7GHLp6nLMl/OyFurBs
         dbGdB7cXzilnvvvmV9GK5BypqvX1KxgldaBpJ7nnjg3Ok+DuB/fkIaS9alFb9V7OgSrF
         eQ/Q==
X-Gm-Message-State: AOJu0YyZsinKghiYOUzg9B8xKFuy+hfPnWW09hcio04N7pikrPxTbQ1P
	x3LKQBd9YEhQhF4WVCff9Z8+pfDC+fAOXx9jvyBpwPrgaYuScmER99HcgJ5D3fanbMWpISOx+Qy
	jkuc=
X-Gm-Gg: ASbGnctgnJp/RJZxBJ5IveeoEcX1oappz2YdkFGQe0H5B0VSSGex5MBXiVsDmot0XKM
	jRp8tkXyC4H34gecEIMDeUDu1KPuOa9sNV9kkBtYeODGS+VWViwnIuqG1UvWLAsxsDuwVUYfNEP
	aEyEy/PPRvdK7u6WpNjycuQfJ2miL0yN3+Zo107r/yhPJZIzqMnK0zoGhbPRuba9ZEY3hvDAylx
	PJCwVsqi/6Vt0kM9REH6w6jqCzNMVG91IXoKPuRh6reytoatJnDozln2ggPRtkjd0tjt6Vk8RHK
	cztLEIX/0yWIO5p56JsIQ0SRdD2mv4ZlPt1KiOm5gxJ4UbpVydKYDPd35O3r8lTNNJcfUpi/cQh
	SahXU8/g5xnnrxGlIIXG81b2It8ZPG5k8CejXYJgi1QZzRO7xJXa8TKSB3s0JwkEq1KUH86nVJU
	9rta0NYUEXDseQ4eD+A/pWihzOtXPTKIX2Iqog6SVV6T/bcSMNOMdksn1ePd0DYQF3
X-Google-Smtp-Source: AGHT+IGNSi9EfQWVr+QcWe2PZLCDNYCyAdY9Arukhjy3Jxv9LEg+T4zsVGiibXpzQU+qJT6q52s/AA==
X-Received: by 2002:a17:907:3e9e:b0:b70:df0d:e2f1 with SMTP id a640c23a62f3a-b73319b2c68mr559087266b.28.1763031531576;
        Thu, 13 Nov 2025 02:58:51 -0800 (PST)
Message-ID: <e220ea61-5483-4a91-a8b5-ac8fa387d9ab@suse.com>
Date: Thu, 13 Nov 2025 11:58: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>, 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] symbols: don't over-align data
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

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>
---
Strictly speaking, however, we may have been under-aligning the arrays for
x86-64: The psABI mandates
"An array uses the same alignment as its elements, except that a local or
 global array variable of length at least 16 bytes or a C99 variable-
 length array variable always has alignment of at least 16 bytes."
I don't think the compiler can leverage that though, as long as we declare
the arrays as incomplete ones (without dimension). Note the subtlety
though: C99 distinguishes [] and [*] (only the latter being "variable
length"), while the psABI may not mean to limit its constraint to the
latter form.

This, contextually (not functionally), goes on top of "symbols: check
table sizes don't change between linking passes 2 and 3"

--- a/xen/tools/symbols.c
+++ b/xen/tools/symbols.c
@@ -252,7 +252,7 @@ static void read_map(FILE *in)
 	}
 }
 
-static void output_label(const char *label, bool keep)
+static void output_label(const char *label, const char *align, bool keep)
 {
 	static bool pending;
 
@@ -266,10 +266,10 @@ static void output_label(const char *lab
 		return;
 
 	if (symbol_prefix_char) {
-		printf("DATA(%c%s, ALGN)\n", symbol_prefix_char, label);
+		printf("DATA(%c%s, %s)\n", symbol_prefix_char, label, align);
 		printf("#define CURRENT %c%s\n", symbol_prefix_char, label);
 	} else {
-		printf("DATA(%s, ALGN)\n", label);
+		printf("DATA(%s, %s)\n", label, align);
 		printf("#define CURRENT %s\n", label);
 	}
 }
@@ -353,9 +353,9 @@ static void write_src(void)
 
 	printf("#ifndef SYMBOLS_ORIGIN\n");
 	printf("#define SYMBOLS_ORIGIN 0\n");
-	output_label("symbols_addresses", false);
+	output_label("symbols_addresses", "ALGN", false);
 	printf("#else\n");
-	output_label("symbols_offsets", true);
+	output_label("symbols_offsets", "ALGN", true);
 	printf("#endif\n");
 	for (i = 0, ends = 0; i < table_cnt; i++) {
 		printf("\tPTR\t%#llx - SYMBOLS_ORIGIN\n", table[i].addr);
@@ -380,14 +380,14 @@ static void write_src(void)
 		       table[i].addr + table[i].size);
 	}
 
-	output_label("symbols_num_addrs", false);
+	output_label("symbols_num_addrs", "4", false);
 	printf("\t.long\t%d\n", table_cnt + ends);
 
 	/* table of offset markers, that give the offset in the compressed stream
 	 * every 256 symbols */
 	markers = malloc(sizeof(*markers) * ((table_cnt + ends + 255) >> 8));
 
-	output_label("symbols_names", false);
+	output_label("symbols_names", "1", false);
 	for (i = 0, off = 0, ends = 0; i < table_cnt; i++) {
 		if (((i + ends) & 0xFF) == 0)
 			markers[(i + ends) >> 8] = off;
@@ -412,11 +412,11 @@ static void write_src(void)
 		++off;
 	}
 
-	output_label("symbols_markers", false);
+	output_label("symbols_markers", "4", false);
 	for (i = 0; i < ((table_cnt + ends + 255) >> 8); i++)
 		printf("\t.long\t%d\n", markers[i]);
 
-	output_label("symbols_token_table", false);
+	output_label("symbols_token_table", "1", false);
 	off = 0;
 	for (i = 0; i < 256; i++) {
 		best_idx[i] = off;
@@ -425,12 +425,12 @@ static void write_src(void)
 		off += strlen(buf) + 1;
 	}
 
-	output_label("symbols_token_index", false);
+	output_label("symbols_token_index", "2", false);
 	for (i = 0; i < 256; i++)
 		printf("\t.short\t%d\n", best_idx[i]);
 
 	if (sort_by_name) {
-		output_label("symbols_num_names", false);
+		output_label("symbols_num_names", "4", false);
 		printf("\t.long\t%d\n", table_cnt);
 
 		/* Sorted by original symbol names and type. */
@@ -439,12 +439,12 @@ static void write_src(void)
 		/* A fixed sized array with two entries: offset in the
 		 * compressed stream (for symbol name), and offset in
 		 * symbols_addresses (or symbols_offset). */
-		output_label("symbols_sorted_offsets", false);
+		output_label("symbols_sorted_offsets", "4", false);
 		for (i = 0; i < table_cnt; i++)
 			printf("\t.long %u, %u\n", table[i].stream_offset, table[i].addr_idx);
 	}
 
-	output_label(NULL, false);
+	output_label(NULL, NULL, false);
 	free(markers);
 }
 


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 11:06:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 11:06:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160973.1489000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJVAD-0005wc-1k; Thu, 13 Nov 2025 11:06:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160973.1489000; Thu, 13 Nov 2025 11:06:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJVAC-0005wV-UD; Thu, 13 Nov 2025 11:06:52 +0000
Received: by outflank-mailman (input) for mailman id 1160973;
 Thu, 13 Nov 2025 11:06: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJVAB-0005wP-KT
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 11:06:51 +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 da598ad3-c080-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 12:06:50 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-64162c04f90so1196830a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 03:06: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
 a640c23a62f3a-b734fa81296sm145339066b.6.2025.11.13.03.06.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 03:06: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: da598ad3-c080-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763032009; x=1763636809; 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=KMiMMNuk/Xb6CdxzNNI9lynPChI9V/SnNm4r0SBAisU=;
        b=CA+meWIt4ZOIf6gOJyoFW1IYBLe0O5cmdMHLDrbeMXenX3GYV+n3dMQygejBnz2JG/
         bvaiD/I2IT9Q0oGeSuA3XY10Ta3chb9ZJHboWF8wNM5tuKCJSFVT2nOPn1DLf1DoIiqu
         2TR3pV9d/l1Zb+KIu0gp5JEDXN99gQnPQ/nN4v/TnSztzV8SEDUiRHEd8ef30gh/LAIG
         t2LIbbgG3K2h1Ral1FSG1FKMah34/6mgcnoczd9in0sONLeD4uhoP6k/DfT+sbMDGYGK
         dwtJxkp1zpIR4YVkNPHJ3ID9gGrNoDYrEa6IxpgOSit1v9res3kEeerCh/6Ks05o20me
         cH2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763032009; x=1763636809;
        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=KMiMMNuk/Xb6CdxzNNI9lynPChI9V/SnNm4r0SBAisU=;
        b=XVAGWQdSJ1uKulpjBQTIvTEKJuLgkwuKiBTD4Fj62BjTAFe6Vhx3ND0V0vMipugmMM
         lHm0opDKD7XSPO26tgZbuGpWokngzD1OLA/2eIqZy8/zxH9LafmAiWYsU4mIyQMK4rUh
         McCPOO8DaCg4I2ClnZc/FUdmEeWbVZC8UCxnEWrUg6EnhJfrlogrCp3urBkPk6og+dyu
         nvHsCwIJwCyLLdBbk7HFalt4E3cgsWV4LsIN/NsQXVTblw9QFHd1sKxGqFV9hOh5JhQF
         csI59iAV6qmEi9+csYZvzvpLwRxlStG79NXsFRUPYepZ4E5nwIKvC2bFDYleklZWpKve
         B8Ag==
X-Gm-Message-State: AOJu0Ywj9mcdDYGeemVr8sLGl3SJRAYTjlb0OqSaA/hEtZWJDSDipCCB
	1TbOSqpgFRCeflV9sxVJV9eWKZKrc3QbmrcyeaLityqfR2fjPZzSPxoVPvCpg/uK70Iv9cxYAtP
	b6AI=
X-Gm-Gg: ASbGnct8doW7JNWEr32s/Jh2G6g/x073p66H/v8aNcH/jsfhbgOhDLSxHgRba/mE1og
	OFvAtgGm9yKj0Pw628K0/VPKJ0vHj3mZZv3HXxb6bxVKsCocG00Qp4gdAeFpbI8/PPjMetoYzjb
	X66lB67nK/lZUA+i2jmUJM05eeN5sYbXvpAdAvr0k1CHmEC23jHFg1WTt8lNUO+07uRc56Hssfw
	uOpQTxxEfbJ8bWJHlTMT4MjpuuMg55v6ExVtmDPBAnPFbbEE1+eNHjJMU69DKvzi3YnwYWE1k8M
	+WIO62dfuJJL+W9vyEjO2UBAd8OJnSu7OSYJYA2r8qY4EgogxMQz20vzOEa7u9C8lplCortTdIa
	4QUOeBWompJFOKJOui5HXxQSCifTimkutaE2IVG4OHhfdaxtFjMUoaJqJdpUISMA9Yk81rBCIet
	B/ar9KSk/xLfTxyT+imdQZq2j18Sm/FdJbE2WHsrn1QFWHED3+kI9cRrmGDBZqz9SiZcV59Fzlt
	K0=
X-Google-Smtp-Source: AGHT+IF6gIgVJC9b4afCrtu8/vX+KmbglXbj7M86DBTwummJBbG3XMTLtBnxW9iKLJC651ujjDrFAQ==
X-Received: by 2002:a17:906:dc8a:b0:aff:c306:de51 with SMTP id a640c23a62f3a-b7331970801mr702571766b.4.1763032009542;
        Thu, 13 Nov 2025 03:06:49 -0800 (PST)
Message-ID: <bdbb2884-c2d2-415a-8891-a598d112e34c@suse.com>
Date: Thu, 13 Nov 2025 12:06:47 +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: "brk" allocator
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Derive for our purposes something similar to what Linux has been having for
a long while.

1: x86: introduce "brk" allocator
2: x86/EFI: replace ebmalloc()
3: xhci-dbc: use brk_alloc()

To reduce padding holes, .bss.page_aligned and per-CPU data may want moving
immediately ahead of __brk_start[]. Albeit then the tail of per-CPU data will
all be padding space; sadly the TSS wants/needs page-aligning for XPTI
purposes.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 11:08:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 11:08:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160986.1489009 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJVBg-0006Vy-EM; Thu, 13 Nov 2025 11:08:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160986.1489009; Thu, 13 Nov 2025 11: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 1vJVBg-0006Vr-BL; Thu, 13 Nov 2025 11:08:24 +0000
Received: by outflank-mailman (input) for mailman id 1160986;
 Thu, 13 Nov 2025 11:08:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJVBe-0006Vc-VW
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 11:08:22 +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 10ba1ad9-c081-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 12:08:21 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-640b4a52950so977620a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 03:08: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
 4fb4d7f45d1cf-6433a3d82cfsm1218407a12.2.2025.11.13.03.08.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 03:08: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: 10ba1ad9-c081-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763032101; x=1763636901; 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=S2UYFN6yYiokysvt0u9vsy7o90dfh/ypuxlmafL+NtQ=;
        b=GqXYFQh15PdQTex46f/7bWAY36/P3DGuA1mpq2+GvubjZzdPom6NQ1j7LQwyDxxiAQ
         dMPb3U8A6qj3bElOJroSK+S4EzcCQ5c2IOtfAuqdYAG7FFyBmMaqWND0dlsx1zSpd18f
         ppVTf0Ji0cmu7KPvzD8ieSWbCf4j1jsoKcl/PgKJiDh/CvjnUkZK0gZYpQlZs7sDXyp1
         qes7EjA31WBILNai4+cxeGaU75YBHV8H78KagDJBN/A+KXGeoUPuCE55DffUwDMN2Ajw
         nD8XajVIftxtkjR+5HF4wTthix1UpNQTBCVl5q33WXuwGtOX4zDN7qNzKrpgYwDrLfKO
         83PA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763032101; x=1763636901;
        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=S2UYFN6yYiokysvt0u9vsy7o90dfh/ypuxlmafL+NtQ=;
        b=le+CW0eJScbVJxeFnfNrJfcLwnfqSfZ56T/tXgmGpLBo2V5qj5jtCcgEMIOgHNAt3v
         fKSHk+vzVaUWFYnwKzVEximCwgIGqHzZx6KaZon+BYpRmFALLjr8Wxz9MCYYun1kN2M9
         7hPj08uBeufK8OqrtTTMv1eh1VEcsR42h2OPGa+gj8aLhiv6kCaGBq7cn3kQsREzLJ+h
         GOgbt1kIurRB6wvhYAoyTCmEAcIFFrOTDp+vOo6DeBaCV3leCYIwtGJlvFMw4Fg29wON
         /Y3lT2BYdKJbNnr5HVBZ0zyyq4xxQxHhfi8oeZAtwDSoeBNX2x/bADUxxgssZRInfpZQ
         PJOA==
X-Gm-Message-State: AOJu0YzqIla6MDmHRip5kCMPWFWAv97+VLIKKzjpdoa2q49P9uUEnQRc
	/mppMoKEGJtloue8nk6eUZZVIIKXfZKK7W9ps3oDy+9WZjcGb9VNE/OPs1xS9LXPSdUJm/7vZaV
	bjvc=
X-Gm-Gg: ASbGncvNMii/ROtH2XyAvww4tjeGA18fZfAC6HQF3Cl6nQJZ0r3VLAKnLK6IWwLBiaA
	cV+28sjznrPuv1QrTtxi5XHvTSb0ddb/ditAmk1mEeEz9rIqQXBH41+yEG+idSvoH3lkPOQxd+3
	ZoeTSXQA6kLx7A68bhdR9EZ0RRTMHhkYRFStIbVnzj4Fm/I5gORTAQXacY+Xc4swipMtrIAZDLv
	UCLhlZ5eG2jTgA4Lq4UjrbvC8t4myRkBlltXCz/2KVANswur7mSMKYgZroklEYk75A4URBcfHao
	Bx/XNiuftjvpndRnR+5e0XTqn/o5advlH6eqeXq9vSjrVEz7P67q6dtR8QUPBb7bFtpyoDm/XL8
	68bhnZ3fG9YOphGSyKem/xbq4Z0LcpHV/td3ox/ZjVCu3FF/lPCRKUuEr9kcUR1b76aoE8Pr1b7
	aWxEMKaF9IzdXTfELtA5Uw2MtoA+kQahsQUxJ4gH8P8upEY7h9K+0h927bx+YbfwG/JPUCYj2ki
	bk=
X-Google-Smtp-Source: AGHT+IHk2TCKhIrULeEnrNiaqVuyU9XRrPVMRnp6fZo9vR8OYv1AHu3OIULBKyqagSa0MVz/72/Bew==
X-Received: by 2002:a05:6402:518d:b0:640:cc76:ae35 with SMTP id 4fb4d7f45d1cf-6431a53071dmr5609782a12.21.1763032100740;
        Thu, 13 Nov 2025 03:08:20 -0800 (PST)
Message-ID: <7a3eb7f3-db3e-4c2f-a231-cdf05a14be26@suse.com>
Date: Thu, 13 Nov 2025 12:08:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 1/3] x86: introduce "brk" allocator
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: <bdbb2884-c2d2-415a-8891-a598d112e34c@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: <bdbb2884-c2d2-415a-8891-a598d112e34c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

... to replace ebmalloc(), and then to find further use(s) to allow
recovering memory which is needed very early (and hence needs setting up
statically), but may not fully be used (or not used at all).

Note that unlike free_ebmalloc_unused_mem(), brk_free_unused() (once
other code is converted) will be able to free part of the BRK space even
in the xen.efi case. That would happen if BRK space extends across a 2Mb
boundary, and actual use stops before that boundary.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Changing setup.c's reserve_e820_ram() uses would be cumbersome when done
right here. That'll be done when ebmalloc() is replaced, and hence
what's there can also simply be replaced.

The xen.efi detection may want separating out into a helper.

When linking xen.efi, ld produces a base relocation for the reference to
__subsystem__, which is wrong (that's an absolute symbol, after all).
While that will need fixing there, it does no harm for our purposes.

--- a/xen/arch/x86/boot/Makefile
+++ b/xen/arch/x86/boot/Makefile
@@ -1,4 +1,5 @@
 obj-bin-y += head.o
+obj-bin-y += brk.init.o
 obj-bin-y += built-in-32.o
 obj-bin-y += $(obj64)
 
--- /dev/null
+++ b/xen/arch/x86/boot/brk.c
@@ -0,0 +1,72 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include <xen/efi.h>
+#include <xen/lib.h>
+#include <xen/mm.h>
+#include <xen/page-defs.h>
+
+#include <asm/brk.h>
+
+extern char __brk_start[];
+extern const char __bss_end[];
+
+static unsigned long __initdata allocated;
+static bool __initdata finished;
+
+void *__init brk_alloc(size_t size)
+{
+    void *ptr = __brk_start + allocated;
+
+    if ( finished )
+        return NULL;
+
+    /* Allocations PAGE_SIZE and up will be page-aligned. */
+    if ( size >= PAGE_SIZE )
+        allocated = ROUNDUP(allocated, PAGE_SIZE);
+
+    allocated += ROUNDUP(size, sizeof(void *));
+
+    if ( allocated > __bss_end - __brk_start )
+        return NULL;
+
+    return ptr;
+}
+
+unsigned long __init brk_get_unused_start(void)
+{
+    finished = true;
+
+    allocated = ROUNDUP(allocated, PAGE_SIZE);
+
+    return (unsigned long)__brk_start + allocated;
+}
+
+void __init brk_free_unused(void)
+{
+    unsigned long start = brk_get_unused_start(),
+                  end = (unsigned long)__bss_end;
+    unsigned int subsys;
+
+    /*
+     * Only xen.efi will have the symbol __subsystem__ available, and it'll
+     * be non-zero (10) there.  In ELF the symbol will be undefined, and
+     * hence zero will be loaded into the register.
+     */
+    asm ( ".weak __subsystem__; mov $__subsystem__, %0" : "=r" (subsys) );
+
+    /* using_2M_mapping() isn't available here. */
+    if ( IS_ENABLED(CONFIG_XEN_ALIGN_2M) || subsys )
+        start = PAGE_ALIGN_2M(start);
+
+    if ( start >= end )
+        return;
+
+    destroy_xen_mappings(start, PAGE_ALIGN_2M(end));
+
+    /*
+     * By reserving needed space early in the E820 map, excess space gets freed
+     * way before we make it here. Don't free the range a 2nd time.
+     */
+
+    printk(XENLOG_INFO "Freed %lukB unused BRK memory\n", (end - start) >> 10);
+}
--- /dev/null
+++ b/xen/arch/x86/include/asm/brk.h
@@ -0,0 +1,7 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include <xen/types.h>
+
+void *brk_alloc(size_t size);
+unsigned long brk_get_unused_start(void);
+void brk_free_unused(void);
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -331,7 +331,11 @@ SECTIONS
        __bss_start = .;
        *(.bss.page_aligned*)
        PERCPU_BSS
-       *(.bss .bss.*)
+       *(.bss .bss.[a-zA-Z0-9_]*)
+       . = ALIGN(PAGE_SIZE);
+       __brk_start = .;
+       *(.bss..brk.page_aligned*)
+       *(.bss..brk*)
        . = ALIGN(POINTER_ALIGN);
        __bss_end = .;
   } PHDR(text)
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -112,6 +112,7 @@
 #include <xen/vmap.h>
 #include <xen/xmalloc.h>
 
+#include <asm/brk.h>
 #include <asm/e820.h>
 #include <asm/fixmap.h>
 #include <asm/flushtlb.h>
@@ -337,6 +338,8 @@ void __init arch_init_memory(void)
 
     efi_init_memory();
 
+    brk_free_unused();
+
 #ifndef NDEBUG
     if ( highmem_start )
     {



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 11:09:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 11:09:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1160998.1489021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJVCw-00071O-Nx; Thu, 13 Nov 2025 11:09:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1160998.1489021; Thu, 13 Nov 2025 11: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 1vJVCw-00071H-K0; Thu, 13 Nov 2025 11:09:42 +0000
Received: by outflank-mailman (input) for mailman id 1160998;
 Thu, 13 Nov 2025 11:09: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJVCv-00071B-21
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 11:09:41 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f821288-c081-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 12:09:39 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-6419e6dab7fso999838a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 03:09: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
 4fb4d7f45d1cf-6433a3d7335sm1220401a12.4.2025.11.13.03.09.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 03:09: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: 3f821288-c081-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763032179; x=1763636979; 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=FL0FICzmakeWQSwiOt+QBkhmyqz6vTIP8is0c/IB2xQ=;
        b=f1kSr+jvoCD/ycTzJk2OQk9n2YEYYI3NW7WZfN2+Q6EK2rDB14BvCTFwqWG7vmrKQG
         J5cvxwrvtP1RBN5Q+N89D2a6w+wXceXC0vw+pDx9Syh3ywOBZQ1scWhklINFC69dLh7S
         Dzot59J2qSv1Sa6+yKnd/bJSlDyvRtt2FeIu0UYjyEfOaahpnWwuYdlqUZODwGLb8/sO
         bsrlXl66DSmcF6viGbMnRjtEhbPDRt+XCQiig3LQuQnnp9tcBqqdZhpFhhDcakJI0LyW
         zMtks4dDz8sM4ZnrmiGT1TVQ9GMXPdlP9hwcwQ2n5aEtQMiFtDo5An4vG5L1O8cXVPBn
         6c+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763032179; x=1763636979;
        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=FL0FICzmakeWQSwiOt+QBkhmyqz6vTIP8is0c/IB2xQ=;
        b=tItKeUVnikXsxGJHtIlNs+8Ug2GT3HRZkdubecqmk+Oh6RShorttFMvzKxssan0RzR
         qzsNMJTjKcNJCkPTkHrMj8qpOcQnrGesrJtB5vb9+6SwAmiqQCbiaKGQ/Gj4GJVLUV2x
         q3qfPJHuSy+DWGYpNfekDnMzPgt4isTcTVFr5zx+ftbSH/jmWkQCTGlbInBJepqpEH5x
         NC0m0I9XhAYB6QaYWM6ciINNfbscqCPfFqnJEbDTs2OgziEHCq3yGeF32FVWmL9UJPtE
         AiB98lavZCNBrTztqnQKtAOjiQOUamwgDdSuJNfhrWPebFJsFTEn5r8cec+lIORuD63j
         8I4A==
X-Gm-Message-State: AOJu0YzKoP/MA/XO6f0w+F2bVQDudMZN10F0dXZV41UgWW9GR1/vaoiB
	t4yZg1E8eFMFfP8J9ZvIWh5aRNuFL2Xt5reMQRwbPA58larAm6aZRywzXKltdw4REYxTPMlMsck
	Rt7s=
X-Gm-Gg: ASbGncvLYqCuiotSth/+IIPkRJRE4OXFS5uGjDgZbhKTM+Z9+RYLgulSvvdW6r31Rh/
	OtCgV7KDOkk35j1gFMmxZvDLl/WPZlWSv7skB2/exZgXMLBbIGk61oTypE89y4pfCPxHKV47vwK
	ELBuzN5BoK5tsNepL+XM7SVMx5JVLtIAfs9AlU0dSYJhuUXUMRvoVRmH7jMML/mJ9VnkAA3qqIJ
	M0i56fBvB75t5cg/4q7EGUk0lV1z3mi8Accs719MaWBr4LBZG0WKTB5E79g+4griB9GGolbH9JC
	gCemUl9RhDK3HMaqjHs+V/kA841IM/IU0VfRMqKS4JQrFd+W5i616NK8WUYn6jQ+q7XSEPB3K/I
	WZ041MUbfH8Xmen9duF0e6Gop60uJgqOVkuOu7wz/h/EjXJbjjYLCKzYKfk/V8BHPRa2F5w32FG
	rRgWVFShQivxb3nx7BBRnehNGMXWbbQoh29GfF7qiYSh/g7fcXihkimDc0QwPd0NC1Kd/VES1kg
	kE=
X-Google-Smtp-Source: AGHT+IGg7q/D9GwuBWGMxPhUPl54zwC+G92GrsPaapBaSO0AO/HKdqIgTALzi0uYCvztJsOYAccPvg==
X-Received: by 2002:a05:6402:2707:b0:640:bd90:350d with SMTP id 4fb4d7f45d1cf-6431a4c014fmr5547928a12.1.1763032179224;
        Thu, 13 Nov 2025 03:09:39 -0800 (PST)
Message-ID: <452fdf1f-646a-4bb1-83ea-ac4c998a096b@suse.com>
Date: Thu, 13 Nov 2025 12:09:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/3] x86/EFI: replace ebmalloc()
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <bdbb2884-c2d2-415a-8891-a598d112e34c@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: <bdbb2884-c2d2-415a-8891-a598d112e34c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Use the new brk_alloc() instead, with ebmalloc() merely being a thin
wrapper.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
I'm not quite certain whether we ought to permit non-page-granular
reservations. The in-memory image being somewhat larger due to possibly
excessive padding isn't really a big problem, I think.

--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -262,7 +262,7 @@ quiet_cmd_obj_init_o = INIT_O  $@
 define cmd_obj_init_o
     $(OBJDUMP) -h $< | while read idx name sz rest; do \
         case "$$name" in \
-        .*.local) ;; \
+        .*.local|.bss..brk*) ;; \
         .text|.text.*|.data|.data.*|.bss|.bss.*) \
             test $$(echo $$sz | sed 's,00*,0,') != 0 || continue; \
             echo "Error: size of $<:$$name is 0x$$sz" >&2; \
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -10,6 +10,7 @@
 #include <xen/vga.h>
 
 #include <asm/boot-helpers.h>
+#include <asm/brk.h>
 #include <asm/e820.h>
 #include <asm/edd.h>
 #include <asm/microcode.h>
@@ -119,6 +120,18 @@ static void __init relocate_trampoline(u
     reloc_trampoline64();
 }
 
+DEFINE_BRK(efi, MB(1));
+
+static void *__init ebmalloc(size_t size)
+{
+    void *ptr = brk_alloc(size);
+
+    if ( !ptr )
+        blexit(L"Out of BRK memory\r\n");
+
+    return ptr;
+}
+
 static void __init place_string(u32 *addr, const char *s)
 {
     char *alloc = NULL;
--- a/xen/arch/x86/efi/stub.c
+++ b/xen/arch/x86/efi/stub.c
@@ -41,12 +41,4 @@ void __init noreturn efi_multiboot2(EFI_
 
 void __init efi_init_memory(void) { }
 
-bool efi_boot_mem_unused(unsigned long *start, unsigned long *end)
-{
-    /* FIXME: Simplify once the call here with two NULLs goes away. */
-    if ( start || end )
-        *start = *end = (unsigned long)_end;
-    return false;
-}
-
 void efi_update_l4_pgtable(unsigned int l4idx, l4_pgentry_t l4e) { }
--- a/xen/arch/x86/include/asm/brk.h
+++ b/xen/arch/x86/include/asm/brk.h
@@ -2,6 +2,10 @@
 
 #include <xen/types.h>
 
+#define DEFINE_BRK(var, size) \
+    static char __section(".bss..brk.page_aligned") __aligned(PAGE_SIZE) \
+        __used var ## _brk_[size]
+
 void *brk_alloc(size_t size);
 unsigned long brk_get_unused_start(void);
 void brk_free_unused(void);
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -9,6 +9,8 @@ extern const char __2M_rodata_start[], _
 extern char __2M_init_start[], __2M_init_end[];
 extern char __2M_rwdata_start[], __2M_rwdata_end[];
 
+extern unsigned long brk_end;
+
 extern unsigned long xenheap_initial_phys_start;
 extern uint64_t boot_tsc_stamp;
 
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -31,6 +31,7 @@
 #include <asm/alternative.h>
 #include <asm/apic.h>
 #include <asm/bootinfo.h>
+#include <asm/brk.h>
 #include <asm/bzimage.h>
 #include <asm/cpu-policy.h>
 #include <asm/e820.h>
@@ -163,6 +164,8 @@ cpumask_t __read_mostly cpu_present_map;
 
 unsigned long __read_mostly xen_phys_start;
 
+unsigned long __ro_after_init brk_end;
+
 /* Only used in asm code and within this source file */
 char asmlinkage __section(".init.bss.stack_aligned") __aligned(STACK_SIZE)
     cpu0_stack[STACK_SIZE];
@@ -1109,7 +1112,6 @@ void asmlinkage __init noreturn __start_
     struct boot_info *bi;
     unsigned long nr_pages, raw_max_page;
     int i, j, bytes = 0;
-    unsigned long eb_start, eb_end;
     bool acpi_boot_table_init_done = false, relocated = false;
     bool vm_init_done = false;
     int ret;
@@ -1473,7 +1475,7 @@ void asmlinkage __init noreturn __start_
         /*
          * This needs to remain in sync with remove_xen_ranges() and the
          * respective reserve_e820_ram() invocation below. No need to
-         * query efi_boot_mem_unused() here, though.
+         * query brk_get_unused_start() here, though.
          */
         xen->start = virt_to_maddr(_stext);
         xen->size  = __2M_rwdata_end - _stext;
@@ -1616,18 +1618,11 @@ void asmlinkage __init noreturn __start_
     if ( !xen_phys_start )
         panic("Not enough memory to relocate Xen\n");
 
-    /* FIXME: Putting a hole in .bss would shatter the large page mapping. */
-    if ( using_2M_mapping() )
-        efi_boot_mem_unused(NULL, NULL);
-
     /* This needs to remain in sync with remove_xen_ranges(). */
-    if ( efi_boot_mem_unused(&eb_start, &eb_end) )
-    {
-        reserve_e820_ram(&boot_e820, __pa(_stext), __pa(eb_start));
-        reserve_e820_ram(&boot_e820, __pa(eb_end), __pa(__2M_rwdata_end));
-    }
-    else
-        reserve_e820_ram(&boot_e820, __pa(_stext), __pa(__2M_rwdata_end));
+    brk_end = brk_get_unused_start();
+    if ( using_2M_mapping() )
+        brk_end = PAGE_ALIGN_2M(brk_end);
+    reserve_e820_ram(&boot_e820, __pa(_stext), __pa(brk_end));
 
     /* Late kexec reservation (dynamic start address). */
     kexec_reserve_area();
@@ -2231,7 +2226,6 @@ __initcall(init_xen_cap_info);
 
 int __hwdom_init remove_xen_ranges(struct rangeset *r)
 {
-    paddr_t start, end;
     int rc;
 
     /* S3 resume code (and other real mode trampoline code) */
@@ -2253,26 +2247,10 @@ int __hwdom_init remove_xen_ranges(struc
         return rc;
 
     /* hypervisor .data + .bss */
-    if ( efi_boot_mem_unused(&start, &end) )
-    {
-        ASSERT(__pa(start) >= __pa(&__2M_rwdata_start));
-        rc = rangeset_remove_range(r, PFN_DOWN(__pa(&__2M_rwdata_start)),
-                                   PFN_DOWN(__pa(start) - 1));
-        if ( rc )
-            return rc;
-        ASSERT(__pa(end) <= __pa(&__2M_rwdata_end));
-        rc = rangeset_remove_range(r, PFN_DOWN(__pa(end)),
-                                   PFN_DOWN(__pa(&__2M_rwdata_end) - 1));
-        if ( rc )
-            return rc;
-    }
-    else
-    {
-        rc = rangeset_remove_range(r, PFN_DOWN(__pa(&__2M_rwdata_start)),
-                                   PFN_DOWN(__pa(&__2M_rwdata_end) - 1));
-        if ( rc )
-            return rc;
-    }
+    rc = rangeset_remove_range(r, PFN_DOWN(__pa(&__2M_rwdata_start)),
+                               PFN_DOWN(__pa(brk_end) - 1));
+    if ( rc )
+        return rc;
 
     return 0;
 }
--- a/xen/arch/x86/tboot.c
+++ b/xen/arch/x86/tboot.c
@@ -321,8 +321,6 @@ void tboot_shutdown(uint32_t shutdown_ty
     /* if this is S3 then set regions to MAC */
     if ( shutdown_type == TB_SHUTDOWN_S3 )
     {
-        unsigned long s, e;
-
         /*
          * Xen regions for tboot to MAC. This needs to remain in sync with
          * remove_xen_ranges().
@@ -336,16 +334,8 @@ void tboot_shutdown(uint32_t shutdown_ty
         g_tboot_shared->mac_regions[1].size = __2M_rodata_end - _stext;
         /* hypervisor .data + .bss */
         g_tboot_shared->mac_regions[2].start = (uint64_t)__pa(&__2M_rwdata_start);
-        g_tboot_shared->mac_regions[2].size = __2M_rwdata_end - __2M_rwdata_start;
-        if ( efi_boot_mem_unused(&s, &e) )
-        {
-            g_tboot_shared->mac_regions[2].size =
-                s - (unsigned long)__2M_rwdata_start;
-            g_tboot_shared->mac_regions[3].start = __pa(e);
-            g_tboot_shared->mac_regions[3].size =
-                (unsigned long)__2M_rwdata_end - e;
-            g_tboot_shared->num_mac_regions = 4;
-        }
+        g_tboot_shared->mac_regions[2].size =
+            brk_end - (unsigned long)__2M_rwdata_start;
 
         /*
          * MAC domains and other Xen memory
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -1788,8 +1788,6 @@ void __init efi_init_memory(void)
         pte_attr_t prot;
     } *extra, *extra_head = NULL;
 
-    free_ebmalloc_unused_mem();
-
     if ( !efi_enabled(EFI_BOOT) )
         return;
 
--- a/xen/common/efi/ebmalloc.c
+++ /dev/null
@@ -1,74 +0,0 @@
-#include "efi.h"
-#include <xen/init.h>
-#include <xen/mm.h>
-
-#ifdef CONFIG_ARM
-/*
- * TODO: Enable EFI boot allocator on ARM.
- * This code can be common for x86 and ARM.
- * Things TODO on ARM before enabling ebmalloc:
- *   - estimate required EBMALLOC_SIZE value,
- *   - where (in which section) ebmalloc_mem[] should live; if in
- *     .bss.page_aligned, as it is right now, then whole BSS zeroing
- *     have to be disabled in xen/arch/arm/arm64/head.S; though BSS
- *     should be initialized somehow before use of variables living there,
- *   - use ebmalloc() in ARM/common EFI boot code,
- *   - call free_ebmalloc_unused_mem() somewhere in init code.
- */
-#define EBMALLOC_SIZE	MB(0)
-#else
-#define EBMALLOC_SIZE	MB(1)
-#endif
-
-static char __section(".bss.page_aligned") __aligned(PAGE_SIZE)
-    ebmalloc_mem[EBMALLOC_SIZE];
-static unsigned long __read_mostly ebmalloc_allocated;
-
-/* EFI boot allocator. */
-void __init *ebmalloc(size_t size)
-{
-    void *ptr = ebmalloc_mem + ebmalloc_allocated;
-
-    ebmalloc_allocated += ROUNDUP(size, sizeof(void *));
-
-    if ( ebmalloc_allocated > sizeof(ebmalloc_mem) )
-        blexit(L"Out of static memory\r\n");
-
-    return ptr;
-}
-
-bool efi_boot_mem_unused(unsigned long *start, unsigned long *end)
-{
-    /* FIXME: Drop once the call here with two NULLs goes away. */
-    if ( !start && !end )
-    {
-        ebmalloc_allocated = sizeof(ebmalloc_mem);
-        return false;
-    }
-
-    *start = (unsigned long)ebmalloc_mem + PAGE_ALIGN(ebmalloc_allocated);
-    *end = (unsigned long)ebmalloc_mem + sizeof(ebmalloc_mem);
-
-    return *start < *end;
-}
-
-void __init free_ebmalloc_unused_mem(void)
-{
-    unsigned long start, end;
-
-    if ( !efi_boot_mem_unused(&start, &end) )
-        return;
-
-    destroy_xen_mappings(start, end);
-
-#ifdef CONFIG_X86
-    /*
-     * By reserving the space early in the E820 map, it gets freed way before
-     * we make it here. Don't free the range a 2nd time.
-     */
-#else
-    init_xenheap_pages(__pa(start), __pa(end));
-#endif
-
-    printk(XENLOG_INFO "Freed %lukB unused BSS memory\n", (end - start) >> 10);
-}
--- a/xen/common/efi/efi-common.mk
+++ b/xen/common/efi/efi-common.mk
@@ -1,4 +1,4 @@
-EFIOBJ-y := boot.init.o pe.init.o ebmalloc.o runtime.o
+EFIOBJ-y := boot.init.o pe.init.o runtime.o
 EFIOBJ-$(CONFIG_COMPAT) += compat.o
 
 CFLAGS-y += -fshort-wchar
--- a/xen/common/efi/efi.h
+++ b/xen/common/efi/efi.h
@@ -48,10 +48,6 @@ void noreturn blexit(const CHAR16 *str);
 
 const CHAR16 *wmemchr(const CHAR16 *s, CHAR16 c, UINTN n);
 
-/* EFI boot allocator. */
-void *ebmalloc(size_t size);
-void free_ebmalloc_unused_mem(void);
-
 const void *pe_find_section(const void *image, const UINTN image_size,
                             const CHAR16 *section_name, UINTN *size_out);
 
--- a/xen/include/xen/efi.h
+++ b/xen/include/xen/efi.h
@@ -39,7 +39,6 @@ static inline bool efi_enabled(unsigned
 extern bool efi_secure_boot;
 
 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);



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 11:10:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 11:10:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161008.1489030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJVDY-0008Tv-0U; Thu, 13 Nov 2025 11:10:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161008.1489030; Thu, 13 Nov 2025 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 1vJVDX-0008Tm-SA; Thu, 13 Nov 2025 11:10:19 +0000
Received: by outflank-mailman (input) for mailman id 1161008;
 Thu, 13 Nov 2025 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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJVDW-00071B-Po
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 11:10:18 +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 565afd64-c081-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 12:10:18 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b472842981fso81494066b.1
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 03:10: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
 a640c23a62f3a-b734fed80f0sm138517166b.66.2025.11.13.03.10.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 03:10: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: 565afd64-c081-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763032218; x=1763637018; 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=L0v3DkxT0rMrBP+phTdGWD9D4HrfyHtMTjxGYVRGi64=;
        b=azkMXHmthTNSE0JtAmQvjX/gZCm1wHvtfeJRgrPvz8Q/BAE5/vOuZhDOxRxXyPH3aA
         ONQ4ri0B+AZSsJadrxewwEqHGW7bHQq+Zsls9XI4U2d8HuI650JHGS+2SRVpUG1zP4B7
         yAk0nmuapOidv+owkDWda8DSRve2v3+mtfN04NHKftUG8J5o3Z0j6ikxV6bsKWMWinXR
         AImuyGpSFVFgJIQPA+XYyG3k1QdvxeNBZ23lfpCgZkmSa12Lcga4+FKt9Q5BU5uo2O+c
         p2oojfhlcf/UZR5Qt3tgrOZ40vhC7K8JE7p853IJBf0y7wbrm+uMaUlR2N9iiJ+lmqUT
         DCEQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763032218; x=1763637018;
        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=L0v3DkxT0rMrBP+phTdGWD9D4HrfyHtMTjxGYVRGi64=;
        b=iRA96084bRMM3tCUVYV0bQRsbc+ErRZ4R/2WIcyXDfz1Rzk5bnTIvda15C4BbQNnyL
         a0zDpPN2MrEs4tcuj0HwGBYOY3EYBBCstm1sMHAscvPDbemhtiDExb8gI0ZVX3mjVh2j
         ywquzyoh4KIC/NTNloWoemn3VbZxP/nbDae7QFG3vAOcDMZgIXTDZxvaPsp/OKiU2Je1
         6GYgi4xkOftDz8UCeQSZ2VIxTjnH3J9ux5PHc8SQXO9YqPD4FcrgilOQZaUBMECvrODU
         5HB3e8J6oh7zjGljAJMdVnsvu9XWQlSoWSSB1Vi5i99CPtBe1HwcRdpmnP28GeTDa+M+
         iF5w==
X-Gm-Message-State: AOJu0Yxw8rdoAu20S0DO5bWJXeqkFCpEwV3cz8IrJij3r/O/5E/jHhD2
	o650xibp3oec97NkBz/SnLLrFGWYrTah7CEzDGsluHwaShf1qGR3TnHlSRbaQp9baS7O0s53CjE
	8pdY=
X-Gm-Gg: ASbGncs///Am+kRKPw6rF6KAi+hNpH5rl4oNZysyg3NIFnaGw9WLVUX5UVCFe/4RTJq
	J7XXZFqa/zTMmHWY59a2I/Vs2+PlH1JRJv3DtY72oU6SsxIYkjifzBDaqijHFHsyTLn1lsXBZcX
	mPov2WTS0jkJUcadlMh1MZslOz6a8+hl4Tc6pDFntp1L3suLnxKSiv9dGXyziLmJWBr4+EZrALg
	TplGZl4q0FoJpM6Lez7q2lqIjr31aNU2uSQGJDfonDyAEpfRpnw2R4iP3GPBCEumXhy9frTFhBN
	4jh40SryS4yYQAgthqEhu+iuuQrkCNN/toiaqA69B58ph42JHlV1FPP2vDuuFMNlLqnM17+Jsdu
	y1sA4+cS0tnP+glYA8Drpl/oO3EpjW1R0RT+KA8/N/aucpqttD7YIvDfzJiwkMAI4IRxHSfO25r
	TRmpv7ts4pJgTIUv/R1tdRwSRS64TJLwLqrtMJbogNFGey979hy9xJqvn5kuUQNYJTMfzfPxO7p
	dY=
X-Google-Smtp-Source: AGHT+IFYExKU88g8Yz6PKEyLXWcACOU6b/Klwd/BLxiJMRvN18WS/41F60lg5t9Fl3F8UF/+Q81JaA==
X-Received: by 2002:a17:907:2d06:b0:b72:a40e:d10 with SMTP id a640c23a62f3a-b7331a6b9e5mr691249866b.40.1763032217422;
        Thu, 13 Nov 2025 03:10:17 -0800 (PST)
Message-ID: <bec55a88-00f3-4961-b1dc-5b9e38d94a32@suse.com>
Date: Thu, 13 Nov 2025 12:10:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 3/3] xhci-dbc: use brk_alloc()
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>, Marek Marczykowski <marmarek@invisiblethingslab.com>
References: <bdbb2884-c2d2-415a-8891-a598d112e34c@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: <bdbb2884-c2d2-415a-8891-a598d112e34c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

This way the relatively large chunk of DMA buffers can be freed when the
driver isn't in use.

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

--- a/xen/drivers/char/xhci-dbc.c
+++ b/xen/drivers/char/xhci-dbc.c
@@ -27,6 +27,8 @@
 #include <xen/serial.h>
 #include <xen/timer.h>
 #include <xen/types.h>
+
+#include <asm/brk.h>
 #include <asm/fixmap.h>
 #include <asm/io.h>
 #include <asm/string.h>
@@ -1321,7 +1323,7 @@ static struct uart_driver dbc_uart_drive
 };
 
 /* Those are accessed via DMA. */
-struct dbc_dma_bufs {
+struct __aligned(PAGE_SIZE) dbc_dma_bufs {
     struct xhci_trb evt_trb[DBC_TRB_RING_CAP];
     struct xhci_trb out_trb[DBC_TRB_RING_CAP];
     struct xhci_trb in_trb[DBC_TRB_RING_CAP];
@@ -1335,8 +1337,7 @@ struct dbc_dma_bufs {
      * DMA-reachable by the USB controller.
      */
 };
-static struct dbc_dma_bufs __section(".bss.page_aligned") __aligned(PAGE_SIZE)
-    dbc_dma_bufs;
+DEFINE_BRK(xhci, sizeof(struct dbc_dma_bufs));
 
 static int __init cf_check xhci_parse_dbgp(const char *opt_dbgp)
 {
@@ -1413,24 +1414,33 @@ void __init xhci_dbc_uart_init(void)
 {
     struct dbc_uart *uart = &dbc_uart;
     struct dbc *dbc = &uart->dbc;
+    struct dbc_dma_bufs *dma_bufs;
 
     if ( !dbc->enable )
         return;
 
-    dbc->dbc_ctx = &dbc_dma_bufs.ctx;
-    dbc->dbc_erst = &dbc_dma_bufs.erst;
-    dbc->dbc_ering.trb = dbc_dma_bufs.evt_trb;
-    dbc->dbc_oring.trb = dbc_dma_bufs.out_trb;
-    dbc->dbc_iring.trb = dbc_dma_bufs.in_trb;
-    dbc->dbc_owork.buf = dbc_dma_bufs.out_wrk_buf;
-    dbc->dbc_iwork.buf = dbc_dma_bufs.in_wrk_buf;
-    dbc->dbc_str = dbc_dma_bufs.str_buf;
+    dma_bufs = brk_alloc(sizeof(*dma_bufs));
+    if ( !dma_bufs )
+    {
+        dbc->enable = false;
+        printk(XENLOG_ERR "XHCI: not enough BRK space available\n");
+        return;
+    }
+
+    dbc->dbc_ctx = &dma_bufs->ctx;
+    dbc->dbc_erst = &dma_bufs->erst;
+    dbc->dbc_ering.trb = dma_bufs->evt_trb;
+    dbc->dbc_oring.trb = dma_bufs->out_trb;
+    dbc->dbc_iring.trb = dma_bufs->in_trb;
+    dbc->dbc_owork.buf = dma_bufs->out_wrk_buf;
+    dbc->dbc_iwork.buf = dma_bufs->in_wrk_buf;
+    dbc->dbc_str = dma_bufs->str_buf;
 
     if ( dbc_open(dbc) )
     {
         iommu_add_extra_reserved_device_memory(
-                PFN_DOWN(virt_to_maddr(&dbc_dma_bufs)),
-                PFN_UP(sizeof(dbc_dma_bufs)),
+                PFN_DOWN(virt_to_maddr(dma_bufs)),
+                PFN_DOWN(sizeof(*dma_bufs)),
                 uart->dbc.sbdf,
                 "XHCI console");
         serial_register_uart(SERHND_XHCI, &dbc_uart_driver, &dbc_uart);



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 11:16:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 11:16:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161026.1489040 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJVJB-0001Em-O1; Thu, 13 Nov 2025 11:16:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161026.1489040; Thu, 13 Nov 2025 11: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 1vJVJB-0001Ef-KT; Thu, 13 Nov 2025 11:16:09 +0000
Received: by outflank-mailman (input) for mailman id 1161026;
 Thu, 13 Nov 2025 11: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJVJA-0001EZ-Sd
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 11:16:08 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 254620bd-c082-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 12:16:05 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-6406f3dcc66so1159768a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 03:16: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
 a640c23a62f3a-b7359bfb238sm49194866b.14.2025.11.13.03.16.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 03:16: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: 254620bd-c082-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763032565; x=1763637365; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=c7QCK1+tg24sjXU8hjpXAn+s9zucVbjuH5q7MgxGunQ=;
        b=R+LOneUPxoVI9/O2o3TM/9OaNaSlPyRO0gcOFlbBeBXBTGtp3F78jnrA/8NeGndHZ9
         iMhv8fzrdkrc6MsK/Y+A38jQlbCpKuXcr8umQr8QRDcrsrASoiigWVs+fL6c94nMuhn7
         nn4W3Dr+LJ1gVU6DHHJSyLv6VeqUtqFt+EgUVgrYNlgD8pk8/LzrsG8LFxvuBFE50Wti
         t5/MXOFs8sfDn21tlu6k2C+5zKModILonatuUtlZE89Bw7b66yuai4HvZ/gQZpPyG55/
         vZoTdI9NLNgp6LXyXnOynPYfRnSP15avPHXxfO2sNJFAtN+6B7P8Fg8mWvhCrjXnfFdW
         8u6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763032565; x=1763637365;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=c7QCK1+tg24sjXU8hjpXAn+s9zucVbjuH5q7MgxGunQ=;
        b=GSQ4QIO0NXTQuCkkNf3+wguzaoeedi9p0TxZplnBNCxkogaFt2brqqk+VzYzYAhnHG
         ShV1IRhYDFniF40mr2/n07s7JtE0qZYdYc95HXIeYqCbrtMQzLyF+HxkKfRlulDVqXwe
         AXW7CpOFgcWjmzdZ/gHovrDnrqUcLhlvy2tUkJeaqDAXn20PFffsEcB9gkgij6irwS7K
         Ux0a0b2krVDRvGNMRbSvCRsqeXb0uYE13P3SSDIeU2LjoCiguTFGJFAavWNf2iL2nHuD
         uZMvMB3RG/AMrsdQvqom5gqVxLM3YWtlJw9Z8giKKWztHgWCXxRcALMI6urLe1q6Aqs8
         5i+Q==
X-Forwarded-Encrypted: i=1; AJvYcCVIv30L9MJnq+9B5R0rLUwd06qcOpDWHW0S2PIcNiFHBAlhuhuMGAtmkZajKPX8tJMVK3xpB4F6B00=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz2eufmfEPUl/pvIrwQe73MpZnfHVrMtIo5ViH0YI0IHfOPC8m0
	84+KKkS3kLNqIQ5B+VyAGQvMdNi+2pUmdN+sn9DS4J00Mrm9wBtX3iZYkYLD1MWVvlYcAIav+II
	BoOs=
X-Gm-Gg: ASbGncvkFzOalOYx+tm4XA2FYWXibXzw721CY3EZJnfHD1+l/QfQFrKpfLjnn5WiPFp
	xBa+0hWj//Aq1xN1Norz5Y/i/ePsKZbgFmqPmhnfrF9WS+RdyOGcv6NkKjcM+rR4bBq9Pc4USk1
	DUbsH2WtynA/nBLMDFTJicvNcLcFpjTn6sqnfJoxVL1Le6NedeIpACYBk/36erCfBZeC9MxEfIE
	GW86lCVbRDFSn1LX/MfPKhiY/zMMR8M6cNlLJAZRC8HVuIBp2lJWVyqgYPJj+aYVF5ZZ/2kv9HO
	y9qy952F5PbdAnlE7Q9tu+BDJpsq2Xu/noVM1oqYnf1bDNfRxfGMbnxULzZ6GXzIfpHZioZiSgp
	cCwVekFRdVxcv8rgBWreQLRu5mvgqQNm+fnYlxJJt1I3izEnzPlHFjK9BHi8PJw+2hyQVmk9Tz6
	tO+PQXPlTmyweu14TC0tINqncE+170dJanFlrumJK8CZLon5wOAiS/yxG9eIV+1t3hz8WjZiFEK
	CE=
X-Google-Smtp-Source: AGHT+IGQZrDQnPIb1iG5tvonIbYfDRWmsVBZc5AGS23JiNkYi/EnNGv4oMr5eEuPc6Xf2nEetIJMsg==
X-Received: by 2002:a17:907:60d1:b0:b73:21af:c0e7 with SMTP id a640c23a62f3a-b7331af147bmr721970666b.53.1763032564680;
        Thu, 13 Nov 2025 03:16:04 -0800 (PST)
Message-ID: <3a19c920-e5e6-43ea-ac07-674b07ce7301@suse.com>
Date: Thu, 13 Nov 2025 12:16:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RESEND PATCH v2 3/3] x86/hvm: vmx: refactor cache disable mode
 data
To: Grygorii Strashko <grygorii_strashko@epam.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>, Jason Andryuk <jason.andryuk@amd.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251111200958.3576341-1-grygorii_strashko@epam.com>
 <20251111200958.3576341-4-grygorii_strashko@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: <20251111200958.3576341-4-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2025 21:10, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> The Cache Disable mode data is used only by VMX code, so move it from
> common HVM structures into VMX specific structures:
> - move "uc_lock", "is_in_uc_mode" fields from struct hvm_domain to struct
> vmx_domain;
> - move "cache_mode" field from struct hvm_vcpu to struct vmx_vcpu.
> 
> Hence, the "in_uc_mode" field is used directly in mm/shadow/multi.c
> _sh_propagate(), introduce the hvm_is_in_uc_mode() macro to avoid direct
> access to this field and account for INTEL_VMX configuration.
> 
> While here:
> - rename "is_in_uc_mode" to "in_uc_mode"
> - s/NORMAL_CACHE_MODE/CACHE_MODE_NORMAL
> - s/NO_FILL_CACHE_MODE/CACHE_MODE_NO_FILL
> 
> Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>

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

> @@ -158,6 +166,11 @@ struct vmx_vcpu {
>  
>      uint8_t              lbr_flags;
>  
> +    /* Which cache mode is this VCPU in (CR0:CD/NW)? */
> +    uint8_t              cache_mode;
> +#define CACHE_MODE_NORMAL  0
> +#define CACHE_MODE_NO_FILL 2

I wonder though whether the odd use of 0 and 2 (rather than 0 and 1) needs
retaining ...

> --- a/xen/arch/x86/include/asm/mtrr.h
> +++ b/xen/arch/x86/include/asm/mtrr.h
> @@ -7,9 +7,6 @@
>  #define MEMORY_NUM_TYPES     MTRR_NUM_TYPES
>  #define NO_HARDCODE_MEM_TYPE MTRR_NUM_TYPES
>  
> -#define NORMAL_CACHE_MODE          0
> -#define NO_FILL_CACHE_MODE         2

... from how it was.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 11:19:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 11:19:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161037.1489050 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJVMV-0001ml-60; Thu, 13 Nov 2025 11:19:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161037.1489050; Thu, 13 Nov 2025 11: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 1vJVMV-0001me-2r; Thu, 13 Nov 2025 11:19:35 +0000
Received: by outflank-mailman (input) for mailman id 1161037;
 Thu, 13 Nov 2025 11:19: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJVMT-0001mW-ML
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 11:19:33 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a05ef143-c082-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 12:19:31 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b728a43e410so103452266b.1
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 03:19: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
 a640c23a62f3a-b734fdac68dsm140830366b.62.2025.11.13.03.19.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 03:19: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: a05ef143-c082-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763032771; x=1763637571; 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=8njYjIYvFgpylsfnyCfrDOSlzIgDI8bELf737HJpN4w=;
        b=c1pBuJk4ejvSY8GCwz0hDhOyB74SZbL02egs6R6lqUCOf2dc0Ym2C9SSYhQ11Ez7nO
         yMzI0e3GcrVWtQh1tyNMx2+BRgCMKCN6V4D5Ohi6MR3udr2agBAnVAL9IXtu0cfeyjqw
         DQndSzlUSOSCgCqkWombZoa0ygiw4xkJQ0w6q05ij7gidPo8VdEu+KZuwB7SBSUV+t09
         P1KVUy230eNHw2XtGQxfsdQ6RT25rn9z59+TXO/NSH1cjGkp0d7nkAPeq47JQ63h9q1/
         8EyB0Ax5a37oGvqBzfOaDfclyB6Q7qB8AviBcb+NnSN4kaYNvdajoiNOy8/pRLGYDjcD
         Prxw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763032771; x=1763637571;
        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=8njYjIYvFgpylsfnyCfrDOSlzIgDI8bELf737HJpN4w=;
        b=oPgz9OgL5pDL3ojjmcErFAl2qex+qMA3lMfqOxNpRv0i/Ff8msdfNKkCLcxilsr52d
         QCyEw5c4kk/VzHQmPTJE3niI2JjpqNenTVWkw7hYou1vyLePkb2bsyIvQiSvWYDtITAg
         9aQ0blPicYJ66uL/8BpiE4zRk7vqb4JbTgoDnikRwdMJnUNu3BkSqzOWHNJ4X5GgmoxP
         jlP8hFaIOkfF2jG7TUHg0DdVgQ6lIhRA4cS6v0m5ydykAPEZUFVEOPLVyvWOuy60GQqi
         1phfGR6c2UXcAXAfpb5pKODk8k2R/IsbITmDWaAYOMjzcYZQTOLNhGO85QBMd/f/sD0q
         eQBA==
X-Forwarded-Encrypted: i=1; AJvYcCUu7wVif6EHoc/ZNCNU51qrSegsdd4inEdVLE+3zKnG5BXWkQcdXHXLJ50bxEb43oqsGTc1Azyqhi8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzkfHQWZq34FNRxvkl79Dz4GiL4IlF7WzFsnRDpbYojLH1K6guO
	dvu22gTnl+gFCOucwDls+Wx7itxy0z/lhNWDdWeGQfjj6wkZMThjuv3KEYmRwtr6kQ==
X-Gm-Gg: ASbGncsJvq77pYx97cHh9osfmFW76C1Xs7HG0XgZrnNJgXyhqKKTPdsocFFpiYD01wO
	evEtYcF+ixbM1rLcDJMH4UiyEs1wV8ivx7/87vqUY9u1lsX7+JcaMi/BahBHwy39Lu3XoUiDUjA
	HEI6ndLL1RVytb4OyhMaTIhXLLA8OffimZ4+Dl4jCY4iWzZJLaI1jkZAwNkiACJj0NAUPrMLjRW
	BwbDgWeDkNMsazYYTSdWrG9Qk/3o5aEIqzLNsodkxwMw/US3/PgmZ3FCy5+s5FLbTHYwuoqh8qY
	o5vtzhPGqVJlKH9nqBuDGeCnmNB00GVEGxiE1jBd6IEi2MBvHaNkNCOEtsZdyHOCwA2rzQ7hQ7L
	1IUdy/+3CG27ZCOUJKQKaNq9640cRbHjMLtw9nCZMeClktqiHIdk7Bzd+FqcOJGLOYwz+t0xxC5
	bbIMnaLM79ot9+titP6Qs4kLM7D4IGcTPHf7XAbX4nA5QUjf6018pK/7NupxlrL1x+
X-Google-Smtp-Source: AGHT+IGJROyGvehnZgReKpD419h7VtPJXo8vCBPDHAqHOVZ7Va3xOa2DjRj68aUrFbjay77LTuXsrw==
X-Received: by 2002:a17:907:cd07:b0:b3d:73e1:d809 with SMTP id a640c23a62f3a-b7331abe7c3mr680629966b.48.1763032771238;
        Thu, 13 Nov 2025 03:19:31 -0800 (PST)
Message-ID: <f8dd8d55-8b5f-403a-9009-49d13112a774@suse.com>
Date: Thu, 13 Nov 2025 12:19:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RESEND PATCH v2 1/3] x86/hvm: move hvm_shadow_handle_cd() to vmx
 code
From: Jan Beulich <jbeulich@suse.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251111200958.3576341-1-grygorii_strashko@epam.com>
 <20251111200958.3576341-2-grygorii_strashko@epam.com>
 <25ec2731-e629-4cc7-b374-5e48fba4c814@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: <25ec2731-e629-4cc7-b374-5e48fba4c814@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 11:44, Jan Beulich wrote:
> On 11.11.2025 21:10, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> Functions:
>>  hvm_shadow_handle_cd()
>>  hvm_set_uc_mode()
>>  domain_exit_uc_mode()
>> are used only by Intel VMX code, so move them to VMX code.
>>
>> While here:
>> - minor format change in domain_exit_uc_mode()
>> - s/(0/1)/(false/true) for bool types
>> - use "struct domain *" as parameter in hvm_set_uc_mode()
>> - use "struct domain *d" as local var in hvm_shadow_handle_cd()
> 
> One more please:
> 
>> @@ -1451,6 +1452,66 @@ static int cf_check vmx_get_guest_pat(struct vcpu *v, u64 *gpat)
>>      return 1;
>>  }
>>  
>> +/* Exit UC mode only if all VCPUs agree on MTRR/PAT and are not in no_fill. */
>> +static bool domain_exit_uc_mode(struct vcpu *v)
>> +{
>> +    struct domain *d = v->domain;
>> +    struct vcpu *vs;
> 
> const on all three pointer target types. Then, together with the function
> prefix adjustment discussed on the other sub-thread,
> Acked-by: Jan Beulich <jbeulich@suse.com>

Seeing that the other two patches are ready to go in (again, once the tree is
fully open again), I might as well do these edits while committing. So long as
you agree, of course.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 11:36:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 11:36:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161053.1489073 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJVcM-0005bD-Kg; Thu, 13 Nov 2025 11:35:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161053.1489073; Thu, 13 Nov 2025 11:35:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJVcM-0005b6-GL; Thu, 13 Nov 2025 11:35:58 +0000
Received: by outflank-mailman (input) for mailman id 1161053;
 Thu, 13 Nov 2025 11:35: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJVcK-0005b0-I9
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 11:35: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 e9be2e4e-c084-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 12:35:54 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b728a43e410so105929266b.1
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 03:35: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
 a640c23a62f3a-b734fa80cb6sm149638166b.7.2025.11.13.03.35.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 03:35: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: e9be2e4e-c084-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763033753; x=1763638553; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ROw8OP8t04ZDQgvKd2J8Vdq0edYSR4HDgmS9LGq+kQk=;
        b=RN+FijksBOYlmW+sF3mIxED18v9MLrif94XcJcQ9VwTu1GaeayJO1c5RjWSZ7wkYMq
         vreBb6smSNl41r8wmiBjPKSo7zB+KuMKD0JYJDXYfOju4e9LuVyunS35TUtsZir+RINR
         Wo0N/CqKguKiuVnTbTc56M+tk/2OllO7wRKjWxds9AfJ/stuzHfc+1qIfhGbvdtjiu3f
         laneJpM1ZiIziLi9mJfw7CODwYuN7OMfpfMscNM2gRzPpepk6KBfuY15+OCep4ynXzJd
         fJYq5nac94BxOcmED/QilD/IQfX36neS1ZZHo6RSf/LO+XV+nyRwUYaN+bhpOXvFHRn+
         cJ/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763033753; x=1763638553;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ROw8OP8t04ZDQgvKd2J8Vdq0edYSR4HDgmS9LGq+kQk=;
        b=r9yGCsJtBS7jcexlDA5usO0J2CPoERLkTsfCNDvMDoqMpCVq+HMLQ9/2S0vabASAT9
         T5c8PswtwnJ6ocdCIIgg+pCUIeswsiJ5unFFKC8yVpw54IMW2XRx6cSHMoHnTbaCMUu1
         ucHRF4vYfvMNrnmSGQyDsxOiwyk3aS7m5+atpVIIgrwrXmcP2+JNJVgrxNMxJgrEFKOH
         2sZhM8AS8qDGcfsV2kJdsQ4Kwm2OlmzpBgZm9jUnozVwkK9dUzYPcZznKtpjkYDyh9pZ
         bbKvGnZc5ohEIJYfELcZqvx36kj+vYNrRsaDIFBh2zF3lTexE9vlL0YJsxda/s5MAA6Q
         o2Ug==
X-Forwarded-Encrypted: i=1; AJvYcCX4f4UkrS0uy6kJi0cOvCW5rsjxiQfRw5GTi5d1sX3avcNEmb4zqK8XbKQtbkyph5TyAuYloRHvCcc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywm7HGojMdTR45fmEDFgHFEK8DCLHQB7yiGFrkUWOM+LTH8raj8
	DNhxIqpcDGf0uaZv93P6v57f5pjoeKsvzRPJVmbkxhRAoZ/Mnz2QBY8X342bxi5SsA==
X-Gm-Gg: ASbGncuyb5Ln8SN2rkHfMEjm8cbtV+yOEmSjspy8xbwxs0zz98mZVVqpD5Zit2vYsjY
	z7oRh+FJ+bAMegYqwm5Josfp1LrFqC/P033gjJbJ1fvDmL+jSXb6dnImOXpr8IdWJGVbSxrlmFs
	4ymoS3Q8W2T0+2IGF/wLt5Daj3erR8PHbioXl5NYZREbQ9LaAYOzssfUdEwRY/dsNCRytCDmP2z
	N6OjIgHlSr4asDhlPWGl/OTjIXPcxbQG6en6fB+D1MBoyTIXndFZzrVLfDSJ/Qk+OBAwa2lucoL
	WPlUyPPaaCUKCjkon9ZzzLAETSDt2KACoewPXvUpbBkafw4OUlNQIiA8a3gPEQ3RHeKYb3/HwqM
	eqc+evQib7xboiXQVsc8Enx8v1Hhhsry7WxvgoiU78Gaq1Bra8wkKjvBJK8xmE1Byjlnto9vo9S
	3XE6913AeRBfB+ZXz4XD6miLlGZ/tsRxAnHfSAyJQU3gAAPfe4lCycMzAmOV81KfBA
X-Google-Smtp-Source: AGHT+IFWHCJbKQlvp33spBWRSPXqixooZ+gVJdwbLmMI41T7bgJ7JVa7WhTWY0uBPjfIeExizDephw==
X-Received: by 2002:a17:907:3f19:b0:b73:4fbb:37a2 with SMTP id a640c23a62f3a-b734fbb412dmr216534866b.5.1763033753189;
        Thu, 13 Nov 2025 03:35:53 -0800 (PST)
Message-ID: <b3ed438d-2b73-4b07-99e5-01e66a833f4d@suse.com>
Date: Thu, 13 Nov 2025 12:35:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] amd/iommu: Always atomically update DTE
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1762961527.git.teddy.astie@vates.tech>
 <a14812d39743f5f49614d099bdac6720bf7c4fae.1762961527.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: <a14812d39743f5f49614d099bdac6720bf7c4fae.1762961527.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.11.2025 16:37, Teddy Astie wrote:
> amd_iommu_set_root_page_table chooses between updating atomically
> and non-atomically depending on whether the DTE is active or not.
> 
> This choice existed mostly because cx16 wasn't supposed always available
> until [1]. Thus we don't need to threat the non-atomic path in a special
> way anymore.
> 
> By rearranging slightly the atomic path, we can make it cover all the cases
> which improves the code generation at the expense of systematically performing
> cmpxchg16b.
> 
> Also remove unused raw64 fields of ldte, and the deprecated comment as the
> function actually behaves in a more usual way and can't return >0.
> 
> [1] 2636fcdc15c7 "x86/iommu: check for CMPXCHG16B when enabling IOMMU"
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
>  xen/drivers/passthrough/amd/iommu_map.c | 78 ++++++++-----------------
>  1 file changed, 25 insertions(+), 53 deletions(-)
> 
> diff --git a/xen/drivers/passthrough/amd/iommu_map.c b/xen/drivers/passthrough/amd/iommu_map.c
> index 320a2dc64c..e3165d93aa 100644
> --- a/xen/drivers/passthrough/amd/iommu_map.c
> +++ b/xen/drivers/passthrough/amd/iommu_map.c
> @@ -154,69 +154,41 @@ static void set_iommu_ptes_present(unsigned long pt_mfn,
>      unmap_domain_page(table);
>  }
>  
> -/*
> - * This function returns
> - * - -errno for errors,
> - * - 0 for a successful update, atomic when necessary
> - * - 1 for a successful but non-atomic update, which may need to be warned
> - *   about by the caller.
> - */
>  int amd_iommu_set_root_page_table(struct amd_iommu_dte *dte,
>                                    uint64_t root_ptr, uint16_t domain_id,
>                                    uint8_t paging_mode, unsigned int flags)
>  {
>      bool valid = flags & SET_ROOT_VALID;
>  
> -    if ( dte->v && dte->tv )
> -    {
> -        union {
> -            struct amd_iommu_dte dte;
> -            uint64_t raw64[4];
> -            __uint128_t raw128[2];
> -        } ldte = { .dte = *dte };
> -        __uint128_t res, old = ldte.raw128[0];
> -        int ret = 0;
> -
> -        ldte.dte.domain_id = domain_id;
> -        ldte.dte.pt_root = paddr_to_pfn(root_ptr);
> -        ldte.dte.iw = true;
> -        ldte.dte.ir = true;
> -        ldte.dte.paging_mode = paging_mode;
> -        ldte.dte.v = valid;
> -
> -        res = cmpxchg16b(dte, &old, &ldte.raw128[0]);
> -
> -        /*
> -         * Hardware does not update the DTE behind our backs, so the
> -         * return value should match "old".
> -         */
> -        if ( res != old )
> -        {
> -            printk(XENLOG_ERR
> -                   "Dom%d: unexpected DTE %016lx_%016lx (expected %016lx_%016lx)\n",
> -                   domain_id,
> -                   (uint64_t)(res >> 64), (uint64_t)res,
> -                   (uint64_t)(old >> 64), (uint64_t)old);
> -            ret = -EILSEQ;
> -        }
> +    union {
> +        struct amd_iommu_dte dte;
> +        __uint128_t raw128[2];
> +    } ldte = { .dte = *dte };
> +    __uint128_t res, old = ldte.raw128[0];
>  
> -        return ret;
> -    }
> +    ldte.dte.domain_id = domain_id;
> +    ldte.dte.pt_root = paddr_to_pfn(root_ptr);
> +    ldte.dte.iw = true;
> +    ldte.dte.ir = true;
> +    ldte.dte.paging_mode = paging_mode;
> +    ldte.dte.tv = true;
> +    ldte.dte.v = valid;
> +
> +    res = cmpxchg16b(dte, &old, &ldte.raw128[0]);
>  
> -    if ( valid || dte->v )
> +    /*
> +     * Hardware does not update the DTE behind our backs, so the
> +     * return value should match "old".
> +     */
> +    if ( res != old )
>      {
> -        dte->tv = false;
> -        dte->v = true;
> -        smp_wmb();
> +        printk(XENLOG_ERR
> +                "Dom%d: unexpected DTE %016lx_%016lx (expected %016lx_%016lx)\n",
> +                domain_id,
> +                (uint64_t)(res >> 64), (uint64_t)res,
> +                (uint64_t)(old >> 64), (uint64_t)old);

Indentation is now off by 1 here.

> +        return -EILSEQ;

The downside of this is that all updates can now take this path. Yes, this shouldn't
be possible to be taken, but it's a (minor) concern nevertheless. At the very least
such a downside wants, imo, mentioning in the description, even if for nothing else
than to make clear that it was a deliberate choice.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 11:37:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 11:37:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161064.1489081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJVeB-00066p-UD; Thu, 13 Nov 2025 11:37:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161064.1489081; Thu, 13 Nov 2025 11: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 1vJVeB-00066i-RZ; Thu, 13 Nov 2025 11:37:51 +0000
Received: by outflank-mailman (input) for mailman id 1161064;
 Thu, 13 Nov 2025 11:37: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJVeA-00066c-O9
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 11:37:50 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2ea7a0f8-c085-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 12:37:49 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b7346565d7cso96782166b.1
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 03:37: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
 a640c23a62f3a-b734fd809ddsm148308966b.48.2025.11.13.03.37.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 03:37: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: 2ea7a0f8-c085-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763033869; x=1763638669; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sJNALaH0yE+mXCwmbYY/Ta/cfHto0EYt+VbWZLRz5Dc=;
        b=glv6tkwy4wfnT+oTU5RuDpv8Qfuc/Y1Ue9dVyVeig5gLa0trMERNdQYgj9zZJ9H1f9
         HZaAaAUiex/uN4C/Dq81N/UCMKJpGrFnyhnLEDMVI5TdrncSYeVfBWtwL643qNKFh7dY
         IgYDoJUE9C9NtXvUWFAgkp0Ro4mpzxio+D5RapaEeh5C91+MhoMR+Fn0A3hd9hPEQeE5
         usxiMQLcrvmScoqpF8gp1xmIrxyTSZPvZmTTfLb/sYCPN5cqrkf/18SmwffGaLwYj4As
         NiCL0O/3uMxnCkvO/Uz8OSjvKNidyOrSdKK8wO9+NEw3VawlFfN36aZ+/qh2KarwkTgZ
         kJtg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763033869; x=1763638669;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sJNALaH0yE+mXCwmbYY/Ta/cfHto0EYt+VbWZLRz5Dc=;
        b=H4Z3KbKo/Pv8vKa3gCaDXxcqmAzFaC3Ff+xu1MZZrX6xj35NXruMjq52BR+1+oWEEb
         vei279RIxlwQeclEoazpB38atyKfoS9tQoiSMtvrjm5vTUHX1EnamDiY/wBixLb2BXvf
         7oSCOM4wA6noeUlf0+BDEj/D+rMgWsc8Gw8DRXzaolvIVjY0uk8eb0z53VeZa6uBiQyX
         qSASspHc4gBmP6ojAR6ecqDzbEvELDXV6UbkboCHjvzgQUt9awbzEXsLKER7Dl07/5tM
         0YPZYyx6cneNF1bsA2AZAxKCVOY3njYUbqFgQF/YOBGpo1aFzlE3YusJ4+m4aJk2pAFm
         d3Rg==
X-Forwarded-Encrypted: i=1; AJvYcCUAx3e7DU5jYStaMgyR1tbbzEGSgBKnfR0Yrx6251L3IbqNTLOeLCuTh5rEL6h78UsssMMi454lrHU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz+cqALe74zuefqA4nfNzrp6lSFyFY255Z964AKu1fmZIKZ2B5W
	VEEqXrzsvphXF2ciwp7l8chGlxoN/MQecEW5v7EACaOR3ntD1/9aylXhmDn5iZtDHw==
X-Gm-Gg: ASbGncuAtuNDhc4DI4bpOu+apQFYuyRyt6S21a+T2OPdjPWvZqXSmsPwNAtjDRBza0F
	eOXvOO4XTWOI1Ruvpwzd3tSfVSNfbVdlQWuHAEWDL/a9u2g9ucuCYKpB1qvDxEe6e6W58AHU0Jx
	vgkbGk1tlzYDF/hPUI8f5FVYadbEteXiPXbsLSqqjCxRtf2Jc768HRJZ/ILpyNRuVkplRxZdX6C
	oFR+KotcO64FiQv/cbSsvvwu3v0dRna2s3o1IWYh5I8VMlQ6PiaxbcNqD33+JcSR/qHeff55A1t
	G/WQuOQnZBEUiAE3IMf3xZDoHjhJKbz4OWun31sMxVpjMz+6pWfh6X9cq/veLRc9Y6DL4cUaZ2J
	HSQB6nrt52hy502OygbjEdAUeZjKhGErARYeATBZuipMD+mjpUQfdXLVDSVmeQgdHHn0vbJP88m
	GKqZaVTcctuzuYvSgnzZqVJ1wvuSVcwKKwmFE2jq2LvuBvvxAxUvTMLPPOORjwQlsH
X-Google-Smtp-Source: AGHT+IEevsvcsr6NYKwHlFUNPqXsUmeUpkhpibbCepuMensWVbWF1WB9/BLUIFZg4gnmxqnQMO3Z/w==
X-Received: by 2002:a17:907:2d12:b0:b73:5958:7e6c with SMTP id a640c23a62f3a-b7359588192mr104207166b.3.1763033869037;
        Thu, 13 Nov 2025 03:37:49 -0800 (PST)
Message-ID: <367dc942-7113-46cf-9c54-fa77dc6b4c53@suse.com>
Date: Thu, 13 Nov 2025 12:37:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] amd/iommu: Remove dead non-atomic update checking
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1762961527.git.teddy.astie@vates.tech>
 <b0e81bd67c3f135a4102d12ed95a52ce56482992.1762961527.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: <b0e81bd67c3f135a4102d12ed95a52ce56482992.1762961527.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.11.2025 16:37, Teddy Astie wrote:
> When updating a DTE, amd_iommu_setup_domain_device() would check if
> the update had been non-atomic (i.e rc > 0) and throw a warning if
> such non-atomic update could be dangerous.  However since commit
> 3fc44151d83d, rc can no longer be positive, making this branch
> unreachable code.

I.e. it addresses a Misra concern and hence ...

> No functional change intended.
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>

... wants at least an Amends: tag, likely a Fixes: one. Then:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 11:42:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 11:42:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161079.1489092 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJViu-0008Bm-K9; Thu, 13 Nov 2025 11:42:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161079.1489092; Thu, 13 Nov 2025 11:42: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 1vJViu-0008Bf-H5; Thu, 13 Nov 2025 11:42:44 +0000
Received: by outflank-mailman (input) for mailman id 1161079;
 Thu, 13 Nov 2025 11: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJVit-0008A3-Oh
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 11:42:43 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dcdf7a7b-c085-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 12:42:41 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b7272012d30so105799366b.2
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 03:42: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
 a640c23a62f3a-b734fad41f1sm148215466b.23.2025.11.13.03.42.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 03:42: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: dcdf7a7b-c085-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763034161; x=1763638961; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0JsZdpK/1Z+0O/oXuUGPHfNJlMFWbGPTk9aOGow34/8=;
        b=SwBtFCm9ISv4AjGognYCaO/ao3MS64zbG9k679666AWNLIcZwfnBn/IddySvaPcFrl
         YCVb+AzT0oh4hJDtjvvTJbpN8nFfo6eZi+yU3AXuT7+/3AvPK/7yywf+1yfFuuGI3ysa
         VhZ60LzaMCEf60QD7i2pi2As8JZ8SHMSM04fVzLYCl776ziRIurfPKXgb3M+ZYMgVPx6
         fSKGIMqrao0TMvCAvYu0O1sDFt4HlCtcwlwGFTkoyRDB+e7bX5zEEUHcvJccWoi/4+nD
         av/OMO9rxIC6bYzfd1IaE1xNmSyNiL/3xPuyHz3NQIxoWgP3foyyK2OLjZfZyiFXaIG9
         m1Aw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763034161; x=1763638961;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0JsZdpK/1Z+0O/oXuUGPHfNJlMFWbGPTk9aOGow34/8=;
        b=Lxns1MvY3jQVcOFCUTarhpLPX5d3EQDWzjxeqsUxaH1z30mQt4lV7u9t3C0N++ywbT
         93ABEDVomlhOSinwxvZf5Xd3fH3OoGMPK1NsXVRvrpuCrPeZ6DW6uPzDsiEHVX592/0W
         pLoj9gyMo3DyHYu6vxvgbS+B5q+bIAjRgnzp812uYWFoizYG4xKKAmTe/tuVUArS6z5M
         2rywzRnjngEhdUVx/NbHDo5Fp+LIKjeVdM/BzxpkpTFSpCHu2+4/qdxlRDE6k8JrGvMY
         ot4OdnazFjfzLkHc2+cHDZqVf3ANjzXCSTS51Gf830dvIQeAeCrLY/lugJW5KskMXzK9
         rfeQ==
X-Forwarded-Encrypted: i=1; AJvYcCXrZO293sBnfS6015vihrjHNRGRSqDSkJdKL+B9HHDxV7KyyxpQ8PJ1E6DREtXQbWv+i+wigeHwkU8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzQZMWac5QE11WLdmFoubGeW2aSZvMyWabsnLiDEFmx5uWFCWWf
	kTxQ5K/9TbsqagwwkeIAlqjQ9dVs4MwTMjBL1h3pJXXV6LpxPDnba3me2Nnplfp1sw==
X-Gm-Gg: ASbGncvws+frpguFRgfVLqUv9Xy7nJ+mePEQkgNE24HkN+g1kXdwzoeDaUlP/0ghXVV
	LhSaMzPmb2KhLETsoCgooXqkrYyAljXygtjcolmV4GgDyrBjubIPMQfCg2YlsKr0botxntOUEqP
	BXoKP4BXRH1yuLw3MlB1GedonaZZtL+nwPegqT0CvUORoaEG86rj7c0cgh4rOQSLbgQ5bp3X5ld
	+VRaNRyLFq4/Tlb8FkmG9LXOCaVY35YrSF/JQmj2D5941aidQ+uHvjevDIQuZGljSH66oRc9UwH
	9Ngi+h3QSbBc14nVx2dzl/7UYIhr1h6ZSCfCwKXPjE5X+HZO/xRw0yY+jme0C7A8Q7T1WCb8bN+
	55UoGhCh68vUv18zAChRNO0TcisSD4SP99YQkILv3rDWH3dIkZDuLoDAKxSReP0McdJnUo+/dfc
	HGQa36OsLbJuZpfjLY+KUAFaJ8vYts8DdEeuVQ6uzawUhpShmmniIgygRE2fu5M/2t
X-Google-Smtp-Source: AGHT+IESisLcBx5UZ8r08HujXcYEYCIXKuGRkiHNaBtyJl7Pzlb3eJs1LkIkqHvZtKGRAA2VSUT55g==
X-Received: by 2002:a17:907:6e8a:b0:b72:c261:3ad4 with SMTP id a640c23a62f3a-b7331a7078dmr653785066b.34.1763034161339;
        Thu, 13 Nov 2025 03:42:41 -0800 (PST)
Message-ID: <730c6001-58a2-46db-95fa-c8ec2081d3b0@suse.com>
Date: Thu, 13 Nov 2025 12:42:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86: Conditionalise PV-only fallback branches on
 CONFIG_PV
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: <20251112152235.224001-1-alejandro.garciavallejo@amd.com>
 <20251112152235.224001-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: <20251112152235.224001-2-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.11.2025 16:22, Alejandro Vallejo wrote:
> --- a/xen/arch/x86/cpuid.c
> +++ b/xen/arch/x86/cpuid.c
> @@ -297,7 +297,7 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf,
>              if ( v->arch.hvm.guest_cr[4] & X86_CR4_OSXSAVE )
>                  res->c |= cpufeat_mask(X86_FEATURE_OSXSAVE);
>          }
> -        else /* PV domain */
> +        else if ( IS_ENABLED(CONFIG_PV) )
>          {
>              regs = guest_cpu_user_regs();
>  
> @@ -509,7 +509,7 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf,
>              if ( !hap_enabled(d) && !hvm_pae_enabled(v) )
>                  res->d &= ~cpufeat_mask(X86_FEATURE_PSE36);
>          }
> -        else /* PV domain */
> +        else if ( IS_ENABLED(CONFIG_PV) )

Maybe better leave the "else"-s as is and, ahead of them, insert

        else if ( !IS_ENABLED(CONFIG_PV) )
            ASSERT_UNREACHABLE();

Happy to make the adjustment while committing, provided you'd be happy with me
doing so.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 11:50:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 11:50:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161090.1489102 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJVqW-0001M1-Bu; Thu, 13 Nov 2025 11:50:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161090.1489102; Thu, 13 Nov 2025 11: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 1vJVqW-0001Lu-8o; Thu, 13 Nov 2025 11:50:36 +0000
Received: by outflank-mailman (input) for mailman id 1161090;
 Thu, 13 Nov 2025 11:50: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJVqV-0001Lo-9V
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 11:50: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 f5169967-c086-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 12:50:33 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-640c1fda178so1193348a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 03:50: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
 4fb4d7f45d1cf-6433a4b2155sm1287405a12.29.2025.11.13.03.50.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 03:50: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: f5169967-c086-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763034631; x=1763639431; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zCQyhlYxpZcCq/t6A4KQwqoBcvSUZzjN81//0doSuEA=;
        b=VPMklaVJkClz4ssMXopEJJi1FII1A/fP1fY8C9JMsH9KFaGFnM9p8Or/TPTgTGzrTQ
         ix+Fw218kQg5exRi7/JKcNEpqQ6B6neqRBYxdc/xDHMYDyD/qqR4Hviwf8GM1T8wqSS9
         ja12Pv/DP2Yec5Qa81EJa5ZGKGakEalbj0SJR4DozfZQpmBp3mqslxnGwO9DsmkbgxrM
         x41HEd60G+qjViD7xNXTF3iAo0nk4u5GvDOJem3brW+YjyiFr24tzmvi7PBb1B5m7AAO
         BArVV0XjGa92yYdQjbd/3wxMb66LCq0FGYBOkVlXoCFg9/k65470V2nyYY2k83XGGwLt
         Ta3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763034631; x=1763639431;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zCQyhlYxpZcCq/t6A4KQwqoBcvSUZzjN81//0doSuEA=;
        b=izYkRi8r9Kb0GbtSFADw8xQujfpJ09aHGsdud8Tt9dBMUYDWcRYZX7krZgZJRbgU7N
         Tg3nN4pAmwlZbFqN+AqNvq0sWGiQlpsSnsPYS8Pewr6CuF5Z95M9BD6iQ/MSNbwMWMHF
         6umWyjj7GVooaTBo3CGsVqoVXAS9W0XAg5rMnfdrvH1UEB32BI3SajE5UuPTXUmiRRlT
         JL6ss7otxAzSlMr0hMyRyRaeJib1EKToo3Gi+rD2Hl82utJaYUgfyJGyBraNXza9s0dj
         IJkOysraha16tsd9wyLv8rSkZ4X2MlHVJcSPu49Vp+BZujTQmUgcFoDe2H4s6zWHvXqG
         Tstg==
X-Forwarded-Encrypted: i=1; AJvYcCWmeeQvFcYXvnyyw/HD6B59D6oLcJN6wFova1tApFghgJBw0WWyvYFDcHkLBnaThSW8+FotF+mePCU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwoSlgZlzAcXU4XYRjTMdzuE0xcth5Aa8DgnCp/OTg5BdgJ6fFQ
	ZjxTeu66f/7JhrVDMIRyKmVu0PSW4aSOy/d66RsYLm1Wv0N8DQsQWxF0dq1hR3Cxfw==
X-Gm-Gg: ASbGncuFNJ/U+nVGYyX17eUFbAnzS2htBiSjinBNZBQTevcqAFYcvmBKFgaBSi0WVoy
	N8h3S7ZByt+awwuiPPA22mglE2mkHNJGSqwZcRffHFU2hHRmw6KGlc97ZpAuJT4nHWr0cNuaLm+
	N+MU5+KQUvhvp5aJqmeagsTV2Tx6nTT1cXiDTOoPozmTTOtXog4+RyQBQGpzpsN0vlaFu8FH8+D
	KGrvzeMUwJFGlxISjRJ8ShFbzKNYpa955G8zBsCgVX5QT8ulk3PdPJH494joYHxB+vUlMxWdQ4l
	Omo+JhJ4oE46/LcJHpJMu3USA7L7ECP4qgto3vlmVR19N/H6LxdXLYyujGoLHn+LuhHzQn1mHh7
	04FvDlRedOIYwIIFvgfRfeu/s8TGlKRv49Ef5Xn5BVRADJedjQCM0MUdKgWGCxR0PIZ8MhkvTtM
	oKPqYetVKICbHK2sA3krh4XR/kc2WeVG5wNMWcCLSnJSxbu+j7cMMY5TsRdNfjbO18pLv7DzTok
	VM=
X-Google-Smtp-Source: AGHT+IEIboc0S+e+9JX/ImrFUHfHIS9DDfUsS8tEtlJ1dBZKWHzPDvZdxijBlXlnOYejf4OAgNx/Ww==
X-Received: by 2002:a05:6402:51c7:b0:640:c69b:8ecd with SMTP id 4fb4d7f45d1cf-6431a57647dmr5512081a12.25.1763034631295;
        Thu, 13 Nov 2025 03:50:31 -0800 (PST)
Message-ID: <5c08e298-3ef4-451c-b0f8-24f207a9d512@suse.com>
Date: Thu, 13 Nov 2025 12:50:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86: Remove stubs from asm/pv/domain.h
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: <20251112152235.224001-1-alejandro.garciavallejo@amd.com>
 <20251112152235.224001-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: <20251112152235.224001-3-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.11.2025 16:22, Alejandro Vallejo wrote:
> They are unnecessary. The only two cases with link-time failures are
> fallback else branches that can just as well be adjusted with explicit
> IS_ENABLED(CONFIG_PV). HVM has no equivalent stubs and there's no reason
> to keep the asymmetry.
> 
> No functional change.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> ---
> I'd rather remove the "rc = -EOPNOTSUPP" branch altogether, or replace
> it with ASSERT_UNREACHABLE(), but I kept it here to preserve prior behaviour.
> 
> Thoughts?

I think using ASSERT_UNREACHABLE() there would be better, in particular bring
things in line with the {hvm,pv}_domain_initialise() call site. Preferably
that way (happy to adjust while committing):
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 12:09:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 12:09:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161111.1489116 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJW8N-00049z-Tb; Thu, 13 Nov 2025 12:09:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161111.1489116; Thu, 13 Nov 2025 12:09: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 1vJW8N-00049s-Q1; Thu, 13 Nov 2025 12:09:03 +0000
Received: by outflank-mailman (input) for mailman id 1161111;
 Thu, 13 Nov 2025 12:09: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJW8M-00049j-AC
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 12:09:02 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 89b5af3f-c089-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 13:09:00 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-64088c6b309so1289895a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 04:09: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
 4fb4d7f45d1cf-6433a4b1dc1sm1366871a12.25.2025.11.13.04.08.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 04:08: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: 89b5af3f-c089-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763035740; x=1763640540; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fLrMAWs0s6+ymMs+8vjt6qBmgpso9jUTwbhGPgnA3hE=;
        b=at5kQceFwrf6/n/HRSPWhcHwcS/cJ4+0Vx/hDjB5ITMy5ZFHKFsJX6zZcsYTd6CYjf
         AA0R0aSpEJOscZ7SJVpNM+WkKsKVcbuOgfeEObI1o2YKw6TBTCksxi0uUQSHpkGyuJzg
         SL4tQuz4HZhDC/wdXdLBPJjlyM2crB0o9QTTffNzHqpgKZno97/x1Tkf99pcn+TRuUsP
         wna4TCkDetYTTsV2ODB8Xt99yU16vsYFQGlRRYYVaPgtUt67l96nxV2QJpmBALc6aN9i
         /t3lB8trg71Ndofynh/NmPl7k+82hngmvL5stAUfCNB/Nak03B8oWQLrO0Yv4kK7EXhr
         2w3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763035740; x=1763640540;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fLrMAWs0s6+ymMs+8vjt6qBmgpso9jUTwbhGPgnA3hE=;
        b=FA19iIvaLgFPvpoEeDEwlKzMzQzZo+5O7tbvVdPVRnuuIbr3uSNcgN7zmzlLBJcXDH
         Q6luo7K1i+cVxff1x0nBXWdVIy9PwoYgJP2EI7Rn0BjjrC7FeBVeleWV60H2NZ5fZaX9
         3JNLnEOsVozMcnWDqcKB04k/LaQyer/8q+MGWi/V8JkbvQV5BhCuk3QFZY0vKJ0AIiLv
         uUB5eVmD3L1W/wgJQ6JhwyNlYiqeNSlQgpGmU8OQcxUgnw0NCrO/wd8/MS7tIkcUhrQT
         i4UKXIKuaM2gYyOZhg2nHuZAdbUQiE9MZsyPZMrZJ+mRP55kGd0pu3QNNmvH+ZEUBBth
         7DMg==
X-Forwarded-Encrypted: i=1; AJvYcCVa6euRfblFtM5xFg4kb8ovDnbnl0bQdfK4k1nigAJ86VlO4SpLszlefuvmV22vB5zhLdIh82AABLQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyyU2wc6s8vbSYZRJ5GYKMJwum3hTEIbvgzbBfJaVFNgmvq0wlN
	UayvyzqnFnqc8fzFdUHZBmRJH9zEFm909HYHySGlL8sPLZ93NAnNyAGE7bP0uoAD8A==
X-Gm-Gg: ASbGncsPcjT2tjiW/e/wWAMqywwPOXuNjcUP43WWb9qE7CvH8maN+giCYLIjBymCGoU
	vfRMmUFDRydNMqtZvuY8qExXHvg1SyrAzsBWdq/alsuIJEk1L8u1v57vVRlw9dM4runUEvZW7bw
	uEnJ6/MEyOS+/9gjIqfT5xUUW7EQh2juJo3njLBWTqR8ycF/LWauq0gK53m9lxBxVCAJDeHm2A7
	PYM6HP1CfmAB4HYmSQZJoOMiYt4kZXanJ3ZMMU2ipZUdVqz91Wrkf9SznVdOOOYu//6o2LCgItN
	55mUo88yzTGkoAb1e3uRTsnw+znoLzjY3GllXGz8ZsLOiQtF2aqu386KAX4YS/RYzQqQFfObEoS
	YG0r27xkqJ0dFTfGa2Md/a7m//eWMX+PSm0Q67DC5frlbdqwCYmh1LxJj/fckJayRYmSXAhoWbo
	RsB9DXB5DqjVl2z55OTTGtWkEYuBomEoJBKzR+o0NW3cDojVv9BEOu5xQ69cmdmzuNpCYTcPne7
	Ls=
X-Google-Smtp-Source: AGHT+IHlWwmTfH8MFoqObQdrxMO1/VC3mQ+uEU3nhmrlXnz/Rx8hEM87ZuHvL4PayOpe54BaIM6vRw==
X-Received: by 2002:a05:6402:26c6:b0:639:d9f4:165e with SMTP id 4fb4d7f45d1cf-6431a5755f0mr5180651a12.29.1763035739600;
        Thu, 13 Nov 2025 04:08:59 -0800 (PST)
Message-ID: <75e6e27c-1d47-4689-a52d-e596de84db26@suse.com>
Date: Thu, 13 Nov 2025 13:08:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: Expose time_offset in struct arch_shared_info
To: Tu Dinh <ngoc-tu.dinh@vates.tech>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <20251112070815.545-1-ngoc-tu.dinh@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: <20251112070815.545-1-ngoc-tu.dinh@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.11.2025 08:08, Tu Dinh wrote:
> time_offset is currently always added to wc_sec. This means that without
> the actual value of time_offset, guests have no way of knowing what's
> the actual host clock. Once the guest clock drifts beyond 1 second,
> updates to the guest RTC would themselves change time_offset and make it
> impossible to resync guest time to host time.

I guess I don't understand what the problem is, or why it would need a
change in the hypervisor (interface). If the guest updates the vRTC, it is
(implicitly) asking for a change of time offset, isn't it? And whatever
adjustments it makes, it could track and accumulate them?

> Since there's no way to add more fields to struct shared_info, the
> addition has to be done through struct arch_shared_info instead. Add two
> fields in arch_shared_info representing time_offset's low and high
> 32-bit halves.

Any why in two halves? Without that, ...

> --- a/xen/common/time.c
> +++ b/xen/common/time.c
> @@ -118,6 +118,11 @@ void update_domain_wallclock_time(struct domain *d)
>      shared_info(d, wc_sec_hi) = sec >> 32;
>  #endif
>  
> +    shared_info(d, arch.time_offset) =
> +        (uint32_t)(uint64_t)d->time_offset.seconds;
> +    shared_info(d, arch.time_offset_hi) =
> +        (uint32_t)((uint64_t)d->time_offset.seconds >> 32);

... no casting at all would be needed here. (Even when there are two halves,
some of the casting can be dropped.)

Another question is - why unsigned? struct domain's time_offset.seconds is
signed for a reason, aiui.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 12:11:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 12:11:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161124.1489134 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWAZ-0005lS-C0; Thu, 13 Nov 2025 12:11:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161124.1489134; Thu, 13 Nov 2025 12:11:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWAZ-0005lK-84; Thu, 13 Nov 2025 12:11:19 +0000
Received: by outflank-mailman (input) for mailman id 1161124;
 Thu, 13 Nov 2025 12:11:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EIX7=5V=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vJWAY-0005l5-Hp
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 12:11:18 +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 d8d6066d-c089-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 13:11:13 +0100 (CET)
Received: from CY5PR15CA0225.namprd15.prod.outlook.com (2603:10b6:930:88::26)
 by CH1PPF2D39B31FF.namprd12.prod.outlook.com
 (2603:10b6:61f:fc00::60a) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Thu, 13 Nov
 2025 12:11:07 +0000
Received: from CY4PEPF0000E9D1.namprd03.prod.outlook.com
 (2603:10b6:930:88:cafe::c4) by CY5PR15CA0225.outlook.office365.com
 (2603:10b6:930:88::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.17 via Frontend Transport; Thu,
 13 Nov 2025 12:11:04 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000E9D1.mail.protection.outlook.com (10.167.241.136) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Thu, 13 Nov 2025 12:11: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; Thu, 13 Nov
 2025 04:11:04 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d8d6066d-c089-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HP3xMrWNj6zChVsM8ZLxyhLW22eRU3drpVMvNf9qleZV68LMFYSsP+zWDva4wODCHLfxOvNRoQ9v60VZKEjuA3rpSAKze3m/UOys2Vu2uxGMxNE9+OSv935AtI5jrF1/6gWlxKt7KUghB2vko6Zj03kSWwJ0PodYGaaUemubJtSSuG8mHXKX9x2PF5HUJibscmfRaHq6PYYyHLBLGWDA0qhuYB55uXgdyNM65xe/uMlAWiRh90tl18TgVCppY4wRH/1fffd33JJwNmmLLVA+aMkW3ffsaWAtk1PiEMEfKA9mDsM9jt0gckakPmM0deQgb4l7xmIoD/3HxIMNpG8+WQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GQ6STHSeVh9OveuC6XAfNdRZRY2Oa/qbFLZCd9oxU3o=;
 b=ddkbuG5HgjZCOU0184ifG3sIFqTeqDurntOSQIl7WHozjJDEfzjmmkVO9ReMwwf3nN6ulg6UR/1cXym8V0HPjpAWFjcgv6/cfUksCZCI9HBqb6FAuYHv1I0Rr3Ozo7fVFO4nYTFPuFjwVBIDaYtNPvNQv+lJ6T9q+S/hoPv4dB1I0Yz4MEY7pinkHuDghWgDaM/0J1YByEQ5M5B50glqejarzHi1OysMeIWG4+tRdfu+TsTHkoqFMkU32HksjgACM6l3GHXDb5acyKCJhlV9n/iD6hMDq39D1Qw2SkOxDrEkds2hmWwhbJEQbnOnMqi31MCpKI9mhZx19/y0eRMK6w==
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=GQ6STHSeVh9OveuC6XAfNdRZRY2Oa/qbFLZCd9oxU3o=;
 b=cUvxQb5B2ysz4QR+pLg1cP5bylDWvRVlKpQprRrLAeSDmXKZ3OQ1n/7UIPhVMKW194dnjyMLSPg4TycnQcg5Vqev7pA1rJw+k5JtskvHGCA1KGktTSXcOd7CUqmPbSvQDLnm2NXViaLHo1CA6c/FQ6zCXOwfcwO+IGoIMJckGC0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 13 Nov 2025 13:11:02 +0100
Message-ID: <DE7K1Y4UYCOW.2DLMCBVK7J0QT@amd.com>
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
	<xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?utf-8?q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH 0/4] Add Kconfig option to remove microcode loading
 support
X-Mailer: aerc 0.20.1
References: <20251112162219.226075-1-alejandro.garciavallejo@amd.com>
 <61df49ba-4aab-42e3-b945-700a8f20c739@citrix.com>
In-Reply-To: <61df49ba-4aab-42e3-b945-700a8f20c739@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: CY4PEPF0000E9D1:EE_|CH1PPF2D39B31FF:EE_
X-MS-Office365-Filtering-Correlation-Id: e73471ce-fc01-4339-6401-08de22adb979
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MklmaGlRRkQ4NWhVYTdqejBNRGsrWEVOQzNBWEhWSGxSeDhzRkk4K2FlaUVw?=
 =?utf-8?B?b2RpcURFZWZKVXJReExGMXFlbmJmYkN1emlWOEIvZ2JLVzdncXpCWGtwTllW?=
 =?utf-8?B?V1pZc3hCeTROQTFubHhlK1FQRW5XZDU4L3doZ3RLYmQwWTN5dnpNMjUzL09J?=
 =?utf-8?B?MnFOMEQ2ZFlrUjhKNGxTQ1FzTEpzODdST2VvbTBMeFFaMFNWelVITHJuYTZn?=
 =?utf-8?B?ZVJVMzBBZEpqNUI0dXNZdmMwbGZ3ZWxSVisvK3FERCs4S0hTMzdGMEo4bW9J?=
 =?utf-8?B?MFdkOStndGNpRW9xa3dzRERVL0JuVGl6Uy9IRGRHbTU3Z29aOXRFbFdzVXFG?=
 =?utf-8?B?Y3ZoV0lFcHl0YmplNmFwQit2MUFJU2lVWmRqS0czUFlWVU9Rb0NLMDNlK0xp?=
 =?utf-8?B?VlQ0aGRlWWZ6VUFqVFdKRUxmZzlNRWQ1RnowZzFBc3ZmTkpwN0t4VktIOG01?=
 =?utf-8?B?SkZPTnVnOHVMdWlrMWRBMFAxbDMxZ3ZIZmtEYlJqMUpEbVliWkRhbmdSVDV2?=
 =?utf-8?B?ZVRTdjN4ajVueFZydldiL0djSCtacnRMMUxVMyt4OTYvSVRxOFVVRVMzc2Zo?=
 =?utf-8?B?Ti9VWmxmdHBDYkltcGl3aXVvT1hrdEdDc3QvZzZNOXYxcHRKY2E2SFBNTFNl?=
 =?utf-8?B?WStCbHVHVEtueW1JTjBTYXJCak5aU0J5dWIzNDBZc0ZaQUhiS1loQ1FETkFr?=
 =?utf-8?B?bVgrTGJ1UGI4b2VTL2FqRzlFT3hIRWxGdEdoWUxRdk5qSnA2TkRXK09ZdDAr?=
 =?utf-8?B?ZXhDN2hEbkkzUDMwNmVUSkVRNVpPV1VGNUtVNmJYWUM5NEV6dm54NFNiRzRC?=
 =?utf-8?B?enpoNkJUSXlkYWU5T3h1Zm8yVUkxdm8rQ1daeWsyVEJkdG9UOWJRNXZ0ZVFv?=
 =?utf-8?B?UWhjVlI2VVJhYUZSQnJNRXVLSjB3ZGV1d05USksyK0tIYWVrQ2RDSGQ2U25D?=
 =?utf-8?B?RHF2Q3JWVDVzdjVtbW83VlQvRkREOFljN21kR1FJdGtQd01MeHJQMERRTkFU?=
 =?utf-8?B?TDR4MUlLMGRvMlh1QnQ2MkhJekVVaC9MT0VTTXFnR2RhWjcxSnd1Ums4U3Vj?=
 =?utf-8?B?dE5SeCtNbWhEaHoxQ0V3S0lnWVV4NnM2SExUY2wyak9ZSy9jK2pTRTR6VzhW?=
 =?utf-8?B?a3RheHQ1M2FCS3Y2UFhNYTdWVHlQOFFycXNYcGNnUCttSnh6ZmlKSG5vYXFs?=
 =?utf-8?B?dzB0YVlCcTJrQVZzNERUU3dyckphcEppTWdYSTREd3V1cklpWHdUM2dyNjBj?=
 =?utf-8?B?eXIxSHRpemFCQlFDeDNXZVNuRVhWNU1HWWZBSU9nVmhWYy9PaWpHSk9GWDRV?=
 =?utf-8?B?L1N3ZHFObnhPc3R4Wk5mQld0TnhkSEJZTVZ3dUUrK0hiUGdra0x0ZzN0Q3Rl?=
 =?utf-8?B?Q0taazFpRk9JdDVtZTI4MTBYMytpeG9JaFozVklRTmRUS1pUVmNtY3RqMDZz?=
 =?utf-8?B?RXFiRHUrZURCTUpLS2h1eXlEY2ZjejVONmZNWFhTWWtSdEt5R1ErMXhGMDlT?=
 =?utf-8?B?THZmQ2J5QnkzblZsNkFRTEdyeWlxdlZMNVduYmR0TlFaRUF5WjVmNjBsODRu?=
 =?utf-8?B?VVdOTUwwYmZYSlNpUC92TldzQVEweXRCd1ppam5ScFZGTmRYWERVS0lLZ3V3?=
 =?utf-8?B?anh2VTFLZnp5R3pBSGdISmQxZnNTWS8rM0ZxbWRDYnpudU9sZFZKWmZPL3Jq?=
 =?utf-8?B?bFpYYUY4bnB0TjhvbGVCbHFwcU5GUnJUbDhReGNpQmVQdnlhQ3lxVkEwSjJU?=
 =?utf-8?B?WVphbzJ0Yzd0LzlXMWdQWmN5QjIwaVZRN1RwVExESm5GNGpQOWFoWGE0eVRD?=
 =?utf-8?B?MENEbk9NeEYvMFFrYjF1enRWdTNWUUpBd01MclZVKzFIKzJyV2Q0djVLQnlU?=
 =?utf-8?B?K3NucWk2OWVFRlJYMVdZRStCeEV4VmI0YzVkZEFPVXhnd2tTdklIQmlHNG9F?=
 =?utf-8?B?V0RUUFhaZnJTNGJjc2tYVWF6VWlRdXhwbTRZWGYvaTZFRmFKbkdYSGdVUmEv?=
 =?utf-8?B?TUorMkVMK3o4cElxNllQT2FSNXgvWFZ0blpHRGV1UXBCZmpPc1BoaDFpVjRV?=
 =?utf-8?B?WndibHEwMDlJNFVnZk8vRnVvcXVVK0ljL1J1dzRUckFjUmlDazZzUms2OHVF?=
 =?utf-8?Q?5t0E=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 12:11:06.8743
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e73471ce-fc01-4339-6401-08de22adb979
X-MS-Exchange-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:
	CY4PEPF0000E9D1.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PPF2D39B31FF

On Thu Nov 13, 2025 at 9:50 AM CET, Andrew Cooper wrote:
> On 12/11/2025 4:22 pm, Alejandro Vallejo wrote:
>>  xen/arch/x86/Kconfig                    | 12 ++++
>>  xen/arch/x86/cpu/microcode/Makefile     |  9 ++-
>>  xen/arch/x86/cpu/microcode/amd-base.c   | 55 +++++++++++++++++++
>>  xen/arch/x86/cpu/microcode/amd.c        | 55 ++-----------------
>>  xen/arch/x86/cpu/microcode/amd.h        | 15 +++++
>>  xen/arch/x86/cpu/microcode/base.c       | 73 +++++++++++++++++++++++++
>>  xen/arch/x86/cpu/microcode/core.c       | 58 +-------------------
>>  xen/arch/x86/cpu/microcode/intel-base.c | 50 +++++++++++++++++
>>  xen/arch/x86/cpu/microcode/intel.c      | 56 +++----------------
>>  xen/arch/x86/cpu/microcode/intel.h      | 16 ++++++
>>  xen/arch/x86/cpu/microcode/private.h    | 14 +++++
>>  xen/arch/x86/efi/efi-boot.h             |  2 +-
>>  xen/arch/x86/platform_hypercall.c       |  2 +
>>  13 files changed, 259 insertions(+), 158 deletions(-)
>>  create mode 100644 xen/arch/x86/cpu/microcode/amd-base.c
>>  create mode 100644 xen/arch/x86/cpu/microcode/amd.h
>>  create mode 100644 xen/arch/x86/cpu/microcode/base.c
>>  create mode 100644 xen/arch/x86/cpu/microcode/intel-base.c
>>  create mode 100644 xen/arch/x86/cpu/microcode/intel.h
>
> This is awfully invasive for something that ultimately drops only a
> handful of lines of code.

Two handfuls when considering both AMD and Intel. But yes, I'd rather not m=
odify
as much as this. However, for our purposes it's important to physically mov=
e out
the code we want to Kconfig out, as then coverage reports don't need except=
ions.

>
> First, it should be CONFIG_MICROCODE_LOADING. [...]

Sure,  I don't mind it being $FOO or $BAR.

> Next, annotate the functions that you conditionally don't reference in
> {amd,intel}_ucode_ops with __maybe_unused, and dead code elimination
> should do the rest.

I considered that, but local DCE poses problems for coverage tracking, whic=
h
we care about deeply. I'll check if there's some magic we can do to enable =
that
pattern but as of now, there isn't.

If I can't make it work I'll just take the sledgehammer and drop all ops an=
d
dependent functions.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 12:12:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 12:12:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161136.1489148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWBV-0006j2-M6; Thu, 13 Nov 2025 12:12:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161136.1489148; Thu, 13 Nov 2025 12:12:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWBV-0006it-JI; Thu, 13 Nov 2025 12:12:17 +0000
Received: by outflank-mailman (input) for mailman id 1161136;
 Thu, 13 Nov 2025 12:12:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EIX7=5V=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vJWBU-0005l5-L1
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 12:12:16 +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 fd8c8432-c089-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 13:12:14 +0100 (CET)
Received: from CY3P220CA0008.NAMP220.PROD.OUTLOOK.COM (2603:10b6:930:fb::10)
 by DS2PR12MB9616.namprd12.prod.outlook.com (2603:10b6:8:275::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Thu, 13 Nov
 2025 12:12:11 +0000
Received: from CY4PEPF0000E9D1.namprd03.prod.outlook.com
 (2603:10b6:930:fb:cafe::2f) by CY3P220CA0008.outlook.office365.com
 (2603:10b6:930:fb::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.17 via Frontend Transport; Thu,
 13 Nov 2025 12:12:19 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000E9D1.mail.protection.outlook.com (10.167.241.136) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Thu, 13 Nov 2025 12:12: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; Thu, 13 Nov
 2025 04:12:09 -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: fd8c8432-c089-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lcw8tbpiHCKVRDx+LDTx0XVPlBdk30DGYBcYgMir+yuJptkhMzVGoBoXhzw1zDHZIOQHc5H4rM5Fa8csXsHsvrpIbXT23AXZjnetGWc4WZm8vsu7tD8Gp+e+MSxWKYlwyIEOZXW5+JLFvnfqkk48J6nNVudTALcibLlnkiXkDn12n4NjvfshbuRVRAeupAYJ0LyRKdMxEw6ADzdDbEb6WVJjuVNj4UkJtojsPS/sRj+Z4xMBFucGDtrFiKZDXL8yAxpjLj3IgOcXkqv4tMFayKFHsLYnqAxfwvvoU5TyZSWULKeb6atTSjrpJIJ9k04KSwEsze1wVwTJyOWBnL8kSg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+FacR7mEg8qfbq9hx46rrqy8DywRwjvTi6AGMVrifM=;
 b=egYUoPsRDloWMwkb45iAmYZHOX6Ypv7OQVafU4utubCYxHX4j25EQP9/zvMLZzLprli28/qENEqkWVUNvCAow9IZu1Am90HndrWmvPDhJaVezzSSMRqYgiY89sKuUqBv55xdYAFmNLqSz39QI+Ls/GVBFTEw8V4sfLhH2F4HCglCAcGxHcUVFiRJAYOiV+1YNW/NVxS8H7j4efIzMF3D/3+Dimh6b4ihnWqX8N05EOVctGsHabLrq1Qdh2DF2G7/nY6xnwHrJy7yhF2kUJWVO9yVI6np7eSyQiZUd3ua7b18MBo8ZEeBcNQ5kjI46jQuUifVM8cuKRqxJvRYd029Xw==
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=v+FacR7mEg8qfbq9hx46rrqy8DywRwjvTi6AGMVrifM=;
 b=MhxfnsDz7MrUJdNPqA5zd+U7rbYpEBptzbbnLKIyapKN3ZKzTTf8iS4sEwG1RE0N/JBHDHNPIwiLV9jL5wsBodEdqb061PHwXmGaZSTrvqp01E/hFKf8Wxw/LUjui1JwBCvXtdxaSzHDoP0HWnp23fUjNzOGx5tGSb0YFhWd/6o=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 13 Nov 2025 13:12:07 +0100
Message-ID: <DE7K2RY582S4.3HVVCVXA8BARS@amd.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 0/4] Add Kconfig option to remove microcode loading
 support
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20251112162219.226075-1-alejandro.garciavallejo@amd.com>
 <248593ca-e24a-4518-800e-2c58e3197937@suse.com>
In-Reply-To: <248593ca-e24a-4518-800e-2c58e3197937@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: CY4PEPF0000E9D1:EE_|DS2PR12MB9616:EE_
X-MS-Office365-Filtering-Correlation-Id: af1bf8b4-2257-495b-2e8b-08de22ade004
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?Z3VqZmt0Uko3OEhGRDBiWXNQQUxVRjVUUmx2YmllSnVqNlFUb0VRTFA3NlBP?=
 =?utf-8?B?NE80T3dZSkVNcE9pUy9LMTJHK0F0aUFKTlpxZFE4d0RmT2hGZ0JUQ0ZHN3Q0?=
 =?utf-8?B?YjRoeFpHU000VG9CcnROakR1TEQrY3JZMXdTOGpHclVWUGZ0Mkxpa3V4YWJJ?=
 =?utf-8?B?bG9xMzNmMWZsVTlJQStjNGljMzBiaTNnbzU4M2xSR3RlZ1JSRldCRXBudnJ4?=
 =?utf-8?B?ZEtYVlJWeEhSK1I4NkJUNU0wRFIyV0dUZnEwSmZ0UEtTWlppa1NZNFdvYXdl?=
 =?utf-8?B?N3BWMXV1c1VlZ0Q5V3FrdWZTR1B0SnBUVFE3MC80Z0oxS3dlSHZ2eHBZbi9h?=
 =?utf-8?B?dXN1dWI0eGJ3cFFxMm1MZy96VlZpNXJOZko1dXZxNlh4TEorcE5sR1dnb3FT?=
 =?utf-8?B?V3o5cUlPbXZjSnpFOWtLTWNSaVJVdU9zTWJGUldhSCtlakx0dWFPcHJZb09I?=
 =?utf-8?B?Z1RNcTR1TE5LNmVJS211cVE1VVhiM2ExZHpBUEVrcXZaMTFzczJOZUEraVpI?=
 =?utf-8?B?SDhFVnhpL3pHZDkySzM4TVRqK1AyRGlsTWw5UHlVL2RDcC85aWE1c2R2djlp?=
 =?utf-8?B?NHlYMFhjNDhLUFRCOXhQTnVKREh3ekFON1h5cFEzWExYanR2SDl3czlHUmxZ?=
 =?utf-8?B?Y2VmU1ZWdks0MjlXSGhsSG5oelV0R0dYVGI5VUdhdVNJTElRcEFOTnNyY3RN?=
 =?utf-8?B?QTNHN1UyU1FhZDJqVzFyc285cWZDTTMxY0tKWkp1MGhBVVlIOFlRRFkwWHpO?=
 =?utf-8?B?M2FpdkQzZGJBdGNPRGFkbXVmY1czbmd6aWpMZFNaUmgvRDNjandQd29KTWJO?=
 =?utf-8?B?YjRUeVlmRXNLMFpqOTBaWlQzNFp1b1p6aXpvaVMzbEtVekE5YXdySGwvK3g0?=
 =?utf-8?B?S0x0aitzdEx4OHU2RTI3d0doUk5LclpDdkdQa00yQWtvWjlZTTRDZm1CL3pT?=
 =?utf-8?B?NmJTaHpQWU5sMW5HUzZ2c3JFMmFOSXU2eC9jRGpHTitLZzBnc1NiOXNzSGcy?=
 =?utf-8?B?bGpJa3grdTFEeU1MZjFwWGIwWVB5NzVTUHk5ZVBDaXFqc0ZUMzdVVi9FTFpm?=
 =?utf-8?B?cDdSWVpzU3cxU0dEOUhEQnhkUkdaWUNXbmlkejAxQk5jTmRGV1RqeU5Eci9z?=
 =?utf-8?B?LzQyRXJjS2Nrb3Z4L25OMGl1L2p2c1VzOC8rY1N0ZnAxcjN2V0YxbUVOOEh5?=
 =?utf-8?B?YTA1Vm5vc1BOOHAyTFN2Y1FDOUUxeDVBVXN0TUI1ZHFYTVZ2Tm0wNnVNQndE?=
 =?utf-8?B?T3hKREN6M05VUnE5WFU5clQwblpOUDRST0wyZUN6eitmTjhRT09HM2g5dGtu?=
 =?utf-8?B?OUNWQkk3WEdjbHVlOFFwR05la0dqNEp0Vk43RzJSSVBaVTdTMnZ0NGNsT1ZB?=
 =?utf-8?B?dXdVMUtERnhzVisxZGxoU2g3eUJYRlppVU0zdytoQld0Y3h6cndnWlpNSSt6?=
 =?utf-8?B?MWtrNFdtK1JUT0VtRXlSQWRkbnVsTWZDL2FrVy8vOXo3bmtPTkE2aVBKYmpq?=
 =?utf-8?B?YmJXdmZ0VDBWLy9LSitiQURFb3YwN200bmdCYnNjQWFLTDVHVXFYeXlMdUti?=
 =?utf-8?B?Z1FxQUJJL3FIYlpoQUpYcXdDN01LRGhIaDJYNlBBUXJkNDhCK28rcWhNdk9h?=
 =?utf-8?B?RXhzQnVFTkd4bjcvUXNlbko5RmtxMEpWNmNTU2Y0OGhFcUFLMEg0NUM1K3Rm?=
 =?utf-8?B?Vk9FSkFyY1VGaG9CQ0FLQTFpczVuQ2V6V01icTkvWEUwUW1Wd3E2ZVRvUHhO?=
 =?utf-8?B?Um9nSHp5SkpENEJ1L3pGeGNsRUxKOThaMGloWTZUNGs2VFF3Mi9Jc0k0aTJl?=
 =?utf-8?B?c2pjc0FPMVVodW1Ib0t2dXJQQk1xeDV6VXdUSzI4RkRnZmRIdEIzVUxqVEdp?=
 =?utf-8?B?TzM5NEZkZFVta1lDS3pWQStCTG0xMlgwZXhBc25KMzNKYnJzMjR3S2d3TXBF?=
 =?utf-8?B?b2VPVHYrWlV5TndHNkVaTjgzazNSNUVvNEkvUmhXQmhmR0Z1bWRhcU9ibWw5?=
 =?utf-8?B?RVU4djhlb2VmVFNBVzdTb2V1WGp3RHpQTGdoTXN2eng5TXlLejByOFhNcGZx?=
 =?utf-8?B?eGtHSGRzREJBNVNQUUx3S0U0d09tL05vQWtOM2dkUEdDQVZJVDZIVWI5bHQ4?=
 =?utf-8?Q?GG8Y=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 12:12:11.5372
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: af1bf8b4-2257-495b-2e8b-08de22ade004
X-MS-Exchange-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:
	CY4PEPF0000E9D1.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR12MB9616

On Thu Nov 13, 2025 at 8:36 AM CET, Jan Beulich wrote:
> On 12.11.2025 17:22, Alejandro Vallejo wrote:
>> Hi,
>>=20
>> The series is mostly a refactor between everything needed to load microc=
ode and
>> the bare minimum to probe the current microcode revision.
>>=20
>> The Kconfig option keeps the reading of microcode rev data around, as it=
's very
>> relevant for security and debuggability in order to deduce which erratas=
 apply
>> to the current platform.
>>=20
>> The idea is to move everything that must still be compiled with !CONFIG_=
UCODE
>> onto {,amd-,intel-}base.c, then remove everything else conditionally at =
the
>> Makefile level.
>>=20
>> Renaming files (e.g: s/base/core/ and s/core/common/) would better refle=
ct
>> post-series reality, but it'd be annoying for later backports in this ge=
neral
>> area.
>>=20
>> Cheers,
>> Alejandro
>>=20
>> Alejandro Vallejo (4):
>>   x86: Split out AMD-specific code to be executed without ucode loading
>>   x86: Split out Intel-specific code to be executed without ucode
>>     loading
>>   x86: Split out early_microcode_load() and microcode_load_one()
>>   x86: Add Kconfig option to disable microcode loading
>>=20
>>  xen/arch/x86/Kconfig                    | 12 ++++
>>  xen/arch/x86/cpu/microcode/Makefile     |  9 ++-
>>  xen/arch/x86/cpu/microcode/amd-base.c   | 55 +++++++++++++++++++
>>  xen/arch/x86/cpu/microcode/amd.c        | 55 ++-----------------
>>  xen/arch/x86/cpu/microcode/amd.h        | 15 +++++
>>  xen/arch/x86/cpu/microcode/base.c       | 73 +++++++++++++++++++++++++
>>  xen/arch/x86/cpu/microcode/core.c       | 58 +-------------------
>>  xen/arch/x86/cpu/microcode/intel-base.c | 50 +++++++++++++++++
>>  xen/arch/x86/cpu/microcode/intel.c      | 56 +++----------------
>>  xen/arch/x86/cpu/microcode/intel.h      | 16 ++++++
>>  xen/arch/x86/cpu/microcode/private.h    | 14 +++++
>>  xen/arch/x86/efi/efi-boot.h             |  2 +-
>>  xen/arch/x86/platform_hypercall.c       |  2 +
>>  13 files changed, 259 insertions(+), 158 deletions(-)
>>  create mode 100644 xen/arch/x86/cpu/microcode/amd-base.c
>>  create mode 100644 xen/arch/x86/cpu/microcode/amd.h
>>  create mode 100644 xen/arch/x86/cpu/microcode/base.c
>>  create mode 100644 xen/arch/x86/cpu/microcode/intel-base.c
>>  create mode 100644 xen/arch/x86/cpu/microcode/intel.h
>
> Purely based on this diffstat: A doc update likely is necessary as well, =
as
> the ucode=3D command line option now becomes only conditionally applicabl=
e (aiui,
> i.e. without having looked at the patches them selves).
>
> Jan

Yes, that sounds sensible.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 12:18:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 12:18:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161154.1489158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWGy-0007W7-Dx; Thu, 13 Nov 2025 12:17:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161154.1489158; Thu, 13 Nov 2025 12: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 1vJWGy-0007W0-Ap; Thu, 13 Nov 2025 12:17:56 +0000
Received: by outflank-mailman (input) for mailman id 1161154;
 Thu, 13 Nov 2025 12:17:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=G3SV=5V=bounce.vates.tech=bounce-md_30504962.6915cc6e.v1-c69976a56ee8495baada4dfad6e54171@srs-se1.protection.inumbo.net>)
 id 1vJWGx-0007Vr-7V
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 12:17:55 +0000
Received: from mail136-17.atl41.mandrillapp.com
 (mail136-17.atl41.mandrillapp.com [198.2.136.17])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c6ae1d0d-c08a-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 13:17:52 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4d6fRf42P0zPm0fhf
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 12:17:50 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c69976a56ee8495baada4dfad6e54171; Thu, 13 Nov 2025 12:17: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: c6ae1d0d-c08a-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763036270; x=1763306270;
	bh=TaopVpkhSPFnx7zk1qFNE7lnuV6CYGsQCMohNV3HC6k=;
	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=ZJK5Q0psmKEFyXD+ejP4yiuqM+fSCh0ur66Jmlrg3qHB73tMPwY5iUCXQFUFijezq
	 knOl8hIEKEVvmSBpUow01lFBXdyKJSewStI/66rG9qr1psx5TQpvl+KbUgmIQUBZmD
	 9sRzvv4yYWk2fEe760hYOBiQd/fAtZ3Y3QnVawIMXNYrQhaawx7cCtgYeOZEgqUDtI
	 H5XQHbEhr8KNihlDfWHaGZ8c7gewvmq1uY0nXTYsnKzJ3VN67gVQC/jGXYZg/pxHTa
	 wbT76j8DvlhRtz3Pi2GXVxhE5xVY2w9vnh0QWEvPq4LKkaa8BB4CEiGpcVmolhjASN
	 XgwwKFa9SOgkg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763036270; x=1763296770; i=ngoc-tu.dinh@vates.tech;
	bh=TaopVpkhSPFnx7zk1qFNE7lnuV6CYGsQCMohNV3HC6k=;
	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=lo1Kizl6BuJiEHc/W3ErO8CyZ2z8m+mGGz/nWyzdqnDz6cpqSVDblgU48uVhv4QXh
	 iIqalO1bI48CXlrlk0SfDVQ7smmjdV08NkBq7IZW/pmnAyK1VOQu4Uc6nNORQ88J4/
	 C/75U3F15iRxSO2+LgfemBvn2NNPn8Am3GMWq6FyJaynQ0t7ksn3b8Ix2vk8RC984K
	 4iUa3+u0orh6Jeds7oVpP0/BU4PrKVAnwGgGN9k26BDHD/FgxM7Z6a0TeB0iS6/Xux
	 r9ahWtps3ocLAaha4VPGBYAiygkDnJhBWwZuOHZTdUWcv1NHDq96lzlJdtslBh9R0L
	 iFBXVEas2Ds2Q==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20xen:=20Expose=20time=5Foffset=20in=20struct=20arch=5Fshared=5Finfo?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763036268962
Message-Id: <1d4dd308-74c3-4557-8e0b-522b53b4286d@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=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>, xen-devel@lists.xenproject.org
References: <20251112070815.545-1-ngoc-tu.dinh@vates.tech> <75e6e27c-1d47-4689-a52d-e596de84db26@suse.com>
In-Reply-To: <75e6e27c-1d47-4689-a52d-e596de84db26@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.c69976a56ee8495baada4dfad6e54171?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251113:md
Date: Thu, 13 Nov 2025 12:17:50 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On 13/11/2025 13:09, Jan Beulich wrote:
> On 12.11.2025 08:08, Tu Dinh wrote:
>> time_offset is currently always added to wc_sec. This means that without
>> the actual value of time_offset, guests have no way of knowing what's
>> the actual host clock. Once the guest clock drifts beyond 1 second,
>> updates to the guest RTC would themselves change time_offset and make it
>> impossible to resync guest time to host time.
> 
> I guess I don't understand what the problem is, or why it would need a
> change in the hypervisor (interface). If the guest updates the vRTC, it is
> (implicitly) asking for a change of time offset, isn't it? And whatever
> adjustments it makes, it could track and accumulate them?

vRTC drift can happen for other reasons. For example, Windows can write 
to the RTC at any time; if a guest clock drift has already happened 
(e.g. after a migration), an unfortunately-timed RTC write will make it 
permanent. Windows time providers don't have the ability to control when 
Windows writes to RTC either. Thus the "real" host clock time is needed 
to help the VM adjust to the correct time.

IOW, it's the distinction between "keeping track of already correct 
time" versus "correcting wrong time by adjusting the offset"; the latter 
is what I'm looking for.

> 
>> Since there's no way to add more fields to struct shared_info, the
>> addition has to be done through struct arch_shared_info instead. Add two
>> fields in arch_shared_info representing time_offset's low and high
>> 32-bit halves.
> 
> Any why in two halves? Without that, ...
> 
>> --- a/xen/common/time.c
>> +++ b/xen/common/time.c
>> @@ -118,6 +118,11 @@ void update_domain_wallclock_time(struct domain *d)
>>       shared_info(d, wc_sec_hi) = sec >> 32;
>>   #endif
>>   
>> +    shared_info(d, arch.time_offset) =
>> +        (uint32_t)(uint64_t)d->time_offset.seconds;
>> +    shared_info(d, arch.time_offset_hi) =
>> +        (uint32_t)((uint64_t)d->time_offset.seconds >> 32);
> 
> ... no casting at all would be needed here. (Even when there are two halves,
> some of the casting can be dropped.)
> 
> Another question is - why unsigned? struct domain's time_offset.seconds is
> signed for a reason, aiui.

Both are just for easy consumption of the time offset on 32-bit guests. 
Unsigned is particularly because these are only parts of an int64_t (and 
therefore have no signedness themselves) and I prefer to let the 
conversion happen after reading the two fields.

> 
> Jan



--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 12:21:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 12:21:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161165.1489168 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWJx-0000eE-Qn; Thu, 13 Nov 2025 12:21:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161165.1489168; Thu, 13 Nov 2025 12:21:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWJx-0000e7-O6; Thu, 13 Nov 2025 12:21:01 +0000
Received: by outflank-mailman (input) for mailman id 1161165;
 Thu, 13 Nov 2025 12:20: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=EIX7=5V=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vJWJv-0000dx-Ub
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 12:20: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 3525e117-c08b-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 13:20:58 +0100 (CET)
Received: from MN2PR18CA0008.namprd18.prod.outlook.com (2603:10b6:208:23c::13)
 by LV5PR12MB9825.namprd12.prod.outlook.com (2603:10b6:408:2ff::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Thu, 13 Nov
 2025 12:20:54 +0000
Received: from MN1PEPF0000F0E4.namprd04.prod.outlook.com
 (2603:10b6:208:23c:cafe::95) by MN2PR18CA0008.outlook.office365.com
 (2603:10b6:208:23c::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.17 via Frontend Transport; Thu,
 13 Nov 2025 12:20:46 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MN1PEPF0000F0E4.mail.protection.outlook.com (10.167.242.42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Thu, 13 Nov 2025 12:20: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; Thu, 13 Nov
 2025 04:20: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: 3525e117-c08b-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bSfbGXF/zcLAzj66ZW4shUePrsUXIZcw3ELsu9TSOVOPd8fkLKRJTDLCCiVJORZiUDMHR56b3slfBZRaD20nfb6Nr/Cx0iT5kH3CvPKV+lR3y4px3H+EpR+ofj+0cVvzgmb46FP8EFFmsdLtZ+elTDQFKtSJ49u5atL4zms5QK57F1gYKTkKlSh0ltNWEhLu4qotPnoSjhfpPZ/HW6JOVP8/KD1lgsWPVWUTuahg28XkXgWP5PFf90mjivU1EDW5N8k3VP3A6GqHxDoDhPjE2/HfskWAFSV3oVv0jKL5XZHyJ73YxGNdDRfQtK/7RP5NlgtgaKAnmZAROqz/HaG6ug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EczQbUIAzunZNp5c+f3DsSUMSvpC+Ob+/nbF+WrTaYA=;
 b=UkXL0QwWMCoc0e7Llovfp793+UfaTSgDHCjDa4nG112T9DCT2/nGOvrO4LvgdrDb35Z5aQsmlHzc3m+E0VVYSgXWX9NvPoDTBs5QDbxdOx0XDWJLPNVMk9bSn5Rqv0EPiLD/xJOZVoDDmt6PtWRXTDRrouzaQ6uFDYou2HgAcz+K+vTDLL3HXQVuKneF8W+1xPkDx5pNbW15REhErrocwDACcp9J/ze3OVMLEUKoUth/lZoG2nMq/tP0bBDZBnyv7c8o56VTKzFS+RLGjxkAeTafIQLupQWXnqiqG7OaNCsd5/+MbvS7rjyQhH691nX1PN0ANrWrNodSrH7HB+dzBQ==
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=EczQbUIAzunZNp5c+f3DsSUMSvpC+Ob+/nbF+WrTaYA=;
 b=XfLsKWFTzeW4Hsz8kyMUkwzwtshotY3ABlsu2qp3hkPuj54R23+vgagTf/hr9IwWbUS+p0C9JV8NRW3Qrmb6oHmSusIJyShVCbMBbbilxl37VOxHfJANrkorbWvbOJPzzpS5koCtpntL/fNDN2DhssbZJzSwqGX/cFluFNbTk4o=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 13 Nov 2025 13:20:50 +0100
Message-ID: <DE7K9G9FS7ZL.2JVRCUHFJFH6W@amd.com>
Subject: Re: [PATCH 1/2] x86: Conditionalise PV-only fallback branches on
 CONFIG_PV
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>,
	<xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20251112152235.224001-1-alejandro.garciavallejo@amd.com>
 <20251112152235.224001-2-alejandro.garciavallejo@amd.com>
 <730c6001-58a2-46db-95fa-c8ec2081d3b0@suse.com>
In-Reply-To: <730c6001-58a2-46db-95fa-c8ec2081d3b0@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: MN1PEPF0000F0E4:EE_|LV5PR12MB9825:EE_
X-MS-Office365-Filtering-Correlation-Id: eaa31581-70f3-4303-2eab-08de22af177e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UE5FRlNwV2pjTjVUVHFNZWRjKzBUcnRUZE01RW51dUxaaEl2WG1XN2ZsNDJJ?=
 =?utf-8?B?aVcwWFF2NW1CZFJ4K3dsaEY3ZzdDMjVqSXpCWU1PUlJTZDJrYkpMeEQ0S1Qx?=
 =?utf-8?B?Zk9TUTVHMnNYdUVXMUJGZkx1amV3bys3Qll1eTdKRmdCM3pUSUVzaGwyZStQ?=
 =?utf-8?B?S0EwRXk1S0hBcUhQSmJ3aElsMU54ZzROTHhUQ0x2Ylkzb2p3c2tWV2loVHhs?=
 =?utf-8?B?cnNhaW1UMlptTzk2WmRpUVRkU2N0ZnFMblUxVHlBK2IwcGZ3cTZnZnhSWncr?=
 =?utf-8?B?UWNVZUlEMjFaMTlCR2daMXkreHp5aldtWEJGbTVjcGRzaEc5TDk4UjlEOExk?=
 =?utf-8?B?ODBvSDc0blp4cWlWeGxtc2FNY1IzYjlmVmQvNU8rR0Q1L1p0UFAvbWgwZ093?=
 =?utf-8?B?Z0U4ZHVUa3NMaXNaTDdYekhkZlBEZGlRUmU5a1dLR0FNWjA4b1F5N2RZM3pJ?=
 =?utf-8?B?VzR5bFFsNW1sdy9idWFiQkVoamlVR2ZEVWVCYzFpU3crZno3SzNYREYyRWZx?=
 =?utf-8?B?S1N5SHJvazhHNmFsZ0hXa0x3UGU2NXRROEVrcHBYY2FQbnRHR3VGbnVyVW1q?=
 =?utf-8?B?UUtxbFp5cFZYUmxuc1pUYmpuRnVuMWZmdDRHbm10SHhYaHVuUUw5N09pcm9z?=
 =?utf-8?B?czB1VkNpZjVhNmlIL2dCUjBYaEY5eEVvT29oc1pma0RIK0J1VzRiWG1YSTZ1?=
 =?utf-8?B?cHAybXZkeHRRY1lpNS93TmYzT0ZlY1ZNenlvLzlPQmw4b1M3ZDhiblFmd3R5?=
 =?utf-8?B?WDNKSnpqOTNlYmI3Q2ZHVnRtdVRNcXhSNmJHWkVUamptalRXQjNZK0tPR011?=
 =?utf-8?B?Mlo5amEzOVJPTW9nQWZLdFh4WGJ6T0MrQUJKZFkvTEVoZk1leE03dEQ5VXk1?=
 =?utf-8?B?UnRvL1BVbUlKTTgvaU50Q2czSkNzcEo0TFFya2VSY3lBaTFJZTJyM25nMGRJ?=
 =?utf-8?B?cEh5MnFoWjZLWVFsY0NNdC9CNXJYLzY0SHhTL05tUERibmlvR2N2Y2pBODUv?=
 =?utf-8?B?alpENWFUYUZGeFJMOFRTV0VpV0c3V2NNN1p5amkxdjIwK01LeFhrTGNJeEVu?=
 =?utf-8?B?UHROdGFqYzJKQ1pRblpFREtBQWRCN2NDdUZwTEZrWXZQOGVXekI4TWhQWTlI?=
 =?utf-8?B?L04rVDdlekFlaHFYTVA1b3V5ZS8zVEF2VGRQY2l4bjFGZ3duVmRhV3JqcEhG?=
 =?utf-8?B?UEI3YlVYaGFFckh6R0d1b1FzNWUzT3I2MWliRis3S21iN0dOVjNteWZ4bURx?=
 =?utf-8?B?d0pKcjA2ZWs5SDZiYVgyMVlTSHhIWjBwRE84UFMxYmx0SUZ1ODZMSGFtMXJH?=
 =?utf-8?B?Y3k5N2hMS1lLTU9kSWxxbjRxcFYvNHQ4R0EvVC93UVJ3ZzBWWmYwZzI1bGFt?=
 =?utf-8?B?YWtxV2xwbjlwMmFGMTQxM2x0K0dKcGtqcUwraVNDNDRzS1ppcVVaQ0tmSDFk?=
 =?utf-8?B?VXFuQVZ4U1VwSlhreFZkUUVWRDRNWTBXbkgvTE9BbUtORkFQTEd6cmdqL3dH?=
 =?utf-8?B?MXZHVnZYdDdIQzZkcC9GeDZYaXdrUzBEemlkWnpXT2hSZlk5UnhzVTBiUkJ0?=
 =?utf-8?B?UVB1aE5YeXN1bVRYaFdQdGVnazhvWHdqeTRPY3BmVXhyTTJUT1FpcjFvUTIw?=
 =?utf-8?B?MjNxRG85eWZTT010d3l6Q2VKT3BOY01waGZ4Y3lUajFSaDJSYlk5ZVJlaDJK?=
 =?utf-8?B?bUNoVXJRSjFVZ20wSk9ObHdZR2RkYzF6eG1NNVNpNk9zNWsyRVZTYWlUelZv?=
 =?utf-8?B?WEZsMUNrSER5b01yTVJrcjNzemlUVVZRazdSRGY5cTM3NG8yT0J0R3ZhM1R2?=
 =?utf-8?B?RHYxYWZUaHRkZnFxdmN5SjJQb0o5SlRCQTdLQ3EvVEFEQVIzKy9DNm4zSlRM?=
 =?utf-8?B?dVBYSG13YjcvcWt0dG1DME1tNjVueEVjWnMwTGFCV1pnZVlDSXp3dnh0TkJT?=
 =?utf-8?B?SWlXaGxYRzZpVkFia05CU2ZjaXl1NkQ3QVZhYkxoYTNjeXFTdE5saC9scnR5?=
 =?utf-8?B?SmI0YjlBdmZoaStrUVMxNFp4S28yWCtnMHVZR1MvNVR0RkdDRzNPTTlrSmZI?=
 =?utf-8?B?S0RyRXR0VFRzd2IzblA3MEhTQnUxOVpkNVRtRjBTRDU3NEdRSEZFTWRRaGJp?=
 =?utf-8?Q?mitQ=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 12:20:54.1513
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: eaa31581-70f3-4303-2eab-08de22af177e
X-MS-Exchange-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:
	MN1PEPF0000F0E4.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV5PR12MB9825

On Thu Nov 13, 2025 at 12:42 PM CET, Jan Beulich wrote:
> On 12.11.2025 16:22, Alejandro Vallejo wrote:
>> --- a/xen/arch/x86/cpuid.c
>> +++ b/xen/arch/x86/cpuid.c
>> @@ -297,7 +297,7 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf=
,
>>              if ( v->arch.hvm.guest_cr[4] & X86_CR4_OSXSAVE )
>>                  res->c |=3D cpufeat_mask(X86_FEATURE_OSXSAVE);
>>          }
>> -        else /* PV domain */
>> +        else if ( IS_ENABLED(CONFIG_PV) )
>>          {
>>              regs =3D guest_cpu_user_regs();
>> =20
>> @@ -509,7 +509,7 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf=
,
>>              if ( !hap_enabled(d) && !hvm_pae_enabled(v) )
>>                  res->d &=3D ~cpufeat_mask(X86_FEATURE_PSE36);
>>          }
>> -        else /* PV domain */
>> +        else if ( IS_ENABLED(CONFIG_PV) )
>
> Maybe better leave the "else"-s as is and, ahead of them, insert
>
>         else if ( !IS_ENABLED(CONFIG_PV) )
>             ASSERT_UNREACHABLE();
>
> Happy to make the adjustment while committing, provided you'd be happy wi=
th me
> doing so.
>
> Jan

Should I understand that as an Acked-by?

I think it'd be marginally clearer with the assert added to my code as an e=
lse
branch at the end, but either form works. I'm fine with it being committed
in the form I originally sent, what you proposed, or the ASSERT as an else
branch.

They all have the same effect, after all.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 12:22:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 12:22:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161175.1489178 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWLR-0001bs-4E; Thu, 13 Nov 2025 12:22:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161175.1489178; Thu, 13 Nov 2025 12:22:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWLR-0001bl-1B; Thu, 13 Nov 2025 12:22:33 +0000
Received: by outflank-mailman (input) for mailman id 1161175;
 Thu, 13 Nov 2025 12:22:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJWLP-0001aD-OQ
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 12:22:31 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6c230061-c08b-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 13:22:29 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-640ca678745so1444035a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 04:22: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
 4fb4d7f45d1cf-6433a3f961bsm1406684a12.14.2025.11.13.04.22.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 04:22: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: 6c230061-c08b-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763036549; x=1763641349; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jm0gTsTwjScTg9mbFP7NxCqhw2blGsri3tA9v7qd8Lg=;
        b=UCbSdq8cFJO9THsIhf5btpxJDll1G8tQhXY5ao7WUnq+lK82Uc+6kJpZWJmRIlSOdQ
         GE44dz8PRMlNwkcOvtTEdygn7qQOE0y3m8S3kouoXxrivsSDglkhd6QXjGXqGpiRgil1
         9mWum204fy8NLDRf+1cDlDpC17cgb67E7RP9kBCehrii3wztabAxBeGcEX06E+ywORKp
         /RNZ+uaZgAQzI8tI/havFD2oKmUNvisoav6cfKF2ENiAKO9Wra++vcLNwuaFSV/lGi7+
         Klq961mZvZRIYVROsWI9vuQI3J08bBcumhst7oRp/JjUyeV4Q+6PMET//mFJEnPSW9dO
         vyOQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763036549; x=1763641349;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jm0gTsTwjScTg9mbFP7NxCqhw2blGsri3tA9v7qd8Lg=;
        b=GlPd/+IYI58DbcmbixHwvmrcVvS1ljLx6gIH7cnVM5PU8UymSnDDUzjRbf3beJrF9u
         ZcoZGUMrbGk0JhCGr465Xq+oOzKfbZWAGxlAddVNObGj0hY4fQXCWd3xmW3AFK9q6fO2
         0NoQ0l20MBG0InMCrM+rfEXO+CMh2+2mrlqic0LjueMNO9kSWp+kKWnSxUFZR+YjxlHa
         rqWnjdV8iMxtcUYxESpI7e2AYbJZOuZpeOH1JeukvElrydOHeXhY/ERKpOhO7d+YsF0F
         f7vsDCfhskTAua2HoUymoSBPAYlDYjh6SfQzFLIJT6wq8vg0rLw7VQRQJyTDIWy5pfQ8
         aKnQ==
X-Forwarded-Encrypted: i=1; AJvYcCV0t1qmDHPHThEhdIbNnBiX1XCI6gS/0T2U6d6v3nZLcoyC2jxttUsLeB/q1urbTqqwvzmnYYwvtng=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwLr8kKxY9mxLe5oBaevbJYFH8Up+FpsvcN2lvCV4ZpNeMoJufM
	wQzB3osdRSFUa/0zyIp2Xry2TLnFF4v6naSMjn14YUOhdrwWhTbaofjb3uvsxDxXOA==
X-Gm-Gg: ASbGncvS9NOAWwbDWzpA+2GEjLmdG2qVxmIHVhbPSieA92fiDVrD37H5z2NCvGhVleo
	jzMZGyTH1aKuXVU+D2b3SGyQyRztH8p8MB8qp5vWYyLnX4juvk9kw5VcZJQQBUQUVSfu77YOUZS
	4zfuTeUx22Eou+1JC3gGcqB1bTaypKlu1o05C2xIFGuMTXg+jge/uuYJWrYXUYIvRbJb2iolfgz
	Qt/SjIcrFgNJ0yNdV6KXEhZNKyJfADnOsvOt22pQ3PfaswsB+RHBzdXfOmODVCovz+pE+SoNL9s
	mzgHb+HCfdcJKTybMi6hqZWPfpsqx+sSHd5DAPaI8IAyJGJ4T9l5SbYI5L4yyJaBow2pWGT+cfY
	QOP//cMkciTmG3/7Us2XtMMxAP56zWWDtaDEgWUxDRev5Ii4EV2+HNI7dBwa63DY9TC3YL7wAR3
	p/kFw1VsEcQh8vVzvWdCOcZfH3ilSMYSDw27rC7lHe6hWs8RubkUoemx8G/9sAO/G+GHJ6Orgq/
	DY=
X-Google-Smtp-Source: AGHT+IG/wI/VI+lnR2BBEVZqL2sHhkVhgpNwCcXbulrXP9Hdv8XMKxiO4++03DWMB4xtUe8l9heCBQ==
X-Received: by 2002:a05:6402:51c7:b0:641:8d6b:88cb with SMTP id 4fb4d7f45d1cf-6431a56b637mr5650314a12.28.1763036549129;
        Thu, 13 Nov 2025 04:22:29 -0800 (PST)
Message-ID: <da0d003e-a593-4b40-ac79-c889a6be683f@suse.com>
Date: Thu, 13 Nov 2025 13:22:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 2/5] x86: hvm: compat: introduce
 vcpu_is_hcall_compat() helper
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <20251111175413.3540690-3-grygorii_strashko@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: <20251111175413.3540690-3-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2025 18:54, Grygorii Strashko wrote:
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -311,6 +311,15 @@ struct vcpu
>  #endif
>  };
>  
> +static inline bool vcpu_is_hcall_compat(const struct vcpu *v)

Does the vcpu_ prefix really buy us much here? The per-vCPU aspect is already
conveyed by the function parameter, I'd say.

Actually - is a parameter in fact needed? It's always current afaics. (Then,
if the parameter was to stay for some reason, it would want naming "curr".)

> +{
> +#ifdef CONFIG_COMPAT
> +    return v->hcall_compat;

As long as you don't remove the struct field, ...

> +#else
> +    return false;
> +#endif /* CONFIG_COMPAT */

... why not

    return IS_ENABLED(CONFIG_COMPAT) && v->hcall_compat;

?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 12:23:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 12:23:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161188.1489192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWML-0002Ak-E8; Thu, 13 Nov 2025 12:23:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161188.1489192; Thu, 13 Nov 2025 12:23:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWML-0002Ad-B5; Thu, 13 Nov 2025 12:23:29 +0000
Received: by outflank-mailman (input) for mailman id 1161188;
 Thu, 13 Nov 2025 12:23:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EIX7=5V=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vJWMK-0002AP-PB
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 12:23:28 +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 8d97b943-c08b-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 13:23:26 +0100 (CET)
Received: from MN0PR05CA0013.namprd05.prod.outlook.com (2603:10b6:208:52c::7)
 by CH3PR12MB8234.namprd12.prod.outlook.com (2603:10b6:610:125::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Thu, 13 Nov
 2025 12:23:22 +0000
Received: from MN1PEPF0000F0E2.namprd04.prod.outlook.com
 (2603:10b6:208:52c:cafe::c1) by MN0PR05CA0013.outlook.office365.com
 (2603:10b6:208:52c::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.7 via Frontend Transport; Thu,
 13 Nov 2025 12:23:22 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MN1PEPF0000F0E2.mail.protection.outlook.com (10.167.242.40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Thu, 13 Nov 2025 12:23: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; Thu, 13 Nov
 2025 04:23:20 -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: 8d97b943-c08b-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=x2cX45hUUsFORe5h3WyRbGdEikmQdtQjFfMnQQ/yC/mDOC8O6F1gFZNyKAnrXOJNQgUXThIHDhyeg7OqnOc+nPZJv8Mer2nHsfkofTVv2XUrHymKg+iLa3F03KjD6MTIgwG8JUH7hS39hOqqTXaclS4gc1Y+HunKyJuTcUsfs6fv+OZVehUON6UuIkNoSegU2J2juFBS8YuRZqjGDhQisrk9yNVQxMCN/vTjKHdflqTTViiRL1j5bf0RjoBEK6TQ8SoHsiS/aNQiqrGdcN6sCbVALgnf1VLPP+umrYDFiDuwLViaCeRf83pbY4FvfAdyDHHJ44wjgddU6K5c/q4jYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QKd15oiT6H5dSlMAOW634YLWGGRVLgxhDzHb0E2eXB4=;
 b=xzZrkOaCxkUWJ8RX7DlgKMWZkQMZsPA24sgVIJo7rSVTN4P8KEpXEwGFJ7UpDzcYxKzLivg+R4sQ8NOnBzE0MkOdkdz2Qj5CrP2FWnBhYVJR04g+FM/cafq62aU5gVnaJ3oN/IcrjctjV6HkYxC0COG5TV4apZfUQVEG6GJU7elU3XZyjtpct9CRV2eX4BZaoOCdDVC/bQVEp5spFxORvpYs07davQz9Lv6jsHpeK371Uf5PT/0r2Gctmex4WEWcP29gMuNztG7G5QR+eeR0FbDvqZKwZQ9jSmmr4mGU18gBVE8eV4fRlI3J+b7P8bSKg2M7bcEPUmBGPp6IgobzvA==
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=QKd15oiT6H5dSlMAOW634YLWGGRVLgxhDzHb0E2eXB4=;
 b=jPI1LgpmfJwyuJVMmKcCotXbW67RwV/uw7DOmNfFeju/T8zlZ9Ue2paM+Lkrc0ZcMamdAnMkpRHqWAikBi8AsiaT4oZSmzgsDAqaktMBxspq6GOo6sir1DeRjKWr0dWlKxq5p7XF74Juob6NSksSutUr/HIOKU2cmCF+tyIQOvI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 13 Nov 2025 13:23:18 +0100
Message-ID: <DE7KBC8848Z3.2GZU4DD87D20F@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 2/2] x86: Remove stubs from asm/pv/domain.h
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20251112152235.224001-1-alejandro.garciavallejo@amd.com>
 <20251112152235.224001-3-alejandro.garciavallejo@amd.com>
 <5c08e298-3ef4-451c-b0f8-24f207a9d512@suse.com>
In-Reply-To: <5c08e298-3ef4-451c-b0f8-24f207a9d512@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: MN1PEPF0000F0E2:EE_|CH3PR12MB8234:EE_
X-MS-Office365-Filtering-Correlation-Id: bf3f5865-30b0-4897-2726-08de22af6fe2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RXBFeDIrUkl0UkZTb3JjcmV4R2diWTBYbnRKSlZOeER1U21yL2ZzRUxOK1VD?=
 =?utf-8?B?THJwcHRlcWVKOUFUN1JMYktMaWQxZnN4ZEpmeVZoc1U1c1BBVk51VHRTZFhF?=
 =?utf-8?B?aTJyQm9UNFhnNGhWdGFNcHZPWmI1SmxhSjdUOWNqVkM4UjBWMUJoYW0yNWZz?=
 =?utf-8?B?d3RtblhUMXNpdkVQOC9sYVU3L3g4K0I0L1BTMnVWNzFmMElQQmNjLzZHTCtO?=
 =?utf-8?B?OUdRc0gvMkt3NUFlbWpmU0U1OVJ0Q2Z0bS9LSEtIY2IzZGwzTllmQlVQOU5r?=
 =?utf-8?B?ZVduT3FQSnd4WE5mR2RCUSthcENWbElBYXFWNEZzcC9BZ1hFSGNKNUtZSVh2?=
 =?utf-8?B?UFRwQkFzK1ZxVmw1SGZWSGUyWEh4S1JLSlJOY1k2TmxNSUxZZFFFV2x3VW9r?=
 =?utf-8?B?Q1dXVnBTd0tBa2ZXRGh1Z3NTaDVsQ3RFUnZpU1FlOVU2OHBqc1d1eHR2NWNh?=
 =?utf-8?B?RXBEVzh0eGdvMG1sMGNqUTE4anpwV0JLbUdHTlI4MWVHaWI4bW5mS1Q1eGVu?=
 =?utf-8?B?SEhBWjZqMzFOTk5XeXY1MmdlTE1GTXFQSlEyZzdxbnJtV3Jxc3JQdWtERlIz?=
 =?utf-8?B?Y2JCQmJsMCtjMFA1OHRjZmZJbGc5QXZ6VWxCditoSDNoVjBFU0pqS1RwYmx0?=
 =?utf-8?B?MWh1RnFrTDVPcnhsdEJBbjlCNUJYQmxLaFQ0WDcwU0VCNE94MkdHd1BucElx?=
 =?utf-8?B?Z0IzVWwrWmp1TGh0VHdPdDc0SkhEWGpTY05kRFY5a3ZQUkxCZURSZ1duSmFq?=
 =?utf-8?B?ZVhicHFYTDNPUFVJMlZ6d216Q2YralhJTE55elpQZzRVOWlML0ZQWTB4TTJL?=
 =?utf-8?B?a1FycmtZd2NMS2U1Tkd1ZFBML0krS0VYWVBINGdtNFZicHU0a1Q4QmkyREE1?=
 =?utf-8?B?d3Zud3BXODNHN2N3cDFCSStYZ2N5UFBzTk5UQlFNUTBPTVZpSlk2MVZybjho?=
 =?utf-8?B?Y3B4K2NEQzdOS0Z5NzJjRTNaMzlXZzhBUkxzZy92eThVUlo4STlOdWlEb1hS?=
 =?utf-8?B?WDFyamxaaVlEZVFGV0VzQUpqeG1tTmlhRmpzVkhIamhuMVk0bEQ3ZzNFTEtP?=
 =?utf-8?B?MkNpeWR2Z0FOK1dEdDZyVm1UdS9DWXFHV1NOT3RtejVjQWVGemR5WDRaU01l?=
 =?utf-8?B?VFZ4ZFhBRHhPSEdSaVd6RENoU3ZDOUxSVEIyTmZiT0N0N1BsSnQ1VGNITFdJ?=
 =?utf-8?B?KzFXcVJSNnd4NWswMEZTSldnUk4vMTZ0RmlqTnJVZEhzekpUVnlsRGl5aXhx?=
 =?utf-8?B?ZnUvbkNIbTg1WnFHbk05ZGVGREJHVU55OXVmRTJ0OTNvQjRNbDFYRWJ3a3Z3?=
 =?utf-8?B?K1FiNUFVNGlSNmFJdXQyYVZMaGllRkF3RFNLQTF4SVhiQkViNVoyVkhJOWRl?=
 =?utf-8?B?Y2phNW4wMTlSdUMyZjQ0aXBwZnl3VGFLWko3dHNXMndGSGV5cUx5RXdaRTJ2?=
 =?utf-8?B?c2wzN2JUUENYZGRJbjBFTkQzNG9SNkViYnAzMFMva2c5STFyWGF1Q3h2aDNW?=
 =?utf-8?B?TmRwQ1BoZHdlZjh5aWJJU2hIeS9iQXYvdk5CaW1uT3ZaZ2lTdWR2b2U5ZFFw?=
 =?utf-8?B?TE8xOVp2RmdrZC9TNktPMCtET05sSitCVi9CQlNLbno1S1U1NFVaWUMvRWI0?=
 =?utf-8?B?MTVBZU9NOWtRUExUS0lNR2F4RDM3bE1hMWo1VHBiU0RPSndITGxMVURTaVRT?=
 =?utf-8?B?anA3c1FZc2NVaU9qYnNjdUpmbFBYcGFCc1VVdThWZXltT25qbDdjMGtKL0N2?=
 =?utf-8?B?bWY2QjQ5eVd1b3BlWThEdFczWTNmcXJsMngwd21LbXBRUlMrVlFOYTNZTjhP?=
 =?utf-8?B?R2tPV3RicFErZDQwT1dCZXl3RUZVYWF1R1p2Z3lGSmpFeTBmeTVRUSs1ejJC?=
 =?utf-8?B?aXlvcUVLb09aeHUyWGdxQjVKS2R5RXVzM2VXbW5EcFZwZHFHM2JlQ3BOKzIz?=
 =?utf-8?B?dkdWbU5pNkZ6bHZPRXRGY1JRRUdiMTV2WUN6alhZdm0vM1E4RHdnb1AzMHdu?=
 =?utf-8?B?cnVUTlJXWGxHUndNSnNrUTBFWS9MSUpMVjNVOWlFZE4wRS9zc256TWZDa1Ex?=
 =?utf-8?B?NGVGazNDMUdKUFZKMWZRMW14M3Q5VWJxbGI2SVhramVydGZCMFBhWXlyWjBF?=
 =?utf-8?Q?rJIc=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 12:23:22.4465
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bf3f5865-30b0-4897-2726-08de22af6fe2
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000F0E2.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8234

On Thu Nov 13, 2025 at 12:50 PM CET, Jan Beulich wrote:
> On 12.11.2025 16:22, Alejandro Vallejo wrote:
>> They are unnecessary. The only two cases with link-time failures are
>> fallback else branches that can just as well be adjusted with explicit
>> IS_ENABLED(CONFIG_PV). HVM has no equivalent stubs and there's no reason
>> to keep the asymmetry.
>>=20
>> No functional change.
>>=20
>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>> ---
>> I'd rather remove the "rc =3D -EOPNOTSUPP" branch altogether, or replace
>> it with ASSERT_UNREACHABLE(), but I kept it here to preserve prior behav=
iour.
>>=20
>> Thoughts?
>
> I think using ASSERT_UNREACHABLE() there would be better, in particular b=
ring
> things in line with the {hvm,pv}_domain_initialise() call site. Preferabl=
y
> that way (happy to adjust while committing):
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>
> Jan

Sounds good to me. Though arguablt the commit message might need to change =
too
to remove the last line about not being a functional change. While not
externally visible, it is a real change.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 12:24:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 12:24:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161199.1489202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWMx-0002in-Q6; Thu, 13 Nov 2025 12:24:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161199.1489202; Thu, 13 Nov 2025 12:24:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWMx-0002ig-ND; Thu, 13 Nov 2025 12:24:07 +0000
Received: by outflank-mailman (input) for mailman id 1161199;
 Thu, 13 Nov 2025 12: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJWMw-0002cq-8O
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 12:24:06 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a53b71f1-c08b-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 13:24:05 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-640b06fa959so1392542a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 04:24: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
 4fb4d7f45d1cf-6433a3d6f5bsm1377123a12.6.2025.11.13.04.24.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 04:24: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: a53b71f1-c08b-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763036645; x=1763641445; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=c8nFr9p8UFhmCXS76o6qsModOGM3KrazWlgBjqrbB38=;
        b=JE8ZEUfHaROWFDfDzK0ltnAVLqVzh3lIhD5zheQnavJKXEUdR+6jujY0+d904/NM0e
         lIZfeQzDm+DIXsUNlMLolCUZnJ+EjBp4ldAJHADHeij8UPHNTEWXCrA0OR5HASg5XbIM
         vkfXhj72lJhc1jV6Cm7jQ6uktKe5D3gNEXp8WrPZCu9tkDYqiko3RGbRbLRjYWkIfNcA
         W0GMIp2KyD8r2sx2yTLZAptqMPMhiq5e5PDjfYkXCnR6+5CrmZEOcoxav6i9aewlVA0e
         Lmh4XFGnANFrKJ70vSE7MWCQrH3o1mxqmLwDAQym8hBiObAgG63TZlIMBmgAT/LRsaLj
         zauw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763036645; x=1763641445;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=c8nFr9p8UFhmCXS76o6qsModOGM3KrazWlgBjqrbB38=;
        b=I0VL6VGojtlxL5/PZ1/a1ubRNF/axHM6Apl+7TTJ/jjI8PSwL8wohoSrzFvjCTQmN1
         19lERf0RP+NPhsp56pWuJtuwbP/jWiPvuRbx7BWMdTEC8wuT/h6+FWBAFXtTkjzumrjq
         C3RuoqggV6fOLj1ay1Cynv0jR94h4uOCdWfQEjMTjOCbOtqOjYh4sTKm9YpaxwHYqG5V
         7rE7sSSJafs+8G86c7kBUailBNGZtObJXrqecK96MAFQRteSq6KZCJHHsMofyoyM23Tu
         iZO9DyhEhtcWoouyKzt7pM+4NKIgo3DA7eg3t3u73lL3NEbNW//CO52FdUI5gV1gHJnD
         UOHQ==
X-Forwarded-Encrypted: i=1; AJvYcCXSK7g7uNNthLwtIi8XJAhjFXni7QCwbhC8fnL4slQKdHFckvU5gI93J6RS/W9f9fGWSmaDGV1RDNQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YydQ8cxqxW/5itIMUopZeZ4MFgOxHgCTNcVsTdbtqnQkFrpAUl1
	jzOSXkIqMGQ+1xQvSn5bKkXDGEIRVepRwHVtcjTc0GmBBzozCEicaybydHH3EiBqqRM8biNFbxq
	bctc=
X-Gm-Gg: ASbGnctraYbTeZRp5gtZOxi1xmHgHxvKAoZS5H5LboqzNM4o6qsLYRnqeQvkcnDAHDW
	LMdUpLIVIszmUNGUpvvdP1SmyrByEKUOk9PSKQIOZOofHdfT8Vo8W7mMYl5dLSNQztucNf3AS0N
	AsK2RgKzytissnk0m5+D2VG11w1lZI/gmSJylYKl9T4+s5PhbjGLny5dvCcL7ZaU1hSRBqMH+Fr
	QNrqDFFHRUHiiXNxBb8Y4FX6pJk86fO+bvxGnJSLl7/y8xokhh/DZOAZZNIhQpsZfX9Nk9gMtxw
	gXsE0J7kveBz8QiIQGRIJwNn+WCXEMoPqSVN3x6XaXTnUEnrTOfvtBZkarBdaRf+utTgYsHV7yR
	WNwNDIQ3sr7jNMZiYJoftcNovN3XZekLFLhB8mn+ABKAAHepTxn8St80GXwCoaexNm3vPFVFmvr
	ftMH25PVZ9eoqXl2mSTLEwvvSlm+kokjc+cJnPPoGntat46TkFQb9rlyOrMittDqjxD9xE8yhcj
	Q0=
X-Google-Smtp-Source: AGHT+IGnOCjbzoJQF2LfxVXZCWjBvx3+Mi8iUeMDAmZ3GIaQP7MW+U0zXNRkPa5ltdxUzb4FAt1jCA==
X-Received: by 2002:a05:6402:1449:b0:640:b8a0:1aad with SMTP id 4fb4d7f45d1cf-6431a39287emr6430856a12.6.1763036644938;
        Thu, 13 Nov 2025 04:24:04 -0800 (PST)
Message-ID: <457733d4-65bc-41f6-ad1b-5afb17303517@suse.com>
Date: Thu, 13 Nov 2025 13:24:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86: Conditionalise PV-only fallback branches on
 CONFIG_PV
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: <20251112152235.224001-1-alejandro.garciavallejo@amd.com>
 <20251112152235.224001-2-alejandro.garciavallejo@amd.com>
 <730c6001-58a2-46db-95fa-c8ec2081d3b0@suse.com>
 <DE7K9G9FS7ZL.2JVRCUHFJFH6W@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: <DE7K9G9FS7ZL.2JVRCUHFJFH6W@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 13:20, Alejandro Vallejo wrote:
> On Thu Nov 13, 2025 at 12:42 PM CET, Jan Beulich wrote:
>> On 12.11.2025 16:22, Alejandro Vallejo wrote:
>>> --- a/xen/arch/x86/cpuid.c
>>> +++ b/xen/arch/x86/cpuid.c
>>> @@ -297,7 +297,7 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf,
>>>              if ( v->arch.hvm.guest_cr[4] & X86_CR4_OSXSAVE )
>>>                  res->c |= cpufeat_mask(X86_FEATURE_OSXSAVE);
>>>          }
>>> -        else /* PV domain */
>>> +        else if ( IS_ENABLED(CONFIG_PV) )
>>>          {
>>>              regs = guest_cpu_user_regs();
>>>  
>>> @@ -509,7 +509,7 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf,
>>>              if ( !hap_enabled(d) && !hvm_pae_enabled(v) )
>>>                  res->d &= ~cpufeat_mask(X86_FEATURE_PSE36);
>>>          }
>>> -        else /* PV domain */
>>> +        else if ( IS_ENABLED(CONFIG_PV) )
>>
>> Maybe better leave the "else"-s as is and, ahead of them, insert
>>
>>         else if ( !IS_ENABLED(CONFIG_PV) )
>>             ASSERT_UNREACHABLE();
>>
>> Happy to make the adjustment while committing, provided you'd be happy with me
>> doing so.
> 
> Should I understand that as an Acked-by?

You may, yes (implicitly).

Jan

> I think it'd be marginally clearer with the assert added to my code as an else
> branch at the end, but either form works. I'm fine with it being committed
> in the form I originally sent, what you proposed, or the ASSERT as an else
> branch.
> 
> They all have the same effect, after all.
> 
> Cheers,
> Alejandro



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 12:28:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 12:28:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161216.1489212 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWRX-0003NB-BB; Thu, 13 Nov 2025 12:28:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161216.1489212; Thu, 13 Nov 2025 12: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 1vJWRX-0003N4-7H; Thu, 13 Nov 2025 12:28:51 +0000
Received: by outflank-mailman (input) for mailman id 1161216;
 Thu, 13 Nov 2025 12: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=X5Bi=5V=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJWRV-0003Mx-Km
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 12:28: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 4d55db66-c08c-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 13:28:48 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ2PR03MB7044.namprd03.prod.outlook.com (2603:10b6:a03:4f3::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Thu, 13 Nov
 2025 12:28:45 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 12:28: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: 4d55db66-c08c-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=F5v8t+t4nqMd7QfCcPUEaGl9p7CuahKdpi/Ub8qL5rSG46kEXDHzPYmF1VlF3CT8O228oiYfMbfOxJLgDZvgp8EMMH3coMhStuzdupsz/FVU0y28O9hqVJIwUnX2J0PcPxIdx2/AQzkM7zKi3gSzbNgVPxM1MCIr9+hA5yVft45mR3VXPscPWQNidfzuRuU99p4Q0gtw8o+t5nnUZv5JkyfFKUFvu15NyHjofaF6G+FA67xUqJVZ7S9QBc3bqxUR7u2FOSt1JEWj97NaPiHUId4o/FBkfDddcuhuhlkPGJX6fVK2JrVTwq9+mEKnC7b9fbnpeskDh1xlawMp3mxXIw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=w6JMsOPLIjr6xz8D3n0yDew57Ft76aEJyICVQOew04E=;
 b=rkN7kXok3j3OvxqMr0IdIwi6W4ULRbEMQUTKQR5B88lWiL32Ag8c2+pjWbjm8W6LVs5im3a8yFecBXaygzYJiPDRhVXZ402I4xWuE9BDpiYW/UrSsY1ePNtmdC0+KA0JvHkJtBwJSSRH4rbRysVIqucI5MtZlra9FvcjAU6PIqVcX8ezHtYpRaUrfnUADpfAVGJEFj8T0BqqTgXFJOHRk4yNNywSP3LXMVrbamtWlaZ3BGVtVF39C6kasWgIlhhEF33eurm0jkF63ZbrPLtoorkCYYat43T+5TbhPolci5fy0T1MUfMhyAYH4RdjB1yebCVp5FSkXjJwONeARgyyUg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=w6JMsOPLIjr6xz8D3n0yDew57Ft76aEJyICVQOew04E=;
 b=IMH246BbdgeLAybk1QN7/ds9TYO6nnDMb6ZclEfQVy3v1SMNHNbiIHi07Z7ZNoRSK3Me/nUqRK0S0P+IA+qDet1T+V9l3CO/fuedy1Z15q3NEu8BD32K9G1U1nO5J/0tnxYNxBSKcmg+CG7FljVqoCo5iLPSBCxdzZnKsxd7CxM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <88523cc6-d069-4384-a5c2-e4399e389a41@citrix.com>
Date: Thu, 13 Nov 2025 12:28:41 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs: Rewrite the Tagging and Branching checklist
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251112185402.209485-1-andrew.cooper3@citrix.com>
 <9a949edb-8eb8-4984-adf0-4ab8b82e64db@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <9a949edb-8eb8-4984-adf0-4ab8b82e64db@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LNXP265CA0059.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:5d::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_|SJ2PR03MB7044:EE_
X-MS-Office365-Filtering-Correlation-Id: 639dccfd-8634-40f3-92f5-08de22b0300a
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?UkRYdGtvODlndXdvcThqL0lMYzR1SzUzZ0dxRzlNcWtPbXd1VS9pVlB6SXFo?=
 =?utf-8?B?WjlIUWJmVzk5bzdsQytpUjVVR1JzWUpHa0hqTnRrYi9LaDFzOEs3V2JqV0VS?=
 =?utf-8?B?UnZwTFd4QUdvcVIrUk1xQUJXN1ZId1MyTjhLNGNNZGlNOGxtV3ZTaGJvbnJU?=
 =?utf-8?B?d1FsUnNVdnJBZzgxd25RZmo0MWFYclRXaGJOZW9KUk12Y3lmNjZQTmVpZG82?=
 =?utf-8?B?aGhDVnlpL0hMNXBnTWsvNXN1eEs3Mk5JbzBjYi9qMVZBa2tScnhUckZuWGIy?=
 =?utf-8?B?ZXRWYjgvMEx2eTZFWTNaV0VTZDBIQjhMNEF2OGE2TGdTd3Q4a3JNRVgwL2la?=
 =?utf-8?B?aGwyODE2cFpURE5GN2JiL0VFS2lsVmswWmhiZUNzeGNGZGRYOC9tNlZCUUIz?=
 =?utf-8?B?UExOZWxmai8wNHpJVUtmT3AyY2JidFFnMWg0bzdQWStJd1Z1YzNOd2tvRTZ5?=
 =?utf-8?B?dm9rTi9qbE5UdERxMjdGWjFaQVhQTnNlOFhzK25mVHN2RVVqOUwrT2FUbU84?=
 =?utf-8?B?ekFjTmtnS1pjTVgxMVp2OEhsd1FjQXpRVGJUdktBY2sybnJJWUZSWW5adE0r?=
 =?utf-8?B?cjBHWnVuZHFQZ3dLNUIrU1FMTkdVZkdpNHJZNGFidVlXM05xZ0FVR1lxczJ3?=
 =?utf-8?B?eWlITWhoSW1NcVgwSEJyL0FQVjVYRkRXVUFPd2pWUjY3bWF1ak51NmRldDZy?=
 =?utf-8?B?MWxVQWxhajUwQkljREpORHVwUHF3TEsvbFE5NTBpcHppbXQ2U2owZWNtN2FU?=
 =?utf-8?B?dzRZZ2xNU1dUYVhRUU9hUjF1STVBTGpxSXdyZVU3MTBiVTlvRklnZm5aaFkx?=
 =?utf-8?B?YmJzcE1hZ3QvVG1PdzlRWDdrWEFTZWRSWHN2UFRQVThMdHdoMWlMZGNrRUR4?=
 =?utf-8?B?eUFyU3NlTEtQOEszRVpsQVZkczgvSDJUUWpITUNxRlpxT3MrQ000RWxXREMw?=
 =?utf-8?B?b2psN01RaXRTczVBYVB2cVBmWEdCNmdjZkN5MTh1Q1RwV3FtQTRvMDlsdVpN?=
 =?utf-8?B?dGV4VUV5aDFIcDlCbWpHY09pVTc1VEU4YVJzS21tL2g0OG13SDlucyt5dWE3?=
 =?utf-8?B?TEZyaGVSVDZLUndCWlhZS2o2TzNMbC9pdTM4aVpZVDk4c1dDWVArVThaY2Uz?=
 =?utf-8?B?RlRqWWxuNDdTZ2NRbTMwYXV3KzJ2akIzaTFJZ2dEWXNPWkgySGVJM05CRmQy?=
 =?utf-8?B?ZnRBUkxTN0JXelpSSi9DWUVRQnA2aVVwamF1T3crYTFtQk9yQnpvM1plbnM4?=
 =?utf-8?B?N2JhM3UxU1MvZUlvMGpXT1d3Rm1rL2V5SDY0V3Vhcm5LOTMvZGZxRWhJOW9D?=
 =?utf-8?B?Qm5HM0hoZ3M0K3hhSzZlbjhaWCs3YXFhYTNxWndoMlV2NkRqY0h6eGUwbFV2?=
 =?utf-8?B?bTVSb1pwQUowQ0NiVWI5VGpKanVJWDRCbUpjNXNDRkhLbHh0dDZZamNvcUtr?=
 =?utf-8?B?cXd6TnpDTmV4a2EwNmIwcElTZW9EcU1tKzM0TFhvWlhYT1RUbnZNQzJaUUdp?=
 =?utf-8?B?MmxkM3MxbmlCUjdQaERSaXQ0VEQxRUVWYVJmR0hFQldOWFp6OVBTK1VjT2Jp?=
 =?utf-8?B?ME44S2J1YytqMTIzYThrUU9Jc0cvVE9pUUNaaWRVT2FqV0o3Yy84Y1YvSlVF?=
 =?utf-8?B?Szg4N3diWHkzK2NPV2VJVUtKczNkSFB1QnZPQUNSOS82UWNTYXJRdkMvNHQ0?=
 =?utf-8?B?dExWaWdHYkRQT0Q2MFNqMjk2TkJPaVJsT1VickdMcWYwT1dRTDhYbEsraDg1?=
 =?utf-8?B?cHR5SFZTazdQdjNaNjFBOXhORjJpMUxvVlNRTzRSczIwdmJCdTJrNUNEYm42?=
 =?utf-8?B?TEVXMFhVbG9MTWhqZ1I4dHJXMTAwcUNHcnJ0RVVTZGZIVU5CVDBmbU4vV0d2?=
 =?utf-8?B?OGVNNnNWQ1ZiSVdRSmgzQWcwcnpZUXZDSTZMMWgrMjV4aDhJNjB5Nzh6NzdX?=
 =?utf-8?Q?X2RoqpIk7Pjocz7vM436aim1QRkIljdn?=
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?cjhxY25Sc0ZNRTlFbVNLNTU0ckR3SEIwMFBkWmltT0NrNlNwVVpYODlWWHp0?=
 =?utf-8?B?QkhIc1N2ejBQcUR5RmtkcmRZQm9PVE1pNkZaMDhBT3liTHFMZG9HZnhBa0tk?=
 =?utf-8?B?Yjg5M1pOMGJWZU9mM3N4MUl3Skk5YitpNkx1OFBEeml4aVMvUjk3TFlMbW0r?=
 =?utf-8?B?cHB5NTVoeVlXNE10L0hZN0hMY2J4cmdqVDJZMnlySGwzQkRIbG5QKzVIeW0v?=
 =?utf-8?B?eVlCM0tTcDA2dHljUFZlMXNVN3JyWHlSVi8zd0syZndQL2pHd1EwRzV0bGdp?=
 =?utf-8?B?czhJdUk4d2duVFkrRGV2TFAveUhWNVZqM0V5REtpTUNaVHR5c1Jna0dtaTVO?=
 =?utf-8?B?b0VUUHo1WnNDTFUvc0p5bTZVYnIwNVJSNW4vT2JQVUJ6Mm9JbWNWMm03SWZK?=
 =?utf-8?B?VkNtT3ZOU2ladVk2M0xVV01nZGVOQW52cjdPeTMwWlJqQi9ERDdGOTlScmJr?=
 =?utf-8?B?ck1DcjNoRVZJZVlPZWhvTExVUzU4YmRlRmE3NFdaVXRkNlhud090cGM4R1Qw?=
 =?utf-8?B?QTAyT05SRXlOZ0t2MGdQQURGMGlvL3RWSndMUmpUQXhMbWd3TlF0S0oybjA3?=
 =?utf-8?B?YWgzb2J3aG45US9reFVkQmJnTHp3YmNPWkJ6R2ZFdEdVczZXOVV0L25JSllX?=
 =?utf-8?B?MFcwZ1ExYWgvbjQ5TERiMG1KbzZ3T1BwOWlCWjVpL0tJSkxlWHFoWUx4WGNM?=
 =?utf-8?B?YlVIOGV6VHdFK1ByY3dLMGFqUlNlOXA4VG53UmxBSFZkWEhIdkZXU2hYOHF2?=
 =?utf-8?B?VVdOaGpxTjUyb2xIRTNBamtWc0oxSTI4Q3VmUGoybkthVHE2TlFJZ3hCZDl4?=
 =?utf-8?B?U0gxOUR5TnUzN0tDeGFMRXVabm12ZGlhNmdoMitRT09EQWpPbHZ1ZTREOW5m?=
 =?utf-8?B?bnFJWWJRK2F3NStvaDRXdjJnZXZGZjMycU4vV1JibEhxUms3bzdqUnhnZUdQ?=
 =?utf-8?B?OEZWYnJneGQ5Uk9GK0ZoSW80ajg2QUJKVUFHYkM4OVBVUVVxcnpudFVEVFpD?=
 =?utf-8?B?a1V4QzhoSE5kbzNjYUIxVGZGZEdsZ2ZMUGUxUk0yQ1FKU2w1Mmg0cmtzVWU4?=
 =?utf-8?B?Y1NYYlJHejhHQ1gwaDhqb0FNQjVDVjBlOWh3RDd0cnloZ1dlcWgyQXVVWURR?=
 =?utf-8?B?N1hNOFdOWHMrTENqczN5Mi9saUdaUVMyQlpwUklKUC9nS2swNlRZOXdvMEZG?=
 =?utf-8?B?OG1GdTkxTVc0NDkvc1Z2Zk9BRmtqa2FRM1NTM0JpOWJMeEhmMEtYazJwSWZL?=
 =?utf-8?B?WDBVb0UrQTFFR1B3WmhSZDNDL3ovNXhKQjYyWWFpRnYzTkhDMTFRUlRKdWo1?=
 =?utf-8?B?ZzhvT2ZjTEtZekdGdmJlZDBOQ3cxM2ViZVFoczk5c1RDVklYMHRmMVFIU3JK?=
 =?utf-8?B?VkdPT1Q5S083L1g0WVFqSDJWRmxoYk11N2NaVkMremFLK2JRajRoTk5paS85?=
 =?utf-8?B?bEJNT2ZhbFVXZDJqZW4xZmpSeGNPNDFucHlqU1JlYlhOaUhSRkFET3VzZy92?=
 =?utf-8?B?VVByVUxXcCtTdFh4YkZYaFdXbmszS3pURm5kV2N0b0FoZnp6eDA2YmNzMnUx?=
 =?utf-8?B?QUFWejh3OFNxRGdmVTZTSW9KcEFlWjY5Wk90RE1oSjl2VnVVZWErR25jaVhJ?=
 =?utf-8?B?VXlSOWh6Q2ZHOVhUSXdXTThUM29NaHhzbXNqelVyWEc2aFBzT3B0Zm5TUDF0?=
 =?utf-8?B?ckFaR1JHMGFCMzBJNVNFSXR2R09ub0dXd2FSQ2lMaUZEK0o4UjBGRENTZEo5?=
 =?utf-8?B?ZlZEQ1VscjFPV29CbWtuM3Nndmpkb1R3THhFK0Fkd0ZJdVh4bWd5Y3E2T3RU?=
 =?utf-8?B?cThSV1o5QjVNWVVHWnFJV01jdkRrOFgwRTJuZU50d05YNDlwTjN6NGdKaEY4?=
 =?utf-8?B?emtQWmVBRUxtMlE2SEFFNnZLalR2S2I4L2JjakV0MFZ1dUsvZXl5VnpEaGRj?=
 =?utf-8?B?dS9RSVd4eGxlV1R0R1BoTm1sa2tYOVBIVkxBYThUL2dYQVh1c2xVd0JjSGJw?=
 =?utf-8?B?SFo2WnZ2MUlGVVNYbVM2YnQ4YVBYMnZVMVJ4aWF2b0t6SU5zWlR0MkkyUlZS?=
 =?utf-8?B?aVUzTUZZY1NPbW5ZR2RrREw2OTVxR3BXTzExeVhvQzFOVjFNbzgwSHVXWkg5?=
 =?utf-8?B?MTF5YXU1SmM3NldjRlhVQzkyRlRPTTBqdzM3NjJNK1I0UVVVbXlJMWw2TENV?=
 =?utf-8?B?N3c9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 639dccfd-8634-40f3-92f5-08de22b0300a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 12:28:45.0790
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: GXFF/jqxSq/whaCq23LWJvnxzgiGOMQAVrwvKQmmBVt+LAF3KvpiUNp4t22wUa4uWm6NGKWTqArx27x4JenoQNEsE7j9XVBEdRoi6Ascd4E=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7044

On 13/11/2025 7:54 am, Jan Beulich wrote:
> On 12.11.2025 19:54, Andrew Cooper wrote:
>> There's a lot of stale information in the current checklists.  Merge the
>> documents and present the information in chronological order.  Provide real
>> examples from the tree rather than trying to be too prescriptive.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Hardly anything is being said about stable releases - is this intentional?

Is there anything you think I'm missing?

I suppose the releasing section is slightly specific to new releases,
but for the stable release, it really is just bump extraversion, commit
and tag, and where usually tag is the only action after you've prepared
the tree.

>
> A few comments below, but ultimately I think it will need to be Julien to
> ack.
>
>> --- /dev/null
>> +++ b/docs/process/tagging-branching.rst
>> @@ -0,0 +1,194 @@
>> +.. SPDX-License-Identifier: CC-BY-4.0
>> +
>> +===============================
>> +Tagging and Branching Checklist
>> +===============================
>> +
>> +Before starting
>> +===============
>> +
>> + * Review this checklist for changes during the development window.
>> + * Access to the following necessary:
>> +
>> +   * The 'xen tree' signing key.
>> +   * The xen and xendocs users on xenbits.xen.org
>> +   * The downloads-cvs user on mail.xenproject.org
>> +   * A checkout of the xen.org CVS repository
>> +
>> +::
>> +
>> +  cvs -d downloads-cvs@mail.xenproject.org:/home/downloads-cvs/cvs-repos checkout xen.org
>> +
>> +
>> +For RC1
>> +=======
>> +
>> + * Pin ``QEMU_UPSTREAM_REVISION`` to an exact SHA.  Commit.
>> +
>> + * Update ``XEN_EXTRAVERSION`` from ``-unstable`` to ``.0-rc1``.  For
>> +   ``README`` and ``SUPPORT.md``, use the slightly more generic ``-rc`` so
>> +   they doesn't need to change during subsequent RCs.  Commit.
> Nit: don't
>
>> + * Tag.  Produce tarballs.
>> +
>> +e.g. from Xen 4.21, ``ffd25d717a74^..d1478321eacb``::
>> +
>> +  * d1478321eacb - (tag: 4.21.0-rc1) Update Xen version to 4.21.0-rc1
>> +  * ffd25d717a74 - Config.mk: Pin QEMU_UPSTREAM_REVISION
>> +
>> +
>> +For subsequent RCs
>> +==================
>> +
>> + * Update ``XEN_EXTRAVERSION`` to the next RC number.  Commit.  Tag.
>> +
>> +e.g. from Xen 4.21, ``eff32008be0d`` and ``9632ce6fe5b2``::
>> +
>> +  * 9632ce6fe5b2 - (tag: 4.21.0-rc3) Update Xen version to 4.21.0-rc3
>> +  * eff32008be0d - (tag: 4.21.0-rc2) Update Xen version to 4.21.0-rc2
>> +
>> +
>> +Branching
>> +=========
>> +
>> +On xenbits:
>> +
>> + * Create new staging and stable branches in xen.git.
>> +
>> + * Add the new branches to patchbot.  In ``~xen/HG/patchbot`` copy the exsting
>> +   master and staging reported heads, update the ``versions`` file, and commit
>> +   the result.
>> +
>> + * Add the new stable branch to the docs cronjob.  In ``~xendocs/cronjobs``
>> +   edit ``xenbits-docs-all.sh`` and commit the result.  e.g.:
>> +
>> +::
>> +
>> +  ssh xenbits.xen.org
>> +
>> +  cd ~xen/git/xen.git
>> +  git branch staging-$v staging
>> +  git branch stable-$v master
>> +
>> +  cd ~xen/HG/patchbot
>> +  cp xen--master.patchbot-reported-heads xen--stable-$v.patchbot-reported-heads
>> +  cp xen--staging.patchbot-reported-heads xen--staging-$v.patchbot-reported-heads
>> +  $EDITOR versions
>> +  git commit -am "Branch for $v"
>> +
>> +  cd ~xendocs/cronjobs
>> +  $EDITOR xenbits-docs-all.sh
>> +  git commit -am "Branch for $v"
>> +
>> +
>> +On the new branch:
>> +
>> + * Switch to release builds by default.  Commit.
>> +
>> +On staging:
>> +
>> + * Update ``XEN_SUBVERSION`` to the next version.  Update
>> +   ``XEN_EXTRAVERSION``, ``README`` and ``SUPPORT.md`` back to ``-unstable``.
>> +   Commit.  Tag the start of the new development window.
>> +
>> + * Rerun ``./autogen.sh`` to refresh the configure scripts.  Commit.
>> +
>> + * Switch ``QEMU_UPSTREAM_REVISION`` back to ``master``.  Commit.
>> +
>> + * Create a new section in ``CHANGELOG.md``.  Commit.
> Should this really be four separate commits?

It is and has been for a while.

Folding autogen into the version update might be sensible.Â  Everywhere
else needing an autogen does so in the same patch.

But, I don't see it being sensible to fold the remaining thee patches.

This also begs the question of how we indicate a planned change from the
example given.Â  Maybe "Note, example is from prior to deciding to $X",
which gets removed when the example gets updated?

If we're going to do that, I'd want to make it a separate change to the
main rewrite.

>
>> +e.g. from Xen 4.21, ``d510f9c1430c^..62d0a92057ca`` and ``d510f9c1430c^..b0255656d121``::
>> +
>> +  * 62d0a92057ca - CHANGELOG.md: Start a new 4.22 section
>> +  * 7b88e463f999 - Config.mk: Switch QEMU back to master
>> +  * d954e8c5c8de - Rerun ./autogen.sh for 4.22
>> +  * 85768c28b705 - (tag: 4.22-dev) Update Xen to 4.22
>> +  | * b0255656d121 - (staging-4.21) Switch to release builds by default
>> +  |/
>> +  * d510f9c1430c - doc/man: Align list of viridian default enlightenments with libxl
>> +
>> +
>> +Releasing
>> +=========
>> +
>> + * Finalise the release dates in ``CHANGELOG.md`` (backported from staging)
>> +   and ``SUPPORT.md`` (only in the release branch).
>> +
>> + * Tag the release in relevant external repos, and update ``Config.mk`` to
>> +   refer to the tag.
>> +
>> + * Update ``XEN_EXTRAVERSION`` to drop the ``-rc`` suffix, and update
> Since further up it's now rc<N>, imo it would be better to also say it that way
> here.

One thing I found very problematic with the older checklists was the
excessive use of variables.Â  In this doc, I've got it down to two, and
using the examples to clear up any ambiguity.

Would "to drop the RC suffix" work?Â  This is supposed to be clear that
it means rc and whatever number we've got to, but rc<N> (especially
rendered as a literal) doesn't help IMO.

>
>> +   ``README`` to match.  Commit.
> The latest here QEMU_UPSTREAM_REVISION and MINIOS_UPSTREAM_REVISION also need
> adjusting to reference version tags, aiui. Taking tag creation in the respective
> leaf trees as prereq.

That's the previous bullet point.Â  I should probably make it clearer
saying ``*_UPSTREAM_REVISION`` but naming more specifically like that is
going to bitrot.

>
>> + * Tag.  Produce tarballs.
> Link to the respective section further down?

I considered that.Â  The linking syntax detracts from the readability as
a text file, while on the rendered version it's clear from the
navigation panel that there are relevant sections.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 12:31:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 12:31:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161227.1489221 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWTg-0004rZ-LS; Thu, 13 Nov 2025 12:31:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161227.1489221; Thu, 13 Nov 2025 12: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 1vJWTg-0004rS-Ik; Thu, 13 Nov 2025 12:31:04 +0000
Received: by outflank-mailman (input) for mailman id 1161227;
 Thu, 13 Nov 2025 12:31:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJWTe-0004rL-PD
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 12:31:02 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9cc5c549-c08c-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 13:31:00 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-b71397df721so91336666b.1
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 04:31: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
 a640c23a62f3a-b734fad44b4sm157516766b.28.2025.11.13.04.30.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 04:30: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: 9cc5c549-c08c-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763037060; x=1763641860; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=eDQfQek4rgm+3GFZH/xjpXfLMTgp5wnGTmSxfT+Rv/o=;
        b=WOnsHWAGghjlfOilg7Z6k85Bk0SPdWHPiMjlpHvm+ipXZ8WoZtqyZ/8Qejx14Zfao7
         qI9L7EUGASbH+qH0jvgMjqLaTJL0Sa2mQMjPjt0yFr5CDnDS9PzPb2q9m8Z5yVk2EqK4
         WnKHJQNJTulIa11+Fr9O/PThYMjpr0GR300zsk1l6R/zp/BiYfeJ3ZbnCACcj6Rn6G+i
         HvcCLSbRifLiUHUMtSafYHaOuO73FXsCx53GXWuLuUoSztpYdzZOXxxMR/O71az2JM5Z
         DRmy4iIEovIvPTqPjz0htvUjNNJ+BNFtVsPGf5vRNz/f6+qY/CoKTyxtMSS/VkLx9qYq
         Xnjg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763037060; x=1763641860;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eDQfQek4rgm+3GFZH/xjpXfLMTgp5wnGTmSxfT+Rv/o=;
        b=opN/IzVmZuByF9c5BZvxJ2U7vX7Z5Ry0sWYjeaZL4Z8wpwvDdRgloCazLt4S/HsDzq
         v9G39vOhmsJmH6NSX9IohKwl3ukq8O5AmY8RYT7mnayJJFWJwJRd3hEZFKmh24TqxvQD
         vrBXHxNul4wAPSOpIuYDPx7v2hEzI6J8HFInNUTFfgREielAQjVB+RXCHcsBYNyyGSxZ
         KTtIxnbsY+R+kbtv1O9ghreHAlE9jrN8li/1PS7MkS+hoiJoi1eKqjLGpUQIbPIM/5RI
         TXkt3Z11AC9/qUj/412/zlorgv5zWEf7oUV97/frBzhK+scMbXcDgwmUtHRty41J/4GQ
         eVmQ==
X-Forwarded-Encrypted: i=1; AJvYcCXkcI0MEhw1wLfVjXCsTjlINTlKRgLDzzEVLfYP3MVXGMgTuT3+DFhlXHfpZsPD4cxmCvPGvqFDH3w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxIozM1bO51pc32WJ3cK9vJmzmHACDDT9azqR4EMxgTCR52zZ22
	scZNUBfoUT8gvPtA8k+rhz7n6xqZsHCO1IGjI4JJKWll2WAHn9ssm7MN87J1LaZNiA==
X-Gm-Gg: ASbGnct6H09b/eaIyb2Xmk4TvV8jo+jbBM2gCKTpS1/6jsMjLmvT0+nAlJO17lHoTb1
	UKUbzHkFx/0e3UCKq59Y5JdZIk1GmNHs2hgwSAFatpoyOXXfl5TdqCuek9FxMZxF8woeDmUG/W8
	TAdcJuKn2xcw2Sm/4f0pQt2HjGJ6ZP5zl6tDdiitL9hDL1426Y5GjpqizIQKnx6ea49PG+5fb5p
	zbK9huPuqHECJOFnWL71s+o7h93fvLKQoKDH5FKKFEeX+fd0jxz8+IJWWoOBAco+dSDGXJuz5ed
	GQvAelNBsbzlQOqOSjHC9+mHUk1fbUH9Gg5V0o9ZoNFN1vpArn6v8ceE83dvNImQuqKXt+rwUQ6
	BwzxbBeCMZN6LfCf2tIeE2ZMntxIS6fZ0u8fcSQD1peVGw9WqHRDkmtQ8NArtAHmkJPdAtFt3Hy
	djq2uhacYytaPilDS3DOHrJtyE/bxNKMTLNjZAtbZ+BV5RCtPJxR8PMOWMPlSsHBIPsL9JzzxML
	B4=
X-Google-Smtp-Source: AGHT+IEN5AH/89fGK9JXULHpEpKoiMX67ZdDLlH+hC+X6qcbVhYyesBJcwHg8mRjFPZ1J01UEXgcrA==
X-Received: by 2002:a17:907:2d28:b0:b70:499b:4f0c with SMTP id a640c23a62f3a-b7331aa95ebmr533842066b.45.1763037060154;
        Thu, 13 Nov 2025 04:31:00 -0800 (PST)
Message-ID: <af736490-5f04-4fa8-9b73-4071b72e1c33@suse.com>
Date: Thu, 13 Nov 2025 13:30:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 3/5] x86: hvm: factor out compat code under ifdefs
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <20251111175413.3540690-4-grygorii_strashko@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: <20251111175413.3540690-4-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2025 18:54, Grygorii Strashko wrote:
> @@ -3991,7 +3995,7 @@ static void hvm_latch_shinfo_size(struct domain *d)
>       */
>      if ( current->domain == d )
>      {
> -        d->arch.has_32bit_shinfo =
> +        d->arch.has_32bit_shinfo = IS_ENABLED(CONFIG_COMPAT) &&
>              hvm_guest_x86_mode(current) != X86_MODE_64BIT;

I think this could need commenting on if we really want to put it in this shape.
But why would we retain the has_32bit_shinfo field in the first place when
COMPAT=n?

> @@ -4965,6 +4969,7 @@ static int do_altp2m_op(
>  #endif /* CONFIG_ALTP2M */
>  }
>  
> +#ifdef CONFIG_COMPAT
>  DEFINE_XEN_GUEST_HANDLE(compat_hvm_altp2m_op_t);
>  
>  /*
> @@ -5064,6 +5069,12 @@ static int compat_altp2m_op(
>  
>      return rc;
>  }
> +#else
> +static int compat_altp2m_op(XEN_GUEST_HANDLE_PARAM(void) arg)
> +{
> +    return -EOPNOTSUPP;
> +}
> +#endif /* CONFIG_COMPAT */

I'm not in favor of repeating the function "header". Imo such #ifdef-s better
go inside respective functions' bodies.

> --- a/xen/arch/x86/hvm/hypercall.c
> +++ b/xen/arch/x86/hvm/hypercall.c
> @@ -29,10 +29,12 @@ long hvm_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>          return -ENOSYS;
>      }
>  
> -    if ( !vcpu_is_hcall_compat(current) )
> -        rc = do_memory_op(cmd, arg);
> -    else
> +#ifdef CONFIG_COMPAT
> +    if ( vcpu_is_hcall_compat(current) )
>          rc = compat_memory_op(cmd, arg);
> +    else
> +#endif
> +        rc = do_memory_op(cmd, arg);

Why would this be needed when vcpu_is_hcall_compat() already honors CONFIG_COMPAT?
(Same question then applies elsewhere, of course.)

> @@ -171,6 +177,7 @@ int hvm_hypercall(struct cpu_user_regs *regs)
>          HVM_DBG_LOG(DBG_LEVEL_HCALL, "hcall%lu(%x, %x, %x, %x, %x)", eax,
>                      regs->ebx, regs->ecx, regs->edx, regs->esi, regs->edi);
>  
> +#ifdef CONFIG_COMPAT
>          curr->hcall_compat = true;
>          call_handlers_hvm32(eax, regs->eax, regs->ebx, regs->ecx, regs->edx,
>                              regs->esi, regs->edi);
> @@ -178,6 +185,9 @@ int hvm_hypercall(struct cpu_user_regs *regs)
>  
>          if ( !curr->hcall_preempted && regs->eax != -ENOSYS )
>              clobber_regs(regs, eax, hvm, 32);
> +#else
> +        regs->eax = -EOPNOTSUPP;
> +#endif

I'm generally against most attempts to use ENOSYS, but here it should be used:
The top-level hypercalls are (effectively) unimplemented in this mode.

> @@ -208,10 +218,19 @@ enum mc_disposition hvm_do_multicall_call(struct mc_state *state)
>      }
>      else
>      {
> +#ifdef CONFIG_COMPAT
>          struct compat_multicall_entry *call = &state->compat_call;
>  
>          call_handlers_hvm32(call->op, call->result, call->args[0], call->args[1],
>                              call->args[2], call->args[3], call->args[4]);
> +#else
> +        /*
> +         * code should never reach here in case !CONFIG_COMPAT as any
> +         * 32-bit hypercall should bail out earlier from hvm_hypercall()
> +         * with -EOPNOTSUPP
> +         */
> +        unreachable();

I.e. you rather mean ASSERT_UNREACHABLE()?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 12:39:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 12:39:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161243.1489231 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWbo-0006EP-IO; Thu, 13 Nov 2025 12:39:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161243.1489231; Thu, 13 Nov 2025 12: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 1vJWbo-0006EI-Fw; Thu, 13 Nov 2025 12:39:28 +0000
Received: by outflank-mailman (input) for mailman id 1161243;
 Thu, 13 Nov 2025 12: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=25e8=5V=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vJWbn-0006EC-JN
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 12:39:27 +0000
Received: from fhigh-a2-smtp.messagingengine.com
 (fhigh-a2-smtp.messagingengine.com [103.168.172.153])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c72b6af3-c08d-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 13:39:22 +0100 (CET)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfhigh.phl.internal (Postfix) with ESMTP id C403E140020B;
 Thu, 13 Nov 2025 07:39:20 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Thu, 13 Nov 2025 07:39:20 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 13 Nov 2025 07:39: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: c72b6af3-c08d-11f0-980a-7dc792cee155
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=1763037560;
	 x=1763123960; bh=zqdlxBIjB3DVgMxuq8MoXJbhRnJS1kGnr2lLg4C2rCE=; b=
	lhVPtWRlBDrPOjwnJh9QiuKgAW+d7/O532nhGJ22XNoYXfHhS0Zd4kQPJq2cTwXG
	3nv+KOfvHat4tVxVvojCZNS7ynyaW5JIbEiBcGfCYJnMG3dkKEFTN8amlkv7IWoq
	CBtUrHckJ/9UmCIL1O1PXaeK8TzH8umXT4RjJbaZ3crsVkwoq7SkEdOIWqMAinox
	xIuI7XElFgm6nObX1+sEReRt6aEX3JVnBBacmFd9XMTIhluG+UBlENH625xQPnrr
	gNxCejOdJnkk2eqNLe9VLsaHvo+CaxqqzVCDDuQ99eP95VMEA4mu09F9q/FuyM2k
	BWkO9fllaa7MHQ3J93WiVg==
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=
	1763037560; x=1763123960; bh=zqdlxBIjB3DVgMxuq8MoXJbhRnJS1kGnr2l
	Lg4C2rCE=; b=E0Sk4XdwzD2CdLLz1UDURsEAWKSNddGtspGGko1yjxXNr90ILgm
	CTH33BYFpin7c5WX/HbE7uoJPqXs69XZISx1PyqjS53qZMiS+RaLNBDANeqHIiIx
	AQ6PTucv3ymSPf0Gat2EbJvf3fKw2mHML4qDQcc6rD7DuUzck5n44m8IoQWy84mB
	Cdjqe/RVkfNVEHXq3Pejo1wHqEmsUOwQidmfS4/VQP5OFSqC9t2HDsSOof6jQx7D
	xhm5L8VEvPkVrddAEX413ZJxHYHNAMc6r1EfD9dWxe4HZX8NMeGlrJ9/NUkfFs/J
	G8yHJ98Zw6C4vVKYsXCr4IMhqF/e3XJeYYw==
X-ME-Sender: <xms:eNEVaXFX569XtDAxwyr-9y_2OjRdaD41LcvBFzaOuz6qRhLcFfd6Jg>
    <xme:eNEVaTa8pOYd-onNdM61vE4tJrrXSwEtrFQFPMC96QZY3id1CYWoQvS_aJorWSjl6
    h19iP1FLZOjbM9oK7dP5AD7e8VZg3RV-xLqNtpWuHte2lyoZw>
X-ME-Received: <xmr:eNEVafVkkR4630bQx8yQmKZNtq0WpML6jLeIOsDXZswH7plR967NbAlUxFkNiElyyjk49Pc0uRPYszoPXn-o40HYki4fC_7LSNM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvtdeileehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiuceomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhih
    hnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfekuddtffettefhieeuheff
    keeuffelvdffuddtteetledtveekfeekleehjefgnecuvehluhhsthgvrhfuihiivgeptd
    enucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgv
    thhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepkedpmhhouggvpehsmhhtph
    houhhtpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomhdprhgtphhtthho
    peigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtph
    htthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthht
    ohepjhhulhhivghnseigvghnrdhorhhgpdhrtghpthhtohepshhsthgrsggvlhhlihhnih
    eskhgvrhhnvghlrdhorhhgpdhrtghpthhtoheprghnthhhohhnhidrphgvrhgrrhgusehv
    rghtvghsrdhtvggthhdprhgtphhtthhopehmihgthhgrlhdrohhriigvlhesrghmugdrtg
    homhdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
X-ME-Proxy: <xmx:eNEVaRk4YaGJtefJij1dV640IJsFMBwwKEpTbdm6oseBHQ7vipuPjQ>
    <xmx:eNEVaSDnFZyDLqyQNL0q_c3dBaNjvnpY8n7pYGfXgZrOtEGjSJzKeA>
    <xmx:eNEVaYgmMtXh00mZm6flxjMzo9II9yaWjQxsXpl3zk7g0aGV7HdBTw>
    <xmx:eNEVaXzoG82mOyKGKbBaRA-v9OFRndNcxa4xHNnplBYr_7Ed6IWqUw>
    <xmx:eNEVaZThYvQ6x-PYM0b7zHTyhtTLmF7Elnu_rUzNf8HYCzv-uD-vL6He>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 13 Nov 2025 13:39:16 +0100
From: Marek Marczykowski <marmarek@invisiblethingslab.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>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH 3/3] xhci-dbc: use brk_alloc()
Message-ID: <aRXRdU8YusudRmxf@mail-itl>
References: <bdbb2884-c2d2-415a-8891-a598d112e34c@suse.com>
 <bec55a88-00f3-4961-b1dc-5b9e38d94a32@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="ch/S/wdXVtSi1v5H"
Content-Disposition: inline
In-Reply-To: <bec55a88-00f3-4961-b1dc-5b9e38d94a32@suse.com>


--ch/S/wdXVtSi1v5H
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 13 Nov 2025 13:39:16 +0100
From: Marek Marczykowski <marmarek@invisiblethingslab.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>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH 3/3] xhci-dbc: use brk_alloc()

On Thu, Nov 13, 2025 at 12:10:16PM +0100, Jan Beulich wrote:
> This way the relatively large chunk of DMA buffers can be freed when the
> driver isn't in use.
>=20
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>=20
> --- a/xen/drivers/char/xhci-dbc.c
> +++ b/xen/drivers/char/xhci-dbc.c
> @@ -27,6 +27,8 @@
>  #include <xen/serial.h>
>  #include <xen/timer.h>
>  #include <xen/types.h>
> +
> +#include <asm/brk.h>
>  #include <asm/fixmap.h>
>  #include <asm/io.h>
>  #include <asm/string.h>
> @@ -1321,7 +1323,7 @@ static struct uart_driver dbc_uart_drive
>  };
> =20
>  /* Those are accessed via DMA. */
> -struct dbc_dma_bufs {
> +struct __aligned(PAGE_SIZE) dbc_dma_bufs {
>      struct xhci_trb evt_trb[DBC_TRB_RING_CAP];
>      struct xhci_trb out_trb[DBC_TRB_RING_CAP];
>      struct xhci_trb in_trb[DBC_TRB_RING_CAP];
> @@ -1335,8 +1337,7 @@ struct dbc_dma_bufs {
>       * DMA-reachable by the USB controller.
>       */
>  };
> -static struct dbc_dma_bufs __section(".bss.page_aligned") __aligned(PAGE=
_SIZE)
> -    dbc_dma_bufs;
> +DEFINE_BRK(xhci, sizeof(struct dbc_dma_bufs));

I think with this change (or rather with using brk_alloc() below), the
structure wants to be padded up to the page size, to avoid putting
anything else on the same page (see comment just outside of context
above). Previously .bss.page_aligned contained (hopefully) only
page-aligned objects, but now brk_alloc() can combine them.

> =20
>  static int __init cf_check xhci_parse_dbgp(const char *opt_dbgp)
>  {
> @@ -1413,24 +1414,33 @@ void __init xhci_dbc_uart_init(void)
>  {
>      struct dbc_uart *uart =3D &dbc_uart;
>      struct dbc *dbc =3D &uart->dbc;
> +    struct dbc_dma_bufs *dma_bufs;
> =20
>      if ( !dbc->enable )
>          return;
> =20
> -    dbc->dbc_ctx =3D &dbc_dma_bufs.ctx;
> -    dbc->dbc_erst =3D &dbc_dma_bufs.erst;
> -    dbc->dbc_ering.trb =3D dbc_dma_bufs.evt_trb;
> -    dbc->dbc_oring.trb =3D dbc_dma_bufs.out_trb;
> -    dbc->dbc_iring.trb =3D dbc_dma_bufs.in_trb;
> -    dbc->dbc_owork.buf =3D dbc_dma_bufs.out_wrk_buf;
> -    dbc->dbc_iwork.buf =3D dbc_dma_bufs.in_wrk_buf;
> -    dbc->dbc_str =3D dbc_dma_bufs.str_buf;
> +    dma_bufs =3D brk_alloc(sizeof(*dma_bufs));
> +    if ( !dma_bufs )
> +    {
> +        dbc->enable =3D false;
> +        printk(XENLOG_ERR "XHCI: not enough BRK space available\n");
> +        return;
> +    }
> +
> +    dbc->dbc_ctx =3D &dma_bufs->ctx;
> +    dbc->dbc_erst =3D &dma_bufs->erst;
> +    dbc->dbc_ering.trb =3D dma_bufs->evt_trb;
> +    dbc->dbc_oring.trb =3D dma_bufs->out_trb;
> +    dbc->dbc_iring.trb =3D dma_bufs->in_trb;
> +    dbc->dbc_owork.buf =3D dma_bufs->out_wrk_buf;
> +    dbc->dbc_iwork.buf =3D dma_bufs->in_wrk_buf;
> +    dbc->dbc_str =3D dma_bufs->str_buf;
> =20
>      if ( dbc_open(dbc) )
>      {
>          iommu_add_extra_reserved_device_memory(
> -                PFN_DOWN(virt_to_maddr(&dbc_dma_bufs)),
> -                PFN_UP(sizeof(dbc_dma_bufs)),
> +                PFN_DOWN(virt_to_maddr(dma_bufs)),
> +                PFN_DOWN(sizeof(*dma_bufs)),

Is that really correct? But with padding (see earlier comment) it
shouldn't really matter.

>                  uart->dbc.sbdf,
>                  "XHCI console");
>          serial_register_uart(SERHND_XHCI, &dbc_uart_driver, &dbc_uart);
>=20

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

--ch/S/wdXVtSi1v5H
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkV0XUACgkQ24/THMrX
1ywdEwf+OuXjepjEDIVSvoL7/9ZRwZe8TEYUWUM1S7ebKl3a6kBJ8kevhDrYtss5
SbQBUnK1dSiPv53gjmHe25ipZXjNWGKsx9pHJCKykVCE/Eqy5v7YZ9aqRH9j8o0T
v5QBMzrppP2QPpomT+luR9EqS7xd7Qlf4EFDnuO30qqiCuc5G0jGlexn+mQmN6hi
KUUCSuPdYzU2sZSRggOLW3m8BjOYjPwU5f2g6ma3dPVnuCgR+g8mJw0FYz75+P+3
Ks5KWeDNWDeNR65Q8uOOATiddWNtFrlhAN6KyePbyEK6THQG55xryyuKQn95Nkvx
lNHuAgI1pwRm/ikoeid85vzUePssBw==
=R0OP
-----END PGP SIGNATURE-----

--ch/S/wdXVtSi1v5H--


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 12:40:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 12:40:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161254.1489243 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWcm-0007gf-Th; Thu, 13 Nov 2025 12:40:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161254.1489243; Thu, 13 Nov 2025 12:40:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWcm-0007gX-OV; Thu, 13 Nov 2025 12:40:28 +0000
Received: by outflank-mailman (input) for mailman id 1161254;
 Thu, 13 Nov 2025 12:40: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=25e8=5V=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vJWcl-0006WT-KA
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 12:40:27 +0000
Received: from fhigh-a2-smtp.messagingengine.com
 (fhigh-a2-smtp.messagingengine.com [103.168.172.153])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ed417cba-c08d-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 13:40:26 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 0AA411400249;
 Thu, 13 Nov 2025 07:40:25 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-06.internal (MEProxy); Thu, 13 Nov 2025 07:40:25 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 13 Nov 2025 07:40:23 -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: ed417cba-c08d-11f0-9d18-b5c5bf9af7f9
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=1763037625;
	 x=1763124025; bh=3uYxc0pqDnfvLEC8bd6re6Hs/bqyryB/vPB9mn6RvVM=; b=
	vCleSDbvRsRWkz9zAGorYHV7nRUmMaUhB5Nuhvj2rzBkzzcHHv79KDvKLWk2smOK
	0oOCH6DLh5r9L8kdd0w5vhlqvNuv8S03GILe/FDPKjBwz/QpKFUTeLCZ8QQtwP4m
	cx+tHBlufIOpOakuyK6qzeiG/ludhSoRtxmFMWllE/yt9C7eFkAMY/+WJdU93/ng
	GyTJwOOBfetK4514Cj/hUUFdR/u/dLFWtAqpXhaqqVXbxsITyMfYCTHQOzDchQfH
	pYLfc/G0G7BYgp6VhUbNkbJ5BKUn+/RBhXCUUVaSQL8vlZTNdQs4+900L/6GM5AQ
	jy18trDXWPoZW0Il/tOFtw==
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=
	1763037625; x=1763124025; bh=3uYxc0pqDnfvLEC8bd6re6Hs/bqyryB/vPB
	9mn6RvVM=; b=RL6Q0EKJN6dNPzCvl340qULlwxQA+SGy/ZBi1seYn3VkWB8nfKx
	qUJj/9A1ZbIjh08raGxtuNDQGLynnyduc+eCFi9Gp3m84Y9OCRRma7fNy2R59pUZ
	MnY+i8JAKXWFFrWd16UCi6LPIEie1BOr9fp9wxllEGb/W8UjM2ato7fcuTULzPDT
	f5HaZydZR4VjD+yRp9iqTr7nJ+5T9kEAxndDNCnzbF8zCPaQNXxpHo5jvoGF+x53
	p8vxrX0YVctGks/fpO0fcp0ZIMwYZ2kGPaBDhIRFWzQmr/2ouAQDXJokOasDC8ni
	2jaxmJAvKjmnu4tsFWAEoiKyDCvpmH3Pajw==
X-ME-Sender: <xms:uNEVaXPJjmFZRLK2c7XC_nVQtl9XnpI_wc_8B9E8RWYToA0DtpXhCg>
    <xme:uNEVaUj4gHU68lIVkE4My5LqYxQnpyt_CYLgsCpDm9Tqhu2wylYdCV8-SQZmD4jo6
    -uGSF7fSdH3TIUNAyT95e9JyrG0hRjJcOXzwyrz-_NkXen2sD8>
X-ME-Received: <xmr:uNEVaZ47eMAI494fk3Js_Zt4Wu8q4Rb0mvu7WO9ccgv4uBl35ZXjdj-qOSl-eTyzXo6inKW1V8mDR7mkkw7ja4ygOlwyfnzyCGM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvtdeileeiucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiuceomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhih
    hnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepffelteevudevteeukeeggedt
    jeffheehvdeftedtvdehuddvveeuheeftedvfeejnecuffhomhgrihhnpegsrhhkrdhprg
    hgvgenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehm
    rghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprh
    gtphhtthhopeelpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehjsggvuhhlihgt
    hhesshhushgvrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgi
    gvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohepughpshhmihhthhesrghpvghrthhu
    shhsohhluhhtihhonhhsrdgtohhmpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrh
    efsegtihhtrhhigidrtghomhdprhgtphhtthhopehjuhhlihgvnhesgigvnhdrohhrghdp
    rhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrghdprhgtphhtth
    hopegrnhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohep
    mhhitghhrghlrdhorhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheprhhoghgvrhdrph
    gruhestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:uNEVab0L9v-_rSV4H-vF0R8XBPw14wqXx7rxvnSP4L1aNKN53BeBnA>
    <xmx:uNEVaUv9CkR3gb4VV2o48nky20DmAMFMoLS0fjW2lN02HxEFCvhSXQ>
    <xmx:uNEVaR7xBHVthowJEDXgSjB2xD_ZbL1E8uPcDnLrXRGUVYclICfsTg>
    <xmx:uNEVaQeaaljgOunBExzMlLbpIx7KqvlgBfDmn5Nvp7ZXlHncJ6qvZQ>
    <xmx:udEVaTxvxU8pEjMna2k5XIuwHqLPbjzOkIq17dW3jv95htlDSYfiBfjl>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 13 Nov 2025 13:40:21 +0100
From: Marek Marczykowski <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Daniel Smith <dpsmith@apertussolutions.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH 2/3] x86/EFI: replace ebmalloc()
Message-ID: <aRXRtY10cFN38d02@mail-itl>
References: <bdbb2884-c2d2-415a-8891-a598d112e34c@suse.com>
 <452fdf1f-646a-4bb1-83ea-ac4c998a096b@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="EcQHnMKI/KcaS/qC"
Content-Disposition: inline
In-Reply-To: <452fdf1f-646a-4bb1-83ea-ac4c998a096b@suse.com>


--EcQHnMKI/KcaS/qC
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 13 Nov 2025 13:40:21 +0100
From: Marek Marczykowski <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Daniel Smith <dpsmith@apertussolutions.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH 2/3] x86/EFI: replace ebmalloc()

On Thu, Nov 13, 2025 at 12:09:37PM +0100, Jan Beulich wrote:
> Use the new brk_alloc() instead, with ebmalloc() merely being a thin
> wrapper.
>=20
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> I'm not quite certain whether we ought to permit non-page-granular
> reservations. The in-memory image being somewhat larger due to possibly
> excessive padding isn't really a big problem, I think.

My grep says ebmalloc is used in just two places:
1. For efi_memmap (via efi_arch_allocate_mmap_buffer())
2. For various cmdline options and module names (via aplace_string())

The second one is probably undesirable to allocate full page for each
one. On the other hand, the current approach (putting small allocations
at the same page as an earlier page-aligned one) also has its issues -
see comments on 3/3 patch.

> --- a/xen/Rules.mk
> +++ b/xen/Rules.mk
> @@ -262,7 +262,7 @@ quiet_cmd_obj_init_o =3D INIT_O  $@
>  define cmd_obj_init_o
>      $(OBJDUMP) -h $< | while read idx name sz rest; do \
>          case "$$name" in \
> -        .*.local) ;; \
> +        .*.local|.bss..brk*) ;; \
>          .text|.text.*|.data|.data.*|.bss|.bss.*) \
>              test $$(echo $$sz | sed 's,00*,0,') !=3D 0 || continue; \
>              echo "Error: size of $<:$$name is 0x$$sz" >&2; \
> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -10,6 +10,7 @@
>  #include <xen/vga.h>
> =20
>  #include <asm/boot-helpers.h>
> +#include <asm/brk.h>
>  #include <asm/e820.h>
>  #include <asm/edd.h>
>  #include <asm/microcode.h>
> @@ -119,6 +120,18 @@ static void __init relocate_trampoline(u
>      reloc_trampoline64();
>  }
> =20
> +DEFINE_BRK(efi, MB(1));
> +
> +static void *__init ebmalloc(size_t size)
> +{
> +    void *ptr =3D brk_alloc(size);
> +
> +    if ( !ptr )
> +        blexit(L"Out of BRK memory\r\n");
> +
> +    return ptr;
> +}
> +
>  static void __init place_string(u32 *addr, const char *s)
>  {
>      char *alloc =3D NULL;
> --- a/xen/arch/x86/efi/stub.c
> +++ b/xen/arch/x86/efi/stub.c
> @@ -41,12 +41,4 @@ void __init noreturn efi_multiboot2(EFI_
> =20
>  void __init efi_init_memory(void) { }
> =20
> -bool efi_boot_mem_unused(unsigned long *start, unsigned long *end)
> -{
> -    /* FIXME: Simplify once the call here with two NULLs goes away. */
> -    if ( start || end )
> -        *start =3D *end =3D (unsigned long)_end;
> -    return false;
> -}
> -
>  void efi_update_l4_pgtable(unsigned int l4idx, l4_pgentry_t l4e) { }
> --- a/xen/arch/x86/include/asm/brk.h
> +++ b/xen/arch/x86/include/asm/brk.h
> @@ -2,6 +2,10 @@
> =20
>  #include <xen/types.h>
> =20
> +#define DEFINE_BRK(var, size) \
> +    static char __section(".bss..brk.page_aligned") __aligned(PAGE_SIZE)=
 \
> +        __used var ## _brk_[size]

This chunk belongs to the previous patch I think.

> +
>  void *brk_alloc(size_t size);
>  unsigned long brk_get_unused_start(void);
>  void brk_free_unused(void);

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

--EcQHnMKI/KcaS/qC
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkV0bUACgkQ24/THMrX
1yxmUwf/eHsCovJTIQ9sp3liGEH3ysQq8UT0w4Bzhw5SqL3Cmx8JN/va8EI2+TxW
D+AyEfdiPCftMN2s/GRLHhdL4EcnIqaB9/kEsqoO8HFXMfJbjwKTD8wD0BdI8wzp
77QQpfrl8W/rd2CmcDbDhtzEhiNFHgKkykrr+MkQy3Ccd2pex66c8A8EfvwBJla3
jM5yVO5A5v/gPzBXSQ7PiE/XPD0//gXCdccr6r+svCaEyW7RP8HHpqK12J38h4JZ
eVoYRFG+zsK+TiJ2Tgo1m3ZvyTrviOfnoZmbNWBsxpdFBXBlg2SU3F6u9giEdiov
RwTeWr2MBsqlzPA0lvlikVsKaRkXTw==
=fLJ1
-----END PGP SIGNATURE-----

--EcQHnMKI/KcaS/qC--


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 12:44:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 12:44:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161268.1489252 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWgp-0000OV-Aq; Thu, 13 Nov 2025 12:44:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161268.1489252; Thu, 13 Nov 2025 12:44:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWgp-0000OO-7x; Thu, 13 Nov 2025 12:44:39 +0000
Received: by outflank-mailman (input) for mailman id 1161268;
 Thu, 13 Nov 2025 12: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJWgn-0000OI-PY
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 12:44:37 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8248fffe-c08e-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 13:44:35 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-640b4a52950so1113685a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 04:44: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
 4fb4d7f45d1cf-6433a3f880fsm1418163a12.11.2025.11.13.04.44.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 04:44: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: 8248fffe-c08e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763037875; x=1763642675; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FmKMyhmQFzN+FQ9PkM/1vwTn38LjX4jHXFc36N4k6pc=;
        b=GEF204LERKVq63w9cbGsIibJPRR4fWp9Dd7ahn4A33/n0pwnbOz3Sh3QmIF31I1w5W
         a+EWrq2Sf5224vzRcFBTrqOmq2hireX5IzFb0/yTmPY52gNYxFTEbn0S/YFOZjhf69ge
         0vBhq33Yx7HBKm3RLsIXmbF2+tdfR9iIIL9H52/QSnNj2MtvlRLyJ9KKmnkrrGVSxMPX
         4/tAHcLYUv6ANw3uQTTUQRPTJZz2Slk6cRZixyjATspCN1+ZayI3050bPR/Tr99SMLjs
         wdQSQ7umPzi4pvLqpDTaQPY8xeNIi9jRkw1pCjPF+l75dDm+FJQk0n31+i90xH7F8Fsm
         SCkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763037875; x=1763642675;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FmKMyhmQFzN+FQ9PkM/1vwTn38LjX4jHXFc36N4k6pc=;
        b=ZcuDxvO460UCoB5z7Fnm7/hG4k9uyfz6Nx+OzM+BCN3RH9HbLXXphh1jvHKu6wjVnj
         KSHkIPu8O1a7yQT410qzC+oNLyKa5wQcBK8Zv7YQI7q/hJ4jxjUf0Bs9T+6So4leEXls
         bQI6W3pK6IbCXpMtY+mDEoPOgHj318i7A4mI8pS0PSEMeJE8aCyoLUfFekxous+7XCsp
         8dvJ07PanSX0DLmEGANVLjzGcer9aLEXoGs7KpPR0aFDtxX+pNfM5wLKhZzqMFBgoUpE
         UrYYfNUFOclaAN6hv4ek6X0CfI7W2sdXsdI4d8GCW2RXNjt/uncCwUwzZHGHiCtW7WEo
         sKCA==
X-Forwarded-Encrypted: i=1; AJvYcCU0qeXj9lHQGlAqB+7nX5qsSJMHKTOyWpyC8/GnARp9YIKnh3O3Bt2E5XOzUuK3tT5TrY+kdKoOyvg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzT6kt324NFnpCpk8TZptvJr2GDEUO+uNjo6Cb1qU3HAnh5PI1k
	CQPNTs216Ajb82SVggKh8DGmItZTFOsnzCz/F1TotaschXlKT3+hYPJYgE4cUrFzdQ==
X-Gm-Gg: ASbGncsp51OIl7Nq+OY48NKoZodva6pBYSIY5yVIfHPmuJmt/1JnVaP7h5bjffPkPcp
	wODo424AYQklDkHyGG9lrCBgq7XgZ9YJrYYa0dXZCn43vTWLTCAK5qOVGRMPTmoLDrH+3YWu+38
	UjMCH7aPMVaQqhFzQXq6EUpL9FCWPbNmpLm2gFqoE2vzvDCS1vcLI2mQB554NPgHnvRHHe8rZ/B
	1B0/vtnjylh36hXcjj3WCd3B1adUvXNKME7yUtPs3JE5NgM5duuH8rPldz7dWoYDwgIYeRtfWvK
	8vuJ+o3yfhsilMC/lh+G/Hqne5hHGQMWVWUzqzaUKULElWDa3dGOS03ww7rV0IG9j7Ayh1acFye
	S710sKnFIU3fJuCqEjJwHn/8VVMov+5XSapHC+9tmnaiMT1HOtBbXqbVhSHdBY7cVddXiCAlAob
	SkBW3Ge7esO4z2DUujXSHWyrWMBoC52kUaMzuLhiUj6ZBLW44NTuyUqlBTiBAJgFdH
X-Google-Smtp-Source: AGHT+IE5dC99nSM/w/m2Lac3OCA6tnlKJhzNNliWY+Dd/dWSbKVTS9N4OlkBqwKSfkwd9OR64jLGAQ==
X-Received: by 2002:a05:6402:1e94:b0:63c:4537:75c0 with SMTP id 4fb4d7f45d1cf-6431a57e1c1mr6515560a12.38.1763037874656;
        Thu, 13 Nov 2025 04:44:34 -0800 (PST)
Message-ID: <77ff68f1-55dc-4b9b-a40a-ee17cbbeaf09@suse.com>
Date: Thu, 13 Nov 2025 13:44:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs: Rewrite the Tagging and Branching checklist
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251112185402.209485-1-andrew.cooper3@citrix.com>
 <9a949edb-8eb8-4984-adf0-4ab8b82e64db@suse.com>
 <88523cc6-d069-4384-a5c2-e4399e389a41@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: <88523cc6-d069-4384-a5c2-e4399e389a41@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.11.2025 13:28, Andrew Cooper wrote:
> On 13/11/2025 7:54 am, Jan Beulich wrote:
>> On 12.11.2025 19:54, Andrew Cooper wrote:
>>> There's a lot of stale information in the current checklists.  Merge the
>>> documents and present the information in chronological order.  Provide real
>>> examples from the tree rather than trying to be too prescriptive.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Hardly anything is being said about stable releases - is this intentional?
> 
> Is there anything you think I'm missing?

Well, ...

> I suppose the releasing section is slightly specific to new releases,
> but for the stable release, it really is just bump extraversion, commit
> and tag, and where usually tag is the only action after you've prepared
> the tree.

... this distinction isn't made clear (enough) for my taste. And while I agree
with "usually", there are the rare cases where qemu and/or minios tags would
still need making and propagating (the latter normally being done by me rather
than the release engineer).

>>> +Branching
>>> +=========
>>> +
>>> +On xenbits:
>>> +
>>> + * Create new staging and stable branches in xen.git.
>>> +
>>> + * Add the new branches to patchbot.  In ``~xen/HG/patchbot`` copy the exsting
>>> +   master and staging reported heads, update the ``versions`` file, and commit
>>> +   the result.
>>> +
>>> + * Add the new stable branch to the docs cronjob.  In ``~xendocs/cronjobs``
>>> +   edit ``xenbits-docs-all.sh`` and commit the result.  e.g.:
>>> +
>>> +::
>>> +
>>> +  ssh xenbits.xen.org
>>> +
>>> +  cd ~xen/git/xen.git
>>> +  git branch staging-$v staging
>>> +  git branch stable-$v master
>>> +
>>> +  cd ~xen/HG/patchbot
>>> +  cp xen--master.patchbot-reported-heads xen--stable-$v.patchbot-reported-heads
>>> +  cp xen--staging.patchbot-reported-heads xen--staging-$v.patchbot-reported-heads
>>> +  $EDITOR versions
>>> +  git commit -am "Branch for $v"
>>> +
>>> +  cd ~xendocs/cronjobs
>>> +  $EDITOR xenbits-docs-all.sh
>>> +  git commit -am "Branch for $v"
>>> +
>>> +
>>> +On the new branch:
>>> +
>>> + * Switch to release builds by default.  Commit.
>>> +
>>> +On staging:
>>> +
>>> + * Update ``XEN_SUBVERSION`` to the next version.  Update
>>> +   ``XEN_EXTRAVERSION``, ``README`` and ``SUPPORT.md`` back to ``-unstable``.
>>> +   Commit.  Tag the start of the new development window.
>>> +
>>> + * Rerun ``./autogen.sh`` to refresh the configure scripts.  Commit.
>>> +
>>> + * Switch ``QEMU_UPSTREAM_REVISION`` back to ``master``.  Commit.
>>> +
>>> + * Create a new section in ``CHANGELOG.md``.  Commit.
>> Should this really be four separate commits?
> 
> It is and has been for a while.

In practice maybe, but not as per the original doc?

> Folding autogen into the version update might be sensible.Â  Everywhere
> else needing an autogen does so in the same patch.
> 
> But, I don't see it being sensible to fold the remaining thee patches.

Why not? It's all part of the branching operation.

> This also begs the question of how we indicate a planned change from the
> example given.Â  Maybe "Note, example is from prior to deciding to $X",
> which gets removed when the example gets updated?
> 
> If we're going to do that, I'd want to make it a separate change to the
> main rewrite.

As far as changing what was written down so far goes, I'd certainly agree.
But as per the original branching-checklist.txt it's not spelled out either
way, so describing it one way or the other can be seen as part of the
re-write.

>>> +e.g. from Xen 4.21, ``d510f9c1430c^..62d0a92057ca`` and ``d510f9c1430c^..b0255656d121``::
>>> +
>>> +  * 62d0a92057ca - CHANGELOG.md: Start a new 4.22 section
>>> +  * 7b88e463f999 - Config.mk: Switch QEMU back to master
>>> +  * d954e8c5c8de - Rerun ./autogen.sh for 4.22
>>> +  * 85768c28b705 - (tag: 4.22-dev) Update Xen to 4.22
>>> +  | * b0255656d121 - (staging-4.21) Switch to release builds by default
>>> +  |/
>>> +  * d510f9c1430c - doc/man: Align list of viridian default enlightenments with libxl
>>> +
>>> +
>>> +Releasing
>>> +=========
>>> +
>>> + * Finalise the release dates in ``CHANGELOG.md`` (backported from staging)
>>> +   and ``SUPPORT.md`` (only in the release branch).
>>> +
>>> + * Tag the release in relevant external repos, and update ``Config.mk`` to
>>> +   refer to the tag.
>>> +
>>> + * Update ``XEN_EXTRAVERSION`` to drop the ``-rc`` suffix, and update
>> Since further up it's now rc<N>, imo it would be better to also say it that way
>> here.
> 
> One thing I found very problematic with the older checklists was the
> excessive use of variables.Â  In this doc, I've got it down to two, and
> using the examples to clear up any ambiguity.
> 
> Would "to drop the RC suffix" work?Â  This is supposed to be clear that
> it means rc and whatever number we've got to, but rc<N> (especially
> rendered as a literal) doesn't help IMO.

Yes, fine with me.

>>> +   ``README`` to match.  Commit.
>> The latest here QEMU_UPSTREAM_REVISION and MINIOS_UPSTREAM_REVISION also need
>> adjusting to reference version tags, aiui. Taking tag creation in the respective
>> leaf trees as prereq.
> 
> That's the previous bullet point.Â  I should probably make it clearer
> saying ``*_UPSTREAM_REVISION`` but naming more specifically like that is
> going to bitrot.

Oh, I see. The absence of *_UPSTREAM_REVISION made me not recognize it as
what it is.

>>> + * Tag.  Produce tarballs.
>> Link to the respective section further down?
> 
> I considered that.Â  The linking syntax detracts from the readability as
> a text file, while on the rendered version it's clear from the
> navigation panel that there are relevant sections.

Well, okay.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 12:46:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 12:46:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161282.1489262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWia-0000zx-Pd; Thu, 13 Nov 2025 12:46:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161282.1489262; Thu, 13 Nov 2025 12:46: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 1vJWia-0000zq-Mt; Thu, 13 Nov 2025 12:46:28 +0000
Received: by outflank-mailman (input) for mailman id 1161282;
 Thu, 13 Nov 2025 12:46: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJWiZ-0000zf-L2
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 12:46: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 c24e86f9-c08e-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 13:46:22 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b727f452fffso301417566b.1
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 04:46: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
 a640c23a62f3a-b734ff36ac6sm155590266b.74.2025.11.13.04.46.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 04:46: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: c24e86f9-c08e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763037982; x=1763642782; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CK4vBDbYY1HhUOmXQjOwdLsT30MolQko3xX7eVqoaHI=;
        b=Lf8Tn0FR8XehsXSyk5IwTdboo192xswz/+J09ovMgvPB8mBx/da1ba/3cppWI5aUAo
         HurVun99Mbp6PD/qed1aHVdUeNCfM2H4JrFiGQeESUw7vKBL3cKHJ0x87FMR4q0Zxmvf
         rNDYuFcVq9RDPSlLMXBNqdZnWND0awSVsuhglFMaW6XXRCWDWtdx7NIdT5bff2+ZPI1Y
         ltYC8L1iG90GmOsN9ft5gliKrnpbFg5Y5d8aB4x3sMX2JqLdSGehZ3/iWP4IrhMPQhxb
         WuAT7SohuhZOjLSPLnD4VQsIHzkySk3kqSA+NPC6zQ2maPkTPNDBc0J91e70VAj16wCJ
         QTpw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763037982; x=1763642782;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CK4vBDbYY1HhUOmXQjOwdLsT30MolQko3xX7eVqoaHI=;
        b=MZbvvnXDIMIewyB5i1jxQhsqR2kCfaQwNsGcHzxV1zm6b2z/dk1c9+Re+tlikPco4P
         LbyhbjYp57PeHeUx5gh5WBIb1O3RQkkf0dN+CMUsJ5rkxpF1Ezd9BPGRcEWReTd/P0TS
         bKxQisPp+5MgUh/9ukKcNs8yNB1upOF6UF0oiALMAEzjjZDqDcYcyUul2g9wXzePkuq/
         Gs+jNqW2wIrJ5OP9CDR3MuUM6i+VCIId398mVaFlxlEW+vwN5eQKMs5+S37m9g70Sus6
         Nuy7J4L2LcsJ4awvmENBd4okn1qvCUh3LtuyeXcWoh9wZWgInjh+QUvzlCMp166n9oBe
         39cw==
X-Gm-Message-State: AOJu0YwxCRHu+ZxG1NDB19YsMIGY4atJVBEURHban9oDpCuwAY6F0O8g
	8O4aIbh8BG8GhKpOaBBKmqwogAsojhQcG+S7p21ey1xp6dOoADiFakIz94G9nYwczQ==
X-Gm-Gg: ASbGnctDCYeQNNqPcdPB3c//afWBvtb82YljkjW2p6qtqxdS5i2d4mEVrdIF8owVJxd
	6fN+bS/taT72bVWxVLbKGLNTfYplLsKE0fFt2U1yv8OcazLZnpul/UZx2WWlVHXupTr3YDJqAU3
	wjQjVY9IeF9V2oUopvIXEW6I6zgS9Eq5p3dT7hNSDjWsbaaomknfa+iHvVchSBDltOXhY74uyFZ
	kG6zyrZ+BJvJ3oFQBLSBU39p8os2eEr/GNSDexGCoEQCxeV18AwB3VVlnsF4gT3X9nEZgSzIJp5
	BSOD6ZBtZPZaj9VgX5ZoBocfzcRlvTXHMlSg6DMgpEOE9eXMVp/TwX527SaR1be0gwqx77eiX1N
	NIaR86prs8Bm68rGejtqxS2uFIka1AYaF6KYsXsFW5wL2J/N9qAo2MI9+88wXyn+t79vOAsVF2T
	6o+cBTdCpCs0icejaPYc+jJNmsOZoUFdm4f3nbBqVtUvKKRyXw9SF+vNu+kFh8fkMgGZh5trcwy
	48=
X-Google-Smtp-Source: AGHT+IEJflYAnSpm+N1j6YyDBmfUZ1LBl2/zRKzeTgWX6HFUHXUKFfuskMbnPM+lY3VCdQ3brq7Jjw==
X-Received: by 2002:a17:907:ec86:b0:b73:2ced:9af0 with SMTP id a640c23a62f3a-b73484f2271mr263293266b.27.1763037982156;
        Thu, 13 Nov 2025 04:46:22 -0800 (PST)
Message-ID: <4391d560-870e-4010-b3bb-dee2935f9732@suse.com>
Date: Thu, 13 Nov 2025 13:46:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] x86/EFI: replace ebmalloc()
To: Marek Marczykowski <marmarek@invisiblethingslab.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <bdbb2884-c2d2-415a-8891-a598d112e34c@suse.com>
 <452fdf1f-646a-4bb1-83ea-ac4c998a096b@suse.com> <aRXRtY10cFN38d02@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: <aRXRtY10cFN38d02@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 13:40, Marek Marczykowski wrote:
> On Thu, Nov 13, 2025 at 12:09:37PM +0100, Jan Beulich wrote:
>> --- a/xen/arch/x86/include/asm/brk.h
>> +++ b/xen/arch/x86/include/asm/brk.h
>> @@ -2,6 +2,10 @@
>>  
>>  #include <xen/types.h>
>>  
>> +#define DEFINE_BRK(var, size) \
>> +    static char __section(".bss..brk.page_aligned") __aligned(PAGE_SIZE) \
>> +        __used var ## _brk_[size]
> 
> This chunk belongs to the previous patch I think.

It could, but it's not used there yet (i.e. would count as dead code).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 12:50:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 12:50:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161296.1489273 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWlw-0001YO-7t; Thu, 13 Nov 2025 12:49:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161296.1489273; Thu, 13 Nov 2025 12:49:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWlw-0001YH-3j; Thu, 13 Nov 2025 12:49:56 +0000
Received: by outflank-mailman (input) for mailman id 1161296;
 Thu, 13 Nov 2025 12:49: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=yybm=5V=citrix.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1vJWlu-0001YB-3x
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 12:49:54 +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 3e9ee0f5-c08f-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 13:49:52 +0100 (CET)
Received: from IA3PR03MB8408.namprd03.prod.outlook.com (2603:10b6:208:546::19)
 by DM4PR03MB6096.namprd03.prod.outlook.com (2603:10b6:5:397::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Thu, 13 Nov
 2025 12:49:49 +0000
Received: from IA3PR03MB8408.namprd03.prod.outlook.com
 ([fe80::8d7b:218a:6264:2c39]) by IA3PR03MB8408.namprd03.prod.outlook.com
 ([fe80::8d7b:218a:6264:2c39%5]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 12:49: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: 3e9ee0f5-c08f-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fJkvZMWuZWCn3C1D/tuqlxIHAaXS6AzWqbRjRddx2ojIJQEZw6XsF3i15pJ7ReJjvv5GmQQSHLXz6bu6rXpbe9y3NMHCCaFJADqPleYJsAOlOZyO1cYejR5ln+/ltldKpS7lfkcKM005mrBcTw9HBSVkgzx72j/000Bdh9eR4LfB7izmt1M+0cm6bUfDchC3roEp2XwaH7FR+zElWY6zgwDa61wEjyW7eb/IqXPcQo5mwqNNT71eitVFAToHTLP2aVah6I2zLWlmizZJfNgofNJUqALiwz6fANwIgkR/RytmrgHIR5OvN7QEvz/D80JZ3VUQ8taM2fFKBOW9mm1XaQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IfIFTluCdP1M3whKEs02d0wg3bEeRU13xFCW3SUGTgA=;
 b=YpwwEYwh3LgqUTzVHfM1e0ClEp1pfRRGpJj/YNSdNrZNiZ244HG4FwVPYDQ8XGb+NlA+L6niEEZPyMOz3QD3tyktUEeQdEROkcr0Lb4x58N/WiwR5Bt8Ql6vP3ZLTGeFMZ7MiAPssjOkPcb4w+ooEWfiEV85PkdQ+osk2JCUD01ab8AoI+YWlfX2BQHQqgwToVwxD9h6gQCFkq0MnvrpGXbaiwLn9cBrJ9ItWiXt9d3XczFQAbY4IntiuP09AiPQa6MGnQghiHE0gwdcy/XQu3sK4UhuzpHSjgfHfDfnJ7e75L/ubVWCChhRPj0U+XQWBlQ2gIDm1PGS8++4WVBbgw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IfIFTluCdP1M3whKEs02d0wg3bEeRU13xFCW3SUGTgA=;
 b=FD7uNDGgXn65WvTuXwsWvRramC60j4hWHyQMnioDcQsOogcelDFqZSvwh0QcgVTNCr/lnCS/KM3oUQeW+jY4gnofGSCziZ8zo1e7qOarI8FOp5W9yhYm7sop9X39Z22owkS9XQxOb1tSDpjc9fc3DBUz4qLs/ExtFf6TnJuI/4Y=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Frediano Ziglio <frediano.ziglio@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Frediano Ziglio <freddy77@gmail.com>,
	Demi Marie Obenour <demiobenour@gmail.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: [PATCH v7] xen: Strip xen.efi by default
Date: Thu, 13 Nov 2025 12:49:45 +0000
Message-ID: <20251113124945.25343-1-frediano.ziglio@citrix.com>
X-Mailer: git-send-email 2.51.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0687.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:37b::13) To IA3PR03MB8408.namprd03.prod.outlook.com
 (2603:10b6:208:546::19)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA3PR03MB8408:EE_|DM4PR03MB6096:EE_
X-MS-Office365-Filtering-Correlation-Id: 84ebeae1-4226-4107-039b-08de22b32197
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?hXlVR/TQR+ONrHIcB8yiy1fy1ksiF7BXs+M3flUSoPHeTpG8gHfAgtqjIgHz?=
 =?us-ascii?Q?XCmDR2qUQ4Aw/iqFHDVoCcpXQydC3c/Xc7HS6lQ3XDGXKgSjXgC8J/Atyckm?=
 =?us-ascii?Q?0leePgUB4RvFuvjDZwoSawbLKo+7tjOHkA/pQXCZTXBbJBBn9SFrC8olYIbR?=
 =?us-ascii?Q?BOXP0aMeeKGS4ey43ZeuzPjinefJ9nbOS2knium4c5yTerfj9u5KeflPIs/T?=
 =?us-ascii?Q?NGxstC1Jy0zpxbEZyshb3cFifP32kWhZadoCBYYenczm9/R3ZSGqGN0yCY1p?=
 =?us-ascii?Q?nhrjxIgl1YEMCykYgZDqUNs32hFVnQKOnDHb/mY8SwzkWjrmP6WihRY8FJ1J?=
 =?us-ascii?Q?XeGAHtUgRzbItApmo5pWRj9FlWo/n3dqG/EgkJ75veCkvX+h21H1zKTkTwkQ?=
 =?us-ascii?Q?1yQ2bo/oVsX6BBAzHqKAGY7tyMUY1fzbmwQoEgiPU3UsPQTZuh66bmih3OIK?=
 =?us-ascii?Q?gjxvf0KRw9X8cdezNCJvUTEysjicmer3WWInizLZCplMWOF1pkabe6nL5mfs?=
 =?us-ascii?Q?bIPyQK1t6v43wQ3yd65M9H6osWF2gNXNmRBzYeu0pes+fiLsOFaL01ayCWHD?=
 =?us-ascii?Q?RJ6oIu4bKN+lRXJvTZB0y4FeTZ9JshXBiWBnRoH63pSMY+PpIpMXCZJEZsqq?=
 =?us-ascii?Q?yJTgRzzLEVxlCs0rbt/xuWZU4D8//zzevJ42YiPEtxxrdfTfliV6jyQYzTlI?=
 =?us-ascii?Q?aRo8dtpLuYyrTVKBB5ICAy9xeupDGQHnyEPHSpoA2T2fuchnD5hE3s1BlUsB?=
 =?us-ascii?Q?NhhI9wdEbSVn6X6dKFwvsW0HAJcYYTqJw5Cub1T5BBs36Kyu893nPGMFdLwu?=
 =?us-ascii?Q?uETBkWIWTEifhD8Qw5lXn5xjfsYgVD/0QdRGNvcA6AhkymoSmeaBAWkVcY6m?=
 =?us-ascii?Q?+FsKV/jMi4qOOS7a9sYO6GdEPcxYOXd1sa4aHawm/eZ8yM3JKoTEju3RM823?=
 =?us-ascii?Q?vErITCWPZSu7/hIoDotfa8TmNghShcehnjndU6vaI5GFcyKFg4bjGpPO9apB?=
 =?us-ascii?Q?4SWUD6//pxB1fgv8awXgAQfw9zSY6T6bLKM7oMQ8CF6y494sFx1O2xzrZkXm?=
 =?us-ascii?Q?pNRrePeW/PV+8cmW3M6iOEyc/bvp1BP08boz174TZGAGFenlO0Z5FEGpqvWW?=
 =?us-ascii?Q?9GStrx4WaAtR1BCYRcnccPcQ/SmRqNm/j70VkRf5s9ad1MqxVug9BXH/sZTy?=
 =?us-ascii?Q?MhVw+80dltRQtf6w/EPovthBbyBHkKKgbKHNo5z7f8wash7b5lAeXPleGm13?=
 =?us-ascii?Q?/inmUa++Ejka9sp10YQIEvFmYrlphKMmXErNpCj/PRcMOa/pivcIqZJxQR3R?=
 =?us-ascii?Q?/pP/H8geA4+FMzwj/cFVE12DrBiDfIp2jKf54eR1Pe8sj15ZkcOu+q6z/4rh?=
 =?us-ascii?Q?z4WXsFI5x9SPQBuRu8zOxml53tehXvZdYmeLwNW/Phi3KyRvxw=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA3PR03MB8408.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?nzLcIeSOtQ+/CdAS3BbSLjzsMWKc6E6BpYgE5dhWNqGMdqIr9zYCYC7q53Bg?=
 =?us-ascii?Q?zDzzyv7hxYHTM1eJMz32H4XxoqRD/ihTe/s2cRZBiOfV/lshInlSaX5evmlc?=
 =?us-ascii?Q?xhEb+rommsDAtyouUyyC4WBZy3fSo3N+xlzk+pGscMDfY3UYuxDhw0OVzb+O?=
 =?us-ascii?Q?g86y7w2a6uyDRel4y8PuWA9912AlOwDfSJ/bLM1ntJ63CuUKrpu1BvJ3N7Eh?=
 =?us-ascii?Q?KZDzIvzn7Q43WNa/vJW1Hru3FPzt1dXYMboPQyacn2lJeismSOWDPtPqogZo?=
 =?us-ascii?Q?0Yd2XHNY4R9f4BK2e+XGhI15khN5XW2/k81o16GaluNGk86UuL9qMioufdd/?=
 =?us-ascii?Q?gJF6VI2ANeV4lohIxNARKxFelpFjVqVpIos4rBJH0VLQxw21keYJkoVak/rx?=
 =?us-ascii?Q?Ha3tc4rCjiuj7yGZ5llG6ox5bxKAfcMzUajzip9WqRHoQGMSTIXmmzltKrLi?=
 =?us-ascii?Q?T+UYaM8gYENHEPDQiO92fPYy4FlB/j2yZShGsyHLkK3Y2nEx8HUpHOGhcGPb?=
 =?us-ascii?Q?5YCS1l+qD7DDFSLaDdCDWyX7H/B11evzwVacQptDkcweL3P3GZV79Mu8/EXQ?=
 =?us-ascii?Q?Ci/xrah7s4lI+c5pBlT6MF447Mn/LaYsucGVNpKLfOGxuR8Xs6+XTEOF96xt?=
 =?us-ascii?Q?gkT3LInjvF+c93vA0xLVIMlmBz5LWMd2522ia163vPbKOF4Wzz2vffhJ+0DI?=
 =?us-ascii?Q?vmGc+cQM1EK1Mm1vYOb2+alQ3hIFIqVkA9mm78GVM4bqX4M1AqROuytAqhiS?=
 =?us-ascii?Q?+5VoBGxi3MKaWOdXuC2+emjH25hLOy184Vxo/XiUI26l8+rTjLmzdrjgr2Yl?=
 =?us-ascii?Q?EyNl/GTvweZog7r+P8flQuQIjT3Gu7ZZJ7LjdGSaCJ35Mb+k67VwUkGKzO5x?=
 =?us-ascii?Q?7zGF9iSrcQwI5l4tG3ozXSNZFQIZXQsW80Nh6Gm/STCKyHysww5WqDOZw7qy?=
 =?us-ascii?Q?Ev0b/ZfAE/5Y28Eqnu5Nbs00OnKgCdhT3B5b5wolHnXvYygwopprvjKft09Q?=
 =?us-ascii?Q?zdxWm6rNZ/w8xDmjYwtoSSEUxJHQC56BIarrAVgEHOzkKYD53szaipWDA+DX?=
 =?us-ascii?Q?aG0zPtBELi22OPOtg7l8N2RkIvfJOJoI44/4HVMx4r/f028/PlDjv6fDyuge?=
 =?us-ascii?Q?9BHB1w4283G4Pu6SWxepxNcvJBYf0ve60iTLfsOA4EifA7snc3iofTYa6zrP?=
 =?us-ascii?Q?IZ99t0j6bw2nr0DkjvkGaX029j3beq1slVKDxXQJNbbcq1MaZQRIKYU45Yz6?=
 =?us-ascii?Q?c06+bbBD1txzjHUsQ3YuXMzI0xS6s/6aOiflQK+4JY5VcgNFQhC+JNK+sHiO?=
 =?us-ascii?Q?pDcpT5l6IewRb1fShcAFZ3lcb4yknnrXJ2MfklOS2MPhOSwyO10I3/CWFWmD?=
 =?us-ascii?Q?7MLOkC6z9hEwjvkP05XXDO9f2KyXDWV6R1A6A5eoG+04sv4slBKn9q831FPL?=
 =?us-ascii?Q?st0yN14wIIfw7YpvgibSO6q0g0nNEcdKT3IccpfXKkDJH8H2Zh8Y1uZaOfDW?=
 =?us-ascii?Q?VeUShiy1/A6tvhhs04L7uzVkKAB4xdlIW55EjWRjaLe8RsZwTXRaNB9lLPv5?=
 =?us-ascii?Q?H9oAL0h+z5Kbgjc89ev9xTr/Ui/9PVGm4nDdAkx2udhL/Usa71wxh6cYdkIE?=
 =?us-ascii?Q?BQ=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 84ebeae1-4226-4107-039b-08de22b32197
X-MS-Exchange-CrossTenant-AuthSource: IA3PR03MB8408.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 12:49:49.2498
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: pqpf537Ddg2YZmnTKAfcgskLXoAgQg0lbfy+7lbzd8eF3Yul5HKZnKSGwdkBMqUWBSrJSemAq8aS1DewFmjpHIdQtugwGRKK3WXTgfW31IM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6096

From: Frediano Ziglio <frediano.ziglio@cloud.com>

For xen.gz file we strip all symbols and have an additional
xen-syms.efi file version with all symbols.
Make xen.efi more coherent stripping all symbols too.
xen-syms.efi can be used for debugging.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
Changes since v1:
- avoid leaving target if some command fails.

Changes since v2:
- do not convert type but retain PE format;
- use xen-syms.efi for new file name, more consistent with ELF.

Changes since v3:
- update documentation;
- do not remove xen.efi.elf;
- check endbr instruction before generating final target.

Changes since v4:
- simplify condition check;
- avoid reuse of $@.tmp file.

Changes since v5:
- avoid creation of temporary file.

Changes since v6:
- install xen-syms.efi;
- always strip xen.efi;
- restore EFI_LDFLAGS check during rule execution;
- update CHANGELOG.md;
- added xen-syms.efi to .gitignore.
---
 .gitignore            |  1 +
 CHANGELOG.md          |  3 +++
 docs/misc/efi.pandoc  |  8 +-------
 xen/Kconfig.debug     |  9 ++-------
 xen/Makefile          | 25 +++----------------------
 xen/arch/x86/Makefile | 11 ++++++++---
 6 files changed, 18 insertions(+), 39 deletions(-)

diff --git a/.gitignore b/.gitignore
index d83427aba8..213972b65c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -222,6 +222,7 @@ tools/flask/policy/xenpolicy-*
 xen/xen
 xen/suppression-list.txt
 xen/xen-syms
+xen/xen-syms.efi
 xen/xen-syms.map
 xen/xen.*
 
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c9932a2af0..3bdcc3b47a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -65,6 +65,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
       for hypervisor mode.
 
 ### Removed
+ - The install-time environment variable INSTALL_EFI_STRIP is no longer
+   supported, xen.efi will is now always being stripped.
+
  - On x86:
    - GNTTABOP_cache_flush: it's unused on x86 and the implementation is
      broken.
diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
index 11c1ac3346..c66b18a66b 100644
--- a/docs/misc/efi.pandoc
+++ b/docs/misc/efi.pandoc
@@ -20,13 +20,7 @@ Xen to load the configuration file even if multiboot modules are found.
 Once built, `make install-xen` will place the resulting binary directly into
 the EFI boot partition, provided `EFI_VENDOR` is set in the environment (and
 `EFI_MOUNTPOINT` is overridden as needed, should the default of `/boot/efi` not
-match your system). When built with debug info, the binary can be quite large.
-Setting `INSTALL_EFI_STRIP=1` in the environment will cause it to be stripped
-of debug info in the process of installing. `INSTALL_EFI_STRIP` can also be set
-to any combination of options suitable to pass to `strip`, in case the default
-ones don't do. The xen.efi binary will also be installed in `/usr/lib64/efi/`,
-unless `EFI_DIR` is set in the environment to override this default. This
-binary will not be stripped in the process.
+match your system).
 
 The binary itself will require a configuration file (names with the `.efi`
 extension of the binary's name replaced by `.cfg`, and - until an existing
diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index d900d926c5..1a8e0c6ec3 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -147,12 +147,7 @@ config DEBUG_INFO
 	  Say Y here if you want to build Xen with debug information. This
 	  information is needed e.g. for doing crash dump analysis of the
 	  hypervisor via the "crash" tool.
-	  Saying Y will increase the size of the xen-syms and xen.efi
-	  binaries. In case the space on the EFI boot partition is rather
-	  limited, you may want to install a stripped variant of xen.efi in
-	  the EFI boot partition (look for "INSTALL_EFI_STRIP" in
-	  docs/misc/efi.pandoc for more information - when not using
-	  "make install-xen" for installing xen.efi, stripping needs to be
-	  done outside the Xen build environment).
+	  Saying Y will increase the size of the xen-syms, xen-syms.efi and
+	  xen.efi.elf binaries.
 
 endmenu
diff --git a/xen/Makefile b/xen/Makefile
index fc9244420e..5ed029fed1 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -493,22 +493,6 @@ endif
 .PHONY: _build
 _build: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 
-# Strip
-#
-# INSTALL_EFI_STRIP, if defined, will cause xen.efi to be stripped before it
-# is installed. If INSTALL_EFI_STRIP is '1', then the default option(s) below
-# will be used. Otherwise, INSTALL_EFI_STRIP value will be used as the
-# option(s) to the strip command.
-ifdef INSTALL_EFI_STRIP
-
-ifeq ($(INSTALL_EFI_STRIP),1)
-efi-strip-opt := --strip-debug --keep-file-symbols
-else
-efi-strip-opt := $(INSTALL_EFI_STRIP)
-endif
-
-endif
-
 .PHONY: _install
 _install: D=$(DESTDIR)
 _install: T=$(notdir $(TARGET))
@@ -526,18 +510,15 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 	if [ -r $(TARGET).efi -a -n '$(EFI_DIR)' ]; then \
 		[ -d $(D)$(EFI_DIR) ] || $(INSTALL_DIR) $(D)$(EFI_DIR); \
 		$(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_DIR)/$(T)-$(XEN_FULLVERSION).efi; \
-		for x in map elf; do \
-			if [ -e $(TARGET).efi.$$x ]; then \
-				$(INSTALL_DATA) $(TARGET).efi.$$x $(D)$(DEBUG_DIR)/$(T)-$(XEN_FULLVERSION).efi.$$x; \
+		for x in .efi.map .efi.elf -syms.efi; do \
+			if [ -e $(TARGET)$$x ]; then \
+				$(INSTALL_DATA) $(TARGET)$$x $(D)$(DEBUG_DIR)/$(T)-$(XEN_FULLVERSION)$$x; \
 			fi; \
 		done; \
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION).efi; \
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi; \
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T).efi; \
 		if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; then \
-			$(if $(efi-strip-opt), \
-			     $(STRIP) $(efi-strip-opt) -p -o $(TARGET).efi.stripped $(TARGET).efi && \
-			     $(INSTALL_DATA) $(TARGET).efi.stripped $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi ||) \
 			$(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \
 		elif [ "$(D)" = "$(patsubst $(shell cd $(XEN_ROOT) && pwd)/%,%,$(D))" ]; then \
 			echo 'EFI installation only partially done (EFI_VENDOR not set)' >&2; \
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 407571c510..a154ffe6b2 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -228,12 +228,17 @@ endif
 	$(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
 	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
 	      $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
-	      $(note_file_option) -o $@
-	$(NM) -pa --format=sysv $@ \
+	      $(note_file_option) -o $(TARGET)-syms.efi
+	$(NM) -pa --format=sysv $(TARGET)-syms.efi \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map
 ifeq ($(CONFIG_DEBUG_INFO),y)
-	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
+	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) \
+		-O elf64-x86-64 $(TARGET)-syms.efi $@.elf
+endif
+	$(STRIP) $(TARGET)-syms.efi -o $@
+ifneq ($(CONFIG_DEBUG_INFO),y)
+	rm -f $(TARGET)-syms.efi
 endif
 	rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
 ifeq ($(CONFIG_XEN_IBT),y)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 12:50:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 12:50:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161307.1489282 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWmY-0002zm-EY; Thu, 13 Nov 2025 12:50:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161307.1489282; Thu, 13 Nov 2025 12: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 1vJWmY-0002zf-BH; Thu, 13 Nov 2025 12:50:34 +0000
Received: by outflank-mailman (input) for mailman id 1161307;
 Thu, 13 Nov 2025 12: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJWmW-0001YB-F0
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 12:50:32 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 561e6695-c08f-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 13:50:30 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-640b06fa959so1437484a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 04: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
 4fb4d7f45d1cf-6433a4b19dcsm1350534a12.27.2025.11.13.04.50.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 04: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: 561e6695-c08f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763038230; x=1763643030; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YtlW+F+XN+d+q8r5ILVn0l/yu+UyCqJZRoVYMv7YElY=;
        b=KFxO8WgF4EIDw1tEC2WUEQOP6ozAN5SL3cces5Cr2r0bARFiBOnUQ7Z8Imldrei8HV
         v27td38pLjjGDdPWl+5998YaqIjZREvbNd1h316ZNMJjBbhMWCY7PCxZVjTi4y7cuYv1
         CmiMcXx9ue8pb4dogDJjdrsXQa72jfqjV1rm1flRempaqzbXobFJ2VpKfELgMgYdCDYP
         AuDgQMPeHauY/wzqTc7oLjK1SSF5S1xLV58qCbgOq5T2b15qT9VGkdRZs5USCNO6aXIW
         +oVZkN/d5Tjv76ghuJlvrVJ3L84OAtDgwTevl9nn41szqmWnzhEHa5301Fc3zqTA58yV
         cXOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763038230; x=1763643030;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YtlW+F+XN+d+q8r5ILVn0l/yu+UyCqJZRoVYMv7YElY=;
        b=ZHk5rZTzn0kyi57zYSnmES7aKU7RvM0jDLja9vOrSJS20t3X/Pb6QQzMBb4dG+j5Wf
         ozkNvwgRGbRibaOcio/RbyG58u4gqGUvbUzibc38iWeTnyxidKztEYVeEqkalUpOAGq3
         AY6m7Fa+RrcW8Hwv/etIYkR2opqvs1Vt2yc1WlMZUrnXabd6ok/gsM1E0CZ3fLqC3896
         xD0OheAmFn6pbhXLldbyC0EqzVU2Y6Q9esViaFPJ7JGlDifWGbPuUGEE1X7/7YAPXnF/
         RcNXLXpNtA7HVBU3yzB9Bgn4lVAti7nlJz2az46gWkUw/3Yr7YpUq2mkdkziA9dpGFjt
         1kOQ==
X-Gm-Message-State: AOJu0YxFjWPcM+VLzspukPWbqYXcayzRaTc7F4JgZs0nyu+cSiXMRXYs
	crb0kM+lkqyV4tw/18pZvdBeQbxfCKC10U/S4HXLEY3jeb47KonPmHhag571Xsx//w==
X-Gm-Gg: ASbGnctQgPbIlr/aON7nWYoqcBmla3o1BCAweylLhXCuF6TvqYO0oz2GPOxm64wlHc3
	94Xhxg/lQimzw4aq97RiwSWPMNZm7Qfu7UskY1ugnJWJ1fBU1EkFr8xTIgKWMs/+NGrak7KcaO3
	zQzbRD1h45qOS3TkckcP2TNSyi5CzbBGLnxk2PxO9eJC9YyXd1zdeMtxXRX/jAwbYV3HqFK851o
	fBb8DGZy09+kyZ8P0WTq3mkbLgZ+ySahc0owzsvwOirGfjTnYngjbVKEoiJqnOGKJyzaV3neNUZ
	Dzn1HfBqlGkjfAvjAl3Jr8nlyGpuWo1h7adOpMdXTPGQUyi7yIaiIHnRjbThh8hYSccRL6oAsLS
	C0DxXzW8VFsfDRWbObDJdQKUuHFLXzvu5yBfC+PxzyTzaYswqc0F40JuPOB/iLPhy1ApYvd/kWS
	Tix8QYWTU8jeUh2aVbdNTpWoiSLuNJxewPBbxb+8gscK5SeT5SZydH74dhLHYW8PqPDrQzRPcsg
	NM=
X-Google-Smtp-Source: AGHT+IFA0ZQnImQ6OQiKxro6xd6R3Mr0iu1YXzq8OZeUk9DGKviFn78epZbmsNoydzpx8C16liHurA==
X-Received: by 2002:a17:907:96a1:b0:b45:b078:c52d with SMTP id a640c23a62f3a-b7331a5d74cmr611493066b.35.1763038230133;
        Thu, 13 Nov 2025 04:50:30 -0800 (PST)
Message-ID: <0ed20aaa-2625-4555-8fab-0e15fea5e71c@suse.com>
Date: Thu, 13 Nov 2025 13:50:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] xhci-dbc: use brk_alloc()
To: Marek Marczykowski <marmarek@invisiblethingslab.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <bdbb2884-c2d2-415a-8891-a598d112e34c@suse.com>
 <bec55a88-00f3-4961-b1dc-5b9e38d94a32@suse.com> <aRXRdU8YusudRmxf@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: <aRXRdU8YusudRmxf@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 13:39, Marek Marczykowski wrote:
> On Thu, Nov 13, 2025 at 12:10:16PM +0100, Jan Beulich wrote:
>> --- a/xen/drivers/char/xhci-dbc.c
>> +++ b/xen/drivers/char/xhci-dbc.c
>> @@ -27,6 +27,8 @@
>>  #include <xen/serial.h>
>>  #include <xen/timer.h>
>>  #include <xen/types.h>
>> +
>> +#include <asm/brk.h>
>>  #include <asm/fixmap.h>
>>  #include <asm/io.h>
>>  #include <asm/string.h>
>> @@ -1321,7 +1323,7 @@ static struct uart_driver dbc_uart_drive
>>  };
>>  
>>  /* Those are accessed via DMA. */
>> -struct dbc_dma_bufs {
>> +struct __aligned(PAGE_SIZE) dbc_dma_bufs {
>>      struct xhci_trb evt_trb[DBC_TRB_RING_CAP];
>>      struct xhci_trb out_trb[DBC_TRB_RING_CAP];
>>      struct xhci_trb in_trb[DBC_TRB_RING_CAP];
>> @@ -1335,8 +1337,7 @@ struct dbc_dma_bufs {
>>       * DMA-reachable by the USB controller.
>>       */
>>  };
>> -static struct dbc_dma_bufs __section(".bss.page_aligned") __aligned(PAGE_SIZE)
>> -    dbc_dma_bufs;
>> +DEFINE_BRK(xhci, sizeof(struct dbc_dma_bufs));
> 
> I think with this change (or rather with using brk_alloc() below), the
> structure wants to be padded up to the page size, to avoid putting
> anything else on the same page (see comment just outside of context
> above).

Are you sure? My understanding is that sizeof(xyz) is always evenly divisible by
alignof(xyz). Hence such padding doesn't need making explicit. (And yes, I did
see that comment while making the change.)

>> @@ -1413,24 +1414,33 @@ void __init xhci_dbc_uart_init(void)
>>  {
>>      struct dbc_uart *uart = &dbc_uart;
>>      struct dbc *dbc = &uart->dbc;
>> +    struct dbc_dma_bufs *dma_bufs;
>>  
>>      if ( !dbc->enable )
>>          return;
>>  
>> -    dbc->dbc_ctx = &dbc_dma_bufs.ctx;
>> -    dbc->dbc_erst = &dbc_dma_bufs.erst;
>> -    dbc->dbc_ering.trb = dbc_dma_bufs.evt_trb;
>> -    dbc->dbc_oring.trb = dbc_dma_bufs.out_trb;
>> -    dbc->dbc_iring.trb = dbc_dma_bufs.in_trb;
>> -    dbc->dbc_owork.buf = dbc_dma_bufs.out_wrk_buf;
>> -    dbc->dbc_iwork.buf = dbc_dma_bufs.in_wrk_buf;
>> -    dbc->dbc_str = dbc_dma_bufs.str_buf;
>> +    dma_bufs = brk_alloc(sizeof(*dma_bufs));
>> +    if ( !dma_bufs )
>> +    {
>> +        dbc->enable = false;
>> +        printk(XENLOG_ERR "XHCI: not enough BRK space available\n");
>> +        return;
>> +    }
>> +
>> +    dbc->dbc_ctx = &dma_bufs->ctx;
>> +    dbc->dbc_erst = &dma_bufs->erst;
>> +    dbc->dbc_ering.trb = dma_bufs->evt_trb;
>> +    dbc->dbc_oring.trb = dma_bufs->out_trb;
>> +    dbc->dbc_iring.trb = dma_bufs->in_trb;
>> +    dbc->dbc_owork.buf = dma_bufs->out_wrk_buf;
>> +    dbc->dbc_iwork.buf = dma_bufs->in_wrk_buf;
>> +    dbc->dbc_str = dma_bufs->str_buf;
>>  
>>      if ( dbc_open(dbc) )
>>      {
>>          iommu_add_extra_reserved_device_memory(
>> -                PFN_DOWN(virt_to_maddr(&dbc_dma_bufs)),
>> -                PFN_UP(sizeof(dbc_dma_bufs)),
>> +                PFN_DOWN(virt_to_maddr(dma_bufs)),
>> +                PFN_DOWN(sizeof(*dma_bufs)),
> 
> Is that really correct? But with padding (see earlier comment) it
> shouldn't really matter.

I think this is addressed by the reply further up as well.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 12:53:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 12:53:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161322.1489292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWpD-0004CF-0I; Thu, 13 Nov 2025 12:53:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161322.1489292; Thu, 13 Nov 2025 12:53: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 1vJWpC-0004C8-Sb; Thu, 13 Nov 2025 12:53:18 +0000
Received: by outflank-mailman (input) for mailman id 1161322;
 Thu, 13 Nov 2025 12:53:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xbc0=5V=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJWpB-0004C2-DM
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 12:53:17 +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 b6594139-c08f-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 13:53:12 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by DU0PR03MB8718.eurprd03.prod.outlook.com (2603:10a6:10:3ed::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Thu, 13 Nov
 2025 12:53:09 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 12:53: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: b6594139-c08f-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=I/TWAmDqgXXefraG6wIEeH4DJdGs2MWCjP7thQUTg38ekV9+mmEK7m27DsClPTF3m6zTrz8di1zkBnefYFLwYIwj+FXSDmwEn196uCRqwYH0Vz7uiaU1vhOEdL35+fBG6Rs5jUknsG/QItadZd0oOSblRYWEChFMd+evH2Hjr6c37t8IiM9tyDhaPz1hdO3VjWCEugLtf7H+NdcIIscCP9efzk0WWzt4dxVQra45w08KNO15oFS2l0cMTohIvvBHzEGYlZIKE1t/CmZNiBd4GlvWdTRFs8exRfNWVggDPhXWK9k+yvEaNxelyperlQshk52QDk0MpWSYoZJ3OpKhrw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5NaW1HKQgwNic+cKlIkM4mdmMd+WscODmbqTMl4SeFk=;
 b=L3iCsMAbbc1oD9fjFGptkC6FAZmlcvJ67U9w0ebG/OY5vJBQsu0QFGxDI6jD7Tn4uctOe8dKCERJW7MptfxjTojUBgc4J3oyYFB4ZK2N57VytgliPeZRt99vWGNJaLCT8TNsQGMUDCt0ZSIXN/oyKLJa3tO5anIJ9xUW5bcJvB6HRto7D+kvIfq8v/mfH75EzXUf7PHnFVc/cnofCTEcKZrjT29qCGMnFHEGMPZRcyy2jv1ZmYtv601hLTeBJpuBv9F11AisQxNgz2JJBhVt/05AQtI4OUPz5zmnaSXN5LB3YF1CfXWMYNi/AcDaRWyB/DleK6/Duph4DI+mvXjy0Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5NaW1HKQgwNic+cKlIkM4mdmMd+WscODmbqTMl4SeFk=;
 b=FygKNF0NJfabp07VgGsYu8nNRDcMF1H/432yJGPEunBl6UjETymLxOtoz05UpCIFCHgzHRQUfleU+9Y94zFe61YNZEmx0Act6s/Da6sKsEzMR+12CJSOvCVwuREisRuhZ+vPbs4E/xYHzlYLy/q2OugAOb1bJXLXt3GES4uciRo2djqqRvAK34DzsDK8UOHgOrM9N+P3vEMW8XbJtmRdfp6Y0lcGy0FC0pl/YD+/k/PF8LrMuL2KlZ/l9jiA3YEc1eZ3N1AmEPruPV+ZC+VbHQborbAAU4gVo8ZFqE3uK+4B+QdTtgqDmj897Qd9GTLQn9EQCo5k0P7lud7oZ4H2ww==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <9c4294ec-906d-4607-8f7d-b5b1bb7e74f2@epam.com>
Date: Thu, 13 Nov 2025 14:53:07 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2] xen: make VMTRACE support optional
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 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>
References: <20251112202442.3879997-1-grygorii_strashko@epam.com>
 <a634c192-9ea3-46d9-a087-f0f48a5c2494@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <a634c192-9ea3-46d9-a087-f0f48a5c2494@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA1P291CA0009.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::20) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|DU0PR03MB8718:EE_
X-MS-Office365-Filtering-Correlation-Id: b7cb4dd0-0c56-4a3c-8cc2-08de22b398c7
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?SXo0MWU4Zy8yTytobVB6Mm1URkZReVQrTXg5aUxTVWpRV0hpQkZ0cnM4UVAv?=
 =?utf-8?B?enRYQkYwd0tTNm50T0JMMW81SDg1YjUySjdHR1c0L2k3T0dzdXRkSW52TW5v?=
 =?utf-8?B?TlR3bHFWbFEwTHFRbHN3V0w1djFPU0lBL1lDMXB3NktuUXlVUDNCT2tRaWl0?=
 =?utf-8?B?Q21ybmJzSjNkeXN3c1hGVldGM0VMc0Z3UUllNEdpKzR2bTFjeVUxeStxa1NI?=
 =?utf-8?B?Nmpka085c1U1M3ZER2M3TEpwWE9keC9ZWkpTWWR5TG5OY01SdDR0TTE3dHIy?=
 =?utf-8?B?UGh4UEdWOURZQzhCSURiSmg1SWVnMkprRVpWdjhGenFyZVF1L0dkVUVkNWFk?=
 =?utf-8?B?UEFUWnR6cUE1OXJkdTR5NEtRWjFZVm4xTVRaSGEwRDJDTW55TlhadlJES05p?=
 =?utf-8?B?Q3R0OEY1M28yaTFQU2JDbDZGejI3NFhmRnBlUEVTKzBCeXF6MGh3YXRMRXc1?=
 =?utf-8?B?Wmo5bHVWNlh6dzF2eUIrdEMyTnhyS3BmbFlFWTM5dzZqbEMrQkF2dVplQjIz?=
 =?utf-8?B?VWhJUjF5d1dPRmJVZTk2RWlkNkRPRG1VN01HSGt6cEJTeU13VkJaaU5rcWFR?=
 =?utf-8?B?YS94OXFLdStIaEpBWmdpdG9DT2IwZ1ovT2tkYWhBZ2hnTStBYWNuSDFJaTQ5?=
 =?utf-8?B?V2dzQ1ZKU1R0cmMwRENmNjhBbGt4eDRSZHlUa0tmdEN6cnF2S0dVckFGVFYy?=
 =?utf-8?B?VkplY0RadkZNT1EwTnNuSlJLOEVzME1FY3NMUld4bDBqNkVzWTlqQmVZcTM5?=
 =?utf-8?B?TmtpbnNpQXc1eUVaZzZYWDRZOWg1cTlNQ1lKMDN0bERyamUvN1NBYnc1UUQv?=
 =?utf-8?B?SkxpVi8xbG9yZWQzNmYwVHZjckI2TUxxcllNN0dmZ2h5ZGRteUFrS1hycFI5?=
 =?utf-8?B?SGc1NGF0UXRpQ2RFcXQ3ZXFoSC9kaXpHL1ZCWTAyQnBPOHA1aW5iU0JOek05?=
 =?utf-8?B?cHJxRXliV3FEbUhmODdybVJicFFaR2NaczJMRzNNUkFHT2w0WWdyc0htalVv?=
 =?utf-8?B?eW5VTzV6L05jZUVJRFRaZFZBeVh6YmJLcTBZRENWeE84aWhTZ25DY1FrZEVL?=
 =?utf-8?B?clhFWnVacStJRmlpSUFKQmtjNmFtd2hweTkzd25SK05lVXBoYXJaN1kvMEJK?=
 =?utf-8?B?U0h6ZGc5aEVCcWs3QUFNL1UvSFZhd2hMRG9lL0k0cDFvUVhxaDRxUXEyd25W?=
 =?utf-8?B?bDB6TGVLczdNNURneER0czRWSHNWQzNKMVZSMW8xaG43Rnc5YkV4YXVmRzRh?=
 =?utf-8?B?Slp3eXpqR045VGptVkZpWk9aUCtvaE1PakFXcHY0Z0ZYdTJVRFEzQVJHSm5X?=
 =?utf-8?B?dGk3VExvVytaZ2lmaVZHNkZSUVJyTldlNGR5RDVrNWJQVzJaN1NmUEZzVnRF?=
 =?utf-8?B?TjlqN25TSDRqRFprTzV5U0l4Z2NLblJnS1lrcCttZ2dmejBKc0tFWG5FeDlQ?=
 =?utf-8?B?WGdMbE5iYnR6ZEFrMDZwK3A0bXljVW4rZFZMdlU0clRwMmh0L0ZqckdVTzNr?=
 =?utf-8?B?cDBMWjNHL2VpeHgzeG8vdE1MVmxHVDFWbnIyNmUzbTdWdXlFYjJ6SUw3SmUy?=
 =?utf-8?B?SUhvY21nVThJeFZYUm9PZngzZVFaeHg3Mi92bjNyRVRiaVFaalZSOEc3ZXo2?=
 =?utf-8?B?QVlKNmxLbk44VlN1aXhvT2Nqd3NrangxcVlld05PcVFQck1MSjJHcXhQYklS?=
 =?utf-8?B?L1lqWm5sYUhLVUpXTkFTRXVQNGQwa1pZdVVKUlhObVVlZFdGUFNUb29zSXdX?=
 =?utf-8?B?VHJtamRuTjZqeDdzbGVPMHA5OEtFcmxManRvNEtlNjMwQUpyc1g4ZzNDMENx?=
 =?utf-8?B?aDlWZDVEMjhYMCsyL29GZXZZcHBMWTI0TFVCdk00N3BWejNtSFJJbjZxWXRP?=
 =?utf-8?B?QTE4aXZEMGpheEFRdllxbHUvLzhYRldMbUZkZzZ1b0RmejE3bitjN1ViR25s?=
 =?utf-8?Q?kqwp0+PRR1BtdSb8V6WUgKKdRD+9fPHL?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?N2Vxbzh5MmJXU0F1ajc2S0t3UHRCQk1pRHFjSVc4SmNsOW5HYlBGZVdxcHFJ?=
 =?utf-8?B?bnFGQ2xyM3E0UFpUZEliV0Q3TlNjZEhQemxJaUVxZXNnTFVGSzlvL2ljVWJh?=
 =?utf-8?B?TStVejBXL0kvWjlUbVV3WDdCUmdwQTIwNDN1OHhuK2lwU1RsT3NpV0NLWnc5?=
 =?utf-8?B?OTlrRkJpS2lreVlDUm9TNnRWeVdKazdIWk91Nk1mOEZmSWR3Q3NKUThGNm5z?=
 =?utf-8?B?NlZpZ1BPYmxpQWdRUGtGY2FTcGg3YjZsc3FIbHNEeURIY1VhK0YwV0RaaWtT?=
 =?utf-8?B?eG9zK0NwNW5PSFdXN1hCbExGREJ0WVVNYW41bnVVVVUwLy9rbW1iaElUWEZu?=
 =?utf-8?B?MFpvS0xrcHArSUVzdHJSWFNBM1d3UjgwYnNEblNmVWJ0Zy9qbGpjeFFFSTBm?=
 =?utf-8?B?dDRuSFVCS0hIUlZVUUhFbnlMb1RyaUFXNU91SUlRLzQvMjVvVlo0VW1vVzVi?=
 =?utf-8?B?MmFIejdiRVFjaVJIUkQxc3FLQ2xPZCtSYm9BcUxCMEloZk8yYWxKZ3lnT05r?=
 =?utf-8?B?QlloNXRGcmpWRXpJOWNGNDRsWmVranRKNUdTdXRBUWNLUVdLS3NrYkZWY2tK?=
 =?utf-8?B?bElzTEs1RWdQdERvL3JsZUdEbzRaWWcvM0F0Um5zQlhYNFBwcTUvZGs2eWto?=
 =?utf-8?B?WXlNN2c1dWJRL0Y5YzR6M1JienV2N3I1UUMzVyt1bnRGcVdhWjdmYTJhb3BQ?=
 =?utf-8?B?T2V3Q1Z1UFI2UThoWDVSNGhDS0cyYUdIbXlrcUdHSDY3NysrR1FWTWFZQ2xz?=
 =?utf-8?B?empQdThMeGlvaHBvRGVNZklNM2ZrejZ4bU1Ta3F0bXovblEyT3Jick1hUWxF?=
 =?utf-8?B?enRSK01Mekl3RDlLWkpkTjdmeG5hRzVrMksrV1FpMXZPU2kyaVRQOXpPRmVk?=
 =?utf-8?B?RERVSDBkanFONHpBS1dMQTZ3b2tqQ0hSRllXR3JrK1o3WFVKYXY2d0M4SnV1?=
 =?utf-8?B?VHVVSzNuakY0NExsQ0FGd3BkNFUzWGd0RGpEaGhwcmsxWGpxM1lKeXo1b1NF?=
 =?utf-8?B?NHBDSEJpK2VlL3MvbU94VWNodWZrV0xGRE90S052RmxsTi9nMVhPZTBsejEy?=
 =?utf-8?B?QTBlcHhPUEIyR25ZenkrZDhyRlUrWmNLZG1tUSswWjdIQkwxWVlZL2hzSjZu?=
 =?utf-8?B?elNiL3lRWmlMb2d4bHJMeWtUN3BtOTBFN3F3Rythb2Rrb3E4RzBPS2tYaHFH?=
 =?utf-8?B?N05WSWs0SGk3dk5WYmFBdFBRcFprZzZYaWhZQ0huYS9hdllaSzN0cUZYV3FK?=
 =?utf-8?B?QkFQbTNFblZDTkJYOVdac0piTGVacGJOOHpkSnIwSE5uemJNY1BaK1JqS3FF?=
 =?utf-8?B?NFFZNmtmSFpnWS9ONUFoTEhpcHpRWXVrejczUmpVOVc4b1U0L0FYc05OS3V0?=
 =?utf-8?B?VWhtN1hJcG1zZGcrNXFNalJaU2JXR3k4S3IzamdxclVUWit0TFhKOTdLdk4y?=
 =?utf-8?B?OWxNODJ5TWlFNnRRZkRvaytFSTg2UEx0T1czYVBoV2xpcmlWcUNUaEFaUlZu?=
 =?utf-8?B?Y3BpV3lic2ZMcWdjcjNPbEt3MSt3cElQb3hPWHpFb045SFNCcVlUSjEyL0t2?=
 =?utf-8?B?NDczem5rc3VjMTJxMmpEcTFYQ0RFRkdZdG83VkVRdCtDTHBWaTY2eXNLSG9E?=
 =?utf-8?B?aFZsb1hlNDZtUnhKenVkSis5aWp4SVNYdUNKWXJscVRkV2Q5cmNiVUkyR3pU?=
 =?utf-8?B?YzJyYU5iK2lHUGVjRWxWUjA0K0QzZmx3azdSVWNHSzJ6eS9uL1g5WjF3TkJx?=
 =?utf-8?B?TGU5OUhCeFNmQVN6ZXZhelo4bFdkVHJJRHU3OWFtODk1SkhmaXpzdFQ0ZUpp?=
 =?utf-8?B?TFhscEdoM2RmZVlMOU5TT2VlTmtoa1QzSW51cmUxWVRnWUtPbUtadnFJLyta?=
 =?utf-8?B?SUo5Y1R0dk5KQm5SZXc0SkE2S2RuV2J0Wlo3TFkzdlpyS1AveFArV1VFNDhk?=
 =?utf-8?B?VDIyYXhISVJucldZWE9wL2s0TWMxdU1acGVSWUFubXdySFRndGJZWWZ5UVJw?=
 =?utf-8?B?blJwTFhrOURCazIwY3pDT2xDSjBtZHhxVmlnSU5yODRBNFBTUmdyNmFmamx1?=
 =?utf-8?B?R1h2emZTVnpSZmF0YkovYWMwTDBCamRrTldZNG41TUV0NXBoTUlhUkFpQWxI?=
 =?utf-8?B?UmxTWFR5czVleXJaUWFyL1BlRDRjMVo4V1BJWEF1bGdRazRiOVRkNGVyalBJ?=
 =?utf-8?B?bVE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b7cb4dd0-0c56-4a3c-8cc2-08de22b398c7
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 12:53:09.4213
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ckeBAYYuZPHl8uaZpAjnuHr9kTMTC+lUkPhIWu+JygfO6qm0kDmmE+b6W7ruSfLSfMePgoCpWV411FyR7iUxPc6m+fcw0BVKhdmtuhfk0s8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8718

Hi Jan,

On 13.11.25 10:36, Jan Beulich wrote:
> On 12.11.2025 21:24, Grygorii Strashko wrote:
>> --- a/xen/arch/x86/hvm/vmx/vmcs.c
>> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
>> @@ -307,6 +307,7 @@ static int vmx_init_vmcs_config(bool bsp)
>>       rdmsrl(MSR_IA32_VMX_MISC, _vmx_misc_cap);
>>   
>>       /* Check whether IPT is supported in VMX operation. */
>> +#ifdef CONFIG_VMTRACE
>>       if ( bsp )
>>           vmtrace_available = cpu_has_proc_trace &&
>>                               (_vmx_misc_cap & VMX_MISC_PROC_TRACE);
>> @@ -317,6 +318,7 @@ static int vmx_init_vmcs_config(bool bsp)
>>                  smp_processor_id());
>>           return -EINVAL;
>>       }
>> +#endif
> 
> Initially I was inclined to ask for use of IS_ENABLED() here, but that wouldn't
> work since vmtrace_available isn't an lvalue when VMTRACE=n. Hence why generally
> I think it is better to check the particular identifier in such cases, rather
> than the original CONFIG_* (i.e. "#ifndef vmtrace_available" here). I'm not
> going to insist though, as I expect opinions may differ on this matter.

Yep. assignment required ifdef wrapping.

"#ifndef vmtrace_available" will not work out of the box as there are

"if (vmtrace_available)" in code. So, can't just "not define"/undef "vmtrace_available".

> 
>> --- a/xen/arch/x86/include/asm/hvm/hvm.h
>> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
>> @@ -234,12 +234,14 @@ struct hvm_function_table {
>>       int (*altp2m_vcpu_emulate_vmfunc)(const struct cpu_user_regs *regs);
>>   #endif
>>   
>> +#ifdef CONFIG_VMTRACE
>>       /* vmtrace */
>>       int (*vmtrace_control)(struct vcpu *v, bool enable, bool reset);
>>       int (*vmtrace_output_position)(struct vcpu *v, uint64_t *pos);
>>       int (*vmtrace_set_option)(struct vcpu *v, uint64_t key, uint64_t value);
>>       int (*vmtrace_get_option)(struct vcpu *v, uint64_t key, uint64_t *value);
>>       int (*vmtrace_reset)(struct vcpu *v);
>> +#endif
>>   
>>       uint64_t (*get_reg)(struct vcpu *v, unsigned int reg);
>>       void (*set_reg)(struct vcpu *v, unsigned int reg, uint64_t val);
>> @@ -735,6 +737,7 @@ static inline bool altp2m_vcpu_emulate_ve(struct vcpu *v)
>>   bool altp2m_vcpu_emulate_ve(struct vcpu *v);
>>   #endif /* CONFIG_ALTP2M */
>>   
>> +#ifdef CONFIG_VMTRACE
>>   static inline int hvm_vmtrace_control(struct vcpu *v, bool enable, bool reset)
>>   {
>>       if ( hvm_funcs.vmtrace_control )
>> @@ -769,13 +772,20 @@ static inline int hvm_vmtrace_get_option(
>>   
>>       return -EOPNOTSUPP;
>>   }
>> +#else
>> +int hvm_vmtrace_output_position(struct vcpu *v, uint64_t *pos);
>> +#endif
> 
> There not being any definition for this declaration (regardless of configuration),
> a comment might have been warranted here. 

/* Function declaration(s) here are used without definition(s) to make compiler
    happy when VMTRACE=n while all call sites expected to be protected by ifdefs or
    IS_ENABLED() guards, so compiler DCE will eliminate unused code and overall
    build succeeds */

a little bit long :( ?


> Furthermore, can't the stub further down
> in the file now go away (addressing a Misra concern of it now being unused, as
> HVM=n implies VMTRACE=n)? Possibly this applies to a few other stubs there as
> well?

You are talking about HVM=n stubs here, right?
I'll check, most probably they all(most) can be dropped.

> 
>>   static inline int hvm_vmtrace_reset(struct vcpu *v)
>>   {
>> +#ifdef CONFIG_VMTRACE
>>       if ( hvm_funcs.vmtrace_reset )
>>           return alternative_call(hvm_funcs.vmtrace_reset, v);
>>   
>>       return -EOPNOTSUPP;
>> +#else
>> +    return 0;
>> +#endif
>>   }
> 
> This doesn't look right - if absence of a hook results in -EOPNOTSUPP, so should
> VMTRACE=n do. (There's no practical effect from this though, as - perhaps wrongly -
> neither caller checks the return value.)

It might be a time to make it void() - what do you think?

> 
>> --- a/xen/common/memory.c
>> +++ b/xen/common/memory.c
>> @@ -1155,8 +1155,10 @@ static unsigned int resource_max_frames(const struct domain *d,
>>       case XENMEM_resource_ioreq_server:
>>           return ioreq_server_max_frames(d);
>>   
>> +#ifdef CONFIG_VMTRACE
>>       case XENMEM_resource_vmtrace_buf:
>>           return d->vmtrace_size >> PAGE_SHIFT;
>> +#endif
>>   
>>       default:
>>           return 0;
>> @@ -1198,6 +1200,7 @@ static int acquire_ioreq_server(struct domain *d,
>>   #endif
>>   }
>>   
>> +#ifdef CONFIG_VMTRACE
>>   static int acquire_vmtrace_buf(
>>       struct domain *d, unsigned int id, unsigned int frame,
>>       unsigned int nr_frames, xen_pfn_t mfn_list[])
>> @@ -1220,6 +1223,7 @@ static int acquire_vmtrace_buf(
>>   
>>       return nr_frames;
>>   }
>> +#endif
>>   
>>   /*
>>    * Returns -errno on error, or positive in the range [1, nr_frames] on
>> @@ -1238,8 +1242,10 @@ static int _acquire_resource(
>>       case XENMEM_resource_ioreq_server:
>>           return acquire_ioreq_server(d, id, frame, nr_frames, mfn_list);
>>   
>> +#ifdef CONFIG_VMTRACE
>>       case XENMEM_resource_vmtrace_buf:
>>           return acquire_vmtrace_buf(d, id, frame, nr_frames, mfn_list);
>> +#endif
>>   
>>       default:
>>           ASSERT_UNREACHABLE();
> 
> Without the intention to ask for a change right in this patch, this is a little
> awkward: resource_max_frames() returning 0 results in acquire_resource() to
> return -EINVAL, when with VMTRACE=n for XENMEM_resource_vmtrace_buf it imo
> better would be -EOPNOTSUPP.


-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 12:53:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 12:53:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161330.1489302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWpd-0004lK-68; Thu, 13 Nov 2025 12:53:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161330.1489302; Thu, 13 Nov 2025 12: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 1vJWpd-0004lD-3Z; Thu, 13 Nov 2025 12:53:45 +0000
Received: by outflank-mailman (input) for mailman id 1161330;
 Thu, 13 Nov 2025 12:53: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJWpc-0004C2-C4
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 12:53:44 +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 c8a400b4-c08f-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 13:53:42 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-64074f01a6eso1376613a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 04:53: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
 4fb4d7f45d1cf-6433a3f880fsm1433583a12.11.2025.11.13.04.53.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 04:53: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: c8a400b4-c08f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763038422; x=1763643222; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RNQdktPjqOqYAn4ga9tCxzKcOGSHaaBgicLG7Zh+V2M=;
        b=IOa/idboQfx2ghWrv9uJVugNVRw+7ozqYULSitwNYlrwurBry/j59lEPz0M4woX+1d
         z0stlhLb46iGYxhpbA1sAL9Yj4ISwo/hopQw6nzzLgT6CWfPq8R0pWvSUMaS1TV71Hu7
         QFFEww+y3AERz+kMFQRo4dSInATUjtwjFUsKsz8lShZgQeiNt2wLUeeawzg3FrEm/JoJ
         f9/Kcibb8UsVJzD+BJIyW0aiQ9THTPnNQztQ47P/GWRVzXjvYrrZRW1DFvj++xuzriE1
         CYf17xoewu2fwJaBWvOSONM2mEurECeOwM2vVnOth4j0lR1JnEWPHj3GKY6Rb/qV/w6i
         FWCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763038422; x=1763643222;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RNQdktPjqOqYAn4ga9tCxzKcOGSHaaBgicLG7Zh+V2M=;
        b=MWtkXiKzinT+f2q++X7ZRs0Iq/qiZGFl6STJzcCHMz0OMobGGlc+6AwlGNhjTb6Y9L
         rNZlg/ImxZOMnzlNCRRpAwxygX91yOKWVTxZbtegZOLROPq3adPz8N18M5w8KCw6/luB
         hCJ5zTP94XsfUQUXUnVyNgZUG1BTKTPevb50/33ywPzi2OKOPUIP25lMO5lI5F5SatRR
         fGYkQmmwvmzDHoMtpFZNAXR30iApmkuoIeWwqHwfY61yQQ/YucXcydWemTm/HfxTaGW7
         izryrzJRc/EWTs/RGJcpCED7YZUX88g7S9Hc+da/amkn9j56+Vv7wWvLb5yzE/Ul+Myo
         4n1Q==
X-Gm-Message-State: AOJu0YyitjUb0TJmJgN+TzCKEv9ZuY7tbdA3fR8OL2hDEc3aqg4qkg0n
	X5COofYbxcRKjtnA2gdmrrwVGhRg4boQ4AJhxf5qzp8rtfOQljx+3APrQNTE0sheoA==
X-Gm-Gg: ASbGncsCztliKhi/yZWRNZ2dlQhcK6+hbDUlryQzXGPND3Zn6XrQh7cO7crKwRU6xIY
	4z0Hmf4rT9CththA85fAdR4Bb7H4L2v1coj+jWtdSU78cXcjBIlifP3zCqBOL3n/z4kFEM/Rnz2
	D/AGleDbcFEbF9i+aGG/2fXYrCdDdVU1S1iaBj8dPzDCibjgrUtNwafBOLxMC4aXU3SedGYd/KM
	//H3n+slfP5P5DkvXOkevxIB0H+NiVvzjwuf4TprePYMMh+TELLEheS0Erz1gmHYVM/mzQdkk4A
	NghEWasKHJSL5HvWODTNSMzTNMqtzlTk9uK6cGwastDE9tAmMxO7x/ppOlATSpmeem7hOaVQY/l
	cmLeknuCxdV26+eSrOTONBUoRt78kTHYO8YGmj8CYlsdJZBjeVmWlEFzKkmaz1W/Ak0GK+swqGd
	Ylg4GO/p7t2UizcN42jReQJn9d+yxB0IY49u9VOicMEHpC6WbKVybTf4Mjl2JNlkxWT3SLrTM0Q
	yK3SYlH2IJ2Rg==
X-Google-Smtp-Source: AGHT+IGZW80OvMxVzqEckpPRziUa165bl7W2otLnAvFMYgvwknWJ5J8+BRDUz99zm5JPfxUUcv46/A==
X-Received: by 2002:a05:6402:13d3:b0:640:a7a9:289f with SMTP id 4fb4d7f45d1cf-6431a4b59d1mr5685276a12.2.1763038422064;
        Thu, 13 Nov 2025 04:53:42 -0800 (PST)
Message-ID: <d027f21e-f2cc-4c63-9ebd-8f563d72c993@suse.com>
Date: Thu, 13 Nov 2025 13:53:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] x86/EFI: replace ebmalloc()
To: Marek Marczykowski <marmarek@invisiblethingslab.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <bdbb2884-c2d2-415a-8891-a598d112e34c@suse.com>
 <452fdf1f-646a-4bb1-83ea-ac4c998a096b@suse.com> <aRXRtY10cFN38d02@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: <aRXRtY10cFN38d02@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 13:40, Marek Marczykowski wrote:
> On Thu, Nov 13, 2025 at 12:09:37PM +0100, Jan Beulich wrote:
>> Use the new brk_alloc() instead, with ebmalloc() merely being a thin
>> wrapper.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> I'm not quite certain whether we ought to permit non-page-granular
>> reservations. The in-memory image being somewhat larger due to possibly
>> excessive padding isn't really a big problem, I think.
> 
> My grep says ebmalloc is used in just two places:
> 1. For efi_memmap (via efi_arch_allocate_mmap_buffer())
> 2. For various cmdline options and module names (via aplace_string())
> 
> The second one is probably undesirable to allocate full page for each
> one. On the other hand, the current approach (putting small allocations
> at the same page as an earlier page-aligned one) also has its issues -
> see comments on 3/3 patch.

Imo if such sharing of a page is unwanted, then it's the side caring about
the non-sharing which ought to request an exact multiple of pages. Wasting
space due to doing this in the BRK implementation is undesirable.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 12:58:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 12:58:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161346.1489312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWtu-0005SW-Lj; Thu, 13 Nov 2025 12:58:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161346.1489312; Thu, 13 Nov 2025 12:58:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWtu-0005SP-J0; Thu, 13 Nov 2025 12:58:10 +0000
Received: by outflank-mailman (input) for mailman id 1161346;
 Thu, 13 Nov 2025 12:58: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJWts-0005SJ-Tw
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 12:58:08 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6612f71d-c090-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 13:58:07 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b72cbc24637so135977766b.0
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 04:58: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
 a640c23a62f3a-b734fd80a6dsm158972266b.47.2025.11.13.04.58.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 04:58: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: 6612f71d-c090-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763038686; x=1763643486; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=i58DwYmRHS+Tw6iXL/b4HOMEONUYegxrqQ2t4H5pgeU=;
        b=geUgrW4YPo2XcIsS7AL1Vp/j21LZVD4/gc6eA2MNY7NsbQNydI4ppFBTfJSxM+4LfE
         /RHyAq021aY5TcgHBOTp7qwLEJ33ag3b0SLUDw93LuIdSkG9EtdYSSjKqlPuEJ/eTVWe
         6ZdcQx9C01wDLKCDHXP2/6DNqEkhOxjVh+R6i4iJpSO3n/TlRkt+DQnR89Fzeavq976R
         PfLrymFFrw4k2jk+KV58jI+zZm3GW0/wDWjwCe21iD/20zs3OXYsikMIN6+cGBIoqFqD
         qnUHkN3Gl7zRecFVIuNQLEYcbHFag1jq2Scrh71ImJoCCou0MgpOzvfWMS2jt16+ydXk
         E08A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763038686; x=1763643486;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=i58DwYmRHS+Tw6iXL/b4HOMEONUYegxrqQ2t4H5pgeU=;
        b=KHuzuh6IOIvO2wIp5bXFY9ZpsC5chw1R1Yj520H+ep1Xj8y0fg3squNBixuqYhJsyv
         yWuEutK4yeVsUvuEDkbOPOS197TkgN80yNZjNf/Vcrzesjpz4AbEQ613KOz8Lp8JMdJz
         P8tYh57eF/pODhmJVB8kLOz8FXm93a9V7riBxWJ+Pjq2N4xiqQqzRsYXxEUwxBBcX77a
         nHTtI3iwHh+/nVaeJErB+z6Fqsf1vIkb91moyGXND+4qG6xONnlFOaCgjyeGZVif0lXB
         noleb8QE8SL5zOhWr209q3PC20hjEOmEMB07203wEOZCre8+Z364jDJG01r9XPnuVJ4p
         ajCA==
X-Forwarded-Encrypted: i=1; AJvYcCW7BqAbPn+GUJZf2vHIx7qmVIbhRDV/3wqNdH72BogHD+EUkpVZ/blkmK1oorzHSKW9ndd0V0eXLbw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxWzwj4SitfFPmwEDROEtvpHuAzvAycVeQs5O02oDpzPpkjl4Q9
	KywaqR7fQeXMnsWEKpZIQjBEELXg9lOT2MRFceW+4NiX00cX20SRva/MGs10OEBWjw==
X-Gm-Gg: ASbGnctEhU2Qm20CJ2zjhUfQpfEBwk0k9kBl+PCRrlcb54+iuartXFpz9gIa1yyd+fk
	mU22uCx3IuGS7WAc7ZPZsZj2xjPWwXDBhs51jmkSSeubGKzyWcLyo30KjKSSnR9wvTLY6aLBAfF
	yXILIgs3fyR4ovHp6vTMTweQSzLkywJ5K7r40XV9BLdw4QtH7GZjEpuscitP0wAS3HV7/m0fNki
	0vesbuL9/VuzTL2bNAQ+7lfiXJUbS5FSe8cwQB2Y2f/gSPCA46wruQ/jmV1Nevug8epyPbLNYl1
	dIYFbiSExctjKDXM+6YfB6eWg4ZlT9rY8L6+d6kyg97x8De8Ow7QnsknaRHQLN0LFOf0EYvKxwW
	f05CsNEbHGm/aRxW0gVmASFWDhw5nh7oUoGd1JJU5BWzMZTh+xTj+d7wznRjStwC/vlIkRN72zv
	AmFV4gRJefmE6HVAIjXHLh4cinv5Mff4/2QoYnIsKio2kihhHv87w4kfsx48QVuhXAsAHQbzr/5
	7Ng8J7c28TPXg==
X-Google-Smtp-Source: AGHT+IHyBbzlNQEcKfSUrnkmhf6XqfDO7FZaHtgzB8j2tVyHvVRDmDi6d9oSLMdSzbLw0yzyNo66VQ==
X-Received: by 2002:a17:906:f58c:b0:b73:5acd:4650 with SMTP id a640c23a62f3a-b735acd47e4mr79844166b.23.1763038686365;
        Thu, 13 Nov 2025 04:58:06 -0800 (PST)
Message-ID: <71334f75-d50b-43f4-909b-a27b288ea1aa@suse.com>
Date: Thu, 13 Nov 2025 13:58:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2] xen: make VMTRACE support optional
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 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>
References: <20251112202442.3879997-1-grygorii_strashko@epam.com>
 <a634c192-9ea3-46d9-a087-f0f48a5c2494@suse.com>
 <9c4294ec-906d-4607-8f7d-b5b1bb7e74f2@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: <9c4294ec-906d-4607-8f7d-b5b1bb7e74f2@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 13:53, Grygorii Strashko wrote:
> On 13.11.25 10:36, Jan Beulich wrote:
>> On 12.11.2025 21:24, Grygorii Strashko wrote:
>>> --- a/xen/arch/x86/hvm/vmx/vmcs.c
>>> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
>>> @@ -307,6 +307,7 @@ static int vmx_init_vmcs_config(bool bsp)
>>>       rdmsrl(MSR_IA32_VMX_MISC, _vmx_misc_cap);
>>>   
>>>       /* Check whether IPT is supported in VMX operation. */
>>> +#ifdef CONFIG_VMTRACE
>>>       if ( bsp )
>>>           vmtrace_available = cpu_has_proc_trace &&
>>>                               (_vmx_misc_cap & VMX_MISC_PROC_TRACE);
>>> @@ -317,6 +318,7 @@ static int vmx_init_vmcs_config(bool bsp)
>>>                  smp_processor_id());
>>>           return -EINVAL;
>>>       }
>>> +#endif
>>
>> Initially I was inclined to ask for use of IS_ENABLED() here, but that wouldn't
>> work since vmtrace_available isn't an lvalue when VMTRACE=n. Hence why generally
>> I think it is better to check the particular identifier in such cases, rather
>> than the original CONFIG_* (i.e. "#ifndef vmtrace_available" here). I'm not
>> going to insist though, as I expect opinions may differ on this matter.
> 
> Yep. assignment required ifdef wrapping.
> 
> "#ifndef vmtrace_available" will not work out of the box as there are
> 
> "if (vmtrace_available)" in code. So, can't just "not define"/undef "vmtrace_available".

I meant this just for the case here, though. Elsewhere you want to stick to
checking CONFIG_VMTRACE.

>>> @@ -735,6 +737,7 @@ static inline bool altp2m_vcpu_emulate_ve(struct vcpu *v)
>>>   bool altp2m_vcpu_emulate_ve(struct vcpu *v);
>>>   #endif /* CONFIG_ALTP2M */
>>>   
>>> +#ifdef CONFIG_VMTRACE
>>>   static inline int hvm_vmtrace_control(struct vcpu *v, bool enable, bool reset)
>>>   {
>>>       if ( hvm_funcs.vmtrace_control )
>>> @@ -769,13 +772,20 @@ static inline int hvm_vmtrace_get_option(
>>>   
>>>       return -EOPNOTSUPP;
>>>   }
>>> +#else
>>> +int hvm_vmtrace_output_position(struct vcpu *v, uint64_t *pos);
>>> +#endif
>>
>> There not being any definition for this declaration (regardless of configuration),
>> a comment might have been warranted here. 
> 
> /* Function declaration(s) here are used without definition(s) to make compiler
>     happy when VMTRACE=n while all call sites expected to be protected by ifdefs or
>     IS_ENABLED() guards, so compiler DCE will eliminate unused code and overall
>     build succeeds */
> 
> a little bit long :( ?

Yes. I'm sure you can shorten this quite a bit.

>> Furthermore, can't the stub further down
>> in the file now go away (addressing a Misra concern of it now being unused, as
>> HVM=n implies VMTRACE=n)? Possibly this applies to a few other stubs there as
>> well?
> 
> You are talking about HVM=n stubs here, right?

Yes. Are there any others there?

>>>   static inline int hvm_vmtrace_reset(struct vcpu *v)
>>>   {
>>> +#ifdef CONFIG_VMTRACE
>>>       if ( hvm_funcs.vmtrace_reset )
>>>           return alternative_call(hvm_funcs.vmtrace_reset, v);
>>>   
>>>       return -EOPNOTSUPP;
>>> +#else
>>> +    return 0;
>>> +#endif
>>>   }
>>
>> This doesn't look right - if absence of a hook results in -EOPNOTSUPP, so should
>> VMTRACE=n do. (There's no practical effect from this though, as - perhaps wrongly -
>> neither caller checks the return value.)
> 
> It might be a time to make it void() - what do you think?

Possibly (in a separate patch). I didn't check the call sites, though, i.e.
I can't exclude that the return value ought to be checked there instead.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 12:59:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 12:59:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161359.1489322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWvI-00061p-46; Thu, 13 Nov 2025 12:59:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161359.1489322; Thu, 13 Nov 2025 12:59:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWvI-00061i-04; Thu, 13 Nov 2025 12:59:36 +0000
Received: by outflank-mailman (input) for mailman id 1161359;
 Thu, 13 Nov 2025 12:59: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=25e8=5V=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vJWvF-00061b-T5
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 12:59:34 +0000
Received: from fout-a7-smtp.messagingengine.com
 (fout-a7-smtp.messagingengine.com [103.168.172.150])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 981963fd-c090-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 13:59:31 +0100 (CET)
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfout.phl.internal (Postfix) with ESMTP id 7C081EC0189;
 Thu, 13 Nov 2025 07:59:30 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-03.internal (MEProxy); Thu, 13 Nov 2025 07:59:30 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 13 Nov 2025 07:59: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: 981963fd-c090-11f0-980a-7dc792cee155
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=1763038770;
	 x=1763125170; bh=hHoYAsexxBgsBMwsQsAOsE84fAyostQb5ACfW3mxrLU=; b=
	eJ8p12p0rBz4VoEW2iYrtEWDMxOyPoAm+tL2PaXUk8DwnUU1OUcIsUBd0L5jm3i8
	Uhlx8yu5JEOG4N6knxzoMq2c0ueUiDgRPeHWvN6z3qPJJEFbg5dHp5X1hcHPpsEQ
	dhRh3+cjysmHTz9Rrj5wCwluLcWEPk6uAjEWj2SsHLKfH5N7Wy7CzPGGIe3DcJ6w
	qAADYbKlDy978OlvqE2PgXh6F5eHhmelwSTbW2oI59YxCE6xDHPhNrpfAnCTOZRk
	LfspNpTdHIKKHRORV03mno2RmKdbTeihHf77Gu/GKrNYppiPZFkdOpgtxr94QHuu
	gxAV4sFqMUTIHw3X6BfNSQ==
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=
	1763038770; x=1763125170; bh=hHoYAsexxBgsBMwsQsAOsE84fAyostQb5AC
	fW3mxrLU=; b=hq2eDrOQzyESxqnHwlD4zRKJeAe8P0aZRhl55YT+oudTTRqp0xP
	fXWc5bPcXsvHvxbcX34NVTLMTarV/hj8nEkghLNQuZMI96wso4DS6Zr1JpqFLgnz
	6rPcgzVzyq2ubAgQGFCyKDzTMUYsG+hgoQXXUl4lqSowl6VtvHKbhhq1l3kx8cN9
	ubOcOLwVDFZCYRqkaQIkCnvNFznCvruVZb8vmgNYzgPgMSI1jSExIvS9nDwXg4+O
	074Y9MB5X67iSVmgKeUnosZDiVsQ/dnxkzFzXSzCe2xGTImqKUUKDFF0UEwPNKK8
	2ZjvZt9SH/dSCVu8rJ+qVCdniM8zNQkuBTw==
X-ME-Sender: <xms:MdYVaYSkXGNT_hF9kKCWNzyyqmB_hB05q2BzN0GBfVA-6hZaukpSag>
    <xme:MdYVaYWEpN4aH-kotar4eWBMtATfca6Xu8GA62Va5Pb8mJalfkd9r7-4gGAAWv4Rc
    LGD_4FYXmqiNODtraLLlib0PnPwM2Glmlx-ngD8TaIbC-1hAqY>
X-ME-Received: <xmr:MdYVaZe_1aJyoARaIXk50Ln-2v6Gshhxx07QEQctJc_BcH0Pnsz2f7-RInm0CPEPbldPikllunAZ7PraXshhqaJbqMNPOe5gplw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvtdejtddtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiuceomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhih
    hnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepffelteevudevteeukeeggedt
    jeffheehvdeftedtvdehuddvveeuheeftedvfeejnecuffhomhgrihhnpegsrhhkrdhprg
    hgvgenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehm
    rghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprh
    gtphhtthhopeelpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehjsggvuhhlihgt
    hhesshhushgvrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgi
    gvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohepughpshhmihhthhesrghpvghrthhu
    shhsohhluhhtihhonhhsrdgtohhmpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrh
    efsegtihhtrhhigidrtghomhdprhgtphhtthhopehjuhhlihgvnhesgigvnhdrohhrghdp
    rhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrghdprhgtphhtth
    hopegrnhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohep
    mhhitghhrghlrdhorhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheprhhoghgvrhdrph
    gruhestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:MdYVacLy5P3pEL-sBkod5JRI2joj0ksba5btwqYcReYdEE6Eul3chw>
    <xmx:MdYVaWzY7VRqmfHizcYJ6baGOHkf4LR8ei9npNtySWldhxTi3aGQqA>
    <xmx:MdYVaSvk5xb32PprjPDD0xGK_aY8tsMZOQKNpJS9-lX4Nxd6-qcEFg>
    <xmx:MdYVaZDEZYL3xNdtAA7NQELetXj62dfbkkZuzI_JppusbsCoKZXgIg>
    <xmx:MtYVaUkMspTSbS_2sjsY3hm4XjR3Hd0IBqB4EcH0arE7XvBt1bE8-SKs>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 13 Nov 2025 13:59:26 +0100
From: Marek Marczykowski <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Daniel Smith <dpsmith@apertussolutions.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH 2/3] x86/EFI: replace ebmalloc()
Message-ID: <aRXWLrEGbSRdqDA7@mail-itl>
References: <bdbb2884-c2d2-415a-8891-a598d112e34c@suse.com>
 <452fdf1f-646a-4bb1-83ea-ac4c998a096b@suse.com>
 <aRXRtY10cFN38d02@mail-itl>
 <4391d560-870e-4010-b3bb-dee2935f9732@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="LdgHJWPD6TaL8UTc"
Content-Disposition: inline
In-Reply-To: <4391d560-870e-4010-b3bb-dee2935f9732@suse.com>


--LdgHJWPD6TaL8UTc
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 13 Nov 2025 13:59:26 +0100
From: Marek Marczykowski <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Daniel Smith <dpsmith@apertussolutions.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH 2/3] x86/EFI: replace ebmalloc()

On Thu, Nov 13, 2025 at 01:46:20PM +0100, Jan Beulich wrote:
> On 13.11.2025 13:40, Marek Marczykowski wrote:
> > On Thu, Nov 13, 2025 at 12:09:37PM +0100, Jan Beulich wrote:
> >> --- a/xen/arch/x86/include/asm/brk.h
> >> +++ b/xen/arch/x86/include/asm/brk.h
> >> @@ -2,6 +2,10 @@
> >> =20
> >>  #include <xen/types.h>
> >> =20
> >> +#define DEFINE_BRK(var, size) \
> >> +    static char __section(".bss..brk.page_aligned") __aligned(PAGE_SI=
ZE) \
> >> +        __used var ## _brk_[size]
> >=20
> > This chunk belongs to the previous patch I think.
>=20
> It could, but it's not used there yet (i.e. would count as dead code).

But in the current shape the linker script change in the first patch is
unused. IOW, I think adding .bss..brk.page_aligned to the linker script
should go together with DEFINE_BRK.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkV1i4ACgkQ24/THMrX
1yyFqwf+Kh372q/KfYXGkzUZ8yM4LrARjhaX3vcyk7ZY+p6YmvXo4HXs4mqClfVp
SkN7s2mx6Vx94ErvU+Rzu4uejuxcfePNiazQiYQzeeFrH/WJw8Jtz7sPLMVdS1tz
PpMFW8ZVEwGubj5ImhNoXTW4eCWLM+hH8KuJWjehtvDwN5vKe5ErTJff/t9pA5AV
7yDtrUJUgULfhWlhE/sWiskQwmdOSsZx2VkvzI/Gsn7B8sFo80eo+SViSjOPKCWJ
Q73u3ls8zO5/AgymZHu4tq+fn4glIFFlWSmU8iKiTv0yatIvAlOBJOaKQy7XkP/K
hoME354nDqPC4W6HiFup/nqbUTjPhg==
=M7Ny
-----END PGP SIGNATURE-----

--LdgHJWPD6TaL8UTc--


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:01:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:01:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161370.1489332 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWx0-0007Ym-D6; Thu, 13 Nov 2025 13:01:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161370.1489332; Thu, 13 Nov 2025 13:01:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWx0-0007Yf-A8; Thu, 13 Nov 2025 13:01:22 +0000
Received: by outflank-mailman (input) for mailman id 1161370;
 Thu, 13 Nov 2025 13:01: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=25e8=5V=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vJWwy-0007YW-Aa
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:01:20 +0000
Received: from fhigh-a2-smtp.messagingengine.com
 (fhigh-a2-smtp.messagingengine.com [103.168.172.153])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d640ec70-c090-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 14:01:15 +0100 (CET)
Received: from phl-compute-11.internal (phl-compute-11.internal [10.202.2.51])
 by mailfhigh.phl.internal (Postfix) with ESMTP id E554A14000B5;
 Thu, 13 Nov 2025 08:01:14 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-11.internal (MEProxy); Thu, 13 Nov 2025 08:01:14 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 13 Nov 2025 08:01: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: d640ec70-c090-11f0-980a-7dc792cee155
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=1763038874;
	 x=1763125274; bh=aaWjsFBt37Ub2GG+uc5FO7+4g8aYl5aEW8CFoEC7ZKo=; b=
	cGyoOsr1QUXIqRxTu8JNF2GoFpxs8jJN+nGfQm8DynyMcw8d4M2J3an6qMPFY9WM
	L6DSRa8ioTKyQJ6ZQqv01XbmRjUVqmJC9RDS8XI3xaAcMPmJV8QtYkj/LgkirGQI
	UTnV9MfJnXp1xPvpWovwPisLaZMlsje1MIL6mAPopkWXmIpCa9X8ONNS8GO6b2Ts
	ZcRZG82u2Jxx5I/m10+41/2NGc8Jzf8pNhk0aAO09TfOlkfwXakAnuMd5GIgzibP
	INvBGfI8HeZIrlRJZcU7aHJ1l3YVLd6Wy+B0Tc8eyO+EUibNceK+0DyuHY2JTxCx
	ifmX697Lj4SEfhxAabyhlA==
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=
	1763038874; x=1763125274; bh=aaWjsFBt37Ub2GG+uc5FO7+4g8aYl5aEW8C
	FoEC7ZKo=; b=XPImjfVd32GOkhQ5o7YJ5pCmPfol7928UrrQF+ppab2IDAd9TOQ
	9pnJgfbZZXlpOQepWlLCaREdxALipyl9sJCxA/dlW+kDM/OD9dqOlhFVF5TRREFm
	bVOATjxlcuu6mwKMgav8cSK9UVIlLrn/yFWdkCpJTWYWb5LtsAme/C+NEAKo7QHC
	2Oo6iLNSFvHe6VGpUm4GQcyzRbbhZrRktJAgsSWotHwrGSdRFS+j9EIHidlGmjci
	/KmdDyYzw4FyiJsivMT5QIO/WjZDM2La3byAzFxZPyAHD+Cydkrr67CYBX8sZyli
	HaDzGQbRIgAKiVbUDIekZtQeakyueUeywlA==
X-ME-Sender: <xms:mtYVaYdl6wuMSbCiJTxo5DYL8fxI1TQ-ZCnqAQdKi6Y9Y5iN9ANZdA>
    <xme:mtYVaZR_TsmOyym8HwPQZkj7WWu-Fd0sgT-av_AUAL8ML_0MfGXXGs7M-RKdDVYiS
    6FO1eLLvZRz9HFkHKlewYWm9ifNd3XOB2fX3es9_ly1fzO7vS0>
X-ME-Received: <xmr:mtYVafsHCMU5NIinDQCMf7Mfk4D-WNJ9QaYEV6uGXKOs0c3Ra2-cP8Ne3rueWIvk4YacqmTxXQJZe-dcNfOpN9ejxMfaQCUS4UM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvtdejtdduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiuceomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhih
    hnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfekuddtffettefhieeuheff
    keeuffelvdffuddtteetledtveekfeekleehjefgnecuvehluhhsthgvrhfuihiivgeptd
    enucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgv
    thhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepkedpmhhouggvpehsmhhtph
    houhhtpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomhdprhgtphhtthho
    peigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtph
    htthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthht
    ohepjhhulhhivghnseigvghnrdhorhhgpdhrtghpthhtohepshhsthgrsggvlhhlihhnih
    eskhgvrhhnvghlrdhorhhgpdhrtghpthhtoheprghnthhhohhnhidrphgvrhgrrhgusehv
    rghtvghsrdhtvggthhdprhgtphhtthhopehmihgthhgrlhdrohhriigvlhesrghmugdrtg
    homhdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
X-ME-Proxy: <xmx:mtYVaacF5JVFAHvr7RUqPBAe47TCRkMmA1THOHQfRpQmwSOsbzyp7Q>
    <xmx:mtYVaZYAXd-aNMimS246v1TuZywcDI4_TZ8M7yjXgkrUPKt7YWYRtQ>
    <xmx:mtYVacYBICiZDxiFU-d44XEUPsIO3n29ijNJKZceXeVRMgPTfuludw>
    <xmx:mtYVaeL1g7DnKVwHn8VY-JL0OzQLsa3AYXpLU58XbsmtY_Qp69P8mQ>
    <xmx:mtYVaermM7-I0y-8hM3uOgR-K6JBNERQ9rIIaG-dCB4ht1mHByIo0JWY>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 13 Nov 2025 14:01:10 +0100
From: Marek Marczykowski <marmarek@invisiblethingslab.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>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH 3/3] xhci-dbc: use brk_alloc()
Message-ID: <aRXWl1cVvjsDnWBP@mail-itl>
References: <bdbb2884-c2d2-415a-8891-a598d112e34c@suse.com>
 <bec55a88-00f3-4961-b1dc-5b9e38d94a32@suse.com>
 <aRXRdU8YusudRmxf@mail-itl>
 <0ed20aaa-2625-4555-8fab-0e15fea5e71c@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="/UcRZ6SxJa3EZ8K7"
Content-Disposition: inline
In-Reply-To: <0ed20aaa-2625-4555-8fab-0e15fea5e71c@suse.com>


--/UcRZ6SxJa3EZ8K7
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 13 Nov 2025 14:01:10 +0100
From: Marek Marczykowski <marmarek@invisiblethingslab.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>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH 3/3] xhci-dbc: use brk_alloc()

On Thu, Nov 13, 2025 at 01:50:28PM +0100, Jan Beulich wrote:
> On 13.11.2025 13:39, Marek Marczykowski wrote:
> > On Thu, Nov 13, 2025 at 12:10:16PM +0100, Jan Beulich wrote:
> >> --- a/xen/drivers/char/xhci-dbc.c
> >> +++ b/xen/drivers/char/xhci-dbc.c
> >> @@ -27,6 +27,8 @@
> >>  #include <xen/serial.h>
> >>  #include <xen/timer.h>
> >>  #include <xen/types.h>
> >> +
> >> +#include <asm/brk.h>
> >>  #include <asm/fixmap.h>
> >>  #include <asm/io.h>
> >>  #include <asm/string.h>
> >> @@ -1321,7 +1323,7 @@ static struct uart_driver dbc_uart_drive
> >>  };
> >> =20
> >>  /* Those are accessed via DMA. */
> >> -struct dbc_dma_bufs {
> >> +struct __aligned(PAGE_SIZE) dbc_dma_bufs {
> >>      struct xhci_trb evt_trb[DBC_TRB_RING_CAP];
> >>      struct xhci_trb out_trb[DBC_TRB_RING_CAP];
> >>      struct xhci_trb in_trb[DBC_TRB_RING_CAP];
> >> @@ -1335,8 +1337,7 @@ struct dbc_dma_bufs {
> >>       * DMA-reachable by the USB controller.
> >>       */
> >>  };
> >> -static struct dbc_dma_bufs __section(".bss.page_aligned") __aligned(P=
AGE_SIZE)
> >> -    dbc_dma_bufs;
> >> +DEFINE_BRK(xhci, sizeof(struct dbc_dma_bufs));
> >=20
> > I think with this change (or rather with using brk_alloc() below), the
> > structure wants to be padded up to the page size, to avoid putting
> > anything else on the same page (see comment just outside of context
> > above).
>=20
> Are you sure? My understanding is that sizeof(xyz) is always evenly divis=
ible by
> alignof(xyz). Hence such padding doesn't need making explicit. (And yes, =
I did
> see that comment while making the change.)

Ok, then indeed the added (or rather moved) __aligned(PAGE_SIZE) is enough.

Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>

> >> @@ -1413,24 +1414,33 @@ void __init xhci_dbc_uart_init(void)
> >>  {
> >>      struct dbc_uart *uart =3D &dbc_uart;
> >>      struct dbc *dbc =3D &uart->dbc;
> >> +    struct dbc_dma_bufs *dma_bufs;
> >> =20
> >>      if ( !dbc->enable )
> >>          return;
> >> =20
> >> -    dbc->dbc_ctx =3D &dbc_dma_bufs.ctx;
> >> -    dbc->dbc_erst =3D &dbc_dma_bufs.erst;
> >> -    dbc->dbc_ering.trb =3D dbc_dma_bufs.evt_trb;
> >> -    dbc->dbc_oring.trb =3D dbc_dma_bufs.out_trb;
> >> -    dbc->dbc_iring.trb =3D dbc_dma_bufs.in_trb;
> >> -    dbc->dbc_owork.buf =3D dbc_dma_bufs.out_wrk_buf;
> >> -    dbc->dbc_iwork.buf =3D dbc_dma_bufs.in_wrk_buf;
> >> -    dbc->dbc_str =3D dbc_dma_bufs.str_buf;
> >> +    dma_bufs =3D brk_alloc(sizeof(*dma_bufs));
> >> +    if ( !dma_bufs )
> >> +    {
> >> +        dbc->enable =3D false;
> >> +        printk(XENLOG_ERR "XHCI: not enough BRK space available\n");
> >> +        return;
> >> +    }
> >> +
> >> +    dbc->dbc_ctx =3D &dma_bufs->ctx;
> >> +    dbc->dbc_erst =3D &dma_bufs->erst;
> >> +    dbc->dbc_ering.trb =3D dma_bufs->evt_trb;
> >> +    dbc->dbc_oring.trb =3D dma_bufs->out_trb;
> >> +    dbc->dbc_iring.trb =3D dma_bufs->in_trb;
> >> +    dbc->dbc_owork.buf =3D dma_bufs->out_wrk_buf;
> >> +    dbc->dbc_iwork.buf =3D dma_bufs->in_wrk_buf;
> >> +    dbc->dbc_str =3D dma_bufs->str_buf;
> >> =20
> >>      if ( dbc_open(dbc) )
> >>      {
> >>          iommu_add_extra_reserved_device_memory(
> >> -                PFN_DOWN(virt_to_maddr(&dbc_dma_bufs)),
> >> -                PFN_UP(sizeof(dbc_dma_bufs)),
> >> +                PFN_DOWN(virt_to_maddr(dma_bufs)),
> >> +                PFN_DOWN(sizeof(*dma_bufs)),
> >=20
> > Is that really correct? But with padding (see earlier comment) it
> > shouldn't really matter.
>=20
> I think this is addressed by the reply further up as well.
>=20
> Jan

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkV1pcACgkQ24/THMrX
1yz9jQf8C4Zo5l57mM8In2zhZnW0/jRU86xRQbuGFli+O7MbaPJQ28RuRmEU/ION
cMhUCgLeaTnR+9ebJzfwhN09WMljB8VvqX/tcNjOIGhO8NLDGbSKzI4KTCbuXfiv
BiFB/HM+9nFakHBfFQOrRTz4PTU/Y4fMbBwpVa1cKkbv9qfMIWX/72mVIH5mjZ1B
gbVu9gYlYFVVisCz+uJcj0cyBc5l3YFb/ZuFU50/0xr/m3CfCc6rRDTGz4jTE6bf
fEHDVysIrjoX4wtHycCO7oPDTwP3ixP4ekKRiLzaAYUrUiIB2DRW0j1gsdIQiiHv
FGvnh8E3Dtk18mcqmHBujDPy9aUuRg==
=6rLb
-----END PGP SIGNATURE-----

--/UcRZ6SxJa3EZ8K7--


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:01:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:01:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161374.1489342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWxS-0007yF-LA; Thu, 13 Nov 2025 13:01:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161374.1489342; Thu, 13 Nov 2025 13:01:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWxS-0007y8-HV; Thu, 13 Nov 2025 13:01:50 +0000
Received: by outflank-mailman (input) for mailman id 1161374;
 Thu, 13 Nov 2025 13:01: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=25e8=5V=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vJWxS-0007t1-5e
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:01:50 +0000
Received: from fhigh-a2-smtp.messagingengine.com
 (fhigh-a2-smtp.messagingengine.com [103.168.172.153])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ea68abf2-c090-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 14:01:49 +0100 (CET)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfhigh.phl.internal (Postfix) with ESMTP id B883E1400176;
 Thu, 13 Nov 2025 08:01:48 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Thu, 13 Nov 2025 08:01:48 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 13 Nov 2025 08: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: ea68abf2-c090-11f0-9d18-b5c5bf9af7f9
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=1763038908;
	 x=1763125308; bh=EpyucTV9893hEPcqC3Vw8drGs9gW+neBOWqOSSthy3A=; b=
	J5p6snExtqVZ/XK74qjBAsMpTKFua7D4Geqxjb88HoVsEVeXdN+HvylecZB5XLu4
	1CT/kkNSdCnHxk6yfjjKUh/G55o/OH7g3mAmO3x9ErTarbHH5Rguym/Lq5PHGInF
	79QznRoOdEydWciRGHOAvvPxLh6neJMyPnEE0c2sX3eS2aXLG6Z+1OePF7F+YX6D
	+jvxEN4apRP/x/d09gCKOE5z+arfRZsEMxrVsUXGXjZN5aLxEvqyjkNzWs/QcBF4
	k2K3M5tpyinqGmF/PHJhUthZYVFvM7OZIgCaW9O8+cpDPTStrVt+Iy2uObx0r6hP
	hCxC919qh1ZK0YeoDNVzpA==
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=
	1763038908; x=1763125308; bh=EpyucTV9893hEPcqC3Vw8drGs9gW+neBOWq
	OSSthy3A=; b=ggKQ5tQk8XPipe29jr/LRPRXcvgZMv83cjOghewxLFb9eb/X9Fu
	xPsgQgCgSDQ9mnYgN4+gt63vkH7scrlzhGa6F/2L/vV+dNKWjdZGyRqJ6AAdXxUj
	xE53lHLhXQDmE/7JJhFikM0SbmigzP5AIkrm0PP7D2f8435VaKP1ug7SC5gwgZt4
	2wcxoLq1aceFdysaiUiIFHzsm8codItG5ZmBG/NpnKXOtAfgcpOIGLxKk6jw/8gf
	re4zrQb38mHjaoq/a3snzJU0030lpAmqajbVs0ifksfVgb8gvjv2GMx8GUuDcCsL
	Gj16ql0a56m0w5nNyk6GcUpayIWl4ZCJGEg==
X-ME-Sender: <xms:vNYVafjnioHRTiU2JbIy2SQJF7e9HhVrGEmbsicGmfAzUkHkJSz_VA>
    <xme:vNYVael04Q-_5IGtDvCsE0trJM_fpBTStHbwJwf-a96UrqG0bTRm_o2HKUWYcvzo-
    0nkIlv_ITxLE7T2CoFT7Q6wMSnl7_ymXQYG_7hBgMNWeqiftg>
X-ME-Received: <xmr:vNYVaSvy8a3h2EyeCW34rtlfrUnBKaPZvgH8dxLgIkbhgkGThX0aNBvZuAEMnMtu1mxsX07ZSwxL3mfxbtSNnZzSwMkiqYepiug>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvtdejtdduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtroertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiuceomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhih
    hnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepveeufeegvddvieejhfefkefh
    teekfeehhffgveelveffueegvdegffefieefteffnecuvehluhhsthgvrhfuihiivgeptd
    enucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgv
    thhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepledpmhhouggvpehsmhhtph
    houhhtpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomhdprhgtphhtthho
    peigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtph
    htthhopeguphhsmhhithhhsegrphgvrhhtuhhsshholhhuthhiohhnshdrtghomhdprhgt
    phhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpth
    htohepjhhulhhivghnseigvghnrdhorhhgpdhrtghpthhtohepshhsthgrsggvlhhlihhn
    iheskhgvrhhnvghlrdhorhhgpdhrtghpthhtoheprghnthhhohhnhidrphgvrhgrrhguse
    hvrghtvghsrdhtvggthhdprhgtphhtthhopehmihgthhgrlhdrohhriigvlhesrghmugdr
    tghomhdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
X-ME-Proxy: <xmx:vNYVacZzxwZgU-ImFR8F002Tjku8VHfi5QJSJSxAS8AYj7xeapOCqQ>
    <xmx:vNYVaSBf-ASQrFYxjwv5ifG871w8Blw0KYhadfgsm-0lvQGqrlT2Xg>
    <xmx:vNYVac_2WMbihffGmYVrxWJ8PLk9eK4Syy6rLFZ_GgdcnNSMjb-ogg>
    <xmx:vNYVaWQMejPTHfWc1HJBOdXX1CRqiWy3J9CfSYRhzexKwsUE5HiJoA>
    <xmx:vNYVae2mwXewD4Pc4WzVpingTotWyb9zDN7_RA_IYSXp6STPMTnPieuv>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 13 Nov 2025 14:01:44 +0100
From: Marek Marczykowski <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Daniel Smith <dpsmith@apertussolutions.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH 2/3] x86/EFI: replace ebmalloc()
Message-ID: <aRXWucYrjiejVSKW@mail-itl>
References: <bdbb2884-c2d2-415a-8891-a598d112e34c@suse.com>
 <452fdf1f-646a-4bb1-83ea-ac4c998a096b@suse.com>
 <aRXRtY10cFN38d02@mail-itl>
 <d027f21e-f2cc-4c63-9ebd-8f563d72c993@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="8WlVeWfNBAhEVcW2"
Content-Disposition: inline
In-Reply-To: <d027f21e-f2cc-4c63-9ebd-8f563d72c993@suse.com>


--8WlVeWfNBAhEVcW2
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 13 Nov 2025 14:01:44 +0100
From: Marek Marczykowski <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Daniel Smith <dpsmith@apertussolutions.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH 2/3] x86/EFI: replace ebmalloc()

On Thu, Nov 13, 2025 at 01:53:40PM +0100, Jan Beulich wrote:
> On 13.11.2025 13:40, Marek Marczykowski wrote:
> > On Thu, Nov 13, 2025 at 12:09:37PM +0100, Jan Beulich wrote:
> >> Use the new brk_alloc() instead, with ebmalloc() merely being a thin
> >> wrapper.
> >>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >> ---
> >> I'm not quite certain whether we ought to permit non-page-granular
> >> reservations. The in-memory image being somewhat larger due to possibly
> >> excessive padding isn't really a big problem, I think.
> >=20
> > My grep says ebmalloc is used in just two places:
> > 1. For efi_memmap (via efi_arch_allocate_mmap_buffer())
> > 2. For various cmdline options and module names (via aplace_string())
> >=20
> > The second one is probably undesirable to allocate full page for each
> > one. On the other hand, the current approach (putting small allocations
> > at the same page as an earlier page-aligned one) also has its issues -
> > see comments on 3/3 patch.
>=20
> Imo if such sharing of a page is unwanted, then it's the side caring about
> the non-sharing which ought to request an exact multiple of pages. Wasting
> space due to doing this in the BRK implementation is undesirable.

Makes sense.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkV1rkACgkQ24/THMrX
1yx4Hwf/Xg7tXPN3yQhVIO4k38XpYMaf8pqcs++stYVlJCyY7q6JeF/I/q1Y6Aj1
zdysVMXoWOMuw5UGDuL9+C7hk4HihXigY9NnriO8b8xWcwnPR44kpDxmL6h3+Vg4
bcFk/8YtfdBlQ1pB7i+T0nHINstBJETkt+w/sNKjKSzlJlGLGYTJy9nfEdqf6nk9
aNTf8XnbRuKuIVfQgmIi2TUiXazChl1hwoLUjxYJhBsLXoxmE9IpTto5JDpehImN
2WquPbo11F1nXWhgbf7SYKoBIEZJxIPnV5aZx0ihyf81WExKuV7XMbH8bTsB4WL8
uNK0h8y4R7VRNGvSAkbZqG9NxVKWEA==
=EeZ3
-----END PGP SIGNATURE-----

--8WlVeWfNBAhEVcW2--


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:02:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:02:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161382.1489352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWxe-0008Sd-TG; Thu, 13 Nov 2025 13:02:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161382.1489352; Thu, 13 Nov 2025 13:02: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 1vJWxe-0008SU-Oo; Thu, 13 Nov 2025 13:02:02 +0000
Received: by outflank-mailman (input) for mailman id 1161382;
 Thu, 13 Nov 2025 13:02: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=kirI=5V=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vJWxd-0008C9-PB
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:02:01 +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 f11174ba-c090-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 14:02:00 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-42b3c965cc4so408287f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 05:02:00 -0800 (PST)
Received: from localhost.localdomain (host-78-149-11-196.as13285.net.
 [78.149.11.196]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42b53e7b074sm3670314f8f.7.2025.11.13.05.01.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 13 Nov 2025 05:01: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: f11174ba-c090-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1763038919; x=1763643719; 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=+b345aXZDFbH/2J6TGfuC9yXz/lG8GWyVVTrvhz6VIg=;
        b=FnXNzqtKu9NR6HNa7vSOYszzCu5g5Wk98YNJwtADkUozCYkkSnBPvqmA1ehTjDoAhr
         vzW+SkvkWOzRvEkjcz0dCuLMlp7rPBB9szxjS+I9ND0TWxdyrqGjkMnillf2XDdtc60b
         u77RWb91H1ef+nSqbzMPB3oBzKAfpUlpDqluk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763038919; x=1763643719;
        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=+b345aXZDFbH/2J6TGfuC9yXz/lG8GWyVVTrvhz6VIg=;
        b=olsB39mfBbkI7Mcm0UGqzuz1t6fJJzJ4KfnQ9m1xGdo58cRmbA00iO3oNCmzbj5/i5
         Vw5uPIdwMkMuH3zABd8Wr0JTwY57Dwet8mHO/k8j7uKdTmsY1JSnCJRKaRtYM7qUBRr2
         Ik2bp01+KGbMWW+TfutGgnuFaQ+cpTSyRwX95Y1XEVMAY3Wgl+NAl910LIJ/Jv0vGgDS
         uObPmbW08svAOpdN15EqnN6LtwOBQ0EtXQv55RNxo2Q0c09pJ5W4W1fAbgmP1wfjQh0/
         KOvEvWFXaNbErjh3Sm75UJ1s9nrDelOBapgzYw0+Aj+icUlD+GPtfDzfct5w5XdjR2jH
         bOvA==
X-Gm-Message-State: AOJu0YwgTNE4CSO6PvzbaE8Q/qL9V2mJ+C+Ucvv0zBJFNbPQDRxwvBs0
	MmtdAJH+w4rSsZfPWRhH0ZAAikjbjesjYeijxPiDTxGsY4SB138RXLfsSIxdNn/BNNWxN/5kBnK
	jKWIxAME=
X-Gm-Gg: ASbGncv0cUec9NsWcqepDF7SZA8vf7AF6T35xVZdreVPO27+C1vVNVFZRklssMGrQ/j
	Oi3oqMR9XI2ZzkdzgMSXpdUVKd1nXPLxE94jyoqkP8p56MzIzLLQwqqKvbqIeAg/zH4bfNho5sh
	XuYbv4SZ+pziKMh3dj6XP6sIgJFiSavfQvcXT0fTOAFmO1eRCFfK5ciZQdZaQ4ngptOp7ZRKjN4
	b3zBDEE5Ik5Pg5XKO4Doa06ocPxo5rC+L24aGWwDqrDWW/gJrwxIPq9ZZuKh7x2i71KCDS8O2js
	jy3J1Pds69kkpG/JlFGcygMF6xEURbP5diFtvqXvh1d7OaMyARRkFH5tQbSvPR0HNNeu+gh4958
	Qf0GQQGjhB63G6qKqWMTVjgdkKdZkzQ6GpMovYlv/ggoTmLvURSu5Z/6eq6wcBSDjhvduUynXBI
	I6JIj+AIm+kTrsOIXMjskhuTn0PV/VKKRtRFLD5ps/78U2imLTittOsvCJ7DW5nw==
X-Google-Smtp-Source: AGHT+IFvzXZuI4IsAmAWPZ3DCwhXxOsqdF2buk8qDMkdSeNFk+fARg78jxE8rRXE2CMZGtN+z/XGfA==
X-Received: by 2002:a05:6000:2884:b0:429:9272:c1be with SMTP id ffacd0b85a97d-42b527d549cmr2866506f8f.8.1763038919165;
        Thu, 13 Nov 2025 05:01: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>
Subject: [PATCH for-4.20] mktarball: Drop double-processing of the archive
Date: Thu, 13 Nov 2025 13:01:54 +0000
Message-Id: <20251113130154.220139-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This is a partial backport of commit 63ebd0e9649e ("releases: use newer
compression methods for tarballs"), but keeping gz as the only compression
method.

In addition to efficiency, this causes the tarball to use root/root ownership,
rather than leak whomever produced the tarball.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>

I've made 4.20.2 using this, and the results look to be correct, and match
4.20.1 other than the ownership adjustment.

For 4.19 and earlier, I'm considering just passing --owner and --group to the
final tar invocation.  Thoughts?
---
 tools/misc/mktarball | 17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)

diff --git a/tools/misc/mktarball b/tools/misc/mktarball
index 7f9b61da4368..2f574f9bf0ee 100755
--- a/tools/misc/mktarball
+++ b/tools/misc/mktarball
@@ -5,14 +5,6 @@
 # Takes 2 arguments, the path to the dist directory and the version
 set -ex
 
-function git_archive_into {
-    mkdir -p "$2"
-
-    git --git-dir="$1"/.git \
-	archive --format=tar HEAD | \
-	tar Cxf "$2" -
-}
-
 if [[ -z "$1" || -z "$2" ]] ; then
   echo "usage: $0 path-to-XEN_ROOT xen-version"
   exit 1
@@ -21,14 +13,15 @@ fi
 xen_root="$1"
 desc="$2"
 
-tdir="$xen_root/dist/tmp.src-tarball"
+tdir="$xen_root/dist"
 
-rm -rf $tdir
+rm -f $tdir/xen-$desc.tar*
 
 mkdir -p $tdir
 
-git_archive_into $xen_root $tdir/xen-$desc
+git --git-dir="$xen_root/.git" archive --format=tar HEAD --prefix=xen-$desc/ \
+    >"$tdir/xen-$desc.tar"
 
-GZIP=-9v tar cz -f $xen_root/dist/xen-$desc.tar.gz -C $tdir xen-$desc
+gzip -9k "$tdir/xen-$desc.tar"
 
 echo "Source tarball in $xen_root/dist/xen-$desc.tar.gz"

base-commit: 03299bb3ec817f47a608dc6080afc32453627fb4
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:02:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:02:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161406.1489363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWyP-0000wb-9c; Thu, 13 Nov 2025 13:02:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161406.1489363; Thu, 13 Nov 2025 13:02:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJWyP-0000wU-5K; Thu, 13 Nov 2025 13:02:49 +0000
Received: by outflank-mailman (input) for mailman id 1161406;
 Thu, 13 Nov 2025 13:02:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJWyO-0007t1-9R
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:02:48 +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 0d5cee99-c091-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 14:02:47 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b72db05e50fso137144966b.0
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 05:02: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
 a640c23a62f3a-b734fad456bsm162385366b.21.2025.11.13.05.02.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 05:02: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: 0d5cee99-c091-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763038967; x=1763643767; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ETWY528pqlBy23k7ipqABn7uFpS88F7MUgzDNXFgrcU=;
        b=TpGcaQxfCNE8KHM1Zov6lB8R6mIZYSw1PoQO2qK0hvLvyvbYmy/1JYFw2yGJKn8uQA
         RFIf8UaIQ/Zp4fWivtKu1trJSJEufxge0r1QgclfiWEyt6sLEqeUReBZIHxPOWV0t3PB
         xJNaIfWNG3FWqLC6f43k5dbhe6kcYVI6KkLoTK/m2fSHjafghOXsgmNNR+rq0wLEEKYo
         EaGO/zMWJNAo0qI57KMVQTt3o2tIEMdv2AwpAhG0suRYxkxCBPcS5iMA9KyO4LYr5T4k
         C15EIx62xsuT14LDwaRqHElZ5ZyhYAABwS+6iuPxHeyLXecsAeqLK/WNHhAUe61UOlC9
         GBBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763038967; x=1763643767;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ETWY528pqlBy23k7ipqABn7uFpS88F7MUgzDNXFgrcU=;
        b=EiRF827OlREKpcrkmtzwy+RkFt7/HGtz0icmTwOS1EHQuEceqt5dDfJtKltKnpKHNq
         ajwKCJAqRD1ecTGkBO5hFpMzYDwGZ/xVSbs2DGJzn8zHAEnEu48XHjhzWiGxmMNzNg/M
         zdZvQhRc3ufKppERqfT14XMSWI6sED3hdTnWWfJo6SVCXIhcw2mvcAROFmxamHttY4kX
         3rHjKe8p0bYNk29tAb1PzzV42USeOPy59A6suDM6DFxuHFOUfkyyjmuVtry5Mc4e0mgM
         IXBZGcMyZuZvbQrW5Wok9AIzAZ1jMhmQgjpZB3LpdNaU2jsoKb9YIPjd/N71AVYsj70i
         CxIQ==
X-Forwarded-Encrypted: i=1; AJvYcCVPHirnzsaa8eDW3kNTTgU7mtaZoK29WHibLDfNNXaqvBTa/xwK059vS4CjzU/f/OgCo+H0Q73HPR8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxrrtKhyfIMNTP10fE6uirPwcdtv7EQvtWa0iR+UhGVTCA6LWzv
	zDAHDxPFEBMwDVSR77vb/ac4WXQhuKsrKNwUArN+FwYZ+0OiqWa4ejCgXtF/IA93PA==
X-Gm-Gg: ASbGncsoa5tqOmUfLsMCaE3RgaOWO6cZBGvmCBbKadJ7WRxGwkGqyg6UBqmXab8Hx3o
	IHdDmGBcYcTGx6vHUMy0iD43hkkPEwjUB/C/389N/l+gh0AP8iD/3mjv8FR0impBie0qn0I51z9
	gI2exob3PNeNKgS0czA3H7DDMHBwiIjOgp8vUfJG20cjAHjSqQMi82EkrTJWiKvgrJupGGlTyAA
	egDci6hih0IRiVr0BWtz949/i9H0eFgwpzuZ9edxlTCI496IMux/Q/tydL407fl+g6gybr0RrjI
	q6njhYkEitITXi/znUhMbb/iUR0D4s9eyn4UsaUcDKEwfjGGZY2uEkKoyl6NjQ+geuM8Dt44hx/
	qGYpTWFwtc/u85PjyvVbVp8P4vraunqiIAIhV8spgB7nwq/gH13zQT9QDyXSj+PJIyOTWI1eOOp
	UDwaTss1y4prh/001Lk2NUzBmHZdZWuGOOTehrVrRbl+36xwW3vWEtq8bnLZiNmi+ggUpKJ7ME+
	TM=
X-Google-Smtp-Source: AGHT+IHigfWs3Z+ML/0r+JwPR7g/d4hkj7XNpo8Zt28Szg5Fih/LGkjuHo18wfoOXZOYMUQ6kTFcwg==
X-Received: by 2002:a17:906:794e:b0:b46:8bad:6972 with SMTP id a640c23a62f3a-b7331aabdaemr683049466b.38.1763038966769;
        Thu, 13 Nov 2025 05:02:46 -0800 (PST)
Message-ID: <70c36cf7-de4e-418a-921c-fe1268178194@suse.com>
Date: Thu, 13 Nov 2025 14:02:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7] xen: Strip xen.efi by default
To: Frediano Ziglio <frediano.ziglio@citrix.com>
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Frediano Ziglio <freddy77@gmail.com>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@lists.xenproject.org
References: <20251113124945.25343-1-frediano.ziglio@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: <20251113124945.25343-1-frediano.ziglio@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 13:49, Frediano Ziglio wrote:
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -65,6 +65,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>        for hypervisor mode.
>  
>  ### Removed
> + - The install-time environment variable INSTALL_EFI_STRIP is no longer
> +   supported, xen.efi will is now always being stripped.
> +
>   - On x86:
>     - GNTTABOP_cache_flush: it's unused on x86 and the implementation is
>       broken.

That's the wrong "Removed" section, though. Moving it where you put it would
be part of backporting (to 4.21) effort.

Plus it should go under "On x86".

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:07:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:07:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161421.1489371 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJX3J-0002G9-Qr; Thu, 13 Nov 2025 13:07:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161421.1489371; Thu, 13 Nov 2025 13:07: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 1vJX3J-0002G2-Nx; Thu, 13 Nov 2025 13:07:53 +0000
Received: by outflank-mailman (input) for mailman id 1161421;
 Thu, 13 Nov 2025 13:07: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=xbc0=5V=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJX3I-0002FU-8n
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:07:52 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c241e3f5-c091-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 14:07:51 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by VI1PR03MB6272.eurprd03.prod.outlook.com (2603:10a6:800:134::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Thu, 13 Nov
 2025 13:07:47 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 13:07: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: c241e3f5-c091-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=u0QngciImuDokVHLlADAk/d69qypSWbz/L1j6ddfIYAzgP1oQvqd6kecXeWFsFM8uCZ6xl4uvY1GCiNt9Ms+z+PB97us1ZXD+gFOTmh79pyfS3E28UO36bzfGBQcoTp+MXsn5MyHJwuuh0LYLL9/617UOcSbnWQIMmvAsdtUV8AqzEjDCnil1SXV36693u1FL0qcCu7Y0nnSs3H3A71Q43nADdnAF53ioqlXkNNZLxQW95tRUgzAviuKzSBENiyFM85HnCdXwLiVRihRQy/0jjb1Xna2lRXeJVXQdeBLLHNduzQcqLSv4/GzyarMpwKqol5R3RO3iS0aDuzs9dZuaQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wzy8FownzoRAvU99db6E6GX1e7LSO8GhdaElH9T9Me8=;
 b=aqIrAMv8mGb4P5j5Iirmbl93XYGlIjjMgc5Nm6DKzvBrjVcZxVK/tClf1e+h+mxSGITatR1I/9DSM7cFlANAP7zs8u2lpXDTKvguIvF1MiUh1VYXvoTleinaBQibTSzTPOAGiujf2Z2fDysh1sD+WOxAlBjvYVqYsVuuCPE5oeIq5P1Jp01o2OdsSSyQNQUn1bcnzBakwhvqoU1WXkAhNTjyF1o5ThLGdgtVY6BrfQEiRczZ9kGynX+GL7naeB0wheIIG/gCv649+RvdVaoSHGiFzffoovdIn4ZgvoUjoxJDB4vIRcz9F917hdA9TdfmWCX1PEu/Q0GaBeUt3d1EXQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wzy8FownzoRAvU99db6E6GX1e7LSO8GhdaElH9T9Me8=;
 b=saOQeYDUhCTQfa9MYHx81VROOP1nKShTk/Hsss/OJs7LoxBeAqifPqoRrByRAGpIplDzsZZk0jM+fu7nq+/Y8Ru1GPKzaiKDn8tMu8lXSmPKSI3VBVQcIl5pQCJcfUYdrZqNvPIPHWCbIaUOKW0r2gBzcmMXmqL8w0q34AnNS8FDjxrwxroEiPVp99jffmNQfi+tf91tsHodpkFW3VqSt6y5ZtNmA/rgkne7K+tLRUGGt/DqkkfjfuVdtVS2MjXe/NvMpYhzkuPpxUT9ezA30l9FQ5Qs+xSy+fYgydiZsjSTzBJM6fDo8Uk7KA9nuJbzSgBH0O1waTPoA1azhYJt5A==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <f929a081-4f8a-489f-935c-4ed0656095f0@epam.com>
Date: Thu, 13 Nov 2025 15:07:45 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 2/5] x86: hvm: compat: introduce
 vcpu_is_hcall_compat() helper
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <20251111175413.3540690-3-grygorii_strashko@epam.com>
 <da0d003e-a593-4b40-ac79-c889a6be683f@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <da0d003e-a593-4b40-ac79-c889a6be683f@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA1P291CA0019.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::23) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|VI1PR03MB6272:EE_
X-MS-Office365-Filtering-Correlation-Id: 282ec25e-f60e-4377-1826-08de22b5a409
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RnNwcGFJRHV5WkppUjdJYi8zRFZ2ejRSVWl2TUUwVmk1WW5URWwxRkxvRzA1?=
 =?utf-8?B?SCt0WFZYb05SZkxrd0xvemllVzFZRXNxMFZxRkRpUm1mMEVucTFRT1ZnbUtl?=
 =?utf-8?B?TWVZV0JPQnJseE5zekRDMEJmUm5DcHhpbGJmR3kwYnlPZVA5T2JMMm9rL2xm?=
 =?utf-8?B?N3kweG15SUlxbE5mdVYreGJPd3R4VmEyOG9xTkpXSGs5VVV4K2lGcU1PUEpM?=
 =?utf-8?B?Q1J5YThmZjRmd2d1TSsyelRhRlBLYkVWV1pJaGVwS0ZENGk4aHc3bEx0bUdm?=
 =?utf-8?B?RXE4Uk1UakNBeFZpUTl5RzIyZjh0dE9ydjNFbkU2bXR5RUQwU1BXalJUUDdw?=
 =?utf-8?B?R0tML1dtcWRVVHJiY3BKYzVoNC92bUc1V3lFZk1pSkx0YWNNUUdkdzFBcXN0?=
 =?utf-8?B?enhmSVZBZEJ4eXl4dmt3VEY3WHd5SlpYa0ZkM0tnUERleHBheVJmVDMvVUNS?=
 =?utf-8?B?VVc3aTZlTG11N3RrSWRzZTEwQlA0TDIyTy9ZVXFWMGpYTkMvdE5ub2ZrKy8w?=
 =?utf-8?B?TGx4WlNWdktDMDJPallqcjlQYzU4b24zWWtkWVhOanhtMXgrY3l6R1d5U1Bo?=
 =?utf-8?B?ZnI5TTM0NDNNWGRQV2VMdE4vMUY1S2FwMXNaaW0rZWJ4VlhhY3o1TTdFM0gv?=
 =?utf-8?B?RWM0cEk2L0RJTkd2MHJJSDBmWXFqb2orYUp1Y2k2SjZOQTVsLzRoc1dTOFU5?=
 =?utf-8?B?YytwbzhoM3pCVUdNd0xtU0dVUFFmMHRUZitGRmFWZzdBT01OUU54T2pUYWFZ?=
 =?utf-8?B?T2xjUGprZUVCVHZRNXNZWGtGOTYraDJlSThvTzEvTWJodHNTcUcvT29oQTZu?=
 =?utf-8?B?aVQxZ3BjMDQ4Z3YxUVZjUnRPZ2hnY0VlMFBxSWlOOVgxQ1JuQjYxcVl5azYy?=
 =?utf-8?B?QVV2R2Z3bnhkUjdSblBHRkg0S2VPVjJXVzJVdmpDdEpoUDVVdlplVUNZRkNn?=
 =?utf-8?B?MWs3Nzh3TzJkWDJHaTQxbUhsT0d3YkJmRG1JejdGTjRxS1VFdkFXd1BLRW80?=
 =?utf-8?B?R0NUak44KzUrWjlyZ2FpRFFvcmd0ay8xVHRnOFdhQk1yZGdCcEMyYVdoU201?=
 =?utf-8?B?ajNDelBxQ2d4ZHk4ZzdrdzB6NzQyKzhBcG1XZEVPbFpaMlduK1pQQW43Wkt4?=
 =?utf-8?B?SzhSUzkwYjU5TjVaUVhxZzIrdElEeFJNakpTZDFmc1VuUGpWd0Y3eE5IeHU1?=
 =?utf-8?B?NGo0eWRuY2owaU45aVZRMlhEa1ZNLzYrN2lPTDhldTlCZG9kRzlLdkZoMndv?=
 =?utf-8?B?Q1RIZm5tOTFXeFZsSFM4K3dLRE1wSGs5U3VncG00dUJYOUlyTnp1VFJpWXU1?=
 =?utf-8?B?K2tlVisxUkYxL2tzQUtVY0xwUXVOMFhqc3FGbVZNTlNQeHVTT3IxWitYNUh5?=
 =?utf-8?B?cmRlUVI3YlBVMHNVVVlLdjBHNkRlemFCSzVBb0lTbjhqRWhHS1FNb3Y2REpt?=
 =?utf-8?B?YllXVjUyVC9qdnV5SnpLOGpqQ2ZsNUtSSHRjd2g0bDhvN0hKM1pIbWk1NGFB?=
 =?utf-8?B?MjlVS2JBYnkrQXhwTmF3UkVGb2s1RW5BYVBmSW43cW1kdEpVMU5WQkkrRVA0?=
 =?utf-8?B?NFE4MjROZFRLbi93WjFUZVA0dEJydEdjVXNPejlRazc1KzEwQWI0aVNxVmJv?=
 =?utf-8?B?Z3hZL0tJVHphZzdkcUJnN1BOUExmYWQwSmsvTmROZlNMKytKQStDbDhhQTRV?=
 =?utf-8?B?Vm52YVRDQUsraEFvOVdiU2svM2s1aVBlZXVMdDRJUVJiaS83RDNwY1oyVzhU?=
 =?utf-8?B?ellHcXhBNXhHQ2JnNVR2cVR0OGxFdE82NHJTNStXY1pzL1Ercnl6aDJtdFYy?=
 =?utf-8?B?QTBWbDJTMno2YVlMZG4yZUsyTHRiSXhSUVRQV1JtbEZIRlVSV2MzTjFYdXNa?=
 =?utf-8?B?YnNOL0pKWWVuNGxabk9YNEZPY0NUOHlNcXplS3BEOWJ6QUZjUmF6cXZlUWF5?=
 =?utf-8?Q?CP/k4Jent3ivUO8LvKhvhxB2gOLY8q2k?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?N0ZHckhwQS9NUUt0VEU2b0ZlVWdJUDlUU2RvMitHTndzNG5NRkJkZk9NQW9h?=
 =?utf-8?B?VXFNZEZKbE9MT2VLR0o2cWpKTVNNWXpWclFtRk1tUWZtZG41TjJVYjF5a1VU?=
 =?utf-8?B?ZDlBTVYrT0thTTVwWi9hbnNWSk13YnB0Rkx4K1lkb093bWU5RkMrdi9aWWp5?=
 =?utf-8?B?MTMvMitTc0l4OEgxQnk4Z3RMS3V5K204VUxzVDhGcWRhZ3RtNmlHMVduRVlI?=
 =?utf-8?B?MjVVTGpxOXZNUkhETHlMWFJhOFUxdkd6VjcrMlh6VDlvQlV2aGVacWlwRVQ5?=
 =?utf-8?B?V2pzc2JIQVRkd1NaL1dFN2JDemtVT2ppMXg0WUJGYjBHbzBBazRVajdDc1Yz?=
 =?utf-8?B?eitUUWE0TkpJUmUzZVJwZVd5YVJ5aVEyMEYxSjNMOEdHYU5BWTVaM3VJbkU1?=
 =?utf-8?B?RjdNeldHZEcrRmJxNm5aOEZVcnhVZTJhMVYvTXlQVXllUU1xRjNVaHYvYk0w?=
 =?utf-8?B?ZG1yc1ZqbGpFOElGTHlUcWFuZjFrb05rdmFwcFVsajM0UlF0Q2xZRWdkeFlO?=
 =?utf-8?B?QkFYL0ZpTTcyMG5KQk5rb1JzaUdYdnQvelFXTDVrQzV5Z0NoaWZxV3VHNk1o?=
 =?utf-8?B?YXhGVmMxM1FZV0xUNW5XdEtLblpScnJQcTdNQ00raXpEZm9NUCtVMTJCVEtI?=
 =?utf-8?B?eW5RK0pmNHNuQjU3QVU2Y2pqdHB4Nk5tSmhwSVlFY2dGaEFzQ1cvNnhUNEFr?=
 =?utf-8?B?Y2xmSEM5cDlHdzI2akN5a09KMkNBRGxySkllc3o0K25kNCtkQ3RtMjBlczFk?=
 =?utf-8?B?T3pkRElhTStOdkZ2OUxiSVJiRHZ3NXZyZkh5RkJnRGtoQXo0RFRBZmQ0ZHhB?=
 =?utf-8?B?RnBMN1NMVUo2WWJXTDFpemN4cXBCeU55TFRaWWI4VU5La2p1SXhuTUhLRUdY?=
 =?utf-8?B?R2dNaFRhd3ZJSXI3NXJON3ZKblBnU05HeHhCRnVKU1JwQXpzSnpmbjdtQ1lj?=
 =?utf-8?B?bHc3NjFnNHBiUlZ4Rk16Nms2RjZLMEF2bFM1c2x0RmpGTmVEeWwvTkUzcVB4?=
 =?utf-8?B?QUx1YjZFWHJpR2pGaDlYU2JkdGQ0TWVhM3JxVXh1MG1oSm9nb0ZtY1pIN0hI?=
 =?utf-8?B?bXRtVmZCc0lIUGZqbzFwQXhwZFMwOERQQ0hBc2pBRkdLY1dCdE9DWkdRL1I0?=
 =?utf-8?B?NTVUMXV2V0dXcHZOY3Bzb2ladml0b2ZFZmpjbGU4dVh2ZHFzaStsZDZ1aVh6?=
 =?utf-8?B?NjNldHFpQU54THNsQ2l2M1dLcjdVUjErSFJRcit3bVhWNWlnWFBMWkVLditZ?=
 =?utf-8?B?OFl6Z0cwdXhkQjZNa05pMFllbGZFNTZRVTl2cUUyQzhJL25hN0pOVjg0TFZM?=
 =?utf-8?B?a2hRdit0U0FxWlErTG5RMTdzU2Q0elo3eUJCQTZJZ1dyM3RjOVpUc1FiOWhE?=
 =?utf-8?B?TVhhVXVTWEU4YkVEcTNyaFY5RWhBZXg2KzdLQ29jeE5CV0tIODI5YUFPcVlv?=
 =?utf-8?B?QjE1M2JMTUhnMXdkQnRTcU1XSHdld0lDcU9TdEY0WDNYODZCd3hyU0VrVzY0?=
 =?utf-8?B?aktiL3FJSU9oSkk1bi91YVlWMGsxc2tkOFpmQW9HZm1SeXhTOXFBM1VVNjNO?=
 =?utf-8?B?V0V4NHl4RlBuY0l3SHdaS1VETy9vOTdiWEt3cWtZOG8vTXJYR0twWXhBSG5r?=
 =?utf-8?B?em0rcSttb0MzOGNUMW5pRU5Qei9vbHphK29MTFBpZWJWMVRhZDNFRFBaYUtL?=
 =?utf-8?B?dzFTRG9yREoyaGNKeUdNTTJ1WkNLSjhhK2RrTG85WUNYbVUwQVR5VktSWWlR?=
 =?utf-8?B?Tk5xNCs0T1duSDczNDNCRkRpbUhMNStnSjFUVGFCdTRsOGduTDN4QmdTaE93?=
 =?utf-8?B?SWwvRGdZK3lsRnhJckViMXhsUjdLNnhEM2VkWVpreStMVHV1dGlFby9zTlBx?=
 =?utf-8?B?ckQ1QnZqSjJzeFBXSndSNEx0cnE0Sk1TQXJld0NUU2FySVE0VmtyUnhXMUdR?=
 =?utf-8?B?a3FiUHJVODlJQTZQK201NXB5dGlzelNzd09EZnlOd1ZTY3UwazhKWHFpcnpP?=
 =?utf-8?B?U0krWkVORXVaT0wrYnlwdGp6ejFKeFdncDk3dlNIOEpkZ0dFOWdaMTV3MFBY?=
 =?utf-8?B?cGNoS24rMUpvTFI5cHF2Z25pM1lpMUliRGpzNmFwWGlKWE51MlUvK0FIdTNW?=
 =?utf-8?B?K1hRWG9oT0VvNXlXUXdlUW9xTk9hQlpzNTk4S1c0M1Q3WlZvcmk1WEd4MHFE?=
 =?utf-8?B?WUE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 282ec25e-f60e-4377-1826-08de22b5a409
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 13:07:47.0957
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6s3kTw6bRwRsZD/CWJUq50a3Q2pxQ/A1YzbDZwOJSyvWYAxNI5wWqkbbXS3yusbBCSGEVIkv1hjaZdvHiZBURKvvWZDK+1/KrzA9IfotkrU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6272



On 13.11.25 14:22, Jan Beulich wrote:
> On 11.11.2025 18:54, Grygorii Strashko wrote:
>> --- a/xen/include/xen/sched.h
>> +++ b/xen/include/xen/sched.h
>> @@ -311,6 +311,15 @@ struct vcpu
>>   #endif
>>   };
>>   
>> +static inline bool vcpu_is_hcall_compat(const struct vcpu *v)
> 
> Does the vcpu_ prefix really buy us much here? The per-vCPU aspect is already
> conveyed by the function parameter, I'd say.

Such annotation makes it clear that operation is performed on struct vcpu object,
which improves readability and code analyze (might help also if somebody will ever
try split sched.h).

For example:

is_hcall_compat(curr) in the code doesn't say too much - need parse code
(or have modern editor which can parse and highlight parameter type for us,
  still need some mouse manipulations:))

vcpu_is_hcall_compat(curr) - is kinda absolutely clear from the first look.
  
> 
> Actually - is a parameter in fact needed? It's always current afaics. (Then,
> if the parameter was to stay for some reason, it would want naming "curr".)

"curr" it be

> 
>> +{
>> +#ifdef CONFIG_COMPAT
>> +    return v->hcall_compat;
> 
> As long as you don't remove the struct field, ...

It is already under
#ifdef CONFIG_COMPAT
     /* A hypercall is using the compat ABI? */
     bool             hcall_compat;
     /* Physical runstate area registered via compat ABI? */
     bool             runstate_guest_area_compat;
#endif

which is the main reason for vcpu_is_hcall_compat() introduction.

> 
>> +#else
>> +    return false;
>> +#endif /* CONFIG_COMPAT */
> 
> ... why not
> 
>      return IS_ENABLED(CONFIG_COMPAT) && v->hcall_compat;


-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:10:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:10:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161434.1489382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJX5f-0003lM-5l; Thu, 13 Nov 2025 13:10:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161434.1489382; Thu, 13 Nov 2025 13: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 1vJX5f-0003lF-39; Thu, 13 Nov 2025 13:10:19 +0000
Received: by outflank-mailman (input) for mailman id 1161434;
 Thu, 13 Nov 2025 13:10: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=FQDN=5V=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vJX5d-0003jc-Ee
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:10:17 +0000
Received: from mail-yx1-xb129.google.com (mail-yx1-xb129.google.com
 [2607:f8b0:4864:20::b129])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 187e3b82-c092-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 14:10:16 +0100 (CET)
Received: by mail-yx1-xb129.google.com with SMTP id
 956f58d0204a3-63f996d4e1aso670026d50.0
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 05:10: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: 187e3b82-c092-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763039415; x=1763644215; 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=obJx62IfP7BeTMdQtx3/FzgK51b5Tv+WIIDSMr0cjvI=;
        b=V54BfwilvCDSYXkVL3JqQyvoE4NYxrmmrB6CJoU0V+WsMOAqpjXUD4C6fg5KAd6Agk
         9w7T2LPJfrYSX7fU77YzRdhlwp+gY/WzfDad7PnncQEw3NxiGoqSzcXIHkIBkZKoaGer
         +48tiefEFeCike8fMt64+dXeU8R4wkrtLMoLm3+bzK70BReKKct3dysEHp4P8z2GmeVg
         mT7684D+GOMtthha5McO69NEaXOtMLmo0y8n6iOfe6ZwrYFVh1fvpf7+K1jK50yQlWtM
         RQH5ak+tazmhhL2C2jddusYI4gOnREEMizpM2Hs2tjrz0gBUEjvMvKLbZOwO3Hi8WqUa
         MoXw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763039415; x=1763644215;
        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=obJx62IfP7BeTMdQtx3/FzgK51b5Tv+WIIDSMr0cjvI=;
        b=QMoKIziJLCDrWAKNvKAcCu2dlbDDjj8DLGvfhvg5TX7V/VAyTHnCcOFSraUAldzGWC
         gq8vMkAJqoPJJUu5hH/8sCW86e4eC8eNPONl9kvTt4SVLcH66DzcKzyAydnPiPqYC/S5
         asYCe95n43K/D3xbTk9efZj05DfvKkXjpGCE3rNMO/+lcg8gAhr9bJXdOJE0ONQlS8Lw
         An+AByQfzK8+7XY/gtaVK+8ENl/4GoQMOWsoQbyHVH6Qmo2d5nHZ18EyqfLI5AHz/VI8
         VAHQM18ARNUUSCtEvI+6oh5zpqyUL3SqgaauH/oM/EG+x5xTivdLMEpLPIh90MAnRyUC
         JNAg==
X-Forwarded-Encrypted: i=1; AJvYcCVL0RPFGiHWwsNHTPdxQ0PnfUEMvZYH3uyQGuwFW4PN4pI0SzXpLbnmbsmhKm3E4jJjWhQTLiL32Ow=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxwbIIxzQWIW3q88eYMImX0zlPtvescTdTW6gFCi+IemfcMKU/F
	S4XKiLVuYmyD3UCk7gCDmwGR1NLp0d8+tX/a6bk8GVdjIT67upWUMYuFssjeQVPZCksWfwYbZyS
	683l8iMubWsdj/A9SMpjKC04fW/z1cl4=
X-Gm-Gg: ASbGncvLB1JsUSwXKTwJvYs114oTFdakub6MIPN7SHoAUv+kwjQNvMKZGp62s7GjJbE
	iHrsuA4g6+Gdo4jSGerjY7PWOJRTzswlDVCHzMaHklzgFiveFX7PjpZqERf6LCYe7qh+Fb4fwIT
	/4ZKz5GSrhvnO6OY4X1jffsUp6RkRFgfZ0gkmUGBl3o2t9N1xVAQRtYz3Rw6IKrUlz29Rp1qJUU
	hLYLK/hqZvWcILnistFQe3Pe6gNqu20+hF0UB+s6jsJu+32ZCD4M8i65aJ0fdb8kgtNySo=
X-Google-Smtp-Source: AGHT+IHbeLEBZBC03vDuB7x3PJJVykPOcSNqSFqo76NBRAbbh7Tz/Aqmd/xkS2x6V96rzjvQjt+fow9vpXkzYlkDsaI=
X-Received: by 2002:a05:690e:4289:10b0:63f:c816:1169 with SMTP id
 956f58d0204a3-64101b97119mr4708382d50.48.1763039415118; Thu, 13 Nov 2025
 05:10:15 -0800 (PST)
MIME-Version: 1.0
References: <20251113124945.25343-1-frediano.ziglio@citrix.com> <70c36cf7-de4e-418a-921c-fe1268178194@suse.com>
In-Reply-To: <70c36cf7-de4e-418a-921c-fe1268178194@suse.com>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Thu, 13 Nov 2025 13:10:03 +0000
X-Gm-Features: AWmQ_bm2ILB04Ba4wUr-LnhI4hs2BHL48RXgBs6gsX6LTLz8s7Z6S3Divsm38dM
Message-ID: <CAHt6W4fjxoGF1rNMhQ2M2_uOEgAyBtNvDcmmbBF6U7qp-LZWOw@mail.gmail.com>
Subject: Re: [PATCH v7] xen: Strip xen.efi by default
To: Jan Beulich <jbeulich@suse.com>
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>, Frediano Ziglio <frediano.ziglio@cloud.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Demi Marie Obenour <demiobenour@gmail.com>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	Stewart Hildebrand <stewart.hildebrand@amd.com>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"

On Thu, 13 Nov 2025 at 13:02, Jan Beulich <jbeulich@suse.com> wrote:
>
> On 13.11.2025 13:49, Frediano Ziglio wrote:
> > --- a/CHANGELOG.md
> > +++ b/CHANGELOG.md
> > @@ -65,6 +65,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
> >        for hypervisor mode.
> >
> >  ### Removed
> > + - The install-time environment variable INSTALL_EFI_STRIP is no longer
> > +   supported, xen.efi will is now always being stripped.
> > +
> >   - On x86:
> >     - GNTTABOP_cache_flush: it's unused on x86 and the implementation is
> >       broken.
>
> That's the wrong "Removed" section, though. Moving it where you put it would
> be part of backporting (to 4.21) effort.
>

I think there was discussion that should go to 4.21 as not stripping
cause issues with some firmware.
Should I move to 4.22 then ?

> Plus it should go under "On x86".
>
> Jan

Frediano


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:12:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:12:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161444.1489392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJX86-0004cA-H0; Thu, 13 Nov 2025 13:12:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161444.1489392; Thu, 13 Nov 2025 13:12:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJX86-0004c3-EM; Thu, 13 Nov 2025 13:12:50 +0000
Received: by outflank-mailman (input) for mailman id 1161444;
 Thu, 13 Nov 2025 13:12:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJX85-0004bx-SJ
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:12:49 +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 73b20b2d-c092-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 14:12:48 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b735487129fso97649066b.0
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 05:12: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
 4fb4d7f45d1cf-6433a497ffdsm1435956a12.21.2025.11.13.05.12.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 05:12: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: 73b20b2d-c092-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763039568; x=1763644368; 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=uWmOl/0OF3kohnl+GhEeii8xZ3sWFeGO/MAqVUdJQ5I=;
        b=PKzwzsCzlaaRVh7a+WdKfjOO0f9+wi/Q9NcYj08WywA9QBgHDvxDTmqDqFDX4qVrIu
         jR1oZ64BJQr+oacdcGoTz5nXSxWMAr54VmWkzKw8yL5XC3qT/x68K/63U4eCJ97tG/Wv
         C/bASkWlN2ry5addpTmvuMdjtntfi3my9g+thZUKOboK6dzotVgCSRRpCyYLiVCN7lFH
         hkUTIYY6Vr9AYBfVo3awnERKipoRqaah+ctwK/O9OOiw8E/IGanoNNBQyGnT55y/9koM
         D2maE1WcMxhoPm7sCU2TDv3ejvEQBb3uFiIY4ovIqBibYbUxzn29GQaPHCrPYZBz7nBX
         RrfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763039568; x=1763644368;
        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=uWmOl/0OF3kohnl+GhEeii8xZ3sWFeGO/MAqVUdJQ5I=;
        b=abDbxH9GJKolEteD/A24DorXOOYAPKIqXyy3EPYyYY8/4H8vGWD3ggnGblWMM+WrOe
         S1kR6BbtnZHq9xGCjaEPArB0aGvzshz36wrMAAxT5Qb+E/6UO+WA0AL0MduFVgaNWoZ2
         4vx1QQQuyrTx53K2DebamOOhbzZiZZopEVQzgIJt81rkz/tgztJsLvjuNBUJ/te01H3L
         eThcNojB7EmR20UyFL+MJZX/sUzY9S+5IyFCgNbOcMEs4dbBj5bc3trgRkNN9g5vQamO
         1EiXjh0pRK2FsnTcOqwHOcnonBZ1t7QgbIkAKp4MOgpiwhQL6+tnSpbQf3znU7//Stoh
         1pAQ==
X-Gm-Message-State: AOJu0YzVHrZrAzkiSVe3qilhgpvyAgUZKkDDrM5rPBSE6znNrxtwrin8
	RxYliXTumOFJNZMm9lh9EH3HWHuxWnPDHRLCBsk6cLSxF5hDUFKJwz673kzFl1kqrg==
X-Gm-Gg: ASbGncsojk+u97UvtFph66Wsu4xLdKoyo4h6ssaIcJxI8/LbItH3fWLPilEfkgm9ED1
	IAn4BDlPZXzek47JzlX4QWJhn2Jo4xKc5opQaK28I422DQNeTrzjxxAgsN5DPqo0GvWDqr8wIqV
	+PEi9DYtoKIi96AjdgjhW+2/GQ2qM0oWRpugnDDOHffnYgSTgi/6iNLAldFRGB6vg4ATZRyf2Uu
	qK6tQXPvGEvhJosFFrzQeI8O8jaxAqCdmo1NuiTKb8Ei6PXXUtXKpz2rFe9br88a77zER6k9x2/
	LV3bsTvnrRWeiBmqoJkCCBgSHBQYQemZbYuSesh7EXKP7g6X0gOOfsZWMpgoSi/UYm5qQbVRM6V
	N91DD1E6Yz5Q5oJoPbIqjnIFpWcTHJ+k+xTUgFaRb8HOiiAWAYwmLAfBJL0ZWiJvW1mXoQ7ywXr
	XtbZ205e0ieKEv4NG8m6Ye7uOlgfQEerrlZy9BYi5TF0TOYTCwlRgG6qR6F7y1qcBN
X-Google-Smtp-Source: AGHT+IGwFanqLa0mTgFI/Q8WENhka7d3jzmgQ5XFtAwWAtJLK5U7NXW+hbx2TyJCOjhnwX0l4677vA==
X-Received: by 2002:a17:907:c11:b0:b40:e687:c2c with SMTP id a640c23a62f3a-b7331a6a9aamr787680066b.37.1763039568215;
        Thu, 13 Nov 2025 05:12:48 -0800 (PST)
Message-ID: <ce976661-927c-44e0-a478-893242bacba3@suse.com>
Date: Thu, 13 Nov 2025 14:12:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20] mktarball: Drop double-processing of the archive
To: Andrew Cooper <andrew.cooper3@citrix.com>
References: <20251113130154.220139-1-andrew.cooper3@citrix.com>
Content-Language: en-US
Cc: Xen-devel <xen-devel@lists.xenproject.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251113130154.220139-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 14:01, Andrew Cooper wrote:
> This is a partial backport of commit 63ebd0e9649e ("releases: use newer
> compression methods for tarballs"), but keeping gz as the only compression
> method.
> 
> In addition to efficiency, this causes the tarball to use root/root ownership,
> rather than leak whomever produced the tarball.

I don't understand this part. Isn't the ownership whatever "git archive" reports?
I have to admit though ...

> --- a/tools/misc/mktarball
> +++ b/tools/misc/mktarball
> @@ -5,14 +5,6 @@
>  # Takes 2 arguments, the path to the dist directory and the version
>  set -ex
>  
> -function git_archive_into {
> -    mkdir -p "$2"
> -
> -    git --git-dir="$1"/.git \
> -	archive --format=tar HEAD | \
> -	tar Cxf "$2" -

... that I'm unaware of what the C here does. It can't be the same as -C, and the
--help output of the GNU tar that I checked doesn't mention anything else at all.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:16:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:16:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161461.1489403 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXBF-0005vE-3o; Thu, 13 Nov 2025 13:16:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161461.1489403; Thu, 13 Nov 2025 13: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 1vJXBE-0005v7-Vl; Thu, 13 Nov 2025 13:16:04 +0000
Received: by outflank-mailman (input) for mailman id 1161461;
 Thu, 13 Nov 2025 13:16: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJXBD-0005v1-RF
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:16:03 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e744ebf0-c092-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 14:16:02 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-6419b7b4b80so1173962a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 05:16: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
 a640c23a62f3a-b734fa80cb6sm166471466b.7.2025.11.13.05.16.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 05:16: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: e744ebf0-c092-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763039762; x=1763644562; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WStyKkKSy8Yy4nFKaQnYd0JZPd3uoBBPaR3rb8m7pXA=;
        b=VNXvlJMNOniWevcjbUbs2YugYZ1KgL/asaybLjOE88EDJFMiBGRiRS+uGsfjx8V5JJ
         Crj9IJLtgVhoSGqVn7uUATzh/sqqvhk/TnuGGMIYUXvkCMEVNo+1jcEnoyBbyjHOfjJE
         4PuPEEs6nZSP/XA4eegkRcI4tV2wQrXLmzPo63Exzk148gjZ4P44u9MgCZhkAp/+eDsq
         5Qan1/4R+dXl3IPh4ZGdBhk8FYgLoF00xiohfDE4Ssp975998+azZGQ1N+ZVtr4WByvL
         e5aH0OUFDxCG4R2Entn16fD6tUUm+YwwYQ2wCRx2FmPM700C/JxFeFab2+sqnKQuYOoS
         sxGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763039762; x=1763644562;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WStyKkKSy8Yy4nFKaQnYd0JZPd3uoBBPaR3rb8m7pXA=;
        b=AQCOx8W+Ozw8X00IwKr/69sumAwFI0S7ylp2axXYm6cbYOjdxsYvzWBLs9DuPRJpex
         KWf4SvZsl+CjFqrAJSDWQZLrywn0Kk0gTxpjRAg0I1QgL9pK/5TwSm0Opi0DSZ60cuwv
         y+oNJWfFiZmKsANwOakCe23fQipyosg7zNLB3opNOuoL7N5asRzegsREXjP4YM/EQH09
         xkdiD3wNyWYayBNVoKa3kxK7ApoNYiwXzbUnt7pcqteMO3v044xUsbCnnjS0eOBiDngH
         JDQ1bL0HZVR+mlb+8OAMLUFre2n3TN6XznFYyrK/XMsJIHY4rD8JnF/dA7gn/UrM2LlJ
         QRqw==
X-Forwarded-Encrypted: i=1; AJvYcCXAiNDtbMZGALd2yO86bjH4kg1xnTdewpcCXGXrUE82qa2Tpw/BPfsyIsfVMO1wi52m4R4z+3zn5t4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyUPXLMZtKr+uMrQuSq2rBrY3bICan1ZwM99ZEvauaJjE/qA2gf
	vn7bei72UWLhaZ6qOde+EDAMDyhCijYThK2II4k71QXA9gIJp24/ncQcZQN/1uM48g==
X-Gm-Gg: ASbGncv7MHEErJJQFlnYao5A/l/0KHjDM+0pbk3C6xkScl3zIwLxwBuct3ixDvwgqvr
	wlfldchjH81fwd7NiNYOZcvA1HMEntnhBGTI+8chB7nkt6bRmMX52S9RwA6SQdESY5/9xjl+6VS
	aXAatRT+SqEDA3doxRvxwOmOoVXOS78Ub6rQWOT4plvSmN67gbY9++pzBJ3UWkEkkS+ZHJik7at
	1GCi02q5HyeGiB+NEkIXDCInNoSiuYBF982KQP66+noYngd1wtoXerQlMskZ9yPmN4IE5CAdSO7
	rQ2gaVVd2Oy6cJjRBlu4yyzULWLMbMqyw9YFAR/JLoTByPG+cLM3rZX/cUMoVcJZGqhXwLE0bwJ
	lObAzaNCXGZ0oHyPKxavxQuM40I11b8nZT86JwbAcX85QhqsoI4SFJy/rcVHCT6WQiD8HEjAdhQ
	ih8VoA5EPCj1Pi5V+mETj5dtqGWui65kfUf0quKqA8g4GuFPD7TZ4jiXQfgLq3CYIR
X-Google-Smtp-Source: AGHT+IHblvet1Hn0bpIJRhJz5Lh5EAJP6/Utk+d8S6NP9ennfv7yoT+lPo3HcLw3i/UnOU0qDCGDOg==
X-Received: by 2002:a17:906:f405:b0:b73:544d:ba2e with SMTP id a640c23a62f3a-b73544dbbfcmr177084466b.25.1763039762077;
        Thu, 13 Nov 2025 05:16:02 -0800 (PST)
Message-ID: <a4ede115-7d3d-422e-b679-9740963fbc54@suse.com>
Date: Thu, 13 Nov 2025 14:16:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7] xen: Strip xen.efi by default
To: Frediano Ziglio <freddy77@gmail.com>
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@lists.xenproject.org
References: <20251113124945.25343-1-frediano.ziglio@citrix.com>
 <70c36cf7-de4e-418a-921c-fe1268178194@suse.com>
 <CAHt6W4fjxoGF1rNMhQ2M2_uOEgAyBtNvDcmmbBF6U7qp-LZWOw@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAHt6W4fjxoGF1rNMhQ2M2_uOEgAyBtNvDcmmbBF6U7qp-LZWOw@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 14:10, Frediano Ziglio wrote:
> On Thu, 13 Nov 2025 at 13:02, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 13.11.2025 13:49, Frediano Ziglio wrote:
>>> --- a/CHANGELOG.md
>>> +++ b/CHANGELOG.md
>>> @@ -65,6 +65,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>>>        for hypervisor mode.
>>>
>>>  ### Removed
>>> + - The install-time environment variable INSTALL_EFI_STRIP is no longer
>>> +   supported, xen.efi will is now always being stripped.
>>> +
>>>   - On x86:
>>>     - GNTTABOP_cache_flush: it's unused on x86 and the implementation is
>>>       broken.
>>
>> That's the wrong "Removed" section, though. Moving it where you put it would
>> be part of backporting (to 4.21) effort.
>>
> 
> I think there was discussion that should go to 4.21 as not stripping
> cause issues with some firmware.
> Should I move to 4.22 then ?

All patches should be against staging, which is 4.22 now. Anything against older
branches either needs explicitly tagging as such (e.g. when no staging equivalent
exists), or otherwise would need backporting from what went into staging. (The
more that at this time of the release cycle I'm not sure this kind of change is
still eligible for going onto the release branch. It may well need to wait for
4.21.1 now. But that's [mainly] Oleksii's call, whom you didn't even Cc.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:18:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:18:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161472.1489412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXD7-0006SD-Dj; Thu, 13 Nov 2025 13:18:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161472.1489412; Thu, 13 Nov 2025 13:18:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXD7-0006S6-Aa; Thu, 13 Nov 2025 13:18:01 +0000
Received: by outflank-mailman (input) for mailman id 1161472;
 Thu, 13 Nov 2025 13:17: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=X5Bi=5V=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJXD5-0006Rz-T1
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:17:59 +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 2b17ec41-c093-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 14:17:57 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MW4PR03MB6474.namprd03.prod.outlook.com (2603:10b6:303:121::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Thu, 13 Nov
 2025 13:17:53 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 13:17: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: 2b17ec41-c093-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=I/zuLFzgPEli7FiCPjk0ad5ztJJ8NLiHZ7H2P8zRZtnYQK9wh73kSH/JYQn9mu/VLfOS8vW7gibxnfo2AVFxOaSziorQEjiY6D1BPQDSQ47Y6GxtAJkjMB8Ex85MmfTv59JTgaEYwY/fkdU2tnrxxmQCvnav4X7s8t77c2lUN5qKmaixydmaNHk2fB2oEMJF1vlulzhSKFqHWqP6IoJUXO5AGsUaEsjKSg1dufO7iucWixUcNljfn5TraZA+XYODo/olkKKVTRucXXZ7ydBi9ZC/PYtvFcIQtCEAU6CHS713eLf2zt6pPkjyiE4mGQrmz9xCnI+/or1CbjXfMiBxPw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IwXmYX3eOYhvipiTCQPcJ+6k9KWItQfK2RlNtrfwylw=;
 b=rkGJoBoBO5r5qOqMFVeFJ4IEM5XAv26Y5/c9fZVO+zmP+4X9hTYmb0ipxk6W+YVwzPIIgerd0qQVP8BLMWufVYSgIJKvrRwRsiq8RpS7tGyeJOxydXnXbk91mxVjJMll2uOWZ5/x+1R/ty89Jm3vr8cATeEnIOSHlarEiBFVON4Lu1RaArPsu3UfYeJRDzz4Fs6YRJOtmC9s2vRnICeMvlwLWeo6bw4Dh/RCjSDitdl95Eo2cWQf7W8AmI+4AeBCio2Hj0AF+p8kBbxKD7kf/3CKBd2gbum1QRrBM27D2j14iIrLuEymtIvv019UtMq7E8EWSNMZi5QvkAxVtjatDw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IwXmYX3eOYhvipiTCQPcJ+6k9KWItQfK2RlNtrfwylw=;
 b=mePAtAf+rTpwkyrf/OSjQQvjjOpAMoSLiDKJVaf0sJQKpq1LcuQ5khvfdC05wI4hWNZc0gzPnrfGCwBsS8pgH69PKZBUTRKV+WvuToUMXXZPfmVgTlNOPDvzUg+X0QhYX9oZJkPQ86j0yMwocDg2Q70BIeSMMChr65it369Ydpw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <5c14f58d-c8bf-4c63-b48a-9af5af88c8f2@citrix.com>
Date: Thu, 13 Nov 2025 13:17:48 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.21 v7] xen: Strip xen.efi by default
To: Frediano Ziglio <frediano.ziglio@citrix.com>,
 xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Frediano Ziglio <freddy77@gmail.com>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20251113124945.25343-1-frediano.ziglio@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251113124945.25343-1-frediano.ziglio@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0279.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:195::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_|MW4PR03MB6474:EE_
X-MS-Office365-Filtering-Correlation-Id: 265f30d9-8750-42cc-c607-08de22b70d1a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QldCdVNaZVFncGN4NXc1ZEhoZFA4WS9vK2dHTXY1T1ZNMndBeS9qUTR5S3Nk?=
 =?utf-8?B?M20xUVZjQUp0Umd4SEdhYjMwYkEyUUhScTJWWldQUTZlMHFwSkZwMlZJRW1J?=
 =?utf-8?B?NDFDWnp6dk5FV1RaNHdHRmZ2enZpN1VrYUMrTEh2U3pGYWl5a2lGZFNaN09N?=
 =?utf-8?B?WmJ4TkEvVVRpM2UyS24yUVJDaWFLNzh5K0hxT3JraHAxZ3JmbUZqYU5TV0pt?=
 =?utf-8?B?NWlVL09WaHRvQUt0Mi9zeFdQRG8xb25QWkZDVENvNlhieDdEMzMyYk1sRkZY?=
 =?utf-8?B?SUp0U0c4Tk95MjJmb1dMUlJncFlqUyt2RTAreVg4NTBWTjFYS2dISk83czJY?=
 =?utf-8?B?SzhFSzViVU12VmQyZnAyVlNuMWt1WWMrbTQ4SUs0NDJzc2wzMjN4MEVobG1j?=
 =?utf-8?B?N3R5SnM5Nm5Lbm1pZW1JR2pQRnBaZjlQbCtPcGFXd1ByRncwRUIvcXhVWlBL?=
 =?utf-8?B?OHVicnJLSDFHbWc5dU9uUXprbzJSVFpPZS9SeWpDWjBGb3YvUHNzZWtjKzNv?=
 =?utf-8?B?WnNIUGNvcVZRczRQRzF6ZmNoYllWVCtwOXUwa0ZVbWJsQXl1enJqL0JZYlFR?=
 =?utf-8?B?QXhmZXJ5V2oxT1NXT0hzVExKcTZzNnBKandSZDQvNUxySHN5VkRrekhOV3hT?=
 =?utf-8?B?SlpOcG40UVk3ZWw5Nkt4aHQ1ZERPWmdDRmZpWnFrZG9hbDBpRTZyNFdNL3Bl?=
 =?utf-8?B?UlFCaDA5QVZnRTY3UXJXbE44RDRpaXRwMTVpS3cyWll1c0RLeDJYSFgxU2lX?=
 =?utf-8?B?WHhHNUxqY3FlaHRXTFIyNkRTNW5CbVRIa00vSmdUaFRzdGZkdmRhSTEwSWFR?=
 =?utf-8?B?WERwdVhnSnB1akhJWmJMeXhuYlVCeUFTem5raXJrNlV6ZUFBOWlDTDF1Q1VC?=
 =?utf-8?B?SEp1NHRuZmI0bUI3d1JuSDZjZlF4TUpMVStwR2o2aDBGb0l6UVc5akhMSzJi?=
 =?utf-8?B?b04rZHRZRnI1aFlvRk9WSVcrd0tlWEl5eHdseFVRc3pKYVgvUDlGTkxvSHpL?=
 =?utf-8?B?cWlEck1hbXJpK1ljbEpWdDFQUFBSd21oczhBSXRWWUhsS3ZWcTJGbDJGTjcr?=
 =?utf-8?B?K2dCVlMwTTdZWUdyY3pIS0NlZEZqckRBL1lCYytrU1RGaC81d1RqSU1mV2h6?=
 =?utf-8?B?aEJMK08vL0ZBdlZqV2pCbWhwM2Zxdko0Qk9WalphTHJ1T2x1aXQydllmU1pn?=
 =?utf-8?B?RHdVYnF6TGN5d2Rnem95RkRHek1VNTJPRG1LRWNrYy9GUGNCVmNQRkpGUmNB?=
 =?utf-8?B?bEsrUGNzdmNkSmhaME4wTW9KSXBBcFUxUTRES3p0WW1LdENpZlg2K0tqUXZH?=
 =?utf-8?B?Q05ER0U5Qld5OXZXa3IvTkQ0d080RmNFREM4WEhTOXZOQ1VULzZUQXduTXp6?=
 =?utf-8?B?Uk9TSGk0SmdBYXM0bGs1ZUdRWjRjZlA3S2NQNlNxUFdOdkU2TmZhUDE0NXVz?=
 =?utf-8?B?R1RzSU9BdldZdXNZbnY3YkM0ODJ0N2tPSDA0SnRxOFVpMjZFMHN3dERhcUhz?=
 =?utf-8?B?SGZSelk2YWZuNXVhTTJSYWR2R1ZONEVvUTRSeUMzWmtSS1EzU2pqSWJ6UEZh?=
 =?utf-8?B?RlhLd2NRZEpjaEczaGpDb3hFZG5RTXNJR0RxSEFKWGFBeVNPVmlCSVRSQlJJ?=
 =?utf-8?B?V2MwUTNvNmY5SjU2QUJ3ajl0TFA3VjNEL1RJNDh5Q1UwZkFKdjJFZERQdUVi?=
 =?utf-8?B?OGx2RVloS09Kc3R0a3VTTEF3Sk5heXRySmNqZVVWR3VNN1RGK0dRMzVXVHBr?=
 =?utf-8?B?SzVMQ1ZHRjhudUJGc0pvNW5adkNxZVFPbTRVbnNZcDM1U1Vma2t6Wm9tRDJQ?=
 =?utf-8?B?Vk12UjgrR2pyY3FDY0o5WlBSTkp3ZEtvb2ltT0Rjd1FwVDIvOU5NYm1IMWx2?=
 =?utf-8?B?b1F4eUxvOUlKN2l0OVluTC9JUGJJcUR5UHR4VkZLRnY3cFE9PQ==?=
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)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UW9WTEFoSUpkOGtuc1NRWUFudVJGdVBnWFVOL2hJWE9KSzVsMHJtUEhsTUN2?=
 =?utf-8?B?UW43b2NPSVJHQm54QzVzLytEamJhdWdPQnV2eUNkOUY4bHlEaWViVTY1a1hW?=
 =?utf-8?B?UjdRSFJFWkVTOHFDR0dVNHdhdFFKV1hDZjc4VFh4Q0sxajdMczRKRTM5S2FN?=
 =?utf-8?B?ZmxqTXYxWk1BUXEydThFQ1dGMk5PYThuWGVCakxlSSsxZXFJM2k5TEpFZGRW?=
 =?utf-8?B?dkEwNmM1T01RcDhsdnFENVhBV1doc2ZxQjZreDMvVk5UekVQTW5zWWRPVS9p?=
 =?utf-8?B?enkxajhDK2ZWRmJORDJDMEhFeEg3NnZTN1hWNFcrYVNucFYyTDBQelE0QTkx?=
 =?utf-8?B?L05XTzBKYnBkNGVkY04wM0dyeGxRcjVUcERhcG1hMlplblU1VWl5N1d5OHlu?=
 =?utf-8?B?YUNLUnhJNU03TVg5djZxYUFNK0ZzK3lZdHlJYjJnVEhoalNkQmJTbEhYOVlL?=
 =?utf-8?B?WkpqbTE3U2Nka3l0N1Z5dHE4L2Fwc21JN2FwNURBYTdDb2dvVXE1MXhwZnJQ?=
 =?utf-8?B?bjYvWVV4T0VTKytlQXliWXRJR0hjbDlOclFwcUNwTGE0WENkTFgxc0pxblVK?=
 =?utf-8?B?YjlaWGR5SkxlQnFldWJ3a2UwdVZuWXF6WFRmYkhTVFo5SzRJK1d5ZlV3ekhO?=
 =?utf-8?B?eG5hMnU5VkRJRDl5Q3U4ZGdRb1lQTnNmZENWVjJCMDdIalVZY1RDS3RqUVJX?=
 =?utf-8?B?dHlPTTlIZzY2UzhHZTJ6UEZOQncwTjUvcnBLWWNIMmxWa3Q3YjZQdkR6NlZU?=
 =?utf-8?B?elFWQUMyNFVCVXhZVWJlUDNjN3BrSE9vN3lhV3FmWklFV25KeWFCZlk2V0lR?=
 =?utf-8?B?S0JQY3dRWVhpaTh0b285b3FpT3VWeURVZ2FBeVQ0VUI3bmkxUUUxNmRyWCtn?=
 =?utf-8?B?Q1BzWlZ2V2RqYmxaMGVoa1VvUHcrLzA2SXV4SzA1UmkyT0FLVFBLUWpVU3Bm?=
 =?utf-8?B?cnBQdzYzTUF6UlJRU3ZISG5WWmdXbSs5Z1NCcWxmQS9CT3FmZ0V5d2hJUGZE?=
 =?utf-8?B?STVySUZQbzhBQVIxdGlReEN6U2huZzBYczdGeGVHVGcwWllEQ1ZYNkpRY3lD?=
 =?utf-8?B?ZjRDemMrNlNWYUpQbVhRUVl3NWhlRnhxZDN4bTJQbENuYzlYMnNrejc3VU9C?=
 =?utf-8?B?aGpaR0NJSFlwSTdpUVNqQ2h3QjFlbkhwTlBobkJ5Z0RSVWI0N3B4YmNSZzNx?=
 =?utf-8?B?MmtNU0FjSEpJTCtXNzRjSVlBZnltZDFWK2s2YVJJcG56cmZSaW9YdnB3QklI?=
 =?utf-8?B?OHVDQzlmcjE2czJ5bXJOV0ExMWFTeTdRNEFOQkZjT1pqVDBMWFczZXNzWkFr?=
 =?utf-8?B?UHMrVGNkcWVJV0Jua1M5Ykk3OFg4SmF0elp0WGI4WnpLT25tM3hxVFIvUmhV?=
 =?utf-8?B?MGVyeU1WemhnQ2dPU01JWXI4K2JSNWp3aUZxWGx5ZER1bnVBVDVjMG1vb2tT?=
 =?utf-8?B?MWptMDFaQ2lJSWRXanR4OHE0R1ErQ1FML0JpTnBEKzhuVHVnQ2tJczBENVBl?=
 =?utf-8?B?bk45SVhXN1BWblhsZ2k4VFpMZXc4S3UwWlFTdHpuYmVzS1NWbmRCZ21EYzhG?=
 =?utf-8?B?RFFvQ0lvRWkzU3hCVU9ScEsxVUhPSlYyZEVqcWhnWjE5a0lFc0U2a0VPM2tO?=
 =?utf-8?B?aTA5UDFSSkMwcDRpb21LZTJ2em14SXcvU0ZubUttaTErczhQeWxoSlBIeVpY?=
 =?utf-8?B?L1M5Q2hodGc3aFlQOXlCTXRuU0VtR3NWNVVWTTg2SW1nTkJublpYakFiRlpS?=
 =?utf-8?B?aU0rZTBuSlNUY2MwREpYbGRsdXl0UVdqUElpdFRZWXpMWmhCcjdDL2Q0MGtn?=
 =?utf-8?B?WmJLRENNRmU3akNSazhxaHJXSjdBMnU2c05oQjhqQVRzVmVQeE1GNkVVM2JT?=
 =?utf-8?B?YW9MK2I2QVIyREhITSt1bkxKT1lKY0xmQllhWWx0dUhGODA2dktuSi9Kc1E1?=
 =?utf-8?B?Znk4SjdkUkYvR3lGcFdSYVdOajJmRmdJbEZGdzdlN0VhL0t1UGNQd1hhV3NG?=
 =?utf-8?B?NVN6ZWVaWlVCU09KL2dRMzA2VU8xUm9reTdzdDBrbkozeXdzODdPamdpTmRq?=
 =?utf-8?B?NnJNMWZ0dGFBYUJqdlUxVUgrOGFQZU5JQkNSZmo1REttVzVWTXNVaFJxQncv?=
 =?utf-8?B?V2RDQytkRXN6MWZIcTk4UFFCUDVBK3F2WXgvdThYN0huaHBEcmhlUXRnRU9j?=
 =?utf-8?B?NEE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 265f30d9-8750-42cc-c607-08de22b70d1a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 13:17:52.9931
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bYMxsRye4sRbj8TT5AjUa4QItEG2F9lagBuyykTMw5Kjgso8ZalR+fmy8ocGWFVxNm1hG6LHcNtERspwOxzHU//n1Uvj9t1H+yOA/CRDg6U=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6474

On 13/11/2025 12:49 pm, Frediano Ziglio wrote:
> From: Frediano Ziglio <frediano.ziglio@cloud.com>
>
> For xen.gz file we strip all symbols and have an additional
> xen-syms.efi file version with all symbols.
> Make xen.efi more coherent stripping all symbols too.
> xen-syms.efi can be used for debugging.
>
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> ---
> Changes since v1:
> - avoid leaving target if some command fails.
>
> Changes since v2:
> - do not convert type but retain PE format;
> - use xen-syms.efi for new file name, more consistent with ELF.
>
> Changes since v3:
> - update documentation;
> - do not remove xen.efi.elf;
> - check endbr instruction before generating final target.
>
> Changes since v4:
> - simplify condition check;
> - avoid reuse of $@.tmp file.
>
> Changes since v5:
> - avoid creation of temporary file.
>
> Changes since v6:
> - install xen-syms.efi;
> - always strip xen.efi;
> - restore EFI_LDFLAGS check during rule execution;
> - update CHANGELOG.md;
> - added xen-syms.efi to .gitignore.
> ---
>  .gitignore            |  1 +
>  CHANGELOG.md          |  3 +++
>  docs/misc/efi.pandoc  |  8 +-------
>  xen/Kconfig.debug     |  9 ++-------
>  xen/Makefile          | 25 +++----------------------
>  xen/arch/x86/Makefile | 11 ++++++++---
>  6 files changed, 18 insertions(+), 39 deletions(-)
>
> diff --git a/.gitignore b/.gitignore
> index d83427aba8..213972b65c 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -222,6 +222,7 @@ tools/flask/policy/xenpolicy-*
>  xen/xen
>  xen/suppression-list.txt
>  xen/xen-syms
> +xen/xen-syms.efi
>  xen/xen-syms.map
>  xen/xen.*
>  
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index c9932a2af0..3bdcc3b47a 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -65,6 +65,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>        for hypervisor mode.
>  
>  ### Removed
> + - The install-time environment variable INSTALL_EFI_STRIP is no longer
> +   supported, xen.efi will is now always being stripped.

I'd rephrase this a little.Â  "... INSTALL_EFI_STRIP no longer exists.Â 
xen.efi is always stripped, while the symbols remain available in
xen-syms.efi."

Personally, I'd have put this in the Changed section rather than
Removed, but both can be adjusted together.

This bug is on the 4.21 tracking list.Â  CC'ing Oleksii.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:18:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:18:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161480.1489422 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXE1-0006vC-MO; Thu, 13 Nov 2025 13:18:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161480.1489422; Thu, 13 Nov 2025 13: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 1vJXE1-0006v1-J8; Thu, 13 Nov 2025 13:18:57 +0000
Received: by outflank-mailman (input) for mailman id 1161480;
 Thu, 13 Nov 2025 13:18: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=xbc0=5V=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJXE0-0006uu-C1
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:18:56 +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 4ba1958f-c093-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 14:18:51 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by GVXPR03MB10384.eurprd03.prod.outlook.com (2603:10a6:150:153::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Thu, 13 Nov
 2025 13:18:46 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 13:18: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: 4ba1958f-c093-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Q2DVFNOzrlX2YS2EkDcrEZ6zBc1Kl0sd/Sx2PlaRUojAxbmejIWX/yl5X0Z8pkd9ktDXxufChtK1KGK42dHLGGTxD66rEczduNOwqgvkDXBHNcHV5neWmZnUh+KByI8yO7yT3n8vZCY3NdaFAFIhih+RygvmWQRe+kIohl9lamiz+rbfsY+qUBIGAatdJxc709HmAzN4tVL9ze8gIErOTdj2oo6KPB2k1jKU+Enf5rtrGXU9AxaSmNakXApPH3Pd77EseYZDr3cIDfG+L+sMMoOCs1uCm6DdNYh1pHLeXoKFdI0qrXK/CpY8S9dW8ml5vhZmdCS/LIfqFruYrbNTYA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UIilaY1RUm0BC0spLx7CjqNpWzOHlrprmYkck2DSCvg=;
 b=y00qwUIF3teeF2GSF7bwsj5EOzN3VinjItyQTc3fZNPTPWa9iafUgWJd+C1XT6zC13U0Y/h/ZOBICbBboAqM8e/5hA0mZhMFeM1aoHqvIiiklCnev8Gt0dS/xZaR5ZpYNKtmSqrkPE1qPzPjVC7pVyzomy3zjqnZtBEIUp61cqBo165qkBi9aJrZP9vM/ePmvY+56cIzqJuzeaDEWoxdtOkLsr2zJCQ7X9Nl9zuXCBVYVlmtYekLjR/U9o3g3dFR1bi5aQ9yqHTG3brIlKRiUNoh/QBoKJJrHmMUzpSUVH8iRJa4kc25wV/QV3+XbuHgWKlt/Dwp1hhQiTowvOxjeg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=UIilaY1RUm0BC0spLx7CjqNpWzOHlrprmYkck2DSCvg=;
 b=u5yWSvzN8h1omfP9hVxXbdHIZNn/h6C/BhAbEYGymBuWzdm65G1xc8xuJOKyT1NNpI/r8/8tCh4w914mbv2uqhJzmTBar8JHEmZFq9wvUmzDHRcyOO1cTEp24VHHtyFh3S/3W8hWuNgAFXVCmWVn5IrynBRRm//dL5K7/x9trqV6zQv4TXHztEUX8qxIZ/vq4Z22KxEf5SHtyra4Qv4r0VBkw38ejSLw03qLKmYXzbtPeb+EbGmFZ/PRcvJLEul8LLHRNuwt9Pw5QpLRPWeulXK1tHrXs5v+7WDdD/FXtGfxlMxlbzoN5lttMjCb2+p24cKs6akJt6d8lmvVSD2dcQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <4e4aa540-514b-458f-8036-7941a0ecf268@epam.com>
Date: Thu, 13 Nov 2025 15:18:44 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 3/5] x86: hvm: factor out compat code under ifdefs
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>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <20251111175413.3540690-4-grygorii_strashko@epam.com>
 <af736490-5f04-4fa8-9b73-4071b72e1c33@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <af736490-5f04-4fa8-9b73-4071b72e1c33@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA1P291CA0014.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::22) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|GVXPR03MB10384:EE_
X-MS-Office365-Filtering-Correlation-Id: 19be8b0e-aa3c-466c-e571-08de22b72cd7
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?Um91bm9UVGlZdzBTeVVxTE9uaDAzYUdxelFoeGdRSllndU9OUWhkRnZDVE9p?=
 =?utf-8?B?dkR3STNtZFFZM0kyQVI4U3V1N1JuMWNuWFVwYjdtNHFzbEFuOWt1SlA3RWs5?=
 =?utf-8?B?TWVoL0VaVENMV0s3NkZYVXpBTFpVRVBOUGJPSkc4anJtOVJSU080UTkydUM3?=
 =?utf-8?B?OFVrSnRvTzlQYnhXVzZ6TUM5Z3hESWJjS1M1SFEwYThEVEFaYTZZT1J0RWRM?=
 =?utf-8?B?NkptSjdNbWRRa0VFT1h2Z29OcTgrQzcrOFZhV29Jbk13MVZhNTNPWm91UUQw?=
 =?utf-8?B?NXlITEdjOGd5OVdQSncvTEJ0UDhTazVUSmZwMFBLZzYzMWdIUkNNSnY5a1o3?=
 =?utf-8?B?RE5qVXdkU0dmRlJjcVZXOFZPbzBJYnFyS2liWjAzalRzd2tNa09tdG1FL2hB?=
 =?utf-8?B?TWFNd25SY041cEF6ZjNDTG1hcnNUUjg5V3ZxYnNudDc5ZHZjd1VuUU9BVnNs?=
 =?utf-8?B?NXljalNIa0c0RWN2MFZmclFxZjRuNit0MERheTJ4NDNTdXlMOHV6dmpEbFpR?=
 =?utf-8?B?eFl5enFpM1c3dXZHckpVNFpIU0Q0YlBRV0YrN3djZjBCaUdBc2FIZldUZWNV?=
 =?utf-8?B?R1RnOVFkQ0NLbmUwb3JlcVFNUVFLVk81anhaWTNjZER4ckJDRzgwbEZwUU5U?=
 =?utf-8?B?Z2gyK1VmVXhrUkVzTTlMTHp2OW5GTHJ2SEM4bzBHbDFHTmVrb2s1b2crTTZL?=
 =?utf-8?B?bE5BZ2Q4UDR1ZnRubEJqQmQ5WE9KaGZGRGtWSXJxbGF0ak8yTy9Sc1JNb1dH?=
 =?utf-8?B?R1NLbmdJVHBZRU42RTcrMDcrdWhzd2R1VXYyZUpUMkR3bnQzbWpRNnFqM1U5?=
 =?utf-8?B?TWxhWENHQkFKQklMaHY1dUhVNi9KaUJNclhweDBVMHdzNDcrMHJNQWEzak1V?=
 =?utf-8?B?V1Nkejl5L3Q0OGhRKzdTdi94MzdnNWxXanZKMXJGb1YzU08yRCtRSy9qc1ht?=
 =?utf-8?B?KzkwUWJmY1dJL2w4S1lMS2pRZHRvVUdBNDV1SndXMUdrdzB5MVdFWDlGckNw?=
 =?utf-8?B?U3lZcW9kZzVXZVB5Z3dvcllIQUZaaDBqT0ZPZ0pLaHVSYVZMQ2N4UFhBWGZt?=
 =?utf-8?B?R3VaRWIxK2xHWjVWUDlqK2s5ZHV6Qk5kNUxaMnVpb0VZY0hMelhwaWZLVlQr?=
 =?utf-8?B?clZpYjBjcjMzUmhxQ3ZBTFI2VkNuMGFySU9CSmxYOStWTnBONEhmZGxuWEt2?=
 =?utf-8?B?VDJyVEtibnJmdi9kU2NlMGZTTEw0TWRXZnlZcTFRcUVOQ1VvQ1NSS3FwbHRK?=
 =?utf-8?B?MTVEK2lXNDdJbzFKMjYzQlZOSldIVndNUEFFUGNUbmNValhMcUtNQVhIc3Uz?=
 =?utf-8?B?WXBTSXVXVnJNM2lxU2w1ZVZEeUVwakdvY2xFNFpaSXBHU2w5cHc5anBiL0gx?=
 =?utf-8?B?ZVg0bmM3SGpleXJUSjFrTlJSK2hKY1VCeWlFZVZMejk4bDljc3ExL1JnUC9L?=
 =?utf-8?B?R28zY0s2QXQ5YzYxb2E3Z2R6UThTRHRmZGVCb1ovUGttR1JndjdyUnJkN2pT?=
 =?utf-8?B?Vmh0Z1I2cTBTN3M3MHpPQVB1a3N3bnEzZ1p0bUNvVzFrZEl1VnlzMFhHempt?=
 =?utf-8?B?bzZ1NS9EVSsxQ010VVBJZzVxaGpDN0tZanBQSTNUQjZGVXJmMlF5OC9hK1h1?=
 =?utf-8?B?TTFrcytuM0JESDIrRmErd1RrQWYrYzlEL0JTS1ByN0tYTTVMR0d4RlRwZmx1?=
 =?utf-8?B?WU9odTVuMEpBdGgzaWdWY2JQNFNnQW1mTnJLTFpBdHQwSEtTQ3p6a3lEanRY?=
 =?utf-8?B?Ujg2RTdaUmkwclJXYVB6K3hMZitMaWh0aTdFVXNESHFhaGNsR29qRG55Rkxn?=
 =?utf-8?B?UW9ZTENoa0JSSmd0Q3gyRkFSSC95QTNvSWMwVlpuYkFMd0xOaVh4WGJpOGw4?=
 =?utf-8?B?czZyM2RYellFT2RoaUUwU2JGZEF4REN2SHRxbHNIaDVCcWo1eVJKR055NHdS?=
 =?utf-8?Q?KELjjAz7UHvZADyNLi04lt1cKwff9wmZ?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Y09vUFJDV1J3U1Q1cVYzeWpjZWl6Y09mYk53U3pDaXZiclU2a3RqbDE5aEZW?=
 =?utf-8?B?cEJxVXdrMEhzKzJiUE1QVGpaTzNDVW5ic0l4M29RV1E2NzUyLzdlWURzNXQ0?=
 =?utf-8?B?QTBERjlGcERlTkhQWmgwNHlZUTZMK1kvVnY1aG55Z3J4bGppWWVkWktaaUpW?=
 =?utf-8?B?T09tTlpOay91M3p3cWtDd0VmamkwS1g2Wk1JTHdBbG5QL2pzcDFjTUM3a3lw?=
 =?utf-8?B?eE96VUhOa29QazlPYlRVLzJydUxWNEpQd2gyZE5wVXd1NmpPQTVEblF6bzE5?=
 =?utf-8?B?czg2enZPYXhtQ2hudUFBNzlRTGxJRFE3NENwdVBuTUpGS3NLRHNoMmV3L1VD?=
 =?utf-8?B?WU5oN0tPU09zK09KK2JIY25iSE9seUZqd1lwaENZNEpXTnJYSVdjMHpzU2li?=
 =?utf-8?B?UHFmYnRGN08zbXRsY1VFWHQ2eUE3NGRXM2ZIOSt5SGJOTDJPVTJuV2FjV2ps?=
 =?utf-8?B?UDBzOE9VaFJDNDRScHRtSjkxTlpwaU4zL3NjdWFOMGZXTVhPSk1taHN2QjQ3?=
 =?utf-8?B?WEhyZkp4bzBSR0RmK3MwZldqMHFEM1JCeHBVazBaSEFtOFUwYndBOHFOOWx0?=
 =?utf-8?B?Z294RTN4T2s4TDBFZWVhS1A5d2lXM2FuMngyUkVaWWpka0h6WllGK21FR0RK?=
 =?utf-8?B?Q2pTcnd6RmRoT0ZGMys3WkpzQTQvWjJmeXkwamhpV0M5UzNVT2xoNjhGQVJ5?=
 =?utf-8?B?VUdVcUcwUHdHdVN2ZTFaZlNHZUlkRVVpYnFyV1I1YTNnQUZsWVdUeUlhUEIw?=
 =?utf-8?B?M2lJLzJMcGorVzVaQm54UHF0UUZMTTFGT2IycFljM1ZJWTRIUS8rN1oxZ1NZ?=
 =?utf-8?B?eFNCYWNPR1BXejVjL0ZmOEJGd2lhdTZBZ1dqZG9lb0FJMlJ6UHhoMXlXdVBB?=
 =?utf-8?B?VGhxdjZHNHdRSVNQNXJ5ZG1sRVpRTFNsNkpDeEtwR0xSWWp1Yy9GYzlDaWxW?=
 =?utf-8?B?clFzemNwT2VZRFlzVEFvNVkwMDFCTGczR3cwNUdXNXdsaWFHL3MyVktGTWsr?=
 =?utf-8?B?Qk1Xb3lWVC9PUEU5dTh2aDFVQU1QcUZaYmM5dGt3SlNHWnRtZTEzOFZVTUQ1?=
 =?utf-8?B?RlNlVis0UGpoVHQ3MnJvWThXb2x6N0pNcHBBdEJaenpHci9pbDg1dW5hUWtr?=
 =?utf-8?B?WndqQnAyelVBaTEvSjcyMFdmUi93RjlibXM0cHBvdXN3dHdXK1hIeXNScjJL?=
 =?utf-8?B?L3ZGOTRJMkdjZ2pxRDlwdzE4WkJIWWpMR0xFODdzY3NZWnVaTEFvYUlTL1Rh?=
 =?utf-8?B?dGtjNVlFQnZ3cVUzSksrYTY5Y2Uxa1pHV1l4MU9WKzJHZng3Zk1iQTBqVGgx?=
 =?utf-8?B?dG8vcmxVbWpIZGZFQnRGbHV4UGZIQ0xyUEVoZHhkVkdHeU9mRVBLS2ZrOUhT?=
 =?utf-8?B?VUlpbzNqNGR3SndlZlloNjdsR1lhblVpN25xZmF2WG95NXZxc0QrZm1QQkJn?=
 =?utf-8?B?Ynk4bDZRNmVuNlFKY1JVQkpzc05Tb0RrendmZGU0Z0lCQ2xqVnVmSk0zZ04w?=
 =?utf-8?B?ZXc4eFFNRzViUTNpaXVvSC9TS00zUUF0TG1KUGlTSG5xTkI3OVNuTGJyeWxT?=
 =?utf-8?B?Sy9WSVpnQnp3UE1hRGlKK1NPbGxVeGlOV2hHa2JwRmllUFpyZnc3cTNVNWg0?=
 =?utf-8?B?S1V4SlRpbnhpdmhYRitFQy94S2JmRDNNRU1mM0c5K0hCQklIRUdDVU1zaUVN?=
 =?utf-8?B?NndtV3E3NEZ0S0tUZkZORjRtcWFJS3NQOXF5MjZrM2Vjd1ROSE9uaG5sNzJ5?=
 =?utf-8?B?TDFXbm9HT21EcmxKdjJCWEJ6UHdkcFlieEE0TGJ4VkpGREF2eUZta1BzMmFT?=
 =?utf-8?B?VjdrWCs0SEhNQkxZcis1c0lFaXh4TGhWdEZWZDcvSmYzSHVJL3VPOFZ5VUUx?=
 =?utf-8?B?VDJ2VEJLVEJiK3lzQS94SmI2RFltaUpPQ0w1cVJSQnp0eWhhU1BUSE5SclZx?=
 =?utf-8?B?SnhadEY4WGFCUUZneWtQL1hKUFJiZnYwL3dvcnJ3RFNNVCs4U05oNUJJbkhr?=
 =?utf-8?B?dHhJcVBaek1jd0d0eHp5OUVTL0pIclo5TytvbElLcUlXQjNmbmxMemNjUUx6?=
 =?utf-8?B?cEFMVXlxVFBwUnFqUjc2RXRIZWFhT3VpemJseUV3dkNHLzZOdGs5andxYUxk?=
 =?utf-8?B?YW9za0RSM3l3NUVJSjZxQno2T1ByZ2tFeUdpL2dNMk9ZbGNrbnlPVGhRcjlV?=
 =?utf-8?B?Rnc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 19be8b0e-aa3c-466c-e571-08de22b72cd7
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 13:18:46.1359
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cFApE2MB/w+J9SLu8+3kGB6WEm9Yk0GQfoxHF4nKByQMaqRUwE2WpchZV7AGMZREIJdSREKCeQDhEi+31DNdJINShRP36ZtqbSFmbTS99jQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB10384



On 13.11.25 14:30, Jan Beulich wrote:
> On 11.11.2025 18:54, Grygorii Strashko wrote:
>> @@ -3991,7 +3995,7 @@ static void hvm_latch_shinfo_size(struct domain *d)
>>        */
>>       if ( current->domain == d )
>>       {
>> -        d->arch.has_32bit_shinfo =
>> +        d->arch.has_32bit_shinfo = IS_ENABLED(CONFIG_COMPAT) &&
>>               hvm_guest_x86_mode(current) != X86_MODE_64BIT;
> 
> I think this could need commenting on if we really want to put it in this shape.

ok.

> But why would we retain the has_32bit_shinfo field in the first place when
> COMPAT=n?

Here I'm not sure. May be other can comment.

> 
>> @@ -4965,6 +4969,7 @@ static int do_altp2m_op(
>>   #endif /* CONFIG_ALTP2M */
>>   }
>>   
>> +#ifdef CONFIG_COMPAT
>>   DEFINE_XEN_GUEST_HANDLE(compat_hvm_altp2m_op_t);
>>   
>>   /*
>> @@ -5064,6 +5069,12 @@ static int compat_altp2m_op(
>>   
>>       return rc;
>>   }
>> +#else
>> +static int compat_altp2m_op(XEN_GUEST_HANDLE_PARAM(void) arg)
>> +{
>> +    return -EOPNOTSUPP;
>> +}
>> +#endif /* CONFIG_COMPAT */
> 
> I'm not in favor of repeating the function "header". Imo such #ifdef-s better
> go inside respective functions' bodies.

ok.

> 
>> --- a/xen/arch/x86/hvm/hypercall.c
>> +++ b/xen/arch/x86/hvm/hypercall.c
>> @@ -29,10 +29,12 @@ long hvm_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>           return -ENOSYS;
>>       }
>>   
>> -    if ( !vcpu_is_hcall_compat(current) )
>> -        rc = do_memory_op(cmd, arg);
>> -    else
>> +#ifdef CONFIG_COMPAT
>> +    if ( vcpu_is_hcall_compat(current) )
>>           rc = compat_memory_op(cmd, arg);
>> +    else
>> +#endif
>> +        rc = do_memory_op(cmd, arg);
> 
> Why would this be needed when vcpu_is_hcall_compat() already honors CONFIG_COMPAT?
> (Same question then applies elsewhere, of course.)

This I do not like by myself, but I was not able to find other options :(

hypercall-defs.h is autogenerated and it's the only one place where functions
declarations like do_x_op() are appeared or disappeared.
So build is failing without ifdefs as compiler can't find compat_memory_op()
declaration.

> 
>> @@ -171,6 +177,7 @@ int hvm_hypercall(struct cpu_user_regs *regs)
>>           HVM_DBG_LOG(DBG_LEVEL_HCALL, "hcall%lu(%x, %x, %x, %x, %x)", eax,
>>                       regs->ebx, regs->ecx, regs->edx, regs->esi, regs->edi);
>>   
>> +#ifdef CONFIG_COMPAT
>>           curr->hcall_compat = true;
>>           call_handlers_hvm32(eax, regs->eax, regs->ebx, regs->ecx, regs->edx,
>>                               regs->esi, regs->edi);
>> @@ -178,6 +185,9 @@ int hvm_hypercall(struct cpu_user_regs *regs)
>>   
>>           if ( !curr->hcall_preempted && regs->eax != -ENOSYS )
>>               clobber_regs(regs, eax, hvm, 32);
>> +#else
>> +        regs->eax = -EOPNOTSUPP;
>> +#endif
> 
> I'm generally against most attempts to use ENOSYS, but here it should be used:
> The top-level hypercalls are (effectively) unimplemented in this mode.

ok.

> 
>> @@ -208,10 +218,19 @@ enum mc_disposition hvm_do_multicall_call(struct mc_state *state)
>>       }
>>       else
>>       {
>> +#ifdef CONFIG_COMPAT
>>           struct compat_multicall_entry *call = &state->compat_call;
>>   
>>           call_handlers_hvm32(call->op, call->result, call->args[0], call->args[1],
>>                               call->args[2], call->args[3], call->args[4]);
>> +#else
>> +        /*
>> +         * code should never reach here in case !CONFIG_COMPAT as any
>> +         * 32-bit hypercall should bail out earlier from hvm_hypercall()
>> +         * with -EOPNOTSUPP
>> +         */
>> +        unreachable();
> 
> I.e. you rather mean ASSERT_UNREACHABLE()?

ok.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:19:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:19:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161490.1489431 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXEU-0007TA-3O; Thu, 13 Nov 2025 13:19:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161490.1489431; Thu, 13 Nov 2025 13: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 1vJXEU-0007T3-0p; Thu, 13 Nov 2025 13:19:26 +0000
Received: by outflank-mailman (input) for mailman id 1161490;
 Thu, 13 Nov 2025 13:19: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJXET-0006uu-Mp
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:19:25 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5f26e281-c093-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 14:19:23 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-640b06fa959so1488471a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 05:19: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
 4fb4d7f45d1cf-6433a4b1dc1sm1485362a12.25.2025.11.13.05.19.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 05:19: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: 5f26e281-c093-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763039963; x=1763644763; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nJBHzD6gKkuZAHFa7RBzBbE70tyY7oUWjrvjeW9kIEA=;
        b=D+bJIbXs/8J+AZUtWdeHQvHBxSya24bOtsVMFEbcYkBkFb8PffdKxBZT78K3GRtbpZ
         w1tDOzp0+AhanDOGo2xCG+y/cV5Wa3w6Z7YI0lhfFt1jPBtkpR9FZfo3aRbJ2xU7dPFm
         o3Gg2i+eIpRu/wNnn6fBGqq1l8VVadEitHPrB+dyVjMUEIni9QVmxBTka5X1tiPuhtb3
         AALTJo7/E7+6KurxHCMDlbgzlSGHoipPACkTReEd6/h59ph1l+WAj+ILuGpeA6zFfWds
         dYw5BkJsm+Ha8DYhYGaZihhvwnCC7VHl+fA0q2kJIrrVMmKcp0B+nIRqO9LxZrL/tuDd
         ExXw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763039963; x=1763644763;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nJBHzD6gKkuZAHFa7RBzBbE70tyY7oUWjrvjeW9kIEA=;
        b=sL1qOhCuQDUeEqaPs8rx/ktGkekaNnmSk9aHtoznrUKI5mh6eK3+r91K+yiUhJAitz
         2MwKdEyzEpNtVNAsVO2Kp8CKjrf6ahBZemV6gJ0ZW5xE7RSVSFTRaDoJ3xlP42pixQnT
         gIH/5uWyxJb4CeyEn7RHLbJEgw9Z4cur9Gydc4aMK0OzuYndW8eKMqANCu2+G1cw/ED4
         ha+iiSC04yfSb+9jbq6wY5aXHmcuOe6mZJJ2QZyQ1qsrTKU0bXMoEods7U4KYJkfXLVt
         F8mKl9xAWSgmS4/9/2ccT2f3CZ6Xr0IlnLDDh8xts1mJRRwbfsaoqgNshdDE/L9YZ0gA
         y2dQ==
X-Forwarded-Encrypted: i=1; AJvYcCUndx26yT4MgreRCD21R7z7VKON8KMKUXhqJpUq1B2boh/FgDYiMSZlSR3DlYgwvhzqPrzAxwVKICQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy8OHc++JNg9co/+f3C07NoHm7w1mU5dUcvHgpfI2/+XT8yB/zf
	Icq1HIKcpEe9SrOM78ANaWQpIsIY6OhL+tybO1E7niTGit9rr/IjeQ2k3uWPZdPX6w==
X-Gm-Gg: ASbGnctE8dZ32kgwD2W8g1fRm9Yj/5clbWg5P+MR8xJDCrglhNhZXqd465o65+tQa4R
	zwFxDUoYNsdpUWGqEkJMou62rwoSXrYu1vaKogpOlOq+sSiVQkmCfdPq3F1QuiE2nfIRDd6SPBp
	eI5zvvnf1AQCQGIMi8Dww+WlSdSu42p9piU0haCjYigquNltpAycppzYLCTIHoVMszVn8ltJTcP
	W4tfsFbC3QCc01g95EOnK3ETNq8QXDpKNR3Ecbi6P+XBZBTFW/IJwAbCTZmV5InUoI8fQX6PwJp
	LqKELGkhWHZvP6BnqaAWb47s+5XhjWCL9sBScFwvrLyt4yj600uAs/ARIbu+nRIN0bYtP6eIIHh
	JYzr6IqjoggTLYqclj2k2XCrP+xeexNMz2vcTBMzfwcY1iEW+kltmERmlwaU+cPZQOE6Bg5ynjO
	r/e4ded+KWxHSWsNDm/StdCJbtEhx80kaPZyh0sF/6xUIyB4Cy7mwW742L0GVup26D
X-Google-Smtp-Source: AGHT+IFDJz6bECSFCp3o/6cSu38GBqJu9L+415RRf3YVNf+KAtAKHSgcXwEYk5Q2s6I+HXyXBJjiOw==
X-Received: by 2002:a05:6402:34d5:b0:640:947e:70b7 with SMTP id 4fb4d7f45d1cf-6431a38d1d0mr5913410a12.3.1763039963312;
        Thu, 13 Nov 2025 05:19:23 -0800 (PST)
Message-ID: <3c70553d-adc4-4f84-aa28-399f6f4c1677@suse.com>
Date: Thu, 13 Nov 2025 14:19:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 2/5] x86: hvm: compat: introduce
 vcpu_is_hcall_compat() helper
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <20251111175413.3540690-3-grygorii_strashko@epam.com>
 <da0d003e-a593-4b40-ac79-c889a6be683f@suse.com>
 <f929a081-4f8a-489f-935c-4ed0656095f0@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: <f929a081-4f8a-489f-935c-4ed0656095f0@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 14:07, Grygorii Strashko wrote:
> On 13.11.25 14:22, Jan Beulich wrote:
>> On 11.11.2025 18:54, Grygorii Strashko wrote:
>>> --- a/xen/include/xen/sched.h
>>> +++ b/xen/include/xen/sched.h
>>> @@ -311,6 +311,15 @@ struct vcpu
>>>   #endif
>>>   };
>>>   
>>> +static inline bool vcpu_is_hcall_compat(const struct vcpu *v)
>>
>> Does the vcpu_ prefix really buy us much here? The per-vCPU aspect is already
>> conveyed by the function parameter, I'd say.
> 
> Such annotation makes it clear that operation is performed on struct vcpu object,
> which improves readability and code analyze (might help also if somebody will ever
> try split sched.h).
> 
> For example:
> 
> is_hcall_compat(curr) in the code doesn't say too much - need parse code
> (or have modern editor which can parse and highlight parameter type for us,
>   still need some mouse manipulations:))

That's one of the reasons we aim at using consistently named variables. "curr"
should be pretty clear to everyone as being "current" latched into a local
variable. Plus of course for every function invocation call site context is
relevant anyway, when it comes to arguments passed to the function.

> vcpu_is_hcall_compat(curr) - is kinda absolutely clear from the first look.
>   
>>
>> Actually - is a parameter in fact needed? It's always current afaics. (Then,
>> if the parameter was to stay for some reason, it would want naming "curr".)
> 
> "curr" it be

My preference would still be is_hcall_compat(void).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:23:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:23:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161510.1489441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXI7-0001W3-II; Thu, 13 Nov 2025 13:23:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161510.1489441; Thu, 13 Nov 2025 13:23:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXI7-0001Vw-FJ; Thu, 13 Nov 2025 13:23:11 +0000
Received: by outflank-mailman (input) for mailman id 1161510;
 Thu, 13 Nov 2025 13:23: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJXI6-0001Va-Tn
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:23:10 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e5484712-c093-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 14:23:08 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-b7346565d7cso110884266b.1
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 05:23: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
 a640c23a62f3a-b734ff36ac6sm161537766b.74.2025.11.13.05.23.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 05:23: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: e5484712-c093-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763040188; x=1763644988; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HI7TmntaBwxD8yMX2ho+tjmS9OR8n5Y7rvtu8Yv/BiE=;
        b=eonv2oidcqS/jeUFuCurQ5deFTAvFWh8UUinAO6TpeHDwkzdWaP12EWXVdjRVPVjcv
         xRep3cn0VoH7CNnVmPcvlNH9vOP7JvMtHL3cy4Bm6kaM4RaFkaBlkBP1rBdJlJRNePHZ
         QaWKjv4cZN13sMCR0iMnUMHSpPVrZrghaHzZBYT7c1veH4On9vPGJLDu8rpOwUPQBFXU
         y4a4TGeVvqjEeQuqCrM9r1T87vDNpGKuUykz4ExRhxBe/VIWg1SMbdqYsXsYvS2Cwrvw
         jO1Rtco4X6gd9PW9kiWhN1cBtfkWwLfMBWEiptE+Sv99+ae5Jc4hi5r4xRto8xSwHynX
         R0YQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763040188; x=1763644988;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HI7TmntaBwxD8yMX2ho+tjmS9OR8n5Y7rvtu8Yv/BiE=;
        b=KT7QgGbKu73tRHmCFaWBhC49e9C0RVNGXqY2YnK8yR7qeqLw+Cbe+dXjhyBr0AGLP9
         en9OC9zfbohBxqb9vJuJUmkCA2vqbEF0sMFfWmrfJnkg6XLbBpLpdSkfmya6UdWf29Wv
         weofEEglgAgbDVXaJJu0fIFl5Ula7WYe1JnViR4HaQrPevJOJk2/8Khh713y15HwKvEj
         DXxfpzSlbwvWlbgv7DNvqhQYIPntEuSPM8huHQITIBNp89mcw3eKRMejnZLXafHH8I0v
         LGCbJS/hrSugeQh2wRTE8dvR/4CYkcMbA6Y//KqIT6A9B4MD7vopHN5IKtN2lIKfyBK1
         6iEA==
X-Forwarded-Encrypted: i=1; AJvYcCW6zX9AQhs2+xBg31lPS9ZNvX26nnX6VR270lzuH5a0uYbtIRsy/pRJ7vaz3R63LYWMc6RsKlqrA5Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwjqHw3a1LEQZUfLooJi/dErzaXyamNYB/RdxAHyzkgV3vj4ySU
	kIFSlBVnbS42KXWy/CsGlj58p8E8NkPRX3Z0WpBt0TPdYQ5suVviei2apxFqS/RM/A==
X-Gm-Gg: ASbGncsxOt/l/nNe7Yl3OThT6D8ff2NZYkW34X39ZNMThmijcjtcgvQuZjSTAsvDbXo
	pUC0/PiYyHgVMk7D/Y5Ut2Q4DZVJDQs7banq8mlXBco9zIice536nMNBtBaTMn0rDs8TlC/oGIT
	1RRbZnkPLrOZOOv5YexPGNSx7GEq5wGGScMaJsJ1ceAYFhwxihWgNeA6tsT0RtXlyA2jPTxIpSw
	L0A1V0DhFUqsWNxIqS1zO7mfWteaFI3Afjp6XKYWsgPG8f/4OKL+bpNmdGpEIc/9pi4EcqwYOeb
	IfwzCCFe6YiN0QtQw+PiA9MDH0GbSu3f1gYPTAEYazvCxN6Mw2BQQ8wuZ8xtlZX6T2DN5+lQDQy
	Ck6OIocQgw16T6TC8QNBRge9QWjqZVaI7axHhwNV4e9azjZaaAGMWEQOqBjAFRJNqwcpn0CoVav
	CW4JYTTS4OnljL+90h22lhpwTSWjp32n3z9zN8pPmAekDHdFb8v7qX/xWLd7CFKD1iCJ1/dt/mS
	Zk=
X-Google-Smtp-Source: AGHT+IGjCw3/fS3tiKhou68YEvBIe4cjAyQ5BjFGqQxIPoOl3Tx9UXQD6Bl9QETJ+GfDqTZ0XtewJQ==
X-Received: by 2002:a17:907:1c27:b0:b6d:5c4e:b09f with SMTP id a640c23a62f3a-b7331974f42mr592047366b.5.1763040188156;
        Thu, 13 Nov 2025 05:23:08 -0800 (PST)
Message-ID: <be6f958b-ae23-4cd0-9dd7-c096ae36d39b@suse.com>
Date: Thu, 13 Nov 2025 14:23:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 3/5] x86: hvm: factor out compat code under ifdefs
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Juergen Gross <jgross@suse.com>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <20251111175413.3540690-4-grygorii_strashko@epam.com>
 <af736490-5f04-4fa8-9b73-4071b72e1c33@suse.com>
 <4e4aa540-514b-458f-8036-7941a0ecf268@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: <4e4aa540-514b-458f-8036-7941a0ecf268@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.11.2025 14:18, Grygorii Strashko wrote:
> On 13.11.25 14:30, Jan Beulich wrote:
>> On 11.11.2025 18:54, Grygorii Strashko wrote:
>>> --- a/xen/arch/x86/hvm/hypercall.c
>>> +++ b/xen/arch/x86/hvm/hypercall.c
>>> @@ -29,10 +29,12 @@ long hvm_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>>           return -ENOSYS;
>>>       }
>>>   
>>> -    if ( !vcpu_is_hcall_compat(current) )
>>> -        rc = do_memory_op(cmd, arg);
>>> -    else
>>> +#ifdef CONFIG_COMPAT
>>> +    if ( vcpu_is_hcall_compat(current) )
>>>           rc = compat_memory_op(cmd, arg);
>>> +    else
>>> +#endif
>>> +        rc = do_memory_op(cmd, arg);
>>
>> Why would this be needed when vcpu_is_hcall_compat() already honors CONFIG_COMPAT?
>> (Same question then applies elsewhere, of course.)
> 
> This I do not like by myself, but I was not able to find other options :(
> 
> hypercall-defs.h is autogenerated and it's the only one place where functions
> declarations like do_x_op() are appeared or disappeared.
> So build is failing without ifdefs as compiler can't find compat_memory_op()
> declaration.

Oh, I see; I hadn't thought of that aspect. I wonder if we wouldn't better take
care of that in the machinery there. Cc-ing JÃ¼rgen, who did introduce this
originally. Maybe he has concrete arguments against us doing so.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:24:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:24:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161523.1489452 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXJc-0002Io-TQ; Thu, 13 Nov 2025 13:24:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161523.1489452; Thu, 13 Nov 2025 13:24: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 1vJXJc-0002Ih-Qn; Thu, 13 Nov 2025 13:24:44 +0000
Received: by outflank-mailman (input) for mailman id 1161523;
 Thu, 13 Nov 2025 13:24: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJXJb-0002Ib-7M
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:24:43 +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 1c4ded53-c094-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 14:24:41 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-b7355f6ef12so89352166b.3
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 05:24: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
 a640c23a62f3a-b734fd80841sm166261066b.41.2025.11.13.05.24.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 05:24: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: 1c4ded53-c094-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763040281; x=1763645081; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ldd/ucrpDEI3NtzsEB427Xdl7SVMnamsSXVE6QKJ2+w=;
        b=dfLZQ9uzBrMc8nOEfP+/3N2DG3w3tZA6htdOhGmHdx67i6hCyh9jj+OVNRXkhrF1pz
         K4QxUdi4dE0E3O0YaxQNiEZsNCbZnXZJhYRJd4Br+0B4KTuohb4lKyE/dF3v7M9BNTBt
         T9gBuxdpftQoEY/k2fwC4K8SCooamAK9CHJhezoyPYgiRDSvacoC4SenlEyLj2RcG1/P
         N2MhQogklBNszJV5LonLEhsXX1n7aOrR2SZIVFH4VCU6k2HwUtV7y5lVqKbWqPC3KUAh
         n95hCulpx12V7QXEJTgbvlXhAmTQ7Cl5cKHTL1cHwdmPsFxRfMzGgejMJi31akUhgorC
         vUaQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763040281; x=1763645081;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ldd/ucrpDEI3NtzsEB427Xdl7SVMnamsSXVE6QKJ2+w=;
        b=bxW5BpS2zdu7diA3w20vOY6eCm+nKkEhzQ05TxAhAqYZh3vbivN42u3IQl1c3BNw5v
         C3VD0plAVcZBbF4nRbevBYZjMQZkB/dzYLeUQJr4iYPV0ig6KJV9LWyolX77s+5eb7Sq
         I5TCMmDWgW6XoHGADr9k6VYQshiCaojky8i8GeQZv9UdIEKSMDfU0Rg2F3MeF+8VOGd4
         1xtv/qtvdRAl13sRWEAPPiI/tnFv9BLbZZQKP0jebnoKAGF7QqnhudtsmBXmZ3OsjXE2
         UEePm2o4/X06rzxSW4nfUz+dTxBYz5p+zkBarKFL05tta0FFKqQxRUkRLoL3zcC4Zfb7
         MPNw==
X-Gm-Message-State: AOJu0YxHIp3tzlY3ssGpcpUHz9UZLqhTgS15U91M8LxYugxlqTy+DpmK
	5+z3BST/+hV/24SBiYbU4X0955rCo82l5VicRMH3P1qg2Z/WlsRuu21eSIBkdEXb5w==
X-Gm-Gg: ASbGncv+4GVzZ0Mn1Y+emGtORD0SHcZDtzn17e++SggC91BolfrhLQZw7uD3oVIdwLB
	ngzWa3Do8c0ndYSAmdtZ8iLwEeuZez+dKI5O5AZPxD08/3EnZjXDcGgcsVV9YChEBS1CTxEPI7B
	jOi87MsWEZZESSHBEPAFUXTjEezwHfJ2MZ/bkxw1WhQEae9VG0zZE2riWLi7weZ7guk+Vr61jFD
	k8AkrmT8x5ysiwcIYyOasbTrpoh9vZeJ4lzY1brolCuh6rYSavtonYVWvHiBh4AKipzeTjmKe8K
	j5cAftRrJruvG8aESJ2pgfo6QQZfDSd+lRYy7d7edHDqofZJ/Z9nkDpUErTsFXXHzWy0aXDwXS1
	3JDh2Qh9TVFtwOlMJH3Yf1q8HnpoODKDZxBf2elWjOaWJR9kpyQ/w4V5XWAhjKpUPkocG32meE0
	FBJyEDMW/y60HAVL5va6zmtbEw4J9c5ikyRCdqfgzlDl61Kk+ru2YoyYjIhwbWw+4aRgECe2rUb
	Zg=
X-Google-Smtp-Source: AGHT+IH56ZCFaD9fOtKXzDZV1ZoayVd9++TEy19W02z6zvxooQSQG93ibbfn0VDE3DenNkZoy3zK9Q==
X-Received: by 2002:a17:907:c14:b0:b6d:50f7:a805 with SMTP id a640c23a62f3a-b7331af6803mr543011866b.59.1763040280571;
        Thu, 13 Nov 2025 05:24:40 -0800 (PST)
Message-ID: <19ab9d24-057e-4c70-a663-b8288ea630a1@suse.com>
Date: Thu, 13 Nov 2025 14:24:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] x86/EFI: replace ebmalloc()
To: Marek Marczykowski <marmarek@invisiblethingslab.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <bdbb2884-c2d2-415a-8891-a598d112e34c@suse.com>
 <452fdf1f-646a-4bb1-83ea-ac4c998a096b@suse.com> <aRXRtY10cFN38d02@mail-itl>
 <4391d560-870e-4010-b3bb-dee2935f9732@suse.com> <aRXWLrEGbSRdqDA7@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: <aRXWLrEGbSRdqDA7@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 13:59, Marek Marczykowski wrote:
> On Thu, Nov 13, 2025 at 01:46:20PM +0100, Jan Beulich wrote:
>> On 13.11.2025 13:40, Marek Marczykowski wrote:
>>> On Thu, Nov 13, 2025 at 12:09:37PM +0100, Jan Beulich wrote:
>>>> --- a/xen/arch/x86/include/asm/brk.h
>>>> +++ b/xen/arch/x86/include/asm/brk.h
>>>> @@ -2,6 +2,10 @@
>>>>  
>>>>  #include <xen/types.h>
>>>>  
>>>> +#define DEFINE_BRK(var, size) \
>>>> +    static char __section(".bss..brk.page_aligned") __aligned(PAGE_SIZE) \
>>>> +        __used var ## _brk_[size]
>>>
>>> This chunk belongs to the previous patch I think.
>>
>> It could, but it's not used there yet (i.e. would count as dead code).
> 
> But in the current shape the linker script change in the first patch is
> unused. IOW, I think adding .bss..brk.page_aligned to the linker script
> should go together with DEFINE_BRK.

Again - could be done that way, but there's no concept of "dead code" in
the linker script (afaik at least).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:26:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:26:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161534.1489462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXKp-0002qE-73; Thu, 13 Nov 2025 13:25:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161534.1489462; Thu, 13 Nov 2025 13:25:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXKp-0002q7-40; Thu, 13 Nov 2025 13:25:59 +0000
Received: by outflank-mailman (input) for mailman id 1161534;
 Thu, 13 Nov 2025 13:25:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xbc0=5V=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJXKo-0002q1-8S
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:25:58 +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 471803b6-c094-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 14:25:53 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AM7PR03MB6245.eurprd03.prod.outlook.com (2603:10a6:20b:13f::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Thu, 13 Nov
 2025 13:25:51 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 13:25:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 471803b6-c094-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XgoPIw22xj6XUAYkvp5NSkZ/mzqToPeUIOFVfLkNgOflfSfJoxQPCeVUddT+qnvcn3mLF8beIYhQoymju/Higip/isgx7ehgzMGI88Sr+XRUNQVFcFh47s1si4fjzDjMnVm9HIiGSMKu2P0fZyBiagZnuOu/moif0Y05dOlx20+S+ivf6yDd934Zu667JeoM23ztlJ/w+Fv2G18y7DSzQi2FdrW/0nZcJQcOp7Jj4jX4A5+8u87Gd9VEi9LVxMphgwvcNfBWeK6urOn++15Mptm++dw6zM1mSjZkaUPrYsAtIw7VtjJuwDcnEeNyI41VvmjcfqNmBP+sc26x3jB3jg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=u34W0itE/so5UXnaNLLHFdfb+egyXWA9pu9/vH2ID2s=;
 b=OjWOwvOXZNxK4QCTGFds5oCtjF8qDUjNq+go8mUNzOCRLmhrUgF2435RYW7l6zruvpam2D1fPZPDq+mkUN2xhkhb3lrmPk3g1HDjyB3cUkEqjDxqWiOnL+TDBy3H6RCyi5L23seT2936l6pIE+LxzTiLf9X6LbAG+YXUTXKkvVWzOCAm2uoVzUIIXsUESErdt8ba/fVFC1YXXlF3wRe5e++SYJ/fXM+iuQimWYKmCrOBEaSDeGdiI07s0gqzNfamWZe/sfB0AwnQvCVSpTjfCdRGQuN1NfPFHBM9qZXUm1g4G7+aWtdc7ihs26DIWktM6+7V0IPKwJUzASNHRiiTOQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=u34W0itE/so5UXnaNLLHFdfb+egyXWA9pu9/vH2ID2s=;
 b=JVxEgQlEqpSmacSfvbkww5OF6zKPSaVpAoxK91xFPk3SBFbYFbRRnKYtI1W1fo82Mm8u+6eqwq9XtklxZW3QjUbcinMMXrWREZ4BzFs03kA09Mh3IzYfJqOjsWQgP8Mtx0Z7WsbC1MnF6RcSkBxU5k3DVCXDmWgMoDk+A6LzyCBKWqgsPUqzNKIpedVWaW5hMEWjA+VhAIhHU/8PauNvtVLRYh/aonwB9pT2PYIc8OxYITyvpMwi/j6R+0ZG3BS25ajIBVk3Aw3TaDRwsYeO50nVl5qs579UdobrP7E07lcjuCquWITBQztEv8AqdwSOoTYW0FSKyR8SpFRNOT3RIA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <ab2a849c-cf1e-4a2d-92e3-f13a39513dca@epam.com>
Date: Thu, 13 Nov 2025 15:25:49 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [RESEND PATCH v2 1/3] x86/hvm: move hvm_shadow_handle_cd() to vmx
 code
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251111200958.3576341-1-grygorii_strashko@epam.com>
 <20251111200958.3576341-2-grygorii_strashko@epam.com>
 <25ec2731-e629-4cc7-b374-5e48fba4c814@suse.com>
 <f8dd8d55-8b5f-403a-9009-49d13112a774@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <f8dd8d55-8b5f-403a-9009-49d13112a774@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA1P291CA0015.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::13) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|AM7PR03MB6245:EE_
X-MS-Office365-Filtering-Correlation-Id: c043bf60-7571-4a2b-6999-08de22b82a03
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?cHhURkxIL1BleTFyZy9xZDRMRFBLUFQxNU5rVHlIWjBGQjlqbmszL3RNTStk?=
 =?utf-8?B?WWhaU3YvTzNwakxCNHR1N2JTSHZjWXJIL1ZXa2NLRm1yUXpSWVlFL0p5Zlgx?=
 =?utf-8?B?Q29RZFhlcm1vbWZLZ1VOSGxONERhVHI1b2lMdEdlMC8wMEpjNkpHeVJlVWVs?=
 =?utf-8?B?TlpubklaWUVTWnhFelhpTy9EVEFwN2hzVTFWZ1R0d05MTnZQei9OYVAvdENK?=
 =?utf-8?B?dzVCS0dTaFRIeHQ0TXVycHA2M3hTN0NQRnplOVBMK1lGTXIrMWpsdTRvVlVE?=
 =?utf-8?B?M2ttRzNMTU9TOTdiTE4xVHlGQzJDT3h0b1VRaWk3WmQ4bnVxcEZHWDZWMWJP?=
 =?utf-8?B?OFdiMnZhN3hjY05xNWVwVWdMWjJTd2VmTW5KRHM1VVg1R3JxVEs3QXZvblp4?=
 =?utf-8?B?QWhqcno3eUZSdlVSSUs4UldWcUtwdGsvL2V5WHdkbS9YSUwwQkFLZkxaOEtp?=
 =?utf-8?B?R3RRbEh3cG4rVEJKMFh1Vyt4L1djTFFnWS9ZQXROOWg2ZWRlc3Ftd3F5Y1lX?=
 =?utf-8?B?amVabWFIZVdGRkVrTzlQUWtLdmhPbGFZelBwMm4yRjZjcFkxVDJFdmNuTDBk?=
 =?utf-8?B?UVhYWUNoeHh4Tms3SUlyNWhPV0IxRkJMYnQ3dTVXQUxWYWhYYkdUb0pGZlBh?=
 =?utf-8?B?T1loLzNNdzgxQzd0UnpNQkdDaDhvS2hXa3lqcXNhbHlNS2RnTnVIY2Zvd0R6?=
 =?utf-8?B?U09KV0RRcVBzbng0MVVrRG9iYm5nZHFMT0oxQjFkaFlrOVVvVGhLemdmdmRx?=
 =?utf-8?B?aDVqcU9XWCtKNGJLSHBRK28ycWVwY05qLzYzZnZGN0diSlg4ZjR4OHlMNko5?=
 =?utf-8?B?eHRMTmhLWUVQeC85UXZXWUNWVVdVQzFNTDBISGFFd2dvODE5ZXk2M21RLzFL?=
 =?utf-8?B?TWRQVjVIOU5acGxZYWpxdVFjQ2lkNlA1SXc4SzBvM09mdFpUclhQK2dpU1JX?=
 =?utf-8?B?N2NFVDBxYUR0Uis0SXM0b0c1UlVVR2oyWVFoRU9OdDNkQVAvMy9POEtnVU5s?=
 =?utf-8?B?KzE5ZjYxaXBQazVMOTFldW15VjFHa1Y0cXFRUzA3TWM4bFN1ZWFoVUFzQXNT?=
 =?utf-8?B?VjJ1ZGFIVmk1WjNZRHVueXpPM3JZc1dCUUc1VEZuYktYckpTNkV4WWMvWVpD?=
 =?utf-8?B?WUVMVlNtazYyRXVjMjBHVGZIOW56UUR5TjBtREZOaUhCQkJqV1BINzBsU2Zu?=
 =?utf-8?B?VUNCZHcvVTY2TXhHSzdic0EvNXdXVWFQNVVvQkZmeFAyTTFUQlhEeS9UTVB2?=
 =?utf-8?B?WXFidU5GbGRDKzc0VXFoMTJlNUxFRWczU0xMSFFpbzJCMTNhTUhpYzh1R3B1?=
 =?utf-8?B?RXN5M0JjbGI3SEwxeWdoc3hCRnFiZm9Ea3B0V3VuSEpBVXZEYml3TEExMXV0?=
 =?utf-8?B?WEovS0VIaWhNS1h3NW9rZFNwaEVaNlhuOHJCRnBhWTljNnU3cTN6WUI1d2JN?=
 =?utf-8?B?U1VMd2IyRWNPMERQWGNTZ3QwNklJUzNpQ1hOekRMSnoxZGt3K29LelBWZi9M?=
 =?utf-8?B?c3NhUHBsYUF1a2VWcW9OSW1YNXViRlhweTUrYkpnaURNdEpTMVR6dGxyZ2c1?=
 =?utf-8?B?NFlseDRHTDRIUlhabE81VW9DWWlFRkF2VUdyQ25MUG5Kd050VElZUEo3YU84?=
 =?utf-8?B?ZWtqUVVCNXE1NnV1UUdZckNqenF5aktSQ0NRajdmb1NwQXRZeEt4M05KcDc3?=
 =?utf-8?B?cVNmMFdnQ1h1VVBWdGg1NDhQaDVoQ3RNTUlLck5jODA4NUc5V0l5aXV0THNz?=
 =?utf-8?B?K0JhaytBcUlWclQvZ2tCVzdERGxuc0lONGxCZlJwdU5vai93MnJ1UE11bm9i?=
 =?utf-8?B?ZzMrVUNwSWpkRXovbXpqTTBXZnpXOUJYVmZwR1RDMU11NzF3ZTExM003U1px?=
 =?utf-8?B?N2VIWWRKRnY1RUNzK0pkZ0hQb3FBZ0ExOHFib0h1YWMzNTBISnlZbTdTZnVR?=
 =?utf-8?Q?0c9VFm5hNx/20InsQpM1KiN2I/cc8Eyv?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aS9JWlg5cHFqQ2tVb0IzdHp0aXlQT3AwWWI0bUdPbDVmNFJrdDRGNkwzT216?=
 =?utf-8?B?QWJkRi9wcW1RU3E4bnVDRWphUGU3S2s3RnREVXdWcVk4UXFFdCt6UHVBN1cv?=
 =?utf-8?B?bDg5M1J5VWJCNmhwZThXeDlETEVuenJlQXg0Sk84MkFFc2xqRXlaV0pJalE5?=
 =?utf-8?B?NHVkaGZFOEVXa01qNEp2MHZmWk1RZysxTVFDWU9MSjdrYVcxajhiV2NCMmpi?=
 =?utf-8?B?azdwdEE4Y2Zra0RWeGlZa0hVclExcXE4UnNrcmE2VkY0N3pjZDFXU1RaaDVW?=
 =?utf-8?B?SUdtRFkrcFMvNFlSa3pSaExsbTNWYTMzYlRicFlUM05BbzZ5ZlFPS3hmNGN2?=
 =?utf-8?B?N3lxaFQ2OW1iNkdKR240N3JZTXM0V1M4aEFsVjJWbE9WTlphNElYeGxBVnZE?=
 =?utf-8?B?dEZPSlAxQ0RCOGhRSG5JZkU3ekxzdW1HTmE5MWtJY0R0cnJwQ2NyV2JDTnJT?=
 =?utf-8?B?UGQ2b25hVnZTbzdkVXR0NXhLQ1NFV2NZK3lPTjhUUlhiTXFsT0laU2FWZDlV?=
 =?utf-8?B?ejB6UTVxV3Z3MGpWODIwVXpTZ05rMFUyb04rblNtbElrUFlFZldBQVY0M0px?=
 =?utf-8?B?enh5RkJtV1NtVC9qWi9SaThtOXVtZnZKdVpQbm0zbjhkMkxnamgrMmpoV3o2?=
 =?utf-8?B?a0pqTkE1cHl1Uyt1eHEra1gyRy8zWGZOUXJneTVpWlVDb0Y2a3NrT0NOYkh2?=
 =?utf-8?B?QWZYOTA5TUNIYXB1RHhWb0dPelgram81L3RwMnFKV21SN1U3VGNqR3U0UmpY?=
 =?utf-8?B?NDUvN2dGSDFzRG9xT3RXVnlmcENxdTkzenJ6OUFId3loMW83RkxjSkVsVUs5?=
 =?utf-8?B?cllUVkc0Z241YXR4RS96cGljUkUwMURiT0txS1hUTUxCRVNieTcyZmRaRysz?=
 =?utf-8?B?SUZqQXNMQy9uQ3NjcUp0WkdaSnBKeVBFZWRneTFxME8rbVlDU2NGK0gyNU5U?=
 =?utf-8?B?RVFwTUx5aWNJbVVnVk9UQ09XQ3JiaXk5TjQxaGErMzNtRmFHMjloeW5TSmlS?=
 =?utf-8?B?aVVUeWlkY0tkTEF4WXVwRVE4KzZpUkFMb1pWZnRSWjF5VTNnNkNsb1dWZ3ow?=
 =?utf-8?B?Q3EzWnc2R1VnTkNIcTBRMXhWeU1OU0dadlFtQk1ueTg5ekpxRlBTT0tpNG94?=
 =?utf-8?B?V3ozM1RIeXlnU0FFdlNzMFJTS2Vhb2Mwcm0xb2UwNG9qQXAzUEVnb2M2MDl3?=
 =?utf-8?B?Zk9ENWorbnpVMDAzQ1hOWlpUMEJnRFhsY3RVY05KdFBJYng4TGRta3ZtcHA4?=
 =?utf-8?B?TVZvZFVlY2NYM2JqdFVac3VQdFBXUDBnSFI2aTlyUzR0bThSVGZyZmJMeEJD?=
 =?utf-8?B?c3ZwMFhrYXJRdkZFVTdGaGI3SkpiTUVpak0xdkJ5Y0IrWXF1UXg2Yms3RDhY?=
 =?utf-8?B?ZTFwSmxCbEk3amhGbFVqNkUwd2RDc0xLZnUxYmxZbENUb1ZpWi9rbklEVEZ1?=
 =?utf-8?B?QnRlc2NrY3lUVFpaWVVaNkozVm5rVnE1ZVo3Yi9FT1E1VENUMEMxOXByWUNr?=
 =?utf-8?B?WXp5NEZlUE9JTWVCVmIwTmVnR1ZlTzZKUFdFTnVOaTloV1pzc21udHVUUkE4?=
 =?utf-8?B?U2hnWlFvZS9pZURCN0hFN1luZ05DTjF2cW9kQTUydFU3Nnh1c1ZqVjhIaFM5?=
 =?utf-8?B?ZkJyNStUS1BIeGdRaFI2NmkxOWIrRDE4U0ZDaFltZFkreXREaXZxUGFMNmRy?=
 =?utf-8?B?NTJHVkVmZithb3gwU1cwUmYwUEphVTc3ZWp1NlRCcS9FQmVqblh5T25LWjhp?=
 =?utf-8?B?Q2NhVHlCVDRrc0hPVXVnaCtvbml4c3R6RGZSdmlnMVZaeVJldUcxR0pJb1k4?=
 =?utf-8?B?RFVUaGVadG5POFJ0V0pLNHdpZkZyS3FGajkzeUYwVkVFV2x1d2NBa2MzQkdK?=
 =?utf-8?B?YXlZNGp4NnFpL0F5bE5yckpWeFZNL2doK2Y1cmtiWXZBRG1lWWR4ZTdnSGVF?=
 =?utf-8?B?aVlSdEFUV1ZHU01CU0lxdUNma0RGbUFGSWNnaVVuZFJsVldxckZwQnFmRjEy?=
 =?utf-8?B?NEVYbFp3T0g2MEJ5SVlzMDUzbWEvOVdLd3R2ZDgxeTV3OVVSK2dJU3BaczRZ?=
 =?utf-8?B?R2thWkFKbWlSRG9nUGU0cmtFOEp6YmdxQjROTElYRjhqbENBS005MzJ5czJv?=
 =?utf-8?B?Mk1pV2lKZWJyVWpQTjZ0QS95ZnhsbkhVMFVsS1h1a2tBOUNjV2VKTGRJR0lh?=
 =?utf-8?B?TFE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c043bf60-7571-4a2b-6999-08de22b82a03
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 13:25:50.8703
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: iBR7jZHdzvEzbPFzcD1QnbdPLy61XZEg0fSZIFx9bk7szMYEHYCJ/6uPuad/QNyLTW8UoZOFJh0Euf5i3yNfwwLAthgb6CqeAexSsqIzsKw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR03MB6245

Hi Jan,

On 13.11.25 13:19, Jan Beulich wrote:
> On 13.11.2025 11:44, Jan Beulich wrote:
>> On 11.11.2025 21:10, Grygorii Strashko wrote:
>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>
>>> Functions:
>>>   hvm_shadow_handle_cd()
>>>   hvm_set_uc_mode()
>>>   domain_exit_uc_mode()
>>> are used only by Intel VMX code, so move them to VMX code.
>>>
>>> While here:
>>> - minor format change in domain_exit_uc_mode()
>>> - s/(0/1)/(false/true) for bool types
>>> - use "struct domain *" as parameter in hvm_set_uc_mode()
>>> - use "struct domain *d" as local var in hvm_shadow_handle_cd()
>>
>> One more please:
>>
>>> @@ -1451,6 +1452,66 @@ static int cf_check vmx_get_guest_pat(struct vcpu *v, u64 *gpat)
>>>       return 1;
>>>   }
>>>   
>>> +/* Exit UC mode only if all VCPUs agree on MTRR/PAT and are not in no_fill. */
>>> +static bool domain_exit_uc_mode(struct vcpu *v)
>>> +{
>>> +    struct domain *d = v->domain;
>>> +    struct vcpu *vs;
>>
>> const on all three pointer target types. Then, together with the function
>> prefix adjustment discussed on the other sub-thread,
>> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> Seeing that the other two patches are ready to go in (again, once the tree is
> fully open again), I might as well do these edits while committing. So long as
> you agree, of course.

Of course I agree and will be infinitely grateful.

Thank you.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:29:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:29:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161549.1489471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXOJ-0003SG-OC; Thu, 13 Nov 2025 13:29:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161549.1489471; Thu, 13 Nov 2025 13:29: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 1vJXOJ-0003S9-LI; Thu, 13 Nov 2025 13:29:35 +0000
Received: by outflank-mailman (input) for mailman id 1161549;
 Thu, 13 Nov 2025 13:29: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=X5Bi=5V=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJXOH-0003S3-HB
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:29:33 +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 c940e19e-c094-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 14:29:32 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA3PR03MB7186.namprd03.prod.outlook.com (2603:10b6:806:2f5::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Thu, 13 Nov
 2025 13:29:28 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 13:29: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: c940e19e-c094-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iMTgFBDaZLjOTuShpUXHAcRbTSieiMcZGaCY2WTEJbqRbXGlifQAqDEr28aliVRVvYqe12gzz16LNoYQykeZzSbvNUg/WMjEnkUfPvNNG6fyRirjfzz/HdfL3WgSZh852C5afXGB2gdfs3gKaY47EdYgltkvq6zCJfHPANlfKo2z0VfWcYVT/6fDOXI/mRia42Gp04ypdUwyAxZL8ocg4/vr/bgNxySrn3B9GPbjawQT7tEc4G/DTqVmO+Dre23jWft/UokwDVd/HduarA7V/qz4fLV1LbDxeCDUa9WHrXU/DlZKHhQFhp/Zdhqsifq6/7a9GzeOl11/h+U6UlafLA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9uqRDgd792XOHvvC5OFV3guGWSm0xlxwYJMq7JJ3uSc=;
 b=lpVi5MseU1gZ3ufEaAQHo2bDjbq4MqpDy1mPMaY8mLOUg+TJdROe1ck7hDs4CfCRmzL+ClQt6Q35ZbahGDWaLc8LiFMBZxuKhv/uIeSCfuWYOg7q0sIRjqC9GZsLinjzip/bzkD0I4z4IwyXIoJgoj0bd/pZTLr8/mpFwESPPCpnacLwa0hCOUqmzerhKC1ADcjXxgpcO+moa4Q5qbb08U9PXS64Ci3jiFynoyIH6rU2VwhyS5Mm5m4LLdkQe5BGK/H64A+iGzWX0YXZ5q+1UnDlF2zKLET6Rf9WcmpooduDyMORY9i111uW3Paei56YsglBxGLlqmtOhSkDps0GJg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9uqRDgd792XOHvvC5OFV3guGWSm0xlxwYJMq7JJ3uSc=;
 b=AgtbhqGRmccOFQryI0P/uF6VF659pFpfh8VIbAx0uben42c/1KxvSppG1yBF6/+svBk/COPr6haxBRmLK+b4WEITTnlN/WGARAW67uJJ07ssxjJoGrD7iOoN91EdWHHTolWwCK9faGtxaqPKrIln0cOHp2F05RuzwDnMgLHhD9s=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b0d1b91a-a9fa-48fc-9546-b481c75ee185@citrix.com>
Date: Thu, 13 Nov 2025 13:29:25 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20] mktarball: Drop double-processing of the archive
To: Jan Beulich <jbeulich@suse.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>
References: <20251113130154.220139-1-andrew.cooper3@citrix.com>
 <ce976661-927c-44e0-a478-893242bacba3@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <ce976661-927c-44e0-a478-893242bacba3@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0041.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:152::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_|SA3PR03MB7186:EE_
X-MS-Office365-Filtering-Correlation-Id: 989ae4ce-74e8-4e85-d906-08de22b8aba5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YitoOUEzeTZSWmFQak44ek1IbmpqVUUrUjlTVHcwRWF1MmZZVUdHdWx4VnYz?=
 =?utf-8?B?bkE3V3duZnA1VGFTa1lnM1N5c1V2bE9sdSt4T3RpRlRRSkEvQ0NYenFhTGxn?=
 =?utf-8?B?MVBvUTl2aTc4bFV6MUg4SUVNbCtuVENJK3BRMW5HdGZaeHd1MHJYeWtWOU9B?=
 =?utf-8?B?emFCc0orT3FJNWJKS2N4RjVwTFBhSEVXUzBuNlZHcTNsbFFwcTRNa2gxQnB5?=
 =?utf-8?B?NEU0Q1MrVk90bEN0aGJ1WERDWkh4bzZza1QvMU12VElSK0crcGlQRlpOSDI3?=
 =?utf-8?B?WWFCUVZWUUxxOEUrRzg5d3J3UUxHOUQ4bURWUmcrcGcxYWNVaVgxcENhdE5r?=
 =?utf-8?B?a2JSM2pDam93QTBpK3ROVVhEV0gwZlN6TXAwaSszRUluSm9tM1c2UnVscXlw?=
 =?utf-8?B?SUV0YUxpSFRXNlAvKzZseGc5bEhaZXFNRUY0TytJU2hmSCtSTTZZL2t3cFZT?=
 =?utf-8?B?UUc4d2M5YU9uM1RLcmdkS0pIV3d2azJzYTR4OXVzaHBKWCt4TE8zWTcyUDFY?=
 =?utf-8?B?QUFsOVR4Q214TFA4Yy85ZEo3Z2k5cmUySDBTWmRPTWpkajVYMFN2Qjk0NGMw?=
 =?utf-8?B?RUlQcnFBek90blpYNE1DeExoaWlQQkU4TWdIVEpsQjZnVURkK3MwejhIOXNK?=
 =?utf-8?B?a1d2Z3ZLZEI1SW9KTHZsTXlKRURzSWxNdTFaRVlIVUtxeWRNeTN5UEpqQnNW?=
 =?utf-8?B?RzdFbDJ4MHdJRjgvUlhocmRXMFJrRHN6VjM5cndUUnI2MTkwYzFkWEpsTVdP?=
 =?utf-8?B?S2RTZzVzU2ZTTkRPK3BadEVMdVhSUmowY0V0c1JTM3YyS3pJRmVxWGpFOVZS?=
 =?utf-8?B?dFBtZk96T2Y2SzJ0UWxUOTZKeEkxQmhWMUhYV1ErQVpMMTNLaDY1a01LZ2tJ?=
 =?utf-8?B?RnRGNEliekxnUEJybjZKWE5MRlFISjJJSFBoK0hiNFdWQnB2NjlQWFpDN3BP?=
 =?utf-8?B?WEhJOWp3cDkwRXVWM0tSUU1tVUQzOWVGMFJubHJuU2VXYmUzWG93U3VwczBx?=
 =?utf-8?B?RmExYW5zMVptQnJqSkdFMHdNa25zZXJKL1YvN1YzdXpaaUs1U0x4OTkwTlFo?=
 =?utf-8?B?cC9XL2hHR0JFOUd2ajFuTXkwNU1xK0NWeVh1TW42dzc2b1hUTmx2L3ZGRGEz?=
 =?utf-8?B?RXJJY25PNG5oODBnZnNRZVRTWGYyN0phSy9NSVBPUDBCaTN0eGhqN01Yakla?=
 =?utf-8?B?a3hNaGNCSkhmYUpuYWlqY1J0OUF1bHFyQXQrZ3FESEFXUG9kT3hlY1JmYWRk?=
 =?utf-8?B?SU9XUzEvdHdtU0ZZRWhCYWFTejhPWWJRVG9JZ09ZRktNb244dUtUcXBVZUtR?=
 =?utf-8?B?MHBaZXA1QzFXWnFCMU1IaHlnRFpqMnZReFhDN1hGbzlwaGFpaktSanZPMllw?=
 =?utf-8?B?Q0UwdUdwWEFMbWZpMCsxQXgra0lUc25xNWR0RElSZVZtTTVjZmhNQm9vTllO?=
 =?utf-8?B?cDZIOXFqWFdOWHVsR21MSkNadVZrTVBPRm1KYTdBZ3VJTzBVdmJpLytDek9E?=
 =?utf-8?B?a0NXVThvQmRMZ2hwazlHQmVEVEJnc1VYMVFSZzVuSFlaM1VyT0FQS3dLTkJt?=
 =?utf-8?B?bDlta2hYRmJIbTM0T1ExUlV6NlYwOWtFa0ptRnJBcGpPYVJocFcrMDdtYXY0?=
 =?utf-8?B?b3NIOEhhYXlrU1dVY3lCUUdEb3RqclQ4MnRwTkFLM0JsSkdsbTVCdGN1Wkll?=
 =?utf-8?B?cmlKUkVPdkxVMWcxU2VOUGZDS0UrV3liRXFxTVVESXZyNFZYWEYwZko4Q0xW?=
 =?utf-8?B?SGFWMVVWdXBCTDhYWVY3bHlCQnpheE04M2dBQWw5enU1WlkvNDg0dTZhN2pW?=
 =?utf-8?B?SmQ5QmMzai9aR3MyQVFpL04ySit0L3hBNFRFb2g2YzBxZlhwTENzKzBNbUVy?=
 =?utf-8?B?OTMrc0xkcmlUTjN1ZGg3YVhCQ05uUGFLVHVweHhINUFxdnc9PQ==?=
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)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dHR0WXRqbkt0NktiQ1I2dzd6NXRnak1sS1k5dTBOaDB5TWV0ZHlSWkdPbFAy?=
 =?utf-8?B?S01OQlhGUEV2L1dkenJsMEdlRUNnZUZyYXJtVHpnRjZoeGRMSm1seXFqWHhl?=
 =?utf-8?B?YVFpaWJJem82anJNUlBHZkYzT1Y4eEhlbGdpQ2krdjY0YWJQMjB5aUlYMVlr?=
 =?utf-8?B?REhUUVpscnJrRGZkZzJTSGFLZ3JZUFljOVNJV1NwTmN2eHZSaTExUHZUY3Fh?=
 =?utf-8?B?eWthL2dyWUp1dnlEZ3N6NkF4VFFGOU1EL01EYUs5WjhYZDBYZW1lQ3l1NXlk?=
 =?utf-8?B?bzF5SUMyTE5BWkxyeUFSTkNUYmErNy82T2lRZ1ArZnNGM0FFMDNGdjNhc3dk?=
 =?utf-8?B?WlVVMTExY25CNlAwRlZuMk0xZy9BRkZNKzhQZE1Rd1JNcGQ3MjFDL3JyY1J6?=
 =?utf-8?B?empEQ21FWTBKNytRazVpc01EYy9tSmdwMHJZL2g4SWhtSlRKWXRiZyt0Qldl?=
 =?utf-8?B?MXpKbFFEWlgwRnJHcEFXb2RLL092UUdyQVB0aUF4K1d6OTFXNUphYnpPUkx5?=
 =?utf-8?B?Q2RGVjdleGFWWk16REttV3VGNkg2cERYNXVEMWxIR3hHV0Z0d1dlZ25mL2tM?=
 =?utf-8?B?VU1vR2h6aDF4RVlPczNmRjlxWUNua0hHODBHdmoweWdzMFF4QXprV2gza21F?=
 =?utf-8?B?eW5iUC9yV1RiV2E3NDNLaVYwR1Q5THdCKzhGQ1FRZWhJdzZnMjBZTFRoTk9J?=
 =?utf-8?B?R3piUTJjQmxKaDE2a1NVUVNYQmgvNVZ0U3l2QkZxVDBjclFnLzhtcEphMEtE?=
 =?utf-8?B?WFAzb1F0VGF6WitKMzlMamFmTHFUMXFZdzlYV2VoUVpBbjBFMzdDa1dxQTVl?=
 =?utf-8?B?SUVFeDQ3Mlo1L24zUUJseTVuVjQxNmFkZjREVFl4eGlsMkE3cFJTUWZFT1ln?=
 =?utf-8?B?N1hhRk1TcThFSW92NHNCdFRmUXlPNDlLMkVGRWNZM2NCOTBWKy9rZllpZkh5?=
 =?utf-8?B?Zm9YS0RjcXl5M3A3Q1VJQ3JXOFpYWmJNTFdCcllmbFFGYXlvZExiQWU1QTNM?=
 =?utf-8?B?MndOenBzZlczL2tqamdkTXlVSXZPYlhDbElnZHB0MFZYSjlaZmlGOVRxU2Za?=
 =?utf-8?B?MzVrOFZlWjk5Lzh2ZTc4aTBhU0IrU2xORnRRaVJvTG4rUi9CdGFGa3FCTnBy?=
 =?utf-8?B?Mzh0VUw0UHh4OElJZXRVSGt5ZWxkZGF6MUp3eFVwQkd4OUljS3Yzdm1YeEda?=
 =?utf-8?B?K1hyN3JNRkg4Z0hQTVNHblFCbHpWU3VXSnZ4R3F4cys5UjUvRzRld1lyVTlm?=
 =?utf-8?B?eWNvVzAwTUZ3a3BkMnl1Rk9MQit1dWtRT1NJM3hSNnhpNXlSOFNMbG9ZTHNK?=
 =?utf-8?B?a3g2RW5vdy9uVVB1QnBqK2c0YUlIbmV6YkVyeGJoNEhLK3dNWmRzUFRISUdz?=
 =?utf-8?B?dU1Gb2J6cGRlVmcwR0VqVEk0Q2Z3ajBOYVU1ZHBiVzZ4b0NnTmxBcEw2dEdJ?=
 =?utf-8?B?eUg0QUN5WGJPUEo0WEVYeVJZUUpKbXRzcVorS29sOVA2RjJOWXhhTjRHWkR4?=
 =?utf-8?B?YlM1d3NtSm9zVWtGR0t6ZmNPSWhEMkZlUmtIQXlmWUJmWkxOSUxqYjh1MnVZ?=
 =?utf-8?B?L09hVndRS0E3YWdWeDQyTjlxdkFPcmdJK1F3T3Y0MGIxMlNOZ2lyU2xLcVBZ?=
 =?utf-8?B?TThnMGplL1VibTFGMTdFMllhNG5ialZyVVEzbTd1Wk1Vb1YyclRuQ3BQU2xJ?=
 =?utf-8?B?YjhrbVFTQ1FvZGp6SEFyWTlpMWY1ZUtMdHh4c2JSemFqVmpwNzhsb0dXanMr?=
 =?utf-8?B?dzVRcW1IOFZldEJJdzkrS0V1RC9na1dWeGQyQ2NWc0NRZXFiZy9IaGkwWTZB?=
 =?utf-8?B?WmFremo1aUNMaHAxK09PbXkzdU1iR0ZFOXNWbHNUVG1ESk1INkFuS1ZJZStL?=
 =?utf-8?B?WDFFcmNhNTFvV2RJTUx5V1pvUkhOaitwYmh1ejkwZUZ5MkVqTVV2Rmo0U0J6?=
 =?utf-8?B?N0VsZjJaVDhDTXVIVlhJWU1rZDlpdStiZ2JxRlR4ZzVJQ1ZjNXFselFTVEw0?=
 =?utf-8?B?QzJjYVJOS2MzZnhwSXZlRjhrSU1QRWNMMDJ5WUZxZnR5cCs0VzAxRmludG5Z?=
 =?utf-8?B?ZDhPQUFEcFVtNlRMZ3doWmVoeGlTOGxoNC9VTXJtdVc4SXRrNHFWVHVobjE3?=
 =?utf-8?B?U0VJVldFOVFMMG9xMSt5YXk3ZmhNdlB4Q2FXenN5emU1c204Q2U4ZDZPY1pz?=
 =?utf-8?B?Z2c9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 989ae4ce-74e8-4e85-d906-08de22b8aba5
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 13:29:28.2910
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: k28sqQYqXR3niHApmCkhGUehDuOwmlTkdHu4Y0JMdKSoNAaXfJlWzD7RZb3THKs+sJ4NFKY9jOXXwnLOMivr+tGomGc/8AtwohDT/DwSlYA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR03MB7186

On 13/11/2025 1:12 pm, Jan Beulich wrote:
> On 13.11.2025 14:01, Andrew Cooper wrote:
>> This is a partial backport of commit 63ebd0e9649e ("releases: use newer
>> compression methods for tarballs"), but keeping gz as the only compression
>> method.
>>
>> In addition to efficiency, this causes the tarball to use root/root ownership,
>> rather than leak whomever produced the tarball.
> I don't understand this part. Isn't the ownership whatever "git archive" reports?

This is fixing the issue you noticed about internal ownership:

xen.org.cvs/oss-xen/release$ tar tf 4.20.1/xen-4.20.1.tar.gz --verbose | head
drwxrwxr-x andrew/andrewÂ Â Â Â  0 2025-07-10 12:28 xen-4.20.1/
drwxrwxr-x andrew/andrewÂ Â Â Â  0 2025-07-09 14:57 xen-4.20.1/.github/
drwxrwxr-x andrew/andrewÂ Â Â Â  0 2025-07-09 14:57 xen-4.20.1/.github/workflows/
-rw-rw-r-- andrew/andrewÂ  1362 2025-07-09 14:57 xen-4.20.1/.github/workflows/coverity.yml
-rw-rw-r-- andrew/andrewÂ Â Â  96 2025-07-09 14:57 xen-4.20.1/.gitarchive-info
-rw-rw-r-- andrew/andrewÂ  9668 2025-07-09 14:57 xen-4.20.1/Makefile
drwxrwxr-x andrew/andrewÂ Â Â Â  0 2025-07-09 14:57 xen-4.20.1/stubdom/
-rw-rw-r-- andrew/andrew 24220 2025-07-09 14:57 xen-4.20.1/stubdom/Makefile
drwxrwxr-x andrew/andrewÂ Â Â Â  0 2025-07-09 14:57 xen-4.20.1/stubdom/grub/
-rw-rw-r-- andrew/andrewÂ  2252 2025-07-09 14:57 xen-4.20.1/stubdom/grub/Makefile

xen.org.cvs/oss-xen/release$ tar tf 4.20.2/xen-4.20.2.tar.gz --verbose | head
drwxrwxr-x root/rootÂ Â Â Â Â Â Â Â  0 2025-11-13 09:51 xen-4.20.2/
-rw-rw-r-- root/rootÂ Â Â Â Â  4781 2025-11-13 09:51 xen-4.20.2/.cirrus.yml
-rw-rw-r-- root/rootÂ Â Â Â Â Â Â  97 2025-11-13 09:51 xen-4.20.2/.gitarchive-info
-rw-rw-r-- root/rootÂ Â Â Â Â Â Â  30 2025-11-13 09:51 xen-4.20.2/.gitattributes
drwxrwxr-x root/rootÂ Â Â Â Â Â Â Â  0 2025-11-13 09:51 xen-4.20.2/.github/
drwxrwxr-x root/rootÂ Â Â Â Â Â Â Â  0 2025-11-13 09:51 xen-4.20.2/.github/workflows/
-rw-rw-r-- root/rootÂ Â Â Â Â  1362 2025-11-13 09:51 xen-4.20.2/.github/workflows/coverity.yml
-rw-rw-r-- root/rootÂ Â Â Â Â  7035 2025-11-13 09:51 xen-4.20.2/.gitignore
-rw-rw-r-- root/rootÂ Â Â Â Â Â  798 2025-11-13 09:51 xen-4.20.2/.gitlab-ci.yml
-rw-rw-r-- root/rootÂ Â Â Â  15298 2025-11-13 09:51 xen-4.20.2/CHANGELOG.md




> I have to admit though ...
>
>> --- a/tools/misc/mktarball
>> +++ b/tools/misc/mktarball
>> @@ -5,14 +5,6 @@
>>  # Takes 2 arguments, the path to the dist directory and the version
>>  set -ex
>>  
>> -function git_archive_into {
>> -    mkdir -p "$2"
>> -
>> -    git --git-dir="$1"/.git \
>> -	archive --format=tar HEAD | \
>> -	tar Cxf "$2" -
> ... that I'm unaware of what the C here does. It can't be the same as -C, and the
> --help output of the GNU tar that I checked doesn't mention anything else at all.

It is -C.Â  tar has dreadful cmdline syntax.

An equivalent would be tar -C "$2" xf -

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:35:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:35:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161561.1489482 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXTU-0005wA-AC; Thu, 13 Nov 2025 13:34:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161561.1489482; Thu, 13 Nov 2025 13:34:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXTU-0005w3-7S; Thu, 13 Nov 2025 13:34:56 +0000
Received: by outflank-mailman (input) for mailman id 1161561;
 Thu, 13 Nov 2025 13:34:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJXTT-0005vx-DE
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:34:55 +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 89a2a73d-c095-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 14:34:54 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-64198771a9bso1494749a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 05:34: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
 a640c23a62f3a-b734fa81331sm167526166b.9.2025.11.13.05.34.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 05:34: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: 89a2a73d-c095-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763040893; x=1763645693; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uKq4UgVnOOWFLmlZJi2DQlKIVT8AVl2MHP/hhnwcH6c=;
        b=b5DuS+cEHJGs90RO2G93/e5MduaiAeOCeiAr1HbKKON3tn0CE2V5dy/pRYFvO5/o+T
         2qyqi2rM1AklSLkOq0Grl8Jgd1bV4KDvzEe07MnrwOuV6+YzdCsyfJO8sVG4w9h4xQ/0
         1N5jZfch0lZneIQZ0ApPIQdX0+Y/yaQUvzgURwvGEjerq9MZMG4LVxmwMT2G2Fc/VlhF
         zxB6IYwiwYUqH0tpPUefAqSG17qphegBAik317mNgrShICQE2kNNNa8crfmjtVqP1mh+
         265WnVgBbIoq2apfTN7+VtQYf1ksk//3vI67I5jXw1svC/xTR65TDPcAYWejCmk+kcEF
         gynA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763040893; x=1763645693;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uKq4UgVnOOWFLmlZJi2DQlKIVT8AVl2MHP/hhnwcH6c=;
        b=pQ794ez4xCkYM/HAg86oThSWPNNoui7bCYpHmg/ScEIi+9Iq6MOuejv83lpmJgkRuG
         Zcs22cxAmTFgxksZDCawRjc3zC34VzVMIjfq7bwWyCazk1af5geUdkAwmn2O+sqAOjbG
         x6mliNtdjzR4mZgMSgEIYHURaZAeBgGkvxpY72BMVy2hzkkP5M1v9JqSZLx2yKeG0Z86
         EtBJJvNA3kUUGJ1rgbH9X0X2GyEiLvBQHv0n2ieeOP+FZjz2Jw2Da9D8uRyNXrIDPZmm
         fVVzsvd2dL/UpgHi2WW5tb5OuNVC45Nqk5xo5T7nUvfNtBX8XJFKf0Mp+Y+27a4h2Kat
         bmqg==
X-Gm-Message-State: AOJu0YxnL7OdH6UUKHG2OGkugTo0R1HxdwNXRqzzoROoG1ZGBDk1QGVw
	iNSA/40CqgVa/pO3rPcdX6Fns9vVqW3gu6Ulh2WD6W+ig/1+vCdXvRlNF746GRCJoz/zpMNnhap
	Yll0=
X-Gm-Gg: ASbGncticsJqJMAhCr9TwebxVkMhj0noEZWiFo8EU9Ljq8GLB33sV7YKQ6SjwJDtm5W
	gFGM1qGkzl4Gu6voxc+t9BJ9XIwUcwKgANe0JMbaQOWUQeibDQkTij/P1DfRTr/NXMLjHIq4dFh
	DtMSCFzMAa+FCvRbLFBAuxVw3OudGWHTGmsgzOnFFAPwBrXrKOllb4GbiNeYuT092Qt1Q8q+q1b
	IbU+F6swSJZrcNXcrNUEm0fipHO84ukr2w6QcbkTYq/ApUsB2sMShWEx7W6iSRt0KF7QYzZ81nf
	8epbLmUzBzAmOUEbCHiTnsAtYawr1JvJbEB61a+w27HeDWRvPD2bE0+bJCQFGEDid7or1U3WvGt
	e1WNWGLRs6FPDJDA/2RlbwSS0NtpvX7A1FgsffdMTCiWZEdRHwQ2Kpkm4EVVCDr8vunI2P1ftF5
	tHhY8Hva1wik2IlNg3a83etb/glS4gmo0UjoJppKyFl8J9ZV3l3RJEjyFzqhrrDV9A
X-Google-Smtp-Source: AGHT+IFiOHb7pc4IERYObDAjfqnAIuGdEGJV5wJZlBZtLqmbl2pYmnyO7hNOR/+1/MtWxCLWtBufCA==
X-Received: by 2002:a17:907:809:b0:b73:5b68:a65a with SMTP id a640c23a62f3a-b735b68ad75mr85251466b.53.1763040893495;
        Thu, 13 Nov 2025 05:34:53 -0800 (PST)
Message-ID: <c0ac3598-c070-4b73-9e6a-49385338ea1c@suse.com>
Date: Thu, 13 Nov 2025 14:34:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20] mktarball: Drop double-processing of the archive
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>
References: <20251113130154.220139-1-andrew.cooper3@citrix.com>
 <ce976661-927c-44e0-a478-893242bacba3@suse.com>
 <b0d1b91a-a9fa-48fc-9546-b481c75ee185@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: <b0d1b91a-a9fa-48fc-9546-b481c75ee185@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.11.2025 14:29, Andrew Cooper wrote:
> On 13/11/2025 1:12 pm, Jan Beulich wrote:
>> On 13.11.2025 14:01, Andrew Cooper wrote:
>>> This is a partial backport of commit 63ebd0e9649e ("releases: use newer
>>> compression methods for tarballs"), but keeping gz as the only compression
>>> method.
>>>
>>> In addition to efficiency, this causes the tarball to use root/root ownership,
>>> rather than leak whomever produced the tarball.
>> I don't understand this part. Isn't the ownership whatever "git archive" reports?
> 
> This is fixing the issue you noticed about internal ownership:
> 
> xen.org.cvs/oss-xen/release$ tar tf 4.20.1/xen-4.20.1.tar.gz --verbose | head
> drwxrwxr-x andrew/andrewÂ Â Â Â  0 2025-07-10 12:28 xen-4.20.1/
> drwxrwxr-x andrew/andrewÂ Â Â Â  0 2025-07-09 14:57 xen-4.20.1/.github/
> drwxrwxr-x andrew/andrewÂ Â Â Â  0 2025-07-09 14:57 xen-4.20.1/.github/workflows/
> -rw-rw-r-- andrew/andrewÂ  1362 2025-07-09 14:57 xen-4.20.1/.github/workflows/coverity.yml
> -rw-rw-r-- andrew/andrewÂ Â Â  96 2025-07-09 14:57 xen-4.20.1/.gitarchive-info
> -rw-rw-r-- andrew/andrewÂ  9668 2025-07-09 14:57 xen-4.20.1/Makefile
> drwxrwxr-x andrew/andrewÂ Â Â Â  0 2025-07-09 14:57 xen-4.20.1/stubdom/
> -rw-rw-r-- andrew/andrew 24220 2025-07-09 14:57 xen-4.20.1/stubdom/Makefile
> drwxrwxr-x andrew/andrewÂ Â Â Â  0 2025-07-09 14:57 xen-4.20.1/stubdom/grub/
> -rw-rw-r-- andrew/andrewÂ  2252 2025-07-09 14:57 xen-4.20.1/stubdom/grub/Makefile
> 
> xen.org.cvs/oss-xen/release$ tar tf 4.20.2/xen-4.20.2.tar.gz --verbose | head
> drwxrwxr-x root/rootÂ Â Â Â Â Â Â Â  0 2025-11-13 09:51 xen-4.20.2/
> -rw-rw-r-- root/rootÂ Â Â Â Â  4781 2025-11-13 09:51 xen-4.20.2/.cirrus.yml
> -rw-rw-r-- root/rootÂ Â Â Â Â Â Â  97 2025-11-13 09:51 xen-4.20.2/.gitarchive-info
> -rw-rw-r-- root/rootÂ Â Â Â Â Â Â  30 2025-11-13 09:51 xen-4.20.2/.gitattributes
> drwxrwxr-x root/rootÂ Â Â Â Â Â Â Â  0 2025-11-13 09:51 xen-4.20.2/.github/
> drwxrwxr-x root/rootÂ Â Â Â Â Â Â Â  0 2025-11-13 09:51 xen-4.20.2/.github/workflows/
> -rw-rw-r-- root/rootÂ Â Â Â Â  1362 2025-11-13 09:51 xen-4.20.2/.github/workflows/coverity.yml
> -rw-rw-r-- root/rootÂ Â Â Â Â  7035 2025-11-13 09:51 xen-4.20.2/.gitignore
> -rw-rw-r-- root/rootÂ Â Â Â Â Â  798 2025-11-13 09:51 xen-4.20.2/.gitlab-ci.yml
> -rw-rw-r-- root/rootÂ Â Â Â  15298 2025-11-13 09:51 xen-4.20.2/CHANGELOG.md

I guess my reply was ambiguous. I did understand that's the effect, but I
wasn't able to tell why such a difference would result. It's all "git
archive", before and after the change.

>> I have to admit though ...
>>
>>> --- a/tools/misc/mktarball
>>> +++ b/tools/misc/mktarball
>>> @@ -5,14 +5,6 @@
>>>  # Takes 2 arguments, the path to the dist directory and the version
>>>  set -ex
>>>  
>>> -function git_archive_into {
>>> -    mkdir -p "$2"
>>> -
>>> -    git --git-dir="$1"/.git \
>>> -	archive --format=tar HEAD | \
>>> -	tar Cxf "$2" -
>> ... that I'm unaware of what the C here does. It can't be the same as -C, and the
>> --help output of the GNU tar that I checked doesn't mention anything else at all.
> 
> It is -C.Â  tar has dreadful cmdline syntax.
> 
> An equivalent would be tar -C "$2" xf -

Oh, wow. I would never have thought of writing that as Cxf.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:43:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:43:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161573.1489493 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXbT-0008C8-4J; Thu, 13 Nov 2025 13:43:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161573.1489493; Thu, 13 Nov 2025 13:43: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 1vJXbS-0008C1-W1; Thu, 13 Nov 2025 13:43:10 +0000
Received: by outflank-mailman (input) for mailman id 1161573;
 Thu, 13 Nov 2025 13:43: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=X5Bi=5V=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJXbR-0008Bv-LJ
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:43: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 aeffa27f-c096-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 14:43:07 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH3PR03MB7409.namprd03.prod.outlook.com (2603:10b6:610:195::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Thu, 13 Nov
 2025 13:43:00 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 13:43: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: aeffa27f-c096-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VDuyMiDa2AEUy520JwpATxt5jTjzIUzUm/yP2UYm/4FenczzyIwyVFo08wJFRi3mpKlPNuwZBguH0rNP/VaVIQR+krxVke9aybok0hN1SsM1vAsfTEp8tr03uKvxmn8TMtN1yVtUlQ28/HNIxbxrvZiJLqITVDDBd6QKqyY6xzMFME4bYH2Mi5C+5ndySHTvvhS3SnK6NsGDs8A4SQg6ATe37XWs2NwuUkByPumHDp4XOsfEwwgTVot/nUpeFMCIc59r2IiJ3AeoWF1ROKHDnoIQuXOhgwz2YhthW7MH2c3923WDOljkmyOm+3uDRHtg8wrAtGgh9qRs6fcm7Tc8Wg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ntNAH0tx0QE9hqZHs7iYwSjyvb1lqboGJjbYOOLn2jQ=;
 b=ryh5+56H9pmQzJyOquEqKAwS0yAATWwkEhWzGfGh3tapesS+x3M/e8GP9U9n8v8iscQdGNtbCP0umkm50fozY3NVgELjqGY7AMj6X4E08pP0DScDbRdtJZjRSrwGWO81gbxT9+wW6d2gdxyhY6lUhzwM4yEkFYHEKmf95F/JFczz+4LC+A//kLTgpA8IShax5ZlCFU7w4hDKgtRxJUx6doNFtM5osCp0huqiGY7+YoE8AHkYJexawnZLE3DFGMESevKKAsVBf7U8CtM8QlslBolt5Ed52UywGQMDECM9HPjR83ee48nbfix93h8DM/tnXBrhU8mrO4oXXyWQMJN+8Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ntNAH0tx0QE9hqZHs7iYwSjyvb1lqboGJjbYOOLn2jQ=;
 b=k175Yye48xmFmmKYJokHpYuelEm/dIBVXqnVbAym6QtsjcSyTWGOpbRdmC2OdBaBhXhdp0QAPujBUjvh4VhbDDGTaELorLiLuzqyx8HyrDPLEuUbO3nhpL9I4SjecS2A4F9N2FggT1W0TJu+IRZjBSTTPxWAZOiv00r0w0dTiik=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <1dc03c2e-772e-40ab-b3a1-7c9d463b7250@citrix.com>
Date: Thu, 13 Nov 2025 13:42:57 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20] mktarball: Drop double-processing of the archive
To: Jan Beulich <jbeulich@suse.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>
References: <20251113130154.220139-1-andrew.cooper3@citrix.com>
 <ce976661-927c-44e0-a478-893242bacba3@suse.com>
 <b0d1b91a-a9fa-48fc-9546-b481c75ee185@citrix.com>
 <c0ac3598-c070-4b73-9e6a-49385338ea1c@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <c0ac3598-c070-4b73-9e6a-49385338ea1c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO3P123CA0026.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:388::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_|CH3PR03MB7409:EE_
X-MS-Office365-Filtering-Correlation-Id: 6f0f123c-a292-446e-d263-08de22ba8fa7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bFkwMnZsOEc3OGpGWTNML0ZBTFNXaHZPYUl6dXV3OWZwcWthTk1tdDlLU3J2?=
 =?utf-8?B?WUJ6QkhrZFhWZXU3ditFY2I4elpFMEhHVVBtZEFNZ0YwTEhJSDQ4UjFhcytw?=
 =?utf-8?B?VGE3ZlVhTzRoVitZaGpVTHd3MG1aRVlJYWxaUVRUcG9DcnV6WjVvSkpWUnp4?=
 =?utf-8?B?YXB4cWRacENONm00VDJIL1E0L0EwdGEyRXpjb0tSM3h1dURQY3NIb2JkbkRj?=
 =?utf-8?B?eURWU2EvQUVvQTF0d2oxQ1JTa0xLRzMvTnlVNldnT2NFWEo1bDZEWis2Z1ZS?=
 =?utf-8?B?WGxDRlloRFNtMW9TS21tOVlkeHJNdEI3QWZEVzZjOStSOVNrbDQxUHIvQk1p?=
 =?utf-8?B?djBjU3dNVk5ia2owQlBleERHUWREUXduay9vMEZ1WmVqTHQrKzlsZ21yQlRJ?=
 =?utf-8?B?TVhDTldlL3R5UFJ6aXBqTGdXaTVnOVV3MGdSd3N3cSs3eUFyZTR2M2MxTGhN?=
 =?utf-8?B?MDdPODVxbEtwR3RXSGpIdDJGQTh4ZlpvWGt4bE00RlNueVlOekNDbVN2a3lm?=
 =?utf-8?B?SFNheWVMNVMxV0RybUFJVFFBL25wUTVTalR2ZTRaWTR4dXJCYkhPZzhyNDNE?=
 =?utf-8?B?eldIc3B6RGI5U013WE16MUFXQVV1L1M2RzBLTDhPK01GVW9xRy8vcHU5VUVX?=
 =?utf-8?B?R29zT05jeHVHd0NXRXcwaUl1bXE3SFBWc1FEcEQ3bVF6WThNZW9pSmRhakND?=
 =?utf-8?B?SFViVEwra0pud3VMSXI5bUQ1VDM2bjQwWnJZZlF5eC85R2RSR1VnZWl4L3Bo?=
 =?utf-8?B?Vm5Lb1FNRDFWZHkwUkhIRFNTUFl1VW9NRnVXNVkwZGpyTTlrZk8yN25PMG9G?=
 =?utf-8?B?aXRtdGpuMWFOS0JFQ1B2SnVmZ0JWOW9qeFFUdlBZc0d4bDlLQTlyeGhrcUUr?=
 =?utf-8?B?cGFyL3gyL24yRXVKK1RvVCtWT3pBTnRJSHRDZUVJenhIU3p6VFB0cU9qelZt?=
 =?utf-8?B?eERIODByLy9mcTRaNjNwWjJreS9WWk02cVQvUkpwcEhWMnFiRmhjL0pxTzVE?=
 =?utf-8?B?cVZSUGI4aVUzRUhoYW5aS1c2RE5oK0tnYUNpSjJ3Um92ckhBQ3pGc0ZWTTFY?=
 =?utf-8?B?Q0JPdlFtMnpUQ1JSeDZDamx3cUpCSWZmSXRKQTF4NHF3eXZrYUY3VUJRdDIr?=
 =?utf-8?B?aWdWZ29ScEQzTXNwOElneXhRdWJ1WW1jTUdhVXpPMUdScWZsdHM5OUdWTnFy?=
 =?utf-8?B?Mkx3VnVsMEJ3dmJJdlg3WU42NGZ0NnpwbTlaa2tRb2lHcHkzeDJXWDc1UThz?=
 =?utf-8?B?aFdGYjVMdHVoNGtSL0M3cTNydVJDT0I3UzhQQzdzdGZ4SktFQjVqZG1za3JD?=
 =?utf-8?B?cVo0cXd3UlAzYUhQZHJRTGdqNDA2blhiaVlsTEI3SS9GQVR0NmtkdVJFN3pU?=
 =?utf-8?B?cElDdFpJYjAwamhVdlJZd3Z6eWRvSHdvcVo5YVJ3N1NtSDI2U0lKUElDT1NC?=
 =?utf-8?B?M3JKWTZyVHRQV2Y3Vm1FVHplZHA5ajlDN2gxMWxPS0plT0cxcGsxNzY2d3d0?=
 =?utf-8?B?cjZoV2VYdGtYZmozS1p5VTdvY0MrbUNXdkVmcmVQRUJza0dRRDNjejNtczBx?=
 =?utf-8?B?MnZndHRUWTFwN2dwS0lMMWVrR0djVnhYTUVDQW1vTzEwUE0rTzI2VzBMeHBt?=
 =?utf-8?B?R3RWQU4wOWZPeExmOU9uNndYTnV4eTNTRlNZVmliL3Q2TFJXTGhaaWgxL21I?=
 =?utf-8?B?SWFYdDNFODFIblhjcjAxSnpOK21NekxRQUJjU3VPSmhpa3JmdUNrckxpTzJQ?=
 =?utf-8?B?QTVaclFBQmdQcmk2MzNYL3pZNTlJL3hCSDBlTC9WL2hsSFFhdUR5dklSdWFP?=
 =?utf-8?B?WUsyZ3YvU3FuTS9qRFBHY1BzbTc3eXVQUmYrQmU3MVU3NWdtcnd0S0I2c0lD?=
 =?utf-8?B?MU9VdVZSTVBwS0ZidXJtWlhrZXc4WnRTbXdxeTVnQXZuaFE9PQ==?=
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)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dXlTYm5ad3A2THN2UFVtSENaU0NzMExJOS9xSWhLdmxGTXhEQVFxWHh2VVpw?=
 =?utf-8?B?TldYb2tFeVIxY3NMWnJrZGZZd0dSWnRmLzFxYkFneWNGdXBTMXZUSDNiN0NW?=
 =?utf-8?B?TEVaaEo3SnpNcTRTS09TWU8rYlM1Uys0ejFIM25XY3BVUENEb0w3S3pjRkR5?=
 =?utf-8?B?K2ZPY0tjM1BvaXA2cHlBbkE5ZktkUk9PSit3TUJVbUlxR1hybkp6MUhONFNL?=
 =?utf-8?B?SFRuaUFsUjRoMmxFcnR6bUlEd3kzSWNMVlFZS2hsbk9TTVZVWWlsOW5reW9W?=
 =?utf-8?B?SFAwdkIxeDFNU25mMVZmNHpKMGJGOWZTazh5aGxVQUxteXppT01Qa2dSWXYz?=
 =?utf-8?B?OG5xUmUzcG5XYjRrS0RWeVN5Q2Niemdxd1J3SG1Ed01ZZGErRS9GWVZGNTdn?=
 =?utf-8?B?THcvSDJKdEFJNG1UcXJyR1Q3RWlqRjgrMXVheStTdDd0MUdmUWRpQkhxWHQw?=
 =?utf-8?B?NWtHUERRbnA1Wi83QjRmTVEvVXg3aTlIU2k3NFdyUGhrUW9EYm9oVnhlTFVo?=
 =?utf-8?B?Z0lyS2s0OWdYaHhMeHNVTnVvT1h1SDhtcklkeUZtMWVXZnZSUEFWbkFJK0Fj?=
 =?utf-8?B?TThORVByVmVLdmptT2ZXQ0FJVEwzSjIzZFVSY3ZKUmh6R3lJYk9HdjRjSVE5?=
 =?utf-8?B?TWQ2VllibHI0b0Q0L1Y0QjNRVFh6bUZhTk5XV3lNdmJxVk45c3I5WlZ2RkFY?=
 =?utf-8?B?OXYwNU0rMnBYUnZNU0RyMUVicEdZdWVPZ21xWEtNREYzVkRtdHRIZ3VwbGFo?=
 =?utf-8?B?VDRnMkJVdy9aNFJ5dGw5K3BsMVNUN0F2Rk9jUE9leFYxalFCK0UzaGRDVjQz?=
 =?utf-8?B?VEpsUnFUQmVYUmJlcTBPaHZjNjd5d3U0K2ZoRXd4UU43TWJMUk1oeGFlUVE3?=
 =?utf-8?B?SGVPOHI3MkU3L2FRM0s5ZU4vZThtVTA3R2p0Y00yZG81TmkwUVVhV2lIRlRL?=
 =?utf-8?B?dVRjMlJHOUplL1lGbU5lYlg0U3AxcE1SWE11TmRJNDBWMFRYblEzQlVYN2FZ?=
 =?utf-8?B?dGlOQWQ2OC9GZXJTUjV0UTI0V0lEZU5UZWV5RnFXc2pOazZBMnFsdFdXa2V6?=
 =?utf-8?B?eUxjT2VCenIzRERDR0UvSk5vVG1tWWgycjBXYTBSRmFhUXJNdGlXa1Q5Z1Zk?=
 =?utf-8?B?YVZMWm5JaGNxTFNVWUs3OGN6cnhxcFZGWXVUYUlObndVWXRVd3Z5MUdmaDE3?=
 =?utf-8?B?bzdkTTE2emJDeE82ZUdBb3lQQVZZRFpPb045WFFObmRaRUZiY0RSVFMzeTFx?=
 =?utf-8?B?SFlycVdCOC9tTXhZa1VkTE5VSFNPZUlPZ3B4aktuY3RjNXJYejg2akdZN1JF?=
 =?utf-8?B?c1ZwbGhFNmpVYmJkNEVwU3hqY0RoOEdmTmdnQzdUTlNpNVNSOVR2YW0vemtK?=
 =?utf-8?B?ZmpqSnI1SzAzcnc3amIxRzQ4ZWZGVmtNeVJtaXhXSm5OTTV4SW4xUGZiY2Q3?=
 =?utf-8?B?Mzc0alcrdC9pbzRhbUFHZHRtV1NSTi90b29tdlJmL2R0L2xWb09oSFhCckJS?=
 =?utf-8?B?bEorS3hkUmtJT0UxWGxOKzRBc1JHTm1mMHBjek1sTlpmL3BYRmwzTzJyR2JX?=
 =?utf-8?B?dHNSK0FEWWNzV1drdXVNK3F4QTBHMnNDVnVWeEluL0xQbk9pczdjcElHZnJk?=
 =?utf-8?B?WnZwU01rTlB0aURaSzN1WjZVZ01IM1dsdzJuQUxxMERmSjZQUlVOS1ducEFC?=
 =?utf-8?B?aTFNWHFjam82aUF3VVVKRk91VTYrTEpNbFRXZEJJbGI0K0YzakdoL0djWkdQ?=
 =?utf-8?B?NW5SMVVMZjJvYWtRNnk3cXdMMFdCWmRla1B4YzFQc21pVGpBWVdqRm83aGp5?=
 =?utf-8?B?U3M5dHllMnZQV0tJT0tPQ1lHb0lUQ1MrbFNyNEVUOStrMFpCc3ZEMVhlTXpt?=
 =?utf-8?B?eUxNakwwQUFGc1dOTmJBMzRxWHYvU1ZLUjFJemkyQmxyVE5BeXZCNVlUNWJH?=
 =?utf-8?B?Szh3MGM1YWhMeUxxL3FHVWg1MFpLVDVHeGtKOU1rM3pQL3JZTGQyTE85Njl3?=
 =?utf-8?B?M2QwSHdpU0xmU013VnhzT3hoUjYzYU9FMWpPL1FYZlptQ0daRUpGOVlaTWF2?=
 =?utf-8?B?a0tnZnAxVXZRVlBXYWhzQkdMMEVZdzZnM1NlcklxK0ljb2hORzEyeUpueVhC?=
 =?utf-8?B?YUoxMjF1WGVNbFRTOXZkd3V3Tzg2dDJBaHhXVGFjeG0yN0dZcnNUTW92YTBj?=
 =?utf-8?B?V0E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6f0f123c-a292-446e-d263-08de22ba8fa7
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 13:43:00.4129
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: O6RJWKCzQZmLl1BTvsJB8MEVqJ05/dTYkyniH9DN9eGbQj54IqO3JDvsz2uK/4Z3xr8/J+v8qOIuynsLvY8+1FX/y36kUNhcGF8aPJrePwM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR03MB7409

On 13/11/2025 1:34 pm, Jan Beulich wrote:
> On 13.11.2025 14:29, Andrew Cooper wrote:
>> On 13/11/2025 1:12 pm, Jan Beulich wrote:
>>> On 13.11.2025 14:01, Andrew Cooper wrote:
>>>> This is a partial backport of commit 63ebd0e9649e ("releases: use newer
>>>> compression methods for tarballs"), but keeping gz as the only compression
>>>> method.
>>>>
>>>> In addition to efficiency, this causes the tarball to use root/root ownership,
>>>> rather than leak whomever produced the tarball.
>>> I don't understand this part. Isn't the ownership whatever "git archive" reports?
>> This is fixing the issue you noticed about internal ownership:
>>
>> xen.org.cvs/oss-xen/release$ tar tf 4.20.1/xen-4.20.1.tar.gz --verbose | head
>> drwxrwxr-x andrew/andrewÂ Â Â Â  0 2025-07-10 12:28 xen-4.20.1/
>> drwxrwxr-x andrew/andrewÂ Â Â Â  0 2025-07-09 14:57 xen-4.20.1/.github/
>> drwxrwxr-x andrew/andrewÂ Â Â Â  0 2025-07-09 14:57 xen-4.20.1/.github/workflows/
>> -rw-rw-r-- andrew/andrewÂ  1362 2025-07-09 14:57 xen-4.20.1/.github/workflows/coverity.yml
>> -rw-rw-r-- andrew/andrewÂ Â Â  96 2025-07-09 14:57 xen-4.20.1/.gitarchive-info
>> -rw-rw-r-- andrew/andrewÂ  9668 2025-07-09 14:57 xen-4.20.1/Makefile
>> drwxrwxr-x andrew/andrewÂ Â Â Â  0 2025-07-09 14:57 xen-4.20.1/stubdom/
>> -rw-rw-r-- andrew/andrew 24220 2025-07-09 14:57 xen-4.20.1/stubdom/Makefile
>> drwxrwxr-x andrew/andrewÂ Â Â Â  0 2025-07-09 14:57 xen-4.20.1/stubdom/grub/
>> -rw-rw-r-- andrew/andrewÂ  2252 2025-07-09 14:57 xen-4.20.1/stubdom/grub/Makefile
>>
>> xen.org.cvs/oss-xen/release$ tar tf 4.20.2/xen-4.20.2.tar.gz --verbose | head
>> drwxrwxr-x root/rootÂ Â Â Â Â Â Â Â  0 2025-11-13 09:51 xen-4.20.2/
>> -rw-rw-r-- root/rootÂ Â Â Â Â  4781 2025-11-13 09:51 xen-4.20.2/.cirrus.yml
>> -rw-rw-r-- root/rootÂ Â Â Â Â Â Â  97 2025-11-13 09:51 xen-4.20.2/.gitarchive-info
>> -rw-rw-r-- root/rootÂ Â Â Â Â Â Â  30 2025-11-13 09:51 xen-4.20.2/.gitattributes
>> drwxrwxr-x root/rootÂ Â Â Â Â Â Â Â  0 2025-11-13 09:51 xen-4.20.2/.github/
>> drwxrwxr-x root/rootÂ Â Â Â Â Â Â Â  0 2025-11-13 09:51 xen-4.20.2/.github/workflows/
>> -rw-rw-r-- root/rootÂ Â Â Â Â  1362 2025-11-13 09:51 xen-4.20.2/.github/workflows/coverity.yml
>> -rw-rw-r-- root/rootÂ Â Â Â Â  7035 2025-11-13 09:51 xen-4.20.2/.gitignore
>> -rw-rw-r-- root/rootÂ Â Â Â Â Â  798 2025-11-13 09:51 xen-4.20.2/.gitlab-ci.yml
>> -rw-rw-r-- root/rootÂ Â Â Â  15298 2025-11-13 09:51 xen-4.20.2/CHANGELOG.md
> I guess my reply was ambiguous. I did understand that's the effect, but I
> wasn't able to tell why such a difference would result. It's all "git
> archive", before and after the change.

Ah.Â  The first git archive does the right thing, but the result gets
expanded into the regular filesystem and takes local ownership.

Then, nothing is merged, and the result is re-tar'd using:

GZIP=-9v tar cz -f $xen_root/dist/xen-$desc.tar.gz -C $tdir xen-$desc

which retains local ownership into the resulting archive.

For 4.19 and earlier, I propose to add '--owner 0 --group 0' to this tar
invocation.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:43:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:43:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161585.1489502 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXc6-0000VO-Eo; Thu, 13 Nov 2025 13:43:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161585.1489502; Thu, 13 Nov 2025 13:43:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXc6-0000VH-Bt; Thu, 13 Nov 2025 13:43:50 +0000
Received: by outflank-mailman (input) for mailman id 1161585;
 Thu, 13 Nov 2025 13:43: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=FQDN=5V=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vJXc5-0008Bv-Gr
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:43:49 +0000
Received: from mail-yw1-x1130.google.com (mail-yw1-x1130.google.com
 [2607:f8b0:4864:20::1130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c778324f-c096-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 14:43:47 +0100 (CET)
Received: by mail-yw1-x1130.google.com with SMTP id
 00721157ae682-787e7aa1631so19927537b3.1
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 05:43: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: c778324f-c096-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763041427; x=1763646227; 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=m7KWZqcrPxz5V7yvNwf+MCx9P5yDv1CMsFtbysJ/WHE=;
        b=jkpgoc8dnvyXnXckyNeCsBZSru9iYhmQY6YGUklVOK06lkIn0B6usZ0mqzKKeqw6Uh
         BxhKdkqwdAvlamzRhu/ud/m8ToQR0Z4QRx2rvXia3DUyi8sWEec2+xqQ7zJbE2e9eTce
         CmnINZMLV5rraqHG9r7wAjDRuGMcoJ9JPotAo3lwcC0LdaQe0c4MFcXO4wJRMGjgj/Bb
         43hetWbgQsSt+AtPgOqyjDw/VwQmq82lxKHMSLlflgbD4oIA1opV3U4xG4oYPLbeT1jt
         ZT41NRTlHGt0WvjO6uj5JQQb5S8hJ9GisUhw5mluglHhridlsLi+ck3/nD3vRaUQHl8b
         7h6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763041427; x=1763646227;
        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=m7KWZqcrPxz5V7yvNwf+MCx9P5yDv1CMsFtbysJ/WHE=;
        b=UW4v6ToGVktHvsI4GHkFdzjNV04Fj30NLpW+vW65DiwGyUtGlC1WAg0tuxKQyKOg81
         cTUgDSglR10fP/r3lzFnVVKVXdwC8KWOVBY8wUnxtXjWbhezNwycO14873rETHcpYcCE
         dZlGMLGgOqxeknDZZLqUnDOnyGhWlNpVOeMy6Q83zeoMcSkYewkpSGG77/zX1Nj1ILS1
         XA5uO5q9r5OzLC/cNiPKu1mxZKwoRzTN9L8zV9ciMLCmNAt3a7mIIKE6M3W0iA5RM1B4
         2z9Hr+A5wKItcnA9OLVg1LaMSDktSh6v9yF4K/ozYwCei5wcwIBrLdQHpoyrBk/v/2wO
         8oGg==
X-Forwarded-Encrypted: i=1; AJvYcCXvs/e0nJomEan+v95xy7pSEH5RW0oVPMTKenNYjzITwzu35CnlYGmD2ipLFy63Adr+thlMTl5n2qw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwJkPGDviMqx97i6IV8pNANs0/NrxSM9VCus80Gp8zwbH59wQtx
	1AENIAq9c2cxAI+laG4Nn1OHRUomTU1qRrfAy6hy1wY2pMNQvBcpgret7RdPV0Fc5oEPdOCCyFO
	rswAZBHnxPzeEug+IqjdZGSs4JWxkUsJHMRHT
X-Gm-Gg: ASbGncuA/Ij1KWrYxnYoau4S5D3BeakJ6ruIzZPva1XZkEho3txTPf5U6iwptuKze22
	xDdD2vtu3j+y7vRirEvY98L6mtC2v2KRNpTFc/OdD7AFt3Nn/srcbT/D1bmsjmrL/fLJ8br2l7q
	7XCxI+OZmxGVyaYKAEWsWaHS5cNjh2j5DFu3LDAJSupxPZ2vCbRvijYJjkt5kdH24LWFLNV7bvZ
	k41IfsVd3dSKxRcOf/BHMNZtj1Rg/0CpZVRMcrgU/3FdF7FG1vZv6f4y4NtL0j6aahrw80=
X-Google-Smtp-Source: AGHT+IFb543cyZ2fv56wukwqjJcqjPpPv57L7zHXAyBM1zW6CnfNbfHWgKPesrooiUdtZCUB2aIRWifQ+yNTFCXBiAQ=
X-Received: by 2002:a05:690e:1289:b0:63f:b988:4a91 with SMTP id
 956f58d0204a3-6410d1387f1mr2357693d50.24.1763041426660; Thu, 13 Nov 2025
 05:43:46 -0800 (PST)
MIME-Version: 1.0
References: <20251113124945.25343-1-frediano.ziglio@citrix.com> <5c14f58d-c8bf-4c63-b48a-9af5af88c8f2@citrix.com>
In-Reply-To: <5c14f58d-c8bf-4c63-b48a-9af5af88c8f2@citrix.com>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Thu, 13 Nov 2025 13:43:34 +0000
X-Gm-Features: AWmQ_bm4XTPmiv-DuFRxOgOUcUTZ6wiYadcZiq78O5UQTmK-2wO-LwHb8SkwTvI
Message-ID: <CAHt6W4fGe1rYh_J_97dnkYHaaSqXRy6Y96OGtsgKj5YJOzuoDA@mail.gmail.com>
Subject: Re: [PATCH for-4.21 v7] xen: Strip xen.efi by default
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>, xen-devel@lists.xenproject.org, 
	Frediano Ziglio <frediano.ziglio@cloud.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Demi Marie Obenour <demiobenour@gmail.com>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	Stewart Hildebrand <stewart.hildebrand@amd.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"

On Thu, 13 Nov 2025 at 13:17, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>
> On 13/11/2025 12:49 pm, Frediano Ziglio wrote:
> > From: Frediano Ziglio <frediano.ziglio@cloud.com>
> >
> > For xen.gz file we strip all symbols and have an additional
> > xen-syms.efi file version with all symbols.
> > Make xen.efi more coherent stripping all symbols too.
> > xen-syms.efi can be used for debugging.
> >
> > Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> > ---
> > Changes since v1:
> > - avoid leaving target if some command fails.
> >
> > Changes since v2:
> > - do not convert type but retain PE format;
> > - use xen-syms.efi for new file name, more consistent with ELF.
> >
> > Changes since v3:
> > - update documentation;
> > - do not remove xen.efi.elf;
> > - check endbr instruction before generating final target.
> >
> > Changes since v4:
> > - simplify condition check;
> > - avoid reuse of $@.tmp file.
> >
> > Changes since v5:
> > - avoid creation of temporary file.
> >
> > Changes since v6:
> > - install xen-syms.efi;
> > - always strip xen.efi;
> > - restore EFI_LDFLAGS check during rule execution;
> > - update CHANGELOG.md;
> > - added xen-syms.efi to .gitignore.
> > ---
> >  .gitignore            |  1 +
> >  CHANGELOG.md          |  3 +++
> >  docs/misc/efi.pandoc  |  8 +-------
> >  xen/Kconfig.debug     |  9 ++-------
> >  xen/Makefile          | 25 +++----------------------
> >  xen/arch/x86/Makefile | 11 ++++++++---
> >  6 files changed, 18 insertions(+), 39 deletions(-)
> >
> > diff --git a/.gitignore b/.gitignore
> > index d83427aba8..213972b65c 100644
> > --- a/.gitignore
> > +++ b/.gitignore
> > @@ -222,6 +222,7 @@ tools/flask/policy/xenpolicy-*
> >  xen/xen
> >  xen/suppression-list.txt
> >  xen/xen-syms
> > +xen/xen-syms.efi
> >  xen/xen-syms.map
> >  xen/xen.*
> >
> > diff --git a/CHANGELOG.md b/CHANGELOG.md
> > index c9932a2af0..3bdcc3b47a 100644
> > --- a/CHANGELOG.md
> > +++ b/CHANGELOG.md
> > @@ -65,6 +65,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
> >        for hypervisor mode.
> >
> >  ### Removed
> > + - The install-time environment variable INSTALL_EFI_STRIP is no longer
> > +   supported, xen.efi will is now always being stripped.
>
> I'd rephrase this a little.  "... INSTALL_EFI_STRIP no longer exists.
> xen.efi is always stripped, while the symbols remain available in
> xen-syms.efi."
>

Done

> Personally, I'd have put this in the Changed section rather than
> Removed, but both can be adjusted together.
>

Done

> This bug is on the 4.21 tracking list.  CC'ing Oleksii.
>

So.. should I leave the CHANGELOG.md change in 4.21 or should I move
it to 4.22 ??

> ~Andrew

Frediano


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:45:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:45:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161598.1489512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXdZ-0001Ek-Ql; Thu, 13 Nov 2025 13:45:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161598.1489512; Thu, 13 Nov 2025 13:45:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXdZ-0001Ed-NM; Thu, 13 Nov 2025 13:45:21 +0000
Received: by outflank-mailman (input) for mailman id 1161598;
 Thu, 13 Nov 2025 13: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJXdY-0001EX-Ps
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:45:20 +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 fe43f5b5-c096-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 14:45:19 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-64198771a9bso1516569a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 05:45: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
 a640c23a62f3a-b734fa81223sm171546466b.4.2025.11.13.05.45.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 05:45: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: fe43f5b5-c096-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763041519; x=1763646319; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7IYnH03GwJiwEXYHq7z5djT9LuQQHqZnjMKilL0R9ks=;
        b=Q6m32YcFFZwCwLtjh/f7L3/eHtKu+NyQkCMqMWmGm5lrhRT/dJ2RgpT+sd1iPI0vtS
         ytjhZ2/L/utt4+SsVFKbjKD3XwsZw/FL0kvF2616V9n+kKOpxUo9Ep3bVMeSn9Cx4UGO
         zrgN6C0clX/VoJWg59tb+NDEstjyRML9AynicRuQBoKpL1pbD/+2C3C49Inqwv5BMLGr
         f9+HviI0nH54WoGDVw6L7+fmZNGvMx7AHhLaYlGCd6bIuIIzOPVOeFp8Rmmkg1yNOwHv
         hjnQqaLPZ6gMEm7IEheiits13vAc1M2Uf8ZnyB7DN/8jQDmv64rrDJMcvMSso+vtsXG3
         Gmdw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763041519; x=1763646319;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7IYnH03GwJiwEXYHq7z5djT9LuQQHqZnjMKilL0R9ks=;
        b=dJvw6Ayn0F4I8hTlBEKy9YGlsKiawaLuSQPZAV6NwP2HfdeeQ+JCIkg4q+jUWLGnBq
         mh/4RQVuGl1sCGtNGCijxdv/WDfHGaWMEmAQAD+1TLi/3j7PmSSbSfQLkuHXUG3fH/x6
         4VfVD7IFcDBGOb9agRxwMzo7/e8SUsnw4WxASZoVoSkxqaw/e2RnjdfoYL4VPo/RddFx
         xRdXJMGa5SiPgPlQWIN2JP4ibYo9WsXqZilogkA2YFwQyt8yXCiv3HA467laS9leMkId
         CgM6jIhQsm9cYaL/FpRPtbStc4Lw+bglmHM2qfbVu/mpzrSJHfWUjKqOh1srRZcyouU2
         V3Sg==
X-Gm-Message-State: AOJu0YwndDeGoRbSFEhRC1janAgFwSKpvkGZ9I+5EBkhDa4812ev5dPi
	wGec9fQFf3UCWBhC88CyeQs2SgIe/vsf3FjZebglPlw3hX2DDcqi8mNM8XtV0+p+Kw==
X-Gm-Gg: ASbGncvo5vnoubgblbeOc4weWs6VdgCt0E9E5RGfqIAewA3tF8zgb/qiIhxzxRnH+0A
	+SNfGFXnM/vIcMYR4gLwPomeE9Rpm7pb2b3ii5vZMPydzY3vWagym5IZowL80ZGtCVRuO+UMpq3
	CQ93LjIkcFh9vN/OSpO993tCQv3XMLYn0KHBdvrUppLqy0/9rIT66lIWDTXupOdxxKOlPBO4tP+
	fCtRfHCvfZN8oVh67qI5ItRKVGIuy/KigTNjmalUytBQoshtWxBOr/K90hAyv0K7Z9JsJn8FzM1
	ZQIPy6/eHZoMjqecnA3iK6QRhdjao4c+i2IEKhL0kt63bGknRP8rF7as5aF/bapeT/PG0n0gHH6
	NRJDcieOBN1u8SlcTcssHSTO+S9ZgBdErkplgv8W7LnFAfJNcHb6e0ssZC+lkmh02zcgyglcZrT
	d3LSkjZO/NbSPRP7zsTHIvFZWH2PChKlbuZzAaJ5bz3z4KHT89ukSYNK+Um5Kasfnx
X-Google-Smtp-Source: AGHT+IFBVVdFAD2d/Mo7MJ7t5Hvo+v8Ucl2jZ2CRltmbBM3Sa0OgK5ABz819D970s+0CAzi5TMzymg==
X-Received: by 2002:a17:906:f591:b0:b70:be84:5186 with SMTP id a640c23a62f3a-b7331aec174mr650743566b.44.1763041518656;
        Thu, 13 Nov 2025 05:45:18 -0800 (PST)
Message-ID: <f1c74d0b-9f1b-41cf-885f-9323f4d5ca9a@suse.com>
Date: Thu, 13 Nov 2025 14:45:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.20] mktarball: Drop double-processing of the archive
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>
References: <20251113130154.220139-1-andrew.cooper3@citrix.com>
 <ce976661-927c-44e0-a478-893242bacba3@suse.com>
 <b0d1b91a-a9fa-48fc-9546-b481c75ee185@citrix.com>
 <c0ac3598-c070-4b73-9e6a-49385338ea1c@suse.com>
 <1dc03c2e-772e-40ab-b3a1-7c9d463b7250@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: <1dc03c2e-772e-40ab-b3a1-7c9d463b7250@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.11.2025 14:42, Andrew Cooper wrote:
> On 13/11/2025 1:34 pm, Jan Beulich wrote:
>> On 13.11.2025 14:29, Andrew Cooper wrote:
>>> On 13/11/2025 1:12 pm, Jan Beulich wrote:
>>>> On 13.11.2025 14:01, Andrew Cooper wrote:
>>>>> This is a partial backport of commit 63ebd0e9649e ("releases: use newer
>>>>> compression methods for tarballs"), but keeping gz as the only compression
>>>>> method.
>>>>>
>>>>> In addition to efficiency, this causes the tarball to use root/root ownership,
>>>>> rather than leak whomever produced the tarball.
>>>> I don't understand this part. Isn't the ownership whatever "git archive" reports?
>>> This is fixing the issue you noticed about internal ownership:
>>>
>>> xen.org.cvs/oss-xen/release$ tar tf 4.20.1/xen-4.20.1.tar.gz --verbose | head
>>> drwxrwxr-x andrew/andrewÂ Â Â Â  0 2025-07-10 12:28 xen-4.20.1/
>>> drwxrwxr-x andrew/andrewÂ Â Â Â  0 2025-07-09 14:57 xen-4.20.1/.github/
>>> drwxrwxr-x andrew/andrewÂ Â Â Â  0 2025-07-09 14:57 xen-4.20.1/.github/workflows/
>>> -rw-rw-r-- andrew/andrewÂ  1362 2025-07-09 14:57 xen-4.20.1/.github/workflows/coverity.yml
>>> -rw-rw-r-- andrew/andrewÂ Â Â  96 2025-07-09 14:57 xen-4.20.1/.gitarchive-info
>>> -rw-rw-r-- andrew/andrewÂ  9668 2025-07-09 14:57 xen-4.20.1/Makefile
>>> drwxrwxr-x andrew/andrewÂ Â Â Â  0 2025-07-09 14:57 xen-4.20.1/stubdom/
>>> -rw-rw-r-- andrew/andrew 24220 2025-07-09 14:57 xen-4.20.1/stubdom/Makefile
>>> drwxrwxr-x andrew/andrewÂ Â Â Â  0 2025-07-09 14:57 xen-4.20.1/stubdom/grub/
>>> -rw-rw-r-- andrew/andrewÂ  2252 2025-07-09 14:57 xen-4.20.1/stubdom/grub/Makefile
>>>
>>> xen.org.cvs/oss-xen/release$ tar tf 4.20.2/xen-4.20.2.tar.gz --verbose | head
>>> drwxrwxr-x root/rootÂ Â Â Â Â Â Â Â  0 2025-11-13 09:51 xen-4.20.2/
>>> -rw-rw-r-- root/rootÂ Â Â Â Â  4781 2025-11-13 09:51 xen-4.20.2/.cirrus.yml
>>> -rw-rw-r-- root/rootÂ Â Â Â Â Â Â  97 2025-11-13 09:51 xen-4.20.2/.gitarchive-info
>>> -rw-rw-r-- root/rootÂ Â Â Â Â Â Â  30 2025-11-13 09:51 xen-4.20.2/.gitattributes
>>> drwxrwxr-x root/rootÂ Â Â Â Â Â Â Â  0 2025-11-13 09:51 xen-4.20.2/.github/
>>> drwxrwxr-x root/rootÂ Â Â Â Â Â Â Â  0 2025-11-13 09:51 xen-4.20.2/.github/workflows/
>>> -rw-rw-r-- root/rootÂ Â Â Â Â  1362 2025-11-13 09:51 xen-4.20.2/.github/workflows/coverity.yml
>>> -rw-rw-r-- root/rootÂ Â Â Â Â  7035 2025-11-13 09:51 xen-4.20.2/.gitignore
>>> -rw-rw-r-- root/rootÂ Â Â Â Â Â  798 2025-11-13 09:51 xen-4.20.2/.gitlab-ci.yml
>>> -rw-rw-r-- root/rootÂ Â Â Â  15298 2025-11-13 09:51 xen-4.20.2/CHANGELOG.md
>> I guess my reply was ambiguous. I did understand that's the effect, but I
>> wasn't able to tell why such a difference would result. It's all "git
>> archive", before and after the change.
> 
> Ah.Â  The first git archive does the right thing, but the result gets
> expanded into the regular filesystem and takes local ownership.

Oh, I see - because of --no-same-owner being the default for non-root.

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

Jan

> Then, nothing is merged, and the result is re-tar'd using:
> 
> GZIP=-9v tar cz -f $xen_root/dist/xen-$desc.tar.gz -C $tdir xen-$desc
> 
> which retains local ownership into the resulting archive.
> 
> For 4.19 and earlier, I propose to add '--owner 0 --group 0' to this tar
> invocation.
> 
> ~Andrew



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:50:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:50:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161613.1489522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXio-0002md-Ca; Thu, 13 Nov 2025 13:50:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161613.1489522; Thu, 13 Nov 2025 13:50:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXio-0002mW-9J; Thu, 13 Nov 2025 13:50:46 +0000
Received: by outflank-mailman (input) for mailman id 1161613;
 Thu, 13 Nov 2025 13:50:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJXim-0002mQ-FD
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:50:44 +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 bf62823e-c097-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 14:50:43 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-b727f452fffso313236566b.1
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 05:50: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
 a640c23a62f3a-b734fa812a3sm170869166b.8.2025.11.13.05.50.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 05:50: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: bf62823e-c097-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763041843; x=1763646643; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+xBESS9IJ6pA4wD0WSdVGAVC6FPHQN7vpy3PvXdxZY4=;
        b=c4XFT/an1brDOhl8nUr8tj1wq5ge0Kwbm2uLNh0q9xzFRAV4HiZ+zeZ1WW0T7fIj7W
         /WJvQAXp2tU4aqcF23w7deC29q5phIA14A+QSEWlM3GAyVY1TaNwh39eCq9Vn9bXPEyo
         pdW4vfaidLHNzLgy1Omcca63W+hFOCtoWr0I5E4ZBzZ8XvFaM14DBkmh3PeK8fJ2ly7p
         L0TYZvRCnxVyfFe9QCxtj81xZWNnKMHrMlmpQIV4/3itTBToC6R62AXFkbFOkPjhl2iS
         5fDMlSewiMzCQrq9aXSmMgpb3KXCK5J+3uf7A9jZikrbNqZYH8B0zAXtgF0+k6PAxsy1
         bJbw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763041843; x=1763646643;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+xBESS9IJ6pA4wD0WSdVGAVC6FPHQN7vpy3PvXdxZY4=;
        b=Z3wR1oVAVgXr7ae2uAepGQy3bY4yVMwN0nfztKRd7lSGZT8ADAs8oxNq8yWmvOGYvh
         gAi+H0QMbr7M5x0cnL8E0A0oc68UJ3caIOdfRIRTGzto043BMfI2k1bcJdxO6m0nPqcY
         3/C3QwCu/6azESS1Q/T2lpoyV9ZEpwSDFHkN/UZj12abT7ENdB/nEyDDoMoPDWbAujZM
         VJtFx35pcmYu/eFPiBbF+Snb7cAlzuuMTNnoGd/29heBAV+7LNtNaYqBnR+UeYeNnDWE
         Yt5Nl5OzpSZLdB7USpPFOQhAp5c2api6EXEGBkT+4i30HKdFHloDo1PNu51WM2Oz8xsb
         7skA==
X-Forwarded-Encrypted: i=1; AJvYcCVDwXT55B6cnw25YugFckTsy88XU67KPNHGre0XkeroJE7+GwQcB4m4yzDoyqDksKK0UqtRgPEFq1o=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxcox4dwDhXYzJ/RVGyWD5T1WOu0LuVxUR5lhokJzdCVHdNCKS6
	V/Y4XatTTuq+1UfCcJxwrQe3QTB/gkpCxReIHh2GeoGejp7kbAAyJo7JC0TzgHhwyA==
X-Gm-Gg: ASbGncs5HDkFbzasOwM3SSSGOP2I5iPmRr0Zt6EpK03vD+bGxYa7O4/uAh+pxlVGsav
	32jjP8zwwccnU4EFz4KUv73woKtJnIYtagPevruR4RSKhaDTa/hOssxJd7ew1fa33EkEZZvucO9
	bjHzk3T4wYBqVrT4tDNdmNvzt145cMVvVM2J3wEjbFdES1BVPA+di/ry+vAlPD2j+IwvsZDD5QT
	ansnQsrDBlwkMesIhNI8Ht5ev+lZ4/BDYHvm2nD2Qximy9eU5qo9vlm1KCNwAShhK9b+JGBTLX/
	W2omwiFvf6VdnFmP8Ah+/DxN3oj7WXw2Kh+YouyDaVHL7OE6nWh3kISjd9OAmqJDdYs8TSBMGgh
	vAXFHnLo72DuTlbpc1KPvujafBWFqFaHL3Kp0P5WjSx5JCcFl+CAq15zTdTmozso/L/j40sdio8
	9TIWfHdX5HGiPqgx350Tz++xtuhiWJo9cjQyZi0+HOUC9bGhn+4xgkRrE1QFJglFp5
X-Google-Smtp-Source: AGHT+IFceF58qKnk8aNNb1W6/0rY/MKEusc3pV6bpPIhwGp2GK50sr8/geb/VxqPrpiF8FdWnXiezQ==
X-Received: by 2002:a17:907:7216:b0:b3f:331a:a982 with SMTP id a640c23a62f3a-b7348056d86mr305417566b.6.1763041842753;
        Thu, 13 Nov 2025 05:50:42 -0800 (PST)
Message-ID: <e16c5302-3ea8-4ce2-97de-4b891bca68a0@suse.com>
Date: Thu, 13 Nov 2025 14:50:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 4/5] x86: pvh: allow to disable 32-bit interface
 support
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <20251111175413.3540690-5-grygorii_strashko@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: <20251111175413.3540690-5-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2025 18:54, Grygorii Strashko wrote:
> --- a/xen/arch/x86/hvm/Kconfig
> +++ b/xen/arch/x86/hvm/Kconfig
> @@ -2,7 +2,6 @@ menuconfig HVM
>  	bool "HVM support"
>  	depends on !PV_SHIM_EXCLUSIVE
>  	default !PV_SHIM
> -	select COMPAT
>  	select IOREQ_SERVER
>  	select MEM_ACCESS_ALWAYS_ON
>  	help
> @@ -70,4 +69,22 @@ config MEM_PAGING
>  config MEM_SHARING
>  	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
>  
> +config HVM_COMPAT
> +    bool "HVM 32-bit interface support on 64-bit Xen" if EXPERT

x86 Xen is always 64-bit, so I don't view it necessary to say so explicitly.

Imo the whole construct will want to move up, perhaps ahead of HVM_FEP.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 13:52:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 13:52:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161624.1489531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXke-0003bL-Mp; Thu, 13 Nov 2025 13:52:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161624.1489531; Thu, 13 Nov 2025 13:52: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 1vJXke-0003bE-Jy; Thu, 13 Nov 2025 13:52:40 +0000
Received: by outflank-mailman (input) for mailman id 1161624;
 Thu, 13 Nov 2025 13:52: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJXke-0003Zf-At
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 13:52:40 +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 049ec015-c098-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 14:52:39 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b7277324054so110307166b.0
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 05:52: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
 a640c23a62f3a-b734fad41f1sm170250866b.23.2025.11.13.05.52.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 05: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: 049ec015-c098-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763041959; x=1763646759; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UVemUlllDfBryrBvzeX7gVYUoPR7foaMqOYSznVSXTk=;
        b=OrX52a4ti6QMBA37eAsOaHrrWD9OGqtP/8MqM4KTIS0vWArQuXU5aAAPhnGNaK5Dia
         8HV6/5/1OrILPuzjOXswpcKaauOCsuGEVln5qimLzsaaiDVLKH/Cv39ja9z6KRdZfziV
         mvJuzLspWWkTRylguAEtOaErYN9gW3gzOhWC3PuCoWtGGBO7S7isBHBSf2wBgQr8fvNH
         o6H6O0WFVm6ygYine/Aq3QyrPPr/9+CGPhy6LWpQ5DsX5IqfKaXasJ7xeQD8JLCFf47S
         BGn/GsTnz8o+swC/k83CK4hPwNssGtD4aSVOuatpq84qIopMewxcggDKjR1PYHfkytBJ
         AbLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763041959; x=1763646759;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UVemUlllDfBryrBvzeX7gVYUoPR7foaMqOYSznVSXTk=;
        b=QekZAfr4S7uXQCRtaYt1GUpsj5CZAKkj2BdaogQdTtY95gr3pn+3lDh2kiP+nKo5Bb
         FU6uUAbeJcT7DrcHaXUd+09eoYrLoPPRIQNuhAM52InO++3TRy9xAuL8WQsSMfJZ6kFu
         vssTiR29YayImY1Hr5RFbZm+nAeZ6Oxw0zimceHW6R7yv4e5iBcCkO5SFlq2O+4n2xDc
         0r5U0KifPR7zhdztW6q+GZy1Q+8sM+EhSKzNAZwmFHSrlAWrCqeP49h0jM3sBB/nVaLA
         EGUiJ7BKFFdrpe4ZKs4pIS+jT9UMyT805ivOxjFgH1J2mOEqWn4l+5W6fFMKrvSuAGAr
         sLfQ==
X-Forwarded-Encrypted: i=1; AJvYcCVEyxKnLKLBOR730VU67cvPhiQ7iVhqgVZyOwuxvRY2tPmTsIQbJiWgRvCox8hLRwSYrJaLVLhOj4Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz0H9X2HQUJeSe1inlAJdhetWDjbTZLXRI/RmTWtX0QbvfXGWHy
	QE+zkty35jV8OvIpOxFgFqKMU5dvhEBlYLsN0m6zI2Xh01QjbUVCu09amMC+vnsOtw==
X-Gm-Gg: ASbGncs6mW06aScNc86RRAAUivf1swIpMBr/pQnVT6jDS3dxfwWgm9oKOB807aAqtWX
	zU6254FJznw0MdhzhD6pYlqNsxV+05az7jb8iRVmfXW/0ZGjUyBSYBsCetOUIPdFjxZHqsTTLp9
	jfdIrHwJYF8+nSW4P728ZeWyjW9bZPPnUHv9CUEnqvYhXly+svRRiHZL/HJJemscNmmVi6WV3lX
	7z2bS0mvI6/LQjLxPbblG25OjoCs+xMWS4pIUG/7RaWNHD6rqWj5kak2AXSHDem8weAopA5789Y
	AZWKrSlHscWGtyJolwQY85b4N1g2CpAWH9OJvmBMZoaI5v4kZ+UqJkxAfnrn8dB592SogY7cnHh
	JU2e99z1ymwe+uegm5KGcggHifd6We9uCiVuqtmLB1IVr5uMVftZ+rsHWQUVxe5Csoqv1XY4sqC
	1vNEWEfMahhYzFAAR354izIFdr4AvuGDJDs/vyIGm/rqn/y7n18i2Rg2QyvyoXnw70BNTZjc14n
	CY=
X-Google-Smtp-Source: AGHT+IFSlQwmWu3aqzfR7TlRZQM2UthORwcOmWU34KumKfYFprcjLOG+c8X8ReK7MMZblVzpX3qUTQ==
X-Received: by 2002:a17:907:7290:b0:b73:53ab:cfa1 with SMTP id a640c23a62f3a-b7353abdf18mr256960166b.17.1763041958857;
        Thu, 13 Nov 2025 05:52:38 -0800 (PST)
Message-ID: <77044bac-e343-4c04-ba1f-11446ffeeb36@suse.com>
Date: Thu, 13 Nov 2025 14:52:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 5/5] x86: constify has_32bit_shinfo() if
 !CONFIG_COMPAT
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <20251111175413.3540690-6-grygorii_strashko@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: <20251111175413.3540690-6-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2025 18:54, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Constify has_32bit_shinfo() if !CONFIG_COMPAT.

As already indicated in reply to another patch, drop the field altogether
when COMPAT=n, having the macro simply resolve to false in that case?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 14:05:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 14:05:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161642.1489541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJXx6-0006o4-Rq; Thu, 13 Nov 2025 14:05:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161642.1489541; Thu, 13 Nov 2025 14:05: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 1vJXx6-0006nx-P4; Thu, 13 Nov 2025 14:05:32 +0000
Received: by outflank-mailman (input) for mailman id 1161642;
 Thu, 13 Nov 2025 14:05:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJXx6-0006nl-7v
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 14:05:32 +0000
Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com
 [2a00:1450:4864:20::531])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d07b3351-c099-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 15:05:31 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-640e9f5951aso3260128a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 06:05: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
 a640c23a62f3a-b734fb12c87sm171670866b.31.2025.11.13.06.05.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 06:05: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: d07b3351-c099-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763042730; x=1763647530; 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=sZq0rGLOh+pLuLrf0Wbz4KdmVtquORqk6xNM2i1m+CU=;
        b=bud5aBc9naSj6JXNr//OTf90wWqKMGit07zQVAxZonEgsf2wO0zEILiZfw1nzCZEzT
         ZxRauZwIWwgnReSMCrCC2BPq7pZ1PwaOSmguvKvFVkzhnCAISrQ3gw3/sc2MYW7zTCOf
         Kqx3deYVQmB04KEZpwj0dZOKPd2Ex7pDZO5GuaC3eWVFEuba2d0PhpPCQ0sWl9f06qjy
         3fFqEyESDbzSQFVzd6MLC102fnYA1nQh4qj0OPkJFmxB4T2VQ2pwzoKUKSNNBAJ1L63f
         2e1xQ/MUkI5B2PvJHEUUw/lIzhao9CYeNcufSdTj/29sUr0PwkTXGQoquaP2/nD/m3F/
         Zpug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763042730; x=1763647530;
        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=sZq0rGLOh+pLuLrf0Wbz4KdmVtquORqk6xNM2i1m+CU=;
        b=LWc75JrvNsLJymmd/4WBnKII8k9ZHf/pQiJeF/N0piNlz5NAEXosTN8KfFmViR3uBk
         V0/1DHqyMkBEElxjY4gWVsHH1fysNu/ZrgCaZe4da9ql0LD3mRPjcs2lF7gE83HZJeeL
         ithA7LWaK+IYBs0Cz5r0E1fz61Sy/LCrB9YqWshEJvSpOs5XnE9+cS4oJ1HczHM/ukMV
         LMbx66wbZh4JcdR3NmNMik5qtqD7pByF0AbgpM/FUW094YTffYP7abexw2VbYMUS6Ym8
         eoUtI99vXzRSEayyBqVvrsibW06qxtgiCBd9g3sizu/nNTHrnAMmY6u5j+31rPQ5/pNm
         FB8A==
X-Gm-Message-State: AOJu0YxiHqeSA8QzfIl/h6s56F1KQQddaUMvhHUXWgv/AY6Ih1T1fG7p
	vcGTrrzT4tZ0SzW3R2GL0J66aU/zrtzzJ5On9iUuxdnVuCB1EYtwvKYrEUDWKF1RUw==
X-Gm-Gg: ASbGnctBrMcwxs09rBlVLdp8FqeqFuHHqYbTX5iubqoDXEwaQvQaI+Y/4oqgBSK/Fgb
	dhjrGtDpTHHZ6iFujimzRkjPdVWqVohAxg+zftKcROnVZg1iiAwp8Zl6H4urVu3++ABCLcG2SDR
	lzCyizNrtzkfsO01Xi3A7ASdiAD6VJpxpMVExNdDeN13II4AIFdhxeyt23E6m9XEjOo1wl92ZhK
	3YZsNzLEpNapRJ8duoP9SycEqhlqvFXYNXAcq8JPD9B0hGcnfpDW7P8Rn8kZwRS+giIPSCK550I
	yiGxu1pYVpUEWAZjbU/Dx6zmCKiVADKolTFfo7E07J/YWgF4BA5XiWs66Fs6ZDG97Zv5K86ir7L
	XZvgOrC/8OdhQuTu6km5PsuqDRfZLjyXczdxZldyA0NZmDoYDJ2Rrclaco88wcWuIYamDaguFyf
	HJg1KK6zPXsKdoL1T/5KQu0I/YzW8p9PdUlmHeAQ+M4GKWVhYSJ5QkTAVDup8oNDPHBfIfdnMqG
	rE=
X-Google-Smtp-Source: AGHT+IFAOzGnnAJoS1b7fKcAUNiyowiDf8ahXtFV0LF9WI6V8jVnkBjSeTXMmxuF7zshlHQClIscOQ==
X-Received: by 2002:a17:907:944d:b0:b6d:545e:44f6 with SMTP id a640c23a62f3a-b73483674admr338161066b.12.1763042730387;
        Thu, 13 Nov 2025 06:05:30 -0800 (PST)
Message-ID: <6352ac82-e8c9-4c63-9603-f31a0e9d737d@suse.com>
Date: Thu, 13 Nov 2025 15:05:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: Xen 4.20.2 released
To: xen-announce@lists.xenproject.org
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

All,

we're pleased to announce release of another bug fixing Xen version.

Xen 4.20.2 is available from its git repository
http://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=refs/heads/stable-4.20
(tag RELEASE-4.20.2) or from the XenProject download page
https://xenproject.org/resources/downloads/.

We recommend all users of the 4.20 stable series to update to this latest
point release.

Regards, Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 14:13:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 14:13:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161666.1489555 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJY51-0000bY-KT; Thu, 13 Nov 2025 14:13:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161666.1489555; Thu, 13 Nov 2025 14:13:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJY51-0000bR-HW; Thu, 13 Nov 2025 14:13:43 +0000
Received: by outflank-mailman (input) for mailman id 1161666;
 Thu, 13 Nov 2025 14:13:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJY50-0000bJ-Dt
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 14:13:42 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f3fe1516-c09a-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 15:13:40 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b6d402422c2so131258266b.2
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 06:13: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
 a640c23a62f3a-b734fd809absm170278966b.44.2025.11.13.06.13.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 06:13: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: f3fe1516-c09a-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763043219; x=1763648019; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4TTJPVdAZmkz3yr/Hfs42Z7Z6Q3IXIsREz8jqYX8PVk=;
        b=GbRB6H/2m/gYIukpWiTCVdj4wl5Ra+liDMEzDW8gXXRhtnDebR1+uMfl0qMEQKmZQO
         8OceHtHnJBxIASnfSSyyyKiRXZeT7KX6rWcQ9l6oZF7AphfuzgCo9yBGG+WHcivvz0XA
         /kyvS9Yxaw8+ffiJOvG+CIF7KT0ZKlIqYB76ui8bbGRFP/Rdw6O6VHR64V2xNcAyRnQY
         BOyj5HqV4dLNnWSl5Wac/Ns/8JRqeAWhyMbc3wc1V/ZI+Yf/tShlwKM4skFxlGtjfPvQ
         JNjKm+zDKX4VpJsd1Knf5uBeGSbayib/tqvJKzP5eTGBooSDLq7m0jZlsXRM++EbW5KW
         RvIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763043219; x=1763648019;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4TTJPVdAZmkz3yr/Hfs42Z7Z6Q3IXIsREz8jqYX8PVk=;
        b=V1sieD0Q47f90ZBjpSDmkhLt545fjvGfwQr91Xk3M+btmk1ewxXSkNTBP+uPD6AVj0
         q1xB0ngoeWf7OytXaOLwrvb725laCa1YbEAhYbHI7fA0tQTsBtaa+Y2/KiGh7WPxf40X
         82D++vZN8ujgUspLjpnfzQS9MX08UvwT6kgjbspl+NynrsByKC0FPAAH46VM8ktkqusJ
         BaofiwAODuo0yGgOMNJcHS58ZUZsnmtSzzy9w3aH1iYgDDDse8EB1o0LSSn8S8IU6TmG
         gxpD3EnvgOxOeXS04fVbzjdG0kTb0khK8+qbCEr3auzOdEFCwb6LMQlm1rCRO6WiM38I
         v7YA==
X-Forwarded-Encrypted: i=1; AJvYcCV176P+ioz8B+IB6nv5LoSyG2tlLQu2WDf603F6W2DdizAeSDXaGqfqBsbQ47WC/Z3cEHPqCBgo6ts=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw3ZqJsgj+/zF7IPKROE2g8NRlyyynT1WOjB5ISzO5d/pGiI169
	vtNxw5nYccpUBeGA8rz/Eal2IFnKNHPVKT5hM3h8pFYq7zYc6R2yJwyWnhPBA0UbPg==
X-Gm-Gg: ASbGncvhY4jwyp+oyn/fp3sARKxHdlTUNT/RyjRspOasbEEKItodyA0s+OgsGYo6fe9
	YBSVGknGMTEVlOShKUEG/xiFQUnan1jbqNSXI9aYJgX54aFxKmOr/AfnUrEDLWWaffGJgLgo120
	LKVnzmGTbxeMTmXL0zS4OYWWHR/2+MCO2z6UwFYFf0cPe4lHbeB8hKYdJ9/lditA5UozlK2Purj
	zOOkeJ/PgePakAHlifkZnX7JyDQRcq5+5YICk9I+qhUOcYV2uHr1QUSsW5+Hy+SzSMzqTuTBeEG
	uPKjynHjUcDnG1T66jkqfgdik0R/wCb8orvZ06IiyjmHaxmPFzqqVL0O7zJkuQOxQKEvkrXjgD6
	AJgv4Sr/evwaoPu9/Fqq/0Ptt48XZpOXguLZOLQ9BlPv00K1uT9vO6JTsa0LAaGn37gHIWxZhl1
	IGq43mSeqTiXt1XYQ3R5jrgMfU47y1TSOZw0APY3CJG5EN0AQy7KIc5C93LZ33Ndf8QOZ9Zavc8
	Pk=
X-Google-Smtp-Source: AGHT+IFkREzEUOlIBeyy2rpmAWznBG+4sB1Qd3pEFtZaN1dimQkzlcu96WA0CRI2QG/M6GH99nkKmQ==
X-Received: by 2002:a17:907:cd0d:b0:b72:52c2:b8e0 with SMTP id a640c23a62f3a-b7331a6f64fmr665531666b.37.1763043219434;
        Thu, 13 Nov 2025 06:13:39 -0800 (PST)
Message-ID: <7573a826-23f3-4924-96da-032e74ae8916@suse.com>
Date: Thu, 13 Nov 2025 15:13:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/7] xen/page_alloc: Pass node to adjust_tot_pages and
 check it
To: Bernhard Kaindl <bernhard.kaindl@cloud.com>
Cc: Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Tamas K Lengyel <tamas@tklengyel.com>, xen-devel@lists.xenproject.org
References: <cover.1757261045.git.bernhard.kaindl@cloud.com>
 <80adbc587f6acf6bae05bf66016ffecb532f8877.1757261045.git.bernhard.kaindl@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <80adbc587f6acf6bae05bf66016ffecb532f8877.1757261045.git.bernhard.kaindl@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.09.2025 18:15, Bernhard Kaindl wrote:
> @@ -2806,7 +2816,8 @@ void free_domheap_pages(struct page_info *pg, unsigned int order)
>                  }
>              }
>  
> -            drop_dom_ref = !domain_adjust_tot_pages(d, -(1 << order));
> +            drop_dom_ref = !domain_adjust_tot_pages(d, NUMA_NO_NODE,
> +                                                    -(1 << order));

As you touch this, can you take the opportunity and switch to using 1L here?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 14:18:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 14:18:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161678.1489570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJY9v-0001Lx-6q; Thu, 13 Nov 2025 14:18:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161678.1489570; Thu, 13 Nov 2025 14: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 1vJY9v-0001Lq-3r; Thu, 13 Nov 2025 14:18:47 +0000
Received: by outflank-mailman (input) for mailman id 1161678;
 Thu, 13 Nov 2025 14:18: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJY9t-0001Lk-Qn
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 14:18:45 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a442dec9-c09b-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 15:18:35 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-641677916b5so1618196a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 06:18: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
 4fb4d7f45d1cf-6433a3d7335sm1575034a12.4.2025.11.13.06.18.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 06:18: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: a442dec9-c09b-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763043515; x=1763648315; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=H0UlQISciIBWlq/TUFTjZ1G3jilWFF0VaPN4BmedAAU=;
        b=WP64nOb2Wsn6ubdU0yLfBwwyoq6RlJijJ2LqYDYTE/1BAwAjnczT3NrlE3l/rJNB8Y
         O3qBlnovd6Og3TDe1nSJ7qxnOeRH/QC/svC2kIN124Dr/DTc0R2NE18Z9Zs7MOb9A31v
         cL8fgVqP8jJJ43lMO5ZGxjkpTypS04UO2rsKV6vY//jHuAbeop+FruwVm5CZG2z6MYIX
         Su8+LV9NyqvONKh7eeIurpvxHCwlErU39SuuyI7hIWSOAQ47UWlfR7MxRVfyMzWoQF68
         MJiAfMPxKN+X3g7GrbinCwQAowneIn3V375hKJWN+EqYABoIxRaDSSe/6ezgojblvo1L
         QKXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763043515; x=1763648315;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=H0UlQISciIBWlq/TUFTjZ1G3jilWFF0VaPN4BmedAAU=;
        b=KsBcTF845B/XZzaIPs+yygiT5NW5dY1vphoAHUQLJFXIWFYjUurmTm/XfxTucFbzWH
         H22mjmNsx16qXvpkF/YpRvJV8wF0KBZ4MOyTHMf8DKoAxvwGVHhXONzGIjmosa0dXfdK
         NVGtqyKj/Qn+XGP0cvxSyB6110Jd6cfS7g30tYxVSQttjSGDgByzqVY/LF6sDSoET2tn
         41wcQXNV095NEmPVolFGw9PgYxP4jl3tOKx6FTaZ+vmayJP8tWReG9v1fnfn0EySFj0G
         +Vz2rIoTk5W3QBriv+0iZ3hg7VpXPBPs7ICNPQ/+Y9od84q+9mT0jhAEhj3eb56lGesq
         GlhQ==
X-Forwarded-Encrypted: i=1; AJvYcCWZoisGva5Mrv8NfmwEoiGGzttAvVsl9ROXs6Ub4A8KiMX3I6UovuvFMUSAVx8h/rLgKxfgvCD+zu8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzEOM+LREkcHukQzkbGEkIUsyljw3r66CZCBVmNPWAg82QTT5Hv
	IBu3QnueCLqVE0n/yM7aOHVKnafWgfkGOJhOfOYqGyRNrpJ4hdb0dbDmbZU69tWh/w==
X-Gm-Gg: ASbGncs1Tkk/c2TA6PW+bvWdveBym1PDSc4dZ3iF9hDtnGzGeuKY1Zx+iySsQ2x8Qhy
	v1YxPbBVZj1BPqccoDsvuY9fGo9GDXuaMRCy0E5+33eFH/6CfOJ/bYzwsC3aCCe/G1zgLr4FGZu
	TJP0kvgFaaYd4EBb2B948QO1K+IpBGCOZJ6WfxesXvp1ro2kiDP6KFlB1AqCFceuP7HgTloBCoE
	hpULsPkBODeAB1tOcMjuKXXQFL8IY4yESLIi+2gsjPREthHgLh68fapF8OJ5GE9SH3ir+uTeeiw
	hhg3JgQ6qg5D+0t2kCSZhYpWPvT5ds1M6R715tczU2w6EwifOLOMa2dluZP3SFBwPRr7Id6wg9p
	YUqbepAZ/17IjFEhCYsWPKUKwD0tHYQDtVPd1l9sL3DNyiqkptG/XqjPEQ0yF3zRy7L3M3CfPkh
	VeBnxpE3dcilsjFE7DwI83ihnqMdp2isniwyxByNAvCwaA5q8zRjrzmrnVGUgCoF0Z
X-Google-Smtp-Source: AGHT+IGsKXFg72NR7werMpfKTmmCiEsZ0Btt7tO/76v46MSY3zLxetSHNgdbnbOLmEaxYqtegH2DzA==
X-Received: by 2002:a05:6402:27ce:b0:641:72a8:c91c with SMTP id 4fb4d7f45d1cf-6431a54e90bmr6108275a12.27.1763043515253;
        Thu, 13 Nov 2025 06:18:35 -0800 (PST)
Message-ID: <0978b00a-3848-4c45-aa64-46756c43bb5b@suse.com>
Date: Thu, 13 Nov 2025 15:18:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 6/7] xen/page_alloc: Protect claimed memory against
 other allocations
To: Bernhard Kaindl <bernhard.kaindl@cloud.com>
Cc: Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.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.1757261045.git.bernhard.kaindl@cloud.com>
 <b37634dd9a37b52030bc8196dcdeec896a5706a6.1757261045.git.bernhard.kaindl@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <b37634dd9a37b52030bc8196dcdeec896a5706a6.1757261045.git.bernhard.kaindl@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.09.2025 18:15, Bernhard Kaindl wrote:
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -980,9 +980,19 @@ static struct page_info *get_free_buddy(unsigned int zone_lo,
>      {
>          zone = zone_hi;
>          do {
> -            /* Check if target node can support the allocation. */
> -            if ( !avail[node] || (avail[node][zone] < (1UL << order)) )
> -                continue;
> +            unsigned long request = 1UL << order;
> +            /*
> +             * Check if this node is currently suitable for this allocation.
> +             * 1. It has sufficient memory in the requested zone and the
> +             * 2. request must fit in the unclaimed memory of the node minus
> +             *    outstanding claims, unless the allocation is made by a domain
> +             *    with sufficient node-claimed memory to cover the allocation.
> +             */
> +            if ( !avail[node] || (avail[node][zone] < request) ||
> +                 (insufficient_memory(node, request) &&
> +                  (!d || node != d->claim_node ||     /* a domain with claims */

What if ->claim_node is NUMA_NO_NODE?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 14:29:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 14:29:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161692.1489580 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJYJf-0003bN-2X; Thu, 13 Nov 2025 14:28:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161692.1489580; Thu, 13 Nov 2025 14: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 1vJYJe-0003bG-W9; Thu, 13 Nov 2025 14:28:50 +0000
Received: by outflank-mailman (input) for mailman id 1161692;
 Thu, 13 Nov 2025 14:28: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJYJd-0003bA-Sf
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 14:28:49 +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 118799c9-c09d-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 15:28:48 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b735b7326e5so62948666b.0
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 06:28: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
 a640c23a62f3a-b734fd80d27sm174893366b.40.2025.11.13.06.28.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 06: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: 118799c9-c09d-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763044128; x=1763648928; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6z9LAEGW/utGPc+qe+s1pQh7FGgt8lv2FC/vukN4yA8=;
        b=Iua8/7jNqBje7O2/5kO7G5yIx0Dz2dRHvb1DLb3cGSZALAh+jLds6L/+tRRQE7J4OJ
         Ebu7D6SqjFtGkEuc216r+llf5yDuZt6FrqnCi9J6wC5knacA4oIajHoUVrRHx+sYx1sh
         BssAtqyAaE/JF5UZnWwdXereAEzSGEIppZMUmv8F8oq9ssd/D1/0NCn3241iqQIh2LZa
         lIlFXsL0jcoKrz8mjrdVhI0hSXYNQfL7aPKVsHROhns/Rzvr9jHCToPhp222Kjz2mFp+
         qjOney+M/D9hdrKyWA1GFVev0puVIacAGYTPkUL3EO8gJEjk9ciBSQmZaURNS8vA6jQp
         rdgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763044128; x=1763648928;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6z9LAEGW/utGPc+qe+s1pQh7FGgt8lv2FC/vukN4yA8=;
        b=TuPKni1PdgCqnUjo/5Mch0PN7ypo6J7a+msqE2I8vkI6CzV93D8QwuHQKLEbiwBA1z
         r/6+zpTZgNS2wI5db/4axhu7MhwuPGn1N8TI1mNTBQ5GqhcfH1QO8RJRwEDsk7nWqKx0
         hxiQIXd/PT1pf4lsmTWNp6R4y1SiSlMPeQKCI4jRcssnInDnjBxVFmotWRQzT16VoueC
         G7qvzwzPZKm67a/njvlypntYRAYPcXlal6wh5q/2p4eJrcwJTRRdE1x22LH4aNZjDH1c
         l4EHRJC/MJyKMZkJ+uP9dAN8lAQjHlC8cwUbC2uetW4ng3jHTgmLMXW09epGJVXj/Noa
         7yVA==
X-Forwarded-Encrypted: i=1; AJvYcCU/aFPBCuz4/V0eTZi9CG5EZU/aghy0ez/rRtpX83eDgnf+dRaVEi/74V76OSAywVSIwpcQ89g6prY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyi8ZVRHIsUjYR18k471dJ0ZEUIfpKD1vfaAB3Bz2hihqF4Kkou
	YsU5dDk0c+a24z19ugmYrENkivLzX8T8q817L1a8R+O6UVV0caFFvXB4/4shDgpUtg==
X-Gm-Gg: ASbGncsPgq0lKgUiJc8nYI0RKPSpVOZKR739wkyK+mx1hGNEIa07XRwjz2Hh8+OVrpr
	A9H6OygXMo6lFq7QUU92lutE6pJ0ZYcQ5zX/zN2Z3PakRSGCoqgs3YJgOvq9fU6GXx6Ctx/8pKk
	KXb5z/3hGJxt0fUCLBuVg3GNS4lfaJ+9OnqQr4soCKfWp0mj6OG5ShkoVXQiC5moAyDRaVyqO07
	15yOWnoorKH63HM/7Ve7lfT5NCQcn8M2Hu4FzKOCIhG/oC+s6wA2Ul0X10CtCEm1N8e9njo0btV
	euLpgSthK0sIF4gJo5g06d2VZsW8KaE3cU0Lzv0BPiTdUd88ldBjKZG/JL97KOp5xnrDC2tVSZn
	ycvRA2L1KHPUmR2wo5rDr3ju12/DHxBXVPjBUOUtR8jUjbUjz4E8ZqNURz3aBL27WFdo7SiPCL1
	FExF8IQ7/D8aaI6GD+5fI9V1CJ/uVwNP62UfCTdpVNTMjfdG2eCtGAJAGZD22IPvHHE83/MfjDa
	y4=
X-Google-Smtp-Source: AGHT+IEHl82PpdTl4nbTh0VmiGRufZ9ktiyGRLU+PyL74QdyuVtLqBriQN6NPZWAsJ7rQZvPrMoWtQ==
X-Received: by 2002:a17:907:7e84:b0:b4a:e7c9:84c1 with SMTP id a640c23a62f3a-b7348056909mr357154766b.7.1763044127998;
        Thu, 13 Nov 2025 06:28:47 -0800 (PST)
Message-ID: <4b0b5b43-1931-40a5-9879-f2a2dac9c602@suse.com>
Date: Thu, 13 Nov 2025 15:28:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 7/7] xen: New hypercall to claim memory using
 XEN_DOMCTL_claim_memory
To: Bernhard Kaindl <bernhard.kaindl@cloud.com>
Cc: Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, Christian Lindig <christian.lindig@citrix.com>,
 David Scott <dave@recoil.org>, xen-devel@lists.xenproject.org
References: <cover.1757261045.git.bernhard.kaindl@cloud.com>
 <e45dee16b67f31960e89fb3a3033064fcff02aae.1757261045.git.bernhard.kaindl@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e45dee16b67f31960e89fb3a3033064fcff02aae.1757261045.git.bernhard.kaindl@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.09.2025 18:15, Bernhard Kaindl wrote:
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -267,6 +267,35 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>      return rc;
>  }
>  
> +/* XEN_DOMCTL_claim_memory: Claim an amount of memory for a domain */
> +int claim_memory(struct domain *d, const struct xen_domctl_claim_memory *uinfo)
> +{
> +    memory_claim_t claim;
> +    int rc;
> +
> +    switch ( uinfo->nr_claims )
> +    {
> +        case 0:

Nit (style) Indentation (case labels ant indenting the same as the respective
opening figure brace).

Considering what follows I'm not quite sure though that using switch() is
appropriate here. Kind of depends on what the longer-term plans are.

> +            /* Cancel existing claim. */
> +            rc = domain_claim_pages(d, 0, 0);
> +            break;

This effect also wants mentioning in the public header. It's not what I would
expect (a no-op). Also, shouldn't NUMA_NO_NODE be passed here?

> +        case 1:
> +            /* Only single node claims supported at the moment. */

Isn't the comment misplaced? Comments usually describe what follows, and the
"nr_claims == 1" restriction starts already a line earlier. Maybe the comment
would best go on the same line as the case label.

> +            if ( copy_from_guest(&claim, uinfo->claims, 1) )
> +                return -EFAULT;
> +
> +            rc = domain_claim_pages(d, claim.node, claim.nr_pages);

claim.node needs bounds checking, for nodemask_test() to not overrun the bitmap.

> --- a/xen/include/public/domctl.h
> +++ b/xen/include/public/domctl.h
> @@ -1276,6 +1276,21 @@ struct xen_domctl_get_domain_state {
>      uint64_t unique_id;      /* Unique domain identifier. */
>  };
>  
> +struct xen_memory_claim {
> +    unsigned int node;      /* NUMA node, XC_NUMA_NO_NODE for a host claim */
> +    unsigned long nr_pages; /* Number of pages to claim */

Fixed-width types need using here and ...

> +};
> +typedef struct xen_memory_claim memory_claim_t;
> +DEFINE_XEN_GUEST_HANDLE(memory_claim_t);
> +
> +/* XEN_DOMCTL_claim_memory: Claim an amount of memory for a domain */
> +struct xen_domctl_claim_memory {
> +    /* IN: array of memory claims */
> +    XEN_GUEST_HANDLE_64(memory_claim_t) claims;
> +    /* IN: number of claims */
> +    unsigned int nr_claims;

... here.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 14:38:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 14:38:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161707.1489589 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJYTP-0005lj-0x; Thu, 13 Nov 2025 14:38:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161707.1489589; Thu, 13 Nov 2025 14:38:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJYTO-0005lc-UV; Thu, 13 Nov 2025 14:38:54 +0000
Received: by outflank-mailman (input) for mailman id 1161707;
 Thu, 13 Nov 2025 14:38:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Z8X8=5V=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vJYTO-0005lW-H7
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 14:38:54 +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 79f34612-c09e-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 15:38:53 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-640860f97b5so1455902a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 06:38:53 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fdac667sm172877866b.58.2025.11.13.06.38.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 06:38: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: 79f34612-c09e-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763044733; x=1763649533; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=b5g5qgfb4LsK/HupJGU+7qgFDOXQXFe7HbR17kKXTRE=;
        b=c7uhg2tcolovKcSxzMKglAyY0upLSP9mc5y+J3ftPfvPuy4pX4FowkK45rIxWoyYlJ
         vqgFBUXVRQAB7//bbcbsJwBcVetvo+I58Fhq+aew4G//ysyPD1es040GjMRkhlRWp/xb
         aHj9aAZtHxeTcq/PJaZrQMRvuOqmmgTJSuLVKpu9eCzfO4VOglto1kjHHPvWeaNa3zX5
         5Qr+988jIwY6YBGPJGkGpqzTNSSaM4acR+HqdsiSr/z2kKypqzyHeVfaaaywzERd2N4l
         DUAMmv+3QTs3nOpcKAgQOHuhgMd8ITc5bD2vr8DntyC6ryv5TauEsrL+gEdKYkhv2FEG
         VFrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763044733; x=1763649533;
        h=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=b5g5qgfb4LsK/HupJGU+7qgFDOXQXFe7HbR17kKXTRE=;
        b=utcrqU34RSbAsIFjLEQQCOir+l4+woN84iRO/pRzA4jPS4Z1kfqbNVzA/MArlL64qh
         f1lGjLjL5czPCa3mKBATjfw2VSDE+VNPC/H0jHj1wpTzUhh4KGAm8XdQco/yAaEX1T31
         4/EYKc6rCGmpMq3W/Pew0YIQgaON7cSzVxPXlkJFsTXWo3+33wTLz61joSRXmi0JHsTa
         G9IcjgFCqKa3XAL99mb7MvAII8mOXowj8LsooH3YQUUK2kmiJuh/HS9MveAswrd+Ttb+
         OTyOb3vD3P2NznWNP1NEYeVOEL/PDTDVRzmx971qBAylGE3UN+PCdtBj53RUV5M4MHB8
         RYxg==
X-Forwarded-Encrypted: i=1; AJvYcCWJjg5e1klYZtHpORxuFXlVLkUuEPWmSZ+tKcx2KcSLLS7CxyKOn1MvXbEg9Kc4AXk4z0oudoD+30I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyF3gsJpwAKMjrBgLXQGBBJQpSVBCsilMT6TtiH8Ib91qpvZn2D
	OYxO9x+4lPIF/WaS8pLNxiX3W26ZzKUnHfxkmcB0a6zRAm0l/O6HDAk/
X-Gm-Gg: ASbGnct7MCECHOmQUdomdfzkAym6zgQEORGfum330KdkBJO4ndFaAbvhT550SJTY7dt
	FjF1FUl68v8/trmT8BfwkQttLbtb7PBbJIUvZWqZOubb6TNWC5jhlPPxvIJK1md0/ZwIiesKEGe
	rq7O0uFonpBmGW+Szo/SwHRzfXfkOaERRUvwgswleLTmdXZ9W/HW+UqgXqWQbPLC0wkbLs4uQek
	AkUTL9nLquCMLmk9CC5gRhwwFp3t7QS1sFrjbzR3EJJbweu/eHK+lnhsOxdFt2+ODcpWvTCr6u3
	natcsGuHE6AgKl7ORk9ErVlual+x7fUcHaYc4+UY+My258P5uLb5Tg1bvex+PJkOqdUOyIPFxCZ
	a2pntjebkvIt7m9d+FS7TvB3AoId70Nvym603SKbMlH/uOqAYZimlhi1/CYD5IxnOIKVnx96qUQ
	ZNjdYe8OvX2n6IE5bpYo+QmFE7YR7UmueYv9Eh0HtczYcwmaG3rw==
X-Google-Smtp-Source: AGHT+IGsQ2quCIAFaX2f8j+OFprm9Ag60uWgXrs3ZXlUVEjrAAIlHjccm0ERFAgyGhfBqssKazg4OA==
X-Received: by 2002:a17:906:478d:b0:b72:ad95:c1bc with SMTP id a640c23a62f3a-b7331a8e7a1mr717815466b.30.1763044732285;
        Thu, 13 Nov 2025 06:38:52 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------C1pOg6sJzSjWiwO5G8v6cD00"
Message-ID: <7928118a-6274-4636-bcef-7b103dce9610@gmail.com>
Date: Thu, 13 Nov 2025 15:38:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.21 v7] xen: Strip xen.efi by default
To: Frediano Ziglio <freddy77@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>,
 xen-devel@lists.xenproject.org, Frediano Ziglio <frediano.ziglio@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <20251113124945.25343-1-frediano.ziglio@citrix.com>
 <5c14f58d-c8bf-4c63-b48a-9af5af88c8f2@citrix.com>
 <CAHt6W4fGe1rYh_J_97dnkYHaaSqXRy6Y96OGtsgKj5YJOzuoDA@mail.gmail.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <CAHt6W4fGe1rYh_J_97dnkYHaaSqXRy6Y96OGtsgKj5YJOzuoDA@mail.gmail.com>

This is a multi-part message in MIME format.
--------------C1pOg6sJzSjWiwO5G8v6cD00
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 11/13/25 2:43 PM, Frediano Ziglio wrote:
> On Thu, 13 Nov 2025 at 13:17, Andrew Cooper<andrew.cooper3@citrix.com> wrote:
>> On 13/11/2025 12:49 pm, Frediano Ziglio wrote:
>>> From: Frediano Ziglio<frediano.ziglio@cloud.com>
>>>
>>> For xen.gz file we strip all symbols and have an additional
>>> xen-syms.efi file version with all symbols.
>>> Make xen.efi more coherent stripping all symbols too.
>>> xen-syms.efi can be used for debugging.
>>>
>>> Signed-off-by: Frediano Ziglio<frediano.ziglio@cloud.com>
>>> ---
>>> Changes since v1:
>>> - avoid leaving target if some command fails.
>>>
>>> Changes since v2:
>>> - do not convert type but retain PE format;
>>> - use xen-syms.efi for new file name, more consistent with ELF.
>>>
>>> Changes since v3:
>>> - update documentation;
>>> - do not remove xen.efi.elf;
>>> - check endbr instruction before generating final target.
>>>
>>> Changes since v4:
>>> - simplify condition check;
>>> - avoid reuse of $@.tmp file.
>>>
>>> Changes since v5:
>>> - avoid creation of temporary file.
>>>
>>> Changes since v6:
>>> - install xen-syms.efi;
>>> - always strip xen.efi;
>>> - restore EFI_LDFLAGS check during rule execution;
>>> - update CHANGELOG.md;
>>> - added xen-syms.efi to .gitignore.
>>> ---
>>>   .gitignore            |  1 +
>>>   CHANGELOG.md          |  3 +++
>>>   docs/misc/efi.pandoc  |  8 +-------
>>>   xen/Kconfig.debug     |  9 ++-------
>>>   xen/Makefile          | 25 +++----------------------
>>>   xen/arch/x86/Makefile | 11 ++++++++---
>>>   6 files changed, 18 insertions(+), 39 deletions(-)
>>>
>>> diff --git a/.gitignore b/.gitignore
>>> index d83427aba8..213972b65c 100644
>>> --- a/.gitignore
>>> +++ b/.gitignore
>>> @@ -222,6 +222,7 @@ tools/flask/policy/xenpolicy-*
>>>   xen/xen
>>>   xen/suppression-list.txt
>>>   xen/xen-syms
>>> +xen/xen-syms.efi
>>>   xen/xen-syms.map
>>>   xen/xen.*
>>>
>>> diff --git a/CHANGELOG.md b/CHANGELOG.md
>>> index c9932a2af0..3bdcc3b47a 100644
>>> --- a/CHANGELOG.md
>>> +++ b/CHANGELOG.md
>>> @@ -65,6 +65,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>>>         for hypervisor mode.
>>>
>>>   ### Removed
>>> + - The install-time environment variable INSTALL_EFI_STRIP is no longer
>>> +   supported, xen.efi will is now always being stripped.
>> I'd rephrase this a little.  "... INSTALL_EFI_STRIP no longer exists.
>> xen.efi is always stripped, while the symbols remain available in
>> xen-syms.efi."
>>
> Done
>
>> Personally, I'd have put this in the Changed section rather than
>> Removed, but both can be adjusted together.
>>
> Done
>
>> This bug is on the 4.21 tracking list.  CC'ing Oleksii.
>>
> So.. should I leave the CHANGELOG.md change in 4.21 or should I move
> it to 4.22 ??

It should be in 4.21 as it is bug from 4.21 tracking list.

Thanks.

~ Oleksii

--------------C1pOg6sJzSjWiwO5G8v6cD00
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/13/25 2:43 PM, Frediano Ziglio
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAHt6W4fGe1rYh_J_97dnkYHaaSqXRy6Y96OGtsgKj5YJOzuoDA@mail.gmail.com">
      <pre wrap="" class="moz-quote-pre">On Thu, 13 Nov 2025 at 13:17, Andrew Cooper <a class="moz-txt-link-rfc2396E" href="mailto:andrew.cooper3@citrix.com">&lt;andrew.cooper3@citrix.com&gt;</a> wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
On 13/11/2025 12:49 pm, Frediano Ziglio wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">From: Frediano Ziglio <a class="moz-txt-link-rfc2396E" href="mailto:frediano.ziglio@cloud.com">&lt;frediano.ziglio@cloud.com&gt;</a>

For xen.gz file we strip all symbols and have an additional
xen-syms.efi file version with all symbols.
Make xen.efi more coherent stripping all symbols too.
xen-syms.efi can be used for debugging.

Signed-off-by: Frediano Ziglio <a class="moz-txt-link-rfc2396E" href="mailto:frediano.ziglio@cloud.com">&lt;frediano.ziglio@cloud.com&gt;</a>
---
Changes since v1:
- avoid leaving target if some command fails.

Changes since v2:
- do not convert type but retain PE format;
- use xen-syms.efi for new file name, more consistent with ELF.

Changes since v3:
- update documentation;
- do not remove xen.efi.elf;
- check endbr instruction before generating final target.

Changes since v4:
- simplify condition check;
- avoid reuse of $@.tmp file.

Changes since v5:
- avoid creation of temporary file.

Changes since v6:
- install xen-syms.efi;
- always strip xen.efi;
- restore EFI_LDFLAGS check during rule execution;
- update CHANGELOG.md;
- added xen-syms.efi to .gitignore.
---
 .gitignore            |  1 +
 CHANGELOG.md          |  3 +++
 docs/misc/efi.pandoc  |  8 +-------
 xen/Kconfig.debug     |  9 ++-------
 xen/Makefile          | 25 +++----------------------
 xen/arch/x86/Makefile | 11 ++++++++---
 6 files changed, 18 insertions(+), 39 deletions(-)

diff --git a/.gitignore b/.gitignore
index d83427aba8..213972b65c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -222,6 +222,7 @@ tools/flask/policy/xenpolicy-*
 xen/xen
 xen/suppression-list.txt
 xen/xen-syms
+xen/xen-syms.efi
 xen/xen-syms.map
 xen/xen.*

diff --git a/CHANGELOG.md b/CHANGELOG.md
index c9932a2af0..3bdcc3b47a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -65,6 +65,9 @@ The format is based on [Keep a Changelog](<a class="moz-txt-link-freetext" href="https://keepachangelog.com/en/1.0.0/">https://keepachangelog.com/en/1.0.0/</a>)
       for hypervisor mode.

 ### Removed
+ - The install-time environment variable INSTALL_EFI_STRIP is no longer
+   supported, xen.efi will is now always being stripped.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
I'd rephrase this a little.  "... INSTALL_EFI_STRIP no longer exists.
xen.efi is always stripped, while the symbols remain available in
xen-syms.efi."

</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Done

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Personally, I'd have put this in the Changed section rather than
Removed, but both can be adjusted together.

</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Done

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">This bug is on the 4.21 tracking list.  CC'ing Oleksii.

</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
So.. should I leave the CHANGELOG.md change in 4.21 or should I move
it to 4.22 ??</pre>
    </blockquote>
    <pre>It should be in 4.21 as it is bug from 4.21 tracking list.

Thanks.

~ Oleksii</pre>
  </body>
</html>

--------------C1pOg6sJzSjWiwO5G8v6cD00--


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 14:39:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 14:39:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161718.1489599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJYU9-0006FP-9a; Thu, 13 Nov 2025 14:39:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161718.1489599; Thu, 13 Nov 2025 14:39:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJYU9-0006FG-6u; Thu, 13 Nov 2025 14:39:41 +0000
Received: by outflank-mailman (input) for mailman id 1161718;
 Thu, 13 Nov 2025 14:39:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lXFW=5V=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vJYU7-0005lW-Vj
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 14:39:40 +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 953485bd-c09e-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 15:39:39 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-6419aaced59so1350039a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 06:39:39 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-6433a49806csm1569657a12.18.2025.11.13.06.39.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 06:39: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: 953485bd-c09e-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763044778; x=1763649578; 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=75qq635rO2tDImcbwfGGjZSeEPkH/FN9pwWgkjY22Qk=;
        b=Z/mrupG/7t2+c314vTZX6CAFTJyXPr/AQjH6ejdE5LigPo5kW7qdgRHBshwqEC4jmB
         Zccuk5SXK1mVzkOZAWWL6/4ccuX4i62vlLIP0Rhc/8Z+R6k7yj04+ZRtEkrBl44nMcxb
         gMbGx9oUTBmT4XfxWt25bIpyD/V5YQk5DAol57cknv2ODaHvw4Q1DZoEJ8vJV0LG0LNG
         ry76o1O+L2XdeJzZ1P6326HP8QdHUfhagTLb3FodAoqf2uAgpGW5wVLpKG3undBjsh72
         iQU8BBUJFzKrB3IDW/FTWEme/GZQi3ZzHSr1jgS3qrAZ7BtkMkz++/DzYfIqLWc3uJGn
         hxeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763044778; x=1763649578;
        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=75qq635rO2tDImcbwfGGjZSeEPkH/FN9pwWgkjY22Qk=;
        b=qcdnY5aAhZWQwKfMtJulCMmRynX/wUYJ7BGTOEEY87KR/Pwb6RYp2V39U6e7j/eoWX
         11iw0OCqUvuWCX4YaaON6Sh4V8UBH+foziufI2zARIArFdjqq5Sbs61a6X66JEgS4f2m
         neiO3oe4By4NYSvtjXXI2IB6Mz/P6UxcQ6pWlQB6Idve6Hk12+lbRlusawKtiwzucgST
         amLinwW22TApvjoerY+wupgVjXx+8HllkE9QpofvTJhJui4aleZXcggKLqfU9/OPD2fi
         MviHYmsR3fHnC4HnTiZCXHiN0PZABhlapPLOtszaNaEoJAGXx16hb8+xgWD1RorNl75e
         jiiw==
X-Forwarded-Encrypted: i=1; AJvYcCUiFzx0nQGiRdug1pRc5kgLnhRDbGJoCUqYn/SuDQuwLn0omE7TuOwlvVpH9oZT5oIYKpGqbwInl+A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyGlxa6biSKH52Cte57+8mUl00prAExVJHgGzi9erW/50akLXTk
	skB7FAt53aQnWnppUvPVx5Q2cIFvf+k/WKSH1R94HdZp53CRpsiatiYyzOlAhpSHwOs=
X-Gm-Gg: ASbGnctBsEdm28IClluseFGm1Iaw04XAF42oCJpqwx+9mYdknJNM/FBjGhQcCcrAfzo
	G+KDx1FOOQZwvSS/GQDszaXlly+Pg7iv7yv+djlCIm6+d9ez84f5gs0i1jH+CL56vz5F+ZcBPAE
	jin0+mdQVZGOzrUWwvnPflouuJeY9wTijxKq+JHXrxfExxLEYTMQl5FEZampEY6y0xUIJXiVo4p
	KqplQ6soe3qQqnWAQPfBC+Clmb+pHVlOlmnDLBrWKN7FT/Nl4Z6FuiWpfCIrZXKIyh9s3DJfsho
	GL5gbNKeF18M+/0UpjzZhY+5Hry6XtqABjOMcj58lZ8kQL2Ul40g3imEF2G3doeWl9v2sk1QFO5
	MfHRKekHmgmFj8g9B0WMwJFbi6f/944Zjz+QhvDA1HkjO3jt9LTBuVtaUEwpzvvTipLy7KhHRQp
	N6qHz9gXugkAsAvV2bnWNY12Jmv11QugunJnC5413BHuID2LlJp6QbG42AOLd/Q5PujIvepoCj/
	UijVu3enl57O+OH5kI3hsHpAA44Zo8f31C8Fbc=
X-Google-Smtp-Source: AGHT+IHr7XithIowbjXVFs+i6pAlWuw+f5D5Wb8UWeiECA+8UMk1KihYLHHjQZ2Buxfq4zvGcnccTg==
X-Received: by 2002:a05:6402:3586:b0:640:c454:da with SMTP id 4fb4d7f45d1cf-6431a3948d1mr6059106a12.5.1763044778457;
        Thu, 13 Nov 2025 06:39:38 -0800 (PST)
Message-ID: <a17e86e4-f8c1-464d-b30d-42713f793ea5@suse.com>
Date: Thu, 13 Nov 2025 15:39:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 3/5] x86: hvm: factor out compat code under ifdefs
To: Jan Beulich <jbeulich@suse.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <20251111175413.3540690-4-grygorii_strashko@epam.com>
 <af736490-5f04-4fa8-9b73-4071b72e1c33@suse.com>
 <4e4aa540-514b-458f-8036-7941a0ecf268@epam.com>
 <be6f958b-ae23-4cd0-9dd7-c096ae36d39b@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: <be6f958b-ae23-4cd0-9dd7-c096ae36d39b@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------PNT7fsjPsml06FkLDo6Nl4al"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------PNT7fsjPsml06FkLDo6Nl4al
Content-Type: multipart/mixed; boundary="------------qsy8rF5H46uYx7pH1GPqE8sK";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Message-ID: <a17e86e4-f8c1-464d-b30d-42713f793ea5@suse.com>
Subject: Re: [XEN][PATCH 3/5] x86: hvm: factor out compat code under ifdefs
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <20251111175413.3540690-4-grygorii_strashko@epam.com>
 <af736490-5f04-4fa8-9b73-4071b72e1c33@suse.com>
 <4e4aa540-514b-458f-8036-7941a0ecf268@epam.com>
 <be6f958b-ae23-4cd0-9dd7-c096ae36d39b@suse.com>
In-Reply-To: <be6f958b-ae23-4cd0-9dd7-c096ae36d39b@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=

--------------qsy8rF5H46uYx7pH1GPqE8sK
Content-Type: multipart/mixed; boundary="------------zl1e7wuIsW00AWMA29GykUon"

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

T24gMTMuMTEuMjUgMTQ6MjMsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxMy4xMS4yMDI1
IDE0OjE4LCBHcnlnb3JpaSBTdHJhc2hrbyB3cm90ZToNCj4+IE9uIDEzLjExLjI1IDE0OjMw
LCBKYW4gQmV1bGljaCB3cm90ZToNCj4+PiBPbiAxMS4xMS4yMDI1IDE4OjU0LCBHcnlnb3Jp
aSBTdHJhc2hrbyB3cm90ZToNCj4+Pj4gLS0tIGEveGVuL2FyY2gveDg2L2h2bS9oeXBlcmNh
bGwuYw0KPj4+PiArKysgYi94ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2FsbC5jDQo+Pj4+IEBA
IC0yOSwxMCArMjksMTIgQEAgbG9uZyBodm1fbWVtb3J5X29wKHVuc2lnbmVkIGxvbmcgY21k
LCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykNCj4+Pj4gICAgICAgICAgICBy
ZXR1cm4gLUVOT1NZUzsNCj4+Pj4gICAgICAgIH0NCj4+Pj4gICAgDQo+Pj4+IC0gICAgaWYg
KCAhdmNwdV9pc19oY2FsbF9jb21wYXQoY3VycmVudCkgKQ0KPj4+PiAtICAgICAgICByYyA9
IGRvX21lbW9yeV9vcChjbWQsIGFyZyk7DQo+Pj4+IC0gICAgZWxzZQ0KPj4+PiArI2lmZGVm
IENPTkZJR19DT01QQVQNCj4+Pj4gKyAgICBpZiAoIHZjcHVfaXNfaGNhbGxfY29tcGF0KGN1
cnJlbnQpICkNCj4+Pj4gICAgICAgICAgICByYyA9IGNvbXBhdF9tZW1vcnlfb3AoY21kLCBh
cmcpOw0KPj4+PiArICAgIGVsc2UNCj4+Pj4gKyNlbmRpZg0KPj4+PiArICAgICAgICByYyA9
IGRvX21lbW9yeV9vcChjbWQsIGFyZyk7DQo+Pj4NCj4+PiBXaHkgd291bGQgdGhpcyBiZSBu
ZWVkZWQgd2hlbiB2Y3B1X2lzX2hjYWxsX2NvbXBhdCgpIGFscmVhZHkgaG9ub3JzIENPTkZJ
R19DT01QQVQ/DQo+Pj4gKFNhbWUgcXVlc3Rpb24gdGhlbiBhcHBsaWVzIGVsc2V3aGVyZSwg
b2YgY291cnNlLikNCj4+DQo+PiBUaGlzIEkgZG8gbm90IGxpa2UgYnkgbXlzZWxmLCBidXQg
SSB3YXMgbm90IGFibGUgdG8gZmluZCBvdGhlciBvcHRpb25zIDooDQo+Pg0KPj4gaHlwZXJj
YWxsLWRlZnMuaCBpcyBhdXRvZ2VuZXJhdGVkIGFuZCBpdCdzIHRoZSBvbmx5IG9uZSBwbGFj
ZSB3aGVyZSBmdW5jdGlvbnMNCj4+IGRlY2xhcmF0aW9ucyBsaWtlIGRvX3hfb3AoKSBhcmUg
YXBwZWFyZWQgb3IgZGlzYXBwZWFyZWQuDQo+PiBTbyBidWlsZCBpcyBmYWlsaW5nIHdpdGhv
dXQgaWZkZWZzIGFzIGNvbXBpbGVyIGNhbid0IGZpbmQgY29tcGF0X21lbW9yeV9vcCgpDQo+
PiBkZWNsYXJhdGlvbi4NCj4gDQo+IE9oLCBJIHNlZTsgSSBoYWRuJ3QgdGhvdWdodCBvZiB0
aGF0IGFzcGVjdC4gSSB3b25kZXIgaWYgd2Ugd291bGRuJ3QgYmV0dGVyIHRha2UNCj4gY2Fy
ZSBvZiB0aGF0IGluIHRoZSBtYWNoaW5lcnkgdGhlcmUuIENjLWluZyBKw7xyZ2VuLCB3aG8g
ZGlkIGludHJvZHVjZSB0aGlzDQo+IG9yaWdpbmFsbHkuIE1heWJlIGhlIGhhcyBjb25jcmV0
ZSBhcmd1bWVudHMgYWdhaW5zdCB1cyBkb2luZyBzby4NCg0KTm8gYXJndW1lbnRzIGFnYWlu
c3QgaXQuDQoNCllvdSBwcm9iYWJseSB3aWxsIG5lZWQgYSBuZXcgUHJlZml4IGRlZmluZWQg
KGUuZy4gY29tcGF0X2Fsd2F5cykgYW5kIHNldCBpdCB2aWENCg0KI2RlZmluZSBQUkVGSVhf
Y29tcGF0X2Fsd2F5cyBjb21wYXQNCg0KdW5jb25kaXRpb25hbGx5LiBUaGVuIGl0IHNob3Vs
ZCBiZSBwb3NzaWJsZSB0byBoYXZlDQoNClByZWZpeDogY29tcGF0X2Fsd2F5cw0KbWVtb3J5
X29wKC4uLikNCg0Kb3V0c2lkZSBvZiAjaWZkZWZzIGFuZCBkcm9wIHRoZSBtZW1vcnlfb3Ao
KSBpbiB0aGUgI2lmZGVmIENPTkZJR19DT01QQVQgc2VjdGlvbi4NCg0KVGhpcyBzaG91bGQg
cmVzdWx0IGluIHRoZSBjb21wYXRfbWVtb3J5X29wKCkgcHJvdG90eXBlIHRvIGJlIGFsd2F5
cyBhdmFpbGFibGUuDQpIYXZpbmcgbm8gcmVsYXRlZCBmdW5jdGlvbiBzaG91bGQgYmUgbm8g
cHJvYmxlbSBkdWUgdG8gRENPIGluIGNhc2UgQ09ORklHX0NPTVBBVA0KaXNuJ3QgZGVmaW5l
ZC4NCg0KDQpKdWVyZ2VuDQo=
--------------zl1e7wuIsW00AWMA29GykUon
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-----

--------------zl1e7wuIsW00AWMA29GykUon--

--------------qsy8rF5H46uYx7pH1GPqE8sK--

--------------PNT7fsjPsml06FkLDo6Nl4al
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/Ey8FAmkV7akFAwAAAAAACgkQsN6d1ii/Ey8Y
0QgAh1w1FzK6S05Z78qwkepFPrUbncQClgqYe824tHHuW4kWsPmREIsn5dpfljBYasq0YRlSYojm
eGy914MXD0TzrulER55w41nrMjOq1XjO3FDDzCEh4qv11yGxILFmdVJp72DArwPrOmcMmK5hA7Yq
So2X0SndHY8p2b7U/jR3xf/CaJvS6ErubwrlIn3N2sTnR/Coa0a4TJhcwjl3t+lA//ZIKFtpdBDS
bLNRqw3s4ilW4Cn/klrnhMJk9Io2HpgBk+nFCLsvr0peQhT12HzX7/Dv/P8xo2eceWN3cGQiDiZI
qvfuDIe8VC2ZtOYppzT/fCsXuMUAk9wSwgHafy5qhw==
=Qro5
-----END PGP SIGNATURE-----

--------------PNT7fsjPsml06FkLDo6Nl4al--


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 14:46:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 14:46:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161760.1489621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJYav-0000dc-6r; Thu, 13 Nov 2025 14:46:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161760.1489621; Thu, 13 Nov 2025 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 1vJYav-0000dV-3x; Thu, 13 Nov 2025 14:46:41 +0000
Received: by outflank-mailman (input) for mailman id 1161760;
 Thu, 13 Nov 2025 14: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=lXFW=5V=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vJYat-0000dP-Ld
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 14:46:39 +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 8f14d47b-c09f-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 15:46:38 +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 33E1021277;
 Thu, 13 Nov 2025 14:46:37 +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 E59783EA61;
 Thu, 13 Nov 2025 14:46:36 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 2lpJNkzvFWmENgAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 13 Nov 2025 14:46: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: 8f14d47b-c09f-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763045197; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=ZKGbmtIgI8tnaYzc8s38dFR0a2qqPEDh8w3074CKLPo=;
	b=f+lMhS5tfpBpB6eBeJ1+z2QbKKUE53qJLn7a9nOmL8zB2DKbvTk+NzUXpckOeYikiUvsPz
	ctmgJQuTCvq47PeXkVdomJZZ1d5FOqIlSNNbXFRz2tlYNnnL3AZhqpW/zJ4V/cEUaGksUX
	xk5CbprS4iSjD0/hCKFRYNXX6W0vJ4E=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=f+lMhS5t
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763045197; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=ZKGbmtIgI8tnaYzc8s38dFR0a2qqPEDh8w3074CKLPo=;
	b=f+lMhS5tfpBpB6eBeJ1+z2QbKKUE53qJLn7a9nOmL8zB2DKbvTk+NzUXpckOeYikiUvsPz
	ctmgJQuTCvq47PeXkVdomJZZ1d5FOqIlSNNbXFRz2tlYNnnL3AZhqpW/zJ4V/cEUaGksUX
	xk5CbprS4iSjD0/hCKFRYNXX6W0vJ4E=
Message-ID: <8aa7ddeb-fb2b-42ac-bba6-272b91fc1e8f@suse.com>
Date: Thu, 13 Nov 2025 15:46:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 3/5] x86: hvm: factor out compat code under ifdefs
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <20251111175413.3540690-4-grygorii_strashko@epam.com>
 <af736490-5f04-4fa8-9b73-4071b72e1c33@suse.com>
 <4e4aa540-514b-458f-8036-7941a0ecf268@epam.com>
 <be6f958b-ae23-4cd0-9dd7-c096ae36d39b@suse.com>
 <a17e86e4-f8c1-464d-b30d-42713f793ea5@suse.com>
Content-Language: en-US
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <a17e86e4-f8c1-464d-b30d-42713f793ea5@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------X04fl5MTB2nXuQLASpJWkBBa"
X-Rspamd-Queue-Id: 33E1021277
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-6.41 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SIGNED_PGP(-2.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MIME_BASE64_TEXT(0.10)[];
	MX_GOOD(-0.01)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FROM_HAS_DN(0.00)[];
	ARC_NA(0.00)[];
	TO_DN_EQ_ADDR_SOME(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	HAS_ATTACHMENT(0.00)[];
	TO_DN_SOME(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCPT_COUNT_SEVEN(0.00)[8];
	DKIM_TRACE(0.00)[suse.com:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:dkim,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns]
X-Rspamd-Action: no action
X-Spam-Flag: NO
X-Spam-Score: -6.41
X-Spam-Level: 

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------X04fl5MTB2nXuQLASpJWkBBa
Content-Type: multipart/mixed; boundary="------------5xTa6XxCUJc7ILfxRI6xLB4G";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Message-ID: <8aa7ddeb-fb2b-42ac-bba6-272b91fc1e8f@suse.com>
Subject: Re: [XEN][PATCH 3/5] x86: hvm: factor out compat code under ifdefs
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <20251111175413.3540690-4-grygorii_strashko@epam.com>
 <af736490-5f04-4fa8-9b73-4071b72e1c33@suse.com>
 <4e4aa540-514b-458f-8036-7941a0ecf268@epam.com>
 <be6f958b-ae23-4cd0-9dd7-c096ae36d39b@suse.com>
 <a17e86e4-f8c1-464d-b30d-42713f793ea5@suse.com>
In-Reply-To: <a17e86e4-f8c1-464d-b30d-42713f793ea5@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=

--------------5xTa6XxCUJc7ILfxRI6xLB4G
Content-Type: multipart/mixed; boundary="------------6UBaHmkY5Q98mAarUzO0lMVH"

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

T24gMTMuMTEuMjUgMTU6MzksIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+IE9uIDEzLjExLjI1
IDE0OjIzLCBKYW4gQmV1bGljaCB3cm90ZToNCj4+IE9uIDEzLjExLjIwMjUgMTQ6MTgsIEdy
eWdvcmlpIFN0cmFzaGtvIHdyb3RlOg0KPj4+IE9uIDEzLjExLjI1IDE0OjMwLCBKYW4gQmV1
bGljaCB3cm90ZToNCj4+Pj4gT24gMTEuMTEuMjAyNSAxODo1NCwgR3J5Z29yaWkgU3RyYXNo
a28gd3JvdGU6DQo+Pj4+PiAtLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2FsbC5jDQo+
Pj4+PiArKysgYi94ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2FsbC5jDQo+Pj4+PiBAQCAtMjks
MTAgKzI5LDEyIEBAIGxvbmcgaHZtX21lbW9yeV9vcCh1bnNpZ25lZCBsb25nIGNtZCwgDQo+
Pj4+PiBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykNCj4+Pj4+IMKgwqDCoMKg
wqDCoMKgwqDCoMKgIHJldHVybiAtRU5PU1lTOw0KPj4+Pj4gwqDCoMKgwqDCoMKgIH0NCj4+
Pj4+IC3CoMKgwqAgaWYgKCAhdmNwdV9pc19oY2FsbF9jb21wYXQoY3VycmVudCkgKQ0KPj4+
Pj4gLcKgwqDCoMKgwqDCoMKgIHJjID0gZG9fbWVtb3J5X29wKGNtZCwgYXJnKTsNCj4+Pj4+
IC3CoMKgwqAgZWxzZQ0KPj4+Pj4gKyNpZmRlZiBDT05GSUdfQ09NUEFUDQo+Pj4+PiArwqDC
oMKgIGlmICggdmNwdV9pc19oY2FsbF9jb21wYXQoY3VycmVudCkgKQ0KPj4+Pj4gwqDCoMKg
wqDCoMKgwqDCoMKgwqAgcmMgPSBjb21wYXRfbWVtb3J5X29wKGNtZCwgYXJnKTsNCj4+Pj4+
ICvCoMKgwqAgZWxzZQ0KPj4+Pj4gKyNlbmRpZg0KPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJj
ID0gZG9fbWVtb3J5X29wKGNtZCwgYXJnKTsNCj4+Pj4NCj4+Pj4gV2h5IHdvdWxkIHRoaXMg
YmUgbmVlZGVkIHdoZW4gdmNwdV9pc19oY2FsbF9jb21wYXQoKSBhbHJlYWR5IGhvbm9ycyAN
Cj4+Pj4gQ09ORklHX0NPTVBBVD8NCj4+Pj4gKFNhbWUgcXVlc3Rpb24gdGhlbiBhcHBsaWVz
IGVsc2V3aGVyZSwgb2YgY291cnNlLikNCj4+Pg0KPj4+IFRoaXMgSSBkbyBub3QgbGlrZSBi
eSBteXNlbGYsIGJ1dCBJIHdhcyBub3QgYWJsZSB0byBmaW5kIG90aGVyIG9wdGlvbnMgOigN
Cj4+Pg0KPj4+IGh5cGVyY2FsbC1kZWZzLmggaXMgYXV0b2dlbmVyYXRlZCBhbmQgaXQncyB0
aGUgb25seSBvbmUgcGxhY2Ugd2hlcmUgZnVuY3Rpb25zDQo+Pj4gZGVjbGFyYXRpb25zIGxp
a2UgZG9feF9vcCgpIGFyZSBhcHBlYXJlZCBvciBkaXNhcHBlYXJlZC4NCj4+PiBTbyBidWls
ZCBpcyBmYWlsaW5nIHdpdGhvdXQgaWZkZWZzIGFzIGNvbXBpbGVyIGNhbid0IGZpbmQgY29t
cGF0X21lbW9yeV9vcCgpDQo+Pj4gZGVjbGFyYXRpb24uDQo+Pg0KPj4gT2gsIEkgc2VlOyBJ
IGhhZG4ndCB0aG91Z2h0IG9mIHRoYXQgYXNwZWN0LiBJIHdvbmRlciBpZiB3ZSB3b3VsZG4n
dCBiZXR0ZXIgdGFrZQ0KPj4gY2FyZSBvZiB0aGF0IGluIHRoZSBtYWNoaW5lcnkgdGhlcmUu
IENjLWluZyBKw7xyZ2VuLCB3aG8gZGlkIGludHJvZHVjZSB0aGlzDQo+PiBvcmlnaW5hbGx5
LiBNYXliZSBoZSBoYXMgY29uY3JldGUgYXJndW1lbnRzIGFnYWluc3QgdXMgZG9pbmcgc28u
DQo+IA0KPiBObyBhcmd1bWVudHMgYWdhaW5zdCBpdC4NCj4gDQo+IFlvdSBwcm9iYWJseSB3
aWxsIG5lZWQgYSBuZXcgUHJlZml4IGRlZmluZWQgKGUuZy4gY29tcGF0X2Fsd2F5cykgYW5k
IHNldCBpdCB2aWENCj4gDQo+ICNkZWZpbmUgUFJFRklYX2NvbXBhdF9hbHdheXMgY29tcGF0
DQo+IA0KPiB1bmNvbmRpdGlvbmFsbHkuIFRoZW4gaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRv
IGhhdmUNCj4gDQo+IFByZWZpeDogY29tcGF0X2Fsd2F5cw0KPiBtZW1vcnlfb3AoLi4uKQ0K
PiANCj4gb3V0c2lkZSBvZiAjaWZkZWZzIGFuZCBkcm9wIHRoZSBtZW1vcnlfb3AoKSBpbiB0
aGUgI2lmZGVmIENPTkZJR19DT01QQVQgc2VjdGlvbi4NCg0KT2gsIHRoaXMgbWlnaHQgYmUg
d3JvbmcsIGFzIHRoaXMgd2lsbCBicmVhayB0aGUgUFYzMiBtZW1vcnlfb3AoKSBoeXBlcmNh
bGwuDQoNCllvdSBuZWVkIHRvIGtlZXAgdGhlIGN1cnJlbnQgbWVtb3J5X29wKCkgaW4gdGhl
ICNpZmRlZiBDT05GSUdfQ09NUEFUIHNlY3Rpb24NCmFuZCBtb3ZlIHRoZSBjb21wYXRfYWx3
YXlzIHN0dWZmIGludG8gYW4gI2Vsc2UgcGFydCBvZiB0aGUgQ09ORklHX0NPTVBBVC4NCg0K
PiANCj4gVGhpcyBzaG91bGQgcmVzdWx0IGluIHRoZSBjb21wYXRfbWVtb3J5X29wKCkgcHJv
dG90eXBlIHRvIGJlIGFsd2F5cyBhdmFpbGFibGUuDQo+IEhhdmluZyBubyByZWxhdGVkIGZ1
bmN0aW9uIHNob3VsZCBiZSBubyBwcm9ibGVtIGR1ZSB0byBEQ08gaW4gY2FzZSBDT05GSUdf
Q09NUEFUDQo+IGlzbid0IGRlZmluZWQuDQpKdWVyZ2VuDQo=
--------------6UBaHmkY5Q98mAarUzO0lMVH
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-----

--------------6UBaHmkY5Q98mAarUzO0lMVH--

--------------5xTa6XxCUJc7ILfxRI6xLB4G--

--------------X04fl5MTB2nXuQLASpJWkBBa
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/Ey8FAmkV70wFAwAAAAAACgkQsN6d1ii/Ey9R
4wf9E5J4PN1UIU1rz2u9az7IU8k2nU96QUd4mw6Fx/ZaU3FvsVtQds73S+Wr+ReDRnLhbyYroj0p
qVApAt1Xs7XyBzPFm9u+xazGXzi9NAUnyYqYpeSdzT4uRCBB/8XkcbbpUNxOmvyLQ6HTYD/LkH9K
XFO/AZZRgNz7DtWLR6+WoEU2Gnf9Pe4c0Afle0a+rhFgoUwrccWDOsIU8MXII3lXJXlE6a4svmXD
c/8hmsjKYvdNWDahiMw9tg4tMi1JUrbQZofp1YbQKBa4g7nymKOCe/oAlCXU66PyBPV/AdAKnH3q
iAowUbdQH0ZySl+nGjyR6NspXsXSbitRi0xO6K4L5g==
=GSh9
-----END PGP SIGNATURE-----

--------------X04fl5MTB2nXuQLASpJWkBBa--


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 15:30:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 15:30:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161779.1489631 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJZGj-0007Fr-ED; Thu, 13 Nov 2025 15:29:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161779.1489631; Thu, 13 Nov 2025 15:29: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 1vJZGj-0007Fk-Ba; Thu, 13 Nov 2025 15:29:53 +0000
Received: by outflank-mailman (input) for mailman id 1161779;
 Thu, 13 Nov 2025 15:29: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=X5Bi=5V=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJZGh-0007Fe-4o
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 15:29:51 +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 96b94411-c0a5-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 16:29:49 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY1PR03MB7286.namprd03.prod.outlook.com (2603:10b6:a03:524::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Thu, 13 Nov
 2025 15:29:44 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 15:29: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: 96b94411-c0a5-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=P4qR2MAE8tWg23wKt3rMXhv7gIGwnNAxUuf6HQb2lg0U4btsc7LA9/PuX1/8vDGcWTLuqep6y0ZqMMuBjaDSYvxoF8ssFudrXF5XGAqj8UAwA/URE1kjsxkvsA4CAK5/Yum7z17PNEwa6Y7y3pclqO0eb5H5E9c6uZpXKe2Iyo2YYpM0ImN+PrDg5LdzDZQ3O+foe/AjU21M+4j/nOFBB2MifLr9g4NoLHi5oiFxSV2flgfKQ0VXMxtws9kD6fveX3zN1aMpfDrICkH/SDsM1MEvNZBl7RlOUYp8h2u1q6KM3StlW20AWA0vjs/u5KEG2X7dX0AFCWs2gCm1pLoPeQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IjSL2wYW0tdDQHPfur07g+wi4Bm1dMv+Y+7iAA1LYfc=;
 b=nJizZ0uYghuvTWqDbvjkS5Glr5EiLX4axFgDxM7OoiLeOfBouu9UklRZ2Jf+g5jPJv83hKbWhm9KXONXdiSuvqGgstEDrtvDqKym+siwkwqsCmi0F2xHW1a3EBidmdXE1hJ8fNY73SUFgjeKxW8r9mpMyrj7VdG+rpbs3VYCWuRgv1Ce1eJVbzok92iAn6nsbiIWkP+/wW20mKOtDP+eO3PnSNGg/rebm6pgjeroqtZ3j7NXXyVWSOgun8qlZqD4SgpHBXenhjl7S9n2XjG1F8xq7Bvg+bXQPH4qvWYL7SXLTk8+nxNw6MdOmbTg6W1Qkv4gt7KBV0V1Tdc6swjxZg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IjSL2wYW0tdDQHPfur07g+wi4Bm1dMv+Y+7iAA1LYfc=;
 b=KALOtLBJE2nwTT6Rfz1WoJ7anLUYffUf9YePlilOM+bczJ4ztFDhaFA3oDTrdT6uDGuCuKwThkPTglUdf4rQ62wOyVCoX80T+1eyvw6ABG6D5covUhUoykDurOof3lKvhpfrDnyRusxt/cuTK6wR0ayB7bkHcl6ZNp4K/XXzUP8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <8dc4473e-d83e-4577-ab79-663638afb1f4@citrix.com>
Date: Thu, 13 Nov 2025 15:29:41 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/3] x86: "brk" allocator
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: <bdbb2884-c2d2-415a-8891-a598d112e34c@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <bdbb2884-c2d2-415a-8891-a598d112e34c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0307.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:197::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_|BY1PR03MB7286:EE_
X-MS-Office365-Filtering-Correlation-Id: 7cdfae7a-e0d9-47ee-a05e-08de22c978ba
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?Q2xuTWRLR1JLRzJzMTc1SVkyZk5pWXlYditrNUJDQktaSmNwZ2J4bHQyK3BP?=
 =?utf-8?B?dERHVGpCa0gvd2U0NWVUR2lzeXdvdWVFeGp3UEZVS2JwS09BZGlkMnNnVUw0?=
 =?utf-8?B?OWVNeFQwRVFmOTMxaTJJeWt0RS9YNVlQYXNsQWlrcVdOZ1pmckJsbGJrREZ5?=
 =?utf-8?B?MTFTOTE0QTZsMC93M0hXL29jR3FZbHl5S3FMQzU5QmQwTWlWMVIvczh1VlA1?=
 =?utf-8?B?V2lKeTAvSUtQMWhicy9aaGt3NkxGRCt3MHlkb09CeURUOTRIMmtRbDFlb1lj?=
 =?utf-8?B?UHhjck5Mb2RFRVdJTHF6WnN0NkNnUWR2c0VUbEVlQ0tBcGtvNUJMajRneGl0?=
 =?utf-8?B?ejR3cXIrV1pyOHYrVTZVUTRXckxsbThhWU55dTd4V1d4WUxJaDA4VHZTVjRQ?=
 =?utf-8?B?S1BOM3JwQmk3SDZlRHVnalV5SG8wNlFCc0Vhd2NOR1VzZEpUMm5zenRJTk1v?=
 =?utf-8?B?RUY1RnM0SXBKY1Q5clluU1BSUzZFdnpBTzR5d2I3YUhKclpUdEhLRHN5RlE1?=
 =?utf-8?B?SEd2SzEvdnFxSnZtSGN2Y2xmVkxPN09Rb1NzcEFwWHpqRmFhb3VhaE5wTWx5?=
 =?utf-8?B?WkV5a1V0YkFPcDdUSGRKeVU2eENFdS93NHF3VUVmYzRUMVNBanZVdzlEY0J2?=
 =?utf-8?B?ZVhadWpVUXBBY3kvZWJsUXp3YStOQkp3NEpFU2trYVUzcjJCUXdickdmSTFi?=
 =?utf-8?B?bVFXRVhvdEs4aVNycm95NGFONDl2MjFEbnVmcWNqeHlzNFlsblZLWitidjRx?=
 =?utf-8?B?SHNEeExVcm4xTzhSZzdWaFhvazVNQ05yZ25qcUFaaCtiTUpCVUJFZWxPVnE3?=
 =?utf-8?B?azV0OWdYeXpONUVGeHNZMytiVUxFSFkwLzBiWnNEeXgvcFl0VEZjTHBzNlB4?=
 =?utf-8?B?dDkrdHhJcnhtLzY0bTNucUY3NWhjTDM0VG9MVTd6ZGZwSTZpQ3AxU09ja1d6?=
 =?utf-8?B?eGkvVk9ML2drQ1BWeEZVU1B0ekJ5SjdCVUR2VTVoL2JkS2VSRGVxZ0JVYTdr?=
 =?utf-8?B?Z3dwT0RBcDdsQWVTdXBGaGtUbUlRVlh5TjJKUWFpaFBYanROcW9Jejl1a3Zk?=
 =?utf-8?B?dHh5UlI3N1o3V1dnZWRvYjhYR1A3d0xCV1ZxZjc3TkRMRGNNV1FpVDQ4c1NS?=
 =?utf-8?B?bVNyVmV3R0VSZ0podGpaR2drbHRRcmdxUFpyS0lsYUQrRHZnYXBRYm82VjY5?=
 =?utf-8?B?cWg5bnZ1VCtONTUreE40b0UrVWI2ZjVaY1ZadHNKN2tHcHlnTDFya29DaWVr?=
 =?utf-8?B?RXArdzl6eEIrTzVsTzdvaUx6b3ZVQmhLNVhLay9aZXBhWThWUkVrajRaSExN?=
 =?utf-8?B?Vm1zNFdVZUdkRStBSmtrWVU2b21SUWhGcWtGdlJmWVdHeUxscktIRCtYTEZx?=
 =?utf-8?B?MUhTSWNLbkNWa29WWTR4ZCtUSlkxZEFNZHpuMHEzK1pBbU9QRXYvNlluNDJz?=
 =?utf-8?B?ZE1CRmZJODJ6UFRSN2lablNZNkwzNlRTWWQvalRWK0RoUVZjTzBiZ0Jkcmlh?=
 =?utf-8?B?SDNVRjRCZ1pJeVZvd3B0SzBkNVphYjBPZ3dxUFBSbU1kMksrblFiY25oWmZw?=
 =?utf-8?B?TTgrVEtzMjNrSDgzL29Cdkd1UmJIR0ZKekN1c24vbVduUFBwVHlQb2VkNGp0?=
 =?utf-8?B?bnNaNERkV2FyOE8zcjc0VXlNR2I3ai9scFFkcU51WmdKcFpGMzlFR0RGeVdn?=
 =?utf-8?B?TmhreVp0L2g3ZnhXb1RNZGxVOXJyYStTZnFqMEVsTmNVUDN3RDBvWWxmNldK?=
 =?utf-8?B?bXNxVkpIWDZUSXVlZ1RmOXZML3lBUUczU1FqTCtVeXNpdVdqano0Umpyc1I3?=
 =?utf-8?B?bjMxUjkyUWtmSmVoN2pCYUEzZGQrY29SWFlHWmp0QkZDYXNQVFJWR244Zkk5?=
 =?utf-8?B?cnNBNStRMTU2YlkzL1FQMnZsZVVRZUZxc2NZbDBCcElIdzhhZ2RVV1N1TjhU?=
 =?utf-8?Q?48nIdrvFteLF2KKlRXT55dD0KUrBBQKD?=
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?RnJFY09KalM4YmoyYzdwV2RGYTBtQ0EvbDJtaDhrODJJVmlDSy9YZHB6cGJR?=
 =?utf-8?B?VnFGYThZT1NUT1JMODhHM3FWaUFsU2pjNURTYTc4WVNscFNQa2JiUlpxYXNE?=
 =?utf-8?B?citWTEJrMEYyeEpvUC81bmVOcjVYZmVJdk5QWlhEbWxxYVJORlJYMVdXWnBC?=
 =?utf-8?B?aHBxNVYra1RLMVVPMXRpTXB6Z29rQTRJdjFxWnNXWUtROXJZeWpGMTZYTExr?=
 =?utf-8?B?VHVVNUVNbnBCckxNd0xMNXB4akEza1FuWE9lU0RoTjZwN2tqa3JWaUFYOEJi?=
 =?utf-8?B?eUQ4dEZuc3NQMEJlNURlTUNXY3lRWmFDM2kxYmpIczZoNnY3WHRCSkhoWVB6?=
 =?utf-8?B?ZFRXWm9BeFRqeVlOMXNtNkJhVWJ3bHpoMVI2TDBUMzljRzBhSWNyKzdZbkNo?=
 =?utf-8?B?dTU5Ly9WZHN2VVVSZGVRcDhlSmtaTFV3V1l4Wlp0L3psa24vNmdYRHFIcjZk?=
 =?utf-8?B?ck9FL2I3eTlYTmZic1lMN0JISnpDZkluRjJMRmVVM1VqUVVhSWtWV3Q1Yllw?=
 =?utf-8?B?c0pRSlE0MDE5VkxhTXFVVEZmaTJBNWd6ejBFTkw0eEJiS3JSS0xBT1A5OTJW?=
 =?utf-8?B?MUtCVGZlQ2hGcWpxVUQ3TFlSSzV1SXIrTTR5OFRiMXAxUEl1NDFldWJZZ2dE?=
 =?utf-8?B?aEZmL2dkVW41UHh6RlRtOEswajBRUldmTVdzZ2lRdHl4bTAxaDQzVlhFWnBU?=
 =?utf-8?B?WnYwV2JTTmtNT0FDYUg1L2g4ejQ1a0NQZWJiOVhSaSt1TXg4MWYyaWhjOU1S?=
 =?utf-8?B?ZXlab0FnWVdZTW5rUEJNVEFDK1QyUWo3azgxMG5RL2tDbzE0NUpDMWVPUWZP?=
 =?utf-8?B?UDZsV1pRMFZSYkREV3VCSmZoeHlTSXJiZGp6bVBLOUlnYVR3TzRFMG9UODhY?=
 =?utf-8?B?ejhzaTZUenUrS0s4MFRKYUtmVTEwT05BK3E3ZmdKWGEveGtZNVV3ekJRK2Zr?=
 =?utf-8?B?UHFWcUZGOCtRVkJIQTN6R1p0SDdKSmp0ckxZVldwd3hFZVU2VzdZRWtMMXNC?=
 =?utf-8?B?cGtDU1NxcXA5RUg0SFhwdG56T05QSUc0S1lLUGlOWW5ackEvckMyRlNDNTF4?=
 =?utf-8?B?bmFQUkRla3pBSFF5ZUFhbWIzSHBRbG51dG9JVzN5Vml6djVIdEpGcjBpRmFM?=
 =?utf-8?B?OHV1MFdUUXp5T1dKZ3NCZ1FvMmRzWFVaVU5heTdZRkZMRk9FMXh5aGZ5eTlG?=
 =?utf-8?B?aWpsaGpkQzJwbG82M1ZYN0IvZXUvdlBIb0hGZDhFQmM0dEU5RGEyL1dweitS?=
 =?utf-8?B?R2VOOEpPSEo3K1l6WWp5ZEwxL2hIVjBDRkU3QjZraG01LzV3cE8rTXZLWjJ5?=
 =?utf-8?B?NjBsdm9RY3d3TVhxa09uU2JVd0V6TWNWT0hTcTdoYlgwaHB0aVdlRzdYZ2RX?=
 =?utf-8?B?NzE2c3hPRmtJYnpSRGlrN1lvUlI2Q2NiMEdnblJ6ZkxwTU90WlVHMnlSUDk2?=
 =?utf-8?B?a1pJdFhsYXU5a1RyaWZpS3JGY05lcEVMVjJUL0g2N0tqWFh3VUd2UVdVOWZ5?=
 =?utf-8?B?cEpsVUxLQTQ3aXhKdVpEWVFYYW5BWWlFOVI1QXNDRDlCMmNOL1BXYzF4ck95?=
 =?utf-8?B?cmZkbkU5NVN2dmh5TkZ4UVV2Y0lMemM2eHB1UVJJMm1DV2tzcVRjOGF2dDNS?=
 =?utf-8?B?S2RYYlNGZ29zaEFVcCtlaFNlMDVRc25xWTdnMTh6cWthQVlkdEtlTjdFcU1M?=
 =?utf-8?B?aWtpT1JCdHMycGFGOXNSQ0NiMkpBaXRDN1JQbzBkRHlUV3BVejdzNXRvaUdN?=
 =?utf-8?B?bGJlLzhnc1RydzJ4Zi8zenVzSlZyMkhkUGRpMGRjMlhXZHNLUnUvYWRJV3ZQ?=
 =?utf-8?B?YnBPRHJ2cFplcFZTSnJzL2RVWHVFSzdYR2hHR2M0U1hxbWlRemlmWXJPQmla?=
 =?utf-8?B?bTk3aUNnWU15bnVXWjdTSEpaOW5JYUdob1FzNXg2UUFyQUpROVM5S0tLZjlU?=
 =?utf-8?B?ekJPRjdRL0lWTlY4RGJ1WHhSRFg2anlLc21GaWtJZVNEQ3Mwb1Ewdjd6Z0dQ?=
 =?utf-8?B?U09jMFpYTndjaEFhSmdzSlRLaHR5bjNxRHJhSTh2QmhVaW9UOEhMUVM4YVdx?=
 =?utf-8?B?WWhFLzJ4aHY4cG9ZMHhmMFEzTWtXZGRqelc0S0pHQUdKNTF3WVRIVzZGYzQv?=
 =?utf-8?B?dXd6ZXdKUDR4QVZNeUV1ajcxZEVTamVnV01jRElxbXB2ZiszY2JROUN2YVRN?=
 =?utf-8?B?aHc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7cdfae7a-e0d9-47ee-a05e-08de22c978ba
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 15:29:44.3597
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +EeJxsWtvT8wggsaEBKQSCQgmMINBAYE5dliGUq/tDFSMOVXF96NXss5ZWAdLCrOZPsgMWvVObBxphXO7wWrslMF61vomP5k3ZABIJpFpxI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB7286

On 13/11/2025 11:06 am, Jan Beulich wrote:
> Derive for our purposes something similar to what Linux has been having for
> a long while.
>
> 1: x86: introduce "brk" allocator
> 2: x86/EFI: replace ebmalloc()
> 3: xhci-dbc: use brk_alloc()
>
> To reduce padding holes, .bss.page_aligned and per-CPU data may want moving
> immediately ahead of __brk_start[]. Albeit then the tail of per-CPU data will
> all be padding space; sadly the TSS wants/needs page-aligning for XPTI
> purposes.

I've not done this yet, but I was intending to make the TSSes be
dynamically allocated, so they (along with the IDTs) can be omitted
entirely under FRED.

The VT-x tr limit bug/misfeature complicates this somewhat, hence why
I've left this out of the FRED basic support, but it can be addressed by
pointing HOST_TR_BASE at a singleton TSS.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 15:32:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 15:32:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161791.1489642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJZJX-0000bB-RY; Thu, 13 Nov 2025 15:32:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161791.1489642; Thu, 13 Nov 2025 15:32:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJZJX-0000b4-Ob; Thu, 13 Nov 2025 15:32:47 +0000
Received: by outflank-mailman (input) for mailman id 1161791;
 Thu, 13 Nov 2025 15:32:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xbc0=5V=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJZJW-0000ay-Id
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 15:32:46 +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 fdf5a6c9-c0a5-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 16:32:41 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AS8PR03MB9842.eurprd03.prod.outlook.com (2603:10a6:20b:619::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Thu, 13 Nov
 2025 15:32:39 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 15:32: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: fdf5a6c9-c0a5-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sbsnjHfvJfxqCVCSwyL5zc/zGeP6jVa/2NzDKv99Q9umjJNgJU3rlzyh2inNhV8pMIfD+oPR+A6mJet3FFtQ6CQvUp/OSBrfz0B+8k/ljo9ylIdfM7IMG3F+3bo616hVvdV76+ziOHW0G3rY5le0D7CGUQI/knVSjRHl1YyX7ZIDslICpcKa+xURHmNQQIfvp3QX++oFtXwccXzUoWAcdmdSvDuvHJ2ADkDGfRZkZoLIMzNOJ1qG68AsvhZLw45zO+Lihydrgb2tVOw42U3nq3GFxq7ns76Q+JcmeVyfF45pwDoJ5GaMLXWfM2PQKVYGeXLn1hMp4X1EU04Zitg5gg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KRT7Dn82zGHKLSXGS73GmyFra5EIgEKMZyOWtitM7Yc=;
 b=rr3f1fQh104B70YdcVjsBEubVp4ikXs3M/KiOe+N1Cs/ILD1SrrwOdU5mWt5WMf/zKoGTEgRE+15LchLfIYsdjfeXkU7uIX0qloUAkdu9IxrKlH98hGM0kbTR/VJ8KtXYpkGHRSAgad6pMUz8+SdFsbb+npj9fUVX1NsswtQ1JGUK71CZNapAmIDIWvssA0qU5YU7GG0lj/e4XIYOOetjVWUMqJu8EC/n+95wXu+Vi55LHrxwzgClrRPrdpc/IP8UDnRr7g2rM9vZF9iWuIYPt2kIBIgCremYgIQK0ROEUvvJkP6SvuQdt9w2q8NSRdO7/n4s1DsoNoerhWQ3kn8mg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KRT7Dn82zGHKLSXGS73GmyFra5EIgEKMZyOWtitM7Yc=;
 b=WoB/Zmq+992Bo8TbYKjPbO81pWYEwXTT5dnRiTi22SZNgDBMkSAj1lEE7fYg24kyLnRoiHM0Nf+VtFaFWbk9LfAgGTeiO5ZMbshvZL4JBGwAVKe93+cOAPjge2nlpKSDz+IZRGNTzT6iM1gGpiaS1Jm7mpjwH3alYpkSEBKhtQy2pn3+rd21AJhWNDbKjHqKXdVzDOUK+vAJVm5VDOAzfo4YYntxB8kTId6iqqfVPptywjshDNqVSJX/nIdLtCPvFZGDcpNknr/0rsAhX7FLLcC0I6T+A39+EyGPpnpENsPhZryQXeZSCcrhl30oqA8vGSg0BrMMvgRdg19FxIkHLg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <a36eafd3-35cf-448e-8c46-df063f50b082@epam.com>
Date: Thu, 13 Nov 2025 17:32:34 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 3/5] x86: hvm: factor out compat code under ifdefs
To: Juergen Gross <jgross@suse.com>, Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <20251111175413.3540690-4-grygorii_strashko@epam.com>
 <af736490-5f04-4fa8-9b73-4071b72e1c33@suse.com>
 <4e4aa540-514b-458f-8036-7941a0ecf268@epam.com>
 <be6f958b-ae23-4cd0-9dd7-c096ae36d39b@suse.com>
 <a17e86e4-f8c1-464d-b30d-42713f793ea5@suse.com>
 <8aa7ddeb-fb2b-42ac-bba6-272b91fc1e8f@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <8aa7ddeb-fb2b-42ac-bba6-272b91fc1e8f@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0024.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::15) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|AS8PR03MB9842:EE_
X-MS-Office365-Filtering-Correlation-Id: 3c13c841-72f8-4791-5316-08de22c9e09f
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?NEpCUlBMaytrQzlocDZ4U0t3cTNKNEFLUjYrMnlJSW9hYXZLeVc3aTNSaHJQ?=
 =?utf-8?B?TnZZV3ZKeGlpbDViQXVWb1RCZmpYaHN2bTdTYUh5YmdnOTdIVEhmMVhJWTJm?=
 =?utf-8?B?bE8wb1pWdTB1Z3hVQXd6OWs1cTBRYkE4Y25FdS9oMDczbFNVUWNvUW1hNHBN?=
 =?utf-8?B?bjFGbnA5cDBiV2xxREhVVURPNmxMYTgvNmdwOUJxVm9ySjhTaHl2MXhETDBB?=
 =?utf-8?B?RnhoWDUrYjBqOEU5UitKa1hxbldqZnByT1drbXNLM1BQYXRBWms3Znd4RlRM?=
 =?utf-8?B?aG5zUUV3Ynozb1lldXdkWmEyd3o1ZEZUOTI1eHVLYVRhVUY4THJnbThQblYv?=
 =?utf-8?B?T3kzaUU3elNEZEgzRXRwdHhMTDBWZFFhNnR2NlFVN1Fyd21VWXgwQnJtMU5K?=
 =?utf-8?B?Q1hnaEdhNys3eno3cUFvQXIzSnI0WTlRWlhnM3BoVzJQRmowNnVoL2tIanhM?=
 =?utf-8?B?RXZVckpYZWtZVGZDUzU1YkFGSTZCaktzM1UySEozYi8rcE9ERGpPZFpzRGFY?=
 =?utf-8?B?Sk9KdmYvV29yR2VtbENrUmFsK3BSY3BvdDJ5ZUttS1FmY3hMZlJxL3NGcVF1?=
 =?utf-8?B?MXdHZGo0N3VMUjZ5TVZnbFRZUUZlNXNGQXd3UVlwWXVXd1Q4dndVMVAwdEdo?=
 =?utf-8?B?Y0NFTjVGUmF4RFlXRkhKOXVLL0I1K2NiL3dEdlNpb2JyMmFVVHg2b2Evd1BX?=
 =?utf-8?B?WG1UbmdKMnRldFovTkF4aURuZFIxR3dFWk9yU25QSFh4eUFyN0hRM21jUzcz?=
 =?utf-8?B?aEYyTlcvQ0pNOW5iYStvQkxiQkR1TUJYQ1hPV2JlNzgwOEhOWnN5MWhsRWhM?=
 =?utf-8?B?TTdhUVhXSk5ldGpCUEt4ZFUybmY4TTVOQ2JEV2ZWZkJkSks3YmU5NzVZZE1x?=
 =?utf-8?B?SEpXT1RJRmxUbnlrZ0dwaEhiQXdTWWxzdDAvYncwMXZUVTlYU0hwQ1FPay95?=
 =?utf-8?B?YUtqOW9SWDczOEpKL3ZzSUpQTHI3ZDRIV29XcDBpaDBVL0ZKVnh0bUFiS0ZR?=
 =?utf-8?B?QW52K0szb0ZjZjV3VFMxblM5dVNsakdEQWJyRkU1M3kydm0vby9Nek1yUW1J?=
 =?utf-8?B?MVEvemZnSEFmL1NBZWxUSUYzYUttcXBoVVNOc25wdks4SkhuSVM2NmxnbHJ2?=
 =?utf-8?B?SW9zd1RWOFZsQ0RqM1JEVXhaZnduMVVudDJYSjcxVjhQM3ZDOW1XUTdHZTJJ?=
 =?utf-8?B?RnpMa3FyZ01nOVY1UU1CS1ZQK3JlbEFDOGJqaitaOVdXYys5ZTJsMW42aXEy?=
 =?utf-8?B?aFQ2WTN1aGtSclFIeFd0SVVacUtBcEgvbnRwL2Fic1pDUGluRkpNOEM1ZjM2?=
 =?utf-8?B?c0EzRXhuNlcwdmYzNzl3SnpXcnlDTjYyQk1OU0VxTVNNZ3hPekdaUW1KWWZR?=
 =?utf-8?B?ZFczUnVPTkJsdjFCaDhRVUM5TmVMcUVFT0RzUmZQOEJCK3gwV0RReHlRTGtS?=
 =?utf-8?B?eUJSZG9JcFlSVGpMQlhsa1Y3VzgzamVSNWpJVUdnTng2L2p2bGNrVmE5WmE0?=
 =?utf-8?B?RG5Na1Vndk0rK3hJVTBFN3JwSUZpNkltNjdHd1ZXaTl4M0ozWkRSeFNLWVBO?=
 =?utf-8?B?UlVCTzlpenRMZnNwbzBsVHBsZEQ4TzN5Y0dnTCtPWElycW8zbFJaVm1MZXQ1?=
 =?utf-8?B?QkVmL2VoODVpeGJZWm5WYzRQVmlWL0VwU3BWeDhCV3lEL0h0UzdhTHRIdHFm?=
 =?utf-8?B?T3FCWUNZK1lxaGlvemtpNForemFMMk5kb3llZFBod2FSaGRHR3ZIQUxwdFh5?=
 =?utf-8?B?RWxrV2JiTDVsdmVVVzg4MDFqcEU5VUVmMW83ZUFnVFBwT0hJZG0zQ2FpWkNw?=
 =?utf-8?B?ZjVwUnVlbDhtNVFiTWxTWHh6UUVZVFVta2Fmb0ZrSTE4UzJ0WHorS2EzME15?=
 =?utf-8?B?a096QVk3OEFJMlNFdGZPQ2tmRGhNUEd2MTZUa1JsVUJ1cFU0SUtycDFNK3Rk?=
 =?utf-8?Q?Gp6n+kR9o9fKG/PsZ9q1pQT5hO86+by/?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cTY2b25SYWJHdVJQdmg3TCtWQXB5YXJSY3VBRTYzQnhDdDlud0llZFZIM3Nq?=
 =?utf-8?B?T2xHdlJITGhaOWFhR1VKY1J5djJQM1VPUGJMNGhXWjFGYUI2U3g4aElrUStR?=
 =?utf-8?B?aXZHV3N0WnQvdWx1SkxhNWg0VGVmYjJaMEVWVFpMdWprbW1vejg2TmRKMHNO?=
 =?utf-8?B?WC9sVFhaZWZ6MXUzenlMbGEzamREb3c0czMzYzlwVHkyTTVUQ2hjK1ZVdFgw?=
 =?utf-8?B?Tnl0cWw0MFhzMTdYVjJYUnNXKzdXM0tOODVtS3A3QnV0dVVvUUZwdTAzOFRr?=
 =?utf-8?B?K2VwNGtpTElGVzZIVUhVVGhzSDRaMDF2QnNLb3V5Tm9acGxiQTlxVlNOeWU2?=
 =?utf-8?B?NVFLVHBnWTBjUHp3OUxNeFduVE1zby9LZDkweDJQYUpnYVlYS1JWK0p5VCs3?=
 =?utf-8?B?YTdqZkI4Tms5ZndZbTQyclBBcnJ0NVJYUzlsamE3ajdrWllOTDAxblBzS0RP?=
 =?utf-8?B?ZVJZUGVDSGhsY0lzWDljaDhDckt5SHAwdzZBNHZZTE9RWHZibFpndWpSeUQr?=
 =?utf-8?B?QWNDOVErM3dJUkdlVWFCOTBXajkwdnROYy9mM1hJOG12ZUUrQ0NYRktjM0tn?=
 =?utf-8?B?ZW9GNTEwRm1yLzc3VC9kZVgyNGZZNUtDVU5EZCtzSjFEOFNzU2E2dWY0bGRH?=
 =?utf-8?B?WVR2bU1XbmdCRU9TN3VLRGRWNkJ1WFZZSUE3NnpndkJLY21LQk4vL1BtNUNr?=
 =?utf-8?B?WEhNamY3cktCYXVMNXZpTjFzTjJ2Zk9vVGU0dDNvNXhvZGZJOENnYlJsL3dY?=
 =?utf-8?B?b05JQUkzREpmNkNQVW5IR01BSWsrTUNEdU9reGIxL0ltSTRQRGRPek02cm1s?=
 =?utf-8?B?d2tRMEVEbGluWHJVRGxaTkdOOFRpWXdGMVkxZy8xcmM2RmNjOGtkbjF4cnMz?=
 =?utf-8?B?czh0SFNtMUkvYklvRk9XRjhQSVg5NVZOYUdhdk5WUm5XbDRKYVF6Wjcvc05C?=
 =?utf-8?B?Q2dpdFpLamtSZlJTWmEwb21yQ3R3d3NScXMwdm4xWHlEZmhycHZ0TzlLS0hL?=
 =?utf-8?B?OWdCa3E1clg4YjMzTm04RElMMmNLcC9VWWF3ZC9YNE83UGdTY1V2MHB6TEx3?=
 =?utf-8?B?bTZVL01JdGh1U2dld0VFRVpVVlFQSk5HZ2RaK0pPdkx1RThKa2FjaXpKZTVB?=
 =?utf-8?B?VExwVjRlTW9UNm1iUGU5TzhNWEQrMFF0MXV5dkFoektic29xcG4rYk96aXlZ?=
 =?utf-8?B?OXRmYXdVbi9FbHh2Q2dSNkg3K0JoRTV3UHJ5SHZFYXR5ZHE5NVNlRDVJQTh0?=
 =?utf-8?B?bDVrb1FTTTd3QlQ0cFBrNEhQRGZYMlQ1SEp5QlhEQmpRVkpPT2hYOW1pVnR3?=
 =?utf-8?B?Q0VlTDZDeTBnWEpGVzQyRFhGSlA2MG5ESmhwRWFwcmliZWcyeU93YnRvTWJD?=
 =?utf-8?B?Q2FJRGIySXVqbDVUdDgwdHJwU3IzZ2dsQUhaNmVQMjFPcWxtb2FaOWRGb05v?=
 =?utf-8?B?TXBBOXpSRElyUkhHMStKc0pJSTU0T3QwNlVQUnM2YVp3TEFGVGhvM0V0WXdr?=
 =?utf-8?B?eHZpTElJYk5hdjdhdFBqdVQ1V2JZQUg4VmdsbmwrcXdMdE02eVJtS1VoYTl4?=
 =?utf-8?B?ajRhYzlvTjBkUmxIMkEya05kL3R1QTIrd0J1OGVlcGdxTjhnUXdMMnUzT1FF?=
 =?utf-8?B?VXZKVXZSbFNrQzQ3NmRiaURSZUcrTmp2SXVjQ1k0Z3FGTk9YeG1tRGNpeGUy?=
 =?utf-8?B?ZUhCMzM4K1pNYjFNQVZVZjFBSUI1WmNvYnpKUW9uKzVnRk4zUkRRa1FrMEVQ?=
 =?utf-8?B?bkNRRWJ3REx4QTdKTTBnTkZjSURPLzBRa1pFZWRQS251YkFsWGtLQ1NKdXpE?=
 =?utf-8?B?eTdUQTQwcWh5WS9EODNKQmp2MXBXUmJBTngxRmlzZUV1SG9ZWWhiZXQ2OFhM?=
 =?utf-8?B?L2s5Sm83NE5JdEJBWTdIcURaaTZVeVI4bDVFVGFSZXBSTmp0Z3FTaThYTjRt?=
 =?utf-8?B?N2pLeFkxMVhScy9McTdzZVJiSExCSXpacTFsK0RrR3Y4T2h6c0JjMjh2UldF?=
 =?utf-8?B?dm9MQ1ZqN3J6bU9Gck96UFF4WW0vM1RVU0RjZTV0NXBsUHkrZUp6TFN0K0NN?=
 =?utf-8?B?aXBzbkVmSFo4cjBpVFd6bTg4bjhwcEdMNEo0Sk9xbDg5Rjh5Yzk1MW1mWEto?=
 =?utf-8?B?QmhvdFZEVlBicEZRMDRBOVhraUVvMXZBbHFaR3BkdW5pT2RDTVBKeENFeEpV?=
 =?utf-8?B?NWc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3c13c841-72f8-4791-5316-08de22c9e09f
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 15:32:38.7596
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: LAZ82gy8wlA7EpjxjAPOGEY5+CV41LHQw4krdUau8lDAtsfG2+lLnJQGSasjzNyB2qNus9QC+Sgau9Ka/Tjq2DNuAeKJRr6X8qU3EsUhraY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9842

Hi JÃ¼rgen,

On 13.11.25 16:46, Juergen Gross wrote:
> On 13.11.25 15:39, JÃ¼rgen GroÃŸ wrote:
>> On 13.11.25 14:23, Jan Beulich wrote:
>>> On 13.11.2025 14:18, Grygorii Strashko wrote:
>>>> On 13.11.25 14:30, Jan Beulich wrote:
>>>>> On 11.11.2025 18:54, Grygorii Strashko wrote:
>>>>>> --- a/xen/arch/x86/hvm/hypercall.c
>>>>>> +++ b/xen/arch/x86/hvm/hypercall.c
>>>>>> @@ -29,10 +29,12 @@ long hvm_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>>>>> Â Â Â Â Â Â Â Â Â Â  return -ENOSYS;
>>>>>> Â Â Â Â Â Â  }
>>>>>> -Â Â Â  if ( !vcpu_is_hcall_compat(current) )
>>>>>> -Â Â Â Â Â Â Â  rc = do_memory_op(cmd, arg);
>>>>>> -Â Â Â  else
>>>>>> +#ifdef CONFIG_COMPAT
>>>>>> +Â Â Â  if ( vcpu_is_hcall_compat(current) )
>>>>>> Â Â Â Â Â Â Â Â Â Â  rc = compat_memory_op(cmd, arg);
>>>>>> +Â Â Â  else
>>>>>> +#endif
>>>>>> +Â Â Â Â Â Â Â  rc = do_memory_op(cmd, arg);
>>>>>
>>>>> Why would this be needed when vcpu_is_hcall_compat() already honors CONFIG_COMPAT?
>>>>> (Same question then applies elsewhere, of course.)
>>>>
>>>> This I do not like by myself, but I was not able to find other options :(
>>>>
>>>> hypercall-defs.h is autogenerated and it's the only one place where functions
>>>> declarations like do_x_op() are appeared or disappeared.
>>>> So build is failing without ifdefs as compiler can't find compat_memory_op()
>>>> declaration.
>>>
>>> Oh, I see; I hadn't thought of that aspect. I wonder if we wouldn't better take
>>> care of that in the machinery there. Cc-ing JÃ¼rgen, who did introduce this
>>> originally. Maybe he has concrete arguments against us doing so.
>>
>> No arguments against it.
>>
>> You probably will need a new Prefix defined (e.g. compat_always) and set it via
>>
>> #define PREFIX_compat_always compat
>>
>> unconditionally. Then it should be possible to have
>>
>> Prefix: compat_always
>> memory_op(...)
>>
>> outside of #ifdefs and drop the memory_op() in the #ifdef CONFIG_COMPAT section.
> 
> Oh, this might be wrong, as this will break the PV32 memory_op() hypercall.
> 
> You need to keep the current memory_op() in the #ifdef CONFIG_COMPAT section
> and move the compat_always stuff into an #else part of the CONFIG_COMPAT.
> 
>>
>> This should result in the compat_memory_op() prototype to be always available.
>> Having no related function should be no problem due to DCO in case CONFIG_COMPAT
>> isn't defined.

Smth like this, right?

diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index 338d7afe3048..e85943320bd2 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -80,6 +80,8 @@ rettype: compat int
  #define PREFIX_compat
  #endif
  
+#define PREFIX_compat_always compat
+
  #ifdef CONFIG_ARM
  #define PREFIX_dep dep
  #define PREFIX_do_arm do_arm
@@ -156,6 +158,9 @@ platform_op(compat_platform_op_t *u_xenpf_op)
  #ifdef CONFIG_KEXEC
  kexec_op(unsigned int op, void *uarg)
  #endif
+#else
+prefix: PREFIX_compat_always
+memory_op(unsigned int cmd, void *arg)
  #endif /* CONFIG_COMPAT */


-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 15:44:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 15:44:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161803.1489652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJZUS-0002IP-RT; Thu, 13 Nov 2025 15:44:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161803.1489652; Thu, 13 Nov 2025 15: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 1vJZUS-0002II-Nl; Thu, 13 Nov 2025 15:44:04 +0000
Received: by outflank-mailman (input) for mailman id 1161803;
 Thu, 13 Nov 2025 15:44: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=lXFW=5V=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vJZUR-0002IC-D4
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 15:44:03 +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 938a3e5d-c0a7-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 16:44:01 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-640c6577120so1753122a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 07:44:01 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fed9e9fsm185910466b.69.2025.11.13.07.44.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 07: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: 938a3e5d-c0a7-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763048641; x=1763653441; 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=JMzYaMR6CxzxODDnEeUbTts5HV+UmAXYvbn7+BMj/QY=;
        b=BBqjlYVdrAckKQ85iQrqJedfYPuw7AdnPXyxWBvHDoDyW3BOyQ0B0v8eIiZp3mVDHh
         RBVRclSIiyi4G4wkZWLrkyRMoyiC0y5GIcatHtPXUi4dJX8epJsqii7KXzfod5rNVyZG
         dkSfgcFiCrxIfmgk78d35jCEilpIFjC0FG5JXWwxGX7LR/ky53N+CflHYDUrX/+MQPAn
         /GGIBu0UqrEoXwDAcOr6FSx/IgnPMEDbmRPzNevBtJwY1AI/7T0ggb805PVPAPEQNTVz
         Kk+WcB1ur1kJokUR8CQ3s1YqoHdkgb/yUv/iBdMflsg5GEN1MiBh9i7+5sHfVJk8Yk3O
         WvBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763048641; x=1763653441;
        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=JMzYaMR6CxzxODDnEeUbTts5HV+UmAXYvbn7+BMj/QY=;
        b=WT+qRBxNNNbpnxJfiU4M1h4SLTMATBQW6BJb2dLalYtjmKZ1miirK+eD9aJcIGVDuw
         rUV0x5G6UjL7WveDjXguVrFFejbq9vFOxoTLOus8gUWKX2Kppeq2B+f+nDwoqqSxx93Z
         hGRKGm/HajktyzL3NA0w9JUw0MPtMH7KhYs58+eU4Z70QlPiRs8qZidSKyfoYq2+hQ/Y
         6NFB8s+88vThI0mlIy8LMF0Wn1S03aWffHeImx+3shJUaXedetLvIfk2/lwEKRpldCDW
         zVpXpd/Ms80DyIsDCPDMdiWs+Qczv5WCdheJn6V0AWviMqSZqUBoJJdoQyLe+t3bQejT
         BAeQ==
X-Forwarded-Encrypted: i=1; AJvYcCWs2PWfGZNE7xJoZgxERS5uHPNQfsGPUMgElEMWPnR2TTUK9X9c26xvjBtyXiAaGTd3m9DbPimBpTQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw3iHK4VeKQqrhMXvBeGloZ+0DCrvtYjrVUX8JKDf/2+I/5JtwH
	HornpvDExpYrpi9DbkTlwhgYF/oQbiZ6FxvMKJY3+4ySRcwylY/mMHLIzZ+nI4kR0R4=
X-Gm-Gg: ASbGncuSb6bAZ+OW4o7aavYRIHJVTmCGF1+rLxN2CL45yy8MoHoh8xPWDodhu5jOt0w
	CGfEroEMtJLt+x3KsxmlQuaR8AyZCH35Mfc8b0GDnqZjrIssjDjT1N5CH8vfH3hR11eST26Ou4B
	1VAZVLbAF+V0QO+uSeXOMA1wJumOYln2BSPAFl9EJ7KfJtXTCJpvJKhMkDcd9SJkDAxEC+IJREg
	ETwT15RHwzbWy9tAcH/6pGZYmHsB9OhbjnOj5MZ3FPztzqWIOS7evhuhfSFYKKzt1m74Hwxcv+l
	6wDrv+7DQsOTYOrpW931Eh6GuJ/Zqk5wNGRCMspkRA08TmgdCpPsiPCABp1Z9O9wGC+Xfpr4xUH
	ShDZthFOND783ZglND16dDi5UWSpzSrsTz/mIB7ka/7JB2f0zan+iI/FEUXNpCkja9fexI1XuY0
	Ly2rzTnFYHGrIbtDOPtENU0tAFWArxLz+b3PnH/Uxdcl1iR3B1lFjCsGCOMbOyzdZl++dLb4h/U
	KV8ae8x2yc6AQioRwrDHTBnMzza
X-Google-Smtp-Source: AGHT+IFYyjn9qBP3zaSpIjEDWdI4QMzd7JDmZqeIW3bn5PsOkI4i5P1OBkBIFMbSsDQO1qFprS+tWA==
X-Received: by 2002:a17:906:f591:b0:b70:be84:5186 with SMTP id a640c23a62f3a-b7331aec174mr686413366b.44.1763048640976;
        Thu, 13 Nov 2025 07:44:00 -0800 (PST)
Message-ID: <8a57904f-17f2-46f9-9b08-e2287f8fd44c@suse.com>
Date: Thu, 13 Nov 2025 16:43:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 3/5] x86: hvm: factor out compat code under ifdefs
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <20251111175413.3540690-4-grygorii_strashko@epam.com>
 <af736490-5f04-4fa8-9b73-4071b72e1c33@suse.com>
 <4e4aa540-514b-458f-8036-7941a0ecf268@epam.com>
 <be6f958b-ae23-4cd0-9dd7-c096ae36d39b@suse.com>
 <a17e86e4-f8c1-464d-b30d-42713f793ea5@suse.com>
 <8aa7ddeb-fb2b-42ac-bba6-272b91fc1e8f@suse.com>
 <a36eafd3-35cf-448e-8c46-df063f50b082@epam.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <a36eafd3-35cf-448e-8c46-df063f50b082@epam.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------tiZfe5OpSQ1etTKdtNsUg00X"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------tiZfe5OpSQ1etTKdtNsUg00X
Content-Type: multipart/mixed; boundary="------------Mi7lixFpgDR6stwLEs04cEBw";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Message-ID: <8a57904f-17f2-46f9-9b08-e2287f8fd44c@suse.com>
Subject: Re: [XEN][PATCH 3/5] x86: hvm: factor out compat code under ifdefs
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <20251111175413.3540690-4-grygorii_strashko@epam.com>
 <af736490-5f04-4fa8-9b73-4071b72e1c33@suse.com>
 <4e4aa540-514b-458f-8036-7941a0ecf268@epam.com>
 <be6f958b-ae23-4cd0-9dd7-c096ae36d39b@suse.com>
 <a17e86e4-f8c1-464d-b30d-42713f793ea5@suse.com>
 <8aa7ddeb-fb2b-42ac-bba6-272b91fc1e8f@suse.com>
 <a36eafd3-35cf-448e-8c46-df063f50b082@epam.com>
In-Reply-To: <a36eafd3-35cf-448e-8c46-df063f50b082@epam.com>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------Mi7lixFpgDR6stwLEs04cEBw
Content-Type: multipart/mixed; boundary="------------sQiFnd29yurz7Yf01zWH0XSn"

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

T24gMTMuMTEuMjUgMTY6MzIsIEdyeWdvcmlpIFN0cmFzaGtvIHdyb3RlOg0KPiBIaSBKw7xy
Z2VuLA0KPiANCj4gT24gMTMuMTEuMjUgMTY6NDYsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+
PiBPbiAxMy4xMS4yNSAxNTozOSwgSsO8cmdlbiBHcm/DnyB3cm90ZToNCj4+PiBPbiAxMy4x
MS4yNSAxNDoyMywgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4+IE9uIDEzLjExLjIwMjUgMTQ6
MTgsIEdyeWdvcmlpIFN0cmFzaGtvIHdyb3RlOg0KPj4+Pj4gT24gMTMuMTEuMjUgMTQ6MzAs
IEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+Pj4+IE9uIDExLjExLjIwMjUgMTg6NTQsIEdyeWdv
cmlpIFN0cmFzaGtvIHdyb3RlOg0KPj4+Pj4+PiAtLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h5
cGVyY2FsbC5jDQo+Pj4+Pj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHlwZXJjYWxsLmMN
Cj4+Pj4+Pj4gQEAgLTI5LDEwICsyOSwxMiBAQCBsb25nIGh2bV9tZW1vcnlfb3AodW5zaWdu
ZWQgbG9uZyBjbWQsIA0KPj4+Pj4+PiBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFy
ZykNCj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FTk9TWVM7DQo+Pj4+
Pj4+IMKgwqDCoMKgwqDCoCB9DQo+Pj4+Pj4+IC3CoMKgwqAgaWYgKCAhdmNwdV9pc19oY2Fs
bF9jb21wYXQoY3VycmVudCkgKQ0KPj4+Pj4+PiAtwqDCoMKgwqDCoMKgwqAgcmMgPSBkb19t
ZW1vcnlfb3AoY21kLCBhcmcpOw0KPj4+Pj4+PiAtwqDCoMKgIGVsc2UNCj4+Pj4+Pj4gKyNp
ZmRlZiBDT05GSUdfQ09NUEFUDQo+Pj4+Pj4+ICvCoMKgwqAgaWYgKCB2Y3B1X2lzX2hjYWxs
X2NvbXBhdChjdXJyZW50KSApDQo+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJjID0g
Y29tcGF0X21lbW9yeV9vcChjbWQsIGFyZyk7DQo+Pj4+Pj4+ICvCoMKgwqAgZWxzZQ0KPj4+
Pj4+PiArI2VuZGlmDQo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCByYyA9IGRvX21lbW9yeV9v
cChjbWQsIGFyZyk7DQo+Pj4+Pj4NCj4+Pj4+PiBXaHkgd291bGQgdGhpcyBiZSBuZWVkZWQg
d2hlbiB2Y3B1X2lzX2hjYWxsX2NvbXBhdCgpIGFscmVhZHkgaG9ub3JzIA0KPj4+Pj4+IENP
TkZJR19DT01QQVQ/DQo+Pj4+Pj4gKFNhbWUgcXVlc3Rpb24gdGhlbiBhcHBsaWVzIGVsc2V3
aGVyZSwgb2YgY291cnNlLikNCj4+Pj4+DQo+Pj4+PiBUaGlzIEkgZG8gbm90IGxpa2UgYnkg
bXlzZWxmLCBidXQgSSB3YXMgbm90IGFibGUgdG8gZmluZCBvdGhlciBvcHRpb25zIDooDQo+
Pj4+Pg0KPj4+Pj4gaHlwZXJjYWxsLWRlZnMuaCBpcyBhdXRvZ2VuZXJhdGVkIGFuZCBpdCdz
IHRoZSBvbmx5IG9uZSBwbGFjZSB3aGVyZSBmdW5jdGlvbnMNCj4+Pj4+IGRlY2xhcmF0aW9u
cyBsaWtlIGRvX3hfb3AoKSBhcmUgYXBwZWFyZWQgb3IgZGlzYXBwZWFyZWQuDQo+Pj4+PiBT
byBidWlsZCBpcyBmYWlsaW5nIHdpdGhvdXQgaWZkZWZzIGFzIGNvbXBpbGVyIGNhbid0IGZp
bmQgY29tcGF0X21lbW9yeV9vcCgpDQo+Pj4+PiBkZWNsYXJhdGlvbi4NCj4+Pj4NCj4+Pj4g
T2gsIEkgc2VlOyBJIGhhZG4ndCB0aG91Z2h0IG9mIHRoYXQgYXNwZWN0LiBJIHdvbmRlciBp
ZiB3ZSB3b3VsZG4ndCBiZXR0ZXIgdGFrZQ0KPj4+PiBjYXJlIG9mIHRoYXQgaW4gdGhlIG1h
Y2hpbmVyeSB0aGVyZS4gQ2MtaW5nIErDvHJnZW4sIHdobyBkaWQgaW50cm9kdWNlIHRoaXMN
Cj4+Pj4gb3JpZ2luYWxseS4gTWF5YmUgaGUgaGFzIGNvbmNyZXRlIGFyZ3VtZW50cyBhZ2Fp
bnN0IHVzIGRvaW5nIHNvLg0KPj4+DQo+Pj4gTm8gYXJndW1lbnRzIGFnYWluc3QgaXQuDQo+
Pj4NCj4+PiBZb3UgcHJvYmFibHkgd2lsbCBuZWVkIGEgbmV3IFByZWZpeCBkZWZpbmVkIChl
LmcuIGNvbXBhdF9hbHdheXMpIGFuZCBzZXQgaXQgdmlhDQo+Pj4NCj4+PiAjZGVmaW5lIFBS
RUZJWF9jb21wYXRfYWx3YXlzIGNvbXBhdA0KPj4+DQo+Pj4gdW5jb25kaXRpb25hbGx5LiBU
aGVuIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBoYXZlDQo+Pj4NCj4+PiBQcmVmaXg6IGNv
bXBhdF9hbHdheXMNCj4+PiBtZW1vcnlfb3AoLi4uKQ0KPj4+DQo+Pj4gb3V0c2lkZSBvZiAj
aWZkZWZzIGFuZCBkcm9wIHRoZSBtZW1vcnlfb3AoKSBpbiB0aGUgI2lmZGVmIENPTkZJR19D
T01QQVQgc2VjdGlvbi4NCj4+DQo+PiBPaCwgdGhpcyBtaWdodCBiZSB3cm9uZywgYXMgdGhp
cyB3aWxsIGJyZWFrIHRoZSBQVjMyIG1lbW9yeV9vcCgpIGh5cGVyY2FsbC4NCj4+DQo+PiBZ
b3UgbmVlZCB0byBrZWVwIHRoZSBjdXJyZW50IG1lbW9yeV9vcCgpIGluIHRoZSAjaWZkZWYg
Q09ORklHX0NPTVBBVCBzZWN0aW9uDQo+PiBhbmQgbW92ZSB0aGUgY29tcGF0X2Fsd2F5cyBz
dHVmZiBpbnRvIGFuICNlbHNlIHBhcnQgb2YgdGhlIENPTkZJR19DT01QQVQuDQo+Pg0KPj4+
DQo+Pj4gVGhpcyBzaG91bGQgcmVzdWx0IGluIHRoZSBjb21wYXRfbWVtb3J5X29wKCkgcHJv
dG90eXBlIHRvIGJlIGFsd2F5cyBhdmFpbGFibGUuDQo+Pj4gSGF2aW5nIG5vIHJlbGF0ZWQg
ZnVuY3Rpb24gc2hvdWxkIGJlIG5vIHByb2JsZW0gZHVlIHRvIERDTyBpbiBjYXNlIENPTkZJ
R19DT01QQVQNCj4+PiBpc24ndCBkZWZpbmVkLg0KPiANCj4gU210aCBsaWtlIHRoaXMsIHJp
Z2h0Pw0KPiANCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2h5cGVyY2FsbC1kZWZzLmMg
Yi94ZW4vaW5jbHVkZS9oeXBlcmNhbGwtZGVmcy5jDQo+IGluZGV4IDMzOGQ3YWZlMzA0OC4u
ZTg1OTQzMzIwYmQyIDEwMDY0NA0KPiAtLS0gYS94ZW4vaW5jbHVkZS9oeXBlcmNhbGwtZGVm
cy5jDQo+ICsrKyBiL3hlbi9pbmNsdWRlL2h5cGVyY2FsbC1kZWZzLmMNCj4gQEAgLTgwLDYg
KzgwLDggQEAgcmV0dHlwZTogY29tcGF0IGludA0KPiAgwqAjZGVmaW5lIFBSRUZJWF9jb21w
YXQNCj4gIMKgI2VuZGlmDQo+IA0KPiArI2RlZmluZSBQUkVGSVhfY29tcGF0X2Fsd2F5cyBj
b21wYXQNCj4gKw0KPiAgwqAjaWZkZWYgQ09ORklHX0FSTQ0KPiAgwqAjZGVmaW5lIFBSRUZJ
WF9kZXAgZGVwDQo+ICDCoCNkZWZpbmUgUFJFRklYX2RvX2FybSBkb19hcm0NCj4gQEAgLTE1
Niw2ICsxNTgsOSBAQCBwbGF0Zm9ybV9vcChjb21wYXRfcGxhdGZvcm1fb3BfdCAqdV94ZW5w
Zl9vcCkNCj4gIMKgI2lmZGVmIENPTkZJR19LRVhFQw0KPiAgwqBrZXhlY19vcCh1bnNpZ25l
ZCBpbnQgb3AsIHZvaWQgKnVhcmcpDQo+ICDCoCNlbmRpZg0KPiArI2Vsc2UNCj4gK3ByZWZp
eDogUFJFRklYX2NvbXBhdF9hbHdheXMNCg0KVGhpcyBzaG91bGQgYmU6DQoNCitwcmVmaXg6
IGNvbXBhdF9hbHdheXMNCg0KPiArbWVtb3J5X29wKHVuc2lnbmVkIGludCBjbWQsIHZvaWQg
KmFyZykNCj4gIMKgI2VuZGlmIC8qIENPTkZJR19DT01QQVQgKi8NCg0KDQpKdWVyZ2VuDQo=

--------------sQiFnd29yurz7Yf01zWH0XSn
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-----

--------------sQiFnd29yurz7Yf01zWH0XSn--

--------------Mi7lixFpgDR6stwLEs04cEBw--

--------------tiZfe5OpSQ1etTKdtNsUg00X
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/Ey8FAmkV/MAFAwAAAAAACgkQsN6d1ii/Ey8c
Pwf+OD+/oM3J/6pY4t8ypNYjLefqjmOkSOx/y4TH5BCgwtKQOEQ3GTG47RaKIguKaBacFNMZXINm
XyfCnEIkSTnDG6GIYcnyyNH6ebjLzyQdPshBQXqGeIEIu7AWxHjsr+yuaWaBI/wgAimhPQiUieJk
xkDR6ap6cC89q+SV1DqiqlPdGpCZsBmu1rvddy25BW2hvqTXAmZ1EgvM5TwkaxPwrBs5mJ/jyl9D
cbA3D+Su9ZNxlSTTaf1sSsgnjCnv/mtEqrPPuIKCRg0tJxhDjYkwmoa3R368Dr+paVYtc5nCZMZY
JKOB8olGqVnlmRcFDCwZ8zlr55SI5HqvxkOwmH/ZTw==
=7Hcf
-----END PGP SIGNATURE-----

--------------tiZfe5OpSQ1etTKdtNsUg00X--


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 15:44:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 15:44:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161804.1489662 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJZUY-0002XZ-6S; Thu, 13 Nov 2025 15:44:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161804.1489662; Thu, 13 Nov 2025 15:44:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJZUY-0002XQ-3D; Thu, 13 Nov 2025 15:44:10 +0000
Received: by outflank-mailman (input) for mailman id 1161804;
 Thu, 13 Nov 2025 15:44:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yybm=5V=citrix.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1vJZUW-0002IC-4p
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 15:44:08 +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 96896883-c0a7-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 16:44:07 +0100 (CET)
Received: from IA3PR03MB8408.namprd03.prod.outlook.com (2603:10b6:208:546::19)
 by PH8PR03MB7305.namprd03.prod.outlook.com (2603:10b6:510:251::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Thu, 13 Nov
 2025 15:44:02 +0000
Received: from IA3PR03MB8408.namprd03.prod.outlook.com
 ([fe80::8d7b:218a:6264:2c39]) by IA3PR03MB8408.namprd03.prod.outlook.com
 ([fe80::8d7b:218a:6264:2c39%5]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 15:44: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: 96896883-c0a7-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wqw7BwEcJlG+tKzuDcZCcvQ/vAeOqF64weshL4UbQOiQP5skZqx+FW8jpwm9CXY9fANgmzn5cHy3oqq9dIDC0sDFeBuDucfpcZvd4tvT3gRH7wHZWbO/pNavNPrTa8a7OMXcsZQBHLZbGZfMf1IxNJqLv4lQJi9F3dqK7MTEXYSDfnekuukqo1CGFXOUI6uxr/hHG5A3ez2PgBVI9gu+UaoJ5u2+BQpHjxPlRn+wa9KQH89gfEl15X3e8jrPP6VxUCaOMyvJB83gwBqJybphUMOjG96LtcAppMTvU8fquuw78dkEVHF6FhIBd6JrHmqRvJlC1Oo5x3DBUhcMgovOlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NNHKH8ocm99RO+7pL30uBKNKBB9icjcrkfVRuEb0iDk=;
 b=YQHr/2FLG4I0E6cvjH3dRYf4yGqGDr4/YkCSoLNTRxj4+J7vMb+fd/ZtTZ5p4g6z22E9qGbpDrKdUmM3qJbRpEiQVnHkPJnEzqu1csGma5oTysNAzYJVkROa6OEEjT3N3kBlFCqzl40aXiehXVKpIS3CRb3xMMBQJOOp24zmQJFCKC7qrUFpDgdYDZFu/8bfM2uxw9uoAX0ksjWjKIE+LLOUh1Wn6cFAnpsA4MeOddyji0XqPRvEQamklIRxfN2BThKr2LkrGznEErW9dQzbQYT29VdNJ1YC3B44Owzz2sONTogqWOwGzEUhoB9b9U4cOBR4PMp2UH9bNXDLRPC4Og==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NNHKH8ocm99RO+7pL30uBKNKBB9icjcrkfVRuEb0iDk=;
 b=pj6aMqtu/Z2Etasuk5SVeiFKtA1AiwOAKp54IkZloC51oxDY19kSJxvdH4mc/u4dfxq0kFvlm2C03t6WS/siQ8so4Ao4zJ9TDSFQhZOUZZTGwTQE6COFgtdJEjuzhd9kZgPVxGcY35+wIEnccB1Q+GPBaU0ny90Zy4ggRXLqZ10=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Frediano Ziglio <frediano.ziglio@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Frediano Ziglio <freddy77@gmail.com>,
	Demi Marie Obenour <demiobenour@gmail.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v8] xen: Strip xen.efi by default
Date: Thu, 13 Nov 2025 15:43:58 +0000
Message-ID: <20251113154358.28704-1-frediano.ziglio@citrix.com>
X-Mailer: git-send-email 2.51.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0244.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a7::15) To IA3PR03MB8408.namprd03.prod.outlook.com
 (2603:10b6:208:546::19)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA3PR03MB8408:EE_|PH8PR03MB7305:EE_
X-MS-Office365-Filtering-Correlation-Id: 36463af5-d01e-47ab-ee7a-08de22cb7874
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?qiqA5rRkmZD9zC2+34PJNOBwcFyFxABuq/PDDkAZl9vpecP+uRkve+npzM03?=
 =?us-ascii?Q?6XV7x0QKUdyPZUDFIGfnOvM7pu6SVAPS0PZux/nCHn+MvGbenAK9h0yQH5VQ?=
 =?us-ascii?Q?7Vwtkbg/2+vACP4HRaMDBP2dZ06cEqHRvIS8BmG5RyDan+ifQwfz0Hehj5g3?=
 =?us-ascii?Q?bcRNoOpIONXCUVKHTGDHjXuau/7uBakXv31BwMBFwefSBT8cKJvgT3UtIpNh?=
 =?us-ascii?Q?iW5FdC7mqzFW17SvS/12k58kbW6jfWC4Pf6a7G7+gFfhDlZDSO1W4PV3VkRv?=
 =?us-ascii?Q?DFDea8z3/Qdz2CFH7F/ObtGeuyJNcLPc5In77xyCuxhIUuFZ/5qkKtRu22vz?=
 =?us-ascii?Q?GhwRnupzOxd4NaAiAMabf9HRfME8M1AmupcbncxqP03w8iDrAufh9rcRZ4fo?=
 =?us-ascii?Q?j5pSveu6s47poYy1V+Eac2ZxR6M1NnDaOQ9FKtDrWkrORXRqt9ryedWFC2q1?=
 =?us-ascii?Q?TKcfzztXKD8JAL4gMS9ldTg2oONSdknbWgnVSQQdN0aq6i2bN/+PqJFcqvrM?=
 =?us-ascii?Q?3oKy4NYDOH13p5jdAHpUDkAT6BBi+HDdvzp+E1zpLJrEgrez6NeOuRxKGHAb?=
 =?us-ascii?Q?3rgPNonkXahdw1mfY8nC+h83WMlFqCIVp0/ZtuGbixY0oZHR2nDjdzq0/b+g?=
 =?us-ascii?Q?vHUkPpqzKDOCshI2pAk+Ahsaq95alFlX78eV99UvoJRB1Wat/YzaE3CIMZvs?=
 =?us-ascii?Q?KInqYWgdqHcXwD2mGGYXakTge9iIhIRHQDkHWUbXEfzGiwUVPmOnlrOz8HEg?=
 =?us-ascii?Q?KItWrouoToYNGFXCAN8g4WkBwkFW6HAfoBzLvYyyRRfm9Oe1e3Pp93oOTRDW?=
 =?us-ascii?Q?ULOMwXCYcHjhCwQXFjZq/9BW3k7KFdhYl+bzO8L4nw2hIBHsBwIvCZu3jpEE?=
 =?us-ascii?Q?t8iLwVAHj8f8MvOq6Cxf1rkZNPdxYCNazuagfzLyxQFQzaogD24Yk9cXUhB4?=
 =?us-ascii?Q?nDnnAHXfgrIloDbed/3gTh+uUuF1bQUH1WwMmuwckssGhmN3cOZ60zma70B/?=
 =?us-ascii?Q?HNGzPPjhiuos0v8i+KaxsEgPvH+gs4YjqkzrLywWAX0EyXQqkSrRgI0x1P03?=
 =?us-ascii?Q?Qm08wwBRoHk21bOX8IECjB8AbKwjwh50SOdz7iGZZvuEiRfahC+Apiw/atU4?=
 =?us-ascii?Q?TD62DZCdxIYcHzh3WsgHIFBDSfuf8xqigUhp75J8JQgWuDsNIaFO67DhxkB7?=
 =?us-ascii?Q?MS5FQJ7iSTcwl4ESsQChEb+nJkXcsetuAjLHY1ahA/AbkmKv0gWDEoG4+mGV?=
 =?us-ascii?Q?Y2O1HFS518jihL/i5EV/2Ulm22RWrjDDde+706wwHrjI/RYUpSzW0En/iJ6M?=
 =?us-ascii?Q?un1KF4+SiAd6SALbXjzhQLwvStSXH+8UPXeih0fy07pjPQIf3smyDl2Y7Hms?=
 =?us-ascii?Q?CS/z+o77afq3k7ge5ZF0djZ+ZwGFQz+nItUZskaNePHF7Cn57A=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA3PR03MB8408.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?VwfS5D0mK2+QnSU3HV8w8M5/EPn/6VZznokqgf/PNEsNsETvWMaNieClkQnZ?=
 =?us-ascii?Q?WKCPQDfJoE5RGIjBPni+P77hMDhuPayrx05Y/bjFl350HEv6UCDv9rpLozhI?=
 =?us-ascii?Q?4+U9UD6N25nqvPgMtlkybeqZQBSKI52IsIs64m0JNt/74nAIn+ft/oETmrlL?=
 =?us-ascii?Q?Hjvqonm0q9cZVVh86CQJyFouXb/Dtx7qQJKQE7QE1yMNBCgr2hz7ZKzI3IxX?=
 =?us-ascii?Q?MJ0Wc9+FTrQxbATSNhJ9OCI284R4HJyHcp/avPJd/TMXzSpBJ7dn07MfRvHZ?=
 =?us-ascii?Q?OEJsE1+iCXxp0x4H12ExqE6n5cOvR6i/yvOtAJZlJ0tsV22vchp77bz+BfEP?=
 =?us-ascii?Q?VXrP3MOwDX8DqNxcU+BySEa74PKKp7qdJvn/1eG8E69mZsl10Tl7+HcO79SF?=
 =?us-ascii?Q?22QBM1Pm09Kg6hlruz+ytFuIqDC+8ZzJXabuno4wL/GK9mFd7CiPCIKqhZv1?=
 =?us-ascii?Q?fKU8lVcKwO4PRekfnXAltVzac/nmcBpxFDnwwZJX8Wd806sOByZNieUGyX7U?=
 =?us-ascii?Q?zpuJp6Bf9YWEO9tch+no+R5cx/6PGdoNAGmc5tRfJqajRrTKNr0vDN22DKo9?=
 =?us-ascii?Q?o967aZbyv8XG8QbTtivjQvd2IAlluwItdBbYdWVq5gfIO2YBsr+SAcDdzPSU?=
 =?us-ascii?Q?Nf7GhzFvkzkL25IEfBaPWI0abHuXeLmuKDFQl99h8sgsfiYBYC00JLsFQF4s?=
 =?us-ascii?Q?uHNltie8NRQGIz6AhQ1hCWG/8WVbTy8+WNqjRoN0/PgpvoeTezd7vwapVOdC?=
 =?us-ascii?Q?AcgCzqna1BcmLLQQeesfIfnEjrId+i929Hl7hC+1simfKS/vrbgJBOwjj4SA?=
 =?us-ascii?Q?xkV0pgD+hUzlIovdDODxrxJp0LmYQ3T1HvsFrj5NWNN3VhVB5elVoot2lYgs?=
 =?us-ascii?Q?0S/2x/QrTW9sF2Pwe8lKA4LWofLyaNG435qxwLK99g3haYYsXdcV2pFGkuJW?=
 =?us-ascii?Q?IC++vXozv/bj2VQYC/FyY61JUzzAZLHXKrxpCi2RQpEFsAdFtsfL0uhEKcbR?=
 =?us-ascii?Q?mfU0tPu/00P60UYXeaihF63O7U+GsT51xC504G7H/t6xs/8LHy3lh6THXkXx?=
 =?us-ascii?Q?x9m46MScsU05I5B4c4IYPYAZ+m3r2y04IQFPlvDzJO+4ST8ixehav88S4Rl8?=
 =?us-ascii?Q?V4VGw9ZJRhaNB+gh0pnrKio0vXpWuOoQPhE7Obw90vMoVoBJ4TEDMS+lTA+O?=
 =?us-ascii?Q?11w1d8xcXcaEPbXVfVkN3kIIPOchxNG6M7VI2XDZa7aaXPFHlU+/nLD1HmvE?=
 =?us-ascii?Q?PY8gcMzrFipfW3KrO7n/NUijk9OEMb9vZgn/U0/FNmSB+mUvrxbRkvxIkVim?=
 =?us-ascii?Q?qainNaNlgCBhpUiiu6gmURQfHlGHImoNodnVUbFwlbeQencHooOote9emnxM?=
 =?us-ascii?Q?pELY/vawpmEC4wuIoJXO3dnxJ+8wvmggSb+0ddg6CMfByE5QlZJAa6M4RPa3?=
 =?us-ascii?Q?3IZUG73NzIXSqhnDgP/qnOEVcPYa4apFh6VmkC/p6i2OLjOK0EOo6kzb0sBL?=
 =?us-ascii?Q?QqiIk14kCWq3RqOJLb/UEvyTVrhP++1jdQ5d81/cMw/yM/JTzRLNOR3bKjAo?=
 =?us-ascii?Q?MhJT2RvJIkLlpGXWvyulVykCw40g7ZjxckHl4mVe0X4vgvPeyNCpjGO9zyj5?=
 =?us-ascii?Q?aQ=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 36463af5-d01e-47ab-ee7a-08de22cb7874
X-MS-Exchange-CrossTenant-AuthSource: IA3PR03MB8408.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 15:44:02.8381
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: nn6pAe1UPwn8IoeTh13r7UhSZf+kl10lF9X6e/rYKNaCxgzpVnlkIWiP77MOZcl/ZTAyemdcuOo7tHZ4xt1Anmw3U9/dRTpu9NRPx/WkUmw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR03MB7305

From: Frediano Ziglio <frediano.ziglio@cloud.com>

For xen.gz file we strip all symbols and have an additional
xen-syms.efi file version with all symbols.
Make xen.efi more coherent stripping all symbols too.
xen-syms.efi can be used for debugging.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
Changes since v1:
- avoid leaving target if some command fails.

Changes since v2:
- do not convert type but retain PE format;
- use xen-syms.efi for new file name, more consistent with ELF.

Changes since v3:
- update documentation;
- do not remove xen.efi.elf;
- check endbr instruction before generating final target.

Changes since v4:
- simplify condition check;
- avoid reuse of $@.tmp file.

Changes since v5:
- avoid creation of temporary file.

Changes since v6:
- install xen-syms.efi;
- always strip xen.efi;
- restore EFI_LDFLAGS check during rule execution;
- update CHANGELOG.md;
- added xen-syms.efi to .gitignore.

Changes since v7:
- move and improve CHANGELOG.md changes.
---
 .gitignore            |  1 +
 CHANGELOG.md          |  3 +++
 docs/misc/efi.pandoc  |  8 +-------
 xen/Kconfig.debug     |  9 ++-------
 xen/Makefile          | 25 +++----------------------
 xen/arch/x86/Makefile | 11 ++++++++---
 6 files changed, 18 insertions(+), 39 deletions(-)

diff --git a/.gitignore b/.gitignore
index d83427aba8..213972b65c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -222,6 +222,7 @@ tools/flask/policy/xenpolicy-*
 xen/xen
 xen/suppression-list.txt
 xen/xen-syms
+xen/xen-syms.efi
 xen/xen-syms.map
 xen/xen.*
 
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c9932a2af0..bc16e316e7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -34,6 +34,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
      BAR for HVM guests, to improve performance of guests using it to map the
      grant table or foreign memory.
    - Allow configuring the number of altp2m tables per domain via vm.cfg.
+   - The install-time environment variable INSTALL_EFI_STRIP no longer exists.
+     xen.efi is always stripped, while the symbols remain available in
+     xen-syms.efi.
 
 ### Added
  - Introduce new PDX compression algorithm to cope with Intel Sierra Forest and
diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
index 11c1ac3346..c66b18a66b 100644
--- a/docs/misc/efi.pandoc
+++ b/docs/misc/efi.pandoc
@@ -20,13 +20,7 @@ Xen to load the configuration file even if multiboot modules are found.
 Once built, `make install-xen` will place the resulting binary directly into
 the EFI boot partition, provided `EFI_VENDOR` is set in the environment (and
 `EFI_MOUNTPOINT` is overridden as needed, should the default of `/boot/efi` not
-match your system). When built with debug info, the binary can be quite large.
-Setting `INSTALL_EFI_STRIP=1` in the environment will cause it to be stripped
-of debug info in the process of installing. `INSTALL_EFI_STRIP` can also be set
-to any combination of options suitable to pass to `strip`, in case the default
-ones don't do. The xen.efi binary will also be installed in `/usr/lib64/efi/`,
-unless `EFI_DIR` is set in the environment to override this default. This
-binary will not be stripped in the process.
+match your system).
 
 The binary itself will require a configuration file (names with the `.efi`
 extension of the binary's name replaced by `.cfg`, and - until an existing
diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index d900d926c5..1a8e0c6ec3 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -147,12 +147,7 @@ config DEBUG_INFO
 	  Say Y here if you want to build Xen with debug information. This
 	  information is needed e.g. for doing crash dump analysis of the
 	  hypervisor via the "crash" tool.
-	  Saying Y will increase the size of the xen-syms and xen.efi
-	  binaries. In case the space on the EFI boot partition is rather
-	  limited, you may want to install a stripped variant of xen.efi in
-	  the EFI boot partition (look for "INSTALL_EFI_STRIP" in
-	  docs/misc/efi.pandoc for more information - when not using
-	  "make install-xen" for installing xen.efi, stripping needs to be
-	  done outside the Xen build environment).
+	  Saying Y will increase the size of the xen-syms, xen-syms.efi and
+	  xen.efi.elf binaries.
 
 endmenu
diff --git a/xen/Makefile b/xen/Makefile
index fc9244420e..5ed029fed1 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -493,22 +493,6 @@ endif
 .PHONY: _build
 _build: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 
-# Strip
-#
-# INSTALL_EFI_STRIP, if defined, will cause xen.efi to be stripped before it
-# is installed. If INSTALL_EFI_STRIP is '1', then the default option(s) below
-# will be used. Otherwise, INSTALL_EFI_STRIP value will be used as the
-# option(s) to the strip command.
-ifdef INSTALL_EFI_STRIP
-
-ifeq ($(INSTALL_EFI_STRIP),1)
-efi-strip-opt := --strip-debug --keep-file-symbols
-else
-efi-strip-opt := $(INSTALL_EFI_STRIP)
-endif
-
-endif
-
 .PHONY: _install
 _install: D=$(DESTDIR)
 _install: T=$(notdir $(TARGET))
@@ -526,18 +510,15 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 	if [ -r $(TARGET).efi -a -n '$(EFI_DIR)' ]; then \
 		[ -d $(D)$(EFI_DIR) ] || $(INSTALL_DIR) $(D)$(EFI_DIR); \
 		$(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_DIR)/$(T)-$(XEN_FULLVERSION).efi; \
-		for x in map elf; do \
-			if [ -e $(TARGET).efi.$$x ]; then \
-				$(INSTALL_DATA) $(TARGET).efi.$$x $(D)$(DEBUG_DIR)/$(T)-$(XEN_FULLVERSION).efi.$$x; \
+		for x in .efi.map .efi.elf -syms.efi; do \
+			if [ -e $(TARGET)$$x ]; then \
+				$(INSTALL_DATA) $(TARGET)$$x $(D)$(DEBUG_DIR)/$(T)-$(XEN_FULLVERSION)$$x; \
 			fi; \
 		done; \
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION).efi; \
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi; \
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T).efi; \
 		if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; then \
-			$(if $(efi-strip-opt), \
-			     $(STRIP) $(efi-strip-opt) -p -o $(TARGET).efi.stripped $(TARGET).efi && \
-			     $(INSTALL_DATA) $(TARGET).efi.stripped $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi ||) \
 			$(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \
 		elif [ "$(D)" = "$(patsubst $(shell cd $(XEN_ROOT) && pwd)/%,%,$(D))" ]; then \
 			echo 'EFI installation only partially done (EFI_VENDOR not set)' >&2; \
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 407571c510..a154ffe6b2 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -228,12 +228,17 @@ endif
 	$(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
 	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
 	      $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
-	      $(note_file_option) -o $@
-	$(NM) -pa --format=sysv $@ \
+	      $(note_file_option) -o $(TARGET)-syms.efi
+	$(NM) -pa --format=sysv $(TARGET)-syms.efi \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map
 ifeq ($(CONFIG_DEBUG_INFO),y)
-	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
+	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) \
+		-O elf64-x86-64 $(TARGET)-syms.efi $@.elf
+endif
+	$(STRIP) $(TARGET)-syms.efi -o $@
+ifneq ($(CONFIG_DEBUG_INFO),y)
+	rm -f $(TARGET)-syms.efi
 endif
 	rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
 ifeq ($(CONFIG_XEN_IBT),y)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 15:49:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 15:49:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161829.1489672 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJZZo-0003i9-PD; Thu, 13 Nov 2025 15:49:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161829.1489672; Thu, 13 Nov 2025 15:49: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 1vJZZo-0003i2-Lf; Thu, 13 Nov 2025 15:49:36 +0000
Received: by outflank-mailman (input) for mailman id 1161829;
 Thu, 13 Nov 2025 15:49:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xbc0=5V=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJZZn-0003hw-69
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 15:49:35 +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 5973c41c-c0a8-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 16:49:34 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by GVXPR03MB10635.eurprd03.prod.outlook.com (2603:10a6:150:220::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Thu, 13 Nov
 2025 15:49:30 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 15:49: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: 5973c41c-c0a8-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RmTU7y+AjFdRVNhmOD1masQSx3fVQl/SovaNlD5j8MaGJKB3vJZfS2nmCcN7xkgAy2WXueFaqnpVPG5VOLyrN23tUqT5xw2GoOSr6gApCac4D9jZ3r+ozVAfj/sl0MhsSV6Bk2ChGBrLUL+tXsXxn70R57DtYhkcLNf0t4JIq6Zz3y1JxNjugqeP6r3G2mp2n8kkRqMxZ3Qb3Xrw8w2Xv7KVlTCPIc/pR8wn0ekDiy2BbmdoVRzg0Yc1fJOaipT+LU1enF0h499nZUummu8ZwUv5pF21w/yA1vpI2JYzZQIBfHDnA05skfDCUFjLpuvbJw5WhPyGBBgqVsHK32zaww==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6BTLe24zyhgN7TPU4Vo4apGxqyibwRLw7bikjIC6hT8=;
 b=Xbgt9ys7RUIqtDMGdjyqCOtDYqLHBjIynjUoRVlQ5UkOyGATcobqJgUo0G47PBRwXWh4jaaAAHpPjIT2sXLs/2J9OswtjxRHT1n+bleWuESRPBLX6tnQi0dG9dOOKpvOWP1UF7gQlpKTa1QCjJd82x2xUbhTyXPuXhezJyVxw7KV+nU66IaruLNYIn85FXEzW4clrhv6B96mjMSVS/qrJTHshKTHK6mQvQta756mxAUZkeXkXIUTRbbSheuTtY7hbzuoro060vHTxQUN25OKcd0veDyMDwIk5TTMZ71/DFcYAJMfuye7l7tUmvyyWbbD81tK3K4nsZ/8vPV9ISixOA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6BTLe24zyhgN7TPU4Vo4apGxqyibwRLw7bikjIC6hT8=;
 b=bELt+4k8La4xN3kkXJ2VlI4QTTVI3p2PQOgtJ8d7C8Yz1QU29FYcAGANutUO2BQh88DTkIyGlzkPbrmir0D1VVC5pD7toYDBws/sk8gVuT1Ql6vcBRCoBn5z1y3vr/0+9dHSyNxFhTuWIDq9fnvW/MA8cmdVIV893nyAvk/Mael/2BRRe9jssJuhb66ozkoX4sCQ1swriRA5WqJJPRr7w9H+dKedLxD3AWI4X1G2eOms7zeJDFvx/aAthCeIsCqbTvv0qNNqrx2wtGKnv4aUS0b/cZEV3oG36yg+A6W0AzTGqpSWTxk2tBYqb4M/FA1ysHm3tRkP4Uz5XbtrN6S1ag==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <a3628426-cc6c-4bfb-892f-895195d5d87d@epam.com>
Date: Thu, 13 Nov 2025 17:49:28 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 6/8] arm/sysctl: Implement cpu hotplug ops
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "Alejandro.GarciaVallejo@amd.com" <Alejandro.GarciaVallejo@amd.com>
References: <cover.1762939773.git.mykyta_poturai@epam.com>
 <656cb01061f2ec726eb23784d01517a94117618e.1762939773.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <656cb01061f2ec726eb23784d01517a94117618e.1762939773.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0022.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::24) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|GVXPR03MB10635:EE_
X-MS-Office365-Filtering-Correlation-Id: e1dab770-4ac8-4ded-4952-08de22cc3b88
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?YUxTM2Z0UFhhdVlRZzRFUXhBbW04Yzh2NmY2Y2hQNjFNNThQZHlQc25TRVpC?=
 =?utf-8?B?akFXWG9uTTZSQ3pYL1lVZ3NsMGVlK1RDdkFjQUhEUWYrL2FEVFV6K3RmWHl0?=
 =?utf-8?B?My9pSWdaTDJyQkt1cis0ZVdnTFdjaDkxcEU5VVZCT1NyZi9PMC9odVpLbi85?=
 =?utf-8?B?RXNWV3o0aHBBRHNiSlFhM3NqZTlENUhCOFFFSkplL3Vrd0RkRFdpbWlJNVNF?=
 =?utf-8?B?MFhJZmJwb2Z4VU1WUWYwclQ5SGFIdjFZOHRpOXFYallGRTZZeUtjcmhDTVll?=
 =?utf-8?B?d3huY2hnOUI5aVlQcXk1ZUpwd0xFelA1LzlVZ05raVFOZEN4Sm9lVUZ1b0g3?=
 =?utf-8?B?NTV2OFdqWHl3dUt6TnVmS0lTNHNMYTBXRWZ3d1BEQzZRUnpQZTIrVTd3dkR2?=
 =?utf-8?B?V3Jqd29UNGtBNG51YXozUml4eHVyeW5xUnp4T3duRGlxbVJBenc1M0VvZFNW?=
 =?utf-8?B?Z0pUamhUUzFINWhGMVI1bWpGdkhjdGIwbHFsK2NUb0Mya2NQVDFLY214VE41?=
 =?utf-8?B?Mmhla1VrNEFYNFdnQmxoeHZEKzA2YTVoa3FSa1RNZ1pFenlDdDdveHhxRzN3?=
 =?utf-8?B?UjZpdlk5TnVENE4ra0dCQ0U4U2pwZXNnSFZZQjFtLzMvMEdSa2xQdG9qUFJL?=
 =?utf-8?B?Y3JiODJGYjE1VXB5Ny96aXVhUzVQMWVZRkZOUk90QmdvbWxVU3drcUVBblNs?=
 =?utf-8?B?TnBlNGFWdlRraldVd3AzZVA3dFI5QWN1TlBoelQ2Q3lld1hJWU1ZOUJqckty?=
 =?utf-8?B?WnB1eXhocm9NR1M0UnYwMTdoOW5TR0pLdlNhT25ObmtjdVQ5cC9PTGNuYS9x?=
 =?utf-8?B?WlNFaWtGRVhMYzNhcmRsVU9ITGpHOHFKZHhZMnYxTUlwUzNwbHZ3dUlXSUtu?=
 =?utf-8?B?U3ZNSy91REg5eUtvR2VPV0c1dVA5UVBXdGZTNlYvZFQ0czJPTUhHL1Y4VXpI?=
 =?utf-8?B?Q0JtY0lNM25qekpZeU8vMWF6WU1wb0djZG85MlYxTU5ZT0lRcStnWUZnbWNM?=
 =?utf-8?B?ZVAvczBYZjEyTTY2K1RaUFhMOXYxWmZDUmkyQVVTSUpvVDd0czhscFh6RjYy?=
 =?utf-8?B?OEhsK0FodkRkdmZ6V0pMcURGRks3OUlGVm1RcmJhdmZyeGdhRWpqQlJNaCsx?=
 =?utf-8?B?MUR2bGNkUW1rMG11N3JrYnNMeE55OGJ4UUQybFg3anRoalByRGlQSk9RVHJt?=
 =?utf-8?B?ejd4NUMzMW82eDVyUm9yRy9aancxZ05GQkFIdVB1VWduWHJ3M2EwV2RldUdL?=
 =?utf-8?B?dDZVa2RVY3FTdXFXMTBTRlp0WWsxVG14eHJsbFFQQWlNd2tXeHIxM2ErVisv?=
 =?utf-8?B?cm1oZlBDaklsV0hLNDNtcjZWQ0FueU9IQTd4VExlV3RmS1hRdU1EZmhhTXhH?=
 =?utf-8?B?a2dkRWZjY05LenhiY1JBdG95U3N4ODc5L2ZJT1RUd0dXS0kvMGNyRi9WS2VW?=
 =?utf-8?B?dGZJazZKM1g5MUdoYnBUNEJpbWFGRk4va0ZvVmRNVGphU0t2SytUTHd1YlBJ?=
 =?utf-8?B?bmRPWXc3anpZR1NaMVlJYWI0Unh6ZDdEczFJU1VNRC90R2VNeksvM3BpWEJv?=
 =?utf-8?B?Nisxdzh3VWJLVHB5Sit6QVlxb3VTVTVCZG9sakJKZW5UZUIrWlhVckRRbHN2?=
 =?utf-8?B?aDgrYUVucFlBMGVJTVJOKzIxVlQrWGF4cmZOYjV5aG4xOWhPWXJ2Y25ZbGtX?=
 =?utf-8?B?SXFreGlheGhLNlFXSUgxL3lWeUdxM1pRV3hrU2RHT25WMkFwZkNtakhmQnNr?=
 =?utf-8?B?cno3dGEzem5SVTVYcW1uKzd4ZDRDNTVUODY0dW9USW93M0xsVmpKVTYzdEs4?=
 =?utf-8?B?ZFVHditEMjF4YlYrbUdwRmluZ084K1VaaW9ldzZXS1NLUVZSMGhnT0dyaHZG?=
 =?utf-8?B?eVh6SkZaQjB5QlVNaUhmdmk5LzNvQWk1NFhjbkxlUXUxOFhHSVY4bDNPWWQ1?=
 =?utf-8?Q?i5b2gpg9WNFuQ6Sco5YQtBUQ4zIu0gkB?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?V2x2R2NuTCtGOVFFRktiNGdKYmZjc29FV3RaODlUeXdMUU02cHFZYXlnVE0v?=
 =?utf-8?B?djFrOWxIVTNiUEZyK1kwK21od2RycDQ0SHJaQWxZS0U1TVFmamxRY3Z1Z3Z2?=
 =?utf-8?B?Q3VPQTdwcjg3aUNFanRlOFJyUHo5aDNDTUM3b01FcTlQdWNHWXNMa1NTTFMx?=
 =?utf-8?B?NUo5MnhmVVZQTzh3WjUvQXBHb2tZN1JtOHpLYkhpbmFjYzVFMmNwZHRvQmpx?=
 =?utf-8?B?Zi9sMGxpeVdYdEFCcFRXTEwxMHd4QWVKR3FYQlFpdDdSekwzQmMwUjkrNXVj?=
 =?utf-8?B?aXNXY3NBK3JCTmNFUnN0UnRQMzRGS0dkbVM5bVJRbjBtTHpMMXRaeTdaV1ZD?=
 =?utf-8?B?WHg2d0UrM2M5NmJETHFmZ3M5d2dXQW85WHRkU0x1d0dhV1V6eVhESndNRWIv?=
 =?utf-8?B?TE1zZE1adGtoVHJXRHRxNXNUbEFrU0FYTWpRd0U1Wm1BeS9yVUxJcUdpNmo0?=
 =?utf-8?B?bFNDRW54RWp0bEFrMXNzNFpVRnJESmVELzNBSkRMY3cwQWRkWnB5OExXZHZI?=
 =?utf-8?B?cndpaDFEbDYyYUpVdS9Nd3pIdXlxS0h0NldQMjk2aW9xak1KSC9XMnVNVFpj?=
 =?utf-8?B?N0lQbTg0NDNSaHgxU3R5TEZ5U0phTnFQcG9HTVhSVExDcXk0SlZUTUVielZK?=
 =?utf-8?B?cy9JRDJaZHVmUkM3ZG1yd1kwZFZnVEUyc1kwQ0lzSFgzSWZ1dWVJQldvR012?=
 =?utf-8?B?UUFZOWpsZ1M1blJsMmd2VFI1anBheTZGNTc5MkQ1L2JiVy9XOGFWcnp3WDc0?=
 =?utf-8?B?U1czQ1QrSG9MaFRXbkMzb2piSjFGM2hLdG1PSy84WFRic1c0VVBmQzBOZDIx?=
 =?utf-8?B?OFJIV3FINnJFQlZna093a0xPQVA1c2s4OXc5SWhQS1lOYXZsN1lUMkNHeEFO?=
 =?utf-8?B?VWhZd2RBckhFbk5JaXdxZlRPZ0VISG9Wd2F3VGQ5Z3V3SHpqNjNteVNkQWo5?=
 =?utf-8?B?ZW5OenZkaWs0VXhqb0ZnY3Uvd0ZqNyt2UUdxUkFKeGF1Q2xpWjViUkNlV01w?=
 =?utf-8?B?QTJMQlNjWXQyUytZc0hMam5WUm8yVjkrNVlFdGNJSEdkRGtMSURaa3lKSjIz?=
 =?utf-8?B?UzYzekkwb0M4eThFYmRrczVIRlBJTXRITFM0bjVoenZiRnNDMUFEQldoMjVE?=
 =?utf-8?B?TkF1VWZ2cGt1Q3gveW9LaElpVzFNMGZrS0Rha1ZEREVKcWFMUlVVQ3hPT0Vo?=
 =?utf-8?B?cHhwTlVHRGgxamNKbUwzbWhZTGgwYjVaaXp4cGVPVE9vcm80TVZaVEN4Vk43?=
 =?utf-8?B?RmpuOHJ5YTdQMTN1TFBDS1pQSmtmZmhHUDgvdlVkOTN6YmhhYjdYc0VCNTJM?=
 =?utf-8?B?VWpLRE1KM1ptUnZUS2pJY3RaMjExRlR5bGZPaVVNNDJiZE93ekR4WkhHTWVr?=
 =?utf-8?B?SnY3cUROKzg5TWpBTGdVU3ltQkFZM3ZsUVJHbEZZRlVEQ3FTQkNwS3Fpd1Ns?=
 =?utf-8?B?b3Z6U0ttaEw0L2RNU3RRL3dnRzQvSWJiYXlWYUJLNXY5V0wrWUFqckV6bktF?=
 =?utf-8?B?VjVtZzFvaEhKa2JBRkhna2krOE5JbFAvNE9HUGw0YVVFZGsyelRkV2pVNEdE?=
 =?utf-8?B?cUp3QUJJNy9mVkE1WGVRajdodHliZGJPT3lSZzIzWldrQW53b2R5b0o0Rlcv?=
 =?utf-8?B?MzlVMEhldGJveHB6ZnN4NlIvR0NNbXFjYnk1d0tkeFkvVTNrV0pQeTkvYWd2?=
 =?utf-8?B?M0FQODJOazFKNTM5ZUt6amV4bG5HUGdTLyt3YTI3ZmhIa3JqeE5oTCt4YXln?=
 =?utf-8?B?MDRtLzVkV3lrd3V6WkVybUxYdjUweWdIQWcyZDZySS9OQ1BqZEVEUmV3UGhD?=
 =?utf-8?B?TFhRMWQyeXFVRlRmako0L1BrK243VUdZUktPcTJlNzhIV2liUFBuOGdPNWdY?=
 =?utf-8?B?RS94TEpZWkNQZThSVUFhU09sNGIrQ2EwYVBubnc2Ky9OUjlnZmZYYVIyOE1E?=
 =?utf-8?B?YUtkNTFwQnBhalhRc25JUDNqL2xFMWZXdnMyNFJuY1JscWhaSlBWZHp3ZHJw?=
 =?utf-8?B?TWRWc2wwRkFmOGpJWlR1bS9PL1Z3dTkxR0RmcjNTVHIwWWNVODJybkg5WkpV?=
 =?utf-8?B?MkYzeEZ1U2JUSEM2dWtRMDZwZk9JcGNteEE4R0ZkUE5lNUtlK0FyQjhzcXEx?=
 =?utf-8?B?TTBWd1FRMHJuMnZTTFNwRmxDSno5TmtubTMyTlg3ZFpmWEVBYzI1ZDdldDFl?=
 =?utf-8?B?Wmc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e1dab770-4ac8-4ded-4952-08de22cc3b88
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 15:49:30.1896
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: oaCl2QQ5oy13A1odYvWs8iLo7KTDP8NtuWoPmfERATtSm+H3/vHUSQpBNrP94PwDD9sCM2YOfIjojcIbTgz+CdVoAcoydzJ7pv/V5Tq90MY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB10635



On 12.11.25 12:51, Mykyta Poturai wrote:
> Implement XEN_SYSCTL_CPU_HOTPLUG_{ONLINE,OFFLINE} calls to allow for
> enabling/disabling CPU cores in runtime.
> 
> 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.
> 
> Create a Kconfig option RUNTIME_CPU_CONTROL that reflects this
> constraints.
> 
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> 
> v3->v4:
> * don't reimplement cpu_up/down helpers
> * add Kconfig option
> * fixup formatting
> 
> v2->v3:
> * no changes
> 
> v1->v2:
> * remove SMT ops
> * remove cpu == 0 checks
> * add XSM hooks
> * only implement for 64bit Arm
> ---
>   xen/arch/arm/Kconfig  |  4 ++++
>   xen/arch/arm/sysctl.c | 32 ++++++++++++++++++++++++++++++++
>   2 files changed, 36 insertions(+)
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index cf6af68299..931ae51575 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -274,6 +274,10 @@ config PCI_PASSTHROUGH
>   	help
>   	  This option enables PCI device passthrough
>   
> +config RUNTIME_CPU_CONTROL
> +    def_bool y
> +    depends on ARM_64 && !TEE && !FFA && !HAS_ITS
> +

Having it in arch code I think right as Arch can have own deps
(Linux does it this way), but name has to be fixed and documented (docs).

may be more common name HOTPLUG_CPU (like in linux)?
naming is up to you.

>   endmenu
>   
>   menu "ARM errata workaround via the alternative framework"
> diff --git a/xen/arch/arm/sysctl.c b/xen/arch/arm/sysctl.c
> index 32cab4feff..3c4e29d82c 100644
> --- a/xen/arch/arm/sysctl.c
> +++ b/xen/arch/arm/sysctl.c
> @@ -12,6 +12,7 @@
>   #include <xen/dt-overlay.h>
>   #include <xen/errno.h>
>   #include <xen/hypercall.h>
> +#include <xsm/xsm.h>
>   #include <asm/arm64/sve.h>
>   #include <public/sysctl.h>
>   
> @@ -23,6 +24,33 @@ void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
>                                          XEN_SYSCTL_PHYSCAP_ARM_SVE_MASK);
>   }
>   
> +static long cpu_hotplug_sysctl(struct xen_sysctl_cpu_hotplug *hotplug)
> +{
> +#ifdef CONFIG_RUNTIME_CPU_CONTROL
> +    int ret;
> +
> +    switch ( hotplug->op )
> +    {
> +    case XEN_SYSCTL_CPU_HOTPLUG_ONLINE:
> +        ret = xsm_resource_plug_core(XSM_HOOK);
> +        if ( ret )
> +            return ret;
> +        return continue_hypercall_on_cpu(0, cpu_up_helper, _p(hotplug->cpu));
> +
> +    case XEN_SYSCTL_CPU_HOTPLUG_OFFLINE:
> +        ret = xsm_resource_unplug_core(XSM_HOOK);
> +        if ( ret )
> +            return ret;
> +        return continue_hypercall_on_cpu(0, cpu_down_helper, _p(hotplug->cpu));
> +
> +    default:
> +        return -EOPNOTSUPP;
> +    }
> +#else
> +    return -EOPNOTSUPP;
> +#endif
> +}
> +
>   long arch_do_sysctl(struct xen_sysctl *sysctl,
>                       XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
>   {
> @@ -34,6 +62,10 @@ long arch_do_sysctl(struct xen_sysctl *sysctl,
>           ret = dt_overlay_sysctl(&sysctl->u.dt_overlay);
>           break;
>   
> +    case XEN_SYSCTL_cpu_hotplug:
> +        ret = cpu_hotplug_sysctl(&sysctl->u.cpu_hotplug);
> +        break;
> +
>       default:
>           ret = -ENOSYS;
>           break;

Common code need to be placed under same config guards.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 15:55:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 15:55:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161847.1489681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJZfH-0005fv-Fe; Thu, 13 Nov 2025 15:55:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161847.1489681; Thu, 13 Nov 2025 15:55:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJZfH-0005fo-Cc; Thu, 13 Nov 2025 15:55:15 +0000
Received: by outflank-mailman (input) for mailman id 1161847;
 Thu, 13 Nov 2025 15:55:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GU/a=5V=bounce.vates.tech=bounce-md_30504962.6915ff5f.v1-34b7dbf075cc4b9fb791b926fba19e5d@srs-se1.protection.inumbo.net>)
 id 1vJZfG-0005fH-Hl
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 15:55:14 +0000
Received: from mail128-17.atl41.mandrillapp.com
 (mail128-17.atl41.mandrillapp.com [198.2.128.17])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 23579dae-c0a9-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 16:55:13 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4d6lGR1wlGzCf9P1R
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 15:55:11 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 34b7dbf075cc4b9fb791b926fba19e5d; Thu, 13 Nov 2025 15:55: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: 23579dae-c0a9-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763049311; x=1763319311;
	bh=AWwKvo1q2I4OcXfEmisLmaU6QPXG0kxsbLB1H/QXaxM=;
	h=From:Subject:Message-Id:To:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=nc4kiiIfWaxh/8ytd9PzWWt1qPwGf+2TEn3WGdsqoRc6NZXbe+0BfFbNlUB8/vNbW
	 JVZt7wI5vNYev/4boNdpkEGc2jWZlt/eX3PwYqAtZCU9fpHtnNL1UD3unkFhtkSBXn
	 BJQSuye6xQLgmbi6mS654kqDRTi4NuCCA6krksWecWbbGcWnlrBhMszxu5dENvGyTp
	 7ZRMHPEH8kZN9r5TsXa0KXqBRsEFGsh6rdvwC4j7FMDkNXoNw8qfUhrjM8nBqGcjuC
	 pTsgoFq5SWP1dLpsY1QqHAH32UJZZeoWy5Y+xNuwHfTuNsr6d4Qb67Wkgkg1bgSyW7
	 tbHwjfb4w6lJg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763049311; x=1763309811; i=yann.sionneau@vates.tech;
	bh=AWwKvo1q2I4OcXfEmisLmaU6QPXG0kxsbLB1H/QXaxM=;
	h=From:Subject:Message-Id:To:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=Qnte8mcNqzLpF0VGyh79IGO0BNO7ZD6PVmKm2LoUKv6vfhqkSKSpk2wDhR7rxIiJ6
	 oStUO8fqlRZ85ewUTg6AtYvfWYGxMWTXdqQGIGN/KjqqzxYtOWL2ETf5rhSTfrfCub
	 G7v23dvgXiHkFgfmX57JwrznB904udN4D1lDLx2cNnDTwVFVkBl2FfHdv0SoVdP71j
	 Fb1ZDqbGmhKF0IgnaSgI5foCO9UbPlicaGaMpJp2TuUF4C0oEWZDdGkaPk/heWqnfI
	 SSHTya3M/rSQjiaJseooB6ZaF91YFkoavjboTaD14uQs2Z8KbO+vRx+S3Ry2RAvNik
	 n3ZdATP+R81tw==
From: "Yann Sionneau" <yann.sionneau@vates.tech>
Subject: =?utf-8?Q?Re:=20domU=20suspend=20issue=20-=20freeze=20processes=20failed=20-=20Linux=206.16?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763049310297
Message-Id: <36d3599b-f8d8-496a-88a1-d64a4fa6e37a@vates.tech>
To: "Jason Andryuk" <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <aKiBJeqsYx_4Top5@mail-itl> <aKiBwEsogK420kwo@mail-itl> <05e9628d-83e5-4feb-881d-5854b72bd560@suse.com> <aKi6Foj-Lx_n0L6l@mail-itl> <aNEgTgis2JeyQ4HA@mail-itl> <8f6b8f08-ca62-467b-a6be-4d33208e5393@epam.com> <aNPyW5a7BHni-SuI@mail-itl> <32097dc9-761f-4319-9fa8-6bcb15c06a82@vates.tech> <45fbc094-f90a-415d-abd8-8e1404251530@amd.com>
In-Reply-To: <45fbc094-f90a-415d-abd8-8e1404251530@amd.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.34b7dbf075cc4b9fb791b926fba19e5d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251113:md
Date: Thu, 13 Nov 2025 15:55:11 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 10/6/25 16:28, Jason Andryuk wrote:
> On 2025-09-24 10:28, Yann Sionneau wrote:
>> On 9/24/25 15:30, Marek Marczykowski-G=C3=B3recki wrote:
>>> On Wed, Sep 24, 2025 at 01:17:15PM +0300, Grygorii Strashko wrote:
>>>>
>>>>
>>>> On 22.09.25 13:09, Marek Marczykowski-G=C3=B3recki wrote:
>>>>> On Fri, Aug 22, 2025 at 08:42:30PM +0200, Marek Marczykowski- 
>>>>> G=C3=B3recki wrote:
>>>>>> On Fri, Aug 22, 2025 at 05:27:20PM +0200, J=C3=BCrgen Gro=C3=9F wrot=
e:
>>>>>>> On 22.08.25 16:42, Marek Marczykowski-G=C3=B3recki wrote:
>>>>>>>> On Fri, Aug 22, 2025 at 04:39:33PM +0200, Marek Marczykowski- 
>>>>>>>> G=C3=B3recki wrote:
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> When suspending domU I get the following issue:
>>>>>>>>>
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Freezing user space pr=
ocesses
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Freezing user space pr=
ocesses failed after 20.004 
>>>>>>>>> seconds (1 tasks refusing to freeze, wq_busy=3D0):
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 task:xl=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 state:D sta=
ck:0=C2=A0=C2=A0=C2=A0=C2=A0 pid:466   
>>>>>>>>> tgid:466=C2=A0=C2=A0 ppid:1=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 task_fl=
ags:0x400040 flags:0x00004006
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Call Trace:
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 <TASK>
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __schedule+0x2f3=
/0x780
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 schedule+0x27/0x=
80
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 schedule_preempt=
_disabled+0x15/0x30
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __mutex_lock.con=
stprop.0+0x49f/0x880
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unregister_xenbu=
s_watch+0x216/0x230
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 xenbus_write_wat=
ch+0xb9/0x220
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 xenbus_file_writ=
e+0x131/0x1b0
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 vfs_writev+0x26c=
/0x3d0
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ? do_writev+0xeb=
/0x110
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 do_writev+0xeb/0=
x110
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 do_syscall_64+0x=
84/0x2c0
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ? do_syscall_64+=
0x200/0x2c0
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ? generic_handle=
_irq+0x3f/0x60
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ? syscall_exit_w=
ork+0x108/0x140
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ? do_syscall_64+=
0x200/0x2c0
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ? __irq_exit_rcu=
+0x4c/0xe0
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 entry_SYSCALL_64=
_after_hwframe+0x76/0x7e
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 RIP: 0033:0x79b6181386=
42
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 RSP: 002b:00007fff9a19=
2fc8 EFLAGS: 00000246 ORIG_RAX: 
>>>>>>>>> 0000000000000014
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 RAX: ffffffffffffffda =
RBX: 00000000024fd490 RCX: 
>>>>>>>>> 000079b618138642
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 RDX: 0000000000000003 =
RSI: 00007fff9a193120 RDI: 
>>>>>>>>> 0000000000000014
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 RBP: 00007fff9a193000 =
R08: 0000000000000000 R09: 
>>>>>>>>> 0000000000000000
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 R10: 0000000000000000 =
R11: 0000000000000246 R12: 
>>>>>>>>> 0000000000000014
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 R13: 00007fff9a193120 =
R14: 0000000000000003 R15: 
>>>>>>>>> 0000000000000000
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </TASK>
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 OOM killer enabled.
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Restarting tasks: Star=
ting
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Restarting tasks: Done
>>>>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 xen:manage: do_suspend=
: freeze processes failed -16
>>>>>>>>>
>>>>>>>>> The process in question is `xl devd` daemon. It's a domU serving =
a
>>>>>>>>> xenvif backend.
>>>>>>>>>
>>>>>>>>> I noticed it on 6.16.1, but looking at earlier test logs I see 
>>>>>>>>> it with
>>>>>>>>> 6.16-rc6 already (but interestingly, not 6.16-rc2 yet? feels 
>>>>>>>>> weird given
>>>>>>>>> seemingly no relevant changes between rc2 and rc6).
>>>>>>>>
>>>>>>>> I forgot to include link for (a little) more details:
>>>>>>>> https://github.com/QubesOS/qubes-linux-kernel/pull/1157
>>>>>>>>
>>>>>>>> Especially, there is another call trace with panic_on_warn 
>>>>>>>> enabled -
>>>>>>>> slightly different, but looks related.
>>>>>>>>
>>>>>>>
>>>>>>> I'm pretty sure the PV variant for suspending is just wrong: it 
>>>>>>> is calling
>>>>>>> dpm_suspend_start() from do_suspend() without taking the required
>>>>>>> system_transition_mutex, resulting in the WARN() in 
>>>>>>> pm_restrict_gfp_mask().
>>>>>>>
>>>>>>> It might be as easy as just adding the mutex() call to 
>>>>>>> do_suspend(), but I'm
>>>>>>> really not sure that will be a proper fix.
>>>>>>
>>>>>> Hm, this might explain the second call trace, but not the freeze 
>>>>>> failure
>>>>>> quoted here above, I think?
>>>>>
>>>>> While the patch I sent appears to fix this particular issue, it 
>>>>> made me
>>>>> wonder: is there any fundamental reason why do_suspend() is not using
>>>>> pm_suspend() and register Xen-specific actions via 
>>>>> platform_suspend_ops
>>>>> (and maybe syscore_ops)? From a brief look at the code, it should
>>>>> theoretically be possible, and should avoid issues like this.
>>>>>
>>>>> I tried to do a quick&dirty attempt at that[1], and it failed 
>>>>> (panic). I
>>>>> surely made several mistakes there (and also left a ton of todo
>>>>> comments). But before spending any more time at that, I'd like to ask
>>>>> if this is a viable option at all.
>>>>
>>>> I think it might, but be careful with this, because there are two 
>>>> "System Low power" paths in Linux
>>>> 1) Suspend2RAM and Co
>>>> 2) Hybernation
>>>>
>>>> While "Suspend2RAM and Co" path is relatively straight forward and 
>>>> expected to be always
>>>> started through pm_suspend(). In general, it's expected to happen
>>>> =C2=A0=C2=A0 - from sysfs (User space)
>>>> =C2=A0=C2=A0 - from autosuspend (wakelocks).
>>>>
>>>> the "hibernation" path is more complicated:(
>>>> - Genuine Linux hybernation hibernate()/hibernate_quiet_exec()
>>>
>>> IIUC hibernation is very different as it puts Linux in charge of dumpin=
g
>>> all the state to the disk. In case of Xen, the primary use case for
>>> suspend is preparing VM for Xen toolstack serializing its state to disk
>>> (or migrating to another host).
>>> Additionally, VM suspend may be used as preparation for host suspend
>>> (this is what I actually do here). This is especially relevant if the V=
M
>>> has some PCI passthrough - to properly suspend (and resume) devices
>>> across host suspend.
>>>
>>>> I'm not sure what path Xen originally implemented :( It seems like 
>>>> "suspend2RAM",
>>>> but, at the same time "hybernation" specific staff is used, like 
>>>> PMSG_FREEZE/PMSG_THAW/PMSG_RESTORE.
>>>> As result, Linux suspend/hybernation code moves forward while Xen 
>>>> stays behind and unsync.
>>>
>>> Yeah, I think it's supposed to be suspend2RAM. TBH the
>>> PMSG_FREEZE/PMSG_THAW/PMSG_RESTORE confuses me too and Qubes OS has a
>>> patch[2] to switch it to PMSG_SUSPEND/PMSG_RESUME.
>>>
>>>> So it sounds reasonable to avoid custom implementation, but may be 
>>>> not easy :(
>>>>
>>>> Suspending Xen features can be split between suspend stages, but
>>>> not sure if platform_suspend_ops can be used.
>>>>
>>>> Generic suspend stages list
>>>> - freeze
>>>> - prepare
>>>> - suspend
>>>> - suspend_late
>>>> - suspend_noirq (SPIs disabled, except wakeups)
>>>> =C2=A0=C2=A0=C2=A0 [most of Xen specific staff has to be suspended at =
this point]
>>>> - disable_secondary_cpus
>>>> - arch disable IRQ (from this point no IRQs allowed, no timers, no 
>>>> scheduling)
>>>> - syscore_suspend
>>>> =C2=A0=C2=A0=C2=A0 [rest here]
>>>> - platform->enter() (suspended)
>>>>
>>>> You can't just overwrite platform_suspend_ops, because ARM64 is 
>>>> expected to enter
>>>> suspend through PSCI FW interface:
>>>> drivers/firmware/psci/psci.c
>>>> =C2=A0=C2=A0 static const struct platform_suspend_ops psci_suspend_ops=
 =3D {
>>>
>>> Does this apply to a VM on ARM64 too? At least on x86, the VM is
>>> supposed to make a hypercall to tell Xen it suspended (the hypercall
>>> will return only on resume).
>>>
>>>> As an option, some Xen components could be converted to use 
>>>> syscore_ops (but not xenstore),
>>>> and some might need to use DD(dev_pm_ops).
>>>>
>>>>>
>>>>> [1] https://github.com/marmarek/linux/ 
>>>>> commit/47cfdb991c85566c9c333570511e67bf477a5da6
>>>>
>>>> -- 
>>>> Best regards,
>>>> -grygorii
>>>>
>>>
>>> [2] https://github.com/QubesOS/qubes-linux-kernel/blob/main/xen-pm- 
>>> use-suspend.patch
>>>
>>
>> On my setup I get a weird behavior when trying to suspend (s2idle) a
>> Linux guest.
>> Doing echo freeze > /sys/power/state in the guest seems to "freeze" the
>> guest for good, I could not unfreeze it afterward.
>> VCPU goes to 100% according to XenOrchestra
>> xl list shows state "r" but xl console blocks forever
>> xl shutdown would block for some time and then print:
>> Shutting down domain 721
>> ?ibxl: error: libxl_domain.c:848:pvcontrol_cb: guest didn't acknowledge
>> control request: -9
>> shutdown failed (rc=3D-9)
>>
>> Do you think it's related to your current issue?
> 
> idle=3Dhalt on the Linux command line addresses the 100% CPU usage.=C2=A0=
 Or 
> alternatively C2 needs to be implemented for guest vcpus.=C2=A0 I forget 
> preceisely, but I think the 100% CPU is because there are no C-states 
> available and Linux/cpuidle won't use halt by default.
> 
> To wake up, you need a wake up source.=C2=A0 The ACPI buttons presses wil=
l do 
> that:
> xl trigger $dom power
> xl trigger $dom sleep
> 
> However, I think without changes, domU s2idle/S3 will detach all its PV 
> devices.=C2=A0 Naturally they don't get reconnected on resume.=C2=A0 You =
can hack 
> around that to skip the detach.
> 
> Actually, maybe we just need:
> --- i/drivers/xen/xenbus/xenbus_probe_frontend.c
> +++ w/drivers/xen/xenbus/xenbus_probe_frontend.c
> @@ -148,8 +148,6 @@ static void xenbus_frontend_dev_shutdown(struct 
> device *_dev)
>  =C2=A0}
> 
>  =C2=A0static const struct dev_pm_ops xenbus_pm_ops =3D {
> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 .suspend=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 =3D xenbus_dev_suspend,
> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 .resume=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 =3D xenbus_frontend_dev_resume,
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 .freeze=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 =3D xenbus_dev_suspend,
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 .thaw=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =3D xenbus_dev_cancel,
> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 .restore=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 =3D xenbus_dev_resume,
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 .restore=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 =3D xenbus_frontend_dev_resume,
>  =C2=A0};
> 
> b3e96c0c7562 ("xen: use freeze/restore/thaw PM events for suspend/ 
> resume/chkpt") changed from PMSG_SUSPEND/PMSG_RESUME to PMSG_FREEZE/ 
> PMSG_THAW/PMSG_RESTORE, but the suspend/resume callbacks remained.=C2=A0 =
But 
> freeze and suspend being identical doesn't seem correct.
> 
> This would leave xl save/restore/migrate using the hibernate freeze/ 
> thaw/resume.=C2=A0 S3/s2idle would no touch the PV devices, so they would=
 
> still be present on resume.=C2=A0 Maybe there are cases I am not thinking=
 of 
> though.
> 
> Regards,
> Jason
> 

Hi all,

I finally took time to try what you guyz advised, thanks for all the 
answers!

So, I tried this on a clean Debian 13 VM install on a XCP-ng 8.3 (Xen 
4.17.5 with local patches) host.

1/ Just booting with idle=3Dhalt/nomwait/poll didn't help with waking up 
the VM, it kept being in a weird unwakable state. Even providing xl 
trigger power/sleep events. Although I reckon you were saying it would 
help with the CPU@100% and indeed I don't see this anymore.

2/ Just applying QubesOS patch 
https://github.com/QubesOS/qubes-linux-kernel/blob/main/xen-events-Add-wake=
up-support-to-xen-pirq.patch 
did help *a bit*. Hitting a key would wake the VM, then show again the 
Debian desktop, with some flickering, allowing to move the mouse and bit 
and hitting some keys on the keyboard ... then it would very quickly 
completely freeze and stay dead.

3/ on top of previous patch, applying your modification (removing 
.suspend, .resume and changing .restore to xenbus_frontend_dev_resume): 
then tadaaa I can wake the VM and it stays alive afterward. It seems it 
fixes the issue (I did not test for very very long though).

Thanks for the help on this!
What do you think we should do to move this forward? Submit those 
changes to upstream Linux? That will take long to end up in distros...

-- 


--
Yann Sionneau | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech





From xen-devel-bounces@lists.xenproject.org Thu Nov 13 16:19:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 16:19:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161867.1489696 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJa2G-0001P5-AN; Thu, 13 Nov 2025 16:19:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161867.1489696; Thu, 13 Nov 2025 16:19: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 1vJa2G-0001Oy-6b; Thu, 13 Nov 2025 16:19:00 +0000
Received: by outflank-mailman (input) for mailman id 1161867;
 Thu, 13 Nov 2025 16:18:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Z8X8=5V=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vJa2E-0001Om-PG
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 16:18:59 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 72a4f186-c0ac-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 17:18:54 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b733707e0b5so148073866b.2
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 08:18:54 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fad41e5sm190198166b.19.2025.11.13.08.18.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 08:18: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: 72a4f186-c0ac-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763050733; x=1763655533; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vfxp4umD1Xg05j/REVzb8M+UtMDlF3NACkCMxy5SXpY=;
        b=EwdsZSvrPh4cbYyTk+M89qQe2J1UssJ64//0LoolgNaXBp+OvJVKAg/goAL7yUq7AW
         JTFUHf20eqS043nWdS4swUBMYuUVONtMsF9l8n812Y93JlVGsk9r2im0L/NWi5fRPX5b
         XMFhP8542ael2qsdwpqsD6cEhPzzdkmoCJPhXRGRqIl45tIjXPjZDrHrPWOrxXs5JHaq
         hKbiQJIWAxGdBFAQZEeJRnt9eM3Eqt610rWV3E8z4WdIDy6a8b1g8tjnkI3Hd1kEDWzK
         R+PcR8HsiOTOju1QZ438xb1mFDHX54CKG9WrVCDhqGyastQ+Um3YMhXa3lyexiWd1W1/
         ebsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763050733; x=1763655533;
        h=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=vfxp4umD1Xg05j/REVzb8M+UtMDlF3NACkCMxy5SXpY=;
        b=ETZgEDRsRT03SqThgz49jkqMV5giW75n8BVbKdmfFFWhNPy9Oll+W2nEiEQSzfXh7U
         DWeraUzr2tD0Lxg+JqCV4SfpTFaIQnk+APUm/hOZ2kYVzkh7ffCW5YmLZMO1gqsuzkXx
         99BIpqstZqinARred8CLLXmVk6oevUQjsXeYQoioa8bh182maG57X/VHeLYEXY0zTYX7
         IUSDeDevKnwaKI5jIVSJ/6T4FLjpnXptj1THqhWQ5wG69VOemG7OVDfyBcg5aJOM3Jsf
         FPSS2mu+QrDOFm+FptpUwC1BchOLswXskRfVvlc1UxZNz5x9ck3aGhleiEi76tCk68u4
         KTcg==
X-Forwarded-Encrypted: i=1; AJvYcCXoENyN1IS0TrxBLjmf2QcYPqYzWFGoMMUh0AuCLXAe3llPyL8HlHUhOSYgbmpf2fxIpYzAdTAHxGI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxTbi0JNjujs0hCjbxOSnJdjUUfIUWNNs7SQq2l36BP8jiG68b1
	exrjXZqIGvagOBaTccaIdayHNjqn7zxu+sJucU72C13HgAfoudGYJN9q
X-Gm-Gg: ASbGncuYAquryPEIagjxiYKXGCmhWWqj3RlpfSYl34rqZzfp88Bvb7Qs58VPPg+Pr7U
	Oyx11grtJQzF8TNZ2HLp3f+dgyf0UjUwjF9vyQmb0aKLWqy1/W4mcAqW6j8g0h+RdcNhiBcsYXU
	jYeer6Qt4Syl09pFbO/vog+U56rVecJd15X/AHP8V0VrgEWNlPgJ8WzsM6kHJCehK2ySwSkGRyp
	82TEiLFtxmxbsrj+okkGkAzjh3JVePZt0gu3Xa4u85psKhJ0GMR5iS1pl2GrzaoOU7l9LT5iRGR
	tpoT6nnOnW5YEW6Zs8gNvGrjsUYL2kiP01wTfaVrKLYD3MZJFgu3HKKjKfR5aDb6Y26bR5hhwHY
	ObeLFrxIU51RvaSXyibe7iGs4K/ZgwNCcFUG0YG+tnYuvrbgr0q/KT4rufvjEQgH2oJXEzi7Z66
	/K9i7P+rXrUznQxVP2PTcicUWqIpoGAi8ccok2teHK23DrtJLaJfoPLoMh+xgK
X-Google-Smtp-Source: AGHT+IFVX9OoDnWAi3E9y1A2PuJ01WPuOHvpIiKdfj1hPiN6tRSF7DlZau77ouuvqea54rjUJNeiPw==
X-Received: by 2002:a17:907:781a:b0:b73:3ced:2f66 with SMTP id a640c23a62f3a-b733ced39f6mr418406466b.14.1763050733166;
        Thu, 13 Nov 2025 08:18:53 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------iu02vib3uDmsZBA82REi1e6F"
Message-ID: <6938d333-816d-49f8-9945-db9d4b17f1f1@gmail.com>
Date: Thu, 13 Nov 2025 17:18:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 01/18] xen/riscv: detect and initialize G-stage mode
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <2b21348b3300c741b276a47d5942e71d306846eb.1760974017.git.oleksii.kurochko@gmail.com>
 <8b204b21-80fb-408d-972e-8f183eb45dfc@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <8b204b21-80fb-408d-972e-8f183eb45dfc@suse.com>

This is a multi-part message in MIME format.
--------------iu02vib3uDmsZBA82REi1e6F
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/6/25 2:43 PM, Jan Beulich wrote:
> On 20.10.2025 17:57, Oleksii Kurochko wrote:
>> Changes in V5:
>>   - Add static and __initconst for local variable modes[] in
>>     gstage_mode_detect().
>>   - Change type for gstage_mode from 'unsigned long' to 'unsigned char'.
>>   - Update the comment inisde defintion if modes[] variable in
>>     gstage_mode_detect():
>>     - Add information about Bare mode.
>>     - Drop "a paged virtual-memory scheme described in Section 10.3" as it isn't
>>       relevant here.
>>   - Drop printing of function name when chosen G-stage mode message is printed.
>>   - Drop the call of gstage_mode_detect() from start_xen(). It will be added into
>>     p2m_init() when the latter will be introduced.
> Well, thanks, but ...
>
>>   - Introduce pre_gstage_init().
> ... the same comment that I gave before now applies here: This doesn't look to
> belong directly in start_xen(). In x86'es terms I'd say this is a tiny part of
> paging_init().

Does it only the question of function naming now?

IMO, ideally it would be nice to have it in p2m_init(), but there is no a lot of
sense to detect supported modes each time a domain is constructed. And it is the
reason why I put directly to start_xen().

>
>> --- a/xen/arch/riscv/include/asm/riscv_encoding.h
>> +++ b/xen/arch/riscv/include/asm/riscv_encoding.h
>> @@ -131,13 +131,16 @@
>>   #define HGATP_MODE_SV32X4		_UL(1)
>>   #define HGATP_MODE_SV39X4		_UL(8)
>>   #define HGATP_MODE_SV48X4		_UL(9)
>> +#define HGATP_MODE_SV57X4		_UL(10)
>>   
>>   #define HGATP32_MODE_SHIFT		31
>> +#define HGATP32_MODE_MASK		_UL(0x80000000)
> Please can we avoid redundant (and then not even connected) #define-s? I
> don't see why you would need HGATP32_MODE_SHIFT when you have
> HGATP32_MODE_MASK. Similarly ...
>
>>   #define HGATP32_VMID_SHIFT		22
>>   #define HGATP32_VMID_MASK		_UL(0x1FC00000)
> ... here, while ...
>
>>   #define HGATP32_PPN			_UL(0x003FFFFF)
> ... here the constant isn't even suffixed with _MASK.

I agree that it is enough to have only *_MASK.

I can do a separate cleanup patch (as what mentioned below were already introduced
before) which will drop:
  HGATP32_MODE_SHIFT, HGATP32_VMID_SHIFT, HGATP64_MODE_SHIFT, HGATP64_VMID_SHIFT
and rename:
  HGATP*_PPN to HGATP*_PPN_MASK

Does it make sense?

>
>> --- /dev/null
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -0,0 +1,96 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/init.h>
>> +#include <xen/lib.h>
>> +#include <xen/macros.h>
>> +#include <xen/sections.h>
>> +
>> +#include <asm/csr.h>
>> +#include <asm/flushtlb.h>
>> +#include <asm/riscv_encoding.h>
>> +
>> +unsigned char __ro_after_init gstage_mode;
>> +
>> +static void __init gstage_mode_detect(void)
>> +{
>> +    static const struct {
>> +        unsigned char mode;
>> +        unsigned int paging_levels;
>> +        const char name[8];
>> +    } modes[] __initconst = {
>> +        /*
>> +         * Based on the RISC-V spec:
>> +         *   Bare mode is always supported, regardless of SXLEN.
>> +         *   When SXLEN=32, the only other valid setting for MODE is Sv32.
>> +         *   When SXLEN=64, three paged virtual-memory schemes are defined:
>> +         *   Sv39, Sv48, and Sv57.
>> +         */
>> +#ifdef CONFIG_RISCV_32
>> +        { HGATP_MODE_SV32X4, 2, "Sv32x4" }
>> +#else
>> +        { HGATP_MODE_SV39X4, 3, "Sv39x4" },
>> +        { HGATP_MODE_SV48X4, 4, "Sv48x4" },
>> +        { HGATP_MODE_SV57X4, 5, "Sv57x4" },
>> +#endif
>> +    };
>> +
>> +    unsigned int mode_idx;
>> +
>> +    gstage_mode = HGATP_MODE_OFF;
> Why is this not the variable's initializer?

Good point. It should be the variable's initializer.

>> +    for ( mode_idx = 0; mode_idx < ARRAY_SIZE(modes); mode_idx++ )
>> +    {
>> +        unsigned long mode = modes[mode_idx].mode;
>> +
>> +        csr_write(CSR_HGATP, MASK_INSR(mode, HGATP_MODE_MASK));
>> +
>> +        if ( MASK_EXTR(csr_read(CSR_HGATP), HGATP_MODE_MASK) == mode )
>> +        {
>> +            gstage_mode = mode;
>> +            break;
>> +        }
>> +    }
> I take it that using the first available mode is only transient. To support bigger
> guests, you may need to pick 48x4 or even 57x4 no matter that 39x4 is available.

I considered traversing the|modes[]| array in the opposite order so that the largest
mode would be checked first. However, I decided that 39x4 is sufficiently large and
provides a good balance between the number of page tables and supported address
space, at least for now.

> I wonder whether you wouldn't be better off recording all supported modes right
> away.

What would be the use case for recording and storing all supported modes?
For example, would it be used to indicate which mode is preferable for a guest
domain via the device tree?

Also, Iâ€™d like to note that it probably doesnâ€™t make much sense to record all
supported modes. If we traverse the|modes[]| array in the opposite orderâ€”checking
|Sv57| firstâ€”then, according to the RISC-V specification:
- Implementations that support Sv57 must also support Sv48.
- Implementations that support Sv48 must also support Sv39.
So if Sv57 is supported then lower modes are supported too. (except Sv32 for RV32)

Based on this, it seems reasonable to start checking from Sv57, right?

Thanks.

~ Oleksii

--------------iu02vib3uDmsZBA82REi1e6F
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/6/25 2:43 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:8b204b21-80fb-408d-972e-8f183eb45dfc@suse.com">
      <pre wrap="" class="moz-quote-pre">On 20.10.2025 17:57, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Changes in V5:
 - Add static and __initconst for local variable modes[] in
   gstage_mode_detect().
 - Change type for gstage_mode from 'unsigned long' to 'unsigned char'.
 - Update the comment inisde defintion if modes[] variable in
   gstage_mode_detect():
   - Add information about Bare mode.
   - Drop "a paged virtual-memory scheme described in Section 10.3" as it isn't
     relevant here.
 - Drop printing of function name when chosen G-stage mode message is printed.
 - Drop the call of gstage_mode_detect() from start_xen(). It will be added into
   p2m_init() when the latter will be introduced.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Well, thanks, but ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre"> - Introduce pre_gstage_init().
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... the same comment that I gave before now applies here: This doesn't look to
belong directly in start_xen(). In x86'es terms I'd say this is a tiny part of
paging_init().</pre>
    </blockquote>
    <pre>Does it only the question of function naming now?

IMO, ideally it would be nice to have it in p2m_init(), but there is no a lot of
sense to detect supported modes each time a domain is constructed. And it is the
reason why I put directly to start_xen().

</pre>
    <blockquote type="cite"
      cite="mid:8b204b21-80fb-408d-972e-8f183eb45dfc@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/riscv_encoding.h
+++ b/xen/arch/riscv/include/asm/riscv_encoding.h
@@ -131,13 +131,16 @@
 #define HGATP_MODE_SV32X4		_UL(1)
 #define HGATP_MODE_SV39X4		_UL(8)
 #define HGATP_MODE_SV48X4		_UL(9)
+#define HGATP_MODE_SV57X4		_UL(10)
 
 #define HGATP32_MODE_SHIFT		31
+#define HGATP32_MODE_MASK		_UL(0x80000000)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Please can we avoid redundant (and then not even connected) #define-s? I
don't see why you would need HGATP32_MODE_SHIFT when you have
HGATP32_MODE_MASK. Similarly ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre"> #define HGATP32_VMID_SHIFT		22
 #define HGATP32_VMID_MASK		_UL(0x1FC00000)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... here, while ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre"> #define HGATP32_PPN			_UL(0x003FFFFF)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... here the constant isn't even suffixed with _MASK.</pre>
    </blockquote>
    <pre>I agree that it is enough to have only *_MASK.

I can do a separate cleanup patch (as what mentioned below were already introduced
before) which will drop:
 HGATP32_MODE_SHIFT, HGATP32_VMID_SHIFT, HGATP64_MODE_SHIFT, HGATP64_VMID_SHIFT
and rename:
 HGATP*_PPN to HGATP*_PPN_MASK

Does it make sense?

</pre>
    <blockquote type="cite"
      cite="mid:8b204b21-80fb-408d-972e-8f183eb45dfc@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- /dev/null
+++ b/xen/arch/riscv/p2m.c
@@ -0,0 +1,96 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include &lt;xen/init.h&gt;
+#include &lt;xen/lib.h&gt;
+#include &lt;xen/macros.h&gt;
+#include &lt;xen/sections.h&gt;
+
+#include &lt;asm/csr.h&gt;
+#include &lt;asm/flushtlb.h&gt;
+#include &lt;asm/riscv_encoding.h&gt;
+
+unsigned char __ro_after_init gstage_mode;
+
+static void __init gstage_mode_detect(void)
+{
+    static const struct {
+        unsigned char mode;
+        unsigned int paging_levels;
+        const char name[8];
+    } modes[] __initconst = {
+        /*
+         * Based on the RISC-V spec:
+         *   Bare mode is always supported, regardless of SXLEN.
+         *   When SXLEN=32, the only other valid setting for MODE is Sv32.
+         *   When SXLEN=64, three paged virtual-memory schemes are defined:
+         *   Sv39, Sv48, and Sv57.
+         */
+#ifdef CONFIG_RISCV_32
+        { HGATP_MODE_SV32X4, 2, "Sv32x4" }
+#else
+        { HGATP_MODE_SV39X4, 3, "Sv39x4" },
+        { HGATP_MODE_SV48X4, 4, "Sv48x4" },
+        { HGATP_MODE_SV57X4, 5, "Sv57x4" },
+#endif
+    };
+
+    unsigned int mode_idx;
+
+    gstage_mode = HGATP_MODE_OFF;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Why is this not the variable's initializer?</pre>
    </blockquote>
    <pre>Good point. It should be the variable's initializer.

</pre>
    <blockquote type="cite"
      cite="mid:8b204b21-80fb-408d-972e-8f183eb45dfc@suse.com">
      <pre wrap="" class="moz-quote-pre">
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    for ( mode_idx = 0; mode_idx &lt; ARRAY_SIZE(modes); mode_idx++ )
+    {
+        unsigned long mode = modes[mode_idx].mode;
+
+        csr_write(CSR_HGATP, MASK_INSR(mode, HGATP_MODE_MASK));
+
+        if ( MASK_EXTR(csr_read(CSR_HGATP), HGATP_MODE_MASK) == mode )
+        {
+            gstage_mode = mode;
+            break;
+        }
+    }
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I take it that using the first available mode is only transient. To support bigger
guests, you may need to pick 48x4 or even 57x4 no matter that 39x4 is available.</pre>
    </blockquote>
    <pre>I considered traversing the <code data-start="87" data-end="96">modes[]</code> array in the opposite order so that the largest
mode would be checked first. However, I decided that 39x4 is sufficiently large and
provides a good balance between the number of page tables and supported address
space, at least for now.

</pre>
    <blockquote type="cite"
      cite="mid:8b204b21-80fb-408d-972e-8f183eb45dfc@suse.com">
      <pre wrap="" class="moz-quote-pre">
I wonder whether you wouldn't be better off recording all supported modes right
away.</pre>
    </blockquote>
    <pre data-start="61" data-end="251">What would be the use case for recording and storing all supported modes?
For example, would it be used to indicate which mode is preferable for a guest
domain via the device tree?</pre>
    <pre data-start="253" data-end="473">Also, Iâ€™d like to note that it probably doesnâ€™t make much sense to record all
supported modes. If we traverse the <code data-start="367"
    data-end="376">modes[]</code> array in the opposite orderâ€”checking
<code data-start="414" data-end="420">Sv57</code> firstâ€”then, according to the RISC-V specification:
- Implementations that support Sv57 must also support Sv48.
- Implementations that support Sv48 must also support Sv39.
So if Sv57 is supported then lower modes are supported too. (except Sv32 for RV32)</pre>
    <pre data-start="599" data-end="669" data-is-last-node=""
    data-is-only-node="">Based on this, it seems reasonable to start checking from Sv57, right?

Thanks.

~ Oleksii</pre>
  </body>
</html>

--------------iu02vib3uDmsZBA82REi1e6F--


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 16:20:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 16:20:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161880.1489705 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJa48-0002wK-Qf; Thu, 13 Nov 2025 16:20:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161880.1489705; Thu, 13 Nov 2025 16:20: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 1vJa48-0002wD-Nd; Thu, 13 Nov 2025 16:20:56 +0000
Received: by outflank-mailman (input) for mailman id 1161880;
 Thu, 13 Nov 2025 16:20: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=kirI=5V=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vJa47-0002w3-Cr
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 16:20:55 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b9de9721-c0ac-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 17:20:53 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4775895d69cso5932975e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 08:20:53 -0800 (PST)
Received: from localhost.localdomain (host-78-149-11-196.as13285.net.
 [78.149.11.196]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4778c850ca6sm43497205e9.6.2025.11.13.08.20.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 13 Nov 2025 08:20: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: b9de9721-c0ac-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1763050853; x=1763655653; 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=6StBYBWA0wUq3GHQ0I/JGvGbzzmtV7dYNhqjYzYFZT8=;
        b=cYsjE6HlBhBQZvmj6/zCT3r7StSx7ZaokeVDkH2sehx+2ZQxWLkJvzSIzCBp6BoQFg
         Wm/QOrxzwoPL8O0a8AI0CHwRU2HwUnLaPRMRgzv4gV02ZQGdOLsry9Yrpaxm0RurQPah
         FUe/9tS1C5iOhTota0etcdwMo8y8ApDrlWAwI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763050853; x=1763655653;
        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=6StBYBWA0wUq3GHQ0I/JGvGbzzmtV7dYNhqjYzYFZT8=;
        b=iJ0kybtFjXiq+rMMSUq+ClNohVHG/yjdnRoZCfiI/fkkDy15tqIAkt+drPU6mRylQI
         nGS1ACdwkSl73Gf/1TU6kHXB6lzKBjWxT7mUwhP/xLxmB8G8kWA4x8d/ptK/DURGPe2X
         OzSeGFmWZdA4lKkDr+qOpsNsmoi7nrvkmHurbp+LV5BqqusN2UuLaUqbVKMXaEcHbtht
         FL5T91aneYsZNK4MU1+NB91iO0vT6JwhNHjfRUOb7DcolHGva0OS+f9WWVXtkz09jO7b
         Xn8fdayayY/Rd90bzBbEXIWHvJVETsYSL07+WEIuMqJrVL5L3xewi3wT37e1WLv/N+SR
         cwLw==
X-Gm-Message-State: AOJu0YxMUi84rU1jOGIpTr1oQdXsLEEI6hyw8g9CM6tV3yeBWrH6YSPX
	Kef590nHZigfpNga9sCSYPXKPeCwTPMHLVpEY1WBk2OmCk6JJrJYKdFhHALX1hI5DrY+AaIEg0q
	nZ10U6FU=
X-Gm-Gg: ASbGncvf1/C+E2YyApLLAQCxCE6ckEjLVS92IpWhHwSZizppk3H6s0Y+6Sjcei46Szy
	5RNLmL8vsE311LDEMuKJkdFbXvXNQN1LoQa1gA7XV2nJUHaKKJuXYnKrx4SQkBve5qD3gEroACG
	JUWf4VSTkIkOfd1VJuXK4tu9VhxF+nVv5I0a9H+JMK89W4sBdplgYVYgDzIMT+qKq6lrqWvxWbh
	zfyNAX6wMVc4PvJ1PwuQO+p3qNSczhzF92NrqxFELoJyFo9D/RaX/cIFlk3ilDkcxJZzruTvb2X
	iMWCBa1L/8xakGfj2e1BkcNhTY0VGudM6FE0mQIeFqNaEhgu89aHndtX6jHd2FUhSpxTS7Y1RTn
	VT2VaK78RNW5dQLXk62fLKibAh/vDRfq+JJW0fgnG8SPRGqcd1RO2jqanyjpQDWjJU/itn6/4Fj
	vTlOex/dMScyI4lLHlaSYvaCB8RM/ocrur/RCcQZkMLw38J7/C67vo+N/bs7saKA==
X-Google-Smtp-Source: AGHT+IFDLjDnybEN4w59EDgXM632XpZ0+Ep59h85EUSN3s78p16DjBaCHdoed04sLgWGSku8MpTrTA==
X-Received: by 2002:a05:600c:4f54:b0:477:776a:bfa1 with SMTP id 5b1f17b1804b1-4778febba10mr230525e9.38.1763050852562;
        Thu, 13 Nov 2025 08:20: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>
Subject: [PATCH for-4.19] mktarball: Use root/root for internal ownership
Date: Thu, 13 Nov 2025 16:20:48 +0000
Message-Id: <20251113162048.224485-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

... rather than leaking whomever created the tarball.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>

And backport to 4.17 as there's still one more release to do there.
---
 tools/misc/mktarball | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/misc/mktarball b/tools/misc/mktarball
index 42d543073cfc..15a4e0bfad62 100755
--- a/tools/misc/mktarball
+++ b/tools/misc/mktarball
@@ -49,6 +49,6 @@ git_archive_into $xen_root/tools/qemu-xen-traditional-dir-remote $tdir/xen-$desc
 
 git_archive_into $xen_root/extras/mini-os-remote $tdir/xen-$desc/extras/mini-os
 
-GZIP=-9v tar cz -f $xen_root/dist/xen-$desc.tar.gz -C $tdir xen-$desc
+GZIP=-9v tar cz -f $xen_root/dist/xen-$desc.tar.gz --owner 0 --group 0 -C $tdir xen-$desc
 
 echo "Source tarball in $xen_root/dist/xen-$desc.tar.gz"

base-commit: 3fb951af741ab2faa5a44d413fe1393cdeea05c4
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 16:32:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 16:32:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161894.1489716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJaFQ-00058z-QE; Thu, 13 Nov 2025 16:32:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161894.1489716; Thu, 13 Nov 2025 16:32:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJaFQ-00058s-NF; Thu, 13 Nov 2025 16:32:36 +0000
Received: by outflank-mailman (input) for mailman id 1161894;
 Thu, 13 Nov 2025 16:32: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJaFP-00058m-8M
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 16:32:35 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 58c81fcb-c0ae-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 17:32:29 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-b72dc0c15abso177304566b.1
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 08:32: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
 a640c23a62f3a-b734fa80cb6sm199876866b.7.2025.11.13.08.32.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 08:32: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: 58c81fcb-c0ae-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763051549; x=1763656349; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pO9PWYp2GxSvCVeZ6/i8fZoRm/iwcK6eNCraz+viP8s=;
        b=CxfGC+iwwH3y9r4zP3LH/C/lY2/Eevvn8i+jr8nQqwpwA2B6lqGhk+Tb5Zawruljn6
         mTFCIHK8nvWdJKU4cESYnVPlrhosmkqyeN3kx2i8bVeFVhAklo+dbEHrZO433CZNuhIY
         ew3OtxvDltXeKR+TwBcXorvCt3xFwVkpLhG9U2K55GRu+GViKNTp7xVj2QgcBV0yH3w2
         XMGrovKhv3ofphk0gQWNorewchjbg8DDc2x6Sg83zwlYqJAvBeJ3oBYy5IF5TZ53kh9F
         WEIflcDZG4MTQ2C/n4E1jwF47cQqQAKequTyoKEhJjNHrlnW6sHq4x9DZsXOUkkVlc9W
         3zTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763051549; x=1763656349;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pO9PWYp2GxSvCVeZ6/i8fZoRm/iwcK6eNCraz+viP8s=;
        b=P5Yc3LADgAcaFBfmbwWeYDeYCtayvMnb/A/O17fZuks20/OW5GBV/78lTnpsf29CaA
         hfbvvM7DfIFc2fYpkfcv1LNwOI/DnZfm4Qx/o2xnylk7E+hXhv0Zftr/feSaGV4zNz+6
         +Sc9j2Vp//FdjpA2MmngIKrvctxE1pr2EVQ6wohfaEVRjF5rD9chV1FKMQYraErWgwez
         fN9n6Xp35tNApb2HxjC0ereNVyFLbQUnXzFmwfmWl/Y1UXGLgoz5+xZrNuZfMMdOQdlj
         bQXiNQE1IbZcSr0+7E644800P/9zwgiAtEjRQUvdwdkGEp1bTDFmDEnX0bODvaM2P5vR
         vKgA==
X-Forwarded-Encrypted: i=1; AJvYcCXSxoMXL5XyQ9rEZB9BgoArfEXMyjl0HkvFIZRkvedtPOwCG1fUFK8lDvaGpyJup6BRTcCYJcQAJdc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwOjJ82yOpqc0WvLPgMkF/2mLZv9Cv8S+EUYPyaWojSCm1t8TWu
	vpsoVYZ07dqoZo5mlxkyXS8If7aOqvQKqUvr1vbZ5oycaaU2Vz7rdYpbQsBOnTJG4Q==
X-Gm-Gg: ASbGnctTaoU6P60xcYm+IFj1VZ9HQIRGoHREYFQ3RahhEzfl5IZaRiKxIxp930ULZIc
	MYOrCOt+5QepUB/ZF2sV/qdu2eRmBeCoydgRDWvp1ZEcuBPT561gq0neCfuHbUIGdexDYXocu3A
	TcN2++Uey+MuO01bE6m7ViMfEkT4mBulB1kOVDCaHF0Lr88G8eLZxUrrAYDqlZHwlHBsGdrQe97
	9jUIpOpmZBhUxc9nC5By1nQHTSs3nkz1ch5oN53Uv0/+r4UIFGm7fwhd8YOgBUS0WQDpG6CF5Ue
	3zUT9cxOcpwtTMB0/v7ZoIGJFVWslEND7tSonyUsJw19F/IqsIr/+NBXIMDOahedYo6veyDgZFe
	rgwwipA/xo0HnSSPZkuvBQIhQmwgphL2hgx8bpESsh4/Md8aQ1F8ZbdBjSj/Re7QS1w589Tq7TY
	y/+FEHDW0NjB2KSDXBZRRZL3H/HHyKu71dPle+oy0eORCdfpPae6oKsvyH04sJjJz0y3cmDuXsu
	no=
X-Google-Smtp-Source: AGHT+IFKkf4ufZs1iO69+Vbt4q6kxi4vMf/vehrzjgH7uy2I1+yaf5nFiUlxDM+ChMHR15txMjIqRQ==
X-Received: by 2002:a17:906:6a13:b0:b72:190d:b645 with SMTP id a640c23a62f3a-b7331aec3b2mr795052366b.57.1763051548932;
        Thu, 13 Nov 2025 08:32:28 -0800 (PST)
Message-ID: <7d81564c-d7c0-47f4-9f2c-bf4508a0a870@suse.com>
Date: Thu, 13 Nov 2025 17:32:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 01/18] xen/riscv: detect and initialize G-stage mode
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <2b21348b3300c741b276a47d5942e71d306846eb.1760974017.git.oleksii.kurochko@gmail.com>
 <8b204b21-80fb-408d-972e-8f183eb45dfc@suse.com>
 <6938d333-816d-49f8-9945-db9d4b17f1f1@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: <6938d333-816d-49f8-9945-db9d4b17f1f1@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.11.2025 17:18, Oleksii Kurochko wrote:
> On 11/6/25 2:43 PM, Jan Beulich wrote:
>> On 20.10.2025 17:57, Oleksii Kurochko wrote:
>>> Changes in V5:
>>>   - Add static and __initconst for local variable modes[] in
>>>     gstage_mode_detect().
>>>   - Change type for gstage_mode from 'unsigned long' to 'unsigned char'.
>>>   - Update the comment inisde defintion if modes[] variable in
>>>     gstage_mode_detect():
>>>     - Add information about Bare mode.
>>>     - Drop "a paged virtual-memory scheme described in Section 10.3" as it isn't
>>>       relevant here.
>>>   - Drop printing of function name when chosen G-stage mode message is printed.
>>>   - Drop the call of gstage_mode_detect() from start_xen(). It will be added into
>>>     p2m_init() when the latter will be introduced.
>> Well, thanks, but ...
>>
>>>   - Introduce pre_gstage_init().
>> ... the same comment that I gave before now applies here: This doesn't look to
>> belong directly in start_xen(). In x86'es terms I'd say this is a tiny part of
>> paging_init().
> 
> Does it only the question of function naming now?

Not just, no. My point is that you shouldn't pollute start_xen() with calls to
dozens of special-purpose functions. There wants to be one call dealing with
everything guest-mm related, I think.

> IMO, ideally it would be nice to have it in p2m_init(), but there is no a lot of
> sense to detect supported modes each time a domain is constructed. And it is the
> reason why I put directly to start_xen().

No per-domain function wants to be used for this, I agree. Hence why I pointed
you at x86'es paging_init().

>>> --- /dev/null
>>> +++ b/xen/arch/riscv/p2m.c
>>> @@ -0,0 +1,96 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +
>>> +#include <xen/init.h>
>>> +#include <xen/lib.h>
>>> +#include <xen/macros.h>
>>> +#include <xen/sections.h>
>>> +
>>> +#include <asm/csr.h>
>>> +#include <asm/flushtlb.h>
>>> +#include <asm/riscv_encoding.h>
>>> +
>>> +unsigned char __ro_after_init gstage_mode;
>>> +
>>> +static void __init gstage_mode_detect(void)
>>> +{
>>> +    static const struct {
>>> +        unsigned char mode;
>>> +        unsigned int paging_levels;
>>> +        const char name[8];
>>> +    } modes[] __initconst = {
>>> +        /*
>>> +         * Based on the RISC-V spec:
>>> +         *   Bare mode is always supported, regardless of SXLEN.
>>> +         *   When SXLEN=32, the only other valid setting for MODE is Sv32.
>>> +         *   When SXLEN=64, three paged virtual-memory schemes are defined:
>>> +         *   Sv39, Sv48, and Sv57.
>>> +         */
>>> +#ifdef CONFIG_RISCV_32
>>> +        { HGATP_MODE_SV32X4, 2, "Sv32x4" }
>>> +#else
>>> +        { HGATP_MODE_SV39X4, 3, "Sv39x4" },
>>> +        { HGATP_MODE_SV48X4, 4, "Sv48x4" },
>>> +        { HGATP_MODE_SV57X4, 5, "Sv57x4" },
>>> +#endif
>>> +    };
>>> +
>>> +    unsigned int mode_idx;
>>> +
>>> +    gstage_mode = HGATP_MODE_OFF;
>> Why is this not the variable's initializer?
> 
> Good point. It should be the variable's initializer.
> 
>>> +    for ( mode_idx = 0; mode_idx < ARRAY_SIZE(modes); mode_idx++ )
>>> +    {
>>> +        unsigned long mode = modes[mode_idx].mode;
>>> +
>>> +        csr_write(CSR_HGATP, MASK_INSR(mode, HGATP_MODE_MASK));
>>> +
>>> +        if ( MASK_EXTR(csr_read(CSR_HGATP), HGATP_MODE_MASK) == mode )
>>> +        {
>>> +            gstage_mode = mode;
>>> +            break;
>>> +        }
>>> +    }
>> I take it that using the first available mode is only transient. To support bigger
>> guests, you may need to pick 48x4 or even 57x4 no matter that 39x4 is available.
> 
> I considered traversing the|modes[]| array in the opposite order so that the largest
> mode would be checked first. However, I decided that 39x4 is sufficiently large and
> provides a good balance between the number of page tables and supported address
> space, at least for now.
> 
>> I wonder whether you wouldn't be better off recording all supported modes right
>> away.
> 
> What would be the use case for recording and storing all supported modes?
> For example, would it be used to indicate which mode is preferable for a guest
> domain via the device tree?

Why device tree? That's what's exposed to guests, isn't it? Here we talk about
what Xen uses to run guests. And that can vary from guest to guest.

> Also, Iâ€™d like to note that it probably doesnâ€™t make much sense to record all
> supported modes. If we traverse the|modes[]| array in the opposite orderâ€”checking
> |Sv57| firstâ€”then, according to the RISC-V specification:
> - Implementations that support Sv57 must also support Sv48.
> - Implementations that support Sv48 must also support Sv39.
> So if Sv57 is supported then lower modes are supported too. (except Sv32 for RV32)
> 
> Based on this, it seems reasonable to start checking from Sv57, right?

No. Bigger guests want running in 48x4, huge ones in 57x4 (each: if available),
and most ones in 39x4. It doesn't matter what direction you do the checks, you
want to know what you have available.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 16:33:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 16:33:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161905.1489725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJaGW-0005dR-3c; Thu, 13 Nov 2025 16:33:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161905.1489725; Thu, 13 Nov 2025 16:33: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 1vJaGW-0005dK-11; Thu, 13 Nov 2025 16:33:44 +0000
Received: by outflank-mailman (input) for mailman id 1161905;
 Thu, 13 Nov 2025 16:33:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJaGU-0005d1-JS
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 16:33:42 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 832f910d-c0ae-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 17:33:40 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-63b9da57cecso1536997a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 08:33: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
 4fb4d7f45d1cf-6433a4cbd18sm1737288a12.35.2025.11.13.08.33.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 08:33: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: 832f910d-c0ae-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763051620; x=1763656420; 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=CPobIyLR5ER/prJiVLVTFEyyhSEvwjFrinkdSwH5Daw=;
        b=HSx90eAePF3R8MDcY4lVAi4OTKq32JNKS/9OFBnhA7psVchRbV0js6araoew8AmrmW
         pLrC/NRFGuJeOHrBqleSzVe58mEuv+iLMo/PIPz3GY7s+XcGVy7gdx7DL0Sd9gjHt5nO
         j2O8AntV993CyBMV8itz5WoPN56oXnd8mcjC/KmVA/kKCFyPyv/REOL/v6Zl91wHfxq5
         0rfhriXI1KlAAZWXeL6eB7I8romCjpq2Nz9RMejg4YG3p3NvRb8wK2MKhDnBUxmS0Co9
         ZEjbzZ1yDky6sh7BPKLNcc0MGznTt2hAQUrGESR5PK7ajOcKwSS3KZBgU3hzm61h5xPS
         DC/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763051620; x=1763656420;
        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=CPobIyLR5ER/prJiVLVTFEyyhSEvwjFrinkdSwH5Daw=;
        b=Jt7Il6fhE++xYFWqdO5yqpk2IlrOWjg9Ek6Poo2+XlnU1VUSsfV+cg8czvittKTTma
         fzVq8WZVce61u5sk0gCdZ3YT56Yp4ADxoIFPH6x2WxoV0+vnsLcY1rbNMwdwvFAuHLk/
         HGoBs8sRFQ8IS4U6TH8E2WU1+dX5FH8k6Nn7nyKcRK5WdI1VzABpGscl4WchExJuIk5Z
         H99KC5ILNN/s1gPU0zVWxzfXbT0tXyWDDdZcMX9BQTjAmpSlGtzhApv+AEy4kFHTesbX
         VyM2S/Ly0Qir4ZpMGsNDNBnmWgha27HVNjbBA/KDSx3ANwXQi0cyacqH48Cdkav/p6Rc
         YC4A==
X-Gm-Message-State: AOJu0Ywg4T10EilKgcHNb2/a5C0xbHCDqZ4Q3s/UK4fsKTKTfRTbJks8
	QC63FIzgy/5s8N90ZxOLpUifsMb+hHD+jO8ml/0NZvTmNigwhhMGmmZes0YCo55h8wt12ICDaui
	s0TU=
X-Gm-Gg: ASbGncsyOYABuxRMwYMLFPS9+I9+kAlXFgDTbGvGc9yObZEY3ZwEIfVfsmlutDmYcLb
	KJu64yttTmrt/qIsjDKQsdCRGL1dMOEIL3yNAknLSswb5gw9ITnsBnyzV6MYMlsANpESMbbi3qq
	UFl8QTZ6uQ4QcBz0CpLqAAg0Ur7t0fnEkxMu3OecFZBntwK3yF+RxAORx/xzmpPsNVrf4XzJ+DR
	33FNGdLcFF5HrHYbxIa1I5+YdsexrHXGb51jvDnAhyZ5U7SbBmJ1szWjRnPNsOGqroZrtBIaOch
	eIyW9pNvu7JzScS1KWsPCRYZCjj40q7q1nYpewN9UwcCPycE/LgC9xrV1csWiBmLaBhQcEbiH9q
	hFqbpRVl8GdGAmbTbwkcZSKq2v2ITEw9n4A1/vMYexozuRuol7kEnfGUI3ukihTUsLN/+aeASSd
	f1AGoQy+w/HIWMNKZp60kXUS7kONP++2GeLUGjQDYrLvNQf+FncTO6AlPr581hKJqG5Vb2EZenD
	6M=
X-Google-Smtp-Source: AGHT+IF5YkhcelQBvEOqv7eSnsdw97EkwT1t8PDRAPyIdUAy6/y3JJ6BHd/zG1kh+pEZzIG50MTzxQ==
X-Received: by 2002:a05:6402:5351:20b0:641:2c5d:81a6 with SMTP id 4fb4d7f45d1cf-6431a577324mr5011445a12.33.1763051620136;
        Thu, 13 Nov 2025 08:33:40 -0800 (PST)
Message-ID: <71f80a69-a8b6-4836-a5ca-3ee291258401@suse.com>
Date: Thu, 13 Nov 2025 17:33:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.19] mktarball: Use root/root for internal ownership
To: Andrew Cooper <andrew.cooper3@citrix.com>
References: <20251113162048.224485-1-andrew.cooper3@citrix.com>
Content-Language: en-US
Cc: Xen-devel <xen-devel@lists.xenproject.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251113162048.224485-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 17:20, Andrew Cooper wrote:
> ... rather than leaking whomever created the tarball.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> 
> And backport to 4.17 as there's still one more release to do there.

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

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 16:49:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 16:49:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161920.1489735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJaVr-0007nU-CZ; Thu, 13 Nov 2025 16:49:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161920.1489735; Thu, 13 Nov 2025 16:49: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 1vJaVr-0007nN-9o; Thu, 13 Nov 2025 16:49:35 +0000
Received: by outflank-mailman (input) for mailman id 1161920;
 Thu, 13 Nov 2025 16: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJaVq-0007nH-LF
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 16:49:34 +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 bae840dc-c0b0-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 17:49:33 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b7355f6ef12so131088966b.3
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 08:49: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
 a640c23a62f3a-b734fad48dcsm197981266b.25.2025.11.13.08.49.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 08: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: bae840dc-c0b0-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763052573; x=1763657373; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mBDAtgpture23e+Y1P8BA79C3krkdcCq1Kelp+HYmI8=;
        b=crtz3I1iwEgYSZ+HWfH6vHAj3kcLOi12a2Rohia+1SQ49geCCpCqWKt88Z5hxPhErL
         MwZYvtvI+QBQxT0T9VlhmHCfgpWzlczaeKKjEZVevn0PdTZL6weczzfi/SDQGcNo+X78
         YJ15Li1nmq4uBfnrwqIhuAzt65NDc+IA+Mpu5zXHLgxvv1atgyIA16TYt0BtaOP8e4J3
         CeYS3xOXC0VQDivJ2VQ7SSfYGIgBVID1tMMaX5YBZZIQAmDHrYISWCgOHe5EMryAppba
         DEWyoB/js0VggMgYsedWSxzVjKurV8JcVJj0/PnjToTQRxlm7Ng/Ffu6aFdCZ1whTYQa
         tCig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763052573; x=1763657373;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mBDAtgpture23e+Y1P8BA79C3krkdcCq1Kelp+HYmI8=;
        b=dd0/dgOHfUkAClWcXtpnhc20Kow5TYhwpCgB81v0/t5A45Ei142D88Dw3VA5P7P3PO
         4QP+EE1LDEjE3RWST+wc7om+aD2mwkRw2H9LwuFx9P8d9Qv2gxV7iZdHa+wkSoLkmeBW
         A9bRijcgXtwUk5e2+q2P8V37biBhKTxM96IAkJ7ft3kyWDrxAeHrqI3G298tQxIgyJpd
         XS0De5DpW4+ibBptti1yL2E3mnBy4PPhNmGSCIC0FeA1J8PX1s1cJ8QLirt7bwQyJtf6
         1VUyEJM5lj/BqqdD/Kl08mp5P0BdMH28jZQluLYhKhzvVrCLqVAFD/QhZcGJjX4ukDFY
         1lfw==
X-Forwarded-Encrypted: i=1; AJvYcCWNzJqivLFZPLXHmEZq2fdvlZTAZomXeqzT7y9vZbfUdiWrm8sJKjuQYFfTHgql2J59i+WNBAvDFUU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwxoX+XyBxapnRrvLs9d39hN+pdHCu+ZFMfszuIEUSLf1aOZ0Xx
	5TOw4rHtAO9Nj01KvjuaE8TkfVs6wM7LRN4cLCnv+IREBX4F/sKB2ows3/+PDjhj5Q==
X-Gm-Gg: ASbGnct9cEwSNzr93nfLoesKn8cfw6xHh9kAri3vYs/wZYM99YSk17haU9GRsrfaKwf
	Bim/qFy867k2bZzD4HgBfmm8mm5d2QcEhW+HOY0l/f+dGAGK2gd41Y+fkLnRotZH8Rjmv3EWzJ8
	4RdPRPhsoGde7NAWP8v1GKZoGaw/V9hshxmRyxxHfxGB16hD/Olanj2zoDmi5NrlKtonO1SXxiC
	WGYO6pjFopMEdgbhXlncnUBKy/Q79OIbqlLBSNnpeLlbGf2dzn+5y3zANbDyw6xJUpHT8SGGV5v
	Tlkg4VGX4tDVJ3Mkl3Ua2XWMcBobJdYM4GM6B32m9RUtuImBM4o16gOHF6yDAfiKDup5Wx9ArRV
	Eyyy+Wtz2c7Aw5IxQCWRYLzAgBE6rX/byS/Uq+MFSHhXCXz1eFCFK9j1O37wnajgNZwbgJbJPOT
	fuF38eM/yp/AbJ7T3bqPxyDV4WYU6JVDaLCenesaC82rIW1vkdwghla15L/BafPXavxUTZl30us
	rA=
X-Google-Smtp-Source: AGHT+IFCk4ytL6k9q2qaDXrS1Fn5Xzvl3Hi/FRCSWYJ8OQowGcUy+gIomxu67s3q4AOGY8fYdGxhXA==
X-Received: by 2002:a17:907:6e93:b0:b72:9d0b:defa with SMTP id a640c23a62f3a-b7331ab3429mr794732266b.41.1763052572479;
        Thu, 13 Nov 2025 08:49:32 -0800 (PST)
Message-ID: <f5934f86-7a93-4184-a807-86fc6e18157a@suse.com>
Date: Thu, 13 Nov 2025 17:49:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] build: add new make pattern for making file from
 file.src
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251111161959.13667-1-jgross@suse.com>
 <20251111161959.13667-3-jgross@suse.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251111161959.13667-3-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2025 17:19, Juergen Gross wrote:
> --- a/Config.mk
> +++ b/Config.mk
> @@ -159,6 +159,20 @@ define move-if-changed
>  	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
>  endef
>  
> +PATH_FILES := Paths
> +INC_FILES := $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
> +
> +include $(INC_FILES)
> +
> +BUILD_MAKE_VARS := $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).mk.in))
> +
> +define apply-build-vars
> +	sed $(foreach v, $(BUILD_MAKE_VARS), -e 's#@$(v)@#$($(v))#g') <$< >$@
> +endef
> +
> +%:: %.src
> +	$(apply-build-vars)

I'm not convinced of having this here, rather than in less central places (say
under tools/ and docs/). I'm also not sure I really understand why it needs to
be .src - can't we stick to .in, enumerating the specific files that want
generating this way (thus avoiding accidental attempts to re-generate files
which need generating a different way)?

Also - why the double colon here?

(Maybe I figure answers to these questions as I look at subsequent patches.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 16:59:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 16:59:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161935.1489746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJafF-0001Lq-Cm; Thu, 13 Nov 2025 16:59:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161935.1489746; Thu, 13 Nov 2025 16:59: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 1vJafF-0001Lj-9T; Thu, 13 Nov 2025 16:59:17 +0000
Received: by outflank-mailman (input) for mailman id 1161935;
 Thu, 13 Nov 2025 16:59: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJafD-0001LA-LJ
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 16:59:15 +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 14d7f34d-c0b2-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 17:59:13 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b735b7326e5so94324066b.0
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 08:59: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
 a640c23a62f3a-b734fb12d55sm198128066b.33.2025.11.13.08.59.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 08:59: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: 14d7f34d-c0b2-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763053153; x=1763657953; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=o0VvNcjxBxjFprhtCWFDFi8shOLZctGLzT/2KpVDLGE=;
        b=TCcPDZ6vcZIusAkAdx5mw6x3yeMkT8bRd86IHG2jymrjLCHeeQXDuAScIyalHdmIqG
         tzYX7juHVkvWeMWgNznhruvJD+z1BTsMx7spQ+CqsDKBWj7hJ8uxR26vNng1NbmSQyip
         2HpFL0MPXEtlZ+KIdzWwnt4zNUpD5CeCnr1dfZtcdT/ZGMNLSdaNJnuEOLhrfRJP5gnj
         koi9BU46gnkiVx2Ak3SDuOzQWSh0Nagal3iAN1R7oOmAq+rAubQz6xBRuU9XjpFNs/t8
         /NRYfy58ILdDreaUtWezfvenhiDLnWiHCg+Tt5x4VMOkZvRdzbXJeUq94bTvLqKlbFQm
         WtJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763053153; x=1763657953;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=o0VvNcjxBxjFprhtCWFDFi8shOLZctGLzT/2KpVDLGE=;
        b=galc5jFblW+Kga4xaLMamAsqVUjz28uvpzsGub+sw9OPwxuc13/U2mspzxheGWckhA
         DNAYnXX0nOyf4Pp86owgDN3+UfiUfRIl+6iGtszqosNCrncPPSpd18q5jQcLqQkzfAOR
         bJPG9/WjaD14WUuEyUCsDk31PuqjX9dPjgod5g4oEEInZOhaqzpanGwmy9kVRlfLlAJQ
         tAqzFxOphQ+9fpmMt5iYmfzZAZV4U1JRu5qES1xhDZmyB+OPT1hHXpCtzAJf3hApRG1F
         pRlPFt6CyLNXLJNLU0dLLg52z6tQPDQRQX5b0+qMOdbRFmOOX8Syujdt+Oc17C4Nt0aq
         FBRg==
X-Forwarded-Encrypted: i=1; AJvYcCW2PFWseg++e5VER3lvUvdWdbmb9HIwsiRtadiydhyMzhelWFLlZ9QtVRrFzvTJEqKklmFC9bOdScM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YysrXH1R+Ho86NlTbaFi4QvyiqGF9JdHGa0bssQT+zcGQSzXRWF
	D04fodeQKgmicYTvn2WKs3YmEALmQioOPfNnIdefUGSf9rCDnv/sbxjGOyQYDNBi0Q==
X-Gm-Gg: ASbGncvXC1UTLOQGXatLkqRwU/FlFca52RDINncbNERdsbx9OVcFil+JXEwnvEibzI1
	DskRlonCO7LuIuOsEODp/VyqUYmzYFR1Lo33Du34aQ+Bvqwxa6ucUGSluT4ZKHYOV+8IcsQUROd
	5u/ErMxX8cTeDeMu4p86tCAatXXSOK9VMXRh424NZ6Q23hlfa45u0k07MOPGd72jS7QC04hdFdy
	KDPAplQNA6j1t1H5TD0MIbk/v8R1JZMAyzxfAW21JXJvShqAPHeI99pO1ds6MOvjYb/OeBfr/kE
	KhblspQB5Ugun28qVxz3WAmdpPmFkPLg0tXei06L5dDhatpHB2u9HadPK0ID3LI6lRhY2kEcmWX
	Ndae96sXFH7ShrgubR40SchgBkoRRt1DaV3NcuY3CanYkQGBpEcObRXwBGcl8NAeMLrKYFsG61C
	KGbr8Ztl/S1YPL/8Q0pWWzX0VfXk2vTT17T7xvqNtoD1s1DRNbIEv+KmcIYJnPZqrgbN1QM8bLL
	TY=
X-Google-Smtp-Source: AGHT+IEuGV17EDvS6PBAMX5eK7iMTh0aUw4jnzgyk+qZxjlwg/USi1DVtmERL0eFGBNB2+EIVqaVyw==
X-Received: by 2002:a17:907:1c8e:b0:b73:2fdf:21f8 with SMTP id a640c23a62f3a-b73480bc7d1mr423318266b.7.1763053153004;
        Thu, 13 Nov 2025 08:59:13 -0800 (PST)
Message-ID: <4cfc4f5b-1d7e-4f69-9bfd-99ac0f65ac97@suse.com>
Date: Thu, 13 Nov 2025 17:59:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/5] config: remove unused paths from config/Paths.mk.in
To: Juergen Gross <jgross@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20251111161959.13667-1-jgross@suse.com>
 <20251111161959.13667-5-jgross@suse.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251111161959.13667-5-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.11.2025 17:19, Juergen Gross wrote:
> --- a/config/Paths.mk.in
> +++ b/config/Paths.mk.in
> @@ -20,10 +20,7 @@ libexecdir               := @libexecdir@
>  datarootdir              := @datarootdir@
>  mandir                   := @mandir@
>  docdir                   := @docdir@
> -dvidir                   := @dvidir@
>  htmldir                  := @htmldir@
> -pdfdir                   := @pdfdir@

Question is whether we're mistakenly not respecting in particular this one,
for the *.pdf we create. For all the others I agree there's no (present or
potential) use. I notice though that docs/Makefile cleans e.g. *.dvi
nevertheless.

Jan

> -psdir                    := @psdir@
>  includedir               := @includedir@
>  localstatedir            := @localstatedir@
>  sysconfdir               := @sysconfdir@
> @@ -34,8 +31,6 @@ LIBEXEC_LIB              := @LIBEXEC_LIB@
>  LIBEXEC_INC              := @LIBEXEC_INC@
>  
>  SHAREDIR                 := @SHAREDIR@
> -MAN1DIR                  := $(mandir)/man1
> -MAN8DIR                  := $(mandir)/man8
>  
>  XEN_RUN_DIR              := @XEN_RUN_DIR@
>  XEN_LOG_DIR              := @XEN_LOG_DIR@



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 17:02:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 17:02:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161948.1489755 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJaiF-0002sB-PX; Thu, 13 Nov 2025 17:02:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161948.1489755; Thu, 13 Nov 2025 17:02:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJaiF-0002s4-MT; Thu, 13 Nov 2025 17:02:23 +0000
Received: by outflank-mailman (input) for mailman id 1161948;
 Thu, 13 Nov 2025 17:02: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=HFQP=5V=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJaiD-0002ry-VO
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 17:02:21 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 83c31063-c0b2-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 18:02:19 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b6d402422c2so162939466b.2
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 09:02: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
 a640c23a62f3a-b734fda8a86sm194019366b.52.2025.11.13.09.02.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 09:02: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: 83c31063-c0b2-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763053339; x=1763658139; 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=Ie1q//RtipQx+cOa4gaCmoTXh04HnvyXTLEd6YBSnOY=;
        b=LCbqmVZoxmgJbSLcjVJxzKrun33Kkv+nb38ua5iErYGiAc8ZWZpNisZ6ibCfqgGwhX
         GDfYC3wzJ+zcu6O1DUCVVxwbxsUICNook767s3XqdTtfjMjZFprzY1kVTyNCOq3RgMHE
         feOkt9LXpaYlAOxnHYmmLli0nv7LL3BvcUnXLW2lds46kZbcdugZCU+I4s7wn9yGNJvb
         epeD6zfiA6s8QgYV6KGpBWtXeSB/DxkSDyxSeK6C4j3Yr6zaSska2pzEVpJZv7HziPkS
         RtG+Gnxz1lhfNeq7mArcgO05L20zHconAx6Ih09R+MsNFXd8WWYIJuedUvI6TMrgvLZ7
         IO8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763053339; x=1763658139;
        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=Ie1q//RtipQx+cOa4gaCmoTXh04HnvyXTLEd6YBSnOY=;
        b=OvVYgtcFF+2cWZCg9KwtEr0T+ItXk7y+y3JyGLG5ksDAJXy5m+XlqDmCIP5Oa7hZHy
         vBfYhZMeNEmHTa8a3fP72MlJXec17H2qStANiGwps7WswwFgKIa4wxqhTxb5+qh4AYZM
         ZztECuFL4Cpv0Viot0g7V9CH2U+iySfIotg11OI8DD50w2tji4NTEPL6qq6R4bLDIP1S
         M7C2kLaieXMfwFqysd1+szy8rf0GCikJDCX/4nmvI+Lz3qrrgk+L7Cm1irpD2YBzdQBn
         xZJ8RVQNpxfLZzyDWjH4Ba2b9hLvO2MBPNl4zda4LqPCtVhh32gQRWXVL8Jbpi5aLxr3
         XOUQ==
X-Forwarded-Encrypted: i=1; AJvYcCVFG0yF4r70CjETB7nI14U3fK+rdcVSDFlc44ka+DDQ5yZw2L6WhNpMH5mXA+EsdYIrfeU/plUxNV8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzHogVTgJu/FJrR7C70q/Peou3W50LR+aQ5NCtES5doLLlPjUWM
	pLKiHKEQ8UqaqLZA3leLPRfdqO06N2nda65jg1TZprnomo14N5v3bNsqrmoTuNnaYw==
X-Gm-Gg: ASbGncsgNNMe35eFmSZg4EPueIdsnaIKYjAhAhisuniLehj9DXteSmfQEPYiTuXl8Ja
	1jtbVukWB7PvDnKU2/cjAReZOnAxKa2MHv6ELxi1EZz/6Ns/dxI0vo1O+DIc16Kw/Fnk1hO9d8e
	jgGJNyYeYrEgTf3I38iI15sC76VmQLZtnZoSGQgAWYyYwTTw6oVLyHMvO+K4t1EuD9uHhBZ3/Jm
	vt0ZfAz/oT9iXWlNPiJXC1OiaKGhbD3TgDfDHWLmOH9oTKtPQS0QQ7G4AeQJIJ63JkrKhRUFErS
	wUyWghgn8NblR1/QdTcrFHUL3suG++19hQGYWElyvj88NqNE3kFhdnfj5N83jklWRad6noCzm2+
	B7G1suIZkRkzVDbi1XLDcM876GJxbrL/2ebgTfZYXI16ifVwJQzCtH8zs08mpjjhuw5EzGn897J
	mEOLwOCF2pAdCuMVr8LjBEWm4MLQszNpt4wXKG0WHhGtzSakXNYvD9qmzhMxuxeFI1
X-Google-Smtp-Source: AGHT+IF6evj/9e6K9SSXRYny56NQ/PHCpbaX6+Sh4GXyOTHqg7O009fXPrtMCuawFA/urCgEkACeyg==
X-Received: by 2002:a17:907:6d0d:b0:b60:18d5:4293 with SMTP id a640c23a62f3a-b733196076amr764646066b.9.1763053339054;
        Thu, 13 Nov 2025 09:02:19 -0800 (PST)
Message-ID: <5bb5c2d8-53bd-4669-9238-6ae8ab8d349c@suse.com>
Date: Thu, 13 Nov 2025 18:02:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/5] config: remove unused paths from config/Paths.mk.in
From: Jan Beulich <jbeulich@suse.com>
To: Juergen Gross <jgross@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20251111161959.13667-1-jgross@suse.com>
 <20251111161959.13667-5-jgross@suse.com>
 <4cfc4f5b-1d7e-4f69-9bfd-99ac0f65ac97@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: <4cfc4f5b-1d7e-4f69-9bfd-99ac0f65ac97@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 17:59, Jan Beulich wrote:
> On 11.11.2025 17:19, Juergen Gross wrote:
>> --- a/config/Paths.mk.in
>> +++ b/config/Paths.mk.in
>> @@ -20,10 +20,7 @@ libexecdir               := @libexecdir@
>>  datarootdir              := @datarootdir@
>>  mandir                   := @mandir@
>>  docdir                   := @docdir@
>> -dvidir                   := @dvidir@
>>  htmldir                  := @htmldir@
>> -pdfdir                   := @pdfdir@
> 
> Question is whether we're mistakenly not respecting in particular this one,
> for the *.pdf we create. For all the others I agree there's no (present or
> potential) use. I notice though that docs/Makefile cleans e.g. *.dvi
> nevertheless.

Actually, I can't spot a use of htmldir either, when likely we should respect
that one, too.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 17:24:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 17:24:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161970.1489779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJb3f-0006aj-IY; Thu, 13 Nov 2025 17:24:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161970.1489779; Thu, 13 Nov 2025 17:24: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 1vJb3f-0006ac-EX; Thu, 13 Nov 2025 17:24:31 +0000
Received: by outflank-mailman (input) for mailman id 1161970;
 Thu, 13 Nov 2025 17:24: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=FGOC=5V=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vJb3d-0006aW-S7
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 17:24: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 97e9a101-c0b5-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 18:24:23 +0100 (CET)
Received: from DM6PR03MB5227.namprd03.prod.outlook.com (2603:10b6:5:247::22)
 by MN2PR03MB5279.namprd03.prod.outlook.com (2603:10b6:208:1ee::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Thu, 13 Nov
 2025 17:24:19 +0000
Received: from DM6PR03MB5227.namprd03.prod.outlook.com
 ([fe80::c9a0:563d:c344:aec2]) by DM6PR03MB5227.namprd03.prod.outlook.com
 ([fe80::c9a0:563d:c344:aec2%5]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 17: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: 97e9a101-c0b5-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FfscAavuZgOzJtuj5GmhSMbRjAiiAAXuue9j9b6HrY5XIGlzx9AMgkn3gIHoDurgd/CvpWZJ2UDHeWOPwvk90kPJhEOpvPwKrtpbfSV34ttDqU/9lB6DrR40d5xQzane5GpCKvrKOmVRlKmq+nbvyHV28MHYTb3i1G4lyF7UrBYKYL18oNMwqpVi4hNSp47c9zq0JpxOMAFtaQ98ljqLeqDJS5mcmxhD1P0DLP1nt3NKM1tuXCLVLkTDrEiyTX2e8BGrCshRO+QJXsC59tyN23J7IUMNSGRtBykMTGnzi+NzrWbmU683kmAJ2SkuTOQYy7UlUoCuTN6J/AqUX++b/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=omjgH2/Ytr/JMzgk432l+AEgHftGK54jZmXwcwMUGj8=;
 b=wpndd5HDbvvONqta1VXaSiIug6IZBYX5aR2odNfrvAuunLCfcsaefXEOydaIFU5gbjBLX0XdKLMKxc5Qne5EVcFKQH/vehHBQ5chh3OJmTwCuIkzn487ryaTrCDlmXGtGeAyBg7l1skF9xtKHCcvSBp8HdGyYFlYZEtGrJ/II0nCv0W2NJxFWyH4VRnobsM1XTx3ylvMWvRfwwNL5E3UBO7JqjhEwJF8rCxwcvZzSn3Uvv4EKeNk4bymhgHpEYm/pYP62GpX3LfsQKRi8/JhR6FY/Hr1NeSdJhpTQA62OgkWvuPLhqxDxQKazJbvPFHnmqbJUK+krHvqUwnCH1eKtw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=omjgH2/Ytr/JMzgk432l+AEgHftGK54jZmXwcwMUGj8=;
 b=GfO1YtbdBKXxptCtkf3OneqDIbcztYg60PzWati0eznaRlB/7p2AUTB+YM9xmFfE34pqa3wWWshJT+g1AZnW+oVTRKoFKfbu2PY6aTSn6XTwY2ASakyqt/S+CO7BpCBXktjCR1kBHkAO7Si1AUuDDznBkVKRHxQ8HlVdKeKy1ew=
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>,
	Paul Durrant <paul@xen.org>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH] x86/viridian: use hv_timer_message_payload struct
Date: Thu, 13 Nov 2025 18:24:13 +0100
Message-ID: <20251113172413.87938-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: MA3P292CA0025.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::15) To DM6PR03MB5227.namprd03.prod.outlook.com
 (2603:10b6:5:247::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM6PR03MB5227:EE_|MN2PR03MB5279:EE_
X-MS-Office365-Filtering-Correlation-Id: c92b1fa0-133f-454a-9fd9-08de22d97a87
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?SStYMTVmb1dTeWdSMXJMVFlrTTlSOE44R0FSK0ZMTnBvUUV2TThFdlh1bEFz?=
 =?utf-8?B?bmcxaStZdnJzRitsYnJZVEtISlR1SndidWc0K0s0MUNkUFVGRXhsaUNyeXJL?=
 =?utf-8?B?TVN1cXVYTnpKMlRQUnBWSC9JbmFtWjVrSzl6aGQ3d3VrT3BhOVZwV1JRVW5T?=
 =?utf-8?B?YW9JVjQxZmhvMEtBYVBBdnM1Y0VMSFc4UkduMHdFbEFGQjd6bEV0ZFFYa3Rt?=
 =?utf-8?B?TzFhdk9zR2FvMUxJT2kwRmNXNzlodFpEUlhiaWRJSFZEaURJcDljdFJMNEwx?=
 =?utf-8?B?aXdhTlU3UzlkNGRiZWludWJWU3hxQ3BWblN1UktYZ2w0bk9PWnlYcUxERXNh?=
 =?utf-8?B?REo5SlViU2ZHOFpvb3B1NlRWS0k1YnUwSGZGNjJrMkg5eVlHV24xRmQzODFG?=
 =?utf-8?B?RzJ5alVudUtFZCt4ZC82clovNThvd3VGb3JhWlpOSk1RZXI2TWh3YmF0Yy9U?=
 =?utf-8?B?Tm8wQnBNRnhoa01FVjUvcUVGdk1qMTJwSWZ3eEdheDQwbnNzNHFueGU5L1Ar?=
 =?utf-8?B?WFQ1d25TV25SQzlVUmRkUndBdVpza1RsK1l1NWJhYmZ1c2J0dUp2bVRHdHFD?=
 =?utf-8?B?eHBSd0c3U1ZCSEhZSGpqSTBtaDlBVVRsQ2MxVk1lNVpNVDdYYkI2MVk2ZWM0?=
 =?utf-8?B?VHdoOXovTnhOSHc2V1lEcVJCbDNKeksxZWN2eXZXeFVNb1YxVnBUbWhZbEVx?=
 =?utf-8?B?NzVuVHRSNlFGamhFQlAwanhSVG1BZzJoUkc0UWxXVDRsNmg1M2xXNlR5UXlw?=
 =?utf-8?B?Nm9iZ2pId3pkeitBeE5Pa2lzTHNWWUVNb2ZVbkFZeDF5WHJ2bGJIaFFPcGxU?=
 =?utf-8?B?TGM3SVo3QmJCRG4vUTNtdWF3ZlgxMVBCQ1ZWZUNSRVIxeDByYm11Y2E4ZEJD?=
 =?utf-8?B?eWhvSG9ucWR3YXJGdjZtQXh2eUlXZCtlS0JGRFhRdkUrSUlOZ0FBdlcyeENI?=
 =?utf-8?B?aW1CQVpnaHZMSUJNTDhtWjQrWXhmSmtua2dkb1J6NnB6WW5jY2c2OEQ5bXB1?=
 =?utf-8?B?TVRBUE5NUnV1STFhS1Fnd1ZxdldXeDdjdmdicGJjMnd6YnFaZ2NxWDBpR21S?=
 =?utf-8?B?bkxoalVvSTZXMGNQUnpBRml5Qk1Mb1dmR1dXNFl5R1BOSUtVUzBkeU9URzFY?=
 =?utf-8?B?S1hxVDY5SHJBR29keTN0OEpGV2h5VVFaak9QQlRVOWtzUEsycEJtQUNudE16?=
 =?utf-8?B?dm14ZWNiVEdhZ05NZlBVMm51ZG1jL1B0K1BYL2xlNkNmNHIyRjZZMFh6dGVz?=
 =?utf-8?B?MXRMeUlGQW1YVy8wVHFTcUR0Y3pFb0J0RDk0UXFCaUdYVVBxR1ZIUSsySlk4?=
 =?utf-8?B?TXU4RUx3V3g5ZDRxUVR3ZUZBSC91bVRXVUMyOHBJZ0FoUnZycTUyYkwvL3Zp?=
 =?utf-8?B?WUovVGxvOFp4QUNNR1Yzb3d1bFZySUdlUHRVMVR4MUoySjMxT3hKWDUzSWpy?=
 =?utf-8?B?VFBmMFdsNy9oVzJKWDRjUTRXZURsYmFRc1hvVXJ2YTNNZzRWT0ExdDhoVTVT?=
 =?utf-8?B?aEtKdWZtR0hqUTZCY1VjVUR5L1N2QXRUY1RicnBkUHFFcHplc2VpVlIrMXZR?=
 =?utf-8?B?dDliWnQraVhJZy91UWdIQTRQYWl3dUxqejBWNTlaSmhCSGtNOXdKTlFoWUVs?=
 =?utf-8?B?NUlzY1RRMDhpam1aTGlCejhvMjdYMnhad2JBdUxSQldQOFNtTHEwQjRuRERE?=
 =?utf-8?B?YkhUNU1nWTE4Qlo4R2R4QmZmQkpBaGRUdXBybW9UQmdsRFBwc2pSTGFqMFM0?=
 =?utf-8?B?YUF4L3MvTTMyRldLNjdWblhuVFh0dmlERVJ4SDBsWXpFblpSU25Jb09JbkVU?=
 =?utf-8?B?WFpyZCtqWlpkZC81MEQ1NVNVN2R5ZGwwRlZQVXdjOXdOWjZHSGF0RjBXRlBk?=
 =?utf-8?B?anA1bFBiTkRCRmd5YUtMbDNFRUZLSlRWaG1zWEZLa2hZTWpPaG1FcTcvbGMy?=
 =?utf-8?Q?u5t34YrfOL2xd9wXhbIEanNj1ybytYsP?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR03MB5227.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?TTZrckhRek5BWHQwK3MyQ3ZVZ2xiNXBEMk0xOTkyQUZqK2x1U3JFb2Z0UG5j?=
 =?utf-8?B?NjdtU01aZTJaRVRyL2hMeUd5Wnc3cDFoOWV2aWw3NXZ2Z01EVkx6ZStlL1Bx?=
 =?utf-8?B?SXBJZVZ5ODdQM2IydEJwajVHdTRSeStIU21uRXd5SGppOHdOdXlFL0VGZjFs?=
 =?utf-8?B?SisxcVNsU3NaR3ZlUTFQVlpVRXNoeHc1dnRZdFBpZTk2cUY1TUpRbUxWaGpM?=
 =?utf-8?B?M3hPeXdXeU9va09MNkRuTzVFOUovRWNNM2ZOVmlya09XQ3Q4d1AyUXJiVUs4?=
 =?utf-8?B?YzdIZWxYOWFBTXk1V1lKUHJlZWJqSUF2SWxVT3dNMTcyVDlCOWkrait2RXYv?=
 =?utf-8?B?dHgvOS96K1lNNXk4NDI2SjFrelBYcTZlRE5Ock5YRHdNdDRQWjVSWlVxTEYw?=
 =?utf-8?B?L040YVZRUjVCTm5yNndCRHRlQXppdkUvYzFMRU5UQWZPaXAyTWZleTEweHNh?=
 =?utf-8?B?eVp5dDMvTTBRRWZYVjBVOEt4RTI2MVFlN29KQVlPdUFIWEVrc3owcGV6UEJJ?=
 =?utf-8?B?WXVpL2FFWno1YWVueEhveTh3cTVGVjZ2ZHcwY3hpLzhsTjNHN1R2VHRLUHRG?=
 =?utf-8?B?ZlRnckpHRDU1MFZtN3RjUlBYalo5MHk3L3VzN25hOXNXTGJ1V1FnQTlqUm1h?=
 =?utf-8?B?SDlKU1A4b2ozMFlxRkhHTUJpL1JpYXdCR2hzYXdCM1RTVXpSOEpIVk9aTVNp?=
 =?utf-8?B?c0w5VTliOER4TU55TG9zaER4RnRrYU9mVkR5QXRCTi9BQjByS3UyYXp2RVNK?=
 =?utf-8?B?ZjRCbWdkbklnSENPaFVBQjZmaVY1UVViSjRBbjRMdXpKZ3ZGRi81K1dpMWIx?=
 =?utf-8?B?ZUVLVmRIaEtUR1lqOUNyM1FzTEVUWkVBc3BhVWkrZHNETDFCeDVEWHBuZHpn?=
 =?utf-8?B?bktMWnBISGlVMy9ja2RSNFQwVmlSem4rLzhvNzFqZlpncjRHOHN4Wk83UEJp?=
 =?utf-8?B?bzRtYlZ5Ly9ESkV6VGx1cEwvSlI0cDQ0aUJYd29uVlRxWjNaQWNKSFJUUnlo?=
 =?utf-8?B?V0U1MEJtYWk2b2RpeXloOGdRQy8vdnZ3aWZPQmNYMzF6RDQ3bEJ1TWRkRk1Z?=
 =?utf-8?B?VHZSaUFyQWZ2VTRCcldPbEN0Y1FnZG5HVjZUU2NVRzQvZC9QZVJGK3dhTHV0?=
 =?utf-8?B?bWI1dzhvSUJqUUNtb0swbmovM3ZZaGVjNENQaFdmK2Y1eVM1QjZGUFEwYk9l?=
 =?utf-8?B?RENBa3RkL05yYUVpNGhSWDIreUNNVWM3dzBXSnZiNk9Dc3NWQVdXVFpoNEJL?=
 =?utf-8?B?Um9wbkJ6QjU1MEhZUDEzcFd1TDN1SHBxRUlIaEEwY251WnJaUHlMY3o2THpw?=
 =?utf-8?B?ZllvMWFOd0MvRE9lYXRtSHhoK3E5alFZOXlwNjJrS3d6WE5INjB4SkRJeFVE?=
 =?utf-8?B?cDVOVzhranI5a3E4cU0vUWx4MHdnZWQ1L0RxQW4wQ0JPakRTVjZ2aVBpdGdD?=
 =?utf-8?B?STJSUDNrc0ZyUzZHMmVnWm1XcUxmSEpyYWN6OWtKc1BxeXl2b2tqTU9LZloy?=
 =?utf-8?B?ZUJvTmsxMyt1UUl3dHN2ajUzcnpOZnQrTkdEN3R5SDc4bnlEVzhhd05ZS0FI?=
 =?utf-8?B?a0JNVURuRjZqRGgrdlo3QmRVOURGbXp0UlF5VUQ4RHNqTkJLSU5MclFHbWNZ?=
 =?utf-8?B?UGVTRkxmNXhkcC9iYlorYm83alY0cHRSMEhRdndrSmFNTUg0MlkyNVlZMERU?=
 =?utf-8?B?SXpBMHA5NThnb3o0M2pkb2t3bUU4dEZudGZUR0pzNGZqUTBXUm5RWStqd3Bi?=
 =?utf-8?B?SVd5dDREbjBwemFKRGlBU1JFYlpITVF5Vm5nM2dtWjVtakMzRzZ0R3pOVGs0?=
 =?utf-8?B?b3RQV3VPd0hZTHVlY0VHNDJ4RVZnc2NjUUlqLzl5NnlWMFo5T0JJYnRpWnNn?=
 =?utf-8?B?d2I5TGVIRHVONUorTTEwYnBUajlPRjdKdnM4YjFqS2M3N3hUeXRlTmYzY2ZJ?=
 =?utf-8?B?eGkyOXI3N3hzMTZYRW95RmtDUURySGlCN1l6cTVBdktmZkdxUDBibGcwNjAw?=
 =?utf-8?B?WGJvSmhNeENwSnpjcWlMNHQ3TXdyZHJjSUM3bm5hdFhyaCszS2drZHZpUTdB?=
 =?utf-8?B?clFIKzRmUXRIckNBc0xQR1dsZlFSU1FITU9ISWR4WnYwWFBhWi94djFyRU1Z?=
 =?utf-8?Q?BxtwQJbW3tgK41s6tva/gOPf2?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c92b1fa0-133f-454a-9fd9-08de22d97a87
X-MS-Exchange-CrossTenant-AuthSource: DM6PR03MB5227.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 17:24:19.4856
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: B972H5OYn4z3JFyAq4TWuw+SbBkU+xXOlBSpuZqYbVHtPu7b9qCKAYVSqPdDYCTwM+zJ9YaDmxHdhVxgaqSYFQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5279

Instead of open-coding the struct type in
viridian_synic_deliver_timer_msg().  Additionally expand the union field
in hv_message struct to contain the timer payload, this way the memcpy in
viridian_synic_deliver_timer_msg() can be replaced with a struct assign.

No functional change intended.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/hvm/viridian/synic.c            | 17 ++++++----------
 xen/arch/x86/include/asm/guest/hyperv-tlfs.h | 21 ++++++++++----------
 2 files changed, 17 insertions(+), 21 deletions(-)

diff --git a/xen/arch/x86/hvm/viridian/synic.c b/xen/arch/x86/hvm/viridian/synic.c
index e6cba7548f1b..6d7b6bd0eda2 100644
--- a/xen/arch/x86/hvm/viridian/synic.c
+++ b/xen/arch/x86/hvm/viridian/synic.c
@@ -327,15 +327,10 @@ bool viridian_synic_deliver_timer_msg(struct vcpu *v, unsigned int sintx,
     struct viridian_vcpu *vv = v->arch.hvm.viridian;
     const union hv_synic_sint *vs = &vv->sint[sintx];
     struct hv_message *msg = vv->simp.ptr;
-    struct {
-        uint32_t TimerIndex;
-        uint32_t Reserved;
-        uint64_t ExpirationTime;
-        uint64_t DeliveryTime;
-    } payload = {
-        .TimerIndex = index,
-        .ExpirationTime = expiration,
-        .DeliveryTime = delivery,
+    const struct hv_timer_message_payload payload = {
+        .timer_index = index,
+        .expiration_time = expiration,
+        .delivery_time = delivery,
     };
 
     /* Don't assume SIM page to be mapped. */
@@ -359,8 +354,8 @@ bool viridian_synic_deliver_timer_msg(struct vcpu *v, unsigned int sintx,
     msg->header.message_flags.msg_pending = 0;
     msg->header.payload_size = sizeof(payload);
 
-    BUILD_BUG_ON(sizeof(payload) > sizeof(msg->u.payload));
-    memcpy(msg->u.payload, &payload, sizeof(payload));
+    BUILD_BUG_ON(sizeof(msg->payload.timer) > sizeof(msg->payload.raw));
+    msg->payload.timer = payload;
 
     if ( !vs->masked && vlapic_enabled(vcpu_vlapic(v)) )
         vlapic_set_irq(vcpu_vlapic(v), vs->vector, 0);
diff --git a/xen/arch/x86/include/asm/guest/hyperv-tlfs.h b/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
index 79cfc90dd8ec..18da73c74e03 100644
--- a/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
+++ b/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
@@ -527,12 +527,21 @@ struct hv_message_header {
 	};
 };
 
+/* Define timer message payload structure. */
+struct hv_timer_message_payload {
+	uint32_t timer_index;
+	uint32_t reserved;
+	uint64_t expiration_time; /* When the timer expired */
+	uint64_t delivery_time;   /* When the message was delivered */
+};
+
 /* Define synthetic interrupt controller message format. */
 struct hv_message {
 	struct hv_message_header header;
 	union {
-		uint64_t payload[HV_MESSAGE_PAYLOAD_QWORD_COUNT];
-	} u;
+		struct hv_timer_message_payload timer;
+		uint64_t raw[HV_MESSAGE_PAYLOAD_QWORD_COUNT];
+	} payload;
 };
 
 /* Define the synthetic interrupt message page layout. */
@@ -540,14 +549,6 @@ struct hv_message_page {
 	struct hv_message sint_message[HV_SYNIC_SINT_COUNT];
 };
 
-/* Define timer message payload structure. */
-struct hv_timer_message_payload {
-	uint32_t timer_index;
-	uint32_t reserved;
-	uint64_t expiration_time; /* When the timer expired */
-	uint64_t delivery_time;   /* When the message was delivered */
-};
-
 struct hv_nested_enlightenments_control {
 	struct {
 		uint32_t directhypercall:1;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 17:31:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 17:31:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161983.1489788 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJbA5-0008A9-5M; Thu, 13 Nov 2025 17:31:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161983.1489788; Thu, 13 Nov 2025 17:31: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 1vJbA5-0008A2-2O; Thu, 13 Nov 2025 17:31:09 +0000
Received: by outflank-mailman (input) for mailman id 1161983;
 Thu, 13 Nov 2025 17:31: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=25e8=5V=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vJbA3-00089w-Ve
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 17:31:08 +0000
Received: from fhigh-a5-smtp.messagingengine.com
 (fhigh-a5-smtp.messagingengine.com [103.168.172.156])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 876fff6d-c0b6-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 18:31:04 +0100 (CET)
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 54E0A1400076;
 Thu, 13 Nov 2025 12:31:03 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-03.internal (MEProxy); Thu, 13 Nov 2025 12:31:03 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 13 Nov 2025 12:31: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: 876fff6d-c0b6-11f0-9d18-b5c5bf9af7f9
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=1763055063;
	 x=1763141463; bh=vtGlG/MtErkv6tPndYZcSO53jF35Tw0LqzwXYiH+q50=; b=
	I8+bhYplc5K/3ot0tbxha9bf4nMgE1hZNgEPPVOLcoZa6cS5Dy+8TCMA8t1gxa6N
	6SKpTc+6gNh1vajb7r+RlOhfxBjVADSVqw87e+xfbk8EY47waSJ7q4WPqCgZHxU/
	qoyvjkSXB38AkeRpZb+yq+usHfNYvBbTF6/zT2LKt+NyJTxnpYJEm3Ow3ecmzlAx
	b9nI3JUQ+UPmX2Qz8j+YkPKb9ci/LxvpZaBuJHD10m9/l7rghGr5cCbBiAf7lWjS
	4KzlTrmhrjwzdYAIDz3YwtisPUOJdmdoOHIxbaLASN9a6hVzOFQsSdyfPCTSoTRB
	9rCLp1A7/VbuYFZAJ8Jqww==
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=
	1763055063; x=1763141463; bh=vtGlG/MtErkv6tPndYZcSO53jF35Tw0Lqzw
	XYiH+q50=; b=TuigY+TrAn3VnTQ7oXp5n0jFd2MrhzibE1T0nPPKglP5vVEAw7t
	ssEXx5dKG9cggS+xh7EKibq9zpp9dYHbdhMeF3zhzSFtRmkP8wh4zT8C8EEQnDf5
	pf132SU47bE1WmobF897lmIGYeUdA3odSVB8Yj+r6RQ4kWTrD89ahhzw4ZvVFWUe
	kuJSraA31BPO1KiE3cngUJCQntFhzXsyrMTOd2LqZ8AuZInm7nEuAfT3tSkyMH3E
	j62C//9N2whwe+3/vjmel9dqUkW5omrX4CnVRHRf8D3a/v319UfUPKcCaXS+y3wC
	6rE81u+N48jKa+WuQw3j/WdHOaVCtWwN0WQ==
X-ME-Sender: <xms:1hUWaXXXvViIMNmtpkUHbR7AUN5yCnYnZdq4wx1TQ3mJ61mJ4cVSdw>
    <xme:1hUWaSK796A02PpTfQKQqy8R3vCuQZ8gkc2kIU72vXq5a2b9dAMJskerDzVhEvLCe
    elFN1R5WVl-T3FLgQ_mwFoyNvTTZ-32hHQx4hepPa4BTuq1>
X-ME-Received: <xmr:1hUWaXAOEaK3F21cRgeKl1ajpB9GFvVRO8Y6sTA3rklH6uBTpm-rvT6qwn87R3JJWKev1Y3yGUtbqJzVKNxQWCmGdJm07wH-LAE>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvtdejheehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiuceomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhih
    hnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepffelteevudevteeukeeggedt
    jeffheehvdeftedtvdehuddvveeuheeftedvfeejnecuffhomhgrihhnpegsrhhkrdhprg
    hgvgenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehm
    rghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprh
    gtphhtthhopeelpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehjsggvuhhlihgt
    hhesshhushgvrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgi
    gvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohepughpshhmihhthhesrghpvghrthhu
    shhsohhluhhtihhonhhsrdgtohhmpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrh
    efsegtihhtrhhigidrtghomhdprhgtphhtthhopehjuhhlihgvnhesgigvnhdrohhrghdp
    rhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrghdprhgtphhtth
    hopegrnhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohep
    mhhitghhrghlrdhorhiivghlsegrmhgurdgtohhmpdhrtghpthhtoheprhhoghgvrhdrph
    gruhestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:1hUWaSd7CNGCfr7ffS8DioLB0lmhOmeSIU9gy5n-0eG2txJGvdtjXA>
    <xmx:1hUWaW2ptXqJAO16k4FS7Bi_Sw70yfJD4MQvIxFkBJdApYOXix22-Q>
    <xmx:1hUWaZjHrj0_qxWYuDWjxyc2MG0oxhyKv0ZZmGXjhB4wp7Rqbfdw2A>
    <xmx:1hUWafmH5OM1N9Lr1G-ltm1IgnBHA1bQB4lnDm0jnK0SX5dMRWvjXg>
    <xmx:1xUWabZZkY4Tfz_M3cRHixiCmBynqWsle8r4yWHsaKjvlPd-UNVEIrva>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 13 Nov 2025 18:30:59 +0100
From: Marek Marczykowski <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Daniel Smith <dpsmith@apertussolutions.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH 2/3] x86/EFI: replace ebmalloc()
Message-ID: <aRYV0-3jo78I2bDF@mail-itl>
References: <bdbb2884-c2d2-415a-8891-a598d112e34c@suse.com>
 <452fdf1f-646a-4bb1-83ea-ac4c998a096b@suse.com>
 <aRXRtY10cFN38d02@mail-itl>
 <4391d560-870e-4010-b3bb-dee2935f9732@suse.com>
 <aRXWLrEGbSRdqDA7@mail-itl>
 <19ab9d24-057e-4c70-a663-b8288ea630a1@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="fWLlZUY3E35To5Xg"
Content-Disposition: inline
In-Reply-To: <19ab9d24-057e-4c70-a663-b8288ea630a1@suse.com>


--fWLlZUY3E35To5Xg
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 13 Nov 2025 18:30:59 +0100
From: Marek Marczykowski <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Daniel Smith <dpsmith@apertussolutions.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH 2/3] x86/EFI: replace ebmalloc()

On Thu, Nov 13, 2025 at 02:24:38PM +0100, Jan Beulich wrote:
> On 13.11.2025 13:59, Marek Marczykowski wrote:
> > On Thu, Nov 13, 2025 at 01:46:20PM +0100, Jan Beulich wrote:
> >> On 13.11.2025 13:40, Marek Marczykowski wrote:
> >>> On Thu, Nov 13, 2025 at 12:09:37PM +0100, Jan Beulich wrote:
> >>>> --- a/xen/arch/x86/include/asm/brk.h
> >>>> +++ b/xen/arch/x86/include/asm/brk.h
> >>>> @@ -2,6 +2,10 @@
> >>>> =20
> >>>>  #include <xen/types.h>
> >>>> =20
> >>>> +#define DEFINE_BRK(var, size) \
> >>>> +    static char __section(".bss..brk.page_aligned") __aligned(PAGE_=
SIZE) \
> >>>> +        __used var ## _brk_[size]
> >>>
> >>> This chunk belongs to the previous patch I think.
> >>
> >> It could, but it's not used there yet (i.e. would count as dead code).
> >=20
> > But in the current shape the linker script change in the first patch is
> > unused. IOW, I think adding .bss..brk.page_aligned to the linker script
> > should go together with DEFINE_BRK.
>=20
> Again - could be done that way, but there's no concept of "dead code" in
> the linker script (afaik at least).

Anyway, I voiced my opinion, but it isn't important enough to block the
patch on it. Either way:

Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkWFdMACgkQ24/THMrX
1yzm5wf/auc9bLmP+ju+B4QcdIQ4RCayxh0aiOiMXBO/oR4GNgAKUvz3vB1ib77P
v91+DAiWqG7QoY1OK2genXBA0P1Qi9+PlCnp2e9B+QGMwlj5gNVpnR/IifQLzoFB
pv64lJ8ZwasWmBAtUNkXTAqePlBJQD8Qhz3PHKd7cph+Mdqauc09LNz1iXc0i2YZ
dNXqLjJD05MEpc8t4B41J1R1MvpuCRI9LvwnWXsYunErqreyScUAGQJcFqucOJqI
QzA2UzSuK/2LDG1x8UFEurH8cSD+I10dGVxNDVVLBgrFfpQFa8VjJZ/UJ9qeAAb7
vIRo7ipgegZALQzs0VAZygljyka0xQ==
=mZnm
-----END PGP SIGNATURE-----

--fWLlZUY3E35To5Xg--


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 17:41:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 17:41:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1161997.1489798 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJbK2-0001jK-4M; Thu, 13 Nov 2025 17:41:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1161997.1489798; Thu, 13 Nov 2025 17:41:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJbK2-0001jD-1Q; Thu, 13 Nov 2025 17:41:26 +0000
Received: by outflank-mailman (input) for mailman id 1161997;
 Thu, 13 Nov 2025 17:41:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=25e8=5V=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vJbK1-0001j7-B7
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 17:41:25 +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 f8598454-c0b7-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 18:41:23 +0100 (CET)
Received: from phl-compute-11.internal (phl-compute-11.internal [10.202.2.51])
 by mailfout.phl.internal (Postfix) with ESMTP id 49D53EC0089;
 Thu, 13 Nov 2025 12:41:22 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-11.internal (MEProxy); Thu, 13 Nov 2025 12:41:22 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 13 Nov 2025 12:41: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: f8598454-c0b7-11f0-9d18-b5c5bf9af7f9
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=1763055682;
	 x=1763142082; bh=gHKXClYYrCBco1puBbE2Urrx95U7Z2cjEpg996coTqI=; b=
	fuidTPhnWIh7daEPC4J2k9LxEUqEuAlpVDKVramc/EA6p7mgrsOlixQQfz/yeMsG
	7GgKE7ke1KDTJy9CwJ0oWcvU4cll8HeDqUUHupNK8o6DDQx7WHSgiUoaeOOzFvcC
	IVr8ftOds5gdbhbDBfPUzc1APDnS0EGFU8q7l0YltfKeTWVJ0DQV5OGhQb6huAn4
	jPru2vF2E+gh0WjshgcKS2ofij0VDsCW52qX3luVUq0LShyQkRdw+OXu0r4ABNRp
	Ydywstbu+Q69rn/XieDOm/jELtnZYZYHFvkwuqa4i+/ah9mS2LP3cAwptz0rY+CF
	jZykTs+JqGOE6KLv3jiPKA==
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=
	1763055682; x=1763142082; bh=gHKXClYYrCBco1puBbE2Urrx95U7Z2cjEpg
	996coTqI=; b=0FeK1CMvUW1/hLN/S3j7l94xYCaePgVHD3R6Dyk2sX/AFhBkxP5
	MbIpcf+3yeHHXQU38Qlju9O1q29eR4TGv3NwodJAFsQ+O5BTmOn5gn+ts7bpXA0X
	bl/j1mTpk+Ct36dJw6XWxORrFL7scsu2tPP9N931YyiQNNa5zruRDsBQDCrJvp3k
	ri5KY6HqGeLEGjNfc0b/rxPwS30xymTIvmtBbnTw0U0nJGAyvbfi7ymaEXWU0ust
	e8CzRLv3JEXX8Z06BqvxHT8ZTD2KgTvtAM51eu0kiiQgA/QhMD4+0s9GGxWJk7GC
	OtlWPRZ7YaWNXiHOdMX9vAi5G7B8tapmhSA==
X-ME-Sender: <xms:QhgWaZBPhL1_1MA3klMnLCXZ11n55jZHZ2HATTQSuB_H7hrFP4lccw>
    <xme:QhgWaegAwCy7ObGN1HOlhsjIPd0DCECvPRjs23U2qtSlsNMfjSdxsbjSa9z8gyrjx
    koYlfqrC1v9sYSeWA93qmkZJsGgjRynD0HMSY1BZSwWP51vZw>
X-ME-Received: <xmr:QhgWaZngWgKhalDE4YjeCe5VPjZUSTAZVghDHPd60LWx6MVhmo4yGwErnKjjReqxo8gaQYooP72AU8N2uzwRA4ZmdKeZ0ClgPsU>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvtdejheejucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepueegvedv
    leekgedvheeviedufeduheefheekjefffeelueeihefgtdetudetieeknecuffhomhgrih
    hnpehlughsrdhssgdpsghrkhdrphgrghgvnecuvehluhhsthgvrhfuihiivgeptdenucfr
    rghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhih
    hnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepgedpmhhouggvpehsmhhtphhouhht
    pdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomhdprhgtphhtthhopeigvg
    hnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthho
    pegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtoheprh
    hoghgvrhdrphgruhestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:QhgWaSolpzqA-ymmrmE_wAriAyrsBOhT8jen_n7YUmxs7Tms84cDcg>
    <xmx:QhgWaaHEh4Bod0vd3LWsSN_KoUVpZIfpq_CF43WD9IULt8Y4XTDFxQ>
    <xmx:QhgWaWyseeWS5kwJUGxZVgNbVXBxuPeVN-6BmJdnPMYX2kWXoB_3CA>
    <xmx:QhgWaXqFMimWyhDVitLa4JLFBAtkiwZ9SGM5-pAZLPVSQh2EgYb9Mg>
    <xmx:QhgWaRzZ8NVKU9pxXVBbA8aBcZtfiYTcnP35fLCOLlfkTGcDAeEhRSpI>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 13 Nov 2025 18:41:19 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH 1/3] x86: introduce "brk" allocator
Message-ID: <aRYYP8fG9fgvGGYS@mail-itl>
References: <bdbb2884-c2d2-415a-8891-a598d112e34c@suse.com>
 <7a3eb7f3-db3e-4c2f-a231-cdf05a14be26@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="2iEgZDYNAhp1kLmw"
Content-Disposition: inline
In-Reply-To: <7a3eb7f3-db3e-4c2f-a231-cdf05a14be26@suse.com>


--2iEgZDYNAhp1kLmw
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 13 Nov 2025 18:41:19 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH 1/3] x86: introduce "brk" allocator

On Thu, Nov 13, 2025 at 12:08:18PM +0100, Jan Beulich wrote:
> ... to replace ebmalloc(), and then to find further use(s) to allow
> recovering memory which is needed very early (and hence needs setting up
> statically), but may not fully be used (or not used at all).
>=20
> Note that unlike free_ebmalloc_unused_mem(), brk_free_unused() (once
> other code is converted) will be able to free part of the BRK space even
> in the xen.efi case. That would happen if BRK space extends across a 2Mb
> boundary, and actual use stops before that boundary.
>=20
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Changing setup.c's reserve_e820_ram() uses would be cumbersome when done
> right here. That'll be done when ebmalloc() is replaced, and hence
> what's there can also simply be replaced.
>=20
> The xen.efi detection may want separating out into a helper.
>=20
> When linking xen.efi, ld produces a base relocation for the reference to
> __subsystem__, which is wrong (that's an absolute symbol, after all).
> While that will need fixing there, it does no harm for our purposes.
>=20
> --- a/xen/arch/x86/boot/Makefile
> +++ b/xen/arch/x86/boot/Makefile
> @@ -1,4 +1,5 @@
>  obj-bin-y +=3D head.o
> +obj-bin-y +=3D brk.init.o
>  obj-bin-y +=3D built-in-32.o
>  obj-bin-y +=3D $(obj64)
> =20
> --- /dev/null
> +++ b/xen/arch/x86/boot/brk.c
> @@ -0,0 +1,72 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +
> +#include <xen/efi.h>
> +#include <xen/lib.h>
> +#include <xen/mm.h>
> +#include <xen/page-defs.h>
> +
> +#include <asm/brk.h>
> +
> +extern char __brk_start[];
> +extern const char __bss_end[];
> +
> +static unsigned long __initdata allocated;
> +static bool __initdata finished;
> +
> +void *__init brk_alloc(size_t size)
> +{
> +    void *ptr =3D __brk_start + allocated;
> +
> +    if ( finished )
> +        return NULL;
> +
> +    /* Allocations PAGE_SIZE and up will be page-aligned. */
> +    if ( size >=3D PAGE_SIZE )
> +        allocated =3D ROUNDUP(allocated, PAGE_SIZE);
> +
> +    allocated +=3D ROUNDUP(size, sizeof(void *));
> +
> +    if ( allocated > __bss_end - __brk_start )
> +        return NULL;
> +
> +    return ptr;
> +}
> +
> +unsigned long __init brk_get_unused_start(void)

It's a bit unintuitive for brk_get_* to have this significant side
effect. Maybe name it brk_finalize_get_unused_start() ?

> +{
> +    finished =3D true;
> +
> +    allocated =3D ROUNDUP(allocated, PAGE_SIZE);
> +
> +    return (unsigned long)__brk_start + allocated;
> +}
> +
> +void __init brk_free_unused(void)
> +{
> +    unsigned long start =3D brk_get_unused_start(),
> +                  end =3D (unsigned long)__bss_end;
> +    unsigned int subsys;
> +
> +    /*
> +     * Only xen.efi will have the symbol __subsystem__ available, and it=
'll
> +     * be non-zero (10) there.  In ELF the symbol will be undefined, and
> +     * hence zero will be loaded into the register.
> +     */
> +    asm ( ".weak __subsystem__; mov $__subsystem__, %0" : "=3Dr" (subsys=
) );

Is this really the best way to detect xen.efi?

> +
> +    /* using_2M_mapping() isn't available here. */
> +    if ( IS_ENABLED(CONFIG_XEN_ALIGN_2M) || subsys )
> +        start =3D PAGE_ALIGN_2M(start);
> +
> +    if ( start >=3D end )
> +        return;
> +
> +    destroy_xen_mappings(start, PAGE_ALIGN_2M(end));
> +
> +    /*
> +     * By reserving needed space early in the E820 map, excess space get=
s freed
> +     * way before we make it here. Don't free the range a 2nd time.
> +     */
> +
> +    printk(XENLOG_INFO "Freed %lukB unused BRK memory\n", (end - start) =
>> 10);
> +}
> --- /dev/null
> +++ b/xen/arch/x86/include/asm/brk.h
> @@ -0,0 +1,7 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +
> +#include <xen/types.h>
> +
> +void *brk_alloc(size_t size);
> +unsigned long brk_get_unused_start(void);
> +void brk_free_unused(void);
> --- a/xen/arch/x86/xen.lds.S
> +++ b/xen/arch/x86/xen.lds.S
> @@ -331,7 +331,11 @@ SECTIONS
>         __bss_start =3D .;
>         *(.bss.page_aligned*)
>         PERCPU_BSS
> -       *(.bss .bss.*)
> +       *(.bss .bss.[a-zA-Z0-9_]*)
> +       . =3D ALIGN(PAGE_SIZE);
> +       __brk_start =3D .;
> +       *(.bss..brk.page_aligned*)
> +       *(.bss..brk*)
>         . =3D ALIGN(POINTER_ALIGN);
>         __bss_end =3D .;
>    } PHDR(text)
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -112,6 +112,7 @@
>  #include <xen/vmap.h>
>  #include <xen/xmalloc.h>
> =20
> +#include <asm/brk.h>
>  #include <asm/e820.h>
>  #include <asm/fixmap.h>
>  #include <asm/flushtlb.h>
> @@ -337,6 +338,8 @@ void __init arch_init_memory(void)
> =20
>      efi_init_memory();
> =20
> +    brk_free_unused();
> +
>  #ifndef NDEBUG
>      if ( highmem_start )
>      {
>=20
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkWGD8ACgkQ24/THMrX
1yzheQgAiF7yNHN2W5CKuhIgz+OIlWwZhwMdeWKzr/f7rxLu66o9GZ1i/lfDGnhj
fTzKSN400lIqlJSVkr3LsV8Be3XEnsFfnQGyjygS+7HeLTTDC5O8kqkL1Yh0yl/A
BfM4ILVFCuUGNItZxeAbQrfWHoZSqZnEfgd69G7zrkEnJMrp6uLwOW4Xe6FdO9jg
ILecnXJ2YTK1knOsU6lIhKh54zjJm5Zt9uIcpRh/vNwlG2Ptx435o075KfdJd4C8
Ulz72j+ITC6hkMyTsPrIGuljrBOOBUWfGIai2JcNwCbf+Z20pmjzAP6Giy+s2NeE
QYQhAMdBNiiCRrVTyL/LujbDogjv7Q==
=Wzvn
-----END PGP SIGNATURE-----

--2iEgZDYNAhp1kLmw--


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 17:43:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 17:43:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162007.1489807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJbLb-0002OO-DE; Thu, 13 Nov 2025 17:43:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162007.1489807; Thu, 13 Nov 2025 17: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 1vJbLb-0002OH-AZ; Thu, 13 Nov 2025 17:43:03 +0000
Received: by outflank-mailman (input) for mailman id 1162007;
 Thu, 13 Nov 2025 17: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=Fq0p=5V=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1vJbLa-0002OA-Ap
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 17:43:02 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 314042ce-c0b8-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 18:42:59 +0100 (CET)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:f7])
 by mailhost.m5p.com (8.18.1/8.17.1) with ESMTPS id 5ADHgoF9030139
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Thu, 13 Nov 2025 12:42:55 -0500 (EST) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.18.1/8.15.2/Submit) id 5ADHgoNp030138;
 Thu, 13 Nov 2025 09:42:50 -0800 (PST) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 314042ce-c0b8-11f0-980a-7dc792cee155
Date: Thu, 13 Nov 2025 09:42:50 -0800
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Juergen Gross <jgross@suse.com>
Cc: xen-devel@lists.xenproject.org
Subject: Re: Xen DomU Bootloader Experiences
Message-ID: <aRYYmt61RIdI0lD1@mattapan.m5p.com>
References: <aRT4fiuF8soWI6tc@mattapan.m5p.com>
 <8b3d8e28-6501-462e-b028-8f4dc44027e7@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <8b3d8e28-6501-462e-b028-8f4dc44027e7@suse.com>
X-Spam-Status: No, score=0.4 required=10.0 tests=KHOP_HELO_FCRDNS autolearn=no
	autolearn_force=no version=4.0.1
X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on mattapan.m5p.com

On Thu, Nov 13, 2025 at 07:46:25AM +0100, Juergen Gross wrote:
> On 12.11.25 22:13, Elliott Mitchell wrote:
> > A few times there have been mentions of a need to choose between boot
> > methods for DomUs.  There is a need to decide on ones to recommend and
> > put effort into supportting.  I may not have tried that many nor done
> > particularly great amounts of experimentation, but I do have some
> > experience with multiple User Domain bootloaders.
> > 
> > PyGRUB
> > Xen's bootloader.  PyGRUB is quite functional within its limits.  In
> > particular it simulates the domain's environment in Domain 0.  This means
> > the security exposure is problematic.  Another big concern is that it
> > only does GRUB v1 syntax.  For a long while Debian had a package for
> > generating those files on a modern system, but that package was dropped.
> > 
> > Yet PyGRUB does avoid needing to use external tools to retrieve the
> > kernel.  If the kernel is updated inside the domain, this does get the
> > new kernel.  Further being architecture-independent this works on x86,
> > ARM*, RISC-V and PowerPC.
> > 
> > As it is the only GRUB-flavor loader available on ARM*, that is the only
> > place where I've used PyGRUB.
> 
> There is one further advantage for PyGRUB: it can look into the kernel
> _before_ the domU is being created, so it can tell Xen tools whether a
> 32- or 64-bit domU is needed based on the selected kernel.
> 
> This is the main reason why PyGRUB is still existing.

Okay.

While I can believe this is a big advantage in some environments, I
suspect this is rarely used.  Whereas the security profile of PyGRUB is
troublesome,  GRUBv1 syntax nearly overwhelms all advantages by itself.
Do you think changing the default to not build/install on x86 is
inappropriate?

I suspect Tianocore/EDK2's 32/64-bit support might be a better choice for
an environment where this matters.


> > PvGRUB
> > I'm sure nearly everyone knows about PvGRUB.  By being a proper port of
> > GRUB to run directly on Xen, it overcomes PyGRUB's disadvantages.  The
> > one disadvantage is needing to get patches into an external project for
> > changes in Xen.
> > 
> > Two changes to Xen urgently need propogation to PvGRUB.  I'm unsure
> > whether PvGRUB unmaps its mapping of vcpu_info data.  The second is
> > needing to work on ARM*, RISC-V and PowerPC.  The latter is the one and
> > only way in which PvGRUB is inferior to PyGRUB.
> > 
> > As PvGRUB is only available for x86, that is the only place I've used
> > PvGRUB.
> 
> Naming is difficult. :-)
> 
> You are talking about grub-pv. pv-grub is the Xen-internal variant based
> on Mini-OS and legacy grub 0.97, supporting grub for PV-domUs.
> 
> grub-pv comes basically in three flavors, all x86-only:
> 
> - for 32-bit PV-guests
> - for 64-bit PV-guests
> - for PVH-guests (32- or 64-bit)
> 
> Adding PVH support to upstream Grub for e.g. Arm should be rather easy.

I figured as much, yet this has not yet been done.  The other two
implementations using GRUBv1 syntax is a severe weakness.  I rate this as
high priority since GRUBv2 syntax is rather valuable.  I would try to
lay groundwork for RISC-V and PowerPC too.


> > EDK2/Tianocore
> > Quite well-known for being the basis of most x86 firmwares, plus being
> > part of a typical Qemu setup.  Not nearly as well known for being a Xen
> > DomU bootloader.
> > 
> > When it was working you would build their ArmVirtXen.dsc file and get
> > XEN_EFI.fd as output.  You would then use XEN_EFI.fd for the domain's
> > kernel.  If you looked at the console you saw something which looked and
> > acted pretty similar to a UEFI firmware on x86 machines.  This was
> > extremely functional for OSes which didn't particularly like GRUB.
> > Notably I've read of it being able to load a Redmond OS and it was quite
> > functional for booting an ARM64 port of FreeBSD.
> > 
> > Sometime after November 16th, 2022 or commit fff6d81270.  The built
> > images stopped functioning.  This is actually rather concerning since it
> > may also effects firmwares built for x86 HVM domains.  I don't presently
> > know whether there are multiple bugs, or a single one effecting all Xen
> > builds.
> > 
> > There is also an urgent need to get EDK2/Tianocore updated to match
> > Xen/ARM's disallowing mapping the shared information page multiple times.
> > As I did not wish to become deeply involved with EDK2/Tianocore I sent a
> > patch to xen-devel close to 1.5 years ago.  Lack of action suggests there
> > is an urgent need for a liason.
> > 
> > 
> > 
> > Recommendations:
> > PyGRUB is functional within its limits.  Problems are GRUBv1 syntax and
> > running within Domain 0.  Given this I feel the Xen Project should be
> > heading towards deprecating PyGRUB.  Since PvGRUB works for x86 now, I
> > would default to neither building nor installing PyGRUB on x86.  For
> > other architectures PyGRUB is still useful.
> > 
> > The Xen Project should formally ask the GRUB Project to port PvGRUB to
> > ARM, RISC-V and PowerPC.  The need for PvGRUB on ARM seems rather urgent.
> > Without a proper bootloader VMs aren't too useful.
> 
> Well, I did the grub-pvh implementation.
> 
> Doing that for other architectures shouldn't be rocket science. :-)

Okay.  I've seen some it written about a number of times and no action.


My reading had been the people most knowledgeable about adapting the
tools were unsure of how to direct effort.  Proper GRUBv2 is high-value
for Linux.  Tianocore/EDK2 is valuable for everyone, high value for non-
Linux.  Worst case Tianocore/EDK2 can boot GRUB-UEFI, I doubt GRUB can
boot Tianocore/EDK2.

Is there any scenario not adaquately addressed by trying for that pair?


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Thu Nov 13 17:53:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 17:53:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162020.1489826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJbVC-0004ak-EK; Thu, 13 Nov 2025 17:52:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162020.1489826; Thu, 13 Nov 2025 17: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 1vJbVC-0004ad-AR; Thu, 13 Nov 2025 17:52:58 +0000
Received: by outflank-mailman (input) for mailman id 1162020;
 Thu, 13 Nov 2025 17:52: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=X5Bi=5V=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJbVA-0004aS-GG
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 17:52:56 +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 949f5721-c0b9-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 18:52:55 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MW4PR03MB6458.namprd03.prod.outlook.com (2603:10b6:303:121::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Thu, 13 Nov
 2025 17:52:51 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 17:52: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: 949f5721-c0b9-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tmKaHfgjX0sXZs7ISmevSlPAnlUrDyI0s0D1f7LQbQErnZ0ZcYXAZfDCNyAof5X9uSOX6KmxWaX1SopI1Cx8BWeNUlH8uO4hhlK2dYZPipE+CdI3AKqrEOFG6V8ExeXCpu+Ltl6zJ0Iw3OVmWyuQHPtbvdPktd/yMPHTi3XUEYf2J2eoCK1J6wXaykJ82z5w32oYNpNrMqhtwhsuXgVOZyrTIjlyP1CwFXDAYdwIwUu80kU9Of6sxdFLCujwkVvqTyTMMX+WIi6o+nvulcobmAl2RjxFcY+IFL143V6/nNvdmLBpBlJhs5/Eo21Nd0xic4Z7DM8gTosEV1dehPcJ6Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kMasDfIjg8bN3ujfx/TxuwJZUVWjx8Bj0EkDnMZ/Btg=;
 b=hzci9K4QnfgIDoImGtSl97fYLidQK9GcR281qXX+NMi7gtxB3YjnkOEuDUqdBVAGiBbqJA9hnX0JEcwvRdPigc3zfotB6WkRulw1+Z6ep8w4sgp9ksN8P50TwDXPuFu6ZiCYU3RxN63zwGZaZh67/PH1dBMyfEIaHCHYzx3z7pV8uQz8uVC5TTF2AcoFd7zpbI1oMPhlLyeIDZke3KoPatQRRlRymd1APbBv9YyfVdkq1xZNVAmPbP+pewx4Y2bKl6YOpHn5qdQJHmvYG6f0WibMi1yLv8weqvzNQCufvAeuMP3Hspy30ypZCdw/SincGoYK5ihAa8srQz0bX37wCg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kMasDfIjg8bN3ujfx/TxuwJZUVWjx8Bj0EkDnMZ/Btg=;
 b=XTpb+x6Qpm5/S303u5sfbxeZBTe1bwwPzElR/ila8WfbRq7CcYgQ7cjfksIW7AIeM6qiI7loyt5qcKc2nTuiSlSfWwwPgxUv2uOKYHTVspJe6lhpJ2VRgXGctKo2yPhpIkMSIoa172saQAKX9waFAy48qcZLL3waWA1G5T3NngI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <353236f2-2864-48c2-ae9c-e3d4a2aa5537@citrix.com>
Date: Thu, 13 Nov 2025 17:52:47 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/viridian: use hv_timer_message_payload struct
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Paul Durrant <paul@xen.org>, Jan Beulich <jbeulich@suse.com>
References: <20251113172413.87938-1-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251113172413.87938-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0435.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:e::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_|MW4PR03MB6458:EE_
X-MS-Office365-Filtering-Correlation-Id: 726f5b07-72e0-4aad-4bd1-08de22dd76ba
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?YXhQaE15cUVsYTZ4Q1k1R3dabG10aVFtd2l0OFRFNWFrbWhIeEMxckJ4Z0do?=
 =?utf-8?B?WXczb2tVTnhobXBXOTRQZnd3bFk2ZU1rRWVrdHdqK1RMMTJ1dUNuWG9nZ3Rs?=
 =?utf-8?B?RWxlYm1NOWxXQzNFeVIralEzM1ZmQ1VMb2YrQUtYcGxmNDZLWGU2ak84aW1p?=
 =?utf-8?B?eU4rcGhBY25CUC9NY0JmamxyM2dpZHdwRXptRkdOWG0xcVBzcFdZdHkxRmcr?=
 =?utf-8?B?M2ZhM2dEbjdueVpUd1h2bWMxMGc2cDNmZ2kxaG9OVG1vdWxHQ0d6NXRhTjVZ?=
 =?utf-8?B?OGhwaFF1c3lSZkVlZXpLUUZSZzBocVVmOHVobkpRZVFKdG1ycVRoR2h1aU5x?=
 =?utf-8?B?bkRaVjJieWszejNhYTQ3cWgxdVBlcFVQelFRUHhXOWhza3hDcnZqM2JOZTRJ?=
 =?utf-8?B?N2xFTjNpRzhqWnFMUDh5QUtBWGR1M01GSUlkYlhUOG81VFdObWhhYURPQjc1?=
 =?utf-8?B?NmpqU3VKRTkzdmJJR3VzeVFqRnowVGNmR2JUNm5KYTdxZzFVN0xoQkhlTDRP?=
 =?utf-8?B?d3p3ckswUFVvaVUrZjRJa1pZRGNJaGJyYUs1VXljcTJyb21yUU4vd1lJWkRV?=
 =?utf-8?B?SXYyNnhJZkYreUIyT0NrN0VPRnc5ODlJMWVBS0FFNVl0NkoxU0RNY0ZuZ0Vt?=
 =?utf-8?B?SGwwOGVaZDZuckdvSkZMMmI1ZC83eE8veXZUQ2p4Uk8zV0hlYWxIYXdjenNy?=
 =?utf-8?B?TWZ1Mk9KR0pqdzlUTkhpTEt6ME96Q082NEFYZzlGMGlQVXBTUmkxQTRKeTln?=
 =?utf-8?B?eUJqODZIbTdlQVR3dnFoUEtJNHplZTVVejB0a0ZoemZ4cFlYaTJaQ0NJYWJh?=
 =?utf-8?B?UDJPNjV3VDFrKzFIZnVlMXg1T3VqT1lZOHEwUmdFSStLTUVCVEc1eVVxVW1r?=
 =?utf-8?B?OWJQaXZnV3VFWks0M0Q3QUtsdFdIMWl3bjVSYXZsQU56aDZKWnFvWi9VM2I0?=
 =?utf-8?B?bGhCSG9kREhTa1BPOGZzbm40aXhmTGhmWkZqQjZpemd6WlhIOGxSSngxUFpa?=
 =?utf-8?B?YkJHQWxsZWZVbDA4RFRPRi9jQzBZRU9jbVdNRXF3ZDZkcUFLdEw0ZUd4Wmh1?=
 =?utf-8?B?ODdsNVJQc01wT2FBaVZ5QU1uNys3V1AwT3Z0Z1BocTFwOFQ3QmxoeWxBRmtY?=
 =?utf-8?B?aHVWMzJ4NEtzMnQrekZ6VThvRGV6T2t6Umh5QkttNUNWL0tWZ0xkSVkwS1Z4?=
 =?utf-8?B?TlREZWs0VWZpeTEyQVZkUXlGUm5UVVRWMmNxV1VwYThueHFGQVdva2J1OU4x?=
 =?utf-8?B?Q3J3VStjVzRPNDY3dlovMnlVSTB3NWpJdFYzN3l6Rkd4VitoT0F3aE15dG1D?=
 =?utf-8?B?V2UvMXFkMnY3UW1vTnZEOW9lc2tsaW5VMmJNZ3pNYW93Vk93VWUyK2pISUVx?=
 =?utf-8?B?U3pzcFV1eTN3NU5Tdy9ocHBMeTNCS20yMTdTdG0rbXI0YWFsZldPZXQwa3pZ?=
 =?utf-8?B?OUw4Ry9BWGdrUmlXa0x3Q0pJNCtSSkNXbjJGdEF1QlZOa2tXMWtvclVmaDVR?=
 =?utf-8?B?b0dCWlBYaFN6bVU5Szc4NS9VM0VsaWtEQlpqTUdJbHVpRmI3ZnhFcnNNZFk3?=
 =?utf-8?B?RFpDbndyYUthbGR4UjNqeDV1K2RrUXV6cUZkT3JmQ2p5cE9rSG9JK3dvbW1U?=
 =?utf-8?B?UzQrbGlUZUlpdTIwR2V0UGdkbkJIT3UwU0ZyZHlEeTg0QllVc3RYOUZVWHNx?=
 =?utf-8?B?VWZFVlRkWktKOCtaUTRiR2JXbDVIUWRjamRtYjZCUVpBNTRDazRWNUEzek9l?=
 =?utf-8?B?anFGTFREdDFoLzdOdzJxTVQ0ZHNlSUJWcWlGWG9tMU1GN0grdStRUFplKzh5?=
 =?utf-8?B?YllZNFV4TmhJZnVQT1ltSGlORVZDMkI0MzVEbGsydDdrd0NpcUlkRXRDUjFB?=
 =?utf-8?B?NEtzWDFqeFZlQUZ5STljQUlhZTZISlN0UnJTbzFiS2lkR3phVk1HQllEZzFm?=
 =?utf-8?Q?0GByo9wy6zIRfMRtF4G1rtNX7qQGBhm9?=
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?YkIyVDE4NkJObi9TNU9kZjFPL1RuWi9yemZyZXM5ZUhmaVcybmhxelRKODI0?=
 =?utf-8?B?WWZ1dUZFaFYvVERLRE9wb280dEZQOVZ5YWhHV1dCbGp3S0ZjZUJMVmZ5YVVm?=
 =?utf-8?B?dnBxNnJpWDc0QmV1SUJnT3VWMDkvaEFFM3ZuYjByYXJLaG94VW45K2l1NTVx?=
 =?utf-8?B?Z2lEYkhhMFpGNDF0QVhxbWpBbDQ2elRPL3VtcGJkN1VzS1VUTWIrRUllTjVr?=
 =?utf-8?B?SE80eWp6enljVk56Z3psd1JacnhYQXU2LytxVHZFZzVMZ0ZSWHFoVW5DcFo5?=
 =?utf-8?B?b3hXdkF4dStFT3hxQm1HNDErVEVUQ093SVVqcTJSdk5zbGFvVUlGaXdXczVi?=
 =?utf-8?B?UUZRTzU2OVY2eEdaczlqVUh6ajRQZWJCdHNBY1hTQ0RUNjB6TWFJN1REMDJy?=
 =?utf-8?B?aGV6RU5GMnJZc090YjhTZ0ZCSlhGTnlsdXo4MHZqVnZwUjdRMit0K1p3bk1V?=
 =?utf-8?B?RjdQV3lOWU1obXNhMndneExHQXk0aVVoc1VCakVpSXFQSS9Kd2J6dDN1ZFZq?=
 =?utf-8?B?NkRIYlRTbmhWYlZvNi9PMFcrYWw5RjJNcHF6SWJHU3Z6eUVKRVZ3cURWNVpT?=
 =?utf-8?B?OGsvTXpWNjlBbFhmVUVoZk9UdnJ2SkloU21tMHV5SzcrUFRZaENrNU54MHZT?=
 =?utf-8?B?VXFTWURDT2w2VzhaMnhRdzNDSkx2SFUwNXhQbDROSXZUbDAyYlRQTjN2Qis2?=
 =?utf-8?B?OFNkTENVUVV5a01aNGhtYy9ibGhhN1ptSXgwcjlIOEtCbkgvdjN0K2t3OEl1?=
 =?utf-8?B?c2NnYkN5UmNZVXVKakw2TFFvTU5Cb1g5cTdTWXdHanlmS3VSeG1Sa1Ezd0t0?=
 =?utf-8?B?QUdiMW1FbFRsTzJpLzlmakh4V1VOY0cwd0J6cUY2ZzJwTForL2M1ZEtIN0hn?=
 =?utf-8?B?bnI1OThRMlBRZlRlWnloclVQSXBPSDRsd0pkalFHanBhVHRMWWd6NGdVSWZQ?=
 =?utf-8?B?RkVrU3V0bXJ4NjUvek04clUzUFNGdEYreHhXQmowR3hqNnRqWEljVHNUMVM5?=
 =?utf-8?B?ZVhUa0N0YlpSaHk4V0t6UEdLUjhmMjVLOWFUNGpPOXZncVNaVUpZdFh3RGEr?=
 =?utf-8?B?anNlUXRtTXZveE1nOHZ2WDZ1ZmxWNG10VUlOdzZJVFJlcWlKajR4aFBWMEtw?=
 =?utf-8?B?SVJhWFRrT2VhT2FiVnhCZzM0ZW9wNW0xYlcxbTFxZWJNWGRTdlNPV29OY3Nr?=
 =?utf-8?B?c2xTaWNrL0F0cGVNUlMrblFSR2hHU3R3Q3VWcUgyMDJHY0ljVDVHVWxEQVdz?=
 =?utf-8?B?ZDZjS2ZkaElWaGFMYXNaMTRNeldXOEltNE5FdnZhNzhWejgzWXY4by82Nm1p?=
 =?utf-8?B?cCt3QUg0bUhtS3ZBMGZ5TlRQMWlQKzY4bENVdUZVUEp2QXpQRTkrTGQySlBQ?=
 =?utf-8?B?a0gveDFJYnA5NkhjK2lUNzFuR3hLY1hteGFUVXNYS25Kb0Jxd0RUblh0M1JY?=
 =?utf-8?B?NU91ZWdvcHVCdWsyRHEyWU5tRXhhVWdvSm1CY0FBYjdPTlgrU1pTczNMUEln?=
 =?utf-8?B?RVAzNG1ENTRFQ0RSdnZKVENJVlNQNGllS2hSc2xSZEZpT1NkRHd5enJLdVhO?=
 =?utf-8?B?azlXeTVTNmNSYlRDWkROa0o5SUhYUTVwMzh6b1RWZmc1UkUvQWUrRExwVC9K?=
 =?utf-8?B?eFliVXBPN3B5MVd2b0dyWFZ3M29taEY0eDRUakM4T1grcVlIcjR3bTNRREtT?=
 =?utf-8?B?cEQ3dzZEVjV5L2l1RlhhYnpzU0twazFjdWJXd0QvZVp2OHVjRjczdTI1QXZN?=
 =?utf-8?B?YlptMGdQdzl3QVZjRmtITUtpdXRXTk5WUUw5WWZuUDFNaDV4bUYrbGluVDht?=
 =?utf-8?B?VWx5RDZGaU9xakdxRHBMZDNtTGpzNFFBT2RWdkVWM0lNL2xwS1UyTzhsMmxx?=
 =?utf-8?B?NHJzS0tQT2xBNzc5NlUzWDY0dmtBM2dLYlIrTGJxdGg5dVNOTWFKcW1TbWhP?=
 =?utf-8?B?bXVtVDVxNXAwMnRGVVJEQ3NPUi9yakJVMDkvYU5LcEJZQi9WbFM3d1l0c3dJ?=
 =?utf-8?B?UmdjU0o1RUdXWFNvdDRJbXhGUDBjbC9wNjZDRVZGR3dMOFJyZ2N2RjR2WktN?=
 =?utf-8?B?aHhielRVQXpxZndMYnJWV2JMcWtudUtmMGcxQS9kTDgwOW1md0JseEJ5ZzZC?=
 =?utf-8?B?NDdubTJZZlRtSDdRdjBkUUkxZ25GTEo3cDl5QjAxbThmTGtaMjROaDhRRjQ1?=
 =?utf-8?B?ZUE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 726f5b07-72e0-4aad-4bd1-08de22dd76ba
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 17:52:50.9931
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 90oZMZWuGqplYzJj6or9aLi3vbiyvzbpOkX/ulby65MMlGSLNgfgcEqG1L4ZmEuzH9dzcdpKv7k8G0VAVLqunKSDB69TyKpwBgvl8c/Coso=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6458

On 13/11/2025 5:24 pm, Roger Pau Monne wrote:
> diff --git a/xen/arch/x86/hvm/viridian/synic.c b/xen/arch/x86/hvm/viridian/synic.c
> index e6cba7548f1b..6d7b6bd0eda2 100644
> --- a/xen/arch/x86/hvm/viridian/synic.c
> +++ b/xen/arch/x86/hvm/viridian/synic.c
> @@ -327,15 +327,10 @@ bool viridian_synic_deliver_timer_msg(struct vcpu *v, unsigned int sintx,
>      struct viridian_vcpu *vv = v->arch.hvm.viridian;
>      const union hv_synic_sint *vs = &vv->sint[sintx];
>      struct hv_message *msg = vv->simp.ptr;
> -    struct {
> -        uint32_t TimerIndex;
> -        uint32_t Reserved;
> -        uint64_t ExpirationTime;
> -        uint64_t DeliveryTime;
> -    } payload = {
> -        .TimerIndex = index,
> -        .ExpirationTime = expiration,
> -        .DeliveryTime = delivery,
> +    const struct hv_timer_message_payload payload = {
> +        .timer_index = index,
> +        .expiration_time = expiration,
> +        .delivery_time = delivery,

Align these = for readability?

>      };
>  
>      /* Don't assume SIM page to be mapped. */
> @@ -359,8 +354,8 @@ bool viridian_synic_deliver_timer_msg(struct vcpu *v, unsigned int sintx,
>      msg->header.message_flags.msg_pending = 0;
>      msg->header.payload_size = sizeof(payload);
>  
> -    BUILD_BUG_ON(sizeof(payload) > sizeof(msg->u.payload));
> -    memcpy(msg->u.payload, &payload, sizeof(payload));
> +    BUILD_BUG_ON(sizeof(msg->payload.timer) > sizeof(msg->payload.raw));

This BUILD_BUG_ON() was only needed because of the memcpy() between
different types.Â  With structure assignment, the compiler will tell you
if the type mismatches.

Therefore, it's safe to drop.

Otherwise, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 18:35:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 18:35:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162044.1489835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJcAZ-0002G1-Di; Thu, 13 Nov 2025 18:35:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162044.1489835; Thu, 13 Nov 2025 18:35:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJcAZ-0002Fu-B5; Thu, 13 Nov 2025 18:35:43 +0000
Received: by outflank-mailman (input) for mailman id 1162044;
 Thu, 13 Nov 2025 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=25e8=5V=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vJcAX-0002Fo-BP
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 18:35:41 +0000
Received: from fhigh-b2-smtp.messagingengine.com
 (fhigh-b2-smtp.messagingengine.com [202.12.124.153])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8bfcc563-c0bf-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 19:35:38 +0100 (CET)
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 02BAD7A030F;
 Thu, 13 Nov 2025 13:35:35 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-02.internal (MEProxy); Thu, 13 Nov 2025 13:35:36 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 13 Nov 2025 13:35: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: 8bfcc563-c0bf-11f0-9d18-b5c5bf9af7f9
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=1763058935;
	 x=1763145335; bh=CV6PEqh+HFXYnBTew7qnEO10cA+LoykfYLKd3f2wbMc=; b=
	JwTJyZwml4Hjhiom5QxQv3h2Qj5ua1I9Pl6r3uQIHgnQO+/7xrw90agCua8jsjwY
	HZsLhkgm1lmvB6zFJdye7A5OhYlDJmQOTyowBHoKiwidFRKvlMMR/dy3wsEd02Ld
	a21MA36sZEO20obkkPGIhbqr6LOcC/BwMmdSLXq8Fev3N0eA6pU+bJJah+NzvQpM
	rKDLCRitUHP7xx/dLwQHCyoLNBVIplpXXPGRqNKxn7A+OepZ6pVA1t1yJSO9J525
	092Q2SGVuFML/WPtXshoFPjDN/ZVoM+t2mdb0yBOCUvCry3Z4Pby/BvLU/cXC8EY
	UTIe4VWVJ84Y6D6+I6C1gg==
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=
	1763058935; x=1763145335; bh=CV6PEqh+HFXYnBTew7qnEO10cA+LoykfYLK
	d3f2wbMc=; b=0Nf/K/AHrQQKvGmUTRwc8/dzkwCzE6CGC4H7p/o6pHEDw9ZLw7q
	Qu4jeEDjwTWgzYiGKZgpHNw62JUAOuVUrSeEvb/cr3kUXUN4oa7riEVa5Wg2lPTp
	RQObMpI2CcsUks8UzOnzfGce/1YgQ1j24UfwSQfVbOZ3T8M85oYabhRVaugCh2OX
	wtS/0adbDtzYWYujSLLkFwD9lrpy1PReDxfPY0jaf35IzHQp+YNFS9RBod4U0cl3
	73JzX4Tsr2BVj6wN1ygg33On11zya/cDyottktYcC5qdjAR5JcCss1cI0/YhC5pD
	O84VipVoXmQFgz/T4aoCBTmmfBEZA+oAlCg==
X-ME-Sender: <xms:9yQWaW1zRqzTO5s2HuWp5eEQtiDYApBskSjmWNc_uSaiTKm8h-pvSQ>
    <xme:9yQWacwG9TEbIpiEVCrBcv4XYQ0CSk9wWSxdUL0kzkyeL_GuMaeEwXxgJnLrVVotJ
    ryPZ5WrRTQqmsrsRsx6cwmpgfeLQBwuX_mqHCK_h1SIPT_u9g>
X-ME-Received: <xmr:9yQWaXh69lw60RvPILPezYwsSsaGTmxiaORDW0VMAdshBZGmCgF1_RVm8oTf4SkIMmlp8vuUK-FImp6M6aM8apaKv-W5cK43Orc>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvtdejieekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepudegpd
    hmohguvgepshhmthhpohhuthdprhgtphhtthhopehfrhgvughirghnohdriihighhlihho
    segtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrd
    igvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehfrhgvughirghnohdriihighhl
    ihhosegtlhhouhgurdgtohhmpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrhefse
    gtihhtrhhigidrtghomhdprhgtphhtthhopegrnhhthhhonhihrdhpvghrrghrugesvhgr
    thgvshdrthgvtghhpdhrtghpthhtohepmhhitghhrghlrdhorhiivghlsegrmhgurdgtoh
    hmpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomhdprhgtphhtthhopehj
    uhhlihgvnhesgigvnhdrohhrghdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrh
    higidrtghomh
X-ME-Proxy: <xmx:9yQWaZM8Gi4LU9RJRrhXUNKqM1oIGVt9DQuZArAv-7WKlC_gMZtOBQ>
    <xmx:9yQWaadkhqSnN0ZgcNu1l16xxdfL7x9HA00n1N0Opupp5wHtftAlzg>
    <xmx:9yQWaTwkuQUBQWzGA9CaX-sapgsirYlJWWDBpBtLE3AKWgsJypeOoA>
    <xmx:9yQWaf3oLRiERNDzoyx4KFN0qIcf5_Ll4sPfPhVzbiZr9vh1SBkoHg>
    <xmx:9yQWaeb3wFMfqUEHqRxHxghDeaEWPwMJkybPApNeuwLk1AFXbxJUgHaA>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 13 Nov 2025 19:35:31 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Frediano Ziglio <frediano.ziglio@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Frediano Ziglio <freddy77@gmail.com>,
	Demi Marie Obenour <demiobenour@gmail.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v8] xen: Strip xen.efi by default
Message-ID: <aRYk80Sqo-sjN6fG@mail-itl>
References: <20251113154358.28704-1-frediano.ziglio@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="0O2GgWKb7mRY8ESq"
Content-Disposition: inline
In-Reply-To: <20251113154358.28704-1-frediano.ziglio@citrix.com>


--0O2GgWKb7mRY8ESq
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 13 Nov 2025 19:35:31 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Frediano Ziglio <frediano.ziglio@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Frediano Ziglio <freddy77@gmail.com>,
	Demi Marie Obenour <demiobenour@gmail.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v8] xen: Strip xen.efi by default

On Thu, Nov 13, 2025 at 03:43:58PM +0000, Frediano Ziglio wrote:
> From: Frediano Ziglio <frediano.ziglio@cloud.com>
>=20
> For xen.gz file we strip all symbols and have an additional
> xen-syms.efi file version with all symbols.

You meant xen-syms here, right?

> Make xen.efi more coherent stripping all symbols too.
> xen-syms.efi can be used for debugging.
>=20
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>

With the above fixed:

Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkWJPMACgkQ24/THMrX
1yw/dAf/fX/Q3YpXGqUSRpqhvuodLnXj0r2RoW0d/TcjM6ne60GgeRuc8lrdGstU
N6+BJGBzyVpT2Sm8F706VsyXChbC5dt7IhE1fNLgBD9kp5FSBTGq3MpBzNq8KahE
1KUgUsXpQB+QSywHlHJa7OQ1XI1DG12I8+RqTCg2jWiJVDBraG4/03eNUF379sZV
FI7V/e9HTANbaQ/OSLWrefwiEx8v9jf0ii7hOkegxbElbr3Tg/RBhmIzTN29ra7f
4w8aQW3nqRbsHmYRYZxpOnWlJgjvbo5yuDpe/XyGnKUVWftt8dUs0ZS5yPryVo9w
x4qzflpz/1u1n9QEKyPL1Xbq3Fy22Q==
=HBpH
-----END PGP SIGNATURE-----

--0O2GgWKb7mRY8ESq--


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 18:40:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 18:40:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162056.1489846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJcF9-0003mS-VU; Thu, 13 Nov 2025 18:40:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162056.1489846; Thu, 13 Nov 2025 18: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 1vJcF9-0003mL-Sk; Thu, 13 Nov 2025 18:40:27 +0000
Received: by outflank-mailman (input) for mailman id 1162056;
 Thu, 13 Nov 2025 18:40: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=X5Bi=5V=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJcF9-0003mF-0I
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 18:40:27 +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 350acf2a-c0c0-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 19:40:21 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA1PR03MB6562.namprd03.prod.outlook.com (2603:10b6:806:1c9::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Thu, 13 Nov
 2025 18:40:15 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 18:40: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: 350acf2a-c0c0-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DcW70mAgotGGgQX0Psdd94uTiCUDMf3az56xCp4EfvhbeFQt9H4o+EWRwqN39EAs2RRRYUYCaoWn8ZoetRhanqpc6j5YatWJKzHFhhNC+8w+/xMkKSbQj5IP5SAS/ngqLbHrSoR4oQ3Aur9AXL5b4TNFK67ub5+s57O2SXkSfL7oX/Z46gVs09Bz89is7hEMXhroNVn9ZRVmFjd8OKeHUvxYuhjNnamcgio8zmOpAM5Fr8Gm3p6PHCo6W3saizCdkLtL6zYNbz8SqDesFTC/6ApJZPPUYn7lMJ5m8TOHJKwv7TCqh9y1quurQwEkM+wD+rs3ID36H1qzT74LxHKCng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=h64cCLujmHCZOMUaU8v8tv2k8Sg/VOIGd0dYcxlE0xI=;
 b=HY5Kknnye/oHoUEXbDZB1Z5+QZX2LFjyByPwMpLEMgsQDuYoggjrYkNV7iQB/kUeHMyFuJxwuD/VdhhlKq4+Kb5DVQwIGmBiy0yHfjySl5o0S+7Gw8DqBRkgC/RFIV2IH97HzLsRePRQnYSYID5a3HmDuvi6/VJTVmUqFqKJeHKKP94DhiTK59bsCaxGIo9NjVMLPVIFKSHaIITdIykcuDNilJXigQC8Ssni0H5tnXKNbaXdsxb6YJV9tJrerf9iM5PMHR8tjzGqocbAoLDtIGIstX+2e6rqjYgpkxarLJkHFMfIFaZaRtRZgbtkZZgSHMMNLREXQWySL1MOjKQZtw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=h64cCLujmHCZOMUaU8v8tv2k8Sg/VOIGd0dYcxlE0xI=;
 b=H0ugjnXYH49EEHoROQfBeya5jpo2gbEM5YhjdoBsWb6THS++3gcIS3Ngb2RgSNqLe9iQ7MzzR9iElmnTOrf5/Q/IpPKXpSfcqGFGdXX1HGDBg2uV2eSy63u3R2tWuHoHJl6zY4b4ml/bDhhIAhfpq68esdbWPLDZrMZRag5ImWE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d95e5a85-a8cf-4207-94d8-5e1afff615c1@citrix.com>
Date: Thu, 13 Nov 2025 18:40:10 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.21 v8] xen: Strip xen.efi by default
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Frediano Ziglio <frediano.ziglio@citrix.com>
Cc: xen-devel@lists.xenproject.org,
 Frediano Ziglio <frediano.ziglio@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Frediano Ziglio <freddy77@gmail.com>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20251113154358.28704-1-frediano.ziglio@citrix.com>
 <aRYk80Sqo-sjN6fG@mail-itl>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <aRYk80Sqo-sjN6fG@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0182.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a4::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_|SA1PR03MB6562:EE_
X-MS-Office365-Filtering-Correlation-Id: 2a3ce7c5-7aea-48c8-34e7-08de22e415f5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|1800799024|366016|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UjMyNjB3MXgrY0RwTExjNklqZTNvZGlPRXdTRkE2bHN1bzFKeDY3bk9DcnEr?=
 =?utf-8?B?aXBUY3Job3R3a3FDWUd1SVA2S0x6MzhNSlVoQ3J3aXN6ZlZ3ZjBQc1BVWmJx?=
 =?utf-8?B?SHUyVThNcE8vcFlZc0ROWGQrelFZQzFIOGt3L0oydTVRcnRNWEI1bGdsR0pX?=
 =?utf-8?B?WWdLYXFRMUVCMVNXaWNCNmtSc2p0Sm9DRHNCUk1sZTYxa0t2ekFtdHlxT2RM?=
 =?utf-8?B?Nno1Q1JOL1Y2S1drbkRDd2VycUp1S1M0TE1EREgrbFZwbmxWTFI1T3RDUEFM?=
 =?utf-8?B?ZmFKV0ZyY1daY0ZEVkUvRkpYVnZ4YSt4bmJ4S2RBZ3ZWRDduMUtKVmh4TVRK?=
 =?utf-8?B?dk00Q04xSnhHbytheUZVVUxMNXlKcHprb0xtalB3WTZ3Y1V4eE92QkI2c3J4?=
 =?utf-8?B?SVJ1UEdtVDRWNk8ydmc1UFZVdWhaMDdBRDJXUkhBeFBwVGdKdWwrWVR2OVI5?=
 =?utf-8?B?VHVvVFNhbTAzbTFxT1l6RUFqb1hSa3QxUGF0UGlJbmlQcVd4T2hqUVdZa0Yz?=
 =?utf-8?B?cWhCMndEa2E2MldIenhaM1RnM25QTHJ0dW4vTmZ6NlN5dk9VeitDeFBCQ0ZC?=
 =?utf-8?B?MTIvQ1FTSGdZd0JPL09qUTlFZzIvU0I3STV1RHFEbzU4SkFYNjJMc2ViNzNN?=
 =?utf-8?B?RGhvN2ovNDB6MTEwaXpVTklrQmZyT0RxdmhMWWhWcC94L1ZxRDI0NlpvNUxD?=
 =?utf-8?B?ZUpyL3YvQjJrRkk2Nm5hbVp4VEU3alFVUmtSVlN4eDlpdUQya04yUlpWdjJ0?=
 =?utf-8?B?U0pHdUhUMHg3OWpCbkFvZFByRzZWVithSDRzSVp2ZWFMM1NKbzdJZjVtRTZ0?=
 =?utf-8?B?NkdQMlBHNDdrREQzc0hoQkF4aWVKL0pGMTVQVWx6RWtXRHdES0o3YzN3dnZu?=
 =?utf-8?B?SmNRK2xNa3FKNDlOWHU4L0N1Q1FxaTlOYkdvMWFubEdzeFpnaVJpdnpMa0My?=
 =?utf-8?B?ZEc3Sm9tbmNGSDhYU2k0WFJtUTRwTUQ4WHR1dUU5amIvWDNyakpvQTV1WmpI?=
 =?utf-8?B?RVhnMmlIWjdnQjRQc2JLRUF5K2dXSENSc1lSVWs4aGh0N0dnWXZ2clU2NXFr?=
 =?utf-8?B?ZXlDc201MFA2Vk1oMkVQelpXN0k0NFVoVmN3SHk5L2lYT0YrWXdZOCtwMG96?=
 =?utf-8?B?N2tjaFFsekVNWDZKSzR3ZFRXRnVTZ2JiN0tiRTUvdUtqTStjZUdWZG14MnhO?=
 =?utf-8?B?QVBScXNoVTZtckNzVnc2a05TS1FUL1JHb2h4QjZFcFB5Zk1VL3NnN29sWkFq?=
 =?utf-8?B?SnpOM2dob2RIMmFlTUZDNUNobk5qcmVMWkFVZG5lVW1WbkEwTWVoQkFpQ2dN?=
 =?utf-8?B?WmQycktpZmwySnRxNkF2OG81ZlUzS1pGTS9RbHNUUG1BR2F3NXloQ0dOTEh1?=
 =?utf-8?B?S0hSdXVTeHhYdkxGZkVOTGdkbmhpWTMwWHBYaVFsYTZORjVvWlRiRlBVU005?=
 =?utf-8?B?R3VGTzZIQVRvVFRzZWlTdEo0bllPZ3JOcmZQdnE3WUk5K2ZQcEJDMmd4UmNL?=
 =?utf-8?B?ajhFSGNXMTBQZE1IbEFXL0d4UmZpRlV6S3RObFNkN05qWHBNblVGRnlUUmxC?=
 =?utf-8?B?SEVFdGkrRGEycFlPSTJFT2tjMkR0c0hEa1JDdFBXU3dsRDZ1M0F6ZHVwOHFW?=
 =?utf-8?B?SW1JK3d1blpDVENUaUhPdDBiZEpkdXpzZGUvemZWLzlCa0VGU0NEbi9yYXlP?=
 =?utf-8?B?TVc4MEtWcU8vZmtoSW9UVnlsZVE1d0h0b25tL3laTXo0bHBNRXRzNkhIbk5l?=
 =?utf-8?B?M2tOcFlzWkFlR1NUblo5bTF0L2ZKc2RxZy9QNFBLdnFzSU1hOTZiSERXUlky?=
 =?utf-8?B?VzVZSG93UlZwZitKU1RwUnFBSU9kTTRmQmhLNnRqSk04ZjU3bFR3VHorZ0Vz?=
 =?utf-8?B?aTh4NS9lQld5akRwODE5bEFKbEdjMU9Vem12RjM0OTFWNzd0emFlWjdDVFNt?=
 =?utf-8?Q?4oWtvGXDrvtFcuvt1vxlDgdJEbSs6h6R?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eFB4aC8wYlg4SDVUbW1qVnYvb29kRWhSVENDcnBTS3d1NzhtbHg3SWRxMFBV?=
 =?utf-8?B?Z0dqYU12VFVLNFZZbVp1S3FGMm5UUjYrODlSN0VtaGQzekdQTlZxWkhXUFRR?=
 =?utf-8?B?OW1vVnhFU0c4Y1BVMk9tdmtvSlFBbDBidGZsRHFXNWRJd0hOY3dMWDFBTjFT?=
 =?utf-8?B?YWpmSGhkdWVhWEh6WkcxdUoyL1hLL2xkV2NpMWU0bWRXMHpTUXJleGhZbm80?=
 =?utf-8?B?MWdoQkl4bSt5eHMxVktFbm5YVEdva09wMENtS1FOOU9LWW5RaVBsTjJWWERE?=
 =?utf-8?B?YWlidG8vd251TVRSR2lQeFh6djdVWWhEdTlieVREdjVQVlFPYWhZZjFYVEdW?=
 =?utf-8?B?bllGTzZOdlBheDdWanpDZmZuaEhIbFRMQWpJN1E0MUVYZFlYY1E4ejBwcUJ2?=
 =?utf-8?B?bjl3U0VvM3JCWTBaalp0Vm9yajhIcHBHUllQSG5RYlVOazlod29RZElEVCs5?=
 =?utf-8?B?R3RZWWllaEk2bEpLMXJCRnJtRWFLY2o1d0VmR2lXZ2FGZEpsYVpOYmt4WWRI?=
 =?utf-8?B?dEZ1VXhtN0o3QnBwZEJOSEhwbDJ5ZUpYTHlRQ2wzQzE5a21GbXozcWJXRHlE?=
 =?utf-8?B?QThuUHcwMFAwVVhDSXJkdmk0RzlTeVh4RFZtMUVOM0hZUnAvbmRmTElONndq?=
 =?utf-8?B?Umw5SUNZaW4rdFJMQTBUeENuVFpMbmRqSldqdngzY3hRa0NJUG1Tekg1SllQ?=
 =?utf-8?B?cXNVblBNcDEyMk1Kdkg3UVVzTC9Fc3FXbi9SSTMwUitqM000WVBWMVo0SWJ1?=
 =?utf-8?B?N2ZLMTd3MmNsZlBueFB2UUx0YTYxaGdXU0tUcDZGVlB2S0gvMUtMQkRCZkdM?=
 =?utf-8?B?K3ZQL3hvUXRsVHI4T1NBb25lWHVvQ0FCcjMwMXZyQk5CdytFL21nbWtJQ3pv?=
 =?utf-8?B?UE5TQW8zMG1MbWZzNVNqdDkvQTI1dHMxVi9HNURBblNqZFFucUFWMktEemdL?=
 =?utf-8?B?L2pERkpjVHU4eUtHem13M3crRUloaGhKbWRaejBRZU0vQ2RFTlVSWVZBeHVM?=
 =?utf-8?B?bm1TOGtnMHZGSUlnd3pxVHJjVmdyNXZVcUtqRTVraTIraUIyN2w3L3RKTVRL?=
 =?utf-8?B?NTVaSTBKUEdMOU9aa2dMRWFoV3ZLVGdLemFtbU1YQlBvU0NHMFNHZ3FTTlNx?=
 =?utf-8?B?aUk2Q1VnejRTcEJXVGR1T1NFK2xDTHIvY0NRQXdxZ01DSDRCcWFVNVJhMG8w?=
 =?utf-8?B?SkVFV0RZWkZXZENicEt4V1VnbjBCVldyY2Q0c2hNdytONityZlFJSG9xTHM3?=
 =?utf-8?B?ayt5b0hzNXZHKzExeEhSUkVTem5xNXdudjhVa29xc3pXL1FCNzJSaDQ4S2tv?=
 =?utf-8?B?ekVMekxXTG5pZFB5M3ZwZjBrNGszaU5Gc3VjUjE2eDVBWkVDajNuRlNJcVcw?=
 =?utf-8?B?RjFyMEZLYVp2VDRYMk8yaHdaZGtuclJrRmoyMXVSbC9NM05LbXExRFJxbkQy?=
 =?utf-8?B?Vld2QkJxdWFNalFIWTNVcU9WUFNrUFozY1RobCtYelg0U0MzQzRXVUZKNmpa?=
 =?utf-8?B?aDkxSWoxTlR6R1hwamtuU20vU2pDcFpKVTRpcyt4eExIMEpXQU1kT2U2cG5j?=
 =?utf-8?B?OXhUcmFlVUQzTmpHT2xrdGh3Y1BoaUtZU1JBcTMzZUJrdVF1V2tXSEgzaldV?=
 =?utf-8?B?MVBIc2lSVERBWFhReUwvWlp0NUhYTGNNMU1odjNzM0FMOWdNSU9XMFFqWjla?=
 =?utf-8?B?eXMwZVhLeEI0dXRzWUFsNkhUWjk0ZVduZmNvNU13d2ljeDJJTU1rRVVPZzFL?=
 =?utf-8?B?QldPMHBRbUpCYWhhMVZ6VVdldGxLZEpSdTJydWl4TDkzMGI5WXZrTmtBaVpU?=
 =?utf-8?B?TmxjbWExelNSUzU4Z2tnajR0L25pOHdubGpJRDJVWE0ybjZOc0ZpSllFaGNt?=
 =?utf-8?B?eXVHL3BBek9adUNpY05sVEh3L1JYVFdDVXhacjkzcnZyODcvT3ZxNjJ6LzVl?=
 =?utf-8?B?ZnUwelJ3RFJBVWgwL2hPa0ZoSEF3TWVXTk9Jd3NMSEt5S01scFVnb3B0cWJZ?=
 =?utf-8?B?bWJqd0xRRzZmOXNjb2Q1dFVMcndpMGVCSXhtN3E5REtnOFlwMmlOdzZUSm5N?=
 =?utf-8?B?Z2p6RkxYVW13eTAwaG4xNWZOdGtFTVpaUyt1Zmw1NzNRWXBIYStCckt4d04w?=
 =?utf-8?B?L0M0Yy9xSnFKTVNKTUZSK2VkT0l1czJkYWFEeFpsZ0lHZ3dTa096L3NHOUlG?=
 =?utf-8?B?OFE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2a3ce7c5-7aea-48c8-34e7-08de22e415f5
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 18:40:15.1041
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: CHkKD/hIpIZ/UdU8BlbYVh9VBpTNfgeqO1dJIlBZ5SL+Qw1t3FH65sR1PDSuLj7WpNUcyP0lBfvwg5DAQy3zVqBTxeE6nVgf/9vkAVjQnRo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6562

On 13/11/2025 6:35 pm, Marek Marczykowski-GÃ³recki wrote:
> On Thu, Nov 13, 2025 at 03:43:58PM +0000, Frediano Ziglio wrote:
>> From: Frediano Ziglio <frediano.ziglio@cloud.com>
>>
>> For xen.gz file we strip all symbols and have an additional
>> xen-syms.efi file version with all symbols.
> You meant xen-syms here, right?

I think so.Â  I just noticed the same.

>
>> Make xen.efi more coherent stripping all symbols too.
>> xen-syms.efi can be used for debugging.
>>
>> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> With the above fixed:
>
> Reviewed-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
>

I've done some ad-hoc testing and everything seems to be in order.

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


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 18:43:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 18:43:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162068.1489855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJcHs-0004Xg-BS; Thu, 13 Nov 2025 18:43:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162068.1489855; Thu, 13 Nov 2025 18:43: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 1vJcHs-0004XZ-8t; Thu, 13 Nov 2025 18:43:16 +0000
Received: by outflank-mailman (input) for mailman id 1162068;
 Thu, 13 Nov 2025 18:43: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=25e8=5V=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vJcHr-0004XT-Jd
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 18:43:15 +0000
Received: from fout-b2-smtp.messagingengine.com
 (fout-b2-smtp.messagingengine.com [202.12.124.145])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9bb46672-c0c0-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 19:43:13 +0100 (CET)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfout.stl.internal (Postfix) with ESMTP id 0C9A71D00313;
 Thu, 13 Nov 2025 13:43:12 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Thu, 13 Nov 2025 13:43:12 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 13 Nov 2025 13:43: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: 9bb46672-c0c0-11f0-9d18-b5c5bf9af7f9
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=1763059391;
	 x=1763145791; bh=lXxLZsOxpREcR2HuC2Fg0UpqH2BHTtEmo6JxubieZyA=; b=
	KAOtBBApaFoXo1ev2sX81dEjpOwSx88xDiKvL17DK5xSVzR9tOrpSTH/LDKso1dE
	HygUFq4ywRQEYw8SwDZKXR1g+4GoO4l7GfvuiP5vYyjFdwcet9nB4JD9UwQzJNHd
	3VzVP8huy6E2TVOaU0B1LWLY2owM34eGxa3ZIHjhPb/HUuQBWKKxPLXLsug/CuGw
	lg1WzBfeOyY7EhojcnvRS/yvdr9FCxUzB+nqL2u7X5BJrgQEiYcCL8BfkKBKuDD2
	iM2SfPWznqdRoz5OxuhonR3UWo2YYO23ZMBLmXjw5uAp6kkkDi9LRswZc0JDzDFJ
	GFNMwa19WFedVK3SXXV/FQ==
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=
	1763059391; x=1763145791; bh=lXxLZsOxpREcR2HuC2Fg0UpqH2BHTtEmo6J
	xubieZyA=; b=okJS8zZIk6KNPbQrqKWzVNt0s75dEtfV5QtmgKKaVKhFLkD6+/t
	1lrjxKCrCDB4ZDDprpNf+jR4QZx1w9r6LgoYezwARBetfnNaPWun4csiKshjXn6/
	xhOvLtRkDI3tEozbJ3E5PZss6q5UQ1/+OiJ0+mbDp1eqhQvj3dycQEKNAdQUrF/i
	naOhOszABdDE3OsqYWUkeokID4Oy0TcD5IZgF7aCoAKc89GGBt87qXEYqT+4O1lO
	nhmCtJ462psyqWGR2hmFrw9TK2S8Kb1DGsDXlJBZiLyzmYj8i1B8YyKZFxJnD1Zf
	1/rg9vQ6zmPJZdbzujYmFpDlnH1/AeCECkQ==
X-ME-Sender: <xms:viYWaflcrBwHFfi9H4DAVYlkWZTPuEf4PNzZShGPUAO7_-n_f5HvIg>
    <xme:viYWae1JL5W2mtFO8mr-uBCpLv-9GhtfaZT13kaNOhfxFFI800ON-ykEcuCfbEZzD
    P9LPmJmoapQJMx4jWIQ57kXDlKuZd9oQK-uau9SyZ58fPcMecE>
X-ME-Received: <xmr:viYWaX24zDD4Emr8zQXTEC4UQFRzLvK9og_DIq56jQcBNmere7U7BZ5XtEhbSNOdG_3JTGuvNXHmmRR10JS4m0BOsThlztgROMA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvtdejieelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepieeluddv
    keejueekhfffteegfeeiffefjeejvdeijedvgfejheetuddvkeffudeinecuffhomhgrih
    hnpehkvghrnhgvlhdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhmpdhnsggprhgtphhtthhopeekpdhmohguvgepshhmthhpohhuthdprhgtphht
    thhopehlihhnuhigqdhkvghrnhgvlhesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtph
    htthhopehjghhrohhsshesshhushgvrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhl
    ihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepohhlvghkshgrnhgurhgpthihsh
    hhtghhvghnkhhosegvphgrmhdrtghomhdprhgtphhtthhopehjihgrnhhgrdhpvghnghel
    seiithgvrdgtohhmrdgtnhdprhgtphhtthhopegthhgvnhhqihhujhhiieeiieesghhmrg
    hilhdrtghomhdprhgtphhtthhopehjrghsohhnrdgrnhgurhihuhhksegrmhgurdgtohhm
    pdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrd
    horhhg
X-ME-Proxy: <xmx:viYWaYq72mAbLE6ZjHOIexKo5CBfw5XhM-X8ivyjDyycQKzAVXdNww>
    <xmx:viYWabiq9dfFJCgJNel92GabUZMqPSE0uMT3D2yUSVQR3P-x7Mvvqg>
    <xmx:viYWac-1J6roKTKpn4zsuYd58CvB4D6-PQIoNUj571oenr_wTchgMA>
    <xmx:viYWafWSlL5Tb8_48cWM70HjW6QP0nZRK0CpZAjSSnK_slG9toGbWA>
    <xmx:vyYWac8fLx6NH354UureVdHrvxp2BRJzEP9yIXe4imP6SXmX4CqXqFro>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 13 Nov 2025 19:43:07 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: linux-kernel@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	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: <aRYmuwW5rShXqMj1@mail-itl>
References: <20251102032105.772670-1-marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="oRemhD1n1wZhbvYq"
Content-Disposition: inline
In-Reply-To: <20251102032105.772670-1-marmarek@invisiblethingslab.com>


--oRemhD1n1wZhbvYq
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 13 Nov 2025 19:43:07 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: linux-kernel@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	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

Ping?

On Sun, Nov 02, 2025 at 04:20:12AM +0100, Marek Marczykowski-G=C3=B3recki w=
rote:
> 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 new
> 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 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).
>=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@invisiblethingsl=
ab.com>
> ---
> I considered re-using one of existing fields instead of a new
> xenbus_device->vanished, but I wasn't sure if that would work better.
> Setting xenbus_device->nodename to NULL would prevent few other places
> using it (including some log messages). Setting xenbus_device->otherend
> might have less unintentional impact, but logically it doesn't feel
> correct.
>=20
> With this patch applied, I cannot reproduce the issue anymore - neither
> with the simplified reproducer script, nor with the full test suite.
> ---
>  drivers/xen/xenbus/xenbus_client.c |  2 ++
>  drivers/xen/xenbus/xenbus_probe.c  | 25 +++++++++++++++++++++++++
>  include/xen/xenbus.h               |  1 +
>  3 files changed, 28 insertions(+)
>=20
> diff --git a/drivers/xen/xenbus/xenbus_client.c b/drivers/xen/xenbus/xenb=
us_client.c
> index e73ec225d4a61..ce2f49d9aa4ad 100644
> --- a/drivers/xen/xenbus/xenbus_client.c
> +++ b/drivers/xen/xenbus/xenbus_client.c
> @@ -275,6 +275,8 @@ __xenbus_switch_state(struct xenbus_device *dev,
>   */
>  int xenbus_switch_state(struct xenbus_device *dev, enum xenbus_state sta=
te)
>  {
> +	if (dev->vanished)
> +		return 0;
>  	return __xenbus_switch_state(dev, state, 0);
>  }
> =20
> diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbu=
s_probe.c
> index 86fe6e7790566..3c3e56b544976 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 =3D 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 =3D true;
>  			device_unregister(&info.dev->dev);
>  			put_device(&info.dev->dev);
>  		}
> @@ -659,6 +662,28 @@ void xenbus_dev_changed(const char *node, struct xen=
_bus_type *bus)
>  		return;
> =20
>  	dev =3D xenbus_device_find(root, &bus->bus);
> +	/* Backend domain crash results in not coordinated frontend removal,
> +	 * without going through XenbusStateClosing. Check if the device
> +	 * wasn't replaced to point at another backend in the meantime.
> +	 */
> +	if (dev && !strncmp(node, "device/", sizeof("device/")-1)) {
> +		int backend_id;
> +		int err =3D xenbus_gather(XBT_NIL, root,
> +				        "backend-id", "%i", &backend_id,
> +					NULL);
> +		if (!err && backend_id !=3D dev->otherend_id) {
> +			/* It isn't the same device, assume the old one
> +			 * vanished and new one needs to be probed.
> +			 */
> +			dev_warn(&dev->dev,
> +				 "backend-id mismatch (%d !=3D %d), reconnecting\n",
> +				 backend_id, dev->otherend_id);
> +			dev->vanished =3D true;
> +			device_unregister(&dev->dev);
> +			put_device(&dev->dev);
> +			dev =3D NULL;
> +		}
> +	}
>  	if (!dev)
>  		xenbus_probe_node(bus, type, root);
>  	else
> diff --git a/include/xen/xenbus.h b/include/xen/xenbus.h
> index 7dab04cf4a36c..43a5335f1d5a3 100644
> --- a/include/xen/xenbus.h
> +++ b/include/xen/xenbus.h
> @@ -87,6 +87,7 @@ struct xenbus_device {
>  	struct completion down;
>  	struct work_struct work;
>  	struct semaphore reclaim_sem;
> +	bool vanished;
> =20
>  	/* Event channel based statistics and settings. */
>  	atomic_t event_channels;
> --=20
> 2.51.0
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkWJrsACgkQ24/THMrX
1ywbfAgAmQnHHJlmbMTOX3RtNPXxgqaSefI2mnhv5lYA7X74m8OZxYA6RV/AIkU/
yAVUPQmOahNBjJnSGhkTTV2aFgyf+r5O63Hr9eFGgbGY6TH416bgXLj/dJ/cfLgL
OWxAhSF9TphGmIu1Aqm/JmkM7dic8yTNoL72eKdHY2oKie6dqtX6NfmJEwxrQYwP
iw1pP1A2tWDR+mzfvm4p+camWTAxlYc59CgA5VKOGcb9XsC6PxPXteIkG70bz/iv
d1FywMWsOTb4buaLMRGAGATEOhrK5BY5nPO3uYRogL0EB8zBVUJOIIlLlOYma8GV
G21Rrxa+gQvJtJM73m47Tj0cq8O+TQ==
=/ugj
-----END PGP SIGNATURE-----

--oRemhD1n1wZhbvYq--


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 19:41:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 19:41:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162088.1489870 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJdCH-0004b8-Js; Thu, 13 Nov 2025 19:41:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162088.1489870; Thu, 13 Nov 2025 19:41:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJdCH-0004b1-H2; Thu, 13 Nov 2025 19:41:33 +0000
Received: by outflank-mailman (input) for mailman id 1162088;
 Thu, 13 Nov 2025 19:41: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=X5Bi=5V=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJdCF-0004as-Ln
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 19:41:31 +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 be1af50e-c0c8-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 20:41:27 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MW4PR03MB6990.namprd03.prod.outlook.com (2603:10b6:303:1b9::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Thu, 13 Nov
 2025 19:41:23 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 19:41:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: be1af50e-c0c8-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PoxYjJhgMOvLCVOgLOlboHqT/bAdefHvU+FWT6IExYkwE40zty85sJaGWpD5E70P+4jQV1R8U9xdTz8bdbETGOu1D0v1wvxAvsyyF7H6YuIetDA+xId5jZJU+CPXSMQJnKy3nEWAyVG0g+TjIMQrXYZ0xhi8gUtQMDu/LmACzvYskBVNp6T1FUjjpsu9dNwoxYf5n3ssCxyVcoUaIy4XlV1kfxpM8AEHbduwZFGtfMzKEIVJeBHWC75+Pw+6SeEyYYhqMwgtfBEXCV6F2VrvsHiAKKRBK4fPXR36FKUTHnVYvRjCcCo9/v82wvWQl4P0B0aqxwtzqCfATTEo5p5bvw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=o9jckqquql43oSFg1P7lULuQw6lRNfcvKyEb4bMI478=;
 b=SfWCVcPopyHMonbl50yCBKlzN3JCLTHAXAidkSp51bc8UtdXI17kx3pCmtZrSE2j8qVZ0Y+WAYUXUhV05TIXKsMPdaaQAIYo6IPNxrV5HLR9hZ6oPzcJyfsU4UEXzbIjhcU7EbTQoT6GmEfM+LpPx+ECJuNopFYROTPGpogXDprOlb4hNhrwK57HidaEr0aiaiVQGaT2W307Vy7GVf0IOvO5JBDaIhABzp5jBBPFAlgMJEnBuuW5ltUv5rCrVPPJ8bD8DSIQOk4A5IPM9GjY9yLhqtmtUqYy3aRQ+IiJS88y8Nu3oN4WLtrbphjTDT6d/21HYQ1LfE08VWsTZr/gcA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=o9jckqquql43oSFg1P7lULuQw6lRNfcvKyEb4bMI478=;
 b=eNhmNcO8fYbiOXs/zEa63KoCddNxr7+3FHOYO4DR05vgRKpWdqAIQ7e0dfsAtMCLCY0H1C/IYLfEpN++iIM53hYf1q8hJoVlzw3xZYfS4YzfXVY/gvx8VvqvsjrlWTZz24a1GqtEPE47uGLt0MNnuONRUGLPS6DgiQgHO1GMx8I=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <a3bbc769-7d37-413a-a06b-9b88bf77e753@citrix.com>
Date: Thu, 13 Nov 2025 19:41:20 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] build: add new make pattern for making file from
 file.src
To: Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.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@lists.xenproject.org
References: <20251111161959.13667-1-jgross@suse.com>
 <20251111161959.13667-3-jgross@suse.com>
 <f5934f86-7a93-4184-a807-86fc6e18157a@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <f5934f86-7a93-4184-a807-86fc6e18157a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0218.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a6::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_|MW4PR03MB6990:EE_
X-MS-Office365-Filtering-Correlation-Id: b40019ae-9dd1-483f-3eb0-08de22eca074
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?MVp2NW4wanNMMmJVQ0trc3MraG1lOEFWdzFETUdIcGswMlZMbkgvOVF5RllO?=
 =?utf-8?B?OGw0dzAxckdDclRPLzRCTVRiS1N0ci9TbHJOampERmZLeERabnhPakNYNTNm?=
 =?utf-8?B?b1JaNjdkcFN6cmVkMnNORVFJQi9RY0FTK2x4eFM5N3h1OVlwK1VyMVhmVWU0?=
 =?utf-8?B?VVdaamhPVktWSWljWWNlTUlxMXZENFV5Q3hjbVA3OEV2QzZSVTRNeUVzR3NC?=
 =?utf-8?B?MEhDQURGK0l4dEhXM1hHcTBsSGFyK3ZmanMrUnZ0REV6K0p3L0xuREJ4TmxJ?=
 =?utf-8?B?NmhwS0U0WVRMRzA2ZE1PcDZqWUswRzNvQTczR0pHODNyemo0cEdJVTFXTkVT?=
 =?utf-8?B?bmE5Sk03NS9oSHhaRkJUbCt5c1c5WU5FZlNnWVM1V0UxanJ3Z3hWN2lDVmRn?=
 =?utf-8?B?Nit1bkx1OFJlUExZQmV5bmJoUVpXcExFMWZtUDRRSlBaREdJcEFKSnZCb0xD?=
 =?utf-8?B?bkhJM2wxa0hCZEQ0clpYakoyVjMzNmdtdTJETFBXZTF0ajloV1hwaVZrYW4r?=
 =?utf-8?B?RjFYN3FzSUFrU3FURkNZZWdGRHlJcXBBWWVSUXF0VHFwVkhsS2l5SDN1RCsx?=
 =?utf-8?B?cEpJNk1Hd0hMWFJpTloxTStyaHVEdkt4UGRFRHNQUXpQdmV2S0duYnBXL200?=
 =?utf-8?B?TlUyTlZ3ZHhFeFN1eWxsQTkycDFIUU5nNmNOUlVCUEQwYytsckxDdWlrRjdX?=
 =?utf-8?B?MDlHMktUeVdSSTVQeFpXbWUxclNxRjBCalc0OUQxYVRLYkFjZGlpV2FpWVFm?=
 =?utf-8?B?N1BsTmd6Y1B0R05CbEtiZ1FZeDJRS0ZKdUpwQnZhbXNlMHc2MEJ1bFduemJB?=
 =?utf-8?B?SkhpdkhHY0ZDK1ByUUlYcE8xa1RCZlFTTzJrYkpkZUFYeHpISkJScHpudURL?=
 =?utf-8?B?bVhGNVJ4MDhLNUlnaURMaDM3UTdpVlNtUXhBSjNCc0xQNkNmSk1iMFY4Mk9D?=
 =?utf-8?B?cXNmQUpyUFc1eXQxc3BGSURlUFM5eldCK1M4WHFRWnZ4WXlrZVVhQ3NobkVa?=
 =?utf-8?B?T3dMdUdRZTYxNXhUb3EvT3lPOVVjWXYxRlErZHVEN0NuUXJMSkhnV3kvTFFQ?=
 =?utf-8?B?U3BJZWo4RThsTGdzSlVnRm9MMEphVGRQc1hsMGFxdEcyNVJ0NmhlQ0orWklx?=
 =?utf-8?B?cWRFZ054Tml6L2JXRWZ5bGVVa1RoNkNiTVlUQUtTL0txa1ZucUZIMEdBaDk3?=
 =?utf-8?B?RVpVN3lLSUM0NHM1SDVadE5nTWNQZW5nU2RWQzFRYTRLWnlhak5pWmpIbVBp?=
 =?utf-8?B?aVlSVHJKYlF4eEpqSm1nVmZGVlR5bnZhL1BPZk9vQ3hqUHEvTGRnRTV5WEdJ?=
 =?utf-8?B?aDgzZ3hzOFVaczFtalo3b1l2d29MSTRkVEZVMTY3cDJSOUQyTGFtUVZaU2Vl?=
 =?utf-8?B?WGViQ21hOS83Q3k2NGpaTlBxa29qelJqd3kvUThmZDcrd3hHbCs5R1dNUEx4?=
 =?utf-8?B?U3N3UFZFQS96VkF2OEJvN2JaOEorQjJPcmx4clRlQ0NpU21rRHlEeTdXRkNs?=
 =?utf-8?B?azlONmt0bFF1L25YQXhmNllteGtoRDdhNHZaRFhPaUNkS1ZVQU9vazM1bys2?=
 =?utf-8?B?KzRqbDVXT2lYcWd3bU4zNWVrVkZ6OHJVM2I3ellkWmp2a2pvRmpBTXZKWHdy?=
 =?utf-8?B?Y3lkemM0VnM0SmhJaHNkTWxobjlxS3pRNFJRVDhWeVc1VXpqWWVUZDI1ZGpr?=
 =?utf-8?B?b3hFRHBDSmNjelBBQ0pXL2NPTjVUOW1NVVZKd3ZoUkF1VVIxRUoxN3hYR051?=
 =?utf-8?B?cnNua3V5cjlqTnlsRk1Ub1Exd2VTcDJVSm1tUnJISkQ2OVZJSjNjaVdncjBS?=
 =?utf-8?B?N3RsWkppSkw5SDloWGVPRDA4UHpWK1o1VmowSDhaODhpNWNUOXRiaVRXNDFX?=
 =?utf-8?B?bkIzVTZUUzg5SkVSMFplbzd1M2lpTGpITU8yMklmRmVCditsWUJuZy8yeFlJ?=
 =?utf-8?Q?R/E5V1raQ6kWCJLVHsP8aw2eO+sn64tT?=
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?STlMNHV5R0dCS096L2V6U1FzZ3IxQVArNm9BbHp3SEorQ0ZPWnFoalR1aUZU?=
 =?utf-8?B?RktvVFRJdm0rK3RvbGJBem8rVVpwYXppNFBnVy9vaWpBUURjTmhJRTJ6L3hX?=
 =?utf-8?B?THQ4VGVJYnI2R09iTWp5cmRqc2I5OFA2dTRSNWxsR013ZDVBMkt5YWhweWFP?=
 =?utf-8?B?NytKc0xtdEtTdXpzVEd5MVNyVVUvWjNRMmhvUjRVWFpwZy9TTHIwREs5RHJr?=
 =?utf-8?B?MlovbUN6a002VWVROThhM1ovV0wxaUFkbG1KNHFYM0k0RytoZktXTkY2cndT?=
 =?utf-8?B?dVl4RnZlbCtpdVN1djZxY2JaOVNSZnJuOWdwOFRzZWRZeTlpRVlGVk5xS2Vl?=
 =?utf-8?B?dWdnOVNMSGhCdEc2TzJya0xLTy9HYjBLSVRadVdKSWQ1M3Y1ZkUyY3NzUWFY?=
 =?utf-8?B?dGVrM083bXZtU3dabXd3QW1STWVWZ0ZWdmFPOTd6cXJ4dis0RzlxcTYzWU96?=
 =?utf-8?B?Z0NoalU2cjdMVkNkZUpHNm1XSGZLMXp0NXczazR6V0gvMXkxSzRtV3RHM2xk?=
 =?utf-8?B?TVBPVVdIWXlTZDFoZXIvYU1oVWp0M1oraU9YZ3pjWWtMS0RobWpTb2dMTUlp?=
 =?utf-8?B?ME1WQkU5ZEg0UE5nNElwa1o5d0NXcW1XQzBvaEdINUJFT080emoyMHVTVkM4?=
 =?utf-8?B?Q1R2bmRWaW1QMk9qeS9mR0JpNWJndTFaLzYzTEhydFVtUk5aSTNmYkR2ZTQv?=
 =?utf-8?B?L0RhaUJibkNLaCtrbTFwYk55Z1RKaTJHY3FFS091ZEJqbzhodmN1a3YzKy8x?=
 =?utf-8?B?YkNXK2hVUEVzeFVuTzFjc0JiNTZTMVA0NXRYS0p5NlY5V3N2MnJCbzU4Y3ha?=
 =?utf-8?B?ak9nQUJkSy81dzA1ZUFDNUo1UUtac3V6ejRDMGZHVXgvZ1Fza1RlTDZVeEZX?=
 =?utf-8?B?NEVjeGhSQ0VRRHlNMXhON2d6cFZyWHd3STRuMzk3UGZBNW1WQlUrZTVlNFFN?=
 =?utf-8?B?cG5icE05NkMvNWliU2xWd3RDNUo4Y2dHVjZoMk45dGdrWnFUbFlQUVdSMEVz?=
 =?utf-8?B?Q1l4Vnk5bThZaHN3Zk80aUMrL0x2YWNlbTNGcWNnckZxM2VLK2JVWXQzUFk2?=
 =?utf-8?B?Qk1CN1BrQThtTFM3ZmkybU9CVDRVSkdoay94Z3VvVEFwT3c5MGlQTGhnUWYv?=
 =?utf-8?B?VS9mOHR1ZWVBWm1FSGNnaU9uRHYrVFcrN0xYcU1jRjJkbGZYSytYTzNNbXli?=
 =?utf-8?B?MURyOStpTWUzMlZvSmNKOVc3aUsvdC8zQmUyVXJuSEdKOTlZZjF2QUxHVHJz?=
 =?utf-8?B?UTl0Z0FRRUZiaU95QzRJQzViZjZ3K3k5Nlk3dVEyT3J5MDFSUEZFTjZWc3ZE?=
 =?utf-8?B?bHBzQVhFWUltZkt2ZHdmand5UjJsVDV6ck9tTElGNEhGTjhQSDg4bEZySlho?=
 =?utf-8?B?c01lQmxIWWRQaGlacGFOQm1UMSs0UlArdWN5MnMwUkxaRVNtTEFoM2ZIc04y?=
 =?utf-8?B?NzNhbGs3blRHa0lSZm54RFZPTHEzZklXcmp2UDdCcGs0V1ZiRTRjTWM2cmhK?=
 =?utf-8?B?Ulk4Y0dST2R4YktEeFpMUnN4WXRUYVhGcWtQb1dvYlpRdUZCbU5CVUR4a281?=
 =?utf-8?B?WWhWWVlneGpHRW90ZHBxOWR4a1IvSE1lZjlNRDF3bnBHbE0vQVZRcmM5WXVj?=
 =?utf-8?B?b2dCTGo0UTRIVDZIeUFCRWRFcjVJNmV4cGU5M2VNR3dtODlONzZkVEVOQzE2?=
 =?utf-8?B?ZU40VzVrZlljeFZsK1dJNFBISFR0Y2lIS3NNaSs3ZE5waG1ZTW9mbXVFUDlq?=
 =?utf-8?B?aC9ybmE2MWtTVzROVmRMdytnT05GRDlTTVRXMFBKWDk3SC9QdzgyMHp3c1hv?=
 =?utf-8?B?cFVmV3ZROERINzVYdnIxbGRrTUlBbFRBZzljS2FTdXV1cVhPOUUvZmtjQzV3?=
 =?utf-8?B?VGdWbE9rWThuZDRHQklkMWd4SllSanJDanJuMTExRVZKcHhTQmgrK0pYVldJ?=
 =?utf-8?B?V08wV0Z1R3llbGNBTzEwRnY0OTVKMTNOeFFmWnhZOHkzejcvYytYSFB0TGpo?=
 =?utf-8?B?MFR1Q284NTh5ZTl6bGVrY0tMK25EU3NKRnhJdDhhSzErKzlCTWlqRzJhRm9F?=
 =?utf-8?B?NGxaejROQ1hjWCtraTVmU056Y3E5Q1FrZEExejhBaWJYTSs0eWxoUnJKamxU?=
 =?utf-8?B?bHpKcGVrK1FvOTRjaW04OS9pNDY4Z3Y5UnpEd2VhOFdGSno1VWp6Umo3cGhF?=
 =?utf-8?B?R0E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b40019ae-9dd1-483f-3eb0-08de22eca074
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 19:41:23.7083
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: p8PCZv/40BEVXUfcj1SxHIYKj2ItzBog9YyDrbApiZuG+Khc6j9GQSUDnxajIWBlrLlP8zgFDjVgcXLM/bYEeHSqn//cubYZFAl4rqYPBGQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6990

On 13/11/2025 4:49 pm, Jan Beulich wrote:
> On 11.11.2025 17:19, Juergen Gross wrote:
>> --- a/Config.mk
>> +++ b/Config.mk
>> @@ -159,6 +159,20 @@ define move-if-changed
>>  	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
>>  endef
>>  
>> +PATH_FILES := Paths
>> +INC_FILES := $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
>> +
>> +include $(INC_FILES)
>> +
>> +BUILD_MAKE_VARS := $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).mk.in))
>> +
>> +define apply-build-vars
>> +	sed $(foreach v, $(BUILD_MAKE_VARS), -e 's#@$(v)@#$($(v))#g') <$< >$@
>> +endef
>> +
>> +%:: %.src
>> +	$(apply-build-vars)
> I'm not convinced of having this here, rather than in less central places (say
> under tools/ and docs/). I'm also not sure I really understand why it needs to
> be .src - can't we stick to .in, enumerating the specific files that want
> generating this way (thus avoiding accidental attempts to re-generate files
> which need generating a different way)?
>
> Also - why the double colon here?
>
> (Maybe I figure answers to these questions as I look at subsequent patches.)

I too am wondering about .src vs .in.

.in is a well known naming scheme, and the exact point in the build
where it's generated isn't of interest IMO.Â  I've not come across .src
before, as far as I'm aware.

Is it going to cause a problem to keep all these files named .in ?

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 19:59:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 19:59:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162107.1489884 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJdT6-0006gt-0r; Thu, 13 Nov 2025 19:58:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162107.1489884; Thu, 13 Nov 2025 19:58:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJdT5-0006gm-Tc; Thu, 13 Nov 2025 19:58:55 +0000
Received: by outflank-mailman (input) for mailman id 1162107;
 Thu, 13 Nov 2025 19: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=X5Bi=5V=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJdT5-0006gg-9m
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 19:58:55 +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 2d42d4b7-c0cb-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 20:58:52 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MN2PR03MB5327.namprd03.prod.outlook.com (2603:10b6:208:19e::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Thu, 13 Nov
 2025 19:58:48 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 19:58: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: 2d42d4b7-c0cb-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TEW8ro3MOTRvgIOVVg7sMlyOihF7bL+MRg/f/kWZRzRnuoRVC6kYajMqdTEEFr2O88QyEogv2PcAtbzgum5pDb+UlgiwrJD5BWnsVfmj5oSoy+mV5fTJKC/F31SsuII//vJ2a/WB02q9YI2bQzyw9nUtAnd8TwGHe6996in/rcWfDFcH5qS3KHopZJzm/gEeesCiRyS968sFIHHcxshfyDPV+A9SxH37X97qC5dTPKItLrpawcAO0AJJgL8hQDQc4uQqHVa0o2odtXLqDr1nDAXx+oGU829c5XGkLAIQbt0c1nMN8NbYnPMtwnSaN2kvyiwr4rMzHBGE+xD8V5kMyw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CbqumO1CUiVeACH0gSM0e5LyXhxLPw+Av9ldOzNC+Go=;
 b=fingMKKuOojz+fWn9yQnJzlKpMB+4s4fWtIMrx7wcs5n/ZicScY+deLz9W0VjU5x0ST9BwKvqYZzlQSyDejgS6hItDbr9N6DliQZJoaUpga775nLhiVxmhvouI0Zf5QoRvAO1y4qyaZ32Y17LyjEOW9WNLwYIqlADdkamve+y0if5Hak1QKf+opyBJmUCPViVETIGJ1xkrzjYesOpbUyjFwj6oWimOcAR7nGC4RxWHDLAp1m/tZQA9W8JKTYxFMolxuF7KJbHESrh9qEuXxk0MGGav8gwYH2/HFQTmX7AbE5IdMLwKRIcZcxLzN8RHtqXNl/3STO0tldSy3lFPWcSA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CbqumO1CUiVeACH0gSM0e5LyXhxLPw+Av9ldOzNC+Go=;
 b=gSSn+gPIW+S9BCISOVtbQzIwnOdlkyn4BijMrg/aaz5CCazRiUPPSqlLLQRIUr7HpV5DYvTiV9pUUIAS3XtMpDkv7qMjD+Egf10i+8uhZfcZpB2ccfoy+OAda/AqV2fEDdNRU3aatrfbLHLJzXPKfSrWW9dVqGBDV65bbPnrDss=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <870d7330-5563-4c45-8a45-03734e75d92b@citrix.com>
Date: Thu, 13 Nov 2025 19:58:45 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/5] config: remove unused paths from config/Paths.mk.in
To: Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20251111161959.13667-1-jgross@suse.com>
 <20251111161959.13667-5-jgross@suse.com>
 <4cfc4f5b-1d7e-4f69-9bfd-99ac0f65ac97@suse.com>
 <5bb5c2d8-53bd-4669-9238-6ae8ab8d349c@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <5bb5c2d8-53bd-4669-9238-6ae8ab8d349c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0302.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a5::26) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|MN2PR03MB5327:EE_
X-MS-Office365-Filtering-Correlation-Id: a932e041-e2f8-44b4-af99-08de22ef0f54
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?NkdGOTVqVGlRb0VyUnhnOVAxREE4cE1SME1DcFBkdzVIdkh6eU50S2pYMlJ1?=
 =?utf-8?B?SFY5a2syYVl5cURKUzlUMnN3MVFkN1JRaEJlUHY3WjVqMTVVOWdrMUdWcXd6?=
 =?utf-8?B?K3loUHBFd2FsTDh6b2szRTJHQkxNd1Z5RFBMT243ZkFyYWZJTkZFdzlBQ0d6?=
 =?utf-8?B?aHVFbjBVSnYza2ZBYUNEWGl3aW1qdFU3ZmJ1V3dQUmtCU2F2ZElaMWU4RjRl?=
 =?utf-8?B?OUdrNlF4RlU4YzFYRmp5YzBkVHJWZXhuQW9qdmgzNTRQQ2RXOURJK3RwTG5Q?=
 =?utf-8?B?WnlWQWtEN2ZwSHQwQUx6RkZid1gzU0U1OEtTdnFIU3E5YUF0N2hDS09nYTdO?=
 =?utf-8?B?MG5wdHNYUnZJbllEU0c3YzJ4SUt6TFZhN2xVaXBRR0ZHQ1ZKVHJCdXBmZTVL?=
 =?utf-8?B?VktPc0NRdFRPV1VOdmx4OVBIWGY0K0NzUWlIYXJzcElna3o5Z1lkOCtVL0g4?=
 =?utf-8?B?a0NVT1dLZ2F0K2ZmYWxFRDhUbUk4SEZ6RTNydk5XQ2FrQ0FHa0tZQTZiZWVW?=
 =?utf-8?B?NGhLdVRSbnlPTXlzMU1PNnRsUnJ3dnAzWmxsZURWZnF4OGFqQXRFc2VNVWJo?=
 =?utf-8?B?VFg1c2lPU0pWUk1zbkkvZ21wMENiWHdPbGxsY21LSm9lTUsyRmRpN2pwbndj?=
 =?utf-8?B?T3g1UVR4SzFYQ0FHVi82L1NoUmIvOVNheE1lSUlYUXNSMmloZm13bHlXNWFn?=
 =?utf-8?B?NVU0enlVS1NBZXJEVlpMOHB3ajVtNE50eUZnU21ONXBNQUJCaHhhSms3a0JN?=
 =?utf-8?B?dGdNak9vVHlYcTRSTzZkOTNRbXFMYUZSekxPSDBsbnR6VGUyVnNyenBZWVZS?=
 =?utf-8?B?NkdPOUFPOUUxMUpHY2dxUXQwY1hqbW5Nc3R1V2lMcXpTclppQUZkenBmQ0l3?=
 =?utf-8?B?RE8rK21JWW1ZS2tiVzBFeVdpNUJLSmdObnp1b1p2ZGVET0NWTGExTW9vQ3d0?=
 =?utf-8?B?THYxZ1pCaEZLSkIzQlcwRTFSWGpxZjBSRE9vQ2lNWVlqOHdQQktFOTdTRFlw?=
 =?utf-8?B?clBWVXJIWUc0TmtLQVA5alUzSWlFL0VMcVNyMHpndGtuUUZ1ZE1jWDRmdHA0?=
 =?utf-8?B?SGZRSzNVRVU1QjBUM3UyRHAzWjBBeGtJaXRjRGxKVloyWjc2UUQ4bE1YTTlU?=
 =?utf-8?B?U1ZkcjZ0V3hyZmd4WCtWVDRmck1iVkFxci8rakwyMTh6MkNxTzVqcm0vY2Fn?=
 =?utf-8?B?T2tOcVFaeFFacXkxekNlVEF4UUpja3hpb3pDRzJjcnB4TWdZNFVvVFE2SVpJ?=
 =?utf-8?B?QXBFbmNDb08vVG04ZGozSWM1M212eFA4dVlGNWh4OUEwMVlDTmJnamQ2OTUw?=
 =?utf-8?B?VFZjNk5aMDBHMGNYa0JSbUdlVnVEbkpwaFZndWVlWEpxVlJteWdTQVREK3No?=
 =?utf-8?B?b3VpYXBNYWY4ejJFVFRNdEZBdFM0cHZQTVVrbnYwbDUxSTlXQXZLaTlQTGd3?=
 =?utf-8?B?NnlmVENZcGFNTi9BMkNxVWNia2VHTXNmWnZqQW02NkJKTW11RVd6ZzJ3NEQw?=
 =?utf-8?B?S1g4TmQvZVVCT3MxOW5HZFVRbVErbG5EeEwxY3hKTmswSXlJS1YrR0laUVNs?=
 =?utf-8?B?aUNjS2ZjRDlQSGN3bFhXUU44OWFvS0FlaTRMZWkwaHVJRFJqVU9MVW9WQVMr?=
 =?utf-8?B?MVFvWUFLZWdYK0RtQWRPOWNlbzQ1SGYrME9ySjNLUno1c2lkcVA4bENVOHQv?=
 =?utf-8?B?cDl4WU1MRHlRYWpQeGJyV0xWSkNlVXRmUUJmQTlTWEgyUVNGMjZ3azN1N0lk?=
 =?utf-8?B?ZmxhOWJyNmJFd1FaS3dhL0NONHFqNG5PWmNuN1NDdHFnSzd0eldiYUJRSjBI?=
 =?utf-8?B?c1N0ajQ5czVsR2FydmpVWHBOcm9yMENNRUhPdzRWdUg5eXQzRE5Jb1ZFSEJj?=
 =?utf-8?B?bmREaUcxeUNJTVVhbnZHK21kM3dDOXlLYURzbkx1UmZMMERiS3VvQ3duYStQ?=
 =?utf-8?B?NFBtSEZFZkEyRGhxWWtWVFdaVG1ZYzBhdXRLaURrOXNHUVRXM1hKOFYvNkwx?=
 =?utf-8?B?UjVMK09pbytRPT0=?=
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?WVpZVDQzeUsvc0hnOXZ0Nkg4L0tRdlZqTk9Od0F2Ujk5emNjZEFxMmdZbWdK?=
 =?utf-8?B?eW80TnFkNWFrUlRaSlRWaE4zazdjVmlMVHY4d1daQXlCSHlLM3FFcWtmV1J2?=
 =?utf-8?B?Z1MvYnYxMlVVcU8zZklZbGt2bnZqbjc4SDFnQlhuMVpETGVVby9ycEJHTEpk?=
 =?utf-8?B?K0dMN2RHMlRNZlRFVmEydFo5UkYzRnNzMDZjaTlIYnhMWmFDNGNFU2JvVEZI?=
 =?utf-8?B?blpBZGp4UnVZMGxvMXgwQnZoUGxUaDhuUndYdmdMa25GUGU0SlF2Si9ESERC?=
 =?utf-8?B?K2pxNjFKRXV1TFBqOWhSNHBQTFkvakpyZ0todCtNUHQwMGtKbnpqanpuMlNI?=
 =?utf-8?B?KzFaMHBsYVZabW5Uam1SckVlZXJzUFcwVi9nT2U2KzNUKzJaaUZCZmFTNTEw?=
 =?utf-8?B?d1RqRkwvNnJCeE14NXkyaFd0dVRXOFlXQi9hWm1MQkVVMnNsUzNEYy84Yjkw?=
 =?utf-8?B?UzlMRlVVeG5MYmRRTnoyOGtVYmw4Yi9DQ3ZOcDVqcHBVVmpwakdrbUJQSVZt?=
 =?utf-8?B?a0Z3VlFHeFBtQ0lLVHJXYXZXSU1tSlYwQ0RYM09lbU9Yc0lkdWtXSUlENDlP?=
 =?utf-8?B?VGNPZHFZWWFxMnFzRU5MYU5MUW5ITlY5RW43NEJjOWV0bi9HZGFnem1TbGNP?=
 =?utf-8?B?cWx4cEg2dFNlM3ZCU2NkSjN5YUVibWpFUVVWOW9OZWNHV1BvTEp3OStjeStO?=
 =?utf-8?B?N1Z1ZjVobEVIZmZkRnRmVHJnK3VaV09CR3JDTURnempmOVI5WlhQVHFuTE5O?=
 =?utf-8?B?SDV0ZUtqRjBpZjJ3TlFGWTJoaHhIMmU4ZjNzdFJ2aWVQOE5xNG9YUHdMd25D?=
 =?utf-8?B?S1RHYXVpQzR6L2wzcUJ5RHdLWXRhd082aCt6Q2tzN2xIbjJZQU13MEY2Q2Iv?=
 =?utf-8?B?YWZkM05Gc0wxR3g4RUlRM25XRHMyMjgzZGNvdnBwWFlTSWhERmhPR0Y3d0I2?=
 =?utf-8?B?akpsTW9tN25EYUV1cGxya2QyM1d3WEFIWXg2VHl6VEEyRm1vRXpIM3ZZalMz?=
 =?utf-8?B?L24ycERQS1YzellPb0NCTWhRUk1JVHBDT3pTYVBLek1zVFkyTHpmNWJvdUZQ?=
 =?utf-8?B?T3ROMlIxUWlqc1g3NzB3TGxacjVPTUxGeUU5TVJmdy8yZ0hmSERDUytMYll6?=
 =?utf-8?B?U09tY2JzVUNNQ2Z3cHhYZTdWWTZ3QnZ6eVFIVUh5bnFzN3VRQ2ZyRjBmSHh1?=
 =?utf-8?B?MTRJb29YSGJzQS9CcnBIaWtQNlFDRnZIaGZjaUtNTCtKK1ZqZGNjRnBVNmVW?=
 =?utf-8?B?UHc3ZWJLcHdGQjdCc2ZXSnFHS1g2Q285WUJYd1ZxQU45NjZhS2FpUUpiNGFY?=
 =?utf-8?B?dk1BVWk3RFVlVHJBMnFhckZvaEMwNHdpV1poV2lnQnBFOEk0OFJYNWd2WGJ2?=
 =?utf-8?B?MjBjNnlQaW91N2RrUFlUVWFra1YwYlM0MGt3VkZTK0U4VVhmdkJ4QnRyYytL?=
 =?utf-8?B?Mms2RjFBbngyczJOQTc2WkpHYm9kK2Q5cy9PT0NzNnlkSUFmbG9aNjBDaFVB?=
 =?utf-8?B?NkQyRWljU2pZcmZ5MHJiTFBPYlQ1TnA4UjJ4T0h1bi9nRHgwUCtVd0k3U2Ix?=
 =?utf-8?B?TS9RM1pJRFNZY2lYQzF2b1Evc0QxeGxIVS9acDBzZEtYdTBBYlFrMkpPMGVx?=
 =?utf-8?B?WjFRaGJpWTJvM3kyUDF0NTVZU3dQUW0wRkpMbTBtbmhldVBWand4YndScnJi?=
 =?utf-8?B?SXNpMzYzdzBSTzJ6WXlsbjhNazBsNnF5VTNaaEtINlRxd1I1ekFOZGxBSG16?=
 =?utf-8?B?Ry8xUTFKUWVHTWhMdGgxQkhTVllDZUFHZkdyM2VKMGJqWUpvKzdqVVJVMzdK?=
 =?utf-8?B?UEk5eU5PYTZaVlJnd2xqaU5tWWhNemFvbFVNQzBlb05qZ0JrRmI1M0V6ek5S?=
 =?utf-8?B?MmVtZmlCZFNBMGFwd3c2ZVl6aW43c3A1RUtkN0FyRlRheDRWSlBwdktYbktJ?=
 =?utf-8?B?N2NnUEVqbzZmb3orYXEyYmNrVnZkeEVFSS9wSGdmRDBHRGowYUZ1dWhQUEJ1?=
 =?utf-8?B?T3FKVklFay9vWTN5cmVwZGw3dUowUGFsRHFMRzJFYXVjeUxDQkpBdUNrc2ND?=
 =?utf-8?B?R1g4ejVNclg4WEJNeXE4c3FFVlYyWDNrMmNBZmpFTFlyVjErWjN1aE5lL1VM?=
 =?utf-8?B?eEpmcUlmaTRvbGh6eS9FWFF4M2ZnVlQvczJmWkdaMlJveUxPNnNEU1UvQ01C?=
 =?utf-8?B?RFE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a932e041-e2f8-44b4-af99-08de22ef0f54
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 19:58:48.4931
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: aoC8J+7bVpZm/5A1doP0T0D1gdkdWfyN5atUnyVi7gIYqCShi7Fc5m7TwRsRnECGoso6zaR3R+iG9COIP2hlrdjWEj3MxkdqkMiIgNLnnEs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5327

On 13/11/2025 5:02 pm, Jan Beulich wrote:
> On 13.11.2025 17:59, Jan Beulich wrote:
>> On 11.11.2025 17:19, Juergen Gross wrote:
>>> --- a/config/Paths.mk.in
>>> +++ b/config/Paths.mk.in
>>> @@ -20,10 +20,7 @@ libexecdir               := @libexecdir@
>>>  datarootdir              := @datarootdir@
>>>  mandir                   := @mandir@
>>>  docdir                   := @docdir@
>>> -dvidir                   := @dvidir@
>>>  htmldir                  := @htmldir@
>>> -pdfdir                   := @pdfdir@
>> Question is whether we're mistakenly not respecting in particular this one,
>> for the *.pdf we create. For all the others I agree there's no (present or
>> potential) use. I notice though that docs/Makefile cleans e.g. *.dvi
>> nevertheless.
> Actually, I can't spot a use of htmldir either, when likely we should respect
> that one, too.

Besides the manpages, nothing generated in docs/ is really fit to
package for end users.Â  There's no coherent structure, some of it is
straight braindumps from developers.

docdir is only used by the {un,}install-html targets (opencoding
htmldir), and the rm in the install target is further evidence to the
unsuitability of what's there.

I'd go so far as to suggest we should drop install-html, except that it
would break the generation of https://xenbits.xen.org/docs/unstable/

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 13 20:13:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 20:13:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162118.1489893 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJdh1-0001S0-6r; Thu, 13 Nov 2025 20:13:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162118.1489893; Thu, 13 Nov 2025 20: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 1vJdh1-0001Rt-3u; Thu, 13 Nov 2025 20:13:19 +0000
Received: by outflank-mailman (input) for mailman id 1162118;
 Thu, 13 Nov 2025 20:13: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=xbc0=5V=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJdgz-0001Rn-V5
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 20:13:18 +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 2e07650c-c0cd-11f0-980a-7dc792cee155;
 Thu, 13 Nov 2025 21:13:12 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AS8PR03MB9649.eurprd03.prod.outlook.com (2603:10a6:20b:5ef::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Thu, 13 Nov
 2025 20:13:10 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 20:13: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: 2e07650c-c0cd-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=n/8VDQxDsVK3+qnbewVxDKWL0M5sukQGZ/WBxYu8sFaerjr69uifO4P2BeJDHQZJGoas7DHJ2Ebh6fUa+dCieUkgevYQ+94GZ+Zf1Q3otfMTEhLlbYQJAD6PQUYtuqRK7Su5dlsfLx5lS4sdQT7OBiJl90GMISSl4Trrh/IbsEr0dGPtSA6VZNnLufqpwoDfdYGn0BBK1jtIW4RwtrUBNSOVcBhox/Ere9f2TDMdqJ1JRAeH/16Hh2CXtmcbHuRti4gvckzKXue+TlQuxT/CzL/4+rSoR0YcSIAF3X8WuSRGirH0xiukThgtgt+PrjOLiznAN65xaJ/sBIAGS8J51w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OJ9qvdx8FI9MEXD02roVqO6Gk9Vi+y1qOy8t0DJn5fQ=;
 b=KMAt/KEMalXaqvVOqpKqiPK46CQV/p5EuK2KRuqoAJhEKCsxZlA3iycw+zcXhXWJv9L9Y/FKJclLgai8wz7k1YTi+F1Fq9xRyN2o309Pk4ycqCq7OIJxO1w4I/o2WWtjVNrWfvf79JNyjG8O4kOtD3OZMluqGyAwY+rJnp7hXTj/BIS0TeKw6bH/bOOV9eLMAv6p4d02hJOVVwswf6cEYt+jV7mLph1+KanKuMsmI6GJ6+YMUxvbLHu3tNDbDPcfdQgX31DDaEE4d2ukh16W5TjRpQxXvcvmBcsbN0wTVO+JRQSqmR7Dbio5FIZdfN8QaQAflrVo/GJ8CfBwMuEhhA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=OJ9qvdx8FI9MEXD02roVqO6Gk9Vi+y1qOy8t0DJn5fQ=;
 b=PqcM2KcFwWWjG4no47+FzR91YcLIVoo7ctjU1moLvBAwvjO2+rE3KuyGIo3pO0Kron+ZZ5LTN+5jLSfOySPpgEvUKOoG7CK28oe6vNrNw8PPZSQxEm55jdtheUAkiVSjlycsvNntmhp+UGojoh1fstMcry8XRTK49GmHi7AmyYWlRc5rW70aka/awNYZnwXWa4VimYV0l+XBTZssumCz+F77iJvKXfUlfikLXc5kSVShxnnsG5pwlf2jci3lqoFe4xKi56uIH35B0AfdrmAZBT1MZxHDR8xVJTf1oK3IdLmQCJwGMAchCcd+f74IR3PQl7mKZRP6DatdxCJKGuW11w==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <364eca04-63d0-4ceb-b6c8-84fa6efc3aeb@epam.com>
Date: Thu, 13 Nov 2025 22:13:07 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: Xen DomU Bootloader Experiences
To: Elliott Mitchell <ehem+xen@m5p.com>, xen-devel@lists.xenproject.org
References: <aRT4fiuF8soWI6tc@mattapan.m5p.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <aRT4fiuF8soWI6tc@mattapan.m5p.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA1P291CA0008.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::19) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|AS8PR03MB9649:EE_
X-MS-Office365-Filtering-Correlation-Id: 63e89648-2a54-4f73-fd26-08de22f11006
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?ZXhQaTdCcnlXSVJiSE83K2tqaE9DNndlemFlbXQ3QzhwZ2hkTVVCNFA2WDdm?=
 =?utf-8?B?ZnJRbUV0SUNOV3NrbEQ3TFBLaGlIWDdsY25zbDZ2N21ONUZBN3R1N1U3YVBY?=
 =?utf-8?B?VTdGSlBieXUzM1VTbVVOMHR6cWx1a29iMmNqRDU3QzBQOHZodDNIaDRhZlox?=
 =?utf-8?B?eWc1SFY5VFJDdHVhdXg4Qm9FQXhCdW9ibkc1enRWb2tDa0xVMjVMbHdiTEFu?=
 =?utf-8?B?K0NreERMT1ZSOWpCdERHbHIwbXFTOU9MeDZ2Smh2VExWd1JNUWp2MVhTTHRh?=
 =?utf-8?B?L2JHUXpXOUxJVjZqaWhqTGsvWVJaYkRNeUxkWG5IUFBOS1ZQQkFDaHpFcHox?=
 =?utf-8?B?c2ZnY1JKTnJYOU0xRFVwOEttRjNlZjFhUVJhNlNFUzBQak95VUgxYktDRHpM?=
 =?utf-8?B?OUtTV1BXMEJSOGtjaEdxUVF0U1RsN291YW9FY3RHNVIzamVWNm1tamFtb1dy?=
 =?utf-8?B?UzZDdWtZRmhzZzB5aGgzWlZzSDhwa21NMWJOS2dHM3p3TDNZU1VDWTAzSUsw?=
 =?utf-8?B?U2JSaE9UQ2g5RzduNGhsSVAra1ZNUS83dG9xRGxMTnFhTVhYQ0xCZGo2ZVRM?=
 =?utf-8?B?dUZFcmZPUUVDWE9WWmQ0aHFrcTQvbVdaYmViNEtZR3hJQkVZdXhQVkVHYjBh?=
 =?utf-8?B?bTNyK25GcC9pR0xnMURteWUxWEtmL21mVmRDN1U4dXp6NHBFSFp4Vk1hSHB0?=
 =?utf-8?B?L3JOKzhZN25vczhxaTEwV0hhemJrdHpzZVZkcjBLTXU3aGd3ekc2VEVtRmpa?=
 =?utf-8?B?VkZRQ3dBR2FNbENQQjZrK041ZTQwUElzZnNucHpaRWFzOEV1WnlXTWJKbFQ3?=
 =?utf-8?B?UFBTME0yRmtMcGlhbXFZSU5ZWjlrNC80cENHNG5hY1o2cVZZekhtL1l1WWZV?=
 =?utf-8?B?MWNrZ2pjUnVwKzFyeW85UVNZa1UycHRBSnBLaVBwQmVPQUZVNTFwejF2Mzl0?=
 =?utf-8?B?M295K0dpYUJhWlZ0ay92M1Q3KzExWktua29EZGVKZ1lJK0lTbnR5YW9LYnl5?=
 =?utf-8?B?UC9qWEJjT3lVRFFaSzhiYUgxNUtyRWtjcWh0WmFiVXA5QzRSVUtPclV5MEY4?=
 =?utf-8?B?NXFpSjhDQWJCRU5Zenc1enlPa1B0SHdPeFp5VUZVOWRZdVZKKys0S1dOdmhU?=
 =?utf-8?B?TW8vZHNtdkgzb1VZZ1BqTU03cFQrbENHQU03Y0JMaG5GSWZSaFRZcFlCMEQ3?=
 =?utf-8?B?U0RYTVdmNWNMQTBWQndjM2pkYUFXNE5vOFZGU3krdVFvVFVOWmNLWU8zcURD?=
 =?utf-8?B?OEt1bXBMc0hEVzFvaHdySGpFNnJXcjQvYUtQb2JPeGpLT0luS1JQOWJBQThV?=
 =?utf-8?B?b0Jwem9IU2cyU1N6OE1kN1M5Y3JMMUI5bUdaM243TzhxK3h2U3RCQWlGYTVS?=
 =?utf-8?B?empoQmZuckxjZkpEZE1jN1JCSmFaMlRaaS8zQmR2RXlZMFZGZzJENXB3WURZ?=
 =?utf-8?B?aURlSEtBTlpKcERqemlGUzZ0Nkd4WDQyMzdCYkdrazkxdUVHblV6eG8xMk5N?=
 =?utf-8?B?b2JZa1hHUU9SeEdpcVJyamgwRkJ1b1dja1ovaVZsWjhFc0ppYVZRbTJ0Wk5v?=
 =?utf-8?B?aENpUkduaElUNTZLWERXeEhEODhBQy9OclhCbmpWaGJSaWhwRFNzdlhmS1pY?=
 =?utf-8?B?c3N2c3hJUzNiMTVEaEZiUVFhZ1VmMWRCNzlDTHJxenpjYmNLOWJXT05aM0cw?=
 =?utf-8?B?UW1POGxUcE9CdklUTGZ6VmZzUE56My9mQldJOS9oRFMwakdzQlc5d3U4SUtZ?=
 =?utf-8?B?bm9hdzN4dlBMTnRsWmt5UnFvV3F6Sm9NVi90L2pqNjAwdG5XWjh6UDJ6T1VK?=
 =?utf-8?B?K0hDK2JHK00zSjNFTVEzQ0VCcEF2M3FRakVFNGxKU1dmUmRVUUlxZFZ6Q0Fw?=
 =?utf-8?B?RXBOcnVvTFcxTENWOGJoL0FQdURGMCtSbmN3RDNReUIvU1FNV1czR0ZIeGQv?=
 =?utf-8?Q?dDU7H41K50lw0pYDbvenSmIDSrMILQKg?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U1ZjbHVYdGk3cHczK29iM3p4OXNUaUJyOStrVW5iemwxbWlqOG1OUGJKOHVV?=
 =?utf-8?B?WUt1N2dRaEswZFQvdm0vTWlhSW5SNStHL0FWUU9PSCtrUW40SXF5R3haZ2hx?=
 =?utf-8?B?QWhnMWRBKzIwNk9wMlJDWUNjUkFpWEdUc3VUVmphcFR0dW56eE5YS25KZUdU?=
 =?utf-8?B?REIrcFVIYkRqOHl2a3pHcDBCQzdmUWtxTWhRSGlFZFMrQUsrQytOeG84QlN1?=
 =?utf-8?B?R0JwZGdKa242dkF2V3VWQVNWT0FtbGc4dG5iUUdpbk1FcUhGZ1RpQWtqVUps?=
 =?utf-8?B?UWpNYTI1VHRNMlA4aE9OY2J1cnRpR09neHBkN3FNQnNwTUkzMXEydml1WnhV?=
 =?utf-8?B?M09VM3gwRWdIWjJES05qU1lxQ0MxenhNY1lSblR4bmhER1EyRGw2M2J3OEFt?=
 =?utf-8?B?UVY0cU1kZlVLamhZN1Qrdy9HcmdKT0xmVEdXbVJ1L3lOenh2dkFCTlpTaWFw?=
 =?utf-8?B?ZjdOdjRUbTUxNnhlZ1VLN0E1eW9xRHFqL0tRUFhHM2xrQ29QSGZoUzc0UTky?=
 =?utf-8?B?Q291V2h6MzlGY0Jzd2NnSGs0NVNlcjNzK2ZxV0IrYmRWUm1jUUVSWlI0TmRW?=
 =?utf-8?B?UjV4bWNwUXovYWVIM3FUYnVGV3VFcjFTdSsrQ2ZHUGJNR3Z6Y1k4ZGdZM3M0?=
 =?utf-8?B?bUJYVk9tMTdDOVBIVHhtT0NrdjhzMTBheWtkeVpXTlBFUFlpWkk2djlRckk0?=
 =?utf-8?B?S0VYM0ZPRDhQNi9kbkVITytzMStJSWNmN1NJaHB4QlhzQ0VPSjJUQWZidmZZ?=
 =?utf-8?B?bkhjUVQ4SmRhbjV5c0pnWFNrMzdISDJWenlYaCtnaC9haHp3WGc2VDhVeXhP?=
 =?utf-8?B?WmhZUDRJUUZxVUM3OFNBYVNQTC9NL1NTMWx0NWo4MDVkeU9vTUliZ28rMVVi?=
 =?utf-8?B?cHdQdHNidTJTblA2WTdtRHRyNEsrMEdnSXUyL3pCTy83akhWZG8wM1VWd3VB?=
 =?utf-8?B?WlN0UGFzSWd0aGxKT3VpZWU1V2JGRUNTL2hUQlFoSHFNb2tTYlNzKzcxZHNB?=
 =?utf-8?B?VDFzd2w4ZEdLbS81dUVEMXM0UGM5VUV6anNvZVd0dm1VdkV1eDNEbXVuZUF3?=
 =?utf-8?B?NFNQY0YwR1N5RkV6bTNTUDlxWmVpSXVhRHcybmlFWFNaZy9zQnY1U0NYVk00?=
 =?utf-8?B?a3VsS2htMDdabjNRM2g1WGVtRVVHVDNLazVKbU1PTzRRUEh4OGpaZndJak9i?=
 =?utf-8?B?a0ZtOW9QQ2NTbjJLUFlUZ0w0aUdCRFQ3ODREQW1iUnBwMDAxR0RnZDlMVy8z?=
 =?utf-8?B?bzgvaWU0YWRucFVNd0RhQUcrcTBsZDZrMDhHQUM0YitGUk5UWndoM1FJSGM4?=
 =?utf-8?B?NVF1MXVZMXlySmtTZGIvbkUzRVZKTmE4MXNZUTRaWHluc1A2aUFKQ2pHYk9x?=
 =?utf-8?B?NlMzaG5LWFhYRmlRVCtLVTNyTlc5bnB3US9BWHNwa1Z5UGEzSHFjbmJKekYy?=
 =?utf-8?B?d0tPNlBGaE1iM21XTmovVEtaVzJxdGdRTmR0cVhSaGhEZXlTR3R1M0RZUXla?=
 =?utf-8?B?MFoxOGJYWlRDRDVZUW1ocmpLSlBRempHcmk3YTU5SkpHei9jQzJQOWRvNWFO?=
 =?utf-8?B?T1NqS2pWMysvaTk4NTBzUU9PV1lSM056OXh6ZDlXUGhlVHNYRVl0cGZVUVhR?=
 =?utf-8?B?bENLTVRRUEsxaGdVd2hpR0huQ3phREZ2cG5QRU9ncUNHRVdxYU9DeTNMOGxY?=
 =?utf-8?B?VzhvMHN5NHYybm0wUW8ramFkazJ1WWszM0NGeFNKYUhLeERWZWtUL09pUWlE?=
 =?utf-8?B?VHp6NEpWTkZSWlU0a2VlMmVKeTNJOHNIWDJRMEpDTDRmMmpTYnJlV0RwWndm?=
 =?utf-8?B?TVpNRE4zK3dyU3dSckxIenY0Z01Tc292NStHMDFiMytUOHFZenBBc05CQkJo?=
 =?utf-8?B?Vmx0MkVZcFhxVDFwbmJjWjdkcHB3SzM0RUxXWTFmUjM0cWMraFd3QUFJWjRF?=
 =?utf-8?B?RTlXQ1ZkbUFzczBmZTVCQmNLVmZ0ZERKT0tIbHlZV1R2UVBSaUZ6cEEvd3lz?=
 =?utf-8?B?STdta1FGZnltTmNoMG9sbkE3Ry84aWJIUVJpUXc2dVplbEw4K2ZmZlZDWU9t?=
 =?utf-8?B?SVBhaWhWSi9PbWJkaWtFMHk4VG5OcWZhSmYyVzIrMXQxK29jVW5XcmNSTGtH?=
 =?utf-8?B?SW5DNHc3eUhoUHgrOFFDc3hURE9ESzB1OVFoZGwyVU4yMGxpZ1R2STJHaUtE?=
 =?utf-8?B?M0E9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 63e89648-2a54-4f73-fd26-08de22f11006
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 20:13:08.6002
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: JFMDHX5BMhMasDyCiQHsMBRiu5SNaDW4xhlh034bMajP2iTpeDDlYnZicGnXMVpR1i4R/Rl3WpyM5GvyJWlUaL8HkFJPIgxgq2l9INEt3+s=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9649



On 12.11.25 23:13, Elliott Mitchell wrote:
> A few times there have been mentions of a need to choose between boot
> methods for DomUs.  There is a need to decide on ones to recommend and
> put effort into supportting.  I may not have tried that many nor done
> particularly great amounts of experimentation, but I do have some
> experience with multiple User Domain bootloaders.
> 
> PyGRUB
> Xen's bootloader.  PyGRUB is quite functional within its limits.  In
> particular it simulates the domain's environment in Domain 0.  This means
> the security exposure is problematic.  Another big concern is that it
> only does GRUB v1 syntax.  For a long while Debian had a package for
> generating those files on a modern system, but that package was dropped.
> 
> Yet PyGRUB does avoid needing to use external tools to retrieve the
> kernel.  If the kernel is updated inside the domain, this does get the
> new kernel.  Further being architecture-independent this works on x86,
> ARM*, RISC-V and PowerPC.
> 
> As it is the only GRUB-flavor loader available on ARM*, that is the only
> place where I've used PyGRUB.
> 
> 
> PvGRUB
> I'm sure nearly everyone knows about PvGRUB.  By being a proper port of
> GRUB to run directly on Xen, it overcomes PyGRUB's disadvantages.  The
> one disadvantage is needing to get patches into an external project for
> changes in Xen.
> 
> Two changes to Xen urgently need propogation to PvGRUB.  I'm unsure
> whether PvGRUB unmaps its mapping of vcpu_info data.  The second is
> needing to work on ARM*, RISC-V and PowerPC.  The latter is the one and
> only way in which PvGRUB is inferior to PyGRUB.
> 
> As PvGRUB is only available for x86, that is the only place I've used
> PvGRUB.
> 
> 
> EDK2/Tianocore
> Quite well-known for being the basis of most x86 firmwares, plus being
> part of a typical Qemu setup.  Not nearly as well known for being a Xen
> DomU bootloader.
> 
> When it was working you would build their ArmVirtXen.dsc file and get
> XEN_EFI.fd as output.  You would then use XEN_EFI.fd for the domain's
> kernel.  If you looked at the console you saw something which looked and
> acted pretty similar to a UEFI firmware on x86 machines.  This was
> extremely functional for OSes which didn't particularly like GRUB.
> Notably I've read of it being able to load a Redmond OS and it was quite
> functional for booting an ARM64 port of FreeBSD.
> 
> Sometime after November 16th, 2022 or commit fff6d81270.  The built
> images stopped functioning.  This is actually rather concerning since it
> may also effects firmwares built for x86 HVM domains.  I don't presently
> know whether there are multiple bugs, or a single one effecting all Xen
> builds.
> 
> There is also an urgent need to get EDK2/Tianocore updated to match
> Xen/ARM's disallowing mapping the shared information page multiple times.
> As I did not wish to become deeply involved with EDK2/Tianocore I sent a
> patch to xen-devel close to 1.5 years ago.  Lack of action suggests there
> is an urgent need for a liason.
> 
> 
> 
> Recommendations:
> PyGRUB is functional within its limits.  Problems are GRUBv1 syntax and
> running within Domain 0.  Given this I feel the Xen Project should be
> heading towards deprecating PyGRUB.  Since PvGRUB works for x86 now, I
> would default to neither building nor installing PyGRUB on x86.  For
> other architectures PyGRUB is still useful.
> 
> The Xen Project should formally ask the GRUB Project to port PvGRUB to
> ARM, RISC-V and PowerPC.  The need for PvGRUB on ARM seems rather urgent.
> Without a proper bootloader VMs aren't too useful.
> 
> 
> The Xen Project needs people to work with EDK2/Tianocore.  The oldest
> report I've seen of the EDK2/Tianocore issue dates to mid-2023.  Now two
> years later the bug is still present.
> 
> The ability to configure XEN_EFI.fd as a domain kernel is a feature
> highly worthy of being ported to x86.  For OSes which don't particularly
> like GRUB, but do have PV drivers this is an ideal boot method.
> 

Just curious, you did not mention u-boot which is widely used on ARM,
for example Android guests boot using it.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 20:40:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 20:40:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162140.1489904 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJe7J-0005r0-EO; Thu, 13 Nov 2025 20:40:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162140.1489904; Thu, 13 Nov 2025 20: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 1vJe7J-0005qt-Ad; Thu, 13 Nov 2025 20:40:29 +0000
Received: by outflank-mailman (input) for mailman id 1162140;
 Thu, 13 Nov 2025 20:40: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=xbc0=5V=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJe7H-0005ql-I5
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 20:40:27 +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 fbefa002-c0d0-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 21:40:26 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by VI1PR03MB10062.eurprd03.prod.outlook.com (2603:10a6:800:1cd::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Thu, 13 Nov
 2025 20:40:23 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Thu, 13 Nov 2025
 20:40: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: fbefa002-c0d0-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZKOhSGYorot0Ajb9JiWaWhGkmiyArQFTFt7RQlwNL50xRt2mANQvML33aOSS7UcG9ka+pAIsU1Ixm+QuG59VGMmv/B2G9EFujNqeK15gr6luGceQo6VADkxNt1r5NaMhv9iZt5QzDOYCCPx/KBHKiFhFq/Fqqfjz38EqbCrSqJiU4EOVokxQ7Gw/xlmsVEGRXKkAACw61ZymGVrjS2i3eJyFcRwwXK8TWphuyjnacVnrV4wfnoz8js9/vVzUTQaZR30HWqmbUuYDAwJW9NVUmkXSwGmRCe3LMsjp1qCpA6cpusQs07LBIckj3S5PWLKLMmeWIXw/t2UyKajpgUsbOw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RQzzAAYw9zTW2yfYSVKXWyR8tCZ+w6FInkL57yJpFYM=;
 b=klKOiS11Wm8u6P8xXku3ZhrHvVaBSfbL1bX43VIvXXG7HyZgUcfJSb4lKvJey0z8ANc3uHettYYbg9SEaVIJRNBNetPWbAJugXMck7qd6yLTJ/LD8rCXL/kiPYhtAVr4RzY2RMd5jkACpMfy57sraCjoj78f1SCdZ4kg23lwLIBI4pg4JrTUK3A4Oxy/qZDXaoS7yUISXJ+i5i4x03GAMs1+QhUMPHPqBNqaTVXII1PHAUcfdmPxmOO/hsnDGVfaon5WgDMStCy5e84T/YlkSD8TiyyXkHsgg4zdmjPlJFs/q36fdn8qt1nN+bfqg6IzrGyhhHVDTucHcXqaryh6yw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RQzzAAYw9zTW2yfYSVKXWyR8tCZ+w6FInkL57yJpFYM=;
 b=YR2lsSOfXnMj/HtDdNkxON1oveZcj7z3RuKEO0x5tgfLSqIPRDKDnrRjPGTC7Qzoe+UazIzmZVrOdxhpv7KBBZ9cNj9grRAa6Tyo7025GRoZitrMVKgFhnbSCYwLlvZBu2P2R+LnQwUFSoCJPdYhVw7qHm5RmvGCdTLXViK8gP+gMbPkg3xW/JNl7IUduTgzVOwqD/MgZ7Sx/vBhp8PzxCbTbW3l35QslHS40Nv1WZDunsAw8rpRz2Y2t0rkuqy/XRyx0r6ylSgu/D2BvactECk039YnDtXWyQlvoQbFdJJr3vLAskUD7NK8znFgY2lpxwP7TWO6xkXBLVZAPO7H4Q==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <cbffc389-a97c-4075-9106-b2a7a90b52cc@epam.com>
Date: Thu, 13 Nov 2025 22:40:21 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2] xen: make VMTRACE support optional
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 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>
References: <20251112202442.3879997-1-grygorii_strashko@epam.com>
 <a634c192-9ea3-46d9-a087-f0f48a5c2494@suse.com>
 <9c4294ec-906d-4607-8f7d-b5b1bb7e74f2@epam.com>
 <71334f75-d50b-43f4-909b-a27b288ea1aa@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <71334f75-d50b-43f4-909b-a27b288ea1aa@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA1P291CA0016.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::27) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|VI1PR03MB10062:EE_
X-MS-Office365-Filtering-Correlation-Id: f9eed0f6-b934-4616-2b37-08de22f4de66
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ajc1QTRDcGYrTUdPWENyeDAycEEzZ2dERWFmcTJJekR4M2ZDR2x0QmtoUG14?=
 =?utf-8?B?OXRka0lKTmpDa25zYWdEc0gwK0Mrc1ZydFY5ek5reU9kZmdDdVZsK05Hc1Vw?=
 =?utf-8?B?VUkzVlJjUFFRTjRNN3AzZHB6ZkJXU0hrYTVUN3NRWm1mN1VHWTdkY25la0ow?=
 =?utf-8?B?UjdmS1lhYzhnVmthTGt0TzVDTGQ1dXNObkZnMHZ3M29CaG1hV0lEMW5ndUxs?=
 =?utf-8?B?ajhCRkZCdXJpQ1lsaW9sUitBVC93ckNHQS84UHJDejlCTWRFQm0zbFoxY3Bw?=
 =?utf-8?B?WUlPajZpVXRBb0xhanRkeFZVcUtRV0dYYXNEWmlnOUhmTWdxZDFjM2RQMnJl?=
 =?utf-8?B?aU00QWdaOU5WbmRsMWlwanhBSGFYcGtFK0FyZU84ZFJLWXpTQVZRME14dXU1?=
 =?utf-8?B?YTA3MzdMSjFUOVo4MnlRcGdmb1hHOXFLVDdlYjA3OTZBaGFoeWdvejU2ZTRh?=
 =?utf-8?B?OFRqMHdGd2NRSVExRFJaZTlySEdUZmRGczgyZTRhb3dFSk56SVVIUGlwaHNy?=
 =?utf-8?B?UC9Xd1N4OG5ualNLakJYbG90ZFg4dWZML1BIajg2NldOV3o5SG5sUTM2SVJK?=
 =?utf-8?B?Tk01TVR1RXc3RmJIdEJSOW8wY05QWUJ2dVNxUndWR0dwNGFwMTZ0UEJieUNi?=
 =?utf-8?B?NTA0a1JWc3haWEtzSHJsSURLcVlMVXh5a21ocmg5UWVhTURITTAyQTA4UTZZ?=
 =?utf-8?B?UXNoWEUyeitZTFYrY3FLdzB1VktLT2VlSUl6TldOOFpnTnpnSk1BaC9NYnAw?=
 =?utf-8?B?MzkyKzdMOXdUNzU1ZmJJd001TXk0NFlVbS9NdEgwM2FpNjI1QjUzRTYrdjFT?=
 =?utf-8?B?VFV6K1ptTW9jZTEyeXFSdzVXN0x3S05mQTk5RUFtaWRvbFA4NGN4ZVhJb24z?=
 =?utf-8?B?S3JYMXBEaUpueFROTXFiZmM1elZkTHgrcUg3TDQyUHd6TlBWbEMweEh3Z3lI?=
 =?utf-8?B?RDI3RGhMekZkNlRpTkVGZkNkK2R1MGZGZlVXbnlCNVVIZndjaXJna0xjYjZC?=
 =?utf-8?B?ZUNFdEJsUTIxTXgvZ2xRckhPczNDcjFMSjI1b0lQRk5mVDlwLytlcCtWek9I?=
 =?utf-8?B?RTJ0VWhqN0FEdDYrN2tCSnhibE95TFpVcFl1YjBCSkg4SGVNRzhKTnRESnFw?=
 =?utf-8?B?eFI3dkVrZ2xVZjBEWUZsS0twWGYxMFlpRlo5dlA5WDVIaWIrd3Z5TXNMK1px?=
 =?utf-8?B?blJKWWQra3ZJNndodnRhckt6Z05CNmVFYkNaWVJGVm1HS2hSVEtNRTdNVklR?=
 =?utf-8?B?KzFmS3JZOVprd0R4UzdxeEg1MkJuQzQ4d1B4VGJaaDNFYmRFeTlvdVIxaHJj?=
 =?utf-8?B?UStiVTJEQnVEWnNrd0lJWFQvakI4R2lFb0dFQlBPMTZrbWtWQ09MZkhGdUtM?=
 =?utf-8?B?aWNzZnQrSUUweFd0WE1aUEF5dzNNSFpMZVlQTW1qTDMwVXdNY1A0YXl6N2Fv?=
 =?utf-8?B?UDFPK2hDK1JVVWxkV01KZE1kOFp5ZmZmQmdxblJNL0tmSEYrZTVBeDhENFp0?=
 =?utf-8?B?U1Y4SlRpTlNrSk5BNGVuOEtGUjI5YzBpREhlcFdMelVYbTF6cFBiR3JUbjI3?=
 =?utf-8?B?aTEvbVpnRlZtek5GK1FGR1JSMUtEa1A1Z0NENE0wTUFMZHhyYU5jK0dUdElL?=
 =?utf-8?B?SEc2WDlQS1AzSmlNamYrdnB3Qlp6M1dkYlAxMVQxV242VDRqeFdBWFE0T1FX?=
 =?utf-8?B?R1dTMXJlcUMxZ3cydWNLZ2FGWFZxOS9GbXFRa09jR0phY2xsbW5ESUdCWFJq?=
 =?utf-8?B?TFdoNm1rMmNLcTlWcWNmZGx4S3JMWVIzSVV1eUhXVWt4b2o1T1dmMDBMZ2Nm?=
 =?utf-8?B?MlllM1JLSlprNUw4UE5hb3BiYnRRdG1raHlIYzdkMW9nTFZGWEJteXVkT3dI?=
 =?utf-8?B?VzBJakxPTGdxNlhpK0lERlZiNmhCKzNLS3NHT2U4N2JaanBXbGplR0tvRG1Q?=
 =?utf-8?Q?gzZ5Y3abXkn+pPHeQKN9mRtoTCmDLFy4?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cWhYZEY4T2p1UFNjbE0zUUUzMlE0c2tPdVg0Z3RHMjZaQnBRWktLZmROa29F?=
 =?utf-8?B?NTJoTDVEOS94UXhLNEF2TjIrcUV0eEQxYmUwNkN1RnA0R2FQblZlNUJ3bnVh?=
 =?utf-8?B?MU1vMEtJWVhudG1veWx1bHBHaVJpamNETXp0aGpnaG9kdW5DTy9LVUI2Sk9w?=
 =?utf-8?B?OWlDMjBxTmZwNkZZajBNa1A2clZjbTZ1TmN4ZEZUSFM0cm02WGNPeE1VOHgz?=
 =?utf-8?B?RVpQdWdYK2VYenU5YVcvcG9ickRYUnhvWTQ5dEJGVlR5K0N4VVVnYU5iSWJo?=
 =?utf-8?B?cmZoR2JNK2txbjJYejlaMTh6LzlVaFVnNlpsZldIOG41aFc4NGY1STJMQmlq?=
 =?utf-8?B?WFBFYW5POUFSSTJWSjVzOTlvMmM5S3JKYStKMjVaQUtvT1RoQVFTVFBzN2tF?=
 =?utf-8?B?WkdRVHJzRFBPa0J0YmQ3V0ZDQ0FuVjN6ZnlZQWVXcjJEY0drK1B1Q1ljZFNH?=
 =?utf-8?B?MU1WL3AxKzU3Vno5SDNrOVNObk1ISU5JNE92WGtwUzRKZHVVckhpUEJjdmZ1?=
 =?utf-8?B?ekNYZjk5N3FEdE5IcmhuWGVNWk0vQ1JFdE4ySVNFck8zTnNoUVdKaWplYWZj?=
 =?utf-8?B?R1BpU0Z0Y2Y3SVFCRXBkdzJMUXQwS3M2a25MWlA5WjNsSVJUUEpMaENTcmRH?=
 =?utf-8?B?bnlyVmNGSUtqVXh0RVN3QXkwUEZkVVB5ZDArbVhiamE3STFFQ0tDeEFOTjR4?=
 =?utf-8?B?eS9EWU5Xd0RHZ2FuMmpsUllsd2lJUlNzL3BEYkVKUkJmc1dRQVVMT3h1dkJn?=
 =?utf-8?B?aEN0dWpIT21JWVllTVl4ODN2RmpEYWhkSUtrNU5QbVJEKzdtUFU5U1A1cVZ0?=
 =?utf-8?B?OGJaUS9xVTVkUU90c3VXODgzamNXdUN0ZzJIOHpEQlAwZlRHMnNESEhYUWZ1?=
 =?utf-8?B?eFhaYnBQYng1WUxxVm1OSW5TREx2ODFMNmF2cVdVei8vMndVSU9CK1o4R1R1?=
 =?utf-8?B?c1p5WGhjK2N4NnM0cGQ5NkxCZ2dyS0pUSmJ2Z1BBdTNOSDdOTG5rWGNjTGgw?=
 =?utf-8?B?RnFUcHdoTWRSUzdla2Z5dHd0STB3SEJCcFdjbHVjOXRMQUFkVWhTVXY3blFO?=
 =?utf-8?B?WDFhc2d1eEJKUzJKNE5NSGM3N0xiM1Fxc053WHVwU2tWcFRvVmlvc3pvNXdy?=
 =?utf-8?B?bDRja3gwUjYxYVZCckd2bGJIU3ZTNnFDZlVUaWxTZGtqa0FxOEorMVVxVHdJ?=
 =?utf-8?B?RGJwb3AxM0VjdkhtdENZS21SRVozN1cvcThDd0EvUlBWcGc3LzBPc2VQVlQv?=
 =?utf-8?B?Q1NRaHQxWG5KQUt1WGs0VkVod3c5dFZMb1BEWU1HbVIrRUFLVFNBa0VoY2Rn?=
 =?utf-8?B?aGo5WFJYMzBWMnJ2SGwrQnloYlRyVlZBWkkydTV2VTdtUU5jTUhWZ0ZOQUpD?=
 =?utf-8?B?Y1Q1ME5WQ2Q1eXY2dXpKVGJGVEM0am1nQm5hUlJ2WWRVZ1R6N2dwRGV5UGtN?=
 =?utf-8?B?ZkNUSS9hb0pDNEFLWFZQUHo1RTA3YzVrUW9EU2tMRCt5ZTAwWlVsUjFDcDNs?=
 =?utf-8?B?RDJJMlRadlVpL3lsajYzRi9SMFljOUphOTNsMXpmSGFYbmVEMDV0Um9wVWFo?=
 =?utf-8?B?TVBHZGYvNDJrVUpMWlJxQkt5WUNhYUg1NnJpK3RIdGFHNXM5ZkRMUDNOdi80?=
 =?utf-8?B?b091ZXd0WVdkbUdlZkJDMnNROFRBd0xNbzR3L1RyVFF2Ti95NzNla2FKRXgz?=
 =?utf-8?B?TTl2ME13c1hjT2p3Z3J5R0RITVBmOGwxc0tneGl2ZVJKRHJucDVaMkxhN2dP?=
 =?utf-8?B?c2xIZy9nU3dTcmN2ZTVhd0pjYmlsbE5pQlcyemYwdWp1bkZ3d1dJRFhoZ2V2?=
 =?utf-8?B?YkRINVNwVDRJMFdiYWxSY2lnUFpxL3ZzNDJWaE43RGRKU1hZNy9vS3pJYkVk?=
 =?utf-8?B?cllkWU5zb3NXMXpBRzVkK25QemhCTG5iczUvMUFBdDF2OEVPMjAvU3JmT1NE?=
 =?utf-8?B?WWZsVjJySHpEbFVidnQveVVOSWNBSTkrc1kvWFA0MlZpRk01V1c3V29vcDZ4?=
 =?utf-8?B?VTUxZmF5b2RBWXMzQURGNUxxMDhJRWU0K1RXR3h1cUU4UzN3OW4wVGx6eWJ3?=
 =?utf-8?B?bDNSejQ5dVhnYkdoRTA2SUQ2amVpVHlDclFuUVdseUNwdEhOV01ZeVBRcFFZ?=
 =?utf-8?B?eVgrT3V0Z2l4a3Jla3k5ZzRSdzVjUnU3U1F0OGc4ZFdFaU9HNUxkRWRkOW0w?=
 =?utf-8?B?Q1E9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f9eed0f6-b934-4616-2b37-08de22f4de66
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Nov 2025 20:40:23.2875
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cm0A/LE8bHLuMk5iqMZ41q82agGG0Ghplo1/Z9wuK6f8LU9XXEtTAXkn0eT3RI+fIQABPnEHOBUx3dcEt/7LTT1ut+PVu/4Tne5kb3HHOXo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB10062



On 13.11.25 14:58, Jan Beulich wrote:
> On 13.11.2025 13:53, Grygorii Strashko wrote:
>> On 13.11.25 10:36, Jan Beulich wrote:
>>> On 12.11.2025 21:24, Grygorii Strashko wrote:
>>>> --- a/xen/arch/x86/hvm/vmx/vmcs.c
>>>> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
>>>> @@ -307,6 +307,7 @@ static int vmx_init_vmcs_config(bool bsp)
>>>>        rdmsrl(MSR_IA32_VMX_MISC, _vmx_misc_cap);
>>>>    
>>>>        /* Check whether IPT is supported in VMX operation. */
>>>> +#ifdef CONFIG_VMTRACE
>>>>        if ( bsp )
>>>>            vmtrace_available = cpu_has_proc_trace &&
>>>>                                (_vmx_misc_cap & VMX_MISC_PROC_TRACE);
>>>> @@ -317,6 +318,7 @@ static int vmx_init_vmcs_config(bool bsp)
>>>>                   smp_processor_id());
>>>>            return -EINVAL;
>>>>        }
>>>> +#endif
>>>
>>> Initially I was inclined to ask for use of IS_ENABLED() here, but that wouldn't
>>> work since vmtrace_available isn't an lvalue when VMTRACE=n. Hence why generally
>>> I think it is better to check the particular identifier in such cases, rather
>>> than the original CONFIG_* (i.e. "#ifndef vmtrace_available" here). I'm not
>>> going to insist though, as I expect opinions may differ on this matter.
>>
>> Yep. assignment required ifdef wrapping.
>>
>> "#ifndef vmtrace_available" will not work out of the box as there are
>>
>> "if (vmtrace_available)" in code. So, can't just "not define"/undef "vmtrace_available".
> 
> I meant this just for the case here, though. Elsewhere you want to stick to
> checking CONFIG_VMTRACE.
> 

I'd prefer to keep this part as is. Please tell me if you insist.


-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Nov 13 22:23:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 22:23:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162163.1489913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJfiv-0002it-K6; Thu, 13 Nov 2025 22:23:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162163.1489913; Thu, 13 Nov 2025 22:23:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJfiv-0002im-HW; Thu, 13 Nov 2025 22:23:25 +0000
Received: by outflank-mailman (input) for mailman id 1162163;
 Thu, 13 Nov 2025 22:23:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LsvY=5V=bounce.vates.tech=bounce-md_30504962.69165a58.v1-732267622a2b4c3181de5d340c471104@srs-se1.protection.inumbo.net>)
 id 1vJfiu-0002ig-RM
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 22:23:25 +0000
Received: from mail128-17.atl41.mandrillapp.com
 (mail128-17.atl41.mandrillapp.com [198.2.128.17])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5cf516ca-c0df-11f0-9d18-b5c5bf9af7f9;
 Thu, 13 Nov 2025 23:23:22 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4d6vtJ3S1czCf9MR7
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 22:23:20 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 732267622a2b4c3181de5d340c471104; Thu, 13 Nov 2025 22:23: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: 5cf516ca-c0df-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763072600; x=1763342600;
	bh=5DXLgoRdyJwQuI86VBFNKjX8SjoqaEy8lyUGH6YcZq8=;
	h=From:Subject:Message-Id:To:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=kGqtB27+k0+4RbSttj4CS6UW3ocKacabRUkSUPzdpWPIwWGO3PDF4gLlEV3YSWSbg
	 uf2Pu2U0rTzesOFrAmjna7LqBb3AchrgFFwkTLdf3m6bvtT/rdrHzUmUZxro3Hmy73
	 1z+/+QSsNn2ra5R3Md6gImUafFg22kkOlosIVxgc3FOE7ZMQ8CRaiMT1WJGQnfWxxW
	 M+jcekNpWvK8/lG31n61aJqMhTkX6qDcaVif1WhHq3+wuycJbQoWfFAuAqW4k1FYaF
	 Q0zBSBHtbRZuH8NAeP0u/O5ZlhePhQYs2iQT7IFiC+5w31o1Etukbn3563pJHzmyEv
	 K3Q0t8W6idzSA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763072600; x=1763333100; i=teddy.astie@vates.tech;
	bh=5DXLgoRdyJwQuI86VBFNKjX8SjoqaEy8lyUGH6YcZq8=;
	h=From:Subject:Message-Id:To:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=npF/PsIqFf+/Iq1aVsnuFOXRUg/YXEgg3SKPP1bZtIe+IvayV39yFGtewgJ6XyXIo
	 3GvLokiz/JcOmOseSw8Wpz4g50Iv8mMRLcogDnHTvM0ZDpT4wTG5MRoclg4F4yuKvW
	 QjrMsSBRWDuhPrtb66DclhONwpuPKrdFUPavXQ+KUberX0AVufu8R2qX1+C1CuEksv
	 fcRRSfo3Kw00h9VEdSCyNJ8aq4JdxEXWOjWGBzC9gqZJc40setOCVE8L0GNczL850g
	 Pu938HONfXu2gPpsQava7HYFtFaMyL9XiQ2GJ/QcpgO+Eo+Lxg6srI21dmA9sHtOqL
	 Hzk+Lxg0Iqclg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20Xen=20DomU=20Bootloader=20Experiences?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763072599810
Message-Id: <9b4a8a28-6b0b-41ac-b6de-88de8e6b4588@vates.tech>
To: "Elliott Mitchell" <ehem+xen@m5p.com>, xen-devel@lists.xenproject.org
References: <aRT4fiuF8soWI6tc@mattapan.m5p.com>
In-Reply-To: <aRT4fiuF8soWI6tc@mattapan.m5p.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.732267622a2b4c3181de5d340c471104?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251113:md
Date: Thu, 13 Nov 2025 22:23:20 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 12/11/2025 =C3=A0 22:16, Elliott Mitchell a =C3=A9crit=C2=A0:
> A few times there have been mentions of a need to choose between boot
> methods for DomUs.  There is a need to decide on ones to recommend and
> put effort into supportting.  I may not have tried that many nor done
> particularly great amounts of experimentation, but I do have some
> experience with multiple User Domain bootloaders.
> 
> PyGRUB
> Xen's bootloader.  PyGRUB is quite functional within its limits.  In
> particular it simulates the domain's environment in Domain 0.  This means
> the security exposure is problematic.  Another big concern is that it
> only does GRUB v1 syntax.  For a long while Debian had a package for
> generating those files on a modern system, but that package was dropped.
> 
> Yet PyGRUB does avoid needing to use external tools to retrieve the
> kernel.  If the kernel is updated inside the domain, this does get the
> new kernel.  Further being architecture-independent this works on x86,
> ARM*, RISC-V and PowerPC.
> 
> As it is the only GRUB-flavor loader available on ARM*, that is the only
> place where I've used PyGRUB.
> 

To be fair, I don't really like PyGRUB, it hasn't really worked well for 
me (perhaps I'm trying too modern distros ?). It's still what's being 
used for XAPI, which doesn't make things practical and even sometimes 
brittle.

I'm more tending to the other alternatives.

> 
> PvGRUB
> I'm sure nearly everyone knows about PvGRUB.  By being a proper port of
> GRUB to run directly on Xen, it overcomes PyGRUB's disadvantages.  The
> one disadvantage is needing to get patches into an external project for
> changes in Xen.
> 
> Two changes to Xen urgently need propogation to PvGRUB.  I'm unsure
> whether PvGRUB unmaps its mapping of vcpu_info data.  The second is

I don't think it maps vcpu_info, otherwise, most (all ?) Linux kernels 
will immediately break.

> needing to work on ARM*, RISC-V and PowerPC.  The latter is the one and
> only way in which PvGRUB is inferior to PyGRUB.
> 

Perhaps it could be a good idea; although I'm more tending to EDK2 
instead which works well with it and cover more cases (unless EDK2 stops 
working for some obscure reason). For a more long-term solution, I would 
prefer something different to GRUB but basing on "Boot Loader 
Specification", maybe Edera's Sprout [1] or rust-hypervisor-firmware [2] 
as a PVH firmware.

> As PvGRUB is only available for x86, that is the only place I've used
> PvGRUB.
> 

> 
> EDK2/Tianocore
> Quite well-known for being the basis of most x86 firmwares, plus being
> part of a typical Qemu setup.  Not nearly as well known for being a Xen
> DomU bootloader.
> 
> When it was working you would build their ArmVirtXen.dsc file and get
> XEN_EFI.fd as output.  You would then use XEN_EFI.fd for the domain's
> kernel.  If you looked at the console you saw something which looked and
> acted pretty similar to a UEFI firmware on x86 machines.  This was
> extremely functional for OSes which didn't particularly like GRUB.
> Notably I've read of it being able to load a Redmond OS and it was quite
> functional for booting an ARM64 port of FreeBSD.
> 
> Sometime after November 16th, 2022 or commit fff6d81270.  The built
> images stopped functioning.  This is actually rather concerning since it
> may also effects firmwares built for x86 HVM domains.  I don't presently
> know whether there are multiple bugs, or a single one effecting all Xen
> builds.
> 

Actually, you can use it for x86 like you do for ARM, with PVH (using 
the same binary as for HVM). But it broke at some point, and I'm mostly 
living with a older but working custom built version of it.

We definitely want to sort-out this, as it is going to be a blocker for 
providing better foundations for PVH guests on XAPI/XCP-ng.

> There is also an urgent need to get EDK2/Tianocore updated to match
> Xen/ARM's disallowing mapping the shared information page multiple times.
> As I did not wish to become deeply involved with EDK2/Tianocore I sent a
> patch to xen-devel close to 1.5 years ago.  Lack of action suggests there
> is an urgent need for a liason.
> 
> 
> 
> Recommendations:
> PyGRUB is functional within its limits.  Problems are GRUBv1 syntax and
> running within Domain 0.  Given this I feel the Xen Project should be
> heading towards deprecating PyGRUB.  Since PvGRUB works for x86 now, I
> would default to neither building nor installing PyGRUB on x86.  For
> other architectures PyGRUB is still useful.
> 

+1. At least making it deprecated, and at the same time improving the 
ergonomics of alternatives (i.e PVH+EDK2, legacy grub-pv and/or "PV-GRUB").

> The Xen Project should formally ask the GRUB Project to port PvGRUB to
> ARM, RISC-V and PowerPC.  The need for PvGRUB on ARM seems rather urgent.
> Without a proper bootloader VMs aren't too useful.
> 

EDK2 / U-Boot should be able to fill this niche at least for ARM; not 
sure about RISC-V though, but I guess it is going to be a similar story.

Unsure about PowerPC through.

> 
> The Xen Project needs people to work with EDK2/Tianocore.  The oldest
> report I've seen of the EDK2/Tianocore issue dates to mid-2023.  Now two
> years later the bug is still present.
> 

> The ability to configure XEN_EFI.fd as a domain kernel is a feature
> highly worthy of being ported to x86.  For OSes which don't particularly
> like GRUB, but do have PV drivers this is an ideal boot method.
> 

AFAICT it is already there :)

> 

[1] https://github.com/edera-dev/sprout
[2] https://github.com/cloud-hypervisor/rust-hypervisor-firmware


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Nov 13 23:13:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 23:13:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162180.1489924 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJgUz-0001Uw-5J; Thu, 13 Nov 2025 23:13:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162180.1489924; Thu, 13 Nov 2025 23:13:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJgUz-0001Up-1p; Thu, 13 Nov 2025 23:13:05 +0000
Received: by outflank-mailman (input) for mailman id 1162180;
 Thu, 13 Nov 2025 23:13:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Fq0p=5V=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1vJgUy-0001Uj-Ef
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 23:13:04 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4c4f5c03-c0e6-11f0-980a-7dc792cee155;
 Fri, 14 Nov 2025 00:13:01 +0100 (CET)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:8ac4:0:0:0:0:f7])
 by mailhost.m5p.com (8.18.1/8.17.1) with ESMTPS id 5ADNCohx031081
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Thu, 13 Nov 2025 18:12:56 -0500 (EST) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.18.1/8.15.2/Submit) id 5ADNCoUX031080;
 Thu, 13 Nov 2025 15:12:50 -0800 (PST) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c4f5c03-c0e6-11f0-980a-7dc792cee155
Date: Thu, 13 Nov 2025 15:12:50 -0800
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: xen-devel@lists.xenproject.org
Subject: Re: Xen DomU Bootloader Experiences
Message-ID: <aRZl8juO9RqN36lF@mattapan.m5p.com>
References: <aRT4fiuF8soWI6tc@mattapan.m5p.com>
 <364eca04-63d0-4ceb-b6c8-84fa6efc3aeb@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <364eca04-63d0-4ceb-b6c8-84fa6efc3aeb@epam.com>
X-Spam-Status: No, score=0.4 required=10.0 tests=KHOP_HELO_FCRDNS autolearn=no
	autolearn_force=no version=4.0.1
X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on mattapan.m5p.com

On Thu, Nov 13, 2025 at 10:13:07PM +0200, Grygorii Strashko wrote:
> 
> On 12.11.25 23:13, Elliott Mitchell wrote:
> > 
> > Recommendations:
> > PyGRUB is functional within its limits.  Problems are GRUBv1 syntax and
> > running within Domain 0.  Given this I feel the Xen Project should be
> > heading towards deprecating PyGRUB.  Since PvGRUB works for x86 now, I
> > would default to neither building nor installing PyGRUB on x86.  For
> > other architectures PyGRUB is still useful.
> > 
> > The Xen Project should formally ask the GRUB Project to port PvGRUB to
> > ARM, RISC-V and PowerPC.  The need for PvGRUB on ARM seems rather urgent.
> > Without a proper bootloader VMs aren't too useful.
> > 
> > 
> > The Xen Project needs people to work with EDK2/Tianocore.  The oldest
> > report I've seen of the EDK2/Tianocore issue dates to mid-2023.  Now two
> > years later the bug is still present.
> > 
> > The ability to configure XEN_EFI.fd as a domain kernel is a feature
> > highly worthy of being ported to x86.  For OSes which don't particularly
> > like GRUB, but do have PV drivers this is an ideal boot method.
> 
> Just curious, you did not mention u-boot which is widely used on ARM,
> for example Android guests boot using it.

As I have not used U-Boot to load a DomU I did not write about something
I have not done.  Have you used U-Boot to load a DomU?  Was it a pleasant
experience?  Was it easy to setup?  Was it difficult to setup?

PyGRUB still has a bit of value since it can still load some Linux
guests.  GRUBv1 syntax is a major weakness, so I think the Xen Project
should be heading towards deprecating PyGRUB.  Mostly this needs GRUB's
Xen support to be ported to ARM and RISC-V.

GRUB's Xen support works great for x86.  Pleasant experience with minimal
trouble.  This is great for loading Linux in a DomU.

Tianocore/EDK2 support worked (past tense) great for ARM64.  Pleasant
experience with minimal trouble.  I haven't done full installation, but I
expect full installation will be a breeze (sigh getting patches into some
projects is extremely difficult).



Grygorii Strashko, do you think U-Boot is likely to cover some scenario
not covered by either GRUB or Tianocore/EDK2?  Do you think U-Boot is
likely to do a better job with some scenario than either GRUB or
Tianocore/EDK2?

You mentioned using U-Boot to load Android DomUs on ARM.  Is that likely
to be difficult to switch to Tianocore/EDK2?


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Thu Nov 13 23:33:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 13 Nov 2025 23:33:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162195.1489933 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJgoK-0004Zr-Nb; Thu, 13 Nov 2025 23:33:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162195.1489933; Thu, 13 Nov 2025 23: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 1vJgoK-0004Zk-Kc; Thu, 13 Nov 2025 23:33:04 +0000
Received: by outflank-mailman (input) for mailman id 1162195;
 Thu, 13 Nov 2025 23:33: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=FQDN=5V=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vJgoJ-0004Ze-I5
 for xen-devel@lists.xenproject.org; Thu, 13 Nov 2025 23:33:03 +0000
Received: from mail-yx1-xb130.google.com (mail-yx1-xb130.google.com
 [2607:f8b0:4864:20::b130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 15f97dff-c0e9-11f0-980a-7dc792cee155;
 Fri, 14 Nov 2025 00:32:58 +0100 (CET)
Received: by mail-yx1-xb130.google.com with SMTP id
 956f58d0204a3-641e4744e59so720171d50.2
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 15:32: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: 15f97dff-c0e9-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763076777; x=1763681577; 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=8SI4cIqrAacX8OARZm6mZ0FnCfCuDC1hURLlwaznqVo=;
        b=lSIVjD1uBVNCgLxnGBjhTtUJvzgWiconp/fbTF7o/nVzOYWbR1cOVTtQrM3N8hOH+e
         Jh2ofChN+u4k26IwtAi1hENILOfjmrHwWVjOjSG8DwzKw5A/y2mjxcjwSYi/DAuy8dDp
         PzVu0KqiKjm+saMjdummEu7BZaMzqzzydMl65Yj8+4aBUqQ3xeG2ZARnerb4/OrJZQvm
         XRS35dAddbAQOZCb2UDZoHD7UbR0h2OSRdE7K5Y9u2LtLl4TfBBLO3Wo3H5EuJTkRe9X
         gAL6NB4q0FuTm0d4BLYnN/zoIIKH/HzVMpIRoKY5F7ohM2gXwnTC9IJRqab9Z5pmKpqx
         CFcg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763076777; x=1763681577;
        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=8SI4cIqrAacX8OARZm6mZ0FnCfCuDC1hURLlwaznqVo=;
        b=djRhdLU6cbo+OISCohVcryr2q30aBgFFnBsMvb9eSHpnIdJTQ4Bm+Gmja/R0giuU4h
         i/SfKH484NXYvDdt3i/OGSSwsS/9QImnBmNI5ogq1FHkPiDt4hY3vmVnfp+im2C71WtD
         hf2O5o8BVxK18uVJNT559QCexOsFgWnzGJ/sVPtAhIMCs0jIt+lGu2Gl6N86BHzG1LI0
         AECnAp98a36IPCXOns/FQ/FUDYl9S34XZ8P5ViPPWbkiYSuYTlKvqdDRfRItti2RfFJn
         q3jxNq6hY+5BCvA0y0dSO2PhqOznsNOgrRXTN5jsfx7z+crNF07GSxLhnig9XxAn5HR6
         Vljw==
X-Forwarded-Encrypted: i=1; AJvYcCW44VIQlqJDtJx8RKS/0ICiUGiJxg/JpLgdHH3w8JzrqEnjek54GCEJwaoUU3M5JQjSZfr7LW7wXmQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywplvk3N3Pq5D7anKSYbKlpHM8RT91uB1LEK6ZbXTn5UDAbBrye
	f32o2g/N3yVODuPhUOuvtH2KK03SDMiO1EyYbjI60+kU71NVcDblUG5xOUBVL4+oNnhMkogk7+F
	x0n9SeTaxfoh0nClPChDuzAltcxmwxwc=
X-Gm-Gg: ASbGncsJrdDI4YgxMUFdWANb0WqR4mC61JiIQTXDPfI5uCg+MSiELXq+iqtDZlBAEoZ
	FMzDh5kOHjeGKaA85oQm3J9zTWeWuwB42aR363suK0G7LsN63Mn449ogjDCGzi5Ms9nLnaiJHmG
	rQvhkNldoPd6Y2SyUk8dgMkavGiFYzjrUe/W6AQEKrwtBpdVU6mkbkazG8+ZbMxII9+ByisAgL/
	SukUxiV7ypvxCy8F6q4XBoRaZMdRNzwPW9H0ONrHnSEZB5teekeBDL/ogr5mqcoy2HoA78=
X-Google-Smtp-Source: AGHT+IG7De5RrmBHFBNMsQtSaaGYCJfRDbL8A8fGQhZag6Kz2YCQqZYAgnbu/n0DZUiyntRsADD3TYmT5ZiDdStoTHg=
X-Received: by 2002:a53:d00b:0:b0:63f:a89c:46f9 with SMTP id
 956f58d0204a3-641e76a391dmr889503d50.40.1763076777096; Thu, 13 Nov 2025
 15:32:57 -0800 (PST)
MIME-Version: 1.0
References: <20251113154358.28704-1-frediano.ziglio@citrix.com>
 <aRYk80Sqo-sjN6fG@mail-itl> <d95e5a85-a8cf-4207-94d8-5e1afff615c1@citrix.com>
In-Reply-To: <d95e5a85-a8cf-4207-94d8-5e1afff615c1@citrix.com>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Thu, 13 Nov 2025 23:32:44 +0000
X-Gm-Features: AWmQ_bmkl8V_7Xf06ULHeD6GClX2xw775Hsmw_BjynXbXQnDqw6ASMExjpcRDok
Message-ID: <CAHt6W4dKLM8_04TFheOT5zHv+U-XDJEyKUV_6g_i17baAn5E_g@mail.gmail.com>
Subject: Re: [PATCH for-4.21 v8] xen: Strip xen.efi by default
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	Frediano Ziglio <frediano.ziglio@citrix.com>, xen-devel@lists.xenproject.org, 
	Frediano Ziglio <frediano.ziglio@cloud.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Demi Marie Obenour <demiobenour@gmail.com>, 
	Stewart Hildebrand <stewart.hildebrand@amd.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, 13 Nov 2025 at 18:40, Andrew Cooper <andrew.cooper3@citrix.com> wro=
te:
>
> On 13/11/2025 6:35 pm, Marek Marczykowski-G=C3=B3recki wrote:
> > On Thu, Nov 13, 2025 at 03:43:58PM +0000, Frediano Ziglio wrote:
> >> From: Frediano Ziglio <frediano.ziglio@cloud.com>
> >>
> >> For xen.gz file we strip all symbols and have an additional
> >> xen-syms.efi file version with all symbols.
> > You meant xen-syms here, right?
>
> I think so.  I just noticed the same.
>

Yes, my mistake

> >
> >> Make xen.efi more coherent stripping all symbols too.
> >> xen-syms.efi can be used for debugging.
> >>
> >> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> > With the above fixed:
> >
> > Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingsl=
ab.com>
> >
>
> I've done some ad-hoc testing and everything seems to be in order.
>
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Thanks,
   Frediano


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 01:55:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 01:55:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162221.1489944 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJj1r-0006Oc-1i; Fri, 14 Nov 2025 01:55:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162221.1489944; Fri, 14 Nov 2025 01:55:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJj1q-0006OV-Ts; Fri, 14 Nov 2025 01:55:10 +0000
Received: by outflank-mailman (input) for mailman id 1162221;
 Fri, 14 Nov 2025 01:55: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=xgzl=5W=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1vJj1q-0006OP-9L
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 01:55:10 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f1d02e6a-c0fc-11f0-980a-7dc792cee155;
 Fri, 14 Nov 2025 02:55:07 +0100 (CET)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:f7])
 by mailhost.m5p.com (8.18.1/8.17.1) with ESMTPS id 5AE1sx0H031531
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Thu, 13 Nov 2025 20:55:04 -0500 (EST) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.18.1/8.15.2/Submit) id 5AE1swnN031530;
 Thu, 13 Nov 2025 17:54:58 -0800 (PST) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f1d02e6a-c0fc-11f0-980a-7dc792cee155
Date: Thu, 13 Nov 2025 17:54:58 -0800
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Teddy Astie <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org
Subject: Re: Xen DomU Bootloader Experiences
Message-ID: <aRaL8gAI7t_PCmxU@mattapan.m5p.com>
References: <aRT4fiuF8soWI6tc@mattapan.m5p.com>
 <9b4a8a28-6b0b-41ac-b6de-88de8e6b4588@vates.tech>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <9b4a8a28-6b0b-41ac-b6de-88de8e6b4588@vates.tech>
X-Spam-Status: No, score=0.4 required=10.0 tests=KHOP_HELO_FCRDNS autolearn=no
	autolearn_force=no version=4.0.1
X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on mattapan.m5p.com

On Thu, Nov 13, 2025 at 10:23:20PM +0000, Teddy Astie wrote:
> Le 12/11/2025 à 22:16, Elliott Mitchell a écrit :
> > A few times there have been mentions of a need to choose between boot
> > methods for DomUs.  There is a need to decide on ones to recommend and
> > put effort into supportting.  I may not have tried that many nor done
> > particularly great amounts of experimentation, but I do have some
> > experience with multiple User Domain bootloaders.
> > 
> > PyGRUB
> > Xen's bootloader.  PyGRUB is quite functional within its limits.  In
> > particular it simulates the domain's environment in Domain 0.  This means
> > the security exposure is problematic.  Another big concern is that it
> > only does GRUB v1 syntax.  For a long while Debian had a package for
> > generating those files on a modern system, but that package was dropped.
> > 
> > Yet PyGRUB does avoid needing to use external tools to retrieve the
> > kernel.  If the kernel is updated inside the domain, this does get the
> > new kernel.  Further being architecture-independent this works on x86,
> > ARM*, RISC-V and PowerPC.
> > 
> > As it is the only GRUB-flavor loader available on ARM*, that is the only
> > place where I've used PyGRUB.
> > 
> 
> To be fair, I don't really like PyGRUB, it hasn't really worked well for 
> me (perhaps I'm trying too modern distros ?). It's still what's being 
> used for XAPI, which doesn't make things practical and even sometimes 
> brittle.
> 
> I'm more tending to the other alternatives.
> 
> > 
> > PvGRUB
> > I'm sure nearly everyone knows about PvGRUB.  By being a proper port of
> > GRUB to run directly on Xen, it overcomes PyGRUB's disadvantages.  The
> > one disadvantage is needing to get patches into an external project for
> > changes in Xen.
> > 
> > Two changes to Xen urgently need propogation to PvGRUB.  I'm unsure
> > whether PvGRUB unmaps its mapping of vcpu_info data.  The second is
> 
> I don't think it maps vcpu_info, otherwise, most (all ?) Linux kernels 
> will immediately break.

I thought multiply mapping the vcpu_info was deprecated, but still
allowed on x86.  Only on ARM{,64} was it actually disabled.  As such it
might still have a private mapping, but it is possible it never had one
or was cleaned up at some point.

I keep mentioning this as Tianocore/EDK2 does a private mapping, but
fails to remove it when bootloading finishes.  Since support for multiply
mapped vcpu_info was removed, Tianocore/EDK2 got broken by Xen.  This is
still unfixed.

> > needing to work on ARM*, RISC-V and PowerPC.  The latter is the one and
> > only way in which PvGRUB is inferior to PyGRUB.
> 
> Perhaps it could be a good idea; although I'm more tending to EDK2 
> instead which works well with it and cover more cases (unless EDK2 stops 
> working for some obscure reason). For a more long-term solution, I would 
> prefer something different to GRUB but basing on "Boot Loader 
> Specification", maybe Edera's Sprout [1] or rust-hypervisor-firmware [2] 
> as a PVH firmware.

I concur with Tianocore/EDK2 covering more cases.  I do suspect keeping
it functional may be more difficult so I'm slightly wary of it.  Whereas
PvGRUB is lower overhead and faster for *Linux*.


> > EDK2/Tianocore
> > Quite well-known for being the basis of most x86 firmwares, plus being
> > part of a typical Qemu setup.  Not nearly as well known for being a Xen
> > DomU bootloader.
> > 
> > When it was working you would build their ArmVirtXen.dsc file and get
> > XEN_EFI.fd as output.  You would then use XEN_EFI.fd for the domain's
> > kernel.  If you looked at the console you saw something which looked and
> > acted pretty similar to a UEFI firmware on x86 machines.  This was
> > extremely functional for OSes which didn't particularly like GRUB.
> > Notably I've read of it being able to load a Redmond OS and it was quite
> > functional for booting an ARM64 port of FreeBSD.
> > 
> > Sometime after November 16th, 2022 or commit fff6d81270.  The built
> > images stopped functioning.  This is actually rather concerning since it
> > may also effects firmwares built for x86 HVM domains.  I don't presently
> > know whether there are multiple bugs, or a single one effecting all Xen
> > builds.
> 
> Actually, you can use it for x86 like you do for ARM, with PVH (using 
> the same binary as for HVM). But it broke at some point, and I'm mostly 
> living with a older but working custom built version of it.
> 
> We definitely want to sort-out this, as it is going to be a blocker for 
> providing better foundations for PVH guests on XAPI/XCP-ng.

Well, Tianocore/EDK2's Xen support was broken sometime mid-late 2022.
The only working firmware images I have are 5 years old and fail to load
as PVH.  Being used as DomU kernel may have worked on x86 at some point,
but I've never seen it.

Meanwhile Tianocore/EDK2 ARM was broken on *Xen*'s side.  Usually that
would mean the Xen developers are supposed to get updates into
Tianocore/EDK2.


> > Recommendations:
> > PyGRUB is functional within its limits.  Problems are GRUBv1 syntax and
> > running within Domain 0.  Given this I feel the Xen Project should be
> > heading towards deprecating PyGRUB.  Since PvGRUB works for x86 now, I
> > would default to neither building nor installing PyGRUB on x86.  For
> > other architectures PyGRUB is still useful.
> 
> +1. At least making it deprecated, and at the same time improving the 
> ergonomics of alternatives (i.e PVH+EDK2, legacy grub-pv and/or "PV-GRUB").

Trying to used legacy GRUB syntax is hopeless.  Most distribution scripts
will have been updated to be GRUBv2 syntax-only.  As such PV GRUB is
pretty clearly the way to go.


> > The ability to configure XEN_EFI.fd as a domain kernel is a feature
> > highly worthy of being ported to x86.  For OSes which don't particularly
> > like GRUB, but do have PV drivers this is an ideal boot method.
> > 
> 
> AFAICT it is already there :)

I've never seen it working.  It may have worked at one time, but it has
remained broken for rather a long time.

Perhaps time to add CI on Xen's side?


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Fri Nov 14 05:19:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 05:19:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162236.1489954 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJmDe-0008SK-Sp; Fri, 14 Nov 2025 05:19:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162236.1489954; Fri, 14 Nov 2025 05: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 1vJmDe-0008SD-Py; Fri, 14 Nov 2025 05:19:34 +0000
Received: by outflank-mailman (input) for mailman id 1162236;
 Fri, 14 Nov 2025 05:19: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=tovc=5W=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1vJmDc-0008S7-LY
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 05:19:33 +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 7d96af74-c119-11f0-980a-7dc792cee155;
 Fri, 14 Nov 2025 06:19:28 +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 5ADMdKNa018905
 for <xen-devel@lists.xenproject.org>; Fri, 14 Nov 2025 05:19:27 GMT
Received: from bl2pr02cu003.outbound.protection.outlook.com
 (mail-eastusazon11011027.outbound.protection.outlook.com [52.101.52.27])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4adra7hx5e-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 14 Nov 2025 05:19:26 +0000 (GMT)
Received: from SJ0PR05CA0112.namprd05.prod.outlook.com (2603:10b6:a03:334::27)
 by LV8PR16MB6688.namprd16.prod.outlook.com (2603:10b6:408:258::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Fri, 14 Nov
 2025 05:19:24 +0000
Received: from CO1PEPF000075F0.namprd03.prod.outlook.com
 (2603:10b6:a03:334:cafe::6c) by SJ0PR05CA0112.outlook.office365.com
 (2603:10b6:a03:334::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.7 via Frontend Transport; Fri,
 14 Nov 2025 05:19:23 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 CO1PEPF000075F0.mail.protection.outlook.com (10.167.249.39) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.13
 via Frontend Transport; Fri, 14 Nov 2025 05:19:23 +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
 5AE1OCbh1998789
 for <xen-devel@lists.xenproject.org>; Fri, 14 Nov 2025 00:19:22 -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 4ac5jkatpv-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 14 Nov 2025 00:19:22 -0500 (EST)
Received: from localhost ([19.12.92.221]) by cmsmtp with ESMTPSA
 id JmDOvzua0osj2JmDPvhW1n; Fri, 14 Nov 2025 05: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: 7d96af74-c119-11f0-980a-7dc792cee155
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=/ca
	TaloZJgx3jVoA4sILw4FgJsrBBRPJ1tCswcDbuH8=; b=MhTf9UNqDMpCIvau0lF
	FpQQbtjZVfuFEuq2QyaEBm/2+EPsadOJRtD14Z2hr8vOZnVLgBA+GJma9OZQNGjL
	H2KxGP0HbRufvVFNm6e/bIYyjf+WK6LNlL9i0rqvimDcgFSiZHuyJAxVHxCigGPg
	j3LHmvjiUy4TuQk/j5bziB77Z1qMYi13GmY9s/1kC/UH3LuSkyXJ4GUSmRmFHBXc
	JjplfMNypHYPhHb99C8jH41MTc5GRj6hw19LFAmjXY9H8Nk8r0f+ndkGBt4R1C1A
	/UizmR35PGZpysUcj43Uh6HY2ldnT54CTKvOerlcl/pzu2c67nCKzQb4U0ILpAbj
	IfQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QeZ8oarRBcEh3F9aan8r89mfbEIYbWT6HvhLUXEj31QX/m03RuYts3qopHy5hqnpaUpvO5dE2bA2GI9xFi/BnoddFZMVIR51sgnM5AhGNEJqPbTBKuGVPV0rgXBOVF4nvMQniNtNtSet9VsR2Pq7KaUQ+G1FD5hC1+6sC4bifTI3WPJRjH8sjrMkgO6bdAQOJ8aMlCGPJO8I9C4iNIExEeTXhcIhHJ5Rr0pWw0mN4wsnxIr0+xPTtzHi2hcX28gSkA5TE2RP35SL32OLWGlBltNX2myIHfK6Yy87DeN9l2+6EIuaE2szuPiwFTBl2v8WdXoymv/eVdfRqHwaYx63Pw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/caTaloZJgx3jVoA4sILw4FgJsrBBRPJ1tCswcDbuH8=;
 b=QTMLOkiUtW0ZSPj3PMiV7negcDFnDvPXWRgUFL0FXRa17BWTk8egnWu5bqwXdO0Mf4VbC97mKj+wIjmZUGAq4h22bweROMNEpeSKrAZe5Arowj8uztJYSHVTgTrpe7wDYbYnaa6LpusYwMA8SRWgFpJhBQjFOnIAJfRcXMC9EWFrx1RiAd5t5A2d6l9lmA+Bavc8ybMVUtLfPH6Gyb/dsOeyq7VOdB7wpUZzdjdR4xQG5+FwkU6yroxeN6t/FtZWDJrWhzk25hUqMqOzhQOgOwxyLdcWbqW/8sANsymO1olneZV1uMyAzXJnmJBLxZro9P+o7a+sioidI40ujIimIw==
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=/caTaloZJgx3jVoA4sILw4FgJsrBBRPJ1tCswcDbuH8=;
 b=R/suOObeYRuOooMkJ97Iw2Zo5gFvYvnHtw1zr+JPWDdQoOfOcCUefabq6jPCTr+ShmbRYiB2CQDr4oGlbKbjafQteCR57JDAViXFdAzVoLRNcQqc5CmKZAF7NtARUbXVEhCpircKbyKOG6KwOX/IYvRimckAUPVGEN5GnKblssA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:content-type
	:date:from:in-reply-to:message-id:mime-version:references
	:subject:to; s=ppserprodsaar; bh=/caTaloZJgx3jVoA4sILw4FgJsrBBRP
	J1tCswcDbuH8=; b=IhkznWWLDnKwt0gcN0oBCMHWUend6aroY5XdtdVBXDq4LFS
	BVm2kIlQXZNVPe4rz/Ad5aMVrG9++7yIr1qUiB+Rscj0y6UBr9kIcsYcbpjMz9to
	Mdnqdfpgk0U7/cPrwRAt6j43UlSlDN0jr7EXKGMQ815FlNOfb1cODp5mWMuJBud+
	ZrSq4P4upN3dE6Xbih/hQd9YJ0ovhYbG7faZHGT5yUeJhcTdscC3Fvs4NR9XOvA2
	Psgla77ciyQ3GCMbmbu5zgJQzyx8ETkh1KEwjgY8H6GZC9O/PgNlk5McOXBCITva
	n/NB7WERhlIjtMd/CcAeEfGQTQd5fhn/23HOdzA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppfserpocford;
	 bh=/caTaloZJgx3jVoA4sILw4FgJsrBBRPJ1tCswcDbuH8=; b=oQIqQdq2iG7m
	UTvY1qFhinrHSKhbAoLKF5GgMds6lpJ2JvksSGba4OW+h3DoxdRSen3cNxNWEIlU
	X6z4hgdX2frm3cRP9rHESVfVKqzBP5OydBwfQFISu/apcWbBl8tYrZQRKhMgwIfm
	TI/hwBOJsyb/bR0lF8dZ8MhZ1Q+2xTUiuFXBb0e49RJLQPDPKCS9pzu8LMvceoNu
	Iu4qFtBvKZP4KyeamD6hPYc1khGGE+Dnh0s6ftyll2mXvJoRq56++1xV/d1sXPbY
	BU9GJDiNLx8texNkETS/+BQxaPDd3AIfiTWpauwRGdzfcJRVc9ituUhmhVpUTKe3
	ZQIpEJi+rQ==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: JmDOvzua0osj2JmDPvhW1n
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Thu, 13 Nov 2025 21:19:17 -0800
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
        anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
        michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
        dmukhin@ford.com
Subject: Re: [PATCH v7 03/16] emul/ns16x50: implement emulator stub
Message-ID: <aRa71Z16o4VCk3Jo@kraken>
References: <20250908211149.279143-1-dmukhin@ford.com>
 <20250908211149.279143-4-dmukhin@ford.com>
 <CAGeoDV_-AOeN=_kNK8wo-X8ZBq8DTxwGoi=wBd1ScN9j0XohmA@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CAGeoDV_-AOeN=_kNK8wo-X8ZBq8DTxwGoi=wBd1ScN9j0XohmA@mail.gmail.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-11-13_07,2025-11-13_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0
 suspectscore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 phishscore=0
 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001
 definitions=main-2511140039
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000075F0:EE_|LV8PR16MB6688:EE_
X-MS-Office365-Filtering-Correlation-Id: 2c31794a-7963-436c-c8aa-08de233d5f6b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?d3lZL01LWUQ0L3lqc1ZScnVMYVIvWklNYnVnYlhUN3ppa2JMQUN0NjJzREdS?=
 =?utf-8?B?cytiZ0VaRS85Z3NjbENDNXpTSGJYbXh0dHlmSWtKRnU5TXcyclhNcXRpWWU1?=
 =?utf-8?B?emhseHhoZDBZR0lrVitNMHlJL1F4cEthdXZJMXUvL1drTGszKzRRMStTOEg0?=
 =?utf-8?B?T1M1YldvY1BTV1BoVEk0TkFnVWZIbHJVb3VremJQOVdPc2V6OEwrRWg2QlR4?=
 =?utf-8?B?K2YrZS9xU3p4TDZ3dVVLSmNBa1VyazgyUGFYajBQMjdsbGFaNWlYVmRCQWNq?=
 =?utf-8?B?UUVQR290WjRMZVBGQ2MzSmZpTXBQWXpJcHVndTViTmlJcWVZT0hPK3dGcXZt?=
 =?utf-8?B?MW1Qa0NnaThQempTQlRUcU1OdkxtK2dOYW5iaUxqUkl5NWFkQmdBVUxlb2Nn?=
 =?utf-8?B?MFJiZUhTN2J0c25CVFdMRWs5YWFZN3d4REprTzNXZ0FYcGhmMXBDOEJNZVhU?=
 =?utf-8?B?QkUyc1NDNzY4K1MyTXRCWHRBVktpVk1Fd0tNa3dIWU8zZElON05ML2V2S0Zh?=
 =?utf-8?B?VWVvb3R3V1JXeWVnYUxkNzNVSjRvQm51bHFHY0hxL0M3VnFldUNMMnYrWGlm?=
 =?utf-8?B?WVZyN1NQYnE1SXNFN3hoNUI3TlVVdGNVMk5YYStLeXViZVphZzE0UzlkYjdt?=
 =?utf-8?B?M0ZZMkJKaTJPWitOOXpIWS83d29WMm8rb0pHQjJnekJXTmYrdHk2RlBYbElk?=
 =?utf-8?B?K05CNHBXVFlyTjBtWEhHdDJHN0ZWUi9IQm1UdkRaelphUVlBV2tjN2x3cStR?=
 =?utf-8?B?a0hpS0N0bzFwN2RnMjc1cTNUUlkzWnlUOXptUi9kRzVjaHlHcUM2YUcwQTYw?=
 =?utf-8?B?S2Q4OVlSZVhEUTVBNmw2aWdnSkhJVTI5blYxbVpPS3RKcXl3MUc4K0R0WVBk?=
 =?utf-8?B?Q2lzV1R2dnNBK3hwZmNuSDVzcVlYdzN3dFVrMXVMQlZOSEY2dWRrbFcxZjB3?=
 =?utf-8?B?Q0d6LzRRY3VkSzY4WXhFNy9NZWNGRXVEdjhHQ3VFZW1rU0NxRk8zSmJvcGhF?=
 =?utf-8?B?UzgzY1Nyb1l6WFAzTWIrUjBrVTJtcko3dFRBazVaeFNBVHNDY3FQb3F0K1R3?=
 =?utf-8?B?VWhTWE1oUGVGTVpCaWtwWm10SjVTN0lFQ0phWlpHamI4cTlzUHVOWEJoUjd3?=
 =?utf-8?B?cFUzN1NMSHlPbTBBSnV6NGl5c2dmeC90cDhFczUyc1BRclhmNm1KdjU4YXha?=
 =?utf-8?B?RUNkQ0h6cGMvenFJbTAzdnJ1cGNSYzVLNXJsWTRKbXRJRVJUSFlWVDU0VWgx?=
 =?utf-8?B?WE5NUjFUWFdqTldZbGFVQ1Y1T0EyVEVldzZoUGFOeW9oamxBSE01YVhBbEJp?=
 =?utf-8?B?dGNBODBjc0lqNXZXWWNiSFcwZnNBNjNrT0swdlUzS2IwZXlJWktwL3o2cVhi?=
 =?utf-8?B?bXR5T1VpZUJqRTVGd3pVWXM4bmVXOTV2d01iTmtwV0xzYlNMemp2Y21kWUJF?=
 =?utf-8?B?bEE1VCtTaU5DQjZnNWVQUDBGL0FBeTZVaDRkOFNsUXBLZUMyMnZXckFLZzd3?=
 =?utf-8?B?eWU2bWVwaVF1YnROUXlQU2hmRloya3lNYlN6SVJNT0U4dUNsem56WENJRWhJ?=
 =?utf-8?B?NTQxckw1TUJZSGp4UDVaNkRLUEJxZWk5UFlvWjBJbXJscDFkM21TV25lRUVy?=
 =?utf-8?B?eGtqTmxOZTdOdU96a09LNytPS0NOTmliYlFpVW9ua3JTdHFOb0duRWM4clVV?=
 =?utf-8?B?blZMZDhoZ1dpNERtZFg5OGVZdklva3lFN2s3bXhTSk44ejNNWkg4YncvU1RD?=
 =?utf-8?B?RkxhSGtlR2NBYXBBZG5xTU5JdlhJWHJFNlYvc2c3KytDOURsdEdjNC84Wm9E?=
 =?utf-8?B?L0paSStrclQrZjdCRlM2UEY1Z3QvQWY5clNhMWxDbldIVy9hVUJrM2FXZHE1?=
 =?utf-8?B?a3RkcHZvN2ZWY2xxM0IwdTNKdDFnTU5GTE9QKzdhdmJzZWtKdGdNK0FOb2VT?=
 =?utf-8?B?aWdGM3Q0cERleDdQQlIwVnRWeDJ6WDY2UTVSMzJJcVUyaXlEMFFMVDdhZGlW?=
 =?utf-8?B?cUluZUxscjQ1bTM0S0VaTDFHKzNlTGcvVGxRbDA5bHpTZzVsTmRKem1hTU1v?=
 =?utf-8?B?K0RSQkZCaWFTVHR6MThHOFFzeDFrMUtSRUJKWlcrM25ZanBJcFhjbDcrWitG?=
 =?utf-8?Q?7nDU=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-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	TLwep0PKc1mTXm7tdwMyPy8bTe1BdiRzeZi+QMdkF87itJzmsSYkxztnoxg90bL56SEMdyEu8GZ5KmcqPT0ZQRudesVsjnvihli3NpfMd08gIZ8hHExWGoPaq/1Bm5y9WImKC0FX2lZgNgnjl0cbzlxTzEYblNj8PlFAGW7jnkuu1uck3C7bSNM42HHuZzP6/wBpJJnl/91iar9h+wADudM+3nR6koR8Vrig8K+9itFgDSt0IsyllSzLoQ5beKvLgn/WsvWuZxYLpUlmsBlz50C/bItIBtOneJazVEfF5wiEk2L3SGEaLYn5OPvPSU7/Gymc8xgO1vU1rTGlWipBETVrkKsRlch9czGQV13T/bpVacBdsQuiB5jn1qA2J5UxB0JcGOSWhZVxt4NTEYMWZottPiP8MdmKW6cUJYpWsGhd4mqtXDiN76wbFk1SW9ueOVS0t1Ici5ybYSlItbJfEqqe08vhWf3ItKDex33C89mCf1kfzKyUqoh5NpeeLY8ZuwyGfwfEKv2ku3QoPA9nSjAq7MkZX9DHKHVsw28u4qn7xgzewWpRk1vayM9Tgp0OvdU7UF/DjAIWUTaYg8/2FqGvXCwkJlP4cGpRE/9DjajvhCx7sNJ+Gxaf7U5vTDKdUfFklvwK/qheabUnNSlJ4g==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2025 05:19:23.1208
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2c31794a-7963-436c-c8aa-08de233d5f6b
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:
	CO1PEPF000075F0.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR16MB6688
X-Proofpoint-GUID: mL31vQwhq5KiXLnYj6q6aKUjPU4_LSqS
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTEzMDE3OCBTYWx0ZWRfX9KOaVYf/WFNy fAIGeJIj7QVS+5ETfiyX1iqewZ2KDgecKnxMf1pLNgj47Hkv0ufIPc3FXa/hBpol+px0e6AAHjf iws6OBJkZO+QP1B6NBsFiLg9sXOIe+U11uQRgqnV6aSNclD/UeCp6OriV2TdWRDn61KsnV/AG7+
 +ztWpEmX9KV7mEZ9sHc+C6pvsiXiLIFPLwlqm9ePAUVkQguox+K2Cpv/lDs4T6Fsm5FZfzCBwhi HxzXF3rR3EfU3cHMZB/OYTUMsTjqNnP5qlJGwK5SPO2Yi266tPAFHeZLKHXFRFW79DNDAuP+5s0 fM9drGEyt4xPOieBsZoo17B1SdT6QgiyZra+8Uhse2thdenh1ueSMxzwL40XNI6jAdZDhDSIwEv
 5v1UN/yES3O19pBlAXs+TKJNBA/ilw==
X-Proofpoint-ORIG-GUID: mL31vQwhq5KiXLnYj6q6aKUjPU4_LSqS
X-Authority-Analysis: v=2.4 cv=JtL8bc4C c=1 sm=1 tr=0 ts=6916bbde cx=c_pps a=uKk6FyUS+xKIvFCPM6xM7A==:117 a=b7IhknPlfT0FN1EembXvig==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10
 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=mLnsDVdbAAAA:8 a=cbNQJ9GKAAAA:8 a=haI2-YjwY8mpjQWYs8cA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA: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.9,FMLib:17.12.100.49
 definitions=2025-11-13_07,2025-11-13_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 impostorscore=0
 clxscore=1011 bulkscore=0 lowpriorityscore=0 priorityscore=1501
 phishscore=0 malwarescore=0 adultscore=0 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.19.0-2510240000
 definitions=main-2511130178

Hi Mykola,

Thanks for the earlier reviews!

I am getting back to that series.

On Wed, Sep 10, 2025 at 01:05:13PM +0300, Mykola Kvach wrote:
> Hi Denis,
> 
> I appreciate you addressing the comments from the earlier version
> of the patch series.
> 
> On Tue, Sep 9, 2025 at 12:12â€¯AM <dmukhin@xen.org> wrote:
> >
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > The change is the first on the way on introducing minimally functional
> > NS16550-compatible UART emulator.
> >
> > Only one domain, defined via 'vuart=' parameter, will have UART emulator
> > initially. The command line option is not documented yet because of the plan
> > to adjust this code for vUART configuration via xl.
> 
> Since the command line option is not yet documented, it would be
> helpful to include the expected format of the 'vuart=' parameter in
> the commit message. This will make it easier for reviewers and future
> readers to understand how to use the option.

So I ended up moving that code into vuart.c where it belongs, along with
addressing all your feedback.

--
Denis


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 05:28:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 05:28:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162250.1489963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJmMd-0001rp-N4; Fri, 14 Nov 2025 05:28:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162250.1489963; Fri, 14 Nov 2025 05: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 1vJmMd-0001ri-JX; Fri, 14 Nov 2025 05:28:51 +0000
Received: by outflank-mailman (input) for mailman id 1162250;
 Fri, 14 Nov 2025 05:28:49 +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 1vJmMb-0001rc-Qj
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 05:28:49 +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 1vJmMa-006cLd-1r;
 Fri, 14 Nov 2025 05:28:48 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1vJmMa-00BKr8-0M;
 Fri, 14 Nov 2025 05:28:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=vxNJy7MkJ6d7LxT0937y6yDKSFpnnsf4IHgaPtz8594=; b=
	JILh3frBLAN1GO7Vt991hq8/DneD3lFYop1Guqi+8OzbvxRiZP2IxUAYcbNI4EqU/9YkpyBJb8QQy
	FycIj1mVx9IDM+gml5FewHh6f/BfX2ZAorTzAAsMaA8FlDXd/E8BzF/694D3e4qSrKNsr7nQncbu4
	e5kw1pYdr3gkZWLMM=;
From: dmukhin@xen.org
Date: Thu, 13 Nov 2025 21:28:47 -0800
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
	michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
	dmukhin@ford.com
Subject: Re: [PATCH v7 03/16] emul/ns16x50: implement emulator stub
Message-ID: <aRa+D3ryprzT5qE6@kraken>
References: <20250908211149.279143-1-dmukhin@ford.com>
 <20250908211149.279143-4-dmukhin@ford.com>
 <CAGeoDV_dKAvQy0j_jCune660ByqV368-O5anFjLjer0MAVx+Bg@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CAGeoDV_dKAvQy0j_jCune660ByqV368-O5anFjLjer0MAVx+Bg@mail.gmail.com>

On Mon, Sep 15, 2025 at 01:16:26PM +0300, Mykola Kvach wrote:
> > +/*
> > + * Virtual ns16x50 device state.
> > + */
> > +struct vuart_ns16x50 {
> > +    uint8_t regs[NS16X50_EMU_REGS_NUM]; /* Emulated registers */
> 
> I think it would be better to add an init procedure for the registers.
> At least not all bits in all registers should be initialized to zero.
> Or will this be handled in some way during I/O reads?

I can do it, something like ns16x50_reset() should work I think.
Thanks for suggestion!


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 06:19:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 06:19:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162269.1489973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJn9G-0000pb-5g; Fri, 14 Nov 2025 06:19:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162269.1489973; Fri, 14 Nov 2025 06:19:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJn9G-0000pU-3B; Fri, 14 Nov 2025 06:19:06 +0000
Received: by outflank-mailman (input) for mailman id 1162269;
 Fri, 14 Nov 2025 06:19:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=leFb=5W=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vJn9E-0000pO-8E
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 06:19:04 +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 cc9e2a2e-c121-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 07:18:56 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b714b1290aeso241222766b.2
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 22:18:56 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734ff2615esm315298166b.73.2025.11.13.22.18.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 22: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: cc9e2a2e-c121-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763101135; x=1763705935; 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=oY4T12wbr6EVML1/t67PBEvW0oz4Zy+yHEEGawpP/Ik=;
        b=Fmbqfekq9YxYqmSkRg/Ccjz3mZ81A3VtN/3k4rYurhRsR8NHXvm64TI/swOzvt9HmO
         UEHuuBh1OVhEPp1JEMBr0kYaKHK9OA0+eRQzY/PE8mgSDAeXRPTrnPfFp1HtOpnpoVnC
         neLTKLDXfn937Kz5MzAr0XMMOyMCKs4liuvozDU7QoWEPiofXoM4X7jc6A5921htrS3F
         j+uCsaEulvUzKLrw0O5CVGlTyE7/sNwemf6nb0U1WeTVBi8b+NY5m/iSRDnTG0+EaY+w
         dO1T816ra9P+LZHjQvvf/OHQTxlbUNkucgyKaJDFOA1G7Z2Bp12azvSveWaBztrhMwFI
         0izg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763101135; x=1763705935;
        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=oY4T12wbr6EVML1/t67PBEvW0oz4Zy+yHEEGawpP/Ik=;
        b=UnVeHyF89zaMYeCv3sqNJjL4qPY8CD2I3NfqB1+HcOuqYJOLTMDlv7AW+H0owgWrkb
         41pL5gEqlhDakFzsqCa8LTPAPJ7aCvOeRtghocqebKYE5+n8DZQZEfGxcVZ37ch94kCC
         a6CBGC9SIS//W3V3m6J3zcvYGmRvYWsnXnTVRGPJ4uQYzaqzMLHHhyEsecICWThNxi52
         NHF0OMhUV1xAVJVeq+ooVeR7JGelY/aCWsTNzHfeiWcZUg4dA1KhPLQt/tJ6QCqgvLBZ
         RuW16CVIQWqxGjQl8esPQI697lbyesNsGFGt0wGcvjxki8CTNmRyI2b7FJHYxLxjP+4g
         pynw==
X-Forwarded-Encrypted: i=1; AJvYcCWgwHgfnXmN2fqRsEUoh9r7fiMCW0VffBK8+y51A3winIIzU75nnhc/NvvEUAs/1Ix/1Ap+3CEouzo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzijD1LmKb2p2ne2zNak9hFNeZYcfZaqwuxA12vwp1v4j5DvVjb
	ppPwYLlyMJusAVVLtW5EgbQyx7FWycvbx4yM9UJCAbVwfhMh/GM0auaVT1tzGEiGPaE=
X-Gm-Gg: ASbGncsn87/t0ygeikZ6Os+NpfF5PIIgrkM4JjP0u7mro5OJ68o04FX9p4gD3wxaDcV
	ht7SiKGXpKAUtYgahSzICQOoV9plQs+jRhfHZQ/NMzWWnUHUBJaE4BUKrUwePPAGFOI0TylRvK1
	wiDt5u5YnQDufcgOFlwNlW2/8M34u9Kk+JxO6SsMttsKwKg/gunRGagtdi0n/VhrWD9KaZJxmdp
	j19mkcdyWoq2T68tPDKc/bfnpPT7Jq0JBEHDRV7hsENVBqR8RcBuqjfT8xMWzMim7KkWloxONtE
	VDp99sWceYP/V2bXfiYN0PsM5Uvjj9fiXPvvlGGH/EPwBrJdxp6mBTjz2Hgo4MsNmctnhjkun8I
	KfFtSCxmd1XliemHcFBBa+dXTomMUAnQAAE0apTJObeip3S2GDlPZomnhcVvyFdCrJJJxtx9Vpj
	u46nExkNU15ZfEstAS86ODfIvoXiDBGXFIMPMFFr6iq3T/YsmaNSW/z09/KbRn3kasapN8EcU6t
	d9uWFvF/tdW12d+5VM6YDZE2I7r+NAiCL2EuK4=
X-Google-Smtp-Source: AGHT+IEtMalfSOAIr1NsBaPxEfogybRIxrlhb1axhgWO5tk+V7D4OVBfJTNMM0XPbqodq5sQW6ca+g==
X-Received: by 2002:a17:907:7e98:b0:b70:7e10:4f4b with SMTP id a640c23a62f3a-b736780b437mr185354066b.18.1763101135435;
        Thu, 13 Nov 2025 22:18:55 -0800 (PST)
Message-ID: <6cc9926e-ec22-40b9-9711-e89f1d8f3087@suse.com>
Date: Fri, 14 Nov 2025 07:18:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] build: add new make pattern for making file from
 file.src
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251111161959.13667-1-jgross@suse.com>
 <20251111161959.13667-3-jgross@suse.com>
 <f5934f86-7a93-4184-a807-86fc6e18157a@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: <f5934f86-7a93-4184-a807-86fc6e18157a@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------jLBH0c0ITv9i070Ng0gPhyuJ"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------jLBH0c0ITv9i070Ng0gPhyuJ
Content-Type: multipart/mixed; boundary="------------viw9sl4UctM09UfGymOaqikW";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.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?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Message-ID: <6cc9926e-ec22-40b9-9711-e89f1d8f3087@suse.com>
Subject: Re: [PATCH 2/5] build: add new make pattern for making file from
 file.src
References: <20251111161959.13667-1-jgross@suse.com>
 <20251111161959.13667-3-jgross@suse.com>
 <f5934f86-7a93-4184-a807-86fc6e18157a@suse.com>
In-Reply-To: <f5934f86-7a93-4184-a807-86fc6e18157a@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=

--------------viw9sl4UctM09UfGymOaqikW
Content-Type: multipart/mixed; boundary="------------eIohzw3jWwxXnjfiYQzZNeOV"

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

T24gMTMuMTEuMjUgMTc6NDksIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxMS4xMS4yMDI1
IDE3OjE5LCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gLS0tIGEvQ29uZmlnLm1rDQo+PiAr
KysgYi9Db25maWcubWsNCj4+IEBAIC0xNTksNiArMTU5LDIwIEBAIGRlZmluZSBtb3ZlLWlm
LWNoYW5nZWQNCj4+ICAgCWlmICEgY21wIC1zICQoMSkgJCgyKTsgdGhlbiBtdiAtZiAkKDEp
ICQoMik7IGVsc2Ugcm0gLWYgJCgxKTsgZmkNCj4+ICAgZW5kZWYNCj4+ICAgDQo+PiArUEFU
SF9GSUxFUyA6PSBQYXRocw0KPj4gK0lOQ19GSUxFUyA6PSAkKGZvcmVhY2ggZiwgJChQQVRI
X0ZJTEVTKSwgJChYRU5fUk9PVCkvY29uZmlnLyQoZikubWspDQo+PiArDQo+PiAraW5jbHVk
ZSAkKElOQ19GSUxFUykNCj4+ICsNCj4+ICtCVUlMRF9NQUtFX1ZBUlMgOj0gJChmb3JlYWNo
IGYsICQoUEFUSF9GSUxFUyksICQoc2hlbGwgYXdrICckJDIgPT0gIjo9IiB7IHByaW50ICQk
MTsgfScgJChYRU5fUk9PVCkvY29uZmlnLyQoZikubWsuaW4pKQ0KPj4gKw0KPj4gK2RlZmlu
ZSBhcHBseS1idWlsZC12YXJzDQo+PiArCXNlZCAkKGZvcmVhY2ggdiwgJChCVUlMRF9NQUtF
X1ZBUlMpLCAtZSAncyNAJCh2KUAjJCgkKHYpKSNnJykgPCQ8ID4kQA0KPj4gK2VuZGVmDQo+
PiArDQo+PiArJTo6ICUuc3JjDQo+PiArCSQoYXBwbHktYnVpbGQtdmFycykNCj4gDQo+IEkn
bSBub3QgY29udmluY2VkIG9mIGhhdmluZyB0aGlzIGhlcmUsIHJhdGhlciB0aGFuIGluIGxl
c3MgY2VudHJhbCBwbGFjZXMgKHNheQ0KPiB1bmRlciB0b29scy8gYW5kIGRvY3MvKS4gSSdt
IGFsc28gbm90IHN1cmUgSSByZWFsbHkgdW5kZXJzdGFuZCB3aHkgaXQgbmVlZHMgdG8NCj4g
YmUgLnNyYyAtIGNhbid0IHdlIHN0aWNrIHRvIC5pbiwgZW51bWVyYXRpbmcgdGhlIHNwZWNp
ZmljIGZpbGVzIHRoYXQgd2FudA0KPiBnZW5lcmF0aW5nIHRoaXMgd2F5ICh0aHVzIGF2b2lk
aW5nIGFjY2lkZW50YWwgYXR0ZW1wdHMgdG8gcmUtZ2VuZXJhdGUgZmlsZXMNCj4gd2hpY2gg
bmVlZCBnZW5lcmF0aW5nIGEgZGlmZmVyZW50IHdheSk/DQoNCldpdGggZW51bWVyYXRpbmcg
dGhlIGZpbGVzIHRvIGdlbmVyYXRlIHdlIGNvdWxkIHByb2JhYmx5IHN0aWNrIHRvICouaW4u
DQoNCkknbSBmaW5lIHdpdGggbW92aW5nIHRoZSBydWxlIHRvIHRoZSB0b29scyBhbmQgZG9j
cyBtYWtlZmlsZXMsIGJ1dCBJJ2QNCmxpa2UgdG8ga2VlcCB0aGUgYXBwbHktYnVpbGQtdmFy
cyBkZWZpbml0aW9uIGhlcmUgaW4gb3JkZXIgdG8gYXZvaWQNCmR1cGxpY2F0aW5nIGl0Lg0K
DQo+IEFsc28gLSB3aHkgdGhlIGRvdWJsZSBjb2xvbiBoZXJlPw0KDQpJJ3ZlIGZvbGxvd2Vk
IHRoZSBhZHZpY2UgaW4gdGhlIG1ha2UgcmVmZXJlbmNlIGZvciAibWF0Y2gtYW55dGhpbmcg
cGF0dGVybg0KcnVsZXMiLg0KDQpXaXRoIGVudW1lcmF0aW5nIHRoZSBmaWxlcyB0byBnZW5l
cmF0ZSBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8gYXZvaWQgdGhlDQpkb3VibGUgY29sb24u
DQoNCg0KSnVlcmdlbg0KDQo=
--------------eIohzw3jWwxXnjfiYQzZNeOV
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-----

--------------eIohzw3jWwxXnjfiYQzZNeOV--

--------------viw9sl4UctM09UfGymOaqikW--

--------------jLBH0c0ITv9i070Ng0gPhyuJ
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/Ey8FAmkWyc4FAwAAAAAACgkQsN6d1ii/Ey+I
Bgf8DBsutRRfrmMT9GlQf82F0R6WnIYZZtoQWQ822qcB8glMzd22HUv+Gy+xXDBZTYAszyllRCrG
hP8WGhBs0S1MVcgMj1O1MOXXi3+A4Gc/9nlC7O7Lm8lXLxRRcmZnig63YIPMep6ouPaLEvoaX9Ki
0OOxeYPW2Feq2kg+AiauhRkrKauI4nHE5yUCH6cUs+mDnqWH1kb24tnkO1KOKzPjo2lkWNzw4Gul
qEaVBuR3Pgb2JviRCQhj0k95IzRIT8kH49fuxmVgNyIOeZgQmayS47i5lo7SbRRukPHs7pVIe+As
HGMshPIKcTJmiABdIxVRQk/lpv7l5x+uKJTgCKHKdA==
=lT4i
-----END PGP SIGNATURE-----

--------------jLBH0c0ITv9i070Ng0gPhyuJ--


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 06:59:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 06:59:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162288.1489984 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJnmZ-00073D-3d; Fri, 14 Nov 2025 06:59:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162288.1489984; Fri, 14 Nov 2025 06:59:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJnmZ-000736-0z; Fri, 14 Nov 2025 06:59:43 +0000
Received: by outflank-mailman (input) for mailman id 1162288;
 Fri, 14 Nov 2025 06:59:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=8YOW=5W=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJnmY-000730-Aw
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 06:59:42 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7df408a3-c127-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 07:59:41 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-b73545723ebso258814466b.1
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 22:59: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
 a640c23a62f3a-b734fed90c0sm323456966b.65.2025.11.13.22.59.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 22:59: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: 7df408a3-c127-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763103580; x=1763708380; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YUJJ+xa0sGTQFOrlO6Vlfi9dZfXhp+5ABnjAmn+IZS8=;
        b=O11/wbChSsQzWGEl7dTHCFecjQfs/HaVGUNHI1WxY2JvxOZ/byPitCUAg6OD6JqODi
         pIcLnZcpXE0pqmxxMuSyjugNVts7kk3iVSBWiJcnJksHEQ8T3F+UZrsdpQZ3z299KQ1e
         KIFlWLKiE/80JnPkv1OQADg5kHdiU69j5pskuu3u7e674N6l8VrLOZ1kk8PiN9NzI2Ny
         E+b2qO25mE1r8vaOEVKSQeKaQY+CHXM5cEFlD2VKsE83RV8ybRN25RSKUPmj7+ue7CIQ
         2SMwLHAw0vIuWICoA0dR6GnLves8XO5/AZPOAUbmAnvn9jHdB3LxcMPqwiARl1Hrf89X
         ij/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763103580; x=1763708380;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YUJJ+xa0sGTQFOrlO6Vlfi9dZfXhp+5ABnjAmn+IZS8=;
        b=mAs0oZkFg/R3T2jNiOuLVlUVlggabA+Fg/Q1bqJWPAEeZi1Ys4jPF69qjnAMoko0sw
         Mv/ogSfYEyypcpTQED7xzgSkijErvDYou1V9cEN+nut9Skqtn8XHSU1YxFDuGq4Vb9ia
         4uzc4eUnM45jkp8Y5W4+zkHw0Kq+Y1NCR5ieDzaQs+y3zPkBmH4uBsW1NQYr0O8F5BfP
         c/dRuDWrkeARm4A8rFHSYVRKthoHcXvXzH4Bt4lpzW/ERGOK2lczLk4enPoRhDlWs6O4
         y5Zun+h62ei6UTKBIL421x//TLNSiJi7fOFcAMvWAEuErmczebhsMMfFSk1Fpq0l8uTv
         9zhg==
X-Forwarded-Encrypted: i=1; AJvYcCWi0OQyYSXSBzPmXezMZlT8yKfQhEnmQNOJz0pi1cJk3ryFec8X9+yCM2O80m+1cbZja8qaZ8UQfV8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyfvYn7F3T9cVJ9J8QfoGvCAiEYvNpihhkYBUU7SfYkaiSnl4b+
	OF77KthSdMr2i42RH3SjPH89YchlZTp/wK212CBCAF/YsegU/rtJTyi9J7884fYfPg==
X-Gm-Gg: ASbGncumGaWug3jcFXF5NZgZbEnvnFfFecvHCFgupl9B/ThK9WjMhyC8QUcwgUUVv4Z
	6VwlCjeXaPP5JetFDcGVHY8endX6VENc1hpngdWPY1szeDaEyHmn7Y+D7Eps7AkOAcnVAWijUt8
	6c7XZBaD+Im3S+m4ow4LQ+ZFAk9q8L9HvXWID949Huh71pXgqpcLM/9m47iJAEfZ/ZBOZk3pLKy
	2zooiHEYpOirT/bKpxQTAoTXtWWLSSBpDPFOyOn8ZLQ0pHl3KOeAjeVQmhPFYmxkHqoMpV12SYX
	FHyVIgxWGIAnDN5pbEfescox5zYc1+T6S1vYyvLNrjP475BKqal3hFKu/JszEFhUHjF6rpcbPel
	Yrx+PxUdC/QTOj1WYRqu050u6CaCeT1cUhgwG0Xx9ZirRDzJZ4Ayg2q0cdAHRL5pZqJUExHXd40
	f5c2b/YZH5y1/I7Rnco0mccvV6sCu8fWFn48nG0UxppdXCwVGVX+zOXB8o0Wbke13s1OmQiZS+E
	X+e0m9wGp9o0fO+fQF9FVhR
X-Google-Smtp-Source: AGHT+IHqI21Ig8fZIC6I8uTx6uOUbqxIgnNd7NhIebn2U5FaAkFre3m96MPojxN8tY89suwFi016Ow==
X-Received: by 2002:a17:906:fd88:b0:b72:9d0b:def4 with SMTP id a640c23a62f3a-b736788f991mr207274866b.18.1763103580519;
        Thu, 13 Nov 2025 22:59:40 -0800 (PST)
Message-ID: <6cdf4053-6547-44a1-aea6-ac1ae337e6e6@suse.com>
Date: Fri, 14 Nov 2025 07:59:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] build: add new make pattern for making file from
 file.src
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251111161959.13667-1-jgross@suse.com>
 <20251111161959.13667-3-jgross@suse.com>
 <f5934f86-7a93-4184-a807-86fc6e18157a@suse.com>
 <6cc9926e-ec22-40b9-9711-e89f1d8f3087@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: <6cc9926e-ec22-40b9-9711-e89f1d8f3087@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.11.2025 07:18, JÃ¼rgen GroÃŸ wrote:
> On 13.11.25 17:49, Jan Beulich wrote:
>> On 11.11.2025 17:19, Juergen Gross wrote:
>>> --- a/Config.mk
>>> +++ b/Config.mk
>>> @@ -159,6 +159,20 @@ define move-if-changed
>>>   	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
>>>   endef
>>>   
>>> +PATH_FILES := Paths
>>> +INC_FILES := $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
>>> +
>>> +include $(INC_FILES)
>>> +
>>> +BUILD_MAKE_VARS := $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).mk.in))
>>> +
>>> +define apply-build-vars
>>> +	sed $(foreach v, $(BUILD_MAKE_VARS), -e 's#@$(v)@#$($(v))#g') <$< >$@
>>> +endef
>>> +
>>> +%:: %.src
>>> +	$(apply-build-vars)
>>
>> I'm not convinced of having this here, rather than in less central places (say
>> under tools/ and docs/). I'm also not sure I really understand why it needs to
>> be .src - can't we stick to .in, enumerating the specific files that want
>> generating this way (thus avoiding accidental attempts to re-generate files
>> which need generating a different way)?
> 
> With enumerating the files to generate we could probably stick to *.in.
> 
> I'm fine with moving the rule to the tools and docs makefiles, but I'd
> like to keep the apply-build-vars definition here in order to avoid
> duplicating it.

Oh, sure, I indeed meant only the rule to move.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 07:03:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 07:03:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162300.1489994 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJnpq-0000Qj-Hx; Fri, 14 Nov 2025 07:03:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162300.1489994; Fri, 14 Nov 2025 07:03: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 1vJnpq-0000Qc-FE; Fri, 14 Nov 2025 07:03:06 +0000
Received: by outflank-mailman (input) for mailman id 1162300;
 Fri, 14 Nov 2025 07:03: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=8YOW=5W=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJnpp-0000QW-Ik
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 07:03:05 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f750e15c-c127-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 08:03:04 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-b736cd741c1so50307166b.0
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 23:03: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
 a640c23a62f3a-b734e9e0f20sm332056466b.0.2025.11.13.23.03.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 23:03: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: f750e15c-c127-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763103784; x=1763708584; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ci1I6RRmoHdEIRPBTUPpqieBT26GFNnuyI1sHZDQ+o8=;
        b=OJ9C1L/1c3zRlGQPUDuM+e0onKV8AOwjLwjxeDXhR9LRi/awGMDzNzlro9rMzAi3aL
         SBOTkgQ64jq3MjcptOlfCg6fNSsW9F1/ceY6KfXkbvYNTvTcDyq3XRJpQDhKEhFkUgV5
         56FfYWjSqw0YcitdO0B3tMIfQVPnDpXpvAb8a1ShzKDO7bjv51kRUc4I1+b/O/bSYjn1
         S27O8vdtaDgmPxnK91ZhrS6gtC6D5WzSXvMHlj9hQ0pEXu9nFxUQipL3dXPtc9fAsweN
         YVxETvJODaiUzaJTAisNK39UDnOeICoHpBZ+chj1oTfshFE4IEyKAOVlL8nA1M5sKaL1
         L7sA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763103784; x=1763708584;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ci1I6RRmoHdEIRPBTUPpqieBT26GFNnuyI1sHZDQ+o8=;
        b=kUqOdlh3CFlL0LoA6GkgwmQODeeR74jwlV1bZEE6VKl7Sbn4OJ2/Ej/GQ9GjI9JgjG
         nBba1QeYQe2msqbt5DbxF1uvn9xc9zv8QRQmLcEEkHfzatUpX21sYDCb8xyjrw81gCOH
         hlx80P5dIO4M8o5Bwg921xMTxXkE5vb8uTOy8KDSo1yXpCX2GEeI01hcXbLyzXEaReq4
         tQLw4il0sJMh9REyvkmvhwuH2O55zK3buYHOnZ3UXnmd9EDmd1UUVzRqcxFOFfRYo4nz
         GkysaIrE14yEc4wiQgQCCQ4YcUgfXwPNW6dmyYlNG8/XK4OMS9qPKuUeg7+PJ9HCu+kk
         DkYw==
X-Forwarded-Encrypted: i=1; AJvYcCVAfVeed2Wm2mXy1VE8zWP6wL6veV0WEj/Tl3S5bX7w8nIiD2DOL7uAZ0TXp4VCxXZ8PDCFubuMkzI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyerJI+vJbHqHx2W051w5T+X/BtwxB0hs9IfL2BYC1qfcm04MPH
	VErQzHEXhM78rRqkytkNjbDs+TqvP6kVF8o4ec/j3OxmJD+oSxnFXLpK6Z1XNVGp0Q==
X-Gm-Gg: ASbGncskXU7DAQNCM3Hptc2+lnUHjVpAalhxRZHSe4rSZQnZm8BPKA6UFb6Y41w4xWh
	x9W5+kMSrHd2R9BE8XAkxpVj+Qjptg4ndFrGVAS1D1GclEL/8s7Ymm0+nX/BQCxrpby2NvARz3X
	ZH8ueFaDd8kXEkrM/p3lk9kqbpny8mCbTj8rO06+J+3O4d3NFLzIcwazlI3N8eK2v0wpj0oV6Ok
	PiYdiVOQd9ThkZFzFAgzVFRT2ejJ1XXowRt81azCWO42D/9XhE0kUEYy/SifnLqv8/vHnQz+JkS
	oKJip3/utMcakk7Kz2e+FKhnk3cutpCDjj6EknoDB9FhW9SOSNneKIjSuPdNxU9MiJm9L/b0ARg
	BkzQ948LuYAGr0Y/3Q4nvJDiHbKjdNUBUMbahw1byp/jyYDWU8xxuV9zHwymxxz0yfBrFunV3VH
	AepJ+BZNXRmhBZZcZQdH+EZd/zL5sBadFJECHwnWqwUK/A/B+RZZU8NJV27kqnaj9x
X-Google-Smtp-Source: AGHT+IF6yZAVyEftlez0DNDBtoyLpIHUV45NhCv/eexpR9uppRXJlMKrUIbL5kUoXxVp0e3YLHZwNA==
X-Received: by 2002:a17:906:4fc9:b0:b73:56cc:44b2 with SMTP id a640c23a62f3a-b73678f4befmr191585166b.30.1763103782179;
        Thu, 13 Nov 2025 23:03:02 -0800 (PST)
Message-ID: <58870063-297e-42c0-8bdb-ebab339b11ae@suse.com>
Date: Fri, 14 Nov 2025 08:02:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v2] xen: make VMTRACE support optional
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 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>
References: <20251112202442.3879997-1-grygorii_strashko@epam.com>
 <a634c192-9ea3-46d9-a087-f0f48a5c2494@suse.com>
 <9c4294ec-906d-4607-8f7d-b5b1bb7e74f2@epam.com>
 <71334f75-d50b-43f4-909b-a27b288ea1aa@suse.com>
 <cbffc389-a97c-4075-9106-b2a7a90b52cc@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: <cbffc389-a97c-4075-9106-b2a7a90b52cc@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.11.2025 21:40, Grygorii Strashko wrote:
> On 13.11.25 14:58, Jan Beulich wrote:
>> On 13.11.2025 13:53, Grygorii Strashko wrote:
>>> On 13.11.25 10:36, Jan Beulich wrote:
>>>> On 12.11.2025 21:24, Grygorii Strashko wrote:
>>>>> --- a/xen/arch/x86/hvm/vmx/vmcs.c
>>>>> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
>>>>> @@ -307,6 +307,7 @@ static int vmx_init_vmcs_config(bool bsp)
>>>>>        rdmsrl(MSR_IA32_VMX_MISC, _vmx_misc_cap);
>>>>>    
>>>>>        /* Check whether IPT is supported in VMX operation. */
>>>>> +#ifdef CONFIG_VMTRACE
>>>>>        if ( bsp )
>>>>>            vmtrace_available = cpu_has_proc_trace &&
>>>>>                                (_vmx_misc_cap & VMX_MISC_PROC_TRACE);
>>>>> @@ -317,6 +318,7 @@ static int vmx_init_vmcs_config(bool bsp)
>>>>>                   smp_processor_id());
>>>>>            return -EINVAL;
>>>>>        }
>>>>> +#endif
>>>>
>>>> Initially I was inclined to ask for use of IS_ENABLED() here, but that wouldn't
>>>> work since vmtrace_available isn't an lvalue when VMTRACE=n. Hence why generally
>>>> I think it is better to check the particular identifier in such cases, rather
>>>> than the original CONFIG_* (i.e. "#ifndef vmtrace_available" here). I'm not
>>>> going to insist though, as I expect opinions may differ on this matter.
>>>
>>> Yep. assignment required ifdef wrapping.
>>>
>>> "#ifndef vmtrace_available" will not work out of the box as there are
>>>
>>> "if (vmtrace_available)" in code. So, can't just "not define"/undef "vmtrace_available".
>>
>> I meant this just for the case here, though. Elsewhere you want to stick to
>> checking CONFIG_VMTRACE.
> 
> I'd prefer to keep this part as is. Please tell me if you insist.

I won't insist, first and foremost again because I expect opinions on this
matter would generally differ anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 07:56:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 07:56:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162317.1490003 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJofj-0007vs-8w; Fri, 14 Nov 2025 07:56:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162317.1490003; Fri, 14 Nov 2025 07: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 1vJofj-0007vl-6D; Fri, 14 Nov 2025 07:56:43 +0000
Received: by outflank-mailman (input) for mailman id 1162317;
 Fri, 14 Nov 2025 07:56: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=8YOW=5W=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vJofi-0007vf-Et
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 07:56:42 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 73b98d6f-c12f-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 08:56:41 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b714b1290aeso251693366b.2
 for <xen-devel@lists.xenproject.org>; Thu, 13 Nov 2025 23:56: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
 a640c23a62f3a-b734fd80841sm336369066b.41.2025.11.13.23.56.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 13 Nov 2025 23:56: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: 73b98d6f-c12f-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763106999; x=1763711799; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RDkIoua/g7h+7uKXF1oqE2oZDei/rjUbfMR/pR3Zi5U=;
        b=HTRceDXXXJFFVS36smDsXfB37y/FeMOGYOPnRjwPerJl4CYv5cmxoPSTL2WWRqD2ar
         pgnvFbqd/a5fiU48nMFbUYrEFgu5+xpOMK8MrdpdFJMVemFm2jTbgp/Hborir9SpKYgX
         VBYVKIZVDK/YCI2QUn6VoZwRRB/izeWTEggh6aYNxk4OEd25Nna7SeA5RX23RFxOkHrN
         paw/Hm2SKSaJd/eJh6+GXzti/nvKCNqeoFwUpgg4y1tQHe4SqRNYUMPRb3y7zMP5CbU8
         1rgLUMsKNqc0xx44EWDKXlthVAwRP4c9xj4U372eblVbou4y5QuoTYLKvYXG7zqlyGi+
         rVFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763106999; x=1763711799;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RDkIoua/g7h+7uKXF1oqE2oZDei/rjUbfMR/pR3Zi5U=;
        b=GCcJK/PW9ECSwMYm/iei+LfflN+NIekUYD66AYv68fAgNtiRI3Ugfr1jyEjOLCruzi
         eDBynuo5t4/AT/dyTlatnE3ZEW0JUjYrJwC9CzIv1kJ7+O86zAJ9/UYTNjCyLOmRBKNb
         /FVSXC29OznENQB1uHPVgKsU9maIL41X6gJcQV1Dh3mwFihBe1kk8ZzR124FoTmSIBcf
         FrgY5iyvHH7oCvcto1/h4PwEju436dJMgp85mEngflrSSO3fGiWMNbIzY6fskXzUN94y
         1BtT3KxFZVf89VZuE1pFkZ5j6U2UXWXrn7jcQ/JLOPnmEF4lRuqI2eBbX0dneA4aUctM
         5jvg==
X-Gm-Message-State: AOJu0YwViQogrK5MhFy3WwVRGVONSmcrjBLoYKUSYT+vdI3xZuLT95n2
	b5Yvpam+v4UICZU2O4G+w3t9m2LDYQrES/DO5t23gUJmYNM86kLTokXkWlJF9bYWLw==
X-Gm-Gg: ASbGncvDgEyhHKhf0Jmwk9TVBFpwNyMNu2GHhAK/Z89PKyxE2AYDyq/1p/jcxDwWpBc
	9d1RgQlZDzTbjGnD+hHc8s20uk3I92e2ASGpJ3e9+4WRnV64eqM4m3i2JNwDl3CPX5WSTF0Y3hE
	fKcqtGJW8s8draZlamu1stzgXdJhoNEXMnmf/syAGbycBloYj0SGpBjkTMaTtY81oC4FPAoRcPa
	U4rlNmu0jQcOB9XpBdJimd9ABpHX9vzbb8zvB+qN04MlyD75xYlbqFs/qoEoJF97NFcchzMsbpd
	kcM7Z8OoXlRX3+Mi860hMb8tdJ/c1tAkaIvLcdGkDQ/ni9YbQB7xiNI+4QAidEO1+OohqWoF1VO
	TfK4Pk+HbedQj/CrNMyd+7Q0svtMfR17fCEafhaw9CqEtDJzignFXH9B9OZwM7bxOqsTfWeB7IB
	5/PMYI71HoDi6vJYmKNUDKeSGmy8OWQnl4iX04Z2OZcywqGYzGcX9bl+Zf0wIJKv7q/AX1WSMHb
	bbTT7putNt9pA==
X-Google-Smtp-Source: AGHT+IFyl4nb7aLaMGtdUzXIyU0STY1YFAEmOq0IFtXlV5q7PidcK3kylq3BcLuwHQTx0Q+6sFmFiA==
X-Received: by 2002:a17:907:6d18:b0:b72:a40e:d10 with SMTP id a640c23a62f3a-b73678e9c85mr194736166b.40.1763106999230;
        Thu, 13 Nov 2025 23:56:39 -0800 (PST)
Message-ID: <95c51b33-a14a-4f3e-a737-2e52aa3e475e@suse.com>
Date: Fri, 14 Nov 2025 08:56:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] x86: introduce "brk" allocator
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <bdbb2884-c2d2-415a-8891-a598d112e34c@suse.com>
 <7a3eb7f3-db3e-4c2f-a231-cdf05a14be26@suse.com> <aRYYP8fG9fgvGGYS@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: <aRYYP8fG9fgvGGYS@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.11.2025 18:41, Marek Marczykowski-GÃ³recki wrote:
> On Thu, Nov 13, 2025 at 12:08:18PM +0100, Jan Beulich wrote:
>> --- /dev/null
>> +++ b/xen/arch/x86/boot/brk.c
>> @@ -0,0 +1,72 @@
>> +/* SPDX-License-Identifier: GPL-2.0-or-later */
>> +
>> +#include <xen/efi.h>
>> +#include <xen/lib.h>
>> +#include <xen/mm.h>
>> +#include <xen/page-defs.h>
>> +
>> +#include <asm/brk.h>
>> +
>> +extern char __brk_start[];
>> +extern const char __bss_end[];
>> +
>> +static unsigned long __initdata allocated;
>> +static bool __initdata finished;
>> +
>> +void *__init brk_alloc(size_t size)
>> +{
>> +    void *ptr = __brk_start + allocated;
>> +
>> +    if ( finished )
>> +        return NULL;
>> +
>> +    /* Allocations PAGE_SIZE and up will be page-aligned. */
>> +    if ( size >= PAGE_SIZE )
>> +        allocated = ROUNDUP(allocated, PAGE_SIZE);
>> +
>> +    allocated += ROUNDUP(size, sizeof(void *));
>> +
>> +    if ( allocated > __bss_end - __brk_start )
>> +        return NULL;
>> +
>> +    return ptr;
>> +}
>> +
>> +unsigned long __init brk_get_unused_start(void)
> 
> It's a bit unintuitive for brk_get_* to have this significant side
> effect. Maybe name it brk_finalize_get_unused_start() ?

Getting too long for my taste, and a caller obtaining this value kind of
needs to understand that either what it gets back is stale the moment it
uses the result, or (for it to not be stale) no further changes (i.e.
allocations) are permitted afterwards.

>> +{
>> +    finished = true;
>> +
>> +    allocated = ROUNDUP(allocated, PAGE_SIZE);
>> +
>> +    return (unsigned long)__brk_start + allocated;
>> +}
>> +
>> +void __init brk_free_unused(void)
>> +{
>> +    unsigned long start = brk_get_unused_start(),
>> +                  end = (unsigned long)__bss_end;
>> +    unsigned int subsys;
>> +
>> +    /*
>> +     * Only xen.efi will have the symbol __subsystem__ available, and it'll
>> +     * be non-zero (10) there.  In ELF the symbol will be undefined, and
>> +     * hence zero will be loaded into the register.
>> +     */
>> +    asm ( ".weak __subsystem__; mov $__subsystem__, %0" : "=r" (subsys) );
> 
> Is this really the best way to detect xen.efi?

Well, it took me a while to figure _some_ reasonably reliable way. I'm
all ears towards better approaches.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 09:11:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 09:11:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162334.1490013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJppY-0002oq-Dq; Fri, 14 Nov 2025 09:10:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162334.1490013; Fri, 14 Nov 2025 09: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 1vJppY-0002oj-B2; Fri, 14 Nov 2025 09:10:56 +0000
Received: by outflank-mailman (input) for mailman id 1162334;
 Fri, 14 Nov 2025 09: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=Lhp/=5W=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vJppW-0002oZ-U8
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 09:10:55 +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 d112d474-c139-11f0-980a-7dc792cee155;
 Fri, 14 Nov 2025 10:10:52 +0100 (CET)
Received: from DM6PR03MB5227.namprd03.prod.outlook.com (2603:10b6:5:247::22)
 by DS7PR03MB5494.namprd03.prod.outlook.com (2603:10b6:5:2ce::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Fri, 14 Nov
 2025 09:10:49 +0000
Received: from DM6PR03MB5227.namprd03.prod.outlook.com
 ([fe80::c9a0:563d:c344:aec2]) by DM6PR03MB5227.namprd03.prod.outlook.com
 ([fe80::c9a0:563d:c344:aec2%5]) with mapi id 15.20.9320.018; Fri, 14 Nov 2025
 09: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: d112d474-c139-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VnEWTS8U6vkarGGwFzdu2rmCqxEvvISIfqC07oEA5ye0/+fMQ6EtCmipXKMrC4srCvFUFpLz/ZIbbwTXsxkBD4CCoBk2vOT0wIaSXeSJJH5XIhGWERVJrqYsWMCm85iIoqTVcNljSfQasZK4f6FvZQAtfAx9xR3XyuZD+G27aqhM+a7dXpi0d4/CyDt0gKaupkB2I34qDxWAVCBSGzF8kfDGihzlYMxnyahFWORfPGD36cczOL7cdFl4IfoiTSN5GrIxnfRutJDro1g1h8DA91adN4bK4ZPPbcQzwLEGLI7hZiTmYRFJlLGvpUjyt2GkIeP5g/p/YdEOj+29AaFtmg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Hr7DTJIufm0p25oj4sCrlf1nLSZaUAmrYro1EM9XGcY=;
 b=kXhpKH4t+M8V4a41ucJDVJVK+Pv7dw3DcHcQCXZ5a8CPAKACZSLJm/1V2jtv85cSVDF+xjUEYoeXx0nANKtwh+3Qs7sqS3BjEWopVPOcbTG63NKuIT+XsfkdQevUQtQasRccNZeza8JIj7zVMBZWWUzB8ylUshpH2A3ux9x1odfAusbIps2rUQbDQ2V07SEUohF4DKNeuf5L8g7pRFRFME8pEPt2S9GV66APAr+LswW0YqUbgXFIU6iaABqCE9M+Ba+fCUfwLxHtaJY93a3jCjBzAT3cYdLHBncZb5MZ8iXlmo4KqeTgeIN4yTzwkFmOPqlR1K7/37TOORL7Nlszsg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Hr7DTJIufm0p25oj4sCrlf1nLSZaUAmrYro1EM9XGcY=;
 b=HLtLHAZbY/zirQLNRY5bbo/YEhADWmYwIqQE/Y0HsePmlOgdj9UWZO7lpboMAE/fad/mHXSAG3lpkqDMeyVtteLCRMqvSkLKbO02pS7kIebwbur+TIrUyFRQH7a0j3t2BEXvob+KvZBK9aizF2MC9AU/+IosW3Pa4qqtKb3Hnk8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 14 Nov 2025 10:10:46 +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, Paul Durrant <paul@xen.org>,
	Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH] x86/viridian: use hv_timer_message_payload struct
Message-ID: <aRbyFugnEJojSH01@Mac.lan>
References: <20251113172413.87938-1-roger.pau@citrix.com>
 <353236f2-2864-48c2-ae9c-e3d4a2aa5537@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <353236f2-2864-48c2-ae9c-e3d4a2aa5537@citrix.com>
X-ClientProxiedBy: MA3P292CA0017.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::8) To DM6PR03MB5227.namprd03.prod.outlook.com
 (2603:10b6:5:247::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM6PR03MB5227:EE_|DS7PR03MB5494:EE_
X-MS-Office365-Filtering-Correlation-Id: b8201af9-63cb-4bc2-5d21-08de235db3ba
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?UW9SSXRiV285M2VBNXFPWEVWVHBqVXdOcWZ6WDc2SHN4OWpjenJqSERGZ09T?=
 =?utf-8?B?eVJJVFZqcDh2THRmT0VMK1Npb1pHTHdIOU9RM2F5T3BQTmxIZU0yYUxkb0Va?=
 =?utf-8?B?eFRBd1g5QXpYcHo1OHc4T2tLbWpUeFFZZ0tYQWRBQ3dFSzhJWi94VTZFcU53?=
 =?utf-8?B?ZU9UWFRIZG82U1Y3SHdmWW54UjRaVXFWRXhlMDB4c2hSYUE2SEVxc3JhazZx?=
 =?utf-8?B?THRLYUpSSlF3K2hOdXZoYndVbWlpRVA3alRhbUV1aVFBSTMvZTU1aTdlL2NF?=
 =?utf-8?B?UnVKZEJkR3l2T29GNjdsdWZmNjZRS3lnSWlTK1g1eHZCQ3l1RGJiQlk5OUhh?=
 =?utf-8?B?U0hxNHdZd2tkNHA4N2l4dWMzT0huRkJta1ZKdkp0TCtmVGU1b3d4NVBheG9V?=
 =?utf-8?B?UUtFWGZha3hNamRHaXk4cXBON3lITmVJNlVLZWhEbkNuNnVaQkUvdVV5QXRC?=
 =?utf-8?B?K0V3WklxalJSL1p3V0VWSmFSNHNvUXYyeFc5bWRuN0xwb0lvVE5Pd20rOFVG?=
 =?utf-8?B?V2RjYW8vYmt4aHM4anMxRXVEZUhhTUtwbmtjSG9LWWZVQ0Q3R0tFRlMwamE0?=
 =?utf-8?B?SmZmWkxtalB3UmFmOTNlUlprMklMd3ovSU5ZYlIySVM0dHAwN3NjQTFSZTU4?=
 =?utf-8?B?YWYwcXdhb3JmdlVibTFmL0gwdUdBZTEzekp2bHU5SWVXZTF6VEJaSjg1MFhU?=
 =?utf-8?B?U25CVll4Mlg5Tjd3S3JodmNoeHowT202MXd2bG1wSjE1UTNaUDNiUXgwWk93?=
 =?utf-8?B?c3BzV2J1QkFyamZMRzludW9GZUs0TGVCQzlGME1nUmNuaHlTTStGcWd6ZlRR?=
 =?utf-8?B?YXNsRjgwTGFxWjVxOUFNQXJ5b3pLRWZ1UTVkeDdiTjBQRXFYdXNTWG13N3E1?=
 =?utf-8?B?ZnBBTU8vNDZyMVpBaC9VRUw2QmVHODdobm5Eb2hYTHFXY1dJWlZBZU5xQ09M?=
 =?utf-8?B?b21IeExyV01XNHlDem04YVdKbzRxeVZaM1IxOGlHbXVIZnRQWWtQUHVNT2Zq?=
 =?utf-8?B?RXN6SThHbWhDOGs5SEtwbXg4UDY4RHdkUFhvdDA4SVpmTWpKMU8wVEM2RjNa?=
 =?utf-8?B?S3BJZ09McjlVZTlLNHdYYVVqTjFSZmxlbDV0ZEo5dTFjRlcvR2tzay9EbzJq?=
 =?utf-8?B?cnJXOFpxeFBHOWs0eFZvcGM5a3VEamYzSzdTVUhQSUtndTM2azYvYk1CbzBC?=
 =?utf-8?B?amI0bko4c2xtM3o3cWE5aW9RV3E5ZHZ1RnRva0FSK0VSODZsaXRGTzc3ZE1L?=
 =?utf-8?B?c3gzWGE5S0tReVh0MVFha1BKSDNjK3hYdmorZWY1OXM5dE1Xc0p6Z0xhQjNB?=
 =?utf-8?B?dysyTVdadnJBeGtaN2loc1pjOFFadFgvRGpBTzVUMEtOeDJwUWw3TGtGWmpn?=
 =?utf-8?B?TU1TRjhad0pDL0xBdW5SNTdtdE1Ea0JEemVEb052N3FURUpmditEcFJCUmR0?=
 =?utf-8?B?TzZuQVNRWXV3ZTVkelViZ1N4eURaaWZFV0JTdUUxVFdUbmFpZi9yWFZmQlVF?=
 =?utf-8?B?dUZxL2MrQ0NkczJQU2pEVzBkSk5jU25DOWZlUDNCQUxTM25tSDlzQTBpdVRJ?=
 =?utf-8?B?RGR5NzloZUxBdDlkUFhCSlNhZVdJUXMvRmY5MitJY002VlAycjlrMUo3cDJN?=
 =?utf-8?B?TUY5MGVJbDlwTk04dlVnMUVrbm5HQ0Q2eHhWMW9QOTd5dThsMi9FZWZzZG0r?=
 =?utf-8?B?a1RYTWFSMC9Qc3o1QWpyeElUZ2NkYWYwUTN6OGZQMFdvaGNkeHRJV0FXaXg2?=
 =?utf-8?B?S1RYakpEVTBkVXlqSGw5U3pycEk1aDdHQm1VMHhjNXZYdjdLSmpLcmNUVXU1?=
 =?utf-8?B?bGttY3gvMVo1SjJPMzlsS0orSDlRY1B5UXlDclRkY1dCalZsSk16NnN1Y3BM?=
 =?utf-8?B?eDdJdjJUMmZCc0JyczdvVDBFY2NEbENTV1FPZ3VvVGRIZUpSNCtBS3Foc1do?=
 =?utf-8?Q?N1LRTsKU1SpziO7dDeC4+PnW/5Ap+iVs?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR03MB5227.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?TWhRb0dLQUpBOHZmNlNreXY3L04zY3B3S3c4bkx2SHd5ODQvVld6SUkrTFEy?=
 =?utf-8?B?eVVqd0ZNckxGSHlCUFBXZzJrSUZacUkvdzVzY21rVTV4c1dOc1hxQVczVm43?=
 =?utf-8?B?c0ZZTFJwL1RBRlhZUkRkZjRmUlpoV2hCWTd5QnpaSzlPNU5BYklKS2wzV3A0?=
 =?utf-8?B?bTJPZjROTzJvbmhTKzBROGdjK0paRWtZcVUwQjM0ZkZ3KzBMSThjSGpQa21C?=
 =?utf-8?B?dldxTjNyQ01WZU91akhXcHZ4ZzN2ZHAyTGE1ZXpSVnFNRWlRUlVheWZoVXl3?=
 =?utf-8?B?azJGaHlVYkRHeUl3cTNUcGc5WDlId3Ntc0x1UGFnMkFRTUtjb3l2dnlnaGM5?=
 =?utf-8?B?UmdkdXErL1pFamdiUTVCVlFVM1V5UlJuQ04zUm9TNmQvWUpLZ05PYXhzaWRR?=
 =?utf-8?B?NUJ6RklLQ2xEZ1dEajIvWUZod0NuNWhoYzNUSnNTMlp5TGFHNEY3eEI4Z3pD?=
 =?utf-8?B?TmJPMXg0aVV6RTdnRFBzTDc0NitRbTN1Z0IybmJWTnZaRVhkVXBCRTMzODFB?=
 =?utf-8?B?dVV4ZmRNajk3Y0xiaE9WL2I0TkJjRStZSklkVWNlakdXcXc3ODV6WUFkN0Zi?=
 =?utf-8?B?b1RTd0ZzQ25HcUVpcjZEVENIdHdYdmV4V0VpallCYVVxa29TeGFQYkw3V2h2?=
 =?utf-8?B?WjlmMnloQmhHRkcweUNwQVFHdWlsMFdLYklTNFN0eU5wRXZSQjFvWWhlOFR3?=
 =?utf-8?B?VjgvN1FhZG83S0h0djZDMWczWTh1NU5QQ3VXZWQ0ZnJ0YUZtb1dFVWx4bHdp?=
 =?utf-8?B?endObktFeW5EdDkwWEVvTGFhQ21WYSsxY1ZpeVR3Qjc0ZEFkMzBzcmE3eHlG?=
 =?utf-8?B?eDJHa0x4SGEyQ1RSSkRKTm13WjRSaGF4QjNEYTVvYndWWlFUTHBhc3NPTnQw?=
 =?utf-8?B?dGFEZDdLMnJDaDVkSncraW9tKy93TWdxVys5b3RkREtHK2NQdWlFUXpjS0Yr?=
 =?utf-8?B?cWhPb2VvNGY3aG05TEUxTWdIQ2dtNFptbStJTXJQZjJKZjhPMmdHQUJSSHhq?=
 =?utf-8?B?RHduS2IxK2krQWl0TWN4alJwcGRPbEFPdVFSOHY0RWZFNlZzNS9sR2xGYSs0?=
 =?utf-8?B?ZkVLWUovRjUrRXEwRDkzV0RoazdQdzJzUTg5UVJFTmE0NFhRQUtwTmhEVDFE?=
 =?utf-8?B?dUlQbTRHbUdVTFBKeG1WSHEwamxyVnZPNzRKUktWSWlLMWpBK3ZtdzdpSldo?=
 =?utf-8?B?RXVLMloyVVRvUTA3VGlQTXgvc3NMTkdRMXhWTDRmWlQxYzlsc1dOMzJrdHR4?=
 =?utf-8?B?NmF2Y3d6RWlPVXFEczdsdGdUSXFuMmJiSXgrcjhidHlNaXd2V2VuSHFyRDJy?=
 =?utf-8?B?dDhKc2hJdCtkTmlrL3c2WTN3Mm1XUEtiSFZUVERQYm5kL2VnSTdIUnFMMEtX?=
 =?utf-8?B?U0lPb2ZsTXNpSUF0U09TNkFhWENCS2ljU1hxclozYnJhRkIvVmJ5b1BuSXIx?=
 =?utf-8?B?NVJ1eTJNeE83dFBxQUsrQnZZajFTd0NiSEppVWprTVB3V1NpTGNOM3RSYWxk?=
 =?utf-8?B?Z0tPR01KbUtScFR2c0NwMUp3UjhxaG92MzNOTGZFTEFScXMyWTJWVzd6dWNi?=
 =?utf-8?B?Y1BydFpMay80dFd5RFhZZUtDNTY4OVJEVSs5aWRvZmZhMENUQWduS1N1Tlpa?=
 =?utf-8?B?SlBBUkxlTlFlSDRqUWVSU0VTMDE2UFk4MWpQbEdDemFXck1zQjhoSXF4eXdp?=
 =?utf-8?B?K1ZIdUw4bms3dXNKU2pselo1OW5DYmR6bmNvSnQzTmpPUk0zeUtZaHUwUHdE?=
 =?utf-8?B?MnJDQncvaVhkd0FnaS9tdUJmb0p5MHp1TXp1K0hpZTNmb2R6M0I0MDhYRnpo?=
 =?utf-8?B?eldKbml4RThtcERsd2hYZ1JaMno4RzNFMU9MRjc0RFVyMlBLSStKaGZWLzJT?=
 =?utf-8?B?WjIrdlNNb1B6ZzhCNnVFeTY1bE02K0lScHczQ0d6K3dVcTcvZllJTUt3dVFT?=
 =?utf-8?B?czNxNmdVU25yOWV4d3lGdzNueUE0SnVJT08vZzROQ2xZSE1MVncrRlQyc0ky?=
 =?utf-8?B?VWZWcnVoS21YcE5oVXRCeG5Oa3dreFNkeUNIMCs1MHBiaDlEek50U1h1bkxn?=
 =?utf-8?B?clF1THNLd0tlZmExeWs4MlQ2bVQyQUFTNnlUU3lBK3NZZGV4c3VHUUlhaTVv?=
 =?utf-8?Q?jO+7vdyAk26ZPqs9BOqcHShZw?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b8201af9-63cb-4bc2-5d21-08de235db3ba
X-MS-Exchange-CrossTenant-AuthSource: DM6PR03MB5227.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2025 09:10:49.4891
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: sn3WR65WSGihZIusUnUQgF4Bj2VSvtc4sp6sxJoSYHEXft9RpIcAh93dNTMxnWyFbUbWTF5oEPgFiq0MoN9FUw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5494

On Thu, Nov 13, 2025 at 05:52:47PM +0000, Andrew Cooper wrote:
> On 13/11/2025 5:24 pm, Roger Pau Monne wrote:
> > diff --git a/xen/arch/x86/hvm/viridian/synic.c b/xen/arch/x86/hvm/viridian/synic.c
> > index e6cba7548f1b..6d7b6bd0eda2 100644
> > --- a/xen/arch/x86/hvm/viridian/synic.c
> > +++ b/xen/arch/x86/hvm/viridian/synic.c
> > @@ -327,15 +327,10 @@ bool viridian_synic_deliver_timer_msg(struct vcpu *v, unsigned int sintx,
> >      struct viridian_vcpu *vv = v->arch.hvm.viridian;
> >      const union hv_synic_sint *vs = &vv->sint[sintx];
> >      struct hv_message *msg = vv->simp.ptr;
> > -    struct {
> > -        uint32_t TimerIndex;
> > -        uint32_t Reserved;
> > -        uint64_t ExpirationTime;
> > -        uint64_t DeliveryTime;
> > -    } payload = {
> > -        .TimerIndex = index,
> > -        .ExpirationTime = expiration,
> > -        .DeliveryTime = delivery,
> > +    const struct hv_timer_message_payload payload = {
> > +        .timer_index = index,
> > +        .expiration_time = expiration,
> > +        .delivery_time = delivery,
> 
> Align these = for readability?

Sure, can do.

> >      };
> >  
> >      /* Don't assume SIM page to be mapped. */
> > @@ -359,8 +354,8 @@ bool viridian_synic_deliver_timer_msg(struct vcpu *v, unsigned int sintx,
> >      msg->header.message_flags.msg_pending = 0;
> >      msg->header.payload_size = sizeof(payload);
> >  
> > -    BUILD_BUG_ON(sizeof(payload) > sizeof(msg->u.payload));
> > -    memcpy(msg->u.payload, &payload, sizeof(payload));
> > +    BUILD_BUG_ON(sizeof(msg->payload.timer) > sizeof(msg->payload.raw));
> 
> This BUILD_BUG_ON() was only needed because of the memcpy() between
> different types.Â  With structure assignment, the compiler will tell you
> if the type mismatches.

I've keep it to ensure the size of the hv_timer_message_payload
doesn't exceed the maximum payload size (240 bytes), as
msg->payload.raw is the maximum payload size defined by the standard.

> Therefore, it's safe to drop.
> 
> Otherwise, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

Let me know if you are fine with keeping the BUILD_BUG_ON() given the
justification above, as that would be my preference.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 09:17:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 09:17:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162350.1490025 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJpvd-0003jI-7W; Fri, 14 Nov 2025 09:17:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162350.1490025; Fri, 14 Nov 2025 09:17:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJpvd-0003jB-3U; Fri, 14 Nov 2025 09:17:13 +0000
Received: by outflank-mailman (input) for mailman id 1162350;
 Fri, 14 Nov 2025 09:17: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=op6D=5W=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vJpvb-0003j4-0L
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 09:17: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 b1e98ab2-c13a-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 10:17:09 +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-484-5Jb_QW3SMpOSOeJQrTTggg-1; Fri,
 14 Nov 2025 04:17:03 -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 181C21956094; Fri, 14 Nov 2025 09:17:02 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 2EA611955F1B; Fri, 14 Nov 2025 09:17:01 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 647BC21E6A27; Fri, 14 Nov 2025 10:16:58 +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: b1e98ab2-c13a-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763111828;
	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;
	bh=0k9gE9OBnyE+OiyzVseSUkJqX807Y3xb0ASD5xFtiRg=;
	b=BMGcg9eJxE5WtJQppJ7/XpXEhcxThJgBjFGNxamWBbYEOQKget66iAsf7U1mfBpL8ST0Gw
	xrj906r59uAjCB8SO/5MEpFwQk/O48RDIE0muwm4B23tsYX/Z2I3cDFPJeLxYnF8dNZk3h
	XD6K/h1eK0+TXDARHiS9N8HjmYxtyf4=
X-MC-Unique: 5Jb_QW3SMpOSOeJQrTTggg-1
X-Mimecast-MFC-AGG-ID: 5Jb_QW3SMpOSOeJQrTTggg_1763111822
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
 <anthony@xenproject.org>, Paul Durrant <paul@xen.org>, "Edgar E. Iglesias"
 <edgar.iglesias@gmail.com>, xen-devel@lists.xenproject.org, Vikram Garhwal
 <vikram.garhwal@amd.com>
Subject: Incorrect error handling in xen_enable_tpm()
Date: Fri, 14 Nov 2025 10:16:58 +0100
Message-ID: <87jyzt0y9h.fsf@pond.sub.org>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17

Consider xen_enable_tpm() in hw/xen/xen-pvh-common.c:

    static void xen_enable_tpm(XenPVHMachineState *s)
    {
        Error *errp = NULL;

Nitpick: confusing name; we use @errp for Error ** variables, not for
Error * variables.  Better: @err.

        DeviceState *dev;
        SysBusDevice *busdev;

        TPMBackend *be = qemu_find_tpm_be("tpm0");
        if (be == NULL) {
            error_report("Couldn't find tmp0 backend");
            return;
        }
        dev = qdev_new(TYPE_TPM_TIS_SYSBUS);
        object_property_set_link(OBJECT(dev), "tpmdev", OBJECT(be), &errp);

If this fails, @errp changes to non-null.

        object_property_set_str(OBJECT(dev), "tpmdev", be->id, &errp);

If this then succeeds, @errp remains non-null.  Since we ignore it, we
leak the Error object.

If it also fails, we trip error_setv()'s assertion, because we violate
qapi/error.h rule

 * - You may pass NULL to not receive the error, &error_abort to abort
 *   on error, &error_fatal to exit(1) on error, or a pointer to a
 *   variable containing NULL to receive the error.

Taking a step back from the incorrect error handling: we're setting the
same property *twice*.  Why?

As far as I can tell, property "tpmdev" is not a link.  It's defined
with DEFINE_PROP_TPMBE(), i.e. setting it runs set_tpm() from
backends/tpm/tpm_util.c.  Passes the value to qemu_find_tpm_be(), which
appears to take a TPMBackend ID.

I suspect the object_property_set_link() always fails, and we leak the
Error object.

I'd verify this in a debugger, but I don't have a Xen box handy.

Code goes back to commit 733766cd373 (hw/arm: introduce xenpvh machine).

        busdev = SYS_BUS_DEVICE(dev);
        sysbus_realize_and_unref(busdev, &error_fatal);
        sysbus_mmio_map(busdev, 0, s->cfg.tpm.base);

        trace_xen_enable_tpm(s->cfg.tpm.base);
    }



From xen-devel-bounces@lists.xenproject.org Fri Nov 14 09:20:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 09:20:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162363.1490033 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJpyt-0005GA-Jv; Fri, 14 Nov 2025 09:20:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162363.1490033; Fri, 14 Nov 2025 09:20:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJpyt-0005G3-HN; Fri, 14 Nov 2025 09:20:35 +0000
Received: by outflank-mailman (input) for mailman id 1162363;
 Fri, 14 Nov 2025 09:20:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=o/3C=5W=csgroup.eu=christophe.leroy@srs-se1.protection.inumbo.net>)
 id 1vJpys-0005Fx-Kz
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 09:20:34 +0000
Received: from pegase2.c-s.fr (pegase2.c-s.fr [93.17.235.10])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 2bfd335c-c13b-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 10:20:33 +0100 (CET)
Received: from localhost (mailhub4.si.c-s.fr [172.26.127.67])
 by localhost (Postfix) with ESMTP id 4d7B3S6g5lz9sSm;
 Fri, 14 Nov 2025 10:02:12 +0100 (CET)
Received: from pegase2.c-s.fr ([172.26.127.65])
 by localhost (pegase2.c-s.fr [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id Jh3Mqk4UdkM3; Fri, 14 Nov 2025 10:02:12 +0100 (CET)
Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192])
 by pegase2.c-s.fr (Postfix) with ESMTP id 4d7B3P5h7Hz9sSt;
 Fri, 14 Nov 2025 10:02:09 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id 940058B770;
 Fri, 14 Nov 2025 10:02:09 +0100 (CET)
Received: from messagerie.si.c-s.fr ([127.0.0.1])
 by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023)
 with ESMTP id WOt_dcMEhEst; Fri, 14 Nov 2025 10:02:09 +0100 (CET)
Received: from [192.168.235.99] (unknown [192.168.235.99])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id DCFEA8B76E;
 Fri, 14 Nov 2025 10:02:07 +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: 2bfd335c-c13b-11f0-9d18-b5c5bf9af7f9
X-Virus-Scanned: amavisd-new at c-s.fr
X-Virus-Scanned: amavisd-new at c-s.fr
Message-ID: <83cdd7e8-51a7-4989-b270-93cec301cde7@csgroup.eu>
Date: Fri, 14 Nov 2025 10:02:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 10/14] powerpc: Convert to physical address DMA mapping
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>,
 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@vger.kernel.org
References: <20251015-remove-map-page-v5-0-3bbfe3a25cdf@kernel.org>
 <20251015-remove-map-page-v5-10-3bbfe3a25cdf@kernel.org>
From: Christophe Leroy <christophe.leroy@csgroup.eu>
Content-Language: fr-FR
In-Reply-To: <20251015-remove-map-page-v5-10-3bbfe3a25cdf@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



Le 15/10/2025 Ã  11:12, Leon Romanovsky a Ã©critÂ :
> From: Leon Romanovsky <leonro@nvidia.com>
> 
> Adapt PowerPC DMA to use physical addresses in order to prepare code
> to removal .map_page and .unmap_page.
> 
> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>

Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>

Non fatal comments below.

> ---
>   arch/powerpc/include/asm/iommu.h         |  8 ++++----
>   arch/powerpc/kernel/dma-iommu.c          | 22 ++++++++++-----------
>   arch/powerpc/kernel/iommu.c              | 14 +++++++-------
>   arch/powerpc/platforms/ps3/system-bus.c  | 33 ++++++++++++++++++--------------
>   arch/powerpc/platforms/pseries/ibmebus.c | 15 ++++++++-------
>   arch/powerpc/platforms/pseries/vio.c     | 21 +++++++++++---------
>   6 files changed, 60 insertions(+), 53 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/iommu.h b/arch/powerpc/include/asm/iommu.h
> index b410021ad4c6..eafdd63cd6c4 100644
> --- a/arch/powerpc/include/asm/iommu.h
> +++ b/arch/powerpc/include/asm/iommu.h
> @@ -274,12 +274,12 @@ extern void *iommu_alloc_coherent(struct device *dev, struct iommu_table *tbl,
>   				  unsigned long mask, gfp_t flag, int node);
>   extern void iommu_free_coherent(struct iommu_table *tbl, size_t size,
>   				void *vaddr, dma_addr_t dma_handle);
> -extern dma_addr_t iommu_map_page(struct device *dev, struct iommu_table *tbl,
> -				 struct page *page, unsigned long offset,
> -				 size_t size, unsigned long mask,
> +extern dma_addr_t iommu_map_phys(struct device *dev, struct iommu_table *tbl,
> +				 phys_addr_t phys, size_t size,
> +				 unsigned long mask,
>   				 enum dma_data_direction direction,
>   				 unsigned long attrs);

'extern' is pointless for function prototypes.

Report from checkpatch:

CHECK: extern prototypes should be avoided in .h files
#31: FILE: arch/powerpc/include/asm/iommu.h:277:
+extern dma_addr_t iommu_map_phys(struct device *dev, struct iommu_table 
*tbl,


> -extern void iommu_unmap_page(struct iommu_table *tbl, dma_addr_t dma_handle,
> +extern void iommu_unmap_phys(struct iommu_table *tbl, dma_addr_t dma_handle,
>   			     size_t size, enum dma_data_direction direction,
>   			     unsigned long attrs);

Same:

CHECK: extern prototypes should be avoided in .h files
#37: FILE: arch/powerpc/include/asm/iommu.h:282:
+extern void iommu_unmap_phys(struct iommu_table *tbl, dma_addr_t 
dma_handle,



>   
> diff --git a/arch/powerpc/kernel/dma-iommu.c b/arch/powerpc/kernel/dma-iommu.c
> index 0359ab72cd3b..aa3689d61917 100644
> --- a/arch/powerpc/kernel/dma-iommu.c
> +++ b/arch/powerpc/kernel/dma-iommu.c
> @@ -93,28 +93,26 @@ static void dma_iommu_free_coherent(struct device *dev, size_t size,
>   
>   /* Creates TCEs for a user provided buffer.  The user buffer must be
>    * contiguous real kernel storage (not vmalloc).  The address passed here
> - * comprises a page address and offset into that page. The dma_addr_t
> - * returned will point to the same byte within the page as was passed in.
> + * is a physical address to that page. The dma_addr_t returned will point
> + * to the same byte within the page as was passed in.
>    */
> -static dma_addr_t dma_iommu_map_page(struct device *dev, struct page *page,
> -				     unsigned long offset, size_t size,
> +static dma_addr_t dma_iommu_map_phys(struct device *dev, phys_addr_t phys,
> +				     size_t size,
>   				     enum dma_data_direction direction,
>   				     unsigned long attrs)
>   {
> -	return iommu_map_page(dev, get_iommu_table_base(dev), page, offset,
> -			      size, dma_get_mask(dev), direction, attrs);
> +	return iommu_map_phys(dev, get_iommu_table_base(dev), phys, size,
> +			      dma_get_mask(dev), direction, attrs);
>   }
>   
> -
> -static void dma_iommu_unmap_page(struct device *dev, dma_addr_t dma_handle,
> +static void dma_iommu_unmap_phys(struct device *dev, dma_addr_t dma_handle,
>   				 size_t size, enum dma_data_direction direction,
>   				 unsigned long attrs)
>   {
> -	iommu_unmap_page(get_iommu_table_base(dev), dma_handle, size, direction,
> +	iommu_unmap_phys(get_iommu_table_base(dev), dma_handle, size, direction,
>   			 attrs);
>   }
>   
> -
>   static int dma_iommu_map_sg(struct device *dev, struct scatterlist *sglist,
>   			    int nelems, enum dma_data_direction direction,
>   			    unsigned long attrs)
> @@ -211,8 +209,8 @@ const struct dma_map_ops dma_iommu_ops = {
>   	.map_sg			= dma_iommu_map_sg,
>   	.unmap_sg		= dma_iommu_unmap_sg,
>   	.dma_supported		= dma_iommu_dma_supported,
> -	.map_page		= dma_iommu_map_page,
> -	.unmap_page		= dma_iommu_unmap_page,
> +	.map_phys		= dma_iommu_map_phys,
> +	.unmap_phys		= dma_iommu_unmap_phys,
>   	.get_required_mask	= dma_iommu_get_required_mask,
>   	.mmap			= dma_common_mmap,
>   	.get_sgtable		= dma_common_get_sgtable,
> diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c
> index 244eb4857e7f..6b5f4b72ce97 100644
> --- a/arch/powerpc/kernel/iommu.c
> +++ b/arch/powerpc/kernel/iommu.c
> @@ -848,12 +848,12 @@ EXPORT_SYMBOL_GPL(iommu_tce_table_put);
>   
>   /* Creates TCEs for a user provided buffer.  The user buffer must be
>    * contiguous real kernel storage (not vmalloc).  The address passed here
> - * comprises a page address and offset into that page. The dma_addr_t
> - * returned will point to the same byte within the page as was passed in.
> + * is physical address into that page. The dma_addr_t returned will point
> + * to the same byte within the page as was passed in.
>    */
> -dma_addr_t iommu_map_page(struct device *dev, struct iommu_table *tbl,
> -			  struct page *page, unsigned long offset, size_t size,
> -			  unsigned long mask, enum dma_data_direction direction,
> +dma_addr_t iommu_map_phys(struct device *dev, struct iommu_table *tbl,
> +			  phys_addr_t phys, size_t size, unsigned long mask,
> +			  enum dma_data_direction direction,
>   			  unsigned long attrs)
>   {
>   	dma_addr_t dma_handle = DMA_MAPPING_ERROR;
> @@ -863,7 +863,7 @@ dma_addr_t iommu_map_page(struct device *dev, struct iommu_table *tbl,
>   
>   	BUG_ON(direction == DMA_NONE);
>   
> -	vaddr = page_address(page) + offset;
> +	vaddr = phys_to_virt(phys);
>   	uaddr = (unsigned long)vaddr;
>   
>   	if (tbl) {
> @@ -890,7 +890,7 @@ dma_addr_t iommu_map_page(struct device *dev, struct iommu_table *tbl,
>   	return dma_handle;
>   }
>   
> -void iommu_unmap_page(struct iommu_table *tbl, dma_addr_t dma_handle,
> +void iommu_unmap_phys(struct iommu_table *tbl, dma_addr_t dma_handle,
>   		      size_t size, enum dma_data_direction direction,
>   		      unsigned long attrs)
>   {
> diff --git a/arch/powerpc/platforms/ps3/system-bus.c b/arch/powerpc/platforms/ps3/system-bus.c
> index afbaabf182d0..f4f3477d3a23 100644
> --- a/arch/powerpc/platforms/ps3/system-bus.c
> +++ b/arch/powerpc/platforms/ps3/system-bus.c
> @@ -551,18 +551,20 @@ static void ps3_free_coherent(struct device *_dev, size_t size, void *vaddr,
>   
>   /* Creates TCEs for a user provided buffer.  The user buffer must be
>    * contiguous real kernel storage (not vmalloc).  The address passed here
> - * comprises a page address and offset into that page. The dma_addr_t
> - * returned will point to the same byte within the page as was passed in.
> + * is physical address to that hat page. The dma_addr_t returned will point
> + * to the same byte within the page as was passed in.
>    */
>   
> -static dma_addr_t ps3_sb_map_page(struct device *_dev, struct page *page,
> -	unsigned long offset, size_t size, enum dma_data_direction direction,
> -	unsigned long attrs)
> +static dma_addr_t ps3_sb_map_phys(struct device *_dev, phys_addr_t phys,
> +	size_t size, enum dma_data_direction direction, unsigned long attrs)

CHECK: Alignment should match open parenthesis
#151: FILE: arch/powerpc/platforms/ps3/system-bus.c:559:
+static dma_addr_t ps3_sb_map_phys(struct device *_dev, phys_addr_t phys,
+	size_t size, enum dma_data_direction direction, unsigned long attrs)



>   {
>   	struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev);
>   	int result;
>   	dma_addr_t bus_addr;
> -	void *ptr = page_address(page) + offset;
> +	void *ptr = phys_to_virt(phys);
> +
> +	if (unlikely(attrs & DMA_ATTR_MMIO))
> +		return DMA_MAPPING_ERROR;
>   
>   	result = ps3_dma_map(dev->d_region, (unsigned long)ptr, size,
>   			     &bus_addr,
> @@ -577,8 +579,8 @@ static dma_addr_t ps3_sb_map_page(struct device *_dev, struct page *page,
>   	return bus_addr;
>   }
>   
> -static dma_addr_t ps3_ioc0_map_page(struct device *_dev, struct page *page,
> -				    unsigned long offset, size_t size,
> +static dma_addr_t ps3_ioc0_map_phys(struct device *_dev, phys_addr_t phys,
> +				    size_t size,
>   				    enum dma_data_direction direction,
>   				    unsigned long attrs)
>   {
> @@ -586,7 +588,10 @@ static dma_addr_t ps3_ioc0_map_page(struct device *_dev, struct page *page,
>   	int result;
>   	dma_addr_t bus_addr;
>   	u64 iopte_flag;
> -	void *ptr = page_address(page) + offset;
> +	void *ptr = phys_to_virt(phys);
> +
> +	if (unlikely(attrs & DMA_ATTR_MMIO))
> +		return DMA_MAPPING_ERROR;
>   
>   	iopte_flag = CBE_IOPTE_M;
>   	switch (direction) {
> @@ -613,7 +618,7 @@ static dma_addr_t ps3_ioc0_map_page(struct device *_dev, struct page *page,
>   	return bus_addr;
>   }
>   
> -static void ps3_unmap_page(struct device *_dev, dma_addr_t dma_addr,
> +static void ps3_unmap_phys(struct device *_dev, dma_addr_t dma_addr,
>   	size_t size, enum dma_data_direction direction, unsigned long attrs)

CHECK: Alignment should match open parenthesis
#193: FILE: arch/powerpc/platforms/ps3/system-bus.c:622:
+static void ps3_unmap_phys(struct device *_dev, dma_addr_t dma_addr,
  	size_t size, enum dma_data_direction direction, unsigned long attrs)



>   {
>   	struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev);
> @@ -690,8 +695,8 @@ static const struct dma_map_ops ps3_sb_dma_ops = {
>   	.map_sg = ps3_sb_map_sg,
>   	.unmap_sg = ps3_sb_unmap_sg,
>   	.dma_supported = ps3_dma_supported,
> -	.map_page = ps3_sb_map_page,
> -	.unmap_page = ps3_unmap_page,
> +	.map_phys = ps3_sb_map_phys,
> +	.unmap_phys = ps3_unmap_phys,
>   	.mmap = dma_common_mmap,
>   	.get_sgtable = dma_common_get_sgtable,
>   	.alloc_pages_op = dma_common_alloc_pages,
> @@ -704,8 +709,8 @@ static const struct dma_map_ops ps3_ioc0_dma_ops = {
>   	.map_sg = ps3_ioc0_map_sg,
>   	.unmap_sg = ps3_ioc0_unmap_sg,
>   	.dma_supported = ps3_dma_supported,
> -	.map_page = ps3_ioc0_map_page,
> -	.unmap_page = ps3_unmap_page,
> +	.map_phys = ps3_ioc0_map_phys,
> +	.unmap_phys = ps3_unmap_phys,
>   	.mmap = dma_common_mmap,
>   	.get_sgtable = dma_common_get_sgtable,
>   	.alloc_pages_op = dma_common_alloc_pages,
> diff --git a/arch/powerpc/platforms/pseries/ibmebus.c b/arch/powerpc/platforms/pseries/ibmebus.c
> index 3436b0af795e..cad2deb7e70d 100644
> --- a/arch/powerpc/platforms/pseries/ibmebus.c
> +++ b/arch/powerpc/platforms/pseries/ibmebus.c
> @@ -86,17 +86,18 @@ static void ibmebus_free_coherent(struct device *dev,
>   	kfree(vaddr);
>   }
>   
> -static dma_addr_t ibmebus_map_page(struct device *dev,
> -				   struct page *page,
> -				   unsigned long offset,
> +static dma_addr_t ibmebus_map_phys(struct device *dev, phys_addr_t phys,
>   				   size_t size,
>   				   enum dma_data_direction direction,
>   				   unsigned long attrs)
>   {
> -	return (dma_addr_t)(page_address(page) + offset);
> +	if (attrs & DMA_ATTR_MMIO)
> +		return DMA_MAPPING_ERROR;
> +
> +	return (dma_addr_t)(phys_to_virt(phys));
>   }
>   
> -static void ibmebus_unmap_page(struct device *dev,
> +static void ibmebus_unmap_phys(struct device *dev,
>   			       dma_addr_t dma_addr,
>   			       size_t size,
>   			       enum dma_data_direction direction,
> @@ -146,8 +147,8 @@ static const struct dma_map_ops ibmebus_dma_ops = {
>   	.unmap_sg           = ibmebus_unmap_sg,
>   	.dma_supported      = ibmebus_dma_supported,
>   	.get_required_mask  = ibmebus_dma_get_required_mask,
> -	.map_page           = ibmebus_map_page,
> -	.unmap_page         = ibmebus_unmap_page,
> +	.map_phys           = ibmebus_map_phys,
> +	.unmap_phys         = ibmebus_unmap_phys,
>   };
>   
>   static int ibmebus_match_path(struct device *dev, const void *data)
> diff --git a/arch/powerpc/platforms/pseries/vio.c b/arch/powerpc/platforms/pseries/vio.c
> index ac1d2d2c9a88..18cffac5468f 100644
> --- a/arch/powerpc/platforms/pseries/vio.c
> +++ b/arch/powerpc/platforms/pseries/vio.c
> @@ -512,18 +512,21 @@ static void vio_dma_iommu_free_coherent(struct device *dev, size_t size,
>   	vio_cmo_dealloc(viodev, roundup(size, PAGE_SIZE));
>   }
>   
> -static dma_addr_t vio_dma_iommu_map_page(struct device *dev, struct page *page,
> -                                         unsigned long offset, size_t size,
> -                                         enum dma_data_direction direction,
> -                                         unsigned long attrs)
> +static dma_addr_t vio_dma_iommu_map_phys(struct device *dev, phys_addr_t phys,
> +					 size_t size,
> +					 enum dma_data_direction direction,
> +					 unsigned long attrs)
>   {
>   	struct vio_dev *viodev = to_vio_dev(dev);
>   	struct iommu_table *tbl = get_iommu_table_base(dev);
>   	dma_addr_t ret = DMA_MAPPING_ERROR;
>   
> +	if (unlikely(attrs & DMA_ATTR_MMIO))
> +		return ret;
> +
>   	if (vio_cmo_alloc(viodev, roundup(size, IOMMU_PAGE_SIZE(tbl))))
>   		goto out_fail;
> -	ret = iommu_map_page(dev, tbl, page, offset, size, dma_get_mask(dev),
> +	ret = iommu_map_phys(dev, tbl, phys, size, dma_get_mask(dev),
>   			direction, attrs);

CHECK: Alignment should match open parenthesis
#285: FILE: arch/powerpc/platforms/pseries/vio.c:530:
+	ret = iommu_map_phys(dev, tbl, phys, size, dma_get_mask(dev),
  			direction, attrs);


>   	if (unlikely(ret == DMA_MAPPING_ERROR))
>   		goto out_deallocate;
> @@ -536,7 +539,7 @@ static dma_addr_t vio_dma_iommu_map_page(struct device *dev, struct page *page,
>   	return DMA_MAPPING_ERROR;
>   }
>   
> -static void vio_dma_iommu_unmap_page(struct device *dev, dma_addr_t dma_handle,
> +static void vio_dma_iommu_unmap_phys(struct device *dev, dma_addr_t dma_handle,
>   				     size_t size,
>   				     enum dma_data_direction direction,
>   				     unsigned long attrs)
> @@ -544,7 +547,7 @@ static void vio_dma_iommu_unmap_page(struct device *dev, dma_addr_t dma_handle,
>   	struct vio_dev *viodev = to_vio_dev(dev);
>   	struct iommu_table *tbl = get_iommu_table_base(dev);
>   
> -	iommu_unmap_page(tbl, dma_handle, size, direction, attrs);
> +	iommu_unmap_phys(tbl, dma_handle, size, direction, attrs);
>   	vio_cmo_dealloc(viodev, roundup(size, IOMMU_PAGE_SIZE(tbl)));
>   }
>   
> @@ -605,8 +608,8 @@ static const struct dma_map_ops vio_dma_mapping_ops = {
>   	.free              = vio_dma_iommu_free_coherent,
>   	.map_sg            = vio_dma_iommu_map_sg,
>   	.unmap_sg          = vio_dma_iommu_unmap_sg,
> -	.map_page          = vio_dma_iommu_map_page,
> -	.unmap_page        = vio_dma_iommu_unmap_page,
> +	.map_phys          = vio_dma_iommu_map_phys,
> +	.unmap_phys        = vio_dma_iommu_unmap_phys,
>   	.dma_supported     = dma_iommu_dma_supported,
>   	.get_required_mask = dma_iommu_get_required_mask,
>   	.mmap		   = dma_common_mmap,
> 



From xen-devel-bounces@lists.xenproject.org Fri Nov 14 09:28:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 09:28:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162378.1490044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJq62-0006BY-9f; Fri, 14 Nov 2025 09:27:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162378.1490044; Fri, 14 Nov 2025 09:27:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJq62-0006BR-6w; Fri, 14 Nov 2025 09:27:58 +0000
Received: by outflank-mailman (input) for mailman id 1162378;
 Fri, 14 Nov 2025 09:27: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=0Jk/=5W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vJq60-0006BG-M0
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 09:27:56 +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 2c7b551e-c13c-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 10:27:43 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b6d402422c2so272134866b.2
 for <xen-devel@lists.xenproject.org>; Fri, 14 Nov 2025 01:27:43 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fad44b4sm351744066b.28.2025.11.14.01.27.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 14 Nov 2025 01:27: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: 2c7b551e-c13c-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763112463; x=1763717263; darn=lists.xenproject.org;
        h=in-reply-to:content-language:references:cc:to:subject:from
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MVKERs91mOCm7IAcUp0XjHIoVNY8W/5iSvj/CJSrAxM=;
        b=m7fSZgu1dsIumR+9NdtmGqzS2CajQPzp9SAOe8rtk4ZndLgFtALv8WhsxFTbEVZBxa
         n2dPqi5aivvJbDs9IsdNkA7ZwCfyyio069Xlp9E4X3p4QhEC9stXHOmpIDaTCyBOzz/E
         yqIrv8knXoHX31hflGD8Dg+2wSCeRqS1YTBktxPX3DcYF5P3U7uW7gVTY/5eu3+GtBJ5
         kdueu9TAxSS1gF8FdV9vayfvMH2ajT0vPMGlYt6oS6kXLNPP4YDUBFF+83r6hdBo9WOq
         oRsO6Jv6liWpzxlvm2ZbYoAihGlkneR0bOPMjB038QQQq2pFNA2PrZue6WRjWKQZCjhq
         HoNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763112463; x=1763717263;
        h=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=MVKERs91mOCm7IAcUp0XjHIoVNY8W/5iSvj/CJSrAxM=;
        b=J8JY9JtnnuE38skqszalsWApqSVc6d7SUXwGuXdSJw1jIQGDTzVgJrXX/XxSrdcyp2
         MiDGxPNlyPGQoRJA2MpTUzoIVgMbGMgXcCGfHjjSVrpjQjE9HlM1yZPW7SF+YPIwxYfB
         HS0z+2iHcm/HwD79a0l2esmCXSnnyUHCe0QDtOgTSYT5DLmjkVCIHzbRdSMWm9KOyk8D
         rcxH52V3L2e3ZjI4Z4QDkpacJVqbq5oCmJRqziiox69GKYggn0T5xudd9g72iVw5zr6s
         rYvDaZZJFS8k372sHQjjH2G38v8sAnsoodEBL3hDdkkSneBLTkSvCaoNztFF9fluGY41
         VTnQ==
X-Forwarded-Encrypted: i=1; AJvYcCUp45wHrut3DcBYetT6cYUHFTrgbBfJy0riK9XKK6rvrqJAJBvfRSpCgBMFR8hZn4ogK5g8d5v3Zfk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxDWwaWTbcxwGb6KopmmXkaw5pEqJcoDqi8XN7txJOZ4g8tlfAe
	ty+5CwxK+08MXLxqtX1IKWWsDE++DQlZ5pYFhDusBEwBwUFAZj1YaW0k
X-Gm-Gg: ASbGncvsILsWRcHMLrXTk2YwlY5vmMugfaaxkqIjk1sgXBtA8OGbXrKaIAF1VPiH/Td
	uuqqZoop6qiKBHy67bK7aJDIuRTb+5yl7d4GV1PqnNeshr2lf2sdl98O1z2KrOnZa3jZaJEeinm
	+bXWRbt2pWwEOBE0sxpe/50bJLSKApUesx3tOfNnFmrYUPvUTk7SR1A1ujP7U2lM121bO/oADfA
	rPASpRj6bkMrnVZoKMGVCLQSVptskWgf/O5najf6oh37TODZmVm+Dj33D+AxvuHXBo/nGMjMNAC
	xbAUVujf8cGsNpOaD2UBT8nu0OgIlq862vT+1+uFmQfhG5m2q6rTygS7nhP06GgZIBR8nlnlHjq
	w9x2r4Nx5cjZLcwLeiAgXk3Hak4o/4BnAL+ZwGCdU7ThokEZRQMc82JIlRDiBtrOdXkrcnceALF
	GteP9JqEc6NHrNlboYmRyuPmZZG7yMURwrT+CK0ixq/+RNmcURaw==
X-Google-Smtp-Source: AGHT+IHEaP8TA9rtQXfFZUrU/3l/kbFb7PCQik0PalKgyIrzSacPlF2MeFnEr6vaOmM8+p5GlffotA==
X-Received: by 2002:a17:907:da9:b0:b72:60d9:32b0 with SMTP id a640c23a62f3a-b7367828bd4mr236797866b.3.1763112461559;
        Fri, 14 Nov 2025 01:27:41 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------ihJQpW5AIiAsY4FgPUKoUE3H"
Message-ID: <cf96c62e-cac0-4b18-9524-0703c6492453@gmail.com>
Date: Fri, 14 Nov 2025 10:27:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [for 4.22 v5 02/18] xen/riscv: introduce VMID allocation and
 manegement
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <bdbe6c13991c2d166614795d43db3f71d790c00f.1760974017.git.oleksii.kurochko@gmail.com>
 <7e9671b3-6972-45b8-9cba-4447fa802fe2@suse.com>
Content-Language: en-US
In-Reply-To: <7e9671b3-6972-45b8-9cba-4447fa802fe2@suse.com>

This is a multi-part message in MIME format.
--------------ihJQpW5AIiAsY4FgPUKoUE3H
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 11/6/25 3:05 PM, Jan Beulich wrote:
> On 20.10.2025 17:57, Oleksii Kurochko wrote:
>
> +static unsigned int vmidlen_detect(void)
> +{
> +    unsigned int vmid_bits;
> +
> +    /*
> +     * According to the RISC-V Privileged Architecture Spec:
> +     *   When MODE=Bare, guest physical addresses are equal to supervisor
> +     *   physical addresses, and there is no further memory protection
> +     *   for a guest virtual machine beyond the physical memory protection
> +     *   scheme described in Section "Physical Memory Protection".
> +     *   In this case, the remaining fields in hgatp must be set to zeros.
> +     * Thereby it is necessary to set gstage_mode not equal to Bare.
> +     */
> +    ASSERT(gstage_mode != HGATP_MODE_OFF);
> +    csr_write(CSR_HGATP,
> +              MASK_INSR(gstage_mode, HGATP_MODE_MASK) | HGATP_VMID_MASK);
> +    vmid_bits = MASK_EXTR(csr_read(CSR_HGATP), HGATP_VMID_MASK);
> +    vmid_bits = flsl(vmid_bits);
> +    csr_write(CSR_HGATP, _AC(0, UL));
> +
> +    /*
> +     * From RISC-V spec:
> +     *   Speculative executions of the address-translation algorithm behave as
> +     *   non-speculative executions of the algorithm do, except that they must
> +     *   not set the dirty bit for a PTE, they must not trigger an exception,
> +     *   and they must not create address-translation cache entries if those
> +     *   entries would have been invalidated by any SFENCE.VMA instruction
> +     *   executed by the hart since the speculative execution of the algorithm
> +     *   began.
> +     *
> +     * Also, despite of the fact here it is mentioned that when V=0 two-stage
> +     * address translation is inactivated:
> +     *   The current virtualization mode, denoted V, indicates whether the hart
> +     *   is currently executing in a guest. When V=1, the hart is either in
> +     *   virtual S-mode (VS-mode), or in virtual U-mode (VU-mode) atop a guest
> +     *   OS running in VS-mode. When V=0, the hart is either in M-mode, in
> +     *   HS-mode, or in U-mode atop an OS running in HS-mode. The
> +     *   virtualization mode also indicates whether two-stage address
> +     *   translation is active (V=1) or inactive (V=0).
> +     * But on the same side, writing to hgatp register activates it:
> +     *   The hgatp register is considered active for the purposes of
> +     *   the address-translation algorithm unless the effective privilege mode
> +     *   is U and hstatus.HU=0.
> +     *
> +     * Thereby it leaves some room for speculation even in this stage of boot,
> +     * so it could be that we polluted local TLB so flush all guest TLB.
> +     */
> +    local_hfence_gvma_all();
> That's a lot of redundancy with gstage_mode_detect(). The function call here
> actually renders the one there redundant, afaict. Did you consider putting a
> single instance at the end of it in pre_gstage_init()? Otherwise at least
> don't repeat the comment here, but merely point at the other one?

Agree, it could be moved to the end of pre_gstage_init().


>> +    return vmid_bits;
>> +}
>> +
>> +void vmid_init(void)
> This (and its helper) isn't __init because you intend to also call it during
> bringup of secondary processors?

Yes, I wasn't able to find that VMIDLEN is guaranteed to be same for all
harts.

>> +    unsigned int vmid_len = vmidlen_detect();
>> +    struct vmid_data *data = &this_cpu(vmid_data);
>> +
>> +    BUILD_BUG_ON((HGATP_VMID_MASK >> HGATP_VMID_SHIFT) >
>> +                 (BIT((sizeof(data->max_vmid) * BITS_PER_BYTE), UL) - 1));
>> +
>> +    data->max_vmid = BIT(vmid_len, U) - 1;
>> +    data->used = opt_vmid && (vmid_len > 1);
>> +
>> +    if ( g_vmid_used < 0 )
>> +    {
>> +        g_vmid_used = data->used;
>> +        printk("VMIDs use is %sabled\n", data->used ? "en" : "dis");
>> +    }
>> +    else if ( g_vmid_used != data->used )
>> +        printk("CPU%u: VMIDs use is %sabled\n", smp_processor_id(),
>> +               data->used ? "en" : "dis");
>> +
>> +    /* Zero indicates 'invalid generation', so we start the count at one. */
>> +    data->generation = 1;
>> +
>> +    /* Zero indicates 'VMIDs use disabled', so we start the count at one. */
>> +    data->next_vmid = 1;
>> +}
>> +
>> +void vmid_flush_vcpu(struct vcpu *v)
>> +{
>> +    write_atomic(&v->arch.vmid.generation, 0);
>> +}
>> +
>> +void vmid_flush_hart(void)
>> +{
>> +    struct vmid_data *data = &this_cpu(vmid_data);
>> +
>> +    if ( !data->used )
>> +        return;
>> +
>> +    if ( likely(++data->generation != 0) )
>> +        return;
>> +
>> +    /*
>> +     * VMID generations are 64 bit.  Overflow of generations never happens.
>> +     * For safety, we simply disable ASIDs, so correctness is established; it
>> +     * only runs a bit slower.
>> +     */
>> +    printk("%s: VMID generation overrun. Disabling VMIDs.\n", __func__);
> Is logging of the function name of any value here?

Agree, there is no any sense for the logging of the function name.

>   Also, despite the x86
> original havinbg it like this - generally no full stops please if log
> messages. "VMID generation overrun; disabling VMIDs\n" would do.

Sure, I will drop it and will try to not add it in such cases. But could you
please remind (if I asked that before) me what is the reason why full stop
shouldn't be presented in such cases?

>> +bool vmid_handle_vmenter(struct vcpu_vmid *vmid)
>> +{
>> +    struct vmid_data *data = &this_cpu(vmid_data);
>> +
>> +    /* Test if VCPU has valid VMID. */
> x86 has a ->disabled check up from here; why do you not check ->used?

The x86 comment confused me, at first I thought the check was related to
erratum #170, but now I see that it might actually be useful here, so I'll add:
     if ( !data->used )
         goto disabled;

Thanks.

~ Oleksii

--------------ihJQpW5AIiAsY4FgPUKoUE3H
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/6/25 3:05 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:7e9671b3-6972-45b8-9cba-4447fa802fe2@suse.com">
      <pre wrap="" class="moz-quote-pre">On 20.10.2025 17:57, Oleksii Kurochko wrote:

+static unsigned int vmidlen_detect(void)
+{
+    unsigned int vmid_bits;
+
+    /*
+     * According to the RISC-V Privileged Architecture Spec:
+     *   When MODE=Bare, guest physical addresses are equal to supervisor
+     *   physical addresses, and there is no further memory protection
+     *   for a guest virtual machine beyond the physical memory protection
+     *   scheme described in Section "Physical Memory Protection".
+     *   In this case, the remaining fields in hgatp must be set to zeros.
+     * Thereby it is necessary to set gstage_mode not equal to Bare.
+     */
+    ASSERT(gstage_mode != HGATP_MODE_OFF);
+    csr_write(CSR_HGATP,
+              MASK_INSR(gstage_mode, HGATP_MODE_MASK) | HGATP_VMID_MASK);
+    vmid_bits = MASK_EXTR(csr_read(CSR_HGATP), HGATP_VMID_MASK);
+    vmid_bits = flsl(vmid_bits);
+    csr_write(CSR_HGATP, _AC(0, UL));
+
+    /*
+     * From RISC-V spec:
+     *   Speculative executions of the address-translation algorithm behave as
+     *   non-speculative executions of the algorithm do, except that they must
+     *   not set the dirty bit for a PTE, they must not trigger an exception,
+     *   and they must not create address-translation cache entries if those
+     *   entries would have been invalidated by any SFENCE.VMA instruction
+     *   executed by the hart since the speculative execution of the algorithm
+     *   began.
+     *
+     * Also, despite of the fact here it is mentioned that when V=0 two-stage
+     * address translation is inactivated:
+     *   The current virtualization mode, denoted V, indicates whether the hart
+     *   is currently executing in a guest. When V=1, the hart is either in
+     *   virtual S-mode (VS-mode), or in virtual U-mode (VU-mode) atop a guest
+     *   OS running in VS-mode. When V=0, the hart is either in M-mode, in
+     *   HS-mode, or in U-mode atop an OS running in HS-mode. The
+     *   virtualization mode also indicates whether two-stage address
+     *   translation is active (V=1) or inactive (V=0).
+     * But on the same side, writing to hgatp register activates it:
+     *   The hgatp register is considered active for the purposes of
+     *   the address-translation algorithm unless the effective privilege mode
+     *   is U and hstatus.HU=0.
+     *
+     * Thereby it leaves some room for speculation even in this stage of boot,
+     * so it could be that we polluted local TLB so flush all guest TLB.
+     */
+    local_hfence_gvma_all();
</pre>
      <pre wrap="" class="moz-quote-pre">That's a lot of redundancy with gstage_mode_detect(). The function call here
actually renders the one there redundant, afaict. Did you consider putting a
single instance at the end of it in pre_gstage_init()? Otherwise at least
don't repeat the comment here, but merely point at the other one?</pre>
    </blockquote>
    <pre>Agree, it could be moved to the end of pre_gstage_init().</pre>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:7e9671b3-6972-45b8-9cba-4447fa802fe2@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    return vmid_bits;
+}
+
+void vmid_init(void)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">This (and its helper) isn't __init because you intend to also call it during
bringup of secondary processors?</pre>
    </blockquote>
    <pre>Yes, I wasn't able to find that VMIDLEN is guaranteed to be same for all
harts.

</pre>
    <blockquote type="cite"
      cite="mid:7e9671b3-6972-45b8-9cba-4447fa802fe2@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    unsigned int vmid_len = vmidlen_detect();
+    struct vmid_data *data = &amp;this_cpu(vmid_data);
+
+    BUILD_BUG_ON((HGATP_VMID_MASK &gt;&gt; HGATP_VMID_SHIFT) &gt;
+                 (BIT((sizeof(data-&gt;max_vmid) * BITS_PER_BYTE), UL) - 1));
+
+    data-&gt;max_vmid = BIT(vmid_len, U) - 1;
+    data-&gt;used = opt_vmid &amp;&amp; (vmid_len &gt; 1);
+
+    if ( g_vmid_used &lt; 0 )
+    {
+        g_vmid_used = data-&gt;used;
+        printk("VMIDs use is %sabled\n", data-&gt;used ? "en" : "dis");
+    }
+    else if ( g_vmid_used != data-&gt;used )
+        printk("CPU%u: VMIDs use is %sabled\n", smp_processor_id(),
+               data-&gt;used ? "en" : "dis");
+
+    /* Zero indicates 'invalid generation', so we start the count at one. */
+    data-&gt;generation = 1;
+
+    /* Zero indicates 'VMIDs use disabled', so we start the count at one. */
+    data-&gt;next_vmid = 1;
+}
+
+void vmid_flush_vcpu(struct vcpu *v)
+{
+    write_atomic(&amp;v-&gt;arch.vmid.generation, 0);
+}
+
+void vmid_flush_hart(void)
+{
+    struct vmid_data *data = &amp;this_cpu(vmid_data);
+
+    if ( !data-&gt;used )
+        return;
+
+    if ( likely(++data-&gt;generation != 0) )
+        return;
+
+    /*
+     * VMID generations are 64 bit.  Overflow of generations never happens.
+     * For safety, we simply disable ASIDs, so correctness is established; it
+     * only runs a bit slower.
+     */
+    printk("%s: VMID generation overrun. Disabling VMIDs.\n", __func__);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Is logging of the function name of any value here?</pre>
    </blockquote>
    <pre>Agree, there is no any sense for the logging of the function name.

</pre>
    <blockquote type="cite"
      cite="mid:7e9671b3-6972-45b8-9cba-4447fa802fe2@suse.com">
      <pre wrap="" class="moz-quote-pre"> Also, despite the x86
original havinbg it like this - generally no full stops please if log
messages. "VMID generation overrun; disabling VMIDs\n" would do.</pre>
    </blockquote>
    <pre>Sure, I will drop it and will try to not add it in such cases. But could you
please remind (if I asked that before) me what is the reason why full stop
shouldn't be presented in such cases?

</pre>
    <blockquote type="cite"
      cite="mid:7e9671b3-6972-45b8-9cba-4447fa802fe2@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+bool vmid_handle_vmenter(struct vcpu_vmid *vmid)
+{
+    struct vmid_data *data = &amp;this_cpu(vmid_data);
+
+    /* Test if VCPU has valid VMID. */
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">x86 has a -&gt;disabled check up from here; why do you not check -&gt;used?</pre>
    </blockquote>
    <pre>The x86 comment confused me, at first I thought the check was related to
erratum #170, but now I see that it might actually be useful here, so I'll add:
    if ( !data-&gt;used )
        goto disabled;

Thanks.

~ Oleksii</pre>
  </body>
</html>

--------------ihJQpW5AIiAsY4FgPUKoUE3H--


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 10:31:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 10:31:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162400.1490054 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJr58-0007xa-T7; Fri, 14 Nov 2025 10:31:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162400.1490054; Fri, 14 Nov 2025 10:31:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJr58-0007xT-QF; Fri, 14 Nov 2025 10:31:06 +0000
Received: by outflank-mailman (input) for mailman id 1162400;
 Fri, 14 Nov 2025 10:31:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=leFb=5W=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vJr57-0007xN-Cq
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 10:31:05 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 03292a91-c145-11f0-980a-7dc792cee155;
 Fri, 14 Nov 2025 11:31:00 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4775638d819so10460085e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 14 Nov 2025 02:31:00 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4778c8a9456sm83391575e9.15.2025.11.14.02.30.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 14 Nov 2025 02:30: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: 03292a91-c145-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763116259; x=1763721059; 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=Q4XTyr1X5g+kIeBZj9JdNZ/buVbiw85bDIPMzT1dQ5g=;
        b=WJg7SpOxWvPCBsM0e65hFKfIipA8xdc1YUtriW4IOB9HMmE5BiXUI8DTBiNQY8yEGk
         cJ/JTcH4shjXxfIJAca6JCQO1TNRfr8kRWvn58+RPEO8MvUBXumyuo/JevZaDq/0qH/z
         Otxn0kHXbYJI+xeZQ/qG01B8fwBNBy2tt7O8nS8HXG+KOCqzs9Kl92f+Sz48TV9Og+x4
         TUh1uQPho5eHsoE0fdvorkQy5lyyCfPXRtQzY6TFhRUQKC0eGp4AzyQzD3zgWBK+Qt7o
         lgagvQ64X6gVK5bL3ev9++OfrmOr8bstI5FpMvxE/Hb7eLpJNVQgY7M8fFVJVqiqEVD3
         a7Yw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763116259; x=1763721059;
        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=Q4XTyr1X5g+kIeBZj9JdNZ/buVbiw85bDIPMzT1dQ5g=;
        b=BfOsIHczdTVvrlYfosNhE7VYUnph+wAhETuXnKFHY0qphrOPwhbE0BxHh3kF9FbInG
         dQY9izRy6t2C3olu9s9wApQb14hvksmJUTzXP5Fv9jupqi+PyIEGHGn1C3wtJ6e0su3a
         z97PoQf03iFb3AC6dJhSgvjNk37MK9XRZoe0FMjpfCr11/bY4iiNQzNt5rxosCaUm7bl
         Wd/fM2i/Jx371p8pEtY+h6gYVlBXK3fgKxLreJKOyHmwgw4DLf5f4JaTLNS6jiV3yGpm
         dXFYCsZVbcOkA5623q8XuNHTjaR43p/9EkT7IybiBO2vMIGLGeeE6KMK9k/9jwlmb1dP
         Nnnw==
X-Forwarded-Encrypted: i=1; AJvYcCUUlGN59+ut5mwpt3mffZXCvtLEe3hLbrkkXEqdMr+GOpDAA5iDeAoU75/WqsTt5dsCS7hZeqz4Ns4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyuu4VkVIVHHWLAVMVBaSkSC+8dTWHwWuQ1qYB+eLcHInQGhYSa
	JHEBUmr3LG/uYeRxny1I5Ajvp34Hp0UMZoje57NjF4/AwKdNmPf/KWjS0au1SNxbeYo=
X-Gm-Gg: ASbGncv/cVVqg1OjrM30ZtvhBP+T2Rn4FFNsBrqgcMpz+VMYXn2gF35HDDcHS/3YyqA
	bDnEnyjY37lUTSoM2PCdS5dJ1x6ZFZpCnpaSoFlXzgP9dlHh0TBNoHUXxBn1Lx6m+7vNbKoiaCS
	IiThI4zce9TK9BIAAA9+gDN8ypQu0eARCiKUg8GMKmYEq3QiTJi8cfXsnNXAnp1FZ7AndJbLMR/
	UVpQUd3mrQC4DidGsWVRIFTnpGu+9C5Duz2VtZ6TPm83Bnqcg1J44NIwrq/UnS/KO17wKxtD7gE
	g6jBe4oW6E1Ww46bOD3WZidsWGQq/9frWiuKwgfueSH8K6bqzqot6W/zA2t7LEHvOsBeiXoallZ
	BsY3qFsj/0IjfdIbO8G3d3dL0i0UbwOah4CSKXAIoHFNI/XqW3m5EV7G+vgHR3Ru+Xq+JWd8Olj
	g9yxIxzEbkbSgwskHgSXmXoVHCWmgGJVx0Sf4uMliJYHqPGfOiQUVjl/4repANsNNSDu6sL2pOc
	fh7/CPauiKbraAPkKTmlODMRSC1fRfI+xaAZMA1RkCHtRWcow==
X-Google-Smtp-Source: AGHT+IGLRkq7AR6foWz/NxVZOn39SbSF5tmr0epwVsPn7nJoDvuq2dXw1SbrCJcg8JDpU4nrAoNTdQ==
X-Received: by 2002:a05:600c:3b19:b0:46e:4246:c90d with SMTP id 5b1f17b1804b1-4778fe68378mr22128845e9.11.1763116259368;
        Fri, 14 Nov 2025 02:30:59 -0800 (PST)
Message-ID: <d8821c62-f075-4ff3-b538-e5ee300141b0@suse.com>
Date: Fri, 14 Nov 2025 11:30:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/5] config: remove unused paths from config/Paths.mk.in
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20251111161959.13667-1-jgross@suse.com>
 <20251111161959.13667-5-jgross@suse.com>
 <4cfc4f5b-1d7e-4f69-9bfd-99ac0f65ac97@suse.com>
 <5bb5c2d8-53bd-4669-9238-6ae8ab8d349c@suse.com>
 <870d7330-5563-4c45-8a45-03734e75d92b@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: <870d7330-5563-4c45-8a45-03734e75d92b@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------PZLLrvF7rDr27I6gTBkCYNC1"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------PZLLrvF7rDr27I6gTBkCYNC1
Content-Type: multipart/mixed; boundary="------------M0G8WCJinJoSo0B3WlYN9zHT";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
Message-ID: <d8821c62-f075-4ff3-b538-e5ee300141b0@suse.com>
Subject: Re: [PATCH 4/5] config: remove unused paths from config/Paths.mk.in
References: <20251111161959.13667-1-jgross@suse.com>
 <20251111161959.13667-5-jgross@suse.com>
 <4cfc4f5b-1d7e-4f69-9bfd-99ac0f65ac97@suse.com>
 <5bb5c2d8-53bd-4669-9238-6ae8ab8d349c@suse.com>
 <870d7330-5563-4c45-8a45-03734e75d92b@citrix.com>
In-Reply-To: <870d7330-5563-4c45-8a45-03734e75d92b@citrix.com>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------M0G8WCJinJoSo0B3WlYN9zHT
Content-Type: multipart/mixed; boundary="------------MgMECj8KC11SpExay2YBSNYf"

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

T24gMTMuMTEuMjUgMjA6NTgsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDEzLzExLzIw
MjUgNTowMiBwbSwgSmFuIEJldWxpY2ggd3JvdGU6DQo+PiBPbiAxMy4xMS4yMDI1IDE3OjU5
LCBKYW4gQmV1bGljaCB3cm90ZToNCj4+PiBPbiAxMS4xMS4yMDI1IDE3OjE5LCBKdWVyZ2Vu
IEdyb3NzIHdyb3RlOg0KPj4+PiAtLS0gYS9jb25maWcvUGF0aHMubWsuaW4NCj4+Pj4gKysr
IGIvY29uZmlnL1BhdGhzLm1rLmluDQo+Pj4+IEBAIC0yMCwxMCArMjAsNyBAQCBsaWJleGVj
ZGlyICAgICAgICAgICAgICAgOj0gQGxpYmV4ZWNkaXJADQo+Pj4+ICAgZGF0YXJvb3RkaXIg
ICAgICAgICAgICAgIDo9IEBkYXRhcm9vdGRpckANCj4+Pj4gICBtYW5kaXIgICAgICAgICAg
ICAgICAgICAgOj0gQG1hbmRpckANCj4+Pj4gICBkb2NkaXIgICAgICAgICAgICAgICAgICAg
Oj0gQGRvY2RpckANCj4+Pj4gLWR2aWRpciAgICAgICAgICAgICAgICAgICA6PSBAZHZpZGly
QA0KPj4+PiAgIGh0bWxkaXIgICAgICAgICAgICAgICAgICA6PSBAaHRtbGRpckANCj4+Pj4g
LXBkZmRpciAgICAgICAgICAgICAgICAgICA6PSBAcGRmZGlyQA0KPj4+IFF1ZXN0aW9uIGlz
IHdoZXRoZXIgd2UncmUgbWlzdGFrZW5seSBub3QgcmVzcGVjdGluZyBpbiBwYXJ0aWN1bGFy
IHRoaXMgb25lLA0KPj4+IGZvciB0aGUgKi5wZGYgd2UgY3JlYXRlLiBGb3IgYWxsIHRoZSBv
dGhlcnMgSSBhZ3JlZSB0aGVyZSdzIG5vIChwcmVzZW50IG9yDQo+Pj4gcG90ZW50aWFsKSB1
c2UuIEkgbm90aWNlIHRob3VnaCB0aGF0IGRvY3MvTWFrZWZpbGUgY2xlYW5zIGUuZy4gKi5k
dmkNCj4+PiBuZXZlcnRoZWxlc3MuDQo+PiBBY3R1YWxseSwgSSBjYW4ndCBzcG90IGEgdXNl
IG9mIGh0bWxkaXIgZWl0aGVyLCB3aGVuIGxpa2VseSB3ZSBzaG91bGQgcmVzcGVjdA0KPj4g
dGhhdCBvbmUsIHRvby4NCj4gDQo+IEJlc2lkZXMgdGhlIG1hbnBhZ2VzLCBub3RoaW5nIGdl
bmVyYXRlZCBpbiBkb2NzLyBpcyByZWFsbHkgZml0IHRvDQo+IHBhY2thZ2UgZm9yIGVuZCB1
c2Vycy7CoCBUaGVyZSdzIG5vIGNvaGVyZW50IHN0cnVjdHVyZSwgc29tZSBvZiBpdCBpcw0K
PiBzdHJhaWdodCBicmFpbmR1bXBzIGZyb20gZGV2ZWxvcGVycy4NCj4gDQo+IGRvY2RpciBp
cyBvbmx5IHVzZWQgYnkgdGhlIHt1bix9aW5zdGFsbC1odG1sIHRhcmdldHMgKG9wZW5jb2Rp
bmcNCj4gaHRtbGRpciksIGFuZCB0aGUgcm0gaW4gdGhlIGluc3RhbGwgdGFyZ2V0IGlzIGZ1
cnRoZXIgZXZpZGVuY2UgdG8gdGhlDQo+IHVuc3VpdGFiaWxpdHkgb2Ygd2hhdCdzIHRoZXJl
Lg0KPiANCj4gSSdkIGdvIHNvIGZhciBhcyB0byBzdWdnZXN0IHdlIHNob3VsZCBkcm9wIGlu
c3RhbGwtaHRtbCwgZXhjZXB0IHRoYXQgaXQNCj4gd291bGQgYnJlYWsgdGhlIGdlbmVyYXRp
b24gb2YgaHR0cHM6Ly94ZW5iaXRzLnhlbi5vcmcvZG9jcy91bnN0YWJsZS8NCg0KSSB0aGlu
ayBJJ2xsIGxlYXZlIGZ1cnRoZXIgY2xlYW51cCBmb3IgYW5vdGhlciBwYXRjaC4NCg0KQXMg
eW91IHNhaWQsIGRvY2RpciBpcyBiZWluZyB1c2VkIHJpZ2h0IG5vdyBhbmQgaHRtbGRpciBj
b3VsZCBiZSB1c2VkIGluDQpjYXNlIHRoZSBvcGVuIGNvZGluZyB2aWEgZG9jZGlyIGlzIGJl
aW5nIGNsZWFuZWQgdXAuDQoNCg0KSnVlcmdlbg0K
--------------MgMECj8KC11SpExay2YBSNYf
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-----

--------------MgMECj8KC11SpExay2YBSNYf--

--------------M0G8WCJinJoSo0B3WlYN9zHT--

--------------PZLLrvF7rDr27I6gTBkCYNC1
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/Ey8FAmkXBOIFAwAAAAAACgkQsN6d1ii/Ey8+
zgf+PAQnakVtsCAFtvvOiMxxGShuS8vWuMODPMrAXfV+bK1Uv11mXnutEWqWSGSO3QmuTXGf+vu1
sWBGx332qauvoaF+Pfzj827cgzYjJ4IMjwhZh2msD4BSAQnonzgo8+Lw2Ck/Gd/6sTwCsqy+hd0w
rilR+244svy+3OwLvgMHYqPFa17LoKkWgI93zOHhTo4CmM6/cfbhLi5wwmAQOHcFpV082RbmK/JW
ypn3MHl6uEJzdA0AJVfdhgtMRKoSASnYylshMWpoqdws2OAy+g/4WVpT3PnA84kuU3B5WGFEIvhT
9yQ0u3UsJ5xomVoPEF+QxQ9JcwUMAY/2xSKBb4imsA==
=ayam
-----END PGP SIGNATURE-----

--------------PZLLrvF7rDr27I6gTBkCYNC1--


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 10:34:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 10:34:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162413.1490064 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJr8K-0000KE-B7; Fri, 14 Nov 2025 10:34:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162413.1490064; Fri, 14 Nov 2025 10: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 1vJr8K-0000K7-7l; Fri, 14 Nov 2025 10:34:24 +0000
Received: by outflank-mailman (input) for mailman id 1162413;
 Fri, 14 Nov 2025 10: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=leFb=5W=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vJr8I-0000Jx-RG
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 10:34:22 +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 7b651152-c145-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 11:34:21 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b727f452fffso474476866b.1
 for <xen-devel@lists.xenproject.org>; Fri, 14 Nov 2025 02:34:21 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fd809d2sm360738566b.42.2025.11.14.02.34.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 14 Nov 2025 02: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: 7b651152-c145-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763116461; x=1763721261; 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=zg0HiBDncMCTVU0rpTCAZdHLTsT/iB7DFrfe7KE75z0=;
        b=SafpMpCZoWRErUSY+dK5T6zSvhKYmnuRug71c+cNJvPVRNQRy5NAxTk9yQTzoJIW4+
         hwxW3981Ka1eEYx2BIGxY5VwPVSoKXS2NWUgky9OU2QS5rDAv64ppft9Ncv6aJy4rntG
         tTIttPwFaQX8uIsDuUEIdfKFw4AAqTZCdbO/anpJWvji/fUvzwVTbh8Cw7XcPydJ33bQ
         SqFByo+kHssZGV5Hr6FIGO0L3NcvXGa46o8vmRt+n+rHxnS9qEZ4YAdxXtnmw9bQ9mNm
         g51RA3jepITRG/1iEe0s8Xfu7fz63hQHs2fccU/PjXyrfjB7ESJ3yPZg8MIEf/+90w+a
         7ZRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763116461; x=1763721261;
        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=zg0HiBDncMCTVU0rpTCAZdHLTsT/iB7DFrfe7KE75z0=;
        b=soXROJP4BM4BAweoLXrvKmxq7Usq9HGtrnb7BLN0vX2ligMnlOjIqq2gBOn0QmBEUX
         x+RWNWxM01cHY3p7Cl4OVA5pnP/2jTNP+25NcfXfZUva4N6fCVqON1A8J4ghCCGQ/CJE
         qNkJb57WY9WqIDinWjKaoBSwLD9H0dX+bHau2LoofDubBc0IByKCdBTU2RUZPIzWj/CW
         lvbWYFX9SkH3JEQLN2stPb8c5AfIcTEN82RwjmSop5TeIZq/KiblClKnypPZWRQ2RkJV
         tDBc7DJqKJV3Hd5QVOkzfeGmIUqcDtJsZNIzBSKiHIL3lCh/GXGF8H/SR1ytCGVxrkWM
         LwHw==
X-Forwarded-Encrypted: i=1; AJvYcCWwCLixjeZY4uxNSTNq5MHXFmEhvaVajwj6WTh8EnTjkLRLX18CLLhVqnuNVtuNUwJ5Bf+9/C8PXgE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy3j7lFVIISEOJr6tJn7owkZnJyZO1Ger40RETWgpuBJuRYVwUH
	FC1fTbg7sR3aDwze1SlRoLMAZhyuUF9gpIo4BU1X6xo1rj6mjq0CJ7lQ2mBrzT6qxio=
X-Gm-Gg: ASbGncth4ZYRfSDzx2TSne7DFW60rr9FJlY1iyJu3q4ebeEBdVzeUkWbVl2R4WfOaxJ
	aa9pMW2mu1OUyH3qmpaHhblb2SFvzZPbbJAGLwg7L9fCodIpuTIkMoQwX2rYSNqVkseILGrCgN2
	nX7puDV8GLcYtAdbc9K2Tfnf0HUDc2lAREelQr5hgxtMHrni9c4nRaZdNRSLc3XDk7yzAjNrN7h
	0GkW0Oi/TwPEJFbBAlvQi7c8AloTo9vw7ylOw0SaePOPEgy2gVS82Xme1d9XHT3hG7Gxum2k2Pv
	gei76o1Ujxgg5SQElIi2kovfCFkuORDZB6UeB63K5Rnhs02UKJWuM80xPTsWmdoMVTqQt3nVjSz
	t3h53sbRVxx/RHa8t5D702TJIPgDC2yVQb+WMeFFR63vnlFoeFjSlPt3uiOvuhePRWN/QOCCVpx
	r7Jlrcw0j5bkabnCVx9aF8jU6n+mdVdj/78rZt4U0QhrUYvrkqZkngjGIa2ORicTLOJtUfme87Z
	o6HCuI1UB+lPNOOrjoeyEejK824NPQmnK9jhBM=
X-Google-Smtp-Source: AGHT+IFJdOlEUK8TzwBE+FtsL/uI9X7qMbLq3CZzC7I6xuGVUwWsRDsytGZbNypxwsRNiJEt578SFg==
X-Received: by 2002:a17:907:6d06:b0:b4a:e7c9:84c1 with SMTP id a640c23a62f3a-b7365749f00mr315514666b.7.1763116461069;
        Fri, 14 Nov 2025 02:34:21 -0800 (PST)
Message-ID: <6e5267ef-f2d8-4a59-b3d0-63a478963803@suse.com>
Date: Fri, 14 Nov 2025 11:34:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/5] config: remove unused paths from config/Paths.mk.in
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20251111161959.13667-1-jgross@suse.com>
 <20251111161959.13667-5-jgross@suse.com>
 <4cfc4f5b-1d7e-4f69-9bfd-99ac0f65ac97@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: <4cfc4f5b-1d7e-4f69-9bfd-99ac0f65ac97@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------XiCnquZ90YnCqcD09Jf8tXHj"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------XiCnquZ90YnCqcD09Jf8tXHj
Content-Type: multipart/mixed; boundary="------------nm9uwfWCEsu81WLQ6t5mpIN0";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
Message-ID: <6e5267ef-f2d8-4a59-b3d0-63a478963803@suse.com>
Subject: Re: [PATCH 4/5] config: remove unused paths from config/Paths.mk.in
References: <20251111161959.13667-1-jgross@suse.com>
 <20251111161959.13667-5-jgross@suse.com>
 <4cfc4f5b-1d7e-4f69-9bfd-99ac0f65ac97@suse.com>
In-Reply-To: <4cfc4f5b-1d7e-4f69-9bfd-99ac0f65ac97@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=

--------------nm9uwfWCEsu81WLQ6t5mpIN0
Content-Type: multipart/mixed; boundary="------------YugdIafSZ0KuW30x07kMKt36"

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

T24gMTMuMTEuMjUgMTc6NTksIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxMS4xMS4yMDI1
IDE3OjE5LCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gLS0tIGEvY29uZmlnL1BhdGhzLm1r
LmluDQo+PiArKysgYi9jb25maWcvUGF0aHMubWsuaW4NCj4+IEBAIC0yMCwxMCArMjAsNyBA
QCBsaWJleGVjZGlyICAgICAgICAgICAgICAgOj0gQGxpYmV4ZWNkaXJADQo+PiAgIGRhdGFy
b290ZGlyICAgICAgICAgICAgICA6PSBAZGF0YXJvb3RkaXJADQo+PiAgIG1hbmRpciAgICAg
ICAgICAgICAgICAgICA6PSBAbWFuZGlyQA0KPj4gICBkb2NkaXIgICAgICAgICAgICAgICAg
ICAgOj0gQGRvY2RpckANCj4+IC1kdmlkaXIgICAgICAgICAgICAgICAgICAgOj0gQGR2aWRp
ckANCj4+ICAgaHRtbGRpciAgICAgICAgICAgICAgICAgIDo9IEBodG1sZGlyQA0KPj4gLXBk
ZmRpciAgICAgICAgICAgICAgICAgICA6PSBAcGRmZGlyQA0KPiANCj4gUXVlc3Rpb24gaXMg
d2hldGhlciB3ZSdyZSBtaXN0YWtlbmx5IG5vdCByZXNwZWN0aW5nIGluIHBhcnRpY3VsYXIg
dGhpcyBvbmUsDQo+IGZvciB0aGUgKi5wZGYgd2UgY3JlYXRlLg0KV2UgY291bGQgYXMgd2Vs
bCB1c2UgZG9jZGlyIGZvciBQREZzLCByaWdodD8NCg0KSW4gY2FzZSB3ZSByZWFsbHkgd2Fu
dCBwZGZkaXIgbGF0ZXIgd2UgY2FuIGVhc2lseSByZS1hZGQgaXQuDQoNCg0KSnVlcmdlbg0K

--------------YugdIafSZ0KuW30x07kMKt36
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-----

--------------YugdIafSZ0KuW30x07kMKt36--

--------------nm9uwfWCEsu81WLQ6t5mpIN0--

--------------XiCnquZ90YnCqcD09Jf8tXHj
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/Ey8FAmkXBawFAwAAAAAACgkQsN6d1ii/Ey+X
LQf+JTNWbLD7kBDv5JX/YmevC3W8G61V9FFHWAIMicMzn2oqLoQ0gNQZ/UNw+RavmtJjD+37Mog9
Y3XeyFSootUT7/NgkqrfmKHNqkzaaRikQ9yvZ5IhlkkybI+0RUfcr/RPNpaocTf1M131ssLGv2ml
FsgFqur6++xHOUzgVqMmIJGUaZJ/X67RAefaF4NXmYIPjC7oSznEs7eKcqBxEvXBTK+ghueRzpg2
/FecttjGUjAu5ctKJaJhUTolbRVZtSQ3EROFY6WRaiHYmLMjSCLL1SxdIXRy70ehkN2OcyvhHVgk
VQj7poNjCfkWDe7g7Wj9hm5Cn8YFkMa1lPr+4PtEEQ==
=i4bS
-----END PGP SIGNATURE-----

--------------XiCnquZ90YnCqcD09Jf8tXHj--


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 10:53:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 10:53:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162431.1490074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJrQb-0003jC-Vs; Fri, 14 Nov 2025 10:53:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162431.1490074; Fri, 14 Nov 2025 10:53: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 1vJrQb-0003j5-SC; Fri, 14 Nov 2025 10:53:17 +0000
Received: by outflank-mailman (input) for mailman id 1162431;
 Fri, 14 Nov 2025 10:53:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0Jk/=5W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vJrQa-0003iz-Sg
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 10:53:16 +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 1e68afd0-c148-11f0-980a-7dc792cee155;
 Fri, 14 Nov 2025 11:53:14 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b736f48ba11so67903866b.0
 for <xen-devel@lists.xenproject.org>; Fri, 14 Nov 2025 02:53:14 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fd80d27sm364008066b.40.2025.11.14.02.53.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 14 Nov 2025 02:53: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: 1e68afd0-c148-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763117593; x=1763722393; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5V7mv1vGxOoWeS9uVdylVzDenuHgS3a4X+a5k9O3FiI=;
        b=UuxhiBk1VwoCn3rQmksjHH3D601xiF0lsTIJ5iEv+Vc/d1grU8P2Hg/vAJ/zVyoPgc
         7qevH5tM2PYBcIBYkjVpbkiynPX/W3M36X8txbQqWgg9vgfQw9SYUUQ7szm3mX0mj0Xx
         MA6+GQq5SBH+EX3j6CG6k3WBnerwUJGC440sy68IXNdNwCqwaumbrfp2nr+iInaE2uYr
         tmjNDe956g3He4p4GVdxjs3PFGzWqnGI/ryE6J9WOhXwE/oCICifKUFGPG0wlaXQ6+X8
         tFidiKDzFzZ6M77GWzokziOgnhjAGW/F1CNKbrtqkXUl7PjIPpde6Jmk0qm2sbnUWWpX
         CjRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763117593; x=1763722393;
        h=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=5V7mv1vGxOoWeS9uVdylVzDenuHgS3a4X+a5k9O3FiI=;
        b=aG3JMFg7eF/WQANhxVI410fVdtGudDsBPk1Q+2NdfXOPW9/qY8NB+6djpoB9rVfdKQ
         Hb5mRsB2OXYiqsekXqpaCQ5yelO9UsW5AzDkYGK63pmeQzzSDUYIGe3k0NfmV9B8ELMq
         PW+HlXaiCHd5hDva6LtJDU6RsgJYPaT/TC7aPUWRw+iY6xAmG8G9eho9gldVk6wP784o
         UijFWMeF0KFZnlpM9hCNDxTKrwmAJ58nk+X2gzdbjCOPCa5tiS5r08vUxn09SbqSDnUe
         dXhOz+c5brpCqazPlTEYumZUfI9L5Q7TZ1PgemFpE/NCVKKIT8bTo/CfJUpJRkAIv048
         lY0Q==
X-Forwarded-Encrypted: i=1; AJvYcCUnBGj/padFhWBLrZJDQ3I6Tb8k2mSfTYq7Y955CVfEcWorGOnhBgwjxcuObIqqSi7lXALgWO/kyI8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YygcYHvxq4NGu1WjwgpYSeMLHsVlMAoWihl/xTbc1nvbcg5Nvr8
	o0gR4ABWsCUmxo6T3n/xCZGhhlq2Jw3quvrZRZ/e2dyl3fwLF+YWowG0
X-Gm-Gg: ASbGncsDMAKwx94KTc8RcHZC8IWVHm8wMkE+KKpqqIlsrg85QP2Jsl5DPJNXihxyQ1G
	aWccOy/OqFpAAMLivMTqqsen3OhdkYx1p7WfyQ6Pf8tk0dFIx2xam+EkbRdIjloXpBm6RarJAT0
	Ezw/ngADVdtZ62pC+dFYtffqwmo4pvr1jMamw8jhLyCeVQflrUuX20XoIVidVa/i3JYRbYPwfTs
	y0Ss4f492EqjE6zcCycW3/fTniOobf3gLG55aAnDHQxPd3jdK3dQZxnNeBX2NbYAA6jeVXG3BaA
	NShNKo51raZBWd0Q+GLiucslnP50qvaCJIV83PJAMyiRdF8YuoX4VOnl6cprsfA3iZR6rbzgUKR
	rb5Phb5n7YszMrv40e6yTis62o+0cXo2DXOxKXDqVP2cuE3IfN/tMQliKtaApYtlQJl6vw9zV7Y
	GQeTO42tWiB3c8riIfQfC7j3h0O+GfDo6rL7yw4auz7EnXeY3X1Q09H288Ltsl
X-Google-Smtp-Source: AGHT+IFI8IMKoO28IfpyC1blhhD57+9yA/bF2Qu+a49BlFC8Cclg9xDc6PpgUl+2bw5S30t/Z0coDQ==
X-Received: by 2002:a17:907:97c1:b0:b3f:331a:a982 with SMTP id a640c23a62f3a-b736574ad17mr313077366b.6.1763117593263;
        Fri, 14 Nov 2025 02:53:13 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------IXAY3hEUhsmLqAcRZdbuQEby"
Message-ID: <d114e2ef-3f33-4c3b-8782-44fbddf7eaa9@gmail.com>
Date: Fri, 14 Nov 2025 11:53:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 05/18] xen/riscv: add root page table allocation
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <81d36dc5277d4756442f3ad5d64f37148787394a.1760974017.git.oleksii.kurochko@gmail.com>
 <8e3b791c-22ca-43e2-a3bf-f440032ab1ed@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <8e3b791c-22ca-43e2-a3bf-f440032ab1ed@suse.com>

This is a multi-part message in MIME format.
--------------IXAY3hEUhsmLqAcRZdbuQEby
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 11/6/25 3:25 PM, Jan Beulich wrote:
> On 20.10.2025 17:57, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -3,6 +3,7 @@
>>   #include <xen/init.h>
>>   #include <xen/lib.h>
>>   #include <xen/macros.h>
>> +#include <xen/domain_page.h>
>>   #include <xen/mm.h>
>>   #include <xen/paging.h>
>>   #include <xen/rwlock.h>
>> @@ -103,6 +104,70 @@ void __init pre_gstage_init(void)
>>       vmid_init();
>>   }
>>   
>> +static void clear_and_clean_page(struct page_info *page, bool clean_dcache)
>> +{
>> +    clear_domain_page(page_to_mfn(page));
>> +
>> +    /*
>> +     * If the IOMMU doesn't support coherent walks and the p2m tables are
>> +     * shared between the CPU and IOMMU, it is necessary to clean the
>> +     * d-cache.
>> +     */
>> +    if ( clean_dcache )
>> +        clean_dcache_va_range(page, PAGE_SIZE);
> This cleans part of frame_table[], but not the memory page in question.

Oh, right, we need to map the domain page first.

Would it make sense to avoid using|clear_domain_page()| in order to prevent
calling|map_domain_page()| twice (once inside|clear_domain_page()| and once
before|clean_dcache_va_range()|), and instead do it like this:
     void *p = __map_domain_page(page);

     clear_page(p);

     /*
      * If the IOMMU doesn't support coherent walks and the p2m tables are
      * shared between the CPU and IOMMU, it is necessary to clean the
      * d-cache.
      */
     if ( clean_dcache )
         clean_dcache_va_range(p, PAGE_SIZE);

     unmap_domain_page(p);

>> @@ -55,6 +76,39 @@ int paging_freelist_adjust(struct domain *d, unsigned long pages,
>>       return 0;
>>   }
>>   
>> +int paging_refill_from_domheap(struct domain *d, unsigned int nr_pages)
>> +{
>> +    ASSERT(spin_is_locked(&d->arch.paging.lock));
>> +
>> +    for ( unsigned int i = 0; i < nr_pages; i++ )
>> +    {
>> +        int rc = paging_add_page_to_freelist(d);
> The anomaly is more pronounced here, with the other function name in context:
> paging_refill_from_domheap() doesn't suggest there's a page (or several) being
> handed to it. paging_add_page_to_freelist() suggests one of its parameter
> would want to be struct page_info *. Within the naming model you chose, maybe
> paging_refill_from_domheap_one() or paging_refill_one_from_domheap()? Or
> simply _paging_refill_from_domheap()?

Thanks for suggestions. I like the option with "_*" as it is more clearly marks it
as an internal helper without introducing "_one" suffix. I will use the same approach
for paging_ret_page_to_domheap(): s/paging_ret_page_to_domheap/_paging_ret_to_domheap().

Shouldn't we use "__*" instead of "_*" or "__*" is reserved for something else? "__*" is
used quite frequent in Xen code base.

~ Oleksii


--------------IXAY3hEUhsmLqAcRZdbuQEby
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/6/25 3:25 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:8e3b791c-22ca-43e2-a3bf-f440032ab1ed@suse.com">
      <pre wrap="" class="moz-quote-pre">On 20.10.2025 17:57, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -3,6 +3,7 @@
 #include &lt;xen/init.h&gt;
 #include &lt;xen/lib.h&gt;
 #include &lt;xen/macros.h&gt;
+#include &lt;xen/domain_page.h&gt;
 #include &lt;xen/mm.h&gt;
 #include &lt;xen/paging.h&gt;
 #include &lt;xen/rwlock.h&gt;
@@ -103,6 +104,70 @@ void __init pre_gstage_init(void)
     vmid_init();
 }
 
+static void clear_and_clean_page(struct page_info *page, bool clean_dcache)
+{
+    clear_domain_page(page_to_mfn(page));
+
+    /*
+     * If the IOMMU doesn't support coherent walks and the p2m tables are
+     * shared between the CPU and IOMMU, it is necessary to clean the
+     * d-cache.
+     */
+    if ( clean_dcache )
+        clean_dcache_va_range(page, PAGE_SIZE);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
This cleans part of frame_table[], but not the memory page in question.</pre>
    </blockquote>
    <pre>Oh, right, we need to map the domain page first.

Would it make sense to avoid using <code data-start="149" data-end="170">clear_domain_page()</code> in order to prevent
calling <code data-start="199" data-end="218">map_domain_page()</code> twice (once inside <code
    data-start="238" data-end="259">clear_domain_page()</code> and once
before <code data-start="276" data-end="301">clean_dcache_va_range()</code>), and instead do it like this:
    void *p = __map_domain_page(page);

    clear_page(p);

    /*
     * If the IOMMU doesn't support coherent walks and the p2m tables are
     * shared between the CPU and IOMMU, it is necessary to clean the
     * d-cache.
     */
    if ( clean_dcache )
        clean_dcache_va_range(p, PAGE_SIZE);

    unmap_domain_page(p);

</pre>
    <blockquote type="cite"
      cite="mid:8e3b791c-22ca-43e2-a3bf-f440032ab1ed@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -55,6 +76,39 @@ int paging_freelist_adjust(struct domain *d, unsigned long pages,
     return 0;
 }
 
+int paging_refill_from_domheap(struct domain *d, unsigned int nr_pages)
+{
+    ASSERT(spin_is_locked(&amp;d-&gt;arch.paging.lock));
+
+    for ( unsigned int i = 0; i &lt; nr_pages; i++ )
+    {
+        int rc = paging_add_page_to_freelist(d);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
The anomaly is more pronounced here, with the other function name in context:
paging_refill_from_domheap() doesn't suggest there's a page (or several) being
handed to it. paging_add_page_to_freelist() suggests one of its parameter
would want to be struct page_info *. Within the naming model you chose, maybe
paging_refill_from_domheap_one() or paging_refill_one_from_domheap()? Or
simply _paging_refill_from_domheap()?</pre>
    </blockquote>
    <pre>Thanks for suggestions. I like the option with "_*" as it is more clearly marks it
as an internal helper without introducing "_one" suffix. I will use the same approach
for paging_ret_page_to_domheap(): s/paging_ret_page_to_domheap/_paging_ret_to_domheap().

Shouldn't we use "__*" instead of "_*" or "__*" is reserved for something else? "__*" is
used quite frequent in Xen code base.

~ Oleksii</pre>
    <br>
  </body>
</html>

--------------IXAY3hEUhsmLqAcRZdbuQEby--


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 11:32:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 11:32:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162446.1490083 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJs2o-0001WJ-P4; Fri, 14 Nov 2025 11:32:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162446.1490083; Fri, 14 Nov 2025 11: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 1vJs2o-0001WC-MK; Fri, 14 Nov 2025 11:32:46 +0000
Received: by outflank-mailman (input) for mailman id 1162446;
 Fri, 14 Nov 2025 11:32:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=leFb=5W=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vJs2n-0001W6-OE
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 11:32:45 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a1e56d68-c14d-11f0-980a-7dc792cee155;
 Fri, 14 Nov 2025 12:32:42 +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 6520A211D3;
 Fri, 14 Nov 2025 11:32:41 +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 0F7823EA61;
 Fri, 14 Nov 2025 11:32:41 +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 iulIAlkTF2k5SwAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 14 Nov 2025 11:32: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: a1e56d68-c14d-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763119961; 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=7/ImX0iR+crwKQx3ii+dJzPGlOJ3GjYJfoEf9hGwDww=;
	b=igQPEGr2epXwgoQuONBNNVTSsxKAyhUBOeMJhVP2RFV+3LHFa1b+bi0WyrEU8p7moJu1uT
	XjZKMGu/rB4q4QisTZm8655WwqRm26TpddFh6Ic30EO6XGDw7Rp1YSIH7NRPXJljxrCPUJ
	R2hwkR3OuPsdA461IJbnxaXU7hBo/Tk=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763119961; 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=7/ImX0iR+crwKQx3ii+dJzPGlOJ3GjYJfoEf9hGwDww=;
	b=igQPEGr2epXwgoQuONBNNVTSsxKAyhUBOeMJhVP2RFV+3LHFa1b+bi0WyrEU8p7moJu1uT
	XjZKMGu/rB4q4QisTZm8655WwqRm26TpddFh6Ic30EO6XGDw7Rp1YSIH7NRPXJljxrCPUJ
	R2hwkR3OuPsdA461IJbnxaXU7hBo/Tk=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Christian Lindig <christian.lindig@citrix.com>,
	David Scott <dave@recoil.org>
Subject: [PATCH v2 0/4] configure: reduce number of files created
Date: Fri, 14 Nov 2025 12:32:34 +0100
Message-ID: <20251114113238.9279-1-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spamd-Result: default: False [-2.80 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	ARC_NA(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	MIME_TRACE(0.00)[0:+];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCVD_TLS_ALL(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCPT_COUNT_SEVEN(0.00)[11];
	RCVD_COUNT_TWO(0.00)[2];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid]
X-Spam-Flag: NO
X-Spam-Score: -2.80

Instead of creating lots of files during configure, create those
files (where possible) rather at build time. This reduces the need
to run configure when e.g. changing a man page containing a path
defined by the configure run.

Changes in V2:
- dropped patch 1 as already applied
- no longer rename files to *.src
- don't use pattern rule

Juergen Gross (4):
  build: add make macro for making file from file.in
  docs: replace @xxx@ markers at build time
  config: remove unused paths from config/Paths.mk.in
  tools: replace @xxx@ markers at build time

 .gitignore                     |  1 +
 Config.mk                      | 13 +++++++++++++
 config/Paths.mk.in             |  5 -----
 config/Tools-paths.mk.in       | 10 ++++++++++
 docs/Makefile                  |  8 +++++++-
 docs/configure                 |  7 +------
 docs/configure.ac              |  9 +--------
 tools/configure                | 21 ++-------------------
 tools/configure.ac             | 19 +------------------
 tools/hotplug/FreeBSD/Makefile |  7 ++++++-
 tools/hotplug/Linux/Makefile   | 10 +++++++++-
 tools/hotplug/NetBSD/Makefile  |  7 ++++++-
 tools/hotplug/common/Makefile  |  7 ++++++-
 tools/ocaml/libs/xs/Makefile   |  9 +++++++++
 tools/ocaml/xenstored/Makefile |  9 ++++++++-
 15 files changed, 80 insertions(+), 62 deletions(-)
 create mode 100644 config/Tools-paths.mk.in

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 14 11:32:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 11:32:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162448.1490103 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJs2x-0001zy-7b; Fri, 14 Nov 2025 11:32:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162448.1490103; Fri, 14 Nov 2025 11:32: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 1vJs2x-0001zr-4h; Fri, 14 Nov 2025 11:32:55 +0000
Received: by outflank-mailman (input) for mailman id 1162448;
 Fri, 14 Nov 2025 11:32: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=leFb=5W=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vJs2v-0001jd-Sl
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 11:32:53 +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 a86a21ee-c14d-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 12:32:53 +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 ACB8D1F74A;
 Fri, 14 Nov 2025 11:32:52 +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 892703EA61;
 Fri, 14 Nov 2025 11:32:52 +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 5m4SIGQTF2nMSwAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 14 Nov 2025 11:32: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: a86a21ee-c14d-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763119972; 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=ULa01XMBOk0XUwU3HICTxucNohNobFgTxHDIYuvUKbA=;
	b=MKTEGOsMpXreL52gNLWhpzq0jTNC4vdCZOdVXzO2LOEkTEpVXEYrPcJ+4yEKaQC8hbcLev
	lds6WazYycnUjWVxI0+5g8KLzJ5wNXjs7+ppxAsLC04dgjDLFVmegMrglUwVd5v/BYVwqF
	7aTOnBo49CGSvoXkZNhGkrqdvYVgqnw=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763119972; 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=ULa01XMBOk0XUwU3HICTxucNohNobFgTxHDIYuvUKbA=;
	b=MKTEGOsMpXreL52gNLWhpzq0jTNC4vdCZOdVXzO2LOEkTEpVXEYrPcJ+4yEKaQC8hbcLev
	lds6WazYycnUjWVxI0+5g8KLzJ5wNXjs7+ppxAsLC04dgjDLFVmegMrglUwVd5v/BYVwqF
	7aTOnBo49CGSvoXkZNhGkrqdvYVgqnw=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2 2/4] docs: replace @xxx@ markers at build time
Date: Fri, 14 Nov 2025 12:32:36 +0100
Message-ID: <20251114113238.9279-3-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251114113238.9279-1-jgross@suse.com>
References: <20251114113238.9279-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)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCPT_COUNT_THREE(0.00)[3];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -6.80
X-Spam-Level: 

Use the apply-build-vars make macro to replace the @xxx@ markers in
*.in files only at build time.

This allows to change the affected document files without having to
run "configure" for making the change effective.

While at it add the generated files to the distclean make target.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- don't rename source files
---
 docs/Makefile     | 8 +++++++-
 docs/configure    | 7 +------
 docs/configure.ac | 9 +--------
 3 files changed, 9 insertions(+), 15 deletions(-)

diff --git a/docs/Makefile b/docs/Makefile
index 37776d303c..e5f4a8ca86 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -8,8 +8,11 @@ DATE		:= $(call date,"+%Y-%m-%d")
 DOC_ARCHES      := arm ppc riscv x86_32 x86_64
 MAN_SECTIONS    := 1 5 7 8
 
+IN_FILES := man/xl-disk-configuration.5.pod man/xl-network-configuration.5.pod
+IN_FILES += man/xl.1.pod man/xl.cfg.5.pod man/xl.conf.5.pod
+
 # Documentation sources to build
-MAN-SRC-y := $(sort $(basename $(wildcard man/*.pod man/*.pandoc)))
+MAN-SRC-y := $(sort $(basename $(wildcard man/*.pod man/*.pandoc) $(IN_FILES)))
 
 RST-SRC-y := $(sort $(filter-out %index.rst,$(shell find * -type f -name '*.rst' -print)))
 
@@ -77,11 +80,14 @@ clean: clean-man-pages
 distclean: clean
 	rm -rf $(XEN_ROOT)/config/Docs.mk config.log config.status config.cache \
 		autom4te.cache
+	rm -f $(IN_FILES)
 
 # Top level install targets
 
 .PHONY: man-pages install-man-pages clean-man-pages uninstall-man-pages
 
+$(foreach file,$(IN_FILES),$(eval $(call apply-build-vars,$(file))))
+
 # Metarules for generating manpages.  Run with $(1) substitued for section
 define GENERATE_MANPAGE_RULES
 
diff --git a/docs/configure b/docs/configure
index 98dda3cd0f..8871914dcb 100755
--- a/docs/configure
+++ b/docs/configure
@@ -1794,7 +1794,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
-ac_config_files="$ac_config_files ../config/Docs.mk man/xl.cfg.5.pod man/xl.1.pod man/xl-disk-configuration.5.pod man/xl-network-configuration.5.pod man/xl.conf.5.pod"
+ac_config_files="$ac_config_files ../config/Docs.mk"
 
 
 
@@ -3063,11 +3063,6 @@ for ac_config_target in $ac_config_targets
 do
   case $ac_config_target in
     "../config/Docs.mk") CONFIG_FILES="$CONFIG_FILES ../config/Docs.mk" ;;
-    "man/xl.cfg.5.pod") CONFIG_FILES="$CONFIG_FILES man/xl.cfg.5.pod" ;;
-    "man/xl.1.pod") CONFIG_FILES="$CONFIG_FILES man/xl.1.pod" ;;
-    "man/xl-disk-configuration.5.pod") CONFIG_FILES="$CONFIG_FILES man/xl-disk-configuration.5.pod" ;;
-    "man/xl-network-configuration.5.pod") CONFIG_FILES="$CONFIG_FILES man/xl-network-configuration.5.pod" ;;
-    "man/xl.conf.5.pod") CONFIG_FILES="$CONFIG_FILES man/xl.conf.5.pod" ;;
 
   *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
diff --git a/docs/configure.ac b/docs/configure.ac
index c2e5edd3b3..43dc516056 100644
--- a/docs/configure.ac
+++ b/docs/configure.ac
@@ -5,14 +5,7 @@ AC_PREREQ([2.67])
 AC_INIT([Xen Hypervisor Documentation], m4_esyscmd([../version.sh ../xen/Makefile]),
     [xen-devel@lists.xen.org], [xen], [https://www.xen.org/])
 AC_CONFIG_SRCDIR([misc/xen-command-line.pandoc])
-AC_CONFIG_FILES([
-../config/Docs.mk
-man/xl.cfg.5.pod
-man/xl.1.pod
-man/xl-disk-configuration.5.pod
-man/xl-network-configuration.5.pod
-man/xl.conf.5.pod
-])
+AC_CONFIG_FILES([../config/Docs.mk])
 AC_CONFIG_AUX_DIR([../])
 
 # M4 Macro includes
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 14 11:32:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 11:32:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162447.1490094 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJs2s-0001k4-0F; Fri, 14 Nov 2025 11:32:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162447.1490094; Fri, 14 Nov 2025 11:32:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJs2r-0001jx-TC; Fri, 14 Nov 2025 11:32:49 +0000
Received: by outflank-mailman (input) for mailman id 1162447;
 Fri, 14 Nov 2025 11: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=leFb=5W=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vJs2r-0001jd-0C
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 11:32:49 +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 a4f52825-c14d-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 12:32:47 +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 294EF21137;
 Fri, 14 Nov 2025 11:32:47 +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 CC3EE3EA61;
 Fri, 14 Nov 2025 11:32:46 +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 81sMMF4TF2nASwAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 14 Nov 2025 11:32: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: a4f52825-c14d-11f0-9d18-b5c5bf9af7f9
Authentication-Results: smtp-out1.suse.de;
	none
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@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/4] build: add make macro for making file from file.in
Date: Fri, 14 Nov 2025 12:32:35 +0100
Message-ID: <20251114113238.9279-2-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251114113238.9279-1-jgross@suse.com>
References: <20251114113238.9279-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: 294EF21137
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: 
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[]

Add a new make macro for creating <file> from <file>.in at build
time. To be used like this:

$(foreach file,$(IN_FILES),$(eval $(call apply-build-vars,$(file))))

This can be used instead of the current approach to perform the similar
step for file.in during ./configure.

This will avoid having to run ./configure just because of modifying a
file depending on a variable set by configure.

Prepare to have multiple files as source for the replacement patterns.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- don't use pattern rule, but create explicit dependency in macro,
  don't require to rename source files (Jan Beulich, Andrew Cooper)
---
 Config.mk | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/Config.mk b/Config.mk
index e1556dfbfa..d21d67945a 100644
--- a/Config.mk
+++ b/Config.mk
@@ -159,6 +159,19 @@ define move-if-changed
 	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
 endef
 
+PATH_FILES := Paths
+INC_FILES := $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
+
+include $(INC_FILES)
+
+BUILD_MAKE_VARS := $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).mk.in))
+
+# Replace @xxx@ markers in $(1).in with $(xxx) variable contents, write to $(1)
+define apply-build-vars
+ $(1): $(1).in
+	sed $$(foreach v, $$(BUILD_MAKE_VARS), -e 's#@$$(v)@#$$($$(v))#g') <$$< >$$@
+endef
+
 CFLAGS += -fno-strict-aliasing
 
 CFLAGS += -std=gnu99
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 14 11:33:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 11:33:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162451.1490114 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJs32-0002KB-NB; Fri, 14 Nov 2025 11:33:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162451.1490114; Fri, 14 Nov 2025 11:33:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJs32-0002Jt-JH; Fri, 14 Nov 2025 11:33:00 +0000
Received: by outflank-mailman (input) for mailman id 1162451;
 Fri, 14 Nov 2025 11:33: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=leFb=5W=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vJs32-0001W6-0Z
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 11:33:00 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ab8c1d2e-c14d-11f0-980a-7dc792cee155;
 Fri, 14 Nov 2025 12:32:58 +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-out2.suse.de (Postfix) with ESMTPS id 3E85E1F791;
 Fri, 14 Nov 2025 11:32:58 +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 195453EA61;
 Fri, 14 Nov 2025 11:32:58 +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 k4WxBGoTF2nTSwAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 14 Nov 2025 11:32: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: ab8c1d2e-c14d-11f0-980a-7dc792cee155
Authentication-Results: smtp-out2.suse.de;
	none
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2 3/4] config: remove unused paths from config/Paths.mk.in
Date: Fri, 14 Nov 2025 12:32:37 +0100
Message-ID: <20251114113238.9279-4-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251114113238.9279-1-jgross@suse.com>
References: <20251114113238.9279-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: 3E85E1F791
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: 
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[]

Some paths in config/Paths.mk.in are used nowhere, so remove them.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 config/Paths.mk.in | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/config/Paths.mk.in b/config/Paths.mk.in
index bc42748b7a..668545be2f 100644
--- a/config/Paths.mk.in
+++ b/config/Paths.mk.in
@@ -20,10 +20,7 @@ libexecdir               := @libexecdir@
 datarootdir              := @datarootdir@
 mandir                   := @mandir@
 docdir                   := @docdir@
-dvidir                   := @dvidir@
 htmldir                  := @htmldir@
-pdfdir                   := @pdfdir@
-psdir                    := @psdir@
 includedir               := @includedir@
 localstatedir            := @localstatedir@
 sysconfdir               := @sysconfdir@
@@ -34,8 +31,6 @@ LIBEXEC_LIB              := @LIBEXEC_LIB@
 LIBEXEC_INC              := @LIBEXEC_INC@
 
 SHAREDIR                 := @SHAREDIR@
-MAN1DIR                  := $(mandir)/man1
-MAN8DIR                  := $(mandir)/man8
 
 XEN_RUN_DIR              := @XEN_RUN_DIR@
 XEN_LOG_DIR              := @XEN_LOG_DIR@
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 14 11:33:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 11:33:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162456.1490123 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJs38-0002jJ-Sl; Fri, 14 Nov 2025 11:33:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162456.1490123; Fri, 14 Nov 2025 11:33: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 1vJs38-0002j8-Pq; Fri, 14 Nov 2025 11:33:06 +0000
Received: by outflank-mailman (input) for mailman id 1162456;
 Fri, 14 Nov 2025 11:33: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=leFb=5W=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vJs37-0001jd-Dv
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 11:33:05 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de
 [2a07:de40:b251:101:10:150:64:2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id af2e087d-c14d-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 12:33: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-out2.suse.de (Postfix) with ESMTPS id 1B9331F460;
 Fri, 14 Nov 2025 11:33: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 AAB383EA61;
 Fri, 14 Nov 2025 11:33: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 GC7fJ28TF2naSwAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 14 Nov 2025 11:33: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: af2e087d-c14d-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763119984; 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=cqrX1vxyYUVBqUz0HLEJ2M0JuWIrU5qpOakfLpsYylE=;
	b=DawyupUTEwG1FdnJn34Gw9rX6M7Mz7Qm7K+YjUS1co3WDIwQmoNm3rjGbuE85VD1u31t74
	OmV6OL6vxBZCcFusXWQOwnoqYqR4SJO4U/jixvoJbI53VbNKQer1ElgychE97AzQmAo8gr
	LVa5n5qoaY21vMQ5HFTCFAmlZKQQDBI=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763119984; 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=cqrX1vxyYUVBqUz0HLEJ2M0JuWIrU5qpOakfLpsYylE=;
	b=DawyupUTEwG1FdnJn34Gw9rX6M7Mz7Qm7K+YjUS1co3WDIwQmoNm3rjGbuE85VD1u31t74
	OmV6OL6vxBZCcFusXWQOwnoqYqR4SJO4U/jixvoJbI53VbNKQer1ElgychE97AzQmAo8gr
	LVa5n5qoaY21vMQ5HFTCFAmlZKQQDBI=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Christian Lindig <christian.lindig@citrix.com>,
	David Scott <dave@recoil.org>
Subject: [PATCH v2 4/4] tools: replace @xxx@ markers at build time
Date: Fri, 14 Nov 2025 12:32:38 +0100
Message-ID: <20251114113238.9279-5-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251114113238.9279-1-jgross@suse.com>
References: <20251114113238.9279-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];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_HAS_DN(0.00)[];
	MIME_TRACE(0.00)[0:+];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCPT_COUNT_SEVEN(0.00)[11];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	TO_DN_SOME(0.00)[];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -6.80
X-Spam-Level: 

Use the apply-build-vars make macro to replace the @xxx@ markers in
most *.in files only at build time.

As some of the markers are local to tools/configure, introduce
config/Tools-paths.mk.in and add the related make variables to it.
Add Tools-paths to the PATH_FILES make variable in order to include
the definitions for replacing them in the *.in files.

Add the generated files to the distclean target.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- don't rename source files
---
 .gitignore                     |  1 +
 Config.mk                      |  2 +-
 config/Tools-paths.mk.in       | 10 ++++++++++
 tools/configure                | 21 ++-------------------
 tools/configure.ac             | 19 +------------------
 tools/hotplug/FreeBSD/Makefile |  7 ++++++-
 tools/hotplug/Linux/Makefile   | 10 +++++++++-
 tools/hotplug/NetBSD/Makefile  |  7 ++++++-
 tools/hotplug/common/Makefile  |  7 ++++++-
 tools/ocaml/libs/xs/Makefile   |  9 +++++++++
 tools/ocaml/xenstored/Makefile |  9 ++++++++-
 11 files changed, 59 insertions(+), 43 deletions(-)
 create mode 100644 config/Tools-paths.mk.in

diff --git a/.gitignore b/.gitignore
index d83427aba8..57d54f676f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,6 +47,7 @@ config.status
 config.cache
 config/Toplevel.mk
 config/Paths.mk
+config/Tools-paths.mk
 
 dist/*
 extras/
diff --git a/Config.mk b/Config.mk
index d21d67945a..8d1368d25b 100644
--- a/Config.mk
+++ b/Config.mk
@@ -159,7 +159,7 @@ define move-if-changed
 	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
 endef
 
-PATH_FILES := Paths
+PATH_FILES := Paths Tools-paths
 INC_FILES := $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
 
 include $(INC_FILES)
diff --git a/config/Tools-paths.mk.in b/config/Tools-paths.mk.in
new file mode 100644
index 0000000000..ac6298e761
--- /dev/null
+++ b/config/Tools-paths.mk.in
@@ -0,0 +1,10 @@
+-include $(XEN_ROOT)/config/Paths.mk
+
+XENSTORED                := @XENSTORED@
+XENSTORED_KVA            := @XENSTORED_KVA@
+XENSTORED_PORT           := @XENSTORED_PORT@
+XEN_RUN_STORED           := @XEN_RUN_STORED@
+
+LINUX_BACKEND_MODULES    := @LINUX_BACKEND_MODULES@
+
+qemu_xen_path            := @qemu_xen_path@
diff --git a/tools/configure b/tools/configure
index 3111f5688c..479c7c9a3c 100755
--- a/tools/configure
+++ b/tools/configure
@@ -2742,7 +2742,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
-ac_config_files="$ac_config_files ../config/Tools.mk hotplug/common/hotplugpath.sh hotplug/FreeBSD/rc.d/xencommons hotplug/FreeBSD/rc.d/xendriverdomain hotplug/Linux/init.d/sysconfig.xencommons hotplug/Linux/init.d/sysconfig.xendomains hotplug/Linux/init.d/xen-watchdog hotplug/Linux/init.d/xencommons hotplug/Linux/init.d/xendomains hotplug/Linux/init.d/xendriverdomain hotplug/Linux/launch-xenstore hotplug/Linux/vif-setup hotplug/Linux/xen-hotplug-common.sh hotplug/Linux/xendomains hotplug/NetBSD/rc.d/xencommons hotplug/NetBSD/rc.d/xendriverdomain ocaml/libs/xs/paths.ml ocaml/xenstored/paths.ml ocaml/xenstored/oxenstored.conf"
+ac_config_files="$ac_config_files ../config/Tools.mk ../config/Tools-paths.mk"
 
 ac_config_headers="$ac_config_headers config.h"
 
@@ -11268,24 +11268,7 @@ for ac_config_target in $ac_config_targets
 do
   case $ac_config_target in
     "../config/Tools.mk") CONFIG_FILES="$CONFIG_FILES ../config/Tools.mk" ;;
-    "hotplug/common/hotplugpath.sh") CONFIG_FILES="$CONFIG_FILES hotplug/common/hotplugpath.sh" ;;
-    "hotplug/FreeBSD/rc.d/xencommons") CONFIG_FILES="$CONFIG_FILES hotplug/FreeBSD/rc.d/xencommons" ;;
-    "hotplug/FreeBSD/rc.d/xendriverdomain") CONFIG_FILES="$CONFIG_FILES hotplug/FreeBSD/rc.d/xendriverdomain" ;;
-    "hotplug/Linux/init.d/sysconfig.xencommons") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/sysconfig.xencommons" ;;
-    "hotplug/Linux/init.d/sysconfig.xendomains") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/sysconfig.xendomains" ;;
-    "hotplug/Linux/init.d/xen-watchdog") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/xen-watchdog" ;;
-    "hotplug/Linux/init.d/xencommons") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/xencommons" ;;
-    "hotplug/Linux/init.d/xendomains") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/xendomains" ;;
-    "hotplug/Linux/init.d/xendriverdomain") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/xendriverdomain" ;;
-    "hotplug/Linux/launch-xenstore") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/launch-xenstore" ;;
-    "hotplug/Linux/vif-setup") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/vif-setup" ;;
-    "hotplug/Linux/xen-hotplug-common.sh") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/xen-hotplug-common.sh" ;;
-    "hotplug/Linux/xendomains") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/xendomains" ;;
-    "hotplug/NetBSD/rc.d/xencommons") CONFIG_FILES="$CONFIG_FILES hotplug/NetBSD/rc.d/xencommons" ;;
-    "hotplug/NetBSD/rc.d/xendriverdomain") CONFIG_FILES="$CONFIG_FILES hotplug/NetBSD/rc.d/xendriverdomain" ;;
-    "ocaml/libs/xs/paths.ml") CONFIG_FILES="$CONFIG_FILES ocaml/libs/xs/paths.ml" ;;
-    "ocaml/xenstored/paths.ml") CONFIG_FILES="$CONFIG_FILES ocaml/xenstored/paths.ml" ;;
-    "ocaml/xenstored/oxenstored.conf") CONFIG_FILES="$CONFIG_FILES ocaml/xenstored/oxenstored.conf" ;;
+    "../config/Tools-paths.mk") CONFIG_FILES="$CONFIG_FILES ../config/Tools-paths.mk" ;;
     "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
     "hotplug/Linux/systemd/proc-xen.mount") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/systemd/proc-xen.mount" ;;
     "hotplug/Linux/systemd/xen-init-dom0.service") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/systemd/xen-init-dom0.service" ;;
diff --git a/tools/configure.ac b/tools/configure.ac
index 285b4ea128..ecd45e782e 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -7,24 +7,7 @@ AC_INIT([Xen Hypervisor Tools], m4_esyscmd([../version.sh ../xen/Makefile]),
 AC_CONFIG_SRCDIR([libs/light/libxl.c])
 AC_CONFIG_FILES([
 ../config/Tools.mk
-hotplug/common/hotplugpath.sh
-hotplug/FreeBSD/rc.d/xencommons
-hotplug/FreeBSD/rc.d/xendriverdomain
-hotplug/Linux/init.d/sysconfig.xencommons
-hotplug/Linux/init.d/sysconfig.xendomains
-hotplug/Linux/init.d/xen-watchdog
-hotplug/Linux/init.d/xencommons
-hotplug/Linux/init.d/xendomains
-hotplug/Linux/init.d/xendriverdomain
-hotplug/Linux/launch-xenstore
-hotplug/Linux/vif-setup
-hotplug/Linux/xen-hotplug-common.sh
-hotplug/Linux/xendomains
-hotplug/NetBSD/rc.d/xencommons
-hotplug/NetBSD/rc.d/xendriverdomain
-ocaml/libs/xs/paths.ml
-ocaml/xenstored/paths.ml
-ocaml/xenstored/oxenstored.conf
+../config/Tools-paths.mk
 ])
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_AUX_DIR([../])
diff --git a/tools/hotplug/FreeBSD/Makefile b/tools/hotplug/FreeBSD/Makefile
index a6552c9884..8de923781c 100644
--- a/tools/hotplug/FreeBSD/Makefile
+++ b/tools/hotplug/FreeBSD/Makefile
@@ -8,9 +8,13 @@ XEN_SCRIPT_DATA :=
 
 XEN_RCD_PROG := rc.d/xencommons rc.d/xendriverdomain
 
+IN_FILES := rc.d/xencommons rc.d/xendriverdomain
+
 .PHONY: all
 all:
 
+$(foreach file,$(IN_FILES),$(eval $(call apply-build-vars,$(file))))
+
 .PHONY: install
 install: install-scripts install-rcd
 
@@ -35,7 +39,7 @@ uninstall-scripts:
 	rm -f $(addprefix $(DESTDIR)$(XEN_SCRIPT_DIR)/, $(XEN_SCRIPT_DATA))
 
 .PHONY: install-rcd
-install-rcd:
+install-rcd: $(IN_FILES)
 	$(INSTALL_DIR) $(DESTDIR)$(INITD_DIR)
 	set -e; for i in $(XEN_RCD_PROG); \
 	   do \
@@ -51,3 +55,4 @@ clean:
 
 .PHONY: distclean
 distclean: clean
+	rm -rf $(IN_FILES)
diff --git a/tools/hotplug/Linux/Makefile b/tools/hotplug/Linux/Makefile
index 9a7b3a3515..6fcf84a6f4 100644
--- a/tools/hotplug/Linux/Makefile
+++ b/tools/hotplug/Linux/Makefile
@@ -26,9 +26,16 @@ XEN_SCRIPT_DATA := xen-script-common.sh locking.sh logging.sh
 XEN_SCRIPT_DATA += xen-hotplug-common.sh xen-network-common.sh vif-common.sh
 XEN_SCRIPT_DATA += block-common.sh
 
+IN_FILES := launch-xenstore vif-setup xendomains xen-hotplug-common.sh
+IN_FILES += init.d/sysconfig.xendomains init.d/xen-watchdog
+IN_FILES += init.d/xencommons init.d/xendomains
+IN_FILES += init.d/xendriverdomain init.d/sysconfig.xencommons
+
 .PHONY: all
 all: subdirs-all
 
+$(foreach file,$(IN_FILES),$(eval $(call apply-build-vars,$(file))))
+
 .PHONY: install
 install: install-initd install-scripts subdirs-install
 
@@ -37,7 +44,7 @@ uninstall: uninstall-initd uninstall-scripts subdirs-uninstall
 
 # See docs/misc/distro_mapping.txt for INITD_DIR location
 .PHONY: install-initd
-install-initd:
+install-initd: $(IN_FILES)
 	$(INSTALL_DIR) $(DESTDIR)$(INITD_DIR)
 	$(INSTALL_DIR) $(DESTDIR)$(SYSCONFIG_DIR)
 	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
@@ -81,3 +88,4 @@ clean: subdirs-clean
 
 .PHONY: distclean
 distclean: clean
+	rm -rf $(IN_FILES)
diff --git a/tools/hotplug/NetBSD/Makefile b/tools/hotplug/NetBSD/Makefile
index 1cd3db2ccb..4ac6bd8fa7 100644
--- a/tools/hotplug/NetBSD/Makefile
+++ b/tools/hotplug/NetBSD/Makefile
@@ -12,9 +12,13 @@ XEN_SCRIPTS += qemu-ifup
 XEN_SCRIPT_DATA :=
 XEN_RCD_PROG := rc.d/xencommons rc.d/xendomains rc.d/xen-watchdog rc.d/xendriverdomain
 
+IN_FILES := rc.d/xencommons rc.d/xendriverdomain
+
 .PHONY: all
 all:
 
+$(foreach file,$(IN_FILES),$(eval $(call apply-build-vars,$(file))))
+
 .PHONY: install
 install: install-scripts install-rcd
 
@@ -39,7 +43,7 @@ uninstall-scripts:
 	rm -f $(addprefix $(DESTDIR)$(XEN_SCRIPT_DIR)/, $(XEN_SCRIPT_DATA))
 
 .PHONY: install-rcd
-install-rcd:
+install-rcd: $(IN_FILES)
 	$(INSTALL_DIR) $(DESTDIR)$(INITD_DIR)
 	set -e; for i in $(XEN_RCD_PROG); \
 	   do \
@@ -57,3 +61,4 @@ clean:
 
 .PHONY: distclean
 distclean: clean
+	rm -rf $(IN_FILES)
diff --git a/tools/hotplug/common/Makefile b/tools/hotplug/common/Makefile
index 62afe1019e..0017332293 100644
--- a/tools/hotplug/common/Makefile
+++ b/tools/hotplug/common/Makefile
@@ -7,9 +7,13 @@ include $(XEN_ROOT)/tools/Rules.mk
 XEN_SCRIPTS :=
 XEN_SCRIPT_DATA := hotplugpath.sh
 
+IN_FILES := hotplugpath.sh
+
 .PHONY: all
 all:
 
+$(foreach file,$(IN_FILES),$(eval $(call apply-build-vars,$(file))))
+
 .PHONY: install
 install: install-scripts
 
@@ -17,7 +21,7 @@ install: install-scripts
 uninstall: uninstall-scripts
 
 .PHONY: install-scripts
-install-scripts: all
+install-scripts: all $(IN_FILES)
 	$(INSTALL_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR)
 	set -e; for i in $(XEN_SCRIPTS); \
 	   do \
@@ -38,3 +42,4 @@ clean:
 
 .PHONY: distclean
 distclean: clean
+	rm -rf $(IN_FILES)
diff --git a/tools/ocaml/libs/xs/Makefile b/tools/ocaml/libs/xs/Makefile
index e160e6a711..7d70d0904c 100644
--- a/tools/ocaml/libs/xs/Makefile
+++ b/tools/ocaml/libs/xs/Makefile
@@ -8,6 +8,8 @@ OCAMLOPTFLAGS += -for-pack Xenstore
 .NOTPARALLEL:
 # Ocaml is such a PITA!
 
+IN_FILES := paths.ml
+
 PREINTF = xsraw.cmi xst.cmi
 PREOBJS = queueop xsraw xst
 PRELIBS = $(foreach obj, $(PREOBJS),$(obj).cmo) $(foreach obj,$(PREOJBS),$(obj).cmx)
@@ -17,6 +19,10 @@ LIBS = xenstore.cma xenstore.cmxa
 
 all: $(PREINTF) $(PRELIBS) $(INTF) $(LIBS) $(PROGRAMS)
 
+$(foreach file,$(IN_FILES),$(eval $(call apply-build-vars,$(file))))
+
+$(OBJS): $(IN_FILES)
+
 bins: $(PROGRAMS)
 
 libs: $(LIBS)
@@ -43,4 +49,7 @@ install: $(LIBS) META
 uninstall:
 	$(OCAMLFIND) remove -destdir $(OCAMLDESTDIR) xenstore
 
+.PHONY: distclean
+	rm -rf $(IN_FILES)
+
 include $(OCAML_TOPLEVEL)/Makefile.rules
diff --git a/tools/ocaml/xenstored/Makefile b/tools/ocaml/xenstored/Makefile
index c333394a34..2576991030 100644
--- a/tools/ocaml/xenstored/Makefile
+++ b/tools/ocaml/xenstored/Makefile
@@ -72,6 +72,8 @@ XENSTOREDLIBS = \
 	-ccopt -L -ccopt $(OCAML_TOPLEVEL)/libs/xsd_glue $(OCAML_TOPLEVEL)/libs/xsd_glue/plugin_interface_v1.cmxa \
 	-ccopt -L -ccopt $(XEN_ROOT)/tools/libs/ctrl
 
+IN_FILES := paths.ml oxenstored.conf
+
 PROGRAMS = oxenstored
 
 oxenstored_LIBS = $(XENSTOREDLIBS)
@@ -83,7 +85,9 @@ oxenstored_OBJS = $(oxenstored_MLSORTED:.ml=)
 
 OCAML_PROGRAM = oxenstored
 
-all: $(INTF) $(LIBS) $(PROGRAMS)
+all: $(IN_FILES) $(INTF) $(LIBS) $(PROGRAMS)
+
+$(foreach file,$(IN_FILES),$(eval $(call apply-build-vars,$(file))))
 
 bins: $(PROGRAMS)
 
@@ -99,4 +103,7 @@ uninstall:
 	rm -f $(DESTDIR)$(XEN_CONFIG_DIR)/oxenstored.conf
 	rm -f $(DESTDIR)$(sbindir)/oxenstored
 
+distclean:
+	rm -rf $(IN_FILES)
+
 include $(OCAML_TOPLEVEL)/Makefile.rules
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 14 11:40:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 11:40:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162506.1490134 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJsAX-0005Ft-Lg; Fri, 14 Nov 2025 11:40:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162506.1490134; Fri, 14 Nov 2025 11:40:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJsAX-0005Fm-Ia; Fri, 14 Nov 2025 11:40:45 +0000
Received: by outflank-mailman (input) for mailman id 1162506;
 Fri, 14 Nov 2025 11:40: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=Irg0=5W=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJsAW-0005Fg-Jz
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 11:40:44 +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 bfaa5b3f-c14e-11f0-980a-7dc792cee155;
 Fri, 14 Nov 2025 12:40:42 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV3PR03MB7523.namprd03.prod.outlook.com (2603:10b6:408:196::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.18; Fri, 14 Nov
 2025 11:40:39 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9320.018; Fri, 14 Nov 2025
 11:40: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: bfaa5b3f-c14e-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=h3O4YUSnaSLqmfqzJV/kwBekOrxS04JMehtE3XmNGy05hPjEfzk1rmewtcPTE2BVk59jPRrXkpr7NRIMqBZ2FvD3CiXgPo9qcl4vAqD5c6JudV44sOfdgJwyY/8X7ZRWnIhRMYSlCho+xioO5RzCufKicC66vpP/pBpUaVv/+PjTg6zoQc4578d/SPuJ1FSm0rFuw2VGR5spw0Nr//e21TqnqubfPVxlkIFBrEQ58oZQmxtAhOmKyoPxTMly/yHzBxgZIBcgVux/xH1ncREWdXtdJ8K74JYDN+vZ9QwXTUatwiStXWOOtGQ3gSe9Dkv8AyX59QoAGcU9l1imIk1qmg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W19MrCDoPbtirXsMWA1QzvxUL8kXqHyIggKzu+m6Jxc=;
 b=KS0WYVHAsp+mEuleYVPCFyu7tR0NuILCajZ0Ia1zXtKAIEOj8bCEf16WSTaai8kD4qTsAEsDuBnNz2bjdKPW96+BXBU8kR0yIevwazdf9DDYALCFcg9UInpKfkkiFA3p948qQGnF+8WPVjkoziNaI6kSSR5BGPqWNCXgyrPmKA8HDwgWzZzvY76jSfi5hCvzSdLIo6DUg+yzs9mxcUQNTbURLGvC2mN/oe+5nUrDpJ8whgov/K4fXzU/EoARrfRd0pf5zpsgvbqIcm+anLgjatPpZ472hprOKojwNTmZrt4ND8h/hLObldNIa4uNCRfQHAg3suhkijJ+8EKywYzDxQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=W19MrCDoPbtirXsMWA1QzvxUL8kXqHyIggKzu+m6Jxc=;
 b=xiiux80xD20psiplsYPIE8v1zOkRhNUgUKp8TY6VEvDBOK3rV3n4Da6ozGOpRs7ue1PJzZYaDQFYXtQF0J0QadTSyCzAYKufafiDAYT+vcRHUkTzDDp+dvO5Y7NeIgEblIYKE+0/UXVYfFHXGaKMNj3IfA9k/P67ihG6JCon+yM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <7e24823f-cce1-4430-83f1-ebde6986efa4@citrix.com>
Date: Fri, 14 Nov 2025 11:40:30 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/4] docs: replace @xxx@ markers at build time
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-3-jgross@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251114113238.9279-3-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0336.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a4::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_|LV3PR03MB7523:EE_
X-MS-Office365-Filtering-Correlation-Id: 1beba3b8-ef77-44a8-23f8-08de2372a250
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?aEVkUGZ0UEtPN1pUeVEwQWVNR3lrOUV1eThFS0RpSHFmZWR1K3hWcHBwcVJu?=
 =?utf-8?B?OExBYnY3NFhmWC94bTRuRDJibGZicjAyWlJSdWltMnNleVBZMVppUVVMT3gx?=
 =?utf-8?B?RDZoZTZPZTJCRFhBbjZ2andPY1RZYTNITjlwSnJibE54S1lNZmFzaDdxOFJO?=
 =?utf-8?B?ZFRiNUVpRlF1OStJU1hCSjNYTStBS3o0bzRDVTQxa1NOdks4bVZDdHFHS29B?=
 =?utf-8?B?am10NTlBRGxXZ2E2QlRHQ1VSRWR0OG1mMUgzT3d5ajdQRmpXaG9Va2lNWkh1?=
 =?utf-8?B?eVNzdzZXSUNmNVdpL0ZtM1BFZC85b1RxNW1HN25WeE5iVlBrTEx6RzRmNSt4?=
 =?utf-8?B?UjB2S21uYzNja0paT0V2dUl2dEpteXlXYWhGNklXVkQ2M3pFOUgzaGlCMFh1?=
 =?utf-8?B?MXVwbFBVRHR0ZWhNM1BZSXdRQ1luRSs3a3JNV3pmekpwY0hrTW1RRUVYY1F0?=
 =?utf-8?B?cjJCekswYmRyQjg2aWI4QzJXVE9EZ0dnRVpGcUI0OS9DTldlNnRRVWlxaC9I?=
 =?utf-8?B?RHRCdjBmYUxCdXFHQ1NLM1MwTGdYY3hHaUROMGl5M1ZTdjk5RVVzOU1UNk55?=
 =?utf-8?B?VzUxenpMSE1IVm5oZWtLVWg0WXhTK0o3Rit2TXc5R29iYnlnVHc4dkJReVVJ?=
 =?utf-8?B?WmhnUjFuN0tyRDNqbmwxUU9NOTFzSm5YbDQvZDdMV1VLalVSTGlSYkdHNVk5?=
 =?utf-8?B?MU9RVXJPOG5vYVlSYy9SUUtlbTBYSUdaeWFUVC9yMGhPT3U4THpMaGRpempQ?=
 =?utf-8?B?MjdFY2IrVFZvUUtKSkRwWEQ3RGVLRlUzSXNVRGFtU1FCUVJma2pKaU1Fb3lm?=
 =?utf-8?B?bUhSUFJWVGZQSTBIaitFc0N0K0ZNblBPMTYyTys1UTRsRkNvalRLREFrU1NY?=
 =?utf-8?B?TWpnVjAyM3pYMTdPbDVCUnpJUnBNL24yTi9XOGs1aFl1YVovaHMzZDV4VC84?=
 =?utf-8?B?OU9mUENFbXB5RS80OHhZTURYZDNMdENwUFh6akNPcDJqZGIya3dxdGVqZUZM?=
 =?utf-8?B?ckp3cmJZS0cxWHR1b2h0Wm1BcXRjSlBNeVgyVm9wUkg5c1lkQnlicXZ2RHZt?=
 =?utf-8?B?YU1xZCtpMDBmYkhMS09zMWZpT3JaamdFQ1pRZzkwVlhQOFA4MFVYZytENS9Y?=
 =?utf-8?B?R0ZRdDVNODZGYTdCWHlIbFFFRXI1RGwwM011cmRUc2VvS3dDTDdraHFXMndD?=
 =?utf-8?B?dmVDQjVQL3lnTWU3eHlxV2NHcE5vblBqbU5SNndYTkxyTG9qVUtaM1NVb0Nz?=
 =?utf-8?B?UFRVZmJOMmhtNjhHaER2UEJLeUdVRk9jTlRoMEdxamhqbTJMMGgzY0diS3Y1?=
 =?utf-8?B?TUtvVm9oRy90WWdqajlTeTFuMjVqSmxqejNUaUlzajVEd1NNVSt5N1ZlMnRQ?=
 =?utf-8?B?Z0xLQksxNktITzZCa2hadWE1RTNTRFRWVmpyL3FsS0dnZ0ZsWGs3SWUzWkdy?=
 =?utf-8?B?TDArTTJVQkgwVG9VbjJXNWZUQ3Q2MjJha09xdGxoQmJFOC9ZSG9EL2Qxa2No?=
 =?utf-8?B?YlJNZk9PdTQvYitsY3hQazJJT1YxY0t1UGxoa2hGMUttMXRjOVR2V1ZmanN3?=
 =?utf-8?B?eUdJamVyS08yTVIvMEhjdGx2QjlEWmtkYlIzMUtsTkZibklTMzVhNnRqU1l0?=
 =?utf-8?B?N2VoUDUzQUJaNXlyWUZRdTZVcU9YVDlxZ0szWmpHTG1uLy81endaWmxYRmFI?=
 =?utf-8?B?MXlTYVU3eHFzY2liQzl5V2pYZzBkVi9LYjRLNFZlOGhXK3g2a0pJM2Vac054?=
 =?utf-8?B?NjR3VGxPMExyWDZaa2hITzRDUGpzUlV3RkUrRURMdVdOYlFLSVEwTlg2L1hN?=
 =?utf-8?B?cnNVeFBlNUJNNko5QytBVkJSMk52SzhZVXFCRWlDdGR1ZTQwelZqOTgvb3JS?=
 =?utf-8?B?Yys3cnZaUmhKVjhwM1p2NWw1eHBwbG9lMk90V0p2eENpWldnU0Z3RmdlZERW?=
 =?utf-8?Q?3ynlFgByHgxRIVOgTWNqnON8jSAFtp6w?=
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?S2pvekJpTC9BVllaaHZCQlQxc2M3TXN2cEhGNmw2Z2JMUHdETWNqaUl3Z3FF?=
 =?utf-8?B?dHltMitsNnpXZE5YcUwxYkhsYmR0UHF6R2F0OFVFeTVwN25YaFBTcHVLWkFs?=
 =?utf-8?B?YmUwWnVYUEFZOEZQYnhUUElJT20yM1A0RXRqUzkySUhBNDVoOTJQT1NDaVQx?=
 =?utf-8?B?VWlKK3JBc282Wk80akNwUndvVjR0d2d4YU0vZktObFdsQytXc1RqWFNjODlG?=
 =?utf-8?B?a1Z5d3g1cENTNnMvckIvUUhZZzJHaGhRRDFiNnRyeXhnaHM1d2dPdHRQV0Q5?=
 =?utf-8?B?OHpEV0NJTU1mZGJEQ0VDNFVyN0hYbFZ6a3lXTkJMUGx5UVhqWnVFdFJDcVdn?=
 =?utf-8?B?QnRHR2FhNDl4SXFObmZYejdhbkRaOTBsR2ZNUTF1ckNWdldwYk9FMUZHZytJ?=
 =?utf-8?B?OGhhQVlTbHRUdWN2QjZrZHB6WDlDckJySjBnUld2TVdGQk9IS1JuWEhEV21B?=
 =?utf-8?B?QUt1dVkxQmhGRCtiOVJsVVZWWVRjM2gzdk9GbklETklnblFkQ1RBRWVsRkly?=
 =?utf-8?B?d3R4d1RlK0p0aStRZ1R4V2dMQjBROEJiNkNxMkEydWVvaDN6VGdsNFZ4MEdD?=
 =?utf-8?B?YWg1VDdSWmNvSGFXaG5IYWZ1aVFMOUE0bGpGUUJJM0xqcVcvTmFFTWcxek9K?=
 =?utf-8?B?REZYWFJ5SmhaUUZLUWJQdlhrN1ZEWDNjUXlPSEpuVUlMWVVnWVVFWWVWdW96?=
 =?utf-8?B?Mmd0ODN1cGF4Vkp0T2o1WTV0Q0Q5aHUyOGZrRTVlcWFTQlBTV3Vhc240Uy9Q?=
 =?utf-8?B?M0cyZnI3U3J6WitqQllPKzcvbHpvRldlR0JlRlExV3EwbnhYMEtHR1JWS2M2?=
 =?utf-8?B?UDBabGV5TEpWdVpCS2hDVUZXVkVsSGhYOEplMXJjNVdEZW5FSit4aEltRGVq?=
 =?utf-8?B?Y2x6aXMzYjQ4aXc3Nk9HbE9HcURFWnJyVm00VTRacjhabDRTZHNmb2I2S0lw?=
 =?utf-8?B?dHkzM240aTFYY1R6c2pkYzhuR0lyVHVLQXVIRS9iWGF1enVXa0FDdk5uRkZX?=
 =?utf-8?B?VUE0blFKMzcwelFGd3lpZWxtVlN4WHlzd1hOcVlXdktZVUlUT2pWNTEwTDNE?=
 =?utf-8?B?U2tTR21aNTVRSWpYRGx4cFdqZUVhOTJZTGZxNkFvQWxUbkU4R0JhK2ljVVJ2?=
 =?utf-8?B?b0FYa2FlWk9KTzlQb2FOd2RnYk93T2hpdUh2V0xFMS9Uc005UmxHU1o1dFNw?=
 =?utf-8?B?ZVlYYzhoVmtaZ3ZYaGtBT2xWK2Vhd2NxM0wvSnRhVlNRaFR5ajVLbTdUOExo?=
 =?utf-8?B?dmw2QW45UWp6V0hRR205cW5RTnhvaUh4L2ZyMkZaMTh0bENUZFBMb242L3NP?=
 =?utf-8?B?NFN2aDlGRkY5Y05ESmZtMmdkUnRMWXpsalNMRUVyOUduL1ZZejE2aFl1Nlhz?=
 =?utf-8?B?TVRJeER4RVhUT1MvN01tenJvdW1lUjgvY05oNmNMSXRhazNOYjBmdTh2VnV4?=
 =?utf-8?B?Q21rOGNiWEN2ZGtSVlZPWFVyS0JYM1VqZnFpYUs0YTJMMXpLMG96eDV5b0Rq?=
 =?utf-8?B?Wk5wbDNBSjVHZ3hVdDQwdVdiWkI5YVVMSWx1c0hERVZSdllVbkpiSVkvNGFo?=
 =?utf-8?B?dDhiZXdjZ2tJcHptUTN4QWsvbWdNQ0JRZ2E5WWVyNCtJaU9LVGZWQnJHTnFW?=
 =?utf-8?B?aXFIR0tKMVJKMUtEdTdSNm5NM0Fia1l2aWY0R2lMMC8rckN2ampKSWhoeE9C?=
 =?utf-8?B?MDVhRk43emFyMVNMMlJKR0dQMWVHRHlwQUwwS1RrUW9Qb05DcjVIUkdtcm45?=
 =?utf-8?B?a3Mzbm5VdWdYZHFrb2RsbmFIVFlUNVI0SDNUeVVPQjhlVWwxYkxEd3Flckxn?=
 =?utf-8?B?azJxeFVtZDRwcnFLUXZLWlp1dXAzWmE5U0MwcWR0M2wwTmZvQ0NqZ3pvS2hL?=
 =?utf-8?B?ZnNnQzJiZnhnVHVnYWlDZGozZWdXM1BUOEFSZ3NhVmhWUVJRSDVnYzFtTC9Y?=
 =?utf-8?B?eDdXVUwxMFlnMEQxM3M1VlYwZzdzNEJnTUpUb2hjM0kxalFFejB4bkdSYnhk?=
 =?utf-8?B?M0pkVjRENEFqL0NWZDdkdTc0OWY2TnVtTUJrZTg0blRRRFZoN0trNngwVi9y?=
 =?utf-8?B?cHNNcXBaMU1qNmtjSWdxNnZZc25nNWVRUXExdlErcHRtcVpvNXpUU1pTYnlp?=
 =?utf-8?B?WHBwYmNiRU05MjI4ZDdxak9XNm9QdEhHaWdRT0dpcytNcnlvT0NHdXhNeWlT?=
 =?utf-8?B?L3c9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1beba3b8-ef77-44a8-23f8-08de2372a250
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2025 11:40:39.1311
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qlNw7FThJYSVahsyTdyUW+J5/GVL/RJL+BlUPAWYhTHBM8xmskojARDr6j5+JTa41tvZrSwnQ0iIwFvWiu3zP1ZzMcrYwRgN4lrwQQ/t8ro=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR03MB7523

On 14/11/2025 11:32 am, Juergen Gross wrote:
> diff --git a/docs/Makefile b/docs/Makefile
> index 37776d303c..e5f4a8ca86 100644
> --- a/docs/Makefile
> +++ b/docs/Makefile
> @@ -8,8 +8,11 @@ DATE		:= $(call date,"+%Y-%m-%d")
>  DOC_ARCHES      := arm ppc riscv x86_32 x86_64
>  MAN_SECTIONS    := 1 5 7 8
>  
> +IN_FILES := man/xl-disk-configuration.5.pod man/xl-network-configuration.5.pod
> +IN_FILES += man/xl.1.pod man/xl.cfg.5.pod man/xl.conf.5.pod

Sorry, I meant to say this on the previous revision.Â  Can we please list
these one per line, for the future ease of inserting/removing.

Is IN_FILES really correct?Â  These are the generated (non-.in) files,
rather than the .in files themselves.Â  GEN_FILES from v1 would seem to
be a better fit.

But, overall I think this is a nicer change.

> +
>  # Documentation sources to build
> -MAN-SRC-y := $(sort $(basename $(wildcard man/*.pod man/*.pandoc)))
> +MAN-SRC-y := $(sort $(basename $(wildcard man/*.pod man/*.pandoc) $(IN_FILES)))

Doesn't the man/*.pod wildcard do this already ?

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 11:42:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 11:42:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162531.1490144 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJsCR-0006GG-53; Fri, 14 Nov 2025 11:42:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162531.1490144; Fri, 14 Nov 2025 11:42: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 1vJsCR-0006G9-2N; Fri, 14 Nov 2025 11:42:43 +0000
Received: by outflank-mailman (input) for mailman id 1162531;
 Fri, 14 Nov 2025 11:42: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=Irg0=5W=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJsCP-0006G0-VC
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 11:42:41 +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 058c6ace-c14f-11f0-980a-7dc792cee155;
 Fri, 14 Nov 2025 12:42:40 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV3PR03MB7523.namprd03.prod.outlook.com (2603:10b6:408:196::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.18; Fri, 14 Nov
 2025 11:42:36 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9320.018; Fri, 14 Nov 2025
 11:42: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: 058c6ace-c14f-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=krNSqhnWV6dEJcgfzLzTKZaRjW9HNFxkMhPrsYzyFIwd/nZmDYf/4N60/57uj7rVzrAOWcTj3aCaI+kiAdlTSqlZuuYYQAyfzE+aQ63MNKQx5GUimb8WCzdYOeJ+WqRvq4lClFYumbANHkS53LnHeDeLmNmNnUIn5e3Ui2U2zeq8peEAy3Ojy3vLxPmXQ3WKJVhV5y4pQvd0MOmw+RLTHpJy3+C5ZhATaoaJ8l9k2O5xqOEPpvqZ3JMRV5goh6uFJ58+RGVXzYnA1g2tQzG9FlbxjVo74zKrvjAJdfRvupmtPDj/2psy1tBtlFXcTVvv4WMyI6wiq1viPTlm0qUs9w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OfES6KGhUAWg8BoCHuMAly8nwfzvpyHrYnRrMe2892U=;
 b=NCMSNxYdOh6Jlm5e4DcSf2QUSzwtF9R82SL7/2GN9LYi8dsLuld5Kfh/NcRNlOCHt/PnOd8DHuP1TdJI9LE1rwbd3quFR03hwyrHPHKYro/I6H02/9GbeRzmleW4WbePQ0XMhOMfYEkvtmrvau2Ek9qEqJ1WlIaPAUOHgUKhReAKE//UqWy1gV7MpD8jbkO/S1VR2NWmIn/pWak1BUPuI4pCS5WGGwhmzIQslvrpQL3iZHrxwJDWt10Wy+stviwGOqOgViYop+2shI7XSOhmvn3Kuzk4BCeb7kCdGxAidd5LNEtvKEpZI5brE36VNdal6G1kBLTVp2JUT9mxpFGNUA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=OfES6KGhUAWg8BoCHuMAly8nwfzvpyHrYnRrMe2892U=;
 b=w4FDyukjqgMHF3uOmrt8qwAC8GF2qiKxYwhoVnIzFwmfw3YWfImgM5rjbWGjki2f4gzltSyk+dXlZS1mOxqxvtNT2G1PJ7NhKI37nmcrFcxASA5rGiEMm1xrTwVuMTzZ5Xs/sPdW0NyIpMtdjDzVIBMxBD6p5AdCS/3EWs7lnZ8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <468c6686-43e5-4c35-8366-58558f199e22@citrix.com>
Date: Fri, 14 Nov 2025 11:42:32 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] build: add make macro for making file from file.in
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-2-jgross@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251114113238.9279-2-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0001.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ad::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_|LV3PR03MB7523:EE_
X-MS-Office365-Filtering-Correlation-Id: dbad058f-dcf6-4622-2954-08de2372e827
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?ekxpM2QzRThCSURFcWdTZlFSTC8wRTZZS3BYV0M3WWV4TmluZS9KYklJRDlS?=
 =?utf-8?B?Y3lwT3hTM3ZBcjJqdnd3NnY0YWwyR0c2RnJVZURlNWhJdUo2U0YyTUtBZG5s?=
 =?utf-8?B?V0pxYlFuZXJOSTdycmJVNUtLbkdHVEFnRlVUaEtxQjJoaXZVOEQwL0xXb1o0?=
 =?utf-8?B?U1VEaXhsUjZaeEw0bTQ5cm02MHJRVG9TQk5rZHptcmd0V09MTEFjemZOdG42?=
 =?utf-8?B?Y1Z2TzZhK1FzNG90LzUrenZyWFMzZjNMMFJpQ2I3eFFicmtKbytJZHR5aVpp?=
 =?utf-8?B?elltamRZTVRRQnNQbzBFYmVKczRIeWxnaGlrbllYcHRkcW9YOFh5SGhuSDRk?=
 =?utf-8?B?WmRrYWhMSThlMEd1WUhPSnRsSVBYRFkwb3ZMR1BBcDRKU1JvN3VEcWFqandI?=
 =?utf-8?B?R0dtclJMRVpPN1czSEVBUHpIdnhwL0o4L2RkTEdWa0lIY1kxOWNKRGJPWlEr?=
 =?utf-8?B?MTUvVnBwQ1RpZ3pHczNXT3FTQ3Y5RU5mMTZScXlDNmRuZ1AxcHRwek01clI0?=
 =?utf-8?B?eVNaS0EvVStvUGpjbXZKMmszUFJaRjZVQytxT1R5WkVVRkdMSmRrLzlYdlFD?=
 =?utf-8?B?OWh2aUhnL3NXeWQzWkF3cXF6RG9jSmJ3QjNGTGI1VDRWVzVkRGMxMENrNVE5?=
 =?utf-8?B?ZnZIUysrMDg1SHUxRHJCM1NWMWpRWTA0aGFid2JWbitBZlR5V3p0d1R6OE1Q?=
 =?utf-8?B?d0xSbE1mWUVJbW5kaDZmN2JMNUJKSjArOXZybWxSWHYvYmFINFFVQVVIckl2?=
 =?utf-8?B?Q2RCenkvZUkyUWtLN1plTUtiRlVDZVpZdHFXSXp3Q3lvb21BY3VKUW1rdEt4?=
 =?utf-8?B?SWVGUHFEWTkzQWVCQndtVDZwUysxOFJSa0E4bVdId0lQakEvTkJkblRnajdr?=
 =?utf-8?B?YVJFUkNaMllCTWp1dTNKRVhBSmJ6UWxtdFA3dkJwVy9vZDRQTHlSSkFHWEY5?=
 =?utf-8?B?aHI0MFdoNTFDdGpUdDd3b1NMajM3dXBzM0VEemYvdWJnaUt2SGtGRFZxdSt2?=
 =?utf-8?B?Q0hzYzNSTWpKQXVMNm5SUytjOFlwczhwSzBmMU1hc1U1MWl3STBGL2NMQnh4?=
 =?utf-8?B?enRlbUFUTENxUDI5NERYc1ZodDN0Szh2MFlYSDdUVGhETGtRSGJmWkE4dUg1?=
 =?utf-8?B?SURSMDlKTXprYW5mRGRwOHN4Z3oxRGdBVkZNWi9JcWdHaU41ejJaSjF1M0RF?=
 =?utf-8?B?ekhpNjBjOStjTkpvV0diZDlRNmhmOGlCSUIwWlFqZVlhYVFpMWY2Q3dVZENZ?=
 =?utf-8?B?RW9vVERJd2ZQNnA3d291Z3BsZHlLWVZuZW5MOFNRajd5ZXEvRjgydXgxWlhB?=
 =?utf-8?B?cGc2OUpJRkdveEp5by9NNDB4M3NJcWFPSjJqZGdWUDRZMlpucHNWQ0JWZGdJ?=
 =?utf-8?B?YjFCQ1dpeGx4U3IxcDV6bVNPZ1kwVzJ2VVlhVEdzTm1Vdnl6eDNCTTdWZk8w?=
 =?utf-8?B?V1M3QkJ1NDNyT3BtWXc0c1JaL1psQ0NEWDU4aUYzRnVLaUU4ZDhBcTMyL0pl?=
 =?utf-8?B?RWVyWlpVU2JaMG16WWtuV3lxb083N1NKVjZabW1YcDUxdjN3T2szeElOQ0xu?=
 =?utf-8?B?RSsrUUdya0NtQUFXR25PVGF3VzZZU0dqa0syNzJWRjFqRlVRVTFkSUhoaUtV?=
 =?utf-8?B?VnRqdUIwR2Iva2w1WGs3b0VyeVkzdkhPWUNOMlVaTVNoSlZhNm5rTWdmSUpB?=
 =?utf-8?B?SXR4Z1FuZ3NhZzkyOElsdVdOWElwYU9OVkZrc012SnZONFZ6MDdCNER3WEVL?=
 =?utf-8?B?aFdDaEJqbEUvdTZjYUJHdkh3aThlYlM3WmhhZVp3a3RpbG1rS0dScHUvaENZ?=
 =?utf-8?B?azhIU2kwait3OUxzS1BrRjVzUDRiSDM1RThWK0x0aG5MK3RXc2NVM1R1amJI?=
 =?utf-8?B?RUR0cXJPeEljZUNrT2YvYWlWdFJuVmhtUTNuYmVyYWRaL1RSM0djYVdES0cw?=
 =?utf-8?Q?1KqdGIJaC4O8lNNeO27PDpIJ8HBFilLX?=
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?am95MmtTakR6aHhkcXdVdWl4THZ4anRQTDFaNWpZSjJsSE9MK1NGUS9pSWhj?=
 =?utf-8?B?UFpFY2RkTjJkL0dzanV1SzM4cmRjZldacXVpMTh0WVZxM1cwanlhbVJMOEtE?=
 =?utf-8?B?Q0hSQUU1cEhLa0VrNEVYdUxLWWEvSnZYMzVVakVhOTdIQklGQ1BTZ3lNQ00v?=
 =?utf-8?B?MWVrNWhaVzN4SkJsL0ozU2hIQ0UxZ3Bkdm90aEFRRjdWK1dSczlYazE1aTZ0?=
 =?utf-8?B?TUlaUEp6Z1AvbHdIQzVsaGJ6Z0x5ZGtobDNOS3ptVGZDUVhZOEh4TDEyZ25Q?=
 =?utf-8?B?bkpreXIxczRlcDFHZXMrS0I2TzcwYkhtSGlpUEFQK095bG9nYS84eVBNM0Jz?=
 =?utf-8?B?L1J1MWl1RXpVY0xQYXJJanpwdmk3cTFnd2VHZXIveE8xcDVvOWRRa3cwM0JO?=
 =?utf-8?B?ZmtQaGZRbkZWMzErVTRGOFdzY1RKWGFWNGxINDAzZkVMNG9XREdZTjFRSlYw?=
 =?utf-8?B?ZnU1Zng4ditDNHRmdHdTdWFkcXBmdUc0YllRS2dib3l3aTJlR081SCtEeVNV?=
 =?utf-8?B?OFlMNmdSakptSDlHRUNGTkZiSkdOd2hBb0E4bGRaaFNQcXFBaWliOUdkS3FS?=
 =?utf-8?B?UzlJU3p5eG15MU5mVTl0WHE4a2k4ekV6ZUJHZmtFRk50OEFUWTNJWGJMemky?=
 =?utf-8?B?eHhpNThuWGpVTXMvTGVGaFFWNEVsMEJWVUd2OEoraWpKZzZMQWpxdXZJa2pp?=
 =?utf-8?B?MXVoczJyN1Jza29HeG5yTUZuSEhGNERSbHdubnJheEFoM3l0WEZvTlJkdmp3?=
 =?utf-8?B?YnNwaDB2eXcweUpwK1lVQjBxSG9iSktTYkRrd0RrRFVSTHM2Q0VrMm1OcEdy?=
 =?utf-8?B?NUEwRDJicmxlUktUZEpXUElUbGNFTk9Ha3VyQlVoKzVGWWUwMXN3d3B5Q2lI?=
 =?utf-8?B?dkt6dEoyVDNYK0xVajk5Ymdzczd6NVBpVmswQk1RNzdJYmNscFFUUWpWZ04z?=
 =?utf-8?B?enV3eitiT1lvdGppaXJ1Zld1eHNMN29peG1Sem0xbkJ1ZWRYdkcrdXRaYUk0?=
 =?utf-8?B?cTM4T2Z3SkRJcDNpTDJuWVMxVTdXOXJpblc2bUJFRlArZFFVU2lpdjY5UG1S?=
 =?utf-8?B?K1hLS2xsVnNPN1c5TGpPWjgrMHU5RUhNdFByWFMwdTZXV3hqdXNqWEhRdTFB?=
 =?utf-8?B?b1Jjd3pjckFacmVNL1B5b1A2cXhJbHU1MU0wUlU0a1huYUtJWjBkYVVkditE?=
 =?utf-8?B?YlVkZTZBbnIwL21hYzlSU25yWS95Q3o0QjRUZ0duTVVlR3dDdzFCcFNWOUdm?=
 =?utf-8?B?NnFZcE9uMjJIMnoxYktFQjU1QnhseHJDZHMveWZpVElVcVdRVnIxUDVVZzRw?=
 =?utf-8?B?bTZXeGhNQzRUZ21aaU5DWUFoMkl4NkluekR5SkZOWnpBUDVVMVlvK2NCSCt2?=
 =?utf-8?B?c2tvZ3pVN3FReTdhOC9ZSmhrSUJKbjA1L2RoSTRjZGNNUEhTQ1orckUyWGxE?=
 =?utf-8?B?eURraFFmT0ZLREptOVB2dllpakp3d1k0NnVlaHVFc2pMVFZJdll5cHJ0ZXBy?=
 =?utf-8?B?OGJLcHlRaGRxNjlpbnlGbDJTakt3V3pmeWFiSVpHTDRyZVlDK1U1VVhJN2hj?=
 =?utf-8?B?cU83SzNNTTBvT3VLN2wxbWRyMkpSLytURE9zN3JCWHJEejIvWXB6azNZYkI0?=
 =?utf-8?B?aXdnc1Q0OXJ1dzhmcWxXVENqOEJLRitXOWh0NVA3SHdkdkN4UUUzcHhLYXlX?=
 =?utf-8?B?MHFoUWZSS3lvTWVUdlozeFhDQkg5b1dRdFl0SW0waGZCZnhlNm4wUlg0Q3hr?=
 =?utf-8?B?TUFvb05hV3c3YjFiK0NIV1cxZzVFVDZIZUQzNnA0WkF2eDNOVXNrVVcxSEpp?=
 =?utf-8?B?a3B4ZFppVzlKWGhQLzNWOGRBRmIwWmxGUmF5NTM2Wm9pWDRkVXgzcVh5SVFM?=
 =?utf-8?B?QVdRTk9tb01CTnYzRnJVSDkwRkFzczFEQ2tGcVBFbG45aDlpblpYbDZ2UU9U?=
 =?utf-8?B?SWh4MmpUcmFsRHBnL1hZMEV1bnB1QkNMYkd3amI3SisrbDNvd1lFaGZRNmRr?=
 =?utf-8?B?M2dCUGNPZ1A3Y3JCZG5kY3lvZUZsdEZPRDAxdmt1Y1Q2WVpoM0VQdENBRWdJ?=
 =?utf-8?B?SG1hTHNaajY0QURpVEk5UEpzeDZhOU9nRFJObC9ZOGRPVlZ0dkVhc2dhYkJ6?=
 =?utf-8?B?RzI4Q1hmMlUvQXdpRy82ZEtPeE1pVzVIT00zc1JLMndBUEt3SXY1Zk8zeXR5?=
 =?utf-8?B?T0E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dbad058f-dcf6-4622-2954-08de2372e827
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2025 11:42:36.2783
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 38ipKlxE4L24UDe0L5OcS9V7BrkfcnrDyUITkKHZrvAnBGvNWoZMjwOyV/BiL2DUYWMwrygN8y76qQD+a9Ae5SZoTcIcVst4xOotMDkoAyk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR03MB7523

On 14/11/2025 11:32 am, Juergen Gross wrote:
> diff --git a/Config.mk b/Config.mk
> index e1556dfbfa..d21d67945a 100644
> --- a/Config.mk
> +++ b/Config.mk
> @@ -159,6 +159,19 @@ define move-if-changed
>  	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
>  endef
>  
> +PATH_FILES := Paths
> +INC_FILES := $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
> +
> +include $(INC_FILES)
> +
> +BUILD_MAKE_VARS := $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).mk.in))
> +
> +# Replace @xxx@ markers in $(1).in with $(xxx) variable contents, write to $(1)
> +define apply-build-vars
> + $(1): $(1).in
> +	sed $$(foreach v, $$(BUILD_MAKE_VARS), -e 's#@$$(v)@#$$($$(v))#g') <$$< >$$@
> +endef

Shouldn't this write to a tmp file, and use move-if-changed?Â  Most of
the time the markers won't have changed, and we'll want to short circuit
dependent rules.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 11:47:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 11:47:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162546.1490153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJsGk-0006t1-LJ; Fri, 14 Nov 2025 11:47:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162546.1490153; Fri, 14 Nov 2025 11: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 1vJsGk-0006su-Ii; Fri, 14 Nov 2025 11:47:10 +0000
Received: by outflank-mailman (input) for mailman id 1162546;
 Fri, 14 Nov 2025 11:47: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=Irg0=5W=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJsGj-0006so-Dl
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 11:47:09 +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 a589cb3e-c14f-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 12:47:08 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV9PR03MB8390.namprd03.prod.outlook.com (2603:10b6:408:368::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Fri, 14 Nov
 2025 11:47:04 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9320.018; Fri, 14 Nov 2025
 11: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: a589cb3e-c14f-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Y0ebIRlId0d0qk20ttNsGgiKU6TYVy/oU8Im2JygfMxlKexURigWSkTBkbNbH+a/qQT0APEL3epi8J+wrPUICi6/TpED51iGHjw2tvrqWzuRkFvi/7fInMjGD8oppb6SNPuC8/QnnT8lVZCCspsDq8hxPMBi1WRESZdVZrIRIyxwCIxf1WK+RreHXtBdMIOv4zezzi99Mu4fQMV/Krh+zU7W2YL6sVyVRSwuVmYcrjrcxcLzUrKZg81/bp9Ycs2Y1zOqq3lRCu6PI5iQuC8DDlPC09KV8S2YsJo1mqbFIuoUCyZs635QgRVTfKDuXHlW5llyU//Zpj2eLrEmiE0aJA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=//3Cw1zm8tiFh7nO01MCCvux3kJmKaMDO96UPonjgww=;
 b=g0slRliZehcoDpT79REe/I6dwA2Vbo7hWFChRvCmd3s+LVIgi89xsg4McNaKdDxRQFvDrugkf4nUWSqd4AvrySF7x3zgh9Bv416lmI5DA+Yc+VrIuYz5FqczUWH8WEn/W6Zv7SZVrm2j0ZQdocvPMlp7XDasv+KCbxUy+t5myez6ebRoJLyzAOarfvozwyt9JvW7TqofwaQmgCpt3f8gjqWgFWHGm2d0YZVNGtnN+3wsh38b+8iZkg1Osa1/PCNLAB5t68U3yDnlaJ3UVkMHHAKj9k6xmWUYz+OQfKcWMvwen/J2GdQHDjQGaqWw6D61eFdvayrb5CtX6UHjSq8hOg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=//3Cw1zm8tiFh7nO01MCCvux3kJmKaMDO96UPonjgww=;
 b=F1rETwVb7iWAfriYeLtkGItsytjd1JLmog/H6CIAvthndq94Pf1pRtxvnrzCsA3o297i3v94PiFsrhH7Bd85LMA6qaOT4DPDF/qaWf8AwhT5kOOO3lvdg9C7pgeN7mPpZWk+d9ht1VLH+pp9JlpUfs4lhNs4kajf2JbKuzRoKHM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <ed64037e-99a6-4059-9ebf-92402e78ded7@citrix.com>
Date: Fri, 14 Nov 2025 11:47:01 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/4] config: remove unused paths from
 config/Paths.mk.in
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-4-jgross@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251114113238.9279-4-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0025.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:151::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_|LV9PR03MB8390:EE_
X-MS-Office365-Filtering-Correlation-Id: 04e690f4-f244-4b9a-8df4-08de237387c0
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?d01ZelVKemRLZGR3ZE0rWFNlWWVXc1puM0hGUFZEcExWZFhNNlZVQ3BvdEk2?=
 =?utf-8?B?OGRwSTlJbjRRT081U2ROS0ZYdXh4TzZHYTlzaEQwNFR5VGlTd2w3aDNtL01h?=
 =?utf-8?B?b1kzL2xZdDVDZjd5aXNaUW05SlQxYXBKRzlBRGtmL0FwWS9CSXBQNmorNE5s?=
 =?utf-8?B?SnRKajhuUG85ai9vUy83Mk0wa201SS81ZTZXVGpHR3FTb041SCsrbURVVmw4?=
 =?utf-8?B?SVJyNmtjMDJyanhad2JBNkZHVnh6NnM5anh2YjFtSVZPWVlRV0FUd0pmMjkw?=
 =?utf-8?B?ZHBhYk1Odk4zeGxvTUI1WENtM2puZ3d3ZFVtSEhkZ2hFTmxmVVRITzNWMTVa?=
 =?utf-8?B?S0V2cUdxN0c3RG04L0tXRmVVMTNvdmI5ditKVzJKcVJJa1VsK3RHVDZndkhK?=
 =?utf-8?B?TjIrTUQvNS93M0tWU3JwSGRjREphd2RQeFV3RXUwaVVNaS81WjRCWlRLZzlJ?=
 =?utf-8?B?L0NYWW9ZeVdoMWZjRTFLMCtZVTVoRVBWc1NjS2x4VmVxZDlXZ2VDN3U1VDZQ?=
 =?utf-8?B?OXBDdmlhWkwzaVhCckpqTm5PQWhtNHJlNG9wdFRQcG5KRnZzQS81U25aVWFD?=
 =?utf-8?B?V3c4NVdpWGt0Vm1zdUM3cE5uVmUvNzRiREl3ZDNXVVJ2SmZZNm54KzVzajBl?=
 =?utf-8?B?dW1nOUtxa2lYWWdUVkZpcmpCblJiSzRQZDRZbkZxeG5jNHJubjZRMzNEMVFS?=
 =?utf-8?B?RHBMaFh3dVdGZmJ4bWRKOWFyV2lqMktDSEJEcFlEMVFRNXdEQkc4LytlTWNO?=
 =?utf-8?B?aUh6di83YUV5RWdIMk03TEdGSzcrS1NUZHhPd2k0U1lQeWo4R0R3WGZtV3ZE?=
 =?utf-8?B?UHBEaS9idG9VRXU4Ym9ORGRKR0xzdVNIRmFianU0UFNJZDUwOTBDVGM4aHhu?=
 =?utf-8?B?cFo5WW0xcWs0RkMwZENJbWVFMmQrU05pMzVETXc4UkIwY2RaUElTbUExblhW?=
 =?utf-8?B?dHQxVWFweU12a3FzMUd1VXUyNEFkcEtHU2doRHRZRnNldzFxTXYyaytTRWxL?=
 =?utf-8?B?QmRBS0N6UE5mOGxkMWIvS0t6eTVDQ0FneWhGSld3d3RvNHJvTmU3blltNk91?=
 =?utf-8?B?T3AzbkNJWVVIclpKZGkwTXIyM2orME5reEpvY0d6LzBJQWVuMmpYMWtpdzNi?=
 =?utf-8?B?K1FjYUtkV2ZBdVRReHo0SDdUOFlIcVhqeWNVMHBnM1lST1BwZ0R2S0xJQk5Q?=
 =?utf-8?B?TVFqWGtESHpFK3lrMVA4cXlTN3VrZ3B0TzBFUHVBdmRlTEdPYWZpSExzWUhX?=
 =?utf-8?B?RG5sMnNTTFIxUzZGVzJUUTQ3cGVmckpRazNBUG1jUFI1MDRaU1AxSkRZeEU1?=
 =?utf-8?B?TGcybnRKSmo2N2tlL29pWXZiZ0EwK1p5VE56SldFTTNOYUhvVFVxQnNuc2pa?=
 =?utf-8?B?aDBLKy9WQkVIZWR4STZQY3NhTnBnR3hBa24zdHpzMDI1ZHFqaTBnTGxNNURU?=
 =?utf-8?B?bmFrWlFhcmZDZnZxRUc0L09wSllZZDM3MFBIMnA3eENlRCs4MVhGSDNsWFhX?=
 =?utf-8?B?TDA2S2Rmd3llQk1ybkpHblhZbXo0a1FKSEIrcGFSMG9MNnZ1cGVUbElLSFh1?=
 =?utf-8?B?SFY4Qmd2SFFiQzFCYUs2Z3pXSmVRbUNIb3RCL3JYa0VqMzE1OTYrb2pmNlVp?=
 =?utf-8?B?UTFiK3B3VWVycEtjclVDcnozL1lwSmtnUmdZaHRNVjJFekhXcHhISGpSNGFk?=
 =?utf-8?B?V3lnV2RheXc1Nlc5bWlEVlZCUldXNEdPRnMxdmdRWEdpY0Z3Vzh5RGd2YVhC?=
 =?utf-8?B?T094TEVmREt3VkJIN013ZWdJM3BKdVp2STBpZVB4SE0zeFRyN0dTZ3ZXaHZU?=
 =?utf-8?B?V1F0TElWMk1YNE5UV2w5ZGkrZ1UrbWpMYXUrdWxGYjRmTUxmaDY4SkhiV0NE?=
 =?utf-8?B?Y1lRcjlRQ0w2LzloeisrSlRWRzJyV29ZMEE2aTgxdUczSnJoaXMrbHMva3dV?=
 =?utf-8?Q?UP6kET5XF5tIBSgE28IH+cr4AG5+Q24L?=
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?Y3hxVW1YKyt4bndVU2F6V0c4bzJxTXBWK1pRMUx1RWRFWHExYVJJcVpkWVRR?=
 =?utf-8?B?Tk41K29tdWF4YnNUVnNLbUdVWGo2Sm1ldzV0YWlmNUhFUUxWZVdlc1dwcGVa?=
 =?utf-8?B?QVJWSFMyaDhnc0tQcXpaeVMrcHhzcy8zaFFRVDhtT251V3M1amR1TjFwQURD?=
 =?utf-8?B?ajBzNDM5QUgyVGhlWHdUdHFpcVhscTRFY2w1U1hzNG9rWEJkaE1na0RvemdH?=
 =?utf-8?B?QVQ4MTl4K0l6TVJERUZoYVhqWlI0ZUZzMGN2dm1BL2I2TG9KM0JuVUtJUVlS?=
 =?utf-8?B?djZLZktKbnJ3SzYxcXNiZTM0b2wzNURjVk9DVk9jS1FzU1dFQ1dLR1VHa2Ev?=
 =?utf-8?B?WVA5L3BtUFp4b3YzMzdLY00wMEZwS0ovazdVeWV0enZtTE02WlJObzNkVEwz?=
 =?utf-8?B?QWw5S2hHR1BTajhtaXFPeFBTUWFWRjJyNSswb1lJOE4vN3NYVXRNSlk4Qnh2?=
 =?utf-8?B?cXYwSTRocW1XSW1oVTR5ZmRzN1lKdEI2RkMwS2RKSmZZd0JTL1U5YkNaS1FR?=
 =?utf-8?B?cFRYcTJTSmh1akNGeE5YQzF1MnNMaDkvdm5kK090RUxyNTNRanVReUYwdGtY?=
 =?utf-8?B?bys5TllyUjU1YzFCWlFtaTRTUmNHYUdHSEU4RXVXY1V5ZERSa3lhZG04Nkc1?=
 =?utf-8?B?dHFjc0R2TkN6OFlOb0Y2QzhoZWRXNWFOajFzZkkwb0FvN04ycVpGdCt2KzYv?=
 =?utf-8?B?RHVTK2x4dFpTMnY4dGdCY0tmblhUUWJtOCtPQ0VvVG9mQ1FiaGwvcHFtWWxr?=
 =?utf-8?B?T0ZqUWFudHFERnhzVHliVmVqM1FrUm5sZW5qZlJSZ2daYVNGK1NnOW9NUXli?=
 =?utf-8?B?ZU9XTXM2ZGhwRnlXVm9pNU9YQkx4OUs2eUpObVNEUFdWUTJkbzNFNFhCcjBx?=
 =?utf-8?B?VWVYcFNTcXpFeThXV1kzd3dHZm1MQ1NPaS9DMTFBeUE0Z0ROYWFXK2w2bVFi?=
 =?utf-8?B?YmR2ZXFqRTFucHN5aHhWQzIvNmNpVTZ5Mll5YkNzM2plblR2Y3B6MkJNK1FP?=
 =?utf-8?B?Y1VwTTA1RGs1bXQvNjFvZ1ZxUVZCeGszTTN0aGR5b0xDNXJ5SmUzY1Rpcjli?=
 =?utf-8?B?b0NsNytBcE16c3N3L2ltZ3Z3QUdKSlhRUTlWY0dIWHEyM2FxK1UzdXlCQjhp?=
 =?utf-8?B?U2ZtV2FJcnpzczJ1ejF1Y0s0Zk1UdjhKSytpNVdpSWJ4TXNlb2E0OE9aV05k?=
 =?utf-8?B?VGtWMERnMTc1Nk9vai82RWhCMmdJVDJ3WHlrczdla2pZTCt6NTk3ZmlvYm1m?=
 =?utf-8?B?ai9Gdi9zWFB5cjRBOW9XSmxZV1hidWpJOFNuVkp2YzhSRitXcjB1K0tpSkVq?=
 =?utf-8?B?d1V1Q2pmZm9DREVYWmhSVE5iV0EyVlFjSktNOFRUZDNhd29nK3M4U0hicGl4?=
 =?utf-8?B?dGdaR0h1V2lQeWpkY0R4cFYvYWFOYTgwTFQxcENYM0lBSEZmNEVNZVpRS3Fh?=
 =?utf-8?B?MHJIY0hScXRlTSt5cG9EM2h4RDhTTCtKWEhZZjBKUmJyZ1ZaeTdwVWtkYU04?=
 =?utf-8?B?RXFmalNVWmsvMmYyWmdXWkZ6eDhnSHlycGttbi9nRVIwYjFIRTlYNGFmdkF1?=
 =?utf-8?B?OE9OalFFeFdaTkZ1WmQ3ZkJrUXlXY014UDFaNG9lZk5pY09EV2FlVEdVUUd4?=
 =?utf-8?B?SUpsejV6WXZhUXV3cVRRWnBESEljY1g4N1FPZHVsN3ZuUm1IRS9WZ09hVk5a?=
 =?utf-8?B?dC9KVFlaMDNWNGtCSHZkUCtsVW1jVVY4bEVQSG9yeDUva0EyNWVYN3RPekxi?=
 =?utf-8?B?dXdNczREU0gvckZsc1M1MnQ3Zkp1RDZVdmpKVjcyalJYK2s4TXVTMndSdjFK?=
 =?utf-8?B?bEFhYmxXSi9aZ2J1SmREYXE5ZGdFWlhhSTNoOWlxZHp5R0dYVERWaWg1NEph?=
 =?utf-8?B?dTI2eHhKdnhud2VoYzlWeFpvbW9ORk1Gb3NXOXA5VDE1QnFkQ2wrUTljODBO?=
 =?utf-8?B?MlFxeGU1R1lBd3p5cHEzSGJLN0NFTDNJLy9HS0xPaHQzdzFrNXpFQ0dlL2Qy?=
 =?utf-8?B?N0ozdFRYV3g1RGNodmJhOVArSFpNUmphK290Q2dwTnRKTVRnK0xxdHJJeHJs?=
 =?utf-8?B?Z0tEZnJWMlRzSmsxTFNnZmtHUC9XMldtSEpGaFcxOGJlb3ZLMmhHRm1DVXM5?=
 =?utf-8?B?WUg1aDhsdm81ajlpTVg0MXZJN25Qdm9tTHpXa3RPMjFtQ3FpNjhUTEJiOENj?=
 =?utf-8?B?dUE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 04e690f4-f244-4b9a-8df4-08de237387c0
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2025 11:47:04.0442
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: LeVedGbj9gto5W/VPf7SMyl33Wra4gJyHb/3GHArqf7g6QuoK4DhfN9o68qkk8OlVQsYTf5oi/+Z/Un5FdgrwFKhYsDLUhySmpbltiRSbpw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV9PR03MB8390

On 14/11/2025 11:32 am, Juergen Gross wrote:
> Some paths in config/Paths.mk.in are used nowhere, so remove them.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>  config/Paths.mk.in | 5 -----
>  1 file changed, 5 deletions(-)
>
> diff --git a/config/Paths.mk.in b/config/Paths.mk.in
> index bc42748b7a..668545be2f 100644
> --- a/config/Paths.mk.in
> +++ b/config/Paths.mk.in
> @@ -20,10 +20,7 @@ libexecdir               := @libexecdir@
>  datarootdir              := @datarootdir@
>  mandir                   := @mandir@
>  docdir                   := @docdir@
> -dvidir                   := @dvidir@
>  htmldir                  := @htmldir@
> -pdfdir                   := @pdfdir@
> -psdir                    := @psdir@

The point I apparently didn't make very well was this:

We generate both HTML and PDFs, yet use neither of htmldir nor pdfdir.Â 
Whatever is done to one should be done to the other.

Leave just docdir, and let whomever tidies up the mess in docs/ adjust
the paths as necessary.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 11:54:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 11:54:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162560.1490163 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJsNn-0000Tq-CA; Fri, 14 Nov 2025 11:54:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162560.1490163; Fri, 14 Nov 2025 11:54:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJsNn-0000Tj-9a; Fri, 14 Nov 2025 11:54:27 +0000
Received: by outflank-mailman (input) for mailman id 1162560;
 Fri, 14 Nov 2025 11:54:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Irg0=5W=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJsNm-0000Td-AJ
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 11:54:26 +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 a9da5483-c150-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 12:54:25 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 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.9320.17; Fri, 14 Nov
 2025 11:54:20 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9320.018; Fri, 14 Nov 2025
 11:54:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a9da5483-c150-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ab45AB4kFf+6r0weWuxBvDgPOIHvy2zCI65CSECIMuYRvIgGUMiL8u8GP9RoQRKUowkJhN3MiqoQx/2uA+uxBRRsdVKPFWQVsqnlE54O1+KmURdhrMT+MwHlqFfO8WjDffxrL7EABM0FzZk8Hkjn53t1A+Zr23gMTzR6fo9b1w6iWGzqmT0ClVYrU+JaNzezGzfQMP8zWlydf5OG6qHaW0EWqP7uzbdRXQTdFG2EXOwCNaMcRrVdxJG2TbCKetFZ8mvPEWdj9nBWJVOJRBXHvBUdvViNQVFzMeI367vpE9b844MBmVzkqxfbJnqzH3EAQzHy3OwCtWKsoKXLlcAalg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+7YXKWCSILIEXb8JNs06kc3dr+L/tP/IkNr3smpeHk=;
 b=PGmBokA5RPCF1JhdO94r8w2P6JpSeGSZf2kYS8FKpfrDvwFSgccUtvxWV0yDd/6+5Qgsms0uesjSSDejxJ6INtUS2QXQ2em+I2q3YWGbvdtbV99prnhkaxaXBTn6t+PTvmm3UA25oL2zWgSr4ZVADACJWUYb5XnXU9W/DafMErJfQxyfXVjVXIMHgJm3abieQCBk+fTlDYTqP/Ro/rd1nPEgPhGxW2jLO0s3rOUGQnCNEPmZH2utxJYZcGb+u30NYMpVUMlq58I/sWUHkguDsiTKMyg7WJVqtUL0H1NSvw0tewLRbWR1qL18MCEfW4W2PKOkUBnjyc5QWTMPciGqzQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-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+7YXKWCSILIEXb8JNs06kc3dr+L/tP/IkNr3smpeHk=;
 b=YQZtdqFaC9FUJ2AJ+I6RZ6HGl2ThwTqv/HQdr7DDPSKvwDZsebYNcB4tcf8+w+dCvN/vz+qchyWxE+CSR7mRCiaj8TdkwXpt6f1AJCwUi33Hi47Lq6pKNDSQBLYkhUoABw4KB9/dPC5RzvxbyuG6c+N5oP+r2rc+UgQEldYZH0c=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d558864b-baa7-4262-9336-1f3362d7924b@citrix.com>
Date: Fri, 14 Nov 2025 11:54:16 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/4] tools: replace @xxx@ markers at build time
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Christian Lindig <christian.lindig@citrix.com>, David Scott <dave@recoil.org>
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-5-jgross@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251114113238.9279-5-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0063.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:153::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_|CH2PR03MB5366:EE_
X-MS-Office365-Filtering-Correlation-Id: a80e1f9d-6243-41a3-50aa-08de23748bd6
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?TFJRKzFpVStJRm5uVm1tVjBWblo1ZGJvWkF5eitDL3Y3SUZKdHlkWk1NYzZw?=
 =?utf-8?B?R0JsNnJENmwxV1c0UWprdXVON1ZSUWJpcWFXZFVvV2g3K1lBTmNxem9tOGJE?=
 =?utf-8?B?YlRJU0N1ZDFSajFzMVExUmptdnlRVzJ1bzliMWlKRmdra280UHVMUjhZQ0Zs?=
 =?utf-8?B?N2hCTEtTWVVoVk5MdzN4V1BKblRKSUVLNEcvZWlqdGpWUVVRRDlWL3VIenV6?=
 =?utf-8?B?TTRSeVUxdm1JWTltTEN0UnRUaUlmaGY0V2w2V3hVSTkvK3ZtOFNxQ0c3Nk12?=
 =?utf-8?B?WTlXUzBLNEZvSG1FYUZRSzZoVUkrMjl0SWdGaHduNW0rOTdZWjBsUXNUZmRz?=
 =?utf-8?B?L1BLSk1IaytXeGVmcVltM2wzVVVqR0tRYkhiUEJzMFZoaHc3OUpsVjRXV1JM?=
 =?utf-8?B?dW53djZOMGhGb3MxWU5DaVh0QVJwNnU0Q2NRNGptTUpSYTdnRGM3dXh5THdp?=
 =?utf-8?B?Q1JQcURXb0gxS3BGblQwSWdPbmhJWmtuK1VHTWttdG16eUZnWGlPMTFXOTJS?=
 =?utf-8?B?WC84WU9ZQUtSSitYSjZQdDNvNlk2QjVaOXBRaUZvVWhMaWdrcUV4MVRxMGRz?=
 =?utf-8?B?ZFdVM1BYSU44anYrS0REejVSMGpjS3h3eWJnS25ERjBycUNvcERGL1dVa01T?=
 =?utf-8?B?OHJPaFZGVVgzaXhwQ0RGb2Q0VXlvU0VuOUc0VmRIeldsSWMwQ0Y1Z1VQMjZw?=
 =?utf-8?B?N3llSkg5cTBkYndyaHVBUVpBQ3I4RzFEeWc4RXZBU3JGUUV6R3NZVCtFSm5s?=
 =?utf-8?B?L21pTDBSbVBOMVJoa0FsN1RwK3VsSXRMZTgzZjFXSlhQMlhSOGpRcjZtT3pT?=
 =?utf-8?B?dTdsdGphNEU4dUY3V2Mva3kzdlA1OFR0NUJ2djdabTNrdm4yRFZpcFRTVHhT?=
 =?utf-8?B?YmhFeCttbWkrQ2FLSFhqWFRHOURRM1NpaDRNSGdrM0ZjTFd6RDUvZjVEbU0r?=
 =?utf-8?B?SUVyNHV0YUtUV1ZkQmFqUlJvMUI0Qi83WTlDUW5YajFiSk5WM2VSZlRxcGF0?=
 =?utf-8?B?NGZGZ1VWSmluMUhjUjdNejVUSEFINy94R3hPUG8rZ3cvdTU1UnVlMWZqOUZ6?=
 =?utf-8?B?SWw2RC9EWFpsdkp0RlYrRjZFS2VrRG1TMjZ6VnJCL2lWOXJTWXlBOVJET0R1?=
 =?utf-8?B?L21vZVhzcm10Qks0TjRXNE9ET0JpdW9vMFAvQ2ZtQ0g2ZlFydXVrZzhVNHRk?=
 =?utf-8?B?eHR5d3Q0eWlnOXVjbFdUN3VXYnBHSFdkcDJOV2xTWlhkMnJhT2wyN0RNS3hq?=
 =?utf-8?B?SDFrNHdudkhDRi9IZVJ5SElQOTdIYkMzM2V5Zm9MZXBXK0FKYnl1NjlSUlRy?=
 =?utf-8?B?eU8wUEd4QWNJdHRyVW9uR3JxQUZoZk5DZWFqWCs0dklINWR5RndieUJ5V1Ru?=
 =?utf-8?B?VThjVnBzcFM1NlJBSzB3WW5odVRHTFEybzR2ZFltRFVod3JBMFVBUnVYOVo5?=
 =?utf-8?B?am5ya09PUlhTMlMyRDRMNVFzblVVZXptR21iQjg4WkZ3ZXc5a3FxMThkVHRm?=
 =?utf-8?B?SWFYYXNyb3Q5QzRRZG9ZTlpkcGJBU0tTdk5WWTFaKzQ1SktnSEFWY0FpUGR4?=
 =?utf-8?B?b05LL0xkNFhPYUpqUFFaR2J2TDZXR0VFdE91WHVBZHorYnc1WlBzd2d2a0NE?=
 =?utf-8?B?OXdDNllDcDlKVUFTM3BjbXg0UG8wRFlsUlNsc2hTdGh6L3VPbjJCc0pDbk1S?=
 =?utf-8?B?NTQ1WFFEY1hJcVBFUWRicTgzRm5xenA0U0RicEs3WEZURXl4V2V1bUY0M09L?=
 =?utf-8?B?VFdqM3FVNDExT1d4QWRYdTN1aWZrNW1jdER4VnVnUVV4aVRxOVZyQmprTGI3?=
 =?utf-8?B?REd4dmxRVzc1elFSSFdkUEZqMGY2b1FTckp0OFMxUDVOb0tHbHRHMGF4RkJ1?=
 =?utf-8?B?MHp2d1JtUFBmeGQrVzhSbWplV1E4L3paa2Q4Mk1tTTNTcm5vczhVMStQdXJy?=
 =?utf-8?Q?OK6yDUNXvUG5jafTHnVG9WUzADDLbK1i?=
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?UHU5LzJBWHBPNWFnWnk3WEhlbVIrbDlCdEtLV3BKSHl2cWtNbWlodVJKM3Fx?=
 =?utf-8?B?TXZzK1JBZnB2Mlc0aE1sVXI0TnBIK0FuYXZoN1gxTFBjOVNCQkNmVFBVcFNP?=
 =?utf-8?B?UW5TUXJPWThDeGtTUEh1akZnRTdMRDZNZ3FlQTh5UDc2NVg3YktCckRaWm5x?=
 =?utf-8?B?Mndyb1FPNHBaQUNKSkpqUllmN0tDc1g3YXFiSnhjNTdTS2h2bXJuUWVmcG15?=
 =?utf-8?B?R2pwRzYyTHlmTEV6a0E0LzAzR3BmbHV2dnpHTzJWMEJEVFhzZEZKSlFDVzAr?=
 =?utf-8?B?UXZITlNRbGttWVhnbkdxajZYWTE2NkpkNVIwWUpyODFlczZvRStuSGdsNXpT?=
 =?utf-8?B?QTJnZTFrMFBNUlJmYTkxWDU4N1Q1RjlaZzMrMWt0aWU5Z0Y1K0JhR0VWOHdW?=
 =?utf-8?B?STJiTWd2MTF4aXozajBvdFVhOU1WUVdoZEdqOUQwN2xYaWZLL2g2L09JZWhC?=
 =?utf-8?B?U3c4S3Jjb28yL3F3cm5Nejl4aGJWNDMvdG9jSlduV3dwdkh6cFNRdGdlYmlB?=
 =?utf-8?B?R2VhSjhUUFdTZTRlVlhPenRkSzNOalhYWWI1aEdaaGMrSmp5c0FaMndDcitV?=
 =?utf-8?B?Rkw4bnZwS09hWTFUTzJmUVAxMHI5VkdwekhMMVpLVFd5cmlySlcwaFlYc1Bp?=
 =?utf-8?B?Zk4ycUVXK3RpVFVadVZoanliSnJxdjNUenByWk5za0NpdjhZdzBrRDdEdDVP?=
 =?utf-8?B?aUVlWHp2WlhpSWpuNS9hSkpjbktWUFgxQTNTMGVJKzB5S0RnOVpZZEZqVTdJ?=
 =?utf-8?B?NUlLVW9rdmd1Ync2N2NLUEsxUnlTT2NvQ1RqUTdCK0R5NXFGOU1IYlBNME5q?=
 =?utf-8?B?c3c5WlhXSnIwTUVOZE1XZlhBZnVIc2tHUVRuQzNyUS9rTW5NRjlZbEFic2Z5?=
 =?utf-8?B?Q001VW9Ed3EvTW4zRGVjYWdtMytmaTI5SW55Q094cE84TStsUWRxeXQ0S2ZT?=
 =?utf-8?B?cEd3NU5ZSzJVN2NVejhZdWtmMHRQWVpqYmFwOXQ5WklMd21aamwxcGs4aEFK?=
 =?utf-8?B?NUNNcTU2bGhwTlo5TzBWaE1vVXFDaUxqVElmSFpsWHBwd3dhNzB0YmlYRkMx?=
 =?utf-8?B?RGZRTkprU241Q3R2NkRkTWpVcUNmcGFIcjVZZlIvYnlKK1VFdjNYZVdRZ3h5?=
 =?utf-8?B?eDBRN3g1OGtQeGE0cmQ0d1d6SUpMeE1mMkhoSjFWVWZOOHZ6Ykdaekc0NGZ3?=
 =?utf-8?B?MjY2SjRKME5PL1dOSGFSakYvSXMzaXhtL1I4eWVNdXlUSGVZSURoQ3lZSjVS?=
 =?utf-8?B?Sng3OEJ4YnFNYU9PSHl5d1dGTFphdXczTFl1TGdWSlJtNCttYkNlS3pvREJS?=
 =?utf-8?B?bExrY0wrVnBJcGFJVXZLRUgyRjhZNDdSK0NIR05HZ2t0SXVLMU1RVlBsZTlJ?=
 =?utf-8?B?ZlRnR0VSeXN3L1BLdVY0MWF0Snk1bHBIVm5SMHM3NTA3OUhON053MUZZelNj?=
 =?utf-8?B?c2lpRm1UZFU2clQvRGwzd1FoRnpHK29CUGdBSzlranl0dnlySTdSdSswYUMw?=
 =?utf-8?B?RmVVZ1pxSkVSNHRkVzBTT2s1MjRINlFGdUhKOHdhVUp5MkxRNm9GNFFNeFZi?=
 =?utf-8?B?M2dWUTVIbTg0NlNaYlJsaFV6UnYwQ0ZST0REY0Y0R2txVUhVWGdadXgzbEpr?=
 =?utf-8?B?Y1pXR0pYVnM3Z2F4bUpFWTF5QnZtaXQxY2s2bGVSMks4d3R2K01BTW1qK1lv?=
 =?utf-8?B?NnFuYVlnM2IyOFRzeDZyU3R1NWlwaFNldStDekhJMEUvcGZTWEU5alpuM09H?=
 =?utf-8?B?bnBybnB1cWppWk5ubTQwRHRuRTN2Zm5nd055U2RRbHpkNE01K1dMQkdLYi9F?=
 =?utf-8?B?UzN2VE9OdGpkQ011MTh3SHhOQmxDa2JqUlhxTXVZVUV4cnFadFRTZ3IycUJz?=
 =?utf-8?B?S24vQ2pVdjBRZzV3aUVPbmhBVHJCOXcrV1JNRVBML1lDS1JyOVB4NGxvTVVv?=
 =?utf-8?B?YmZEZ2dmMzdpLzMwczhXZUV5TU9uUU5KSVQ5QldrYWIwTzZ2WnZpOFkvQTlG?=
 =?utf-8?B?RHhLYW9sTVBrRkpHeXh0UnhHb2JzVkdTTnR0eno3L2ZoTENENDNGd3k5L2Rx?=
 =?utf-8?B?amdBN2RtN3RzMk9MeW56V3RGSDBLajNuY05aWGh4ZDJxK3FFb2pDZExSYndz?=
 =?utf-8?B?K3JEQTJ6QTdnbUhCL3FJc2IvNVJLLzdIaFFGMFh0c2JGZStySFVGeDcveHd6?=
 =?utf-8?B?S3c9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a80e1f9d-6243-41a3-50aa-08de23748bd6
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2025 11:54:20.4130
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wN/dkTcz/rYTdjg+sHFMdF/6AiUK3xtkA1C8wimA5QA5cgxa2URMoh1GGiCvvgQ9KKkT7RYPbxvHSnmQ+P0YDtS5EXUKA+Xp1+W/k/k252Q=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5366

On 14/11/2025 11:32 am, Juergen Gross wrote:
> diff --git a/tools/hotplug/FreeBSD/Makefile b/tools/hotplug/FreeBSD/Makefile
> index a6552c9884..8de923781c 100644
> --- a/tools/hotplug/FreeBSD/Makefile
> +++ b/tools/hotplug/FreeBSD/Makefile
> @@ -51,3 +55,4 @@ clean:
>  
>  .PHONY: distclean
>  distclean: clean
> +	rm -rf $(IN_FILES)

In addition to the points in patch 2, can we use $(RM) (which includes
-f IIRC) when adding these.Â  None of the generated files are
directories, so the -r wants dropping.

But again, this is far nicer than v1 overall.

> diff --git a/tools/hotplug/Linux/Makefile b/tools/hotplug/Linux/Makefile
> index 9a7b3a3515..6fcf84a6f4 100644
> --- a/tools/hotplug/Linux/Makefile
> +++ b/tools/hotplug/Linux/Makefile
> @@ -37,7 +44,7 @@ uninstall: uninstall-initd uninstall-scripts subdirs-uninstall
>  
>  # See docs/misc/distro_mapping.txt for INITD_DIR location
>  .PHONY: install-initd
> -install-initd:
> +install-initd: $(IN_FILES)
>  	$(INSTALL_DIR) $(DESTDIR)$(INITD_DIR)
>  	$(INSTALL_DIR) $(DESTDIR)$(SYSCONFIG_DIR)
>  	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)

Hmm.Â  Logically, generating the files should be part of the build step,
not the install step.

I see you already had to adapt this way for Ocaml, where the generated
files are source files, not just config.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 12:55:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 12:55:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162593.1490173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJtKN-0001k8-Tk; Fri, 14 Nov 2025 12:54:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162593.1490173; Fri, 14 Nov 2025 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 1vJtKN-0001k1-QH; Fri, 14 Nov 2025 12:54:59 +0000
Received: by outflank-mailman (input) for mailman id 1162593;
 Fri, 14 Nov 2025 12:54: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=leFb=5W=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vJtKM-0001js-Jk
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 12:54:58 +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 1d985ab8-c159-11f0-980a-7dc792cee155;
 Fri, 14 Nov 2025 13:54:55 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-47778b23f64so14767135e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 14 Nov 2025 04:54:54 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4779525d2bcsm5975325e9.5.2025.11.14.04.54.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 14 Nov 2025 04:54: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: 1d985ab8-c159-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763124894; x=1763729694; 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=YqKVpNuK1uKMzQbRS3O9D7tON2zEAALyD0G+Nx+OlgQ=;
        b=GrVnCHzVSOjQubPBwuoxdMk8LawYZEvQCOiFp8x4ZFnzEp66nr8lUjZbbRFsv93xn5
         RJ8Wm3DnY6XWva8T7o81AgyBPTv2bx+llczNG5gF+NaEMD9hfV3113GOieI00U+vSjS1
         WW0IeliQuDKgkOPL4AqT24tsBA4vQGVnKS41XWr5oEZEm3jtiL8cCheRdoTAdqI7fZee
         fl/+DIx0SoWzQEsEY146bkejCK8kXGo7XI+ZNAXDGxOasS0sCLur9AxfGq1uuU2G/d2M
         qHU+l6aF1KGtXpBmlInFBbChBXdXa9nxchEJG74GyN7r2DSd94Cj65nWOBFSTblG8Blw
         fsNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763124894; x=1763729694;
        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=YqKVpNuK1uKMzQbRS3O9D7tON2zEAALyD0G+Nx+OlgQ=;
        b=KGxghSzix80pupFGkmfUJf5+3RGU77o/rnPR52cCwznBAVO4JU09wx677A3iS4iubi
         m+/4YlmzJPYIhE1HQzEhtk9sdFhXLLdM1Fi+GEVdlJpdVyKsJy68nFaF0G5AvbDQNnsS
         fwOMCbZwHTSvIesWLXCjSt2d/hkqL6a27LTGUdzotZWUWZ8qUld7dej0RL+FpCTuIigC
         3Vz6Cp9hwwg5URK2RhhYEg74ILK0Ip7kqce7ME4i6fUHv5VFYKA1fdlrMjBQvTEd8kWN
         Z+IAy1FcTQx/4ADisVKLI933qxkaBXPtWcnmRGJ0xk4KsJA8lT2tVPwckugU8Pj+VBLs
         tySw==
X-Forwarded-Encrypted: i=1; AJvYcCXJnLDCGUcOLCBIl+9KDiVlPmIkb9NVNoL4mnht7Ne/Opirf2jhMmNnHQTSAUn7cjolsB85qTiIhc4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw6j3BjM+ux0aChr2xVLKwV+GHugZCyhD6MQEewgEP7EkOhPky+
	iaiF8geD9xbF+JEhYluvmfAf/3W2VLOO74yTw59Zx6oFFg4hI1PLsxw/L3Eq1NzP2b8=
X-Gm-Gg: ASbGncs4rXk2a6bHB8Q5h2q6C6QzXyT39dRhzrs6/6YTqZFyfD2gokRvxIzaaP+0jod
	NnOGQL1ioGTTo6Aj6XEs25uwZcQeWK4tOgePjs6rDf8F+lx/iAZc2XnUl8ou8BWmQQSSBUUQb34
	EL/N1wk4ogvSQ5kSGT0mDg86AmZv4d3WGi3cmqPWFFatNI7jz0X7CNGMkjmKenX9dmhMtDAiN04
	1mVMOWyHUTjsWvqEOO7gdLoQaWVcpz9amprix3gzmZdh+0EmE5Fu5Hh903+IEW0NWN2Wte9V3wO
	F3vm9ukET1hLoAedhwcCx2d/FXdTVHygygqVrA8gtxtAkc82ojR9FZSDvrIMrwTj3H+PF396z8g
	4+07vyLgNxCSl+NvdwcghJldl/uqECanm/KA6GFLhLXJfvkZdqL2FuxVN9B6vTj3F7Bt0SMAabx
	IT1oveIkbTnsBQZfG5oI1FZguvWjW9+e+vyHT0YjiJ+ysO5jd03WKkgR6jR6L/miMRG8g4+mWV2
	Oa+DPdeqkoyNf4hrDOLwtYx7vXEbRyohNCaLno=
X-Google-Smtp-Source: AGHT+IFMfgF/VLmVhwJsynzDuNAecpkH0tIJAWdWL2xHut7YdeK+yT3HyCUZZQEM/pg/VCJsLiFkkA==
X-Received: by 2002:a05:600c:1387:b0:45b:47e1:ef6d with SMTP id 5b1f17b1804b1-4778feb2507mr29120585e9.36.1763124893621;
        Fri, 14 Nov 2025 04:54:53 -0800 (PST)
Message-ID: <cc90d18b-f88e-49d9-a55f-b7035ce43167@suse.com>
Date: Fri, 14 Nov 2025 13:54:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] build: add make macro for making file from file.in
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-2-jgross@suse.com>
 <468c6686-43e5-4c35-8366-58558f199e22@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: <468c6686-43e5-4c35-8366-58558f199e22@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------PNPCGwuF0SpejIkhfwi4kZAd"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------PNPCGwuF0SpejIkhfwi4kZAd
Content-Type: multipart/mixed; boundary="------------wdUHWjHXtN05tVQVCWf4QEvw";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Message-ID: <cc90d18b-f88e-49d9-a55f-b7035ce43167@suse.com>
Subject: Re: [PATCH v2 1/4] build: add make macro for making file from file.in
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-2-jgross@suse.com>
 <468c6686-43e5-4c35-8366-58558f199e22@citrix.com>
In-Reply-To: <468c6686-43e5-4c35-8366-58558f199e22@citrix.com>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------wdUHWjHXtN05tVQVCWf4QEvw
Content-Type: multipart/mixed; boundary="------------pf45BxBrzLV4r4RsJY0bWbD5"

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

T24gMTQuMTEuMjUgMTI6NDIsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDE0LzExLzIw
MjUgMTE6MzIgYW0sIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBkaWZmIC0tZ2l0IGEvQ29u
ZmlnLm1rIGIvQ29uZmlnLm1rDQo+PiBpbmRleCBlMTU1NmRmYmZhLi5kMjFkNjc5NDVhIDEw
MDY0NA0KPj4gLS0tIGEvQ29uZmlnLm1rDQo+PiArKysgYi9Db25maWcubWsNCj4+IEBAIC0x
NTksNiArMTU5LDE5IEBAIGRlZmluZSBtb3ZlLWlmLWNoYW5nZWQNCj4+ICAgCWlmICEgY21w
IC1zICQoMSkgJCgyKTsgdGhlbiBtdiAtZiAkKDEpICQoMik7IGVsc2Ugcm0gLWYgJCgxKTsg
ZmkNCj4+ICAgZW5kZWYNCj4+ICAgDQo+PiArUEFUSF9GSUxFUyA6PSBQYXRocw0KPj4gK0lO
Q19GSUxFUyA6PSAkKGZvcmVhY2ggZiwgJChQQVRIX0ZJTEVTKSwgJChYRU5fUk9PVCkvY29u
ZmlnLyQoZikubWspDQo+PiArDQo+PiAraW5jbHVkZSAkKElOQ19GSUxFUykNCj4+ICsNCj4+
ICtCVUlMRF9NQUtFX1ZBUlMgOj0gJChmb3JlYWNoIGYsICQoUEFUSF9GSUxFUyksICQoc2hl
bGwgYXdrICckJDIgPT0gIjo9IiB7IHByaW50ICQkMTsgfScgJChYRU5fUk9PVCkvY29uZmln
LyQoZikubWsuaW4pKQ0KPj4gKw0KPj4gKyMgUmVwbGFjZSBAeHh4QCBtYXJrZXJzIGluICQo
MSkuaW4gd2l0aCAkKHh4eCkgdmFyaWFibGUgY29udGVudHMsIHdyaXRlIHRvICQoMSkNCj4+
ICtkZWZpbmUgYXBwbHktYnVpbGQtdmFycw0KPj4gKyAkKDEpOiAkKDEpLmluDQo+PiArCXNl
ZCAkJChmb3JlYWNoIHYsICQkKEJVSUxEX01BS0VfVkFSUyksIC1lICdzI0AkJCh2KUAjJCQo
JCQodikpI2cnKSA8JCQ8ID4kJEANCj4+ICtlbmRlZg0KPiANCj4gU2hvdWxkbid0IHRoaXMg
d3JpdGUgdG8gYSB0bXAgZmlsZSwgYW5kIHVzZSBtb3ZlLWlmLWNoYW5nZWQ/wqAgTW9zdCBv
Zg0KPiB0aGUgdGltZSB0aGUgbWFya2VycyB3b24ndCBoYXZlIGNoYW5nZWQsIGFuZCB3ZSds
bCB3YW50IHRvIHNob3J0IGNpcmN1aXQNCj4gZGVwZW5kZW50IHJ1bGVzLg0KDQpJIGNhbiBz
ZWUgdGhpcyBiZWluZyBhbiBhZHZhbnRhZ2Ugd2hlbiBlLmcuIGdlbmVyYXRpbmcgaGVhZGVy
IGZpbGVzLCBhcw0KdGhvc2UgYmVpbmcgZ2VuZXJhdGVkIGFnYWluIHdvdWxkIHBvdGVudGlh
bGx5IGNhdXNlIGxvdHMgb2YgcmVidWlsZHMuDQoNCkluIHRoaXMgY2FzZSBJIGNhbiBoYXJk
bHkgc2VlIGFueSBjYXNlIHdoZXJlIG1ha2Ugd291bGRuJ3QgZG8gdGhlIHJpZ2h0DQp0aGlu
ZyBhbHJlYWR5LiBFaXRoZXIgdGhlICouaW4gZmlsZSBpcyBuZXdlciB0aGFuIHRoZSBnZW5l
cmF0ZWQgZmlsZSBkdWUNCnRvIGEgZ2l0IHVwZGF0ZSBvciBhIG1hbnVhbCBlZGl0LCBzbyBt
YWtlIHdpbGwgcmVnZW5lcmF0ZSB0aGUgdGFyZ2V0IChhbmQNCnRoaXMgaXMgd2hhdCB3ZSB3
YW50KSwgb3IgdGhlICouaW4gZmlsZSBoYXNuJ3QgY2hhbmdlZCwgc28gbWFrZSB3b24ndA0K
cmVnZW5lcmF0ZSB0aGUgZmlsZSBhcyBpdCBpcyBuZXdlciB0aGFuIHRoZSAqLmluIGZpbGUg
YWxyZWFkeS4NCg0KT3IgZGlkIEkgbWlzcyBzb21lIGFzcGVjdD8NCg0KV2hhdCBJUyBuZWVk
ZWQgaXMgcHJvYmFibHkgYSBkZXBlbmRlbmN5IG9uICQoUEFUSF9GSUxFUykgaW4gY2FzZSBz
b21lb25lDQpkaWQgYSBuZXcgLi9jb25maWd1cmUgY2FsbCB3aXRob3V0IGEgbWFrZSBkaXN0
Y2xlYW4uDQoNCg0KSnVlcmdlbg0K
--------------pf45BxBrzLV4r4RsJY0bWbD5
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-----

--------------pf45BxBrzLV4r4RsJY0bWbD5--

--------------wdUHWjHXtN05tVQVCWf4QEvw--

--------------PNPCGwuF0SpejIkhfwi4kZAd
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/Ey8FAmkXJpwFAwAAAAAACgkQsN6d1ii/Ey9Q
8QgAjO7V0DQMYCE46GnBV4DRNkU0+Vt9W1GtUXAJBLINxkEvM3ZdGSybEN7PIoj4b+lVpk6bh9OK
LVT7P7GmMbAh7FCc6eQ7wcdEynOfpIOGbipiihOB4Y/ThL9D4NpTGS7OsJCNXxhbV3ve/GsVk/e2
mJxlhodwWvlX1ca92jMF+kfXeu6pokmh9B0/SY4RPhbYR+6rrgrZYLTw5ZjPh/cLCMEmZKBLpfeg
FegmebSQ+JaOWVbcOuJuqjgR6UYpYNhetpQpvjV497F2plQNJs9i9GH9uI44XDYZZAHEk2Xrzxs+
vmHBno9kmjO21UwfOe9ij4w73D8t6C/WiBtWFGEP4A==
=Bkz6
-----END PGP SIGNATURE-----

--------------PNPCGwuF0SpejIkhfwi4kZAd--


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 13:00:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 13:00:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162606.1490184 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJtPd-0003Ry-GY; Fri, 14 Nov 2025 13:00:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162606.1490184; Fri, 14 Nov 2025 13:00:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJtPd-0003Rr-Ch; Fri, 14 Nov 2025 13:00:25 +0000
Received: by outflank-mailman (input) for mailman id 1162606;
 Fri, 14 Nov 2025 13:00: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=leFb=5W=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vJtPb-0003Rl-O1
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 13:00:23 +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 e1617eac-c159-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 14:00:22 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-47728f914a4so12584905e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 14 Nov 2025 05:00:22 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47787e442c2sm153392265e9.7.2025.11.14.05.00.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 14 Nov 2025 05: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: e1617eac-c159-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763125222; x=1763730022; 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=hsdr8A63hSFiVP1VClfhpqSTpeJd7BNBTZOgYUIqDJc=;
        b=KFaAJxNJuXPr/+YyLX4aM4w95Nh3cObUktEgaAoG0jJR7WhtRMk/5zlktFwj1Adf3r
         1uridRr9ZJjQlQKaYVaBrvxFMGPO8hHTLs+cLyjKrVLqosjnC/IRlXEjSQrq4M6TyjWU
         C58NO2zz5ynxhGlOiNlKjZQdoXioQy2JShH4Xon/eSwWQiAizbKKREE1yRKraRq89VXc
         tlcpLbTD9AXa/MMHU1KEayq9vmQR38sIrgtEGQtC8m7X3eUb70Ge28VjIVUHLFTWPrfL
         /pbUUydIIbj7xJq+S5xNxdeLgd2Oq4trQRgVTOFY2t8S2ShvN+XsXGn6qEpq4AUsgUuU
         faNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763125222; x=1763730022;
        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=hsdr8A63hSFiVP1VClfhpqSTpeJd7BNBTZOgYUIqDJc=;
        b=oQE4bwvW8hA4r0ye6DtwiAPQoW/NpY7xBQAsncPpR5fcPaUxOaRtiraex4AMjOVHOK
         9ByQLps4i6Gj9yKb5JfzK3bJ+RUd9hpoAfNraoR3u5Z9gU3DWEQLD0bzimes88IkrGsc
         ALk3fmk7faqA1OcJgjfzLkkVPRhgJwhide9nElsFUyMiTN5INtJPGDQ4ACnrknBgEgHe
         3ioIPXwBLmBhOL/AM3lK50vpy0quWclKitZ1ijr4zgEI9f3LJylCyXtFufpAtyrV5u7f
         zpYq8NyrkZX1soZtPVgsk41Xk+QlAtMr/8SZNIuX3PvLMrHWXmudXz730FJa4f7IKQAr
         96Gg==
X-Forwarded-Encrypted: i=1; AJvYcCVWzdhKo0qArcIH4tt0vIZVVHXvYGstkNIOHpd02lKY5zS/NzD6AJHMle3Yp0YitIbae8r0B4CoJVM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxg0sGaHrq24lDAJYSI1IlUzSCjvVIQg2rQfoFfY673aV5Znalk
	1TTVz1EfGQ3BUI2b4HMShr3JUU7tfGh0b5QKVmw1az7GRLYpCLN6eAqu5Gf+zhhsx7c=
X-Gm-Gg: ASbGnctgJNrU4W4BJFgsQaDUflUL2S3NR+VZXHZI6ZNhrshWdQWp8r+r96reqepazDM
	bLXWxf+c346Azv8gkA4y0lsc6WqLUjOOPatP2vcsy9N/+cCkWkNnjDxnrUCIthkk7N6BGUX2U1Y
	IYaxznTshTA/NY3H3cy6DnI00H6vOPPedYlBaTK+1ZxF5MhOnwwPXAu08FMZri4Y1RnhjYGHFRd
	VQBWqUT3oyjH/hD9RU0XR/XTloPTU00b7pgvKLt/j5i/ngDaNpIPDS7FkiwcH5EtasOy4D8qBtl
	bSWz5/VQxuiCJ5GjirUt/pGxG+Yl2aj3QDSKDTdqauF23RQgv71vYyvJu4L0YZOqt9kyzYZZiik
	uSfusGsbCDJsskCCkMyV1j76CYKUnvj/KcMef18zYMungiqc2VxKZchpjCxizSJkwpc8aGHrbiR
	LOEfRJcrimUU+4vOh3kyJopuQ4XOXbIGb6udbTm5dODs/ZWxkIWFI2Osc3VhnpCvMytMYCo21KF
	NKu+j/dUeinDDNnm+B80PAH5pRTgXqDM2dw6MU=
X-Google-Smtp-Source: AGHT+IF1FCEtqCTCStv4bPYo5kBJWLhOvuw4icWZXsH3LZ9PyCb3q2+ktbKhqMfMtqsMZl5lxSWuPw==
X-Received: by 2002:a05:600c:354c:b0:475:daa7:ec60 with SMTP id 5b1f17b1804b1-4778fe95f49mr29142515e9.21.1763125222054;
        Fri, 14 Nov 2025 05:00:22 -0800 (PST)
Message-ID: <2de93313-9f1b-46a7-99c8-618281aff2f1@suse.com>
Date: Fri, 14 Nov 2025 14:00:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/4] docs: replace @xxx@ markers at build time
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-3-jgross@suse.com>
 <7e24823f-cce1-4430-83f1-ebde6986efa4@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: <7e24823f-cce1-4430-83f1-ebde6986efa4@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------HXrnP2V0k06AGGRPegkmwev0"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------HXrnP2V0k06AGGRPegkmwev0
Content-Type: multipart/mixed; boundary="------------OCcGYbBUnnNTDfoN5iwdFBk0";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
Message-ID: <2de93313-9f1b-46a7-99c8-618281aff2f1@suse.com>
Subject: Re: [PATCH v2 2/4] docs: replace @xxx@ markers at build time
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-3-jgross@suse.com>
 <7e24823f-cce1-4430-83f1-ebde6986efa4@citrix.com>
In-Reply-To: <7e24823f-cce1-4430-83f1-ebde6986efa4@citrix.com>

--------------OCcGYbBUnnNTDfoN5iwdFBk0
Content-Type: multipart/mixed; boundary="------------hRaB2JpfKGZOAEOKGXmFBpxm"

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

T24gMTQuMTEuMjUgMTI6NDAsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDE0LzExLzIw
MjUgMTE6MzIgYW0sIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBkaWZmIC0tZ2l0IGEvZG9j
cy9NYWtlZmlsZSBiL2RvY3MvTWFrZWZpbGUNCj4+IGluZGV4IDM3Nzc2ZDMwM2MuLmU1ZjRh
OGNhODYgMTAwNjQ0DQo+PiAtLS0gYS9kb2NzL01ha2VmaWxlDQo+PiArKysgYi9kb2NzL01h
a2VmaWxlDQo+PiBAQCAtOCw4ICs4LDExIEBAIERBVEUJCTo9ICQoY2FsbCBkYXRlLCIrJVkt
JW0tJWQiKQ0KPj4gICBET0NfQVJDSEVTICAgICAgOj0gYXJtIHBwYyByaXNjdiB4ODZfMzIg
eDg2XzY0DQo+PiAgIE1BTl9TRUNUSU9OUyAgICA6PSAxIDUgNyA4DQo+PiAgIA0KPj4gK0lO
X0ZJTEVTIDo9IG1hbi94bC1kaXNrLWNvbmZpZ3VyYXRpb24uNS5wb2QgbWFuL3hsLW5ldHdv
cmstY29uZmlndXJhdGlvbi41LnBvZA0KPj4gK0lOX0ZJTEVTICs9IG1hbi94bC4xLnBvZCBt
YW4veGwuY2ZnLjUucG9kIG1hbi94bC5jb25mLjUucG9kDQo+IA0KPiBTb3JyeSwgSSBtZWFu
dCB0byBzYXkgdGhpcyBvbiB0aGUgcHJldmlvdXMgcmV2aXNpb24uwqAgQ2FuIHdlIHBsZWFz
ZSBsaXN0DQo+IHRoZXNlIG9uZSBwZXIgbGluZSwgZm9yIHRoZSBmdXR1cmUgZWFzZSBvZiBp
bnNlcnRpbmcvcmVtb3ZpbmcuDQoNCk9rYXkuDQoNCj4gSXMgSU5fRklMRVMgcmVhbGx5IGNv
cnJlY3Q/wqAgVGhlc2UgYXJlIHRoZSBnZW5lcmF0ZWQgKG5vbi0uaW4pIGZpbGVzLA0KPiBy
YXRoZXIgdGhhbiB0aGUgLmluIGZpbGVzIHRoZW1zZWx2ZXMuwqAgR0VOX0ZJTEVTIGZyb20g
djEgd291bGQgc2VlbSB0bw0KPiBiZSBhIGJldHRlciBmaXQuDQoNCkkgd2FudGVkIHRvIG1h
a2UgY2xlYXIgdGhpcyBpcyByZWxhdGVkIHRvICouaW4gZmlsZXMuIEFuZCBJTUhPIEdFTl9G
SUxFUw0Kd2FzIHRvbyBnZW5lcmljIG9uIGEgc2Vjb25kIHRob3VnaHQuDQoNCkdFTkVSQVRF
RF9GUk9NX0lOX1NVRkZJWEVEX0ZJTEVTIHNlZW1zIGEgbGl0dGxlIGJpdCBjbHVtc3kuIDst
KQ0KU2VyaW91c2x5LCBpZiB5b3UgaGF2ZSBhbnkgYmV0dGVyIG5hbWUsIEknZCBiZSBoYXBw
eSB0byB1c2UgaXQuDQoNCj4gQnV0LCBvdmVyYWxsIEkgdGhpbmsgdGhpcyBpcyBhIG5pY2Vy
IGNoYW5nZS4NCj4gDQo+PiArDQo+PiAgICMgRG9jdW1lbnRhdGlvbiBzb3VyY2VzIHRvIGJ1
aWxkDQo+PiAtTUFOLVNSQy15IDo9ICQoc29ydCAkKGJhc2VuYW1lICQod2lsZGNhcmQgbWFu
LyoucG9kIG1hbi8qLnBhbmRvYykpKQ0KPj4gK01BTi1TUkMteSA6PSAkKHNvcnQgJChiYXNl
bmFtZSAkKHdpbGRjYXJkIG1hbi8qLnBvZCBtYW4vKi5wYW5kb2MpICQoSU5fRklMRVMpKSkN
Cj4gDQo+IERvZXNuJ3QgdGhlIG1hbi8qLnBvZCB3aWxkY2FyZCBkbyB0aGlzIGFscmVhZHkg
Pw0KDQpOb3QgaWYgb25seSB0aGUgbWFuLyoucG9kLmluIGZpbGUgaXMgdGhlcmUsIHNvIHRo
ZSBtYW4vKi5wb2QgZmlsZSBuZWVkcyB0byBiZQ0KbWFkZSBmaXJzdC4NCg0KDQpKdWVyZ2Vu
DQo=
--------------hRaB2JpfKGZOAEOKGXmFBpxm
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-----

--------------hRaB2JpfKGZOAEOKGXmFBpxm--

--------------OCcGYbBUnnNTDfoN5iwdFBk0--

--------------HXrnP2V0k06AGGRPegkmwev0
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/Ey8FAmkXJ+UFAwAAAAAACgkQsN6d1ii/Ey/s
dQf/R7cFQ7TuGwfG/ayi2HnEx94pJDRQ0SFhtSBPCO55b3ZDVJ4rjnVjdzinVd8x4vS4vUgMMorJ
Rmex8Dd/yTeTcQLficNR44T5wKvxacKaT5STO9IDkOrEhoRpsQmQ2rdbKYNMyDkI3SrucvKto+Sb
qyeeNCA2oe6a/maFMXrh7hNCMSuKC+DO8GxgTSr7q0F7td+JCkTX54u6V6IU6I8p6c4yLK8dhr1t
ucpRb9n2SWJbx3CMZDE0uLNVaTrUDcl9pnzc5Rw43EaGcP1b/mHZGkwrR9ege0IxKRj1v8giM38n
x0ErhoNEUoF+823RT34rJ8FglgUgoSmIVxRlGD/QpA==
=fbd9
-----END PGP SIGNATURE-----

--------------HXrnP2V0k06AGGRPegkmwev0--


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 13:01:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 13:01:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162612.1490194 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJtQD-0003tm-SS; Fri, 14 Nov 2025 13:01:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162612.1490194; Fri, 14 Nov 2025 13: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 1vJtQD-0003tf-PX; Fri, 14 Nov 2025 13:01:01 +0000
Received: by outflank-mailman (input) for mailman id 1162612;
 Fri, 14 Nov 2025 13: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=leFb=5W=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vJtQC-0003lZ-T5
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 13:01:00 +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 f72e0d64-c159-11f0-980a-7dc792cee155;
 Fri, 14 Nov 2025 14:00:59 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-42b3108f41fso1098009f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 14 Nov 2025 05:00:59 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42b53f0b8d6sm10150616f8f.28.2025.11.14.05.00.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 14 Nov 2025 05:00: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: f72e0d64-c159-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763125259; x=1763730059; 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=KrYekWE9QP4DwuqGrXoP6T25EPtwJa39aEh6se9fFYk=;
        b=CR5gL8EytBZrk4jJYqaIOLbZuke0C3X7m21cU3gjfZvIxkWGYm10YOkchuxz6IXHMn
         mVhuNwFhmZRFTcKqu+VTCw06Ck4IC11KkOqVGFhIQBIEibjdvYis6QL9JIYv9QqJ8TRj
         6xzIeIVr47tXMbf/S1uN4R/r49v/FqW5vAqFF3BGPIZMQ/c+k4MRd9QBVLN7VpT6nacT
         Gcb76+dRSHhovP3ajT2jWMd4mo8i2qA8w7O+D+Sb1QxA4ZpbFCW7BwVQuMT0IbgouEeB
         weNpTv+aQj8qxiar0pulnWt1NmbvXSkq6fjJo1v2AI3t63BrUTGjkpJvfMeOl9RNHADF
         x5vQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763125259; x=1763730059;
        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=KrYekWE9QP4DwuqGrXoP6T25EPtwJa39aEh6se9fFYk=;
        b=M/NHu4eFSCaUjpH4x7MC5eR5sxalwuJCrqOrYp96o+OL5biN1GQ2pvagByNlp9+SRJ
         c0Y73Yfec1wQBsGkawdo+dq7ivjFMniwhE3GLzIwRfIbCzJWOrb171JKTOsUb6I0S7R3
         8q3531zTajAicW7ABtxr2w4sywKHo0Xcw010Aj26Mn8O+9ymuA8TN/SScF+FqMlPDiff
         NT9H84ztFQ/yajYgj3f/ki88vvD/ZGatDS4lEr646G7nLq6E0s11bg44WeaIkoao8zX5
         Sd6WyOXj6ln49wTVQqq/r6kvwK+tuN6SIe258oiW3zdqFVg+tAN7hjSAKo/Tfs2k9KpD
         xACA==
X-Forwarded-Encrypted: i=1; AJvYcCVimhyOA6KbisvqRlKx/Qs36CxQxKO6TgIMwrxvDDeopKEIW0+QgW1VguIuIpbkZlEIMO0A+QRMnMQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyn2TquZHpBr/vNGufL770JTZbkTj47sujQDF9Efxr0zIeoCaoq
	HnGuplmWwlEd2s4+NeiLket+y/l5wxVuqutTrn7vrMkFTUyjvjKIT/wh2QVVd3bZSkc=
X-Gm-Gg: ASbGncvUT+vXZgFRr1xTmWNyqmwOOrrw3b1fMRthvXalpUMzO5noWEBzqbq6O4E4v20
	5lgJfDUKiopdbgNMokBF5LvJmKDACVZRQ2uShakigYvTrtMK9fcyZFnLIq3hwX96IzMhGcleCKF
	uhtFmA3IPlDhlUwO3Cgra+yKz4RAR+CkQ7U8ZedZY7yGCMKOz/ViT1OKSvq/lHLM/n78Vf8YRfb
	nL4Hemnz+Yg17EzlGvddE3M3zaXavCtm4f5m7OsEvpcd+0oR7ElFi+4AMsHYkPP7PN2zlv71kAA
	jfeFi0Z5SIgzOmdmnPgH6wx2wjLCALt3K+55y21qkiy3aip+yRJ87hWE0qPyxTDSsoqLQhADibg
	4Dt5DU0i5aRzfRq7pV8fPSipHsiOLLMmPrG3vmtgWCI70FwbsufJ/dcILiImN/9iDxa06oqOZSJ
	g7yct/7aMzkKsOYG4yymAQKCBdfyuNYldlRmYNr12GNgtZCTWFiNzZdeK9UXCJt2ZQEnww6PiQN
	OoKdg3IaQcU2G9Vq26Qy3uo+0B6VTEvS5hiCRk=
X-Google-Smtp-Source: AGHT+IHJqHamiLrMiGOkQdxJEZ1m7aA2YtJtzlJRW5rbwmPMGJi5b7GWJVTlG9xZoCEL5WmkDdoKSQ==
X-Received: by 2002:a05:6000:2912:b0:42b:31a5:f065 with SMTP id ffacd0b85a97d-42b5934e90bmr2984813f8f.28.1763125258539;
        Fri, 14 Nov 2025 05:00:58 -0800 (PST)
Message-ID: <09723aa8-bcb7-4f3f-9b9e-5bb626c1fb98@suse.com>
Date: Fri, 14 Nov 2025 14:00:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/4] config: remove unused paths from
 config/Paths.mk.in
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-4-jgross@suse.com>
 <ed64037e-99a6-4059-9ebf-92402e78ded7@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: <ed64037e-99a6-4059-9ebf-92402e78ded7@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------TOhxe0MRoMkgr4kokDrYPu31"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------TOhxe0MRoMkgr4kokDrYPu31
Content-Type: multipart/mixed; boundary="------------tr0hGHChJyJwY6p9ihQ242xI";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
Message-ID: <09723aa8-bcb7-4f3f-9b9e-5bb626c1fb98@suse.com>
Subject: Re: [PATCH v2 3/4] config: remove unused paths from
 config/Paths.mk.in
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-4-jgross@suse.com>
 <ed64037e-99a6-4059-9ebf-92402e78ded7@citrix.com>
In-Reply-To: <ed64037e-99a6-4059-9ebf-92402e78ded7@citrix.com>

--------------tr0hGHChJyJwY6p9ihQ242xI
Content-Type: multipart/mixed; boundary="------------626GTB6ywReT6q0uvuePqYzE"

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

T24gMTQuMTEuMjUgMTI6NDcsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDE0LzExLzIw
MjUgMTE6MzIgYW0sIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBTb21lIHBhdGhzIGluIGNv
bmZpZy9QYXRocy5tay5pbiBhcmUgdXNlZCBub3doZXJlLCBzbyByZW1vdmUgdGhlbS4NCj4+
DQo+PiBTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQo+
PiAtLS0NCj4+ICAgY29uZmlnL1BhdGhzLm1rLmluIHwgNSAtLS0tLQ0KPj4gICAxIGZpbGUg
Y2hhbmdlZCwgNSBkZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvY29uZmlnL1Bh
dGhzLm1rLmluIGIvY29uZmlnL1BhdGhzLm1rLmluDQo+PiBpbmRleCBiYzQyNzQ4YjdhLi42
Njg1NDViZTJmIDEwMDY0NA0KPj4gLS0tIGEvY29uZmlnL1BhdGhzLm1rLmluDQo+PiArKysg
Yi9jb25maWcvUGF0aHMubWsuaW4NCj4+IEBAIC0yMCwxMCArMjAsNyBAQCBsaWJleGVjZGly
ICAgICAgICAgICAgICAgOj0gQGxpYmV4ZWNkaXJADQo+PiAgIGRhdGFyb290ZGlyICAgICAg
ICAgICAgICA6PSBAZGF0YXJvb3RkaXJADQo+PiAgIG1hbmRpciAgICAgICAgICAgICAgICAg
ICA6PSBAbWFuZGlyQA0KPj4gICBkb2NkaXIgICAgICAgICAgICAgICAgICAgOj0gQGRvY2Rp
ckANCj4+IC1kdmlkaXIgICAgICAgICAgICAgICAgICAgOj0gQGR2aWRpckANCj4+ICAgaHRt
bGRpciAgICAgICAgICAgICAgICAgIDo9IEBodG1sZGlyQA0KPj4gLXBkZmRpciAgICAgICAg
ICAgICAgICAgICA6PSBAcGRmZGlyQA0KPj4gLXBzZGlyICAgICAgICAgICAgICAgICAgICA6
PSBAcHNkaXJADQo+IA0KPiBUaGUgcG9pbnQgSSBhcHBhcmVudGx5IGRpZG4ndCBtYWtlIHZl
cnkgd2VsbCB3YXMgdGhpczoNCj4gDQo+IFdlIGdlbmVyYXRlIGJvdGggSFRNTCBhbmQgUERG
cywgeWV0IHVzZSBuZWl0aGVyIG9mIGh0bWxkaXIgbm9yIHBkZmRpci4NCj4gV2hhdGV2ZXIg
aXMgZG9uZSB0byBvbmUgc2hvdWxkIGJlIGRvbmUgdG8gdGhlIG90aGVyLg0KPiANCj4gTGVh
dmUganVzdCBkb2NkaXIsIGFuZCBsZXQgd2hvbWV2ZXIgdGlkaWVzIHVwIHRoZSBtZXNzIGlu
IGRvY3MvIGFkanVzdA0KPiB0aGUgcGF0aHMgYXMgbmVjZXNzYXJ5Lg0KDQpBaCwgb2theS4N
Cg0KTm8gcHJvYmxlbS4NCg0KDQpKdWVyZ2VuDQo=
--------------626GTB6ywReT6q0uvuePqYzE
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-----

--------------626GTB6ywReT6q0uvuePqYzE--

--------------tr0hGHChJyJwY6p9ihQ242xI--

--------------TOhxe0MRoMkgr4kokDrYPu31
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/Ey8FAmkXKAkFAwAAAAAACgkQsN6d1ii/Ey8y
6wf/UaV2POuuk/23qHGraTWXaG3JHv+dOCLJnYgPCVtEdnHuDS32uqf+qVMUZ8z34qrfycnIPZ7k
m1akiysnaVlJcq8uxBhksaZ1fXHUfE0duI+jPTlr+mcupScr7XOiFXvuazmwbi11YUKDjrCyvyaE
ERng3M6WdPQK4NIT2A1vN3vZiXSlR2gv6VM+8H8cAbBS138eYacIMIb3/DomUEXiIRFXXZcbtH2L
zqpLMgzEcU2qx8MwX66NcfMwXy20GDawgIN8SJIyISlUh0qNIzKKnCt6QsLHoMefxcmYWW9Yhevv
IlSarHh4m/D09lqz6YO/x9ItQ1rtLObL5EpjFtF95w==
=L7nh
-----END PGP SIGNATURE-----

--------------TOhxe0MRoMkgr4kokDrYPu31--


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 13:03:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 13:03:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162634.1490204 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJtST-0004se-7z; Fri, 14 Nov 2025 13:03:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162634.1490204; Fri, 14 Nov 2025 13:03:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJtST-0004sX-4p; Fri, 14 Nov 2025 13:03:21 +0000
Received: by outflank-mailman (input) for mailman id 1162634;
 Fri, 14 Nov 2025 13:03: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=leFb=5W=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vJtSS-0004rC-90
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 13:03:20 +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 4ae83a94-c15a-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 14:03:19 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b72b495aa81so239889966b.2
 for <xen-devel@lists.xenproject.org>; Fri, 14 Nov 2025 05:03:19 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fda8bc8sm384694466b.49.2025.11.14.05.03.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 14 Nov 2025 05:03: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: 4ae83a94-c15a-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763125399; x=1763730199; 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=n2rRN6feC+uysqXsLSRlwFV0VtBW24DkCMBbwS+u0G8=;
        b=DjiyrIvZnCe81F8iEpGQbFHgyzdgctb2F69wUWseJZZ1TtPSmnjn5IDe+N+wHo84sm
         oXnepHl0WGhRJk5RU9lOjKlqsBt7aSdytqFE2vy3YmbFqQ8IGzJDheQo7yknbLVQ0Lho
         WtGNQGJf87XliFTnTG7atz39GKexVtX4A6EP9zd/blH7HY68V1hZtULVjKBgS0OlEo+N
         teuBZXSLW4ej96mqBiVmD388iX5+CkRXE50XuqlDIbYGPMEAVrwVWLIFgNrDXibPOlNU
         DeqHicdOETXyHxPXAGN1okwULUn2SvqK3mW681tca7AYexZDs7vL2swbloYPA+vgs1cM
         lu8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763125399; x=1763730199;
        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=n2rRN6feC+uysqXsLSRlwFV0VtBW24DkCMBbwS+u0G8=;
        b=aKO46eUeRzap+v7IKn5Oxm1th8E2Cv0jzy0jhLeLpBKEP5opJT1Fw0MNmiXKBG4zsb
         ethPImallUCEH3KuWMpGugRDoLMWvtMSAEYqI4ORxggxHV3NyqKy17a2DH4bmiYtPDmd
         o2S96UMYHCZYSjHOzCeBTfmm5v+FqYIgXR0lF62SYf8KLAWbYuCl4IHCiGv+vmG6FBeS
         qXF2I50z3T4IEXhF/NV1CexI7qVaHZVF/FqZLRlAbWvwy64v04iWEtVeyhS3SKKBt9ax
         vDyrJdpZ/h8cKQn80uoZOmTGnZm+mWy6tn6K0xC4++uV2CfL04WBUA9s/2KNEF2d4mn3
         WhoA==
X-Forwarded-Encrypted: i=1; AJvYcCWXuQHcqN8EBdaTzV5LrTQupWAtAXfWxKh/+UBRqplWr8J99uXpagJfGIhiQfmtXGhTLrrdu/hi+oQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDKaEYwbsCpcVo1QFwoKPtTtityGF5dKwp41c0tXqs8OMhazql
	GwN2lYDa5fBqArY8mQ9p5CTVfhPIg5PoezqdnvoLrbbePf8gvhY/WDZkoaUn59O0EzA=
X-Gm-Gg: ASbGnctrdfBd+X5kPzv4XT1AMK3KlUlVqhirpcXMRAchBlsA9N+/8B8WE40gSBre5/z
	pF3iNuzQD91cRtbjXaVzcFQB6mmEy1XqpmEOJipBjBXDtnOeFQPa7K/9mFfsDUBoSY1ctZnE1CF
	B1TlJvx2Z1c/oXKKeGiXJi6n64nUYtVMoh+fTV+gkVPQRE/rOiKfYFLAhEs6E/5xgbbOiCzi7Iq
	KJGMMJwes6Tepd/5IkJN76D/szXz9Keprd+3AgoH0o8fly2MGL6qCFYYO5L++hH5wetQdNSwcXK
	y6qI7t3QFgbe2K4i+FscCNURjNuhK1C8VlVH+2l4vxPI/ba21wdg9EWMZ4uydGbWwsgGChN40FK
	R/3M87FOgQLxMIh8HKFxHDE1ZMWtuPbse7kwXE6SAJDoqBgdXpkYvvg/esGDBrpq/l4VWwijJEi
	qZawo4a6fQqllvrOorpUvhq0aF41wC1AaoMwAdc8bKJRNVMG+ub0XWDLuB2cPr1g0fMJ2EFzr1c
	2qm7grhoHjzCQoSPanEm+5iJtS0FSQ763/U+KI=
X-Google-Smtp-Source: AGHT+IFZQ8R+RqV56yQCe3/GeBPCXB00/du3PJwWO1eIBjJO/3mJ0mwPcE+RQ4a3LNqx4qxOIecgKA==
X-Received: by 2002:a17:907:3f0a:b0:b6d:2c75:3c57 with SMTP id a640c23a62f3a-b736793d1c3mr286585766b.39.1763125399066;
        Fri, 14 Nov 2025 05:03:19 -0800 (PST)
Message-ID: <b2983c1d-03dc-485e-90ec-b668b85a25be@suse.com>
Date: Fri, 14 Nov 2025 14:03:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/4] tools: replace @xxx@ markers at build time
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Christian Lindig <christian.lindig@citrix.com>, David Scott <dave@recoil.org>
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-5-jgross@suse.com>
 <d558864b-baa7-4262-9336-1f3362d7924b@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: <d558864b-baa7-4262-9336-1f3362d7924b@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------uolDbVnRHSsRh0Dwger6DirP"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------uolDbVnRHSsRh0Dwger6DirP
Content-Type: multipart/mixed; boundary="------------8CHRWZrVM1gEC88ajEbDYMkE";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 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>,
 Christian Lindig <christian.lindig@citrix.com>, David Scott <dave@recoil.org>
Message-ID: <b2983c1d-03dc-485e-90ec-b668b85a25be@suse.com>
Subject: Re: [PATCH v2 4/4] tools: replace @xxx@ markers at build time
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-5-jgross@suse.com>
 <d558864b-baa7-4262-9336-1f3362d7924b@citrix.com>
In-Reply-To: <d558864b-baa7-4262-9336-1f3362d7924b@citrix.com>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------8CHRWZrVM1gEC88ajEbDYMkE
Content-Type: multipart/mixed; boundary="------------Wft5o6WzSOvs6FA74ea8HkzC"

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

T24gMTQuMTEuMjUgMTI6NTQsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDE0LzExLzIw
MjUgMTE6MzIgYW0sIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBkaWZmIC0tZ2l0IGEvdG9v
bHMvaG90cGx1Zy9GcmVlQlNEL01ha2VmaWxlIGIvdG9vbHMvaG90cGx1Zy9GcmVlQlNEL01h
a2VmaWxlDQo+PiBpbmRleCBhNjU1MmM5ODg0Li44ZGU5MjM3ODFjIDEwMDY0NA0KPj4gLS0t
IGEvdG9vbHMvaG90cGx1Zy9GcmVlQlNEL01ha2VmaWxlDQo+PiArKysgYi90b29scy9ob3Rw
bHVnL0ZyZWVCU0QvTWFrZWZpbGUNCj4+IEBAIC01MSwzICs1NSw0IEBAIGNsZWFuOg0KPj4g
ICANCj4+ICAgLlBIT05ZOiBkaXN0Y2xlYW4NCj4+ICAgZGlzdGNsZWFuOiBjbGVhbg0KPj4g
KwlybSAtcmYgJChJTl9GSUxFUykNCj4gDQo+IEluIGFkZGl0aW9uIHRvIHRoZSBwb2ludHMg
aW4gcGF0Y2ggMiwgY2FuIHdlIHVzZSAkKFJNKSAod2hpY2ggaW5jbHVkZXMNCj4gLWYgSUlS
Qykgd2hlbiBhZGRpbmcgdGhlc2UuwqAgTm9uZSBvZiB0aGUgZ2VuZXJhdGVkIGZpbGVzIGFy
ZQ0KPiBkaXJlY3Rvcmllcywgc28gdGhlIC1yIHdhbnRzIGRyb3BwaW5nLg0KDQpPa2F5Lg0K
DQo+IA0KPiBCdXQgYWdhaW4sIHRoaXMgaXMgZmFyIG5pY2VyIHRoYW4gdjEgb3ZlcmFsbC4N
Cj4gDQo+PiBkaWZmIC0tZ2l0IGEvdG9vbHMvaG90cGx1Zy9MaW51eC9NYWtlZmlsZSBiL3Rv
b2xzL2hvdHBsdWcvTGludXgvTWFrZWZpbGUNCj4+IGluZGV4IDlhN2IzYTM1MTUuLjZmY2Y4
NGE2ZjQgMTAwNjQ0DQo+PiAtLS0gYS90b29scy9ob3RwbHVnL0xpbnV4L01ha2VmaWxlDQo+
PiArKysgYi90b29scy9ob3RwbHVnL0xpbnV4L01ha2VmaWxlDQo+PiBAQCAtMzcsNyArNDQs
NyBAQCB1bmluc3RhbGw6IHVuaW5zdGFsbC1pbml0ZCB1bmluc3RhbGwtc2NyaXB0cyBzdWJk
aXJzLXVuaW5zdGFsbA0KPj4gICANCj4+ICAgIyBTZWUgZG9jcy9taXNjL2Rpc3Ryb19tYXBw
aW5nLnR4dCBmb3IgSU5JVERfRElSIGxvY2F0aW9uDQo+PiAgIC5QSE9OWTogaW5zdGFsbC1p
bml0ZA0KPj4gLWluc3RhbGwtaW5pdGQ6DQo+PiAraW5zdGFsbC1pbml0ZDogJChJTl9GSUxF
UykNCj4+ICAgCSQoSU5TVEFMTF9ESVIpICQoREVTVERJUikkKElOSVREX0RJUikNCj4+ICAg
CSQoSU5TVEFMTF9ESVIpICQoREVTVERJUikkKFNZU0NPTkZJR19ESVIpDQo+PiAgIAkkKElO
U1RBTExfRElSKSAkKERFU1RESVIpJChMSUJFWEVDX0JJTikNCj4gDQo+IEhtbS7CoCBMb2dp
Y2FsbHksIGdlbmVyYXRpbmcgdGhlIGZpbGVzIHNob3VsZCBiZSBwYXJ0IG9mIHRoZSBidWls
ZCBzdGVwLA0KPiBub3QgdGhlIGluc3RhbGwgc3RlcC4NCg0KQWdyZWVkLiBXaWxsIGNoYW5n
ZSB0aGlzLg0KDQoNCkp1ZXJnZW4NCg==
--------------Wft5o6WzSOvs6FA74ea8HkzC
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-----

--------------Wft5o6WzSOvs6FA74ea8HkzC--

--------------8CHRWZrVM1gEC88ajEbDYMkE--

--------------uolDbVnRHSsRh0Dwger6DirP
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/Ey8FAmkXKJYFAwAAAAAACgkQsN6d1ii/Ey+a
EAgAkYyPSTBJQYmdk/465wplP6G9A9OWjylDMsUk5qDUHHernZEQXe43rKBXpMGAINg6IZ4IDG5s
0OG/c79v6jHR4u4JeG5rRyjls7GI4GOS6xaGt7OpV2sbkDDzqGV2vJm53+nDVnQ14WVF4/t2McsM
QVSZcBsygCkn8yeQPp95px2WMfmUze4nXDjsrIfWdt+nZPhpuMNBftqk8W4/JGa3pOQlYAch5B1W
+UbTS50XyyG1i3pjB+J1/Yxyo33nUTcb6TA5ZiahkFFMqOHCLZ/c0afMO7/9TqLt3pn/bKytiMFk
5VjYwcouxKdPztA2g+Md7/Vv0QGrKNtcdnaZcQ53oA==
=Ap3S
-----END PGP SIGNATURE-----

--------------uolDbVnRHSsRh0Dwger6DirP--


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 13:05:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 13:05:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162650.1490215 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJtUX-0005Xb-OH; Fri, 14 Nov 2025 13:05:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162650.1490215; Fri, 14 Nov 2025 13: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 1vJtUX-0005XU-KX; Fri, 14 Nov 2025 13:05:29 +0000
Received: by outflank-mailman (input) for mailman id 1162650;
 Fri, 14 Nov 2025 13: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=V5eX=5W=bounce.vates.tech=bounce-md_30504962.69172911.v1-9da0dd0ef9aa453886466546575bd6d2@srs-se1.protection.inumbo.net>)
 id 1vJtUW-0005XM-Kk
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 13:05:28 +0000
Received: from mail180-15.suw31.mandrillapp.com
 (mail180-15.suw31.mandrillapp.com [198.2.180.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 93cf890c-c15a-11f0-980a-7dc792cee155;
 Fri, 14 Nov 2025 14:05:22 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-15.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4d7HS12QYyzPm0ZmR
 for <xen-devel@lists.xenproject.org>; Fri, 14 Nov 2025 13:05:21 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 9da0dd0ef9aa453886466546575bd6d2; Fri, 14 Nov 2025 13:05: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: 93cf890c-c15a-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763125521; x=1763395521;
	bh=It5TUr8BuYqVt4O3sGG623FLGRNdl49Ql9BxMXSKPpc=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=ge9zS8PWJP+ThMA20WNhisg8Pmrvt1wm0IkuOJ5PqRkOcWFc1wAiiZ7w42Oxm8Bxr
	 DGe+lt8IlQg+N5PmMBv2+oIRM/m7rk0E+uW0hrGOSYF8dXkghc1CnAiR/+CFWoQPuo
	 zLWodP7bV9fyWTbgWU9erq4gOWDddfcNdAeg1g1w5wVWuankOpaA6NAFifGzlGGKIw
	 OSzdquel8XzhUWE4w8EMdil43UyeHifsmWRjXW6skJBtSZUvlH4ehK+NwQbxr0CXfh
	 j+Kf6JNN/6D38VkUh+2oBwURT6iJTiIzOTRsPf17ydfOevmn9wLPv66CwWrRvRzYIB
	 SdIMEG75DrplA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763125521; x=1763386021; i=teddy.astie@vates.tech;
	bh=It5TUr8BuYqVt4O3sGG623FLGRNdl49Ql9BxMXSKPpc=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=0jDB+2ZC4MPia9N9tJh8xSMrJB3HOiIgs4crDs3ff/S0AaHWmpfEoImsQXExy0LTr
	 3BXCGyrqf4gIextglPYjc7+Iz25QZbUJTLZKGWVeUZ7n6bClbk4tO6+KVSCVILs49I
	 V0rtT9fSnOmoFgoSVa9qD0nnYc5XbqDqfmBnMr//KIP7WYqgSWP7PLO1Tvb+bEJ4Rn
	 Rr4jkQnqpVkyvK8+tZ5ObzV1/ecXnxtQ9vqMXAHs/Ecf+68S6WojMC/LJX0aGDHthT
	 NVpr65TgXTURamf5YDCrE7cbWDXDygqaEGpC+/nk+LS/jWZVviVnsZHUJD7wp6RKua
	 OPZEjCDXZgZqw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH]=20ioreq:=20Assert=20with=20out=20of=20bounds=20vCPU=20ID?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763125519558
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>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <f4146ec2fa354ab6a64d96eca831fe0be97f281b.1763124998.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.9da0dd0ef9aa453886466546575bd6d2?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251114:md
Date: Fri, 14 Nov 2025 13:05:21 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

A 4K page appears to be able to hold 128 ioreq entries, which luckly
matches the current vCPU limit. However, if we decide to increase the
domain vCPU limit, that doesn't hold anymore and this function would now
silently create a out of bounds pointer leading to confusing problems.

All architectures have no more than 128 as vCPU limit on HVM guests,
and have pages that are at most 4 KB, so this case doesn't occurs in
with the current limits.

Assert if the vCPU ID will lead to a out of bounds pointer.

No functional change.

Reported-by: Julian Vetter <julian.vetter@vates.tech>
Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
Not sure if this is the best approach, perhaps preventing compilation if the
vCPU limit is higher than what the ioreq page can hold is preferable ?

 xen/common/ioreq.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
index f5fd30ce12..b2ef46ed7b 100644
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -99,6 +99,7 @@ static ioreq_t *get_ioreq(struct ioreq_server *s, struct vcpu *v)
 
     ASSERT((v == current) || !vcpu_runnable(v));
     ASSERT(p != NULL);
+    ASSERT(v->vcpu_id < (PAGE_SIZE / sizeof(struct ioreq)));
 
     return &p->vcpu_ioreq[v->vcpu_id];
 }
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Nov 14 13:24:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 13:24:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162668.1490224 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJtnA-0000XJ-7t; Fri, 14 Nov 2025 13:24:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162668.1490224; Fri, 14 Nov 2025 13:24: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 1vJtnA-0000XC-4p; Fri, 14 Nov 2025 13:24:44 +0000
Received: by outflank-mailman (input) for mailman id 1162668;
 Fri, 14 Nov 2025 13:24: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=Irg0=5W=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJtn8-0000X6-Kk
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 13:24:42 +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 459e38b3-c15d-11f0-980a-7dc792cee155;
 Fri, 14 Nov 2025 14:24:40 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS4PR03MB8132.namprd03.prod.outlook.com (2603:10b6:8:281::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Fri, 14 Nov
 2025 13:24:36 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9320.018; Fri, 14 Nov 2025
 13:24: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: 459e38b3-c15d-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=emVDBphZwUNe60tTFFON+CSaNf053/WtU/BilcZlIGeXRXecDQwD76/RwMtdLeBxQCEeBMgXxjjlkttl45m1pGhbK/VRj87C7D0IWc+TtVhJGe5DX4Q8JB/zgj0kq2b5EIG8Ar67rgwc24/MeLX/XbC37m2aa0htQQ7meX9ihFd6Z6RnML+umTLLkET3hQLWUTkMYD2CWdFeSpIcADvFMYl5YHirrC7AZp1K+5ePP9aoAv6jhfWug7ClXmkOY8NOgY+OowuFT4UPg4U6szAr27VyseZp+yoka1vqDDvoAQNfMLsBS18gywLGG3Do/+4Ro0p94LAECi2KDfAqCHNHKg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PYNCRcJ5PwEaNgW0xdKz4FQJJfGCSSWx3K+lYxabLts=;
 b=AT+6+FxxQSD6kaChjFpD0ssbegiW/sJHLllD9tLx1WPCW2GX1qaOsAUap575m4ozxF/DH5hnVnj3Nq7CtPQTwAfimBdLSuMXIN1k7MgPdY1QeAHUSDM/vrP3848F4RwLaGWJMI8/SScYmNECMGmg+ojNop2X9Yq0bN9ZMIfyGx2YUJGa2HiBDIVtbNIuNPvCZyV4TVobXnGSdYZZu/YVBP0zGtNkG5xj7e+nuCQyqkKGxBmP15a9/eeCHkn0sF1X/WVhPJKAKcgk1MG2wf55YUrQ00UH4r1LqCNaLCG1owc+7C2W3djhl/wBnAx2AwccWlR6XxaQhFd8YT98A0YFfA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PYNCRcJ5PwEaNgW0xdKz4FQJJfGCSSWx3K+lYxabLts=;
 b=YtkLjiEHlgi73cWeGdJt/Ay1ki7ZLttengatV+/aUFjXLw3HMYtiFw0YPr6sgjbbZOO6C4XDs69HyKpXmNqzP7FxYmPrPOg0+cesQ4YN/TZD09XJiNXb/bpRV7/jnvMKUHPYTXPMhni8DBFQmY9OiZBfaATeP7rziiuXOa/SFcc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <c8070338-8522-41bf-9402-229e2369857c@citrix.com>
Date: Fri, 14 Nov 2025 13:24:32 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] ioreq: Assert with out of bounds vCPU ID
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Julian Vetter <julian.vetter@vates.tech>
References: <f4146ec2fa354ab6a64d96eca831fe0be97f281b.1763124998.git.teddy.astie@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <f4146ec2fa354ab6a64d96eca831fe0be97f281b.1763124998.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0352.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:d::28) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS4PR03MB8132:EE_
X-MS-Office365-Filtering-Correlation-Id: 1acf7679-e613-4f50-375a-08de238127ee
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?OUxRRitYcUZsZnJsa0U0Qk85QW54aVBJZGZZckE4WGN4MkJyY1hHVTdWeDEz?=
 =?utf-8?B?OVFCa0FVMnBndGVVZ3R3NUN6ZW9qZlhUTEw2cFo1OWVkek45R041azF2SzFW?=
 =?utf-8?B?blVwajlVSlhWbUVpNEpOZklXbWthMlh0dW1UQjh3OGlRTWFCWmNtYnZzMXdn?=
 =?utf-8?B?UDF0YS9yQWMzZkRndFJ4QlBaeGtyeVNpWUpHeVlNeTNXVmk1MEZqbUxxUllp?=
 =?utf-8?B?aTd6U2V1R1k2ZW5pWVdGR3EyOVdGc1o0Tmo1VHBqUHZxVENwT3Z2VTJsVE5D?=
 =?utf-8?B?di9zZXFYWG0rVk5QWlNBbDNoVklEVVhmSXg0dy9OcTJ3czRvdGU4eHVsT3VG?=
 =?utf-8?B?YlBrKzM5dGNJdk9wU3B3RXFsT0hZQXovSzBzQmIyNE13dWN0M05RMHlqWlB1?=
 =?utf-8?B?czd3T3pGcjN1aEovZ0RFTWQ4Z1VLYllqVGptbXg5NldqVko5N1BxS2UxQTFa?=
 =?utf-8?B?a01XOWNrbWZha2hqTmo2S2hTdmVXNE9GekpZM1N4by9lTDkvd1pFWXR0R1FZ?=
 =?utf-8?B?bXhRdzRTdTRKMFI4OW52c0F4bGNUYU8vTTQ5Zng4Y1JiTmZZVHZMSEtUNTVj?=
 =?utf-8?B?YXRCNU96T294OUtvTlNxU3B5aTZRKyt2TkdDTk9LeGpjdEgwVm84UWROUXBC?=
 =?utf-8?B?MEM2bzZqVk80QjRiUnBpQmlzRG5GNU5LSU9YTHNtOFUwMUIzOTJGRUlaSXIz?=
 =?utf-8?B?ZWU1VGo4NkFCUUprNWF2WmNTRjQrcjlKVFVyNk54TGVNYkpQYjRIM3BOcjIv?=
 =?utf-8?B?d1BlcWZJTXJVQVA5bCt2QnFSNkNiZGRZVGczM3JpMzNEWVV3NHdIUUM0cGk1?=
 =?utf-8?B?S2g0UjNOeFI2WHl2L0F2THJlQkIxZnVlWnluN05mK1pzZEdPeXJjL2lDTFE4?=
 =?utf-8?B?Q2h6REI2bStNOTExMFVCSVpZMnNZVFR6SytJbVlLZCtOWExzTm9sVk1jNFIv?=
 =?utf-8?B?Sm45SCtvZy9vYythcldiR2FmYmYxRHZMSi9aVW1TcWM0eWFYTDlDeFp2L3Vh?=
 =?utf-8?B?K2wwUDlqaFAyL04veU52UmZLcksxeC9qbElRQU5CdE9kTndzTWwvSUVWVDZ5?=
 =?utf-8?B?ZDdCY0dnVlp2Q3ZONG9wMVBtSEhhK1hHT1BGbTJaVDFwaHJqMkp2dEpMNVcy?=
 =?utf-8?B?MHdQdzNEVkN6TXVjWFp4cVM0WC9OWnNhR3NlSVpUMXFFS1N1Y05KNWN5a2FQ?=
 =?utf-8?B?dklQM1IvS1Q0SDg0eXZsN0VvYTV1RGhQQTJmbHVkcGhhbXhBeDBFaUp4RHp4?=
 =?utf-8?B?cUkxTkU5VnJtRHhpVmtEcS9MM25JeVlqUVQ0TGw5cGRxOFBFU1YzL0g5QVI3?=
 =?utf-8?B?elJQOHZHY1JFRFByb1BYd2VhaEV4b2g2UW80NlNDTThJQmxrNFZuOUIzR1h0?=
 =?utf-8?B?Zi9wT3NQWG94VEd5QXdSY1BhQnUrRWtxVHdSbmxxNThZME1OTElRL2l4Wlcz?=
 =?utf-8?B?OGMrN0p6U2JaSTczZ0cyUkxlL0FvZEY3S25CV2VhdTFYYjFXT1hPaUQrUTdu?=
 =?utf-8?B?eDExNW5xZ0J0aUZETTR1SGhFNzdWSU9mNHdsQ1RubktpUEN0R2JBLzdiTVhm?=
 =?utf-8?B?bkc1NWdEYkVQbDNKd29rQ0FsWWt5R1hNUm1MMmV0VG4yOTlFREpxVnd0d3Zl?=
 =?utf-8?B?cmVtT3JxbFVCSGJSY3ZjYmczQ3d2c2RtbXk1TUhUaFJxUk9FSUhNbEd2VmMz?=
 =?utf-8?B?a3A0aWw5ZWhoamRQL24wMVBDMnVHOW0zc2Rwdy96UEhUSW5kYlJPQkpURHFL?=
 =?utf-8?B?dDdSeTBUdXdlSGxrVXRCRE4wZ2JOS2R3eElnWUVWejV5QzRrTXBQZktMY3Zu?=
 =?utf-8?B?ZURyUW5SR2hqRWh6L2RlYmJmM3AxbUx6dm83cEs2SStPdGowR3pCSjAxQXNV?=
 =?utf-8?B?YzZwb1ROekFrekYwM1pwc200L3hjTnJWRDdJN2d4cWFCSm0vZ2NDTmo4blNJ?=
 =?utf-8?Q?8ufybbg4WgQeNTW0OGOShIsOA2zeK0B7?=
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?RUFqZnp0VWR0NnJaZm96blZMYXh2VVJoSXhwbG91amRJdElpY3ljSUtpWTR1?=
 =?utf-8?B?bFhDNjhWWCsxOW9JbytoOEsvRDc1SzdnS3gyM0ZSaHJpaElxN1VsZndrM3Z4?=
 =?utf-8?B?UnF0TGNOTitySWZjNkhvOWtWcm9vYWpxTmp6YmFHc3pEZjVDZEMwMHZERTMr?=
 =?utf-8?B?bWluWUJNSS94UTlUYnBQZzlJdnY2Mm1YUFNzN1FsSTJmOVdjODNVSEhBMHFM?=
 =?utf-8?B?N3BaT0NmbzBaNFMvUmltTDNHWWJDMWwzNXduWGtOV3M2WkZyUEFJdGVPUDRS?=
 =?utf-8?B?U24vZTB6RmpYK3hvTzJ3b1VQSmw1UUtReHVQZXd1OU9UUHYrZ2hrWmsySXds?=
 =?utf-8?B?Z3pIWDA1RnVTWkFHL2xaQXBPcWNhVHZxSHBqRXZQQ09ZR1g2T3pva3NrQ0Qx?=
 =?utf-8?B?akpsWURRWC9Gc3BiY2xOT1JLdkk4SGZXTUl2QS9DMkNnTFZlVjRyb2EzUUtk?=
 =?utf-8?B?eEZYVUcxL1lnbDhXU0NOdWpud1VrazBRNCtRMzlaYkpCV1BTTTd2Z3lvV3hI?=
 =?utf-8?B?Y1pKemttT0lYcE5JNjR2T1gxK1hxeTZkSFQ1SDloOW9xSzE0QzNxbmhvZWVJ?=
 =?utf-8?B?c0M0T1hsMWJNekMrLytUaEdGWnVZOU9tdFJkVnY0RkVXcmFwS2I0WW12U05M?=
 =?utf-8?B?ZytKalpVU0IrNENQZUJvUzNRc2g2OTRxdmV3dE55Rnp6bTRrMWdmZTYxTkJu?=
 =?utf-8?B?TmxyN1V6cEZIdzFlSUtMdnkzbW1hYkx4Z0VFL1RzVFBrdThiaTVwU21DSHBj?=
 =?utf-8?B?UEhxRjNxTTRwNFExQWMrTU5QUGREVEpISEwyMGQrZGs0bkswWTZVcGI1QUdP?=
 =?utf-8?B?b1doT001YXJzSDFaYnk3cTB0VXpRd3VORFJ5c25Ta1dOTkpOVmJCTWJLL0lr?=
 =?utf-8?B?WmtwNlh3NVkrTnBXUTg3ZTQ5QVZHWVFFdWFseUU1WVZjOTNmcW43OHkwRnl2?=
 =?utf-8?B?dWRSUTFPdEk5VnpxaGtXbVhicFVlMXNGZ3ZNc3VpcVNTeUgxblhoejd1SGR3?=
 =?utf-8?B?MU9mSkFQOHpkSEs0aHNwSmNHRkJXVktoUXFhOXRISGxVd0JvOGN3THNubU9q?=
 =?utf-8?B?K09XNlNpSTd1Uk1lZTZMK0VIcDZ3Zmk4eEkrY1NoOFB6T1hZc3JLclFiMHFC?=
 =?utf-8?B?aGxLQXVCK0hNYVlmTkl6S21uNEJHQTVzOUxjaVQ4U292MXhJYjJ1Zk9ibkVM?=
 =?utf-8?B?SVRnUjZRa0Z5cWZtR1kzc29LT1R5UzhIWVhqdVQzaUJaaUZwSkV6QXJZUzNp?=
 =?utf-8?B?eDNUOTM1ak12OWpSZlBZSFNiYXRBT0o3MEYwM293dlMwL3loOGdLTDhTRG1D?=
 =?utf-8?B?RnhTNkhha0ZrVTVaTmc3OUdPRGdXQWdIR3g3ak5FcnNTU1lYRGgvRnlielhO?=
 =?utf-8?B?RkR3dXJwYldKVUFNN283cEhUY21sbzErN24rK3hEQ1AxTEZRTmtEcDBJTCth?=
 =?utf-8?B?amdqam5UdDlNOGVIaGtxbEFnNkd2S3doMm91Q3BTVFNVWUxWOUNyTytJV2NF?=
 =?utf-8?B?eityR0pnTjdERlN3c3FldGpNd3h0QkErdXlEK0hkb3RWUC9aTDRuaE5rY0Jt?=
 =?utf-8?B?aTgyNEdadlhhdXVmcGpxQVFtYnNLWHNId1Btb3JMNWo4NFcwa01VdVZhKzlv?=
 =?utf-8?B?OUdPdlBxTFJQTmp6UVkrR1BLUXh1QzBMYjBRb3pwU0RsWG5lZEw4Unlod0F3?=
 =?utf-8?B?N283WGdXWm9yTG1wYU1ZS2lzY0N1czUyWlhPR2pjcVBRZGdaUVg4aG5sWDBJ?=
 =?utf-8?B?azVGZXdLL2lxaG93OE9BaFA1c3BiSy9DSFdLS1hxdTJUamhPcE5RY1dmL3RR?=
 =?utf-8?B?akNpNng5Q1UxQWhzMUhXSno3QzRtY0tjRjhBVVZ4R2lWSE5rVGdYSmJ3N3dp?=
 =?utf-8?B?b0xSdG9ucyswTnd2RDJpTnQ4clc4QU1pSlp1TzJZNnJNR0dISTdPMjFDbGp6?=
 =?utf-8?B?dWhkeGE4YW1BbVFiSnN2dHRpLzZKYnJ6VUFYZlp1andkUUVwRVF2N0txZXFB?=
 =?utf-8?B?eW5xVTB6UVZNdWdzR2d0MDdGK3RVRkNkVzhZRHRXMHJib2haSlFVNGVsc0d6?=
 =?utf-8?B?Z3NxdlBVQTRWM0o4Zlg5ZVJUa3htQ3hDZVo2dXp5WE1FNGtWRlo2aWtqdTZk?=
 =?utf-8?B?UGhYb0k3YkFaQ1NnWFp1N1UyMlRHRjBkeTVtSDZxSXliaVlXVmhRT2NyckxW?=
 =?utf-8?B?S1E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1acf7679-e613-4f50-375a-08de238127ee
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2025 13:24:36.2596
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vrRmyIuPqeJX6R2k8CCsWGpkDey1ut+Fv6v8NdLPbk5kut55EUtCCl412W+pOhnrmUOdPswqP1giunNBaxwg+kv1rjn2++WyZEtQIkKgukY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR03MB8132

On 14/11/2025 1:05 pm, Teddy Astie wrote:
> A 4K page appears to be able to hold 128 ioreq entries, which luckly
> matches the current vCPU limit. However, if we decide to increase the
> domain vCPU limit, that doesn't hold anymore and this function would now
> silently create a out of bounds pointer leading to confusing problems.
>
> All architectures have no more than 128 as vCPU limit on HVM guests,
> and have pages that are at most 4 KB, so this case doesn't occurs in
> with the current limits.
>
> Assert if the vCPU ID will lead to a out of bounds pointer.
>
> No functional change.
>
> Reported-by: Julian Vetter <julian.vetter@vates.tech>
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
> Not sure if this is the best approach, perhaps preventing compilation if the
> vCPU limit is higher than what the ioreq page can hold is preferable ?
>
>  xen/common/ioreq.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
> index f5fd30ce12..b2ef46ed7b 100644
> --- a/xen/common/ioreq.c
> +++ b/xen/common/ioreq.c
> @@ -99,6 +99,7 @@ static ioreq_t *get_ioreq(struct ioreq_server *s, struct vcpu *v)
>  
>      ASSERT((v == current) || !vcpu_runnable(v));
>      ASSERT(p != NULL);
> +    ASSERT(v->vcpu_id < (PAGE_SIZE / sizeof(struct ioreq)));
>  
>      return &p->vcpu_ioreq[v->vcpu_id];
>  }

The 128 vCPU problem was known and IOERQ servers intentionally had
multi-page capabilities from the outset to address this problem.

See the calculation in ioreq_server_max_frames().

It hasn't been exercised in anger because there's still the APIC ID
limit at 128 still, but IOREQ servers are expected to work correctly
above this limit.Â  That said, this function is clearly buggy and in need
of fixing.

To the assert specifically, that's really not appropriate.Â  If it were
to ever fire, we'd have an XSA.Â  Logic if this nature either needs to be
fail safe (if returning NULL is ok), or be a BUG() so it doesn't become
unsafe in release builds.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 14:01:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 14:01:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162682.1490234 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJuMf-0006Gw-R2; Fri, 14 Nov 2025 14:01:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162682.1490234; Fri, 14 Nov 2025 14:01:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJuMf-0006Gp-OF; Fri, 14 Nov 2025 14:01:25 +0000
Received: by outflank-mailman (input) for mailman id 1162682;
 Fri, 14 Nov 2025 14:01:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lTzj=5W=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJuMe-0006Gj-2x
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 14:01:24 +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 6675d137-c162-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 15:01:22 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AS8PR03MB7173.eurprd03.prod.outlook.com (2603:10a6:20b:2e4::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Fri, 14 Nov
 2025 14:01:19 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Fri, 14 Nov 2025
 14: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: 6675d137-c162-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=owCOe+zET0W9Y3vSGszkIVupdPms2fAK8kWp8XxrsMiQC3PFrwRA8/7ws5qj9q7GENvPo4h78Y1OB2+sekwb2JOYB45vAVLpf1esvWNMoBvXxK9vK5Ps5eQU/mGtTC6e3cxTKwkpB1DT+o38cYfl3gncYnYOhuaA22RVUEM9YpIikXuHGt8S0WE7CiqhG8hqgeAWGCwLUdFFQ28NSw9xU9lxAtDEqSKUOrEgSN1BMGMQdEmxythzKz6nkc/BlIjVg7fPX98cvNsmSl3758ucKH4vXcfOKCO6f6t+Y4vRt9uLcmp6XQYafq6I7jtWMfbqofKj35xFPTKTeVssDGxOHQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=X5BvTn8RP7T1gGrq+r+B32FCLNbKbAQxECCv+rZ7kBQ=;
 b=xBHpl3+Ey94RKMoeDprfz+IgutJPiV3Ii1BoOuIEQPX9IBBDN2mll72pVheI6VNG9pi/lBJIyZMewaAHTiXdb+FOSwhTppK7tdjrqj6TMBQL1MRVr/rGbgTvWhxZbWYCEAknTEWRhdMim1ZyGCXoAAjPS8pfCI7bNEcSrdpO/DO4hMCUyRPcGM9XviKbDgpAJ/XoocJj/l1E2EvZLbktyyGUThvhncN5NpabnwKnITiW2KHVXjJs0+ok/J38w5jCKhEl4H5tun/fzQFrYXP5wpGJmvZie9xbpZaYvJxA5r2okEOeEZSX+GR+cdZ9gTZtouAvPvQfTQwRXAFMoeStJg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=X5BvTn8RP7T1gGrq+r+B32FCLNbKbAQxECCv+rZ7kBQ=;
 b=C0p/0nLGDjfs6D9ZC9Y/XfTiVO+qrPTomAeRThvY+Zz7vauv4Dek3IwX3b30urx6fcPp+D/dXQbE94+JdYsRtVjQN6//0k1uxg8CfgbZcDuHMuDsXoIodilqkdafcgVQGAUDot+CI05ITAxxr4nECtCzMKzt4X3f3s2Op6De12zNtK+QrQW5RsFrMV5Gr/UxPplDhQo1q6IsfJGkO7a+dIRuxv7HS1zAPQqguO/JTjcKHxTa5i1z9Q/tgOVlTnsncJsaKXYXumU6qiQqF9hEz74b1cxkk9PQUGaAU/XaDprWCCsRg+IDMQxqkmTKOvSLIYEcuWU5Yspn1wuY5usdqQ==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>, Alejandro
 Vallejo <alejandro.garciavallejo@amd.com>
Subject: [XEN][PATCH v4] xen/x86: guest_access: optimize raw_x_guest() for PV
 and HVM combinations
Thread-Topic: [XEN][PATCH v4] xen/x86: guest_access: optimize raw_x_guest()
 for PV and HVM combinations
Thread-Index: AQHcVW8mVQ2jSEgYfEK6o/9vmk6AaA==
Date: Fri, 14 Nov 2025 14:01:19 +0000
Message-ID: <20251114140117.270461-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB8907:EE_|AS8PR03MB7173:EE_
x-ms-office365-filtering-correlation-id: fb9cfb65-a145-4594-68c7-08de23864979
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:
 =?iso-8859-1?Q?T/v57I+jl3d61PqGwwm+ag0Ex0bBmqAMj+GqQQ2H6uNrzfescmzGbE+voQ?=
 =?iso-8859-1?Q?LU0XJLO96kPARuwTMBHqyX0+3FKy2BwLGwsdL3BK/Lh6H6TAAn6CtX8D2f?=
 =?iso-8859-1?Q?mO0VoRrqQsKGpVZIODPqT6oYNmEUs9qXi22T55OWGuIDSMQRhfv/dm/IMC?=
 =?iso-8859-1?Q?hVBpMrfmxfXwf02kztS7fgK5tvzZN1Q61NHh6vO8Xv7Oo79AjF7bNQlssU?=
 =?iso-8859-1?Q?niVEGsZp1mxuZ/Lb1/s4tKdPVYqLbLm331+0MF7HmeMlUXi0Xya2sZEGr3?=
 =?iso-8859-1?Q?GRsW88kaS9GNK0I5nrKhRlBNa9pVyOJyRd3/+nebvhpX/HeBxrxUdcDfU8?=
 =?iso-8859-1?Q?KBNmJmiUtzI85eUODx3F+DcQW1WmTxOeT+pjP/0US5bqGsocqPPi2KZffG?=
 =?iso-8859-1?Q?UylhmPSpQQH0gXGQWdvDm4XtXgZnJY9LbYbLYwXeiXP80Q9TWNYtZ4jUB0?=
 =?iso-8859-1?Q?BwTXdRXaxwpggmzxfODmPqWyD+SWIQHzc/0EOvLgDAam20sDxprB79zRZp?=
 =?iso-8859-1?Q?m4czO7h4LAOwHw7PObdXB1okz2CMsQQpGXTaA2zVINrAFhpeWq4L4DXNAy?=
 =?iso-8859-1?Q?wLh7XiojVC2cA4/QLZTgFv2ybdMsoPg2rfiIftY+acsoiU5qg9wXE7dWAi?=
 =?iso-8859-1?Q?Lx9wNH0LhM9B5qRrHhRppKPqLH5RH9BNoZdmJ3b3vjWljunx2E+WWtcBIJ?=
 =?iso-8859-1?Q?+B21k7k0LWtqqBfASGGipFWCudRsppox3mL4fyWG47MGQtFiqwEeC3Xsct?=
 =?iso-8859-1?Q?hbBKx6SYmVuSSDPgah/JC4Fx6ZpYaNUufNql8h7sXx8Jw2cu+pO4jE22cx?=
 =?iso-8859-1?Q?Z0SZ0QnTxf4+J2kwLAGZUWVqVIPwqmp7QDnN8uRkWWVpG+WjqD5XM+WhFN?=
 =?iso-8859-1?Q?9KBg4MZPcH/hbqCjUGBTAqKkS/qH23d9IQiQYqCmXw2IZZcq+tq/4+Yy9r?=
 =?iso-8859-1?Q?HsJrRX0eRy4RhNGLh+yH88duuMOyBcB2m+jsHwOsTJYAFsxujJ/E2ei0FC?=
 =?iso-8859-1?Q?JNg2mYpB7UTxGKHgP3Jip6RdINJondotYSlCC2LmFhiiwYbD4sUcuNwVPZ?=
 =?iso-8859-1?Q?J2knkmx/+uKI8Ej3GbR18R2up/IzanwTbF3vpDgEZht4dOYleB6ksyyx8c?=
 =?iso-8859-1?Q?nUCis07koEBZay17zRh6bWO4ZeqWiPQGKMcNXgAPYuJZoYbxkVBF2Hcas/?=
 =?iso-8859-1?Q?4+gR6ukxtIqplmb4pwwN3skFcpYDp9xh2hNZLGyzgJQ4H04JJbbORvupdr?=
 =?iso-8859-1?Q?91thLQH1vQdzdtme9enuTOSgyqNRQ/ug9vS4uCnJPI0iU4bddryFRApHxi?=
 =?iso-8859-1?Q?KhjgWQEShD4FFauZlqT4Z+o29yALR9n09ldnppXNgJBN4xGtKrw17d7m8l?=
 =?iso-8859-1?Q?1vXuzhts12zqCQebl094kTdTCNterhxweXW2rPQmPychIVjG5e/JoKAjlv?=
 =?iso-8859-1?Q?REwWF4VjYwq3su9kqkyD379iaw9sXbLJ28Cv22bbDZGQE1zAZgMDryttbK?=
 =?iso-8859-1?Q?bGvtXBeBan1QHgUkSOqOI9G/yYofYNc8wQ71xCy4PqJQkrDjEkFd06uCeA?=
 =?iso-8859-1?Q?8+hX1MUpbfKb/DGBi5EroFoyD3CZ?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?SIpA54Y3S3jaPN3RbB4/KMj0xOmlboxIlX4YH6zT7+og2/Vd2pFk0fqs61?=
 =?iso-8859-1?Q?KHOfPaStiaMg5IqJsRL1O/6ZPbGLDQyjWWF1zXf3C3gE7tOWddwBD2Ozrp?=
 =?iso-8859-1?Q?dPsphe5agk2+4wsmNm9K/fZL/Ltw+uFxEbLkgVofrRu9neVh4AcfzSKu7b?=
 =?iso-8859-1?Q?GN67OSBTkXiy5nevRfGAG3oFmTxw7eRL3Md7F93Y4zn28jQZ4CiGcJcE5P?=
 =?iso-8859-1?Q?yJz2RTyHYuQpgNOv3z2XNtKHKt+0AE9pnbK3KbM8KnjuYN9o3sa0+UeXAa?=
 =?iso-8859-1?Q?9erJRelYv2iGu0QPimGHeh+XHdZWXv1Nxrj8qSZ9akmYqqoFVap7QZYL9o?=
 =?iso-8859-1?Q?VUVH93BCpJhMVQTNVM+BQDy2KW8hkHPGe4D2rGEKIfLRhyIaG26xDvBxka?=
 =?iso-8859-1?Q?eOf26o8oHMLoLOC2uJ0iH920Tqk9KGBLHjbXZr0K4SfBeNUHIwDsNVC9ux?=
 =?iso-8859-1?Q?G0laoO/0pYfYm+Ev/P3CG3rWNsRYjfvt/3bwz9kinb6Od/K7ZarLCAn/Nk?=
 =?iso-8859-1?Q?Us2Me1zTrBkZjPil312Ve9LYtr3M4jJj9Yeow1Rc7y+L9vYKvJaP9xjY28?=
 =?iso-8859-1?Q?tJ72dNtpvl8ePhxCc6K095YV7ANu0N87jjDLhOiAbRS6dyUUB374A8nzd9?=
 =?iso-8859-1?Q?bmoZSolK9zH+sxEu5dnvHh0qVB6X+xyd7Sb+AXji0N0RKujmjdiqlj2hd7?=
 =?iso-8859-1?Q?fovG/7TTwLU58cC4jQXWrtnd2PiDRM9lmQEp2bM+xbSth/ERWkRy578q3/?=
 =?iso-8859-1?Q?2+P6clTmKTPo9IyQByyAI36ZjyZMHF1VcT6+/Iyzq+0/JZNQskTpr7xl7z?=
 =?iso-8859-1?Q?zwJNcqxkDIu1yzQtfO8Hu58ztq/xZ+4DX/eqTvfK6gT78LNMWU+JvltnPE?=
 =?iso-8859-1?Q?AgZfl5tkQKjvWLuMg9seddA42fVGxeJFLPBham6ulkLYQz9FrQrxxgOWnt?=
 =?iso-8859-1?Q?XWivW5PhN5o3pOicFH3XLpNKjnWCQ1slxfizBR/L9UTf8Q7ZORr5zlvJ1L?=
 =?iso-8859-1?Q?DFENiW4xP4lbN2F6kRjkbTALza4ZVU5BpRr0lP+yxSr0ugxdWzqZWHp/Kq?=
 =?iso-8859-1?Q?WL8D6y+p7zqzw85u0ub72KaEwOQjoL5Qrmpn5MfxX4bj2/H1Sc33tM2lOS?=
 =?iso-8859-1?Q?nin0JbjVwgOdNIPNwVRMHw/2y6vJ+F1fTWbc+xnQIShT3RHEPPHZo0VlYq?=
 =?iso-8859-1?Q?/aE/4EPkA56R6CQZrnI/5Cx9i0zEI90Acqbb6VqRuoJju1YsC6kjKhxnWZ?=
 =?iso-8859-1?Q?c5Pzca/y3V92egJMkBzVuPRxNK9qpnqnZJ2YrT8ziHl5uGlpHuViYULodW?=
 =?iso-8859-1?Q?fnZsPbbFpKgcpIr3Qn5DLGEjPBVubAEfSS95WPyg0UkB+/IutwH88i/ZTM?=
 =?iso-8859-1?Q?kWMknh2hdHoX2v21dZx9ljKsfxSRAvQkIkeG8XDE3QTlzoxLM0z2ClQO0v?=
 =?iso-8859-1?Q?1xVK7Y/ohAL92uH8RTdgCKMSay9j8bp3LUQ9HrZshtUxAhYt2Ytwj5kk3j?=
 =?iso-8859-1?Q?y/ECqJY6BI8BLSBo4hqABt+oVjyUtB6OpY/ZPprm3POyc62QqTWlLrdnOT?=
 =?iso-8859-1?Q?7vy5bKw5fpS6DJg8/InTYNBZbojnLHSu2ryDthnsPfBHwAetBYjEYmDxei?=
 =?iso-8859-1?Q?I5xQ+msTHu3ASAvFvsCChFkPf7JUj7DpIbG5DwTn7TwjQ/6hYVXzbrEQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fb9cfb65-a145-4594-68c7-08de23864979
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Nov 2025 14:01:19.8007
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: EzRtjHG7V03Hufd8hr1vfuWtc7ntol9wOvAQYsdfP0uEEPCYfsri/UBqufyPnPBXOEJBluKJqohfdW8K2cEGVDRIq4L+2lQPazgz9eXzqlI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7173

From: Grygorii Strashko <grygorii_strashko@epam.com>

Xen uses below pattern for raw_x_guest() functions:

define raw_copy_to_guest(dst, src, len)        \
    (is_hvm_vcpu(current) ?                     \
     copy_to_user_hvm((dst), (src), (len)) :    \
     copy_to_guest_pv(dst, src, len))

This pattern works depending on CONFIG_PV/CONFIG_HVM as:
- PV=3Dy and HVM=3Dy
  Proper guest access function is selected depending on domain type.
- PV=3Dy and HVM=3Dn
  Only PV domains are possible. is_hvm_domain/vcpu() will constify to "fals=
e"
  and compiler will optimize code and skip HVM specific part.
- PV=3Dn and HVM=3Dy
  Only HVM domains are possible. is_hvm_domain/vcpu() will not be constifie=
d.
  No PV specific code will be optimized by compiler.
- PV=3Dn and HVM=3Dn
  No guests should possible. The code will still follow PV path.

Rework raw_x_guest() code to use static inline functions which account for
above PV/HVM possible configurations with main intention to optimize code
for (PV=3Dn and HVM=3Dy) case.

For the case (PV=3Dn and HVM=3Dn) return "len" value indicating a failure (=
no
guests should be possible in this case, which means no access to guest
memory should ever happen).

Finally move arch/x86/usercopy.c into arch/x86/pv/usercopy.c to use it only
with PV=3Dy.

The measured (bloat-o-meter) improvement for (PV=3Dn and HVM=3Dy) case is:
  add/remove: 3/8 grow/shrink: 3/89 up/down: 1018/-12087 (-11069)
  Total: Before=3D1937280, After=3D1926211, chg -0.57%

[teddy.astie@vates.tech: Suggested to use static inline functions vs
macro combinations]
Suggested-by: Teddy Astie <teddy.astie@vates.tech>
Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
changes in v4:
- move usercopy.c into arch/x86/pv/
- rework to always dynamically check for HVM vcpu(domain) by using is_hvm_v=
cpu()
  as requested by Jan Beulich

changes in v3:
- add raw_use_hvm_access() wrapper

changes in v2:
- use static inline functions instead of macro combinations

 xen/arch/x86/Makefile                   |  4 --
 xen/arch/x86/include/asm/guest_access.h | 78 ++++++++++++++++++-------
 xen/arch/x86/pv/Makefile                |  4 ++
 xen/arch/x86/{ =3D> pv}/usercopy.c        |  0
 4 files changed, 62 insertions(+), 24 deletions(-)
 rename xen/arch/x86/{ =3D> pv}/usercopy.c (100%)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 407571c510e1..6e2b17471719 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -71,7 +71,6 @@ obj-y +=3D time.o
 obj-y +=3D traps-setup.o
 obj-y +=3D traps.o
 obj-$(CONFIG_INTEL) +=3D tsx.o
-obj-y +=3D usercopy.o
 obj-y +=3D x86_emulate.o
 obj-$(CONFIG_TBOOT) +=3D tboot.o
 obj-y +=3D hpet.o
@@ -92,9 +91,6 @@ hostprogs-y +=3D efi/mkreloc
=20
 $(obj)/efi/mkreloc: HOSTCFLAGS +=3D -I$(srctree)/include
=20
-# Allows usercopy.c to include itself
-$(obj)/usercopy.o: CFLAGS-y +=3D -iquote .
-
 ifneq ($(CONFIG_HVM),y)
 $(obj)/x86_emulate.o: CFLAGS-y +=3D -Wno-unused-label
 endif
diff --git a/xen/arch/x86/include/asm/guest_access.h b/xen/arch/x86/include=
/asm/guest_access.h
index 69716c8b41bb..f0e56b112e14 100644
--- a/xen/arch/x86/include/asm/guest_access.h
+++ b/xen/arch/x86/include/asm/guest_access.h
@@ -13,26 +13,64 @@
 #include <asm/hvm/guest_access.h>
=20
 /* Raw access functions: no type checking. */
-#define raw_copy_to_guest(dst, src, len)        \
-    (is_hvm_vcpu(current) ?                     \
-     copy_to_user_hvm((dst), (src), (len)) :    \
-     copy_to_guest_pv(dst, src, len))
-#define raw_copy_from_guest(dst, src, len)      \
-    (is_hvm_vcpu(current) ?                     \
-     copy_from_user_hvm((dst), (src), (len)) :  \
-     copy_from_guest_pv(dst, src, len))
-#define raw_clear_guest(dst,  len)              \
-    (is_hvm_vcpu(current) ?                     \
-     clear_user_hvm((dst), (len)) :             \
-     clear_guest_pv(dst, len))
-#define __raw_copy_to_guest(dst, src, len)      \
-    (is_hvm_vcpu(current) ?                     \
-     copy_to_user_hvm((dst), (src), (len)) :    \
-     __copy_to_guest_pv(dst, src, len))
-#define __raw_copy_from_guest(dst, src, len)    \
-    (is_hvm_vcpu(current) ?                     \
-     copy_from_user_hvm((dst), (src), (len)) :  \
-     __copy_from_guest_pv(dst, src, len))
+static inline unsigned int raw_copy_to_guest(void *dst, const void *src,
+                                             unsigned int len)
+{
+    if ( is_hvm_vcpu(current) )
+        return copy_to_user_hvm(dst, src, len);
+
+    if ( !IS_ENABLED(CONFIG_PV) )
+        return len;
+
+    return copy_to_guest_pv(dst, src, len);
+}
+
+static inline unsigned int raw_copy_from_guest(void *dst, const void *src,
+                                               unsigned int len)
+{
+    if ( is_hvm_vcpu(current) )
+        return copy_from_user_hvm(dst, src, len);
+
+    if ( !IS_ENABLED(CONFIG_PV) )
+        return len;
+
+    return copy_from_guest_pv(dst, src, len);
+}
+
+static inline unsigned int raw_clear_guest(void *dst, unsigned int len)
+{
+    if ( is_hvm_vcpu(current) )
+        return clear_user_hvm(dst, len);
+
+    if ( !IS_ENABLED(CONFIG_PV) )
+        return len;
+
+    return clear_guest_pv(dst, len);
+}
+
+static inline unsigned int __raw_copy_to_guest(void *dst, const void *src,
+                                               unsigned int len)
+{
+    if ( is_hvm_vcpu(current) )
+        return copy_to_user_hvm(dst, src, len);
+
+    if ( !IS_ENABLED(CONFIG_PV) )
+        return len;
+
+    return __copy_to_guest_pv(dst, src, len);
+}
+
+static inline unsigned int __raw_copy_from_guest(void *dst, const void *sr=
c,
+                                                 unsigned int len)
+{
+    if ( is_hvm_vcpu(current) )
+        return copy_from_user_hvm(dst, src, len);
+
+    if ( !IS_ENABLED(CONFIG_PV) )
+        return len;
+
+    return __copy_from_guest_pv(dst, src, len);
+}
=20
 /*
  * Pre-validate a guest handle.
diff --git a/xen/arch/x86/pv/Makefile b/xen/arch/x86/pv/Makefile
index 6cda354cc41f..59489cd75af6 100644
--- a/xen/arch/x86/pv/Makefile
+++ b/xen/arch/x86/pv/Makefile
@@ -14,6 +14,10 @@ obj-y +=3D ro-page-fault.o
 obj-$(CONFIG_PV_SHIM) +=3D shim.o
 obj-$(CONFIG_TRACEBUFFER) +=3D trace.o
 obj-y +=3D traps.o
+obj-$(CONFIG_PV) +=3D usercopy.o
=20
 obj-bin-y +=3D dom0_build.init.o
 obj-bin-y +=3D gpr_switch.o
+
+# Allows usercopy.c to include itself
+$(obj)/usercopy.o: CFLAGS-y +=3D -iquote .
diff --git a/xen/arch/x86/usercopy.c b/xen/arch/x86/pv/usercopy.c
similarity index 100%
rename from xen/arch/x86/usercopy.c
rename to xen/arch/x86/pv/usercopy.c
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 14:22:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 14:22:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162699.1490244 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJugn-0001Mz-Jw; Fri, 14 Nov 2025 14:22:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162699.1490244; Fri, 14 Nov 2025 14:22:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJugn-0001Ms-H6; Fri, 14 Nov 2025 14:22:13 +0000
Received: by outflank-mailman (input) for mailman id 1162699;
 Fri, 14 Nov 2025 14:22: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=lTzj=5W=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJugm-0001Mm-KX
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 14:22:12 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4ee696b5-c165-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 15:22:11 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AS8PR03MB7191.eurprd03.prod.outlook.com (2603:10a6:20b:2ee::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Fri, 14 Nov
 2025 14:22:09 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Fri, 14 Nov 2025
 14:22: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: 4ee696b5-c165-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fqij3U/GDpv16qpX+xG+2+q+k0oZIeMmAGWolihrLMXoT2//WyCr9PR1fEgBpLni7gOb6q0GXwoJqOuNhNHsPB/E0ihZDN2I1SndYWsnwrrj/k8+jscKJUXsXfR69gUSrtKz+IYzLS+GF3TjPMs4iE1oz0pOk9DO56YNub6/WMLg8xyrSPXtfwMk+DgRLKptpu3pGCSBAxT/0LjIGG+l19zY/np5tdZIYgnxrh72eAHX95f3ED67LDs+nIhMMYdybRtRa21yT8OCh40AzCcE8a2wnYHuJE+Z0dJGDWDpMmTocQCycDzXPuA3oHM3PRgGDHvA/BWe5M2SIYf3kjXaug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=I6CjEf5hNvYHDl2uCvVcp/WqWMosBJlofzdgbI/8mko=;
 b=B6b8CQVcnWi1h7Tly47v+r96mD0a/cc+tMXdOTdUzw3x5qnM9de6kWuxBy2efanjU7IU1Aty+rCCsAP1pPKNi88R0ixievPEhekq6V6i1bxZXIVbb+4zaznP2JIOW7fFCdzHpk8N/B0hC44cBnIv9VAHNgVUT/OaJM54tASVx4Vufh48HDts1gYyt6IixgAs0PH6d9makPfMnFWmzPeCk2IXCsIrQXfUCvf6EvDc0/W3B1vd4bt/lWCDYZskmsXQXXOeyNN1HCMXSW8sDcSjBHKKfEWXjERN4PpGrCd+dgD70I5UZiT0NRquuvRrIYmZnqP29/ZESepPXOeYkY2j4Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=I6CjEf5hNvYHDl2uCvVcp/WqWMosBJlofzdgbI/8mko=;
 b=hfEJxkNkS3AF22dkCPeTarFLGhaE7WH7WdC+69BCi3IMfx9kf3gLOaPFVCwnUlxgXaCSDrwjv3aCfIirdOSqCwB7D/P/SJASnog/rDuwEDwsmK5375olRVzzOmRtCCmpmfYVqClOShtXjiKHy3hiVZrRRWexcrvAVotVdWN5yFfEhVY03QiFYlNVlqJuxSjNj+soHdMY0At/fkan+ayUOi4gsaqEGgC2aPcv53CVrYVo4M0Rs/7WDS4crg+92uy5gl5tBd4IZwMfZ7ESkdDqDGdq6/b3ych+UXvNTOc3zpB39ZmfAIIsf7ojrwlDqzrMyiVYJfOIGX2iA0XeFW1Ofg==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Tamas K
 Lengyel <tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>,
	Petre Pircalabu <ppircalabu@bitdefender.com>, Teddy Astie
	<teddy.astie@vates.tech>, Penny Zheng <Penny.Zheng@amd.com>
Subject: [XEN][PATCH v3] xen: make VMTRACE support optional
Thread-Topic: [XEN][PATCH v3] xen: make VMTRACE support optional
Thread-Index: AQHcVXIP26AfHxCGuEiFwRo5YoIXjA==
Date: Fri, 14 Nov 2025 14:22:08 +0000
Message-ID: <20251114142207.279834-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB8907:EE_|AS8PR03MB7191:EE_
x-ms-office365-filtering-correlation-id: 77fc1a78-5d8d-42e2-3ad1-08de238931fe
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?ZPC/rtk9Duk+LVMTyYrwJs03imI33wBriCevwwkuiGwJrJ+cvm5MkPVtWn?=
 =?iso-8859-1?Q?pK7GJSRjY6m8MA2gefAZqgrG7kWfS2MecgZbBe+0wWo3ltEMIMaBobL6GL?=
 =?iso-8859-1?Q?fEMPbDFoBN67/A5Z1vPOZlMljSWYLJtLXRGsDoKwlGf8I5qs4sukW9YITD?=
 =?iso-8859-1?Q?7MDm22z+xkl0Rm5u0m+iIZdBTunDERr5wQiiGc2eR4KtBY9peyrFuuzlS6?=
 =?iso-8859-1?Q?lE6sDf/jZkQU7RXdE5H3881dH4jUdWb/sLGFanrhIHgKqcjwFQpuYldKLN?=
 =?iso-8859-1?Q?iGiu2uQ2UKKCFfz2qp4P/485UZ3GQQo2/ntXnH1lG8NRJiwrSQdp25Wcb6?=
 =?iso-8859-1?Q?UdiEosN6jDYaReR/uLkLptncHx0MTHPnMztLCVmUH3ZvkHllonDyDOYPO+?=
 =?iso-8859-1?Q?ZC2o8LndMZ4Kzqyo4/rDa77INNeiY6SY5xt8lOaBFnfNjIiN6GqiMksD7f?=
 =?iso-8859-1?Q?twarYphmxK5LL+Uiem0789xJii0Z1jKFL6FWwgqPXowzgAFCXh8OWmjEEN?=
 =?iso-8859-1?Q?P9owiYARnkdb0WPzCz3AdL6PySe+ied1TWoQOZXitUlqgr4blWw3W2WNa3?=
 =?iso-8859-1?Q?E8QLK6v1dngYovs+zEJAs41srxHbukn9ENJSXVViCrxXDhbjqNfSelvOEx?=
 =?iso-8859-1?Q?0IpWugtErx1H52hEo4oQo5uzwyR6b4mGqBuoNDGa13o4S7s5TAMKDcqwRI?=
 =?iso-8859-1?Q?c7a5xhHFAHPPR1f8I+IgeMKPrQJj3fZdAfdE+cbdaB9D3NP90XJwpu2ydR?=
 =?iso-8859-1?Q?1+AAjx2MQ+58N0xh733Oz2Ygdg+oVHlSt5dMamsKEk7yFR2ZVaXctmy4Hu?=
 =?iso-8859-1?Q?XH42Shl9n7OJTDvM53WC7wkIn8UMJBB2GwjkxCsDlO+P7k7XIaCy+OxJuL?=
 =?iso-8859-1?Q?LC8PVsczg5NJZeHEdIONSNbbOixPjH5bezB+qjACrhs1axnADj3HM63xgV?=
 =?iso-8859-1?Q?nN2coYHXGY/N9WXxLG8NDJeotOtReBDQpB2uCYevYS4SMvW7dm+UfzmB0K?=
 =?iso-8859-1?Q?ZFNCcMThnNqtxh33YKbT6eVApmv2PTMOM/8gcl6W5RJs/YZyxpVQhnmyNU?=
 =?iso-8859-1?Q?zicE33Xn3/fAE2nI0WpQhvg2Nu5nbbJMex86pFeU4X+z2w5+zTjPEBUatg?=
 =?iso-8859-1?Q?ZtnxGdy8L5sMyO4PIbuLtjfaxPMSSMUkWFR+AWNEH15QWlRdhjaP8egQZr?=
 =?iso-8859-1?Q?JAb2L6HTUyt6/wYre/RAAyh4bguoLEFJ3Xtryp8Lc0KWQhRuMboEop/kSj?=
 =?iso-8859-1?Q?1060dWbpxEAGsNUhXhKRYvTMnOgiligdjnc+Fcvnz3VKqFv7BdwES4MIy1?=
 =?iso-8859-1?Q?a/Te4cQyDal+Gw2bpg2iB92rM57wf7AzNxgAdbSfRlT1Xr6TDvXaNUPnxN?=
 =?iso-8859-1?Q?r36sGbLzzbGUW1dxChFIdLqndDcfX1u4Ra6IRHqcB+X7Cu0ia/fCv0QVLi?=
 =?iso-8859-1?Q?i131tjUjlXvYQYhGD0UVwakoAEyZaRj3G0pHOVvvTaY2s5VpJ6RYg00FZK?=
 =?iso-8859-1?Q?fEC+SFvtQf+TX/0/6Q2Et1ecivvJ+zdEWGF9jVxrYxbE/IubuakAFwYPFi?=
 =?iso-8859-1?Q?Ob5aqpDjDrwrahVejGoe9CJ4AP/f?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?2gvySbqw87P2DkU8jO35Ro6EiP0FQPg3hfooa8UDwR8xW9uwPN9IJ9mvkG?=
 =?iso-8859-1?Q?6rUr/X19jvXSxT2V0FGojG3qtnc4wqjfkhYAGAjLZzfIUktRdU0x577iep?=
 =?iso-8859-1?Q?+DoCKI4/0ToJ6o27UNnT3GRq6j3vz7FyYNOUuzZ+IUq0pr+h6MZUkysAY5?=
 =?iso-8859-1?Q?Kg6HDOilkFxcvyOF1XgXlFq9wyEed+/ZirKGHJJa0cT1VT341uys6Y+dTu?=
 =?iso-8859-1?Q?8/0D1nbNkuuhh8DfW1imWpe2Y/uWFG6Xsx3qijTp10RhPof2m4O6mr+YxB?=
 =?iso-8859-1?Q?vFV5L79bRzneDspP/VMOweyV5ZsEJ9GyM0EJwgBHzGkhuy3PFXPKtot62P?=
 =?iso-8859-1?Q?8btVbjyb5hAlFKMRoNBypAwHhn/Tt4Gjx6IYya/Wply5AjATBgzn76SEjo?=
 =?iso-8859-1?Q?ped4bFx4de57ViPhLa4CqHz6SAwJklLlN+/OewArgULDo5vVG6ajL+V8cr?=
 =?iso-8859-1?Q?ox28LePH77aSwrwQIH10jLfsxaiP1pQ+tJxwA48oVIa37vfRxiQsCNM3gj?=
 =?iso-8859-1?Q?+t+j8DR1jH2stgWNypxW8Vft33BJn3QNRllkCDqh7wEcFTq0s7r7YlctIY?=
 =?iso-8859-1?Q?fEUfcuaiaDoA6Qbo3NOwhGvIGWO1Az+SeqC6BQgc2j0N6XtOHywWxkoFoO?=
 =?iso-8859-1?Q?CSR1ZxFyiD9av+xhHgzFkJvYan6W6usNH6rp3WdaTuCV2u9MOf+FJC7W6V?=
 =?iso-8859-1?Q?h2R6yg83dNVzuN+YgenxBt/qjl7QQ5Ocj1QIQm8CrHi+wrsB4wIXE4MNdl?=
 =?iso-8859-1?Q?rWLlNnVEkMPTZnIj5LHcLUx9tNgAOpEvr1Hhqak2Eka9GVESwJAzO0wULJ?=
 =?iso-8859-1?Q?hRyZttifsLSudc3YVEuopVdWUlmv/TL4mDNKDgSO6VHljlrF3GEJUXWzZp?=
 =?iso-8859-1?Q?PkbeJrwvSo5FBcw2VsiO932gTJehuqaABmePh4MWn9yaQd9X5d9S6kYppN?=
 =?iso-8859-1?Q?RBC6Z0hy9/M1YwgYDuE6c7cIX/L3vIexLEslWWKPdrFg/G4QxTYDA4rfAf?=
 =?iso-8859-1?Q?7kBe6UeuCsAnS/MC2h3xpRhHStWczLoPWgeW5TU2/Gr1m0TNJT3r2HWILq?=
 =?iso-8859-1?Q?llBmH96K1+IYBs/GJx2XLrtlVRVRmVbzO0i6/E8JlNStBpCS7PstoSdTJ9?=
 =?iso-8859-1?Q?1KuClXxyOjI+YHQwzEQVNVZCRJSiRz5TAK2QWLTK5bCboJJvOyitKtYh3E?=
 =?iso-8859-1?Q?G7SHv/YaT5e0iYnwUVBnZu9pgVJHBZXl9vDOMp8qFn2FFGJy953RSWmYG9?=
 =?iso-8859-1?Q?rHRUUgpBSjdggj9zlgKENOZv7RN8nYQ7mUubymx3jrGg0VntTG9XQOS0aX?=
 =?iso-8859-1?Q?ZjnE4Gr2RkN3Q7UYRNvgSEu+sktJNmzf4sQlTzHRaWsNUBFcB1xqsTrJOD?=
 =?iso-8859-1?Q?W/shn9cNFrHi4fqvThkzu/yHZVHGibP0yXhy7V7Yg/wBQiLQVUaw13vjyt?=
 =?iso-8859-1?Q?5o9FRef12vhMOFurd825P+Sy5f04GveXnoyo6TGp87UawJy5wL2gXS89wy?=
 =?iso-8859-1?Q?UJI9wLXfoO99C3jQvhajr5JesxM3I5Cw0hkq1gUUe5L6aLBNqZuQNzO/FH?=
 =?iso-8859-1?Q?/4Hu4P44Ix1rW1LM6Ykz+wIjvyoHe1x7AbJqfPJzi2/dIleOmXR5AJDkAC?=
 =?iso-8859-1?Q?5jYC9hnXnZZtLjq9Vscc0tgsCPanrXPECRJxaYVw5Sq0to/EaKZqYi0w?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 77fc1a78-5d8d-42e2-3ad1-08de238931fe
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Nov 2025 14:22:08.8825
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: wL8qX+QrOc67lq6pQs4FdB35lIyqk2zcDLPRaea/7UV3MQadHEG9oO60lRC3h36XHc4EtyEUE+taLAGvGDDUvOeGDo9ImzbsTarZW3TGCIc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7191

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 v3:
- drop vmtrace stubs for HVM=3Dn 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

v2:
 https://patchwork.kernel.org/project/xen-devel/patch/20251112202442.387999=
7-1-grygorii_strashko@epam.com/=20
v1:
 https://patchwork.kernel.org/project/xen-devel/patch/20251031212005.133821=
2-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                 |  7 ++---
 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, 79 insertions(+), 26 deletions(-)

diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 6153e3c07e2d..d9521808dcba 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -154,6 +154,7 @@ void arch_get_domain_info(const struct domain *d,
 static int do_vmtrace_op(struct domain *d, struct xen_domctl_vmtrace_op *o=
p,
                          XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
 {
+#ifdef CONFIG_VMTRACE
     struct vcpu *v;
     int rc;
=20
@@ -198,6 +199,9 @@ static int do_vmtrace_op(struct domain *d, struct xen_d=
omctl_vmtrace_op *op,
     vcpu_unpause(v);
=20
     return rc;
+#else
+    return -EOPNOTSUPP;
+#endif
 }
=20
 #define MAX_IOPORTS 0x10000
diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index c1a131d1851a..5c47a45c9350 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -35,6 +35,18 @@ config INTEL_VMX
 	  If your system includes a processor with Intel VT-x support, say Y.
 	  If in doubt, say Y.
=20
+config VMTRACE
+    bool "HW VM tracing support"
+    depends on INTEL_VMX
+    default y
+    help
+      Enables HW VM tracing support which allows to configure HW processor
+      features (vmtrace_op) to enable capturing information about software
+      execution using dedicated hardware facilities with minimal interfere=
nce
+      to the software being traced. The trace data can be retrieved using =
buffer
+      shared between Xen and domain
+      (see XENMEM_acquire_resource(XENMEM_resource_vmtrace_buf)).
+
 config HVM_FEP
 	bool "HVM Forced Emulation Prefix support (UNSUPPORTED)" if UNSUPPORTED
 	default DEBUG
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index cd5ac8a5f0e3..2fffc2006ab0 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -307,6 +307,7 @@ static int vmx_init_vmcs_config(bool bsp)
     rdmsrl(MSR_IA32_VMX_MISC, _vmx_misc_cap);
=20
     /* Check whether IPT is supported in VMX operation. */
+#ifdef CONFIG_VMTRACE
     if ( bsp )
         vmtrace_available =3D cpu_has_proc_trace &&
                             (_vmx_misc_cap & VMX_MISC_PROC_TRACE);
@@ -317,6 +318,7 @@ static int vmx_init_vmcs_config(bool bsp)
                smp_processor_id());
         return -EINVAL;
     }
+#endif
=20
     if ( caps.cpu_based_exec_control & CPU_BASED_ACTIVATE_SECONDARY_CONTRO=
LS )
     {
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index ee6977e94127..3f0e113b0b67 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -622,6 +622,7 @@ static void cf_check domain_creation_finished(struct do=
main *d)
=20
 static void vmx_init_ipt(struct vcpu *v)
 {
+#ifdef CONFIG_VMTRACE
     unsigned int size =3D v->domain->vmtrace_size;
=20
     if ( !size )
@@ -632,6 +633,7 @@ static void vmx_init_ipt(struct vcpu *v)
     ASSERT(size >=3D PAGE_SIZE && (size & (size - 1)) =3D=3D 0);
=20
     v->arch.msrs->rtit.output_limit =3D size - 1;
+#endif
 }
=20
 static int cf_check vmx_vcpu_initialise(struct vcpu *v)
@@ -724,11 +726,13 @@ static void vmx_save_guest_msrs(struct vcpu *v)
      */
     v->arch.hvm.vmx.shadow_gs =3D read_gs_shadow();
=20
+#ifdef CONFIG_VMTRACE
     if ( v->arch.hvm.vmx.ipt_active )
     {
         rdmsrl(MSR_RTIT_OUTPUT_MASK, msrs->rtit.output_mask);
         rdmsrl(MSR_RTIT_STATUS, msrs->rtit.status);
     }
+#endif
=20
     if ( cp->feat.pks )
         msrs->pkrs =3D rdpkrs_and_cache();
@@ -747,12 +751,14 @@ static void vmx_restore_guest_msrs(struct vcpu *v)
     if ( cpu_has_msr_tsc_aux )
         wrmsr_tsc_aux(msrs->tsc_aux);
=20
+#ifdef CONFIG_VMTRACE
     if ( v->arch.hvm.vmx.ipt_active )
     {
         wrmsrl(MSR_RTIT_OUTPUT_BASE, page_to_maddr(v->vmtrace.pg));
         wrmsrl(MSR_RTIT_OUTPUT_MASK, msrs->rtit.output_mask);
         wrmsrl(MSR_RTIT_STATUS, msrs->rtit.status);
     }
+#endif
=20
     if ( cp->feat.pks )
         wrpkrs(msrs->pkrs);
@@ -2626,6 +2632,7 @@ static bool cf_check vmx_get_pending_event(
     return true;
 }
=20
+#ifdef CONFIG_VMTRACE
 /*
  * We only let vmtrace agents see and modify a subset of bits in MSR_RTIT_=
CTL.
  * These all pertain to data-emitted into the trace buffer(s).  Must not
@@ -2768,6 +2775,7 @@ static int cf_check vmtrace_reset(struct vcpu *v)
     v->arch.msrs->rtit.status =3D 0;
     return 0;
 }
+#endif
=20
 static uint64_t cf_check vmx_get_reg(struct vcpu *v, unsigned int reg)
 {
@@ -2940,11 +2948,14 @@ static struct hvm_function_table __initdata_cf_clob=
ber vmx_function_table =3D {
     .altp2m_vcpu_emulate_ve =3D vmx_vcpu_emulate_ve,
     .altp2m_vcpu_emulate_vmfunc =3D vmx_vcpu_emulate_vmfunc,
 #endif
+
+#ifdef CONFIG_VMTRACE
     .vmtrace_control =3D vmtrace_control,
     .vmtrace_output_position =3D vmtrace_output_position,
     .vmtrace_set_option =3D vmtrace_set_option,
     .vmtrace_get_option =3D vmtrace_get_option,
     .vmtrace_reset =3D vmtrace_reset,
+#endif
=20
     .get_reg =3D vmx_get_reg,
     .set_reg =3D vmx_set_reg,
diff --git a/xen/arch/x86/include/asm/guest-msr.h b/xen/arch/x86/include/as=
m/guest-msr.h
index 5f0cb0a93995..702f47fe1e16 100644
--- a/xen/arch/x86/include/asm/guest-msr.h
+++ b/xen/arch/x86/include/asm/guest-msr.h
@@ -50,6 +50,7 @@ struct vcpu_msrs
         };
     } misc_features_enables;
=20
+#ifdef CONFIG_VMTRACE
     /*
      * 0x00000560 ... 57x - MSR_RTIT_*
      *
@@ -81,6 +82,7 @@ struct vcpu_msrs
             };
         };
     } rtit;
+#endif
=20
     /*
      * 0x000006e1 - MSR_PKRS - Protection Key Supervisor.
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/=
hvm/hvm.h
index 7412256a2dab..93da4dd2dc4b 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -234,12 +234,14 @@ struct hvm_function_table {
     int (*altp2m_vcpu_emulate_vmfunc)(const struct cpu_user_regs *regs);
 #endif
=20
+#ifdef CONFIG_VMTRACE
     /* vmtrace */
     int (*vmtrace_control)(struct vcpu *v, bool enable, bool reset);
     int (*vmtrace_output_position)(struct vcpu *v, uint64_t *pos);
     int (*vmtrace_set_option)(struct vcpu *v, uint64_t key, uint64_t value=
);
     int (*vmtrace_get_option)(struct vcpu *v, uint64_t key, uint64_t *valu=
e);
     int (*vmtrace_reset)(struct vcpu *v);
+#endif
=20
     uint64_t (*get_reg)(struct vcpu *v, unsigned int reg);
     void (*set_reg)(struct vcpu *v, unsigned int reg, uint64_t val);
@@ -738,6 +740,7 @@ static inline bool altp2m_vcpu_emulate_ve(struct vcpu *=
v)
 bool altp2m_vcpu_emulate_ve(struct vcpu *v);
 #endif /* CONFIG_ALTP2M */
=20
+#ifdef CONFIG_VMTRACE
 static inline int hvm_vmtrace_control(struct vcpu *v, bool enable, bool re=
set)
 {
     if ( hvm_funcs.vmtrace_control )
@@ -772,13 +775,24 @@ static inline int hvm_vmtrace_get_option(
=20
     return -EOPNOTSUPP;
 }
+#else
+/*
+ * Function declaration(s) here are used without definition(s) to make com=
piler
+ * happy when VMTRACE=3Dn, compiler DCE will eliminate unused code.
+ */
+int hvm_vmtrace_output_position(struct vcpu *v, uint64_t *pos);
+#endif
=20
 static inline int hvm_vmtrace_reset(struct vcpu *v)
 {
+#ifdef CONFIG_VMTRACE
     if ( hvm_funcs.vmtrace_reset )
         return alternative_call(hvm_funcs.vmtrace_reset, v);
=20
     return -EOPNOTSUPP;
+#else
+    return -EOPNOTSUPP;
+#endif
 }
=20
 /*
@@ -934,28 +948,6 @@ static inline bool hvm_has_set_descriptor_access_exiti=
ng(void)
     return false;
 }
=20
-static inline int hvm_vmtrace_control(struct vcpu *v, bool enable, bool re=
set)
-{
-    return -EOPNOTSUPP;
-}
-
-static inline int hvm_vmtrace_output_position(struct vcpu *v, uint64_t *po=
s)
-{
-    return -EOPNOTSUPP;
-}
-
-static inline int hvm_vmtrace_set_option(
-    struct vcpu *v, uint64_t key, uint64_t value)
-{
-    return -EOPNOTSUPP;
-}
-
-static inline int hvm_vmtrace_get_option(
-    struct vcpu *v, uint64_t key, uint64_t *value)
-{
-    return -EOPNOTSUPP;
-}
-
 static inline uint64_t hvm_get_reg(struct vcpu *v, unsigned int reg)
 {
     ASSERT_UNREACHABLE();
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h b/xen/arch/x86/include=
/asm/hvm/vmx/vmcs.h
index 8ff7c8045fc6..879ec10cefd0 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
@@ -154,8 +154,10 @@ struct vmx_vcpu {
     /* Do we need to tolerate a spurious EPT_MISCONFIG VM exit? */
     bool                 ept_spurious_misconfig;
=20
+#ifdef CONFIG_VMTRACE
     /* Processor Trace configured and enabled for the vcpu. */
     bool                 ipt_active;
+#endif
=20
     /* Is the guest in real mode? */
     uint8_t              vmx_realmode;
diff --git a/xen/arch/x86/mm/mem_sharing.c b/xen/arch/x86/mm/mem_sharing.c
index 4787b2796479..074f1b2562b3 100644
--- a/xen/arch/x86/mm/mem_sharing.c
+++ b/xen/arch/x86/mm/mem_sharing.c
@@ -1888,7 +1888,9 @@ static int fork(struct domain *cd, struct domain *d)
         domain_pause(d);
         cd->max_pages =3D d->max_pages;
         *cd->arch.cpu_policy =3D *d->arch.cpu_policy;
+#ifdef CONFIG_VMTRACE
         cd->vmtrace_size =3D d->vmtrace_size;
+#endif
         cd->parent =3D d;
     }
=20
diff --git a/xen/arch/x86/vm_event.c b/xen/arch/x86/vm_event.c
index fc349270b9c5..e9ac1d497594 100644
--- a/xen/arch/x86/vm_event.c
+++ b/xen/arch/x86/vm_event.c
@@ -253,7 +253,8 @@ void vm_event_fill_regs(vm_event_request_t *req)
     req->data.regs.x86.shadow_gs =3D ctxt.shadow_gs;
     req->data.regs.x86.dr6 =3D ctxt.dr6;
=20
-    if ( hvm_vmtrace_output_position(curr, &req->data.regs.x86.vmtrace_pos=
) !=3D 1 )
+    if ( IS_ENABLED(CONFIG_VMTRACE) &&
+         hvm_vmtrace_output_position(curr, &req->data.regs.x86.vmtrace_pos=
) !=3D 1 )
         req->data.regs.x86.vmtrace_pos =3D ~0;
 #endif
 }
@@ -303,12 +304,12 @@ void vm_event_emulate_check(struct vcpu *v, vm_event_=
response_t *rsp)
 #endif
 }
=20
+#ifdef CONFIG_VMTRACE
 void vm_event_reset_vmtrace(struct vcpu *v)
 {
-#ifdef CONFIG_HVM
     hvm_vmtrace_reset(v);
-#endif
 }
+#endif
=20
 /*
  * Local variables:
diff --git a/xen/common/domain.c b/xen/common/domain.c
index e13e01c1d272..ce4f55339fb4 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -136,7 +136,9 @@ struct vcpu *idle_vcpu[NR_CPUS] __read_mostly;
=20
 vcpu_info_t dummy_vcpu_info;
=20
+#ifdef CONFIG_VMTRACE
 bool __read_mostly vmtrace_available;
+#endif
=20
 bool __read_mostly vpmu_is_available;
=20
@@ -318,6 +320,7 @@ static void vcpu_info_reset(struct vcpu *v)
=20
 static void vmtrace_free_buffer(struct vcpu *v)
 {
+#ifdef CONFIG_VMTRACE
     const struct domain *d =3D v->domain;
     struct page_info *pg =3D v->vmtrace.pg;
     unsigned int i;
@@ -332,10 +335,12 @@ static void vmtrace_free_buffer(struct vcpu *v)
         put_page_alloc_ref(&pg[i]);
         put_page_and_type(&pg[i]);
     }
+#endif
 }
=20
 static int vmtrace_alloc_buffer(struct vcpu *v)
 {
+#ifdef CONFIG_VMTRACE
     struct domain *d =3D v->domain;
     struct page_info *pg;
     unsigned int i;
@@ -377,6 +382,9 @@ static int vmtrace_alloc_buffer(struct vcpu *v)
     }
=20
     return -ENODATA;
+#else
+    return 0;
+#endif
 }
=20
 /*
@@ -825,7 +833,9 @@ struct domain *domain_create(domid_t domid,
         ASSERT(!config->altp2m.nr);
 #endif
=20
+#ifdef CONFIG_VMTRACE
         d->vmtrace_size =3D config->vmtrace_size;
+#endif
     }
=20
     /* Sort out our idea of is_control_domain(). */
diff --git a/xen/common/memory.c b/xen/common/memory.c
index 3688e6dd5032..66dc7f7a0a41 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -1155,8 +1155,10 @@ static unsigned int resource_max_frames(const struct=
 domain *d,
     case XENMEM_resource_ioreq_server:
         return ioreq_server_max_frames(d);
=20
+#ifdef CONFIG_VMTRACE
     case XENMEM_resource_vmtrace_buf:
         return d->vmtrace_size >> PAGE_SHIFT;
+#endif
=20
     default:
         return 0;
@@ -1198,6 +1200,7 @@ static int acquire_ioreq_server(struct domain *d,
 #endif
 }
=20
+#ifdef CONFIG_VMTRACE
 static int acquire_vmtrace_buf(
     struct domain *d, unsigned int id, unsigned int frame,
     unsigned int nr_frames, xen_pfn_t mfn_list[])
@@ -1220,6 +1223,7 @@ static int acquire_vmtrace_buf(
=20
     return nr_frames;
 }
+#endif
=20
 /*
  * Returns -errno on error, or positive in the range [1, nr_frames] on
@@ -1238,8 +1242,10 @@ static int _acquire_resource(
     case XENMEM_resource_ioreq_server:
         return acquire_ioreq_server(d, id, frame, nr_frames, mfn_list);
=20
+#ifdef CONFIG_VMTRACE
     case XENMEM_resource_vmtrace_buf:
         return acquire_vmtrace_buf(d, id, frame, nr_frames, mfn_list);
+#endif
=20
     default:
         ASSERT_UNREACHABLE();
diff --git a/xen/common/vm_event.c b/xen/common/vm_event.c
index b2787c010890..cf0258223f50 100644
--- a/xen/common/vm_event.c
+++ b/xen/common/vm_event.c
@@ -441,7 +441,8 @@ static int vm_event_resume(struct domain *d, struct vm_=
event_domain *ved)
             if ( rsp.flags & VM_EVENT_FLAG_GET_NEXT_INTERRUPT )
                 vm_event_monitor_next_interrupt(v);
=20
-            if ( rsp.flags & VM_EVENT_FLAG_RESET_VMTRACE )
+            if ( IS_ENABLED(CONFIG_VMTRACE) &&
+                 (rsp.flags & VM_EVENT_FLAG_RESET_VMTRACE) )
                 vm_event_reset_vmtrace(v);
=20
             if ( rsp.flags & VM_EVENT_FLAG_VCPU_PAUSED )
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 8aab05ae93c8..aa86a9f46022 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -191,7 +191,11 @@ void vnuma_destroy(struct vnuma_info *vnuma);
 static inline void vnuma_destroy(struct vnuma_info *vnuma) { ASSERT(!vnuma=
); }
 #endif
=20
+#ifdef CONFIG_VMTRACE
 extern bool vmtrace_available;
+#else
+#define vmtrace_available false
+#endif
=20
 extern bool vpmu_is_available;
=20
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 02bdc256ce37..dcd8647e0d36 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -300,9 +300,11 @@ struct vcpu
     /* vPCI per-vCPU area, used to store data for long running operations.=
 */
     struct vpci_vcpu vpci;
=20
+#ifdef CONFIG_VMTRACE
     struct {
         struct page_info *pg; /* One contiguous allocation of d->vmtrace_s=
ize */
     } vmtrace;
+#endif
=20
     struct arch_vcpu arch;
=20
@@ -623,7 +625,9 @@ struct domain
     unsigned int nr_altp2m;    /* Number of altp2m tables. */
 #endif
=20
+#ifdef CONFIG_VMTRACE
     unsigned int vmtrace_size; /* Buffer size in bytes, or 0 to disable. *=
/
+#endif
=20
 #ifdef CONFIG_ARGO
     /* Argo interdomain communication support */
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 14:45:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 14:45:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162713.1490254 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJv2r-0004cG-9y; Fri, 14 Nov 2025 14:45:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162713.1490254; Fri, 14 Nov 2025 14:45:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJv2r-0004c9-6Y; Fri, 14 Nov 2025 14:45:01 +0000
Received: by outflank-mailman (input) for mailman id 1162713;
 Fri, 14 Nov 2025 14:45: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=lTzj=5W=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJv2q-0004c3-7I
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 14:45:00 +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 7d910ec1-c168-11f0-980a-7dc792cee155;
 Fri, 14 Nov 2025 15:44:57 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by GVXPR03MB10551.eurprd03.prod.outlook.com (2603:10a6:150:158::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.18; Fri, 14 Nov
 2025 14:44:55 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Fri, 14 Nov 2025
 14:44: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: 7d910ec1-c168-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NvCyHHgj7tSSdX4UUpUfP6E3XBIRNizaxBbSFCjXFvTOIGDkuU8j9fbHZqkKPSqXCJKudLPvNDGnZE7fsKAQ3/s+UhkMo2/xl0mOQmteZx4/dftZfJ6pc7QQHGA/WeOaUt5nOy8CA/I+L0lI3hYjtpOPFVswuTcaFyVlxD7Bkbol/S3ReZ9wvQdU+hRx4fkZ9t/v+4psK6CS4YL3w3pJBALf3CwYXEmjEMwgapU4Z8oojiBUi3c6WaWfJU4UScFaN+OtClTqgb0vuwXTDjoKdaHlHXcFM2lqDShHY9AzcmYsCzCOV5G0c/M7UbJm6zNQtZfkFo3XrtNFEZHHkwAsOw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4qEbw20aClhzRPqLWxFwoec8KrBEQot5TwF6HWMGbHQ=;
 b=hbhScX0EJDiXQvacTHwJv/0C6nWUc8UwgHEmpIAbfMEjSzEY0EBt6Z8iNqtNLo3wJpbu/8RVeaGG7PaNGhQmQodn+A0UdoaSEIu2SIrd1pc+AIjZAzegRI7ShfZ2rs91LN5S2EG01QSCp+f3aMLmrsfTdRSw3u5OcvN1GsN9VebltVc4vQqyf7SgKyzDtKA5J8SanmE5NulckNyyEdhWnUwsGR3Sse5ZD1T3j9CSnkh+3UJQdXJ+NfAvpZVlBThjvxWFHSBVTFEdj7kEZ0aCXnVTSkKjU8rwRheodPu/PIqZHzgCsBzZ7ZDs+stMkEq/RZZCrtR/somW994ylKLWbw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4qEbw20aClhzRPqLWxFwoec8KrBEQot5TwF6HWMGbHQ=;
 b=VY1a3OgjiaZ8DTC2NRJ6O4UYyhp/HR3dnT5vw3HCnO6Qxmuk4IQYGFG8lKRDjAE8sTPA/tQiyHm/4YJsdBxE/f/dbvHtDIY9PpKYO1t2Oh0cg90LFk9b/hqtUYQ9FMqbjdiIRB1QBmyvGsDsaroTv2jiyA/cIqx83LLtQzR+dcPqCmfW+0dlINPXlOl4zGnDU7Pbt1efX3grVlmxJ+s/G1O8DdvzAtA7YT5yX/4UlS52YxHOqVQjwk9J1RdDZlUcArQ8hxcVuxSnQ5w2bClrON9UmJwbnadXYFc23IfEl8DQE5z4qO+8PpoEdktCarAbJESHT5aH6AMEFnISxVKNkw==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [XEN][PATCH] x86/paging: replace !paging_mode_hap() with
 paging_mode_shadow()
Thread-Topic: [XEN][PATCH] x86/paging: replace !paging_mode_hap() with
 paging_mode_shadow()
Thread-Index: AQHcVXU91U+hErbh4Eaw0rWhlUZOxw==
Date: Fri, 14 Nov 2025 14:44:55 +0000
Message-ID: <20251114144454.287224-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB8907:EE_|GVXPR03MB10551:EE_
x-ms-office365-filtering-correlation-id: 9d5a0867-6aac-4b4f-e83d-08de238c6055
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?z42VtBu+qpYpxdG3kEFulG7oD/wNMX9as7ZqCfO19pzyeBs20U2KWkDRL/?=
 =?iso-8859-1?Q?IrHxgTjsT4GCzBwA8mgfYdT1WYxNA6UoUrMI5+c1G6Y24Aw9+HBCdLJ2Nl?=
 =?iso-8859-1?Q?aRoTZsPhlG7KifrPL0OBIgflAcprq1HBNv7VGXtnS2o0pcoGffBveu/FWL?=
 =?iso-8859-1?Q?NwwWX62cYGFcPGIyr8znBA7SH3PYsqEiVPH0eaDTKQwl4CsQFpSvKffPDw?=
 =?iso-8859-1?Q?KeJgNa4+QCzbQtm/HKTz3qlaTbtjL2PZ2cVd2MEzn244NGWNeOJX2Q0SKK?=
 =?iso-8859-1?Q?7foFCsN3bjvVG5PQyqqSpGuJ+ChfUihfzLZ7LdJupEQCYlIRUsrVq77M8d?=
 =?iso-8859-1?Q?bUgPr3obKZBRo8EMppB4+tQ6cn+uAS2jM4TIAk9i+6RGIQqi/NXwy27HHT?=
 =?iso-8859-1?Q?OuB9GJ+/hQNefARRYobanNlgqD1OHhpLK6jbdZdzt7U1nsvNzntuSwAdqB?=
 =?iso-8859-1?Q?dF4ym3Wj7LnzKOx4pekNmKRRjKkJ+kvRWjbtbZM7k04LpQkMpnDZnBVlPw?=
 =?iso-8859-1?Q?uF83IEq6Mrl4+EIoW6EIXhYm9MDq8LvhpL4pdxrmpx3IwQ3KspAjQDyvV7?=
 =?iso-8859-1?Q?ironarGCVAbd3sSs/i6wtfl/9+UiDNzt5xYWS4HE1Bkm4uVYhlGRFIlD9M?=
 =?iso-8859-1?Q?ta8XVnUFLjpArDLFLXAuKeUAYiySSSy8AHwCSFtxO0R5VKsrTN/FApyEhV?=
 =?iso-8859-1?Q?6GheGPsSxJuYINrtSMMr54QCtc5TC6iv++Q1aFanF/2mlezlF+cky66qya?=
 =?iso-8859-1?Q?vVUqvqonCncdPXg1oBO9a32mKqzsSvAwfOdHkUsFsqBnqQgB5JI3vO7CTQ?=
 =?iso-8859-1?Q?QTiGuEWpWPeaNnyrpop4jZkwDqA0d9bIPK8zePYI8a2jG7H3qSWiFJVz5h?=
 =?iso-8859-1?Q?9fGpamG8RVLENF/6KQY5nhf85menHE2q4cW6BHELx8tO0DdrZAVWIGJ/8J?=
 =?iso-8859-1?Q?I3vwPViMV6WWElKTviqhoHmNb2arDPaEepfiUOZMoDm6N0oc8H0D1P6LDa?=
 =?iso-8859-1?Q?Um8z/SZtjFm773Y/28nIp/pGNJmQkrWuTn7q1ter8XZcWlE37JeyPDCcHn?=
 =?iso-8859-1?Q?/qtWDY1R1+GYdt984moR1tb1vRtSBFlsDxahTYF7d+ZNCN4nFMr/XDFQB6?=
 =?iso-8859-1?Q?+BgD6323Qzf3TNwV4EX/S+oAB+HyfodzYoz9wTzovAKkYUrM4TXurEa6co?=
 =?iso-8859-1?Q?eUa0O9sPmxGndmvs3N4plP2VFLVWDMOr68IGB2FDRz2TDXmInjXWojPokO?=
 =?iso-8859-1?Q?RxWqjAPfn1SfykAhpjcIastTalSNHaWuHGtsy5DPJwHah0IDvz2NtCpJvq?=
 =?iso-8859-1?Q?N/BmHK0RUeY4+YsH4kIEPJLsBgYlD7HYSfYgWD0K1cAGhNdimsVmsrv2vH?=
 =?iso-8859-1?Q?fdCDmrZjgCmFUKlEDhaZFGD+wTM4yLp1ORdPhj/jbVDmd6etvU5r7/twUE?=
 =?iso-8859-1?Q?wKGrZ/0xgfjpNhNuvlhKl+LkfEUIvdP6Be1zQPHLqRJsd2u4g4dAQKmSDR?=
 =?iso-8859-1?Q?Kr+4x/zrN224aF1qL5oB612mOYhZhq+TSf4bniOBIOph5xdggHtyB42lDw?=
 =?iso-8859-1?Q?yvrLYzG3DLUv1A9M4b7BDVvNrksK?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?q+lPmFkgsJWC2hX5P2LwErx5+rDoHBZiRaQIBq6Rttkxau+RmTSzxQCzQA?=
 =?iso-8859-1?Q?kWPq8FSIcIg9+rxESlZjGUAPtKpGMrHqWHKNLO4qF5o2AUsV/wqZ5hbA+x?=
 =?iso-8859-1?Q?q1ykN7wB2rDHBenpmjjDjxKML5Md4ZIANBiWj7jcDgXFSHjClDByyIhUIY?=
 =?iso-8859-1?Q?LxxflZCpot1g2rS5cWHC/uNCaCZ03BOsDa3kBWhy3gDF3jFDJPal1/J+zT?=
 =?iso-8859-1?Q?FGE05bxG9NSoRHJ6FSubpfyWl+1FunOeGUpWA/41A/AT4T/Zh+fm9d1B6p?=
 =?iso-8859-1?Q?kXf8EH4BKHzqcuEhTbUOL4NVVBCLTGXu5R+HxyhCDpzUfW1NfcsYGw0Tb6?=
 =?iso-8859-1?Q?cOSg+1rW5H7v/3iletbEFTMJs+mBFMuEb3HnOX2Rcqz+HhcSJnJjxhOMcA?=
 =?iso-8859-1?Q?6SAy9pwSTHNu5IUnoJuNAGHLI1BJqg5vhSVUw4KJsIsEHxN/7DoTWCRxHw?=
 =?iso-8859-1?Q?iWk2ck5ooaran+WtrE3sZYoGOyymBG2Vt6pFn/Jv6hB+7nroRYhOA/FCme?=
 =?iso-8859-1?Q?xdzN4B6LaErfBZsBgvScXuwCVSe5zqQEHsSffe/yqtcVEn8+BS/YOEiK/A?=
 =?iso-8859-1?Q?Mc1N8BGStVq0W/aKLMRkGzl+4E8aTSlg3hz6xIRuELBCzDxKLkESOEAzV1?=
 =?iso-8859-1?Q?bfTFj/Xnnog0NZrPn+AfSY6fHPqh02Q1/kA6W3+Rzne0v2P3SXKNij5237?=
 =?iso-8859-1?Q?a1Q3tvlr8Z46f7OqBkIK9hfrjDQ4Wm9lhAa4S3xyr3aWGkGuKEvC/WVnhF?=
 =?iso-8859-1?Q?UxEI0HwiiJLBzApS9vqV1hn1tHP4Yt1RfBXL9n1rRvsT092PtqTuJOnYPe?=
 =?iso-8859-1?Q?JAlqPN0XqpiC+kriGlFbjzwF8MoiBFThqkMNnZmsaQXMp+J215KF+S0h5p?=
 =?iso-8859-1?Q?uzupPt2xRcwYXevre6kM4ytmAPNDpkAzFHQgkj13c9eo5SmeJvx5TdRMFw?=
 =?iso-8859-1?Q?xiy3gzuGzZA9100R7ii6A2Dc0NfwGe3PEyZDByLdt0A4lWBVtzx5aUGX8q?=
 =?iso-8859-1?Q?fzwW+fHvDRbXbvInKN6dgXL9RE6qUHgKGMjMPM2nTZI5f942xp5lX9RRRO?=
 =?iso-8859-1?Q?iKf4qa4+5EMGbzLHcBDBvuXYSz0NJsC+Q6I7YKM/dhFmozBbVohAiCOiG/?=
 =?iso-8859-1?Q?mpqZkVgUWHpUyz1yh/XhrmOfM4NwPqPQJcJw71rwqzOs8w81efTlgwgY5G?=
 =?iso-8859-1?Q?b5rbOo/YGVIkHQohdMarAVPGXwPVCTn2mnDjG/wOZXmLyjQqjQqVkUnd6N?=
 =?iso-8859-1?Q?J7Tw19w69QvkadAKli4YO3atiDPMqwKsSc0EMq4yb5Fi4FLcthf3JkTuTh?=
 =?iso-8859-1?Q?Y8DjWNobTBbBe4SIyjAc2Hwg7H9SXw1RyBecD+GT6I2drm7/Gr9QM9PCOI?=
 =?iso-8859-1?Q?c/VhJOHxwikyw3o3foiCxgO2Uhbk1ENRSEnR6Bg/e/WeFttq1BiXtijMG3?=
 =?iso-8859-1?Q?xyjeA98L/eLecFlTKUsCzbaqOiahXWMZIqd4yIxoRyPJWKdTufGen8DD4e?=
 =?iso-8859-1?Q?4Ouk3zs0cLSPlSxo8N9gSveuI6zvAlgfvE9s0kUoCg56mcawggC0jX1C/o?=
 =?iso-8859-1?Q?Aj4/4pEDo0eRRY+lAPWByI73jQtEuXediuVjkY6WwX467oZvKgSP5fg8WC?=
 =?iso-8859-1?Q?dLfEDsE/ZAf1KvsFFXz1lTNe6fL/2gvYUPbW4TM4sKrT1xJmVpyixCSQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9d5a0867-6aac-4b4f-e83d-08de238c6055
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Nov 2025 14:44:55.1169
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: zMiTzsFTqqMUkvxHlpMpgFanU3ac+L29ydd3jRKZrj/g9kgOfTpahpDpZEjWwnhzYuMQM43u1yNepu9yGNE5Sq+UlcBVlBL0P/Q28VU7kao=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB10551

From: Grygorii Strashko <grygorii_strashko@epam.com>

Now Xen supports only two paging modes: HAP and SHADOW, so
!paging_mode_hap() is actually means paging_mode_shadow().

For an abstract, future case of there being a 3rd paging mode it is also
better to explicitly mention checked paging mode (SHADOW) instead of using
negative check of another paging mode (HAP).

Hence, s/!paging_mode_hap()/paging_mode_shadow() which also allows DCE drop
unused code when SHADOW_PAGING=3Dn.
The !paging_mode_hap() in hap.c not changed as HAP is checking for itself
to be enabled.

Inspired by [1].

[1] https://patchwork.kernel.org/project/xen-devel/patch/20251111200958.357=
6341-3-grygorii_strashko@epam.com/
Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
 xen/arch/x86/cpu/mcheck/vmce.c   |  2 +-
 xen/arch/x86/hvm/domain.c        |  2 +-
 xen/arch/x86/hvm/hvm.c           | 10 +++++-----
 xen/arch/x86/hvm/svm/nestedsvm.c |  2 +-
 xen/arch/x86/hvm/svm/svm.c       |  8 ++++----
 xen/arch/x86/hvm/vmx/vmcs.c      |  2 +-
 xen/arch/x86/hvm/vmx/vmx.c       |  4 ++--
 xen/arch/x86/mm/p2m-ept.c        |  2 +-
 8 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/xen/arch/x86/cpu/mcheck/vmce.c b/xen/arch/x86/cpu/mcheck/vmce.=
c
index 5abdf4cb5fd5..1a7e92506ac8 100644
--- a/xen/arch/x86/cpu/mcheck/vmce.c
+++ b/xen/arch/x86/cpu/mcheck/vmce.c
@@ -525,7 +525,7 @@ int unmmap_broken_page(struct domain *d, mfn_t mfn, uns=
igned long gfn)
     if ( !mfn_valid(mfn) )
         return -EINVAL;
=20
-    if ( !is_hvm_domain(d) || !paging_mode_hap(d) )
+    if ( !is_hvm_domain(d) || paging_mode_shadow(d) )
         return -EOPNOTSUPP;
=20
     rc =3D -1;
diff --git a/xen/arch/x86/hvm/domain.c b/xen/arch/x86/hvm/domain.c
index 048f29ae4911..37092f31f3f7 100644
--- a/xen/arch/x86/hvm/domain.c
+++ b/xen/arch/x86/hvm/domain.c
@@ -287,7 +287,7 @@ int arch_set_info_hvm_guest(struct vcpu *v, const struc=
t vcpu_hvm_context *ctx)
     hvm_update_guest_cr(v, 4);
     hvm_update_guest_efer(v);
=20
-    if ( hvm_paging_enabled(v) && !paging_mode_hap(v->domain) )
+    if ( hvm_paging_enabled(v) && paging_mode_shadow(v->domain) )
     {
         /* Shadow-mode CR3 change. Check PDBR and update refcounts. */
         struct page_info *page =3D get_page_from_gfn(v->domain,
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 7299cfa90ad5..cb4924be9aff 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -2317,7 +2317,7 @@ int hvm_set_cr0(unsigned long value, bool may_defer)
             hvm_update_guest_efer(v);
         }
=20
-        if ( !paging_mode_hap(d) )
+        if ( paging_mode_shadow(d) )
         {
             /* The guest CR3 must be pointing to the guest physical. */
             gfn =3D v->arch.hvm.guest_cr[3] >> PAGE_SHIFT;
@@ -2368,7 +2368,7 @@ int hvm_set_cr0(unsigned long value, bool may_defer)
             hvm_update_guest_efer(v);
         }
=20
-        if ( !paging_mode_hap(d) )
+        if ( paging_mode_shadow(d) )
         {
             put_page(pagetable_get_page(v->arch.guest_table));
             v->arch.guest_table =3D pagetable_null();
@@ -2422,7 +2422,7 @@ int hvm_set_cr3(unsigned long value, bool noflush, bo=
ol may_defer)
         }
     }
=20
-    if ( hvm_paging_enabled(curr) && !paging_mode_hap(currd) &&
+    if ( hvm_paging_enabled(curr) && paging_mode_shadow(currd) &&
          ((value ^ curr->arch.hvm.guest_cr[3]) >> PAGE_SHIFT) )
     {
         /* Shadow-mode CR3 change. Check PDBR and update refcounts. */
@@ -3966,7 +3966,7 @@ void hvm_vcpu_reset_state(struct vcpu *v, uint16_t cs=
, uint16_t ip)
     if ( v->is_initialised )
         goto out;
=20
-    if ( !paging_mode_hap(d) )
+    if ( paging_mode_shadow(d) )
     {
         if ( v->arch.hvm.guest_cr[0] & X86_CR0_PG )
             put_page(pagetable_get_page(v->arch.guest_table));
@@ -4241,7 +4241,7 @@ static int hvm_set_param(struct domain *d, uint32_t i=
ndex, uint64_t value)
          * Only actually required for VT-x lacking unrestricted_guest
          * capabilities.  Short circuit the pause if possible.
          */
-        if ( !paging_mode_hap(d) || !using_vmx() )
+        if ( paging_mode_shadow(d) || !using_vmx() )
         {
             d->arch.hvm.params[index] =3D value;
             break;
diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nested=
svm.c
index dc2b6a42534a..1813692ffb03 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -1341,7 +1341,7 @@ nestedsvm_check_intercepts(struct vcpu *v, struct cpu=
_user_regs *regs,
             /* l2 guest intercepts #PF unnecessarily */
             return NESTEDHVM_VMEXIT_INJECT;
         }
-        if ( !paging_mode_hap(v->domain) )
+        if ( paging_mode_shadow(v->domain) )
             /* host shadow paging + guest shadow paging */
             return NESTEDHVM_VMEXIT_HOST;
=20
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index b54f9d9af50e..73d6c7ed03f2 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -171,7 +171,7 @@ static void cf_check svm_update_guest_cr(
         }
=20
         value =3D v->arch.hvm.guest_cr[0] | hw_cr0_mask;
-        if ( !paging_mode_hap(v->domain) )
+        if ( paging_mode_shadow(v->domain) )
             value |=3D X86_CR0_PG | X86_CR0_WP;
         vmcb_set_cr0(vmcb, value);
         break;
@@ -440,7 +440,7 @@ static int svm_vmcb_restore(struct vcpu *v, struct hvm_=
hw_cpu *c)
         }
     }
=20
-    if ( !paging_mode_hap(v->domain) )
+    if ( paging_mode_shadow(v->domain) )
     {
         if ( c->cr0 & X86_CR0_PG )
         {
@@ -762,7 +762,7 @@ static int cf_check svm_set_guest_pat(struct vcpu *v, u=
64 gpat)
 {
     struct vmcb_struct *vmcb =3D v->arch.hvm.svm.vmcb;
=20
-    if ( !paging_mode_hap(v->domain) )
+    if ( paging_mode_shadow(v->domain) )
         return 0;
=20
     vmcb_set_g_pat(vmcb, gpat);
@@ -773,7 +773,7 @@ static int cf_check svm_get_guest_pat(struct vcpu *v, u=
64 *gpat)
 {
     struct vmcb_struct *vmcb =3D v->arch.hvm.svm.vmcb;
=20
-    if ( !paging_mode_hap(v->domain) )
+    if ( paging_mode_shadow(v->domain) )
         return 0;
=20
     *gpat =3D vmcb_get_g_pat(vmcb);
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 2fffc2006ab0..0b511939ac8a 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -135,7 +135,7 @@ static int cf_check parse_ept_param_runtime(const char =
*s)
     for_each_domain ( d )
     {
         /* PV, or HVM Shadow domain?  Not applicable. */
-        if ( !paging_mode_hap(d) )
+        if ( paging_mode_shadow(d) )
             continue;
=20
         /* Hardware domain? Not applicable. */
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 3f0e113b0b67..c98ec110d144 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -1432,7 +1432,7 @@ static void cf_check vmx_set_segment_register(
=20
 static int cf_check vmx_set_guest_pat(struct vcpu *v, u64 gpat)
 {
-    if ( !paging_mode_hap(v->domain) ||
+    if ( paging_mode_shadow(v->domain) ||
          unlikely(v->arch.hvm.vmx.cache_mode =3D=3D CACHE_MODE_NO_FILL) )
         return 0;
=20
@@ -1444,7 +1444,7 @@ static int cf_check vmx_set_guest_pat(struct vcpu *v,=
 u64 gpat)
=20
 static int cf_check vmx_get_guest_pat(struct vcpu *v, u64 *gpat)
 {
-    if ( !paging_mode_hap(v->domain) ||
+    if ( paging_mode_shadow(v->domain) ||
          unlikely(v->arch.hvm.vmx.cache_mode =3D=3D CACHE_MODE_NO_FILL) )
         return 0;
=20
diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c
index b854a08b4c4f..ce4ef632ae0a 100644
--- a/xen/arch/x86/mm/p2m-ept.c
+++ b/xen/arch/x86/mm/p2m-ept.c
@@ -1270,7 +1270,7 @@ void ept_sync_domain(struct p2m_domain *p2m)
     struct domain *d =3D p2m->domain;
=20
     /* Only if using EPT and this domain has some VCPUs to dirty. */
-    if ( !paging_mode_hap(d) || !d->vcpu || !d->vcpu[0] )
+    if ( paging_mode_shadow(d) || !d->vcpu || !d->vcpu[0] )
         return;
=20
     ept_sync_domain_prepare(p2m);
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 15:25:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 15:25:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162730.1490263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJvfS-00027Q-4M; Fri, 14 Nov 2025 15:24:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162730.1490263; Fri, 14 Nov 2025 15:24:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJvfS-00027J-1S; Fri, 14 Nov 2025 15:24:54 +0000
Received: by outflank-mailman (input) for mailman id 1162730;
 Fri, 14 Nov 2025 15:24: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=z9GA=5W=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vJvfQ-00027D-Tv
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 15:24:52 +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 0fbae941-c16e-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 16:24:50 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-47117f92e32so18108935e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 14 Nov 2025 07:24:50 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4779528bc65sm12875045e9.15.2025.11.14.07.24.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 14 Nov 2025 07: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: 0fbae941-c16e-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1763133889; x=1763738689; 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=GoihnkQQg7m2cTYgG2dfKNFZpyLnFip0S/RUqN+DEps=;
        b=F8zWacwVvpK3CXKXQJlTR1IZLGnd3uklkyCFGZ+5wXzDVHHbNKrbsvErGsH681bMiO
         kOfCu/4JM4JyAX9IfIS8/Ev6itgbWdRv8D2DfQj1OxPTfD20Sxq0PuQOv6eZGXXyH78C
         jG+MvGZQ8dC+73D+igpoNaRRANNSOUvGSCA5M=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763133889; x=1763738689;
        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=GoihnkQQg7m2cTYgG2dfKNFZpyLnFip0S/RUqN+DEps=;
        b=cPPZ0dPMI0/OhB578ZqEJTM/xxVJ/jXGKB+qmf199j+ynDGVzGvzOBfwRacRA4ENF3
         sBC9dqlPemAm5ZQlcoa+pGPQaS5gFKzSAC0pDfi4qEnisGYo2I3SLv3aPbo4YGroToUM
         0vaqZ7694QhPFzWOhZ+HPAEPDeac7V1DznT5AUpBm/UGniLbsdpZdrh5+F4RnEDabkA4
         j3kkGgdztQY952awN/SFk2G1aLXkEkGJAwSErSPK4Tseet2eHp9cuBxGplWjRo8ya0sO
         S11608Oh9TCqdzAZX6D4ctn7ZKuVugopSLoClQOK736Fn/w/EG7wT8HdvfBlenGEoLIt
         QEgA==
X-Gm-Message-State: AOJu0YywLle69q37QbW5TYfx0RJcVmtOyb3r/s5lqL4Bflb9dWlGGqlF
	+VYM5jCYczTL5kxN+UchgToFxGBEJVO6uQo+pa2afn0k2HSX4q8P7YT5qQQVtJBXttPaYNDoVQD
	SXKv3tho=
X-Gm-Gg: ASbGncsUOOAeMu4RgtsMj/IIkWlz5ZswTHooG8Rwi1R+8XOYrVfI8fF/+e+5nfSx9Wv
	+dySc7KcSeh/lthfF7xbjI3Rx9jVPo0qpJ0pi5DfjSteucHmpUPCvdVk0n3gcbICxUaBIWMTNIU
	f06nOev2/Tbl36zh+Z3GVmCAn7/bkXPcHzwWpVWAFg5TXyHPWZg8uGoUNwvqoglYNf9uDxMTn9s
	OCMgaX06xq1sn5lhKArfw/uIu07KHyzfazBC+2kz/2Z+oUEHyRNHz1K0mRV3ZL814k+pWUid5vL
	2IZBa5cXXxM1mUYYbr6ePQMQ/y/lEGD0zse/zvB98zQvdaPHPcPuJ8JGWFV84oVk1YSNURtMF8G
	Sh9MyHr2GfsMG6t/SfdZnJCMBXJMWs4s+yNq0drO9sGdETvnoL9M1reeWs73ToL1XxJ2FyulKCp
	S4VsAet1QE6faVP2kGlqIgzpmySJwrAYYlcna43nC8De7gEmwNKsa8rcHdp7opiJqa0Z/4GWFx
X-Google-Smtp-Source: AGHT+IEw9Ty9IG/AH5XB+9Vx2DcGUaupVx0MzT5Wpp78jLleU3KLy5Q6qluD0X+trz+1+J7geL8PiA==
X-Received: by 2002:a05:600c:484a:b0:477:94e6:1c67 with SMTP id 5b1f17b1804b1-47794e61ce5mr5716935e9.35.1763133889544;
        Fri, 14 Nov 2025 07:24: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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.21] x86/ucode: Add extra rows to the entrysign model table (again)
Date: Fri, 14 Nov 2025 15:24:47 +0000
Message-Id: <20251114152447.272823-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

Link: https://git.kernel.org/tip/dd14022a7ce96963aa923e35cf4bcc8c32f95840
Fixes: ff8228ab4658 ("x86/ucode: Relax digest check when Entrysign is fixed in firmware")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Found because AMD have released ucode to fix RDSEED on this CPU, and I
cross-referenced the tables.

Again, for 4.21 even at this juncture.  It wants backporting everywhere in due
course.
---
 xen/arch/x86/cpu/microcode/amd.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/x86/cpu/microcode/amd.c b/xen/arch/x86/cpu/microcode/amd.c
index 550b8c1e57ec..4a7573c885e5 100644
--- a/xen/arch/x86/cpu/microcode/amd.c
+++ b/xen/arch/x86/cpu/microcode/amd.c
@@ -659,6 +659,7 @@ void __init amd_check_entrysign(void)
     case 0x0b1010: fixed_rev = 0x47; break;
     case 0x0b2040: fixed_rev = 0x32; break;
     case 0x0b4040: fixed_rev = 0x32; break;
+    case 0x0b4041: fixed_rev = 0x02; break;
     case 0x0b6000: fixed_rev = 0x32; break;
     case 0x0b6080: fixed_rev = 0x32; break;
     case 0x0b7000: fixed_rev = 0x32; break;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 14 15:38:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 15:38:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162744.1490274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJvsN-00044I-8B; Fri, 14 Nov 2025 15:38:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162744.1490274; Fri, 14 Nov 2025 15:38:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJvsN-00044B-4a; Fri, 14 Nov 2025 15:38:15 +0000
Received: by outflank-mailman (input) for mailman id 1162744;
 Fri, 14 Nov 2025 15:38: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=RPjS=5W=bounce.vates.tech=bounce-md_30504962.69174ce1.v1-d3c919766c5941e086b6a33d74e7cfd5@srs-se1.protection.inumbo.net>)
 id 1vJvsL-000445-CK
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 15:38:13 +0000
Received: from mail180-15.suw31.mandrillapp.com
 (mail180-15.suw31.mandrillapp.com [198.2.180.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ec661e6a-c16f-11f0-980a-7dc792cee155;
 Fri, 14 Nov 2025 16:38:10 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-15.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4d7LrK2XZHzPm1jdQ
 for <xen-devel@lists.xenproject.org>; Fri, 14 Nov 2025 15:38:09 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d3c919766c5941e086b6a33d74e7cfd5; Fri, 14 Nov 2025 15:38: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: ec661e6a-c16f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763134689; x=1763404689;
	bh=20xomhk/VQ7jBvQ/ylw/sAduc+bLCjKwAcblqXn0QJ8=;
	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=TO/4RzY+hwCvXq5DW+uVHTMtaJV1uxPnkCWkg5fFglXDlWamRaEFOtMzwkcDMtPiX
	 iACpaEcXSl4Ltos4BjDUtwDjcEVHFTD3bureCg8BwnPhWqpYYvwsVlIwkaLhGQozbf
	 dfbR27pMzkoS84Wf3lJUQqTCPMAstN6tNlq/WvPwffgrM8TUdbiymGgg5NdqZSh6Cc
	 JTOo9UFakq+YIG7hKb6M+v0laCmDoIdndULST1m08bOtoFt3Y7QgNFVXyqWUY0EABo
	 k5cYTsdgL1+2gn1to9B/LOi/7m7KKaSBhCfB1NWwgzou35Q/G51s/+zNiwZ7M4iJgB
	 aMuQlPQ3oex8A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763134689; x=1763395189; i=teddy.astie@vates.tech;
	bh=20xomhk/VQ7jBvQ/ylw/sAduc+bLCjKwAcblqXn0QJ8=;
	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=Cooplw2/ZVe0GVpzqj/hg3fPodos6KFDVr+sFkpzbszIRomPkNTsHwoPuKEJUkHW+
	 KkIk1hmfAi1zRm3XgrOljtlcCzaj5iiBq7OGHOjBqI4tNNLIOdTWguhJGtO5HILtRV
	 dZYI6HUOJ1FPhi+X3f3a9CGwLm2S5c6U4OvAt6THR8zcRXMKriu7Y0AehK/ls6uKn6
	 /XvW7PUEtqKbWiwnYr9u+xjfCiv9B+8OEv0j6iVXO5+Ys9tI8/CNduPkFvH6b5SuJg
	 E27qEMmFNEFrfsXMoiGysrj6tXsuhwztebTTLlsGqQQ36DrgCdGDTdmj8U75LjUccr
	 j8BgGfn/eq/uQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20ioreq:=20Assert=20with=20out=20of=20bounds=20vCPU=20ID?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763134687808
Message-Id: <ecb9c659-72a1-4d46-a04f-68268e7c3cc3@vates.tech>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Julian Vetter" <julian.vetter@vates.tech>
References: <f4146ec2fa354ab6a64d96eca831fe0be97f281b.1763124998.git.teddy.astie@vates.tech> <c8070338-8522-41bf-9402-229e2369857c@citrix.com>
In-Reply-To: <c8070338-8522-41bf-9402-229e2369857c@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.d3c919766c5941e086b6a33d74e7cfd5?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251114:md
Date: Fri, 14 Nov 2025 15:38:09 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 14/11/2025 =C3=A0 14:24, Andrew Cooper a =C3=A9crit=C2=A0:
> On 14/11/2025 1:05 pm, Teddy Astie wrote:
>> A 4K page appears to be able to hold 128 ioreq entries, which luckly
>> matches the current vCPU limit. However, if we decide to increase the
>> domain vCPU limit, that doesn't hold anymore and this function would now
>> silently create a out of bounds pointer leading to confusing problems.
>>
>> All architectures have no more than 128 as vCPU limit on HVM guests,
>> and have pages that are at most 4 KB, so this case doesn't occurs in
>> with the current limits.
>>
>> Assert if the vCPU ID will lead to a out of bounds pointer.
>>
>> No functional change.
>>
>> Reported-by: Julian Vetter <julian.vetter@vates.tech>
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>> ---
>> Not sure if this is the best approach, perhaps preventing compilation if=
 the
>> vCPU limit is higher than what the ioreq page can hold is preferable ?
>>
>>   xen/common/ioreq.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
>> index f5fd30ce12..b2ef46ed7b 100644
>> --- a/xen/common/ioreq.c
>> +++ b/xen/common/ioreq.c
>> @@ -99,6 +99,7 @@ static ioreq_t *get_ioreq(struct ioreq_server *s, stru=
ct vcpu *v)
>>   
>>       ASSERT((v =3D=3D current) || !vcpu_runnable(v));
>>       ASSERT(p !=3D NULL);
>> +    ASSERT(v->vcpu_id < (PAGE_SIZE / sizeof(struct ioreq)));
>>   
>>       return &p->vcpu_ioreq[v->vcpu_id];
>>   }
> 
> The 128 vCPU problem was known and IOERQ servers intentionally had
> multi-page capabilities from the outset to address this problem.
> 
> See the calculation in ioreq_server_max_frames().
> 
> It hasn't been exercised in anger because there's still the APIC ID
> limit at 128 still, but IOREQ servers are expected to work correctly
> above this limit.  


Yes, although only the first ioreq page exists and can be used (even 
though ioreq_server_max_frames may report more). It looks like the logic 
is incomplete there.


> That said, this function is clearly buggy and in need
> of fixing.
> 
> To the assert specifically, that's really not appropriate.=C2=A0 If it we=
re
> to ever fire, we'd have an XSA.=C2=A0 Logic if this nature either needs t=
o be
> fail safe (if returning NULL is ok), or be a BUG() so it doesn't become
> unsafe in release builds.
> 

It looks like it is possible to somewhat gracefully handle this, by e.g 
crashing the offending domain instead of stepping in a assert. I'm 
trying this for v2.

> ~Andrew



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Fri Nov 14 15:40:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 15:40:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162753.1490284 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJvuC-0005WL-Hk; Fri, 14 Nov 2025 15:40:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162753.1490284; Fri, 14 Nov 2025 15: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 1vJvuC-0005WE-FC; Fri, 14 Nov 2025 15:40:08 +0000
Received: by outflank-mailman (input) for mailman id 1162753;
 Fri, 14 Nov 2025 15:40:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0Jk/=5W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vJvuB-0005Rw-6x
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 15:40:07 +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 316e68d0-c170-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 16:40:06 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-640e9f5951aso5106198a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 14 Nov 2025 07:40:06 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b73785d0e04sm20392466b.47.2025.11.14.07.40.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 14 Nov 2025 07:40: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: 316e68d0-c170-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763134805; x=1763739605; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0HIxqQ9YMecJfwFs5hXLgd3zBBFFGo18VaUYlZB1Ozg=;
        b=DGfGf06Y4ZeV+uMCTLcBYAeUwKcE9tK3FDgyIguB8g1VIqnNsE3QexlQIOXWJ09THH
         P8WUjVikUEnlEItgBmILv6d5GeEyRMUS/027pB7vGHixL9xEuD7olzaKZjptKNSKy3zP
         yr1Im+rGykKK3I+9LrKSKcV/dmAftiT6T8PdF6YAoK4V8KwA7nn7t4nQlmYEsVSgUAjL
         VcYiEEi7Z4z1PSnzX5GkLDurKGmi63d6NEf48oWWAh8Zw2a83hqBxNtWiFcd3xIpsvsZ
         MLiP7PO6/4cnIzKA8uxqe2sJx2NVKJ/7kzNbSYuSi7/EkCyDaswyCHLHUzwx2+kfFHJo
         WabA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763134805; x=1763739605;
        h=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=0HIxqQ9YMecJfwFs5hXLgd3zBBFFGo18VaUYlZB1Ozg=;
        b=ijNrTQh0JBdMJeQiqFBkl1ouQpD/JoUnnx8XgVP+eoU1xC6UYti3sMw3HDbT+xOVBK
         5z4KwmJV4gne4t0vt2hkHx+5v9BOXq3wOrQiqn6xcwNkjNnxW/WesnnwHsIFegnpw+8F
         QVtCFs9VJwDfbRGcyVYb/J1HmQ/IpC2QSTPtUX059WFjaOVwjL+pwmx+3eUN8OdWBe14
         N+Tz00UrhQv9Cl7HVv1oQgSzTWJdCu0iTFb6wx9QouxoPP2Tg+mfJoDwywmpG0nrIuZw
         InOt1G4KrXerc5MNeDLT9NWpSqM7/Q6o1tfLKkU97/C9kMq8PXVBP+Wpp1qsTaPwdiqj
         0IEw==
X-Forwarded-Encrypted: i=1; AJvYcCXp7gjnkmITUuJwhxZvdJbR7fkPM+jpK0WxGVi7kNmj/XQQPrg9nRmmEPMl9FWEJnaDJEC1tu+1o44=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzz2aUmvKFeKlv4waUIGo+0kdYXHGTow6U3DUAFmihWcAMCjOZk
	JQFf5hMO0iOfoPY4u3LXP5m2lpnrvV8TwX2ZTm/WOO2hrcFIjipAU4Tt
X-Gm-Gg: ASbGncuJjlkwJ3nos9p6YfiB3fI2RVfn1xjf8j/TfKH0+iQWPJgUWKExqwY25Qo76cb
	wtRJwM/yCW6huCQrqIXsibIA61ihIYZVWTqZwhJJfHz5JRuRb+79YlwMA4HvM+sVknDwsdDnkw4
	ZrfIvalfBPfWccxHJg0fJnvtQuxeLIhMc5Cbw1PSAtMIgJQV7P+FLBxLT/KNCCdnoidpmtx+j+9
	0M21r18TUy53u+tMX1BIQqGo/E41fFn7qG4IOp7Ly/WONW3f6DuCHm55FagLRJCDlRdLD80zIz0
	t73CxBqH8xhLxaoAKqQGWM9Zlm7sfCCW3EM3wqd2OH78WJ0fFqStGtnRKiTM8GdzjIPyxqco2xV
	P50XpWeQ3v8kjCW9Ki4UMYC4zKc2QvXJWjjGOqgyZGdcpUAPD/eIg4hI1lxqULgHx2mfRfWv78O
	cSP7yEwIsNoET5LcjgCkEpXUFo9nwYEAur9HmDbqHFdoTvZllZv2hC/qIk9w/t
X-Google-Smtp-Source: AGHT+IEC9QIDaE484YxTeJdCpKtqr65AH2U5wD/UETPImvXP/fvrOrby1gdDgTgpWZWmSDPAkfMe2g==
X-Received: by 2002:a17:907:3ea9:b0:b70:b9b6:9a94 with SMTP id a640c23a62f3a-b7365af93e3mr447184166b.23.1763134805028;
        Fri, 14 Nov 2025 07:40:05 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------rIgHzd3MjhhWKv1T3mEQ2sVM"
Message-ID: <6729f3d9-618c-4dcd-93f8-d02ca7cea017@gmail.com>
Date: Fri, 14 Nov 2025 16:40:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8] xen: Strip xen.efi by default
To: Frediano Ziglio <frediano.ziglio@citrix.com>,
 xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Frediano Ziglio <freddy77@gmail.com>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <20251113154358.28704-1-frediano.ziglio@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20251113154358.28704-1-frediano.ziglio@citrix.com>

This is a multi-part message in MIME format.
--------------rIgHzd3MjhhWKv1T3mEQ2sVM
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 11/13/25 4:43 PM, Frediano Ziglio wrote:
> From: Frediano Ziglio<frediano.ziglio@cloud.com>
>
> For xen.gz file we strip all symbols and have an additional
> xen-syms.efi file version with all symbols.
> Make xen.efi more coherent stripping all symbols too.
> xen-syms.efi can be used for debugging.
>
> Signed-off-by: Frediano Ziglio<frediano.ziglio@cloud.com>

Release-Acked-By: Oleksii Kurochko<oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii

> ---
> Changes since v1:
> - avoid leaving target if some command fails.
>
> Changes since v2:
> - do not convert type but retain PE format;
> - use xen-syms.efi for new file name, more consistent with ELF.
>
> Changes since v3:
> - update documentation;
> - do not remove xen.efi.elf;
> - check endbr instruction before generating final target.
>
> Changes since v4:
> - simplify condition check;
> - avoid reuse of $@.tmp file.
>
> Changes since v5:
> - avoid creation of temporary file.
>
> Changes since v6:
> - install xen-syms.efi;
> - always strip xen.efi;
> - restore EFI_LDFLAGS check during rule execution;
> - update CHANGELOG.md;
> - added xen-syms.efi to .gitignore.
>
> Changes since v7:
> - move and improve CHANGELOG.md changes.
> ---
>   .gitignore            |  1 +
>   CHANGELOG.md          |  3 +++
>   docs/misc/efi.pandoc  |  8 +-------
>   xen/Kconfig.debug     |  9 ++-------
>   xen/Makefile          | 25 +++----------------------
>   xen/arch/x86/Makefile | 11 ++++++++---
>   6 files changed, 18 insertions(+), 39 deletions(-)
>
> diff --git a/.gitignore b/.gitignore
> index d83427aba8..213972b65c 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -222,6 +222,7 @@ tools/flask/policy/xenpolicy-*
>   xen/xen
>   xen/suppression-list.txt
>   xen/xen-syms
> +xen/xen-syms.efi
>   xen/xen-syms.map
>   xen/xen.*
>   
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index c9932a2af0..bc16e316e7 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -34,6 +34,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>        BAR for HVM guests, to improve performance of guests using it to map the
>        grant table or foreign memory.
>      - Allow configuring the number of altp2m tables per domain via vm.cfg.
> +   - The install-time environment variable INSTALL_EFI_STRIP no longer exists.
> +     xen.efi is always stripped, while the symbols remain available in
> +     xen-syms.efi.
>   
>   ### Added
>    - Introduce new PDX compression algorithm to cope with Intel Sierra Forest and
> diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
> index 11c1ac3346..c66b18a66b 100644
> --- a/docs/misc/efi.pandoc
> +++ b/docs/misc/efi.pandoc
> @@ -20,13 +20,7 @@ Xen to load the configuration file even if multiboot modules are found.
>   Once built, `make install-xen` will place the resulting binary directly into
>   the EFI boot partition, provided `EFI_VENDOR` is set in the environment (and
>   `EFI_MOUNTPOINT` is overridden as needed, should the default of `/boot/efi` not
> -match your system). When built with debug info, the binary can be quite large.
> -Setting `INSTALL_EFI_STRIP=1` in the environment will cause it to be stripped
> -of debug info in the process of installing. `INSTALL_EFI_STRIP` can also be set
> -to any combination of options suitable to pass to `strip`, in case the default
> -ones don't do. The xen.efi binary will also be installed in `/usr/lib64/efi/`,
> -unless `EFI_DIR` is set in the environment to override this default. This
> -binary will not be stripped in the process.
> +match your system).
>   
>   The binary itself will require a configuration file (names with the `.efi`
>   extension of the binary's name replaced by `.cfg`, and - until an existing
> diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
> index d900d926c5..1a8e0c6ec3 100644
> --- a/xen/Kconfig.debug
> +++ b/xen/Kconfig.debug
> @@ -147,12 +147,7 @@ config DEBUG_INFO
>   	  Say Y here if you want to build Xen with debug information. This
>   	  information is needed e.g. for doing crash dump analysis of the
>   	  hypervisor via the "crash" tool.
> -	  Saying Y will increase the size of the xen-syms and xen.efi
> -	  binaries. In case the space on the EFI boot partition is rather
> -	  limited, you may want to install a stripped variant of xen.efi in
> -	  the EFI boot partition (look for "INSTALL_EFI_STRIP" in
> -	  docs/misc/efi.pandoc for more information - when not using
> -	  "make install-xen" for installing xen.efi, stripping needs to be
> -	  done outside the Xen build environment).
> +	  Saying Y will increase the size of the xen-syms, xen-syms.efi and
> +	  xen.efi.elf binaries.
>   
>   endmenu
> diff --git a/xen/Makefile b/xen/Makefile
> index fc9244420e..5ed029fed1 100644
> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -493,22 +493,6 @@ endif
>   .PHONY: _build
>   _build: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
>   
> -# Strip
> -#
> -# INSTALL_EFI_STRIP, if defined, will cause xen.efi to be stripped before it
> -# is installed. If INSTALL_EFI_STRIP is '1', then the default option(s) below
> -# will be used. Otherwise, INSTALL_EFI_STRIP value will be used as the
> -# option(s) to the strip command.
> -ifdef INSTALL_EFI_STRIP
> -
> -ifeq ($(INSTALL_EFI_STRIP),1)
> -efi-strip-opt := --strip-debug --keep-file-symbols
> -else
> -efi-strip-opt := $(INSTALL_EFI_STRIP)
> -endif
> -
> -endif
> -
>   .PHONY: _install
>   _install: D=$(DESTDIR)
>   _install: T=$(notdir $(TARGET))
> @@ -526,18 +510,15 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
>   	if [ -r $(TARGET).efi -a -n '$(EFI_DIR)' ]; then \
>   		[ -d $(D)$(EFI_DIR) ] || $(INSTALL_DIR) $(D)$(EFI_DIR); \
>   		$(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_DIR)/$(T)-$(XEN_FULLVERSION).efi; \
> -		for x in map elf; do \
> -			if [ -e $(TARGET).efi.$$x ]; then \
> -				$(INSTALL_DATA) $(TARGET).efi.$$x $(D)$(DEBUG_DIR)/$(T)-$(XEN_FULLVERSION).efi.$$x; \
> +		for x in .efi.map .efi.elf -syms.efi; do \
> +			if [ -e $(TARGET)$$x ]; then \
> +				$(INSTALL_DATA) $(TARGET)$$x $(D)$(DEBUG_DIR)/$(T)-$(XEN_FULLVERSION)$$x; \
>   			fi; \
>   		done; \
>   		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION).efi; \
>   		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi; \
>   		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T).efi; \
>   		if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; then \
> -			$(if $(efi-strip-opt), \
> -			     $(STRIP) $(efi-strip-opt) -p -o $(TARGET).efi.stripped $(TARGET).efi && \
> -			     $(INSTALL_DATA) $(TARGET).efi.stripped $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi ||) \
>   			$(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \
>   		elif [ "$(D)" = "$(patsubst $(shell cd $(XEN_ROOT) && pwd)/%,%,$(D))" ]; then \
>   			echo 'EFI installation only partially done (EFI_VENDOR not set)' >&2; \
> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index 407571c510..a154ffe6b2 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -228,12 +228,17 @@ endif
>   	$(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
>   	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
>   	      $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
> -	      $(note_file_option) -o $@
> -	$(NM) -pa --format=sysv $@ \
> +	      $(note_file_option) -o $(TARGET)-syms.efi
> +	$(NM) -pa --format=sysv $(TARGET)-syms.efi \
>   		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
>   		> $@.map
>   ifeq ($(CONFIG_DEBUG_INFO),y)
> -	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
> +	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) \
> +		-O elf64-x86-64 $(TARGET)-syms.efi $@.elf
> +endif
> +	$(STRIP) $(TARGET)-syms.efi -o $@
> +ifneq ($(CONFIG_DEBUG_INFO),y)
> +	rm -f $(TARGET)-syms.efi
>   endif
>   	rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
>   ifeq ($(CONFIG_XEN_IBT),y)
--------------rIgHzd3MjhhWKv1T3mEQ2sVM
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/13/25 4:43 PM, Frediano Ziglio
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20251113154358.28704-1-frediano.ziglio@citrix.com">
      <pre wrap="" class="moz-quote-pre">From: Frediano Ziglio <a class="moz-txt-link-rfc2396E" href="mailto:frediano.ziglio@cloud.com">&lt;frediano.ziglio@cloud.com&gt;</a>

For xen.gz file we strip all symbols and have an additional
xen-syms.efi file version with all symbols.
Make xen.efi more coherent stripping all symbols too.
xen-syms.efi can be used for debugging.

Signed-off-by: Frediano Ziglio <a class="moz-txt-link-rfc2396E" href="mailto:frediano.ziglio@cloud.com">&lt;frediano.ziglio@cloud.com&gt;</a></pre>
    </blockquote>
    <pre>Release-Acked-By: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

Thanks.

~ Oleksii</pre>
    <blockquote type="cite"
      cite="mid:20251113154358.28704-1-frediano.ziglio@citrix.com">
      <pre wrap="" class="moz-quote-pre">
---
Changes since v1:
- avoid leaving target if some command fails.

Changes since v2:
- do not convert type but retain PE format;
- use xen-syms.efi for new file name, more consistent with ELF.

Changes since v3:
- update documentation;
- do not remove xen.efi.elf;
- check endbr instruction before generating final target.

Changes since v4:
- simplify condition check;
- avoid reuse of $@.tmp file.

Changes since v5:
- avoid creation of temporary file.

Changes since v6:
- install xen-syms.efi;
- always strip xen.efi;
- restore EFI_LDFLAGS check during rule execution;
- update CHANGELOG.md;
- added xen-syms.efi to .gitignore.

Changes since v7:
- move and improve CHANGELOG.md changes.
---
 .gitignore            |  1 +
 CHANGELOG.md          |  3 +++
 docs/misc/efi.pandoc  |  8 +-------
 xen/Kconfig.debug     |  9 ++-------
 xen/Makefile          | 25 +++----------------------
 xen/arch/x86/Makefile | 11 ++++++++---
 6 files changed, 18 insertions(+), 39 deletions(-)

diff --git a/.gitignore b/.gitignore
index d83427aba8..213972b65c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -222,6 +222,7 @@ tools/flask/policy/xenpolicy-*
 xen/xen
 xen/suppression-list.txt
 xen/xen-syms
+xen/xen-syms.efi
 xen/xen-syms.map
 xen/xen.*
 
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c9932a2af0..bc16e316e7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -34,6 +34,9 @@ The format is based on [Keep a Changelog](<a class="moz-txt-link-freetext" href="https://keepachangelog.com/en/1.0.0/">https://keepachangelog.com/en/1.0.0/</a>)
      BAR for HVM guests, to improve performance of guests using it to map the
      grant table or foreign memory.
    - Allow configuring the number of altp2m tables per domain via vm.cfg.
+   - The install-time environment variable INSTALL_EFI_STRIP no longer exists.
+     xen.efi is always stripped, while the symbols remain available in
+     xen-syms.efi.
 
 ### Added
  - Introduce new PDX compression algorithm to cope with Intel Sierra Forest and
diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
index 11c1ac3346..c66b18a66b 100644
--- a/docs/misc/efi.pandoc
+++ b/docs/misc/efi.pandoc
@@ -20,13 +20,7 @@ Xen to load the configuration file even if multiboot modules are found.
 Once built, `make install-xen` will place the resulting binary directly into
 the EFI boot partition, provided `EFI_VENDOR` is set in the environment (and
 `EFI_MOUNTPOINT` is overridden as needed, should the default of `/boot/efi` not
-match your system). When built with debug info, the binary can be quite large.
-Setting `INSTALL_EFI_STRIP=1` in the environment will cause it to be stripped
-of debug info in the process of installing. `INSTALL_EFI_STRIP` can also be set
-to any combination of options suitable to pass to `strip`, in case the default
-ones don't do. The xen.efi binary will also be installed in `/usr/lib64/efi/`,
-unless `EFI_DIR` is set in the environment to override this default. This
-binary will not be stripped in the process.
+match your system).
 
 The binary itself will require a configuration file (names with the `.efi`
 extension of the binary's name replaced by `.cfg`, and - until an existing
diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index d900d926c5..1a8e0c6ec3 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -147,12 +147,7 @@ config DEBUG_INFO
 	  Say Y here if you want to build Xen with debug information. This
 	  information is needed e.g. for doing crash dump analysis of the
 	  hypervisor via the "crash" tool.
-	  Saying Y will increase the size of the xen-syms and xen.efi
-	  binaries. In case the space on the EFI boot partition is rather
-	  limited, you may want to install a stripped variant of xen.efi in
-	  the EFI boot partition (look for "INSTALL_EFI_STRIP" in
-	  docs/misc/efi.pandoc for more information - when not using
-	  "make install-xen" for installing xen.efi, stripping needs to be
-	  done outside the Xen build environment).
+	  Saying Y will increase the size of the xen-syms, xen-syms.efi and
+	  xen.efi.elf binaries.
 
 endmenu
diff --git a/xen/Makefile b/xen/Makefile
index fc9244420e..5ed029fed1 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -493,22 +493,6 @@ endif
 .PHONY: _build
 _build: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 
-# Strip
-#
-# INSTALL_EFI_STRIP, if defined, will cause xen.efi to be stripped before it
-# is installed. If INSTALL_EFI_STRIP is '1', then the default option(s) below
-# will be used. Otherwise, INSTALL_EFI_STRIP value will be used as the
-# option(s) to the strip command.
-ifdef INSTALL_EFI_STRIP
-
-ifeq ($(INSTALL_EFI_STRIP),1)
-efi-strip-opt := --strip-debug --keep-file-symbols
-else
-efi-strip-opt := $(INSTALL_EFI_STRIP)
-endif
-
-endif
-
 .PHONY: _install
 _install: D=$(DESTDIR)
 _install: T=$(notdir $(TARGET))
@@ -526,18 +510,15 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
 	if [ -r $(TARGET).efi -a -n '$(EFI_DIR)' ]; then \
 		[ -d $(D)$(EFI_DIR) ] || $(INSTALL_DIR) $(D)$(EFI_DIR); \
 		$(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_DIR)/$(T)-$(XEN_FULLVERSION).efi; \
-		for x in map elf; do \
-			if [ -e $(TARGET).efi.$$x ]; then \
-				$(INSTALL_DATA) $(TARGET).efi.$$x $(D)$(DEBUG_DIR)/$(T)-$(XEN_FULLVERSION).efi.$$x; \
+		for x in .efi.map .efi.elf -syms.efi; do \
+			if [ -e $(TARGET)$$x ]; then \
+				$(INSTALL_DATA) $(TARGET)$$x $(D)$(DEBUG_DIR)/$(T)-$(XEN_FULLVERSION)$$x; \
 			fi; \
 		done; \
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION).efi; \
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi; \
 		ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T).efi; \
 		if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; then \
-			$(if $(efi-strip-opt), \
-			     $(STRIP) $(efi-strip-opt) -p -o $(TARGET).efi.stripped $(TARGET).efi &amp;&amp; \
-			     $(INSTALL_DATA) $(TARGET).efi.stripped $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi ||) \
 			$(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \
 		elif [ "$(D)" = "$(patsubst $(shell cd $(XEN_ROOT) &amp;&amp; pwd)/%,%,$(D))" ]; then \
 			echo 'EFI installation only partially done (EFI_VENDOR not set)' &gt;&amp;2; \
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 407571c510..a154ffe6b2 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -228,12 +228,17 @@ endif
 	$(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
 	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $&lt; \
 	      $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
-	      $(note_file_option) -o $@
-	$(NM) -pa --format=sysv $@ \
+	      $(note_file_option) -o $(TARGET)-syms.efi
+	$(NM) -pa --format=sysv $(TARGET)-syms.efi \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		&gt; $@.map
 ifeq ($(CONFIG_DEBUG_INFO),y)
-	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) -O elf64-x86-64 $@ $@.elf
+	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) \
+		-O elf64-x86-64 $(TARGET)-syms.efi $@.elf
+endif
+	$(STRIP) $(TARGET)-syms.efi -o $@
+ifneq ($(CONFIG_DEBUG_INFO),y)
+	rm -f $(TARGET)-syms.efi
 endif
 	rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
 ifeq ($(CONFIG_XEN_IBT),y)
</pre>
    </blockquote>
  </body>
</html>

--------------rIgHzd3MjhhWKv1T3mEQ2sVM--


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 16:32:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 16:32:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162773.1490294 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJwin-0005hJ-DK; Fri, 14 Nov 2025 16:32:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162773.1490294; Fri, 14 Nov 2025 16:32: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 1vJwin-0005hC-9v; Fri, 14 Nov 2025 16:32:25 +0000
Received: by outflank-mailman (input) for mailman id 1162773;
 Fri, 14 Nov 2025 16:32: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=2ooD=5W=bounce.vates.tech=bounce-md_30504962.69175993.v1-469cd3eab40649e79b67003d05c65955@srs-se1.protection.inumbo.net>)
 id 1vJwim-0005h6-84
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 16:32:24 +0000
Received: from mail128-17.atl41.mandrillapp.com
 (mail128-17.atl41.mandrillapp.com [198.2.128.17])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7e0d0aed-c177-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 17:32:21 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4d7N2q47wMzCf9RlV
 for <xen-devel@lists.xenproject.org>; Fri, 14 Nov 2025 16:32:19 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 469cd3eab40649e79b67003d05c65955; Fri, 14 Nov 2025 16:32: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: 7e0d0aed-c177-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763137939; x=1763407939;
	bh=eXLgTxppW7YAJWwm3TS/tlQb0nifMGgYjeK8MLTbGt8=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=Ic5MUn/O7z1nh6m0pZ9kESx/31R6+TswED91fFzoTpSsBX8loT+K90tOIZogVYbk9
	 63G4yyQoNrZvGOZOvKNyfh8Vt2NfUrrvpPmcOHupPri1tbMR2uK0z9wAQHrZzivFeE
	 BQJ8zGz/0VeNU1iHUZZmghwW1hGfEcm94v8LJO9rqewrfWyy3HufSBlE0QnWU1IGtL
	 ivSA1OGRK5ErGme6MMWa0OVAOXtdMaQ8vktu47j3fqDnL7KmMLR6uVOK9xUFVyS4qP
	 rx+g+t+jGrYfCHf8lcfgRGwZgj3+4XCJ2l1zQO57npHDf+jfTpEnInjiuNcYYkOASQ
	 jay+Nf5nBX2/Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763137939; x=1763398439; i=teddy.astie@vates.tech;
	bh=eXLgTxppW7YAJWwm3TS/tlQb0nifMGgYjeK8MLTbGt8=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=kTBQT0O7aA02ILgqy2ctfx3dJ9cn1SPdNS85qIK2S34BavUkfb5rupwnB5pLwbrA1
	 pw7Ceg3VSbc8soG+SSBHFH5tULAr7y58yjQZNh6f6NvQcHGiTqbX81co05LSgTYS+O
	 7qyimkvk+pn0+2prO2JCA7h43OUJCr/0lKzD6g1nZ97FZIQKxoaPB3SDHgIQXPcUAS
	 UJ4PmAEKc+oZjYSyGFQkkgcOBZvEOeWlSzQ7ZCuA3YU0dKPHeamo1aL6oF5rUh8kMJ
	 5AGWQLxyZg6WJMCEQAyb4SylFjVk956KquDBL6GDQQTzdR/xeW2eBqNISq7t6gONSl
	 cM5PdeSzfLEiQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2]=20ioreq:=20Check=20for=20out=20of=20bounds=20vCPU=20ID?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763137938262
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>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <f6cc34ce96693545ba9b8db6fe668c37c80f16c5.1763137553.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.469cd3eab40649e79b67003d05c65955?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251114:md
Date: Fri, 14 Nov 2025 16:32:19 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

A 4K page appears to be able to hold 128 ioreq entries, which luckly
matches the current vCPU limit. However, if we decide to increase the
vCPU limit, that doesn't hold anymore and this function would now
silently fetch a out of bounds pointer.

All architectures have no more than 128 as vCPU limit on HVM guests,
and have pages that are at most 4 KB, so this case doesn't occurs in
with the current limits.

Make sure that out of bounds attempts are reported and adjust the around
logic to at worst crash the offending domain instead.

No functional change.

Reported-by: Julian Vetter <julian.vetter@vates.tech>
Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v2:
 - check and report instead of ASSERT and eventually crash offending domain

 xen/common/ioreq.c | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
index f5fd30ce12..a2a2dafe85 100644
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -100,7 +100,14 @@ static ioreq_t *get_ioreq(struct ioreq_server *s, struct vcpu *v)
     ASSERT((v == current) || !vcpu_runnable(v));
     ASSERT(p != NULL);
 
-    return &p->vcpu_ioreq[v->vcpu_id];
+    if ( likely(v->vcpu_id < (PAGE_SIZE / sizeof(struct ioreq))) )
+        return &p->vcpu_ioreq[v->vcpu_id];
+    else
+    {
+        gprintk(XENLOG_ERR, "Out of bounds vCPU %pv in ioreq server\n", v);
+        WARN();
+        return NULL;
+    }
 }
 
 /*
@@ -154,9 +161,17 @@ bool vcpu_ioreq_pending(struct vcpu *v)
 static bool wait_for_io(struct ioreq_vcpu *sv, ioreq_t *p)
 {
     unsigned int prev_state = STATE_IOREQ_NONE;
-    unsigned int state = p->state;
+    unsigned int state;
     uint64_t data = ~0;
 
+    if ( unlikely(!p) )
+    {
+        domain_crash(sv->vcpu->domain);
+        return false;
+    }
+
+    state = p->state;
+
     smp_rmb();
 
     /*
@@ -354,7 +369,10 @@ static void ioreq_server_update_evtchn(struct ioreq_server *s,
     {
         ioreq_t *p = get_ioreq(s, sv->vcpu);
 
-        p->vp_eport = sv->ioreq_evtchn;
+        if ( likely(p) )
+            p->vp_eport = sv->ioreq_evtchn;
+        else
+            WARN();
     }
 }
 
@@ -1274,6 +1292,9 @@ int ioreq_send(struct ioreq_server *s, ioreq_t *proto_p,
             evtchn_port_t port = sv->ioreq_evtchn;
             ioreq_t *p = get_ioreq(s, curr);
 
+            if ( unlikely(!p) )
+                break;
+
             if ( unlikely(p->state != STATE_IOREQ_NONE) )
             {
                 gprintk(XENLOG_ERR, "device model set bad IO state %d\n",
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Nov 14 16:36:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 16:36:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162786.1490305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJwmm-0006HB-Tl; Fri, 14 Nov 2025 16:36:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162786.1490305; Fri, 14 Nov 2025 16: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 1vJwmm-0006H4-P9; Fri, 14 Nov 2025 16:36:32 +0000
Received: by outflank-mailman (input) for mailman id 1162786;
 Fri, 14 Nov 2025 16:36: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=0Jk/=5W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vJwml-0006Gw-Gz
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 16:36:31 +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 12ce0f77-c178-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 17:36:30 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-64149f78c0dso3497508a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 14 Nov 2025 08:36:30 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-6433a498102sm4042494a12.24.2025.11.14.08.36.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 14 Nov 2025 08:36: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: 12ce0f77-c178-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763138190; x=1763742990; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RATeqMgtNYio0MBZfJKvc4WkCiH5PtaCMi+RWfYf0Pc=;
        b=i+PeM2YoclgW/5y6ITfhdsEhRPEkFT+92OJWAKeWudJ0j0XCSI5rfY7tLFJy9YQR7d
         hwukXdVnKerYt9GOHwHwBqZajmHGO7YA9I0GjU9IQHDzVe4909s6Kfk3omH9G6nK0DmJ
         dgyjwrmBVez1nRhngFqsFY8xLtVpQAkpXD52JLVMjMld3Zxl4dVuvyzyRcwWyMr45h8m
         WTpJkxg0u93u9LUO1rGq4FEc6MW02mFTaHrfgiPHbUAW5hYi4/wAVCkECIvvECFNsRcn
         Mgxe1DN7hYoJEhiP9YHl6VF96audjQn8TqeIpJUpICdk8xrg/JIeGTQaL3BH4iZkN88I
         qagw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763138190; x=1763742990;
        h=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=RATeqMgtNYio0MBZfJKvc4WkCiH5PtaCMi+RWfYf0Pc=;
        b=J6XPYfWv/zReNlbH6Ip5woU6h6RJ/SUG4WLpocFY5FHgrrpGkmPwQL0QNSw5SfLOWe
         Qf6lFG/2FCKwosE/WkMSUq5tQifZq+M3rXGth5vKLT+KC29xnwG2hiJ/Zsk84LvvU70e
         036l3ODCbKoAdsruOtimha0j1N3DnIdguPZ7SkQd+AK/TTNQWf2N7//8W7m734DuXbxU
         zaOLLZK25tNwZhR0os9Pgo1f/3/tq4P7M8y0OUYmzPx3p9l86lAJqD0CniFt668HjDup
         u+C1QI/C13VIltLoBKph/QnKviyMixyZwpCcEfSCXaJiMEaiq8v7Zl7UegQMYa7+8TUr
         oKOw==
X-Forwarded-Encrypted: i=1; AJvYcCX5ib11mBfzG/NWi0wLb60tufVAX0b06NZ/jahGh2K9dz74uXK37yYux3Jtptwa8kAlM3ozo0pYDFE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyFzNc9zNrpm3oASTgFX80hPv2GI/Jv95OUni3wy3inzzj7HHBW
	r1D7dE2xtn1GiL/zD1jeczpi/1Z4Ac6TjRC1H5ycDyj8O9kigw8Ns87O
X-Gm-Gg: ASbGncv+kR6dZmGJ+COe7b0D4Wk1LA4WZJ3y93s+DMQGtxJV7J4eFage20Ha5BhdfOM
	v5/AnywffvqTGuHXcA/t6fH89RGAezStw04x8UlV0rVrrNy5knU8O6OPNr+CMmYv1juoy15okGh
	n0dm9aVsQHGEjXs+xPj6b7Dodxnx+MeZHAWj24cxT12oVruS7U3ED1z3nHfQW3KY+e9/CRUWDC7
	KSiJ2Gvrif9LewVMMEctHhA9GzGbPKvwxoPhV19I4e8q6HgcSwRA7xSmBO73FdL11RgdYeCmC56
	tSkWFKISX+ytty0cirPm73bUysFv7+G1pljHknS70Ov+y2ZD9qvhMINf81FGwp28Per9JarLvx6
	VsMNu8DAOtGgwuU31fseUAXt08XbeF+tyUIM6iWTxPtGi8S8BQVro95AJnDFjkzbxUzkjfPlsZU
	6Z5G9yFe/+QAGPlnzjQjg0D/kPQFr20tu5Q7dEGVnpcXXmggO0Zg==
X-Google-Smtp-Source: AGHT+IEy3ZJUmZJcUPsd/LTTkravs36fsKRRHjeb43/D2dLHfxTpBnN+EwuafJ8l2As8nwCfZysw6Q==
X-Received: by 2002:a17:907:25c4:b0:b6d:6d66:e8e9 with SMTP id a640c23a62f3a-b73679623edmr375395766b.61.1763138189799;
        Fri, 14 Nov 2025 08:36:29 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------zktd4dPiueMU1ucWXh2UWr1O"
Message-ID: <5a5422b8-e8a5-4662-bea1-4604bdfd3d3b@gmail.com>
Date: Fri, 14 Nov 2025 17:36:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.21] x86/ucode: Add extra rows to the entrysign model
 table (again)
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20251114152447.272823-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20251114152447.272823-1-andrew.cooper3@citrix.com>

This is a multi-part message in MIME format.
--------------zktd4dPiueMU1ucWXh2UWr1O
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/14/25 4:24 PM, Andrew Cooper wrote:
> Link:https://git.kernel.org/tip/dd14022a7ce96963aa923e35cf4bcc8c32f95840
> Fixes: ff8228ab4658 ("x86/ucode: Relax digest check when Entrysign is fixed in firmware")
> Signed-off-by: Andrew Cooper<andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich<JBeulich@suse.com>
> CC: Roger Pau MonnÃ©<roger.pau@citrix.com>
> CC: Oleksii Kurochko<oleksii.kurochko@gmail.com>
>
> Found because AMD have released ucode to fix RDSEED on this CPU, and I
> cross-referenced the tables.
>
> Again, for 4.21 even at this juncture.  It wants backporting everywhere in due
> course.

The same as for previous/another patch:
   Release-Acked-By: Oleksii Kurochko<oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii

> ---
>   xen/arch/x86/cpu/microcode/amd.c | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/xen/arch/x86/cpu/microcode/amd.c b/xen/arch/x86/cpu/microcode/amd.c
> index 550b8c1e57ec..4a7573c885e5 100644
> --- a/xen/arch/x86/cpu/microcode/amd.c
> +++ b/xen/arch/x86/cpu/microcode/amd.c
> @@ -659,6 +659,7 @@ void __init amd_check_entrysign(void)
>       case 0x0b1010: fixed_rev = 0x47; break;
>       case 0x0b2040: fixed_rev = 0x32; break;
>       case 0x0b4040: fixed_rev = 0x32; break;
> +    case 0x0b4041: fixed_rev = 0x02; break;
>       case 0x0b6000: fixed_rev = 0x32; break;
>       case 0x0b6080: fixed_rev = 0x32; break;
>       case 0x0b7000: fixed_rev = 0x32; break;
--------------zktd4dPiueMU1ucWXh2UWr1O
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/14/25 4:24 PM, Andrew Cooper
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20251114152447.272823-1-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">Link: <a class="moz-txt-link-freetext" href="https://git.kernel.org/tip/dd14022a7ce96963aa923e35cf4bcc8c32f95840">https://git.kernel.org/tip/dd14022a7ce96963aa923e35cf4bcc8c32f95840</a>
Fixes: ff8228ab4658 ("x86/ucode: Relax digest check when Entrysign is fixed in firmware")
Signed-off-by: Andrew Cooper <a class="moz-txt-link-rfc2396E" href="mailto:andrew.cooper3@citrix.com">&lt;andrew.cooper3@citrix.com&gt;</a>
---
CC: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:JBeulich@suse.com">&lt;JBeulich@suse.com&gt;</a>
CC: Roger Pau MonnÃ© <a class="moz-txt-link-rfc2396E" href="mailto:roger.pau@citrix.com">&lt;roger.pau@citrix.com&gt;</a>
CC: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

Found because AMD have released ucode to fix RDSEED on this CPU, and I
cross-referenced the tables.

Again, for 4.21 even at this juncture.  It wants backporting everywhere in due
course.</pre>
    </blockquote>
    <pre>The same as for previous/another patch:
  Release-Acked-By: Oleksii Kurochko <a class="moz-txt-link-rfc2396E"
    href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

Thanks.

~ Oleksii</pre>
    <blockquote type="cite"
      cite="mid:20251114152447.272823-1-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">
---
 xen/arch/x86/cpu/microcode/amd.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/x86/cpu/microcode/amd.c b/xen/arch/x86/cpu/microcode/amd.c
index 550b8c1e57ec..4a7573c885e5 100644
--- a/xen/arch/x86/cpu/microcode/amd.c
+++ b/xen/arch/x86/cpu/microcode/amd.c
@@ -659,6 +659,7 @@ void __init amd_check_entrysign(void)
     case 0x0b1010: fixed_rev = 0x47; break;
     case 0x0b2040: fixed_rev = 0x32; break;
     case 0x0b4040: fixed_rev = 0x32; break;
+    case 0x0b4041: fixed_rev = 0x02; break;
     case 0x0b6000: fixed_rev = 0x32; break;
     case 0x0b6080: fixed_rev = 0x32; break;
     case 0x0b7000: fixed_rev = 0x32; break;
</pre>
    </blockquote>
  </body>
</html>

--------------zktd4dPiueMU1ucWXh2UWr1O--


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 17:04:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 17:04:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162801.1490314 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJxDb-0002NQ-VW; Fri, 14 Nov 2025 17:04:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162801.1490314; Fri, 14 Nov 2025 17:04:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJxDb-0002NJ-S2; Fri, 14 Nov 2025 17:04:15 +0000
Received: by outflank-mailman (input) for mailman id 1162801;
 Fri, 14 Nov 2025 17:04:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0Jk/=5W=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vJxDa-0002ND-IL
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 17:04:14 +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 f1af2d98-c17b-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 18:04:13 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-640c1fda178so3432346a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 14 Nov 2025 09:04:12 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fedb91bsm421284266b.70.2025.11.14.09.04.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 14 Nov 2025 09:04: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: f1af2d98-c17b-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763139852; x=1763744652; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7xaxRGVd51zbr8z+5hwXTma7PMkYBPKA8ZE0YBvceC0=;
        b=b4FekbvOAUD55OvLLpHPTREN+KEi7cswbRTlhJX4PbaYq2Xi/lB3gEP5jU0AFHXyyh
         QJVM83uKxOiRIWENdMGI8aAokv/51YJjzdWNfA8983eBT2rxKOUyMV6Z79T+trqin4yX
         hp7hSi8Ms+rt4KToOvGUxa+JjuiqNDaIfPYTVUOrCDUmswp9lCpomyVIdPxwyyRJ8C2W
         oo3drid4UeZz9HS63EdJA+fm1RfL7dkMree9NbrMtG3+kaqUUrZw4Fisc3KD1xDhBWq6
         ZztauUzjK7VxaslStwy772RYsbd+j8cbDxE32NpgoetCzuW0Mjs97Lrco04ngwf6XQW5
         aN/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763139852; x=1763744652;
        h=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=7xaxRGVd51zbr8z+5hwXTma7PMkYBPKA8ZE0YBvceC0=;
        b=qKjgIzio8HTow2hvD3h4UU2jou7Ud498hUjFIMYG44WOeiHrHLJ853Pk91zUtTuCNG
         oK88Zn/r9h4BVBG0aw19mkB2b98egFshiPIR0GsNuBATg1mlGXBHiUw5kVzk0R5cGBSp
         xm0mZJQymrPOrrHrrlF50/q9cZtEZ8F2yYQbJzH9BZnCLkLD6zxlj0hv/sjcBP2mIIF8
         2Dk5q72+44HfnIyb6dpSz7JKH47HEJB1SDI/tCPcDbhTRL/LiG5VguTH+n0pfPrd1crC
         c9Df33IxPT2DBNhgmPRh56VB+l+kumpmaAdUarWXXh2pTi62KZm6LHegMUWfBcrPYZW8
         mXfQ==
X-Forwarded-Encrypted: i=1; AJvYcCUyNtOgAmCWPqxQ84qpkyRTmpmQgsmfrEvaqrUGccVzxNMwvhgDnbTbh3Wp3LYjNtY61H3XPXMrrTI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyLFi+Bey/7jbHajJ1QLDjG4Ioidxf0QelVfGihsvFSUp1bQDec
	t7CuS+cSiw1wyFnWCZc1vsbPdndiJxp3BTeRT5GY5sWR9q5FVgc1TP36
X-Gm-Gg: ASbGncuvxSzD3pZl0EgpSVe3rtnmG0/yJFgZDPDm2oF7ZY0tXEgXiojHa1zKV65BjRM
	V5WsYPzD9Gt5p0e7caeHYRXHTyfIByTynNDo4B/aG9xVHaE2qgj509bR4pk9Z6RDEq6ov+yOUpn
	Qr2fzcMbn4iJuMOKFcJ1H1Z5lBog6XVEWj2iiqeyXDjb+yhrgCT2fnN4vJ0oRya78cYAp9qLQzz
	WtmQtCsvk6XUIoBj2qGMp3EWuxcxe53cUetClDsNTxLUOQESuWGiND/6c8WFt5EeGtedG5Yg9Fa
	JFiTpY0bfES+iTbTYf5K/aFzrdYZ+toRLPbEM2vkCk6QJhLEoJdrQIRCHFP5idBOb7MS21h2U+y
	02DL9uMl82nA/Vup+lHzVPUlWA7nDHjzXDUXC1CSFLirgIsbEg4XiFlkcBkNwHyZ60DnshyJppP
	fwtbSwDHnzt7k6OAIKXq/ZzTXapL8so2p7w+XJ+c+oxCXNQCcgG4M0jpD+t2fF
X-Google-Smtp-Source: AGHT+IEACu0Mqu+36Ut6dFJtgad9ke7KsBHr9+3Tu+VKlWtZ3w9PqhvJy5aJswzneeY3XGexssIImA==
X-Received: by 2002:a17:907:a41:b0:b71:1164:6a8b with SMTP id a640c23a62f3a-b7367869c44mr385634366b.7.1763139851800;
        Fri, 14 Nov 2025 09:04:11 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------Pq48CNIJ8D8qOdyUGPQOyyLN"
Message-ID: <3fc28006-4a03-4d95-8db3-71a7b3131f82@gmail.com>
Date: Fri, 14 Nov 2025 18:04:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 10/18] xen/riscv: implement p2m_set_range()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <d689c48582505b0dab6896b414d01d844d834bd5.1760974017.git.oleksii.kurochko@gmail.com>
 <cfe9da20-5680-4f42-92f6-f46350811380@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <cfe9da20-5680-4f42-92f6-f46350811380@suse.com>

This is a multi-part message in MIME format.
--------------Pq48CNIJ8D8qOdyUGPQOyyLN
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/10/25 3:53 PM, Jan Beulich wrote:
> On 20.10.2025 17:57, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/include/asm/p2m.h
>> +++ b/xen/arch/riscv/include/asm/p2m.h
>> @@ -8,12 +8,45 @@
>>   #include <xen/rwlock.h>
>>   #include <xen/types.h>
>>   
>> +#include <asm/page.h>
>>   #include <asm/page-bits.h>
>>   
>>   extern unsigned char gstage_mode;
>> +extern unsigned int gstage_root_level;
>>   
>>   #define P2M_ROOT_ORDER  (ilog2(GSTAGE_ROOT_PAGE_TABLE_SIZE) - PAGE_SHIFT)
>>   #define P2M_ROOT_PAGES  BIT(P2M_ROOT_ORDER, U)
>> +#define P2M_ROOT_LEVEL  gstage_root_level
>> +
>> +/*
>> + * According to the RISC-V spec:
>> + *   When hgatp.MODE specifies a translation scheme of Sv32x4, Sv39x4, Sv48x4,
>> + *   or Sv57x4, G-stage address translation is a variation on the usual
>> + *   page-based virtual address translation scheme of Sv32, Sv39, Sv48, or
>> + *   Sv57, respectively. In each case, the size of the incoming address is
>> + *   widened by 2 bits (to 34, 41, 50, or 59 bits).
>> + *
>> + * P2M_LEVEL_ORDER(lvl) defines the bit position in the GFN from which
>> + * the index for this level of the P2M page table starts. The extra 2
>> + * bits added by the "x4" schemes only affect the root page table width.
>> + *
>> + * Therefore, this macro can safely reuse XEN_PT_LEVEL_ORDER() for all
>> + * levels: the extra 2 bits do not change the indices of lower levels.
>> + *
>> + * The extra 2 bits are only relevant if one tried to address beyond the
>> + * root level (i.e., P2M_LEVEL_ORDER(P2M_ROOT_LEVEL + 1)), which is
>> + * invalid.
>> + */
>> +#define P2M_LEVEL_ORDER(lvl) XEN_PT_LEVEL_ORDER(lvl)
> Is the last paragraph of the comment really needed? It talks about something
> absurd / impossible only.

Agree, it isn't really needed, lets drop it.

>
>> +#define P2M_ROOT_EXTRA_BITS(lvl) (2 * ((lvl) == P2M_ROOT_LEVEL))
>> +
>> +#define P2M_PAGETABLE_ENTRIES(lvl) \
>> +    (BIT(PAGETABLE_ORDER + P2M_ROOT_EXTRA_BITS(lvl), UL))
>> +
>> +#define GFN_MASK(lvl) (P2M_PAGETABLE_ENTRIES(lvl) - 1UL)
> If I'm not mistaken, this is a mask with the low 10 or 12 bits set.

I'm not sure I fully understand you here. With the current implementation,
it returns a bitmask that corresponds to the number of index bits used
at each level. So, if|P2M_ROOT_LEVEL = 2|, then:
   |G||FN_MASK(0) = 0x1ff| (9-bit GFN for the level 0)
   |GFN_MASK(1) = 0x1ff| (9-bit GFN width for level 1)
   |GFN_MASK(2) = 0x7ff| (11-bit GFN width for level 2)

Or do you mean that GFN_MASK(lvl) should return something like this:
   |G||FN_MASK_(0) = 0x1FF000 (0x1ff << 0xc) GFN_MASK_(1) = 0x3FE00000 
(GFN_MASK_(0)<<9) GFN_MASK_(2) = 0x1FFC0000000 (GFN_MASK_(1)<<9 + extra 
2 bits) And then here ...|

> That's not really something you can apply to a GFN, unlike the name
> suggests.

That is why virtual address should be properly shifted before, something
like it is done in calc_offset():
   (va >> P2M_LEVEL_SHIFT(lvl)) & GFN_MASK(lvl);

...
  (va & GFN_MASK_(lvl)) >> P2M_LEVEL_SHIFT(lvl) ?
In this option more shifts will be needed.

Would it be better to just rename GFN_MASK() to P2M_PT_INDEX_MASK()? Or,
maybe, even just P2M_INDEX_MASK().

>
>> +#define P2M_LEVEL_SHIFT(lvl) (P2M_LEVEL_ORDER(lvl) + PAGE_SHIFT)
> Whereas here the macro name doesn't make clear what is shifted: An
> address or a GFN. (It's the former, aiui.)

Yes, it is expected to be used to shift gfn.

The similar as with above would it be better to rename P2M_LEVEL_SHIFT to
P2M_GFN_LEVEL_SHIFT()?

>
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -9,6 +9,7 @@
>>   #include <xen/rwlock.h>
>>   #include <xen/sched.h>
>>   #include <xen/sections.h>
>> +#include <xen/xvmalloc.h>
>>   
>>   #include <asm/csr.h>
>>   #include <asm/flushtlb.h>
>> @@ -17,6 +18,43 @@
>>   #include <asm/vmid.h>
>>   
>>   unsigned char __ro_after_init gstage_mode;
>> +unsigned int __ro_after_init gstage_root_level;
> Like for mode, I'm unconvinced of this being a global (and not per-P2M /
> per-domain).

The question is then if we really will (or want to) have cases when gstage
mode will be different per-domain/per-p2m?

>
>> +/*
>> + * The P2M root page table is extended by 2 bits, making its size 16KB
>> + * (instead of 4KB for non-root page tables). Therefore, P2M root page
>> + * is allocated as four consecutive 4KB pages (since alloc_domheap_pages()
>> + * only allocates 4KB pages).
>> + */
>> +#define ENTRIES_PER_ROOT_PAGE \
>> +    (P2M_PAGETABLE_ENTRIES(P2M_ROOT_LEVEL) / P2M_ROOT_ORDER)
>> +
>> +static inline unsigned int calc_offset(unsigned int lvl, vaddr_t va)
> Where would a vaddr_t come from here? Your input are guest-physical addresses,
> if I'm not mistaken.

You are right. Would it be right to 'paddr_t gpa' here? Or paddr_t is supposed to use
only with machine physical address?


>
>> +{
>> +    unsigned int offset = (va >> P2M_LEVEL_SHIFT(lvl)) & GFN_MASK(lvl);
>> +
>> +    /*
>> +     * For P2M_ROOT_LEVEL, `offset` ranges from 0 to 2047, since the root
>> +     * page table spans 4 consecutive 4KB pages.
>> +     * We want to return an index within one of these 4 pages.
>> +     * The specific page to use is determined by `p2m_get_root_pointer()`.
>> +     *
>> +     * Example: if `offset == 512`:
>> +     *  - A single 4KB page holds 512 entries.
>> +     *  - Therefore, entry 512 corresponds to index 0 of the second page.
>> +     *
>> +     * At all other levels, only one page is allocated, and `offset` is
>> +     * always in the range 0 to 511, since the VPN is 9 bits long.
>> +     */
>> +    return offset % ENTRIES_PER_ROOT_PAGE;
> Seeing something "root" used here (when this is for all levels) is pretty odd,
> despite all the commentary. Given all the commentary, why not simply
>
>      return offset & ((1U << PAGETABLE_ORDER) - 1);
>
> ?

It works for all levels where|lvl < P2M_ROOT_LEVEL|, because in those cases the GFN
bit length is equal to|PAGETABLE_ORDER|. However, at the root level the GFN bit length
is 2 bits larger. So something like the following is needed:
   offset & ((1U << (PAGETABLE_ORDER + P2M_ROOT_EXTRA_BITS(lvl))) - 1);
This still returns an offset within a single 16 KB page, but in the case of the P2M
root we actually have four consecutive 4 KB pages, so the intention was to return
an offset inside one of those four 4 KB pages.

While writing the above, I started thinking whether|calc_offset()| could be implemented
much more simply. Since the root page table consists of four/consecutive/ pages, it seems
acceptable to have the offset in the range|[0, 2^11)| instead of doing all the extra
manipulation to determine which of the four pages is used and the offset within that
specific page:

   static inline unsigned int calc_offset(unsigned int lvl, paddr_t gpa)
   {
      return (gpa >> P2M_LEVEL_SHIFT(lvl)) & GFN_MASK(lvl);
   }

   static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
   {
     return __map_domain_page(p2m->root);
   }

It probably still makes sense for|p2m_get_root_pointer()| to check that the root GFN
index is not larger than|2^11|.

Am I missing something?

>
>> +}
>> +
>> +#define P2M_MAX_ROOT_LEVEL 4
>> +
>> +#define P2M_DECLARE_OFFSETS(var, addr) \
>> +    unsigned int var[P2M_MAX_ROOT_LEVEL] = {-1};\
>> +    for ( unsigned int i = 0; i <= gstage_root_level; i++ ) \
>> +        var[i] = calc_offset(i, addr);
> This surely is more than just "declare", and it's dealing with all levels no
> matter whether you actually will use all offsets.

I will rename|P2M_DECLARE_OFFSETS| to|P2M_BUILD_LEVEL_OFFSETS()|.

But how can I know which offset I will actually need to use?
If we take the following loop as an example:
   |for( level = P2M_ROOT_LEVEL; level > target; level-- ) { ||/* ||* Don't try to allocate intermediate page tables if the mapping ||* is about to be removed. ||*/ ||rc = p2m_next_level(p2m, !removing_mapping, ||level, &table, offsets[level]); ||... ||} |It walks from|P2M_ROOT_LEVEL| down to|target|, where|target| is determined at runtime.

If you mean that, for example, when the G-stage mode is Sv39, there is no need to allocate
an array with 4 entries (or 5 entries if we consider Sv57, so P2M_MAX_ROOT_LEVEL should be
updated), because Sv39 only uses 3 page table levels â€” then yes, in theory it could be
smaller. But I don't think it is a real issue if the|offsets[]| array on the stack has a
few extra unused entries.

If preferred, Icould allocate the array dynamically based on|gstage_root_level|.
Would that be better?

>
>> @@ -259,13 +308,293 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
>>       return rc;
>>   }
>>   
>> +/*
>> + * Map one of the four root pages of the P2M root page table.
>> + *
>> + * The P2M root page table is larger than normal (16KB instead of 4KB),
>> + * so it is allocated as four consecutive 4KB pages. This function selects
>> + * the appropriate 4KB page based on the given GFN and returns a mapping
>> + * to it.
>> + *
>> + * The caller is responsible for unmapping the page after use.
>> + *
>> + * Returns NULL if the calculated offset into the root table is invalid.
>> + */
>> +static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
>> +{
>> +    unsigned long root_table_indx;
>> +
>> +    root_table_indx = gfn_x(gfn) >> P2M_LEVEL_ORDER(P2M_ROOT_LEVEL);
> With the variable name shortened (to e.g. idx) this could be its initializer
> without ending up with too long a line. The root_table_ prefix isn't really
> adding much value in the context of this function.
>
>> +    if ( root_table_indx >= P2M_ROOT_PAGES )
>> +        return NULL;
>> +
>> +    /*
>> +     * The P2M root page table is extended by 2 bits, making its size 16KB
>> +     * (instead of 4KB for non-root page tables). Therefore, p2m->root is
>> +     * allocated as four consecutive 4KB pages (since alloc_domheap_pages()
>> +     * only allocates 4KB pages).
>> +     *
>> +     * Initially, `root_table_indx` is derived directly from `va`.
> There's no 'va' here.

Should be gfn.

>
>> +static inline void p2m_clean_pte(pte_t *p, bool clean_pte)
> "clean_pte" as a parameter name of a function of this name is, well, odd.

clean_cache should be better:
   p2m_clean_pte(pte_t *p, bool clean_cache)

I suppose it would be nice to rename everywhere clean_pte to clean_cache.

Thanks.

~ Oleksii

--------------Pq48CNIJ8D8qOdyUGPQOyyLN
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/10/25 3:53 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:cfe9da20-5680-4f42-92f6-f46350811380@suse.com">
      <pre wrap="" class="moz-quote-pre">On 20.10.2025 17:57, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -8,12 +8,45 @@
 #include &lt;xen/rwlock.h&gt;
 #include &lt;xen/types.h&gt;
 
+#include &lt;asm/page.h&gt;
 #include &lt;asm/page-bits.h&gt;
 
 extern unsigned char gstage_mode;
+extern unsigned int gstage_root_level;
 
 #define P2M_ROOT_ORDER  (ilog2(GSTAGE_ROOT_PAGE_TABLE_SIZE) - PAGE_SHIFT)
 #define P2M_ROOT_PAGES  BIT(P2M_ROOT_ORDER, U)
+#define P2M_ROOT_LEVEL  gstage_root_level
+
+/*
+ * According to the RISC-V spec:
+ *   When hgatp.MODE specifies a translation scheme of Sv32x4, Sv39x4, Sv48x4,
+ *   or Sv57x4, G-stage address translation is a variation on the usual
+ *   page-based virtual address translation scheme of Sv32, Sv39, Sv48, or
+ *   Sv57, respectively. In each case, the size of the incoming address is
+ *   widened by 2 bits (to 34, 41, 50, or 59 bits).
+ *
+ * P2M_LEVEL_ORDER(lvl) defines the bit position in the GFN from which
+ * the index for this level of the P2M page table starts. The extra 2
+ * bits added by the "x4" schemes only affect the root page table width.
+ *
+ * Therefore, this macro can safely reuse XEN_PT_LEVEL_ORDER() for all
+ * levels: the extra 2 bits do not change the indices of lower levels.
+ *
+ * The extra 2 bits are only relevant if one tried to address beyond the
+ * root level (i.e., P2M_LEVEL_ORDER(P2M_ROOT_LEVEL + 1)), which is
+ * invalid.
+ */
+#define P2M_LEVEL_ORDER(lvl) XEN_PT_LEVEL_ORDER(lvl)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Is the last paragraph of the comment really needed? It talks about something
absurd / impossible only.</pre>
    </blockquote>
    <pre>Agree, it isn't really needed, lets drop it.

</pre>
    <blockquote type="cite"
      cite="mid:cfe9da20-5680-4f42-92f6-f46350811380@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+#define P2M_ROOT_EXTRA_BITS(lvl) (2 * ((lvl) == P2M_ROOT_LEVEL))
+
+#define P2M_PAGETABLE_ENTRIES(lvl) \
+    (BIT(PAGETABLE_ORDER + P2M_ROOT_EXTRA_BITS(lvl), UL))
+
+#define GFN_MASK(lvl) (P2M_PAGETABLE_ENTRIES(lvl) - 1UL)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
If I'm not mistaken, this is a mask with the low 10 or 12 bits set.</pre>
    </blockquote>
    <pre data-start="59" data-end="254">I'm not sure I fully understand you here. With the current implementation,
it returns a bitmask that corresponds to the number of index bits used
at each level. So, if <code data-start="227" data-end="247">P2M_ROOT_LEVEL = 2</code>, then:
  <code>G</code><code data-start="258" data-end="279">FN_MASK(0) = 0x1ff</code> (9-bit GFN for the level 0)
  <code data-start="313" data-end="334">GFN_MASK(1) = 0x1ff</code> (9-bit GFN width for level 1)
  <code data-start="369" data-end="390">GFN_MASK(2) = 0x7ff</code> (11-bit GFN width for level 2)

Or do you mean that GFN_MASK(lvl) should return something like this:
  <code>G</code><code data-start="258" data-end="279">FN_MASK_(0) = 0x1FF000 (0x1ff &lt;&lt; 0xc)
  GFN_MASK_(1) = 0x3FE00000 (GFN_MASK_(0)&lt;&lt;9)
  GFN_MASK_(2) = 0x1FFC0000000 (GFN_MASK_(1)&lt;&lt;9 + extra 2 bits)
And then here ...</code></pre>
    <pre></pre>
    <blockquote type="cite"
      cite="mid:cfe9da20-5680-4f42-92f6-f46350811380@suse.com">
      <pre wrap="" class="moz-quote-pre">
That's not really something you can apply to a GFN, unlike the name
suggests.</pre>
    </blockquote>
    <pre>That is why virtual address should be properly shifted before, something
like it is done in calc_offset():
  (va &gt;&gt; P2M_LEVEL_SHIFT(lvl)) &amp; GFN_MASK(lvl);

...
 (va &amp; GFN_MASK_(lvl)) &gt;&gt; P2M_LEVEL_SHIFT(lvl) ?
In this option more shifts will be needed.

Would it be better to just rename GFN_MASK() to P2M_PT_INDEX_MASK()? Or,
maybe, even just P2M_INDEX_MASK().

</pre>
    <blockquote type="cite"
      cite="mid:cfe9da20-5680-4f42-92f6-f46350811380@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+#define P2M_LEVEL_SHIFT(lvl) (P2M_LEVEL_ORDER(lvl) + PAGE_SHIFT)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Whereas here the macro name doesn't make clear what is shifted: An
address or a GFN. (It's the former, aiui.)</pre>
    </blockquote>
    <pre>Yes, it is expected to be used to shift gfn.

The similar as with above would it be better to rename P2M_LEVEL_SHIFT to
P2M_GFN_LEVEL_SHIFT()?

</pre>
    <blockquote type="cite"
      cite="mid:cfe9da20-5680-4f42-92f6-f46350811380@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -9,6 +9,7 @@
 #include &lt;xen/rwlock.h&gt;
 #include &lt;xen/sched.h&gt;
 #include &lt;xen/sections.h&gt;
+#include &lt;xen/xvmalloc.h&gt;
 
 #include &lt;asm/csr.h&gt;
 #include &lt;asm/flushtlb.h&gt;
@@ -17,6 +18,43 @@
 #include &lt;asm/vmid.h&gt;
 
 unsigned char __ro_after_init gstage_mode;
+unsigned int __ro_after_init gstage_root_level;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Like for mode, I'm unconvinced of this being a global (and not per-P2M /
per-domain).</pre>
    </blockquote>
    <pre>The question is then if we really will (or want to) have cases when gstage
mode will be different per-domain/per-p2m? 

</pre>
    <blockquote type="cite"
      cite="mid:cfe9da20-5680-4f42-92f6-f46350811380@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+/*
+ * The P2M root page table is extended by 2 bits, making its size 16KB
+ * (instead of 4KB for non-root page tables). Therefore, P2M root page
+ * is allocated as four consecutive 4KB pages (since alloc_domheap_pages()
+ * only allocates 4KB pages).
+ */
+#define ENTRIES_PER_ROOT_PAGE \
+    (P2M_PAGETABLE_ENTRIES(P2M_ROOT_LEVEL) / P2M_ROOT_ORDER)
+
+static inline unsigned int calc_offset(unsigned int lvl, vaddr_t va)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Where would a vaddr_t come from here? Your input are guest-physical addresses,
if I'm not mistaken.</pre>
    </blockquote>
    <pre>You are right. Would it be right to 'paddr_t gpa' here? Or paddr_t is supposed to use
only with machine physical address?</pre>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:cfe9da20-5680-4f42-92f6-f46350811380@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+{
+    unsigned int offset = (va &gt;&gt; P2M_LEVEL_SHIFT(lvl)) &amp; GFN_MASK(lvl);
+
+    /*
+     * For P2M_ROOT_LEVEL, `offset` ranges from 0 to 2047, since the root
+     * page table spans 4 consecutive 4KB pages.
+     * We want to return an index within one of these 4 pages.
+     * The specific page to use is determined by `p2m_get_root_pointer()`.
+     *
+     * Example: if `offset == 512`:
+     *  - A single 4KB page holds 512 entries.
+     *  - Therefore, entry 512 corresponds to index 0 of the second page.
+     *
+     * At all other levels, only one page is allocated, and `offset` is
+     * always in the range 0 to 511, since the VPN is 9 bits long.
+     */
+    return offset % ENTRIES_PER_ROOT_PAGE;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Seeing something "root" used here (when this is for all levels) is pretty odd,
despite all the commentary. Given all the commentary, why not simply

    return offset &amp; ((1U &lt;&lt; PAGETABLE_ORDER) - 1);

?</pre>
    </blockquote>
    <pre data-start="59" data-end="249">It works for all levels where <code
    data-start="105" data-end="127">lvl &lt; P2M_ROOT_LEVEL</code>, because in those cases the GFN
bit length is equal to <code data-start="183" data-end="200">PAGETABLE_ORDER</code>. However, at the root level the GFN bit length
is 2 bits larger. So something like the following is needed:
  offset &amp; ((1U &lt;&lt; (PAGETABLE_ORDER + P2M_ROOT_EXTRA_BITS(lvl))) - 1);
This still returns an offset within a single 16 KB page, but in the case of the P2M
root we actually have four consecutive 4 KB pages, so the intention was to return
an offset inside one of those four 4 KB pages.

While writing the above, I started thinking whether <code
    data-start="654" data-end="669">calc_offset()</code> could be implemented
much more simply. Since the root page table consists of four <em
    data-start="752" data-end="765">consecutive</em> pages, it seems
acceptable to have the offset in the range <code data-start="825"
    data-end="836">[0, 2^11)</code> instead of doing all the extra
manipulation to determine which of the four pages is used and the offset within that
specific page:

  static inline unsigned int calc_offset(unsigned int lvl, paddr_t gpa)
  {
     return (gpa &gt;&gt; P2M_LEVEL_SHIFT(lvl)) &amp; GFN_MASK(lvl);
  }

  static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
  {
    return __map_domain_page(p2m-&gt;root);
  }
</pre>
    <pre data-start="1227" data-end="1345">It probably still makes sense for <code
    data-start="1261" data-end="1285">p2m_get_root_pointer()</code> to check that the root GFN
index is not larger than <code data-start="1338" data-end="1344">2^11</code>.</pre>
    <pre data-start="1347" data-end="1370" data-is-last-node=""
    data-is-only-node="">Am I missing something?</pre>
    <pre>
</pre>
    <blockquote type="cite"
      cite="mid:cfe9da20-5680-4f42-92f6-f46350811380@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+}
+
+#define P2M_MAX_ROOT_LEVEL 4
+
+#define P2M_DECLARE_OFFSETS(var, addr) \
+    unsigned int var[P2M_MAX_ROOT_LEVEL] = {-1};\
+    for ( unsigned int i = 0; i &lt;= gstage_root_level; i++ ) \
+        var[i] = calc_offset(i, addr);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
This surely is more than just "declare", and it's dealing with all levels no
matter whether you actually will use all offsets.</pre>
    </blockquote>
    <pre data-start="61" data-end="128">I will rename <code
    data-start="75" data-end="96">P2M_DECLARE_OFFSETS</code> to <code
    data-start="100" data-end="127">P2M_BUILD_LEVEL_OFFSETS()</code>.

But how can I know which offset I will actually need to use?
If we take the following loop as an example:
  <code class="whitespace-pre! language-c"><span><span><span
    class="hljs-keyword">for</span></span><span> ( level = P2M_ROOT_LEVEL; level &gt; target; level-- )
  {
    </span></span></code><code class="whitespace-pre! language-c"><span><span><span
    class="hljs-comment">/*
     </span></span></span></code><code
    class="whitespace-pre! language-c"><span><span><span
    class="hljs-comment">* Don't try to allocate intermediate page tables if the mapping
     </span></span></span></code><code
    class="whitespace-pre! language-c"><span><span><span
    class="hljs-comment">* is about to be removed.
     </span></span></span></code><code
    class="whitespace-pre! language-c"><span><span><span
    class="hljs-comment">*/
     </span></span></span></code><code
    class="whitespace-pre! language-c"><span><span>rc = p2m_next_level(p2m, !removing_mapping,
                         </span></span></code><code
    class="whitespace-pre! language-c"><span><span>level, &amp;table, offsets[level]);
     </span></span></code><code class="whitespace-pre! language-c"><span><span>...
  </span></span></code><code class="whitespace-pre! language-c"><span><span>}
</span></span></code>It walks from <code data-start="549" data-end="565">P2M_ROOT_LEVEL</code> down to <code
    data-start="574" data-end="582">target</code>, where <code
    data-start="590" data-end="598">target</code> is determined at runtime.

If you mean that, for example, when the G-stage mode is Sv39, there is no need to allocate
an array with 4 entries (or 5 entries if we consider Sv57, so P2M_MAX_ROOT_LEVEL should be
updated), because Sv39 only uses 3 page table levels â€” then yes, in theory it could be
smaller. But I don't think it is a real issue if the <code
    data-start="911" data-end="922">offsets[]</code> array on the stack has a
few extra unused entries.

If preferred, I <span data-start="991" data-end="998">could</span> allocate the array dynamically based on <code
    data-start="1039" data-end="1058">gstage_root_level</code>.
Would that be better?

</pre>
    <pre></pre>
    <blockquote type="cite"
      cite="mid:cfe9da20-5680-4f42-92f6-f46350811380@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -259,13 +308,293 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
     return rc;
 }
 
+/*
+ * Map one of the four root pages of the P2M root page table.
+ *
+ * The P2M root page table is larger than normal (16KB instead of 4KB),
+ * so it is allocated as four consecutive 4KB pages. This function selects
+ * the appropriate 4KB page based on the given GFN and returns a mapping
+ * to it.
+ *
+ * The caller is responsible for unmapping the page after use.
+ *
+ * Returns NULL if the calculated offset into the root table is invalid.
+ */
+static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
+{
+    unsigned long root_table_indx;
+
+    root_table_indx = gfn_x(gfn) &gt;&gt; P2M_LEVEL_ORDER(P2M_ROOT_LEVEL);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
With the variable name shortened (to e.g. idx) this could be its initializer
without ending up with too long a line. The root_table_ prefix isn't really
adding much value in the context of this function.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    if ( root_table_indx &gt;= P2M_ROOT_PAGES )
+        return NULL;
+
+    /*
+     * The P2M root page table is extended by 2 bits, making its size 16KB
+     * (instead of 4KB for non-root page tables). Therefore, p2m-&gt;root is
+     * allocated as four consecutive 4KB pages (since alloc_domheap_pages()
+     * only allocates 4KB pages).
+     *
+     * Initially, `root_table_indx` is derived directly from `va`.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
There's no 'va' here.</pre>
    </blockquote>
    <pre>Should be gfn.

</pre>
    <blockquote type="cite"
      cite="mid:cfe9da20-5680-4f42-92f6-f46350811380@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+static inline void p2m_clean_pte(pte_t *p, bool clean_pte)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
"clean_pte" as a parameter name of a function of this name is, well, odd.</pre>
    </blockquote>
    <pre>clean_cache should be better:
  p2m_clean_pte(pte_t *p, bool clean_cache)

I suppose it would be nice to rename everywhere clean_pte to clean_cache.

Thanks.

~ Oleksii</pre>
  </body>
</html>

--------------Pq48CNIJ8D8qOdyUGPQOyyLN--


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 18:01:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 18:01:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162818.1490323 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJy79-0002Md-2Q; Fri, 14 Nov 2025 18:01:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162818.1490323; Fri, 14 Nov 2025 18:01:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJy78-0002MW-W0; Fri, 14 Nov 2025 18:01:38 +0000
Received: by outflank-mailman (input) for mailman id 1162818;
 Fri, 14 Nov 2025 18:01:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lTzj=5W=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vJy78-0002MP-66
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 18:01:38 +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 f532241f-c183-11f0-980a-7dc792cee155;
 Fri, 14 Nov 2025 19:01:35 +0100 (CET)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AM9PR03MB7694.eurprd03.prod.outlook.com (2603:10a6:20b:41e::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Fri, 14 Nov
 2025 18:01:32 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%3]) with mapi id 15.20.9320.013; Fri, 14 Nov 2025
 18: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: f532241f-c183-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZPxR75x713JzE5IC0YAi+azhGpF6bzT9Hq0DcYEg7pg/QJhP1P6UPzA6w83AKUVJuHihFzRsGoGG7Z/3o6zB+VbJLH/tXHyDVrLBa7V4/K52g63Mv9OMAbc0+daiADb4MUlnLd2WkZmB+9DEXoiGksZRGKxA6x45GwldAktVzqF9iu8uULmIwXXzHiJlCIqGhQgUjQAcA+wCqpTAuy4s2IhKYNvUs8ICQriSVkz94/NjxXa/AVGpGiyjZGoeQs8DhUlp/qqEJCGvahpdf7zwU6gTeViZzBtiG4SpcPm+pAc/hcrxNBH1CA+LVokw/wSqZ4DIjSp1c8St0zvDJRc+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=XiNGl3ZXa6y3CFfQsH463W3pcuo8YvXy7QmlmKcHFuI=;
 b=Yof2g1kwB+thVdlZnXzCh9dc1vyTsNH1dyX1FjVCg7XFqqWYKDQS1uy301Yl9AJa3r2s8U+cY0xIms7XUAVZHci+qsIjBnlcFxVY9vQH/Z4dxxqvcf66a5+UjvBEGtCn52Gcw7511wggKTjOmumlFm2QGQx8p+m6Cibl+LTBFJHVP/0/zftXNJrmofra+ihm5X1azKAduUfROpxl7hzzMm/bnLYHzOI/rZJFdhinKwjGPwiU3ecHApJKw0YeXSz1+wwro2dVuuiNE1+h+aM3HFfj+1C0PfxtSjM7hmYc25x4oPiKN3mzwPn3IEMUt4yWEwiT4HFXS82jrUyGcZXhVg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XiNGl3ZXa6y3CFfQsH463W3pcuo8YvXy7QmlmKcHFuI=;
 b=AF9ytWIeZ7SOlxzBsCcSUcTXmAQg/15j2CN9Awveo1s3phKGamvx95tpFai4ia+XrnU8cyZ4X5zfJVmkzivs2b94a45OmQOcOadz17eV5jFS8SO+egsdXMuf3vGXEwy+PjmoBgPi5T7k7KjIJzIxuL6tcY8hU3LgS69ldmbzmcy/TStIaqINe8yqYD/bBu4WQ4/HRGetgKXo0ZqvLSdujpGAqOSqbJAtYgZBV/izWKRgp3qLRcdJkMBCFnOUKtmig7zQ0nJ49HDLjHktTLMq+LXT/lkrpsNbQcZbI8quR1oYo7i0gypci2pK4ypTWGr/O2ro02hpUaVCad95TmInjQ==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: [XEN][PATCH] common/libfdt: optimize usage
Thread-Topic: [XEN][PATCH] common/libfdt: optimize usage
Thread-Index: AQHcVZC1OaGU/KuFYUqRuKRHxQFN9g==
Date: Fri, 14 Nov 2025 18:01:32 +0000
Message-ID: <20251114180130.346755-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB8907:EE_|AM9PR03MB7694:EE_
x-ms-office365-filtering-correlation-id: 993171f7-f83c-44cd-aa14-08de23a7d821
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:
 =?iso-8859-1?Q?mgORjBjI/m6FfLi7juyqXNS6vKrt1a42LMxw50rK3ZPrOHKPMKt0YbLbi+?=
 =?iso-8859-1?Q?/UwA+Y1Y1XRvBCAzGYT2HYYyBuVnhLdDRHdnnqFdG6ZFmJ1r8h6wcz1PCf?=
 =?iso-8859-1?Q?rUlzOKpv1uQP35TdUkZiNyWXGU4QNTyIkOAgGrZk9AM0wnKg5cQ9frVNaO?=
 =?iso-8859-1?Q?s4oozrXMghNQ9utA4d5LDQZJ+7mVQG7f9QM83YsUBCjk9zl5uOXYUqre/w?=
 =?iso-8859-1?Q?zuAB4QKvH3sKAR6EwL1wAtgKaliVs0/+pgP97aqgmaEthyGV/ALtRCkPCb?=
 =?iso-8859-1?Q?n5m4YhAMNRe6FYoIAtaU3kiwO5GHMy1B3oXmrxyoBxQROvJYuiSxlLrJay?=
 =?iso-8859-1?Q?dTYJt3l/q30agy0JvTuC4tsK89ELF+9yzTCP+aJrBdc0tCUm6+Q9Q92aS1?=
 =?iso-8859-1?Q?Uw/QWsaeEFbZMSZ12D0qtl8UjGblhjQC/N4Uk5fA72F2cr8I+f+27qDYGg?=
 =?iso-8859-1?Q?LKt9Cycm142B5VtctjtjmT1XAHV7EEVRgwWcbYz//rDYkrpsGFJiDjPsw0?=
 =?iso-8859-1?Q?qO2x30a4mTsW4eJDGbodjW+JBQuqGW84Z478gM36jh4kEVPgCeYwwFoxY3?=
 =?iso-8859-1?Q?EXyu5piNuMcom2s3YqcwCnlNJ4x6aaW0YSgx3NWW71lkI7pwQ61IT+nR8d?=
 =?iso-8859-1?Q?TitSVLgJdZe/faek88RdNoAjpPCVc7wqklXI8d95FWIBDvxHI7nPdUhHj7?=
 =?iso-8859-1?Q?MxwQNYM+x9nk0tUC9RKGGnk/o2q1SodAZQBNrjc7TuXB+LHlK6J+2RmR3V?=
 =?iso-8859-1?Q?kNhXpfSebE6zR0nfRvj9aS+kqrO7YgjfWLR8sS/cRJ3RC+JH3Enxvqh72K?=
 =?iso-8859-1?Q?UIiY5ICXIQqccsjZPCcL6yEb9rSsx6B43cSf0Qy4wSbxQ9oKY/E2DFoMdw?=
 =?iso-8859-1?Q?lZYrM136brdIYDvVg8sJjViL5KTLbH96BH90EqutOgSQbWfchcDQjlAvvC?=
 =?iso-8859-1?Q?GTwSXt6xvDr0TIMynH4r7/zsPPoP/z2S93fZ8BUDO0ogy04u0Q447Cx3tI?=
 =?iso-8859-1?Q?zt1JyXwvhZn4m/FpIJnlcBKSiscNg6oV8G7JrQAOIGRRes1lmACb5QJvHo?=
 =?iso-8859-1?Q?MrzIIhvPWfmZNQGrIK721cqoifkPtCPlb/F1yiu3DhvDbTZtOruUUILFBG?=
 =?iso-8859-1?Q?YQ2hxOe6HZadwkpMj+NE8GlCYqtijQJbMcZtnJSiWFdjdwkZrQiJHMzR2a?=
 =?iso-8859-1?Q?wu+j4QGsmZRzb55x1mgn1+f5aJScm359w3Q/EMswjsLYT0HoL2vNEb6ntH?=
 =?iso-8859-1?Q?QF6QJ8YxQf5TP7ocYyILP/ZtT5SWbsawv/rndncnphv10kO0tOLHyTb2UC?=
 =?iso-8859-1?Q?H2/zG7OiBhcRAOKwFDLJ6/+1+ZHzCV1zIGlpEdpj2JOtPe4doV8WSHC3Mr?=
 =?iso-8859-1?Q?EB6URb+98/Pg4ajWN7O064laMz+orwDe7CG/8MNwEIYKux8RvNizPFnbe1?=
 =?iso-8859-1?Q?p/4Lx5G7GgSoJpjWpDWCipTFdmHdoZRWZVVFwCT+MeF4oMiUWWALc06Yoa?=
 =?iso-8859-1?Q?aI1cR4wrCckAcW918R1gqv+j5Kyq2CrLz5Xg4XYiitEbvEESTYP+Iv/vde?=
 =?iso-8859-1?Q?nuKiOB1MagxgtszWjmHNtY+YJAlB?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?b1BIEbNHfLmDEzPYgRC8ERu03UreKjHp5kmpuFgolgeKjjhfHIubmG+aKi?=
 =?iso-8859-1?Q?uDMrWqa3xCvh18lOh/cjst51ehDyIXOiiIIMTi5bA5GUOIl8vwy2k5SovF?=
 =?iso-8859-1?Q?aCRnOYt54Vc79ztaG1isNBVaKE0bR80SAts9q5NWFpq0hnb+4EhhpsfKUQ?=
 =?iso-8859-1?Q?ozfiwNzVgEr24qvJOJsUnUw1zrVs3vUhJw5vjY8JrvfM+MPvZur3LHsNUt?=
 =?iso-8859-1?Q?RCN4jVubP1GTbt8jIMHo1w7e4cx8q1qNvxjvR7Y2AoVyDD2ZOTZa3OInjP?=
 =?iso-8859-1?Q?rRKeJVx1yI+w83ZVpPObvHfSD+NGRsViNUM3V7rK+1eN1CK0D3JUVQwFsW?=
 =?iso-8859-1?Q?s5CIMGUHxIqzvFdtxb5s/C/seYGarjR6PMKu2DNMFZXaQqQiUtUjOPJd7d?=
 =?iso-8859-1?Q?5R8phjezP51Lv/PPMymVeLv+VkPvMJmiSHEkQj+mPE1ABeAkrkl1dESFCo?=
 =?iso-8859-1?Q?X0Sf0h3pQ46LePweB/vrhGi+JzZmry2AChOtzWH7kXnlYn29dX0aS+LHz9?=
 =?iso-8859-1?Q?EHTID2c7qHyyoL/IK6pGJe5phbzyNpl0bEDgFVvEjVRFnop5OKphvkP1GZ?=
 =?iso-8859-1?Q?SPfB5DsablNexySkd4k50ipKizvsJRM0z4JTsiU+ac20m/FsfsN3CPtSA0?=
 =?iso-8859-1?Q?CLCgUk5pxqrzfom3QaySIthxwoIXwkk/ZGAnOBgkfMcZHYUNt0d2XSe12h?=
 =?iso-8859-1?Q?RKdo9y2ZUHAqOhmG5mqi4UuPCRVl03AIWQ8ZTvovY4LXJiveqXH8THC0TM?=
 =?iso-8859-1?Q?s0XxTouVYT6yZaKRBcV3gc/wEAya6w9w9zkFgPdhJu6hQRC93OeDOcmFAT?=
 =?iso-8859-1?Q?jqlFxapaslDIO/jIpVkiwVXVEVf/+sWL4eERj5qsWt7TU6WmsjvVVKT/tn?=
 =?iso-8859-1?Q?Ootzp/Qj4Q4w1cIW5E7FLhNT8O9SnJA3tp+gd37pjjldJ/sm9wT2V4ok4f?=
 =?iso-8859-1?Q?avchy8HXHpvIlfkNKkgFtn214AfzPQXJaOKoU3H5ViVodydWEWkwCuoW5r?=
 =?iso-8859-1?Q?B56oV1liILbRtpxVTbragDIqmstsklMXmG7FdNnpZs/MG85jY9lCKoLPNG?=
 =?iso-8859-1?Q?Sj6qoB6M+ai8z7HmIYg8q8kDe4Uk1JwRikvAnEv+OBs2i7lnrNjOoFWWDv?=
 =?iso-8859-1?Q?6/p7uac6ZgwlLdl+cw4hiA1QRBfx0RtgdGD6XhWfnwRJvzx0NV/lCIK5PA?=
 =?iso-8859-1?Q?Na6jvsEuYUVqxkcnnAdWYjEnsBnA57Svu/yV5Tx/PAaIxWDk+VcdAXDkKx?=
 =?iso-8859-1?Q?nMpt2mPrC4rwnvXNelV35AEUPqF5DAcmAZa1lZSD9bVZXLYkQQf+1mgxLj?=
 =?iso-8859-1?Q?0NvgItztoQTTj2jbSa8c5Ip4+w5PXawb/Hpr9xl72A2Zb/FIcDqX9Qx8U8?=
 =?iso-8859-1?Q?v2pZTIvwfbkwyifWva1ddONIWInjurWMrMFW3GS1px7LrbSk9jo41fyvAl?=
 =?iso-8859-1?Q?PHBmM564l3Rmvrxz6DJ1348lwuldCxklYZGUOyXFeSME8Iq69s3Sdstp6y?=
 =?iso-8859-1?Q?4BFYPUQCQ9pW3mL5c+oWK7r/Ww3nPD4jXkje8+IR2+2DJXK+J8p3F0YucQ?=
 =?iso-8859-1?Q?wXhnPBpb7Ow9yQ8oAObFZDwbAikuUy5jCzXXhY/VA/8euaAG36spv6tQnR?=
 =?iso-8859-1?Q?xbD1IvSj/WYqqYxJLHh00m3q1jVM4XnwWZ+2FaKurUCjgdvI1cpKhP/Q?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 993171f7-f83c-44cd-aa14-08de23a7d821
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Nov 2025 18:01:32.5738
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: pk1rWvhrMFSh/xGHp0/DkS7RTdK+tx7N2uxgTUl+K1WIX4ox51b2QWW/Dba8JVqA/OnkxvKOHkKPXAYA0hckaWecsrvkB0P8/SfpDSpivu4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7694

From: Grygorii Strashko <grygorii_strashko@epam.com>

Now all libfdt features are built-it unconditionally, but...

X86: The libfdt is used on x86 only to parse Hyperlaunch/dom0less Xen
nodes, so full libfdt is not needed in this case and minimal, RO
configuration can be used.

ARM - situation is more complicated:
1) ARM reads Host DT (fdt.c RO)
2) ARM reads passthrough DT (RO)
3) ARM generates dom0/hwdom DT from Host DT (there is a mix of WIP and SW A=
PIs)
4) ARM generates domU DT (there is a mix of WIP and SW APIs)
4) With EFI enabled - ARM needs RW API and fdt_empty_tree
5) With CONFIG_OVERLAY_DTB - ARM needs RW and fdt_overlay API

Hence, add possibility for optimizing libfdt usage by introducing separate
Kconfig options for each libfdt feature and select them where needed.

Following libfdt modules are not used after this change:
 Makefile.libfdt
 fdt_addresses.c
 fdt_strerror.c
 fdt_check.c

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
Not sure about using DOMAIN_BUILD_HELPERS for selecting=20
LIBFDT features, as DOMAIN_BUILD_HELPERS doesn't exactly
says that domain's DT will be generated when selected.

 xen/arch/arm/Kconfig       |  4 ++++
 xen/common/Kconfig         |  4 ++++
 xen/common/libfdt/Kconfig  | 14 ++++++++++++++
 xen/common/libfdt/Makefile | 12 +++++++++---
 4 files changed, 31 insertions(+), 3 deletions(-)
 create mode 100644 xen/common/libfdt/Kconfig

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index cf6af68299f6..f10cd3d7effc 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -111,6 +111,8 @@ config ARM_EFI
 	bool "UEFI boot service support"
 	depends on ARM_64 && !MPU
 	default y
+	select LIBFDT_RW
+	select LIBFDT_EMPTY_TREE
 	help
 	  This option provides support for boot services through
 	  UEFI firmware. A UEFI stub is provided to allow Xen to
@@ -149,6 +151,8 @@ config HAS_ITS
 config OVERLAY_DTB
 	bool "DTB overlay support (UNSUPPORTED)" if UNSUPPORTED
 	depends on SYSCTL
+	select LIBFDT_RW
+	select LIBFDT_OVERLAY
 	help
 	  Dynamic addition/removal of Xen device tree nodes using a dtbo.
=20
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 401d5046f6f5..256aff269c3b 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -28,6 +28,8 @@ config DOM0LESS_BOOT
=20
 config DOMAIN_BUILD_HELPERS
 	bool
+	select LIBFDT_WIP
+	select LIBFDT_SW
=20
 config GRANT_TABLE
 	bool "Grant table support" if EXPERT
@@ -680,4 +682,6 @@ config PM_STATS
 	  Enable collection of performance management statistics to aid in
 	  analyzing and tuning power/performance characteristics of the system
=20
+source "common/libfdt/Kconfig"
+
 endmenu
diff --git a/xen/common/libfdt/Kconfig b/xen/common/libfdt/Kconfig
new file mode 100644
index 000000000000..3abd904b2969
--- /dev/null
+++ b/xen/common/libfdt/Kconfig
@@ -0,0 +1,14 @@
+config LIBFDT_WIP
+	bool
+
+config LIBFDT_SW
+    bool
+
+config LIBFDT_RW
+    bool
+
+config LIBFDT_EMPTY_TREE
+    bool
+
+config LIBFDT_OVERLAY
+    bool
diff --git a/xen/common/libfdt/Makefile b/xen/common/libfdt/Makefile
index 6ce679f98f47..c832d1849a5c 100644
--- a/xen/common/libfdt/Makefile
+++ b/xen/common/libfdt/Makefile
@@ -1,7 +1,13 @@
-include $(src)/Makefile.libfdt
=20
 SECTIONS :=3D text data $(SPECIAL_DATA_SECTIONS)
=20
+obj-libfdt-y :=3D fdt.o fdt_ro.o
+obj-libfdt-$(CONFIG_LIBFDT_WIP) +=3D fdt_wip.o
+obj-libfdt-$(CONFIG_LIBFDT_SW) +=3D fdt_sw.o
+obj-libfdt-$(CONFIG_LIBFDT_RW) +=3D fdt_rw.o
+obj-libfdt-$(CONFIG_LIBFDT_EMPTY_TREE) +=3D fdt_empty_tree.o
+obj-libfdt-$(CONFIG_LIBFDT_OVERLAY) +=3D fdt_overlay.o
+
 # For CONFIG_OVERLAY_DTB, libfdt functionalities will be needed during run=
time.
 ifneq ($(CONFIG_OVERLAY_DTB),y)
 OBJCOPYFLAGS :=3D $(foreach s,$(SECTIONS),--rename-section .$(s)=3D.init.$=
(s))
@@ -15,7 +21,7 @@ CFLAGS-y +=3D -I$(srctree)/include/xen/libfdt/
 $(obj)/libfdt.o: $(obj)/libfdt-temp.o FORCE
 	$(call if_changed,objcopy)
=20
-$(obj)/libfdt-temp.o: $(addprefix $(obj)/,$(LIBFDT_OBJS)) FORCE
+$(obj)/libfdt-temp.o: $(addprefix $(obj)/,$(obj-libfdt-y)) FORCE
 	$(call if_changed,ld)
=20
-targets +=3D libfdt-temp.o $(LIBFDT_OBJS)
+targets +=3D libfdt-temp.o $(obj-libfdt-y)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 18:23:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 18:23:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162832.1490334 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJySU-0005lk-NY; Fri, 14 Nov 2025 18:23:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162832.1490334; Fri, 14 Nov 2025 18:23:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJySU-0005ld-L0; Fri, 14 Nov 2025 18:23:42 +0000
Received: by outflank-mailman (input) for mailman id 1162832;
 Fri, 14 Nov 2025 18:23: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=Irg0=5W=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJyST-0005lX-B5
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 18:23:41 +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 0911d82a-c187-11f0-980a-7dc792cee155;
 Fri, 14 Nov 2025 19:23:38 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 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.9320.16; Fri, 14 Nov
 2025 18:23:33 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9320.018; Fri, 14 Nov 2025
 18:23: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: 0911d82a-c187-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EoxDad3GquhWUer6jvYFL9WtOs/z/GU8CBFFID3vU1/zhgS9E8UU1cFGDbkmkUKQt8fFZVygoYcBTnyHupuYVcIeUG/p2rZCUImx+t0gmpdake6NrxS8W42jUfb17/MXTbFBgjWEWd/3zyAASXUCvJUF3aA5/GuoR6X5AJfA6QIJtEVMehHjkYPxWKRul9TBpc64g2u1nrDsrON+wCGcV/c0eXZbt+yS6eTMBmhGLcg2aBvOealpF6LxUTlVfD+GCV/oR4kS6dFz9Dxd3yx/fkZchWB6UW/aJRpC2NS3cniOYz0d3NJVQpseXZT2uOHS5nZF68XKX1CkfV7DxK1NLw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iD+o1hjuFoNNfTYGi0JJpbGQkb819UHoDaqPZm8Sfdw=;
 b=sH7rZ6Y51AWAh5R+EYo++cI1Hw9YtkbUTfmYXpQ1osw7GdfPqazpl7o1wxN9CeC6T81mDTly8CtRM5bV5K5JHii5xyU1NKO6DxHMHLom5xs/Xv1jlgHkHzltdUtwxTctyUlWJUXkIbQtCf7lF5+B664W5QrAiGiY+o0LsT/YeZrPv4Ktdjwsf82amq8A93Oc77GORSVrrWQtba3b5oLfrz2U85WvcxtBvtz190h5hiCOZIF/Vu/O14vkpzofrlX0qWd6EvpR/ddhq1YFm3V8KnqxJxFzS6eBipejVvD1eR71B4Un2e3rA607XNoitGvXx1GULhXuuolI3tFKKKKzIQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=iD+o1hjuFoNNfTYGi0JJpbGQkb819UHoDaqPZm8Sfdw=;
 b=tFq4m7CQF5mqtibz/41IBsMuUS1Y31ymKtGw17RbXsZ5RBCn2/8UISkEGPRf4EJmlo2wYOumc/twsq5rMCY/2qIzBX6OPtTGEHSWoUFRfTkgKSyjPd/B06PvOqXnuQAlxze4s7iSfp1O0TAzF5EWyiBVM+h126zOxVF+3JwRGVE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b014b9de-a61c-4c75-8a7a-25af2697e33c@citrix.com>
Date: Fri, 14 Nov 2025 18:23:29 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] ioreq: Check for out of bounds vCPU ID
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Julian Vetter <julian.vetter@vates.tech>
References: <f6cc34ce96693545ba9b8db6fe668c37c80f16c5.1763137553.git.teddy.astie@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <f6cc34ce96693545ba9b8db6fe668c37c80f16c5.1763137553.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO3P123CA0030.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:388::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_|LV8PR03MB8140:EE_
X-MS-Office365-Filtering-Correlation-Id: 8db7d632-885b-4321-b60d-08de23aaeb01
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?Tlg1cHFON0VCYVl4azRWNUdGK3o4Ym9jdGtGTGZUNkV2MW85elhUd01FMXdw?=
 =?utf-8?B?VmNjUGc4aDVrSjl0Y29nZlZUbXMrYmtFZEIweWl3TWxnWFpTWnFsMGpqbDIz?=
 =?utf-8?B?QkhkeUZzcXJ1VnIrYmFGM25qNGpSOFBGK1hiUC9vYW9ubEc1dWhaakhxR0kv?=
 =?utf-8?B?aVB0MjFObjlFUlAzeXlrdEJkTVpTNVJkUEh3U3p6V2hsUnU0ZWNkUXhSMXFC?=
 =?utf-8?B?S0pyUDFCdzA1RllrU05OcDZSUkZCN0dFbk1uVTFybHpQTUhpRFdERE83Y1kx?=
 =?utf-8?B?TzhyM2t6c3dPakJzT3VsbzVVTzNEMWFTZVo0Qm1haEc3T0pYY1NLNGkwejN2?=
 =?utf-8?B?MGJqV0VYOXdId3oxanlKdVovY1piVDZMbnNOTVFNOTZiY0dLOUlMbVh1SUVl?=
 =?utf-8?B?OWQ0TThaSVpJUCtMRE9ZeGkwbXF6elBweG5vTEQvOFVwS2R6aURnR2ZLOXdi?=
 =?utf-8?B?bFE0T0FCUUlFMXVybXJRTVZraUdsZW9oN1QvTUxjUmdKMVJ6b1Y3UjU3VUdq?=
 =?utf-8?B?NXg4SGo3K01VZjNtRktyZWl5ZS9HNVJsZm5iREtwRXZFNElzSDU0MmJKUzVp?=
 =?utf-8?B?QWlMNzVWY21wWU16Rk03ZGdhY0xhUk16SnlVMTI1QUV0ZmxRQzczZVgydlhU?=
 =?utf-8?B?M1h1NUxZR0dpaHhnRWtYRll3QUM3SlkrWlJTVFZ6UUh0UitLTjJVcUs3Zkhx?=
 =?utf-8?B?djlzOWQ4QWwzNVFVMVNQcEpkbk1qc1lGTm5SZjRNV0dTRU0yenU3OUorN2U0?=
 =?utf-8?B?WlJ1anRaWVVhUHI1UWYzRTdzdWRGVDZQTFhZY2U4QXhpaDF0L25iWjk2eXVH?=
 =?utf-8?B?RFBSNWtUNXZwdTNMNG9YVlFaaTZ0U1d1dVBxZXFIL29NaG9JeE1GUk1RcjFN?=
 =?utf-8?B?bmhBc0QxQ0M1ZmMvYTIvVmRsOGRveFBaZDBSbzVuRlg1VFhzM1lyYllxQXA5?=
 =?utf-8?B?enQ4clA1R04wRElGRnY5UXpwakdrR2M5VHpWVVA5ZTdISmJsWTI3SmkwWHRy?=
 =?utf-8?B?Ky9DTlBjZHFuYjhEc2RxcmV6cjBBY3VkRFNYdG45OUNjbzNRdFgxUGFyN2c4?=
 =?utf-8?B?ZlpocU9OaHBHem9neGQrZ2NDbTlxVzROcUUvWUt4SS95aDBZWmRKTW5SeHd0?=
 =?utf-8?B?RERhb0MzcGd4WGVDalc2QmtVRm1aeUVPcXdvcDNCUEIydlhDYlN2RnlHb0t0?=
 =?utf-8?B?Z2I0ZnAzWXcwaGo2SFZLTWlHSFB3SlRWZ0tJajZCTU1OTVAzVFd5RFEyZHJD?=
 =?utf-8?B?SjBEYVJIYWJZZ0dpWWJuSjlGeUJ1UnU3NVVUbDlsRFgzSHVTQW53QklONGNM?=
 =?utf-8?B?Si8wMVA2QURZNzZER2hLNmY0T1dmNjNRYnk0T3k0UGlGSy9Jem5tNXY2RFBX?=
 =?utf-8?B?TWQyai90TnhYU1lZZU9KQ2ZZckhENDVOWkdOcWJycGd2ZDNRRkZ4NXNtRTdp?=
 =?utf-8?B?T05tTEdjTjZ5elFBbjI4NDhvb1Btcm5ZOFUzazlkbEluTVFsa0tTTWRWN2dN?=
 =?utf-8?B?VGowVU9XS0RvS2Y1R01RcVgvZ3pYM0VhRkNSQTF1SFRjQW9pN29WbkUwN1ZG?=
 =?utf-8?B?U3VoQzJFY1FiM2F2OFlybDZOYzBtZkJ5Y2JSQ1hTODMrTTV6c2Z5Z045UElz?=
 =?utf-8?B?THErbGU5MldqZHVlVlA2TTlHUytUREExU3lraUZkUytQMy9mdmJJbldwVEI1?=
 =?utf-8?B?RW1Ua2JoMUkybnhrS0VaVzVNSjZzdFJkQnhNWC84V1FKc3k3dUU5ak1kQk53?=
 =?utf-8?B?Yi9KNmVwRko0MXREK2prbEYyaXNTYlZnVmQzeHZvSFZDOFFDU25yZEcvNjZi?=
 =?utf-8?B?QkJBNFdVYWp4VnFYVy9uakJPQk9NQXAwNVl6SzNSaUF5WUE0ZEdOWHRSVDBl?=
 =?utf-8?B?QUkwVjB0ODVvVk9TQzBOQWJ3WTBrVWc5cVorbWhxS0VsMnpEMTh4NDl3N0RW?=
 =?utf-8?Q?cO6rxzOqGuCkrRxmF0R9Nt4UblaUP3s2?=
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?aS9lNFdrY3ZjMGpDVXJ1MTB4TmJ3U2hDbUR1eHgxa01aZnVycSs2RDN0ajJT?=
 =?utf-8?B?OFp0UWdrK2lLeHpmOFdSMDNKWE9YVTNydkwyRkNkYTNUa3JPcm9nSnVmSitn?=
 =?utf-8?B?a04yUm9SQW5VWkl0RE1kNG5kaXpvNUR2cGllRS9iZWozL3lRQW42c2g0bUc5?=
 =?utf-8?B?cCtxTVR1K1NVNVhGbmJhdG1ZM2VWRjBDYnJrTGU1SFRCOFBYNWVlOGVQMzB3?=
 =?utf-8?B?SGMyN1N4Mzd3a3p5VVRPNGJMYVBUcHRlaGNyTFBOM0pSeEJIWlVLY1d5ZHli?=
 =?utf-8?B?aHgycWc1NzhxNStLWmsweUpWakRlRGFJSGFqMmNxR0tJWHFLdlRGMkxIaU1w?=
 =?utf-8?B?RnV1RXM5ZEs5KytaTzRUN1ZTbWsxdW92K1ByRHJEL0g3Y0MvY0hCd0tRQU5Q?=
 =?utf-8?B?eHU2VGU4QzlUeVR4cHFTMnh2M2ZTeldNRjNFWEg3MU1QZGd5bXZPNVRHKzVG?=
 =?utf-8?B?L3dpemcwTFZsOFY0cTZLOVNNeEs4YURLbXYyemh6ZVY4dWxDcCsvNzZaYjI2?=
 =?utf-8?B?bTlNQXFrcmgvcXRVOTRUVkQweVJib0hPZXF4KzVscDBTZFY5UUlwR0gwcXNN?=
 =?utf-8?B?d3VRZ1Y2YTRpWmxGQU1pRGNiamZzVFc0aVMwK0c5VlFXWnV0cjNDZ29jSE5v?=
 =?utf-8?B?Tkg1WnR3N1VTeVJVZm9zaUh1cmh5OEMxazRzOWc1TzVHQjhxSm5MM0RaM0VJ?=
 =?utf-8?B?eTBxNXpuMkNIMTAvckRiZnkyVTJrb0I2YnBFRUFvRG5jMFQ3dmdaVVQ4L3ox?=
 =?utf-8?B?cDlnK3E0UlVnN2VyV1gwdkRNZCttYWNaTHppKy9lK2hKbXRtdDZKaCtQVk1G?=
 =?utf-8?B?a1ZiL1UrWURQMnErMWJER2RaRVlURjhuR0owYzlxL0YrT0NuNVpaams0MWU4?=
 =?utf-8?B?NklsODFKUzJiQWdkczlWTStKQmthTkxsanJOc2YyVlhNT09UQ0dkWGFSRzJQ?=
 =?utf-8?B?czFPem9ONzZaY01NRUxiSUI1ajBESEhtK1c5ckpwWFNrOGNWV2pSTUVlZFRZ?=
 =?utf-8?B?a0ZWV2hXUVJyNURnOUM2RmFFUzgyaTEycWZQNjRGNkkyMjBoZnpwUmg1aVRM?=
 =?utf-8?B?T1pxNzYvbEpPKzZLUGpLNlJpY2wwWllsUjNDaXdzN1BGaEtDaEFlZWdNM2FB?=
 =?utf-8?B?bXl5WkM2Snc0bTBOQVRXczZieHpvU2xNZE5xMnAwTERxUU44UjJuVjY5YktB?=
 =?utf-8?B?UlZBeDlyaVlJQWIyU3NkcWwwYjdNcDRqUURYVVhuck0wQ2UyNGplbHEwVHND?=
 =?utf-8?B?TWxEYVZMZ1grMDZGZGY0M3c3cEJhWWhiRUxkWUM2clRieGVxR1lmbCtsSXg4?=
 =?utf-8?B?M1dtVWZ5V2sxZkhzeUc5MjFmSTZiTFVXUU5iSytmTjZEaWM2K3gzZXBDQmo0?=
 =?utf-8?B?QmVnSFZFa294Mk05Wk5RMUdBdUsrMXcvbm5yT3NtT2g5QXZZTDgzZGFyK09T?=
 =?utf-8?B?SkQ3aXptNTR6V2xXMEF2Z1NJZFM1TW4rL09INjhqSW9PNTk1VEZhRkZKMlpH?=
 =?utf-8?B?UCszaXE5OTJPM3ZjcndwU2lYODZ2ZjJPM1M0d1l0bUlPRkV2UHpudnd2VDI0?=
 =?utf-8?B?VjRHaTduQnRYRExhejhmL1FYbWlUaUhaY082TDN1QXhJNXVNME13TWc1Y0dk?=
 =?utf-8?B?NnlDNWcvUi9WL2RuMC9NL25FdlRrR2VZY3IxM3o3L2ZmKzRsU0VzZGF1dUtG?=
 =?utf-8?B?NVd3d1BvNEc5OUFBVm5ZcUl6Q0xySkxGelNxMzBBNGFVaFYyM1gyQysxVEwv?=
 =?utf-8?B?dUF3azNQTElPVEcxQWpqQkhHYTV0UFlvdVZXTGJFYStGdjhRNE5wcExhc2pj?=
 =?utf-8?B?SGVxS25va3RnWGYvLzg5MmxRUGtReVU5OVJOV1M3UGF2MXN1KzkwaGVNKzBE?=
 =?utf-8?B?ZUQ0d25LMTFVMUZoUGs3dVQ3b21SSzNjcmZZRUZQRXFmSysvMnZneGYwTXRt?=
 =?utf-8?B?OWxIRVFqL0lTZlQ5d0MySWU4VkQ0NFg0b1l4Z1hkb0JWWjhnb3pwNGxadUR6?=
 =?utf-8?B?dGQwMHVOZTVNek1iNW4xZmd0Rk5XYWVqcEpxWDNUZzN1L0QzKzNucXJOSCtr?=
 =?utf-8?B?QTQ0aVJhS2psNStyZkdWc214OCsvZW5FWjhUL1BYenI0Ni91Tlo4ZlNmZEl6?=
 =?utf-8?B?NVg0M0V6MXVqSmtGaXBEaGtKc1RFVU95eFFVakwwSU5sMVZzdWtRYTRIV0g1?=
 =?utf-8?B?YVE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8db7d632-885b-4321-b60d-08de23aaeb01
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2025 18:23:32.8863
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: JwPalJgN7yTC4WoSkSfygYOk6tOfA34C4z2oyPFVQA0BCmZjJnJTIEFv9buKnqG8pPNRHlog6eXdFdsANTnGkDoAOcB/OAjAifWDemx1VGU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR03MB8140

On 14/11/2025 4:32 pm, Teddy Astie wrote:
> A 4K page appears to be able to hold 128 ioreq entries, which luckly
> matches the current vCPU limit. However, if we decide to increase the
> vCPU limit, that doesn't hold anymore and this function would now
> silently fetch a out of bounds pointer.
>
> All architectures have no more than 128 as vCPU limit on HVM guests,
> and have pages that are at most 4 KB, so this case doesn't occurs in
> with the current limits.
>
> Make sure that out of bounds attempts are reported and adjust the around
> logic to at worst crash the offending domain instead.
>
> No functional change.
>
> Reported-by: Julian Vetter <julian.vetter@vates.tech>
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
> v2:
>  - check and report instead of ASSERT and eventually crash offending domain
>
>  xen/common/ioreq.c | 27 ++++++++++++++++++++++++---
>  1 file changed, 24 insertions(+), 3 deletions(-)
>
> diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
> index f5fd30ce12..a2a2dafe85 100644
> --- a/xen/common/ioreq.c
> +++ b/xen/common/ioreq.c
> @@ -100,7 +100,14 @@ static ioreq_t *get_ioreq(struct ioreq_server *s, struct vcpu *v)
>      ASSERT((v == current) || !vcpu_runnable(v));
>      ASSERT(p != NULL);
>  
> -    return &p->vcpu_ioreq[v->vcpu_id];
> +    if ( likely(v->vcpu_id < (PAGE_SIZE / sizeof(struct ioreq))) )
> +        return &p->vcpu_ioreq[v->vcpu_id];
> +    else
> +    {
> +        gprintk(XENLOG_ERR, "Out of bounds vCPU %pv in ioreq server\n", v);
> +        WARN();
> +        return NULL;
> +    }
>  }

While I appreciate this is fixing a latent bug, it's very invasive *and*
needs removing as part of changing the 128 limit.Â  (i.e. its a lot of
churn for no benefit in the meantime.)

Xen cannot release in a position where the user can request 130 CPUs but
explodes like this on the top two.

Furthermore, the WARN() isn't ratelimited, yet this is
guest-triggerable.Â  What we need to do is borrow WARN_ON_ONCE() from
Linux for cases like this, where it's obvious in the logs but can't be
triggered repeatedly.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 19:18:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 19:18:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162857.1490344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vJzJJ-0004f4-Qc; Fri, 14 Nov 2025 19:18:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162857.1490344; Fri, 14 Nov 2025 19:18: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 1vJzJJ-0004ex-NI; Fri, 14 Nov 2025 19:18:17 +0000
Received: by outflank-mailman (input) for mailman id 1162857;
 Fri, 14 Nov 2025 19:18: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=Irg0=5W=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vJzJI-0004er-MC
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 19:18:16 +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 a9ff3338-c18e-11f0-980a-7dc792cee155;
 Fri, 14 Nov 2025 20:18:14 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ2PR03MB7109.namprd03.prod.outlook.com (2603:10b6:a03:4f6::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.18; Fri, 14 Nov
 2025 19:18:10 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9320.018; Fri, 14 Nov 2025
 19:18: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: a9ff3338-c18e-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NiYVIT1OIl0wu3A0Lqe0tZsDuHCq/N1oZDgkM6SBb9gOWla1XXpZKBhCnKBTwibsS6mjWuBMzJxpIs5daDwDWa7A3lMIFJ8FmXc3uNr5KQ1lov19tU6upDQkja9YqyG+SWyrjzG+t1PFMt45sCbkgLZ9cthoocTk8Nd7e3gMdrdkZqUDDuWg+SKL+kzLvgwJAgMZHPztQJEF85PVtIc1igvUY6vsHzWbFsvm8pm5VWdpOP8XBl52bF3nzxe/khMWbXR+hYPTtocxk9Owh6hWgeXynOJtRNVA3sTGq6lk1azpv7wFrGh92V82HlfdMfqqb1jRLy5tY+Ls8pN6JEhe7w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rQEvbcXV8VoeazPVCg/5qsZe8BLzxALytFzqYmqOnWk=;
 b=gUK0Dnn2bjJNNGA3tYrR2cEq8Dpwyqz601c9k1Pm2Hn7XPiMXeE4w2r1YmUFGA9ERJldXV4bxuRwcInbYOnvlxwA1TKi1R/WFlLVWK79VqICb8gNZDeYWCCUNwp7z+Px/TlwEBfFVVZ/8SBm+Sl4eVIggBTPlxzoGjVzL0lWsk2PHzSFjQNkSPWizoapiHYcfulZUYdBSgJqwX3uXHQNbATHzn4qlQoXktD2RjI/dFLkB52IJQG+j2vsPCEdNc4ZPi16dFW+OEQhLsMJ4LRPitEUxN9ozYS66QLxUCXQ6o/ECKCnymVarS1WwulYAnNQQ+vIm2eG4aVleP+c1zQ3og==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rQEvbcXV8VoeazPVCg/5qsZe8BLzxALytFzqYmqOnWk=;
 b=OvwzpsktgbuGyLOvOi+egxtLefSXlpK84H5+mpEQvHupz4au8TReS21zcbhkO5ezv07ewRtPlcqf0+Sqjd8O1TZt8bqVnZoll5TqGfB7UhQxiVh0eHdt9ylEo+TnPZ8sF8qrZ+1edoLrJhsf+3Uga41L6GkQ6WoMUxCdbGUAguY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <8f8a769d-95ea-4554-8ee0-d6247f583e37@citrix.com>
Date: Fri, 14 Nov 2025 19:18:05 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8] xen: Strip xen.efi by default
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Frediano Ziglio <frediano.ziglio@citrix.com>, xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Frediano Ziglio <freddy77@gmail.com>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <20251113154358.28704-1-frediano.ziglio@citrix.com>
 <6729f3d9-618c-4dcd-93f8-d02ca7cea017@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <6729f3d9-618c-4dcd-93f8-d02ca7cea017@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO3P123CA0019.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:388::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_|SJ2PR03MB7109:EE_
X-MS-Office365-Filtering-Correlation-Id: 5f98cc58-a421-4982-732d-08de23b28c84
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|366016|7416014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NVhIMTJWcTlWQm9ERjRuUDR2blU2Rmo0MUtqdmpGRDZtQXdJUmZXYVNIRkFp?=
 =?utf-8?B?THVHUEVTdkMxV3dFOXh0YkVuM1hHd0lRL3R2UnVsQlNCL1pxVWdLSmZwZ2NY?=
 =?utf-8?B?OUFPYUlabWxNNFd2aGJ2bFRkQ0ZqbWVIUHVkcGNMODAxOUlFelViUTNqNWhJ?=
 =?utf-8?B?dTYxTFdzRXI0bzByS0pnRTdnSXYzOExSTUIrMW1wYWI1YklGT3ExK0twcWxH?=
 =?utf-8?B?Y3dvNkZFSW1SeVQrbHo0blhxdUlWRDFxNEE4VlZTSHZOaTlEaEhzYXNHNmsw?=
 =?utf-8?B?b2hjdjM1UmRXbDlidTl5aE9UZUVrVmVDWkhJMmVueFdGT0Y2WWNibExaeS9Y?=
 =?utf-8?B?aFpITlN5VVFWdGxFUjBLY1pTdWIzQ20zSFNzREVIbVZORTJET205VVp5QWNR?=
 =?utf-8?B?S0NRdk5JNFZ2QlhXRWtaNnZWekFtM01pVkpUeXVldmFCT0RqNEpDNTVyRURK?=
 =?utf-8?B?dWZmK0VQenU2bDVNd0ZlZ0ZIOGpMQ01OOTBuVDczSFFMTDBadlJ1bk5MWXJa?=
 =?utf-8?B?ZEdnNTlpWjFmdFV1NWduUWJIUWtFbi9xK1F4bk91eXdLRDE1b0o0T0Z6NGI2?=
 =?utf-8?B?NVA1elhwaXI4VndlQUYvVTZCdHlTMnRTSXR5ZU9kMFRpc21vNXdzSTBUL2g0?=
 =?utf-8?B?d2d2QWU5eWprR0N4MWxFK2ZGdkZSK21HZWlzU0k5Z3pFbjc4WDJYM21ra1kr?=
 =?utf-8?B?VFJMWUlPZkpiRjhSVnF5UFVyKzBLZEg5RitZVGhUTEVkdVJFbXFxdW9rUkpK?=
 =?utf-8?B?cFI4MGh0OUlvaXlVcDNzRTJYa21YOWxTU1poY1VtZDh5dmJ4SFR3cnFEalRy?=
 =?utf-8?B?anVSK1ZJRkIxaU1RZDF2cGVLc2k0Sm9OMHBWT0FTUE9ocVNETlQyMUhBU2N5?=
 =?utf-8?B?eXdBTkxiVEMvZWQrcTNUaDF6S3lndXY5U3NJU0RGZFNNUExqUmJKTmp3cmN3?=
 =?utf-8?B?OG9pZ1hHd3BnSTQrWEE3ZE5aREZqbjBNOWhSTnU0d1R6cEVJRkxLZjd2bnRH?=
 =?utf-8?B?alVqV2dzRXdNWjVjNGduckdJcEJyT0JXRnpkY2M2Y1VSbUhQeWJZM3p4OTkz?=
 =?utf-8?B?ZzNMTHVOVWRUM3BvY2ptZFpYY0c5WmNIcSt1Ym1QVEZ3R0g3NTZlcDJ2NS9K?=
 =?utf-8?B?SU1XMzl4ejZ3ZDIyaXFKN2l5NDVMZDRRdTBHTnc5TmZEK09FbjNNT3JZU1hF?=
 =?utf-8?B?YTZtWEJGTG1RMlVhRStLK0ZKSlpUWUw2OWszbFV3amhBVm5ablY1ME5jU1hO?=
 =?utf-8?B?ajNzYU5pa3J4clZjbTBLRW15aGxOYXVDOTd6SitieWEwQTloSGR1YnVhL0Vh?=
 =?utf-8?B?U0tNSUJKMyszbGFqd0svSHFVVzJ3SG9zZ25FR0NVUVNnQktpSSs2WU00WDEr?=
 =?utf-8?B?OGxzQ0Uvc1JvdE8vWVZuWGpRRnBIS1dmNWVQSDV5V3BlVDJhTlFDRi8yUlFE?=
 =?utf-8?B?VlZEWGdMcjdFNVl5QnZYL0JSNzNvbTBQbHA1OVc2SHgzNjcxOVNzdk9zazlV?=
 =?utf-8?B?ZCt2Sytyem9GZVk4SnFDUlFPdUd3OFgxSCtzdzFoWnhzMEIvUlBGRnk0Vzkx?=
 =?utf-8?B?WlRoTkd3U25PVnA1ekdIa0JFajNGK3R1VzVoSDBVSUROVEx6dTZmZEVON1lT?=
 =?utf-8?B?dy9ua2FwRDBZdFhnSEpMTndIN2Fkc3MrS3pNa3hEVDhQSFVPMFQxWks4ZXFF?=
 =?utf-8?B?M3NyUkg2bGo0NHRrMmp5MjFIdG9OeHd0bHF5TDQ2UGJia29GWEp3RHExTUFD?=
 =?utf-8?B?d2xxbFE3SUMrcjVNQzJJR3NtNVRhZDJZcDN0MXU3RzBSK2xoNEU5U21BL0NX?=
 =?utf-8?B?Z1FMZiszbGFoNkJQWGNkQ2ZzM1VsTzVUYlVZeUMyNFBkd3FXMG1VRU9pbWFI?=
 =?utf-8?B?ZFFIYnVBYW1tUXJ0REk3SlR3UnVHTk0zc1Z4bEx0aEFmOXY2VUtJRVJCTU5F?=
 =?utf-8?Q?S0tqrbBvpAVdp1ldxKYElvuHj1b9wcay?=
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)(7416014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?b2tRaFVKSkxhNENTa2ZDVC9NR0FwT2FxcGEyMGJqOHNVOUV6UlZHQXJ5bWIr?=
 =?utf-8?B?WjJYQ1ppeEZTc2FIWjhhTU9WbEYrRUs4ajRrRWxyVi90ODk2WkFUUThmOEtS?=
 =?utf-8?B?UTZtUU9EVHhpK1pFV3pVSEJiM1VsaWJPMUZCU2E2YUVESk15d24vTHcxWkJL?=
 =?utf-8?B?TnkrK0hCeUdkNDFZM0ozdWVnc2tNSy9Pd1FwUGlDU0FXcnJYOGlFdCt1dTVQ?=
 =?utf-8?B?bnQwWjl5bWNRTzREY2ZGQ0ZzWEIxZXF4MVorOE1heWMxWUw2ajZkUmZHaGJQ?=
 =?utf-8?B?ZzNtMDJnTnFjNWZBUWE2bVFZcEVIbExtQVhGaWlNWkxrVnVNR3pOZWF6Zmh3?=
 =?utf-8?B?aDk5WnBaamxObHhmbzNBLzNyd0FheXNDZ2xtWS9WcDFKTDA3UEVRV1ZBUG5S?=
 =?utf-8?B?aHJQMzNQcUpXT2VJMmQ2a3dwclJ1VWw2bWVpbFNGemsyeTE0aytyZ2ZSQUw0?=
 =?utf-8?B?eW1XTUFWMUlFSmtaVkpMSkNUV1RGT0V3SUxMUGpWQUw3OXd5YTNtZmVKWUM0?=
 =?utf-8?B?MGF2YkhVTkdqbnZrQ3J6Smk2cUZPcWJNODRZQzRCVEdQS2cwbTA4QndQWmFr?=
 =?utf-8?B?bUNJTjRGd2Z0Sk9NSzdtUU8zSHF3amFvRmg1dThiOHVNbXJFU0xQelVxeFA3?=
 =?utf-8?B?ZWRVaUxML3ZZWTlZQ3JBaVY5cW5iS09aODE1NkRuVy93YjFuNjJUUGFFV1Bh?=
 =?utf-8?B?SFdBWmlWUE9KUW1WUHJJRGpQSVdmeUlvaDgzcWNQVXJ5Y3RDNUJpVFh5aC83?=
 =?utf-8?B?dW0ySWowVHR3WjFGY1VyMkdiL3FRdmVqWUdNa2xDMUNDQVpqakpZYm1DanBB?=
 =?utf-8?B?OEdyeCtyZyswRVFQWk1VMkhMQU02enBpN1ZUQTZSZGZMd1ZTcmZhTEFTWmZV?=
 =?utf-8?B?SUFvUFJxemlVS2l1V1dHeWJxOTYwYjZib3hWS3Z2TXlVSDhWNm9OR2JIR1pT?=
 =?utf-8?B?alI4bngrbnkxZGpDamd1WjRKZzF2dTBpY2llNUYwaU5hSy9oNUhHSHF2VFJs?=
 =?utf-8?B?SFNyZHZXcjZHWjhwZmtKMjZFMFd3dUtqZ3RISHE5dW0wUlNGQjF1ektVbHly?=
 =?utf-8?B?cE03dGxpaVFFdFM5N0s0L08wYU5lMFVjTC80cmJTcGFyY1VZNWQ0aHViMkZK?=
 =?utf-8?B?OEVQK0NWV1pZdHVpR0dnWjY4bDErTkFsMDJOT2l2MjdrK3NuVjZTTDV3cUw3?=
 =?utf-8?B?YlBDVkZjWlk1d0QvSjczazZYVkZ0VDlvOTA5U1FXaERtd3RIcm16UkpPRmxP?=
 =?utf-8?B?dG1IWTBhR0ZaeVNlS24rZEJPU3Z1ZXMyRWU5VFBpcHJPUE8raVI2YzdDaFR6?=
 =?utf-8?B?OWhyOUtnT1BBMi8wUXNQa2MzQXNESFV3SHZON1Rpd2x6QUEwTkFQQ05VRHVz?=
 =?utf-8?B?RWRZT3U0K20xR0Q2ZWhPTFNYakVIZVVtM3FHUGdyVy9VYWF0K0FXMTdPaXlk?=
 =?utf-8?B?TjBTa2tBVVp5MitYUGI1WXQ5SDZ1Z1ZmUnlPZEx6ajNBM2NTRXk0b3NxM2Vx?=
 =?utf-8?B?U01CRUJLMVcxd2JOQUNvV0txS0ZkaGJjNHBJREhsWCs2dXdqdkJFMXFueDFX?=
 =?utf-8?B?ZlEvb3RKRW43eU5wV2hXLzBieW9OVGVvYVdqcUs5eU1rcFF2OTFBV01ndFNr?=
 =?utf-8?B?SnNwc1RvSW15WGxVQzRKYzBocHNzY3diWFduRDdBT2pnaTFRZEJDakthNFgw?=
 =?utf-8?B?bkRkQ1h2K2FnNml4T09oV0Fsc3FxRDZqOUxvbEtDbkhzTjhjRlRRd2diVEF4?=
 =?utf-8?B?UktUNm5jaGhtSjM1eXU5SWx2dlNGTGtxUzlIZndzWWw3NzRwblBBaGZyelBU?=
 =?utf-8?B?Z0J6M2g3N3lTeDU1dUcvN28vbkszZ2Zma05FbDBLOTdlc2JyUlFIM2lqQXpr?=
 =?utf-8?B?eUJUdUtuYjIrVDY3QTAvNjJ6VDBVSlhLNkplc2hOeTVnRW1xUC9pSzFQNEk2?=
 =?utf-8?B?UzJud0hlb3FDeFQ5V055RjdZYmIyTFpmTUVGWC83c3k4WHc2VGd5U2g2RDBV?=
 =?utf-8?B?K0xtZHhFbUZWWWl2R2orWmJIdCtRYnBxbnNCTCtKRmJ6WkJmanNMUm5McENF?=
 =?utf-8?B?TkI1TDhEV1NnQkN2Y3lNSlBMTlFsUUtwOUV3UkpaL2FuZ2NKdlJ3clg4Y1h4?=
 =?utf-8?B?SjFWRFE1ZWQxNDhoVVYySFlJWjc5a3pkSVN1SWtESFppdlNlemg0ekxNcW9V?=
 =?utf-8?B?OHc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5f98cc58-a421-4982-732d-08de23b28c84
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2025 19:18:10.3533
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 10sgUmrnJaiBR8iC42TBFhEmSleKtaP87WLPDi/OXd3efV/wm0MUz5hq6iDN84JzmNQjd/QfTmtf6hqs5ZOPA8zovyHpAYN9hKE7mdKatIQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7109

On 14/11/2025 3:40 pm, Oleksii Kurochko wrote:
>
>
> On 11/13/25 4:43 PM, Frediano Ziglio wrote:
>> From: Frediano Ziglio <frediano.ziglio@cloud.com>
>>
>> For xen.gz file we strip all symbols and have an additional
>> xen-syms.efi file version with all symbols.
>> Make xen.efi more coherent stripping all symbols too.
>> xen-syms.efi can be used for debugging.
>>
>> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>
> Thanks.

Thanks.Â  Unfortunately CI says no.

Ubuntu's 20.04, 18.04 and 16.04 all fail:Â 
https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2159622869

>From 16.04:

2025-11-14T18:01:51.192964Z 01O strip xen-syms.efi -o xen.efi
2025-11-14T18:01:51.198151Z 01O strip:xen-syms.efi[.init]: relocation count is negative: File truncated
2025-11-14T18:01:51.198166Z 01O strip: xen.efi: Failed to read debug data section
2025-11-14T18:01:51.198169Z 01O strip:xen.efi: error copying private BFD data: File truncated
2025-11-14T18:01:51.198932Z 01O arch/x86/Makefile:207: recipe for target 'xen.efi' failed
2025-11-14T18:01:51.198937Z 01O make[3]: *** [xen.efi] Error 1
2025-11-14T18:01:51.199616Z 01O build.mk:90: recipe for target 'xen' failed
2025-11-14T18:01:51.199619Z 01O make[2]: *** [xen] Error 2
2025-11-14T18:01:51.200402Z 01O Makefile:600: recipe for target 'xen' failed
2025-11-14T18:01:51.200409Z 01O make[1]: *** [xen] Error 2


I find it hard to believe that the relocation count is really negative,
and given that newer binuitls works, I expect this is a binutils bug.

Nevertheless, we need some workaround.Â  Given that the previous
behaviour was not to strip, I think we can reuse that for broken toolchains?

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 14 22:04:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 14 Nov 2025 22:04:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162874.1490355 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vK1tW-0002Wb-4H; Fri, 14 Nov 2025 22:03:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162874.1490355; Fri, 14 Nov 2025 22:03: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 1vK1tV-0002WU-Vz; Fri, 14 Nov 2025 22:03:49 +0000
Received: by outflank-mailman (input) for mailman id 1162874;
 Fri, 14 Nov 2025 22:03: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=UC5Z=5W=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vK1tU-0002WO-Qz
 for xen-devel@lists.xenproject.org; Fri, 14 Nov 2025 22:03:48 +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 c8b2e3a8-c1a5-11f0-9d18-b5c5bf9af7f9;
 Fri, 14 Nov 2025 23:03:44 +0100 (CET)
Received: from CH0PR04CA0083.namprd04.prod.outlook.com (2603:10b6:610:74::28)
 by DS7PR12MB5813.namprd12.prod.outlook.com (2603:10b6:8:75::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.15; Fri, 14 Nov
 2025 22:03:38 +0000
Received: from CH1PEPF0000AD7F.namprd04.prod.outlook.com
 (2603:10b6:610:74:cafe::71) by CH0PR04CA0083.outlook.office365.com
 (2603:10b6:610:74::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.18 via Frontend Transport; Fri,
 14 Nov 2025 22:03:21 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH1PEPF0000AD7F.mail.protection.outlook.com (10.167.244.88) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Fri, 14 Nov 2025 22:03:38 +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, 14 Nov
 2025 14:03:37 -0800
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, 14 Nov
 2025 14:03:37 -0800
Received: from [172.28.100.6] (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, 14 Nov 2025 14:03:36 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c8b2e3a8-c1a5-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=luUjtaDArpkZ9ZXHOsxuOhKcVwTIpU8YQO2kmgDXlneP2eNCdT9qtBMufwAJfNnkRI9P5ZRDQlvUYVuumTk9HE5CovkVNKLcCwCfODN8nm8vA31zG2U+fPk2UxW1zCj0SQizXWdMJERjuiaRFcHdvTWb5Zeb5+O4JE+Y+QxFPL4uXtK8amT8MItpSM9NUVr5D0r7Qp83VvegVvYONIwoyuFq2v+8metEH9bhC2nPdFUyCLEc4GYr3kFP0sDHq+eHteTqfBMV/k6j08ar7GUnxvxG4qM2/nCpBDgmMdhADQEvEL8047t3nzQmkNaRdOQhhRU661krudKbA7pevoGxLQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1UVjjIpebxIDHSiTuv5xTrYzyOfC+bHZHWpJ9uY0R0A=;
 b=ctTiibpPLYC9QN875W+vGh18LhGGOIHzdgVwvz4KBvXGleclkjI3+Jy3jj0qXEXzyPQ23Y0muU2mEqZC2u68mmcmp7WMzfJN0AThYxWYZkpq+YuSuaEiTvG4Foq/wupjoHr14cuTYSN9rrc36Myt5VhVPjTZTrQrO1xRG3WWW72RzGtwYbUSVlZfXFedRmKMrBs0HD5MMQNM4HlQFwteXVKlzfhU1VPvlAr31NIeCFhK+ZVTQmJFQ2WHQqmJTsN1HNP5Us+nuUfMFKwWCBlCJVkRvHGhN/C6SyXZeJD97c0i9ysNbu50JBAuPBQrT7oKjNuMC5+PP/ie3Hr4c2mQIQ==
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=1UVjjIpebxIDHSiTuv5xTrYzyOfC+bHZHWpJ9uY0R0A=;
 b=k9Yp7m5EVGP7hvo8nImVdQ9HKKM1Zb/KRkA01rltIWYQhyQ5ul4GESXT9dGUpshzpwYQpG7ZVmrSRNtYPcKO+dXn3m3BRHoJu/0QF7I29N166BpF9FxL063E+702kqPiirCN4dbAm6b2JE4kqAms3Zqh84AORSUhsyUrmtTBqLo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <9bb95ea9-2ab9-41e8-878f-af8de270c375@amd.com>
Date: Fri, 14 Nov 2025 15:45:48 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] amd/iommu: Remove dead non-atomic update checking
To: Jan Beulich <jbeulich@suse.com>, Teddy Astie <teddy.astie@vates.tech>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	<xen-devel@lists.xenproject.org>
References: <cover.1762961527.git.teddy.astie@vates.tech>
 <b0e81bd67c3f135a4102d12ed95a52ce56482992.1762961527.git.teddy.astie@vates.tech>
 <367dc942-7113-46cf-9c54-fa77dc6b4c53@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <367dc942-7113-46cf-9c54-fa77dc6b4c53@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: CH1PEPF0000AD7F:EE_|DS7PR12MB5813:EE_
X-MS-Office365-Filtering-Correlation-Id: 4d8ead4d-9eae-4565-4582-08de23c9aa09
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?ZWtjRUZ5M0UwYVg3d1hONGtiYXN4RW55WGc3V2xyWUowelcrUnFWck96dVdq?=
 =?utf-8?B?alNRVWFnb2VENXZNdDJmdlAvbFczK1pkbzJtYjVKOVFzMmxoYlBMVCtFZmlZ?=
 =?utf-8?B?WkpFdnVObXpNWXNzaktxN21nTTlaUlpUMldUZWJjMHd4V2dDTWh0T1ZVbmk4?=
 =?utf-8?B?YVFWZ2Zia1lCbFBOc3lzejRmWGVSRHUxMHpqR0xrYU1qTFExTkx4ZDF1VGVj?=
 =?utf-8?B?TkEwc1dmTkhmUjgrd0c5ajdveW5hUS85b3U1U1BlTXRQVFc1bmJpWklvdmcz?=
 =?utf-8?B?bVNJdEFXdUJrZW92cDgxVUZPMlJFWDJ0RHFkRHhtSC9HbzN1Ti9oS25yZjl2?=
 =?utf-8?B?N05RZ0VjWmRrdjF4d0dYUzIrVytwOHB5Y2RxbTM5dE4rancxR3RmbkxxRlZR?=
 =?utf-8?B?Z1dRNXdCdktxK25pbzZoeDkzWHFDUWhLR0t1aGxvWk1wbVQyM2JLV3o3NDM1?=
 =?utf-8?B?SjlOSUhWdWJKU0tyYWJvQ1ZaMWJHSmRvM0VkQmh2bzZhNGQzb28xUnNkdGtv?=
 =?utf-8?B?d0NOUFlZTWxVZXh5QzkrWktFNG5hL0VoVXA1U0p1eWJ0ZVhRR1JvUHBSb21Y?=
 =?utf-8?B?K1Niblk1MTFVbWwvMWlVNzVzVHJNT3hIOUN1aEZnNWpwNk9xWTBZR05kUmhT?=
 =?utf-8?B?bll3aFpFRnhXclE1L0FnaXFDSVVMOS8rV2ZHZTlaeDJOM1p4ZTgwUFoyZUND?=
 =?utf-8?B?c2p3N2FGdjZGa0tUUGdzd2JSZCtNS0VlQzFEbkZCZjQ2R1Y5WmdKMXFVdGgy?=
 =?utf-8?B?cGdMazdHdnA0RTh5ZERmVmFDdjBHTWcvZDFhWEw1VnFGUC9HRW9rdkhSeGNY?=
 =?utf-8?B?d3l1NDB2ZHBXaW9Wb2tURklxQkY2cU8rNkdMeUFpM04rU0NxZ0M0SDg2bkU5?=
 =?utf-8?B?YkhCd2VtZm9lczRkcjdTNGYwT1ZsVHVPZnJoeWYydjFyVVdHRjlKdVVBVWtq?=
 =?utf-8?B?U21mWXE5ODI5SlNrNGJLd2JPaHRhWFB0ZTlvQnU2eURvVVk5dGluR3Y1TUV4?=
 =?utf-8?B?RjZFR1JhREg5MDJxYUk0dFI0OUNNK3psUjhXZWo3SUdDYVFYNm9UM1F4blhz?=
 =?utf-8?B?QlF5ZTJSR0x0NVlPNGU1N3RYQUJSWGNLcG5EUitOT04rSHgzSVBTSGE5dzlr?=
 =?utf-8?B?TkhaWmNDM0EzMnFSYUpJbllPN2FTaWpUdlYvUkFrN3g2ZWZDZ3dSbG0zUEJy?=
 =?utf-8?B?REoyU3NHUmROa1lsWGMwbGVFTlB3L2RoS2tCQmh6RnRic2hvUFNyZVp2dFUv?=
 =?utf-8?B?ejJuUm1US2NUb3lZdTFYc0lSUmdFTzlqeGNwNFFpTXQ3M2ZmT1o0WVV4Uzkw?=
 =?utf-8?B?dzBBM3pURC8veHB6bm1MV3pOQ2l1UDYzUU1ZZHJkTjJQclVYZmN4WE93K2VE?=
 =?utf-8?B?a1FZVFBYQ3FxRzF3QmY0SmIvZWRQUzcyWHd5Y0dBVC9sS1RxSnlzWGZMcmdK?=
 =?utf-8?B?ZDZaWEVvVFlWVWhNYzQ1TDBZYjRwdThHSVd5SVVRL3NPa2lkakVuNTdhUitI?=
 =?utf-8?B?dXFXT0dvcmhiTXE4WVlNWEptc2lGOCtXNndoMCt3dGkvTFZBT1cxRWZPYzZT?=
 =?utf-8?B?ZHMyZkFZV2JxY1hPTnFsUXIvQkpseHZBZnN3S2lkTmdtc1FpaWNCaHBvUnRs?=
 =?utf-8?B?VktMVzRHUCs4aWp2TGI3QkkxTkNJcTNVVGtWTTA1bXJHakM2SmkyNDFPeUhw?=
 =?utf-8?B?TUlCUVpiS0tFakMvbm5ZUFJLQllnSW9iQ0daSGdEQmRFQ1Z3T0xTclZvcmFE?=
 =?utf-8?B?MTFqVXdDeE14WE9SclRnK0U2VFVBU0tsRFlxUm80eXgvdWlaaXNEUWVQQzht?=
 =?utf-8?B?TnNYL1VwWUlBZXlPclJKRlhOOGdtN0luRERnd2NWSmhaY0pMTFNnb00yWFUz?=
 =?utf-8?B?TExLMDZiWmM3YW1lUGF6dnRITWRjU3V1SEF3ZGErZzZVUEhVc2xQQWFMWHg2?=
 =?utf-8?B?TVRJTkdHYmN6Q3BGWGphNm9sYnlwaWVTRk1KS0tiZUZlQ1NMdWo1S1hTbGJs?=
 =?utf-8?B?czdqTmJRTkYwZGovbFhPOXE5ZTFQK2lTWk1wYWRUaXBSdlo0eklHcWRHcVQx?=
 =?utf-8?B?dDhvN0hQWFUzQldDcWlTOVhXK1FYSGx5WEhwcW5aZXduR1FMM29lcTR6bTV2?=
 =?utf-8?Q?mn28=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2025 22:03:38.0766
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4d8ead4d-9eae-4565-4582-08de23c9aa09
X-MS-Exchange-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:
	CH1PEPF0000AD7F.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5813

On 2025-11-13 06:37, Jan Beulich wrote:
> On 12.11.2025 16:37, Teddy Astie wrote:
>> When updating a DTE, amd_iommu_setup_domain_device() would check if
>> the update had been non-atomic (i.e rc > 0) and throw a warning if
>> such non-atomic update could be dangerous.  However since commit
>> 3fc44151d83d, rc can no longer be positive, making this branch
>> unreachable code.
> 
> I.e. it addresses a Misra concern and hence ...
> 
>> No functional change intended.
>>
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> 
> ... wants at least an Amends: tag, likely a Fixes: one. Then:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Sat Nov 15 00:39:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 15 Nov 2025 00:39:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162898.1490363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vK4Jv-0006Yv-B9; Sat, 15 Nov 2025 00:39:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162898.1490363; Sat, 15 Nov 2025 00:39:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vK4Jv-0006Yo-8C; Sat, 15 Nov 2025 00:39:15 +0000
Received: by outflank-mailman (input) for mailman id 1162898;
 Sat, 15 Nov 2025 00:39: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=Oktg=5X=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vK4Jt-0006Yi-0q
 for xen-devel@lists.xenproject.org; Sat, 15 Nov 2025 00:39:13 +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 7e902bf0-c1bb-11f0-980a-7dc792cee155;
 Sat, 15 Nov 2025 01:39:09 +0100 (CET)
Received: from PH7P220CA0104.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:32d::26)
 by LV2PR12MB5967.namprd12.prod.outlook.com (2603:10b6:408:170::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.18; Sat, 15 Nov
 2025 00:39:02 +0000
Received: from CO1PEPF000044FB.namprd21.prod.outlook.com
 (2603:10b6:510:32d:cafe::40) by PH7P220CA0104.outlook.office365.com
 (2603:10b6:510:32d::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.18 via Frontend Transport; Sat,
 15 Nov 2025 00:39:00 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CO1PEPF000044FB.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.9343.0 via Frontend Transport; Sat, 15 Nov 2025 00:39:01 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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; Fri, 14 Nov
 2025 16:39:00 -0800
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 14 Nov
 2025 18:39:00 -0600
Received: from [172.28.100.6] (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, 14 Nov 2025 16:38:59 -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: 7e902bf0-c1bb-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GTY35LWkMYKq0EgktfczgZ6ogN3Zn5vXVCvgJVaaoqs2xIYA/qny/DDSwh9FrpKqaEhtGam9kTN4WT+DlAyCUn6re+hHoJba8oQeIPi48Y8Db1jklbBWs0gAVIR7TZ2kiqEBRzm1YfoTrXfD5CbfYeIZ5AeLy+h3ckIbY82bmNIFMCx5IecDfSPac5yIgNW15ZJkzt+PIdK8JimLD1PgvnemXiL7QlKTXqlmOEyYSwcYICMr9l60sw23b/yqZ9ItnfsfUASdV//VSPbBvA97F4257x6pJYHzAztxQGEgXM53tbYje3O+njoCFtXuN66NJ0+IUbhlr6JzayJXHMdtpw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4QrBhMJvFc9AU5l8tuxzY/KBXfv9uFBDoGcf0mObcf4=;
 b=UFim9dZfctSMk5h1+5ZvibKoGkW4nIrAn7It+6JgJHxIF7Bpt0I/JSVx1ZHD2QO/0dhxQd37q6IIel7tlug07nC69vO7qfz6W5Wn8KgHf3NTVcn5tmpV/TSofmRUqjwLw6bQTTkQRgbjQ+TLC1L1q36pAk4nD11Cdz0fBj+0ZCNXauMlMMF9xB+Y/TCK6LHtr0sQmRncLeyHqfaE/pLJRuUP3U3Q2J0hn2USgvu56IcqEO9hfyMhiORgJJnjebtKPNPJquWL/pokc2ajE+ISGSFnayng6eXTSBp483BOG2R18mD6D5Lrg3khuUsRIfk7ZS1aHzlYjMIQbHhAeL0sig==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4QrBhMJvFc9AU5l8tuxzY/KBXfv9uFBDoGcf0mObcf4=;
 b=e3296XobzMhaoJ0MnmhwxZS1g2UY6lE/w85uVfsnZIAbUNTSHdQK9JEVUBJq3UOow7qE2E5qyk09MLJ3y1Xv9R3RJ7mVYqA7zLBxJsYvE6fIKPSxmZ5aGAbMZ7sUB8R0u0a4yOJGOpLONl0jzxldO2fjLB8egR5I83NtlcmYG7g=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <a34a7aa7-53da-4925-8428-cc20e1135f7f@amd.com>
Date: Fri, 14 Nov 2025 18:21:16 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] x86/paging: replace !paging_mode_hap() with
 paging_mode_shadow()
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>
References: <20251114144454.287224-1-grygorii_strashko@epam.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20251114144454.287224-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000044FB:EE_|LV2PR12MB5967:EE_
X-MS-Office365-Filtering-Correlation-Id: b28aea71-c1f9-4a94-4bc3-08de23df5f2b
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?SFpONVFQTVVEMVFpMkZWM283V0VFenNhaHhvZmQyVlprSWEyVUovNXExKzhD?=
 =?utf-8?B?SmZvbzI5blhOWm9uNVF6Q1RDMlE0c2hOTDhmbElGT0l3VU13NG5zUTcvMzFs?=
 =?utf-8?B?R2xGRnNtaHYxWE1rbjJRQnJac21jd3FEdDlCRm96SGZWQnlDOFEyZXhTeVBE?=
 =?utf-8?B?SkhsVXNlbzF4YjY0VHF2eWJXYjE5NFVQUFdDRTBXenZadnFjUHNOVjJRQ2U2?=
 =?utf-8?B?VWdQMytnK2xGSzQ5Y2VoQnptYm02OFdWU3RUYUxkMjM4ZFQrd1UvQkRtcXZa?=
 =?utf-8?B?a2E5NHBZcHdDVEtuWEJ4ckxHTmQ5K3JMRDg5ZUxVQ3ltZDQ4YmU5d3FwanRj?=
 =?utf-8?B?RERKVEc2SVczWXhNSVd2UFhYeGtoZm5WdXJXa1hlZnFPMnhTdzBQSEJrRmhT?=
 =?utf-8?B?THlkSEpPQUQyYTU3b0xhTk02Mk9TWWFUSEUwcUdBS05NbUFaR09KeXlybkt3?=
 =?utf-8?B?WVRyOS8waXc2SFI3SjdMdWRkMGIxR0tKcml6MmExYVlSTUROYlZTdVJXaUw3?=
 =?utf-8?B?YTNKOWdIOERCM1JZQm1ta3duT3prYmwxSUVrTWhqUXJ0RTBOdDVFMUVHWnVx?=
 =?utf-8?B?R01sTVRZUkFQNVJ6RnBnRE02WmRWOVR4MzZUVHVSSlZzN3ltYlV6VHpUZ09U?=
 =?utf-8?B?OUFEWVdmMnVOTEQ3dHhnL1o3M2g3WG5ZT0lTemxYU1BuZVphUG5YNFc1UFJK?=
 =?utf-8?B?YUVxdGhSVlQ0WDJ2VDFEVCtza2dVL1lhQUlic1NqR1lpaGNCWHE4R0xBUnFO?=
 =?utf-8?B?VGYwSC8zSjZHRE9jMlQ4SUp4SEp0NlFsMkJtYVJNTEFxT1FIenZtMUdZcjJy?=
 =?utf-8?B?US9lWnp0QXlUaG04REpMYlM5cWdkYTZsSFg4eEpNNjNoMTQ0R1JNbEt2MFk2?=
 =?utf-8?B?eGtHQ2RtWHVVOEJiL0FMOEhVb0ozTkxSTHdzZ3JBQ2o2SEh3U0VzTU9MOXBU?=
 =?utf-8?B?UjFnc2R6ZXpLTUpWejdKaU5nUGR5dlMrN2k3SHpBSkVuRUt6S3VTdW9OTU5Y?=
 =?utf-8?B?blU5Z0t6N2hjZkRKU3AzYU85Sm1zZ1V5OTFMdllXOUxJdk1FeGJuS3NLcjhK?=
 =?utf-8?B?a0w1T0oxU1BBdlpXSzhXL0FZdG5aOEtoMXRtV2U2YnFlK3d5aGlHNUFsV1p2?=
 =?utf-8?B?SXd5a2xRSUxMZ0ZPamllYkdCM3lLcTlCdkVXVjZ0djF3MmFnRHZwOElmQ01E?=
 =?utf-8?B?WWV5RWtxeG5JNjNPSXRXSEhUeGVpQVdtaWw2Rk9qQUJtdzBuNGNIOVdPL2F0?=
 =?utf-8?B?VlhvUHRQTmUwSHU2NFk1SjE4MFhXWTYrS1NXSE85c1Q0ZWk2aEo4SHQycllG?=
 =?utf-8?B?UHdlTU5pMEI4Sm9BSmpoUGZOQzByWWZQNHBjcWRzbWRuOGZmZXdFZUROcUk0?=
 =?utf-8?B?VW93SldWZms4QTZ4RjdibjdTNEJ2c3VsVCtTN04rc2Rpc2ltaGlqY2lUbldp?=
 =?utf-8?B?dXNoTjN4VWluNmFuZlRkcHBDaDdFcmk5dC9yYlZZNjdwdlFHV2tyZkEvVHhW?=
 =?utf-8?B?YzYycU1NeTBzbE1GRG0zMGNGUU1pLzJjYUpTTzc0b2hOTys4d2hTSW9ISW9O?=
 =?utf-8?B?TklPTjdGd3BMQUdWQkFubE8wNXRYUnYrUkVkdEtBVkM4QWdKN2svTm05TTN2?=
 =?utf-8?B?R25mOERvcW1YMXM3SzN4ZnA0RGZ0K0F3SmhZVHcvK2RMYTBTeU1LZWdodFRC?=
 =?utf-8?B?eTFhc0tuL1hvM0lDMDh5ekc4dXBrOVhCTTl1RHdJS0srTHN0OXVHTVZTNVlx?=
 =?utf-8?B?dHZrR0QzUm5aTFZlUWlLaEwrRFYya05Ib2RZZTRPSDdnN0hEakpScnJTVVVJ?=
 =?utf-8?B?Y1FzYzhiclJGUlVOVmFNRy9zcXorak8wWE1xWGFKM29FbXdYZEFwekNheFNn?=
 =?utf-8?B?Q0hUYWNOSnU3eGlKczR5WGttNWNaZ2k5bGJKSHFEQy9wZUltdDFYN3luYnVa?=
 =?utf-8?B?MEdsUGNlWW4xWGN4ZDdWSlU3dXQzbmt0Qk16c09OeTI1b1kvWnJGTGpnS2VL?=
 =?utf-8?B?cTR3SldsWXBJb201R3RoZFR3YmNuZkZYakdJMURLNFU2R1o5MHdFWXlXSFdn?=
 =?utf-8?B?d0N3WXZNMlVGbFRYMEFGZElsR1ZFZW5vZzhBVCsxNXZnMUZBVFoxNjdER3RB?=
 =?utf-8?Q?3vlH5sHA6zORmnKpJcpChawAF?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2025 00:39:01.3204
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b28aea71-c1f9-4a94-4bc3-08de23df5f2b
X-MS-Exchange-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:
	CO1PEPF000044FB.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5967

On 2025-11-14 09:44, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Now Xen supports only two paging modes: HAP and SHADOW, so
> !paging_mode_hap() is actually means paging_mode_shadow().
> 
> For an abstract, future case of there being a 3rd paging mode it is also
> better to explicitly mention checked paging mode (SHADOW) instead of using
> negative check of another paging mode (HAP).
> 
> Hence, s/!paging_mode_hap()/paging_mode_shadow() which also allows DCE drop
> unused code when SHADOW_PAGING=n.
> The !paging_mode_hap() in hap.c not changed as HAP is checking for itself
> to be enabled.
> 
> Inspired by [1].
> 
> [1] https://patchwork.kernel.org/project/xen-devel/patch/20251111200958.3576341-3-grygorii_strashko@epam.com/
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Sat Nov 15 06:23:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 15 Nov 2025 06:23:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1162914.1490374 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vK9gz-0002ND-KI; Sat, 15 Nov 2025 06:23:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1162914.1490374; Sat, 15 Nov 2025 06:23:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vK9gz-0002Mx-FP; Sat, 15 Nov 2025 06:23:25 +0000
Received: by outflank-mailman (input) for mailman id 1162914;
 Sat, 15 Nov 2025 06:23:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aqlM=5X=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vK9gx-0002Mr-PJ
 for xen-devel@lists.xenproject.org; Sat, 15 Nov 2025 06:23:23 +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 94b4bc9a-c1eb-11f0-9d18-b5c5bf9af7f9;
 Sat, 15 Nov 2025 07:23:21 +0100 (CET)
Received: by mail-yw1-x112f.google.com with SMTP id
 00721157ae682-786635a8ce4so23589817b3.2
 for <xen-devel@lists.xenproject.org>; Fri, 14 Nov 2025 22:23: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: 94b4bc9a-c1eb-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763187800; x=1763792600; 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=FJ2y61QwBwP4GyAg3QVko/gFVDcVKUY9ce9QUrVZDDY=;
        b=N5K5CoeoQKOFdzGjYC1KSGac0ottZg3AThuHBNyzIn9RekHFhnh0leTlRj1vuEiNwI
         gGoPmrYnqd/g/QnreJpPr1zj53sZT4O8kJF2K2yj6UV7k/xF2kuETLbvvp8X2s5kNEku
         SFTqs8NVxYY64basAFbswV6fr9e54yw9UieIZ4b23/mIx9n4Q9Rxe0eceerAJDJ0zK41
         4iSCWOGCUMXUsySZz1PWrexbL+8Nu55lrXUjdx3aS5DRz8tfWyJHPir41Cc3gegggwub
         mTVcVzeiK8BhMr8CEMSUVs9gO/WLa12/QFQ9s8RUHQwrRZ2uZCLtmUSjZadQVYg9dSq3
         HZKA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763187800; x=1763792600;
        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=FJ2y61QwBwP4GyAg3QVko/gFVDcVKUY9ce9QUrVZDDY=;
        b=n7xZU3r5gyFaJqsFjMimTCNdSulzixDMtg0tj5iXujRZtIoSzfy8c0wWYGZDL6EDff
         pOChwMcYyi3NJhIWiAp8pfizJVivH+oIqLiGRCkReOEzt2Ct1lj+R4/7QYFFyCG7U+g8
         dnBYTFpmgPwi06ZWfLBGEI/hu2aitZX+sGYlQLH5/DfNu8Fil6JXWrZErGFr+8BL2YqG
         BrHB8LxhBWZwEoIW7llho9I8r1CPN67AlUxonR0owt3wpmMkNHdB6aPZyiDysj0YwXYR
         rLFkY9Q8nj0avXbZ3kdAWYkm638rCFhuHz/QNvpmZelAP8twa/YPmKphN5TTD8hX6uxR
         pjPw==
X-Forwarded-Encrypted: i=1; AJvYcCV1VSgdJI0Rqad96X1sdI28pMLUhZ6zBlKsVC8bpet+wWtAZYX5KSlb5/Yfmk5hNEOoQYqPJqgXeLk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwLr1YZKxAroQPbA5c3ZMDQhkBdW350KdGSD48Suj76MujSc6Fl
	HwsTnN0xYX1dJagvWUOdRxObhvvCTE8+EC9rWSvN0zsBEPYFFLIuTYecstVGmtM6GLvKiTGpHJu
	Os4P/POfoUYs/XGrMJ34V1C3kwUn3E1A=
X-Gm-Gg: ASbGncu75sHzqXi/AUkKs64wimC94nb8mL3RU4cUm0s7iYM3tcO27Ml6GOE7t0SDsq2
	Tr7Z23NPlONGLENfhNZvkTpNnoRXT4fSJVKuYFo8HoHsJekwTmXOrJ+1SVCmFVRv7Bke+8q+6O5
	s/zYCO3uQwtiVh+pi/J4dFDNxMmQdvNgh4epiev1GBAcczJTzLgC3Dl/oUQBMvCMorTJE92lMe0
	a+vFyvfvvQlq0Et2VTJGUiCzHNWurFjprXtstWU2jHtw+tARnFMAnyfmUSc
X-Google-Smtp-Source: AGHT+IE5yt15o7yFmkSbTtMqG+hbN4FCKFGZhE9D0XAg+u99VJsuFTT889TgY0lY0OJgJG8KPABt9sjHMgndiuM57qc=
X-Received: by 2002:a05:690c:a79a:b0:787:fec5:7090 with SMTP id
 00721157ae682-78929e3f56emr37690307b3.10.1763187799865; Fri, 14 Nov 2025
 22:23:19 -0800 (PST)
MIME-Version: 1.0
References: <20251113154358.28704-1-frediano.ziglio@citrix.com>
 <6729f3d9-618c-4dcd-93f8-d02ca7cea017@gmail.com> <8f8a769d-95ea-4554-8ee0-d6247f583e37@citrix.com>
In-Reply-To: <8f8a769d-95ea-4554-8ee0-d6247f583e37@citrix.com>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Sat, 15 Nov 2025 06:23:08 +0000
X-Gm-Features: AWmQ_bmU30pKVwITGKKBYza3lhINdd4lGPLiZ8i2QtdUFIRM-pceOAFSb_bKknc
Message-ID: <CAHt6W4eDDm-fNUB7W1Zgj+x-bkK2fxTB50C38T4Uy0_Ofy_cww@mail.gmail.com>
Subject: Re: [PATCH v8] xen: Strip xen.efi by default
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
	Frediano Ziglio <frediano.ziglio@citrix.com>, xen-devel@lists.xenproject.org, 
	Frediano Ziglio <frediano.ziglio@cloud.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Demi Marie Obenour <demiobenour@gmail.com>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Content-Type: text/plain; charset="UTF-8"

On Fri, 14 Nov 2025 at 19:18, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>
> On 14/11/2025 3:40 pm, Oleksii Kurochko wrote:
> >
> >
> > On 11/13/25 4:43 PM, Frediano Ziglio wrote:
> >> From: Frediano Ziglio <frediano.ziglio@cloud.com>
> >>
> >> For xen.gz file we strip all symbols and have an additional
> >> xen-syms.efi file version with all symbols.
> >> Make xen.efi more coherent stripping all symbols too.
> >> xen-syms.efi can be used for debugging.
> >>
> >> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> > Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> >
> > Thanks.
>
> Thanks.  Unfortunately CI says no.
>
> Ubuntu's 20.04, 18.04 and 16.04 all fail:
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2159622869
>
> From 16.04:
>
> 2025-11-14T18:01:51.192964Z 01O strip xen-syms.efi -o xen.efi
> 2025-11-14T18:01:51.198151Z 01O strip:xen-syms.efi[.init]: relocation count is negative: File truncated
> 2025-11-14T18:01:51.198166Z 01O strip: xen.efi: Failed to read debug data section
> 2025-11-14T18:01:51.198169Z 01O strip:xen.efi: error copying private BFD data: File truncated
> 2025-11-14T18:01:51.198932Z 01O arch/x86/Makefile:207: recipe for target 'xen.efi' failed
> 2025-11-14T18:01:51.198937Z 01O make[3]: *** [xen.efi] Error 1
> 2025-11-14T18:01:51.199616Z 01O build.mk:90: recipe for target 'xen' failed
> 2025-11-14T18:01:51.199619Z 01O make[2]: *** [xen] Error 2
> 2025-11-14T18:01:51.200402Z 01O Makefile:600: recipe for target 'xen' failed
> 2025-11-14T18:01:51.200409Z 01O make[1]: *** [xen] Error 2
>
>
> I find it hard to believe that the relocation count is really negative,
> and given that newer binuitls works, I expect this is a binutils bug.
>

Unless the message is just misleading I find it hard to have a
negative number of items in a container.

> Nevertheless, we need some workaround.  Given that the previous
> behaviour was not to strip, I think we can reuse that for broken toolchains?
>

Something like that ?

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index a154ffe6b2..c465eb12e2 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -236,7 +236,9 @@ ifeq ($(CONFIG_DEBUG_INFO),y)
        $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) \
                -O elf64-x86-64 $(TARGET)-syms.efi $@.elf
 endif
-       $(STRIP) $(TARGET)-syms.efi -o $@
+       $(STRIP) $(TARGET)-syms.efi -o $@ || { \
+               LANG=C strip $(TARGET)-syms.efi -o $@ 2>&1 | grep -q \
+               "relocation count is negative" && mv -f $(TARGET)-syms.efi $@; }
 ifneq ($(CONFIG_DEBUG_INFO),y)
        rm -f $(TARGET)-syms.efi
 endif

It will fall back to not stripping in case that bug is detected. I
don't know how to test it.
(the LANG=C is to always force the English message).

> ~Andrew

Frediano


From xen-devel-bounces@lists.xenproject.org Sun Nov 16 10:24:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 16 Nov 2025 10:24:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163196.1490384 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKZvl-0008M6-N2; Sun, 16 Nov 2025 10:24:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163196.1490384; Sun, 16 Nov 2025 10:24: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 1vKZvl-0008Ly-Is; Sun, 16 Nov 2025 10:24:25 +0000
Received: by outflank-mailman (input) for mailman id 1163196;
 Sun, 16 Nov 2025 10:24: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 1vKZvk-0008Ls-Q8
 for xen-devel@lists.xenproject.org; Sun, 16 Nov 2025 10:24: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 1vKZvk-00A5Ac-0A;
 Sun, 16 Nov 2025 10:24:24 +0000
Received: from [2a02:8012:3a1:0:850b:33c3:9f1f:5f9a]
 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 1vKZvj-000Sdk-2I;
 Sun, 16 Nov 2025 10:24:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=fQgt4eOz0U7ldUZdofvIRxOQcrsJUsOOr3ar1XCThHA=; b=Q9o3hgutmvboN0rcuqNgz9c4dh
	A/GnqHtmdBcKxpMMyIYWXjKFJwn73uDCQjo7gQw+FvAqmFdiYJDxjDSCpDSIgc1M7o7cQ70PfNRMi
	pXmICw41PRCr/hH2O79Y0i4Dj6EfOUKE1p2Ys/7jigHNvu2qmrKdd2YLssa42UcWA5xM=;
Message-ID: <e6fae4b3-85fd-4f9b-8bc9-c243eb02c3ce@xen.org>
Date: Sun, 16 Nov 2025 10:24:22 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/8] arm/irq: Keep track of irq affinities
Content-Language: en-GB
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1762939773.git.mykyta_poturai@epam.com>
 <a467474ba2476ff85c52483f47ac1ba6a67a7a22.1762939773.git.mykyta_poturai@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <a467474ba2476ff85c52483f47ac1ba6a67a7a22.1762939773.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Mykyta,

On 12/11/2025 10:51, Mykyta Poturai wrote:
> Currently on Arm the desc->affinity mask of an irq is never updated,
> which makes it hard to know the actual affinity of an interrupt.
> 
> Fix this by updating the field in irq_set_affinity.
> 
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> 
> v3->v4:
> * patch introduced
> ---
>   xen/arch/arm/irq.c | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> index 73e58a5108..28b40331f7 100644
> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -219,7 +219,10 @@ static inline struct domain *irq_get_domain(struct irq_desc *desc)
>   void irq_set_affinity(struct irq_desc *desc, const cpumask_t *mask)
>   {
>       if ( desc != NULL )
> +    {
> +        cpumask_copy(desc->affinity, mask);

irq_set_affinity() doesn't always seems to be called with ``desc->lock`` 
taken (see vgic_migrate_irq(), arch_move_irqs()). So I am not sure this 
is safe. You probably need to update the callers as well to always take 
the lock. irq_set_affinity() probably want to gain an 
ASSERT(spin_is_locked()) with some documentation on top of the function.

>           desc->handler->set_affinity(desc, mask);
> +    }

NIT: As there are multiple lines in the ``if``, I would consider 
reworking the logic so we return early when desc is NULL.

>   }
>   
>   int request_irq(unsigned int irq, unsigned int irqflags,

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sun Nov 16 11:25:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 16 Nov 2025 11:25:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163208.1490394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKasJ-0008NY-Va; Sun, 16 Nov 2025 11:24:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163208.1490394; Sun, 16 Nov 2025 11: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 1vKasJ-0008NR-RQ; Sun, 16 Nov 2025 11:24:55 +0000
Received: by outflank-mailman (input) for mailman id 1163208;
 Sun, 16 Nov 2025 11:24:54 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vKasI-0008NJ-NS
 for xen-devel@lists.xenproject.org; Sun, 16 Nov 2025 11:24:54 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vKasI-00A6Ox-09;
 Sun, 16 Nov 2025 11:24:54 +0000
Received: from [2a02:8012:3a1:0:850b:33c3:9f1f:5f9a]
 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 1vKasH-000ZIx-22;
 Sun, 16 Nov 2025 11:24:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=8Kvazm3Q1hwnhSP48kU+h7T/IgELmMxNSeocL2dWwMU=; b=L/wZoyB+BDbSqPlKnukFdgZyct
	cI8Pkp6zvlio7TdqR78k5778YZ7+KI73bXqTthBSyN6mKC/lXhbFfesKTjqQe7obpQvYBeoCg5ZZg
	CCh1pQifcJe0NdjoHivJCwvMggyt2F2ihZmOt7qpRg5SYp4dA2+8UHxd7OqVszvfT49w=;
Message-ID: <8099d0ed-74bd-4c98-9441-296daf76c41e@xen.org>
Date: Sun, 16 Nov 2025 11:24:51 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 4/8] arm/irq: Migrate IRQs from dyings CPUs
Content-Language: en-GB
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1762939773.git.mykyta_poturai@epam.com>
 <6371ac96102f48b55ffd884656770187ed3a7f84.1762939773.git.mykyta_poturai@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <6371ac96102f48b55ffd884656770187ed3a7f84.1762939773.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 12/11/2025 10:51, Mykyta Poturai wrote:
> Move IRQs from dying CPU to the online ones.
> 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.
> 
> If IRQ is to be migrated, it's affinity is set to a mask of all online
> CPUs. With current GIC implementation, this means they are routed to a
> random online CPU. This may cause extra moves if multiple cores are
> disabled in sequence, but should prevent all interrupts from piling up
> on CPU0 in case of repeated up-down cycles on different cores.

Wouldn't they eventually all move to CPU0 in the case of suspend/resume 
or if all the CPUs but CPU0 are turned off and then off? If so, 
shouldn't we try to rebalance the interrupts?

> 
> IRQs from CPU 0 are never migrated, as dying CPU 0 means we are either
> shutting down compeletely or entering system suspend.

I can't find a place where __cpu_disable() is called on CPU0. Do you 
have any pointer? In any case, I am not sure I want to bake that 
assumption in more places of the code.

> 
> Considering that all Xen-used IRQs are currently allocated during init
> on CPU 0, and setup_irq uses smp_processor_id for the initial affinity.

Looking at the SMMU driver, we seems to request IRQs at the time the 
device is attached. So are you sure about this?

> This change is not strictly required for correct operation for now, but
> it should future-proof cpu hotplug and system suspend support in case
> some kind if IRQ balancing is implemented later.
> 
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> 
> v3->v4:
> * patch introduced
> ---
>   xen/arch/arm/include/asm/irq.h |  2 ++
>   xen/arch/arm/irq.c             | 39 ++++++++++++++++++++++++++++++++++
>   xen/arch/arm/smpboot.c         |  2 ++
>   3 files changed, 43 insertions(+)
> 
> diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/irq.h
> index 09788dbfeb..6e6e27bb80 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
>   
> +void evacuate_irqs(unsigned int from);
> +
>   #endif /* _ASM_HW_IRQ_H */
>   /*
>    * Local variables:
> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> index 28b40331f7..b383d71930 100644
> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -158,6 +158,45 @@ static int init_local_irq_data(unsigned int cpu)
>       return 0;
>   }
>   
> +static void evacuate_irq(int irq, unsigned int from)

Any reason why the 'irq' is signed?

> +{
> +    struct irq_desc *desc = irq_to_desc(irq);
> +    unsigned long flags;
> +
> +    /* Don't move irqs from CPU 0 as it is always last to be disabled */

Per above, I am not convinced that we should special case CPU 0. But if 
we do, then shouldn't this be part of evacuate_irqs() so we don't 
pointlessly go through all the IRQs?

> +    if ( from == 0 )
> +        return;
> +
> +    ASSERT(!cpumask_empty(&cpu_online_map));
> +    ASSERT(!cpumask_test_cpu(from, &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;
> +
> +    if ( cpumask_test_cpu(from, desc->affinity) )
> +        irq_set_affinity(desc, &cpu_online_map);

I think it would be worth explaining why we are routing to any CPU 
online rather than checking whether the affinity has other online CPUs.

Just to note, I don't have strong opinion either way. It mainly needs to 
be documented.

> +
> +out:
> +    spin_unlock_irqrestore(&desc->lock, flags);
> +    return;
> +}
> +
> +void evacuate_irqs(unsigned int from)
> +{
> +    int irq;
 > +> +    for ( irq = NR_LOCAL_IRQS; irq < NR_IRQS; irq++ )
> +        evacuate_irq(irq, from);
> +
> +    for ( irq = ESPI_BASE_INTID; irq < ESPI_MAX_INTID; irq++ )

AFAICT, irq_to_desc() would not be able to cope with ESPI interrupts 
when CONFIG_GICV3_ESPI is not set. Has this been tested?

> +        evacuate_irq(irq, from);
> +}
> +
>   static int cpu_callback(struct notifier_block *nfb, unsigned long action,
>                           void *hcpu)
>   {
> diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
> index 7f3cfa812e..46b24783dd 100644
> --- a/xen/arch/arm/smpboot.c
> +++ b/xen/arch/arm/smpboot.c
> @@ -425,6 +425,8 @@ void __cpu_disable(void)
>   
>       smp_mb();
>   
> +    evacuate_irqs(cpu);

I think it would be worth explaining why evacuate_irqs() is called this 
late in the process.

 > +>       /* Return to caller; eventually the IPI mechanism will 
unwind and the
>        * scheduler will drop to the idle loop, which will call stop_cpu(). */
>   }

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sun Nov 16 11:29:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 16 Nov 2025 11:29:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163219.1490403 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKax6-0000bx-FR; Sun, 16 Nov 2025 11:29:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163219.1490403; Sun, 16 Nov 2025 11:29: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 1vKax6-0000bq-CT; Sun, 16 Nov 2025 11:29:52 +0000
Received: by outflank-mailman (input) for mailman id 1163219;
 Sun, 16 Nov 2025 11:29:50 +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 1vKax4-0000bk-UU
 for xen-devel@lists.xenproject.org; Sun, 16 Nov 2025 11:29:50 +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 1vKax3-00A6V9-1d;
 Sun, 16 Nov 2025 11:29:49 +0000
Received: from [2a02:8012:3a1:0:850b:33c3:9f1f:5f9a]
 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 1vKax3-000Zdi-0R;
 Sun, 16 Nov 2025 11:29:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=yhcIqG9cVUsiXIick2qdfYdQSqaQGNWIV70d4UnLmOY=; b=0Dra5JgdQevR8EjpZGst4OGv6X
	/090iUiaZ/BcCDvORbTUuvqkzfp4CY6xeWD3XDDQJPxDSxxaE6mxyyaAG+N8rh0DtJShtbYeCtxJS
	PMYlP9l49NAGYURf0RQ+3IO1JI/SFOPvrF7Bch55L+4Y66/EdYjYdy5DDQsNUHAKCq8U=;
Message-ID: <e079c615-9bb9-4a3c-ad42-90d7fc357855@xen.org>
Date: Sun, 16 Nov 2025 11:29:46 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/8] smp: Move cpu_up/down helpers to common code
Content-Language: en-GB
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <cover.1762939773.git.mykyta_poturai@epam.com>
 <e0fe3bb03af9c612605a2a5dd9b5670d0428fa1a.1762939773.git.mykyta_poturai@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <e0fe3bb03af9c612605a2a5dd9b5670d0428fa1a.1762939773.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 12/11/2025 10:51, Mykyta Poturai wrote:
> This will reduce code duplication for the upcoming cpu hotplug support
> on Arm64 patch.
> 
> SMT-disable enforcement check is moved into a separate
> architecture-specific function.
> 
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> 
> v3->v4:
> * patch introduced
> ---
>   xen/arch/arm/smp.c             |  6 ++++++
>   xen/arch/ppc/stubs.c           |  4 ++++
>   xen/arch/riscv/stubs.c         |  5 +++++
>   xen/arch/x86/include/asm/smp.h |  3 ---
>   xen/arch/x86/smp.c             | 33 +++------------------------------
>   xen/common/smp.c               | 32 ++++++++++++++++++++++++++++++++
>   xen/include/xen/smp.h          |  4 ++++
>   7 files changed, 54 insertions(+), 33 deletions(-)
> 
> diff --git a/xen/arch/arm/smp.c b/xen/arch/arm/smp.c
> index b372472188..85815aeda0 100644
> --- a/xen/arch/arm/smp.c
> +++ b/xen/arch/arm/smp.c
> @@ -44,6 +44,12 @@ void smp_send_call_function_mask(const cpumask_t *mask)
>       }
>   }
>   
> +/* ARM don't have SMT so we don't need any special logic for CPU disabling  */

Xen doesn't support SMT on Arm. But some of the cores may support SMT. 
So would reword this to:

"We currently don't support SMT"

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sun Nov 16 11:34:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 16 Nov 2025 11:34:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163231.1490414 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKb1k-0002Iw-0M; Sun, 16 Nov 2025 11:34:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163231.1490414; Sun, 16 Nov 2025 11: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 1vKb1j-0002Io-Tk; Sun, 16 Nov 2025 11:34:39 +0000
Received: by outflank-mailman (input) for mailman id 1163231;
 Sun, 16 Nov 2025 11:34:38 +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 1vKb1i-0002Ii-Gq
 for xen-devel@lists.xenproject.org; Sun, 16 Nov 2025 11:34:38 +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 1vKb1h-00A6bW-2s;
 Sun, 16 Nov 2025 11:34:37 +0000
Received: from [2a02:8012:3a1:0:850b:33c3:9f1f:5f9a]
 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 1vKb1h-000aEu-1s;
 Sun, 16 Nov 2025 11:34:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=MXtETNSY9doQbFirrawzKsx3HEd7bIav1Of06vFXCDY=; b=l13dhB5+eoj93ZPPa5WvCK7nfc
	QvDo2Rwu7Jikcg6J/mgGLPZV1DmDz26NKxQfscqRqpIdL1uFI6JXZEM/1OEUlt+TKQxc19BbEF/Us
	UOJuvdsJSXm2vsjpYHDa4yNe6Q+B0R6xEdEz2WOvetAKV5IhYBg/m03akKJZk44cd6H0=;
Message-ID: <c648a729-4256-48ac-aa03-3cdee316d5d6@xen.org>
Date: Sun, 16 Nov 2025 11:34:36 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 6/8] arm/sysctl: Implement cpu hotplug ops
Content-Language: en-GB
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>
References: <cover.1762939773.git.mykyta_poturai@epam.com>
 <656cb01061f2ec726eb23784d01517a94117618e.1762939773.git.mykyta_poturai@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <656cb01061f2ec726eb23784d01517a94117618e.1762939773.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 12/11/2025 10:51, Mykyta Poturai wrote:
> Implement XEN_SYSCTL_CPU_HOTPLUG_{ONLINE,OFFLINE} calls to allow for
> enabling/disabling CPU cores in runtime.
> 
> 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.
> 
> Create a Kconfig option RUNTIME_CPU_CONTROL that reflects this
> constraints.
> 
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> 
> v3->v4:
> * don't reimplement cpu_up/down helpers
> * add Kconfig option
> * fixup formatting
> 
> v2->v3:
> * no changes
> 
> v1->v2:
> * remove SMT ops
> * remove cpu == 0 checks
> * add XSM hooks
> * only implement for 64bit Arm
> ---
>   xen/arch/arm/Kconfig  |  4 ++++
>   xen/arch/arm/sysctl.c | 32 ++++++++++++++++++++++++++++++++
>   2 files changed, 36 insertions(+)
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index cf6af68299..931ae51575 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -274,6 +274,10 @@ config PCI_PASSTHROUGH
>   	help
>   	  This option enables PCI device passthrough
>   
> +config RUNTIME_CPU_CONTROL
> +    def_bool y
> +    depends on ARM_64 && !TEE && !FFA && !HAS_ITS
> +
>   endmenu
>   
>   menu "ARM errata workaround via the alternative framework"
> diff --git a/xen/arch/arm/sysctl.c b/xen/arch/arm/sysctl.c
> index 32cab4feff..3c4e29d82c 100644
> --- a/xen/arch/arm/sysctl.c
> +++ b/xen/arch/arm/sysctl.c
> @@ -12,6 +12,7 @@
>   #include <xen/dt-overlay.h>
>   #include <xen/errno.h>
>   #include <xen/hypercall.h>
> +#include <xsm/xsm.h>
>   #include <asm/arm64/sve.h>
>   #include <public/sysctl.h>
>   
> @@ -23,6 +24,33 @@ void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
>                                          XEN_SYSCTL_PHYSCAP_ARM_SVE_MASK);
>   }
>   
> +static long cpu_hotplug_sysctl(struct xen_sysctl_cpu_hotplug *hotplug)

As you moved the helper in common code. I was expecting the logic to 
handle CPU_HOTPLUG_ONLINE and CPU_HOTPLUG_OFFLINE to also move in 
common. Can you explain why this wasn't done?

> +{
> +#ifdef CONFIG_RUNTIME_CPU_CONTROL
> +    int ret;
> +
> +    switch ( hotplug->op )
> +    {
> +    case XEN_SYSCTL_CPU_HOTPLUG_ONLINE:
> +        ret = xsm_resource_plug_core(XSM_HOOK);
> +        if ( ret )
> +            return ret;
> +        return continue_hypercall_on_cpu(0, cpu_up_helper, _p(hotplug->cpu));
> +
> +    case XEN_SYSCTL_CPU_HOTPLUG_OFFLINE:
> +        ret = xsm_resource_unplug_core(XSM_HOOK);
> +        if ( ret )
> +            return ret;
> +        return continue_hypercall_on_cpu(0, cpu_down_helper, _p(hotplug->cpu));
> +
> +    default:
> +        return -EOPNOTSUPP;
> +    }
> +#else
> +    return -EOPNOTSUPP;
> +#endif
> +}
> +
>   long arch_do_sysctl(struct xen_sysctl *sysctl,
>                       XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
>   {
> @@ -34,6 +62,10 @@ long arch_do_sysctl(struct xen_sysctl *sysctl,
>           ret = dt_overlay_sysctl(&sysctl->u.dt_overlay);
>           break;
>   
> +    case XEN_SYSCTL_cpu_hotplug:
> +        ret = cpu_hotplug_sysctl(&sysctl->u.cpu_hotplug);
> +        break;
> +
>       default:
>           ret = -ENOSYS;
>           break;

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sun Nov 16 11:43:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 16 Nov 2025 11:43:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163243.1490423 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKb9y-00044B-Pf; Sun, 16 Nov 2025 11:43:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163243.1490423; Sun, 16 Nov 2025 11: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 1vKb9y-000444-MD; Sun, 16 Nov 2025 11:43:10 +0000
Received: by outflank-mailman (input) for mailman id 1163243;
 Sun, 16 Nov 2025 11:43:09 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vKb9x-00043y-TB
 for xen-devel@lists.xenproject.org; Sun, 16 Nov 2025 11:43:09 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vKb9x-00A6jv-0Y;
 Sun, 16 Nov 2025 11:43:09 +0000
Received: from [2a02:8012:3a1:0:850b:33c3:9f1f:5f9a]
 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 1vKb9w-000bRg-2m;
 Sun, 16 Nov 2025 11:43:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=VicII8vY/o+jje6S04gQAxkgnQ+Xq8DsT0fI3Yzz3ss=; b=Gc5kTf6UA2iY4mDTCk83P/niL3
	IIru41IGkl4hG8WhzKQ4ujoaylH1MwNlpqFfFz74HlDxVtPHFB79mUY/n8xjdBDR6tE3XEJWTMJ/X
	zNMG60uHUb4wrJy59SjbUc7rj3EZJZxCesgBWrxoG4I84QAmEIBX+2wCtndu9bWQGPGw=;
Message-ID: <8b19fe39-f31a-4698-a004-1e57eb854082@xen.org>
Date: Sun, 16 Nov 2025 11:43:07 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 8/8] docs: Document CPU hotplug
Content-Language: en-GB
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1762939773.git.mykyta_poturai@epam.com>
 <48bafdb8e6269a3d958065c6a1062ce2736632a0.1762939773.git.mykyta_poturai@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <48bafdb8e6269a3d958065c6a1062ce2736632a0.1762939773.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 12/11/2025 10:51, Mykyta Poturai wrote:
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> 
> v3->v4:
> * update configuration section
> 
> v2->v3:
> * patch introduced
> ---
>   docs/misc/cpu-hotplug.txt | 51 +++++++++++++++++++++++++++++++++++++++
>   1 file changed, 51 insertions(+)
>   create mode 100644 docs/misc/cpu-hotplug.txt
> 
> diff --git a/docs/misc/cpu-hotplug.txt b/docs/misc/cpu-hotplug.txt
> new file mode 100644
> index 0000000000..1fbad0ecf7
> --- /dev/null
> +++ b/docs/misc/cpu-hotplug.txt
> @@ -0,0 +1,51 @@
> +CPU Hotplug
> +===========
> +
> +CPU hotplug is a feature that allows pCPU cores to be added to or removed from a
> +running system without requiring a reboot. It is supported on x86 and Arm64
> +architectures.

"supported" usually implies that we will backport fixes and issues XSA. 
Is this what you intended to say?

Asking because SUPPORT.md has the following:

### ACPI CPU Hotplug

     Status, x86: Experimental

There is also no mention for Arm in SUPPORT.md. As you enable the 
feature, we should clarify what's its state.
	> +
> +Implementation Details
> +----------------------
> +
> +CPU hotplug is implemented through the `XEN_SYSCTL_CPU_HOTPLUG_*` sysctl calls.
> +The specific calls are:
> +
> +- `XEN_SYSCTL_CPU_HOTPLUG_ONLINE`: Brings a pCPU online
> +- `XEN_SYSCTL_CPU_HOTPLUG_OFFLINE`: Takes a pCPU offline
> +- `XEN_SYSCTL_CPU_HOTPLUG_SMT_ENABLE`: Enables SMT threads (x86 only)
> +- `XEN_SYSCTL_CPU_HOTPLUG_SMT_DISABLE`: Disables SMT threads (x86 only)
> +
> +All cores can be disabled, assuming hardware support, except for core 0. Sysctl
> +calls are routed to core 0 before doing any actual up/down operations on other
> +cores.
> +
> +Configuration
> +-------------
> +
> +Sysctl handlers are enabled unconditionally on x86 architecture. On Arm64,
> +handlers are enabled by default when ITS, FFA, and TEE configs are disabled.
> +Building of the userspace tool "hptool" is controlled by the "hptool" flag in
> +the configure script. It is enabled by default and can be disabled with
> +--disable-hptool command line option.
> +
> +Usage
> +-----
> +
> +Disable core:
> +
> +$ xen-hptool cpu-offline 2
> +Prepare to offline CPU 2
> +(XEN) Removing cpu 2 from runqueue 0
> +CPU 2 offlined successfully
> +
> +Enable core:
> +
> +$ xen-hptool cpu-online 2
> +Prepare to online CPU 2
> +(XEN) Bringing up CPU2
> +(XEN) GICv3: CPU2: Found redistributor in region 0 @00000a004005c000
> +(XEN) CPU2: Guest atomics will try 1 times before pausing the domain
> +(XEN) CPU 2 booted.
> +(XEN) Adding cpu 2 to runqueue 0
> +CPU 2 onlined successfully

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sun Nov 16 11:49:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 16 Nov 2025 11:49:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163255.1490433 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKbFr-0004iz-CF; Sun, 16 Nov 2025 11:49:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163255.1490433; Sun, 16 Nov 2025 11: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 1vKbFr-0004is-9E; Sun, 16 Nov 2025 11:49:15 +0000
Received: by outflank-mailman (input) for mailman id 1163255;
 Sun, 16 Nov 2025 11:49:14 +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 1vKbFq-0004il-Ib
 for xen-devel@lists.xenproject.org; Sun, 16 Nov 2025 11:49:14 +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 1vKbFp-00A6tD-2p;
 Sun, 16 Nov 2025 11:49:13 +0000
Received: from [2a02:8012:3a1:0:850b:33c3:9f1f:5f9a]
 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 1vKbFp-000cCx-1r;
 Sun, 16 Nov 2025 11:49: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:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=xxd443B4sjSFd8oiJhCzyVgbepHscnaS2zOexdHh95E=; b=C2o0g3X51daa2QQfKiK5mNPEr8
	J/iwcZZ/yvmn/zAz5UOoAXop9nwUYFoxxpVQiFna6IxZNdKMlrThwQwVqTQja8QBap8VDS5nNkgBS
	lqY/ln0osAlXgIpCBwIG6NIG9KncPmkbjpYl/EXS4FDx6CgLHxgKaV+9NTxUKi0uzsuc=;
Message-ID: <4085a78a-dbd0-428f-86e9-2606b1acd8e4@xen.org>
Date: Sun, 16 Nov 2025 11:49:11 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] libfdt: Replace hardcoded FDT version numbers with macros
Content-Language: en-GB
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <b449ec7262c4e04c7e82eb50df294991dd9fbe50.1763030084.git.dmytro_prokopchuk1@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <b449ec7262c4e04c7e82eb50df294991dd9fbe50.1763030084.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 13/11/2025 10:36, Dmytro Prokopchuk1 wrote:
> Replace all hardcoded FDT version numbers (such as 16 and 17, or 0x10 and 0x11)
> with the macros FDT_LAST_COMPATIBLE_VERSION and FDT_LAST_SUPPORTED_VERSION
> throughout the Xen device tree and libfdt code.
> 
> This avoids magic numbers and makes the Xen codebase more robust to future FDT
> version changes.
 > > Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
>   xen/common/device-tree/device-tree.c |  2 +-
>   xen/common/libfdt/fdt.c              |  8 +++++---
>   xen/common/libfdt/fdt_ro.c           | 13 +++++++------
>   xen/common/libfdt/fdt_rw.c           | 16 ++++++++--------

While I appreciate the goal, libfdt/ is meant to be a verbatim copy of 
the [1]. I would like to keep it like that (backports would be 
acceptable). So if you want to make any change, then it first needs to 
be merged in the upstream repo.

Cheers,

[1] https://github.com/dgibson/dtc/tree/main/libfdt

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sun Nov 16 12:20:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 16 Nov 2025 12:20:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163270.1490444 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKbjf-0001NO-Q3; Sun, 16 Nov 2025 12:20:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163270.1490444; Sun, 16 Nov 2025 12:20: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 1vKbjf-0001Mt-MV; Sun, 16 Nov 2025 12:20:03 +0000
Received: by outflank-mailman (input) for mailman id 1163270;
 Sun, 16 Nov 2025 12:20:02 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vKbje-00012e-Dr
 for xen-devel@lists.xenproject.org; Sun, 16 Nov 2025 12:20:02 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vKbjd-00A7UL-2n;
 Sun, 16 Nov 2025 12:20:01 +0000
Received: from [2a02:8012:3a1:0:850b:33c3:9f1f:5f9a]
 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 1vKbjd-000faB-1h;
 Sun, 16 Nov 2025 12:20:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=55uuaTxazaGntlfao+jpAAL+G7yjh5AHvRLn73MMXuU=; b=rm5Jkq7MALgANg7k6YLrKO+qZl
	J2y/4iqhPBjzjgA89weze/m6ZmSwFpoj+Z+09XcFPapIKLQUdoamUdlp+0RJRrcUeqwVKmvujXghR
	GEbxQNVleVOI05Bys4YDt0dhRBUJhvZ/P9HitKmb+xwPWCMU4lVLMEEW4IOo6Z+f0eQw=;
Message-ID: <95914009-c0e0-410c-8477-c44d91567e26@xen.org>
Date: Sun, 16 Nov 2025 12:19:59 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/arm: Use FDT_MAGIC from libfdt instead of local
 macro
Content-Language: en-GB
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <92efc0f0bb286ceeb8788a8900bac9f9f1ed9613.1762940762.git.dmytro_prokopchuk1@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <92efc0f0bb286ceeb8788a8900bac9f9f1ed9613.1762940762.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 12/11/2025 09:50, Dmytro Prokopchuk1 wrote:
> Remove the redundant local 'DTB_MAGIC' definition and replace its usage
> with the canonical 'FDT_MAGIC' from 'libfdt'.
> 
> Amends: 66edeb2e3972 (arm: copy DTB appended to zImage)
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>

Acked-by: Julien Grall <jgral@amazon.com>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sun Nov 16 12:38:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 16 Nov 2025 12:38:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163282.1490454 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKc1R-00047r-7B; Sun, 16 Nov 2025 12:38:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163282.1490454; Sun, 16 Nov 2025 12:38: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 1vKc1R-00047k-4V; Sun, 16 Nov 2025 12:38:25 +0000
Received: by outflank-mailman (input) for mailman id 1163282;
 Sun, 16 Nov 2025 12:38:23 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vKc1P-00047e-Fv
 for xen-devel@lists.xenproject.org; Sun, 16 Nov 2025 12:38:23 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vKc1O-00A7oL-2g;
 Sun, 16 Nov 2025 12:38:22 +0000
Received: from [2a02:8012:3a1:0:850b:33c3:9f1f:5f9a]
 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 1vKc1O-000hny-1N;
 Sun, 16 Nov 2025 12:38:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=cz+VurqoZ8ATYsY9mCF0wLcD48hlu3jc2i66+aPGEfI=; b=jIyi227SgpxbHikMKVV2hmVfZN
	uycIFBw7j0UOtoOv8XMSVTasdCT5SKboQyR3nAc6aaXm0JWY9wafe6pFvqnECx5G/9ySCRJFp4ILN
	DSxkuU+Are8HfwlcJELmO5oCLyrPZAo8/YX592xKz1g9RreJVJU4nvbZeAKA+qsons9c=;
Message-ID: <f0dc81bf-2cfc-4912-9a2a-849e960e10de@xen.org>
Date: Sun, 16 Nov 2025 12:38:20 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: gicv3: initialize eSPI unconditionally
Content-Language: en-GB
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Julien Grall <jgrall@amazon.com>
References: <70927412079d26973fda7025b99c566e03217aa7.1759222404.git.leonid_komarianskyi@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <70927412079d26973fda7025b99c566e03217aa7.1759222404.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 30/09/2025 10:00, Leonid Komarianskyi wrote:
> Since the firmware may initialize eSPIs before Xen, and without
> CONFIG_GICV3_ESPI enabled, Xen would not reinitialize them properly
> during boot. In such cases, once the GIC is re-enabled in Xen,
> interrupts may be received that cannot be handled.
> 
> To ensure proper operation on hardware with eSPI feature, even when the eSPI
> config is disabled, gicv3_dist_espi_common_init() should be invoked
> regardless of whether CONFIG_GICV3_ESPI is enabled or not. This will not
> affect hardware without eSPI support, as the function checks if the
> hardware supports eSPIs by reading the GICD_TYPER.ESPI field (using
> GICD_TYPER_ESPIS_NUM macro), which indicates whether the extended SPI
> range is supported. If the hardware does not support eSPI, the function
> will not perform any actions.
> 
> There are no functional changes for setups where CONFIG_GICV3_ESPI=y.
> 
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> Suggested-by: Julien Grall <jgrall@amazon.com>

Usually tags are ordered chronologically. So this tag would need to 
appear first. I can fix that while committing.

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sun Nov 16 13:02:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 16 Nov 2025 13:02:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163294.1490463 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKcOl-0008TX-1i; Sun, 16 Nov 2025 13:02:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163294.1490463; Sun, 16 Nov 2025 13:02:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKcOk-0008TQ-Uy; Sun, 16 Nov 2025 13:02:30 +0000
Received: by outflank-mailman (input) for mailman id 1163294;
 Sun, 16 Nov 2025 13:02:29 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vKcOi-0008TK-VV
 for xen-devel@lists.xenproject.org; Sun, 16 Nov 2025 13:02:29 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vKcOi-00A8J3-0g;
 Sun, 16 Nov 2025 13:02:28 +0000
Received: from [2a02:8012:3a1:0:850b:33c3:9f1f:5f9a]
 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 1vKcOh-000l0y-2t;
 Sun, 16 Nov 2025 13:02:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=ho6aklSNMVPgjXH534W+uD6zReKPs/VuFqARIVT4RTg=; b=1YH8KMmOzDFn8Lg3ryAVsk0suG
	OlwO2kJCswCdAlfiv+aQlxVZjl69cJnHNSMG/SB/+VnpI7FD+6Edqqta+nkm/WU5c3gHLkHaEDCDb
	aATB4qZYRm6kDE00dB5HgVMhi1pyMl8dHAwuwK7jHUbp5Mxd2u+8hAz52NhtGh4rF9lU=;
Message-ID: <cf7ab262-59f4-4f92-8194-be16b56ccbdc@xen.org>
Date: Sun, 16 Nov 2025 13:02:25 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] xen/arm/p2m: perform IPA-based TLBI for arm64 when
 IPA is known
Content-Language: en-GB
To: Haseeb Ashraf <haseebashraf091@gmail.com>,
 xen-devel@lists.xenproject.org, Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: Haseeb Ashraf <haseeb.ashraf@siemens.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Dan Driscoll <dan.driscoll@siemens.com>,
 Noor Ahsan Khawaja <noor.ahsan@siemens.com>,
 Fahad Arslan <fahad.arslan@siemens.com>,
 Andrew Bachtel <andrew.bachtel@siemens.com>,
 Mohamed Mediouni <mohamed@unpredictable.fr>
References: <20251105124727.142272-1-haseebashraf091@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20251105124727.142272-1-haseebashraf091@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Haseeb,

On 05/11/2025 12:47, Haseeb Ashraf wrote:
> From: Haseeb Ashraf <haseeb.ashraf@siemens.com>
> 
> This commit addresses a major issue for running Xen on KVM arm64 i.e.
> costly emulation of VMALLS12E1IS which becomes worse when this TLBI
> is invoked too many times. There are mainly two places where this is
> problematic:
> (a) When vCPUs switch on a pCPU or pCPUs
> (b) When domu mapped pages onto dom0, are to be unmapped, then each
>      page being removed by XENMEM_remove_from_physmap has its TLBs
>      invalidated by VMALLS12E1IS.
> 
> The first one is addressed by relaxing VMALLS12E1IS -> VMALLE1IS.
> Each CPU have their own private TLBs, so flush between vCPU of the
> same domains is required to avoid translations from vCPUx to "leak"
> to the vCPUy.

This doesn't really tell me why we don't need the flush the S2. The key 
point is (barring altp2m) the stage-2 is common between all the vCPUs of 
a VM.

> This can be achieved by using VMALLE1. If FEAT_nTLBPA
> is present then VMALLE1 can also be avoided.

I had a look at the Arm Arm and I can't figure out why it is fine to 
skip the flush. Can you provide a pointer? BTW, in general, it is useful 
to quote the Arm Arm for the reviewer and future reader. It makes easier 
to find what you are talking about.

> 
> The second one is addressed by using IPA-based TLBI (IPAS2E1) in
> combination with VMALLE1 whenever the IPA range is known instead of
> using VMALLS12E1. Again, VMALLE1 can be avoided FEAT_nTLBPA is
> present.
> 
> Suggested-by: Mohamed Mediouni <mohamed@unpredictable.fr>
> Suggested-by: Julien Grall <julien@xen.org>
> Signed-off-by: Haseeb Ashraf <haseeb.ashraf@siemens.com>
> ---
>   xen/arch/arm/include/asm/arm64/flushtlb.h | 34 ++++++++
>   xen/arch/arm/include/asm/arm64/sysregs.h  |  1 +
>   xen/arch/arm/include/asm/cpufeature.h     |  3 +-
>   xen/arch/arm/include/asm/mmu/p2m.h        |  4 +
>   xen/arch/arm/include/asm/processor.h      |  2 +
>   xen/arch/arm/mmu/p2m.c                    | 96 ++++++++++++++++++++++-
>   6 files changed, 136 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/arm64/flushtlb.h b/xen/arch/arm/include/asm/arm64/flushtlb.h
> index 3b99c11b50..6703aab8a7 100644
> --- a/xen/arch/arm/include/asm/arm64/flushtlb.h
> +++ b/xen/arch/arm/include/asm/arm64/flushtlb.h
> @@ -45,6 +45,27 @@ static inline void name(void)                    \
>           : : : "memory");                         \
>   }
>   
> +/*
> + * FLush TLB by IPA. This will likely be used in a loop, so the caller
> + * is responsible to use the appropriate memory barriers before/after
> + * the sequence.

If the goal is to call TLB_HELPER_IPA() in a loop, then the current 
implementation is too expensive.

If the CPU doesn't need the repeat TLBI workaround, then you only need 
to do the dsb; isb once.

If the CPU need the repeat TLBI workaround, looking at the Cortex A76 
errata doc (https://developer.arm.com/documentation/SDEN885749/latest/) 
then I think you might be able to do:

"Flush TLBs"
"DSB"
"ISB"
"Flush TLBs"
"DSB"
"ISB"

Bertrand, what do you think?

> + *
> + * See above about the ARM64_WORKAROUND_REPEAT_TLBI sequence.
> + */
 > +#define TLB_HELPER_IPA(name, tlbop)              \> +static inline 
void name(paddr_t ipa)             \
> +{                                                \
> +    asm volatile(                                \
> +        "tlbi "  # tlbop  ", %0;"                \
> +        ALTERNATIVE(                             \
> +            "nop; nop;",                         \
> +            "dsb  ish;"                          \
> +            "tlbi "  # tlbop  ", %0;",           \
> +            ARM64_WORKAROUND_REPEAT_TLBI,        \
> +            CONFIG_ARM64_WORKAROUND_REPEAT_TLBI) \
> +        : : "r" (ipa >> PAGE_SHIFT) : "memory"); \
> +}
> +
>   /*
>    * FLush TLB by VA. This will likely be used in a loop, so the caller
>    * is responsible to use the appropriate memory barriers before/after
> @@ -72,6 +93,18 @@ TLB_HELPER(flush_guest_tlb_local, vmalls12e1, nsh)
>   /* Flush innershareable TLBs, current VMID only */
>   TLB_HELPER(flush_guest_tlb, vmalls12e1is, ish)
>   
> +/* Flush local TLBs, current VMID, stage-1 only */
> +TLB_HELPER(flush_guest_tlb_s1_local, vmalle1, nsh)
> +
> +/* Flush innershareable TLBs, current VMID, stage-1 only */
> +TLB_HELPER(flush_guest_tlb_s1, vmalle1is, ish)
> +
> +/* Flush local TLBs, current VMID, stage-2 for ipa address */
> +TLB_HELPER_IPA(flush_guest_tlb_one_s2_local, ipas2e1)
> +
> +/* Flush innershareable TLBs, current VMID, stage-2 for ipa address */
> +TLB_HELPER_IPA(flush_guest_tlb_one_s2, ipas2e1is)
> +
>   /* Flush local TLBs, all VMIDs, non-hypervisor mode */
>   TLB_HELPER(flush_all_guests_tlb_local, alle1, nsh)
>   
> @@ -88,6 +121,7 @@ TLB_HELPER_VA(__flush_xen_tlb_one_local, vae2)
>   TLB_HELPER_VA(__flush_xen_tlb_one, vae2is)
>   
>   #undef TLB_HELPER
> +#undef TLB_HELPER_IPA
>   #undef TLB_HELPER_VA
>   
>   #endif /* __ASM_ARM_ARM64_FLUSHTLB_H__ */
> diff --git a/xen/arch/arm/include/asm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
> index 7440d495e4..30a7c3b9fd 100644
> --- a/xen/arch/arm/include/asm/arm64/sysregs.h
> +++ b/xen/arch/arm/include/asm/arm64/sysregs.h
> @@ -286,6 +286,7 @@
>   
>   /* id_aa64mmfr1 */
>   #define ID_AA64MMFR1_ECBHB_SHIFT     60
> +#define ID_AA64MMFR1_NTLBPA_SHIFT    48
>   #define ID_AA64MMFR1_AFP_SHIFT       44
>   #define ID_AA64MMFR1_ETS_SHIFT       36
>   #define ID_AA64MMFR1_TWED_SHIFT      32
> diff --git a/xen/arch/arm/include/asm/cpufeature.h b/xen/arch/arm/include/asm/cpufeature.h
> index b6df188011..21df7603fc 100644
> --- a/xen/arch/arm/include/asm/cpufeature.h
> +++ b/xen/arch/arm/include/asm/cpufeature.h
> @@ -269,7 +269,8 @@ struct cpuinfo_arm {
>               unsigned long ets:4;
>               unsigned long __res1:4;
>               unsigned long afp:4;
> -            unsigned long __res2:12;
> +            unsigned long ntlbpa:4;
> +            unsigned long __res2:8;
>               unsigned long ecbhb:4;
>   
>               /* MMFR2 */
> diff --git a/xen/arch/arm/include/asm/mmu/p2m.h b/xen/arch/arm/include/asm/mmu/p2m.h
> index 58496c0b09..fc2e08bbe8 100644
> --- a/xen/arch/arm/include/asm/mmu/p2m.h
> +++ b/xen/arch/arm/include/asm/mmu/p2m.h
> @@ -10,6 +10,10 @@ extern unsigned int p2m_root_level;
>   
>   struct p2m_domain;
>   void p2m_force_tlb_flush_sync(struct p2m_domain *p2m);
> +#ifdef CONFIG_ARM_64

We should also handle Arm 32-bit. Barring nTLBA, the code should be the 
same.

> +void p2m_force_tlb_flush_range_sync(struct p2m_domain *p2m, uint64_t start_ipa,
> +                                    uint64_t page_count);
> +#endif
>   void p2m_tlb_flush_sync(struct p2m_domain *p2m);
>   
>   void p2m_clear_root_pages(struct p2m_domain *p2m);
> diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
> index 92c8bc1a31..07f6a2ef6a 100644
> --- a/xen/arch/arm/include/asm/processor.h
> +++ b/xen/arch/arm/include/asm/processor.h
> @@ -461,6 +461,8 @@
>   #ifdef CONFIG_ARM_64
>   #define MM64_VMID_8_BITS_SUPPORT    0x0
>   #define MM64_VMID_16_BITS_SUPPORT   0x2
> +#define MM64_NTLBPA_SUPPORT_NI      0x0
> +#define MM64_NTLBPA_SUPPORT_IMP     0x1
>   #endif
>   
>   #ifndef __ASSEMBLY__
> diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
> index 51abf3504f..28268fb67f 100644
> --- a/xen/arch/arm/mmu/p2m.c
> +++ b/xen/arch/arm/mmu/p2m.c
> @@ -235,7 +235,12 @@ void p2m_restore_state(struct vcpu *n)
>        * when running multiple vCPU of the same domain on a single pCPU.
>        */
>       if ( *last_vcpu_ran != INVALID_VCPU_ID && *last_vcpu_ran != n->vcpu_id )
> +#ifdef CONFIG_ARM_64
> +        if ( system_cpuinfo.mm64.ntlbpa != MM64_NTLBPA_SUPPORT_IMP )

If we decide to use nTLBA, then we should introduce a capability so the 
check can be patched at aboot time.

> +            flush_guest_tlb_s1_local();
> +#else
>           flush_guest_tlb_local();
> +#endif
>   
>       *last_vcpu_ran = n->vcpu_id;
>   }
> @@ -293,6 +298,75 @@ void p2m_force_tlb_flush_sync(struct p2m_domain *p2m)
>       p2m->need_flush = false;
>   }
>   
> +#ifdef CONFIG_ARM_64
> +/*
> + * Force a synchronous P2M TLB flush on a range of addresses.
> + *
> + * Must be called with the p2m lock held.
> + */
> +void p2m_force_tlb_flush_range_sync(struct p2m_domain *p2m, uint64_t start_ipa,
> +                                    uint64_t page_count)
> +{
> +    unsigned long flags = 0;
> +    uint64_t ovttbr;
> +    uint64_t ipa = start_ipa;
> +    uint64_t i;
> +
> +    ASSERT(p2m_is_write_locked(p2m));
> +
> +    /*
> +     * ARM only provides an instruction to flush TLBs for the current
> +     * VMID. So switch to the VTTBR of a given P2M if different.
> +     */
> +    ovttbr = READ_SYSREG64(VTTBR_EL2);
> +    if ( ovttbr != p2m->vttbr )
> +    {
> +        uint64_t vttbr;
> +
> +        local_irq_save(flags);
> +
> +        /*
> +         * ARM64_WORKAROUND_AT_SPECULATE: We need to stop AT to allocate
> +         * TLBs entries because the context is partially modified. We
> +         * only need the VMID for flushing the TLBs, so we can generate
> +         * a new VTTBR with the VMID to flush and the empty root table.
> +         */
> +        if ( !cpus_have_const_cap(ARM64_WORKAROUND_AT_SPECULATE) )
> +            vttbr = p2m->vttbr;
> +        else
> +            vttbr = generate_vttbr(p2m->vmid, empty_root_mfn);
> +
> +        WRITE_SYSREG64(vttbr, VTTBR_EL2);
> +
> +        /* Ensure VTTBR_EL2 is synchronized before flushing the TLBs */
> +        isb();
> +    }

I don't really like the idea to duplicate the AT speculation logic. 
Could we try to consolidate by introducing helper to load and unload the 
VTTBR?

> +
> +    /* Ensure prior page-tables updates have completed */
> +    dsb(ishst);
> +
> +    /* Invalidate stage-2 TLB entries by IPA range */
> +    for ( i = 0; i < page_count; i++ ) {
> +        flush_guest_tlb_one_s2(ipa);
> +        ipa += 1UL << PAGE_SHIFT;
> +    }

In theory, __p2m_set_entry() could modify large region. For 1GB region 
it means the loop would send 262144 TLB instructions. This seems quite a 
lot.

If the region is a superpage, then you might be able to send a single 
TLB instruction (need to confirm from the ARM ARM).

If the region contains multiple mapping, then I wonder whether it would 
be better to flush the full S2. Not sure what would be the threshold.

Bertrand, Michal, Stefano, any opinions?

> +
> +    if ( system_cpuinfo.mm64.ntlbpa != MM64_NTLBPA_SUPPORT_IMP )
> +        flush_guest_tlb_s1_local();
> +
> +    /* Ensure the TLB invalidation has completed */
> +    dsb(ishst);
> +
> +    if ( ovttbr != READ_SYSREG64(VTTBR_EL2) )
> +    {
> +        WRITE_SYSREG64(ovttbr, VTTBR_EL2);
> +        /* Ensure VTTBR_EL2 is back in place before continuing. */
> +        isb();
> +        local_irq_restore(flags);
> +    }
> +}
> +#endif
> +
>   void p2m_tlb_flush_sync(struct p2m_domain *p2m)
>   {
>       if ( p2m->need_flush )
> @@ -1034,7 +1108,12 @@ static int __p2m_set_entry(struct p2m_domain *p2m,
>            * For more details see (D4.7.1 in ARM DDI 0487A.j).
>            */
>           p2m_remove_pte(entry, p2m->clean_pte);
> +#ifdef CONFIG_ARM_64
> +        p2m_force_tlb_flush_range_sync(p2m, gfn_x(sgfn) << PAGE_SHIFT,
> +                                       1UL << page_order);
> +#else
>           p2m_force_tlb_flush_sync(p2m);
> +#endif
>   
>           p2m_write_pte(entry, split_pte, p2m->clean_pte);
>   
> @@ -1090,8 +1169,13 @@ static int __p2m_set_entry(struct p2m_domain *p2m,
>           p2m_remove_pte(entry, p2m->clean_pte);
>   
>       if ( removing_mapping )
> +#ifdef CONFIG_ARM_64
> +        p2m_force_tlb_flush_range_sync(p2m, gfn_x(sgfn) << PAGE_SHIFT,
> +                                       1UL << page_order);
> +#else
>           /* Flush can be deferred if the entry is removed */
>           p2m->need_flush |= !!lpae_is_valid(orig_pte);
> +#endif

To emphasis on what I wrote above, this is one of the reason I would 
strongly prefer if we had support for p2m_force_flush_range_sync() on 
Arm 32-bit. This would make the code a lot simpler and easier to reason.

>       else
>       {
>           lpae_t pte = mfn_to_p2m_entry(smfn, t, a);
> @@ -1102,17 +1186,23 @@ static int __p2m_set_entry(struct p2m_domain *p2m,
>           /*
>            * It is necessary to flush the TLB before writing the new entry
>            * to keep coherency when the previous entry was valid.
> -         *
> -         * Although, it could be defered when only the permissions are
> -         * changed (e.g in case of memaccess).
>            */
>           if ( lpae_is_valid(orig_pte) )
>           {
> +#ifdef CONFIG_ARM_64
> +            p2m_force_tlb_flush_range_sync(p2m, gfn_x(sgfn) << PAGE_SHIFT,
> +                                           1UL << page_order);
> +#else
> +        /*
> +         * Although, flush could be defered when only the permissions are
> +         * changed (e.g in case of memaccess).
> +         */
>               if ( likely(!p2m->mem_access_enabled) ||
>                    P2M_CLEAR_PERM(pte) != P2M_CLEAR_PERM(orig_pte) )
>                   p2m_force_tlb_flush_sync(p2m);
>               else
>                   p2m->need_flush = true;
> +#endif
>           }
>           else if ( !p2m_is_valid(orig_pte) ) /* new mapping */
>               p2m->stats.mappings[level]++;

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Nov 17 08:35:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 08:35:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163434.1490557 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKuhq-0007Uo-0g; Mon, 17 Nov 2025 08:35:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163434.1490557; Mon, 17 Nov 2025 08:35:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKuhp-0007Uh-U1; Mon, 17 Nov 2025 08:35:25 +0000
Received: by outflank-mailman (input) for mailman id 1163434;
 Mon, 17 Nov 2025 08:35:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vKuho-0007Ua-Im
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 08:35:24 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5977eb95-c390-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 09:35:19 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-640c1fda178so6191344a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 00:35: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
 4fb4d7f45d1cf-6433a4b28b0sm9720216a12.30.2025.11.17.00.35.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 00:35: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: 5977eb95-c390-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763368519; x=1763973319; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yT5xD/SJii3UtDmoxz01Di0Qof6JQqaWcl1I52DrHTk=;
        b=aSKYXHsAb+HuXdzoNlDNJCgN6QEpiD3e7/CUOtnv81+j/eKrboyFIOQCi/9y7g7cMs
         beF89P7bwX8WhFaLdvZQImr5sZ0N0shOs94uWbNpdHFgwseN70V0Co7f/rhHU9JZ+cb5
         5iz4jbxiM9ssl7/WxrPF7HeeKQaKlu5nLj38svDdvY136zV01TpTXek7e4HjDnH6CfW0
         /QxtIO+4ROq1SWnGgFfSp9+8q81gyJpnFzKuJtnl0OjgaEFYhd1yZF1vWGrBkF22Ohup
         BdLIryWrx2n2oFGwCJ+rP+FQqnPePilTs/ftrxi04pfNT7Gs9NK1FsSz1622e/5HBAKz
         jenQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763368519; x=1763973319;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yT5xD/SJii3UtDmoxz01Di0Qof6JQqaWcl1I52DrHTk=;
        b=hBe/sYK/pBofvb4hdMK+28FPMOp73VS0wu1V4cF4I3iS19RY0jq1i/CJz6WaRQ6oDB
         DKJJmalNdPdkylDxQRvUkeVBaknWeR2ZXJqeOujXRux6U6NyiJLDP5XunI7mRJUNfljT
         MbeSfQWJd/eoagsIgG0UdgsuLKdH8ja+hhb72Nfp+dGT5fG1c7KbKWjotk3HNXXxFq8X
         H8SD02PB54Q1e8+96SH1MSRjgSYSYkrTBl9v1UulD5cdp/XCpUvYy+f9jnJ7MMlhMmJj
         csEtjQxMFamFAI0xAeif23Oq/n/GvaUm4pU2TvNgHA37nj2hvRUs9duSVuupd0l8HrqT
         tJug==
X-Forwarded-Encrypted: i=1; AJvYcCWWsNgrpTbsGM2mBucBdeX2d5467CIL7AuzhIPEydQLDx/mIGoQJAObi9E+jLbivvA+sXhaLs3I06c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzMU/Shr64BjW6wlMF0glaTT1npx8pPsWXdT071gqtItizyFWaP
	pUWgievYQePZ2bAwhVsLde5JvNAkSFrP2QDlDP6fnI+BRrtzKbFce/HgjnmHgSiV9w==
X-Gm-Gg: ASbGncsJmXAXEIN5QfkU5PWxrjJ2Yyp/0Up4tkJPa3ywVi4f35u7/zwG9rwqQduTLyV
	0UdO/DaOZN6XWcykvGx6BjX93Bu0X8cDMF7F9DhjAs8nb7o8Nv51ZfBhQRUPAD5MYYXRAxB4ljZ
	11Ag4zG19ULj+oANpQnXyI0Z4E+5HxqQrpCO3O+rS+oJaRI8sURdnRG23aRlNR8JHnlM2DTvek3
	ugFhY4+0RipZAtPlcDh0OuJBCQbZd/fnuEG67tRpPW3+4ayosPU50/X/UA52gfYGEyNFiAS+J1k
	qtEElN2UlpepVGx3kyNmAGV0YJ1Epn3nPj2qLYV/PRgFJK67R5ugmkqRf32Siqe2fpVI03H5QWv
	BtiRkHpyCkyIbVx8TbE7hHGKG1VgipIzablX2KDLChiYBIlJuYxVz4bqc5r6OPvcnu+ygMiBy4u
	T4PESq9VIpUHf8y+eXWq0UD9/hkBHwvM3b8a82srIXwtQlOLQAA84SuoxJiO3nSwdJ
X-Google-Smtp-Source: AGHT+IHuXo8Sr1hq9ypZhPNP0Q+axFfglViz5HwEXWAoLM2ZoxCAGa4Lz+RAUQwcr7Cui/VYmFf8zQ==
X-Received: by 2002:a05:6402:2693:b0:639:d9f4:165e with SMTP id 4fb4d7f45d1cf-64350e9fc31mr9798608a12.29.1763368518717;
        Mon, 17 Nov 2025 00:35:18 -0800 (PST)
Message-ID: <f2174fd6-a5b4-47cb-b361-cb6f5558de75@suse.com>
Date: Mon, 17 Nov 2025 09:35:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 02/18] xen/riscv: introduce VMID allocation and
 manegement
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <bdbe6c13991c2d166614795d43db3f71d790c00f.1760974017.git.oleksii.kurochko@gmail.com>
 <7e9671b3-6972-45b8-9cba-4447fa802fe2@suse.com>
 <cf96c62e-cac0-4b18-9524-0703c6492453@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: <cf96c62e-cac0-4b18-9524-0703c6492453@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.11.2025 10:27, Oleksii Kurochko wrote:
> On 11/6/25 3:05 PM, Jan Beulich wrote:
>> On 20.10.2025 17:57, Oleksii Kurochko wrote:
>>> +void vmid_flush_hart(void)
>>> +{
>>> +    struct vmid_data *data = &this_cpu(vmid_data);
>>> +
>>> +    if ( !data->used )
>>> +        return;
>>> +
>>> +    if ( likely(++data->generation != 0) )
>>> +        return;
>>> +
>>> +    /*
>>> +     * VMID generations are 64 bit.  Overflow of generations never happens.
>>> +     * For safety, we simply disable ASIDs, so correctness is established; it
>>> +     * only runs a bit slower.
>>> +     */
>>> +    printk("%s: VMID generation overrun. Disabling VMIDs.\n", __func__);
>> Is logging of the function name of any value here?
> 
> Agree, there is no any sense for the logging of the function name.
> 
>>   Also, despite the x86
>> original havinbg it like this - generally no full stops please if log
>> messages. "VMID generation overrun; disabling VMIDs\n" would do.
> 
> Sure, I will drop it and will try to not add it in such cases. But could you
> please remind (if I asked that before) me what is the reason why full stop
> shouldn't be presented in such cases?

First: Consistency across the code base. Second: Meaningless characters
needlessly consume serial line bandwidth.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 08:44:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 08:44:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163471.1490579 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKuqB-0000wg-0y; Mon, 17 Nov 2025 08:44:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163471.1490579; Mon, 17 Nov 2025 08: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 1vKuqA-0000wZ-Ug; Mon, 17 Nov 2025 08:44:02 +0000
Received: by outflank-mailman (input) for mailman id 1163471;
 Mon, 17 Nov 2025 08:44: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vKuq8-0000w1-QL
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 08:44:00 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8dc6fc3c-c391-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 09:43:56 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b736ffc531fso430364466b.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 00:43: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
 a640c23a62f3a-b734fb12d55sm1018331566b.33.2025.11.17.00.43.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 00:43: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: 8dc6fc3c-c391-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763369036; x=1763973836; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=krcBBOXXNgmByuL+gQW4gFtN9O+xhncc8smKfCKnAKc=;
        b=axTdJm03LJw0gA10V7exy53v+gV9RBI/aNTc+dx2mh8m4x8ckCCtBOeeEu8AvvRtOh
         JSkih1c71ARnGqn6/7qm0lvD2V3pvE/Ti/dWXvwIBdfS2kh/em32+JCJTc7GHHfDcmrQ
         j+k1Onk/gvqzza44yci792YQGushF8d/JkjX0nCjVB04RBmjh0//cnWWB8cnydr2Bjvx
         7MCNlTPhuRkGOaFRVr4UNWDFZnxHpp8zjT4YP95Dm8ZedzornTcInSdmvmZxfd9XSvwI
         +vO8yBjgOOjD/sq9N9ja/HI5XBU4I0MuklnGnyKEQuTUd8OqVSwspIMqLFzXTYh1uCEu
         jgUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763369036; x=1763973836;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=krcBBOXXNgmByuL+gQW4gFtN9O+xhncc8smKfCKnAKc=;
        b=CbCA+B90gWLBKYv0UU0gdWjT3IrOoZ3/IRS0pI5ES2YlDTBV6uR+i8fGSU98pbOyfe
         YxJ8f67BdfbWayk6/zwN2NyzSkE/xqG6L3ALOoFWSUFsUTDamH/Em5vN+SRB3M4ZEXRW
         p3QaCeaJzuZtLFH96103OllkQGrcTGzd2qIqxOsyKqS5HJAYbQwaClY7cSHgqpXbr3h0
         9NgOU7C37n859dOQ/3MLnr7kmoYIfWl05K5lojDwYvJkXSy7rXi7UQUzOABaSF7mKezA
         AWOy3FPj+nH3+IxMG0NOb6z2MQXwy6LDUMtcv/vfggMH47sVr4+pOXhK2lkIKzatjD6k
         KSvA==
X-Forwarded-Encrypted: i=1; AJvYcCX+NiwMRWIxAK0nh4fo4cxqkaMZloaoI8FgPBcnN0GdX0+h3Ju1yitGqyx5+hUZrN9Ulrpn+yrospU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwJR67MW6aenbPug6afsNf6sivZtQoSm3y/5eJNPI46Fm5o0eYz
	ViBvsirxrJqaJcaQ9gD93HwkT23e1fj1XKGqPbjw43Rm9Rmog1NpeQWd2oM4XeeD+Q==
X-Gm-Gg: ASbGncu3vLyNyftdjcroKQ1IjrDVqsj/Tyki5fbW4vn2WifGyLHUBrt0DqNDkemy2M1
	W7lOWhoWBZxrkj+tuoj+1L8idaajVtQRhXFVPb/hw0SmsV5rfFVHC8lydEy7RFz0j5aSCdurZTh
	MBacDHhitdK18qVealeLfuY3kVAnzpWMdvxXYthezECpLJzLsLMsmVYtPu86iD/f+Xepp2ihLgN
	ovN6E2iFLTOQnqm5jDlOWyO3cBCfur9LM9B36rUHd1uXpSQSBI3Pglvo1+Yi711xpNmPeV/A2Bp
	xN94IjpBzHWZq+bZi1lTqjKMRb3X1iQJGL2Sy51EFjiq9X+TEE8khUngvsZ9HKSvcGgZtL9l8C1
	yONQQyZBugXer2OwgU6H906BDD+Wy0cMKUqR37VLyV9F/drgtL2mq7RJ7HtzbrqCPTGftiulWZ9
	ap7hyWwqjAIIzxrGrKRoCXiJHUTSyJ5KXyRHULUXg/ih66p/TeLyoGZgngALIywz2KyBEHmhGVZ
	SMRXjZay8Rprw==
X-Google-Smtp-Source: AGHT+IF1EbPGYsfc/pxsJE4kDsmNcdC2LPwpTuUzYjlGAWZ1wwok3OkV+FoMDa4rA340G/cW12w9ug==
X-Received: by 2002:a17:906:3913:b0:b73:709b:c754 with SMTP id a640c23a62f3a-b73709bd3dbmr789698766b.35.1763369035997;
        Mon, 17 Nov 2025 00:43:55 -0800 (PST)
Message-ID: <7de75c50-56be-4a38-bfe9-fd0b73426be3@suse.com>
Date: Mon, 17 Nov 2025 09:43:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 05/18] xen/riscv: add root page table allocation
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <81d36dc5277d4756442f3ad5d64f37148787394a.1760974017.git.oleksii.kurochko@gmail.com>
 <8e3b791c-22ca-43e2-a3bf-f440032ab1ed@suse.com>
 <d114e2ef-3f33-4c3b-8782-44fbddf7eaa9@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: <d114e2ef-3f33-4c3b-8782-44fbddf7eaa9@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.11.2025 11:53, Oleksii Kurochko wrote:
> On 11/6/25 3:25 PM, Jan Beulich wrote:
>> On 20.10.2025 17:57, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/p2m.c
>>> +++ b/xen/arch/riscv/p2m.c
>>> @@ -3,6 +3,7 @@
>>>   #include <xen/init.h>
>>>   #include <xen/lib.h>
>>>   #include <xen/macros.h>
>>> +#include <xen/domain_page.h>
>>>   #include <xen/mm.h>
>>>   #include <xen/paging.h>
>>>   #include <xen/rwlock.h>
>>> @@ -103,6 +104,70 @@ void __init pre_gstage_init(void)
>>>       vmid_init();
>>>   }
>>>   
>>> +static void clear_and_clean_page(struct page_info *page, bool clean_dcache)
>>> +{
>>> +    clear_domain_page(page_to_mfn(page));
>>> +
>>> +    /*
>>> +     * If the IOMMU doesn't support coherent walks and the p2m tables are
>>> +     * shared between the CPU and IOMMU, it is necessary to clean the
>>> +     * d-cache.
>>> +     */
>>> +    if ( clean_dcache )
>>> +        clean_dcache_va_range(page, PAGE_SIZE);
>> This cleans part of frame_table[], but not the memory page in question.
> 
> Oh, right, we need to map the domain page first.
> 
> Would it make sense to avoid using|clear_domain_page()| in order to prevent
> calling|map_domain_page()| twice (once inside|clear_domain_page()| and once
> before|clean_dcache_va_range()|), and instead do it like this:
>      void *p = __map_domain_page(page);
> 
>      clear_page(p);
> 
>      /*
>       * If the IOMMU doesn't support coherent walks and the p2m tables are
>       * shared between the CPU and IOMMU, it is necessary to clean the
>       * d-cache.
>       */
>      if ( clean_dcache )
>          clean_dcache_va_range(p, PAGE_SIZE);
> 
>      unmap_domain_page(p);

Certainly.

>>> @@ -55,6 +76,39 @@ int paging_freelist_adjust(struct domain *d, unsigned long pages,
>>>       return 0;
>>>   }
>>>   
>>> +int paging_refill_from_domheap(struct domain *d, unsigned int nr_pages)
>>> +{
>>> +    ASSERT(spin_is_locked(&d->arch.paging.lock));
>>> +
>>> +    for ( unsigned int i = 0; i < nr_pages; i++ )
>>> +    {
>>> +        int rc = paging_add_page_to_freelist(d);
>> The anomaly is more pronounced here, with the other function name in context:
>> paging_refill_from_domheap() doesn't suggest there's a page (or several) being
>> handed to it. paging_add_page_to_freelist() suggests one of its parameter
>> would want to be struct page_info *. Within the naming model you chose, maybe
>> paging_refill_from_domheap_one() or paging_refill_one_from_domheap()? Or
>> simply _paging_refill_from_domheap()?
> 
> Thanks for suggestions. I like the option with "_*" as it is more clearly marks it
> as an internal helper without introducing "_one" suffix. I will use the same approach
> for paging_ret_page_to_domheap(): s/paging_ret_page_to_domheap/_paging_ret_to_domheap().
> 
> Shouldn't we use "__*" instead of "_*" or "__*" is reserved for something else? "__*" is
> used quite frequent in Xen code base.

And wrongly so. "__*" are reserved to the implementation (i.e. compiler / library).
Whereas "_*" (with the letter following the _ not being an upper-case one) is
dedicated to file scope identifiers. (That's mandated by the library part of the
spec, but imo we're well-advised to follow that, because even if we don't link to
any libraries, the compiler using certain symbols [e.g. __builtin_*()] is still
[potentially] getting in our way.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 08:56:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 08:56:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163509.1490602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKv2E-00033X-7B; Mon, 17 Nov 2025 08:56:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163509.1490602; Mon, 17 Nov 2025 08: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 1vKv2E-00033Q-49; Mon, 17 Nov 2025 08:56:30 +0000
Received: by outflank-mailman (input) for mailman id 1163509;
 Mon, 17 Nov 2025 08: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)
 (envelope-from <SRS0=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vKv2C-00033J-UK
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 08:56:28 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4d59f07b-c393-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 09:56:27 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b728a43e410so661538666b.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 00:56: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
 a640c23a62f3a-b73718fec4csm709580966b.39.2025.11.17.00.56.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 00:56: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: 4d59f07b-c393-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763369787; x=1763974587; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=axwBTnzXJTF9m0khDEA0BIuhtDC6t2zEDodGkwCq+dc=;
        b=Bbrn4A0LAiDCXjIX859zR9bebJmQyvJcTXZKwuwsGfU+YKCZzR2Ozd3SjVV3Jy/GNm
         YTgUctETfcbSz/0DXihPk0lBC5EZFxskHoppT6OiRwGpWXyS3JeWirOX80B/dWWXGSsy
         Kautw3ybdRDFSf0G7PRsUiniA6xlCsZJpz0VnGTo3yzTT7aJAeUaLW3xs5A68Jt8hO9H
         u++Lm4zFzIESCCzPaQfj2fCLXA90vLhMcGNrJzgKZNJWnBNWrbv1owlEXT/BVPdsNoj2
         ku4NKJiOnOYhl8PIXLf9PbBRdR6l2EPrejzBNZFoDs5zJiUl+AvOc+ljoio0RtOnv5Ht
         F0BQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763369787; x=1763974587;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=axwBTnzXJTF9m0khDEA0BIuhtDC6t2zEDodGkwCq+dc=;
        b=icCOfrqIn/y4xPRkUz8HVgVdSF7ssB0z9uItcqNyBzkezhQa87LM+13etB1YXDDGcU
         ZmsSnpf2wf3/wonrYxuGuyGtqBVLG35dhuMJX8FUL2tpQabOiHG8GsddxNBcUv9WeKOY
         OS6o7AATXKplXTMMq7ALM3p9q9vXuSWU/QEWxQH4Fg4QXiOsoWnJXLGiscAUBkzu1xoz
         3XV1fbjjfxOB6adgr0hlT1ZkzKzFXdpkioEBrHUPKRLsLg9qFERzm37LsvhzJMAgywsV
         oJp+rbWV1bBJNLB62uBYhiWVf3CpDoR0wRipFvcJtGhFiF6AfZFoudDdHR0U81xrYYIS
         44ew==
X-Forwarded-Encrypted: i=1; AJvYcCV0owjlTMBmC6irKeO1aAbWITqfjzHeQ3rJJu3NI1/ckFAa3ZfWzPh6TXoqC9Ie6l4fahQ8/eiRLsM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzi4COGnk+Fsi5DgPk8UZlo/Puhs+4jJPj0JdkCVrzTSpImu75F
	Fch5Dbd//zup2C+c/AUZWrx9alWn+/PA746l5aiXMG8IAZQBFYeIyyUVtzA6egnWQQ==
X-Gm-Gg: ASbGnctX7EiqNhkzHKpOj8tlksgR3DkGhzt9p0K0W81zFJAoDc8wK3BU33itkcNjXNI
	ydxTdNsnvDg1eOIqPMsLw1/D1t0BgmBHtQm+0Wp6hsXvGUgAPVy1s6/W2cxC3//Sn1YaPskHF0W
	LMhe1ZmV00f+dH748HBsk10F4zqHIf/RV8j10LqTnhwefqyZbCVmYTpGYLvMt0PCH+CogIxWJe4
	WmChJbBGkh9UNaqEYgb5NFhrFGQVy9BY5IaEbwQ7bctbO6a0Z7sHNbn2Hmc55X7feWiFa+yjE6n
	640Edc8M4E0yhy38KKOmt0QtmOtxedzUqEqDpqxFCZJVR0O4ykjViEh8bWb2pi8SfMlGk1kvdqL
	+Cw2YLWXGzM+X05Swa+W+z17FklIIwuGjEWKcqhv9Xz7rMCefxAYF4h/jaX2hv9juYse/B8prPj
	N4Oo/rbPvuhiVorPt5rkKeuxjgkG0KHicck8N+bBPx92ym3rWqQW97I73ms3Sm/5lt
X-Google-Smtp-Source: AGHT+IHgMPYwBGJw/4nkNbcaoiFH1pVRnH9os8z5ozUJ8yPYfFcCVL+nd+tS75FSjbF9iUFUwQaolg==
X-Received: by 2002:a17:907:6e90:b0:b70:ae6a:5fdb with SMTP id a640c23a62f3a-b7367bc46b0mr1090580566b.45.1763369786986;
        Mon, 17 Nov 2025 00:56:26 -0800 (PST)
Message-ID: <31c69c86-46ba-4670-b265-10baa0001f85@suse.com>
Date: Mon, 17 Nov 2025 09:56:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 10/18] xen/riscv: implement p2m_set_range()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <d689c48582505b0dab6896b414d01d844d834bd5.1760974017.git.oleksii.kurochko@gmail.com>
 <cfe9da20-5680-4f42-92f6-f46350811380@suse.com>
 <3fc28006-4a03-4d95-8db3-71a7b3131f82@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: <3fc28006-4a03-4d95-8db3-71a7b3131f82@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.11.2025 18:04, Oleksii Kurochko wrote:
> On 11/10/25 3:53 PM, Jan Beulich wrote:
>> On 20.10.2025 17:57, Oleksii Kurochko wrote:
>>> +#define GFN_MASK(lvl) (P2M_PAGETABLE_ENTRIES(lvl) - 1UL)
>> If I'm not mistaken, this is a mask with the low 10 or 12 bits set.
> 
> I'm not sure I fully understand you here. With the current implementation,
> it returns a bitmask that corresponds to the number of index bits used
> at each level. So, if|P2M_ROOT_LEVEL = 2|, then:
>    |G||FN_MASK(0) = 0x1ff| (9-bit GFN for the level 0)
>    |GFN_MASK(1) = 0x1ff| (9-bit GFN width for level 1)
>    |GFN_MASK(2) = 0x7ff| (11-bit GFN width for level 2)

Oh, sorry, 9 and 11 bits is what I meant.

> Or do you mean that GFN_MASK(lvl) should return something like this:
>    |G||FN_MASK_(0) = 0x1FF000 (0x1ff << 0xc) GFN_MASK_(1) = 0x3FE00000 
> (GFN_MASK_(0)<<9) GFN_MASK_(2) = 0x1FFC0000000 (GFN_MASK_(1)<<9 + extra 
> 2 bits)

Yes.

> And then here ...|
> 
>> That's not really something you can apply to a GFN, unlike the name
>> suggests.
> 
> That is why virtual address should be properly shifted before, something
> like it is done in calc_offset():

Please can we stop calling guest physical addresses "virtual address"?

>    (va >> P2M_LEVEL_SHIFT(lvl)) & GFN_MASK(lvl);
> 
> ...
>   (va & GFN_MASK_(lvl)) >> P2M_LEVEL_SHIFT(lvl) ?
> In this option more shifts will be needed.

It's okay to try to limit the number of shifts needed, but the macros need
naming accordingly.

> Would it be better to just rename GFN_MASK() to P2M_PT_INDEX_MASK()? Or,
> maybe, even just P2M_INDEX_MASK().

Perhaps. I would recommend though that you take a looks at other ports'
naming. In x86, for example, we have l<N>_table_offset().

>>> --- a/xen/arch/riscv/p2m.c
>>> +++ b/xen/arch/riscv/p2m.c
>>> @@ -9,6 +9,7 @@
>>>   #include <xen/rwlock.h>
>>>   #include <xen/sched.h>
>>>   #include <xen/sections.h>
>>> +#include <xen/xvmalloc.h>
>>>   
>>>   #include <asm/csr.h>
>>>   #include <asm/flushtlb.h>
>>> @@ -17,6 +18,43 @@
>>>   #include <asm/vmid.h>
>>>   
>>>   unsigned char __ro_after_init gstage_mode;
>>> +unsigned int __ro_after_init gstage_root_level;
>> Like for mode, I'm unconvinced of this being a global (and not per-P2M /
>> per-domain).
> 
> The question is then if we really will (or want to) have cases when gstage
> mode will be different per-domain/per-p2m?

Can you explain to me why you think we wouldn't want that, sooner or later?

>>> +/*
>>> + * The P2M root page table is extended by 2 bits, making its size 16KB
>>> + * (instead of 4KB for non-root page tables). Therefore, P2M root page
>>> + * is allocated as four consecutive 4KB pages (since alloc_domheap_pages()
>>> + * only allocates 4KB pages).
>>> + */
>>> +#define ENTRIES_PER_ROOT_PAGE \
>>> +    (P2M_PAGETABLE_ENTRIES(P2M_ROOT_LEVEL) / P2M_ROOT_ORDER)
>>> +
>>> +static inline unsigned int calc_offset(unsigned int lvl, vaddr_t va)
>> Where would a vaddr_t come from here? Your input are guest-physical addresses,
>> if I'm not mistaken.
> 
> You are right. Would it be right to 'paddr_t gpa' here? Or paddr_t is supposed to use
> only with machine physical address?

In x86 we use paddr_t in such cases. Arm iirc additionally has gaddr_t.

>>> +#define P2M_MAX_ROOT_LEVEL 4
>>> +
>>> +#define P2M_DECLARE_OFFSETS(var, addr) \
>>> +    unsigned int var[P2M_MAX_ROOT_LEVEL] = {-1};\
>>> +    for ( unsigned int i = 0; i <= gstage_root_level; i++ ) \
>>> +        var[i] = calc_offset(i, addr);
>> This surely is more than just "declare", and it's dealing with all levels no
>> matter whether you actually will use all offsets.
> 
> I will rename|P2M_DECLARE_OFFSETS| to|P2M_BUILD_LEVEL_OFFSETS()|.
> 
> But how can I know which offset I will actually need to use?
> If we take the following loop as an example:
>    |for( level = P2M_ROOT_LEVEL; level > target; level-- ) { ||/* ||* Don't try to allocate intermediate page tables if the mapping ||* is about to be removed. ||*/ ||rc = p2m_next_level(p2m, !removing_mapping, ||level, &table, offsets[level]); ||... ||} |It walks from|P2M_ROOT_LEVEL| down to|target|, where|target| is determined at runtime.
> 
> If you mean that, for example, when the G-stage mode is Sv39, there is no need to allocate
> an array with 4 entries (or 5 entries if we consider Sv57, so P2M_MAX_ROOT_LEVEL should be
> updated), because Sv39 only uses 3 page table levels â€” then yes, in theory it could be
> smaller. But I don't think it is a real issue if the|offsets[]| array on the stack has a
> few extra unused entries.
> 
> If preferred, Icould allocate the array dynamically based on|gstage_root_level|.
> Would that be better?

Having a few unused entries isn't a big deal imo. What I'm not happy with here is
that you may _initialize_ more entries than actually needed. I have no good
suggestion within the conceptual framework you use for page walking (the same
issue iirc exists in host page table walks, just that the calculations there are
cheaper).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 09:26:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 09:26:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163520.1490611 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKvV2-0007GM-Ce; Mon, 17 Nov 2025 09:26:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163520.1490611; Mon, 17 Nov 2025 09:26: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 1vKvV2-0007GF-A6; Mon, 17 Nov 2025 09:26:16 +0000
Received: by outflank-mailman (input) for mailman id 1163520;
 Mon, 17 Nov 2025 09:26: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vKvV0-0007G9-JS
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 09:26:14 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 73b1cbb5-c397-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 10:26:09 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-640c6577120so6971604a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 01:26: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
 4fb4d7f45d1cf-6433a4b2155sm9674600a12.29.2025.11.17.01.26.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 01:26: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: 73b1cbb5-c397-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763371569; x=1763976369; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BKjDAi0ec2USBXlFJ3bdHpd9TNQRFpY7FQr6YKiiTu0=;
        b=b6caoej9ahd+SKWHIbpobWonWFr/EpTJMmUbfXC2+6DGIddWGsuK76bOXgVxe10IAY
         5l37nZmx9xGXtIS5OkMEKaDtBeeYQKMvpe8o3Z6v6WKfEYDnory5gH+AqVC/Sw5xbUbh
         ra7Bt54iScSVSNAYqyxogjd1EROrtzxDPcoLBgJeIMdJJDOzT71+o3LG8sW2Py6JBHBM
         sgAJg5IgGtsHNb1aQcj22bTWrWPGN0aP0mgM1OrSzmtXiVy6IGsnIYKaiP4lUhVt3Csf
         cZpCYAhYP207f31GHyEqbuUV5AT26iG0TqEv0RcVP5jgjQ1BxmdbAzq9Hh5p6fw8KMKu
         mW5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763371569; x=1763976369;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BKjDAi0ec2USBXlFJ3bdHpd9TNQRFpY7FQr6YKiiTu0=;
        b=m7oOOq/2P7N0UDzDUgy95aLnqrQLJFLBdNXCHcLPl3Ohh+ztpMtJrKY2nP9Y401FxU
         pfAyUPmiQKuiZMXMAfbwi44TGL6rfUqo8nAvazOY4gSqqv2/MMKmVAh05xMcp1EiJjF+
         Qs0a89L8PKVr8fN/CeDE4Q1gs+CQ7wrsWWi7iZWauyBKxNjGeJvJ9ohLT/yHsha5z2B/
         O1jjd9GJu6g5ssJ2vB5Y1qcmdFPQ/OM89IqV13dCWFYIG25UJM7zhO6R/mLMj5PB5sXL
         oqPctP7cKT5/eC2Xve85QlZWdKNDcZsulmKZgpRjamPg7GzMcf+GAKfQU4erVsPiOZal
         M0zQ==
X-Forwarded-Encrypted: i=1; AJvYcCXSOMsc6fdolKeDEqUhhlJLy5WGqLP91nYYdK6Wuf3fFh5mVygMPFN7fiAre3ZffgC8t93ET80hRoc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YybY9ZP2cUUKbCJfFvpQfxkMLKNyH1AmT6PDvodx5q1sceNr5TZ
	5YKtOGCoNCLOxhSfb5RT1MnoMTD71UtdRqcLMWQw5VrA3AES9Vxx+ssML2OTmX3Dug==
X-Gm-Gg: ASbGncv+3q4tgUB24xNBt53bVdCPs/GFQ7UqpbBTmADytKHMpZv9gNt32pnAduDjVLq
	QgzEJ8rZf2gKvTQaISacQwBggQ3fshbY2tWGa1/yYjiTCjoHYPx5W6DA7cKVJaVFqrIH61s1c46
	fbIGM4xV/0DPF8fDePQ0U1ARTJmp8KVoSx1cX512evWY9RKbu6NkNWmiL00J3Fr+GPRPKYvrixf
	+syanSnx5k91Tx5jKEj0dHLxIENLNhDd+h8s8DfeCTHjAV0jrDqu548a4krU4+5ZW4xNRzeRrNG
	WKcbdgPyukWDwt6ZWONkzNPOBUlE+HNdI+JsNIzNFEXF8DxzzO5pAzbUSZfM/B28DE/qmiIT7mx
	rGgNKbIU0YHUXsQ1+9BKsqTV6VCv1BTBFfcOfR6PjKjzcOpWyVbe78Y89+pSQKym+HO7phwCQph
	ugsZvjzhQHVjrxIUiHMC9UGUpdTm0lAqM+lZjigBFtOtYSS0C/4JugUbrYWxUnjy56ysaKlyQRJ
	Tw=
X-Google-Smtp-Source: AGHT+IGSJ5zWrw1JjwXGiwCDLQxjhXxBpw9cYhBuWJdCX0vhBR/Sw8Z0QxksWmuif8Z0z6j7VjGiJg==
X-Received: by 2002:a05:6402:27c8:b0:640:ebca:e682 with SMTP id 4fb4d7f45d1cf-64350e8a783mr10393485a12.21.1763371569274;
        Mon, 17 Nov 2025 01:26:09 -0800 (PST)
Message-ID: <fadc4456-17d1-4ba5-9623-db928238f3b8@suse.com>
Date: Mon, 17 Nov 2025 10:26:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] ioreq: Check for out of bounds vCPU ID
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>,
 Julian Vetter <julian.vetter@vates.tech>, xen-devel@lists.xenproject.org
References: <f6cc34ce96693545ba9b8db6fe668c37c80f16c5.1763137553.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: <f6cc34ce96693545ba9b8db6fe668c37c80f16c5.1763137553.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.11.2025 17:32, Teddy Astie wrote:
> A 4K page appears to be able to hold 128 ioreq entries, which luckly
> matches the current vCPU limit. However, if we decide to increase the
> vCPU limit, that doesn't hold anymore and this function would now
> silently fetch a out of bounds pointer.
> 
> All architectures have no more than 128 as vCPU limit on HVM guests,
> and have pages that are at most 4 KB, so this case doesn't occurs in
> with the current limits.

DYM "at least 4 KB"? If there was an arch with 2k pages but 128 vCPU limit,
it would be affected, wouldn't it?

> Make sure that out of bounds attempts are reported and adjust the around
> logic to at worst crash the offending domain instead.

Wouldn't we better prevent creation of such guests? And point out the need
to adjust code by a build-time check?

> --- a/xen/common/ioreq.c
> +++ b/xen/common/ioreq.c
> @@ -100,7 +100,14 @@ static ioreq_t *get_ioreq(struct ioreq_server *s, struct vcpu *v)
>      ASSERT((v == current) || !vcpu_runnable(v));
>      ASSERT(p != NULL);
>  
> -    return &p->vcpu_ioreq[v->vcpu_id];
> +    if ( likely(v->vcpu_id < (PAGE_SIZE / sizeof(struct ioreq))) )
> +        return &p->vcpu_ioreq[v->vcpu_id];

Imo you then also need to use array_access_nospec() here.

> +    else
> +    {
> +        gprintk(XENLOG_ERR, "Out of bounds vCPU %pv in ioreq server\n", v);
> +        WARN();
> +        return NULL;
> +    }
>  }

While I'm generally arguing against such needless uses of "else", this one
is imo a particularly bad example. The brace-enclosed scope give the strong
(but misleading) impression that the function is lacking a trailing "return".

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 09:31:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 09:31:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163534.1490621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKva6-0000Sk-37; Mon, 17 Nov 2025 09:31:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163534.1490621; Mon, 17 Nov 2025 09:31: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 1vKva5-0000Sd-WF; Mon, 17 Nov 2025 09:31:30 +0000
Received: by outflank-mailman (input) for mailman id 1163534;
 Mon, 17 Nov 2025 09:31: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vKva4-0000SW-No
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 09:31:28 +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 2c4c7bb6-c398-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 10:31:19 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b7291af7190so577950666b.3
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 01:31: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
 a640c23a62f3a-b737c38c619sm600649466b.1.2025.11.17.01.31.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 01:31: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: 2c4c7bb6-c398-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763371879; x=1763976679; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yerW25dGvgcbFbGkdVLoeOxLybcdbOVC80ZrnezDTiU=;
        b=CRMkmWgGVx8rHly+L81yl66otol9a8g8Nn+V8TexVpOdWd3h669/mDLTsHoVFpGaiy
         3kfu0RTUsz+ussvSNOK/5qLSIaY87J/4hC75mkgr0TAODssRgLkO1aEi/EEO3e19YjwD
         kiQC+TzF9OcSuryFOomkR8bKE+xGe9SjgO8N18DjSzbSzCoen6gtQdo1Rtd+SFSLHr4K
         c9bN2cd6Jxi7rGRuar1Ee+LM5dvixZTsky/A1QuyHtRD3inJ5enNjKAkaYaDThH2goR+
         mLtEoVD3jDaxkk0PHSU1LRhSD5hTHh9D8Hq5JRD9AtkomQuwTFMHfwZquYUxHdFwtxgL
         QJ+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763371879; x=1763976679;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yerW25dGvgcbFbGkdVLoeOxLybcdbOVC80ZrnezDTiU=;
        b=mF7PFwqB00kvA1tm9a4zN8qSXC6gr6K6IG5Cjfz0mVDUmtxOU/wgEvbcrJd43JD2ye
         hC+R9nwp2q81OPdIsJqgtLgIQDIBEByhY4GeiWBCH9LCVlikJBanzL1w25kNhFMujHFj
         uqHzJUuWp6rNZjyNCwXS4GQ0MdiEipQEO4kZqaUx+Oy77MPdFYCWo+DWdb6Qilr9VDMF
         H2BED1hOwivKE88m9XeM7ugKjZ4H2zF6N8Q+6X/fBx+6/iZ867WA0B6H6y9dP62TOF+L
         H4hFsGdnH9jzg8RwgxwzalvA+Od/zYJYz2RbOfqtmRFuN80WtjE+27nnRH9KffYD715o
         Xsmw==
X-Forwarded-Encrypted: i=1; AJvYcCXoIn1i1ldoztTv2vSaJPCSHpBe1VC/uv6kXFuX/vnidjmB9v0Pb26lLkU33XoSZI4jcNcmOg+LJiQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzdUyr3QWijTOQpy9c0yCELtrgUAh6mgRmcxmodKOIVMMN4wnkm
	hD8P+WSe1q2DvcYE0+kGGfPUs8CqPTjubKxdxTjoLRix4YFaXnuQovcKwOVtlFYumA==
X-Gm-Gg: ASbGnct+DytdOkVrNxfdM1IQEYtSFJtWPugy6Zh+XjL66wSYkBKU8GAt/6J9NZg/WIj
	fgbv8UFKZloMcgok04qDBLzKOK74xtShV0ubJWEfgma7ZKrgjW3PI/1kvdI/cWUtNdsfz7K+0sf
	PvCt9G2sj9SLgTHSNiZdmxnwdnSIypTnc/k+rYlLIEUMA7Km8C0dx2EnchEyFOi7msgDX2laI12
	hbL7mVqJ7lXc6IgFOVOaaJSWfC+mOGXATjoryVampMITbAROkHP6XppjMbsxDRzDRKScVuzCoeG
	H5vG4CjKklHZFWczG3ctiZAqU+Cp0aDIOeXiD8MZL2YOugklM8jmCFIYxW2uVdvCt0OiNlKtlgf
	kyK1BZG1rvK21j8AnZfxFnHH4PHeljZd6mHnJQ7gVEVKuptnDHSPARpdAM0NPkBBwR+dWEgFC1I
	20VU/njp/Av1B7McS4znURwEUfsAgKW8q67GYZ3n8Rsm/ywgpGuhqzIO3CI+HJ9HHf
X-Google-Smtp-Source: AGHT+IHXQMrxWpVsS/Z2t9jGaxu45zEl1JZ4nBag/HULCyd7lWkQ8v/gjAmAqLSV7ZwCARMXD4fixQ==
X-Received: by 2002:a17:907:3c82:b0:b6d:5df7:3490 with SMTP id a640c23a62f3a-b73677ee60dmr1002033366b.1.1763371878846;
        Mon, 17 Nov 2025 01:31:18 -0800 (PST)
Message-ID: <0557029f-5946-4ee1-a622-842e2698a6c8@suse.com>
Date: Mon, 17 Nov 2025 10:31:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] common/libfdt: optimize usage
To: Grygorii Strashko <grygorii_strashko@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>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251114180130.346755-1-grygorii_strashko@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: <20251114180130.346755-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.11.2025 19:01, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Now all libfdt features are built-it unconditionally, but...
> 
> X86: The libfdt is used on x86 only to parse Hyperlaunch/dom0less Xen
> nodes, so full libfdt is not needed in this case and minimal, RO
> configuration can be used.
> 
> ARM - situation is more complicated:
> 1) ARM reads Host DT (fdt.c RO)
> 2) ARM reads passthrough DT (RO)
> 3) ARM generates dom0/hwdom DT from Host DT (there is a mix of WIP and SW APIs)
> 4) ARM generates domU DT (there is a mix of WIP and SW APIs)
> 4) With EFI enabled - ARM needs RW API and fdt_empty_tree
> 5) With CONFIG_OVERLAY_DTB - ARM needs RW and fdt_overlay API

This goes too far, imo.

> --- /dev/null
> +++ b/xen/common/libfdt/Kconfig
> @@ -0,0 +1,14 @@
> +config LIBFDT_WIP
> +	bool
> +
> +config LIBFDT_SW
> +    bool
> +
> +config LIBFDT_RW
> +    bool
> +
> +config LIBFDT_EMPTY_TREE
> +    bool
> +
> +config LIBFDT_OVERLAY
> +    bool

Nit: Inconsistent indentation.

Also, how would one be to guess which of these may need selecting? What do
"WIP", "SW", and "RW" stand for? What exactly would "empty tree" mean? Yes,
you follow what the files are named under libfdt/, but that naming is
overly cryptic, too. The comments at the top of these files also don't
say anything helpful.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 09:34:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 09:34:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163545.1490632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKvcr-00016K-Fu; Mon, 17 Nov 2025 09:34:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163545.1490632; Mon, 17 Nov 2025 09: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 1vKvcr-00016D-Ct; Mon, 17 Nov 2025 09:34:21 +0000
Received: by outflank-mailman (input) for mailman id 1163545;
 Mon, 17 Nov 2025 09:34: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vKvcq-000165-Ob
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 09:34:20 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 971bef05-c398-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 10:34:18 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b737c6c13e1so300550766b.3
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 01:34: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
 a640c23a62f3a-b734fda8bc8sm1041576366b.49.2025.11.17.01.34.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 01:34: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: 971bef05-c398-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763372058; x=1763976858; 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=EA40i+e9TagtePB0HRsi1abTpKrLFNjOZR0t41vR2b8=;
        b=Uv+9U+uN8+ei+4seiiNYOH2bGHhFOQJlyUHbj9q7Fpdoov5efB36Mml3v30ZU7XTd5
         2zxN3EqFYv7YyvJ2TH/Q1MgzagEjwKae/xOwyqTlr7xYjXOlGCItSW8cIDbRGYhh3qLD
         VKId1qdA7vEWTf/qZ3eLYhypbYfPRNHoL8bqdfoKvS2jEuXF7odxk84DHLEd62UkZ9QO
         R8eSYq0F/oBcRdrohaIyKhymyvUp0BADbR/LScrxdW9/1s6M1Y22xyBfls/ohiYgUlck
         rxYNOBMv5LHGm1z4n8kKlJuYZVqWNiqS9HAq/PS5zi5LGGmvtYiimxonwisvydXY/y48
         1EJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763372058; x=1763976858;
        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=EA40i+e9TagtePB0HRsi1abTpKrLFNjOZR0t41vR2b8=;
        b=NWeADsgSMSaz/2J1api4D4fiEVRgnHJDDThG4tQFTL80kKSYTNRfBKWHKXUf3a5ebc
         nDzfqAAx70TdQ4szMtvP4daKX4AMOX50Ta8igJENMelMOCwbH4I52n1og3BSCSfW97eJ
         D0BhzsklcrrajsyFmHGDn3Ft74ksE1RBlX5wN7l2uNQuhDz7t/8XG03ngesx7HGRDhgW
         1WbB76cbLiIj/3tOS3KoSJlrinzRjrdxm/DNp5uw0LEuQKCHaOLcqbN9e5Zd7vV97HPv
         TY8TVf2Nboa8F2wEYaxACHK9zKjxuHKUNeIl1/5Lfa43zgjjPZg+vrkhPnOJ0sJ5t2GO
         /U5w==
X-Forwarded-Encrypted: i=1; AJvYcCXCon3HvQbTxlRnPoLsaj9WEPuhbCfOtmb5gj92/kSgakVyj1f1zwY1rpE5Javugqz3YpxkOd0xrGE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx6doKEpoF8YypIfNZa/3DJOvqhCU3tUBUdmwCt4dfxOVMF1D8M
	8+uo+KcMpwEC4oUS3GXwbMyB0L1F8U0rF0lmJRalh8blnmOMtjXsZNrgTcD0+2N6IQ==
X-Gm-Gg: ASbGncsgElxJ01IrHZA2wG+5NhTN8hktm9kIak3KIENV0MNKwp1gzibjQKLggzkzyPm
	qEOf/xFp3dIR93yr6hOi1jE9z9pFrSAddv/voFm80wm2WcqCwWcNbEl7TefbDWNXZF2o+KHDxPZ
	Anq0pbjAfRBwduhg2SDwEdch2klPeM0tIoZjHgRWaOqiZEsUs4uLPKt4OS2OFcx5BTj5dzXmodi
	qxokGO5P00F3IaH/wn1cbEB0OKbOYmg9xifEOT8Hp4MMjnOnn1YsKn11GuHjfGlk/JhkYw1qguT
	Tbdjk7MRo/GyvWBTcA3bSgraQgX+qbGxll8+i3h6j9OXom+iG1Q6spnO0pBJj47BnGd4gJ5Ngtj
	nb1tlTzIAdiVPmK+nvVoz8K7DI/kTZm6JEqKeJmzJPRoyVgdVEdxtv4btcLb4Cz7o4BgNvhyvL9
	WxUh7hhnJ4T81n9Aaehmxqv/tYfFZsLmlzt0T0CNJXwPBCGEwQbLU1H3lmbe6NaZWL
X-Google-Smtp-Source: AGHT+IHu+kIECWmrE0Vpr4tvn8DNNSNYWPegJUiJH9tGqInyvujf7Hbo/oy/4W3xIQeoX2j1LtLiBQ==
X-Received: by 2002:a17:907:a08a:b0:b73:870f:fa32 with SMTP id a640c23a62f3a-b73870ffe43mr665375166b.43.1763372058127;
        Mon, 17 Nov 2025 01:34:18 -0800 (PST)
Message-ID: <991e0324-98af-4264-a527-703c72439780@suse.com>
Date: Mon, 17 Nov 2025 10:34:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] common/libfdt: optimize usage
From: Jan Beulich <jbeulich@suse.com>
To: Grygorii Strashko <grygorii_strashko@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>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251114180130.346755-1-grygorii_strashko@epam.com>
 <0557029f-5946-4ee1-a622-842e2698a6c8@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: <0557029f-5946-4ee1-a622-842e2698a6c8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.11.2025 10:31, Jan Beulich wrote:
> On 14.11.2025 19:01, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> Now all libfdt features are built-it unconditionally, but...
>>
>> X86: The libfdt is used on x86 only to parse Hyperlaunch/dom0less Xen
>> nodes, so full libfdt is not needed in this case and minimal, RO
>> configuration can be used.
>>
>> ARM - situation is more complicated:
>> 1) ARM reads Host DT (fdt.c RO)
>> 2) ARM reads passthrough DT (RO)
>> 3) ARM generates dom0/hwdom DT from Host DT (there is a mix of WIP and SW APIs)
>> 4) ARM generates domU DT (there is a mix of WIP and SW APIs)
>> 4) With EFI enabled - ARM needs RW API and fdt_empty_tree
>> 5) With CONFIG_OVERLAY_DTB - ARM needs RW and fdt_overlay API
> 
> This goes too far, imo.

The more that, unless OVERLAY_DTB=y, all code and data moves to .init.*. Is
coverage in in .init.* really of as much concern as runtime code/data?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 09:43:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 09:43:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163558.1490641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKvlN-0002vX-8s; Mon, 17 Nov 2025 09:43:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163558.1490641; Mon, 17 Nov 2025 09:43:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKvlN-0002vQ-5z; Mon, 17 Nov 2025 09:43:09 +0000
Received: by outflank-mailman (input) for mailman id 1163558;
 Mon, 17 Nov 2025 09:43:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vKvlL-0002vK-Vj
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 09:43:07 +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 d1d1d53d-c399-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 10:43:06 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-640b4a52950so5825687a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 01: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
 a640c23a62f3a-b734fad44b4sm1050807366b.28.2025.11.17.01.43.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 01: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: d1d1d53d-c399-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763372586; x=1763977386; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Muu8mGOB3Hor5+Xmb/Z/xvUInL65jcNOJXO+1HzjbN4=;
        b=HKPZDww9unooJanXK0e+180z1w6uznvUkwCL3A4IFmTOh5qP70MRG54kc+tJ4VLJ28
         b/FxA4A6WVyb6SSFzmJoYEuvItDfL3hhMHZGohzfZwqHP/GdSL/hgZKEl+GXf/A+s9Uj
         cTyHrU8DDqw4V5q7JjFnmSXT4AJG3cHLLb/QfRC2EK+55NmD6KWfbRM3arYU9CZwcSm7
         bkcJnWzhKKO1LVsoqlh4qhOj0g58LPgEQywqMJiFyPRB8YFjfY/N9ccxmaLS9qSkflEq
         0ZPKwIHyZoOBCJOPoZ13MRMrD+x3JT6jj0zt8WB5N6LjSB7brssxdCRBM4fhbLRxHP8v
         UpMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763372586; x=1763977386;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Muu8mGOB3Hor5+Xmb/Z/xvUInL65jcNOJXO+1HzjbN4=;
        b=sM0eQjwsQZrn6oCKZuZyGOEDGz3KcBF3LJF+w2/iW9ng6QGmUTMU58JfXQbuB02m1e
         XrGa5sieT2Gia3b8v/H7KjjS1eLFOTVAiT7bhyGO7x17YUulev1fLIs46NIuKHpp10v+
         I2eHFRGAeUCGSLJC3mpyJBFTD+CSjGdI4ssMRE8dH/KIS6+WJ/fFQKpeZPxDwjCKMsot
         fZ9TA9t1wPwWf/DUpTkhF+tEolJc8kciuEwyYNWP77NE19yH2PzIFbdhhTYd3rxUXkwa
         fdjmDiwJv5r22YPi6lRYbKpgRFtjZiqiDr2q76dVYiwZM1RF6mny3UvFo5/Fafc8O5sX
         fLoQ==
X-Forwarded-Encrypted: i=1; AJvYcCWK/gKiBAxrPAt7+TRsZj012CY3gbofsElwNzzT2MOBlla/eqTN64NNAFS+Cu9HIGUi4SSAefhfmT8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywz9ZCGtyQa1mcbtP1JcHczV6hMnT4yZlr65z16xA8J9HbTfTo4
	jHzrs80h8XmZaa47tXJ8NHd52vxO4r8JjpjxkO5AjRKtpNd6pjcKtsFyDAlHUKABVQ==
X-Gm-Gg: ASbGncvWUBFOJtHD+9g7st4978Qxun258Dubcx8CF7lfDjqULFu7OalWJmtvRpuGRef
	7KY/DGQI+kvj9tBahM2AYoxu/L18XUdIUmmqZZVOiD/l3K0IpcGDs6VK1qHCHKLcsWJ0hPps4Mm
	CxqEwtsS2yCPnU52JXtUCSlMSMhagv3481IO+NQr2Wq48DZQMFf6W6INIFdqGY9+uXfsK1NUimK
	rLgytmW7qOCU4tgCPwHRag/Hmcpt18Fare5GBOTyz9iRkENqh5ng0vzBLKobs3e1+qHY6sJB+ZJ
	xTcQr4MnS4Zof1Uy3iYBU4YOYh/NjnZsjvkX2fKEtdeylA6s7Dzku2YaRpgR0YCV25ih2VBbh+1
	uLgZdpSbsxyYEtYmk1DRpbNO3wn15tY+lAyytahj+pLvjrEPp5ZyYN7K3ltSgxKXyPxj3NYSpWJ
	4XWfqu29crUC2H72YQm5tmwo4WUY2VH89Oyv2fUcI8qkoiSJmwxwo5CDqkC7CNDYwHdmJmPZ+VR
	g8XaFblme799w==
X-Google-Smtp-Source: AGHT+IFzXFqYU7iXFFxKVQf57bz1ySs5E7cnXfb4y+WcKXNnCWvwX9FSGoHP3mcwoF9RPSfqFM8+jQ==
X-Received: by 2002:a17:907:5c9:b0:b73:5b9a:47c7 with SMTP id a640c23a62f3a-b736795d4aemr1263810766b.51.1763372586167;
        Mon, 17 Nov 2025 01:43:06 -0800 (PST)
Message-ID: <2db5085c-a04d-4745-8fc7-5e257ab30926@suse.com>
Date: Mon, 17 Nov 2025 10:43:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.21] x86/ucode: Add extra rows to the entrysign model
 table (again)
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251114152447.272823-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: <20251114152447.272823-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.11.2025 16:24, Andrew Cooper wrote:
> Link: https://git.kernel.org/tip/dd14022a7ce96963aa923e35cf4bcc8c32f95840
> Fixes: ff8228ab4658 ("x86/ucode: Relax digest check when Entrysign is fixed in firmware")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> 
> Found because AMD have released ucode to fix RDSEED on this CPU, and I
> cross-referenced the tables.

I wonder how many more we're going to see.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 09:47:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 09:47:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163570.1490652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKvpf-0003YA-PR; Mon, 17 Nov 2025 09:47:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163570.1490652; Mon, 17 Nov 2025 09:47: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 1vKvpf-0003Y3-MB; Mon, 17 Nov 2025 09:47:35 +0000
Received: by outflank-mailman (input) for mailman id 1163570;
 Mon, 17 Nov 2025 09:47: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vKvpe-0003Xx-MI
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 09:47:34 +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 6fa927f4-c39a-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 10:47:31 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b73161849e1so699450666b.2
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 01:47: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
 a640c23a62f3a-b734fda97dbsm1025202466b.59.2025.11.17.01.47.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 01:47: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: 6fa927f4-c39a-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763372851; x=1763977651; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WZsrpAZ13hbraJZ3AH/wHfX5ef/668cAcJsEKpAAW5w=;
        b=VaDZ8WvI/0Z3DoNxCtqRvD50XE9ugF9NrcMKRtwZy7PUHkiDKLNzUlCzTk/Y5g4YuB
         /jgSKFnpzEMFgeVi5aXabiOTXNVbQKhjGo3TxFir4OeFPlp4ztmx2Ds5GCiKwtLtCQzY
         hbYCaaVYNM2xizuPiLNhg7nsl3DlPPlOG/s2YPryp7vQf/MV69PnB/0YOjuUA14zEkrx
         qhC9l8ycI+MCGJXlTPYif6wMT8LvRuWXdQnAHBjfA98i3ULpCNR1VuFChspDa4H7Fsy7
         +8YE626fvwROuJ9M9np2ukSUprMjlV+oekAwVc6qVSyHYXTm2vH/vxGLHHmaTg0rv0PE
         0mUQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763372851; x=1763977651;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WZsrpAZ13hbraJZ3AH/wHfX5ef/668cAcJsEKpAAW5w=;
        b=MnYCVMnR/H9l3IyAdZ/gG63CHabWwUtmJZSbrECpcBTgtNEYob5pgoWWxwZe0QCHSG
         FEN0Q77rSIsj8fbT4a77chgQ4NLgBhGMe/2wX3pMN6n0BXTbnfXPRwOtyua7EzbJ8NP3
         5wuQt9K25ecc3vjHE6o7fGs5gWut6OIAQ3m2E3h99Hh9ilkdj83LAu0bXJ5Iw9crYyLM
         oW3r2Xgvzi+5wr4UpXN313C0xyhx0sC6FY2LbKh/7X6bKfB/fczTZL/+EoKoLRzrhEma
         zOb848THf9/OexUyigCJZlyxp98YuhM5/GQHoZXpTuXAgZfz8AzWB9L7UfdPFHh2vZNE
         P7eg==
X-Forwarded-Encrypted: i=1; AJvYcCV47ZDNE1mzjJAk5YJ0i50HyQBqYxPA0ca1GP2SZsQ8Ltp/062l5uIFlAgbnSoC8cNBjmEIvPKXmG4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxLVfGgFteB+4LFMib0gO1V83evbFMVFGV/suI98AXGYghjCcxO
	e6A316ADM9lpPOfEaC2Tt+1Ef/OrS7Ty/Iu20RaADdJUtxhgeQZJN9dPWfyF3ADrrw==
X-Gm-Gg: ASbGncvyfidtU8MrkCjEx9LKtqmeiXAaC6MwBG8RtPr6rlzAqNOnfqeViRFYmIPW18g
	n7OsDe3AGQDxaAcXOkR9qMHrQHpb0+CoDAy3PqOr07/AoVKXGSWo2n8WD2Y79a5ex4ZyiIlFrUV
	gmAtLNG/kNpxWNVsr5Fe+kNHq81rsQww1BPJQbLnbXb+PonYdqNrDEUCs4m0gblW+WBLOlu+Uvy
	WhwkCc1HtAriL6aVaCT0/AGUr77xWlrUNngUXM2FEZ0NjQWhSEpOl1/5odb3AC4zBE0iC4vw+Am
	Hzf/gYLWSRd+0LFWY9TE8ln6NyjwAttCtJZ4PZB8jJbIQwgBstG9eCk/teFL4c8aca0rwqxmkyn
	W1K5QNmfMUbDaZInj/87kIivayWyWQWhGoH3aC7ptJQYXMexYPBPNF6ddjthqbDtSY93gwqVP37
	EiBI7LpUs5+5LsEu1EgsG5jLQOJLFBgbz9B3LG/ViXEvoqyYsOFwyZBZjCo0epUXjR
X-Google-Smtp-Source: AGHT+IEcekI1Lshl1bgm/QAO1VzCtd7+Xt3U160X2plU7dqChwIlgH4nh+Da8045O5+rj88L+ZHNLw==
X-Received: by 2002:a17:906:f589:b0:b72:70ad:b8f0 with SMTP id a640c23a62f3a-b73678f4b98mr1209869066b.36.1763372850943;
        Mon, 17 Nov 2025 01:47:30 -0800 (PST)
Message-ID: <547ea289-2dab-4047-af89-b5227c2f4936@suse.com>
Date: Mon, 17 Nov 2025 10:47:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] x86/paging: replace !paging_mode_hap() with
 paging_mode_shadow()
To: Grygorii Strashko <grygorii_strashko@epam.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@lists.xenproject.org>
References: <20251114144454.287224-1-grygorii_strashko@epam.com>
 <a34a7aa7-53da-4925-8428-cc20e1135f7f@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: <a34a7aa7-53da-4925-8428-cc20e1135f7f@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.11.2025 00:21, Jason Andryuk wrote:
> On 2025-11-14 09:44, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> Now Xen supports only two paging modes: HAP and SHADOW, so
>> !paging_mode_hap() is actually means paging_mode_shadow().

For HVM, that is. For PV both could produce "false". Luckily the code
changes are all in line with that, but somewhere this detail wants
mentioning imo (as it's also not part of the patch subject). Happy to
make a small adjustment while committing; then ...

>> For an abstract, future case of there being a 3rd paging mode it is also
>> better to explicitly mention checked paging mode (SHADOW) instead of using
>> negative check of another paging mode (HAP).
>>
>> Hence, s/!paging_mode_hap()/paging_mode_shadow() which also allows DCE drop
>> unused code when SHADOW_PAGING=n.
>> The !paging_mode_hap() in hap.c not changed as HAP is checking for itself
>> to be enabled.
>>
>> Inspired by [1].
>>
>> [1] https://patchwork.kernel.org/project/xen-devel/patch/20251111200958.3576341-3-grygorii_strashko@epam.com/
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

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

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 09:53:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 09:53:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163584.1490662 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKvvA-0005Lp-II; Mon, 17 Nov 2025 09:53:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163584.1490662; Mon, 17 Nov 2025 09:53:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKvvA-0005Li-FY; Mon, 17 Nov 2025 09:53:16 +0000
Received: by outflank-mailman (input) for mailman id 1163584;
 Mon, 17 Nov 2025 09:53:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ysB8=5Z=bounce.vates.tech=bounce-md_30504962.691af07f.v1-1639b5a3a34b456ab604e4a9394eca3d@srs-se1.protection.inumbo.net>)
 id 1vKvv9-0005Lb-6A
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 09:53:15 +0000
Received: from mail128-17.atl41.mandrillapp.com
 (mail128-17.atl41.mandrillapp.com [198.2.128.17])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3676a689-c39b-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 10:53:05 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4d932l5MrtzCf9P12
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 09:53:03 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 1639b5a3a34b456ab604e4a9394eca3d; Mon, 17 Nov 2025 09:53: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: 3676a689-c39b-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763373183; x=1763643183;
	bh=TW+q7kz4pFqGUtX1qvXQLNZWq7C5KLYfbBXF5HZjESY=;
	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=RT86bXjjmmobxBLQ6QdF5HBWeZUo5Tac0p4e7tUMx3vKqeREr9iON8nd3taHwsTp7
	 P7XvhwRpQoa/oj1fjM1yh8BegVmUIa6b/JSacj7jgNHimQZGqmn+YA3nmIgGpUxddv
	 //HUxB5xyYxMucaHHc2gjN3OoUO4xpbqURf+TF/nU5SC00cfKxfpNPct/I/YcwQ9xU
	 XvU1OMIBtk676VbvztyMRRno5n2+eQ7iUkOOol3dfHa+kXL6eOzjSI5bU9eK41SkE3
	 kqtW1cCKGtqY9Bv52N8JT9wLiFlhtSavCR6My8rInftg3tbwSVAMYNu/MhIyNgWSIe
	 iOvDSzM0HCWMQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763373183; x=1763633683; i=teddy.astie@vates.tech;
	bh=TW+q7kz4pFqGUtX1qvXQLNZWq7C5KLYfbBXF5HZjESY=;
	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=I7rs0N2nMDtBabW71h9gMTwKqXTHk3+EwWuhFwPIh7gnvmhJ5EG1c0Co+4CGBgQKO
	 OgmbRmYgwPMC4p3vyToTgNqQKb6zQVtFapCAjfe0enYvvIu4kLTdnsHJ4HOmZhO8Xl
	 r/tS4BG41L7nyuINKwc+1Pc/E/Y8q7jzPGwY+4VGFpH0m4EXAX1u/GqRKcyWMg4ho/
	 Z5MU/ujUENMtagn6q8UT27e3oXWH6NPuIHzlRVl3ZPyAm1dRZMBxNzMpqU3kJfh9Cn
	 6A4LOV20C513v0GaRpfvt1PJ5DPHsp/TCEhPX07JsfNEyPAWT3ASCYfE1GHo0z0YOS
	 eaCqJSduEAotg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v2]=20ioreq:=20Check=20for=20out=20of=20bounds=20vCPU=20ID?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763373182364
Message-Id: <7128231e-8f52-49f1-9dfe-606616d11158@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Julian Vetter" <julian.vetter@vates.tech>, xen-devel@lists.xenproject.org
References: <f6cc34ce96693545ba9b8db6fe668c37c80f16c5.1763137553.git.teddy.astie@vates.tech> <fadc4456-17d1-4ba5-9623-db928238f3b8@suse.com>
In-Reply-To: <fadc4456-17d1-4ba5-9623-db928238f3b8@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.1639b5a3a34b456ab604e4a9394eca3d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251117:md
Date: Mon, 17 Nov 2025 09:53:03 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 17/11/2025 =C3=A0 10:29, Jan Beulich a =C3=A9crit=C2=A0:
> On 14.11.2025 17:32, Teddy Astie wrote:
>> A 4K page appears to be able to hold 128 ioreq entries, which luckly
>> matches the current vCPU limit. However, if we decide to increase the
>> vCPU limit, that doesn't hold anymore and this function would now
>> silently fetch a out of bounds pointer.
>>
>> All architectures have no more than 128 as vCPU limit on HVM guests,
>> and have pages that are at most 4 KB, so this case doesn't occurs in
>> with the current limits.
> 
> DYM "at least 4 KB"? If there was an arch with 2k pages but 128 vCPU limi=
t,
> it would be affected, wouldn't it?
> 

Yes, made some typo here

>> Make sure that out of bounds attempts are reported and adjust the around
>> logic to at worst crash the offending domain instead.
> 
> Wouldn't we better prevent creation of such guests? And point out the nee=
d
> to adjust code by a build-time check?
> 

So overall just

diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
index f5fd30ce12..7a0421cc07 100644
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -99,6 +99,7 @@ static ioreq_t *get_ioreq(struct ioreq_server *s, 
struct vcpu *v)

      ASSERT((v =3D=3D current) || !vcpu_runnable(v));
      ASSERT(p !=3D NULL);
+    BUILD_BUG_ON(HVM_MAX_VCPUS > (PAGE_SIZE / sizeof(struct ioreq)));

      return &p->vcpu_ioreq[v->vcpu_id];
  }

>> --- a/xen/common/ioreq.c
>> +++ b/xen/common/ioreq.c
>> @@ -100,7 +100,14 @@ static ioreq_t *get_ioreq(struct ioreq_server *s, s=
truct vcpu *v)
>>       ASSERT((v =3D=3D current) || !vcpu_runnable(v));
>>       ASSERT(p !=3D NULL);
>>   
>> -    return &p->vcpu_ioreq[v->vcpu_id];
>> +    if ( likely(v->vcpu_id < (PAGE_SIZE / sizeof(struct ioreq))) )
>> +        return &p->vcpu_ioreq[v->vcpu_id];
> 
> Imo you then also need to use array_access_nospec() here.
> 
>> +    else
>> +    {
>> +        gprintk(XENLOG_ERR, "Out of bounds vCPU %pv in ioreq server\n",=
 v);
>> +        WARN();
>> +        return NULL;
>> +    }
>>   }
> 
> While I'm generally arguing against such needless uses of "else", this on=
e
> is imo a particularly bad example. The brace-enclosed scope give the stro=
ng
> (but misleading) impression that the function is lacking a trailing "retu=
rn".
> 
> Jan
> 




--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Nov 17 11:07:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 11:07:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163596.1490675 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKx4P-0006X6-Nk; Mon, 17 Nov 2025 11:06:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163596.1490675; Mon, 17 Nov 2025 11:06:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKx4P-0006Wz-Kc; Mon, 17 Nov 2025 11:06:53 +0000
Received: by outflank-mailman (input) for mailman id 1163596;
 Mon, 17 Nov 2025 11:06: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=Lf15=5Z=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vKx4O-0006Wt-I8
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 11:06:52 +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 838a580a-c3a5-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 12:06:49 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-6419aaced59so5735335a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 03:06:49 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-6433a497080sm10299644a12.19.2025.11.17.03.06.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 03:06: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: 838a580a-c3a5-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763377609; x=1763982409; 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=KCudMinQGbaMdHfl/9Hc297yVEufZmLtEofEAjVGRKg=;
        b=H4GH7iWHafPdAuMG7Es7FXH39uNF+b/UmYxr1RhMzC6yj7J/ZNPyf4ModzOUfc8vll
         YGrRwCaXHZj2b0HmaYo5dFLp4T+HQfbtsf8LMU9RmiKH/PgaLekQrJ6LY/5KVlyaC1JN
         9HRKHq2NIUZ7hDjmxH7udnCHCAbyTrmm0toB5kwwFjvyrzAzD84tkUjai9Xxc7Yyuw8I
         akvcKobHBDXN6+2ZA8fpl3MgPsUNzZwZMVP5iK7WteXKgoNFiy0vgHzmUimBLVXseW1y
         SuZzxnqAFE6talEgMirmEwtP8ejDcY8fBN6MjDX001QnPLlWNV8p3vj9ZdJwz5O9jWfo
         5Omg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763377609; x=1763982409;
        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=KCudMinQGbaMdHfl/9Hc297yVEufZmLtEofEAjVGRKg=;
        b=e+/Ry3jTNmHeMXWoSkb800bRsisfmokNg/qumN9RIy0r5bu/E1KaCc1bftJQ+eEetC
         ccTLElVgxcmaiIz8PeDPbGsHzuitTcCKtU9mhKRdDbrjCW4iGdLUHUe2H1KhONM78hgW
         vmox/hYAVPj1FOxFLDPF5Ucic1PJ9SltjLzT98zEvmyjlFAU/4v3nasYjW1A49tyuXLc
         Ko7xsSPZsX9D44ZRQIQt2c3ZyS5nJTjpxcRWg5BuFJwXUq3k/thNsgl1wUFMii8XQR8f
         VuJrIi2aOd2B1Gr6xpaHmN3YJVDeCYf9omsN9uLa+dEAmY38M0N+SvIF/S+n9/TvjWpH
         wqqg==
X-Forwarded-Encrypted: i=1; AJvYcCUNkYP36ARYobpoA9wggjYv402zl7nZgPYuxerTrRetORfsi6VmkH/eDLlDJQIf8H59fX8DeR4rv0o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyEuQpcxjle9UwrjWEyFnZfCH2L3VRctxesZaAUCq1xrSrLMFxa
	oAfdTOv8fP7OnB7L/WYfbU2DSi7ZOHIPNswqBYRjzXc0zHGya8yb+DRMiq1c6XEmqx8=
X-Gm-Gg: ASbGnctCoG3U5wuo28ammzUOM+uUnkp7k93BixrSR9dUnB5q5e2xD9M6VWopavvElwM
	cubVQRxNyiAMkS6qzlzJ7OmXUJ3tAMn/UYJ/IjFc/DTsPkSNFUgKLZ4BIA80YUvdQ+e8c0ludeN
	Yh0EjvL4ZyzzzcCiJbDAotJ4oTQs2DW3ekq23+QKfcCMxj9Z/BB7Bk+lwBaAU0rkh36D49/oJpb
	JF4EhNuJ0twcWkWvqOo81Y2zLI8p2LlWikUbMrdiVMOfxPQnzy6t2JqEESQ1mw39NMxPt7hWgxa
	lkquZJuWKxJ9wNBWGc9i0RK3BFG5ChnX7gb5pr/u43VOBuD70++RiGHgssHrzT9dz4IELBwJt8L
	r4CO78nJppxqNxfYpDvPTCa8CwE8/VNWqtjBx0/j3a9jB4+ibsyeLXakUP0Wp+Ek+oaY+FfLCqs
	zKrclO0vFLhnX6i7I/6ARPQfi+COiTjsRY31JGDcTDbDWb7TCNQZjm/q3YRpHO3P3Brkp8cM07P
	wQ2RSSIVkMVlw3HrgW9SBDCGZsX5O+Vv9Y4l35u5hH+bq3ZDw==
X-Google-Smtp-Source: AGHT+IGEvZvz7HzZL1/y9Sm1Jh6bgNZQjbSq4wZcu7OBRvEIVv3kTaAlFjt59yVPmmh3Vs++ZOzwLg==
X-Received: by 2002:a05:6402:34c1:b0:640:93b2:fd07 with SMTP id 4fb4d7f45d1cf-64350ebfd13mr9489526a12.33.1763377608688;
        Mon, 17 Nov 2025 03:06:48 -0800 (PST)
Message-ID: <e6ab32d7-b1eb-428b-95e8-a90f7b3be39c@suse.com>
Date: Mon, 17 Nov 2025 12:06:47 +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>, linux-kernel@vger.kernel.org
Cc: 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>
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: <20251102032105.772670-1-marmarek@invisiblethingslab.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------a9NHo0ITaicj2WXnetC3Eo4g"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------a9NHo0ITaicj2WXnetC3Eo4g
Content-Type: multipart/mixed; boundary="------------XI8Zm6ZVB9cpbXnKJZWkKopk";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, linux-kernel@vger.kernel.org
Cc: 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: <e6ab32d7-b1eb-428b-95e8-a90f7b3be39c@suse.com>
Subject: Re: [PATCH] xen/xenbus: better handle backend crash
References: <20251102032105.772670-1-marmarek@invisiblethingslab.com>
In-Reply-To: <20251102032105.772670-1-marmarek@invisiblethingslab.com>

--------------XI8Zm6ZVB9cpbXnKJZWkKopk
Content-Type: multipart/mixed; boundary="------------MNXBPN2VO8rwB0bMA05xZwCM"

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

T24gMDIuMTEuMjUgMDQ6MjAsIE1hcmVrIE1hcmN6eWtvd3NraS1Hw7NyZWNraSB3cm90ZToN
Cj4gV2hlbiB0aGUgYmFja2VuZCBkb21haW4gY3Jhc2hlcywgY29vcmRpbmF0ZWQgZGV2aWNl
IGNsZWFudXAgaXMgbm90DQo+IHBvc3NpYmxlIChhcyBpdCBpbnZvbHZlcyB3YWl0aW5nIGZv
ciB0aGUgYmFja2VuZCBzdGF0ZSBjaGFuZ2UpLiBJbiB0aGF0DQo+IGNhc2UsIHRvb2xzdGFj
ayBmb3JjZWZ1bGx5IHJlbW92ZXMgZnJvbnRlbmQgeGVuc3RvcmUgZW50cmllcy4NCj4geGVu
YnVzX2Rldl9jaGFuZ2VkKCkgaGFuZGxlcyB0aGlzIGNhc2UsIGFuZCB0cmlnZ2VycyBkZXZp
Y2UgY2xlYW51cC4NCj4gSXQncyBwb3NzaWJsZSB0aGF0IHRvb2xzdGFjayBtYW5hZ2VzIHRv
IGNvbm5lY3QgbmV3IGRldmljZSBpbiB0aGF0DQo+IHBsYWNlLCBiZWZvcmUgeGVuYnVzX2Rl
dl9jaGFuZ2VkKCkgbm90aWNlcyB0aGUgb2xkIG9uZSBpcyBtaXNzaW5nLiBJZg0KPiB0aGF0
IGhhcHBlbnMsIG5ldyBvbmUgd29uJ3QgYmUgcHJvYmVkIGFuZCB3aWxsIGZvcmV2ZXIgcmVt
YWluIGluDQo+IFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nLg0KPiANCj4gRml4IHRoaXMgYnkg
Y2hlY2tpbmcgYmFja2VuZC1pZCBhbmQgaWYgaXQgY2hhbmdlcywgY29uc2lkZXIgaXQNCj4g
dW5wbHVnK3BsdWcgb3BlcmF0aW9uLiBJdCdzIGltcG9ydGFudCB0aGF0IGNsZWFudXAgb24g
c3VjaCB1bnBsdWcNCj4gZG9lc24ndCBtb2RpZnkgeGVuc3RvcmUgZW50cmllcyAoZXNwZWNp
YWxseSB0aGUgInN0YXRlIiBrZXkpIGFzIGl0DQo+IGJlbG9uZyB0byB0aGUgbmV3IGRldmlj
ZSB0byBiZSBwcm9iZWQgLSBjaGFuZ2luZyBpdCB3b3VsZCBkZXJhaWwNCj4gZXN0YWJsaXNo
aW5nIGNvbm5lY3Rpb24gdG8gdGhlIG5ldyBiYWNrZW5kIChtb3N0IGxpa2VseSwgY2xvc2lu
ZyB0aGUNCj4gZGV2aWNlIGJlZm9yZSBpdCB3YXMgZXZlbiBjb25uZWN0ZWQpLiBIYW5kbGUg
dGhpcyBjYXNlIGJ5IHNldHRpbmcgbmV3DQo+IHhlbmJ1c19kZXZpY2UtPnZhbmlzaGVkIGZs
YWcgdG8gdHJ1ZSwgYW5kIGNoZWNrIGl0IGJlZm9yZSBjaGFuZ2luZyBzdGF0ZQ0KPiBlbnRy
eS4NCj4gDQo+IEFuZCBldmVuIGlmIHhlbmJ1c19kZXZfY2hhbmdlZCgpIGNvcnJlY3RseSBk
ZXRlY3RzIHRoZSBkZXZpY2Ugd2FzDQo+IGZvcmNlZnVsbHkgcmVtb3ZlZCwgdGhlIGNsZWFu
dXAgaGFuZGxpbmcgaXMgc3RpbGwgcmFjeS4gU2luY2UgdGhpcyB3aG9sZQ0KPiBoYW5kbGlu
ZyBkb2Vzbid0IGhhcHBlbmQgaW4gYSBzaW5nbGUgeGVuc3RvcmUgdHJhbnNhY3Rpb24sIGl0
J3MgcG9zc2libGUNCj4gdGhhdCB0b29sc3RhY2sgbWlnaHQgcHV0IGEgbmV3IGRldmljZSB0
aGVyZSBhbHJlYWR5LiBBdm9pZCByZS1jcmVhdGluZw0KPiB0aGUgc3RhdGUga2V5ICh3aGlj
aCBpbiB0aGUgY2FzZSBvZiBsb29zaW5nIHRoZSByYWNlIHdvdWxkIGFjdHVhbGx5DQo+IGNs
b3NlIG5ld2x5IGF0dGFjaGVkIGRldmljZSkuDQo+IA0KPiBUaGUgcHJvYmxlbSBkb2VzIG5v
dCBhcHBseSB0byBmcm9udGVuZCBkb21haW4gY3Jhc2gsIGFzIHRoaXMgY2FzZQ0KPiBpbnZv
bHZlcyBjb29yZGluYXRlZCBjbGVhbnVwLg0KPiANCj4gUHJvYmxlbSBvcmlnaW5hbGx5IHJl
cG9ydGVkIGF0DQo+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC9hT1p2aXZ5
WjlZaFZXRExOQG1haWwtaXRsL1QvI3QsDQo+IGluY2x1ZGluZyByZXByb2R1Y3Rpb24gc3Rl
cHMuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBNYXJlayBNYXJjenlrb3dza2ktR8OzcmVja2kg
PG1hcm1hcmVrQGludmlzaWJsZXRoaW5nc2xhYi5jb20+DQoNClNvcnJ5IEkgZGlkbid0IGdl
dCBlYXJsaWVyIHRvIHRoaXMuDQoNCk15IG1haW4gcHJvYmxlbSB3aXRoIHRoaXMgcGF0Y2gg
aXMgdGhhdCBpdCBpcyBiYXNpY2FsbHkganVzdCBwYXBlcmluZyBvdmVyDQphIG1vcmUgZ2Vu
ZXJhbCBwcm9ibGVtLg0KDQpZb3UgYXJlIGp1c3QgbWFraW5nIHRoZSBwcm9ibGVtIG11Y2gg
bW9yZSBpbXByb2JhYmxlLCBidXQgbm90IGltcG9zc2libGUgdG8NCm9jY3VyIGFnYWluLiBJ
biBjYXNlIHRoZSBuZXcgZHJpdmVyIGRvbWFpbiBoYXMgdGhlIHNhbWUgZG9taWQgYXMgdGhl
IG9sZCBvbmUNCnlvdSBjYW4gc3RpbGwgaGF2ZSB0aGUgc2FtZSByYWNlLg0KDQpUaGUgY2xl
YW4gd2F5IHRvIGhhbmRsZSB0aGF0IHdvdWxkIGJlIHRvIGFkZCBhIHVuaXF1ZSBJZCBpbiBY
ZW5zdG9yZSB0byBlYWNoDQpkZXZpY2Ugb24gdGhlIGJhY2tlbmQgc2lkZSwgd2hpY2ggY2Fu
IGJlIHRlc3RlZCBvbiB0aGUgZnJvbnRlbmQgc2lkZSB0bw0KbWF0Y2guIEluIGNhc2UgaXQg
ZG9lc24ndCBtYXRjaCwgYW4gb2xkIGRldmljZSB3aXRoIHRoZSBzYW1lIGtpbmQgYW5kIGRl
dmlkDQpjYW4gYmUgY2xlYW5lZCB1cC4NCg0KVGhlIHVuaXF1ZSBJZCB3b3VsZCBvYnZpb3Vz
bHkgbmVlZCB0byBiZSBzZXQgYnkgdGhlIFhlbiB0b29scyBpbnNpZGUgdGhlDQp0cmFuc2Fj
dGlvbiB3cml0aW5nIHRoZSBpbml0aWFsIGJhY2tlbmQgWGVuc3RvcmUgbm9kZXMsIGFzIGRv
aW5nIHRoYXQgZnJvbQ0KdGhlIGJhY2tlbmQgd291bGQgYWRkIGFub3RoZXIgcG90ZW50aWFs
IGFtYmlndWl0eSBieSB0aGUgZHJpdmVyIGRvbWFpbg0KY2hvb3NpbmcgdGhlIHNhbWUgdW5p
cXVlIGlkIGFzIHRoZSBwcmV2aW91cyBvbmUgZGlkLg0KDQpUaGUgcXVlc3Rpb24gaXMgd2hl
dGhlciBzb21ldGhpbmcgbGlrZSB5b3VyIHBhdGNoIHNob3VsZCBiZSB1c2VkIGFzIGENCmZh
bGxiYWNrIGluIGNhc2UgdGhlcmUgaXMgbm8gdW5pcXVlIElkIG9uIHRoZSBiYWNrZW5kIHNp
ZGUgb2YgdGhlIGRldmljZQ0KZHVlIHRvIGEgdG9vIG9sZCBYZW4gdmVyc2lvbi4NCg0KDQpK
dWVyZ2VuDQo=
--------------MNXBPN2VO8rwB0bMA05xZwCM
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-----

--------------MNXBPN2VO8rwB0bMA05xZwCM--

--------------XI8Zm6ZVB9cpbXnKJZWkKopk--

--------------a9NHo0ITaicj2WXnetC3Eo4g
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/Ey8FAmkbAccFAwAAAAAACgkQsN6d1ii/Ey8Z
Nwf8DxTSACvgaIlaVAtBclW18mjDU/U66VpJ0p1irP56QxxhnxaBiPQUSI7pzh8WIFWAuYL++8fT
Qv5Yh3gFbErjw0ucDxpGC2XU2K6wTQD5/+TaIp3WvUw8jDrlz202dR6YZBDjwBKRXLEhXycyd0Gv
MmtEX+DRyyOaQpMPu7GSmt25wPqlIQ+j3yhJXKtuahsZBPhIsWgsOvhwuskXGZx0i46j3f8jazPg
ZxmmjZZ1jzewsZhA7zqSjx2cnhwPdq9T09OluXZGjFwY0oD7VeYIh0cLXIf+7mH4oik/UKrVyiL1
kMMUA/lUxdFO4642z+ZtTEg70T/fUteDy93ENp6VRQ==
=J1il
-----END PGP SIGNATURE-----

--------------a9NHo0ITaicj2WXnetC3Eo4g--


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 11:36:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 11:36:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163608.1490685 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKxX8-0002HX-T3; Mon, 17 Nov 2025 11:36:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163608.1490685; Mon, 17 Nov 2025 11: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 1vKxX8-0002HQ-Q9; Mon, 17 Nov 2025 11:36:34 +0000
Received: by outflank-mailman (input) for mailman id 1163608;
 Mon, 17 Nov 2025 11:36: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=lv5t=5Z=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vKxX7-0002HK-R9
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 11:36:33 +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 aa7f06d0-c3a9-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 12:36:32 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-6419aaced59so5772184a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 03:36:32 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-6433a3d87e3sm9920032a12.7.2025.11.17.03.36.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 03:36: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: aa7f06d0-c3a9-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763379392; x=1763984192; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=h+w5skDQjQKPpKBD0D07sikY/lh5cTebhvCbmA3IOh8=;
        b=Lp50/r0MmjQXz116Y8gg6Vrf4TVz/yuH3mue5ZWNUi3YTxKptuvlkB1cj7hpawji/q
         kpXAi81CTyCahR5NYKfNSuP2PJB9ygryf0ltEnPRBblSXcXbHx2CF40AnOItyF+X6+BZ
         348OETakjmUUYRZ4Y8AXzKSfGf8Z0ggbh7xZxDdzoDJxEm5K1lQ9tu9xqPyZ6kMfczkL
         OoruN3Bb3b+1Sd+6di2ozOslHY8dr6IItfH01U6FAVYzuedifiuHhMJne/b1nlfbE1EH
         B/AsYXsyKbc1yChLOkMBD0jQOHLhOEB5LrqXOruNnvtCVfRuJI4ThFAW53KHzYTyiYBa
         eCGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763379392; x=1763984192;
        h=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=h+w5skDQjQKPpKBD0D07sikY/lh5cTebhvCbmA3IOh8=;
        b=apFzIWvDbeqc22cx4QrsTo4LlPSHkVR8s8fUgvh4mV9PVHHQWeeDOFI4A5UJAOYEu+
         ZpLU1qTN7rRqLNBRZUUuDbrtCT6Ed5/YI1pxyosxKV9l7OU3PTW5wrHU0C1Zmgszt2rc
         AlbbCrcxY2ynnLAJ0HPrrXwSRaxmZv16FveWqWwdPTr2uMLFFJWRfWThWbZbH/s+XE3c
         q4U3QrjwvEul7b1xsKpnzt0WZDUNNAocHtn7i881KH9CdKT4h3tztTNbdOHrO6P/63X+
         k0gegQEbCtPApbG2TkyELwigSsjB2cZVTNDYw7Htw26JcPprZlxi02q3PbEHuo033vWO
         agfA==
X-Forwarded-Encrypted: i=1; AJvYcCVhur9MyBgRjB7qq1VwbiErqJs1mrpwHoZGu15IxM+x1/kTHV/2WyYLw3xQlHLNW2zSIldkXNu+2gQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywgdx0TnjsH+pvz2N60C00eSufnUviriz44b+nRAMLkcNNSMVbv
	Z0UZl+zGadwDVJxwJZsQTlMUZmyBOWDkH1reLJu3aQfSbJqFVGBA0GWs
X-Gm-Gg: ASbGncscMrm2hHmbPoyfWwX0Mw9CKEMtA6nbbws7XYeychi/azsay3h5IOajCPk/I3o
	rnttFndJSmzPPcdnN/sifTofrVWKop0p220JkfHN3d0VVJukuiE3SI2ZtVA32w5THiD92vvS3lV
	CJifgDeW8bdpgFdZ3G6PUN6WVO1XH+KfSn2b0P1RWymA5k2Pm1GCNF1GtSJa2DA2QrQvGdNbxmo
	OPldWhATo7VpsTcQxHXw3IGAnRIOlOhq/PYZ44GRSBEl9ssmJTwsBPkWDSOWqTgkVLTKBrJznZ4
	XPOnCvJR837pNbT2t2lHK946BrhUviAqPTZZQKtZ+y2XR1rpq/7LT6YR4r7pTULDunWiks2pBTN
	JFxVuRoRGfElYQF+YZymFnROTX+8X98mvDhp2eVCeniN/9LMiyXN2gmeVZERn6NVjJMqDIsBn3J
	mFOkG/9RfQB9zNFF9B6vL8dsQmBT6Iml6sVzFBsIoEGoWmmN4QKJkt1mJKX6wU
X-Google-Smtp-Source: AGHT+IEOw+aMZAAYW9aax9h93sTsrEiv2K4qI3LLkgIOr/8lbTLqC5JaYw9YphhWVI62M0Na4L6TnA==
X-Received: by 2002:a05:6402:848:b0:640:b814:bb81 with SMTP id 4fb4d7f45d1cf-64350ebd23dmr12241316a12.32.1763379391684;
        Mon, 17 Nov 2025 03:36:31 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------V6mKv6hgrgibcKtaBVf7Ty0a"
Message-ID: <6eb7b19e-df55-4706-9da2-67158640aa08@gmail.com>
Date: Mon, 17 Nov 2025 12:36:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 11/18] xen/riscv: Implement p2m_free_subtree() and
 related helpers
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <24928a25f63f81ee72b78830306881b2c4c5a1e4.1760974017.git.oleksii.kurochko@gmail.com>
 <acf32e9d-4c07-45dd-baac-29e6d93cff56@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <acf32e9d-4c07-45dd-baac-29e6d93cff56@suse.com>

This is a multi-part message in MIME format.
--------------V6mKv6hgrgibcKtaBVf7Ty0a
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/10/25 4:29 PM, Jan Beulich wrote:
> On 20.10.2025 17:57, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/include/asm/p2m.h
>> +++ b/xen/arch/riscv/include/asm/p2m.h
>> @@ -110,6 +110,8 @@ typedef enum {
>>       p2m_mmio_direct_io, /* Read/write mapping of genuine Device MMIO area,
>>                              PTE_PBMT_IO will be used for such mappings */
>>       p2m_ext_storage,    /* Following types'll be stored outsude PTE bits: */
>> +    p2m_map_foreign_rw, /* Read/write RAM pages from foreign domain */
>> +    p2m_map_foreign_ro, /* Read-only RAM pages from foreign domain */
>>   
>>       /* Sentinel â€” not a real type, just a marker for comparison */
>>       p2m_first_external = p2m_ext_storage,
>> @@ -120,15 +122,28 @@ static inline p2m_type_t arch_dt_passthrough_p2m_type(void)
>>       return p2m_mmio_direct_io;
>>   }
>>   
>> +/*
>> + * Bits 8 and 9 are reserved for use by supervisor software;
>> + * the implementation shall ignore this field.
>> + * We are going to use to save in these bits frequently used types to avoid
>> + * get/set of a type from radix tree.
>> + */
>> +#define P2M_TYPE_PTE_BITS_MASK  0x300
> Better use PTE_RSW in place of the raw number?

It would be better, thanks.

>
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -17,6 +17,8 @@
>>   #include <asm/riscv_encoding.h>
>>   #include <asm/vmid.h>
>>   
>> +#define P2M_SUPPORTED_LEVEL_MAPPING 2
> I fear without a comment it's left unclear what this is / represents.

Probably just renaming it to|P2M_MAX_SUPPORTED_LEVEL_MAPPING| would make it clearer,
wouldnâ€™t it?
Otherwise, I can add the following comment:
/*
  * At the moment, only 4K, 2M, and 1G mappings are supported for G-stage
  * translation. Therefore, the maximum supported page-table level is 2,
  * which corresponds to 1G mappings.
  */



>
>> @@ -403,11 +415,147 @@ static int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,
>>       return P2M_TABLE_MAP_NONE;
>>   }
>>   
>> +static void p2m_put_foreign_page(struct page_info *pg)
>> +{
>> +    /*
>> +     * Itâ€™s safe to call put_page() here because arch_flush_tlb_mask()
>> +     * will be invoked if the page is reallocated, which will trigger a
>> +     * flush of the guest TLBs.
>> +     */
>> +    put_page(pg);
>> +}
>> +
>> +/* Put any references on the single 4K page referenced by mfn. */
> To me this and ...
>
>> +static void p2m_put_4k_page(mfn_t mfn, p2m_type_t type)
>> +{
>> +    /* TODO: Handle other p2m types */
>> +
>> +    if ( p2m_is_foreign(type) )
>> +    {
>> +        ASSERT(mfn_valid(mfn));
>> +        p2m_put_foreign_page(mfn_to_page(mfn));
>> +    }
>> +}
>> +
>> +/* Put any references on the superpage referenced by mfn. */
> ... to a lesser degree this comment are potentially misleading. Down here at
> least there is something plural-ish (the 4k pages that the 2M one consists
> of), but especially for the single page case above "any" could easily mean
> "anything that's still outstanding, anywhere". I'm also not quite sure "on"
> is really what you mean (I'm not a native speaker, so my gut feeling may be
> wrong here).

Then I could suggest the following instead:
   /* Put the reference associated with the 4K page identified by mfn. */
and
  /* Put the references associated with the superpage identified by mfn. */

I think the comments could be omitted, since the function names already make
this clear.

>
>> +static void p2m_put_2m_superpage(mfn_t mfn, p2m_type_t type)
>> +{
>> +    struct page_info *pg;
>> +    unsigned int i;
>> +
>> +    /*
>> +     * TODO: Handle other p2m types, but be aware that any changes to handle
>> +     * different types should require an update on the relinquish code to
>> +     * handle preemption.
>> +     */
> I guess if I was to address this TODO, I wouldn't know what the latter part
> of the sentence is warning me of.

It is referencing to the code which isn't introduced yet, something like Arm has
in|relinquish_p2m_mapping()|:
   https://gitlab.com/xen-project/xen/-/blob/staging/xen/arch/arm/mmu/p2m.c#L1588
I am not 100% sure that this comment is useful now (as|relinquish_p2m_mapping() isn't introduced yet), so I am okay just to 
drop it and add it when ||relinquish_p2m_mapping() will be introduced.|


>
>> +    if ( !p2m_is_foreign(type) )
>> +        return;
> Are super-page foreign mappings actually intended to be permitted, conceptually?

Good question. Conceptually, yes (and I thought that was the reason why ARM has
code to handle such cases and so I decided to have the same for RISC-V), but in
reality, it will be 4 KB pages, as I can see in the current codebase for other
architectures.

>
>>   /* Free pte sub-tree behind an entry */
>>   static void p2m_free_subtree(struct p2m_domain *p2m,
>>                                pte_t entry, unsigned int level)
>>   {
>> -    panic("%s: hasn't been implemented yet\n", __func__);
>> +    unsigned int i;
>> +    pte_t *table;
>> +    mfn_t mfn;
>> +    struct page_info *pg;
>> +
>> +    /*
>> +     * Check if the level is valid: only 4K - 2M - 1G mappings are supported.
>> +     * To support levels > 2, the implementation of p2m_free_subtree() would
>> +     * need to be updated, as the current recursive approach could consume
>> +     * excessive time and memory.
>> +     */
>> +    ASSERT(level <= P2M_SUPPORTED_LEVEL_MAPPING);
>> +
>> +    /* Nothing to do if the entry is invalid. */
>> +    if ( !pte_is_valid(entry) )
>> +        return;
>> +
>> +    if ( (level == 0) || pte_is_superpage(entry, level) )
> Considering what pte_is_superpage() expands to, simply pte_is_mapping()?

Makes sense, we can really just have:
  if ( pte_is_mapping(entry) )

>
>> +    {
>> +        p2m_type_t p2mt = p2m_get_type(entry);
>> +
>> +#ifdef CONFIG_IOREQ_SERVER
>> +        /*
>> +         * If this gets called then either the entry was replaced by an entry
>> +         * with a different base (valid case) or the shattering of a superpage
>> +         * has failed (error case).
>> +         * So, at worst, the spurious mapcache invalidation might be sent.
>> +         */
>> +        if ( p2m_is_ram(p2mt) &&
>> +             domain_has_ioreq_server(p2m->domain) )
>> +            ioreq_request_mapcache_invalidate(p2m->domain);
>> +#endif
>> +
>> +        p2m_put_page(entry, level, p2mt);
>> +
>> +        return;
>> +    }
>> +
>> +    table = map_domain_page(pte_get_mfn(entry));
>> +    for ( i = 0; i < P2M_PAGETABLE_ENTRIES(level); i++ )
>> +        p2m_free_subtree(p2m, table[i], level - 1);
>> +
>> +    unmap_domain_page(table);
> Please can the use of blank lines in such cases be symmetric: Either have them
> ahead of and after the loop, or have them nowhere?
>
>> @@ -435,7 +583,7 @@ static int p2m_set_entry(struct p2m_domain *p2m,
>>        * Check if the level target is valid: we only support
>>        * 4K - 2M - 1G mapping.
>>        */
>> -    ASSERT(target <= 2);
>> +    ASSERT(target <= P2M_SUPPORTED_LEVEL_MAPPING);
> Ah, this is where that constant comes into play. It wants moving to the earlier
> patch, and with this being the purpose I guess it also wants to include MAX in
> its name.

Regarding MAX it is what I came up to in my reply somewhere above, so then lets
just add "MAX".

~ Oleksii

--------------V6mKv6hgrgibcKtaBVf7Ty0a
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/10/25 4:29 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:acf32e9d-4c07-45dd-baac-29e6d93cff56@suse.com">
      <pre wrap="" class="moz-quote-pre">On 20.10.2025 17:57, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -110,6 +110,8 @@ typedef enum {
     p2m_mmio_direct_io, /* Read/write mapping of genuine Device MMIO area,
                            PTE_PBMT_IO will be used for such mappings */
     p2m_ext_storage,    /* Following types'll be stored outsude PTE bits: */
+    p2m_map_foreign_rw, /* Read/write RAM pages from foreign domain */
+    p2m_map_foreign_ro, /* Read-only RAM pages from foreign domain */
 
     /* Sentinel â€” not a real type, just a marker for comparison */
     p2m_first_external = p2m_ext_storage,
@@ -120,15 +122,28 @@ static inline p2m_type_t arch_dt_passthrough_p2m_type(void)
     return p2m_mmio_direct_io;
 }
 
+/*
+ * Bits 8 and 9 are reserved for use by supervisor software;
+ * the implementation shall ignore this field.
+ * We are going to use to save in these bits frequently used types to avoid
+ * get/set of a type from radix tree.
+ */
+#define P2M_TYPE_PTE_BITS_MASK  0x300
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Better use PTE_RSW in place of the raw number?</pre>
    </blockquote>
    <pre>It would be better, thanks.

</pre>
    <blockquote type="cite"
      cite="mid:acf32e9d-4c07-45dd-baac-29e6d93cff56@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -17,6 +17,8 @@
 #include &lt;asm/riscv_encoding.h&gt;
 #include &lt;asm/vmid.h&gt;
 
+#define P2M_SUPPORTED_LEVEL_MAPPING 2
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I fear without a comment it's left unclear what this is / represents.</pre>
    </blockquote>
    <pre>Probably just renaming it to <code data-start="130"
    data-end="163">P2M_MAX_SUPPORTED_LEVEL_MAPPING</code> would make it clearer,
wouldnâ€™t it?
Otherwise, I can add the following comment:
/*
 * At the moment, only 4K, 2M, and 1G mappings are supported for G-stage
 * translation. Therefore, the maximum supported page-table level is 2,
 * which corresponds to 1G mappings.
 */


</pre>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:acf32e9d-4c07-45dd-baac-29e6d93cff56@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -403,11 +415,147 @@ static int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,
     return P2M_TABLE_MAP_NONE;
 }
 
+static void p2m_put_foreign_page(struct page_info *pg)
+{
+    /*
+     * Itâ€™s safe to call put_page() here because arch_flush_tlb_mask()
+     * will be invoked if the page is reallocated, which will trigger a
+     * flush of the guest TLBs.
+     */
+    put_page(pg);
+}
+
+/* Put any references on the single 4K page referenced by mfn. */
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
To me this and ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+static void p2m_put_4k_page(mfn_t mfn, p2m_type_t type)
+{
+    /* TODO: Handle other p2m types */
+
+    if ( p2m_is_foreign(type) )
+    {
+        ASSERT(mfn_valid(mfn));
+        p2m_put_foreign_page(mfn_to_page(mfn));
+    }
+}
+
+/* Put any references on the superpage referenced by mfn. */
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... to a lesser degree this comment are potentially misleading. Down here at
least there is something plural-ish (the 4k pages that the 2M one consists
of), but especially for the single page case above "any" could easily mean
"anything that's still outstanding, anywhere". I'm also not quite sure "on"
is really what you mean (I'm not a native speaker, so my gut feeling may be
wrong here).</pre>
    </blockquote>
    <pre>Then I could suggest the following instead:
  /* Put the reference associated with the 4K page identified by mfn. */
and
 /* Put the references associated with the superpage identified by mfn. */

I think the comments could be omitted, since the function names already make
this clear.

</pre>
    <blockquote type="cite"
      cite="mid:acf32e9d-4c07-45dd-baac-29e6d93cff56@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+static void p2m_put_2m_superpage(mfn_t mfn, p2m_type_t type)
+{
+    struct page_info *pg;
+    unsigned int i;
+
+    /*
+     * TODO: Handle other p2m types, but be aware that any changes to handle
+     * different types should require an update on the relinquish code to
+     * handle preemption.
+     */
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I guess if I was to address this TODO, I wouldn't know what the latter part
of the sentence is warning me of.</pre>
    </blockquote>
    <pre>It is referencing to the code which isn't introduced yet, something like Arm has
in <code>relinquish_p2m_mapping()</code>:
  <a class="moz-txt-link-freetext" href="https://gitlab.com/xen-project/xen/-/blob/staging/xen/arch/arm/mmu/p2m.c#L1588">https://gitlab.com/xen-project/xen/-/blob/staging/xen/arch/arm/mmu/p2m.c#L1588</a>
I am not 100% sure that this comment is useful now (as <code>relinquish_p2m_mapping()
isn't introduced yet), so I am okay just to drop it and add it when
</code><code>relinquish_p2m_mapping() will be introduced.</code></pre>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:acf32e9d-4c07-45dd-baac-29e6d93cff56@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    if ( !p2m_is_foreign(type) )
+        return;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Are super-page foreign mappings actually intended to be permitted, conceptually?</pre>
    </blockquote>
    <pre>Good question. Conceptually, yes (and I thought that was the reason why ARM has
code to handle such cases and so I decided to have the same for RISC-V), but in
reality, it will be 4 KB pages, as I can see in the current codebase for other
architectures.

</pre>
    <blockquote type="cite"
      cite="mid:acf32e9d-4c07-45dd-baac-29e6d93cff56@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre"> /* Free pte sub-tree behind an entry */
 static void p2m_free_subtree(struct p2m_domain *p2m,
                              pte_t entry, unsigned int level)
 {
-    panic("%s: hasn't been implemented yet\n", __func__);
+    unsigned int i;
+    pte_t *table;
+    mfn_t mfn;
+    struct page_info *pg;
+
+    /*
+     * Check if the level is valid: only 4K - 2M - 1G mappings are supported.
+     * To support levels &gt; 2, the implementation of p2m_free_subtree() would
+     * need to be updated, as the current recursive approach could consume
+     * excessive time and memory.
+     */
+    ASSERT(level &lt;= P2M_SUPPORTED_LEVEL_MAPPING);
+
+    /* Nothing to do if the entry is invalid. */
+    if ( !pte_is_valid(entry) )
+        return;
+
+    if ( (level == 0) || pte_is_superpage(entry, level) )
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Considering what pte_is_superpage() expands to, simply pte_is_mapping()?</pre>
    </blockquote>
    <pre>Makes sense, we can really just have:
 if ( pte_is_mapping(entry) )</pre>
    <blockquote type="cite"
      cite="mid:acf32e9d-4c07-45dd-baac-29e6d93cff56@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    {
+        p2m_type_t p2mt = p2m_get_type(entry);
+
+#ifdef CONFIG_IOREQ_SERVER
+        /*
+         * If this gets called then either the entry was replaced by an entry
+         * with a different base (valid case) or the shattering of a superpage
+         * has failed (error case).
+         * So, at worst, the spurious mapcache invalidation might be sent.
+         */
+        if ( p2m_is_ram(p2mt) &amp;&amp;
+             domain_has_ioreq_server(p2m-&gt;domain) )
+            ioreq_request_mapcache_invalidate(p2m-&gt;domain);
+#endif
+
+        p2m_put_page(entry, level, p2mt);
+
+        return;
+    }
+
+    table = map_domain_page(pte_get_mfn(entry));
+    for ( i = 0; i &lt; P2M_PAGETABLE_ENTRIES(level); i++ )
+        p2m_free_subtree(p2m, table[i], level - 1);
+
+    unmap_domain_page(table);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Please can the use of blank lines in such cases be symmetric: Either have them
ahead of and after the loop, or have them nowhere?

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -435,7 +583,7 @@ static int p2m_set_entry(struct p2m_domain *p2m,
      * Check if the level target is valid: we only support
      * 4K - 2M - 1G mapping.
      */
-    ASSERT(target &lt;= 2);
+    ASSERT(target &lt;= P2M_SUPPORTED_LEVEL_MAPPING);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Ah, this is where that constant comes into play. It wants moving to the earlier
patch, and with this being the purpose I guess it also wants to include MAX in
its name.</pre>
    </blockquote>
    <pre>Regarding MAX it is what I came up to in my reply somewhere above, so then lets
just add "MAX".

~ Oleksii</pre>
  </body>
</html>

--------------V6mKv6hgrgibcKtaBVf7Ty0a--


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 11:58:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 11:58:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163625.1490708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKxsg-0005Yy-SD; Mon, 17 Nov 2025 11:58:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163625.1490708; Mon, 17 Nov 2025 11:58: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 1vKxsg-0005Yr-Oz; Mon, 17 Nov 2025 11:58:50 +0000
Received: by outflank-mailman (input) for mailman id 1163625;
 Mon, 17 Nov 2025 11:58: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=RXl4=5Z=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vKxsf-0005Yj-ER
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 11:58: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 c6089c89-c3ac-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 12:58:48 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA2PR03MB5740.namprd03.prod.outlook.com (2603:10b6:806:11b::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.22; Mon, 17 Nov
 2025 11:58:44 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9320.021; Mon, 17 Nov 2025
 11:58:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c6089c89-c3ac-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fDgmWiPq052n0U09LG4XRbkjDL7PWZhCQFuO/4IoqnpeBPShRw2Yn8dHozmnVukApBbk57aj/5sREnVI3MvchEekqWDY4DwW5RXjMBVIEXLG5jRs4XqqYgB1KdbNSDMAOVj3QDGfvcxtjkUUGCjUHD5JLKTRyvBh/Bp+peB8Fd7rgLGdeTm6rRK70qbd/uOWaRrsKCNA+3CNuGK1BRNsApuuc7YWMfm7QrE4GIeSLxWOyVoTgVpse+IkGs2q7HQRDlJ/1mDrq/HwQY+L794tpQecRP3De0Q4vOntlL47RgE06NN27BEhtE8yuHKpqxXFVIFW/IcJYnBOOmZGVcG28w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yXOwgGuSEZnkIlEvTVf4y/Ty3nQxbky0qYGtI6rAeYc=;
 b=OV4pfn7NQvJPO6ccMtn9/JKODAZMOZ+LDWKABusVlkDdlDuKJbXEMZroiJ2gTOl/NqejsSTcE2RnQ5x6nSOGabAGWopCfhdwGkKvyVGlAG3YOfFg//LCQQFAArIQiyCf47ldpCflbFEYisMIGV3cxCBGfbzuOE16q7Rn8pXfiKq5Vr6QfaPzAA/+gUQW0aSMgKAfCYdzdpqCRVrr5RyfE+DnH5jfXKa+6Crkt3c49p6pEV0t6cPOVu6NANY2QxsCIxhQeZD4nns5RtUDJj09thPoO8RZ9CS5FZtxRrs1HobF4QQz4vHXldoEdy5jfTKdfF8b0sMe9Ww31jz8pSlLqA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yXOwgGuSEZnkIlEvTVf4y/Ty3nQxbky0qYGtI6rAeYc=;
 b=sP9eRXtLGlnXgL9Sn6/6+LdSuKTlrKM3bQgKc66m27VZa9qE8llgQZqzZCBIV6C1eAuOAQ71HJgahsXXaDEfQjZmdnM+Nskias5GVIpWUR2EC+Y8jCsVnC1wPOa0boVM6cvhOfQLw0lkM0g7vZAX6YES+0XxeMaI41lQX5glZ44=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <ac2377d2-54eb-49f5-8906-a9745baca534@citrix.com>
Date: Mon, 17 Nov 2025 11:58:41 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.21] x86/ucode: Add extra rows to the entrysign model
 table (again)
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251114152447.272823-1-andrew.cooper3@citrix.com>
 <2db5085c-a04d-4745-8fc7-5e257ab30926@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <2db5085c-a04d-4745-8fc7-5e257ab30926@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0122.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:192::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_|SA2PR03MB5740:EE_
X-MS-Office365-Filtering-Correlation-Id: 43b5456b-2d47-46e2-1124-08de25d0a88a
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?WkpRVW5zTWROSmtTWnI3TmI3RWt4U0h2R3ViUmNDWDA4YnJpNGJwRVpGWEFZ?=
 =?utf-8?B?TE4rWHBWTTRnSGk4MXdYNXpaWWh5aGtVeUY2dGlEdTdjN3JvWjd1UnZQR2ha?=
 =?utf-8?B?ekFVWThMUTlET2pWblFwNnpYaGpMMlhQV1p4QmtIY0krbEZXbG9DSzl4R3Ev?=
 =?utf-8?B?dE5HSFd4R0NUSUlxUU9XSmdwVEZVQmZVSjF5QmxydkYweWxHMGYvYzBNY3pU?=
 =?utf-8?B?UGErQ0krT1dobm9SVFFNc00xSmxEZDdIVVBpMm5yZmVXRCtGbklzajFmSzRj?=
 =?utf-8?B?bFc2dVVuZERpdjJEY1BxekVKemRhSm5mVU55amQ5YTlGRVVVcUlxczBCUk5l?=
 =?utf-8?B?ZDRBUE40bXErVE12akVockQyQlRDYWJZbVFrRVpjcEhHY2c5dzBPRjNSSE5I?=
 =?utf-8?B?eEc0WTB3QjlrT1JFOGlxSnB5cDl2SUVqU3pLLy9GVmJ0NytCTjNMMmFMVVZD?=
 =?utf-8?B?NDZzQ2tKTEJFWGhmV3kwVnlFSi9QK3dwWkF6ZWh4aTZQWkh2Mm50WC9BeXhn?=
 =?utf-8?B?ekZ3MWljSFRaUFF0UjhhbkVXWTVsNGxhdlZGUXp4WEtlZ011Q1R4dTAxVTNr?=
 =?utf-8?B?UUVIYWtlNGxpQTRWMVhjcGdwZHhnUlRUTXVrblFJR1oyK2JhVXp0L0g5bW1J?=
 =?utf-8?B?aGU2dlNTUUE0d3kyUUl4d0NWTkpwV0hyRVh4Q3c4NkRSZTR0T0RxYTQwNVBo?=
 =?utf-8?B?dnJVTExVR2VraDd4cDd5WDZJRUxQandyWjR0eXIvNHN4RGJ3cTZRSjlkbXBM?=
 =?utf-8?B?U3l4QlhDSVYwRU9vdjJnM3F5dktLVHFIVGJCWFJUZGF6am83ZGxMOXdNZHdE?=
 =?utf-8?B?cWNyY0RTaStFY3F2ZXoxSVhuSmlTdWFhZ0E3Q3VCcDJZRW9lZkVYRWdmTk5Z?=
 =?utf-8?B?ZmFXUW5sczk3bkxXVEVxZzRXU0w3dGtrT205NStXYjdvbk5lTnl6V0ZWRDF5?=
 =?utf-8?B?dUtVQ2JuZnQ2Q2ZwRDN2eGNQdzEvdncrVHFvSWhCbVdZNi9TbCsvcEJCRGl5?=
 =?utf-8?B?QU9TczZWaXhvTmgrQmNPSktOOFFDbFBaSU1uY0c5T3Z1UWtabUFTZzdGWkQr?=
 =?utf-8?B?cW1pYlZXK3I2ajI4d05GRERpZVJNVFg3ejNWSGlyV04vK1Z2UjJxUXFZV3hj?=
 =?utf-8?B?TWEveXp1OUNNMy9FajFUWUpCc2NDL0UvOFpQL1YzSjZPT0xySU9KNWZDbDdI?=
 =?utf-8?B?UE9HWEFmaTVoS0d3MW5sd1FOTyttYWtSUkY5RW5LYWJqOXBESGFySFgrZUdq?=
 =?utf-8?B?SS9TNmNqQ0pVRkl6VEtaeERVcUlRc2JQeWJlVTVsMHdvcjM3Z1p1MU9NRnRM?=
 =?utf-8?B?MFY2cnRlc1ZVVnhsLytsUWR5SDdtOXl6U3phSjRmTWk1L3lyRHJRdmRKQWVZ?=
 =?utf-8?B?MEtyTWtqOURTVVdhcDRCQW1yM2IzV1VYVDdqajlWTnl4dG9GMUxZK2ZqTmts?=
 =?utf-8?B?bk5oS3JSK0dzbkNnRExOcE4rYnhXajg4SzBMMFlZQ2Iwa3BMQ2QvZzdEZDRN?=
 =?utf-8?B?TWtGTWVYV2V1TmtBYm13ejhlZlZ2MHlwNzdLajJOQmgrMEpjRklETmVJbFVL?=
 =?utf-8?B?a2ErQlB6UU1OWlBObkR3QXR4emNtbEh3TjJpWmlRYmpNNm9ycFRTNTJoSTQ5?=
 =?utf-8?B?NXR2MVNmUk01c3NMR1NVaHB0UmtpcmFUNzgxY2Z6S0ZwY05Hczk5SDh1VGMw?=
 =?utf-8?B?NmZXNUVvYUExdU9ESExWOTdDcWhMdXRBVURVQ2NGNkh0T0o3T2p3ZkNLdWpj?=
 =?utf-8?B?TUxmV0QwSjh5dEJ1U21NdEIzcUFvUmtHdzJnWnNpdlYyNmk4c0V2bUdNaWFZ?=
 =?utf-8?B?dnhZNFA4KzY0d3Z2Mm5wTGRJbFVBUm1UTnBXNTRWZUxyZWFkU0JSTzBDTGcz?=
 =?utf-8?B?TzRPR0tsQ3pPWS9zKzJVeUFjUXJNK2RqaVQzcmowYVJ1YlFHb3N6ZUtUSTJh?=
 =?utf-8?B?V2V3RHNwb3VCMWt5dk1uNStEU0dmbXc1Vit4NGhoQ1JpN2h6Zy9kYUNrOE9r?=
 =?utf-8?B?ZFlHV3h6MjlBPT0=?=
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?Q1duS25oNERtSUI3S1FwZ0ZWV21aMXRkS3Fqa01ld0dmbE95dTkwbUs5OExC?=
 =?utf-8?B?WkdndkZ3aEpXY1F6Y1NWbzdpa0RNcmdNYklGUVB1VmJzZWk1Y2ZpV1RtSXdW?=
 =?utf-8?B?SmovcGQ4UjBFZ1dYWE5SOG0wVnlJeVFEejN1MkxFK2FIYXR5WndCQ0RjUDUr?=
 =?utf-8?B?aVZOVVhKNFV6RWJHSW0yNU9JaFp2bngvYmdTT2NLNG9CWEt1OUNVM09IalE1?=
 =?utf-8?B?U1c1RElqRVpjQ29RVkdvRzhnend2enlrMk4xUHEvdGRhT0NaSVhDZlZ0eGJl?=
 =?utf-8?B?b2tnSkJSK2NISk04NU9TaUNOdndRcUoxSjNSS3UvdnFEb3RlZHBzM3RxbUFV?=
 =?utf-8?B?ZWdrdUdGcSs1Z2VNU2d3S2MrM0pjbWpzS2ZsdGxDWXV4RmtSNDZiZkRsL01k?=
 =?utf-8?B?b3BiZ0xHZEs3dnhhZUlFZlBFejltdm0rb0JHVXMvZmZTRU1CcnpWalNHeTFQ?=
 =?utf-8?B?Z2JJRit5Q1dBZUY1KzdrWmZuSlZsME5qbFhDVTBRaWs5OWdzVmhVYnQrRHUx?=
 =?utf-8?B?eEE0RzEzNkowQVJsUFc0THhPY1JtZHpnak5rQWdMbU1zQllFSFcyaEEwMDc1?=
 =?utf-8?B?RFNxWGZoYnhsaTlVTE44K3cvelpQNWFKNW9hRjNYSWd5NlNkT0FJZ3Y1S3ZD?=
 =?utf-8?B?cHFybk12M0crckdOZlIvMGhhM3A4eDZyTW9va0FvRGpVY0FIVk5idzdpMFFJ?=
 =?utf-8?B?cFlqd3ZKVGljWVgwclBoREtBWVdwdkNqMituS01vbzA2QmxMeWNlNGFncVR1?=
 =?utf-8?B?MUEvdGZmcG1PY2hDTW1URldpV2gvL29LYkZ6NTc4NU1QdTBmeFg1bUhDcXh6?=
 =?utf-8?B?TGtDcWJLZzFyTUF1VzhvbGZOdHptT2NRWjdyT1IzM1hhVjdNSWdpUEk4NUU1?=
 =?utf-8?B?ckZjZXR6RkczNkNWcjY3R0hvc2FCdVJTZTFXaksrczFWQjVRMTY5SmhBTkhu?=
 =?utf-8?B?cHo5U0pScHJyM2JHMDBzZ2FnRUpFUDRpdFNibTU1eUw4QjRFaUxkanphb3RK?=
 =?utf-8?B?cjJ4UmNodWltUDA1ck9WbDF1ZWh6enROTlV2WSs1a0h1eWtBbTRUWlRoYWZT?=
 =?utf-8?B?ZzdqakFNMDMzb2ZTVHZTd0lJYzZ2d3d4WWtpbjlFUzF4S2ZiaitzZXN5bEZH?=
 =?utf-8?B?S1JsSVRnRExYZEw5bm5XZWpBamRRb0trdmxKcjJod1RKeEs4QTVHbXQxb0lG?=
 =?utf-8?B?R0JmRGJLSFJtZ3kxWEN1bzdTNHhsUnRyZ3NUTXhCcXQwY040ZXpKeUE0Nnha?=
 =?utf-8?B?RVAwajBkOXppNUlqREhocnRSZFk4Y1BTMzNUcW9HdUJZQ2NBTzNEZ0tOMlJH?=
 =?utf-8?B?dGVWV215M1hhSVVOMFRTT3FMQXlrQndCazhVeUV3RnRFRVN2K1pUellyUnBv?=
 =?utf-8?B?YmdWZE9IdExCTm1GVmFIdG5TcnBoMXR0ZUdVL0Z5Z2NoYmVDUjYzRVgwL0c4?=
 =?utf-8?B?QldrK1grRnNCOENya2M5RGtaam54bU1GdVRPUC9RYU90ZDFnVE5vUmkvL2lX?=
 =?utf-8?B?YzBxc2RlOHYzM21hQVRwa0dYTXJnTFEvdzRhYWdXM2lHWThBK0JPUGRWeHB5?=
 =?utf-8?B?Y3JQSlZteGRtRVhBVDdqcElrV2lsVTVja2lsV1ZKalRweFR1cWp0Mmg1QnZ0?=
 =?utf-8?B?Wm1ZQnVwTFI2YVRHTmY2V3lkS1lmYmhrdmZGUURrcEFURDdaWXVsVzBacmRk?=
 =?utf-8?B?U2I5cVo0TE9MeHBUQU9LMHdlSXo5S1NiZ2t1NFF4M3NjQzM3MlBxWG5mUFIw?=
 =?utf-8?B?N0dNOGo3VXZQZGs4MUlsOEx6enpGbzhYQlU3TWNYT3J5UTBRK250Z09aOThD?=
 =?utf-8?B?YnplWDcwa3BxYldMbjMyZ01PWUFMOWpiVktvaXM2TUNkQ1FoNjF2QTFVZTNa?=
 =?utf-8?B?VjVHVmZRcEFndkYyeGdnYmRPeHk5TVlxYjFUOUpybVVlSVQzTlhodlhicXZ2?=
 =?utf-8?B?S1FCWnpRS01hTnNFOGE3Y2YzUC9tcnpYSnlwUDF4cUt3UEZ5YXhEc0JaaFlK?=
 =?utf-8?B?WE9Gc3owYWFPY3JaUW5YTUlIMkRnMUE2YVJCbDBaWkY3WGhXeFYrUWZ2TGVi?=
 =?utf-8?B?RDNLWkdIOUN2bzZNdkpvZ3h3dTNhdEhlWkxDelVTUkxxQUhTTmU2cmlLM1Fr?=
 =?utf-8?B?NGFHZHlDRGlzMXZvOFVOZFlTMHhySDdlZTlndFFYMzhoOUp0NE1adzRFUmRv?=
 =?utf-8?B?elE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 43b5456b-2d47-46e2-1124-08de25d0a88a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2025 11:58:44.6199
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ScREtYqr85vIUH8VhXsyYk5vng+ekHUXEFpjehWWBjcVLeoqhBFcvauVs+7L0ZWG407BRf9ZspU8sIYNf00HWvwvkACsRkOZxnK3F39U97I=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5740

On 17/11/2025 9:43 am, Jan Beulich wrote:
> On 14.11.2025 16:24, Andrew Cooper wrote:
>> Link: https://git.kernel.org/tip/dd14022a7ce96963aa923e35cf4bcc8c32f95840
>> Fixes: ff8228ab4658 ("x86/ucode: Relax digest check when Entrysign is fixed in firmware")
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks.

>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>
>> Found because AMD have released ucode to fix RDSEED on this CPU, and I
>> cross-referenced the tables.
> I wonder how many more we're going to see.

I doubt this will be the last.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 12:13:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 12:13:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163641.1490722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKy6P-0000Bd-6u; Mon, 17 Nov 2025 12:13:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163641.1490722; Mon, 17 Nov 2025 12:13: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 1vKy6P-0000BW-4F; Mon, 17 Nov 2025 12:13:01 +0000
Received: by outflank-mailman (input) for mailman id 1163641;
 Mon, 17 Nov 2025 12:12: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=lv5t=5Z=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vKy6N-0000BK-MQ
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 12:12:59 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c07d1a50-c3ae-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 13:12:57 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-640ca678745so7095267a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 04:12:57 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fad45afsm1077729866b.24.2025.11.17.04.12.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 04:12: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: c07d1a50-c3ae-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763381576; x=1763986376; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=az9gHNL8qQ7mPprXh8UhiU8If7r0NCz3Ctyr94ienqw=;
        b=EQgr5Kvu0ozFkZycbXN+ngb2LZTsUGpP/2FWVkPUGhFJ/GkCA2jEz6u6EhZDixwuRN
         QgOcCbLHotu94ncR8gKJMEJUsfBFnA0XVnnKZhQqNrJU6duTFbWxL9bl6NFbdKCPu2YN
         heYH1P0k1aJL/WNLBkMSWvzfuXyEeDyvEAtHrH5V38uSXKTv/F19dOH3Id9bOQId1JbX
         0owQLG9ixJEz48TOjcbLrxDqpWVQKY/4YPI281HacyLYnXO88rqeWBF2HF6KQs5k2pLu
         0TCdrlNAKI09lWG0sv03E5hicnQSQ2mx6TtSW7u+fW30fQuj3uHoeoXbW/QQI4nxQMYt
         rNBw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763381576; x=1763986376;
        h=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=az9gHNL8qQ7mPprXh8UhiU8If7r0NCz3Ctyr94ienqw=;
        b=J6YHS7DIKUYPYD4ZXpEIghyf7PU3xGTvTYeUaA5gnR2RCEiKwrFE/fU/oPutaEicdN
         QS3ntfOjiidb28halIDVIjElsA/aLd5zTT6aWmf5m1UcnPYc3Z/fU76198MtQeBdgo6w
         GKpUBa33kGm7es7YIdsF8cBK0Zj2dpBIu1Ol8+XBXo7YbsUSMa8veO9m5IsJhIH4QD0f
         VH/Ht5jBmV6RJMA6zKJGUeBIXzNqWsw+CeXuO2Flcu9BYfxjxXJCwif6NCTtk/aYNJDU
         t2XFrpkcyEwgRnzcctUUGdDkc1byu1Ep2PMblatdGwoWNsg0NEgl/VngSqP3AGqJAekf
         uctg==
X-Forwarded-Encrypted: i=1; AJvYcCWP19AIkQP1foq3q2ctlWSLlrbgys3T8yYlDUVDWv4Mm9daIjwVy8ytNJpQ3Rzcg1/SIzt1pl5ONBw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxzroPu8j6AHhJAxRgdMtWFhCufk/O4njOO53sn2Il1BXIAkLZJ
	rVg/zQKwnstj95skMMm6IIjjgaZe9EHaN26KHfIclmhIHqrykEIN2hC0
X-Gm-Gg: ASbGncuMv7AzFXyoZBkZY72GjJwLwziFTRq/IqWudEtqOgrQADzgmTNMm3FtbVFjEi/
	H9lqIuAecZTI8o2k3owgBkzyEfAOOQQaC4MJZglod8Uwfv6aIhCT+DVxJF1zSB4Zh0QGFvLC7Eg
	U9/mUWpnJO7NPIKMGFMjywrIWiaamxUj080ZkK3igNM24kq/r8JaLN4Hi1kcr0xfQkbKTwmZpIZ
	QlZUGlKCYrx44T4YEp/tHV5fDh94JxjaqD04GLP/kUb8HxQNXLs7E0QD+agqRqtgQ8vzZAHtunm
	oRkQYfK0j6oCsHG5bQKpQIRZW1A1PPlJu5laEe5PtjAY2clvE8ZvIDR2dHEzxnLPlhW0zj4h6Ke
	nea3fqw3PIdcH4jYZWpy0E1/UVCo+UrcTY7EtePws3k38uZKbtw+3Tc06g79UM2IawAZtwtyP/+
	/gqczc0RxXxLZR5yzsqetMMNu80YmO5rcdIHUKipJPxn+C3MhUgg==
X-Google-Smtp-Source: AGHT+IF0ch6YEXuno3TEA7RWQgYZyozTJuCc7D5BtxvUbn39DGGUyyTdBHsosbzp1ZJxfZsjMXYWiQ==
X-Received: by 2002:a17:907:60d0:b0:b72:a5bd:c585 with SMTP id a640c23a62f3a-b7367bc68fbmr1075736666b.46.1763381576147;
        Mon, 17 Nov 2025 04:12:56 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------hBrUH0xIX0VKVjdil9R6jiHA"
Message-ID: <f4630bd8-1684-4888-8c2a-58c23dfaa9f9@gmail.com>
Date: Mon, 17 Nov 2025 13:12:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 12/18] xen/riscv: Implement p2m_pte_from_mfn() and
 support PBMT configuration
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <ff69e96dbb17e38e10468454d534061388201680.1760974017.git.oleksii.kurochko@gmail.com>
 <c77881bf-98aa-483f-8767-0be566f3dc34@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <c77881bf-98aa-483f-8767-0be566f3dc34@suse.com>

This is a multi-part message in MIME format.
--------------hBrUH0xIX0VKVjdil9R6jiHA
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/10/25 5:22 PM, Jan Beulich wrote:
> On 20.10.2025 17:57, Oleksii Kurochko wrote:
>> This patch adds the initial logic for constructing PTEs from MFNs in the RISC-V
>> p2m subsystem. It includes:
>> - Implementation of p2m_pte_from_mfn(): Generates a valid PTE using the
>>    given MFN, p2m_type_t, including permission encoding and PBMT attribute
>>    setup.
>> - New helper p2m_set_permission(): Encodes access rights (r, w, x) into the
>>    PTE based on both p2m type and access permissions.
>> - p2m_set_type(): Stores the p2m type in PTE's bits. The storage of types,
>>    which don't fit PTE bits, will be implemented separately later.
>> - Add detection of Svade extension to properly handle a possible page-fault
>>    if A and D bits aren't set.
>>
>> PBMT type encoding support:
>> - Introduces an enum pbmt_type_t to represent the PBMT field values.
>> - Maps types like p2m_mmio_direct_dev to p2m_mmio_direct_io, others default
>>    to pbmt_pma.
>>
>> Signed-off-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
>> ---
>> Changes in V5:
>>   - Moved setting of p2m_mmio_direct_io inside (!is_table) case in p2m_pte_from_mfn().
>>   - Extend comment about the place of setting A/D bits with explanation
>>     why it is done in this way for now.
>> ---
>> Changes in V4:
>>   - p2m_set_permission() updates:
>>     - Update permissions for p2m_ram_rw case, make it also executable.
>>     - Add pernissions setting for p2m_map_foreign_* types.
>>     - Drop setting peromissions for p2m_ext_storage.
>>     - Only turn off PTE_VALID bit for p2m_invalid, don't touch other bits.
>>   - p2m_pte_from_mfn() updates:
>>     - Update ASSERT(), add a check that mfn isn't INVALID_MFN (1)
>>       explicitly to avoid the case when PADDR_MASK isn't narrow enough to
>>       catch the case (1).
>>     - Drop unnessary check around call of p2m_set_type() as this check
>>       is already included inside p2m_set_type().
>>   - Introduce new p2m type p2m_first_external to detect that passed type
>>     is stored in external storage.
>>   - Add handling of PTE's A and D bits in pm2_set_permission. Also, set
>>     PTE_USER bit. For this cpufeatures.{h and c} were updated to be able
>>     to detect availability of Svade extension.
>>   - Drop grant table related code as it isn't going to be used at the moment.
>> ---
>> Changes in V3:
>>   - s/p2m_entry_from_mfn/p2m_pte_from_mfn.
>>   - s/pbmt_type_t/pbmt_type.
>>   - s/pbmt_max/pbmt_count.
>>   - s/p2m_type_radix_set/p2m_set_type.
>>   - Rework p2m_set_type() to handle only types which are fited into PTEs bits.
>>     Other types will be covered separately.
>>     Update arguments of p2m_set_type(): there is no any reason for p2m anymore.
>>   - p2m_set_permissions() updates:
>>     - Update the code in p2m_set_permission() for cases p2m_raw_rw and
>>       p2m_mmio_direct_io to set proper type permissions.
>>     - Add cases for p2m_grant_map_rw and p2m_grant_map_ro.
>>     - Use ASSERT_UNEACHABLE() instead of BUG() in switch cases of
>>       p2m_set_permissions.
>>     - Add blank lines non-fall-through case blocks in switch cases.
>>   - Set MFN before permissions are set in p2m_pte_from_mfn().
>>   - Update prototype of p2m_entry_from_mfn().
>> ---
>> Changes in V2:
>>   - New patch. It was a part of a big patch "xen/riscv: implement p2m mapping
>>     functionality" which was splitted to smaller.
>> ---
>>   xen/arch/riscv/cpufeature.c             |   1 +
>>   xen/arch/riscv/include/asm/cpufeature.h |   1 +
>>   xen/arch/riscv/include/asm/page.h       |   8 ++
>>   xen/arch/riscv/p2m.c                    | 112 +++++++++++++++++++++++-
>>   4 files changed, 118 insertions(+), 4 deletions(-)
>>
>> diff --git a/xen/arch/riscv/cpufeature.c b/xen/arch/riscv/cpufeature.c
>> index b846a106a3..02b68aeaa4 100644
>> --- a/xen/arch/riscv/cpufeature.c
>> +++ b/xen/arch/riscv/cpufeature.c
>> @@ -138,6 +138,7 @@ const struct riscv_isa_ext_data __initconst riscv_isa_ext[] = {
>>       RISCV_ISA_EXT_DATA(zbs),
>>       RISCV_ISA_EXT_DATA(smaia),
>>       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 768b84b769..5f756c76db 100644
>> --- a/xen/arch/riscv/include/asm/cpufeature.h
>> +++ b/xen/arch/riscv/include/asm/cpufeature.h
>> @@ -37,6 +37,7 @@ enum riscv_isa_ext_id {
>>       RISCV_ISA_EXT_zbs,
>>       RISCV_ISA_EXT_smaia,
>>       RISCV_ISA_EXT_ssaia,
>> +    RISCV_ISA_EXT_svade,
>>       RISCV_ISA_EXT_svpbmt,
>>       RISCV_ISA_EXT_MAX
>>   };
>> diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
>> index 78e53981ac..4b6baeaaf2 100644
>> --- a/xen/arch/riscv/include/asm/page.h
>> +++ b/xen/arch/riscv/include/asm/page.h
>> @@ -73,6 +73,14 @@
>>   #define PTE_SMALL       BIT(10, UL)
>>   #define PTE_POPULATE    BIT(11, UL)
>>   
>> +enum pbmt_type {
>> +    pbmt_pma,
>> +    pbmt_nc,
>> +    pbmt_io,
>> +    pbmt_rsvd,
>> +    pbmt_count,
>> +};
>> +
>>   #define PTE_ACCESS_MASK (PTE_READABLE | PTE_WRITABLE | PTE_EXECUTABLE)
>>   
>>   #define PTE_PBMT_MASK   (PTE_PBMT_NOCACHE | PTE_PBMT_IO)
>> diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
>> index 71b211410b..f4658e2560 100644
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -11,6 +11,7 @@
>>   #include <xen/sections.h>
>>   #include <xen/xvmalloc.h>
>>   
>> +#include <asm/cpufeature.h>
>>   #include <asm/csr.h>
>>   #include <asm/flushtlb.h>
>>   #include <asm/paging.h>
>> @@ -349,6 +350,18 @@ static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
>>       return __map_domain_page(p2m->root + root_table_indx);
>>   }
>>   
>> +static int p2m_set_type(pte_t *pte, p2m_type_t t)
>> +{
>> +    int rc = 0;
>> +
>> +    if ( t > p2m_first_external )
>> +        panic("unimplemeted\n");
>> +    else
>> +        pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>> +
>> +    return rc;
>> +}
>> +
>>   static p2m_type_t p2m_get_type(const pte_t pte)
>>   {
>>       p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
>> @@ -379,11 +392,102 @@ static inline void p2m_clean_pte(pte_t *p, bool clean_pte)
>>       p2m_write_pte(p, pte, clean_pte);
>>   }
>>   
>> -static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t)
>> +static void p2m_set_permission(pte_t *e, p2m_type_t t)
>>   {
>> -    panic("%s: hasn't been implemented yet\n", __func__);
>> +    e->pte &= ~PTE_ACCESS_MASK;
>> +
>> +    e->pte |= PTE_USER;
>> +
>> +    /*
>> +     * Two schemes to manage the A and D bits are defined:
>> +     *   â€¢ The Svade extension: when a virtual page is accessed and the A bit
>> +     *     is clear, or is written and the D bit is clear, a page-fault
>> +     *     exception is raised.
>> +     *   â€¢ When the Svade extension is not implemented, the following scheme
>> +     *     applies.
>> +     *     When a virtual page is accessed and the A bit is clear, the PTE is
>> +     *     updated to set the A bit. When the virtual page is written and the
>> +     *     D bit is clear, the PTE is updated to set the D bit. When G-stage
>> +     *     address translation is in use and is not Bare, the G-stage virtual
>> +     *     pages may be accessed or written by implicit accesses to VS-level
>> +     *     memory management data structures, such as page tables.
> Can you point me at the part of the spec where this behavior is described?

Sure, it is mentioned here:
  https://github.com/riscv/riscv-isa-manual/blob/98ea4b5a409456ee28749748e1eafa8533c463bd/src/supervisor.adoc?plain=1#L1453

>   If
> things indeed work like this, ...
>
>> +     * Thereby to avoid a page-fault in case of Svade is available, it is
>> +     * necesssary to set A and D bits.
> ... I'd then agree with the "necessary" here. (Nit: note the extra 's' in your
> spelling.)

Oh, right.

Thanks.

~ Oleksii

--------------hBrUH0xIX0VKVjdil9R6jiHA
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/10/25 5:22 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:c77881bf-98aa-483f-8767-0be566f3dc34@suse.com">
      <pre wrap="" class="moz-quote-pre">On 20.10.2025 17:57, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">This patch adds the initial logic for constructing PTEs from MFNs in the RISC-V
p2m subsystem. It includes:
- Implementation of p2m_pte_from_mfn(): Generates a valid PTE using the
  given MFN, p2m_type_t, including permission encoding and PBMT attribute
  setup.
- New helper p2m_set_permission(): Encodes access rights (r, w, x) into the
  PTE based on both p2m type and access permissions.
- p2m_set_type(): Stores the p2m type in PTE's bits. The storage of types,
  which don't fit PTE bits, will be implemented separately later.
- Add detection of Svade extension to properly handle a possible page-fault
  if A and D bits aren't set.

PBMT type encoding support:
- Introduces an enum pbmt_type_t to represent the PBMT field values.
- Maps types like p2m_mmio_direct_dev to p2m_mmio_direct_io, others default
  to pbmt_pma.

Signed-off-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
---
Changes in V5:
 - Moved setting of p2m_mmio_direct_io inside (!is_table) case in p2m_pte_from_mfn().
 - Extend comment about the place of setting A/D bits with explanation
   why it is done in this way for now.
---
Changes in V4:
 - p2m_set_permission() updates:
   - Update permissions for p2m_ram_rw case, make it also executable.
   - Add pernissions setting for p2m_map_foreign_* types.
   - Drop setting peromissions for p2m_ext_storage.
   - Only turn off PTE_VALID bit for p2m_invalid, don't touch other bits.
 - p2m_pte_from_mfn() updates:
   - Update ASSERT(), add a check that mfn isn't INVALID_MFN (1)
     explicitly to avoid the case when PADDR_MASK isn't narrow enough to
     catch the case (1).
   - Drop unnessary check around call of p2m_set_type() as this check
     is already included inside p2m_set_type().
 - Introduce new p2m type p2m_first_external to detect that passed type
   is stored in external storage.
 - Add handling of PTE's A and D bits in pm2_set_permission. Also, set
   PTE_USER bit. For this cpufeatures.{h and c} were updated to be able
   to detect availability of Svade extension.
 - Drop grant table related code as it isn't going to be used at the moment.
---
Changes in V3:
 - s/p2m_entry_from_mfn/p2m_pte_from_mfn.
 - s/pbmt_type_t/pbmt_type.
 - s/pbmt_max/pbmt_count.
 - s/p2m_type_radix_set/p2m_set_type.
 - Rework p2m_set_type() to handle only types which are fited into PTEs bits.
   Other types will be covered separately.
   Update arguments of p2m_set_type(): there is no any reason for p2m anymore.
 - p2m_set_permissions() updates:
   - Update the code in p2m_set_permission() for cases p2m_raw_rw and
     p2m_mmio_direct_io to set proper type permissions.
   - Add cases for p2m_grant_map_rw and p2m_grant_map_ro.
   - Use ASSERT_UNEACHABLE() instead of BUG() in switch cases of
     p2m_set_permissions.
   - Add blank lines non-fall-through case blocks in switch cases.
 - Set MFN before permissions are set in p2m_pte_from_mfn().
 - Update prototype of p2m_entry_from_mfn().
---
Changes in V2:
 - New patch. It was a part of a big patch "xen/riscv: implement p2m mapping
   functionality" which was splitted to smaller.
---
 xen/arch/riscv/cpufeature.c             |   1 +
 xen/arch/riscv/include/asm/cpufeature.h |   1 +
 xen/arch/riscv/include/asm/page.h       |   8 ++
 xen/arch/riscv/p2m.c                    | 112 +++++++++++++++++++++++-
 4 files changed, 118 insertions(+), 4 deletions(-)

diff --git a/xen/arch/riscv/cpufeature.c b/xen/arch/riscv/cpufeature.c
index b846a106a3..02b68aeaa4 100644
--- a/xen/arch/riscv/cpufeature.c
+++ b/xen/arch/riscv/cpufeature.c
@@ -138,6 +138,7 @@ const struct riscv_isa_ext_data __initconst riscv_isa_ext[] = {
     RISCV_ISA_EXT_DATA(zbs),
     RISCV_ISA_EXT_DATA(smaia),
     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 768b84b769..5f756c76db 100644
--- a/xen/arch/riscv/include/asm/cpufeature.h
+++ b/xen/arch/riscv/include/asm/cpufeature.h
@@ -37,6 +37,7 @@ enum riscv_isa_ext_id {
     RISCV_ISA_EXT_zbs,
     RISCV_ISA_EXT_smaia,
     RISCV_ISA_EXT_ssaia,
+    RISCV_ISA_EXT_svade,
     RISCV_ISA_EXT_svpbmt,
     RISCV_ISA_EXT_MAX
 };
diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
index 78e53981ac..4b6baeaaf2 100644
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -73,6 +73,14 @@
 #define PTE_SMALL       BIT(10, UL)
 #define PTE_POPULATE    BIT(11, UL)
 
+enum pbmt_type {
+    pbmt_pma,
+    pbmt_nc,
+    pbmt_io,
+    pbmt_rsvd,
+    pbmt_count,
+};
+
 #define PTE_ACCESS_MASK (PTE_READABLE | PTE_WRITABLE | PTE_EXECUTABLE)
 
 #define PTE_PBMT_MASK   (PTE_PBMT_NOCACHE | PTE_PBMT_IO)
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 71b211410b..f4658e2560 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -11,6 +11,7 @@
 #include &lt;xen/sections.h&gt;
 #include &lt;xen/xvmalloc.h&gt;
 
+#include &lt;asm/cpufeature.h&gt;
 #include &lt;asm/csr.h&gt;
 #include &lt;asm/flushtlb.h&gt;
 #include &lt;asm/paging.h&gt;
@@ -349,6 +350,18 @@ static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
     return __map_domain_page(p2m-&gt;root + root_table_indx);
 }
 
+static int p2m_set_type(pte_t *pte, p2m_type_t t)
+{
+    int rc = 0;
+
+    if ( t &gt; p2m_first_external )
+        panic("unimplemeted\n");
+    else
+        pte-&gt;pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
+
+    return rc;
+}
+
 static p2m_type_t p2m_get_type(const pte_t pte)
 {
     p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
@@ -379,11 +392,102 @@ static inline void p2m_clean_pte(pte_t *p, bool clean_pte)
     p2m_write_pte(p, pte, clean_pte);
 }
 
-static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t)
+static void p2m_set_permission(pte_t *e, p2m_type_t t)
 {
-    panic("%s: hasn't been implemented yet\n", __func__);
+    e-&gt;pte &amp;= ~PTE_ACCESS_MASK;
+
+    e-&gt;pte |= PTE_USER;
+
+    /*
+     * Two schemes to manage the A and D bits are defined:
+     *   â€¢ The Svade extension: when a virtual page is accessed and the A bit
+     *     is clear, or is written and the D bit is clear, a page-fault
+     *     exception is raised.
+     *   â€¢ When the Svade extension is not implemented, the following scheme
+     *     applies.
+     *     When a virtual page is accessed and the A bit is clear, the PTE is
+     *     updated to set the A bit. When the virtual page is written and the
+     *     D bit is clear, the PTE is updated to set the D bit. When G-stage
+     *     address translation is in use and is not Bare, the G-stage virtual
+     *     pages may be accessed or written by implicit accesses to VS-level
+     *     memory management data structures, such as page tables.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Can you point me at the part of the spec where this behavior is described?</pre>
    </blockquote>
    <pre>Sure, it is mentioned here:
 <a class="moz-txt-link-freetext" href="https://github.com/riscv/riscv-isa-manual/blob/98ea4b5a409456ee28749748e1eafa8533c463bd/src/supervisor.adoc?plain=1#L1453">https://github.com/riscv/riscv-isa-manual/blob/98ea4b5a409456ee28749748e1eafa8533c463bd/src/supervisor.adoc?plain=1#L1453</a>

</pre>
    <blockquote type="cite"
      cite="mid:c77881bf-98aa-483f-8767-0be566f3dc34@suse.com">
      <pre wrap="" class="moz-quote-pre"> If
things indeed work like this, ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+     * Thereby to avoid a page-fault in case of Svade is available, it is
+     * necesssary to set A and D bits.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... I'd then agree with the "necessary" here. (Nit: note the extra 's' in your
spelling.)</pre>
    </blockquote>
    <pre>Oh, right.

Thanks.

~ Oleksii</pre>
  </body>
</html>

--------------hBrUH0xIX0VKVjdil9R6jiHA--


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 12:24:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 12:24:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163655.1490740 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKyHV-00026Q-7v; Mon, 17 Nov 2025 12:24:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163655.1490740; Mon, 17 Nov 2025 12:24:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKyHV-00026J-5R; Mon, 17 Nov 2025 12:24:29 +0000
Received: by outflank-mailman (input) for mailman id 1163655;
 Mon, 17 Nov 2025 12:24: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vKyHU-00026D-Ew
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 12:24:28 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5bd49fe1-c3b0-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 13:24:27 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-640c6577120so7247443a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 04:24: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
 4fb4d7f45d1cf-6433a3d839esm9882450a12.8.2025.11.17.04.24.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 04:24: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: 5bd49fe1-c3b0-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763382266; x=1763987066; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jlpKt/C4yNPfozY6tNjls1g1YxVyS6BZDULTzNUprhk=;
        b=Zwg+eCWEbtkFJutgG0To/wDfb4tgmlH5FwJtWhWVRh4D2o3TqmEvxKjPXjSYs4muKX
         +8YQowxDN6MV9TEzjxQyDFRW23UN3lsinWjOkdRAzaq+8bdhQcEtuXHvnq8CAZBJf7Ki
         h/4Ez3GabOqXc7J9fHaj2vHZ3QszspP6ftT6EdRCipKvWnaNmBdM1wlpsNu7mp6EBBkX
         irfUzLBmp79qI+xYYH9jJQ1VAZDYeDd3hlaqehDMudWU/vtW7gyNMRzHu1wx02NlhaVf
         XwRLqO4ftk2Cr/LGB1q1xNLSLoOJoVlS9pl+eab5FC73cJOAIXgy44UoSSPPnRE04NRq
         wSEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763382266; x=1763987066;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jlpKt/C4yNPfozY6tNjls1g1YxVyS6BZDULTzNUprhk=;
        b=SIgfkGUPVaaBlyOFu3J/vNnj1S9rGohfrRzoNJkRTZ12dUcTOkZrk6IOnbB9ku4tnf
         /OGCpY3Xv441GLfngHXrBRe1qaKhHZGXUAGn9hto1RY6w389vFXklEWNPrXSxYUgKIT/
         K+T0KonSzjlIBUAq3R9iq1MWtpie+N+oYdEhk9dAYQs5ZEZmyPDuDKS6lBR62gP/7Wvt
         XBofc6eLBGAEs7pqLivxHBl7GfSiKWQeA/YuKeOm4IJxPHt/dzBnpIuuMU1YXX9SbN/R
         fLi/bBYL9OwByiBQp4N7WCyhP0HPqkdSTGyDooESasdSoL0P61MkSM6z0zlG4ew1WStl
         Gcxw==
X-Forwarded-Encrypted: i=1; AJvYcCXpAqq2Tlm9rZ5hQU1iwuCX1EeALvmVd6v4D318oSr9CBC7hPIW9zimj9YZnC00r1dWC4XVe5eDK2o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzCFT+0RT3G0a2iwVV8uRD0/6w/12J9gsKGYswY7Q2ufojP4xKG
	ZsgCI5cFn9981sqHDgMYiYFMX3I+/Jt4KQVrxbHwPmjc+dTlxxpBh2GRm0omlLKzu96W1INv7BY
	ZTOE=
X-Gm-Gg: ASbGnctGDEV3sVlz924jeD5MUgeZHkrpcbrVKOqDBcRnh/RoMeCz2AQM2pFAbEQCttJ
	r8mL155VOwC0xSlD59RmS2sYHE+O8mfnDM8l0W3/XrStplpGXTZXef1uAMSp6QqggnjCfWK6vM3
	glqese9WUJGXkEPtQL5TCg6fAabcUWsPs55slOoRomPRxN9irnbZXlP2p3XwqPhcjDJvB+6fSXY
	54naWwwdWX6lPHxiEvhBi9YKOtZt92SBnPCchumbSsOhSYey9Io+I2Q6RXjZyE6oMZdYAWBoZx8
	G5Wvcg5IJtew+scQfbKxlBVqJqPIZ4aDeQrY+inhuFO7XM3mJSIhF5A8siwmr7gpIpzQfVtW2Cs
	zKAQTZpcQ09a/Nrx7r8bdPCnKEOKAUAuWqunNflwVG4wZu7iEvE1dAHYbFfckd6nbXTga24OkJe
	GFgw3M230uTg2f7BfaXyyddZ7tpqNj2mUn8qELNJ1dh111JRl95iHgUtXXURD6k+Q/
X-Google-Smtp-Source: AGHT+IFQYms9f8/Uw3McJcfQoPfjIt5vspFPNHLehTpPDagg5GNzj8pv4VNCwW3y4304AUjeYZmRoQ==
X-Received: by 2002:a05:6402:34c5:b0:643:130c:eb6 with SMTP id 4fb4d7f45d1cf-64350e89f2emr12691973a12.22.1763382266494;
        Mon, 17 Nov 2025 04:24:26 -0800 (PST)
Message-ID: <113c9cc1-5e39-4a54-88de-dd2b70b90a49@suse.com>
Date: Mon, 17 Nov 2025 13:24:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] build: add make macro for making file from file.in
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.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>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-2-jgross@suse.com>
 <468c6686-43e5-4c35-8366-58558f199e22@citrix.com>
 <cc90d18b-f88e-49d9-a55f-b7035ce43167@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: <cc90d18b-f88e-49d9-a55f-b7035ce43167@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.11.2025 13:54, JÃ¼rgen GroÃŸ wrote:
> On 14.11.25 12:42, Andrew Cooper wrote:
>> On 14/11/2025 11:32 am, Juergen Gross wrote:
>>> diff --git a/Config.mk b/Config.mk
>>> index e1556dfbfa..d21d67945a 100644
>>> --- a/Config.mk
>>> +++ b/Config.mk
>>> @@ -159,6 +159,19 @@ define move-if-changed
>>>   	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
>>>   endef
>>>   
>>> +PATH_FILES := Paths
>>> +INC_FILES := $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
>>> +
>>> +include $(INC_FILES)
>>> +
>>> +BUILD_MAKE_VARS := $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).mk.in))
>>> +
>>> +# Replace @xxx@ markers in $(1).in with $(xxx) variable contents, write to $(1)
>>> +define apply-build-vars
>>> + $(1): $(1).in
>>> +	sed $$(foreach v, $$(BUILD_MAKE_VARS), -e 's#@$$(v)@#$$($$(v))#g') <$$< >$$@
>>> +endef
>>
>> Shouldn't this write to a tmp file, and use move-if-changed?Â  Most of
>> the time the markers won't have changed, and we'll want to short circuit
>> dependent rules.
> 
> I can see this being an advantage when e.g. generating header files, as
> those being generated again would potentially cause lots of rebuilds.
> 
> In this case I can hardly see any case where make wouldn't do the right
> thing already. Either the *.in file is newer than the generated file due
> to a git update or a manual edit, so make will regenerate the target (and
> this is what we want), or the *.in file hasn't changed, so make won't
> regenerate the file as it is newer than the *.in file already.
> 
> Or did I miss some aspect?

Aren't some of the generated files Makefile fragments? Them being re-generated
means make re-invoking itself, which could be avoided if the contents don't
really change. (This isn't just a performance concern; this re-invocation has
been the source of, well, surprising behavior in certain cases.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 12:30:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 12:30:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163668.1490749 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKyMt-000394-0B; Mon, 17 Nov 2025 12:30:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163668.1490749; Mon, 17 Nov 2025 12:30: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 1vKyMs-00038Y-To; Mon, 17 Nov 2025 12:30:02 +0000
Received: by outflank-mailman (input) for mailman id 1163668;
 Mon, 17 Nov 2025 12:30: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vKyMr-0002nL-22
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 12:30:01 +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 225bbd08-c3b1-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 13:30:00 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b6d402422c2so663809666b.2
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 04:30: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
 a640c23a62f3a-b734ff75e4fsm1070289666b.12.2025.11.17.04.29.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 04:29: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: 225bbd08-c3b1-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763382600; x=1763987400; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Gocl5TiaGmVKnsy/ZmqGIMk6DmOfHv76xIlys1CiaYs=;
        b=U6YXOYB3uRaQIrYQeTTpOQIGST6Px0Z5ii7de+e++8eOWwIUooFr0/HHeyiYpjdMl/
         pNpLbnqQUI6b4mKbrJ6Vzs77/6aEZbr9+RJ+0Gh0pzGRHJ/2wdeLIW6cqmObo7UVAT+C
         +ElJfaGcdXzylDBTG99DUeIjTX4OKxdO5Ah5UZh5BAgNwver6BgOrXVCfjHZWEK45CNY
         l8+KeOB/TpcywHs16kJMFXmVUYpMBwRr3lGMWkiHaFg/zlM+Q0D/5hxjixbXnt7yAvFg
         w6QD7fVtVUnzwoHA4ata0xjpyTW2LsMFsGqyJ6mG3fXr5BwrL1vzMLLGfDndRQLkoBgi
         shzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763382600; x=1763987400;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Gocl5TiaGmVKnsy/ZmqGIMk6DmOfHv76xIlys1CiaYs=;
        b=Ygdp3MbGVhyXSmP/fJytIVueC/4/twvLmATWwhLgD3smJ6SEnMwr6GanLB+4zKB+4r
         fGlyhKqhAiFQkGTFbK6tv2HXmedzPW0Bh5EgedIAzqLIjr0XxDsuUwEIZoNjytEX/ZtL
         0F1hNjGINfM2r/stQMtwFSEvcuusvZYe213Uvy4O60xKp2pC4etzNspdMLeB6R+CSw0z
         b/N+BHqSbgwYLcDz2J/j/Pt6J2LvlM+PGQrwSfKJnh3XsCj9nsnguC6WJXUVkpx41+s8
         6n9ks58KudHYzpuOV+4+6fhN98xqyzmbzq/3ajVBixuxAhw9C81jCOk1SdlOuTRElEry
         wMpw==
X-Forwarded-Encrypted: i=1; AJvYcCU6mkW5/RZvgejbppCZONYBjOAyupwNIA+mn8/dK1jQtnPz9O63oMRgkYtWtZ+2IvDWg36TypbvhtE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzVQEN+1smNPqVoM4rzCeDgkpjh8NimimT5/RvXz0CaR/PCsfis
	jICTV2LIs8Uxh6BDJxMAmuSRnh0SdF6ztA0IUO3IXqEVBT7OGaa4RTI9jQV094VwzQ==
X-Gm-Gg: ASbGnctL3m86XrmAWTBRV7nV0/awxckRa0ZYnm+JTR9enHaCdSG+7FrlXi5R0Z5XAFJ
	rYIN2Zy5b/nnwrlAdEo3cfMImhvhkZtYab9vcIPql8AVRd2BwQMbARY/AAior7/i5q1Tto4Xg9A
	czo635FHThk0WR0i9UZTY/ui4sGTx0WiXsiL2Po/tvrbG2ZIBPzO1DPHvK2/v17mPXZl/Z6xAGo
	suUt/9jq4JFl1dWbiqGyNjIRDuH5EZohE2/NBaKMVMp0E8z3ib3EDfMQLawec8C1iRfJ3h77QdC
	rRdYR9uNsd5Evk1SDOZCA5dGsexG6edDaqTvniv6H53U2nCq7pHG7soGo2Dbl/OR29AHr8MBqND
	iqm86dhCBEp5zmc6u1VgtvzonQaGTUNUL9rTSxqAbseeE2ojsATwNhnUvRxTSmWd+CMo2kx5NC6
	PkUNBjgUwgWk7DR3ft0idLyMeBRyWTBtyAuGnTuRSmgpiN82Q5Ppg0EliSnwnqKyPvNSY5/CGB1
	oJVQfYE2dhG2w==
X-Google-Smtp-Source: AGHT+IGhgcNMegrL2eJx0cCps9Vs7uEPKF96I26sQPHNgOR1Oi8MhdBoboPN6YZrAvv9LPXd5XMLYQ==
X-Received: by 2002:a17:907:6d15:b0:b4b:dd7e:65f2 with SMTP id a640c23a62f3a-b7367828df9mr1371258866b.5.1763382599505;
        Mon, 17 Nov 2025 04:29:59 -0800 (PST)
Message-ID: <936632a3-d713-4183-b1db-5a554b617b74@suse.com>
Date: Mon, 17 Nov 2025 13:29:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] build: add make macro for making file from file.in
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-2-jgross@suse.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251114113238.9279-2-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.11.2025 12:32, Juergen Gross wrote:
> Add a new make macro for creating <file> from <file>.in at build
> time. To be used like this:
> 
> $(foreach file,$(IN_FILES),$(eval $(call apply-build-vars,$(file))))
> 
> This can be used instead of the current approach to perform the similar
> step for file.in during ./configure.
> 
> This will avoid having to run ./configure just because of modifying a
> file depending on a variable set by configure.
> 
> Prepare to have multiple files as source for the replacement patterns.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
> V2:
> - don't use pattern rule, but create explicit dependency in macro,
>   don't require to rename source files (Jan Beulich, Andrew Cooper)
> ---
>  Config.mk | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/Config.mk b/Config.mk
> index e1556dfbfa..d21d67945a 100644
> --- a/Config.mk
> +++ b/Config.mk
> @@ -159,6 +159,19 @@ define move-if-changed
>  	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
>  endef
>  
> +PATH_FILES := Paths
> +INC_FILES := $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
> +
> +include $(INC_FILES)

Is any of the above part of introducing the macro? "Paths" is already a
specific case of holding patterns that want replacing. In turn ...

> +BUILD_MAKE_VARS := $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).mk.in))

... it's not quite clear to me how it can be $(PATH_FILES) here.

> +# Replace @xxx@ markers in $(1).in with $(xxx) variable contents, write to $(1)
> +define apply-build-vars
> + $(1): $(1).in

This being indented by a space looks a little unusual.

Jan

> +	sed $$(foreach v, $$(BUILD_MAKE_VARS), -e 's#@$$(v)@#$$($$(v))#g') <$$< >$$@
> +endef
> +
>  CFLAGS += -fno-strict-aliasing
>  
>  CFLAGS += -std=gnu99



From xen-devel-bounces@lists.xenproject.org Mon Nov 17 12:30:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 12:30:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163671.1490760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKyN9-00044A-72; Mon, 17 Nov 2025 12:30:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163671.1490760; Mon, 17 Nov 2025 12: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 1vKyN9-000443-4D; Mon, 17 Nov 2025 12:30:19 +0000
Received: by outflank-mailman (input) for mailman id 1163671;
 Mon, 17 Nov 2025 12:30:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RXl4=5Z=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vKyN7-0002nL-GI
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 12:30:17 +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 2bbf5389-c3b1-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 13:30:17 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH8PR03MB8225.namprd03.prod.outlook.com (2603:10b6:610:2c3::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.22; Mon, 17 Nov
 2025 12:30:14 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9320.021; Mon, 17 Nov 2025
 12:30: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: 2bbf5389-c3b1-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GOVrGQWgoW3ZMDzinC9g6+Kdp1Dxo6wK7+qIjWAYaFgv6l1W+oUB1pK4RyuMdDleQBZPYp5p01RyAudk12/JK//HUqW8zhozYQFpRttWrlUifixthXHS12dej6GQFt3Mo8Vl+GcenkBtszkI99p35f1iWfczwH/zbt4HQJ4OYR3UcFe2yOgiBIJd7kcpVA+53dPK20vHWSwWSCC3Vd2ZVIg3kNimj22mdkaeEBKsq9dxg+AyLc01ZVKK9FcO4hhD5IWqSWfDtu6bETyMtIPi5EkDhmFy38FJa5l7z34QVEsa1Hdol5e47cL/87aiaErOeL4RgvZ/AEgbctM+oASyDg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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/+DRLArGLCZpYFA3M/ya4bWWpXk10BXJza2YB+BZDE=;
 b=dXxMPQTB/Hg5N5Ztc8o9EcJW7ey3aWvtfJrs+p4LaZpUG2x3+RJkzDQMJTnl7gsWNyzbX+OS+DILeeTaGgMxeUL6ciQZjHUn8D2Xz+aZDaYIjD+iRv//DhG8tatwT1fCrbvGpQo/1UEtGZzVEiFOBIwesz3IoXP4aEysrk/aULB4ZziUqG2jaj/9CV9kntSRKkAPRW2Kz6ZeM+v3Mb7mXzVz5APPMrmBCYrjOJ6QbLBS5LXvX4lUhaV2y4mzaedV2c5PPcnznU+w2ehlYBKFbWF/EdrjGVulrJ6FLQv8t4q4tdUP92apMDU+c8+BB0nfvW1XSQyYX79jweRt83T8+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=s/+DRLArGLCZpYFA3M/ya4bWWpXk10BXJza2YB+BZDE=;
 b=bo9Rjt1vI+7eK6Iv9D4EhuM1NcWi8fkQOOkNx/5gSEytMrRwwbgyBBYYWizL4jO+8es2wEl7YSMfmXQO2Adwh/KlfeiFwTeIZBmoFVjOsrDRfAG8tiHBzJMBV9tqNeNI3TElxnkeSnW2+hl2YvbvrY5N4pK4YfVamQLoLGfYOEw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d3528e7b-a811-47ca-a508-c0aa0746d9f3@citrix.com>
Date: Mon, 17 Nov 2025 12:30:10 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] build: add make macro for making file from file.in
To: Jan Beulich <jbeulich@suse.com>, =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?=
 <jgross@suse.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@lists.xenproject.org
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-2-jgross@suse.com>
 <468c6686-43e5-4c35-8366-58558f199e22@citrix.com>
 <cc90d18b-f88e-49d9-a55f-b7035ce43167@suse.com>
 <113c9cc1-5e39-4a54-88de-dd2b70b90a49@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <113c9cc1-5e39-4a54-88de-dd2b70b90a49@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0092.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:191::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_|CH8PR03MB8225:EE_
X-MS-Office365-Filtering-Correlation-Id: 508829af-6c89-4914-a821-08de25d50ea3
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?SElZMkxYTUhiS21yZWpSZ1pla253V0NLLzdYZ3dJTG55N3MwMUorVExGNWJ2?=
 =?utf-8?B?N3lIbFJ0MTlnNHFiMTV2NjQ2WDZudURsNDBtL0x0TjNqSjczZWJEdkFZT1Zt?=
 =?utf-8?B?eWhlakNCT28vc2xaMFJzN3QveXZhWlQ2YzRFWFhQcjhxenN1TTBBSEtlVVgw?=
 =?utf-8?B?RjRDS2JZaHR1dU5xdEtLYkJZMjJMQ1g0eWMvRlk0QzlGTHRDMno0U1BNQ1lw?=
 =?utf-8?B?SklZQ0ZOampiTGhMeWdkODM0bG9mWklTa0t4L2ZYeDROSkgvMzl3UkI2RWlj?=
 =?utf-8?B?TTY0bWQxU0VpRHpTemdxZENlZVpZN3FLdjhzcFYzdC9xa3VHZVRjQmlUbk5B?=
 =?utf-8?B?SXZFVGJpNGdxU3hCN1hiNFNzZ0J3bzRjakEyMmxKcG8xRVdIUktGTUpLbmpF?=
 =?utf-8?B?RTZMQ1cwK3JKVlI3ZFFBV1h4TWRlN29ySFlBM3B6aEw2blprdHQrTHNUc3RM?=
 =?utf-8?B?WEVqN09IbmszVmZHL1lCend4OTM4eTgyNDZFZ2h6c3hHNzEzN051c3dkK01u?=
 =?utf-8?B?QnE2dnVBN1A1TGxQaVp2VXN6ekJvVWdHVzBLTlV2YlhNZTdDRWZWK2dENm5S?=
 =?utf-8?B?Qng3U2p3YW03Y2FBR3FXU1A4dXNwdXh1N1Q1ZGxoVlZvbmVHTUdCS1grS0xa?=
 =?utf-8?B?R2NwSTRUYzZ0T1FUQzRkUGo2dXhHWkJBZ2R2ZnNXaVgyTWdnVHRaS2dHaU5j?=
 =?utf-8?B?ZkY2RFA3Tk94RGowR0tKbTU0LzdnQVlad3c5a2swTktQTHFFRDIvWGFUMzhB?=
 =?utf-8?B?QXRRenNJYTM1aHA4UFVQM1F5bzd3ZTV2Y3pacmpYWllid1RoNGdpSFNORHFD?=
 =?utf-8?B?YVpUekowMWtVSEY4YjhsOXZvek42OHFuc25ydkthdDJEbFFaYWtjN1YrT0Jm?=
 =?utf-8?B?OUNGVGhhYU1LaHNmUFRRbWkxc21hblVRaDZTbjlWcDArZGJqSlp6ZFNRUXd5?=
 =?utf-8?B?Z1NtZFFCSm5aSnVJTGs4dGVUQ3pZMHEvcEs0ZmdMV3g3MDZRSXpKeWo5aVVK?=
 =?utf-8?B?bStlR1QzcnJkSERncnZsNjYvUldpR1ZVLzRxY2ZBemRTVmxOTURkV3pRT1B1?=
 =?utf-8?B?QTJuVmg0UWdjcy92NmR4dVhNL3NkSy9ycVF3VTV2NUx2MEFMa2hKcTYwQWlO?=
 =?utf-8?B?NVFQcHZVNVRLZmY5Y25HZWNWdE5qZWV3QVhCbE5QU0tzS0ducyt4VG44ODQy?=
 =?utf-8?B?dHZMOStTYVpTbTdkYXFrdEVvOU0yTmV4dGdaQ3FkK2JiMlIrM0JRdjZNYTNV?=
 =?utf-8?B?eHlkeGxHWk81dy9MRXk5eFpxRDUwWStHWlo3eloxWVlHNE5zdVZuSnFQam8z?=
 =?utf-8?B?K3ZnR3laUmFmSE1JRzg2eHBKRmdTY3RSUDcyY3c2dUVKSFV3aFllWGRPNWY3?=
 =?utf-8?B?bTFOLzlqWFdOZHdDdUVuSEtrNGtFcjRDL0ZNMEcwekZMRzIvQU8zblFDcEl2?=
 =?utf-8?B?dzFOcmJqMFJkVmVEdDhHZElSL04yZTZBQnN6TnpiWG5CbHJDZEtsc1AzTzg0?=
 =?utf-8?B?RmJtUE9JVHpmRURIZXJ3QVdybzhOejZSRis3SzhCRUZuMTZ0SzRxNGZ2V3M1?=
 =?utf-8?B?akhjaHhCYlJjdGkxUVA1cThxanhaaFRzakJiSVNtUG4xOWJ1ZmlxR3ZYR0l6?=
 =?utf-8?B?bHNqUGlDRU1wS3FyRTAybEhGR2FvRlRERk8rNjlpc0xVWTNMS3E2Qy9ydmRa?=
 =?utf-8?B?cnFhVlhiMGtJdk5VcUwzNWkwU1VxWXd5UTlEMVZhV0JOM3ZsbkQybytUTmZj?=
 =?utf-8?B?REg2eXozVXBsbmpaYjNnN0FkYmNDMzQ0QlQyQXg4V0g5VFFZbi9VOXlvZkFY?=
 =?utf-8?B?eTUybzYwYjgycnk2MTlhTmNzUzk2QnVQZ25PKzh2TnMwVEJuWjl3NkMvRmw1?=
 =?utf-8?B?YnJqMmdZNnpTcnhrcGNNTXRGU0NuREs5SHRpRkJrV1ovcW5mSVZnVGwrZW12?=
 =?utf-8?Q?qujGYirKdmqzqn4c9oJLFrgsYfiWbYv1?=
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?R3BRYUFZalhpZkc1Q1pYZW9wS3F3d0VCZ0JkZEFSOEpyOWY0TFJBVDdYNmo2?=
 =?utf-8?B?VGpDSU1LV0FvVWZORUpYZ3hEdjVGWXU3L0FqdGlRVFU3Zms5cGNyUzdTWUxK?=
 =?utf-8?B?ZW4yUjlYeFBJZ2RoNVF4dnRpWWdqOVFsZDFnY3VyNkhkOWo3WHo3ZU13ZFd3?=
 =?utf-8?B?SUlQMWRYanRubTJ1cHcyWU1sbnhydnRwc0NQWmxOLzZKSmZUbTVqZEJMVkh3?=
 =?utf-8?B?MlNJbHZ4MHR2MTl2SWdaSVdCTjk2NTZ2N0Z6MVp1ODFOaFBOT1JFeWhBZkkz?=
 =?utf-8?B?VjVvQ0xJREN1cnlWT2pSek1EOENMVzhHZDJsTTMyRW1YVUcrTkhVbWdIQVVn?=
 =?utf-8?B?SEVrM2RrcWo3SGpacjVkeHNSUjdrK3hLVy9XZVM2LzhjVHJ1TzB5RlJ6bUZ5?=
 =?utf-8?B?QnlTSkZMbXM1K1I2WjF0NDZHWWFLUGFYTGt2d0VLTVZTU3REcmluRDlpU2lG?=
 =?utf-8?B?ZG1GT0VZVzEybWRMZ0tzTTQ3d245TFdPWW5lMXJaVGhXQ2lkbUluUnhqVy9i?=
 =?utf-8?B?SVF3a2lRaFZoZjh4UG9aUTFwdmJoRnlLb05sN0E2cDBOcVM1dkREcjU0WnlL?=
 =?utf-8?B?Zmp5SUtwVldmeHRsT291a0tWV05ZbTNaQzNpbzl5aVg2NFAxSXhydjRNSm9E?=
 =?utf-8?B?Vmc3d0lQcHZFU0N0WnN4VGlYeTVXaWt5MDhqMGZ6U24yQU1RUE5RSncvY1BO?=
 =?utf-8?B?aU4xS0VObEJBWDVKQm5wMHRrUUc4S0RZNDNHdFl6dXNzQllaNjloMjlLVzJM?=
 =?utf-8?B?UGc0NHpFOVVBM1pyMnZHd3RXMXMrZmx6YkZhNmdxRkR3UFl4cmU4dktvN3Fo?=
 =?utf-8?B?djFQempsQWs4bnpzSjE4VFlJYU5DOURCQ3NEeW5tVHo2MTczM3I0NnFwU1My?=
 =?utf-8?B?SlRlSW1xS1Zqb0VUSXIxVHdOekV1aGd4YnhJZnZTS09hWFZuNGthTS92cE9p?=
 =?utf-8?B?UGhJTDU2d3d2Y1dxRHhyemxXVVR1a1UrRzZDQ09YaFEvWmExekZYUHBja1k5?=
 =?utf-8?B?blloelUyZ3UzS29uRnUrdS9QbkoyUlA5cEV2L2NIWFpHNlVPY0daWHgzK1BT?=
 =?utf-8?B?Sm5VTFU0RHprTmRjU244cTRvQ1ZJVDFZS0Zhd2FMUkZKTlh2SFo5Nmw2VzNY?=
 =?utf-8?B?S21BM2RUOXkwY213UEp1bHUxUGh1bklrTGV1ckQvRFVKZnMvdGVCMDJ4TU1P?=
 =?utf-8?B?SWgzUmZBNFJlYjJReXdBZDRrTlMxSVRSZTU1TlFTdS84a2JUK21kUWllSEhZ?=
 =?utf-8?B?Q3RDcHBPVUlJWFFxMnBKbEMyU3V0Mk5seUdTYXBYVE9ZSE4rTUtmK0R0MEZC?=
 =?utf-8?B?RlFqUlE2aE9wcGVMVXFKajZBcjdEVjZuQklmQWNCSWZMWEZEUW82cjVmWWRn?=
 =?utf-8?B?cjNZaC8zRkRKOU9NKzB0RUw5L0ZQMWNRbzBwMlQvT1ZSVmNoV0pVWGh3OXla?=
 =?utf-8?B?aTNnanhqTHh0VlRDTUZUbFk3TkpQZm1wYjRSa1NXdEZwMmNQVXcvMHk1SlpH?=
 =?utf-8?B?MzhHV1haOWpnWWlaNDJaODdUVVpZeksxRG1Ec2lZNXZqNkg3U3JidWhHRzBm?=
 =?utf-8?B?bjlwWElXNU5INkNudiswY01USDhScG5jcTR4STVGTDhYajNpdWNqbFdwY214?=
 =?utf-8?B?NXdPMUhrZ1Z0anFGRExuOVZPNW5sQVJZcmlldjcwZXdnTkNkaTVFQXZXYUxh?=
 =?utf-8?B?RmxhQWllR0tJMzBuenpsWk5lQlhEd20rUGMvc3NWN1hRL1pPMGNKM3BGRnhr?=
 =?utf-8?B?ZFFxVmdlditJQTJTQ21HRzlpbmtWSWZUS29YZXlrbVlIajE0QkFMb0hrQzkz?=
 =?utf-8?B?WWxaZ1FEUjJjUjZYVEdSV2kxUmlHakZlZXZIc2wwdkZxcEphR21UZmlEQVBx?=
 =?utf-8?B?Nyt6N00xRktSWEY2SU5Ba04xRGh6NWp0cjZaa2k4QitmV09QOTFBUVliMmVa?=
 =?utf-8?B?QXBnT0x5bCtMU0hWVE9MSjd6M1h4S0hNWlZlNjBnUURQemVUZnNqbFZxMklh?=
 =?utf-8?B?SGpsZ25ZSjk3M09rWDFIS2dMbmZPZWM3NWJ6SkVCNlJCUlNmMEJJWXVSdHZL?=
 =?utf-8?B?QUE3NGRLajFtdWFINWpSNUpsaTBtdU85WHpITkRsMWdBeVV5RUZpK0lQeTZJ?=
 =?utf-8?B?L3JTcTNNNncrQmFoY3dsQ1BIZStoSUcrUEV6SkxrOFFyZnFLUEFDZUFHRkdj?=
 =?utf-8?B?bWc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 508829af-6c89-4914-a821-08de25d50ea3
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2025 12:30:13.8602
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: nCCBYOkszKpYUlFwNS9ELiKyF8R5rPoLda/YrzpWnyhAp2BC0lfFuxNu+ztzW4uagquQcwCcRbynQDYVSeKQSLmndcvBJnp7zDOyPXQiwts=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH8PR03MB8225

On 17/11/2025 12:24 pm, Jan Beulich wrote:
> On 14.11.2025 13:54, JÃ¼rgen GroÃŸ wrote:
>> On 14.11.25 12:42, Andrew Cooper wrote:
>>> On 14/11/2025 11:32 am, Juergen Gross wrote:
>>>> diff --git a/Config.mk b/Config.mk
>>>> index e1556dfbfa..d21d67945a 100644
>>>> --- a/Config.mk
>>>> +++ b/Config.mk
>>>> @@ -159,6 +159,19 @@ define move-if-changed
>>>>   	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
>>>>   endef
>>>>   
>>>> +PATH_FILES := Paths
>>>> +INC_FILES := $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
>>>> +
>>>> +include $(INC_FILES)
>>>> +
>>>> +BUILD_MAKE_VARS := $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).mk.in))
>>>> +
>>>> +# Replace @xxx@ markers in $(1).in with $(xxx) variable contents, write to $(1)
>>>> +define apply-build-vars
>>>> + $(1): $(1).in
>>>> +	sed $$(foreach v, $$(BUILD_MAKE_VARS), -e 's#@$$(v)@#$$($$(v))#g') <$$< >$$@
>>>> +endef
>>> Shouldn't this write to a tmp file, and use move-if-changed?Â  Most of
>>> the time the markers won't have changed, and we'll want to short circuit
>>> dependent rules.
>> I can see this being an advantage when e.g. generating header files, as
>> those being generated again would potentially cause lots of rebuilds.
>>
>> In this case I can hardly see any case where make wouldn't do the right
>> thing already. Either the *.in file is newer than the generated file due
>> to a git update or a manual edit, so make will regenerate the target (and
>> this is what we want), or the *.in file hasn't changed, so make won't
>> regenerate the file as it is newer than the *.in file already.
>>
>> Or did I miss some aspect?
> Aren't some of the generated files Makefile fragments? Them being re-generated
> means make re-invoking itself, which could be avoided if the contents don't
> really change. (This isn't just a performance concern; this re-invocation has
> been the source of, well, surprising behavior in certain cases.)

Having thought about this some more, it needs to be FORCE and
move-if-changed, or to express a dependency on Paths.mk

Otherwise, if you ./configure --libdir=something/else and then do an
incremental build, the generated files will be wrong.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 12:33:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 12:33:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163691.1490770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKyQU-00052Z-LK; Mon, 17 Nov 2025 12:33:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163691.1490770; Mon, 17 Nov 2025 12:33:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKyQU-00052S-IT; Mon, 17 Nov 2025 12:33:46 +0000
Received: by outflank-mailman (input) for mailman id 1163691;
 Mon, 17 Nov 2025 12:33: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vKyQT-00052L-Au
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 12:33:45 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a7fc8091-c3b1-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 13:33:44 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-640d0ec9651so7048144a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 04:33: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
 4fb4d7f45d1cf-6433a4b2155sm10001623a12.29.2025.11.17.04.33.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 04:33: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: a7fc8091-c3b1-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763382824; x=1763987624; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=54pnEdEmG4e+rqUhKDpkGtJJSN0IECebFS7E3rTIPZ0=;
        b=a20el0lR3UyQErpgQKsw2QSkD9HT4a9fDfp/CTTfwBs9BCMJ6JrPfcxMi+40adwyUR
         O5RrNVep9TUVmPU2m20pqRP/nHhQaRNLaAW8pb+YEDgHK4CpCoAaAFTSW1QMi3i6mPna
         vQRI3ad10JqS/ll/ed5d0NXl8QFj3n5DKZdCslNTwLyqzsAZPa3cGYC2Yie4WQhiUji7
         rhh1R3+VBb0OkpXn8WDMhpLaLO+G6mc9pbnTa49cKiMihX28WlShJK4WrvVh0HebkJZa
         8LKxjD9KKUSplSs26pj55kFnum4EdVUD84rKhyqOZShrnvDYn9ATGCVnpSQpQRcIJod+
         uFeQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763382824; x=1763987624;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=54pnEdEmG4e+rqUhKDpkGtJJSN0IECebFS7E3rTIPZ0=;
        b=qOdUi4J5L4YkLi54mdKUMIlG/tbWsz/OcX74tKR10+IXPCGEkMngsxYmpIuqC3t5Qw
         tfgmIFtAqc0qreeBzvEX5Wo5zeLN/7gL8SyCrkJRgCzWL0KTpr96aKJ+ulgElV3F9/VU
         ainXQ6KeTcqJDxTGPMALaZ6e3+3MCUSBtWzOKFq3NCZ6AQ0k2SvX+i+Qmr4vcGY4LmVU
         ideklceT54U0gUMKvkbA13+Z80xwjvvW0WfcWkqbchLSHYSiWButZHz+LOiUUNZYfRUx
         toeGOWUN9TuHvsN5s9ZmbgHY/qXTNBnb21wdQh0pxEEw0udjZBelXxw94IEWrxRrXS2i
         WKEQ==
X-Forwarded-Encrypted: i=1; AJvYcCWluSHeLcG7FU+c8J/Rjy1DdUb4dmISd2jbNDn3WzTZfoD7fnN8/VZr+d5IEvY9BT+sSuiiEBlUYxA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yztpudr++6abKBQEfUKM2bkTGbrz85Yyyn0fbpGfCH95QANc+xI
	7n3cfb1T8yWpZWpbeZGkvmFzOnKWvdsWIRH09G5i1edmsxQgVj3v6oofmeArNRRpnQ==
X-Gm-Gg: ASbGncupRn8MhZ27sp40XHF3KTmJt9KvM8yVUjkMxuM8toX/a+i7fHDd1ZqfQjFkqOh
	4ukJ8BYWZU5hS4X/luJm/52ClfRWPj8ug/cvgzwLTk/LByVaZyx5Wx4H1pkz0eleKn2NVMmEZ9P
	fnlQHS6QWkmrMDYcKbt2i6oPKeFWNLd4UqRAurSWUykaC7xEmtRZvhIswia+GmRD8E6rxEh2WII
	WASZCsITT1ws8dGqtI4KijdNvImVdPSAJIf36FQMr5OS81QQi6RiACA3OnPnwDu55yN4IWYSEUt
	8+2nvRmq1jsJW52cIxNbHF0XRTFi09EA/b9IXmMAm2TYPy+Zj//77Jt7OAnDRIfQiXEfDwLjuxW
	ncaJgQ9ZSOTITXKY8mOmHRQ+SO+akk358665tLR2/jhu7gw1+bbSchLQLYFil2dYcPmRe5xVobX
	BrsjkwJFDCMMj6Cn//wTaheyCiita8GvHOC5/Iou5TyPCGmt7Vt7ikBOOg46IrdmTmJ2kaRztta
	HpnOJiNyqUShA==
X-Google-Smtp-Source: AGHT+IHF3pDEVd7yNW9S467NZzeogkg6lGpz+Yx/8PepQ4TnnGn274eJVg4BeE0K/xftEBf5vIrPmw==
X-Received: by 2002:a05:6402:20c3:10b0:640:b736:6c2f with SMTP id 4fb4d7f45d1cf-64350e8a799mr8741907a12.18.1763382823737;
        Mon, 17 Nov 2025 04:33:43 -0800 (PST)
Message-ID: <e4d19c4e-8eac-400f-8e3a-83684a290da6@suse.com>
Date: Mon, 17 Nov 2025 13:33:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/4] docs: replace @xxx@ markers at build time
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-3-jgross@suse.com>
 <7e24823f-cce1-4430-83f1-ebde6986efa4@citrix.com>
 <2de93313-9f1b-46a7-99c8-618281aff2f1@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: <2de93313-9f1b-46a7-99c8-618281aff2f1@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.11.2025 14:00, JÃ¼rgen GroÃŸ wrote:
> On 14.11.25 12:40, Andrew Cooper wrote:
>> On 14/11/2025 11:32 am, Juergen Gross wrote:
>>> diff --git a/docs/Makefile b/docs/Makefile
>>> index 37776d303c..e5f4a8ca86 100644
>>> --- a/docs/Makefile
>>> +++ b/docs/Makefile
>>> @@ -8,8 +8,11 @@ DATE		:= $(call date,"+%Y-%m-%d")
>>>   DOC_ARCHES      := arm ppc riscv x86_32 x86_64
>>>   MAN_SECTIONS    := 1 5 7 8
>>>   
>>> +IN_FILES := man/xl-disk-configuration.5.pod man/xl-network-configuration.5.pod
>>> +IN_FILES += man/xl.1.pod man/xl.cfg.5.pod man/xl.conf.5.pod
>>
>> Sorry, I meant to say this on the previous revision.Â  Can we please list
>> these one per line, for the future ease of inserting/removing.
> 
> Okay.
> 
>> Is IN_FILES really correct?Â  These are the generated (non-.in) files,
>> rather than the .in files themselves.Â  GEN_FILES from v1 would seem to
>> be a better fit.
> 
> I wanted to make clear this is related to *.in files. And IMHO GEN_FILES
> was too generic on a second thought.
> 
> GENERATED_FROM_IN_SUFFIXED_FILES seems a little bit clumsy. ;-)
> Seriously, if you have any better name, I'd be happy to use it.

GEN_POD_FILES, seeing they're all *.pod?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 12:35:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 12:35:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163703.1490780 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKySP-0005cK-Vi; Mon, 17 Nov 2025 12:35:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163703.1490780; Mon, 17 Nov 2025 12:35:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKySP-0005cD-T1; Mon, 17 Nov 2025 12:35:45 +0000
Received: by outflank-mailman (input) for mailman id 1163703;
 Mon, 17 Nov 2025 12:35: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=U5OC=5Z=bounce.vates.tech=bounce-md_30504962.691b169a.v1-9d57f880a78d4269b44695c32720c3ff@srs-se1.protection.inumbo.net>)
 id 1vKySP-0005c7-8b
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 12:35:45 +0000
Received: from mail128-17.atl41.mandrillapp.com
 (mail128-17.atl41.mandrillapp.com [198.2.128.17])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ec6eebfa-c3b1-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 13:35:39 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4d96fL2YHqzCfDYPy
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 12:35:38 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 9d57f880a78d4269b44695c32720c3ff; Mon, 17 Nov 2025 12:35:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ec6eebfa-c3b1-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763382938; x=1763652938;
	bh=OTcYBpW3DFwg6yb++UPu5qkISFQJwQ+nog7+BvPyFtQ=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=hboBF5WfOKy00mq7EZ8SaQwGyNmh3Q3mSllJ6/usrCXS3uOsAH/k780A7UPYWtCHk
	 9/HRbZ5hT2D2WceVYhq5P/MWmYWWa4pQhSd10XOEX/mwheeGXd6AZWzFcGd5QHAqOW
	 Qbv5ziIXmp9F7e79KLGEWyT9byC7nJKdususT36qobYgFZ7kFUuQnEEP/8OgnujIz/
	 WeeTd1liMb7JobB+x2y4YTCFJ8Jyhy/x8QOjExSUHZ+Gv94cYxGavbwPmCBMcdXcww
	 RYNKnz7C1YXQmnehM71KMN4uV3HzReIw6wi3mMTOpkWOUE6mUUQxfMC0bgjiJToUAM
	 WnaH6ZVUIOKVA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763382938; x=1763643438; i=teddy.astie@vates.tech;
	bh=OTcYBpW3DFwg6yb++UPu5qkISFQJwQ+nog7+BvPyFtQ=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=RcgZsdFcvQedX6Amr8SlJ7Ihbpj/yRSrVUqwrpKtzNkA6QS8TK2q0DQttL7GuTQEF
	 TbF4+WKHthROTVC/z60BVYveKPTkIvixPA7pnJFMtUkOkEif8Y4bAD2zzE4/cXbDYT
	 8uqZQPHbdl96Bk/QSbvjP9lMNlb3HsWD4AwNa2NBeiT7LgRPZi9Sa2C4Q0Kagk62Iq
	 Y7numIXHCFj+v7RLfeB9ZSGPOThb1Kz5DMFUMh4KondJ/omvPpG674wl9SNw1PUSjf
	 qU7JM2ZlQRFONvaVK/xUp0g6O3rrJkLm4cFXlP7pTWWI3v6o834Yw8zRX7NmwGz1q7
	 rzTwwKofNmuiQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v3]=20ioreq:=20Make=20sure=20ioreq=20is=20always=20in-bounds?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763382936944
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>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <dddbae09e8e6b94a20f5ce24f3560dd15e5c6c01.1763382746.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.9d57f880a78d4269b44695c32720c3ff?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251117:md
Date: Mon, 17 Nov 2025 12:35:38 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

A 4K page appears to be able to hold 128 ioreq entries, which luckly
matches the current vCPU limit. However, if we decide to increase the
domain vCPU limit, that doesn't hold anymore and this function would now
silently create a out of bounds pointer leading to confusing problems.

All architectures with ioreq support don't support 128 vCPU limit for
HVM guests, and  have pages that are at least 4 KB large, so this case
doesn't occurs in with the current limits.

For the time being, make sure we can't make a Xen build that can
accidentally make a out of bounds pointers here.

No functional change.

Reported-by: Julian Vetter <julian.vetter@vates.tech>
Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v3:
 - make it a BUILD_BUG_ON instead (compile-time check)
v2:
 - check and report instead of ASSERT and eventually crash offending domain

 xen/common/ioreq.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
index f5fd30ce12..7a0421cc07 100644
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -99,6 +99,7 @@ static ioreq_t *get_ioreq(struct ioreq_server *s, struct vcpu *v)
 
     ASSERT((v == current) || !vcpu_runnable(v));
     ASSERT(p != NULL);
+    BUILD_BUG_ON(HVM_MAX_VCPUS > (PAGE_SIZE / sizeof(struct ioreq)));
 
     return &p->vcpu_ioreq[v->vcpu_id];
 }
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Nov 17 12:37:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 12:37:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163718.1490790 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKyUH-0006Dw-DE; Mon, 17 Nov 2025 12:37:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163718.1490790; Mon, 17 Nov 2025 12:37: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 1vKyUH-0006Dp-A1; Mon, 17 Nov 2025 12:37:41 +0000
Received: by outflank-mailman (input) for mailman id 1163718;
 Mon, 17 Nov 2025 12:37: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=Lf15=5Z=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vKyUF-0006D9-Tx
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 12:37:40 +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 33487cad-c3b2-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 13:37:38 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-b736cd741c1so456316766b.0
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 04:37:38 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fda8a86sm1045382666b.52.2025.11.17.04.37.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 04: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: 33487cad-c3b2-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763383057; x=1763987857; 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=UtWkbel30QNiSJr4HVe3BSLshFWrR0WFjc7KfRRQ4sw=;
        b=WujiQfFPTRErID1f6iBvM4YeKsYL1tHsgAnpA2WqdPHrKk/4wZ55EE7vlBHr+6CnyS
         AzywFRhYnIbBLXd3XkLTIkVb00WbUVwsTbhLbHerwN1PtE2JJR96GRyEn/EQj8dzlIWC
         lo+/picn2UhQOLeubrU1bdB1Q+MCHRjR59l+HzTQJL7MQZ7HnUr+D59nsur/Kvqqxju2
         02uDYw9Toapz0TzjLg5kqueUQcurhDfzHRwOgBdJgIddPnXrumHQEZSJwf+l7QoqzeiG
         gpcnZxjI1MR/qrBhBEOAZSVgZG8n4110CXXrXd284cuc5+kU+A9sxqsOM+JaOLCXxozh
         9NEw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763383057; x=1763987857;
        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=UtWkbel30QNiSJr4HVe3BSLshFWrR0WFjc7KfRRQ4sw=;
        b=W4VyR4sTlNSoWi0PifWiM/r4fPpaGBgChYSVnv54lyruhrTJ4FGubdTXZvJHE/l+Ys
         x83otGzzk+oHn44I7cnvftKArAniYc+iyASfrRyrurQNTpF6qwiuczoOmW0IwT/4cjkj
         MjLEwB9EqGh+kd9jLa6HfYflqLNkHB5hgF+023nQaWiG+4T+LVF9GLhdjiCpTFAPv6RM
         jZxYdazhdslq/3QF7KzL8WDdNo+/K6m5Pxumbl5WgCDc8bKy65DjhS51xflje94z8omn
         FkT80I3nfYrvpAFZ2Hep1QPu/DtnxIOBELDW+cNpS8avGnVgjcIV/0setVs5wiYk1rhw
         fquQ==
X-Forwarded-Encrypted: i=1; AJvYcCUjBz1fYfOPmhd5y/rgJnUjTQtjlQlKlfnaGS8t23JtO1b1pmJt5XfanBjhI5U++29j4Z/JQ8rPSOY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz6Zt6UrwmsTJupviFsehHcqJxYzMXgi8PpHilIkr24O9c6F5sP
	WW14q9I/CncsKGK21vetz9mvYPXHmRPzZ9hELZpLlMtWTj+pZ2mfsVaVDxeRdZtKoyc=
X-Gm-Gg: ASbGnctUtI7XN/OJ1zTq/d85AdZHHTbXDFQbYC/tfCtD6WGnzwoD84pNcv//aXtHrwy
	RhGbEsF8JNHxOFdnIxIAIyfZ7uz5nQeCv/imYas8aFB6eMaeorLHTSUHhL/jExmvKKdYgll153m
	u6P/+r8AMBZLEgGiXZqKFZmn2e+IKU20Bhf9W+QKOAFUwJcoDhBfoiozneiU77zBBhSTggXJm9U
	bJlcd4Cb21PkZa4LiYH4rAFiTlMZmMRVZi4uU6t9ajYCignsr52WukTqjPseuZ5l6H3rK/FvzST
	sliwRCX8bVSN1v8lBdHAl5B1L7T1IoQ3GuZzE4Je9IslWrSVxU1N5vIszOs0m3nQyXJociQUjah
	k8TyoGwdOonIl5xVgPlhbLuNDcjyWimF9taeZU+IOU9bGrJEtMeGD3GUHu/I2FSEm1Gp4f0IVmn
	9LbELMNb5F0rd5wak9a1rNiVYsBSNR2aQ4LAFGqamrpnGADkfYWIRD+XtgSdOuLZ+DKPG7d4b0c
	zDpmnKWG78gwka9YX48a5/MktHNnn4/a96Jin8=
X-Google-Smtp-Source: AGHT+IHnjIrgpVP6n+OK8TRtx0iQLTiYMOibsslLP6qZVS5M3g+xwpGzA6EAlshAin+4paFanPf+Jg==
X-Received: by 2002:a17:907:749:b0:b72:5a54:1713 with SMTP id a640c23a62f3a-b736796b4b2mr1382879366b.58.1763383057522;
        Mon, 17 Nov 2025 04:37:37 -0800 (PST)
Message-ID: <88e6b9d8-21b6-4b37-97fc-d35b90ed9b49@suse.com>
Date: Mon, 17 Nov 2025 13:37:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] build: add make macro for making file from file.in
To: Jan Beulich <jbeulich@suse.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>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-2-jgross@suse.com>
 <468c6686-43e5-4c35-8366-58558f199e22@citrix.com>
 <cc90d18b-f88e-49d9-a55f-b7035ce43167@suse.com>
 <113c9cc1-5e39-4a54-88de-dd2b70b90a49@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: <113c9cc1-5e39-4a54-88de-dd2b70b90a49@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------dgvdE5aDDm9XLgC909h2Ph53"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------dgvdE5aDDm9XLgC909h2Ph53
Content-Type: multipart/mixed; boundary="------------BeaFg8yRGg6eeami4TVkqeEr";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.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>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Message-ID: <88e6b9d8-21b6-4b37-97fc-d35b90ed9b49@suse.com>
Subject: Re: [PATCH v2 1/4] build: add make macro for making file from file.in
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-2-jgross@suse.com>
 <468c6686-43e5-4c35-8366-58558f199e22@citrix.com>
 <cc90d18b-f88e-49d9-a55f-b7035ce43167@suse.com>
 <113c9cc1-5e39-4a54-88de-dd2b70b90a49@suse.com>
In-Reply-To: <113c9cc1-5e39-4a54-88de-dd2b70b90a49@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=

--------------BeaFg8yRGg6eeami4TVkqeEr
Content-Type: multipart/mixed; boundary="------------tNZYOr2B5lw0BJue1BDXJu8E"

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

T24gMTcuMTEuMjUgMTM6MjQsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxNC4xMS4yMDI1
IDEzOjU0LCBKw7xyZ2VuIEdyb8OfIHdyb3RlOg0KPj4gT24gMTQuMTEuMjUgMTI6NDIsIEFu
ZHJldyBDb29wZXIgd3JvdGU6DQo+Pj4gT24gMTQvMTEvMjAyNSAxMTozMiBhbSwgSnVlcmdl
biBHcm9zcyB3cm90ZToNCj4+Pj4gZGlmZiAtLWdpdCBhL0NvbmZpZy5tayBiL0NvbmZpZy5t
aw0KPj4+PiBpbmRleCBlMTU1NmRmYmZhLi5kMjFkNjc5NDVhIDEwMDY0NA0KPj4+PiAtLS0g
YS9Db25maWcubWsNCj4+Pj4gKysrIGIvQ29uZmlnLm1rDQo+Pj4+IEBAIC0xNTksNiArMTU5
LDE5IEBAIGRlZmluZSBtb3ZlLWlmLWNoYW5nZWQNCj4+Pj4gICAgCWlmICEgY21wIC1zICQo
MSkgJCgyKTsgdGhlbiBtdiAtZiAkKDEpICQoMik7IGVsc2Ugcm0gLWYgJCgxKTsgZmkNCj4+
Pj4gICAgZW5kZWYNCj4+Pj4gICAgDQo+Pj4+ICtQQVRIX0ZJTEVTIDo9IFBhdGhzDQo+Pj4+
ICtJTkNfRklMRVMgOj0gJChmb3JlYWNoIGYsICQoUEFUSF9GSUxFUyksICQoWEVOX1JPT1Qp
L2NvbmZpZy8kKGYpLm1rKQ0KPj4+PiArDQo+Pj4+ICtpbmNsdWRlICQoSU5DX0ZJTEVTKQ0K
Pj4+PiArDQo+Pj4+ICtCVUlMRF9NQUtFX1ZBUlMgOj0gJChmb3JlYWNoIGYsICQoUEFUSF9G
SUxFUyksICQoc2hlbGwgYXdrICckJDIgPT0gIjo9IiB7IHByaW50ICQkMTsgfScgJChYRU5f
Uk9PVCkvY29uZmlnLyQoZikubWsuaW4pKQ0KPj4+PiArDQo+Pj4+ICsjIFJlcGxhY2UgQHh4
eEAgbWFya2VycyBpbiAkKDEpLmluIHdpdGggJCh4eHgpIHZhcmlhYmxlIGNvbnRlbnRzLCB3
cml0ZSB0byAkKDEpDQo+Pj4+ICtkZWZpbmUgYXBwbHktYnVpbGQtdmFycw0KPj4+PiArICQo
MSk6ICQoMSkuaW4NCj4+Pj4gKwlzZWQgJCQoZm9yZWFjaCB2LCAkJChCVUlMRF9NQUtFX1ZB
UlMpLCAtZSAncyNAJCQodilAIyQkKCQkKHYpKSNnJykgPCQkPCA+JCRADQo+Pj4+ICtlbmRl
Zg0KPj4+DQo+Pj4gU2hvdWxkbid0IHRoaXMgd3JpdGUgdG8gYSB0bXAgZmlsZSwgYW5kIHVz
ZSBtb3ZlLWlmLWNoYW5nZWQ/wqAgTW9zdCBvZg0KPj4+IHRoZSB0aW1lIHRoZSBtYXJrZXJz
IHdvbid0IGhhdmUgY2hhbmdlZCwgYW5kIHdlJ2xsIHdhbnQgdG8gc2hvcnQgY2lyY3VpdA0K
Pj4+IGRlcGVuZGVudCBydWxlcy4NCj4+DQo+PiBJIGNhbiBzZWUgdGhpcyBiZWluZyBhbiBh
ZHZhbnRhZ2Ugd2hlbiBlLmcuIGdlbmVyYXRpbmcgaGVhZGVyIGZpbGVzLCBhcw0KPj4gdGhv
c2UgYmVpbmcgZ2VuZXJhdGVkIGFnYWluIHdvdWxkIHBvdGVudGlhbGx5IGNhdXNlIGxvdHMg
b2YgcmVidWlsZHMuDQo+Pg0KPj4gSW4gdGhpcyBjYXNlIEkgY2FuIGhhcmRseSBzZWUgYW55
IGNhc2Ugd2hlcmUgbWFrZSB3b3VsZG4ndCBkbyB0aGUgcmlnaHQNCj4+IHRoaW5nIGFscmVh
ZHkuIEVpdGhlciB0aGUgKi5pbiBmaWxlIGlzIG5ld2VyIHRoYW4gdGhlIGdlbmVyYXRlZCBm
aWxlIGR1ZQ0KPj4gdG8gYSBnaXQgdXBkYXRlIG9yIGEgbWFudWFsIGVkaXQsIHNvIG1ha2Ug
d2lsbCByZWdlbmVyYXRlIHRoZSB0YXJnZXQgKGFuZA0KPj4gdGhpcyBpcyB3aGF0IHdlIHdh
bnQpLCBvciB0aGUgKi5pbiBmaWxlIGhhc24ndCBjaGFuZ2VkLCBzbyBtYWtlIHdvbid0DQo+
PiByZWdlbmVyYXRlIHRoZSBmaWxlIGFzIGl0IGlzIG5ld2VyIHRoYW4gdGhlICouaW4gZmls
ZSBhbHJlYWR5Lg0KPj4NCj4+IE9yIGRpZCBJIG1pc3Mgc29tZSBhc3BlY3Q/DQo+IA0KPiBB
cmVuJ3Qgc29tZSBvZiB0aGUgZ2VuZXJhdGVkIGZpbGVzIE1ha2VmaWxlIGZyYWdtZW50cz8g
VGhlbSBiZWluZyByZS1nZW5lcmF0ZWQNCg0KTm8uDQoNCk1hbi1wYWdlcywgc2hlbGwgc2Ny
aXB0cyBhbmQgc29tZSBPY2FtbCBmaWxlcyAob25lIGNvbmZpZyBmaWxlIGFuZCBvbmUgLm1s
IGZpbGUsDQp3aGljaCBpcyBzaW1pbGFyIHRvIGFuIGluY2x1ZGUgZmlsZSBJIGJlbGlldmUp
Lg0KDQo+IG1lYW5zIG1ha2UgcmUtaW52b2tpbmcgaXRzZWxmLCB3aGljaCBjb3VsZCBiZSBh
dm9pZGVkIGlmIHRoZSBjb250ZW50cyBkb24ndA0KPiByZWFsbHkgY2hhbmdlLiAoVGhpcyBp
c24ndCBqdXN0IGEgcGVyZm9ybWFuY2UgY29uY2VybjsgdGhpcyByZS1pbnZvY2F0aW9uIGhh
cw0KPiBiZWVuIHRoZSBzb3VyY2Ugb2YsIHdlbGwsIHN1cnByaXNpbmcgYmVoYXZpb3IgaW4g
Y2VydGFpbiBjYXNlcy4pDQoNCkkgc3RpbGwgZG9uJ3Qgc2VlIGEgY2FzZSB3aGVyZSBtYWtl
IHdvdWxkIGNvbnNpZGVyIHJlYnVpbGRpbmcgdGhlIGZpbGUgZnJvbQ0KaXRzIC5pbiBmaWxl
IHdpdGhvdXQgdGhlIC5pbiBmaWxlIGhhdmluZyBjaGFuZ2VkLCB0aHVzIHJlc3VsdGluZyBp
biB0aGUgYnVpbHQNCmZpbGUgdG8gY2hhbmdlLCB0b28uIFdlbGwsIHdpdGggb25lIHByb2Jh
Ymx5IHZlcnkgcmFyZSBleGNlcHRpb246IGluIGNhc2UgYQ0KZGlmZmVyZW50IEBtYXJrZXJA
IGlzIHVzZWQgaW4gdGhlIC5pbiBmaWxlLCBidXQgd2l0aG91dCBjaGFuZ2luZyB0aGUgcmVz
dWx0aW5nDQpmaWxlIGR1ZSB0byBvbGQgYW5kIG5ldyBtYXJrZXIgcmVzdWx0aW5nIGluIHRo
ZSBzYW1lIG91dHB1dC4NCg0KSW4gY2FzZSB3ZSByZWFsbHkgY2FyZSBhYm91dCBzdWNoIGNh
c2VzLCB3ZSBzaG91bGQgdGhpbmsgYWJvdXQgdXNpbmcNCm1vdmUtaWYtY2hhbmdlZCBldmVy
eXdoZXJlLCBhcyBlLmcuIGJ1aWxkaW5nIGEgcHJvZ3JhbSB3aXRoICRIT1NUQ0MgY291bGQN
CnJlc3VsdCBpbiBhbiB1bmNoYW5nZWQgYmluYXJ5IGV2ZW4gd2l0aCBzb3VyY2UgZmlsZXMg
aGF2aW5nIGNoYW5nZWQsIGFuZCB0aGUNCnJlc3VsdGluZyBwcm9ncmFtIGNvdWxkIGJlIHVz
ZWQgdG8gZ2VuZXJhdGUgb3RoZXIgZmlsZXMgLi4uDQoNCg0KSnVlcmdlbg0KDQo=
--------------tNZYOr2B5lw0BJue1BDXJu8E
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-----

--------------tNZYOr2B5lw0BJue1BDXJu8E--

--------------BeaFg8yRGg6eeami4TVkqeEr--

--------------dgvdE5aDDm9XLgC909h2Ph53
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/Ey8FAmkbFxAFAwAAAAAACgkQsN6d1ii/Ey89
WggAiiEOHzy4/ulQ0rkQDo6Ttqon/FnvhclYCtvJSikZLRVD7tl+8xCwkG+93mFv9c1d69a+9QbT
OeCvvISKT9rx2a7/aNkfX+oTLA/rjOj+RCRWmVru5mklYUkfGNMDbJYH63KWy/jBhqC2YCIyTHQq
f/leixYNUCkC7Xlfxm+9wAmoRDV0+7omSXNFemisNEzxzh6uCFwwDqlLDih6pjjee4xS4if+UUl5
YO8hKWC7iT9C1Ol/FILe4yMkpuE99L7u4S+yzl0HPbw20k4vdW37PSiz6NnoGbr/eQH/YgUhbNvB
K0uwWtWW8vagXmJ12T8al6Qi5dWAPONCtPVoVLeT1g==
=csjU
-----END PGP SIGNATURE-----

--------------dgvdE5aDDm9XLgC909h2Ph53--


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 12:46:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 12:46:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163731.1490800 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKycc-0008FR-5j; Mon, 17 Nov 2025 12:46:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163731.1490800; Mon, 17 Nov 2025 12:46:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKycc-0008FK-2b; Mon, 17 Nov 2025 12:46:18 +0000
Received: by outflank-mailman (input) for mailman id 1163731;
 Mon, 17 Nov 2025 12:46: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vKyca-0008FE-Lx
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 12:46:16 +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 654d406a-c3b3-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 13:46:11 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-64080ccf749so5699636a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 04:46: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
 a640c23a62f3a-b739911c14dsm312922566b.27.2025.11.17.04.46.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 04:46: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: 654d406a-c3b3-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763383571; x=1763988371; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Y5qOu0fRnSHl0Pqr6xpw3AZXEQPdxoT1CqzyvNosJUI=;
        b=APE1hb5DGdlojAOaUSTHsE0Icvb6ZeTBlTGPe2JMoD3RqygkYQIE8W2NDPrmjR3sbk
         QZMc/x0HI05u7jAWLdVg3qrp/DogWOHMVuFc7E8SzLnhmfLvkXTx9t/HCnfvzB3MM3S5
         3IQnswnqPIItii5eYOAezs8de9JotevesgA6Q1PLeOzcSYkq862318Eue/wVW93hyolR
         zOVw3BaMIvCesI6iG13SOeqONpYK9r975WAmkXQEavJYp72/Gwc+doEzCZoRo1jOj9Zt
         7sT/4GDWzj2ixy5g2KxWAldMEBAREJKb1lOhixzbX9gYEBkoMSLPPJCpfMne/k7AYHOt
         zadQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763383571; x=1763988371;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Y5qOu0fRnSHl0Pqr6xpw3AZXEQPdxoT1CqzyvNosJUI=;
        b=tQ4gyCzym0TL9Js4R+nitjXXiBlbezRfYdsoJ0NJH7veLV5FHUubE2d047JwT+FRAL
         pO0q6qc5KQHmWM6YgQi5NC/vCzsnOIEp60njoQpgnK7UeXm2hMUXmDqBeaL2I4hRNFio
         X0L0bgumWm7JHGHB69MxMaXxwurd6Y36WmqHaj0s3ypYVf/lrN2boMHqR7QRHzEXUKb6
         /mV3/S0q8ZTUYzh7yDHSlll8af9xL9QvrU4hdhDqonuGFMcFnRzy0g3enEENrRb2s1Sv
         jVa3B9NQ5aq1lg3GAZgR4tct0xv9qD36j76nyie//4i7moOLY7tw7k+yLbP8tPSnN9WD
         4h/g==
X-Forwarded-Encrypted: i=1; AJvYcCWOmA7oGaU2O8DNsIvb52BIQIUrtiFkfZRQoUMbltKVZbccYdSh0Y5P15ppT60YwH6upNx6dyMrVj8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzkEctKS8VkRJotXmHHnRkAFCbUdZGtqWS1xc3KGX04csYCS+j+
	TqX4pNVqY33JFndwD4+/Xu+kuKrR/vGRtjjzND38tFMtBnJiXtln9DDfqeKlzqSVyA==
X-Gm-Gg: ASbGncv8EpOzv0Fl5tzVRrA0/wdniMIM/hSsWiD8wVg8d5H6pmAVlAv5El5W1l4C7rz
	k+4oQnvVk0ElTBVvCFnLX0319m5a25bNCt7eLrswb/knW5kIpnmCt7Lay1Ta2HzNQLJB/ofjPQe
	9meVAyEfbbu88mBfpWTiP0xyhrUJ7sgJSonUB8TDXmo23mItv2sgZiRKVGl7RZig85uPwtRoYfX
	mPhHMQEYFt65UzDE1N5TrzW0I5pVjZWCPjtBR1EpR0C6+SXUPuqZPS/mA3GF9pTgtv7T5gNqpeA
	wGMPZ7+qAEJjkf7z4LOqB6dW76ysh/hqKjQnGZbyIvmf5awr+boC1fZpOu+d7WWS8dkuGOd/ZmG
	Ar/k4ZegQkAxghfkJmv6jrftYdcX+paM1rS2eYqTT9eOtol3TXYYyLHVb6jyBDQ3ApiHUVGoe93
	S5opp3B1EE8Bh1XKUZjjEqOvfTZRS2L5NixEvl8KXT15CktyqhfTciE0ekPN6GZuz7G8QzNKpSr
	pFEqP8yIZigrg==
X-Google-Smtp-Source: AGHT+IHTCqrjZW8NeOxAJLkX9UG7XJ7CRcxLTyKsmmSb506+liRpu41Pr9J0khx0n1PEASRzbO58uQ==
X-Received: by 2002:a17:907:1c81:b0:b6d:8ce4:ff18 with SMTP id a640c23a62f3a-b73677ed4d2mr973154466b.9.1763383570968;
        Mon, 17 Nov 2025 04:46:10 -0800 (PST)
Message-ID: <97ffeca9-348e-4997-a223-359fefa83107@suse.com>
Date: Mon, 17 Nov 2025 13:46:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] ioreq: Make sure ioreq is always in-bounds
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>,
 Julian Vetter <julian.vetter@vates.tech>, xen-devel@lists.xenproject.org
References: <dddbae09e8e6b94a20f5ce24f3560dd15e5c6c01.1763382746.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: <dddbae09e8e6b94a20f5ce24f3560dd15e5c6c01.1763382746.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.11.2025 13:35, Teddy Astie wrote:
> A 4K page appears to be able to hold 128 ioreq entries, which luckly
> matches the current vCPU limit. However, if we decide to increase the
> domain vCPU limit, that doesn't hold anymore and this function would now
> silently create a out of bounds pointer leading to confusing problems.
> 
> All architectures with ioreq support don't support 128 vCPU limit for
> HVM guests, and  have pages that are at least 4 KB large, so this case
> doesn't occurs in with the current limits.
> 
> For the time being, make sure we can't make a Xen build that can
> accidentally make a out of bounds pointers here.
> 
> No functional change.
> 
> Reported-by: Julian Vetter <julian.vetter@vates.tech>
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>

I was meaning to ack this, but ...

> --- a/xen/common/ioreq.c
> +++ b/xen/common/ioreq.c
> @@ -99,6 +99,7 @@ static ioreq_t *get_ioreq(struct ioreq_server *s, struct vcpu *v)
>  
>      ASSERT((v == current) || !vcpu_runnable(v));
>      ASSERT(p != NULL);
> +    BUILD_BUG_ON(HVM_MAX_VCPUS > (PAGE_SIZE / sizeof(struct ioreq)));

... does this even build on e.g. Arm? IOREQ_SERVER is a setting which can be
enabled (with EXPERT=y) also for non-x86. Yet HVM_MAX_VCPUS looks to be an
x86-only thing. (I then also wonder about some of what the description says).

Just to mention (no further change requested at this point, in this regard):
HVM_MAX_VCPUS being part of the public interface, we'll need to see whether we
can sensibly retain that identifier to carry changed meaning once we up the
limit. The check here may therefore not trigger at that point; the hope then
is that while making respective changes, people would at least stumble across
it by e.g. seeing it in grep output.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 12:48:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 12:48:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163742.1490810 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKyen-0000Nc-HV; Mon, 17 Nov 2025 12:48:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163742.1490810; Mon, 17 Nov 2025 12:48:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKyen-0000NV-E8; Mon, 17 Nov 2025 12:48:33 +0000
Received: by outflank-mailman (input) for mailman id 1163742;
 Mon, 17 Nov 2025 12:48: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=Lf15=5Z=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vKyel-0000NP-N2
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 12:48:31 +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 b832811f-c3b3-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 13:48:30 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b73301e6ab5so550437966b.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 04:48:30 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fd80841sm1080119266b.41.2025.11.17.04.48.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 04:48: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: b832811f-c3b3-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763383710; x=1763988510; 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=bNgO7t5rrbFckwqvqhcGl+GZzDLMoM6CaWIuImygzZE=;
        b=KnoTW6a/SKI9XbysNlkEd9uz/KQ3XmJWaD3gvA0pGPn4xqfp6BChdcFTBxRvMTVhYq
         89GDmPffB0Tw+2AH4d6qvBFZdtBKXZj2wbWkG4GCINMEXuvEPwgRckeWK/fhqZDCx0DZ
         652EUCD5ugRSxp3e0Cqko5mHCh9bN5HZqvf6IEizLUvAoufNiUSjD4LhUDA4N45L03Id
         fK+mCSKLZXg2iG6a5QgEgqa8Tr+ivKaHtuxWQoCTbUvWgz4ydz8agozvCJAeC3nlC1FN
         LvEnqhLoF7PUJoigjgAMyikPKEil104ewCFGQJQG+iCahoJ6XBkGuC0uem9yqXo5omwJ
         nPmg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763383710; x=1763988510;
        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=bNgO7t5rrbFckwqvqhcGl+GZzDLMoM6CaWIuImygzZE=;
        b=tN+7gKheM//tlVMflH6+tSWlFAHIUc2u59YzUyUq2v+imBo63oM39aDXhHhFBgRCfH
         /7DW2JSRmLEU6EVVDC8GpHvqXgCItrmEHTB0MnvauWJ82B/EDqVidBcPG5JfkVErRGdp
         iUvMcZz8/rmQ09RxwOihjwibWkeKXMfaChwN5Mc3ZBeZM8596FTddo6FRSW+Sv+vDXX8
         cEMhJ4rh0aJ078AsgzPmYMVA2YDNfGTBA0u3F8I2huScdCI0LOXwYK7hWnuNafWsnnam
         g3QOavanY1NEDF57ADntOzu2KSz0ndxI0hzkniEkdEBywYSHM/GcOyvlQLcFcZsvzaYu
         1tSA==
X-Forwarded-Encrypted: i=1; AJvYcCVb3TICr6/xaActq7ifyjPbYX3MlsaR2MSMhKe0iapD4P8ZV0DvBDeqCtcGLyo6HdMQ+H9KuCtyPbI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyTHcLjv34RlMNz2rH5M3mTWZsoMk44WlvRKaF4rUGFBzJFBSKj
	yh2IO9dn3Nk9XzbKQsH86vuW1R6m3g58/EkGs71suSTn26lrzn8bN337fmUzB5/QQYo=
X-Gm-Gg: ASbGncsXnxcNaBoCt9QBYFCwroXgkxZiwz30FVWUFWsPb4L1VfHcxfr7rWckVx3XQOB
	m3lR2diN90XW5JUbd8foy5/H0Y9CFpLVY9mi46Mu9SReub+vEmbCh6qBw2IHKTisQJ2+4SN3itx
	oaFulaVWX+fx+rW0iItwYjb1dQXTFLygDPViv/F19l4PIh8wF1RbihpExRs9EgqGZWNXNRUvONh
	J48QK0Yf8ccrsbc+jGnGir8UmIvfeyx9mii+yQ16N4FRqKYGrojuOkgcAczxECAEtv/pah30RDu
	UGK/UBBdyR13msY5OE8LpDFC4QgzOn0nrO/OQbtO3IO30S5fhu3ecQm4OKvTErhuy5HbpLmfiaI
	U/863ATX5M8g403KbexRbEmH74PjF5gs2e2NlwD0OheHogSkdFictlPa+YDjzNATd8R5TxZH8dp
	EAzrp13ZHiYkvv9oCNj7n+ZZDv8dV5S//sVVmkhhV33NPxbZsr/J3Viw569P9WYNrVUzrLtf1PG
	Mn1fOSUnFOVd2RgVu6ar+CyJcS803IssOMJ0RIUOS/a0IP1ow==
X-Google-Smtp-Source: AGHT+IF6bY3PQxFo0VR+uodygA5JYf4wUg2sRpJeTwmEb0036cAzwqWbf8GWALMRKjY0Ftjv553zZg==
X-Received: by 2002:a17:907:97d4:b0:b71:5079:9702 with SMTP id a640c23a62f3a-b736780c27fmr1123454566b.21.1763383709878;
        Mon, 17 Nov 2025 04:48:29 -0800 (PST)
Message-ID: <7577ceec-1271-4569-91f1-fd7197a33991@suse.com>
Date: Mon, 17 Nov 2025 13:48:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] build: add make macro for making file from file.in
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-2-jgross@suse.com>
 <936632a3-d713-4183-b1db-5a554b617b74@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: <936632a3-d713-4183-b1db-5a554b617b74@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------1h0ucWZDleZRhe8K8DGdTZSr"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------1h0ucWZDleZRhe8K8DGdTZSr
Content-Type: multipart/mixed; boundary="------------9Efw0zOp1zOhE1ZOH0tMZkWk";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.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?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Message-ID: <7577ceec-1271-4569-91f1-fd7197a33991@suse.com>
Subject: Re: [PATCH v2 1/4] build: add make macro for making file from file.in
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-2-jgross@suse.com>
 <936632a3-d713-4183-b1db-5a554b617b74@suse.com>
In-Reply-To: <936632a3-d713-4183-b1db-5a554b617b74@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=

--------------9Efw0zOp1zOhE1ZOH0tMZkWk
Content-Type: multipart/mixed; boundary="------------WR9u0b6BmIzDMgMgqjDX0704"

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

T24gMTcuMTEuMjUgMTM6MjksIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxNC4xMS4yMDI1
IDEyOjMyLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gQWRkIGEgbmV3IG1ha2UgbWFjcm8g
Zm9yIGNyZWF0aW5nIDxmaWxlPiBmcm9tIDxmaWxlPi5pbiBhdCBidWlsZA0KPj4gdGltZS4g
VG8gYmUgdXNlZCBsaWtlIHRoaXM6DQo+Pg0KPj4gJChmb3JlYWNoIGZpbGUsJChJTl9GSUxF
UyksJChldmFsICQoY2FsbCBhcHBseS1idWlsZC12YXJzLCQoZmlsZSkpKSkNCj4+DQo+PiBU
aGlzIGNhbiBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIGN1cnJlbnQgYXBwcm9hY2ggdG8gcGVy
Zm9ybSB0aGUgc2ltaWxhcg0KPj4gc3RlcCBmb3IgZmlsZS5pbiBkdXJpbmcgLi9jb25maWd1
cmUuDQo+Pg0KPj4gVGhpcyB3aWxsIGF2b2lkIGhhdmluZyB0byBydW4gLi9jb25maWd1cmUg
anVzdCBiZWNhdXNlIG9mIG1vZGlmeWluZyBhDQo+PiBmaWxlIGRlcGVuZGluZyBvbiBhIHZh
cmlhYmxlIHNldCBieSBjb25maWd1cmUuDQo+Pg0KPj4gUHJlcGFyZSB0byBoYXZlIG11bHRp
cGxlIGZpbGVzIGFzIHNvdXJjZSBmb3IgdGhlIHJlcGxhY2VtZW50IHBhdHRlcm5zLg0KPj4N
Cj4+IFNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4+
IC0tLQ0KPj4gVjI6DQo+PiAtIGRvbid0IHVzZSBwYXR0ZXJuIHJ1bGUsIGJ1dCBjcmVhdGUg
ZXhwbGljaXQgZGVwZW5kZW5jeSBpbiBtYWNybywNCj4+ICAgIGRvbid0IHJlcXVpcmUgdG8g
cmVuYW1lIHNvdXJjZSBmaWxlcyAoSmFuIEJldWxpY2gsIEFuZHJldyBDb29wZXIpDQo+PiAt
LS0NCj4+ICAgQ29uZmlnLm1rIHwgMTMgKysrKysrKysrKysrKw0KPj4gICAxIGZpbGUgY2hh
bmdlZCwgMTMgaW5zZXJ0aW9ucygrKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS9Db25maWcubWsg
Yi9Db25maWcubWsNCj4+IGluZGV4IGUxNTU2ZGZiZmEuLmQyMWQ2Nzk0NWEgMTAwNjQ0DQo+
PiAtLS0gYS9Db25maWcubWsNCj4+ICsrKyBiL0NvbmZpZy5taw0KPj4gQEAgLTE1OSw2ICsx
NTksMTkgQEAgZGVmaW5lIG1vdmUtaWYtY2hhbmdlZA0KPj4gICAJaWYgISBjbXAgLXMgJCgx
KSAkKDIpOyB0aGVuIG12IC1mICQoMSkgJCgyKTsgZWxzZSBybSAtZiAkKDEpOyBmaQ0KPj4g
ICBlbmRlZg0KPj4gICANCj4+ICtQQVRIX0ZJTEVTIDo9IFBhdGhzDQo+PiArSU5DX0ZJTEVT
IDo9ICQoZm9yZWFjaCBmLCAkKFBBVEhfRklMRVMpLCAkKFhFTl9ST09UKS9jb25maWcvJChm
KS5taykNCj4+ICsNCj4+ICtpbmNsdWRlICQoSU5DX0ZJTEVTKQ0KPiANCj4gSXMgYW55IG9m
IHRoZSBhYm92ZSBwYXJ0IG9mIGludHJvZHVjaW5nIHRoZSBtYWNybz8gIlBhdGhzIiBpcyBh
bHJlYWR5IGENCj4gc3BlY2lmaWMgY2FzZSBvZiBob2xkaW5nIHBhdHRlcm5zIHRoYXQgd2Fu
dCByZXBsYWNpbmcuIEluIHR1cm4gLi4uDQo+IA0KPj4gK0JVSUxEX01BS0VfVkFSUyA6PSAk
KGZvcmVhY2ggZiwgJChQQVRIX0ZJTEVTKSwgJChzaGVsbCBhd2sgJyQkMiA9PSAiOj0iIHsg
cHJpbnQgJCQxOyB9JyAkKFhFTl9ST09UKS9jb25maWcvJChmKS5tay5pbikpDQo+IA0KPiAu
Li4gaXQncyBub3QgcXVpdGUgY2xlYXIgdG8gbWUgaG93IGl0IGNhbiBiZSAkKFBBVEhfRklM
RVMpIGhlcmUuDQoNClNlZSBwYXRjaCA0Lg0KDQpQQVRIX0ZJTEVTIGlzIHNwZWNpZnlpbmcg
dGhlIC5tayBmaWxlcyBjb250YWluaW5nIHRoZSBtYXJrZXIgZGVmaW5pdGlvbnMuDQpJIG5l
ZWQgdGhlIGFiaWxpdHkgdG8gaGF2ZSBtdWx0aXBsZSBzdWNoIGZpbGVzIGluIG9yZGVyIHRv
IGJlIGFibGUgdG8gbGV0DQp0b29scy9jb25maWd1cmUgYnVpbGQgaXRzIG93biBkZWZpbml0
aW9ucy4NCg0KPiANCj4+ICsjIFJlcGxhY2UgQHh4eEAgbWFya2VycyBpbiAkKDEpLmluIHdp
dGggJCh4eHgpIHZhcmlhYmxlIGNvbnRlbnRzLCB3cml0ZSB0byAkKDEpDQo+PiArZGVmaW5l
IGFwcGx5LWJ1aWxkLXZhcnMNCj4+ICsgJCgxKTogJCgxKS5pbg0KPiANCj4gVGhpcyBiZWlu
ZyBpbmRlbnRlZCBieSBhIHNwYWNlIGxvb2tzIGEgbGl0dGxlIHVudXN1YWwuDQoNClRoZXJl
IGFyZSBpbnN0YW5jZXMgb2YgdGhhdCBpbiB0b29scy9SdWxlcy5tayBhbmQgc3R1bmJkb20v
TWFrZWZpbGUuDQoNCk9UT0ggaXQgbWlnaHQgaGF2ZSBiZWVuIG1lIGludHJvZHVjaW5nIHRo
b3NlLiA6LSkNCg0KDQpKdWVyZ2VuDQo=
--------------WR9u0b6BmIzDMgMgqjDX0704
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-----

--------------WR9u0b6BmIzDMgMgqjDX0704--

--------------9Efw0zOp1zOhE1ZOH0tMZkWk--

--------------1h0ucWZDleZRhe8K8DGdTZSr
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/Ey8FAmkbGZwFAwAAAAAACgkQsN6d1ii/Ey/i
5wf9HBL2aN3WLIygcGjHBn2g4LtaNojt+dNqZMsnsHcyqP+nS3wuA3XFlxKZ16AXGVy3FaOEXX1j
yDfRMD91jMklRvDkr/78Rw6CsnuYxTWTNivUEN+/FGT7kxuYsEMr2DngwjzumLdKzv6Gm1RbnvQ1
ntYXXQ0ro94SGRgu1hepFF/yKZUKMc7i1Gbi9QoLzzhT3Uz1022FUpGyZTWDMHlu71d9oPYtdumu
UEIe7XM2uCMGpAInceE1WyPMfJ0VEGdjs9KyvWfG8x4N5CuF6xDG1SSBu5SFSlzOWHWlYOGdeHmd
nDGoTeDhiJsd5lAN/ad4upIF9IWYpWDPogqdZ/1u7A==
=kI+X
-----END PGP SIGNATURE-----

--------------1h0ucWZDleZRhe8K8DGdTZSr--


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 12:51:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 12:51:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163757.1490820 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKyhb-0001xZ-3E; Mon, 17 Nov 2025 12:51:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163757.1490820; Mon, 17 Nov 2025 12: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 1vKyha-0001xS-W0; Mon, 17 Nov 2025 12:51:26 +0000
Received: by outflank-mailman (input) for mailman id 1163757;
 Mon, 17 Nov 2025 12:51: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=Lf15=5Z=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vKyhZ-0001xJ-L8
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 12:51:25 +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 1f420d16-c3b4-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 13:51:23 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-640aaa89697so5524476a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 04:51:23 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-644f13ff4d4sm715949a12.12.2025.11.17.04.51.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 04: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: 1f420d16-c3b4-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763383883; x=1763988683; 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=wdoUjGOxSMU7p6pb37DQiCH+vreffo1ifkKKB64g0dQ=;
        b=QptwqtYKIFLr6aBiBC+qWdIDbijmWjwfxjEMLeQX/uP7K9BWrkFAqWTnx+JQXzb1sK
         qs0odzkYWV+2pT8FZfp4LdV7MCqyxzcdL6K2kzAL7KbNAvFPVVoCaJZvMXOqapCD9TYn
         zvWyhalshQh+xsDIcgsVq0VvmGx6KOpD0JDMK4Jv2Ufwe74LHJZWs+gQvcsuZNc2Jsku
         6H+6cZBwnjNPm5mrqYtZBSul4c07uTUZc+lxAG3vUDnrXCfYKqlsEA6j2PfGXa9mTMrs
         beGNc4n/jpV0V/w3u2UscI3GpRHkYWmglGM0wpMnzT8VIw7iydqkkwf0X75uRrs2Wf/I
         8cSw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763383883; x=1763988683;
        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=wdoUjGOxSMU7p6pb37DQiCH+vreffo1ifkKKB64g0dQ=;
        b=JjM/jxfupd6MLC1OZt1ckXAPMpboV/o+cjplzBKWVvSXyNab5vcf/7PbFL2irCGiCF
         1qi8ufPcbS4Znh1RGxtzA2r+P0jCP1I3e7aT6AQckGGMui24pz2vrVQUtGYKMFX7lio0
         5K276OYo0HUD1SZJSgZxsV58J/l+2A4LhOuYsUyg1ka4pJW7SIHCjOsuNUEOpHx4YKnt
         ssXNhvgi8oIDsJaMH3vaVdmQIzKEICwYVQd/hOa40R6DC7+sfpGao/s+3Z/FCOzymhxW
         uU1Bff6RPRjhHVxgLtyiudoLtIrTYIWfEe07k0Ws+LIU05sk+4bIwAlADO1UnKTnSp/8
         v4Mg==
X-Forwarded-Encrypted: i=1; AJvYcCUWBzDRpsGPGs/htt8mlWKWEiJbn1hUfXBC60OfWriKUUYDD85vMSha4Qtmo+j6wxK5zQN9CiMIHhk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZgWsnbf9j9z8VCpV0f1z3Dh26kf16EjKcVIMteaNXyk1i07Eo
	73K85iuRkOqvwEXB+UEG5QJOqOJ6qwIKQrcLo5tJauCh0uqN0/vwaP6JbUI/Ay5XpCk=
X-Gm-Gg: ASbGncsw9iITW21mLgxvn3itkIWqusafgbLYMkYWQMN8Xs8ToFB+m+y6wJZeUojNeux
	CmJG4N+hgiP1Zu1fEzH5ZTDNQULJYDV9/dxNCrOTs+LsfSvGmyYGWYgNff0TFCXs21A/N/dxEGP
	kfGM59K1BtIiPctb1LiR4Kmp2x3gYV4yPJx0i+YdtKWVidGj93J5W8t2roaDeelaBgNfKYysPOD
	DxyjI8c00JYswYRtHBSlMyyux07OisJgtCcgOVJlgEvHlfkS/NRTOsuo8+ZkVn2ZrucUOy7fpgz
	9SnuVjpzj5ydWi7VE/WEJlofGUwr4njonCNuN+TCgJySDPZb50QmKvo6+xv8LQSqbA4D+HhMNJ4
	GFWvZXbKv47IvGVRw6Zu3X3gkjucqVBFAnhb709o1StoBeCL9FeZK/zSvTU6F4T3fEQTSEF+3dw
	6Yl0Y2jk64ZKKWDV3ktkn0wSwXHEwKAZAEidHbNh+ni8sESkwJVw1zxBQiOvoq1/LBgizB7y2ko
	0HEat1IUP7hO3Oj91ALEaeiuphLiQ885X2awhVOh7WVYb47AQ==
X-Google-Smtp-Source: AGHT+IFu4pB+xIaWFZYOUrdSjTQn+rmGzGocZWXlq7fsDw08fxkxqp7TMFDQ8n7dEAisu1Q0wic3YQ==
X-Received: by 2002:a05:6402:3494:b0:643:130c:eb0 with SMTP id 4fb4d7f45d1cf-64350e06bbfmr11490964a12.8.1763383882867;
        Mon, 17 Nov 2025 04:51:22 -0800 (PST)
Message-ID: <4e721924-d28b-4d7e-9aee-d55cd5e7878f@suse.com>
Date: Mon, 17 Nov 2025 13:51:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] build: add make macro for making file from file.in
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-2-jgross@suse.com>
 <468c6686-43e5-4c35-8366-58558f199e22@citrix.com>
 <cc90d18b-f88e-49d9-a55f-b7035ce43167@suse.com>
 <113c9cc1-5e39-4a54-88de-dd2b70b90a49@suse.com>
 <d3528e7b-a811-47ca-a508-c0aa0746d9f3@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: <d3528e7b-a811-47ca-a508-c0aa0746d9f3@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------5uLPqbE6IiONInTZx4aKLiqm"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------5uLPqbE6IiONInTZx4aKLiqm
Content-Type: multipart/mixed; boundary="------------ZsooZRKM6zhNrkiGTb9rt4oo";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Message-ID: <4e721924-d28b-4d7e-9aee-d55cd5e7878f@suse.com>
Subject: Re: [PATCH v2 1/4] build: add make macro for making file from file.in
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-2-jgross@suse.com>
 <468c6686-43e5-4c35-8366-58558f199e22@citrix.com>
 <cc90d18b-f88e-49d9-a55f-b7035ce43167@suse.com>
 <113c9cc1-5e39-4a54-88de-dd2b70b90a49@suse.com>
 <d3528e7b-a811-47ca-a508-c0aa0746d9f3@citrix.com>
In-Reply-To: <d3528e7b-a811-47ca-a508-c0aa0746d9f3@citrix.com>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------ZsooZRKM6zhNrkiGTb9rt4oo
Content-Type: multipart/mixed; boundary="------------npUqLT6pytv6MVNZjmUgshoJ"

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

T24gMTcuMTEuMjUgMTM6MzAsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDE3LzExLzIw
MjUgMTI6MjQgcG0sIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4gT24gMTQuMTEuMjAyNSAxMzo1
NCwgSsO8cmdlbiBHcm/DnyB3cm90ZToNCj4+PiBPbiAxNC4xMS4yNSAxMjo0MiwgQW5kcmV3
IENvb3BlciB3cm90ZToNCj4+Pj4gT24gMTQvMTEvMjAyNSAxMTozMiBhbSwgSnVlcmdlbiBH
cm9zcyB3cm90ZToNCj4+Pj4+IGRpZmYgLS1naXQgYS9Db25maWcubWsgYi9Db25maWcubWsN
Cj4+Pj4+IGluZGV4IGUxNTU2ZGZiZmEuLmQyMWQ2Nzk0NWEgMTAwNjQ0DQo+Pj4+PiAtLS0g
YS9Db25maWcubWsNCj4+Pj4+ICsrKyBiL0NvbmZpZy5taw0KPj4+Pj4gQEAgLTE1OSw2ICsx
NTksMTkgQEAgZGVmaW5lIG1vdmUtaWYtY2hhbmdlZA0KPj4+Pj4gICAgCWlmICEgY21wIC1z
ICQoMSkgJCgyKTsgdGhlbiBtdiAtZiAkKDEpICQoMik7IGVsc2Ugcm0gLWYgJCgxKTsgZmkN
Cj4+Pj4+ICAgIGVuZGVmDQo+Pj4+PiAgICANCj4+Pj4+ICtQQVRIX0ZJTEVTIDo9IFBhdGhz
DQo+Pj4+PiArSU5DX0ZJTEVTIDo9ICQoZm9yZWFjaCBmLCAkKFBBVEhfRklMRVMpLCAkKFhF
Tl9ST09UKS9jb25maWcvJChmKS5taykNCj4+Pj4+ICsNCj4+Pj4+ICtpbmNsdWRlICQoSU5D
X0ZJTEVTKQ0KPj4+Pj4gKw0KPj4+Pj4gK0JVSUxEX01BS0VfVkFSUyA6PSAkKGZvcmVhY2gg
ZiwgJChQQVRIX0ZJTEVTKSwgJChzaGVsbCBhd2sgJyQkMiA9PSAiOj0iIHsgcHJpbnQgJCQx
OyB9JyAkKFhFTl9ST09UKS9jb25maWcvJChmKS5tay5pbikpDQo+Pj4+PiArDQo+Pj4+PiAr
IyBSZXBsYWNlIEB4eHhAIG1hcmtlcnMgaW4gJCgxKS5pbiB3aXRoICQoeHh4KSB2YXJpYWJs
ZSBjb250ZW50cywgd3JpdGUgdG8gJCgxKQ0KPj4+Pj4gK2RlZmluZSBhcHBseS1idWlsZC12
YXJzDQo+Pj4+PiArICQoMSk6ICQoMSkuaW4NCj4+Pj4+ICsJc2VkICQkKGZvcmVhY2ggdiwg
JCQoQlVJTERfTUFLRV9WQVJTKSwgLWUgJ3MjQCQkKHYpQCMkJCgkJCh2KSkjZycpIDwkJDwg
PiQkQA0KPj4+Pj4gK2VuZGVmDQo+Pj4+IFNob3VsZG4ndCB0aGlzIHdyaXRlIHRvIGEgdG1w
IGZpbGUsIGFuZCB1c2UgbW92ZS1pZi1jaGFuZ2VkP8KgIE1vc3Qgb2YNCj4+Pj4gdGhlIHRp
bWUgdGhlIG1hcmtlcnMgd29uJ3QgaGF2ZSBjaGFuZ2VkLCBhbmQgd2UnbGwgd2FudCB0byBz
aG9ydCBjaXJjdWl0DQo+Pj4+IGRlcGVuZGVudCBydWxlcy4NCj4+PiBJIGNhbiBzZWUgdGhp
cyBiZWluZyBhbiBhZHZhbnRhZ2Ugd2hlbiBlLmcuIGdlbmVyYXRpbmcgaGVhZGVyIGZpbGVz
LCBhcw0KPj4+IHRob3NlIGJlaW5nIGdlbmVyYXRlZCBhZ2FpbiB3b3VsZCBwb3RlbnRpYWxs
eSBjYXVzZSBsb3RzIG9mIHJlYnVpbGRzLg0KPj4+DQo+Pj4gSW4gdGhpcyBjYXNlIEkgY2Fu
IGhhcmRseSBzZWUgYW55IGNhc2Ugd2hlcmUgbWFrZSB3b3VsZG4ndCBkbyB0aGUgcmlnaHQN
Cj4+PiB0aGluZyBhbHJlYWR5LiBFaXRoZXIgdGhlICouaW4gZmlsZSBpcyBuZXdlciB0aGFu
IHRoZSBnZW5lcmF0ZWQgZmlsZSBkdWUNCj4+PiB0byBhIGdpdCB1cGRhdGUgb3IgYSBtYW51
YWwgZWRpdCwgc28gbWFrZSB3aWxsIHJlZ2VuZXJhdGUgdGhlIHRhcmdldCAoYW5kDQo+Pj4g
dGhpcyBpcyB3aGF0IHdlIHdhbnQpLCBvciB0aGUgKi5pbiBmaWxlIGhhc24ndCBjaGFuZ2Vk
LCBzbyBtYWtlIHdvbid0DQo+Pj4gcmVnZW5lcmF0ZSB0aGUgZmlsZSBhcyBpdCBpcyBuZXdl
ciB0aGFuIHRoZSAqLmluIGZpbGUgYWxyZWFkeS4NCj4+Pg0KPj4+IE9yIGRpZCBJIG1pc3Mg
c29tZSBhc3BlY3Q/DQo+PiBBcmVuJ3Qgc29tZSBvZiB0aGUgZ2VuZXJhdGVkIGZpbGVzIE1h
a2VmaWxlIGZyYWdtZW50cz8gVGhlbSBiZWluZyByZS1nZW5lcmF0ZWQNCj4+IG1lYW5zIG1h
a2UgcmUtaW52b2tpbmcgaXRzZWxmLCB3aGljaCBjb3VsZCBiZSBhdm9pZGVkIGlmIHRoZSBj
b250ZW50cyBkb24ndA0KPj4gcmVhbGx5IGNoYW5nZS4gKFRoaXMgaXNuJ3QganVzdCBhIHBl
cmZvcm1hbmNlIGNvbmNlcm47IHRoaXMgcmUtaW52b2NhdGlvbiBoYXMNCj4+IGJlZW4gdGhl
IHNvdXJjZSBvZiwgd2VsbCwgc3VycHJpc2luZyBiZWhhdmlvciBpbiBjZXJ0YWluIGNhc2Vz
LikNCj4gDQo+IEhhdmluZyB0aG91Z2h0IGFib3V0IHRoaXMgc29tZSBtb3JlLCBpdCBuZWVk
cyB0byBiZSBGT1JDRSBhbmQNCj4gbW92ZS1pZi1jaGFuZ2VkLCBvciB0byBleHByZXNzIGEg
ZGVwZW5kZW5jeSBvbiBQYXRocy5taw0KDQpJIHNhaWQgdGhhdCBhbHJlYWR5IGluIHRoZSBw
YXJhZ3JhcGgganVzdCBhZnRlciB0aGUgcGFydCBvZiBteSByZXNwb25zZSB5b3UNCmNpdGVk
Lg0KDQoNCkp1ZXJnZW4NCg==
--------------npUqLT6pytv6MVNZjmUgshoJ
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-----

--------------npUqLT6pytv6MVNZjmUgshoJ--

--------------ZsooZRKM6zhNrkiGTb9rt4oo--

--------------5uLPqbE6IiONInTZx4aKLiqm
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/Ey8FAmkbGkoFAwAAAAAACgkQsN6d1ii/Ey/c
dAf/TZ4QrgbAu++0T8Udfk4EqnqCAlZ3FKMcA+yBSZGzAgyHI2xAZclMnFOgMjbembnfe57V3sVz
5bFqEzeiYiAUaWCo/z0M454sSEgMfHh1kS/o1kwOhGxQhwQuDwk3nmCfJT0SVk6eqDjGscwmEY09
FF2xugPq4RJjUV9fullE6WvTQO7F52j6YzNN6Xwg8F2CrgQbV35g67nY5sSp9Kyo9CDv3aHhV9Bj
0/D+FrmUyTTbyT2VTWZWBW9/rK37qz67jZEALkvdWAhOUUKj/MfiYcbafQ6x2BwcWkSABMqH5PtU
+S58P0O+/Jix3MxnlwXcEHDrTn/3y8OlHktJIjTagQ==
=F/I5
-----END PGP SIGNATURE-----

--------------5uLPqbE6IiONInTZx4aKLiqm--


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 12:51:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 12:51:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163763.1490830 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKyhv-0002PB-AR; Mon, 17 Nov 2025 12:51:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163763.1490830; Mon, 17 Nov 2025 12:51: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 1vKyhv-0002P4-77; Mon, 17 Nov 2025 12:51:47 +0000
Received: by outflank-mailman (input) for mailman id 1163763;
 Mon, 17 Nov 2025 12:51: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vKyhu-0001xJ-HO
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 12:51:46 +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 2bf225f9-c3b4-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 13:51:44 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-6406f3dcc66so7168999a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 04:51: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
 a640c23a62f3a-b734fa81172sm1065371066b.15.2025.11.17.04.51.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 04:51: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: 2bf225f9-c3b4-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763383904; x=1763988704; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+R9BOcERIeXU8LRQN4JtCf/Y5k3H9zQGXysn+KICTKQ=;
        b=eN1XKCyWzx3Qgdc2Oney2UhMceCCKCnXvKMAacmLUoSD4tPMMyrsDccqQkKaef0Aky
         7pLTjZeQrVRk9+ns3HSBZ5pIU2TltJqB20lF8doBoHmZ4E2gFBdMXXwt+FVc+S1J5mm5
         gO/ReYW2C9O08uE80nRJv7AsWVuVyfN+i7FOl9aYM5lFzc09aY1uiiX0RheG+L2zpVKa
         +IPRbvJa1nbyxnCKjOge4/xFZ/Qp8y4tZamjCn9EEkRtQYnniNVSjIvdbyGX5hO5D3Bz
         Og4infx5ULwNSCcVmJqcDIDS5tJbnkgMfY45eoS3VO9x7kFN4WqDjl436K9UhFPr8R+H
         61yA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763383904; x=1763988704;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+R9BOcERIeXU8LRQN4JtCf/Y5k3H9zQGXysn+KICTKQ=;
        b=OiVHwN5s/HZqahpxF/bt85AfJmpchT2Qb9nXH76666UdRi5bNr208SSeZOUzqeCx5z
         Y2sus3vNTTF6VRW6iamw9P+sLMN3AtncXaMS/KkeK5xVxN1EwQ9EIQGZwK5IHvnHHfhU
         +zOfFZ7Do5bsbr07C22tSqfAcSUyiJq9oS5SmE2Bzo6YwBYUAu49o39hK0kkE0t+xzVR
         c9FZmO/RAA3mPboX6/Kixqi3To9Or3aYFrWk98Iglvd4nkFjw57m4ss8L0ltIvzUofwr
         gsOTwGUTuFZY7DDqZyhxvGdHMtQ/k8RbDl9ekcO5A5mePV8RFkCZidaKROPkqFOeSh3r
         ZGqQ==
X-Forwarded-Encrypted: i=1; AJvYcCV0gnayhmkJQx7lSRhJ7FuvlQO52YuZzA5aP/wc5nUNJwD0ZeSbKMspgg49uEcsCvXQ1B3wR1XoDhg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyjFwm5qEwEvPJLod746gE1uCabU0MmR0/tkr39jghGNVMj4wbz
	6mv47fEei5JMDD7YSR98/90tDVT0PLwe2Q7SnD1FFMlA/UvaF3v8+DRzs4wwk0VRDw==
X-Gm-Gg: ASbGncssO2SlFExSPt4KAJ3KuUxEPh0aoTbjuwA6ImVac4qtXR+SjEun4WfcsHiP+j7
	jF+LWFXVN6/zVgyyvJ75I9gmH6G1/Dt5PT6cXweZzi1vyX86jS1X4ElRQfAKGFp2BipN1obPlQS
	q9korzAUvzZGdPNUjppkxg3BJ9asI+B5YvqC3UrfawGLCPEzcgN0Zn/0KvS6n942jYEObtaitTn
	78M458lPVn7ESMiDvVtR1Nu1W5QkB0HrNajAvCdA/BLPHSdV9NNrTxTEgf5MOfGOkXcqArYuuDq
	SD4JuxKJDNr3F+g2ySmfKI30rGjbcGzfVXmXuz/TFezPYENW+tswLKuW0oT9+S4UfYmWxowes6R
	g/uzLHa8psczDEKxBK7dcBF8MQc2FyplpYHfFT0+7kbJBpO2Dpi3DUp5srCG4y233qiZ3TXyp8r
	VcwRFxCNJ2SFXTQXLpARnwOplRDD0+szmizCQmXahH9+9YmNkJH7kJZmeEVq5PPu7v
X-Google-Smtp-Source: AGHT+IHvF7DgeRfsK6km58wxrA5A+/iIdBKLUsvdxoJlKAFZ7dGiUy/YMg9Uaw8ni1qTBV45KTjqCw==
X-Received: by 2002:a17:906:f58b:b0:b4a:ed12:ce51 with SMTP id a640c23a62f3a-b73678b33c7mr1192356466b.23.1763383904222;
        Mon, 17 Nov 2025 04:51:44 -0800 (PST)
Message-ID: <c1b9bfb6-8ff8-4f60-953a-0f23818b5f95@suse.com>
Date: Mon, 17 Nov 2025 13:51:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] build: add make macro for making file from file.in
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.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>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-2-jgross@suse.com>
 <468c6686-43e5-4c35-8366-58558f199e22@citrix.com>
 <cc90d18b-f88e-49d9-a55f-b7035ce43167@suse.com>
 <113c9cc1-5e39-4a54-88de-dd2b70b90a49@suse.com>
 <88e6b9d8-21b6-4b37-97fc-d35b90ed9b49@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: <88e6b9d8-21b6-4b37-97fc-d35b90ed9b49@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.11.2025 13:37, JÃ¼rgen GroÃŸ wrote:
> On 17.11.25 13:24, Jan Beulich wrote:
>> On 14.11.2025 13:54, JÃ¼rgen GroÃŸ wrote:
>>> On 14.11.25 12:42, Andrew Cooper wrote:
>>>> On 14/11/2025 11:32 am, Juergen Gross wrote:
>>>>> diff --git a/Config.mk b/Config.mk
>>>>> index e1556dfbfa..d21d67945a 100644
>>>>> --- a/Config.mk
>>>>> +++ b/Config.mk
>>>>> @@ -159,6 +159,19 @@ define move-if-changed
>>>>>    	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
>>>>>    endef
>>>>>    
>>>>> +PATH_FILES := Paths
>>>>> +INC_FILES := $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
>>>>> +
>>>>> +include $(INC_FILES)
>>>>> +
>>>>> +BUILD_MAKE_VARS := $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).mk.in))
>>>>> +
>>>>> +# Replace @xxx@ markers in $(1).in with $(xxx) variable contents, write to $(1)
>>>>> +define apply-build-vars
>>>>> + $(1): $(1).in
>>>>> +	sed $$(foreach v, $$(BUILD_MAKE_VARS), -e 's#@$$(v)@#$$($$(v))#g') <$$< >$$@
>>>>> +endef
>>>>
>>>> Shouldn't this write to a tmp file, and use move-if-changed?Â  Most of
>>>> the time the markers won't have changed, and we'll want to short circuit
>>>> dependent rules.
>>>
>>> I can see this being an advantage when e.g. generating header files, as
>>> those being generated again would potentially cause lots of rebuilds.
>>>
>>> In this case I can hardly see any case where make wouldn't do the right
>>> thing already. Either the *.in file is newer than the generated file due
>>> to a git update or a manual edit, so make will regenerate the target (and
>>> this is what we want), or the *.in file hasn't changed, so make won't
>>> regenerate the file as it is newer than the *.in file already.
>>>
>>> Or did I miss some aspect?
>>
>> Aren't some of the generated files Makefile fragments? Them being re-generated
> 
> No.
> 
> Man-pages, shell scripts and some Ocaml files (one config file and one .ml file,
> which is similar to an include file I believe).
> 
>> means make re-invoking itself, which could be avoided if the contents don't
>> really change. (This isn't just a performance concern; this re-invocation has
>> been the source of, well, surprising behavior in certain cases.)
> 
> I still don't see a case where make would consider rebuilding the file from
> its .in file without the .in file having changed, thus resulting in the built
> file to change, too.

As Andrew indicated, Paths.mk might have changed, so at the very least an
explicit dependency would need adding. But as alluded to elsewhere, I'm not
quite convinced Paths.mk should be hard-coded as the sole source of patterns
in Config.mk. At the point further such file come into play, dealing with the
dependencies might get interesting / clumsy.

> Well, with one probably very rare exception: in case a
> different @marker@ is used in the .in file, but without changing the resulting
> file due to old and new marker resulting in the same output.
> 
> In case we really care about such cases, we should think about using
> move-if-changed everywhere, as e.g. building a program with $HOSTCC could
> result in an unchanged binary even with source files having changed, and the
> resulting program could be used to generate other files ...

For some of the cases this might actually be worthwhile. It all depends on
how much of a knock-on effect the re-building of a particular file has.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 12:51:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 12:51:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163764.1490840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKyi0-0002k7-Hg; Mon, 17 Nov 2025 12:51:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163764.1490840; Mon, 17 Nov 2025 12:51:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKyi0-0002k0-EB; Mon, 17 Nov 2025 12:51:52 +0000
Received: by outflank-mailman (input) for mailman id 1163764;
 Mon, 17 Nov 2025 12:51:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=T/DW=5Z=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vKyhy-0001xJ-Mi
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 12:51:50 +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 2c02a431-c3b4-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 13:51:45 +0100 (CET)
Received: from SJ0PR13CA0152.namprd13.prod.outlook.com (2603:10b6:a03:2c7::7)
 by DM6PR12MB4043.namprd12.prod.outlook.com (2603:10b6:5:216::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.22; Mon, 17 Nov
 2025 12:51:40 +0000
Received: from CO1PEPF000075F0.namprd03.prod.outlook.com
 (2603:10b6:a03:2c7:cafe::4b) by SJ0PR13CA0152.outlook.office365.com
 (2603:10b6:a03:2c7::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.10 via Frontend Transport; Mon,
 17 Nov 2025 12:51:18 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF000075F0.mail.protection.outlook.com (10.167.249.39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Mon, 17 Nov 2025 12:51:39 +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, 17 Nov
 2025 04:51:38 -0800
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, 17 Nov
 2025 04:51:38 -0800
Received: from [10.252.147.171] (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, 17 Nov 2025 04:51:36 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2c02a431-c3b4-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SnMPRtSv4NCr7m8Utrdm82tIQnGq+7E4acJjyr8KHZ5Qxz0ph7WPXOyNV5kn0hIIUOLLfjF+mBshcuJm6qXh+8ytGH1yiwuwCjyMhc39mpP/IW3nTOwWyIB2aSoxkKZjeiJ02Xp5AU0xAVQEiMuZLz5iSv+pkInINzcrNnxo/qMp4gyFfzUznNQEEXPeWDny4lJO2EWIL0jj9tAXycFHU7RDAGMAEyy/CifT1F3ago7A5oDm3wtyjKzlBz8zOvZXMR/ieZIpR7xlmQZrD0iiYtK585w0iwlfiasVqAHbJMzF2duIfpH4ZCrabYyRpTENKBgrt6JRJbER1Nf3aJvk0Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qgIa7eJUcJy0L797JuXOlZcWIxafwc3mfLGn2Bbocrk=;
 b=d3QYYbaSoaC6Nv67HuIuAteOiYSCh3IPJzd/0LTUSzxYQbKgkgYp0HuYQUKvnyru5CoCFZLfrEVjrovoPlwZNyPwjBCM/YPzkwELVzIdL/flxwdwZ0JMOU+DL5/OvvGqmQa40lKbr1CdDCYBrY56/y9KeOkhazlzDn9Jp0ZD9ND9ZiiacW9YU8e8K54mdZRcu59EqcaU6ek53J39lry5wigT5czeyyRmYWslykJbKzow7CZI6dlh2tTZsfjuaXtPHAdo3lS82n0LCqZAVkXclhn1qZGFD+UphMI/k7PGuCU2mr11htKtAeNpff+jwNyPW+83mIWy0jDP6PsqG6sDGA==
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=qgIa7eJUcJy0L797JuXOlZcWIxafwc3mfLGn2Bbocrk=;
 b=GPGg0zV302/8Fnww0dlUiXnzagUKdbQgIl+riFB/CeTB4T/5IF+2yUP8Fv4rfSAZjQ59FTxxy4UFcO5cGOT2X2eFtta9JSsBHauUrOCpiGcHd1OMBULJKQl8boO50XEDyoPt//25JEzFkhIYC03U5EuoE83pPrRfG9z2OVgYugU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <7261ef7c-c574-4c3f-9aa0-259386f05d05@amd.com>
Date: Mon, 17 Nov 2025 13:51:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] arm/mpu: Implement setup_mm for MPU systems
To: Luca Fancellu <Luca.Fancellu@arm.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Stefano Stabellini" <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
	"Bertrand Marquis" <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Harry Ramsey <Harry.Ramsey@arm.com>
References: <20251111101601.4171120-1-harry.ramsey@arm.com>
 <20251111101601.4171120-2-harry.ramsey@arm.com>
 <80c02055-2687-4e24-8de0-8fb4dfe2af02@amd.com>
 <fe082ad9-ee55-46bd-8b93-5320649e6aca@arm.com>
 <EF7146C1-4351-49F1-A0A2-9BAE0EEFB888@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <EF7146C1-4351-49F1-A0A2-9BAE0EEFB888@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000075F0:EE_|DM6PR12MB4043:EE_
X-MS-Office365-Filtering-Correlation-Id: f01f2fe6-2298-4fec-6a51-08de25d80d12
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?d1hQMFVlQkdMcS9UQWpLamhxUy9rT0NiZVBseENobHFRODhLL0lHa1daU1pU?=
 =?utf-8?B?TUcvcW5uTlpvQTIyU2M4azZzRE95QkgycTlJb1kyQ1ltR1o2Q2FWNzhxbjBm?=
 =?utf-8?B?aFpUNGM0b3EvM09KbDVhSW53MjRQWTA2RWJzaFJydU5SNkRLeHFDa0xQTGIz?=
 =?utf-8?B?UWwvYVBzMXRET0I2TmFTeE91V2hoSURmWFFWTldPbEVVTDk4M3A0RE1xNC9F?=
 =?utf-8?B?UjNtUWtIb0Q2dk9tVzB3MytDY3FvTEpJMEJQREVIS1Z5VUNub2UyNFJSY2Q4?=
 =?utf-8?B?Tkh4ODZKUVZzekl0UDlvUG1SUlY0aWJwYXhyM3IvSU9JTngrcjV1dXlQa3ht?=
 =?utf-8?B?SUdiNkQrRjlLaS8xSjNMSjFoOE1kbGtIWFhsNmlZMmdQSDZ0WUowdzZLSWRa?=
 =?utf-8?B?Ykp6aXA3WUtZbDFoUFBCL0x4VnJaZXBVL212TzRvdFc4VXNGMzZ1Ym95YTVm?=
 =?utf-8?B?NkxVcnlLb2gyMWU5OHcvK1RXWlNZWERVZXVjODRNaExGNlF5cHlSQmZDUW9l?=
 =?utf-8?B?SllpcHpaYjBmSkxNVXh4WGhab0lGMTVDcXl4QTRkMHJXdnJkdE5uQVQ3cDBG?=
 =?utf-8?B?ODR1YURzcWFJdUoweGEwRXBWNTUxRW5oVDhiQk1yRmVwV2lGclVRN2IxZlVK?=
 =?utf-8?B?VVI3cU5LdGxERnhrVE1ydGo1YVdmNkE4NUREUXRrcUJYZ2hWZUdMZFVYZ3pZ?=
 =?utf-8?B?S2FqNGFCbmEydEdsb2lrOElpRlFXR0lRRGk0cGJQU2FTVTZQM1U1OVhhaEFB?=
 =?utf-8?B?UGEzQkRNTy9oOWtuemNMcE1kcXh1VUZyVDluOUhhdFpMUGNGSDhVNlhWNm5l?=
 =?utf-8?B?UmErTHpxUUxhVW1TNFhrM2xlTEpUeEZGb2JDMDdqcjYxS1cycU9tMnFnRWJX?=
 =?utf-8?B?UktQRGg2VFBzVHRsUVdMRm0yMlRNRUEwRGM5a1lKVnRTSlAybVBwaThKMWVW?=
 =?utf-8?B?UVBYU2ZhczNQbmNsaklNOW5ZSWk4YXhwQ1JaYkk4LzBxWWxNVGdEVjRFZlM0?=
 =?utf-8?B?OFp5eWpiVkRkc2gxcE9DRHM4NUtXWkhjenhDcGR5MVEvZnhUQlRrc1Vkei82?=
 =?utf-8?B?WkV3QnRuNGwzU01nYUlFMWg1TE1HeUVBOHIzanhnbTZYbHMxblRNWUdhN0tZ?=
 =?utf-8?B?dFJ4MTZDSGd1VnIrRE5VbUhsTkNlSEVaM0R4M2t3T2g3SS9BdmZ3Ynd3OXE5?=
 =?utf-8?B?b1NqaVJLMGZJVmlENjR0U1ZGc0NjWFdiSFhPcU9QaGgyL0FSbUJjRldDSXRa?=
 =?utf-8?B?emVkTW0rSXRNdXFVRnNrZEx0U3FuQU5VM1JLV25tZUd1NSt5aExZQW9IU2Ux?=
 =?utf-8?B?WFJkcnRkd3plM1FiUGJkSXphTVd4anhXMzJNRkpIc3dVRVIxWEVyZWJId2dk?=
 =?utf-8?B?TitrbkVkZVE0OVdYTG1HWE5YZURjUC9kejlKalpWMk9lS3FHQjhOK1A5UzEv?=
 =?utf-8?B?Z0ZCZzlUMTIwd1VhejlRU3hIQndDdjdJKysyR2RoK1owZ2hsb0J5RXdMbVUr?=
 =?utf-8?B?K25XMXZPV2pFZFF3REpYVDFNZE5WaDk4RzByYWxJVjRpVVg0NklhNWs4aHBk?=
 =?utf-8?B?bU53VFFIUStRYnprUG1IMmpqYTNEY3RPcXp1U2NtY0xVQitnY2Q1UHVlQWt4?=
 =?utf-8?B?TUNGdG10ZmhRMkNWOTdwRG82aVVVVzhvdlhqQUN3S0VubGJiY0lKeEhqU3Nq?=
 =?utf-8?B?UUpwRXorK2JWNnpCL0p2SlNQZGc5R1dVZFFoNldoT3cwQlpqOWZrOU1IODg3?=
 =?utf-8?B?UTJJcnBzcWc1SGpjM05NclpqTTZSdFpRMkZxdnM2c1p5eWZvbmtnQ1FBMDV3?=
 =?utf-8?B?ZDJLeGMwZnJaWWV4ZUgydThTbFp2SjBQNE9CVDZFZjd1MTVhcFZLUlg3Vkdu?=
 =?utf-8?B?VFhrRVgrQnp1VkpLaWFGcnRxeUNuNkVHendxUzBqMHZadk5KRkZlWUtIcGlS?=
 =?utf-8?B?OGdkNTRteWlwNnF0N21iQW9Fb1NCUlZqYlJBVnJrUTlFTTFlTGZzNFRpalFk?=
 =?utf-8?B?NDNoNGVyWllXUWdOLy96MWZPQkd1MmZoU29kd0ZQZHY2a21SaVM5bWpZVTR1?=
 =?utf-8?B?NEdaamIrd1FDYXYrSjZmVVpXZ0QwdkZ5NHQvTHNVdTFhSktkNE1mMExUc3RD?=
 =?utf-8?Q?aL4M=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2025 12:51:39.4313
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f01f2fe6-2298-4fec-6a51-08de25d80d12
X-MS-Exchange-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:
	CO1PEPF000075F0.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4043



On 12/11/2025 17:06, Luca Fancellu wrote:
> Hi Michal,
> 
>>>> +void __init setup_mm(void)
>>>> +{
>>>> +    const struct membanks *banks = bootinfo_get_mem();
>>>> +    paddr_t ram_start = INVALID_PADDR;
>>>> +    paddr_t ram_end = 0;
>>>> +    paddr_t ram_size = 0;
>>>> +    unsigned int i;
>>>> +
>>>> +    init_pdx();
>>>> +
>>>> +    for ( i = 0; i < banks->nr_banks; i++ )
>>>> +    {
>>>> +        const struct membank *bank = &banks->bank[i];
>>>> +        paddr_t bank_end = bank->start + bank->size;
>>>> +
>>>> +        ram_size = ram_size + bank->size;
>>>> +        ram_start = min(ram_start, bank->start);
>>>> +        ram_end = max(ram_end, bank_end);
>>>> +    }
>>>> +
>>>> +    total_pages = ram_size >> PAGE_SHIFT;
>>>> +
>>>> +    /*
>>>> +     * On MMU systems we need some memory to allocate the page-tables used for
>>>> +     * the directmap mappings.  But some regions may contain memory already
>>>> +     * allocated for other uses (e.g. modules, reserved-memory...).
>>>> +     *
>>>> +     * On MPU systems we need to pre-reserve regions that were allocated for
>>>> +     * other uses (e.g. modules, reserved-memory...).
>>> I'm not sure I understand this part of the comment with regards to
>>> populate_boot_allocator(). Could you please explain?
> 
> Maybe here we should just write that on MPU system we are populating the boot allocator with the
> static heap region, since static heap is mandatory for MPU.
> 
> What do you think?
The reason for the original comment was to explain why we need to call
populate_boot_allocator() that early (i.e. before setting up direct map and not
before setting up frametable). It's not about explaining why we need to populate
boot allocator because that is rather clear. In case of MPU I don't think there
is a reason for doing that early, so we might not need any reasoning.

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Nov 17 12:54:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 12:54:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163797.1490857 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKykn-00046S-7k; Mon, 17 Nov 2025 12:54:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163797.1490857; Mon, 17 Nov 2025 12: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 1vKykn-00046L-4w; Mon, 17 Nov 2025 12:54:45 +0000
Received: by outflank-mailman (input) for mailman id 1163797;
 Mon, 17 Nov 2025 12:54:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vKykl-00046F-M3
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 12:54:43 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9564fb9c-c3b4-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 13:54:41 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-641677916b5so7690117a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 04:54: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
 a640c23a62f3a-b734fad44b4sm1087418266b.28.2025.11.17.04.54.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 04:54: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: 9564fb9c-c3b4-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763384081; x=1763988881; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=azUTTkjuzK6vEtrEgi2Y+qwm5iUB8cdU6DE096wgHNI=;
        b=RBjfU3q/wWIzorKf0zQb+RM/L1PEqX5Bn80MicJh2IQsPq7349QMvzW9yvK0BfEYu4
         bgpJvYubOtyTjE61WNVVmPWHxhTcUuo8OkWuUvv+gfyqZnajlXcP0rQCy20uSQCHluQH
         fTIzOcSS6IhnoAiO/z7vUv5wsv+jbckobWv76qfvHqjGIgQBKtjAb/CAWEotaNphXtqD
         igjGv3HkVfIG6+XXq3gN8TLn/yhmD0ZF3biC2b5GJZYATRxIeuOaGjTK9F8KFW6MNSvO
         avr6bbL4CWwE9QEkKH784X7+zEkuVcC8krTzjWyrsGyDzXKyMTFPV0/ULfqTmnsY1PlH
         PrjQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763384081; x=1763988881;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=azUTTkjuzK6vEtrEgi2Y+qwm5iUB8cdU6DE096wgHNI=;
        b=Ubg2heoMm9Mcs1ZKxFb/qFKKI5nHW3h3i+CaX0Vcb1EVIczVdEq6CEl9DXJUe3q9Q9
         BT/pkLJSE5q6K9bUfI2Xwg8BLRmqOOh/Wy8tttb0N12xwbBCv0lrCyZVFHo/plMKS1im
         GFj3/pyNS7ahGDcH1AD2c3L2JGoLfqyZI63ul5jaL9sxxhU9RPCyhZAJkW9sREwWbTAx
         H90rcf4W103AQjq74jxwSaSmTrm+HaXseHXMfiYKNzrQSB/k7kUp2fg5lSdrk9KYaOeN
         Qkk4/tDM8Fkxftg5SAYefDz3GVn2wYn5qMZEObTVFaVWpZ77Os2cFhkcAZZOQ+SMiLit
         Yxpw==
X-Forwarded-Encrypted: i=1; AJvYcCXLnnNL74DI2EQzz3ReHfnWdqGY4lSd5FYFIm6PC//OxHhM1mkaCrsP480rYq7r7yLYysiOvHI5rkQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwXd25z47n7j1EQl/SvWEv9lZuxjP9l9GJ9ax+Kwj+qhuNWAf9k
	vll5qIfbrPKabQ7F4e7GdJ8IGqC00U7KESQ1JALD2kp+9L0nHMIm/uB4/zKWkRLjtw==
X-Gm-Gg: ASbGncs6UFUUfhLQWKH4b+cyabikCIQskdWnEMTNPie3jdxPsNv2KnB0L9EEknkyvaj
	+dgKH4bpVXfQ7P4FNOoO8pcS/LVKCpkOciXaoptOaRCJgsNTzsto5Drua+0BNAPm1wlSVCn/IZE
	AzGOt0luLA64iFO+oFpgbFLULrM31HpOrvs1VqDBkoh4uwhWiH+pWAFScuV4r8LVKiajtwp9lgJ
	brpCEY04FuvomMhvkySo1LDNqxodl8V9rKbM1BhdrAKeA7jyCw649O4VVCUirH+Bl1kO3EuBu+k
	WQNDGWVJpRXKX4+Kue7P+WcnjICfvEmfyRoAn8qsbqARpLTTg9jRJHNAwEtdZQL2xk6mI89nyXV
	i+OWWbs+JeFoQMxMB6PrC4Vd1XBz2YtD3NGOQi7c1C0yGbhFC96S0dPnFGOLKTeqJcLrC5Yf151
	bvTBVcONNCIY+m88b7iPrwPA3CDRME4wMzU+W6dBxrRZfKGVxnIEjExWkg86z5P9ICm9oV+GTbx
	eE=
X-Google-Smtp-Source: AGHT+IFg/jUYp6o1TZzpZKDFNuZ+/CiT0VXtLdtvAM6y6c7slxW00gG1zn6XcStFsAMaprdl1kaZWQ==
X-Received: by 2002:a17:907:2d1e:b0:b73:7964:10ca with SMTP id a640c23a62f3a-b73796417ffmr852671666b.61.1763384081149;
        Mon, 17 Nov 2025 04:54:41 -0800 (PST)
Message-ID: <f42863be-aef8-4a7b-915b-235bd89a8341@suse.com>
Date: Mon, 17 Nov 2025 13:54:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] build: add make macro for making file from file.in
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-2-jgross@suse.com>
 <936632a3-d713-4183-b1db-5a554b617b74@suse.com>
 <7577ceec-1271-4569-91f1-fd7197a33991@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: <7577ceec-1271-4569-91f1-fd7197a33991@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.11.2025 13:48, JÃ¼rgen GroÃŸ wrote:
> On 17.11.25 13:29, Jan Beulich wrote:
>> On 14.11.2025 12:32, Juergen Gross wrote:
>>> --- a/Config.mk
>>> +++ b/Config.mk
>>> @@ -159,6 +159,19 @@ define move-if-changed
>>>   	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
>>>   endef
>>>   
>>> +PATH_FILES := Paths
>>> +INC_FILES := $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
>>> +
>>> +include $(INC_FILES)
>>
>> Is any of the above part of introducing the macro? "Paths" is already a
>> specific case of holding patterns that want replacing. In turn ...
>>
>>> +BUILD_MAKE_VARS := $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).mk.in))
>>
>> ... it's not quite clear to me how it can be $(PATH_FILES) here.
> 
> See patch 4.
> 
> PATH_FILES is specifying the .mk files containing the marker definitions.
> I need the ability to have multiple such files in order to be able to let
> tools/configure build its own definitions.

That's a good example - why would that affect the stubdom/ part of the tree?
Imo what pattern file(s) to use wants leaving to the invokee of the macro,
not pinning down globally for everyone.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 12:55:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 12:55:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163805.1490867 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKylZ-0004d7-G6; Mon, 17 Nov 2025 12:55:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163805.1490867; Mon, 17 Nov 2025 12:55:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKylZ-0004d0-DJ; Mon, 17 Nov 2025 12:55:33 +0000
Received: by outflank-mailman (input) for mailman id 1163805;
 Mon, 17 Nov 2025 12:55: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=Lf15=5Z=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vKylY-0004cr-VB
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 12:55:33 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b2b07718-c3b4-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 13:55:30 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-64369269721so2628409a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 04:55:30 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-6433a3f96e2sm10093420a12.16.2025.11.17.04.55.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 04:55: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: b2b07718-c3b4-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763384130; x=1763988930; 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=6meMSWXBwWYWEbph4UsfbB6H2faOmWr6FxRXUfcFges=;
        b=Jl7heS5VYhCJV6eCVgtrHWc1x0mgdnfm0tHyk634DyfTC3x3hRpPb1jUg/cbpYniJu
         KS1WYjf1nnpatjXyHGeUptB2cVMZnNwiIurC3ldlsGInKFlGs5hm/GcQPtGs7mwwcLxK
         ug1pSGXdP9APed4Jag9mM6aSq9TfBJKwGkajgAjUB/T592uaIH2YNP3euhV/KqN+XtiD
         1hlMJ5ElH974jd2Zk2POmFC7YpgFYSwave17T3ayq92NSJ9+4ulNkT5HOGXEC5b6VPri
         twond38l8NHLYkkSXtKI7tHIH8/JRMK1sexkvA6nnf9agfj9fiIt7dr7DUJvfyMtyQ16
         bL8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763384130; x=1763988930;
        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=6meMSWXBwWYWEbph4UsfbB6H2faOmWr6FxRXUfcFges=;
        b=tk5dZHisfT6M23fz7QGVpCGgF40+Uy4eoUedI27FbLjUJWCR1ttz4YtGO6odhJ120a
         prCIVjml8pxUuAG1U8pl6Df77MgyoKmQK6P1x6kSme/ArVUafhJrlB8MvhqMpH5IbDz1
         YhFhr7MJcV7DANSvxdyrQmGBKDZR7Njd+UB29jeO6Ty4b23zinFFp5oalawyL23mTbwC
         NvFcyYR6Mtmuvxa2QYVc0/jVElxbyrk+UuchZfS91iPYyLaffjtV2Cdu5YkRqV68Rh8h
         zNKf7pUURI7/d3LYbqtugjv3l2+W+H09APr5oz5aMQ63fVQPBQJAEycs3FIxfNOdlUSx
         WvHg==
X-Forwarded-Encrypted: i=1; AJvYcCUeEwHOg0UdMjVNVYQIjZE7XGQ8pegr4eCeinWZm9VHvfM3Y8QkD3ei63x5OzHAankadc/B67gHIzs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyPVTyKCRQHFMPi7QGokyL3qsPNEAaHFx0uwvHOX0pYklKdTyB/
	gXsdehoKmeCkfCRywTAS2NT+lICwH3DjcrFPxov/F0D8qv7EzpxBh6XGpQmS7uiviWA=
X-Gm-Gg: ASbGncvTcALOP+2pQy7jZ8Y1M5OHb8awVVhIgqvfE+/OFlaC3MyT5TfolCWq6LYN4AS
	oGuWNFGJfva/UMkf2ds7Bxbb25ECdK5D84AZNoCj72UUcIGUMSyDaBMDugIdrnAugCF7DvZcjVL
	GKdgyOwlqmqLPYIivIG/vENxIyeB7j+UFObrYb2ZGSlYqAr/SEBcxUmlEi1ibZhAD0+xJRkEpwd
	4iu10wgaEaKLDt2Ewg24kYTSieJ7OA7TK1e8HRqdCPlv4lX0/lIf9JEPD0q1FwhgIARAxhjeX21
	T+hrWzNk6hRZYhKiVYVEn9rJUgLLYDqfxoKrUu3XlJoCin/DL67uL1RuTISrveD3RGzNp5QsJ9r
	uvJAOuuAnz1HWyKv7zP8UD842RbjS7HhXe2k8G6eZxTrwf/E1r191EJRiBwIdvK2Ag9wJkszQLc
	YajJ5rPCBBHzKrflhd6Q6pu1pyrOvY0taMVP25XcdBp7WY2Wds+9Utz/7SQv9+zoiE5LcpwHsSh
	aL/REFn5Lx4aGsNQaysEfYMonWnZmVTTaMoRWcTu0BTuYXlNw==
X-Google-Smtp-Source: AGHT+IFnwEE3PfXgXzMOyhMmLD2WGS1MTOJzU1JB+74Q0skeQGWGVtPOt4gN2KzBR5GqKvLEbMNgzQ==
X-Received: by 2002:a05:6402:40c7:b0:640:e78f:f347 with SMTP id 4fb4d7f45d1cf-64350e8d394mr11888789a12.22.1763384130354;
        Mon, 17 Nov 2025 04:55:30 -0800 (PST)
Message-ID: <0ed9b152-6465-4736-be59-352d68b77e6f@suse.com>
Date: Mon, 17 Nov 2025 13:55:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/4] docs: replace @xxx@ markers at build time
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-3-jgross@suse.com>
 <7e24823f-cce1-4430-83f1-ebde6986efa4@citrix.com>
 <2de93313-9f1b-46a7-99c8-618281aff2f1@suse.com>
 <e4d19c4e-8eac-400f-8e3a-83684a290da6@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: <e4d19c4e-8eac-400f-8e3a-83684a290da6@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------MA660uVfzbH9uhSV7LWYR7xk"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------MA660uVfzbH9uhSV7LWYR7xk
Content-Type: multipart/mixed; boundary="------------SRc8k92vSgHgqu2ZRE1SJflO";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Message-ID: <0ed9b152-6465-4736-be59-352d68b77e6f@suse.com>
Subject: Re: [PATCH v2 2/4] docs: replace @xxx@ markers at build time
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-3-jgross@suse.com>
 <7e24823f-cce1-4430-83f1-ebde6986efa4@citrix.com>
 <2de93313-9f1b-46a7-99c8-618281aff2f1@suse.com>
 <e4d19c4e-8eac-400f-8e3a-83684a290da6@suse.com>
In-Reply-To: <e4d19c4e-8eac-400f-8e3a-83684a290da6@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=

--------------SRc8k92vSgHgqu2ZRE1SJflO
Content-Type: multipart/mixed; boundary="------------OPXftXlBhMLkZpx9kiPh1s9q"

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

T24gMTcuMTEuMjUgMTM6MzMsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxNC4xMS4yMDI1
IDE0OjAwLCBKw7xyZ2VuIEdyb8OfIHdyb3RlOg0KPj4gT24gMTQuMTEuMjUgMTI6NDAsIEFu
ZHJldyBDb29wZXIgd3JvdGU6DQo+Pj4gT24gMTQvMTEvMjAyNSAxMTozMiBhbSwgSnVlcmdl
biBHcm9zcyB3cm90ZToNCj4+Pj4gZGlmZiAtLWdpdCBhL2RvY3MvTWFrZWZpbGUgYi9kb2Nz
L01ha2VmaWxlDQo+Pj4+IGluZGV4IDM3Nzc2ZDMwM2MuLmU1ZjRhOGNhODYgMTAwNjQ0DQo+
Pj4+IC0tLSBhL2RvY3MvTWFrZWZpbGUNCj4+Pj4gKysrIGIvZG9jcy9NYWtlZmlsZQ0KPj4+
PiBAQCAtOCw4ICs4LDExIEBAIERBVEUJCTo9ICQoY2FsbCBkYXRlLCIrJVktJW0tJWQiKQ0K
Pj4+PiAgICBET0NfQVJDSEVTICAgICAgOj0gYXJtIHBwYyByaXNjdiB4ODZfMzIgeDg2XzY0
DQo+Pj4+ICAgIE1BTl9TRUNUSU9OUyAgICA6PSAxIDUgNyA4DQo+Pj4+ICAgIA0KPj4+PiAr
SU5fRklMRVMgOj0gbWFuL3hsLWRpc2stY29uZmlndXJhdGlvbi41LnBvZCBtYW4veGwtbmV0
d29yay1jb25maWd1cmF0aW9uLjUucG9kDQo+Pj4+ICtJTl9GSUxFUyArPSBtYW4veGwuMS5w
b2QgbWFuL3hsLmNmZy41LnBvZCBtYW4veGwuY29uZi41LnBvZA0KPj4+DQo+Pj4gU29ycnks
IEkgbWVhbnQgdG8gc2F5IHRoaXMgb24gdGhlIHByZXZpb3VzIHJldmlzaW9uLsKgIENhbiB3
ZSBwbGVhc2UgbGlzdA0KPj4+IHRoZXNlIG9uZSBwZXIgbGluZSwgZm9yIHRoZSBmdXR1cmUg
ZWFzZSBvZiBpbnNlcnRpbmcvcmVtb3ZpbmcuDQo+Pg0KPj4gT2theS4NCj4+DQo+Pj4gSXMg
SU5fRklMRVMgcmVhbGx5IGNvcnJlY3Q/wqAgVGhlc2UgYXJlIHRoZSBnZW5lcmF0ZWQgKG5v
bi0uaW4pIGZpbGVzLA0KPj4+IHJhdGhlciB0aGFuIHRoZSAuaW4gZmlsZXMgdGhlbXNlbHZl
cy7CoCBHRU5fRklMRVMgZnJvbSB2MSB3b3VsZCBzZWVtIHRvDQo+Pj4gYmUgYSBiZXR0ZXIg
Zml0Lg0KPj4NCj4+IEkgd2FudGVkIHRvIG1ha2UgY2xlYXIgdGhpcyBpcyByZWxhdGVkIHRv
ICouaW4gZmlsZXMuIEFuZCBJTUhPIEdFTl9GSUxFUw0KPj4gd2FzIHRvbyBnZW5lcmljIG9u
IGEgc2Vjb25kIHRob3VnaHQuDQo+Pg0KPj4gR0VORVJBVEVEX0ZST01fSU5fU1VGRklYRURf
RklMRVMgc2VlbXMgYSBsaXR0bGUgYml0IGNsdW1zeS4gOy0pDQo+PiBTZXJpb3VzbHksIGlm
IHlvdSBoYXZlIGFueSBiZXR0ZXIgbmFtZSwgSSdkIGJlIGhhcHB5IHRvIHVzZSBpdC4NCj4g
DQo+IEdFTl9QT0RfRklMRVMsIHNlZWluZyB0aGV5J3JlIGFsbCAqLnBvZD8NCg0KRm9yIHRo
aXMgY2FzZSwgbWF5YmUuIE9UT0ggaW4gY2FzZSBzb21lb25lIGFkZHMgYSAucG9kbWFuIGZp
bGUgd2UnZCBuZWVkDQp0byByZW5hbWUgYWdhaW4uDQoNCkFuZCBJIHRoaW5rIHVzaW5nIHRo
ZSBzYW1lIG1ha2UgdmFyaWFibGUgbmFtZSBpbiBhbGwgTWFrZWZpbGVzIG5lZWRpbmcgdG8N
CnNwZWNpZnkgKi5pbiBkZXJpdmVkIGZpbGVzIHdvdWxkIGJlIHByZWZlcmFibGUuDQoNCk1h
eWJlIElOX1RBUkdFVFM/DQoNCg0KSnVlcmdlbg0K
--------------OPXftXlBhMLkZpx9kiPh1s9q
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-----

--------------OPXftXlBhMLkZpx9kiPh1s9q--

--------------SRc8k92vSgHgqu2ZRE1SJflO--

--------------MA660uVfzbH9uhSV7LWYR7xk
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/Ey8FAmkbG0EFAwAAAAAACgkQsN6d1ii/Ey8t
uwf/S4KhWNd3Iy9EH+6uoLVDmonFPWXUM7OccFGOt+XyujoRa7kola6R3j9MEz3pcHFneONBKUY0
gSerX6Jihauby/mQLzBeGPwNvCnSbMkQP8ODEfkuqwk8dOUdBU9O+14eKG6XwD9iFrFOJDes26sW
KqHmjLRQdk6K63GUQSyGOhgdsJXvKnC88UAZ+yUFF30RGNXi2z0MoMf0v9WE0YLOocH2gfzBVvdO
4EddhoNAKDKR9gXUXxmXUnwIgSVBlwNmTtDS7Vg4Lw2eI+rYXYzRvOywWOBvL1G7H+Qwr4JUrQ5h
uFOxcPsyUCv3CJmxGXETl/nFMMnejyuRp2K0Rry6EQ==
=7i2t
-----END PGP SIGNATURE-----

--------------MA660uVfzbH9uhSV7LWYR7xk--


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 13:00:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 13:00:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163820.1490878 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKyqj-0006GE-3S; Mon, 17 Nov 2025 13:00:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163820.1490878; Mon, 17 Nov 2025 13: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 1vKyqi-0006G7-Vz; Mon, 17 Nov 2025 13:00:52 +0000
Received: by outflank-mailman (input) for mailman id 1163820;
 Mon, 17 Nov 2025 13:00: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vKyqh-0006G1-W9
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 13:00:51 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7173a6f0-c3b5-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 14:00:51 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b73161849e1so732153766b.2
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 05:00: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
 a640c23a62f3a-b734fb12d55sm1066391266b.33.2025.11.17.05.00.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 05:00: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: 7173a6f0-c3b5-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763384450; x=1763989250; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hR32BkG+qnm7Ig538z7j16ZWz1+yjSFqkFndhtSXAJ8=;
        b=arxSjLYtGiIUcyCAp4TJ24GIgnrXXX0i+QyOCkyTtT1JlhhX5RqCOx/K/fLYc+H10k
         0nU2ZlIRfJOxAobzTnIqGxS8MUDU+3Txk6hzdApbySfYbfhmbLtqDq/p3jZlF5VGQA3a
         sEmu3pk286mgT2bXXUr9iGPjt1T1MYJXa7vfb4/W7BQgAhdESgEylnKLI8x2wpljrmGS
         vCSmWP4qP72ktO8HyPwIwHVPF67ELuKWphPOOtMzSYNYTwkCAPMWlWSUPzoBIVKeUh/o
         FyGHLB79auc+GsT7Jln5+dspMabg0+sHLJjAwFcEAOPhiac56plZEVv5k4IwYpbhTpYa
         dxtQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763384450; x=1763989250;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hR32BkG+qnm7Ig538z7j16ZWz1+yjSFqkFndhtSXAJ8=;
        b=c+6Gli1iRwHaerjqQ2gTg6JjkdWNM+K+Zyy9FWvhxVFXKmk1Qoi7vfPdeNqDLURdIM
         t7YqmcheBHusTEiUwA4w0A366jlfpytuGzrFMKFbKdbNATrki443JTJPdH4Y8VsuQgg0
         lWidsOaRgPLFvCruOzZxeHVl+/CWhAejXGG1t76zyzj8/TNQYlQNKuHtFevdIb8oqISf
         QBRfQ8nvIaghZTRH9gP4d0nJ82P4BGlBPPv7F6PHBFjntn74+H5c+I0WiuE2rsYiQYuy
         dXnVkXUapj+eo3YGqZSf8YV+Lb7pylRgQAJG+3lonmG5dLVFIL7dk/0vyahON1Dt4dIQ
         oPhA==
X-Forwarded-Encrypted: i=1; AJvYcCX0Cnd+YyYzxszAg8SQ679JP9NuRyc3YA+rG6mOlhvCKJgwrDRF4SMyz+RXTgQGyssd098fiJKw/cs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxNLAaYmqBGr/wPh769jylJf+lAbMCWDo/1/1dszJleQVucqrJk
	lZViZPBKAU7cGN1Tq/Xeailcqd+IzoAOCYoF4tkzgOvbMU1a84hwEfwHfJt1VTCuUA==
X-Gm-Gg: ASbGnctptbLj1twFTIIxUN/wjmTetHN0IDzs6z8pr9tnfpbMtTz1a8gHWoPJ4Cna+PB
	MRiUXJSSY11zngsVCixl1zUNEsQLnj56tHNp+RvZMGoMDMpRdhK6eY0wl0NV/sNIKDwjkCYcFT6
	vQBgSdIMr7BdZlCS++O1jnPM1HLO3VBh/WxvpWLA9wa503cSwBNiZSHNNyao8tTOus4Sfw65DJ9
	t+p8ltlUAo6wGDSL0Rz+94PIKnPiDpoWwcSUJTMYovfydYSyel4Faol4uOSNdLAl1KCTc1Qw06v
	ptfJD3PaZfvC5R3XgXs6dLvxwSkj6wyiyh8s1I8tQYO+eDPq7K2CZUbGvLWa2HFGeL9fVhzcNnY
	DEwUqtQPj5GRxyGEBsLOCryszDEQtw+0G/3VZ2ztDYshKD7twJ6y6HdQ3WZCSJ1jF0YFQUbQ8gk
	CQl1S5Fnc49E4yGteMkw/XwLz9Y+d5HW3DhattLHXyzwcblkMhpbh1hTi6IEZUDzSi
X-Google-Smtp-Source: AGHT+IGivTba1mUcXbfNSJpz6zmj07VcjbKAKE1iNNss83SDjDdInfKhXIQFeIWW+6g/DGJha7vKvQ==
X-Received: by 2002:a17:906:24d9:b0:b73:9fea:331c with SMTP id a640c23a62f3a-b739fea3914mr266320766b.47.1763384450274;
        Mon, 17 Nov 2025 05:00:50 -0800 (PST)
Message-ID: <45c6d3dd-3901-4609-918b-ba6b685d6496@suse.com>
Date: Mon, 17 Nov 2025 14:00:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/4] docs: replace @xxx@ markers at build time
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-3-jgross@suse.com>
 <7e24823f-cce1-4430-83f1-ebde6986efa4@citrix.com>
 <2de93313-9f1b-46a7-99c8-618281aff2f1@suse.com>
 <e4d19c4e-8eac-400f-8e3a-83684a290da6@suse.com>
 <0ed9b152-6465-4736-be59-352d68b77e6f@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: <0ed9b152-6465-4736-be59-352d68b77e6f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.11.2025 13:55, JÃ¼rgen GroÃŸ wrote:
> On 17.11.25 13:33, Jan Beulich wrote:
>> On 14.11.2025 14:00, JÃ¼rgen GroÃŸ wrote:
>>> On 14.11.25 12:40, Andrew Cooper wrote:
>>>> On 14/11/2025 11:32 am, Juergen Gross wrote:
>>>>> diff --git a/docs/Makefile b/docs/Makefile
>>>>> index 37776d303c..e5f4a8ca86 100644
>>>>> --- a/docs/Makefile
>>>>> +++ b/docs/Makefile
>>>>> @@ -8,8 +8,11 @@ DATE		:= $(call date,"+%Y-%m-%d")
>>>>>    DOC_ARCHES      := arm ppc riscv x86_32 x86_64
>>>>>    MAN_SECTIONS    := 1 5 7 8
>>>>>    
>>>>> +IN_FILES := man/xl-disk-configuration.5.pod man/xl-network-configuration.5.pod
>>>>> +IN_FILES += man/xl.1.pod man/xl.cfg.5.pod man/xl.conf.5.pod
>>>>
>>>> Sorry, I meant to say this on the previous revision.Â  Can we please list
>>>> these one per line, for the future ease of inserting/removing.
>>>
>>> Okay.
>>>
>>>> Is IN_FILES really correct?Â  These are the generated (non-.in) files,
>>>> rather than the .in files themselves.Â  GEN_FILES from v1 would seem to
>>>> be a better fit.
>>>
>>> I wanted to make clear this is related to *.in files. And IMHO GEN_FILES
>>> was too generic on a second thought.
>>>
>>> GENERATED_FROM_IN_SUFFIXED_FILES seems a little bit clumsy. ;-)
>>> Seriously, if you have any better name, I'd be happy to use it.
>>
>> GEN_POD_FILES, seeing they're all *.pod?
> 
> For this case, maybe. OTOH in case someone adds a .podman file we'd need
> to rename again.
> 
> And I think using the same make variable name in all Makefiles needing to
> specify *.in derived files would be preferable.
> 
> Maybe IN_TARGETS?

Better than IN_FILES, but still potentially ambiguous. How about sticking
to IN_FILES but indeed enumerating the .in there (zapping the suffix upon
use)? And/or would $(wildcard <path>/*.in) perhaps make sense to use?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 13:03:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 13:03:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163835.1490891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKyt3-000707-J7; Mon, 17 Nov 2025 13:03:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163835.1490891; Mon, 17 Nov 2025 13:03:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKyt3-000700-GW; Mon, 17 Nov 2025 13:03:17 +0000
Received: by outflank-mailman (input) for mailman id 1163835;
 Mon, 17 Nov 2025 13:03: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=Lf15=5Z=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vKyt2-0006zr-8g
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 13:03:16 +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 c4f0bc4d-c3b5-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 14:03:11 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-47755de027eso30027835e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 05:03:11 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42b53f0b617sm25868738f8f.31.2025.11.17.05.03.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 05: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: c4f0bc4d-c3b5-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763384590; x=1763989390; 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=PX8DVLhAzj+IMyI7KQqW/GlGHYIN1QtGf80VOt1J51k=;
        b=X8npdW84N8ChARFAzDnifW/y6KbjQZbPPUm+c4S4sv2ridRvl7+Wm0+cEQ1SG5whrg
         29p1uNPW3x3e1w4sgukuOJmGoUjBgOiYrtyDQ3/xVZBzg/6yhUXKe2CcT8xnnqIr4hVz
         EJnuvgZ8DerXMMXgQ0X4paOIQ2vjdt+wxvwuKd5eDeExmlOAQ1BpjvaSTKtWiC+4ArgO
         B4aL66QQNaTddtvSSLwoHPDYCZcmjFO19WTxNgIahmsnoOEetEHETRCxWM19MWxvKikg
         sO5GTQ4qKEn/Vmp4+M308cGIEuN8hOSMsXxTk7tNOvpASzOsqowXd25DOqkUJLoNuX8t
         epjQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763384590; x=1763989390;
        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=PX8DVLhAzj+IMyI7KQqW/GlGHYIN1QtGf80VOt1J51k=;
        b=blkpz84QzgHw255XABxv444ls6loNnOaeYG+DRHw9PtOvzCIZPegCgHPLR4tg85ol6
         aRHutrzBUb3QGZpSrsyEM5Ycp5UYf/KYjbyrtmXTbAInxmMWFaKRd8x7A2SIMS1mBJBP
         NmAlSqYSPUyNqwYo8Lj3BGNDuHmf5TvBhm+38JCOekfoAQgdDPdjtKtsVkW0rFmhRcyw
         OQgpDtPGLcDCsa/1PHr1BcrLZVpfUArYh733akxYXRi23LkIdaaaC9KVhZ+ahBjHCMZw
         5YYynQ+R4U04ddPF1J7aQA0Ls9OLKdJiLTB+X+hRU9uKAsuZVerweAnoClk/XpQ+PZIn
         9q+Q==
X-Forwarded-Encrypted: i=1; AJvYcCXXQE6IKaS17f4KjLijRfprOGHfj/TWs+EfFLM+W5n9nOxKY2M6sWSHnaXGztCDKwF+YET5bV2y84k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw7reTij7jhvg/plJWkdh3tqrc69zNyAcUMmIBsm1YlQZkhPV12
	IEsDBMU8GbyEVGQDwNPsV5BffpGccIHMF0jwShyg+ld2KX9MbM7dXnE7Jl/NqysdeEU=
X-Gm-Gg: ASbGncuzoZsCTpkd/VQgnsNgmv3PdezftkIY5jglozfNkRtaXdT1BYO3AvM1/Z8Si84
	nPK3bo6EUur3qR6a1TPKMCE27G8+Antll06tQylml8uCUq28bLYlPwN4e6JlxNfjy/KDSoks20x
	Zasuh0QA9XedHAhKIo+3sy2lqm/e+18MoeSJvSc5n/ejPvlHFaN26IEJNBehaYN2EbL/+q1Uuxo
	oQ4+G4i7231qbPzkatnBXkY3ahpJq7d+BaXrumQ1LJqb2ZzHyxZgke6s7seY2wHKf9WiosuqAeC
	SohhlW5+oN+EX5cVeqNB/cEN+YLjh0Z9e66tzFLxbja12G3vArM5pHZVLAACo6hYS8YbsgG9Z/p
	Cn2haSI0V/r6Pmw8PW1AqgRYYmpk5iUmp5G6LsyF8MFSRRJ/x5koHJxAHAoiQA4emeECJaT8w+G
	FfdcAl1+wzrlEJqm4fa7QMpKSE3uszQ2YMopO8jQpqflRGvALr3xV/uJITWxyesmJQcatKdBUdj
	fddckJjb1hkF3XBZJacKxBlEAKhoJLMuHCqM+htAQ84M+4z6g==
X-Google-Smtp-Source: AGHT+IFloL/fYoYeC7VPsGU1S1jX1qdV3DkkLHgMiF9JaJ+8JWU1OZIFTyiaJL4OcU5nrf0RRZwaLA==
X-Received: by 2002:a05:600c:1986:b0:477:28c1:26ce with SMTP id 5b1f17b1804b1-4778fe41be4mr111125005e9.7.1763384590274;
        Mon, 17 Nov 2025 05:03:10 -0800 (PST)
Message-ID: <8b2e64a9-c4a3-4b0e-9b9f-3176f44dc249@suse.com>
Date: Mon, 17 Nov 2025 14:03:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] build: add make macro for making file from file.in
To: Jan Beulich <jbeulich@suse.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>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-2-jgross@suse.com>
 <468c6686-43e5-4c35-8366-58558f199e22@citrix.com>
 <cc90d18b-f88e-49d9-a55f-b7035ce43167@suse.com>
 <113c9cc1-5e39-4a54-88de-dd2b70b90a49@suse.com>
 <88e6b9d8-21b6-4b37-97fc-d35b90ed9b49@suse.com>
 <c1b9bfb6-8ff8-4f60-953a-0f23818b5f95@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: <c1b9bfb6-8ff8-4f60-953a-0f23818b5f95@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------or3nJCuJEyH1aO325Ecv7cPq"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------or3nJCuJEyH1aO325Ecv7cPq
Content-Type: multipart/mixed; boundary="------------i5b22Q0HRqVeX10PiI6iMDbE";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.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>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Message-ID: <8b2e64a9-c4a3-4b0e-9b9f-3176f44dc249@suse.com>
Subject: Re: [PATCH v2 1/4] build: add make macro for making file from file.in
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-2-jgross@suse.com>
 <468c6686-43e5-4c35-8366-58558f199e22@citrix.com>
 <cc90d18b-f88e-49d9-a55f-b7035ce43167@suse.com>
 <113c9cc1-5e39-4a54-88de-dd2b70b90a49@suse.com>
 <88e6b9d8-21b6-4b37-97fc-d35b90ed9b49@suse.com>
 <c1b9bfb6-8ff8-4f60-953a-0f23818b5f95@suse.com>
In-Reply-To: <c1b9bfb6-8ff8-4f60-953a-0f23818b5f95@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=

--------------i5b22Q0HRqVeX10PiI6iMDbE
Content-Type: multipart/mixed; boundary="------------VV0ZDA0GiNTVuVk0bKDhiAzL"

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

T24gMTcuMTEuMjUgMTM6NTEsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxNy4xMS4yMDI1
IDEzOjM3LCBKw7xyZ2VuIEdyb8OfIHdyb3RlOg0KPj4gT24gMTcuMTEuMjUgMTM6MjQsIEph
biBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDE0LjExLjIwMjUgMTM6NTQsIErDvHJnZW4gR3Jv
w58gd3JvdGU6DQo+Pj4+IE9uIDE0LjExLjI1IDEyOjQyLCBBbmRyZXcgQ29vcGVyIHdyb3Rl
Og0KPj4+Pj4gT24gMTQvMTEvMjAyNSAxMTozMiBhbSwgSnVlcmdlbiBHcm9zcyB3cm90ZToN
Cj4+Pj4+PiBkaWZmIC0tZ2l0IGEvQ29uZmlnLm1rIGIvQ29uZmlnLm1rDQo+Pj4+Pj4gaW5k
ZXggZTE1NTZkZmJmYS4uZDIxZDY3OTQ1YSAxMDA2NDQNCj4+Pj4+PiAtLS0gYS9Db25maWcu
bWsNCj4+Pj4+PiArKysgYi9Db25maWcubWsNCj4+Pj4+PiBAQCAtMTU5LDYgKzE1OSwxOSBA
QCBkZWZpbmUgbW92ZS1pZi1jaGFuZ2VkDQo+Pj4+Pj4gICAgIAlpZiAhIGNtcCAtcyAkKDEp
ICQoMik7IHRoZW4gbXYgLWYgJCgxKSAkKDIpOyBlbHNlIHJtIC1mICQoMSk7IGZpDQo+Pj4+
Pj4gICAgIGVuZGVmDQo+Pj4+Pj4gICAgIA0KPj4+Pj4+ICtQQVRIX0ZJTEVTIDo9IFBhdGhz
DQo+Pj4+Pj4gK0lOQ19GSUxFUyA6PSAkKGZvcmVhY2ggZiwgJChQQVRIX0ZJTEVTKSwgJChY
RU5fUk9PVCkvY29uZmlnLyQoZikubWspDQo+Pj4+Pj4gKw0KPj4+Pj4+ICtpbmNsdWRlICQo
SU5DX0ZJTEVTKQ0KPj4+Pj4+ICsNCj4+Pj4+PiArQlVJTERfTUFLRV9WQVJTIDo9ICQoZm9y
ZWFjaCBmLCAkKFBBVEhfRklMRVMpLCAkKHNoZWxsIGF3ayAnJCQyID09ICI6PSIgeyBwcmlu
dCAkJDE7IH0nICQoWEVOX1JPT1QpL2NvbmZpZy8kKGYpLm1rLmluKSkNCj4+Pj4+PiArDQo+
Pj4+Pj4gKyMgUmVwbGFjZSBAeHh4QCBtYXJrZXJzIGluICQoMSkuaW4gd2l0aCAkKHh4eCkg
dmFyaWFibGUgY29udGVudHMsIHdyaXRlIHRvICQoMSkNCj4+Pj4+PiArZGVmaW5lIGFwcGx5
LWJ1aWxkLXZhcnMNCj4+Pj4+PiArICQoMSk6ICQoMSkuaW4NCj4+Pj4+PiArCXNlZCAkJChm
b3JlYWNoIHYsICQkKEJVSUxEX01BS0VfVkFSUyksIC1lICdzI0AkJCh2KUAjJCQoJCQodikp
I2cnKSA8JCQ8ID4kJEANCj4+Pj4+PiArZW5kZWYNCj4+Pj4+DQo+Pj4+PiBTaG91bGRuJ3Qg
dGhpcyB3cml0ZSB0byBhIHRtcCBmaWxlLCBhbmQgdXNlIG1vdmUtaWYtY2hhbmdlZD/CoCBN
b3N0IG9mDQo+Pj4+PiB0aGUgdGltZSB0aGUgbWFya2VycyB3b24ndCBoYXZlIGNoYW5nZWQs
IGFuZCB3ZSdsbCB3YW50IHRvIHNob3J0IGNpcmN1aXQNCj4+Pj4+IGRlcGVuZGVudCBydWxl
cy4NCj4+Pj4NCj4+Pj4gSSBjYW4gc2VlIHRoaXMgYmVpbmcgYW4gYWR2YW50YWdlIHdoZW4g
ZS5nLiBnZW5lcmF0aW5nIGhlYWRlciBmaWxlcywgYXMNCj4+Pj4gdGhvc2UgYmVpbmcgZ2Vu
ZXJhdGVkIGFnYWluIHdvdWxkIHBvdGVudGlhbGx5IGNhdXNlIGxvdHMgb2YgcmVidWlsZHMu
DQo+Pj4+DQo+Pj4+IEluIHRoaXMgY2FzZSBJIGNhbiBoYXJkbHkgc2VlIGFueSBjYXNlIHdo
ZXJlIG1ha2Ugd291bGRuJ3QgZG8gdGhlIHJpZ2h0DQo+Pj4+IHRoaW5nIGFscmVhZHkuIEVp
dGhlciB0aGUgKi5pbiBmaWxlIGlzIG5ld2VyIHRoYW4gdGhlIGdlbmVyYXRlZCBmaWxlIGR1
ZQ0KPj4+PiB0byBhIGdpdCB1cGRhdGUgb3IgYSBtYW51YWwgZWRpdCwgc28gbWFrZSB3aWxs
IHJlZ2VuZXJhdGUgdGhlIHRhcmdldCAoYW5kDQo+Pj4+IHRoaXMgaXMgd2hhdCB3ZSB3YW50
KSwgb3IgdGhlICouaW4gZmlsZSBoYXNuJ3QgY2hhbmdlZCwgc28gbWFrZSB3b24ndA0KPj4+
PiByZWdlbmVyYXRlIHRoZSBmaWxlIGFzIGl0IGlzIG5ld2VyIHRoYW4gdGhlICouaW4gZmls
ZSBhbHJlYWR5Lg0KPj4+Pg0KPj4+PiBPciBkaWQgSSBtaXNzIHNvbWUgYXNwZWN0Pw0KPj4+
DQo+Pj4gQXJlbid0IHNvbWUgb2YgdGhlIGdlbmVyYXRlZCBmaWxlcyBNYWtlZmlsZSBmcmFn
bWVudHM/IFRoZW0gYmVpbmcgcmUtZ2VuZXJhdGVkDQo+Pg0KPj4gTm8uDQo+Pg0KPj4gTWFu
LXBhZ2VzLCBzaGVsbCBzY3JpcHRzIGFuZCBzb21lIE9jYW1sIGZpbGVzIChvbmUgY29uZmln
IGZpbGUgYW5kIG9uZSAubWwgZmlsZSwNCj4+IHdoaWNoIGlzIHNpbWlsYXIgdG8gYW4gaW5j
bHVkZSBmaWxlIEkgYmVsaWV2ZSkuDQo+Pg0KPj4+IG1lYW5zIG1ha2UgcmUtaW52b2tpbmcg
aXRzZWxmLCB3aGljaCBjb3VsZCBiZSBhdm9pZGVkIGlmIHRoZSBjb250ZW50cyBkb24ndA0K
Pj4+IHJlYWxseSBjaGFuZ2UuIChUaGlzIGlzbid0IGp1c3QgYSBwZXJmb3JtYW5jZSBjb25j
ZXJuOyB0aGlzIHJlLWludm9jYXRpb24gaGFzDQo+Pj4gYmVlbiB0aGUgc291cmNlIG9mLCB3
ZWxsLCBzdXJwcmlzaW5nIGJlaGF2aW9yIGluIGNlcnRhaW4gY2FzZXMuKQ0KPj4NCj4+IEkg
c3RpbGwgZG9uJ3Qgc2VlIGEgY2FzZSB3aGVyZSBtYWtlIHdvdWxkIGNvbnNpZGVyIHJlYnVp
bGRpbmcgdGhlIGZpbGUgZnJvbQ0KPj4gaXRzIC5pbiBmaWxlIHdpdGhvdXQgdGhlIC5pbiBm
aWxlIGhhdmluZyBjaGFuZ2VkLCB0aHVzIHJlc3VsdGluZyBpbiB0aGUgYnVpbHQNCj4+IGZp
bGUgdG8gY2hhbmdlLCB0b28uDQo+IA0KPiBBcyBBbmRyZXcgaW5kaWNhdGVkLCBQYXRocy5t
ayBtaWdodCBoYXZlIGNoYW5nZWQsIHNvIGF0IHRoZSB2ZXJ5IGxlYXN0IGFuDQo+IGV4cGxp
Y2l0IGRlcGVuZGVuY3kgd291bGQgbmVlZCBhZGRpbmcuIEJ1dCBhcyBhbGx1ZGVkIHRvIGVs
c2V3aGVyZSwgSSdtIG5vdA0KDQpZZXMsIGFuZCBJIHNhaWQgdGhhdCBhbHJlYWR5Lg0KDQo+
IHF1aXRlIGNvbnZpbmNlZCBQYXRocy5tayBzaG91bGQgYmUgaGFyZC1jb2RlZCBhcyB0aGUg
c29sZSBzb3VyY2Ugb2YgcGF0dGVybnMNCj4gaW4gQ29uZmlnLm1rLiBBdCB0aGUgcG9pbnQg
ZnVydGhlciBzdWNoIGZpbGUgY29tZSBpbnRvIHBsYXksIGRlYWxpbmcgd2l0aCB0aGUNCj4g
ZGVwZW5kZW5jaWVzIG1pZ2h0IGdldCBpbnRlcmVzdGluZyAvIGNsdW1zeS4NCg0KU2VlIG15
IGFuc3dlciB0byB5b3VyIG5leHQgcmVwbHkuDQoNCj4gDQo+PiBXZWxsLCB3aXRoIG9uZSBw
cm9iYWJseSB2ZXJ5IHJhcmUgZXhjZXB0aW9uOiBpbiBjYXNlIGENCj4+IGRpZmZlcmVudCBA
bWFya2VyQCBpcyB1c2VkIGluIHRoZSAuaW4gZmlsZSwgYnV0IHdpdGhvdXQgY2hhbmdpbmcg
dGhlIHJlc3VsdGluZw0KPj4gZmlsZSBkdWUgdG8gb2xkIGFuZCBuZXcgbWFya2VyIHJlc3Vs
dGluZyBpbiB0aGUgc2FtZSBvdXRwdXQuDQo+Pg0KPj4gSW4gY2FzZSB3ZSByZWFsbHkgY2Fy
ZSBhYm91dCBzdWNoIGNhc2VzLCB3ZSBzaG91bGQgdGhpbmsgYWJvdXQgdXNpbmcNCj4+IG1v
dmUtaWYtY2hhbmdlZCBldmVyeXdoZXJlLCBhcyBlLmcuIGJ1aWxkaW5nIGEgcHJvZ3JhbSB3
aXRoICRIT1NUQ0MgY291bGQNCj4+IHJlc3VsdCBpbiBhbiB1bmNoYW5nZWQgYmluYXJ5IGV2
ZW4gd2l0aCBzb3VyY2UgZmlsZXMgaGF2aW5nIGNoYW5nZWQsIGFuZCB0aGUNCj4+IHJlc3Vs
dGluZyBwcm9ncmFtIGNvdWxkIGJlIHVzZWQgdG8gZ2VuZXJhdGUgb3RoZXIgZmlsZXMgLi4u
DQo+IA0KPiBGb3Igc29tZSBvZiB0aGUgY2FzZXMgdGhpcyBtaWdodCBhY3R1YWxseSBiZSB3
b3J0aHdoaWxlLiBJdCBhbGwgZGVwZW5kcyBvbg0KPiBob3cgbXVjaCBvZiBhIGtub2NrLW9u
IGVmZmVjdCB0aGUgcmUtYnVpbGRpbmcgb2YgYSBwYXJ0aWN1bGFyIGZpbGUgaGFzLg0KDQpB
cyBsb25nIGFzIHRoZSBlZmZlY3QgaXMgbm90IFdST05HICh3aGljaCBpc24ndCB0aGUgY2Fz
ZSB3aXRoIG15IHBhdGNoIHNlcmllcyksDQpJIHRoaW5rIHdlIGhhdmUgdG8gY29uc2lkZXIg
aG93IG9mdGVuIHRoaXMgd291bGQgYmUgdGhlIGNhc2UuDQoNCk9wdGltaXppbmcgdGhlIGJ1
aWxkIHRpbWUgZm9yIG9uZSBjYXNlIGluIDEwLjAwMCBidWlsZHMgKGFuZCBJIHRoaW5rIHRo
ZSByYXRpbw0KaW4gdGhlIGNhc2Ugb2YgbXkgc2VyaWVzIGlzIGV2ZW4gbW9yZSBleHRyZW1l
KSB3aGlsZSBtYWtpbmcgdGhlIGJ1aWxkIHRpbWUgZXZlbg0Kb25seSBhIHRpbnkgYml0IGxv
bmdlciBmb3IgYWxsIHRoZSBvdGhlciBjYXNlcyBpcyBhIGJhZCBpZGVhIElNSE8uIEFuZCB0
aGUgYnVpbGQNCnRpbWUgd2lsbCBiZSBzbG93ZXIgd2l0aCB1c2luZyBhIHRtcCBmaWxlIGFu
ZCBpbnZva2luZyB0aGUgbW92ZS1pZi1jaGFuZ2VkDQptYWNyby4NCg0KDQpKdWVyZ2VuDQo=

--------------VV0ZDA0GiNTVuVk0bKDhiAzL
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-----

--------------VV0ZDA0GiNTVuVk0bKDhiAzL--

--------------i5b22Q0HRqVeX10PiI6iMDbE--

--------------or3nJCuJEyH1aO325Ecv7cPq
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/Ey8FAmkbHQ0FAwAAAAAACgkQsN6d1ii/Ey87
dwf/ZTxhIjkUts7GBMrDtl8lBWw4x0XRN4vhUjZT1hyYovc0tBQbgtGWZFPUqHlDSqrNvSQV8uV3
XnT4dCebGpkKws7Omuw/SlXY+tJYeqFJOdHVxeAjU/z9+PPTF3BknoeiN2m97JtoqzI+Rr5t1K0a
jTprTMmpY1loi8ln0qCAGCMkhYHjjtILPVkpTWGtLPXIowHaZaORshj3/mIesJ8BznSSP/U+3J6n
IS8VXb85SMmj4VGb69Jjb++4UtiX9RIiZ9/STQSKFcoKc/dxtkUC9wU2tVOZrUINfHVJCgXPH2Ok
RiZzHrymNQ73b07LrA556yvt5qW6S+dvOVQdIZ2mXg==
=UvXS
-----END PGP SIGNATURE-----

--------------or3nJCuJEyH1aO325Ecv7cPq--


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 13:04:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 13:04:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163846.1490901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKyuM-0007d0-UE; Mon, 17 Nov 2025 13:04:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163846.1490901; Mon, 17 Nov 2025 13: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 1vKyuM-0007ct-Rd; Mon, 17 Nov 2025 13:04:38 +0000
Received: by outflank-mailman (input) for mailman id 1163846;
 Mon, 17 Nov 2025 13: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=T/DW=5Z=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vKyuL-0007cl-LG
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 13:04:37 +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 f6900479-c3b5-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 14:04:35 +0100 (CET)
Received: from SJ0PR03CA0221.namprd03.prod.outlook.com (2603:10b6:a03:39f::16)
 by SJ2PR12MB8928.namprd12.prod.outlook.com (2603:10b6:a03:53e::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.22; Mon, 17 Nov
 2025 13:04:29 +0000
Received: from SJ1PEPF00001CE2.namprd05.prod.outlook.com
 (2603:10b6:a03:39f:cafe::df) by SJ0PR03CA0221.outlook.office365.com
 (2603:10b6:a03:39f::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.22 via Frontend Transport; Mon,
 17 Nov 2025 13:04:30 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF00001CE2.mail.protection.outlook.com (10.167.242.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Mon, 17 Nov 2025 13:04:28 +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; Mon, 17 Nov
 2025 05:04:28 -0800
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 17 Nov
 2025 05:04:27 -0800
Received: from [10.252.147.171] (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, 17 Nov 2025 05:04:26 -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: f6900479-c3b5-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UEbcW9b5rzjU2I8zTYzcBJGcGC2QbEexcR3l2NSc9nvnLJuu7/FfRKMBDhasQnAyL4l5Oqa2mxQbvQMUmvhJs9FbrizcWE3DJL5dCx/HodnrJl8S9b17li2dY+f1+mioeR2EVNNcvH/IqkCnQbFMvQcd0TaYabhiH85LGW6vt445zdCI1PDXuDxOQK9uZdiPP5QEr28W9FubO09QNwoCxFJ/9E1m4WLNxZTP11a+kmls8vxtKj5j7uy3anYdBx7jVntFShfCjoSHoE0zTrzeY5r99XAmXb/m9jB2APhTs0UmU5ACMzgPSiEx52KJRdVxIQjn8z4Y1zPUK5ONoS+j1Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RY3G1kN8XBp108ReZMKdPSvu5GhXOk80ilCtWFY+Pz0=;
 b=QVxY4F7pjULz9KDy1feSizJc9wZTIVf2/cUvC9tdnQ9Vucu4wJNJsG1lueJAz/CKDTK0ma6LjauA6Cfem55EndnvvmWV3oYAWMS2G08SIxYIm7naHtYjrzlv6b703W6zgNoVMKNwj5AbdCX0mi7dRVriVMxHbqmUI+a6/RugkUzgSFVnGZtieCuITozba9LmhMR4P/A+9R6XCFBqkHqh6NBtAtaYXVejf9AYyofQ0zAooOEV46RNRkpVe+ghFZwzStOC7385Y1h64DuqlL2cAmQ0qHoWSd3OXkpnKosB7abI4DaJ7r+j070tQQOnSqO0hBL+PtDLn2wCCHzS9C0Cmw==
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=RY3G1kN8XBp108ReZMKdPSvu5GhXOk80ilCtWFY+Pz0=;
 b=roi9bhu6/CwCgVOWOa4dg8b3NnHyw80VcIu634J5L2zXEh/cP54LbcJKXTF1F+YjZ9L5NOSC0quud6sujKYD3XGXN8SucWjbgpJCSv1f6m2MJz68ao2R6uvICOhhhSrrXZ5Vxs9JcWNax8/7dp4kPk8XPomPDxreHfE2jcINJdU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <49e88ba6-b760-4f8c-a003-12d3bc893163@amd.com>
Date: Mon, 17 Nov 2025 14:04:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] arm/mpu: Implement reference counting for
 inclusive regions
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: <20251111101601.4171120-1-harry.ramsey@arm.com>
 <20251111101601.4171120-3-harry.ramsey@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20251111101601.4171120-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: SJ1PEPF00001CE2:EE_|SJ2PR12MB8928:EE_
X-MS-Office365-Filtering-Correlation-Id: 1e7ba6cd-2236-4362-bfc2-08de25d9d795
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?SVRadW9uSU9QbVgzNFdJYUpidU1VbE5YUE9xUjd1cUo0QjMrblZoYWh1c0hS?=
 =?utf-8?B?Z3FCK3p6QnkrZUN2ZnpVM2xLL21RUHdReCt1K2FZcnkraVNIYWRrQUViQzZq?=
 =?utf-8?B?eWpsQTlNb3RoNHhrMVk5dzZiMkZVMXR4S241QnFPckhVK282KzBUdUN4enlq?=
 =?utf-8?B?Tkw2dHdNRjFqTTZJTVpEaUdKS2lOVkhIRU1ZV2lSdmZOYU1jUnVHQ0tnV2ZS?=
 =?utf-8?B?SkNVZmhuZnJXNE1aM1c4eFluTTZDOHV1bU42NXh5Q2xtUUROSm1haGNDazlZ?=
 =?utf-8?B?bDVhTjNRSEtJREo4TDNleVRBMVp3eGVDcitBMmhsU0IvUlp5ak00N2VqQjRw?=
 =?utf-8?B?VXU1elJ1SXFIcDRpYmlHZ25jVnp1M25NaHYxWlpHNGRiZE1qYXlKSkkyZTRv?=
 =?utf-8?B?cGtYamdxSmxOUVJuclVRdEY4R2VhcFNzejRtRTJTbXBJdGxYMWZOd1huN1BZ?=
 =?utf-8?B?bURGYmNUalg2VVAwcEVpK0dXM3VhOFhxTmE0US9jRUdrbU5pdHhpcklNeis3?=
 =?utf-8?B?TUFSaUdsbGxzMUIvR3RWVXdsWm5DeW4xNXhnNlNSZmRrWm1RdTliZVFDR3JO?=
 =?utf-8?B?VUtOWi9zNCtlcU02WThOYVh0c0R4NGMxei8zbHUyb2lETktjWGlnK2lOU1l0?=
 =?utf-8?B?RDFJdXR5ejB2MWlMTmJ0eTNsSmRVWWs0aFI2ckVoUDRkSUVYMlprZ0JFK240?=
 =?utf-8?B?eG9YRGZyaERDY3FsalZCejV0V05DVmwweXFzcERIeHlxMi94dExONy92QkRI?=
 =?utf-8?B?eXI2S3Nyb3ppY2E5OXV4ekgrSmdRVUpUVWZnbFlobWZRTnd0dTlVSWJhR01C?=
 =?utf-8?B?a2ZpMlpBZTdtRWw2cUx4RmZsaUJwWSs3QzdIUU9uczBXdFhCWXQ5TFlrM0VM?=
 =?utf-8?B?M1FPQ1NMcGlwTkFxcmdSOGpXWHVQNWRnUEtJZFcrWjZlSDBKN1Uvb0I5NmJy?=
 =?utf-8?B?UzN5ck4xdWhFb2d3MUxkMlo4NFVuaGdTM3NyMVc3QzNxSjBFSzAwbXN6S0N1?=
 =?utf-8?B?UTA2b1ZYWVVWWTA5dFVCRm50TWRtenhzazVLRHEvN24yMDVPRkYzbFdSNVF1?=
 =?utf-8?B?QmMwRHVvQ3h2eUZvYXV3Mi9PWWNiaWVXQjdxR01wLzI3eXBqV1RlUHNZRUxY?=
 =?utf-8?B?RDd3SXBZbGJXV3dHNFJxNUIwRWFBSVhBa3BiRUNWRlRic2c1L2FKd2NzNDB6?=
 =?utf-8?B?OVdRY2gzeFNjbTRMYU9ZeU0yRVUzWUlNVnRwZ1R6Z3gwMC83Vmo5OXY0VUN2?=
 =?utf-8?B?di9FcFl6VUxreVhZdjZydGJldlFyaG0wd2dwNHVIaVBKZnBvcnJZWERDNlI3?=
 =?utf-8?B?UFllVStKK2tyUXllWjhOVm1YWHRYNE9FNkFPS0Y4YWsvTFRoOWZBUW1aSE1M?=
 =?utf-8?B?TWxhY1hLYmRFNjZRZlAyN1VtUVdWcG4xV1dsSko1N2Q2WUdoNE5nd0JqSUgw?=
 =?utf-8?B?SnhOTThoYUFzRWgxZFZWRTkxTTJtVWEwTFpWb0VOYkwzMGUwOTFRbThRVjVX?=
 =?utf-8?B?aG1BN2tVZzl3QktSVS9vNUhOMFpYNGxPR0ZCWTdoQWovMWNUSEc0cFFIdHZI?=
 =?utf-8?B?YlVjUm1SRU5EeEErNGtveDVaZHJJRUN6ZndIZU4rK0ZqZ0Z6NE1ielhCMXJX?=
 =?utf-8?B?TWdqcTVTVDQ3RmwzK2tKYXh6ak9rdHdScEtYTTlqcXBwWkJWUlhTOEtTYmNR?=
 =?utf-8?B?YVlTOEltMVN1NDlicWlHQ2NBUkJLa055K3oyWHhkZU5WWWNRSDB4MlV4cTNU?=
 =?utf-8?B?eDlMZTlMeUhIYk51dEdzaUNXV0ZLdUtzQ1A3K0FheEhlS1cxdXBBZWNsZnRS?=
 =?utf-8?B?cXlJdFpIbUtjNmZUY3V0d0UrYU4vZzAzSENKQkErRHl1d2FtckxLOW1kQkxE?=
 =?utf-8?B?ai84OXE4QURIdWprVW4yZkRXenF4REFZRWRhcFIzTjNCUGRVSjRTeUJmUWtE?=
 =?utf-8?B?WDNqdElxOE54VXV2RndtYmNLeU82eXE0TTlid2drT05GMzIrQ3RwZW1DUE9N?=
 =?utf-8?B?bDNGRTl4V0JRQ3JwZnJrbWRDaFpnZStSOGpiWFJCZmFONHlSeUJOR1Zocnox?=
 =?utf-8?B?V0dBTHBLeTRDZzVNT1pyQzMwaGJVQlV4YlF4MTkvc3VZdExpNDBseHZKRkZT?=
 =?utf-8?Q?s1I0=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2025 13:04:28.6883
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1e7ba6cd-2236-4362-bfc2-08de25d9d795
X-MS-Exchange-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:
	SJ1PEPF00001CE2.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8928



On 11/11/2025 11:16, Harry Ramsey wrote:
> Implement reference counting to enable inclusive MPU regions. An
> inclusive region is defined as a region encapsulated inside a
> previously allocated region sharing the same permissions.
> 
> References are incremented and decremented in xen_mpumap_update_entry. A
> region will be destroyed if the reference count is 0 upon calling
> destroy_xen_mappings and if the full region range is specified.
> 
> Additionally XEN_MPUMAP_ENTRY_SHIFT and XEN_MPUMAP_ENTRY_SHIFT_ZERO are
> no longer hardcoded and defined inside asm-offsets.c.
> 
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
> ---
> Changes in v2:
> - Improve clarity with regards to MPU inclusive regions
> - Fix code format issues
> ---
>  xen/arch/arm/arm32/asm-offsets.c         |  2 +
>  xen/arch/arm/arm64/asm-offsets.c         |  2 +
>  xen/arch/arm/include/asm/arm32/mpu.h     |  2 +
>  xen/arch/arm/include/asm/arm64/mpu.h     |  2 +
>  xen/arch/arm/include/asm/mpu/regions.inc | 11 +++-
>  xen/arch/arm/mpu/mm.c                    | 75 +++++++++++++++++++-----
>  6 files changed, 78 insertions(+), 16 deletions(-)
> 
> diff --git a/xen/arch/arm/arm32/asm-offsets.c b/xen/arch/arm/arm32/asm-offsets.c
> index c203ce269d..951f8d03f3 100644
> --- a/xen/arch/arm/arm32/asm-offsets.c
> +++ b/xen/arch/arm/arm32/asm-offsets.c
> @@ -79,6 +79,8 @@ void __dummy__(void)
>  #ifdef CONFIG_MPU
>     DEFINE(XEN_MPUMAP_MASK_sizeof, sizeof(xen_mpumap_mask));
>     DEFINE(XEN_MPUMAP_sizeof, sizeof(xen_mpumap));
> +   DEFINE(XEN_MPUMAP_ENTRY_SHIFT, ilog2(sizeof(pr_t)));
> +   DEFINE(XEN_MPUMAP_ENTRY_ZERO_OFFSET, sizeof(prbar_t) + sizeof(prlar_t));
>     BLANK();
>  #endif
>  }
> diff --git a/xen/arch/arm/arm64/asm-offsets.c b/xen/arch/arm/arm64/asm-offsets.c
> index 320289b281..38a3894a3b 100644
> --- a/xen/arch/arm/arm64/asm-offsets.c
> +++ b/xen/arch/arm/arm64/asm-offsets.c
> @@ -73,6 +73,8 @@ void __dummy__(void)
>  #ifdef CONFIG_MPU
>     DEFINE(XEN_MPUMAP_MASK_sizeof, sizeof(xen_mpumap_mask));
>     DEFINE(XEN_MPUMAP_sizeof, sizeof(xen_mpumap));
> +   DEFINE(XEN_MPUMAP_ENTRY_SHIFT, ilog2(sizeof(pr_t)));
> +   DEFINE(XEN_MPUMAP_ENTRY_ZERO_OFFSET, sizeof(prbar_t) + sizeof(prlar_t));
>     BLANK();
>  #endif
>  }
> diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
> index 0a6930b3a0..137022d922 100644
> --- a/xen/arch/arm/include/asm/arm32/mpu.h
> +++ b/xen/arch/arm/include/asm/arm32/mpu.h
> @@ -39,6 +39,8 @@ typedef union {
>  typedef struct {
>      prbar_t prbar;
>      prlar_t prlar;
> +    uint8_t refcount;
> +    uint8_t pad[7];     /* Pad structure to 16 Bytes */
>  } pr_t;
> 
>  #endif /* __ASSEMBLY__ */
> diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
> index f0ce344e78..17f62ccaf6 100644
> --- a/xen/arch/arm/include/asm/arm64/mpu.h
> +++ b/xen/arch/arm/include/asm/arm64/mpu.h
> @@ -38,6 +38,8 @@ typedef union {
>  typedef struct {
>      prbar_t prbar;
>      prlar_t prlar;
> +    uint8_t refcount;
> +    uint8_t pad[15];    /* Pad structure to 32 Bytes */
>  } pr_t;
> 
>  #endif /* __ASSEMBLY__ */
> diff --git a/xen/arch/arm/include/asm/mpu/regions.inc b/xen/arch/arm/include/asm/mpu/regions.inc
> index 23fead3b21..0cdbb17bc3 100644
> --- a/xen/arch/arm/include/asm/mpu/regions.inc
> +++ b/xen/arch/arm/include/asm/mpu/regions.inc
> @@ -14,14 +14,12 @@
>  #define PRLAR_ELx_EN            0x1
> 
>  #ifdef CONFIG_ARM_64
> -#define XEN_MPUMAP_ENTRY_SHIFT  0x4     /* 16 byte structure */
> 
>  .macro store_pair reg1, reg2, dst
>      stp \reg1, \reg2, [\dst]
>  .endm
> 
>  #else
> -#define XEN_MPUMAP_ENTRY_SHIFT  0x3     /* 8 byte structure */
> 
>  .macro store_pair reg1, reg2, dst
>      strd  \reg1, \reg2, [\dst]
> @@ -97,6 +95,15 @@
> 
>  3:
> 
> +    /* Clear the rest of the xen_mpumap entry. */
> +#ifdef CONFIG_ARM_64
> +    stp xzr, xzr, [\base, #XEN_MPUMAP_ENTRY_ZERO_OFFSET]
> +#else
> +    mov \prbar, #0
> +    mov \prlar, #0
> +    strd \prbar, \prlar, [\base, #XEN_MPUMAP_ENTRY_ZERO_OFFSET]
> +#endif
> +
>      add   \sel, \sel, #1
> 
>  1:
> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
> index b80edcf1ca..cd84f9e3c6 100644
> --- a/xen/arch/arm/mpu/mm.c
> +++ b/xen/arch/arm/mpu/mm.c
> @@ -106,6 +106,7 @@ pr_t pr_of_addr(paddr_t base, paddr_t limit, unsigned int flags)
>      region = (pr_t) {
>          .prbar = prbar,
>          .prlar = prlar,
> +        .refcount = 0,
>      };
> 
>      /* Set base address and limit address. */
> @@ -170,6 +171,37 @@ int mpumap_contains_region(pr_t *table, uint8_t nr_regions, paddr_t base,
>      return MPUMAP_REGION_NOTFOUND;
>  }
> 
> +static bool is_mm_attr_match(pr_t *region, unsigned int attributes)
> +{
> +    bool ret = true;
> +
> +    if ( region->prbar.reg.ro != PAGE_RO_MASK(attributes) )
> +    {
> +        printk(XENLOG_WARNING
> +               "Mismatched Access Permission attributes (%#x instead of %#x)\n",
> +               region->prbar.reg.ro, PAGE_RO_MASK(attributes));
> +        ret = false;
NIT: I think it's more clear when you return false here. Otherwise after setting
ret to false, what's the point for checking additionally for below conditions?

> +    }
> +
> +    if ( region->prbar.reg.xn != PAGE_XN_MASK(attributes) )
> +    {
> +        printk(XENLOG_WARNING
> +               "Mismatched Execute Never attributes (%#x instead of %#x)\n",
> +               region->prbar.reg.xn, PAGE_XN_MASK(attributes));
> +        ret = false;
> +    }
> +
> +    if ( region->prlar.reg.ai != PAGE_AI_MASK(attributes) )
> +    {
> +        printk(XENLOG_WARNING
> +               "Mismatched Memory Attribute Index (%#x instead of %#x)\n",
> +               region->prlar.reg.ai, PAGE_AI_MASK(attributes));
> +        ret = false;
> +    }
> +
> +    return ret;
> +}
> +
>  /* Map a frame table to cover physical addresses ps through pe */
>  void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
>  {
> @@ -284,22 +316,26 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
> 
>      flags_has_page_present = flags & _PAGE_PRESENT;
> 
> -    /* Currently we don't support modifying an existing entry. */
> +    /*
> +    * Currently, we only support removing/modifying a *WHOLE* MPU memory
> +    * region. Part-region removal/modification is not supported as in the worst
> +    * case it will leave two/three fragments behind.
> +    */
>      if ( flags_has_page_present && (rc >= MPUMAP_REGION_FOUND) )
>      {
> -        printk("Modifying an existing entry is not supported\n");
> -        return -EINVAL;
> -    }
> +        if ( !is_mm_attr_match(&xen_mpumap[idx], flags) )
> +        {
> +            printk("Modifying an existing entry is not supported\n");
> +            return -EINVAL;
> +        }
> 
> -    /*
> -     * Currently, we only support removing/modifying a *WHOLE* MPU memory
> -     * region. Part-region removal/modification is not supported as in the worst
> -     * case it will leave two/three fragments behind.
> -     */
> -    if ( rc == MPUMAP_REGION_INCLUSIVE )
> -    {
> -        printk("Part-region removal/modification is not supported\n");
> -        return -EINVAL;
> +        /* Check for overflow of refcount before incrementing.  */
> +        if ( xen_mpumap[idx].refcount == 0xFF )
> +        {
> +            printk("Cannot allocate region as it would cause reference overflow\n");
s/reference/reference count or refcount/

Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal




From xen-devel-bounces@lists.xenproject.org Mon Nov 17 13:05:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 13:05:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163856.1490912 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKyuu-0008Ef-9s; Mon, 17 Nov 2025 13:05:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163856.1490912; Mon, 17 Nov 2025 13:05:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKyuu-0008EY-76; Mon, 17 Nov 2025 13:05:12 +0000
Received: by outflank-mailman (input) for mailman id 1163856;
 Mon, 17 Nov 2025 13:05: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=LywI=5Z=bounce.vates.tech=bounce-md_30504962.691b1d80.v1-fe1920fd87564f4d805d8d706c3efd04@srs-se1.protection.inumbo.net>)
 id 1vKyut-0007cl-1u
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 13:05:11 +0000
Received: from mail180-15.suw31.mandrillapp.com
 (mail180-15.suw31.mandrillapp.com [198.2.180.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 090ab518-c3b6-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 14:05:05 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-15.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4d97JJ45bmzPm0b8x
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 13:05:04 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 fe1920fd87564f4d805d8d706c3efd04; Mon, 17 Nov 2025 13: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: 090ab518-c3b6-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763384704; x=1763654704;
	bh=swdLxmX4Vd3OZetAZ/ZvbpL7Ft6gCy+I4Zt3colhL20=;
	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=NEx2q/sHLrN5yHPi++apLnkHDxBu8nBHmT2gIqRwvxQqnOc6jdq+NjVnC19hIVu0a
	 ZGWMmDEXkze/U4wpUHoFRxZlxcCbJHQ/z/gtzlYJMbdlOYN5+2Hqc+5ZTV4gnqxj7Y
	 VbXxJdiNW7+2oAorCR4DaKnbXWulH2AO9JVHhWsYJg/9uU4ZkHynoxsVANu3AcTpSz
	 dW2VoezjGBkhMk6MOJAdwwOf3I+GfmTmKBS/GXQJmkkqrMHCcLINCYdQA9OUO7aDzV
	 9VSJ81MdicDaZcUddczfByqVemC+NqA0qub3cJQIqlY4hmDHXy7aRM8xoQHA/LRKf9
	 hCVknSPkPHWaQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763384704; x=1763645204; i=teddy.astie@vates.tech;
	bh=swdLxmX4Vd3OZetAZ/ZvbpL7Ft6gCy+I4Zt3colhL20=;
	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=Nw7wnlK589Ml9yndVArovaPWZNP1kI2rcQqYpTp+j2wiB93QfnP1o8/QbH+JliqtY
	 CHH07pdg5UshrRuWoqUzCliWUKH0R5xmTVGsAiMx1P7EHqrsD65ctHobserHjfXVg3
	 dciwva7vodpA0G0kkTJYnQNVd7ejr4pMyL6Qsf+fxjK0w8e2v71Wb3bF5+2Zq92ao3
	 oGLI04PJ5YTIHjpofjn4WAVvHhRE739MCkuph6OLS1Js2zEjk2q1W0JAQDF+aOGy2+
	 VwurfncxQabZoT/O36sciIXo4fkQxt9bbXwtd8fLeloj9yX6P4QT/xHLPfgwV554y3
	 w1nc+Pu1wMVjw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=201/2]=20amd/iommu:=20Always=20atomically=20update=20DTE?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763384700997
Message-Id: <dcd39051-b2bf-409c-907f-3357ae06cc25@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>, "Jason Andryuk" <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1762961527.git.teddy.astie@vates.tech> <a14812d39743f5f49614d099bdac6720bf7c4fae.1762961527.git.teddy.astie@vates.tech> <b3ed438d-2b73-4b07-99e5-01e66a833f4d@suse.com>
In-Reply-To: <b3ed438d-2b73-4b07-99e5-01e66a833f4d@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.fe1920fd87564f4d805d8d706c3efd04?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251117:md
Date: Mon, 17 Nov 2025 13:05:04 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 13/11/2025 =C3=A0 12:38, Jan Beulich a =C3=A9crit=C2=A0:
> On 12.11.2025 16:37, Teddy Astie wrote:
>> amd_iommu_set_root_page_table chooses between updating atomically
>> and non-atomically depending on whether the DTE is active or not.
>>
>> This choice existed mostly because cx16 wasn't supposed always available
>> until [1]. Thus we don't need to threat the non-atomic path in a special
>> way anymore.
>>
>> By rearranging slightly the atomic path, we can make it cover all the ca=
ses
>> which improves the code generation at the expense of systematically perf=
orming
>> cmpxchg16b.
>>
>> Also remove unused raw64 fields of ldte, and the deprecated comment as t=
he
>> function actually behaves in a more usual way and can't return >0.
>>
>> [1] 2636fcdc15c7 "x86/iommu: check for CMPXCHG16B when enabling IOMMU"
>>
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>> ---
>>   xen/drivers/passthrough/amd/iommu_map.c | 78 ++++++++-----------------
>>   1 file changed, 25 insertions(+), 53 deletions(-)
>>
>> diff --git a/xen/drivers/passthrough/amd/iommu_map.c b/xen/drivers/passt=
hrough/amd/iommu_map.c
>> index 320a2dc64c..e3165d93aa 100644
>> --- a/xen/drivers/passthrough/amd/iommu_map.c
>> +++ b/xen/drivers/passthrough/amd/iommu_map.c
>> @@ -154,69 +154,41 @@ static void set_iommu_ptes_present(unsigned long p=
t_mfn,
>>       unmap_domain_page(table);
>>   }
>>   
>> -/*
>> - * This function returns
>> - * - -errno for errors,
>> - * - 0 for a successful update, atomic when necessary
>> - * - 1 for a successful but non-atomic update, which may need to be war=
ned
>> - *   about by the caller.
>> - */
>>   int amd_iommu_set_root_page_table(struct amd_iommu_dte *dte,
>>                                     uint64_t root_ptr, uint16_t domain_i=
d,
>>                                     uint8_t paging_mode, unsigned int fl=
ags)
>>   {
>>       bool valid =3D flags & SET_ROOT_VALID;
>>   
>> -    if ( dte->v && dte->tv )
>> -    {
>> -        union {
>> -            struct amd_iommu_dte dte;
>> -            uint64_t raw64[4];
>> -            __uint128_t raw128[2];
>> -        } ldte =3D { .dte =3D *dte };
>> -        __uint128_t res, old =3D ldte.raw128[0];
>> -        int ret =3D 0;
>> -
>> -        ldte.dte.domain_id =3D domain_id;
>> -        ldte.dte.pt_root =3D paddr_to_pfn(root_ptr);
>> -        ldte.dte.iw =3D true;
>> -        ldte.dte.ir =3D true;
>> -        ldte.dte.paging_mode =3D paging_mode;
>> -        ldte.dte.v =3D valid;
>> -
>> -        res =3D cmpxchg16b(dte, &old, &ldte.raw128[0]);
>> -
>> -        /*
>> -         * Hardware does not update the DTE behind our backs, so the
>> -         * return value should match "old".
>> -         */
>> -        if ( res !=3D old )
>> -        {
>> -            printk(XENLOG_ERR
>> -                   "Dom%d: unexpected DTE %016lx_%016lx (expected %016l=
x_%016lx)\n",
>> -                   domain_id,
>> -                   (uint64_t)(res >> 64), (uint64_t)res,
>> -                   (uint64_t)(old >> 64), (uint64_t)old);
>> -            ret =3D -EILSEQ;
>> -        }
>> +    union {
>> +        struct amd_iommu_dte dte;
>> +        __uint128_t raw128[2];
>> +    } ldte =3D { .dte =3D *dte };
>> +    __uint128_t res, old =3D ldte.raw128[0];
>>   
>> -        return ret;
>> -    }
>> +    ldte.dte.domain_id =3D domain_id;
>> +    ldte.dte.pt_root =3D paddr_to_pfn(root_ptr);
>> +    ldte.dte.iw =3D true;
>> +    ldte.dte.ir =3D true;
>> +    ldte.dte.paging_mode =3D paging_mode;
>> +    ldte.dte.tv =3D true;
>> +    ldte.dte.v =3D valid;
>> +
>> +    res =3D cmpxchg16b(dte, &old, &ldte.raw128[0]);
>>   
>> -    if ( valid || dte->v )
>> +    /*
>> +     * Hardware does not update the DTE behind our backs, so the
>> +     * return value should match "old".
>> +     */
>> +    if ( res !=3D old )
>>       {
>> -        dte->tv =3D false;
>> -        dte->v =3D true;
>> -        smp_wmb();
>> +        printk(XENLOG_ERR
>> +                "Dom%d: unexpected DTE %016lx_%016lx (expected %016lx_%=
016lx)\n",
>> +                domain_id,
>> +                (uint64_t)(res >> 64), (uint64_t)res,
>> +                (uint64_t)(old >> 64), (uint64_t)old);
> 
> Indentation is now off by 1 here.
> 
>> +        return -EILSEQ;
> 
> The downside of this is that all updates can now take this path. Yes, thi=
s shouldn't
> be possible to be taken, but it's a (minor) concern nevertheless. At the =
very least
> such a downside wants, imo, mentioning in the description, even if for no=
thing else
> than to make clear that it was a deliberate choice.
> 

Apparently it doesn't build (debian-bookworm-gcc-arm32-randconfig 
catched it).
ARM does provide MAX_VIRT_CPUS and GUEST_MAX_VCPUS which is 128 or 
lower, but that doesn't map (or not properly) with what we have in x86 
(MAX_VIRT_CPUS=3D8192 is PV-specific, and GUEST_MAX_VCPUS doesn't exist).

I am not sure what to do, looks like many things are redundant here.

> Jan
> 



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Nov 17 13:07:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 13:07:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163873.1490922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKywl-0000jJ-Mp; Mon, 17 Nov 2025 13:07:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163873.1490922; Mon, 17 Nov 2025 13: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 1vKywl-0000jC-JQ; Mon, 17 Nov 2025 13:07:07 +0000
Received: by outflank-mailman (input) for mailman id 1163873;
 Mon, 17 Nov 2025 13: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=T/DW=5Z=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vKywk-0000ie-EY
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 13:07:06 +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 4f075dce-c3b6-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 14:07:04 +0100 (CET)
Received: from SJ2PR07CA0012.namprd07.prod.outlook.com (2603:10b6:a03:505::13)
 by LV8PR12MB9136.namprd12.prod.outlook.com (2603:10b6:408:18e::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.22; Mon, 17 Nov
 2025 13:06:59 +0000
Received: from SJ5PEPF000001D5.namprd05.prod.outlook.com
 (2603:10b6:a03:505:cafe::97) by SJ2PR07CA0012.outlook.office365.com
 (2603:10b6:a03:505::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.22 via Frontend Transport; Mon,
 17 Nov 2025 13:07:02 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ5PEPF000001D5.mail.protection.outlook.com (10.167.242.57) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Mon, 17 Nov 2025 13:06:59 +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, 17 Nov
 2025 05:06:57 -0800
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, 17 Nov
 2025 05:06:57 -0800
Received: from [10.252.147.171] (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, 17 Nov 2025 05:06: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: 4f075dce-c3b6-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=B1STjdIC/P0IWD/Tya03pLQYf9gL1ySM7q7adAOhRZ5gV8EravdPE0mfnXrQvynfELICwmX0/9vPQ+9y4Hsk5ZIeAqcUTprOdqHmT/jny7xPTg9X/FWueTc42aoTbDf4sUSGFkv1C2tRE1mLQGhX5H3kbP+OlMP7K488RJQBznTq0sP7+dONff5h5VRCdk1hpvYTnuuY4LiiAfw5WVvmqA/jNPdobMRKNfMWyYCBTk7Fje3vsYWjoGBEwEVSYz8z2aaxAhUC6vf0J2zT07cZDwkDsWTNMglCDt9zg2U/PTu7Bj1giDacrKiSL3r8UlvaLYjEevJ10OiAtyT1yhIoaQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BUZR1v0jMVF8lMdPbzh6ssywow+wI33uJw/bIoS2Ye0=;
 b=pTVAGVHqpmFOV1zoasPQXhMsbwVorhcNsaquEcy0dpkZ+QOjy2mDiepUydLif7Dr7uUmAwKc4f+XGfhN5H24pmVxMJRIJacB2GrIJQHoThoxYckiKhsPOZIWrgKlE7ox7vUDs4nN/myKvUF40lwJw+2eD4IldtX4hYadTkbDgXRKOADkAET73zZaNzsVMycMwjLuhAwsZIAARtzzEbgR/dnKFDL/cw/jhS5Ua+70rPuY5GJbOfqEEnu5xdK769C3a0rZMbUk/uaaRc6p8bN5pKCORfti94HxckvwtlQo9qjlIkXEecRNujw+LwyuCzDq9ANcET2YyWDXb5xyCuiZQA==
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=BUZR1v0jMVF8lMdPbzh6ssywow+wI33uJw/bIoS2Ye0=;
 b=ZkJ8BQrphW9h/OjS72C74SgkH4BmcByduV6LwP/bmklh08cUpl1QSGzFrjbq0ol4R/ZcTQcvAtBYDsPhVBGdALvvxDfYZwKyV4Tp/qP8ucgLFNv2XH9gc4v0jLfJUrMBNJK0vH8MC5mcfoWmy4FyPdasvPo+5pPL42Oi1CkY4Uo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <f8d609b6-a3cd-4685-95ce-6fc1f0b307ce@amd.com>
Date: Mon, 17 Nov 2025 14:06:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] arm/mpu: Implement ioremap_attr for MPU
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: <20251111101601.4171120-1-harry.ramsey@arm.com>
 <20251111101601.4171120-4-harry.ramsey@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20251111101601.4171120-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: SJ5PEPF000001D5:EE_|LV8PR12MB9136:EE_
X-MS-Office365-Filtering-Correlation-Id: 0f8dee84-c89a-4a21-e827-08de25da3133
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?TUkyazBGNGZDbUpuOHN2ZHY1bFFoMWJ0cjBLTGtqekFFVzVYTnZBdTV0RU9S?=
 =?utf-8?B?Nlp5OEFoV1hHWDJMbDhiSUlKdHN3SGo4U2FjVlhlZVVVVEE0THU2VU5GSWEr?=
 =?utf-8?B?L0ZtOWJZVFpXV2dIUmoyV1NKbmZuekhTT21NSzUycW1xZTIxekwrK2hMbEVF?=
 =?utf-8?B?Q2p0eURqdXhIYmZpYXJSQ1NyWU9TZy9MOTVrNVJnMDhwdHY0K051MzlKWHNs?=
 =?utf-8?B?dm13VDZaK2I4ZFlEdm52endvaDJQSWJBakhUY0Q5b0VxcEh2N0ZwZi9ubHpa?=
 =?utf-8?B?RzBTbnJocS96Q0srK1dXRVNlb3cwZ1gyQTRUS2gvNVNqS2JwdHZMaFA0ZWtp?=
 =?utf-8?B?K0FGdGFlaEFaK2phVlNWQXFUZWl4Yml5SkxmK0J6My8wT1Y2ZVdGWjVqNW9v?=
 =?utf-8?B?cko5MzFBN1I1aDVLRUFNMWpZUzlHd3VVZko5STVXWStpbldnTVhCTE5qcHZm?=
 =?utf-8?B?bEovS1RWdFM2TUxBbTdlSU8yMW5IYUFLRFNraUp0UXpCNHNMcHZDdnBCNU1K?=
 =?utf-8?B?RmQvcXE1VDZ1aWJUNW80UDBDckVKT3VvMzNWbC9QYStGY0VpczhhTERVWHp0?=
 =?utf-8?B?SVRnZnRHdmNldW10dFIrcFF4TU5NWXVqRkVFN1VucDlWUEwyS3hyOHVHRjdO?=
 =?utf-8?B?QmMyUnpPdThzVWYyd2FkV0lnVGQ0c0hoOWJIK1VXdzNRMWpvOUZEOFJCUEFF?=
 =?utf-8?B?ZEZnWlFMSjZjOXhMRjdndUJPT1VhNUtLR29PTWFadUtsMEw0bXNrYzA5Wjd0?=
 =?utf-8?B?bG5BUWp4TU1aczRQK1FnbjJhMi85dDBqZUtaMmVBWkxRVGJFWXpmQTUrYzUy?=
 =?utf-8?B?WW5SM2sxVXNtRXByQjEvcjgyZm0zSDloUFg1NW9NdDJCYUVVSEV3T1U1dGNZ?=
 =?utf-8?B?d0orMGVRcDN1Tzhjd08xc0YyREJYMXFpSXJyWUtLVTV4UVZNb1hqZWVoL213?=
 =?utf-8?B?dlcrTDczSXM2T1p3bzk1NnVyZ3pDbTBRSGRMc0pJWFB6aDUvR295bGtKelEx?=
 =?utf-8?B?UjZWVTUvZEE1ZksreHN0RmJybjR4d1lxVFpmeEd0L1dDVGIwdFJxYmlwWVNt?=
 =?utf-8?B?SWE4clVKckFZM3hyS3JnSVZpMzJUODNXS1kzdHhTQkVINyt1eWFRbTFUQXVJ?=
 =?utf-8?B?c3FRME1XTllKY25TRndnak9zWjdvZmkrOXRsOHpRRFI0K2R1MWc5Wjdza3NP?=
 =?utf-8?B?WVVvU2ZrenpBdGk5ZiszYjAxbTdoQnd4YkRzOVhEc2RnWk9zUkhkanJzdWh0?=
 =?utf-8?B?QXVlZGgxbkFDeUI4YXBmd0ZIOEU2L2QxdnFIbDhWVFRSWjc1d2RIeWJkdnB6?=
 =?utf-8?B?RDlXY1FvUDBkUi9KeldDam9XaHFZYkNLMko5cncxNURFZmRoREYyNmFOelV2?=
 =?utf-8?B?eWRvZlhFbUJXZXJROUtsRVd4OHY0bVdyRmdRYVJwaWFSNEw4bU5heDlvRXIw?=
 =?utf-8?B?RDltSkxjV2gyV2VEY0EreGx3QXFHTUcvazI4bU1RRi9HdFMxRWtSZVE0K0I4?=
 =?utf-8?B?ZXVEWDRBOS9SQlMwQ0c1MGNKVWJJSUxOZkZ5K2hDVUtWUlJ4SHZWTXVIWWhI?=
 =?utf-8?B?WVQrZisyNmRqaFVKbVQrdXd5blB4ZExwZWE2eHovcys1VjdFQzR1ZE4wNHhw?=
 =?utf-8?B?Tko1b2plTnBuVFZaVUJuOVZDL01ZamtXbFp1UVVETEt6dDhGZWNkVzN4SHcz?=
 =?utf-8?B?ZFllMkFVSlVRR2RRdXRUbXhSNmk3ejlxZzYvR3pQRTZJNUVYeVVmUnRYUG0x?=
 =?utf-8?B?ZVpWeVd4cXllMzl2dXFQWjVVZUYyN0xsSGprTXJOb3JGanFLUkVpaUc2U1Qy?=
 =?utf-8?B?eDVFZGZiOGFydVlzSzRWdEdxRGw4YWdZMDA3eU5la1lvdUh1MlE5dWVNL0xj?=
 =?utf-8?B?aHJqMDF0dWxDNHBVcURMZ1ZJY0ZJVzVaQnc1NTgvanRSMnhPWXhmejNucGxE?=
 =?utf-8?B?TGpIdjNmY0VrZStDeFhyOFQ3RmZydW4raHNoSlU3UnJIdHhpOCszeHpIcmZY?=
 =?utf-8?B?SG91OVlma2hjNkI0OGFFNHdCOTVtWCtlNzlrVWxscFNBWmMvdnBOdVpFK2ZG?=
 =?utf-8?B?NmVidmVZZUFrd3ZtRm9IcDZWdmZxL0VNL2pHenV2SUJ4VWlITlNLMEl3cXFP?=
 =?utf-8?Q?9OGs=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2025 13:06:59.0408
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f8dee84-c89a-4a21-e827-08de25da3133
X-MS-Exchange-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:
	SJ5PEPF000001D5.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9136



On 11/11/2025 11:16, Harry Ramsey wrote:
> Implement the function `ioremap_attr` for MPU systems.
> 
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Nov 17 13:10:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 13:10:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163888.1490931 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKz0H-0002Hd-3m; Mon, 17 Nov 2025 13:10:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163888.1490931; Mon, 17 Nov 2025 13:10:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKz0H-0002HW-18; Mon, 17 Nov 2025 13:10:45 +0000
Received: by outflank-mailman (input) for mailman id 1163888;
 Mon, 17 Nov 2025 13:10: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=Lf15=5Z=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vKz0F-0002HQ-KR
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 13:10:43 +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 cfb9884b-c3b6-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 14:10:38 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-42b3c965df5so2564282f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 05:10:38 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42b53f0b60csm25637222f8f.22.2025.11.17.05.10.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 05:10: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: cfb9884b-c3b6-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763385038; x=1763989838; 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=VukSc617M9c4pTrd2Qz5kwOcNWcaJJ8FFPz4BpHG88g=;
        b=HAi1Y2UllIyqaKp24FiA5brL8The4tFcT2TL3ECgPd1kq2CzKqmu7X/EFf0YRLQLNJ
         DcXH2FMnHRUlHqqCV4vNdnIcK8kPV9tgxe8lPEj+eEQ4aZ1Mml/2uWmManpHnMfrqfxQ
         JwaoPQ2N3sNYJNX22bGb6Obst4LhLVuYlsPJEKkb7sUC+oJcDHuX3NlW9J/LzGYQBcZU
         tutXaDZEuOXsPhszg6HNEw6/yzMBY0XSkwW/1pg9LGOWBKwfusqRnfMraFesbO2qGrb1
         b19EZ5d+RHibTNiYRSmrSzqJfV5QsvxRR9FWyCWOvH3j/vDTPQdq2/NxEO19J/9i/rcL
         5SNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763385038; x=1763989838;
        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=VukSc617M9c4pTrd2Qz5kwOcNWcaJJ8FFPz4BpHG88g=;
        b=qSxCQsRukCWwIxRc1e+3txtaCoguweLl8OGMC1PVT/83FDvrGBfh1hXpqjams9NcBd
         lTcblNB9f66JLCcmlv0DBRpquYYyROFfxDyiRFelEU1nngC2XC0oiqbdgl1XWa0CQw9E
         Hludg3nyH1nr3CslY4ALExi6eLKgVyR2z0A3RO4qokroPVU9GID/QQm7b7HTJzvjMFJi
         rKTMpFQUE9jZEATnrejYkYCQGVX9QpSU/q+rowT4kqJi1O4pTl8rbFEcPX4bMXpvILo0
         qXEKYIWfNQmHMSPHbmr8GDI7pUBQHBURAlgiC1WRJ/nhPkD61FcKIbvi5/NSYoS6/KCV
         nYog==
X-Forwarded-Encrypted: i=1; AJvYcCXwsbySOSAl/nFB6ABQr+B9c/B3wHgUpoDNwHeI8zF4fRkUzbMI9MlDDS+wOCQxR7ymnFy7ZEjm240=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzs5/BfrI9n29RzLXLkOootIqvkoOmQ2eS9vRArCZi6jvCaiiP9
	BWd73IcFrU2KcWfa2DuVsU2BiqK9R1vM4/zTguh9vsN9VQ15wAB5y2/q4gDsd/LtuqI=
X-Gm-Gg: ASbGncsAST3uGYE2gn31NyUbKOX0McEP/7kc3mb3McP0N7M3JA+kQKhDKCohxPlxoPr
	e+30OgVwhqzaDTx4ImcpdOKRGuKDxd1wDewGi1lLGV/NUTYE9hVaxHH2puVMI6pTJOBmqCjgzDY
	9EpwoJfI7bPyQ0ye8z1BDIlwu/z5UQnYlVsfVgEkMFTYD4ug6LoZtaCR7T7uJR7aEo+XS/nuMv2
	Ov7t3AoUa+0YbNdxbmIlvJM1XXcNdnt/+JABW3jvLm8xtIowlZUGLRwxt1/pTrJuOMuL5GCOxjW
	cW4OqTDAnB5i/xSs307W5JkkxQ/0ITkE6kzR9xmDcgzhW55GhanU7/MNX3Xb5v1FJcmcPZUJjjO
	EhEeWYjt4RQoQJjc01G+00aVxHlIosIdqXt3bDn4PPclwGbsBj/yRaa2sB7yeZYpKMGpLPK5piC
	MFmdPgs4ZuYoMrj752jPqeWnNwx4xDPfltkAfsx7TLZXW+QJSSHi6w0KzQmtB+s4MlHsYuTttOa
	7KjY8BL9CuxXlkkQ1jPZwCA8B63NMQCK/iNiCYXLXtg5ITdUAuO+uzdhtM4
X-Google-Smtp-Source: AGHT+IFcUX8w0lBDARwl7Tt7X46SP2prbJppAr1qqxH/50OCccBTrlG7DBpwEugWTwbq4mdr3Pewgg==
X-Received: by 2002:a05:6000:26d2:b0:427:167:c2c3 with SMTP id ffacd0b85a97d-42b59398a6fmr11711000f8f.48.1763385037777;
        Mon, 17 Nov 2025 05:10:37 -0800 (PST)
Message-ID: <7ce4dd85-d88d-420d-b6da-9bee9fe61017@suse.com>
Date: Mon, 17 Nov 2025 14:10:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] build: add make macro for making file from file.in
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-2-jgross@suse.com>
 <936632a3-d713-4183-b1db-5a554b617b74@suse.com>
 <7577ceec-1271-4569-91f1-fd7197a33991@suse.com>
 <f42863be-aef8-4a7b-915b-235bd89a8341@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: <f42863be-aef8-4a7b-915b-235bd89a8341@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------0o8z4I3jvQFR3i6YExUnUPZi"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------0o8z4I3jvQFR3i6YExUnUPZi
Content-Type: multipart/mixed; boundary="------------DbmIrp4ljiJnQkEUap9d4xpO";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.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?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Message-ID: <7ce4dd85-d88d-420d-b6da-9bee9fe61017@suse.com>
Subject: Re: [PATCH v2 1/4] build: add make macro for making file from file.in
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-2-jgross@suse.com>
 <936632a3-d713-4183-b1db-5a554b617b74@suse.com>
 <7577ceec-1271-4569-91f1-fd7197a33991@suse.com>
 <f42863be-aef8-4a7b-915b-235bd89a8341@suse.com>
In-Reply-To: <f42863be-aef8-4a7b-915b-235bd89a8341@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=

--------------DbmIrp4ljiJnQkEUap9d4xpO
Content-Type: multipart/mixed; boundary="------------PGNE6SYQ1MmMa1wO1tpIV6GS"

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

T24gMTcuMTEuMjUgMTM6NTQsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxNy4xMS4yMDI1
IDEzOjQ4LCBKw7xyZ2VuIEdyb8OfIHdyb3RlOg0KPj4gT24gMTcuMTEuMjUgMTM6MjksIEph
biBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDE0LjExLjIwMjUgMTI6MzIsIEp1ZXJnZW4gR3Jv
c3Mgd3JvdGU6DQo+Pj4+IC0tLSBhL0NvbmZpZy5taw0KPj4+PiArKysgYi9Db25maWcubWsN
Cj4+Pj4gQEAgLTE1OSw2ICsxNTksMTkgQEAgZGVmaW5lIG1vdmUtaWYtY2hhbmdlZA0KPj4+
PiAgICAJaWYgISBjbXAgLXMgJCgxKSAkKDIpOyB0aGVuIG12IC1mICQoMSkgJCgyKTsgZWxz
ZSBybSAtZiAkKDEpOyBmaQ0KPj4+PiAgICBlbmRlZg0KPj4+PiAgICANCj4+Pj4gK1BBVEhf
RklMRVMgOj0gUGF0aHMNCj4+Pj4gK0lOQ19GSUxFUyA6PSAkKGZvcmVhY2ggZiwgJChQQVRI
X0ZJTEVTKSwgJChYRU5fUk9PVCkvY29uZmlnLyQoZikubWspDQo+Pj4+ICsNCj4+Pj4gK2lu
Y2x1ZGUgJChJTkNfRklMRVMpDQo+Pj4NCj4+PiBJcyBhbnkgb2YgdGhlIGFib3ZlIHBhcnQg
b2YgaW50cm9kdWNpbmcgdGhlIG1hY3JvPyAiUGF0aHMiIGlzIGFscmVhZHkgYQ0KPj4+IHNw
ZWNpZmljIGNhc2Ugb2YgaG9sZGluZyBwYXR0ZXJucyB0aGF0IHdhbnQgcmVwbGFjaW5nLiBJ
biB0dXJuIC4uLg0KPj4+DQo+Pj4+ICtCVUlMRF9NQUtFX1ZBUlMgOj0gJChmb3JlYWNoIGYs
ICQoUEFUSF9GSUxFUyksICQoc2hlbGwgYXdrICckJDIgPT0gIjo9IiB7IHByaW50ICQkMTsg
fScgJChYRU5fUk9PVCkvY29uZmlnLyQoZikubWsuaW4pKQ0KPj4+DQo+Pj4gLi4uIGl0J3Mg
bm90IHF1aXRlIGNsZWFyIHRvIG1lIGhvdyBpdCBjYW4gYmUgJChQQVRIX0ZJTEVTKSBoZXJl
Lg0KPj4NCj4+IFNlZSBwYXRjaCA0Lg0KPj4NCj4+IFBBVEhfRklMRVMgaXMgc3BlY2lmeWlu
ZyB0aGUgLm1rIGZpbGVzIGNvbnRhaW5pbmcgdGhlIG1hcmtlciBkZWZpbml0aW9ucy4NCj4+
IEkgbmVlZCB0aGUgYWJpbGl0eSB0byBoYXZlIG11bHRpcGxlIHN1Y2ggZmlsZXMgaW4gb3Jk
ZXIgdG8gYmUgYWJsZSB0byBsZXQNCj4+IHRvb2xzL2NvbmZpZ3VyZSBidWlsZCBpdHMgb3du
IGRlZmluaXRpb25zLg0KPiANCj4gVGhhdCdzIGEgZ29vZCBleGFtcGxlIC0gd2h5IHdvdWxk
IHRoYXQgYWZmZWN0IHRoZSBzdHViZG9tLyBwYXJ0IG9mIHRoZSB0cmVlPw0KPiBJbW8gd2hh
dCBwYXR0ZXJuIGZpbGUocykgdG8gdXNlIHdhbnRzIGxlYXZpbmcgdG8gdGhlIGludm9rZWUg
b2YgdGhlIG1hY3JvLA0KPiBub3QgcGlubmluZyBkb3duIGdsb2JhbGx5IGZvciBldmVyeW9u
ZS4NCg0KWWVzLCBJIGNvdWxkIGFkZCB0aGUgdG9vbHMgc3BlY2lmaWMgbWFya2VyIGZpbGUg
aW4gdGhlIHVzZSBjYXNlcyB1bmRlciB0b29scy4NCg0KVGhlIHF1ZXN0aW9uIGlzIHdoZXRo
ZXIgYWRkaW5nIGl0IHRvIDYgTWFrZWZpbGVzIGlzIHJlYWxseSB3b3J0aCB0aGF0DQpvcHRp
bWl6YXRpb24sIGVzcGVjaWFsbHkgYXMgb25seSBidWlsZGluZyB0aGUgbWFuIGZpbGVzIHdv
dWxkIGJlIGVmZmVjdGVkDQpyaWdodCBub3cgKHdoaWNoIGNvdWxkIGNoYW5nZSBpbiBmdXR1
cmUsIG9mIGNvdXJzZSkuDQoNCg0KSnVlcmdlbg0K
--------------PGNE6SYQ1MmMa1wO1tpIV6GS
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-----

--------------PGNE6SYQ1MmMa1wO1tpIV6GS--

--------------DbmIrp4ljiJnQkEUap9d4xpO--

--------------0o8z4I3jvQFR3i6YExUnUPZi
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/Ey8FAmkbHswFAwAAAAAACgkQsN6d1ii/Ey/t
rgf/cyJi3VZQ235vB6xsXq1/3kH9jMDT6w5pVClotl6t9Y5zn3Uxan4eje5TqOjcLFSvkp31nO9/
7RDYijQaKp1r8KluLfUAhpMzGoAlfWF2uaJknGvBcWQjH6PkpNgkxu4r1GcxezUvYqTH59+2uH2C
9oXWcd2WwwApBBgpYsEm1JxqDPrpsR54QyvT8jocck0JlASbpKmWn/aGF6DWsP0cIBOb4IDNGNS0
bhmIEAb+0PqV0ChBZDZFsSBQeCqBqJqso1Xab6IHhB0Aq6Tj74SjcaTzOzeo4rkCOBc44IU1zRq7
KHD5N3FB8ynDUOyN98bpandP4vEGKanrVZ7orur06g==
=6A3J
-----END PGP SIGNATURE-----

--------------0o8z4I3jvQFR3i6YExUnUPZi--


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 13:17:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 13:17:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163902.1490942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKz6y-0003aI-T6; Mon, 17 Nov 2025 13:17:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163902.1490942; Mon, 17 Nov 2025 13:17:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKz6y-0003aB-QE; Mon, 17 Nov 2025 13:17:40 +0000
Received: by outflank-mailman (input) for mailman id 1163902;
 Mon, 17 Nov 2025 13: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=Lf15=5Z=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vKz6w-0003a5-QU
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 13:17:38 +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 c91f9822-c3b7-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 14:17:37 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b7277324204so558066566b.0
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 05:17:37 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fa81223sm1099575566b.4.2025.11.17.05.17.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 05:17: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: c91f9822-c3b7-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763385456; x=1763990256; 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=m5QAkK9HJ3r6Kvc48MieC0UEFKRy6gqepKNQ3ygFeJI=;
        b=EV0nttCTpE6RBFvt8Ds7nFRp94Ejh8UAIbsaNWtpWtUoxOrwC7tKxguQa+uaFZhYCq
         b29ysjIP2J3mepIENch6xv82YjM5FJ0re3GotSFMEgvFcWIuFHhj5y11Lk7IrM2SjBNg
         8glz3kMqb6yZUCFPQ4TovGGb6ET/nCcZ1oo/rkD+1JzH8o9VQp7UNtleTo+6w4vi91Se
         N1BTSfBrc+CO83qwUCk07/BWAPkVlL7qNCKi97Kw/vcfz7PGZHSonPCef8Id6Q6Ey3Ep
         rAMHZF/omcZEduUwuTRgrXyLwQ3cjKPiMYEl6Rlv7xs87wlZHwzKTs4v1IlJvyGaOtGW
         cXGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763385456; x=1763990256;
        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=m5QAkK9HJ3r6Kvc48MieC0UEFKRy6gqepKNQ3ygFeJI=;
        b=AdSOx4w6JIfTwICnxif2rbF+VteRrv7kYU7yDBdxxdpgs+dcxxNhVzpJZVH9IqVYcs
         WSAghDKQrSPt01hHzIBWTdmZW1O/bi+UDF2l4sPTC7dczZr0leHsqjKQAg6V5D7n0wif
         6l1YP0NYqDNuuOmNWr372LSDkjkOLgxpGXmvGKtyWHGv/Ol9207aYpYCE2LVFE+CRPBB
         7Khfn4//C4Psy7HKaa2SmcucCd5tNi+wwzL1ddXdt8ySrYZRIHnWqz+AdyyWQcEfiZ8b
         luy63CQVtHs6zV5IfyelxBzRdnSctpZuUZeCbkpozlcsSeUwSG7l1yr1NBW0rUucRNGY
         QDmQ==
X-Forwarded-Encrypted: i=1; AJvYcCUEL+gn3lj+e8YJpSVBpeIKZwiG5PxuI5xD4SGI5tg7Grv2gVcfAFxBKbRK2Tdjz50oAdQgMjX37D0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyu0Z1K4t3S5RCMnb0dJs8gxQQ89pHbu3vvipJZ/L3nz9J1UYDb
	qJ9EsuE7FjygsV6TMu0fmi4zSfVtBFNulvhApE5EHTSriWhaykvDNoUEmgJ0LXgkQUA=
X-Gm-Gg: ASbGncvBOhrX+ALSIj3oxtTUHBcICrFtbFDb8yOiZTV5E6HB8VP8S5GyNq0YM74Zw8C
	kNqBQbdQlcOKAObSKPi9aZL6xoUoiFEjHJePOyNtb4slVRubVycdx9G/2xL6BC6NGEHFaEm3t/d
	L8VlXgG+vUK/NpVPD2qjaBwhP59SZ3pdiiwJUzPlVWbqIdJ3Qq0Jre0eq/v0IZ4JoPdQQg6JLVK
	GuMw4PlmFWCQgDmu1U+Za2MbGKr+wMrr2Nyb6zTZNn92/2qd2IWyoEBg5xDC9KeSBjQW7qq9ps6
	HpTerj8sr0Vi6kFvZN+jxKCB3voJp5343t9lHb/QdWW/uxIW3NnqKWFHo/UlCLRxSXdUdFHumtH
	vucvIoCYAyeiFqkQFtOAx8YI8xMJ1be4GWHUf71P7PzSVDpdaN37COS8PRKHf3m8p56h5w3UMjg
	3dGF76yL1tiHlDdze+hiGcz8Fl9Q/mXHtoYcmDdtfv1QDNZdIJcecHJu13S4IH6KRd0qUJg5rJq
	wcGVJf4UxnDPO+5arpl1iN9kttbrX7mYRW/ENk=
X-Google-Smtp-Source: AGHT+IHZnFAOPlu79GVJDsns6EVEVp5BbAFNEYPf2reJQXu7e8Wj3rS0uws4D/Qd4Ps03+oYas8oGg==
X-Received: by 2002:a17:906:7305:b0:b72:c103:88db with SMTP id a640c23a62f3a-b736780a895mr1182402466b.9.1763385456362;
        Mon, 17 Nov 2025 05:17:36 -0800 (PST)
Message-ID: <d0f7a82a-b3f9-4716-a5a0-a8605da65243@suse.com>
Date: Mon, 17 Nov 2025 14:17:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/4] docs: replace @xxx@ markers at build time
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-3-jgross@suse.com>
 <7e24823f-cce1-4430-83f1-ebde6986efa4@citrix.com>
 <2de93313-9f1b-46a7-99c8-618281aff2f1@suse.com>
 <e4d19c4e-8eac-400f-8e3a-83684a290da6@suse.com>
 <0ed9b152-6465-4736-be59-352d68b77e6f@suse.com>
 <45c6d3dd-3901-4609-918b-ba6b685d6496@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: <45c6d3dd-3901-4609-918b-ba6b685d6496@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------ioJNvAX588Hz4fqGP8Fy7y6N"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------ioJNvAX588Hz4fqGP8Fy7y6N
Content-Type: multipart/mixed; boundary="------------p2Nn0Sk0YgPkzEit00oBSXJM";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Message-ID: <d0f7a82a-b3f9-4716-a5a0-a8605da65243@suse.com>
Subject: Re: [PATCH v2 2/4] docs: replace @xxx@ markers at build time
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-3-jgross@suse.com>
 <7e24823f-cce1-4430-83f1-ebde6986efa4@citrix.com>
 <2de93313-9f1b-46a7-99c8-618281aff2f1@suse.com>
 <e4d19c4e-8eac-400f-8e3a-83684a290da6@suse.com>
 <0ed9b152-6465-4736-be59-352d68b77e6f@suse.com>
 <45c6d3dd-3901-4609-918b-ba6b685d6496@suse.com>
In-Reply-To: <45c6d3dd-3901-4609-918b-ba6b685d6496@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=

--------------p2Nn0Sk0YgPkzEit00oBSXJM
Content-Type: multipart/mixed; boundary="------------9IIyGmLB01KfAMZ8J1Tz3mV4"

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

T24gMTcuMTEuMjUgMTQ6MDAsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxNy4xMS4yMDI1
IDEzOjU1LCBKw7xyZ2VuIEdyb8OfIHdyb3RlOg0KPj4gT24gMTcuMTEuMjUgMTM6MzMsIEph
biBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDE0LjExLjIwMjUgMTQ6MDAsIErDvHJnZW4gR3Jv
w58gd3JvdGU6DQo+Pj4+IE9uIDE0LjExLjI1IDEyOjQwLCBBbmRyZXcgQ29vcGVyIHdyb3Rl
Og0KPj4+Pj4gT24gMTQvMTEvMjAyNSAxMTozMiBhbSwgSnVlcmdlbiBHcm9zcyB3cm90ZToN
Cj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZG9jcy9NYWtlZmlsZSBiL2RvY3MvTWFrZWZpbGUNCj4+
Pj4+PiBpbmRleCAzNzc3NmQzMDNjLi5lNWY0YThjYTg2IDEwMDY0NA0KPj4+Pj4+IC0tLSBh
L2RvY3MvTWFrZWZpbGUNCj4+Pj4+PiArKysgYi9kb2NzL01ha2VmaWxlDQo+Pj4+Pj4gQEAg
LTgsOCArOCwxMSBAQCBEQVRFCQk6PSAkKGNhbGwgZGF0ZSwiKyVZLSVtLSVkIikNCj4+Pj4+
PiAgICAgRE9DX0FSQ0hFUyAgICAgIDo9IGFybSBwcGMgcmlzY3YgeDg2XzMyIHg4Nl82NA0K
Pj4+Pj4+ICAgICBNQU5fU0VDVElPTlMgICAgOj0gMSA1IDcgOA0KPj4+Pj4+ICAgICANCj4+
Pj4+PiArSU5fRklMRVMgOj0gbWFuL3hsLWRpc2stY29uZmlndXJhdGlvbi41LnBvZCBtYW4v
eGwtbmV0d29yay1jb25maWd1cmF0aW9uLjUucG9kDQo+Pj4+Pj4gK0lOX0ZJTEVTICs9IG1h
bi94bC4xLnBvZCBtYW4veGwuY2ZnLjUucG9kIG1hbi94bC5jb25mLjUucG9kDQo+Pj4+Pg0K
Pj4+Pj4gU29ycnksIEkgbWVhbnQgdG8gc2F5IHRoaXMgb24gdGhlIHByZXZpb3VzIHJldmlz
aW9uLsKgIENhbiB3ZSBwbGVhc2UgbGlzdA0KPj4+Pj4gdGhlc2Ugb25lIHBlciBsaW5lLCBm
b3IgdGhlIGZ1dHVyZSBlYXNlIG9mIGluc2VydGluZy9yZW1vdmluZy4NCj4+Pj4NCj4+Pj4g
T2theS4NCj4+Pj4NCj4+Pj4+IElzIElOX0ZJTEVTIHJlYWxseSBjb3JyZWN0P8KgIFRoZXNl
IGFyZSB0aGUgZ2VuZXJhdGVkIChub24tLmluKSBmaWxlcywNCj4+Pj4+IHJhdGhlciB0aGFu
IHRoZSAuaW4gZmlsZXMgdGhlbXNlbHZlcy7CoCBHRU5fRklMRVMgZnJvbSB2MSB3b3VsZCBz
ZWVtIHRvDQo+Pj4+PiBiZSBhIGJldHRlciBmaXQuDQo+Pj4+DQo+Pj4+IEkgd2FudGVkIHRv
IG1ha2UgY2xlYXIgdGhpcyBpcyByZWxhdGVkIHRvICouaW4gZmlsZXMuIEFuZCBJTUhPIEdF
Tl9GSUxFUw0KPj4+PiB3YXMgdG9vIGdlbmVyaWMgb24gYSBzZWNvbmQgdGhvdWdodC4NCj4+
Pj4NCj4+Pj4gR0VORVJBVEVEX0ZST01fSU5fU1VGRklYRURfRklMRVMgc2VlbXMgYSBsaXR0
bGUgYml0IGNsdW1zeS4gOy0pDQo+Pj4+IFNlcmlvdXNseSwgaWYgeW91IGhhdmUgYW55IGJl
dHRlciBuYW1lLCBJJ2QgYmUgaGFwcHkgdG8gdXNlIGl0Lg0KPj4+DQo+Pj4gR0VOX1BPRF9G
SUxFUywgc2VlaW5nIHRoZXkncmUgYWxsICoucG9kPw0KPj4NCj4+IEZvciB0aGlzIGNhc2Us
IG1heWJlLiBPVE9IIGluIGNhc2Ugc29tZW9uZSBhZGRzIGEgLnBvZG1hbiBmaWxlIHdlJ2Qg
bmVlZA0KPj4gdG8gcmVuYW1lIGFnYWluLg0KPj4NCj4+IEFuZCBJIHRoaW5rIHVzaW5nIHRo
ZSBzYW1lIG1ha2UgdmFyaWFibGUgbmFtZSBpbiBhbGwgTWFrZWZpbGVzIG5lZWRpbmcgdG8N
Cj4+IHNwZWNpZnkgKi5pbiBkZXJpdmVkIGZpbGVzIHdvdWxkIGJlIHByZWZlcmFibGUuDQo+
Pg0KPj4gTWF5YmUgSU5fVEFSR0VUUz8NCj4gDQo+IEJldHRlciB0aGFuIElOX0ZJTEVTLCBi
dXQgc3RpbGwgcG90ZW50aWFsbHkgYW1iaWd1b3VzLiBIb3cgYWJvdXQgc3RpY2tpbmcNCj4g
dG8gSU5fRklMRVMgYnV0IGluZGVlZCBlbnVtZXJhdGluZyB0aGUgLmluIHRoZXJlICh6YXBw
aW5nIHRoZSBzdWZmaXggdXBvbg0KPiB1c2UpPyBBbmQvb3Igd291bGQgJCh3aWxkY2FyZCA8
cGF0aD4vKi5pbikgcGVyaGFwcyBtYWtlIHNlbnNlIHRvIHVzZT8NCg0KWmFwcGluZyB0aGUg
c3VmZml4IHVwb24gdXNlIHdvdWxkIGJlIHBvc3NpYmxlLCBidXQgbW9yZSBjbHVtc3kgKHRo
ZXJlIGFyZQ0Kbm9ybWFsbHkgYXQgbGVhc3QgMyBkaXJlY3QgdXNlcyBvZiBJTl9GSUxFUyBp
biBlYWNoIGFmZmVjdGVkIE1ha2VmaWxlLCB3aGlsZQ0KdGhlcmUgYXJlIDAgdXNlIGNhc2Vz
IG9mIHRoZSAuaW4gc3VmZml4ZWQgc291cmNlIGZpbGVzKS4NCg0KVXNpbmcgYSBsb2NhbCBt
YWtlIHZhcmlhYmxlIGZvciBzcGVlZGluZyB0aGF0IHVwIHdvdWxkIGhhdmUgdGhlIHNhbWUg
cHJvYmxlbQ0KYXMgYmVmb3JlOiBob3cgdG8gbmFtZSBpdD8NCg0KQW5kIHVzaW5nICQod2ls
ZGNhcmQgPHBhdGg+LyouaW4pIGlzIG5vdCBhbiBvcHRpb24sIGFzIHRoYXQgd291bGQgcmVp
bnRyb2R1Y2UNCnRoZSBuZWVkIHRvIGRpc3Rpbmd1aXNoIHRoZSBjb25maWd1cmUtdGltZSBh
bmQgYnVpbGQtdGltZSAqLmluIGZpbGVzLCB3aGljaA0KSSBzb2x2ZWQgaW4gVjEgb2YgbXkg
c2VyaWVzIGJ5IHJlbmFtaW5nIHRoZSBidWlsZC10aW1lIG9uZXMgdG8gKi5zcmMuDQoNCg0K
SnVlcmdlbg0K
--------------9IIyGmLB01KfAMZ8J1Tz3mV4
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-----

--------------9IIyGmLB01KfAMZ8J1Tz3mV4--

--------------p2Nn0Sk0YgPkzEit00oBSXJM--

--------------ioJNvAX588Hz4fqGP8Fy7y6N
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/Ey8FAmkbIG8FAwAAAAAACgkQsN6d1ii/Ey+F
1Qf/d7f3K4hUwiSapvxrq8SZF4gods0A0Bf69TqTEcTogswoSwm9AHS9uxG6bPgXoCAM8vyIBN6K
876lRAwvxwtULlzY0Tm+9X8I62Egr4vnTyNgrV3EraU9mwn1WSxcT0HZ5kM78TDDNuqae2RkgOFf
qgKh6jG2U/FLKUQthBhV+KZ9DHOjdgtu44PmPmOLW6c0WCSKz7wT4hUqZCNHPd4WcW49w1SIs/1B
hKgtHnApGFxLFo6rHA71jmH+YbDPBxC6aTswAfJyrFYTlRv9R/rpoaM30YZtOUhT3kLDdrjU9v0+
RcRwRUIwGz8ZB0ehoQ3BJYEsq+Mqj/OKeOio4Y13rw==
=Fsde
-----END PGP SIGNATURE-----

--------------ioJNvAX588Hz4fqGP8Fy7y6N--


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 13:43:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 13:43:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163914.1490952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKzVr-0000Wf-SJ; Mon, 17 Nov 2025 13:43:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163914.1490952; Mon, 17 Nov 2025 13:43:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKzVr-0000WY-PB; Mon, 17 Nov 2025 13:43:23 +0000
Received: by outflank-mailman (input) for mailman id 1163914;
 Mon, 17 Nov 2025 13:43: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=ZxLE=5Z=bounce.vates.tech=bounce-md_30504962.691b2674.v1-89622097d293476ebb0cdc24370e7a26@srs-se1.protection.inumbo.net>)
 id 1vKzVp-0000WO-Vj
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 13:43:22 +0000
Received: from mail180-15.suw31.mandrillapp.com
 (mail180-15.suw31.mandrillapp.com [198.2.180.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5f5e6df1-c3bb-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 14:43:18 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-15.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4d988N4snJzPm0Ybg
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 13:43:16 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 89622097d293476ebb0cdc24370e7a26; Mon, 17 Nov 2025 13:43: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: 5f5e6df1-c3bb-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763386996; x=1763656996;
	bh=ntBvLrHN7LkrqjWf1C2pRNFbMWGvwGs0k5Eaaf5LmJA=;
	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=EICX6tAx7p2BAxDWX89PhypZhv9EAAs23fbdnAY/fS7WDkugGw9nz/aG2KV0G6hza
	 mOMJmvgJsCpfhatxoxZ+/F23nmtz7kOUTromtsZ9mfTSS678RieYKYQ88YCltfiZ9C
	 qBX8TeG+u0tkUzk0dUJFRHxBW7KqY76vs5cudP37zOZRqtVEQlU2u/0PrFbEnilM8E
	 X5s0c99Xrfz0SP9eg0show7qCmC3TODaY61RF4jug3nSZquDBNbtuWSBIPmXGskI9g
	 5IynCKqkE9bN44sDVuuojXF6ep5QCOnvhemxZZhPTDK9PRd7+NEvyUMs8gNLFtvdRG
	 VLMFGHJAQ9mVA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763386996; x=1763647496; i=teddy.astie@vates.tech;
	bh=ntBvLrHN7LkrqjWf1C2pRNFbMWGvwGs0k5Eaaf5LmJA=;
	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=DG2xbH9E8v7g9qNoRwxGM3Re0625nqt2s5hyiUGPR3CgUuGzJTCcQZb9B+2Ocwq+y
	 QS3nODCLwywzPSkfyV2bbclbYNAAZDxyEoRQcmp1SNKShYbfQWbP7+jJlWboGRd5DI
	 p9oI984JXdpi880WMfVOcxnQzyyVyiXp1MRwMreBOo1ynvNWEthTQ/3dLqUnNVQmrT
	 KgD7DKXyqaZijL7b2r4t+/9O0VGp4BDS9ZYf86gN5/IQYJ9CJZGulriJeC3L2QYf5e
	 aH5sXml8IRxP8k+9Lt8oZo177/bqe80bWy1tRr2CO6zvKKbpWtVZOi16le1U4NU32m
	 V0STA/7B3AsOw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v3]=20ioreq:=20Make=20sure=20ioreq=20is=20always=20in-bounds?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763386995157
Message-Id: <8e1403ce-c333-4236-b38a-82525c7b542f@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Julian Vetter" <julian.vetter@vates.tech>, xen-devel@lists.xenproject.org
References: <dddbae09e8e6b94a20f5ce24f3560dd15e5c6c01.1763382746.git.teddy.astie@vates.tech> <97ffeca9-348e-4997-a223-359fefa83107@suse.com>
In-Reply-To: <97ffeca9-348e-4997-a223-359fefa83107@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.89622097d293476ebb0cdc24370e7a26?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251117:md
Date: Mon, 17 Nov 2025 13:43:16 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 17/11/2025 =C3=A0 13:46, Jan Beulich a =C3=A9crit=C2=A0:
> On 17.11.2025 13:35, Teddy Astie wrote:
>> A 4K page appears to be able to hold 128 ioreq entries, which luckly
>> matches the current vCPU limit. However, if we decide to increase the
>> domain vCPU limit, that doesn't hold anymore and this function would now
>> silently create a out of bounds pointer leading to confusing problems.
>>
>> All architectures with ioreq support don't support 128 vCPU limit for
>> HVM guests, and  have pages that are at least 4 KB large, so this case
>> doesn't occurs in with the current limits.
>>
>> For the time being, make sure we can't make a Xen build that can
>> accidentally make a out of bounds pointers here.
>>
>> No functional change.
>>
>> Reported-by: Julian Vetter <julian.vetter@vates.tech>
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> 
> I was meaning to ack this, but ...
> 
>> --- a/xen/common/ioreq.c
>> +++ b/xen/common/ioreq.c
>> @@ -99,6 +99,7 @@ static ioreq_t *get_ioreq(struct ioreq_server *s, stru=
ct vcpu *v)
>>   
>>       ASSERT((v =3D=3D current) || !vcpu_runnable(v));
>>       ASSERT(p !=3D NULL);
>> +    BUILD_BUG_ON(HVM_MAX_VCPUS > (PAGE_SIZE / sizeof(struct ioreq)));
> 
> ... does this even build on e.g. Arm? IOREQ_SERVER is a setting which can=
 be
> enabled (with EXPERT=3Dy) also for non-x86. Yet HVM_MAX_VCPUS looks to be=
 an
> x86-only thing. (I then also wonder about some of what the description sa=
ys).
> 
> Just to mention (no further change requested at this point, in this regar=
d):
> HVM_MAX_VCPUS being part of the public interface, we'll need to see wheth=
er we
> can sensibly retain that identifier to carry changed meaning once we up t=
he
> limit. The check here may therefore not trigger at that point; the hope t=
hen
> is that while making respective changes, people would at least stumble ac=
ross
> it by e.g. seeing it in grep output.
> 

Apparently it doesn't build (debian-bookworm-gcc-arm32-randconfig 
catched it).
ARM does provide MAX_VIRT_CPUS and GUEST_MAX_VCPUS which is 128 or 
lower, but that doesn't map (or not properly) with what we have in x86 
(MAX_VIRT_CPUS=3D8192 is PV-specific, and GUEST_MAX_VCPUS doesn't exist).

I am not sure what to do, looks like many things are redundant here.

> Jan



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Nov 17 13:49:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 13:49:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163926.1490962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKzc7-0001JS-FG; Mon, 17 Nov 2025 13:49:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163926.1490962; Mon, 17 Nov 2025 13:49:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKzc7-0001JL-Bp; Mon, 17 Nov 2025 13:49:51 +0000
Received: by outflank-mailman (input) for mailman id 1163926;
 Mon, 17 Nov 2025 13:49: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=fyG8=5Z=bounce.vates.tech=bounce-md_30504962.691b27f9.v1-70580733afca4796bdd468aa9b758f12@srs-se1.protection.inumbo.net>)
 id 1vKzc6-0001JF-PW
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 13:49:50 +0000
Received: from mail180-15.suw31.mandrillapp.com
 (mail180-15.suw31.mandrillapp.com [198.2.180.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 46ea1619-c3bc-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 14:49:46 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-15.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4d98Hs2nlyzPm0YBh
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 13:49:45 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 70580733afca4796bdd468aa9b758f12; Mon, 17 Nov 2025 13:49: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: 46ea1619-c3bc-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763387385; x=1763657385;
	bh=mO6salj5sp01CJoed4sk4CCQzBMxza7Mwxm/SOKiU24=;
	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=DXdUDoptKDExTiTRAWerKO4ajq0IsKKPOdpRzTnzjoWRBpDd/yI9qpxxJJrvTa2uS
	 T6TlqTJUhOK0Qvxv0YEajTaPMKLTNAQtM0SzVpCMlKYORQWFSUGWUbmMw2mM3o5Qbr
	 fh8iWEhgnoPwcpYa3orF8rZZHb8HK8sqarf4nt9UTSMhjGzCf3MHOyYKY+YdFnfke1
	 X4OW1toA8tG5rDEy4UcbdjRKD+frFA2wkAZABqdNlykqZMKJwaPSPsC4HaHFqLcagO
	 k+bgDxfLcYKOKVfoKhzwkiyIXyUzYMLd8BmyYdCzMJr3xGetj8iSuCkMryNygYr0ik
	 Paux1xle0rZhA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763387385; x=1763647885; i=teddy.astie@vates.tech;
	bh=mO6salj5sp01CJoed4sk4CCQzBMxza7Mwxm/SOKiU24=;
	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=jqPm8fcGrW0SyQSHTRZc2H5XggsSnsh7DQ9cfWkxP+Xupy9Qu0yBwMMgRMoIi9zqk
	 XkpPCmnVCLuJbzFT9rNm9leN0ErAIdOB2tfx0mxm0lDArG2hJ3FIO1DK4Axhrvi0Wb
	 J8AXHwUM3BVKFAEqa1/t4Uf5/RstS/V8tusA5yH5jbwQfKzxxtet7PKNiMe526vC93
	 gVy5Y6Aldemb39UWozLLWyltYrlitwEYZRYahZVEQXC+qnx4Su8bImp+UrcGID9aWy
	 XfmWxf82WwXM1JxQlEd+QIN2gxTj+0ilt6NfCb0yxsxwSM+RXsPWQKnQ2BF6OcyJXj
	 INvJLTXxmH5Mw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=201/2]=20amd/iommu:=20Always=20atomically=20update=20DTE?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763387384261
Message-Id: <4da9ecf1-3984-43a6-be45-1988bf79b85d@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>, "Jason Andryuk" <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1762961527.git.teddy.astie@vates.tech> <a14812d39743f5f49614d099bdac6720bf7c4fae.1762961527.git.teddy.astie@vates.tech> <b3ed438d-2b73-4b07-99e5-01e66a833f4d@suse.com>
In-Reply-To: <b3ed438d-2b73-4b07-99e5-01e66a833f4d@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.70580733afca4796bdd468aa9b758f12?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251117:md
Date: Mon, 17 Nov 2025 13:49:45 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 13/11/2025 =C3=A0 12:38, Jan Beulich a =C3=A9crit=C2=A0:
> On 12.11.2025 16:37, Teddy Astie wrote:
>> amd_iommu_set_root_page_table chooses between updating atomically
>> and non-atomically depending on whether the DTE is active or not.
>>
>> This choice existed mostly because cx16 wasn't supposed always available
>> until [1]. Thus we don't need to threat the non-atomic path in a special
>> way anymore.
>>
>> By rearranging slightly the atomic path, we can make it cover all the ca=
ses
>> which improves the code generation at the expense of systematically perf=
orming
>> cmpxchg16b.
>>
>> Also remove unused raw64 fields of ldte, and the deprecated comment as t=
he
>> function actually behaves in a more usual way and can't return >0.
>>
>> [1] 2636fcdc15c7 "x86/iommu: check for CMPXCHG16B when enabling IOMMU"
>>
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>> ---
>>   xen/drivers/passthrough/amd/iommu_map.c | 78 ++++++++-----------------
>>   1 file changed, 25 insertions(+), 53 deletions(-)
>>
>> diff --git a/xen/drivers/passthrough/amd/iommu_map.c b/xen/drivers/passt=
hrough/amd/iommu_map.c
>> index 320a2dc64c..e3165d93aa 100644
>> --- a/xen/drivers/passthrough/amd/iommu_map.c
>> +++ b/xen/drivers/passthrough/amd/iommu_map.c
>> @@ -154,69 +154,41 @@ static void set_iommu_ptes_present(unsigned long p=
t_mfn,
>>       unmap_domain_page(table);
>>   }
>>   
>> -/*
>> - * This function returns
>> - * - -errno for errors,
>> - * - 0 for a successful update, atomic when necessary
>> - * - 1 for a successful but non-atomic update, which may need to be war=
ned
>> - *   about by the caller.
>> - */
>>   int amd_iommu_set_root_page_table(struct amd_iommu_dte *dte,
>>                                     uint64_t root_ptr, uint16_t domain_i=
d,
>>                                     uint8_t paging_mode, unsigned int fl=
ags)
>>   {
>>       bool valid =3D flags & SET_ROOT_VALID;
>>   
>> -    if ( dte->v && dte->tv )
>> -    {
>> -        union {
>> -            struct amd_iommu_dte dte;
>> -            uint64_t raw64[4];
>> -            __uint128_t raw128[2];
>> -        } ldte =3D { .dte =3D *dte };
>> -        __uint128_t res, old =3D ldte.raw128[0];
>> -        int ret =3D 0;
>> -
>> -        ldte.dte.domain_id =3D domain_id;
>> -        ldte.dte.pt_root =3D paddr_to_pfn(root_ptr);
>> -        ldte.dte.iw =3D true;
>> -        ldte.dte.ir =3D true;
>> -        ldte.dte.paging_mode =3D paging_mode;
>> -        ldte.dte.v =3D valid;
>> -
>> -        res =3D cmpxchg16b(dte, &old, &ldte.raw128[0]);
>> -
>> -        /*
>> -         * Hardware does not update the DTE behind our backs, so the
>> -         * return value should match "old".
>> -         */
>> -        if ( res !=3D old )
>> -        {
>> -            printk(XENLOG_ERR
>> -                   "Dom%d: unexpected DTE %016lx_%016lx (expected %016l=
x_%016lx)\n",
>> -                   domain_id,
>> -                   (uint64_t)(res >> 64), (uint64_t)res,
>> -                   (uint64_t)(old >> 64), (uint64_t)old);
>> -            ret =3D -EILSEQ;
>> -        }
>> +    union {
>> +        struct amd_iommu_dte dte;
>> +        __uint128_t raw128[2];
>> +    } ldte =3D { .dte =3D *dte };
>> +    __uint128_t res, old =3D ldte.raw128[0];
>>   
>> -        return ret;
>> -    }
>> +    ldte.dte.domain_id =3D domain_id;
>> +    ldte.dte.pt_root =3D paddr_to_pfn(root_ptr);
>> +    ldte.dte.iw =3D true;
>> +    ldte.dte.ir =3D true;
>> +    ldte.dte.paging_mode =3D paging_mode;
>> +    ldte.dte.tv =3D true;
>> +    ldte.dte.v =3D valid;
>> +
>> +    res =3D cmpxchg16b(dte, &old, &ldte.raw128[0]);
>>   
>> -    if ( valid || dte->v )
>> +    /*
>> +     * Hardware does not update the DTE behind our backs, so the
>> +     * return value should match "old".
>> +     */
>> +    if ( res !=3D old )
>>       {
>> -        dte->tv =3D false;
>> -        dte->v =3D true;
>> -        smp_wmb();
>> +        printk(XENLOG_ERR
>> +                "Dom%d: unexpected DTE %016lx_%016lx (expected %016lx_%=
016lx)\n",
>> +                domain_id,
>> +                (uint64_t)(res >> 64), (uint64_t)res,
>> +                (uint64_t)(old >> 64), (uint64_t)old);
> 
> Indentation is now off by 1 here.
> 
>> +        return -EILSEQ;
> 
> The downside of this is that all updates can now take this path. Yes, thi=
s shouldn't
> be possible to be taken, but it's a (minor) concern nevertheless. At the =
very least
> such a downside wants, imo, mentioning in the description, even if for no=
thing else
> than to make clear that it was a deliberate choice.
> 

I only expect to see this path in case of a bug (recoverable here), 
which is only checked in the res !=3D old case. But if something similar 
occurs in the non-atomic path, then nothing good will happen as such 
checks cannot be implemented properly.

Perhaps we want to emphasis this :
"The race check is now always made instead of only being made for the 
atomic path. This specific path should be triggered under normal 
circumstances, and is very likely a bug."

And wrap the res !=3D old inside a unlikely() to insist on this aspect.

> Jan
> 



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Nov 17 13:55:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 13:55:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163941.1490976 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKzhu-0003GO-BR; Mon, 17 Nov 2025 13:55:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163941.1490976; Mon, 17 Nov 2025 13:55:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKzhu-0003GH-5w; Mon, 17 Nov 2025 13:55:50 +0000
Received: by outflank-mailman (input) for mailman id 1163941;
 Mon, 17 Nov 2025 13:55:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=De9A=5Z=bounce.vates.tech=bounce-md_30504962.691b2961.v1-e0a14a2970824abcbe9a77270c3a3747@srs-se1.protection.inumbo.net>)
 id 1vKzhs-0003GB-Jd
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 13:55:48 +0000
Received: from mail180-15.suw31.mandrillapp.com
 (mail180-15.suw31.mandrillapp.com [198.2.180.15])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1dde24a2-c3bd-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 14:55:47 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-15.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4d98Qn5YL5zPm17kV
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 13:55:45 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 e0a14a2970824abcbe9a77270c3a3747; Mon, 17 Nov 2025 13:55: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: 1dde24a2-c3bd-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763387745; x=1763657745;
	bh=Jawcta93i7ZOpDiKzPjoaOUJjosVVO/UllUgK0aPrxE=;
	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=oI4gMR8FLbEgkSAw/RhrYt6xpctoWD28u7/Xfx6zoSF49WNPx1G3LPjpfzQB+erfp
	 /adeWRBamG5GNz4jKHHZgAMYFc7KPBvet12wbbQGdxwc7x0U6lFeIiZDEZZJo/qL/E
	 A3wJEXjQlsg/HtGI95vXCszRBMTVjCjH4J6X5PjI6PdsYxkedpn3ybn9KK2cnezF3l
	 C9Yr/8lRa9980nkrhn3o0TSUSnu1aBvbJB+vJcqKuwa54YxqemGAuoA2rjp4rTu1cu
	 R9PZrca0A89IZbYFozO8sv4TjQW1CVnszAt+uOPPe2s/MRcvQg/70rif4jtAC/0VnW
	 TxPlEPpnxmowg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763387745; x=1763648245; i=teddy.astie@vates.tech;
	bh=Jawcta93i7ZOpDiKzPjoaOUJjosVVO/UllUgK0aPrxE=;
	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=vs6vEfPkSb/EM2TZ2JbLZXxqRbUNofoELNEtJFEBPrzQZcdeERSJjXFZPtQ7pxEhl
	 oEM3OA3OQ7l2bNwHHboqYqSl7AeG9QPD/9xWhikMjdDeVBAp3cYH/f7KAqft+Xx8CB
	 xWiqproOyq8msVmbgyKPJE1pEPjlrGjaohiyHIqYmvZiHhA0zPKKHBdy8BaX4+y3UM
	 mHm7Jxp8V0fSfAYXp7EpS58r0KiLDUD/VWhP9JPBrE/Ol0mV3aNj7IWW8QoGICqLZQ
	 syUf+jC7zmVWkJ8NdSS0n07yiQaXfah0pGmGJm+jtXjexSmyvrUAT827VHegwqwbeL
	 9UtnrFkXK82Lw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=201/2]=20amd/iommu:=20Always=20atomically=20update=20DTE?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763387744479
Message-Id: <26fdfb89-99a2-49b9-81c5-ea94f2fbc799@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>, "Jason Andryuk" <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1762961527.git.teddy.astie@vates.tech> <a14812d39743f5f49614d099bdac6720bf7c4fae.1762961527.git.teddy.astie@vates.tech> <b3ed438d-2b73-4b07-99e5-01e66a833f4d@suse.com> <dcd39051-b2bf-409c-907f-3357ae06cc25@vates.tech>
In-Reply-To: <dcd39051-b2bf-409c-907f-3357ae06cc25@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.e0a14a2970824abcbe9a77270c3a3747?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251117:md
Date: Mon, 17 Nov 2025 13:55:45 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 17/11/2025 =C3=A0 14:05, Teddy Astie a =C3=A9crit=C2=A0:
> Le 13/11/2025 =C3=A0 12:38, Jan Beulich a =C3=A9crit=C2=A0:
>> On 12.11.2025 16:37, Teddy Astie wrote:
>>> amd_iommu_set_root_page_table chooses between updating atomically
>>> and non-atomically depending on whether the DTE is active or not.
>>>
>>> This choice existed mostly because cx16 wasn't supposed always availabl=
e
>>> until [1]. Thus we don't need to threat the non-atomic path in a specia=
l
>>> way anymore.
>>>
>>> By rearranging slightly the atomic path, we can make it cover all the 
>>> cases
>>> which improves the code generation at the expense of systematically 
>>> performing
>>> cmpxchg16b.
>>>
>>> Also remove unused raw64 fields of ldte, and the deprecated comment 
>>> as the
>>> function actually behaves in a more usual way and can't return >0.
>>>
>>> [1] 2636fcdc15c7 "x86/iommu: check for CMPXCHG16B when enabling IOMMU"
>>>
>>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>>> ---
>>> =C2=A0 xen/drivers/passthrough/amd/iommu_map.c | 78 ++++++++-----------=
------
>>> =C2=A0 1 file changed, 25 insertions(+), 53 deletions(-)
>>>
>>> diff --git a/xen/drivers/passthrough/amd/iommu_map.c b/xen/drivers/ 
>>> passthrough/amd/iommu_map.c
>>> index 320a2dc64c..e3165d93aa 100644
>>> --- a/xen/drivers/passthrough/amd/iommu_map.c
>>> +++ b/xen/drivers/passthrough/amd/iommu_map.c
>>> @@ -154,69 +154,41 @@ static void set_iommu_ptes_present(unsigned 
>>> long pt_mfn,
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unmap_domain_page(table);
>>> =C2=A0 }
>>> -/*
>>> - * This function returns
>>> - * - -errno for errors,
>>> - * - 0 for a successful update, atomic when necessary
>>> - * - 1 for a successful but non-atomic update, which may need to be 
>>> warned
>>> - *=C2=A0=C2=A0 about by the caller.
>>> - */
>>> =C2=A0 int amd_iommu_set_root_page_table(struct amd_iommu_dte *dte,
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 uint64_t=
 root_ptr, uint16_t 
>>> domain_id,
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 uint8_t =
paging_mode, unsigned int 
>>> flags)
>>> =C2=A0 {
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bool valid =3D flags & SET_ROOT_VALID;
>>> -=C2=A0=C2=A0=C2=A0 if ( dte->v && dte->tv )
>>> -=C2=A0=C2=A0=C2=A0 {
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 union {
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 str=
uct amd_iommu_dte dte;
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 uin=
t64_t raw64[4];
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __u=
int128_t raw128[2];
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } ldte =3D { .dte =3D *dte =
};
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __uint128_t res, old =3D ld=
te.raw128[0];
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 int ret =3D 0;
>>> -
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ldte.dte.domain_id =3D doma=
in_id;
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ldte.dte.pt_root =3D paddr_=
to_pfn(root_ptr);
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ldte.dte.iw =3D true;
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ldte.dte.ir =3D true;
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ldte.dte.paging_mode =3D pa=
ging_mode;
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ldte.dte.v =3D valid;
>>> -
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 res =3D cmpxchg16b(dte, &ol=
d, &ldte.raw128[0]);
>>> -
>>> -=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 * Hardware does not u=
pdate the DTE behind our backs, so the
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * return value should=
 match "old".
>>> -=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 if ( res !=3D old )
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 {
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pri=
ntk(XENLOG_ERR
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 "Dom%d: unexpected DTE %016lx_%016l=
x (expected 
>>> %016lx_%016lx)\n",
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 domain_id,
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (uint64_t)(res >> 64), (uint64_t)re=
s,
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (uint64_t)(old >> 64), (uint64_t)ol=
d);
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret=
 =3D -EILSEQ;
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }
>>> +=C2=A0=C2=A0=C2=A0 union {
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct amd_iommu_dte dte;
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __uint128_t raw128[2];
>>> +=C2=A0=C2=A0=C2=A0 } ldte =3D { .dte =3D *dte };
>>> +=C2=A0=C2=A0=C2=A0 __uint128_t res, old =3D ldte.raw128[0];
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return ret;
>>> -=C2=A0=C2=A0=C2=A0 }
>>> +=C2=A0=C2=A0=C2=A0 ldte.dte.domain_id =3D domain_id;
>>> +=C2=A0=C2=A0=C2=A0 ldte.dte.pt_root =3D paddr_to_pfn(root_ptr);
>>> +=C2=A0=C2=A0=C2=A0 ldte.dte.iw =3D true;
>>> +=C2=A0=C2=A0=C2=A0 ldte.dte.ir =3D true;
>>> +=C2=A0=C2=A0=C2=A0 ldte.dte.paging_mode =3D paging_mode;
>>> +=C2=A0=C2=A0=C2=A0 ldte.dte.tv =3D true;
>>> +=C2=A0=C2=A0=C2=A0 ldte.dte.v =3D valid;
>>> +
>>> +=C2=A0=C2=A0=C2=A0 res =3D cmpxchg16b(dte, &old, &ldte.raw128[0]);
>>> -=C2=A0=C2=A0=C2=A0 if ( valid || dte->v )
>>> +=C2=A0=C2=A0=C2=A0 /*
>>> +=C2=A0=C2=A0=C2=A0=C2=A0 * Hardware does not update the DTE behind our=
 backs, so the
>>> +=C2=A0=C2=A0=C2=A0=C2=A0 * return value should match "old".
>>> +=C2=A0=C2=A0=C2=A0=C2=A0 */
>>> +=C2=A0=C2=A0=C2=A0 if ( res !=3D old )
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 {
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 dte->tv =3D false;
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 dte->v =3D true;
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 smp_wmb();
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 printk(XENLOG_ERR
>>> +=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 "Dom%d: unexpected DTE %016lx_%016lx (expected 
>>> %016lx_%016lx)\n",
>>> +=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 domain_id,
>>> +=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 (uint64_t)(res >> 64), (uint64_t)res,
>>> +=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 (uint64_t)(old >> 64), (uint64_t)old);
>>
>> Indentation is now off by 1 here.
>>
>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return -EILSEQ;
>>
>> The downside of this is that all updates can now take this path. Yes, 
>> this shouldn't
>> be possible to be taken, but it's a (minor) concern nevertheless. At 
>> the very least
>> such a downside wants, imo, mentioning in the description, even if for 
>> nothing else
>> than to make clear that it was a deliberate choice.
>>
> 
> Apparently it doesn't build (debian-bookworm-gcc-arm32-randconfig 
> catched it).
> ARM does provide MAX_VIRT_CPUS and GUEST_MAX_VCPUS which is 128 or 
> lower, but that doesn't map (or not properly) with what we have in x86 
> (MAX_VIRT_CPUS=3D8192 is PV-specific, and GUEST_MAX_VCPUS doesn't exist).
> 
> I am not sure what to do, looks like many things are redundant here.
> 
>> Jan
>>
> 

Oops, sent the wrong message. Please ignore.


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Nov 17 14:05:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 14:05:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163954.1490984 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKzrB-0005HD-2d; Mon, 17 Nov 2025 14:05:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163954.1490984; Mon, 17 Nov 2025 14:05:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKzrB-0005H6-08; Mon, 17 Nov 2025 14:05:25 +0000
Received: by outflank-mailman (input) for mailman id 1163954;
 Mon, 17 Nov 2025 14:05: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vKzr9-0005H0-8J
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 14:05:23 +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 7439ecfc-c3be-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 15:05:21 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-640d0ec9651so7217634a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 06:05: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
 4fb4d7f45d1cf-6433a4b1fadsm10885503a12.31.2025.11.17.06.05.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 06:05: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: 7439ecfc-c3be-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763388320; x=1763993120; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oi15DKT3aDsg6QpimKdL+Q5O4OWBWSHT2/3dLqG5Y+U=;
        b=Iwy1ntzgN9L4Bfk+X+vqau3AnQEk+6W47iBVStsA3aqBM9PoV/Db7As5bDHHicQfOJ
         1QNpxEHsYZLMtFUgRFX7tiwiyM0a5A6T/BtA1oJvgp7EHvKFSpTCnWmRQGN3LEN7i7qD
         QMHVriQxaVgA7wpa2/YVfvcMPOCC1dItJBlxSgunKHmHI8CfQsNz3RP3f+HKiY0R08vK
         MOZCqGabVt8c/2KG89uZwGd8pJe5Dt8ilziCJoygbd5Db+gAt2KLBtzEpYxoRGtikF4R
         sowgO2U7/ZBP/vr88uRC64eIvmTTuJEiOVJHWwsM6jGW9TzpD2tbVKLCNy/+nu6Hm4gG
         RYJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763388320; x=1763993120;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oi15DKT3aDsg6QpimKdL+Q5O4OWBWSHT2/3dLqG5Y+U=;
        b=iOR/LD1f1dwn47QwP5HV4L5O1oG97zqrz8iSGtkia/3QhFQdSV5JtXhBrI3nM+eggr
         K8z+sPJQWJ1jynnQSFXnqGQVmGN06RoeIClQCuFe33Da4AMsV7M4sMdjrx5miuV1FH7a
         s8tpn6gwVORPCQp1SEtmrEyop8Io2WapAWeqa8fxl2aYVEne0NgrC2an7jQGo1xT784m
         JUrdDl9ZzWORoHcOIiKowQxWuniOOWu+OR7F479jqyI2tIPipP5I3CDavRe+2v1OJ1hw
         ++LqPBFYpLY2hkam38DQFFIN+7dGaGrOOw4wGLyRgKDQ7XqWMktMKOtMD1G04j/YxV8J
         r3Pw==
X-Forwarded-Encrypted: i=1; AJvYcCVPYeqfJ+edZUNsjwWdDkzZFm5tijblGZNRHHN1CJv/d97jBwlhQ6x+DqdqHtobZrqKabNjt4+IIa8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz94bJZhiIYwf8J1dT3p5cyIWMkaxM1Cr+mk8Wz7pWKscrmgpH6
	HKyXFFjlN7QZLzLhfW0O5ecIOwGihTAarD7V/uSWzNZ5KYJedWP4GATXoz2NDHvuBQ==
X-Gm-Gg: ASbGncsZSjKGWyfbh3m+1//paOzI133YK3fSsoJksKuFLbEKJqe3Qi8lasS2pvCRtvc
	WtRzuxYKpZ4/bIGQSZ8jHxGNbHhBT0ob3gcjUljvwG4cC4Re7f2KiXKa47Lm7FYobTIw2jfKCez
	NvIRO011Uii0lFTuxxDitInGxlQCOHSFzkgwusi3/7dBbEsnn1ozqCMJZFuNazhAUD142od0gAS
	SoskhYPh6TnuEb5tUQHvsCrLZGbfcy3PaYJQy03QNhe4SG8W1AhKPpy8BagS4330a+7EVCQGGwV
	KyhLysTGLz4F+mP+hh45o5nq1mqke5m6A4GpPbjGISK/lwAg0LLG6tJqJeZKGgB0ePzjubOVxTu
	QFN642748IgrhgUl358QZ4gnsAyo+NoZYS2K8vTHFcHIGr9/0Dra7rgmRfATYGBQhM1BdH8XDx8
	wk1oJSuVs9LfXqnkDwUDYAlZukJjNGtBrCMer1z+PMbuG2GPY05aTwoj/XJVs0X3Tn2+NIXV6Z3
	hs=
X-Google-Smtp-Source: AGHT+IEc5NYvTEyzp4bpEqgfqSNbLl+WC01KST4xXvQKVgmfCLvJrW7R14G6A1Z6/cmBBWwvxUmk2A==
X-Received: by 2002:a05:6402:2691:b0:640:a9b1:870b with SMTP id 4fb4d7f45d1cf-64350e21a78mr11764085a12.14.1763388320485;
        Mon, 17 Nov 2025 06:05:20 -0800 (PST)
Message-ID: <3eca4c7a-0d72-4149-892e-c3ffcfca0ed4@suse.com>
Date: Mon, 17 Nov 2025 15:05:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] build: add make macro for making file from file.in
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-2-jgross@suse.com>
 <936632a3-d713-4183-b1db-5a554b617b74@suse.com>
 <7577ceec-1271-4569-91f1-fd7197a33991@suse.com>
 <f42863be-aef8-4a7b-915b-235bd89a8341@suse.com>
 <7ce4dd85-d88d-420d-b6da-9bee9fe61017@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: <7ce4dd85-d88d-420d-b6da-9bee9fe61017@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.11.2025 14:10, JÃ¼rgen GroÃŸ wrote:
> On 17.11.25 13:54, Jan Beulich wrote:
>> On 17.11.2025 13:48, JÃ¼rgen GroÃŸ wrote:
>>> On 17.11.25 13:29, Jan Beulich wrote:
>>>> On 14.11.2025 12:32, Juergen Gross wrote:
>>>>> --- a/Config.mk
>>>>> +++ b/Config.mk
>>>>> @@ -159,6 +159,19 @@ define move-if-changed
>>>>>    	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
>>>>>    endef
>>>>>    
>>>>> +PATH_FILES := Paths
>>>>> +INC_FILES := $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
>>>>> +
>>>>> +include $(INC_FILES)
>>>>
>>>> Is any of the above part of introducing the macro? "Paths" is already a
>>>> specific case of holding patterns that want replacing. In turn ...
>>>>
>>>>> +BUILD_MAKE_VARS := $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).mk.in))
>>>>
>>>> ... it's not quite clear to me how it can be $(PATH_FILES) here.
>>>
>>> See patch 4.
>>>
>>> PATH_FILES is specifying the .mk files containing the marker definitions.
>>> I need the ability to have multiple such files in order to be able to let
>>> tools/configure build its own definitions.
>>
>> That's a good example - why would that affect the stubdom/ part of the tree?
>> Imo what pattern file(s) to use wants leaving to the invokee of the macro,
>> not pinning down globally for everyone.
> 
> Yes, I could add the tools specific marker file in the use cases under tools.
> 
> The question is whether adding it to 6 Makefiles is really worth that
> optimization, especially as only building the man files would be effected
> right now (which could change in future, of course).

Sticking to Paths.mk (which sits in the global config/ subtree anyway) might
be okay. The new (tools/ specific aiui) file you add later doesn't really
belong there, though. Therefore the macro may want to be constructed such
that it can be used both ways.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 14:06:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 14:06:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163965.1490996 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKzsC-0005lm-DA; Mon, 17 Nov 2025 14:06:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163965.1490996; Mon, 17 Nov 2025 14: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 1vKzsC-0005lf-8n; Mon, 17 Nov 2025 14:06:28 +0000
Received: by outflank-mailman (input) for mailman id 1163965;
 Mon, 17 Nov 2025 14:06:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vKzsA-0005lZ-MD
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 14:06:26 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9a2ae6b6-c3be-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 15:06:24 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-b73161849e1so747492966b.2
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 06:06: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
 a640c23a62f3a-b734fad41cesm1069832766b.16.2025.11.17.06.06.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 06:06: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: 9a2ae6b6-c3be-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763388384; x=1763993184; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SsMybJeNLcUHgJongywDT624v6pbOOCP6TG9WWFzqrY=;
        b=YFMcX4hOkV3CDnWq0OQUyg6wRhBdPf/pb3BFlNf3fMX7HxrHjfO+oe75ddBvVB4vxt
         N+epha6QUTV2q8oCcY9t2haoDPeg5IAAjqvS2hAiJFFC7T1miUdzLf949xq33nLQn7Sk
         AOqeMJCO55yzzoCjXHS63/4BZvnfZzexkTcP7FczMiD9Im3KG9WGc+NxdpZjXNZA2psD
         xG6ri6GvtBJE1aQRg8zWVnUAsqbmn533plhQjXocZCJbO6b2+0ufRbUpvmLtDaQQWJ2X
         encSehO72znsnVBGf1HHeAYVya+T4LmgPKPtK3qAnaaWeXExlJdqWB74FyaeMEOuAVx/
         Y3kA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763388384; x=1763993184;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SsMybJeNLcUHgJongywDT624v6pbOOCP6TG9WWFzqrY=;
        b=rrOd/SD3ykJpQ/bui06WBO9sJssA9IJYi1P5j16xiF+upaCalQiP6LzBOtf7/2AkI0
         p94pqBUQAXOLmgtZGVarS4y+b0/GPr8FQdpjaTNPH9VRk+f9txfIvR/NDmA94kV9Tekm
         6Q4MH5rapA/P/Net61h1Eu7d7WE/o+SywJWJofpfS+o90PQfqu/JxxaDYeQE+30BbJlt
         usAqp4I5algiR4iGcsI1u/VEOXrpBlBYG21EypDo4o2PmezAOqkBoqZlxegZnccYuy+A
         gkr/sagC2Os4bqUwCkIR5er+rhv4mBfrQLNwD/NKq/GQrM4bqyncEb44CwY7cSWhzCpr
         kYEA==
X-Forwarded-Encrypted: i=1; AJvYcCUjQnoSmTZ8Jr4hexIdiZNZLGFiamXoOXGd6Xpq2yLh6jIpMhjob1Za2YEk53MH0OmK3kCf8HVXAuY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwzsENdLej50jfm4a5OunUW5r1Ju+eZ4OZIb9vKXBckMCbeSUlg
	rW/F4gPKGAQ/zd4CYRxmj0e6Q/xtAnL5E26wY/Mhnj1vvS1VMmV6ZVFsLEpQMpAmsQ==
X-Gm-Gg: ASbGncuxGpNq7GbEMrRaR3mPci95qTQ7Mz2YHpH1u39ilho9g2QzLJHFEUUWU41CyGn
	ao/7HeJHpqbKKJbc8K6vM6pg23BvXAcCXI8OstAs9KVLa3aatB0rTokPNWQvKou9W3p+zOkxVyW
	aNU7SXUBhK6e9jC5iBCH5Pjb0Ra4fKQj0FnCynGKQmP80dQOti+Ec9ROw6MKw/dF6wSMQcH7o7N
	5qlEkh+pbXKV3THfBxUuFA2Nz1zhCnhvqnyFLR2WLJqL0DoWSP4ZieDX2+owKdy7MnRIcdi90Ba
	hwoufrWVqfI3AYr3PF31q+usuhh+8Byu190cp3wHUfm9gbcdxSUVXyFBKMd0hBVqrsNUc8mo2a1
	Nj5pLMCH1ih5aLw6RfpgKtvefFMopIrqQ3FR89JupFzbW6R99AvCrzkCKkJdulfob5975WLHXKE
	fPpE6rGgrAWWb+L0nNzYRSwNk8kd3V76QKwLpzsTCgcvSpP+X7zXtgumF/v9QHEbBMWcmq6Ilry
	bCVpUW4zigCqOArvqxro7Ku
X-Google-Smtp-Source: AGHT+IHuAWQxWa3dxctrAGzh/VvFciAKb/DIQ4hrRph25Oi7F9Zgy5Us7kirYd+2aQcCpOeXd5bwAg==
X-Received: by 2002:a17:907:6d2a:b0:b50:a389:7aa4 with SMTP id a640c23a62f3a-b73677eea3bmr1315555066b.13.1763388384054;
        Mon, 17 Nov 2025 06:06:24 -0800 (PST)
Message-ID: <401757d0-643d-4901-9859-9ac110888883@suse.com>
Date: Mon, 17 Nov 2025 15:06:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/4] docs: replace @xxx@ markers at build time
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251114113238.9279-1-jgross@suse.com>
 <20251114113238.9279-3-jgross@suse.com>
 <7e24823f-cce1-4430-83f1-ebde6986efa4@citrix.com>
 <2de93313-9f1b-46a7-99c8-618281aff2f1@suse.com>
 <e4d19c4e-8eac-400f-8e3a-83684a290da6@suse.com>
 <0ed9b152-6465-4736-be59-352d68b77e6f@suse.com>
 <45c6d3dd-3901-4609-918b-ba6b685d6496@suse.com>
 <d0f7a82a-b3f9-4716-a5a0-a8605da65243@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: <d0f7a82a-b3f9-4716-a5a0-a8605da65243@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.11.2025 14:17, JÃ¼rgen GroÃŸ wrote:
> And using $(wildcard <path>/*.in) is not an option, as that would reintroduce
> the need to distinguish the configure-time and build-time *.in files,

Hmm, yes, if there's a mix of them in any one directory, that wouldn't work.

Jan

> which
> I solved in V1 of my series by renaming the build-time ones to *.src.
> 
> 
> Juergen



From xen-devel-bounces@lists.xenproject.org Mon Nov 17 14:09:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 14:09:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163978.1491004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKzvQ-0006Os-ON; Mon, 17 Nov 2025 14:09:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163978.1491004; Mon, 17 Nov 2025 14:09:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vKzvQ-0006Ol-Lk; Mon, 17 Nov 2025 14:09:48 +0000
Received: by outflank-mailman (input) for mailman id 1163978;
 Mon, 17 Nov 2025 14:09: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vKzvP-0006Of-5H
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 14:09:47 +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 0fcd84a6-c3bf-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 15:09:42 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-64162c04f90so7088343a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 06:09: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
 a640c23a62f3a-b734fad4487sm1116583266b.22.2025.11.17.06.09.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 06:09: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: 0fcd84a6-c3bf-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763388581; x=1763993381; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=VXNtjF6veLw1YHLqTY8l6Q2aj1InYFAF5HJx/Kwd3Qk=;
        b=IT/pfZPrI8GT1m3RTJmvo4E35Vk7b3FhjG9fNipFjVyaPGEtLKVaw5gyZa0xttV7Tm
         SMGFy/3begJ7EXqBuwqLczFsqSxg4eapz50xncsB4Wr7N+fX6WcK688FS+nTKQSCI6MB
         KsDsavxBK2eEG4wlIx268IyLeGy6eKPyRL0EYD2QFHoXYCkLy2kp78tfARU4uGdUuMsL
         2H7WvrSLx4MeZCdXi6gUQUqATH9LD+4Js7LrgpuJ/9K0dn8a+ilrrfkNYiUlqHkTOsgT
         znyiyJwAuwTmHV/VG/tYC+nrlKypadAx4Vlxo5vZjg4EzplT6wNd5V/55AEvouf9NxPA
         LiWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763388581; x=1763993381;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VXNtjF6veLw1YHLqTY8l6Q2aj1InYFAF5HJx/Kwd3Qk=;
        b=CfDQqY99vtIyNTaMo+MlH5eODko2N1YZE+3mX2SbH2I1ZMmV46vk2HGEnk9ZyHgp0m
         4pUK4u/Tzn7BF9g4TJPc06UqRyMZAIsRR+QyoPi3uvGy7SrQdcgky0bvDMfaAa38Daxz
         tEJkFjhjTFRYm/4sFOToNm9vdKBpzSSN8Fz7dN0nsbvbpyh/MJ3CIPGeceqFhVjj84lO
         TZgXlH82Hm53qTaloNyxbA+mkPJGZMb78ALhyv60IjGYCPvKBb/y4Xxuc8Z+nNqNDenf
         XG3CK1IKmWCE5Kb42AABniCIx7EwPLwO54QA5ru3mxkkT6XfZt/zLNEvYLybNxDNVsy7
         Nb2Q==
X-Forwarded-Encrypted: i=1; AJvYcCV+scUX2Z/Aq4+4BD0r/owG1QSFl5mxzCiF8hT84m12RYhRcuBS1Rhpkg/EZ+yS72ECjXTaS6kO8+g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwENEG2LwtMIo706mL3cnmXo+xo4tf1nVx3e1WDuqO1S+q6DMn4
	ksxXjjnXTolvEZHPypnTkzlGyyk9vKek9mvbRaO0MD5KHGBrSSoPGtjvskdSIpVOWg==
X-Gm-Gg: ASbGncvIefu/h2h38rbMGtVdSMygBawUxT3+eQbPjSxrODetoyFq1c9ihnojAWu504x
	ptPng+0qKamDOvOHNDzHQjh9/eOw5f0u+MNxyF6CRxik0RTR5T6oYYxexdQTEdIRvkLz8XoF5P/
	rNTpLCWMm8IRLYE8Gf6W5poRDYGbrTktK7gJj/JysvzNk6fb8k7gGWuXTBkHgXsLvG5H1fLBvMi
	l0ykDcigvblzY97T+0R956pngULxXj8PlRLWG4LWyvLVeftF5IkVB7bND+y4Alsd6eydjrwTW6I
	MDY6nMOdO/mUDtN+dntEQEcWM/lBv/iedLCL2qpzPucbl6tOYOmoE3cV2qQjxcLWQiB57qFcY17
	oiRMaEIPcg7GlsSFko7VzJFcYJqQIS+aWzpOkZ+fx3C2wQDrwmlXmrWPTWHKDVw3otz0VpiSPCb
	ih+5wACaThurla3EqGUpXuO7FOKRllxr6CXCG3Ewz+00/TCm+914HgBBizy4r7PxOs5jyzU14j0
	Uv5ScTeCKl4Hg==
X-Google-Smtp-Source: AGHT+IFFPMtK1WSA7NW/A+hNFQHScjfbrnsNzatTFCJ9a+4pzx/MH71FS0QTyI/mnt2ZkrL5GnRnFQ==
X-Received: by 2002:a17:907:1c27:b0:b73:3e15:a370 with SMTP id a640c23a62f3a-b7367c001f0mr1349226366b.57.1763388581464;
        Mon, 17 Nov 2025 06:09:41 -0800 (PST)
Message-ID: <e0f69901-b8d4-4af0-b085-d936fdfcb0fd@suse.com>
Date: Mon, 17 Nov 2025 15:09:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] ioreq: Make sure ioreq is always in-bounds
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>,
 Julian Vetter <julian.vetter@vates.tech>, xen-devel@lists.xenproject.org
References: <dddbae09e8e6b94a20f5ce24f3560dd15e5c6c01.1763382746.git.teddy.astie@vates.tech>
 <97ffeca9-348e-4997-a223-359fefa83107@suse.com>
 <8e1403ce-c333-4236-b38a-82525c7b542f@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: <8e1403ce-c333-4236-b38a-82525c7b542f@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.11.2025 14:43, Teddy Astie wrote:
> Le 17/11/2025 Ã  13:46, Jan Beulich a Ã©critÂ :
>> On 17.11.2025 13:35, Teddy Astie wrote:
>>> A 4K page appears to be able to hold 128 ioreq entries, which luckly
>>> matches the current vCPU limit. However, if we decide to increase the
>>> domain vCPU limit, that doesn't hold anymore and this function would now
>>> silently create a out of bounds pointer leading to confusing problems.
>>>
>>> All architectures with ioreq support don't support 128 vCPU limit for
>>> HVM guests, and  have pages that are at least 4 KB large, so this case
>>> doesn't occurs in with the current limits.
>>>
>>> For the time being, make sure we can't make a Xen build that can
>>> accidentally make a out of bounds pointers here.
>>>
>>> No functional change.
>>>
>>> Reported-by: Julian Vetter <julian.vetter@vates.tech>
>>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>>
>> I was meaning to ack this, but ...
>>
>>> --- a/xen/common/ioreq.c
>>> +++ b/xen/common/ioreq.c
>>> @@ -99,6 +99,7 @@ static ioreq_t *get_ioreq(struct ioreq_server *s, struct vcpu *v)
>>>   
>>>       ASSERT((v == current) || !vcpu_runnable(v));
>>>       ASSERT(p != NULL);
>>> +    BUILD_BUG_ON(HVM_MAX_VCPUS > (PAGE_SIZE / sizeof(struct ioreq)));
>>
>> ... does this even build on e.g. Arm? IOREQ_SERVER is a setting which can be
>> enabled (with EXPERT=y) also for non-x86. Yet HVM_MAX_VCPUS looks to be an
>> x86-only thing. (I then also wonder about some of what the description says).
>>
>> Just to mention (no further change requested at this point, in this regard):
>> HVM_MAX_VCPUS being part of the public interface, we'll need to see whether we
>> can sensibly retain that identifier to carry changed meaning once we up the
>> limit. The check here may therefore not trigger at that point; the hope then
>> is that while making respective changes, people would at least stumble across
>> it by e.g. seeing it in grep output.
>>
> 
> Apparently it doesn't build (debian-bookworm-gcc-arm32-randconfig 
> catched it).
> ARM does provide MAX_VIRT_CPUS and GUEST_MAX_VCPUS which is 128 or 
> lower, but that doesn't map (or not properly) with what we have in x86 
> (MAX_VIRT_CPUS=8192 is PV-specific, and GUEST_MAX_VCPUS doesn't exist).
> 
> I am not sure what to do, looks like many things are redundant here.

Maybe non-x86 could surface HVM_MAX_VCPUS as an alias of whatever they already
got, much like CONFIG_HVM exists also for Arm, and will likely need introducing
for PPC and RISC-V (despite not being overly meaningful for non-x86)?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 14:18:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 14:18:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1163992.1491015 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL03k-0008SD-LH; Mon, 17 Nov 2025 14:18:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1163992.1491015; Mon, 17 Nov 2025 14: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 1vL03k-0008S6-HO; Mon, 17 Nov 2025 14:18:24 +0000
Received: by outflank-mailman (input) for mailman id 1163992;
 Mon, 17 Nov 2025 14:18: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vL03k-0008S0-2f
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 14:18: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 455fd57f-c3c0-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 15:18:21 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-640c1fda178so6764325a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 06:18: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
 4fb4d7f45d1cf-6433a4ce83dsm10240579a12.34.2025.11.17.06.18.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 06:18: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: 455fd57f-c3c0-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763389101; x=1763993901; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zFX5lmSzcDAqtrf3TPbbhrHSqxGNjHrD+ov/V1rpaUM=;
        b=WBVijsk6Kn3RI62sFcENzKU0KLHWeLJEP//QuRVzPLJdhHjAPIYTHupI9WeewRjH6W
         YsMjMHX/T/3CAqZGyzEDLTzlPB9Mxe9qS6MuEMojeAyY5RrIjXOLYZZ+4K5jRaYNYbDB
         Px9CA3dpobXwj5g2oUOKE6TexS1wpfa9TmQsygoGAH+4sZAjhH0dLxGL2acq2hy2Fe53
         l9mHS3Bq9mMX/8WVAwvD4+uOB8wENIe4e0BkqzOJ8QwlWJtUaFhYl1uJ64fSC//wbZrY
         koitd3hn5yDjgEdKm4ancoBnx+YYIH+ClUIZXSHGt8RukQOCvP8ZASBf28MfEXQdA6kX
         jJ6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763389101; x=1763993901;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zFX5lmSzcDAqtrf3TPbbhrHSqxGNjHrD+ov/V1rpaUM=;
        b=qSQPJhPImk/8d0H0SwH8csY8Y2f+cuqufQ3BZKGW31hPB0mbpAxYFd0JIqYcXuI6Da
         n06y6rQ4RG5kvQu+C97CbZy2GiGYYNJuOiaE5YQUrPz5I1oqOyhvJxTt6ClxMNGobLQv
         lmR5UZSgttU93qiTUTXYpte3N7EcutcNZRGMSOkv9PDBn2zeZqWkG2hFOPDT6HWYKbqS
         ekhvq+6xyrfgaJ+pSg6GfDMcrauQQyHeECdld1PvLCnRfbLnYReTB361RAcRyrdU8I+s
         JHcTwHCpXBbmr5SzNFU4lZ6dLvLpcEECWGQUeYHQxb4uVOy/Yd/0wjWKru11/iIOvIZg
         kgQw==
X-Forwarded-Encrypted: i=1; AJvYcCVDdLy90cJxcfk8zHW2IK6H00G8RZ1LVdsHQtVB+pXX7N4MdS8OGBVL2zhQhK+7QnPtvuscFypq/ho=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy5pvymc0RMmv6ujYgbUxtZOtgfknjRcreB06Fla1NOEmsr2jQB
	usUkqTxYa+spddand5s8AQsQdo9v2Ui+gdjSFL3OCd34in9dOi0jyk2lmlYaETkeXg==
X-Gm-Gg: ASbGncsxPJElzFZvVsJJCPGGM+KRZu0LqqBBOrob66YAC3DZxd+n5aPelFN5dDS21NI
	3FqOCyXJKfFN8uZTFKRmJHzhc2SUIt/i9XPkqr2VmJrO/6y7RJDnlScn8+ZTJhiESmDMfewcAP9
	/OGfEmqXO47dkSkNuKQl35ftJf1Mi1Qs6Pi8i9Czd4ZwjsmtZIVyyoRsnGviwXnizPxQgE1k5BX
	dKiws/Wpo4/JHevwq5wWhLzRJgfDQo8FIdb1UkkPeof5cHZSZvFCBTj6Fu8+kbVTc8/B9OrrDlx
	1Tx7Z7b0ab8FPBrYCfHOzyul1D7gtaJEYPyZA7Vmd2lASbXq/5SWo3HkP6hrxD/oEeRirU609SZ
	f26xWZpRFJO7wI2xXey+ZgN9hst717VIHKQT9DrrUW2rYsffw0QSn+pBCf5e9Lckw8vzW0vJMBB
	h8noZATGHCT0hPWtIjJhQe50qKRsJbMh5fAQ1iZ+LaCVimbnWyp3saBnN27XlOTR+ZoMZqG8wma
	ePkyE60thed2A==
X-Google-Smtp-Source: AGHT+IG1NSSUKRbuYJ4wtJ/MxGNyeWHfXnjVbolfQNUSvCuDsUOE++2uQPx9Dg2LZm6gXdgPPurysw==
X-Received: by 2002:a05:6402:42c7:b0:641:3a92:7e6f with SMTP id 4fb4d7f45d1cf-64350d2dba5mr11130057a12.0.1763389100696;
        Mon, 17 Nov 2025 06:18:20 -0800 (PST)
Message-ID: <c13a083a-bfba-4684-bdaf-dee4d5cd65b0@suse.com>
Date: Mon, 17 Nov 2025 15:18:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] amd/iommu: Always atomically update DTE
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1762961527.git.teddy.astie@vates.tech>
 <a14812d39743f5f49614d099bdac6720bf7c4fae.1762961527.git.teddy.astie@vates.tech>
 <b3ed438d-2b73-4b07-99e5-01e66a833f4d@suse.com>
 <4da9ecf1-3984-43a6-be45-1988bf79b85d@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: <4da9ecf1-3984-43a6-be45-1988bf79b85d@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.11.2025 14:49, Teddy Astie wrote:
> Le 13/11/2025 Ã  12:38, Jan Beulich a Ã©critÂ :
>> On 12.11.2025 16:37, Teddy Astie wrote:
>>> amd_iommu_set_root_page_table chooses between updating atomically
>>> and non-atomically depending on whether the DTE is active or not.
>>>
>>> This choice existed mostly because cx16 wasn't supposed always available
>>> until [1]. Thus we don't need to threat the non-atomic path in a special
>>> way anymore.
>>>
>>> By rearranging slightly the atomic path, we can make it cover all the cases
>>> which improves the code generation at the expense of systematically performing
>>> cmpxchg16b.
>>>
>>> Also remove unused raw64 fields of ldte, and the deprecated comment as the
>>> function actually behaves in a more usual way and can't return >0.
>>>
>>> [1] 2636fcdc15c7 "x86/iommu: check for CMPXCHG16B when enabling IOMMU"
>>>
>>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>>> ---
>>>   xen/drivers/passthrough/amd/iommu_map.c | 78 ++++++++-----------------
>>>   1 file changed, 25 insertions(+), 53 deletions(-)
>>>
>>> diff --git a/xen/drivers/passthrough/amd/iommu_map.c b/xen/drivers/passthrough/amd/iommu_map.c
>>> index 320a2dc64c..e3165d93aa 100644
>>> --- a/xen/drivers/passthrough/amd/iommu_map.c
>>> +++ b/xen/drivers/passthrough/amd/iommu_map.c
>>> @@ -154,69 +154,41 @@ static void set_iommu_ptes_present(unsigned long pt_mfn,
>>>       unmap_domain_page(table);
>>>   }
>>>   
>>> -/*
>>> - * This function returns
>>> - * - -errno for errors,
>>> - * - 0 for a successful update, atomic when necessary
>>> - * - 1 for a successful but non-atomic update, which may need to be warned
>>> - *   about by the caller.
>>> - */
>>>   int amd_iommu_set_root_page_table(struct amd_iommu_dte *dte,
>>>                                     uint64_t root_ptr, uint16_t domain_id,
>>>                                     uint8_t paging_mode, unsigned int flags)
>>>   {
>>>       bool valid = flags & SET_ROOT_VALID;
>>>   
>>> -    if ( dte->v && dte->tv )
>>> -    {
>>> -        union {
>>> -            struct amd_iommu_dte dte;
>>> -            uint64_t raw64[4];
>>> -            __uint128_t raw128[2];
>>> -        } ldte = { .dte = *dte };
>>> -        __uint128_t res, old = ldte.raw128[0];
>>> -        int ret = 0;
>>> -
>>> -        ldte.dte.domain_id = domain_id;
>>> -        ldte.dte.pt_root = paddr_to_pfn(root_ptr);
>>> -        ldte.dte.iw = true;
>>> -        ldte.dte.ir = true;
>>> -        ldte.dte.paging_mode = paging_mode;
>>> -        ldte.dte.v = valid;
>>> -
>>> -        res = cmpxchg16b(dte, &old, &ldte.raw128[0]);
>>> -
>>> -        /*
>>> -         * Hardware does not update the DTE behind our backs, so the
>>> -         * return value should match "old".
>>> -         */
>>> -        if ( res != old )
>>> -        {
>>> -            printk(XENLOG_ERR
>>> -                   "Dom%d: unexpected DTE %016lx_%016lx (expected %016lx_%016lx)\n",
>>> -                   domain_id,
>>> -                   (uint64_t)(res >> 64), (uint64_t)res,
>>> -                   (uint64_t)(old >> 64), (uint64_t)old);
>>> -            ret = -EILSEQ;
>>> -        }
>>> +    union {
>>> +        struct amd_iommu_dte dte;
>>> +        __uint128_t raw128[2];
>>> +    } ldte = { .dte = *dte };
>>> +    __uint128_t res, old = ldte.raw128[0];
>>>   
>>> -        return ret;
>>> -    }
>>> +    ldte.dte.domain_id = domain_id;
>>> +    ldte.dte.pt_root = paddr_to_pfn(root_ptr);
>>> +    ldte.dte.iw = true;
>>> +    ldte.dte.ir = true;
>>> +    ldte.dte.paging_mode = paging_mode;
>>> +    ldte.dte.tv = true;
>>> +    ldte.dte.v = valid;
>>> +
>>> +    res = cmpxchg16b(dte, &old, &ldte.raw128[0]);
>>>   
>>> -    if ( valid || dte->v )
>>> +    /*
>>> +     * Hardware does not update the DTE behind our backs, so the
>>> +     * return value should match "old".
>>> +     */
>>> +    if ( res != old )
>>>       {
>>> -        dte->tv = false;
>>> -        dte->v = true;
>>> -        smp_wmb();
>>> +        printk(XENLOG_ERR
>>> +                "Dom%d: unexpected DTE %016lx_%016lx (expected %016lx_%016lx)\n",
>>> +                domain_id,
>>> +                (uint64_t)(res >> 64), (uint64_t)res,
>>> +                (uint64_t)(old >> 64), (uint64_t)old);
>>
>> Indentation is now off by 1 here.
>>
>>> +        return -EILSEQ;
>>
>> The downside of this is that all updates can now take this path. Yes, this shouldn't
>> be possible to be taken, but it's a (minor) concern nevertheless. At the very least
>> such a downside wants, imo, mentioning in the description, even if for nothing else
>> than to make clear that it was a deliberate choice.
>>
> 
> I only expect to see this path in case of a bug (recoverable here), 
> which is only checked in the res != old case. But if something similar 
> occurs in the non-atomic path, then nothing good will happen as such 
> checks cannot be implemented properly.
> 
> Perhaps we want to emphasis this :
> "The race check is now always made instead of only being made for the 
> atomic path. This specific path should be triggered under normal 
> circumstances, and is very likely a bug."

s/should/shouldn't/ I suppose?

Jan

> And wrap the res != old inside a unlikely() to insist on this aspect.
> --
> Teddy Astie | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech
> 
> 



From xen-devel-bounces@lists.xenproject.org Mon Nov 17 14:21:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 14:21:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164004.1491025 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL073-0001g9-30; Mon, 17 Nov 2025 14:21:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164004.1491025; Mon, 17 Nov 2025 14:21: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 1vL072-0001g2-Vb; Mon, 17 Nov 2025 14:21:48 +0000
Received: by outflank-mailman (input) for mailman id 1164004;
 Mon, 17 Nov 2025 14:21: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=hQzi=5Z=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1vL071-0001f9-7A
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 14:21:47 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b91572ee-c3c0-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 15:21:36 +0100 (CET)
Received: from AS4PR10CA0017.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:5d8::7)
 by AMDPR08MB11483.eurprd08.prod.outlook.com (2603:10a6:20b:716::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.21; Mon, 17 Nov
 2025 14:21:33 +0000
Received: from AMS0EPF00000198.eurprd05.prod.outlook.com
 (2603:10a6:20b:5d8:cafe::ab) by AS4PR10CA0017.outlook.office365.com
 (2603:10a6:20b:5d8::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.22 via Frontend Transport; Mon,
 17 Nov 2025 14:21:36 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF00000198.mail.protection.outlook.com (10.167.16.244) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.9
 via Frontend Transport; Mon, 17 Nov 2025 14:21:32 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by GV2PR08MB8390.eurprd08.prod.outlook.com (2603:10a6:150:bc::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.21; Mon, 17 Nov
 2025 14:20:59 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc%5]) with mapi id 15.20.9320.013; Mon, 17 Nov 2025
 14:20: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: b91572ee-c3c0-11f0-980a-7dc792cee155
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=HPY0HH4QMgPEUREeTyLODd+wXVatVI6nuTl0kjZ1Kwqlbr3KVG8juH2ScTlzV5pIotx95syr6Y29vMR0zehRnBsB+qZKahDlv6iYDnkw5M19STnQB0wtZDIHk9Hu+CiG0suzdk9USGP1n0uJr1nw968Ggm4zrPxdkv8NJh9Rxanemry+siP/5v4HtFEbjkNL4lzsNcDprtIfJ0du5DCbNVNATLyntaVIaXJGaxTO+VFfpRdl29iSYI6ZrnmTsDOENp9rQwC8TVIHNpLzR9U9d/zvAgxcRE/tFmOYbAj9RKAeWPbAb0kWVzm/YK9yg9in+bulptGAGI1Kc1By+ylszQ==
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=QlIPpS5/9FnSYrrAmyhu4WvPH+6rexsPF7h1Tg5kqa4=;
 b=jecBaVe/ZJE96+pulB80ppLHcHepXaA9UTCskImXprtPQ6nxE1qI6ZNoeBj4/ulT4B5OusC+kBIoIx4M7SHv+hilleummS0j0tJsJh1d+SqhFMeFdUrLxnpsL1AEKmvACNCoQfwudkKKYsbXSlkpAfKk66cQRBoQNU+9G3xMFJLhUvIn9oG9NhwARMYYR8Nxm5kQ359Oeh7w86+p3Xh9JOTixEkwa8jWc5g8HP7ddnsfdrNouNZsQXHfKimhMX3lYPDfvZVMnuVR5duD3DStpdhJoAOWQXpahuQOi6ctfGNOHTfBaqdu1RxDydUFceyufdejws3ezYpMc9o3YxIeaA==
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=QlIPpS5/9FnSYrrAmyhu4WvPH+6rexsPF7h1Tg5kqa4=;
 b=LrmG7VlAQaKmt2LvhV0yTVy3WGCq1U8X27wSInty3kiAJgWYmkVxHcZujs5TWoHebPptAhxH7CNAnV9egbYm16fbVBlwoL6lvvKSb8RpVmR++ptHYV4pGQF79XSRvnR8UHRb6OYwu5P9uslgXQM7nU38rIyYBjxwL7CFGqi7OfU=
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=AfZM5EN/LZbDoX+8h4wE/jX3n8ni2/xVVzPN8gWS/0mx0g5FIbgSz1/YBX0Bz50er6wswbUERKidWoBKM84vRLw3bKj9rQFC4rpH/UVWezn1fnNv6CLB8sGOwi88wZu63Ak4giFGQs6/9G+cGp/sVty2qztVVXnYZGa8oa1ppY+z68Fb5UzOeYTBNXpKySJfxyLC+uAikWPv5fdv7UIT/AIOyleUgT1fkBivQP+4/roHI+6TN8aR5N10zC8fkTMZbZEBJFUkJ2myErVXCwSvUYjt7C5xUPiolyWPLe7NSJQmTzC7vdxLQyshGnqDSrwdiOJey3a38oiPUlMXKdHdQQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QlIPpS5/9FnSYrrAmyhu4WvPH+6rexsPF7h1Tg5kqa4=;
 b=iC55M7Yyg2HNHX+q9pMOz+sAEZTWK6XITw55qPmRT0lXgj8lZXo0i230/S2nU+suIbclug/Nh0ovVpXtk8uem2CQuewXG8+tQhX4gQcTCYd9fCzrkovWl6CwTfM79eRITZKsU4wEftia2fCQ8wCb3woVk9vnV43EFDnaWNKR7OXw5OI8k4m39mpIhD07TNqWMnZ3B20aazoY4mg/xhX8/q++cexgSkV/XHBgpPLOaxZzPE3b4sb7YyhxRoljFeuOyFgI6LxV0uGNlx8tuhchM/3f/QDyI45UkRpMOY/c3gXqjIU3S4cHe4wEEaBcvu6bYfRcD2jtvAq47Y4U9CT4Ow==
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=QlIPpS5/9FnSYrrAmyhu4WvPH+6rexsPF7h1Tg5kqa4=;
 b=LrmG7VlAQaKmt2LvhV0yTVy3WGCq1U8X27wSInty3kiAJgWYmkVxHcZujs5TWoHebPptAhxH7CNAnV9egbYm16fbVBlwoL6lvvKSb8RpVmR++ptHYV4pGQF79XSRvnR8UHRb6OYwu5P9uslgXQM7nU38rIyYBjxwL7CFGqi7OfU=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Orzel, Michal" <Michal.Orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Harry Ramsey <Harry.Ramsey@arm.com>
Subject: Re: [PATCH v2 1/3] arm/mpu: Implement setup_mm for MPU systems
Thread-Topic: [PATCH v2 1/3] arm/mpu: Implement setup_mm for MPU systems
Thread-Index: AQHcU9GZpx9Ewja+9EW1e1HUZJtzELTvMOuAgAAD+oCAB6VIAIAAGNOA
Date: Mon, 17 Nov 2025 14:20:57 +0000
Message-ID: <16A2378D-663C-435A-B668-DDB12957E52C@arm.com>
References: <20251111101601.4171120-1-harry.ramsey@arm.com>
 <20251111101601.4171120-2-harry.ramsey@arm.com>
 <80c02055-2687-4e24-8de0-8fb4dfe2af02@amd.com>
 <fe082ad9-ee55-46bd-8b93-5320649e6aca@arm.com>
 <EF7146C1-4351-49F1-A0A2-9BAE0EEFB888@arm.com>
 <7261ef7c-c574-4c3f-9aa0-259386f05d05@amd.com>
In-Reply-To: <7261ef7c-c574-4c3f-9aa0-259386f05d05@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)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|GV2PR08MB8390:EE_|AMS0EPF00000198:EE_|AMDPR08MB11483:EE_
X-MS-Office365-Filtering-Correlation-Id: 88c2f510-c6db-4677-ada6-08de25e49bd3
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:
 =?us-ascii?Q?7ygSgqyV3+/hIek0Vx5fJ1l41zKYLfXs8iSIOlalYD5u19PmjmooHxoqnHbd?=
 =?us-ascii?Q?edqEQzl8G23Cs3coc/sFBHgY585C8HDKZoatJe6h69zAxmN9mU7wIX4twwFO?=
 =?us-ascii?Q?ALMopmyGEtESQ3yC0+1rvloMKg+XvS4UYP6ZP0GHbSnIOFaVcLVjbdU2rAv7?=
 =?us-ascii?Q?h5JBE3x/0OMpuTYoInTal2U77nDKan4MO2NX8g8pU+4N4/pCc8BECN/OntzT?=
 =?us-ascii?Q?enjFUyTQwEh/Lk3f3k2bC805mdwffvrsV12+16Hu+9EAHXx8w4qjS6ghzuA2?=
 =?us-ascii?Q?jwfCdakAYDegAS1E+xbZS9gGfrM5kf5QHH0Cl1wN9RulJiRUetGHdo0r1OLN?=
 =?us-ascii?Q?zGrmNKqSqYCv0KGnKjgioWo7BlG7ZwXgwfeXYNsj6MgvaHoYGCeVPPXE1jF/?=
 =?us-ascii?Q?11Eb3x44sxnnHpepNG9aVBo8+PCTXKi+bmB8Fr0N7K4tSmmuw7300mawo3/B?=
 =?us-ascii?Q?+dkCOgjjF93gwAk/7rqlf6S1WmqPWhjKODBAWn/EZIInjhAvFEE4gWVaJ1nh?=
 =?us-ascii?Q?+XNn06a0AehzD2GnGrxCA4XopYFs0D61sbypMn1rTArF7KZjjWNJKiXN/XCT?=
 =?us-ascii?Q?7NUh6jrA9IKDrE+iK9paeW4Fhzvcpiy8BOhTkEPExjl99ZQI21vBcojfQg4a?=
 =?us-ascii?Q?i+w9NpFTEc60KTa/XwcipsQ4kUqDjyim5u74y9yRO95aQ0dI78xExgTYaOmT?=
 =?us-ascii?Q?WoufUNZ5tOYH1vbWWVrQWbwytfFZcke5N4+K+N0uni3NPBda8LKMXq66Go+x?=
 =?us-ascii?Q?+f/oD5EWg9IA5PxbTQEQ7fbWugL4FvTAwLj7ZOF6TFi8F9TpMnZGMGLLGMJV?=
 =?us-ascii?Q?jFVHENnH4NLJVD6YNYUDm8HT8OkFJXrsfeFQC46UcS5B8KKwshxKiZkT0ivN?=
 =?us-ascii?Q?HWGU3fGINu4Q2uU8WgZ9s0KPo6GiVBaAeZwBUfTcXJXBki/Ha1Qi1hlrwL9K?=
 =?us-ascii?Q?f6N9yfjJQqigzKP1CJdLUsFq3jSuFjKUIvMkSAPWMogVbd4FM6At1lYWE8b9?=
 =?us-ascii?Q?/SfrX7GkAljWvZS3zKylFZJhO8sTM1mkIpRe9HrVHC0ZuuX4TouBmVjd+Nt2?=
 =?us-ascii?Q?VtO1VRE2ObxnJONdhlTtgPqkW+Y7s5/oEmg5VXgC4RXa5yZaqv+rzNQTmgur?=
 =?us-ascii?Q?nuqNcocbzOPB9S9pNnUXiiY32YXQy7xf328L72jlg1cwWJTfjapLtuJmG/2l?=
 =?us-ascii?Q?wyqwOAQe7IReRAhBV74qwDk507ZO9/OO8STPgG545Z3MPxgng7rZcwAOzdUF?=
 =?us-ascii?Q?3hBstuKbKGP82AZLTRtltH4I2rFc3A/5dwWI0SGQAtWB9pG76HVgJPUDWMXu?=
 =?us-ascii?Q?Y73cPzgb4RiwHjhYfpAIG8anTIaLHdgm+b1Yhk1W1hwV/gw6dl4rqIpWx5mr?=
 =?us-ascii?Q?G8ePNLr6DK+9GZGUjjtEyCGsLfISpYSzwnOu3flq2nXazSsftB0jqhVMkLlN?=
 =?us-ascii?Q?ENjc7OLYeji0ZkHKE+GixMTFWWq9Djd18PmWEVIlCZkbe6mh1b1IGxyCL07P?=
 =?us-ascii?Q?AIc1T2hukRvK5tEy879T9UNjq3wRUGFfCx/Q?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <D94EFECD5033D1448121EC11E7BD50C2@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB8390
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF00000198.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	fa2332fe-8ceb-4464-7b42-08de25e48698
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|14060799003|35042699022|36860700013|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?sJQZtFYm0E0UrfTPKVezH6b8JSOc7x/txzZqbVZcFc4yxnJIfQkIavY3AGxX?=
 =?us-ascii?Q?LRbHMMNFSt6vn2D//Vt4J2/hawQnEnx83rKbGB+P0FV5wjmbDEmto1Z4qfFp?=
 =?us-ascii?Q?o+he/6B+WJQ2SUDaPUjPoZAo6iHGdutaceIHfhqocDE5KnhAVh9htfJGbf3m?=
 =?us-ascii?Q?MI5qZzYwpJfvHGBOJ3oN9tRxofMIzUvImoxBHuNlaya1f/+3gNc9IdjSsxQF?=
 =?us-ascii?Q?BblaJs3HbWArUo7wV15cDNy4u4tbRLYzPhnKCxvhdAZFF6IBtYwHmvx4qXE8?=
 =?us-ascii?Q?EaJL4S0u9uTMzh+AwtyXKi/Z/ABmgzP6BXyfMLc+X+nVZRh4UdhhG0MCsAvb?=
 =?us-ascii?Q?V8OG0duWH0Z5TGGv8mvmhBED3g1dkAakNNA7MsD0rDVp3pjYBcdxKqHHA52L?=
 =?us-ascii?Q?5g3mZQVV/eXhbuk4BwurJMjlhMzmlq4/ZYB4NInu3eO4clZx80UcgjM9sx/e?=
 =?us-ascii?Q?N/lQJqWvgaVpc3ITawTEe37HVh+wbL/qCZ/AzZivVg3cptt2SM8Vwl06zChX?=
 =?us-ascii?Q?FxWpBuM36UeXRIpb9A6SY0fsSVBdsVbJPIrUZZjYDczH3Dy605cylKfSTeHC?=
 =?us-ascii?Q?TNbV25nbWtMTviDzOXZNGXgdS0ghKbARbaa1BGX6ufuBZdUgkLajp2R+Yn4a?=
 =?us-ascii?Q?aZwiJ9/jz4g7+f/C8LGAl08roW9Aibktpha4L3v99pQlLf1YOOvlkuOvkK+y?=
 =?us-ascii?Q?pOZe5EdvLesWFsNzYe5caU6cxufgyQqkVTCiOghKlQursxaZi0zym7eafNAx?=
 =?us-ascii?Q?/H6UvjvPhF9nIkNF4mCBZQCbVtVOjv26FcyZgi4ZnyiHrVPid9meCi6/Cydo?=
 =?us-ascii?Q?UwPYsMWU6Xx5UZo4NQZXzBTgG+Bzj0P+8XGpiI8km9g3ZT99d04wAzF1vawC?=
 =?us-ascii?Q?v60g0zHCJJxxC3QSdBjuV4cK9AWJoGMGvWuj3oyAqATHw0ZGsV1Eap3A0wV3?=
 =?us-ascii?Q?8lp7odeJqYyyS2d4MEdRCelcHO9FOho2Vnj7RmqYiJzLh7sLkY5Clr61XAS3?=
 =?us-ascii?Q?gZtESc4zYWUXuR3LXGqirdbUS+gsnFs/0acrZNXcf8E2Y3odoZcSBJ4m66Bb?=
 =?us-ascii?Q?z58Uh0aUdzpiq7IOfF319XQESlVJn7o0q4i+lXVPtY4H3xU07g3VbPNJb55N?=
 =?us-ascii?Q?GDzimNJ4hwPlmqkBTN5ha4RJbUUc9/fbJBQ+94huCpsktIoIn1ER2SkrnSsY?=
 =?us-ascii?Q?w9mAb62It/0IlBC5cKwPTyT4IP1ET2zjfOgngnyGJKsS7J6HWlz7GoRq72CL?=
 =?us-ascii?Q?QU7MygoSJpfVsQQrp8gC9XjB27PvU5rRawTlX+ytBvI1+gHy6/0RfdhJ723R?=
 =?us-ascii?Q?X3djF4N4lsFqzSi7yuCdodif/aR1eotAPuWQB8IwZtGRxRmw9l4yipQLxK06?=
 =?us-ascii?Q?enfUd6rNfA4HSuGwBZIrrCZIFnpbiFBxwqwgDws4+dWkQa3a7PNaEiWv398M?=
 =?us-ascii?Q?u2ANlo3kIf+gBasWL2jSmxIRxwMwHu4vfwkcDFdG5CyeH9TAwiNaUbihGju3?=
 =?us-ascii?Q?zAD+9WcuUJ2deLaXuFP/5y3Nq4F2/Uu3tqegMFsESang+Kx0YMOKYPzg6T4K?=
 =?us-ascii?Q?cWuDnAHNOBrGRSCDejg=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)(14060799003)(35042699022)(36860700013)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2025 14:21:32.9391
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 88c2f510-c6db-4677-ada6-08de25e49bd3
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:
	AMS0EPF00000198.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMDPR08MB11483

HI Michal,

> On 17 Nov 2025, at 12:51, Orzel, Michal <Michal.Orzel@amd.com> wrote:
>=20
>=20
>=20
> On 12/11/2025 17:06, Luca Fancellu wrote:
>> Hi Michal,
>>=20
>>>>> +void __init setup_mm(void)
>>>>> +{
>>>>> +    const struct membanks *banks =3D bootinfo_get_mem();
>>>>> +    paddr_t ram_start =3D INVALID_PADDR;
>>>>> +    paddr_t ram_end =3D 0;
>>>>> +    paddr_t ram_size =3D 0;
>>>>> +    unsigned int i;
>>>>> +
>>>>> +    init_pdx();
>>>>> +
>>>>> +    for ( i =3D 0; i < banks->nr_banks; i++ )
>>>>> +    {
>>>>> +        const struct membank *bank =3D &banks->bank[i];
>>>>> +        paddr_t bank_end =3D bank->start + bank->size;
>>>>> +
>>>>> +        ram_size =3D ram_size + bank->size;
>>>>> +        ram_start =3D min(ram_start, bank->start);
>>>>> +        ram_end =3D max(ram_end, bank_end);
>>>>> +    }
>>>>> +
>>>>> +    total_pages =3D ram_size >> PAGE_SHIFT;
>>>>> +
>>>>> +    /*
>>>>> +     * On MMU systems we need some memory to allocate the page-table=
s used for
>>>>> +     * the directmap mappings.  But some regions may contain memory =
already
>>>>> +     * allocated for other uses (e.g. modules, reserved-memory...).
>>>>> +     *
>>>>> +     * On MPU systems we need to pre-reserve regions that were alloc=
ated for
>>>>> +     * other uses (e.g. modules, reserved-memory...).
>>>> I'm not sure I understand this part of the comment with regards to
>>>> populate_boot_allocator(). Could you please explain?
>>=20
>> Maybe here we should just write that on MPU system we are populating the=
 boot allocator with the
>> static heap region, since static heap is mandatory for MPU.
>>=20
>> What do you think?
> The reason for the original comment was to explain why we need to call
> populate_boot_allocator() that early (i.e. before setting up direct map a=
nd not
> before setting up frametable). It's not about explaining why we need to p=
opulate
> boot allocator because that is rather clear. In case of MPU I don't think=
 there
> is a reason for doing that early, so we might not need any reasoning.

ok sounds good, we can avoid mentioning the MPU section all together.

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Mon Nov 17 14:22:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 14:22:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164008.1491034 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL07N-00025J-9R; Mon, 17 Nov 2025 14:22:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164008.1491034; Mon, 17 Nov 2025 14: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 1vL07N-00025C-6i; Mon, 17 Nov 2025 14:22:09 +0000
Received: by outflank-mailman (input) for mailman id 1164008;
 Mon, 17 Nov 2025 14:22: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vL07M-0001x1-92
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 14:22:08 +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 cb12de1a-c3c0-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 15:22:05 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b739b3fc2a0so164511966b.3
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 06:22: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
 a640c23a62f3a-b734fd809fasm1099542966b.45.2025.11.17.06.22.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 06:22: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: cb12de1a-c3c0-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763389325; x=1763994125; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dAzuB1me9s8/yJONz+mr8IIsDzqIgJYav7GzRN8pW+E=;
        b=SnISq0gUIEOvCnpmskEcM7kSYtuEZYrdxAhweX+7Fw+f1N+BubNVfWXUbADRfH0HKw
         1ZYtCcwxW+Poe2wdu2qvsx7SriAAnDdLc2W/4lJ6cJ2wVFIV3OQi+dMz46xpyYc0Mz/N
         rBOz8HtquifOSneaFIe8e3ygLLj5rU9xF800k5kd0to+inFLW9wKzEtJZzLOs0Va6z7d
         vKh9eA9BoSwur2Nm69FvJQuje1WYl+b6mje77qvtlSO9VHHBN//vDbRPsDgmN0r/QHQe
         /+jSUgtskLA+RP5bcDoG1QpWIS/4IjBNKVOdCw+k9IEZbmAb+X65aZMpYpsE9+oqTCwt
         cHZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763389325; x=1763994125;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dAzuB1me9s8/yJONz+mr8IIsDzqIgJYav7GzRN8pW+E=;
        b=lnruwgWWUPUFRxEB6jRUeVYVGIj/MUPRu6WTPgXXUsL0fFuApwRKmnkLdGTju+/qWS
         5A/6c7jds6JDhzF15G7TWaqMZoBvdTvThpSS9ol33jxTw0JTmZJiVQzN3LzuDmwFCgEN
         zeVk0lBMOfslCkEZ7EBnr/VM5sbMGR8aqNCrktKc9/3YZQdi+qyQ7AY0ySylDkYgOJ8V
         OJ0jUZsop3qfUq14FWZU93UBLgFh6IKe6Bmw9wfNRkK5NRRg87iQeGXN6gB+njHB+Wcd
         l9dd1P+qNQyD3liRxfEwH1kmCWKjFHASdNct7dSo5W4Hf8cem0DodMxCjEI3OvECJkvM
         eBSg==
X-Forwarded-Encrypted: i=1; AJvYcCUvqVihZWAMr5aCrp6nMiLHoXI5kM/GL4Ee2B1uv/BUdgDF6R2IQ7Eo8qUXG0Y7HpYoS9oMmzIScr0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx23y4f2RgU7/71VfF8Thmk5vjes2KqSJUIYwIqJvfbWlnWuTm1
	gnocobrdZdfCvGlMkCbLuY5PBsp2NCmTgkWgrfH77Z19YKf5RSEQE+S8oMCcmxtLLw==
X-Gm-Gg: ASbGncuCtqLrK/0u46dGu+9ZyDQiLYrruwpFbNtAtylJ/6TFUn3eILyyhymlkkiVymZ
	WBpAEBw76XN1V2Q7OiQ2h9OpfVQS+rfmevusTBOKxSbynrI+kXq6yDEJ7ZdR8PzO9xtHvagmNVW
	ss+SaSZorFJWR+GifmY3MmzOgrQ1qsJ4oBhUmX1E2GqqM1o6iUHKd1g3HJ3Xdo0pWyPzX5NIYJ0
	xBYTzEETmHlaADXLWWhJ2SGqkA83fn80RrR3HXrH+Wvz1Qk0GaT5Fyja544xJoBJSGbYCKl++3D
	cvzqFcvOOdii5ufx5nIT0hZusmVGe02p1/yfW4EGM8eblETIncClD883i4FsXiByoH1qWiL1J5j
	qQd4qBiL+SkoVFxRpm3aVYkuaz/4MN3QaX3qLJzgQ9mbhAHON0Y7naDZwSViv7hNuxUf+7sARtk
	mt/eoXC/P+NyztzOKvz1K5APOhNc1OckeSjHU/pBjRQj8DEOeDooHXM8CSQmR6UReK
X-Google-Smtp-Source: AGHT+IGeH+hvvbVpv4eY6v5SSK2s7B5YjL5gpjsd7qz2+SAokLHPA+uriLTxJQv8GK2ciqO2r4rQAg==
X-Received: by 2002:a17:907:a4c:b0:b72:d001:7653 with SMTP id a640c23a62f3a-b736780c141mr1344803566b.19.1763389325135;
        Mon, 17 Nov 2025 06:22:05 -0800 (PST)
Message-ID: <3ca275a1-0006-4378-bf1a-2ff5541c4036@suse.com>
Date: Mon, 17 Nov 2025 15:22:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 11/18] xen/riscv: Implement p2m_free_subtree() and
 related helpers
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <24928a25f63f81ee72b78830306881b2c4c5a1e4.1760974017.git.oleksii.kurochko@gmail.com>
 <acf32e9d-4c07-45dd-baac-29e6d93cff56@suse.com>
 <6eb7b19e-df55-4706-9da2-67158640aa08@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: <6eb7b19e-df55-4706-9da2-67158640aa08@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.11.2025 12:36, Oleksii Kurochko wrote:
> On 11/10/25 4:29 PM, Jan Beulich wrote:
>> On 20.10.2025 17:57, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/p2m.c
>>> +++ b/xen/arch/riscv/p2m.c
>>> @@ -17,6 +17,8 @@
>>>   #include <asm/riscv_encoding.h>
>>>   #include <asm/vmid.h>
>>>   
>>> +#define P2M_SUPPORTED_LEVEL_MAPPING 2
>> I fear without a comment it's left unclear what this is / represents.
> 
> Probably just renaming it to|P2M_MAX_SUPPORTED_LEVEL_MAPPING| would make it clearer,
> wouldnâ€™t it?
> Otherwise, I can add the following comment:
> /*
>   * At the moment, only 4K, 2M, and 1G mappings are supported for G-stage
>   * translation. Therefore, the maximum supported page-table level is 2,
>   * which corresponds to 1G mappings.
>   */

Both the name change and the comment, if you ask me.

>>> @@ -403,11 +415,147 @@ static int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,
>>>       return P2M_TABLE_MAP_NONE;
>>>   }
>>>   
>>> +static void p2m_put_foreign_page(struct page_info *pg)
>>> +{
>>> +    /*
>>> +     * Itâ€™s safe to call put_page() here because arch_flush_tlb_mask()
>>> +     * will be invoked if the page is reallocated, which will trigger a
>>> +     * flush of the guest TLBs.
>>> +     */
>>> +    put_page(pg);
>>> +}
>>> +
>>> +/* Put any references on the single 4K page referenced by mfn. */
>> To me this and ...
>>
>>> +static void p2m_put_4k_page(mfn_t mfn, p2m_type_t type)
>>> +{
>>> +    /* TODO: Handle other p2m types */
>>> +
>>> +    if ( p2m_is_foreign(type) )
>>> +    {
>>> +        ASSERT(mfn_valid(mfn));
>>> +        p2m_put_foreign_page(mfn_to_page(mfn));
>>> +    }
>>> +}
>>> +
>>> +/* Put any references on the superpage referenced by mfn. */
>> ... to a lesser degree this comment are potentially misleading. Down here at
>> least there is something plural-ish (the 4k pages that the 2M one consists
>> of), but especially for the single page case above "any" could easily mean
>> "anything that's still outstanding, anywhere". I'm also not quite sure "on"
>> is really what you mean (I'm not a native speaker, so my gut feeling may be
>> wrong here).
> 
> Then I could suggest the following instead:
>    /* Put the reference associated with the 4K page identified by mfn. */
> and
>   /* Put the references associated with the superpage identified by mfn. */
> 
> I think the comments could be omitted, since the function names already make
> this clear.

Okay with me.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 14:34:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 14:34:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164032.1491044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL0JJ-0004VQ-Fb; Mon, 17 Nov 2025 14:34:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164032.1491044; Mon, 17 Nov 2025 14:34: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 1vL0JJ-0004VJ-D7; Mon, 17 Nov 2025 14:34:29 +0000
Received: by outflank-mailman (input) for mailman id 1164032;
 Mon, 17 Nov 2025 14:34: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=QskY=5Z=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vL0JH-0004VC-9J
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 14:34: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 8354bcb7-c3c2-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 15:34:25 +0100 (CET)
Received: from SJ0PR13CA0014.namprd13.prod.outlook.com (2603:10b6:a03:2c0::19)
 by DM4PR12MB9733.namprd12.prod.outlook.com (2603:10b6:8:225::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.19; Mon, 17 Nov
 2025 14:34:20 +0000
Received: from MWH0EPF000971E9.namprd02.prod.outlook.com
 (2603:10b6:a03:2c0:cafe::57) by SJ0PR13CA0014.outlook.office365.com
 (2603:10b6:a03:2c0::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.10 via Frontend Transport; Mon,
 17 Nov 2025 14:33:49 +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.9343.9 via Frontend Transport; Mon, 17 Nov 2025 14:34: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; Mon, 17 Nov
 2025 06:34:16 -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: 8354bcb7-c3c2-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DkZsvFu7woLdCuNvd6LmTQw7Qbz0M2HgsJrrYb12ME/ALhZ37yrrvFhnfWjkZ3a1lnI80KnuurZndEBraAqpGIFe6CbHG5gFvN/0MzBUOrvJBBjiC2L/cihb4fDOT+imtrAUMH/dc5Tqqu/LHFvbgpUyOOXBIzkkvDdwBWZfQxOYojO4MjVhxQXwC26aFNInVCtxBhnfJTo1VEgSyLPecJ7npwD3yZR2jtfNeCClu85QVSXQmyjIHigXwila7+tgw5lqUcz/xBRwCz+3zaPqpw5Elu/8wkhvmF04Qi2zv47ggeCnEamwheqbkEv1HvarioRgznKBQ9I5gJ59erxeOg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=R16eIR3RDCZbRw6IRhjcnO8BiX9OFvrPVP/AYKsaa1Q=;
 b=Y/D+G7Pgz++m7MCmwF2sTlG0o5UeCcmJYt3FId6csYsrxk3mevRpvOAH4Wu7EhEQK4CWoudgqH3q4stZQbjok+KaB9TEq1hSjMdIFLwmon6Ceaqco7eXLinc/6cftV5X44zSpj73EYJncyc2sIDyYLEIX6bJ2aaQzKhyRytKpFS4mw/mkDQfVo5BIht3QUYbFyBrEmTpSkU145i+zhp+uu3Jpl50SRKQUx1vY+eDFOIyfiWiFydqXgdCp4NO96W4GzaEV5pfh7wcFl4LNFnTiWqypoIOYGU74PkHMci4mTT8ywho/0gwO9Pq/LQZWRhKc49FBOxiI0rWPd93gAqiVA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=R16eIR3RDCZbRw6IRhjcnO8BiX9OFvrPVP/AYKsaa1Q=;
 b=QzHdSIbplnfHpCC/aa12qp/ekkvLavRXasTtfpoT8MmSKmmXAOvL/udEkFoDlqR8af1dUoMvjSoJ7TvBeJuf/eX51wkXD51xAjz2TvuhltU+ewA/uB9y1iQxq95CEhTbGsEEulMbSiEeMxWYt/4OberqxEQX3y8PlQQ9AOmjcfM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 17 Nov 2025 15:34:10 +0100
Message-ID: <DEB1LPKJSO4H.23SQXSLYDAW1K@amd.com>
Subject: Re: [XEN][PATCH] common/libfdt: optimize usage
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	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>, Jason Andryuk
	<jason.andryuk@amd.com>
X-Mailer: aerc 0.20.1
References: <20251114180130.346755-1-grygorii_strashko@epam.com>
In-Reply-To: <20251114180130.346755-1-grygorii_strashko@epam.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: MWH0EPF000971E9:EE_|DM4PR12MB9733:EE_
X-MS-Office365-Filtering-Correlation-Id: 9f7e8253-3559-405a-f31f-08de25e6649f
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?QlI3UTJUbGFaYzdCWHV5MlUyNlJjRmhzYXVKUmpYUDlRY1pidm1od0p1bEhv?=
 =?utf-8?B?VW4wdUJvcTBQSkdRZ2VzUmRMOHJleVdDYUJQdFA1RUJyWmJwd3hhRlFGdUZD?=
 =?utf-8?B?U3BVRUNNWSswSGVobmhkaFhkYjVwa0tLc2dKZlpvS29uendVbVY1elNUc05F?=
 =?utf-8?B?S0J0SE04UFRxSHBYV3hNeDZ5MUNRNkRHNHBxNVJzYVl3ZkQ5MlpzV3BPYXlS?=
 =?utf-8?B?YW1Jbzk5dkJpanFEejFWUlZTaUJzZ0pqcUF4NTlFa1NlbHJxVVhUYWxnNnJ2?=
 =?utf-8?B?ZGsycy9ZV3RaUHhmQUcrT0NhVjNRemRUU200Q0hVbFBJVFo4Q0tjbkRCdzFS?=
 =?utf-8?B?RFhEUlF1NzdSaWNKR1Q2UFAzOWJYMEtmbzNjMXZ1SXdNa3FMYnNvK21JYVpl?=
 =?utf-8?B?L0NGYzQwV0lWK0tZdURuRC9LYlNFZzRFMitScWhpNk42b3VMWHM2YnFFZG5E?=
 =?utf-8?B?dSszTStBVUZXWXByZytxaG5ITTdaYXlOakFSbU82aVJCQ3daV2JWTWZpOHJP?=
 =?utf-8?B?VWlyUVZaRzlUL0NoUFVXSmtJK0tqZ3NSUVIvazhqK29xV1A3a0Q5a1h2VmdG?=
 =?utf-8?B?dmJUOWJ2YjlEd0xqRmFIZGNKTzRCdHZKbE9Kc2lQNFRXclJmY2dIai9VbDR4?=
 =?utf-8?B?SmpOTEcrQWxmTlA2bWhuZ2l3UEhYMFFObTllNkNuOFNEMmdiOVlsTUVKT0Zx?=
 =?utf-8?B?aGFSTWFZWElxL1hQbnhTNTg3MFNrU1UxZUN5VWZkRkFIVGs3akxjd2FiMTQ5?=
 =?utf-8?B?MVJtKyt3U2J6TS9GWk1UYVlGeGd0Q3Mwc1JyTWxlbURsYTZPOStYbW1PdFV0?=
 =?utf-8?B?WjFnR1J3dTNRcU9jTjNnWnFKSkphZHpDcXhWWXZRQ0x4T1NJMEFIMDMzbDYy?=
 =?utf-8?B?QmRPK3VPNnRDTGZobmZCb2V6b2huZHBvN3NOTU5SUDR5Qmc2V3poclFRaGZV?=
 =?utf-8?B?UGhSaXM1alozNXpwYlNQbDIzUnBKRzVERTVmaUE5dUI3TnNKVXRIZ1RWa1N6?=
 =?utf-8?B?R1h2d1E1ckNudHZWRzErU0xFYks4Y1JaNW53VU1iTlNMc1AxL01rOG1xTjF1?=
 =?utf-8?B?RDdxZXE2OFBPMFV3OG0waWd1YitWQU1ZTktCRDUvWjFWSTljSk5ycU5OREZB?=
 =?utf-8?B?VWZ2TGZESndzSDdOUk1mRTRNZFFucFhUdjRqVHRubUNtZ1drTVVodFJvdWpt?=
 =?utf-8?B?Q1VIRjVKejlEQ3E1TWJjUkVscHNwQmxld0hpZnRvazRma3JtNkJzbWR4OHNV?=
 =?utf-8?B?TjNITjMrck9uc2VEYnhEUDJ2amJZRUsyQjZJNkF6eDBJVng0blZ4cjF2cjFI?=
 =?utf-8?B?UElqd0Zqb3pYcWdSYTNRa2tJdk5aaDJJaUJrcGtyNHZYcUVoQWRNdFF5Mzd2?=
 =?utf-8?B?QTFvcXIzRW9uNXZjakwwYkdRS0oxOUd4V01CellETGpidi83eER4REttUjhx?=
 =?utf-8?B?YW5JQUVicGYwQ25aOWdMOTNCZE5KOTBlUHdWRDhHUVQwWkFqbkpFL1M5c01M?=
 =?utf-8?B?R09XSHUvM0d2ZlJqM0V6SHEwZmFjQ3NjK3JqS0o0QmJPWjBNTWJQMitvV2FQ?=
 =?utf-8?B?UDljYldIRU1yV1RhRVdzRUpsYzR0MHZUWUtWUVJkUmxUZ2NYdTd6MENxOEhG?=
 =?utf-8?B?MkY1cGdwWGRjUVFoT3ViWVZUa1VLc0RYblhJWjRvcEsydndpdEF1KzNoS2FW?=
 =?utf-8?B?dWcyQUJHNEgveS9tZjlLMUI0anh6M0lPdGNsTThDMGcxSlpLTWh5dGtZSU42?=
 =?utf-8?B?RHNkR3Q0VDE1bFFVdCtqSTQ0UWJqcW03WnIvWHdGWVNNN0RJNWMwRkhteTlI?=
 =?utf-8?B?VXFvUnBlZW41TWxMQUJ5QU9NQllGelE3c0c5OFVYc0RjaWZsbkdjdjNTdzZ3?=
 =?utf-8?B?Wit3TGd4SlpUc2EralVkKzkxekVKYnBWU1NFNXlGdkdJdG9rK3lLYjNhaHlp?=
 =?utf-8?B?bzdFU3BuZ2tFYktJdDBzeXZIVHFFMzAyR0NQbGhBUTBlKzl6a0FKRmNSSnlr?=
 =?utf-8?B?OW1hV2h6cEJYZENkZVpVL3MzQ3R1UW9KZkhadEk3U1BvMnRTTEl3aHcwVHlV?=
 =?utf-8?B?RGtDRzNnL3Y0OVlucEd0MWN4YnVVNFcvMXRITmlXY0oxZ0hiWC9nTit3ZEU1?=
 =?utf-8?Q?KgfQ=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(7416014)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2025 14:34:19.2757
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9f7e8253-3559-405a-f31f-08de25e6649f
X-MS-Exchange-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: DM4PR12MB9733

On Fri Nov 14, 2025 at 7:01 PM CET, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
>
> Now all libfdt features are built-it unconditionally, but...
>
> X86: The libfdt is used on x86 only to parse Hyperlaunch/dom0less Xen
> nodes, so full libfdt is not needed in this case and minimal, RO
> configuration can be used.
>
> ARM - situation is more complicated:
> 1) ARM reads Host DT (fdt.c RO)
> 2) ARM reads passthrough DT (RO)
> 3) ARM generates dom0/hwdom DT from Host DT (there is a mix of WIP and SW=
 APIs)
> 4) ARM generates domU DT (there is a mix of WIP and SW APIs)
> 4) With EFI enabled - ARM needs RW API and fdt_empty_tree
> 5) With CONFIG_OVERLAY_DTB - ARM needs RW and fdt_overlay API
>
> Hence, add possibility for optimizing libfdt usage by introducing separat=
e
> Kconfig options for each libfdt feature and select them where needed.
>
> Following libfdt modules are not used after this change:
>  Makefile.libfdt
>  fdt_addresses.c
>  fdt_strerror.c
>  fdt_check.c

This is a nice idea, and the less we compile of this nonsense library the
better.

>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
> Not sure about using DOMAIN_BUILD_HELPERS for selecting=20
> LIBFDT features, as DOMAIN_BUILD_HELPERS doesn't exactly
> says that domain's DT will be generated when selected.

We likely want a DEVICE_TREE_WRITER Kconfig, or some such. That would compi=
le
in all code that performs DTB writes and gate the DTB overlay. Not having i=
t
restricts libfdt to fdt.c and fdt_ro.c, and having it adds fdt_rw, and allo=
ws
the others depending on EFI and/or overlay settings.

But the helpers themselves are not terribly well organized, so I'd say it's
not strictly required for now.

>
>  xen/arch/arm/Kconfig       |  4 ++++
>  xen/common/Kconfig         |  4 ++++
>  xen/common/libfdt/Kconfig  | 14 ++++++++++++++
>  xen/common/libfdt/Makefile | 12 +++++++++---
>  4 files changed, 31 insertions(+), 3 deletions(-)
>  create mode 100644 xen/common/libfdt/Kconfig
>
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index cf6af68299f6..f10cd3d7effc 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -111,6 +111,8 @@ config ARM_EFI
>  	bool "UEFI boot service support"
>  	depends on ARM_64 && !MPU
>  	default y
> +	select LIBFDT_RW
> +	select LIBFDT_EMPTY_TREE

Only on UEFI? That's surprising. Why does this entry point need more than
creating a DTB for a domU in dom0less?

>  	help
>  	  This option provides support for boot services through
>  	  UEFI firmware. A UEFI stub is provided to allow Xen to
> @@ -149,6 +151,8 @@ config HAS_ITS
>  config OVERLAY_DTB
>  	bool "DTB overlay support (UNSUPPORTED)" if UNSUPPORTED
>  	depends on SYSCTL
> +	select LIBFDT_RW
> +	select LIBFDT_OVERLAY
>  	help
>  	  Dynamic addition/removal of Xen device tree nodes using a dtbo.
> =20
> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> index 401d5046f6f5..256aff269c3b 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -28,6 +28,8 @@ config DOM0LESS_BOOT
> =20
>  config DOMAIN_BUILD_HELPERS
>  	bool
> +	select LIBFDT_WIP
> +	select LIBFDT_SW

Out of curiosity, what's the relationship between those libfdt files and th=
e
helpers? What do they use them for?

It's not like LIBFDT_WIP or LIBFDT_SW have very insighful names (through no
fault of your own. The original file organization is dubious at best), so w=
hy
not just compile those files conditionally on DOMAIN_BUILD_HELPERS instead?

Something like...

> =20
>  config GRANT_TABLE
>  	bool "Grant table support" if EXPERT
> @@ -680,4 +682,6 @@ config PM_STATS
>  	  Enable collection of performance management statistics to aid in
>  	  analyzing and tuning power/performance characteristics of the system
> =20
> +source "common/libfdt/Kconfig"
> +
>  endmenu
> diff --git a/xen/common/libfdt/Kconfig b/xen/common/libfdt/Kconfig
> new file mode 100644
> index 000000000000..3abd904b2969
> --- /dev/null
> +++ b/xen/common/libfdt/Kconfig
> @@ -0,0 +1,14 @@
> +config LIBFDT_WIP
> +	bool
> +
> +config LIBFDT_SW
> +    bool
> +
> +config LIBFDT_RW
> +    bool
> +
> +config LIBFDT_EMPTY_TREE
> +    bool
> +
> +config LIBFDT_OVERLAY
> +    bool
> diff --git a/xen/common/libfdt/Makefile b/xen/common/libfdt/Makefile
> index 6ce679f98f47..c832d1849a5c 100644
> --- a/xen/common/libfdt/Makefile
> +++ b/xen/common/libfdt/Makefile
> @@ -1,7 +1,13 @@
> -include $(src)/Makefile.libfdt
> =20
>  SECTIONS :=3D text data $(SPECIAL_DATA_SECTIONS)
> =20
> +obj-libfdt-y :=3D fdt.o fdt_ro.o

> +obj-libfdt-$(CONFIG_LIBFDT_WIP) +=3D fdt_wip.o
> +obj-libfdt-$(CONFIG_LIBFDT_SW) +=3D fdt_sw.o

... turning these two into:

  obj-libfdt-$(CONFIG_DOMAIN_BUILD_HELPERS) +=3D fdt_sw.o fdt_wip.o

Likewise for fdt_empty_tree.o and fdt_overlay.o for ARM_EFI and OVERLAY_DTB
respectively.

> +obj-libfdt-$(CONFIG_LIBFDT_RW) +=3D fdt_rw.o
> +obj-libfdt-$(CONFIG_LIBFDT_EMPTY_TREE) +=3D fdt_empty_tree.o
> +obj-libfdt-$(CONFIG_LIBFDT_OVERLAY) +=3D fdt_overlay.o
> +
>  # For CONFIG_OVERLAY_DTB, libfdt functionalities will be needed during r=
untime.
>  ifneq ($(CONFIG_OVERLAY_DTB),y)
>  OBJCOPYFLAGS :=3D $(foreach s,$(SECTIONS),--rename-section .$(s)=3D.init=
.$(s))
> @@ -15,7 +21,7 @@ CFLAGS-y +=3D -I$(srctree)/include/xen/libfdt/
>  $(obj)/libfdt.o: $(obj)/libfdt-temp.o FORCE
>  	$(call if_changed,objcopy)
> =20
> -$(obj)/libfdt-temp.o: $(addprefix $(obj)/,$(LIBFDT_OBJS)) FORCE
> +$(obj)/libfdt-temp.o: $(addprefix $(obj)/,$(obj-libfdt-y)) FORCE
>  	$(call if_changed,ld)
> =20
> -targets +=3D libfdt-temp.o $(LIBFDT_OBJS)
> +targets +=3D libfdt-temp.o $(obj-libfdt-y)

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 14:35:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 14:35:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164040.1491055 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL0Kk-00053J-QC; Mon, 17 Nov 2025 14:35:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164040.1491055; Mon, 17 Nov 2025 14:35:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL0Kk-00053C-Mx; Mon, 17 Nov 2025 14:35:58 +0000
Received: by outflank-mailman (input) for mailman id 1164040;
 Mon, 17 Nov 2025 14:35: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vL0Kk-000536-9T
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 14:35:58 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bac385c2-c3c2-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 15:35:57 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b72bf7e703fso729053066b.2
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 06:35: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
 a640c23a62f3a-b737c38c619sm658872066b.1.2025.11.17.06.35.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 06:35: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: bac385c2-c3c2-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763390157; x=1763994957; 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=3XSFc8dCzaScDWBfWwXHJYgNQnHQF8vfqawUnKpLjMI=;
        b=MzAM4QBy/krf2t99lDlsBSDXW6XIgxn0EUDum2RKPItKIfyIYlm2SiR0pynSV4NZLX
         y1XHtysjP6W6um7G5gEwYIm4KvpZmKVpzPHBlswExalNbApDgEZ633Y38TDegxCrP/7r
         sR03emCJvjJqiyHC9zdZB7uF4HLdcvg9vtaqogRf7LSU7oELYilHEHxSgRt4Kn0l9QD3
         J39iRdE6Eh1UWRf6NznWuT+Z/WTb2AHObvG0PhCi7JyEwlqSmIEZuNKkTUCBwVkdh9OF
         wJCpUGOnL1PJghYnGdVk2daAqUlAs+u/ppa9munNNQcsYYlZaBS5pM6X7n3R89x30rag
         KqJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763390157; x=1763994957;
        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=3XSFc8dCzaScDWBfWwXHJYgNQnHQF8vfqawUnKpLjMI=;
        b=HNBDLQaA2szQOif2MF3Y2yscJ+kk9F7BxiFCYEAIoLdT4bT4lo1ItKoF6GjWD3m1w2
         EcZe4L5AMQiUFDXt1YB5YcQlr/U7tm3pfAQvXiUmSdokXVuKBbJFHEeG27dnM4c793aV
         rvel/Ku0RYNKP5Wvj5gFEprlcqRTpxPOFqxoJ1UMr2voNh18ePfym6+J4MWIhc6jif4r
         jSgQmmmKuWcrKbS3aiTxqk4oh2x1bLF02oGVESsZyBdp85oRnioVXc1CXL75gC8txBvo
         Yw7Vm/JbK8PZvPF7qE7Kz3x36MvBMnPgLBcciKZek+Z36z1YSPIFLesZgClEnvxxz4o2
         5i5g==
X-Gm-Message-State: AOJu0YwaNsoWVtnt7vPS8oBuN3hJ2L0ZssECdFahO5cTcMKdo4Mc4+e8
	wXDhN8po4zRxebEArVWqhQotapjFQ9JrnuwomitTd7fAzb0jSs/4Z/FT/RWgot3anQwY+8uygvq
	xB+k=
X-Gm-Gg: ASbGncuGerNtIgM7jnIiQV68R9Z5MPWhbDZVWKR0ECG/jxmHDjr/n0ssG3SpW9Ejha0
	1xayccJlwxTculgxcYOdjqJvZsJ3Qv3X8/r5Inza9TwBpZoqwFw1Bw1o0zqV3gvoCUxuBNdqRgK
	hZkfeo8Zm9Vkns61/ZpHtJilTylN4ZUgYBMA88x4gwkPIID8WnGmmCJFKKNqJvNHEhq7r9+MFdV
	ERMDRDLiEMxfNIvqq/b7gH4h2BPtLmA2s5UdLMm40wh4DHg+qoDLUjlvd0TXZzdrO6552Abj6uo
	K3hoCywfv7TRIOxLDmVZTxW9AsKYVTK3BNoTv6u8LoiXAxLzVXDhIIwCC3QQG2/iIbgKwcX6Cmj
	0+bpo4L5En5f1M7ngPdmChuMdabbMetwmi7V25sV857EuRvyKH+XnxzPLQm2c0lbSKqMLqb+gVk
	ZlPXOLuLKcWLnZkMuSmL/dgh8VVGLHMZN5nxC8FWYCAMtt5t3yjEU+7pHR9RRGRUJ1wrJEV4NxQ
	9u0skuTz4xT6z83Db1ZzNrL
X-Google-Smtp-Source: AGHT+IHnKzULAS2jxptJwtFRJE4piTSy4+UsmOY4UV7EnoyGatdXdfptZit2QNwwAs6Km6Pq5J07tw==
X-Received: by 2002:a17:907:980b:b0:b72:eaba:aac2 with SMTP id a640c23a62f3a-b73678be1admr1190067166b.26.1763390156842;
        Mon, 17 Nov 2025 06:35:56 -0800 (PST)
Message-ID: <57f34114-54b7-483d-8ac0-e9fa49df959f@suse.com>
Date: Mon, 17 Nov 2025 15:35:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v4 0/8] x86/HPET: tidying / improvements
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

v4 is what is left from the broadcast-IRQ series, plus yet another two new
changes. Logically the changes are largely independent, and can likely go in
in about any order.

1: avoid indirect call to event handler
2: make another channel flags update atomic
3: move legacy tick IRQ count adjustment
4: reduce hpet_next_event() call sites
5: drop "long timeout" handling from reprogram_hpet_evt_channel()
6: simplify "expire" check a little in reprogram_hpet_evt_channel()
7: drop .set_affinity hook
8: don't arbitrarily cap delta in reprogram_hpet_evt_channel()

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 14:37:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 14:37:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164050.1491065 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL0Lr-0005Zi-4C; Mon, 17 Nov 2025 14:37:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164050.1491065; Mon, 17 Nov 2025 14: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 1vL0Lr-0005Zb-0R; Mon, 17 Nov 2025 14:37:07 +0000
Received: by outflank-mailman (input) for mailman id 1164050;
 Mon, 17 Nov 2025 14: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vL0Lq-0005ZT-1t
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 14:37:06 +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 e30d29f8-c3c2-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 15:37:05 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-b739b3fc2a0so167231766b.3
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 06: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
 a640c23a62f3a-b734fad4635sm1097379066b.26.2025.11.17.06.37.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 06:37: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: e30d29f8-c3c2-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763390224; x=1763995024; 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=AKQeDaPnIv1KfZ5B6JBPXaTggTJ6NzsOedI2MNMCM30=;
        b=LsDfhiB2wCikk4KkLyTIKYREJktRIGeECR1sI3hp+/M51IxKi362k1fFaMLh094B8L
         BlvnGWQGxR+0UJK76coJRK6nfK82go9pyldtl7/KP2yD2Js41qEcayt1qUtQhOLRaHBt
         bfnCDaQXPJuQfmCqzX2weRMtkfd9v+hTLkf0nRvyjSXMtSWRPZUvRU+SEqwvjjPJ3UOA
         uybNKHqD9gFizgTdat/2NZ8uvmVne46NGZnTklUM7Qd4ZnTGnX/YLyOts4WR8RmJPJT9
         qP8VsmrKR/NtBgyPyaWEugokegJ9lKRCFXXfChH+5RnVp0wyFwIBky8fk5gik052uaak
         xPmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763390224; x=1763995024;
        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=AKQeDaPnIv1KfZ5B6JBPXaTggTJ6NzsOedI2MNMCM30=;
        b=N2R17P6ebgplDwmRF8xSwQx150VBX0r+o57SFqbEm2x1NK71dj3V2WPmfYzh2eAbMU
         cgJxMhoBaiu2GlgH5Dk3TsM00tVQetN2LiGAi4sKiFWL4qbSgu7F6fs9HrAoz19Oisdf
         kpYTf/h9msQStD8y2l+pIeepadYeyag2gpnTBNSx7yTOYKmWoV26978i82DiSLiM6rLK
         XDE4S2VCwdyA6xRPNp7gdrVfl6Bjgp9kBGlRqBK7brNrOuja1PVz+yaqJnFlHIlY2S2G
         2fKsuw46Q5PeWxNJ7yZjyfLOUkPRrCAVyWA7giX+eaM85D6k9brDcL/+Dcin24CDLs2N
         C7mQ==
X-Gm-Message-State: AOJu0YymdKT7ULArYFJy3aMptTH+Sb65m0CbETomWOW2THV+2fODuY13
	Di3BO9kLyhijS/lUADb1f7LMBKSmI4BACDh/j3gZQIz1u1MQkSFAQs3mBpriwwd1iQ7gf2QtT9w
	lClA=
X-Gm-Gg: ASbGnctPBhDTxThzJROg3NvryF1xpFpwC8FJ3RgTJBkeZMjYpi7bv2wACADVv2/zK2B
	+9qUgachwspmPylGoFa1iT/403mhqAvVrA7szHn0XaK1d4Y1Mdlr4HID6a0TI0rKrS/GzDWKPOj
	pLoZ3tznfnA4bhEE7U3NmXrhzGZscq6eMdEyM7jp8vF984reqlHEDMHGEEA6jh7GP0tkfJhPTig
	xQsa6C2tGmCk3wZainVwD+5CnEbdsqj3SKNyENXprXt+JbR/lBX7+j0kcCFJ9CghSGA7XjKmawF
	coGOctfkUXo5PN4MB6S9DRAKBRZzPbcGEWjS2wX1CFgZ7RRHulfTXfqU+DtckTxkVamHLCxcIqx
	umh1yZ2R14RuJTq8F7K3kdDW1jO2TAFnl2Kbbi7oeiY3dYmaE7xD+JvbjMkEUlRmDNYEkZVi9x0
	sYeydrPjsi6OEy6gc2ajYTQz85q3/AS3c5rNuztP+XpCVk867NE8Hh623SzdPeGJ49M65HNrTvU
	Ger3EITTLhyUw==
X-Google-Smtp-Source: AGHT+IEkCvQPlPu4gcwC5trd8MEVUbQiQgtKA88WNv5FDtC9Zf0YNwlyJgEtQZ6fQFNQdG4Wr19P5Q==
X-Received: by 2002:a17:907:3cc3:b0:b73:2d99:d8a3 with SMTP id a640c23a62f3a-b736782d0a8mr1464255166b.26.1763390224429;
        Mon, 17 Nov 2025 06:37:04 -0800 (PST)
Message-ID: <1af753e5-33a1-46de-a407-969059e7228f@suse.com>
Date: Mon, 17 Nov 2025 15:37:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v4 1/8] x86/HPET: avoid indirect call to event handler
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: <57f34114-54b7-483d-8ac0-e9fa49df959f@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: <57f34114-54b7-483d-8ac0-e9fa49df959f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

It's only ever handle_hpet_broadcast() that's used. While we now don't
enable IRQs right away, still play safe and convert the function pointer
to a boolean, to make sure no calls occur too early.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: Re-base over changes earlier in the series.

--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -40,7 +40,7 @@ struct hpet_event_channel
     s_time_t      next_event;
     cpumask_var_t cpumask;
     spinlock_t    lock;
-    void          (*event_handler)(struct hpet_event_channel *ch);
+    bool          event_handler;
 
     unsigned int idx;   /* physical channel idx */
     unsigned int cpu;   /* msi target */
@@ -194,7 +194,7 @@ static void evt_do_broadcast(cpumask_t *
        cpumask_raise_softirq(mask, TIMER_SOFTIRQ);
 }
 
-static void cf_check handle_hpet_broadcast(struct hpet_event_channel *ch)
+static void handle_hpet_broadcast(struct hpet_event_channel *ch)
 {
     cpumask_t *scratch = this_cpu(hpet_scratch_cpumask);
     s_time_t now, next_event;
@@ -250,7 +250,7 @@ static void cf_check hpet_interrupt_hand
         return;
     }
 
-    ch->event_handler(ch);
+    handle_hpet_broadcast(ch);
 }
 
 static void hpet_enable_channel(struct hpet_event_channel *ch)
@@ -657,7 +657,7 @@ void __init hpet_broadcast_init(void)
         hpet_events[i].next_event = STIME_MAX;
         spin_lock_init(&hpet_events[i].lock);
         smp_wmb();
-        hpet_events[i].event_handler = handle_hpet_broadcast;
+        hpet_events[i].event_handler = true;
 
         hpet_events[i].msi.msi_attrib.maskbit = 1;
         hpet_events[i].msi.msi_attrib.pos = MSI_TYPE_HPET;
@@ -814,7 +814,9 @@ int hpet_legacy_irq_tick(void)
          (hpet_events->flags & (HPET_EVT_DISABLE|HPET_EVT_LEGACY)) !=
          HPET_EVT_LEGACY )
         return 0;
-    hpet_events->event_handler(hpet_events);
+
+    handle_hpet_broadcast(hpet_events);
+
     return 1;
 }
 



From xen-devel-bounces@lists.xenproject.org Mon Nov 17 14:37:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 14:37:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164056.1491075 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL0M8-0005wL-D0; Mon, 17 Nov 2025 14:37:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164056.1491075; Mon, 17 Nov 2025 14: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 1vL0M8-0005wE-AN; Mon, 17 Nov 2025 14:37:24 +0000
Received: by outflank-mailman (input) for mailman id 1164056;
 Mon, 17 Nov 2025 14:37: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vL0M6-0005ZT-PL
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 14:37:22 +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 ed5a8193-c3c2-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 15:37:22 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-64162c04f90so7138732a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 06:37: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
 4fb4d7f45d1cf-644f13ff4d4sm893247a12.12.2025.11.17.06.37.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 06:37: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: ed5a8193-c3c2-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763390242; x=1763995042; 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=Pi3hAuAMJUxmVpqdTz3Up9yhIVz/lddzqlLZoEEpb3Y=;
        b=RvbtP2u5m2d/rQ5SI0xoWx/CitlxRnJj264SMUw1LxHRc2Oy2NQO2SnQLUJqxGCTsa
         7Z+K+mnwfzgVf8A+X975gsJrMTKet6mXBxgKC5pkVIEOv6kL8gHXVvGpQfGSptpWP0yn
         yXpZw07OQcS08j7z2bWmMFPBvmQfQ54oPO/kx1YUcou67Ur1xSNOPLV+j1Mo4Jkq0uDK
         3CwoF+PwiPlz0MeJd0SFp7kuCVbSNdkiK6+EjrjsLyFnNn8lJYpjU1tjCpO2VB6g6+za
         1SMSoxxRUroN8A17ep9C0XTbgedu9JQdKjy4r03yydSdNBS51y3iS22nFi2rzCiBdnZy
         B7tg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763390242; x=1763995042;
        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=Pi3hAuAMJUxmVpqdTz3Up9yhIVz/lddzqlLZoEEpb3Y=;
        b=oFEqW2XXM31+SXqz8ei/TEK75ivL+8RCNhzBOgBL3Fc/HnIKbqc1IcJG30MouGdvgI
         d36QYlvjjsSkC+ZxF0UkawnhfiBZAQzCDI11S06rXcsYg9eBgY8b/Wti9oQzkKJJ57cb
         i6FKl8bF26/zbFdLk5Yl1BetzpP20T711L7DFuQL+buisu57Mx29ETXZESDHHLK1JpqV
         0UDF2onUy8B9dwvmAbqWUYY8I9Kxt397yhkatgWj+iwcy21U3cMGKTCXOtP0OSLK4J1Y
         NQmMJbqXDaZZYmJEN4yLooqdAatZVfOWxHQlF9sIUYKyByCgd/uUrNsHZMRuuCxFf2/G
         X06Q==
X-Gm-Message-State: AOJu0YzCjc1PyEZgVTWmxtkDRR6Ejhwypr8e3kKt/sOHOgowqibRejNk
	AGNd7D7I5JZa+X63g8LBHoHsHpaf5phVIA4xjnpyZ3vcbLeg+GHD0XdaEIG/Ia2E1Gv39Duaz+S
	eQTk=
X-Gm-Gg: ASbGncsFuToW6x90LApVQ0qdbAUSAlpaqub8HcAwlta8x/1/JyUYp6DW47iBetMPuOe
	SiPJhNjwziv/zsTRNkb+5wI40DpL2s3aVaMiXwZ1+rwOUj8hGL0ZrPoSj3opoviFmbvJWWkeWbQ
	tkHy33pLO/VLVISqmaUFjXtR+c1l4+3UV6Mp5PTXYOkmEtgmBTIANIBBqkcIzejuywtd9Kw0CIZ
	mubROWmnLoqRlV61TxeRIRkJYxzC1bYt1wroVg/xMUnj6Z7eyyCIZREugV2eZzyECqb800PK1i+
	n5NT63uSiOOWu3GqL7B1OMudhG83PsTeMttErYA8djB5IWN3haD8NL9QD2k9J4QG6fIsXQZ31Ak
	esYv1t+NVlIV9ZnOksB6FM6gWepUXF+BLAqkg1fuia8txasuSO+Yn6KbxwQhg3nUKPUFp3WgTig
	llHv9z9Paeno3Z9wlXrhFQa5fY/dj6nsTXjFAhof7+cka90FdmiUZjT044bUlLXZBDumFFmXExr
	o8=
X-Google-Smtp-Source: AGHT+IFniZkxnTJdJQe9SScifhauIDQBS+wodcuIYDT2WN5jhRL8z9Lkoll/wu84wNy3F5AVzLg9gA==
X-Received: by 2002:a05:6402:354e:b0:640:ba44:c731 with SMTP id 4fb4d7f45d1cf-64350e76377mr9584890a12.21.1763390241623;
        Mon, 17 Nov 2025 06:37:21 -0800 (PST)
Message-ID: <757cba5d-2c9f-40ae-8eae-6309979bbba5@suse.com>
Date: Mon, 17 Nov 2025 15:37:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v4 2/8] x86/HPET: make another channel flags update atomic
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: <57f34114-54b7-483d-8ac0-e9fa49df959f@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: <57f34114-54b7-483d-8ac0-e9fa49df959f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Unlike the setting of HPET_EVT_LEGACY in hpet_broadcast_init(), the
setting of HPET_EVT_DISABLE in hpet_disable_legacy_broadcast() isn't init-
only and hence can race other flag manipulation (not all of which occur
while holding the channel's lock). While possibly any such updates would
only ever occur when HPET_EVT_LEGACY isn't set in the first place, this
doesn't look straightforward to prove, so better be on the safe side.

Fixes: d09486dba36a ("cpuidle: Enable hpet broadcast by default")
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -729,7 +729,7 @@ void hpet_disable_legacy_broadcast(void)
 
     spin_lock_irqsave(&hpet_events->lock, flags);
 
-    hpet_events->flags |= HPET_EVT_DISABLE;
+    set_bit(HPET_EVT_DISABLE_BIT, &hpet_events->flags);
 
     /* disable HPET T0 */
     cfg = hpet_read32(HPET_Tn_CFG(0));



From xen-devel-bounces@lists.xenproject.org Mon Nov 17 14:37:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 14:37:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164071.1491084 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL0MW-0006Yd-KG; Mon, 17 Nov 2025 14:37:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164071.1491084; Mon, 17 Nov 2025 14: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 1vL0MW-0006YW-HQ; Mon, 17 Nov 2025 14:37:48 +0000
Received: by outflank-mailman (input) for mailman id 1164071;
 Mon, 17 Nov 2025 14:37: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vL0MV-0006Gl-LO
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 14:37:47 +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 fb706bc0-c3c2-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 15:37:45 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-640aaa89697so5705983a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 06:37: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
 a640c23a62f3a-b734fed9e9fsm1088430066b.69.2025.11.17.06.37.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 06:37: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: fb706bc0-c3c2-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763390265; x=1763995065; 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=FxLRE0WPEJ3Pkau/hTURV7LKflRLzGIKPzRs3Fi2rrI=;
        b=YluFULYMLCtEiU3EFaayRBSI3AbRgLmxQwifVW4PrbcvMR1BBONmqXRsIY+yKcpp9B
         vNrGzZl1sQfd/8f11PawnBAj08ftXlYpU4zexjr9q3v6FD7KztHHgHYi70dyYElk8qWP
         D0jbxA9wKjeV/ylxX6pa6IGrZB7uw6HaMNX2wqTmU+UPcj5Vt8W2gWRf4Kiy8GkEMCbk
         v4EVCn8xExWZXiDSkR480ttEJO2hf1YBiFtPgk5+tvLImTdBeX1faqHcm/7cK/gKk+kn
         1zqJDeVjsPKL/7wPwIE0EGfIy3Op4j91VHjByh0eNfeINlu9ZFlNBWsEdvA51+XFK8U9
         N/Fg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763390265; x=1763995065;
        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=FxLRE0WPEJ3Pkau/hTURV7LKflRLzGIKPzRs3Fi2rrI=;
        b=Vo64BfkOdENM+zrSu6TwuUDuVPUJz2eDI3ODrf6biScLXN67IWYNjlcjagZQQE4cP1
         E4heFfWgu1b3dTWZIzevOuEUfzGbJOG0dRzG7JMEYNoqFoZdmzE6Tco6b2jft45wGscI
         NfjQ2HSCdhVy8Cr0jqnelbgjDUpJ9tyyvaJ/G2KbkCecINURzHnZ8g+VH0e2fIAOAXVZ
         rpm3x4M/4IRsV3ZYo84FHEUf3+rhjUIuivRZcx8dOfE09yt7ZXgqpw4UiWCIeXJomtE4
         +w6LW+8kcVYtUcdAv+GJ0KSQJ6iqnhJFtkyoC9DIXbDE42zMoXJEVuvOukQuR++qERl4
         FBAg==
X-Gm-Message-State: AOJu0YxYv75nTur4YhRGi2vO92H6jKHQC80VoHv0+K4l8gKminYfNa2U
	4pJ4qQxEnzbQ00w9QugWQHhaoSE3C+T+aWKPOyPxbq2CAoC8933Ae96W3JgWJFaVEaJPHere2eX
	KOG0=
X-Gm-Gg: ASbGncv9AUS8NmWqPrgqNGCcLsJ+B7lqoyUKAEp+V31Y42ddh9c3a5QkGdLuiJhME6D
	6dvqbO+4WgLd75n99sTXOxLpdaddNSMtBHNDOc6pfUHDU7/xmJ3g1+n7j2FEC0hZgBLMKT8frtw
	Sl8DseBiXA37j4BFZ4g7Hnh6UIHG+yrpWCNKIHoUZeJK99ECCN68GgLjmXMGIy52ZBaqRY9heap
	m5e9rGkPMcDd+yx/svwt8aFwy2VqhZPBmrXIb5BqqcIQXj+vl/bo3k47H1+Cblxm9Mb4vXWGeb5
	DN07dbNuTdmD95xH5U00i+qJdRyXTuh+K6j1g5rqwVrH3uMW4zzZ3QsAHRICr16pQg7wjAH/cV6
	pgcWWZ0CA4l590OUWYom/WMRif4Jt3MtwkHcWy91DqESXiC7Nc0awPxQOjfcfoeiHUgRbt1+3JA
	w+W1j5Yu4v/FxuMWh66ehHmHUqPZ/QbBqB4RduVQdCiAFtNYxDl9W70of6kUxRUlf8
X-Google-Smtp-Source: AGHT+IFY/O9NLahv0nVl+GxpqwZFTlElQ1yNgeGIgARKr4xxHgOQkldYRdySVAXTi4XTVWNdWDYVug==
X-Received: by 2002:a17:906:279b:b0:b73:6987:e902 with SMTP id a640c23a62f3a-b736987f3d3mr1083323466b.48.1763390265424;
        Mon, 17 Nov 2025 06:37:45 -0800 (PST)
Message-ID: <f8ccb446-44e5-4939-91f7-ac17f660f56d@suse.com>
Date: Mon, 17 Nov 2025 15:37:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v4 3/8] x86/HPET: move legacy tick IRQ count adjustment
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: <57f34114-54b7-483d-8ac0-e9fa49df959f@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: <57f34114-54b7-483d-8ac0-e9fa49df959f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

If already we play with the IRQ count, we should do so only if we actually
"consume" the interrupt; normal timer IRQs should not have any adjustment
done.

Fixes: 353533232730 ("cpuidle: fix the menu governor to enhance IO performance")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
_Why_ we do these adjustments (also elsewhere) I don't really know.

--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -808,13 +808,13 @@ int hpet_broadcast_is_available(void)
 
 int hpet_legacy_irq_tick(void)
 {
-    this_cpu(irq_count)--;
-
     if ( !hpet_events ||
          (hpet_events->flags & (HPET_EVT_DISABLE|HPET_EVT_LEGACY)) !=
          HPET_EVT_LEGACY )
         return 0;
 
+    this_cpu(irq_count)--;
+
     handle_hpet_broadcast(hpet_events);
 
     return 1;



From xen-devel-bounces@lists.xenproject.org Mon Nov 17 14:38:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 14:38:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164087.1491095 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL0NS-00079w-Sz; Mon, 17 Nov 2025 14:38:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164087.1491095; Mon, 17 Nov 2025 14: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 1vL0NS-00079p-Pk; Mon, 17 Nov 2025 14:38:46 +0000
Received: by outflank-mailman (input) for mailman id 1164087;
 Mon, 17 Nov 2025 14: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vL0NR-00079j-Fx
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 14:38:45 +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 1dc17cae-c3c3-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 15:38:43 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b736d883ac4so530683566b.2
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 06:38: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
 a640c23a62f3a-b734fd809fasm1102791066b.45.2025.11.17.06.38.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 06: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: 1dc17cae-c3c3-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763390323; x=1763995123; 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=rds4jnnN9NVrTZyuc+q65+QBQEjCAV7rC8oJIxMqDF8=;
        b=Xnnul6Y6+e7SeE7ESpogxBMfFwp2oz6ZV+sRaiR3xGU4IFvSuXiBg3qx0C4yqGuWNA
         8qlL/WW94rPDMkVFgmoi9Bam/+ioKemY3saENxT8yxWdJVuKveU7EAwHKvb4A/byVstR
         f7jPbPZ9J42Mpnw7pwIffLoovuqZkSsk/ecjiuJgfC3M5E2UW83fbNb7CB5IBqPMIz75
         KaQ+B/iM22s7gcr6zuIqpNInT7tSFQDJ5bO3nw0RIe8X2DPBbUYrdk5LqqJ14KXRERSA
         okiheAPJ7RFH8Nsy+1SzShF/O02x6P+yOHcmlhmKGABeRE+14brcPxUohNmGKlp/+1nq
         xrDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763390323; x=1763995123;
        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=rds4jnnN9NVrTZyuc+q65+QBQEjCAV7rC8oJIxMqDF8=;
        b=Mvz0k/MDFa+Kl88totXaIWKv6l0aWdP1SwVj9tmQ11KnsUq/6m2Onm0SBoRnb/wjt1
         UopjN22tBS9ykjh+fnq4am/jt7HA8x1s89Mt2IyZwHuVX33xJYpz7LWP7b8YulXXBkQf
         tETftBs3JjyquWOjv3hdMgZ+Ay/3Xdq4lDO7Tw2+QqqZJHEp1iyNjFSd28fS1FruBDpw
         JA5t/T6wvl+Uqgvnp70tYJqrJwYGvysfsIvQUN7FJknnLOeCYQd3evUHlUSdEKwWkexD
         vtF1HGCZ9fl28yn1PsQzM37j5tiuPJ45BnDYYF7jXlpnJnw6U54MeOvwW4/KKgdAAfQi
         Q1FQ==
X-Gm-Message-State: AOJu0YzzQrNsW3kJdOQ8vcC6ddfyP3ot92yrHajFJBCs5I+hGUA0LtWA
	cCuEtzhyVzBo97Gn0vPew4K3bLiM1mY8kxt06u7+ocn3p9XxlI4bVbFNwjM9V71S+gK7b16ZXvd
	3h3k=
X-Gm-Gg: ASbGnctlotq6jbA1U6EGbDdL6Na394XCtNiUmJ0hD6JYnXg3Q4Mhxhp79SMmbw3UqjO
	UucEO5JMe540kJilQ2W3xuw45/fkaDnQPJ75C6Zj8B7hgFyCU6Q8fhm6MnXnUXSES24RDPjfFax
	5yKd5CvudIqv4TN8kQxEbNf6PyvMUWJ958dr2FtKsLFGyoRS0UBJgM1o48sk2U3VOnRtYKFcmSS
	Idbr9DKKhXfCiUdUa1nuoj8DFCmw3IZNUuL4cuPwe/aksqkFJLEJU6Zb4VK9OCa1fURJTZaEH71
	CciJ//okeBuO4K28EG2Xfz0kWuv3Acl/5teKK1mOnsNKU3mY+nijV3Y7fGJCLOR/xtv5y+GY4nA
	oMbGSWR24zgg6PW1yYdGrh+IyRADM8uhZyye/vdjeof7s4c390EWFjiRen0/0g0imuGlDXZy8sQ
	5n+Yo7L8sMiw4woT9K2CLV6H7MnVrIewqg3dUN6S/9UDgnlqSsrT7o5mKIYlwvuSdU
X-Google-Smtp-Source: AGHT+IHN8hAro7HMRpjt+WtI+SDOHX9UIMDu50lsNW7OSX79hbx5UOZi6OJEXaCRRxswTg/tv/wsqw==
X-Received: by 2002:a17:907:6d0b:b0:b73:58b4:1247 with SMTP id a640c23a62f3a-b7367926438mr1286890866b.25.1763390322891;
        Mon, 17 Nov 2025 06:38:42 -0800 (PST)
Message-ID: <f9133ee9-7797-493d-825b-ded56c17cfc2@suse.com>
Date: Mon, 17 Nov 2025 15:38:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v4 4/8] x86/HPET: reduce hpet_next_event() call sites
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: <57f34114-54b7-483d-8ac0-e9fa49df959f@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: <57f34114-54b7-483d-8ac0-e9fa49df959f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

I'm surprised gcc doesn't manage to do that: At least in debug builds two
call sites exist, just like source code has it. That's not necessary
though - by using do/while we can reduce this to a single call site. Then
the function will be inlined.

While improving code gen, also switch the function's 2nd parameter to
unsigned.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Oddly enough the CDQE is replaced by an entirely unnecessary 32-bit MOV of
a register to itself (i.e. zero-extending to 64 bits), as that's
immediately preceded by a 32-bit ADD targeting the same register.

--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -124,7 +124,7 @@ static inline unsigned long ns2ticks(uns
     return (unsigned long) tmp;
 }
 
-static int hpet_next_event(unsigned long delta, int timer)
+static int hpet_next_event(unsigned long delta, unsigned int timer)
 {
     uint32_t cnt, cmp;
     unsigned long flags;
@@ -173,12 +173,10 @@ static int reprogram_hpet_evt_channel(
     delta = max_t(int64_t, delta, MIN_DELTA_NS);
     delta = ns2ticks(delta, ch->shift, ch->mult);
 
-    ret = hpet_next_event(delta, ch->idx);
-    while ( ret && force )
-    {
-        delta += delta;
+    do {
         ret = hpet_next_event(delta, ch->idx);
-    }
+        delta += delta;
+    } while ( ret && force );
 
     return ret;
 }



From xen-devel-bounces@lists.xenproject.org Mon Nov 17 14:39:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 14:39:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164093.1491104 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL0Nm-0007Za-2H; Mon, 17 Nov 2025 14:39:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164093.1491104; Mon, 17 Nov 2025 14: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 1vL0Nl-0007ZT-Vu; Mon, 17 Nov 2025 14:39:05 +0000
Received: by outflank-mailman (input) for mailman id 1164093;
 Mon, 17 Nov 2025 14:39: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vL0Nk-0007Pr-9T
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 14:39:04 +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 29a8dfb7-c3c3-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 15:39:03 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-b6d402422c2so689584666b.2
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 06:39: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
 a640c23a62f3a-b734fed9e9fsm1088716766b.69.2025.11.17.06.39.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 06:39: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: 29a8dfb7-c3c3-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763390343; x=1763995143; 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=PS7ucokoN9+hEjFZSIghu/GmWjPiHcD6tMlnYOR0lq8=;
        b=bJZVdFIbSZ6PRmtK8h9XLY+dB/peLqr02IeKedxGLXKUdeaNLsp+QRvF+pdwrACxeK
         9khvSodbpdqYMHCcsvasUDtayCrjoqwyawb60Gzf9Tz/H1PX9OpUC3Kp5cj+xn2a5FxD
         9TBU0t+bgb8/Ep0G+crLAi5OoJl4UZMoCov8CALYp2SsvkguodZIcNGnsEYqAqEyOJzo
         ONgejAP7p5vj8NOiftC4BGQ6ZI7WhYmb3gZwsjCzzP1Vym5Rb6hwksH07AdXSoz2C1yY
         AXrDJCeW1eiGszQuvg51yKLEt8eL0ZMZEDIYY2hokSK4evSt5JMgrjyqn4R5Hff1Z64g
         fPEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763390343; x=1763995143;
        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=PS7ucokoN9+hEjFZSIghu/GmWjPiHcD6tMlnYOR0lq8=;
        b=BBMX2RanCnCpvA82Z91ECGr0Q6Rvjl+NjU1NwnPH0sp8DLmmXhJQ9sRl2US/ZLqHF6
         fsr7GDwJva/IPONpWNNMpmqJlZw+ZB997uOCYMiuO+oM3onSBanrVXPB9Fqmak/Zt/rh
         KrEWqhPWVgbPFY0vc9RPm5mX9ol1ckhwqTiDeR+fTF7PwNEHL8T/ra2rbmxVylCHxKa8
         TQ4WWGSI9o1fJRTMFCnltAKbC4bsC702ADXaS0jGFENNUqs2yqG5aVede6MztLPPnu2l
         rW5ngX1MapTEI+hM/wognl3sRa33B8gtoS1EBhkjvhVqPq+2VPaZ1DLKEAFRgA7BBKuV
         JFBw==
X-Gm-Message-State: AOJu0YyMMHDu1M9PItZTQWWOZ30/E+7DtSBr3Pq4sztDWlvaGJQZQ1sM
	C2EJT9dqPBX0cAf8U35Cqg7HZ/d34udq8VdqYZSwCzf3gBysp0nj7DXrfiEe+XP5z12+Gd09HOS
	tnmM=
X-Gm-Gg: ASbGncv8vSxCZhHRokOCHFzyXUfJMTr2F0SObXFhzzHXW67IA1hD0sLkQnY5KhPzJ63
	/4mkfQ7DhR42h44w9TmPvwmqY4RmZuqCcD5SDWHemxR4cccMj+y9HsJ/GJCs5HNVuG+/rynoQYr
	wPeFWQmKjGfcPV36Mx6qum+AoChEG9ANd1q5CqPmP1kHOhAGUHIXcVDt/GikxzIPJe3SeKPZjDd
	kISVI8I3tFskexoRRPvw7pLuWl2Hj+B+hxhN298yw2lu3QXAzlYOfmUu9NWcnRXOK91Eh3QsyTW
	qR5sRoWpO3DfzOL04SmGUNvbIs6uSflJDpdb767FNmAmqROxFyFrc4tXhvS6+YpljXvpbIH6VGd
	iK6VB/LwN3M4FhyH83mrk5Pl/q8JEVyYaxfp5ioL+sFSGgY+KPBmi76bAchM7oEGbjoC7V1Voeb
	BqMT/pMFzO9d3ZgQMb3yVkgZX7mlUwI/4aJhTyT9WnWC1PvHRRRSPYsuk4hoNHf2rujoreZakzh
	RmH1xfbtQIeGQ==
X-Google-Smtp-Source: AGHT+IFOmUSm8/z5jcH9NKrpV6ugry7nIt6vZyPsNVAxgbB2504wXZXC4U9rOEjTlGUoPaq/8BRDDA==
X-Received: by 2002:a17:907:940f:b0:b73:826a:9102 with SMTP id a640c23a62f3a-b73826a9b7emr889787466b.49.1763390342750;
        Mon, 17 Nov 2025 06:39:02 -0800 (PST)
Message-ID: <54dbc592-93a6-47bb-9304-14addd41610f@suse.com>
Date: Mon, 17 Nov 2025 15:39:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v4 5/8] x86/HPET: drop "long timeout" handling from
 reprogram_hpet_evt_channel()
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: <57f34114-54b7-483d-8ac0-e9fa49df959f@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: <57f34114-54b7-483d-8ac0-e9fa49df959f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Neither caller passes STIME_MAX, so (bogusly) handling the case isn't
necessary.

"Bogusly" because with 32-bit counters, writing 0 means on average half
the wrapping period until an interrupt would be raised, while of course
in extreme cases an interrupt would be raised almost right away.

Amends: aa42fc0e9cd9 ("cpuidle: remove hpet access in hpet_broadcast_exit")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v3: Drop the code instead of adjusting it.

--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -162,13 +162,6 @@ static int reprogram_hpet_evt_channel(
 
     ch->next_event = expire;
 
-    if ( expire == STIME_MAX )
-    {
-        /* We assume it will take a long time for the timer to wrap. */
-        hpet_write32(0, HPET_Tn_CMP(ch->idx));
-        return 0;
-    }
-
     delta = min_t(int64_t, delta, MAX_DELTA_NS);
     delta = max_t(int64_t, delta, MIN_DELTA_NS);
     delta = ns2ticks(delta, ch->shift, ch->mult);



From xen-devel-bounces@lists.xenproject.org Mon Nov 17 14:39:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 14:39:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164104.1491114 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL0OB-00086u-9f; Mon, 17 Nov 2025 14:39:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164104.1491114; Mon, 17 Nov 2025 14: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 1vL0OB-00086n-78; Mon, 17 Nov 2025 14:39:31 +0000
Received: by outflank-mailman (input) for mailman id 1164104;
 Mon, 17 Nov 2025 14:39: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vL0OA-0007Pr-SI
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 14:39:30 +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 39b229e4-c3c3-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 15:39:30 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b7277324204so574071566b.0
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 06:39: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
 a640c23a62f3a-b734fedb2eesm1089927466b.68.2025.11.17.06.39.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 06:39: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: 39b229e4-c3c3-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763390370; x=1763995170; 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=Yfju5TuSYr1gnKBFs17R38Pvw/Jb2fzNTTH63D/Pa3U=;
        b=M7I822gJPFWI4MHnpyr7sWzwrYwyv165WM3oRfNaztDlWZ+cNeFJXYNQBENgindruD
         t3KlUobWSyWNiTna8nt3Hv7uBlmEkmGjnXOeMZHDWHgppKrjg21pQMXs5gJEUQsxigPq
         4XdSn2mD7+SheiFyBJ9aUm93svu6NLW+LzvFVd2MW4beThK/kdzvkUs2kD5KSXQtVcVa
         rvXrW2GzA5wXkqSOLK5WPQ1Wgpr/vWFq5AjF0sK6crPxzkdpyuv9RzNHVS9ewq8CiHac
         xvXZvjkCsKDdZqN1qvv0bQQhj5ZHfHaSvVIy+Bghr8UE7fhpPo5sCqigqKFTFz+llPOJ
         an1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763390370; x=1763995170;
        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=Yfju5TuSYr1gnKBFs17R38Pvw/Jb2fzNTTH63D/Pa3U=;
        b=HwBYHnCH00oRdtCgeu9sEWpRYsFjOERB6ev1YSpCTX4egwdw8+ACg4LCRJqrNe5h89
         hSHy/vKcLm7H8llvvTxp1equuSMk7IiLeehEpK6Elt9YVzxfAj74Gf6jVOxZ5ThbOZix
         HPgiqnZd4NeGi8fFdn8T/Bky6grlwQvN86E3PbopaRI5zbDvDVgkBA9u6+oy29Fzphj4
         hlUuGnD6XdoUzdloCads4qtOXwYm9oYXzMscMsI2AxlwnoAjndUfdb4uO5IVX+QNz+PF
         bkOEX7slfeM721qKSvyYz/ps+CUrF3ZzsZDEPbN0SDXMtsAVhPo+n/WFqDuzPndifNid
         gs7Q==
X-Gm-Message-State: AOJu0YzWvkWxYjbcv2eqLvZmWkE9Mdb6yNkuHlDh0/toSQx+jOlDCMng
	Mj419xx+ze2xgIVXZ0/u+897QJEGdcKMnFAlCk6XTP8a/P9BZ9KY0T8sTojvfEKBgGKvUbyqR+6
	WXBA=
X-Gm-Gg: ASbGncsNGxyqw8CBROm5/nqXpNnhOr733N3znLXxlPMfc1zNeO5KNVSoPWb1SU6hCCP
	sSDYL5kIzm1ErohQ9vnK42/7conCiMG/tDuBg/TLKMtrnjhL4ouS+O15IqpFbU5lUeiC5S91ace
	2pcNqMnZK1TMx8PBhWg2Y6DVHSgzlW7xFV7BybY8/bT1LBweEBfIsE05fEVEgX2VB+fqVtL2sl2
	CJucV5XQ15GfHnWgUfJTUCrDQPhPeaBl5TzimFlyu6WlibgEVe4zjYU4XUcl1EK3rN2EDosZ+q7
	Ipwedlfa5FjB2Z5nwUmkxqCYJuKXuPNFBCi/EvtIA+lmlyUNpsZnHMD/LUKyFQ6XqOKDWH2XFof
	2l7USiOJKvo1fvP15gtQOzPT4kkWIJX45fQ+xqYcemAYsy2eH48LKZIaz5kjbgKh0KLjzwJTFUC
	0DoVfaIp5kUmtmAoF6k2qQaVBCHKNxy9imZQ87s+cJuuFKvq2VPc5Sj8y0HjY2ezWcfYQQ3+lUV
	nMwnexT1s8Rgg==
X-Google-Smtp-Source: AGHT+IFqKWURIzhu1XRhapZ/K6XdgrEUTElkp6+U2JG4zQb4GkX7BZZ7YWOcY6wzJVt2sz+bOVLMZQ==
X-Received: by 2002:a17:907:7b8d:b0:b70:b93c:26cf with SMTP id a640c23a62f3a-b73678086a4mr1208450666b.6.1763390369788;
        Mon, 17 Nov 2025 06:39:29 -0800 (PST)
Message-ID: <0bc920e2-2e32-4b3d-9ed0-a2c2b34e9591@suse.com>
Date: Mon, 17 Nov 2025 15:39:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v4 6/8] x86/HPET: simplify "expire" check a little in
 reprogram_hpet_evt_channel()
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: <57f34114-54b7-483d-8ac0-e9fa49df959f@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: <57f34114-54b7-483d-8ac0-e9fa49df959f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

When this was added, the log message was updated correctly, but the zero
case was needlessly checked separately: hpet_broadcast_enter() had a zero
check added at the same time, while handle_hpet_broadcast() can't possibly
pass 0 here anyway.

Fixes: 7145897cfb81 ("cpuidle: Fix for timer_deadline==0 case")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: New.

--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -147,10 +147,10 @@ static int reprogram_hpet_evt_channel(
     int64_t delta;
     int ret;
 
-    if ( (ch->flags & HPET_EVT_DISABLE) || (expire == 0) )
+    if ( ch->flags & HPET_EVT_DISABLE )
         return 0;
 
-    if ( unlikely(expire < 0) )
+    if ( unlikely(expire <= 0) )
     {
         printk(KERN_DEBUG "reprogram: expire <= 0\n");
         return -ETIME;



From xen-devel-bounces@lists.xenproject.org Mon Nov 17 14:39:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 14:39:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164118.1491125 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL0OY-0000Dp-MY; Mon, 17 Nov 2025 14:39:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164118.1491125; Mon, 17 Nov 2025 14:39: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 1vL0OY-0000D3-JK; Mon, 17 Nov 2025 14:39:54 +0000
Received: by outflank-mailman (input) for mailman id 1164118;
 Mon, 17 Nov 2025 14:39: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vL0OX-00079j-6y
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 14:39:53 +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 464e5df0-c3c3-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 15:39:51 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b7355f6ef12so723024466b.3
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 06:39: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
 a640c23a62f3a-b734fa81172sm1085670266b.15.2025.11.17.06.39.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 06:39: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: 464e5df0-c3c3-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763390391; x=1763995191; 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=y0auAxXnuppooklnSDerPgHwMUEE+NEjFepbTDvIXXk=;
        b=PzefT0+Tt6vUwGzEcU25LGh2cqy/7E1+tWQUJlYz4ZdRKa4jd7ThJo1w1hLrCLjf/8
         D1/RGQVqGPehmg6pWgV5H2Yr/E3uEIhRt5YwgJPPl1PIAa5d29fXbtHcefjPmImfVYqE
         WJQzOhhhxpEob1Qw5t5q3omZbvzF+TlrN+9ouiHkFnx7XJABaiQJITD/ps8+wvXFPL95
         elhCbdEbjZ/PrfXBVXWnF2ZDvGymAWRrwO0EnDwVK4Psto5wMarUahLzNg6gPuC2FfHf
         Rk923IN55wZ9ZPTrYQc/ksiVx4Jm1hNNWxqRxcV1gXE+3XZxOfjSzsCCk73m1S4Wzddc
         F5Mw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763390391; x=1763995191;
        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=y0auAxXnuppooklnSDerPgHwMUEE+NEjFepbTDvIXXk=;
        b=daLy7+MxLu14K4Wzr9CWR8lS2zZm7Z2bhhBwEExlqmWsznXotW0Iw2sK92yj+zvW9g
         g/92Kx8XZj0YxwCZ0rUxrImNYYhNks7wHkmA6ONRfaJG8MfurNeCOSyhV5BgZx1JMf8X
         q2JCy206BDA3L8VfYpi5AhtdZWEZC+8KLdzNr+RwVmHhWvDQBvDI1Lu92Y58+6O3R0Eo
         snjPnIWoIN4uNMLev/t8XwdsrqKsTL/RWmJ++nUtmVofX3NHBnIWITASunhw4lvdxvRC
         MN89+OUnH5X10V6zVMQxTL9CK+J2jcIPyCw3jnyDLzKw8fYFiwTYKE4LisSX6SY75zxx
         UZNw==
X-Gm-Message-State: AOJu0YxymdIVgfEBlysCSRkzQHl011vbJNiarp+OJ3ItBlrxE9F42Nlh
	+wrkjFXyj0s3xjqGgCCnZgi4kf6sQLXWghnSbysird7nmQlHp7paRq07xCh8gLpahnZPaRiu3Qw
	QG6U=
X-Gm-Gg: ASbGncushpYq+6oW4OjA6FPB0EFEfRqFHCNZx73NxEuTwh+SubYxnuSPDuPjqZDHwMB
	KoW4iSFOwSDCrvvBkU33wBYaMQN914Dx0T5Rr4ReyPa32hv81MSaDIbrr/CC1v+LtDsJE7f452p
	qI8a2uaIlEWVN0tvh5wMCH4vnM1F+MKoe8q095pbDHsMQ2ALhLqd8q5f8m0Vy9B+zl2RbjvpkJ7
	HN57nPtZxXSXOsXIBkCcevyTwMx5WTzUBozqfqGNuY+0l5YVHhxvsZFp6R9r1SBmko790qCci1w
	nM8JP4ZR7E0iOFEd2r94kCVdl529PpOwYYo6BzlpvIkhRG1zc5eq1Hm45QGjo+5jtGAFBWe8KCO
	sliETsRJsauz9eaiJZ2y/axZNeJy6VhX3YKnB9AmvredEnZ0nN65F/ECcJ1cAp/EQkxLaomjNRh
	WznUz03sy25tFW5SVFk9AJ822NUgwJQRCzIrDuDq7D6UnhJMf2et3Pef87lIj+G1Ax
X-Google-Smtp-Source: AGHT+IG9dgAgdipcXC/EhIFV2j2Hx95fMyUeXKzGksp4jaH2e+ltPjQaZyef1keZ4a9X8AqeOl49vA==
X-Received: by 2002:a17:907:9714:b0:b73:9937:e96b with SMTP id a640c23a62f3a-b739937ead7mr389975666b.52.1763390390958;
        Mon, 17 Nov 2025 06:39:50 -0800 (PST)
Message-ID: <5e09670f-dd80-4dfe-a8d6-182545b744ee@suse.com>
Date: Mon, 17 Nov 2025 15:39:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v4 7/8] x86/HPET: drop .set_affinity hook
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: <57f34114-54b7-483d-8ac0-e9fa49df959f@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: <57f34114-54b7-483d-8ac0-e9fa49df959f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

No IRQ balancing is supposed to be happening on the broadcast IRQs. The
only entity responsible for fiddling with the CPU affinities is
set_channel_irq_affinity(). They shouldn't even be fiddled with when
offlining a CPU: A CPU going down can't at the same time be idle. Some
properties (->arch.cpu_mask in particular) may transiently reference an
offline CPU, but that'll be adjusted as soon as a channel goes into active
use again.

Along with adjusting fixup_irqs() (in a more general way, i.e. covering all
vectors which are marked in use globally), also adjust section placement of
used_vectors.

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

--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -294,22 +294,6 @@ static int hpet_msi_write(struct hpet_ev
 
 #define hpet_msi_shutdown hpet_msi_mask
 
-static void cf_check hpet_msi_set_affinity(
-    struct irq_desc *desc, const cpumask_t *mask)
-{
-    struct hpet_event_channel *ch = desc->action->dev_id;
-    struct msi_msg msg = ch->msi.msg;
-
-    /* This really is only for dump_irqs(). */
-    cpumask_copy(desc->arch.cpu_mask, mask);
-
-    msg.dest32 = cpu_mask_to_apicid(mask);
-    msg.address_lo &= ~MSI_ADDR_DEST_ID_MASK;
-    msg.address_lo |= MSI_ADDR_DEST_ID(msg.dest32);
-    if ( msg.dest32 != ch->msi.msg.dest32 )
-        hpet_msi_write(ch, &msg);
-}
-
 /*
  * IRQ Chip for MSI HPET Devices,
  */
@@ -321,7 +305,6 @@ static hw_irq_controller hpet_msi_type =
     .disable    = hpet_msi_mask,
     .ack        = irq_actor_none,
     .end        = end_nonmaskable_irq,
-    .set_affinity   = hpet_msi_set_affinity,
 };
 
 static int __hpet_setup_msi_irq(struct irq_desc *desc)
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -51,7 +51,7 @@ static vmask_t global_used_vector_map;
 
 struct irq_desc __read_mostly *irq_desc = NULL;
 
-static DECLARE_BITMAP(used_vectors, X86_IDT_VECTORS);
+static DECLARE_BITMAP(used_vectors, X86_IDT_VECTORS) __ro_after_init;
 
 static DEFINE_SPINLOCK(vector_lock);
 
@@ -2630,13 +2630,17 @@ void fixup_irqs(void)
         spin_lock(&desc->lock);
 
         vector = irq_to_vector(irq);
-        if ( vector >= FIRST_HIPRIORITY_VECTOR &&
-             vector <= LAST_HIPRIORITY_VECTOR &&
-             desc->handler == &no_irq_type )
+        if ( (vector >= FIRST_HIPRIORITY_VECTOR &&
+              vector <= LAST_HIPRIORITY_VECTOR &&
+              desc->handler == &no_irq_type) ||
+             test_bit(vector, used_vectors) )
         {
             /*
              * This can in particular happen when parking secondary threads
              * during boot and when the serial console wants to use a PCI IRQ.
+             *
+             * Globally used vectors (like the HPET broadcast IRQ ones), need
+             * to be left alone in any event.
              */
             spin_unlock(&desc->lock);
             continue;



From xen-devel-bounces@lists.xenproject.org Mon Nov 17 14:40:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 14:40:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164127.1491135 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL0Oq-0001el-VL; Mon, 17 Nov 2025 14:40:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164127.1491135; Mon, 17 Nov 2025 14: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 1vL0Oq-0001ee-Rq; Mon, 17 Nov 2025 14:40:12 +0000
Received: by outflank-mailman (input) for mailman id 1164127;
 Mon, 17 Nov 2025 14:40: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vL0Op-00079j-48
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 14:40:11 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5108964c-c3c3-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 15:40:09 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-640e9f5951aso8493010a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 06:40: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
 a640c23a62f3a-b734fda8d69sm1082524466b.50.2025.11.17.06.40.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 06:40: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: 5108964c-c3c3-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763390409; x=1763995209; 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=5uOHVwkR4wfmN/82FZJU7rBePSTRT32bVOhGvFMjl6E=;
        b=OX906PjD48P3Gg0a4DIAIDtzLpa2HF95lj3cqS0IBCHUJdcGpnlzkfsUMEKTdCsh6G
         eUCoyw+tFzTVv09bw9aAogfrQtZH5H4l1zb5k7wdaM0ppDAOQVKOAI7X6OFLY8ZXR1sR
         3mR7wnwCR8XTFn5fBaTNa4ECRj+M8XXeUBM3trafGKg9+xK02tBCEF8qPwpy85+Ywnc2
         dreDn8dNQAZlyunlQ1y330Z/iC/tIztAdYYb1yTtDp25+Ow+TNr/ITgDZYRfFlKYLrVB
         PtG+71xt4Uw2hMdfSOcDmhcQIt4gP28cm/ffJ4dSVaOIXJQ4PcsGUPHh+ZqivBF0lOkI
         Bl5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763390409; x=1763995209;
        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=5uOHVwkR4wfmN/82FZJU7rBePSTRT32bVOhGvFMjl6E=;
        b=nGfwB724ldz1CxdqqjPg4fJlPoSPxFIAbkC/YFnCDOW3AzY5zoyx92VmjocK66xM3w
         jkm5+QbY6ixikk5pIVy9ORUWqeP8nEeRKzJQTSrUQQOh2tzsiYSpdVAzH+zkMvQ7W41u
         lqUPNpfBiRW6zv6+OgP6W0bh9rEbIFfWoClFjrPiBBoSej7Do4H4NY4milhEk3rxMmrD
         pZyE7iKQu/DNE4YCGyjS2TqQqCMsOUSVObSrR42qbkpQYWQNZkY2JT9sMmJUAXFvPkIw
         t0z8us5fs35wRxdIpz+awuh5XaV2QVgIhR8wY/zHv/RddB1JK6MFvh/FDz+3FFerc0Yt
         RssQ==
X-Gm-Message-State: AOJu0Yx27I53kh3gTnqQ6lavcB6HE6itLyOUwQqkWSYyHSaeOTUko0WQ
	XqYxct/yL+KkZmW8s+8ZaNXqa0452358r+dfMuwlDq6jXfk0huU8dcmkiHp6RjKyfatoH9gW6Gg
	HOJs=
X-Gm-Gg: ASbGncvQuuiB6+JcCBEEOSfzN5ROgloQoV05k2yvUy0O0fM+JXuDafcctPl53ujXrcd
	88oBsMTJsQIIpklPc6x/42d5pr1O6LREmUq2NXEkm1mQAxjwUR8JW5vp39AYT9dPeP0FvWCpCuo
	de2yKUYYSSmdRSIb4uzSsdTKIOFYzTId5yQWKoNXsf3Xr0NX4ufviVyuSDew0qHMaXOhdIv9M1D
	UXkTLEoWyokRILsX5mmEiD70B28LL6xacwzE76fTOtxzocyt/x8ktdlhWuy6sbKHD29wcYwDaqx
	YNlx7u618ipdiB/P2oFqsfzrLkdup09E+dkwB7irDn5oBPLA2ROiyFCAJFR3pCQlBfqelan80l+
	NGHxbWe6wXM9ruJ0aAkN/GivhDy3oUQANaOsjtjBJvIf0CkrMQBRxGswYz3PQoVr8ZYWNSqOWIi
	ymHjMeoByQE1a1/LzFFFaSwwRLcSIurMYhho9EXt0VbILdArVSOqfHJ9mJ2jZTWlrI
X-Google-Smtp-Source: AGHT+IGwrnn4A1jKS8uEriGFes2b0JucnS5GbtRGHV4wkeQ3vTw9dpeZS6tcxLaz+RsgFAF4E7cGug==
X-Received: by 2002:a17:906:9f85:b0:b73:2ced:9af0 with SMTP id a640c23a62f3a-b7365b11119mr1248131366b.27.1763390408967;
        Mon, 17 Nov 2025 06:40:08 -0800 (PST)
Message-ID: <37cdba83-9bf8-493a-9a7b-5ec11c32159a@suse.com>
Date: Mon, 17 Nov 2025 15:40:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v4 8/8] x86/HPET: don't arbitrarily cap delta in
 reprogram_hpet_evt_channel()
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: <57f34114-54b7-483d-8ac0-e9fa49df959f@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: <57f34114-54b7-483d-8ac0-e9fa49df959f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

There's no reason to set an arbitrary upper bound of 10 seconds. We can
simply set the comparator such that it'll take a whole cycle through all
32-bit values until the next interrupt would be raised. (For an extremely
fast-running HPET [400 MHz and up] 10 seconds would also be too long.)

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

--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -23,7 +23,6 @@
 #include <asm/irq-vectors.h>
 #include <asm/msi.h>
 
-#define MAX_DELTA_NS MILLISECS(10*1000)
 #define MIN_DELTA_NS MICROSECS(20)
 
 #define HPET_EVT_USED_BIT    0
@@ -162,10 +161,15 @@ static int reprogram_hpet_evt_channel(
 
     ch->next_event = expire;
 
-    delta = min_t(int64_t, delta, MAX_DELTA_NS);
     delta = max_t(int64_t, delta, MIN_DELTA_NS);
     delta = ns2ticks(delta, ch->shift, ch->mult);
 
+    if ( delta > UINT32_MAX )
+    {
+        hpet_write32(hpet_read32(HPET_COUNTER), HPET_Tn_CMP(ch->idx));
+        return 0;
+    }
+
     do {
         ret = hpet_next_event(delta, ch->idx);
         delta += delta;



From xen-devel-bounces@lists.xenproject.org Mon Nov 17 15:52:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 15:52:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164158.1491149 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL1Wa-0004Ri-1z; Mon, 17 Nov 2025 15:52:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164158.1491149; Mon, 17 Nov 2025 15:52:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL1WZ-0004Ra-Uf; Mon, 17 Nov 2025 15:52:15 +0000
Received: by outflank-mailman (input) for mailman id 1164158;
 Mon, 17 Nov 2025 15: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=lv5t=5Z=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vL1WY-0004RE-Lx
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 15:52:14 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 60fbe15f-c3cd-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 16:52:12 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b7373fba6d1so434730866b.3
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 07:52:11 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fad41cesm1089479166b.16.2025.11.17.07.52.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 07:52: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: 60fbe15f-c3cd-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763394731; x=1763999531; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+kyArrnqaqiFmAawX1hzqHI9xW8A/b/NnnN/SKQ3SH4=;
        b=ZtlR64ojYRDU1JsphQ4JVbWx5meLEx/13ZBFn3CFA22PAF35Oc4K+VivUw05uOnAZt
         oVmzSjaYXUtBS7mOqLbsyBvtfhFsSm/8m3xmwpNpsbx80HS25A8VT+mTccj5V+xIJ1Zu
         lobwzDlXlDGaRYaiGkLln/qQNwy7wSbc0e0uMJBx29zIzdYeINXAHrSwrjlzX8Sn+Gmu
         Lwlhs/3Dg7RzGLGpgB9gxe+lLgICZN7B+O7fjxd9c8dVNgxogNDnMm2Je2ZIx/40aQa2
         0K4cj3B/RXA9haxCy0ofcMRx16bEgv7ZSPzZRxeM82MQlCbzXyzA+DLV0juc1f4NwPVc
         pEkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763394731; x=1763999531;
        h=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=+kyArrnqaqiFmAawX1hzqHI9xW8A/b/NnnN/SKQ3SH4=;
        b=vJejQA+4ZNnpZSLHZi8osyEoATEE8innrPQ6Z0aHdLMDoLrpwZqCzgu9rccjsCTSBL
         js1OKGf2CIcWeODeA/P6qy1r2oA0J863jCXOK6QefPpFWva677Kkl3Yi2dQ57JhA3MEl
         aqw0W+p7+4sx9PVWQLMWsBRAYlqx8riTGfHl6EWlqHvocKp+dmzPwvMEODLNTJzhQkt+
         kqpYanON1bn8IPqDbaFc40si8+dtzaI8T15/7jvgzxiIt9q71e5gabdnF/bVPI/N8yAa
         7MF+VMI/8DRtArcytnsI0M2WysLhWNDAh09JKTjWvKJsC7vwzmQS/xY9pTYM9Np+TJst
         lxUA==
X-Forwarded-Encrypted: i=1; AJvYcCUAbqPwU9dIL96qIa10ZYCvDAfHWAg+DUcHDYJXCIvqyWBischzju2CaA5d5zCe/oIFJv7ZpNQk6NE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzoevfoNs0JZWMuGnYWYFoVT1NV7/9Yzf3TLDwogeqbfG1MAYIK
	xxmGZnK38NkzzJjvgEjSE2CDAGnYkS0mADjS0gVLG70iFk4k0y5h9SFl
X-Gm-Gg: ASbGnctaiK/9MY8fqD02CkY41PBcdvopwJoYnyDB/I/cFI68BPwcRgwRtNbEBjxyu3+
	nzSIscJN0k4GJTEhYLnHclex2B0xmv0EBOG0tvJLLZU63nFJ8SLOChKpFUerIOwNFyHuShs8+C1
	AB3N9ogYXstJWdzQ1mRDLEq4uBFcNybvXbmeikapyjlZ3i/6ecDh8n+18acmBtapuc3CIFQaSqs
	1O9AujuMD6QzkgesxcqMsPwsP4jmBMxsWoDGu2GGZG8h4SAdKr3UekS4E/25C8aSAaZ8zYYxv1r
	e9/Z7jvkdWItASftRgiu8PrcOfo7XqKMg99rBgNAKSQjlHTOoLhi0GKXOb3z00dfQyb6Xl/NPZz
	6rqNdgEzd+ZTz2RtALFJlIbIXXH/zApdaQQPGVUmIrkA5rgXwYqEq3jNvU35UDF+I7E1cRloxf+
	5p68QDQh6qiy2iOrq09cQE54T+9ehoi0zfg/a+++JQAWAq0+KJyg==
X-Google-Smtp-Source: AGHT+IFBDbRUWH6mMuCNRf6I0PLAXlUBiQUbxnn0aBSUFBg920UBlUAGNC3jNJs77HkBfnG29+ahGQ==
X-Received: by 2002:a17:906:cc99:b0:b73:aebe:e259 with SMTP id a640c23a62f3a-b73aebee4cbmr123539666b.34.1763394730483;
        Mon, 17 Nov 2025 07:52:10 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------0ZNjfwRowauBfIo4cBQh0Yky"
Message-ID: <1cd26ed4-cf48-4524-acec-3d806a5cf953@gmail.com>
Date: Mon, 17 Nov 2025 16:52:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 17/18] xen/riscv: add support of page lookup by GFN
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <3eea04894401202666ea0bb7ee1240a23ba54d8a.1760974017.git.oleksii.kurochko@gmail.com>
 <c40be165-0db3-4115-b96b-92624b669e74@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <c40be165-0db3-4115-b96b-92624b669e74@suse.com>

This is a multi-part message in MIME format.
--------------0ZNjfwRowauBfIo4cBQh0Yky
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 11/10/25 5:46 PM, Jan Beulich wrote:
> On 20.10.2025 17:58, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -1049,3 +1049,178 @@ int map_regions_p2mt(struct domain *d,
>>   
>>       return rc;
>>   }
>> +
>> +/*
>> + * p2m_get_entry() should always return the correct order value, even if an
>> + * entry is not present (i.e. the GFN is outside the range):
>> + *   [p2m->lowest_mapped_gfn, p2m->max_mapped_gfn]).    (1)
> There's one closing parenthesis too many here (likely the one before the colon).

You are right, ')' should be dropped. I think that "." could be drooped too.

>
>> + * This ensures that callers of p2m_get_entry() can determine what range of
>> + * address space would be altered by a corresponding p2m_set_entry().
>> + * Also, it would help to avoid cost page walks for GFNs outside range (1).
> DYM "costly"?

Agree, costly would be better here.

>
>> + * Therefore, this function returns true for GFNs outside range (1), and in
>> + * that case the corresponding level is returned via the level_out argument.
>> + * Otherwise, it returns false and p2m_get_entry() performs a page walk to
>> + * find the proper entry.
>> + */
>> +static bool check_outside_boundary(gfn_t gfn, gfn_t boundary, bool is_lower,
>> +                                   unsigned int *level_out)
>> +{
>> +    unsigned int level;
>> +
>> +    if ( is_lower ? gfn_x(gfn) < gfn_x(boundary)
>> +                  : gfn_x(gfn) > gfn_x(boundary) )
>> +    {
>> +        unsigned long mask = 0;
>> +
>> +        for ( level = P2M_ROOT_LEVEL; level; level-- )
>> +        {
>> +            unsigned long masked_gfn;
>> +
>> +            mask |= PFN_DOWN(P2M_LEVEL_MASK(level));
>> +            masked_gfn = gfn_x(gfn) & mask;
>> +
>> +            if ( is_lower ? masked_gfn < gfn_x(boundary)
>> +                          : masked_gfn > gfn_x(boundary) )
>> +            {
>> +                *level_out = level;
> For this to be correct in the is_lower case, don't you need to fill the
> bottom bits of masked_gfn with all 1s, rather than with all 0s? Otherwise
> the tail of the range may be above boundary.

I think that I didn't get what you mean by "the range" here and so I can't understand
what is "the tail of the range".
Could you please clarify?

>
>> +struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>> +                                        p2m_type_t *t)
>> +{
>> +    struct page_info *page;
>> +    p2m_type_t p2mt = p2m_invalid;
>> +    mfn_t mfn;
>> +
>> +    p2m_read_lock(p2m);
>> +    mfn = p2m_get_entry(p2m, gfn, t, NULL);
>> +
>> +    if ( !mfn_valid(mfn) )
>> +    {
>> +        p2m_read_unlock(p2m);
>> +        return NULL;
>> +    }
>> +
>> +    if ( t )
>> +        p2mt = *t;
> Doesn't it need to be the other way around? The way you have it, when a caller
> passes NULL for t, p2m_get_entry() won't give you a type, and you'll do all
> further work with p2m_invalid.

IIUC, then the following should resolve the mentioned issue:
@@ -1344,11 +1344,14 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
                                          p2m_type_t *t)
  {
      struct page_info *page;
-    p2m_type_t p2mt = p2m_invalid;
+    p2m_type_t p2mt;
      mfn_t mfn;
  
      p2m_read_lock(p2m);
-    mfn = p2m_get_entry(p2m, gfn, t, NULL);
+    mfn = p2m_get_entry(p2m, gfn, &p2mt, NULL);

>
> Also, might this better move ahead of the earlier if()? Callers might be able
> to do still something based on the type, when they get back NULL as function
> return value. (Practically this might only become of interest once you add
> something like PoD, paging, or sharing.)

Agree with that, it should be moved before "if ( !mfn_valid(mfn) )"

Thanks.

~ Oleksii

--------------0ZNjfwRowauBfIo4cBQh0Yky
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/10/25 5:46 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:c40be165-0db3-4115-b96b-92624b669e74@suse.com">
      <pre wrap="" class="moz-quote-pre">On 20.10.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -1049,3 +1049,178 @@ int map_regions_p2mt(struct domain *d,
 
     return rc;
 }
+
+/*
+ * p2m_get_entry() should always return the correct order value, even if an
+ * entry is not present (i.e. the GFN is outside the range):
+ *   [p2m-&gt;lowest_mapped_gfn, p2m-&gt;max_mapped_gfn]).    (1)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
There's one closing parenthesis too many here (likely the one before the colon).</pre>
    </blockquote>
    <pre>You are right, ')' should be dropped. I think that "." could be drooped too.

</pre>
    <blockquote type="cite"
      cite="mid:c40be165-0db3-4115-b96b-92624b669e74@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+ * This ensures that callers of p2m_get_entry() can determine what range of
+ * address space would be altered by a corresponding p2m_set_entry().
+ * Also, it would help to avoid cost page walks for GFNs outside range (1).
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
DYM "costly"?</pre>
    </blockquote>
    <pre>Agree, costly would be better here.

</pre>
    <blockquote type="cite"
      cite="mid:c40be165-0db3-4115-b96b-92624b669e74@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+ * Therefore, this function returns true for GFNs outside range (1), and in
+ * that case the corresponding level is returned via the level_out argument.
+ * Otherwise, it returns false and p2m_get_entry() performs a page walk to
+ * find the proper entry.
+ */
+static bool check_outside_boundary(gfn_t gfn, gfn_t boundary, bool is_lower,
+                                   unsigned int *level_out)
+{
+    unsigned int level;
+
+    if ( is_lower ? gfn_x(gfn) &lt; gfn_x(boundary)
+                  : gfn_x(gfn) &gt; gfn_x(boundary) )
+    {
+        unsigned long mask = 0;
+
+        for ( level = P2M_ROOT_LEVEL; level; level-- )
+        {
+            unsigned long masked_gfn;
+
+            mask |= PFN_DOWN(P2M_LEVEL_MASK(level));
+            masked_gfn = gfn_x(gfn) &amp; mask;
+
+            if ( is_lower ? masked_gfn &lt; gfn_x(boundary)
+                          : masked_gfn &gt; gfn_x(boundary) )
+            {
+                *level_out = level;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
For this to be correct in the is_lower case, don't you need to fill the
bottom bits of masked_gfn with all 1s, rather than with all 0s? Otherwise
the tail of the range may be above boundary.</pre>
    </blockquote>
    <pre>I think that I didn't get what you mean by "the range" here and so I can't understand
what is "the tail of the range".
Could you please clarify?

</pre>
    <blockquote type="cite"
      cite="mid:c40be165-0db3-4115-b96b-92624b669e74@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
+                                        p2m_type_t *t)
+{
+    struct page_info *page;
+    p2m_type_t p2mt = p2m_invalid;
+    mfn_t mfn;
+
+    p2m_read_lock(p2m);
+    mfn = p2m_get_entry(p2m, gfn, t, NULL);
+
+    if ( !mfn_valid(mfn) )
+    {
+        p2m_read_unlock(p2m);
+        return NULL;
+    }
+
+    if ( t )
+        p2mt = *t;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Doesn't it need to be the other way around? The way you have it, when a caller
passes NULL for t, p2m_get_entry() won't give you a type, and you'll do all
further work with p2m_invalid.</pre>
    </blockquote>
    <pre>IIUC, then the following should resolve the mentioned issue:
@@ -1344,11 +1344,14 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
                                         p2m_type_t *t)
 {
     struct page_info *page;
-    p2m_type_t p2mt = p2m_invalid;
+    p2m_type_t p2mt;
     mfn_t mfn;
 
     p2m_read_lock(p2m);
-    mfn = p2m_get_entry(p2m, gfn, t, NULL);
+    mfn = p2m_get_entry(p2m, gfn, &amp;p2mt, NULL);

</pre>
    <blockquote type="cite"
      cite="mid:c40be165-0db3-4115-b96b-92624b669e74@suse.com">
      <pre wrap="" class="moz-quote-pre">

Also, might this better move ahead of the earlier if()? Callers might be able
to do still something based on the type, when they get back NULL as function
return value. (Practically this might only become of interest once you add
something like PoD, paging, or sharing.)</pre>
    </blockquote>
    <pre>Agree with that, it should be moved before "if ( !mfn_valid(mfn) )"

Thanks.

~ Oleksii</pre>
  </body>
</html>

--------------0ZNjfwRowauBfIo4cBQh0Yky--


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 16:00:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 16:00:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164180.1491187 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL1eu-0006rY-8I; Mon, 17 Nov 2025 16:00:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164180.1491187; Mon, 17 Nov 2025 16:00:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL1eu-0006rR-49; Mon, 17 Nov 2025 16:00:52 +0000
Received: by outflank-mailman (input) for mailman id 1164180;
 Mon, 17 Nov 2025 16:00:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vL1et-0006rL-7N
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 16:00:51 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 90bf4033-c3ce-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 17:00:40 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-640d0ec9651so7455779a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 08:00: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
 4fb4d7f45d1cf-6433a497f27sm10435326a12.17.2025.11.17.08.00.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 08:00: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: 90bf4033-c3ce-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763395240; x=1764000040; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/0Q7SQYyEKCqzv0PODemPWtOGac2+wn5CQXPT8MqTgY=;
        b=aG9nmRZmFZlStaKl4haf38dXdS0vj8hXpfCwXX3p0ExVhJk3gbNxGG/KRRtLlOs6Sl
         kQN1beEjABC2P1GUrHVFOhxloyLOAjFMzR7WXIi0Lh4rtkHt7lzv1PJBKg79xb8TWebG
         iOYP+tBHjB+hdWkmq7K34l+xv3YPHxwQ1cWoxDr50y8L4E4eqiSjrpFTHQcNNDXHNqo5
         JZDEYTieRcMMRFsy8+dtWhxuxTk/fVOiUjQKiXafwPEjkuXDCN+vIKg+8K9O1tpluibM
         i6WdjEsurXuAfq9PSfalkj4H9L/gme3TIVPTUGrTc+/GkBSmUYQfI8lLAiRbFvxd92Tx
         zM0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763395240; x=1764000040;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/0Q7SQYyEKCqzv0PODemPWtOGac2+wn5CQXPT8MqTgY=;
        b=a4XCDvEry0tBB2chh/AL2ObUAaDOjXQ8cSnSJefJCiekeOSVdySq6iBHu/b4JEL4oy
         Ma+9/AQDwbs8c5Ack+7ljBtID5JJ7gSVgBLmbfMz/O76SW73UmJMsVRBpPQssfOIQRTM
         1qchhu4eLW45JE/CoD4WyHCj2t+TpKDeBfpKIpnNWw7sWp1T6kILeSsu+NrXpM1IWztQ
         DNO7oQxmFJq3EnDWLeiLoAdGToo5FjphLsBtVvXjhKbd/qLJmAsRGoTCn3H5AEU08mY/
         Hk1pONRh4E/iXh7yvsyCd2rANS43UrIALh2e2oll3JcUBWtr0k3ih3JcaFIy9WBI1t4H
         Q9ew==
X-Forwarded-Encrypted: i=1; AJvYcCXB5moTyQWqq8fb3VTpVvE00kXJptiniy5yPSYS7qAKfuvzkZ++hZAR1McNSZEbmF9cfkvhlY7+jVI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyHgoUp0h/5TAxT4gVhhNEQjN0LSPIgsrtNRxEwNUWIZ0WpYhvG
	hI+xE5OaI7xbd2zeLs9a7Ze1LrnkWUQq6OMlvnH0lw2ZjbcIkfP7tGntcmthKyzeMg==
X-Gm-Gg: ASbGncsKN4tjbx0RRfcF91UVJDU3EibBpD82LJ6QrRL2FywHH4QQHRlonAOoKm5IbKF
	XC4pzuJDt4jZuN2HxcbyJiu6p3pmYpHfsWQsMHPgNamc4RFjFuMZdLE3Xn9nSB+6XBWGgY7OrDQ
	PMHIk85DOEypHLdFzBlxcEfvAiOrf4C2aeYvWm45fcwlXY860+tyU2DhzCoan2xRgBVZcy436kd
	Jlj0DPevrf0enlbZM2LeJDjRTd0/WqJiJsMQz2SuVfesDvBowcVA7XCBRzrKhim7LYcOJRnefab
	bq8Mo5cIe2xnrP+ZvINQCmK15RT2pQLvGpSfUB0+YJSbRi/SDfjmRgHe54ug0CLvdoUbyDWy/Xv
	jf/8HTZGPNl/v+AAn8EQ4h5CzcG4fDMs6qw0BklaZfuM9hvW5HdY1H9uBmTFKWAdmVoenwx4dlU
	GBBhd/ConB65BXqGEPZRT59yjgJjv3DlAnP8ADOgb1Vd/jQICoTtGtPh3X3hTjYqOxxp9MVKYoS
	po=
X-Google-Smtp-Source: AGHT+IGMyTd7VKvkxUfjOf7Ra/ZIUXvH96Iiy0guNuND0QZcKDGCeexDDEtfYXRIdFbaIGn5HB2xZw==
X-Received: by 2002:a05:6402:1d49:b0:640:a7a9:289f with SMTP id 4fb4d7f45d1cf-64350e04fb0mr10872477a12.2.1763395240309;
        Mon, 17 Nov 2025 08:00:40 -0800 (PST)
Message-ID: <499df585-d50e-435c-8496-bc6078dd504b@suse.com>
Date: Mon, 17 Nov 2025 17:00:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 17/18] xen/riscv: add support of page lookup by GFN
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <3eea04894401202666ea0bb7ee1240a23ba54d8a.1760974017.git.oleksii.kurochko@gmail.com>
 <c40be165-0db3-4115-b96b-92624b669e74@suse.com>
 <1cd26ed4-cf48-4524-acec-3d806a5cf953@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: <1cd26ed4-cf48-4524-acec-3d806a5cf953@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.11.2025 16:52, Oleksii Kurochko wrote:
> On 11/10/25 5:46 PM, Jan Beulich wrote:
>> On 20.10.2025 17:58, Oleksii Kurochko wrote:
>>> +static bool check_outside_boundary(gfn_t gfn, gfn_t boundary, bool is_lower,
>>> +                                   unsigned int *level_out)
>>> +{
>>> +    unsigned int level;
>>> +
>>> +    if ( is_lower ? gfn_x(gfn) < gfn_x(boundary)
>>> +                  : gfn_x(gfn) > gfn_x(boundary) )
>>> +    {
>>> +        unsigned long mask = 0;
>>> +
>>> +        for ( level = P2M_ROOT_LEVEL; level; level-- )
>>> +        {
>>> +            unsigned long masked_gfn;
>>> +
>>> +            mask |= PFN_DOWN(P2M_LEVEL_MASK(level));
>>> +            masked_gfn = gfn_x(gfn) & mask;
>>> +
>>> +            if ( is_lower ? masked_gfn < gfn_x(boundary)
>>> +                          : masked_gfn > gfn_x(boundary) )
>>> +            {
>>> +                *level_out = level;
>> For this to be correct in the is_lower case, don't you need to fill the
>> bottom bits of masked_gfn with all 1s, rather than with all 0s? Otherwise
>> the tail of the range may be above boundary.
> 
> I think that I didn't get what you mean by "the range" here and so I can't understand
> what is "the tail of the range".
> Could you please clarify?

By applying "mask" you effectively produce a range (with "gfn" somewhere in
the middle). For the level (which you return to the caller) to be correct,
the entire range must be matching "gfn" in being below or above of the
boundary. My impression is that this isn't the case when is_lower is true.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 16:43:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 16:43:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164192.1491197 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL2Jp-0003hb-9J; Mon, 17 Nov 2025 16:43:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164192.1491197; Mon, 17 Nov 2025 16:43:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL2Jp-0003hU-6B; Mon, 17 Nov 2025 16:43:09 +0000
Received: by outflank-mailman (input) for mailman id 1164192;
 Mon, 17 Nov 2025 16: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vL2Jn-0003hO-GS
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 16:43:07 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7da2727a-c3d4-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 17:43:05 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-b7373fba6d1so445856366b.3
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 08: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
 a640c23a62f3a-b734fd7f37bsm1100532766b.35.2025.11.17.08.43.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 08: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: 7da2727a-c3d4-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763397785; x=1764002585; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IjRdqVHf7CGvQFRplILXqdPk5vr+nqbPupMgIVWk79w=;
        b=eFg1Q0ArPv9qEHEO2nciv8nuqU7iTAlEcSuOvdYA1UvXadgM/vHYjg/cSzMr9P4FWP
         R5jeIt61HvqxKghU50o7VE54y7mbV70eyzNOKcJZWWKZIn2HLR2tdaJ5NKVQA/6221Dq
         CA2gSjDW3t1R8qRw35pdddu5OHNNnBe6KZ5f02X8nX5rD+3Mdql809C8TAGt6bFr2B//
         t2pKRYd32mrdmckCW935mJKxWb6vg+/w0x1lsuz20tSdGVWy5f21jlbFFgHWFYCD9fb3
         YZO93ou+UqZ/26iS8Wo66ZbwKCjSQhrXn/Ml5Tjvk+l3dm1Vdx/D8wWb/6Vk5Z7mjw0e
         QBsg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763397785; x=1764002585;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IjRdqVHf7CGvQFRplILXqdPk5vr+nqbPupMgIVWk79w=;
        b=BdSejerIpPODDSAD1QAODOi/kAa9udNWiYDFwsOkm4S79Scfrygf7oauoOMno21YBa
         dSmI2BD0cOcKOtvzhl9savq0vgC4+aNGE0YrABVC0MS/kigDyH4HWosfrOwItt8CcDGR
         PzNOYvbfGbgvKU7CUbKreTuTvf3AkMt/MuxlB9MTrDSLURH4r8dToE93Ha5Zv52EcBvG
         qrHjwJqztj4BZqFVagYKfCbwTDAK3r2FS2nDmXVMFS1N55zV6Dmg7GCfmcaU/a7vfHUI
         S3T4ti/4/CEbKSvdW3EdRR0kWVpZ+ExI8z5vAxhELNTi84D8Y/Dm/PGo6W8pLNybVEKz
         i3DQ==
X-Forwarded-Encrypted: i=1; AJvYcCVlqspkIbCVsZY06y5JILg7xjk5tsGX6BV5p7BKhO8Fu5nPzMyMkFLFB0jTh4NI/cDIWHMe3Fi4+a4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw1i6JXVdmcXo2JdW9FUPFn0mgTLTS8xNiQrIFsY69qtrLzeSas
	OmDe+C3ya7mgJHcThkH5vHZjmuXRWjelVMQxox936sDIUgU4PvgcQKXV4ZwqVqiMh5QwGd5pPOu
	+yxg=
X-Gm-Gg: ASbGncs+dyxUHq4P7QcMB2ACYd9CkaX+VxwcXgr/4ESMk+kMbC8TQj5N2dybqHhdc2I
	LSPK99ReF8ycm7n4OFPFHbuWLLF+nV5SAxtbF+qkUF6h0ODDOeXzVeN5hApcgRTqYltReEGB28o
	LZLmcoLXw5eADSDq1vxkmj6jXFkwakATUv2hU/D8QMe1SUDYGSXwTBr0FDpgS9+bjSpjGZWvOd/
	O18Fs8zfm5zeTYU80piFyDzzyYK6QAwOmPSTVpuD0OCewqr7b5vULlKwrEjWYV09224diDqQ/39
	jmpJk0pCVITEUZrP21Wg2dRgEeshuEmdmzEyLRtvAEsWzY42RBTGPfmxwniMlCrP2OmaVI5g3sP
	zgGDUn07yLcZKogUGDyA4kGMjPjmJxhhk+k7XR2oZAhehCQ13d16fhA65nJ/GNKiSIZAVvszB1e
	UEsK/w6DWcQbce/ZVFQTSvG7knu3pzW9IPfgUM2sDdvyXpbLF7viGiiD1XA3nkZvLuZddmgvu8L
	4GIYpj7RSJKUw==
X-Google-Smtp-Source: AGHT+IEAKfRlt99Z3CAEFxgNqzWtkgqsDI+CZiJ0JlmBpb+CsToKYPc+slOOLNFit9eFw5Xw0oYZUg==
X-Received: by 2002:a17:907:6d08:b0:b72:aa52:6034 with SMTP id a640c23a62f3a-b73678969c0mr1289987766b.21.1763397785150;
        Mon, 17 Nov 2025 08:43:05 -0800 (PST)
Message-ID: <11c3929a-977b-4ef8-aaaa-9aea01657b04@suse.com>
Date: Mon, 17 Nov 2025 17:43:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v4] xen/x86: guest_access: optimize raw_x_guest() for
 PV and HVM combinations
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251114140117.270461-1-grygorii_strashko@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: <20251114140117.270461-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.11.2025 15:01, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Xen uses below pattern for raw_x_guest() functions:
> 
> define raw_copy_to_guest(dst, src, len)        \
>     (is_hvm_vcpu(current) ?                     \
>      copy_to_user_hvm((dst), (src), (len)) :    \
>      copy_to_guest_pv(dst, src, len))
> 
> This pattern works depending on CONFIG_PV/CONFIG_HVM as:
> - PV=y and HVM=y
>   Proper guest access function is selected depending on domain type.
> - PV=y and HVM=n
>   Only PV domains are possible. is_hvm_domain/vcpu() will constify to "false"
>   and compiler will optimize code and skip HVM specific part.
> - PV=n and HVM=y
>   Only HVM domains are possible. is_hvm_domain/vcpu() will not be constified.
>   No PV specific code will be optimized by compiler.
> - PV=n and HVM=n
>   No guests should possible. The code will still follow PV path.
> 
> Rework raw_x_guest() code to use static inline functions which account for
> above PV/HVM possible configurations with main intention to optimize code
> for (PV=n and HVM=y) case.
> 
> For the case (PV=n and HVM=n) return "len" value indicating a failure (no
> guests should be possible in this case, which means no access to guest
> memory should ever happen).
> 
> Finally move arch/x86/usercopy.c into arch/x86/pv/usercopy.c to use it only
> with PV=y.
> 
> The measured (bloat-o-meter) improvement for (PV=n and HVM=y) case is:
>   add/remove: 3/8 grow/shrink: 3/89 up/down: 1018/-12087 (-11069)
>   Total: Before=1937280, After=1926211, chg -0.57%
> 
> [teddy.astie@vates.tech: Suggested to use static inline functions vs
> macro combinations]
> Suggested-by: Teddy Astie <teddy.astie@vates.tech>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

I would guess that this R-b would have needed dropping, ...

> ---
> changes in v4:
> - move usercopy.c into arch/x86/pv/
> - rework to always dynamically check for HVM vcpu(domain) by using is_hvm_vcpu()
>   as requested by Jan Beulich

... with at least the latter of these two changes.

> --- a/xen/arch/x86/pv/Makefile
> +++ b/xen/arch/x86/pv/Makefile
> @@ -14,6 +14,10 @@ obj-y += ro-page-fault.o
>  obj-$(CONFIG_PV_SHIM) += shim.o
>  obj-$(CONFIG_TRACEBUFFER) += trace.o
>  obj-y += traps.o
> +obj-$(CONFIG_PV) += usercopy.o

Just obj-y with the movement.

However, is the movement (and was the adding of $(CONFIG_PV) in the earlier
version) actually correct? The file also produces copy_{from,to}_unsafe_ll(),
which aren't PV-specific. This may be only a latent issue right now, as we
have only a single use site of copy_from_unsafe(), but those functions need
to remain available. (We may want to arrange for them to be removed when
linking, as long as they're not referenced. But that's a separate topic.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 16:52:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 16:52:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164204.1491207 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL2Sj-0005Jj-42; Mon, 17 Nov 2025 16:52:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164204.1491207; Mon, 17 Nov 2025 16:52: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 1vL2Sj-0005Jc-0U; Mon, 17 Nov 2025 16:52:21 +0000
Received: by outflank-mailman (input) for mailman id 1164204;
 Mon, 17 Nov 2025 16:52: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vL2Sh-0005JW-9r
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 16:52:19 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c447744c-c3d5-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 17:52:13 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-640aaa89697so5937873a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 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
 a640c23a62f3a-b734fad41f1sm1133864166b.23.2025.11.17.08.52.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 08: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: c447744c-c3d5-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763398333; x=1764003133; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=weznmtnipny7ujYDz+XHFQiEruW9WJeEiY+a1pjZB7c=;
        b=PCiU/rYYE3XFghF97noy01SnJdkOoFCuOFVdk99wBvYMz3EED7UeubkSDL/uvZ2Id5
         g5P+D51ASrceEKTd0gbRyhxQqwYVUb4eLnnsevJ2W2F1/OYZ6ayTVeCDbueiXlwg/+dY
         U68ninPLv4JcYCYbfWHnKadPPUDOk9ktjx2ZfZjA6A3cjCiBMkLpX5vf2XRQnc6fsuUM
         TuprzJLLD3Usvg53/6ZOCX15VpdClrSRpC6b+TMiZl90e00C8x8FmqBcyzy7jvpnumbt
         gj25juvcLzQ6l1KxhdzlNWiMIF4ifReWGfrI3EEkP3veLtsVNclZiZvkJGcdnsPKtcMP
         bsiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763398333; x=1764003133;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=weznmtnipny7ujYDz+XHFQiEruW9WJeEiY+a1pjZB7c=;
        b=VnMJY/tsQyrWagntM3vqE6xPWWT4pb13Js3it8+sv6f33P/uBScrUNklpGmHrBGDjk
         PJhqBv5k1LgamZSr5dGEmtW9CXmyv8eh/xQTCvIVo4FD+f5HnqfQb+xD+mxEnrG+aDDt
         TCvoIhdJXe18GVhj5nIvnfEJHzubQFpBmbKcid+muc8wL2kDMEbXiOcUpzffYzEXQBQy
         Aopl09y+561WmLBbm+6dAQXWbl8qfwE4GgXBCQyTvHfHn3BqIlVWIjHd9ye9jIGTcRJo
         EJuiRyFiA1u7W2FDp+xUjHu/ix7QVI0X5FDrUv2s6rT9mtzPF5jOYokWeZ1d2GYDfVSu
         rWmw==
X-Forwarded-Encrypted: i=1; AJvYcCWEWk0Jnm5wG+xGMIq3pxZiJTlyGYnwo1tzyNisXMweZMUy2S/xsiK6VhRz8pmQ28lavaGzbKtqz9c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwXoTrhbQcBhn2LamAd5kho2ER1egQUSZyEAXNj7Us4VEJ51tv0
	t1yb5xmysrCaQNVGo9NpuFU/vwzt3h+vKggmHT/uX6RGDMhroUBnbLUMoAmzGs8DHg==
X-Gm-Gg: ASbGncuVVNmRaGNm2O8PFghiHQ266NLYDIf9EvWEMMhpU+5H0WXSmgg+PNk2TSP+nBF
	Fu9XtffCRHHdC71fZuRHPjjS/HzT+TuosRm4AvbA/YmM2TNlhhx7oo+o/YxG37/15OibtTKMh14
	YsUu7GS7g6uVUsbsYinFBra3LFtmvmoAy6Tr16UCuf0iviOUiKrTCau9+7I3qnbhIcs1eDq+oNV
	/pqwIbEiw01hBF+w8GOaq/kwADskhcVEmPnDyyqesqkllLQ6Rf6dKn8hhVe36rGsLcp8q1+DR6d
	M25fYGbV1AKuPIlT1x671b1+eSzQNEnhM7ufUN7kB77OBvI0BM0SQo9fyofha/zq/k9OSStcuzw
	+3LrS+396jIilDwmPGuvQZJRhupJF21wDNaYMDs8y34CucTRR5tkiJt0N8XInaxLCVED29whMoj
	NDtIxfp25aYyESZF4zndWWXfoS1GmNlkRRAszqPUktIP94Fjzn6JqjFrlfDub8l0nb/Ln1J7+L7
	wfUyC2Oqn/lWQ==
X-Google-Smtp-Source: AGHT+IGbCFREwi2uakdE5UYH/RbFRM5WzZpqBevojXwmpUyh8F6lcTxKbAcm2eGsKG5kTBfTi+N95g==
X-Received: by 2002:a17:906:7304:b0:b72:a899:168d with SMTP id a640c23a62f3a-b73677edba0mr1349594766b.13.1763398333182;
        Mon, 17 Nov 2025 08:52:13 -0800 (PST)
Message-ID: <225378f4-0ebd-4c77-ae77-807bbb03b0bb@suse.com>
Date: Mon, 17 Nov 2025 17:52:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v3] xen: make VMTRACE support optional
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 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>
References: <20251114142207.279834-1-grygorii_strashko@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: <20251114142207.279834-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.11.2025 15:22, Grygorii Strashko wrote:
> --- a/xen/arch/x86/hvm/Kconfig
> +++ b/xen/arch/x86/hvm/Kconfig
> @@ -35,6 +35,18 @@ config INTEL_VMX
>  	  If your system includes a processor with Intel VT-x support, say Y.
>  	  If in doubt, say Y.
>  
> +config VMTRACE
> +    bool "HW VM tracing support"
> +    depends on INTEL_VMX
> +    default y
> +    help
> +      Enables HW VM tracing support which allows to configure HW processor
> +      features (vmtrace_op) to enable capturing information about software
> +      execution using dedicated hardware facilities with minimal interference
> +      to the software being traced. The trace data can be retrieved using buffer
> +      shared between Xen and domain
> +      (see XENMEM_acquire_resource(XENMEM_resource_vmtrace_buf)).

Please check adjacent options above or ...

>  config HVM_FEP
>  	bool "HVM Forced Emulation Prefix support (UNSUPPORTED)" if UNSUPPORTED
>  	default DEBUG

... below for how proper indentation would look like here.

> --- a/xen/arch/x86/hvm/vmx/vmcs.c
> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
> @@ -307,6 +307,7 @@ static int vmx_init_vmcs_config(bool bsp)
>      rdmsrl(MSR_IA32_VMX_MISC, _vmx_misc_cap);
>  
>      /* Check whether IPT is supported in VMX operation. */
> +#ifdef CONFIG_VMTRACE

This imo wants to move ahead of the comment. (Feels a little like I may have
said so already, but it may well have been in the context of a different
recent patch.)

> @@ -772,13 +775,24 @@ static inline int hvm_vmtrace_get_option(
>  
>      return -EOPNOTSUPP;
>  }
> +#else
> +/*
> + * Function declaration(s) here are used without definition(s) to make compiler
> + * happy when VMTRACE=n, compiler DCE will eliminate unused code.
> + */
> +int hvm_vmtrace_output_position(struct vcpu *v, uint64_t *pos);
> +#endif
>  
>  static inline int hvm_vmtrace_reset(struct vcpu *v)
>  {
> +#ifdef CONFIG_VMTRACE
>      if ( hvm_funcs.vmtrace_reset )
>          return alternative_call(hvm_funcs.vmtrace_reset, v);
>  
>      return -EOPNOTSUPP;
> +#else
> +    return -EOPNOTSUPP;
> +#endif

No #else please and the #endif moved up.

> --- a/xen/arch/x86/vm_event.c
> +++ b/xen/arch/x86/vm_event.c
> @@ -253,7 +253,8 @@ void vm_event_fill_regs(vm_event_request_t *req)
>      req->data.regs.x86.shadow_gs = ctxt.shadow_gs;
>      req->data.regs.x86.dr6 = ctxt.dr6;
>  
> -    if ( hvm_vmtrace_output_position(curr, &req->data.regs.x86.vmtrace_pos) != 1 )
> +    if ( IS_ENABLED(CONFIG_VMTRACE) &&
> +         hvm_vmtrace_output_position(curr, &req->data.regs.x86.vmtrace_pos) != 1 )

Would be nice if the too-long-line issue here was also address, when the line
needs touching anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 16:55:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 16:55:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164215.1491217 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL2Vy-0005sH-HT; Mon, 17 Nov 2025 16:55:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164215.1491217; Mon, 17 Nov 2025 16:55:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL2Vy-0005sA-Ee; Mon, 17 Nov 2025 16:55:42 +0000
Received: by outflank-mailman (input) for mailman id 1164215;
 Mon, 17 Nov 2025 16:55: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=6Jhw=5Z=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vL2Vw-0005s4-K3
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 16:55:40 +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 3d23e7be-c3d6-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 17:55:36 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b737502f77bso366368766b.2
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 08: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
 a640c23a62f3a-b734fad4494sm1110193066b.18.2025.11.17.08.55.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 08: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: 3d23e7be-c3d6-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763398536; x=1764003336; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PZPbZAwOcEcTrgbOQwHxlX/F2c3LK73uMtBVLXsIHHs=;
        b=IYWCoRvTIoho/zJTmjrbVJZY0F2Sz/6UFNUZVVMGgKnSKRtjLbjzV57mTqxeyN+eno
         Lqclyd6rMpnYu5wqW0GduTfdzaFN1N8T0Yyfl1LjlckAfLgOrScJxan5Av/gE+sxO2YP
         8QiGOXtEpxYC5mnRMAjWPElZzxpYwuxtehPhJTwf2Bo/hjGXgG5s2xbtBO0zQKFyoPvz
         Bvqh66EWX4NKROMjUsSfjp33q99badxC/RsENIrgH0j5tfHQCzpFpQSDdvjk+TUeE0pO
         Is9k6410F80w26g8x8aTpC8FcVhBgWATmrMEqjvcPcoqKpUrMzChSRg/OQHoG/1tcSCA
         eWyg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763398536; x=1764003336;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PZPbZAwOcEcTrgbOQwHxlX/F2c3LK73uMtBVLXsIHHs=;
        b=JwtoOExPbm7RdqW9TsrCcABujMBDsWXeLAM9kVw2s0Qvc/oanXE9pLcW7QlDDT+Tu/
         2zzNWgy/rAPmuHr6b2V8D1yVhKNT3HuxONnPu7veQ3VJyaQJ11KHSjq7pa3BNqHcpA/s
         GQLbSXxEAKrLmffNiCB4OfK/agqdamgf6JQ0jCM97wXEqLOg/oH8N0dy/bjZm50gcb/T
         aCRZjUVHNkqrMhjz8h50Y05MTUIgcoVrAPNab8ea35LV73ax1jPn9j+txSx4o3YAHhVi
         RsnQWkc61MqKOKi5BCZ5jNJCbvqebr1PZRz2ygpkMtukyLLjYiv91kW+/hKqvoGP/Xg6
         p9Mw==
X-Forwarded-Encrypted: i=1; AJvYcCVRAN7fIE2M0Vd8PDeZW5sTdZoQ2OVlRuWie5NzMHs2EcGH366Wba8fd+kRSiHubxFDlrrzMjmlzJM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxt0fYmRTCM4D20xQHleqPlhrKuGvIfSPc9yPYZj2zo0WTdTOKI
	DlGnGWERH6HYncZ9FEdMONkOIN+n42ohA0mtryEccfqRoLhm3sNwojIZjuOiWnsMWQ==
X-Gm-Gg: ASbGncvTdyo4P9t3rqoZfeKKMacSkcUd4ResgLQcys9TBE9A8XguRWnANG9HQM7g5Gx
	r7eyLfSBKtTXVLsvzBfRxhRiiSUsocxPTJr1W42ih7cQs417UJ7vs1Ldpt9ajKCV8FkHDkKSD4A
	3N8ZAiQMiY5xndXqsgPRxtavm/9Jzw3cl1YVJ9OnKCgk/qsy3tt8GVtZGxowv1AMcxx/XGRSrWc
	+dOOJCShiq5/8Hh4Qf082sQuaffxikS4qrsrK+HPkpUwuaOTRiZkmIn/Na+rzV+7nbjzr0Q0bMj
	TcYCsyYgEfkGyn2QMJRF+/xCOMs5oaChzDM9SKq4kt1PHlKAfK/vqhP2bMv6ulLMDcAO1b9M211
	8/0CjTdtLR69yA1jod3m5JfCvL7z4I/3ySQ/M5wlpl/VvmCVBC1nhGXqfWP7JOLjKBR3+GnkzPf
	fJbAeeR+upSugNyOcVH0PpLSYBpB44TxauKdetdu/FlMGaD4OrUz1QbVFn7sht60Ns4Xb+mRWkP
	8F6bszXTJSgzGIWX7hFNZvn
X-Google-Smtp-Source: AGHT+IFxX35UDCkupISlSCB+GXyBNoCE7vecEZLr7bMxmBifRyFv8zEiyWm79XM9MGNFLFJ5FWMpMg==
X-Received: by 2002:a17:907:849:b0:b72:598:2f32 with SMTP id a640c23a62f3a-b73678ed1d0mr1434913766b.42.1763398535660;
        Mon, 17 Nov 2025 08:55:35 -0800 (PST)
Message-ID: <035a9514-9a7f-44ab-86a7-61deab37f7c7@suse.com>
Date: Mon, 17 Nov 2025 17:55:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/4] Add Kconfig option to remove microcode loading
 support
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 xen-devel@lists.xenproject.org
References: <20251112162219.226075-1-alejandro.garciavallejo@amd.com>
 <61df49ba-4aab-42e3-b945-700a8f20c739@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: <61df49ba-4aab-42e3-b945-700a8f20c739@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.11.2025 09:50, Andrew Cooper wrote:
> On 12/11/2025 4:22 pm, Alejandro Vallejo wrote:
>>  xen/arch/x86/Kconfig                    | 12 ++++
>>  xen/arch/x86/cpu/microcode/Makefile     |  9 ++-
>>  xen/arch/x86/cpu/microcode/amd-base.c   | 55 +++++++++++++++++++
>>  xen/arch/x86/cpu/microcode/amd.c        | 55 ++-----------------
>>  xen/arch/x86/cpu/microcode/amd.h        | 15 +++++
>>  xen/arch/x86/cpu/microcode/base.c       | 73 +++++++++++++++++++++++++
>>  xen/arch/x86/cpu/microcode/core.c       | 58 +-------------------
>>  xen/arch/x86/cpu/microcode/intel-base.c | 50 +++++++++++++++++
>>  xen/arch/x86/cpu/microcode/intel.c      | 56 +++----------------
>>  xen/arch/x86/cpu/microcode/intel.h      | 16 ++++++
>>  xen/arch/x86/cpu/microcode/private.h    | 14 +++++
>>  xen/arch/x86/efi/efi-boot.h             |  2 +-
>>  xen/arch/x86/platform_hypercall.c       |  2 +
>>  13 files changed, 259 insertions(+), 158 deletions(-)
>>  create mode 100644 xen/arch/x86/cpu/microcode/amd-base.c
>>  create mode 100644 xen/arch/x86/cpu/microcode/amd.h
>>  create mode 100644 xen/arch/x86/cpu/microcode/base.c
>>  create mode 100644 xen/arch/x86/cpu/microcode/intel-base.c
>>  create mode 100644 xen/arch/x86/cpu/microcode/intel.h
> 
> This is awfully invasive for something that ultimately drops only a
> handful of lines of code.
> 
> First, it should be CONFIG_MICROCODE_LOADING.Â  We're not getting rid of
> all microcode capabilities.Â  Also, of all the places where UCODE needs
> expanding properly, it's Kconfig.
> 
> Next, annotate the functions that you conditionally don't reference in
> {amd,intel}_ucode_ops with __maybe_unused, and dead code elimination
> should do the rest.

Are you, btw, sure this would be Misra-compliant? Right now we solely
deviate __maybe_unused when used on labels which may really be unused,
afaics.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 18:11:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 18:11:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164234.1491235 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL3h2-0007HC-1H; Mon, 17 Nov 2025 18:11:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164234.1491235; Mon, 17 Nov 2025 18:11: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 1vL3h1-0007H5-Uk; Mon, 17 Nov 2025 18:11:11 +0000
Received: by outflank-mailman (input) for mailman id 1164234;
 Mon, 17 Nov 2025 18:11: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=RXl4=5Z=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vL3h1-0007Gl-0F
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 18:11: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 cab33332-c3e0-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 19:11:10 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB6455.namprd03.prod.outlook.com (2603:10b6:a03:38d::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.18; Mon, 17 Nov
 2025 18:11:06 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9320.021; Mon, 17 Nov 2025
 18:11: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: cab33332-c3e0-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=U6z1/GCd69nZCpUbRNXHxOCzX1XyDz09Qa5DXNHotTfcX8D5+d7v0pmha52sI7TaLb/u6P/9hsYsgeH6hVUfENp+5+8/mMS+1mXczUdwuXGvSTEr+yPfWB/h9OCSFP+54L9Hq2xLvjN8E5fKfgIkSuXikIy5y3eHtJOmo/S3r2OYC9+L23GbCq0DyMSxkZ/D2W7xmJlk2f668NsJijdeMwN3gKfT7cyp8TMJODcVDEry8tFRnmGPaxz/5rBSq05PThXDNI+I8YG7pcLXZ7bohblq4CdEBKMXv2m0TJUyC1s8vV7RRJiHeErbT18tlxrFYFsiAOlNn6LZ3ey0ZVEUOg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vwmWbBDu5+zyY602Bfbxmx109B9kwFEAij1oVSKnrzE=;
 b=keNfWw/Kw2FwQJyuPZviGeTDxBcuJcLEgwYJ5bh5LZARxcwgQJtxyCJcpXbdU9nTLPWhWahJLViuSz+zTTiyfqerdHtfsNVWy8KDERM/Ig3g7IbaVcv1Pd4FaofoiPhYDWOCFA7HVVykjsttPj0x3hRkvaazpXmo9cRPssQxLrDze+XbsJQAArmVjiIYa80j1F/OuvjnyoKXbz2UInGgAgyQS7A68OvKufdcUwlFKZKUeCaAW2ajVT1THoTTBWffyNIoqVRXrkw/yRCnWVruI3Y9MjkAB4AJ04td3nMr+H69LgAlDRRNBAfjP0nL1XnKBX4AfneULUcq1jKVpHKrzQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vwmWbBDu5+zyY602Bfbxmx109B9kwFEAij1oVSKnrzE=;
 b=oqq5tTnMAwKgDq4Zic4PJUn6T2PTHQBqGAxBXjJbkyWWHV59PeL+xEX0N9rfdtlt6S3YLZIvL/VH2nE+c2YgPpTv9YDwSjGHQNlf695qApLXSokIqTGJZo/1BBS1M+6+CGdd2Tm+hy+JxdML/jp9HXHTvjTqXqJKkIB5GRa1R+o=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <99f43c5c-5f34-46ab-bf2f-a0afa30256f9@citrix.com>
Date: Mon, 17 Nov 2025 18:10:57 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86emul: replace custom handling for SHLD/SHRD
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: <94bdf8e4-188b-4d04-a52c-0f598d311d46@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <94bdf8e4-188b-4d04-a52c-0f598d311d46@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO0P265CA0011.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:355::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_|SJ0PR03MB6455:EE_
X-MS-Office365-Filtering-Correlation-Id: 8a943bec-2533-45ea-b149-08de2604a9d7
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?RVRDK0hOWmVWK296STE5OTg5TDZnOVpnWngzSDljV0puTWppb0NrdjZYSW5G?=
 =?utf-8?B?VVZqRW1Pck4wNmFhcWJMVFpKR3hCQnh2bDlITHJnRjFhRVk2RER6dytHaWdJ?=
 =?utf-8?B?S3lDaVRGbmIvTEZnWGxNSUhkYnN1K0E5bHlTdHYxUUwrMUhjTStvOHU5TVVM?=
 =?utf-8?B?SjhBMWEraUVXNnlndEFrT0tVMXR0VlJRNkJ0OTNMMjQvSEJtVURmSnBDbnl2?=
 =?utf-8?B?RjNkOFgwYWg0TEpmYlhzNFFZajBCaHdKWW8vcC9NVDRJVHlTY0dhcThMTll5?=
 =?utf-8?B?L1pPeGdTT1R5aGZtTlFDeTdLclEyMWExa2lJK29OMVJNa2t5UTBLTFNZTjBY?=
 =?utf-8?B?ZXE4Wkd2SU54SVY1aVlvZlZpYWtDdTMxNkZ5SDFHaTAweVNGTUhENmFOZ1Js?=
 =?utf-8?B?L3pCRkdjekxNcXR5TVJjdVRmOWhmczhDVHE4dmVaQkU5UjdJb2hqMHhTM0M2?=
 =?utf-8?B?d1ZwT1I4OWNaQ2JlalI2aWVzSjNqdGxMRXRZdjhkREh1QTBwOEJhTytBZzJU?=
 =?utf-8?B?MUkvVWo2NXhJeVVkdXIyTU5nMDZVZDlJM29OdG44YTBUSGMydDYxV0JkUTI0?=
 =?utf-8?B?b2NtM0d6Q0lTME96OVZoMVJtS0dsUTVJemJWb0p1b3BVakQ5UjI3SGNxZ2RT?=
 =?utf-8?B?WHNJTFY3VVpsNVF0THFVVzRaczFxZG5ZVzZYNWNJVW1yOW1DT3VUYTV5QzNT?=
 =?utf-8?B?MnREZ09CTGJJcnRtbXBBcHgvais5c05KSjRkdzNDM2VzRjUwbUlMOExPTERH?=
 =?utf-8?B?eDZycHNydExYcGtwU0dYWkNQZUY4WXBLRnNkYzFMUnptd3lLV25mWnhtYTBq?=
 =?utf-8?B?MDNXOERJZloxRnVQbkx5TmRtT1NvUjV2VnhjS2lCS1pvMHNoOTN5S0syRk5S?=
 =?utf-8?B?ZTBkU1ZBcDBMdmJmR1UwZzBxR1VMcGRmTDNPMEFuVjVxU0JLOXZCTXRYbFdC?=
 =?utf-8?B?aGFEUXFBRnBJcmtxSHdwL3pYNG1nTVRLRVE4ZXhXZ1RFV25JYlM4S0lJcGVq?=
 =?utf-8?B?UHpMSkRsSDg1Sk1PRDA2dDVnYVZnOHlVcDR0Um85T3RFYlJMVXVtWTdxNlV3?=
 =?utf-8?B?RkdIdWI3ZHRZcUVvWXdSeDJXZ2tqbjE1eG9makhFeGNNcitpMUpSWC8veTBi?=
 =?utf-8?B?ZnpjcUUwWit4TFJMSDJJY3NOLzlUWEM2UkFBUXh6SXJTeWFNYzY1a1VPbW1S?=
 =?utf-8?B?NlcxUzBpcjkzanZDN292WU9tYjMxOHltT3pvLzN3M3o5Q3A0VVFvSEpTS0Jk?=
 =?utf-8?B?L2kxaHhycExVdUJxM0lPRVdITGxORTczb0Z1citPWnhRd3FLRlhveDZUaGlI?=
 =?utf-8?B?SVZvbC8xbVYySW1DbklnRnJSNUwrZElqUTdUWGdON2pCVG43RjlLTElBTEVl?=
 =?utf-8?B?aWtCWGlvMkpYb1UyVDBpN09zMEYyTnpzaXRYU0NKaExJdHQwWXhYZnRKT0o1?=
 =?utf-8?B?Qk9lVEZVNFNBUFpyNzhrK0Z6ZTJ4d1d5SlZkWU9ZeHNnL0dKZjk3aERCMHhK?=
 =?utf-8?B?TmlyaGZaYXVGL2VWSmd6YjNNaUs5YnI1elB0eXJpbHQ1VzlZZFFQbjRvZlE0?=
 =?utf-8?B?MnhPM1gwVkd4cDNab3pjUlN6emFNeDJlVDNQRnFBdzkrbW5pb3NmWVJRajVJ?=
 =?utf-8?B?Qko2L09ERDJoclE1TVpkZ29iZ3dhb20xUm5NVWdaZTBoZ3pLempOdGhZSGg2?=
 =?utf-8?B?R3FqdW12SC9nNjlnSWR2alVQbmNMZHBnQkE2dkRhdVU2WWhEMjV3dE5McWRP?=
 =?utf-8?B?Z0VnMUxBc2ZsS21SZWtrVnFqL0UyNWVqLzVsVkp2VW9tcVM4cDViYXBUQXU5?=
 =?utf-8?B?d2lvZmgxU3FaenQxQWVJMy9sdlN4UHNBSU4xWmdQVGY0dTAxUjVhTExjNzRB?=
 =?utf-8?B?bjBzRHpJOHpxLzFnVmprbXZTbG1RWlB6QlFkY0U1K0lSM0JnT0VqTEVub3hM?=
 =?utf-8?Q?bfKhsM8IV4MRmYLuN35d5LaYq07RGwdo?=
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?UysvYXFpaFRhdFhncTlGUVo4TFVIUWRJSUx3OG5oWU9ZSFFCTkdVanhrRTZr?=
 =?utf-8?B?bFJBUnFRU09aQ3dlNHVvdjYxSlNGc0M0c0xCM1c3a1hLeVM0c2tWbmlqUXRh?=
 =?utf-8?B?TjUrOWVoWktVelE0KzUzNENoZFh5d0k5N3hyNEttNWdGclRZYWw5blI4S0lj?=
 =?utf-8?B?WlRvNC94WlpwaCttdVM0YzZsQWkycUlyODdnamJnM1hIWU12N2QwaEFLckwz?=
 =?utf-8?B?ckhrdTk2R0x0c1RuTnBJU0VkUUxXMjZ0V2FCcmFkdklLbE5hTzhEd2FkTEJz?=
 =?utf-8?B?WDh4OGJxMXY1cDFFYitZZC9NOEd2NUYyc1VUK2kyTXlPMEtGakMyQUhoMHVj?=
 =?utf-8?B?cmRzeVVod1ZJbWFoendSbVFlRTRPeU0zam9iUHo3R1UrVWZsT2tXRTd3d3FG?=
 =?utf-8?B?ZTkvYzI1K2xoMU9Sb2EwcGFFNjJhVDlqWkZndEFmQm5wcmhJWkFWQk1kd3Ri?=
 =?utf-8?B?OFFsdGc1QStwbVlpa3lkand5WEsvRDRWL0w1ZWdDLzY3R29La0VKQ2h3WnJL?=
 =?utf-8?B?R2p5MXE2TDN4UVlYRWNwUUVUSDFLTWl2R1RKUHA3SHBKbzNmTm0wRlkyTU5n?=
 =?utf-8?B?RjhmNXZBMVpMWmxpQ1crRUZKNW5QbE1ONWxSOUdOZDZVZEJNK3QzWTZxWGMr?=
 =?utf-8?B?YThUMFd6VloxU1pWbE1wWjV4SWF3M0NIeU44MVVVOFZIRkFjTFFYQVNXdW5G?=
 =?utf-8?B?Wm1LVnB5bldkNTEyME5qdkJ4M2cyaHAxYSsweTd1WWVkbks2TjR6QWhmaEcw?=
 =?utf-8?B?dFp2djJUeWxmTTJXMnNjdE1sd1ZhdFpyUzRpeFVLS0tZQm9pcXdKNDZ6a0F0?=
 =?utf-8?B?WGJUZEhCZkx4YmlVRk4zNWhnYnRubDRkaWpZNGYzNEprZlZER01UakhGNHBL?=
 =?utf-8?B?QlRJUlFxSVZqN2wvUjg4WGM5aWlDMUpHVFcycERxcncxUk1DOU5SS1pvWTVD?=
 =?utf-8?B?YmxNam5OSSs4eE02Nmt3L1NuZXo5MHlDK3pMeFNDUyt1b2JPeHovOTAvN1ZZ?=
 =?utf-8?B?NlZoS0xMcGZaQXJEdFQxcEVhUnVyd2hFV1NjRHU5VXNaclpuYVlSZFBJcEti?=
 =?utf-8?B?YjhEbUFvMmtBWWhvSUVZVGRGSjdjR001OHplM1JVclo5Qjk0bHJzRWVwdW15?=
 =?utf-8?B?NFZZc0s1SURVSmNiSGRhK3I0bFVtNlBmblAvM05WKzhtZmIyOXA4bmR0THZ2?=
 =?utf-8?B?NUNUNDRZbkRvWGJ2amdpeXgrUkZVY3RGRHNBbHpsbDR4dzVETFg2VVFUUHpo?=
 =?utf-8?B?RG9sNTBHVmxvWWwyd0J4S0xIa3luQ1ZjeW5qNFlOZVVPVDluMHJ3dXk3c1R1?=
 =?utf-8?B?dGJBMnR5c0Jld01aOXhFbnQvelR6cUFJUjJPdXlMaXJ1QzJYNUsycWlkcndB?=
 =?utf-8?B?cGxuMDhxQmtWWmlvcVZYRkt1ZE04c3dHUi9MQzJNNGRzNHFZTFJRREVaWFhJ?=
 =?utf-8?B?MWgvNGduZy8xUHJFMFd0M0IydkM2YXdqQkM0N0lpL0pXS0tSR0dhcjFKWW1T?=
 =?utf-8?B?bjdQbmtqK1dUK1VWVUs1Tk55djFXc0NOZVJvU3lDelQyczNReE9TaitTRm5F?=
 =?utf-8?B?bElLcXZvampjVndWVHJlN0hDbm9iRW14eHZia3B2b0JBQWoyVmo5V29aTjNU?=
 =?utf-8?B?OGZNRHgwUVNTNGFGdHBlelc3SzVuRXNMM0Ixem9obHBwbWsySDBSbTRDRmxk?=
 =?utf-8?B?YWtjRjBxRTlOaVBCd3FodFdxT2pkcVhaREg2UDg4blJXMWVGb2pMRFVPTTJv?=
 =?utf-8?B?QkxQQnBRbk5uRTVscndUOVdKSTlTTVdSa09XdmczWTM1ODg2YnR6Rk15U0pu?=
 =?utf-8?B?TDFEMFZ2ZVBQMUp4aHFOWUovaXpiTlNaSkVQL2lHMHJScGdhUzFPMXZvNU13?=
 =?utf-8?B?bTNOYUZrQkdESFErR2VwcE9UVjh6eUYrUTUxbk9adk5uTys4KzRSTVFsRkpp?=
 =?utf-8?B?cjA1Q2MwSzZzM2RVTDBGd1FYZE90ZUpTZWgyYjFFS044cFVhWi9rdVVjeFBj?=
 =?utf-8?B?ZmZwTjNWaFNCQ2Ntb01MSFpQWEp6YjFQbG0zb1lWRWM0ZXJQSUFDSXNkTWVZ?=
 =?utf-8?B?dHVqZ3IwbXRnSFBORGI0ZmFqUW9zSmhXSDYwajRsOGs3dHBNeUx3ZjhzTkph?=
 =?utf-8?B?WndTaUk3VWd4bFlSamVZSHFuN1o1ejdCK2ttNGdGWkFEeEpnaHhwSGV6ZXAy?=
 =?utf-8?B?NXc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8a943bec-2533-45ea-b149-08de2604a9d7
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2025 18:11:00.6793
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: LJU3FHYltMCg/blYkQT+dPtex3d0IpdZyfR3NKMcaAnAYJs53mAiiqoA1dKdqCAgtoXC8FZkDeiXtIXTJRIhcJQWwYssWTXlKMNoNfWtgjc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6455

On 10/07/2025 3:24 pm, Jan Beulich wrote:
> Use an existing macro instead of open-coding the operation and flags
> handling, just like we already do in x86_emul_rmw(). While possibly
> yielding slightly larger compiled code, it's easier to maintain this
> way.
>
> Note that the setting of dst.orig_val was already redundant with that
> done ahead of the main switch() (where DST_MEM is handled), the latest
> as of 4e59f578cb75 ("x86emul: simplify SHLD/SHRD handling").
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 19:52:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 19:52:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164246.1491246 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL5GT-0001r9-Pa; Mon, 17 Nov 2025 19:51:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164246.1491246; Mon, 17 Nov 2025 19:51: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 1vL5GT-0001r2-LK; Mon, 17 Nov 2025 19:51:53 +0000
Received: by outflank-mailman (input) for mailman id 1164246;
 Mon, 17 Nov 2025 19:51: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=lv5t=5Z=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vL5GS-0001qv-4t
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 19:51:52 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id daa3ca6e-c3ee-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 20:51:48 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-644f90587e5so731139a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 11:51:48 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-6433a3d82cfsm10807522a12.2.2025.11.17.11.51.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 11:51: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: daa3ca6e-c3ee-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763409108; x=1764013908; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PjoGkDvae6RfLSbYL4XeH5Br+4Cwl/SnfmCZQAV9ESs=;
        b=TG/7k18x/86Q9sH1XbKydkHG3QGgzHoVHJ64EkdmkQdncfJrhqyhBd2ZdB5mhsuydV
         XuPV7RsVNgdRaG19cU1l+ZFOmReIr8qlOCVZ++8wHySd1zzsexqGLSJc/Ee9dE0Pj4YD
         zY3+5aew6j5kqPl3gV2+DzfF17OT0QvrO1kRQX8RyKs5jz49qEPNwnj5EGZTGkQqYixR
         QMrwvrBG5jQwe8Eh2W7pQrOMIkSK3WqFzGwCVKtb/mBCvF6O4jydmeVIruweVGwsTnp6
         Yk3A6hgu2dChfDQAVuC5biI27Y5b+NaMbVF9ZqkzFbPJaqXn+8jGBk5jT0u9pu0NKIFt
         nWbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763409108; x=1764013908;
        h=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=PjoGkDvae6RfLSbYL4XeH5Br+4Cwl/SnfmCZQAV9ESs=;
        b=PALhI8/IzxgvmPus3uSARw+Pcz9ObKCHiT75HBMnHYrWBk/rcuvTfBuFpCnshNIP/E
         I1Md8nc5bJ2fnteT20q1veQ1HqYxaHM+sTn4xlaXv9n9vhWwZdvuhmNLLUy+wr2A4m6M
         NVvunqF9i0DUjr9wYQclPZrPwjOy7ErcTqKZjzYVdZ2JsYupyo4GBvE9dmQ5W8ZBpen9
         KBNrXixqYlyHlQyTdQBA4K+cEzQA8TTLOSmamA77TkitneRweFg3p5lAwGnAdpT7shQo
         NzAmm8VEMdK+322EM1z+A3JTpC88kE66GMijzSZxCpw404PubQ0mTAOj+ynAwR6qUldC
         mEgg==
X-Forwarded-Encrypted: i=1; AJvYcCXFm0eOLUSFocvK4WqALIWOJpbgt90UMYW4nHoKCuEPC4U2ZVFdeG/OcqUMe2CHwMkzGAxCyGVRSmo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw2OBm/PJZS/ZLhbhJ7y5Nmx2qVss8KI/U1bNcnal89+nnXBpe6
	K0ZCAMfOrTFMkD/m6oWVx7/Uhf60JwME6nhBiVlIsoTXSj50P7v5a3J3
X-Gm-Gg: ASbGncufgdTe9qkNAm206D9Z9+c0pUQlIsoRMyf+WwV2khyetG6Mp4I4EGBOe9d8P8A
	RWXpd0u71x+byHwKiVhMcSztigKDZR9RmJ6HwLFJlDv948sNabjcF0FCzszh1gCVkQiaaiy9Vb0
	0aZC06Uj/qStGUwRFpdQJGxxVsksJXBK1p0qIFBigiWoUThjSDyYC5ck0TAiBCeQH/TGJi8rMdK
	SbR9Uc91PLMA5HobXqRKNLqLqqZLr9Qi764fS48EZssMpWM+3EaXvRGX8DGK2o5/kpBaAEiWnhu
	hbxpHzUiC4B3qoicwQhgOSnmP3Ctttd0KC4+UBVgJy7UdMtw/J4KMN/sD3IhhZgg123Uc+I6XwM
	ZEsjxJh+f+8kF15IyPwYoqz5nz5Z2DgYk9BNHkPm6od3FBjWOhwua7U0Q9q4pwPhc9Zm9WRkx08
	rtjSGEQjgdasSeoAL03wcNFcj20cufzKk461cKbUGwVhVNZNG4NPmuWO1z+aax8LPDarJl01O+d
	0lEZvg4Wg==
X-Google-Smtp-Source: AGHT+IHF8wMRa1UM63jYdJZADy/11qgzMVsOdyDMNnUU7JgH6+KWrwGeye5zeELI7Yahh/EiougV8Q==
X-Received: by 2002:a05:6402:510f:b0:640:464a:56ce with SMTP id 4fb4d7f45d1cf-64350e0ef8bmr13154256a12.2.1763409107819;
        Mon, 17 Nov 2025 11:51:47 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------93UWKmCx80UaqdW07reU00oC"
Message-ID: <5d4ec4d9-b4c1-4365-a343-f42b390da165@gmail.com>
Date: Mon, 17 Nov 2025 20:51:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 18/18] xen/riscv: introduce metadata table to store
 P2M type
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <d291d2efe7dcc6ddd3d16677a81c57d755c7ada2.1760974017.git.oleksii.kurochko@gmail.com>
 <6a5a9f4e-1f0e-453f-b1d1-d0e2acf97e2a@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <6a5a9f4e-1f0e-453f-b1d1-d0e2acf97e2a@suse.com>

This is a multi-part message in MIME format.
--------------93UWKmCx80UaqdW07reU00oC
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/12/25 12:49 PM, Jan Beulich wrote:
> On 20.10.2025 17:58, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -20,6 +20,16 @@
>>   
>>   #define P2M_SUPPORTED_LEVEL_MAPPING 2
>>   
>> +/*
>> + * P2M PTE context is used only when a PTE's P2M type is p2m_ext_storage.
>> + * In this case, the P2M type is stored separately in the metadata page.
>> + */
>> +struct p2m_pte_ctx {
>> +    struct page_info *pt_page;   /* Page table page containing the PTE. */
>> +    unsigned int index;          /* Index of the PTE within that page. */
>> +    unsigned int level;          /* Paging level at which the PTE resides. */
>> +};
>> +
>>   unsigned char __ro_after_init gstage_mode;
>>   unsigned int __ro_after_init gstage_root_level;
>>   
>> @@ -363,24 +373,89 @@ static struct page_info *p2m_alloc_page(struct p2m_domain *p2m)
>>       return pg;
>>   }
>>   
>> -static int p2m_set_type(pte_t *pte, p2m_type_t t)
>> +/*
>> + * `pte` â€“ PTE entry for which the type `t` will be stored.
>> + *
>> + * If `t` is `p2m_ext_storage`, both `ctx` and `p2m` must be provided;
>> + * otherwise, only p2m may be NULL.
>> + */
>> +static void p2m_set_type(pte_t *pte, const p2m_type_t t,
>> +                         struct p2m_pte_ctx *ctx,
>> +                         struct p2m_domain *p2m)
>>   {
>> -    int rc = 0;
>> +    struct page_info **md_pg;
>> +    pte_t *metadata = NULL;
> I'm not convinced it is a good idea to re-use pte_t for this purpose. If you used
> a separate type, and if then you defined that as a bitfield with only a few bits
> dedicated to type, future changes (additions) may be quite a bit easier.

Make sense, then lets go with the following structure:
   struct md_t {
       /*
        * Describes a type stored outside the PTE.
        * Look at the comment above definition of enum p2m_type_t.
        */
       p2m_type_t type : 4;
   };

>
>> -    if ( t > p2m_first_external )
>> -        panic("unimplemeted\n");
>> -    else
>> +    ASSERT(p2m);
>> +
>> +     /* Be sure that an index correspondent to page level is passed. */
>> +    ASSERT(ctx && ctx->index < P2M_PAGETABLE_ENTRIES(ctx->level));
>> +
>> +    /*
>> +     * For the root page table (16 KB in size), we need to select the correct
>> +     * metadata table, since allocations are 4 KB each. In total, there are
>> +     * 4 tables of 4 KB each.
>> +     * For none-root page table index of ->pt_page[] will be always 0 as
>> +     * index won't be higher then 511. ASSERT() above verifies that.
>> +     */
>> +    md_pg = &ctx->pt_page[ctx->index / PAGETABLE_ENTRIES].v.md.pg;
>> +
>> +    if ( !*md_pg && (t >= p2m_first_external) )
>> +    {
>> +        BUG_ON(ctx->level > P2M_SUPPORTED_LEVEL_MAPPING);
>> +
>> +        if ( ctx->level <= P2M_SUPPORTED_LEVEL_MAPPING )
>> +        {
>> +            struct domain *d = p2m->domain;
> This is (if at all) needed only ...
>
>> +            *md_pg = p2m_alloc_page(p2m);
>> +            if ( !*md_pg )
>> +            {
> ... in this more narrow scope.
>
>> +                printk("%s: can't allocate extra memory for dom%d\n",
>> +                       __func__, d->domain_id);
> The logging text isn't specific enough for my taste. For ordinary printk()s I'd
> also recommend against use of __func__ (that's fine for dprintk()).

I will update the message to:
   printk("%pd: can't allocate metadata page\n", p2m->domain);


>
> Also please us %pd in such cases.
>
>> +                domain_crash(d);
>> +
>> +                return;
>> +            }
>> +        }
>> +    }
>> +
>> +    if ( *md_pg )
>> +        metadata = __map_domain_page(*md_pg);
>> +
>> +    if ( t < p2m_first_external )
>> +    {
>>           pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>>   
>> -    return rc;
>> +        if ( metadata )
>> +            metadata[ctx->index].pte = p2m_invalid;
> Shouldn't this be accompanied with a BUILD_BUG_ON(p2m_invalid), as otherwise
> p2m_alloc_page()'s clearing of the page won't have the intended effect?

I think that, at least, at the moment we are always explicitly set p2m type and
do not rely on that by default 0==p2m_invalid.

Just to be safe, I will add after "if ( metadata )" suggested
BUILD_BUG_ON(p2m_invalid):
         if ( metadata )
             metadata[ctx->index].type = p2m_invalid;
         
         /*
          * metadata.type is expected to be p2m_invalid (0) after the page is
          * allocated and zero-initialized in p2m_alloc_page().
          */
         BUILD_BUG_ON(p2m_invalid);
...

>
>> +    }
>> +    else
>> +    {
>> +        pte->pte |= MASK_INSR(p2m_ext_storage, P2M_TYPE_PTE_BITS_MASK);
>> +
>> +        metadata[ctx->index].pte = t;
> If you set t to p2m_ext_storage here, the pte->pte updating could be moved ...

't' shouldn't be passed as 'p2m_ext_storage'.
For example, in this case we will have that in metadata page we will have type
equal to p2m_ext_storage and then in pte->pte will have the type set to
p2m_ext_storage, and the we end that we don't have a real type stored somewhere.
Even more, metadata.pte shouldn't be used to store p2m_ext_storage, only
p2m_invalid and types mentioned in enum p2m_t after p2m_ext_storage.

>
>> +    }
> ... here, covering both cases. Overally this may then be easier as
>
>      if ( t >= p2m_first_external )
>          metadata[ctx->index].pte = t;
>      else if ( metadata )
>          metadata[ctx->index].pte = p2m_invalid;
>
>      pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>
> Then raising the question whether it couldn't still be the real type that's
> stored in metadata[] even for t < p2m_first_external. That woiuld further
> reduce conditionals.

It would be nice, but I think that at the moment we canâ€™t do that. As I explained
above, 't' should not normally be passed as p2m_ext_storage. If we want to
handle this properly, I would need to update the code to:

     if (!*md_pg && (t > p2m_first_external))

Alternatively, we could set p2m_first_external = p2m_map_foreign_rw instead of
p2m_ext_storage, since p2m_ext_storage is technically just a marker indicating
that the type is stored elsewhere.

We should also add a BUG_ON(t == p2m_ext_storage) before the if-condition
mentioned above.

>
>> @@ -470,7 +545,15 @@ static void p2m_set_permission(pte_t *e, p2m_type_t t)
>>       }
>>   }
>>   
>> -static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
>> +/*
>> + * If p2m_pte_from_mfn() is called with p2m_pte_ctx = NULL and p2m = NULL,
>> + * it means the function is working with a page table for which the `t`
>> + * should not be applicable. Otherwise, the function is handling a leaf PTE
>> + * for which `t` is applicable.
>> + */
>> +static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t,
>> +                              struct p2m_pte_ctx *p2m_pte_ctx,
>> +                              struct p2m_domain *p2m)
>>   {
>>       pte_t e = (pte_t) { PTE_VALID };
>>   
>> @@ -478,7 +561,7 @@ static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
>>   
>>       ASSERT(!(mfn_to_maddr(mfn) & ~PADDR_MASK) || mfn_eq(mfn, INVALID_MFN));
>>   
>> -    if ( !is_table )
>> +    if ( p2m_pte_ctx && p2m )
>>       {
> Maybe better
>
>      if ( p2m_pte_ctx )
>      {
>          ASSERT(p2m);
>          ...
>
> (if you really think the 2nd check is needed)?

It seems like we don't really need it as p2m_set_type() has the same ASSERT() at the start.
I will double-check why I've added it and drop  if it was not very specific reason.

>
>> @@ -506,12 +589,19 @@ static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
>>   /* Generate table entry with correct attributes. */
>>   static pte_t page_to_p2m_table(const struct page_info *page)
>>   {
>> -    /*
>> -     * p2m_invalid will be ignored inside p2m_pte_from_mfn() as is_table is
>> -     * set to true and p2m_type_t shouldn't be applied for PTEs which
>> -     * describe an intermidiate table.
>> -     */
>> -    return p2m_pte_from_mfn(page_to_mfn(page), p2m_invalid, true);
>> +    return p2m_pte_from_mfn(page_to_mfn(page), p2m_invalid, NULL, NULL);
>> +}
> How come the comment is dropped? If you deem it unecessary, why was it added
> earlier in this same series?

It is still relevant. Something went wrong during rebase and conflict resolving. Thanks for
finding that.

>
>> +static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
>> +
>> +/*
>> + * Free page table's page and metadata page linked to page table's page.
>> + */
>> +static void p2m_free_table(struct p2m_domain *p2m, struct page_info *tbl_pg)
>> +{
>> +    if ( tbl_pg->v.md.pg )
>> +        p2m_free_page(p2m, tbl_pg->v.md.pg);
> To play safe, maybe better also clear tbl_pg->v.md.pg?

I thought it would be enough to clear it during allocation in p2m_alloc_page(),
since I'm not sure it is critical if md.pg data were somehow leaked and read.
But to be safer, we can add this here:
    clear_and_clean_page(tbl_pg->v.md.pg, p2m->clean_dcache);

>
>> @@ -749,6 +849,10 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
>>       unsigned int next_level = level - 1;
>>       unsigned int level_order = P2M_LEVEL_ORDER(next_level);
>>   
>> +    struct p2m_pte_ctx p2m_pte_ctx;
> I think this would better be one variable instance per scope where it's needed,
> and then using an initzializer. Or else ...
>
>> +    /* Init with p2m_invalid just to make compiler happy. */
>> +    p2m_type_t old_type = p2m_invalid;
>> +
>>       /*
>>        * This should only be called with target != level and the entry is
>>        * a superpage.
>> @@ -770,6 +874,19 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
>>   
>>       table = __map_domain_page(page);
>>   
>> +    if ( MASK_EXTR(entry->pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage )
>> +    {
>> +        p2m_pte_ctx.pt_page = tbl_pg;
>> +        p2m_pte_ctx.index = offsets[level];
>> +        /*
>> +         * It doesn't really matter what is a value for a level as
>> +         * p2m_get_type() doesn't need it, so it is initialized just in case.
>> +         */
>> +        p2m_pte_ctx.level = level;
>> +
>> +        old_type = p2m_get_type(*entry, &p2m_pte_ctx);
>> +    }
>> +
>>       for ( i = 0; i < P2M_PAGETABLE_ENTRIES(next_level); i++ )
>>       {
>>           pte_t *new_entry = table + i;
>> @@ -781,6 +898,15 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
>>           pte = *entry;
>>           pte_set_mfn(&pte, mfn_add(mfn, i << level_order));
>>   
>> +        if ( MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage )
>> +        {
>> +            p2m_pte_ctx.pt_page = page;
>> +            p2m_pte_ctx.index = i;
>> +            p2m_pte_ctx.level = next_level;
> ... why are the loop-invariat fields not filled ahead of the loop here?

Actually, they could be filled before the loop. If I move the initialization of
p2m_pte_ctx.pt_page and p2m_pte_ctx.level ahead of the loop, does it still make
sense to have a separate variable inside
"if (MASK_EXTR(entry->pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage)"?

>
>> @@ -927,7 +1061,13 @@ static int p2m_set_entry(struct p2m_domain *p2m,
>>           p2m_clean_pte(entry, p2m->clean_dcache);
>>       else
>>       {
>> -        pte_t pte = p2m_pte_from_mfn(mfn, t, false);
>> +        struct p2m_pte_ctx tmp_ctx = {
>> +            .pt_page = mfn_to_page(domain_page_map_to_mfn(table)),
>> +            .index =  offsets[level],
> Nit: Stray blank.
>
>> @@ -1153,7 +1301,14 @@ static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
>>       if ( pte_is_valid(entry) )
>>       {
>>           if ( t )
>> -            *t = p2m_get_type(entry);
>> +        {
>> +            struct p2m_pte_ctx p2m_pte_ctx = {
>> +                .pt_page = mfn_to_page(domain_page_map_to_mfn(table)),
>> +                .index = offsets[level],
>> +            };
> .level not being set here?

It isn't used in the case when p2m_get_type() is called, but just for consistency and to
be sure that nothing will be broken if an implemnatation of p2m_get_type() will change,
I will add:
  .level = level,

Thanks.

~ Oleksii

--------------93UWKmCx80UaqdW07reU00oC
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/12/25 12:49 PM, Jan Beulich
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:6a5a9f4e-1f0e-453f-b1d1-d0e2acf97e2a@suse.com">
      <pre wrap="" class="moz-quote-pre">On 20.10.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -20,6 +20,16 @@
 
 #define P2M_SUPPORTED_LEVEL_MAPPING 2
 
+/*
+ * P2M PTE context is used only when a PTE's P2M type is p2m_ext_storage.
+ * In this case, the P2M type is stored separately in the metadata page.
+ */
+struct p2m_pte_ctx {
+    struct page_info *pt_page;   /* Page table page containing the PTE. */
+    unsigned int index;          /* Index of the PTE within that page. */
+    unsigned int level;          /* Paging level at which the PTE resides. */
+};
+
 unsigned char __ro_after_init gstage_mode;
 unsigned int __ro_after_init gstage_root_level;
 
@@ -363,24 +373,89 @@ static struct page_info *p2m_alloc_page(struct p2m_domain *p2m)
     return pg;
 }
 
-static int p2m_set_type(pte_t *pte, p2m_type_t t)
+/*
+ * `pte` â€“ PTE entry for which the type `t` will be stored.
+ *
+ * If `t` is `p2m_ext_storage`, both `ctx` and `p2m` must be provided;
+ * otherwise, only p2m may be NULL.
+ */
+static void p2m_set_type(pte_t *pte, const p2m_type_t t,
+                         struct p2m_pte_ctx *ctx,
+                         struct p2m_domain *p2m)
 {
-    int rc = 0;
+    struct page_info **md_pg;
+    pte_t *metadata = NULL;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I'm not convinced it is a good idea to re-use pte_t for this purpose. If you used
a separate type, and if then you defined that as a bitfield with only a few bits
dedicated to type, future changes (additions) may be quite a bit easier.</pre>
    </blockquote>
    <pre>Make sense, then lets go with the following structure:
  struct md_t {
      /*
       * Describes a type stored outside the PTE.
       * Look at the comment above definition of enum p2m_type_t.
       */
      p2m_type_t type : 4;
  };

</pre>
    <blockquote type="cite"
      cite="mid:6a5a9f4e-1f0e-453f-b1d1-d0e2acf97e2a@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">-    if ( t &gt; p2m_first_external )
-        panic("unimplemeted\n");
-    else
+    ASSERT(p2m);
+
+     /* Be sure that an index correspondent to page level is passed. */
+    ASSERT(ctx &amp;&amp; ctx-&gt;index &lt; P2M_PAGETABLE_ENTRIES(ctx-&gt;level));
+
+    /*
+     * For the root page table (16 KB in size), we need to select the correct
+     * metadata table, since allocations are 4 KB each. In total, there are
+     * 4 tables of 4 KB each.
+     * For none-root page table index of -&gt;pt_page[] will be always 0 as
+     * index won't be higher then 511. ASSERT() above verifies that.
+     */
+    md_pg = &amp;ctx-&gt;pt_page[ctx-&gt;index / PAGETABLE_ENTRIES].v.md.pg;
+
+    if ( !*md_pg &amp;&amp; (t &gt;= p2m_first_external) )
+    {
+        BUG_ON(ctx-&gt;level &gt; P2M_SUPPORTED_LEVEL_MAPPING);
+
+        if ( ctx-&gt;level &lt;= P2M_SUPPORTED_LEVEL_MAPPING )
+        {
+            struct domain *d = p2m-&gt;domain;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
This is (if at all) needed only ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+            *md_pg = p2m_alloc_page(p2m);
+            if ( !*md_pg )
+            {
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... in this more narrow scope.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+                printk("%s: can't allocate extra memory for dom%d\n",
+                       __func__, d-&gt;domain_id);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
The logging text isn't specific enough for my taste. For ordinary printk()s I'd
also recommend against use of __func__ (that's fine for dprintk()).</pre>
    </blockquote>
    <pre>I will update the message to:
  printk("%pd: can't allocate metadata page\n", p2m-&gt;domain);</pre>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:6a5a9f4e-1f0e-453f-b1d1-d0e2acf97e2a@suse.com">
      <pre wrap="" class="moz-quote-pre">

Also please us %pd in such cases.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+                domain_crash(d);
+
+                return;
+            }
+        }
+    }
+
+    if ( *md_pg )
+        metadata = __map_domain_page(*md_pg);
+
+    if ( t &lt; p2m_first_external )
+    {
         pte-&gt;pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
 
-    return rc;
+        if ( metadata )
+            metadata[ctx-&gt;index].pte = p2m_invalid;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Shouldn't this be accompanied with a BUILD_BUG_ON(p2m_invalid), as otherwise
p2m_alloc_page()'s clearing of the page won't have the intended effect?</pre>
    </blockquote>
    <pre>I think that, at least, at the moment we are always explicitly set p2m type and
do not rely on that by default 0==p2m_invalid.

Just to be safe, I will add after "if ( metadata )" suggested
BUILD_BUG_ON(p2m_invalid):
        if ( metadata )
            metadata[ctx-&gt;index].type = p2m_invalid;
        
        /*
         * metadata.type is expected to be p2m_invalid (0) after the page is
         * allocated and zero-initialized in p2m_alloc_page().
         */
        BUILD_BUG_ON(p2m_invalid);
...

</pre>
    <blockquote type="cite"
      cite="mid:6a5a9f4e-1f0e-453f-b1d1-d0e2acf97e2a@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    }
+    else
+    {
+        pte-&gt;pte |= MASK_INSR(p2m_ext_storage, P2M_TYPE_PTE_BITS_MASK);
+
+        metadata[ctx-&gt;index].pte = t;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
If you set t to p2m_ext_storage here, the pte-&gt;pte updating could be moved ...</pre>
    </blockquote>
    <pre>'t' shouldn't be passed as 'p2m_ext_storage'.
For example, in this case we will have that in metadata page we will have type
equal to p2m_ext_storage and then in pte-&gt;pte will have the type set to
p2m_ext_storage, and the we end that we don't have a real type stored somewhere.
Even more, metadata.pte shouldn't be used to store p2m_ext_storage, only
p2m_invalid and types mentioned in enum p2m_t after p2m_ext_storage.</pre>
    <blockquote type="cite"
      cite="mid:6a5a9f4e-1f0e-453f-b1d1-d0e2acf97e2a@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    }
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... here, covering both cases. Overally this may then be easier as

    if ( t &gt;= p2m_first_external )
        metadata[ctx-&gt;index].pte = t;
    else if ( metadata )
        metadata[ctx-&gt;index].pte = p2m_invalid;

    pte-&gt;pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);

Then raising the question whether it couldn't still be the real type that's
stored in metadata[] even for t &lt; p2m_first_external. That woiuld further
reduce conditionals.</pre>
    </blockquote>
    <pre>It would be nice, but I think that at the moment we canâ€™t do that. As I explained
above, 't' should not normally be passed as p2m_ext_storage. If we want to
handle this properly, I would need to update the code to:

    if (!*md_pg &amp;&amp; (t &gt; p2m_first_external))

Alternatively, we could set p2m_first_external = p2m_map_foreign_rw instead of
p2m_ext_storage, since p2m_ext_storage is technically just a marker indicating
that the type is stored elsewhere.

We should also add a BUG_ON(t == p2m_ext_storage) before the if-condition
mentioned above.
<span class="Y2IQFc" lang="en">

</span></pre>
    <blockquote type="cite"
      cite="mid:6a5a9f4e-1f0e-453f-b1d1-d0e2acf97e2a@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -470,7 +545,15 @@ static void p2m_set_permission(pte_t *e, p2m_type_t t)
     }
 }
 
-static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
+/*
+ * If p2m_pte_from_mfn() is called with p2m_pte_ctx = NULL and p2m = NULL,
+ * it means the function is working with a page table for which the `t`
+ * should not be applicable. Otherwise, the function is handling a leaf PTE
+ * for which `t` is applicable.
+ */
+static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t,
+                              struct p2m_pte_ctx *p2m_pte_ctx,
+                              struct p2m_domain *p2m)
 {
     pte_t e = (pte_t) { PTE_VALID };
 
@@ -478,7 +561,7 @@ static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
 
     ASSERT(!(mfn_to_maddr(mfn) &amp; ~PADDR_MASK) || mfn_eq(mfn, INVALID_MFN));
 
-    if ( !is_table )
+    if ( p2m_pte_ctx &amp;&amp; p2m )
     {
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Maybe better

    if ( p2m_pte_ctx )
    {
        ASSERT(p2m);
        ...

(if you really think the 2nd check is needed)?</pre>
    </blockquote>
    <pre>It seems like we don't really need it as p2m_set_type() has the same ASSERT() at the start.
I will double-check why I've added it and drop  if it was not very specific reason.

</pre>
    <blockquote type="cite"
      cite="mid:6a5a9f4e-1f0e-453f-b1d1-d0e2acf97e2a@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -506,12 +589,19 @@ static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
 /* Generate table entry with correct attributes. */
 static pte_t page_to_p2m_table(const struct page_info *page)
 {
-    /*
-     * p2m_invalid will be ignored inside p2m_pte_from_mfn() as is_table is
-     * set to true and p2m_type_t shouldn't be applied for PTEs which
-     * describe an intermidiate table.
-     */
-    return p2m_pte_from_mfn(page_to_mfn(page), p2m_invalid, true);
+    return p2m_pte_from_mfn(page_to_mfn(page), p2m_invalid, NULL, NULL);
+}
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
How come the comment is dropped? If you deem it unecessary, why was it added
earlier in this same series?</pre>
    </blockquote>
    <pre>It is still relevant. Something went wrong during rebase and conflict resolving. Thanks for
finding that.

</pre>
    <blockquote type="cite"
      cite="mid:6a5a9f4e-1f0e-453f-b1d1-d0e2acf97e2a@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
+
+/*
+ * Free page table's page and metadata page linked to page table's page.
+ */
+static void p2m_free_table(struct p2m_domain *p2m, struct page_info *tbl_pg)
+{
+    if ( tbl_pg-&gt;v.md.pg )
+        p2m_free_page(p2m, tbl_pg-&gt;v.md.pg);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
To play safe, maybe better also clear tbl_pg-&gt;v.md.pg?</pre>
    </blockquote>
    <pre>I thought it would be enough to clear it during allocation in p2m_alloc_page(),
since I'm not sure it is critical if md.pg data were somehow leaked and read.
But to be safer, we can add this here:
   clear_and_clean_page(tbl_pg-&gt;v.md.pg, p2m-&gt;clean_dcache);

</pre>
    <blockquote type="cite"
      cite="mid:6a5a9f4e-1f0e-453f-b1d1-d0e2acf97e2a@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -749,6 +849,10 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
     unsigned int next_level = level - 1;
     unsigned int level_order = P2M_LEVEL_ORDER(next_level);
 
+    struct p2m_pte_ctx p2m_pte_ctx;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I think this would better be one variable instance per scope where it's needed,
and then using an initzializer. Or else ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    /* Init with p2m_invalid just to make compiler happy. */
+    p2m_type_t old_type = p2m_invalid;
+
     /*
      * This should only be called with target != level and the entry is
      * a superpage.
@@ -770,6 +874,19 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
 
     table = __map_domain_page(page);
 
+    if ( MASK_EXTR(entry-&gt;pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage )
+    {
+        p2m_pte_ctx.pt_page = tbl_pg;
+        p2m_pte_ctx.index = offsets[level];
+        /*
+         * It doesn't really matter what is a value for a level as
+         * p2m_get_type() doesn't need it, so it is initialized just in case.
+         */
+        p2m_pte_ctx.level = level;
+
+        old_type = p2m_get_type(*entry, &amp;p2m_pte_ctx);
+    }
+
     for ( i = 0; i &lt; P2M_PAGETABLE_ENTRIES(next_level); i++ )
     {
         pte_t *new_entry = table + i;
@@ -781,6 +898,15 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
         pte = *entry;
         pte_set_mfn(&amp;pte, mfn_add(mfn, i &lt;&lt; level_order));
 
+        if ( MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage )
+        {
+            p2m_pte_ctx.pt_page = page;
+            p2m_pte_ctx.index = i;
+            p2m_pte_ctx.level = next_level;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... why are the loop-invariat fields not filled ahead of the loop here?</pre>
    </blockquote>
    <pre>Actually, they could be filled before the loop. If I move the initialization of
p2m_pte_ctx.pt_page and p2m_pte_ctx.level ahead of the loop, does it still make
sense to have a separate variable inside
"if (MASK_EXTR(entry-&gt;pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage)"?</pre>
    <blockquote type="cite"
      cite="mid:6a5a9f4e-1f0e-453f-b1d1-d0e2acf97e2a@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -927,7 +1061,13 @@ static int p2m_set_entry(struct p2m_domain *p2m,
         p2m_clean_pte(entry, p2m-&gt;clean_dcache);
     else
     {
-        pte_t pte = p2m_pte_from_mfn(mfn, t, false);
+        struct p2m_pte_ctx tmp_ctx = {
+            .pt_page = mfn_to_page(domain_page_map_to_mfn(table)),
+            .index =  offsets[level],
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Nit: Stray blank.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -1153,7 +1301,14 @@ static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
     if ( pte_is_valid(entry) )
     {
         if ( t )
-            *t = p2m_get_type(entry);
+        {
+            struct p2m_pte_ctx p2m_pte_ctx = {
+                .pt_page = mfn_to_page(domain_page_map_to_mfn(table)),
+                .index = offsets[level],
+            };
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
.level not being set here?</pre>
    </blockquote>
    <pre>It isn't used in the case when p2m_get_type() is called, but just for consistency and to
be sure that nothing will be broken if an implemnatation of p2m_get_type() will change,
I will add: 
 .level = level,

Thanks.

~ Oleksii</pre>
  </body>
</html>

--------------93UWKmCx80UaqdW07reU00oC--


From xen-devel-bounces@lists.xenproject.org Mon Nov 17 22:21:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 22:21:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164263.1491275 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL7bJ-0002r2-DZ; Mon, 17 Nov 2025 22:21:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164263.1491275; Mon, 17 Nov 2025 22:21:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL7bJ-0002qv-9F; Mon, 17 Nov 2025 22:21:33 +0000
Received: by outflank-mailman (input) for mailman id 1164263;
 Mon, 17 Nov 2025 22:21: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=FLbM=5Z=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vL7bH-0002p7-BT
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 22:21:31 +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 c0ea62a4-c403-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 23:21:25 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-429c82bf86bso2782635f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 14:21:25 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42c9628ebacsm15223789f8f.30.2025.11.17.14.21.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 17 Nov 2025 14:21: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: c0ea62a4-c403-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1763418084; x=1764022884; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nS8Y4MW3jKPXjFOtHxgsnr3CWj4mFip+xBgOcDXCg/w=;
        b=vCNM3mELmO9dkmqS4UklfoWzfr7aU1qefk5gGP0pSJZbt1hbyMcm1KqWEKGc6KovzY
         x2hinKAr0yyh1MzlHUntiFaeCqR/FVLnA8DuKQkPkkp0sqDTGVa3hrKFt3fQE03XMX7R
         YghcsAT3iqDdFExi0PethJvuisTuQwfUf47yw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763418084; x=1764022884;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=nS8Y4MW3jKPXjFOtHxgsnr3CWj4mFip+xBgOcDXCg/w=;
        b=va7q7I9HxsmatfocgUEKFuRfLck6sjCOG7CXwM7JMFUR/Av8Sou4b/OmbeAf1CDA7b
         MFcqhsLY9/dsIVuH16T7QSK3wGUv6gXKRuJxaQvdu0BKWlIM8YxUbex/JXS+0kzAaL21
         7jCCgYZRueSLtailGe/W/APTXRh/whWRk/c82uH0HTKe39ukQtMVrxIyb0svkb/ppCI7
         hEhb4CZm8k6Kty9yiJisInCrg4qo3b29ZPRtMrhQeA2oal+xAgkX0mGOoBhK7Ar1JCHA
         cDcnD5Qx1raq+xZdbD758QKAHiMM4V2ZTndatf0/CrKRkDxHeBrLCYjwBhp0ECyGSAAl
         /LFw==
X-Gm-Message-State: AOJu0Yxa9unlpz24SLHRlSMKQbWZt0ZYU/JSzR9C6FuppfCsioBhLvaI
	TBX04732crKgKoQwdLRcxZ5Ov6erSipt/4Zc24wVhbtjW9SyEEnN8LL4xcNO5ASHVDom+cobdRi
	rG8VIJEc=
X-Gm-Gg: ASbGncuYrGPjbX+mS7mBOJpOA9HMnasxKQwCaskLVv+m+M23I+7H/SGbw9dHR8CAXg6
	khDvIQXjnG9iOtE9iXgjQcq8ShyZq7I7vCJO5DMn6lxhN9XAcvVfx3JuloQMB3G3mV2thFixpPN
	0cINxDczpLo1cbrcwB3YgGptH0+BZKVx59dfSqACGzraqdmSZq8aoRuzDGTCquMC08ZMzq381YC
	j8/p4tM8OB9Aizz/soLB3KG59qIF/qrPzPMzYGZPU686HZPKl+sqnTX8B/YnamDi/vmp4PHO5i0
	ghDOkNzTIdQu9ASEX387sMn0HnaN9TLL18oYTilMmEL4h/TEXGqc3esdGTS5Q/a7fDcsEBmwdNc
	0z6Q0ZkXCNn3oyDv/u8BArLgrOx7lJMUnzz5Y9cA7KmqUDEdVrWqIG8cZKvAhRzVE6ZkNVwnxTs
	m/CzTlAQDFPJRh71e13FlFaU1s6RhYqTvPbVksZyl85odD17Xrkso=
X-Google-Smtp-Source: AGHT+IGKIO4YFmGZgie5fFXUNyXGbFUx6hLPcXshfCgZof896k2szlOzsHZXIZ+ThS69AfHIHp29FQ==
X-Received: by 2002:a05:6000:4284:b0:42b:3cc6:a4d7 with SMTP id ffacd0b85a97d-42b593742f2mr12502867f8f.37.1763418084180;
        Mon, 17 Nov 2025 14:21:24 -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/3] x86/ucode: Fix error handling during parallel ucode load
Date: Mon, 17 Nov 2025 22:21:18 +0000
Message-Id: <20251117222120.473451-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251117222120.473451-1-andrew.cooper3@citrix.com>
References: <20251117222120.473451-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

wait_for_state() returns false on encountering LOADING_EXIT.
control_thread_fn() can move directly to this state in the case of an early
error.  It is not an error condition for APs, but right now the latest write
into stopmachine_data.fn_result wins, causing the real error, -EIO, to get
clobbered with -EBUSY.  e.g.:

  # xen-ucode /lib/firmware/amd-ucode/microcode_amd_fam17h.bin --force
  Failed to update microcode. (err: Device or resource busy)

  (XEN) 256 cores are to update their microcode
  (XEN) microcode: CPU0 update rev 0x830107d to 0x830107c failed, result 0x830107d
  (XEN) Late loading aborted: CPU0 failed to update ucode: -5

Drop all the -EBUSY's, and treat hitting LOADING_EXIT as a success case.  This
causes only a single error to be returned through stop_machine_run().  e.g.:

  # xen-ucode /lib/firmware/amd-ucode/microcode_amd_fam17h.bin --force
  Failed to update microcode. (err: Input/output error)

  (XEN) 256 cores are to update their microcode
  (XEN) microcode: CPU0 update rev 0x830107d to 0x830107c failed, result 0x830107d
  (XEN) Late loading aborted: CPU0 failed to update ucode: -5

Fixes: 5ed12565aa32 ("microcode: rendezvous CPUs in NMI handler and load ucode")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

Xen 4.19 and earlier hit this case naturally, without the need of --force.
---
 xen/arch/x86/cpu/microcode/core.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index 1d1a5aa4b097..ecee400f28a6 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -260,7 +260,9 @@ static int secondary_nmi_work(void)
 {
     cpumask_set_cpu(smp_processor_id(), &cpu_callin_map);
 
-    return wait_for_state(LOADING_EXIT) ? 0 : -EBUSY;
+    wait_for_state(LOADING_EXIT);
+
+    return 0;
 }
 
 static int primary_thread_work(const struct microcode_patch *patch,
@@ -271,7 +273,7 @@ static int primary_thread_work(const struct microcode_patch *patch,
     cpumask_set_cpu(smp_processor_id(), &cpu_callin_map);
 
     if ( !wait_for_state(LOADING_ENTER) )
-        return -EBUSY;
+        return 0;
 
     ret = alternative_call(ucode_ops.apply_microcode, patch, flags);
     if ( !ret )
@@ -313,7 +315,7 @@ static int cf_check microcode_nmi_callback(
 static int secondary_thread_fn(void)
 {
     if ( !wait_for_state(LOADING_CALLIN) )
-        return -EBUSY;
+        return 0;
 
     self_nmi();
 
@@ -336,7 +338,7 @@ static int primary_thread_fn(const struct microcode_patch *patch,
                              unsigned int flags)
 {
     if ( !wait_for_state(LOADING_CALLIN) )
-        return -EBUSY;
+        return 0;
 
     if ( ucode_in_nmi )
     {
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Nov 17 22:21:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 22:21:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164265.1491285 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL7bN-00039g-JJ; Mon, 17 Nov 2025 22:21:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164265.1491285; Mon, 17 Nov 2025 22:21:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL7bN-00039Z-GW; Mon, 17 Nov 2025 22:21:37 +0000
Received: by outflank-mailman (input) for mailman id 1164265;
 Mon, 17 Nov 2025 22:21: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=FLbM=5Z=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vL7bL-0002p7-RG
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 22:21:35 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c1703c2c-c403-11f0-980a-7dc792cee155;
 Mon, 17 Nov 2025 23:21:25 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4775ae5684fso24600025e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 14:21:25 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42c9628ebacsm15223789f8f.30.2025.11.17.14.21.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 17 Nov 2025 14:21: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: c1703c2c-c403-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1763418085; x=1764022885; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0Oyky22DR2eOVRpdxtWGlLFx/KrwmQftfBci2BIb+7E=;
        b=hR3VCmkN8PPMazI78aaEG2OjdrUO4IhJQJiC4ibrQFCgleH/1y+tq5aUvtcKU98T6o
         pDV8p3kIXa/IlwraktA6gX/6MPC9ev2mL4Yy1gnFijqrwF8YaxEVdVMpyvda6HJuABxC
         58/NzLYTqcGlHBdSXPHppWyp92190lyw2HA00=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763418085; x=1764022885;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=0Oyky22DR2eOVRpdxtWGlLFx/KrwmQftfBci2BIb+7E=;
        b=MXgPKo0ZZHOn6rZdw8QS+ONQ1KEjtvnhQ2i/JJsz97x91VD3nmYG4rmNHutNx9uiV9
         wHxxD4ZhXyCLA4FytxU6+oBPMoD8lCEiZxDZgvWvlGsVE12oy1jzID+HJ+wxYMmnqRIJ
         YeTw9Ykru1PaJC+W16zKJB4wIOTFbC7lZUY5+e+7ZedLgrb9W9KZKx0Mih2PhWlo1oU8
         scoggRRV4PHEZdUqEa6EufMy0NYncsSCJnZUOQnJB2dkbMS0TBxHE+l6DrOnpJTJ9wpY
         8tICfCsTLqg6WGP+1j6LG4O0t6hg87stz/jGTnAxbn8jwfp/xhxMkRVv4gxMnEbMB04L
         KIkQ==
X-Gm-Message-State: AOJu0Yz9IjiGco7N3xocd21WgiNw1msH9Kih0sdjeUhlSDsWQYKOALHi
	uHh9CHIc33TiWR6SG4Zgvtkthk0QDzDR96UnpjVxZstgB7dlw9RNYgCktXX31yip++Oe/WEsP2s
	EnSt3uR8=
X-Gm-Gg: ASbGncvRgXfWSBsd88LKr/9bHk4FREcCWlEicFIxUwMypOWtzbtjtR1RhY8GOfie6jQ
	5LOAzFlYzzmyUjmkC5/CmUbbF1qtP5MTPqKyNfHSjPeQB1KiV2iC+IuEsLgLIZgPTxSQrLJobKp
	34wjL1v2inJNqIOXibaGMuXO6RiVH5Ma2YcK4t0io3l4UadeqCwln2B2itwWoYUh30cIvM/1PjP
	t5cCkt3HshwY20u3bzqJri/t4pBsfoMz0XCN5OzTXwnbfSm1yDhh+xK7ClU0UPGqSZDDgWpF0sk
	QwT3qdijNkyjuE7UpW6aTEgrich29KdkP560+mKe+tjx2s8k09CEY31IOeUGTG6Tg16P6USnbT1
	7X8Az0WxISLxLLuCkP5lGdXX3qK2/KgscBSWcotN3AA5ixwEKQj+Fd0GzFtIUL2Nxu9yBSvHr1e
	rlnnbsorzsBKIyJ5/u+hSmBsvYkgj3akWOjM/STK3F8lgutbvm1MGgW7ZcYbAqew==
X-Google-Smtp-Source: AGHT+IH5hdJmF4OZUnYXn9fedk7MQhwP9+GLhqI7ZFZ/TxlwYo0avPssMKexuH2SqnbyvjRoD9oU4A==
X-Received: by 2002:a05:600c:8b4b:b0:477:63a4:88fe with SMTP id 5b1f17b1804b1-4778fe50df1mr126864095e9.2.1763418085122;
        Mon, 17 Nov 2025 14:21:25 -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/3] x86/ucode: Drop structurally unreachable ASSERT()s
Date: Mon, 17 Nov 2025 22:21:19 +0000
Message-Id: <20251117222120.473451-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251117222120.473451-1-andrew.cooper3@citrix.com>
References: <20251117222120.473451-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It's impossible for wait_for_state() to return false when looking for
LOADING_EXIT, so much so that the optimiser can drop the ASSERT()s.

No functional change.

Fixes: 5ed12565aa32 ("microcode: rendezvous CPUs in NMI handler and load ucode")
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/microcode/core.c | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index ecee400f28a6..7aaf62839f56 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -320,12 +320,10 @@ static int secondary_thread_fn(void)
     self_nmi();
 
     /*
-     * Wait for ucode loading is done in case that the NMI does not arrive
-     * synchronously, which may lead to a not-yet-updated CPU signature is
-     * copied below.
+     * NMIs may not be delivered synchronously.  Wait for the primary threads
+     * to be done.
      */
-    if ( unlikely(!wait_for_state(LOADING_EXIT)) )
-        ASSERT_UNREACHABLE();
+    wait_for_state(LOADING_EXIT);
 
     /* Copy update revision from the primary thread. */
     this_cpu(cpu_sig).rev =
@@ -345,12 +343,10 @@ static int primary_thread_fn(const struct microcode_patch *patch,
         self_nmi();
 
         /*
-         * Wait for ucode loading is done in case that the NMI does not arrive
-         * synchronously, which may lead to a not-yet-updated error is returned
-         * below.
+         * NMIs may not be delivered synchronously.  Wait for the primary
+         * threads to be done.
          */
-        if ( unlikely(!wait_for_state(LOADING_EXIT)) )
-            ASSERT_UNREACHABLE();
+        wait_for_state(LOADING_EXIT);
 
         return this_cpu(loading_err);
     }
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Nov 17 22:21:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 22:21:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164262.1491264 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL7bF-0002bT-5q; Mon, 17 Nov 2025 22:21:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164262.1491264; Mon, 17 Nov 2025 22: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 1vL7bF-0002bM-3C; Mon, 17 Nov 2025 22:21:29 +0000
Received: by outflank-mailman (input) for mailman id 1164262;
 Mon, 17 Nov 2025 22:21: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=FLbM=5Z=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vL7bD-0002Nh-BI
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 22:21:27 +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 c1f41323-c403-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 23:21:26 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-477632d9326so33051505e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 14:21:26 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42c9628ebacsm15223789f8f.30.2025.11.17.14.21.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 17 Nov 2025 14: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: c1f41323-c403-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1763418086; x=1764022886; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0EH5GucMwXGqWhJcPk1xUrIEMbDP0L0S0sWt+dj5pD8=;
        b=KLsytlqYBD4WA88bUHDYY/MmPNYHKi9ztastV9P6lF+bMAqMOyDmbx16QJeHi0WKTs
         h2gPEnixUshGtlXuC8ptETduFikZCZBN6oetTC9YJpxH7SKRRriNktr2QruR4j9iPsVT
         Bwe1eaGvog1gf5iHQPK2F0gbV8JllhwBhsV50=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763418086; x=1764022886;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=0EH5GucMwXGqWhJcPk1xUrIEMbDP0L0S0sWt+dj5pD8=;
        b=tSPmWDtIbUhVZnUVTAwm1E34q1RXY5mnGFrHtTWKiEz1ljwrAx2+NPf3R2F8Dl2Lee
         kKqksHxfuWXWZTJCGXAQ4opQqFNajXweyMnGVinX0HoYjCqpij6AaHhhkjseu9347lvH
         a72jHqfokYFFW3mh6bCNrVV1TKU9O0Ghl2f3yGmPgdkumxUM3MFpMrtCu8yYksg1zuQ+
         NWTFzgf0adTo9nDR0QbMNo6F6ZQBzGn29yFRXynb4hQhtvDDaRdwfEPNTWyeKM+A+ics
         dT1mJKYhte/SznS30jD1YAMVb3CxQFkJdR6eIwy8S4VO8h21XcU6HrdOp98Qhrk6AV7s
         0HUA==
X-Gm-Message-State: AOJu0YwSfiooF7YQ+qQJQ5nJ3vi7hPIzgLfycCVWynxHZeWNgR7wyoXf
	bqQh0c4nUeR9j1hefOIKrbFogpxyu1Px4GIsMZYmOR7fZh6SOVn+YmXeSnNQmrFCNX2Er2QU/BQ
	NHmxdUeA=
X-Gm-Gg: ASbGncsKoKb/wAro0/mtpmzMK0JRL06h1Y5ZnDuVMK3W63SbsodfybF1MGDPahq1gyD
	EqpuJPVm1LX4iFpanaG43a5IiDUMXMHyuzE/mGRPakN3JZLqVs/JlP0Re648WJgI6F6yBO2CJvR
	vgT962yWDs0sPhlvZriV1xTC6X5y4rhuA9SJYq6wiyFv2buI7M5balZtM/de3SF6cQRwAEGnlme
	SVPdXqpMcP4p7nplcsv/yAEG3SD/lalMC88yCJ78/z/XYE1q+XAjgvWj+QzRJ0jzW9TQlP3JpBf
	Cpa9/Vecx9m+luKeEcj0To8fiAA9x/ZnHKbLR8FMfEDnB5B6GR0nOx6FcwqjXvOEJ5+7BvrDD6G
	XjiuvojehM9Ak45MSZ2OS0wMhid5tzCh4BQaMZp+nlmKeLDHO0jviP+VxtF8wFKrgqf5EuD7qp8
	FMbqy2yHMacxapzdZs6WdElFEn0cAD7EAbCM/Ke82wI8cJabeRqT0=
X-Google-Smtp-Source: AGHT+IFMby+nD02SNTcy7GT8KlTdwfb6ZYI/udhxHT1ifds0MnlO/6g25QzPN4r7zPtISkr+ekvslA==
X-Received: by 2002:a05:600c:4744:b0:46f:b327:ecfb with SMTP id 5b1f17b1804b1-4778fe5ebb8mr142554435e9.9.1763418086033;
        Mon, 17 Nov 2025 14:21:26 -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 3/3] x86/ucode: Create a real type for loading_state
Date: Mon, 17 Nov 2025 22:21:20 +0000
Message-Id: <20251117222120.473451-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251117222120.473451-1-andrew.cooper3@citrix.com>
References: <20251117222120.473451-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Using typeof() in wait_for_state()/set_state() unnecesserily cryptic, and more
verbose than using a proper type.

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/microcode/core.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index 7aaf62839f56..fe47c3a6c18d 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -70,12 +70,13 @@ static unsigned int nr_cores;
  *  - LOADING_ENTER: all CPUs have called in. Initiate ucode loading.
  *  - LOADING_EXIT: ucode loading is done or aborted.
  */
-static enum {
+typedef enum {
     LOADING_PREPARE,
     LOADING_CALLIN,
     LOADING_ENTER,
     LOADING_EXIT,
-} loading_state;
+} loading_state_t;
+static loading_state_t loading_state;
 
 struct patch_with_flags {
     unsigned int flags;
@@ -237,9 +238,9 @@ static bool cf_check wait_cpu_callout(unsigned int nr)
     return atomic_read(&cpu_out) >= nr;
 }
 
-static bool wait_for_state(typeof(loading_state) state)
+static bool wait_for_state(loading_state_t state)
 {
-    typeof(loading_state) cur_state;
+    loading_state_t cur_state;
 
     while ( (cur_state = ACCESS_ONCE(loading_state)) != state )
     {
@@ -251,7 +252,7 @@ static bool wait_for_state(typeof(loading_state) state)
     return true;
 }
 
-static void set_state(typeof(loading_state) state)
+static void set_state(loading_state_t state)
 {
     ACCESS_ONCE(loading_state) = state;
 }
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Nov 17 22:21:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 17 Nov 2025 22:21:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164261.1491254 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vL7bC-0002Nx-Vo; Mon, 17 Nov 2025 22:21:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164261.1491254; Mon, 17 Nov 2025 22:21: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 1vL7bC-0002Nq-T9; Mon, 17 Nov 2025 22:21:26 +0000
Received: by outflank-mailman (input) for mailman id 1164261;
 Mon, 17 Nov 2025 22:21: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=FLbM=5Z=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vL7bB-0002Nh-Rk
 for xen-devel@lists.xenproject.org; Mon, 17 Nov 2025 22:21:25 +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 c0575012-c403-11f0-9d18-b5c5bf9af7f9;
 Mon, 17 Nov 2025 23:21:24 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4779aa4f928so26276465e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 14:21:24 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42c9628ebacsm15223789f8f.30.2025.11.17.14.21.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 17 Nov 2025 14: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: c0575012-c403-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1763418083; x=1764022883; 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=xAssDXxe9d1SYR0UCm/UeqgJSXMhl1SsVae+18Hf8aU=;
        b=iotsTt1sp1YoS8TjKubZ6rowXqD/wqvBMYh92cyuaxunT6bxdpiUSNEoimGnrEQT8T
         cJOfReNrCiESwlb2d7VkWlDcUBqEbx1ySstZr7eBPdkm1qqbiTVCTFGj+g9iJX8baQNK
         6rBekrnoztdc4kklQjQof5f/jYFmx3FpmoAH8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763418083; x=1764022883;
        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=xAssDXxe9d1SYR0UCm/UeqgJSXMhl1SsVae+18Hf8aU=;
        b=r3gH5I4aUxuIZpcc3EjX1tcDOkMVyTY4jHymNu58cTYoY5KxxO7V1m1MV3Kg1WHEKo
         UgKgM+4hIrkty3v0FkG57ACPLLhMSeVIDHCvLnMOPPkwRBif9gHNo5iCdIcsO0J7cmlI
         bpE9ztnLOmMpmHacH++SeanhYQrVaic1gYeARpdn5yO16YUtuNHK8b3lnT43XJ0w6X9C
         CGJ0Eve2hAxeXe9D8AMKcDH99kp9+77mCzEsBVkm8TD32LcGWSrR6l+aNGEPQ8/ClT5+
         lus5NCs4r4nKEcKV5fiDmxW2k/qY/tz5HhA2QhwSgVZXGJxFQ0m6g2ksTBW4WHYd9XBi
         sR+Q==
X-Gm-Message-State: AOJu0YyiutVwyMxnPGXwVBOxAdtKmNM9nrrVscK1NEy0FvjGpqwmiWOF
	o0RVC9SjfXpeyGCWOHoTKuJHfsMx6JXMYmkBLEuiqXWy0J8GXIDL0lne3fMRF0K8XsI18q1f6vR
	VCmlJl3w=
X-Gm-Gg: ASbGncuOct2hZGyfVvWGv5zHoczkpelnyu3ZkkwldpPvOMqC2UozVtc5p7JWrzIKfWC
	MoTmYYnF/C9rkfeNH9h87FsDPRt4w1lRsn3fqdDUf6HlKtg9yvmFptDrANvIUXBkxxvNeny5byy
	rggfAeew9yd2xtHXLkk6HJUnt5ujqqFMr2EAm4QuKMCIo3a4OOrA4Q0O0zariNhk9R5JpOAE+4O
	86uKIuOWYJDh00lqXMdegZOM1IPiu4JrBGMgZSvqVNmPLiV+D8RRoaU0DuXeDJi8ddRo3LK+dYu
	4i0UUWw448U6DAWU2FZUNp0+nZp4F5D9t1UR69XHey0oCvbbZft/tZwn9KHiaCctjnGZZbVNelg
	joOTylEgXQqNuVhP+gEWWgXBFPbP39k0704SoWpIQH1w/x4kK7SvuKxK8MsqBB+nDIM7/9GS282
	D3NgE3L78aEmTVRSLvoEH0SqqkuosFzPHUcevAMlLbj/EBBsNTsDs=
X-Google-Smtp-Source: AGHT+IH6pINDv8Idyh/RMoeRHXErQQHDJWfr0K6rWZFB9EurlOtp+s/zFaceIlGiqVI7eGZZg/DBOg==
X-Received: by 2002:a05:600c:450f:b0:477:76bf:e1fb with SMTP id 5b1f17b1804b1-4778fe4a05emr149992655e9.16.1763418083248;
        Mon, 17 Nov 2025 14:21:23 -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/3] x86/ucode: Parallel loading fixes
Date: Mon, 17 Nov 2025 22:21:17 +0000
Message-Id: <20251117222120.473451-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

At least patch 1 wants backporting.  Commit e0bb712a28a9 ("x86/ucode: Abort
parallel load early on any control thread error") made the problem easier to
hit, but the bug has been present since the introduction of parallel loading.

Another potential fix would be to have stop_machine_run()'s error value filled
in using cmpxchg.

Andrew Cooper (3):
  x86/ucode: Fix error handling during parallel ucode load
  x86/ucode: Drop structurally unreachable ASSERT()s
  x86/ucode: Create a real type for loading_state

 xen/arch/x86/cpu/microcode/core.c | 37 +++++++++++++++----------------
 1 file changed, 18 insertions(+), 19 deletions(-)

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 06:00:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 06:00:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164308.1491295 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLElH-00064G-6a; Tue, 18 Nov 2025 06:00:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164308.1491295; Tue, 18 Nov 2025 06: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 1vLElH-00063p-0Z; Tue, 18 Nov 2025 06:00:19 +0000
Received: by outflank-mailman (input) for mailman id 1164308;
 Tue, 18 Nov 2025 06:00: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=n9C8=52=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vLElG-00062J-7N
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 06:00:18 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id da5aa994-c443-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 07:00:15 +0100 (CET)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-591c9934e0cso6857743e87.0
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 22:00: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: da5aa994-c443-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763445615; x=1764050415; 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=IeSS4uhBN9NNuPmb/1pEFbUIM+VWWMWtO/VGATlPPeo=;
        b=OqmM9POZFzp8Hv8N+z4F3v2VwsbtwNg5bRfSw6asJ3YWKajk3a+PfWr5AU2p80X+iX
         FV3tzaJikpyUXmQ7i68Tr2kmVKI7Ykttz/mQroVKWp+4TJdWrWcq94d7prnpBFO22fS4
         2mkxTduEAyvgdqVM8KXY6w5bcCnlG2SBe+AoM/i4tTtGu45XbF6atRFx162sXqERhAP3
         vDzASszBWq5UIhSPYB7mr0GpG6xPjdM80e8ESD07+Z+H7KfjHznWoiLF+u1yOu1Ehmz2
         EfJ9ZeV84gTm5PqTbcLi3MXkLNP6ZRqgcpAk+XqkLpQlBPVidpI6ac9Ki++CJgmpqe4n
         CTYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763445615; x=1764050415;
        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=IeSS4uhBN9NNuPmb/1pEFbUIM+VWWMWtO/VGATlPPeo=;
        b=lBnxir47yqqOFr1cRNg8J6Ivrwe9a2D3IfOG8loI38u+O6sFD1bDTGYNu1EDniCdRO
         ErE8DZvBWeTxX+wV0DMxJ6rvp4NJWze5H0aAl8h7PSqXEmLnBGQorZsx7benI33sgYgE
         ZEpPuRoRnHRfBwkr9m9vR55NuycfgOuI16SIyORWmzl29QohyTSA7kz7KWjpA/ESqf2V
         +bQyESk/HLWfpzSzeLoGKBFZVmM9upD8gqri51vJ2QZ/5Svksldxxw77eaH+EVjKN3um
         UJuq6GhyDmR1ZKuZ4UO/S3tcOUdUUA8ped/IjPfVCYx5W73fkBoj4j4o5w2ATQcw/D4O
         nwHg==
X-Gm-Message-State: AOJu0YwyWhiDkH7OMYK+mC9OdtzKiAtBjjKadB4pXx0k2XG/evsYnNzG
	8CO0JRl2KtTPLm6WT4E/hs0em3kUaqtZ6fGCzL6z9fX8a6Z0YlJPEAfewjXPt48BTdm77u8dJCa
	1Sdu4JVWj9DUNt/sUg2KPn9hA/YHhX/4=
X-Gm-Gg: ASbGncsJqMU9DiAT4Pq+MrZ2nwirXC4esRO0fV51KnYXRRK7iU8yuvdFN90okYcGa4s
	LXG6lcwy5gQSSBSYF9wtsCZwrNsDNwdx4gelgi3csSZc1YUGFdBNNDKDZmewth0P2v62I4ZHrcU
	aUmcE73UrUKBUukecBU89On2hj8Jz1WJxhjWlLlxin4Oh780lpLbGTrdiLdA5FjRY8jsCeKaHGa
	/NdTLnG5n9vsGbbajbMQjI+kl6amCH/d/H8eGSckOPSyrX+NarkdWFDh6DrdSNts1tEDA==
X-Google-Smtp-Source: AGHT+IHgDNIwCZCsv/X2P7hPAH9Y0IOEqp94we9aYD7IdiGmswu6oRFAQLUZf2s3t5H2Sfyu7fsb1zZVGPhpptcgMBQ=
X-Received: by 2002:a05:6512:10cb:b0:595:9152:b93b with SMTP id
 2adb3069b0e04-5959152bc62mr2142066e87.0.1763445614310; Mon, 17 Nov 2025
 22:00:14 -0800 (PST)
MIME-Version: 1.0
References: <20250908211149.279143-1-dmukhin@ford.com> <20250908211149.279143-15-dmukhin@ford.com>
In-Reply-To: <20250908211149.279143-15-dmukhin@ford.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 18 Nov 2025 08:00:00 +0200
X-Gm-Features: AWmQ_bk8eFf3d2mqJQYVJorMzUBUNVWoGngUk9pk2JGks4LUuuPD8njMnEZ4a2w
Message-ID: <CAGeoDV9bc4uNeSJ_H5G6WwbOiwdvkS+aZXpLr4K10mtRZX5vPA@mail.gmail.com>
Subject: Re: [PATCH v7 14/16] x86/domain: enable per-domain I/O port bitmaps
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
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Denis,

Thank you for the patch.

On Tue, Sep 9, 2025 at 12:12=E2=80=AFAM <dmukhin@xen.org> wrote:
>
> From: Denis Mukhin <dmukhin@ford.com>
>
> Current design enables all HVM domains share the same I/O port bitmap.
>
> It is necessary for domains crafting its own I/O port address space depen=
ding
> on the user configuration.
>
> Ensure NS16550 emulator does not share I/O ports with the physical I/O po=
rts,
> which is essential for emulation in PVH hwdom case (dom0).
>
> Not a functional change.
>
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v6:
> - n/a
> ---
>  xen/arch/x86/Makefile                    |   1 +
>  xen/arch/x86/dom0_build.c                | 111 +--------------
>  xen/arch/x86/hvm/hvm.c                   |  35 +----
>  xen/arch/x86/hvm/nestedhvm.c             |   8 +-
>  xen/arch/x86/hvm/quirks.c                |   3 -
>  xen/arch/x86/hvm/svm/nestedsvm.c         |   2 +-
>  xen/arch/x86/hvm/vmx/vvmx.c              |   4 +-
>  xen/arch/x86/include/asm/hvm/nestedhvm.h |   3 +-
>  xen/arch/x86/include/asm/hvm/support.h   |   2 -
>  xen/arch/x86/include/asm/iocap.h         |   2 +
>  xen/arch/x86/ioport.c                    | 163 +++++++++++++++++++++++
>  xen/arch/x86/pv/dom0_build.c             |   4 +
>  xen/common/emul/vuart/ns16x50.c          |  11 ++
>  13 files changed, 200 insertions(+), 149 deletions(-)
>  create mode 100644 xen/arch/x86/ioport.c
>
> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index d7aed7d92c15..85a8475e126c 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -44,6 +44,7 @@ obj-y +=3D msi.o
>  obj-y +=3D msr.o
>  obj-$(CONFIG_INDIRECT_THUNK) +=3D indirect-thunk.o
>  obj-$(CONFIG_RETURN_THUNK) +=3D indirect-thunk.o
> +obj-y +=3D ioport.o
>  obj-$(CONFIG_PV) +=3D ioport_emulate.o
>  obj-y +=3D irq.o
>  obj-$(CONFIG_KEXEC) +=3D machine_kexec.o
> diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
> index 0b467fd4a4fc..26202b33345c 100644
> --- a/xen/arch/x86/dom0_build.c
> +++ b/xen/arch/x86/dom0_build.c
> @@ -298,9 +298,6 @@ int __init parse_arch_dom0_param(const char *s, const=
 char *e)
>      return 0;
>  }
>
> -static char __initdata opt_dom0_ioports_disable[200] =3D "";
> -string_param("dom0_ioports_disable", opt_dom0_ioports_disable);
> -
>  static bool __initdata ro_hpet =3D true;
>  boolean_param("ro-hpet", ro_hpet);
>
> @@ -433,122 +430,20 @@ unsigned long __init dom0_compute_nr_pages(
>      return nr_pages;
>  }
>
> -static void __init process_dom0_ioports_disable(struct domain *dom0)
> -{
> -    unsigned long io_from, io_to;
> -    char *t, *s =3D opt_dom0_ioports_disable;
> -    const char *u;
> -
> -    if ( *s =3D=3D '\0' )
> -        return;
> -
> -    while ( (t =3D strsep(&s, ",")) !=3D NULL )
> -    {
> -        io_from =3D simple_strtoul(t, &u, 16);
> -        if ( u =3D=3D t )
> -        {
> -        parse_error:
> -            printk("Invalid ioport range <%s> "
> -                   "in dom0_ioports_disable, skipping\n", t);
> -            continue;
> -        }
> -
> -        if ( *u =3D=3D '\0' )
> -            io_to =3D io_from;
> -        else if ( *u =3D=3D '-' )
> -            io_to =3D simple_strtoul(u + 1, &u, 16);
> -        else
> -            goto parse_error;
> -
> -        if ( (*u !=3D '\0') || (io_to < io_from) || (io_to >=3D 65536) )
> -            goto parse_error;
> -
> -        printk("Disabling dom0 access to ioport range %04lx-%04lx\n",
> -            io_from, io_to);
> -
> -        if ( ioports_deny_access(dom0, io_from, io_to) !=3D 0 )
> -            BUG();
> -    }
> -}
> -
> +/* Modify I/O memory access permissions. */
>  int __init dom0_setup_permissions(struct domain *d)
>  {
>      unsigned long mfn;
> -    unsigned int i, offs;
> -    int rc;
> +    unsigned int i;
> +    int rc =3D 0;
>
>      if ( pv_shim )
>          return 0;
>
> -    /* The hardware domain is initially permitted full I/O capabilities.=
 */
> -    rc =3D ioports_permit_access(d, 0, 0xFFFF);
>      rc |=3D iomem_permit_access(d, 0UL,
>                                PFN_DOWN(1UL << domain_max_paddr_bits(d)) =
- 1);
>      rc |=3D irqs_permit_access(d, 1, nr_irqs_gsi - 1);
>
> -    /* Modify I/O port access permissions. */
> -
> -    for ( offs =3D 0, i =3D ISOLATE_LSB(i8259A_alias_mask) ?: 2;
> -          offs <=3D i8259A_alias_mask; offs +=3D i )
> -    {
> -        if ( offs & ~i8259A_alias_mask )
> -            continue;
> -        /* Master Interrupt Controller (PIC). */
> -        rc |=3D ioports_deny_access(d, 0x20 + offs, 0x21 + offs);
> -        /* Slave Interrupt Controller (PIC). */
> -        rc |=3D ioports_deny_access(d, 0xA0 + offs, 0xA1 + offs);
> -    }
> -
> -    /* ELCR of both PICs. */
> -    rc |=3D ioports_deny_access(d, 0x4D0, 0x4D1);
> -
> -    /* Interval Timer (PIT). */
> -    for ( offs =3D 0, i =3D ISOLATE_LSB(pit_alias_mask) ?: 4;
> -          offs <=3D pit_alias_mask; offs +=3D i )
> -        if ( !(offs & ~pit_alias_mask) )
> -            rc |=3D ioports_deny_access(d, PIT_CH0 + offs, PIT_MODE + of=
fs);
> -
> -    /* PIT Channel 2 / PC Speaker Control. */
> -    rc |=3D ioports_deny_access(d, 0x61, 0x61);
> -
> -    /* INIT# and alternative A20M# control. */
> -    rc |=3D ioports_deny_access(d, 0x92, 0x92);
> -
> -    /* IGNNE# control. */
> -    rc |=3D ioports_deny_access(d, 0xF0, 0xF0);
> -
> -    /* ACPI PM Timer. */
> -    if ( pmtmr_ioport )
> -        rc |=3D ioports_deny_access(d, pmtmr_ioport, pmtmr_ioport + 3);
> -
> -    /* Reset control. */
> -    rc |=3D ioports_deny_access(d, 0xCF9, 0xCF9);
> -
> -    /* PCI configuration space (NB. 0xCF8 has special treatment). */
> -    rc |=3D ioports_deny_access(d, 0xCFC, 0xCFF);
> -
> -#ifdef CONFIG_HVM
> -    if ( is_hvm_domain(d) )
> -    {
> -        /* ISA DMA controller, channels 0-3 (incl possible aliases). */
> -        rc |=3D ioports_deny_access(d, 0x00, 0x1F);
> -        /* ISA DMA controller, page registers (incl various reserved one=
s). */
> -        rc |=3D ioports_deny_access(d, 0x80 + !!hvm_port80_allowed, 0x8F=
);
> -        /* ISA DMA controller, channels 4-7 (incl usual aliases). */
> -        rc |=3D ioports_deny_access(d, 0xC0, 0xDF);
> -
> -        /* HVM debug console IO port. */
> -        rc |=3D ioports_deny_access(d, XEN_HVM_DEBUGCONS_IOPORT,
> -                                  XEN_HVM_DEBUGCONS_IOPORT);
> -        if ( amd_acpi_c1e_quirk )
> -            rc |=3D ioports_deny_access(d, acpi_smi_cmd, acpi_smi_cmd);
> -    }
> -#endif
> -    /* Command-line I/O ranges. */
> -    process_dom0_ioports_disable(d);
> -
> -    /* Modify I/O memory access permissions. */
> -
>      /* Local APIC. */
>      if ( mp_lapic_addr !=3D 0 )
>      {
> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> index 363c010f8dcc..1fc16a22e157 100644
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -51,6 +51,7 @@
>  #include <asm/hvm/vm_event.h>
>  #include <asm/hvm/vpt.h>
>  #include <asm/i387.h>
> +#include <asm/iocap.h>
>  #include <asm/mc146818rtc.h>
>  #include <asm/mce.h>
>  #include <asm/monitor.h>
> @@ -81,14 +82,6 @@ integer_param("hvm_debug", opt_hvm_debug_level);
>
>  struct hvm_function_table __ro_after_init hvm_funcs;
>
> -/*
> - * The I/O permission bitmap is globally shared by all HVM guests except
> - * the hardware domain which needs a more permissive one.
> - */
> -#define HVM_IOBITMAP_SIZE (3 * PAGE_SIZE)
> -unsigned long __section(".bss.page_aligned") __aligned(PAGE_SIZE)
> -    hvm_io_bitmap[HVM_IOBITMAP_SIZE / BYTES_PER_LONG];
> -
>  /* Xen command-line option to enable HAP */
>  static bool __initdata opt_hap_enabled =3D true;
>  boolean_param("hap", opt_hap_enabled);
> @@ -266,15 +259,6 @@ static int __init cf_check hvm_enable(void)
>      if ( opt_hvm_fep )
>          warning_add(warning_hvm_fep);
>
> -    /*
> -     * Allow direct access to the PC debug ports 0x80 and 0xed (they are
> -     * often used for I/O delays, but the vmexits simply slow things dow=
n).
> -     */
> -    memset(hvm_io_bitmap, ~0, sizeof(hvm_io_bitmap));
> -    if ( hvm_port80_allowed )
> -        __clear_bit(0x80, hvm_io_bitmap);
> -    __clear_bit(0xed, hvm_io_bitmap);
> -
>      register_cpu_notifier(&cpu_nfb);
>
>      return 0;
> @@ -706,19 +690,12 @@ int hvm_domain_initialise(struct domain *d,
>
>      rwlock_init(&d->arch.hvm.pl_time->pt_migrate);
>
> -    /* Set the default IO Bitmap. */
> -    if ( is_hardware_domain(d) )
> +    rc =3D ioports_setup_access(d);
> +    if ( rc )
>      {
> -        d->arch.hvm.io_bitmap =3D _xmalloc(HVM_IOBITMAP_SIZE, PAGE_SIZE)=
;
> -        if ( d->arch.hvm.io_bitmap =3D=3D NULL )
> -        {
> -            rc =3D -ENOMEM;
> -            goto fail1;
> -        }
> -        memset(d->arch.hvm.io_bitmap, ~0, HVM_IOBITMAP_SIZE);
> +        printk("%pd failed to setup I/O bitmap: %d\n", d, rc);
> +        goto fail1;
>      }
> -    else
> -        d->arch.hvm.io_bitmap =3D hvm_io_bitmap;
>
>      register_g2m_portio_handler(d);
>      register_vpci_portio_handler(d);
> @@ -745,6 +722,8 @@ int hvm_domain_initialise(struct domain *d,
>          break;
>      }
>
> +    BUG_ON(!d->arch.ioport_caps);
> +
>      vpic_init(d);
>
>      rc =3D vioapic_init(d);
> diff --git a/xen/arch/x86/hvm/nestedhvm.c b/xen/arch/x86/hvm/nestedhvm.c
> index bddd77d8109b..d4e03123d910 100644
> --- a/xen/arch/x86/hvm/nestedhvm.c
> +++ b/xen/arch/x86/hvm/nestedhvm.c
> @@ -107,7 +107,7 @@ nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m)
>   * The users of the bitmap patterns are in SVM/VMX specific code.
>   *
>   * bitmap        port 0x80  port 0xed
> - * hvm_io_bitmap cleared    cleared
> + * hvm.io_bitmap cleared    cleared
>   * iomap[0]      cleared    set
>   * iomap[1]      set        cleared
>   * iomap[2]      set        set
> @@ -115,7 +115,7 @@ nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m)
>
>  static int __init cf_check nestedhvm_setup(void)
>  {
> -    /* Same format and size as hvm_io_bitmap (Intel needs only 2 pages).=
 */
> +    /* Same format and size as hvm.io_bitmap (Intel needs only 2 pages).=
 */
>      unsigned nr =3D cpu_has_vmx ? 2 : 3;
>      unsigned int i, order =3D get_order_from_pages(nr);
>
> @@ -165,7 +165,7 @@ static int __init cf_check nestedhvm_setup(void)
>  __initcall(nestedhvm_setup);
>
>  unsigned long *
> -nestedhvm_vcpu_iomap_get(bool ioport_80, bool ioport_ed)
> +nestedhvm_vcpu_iomap_get(struct vcpu *v, bool ioport_80, bool ioport_ed)
>  {
>      int i;
>
> @@ -174,7 +174,7 @@ nestedhvm_vcpu_iomap_get(bool ioport_80, bool ioport_=
ed)
>
>      if (ioport_80 =3D=3D 0) {
>          if (ioport_ed =3D=3D 0)
> -            return hvm_io_bitmap;
> +            return v->domain->arch.hvm.io_bitmap;
>          i =3D 0;
>      } else {
>          if (ioport_ed =3D=3D 0)
> diff --git a/xen/arch/x86/hvm/quirks.c b/xen/arch/x86/hvm/quirks.c
> index 9202f5a47fe9..f4d95441fcff 100644
> --- a/xen/arch/x86/hvm/quirks.c
> +++ b/xen/arch/x86/hvm/quirks.c
> @@ -73,9 +73,6 @@ static int __init cf_check check_port80(void)
>
>      dmi_check_system(hvm_no_port80_dmi_table);
>
> -    if ( !hvm_port80_allowed )
> -        __set_bit(0x80, hvm_io_bitmap);
> -
>      return 0;
>  }
>  __initcall(check_port80);
> diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nest=
edsvm.c
> index dc2b6a42534a..cc8500b61665 100644
> --- a/xen/arch/x86/hvm/svm/nestedsvm.c
> +++ b/xen/arch/x86/hvm/svm/nestedsvm.c
> @@ -381,7 +381,7 @@ static int nsvm_vmrun_permissionmap(struct vcpu *v, b=
ool viopm)
>          hvm_unmap_guest_frame(ns_viomap, 0);
>      }
>
> -    svm->ns_iomap =3D nestedhvm_vcpu_iomap_get(ioport_80, ioport_ed);
> +    svm->ns_iomap =3D nestedhvm_vcpu_iomap_get(v, ioport_80, ioport_ed);
>
>      nv->nv_ioport80 =3D ioport_80;
>      nv->nv_ioportED =3D ioport_ed;
> diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
> index e4f3a5fe4c71..4da3e6e90e6c 100644
> --- a/xen/arch/x86/hvm/vmx/vvmx.c
> +++ b/xen/arch/x86/hvm/vmx/vvmx.c
> @@ -554,7 +554,7 @@ unsigned long *_shadow_io_bitmap(struct vcpu *v)
>      port80 =3D bitmap[0x80 >> 3] & (1 << (0x80 & 0x7)) ? 1 : 0;
>      portED =3D bitmap[0xed >> 3] & (1 << (0xed & 0x7)) ? 1 : 0;
>
> -    return nestedhvm_vcpu_iomap_get(port80, portED);
> +    return nestedhvm_vcpu_iomap_get(v, port80, portED);
>  }
>
>  static void update_msrbitmap(struct vcpu *v, uint32_t shadow_ctrl)
> @@ -622,7 +622,7 @@ void nvmx_update_exec_control(struct vcpu *v, u32 hos=
t_cntrl)
>               * L1 VMM doesn't intercept IO instruction.
>               * Use host configuration and reset IO_BITMAP
>               */
> -            bitmap =3D hvm_io_bitmap;
> +            bitmap =3D v->domain->arch.hvm.io_bitmap;
>          }
>          else {
>              /* use IO bitmap */
> diff --git a/xen/arch/x86/include/asm/hvm/nestedhvm.h b/xen/arch/x86/incl=
ude/asm/hvm/nestedhvm.h
> index ea2c1bc328c7..d691ccb07dd6 100644
> --- a/xen/arch/x86/include/asm/hvm/nestedhvm.h
> +++ b/xen/arch/x86/include/asm/hvm/nestedhvm.h
> @@ -50,7 +50,8 @@ int nestedhvm_hap_nested_page_fault(struct vcpu *v, pad=
dr_t *L2_gpa,
>                                      struct npfec npfec);
>
>  /* IO permission map */
> -unsigned long *nestedhvm_vcpu_iomap_get(bool ioport_80, bool ioport_ed);
> +unsigned long *nestedhvm_vcpu_iomap_get(struct vcpu *v,
> +                                        bool ioport_80, bool ioport_ed);
>
>  /* Misc */
>  #define nestedhvm_paging_mode_hap(v) (!!nhvm_vmcx_hap_enabled(v))
> diff --git a/xen/arch/x86/include/asm/hvm/support.h b/xen/arch/x86/includ=
e/asm/hvm/support.h
> index 2a7ba36af06f..7e36d00cc188 100644
> --- a/xen/arch/x86/include/asm/hvm/support.h
> +++ b/xen/arch/x86/include/asm/hvm/support.h
> @@ -41,8 +41,6 @@ extern unsigned int opt_hvm_debug_level;
>  #define HVM_DBG_LOG(level, _f, _a...) do {} while (0)
>  #endif
>
> -extern unsigned long hvm_io_bitmap[];
> -
>  enum hvm_translation_result {
>      HVMTRANS_okay,
>      HVMTRANS_bad_linear_to_gfn,
> diff --git a/xen/arch/x86/include/asm/iocap.h b/xen/arch/x86/include/asm/=
iocap.h
> index f948b7186e95..1083f6171cf7 100644
> --- a/xen/arch/x86/include/asm/iocap.h
> +++ b/xen/arch/x86/include/asm/iocap.h
> @@ -22,6 +22,8 @@
>  #define cache_flush_permitted(d) \
>      (has_arch_io_resources(d) || has_arch_pdevs(d))
>
> +int ioports_setup_access(struct domain *d);
> +
>  static inline int ioports_permit_access(struct domain *d, unsigned long =
s,
>                                          unsigned long e)
>  {
> diff --git a/xen/arch/x86/ioport.c b/xen/arch/x86/ioport.c
> new file mode 100644
> index 000000000000..dbcd52d37a4f
> --- /dev/null
> +++ b/xen/arch/x86/ioport.c
> @@ -0,0 +1,163 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Guest I/O port address space configuration.
> + *
> + * Copyright 2025 Ford Motor Company
> + */
> +
> +#include <xen/domain.h>
> +#include <xen/param.h>
> +
> +#include <asm/amd.h>
> +#include <asm/acpi.h>
> +#include <asm/io-ports.h>
> +#include <asm/iocap.h>
> +#include <asm/pv/shim.h>
> +#include <asm/setup.h>
> +
> +static char __initdata opt_dom0_ioports_disable[200] =3D "";
> +string_param("dom0_ioports_disable", opt_dom0_ioports_disable);
> +
> +/*
> + * The I/O permission bitmap size.
> + * See: comment in nestedhvm_setup()
> + */
> +#define HVM_IOBITMAP_SIZE (3 * PAGE_SIZE)
> +
> +/* Hide user-defined I/O ports from the guest OS. */
> +static void process_dom0_ioports_disable(struct domain *dom0)
> +{
> +    unsigned long io_from, io_to;
> +    char *t, *s =3D opt_dom0_ioports_disable;
> +    const char *u;
> +
> +    if ( *s =3D=3D '\0' )
> +        return;
> +
> +    while ( (t =3D strsep(&s, ",")) !=3D NULL )
> +    {
> +        io_from =3D simple_strtoul(t, &u, 16);
> +        if ( u =3D=3D t )
> +        {
> +        parse_error:
> +            printk("Invalid ioport range <%s> "
> +                   "in dom0_ioports_disable, skipping\n", t);
> +            continue;
> +        }
> +
> +        if ( *u =3D=3D '\0' )
> +            io_to =3D io_from;
> +        else if ( *u =3D=3D '-' )
> +            io_to =3D simple_strtoul(u + 1, &u, 16);
> +        else
> +            goto parse_error;
> +
> +        if ( (*u !=3D '\0') || (io_to < io_from) || (io_to >=3D 65536) )
> +            goto parse_error;
> +
> +        printk("Disabling dom0 access to ioport range %04lx-%04lx\n",
> +            io_from, io_to);
> +
> +        if ( ioports_deny_access(dom0, io_from, io_to) !=3D 0 )
> +            BUG();
> +    }
> +}
> +
> +/* Set the default IO Bitmap. */
> +int ioports_setup_access(struct domain *d)
> +{
> +    unsigned int i, offs;
> +    int rc;
> +
> +    if ( pv_shim )
> +        return 0;
> +
> +#ifdef CONFIG_HVM

ioports_setup_access() now allocates a per-domain io_bitmap for all HVM dom=
ains:

> +    d->arch.hvm.io_bitmap =3D _xmalloc(HVM_IOBITMAP_SIZE, PAGE_SIZE);

but I only see this being freed for the hardware domain in the
existing failure paths.
Where is io_bitmap freed for non-hardware HVM domains?

> +    if ( d->arch.hvm.io_bitmap =3D=3D NULL )
> +        return -ENOMEM;
> +
> +    memset(d->arch.hvm.io_bitmap, ~0, HVM_IOBITMAP_SIZE);
> +
> +    if ( !is_hardware_domain(d) )
> +    {
> +        /*
> +         * Allow direct access to the PC debug ports 0x80 and 0xed (they=
 are
> +         * often used for I/O delays, but the vmexits simply slow things=
 down).
> +         */
> +        if ( hvm_port80_allowed )
> +            __clear_bit(0x80, d->arch.hvm.io_bitmap);
> +
> +        __clear_bit(0xed, d->arch.hvm.io_bitmap);
> +
> +        return 0;
> +    }
> +#endif
> +
> +    /* The hardware domain is initially permitted full I/O capabilities.=
 */
> +    rc =3D ioports_permit_access(d, 0, 0xFFFF);
> +
> +    /* Modify I/O port access permissions. */
> +
> +    for ( offs =3D 0, i =3D ISOLATE_LSB(i8259A_alias_mask) ?: 2;
> +          offs <=3D i8259A_alias_mask; offs +=3D i )
> +    {
> +        if ( offs & ~i8259A_alias_mask )
> +            continue;
> +        /* Master Interrupt Controller (PIC). */
> +        rc |=3D ioports_deny_access(d, 0x20 + offs, 0x21 + offs);
> +        /* Slave Interrupt Controller (PIC). */
> +        rc |=3D ioports_deny_access(d, 0xA0 + offs, 0xA1 + offs);
> +    }
> +
> +    /* ELCR of both PICs. */
> +    rc |=3D ioports_deny_access(d, 0x4D0, 0x4D1);
> +
> +    /* Interval Timer (PIT). */
> +    for ( offs =3D 0, i =3D ISOLATE_LSB(pit_alias_mask) ?: 4;
> +          offs <=3D pit_alias_mask; offs +=3D i )
> +        if ( !(offs & ~pit_alias_mask) )
> +            rc |=3D ioports_deny_access(d, PIT_CH0 + offs, PIT_MODE + of=
fs);
> +
> +    /* PIT Channel 2 / PC Speaker Control. */
> +    rc |=3D ioports_deny_access(d, 0x61, 0x61);
> +
> +    /* INIT# and alternative A20M# control. */
> +    rc |=3D ioports_deny_access(d, 0x92, 0x92);
> +
> +    /* IGNNE# control. */
> +    rc |=3D ioports_deny_access(d, 0xF0, 0xF0);
> +
> +    /* ACPI PM Timer. */
> +    if ( pmtmr_ioport )
> +        rc |=3D ioports_deny_access(d, pmtmr_ioport, pmtmr_ioport + 3);
> +
> +    /* Reset control. */
> +    rc |=3D ioports_deny_access(d, 0xCF9, 0xCF9);
> +
> +    /* PCI configuration space (NB. 0xCF8 has special treatment). */
> +    rc |=3D ioports_deny_access(d, 0xCFC, 0xCFF);
> +
> +#ifdef CONFIG_HVM
> +    if ( is_hvm_domain(d) )
> +    {
> +        /* ISA DMA controller, channels 0-3 (incl possible aliases). */
> +        rc |=3D ioports_deny_access(d, 0x00, 0x1F);
> +        /* ISA DMA controller, page registers (incl various reserved one=
s). */
> +        rc |=3D ioports_deny_access(d, 0x80 + !!hvm_port80_allowed, 0x8F=
);
> +        /* ISA DMA controller, channels 4-7 (incl usual aliases). */
> +        rc |=3D ioports_deny_access(d, 0xC0, 0xDF);
> +
> +        /* HVM debug console IO port. */
> +        rc |=3D ioports_deny_access(d, XEN_HVM_DEBUGCONS_IOPORT,
> +                                  XEN_HVM_DEBUGCONS_IOPORT);
> +        if ( amd_acpi_c1e_quirk )
> +            rc |=3D ioports_deny_access(d, acpi_smi_cmd, acpi_smi_cmd);
> +    }
> +#endif
> +
> +    /* Command-line I/O ranges. */
> +    process_dom0_ioports_disable(d);
> +
> +    return rc;
> +}
> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
> index 21158ce1812e..2b8b4d869ee7 100644
> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c
> @@ -17,6 +17,7 @@
>  #include <asm/bootinfo.h>
>  #include <asm/bzimage.h>
>  #include <asm/dom0_build.h>
> +#include <asm/iocap.h>
>  #include <asm/guest.h>
>  #include <asm/page.h>
>  #include <asm/pv/mm.h>
> @@ -1033,6 +1034,9 @@ static int __init dom0_construct(const struct boot_=
domain *bd)
>      if ( test_bit(XENFEAT_supervisor_mode_kernel, parms.f_required) )
>          panic("Dom0 requires supervisor-mode execution\n");
>
> +    rc =3D ioports_setup_access(d);
> +    BUG_ON(rc !=3D 0);
> +
>      rc =3D dom0_setup_permissions(d);
>      BUG_ON(rc !=3D 0);
>
> diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16=
x50.c
> index c341f012d005..ea34c3ae598a 100644
> --- a/xen/common/emul/vuart/ns16x50.c
> +++ b/xen/common/emul/vuart/ns16x50.c
> @@ -783,9 +783,20 @@ static int ns16x50_init(void *arg)
>      struct vuart_ns16x50 *vdev =3D arg;
>      const struct vuart_info *info =3D vdev->info;
>      struct domain *d =3D vdev->owner;
> +    int rc;
>
>      ASSERT(vdev);
>
> +    /* Disallow sharing physical I/O port */

Should this be undone on teardown and error paths?

> +    rc =3D ioports_deny_access(d, info->base_addr,
> +                             info->base_addr + info->size - 1);


Best regards,
Mykola


> +    if ( rc )
> +    {
> +        ns16x50_err(info, " virtual I/O port range [0x%04lx..0x%04lx]: c=
onflict w/ physical range\n",
> +                    info->base_addr, info->base_addr + info->size - 1);
> +        return rc;
> +    }
> +
>      /* NB: report 115200 baud rate. */
>      vdev->regs[NS16X50_REGS_NUM + UART_DLL] =3D divisor & UINT8_MAX;
>      vdev->regs[NS16X50_REGS_NUM + UART_DLM] =3D (divisor >> 8) & UINT8_M=
AX;
> --
> 2.51.0
>
>


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 06:00:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 06:00:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164309.1491305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLElR-0006Jz-Do; Tue, 18 Nov 2025 06:00:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164309.1491305; Tue, 18 Nov 2025 06:00:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLElR-0006Jq-B4; Tue, 18 Nov 2025 06:00:29 +0000
Received: by outflank-mailman (input) for mailman id 1164309;
 Tue, 18 Nov 2025 06:00: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=n9C8=52=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vLElQ-0006JB-LR
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 06:00:28 +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 e04c86f9-c443-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 07:00:25 +0100 (CET)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-5957753e0efso5406680e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 22:00: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: e04c86f9-c443-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763445625; x=1764050425; 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=iS7CD3ob7b2szWAvPkkvFdWOiNIj8WJSli+X89WuyQ4=;
        b=GFVBzC5qvKj09ZPxKyXpTBTUZRP142EjNbmnACZpRh9y69xbWEVM3HR70aeGwZ6WRA
         eS8OA8nckZ/XvXYS5ksvFffuF3EmMoGdCcTTdgimBPlxg+NfkK8DKwmPGK3pkHEmjY34
         W94LOnA9/5SlQ8VWKY080fLjNwgc0IyPaf9KliaWyYxBkZ14Fs/p0u8dGYKLht26zHnX
         WztEShXWnnBvAHLDnJ+sf8Qasfbw+8w8iiWCjt/xxJQD4EWJRJEte3doKtgi4380vdjf
         tmPThqnMf2h+iOS+Eq+72tKeLPPakmbCujU+jub8GESny07M+6c/zA/7UFGfz9dIUFNK
         t+XQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763445625; x=1764050425;
        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=iS7CD3ob7b2szWAvPkkvFdWOiNIj8WJSli+X89WuyQ4=;
        b=VXUPpA5G7WzOEdWLBB4EH8K7+SidGxTCtqMjioBcprpUYL7zI4fAuZmx+eCw61wKJc
         JhwnDAxrNi2wgsL4VCNH9zhUoSQ5mRC70d6bfOP3hg7RY+4QndZYZv6yndiUYLbXfcOH
         Pz6dIhBrXium/rWF1IheIWzWcHXQ31mXT0lOmKqTzwl8JRhvn/DDArIXIAnWfEmEwwCY
         4aqM1buzmwErqBhaye1QMlXB1tVgMH6iin5zhYRJXgrIqtUsiIeXwsYhjkSWVOhwGdMV
         F5u+51FlseigFEKEBWB/ruJaH6V7TarVv9JSiQL5v1G3IYokEg0uemVuPC0yhEJARcls
         QH/Q==
X-Gm-Message-State: AOJu0Yxo4B6ROOGXIFyk8ZZE25yt0EBikI6V9QxRFgSFJD2DorBkZ2l3
	O6AdI1uh3UqnPD6ah7KGfCb+xd/KM7NV+AhuVYBbU5qxQbuAvQyQFZ8ki/az+PEDQnbs7zSW9ZE
	x47UhTo0sMC7bqf29wYOg5BX+4kBmLEw=
X-Gm-Gg: ASbGncvdm04iRlnEg/JDwJHBDfV63lw/y3MylHaLk/qXuwIVsf4LZU3L0hUVaRFzW43
	mH7n5Wp3/5T4NWTcdaFgLlYx2PWpmzi/ijQt0eGGWzYL+jxIqr50Af1IDQrZUXgM+Lc7Z8j8nBk
	6iTL+PuwAswiwyoK6uFWxpfCp35wcC+TxV+lSYR/S6CprUc/bl6JkwcmeJqeuqgbl0pcOQdeCSj
	6ppDP+oinpFJ+O645yswSlq1lME5C6DdpWWOg41f4C/UirIm3DNr+uB3bw=
X-Google-Smtp-Source: AGHT+IFkO2c5vLWzmBkcc4QRCnaOdPFhYFdKKmXBrdr2vcxKwLbNQPdGFwnQVa8FRy12/k900vSpEGnCRGkZVqocuSY=
X-Received: by 2002:a05:6512:2311:b0:583:903e:b5a4 with SMTP id
 2adb3069b0e04-59584214f80mr4549912e87.46.1763445624675; Mon, 17 Nov 2025
 22:00:24 -0800 (PST)
MIME-Version: 1.0
References: <20250908211149.279143-1-dmukhin@ford.com> <20250908211149.279143-14-dmukhin@ford.com>
In-Reply-To: <20250908211149.279143-14-dmukhin@ford.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 18 Nov 2025 08:00:00 +0200
X-Gm-Features: AWmQ_bnKh0qI2Z2r7j6FvorD1gq2XbLU-Cmx7phnhZAIOjwnUA5hSvzC7q-ajEI
Message-ID: <CAGeoDV91zO0ZQNdpK0keJf_xfq8mFY2BP7kD_Pbsvrc3c6Y21g@mail.gmail.com>
Subject: Re: [PATCH v7 13/16] emul/ns16x50: add Kconfig options
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
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Denis,

Thank you for the patch.

Reviewed-by: Mykola Kvach <mykola_kvach@epam.com>


Best regards,
Mykola


On Tue, Sep 9, 2025 at 12:12=E2=80=AFAM <dmukhin@xen.org> wrote:
>
> From: Denis Mukhin <dmukhin@ford.com>
>
> Add initial Kconfig options configure NS16550-capable emulator.
>
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v6:
> - new patch
> ---
>  xen/common/emul/vuart/Kconfig | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
>
> diff --git a/xen/common/emul/vuart/Kconfig b/xen/common/emul/vuart/Kconfi=
g
> index ce1b976b7da7..9a49a6528b5a 100644
> --- a/xen/common/emul/vuart/Kconfig
> +++ b/xen/common/emul/vuart/Kconfig
> @@ -3,4 +3,23 @@ config VUART_FRAMEWORK
>
>  menu "UART Emulation"
>
> +config VUART_NS16X50
> +       bool "NS16550-compatible UART Emulator" if EXPERT
> +       depends on X86 && HVM
> +       select VUART_FRAMEWORK
> +       help
> +         In-hypervisor NS16550-compatible UART emulation.
> +
> +         Only one legacy PC COM port is emulated for domain with a certa=
in ID
> +         (set via 'vuart-domid=3D' command line setting).
> +
> +         This is strictly for testing purposes (such as early HVM guest =
console),
> +         and not appropriate for use in production.
> +
> +config VUART_NS16X50_DEBUG
> +       bool "Development: NS16550-compatible UART Emulator Debugging"
> +       depends on VUART_NS16X50 && DEBUG
> +       help
> +         Enable development debugging.
> +
>  endmenu
> --
> 2.51.0
>
>


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 06:00:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 06:00:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164314.1491314 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLEli-0006kz-Kc; Tue, 18 Nov 2025 06:00:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164314.1491314; Tue, 18 Nov 2025 06:00:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLEli-0006kn-HV; Tue, 18 Nov 2025 06:00:46 +0000
Received: by outflank-mailman (input) for mailman id 1164314;
 Tue, 18 Nov 2025 06: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=n9C8=52=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vLElh-0006JB-2C
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 06:00:45 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e92f1495-c443-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 07:00:40 +0100 (CET)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-59583505988so5584488e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 22: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: e92f1495-c443-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763445640; x=1764050440; 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=VH2WvzXiMYoh2E1E9Vmt2V7z9YyguiRZ31Wqr+ddZiE=;
        b=mYUtr7mt/lVUjvNQF9ytsY5ysun/+h7ozYlVpduMf2qKjXqhD5DLhRawH/pgf/n6iF
         4CKZqW4xAiNMOwX3Rk+T/AM2uyB3lFucF6Q2O6WSj9EaPoOE3w9bFlJi1vmnZ7WivPko
         dZyXXoJ/aVfvKKdyqQL7F3nIQPNlOY5DzpRPesNRgM+LTlnPjXs+eFp3zpBOAb+d4o2p
         8CjpcqyNa+nhFvY+jqUs/ueWGZxwvaJaKMRNRIm0uw5v3wxDhh22DGqkH06axkyCyP19
         fL87TRT4+uQ+xw30lzP4wXsZ7CarKC1WixLKbuqfMxUsj/YAqENItwuIMvbixsQ5XtBG
         e2Ow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763445640; x=1764050440;
        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=VH2WvzXiMYoh2E1E9Vmt2V7z9YyguiRZ31Wqr+ddZiE=;
        b=d4l3YVvZfsDvlq76yjHWUON2qlZcgZgcTv57/hJvmsppgfYflcdzeprHAqB/iZgYBc
         yzThNAH9VJ59ArJxS2fKN01CxyLQ1TWuvcMlLg+ZwDt2jUBJBHVmfTPSJAK+jUUdYxAe
         yekqNuVcwl0NvjLR+FPA5jAi1z3Un9X6D0zTjCUY59fai7ZxFHUtazI0NjIqAmdEvM4/
         hIIy+SMi/tO4MxsHPYVNqOL1DPQGutZI5SVkAnawwrFe/fcWfST7ct9spUX+YNni0xQD
         l2HhdtTGHR3APrqeSxo+xM9ULN8LkW/0w4ivA3Vzz0j4IjbApq0xCqCHizcWL7ECLJMs
         5Iig==
X-Gm-Message-State: AOJu0Yw6x9GxRG3nCyh9jXpMS6z7xw2Wt6Hgi6hqkh31aV0jrWZMDW1+
	a9kE4sznKJWOWpgRv7FL0ZDRQ1lSQlHL3D9WdhstPfOzF+sKQB7WN3DEsXaVe1LaXscsa1Jy3df
	9WKXw3XfDH/EsxrZaSchzFimo24B1ftQ=
X-Gm-Gg: ASbGncuAn8fEygnS6z2sVdmeljg8/1hRt/k12J5mDtVeBxGz68mo2Cb0RbRJd8WlI9X
	MI0xIEulevNyq/nDyCh6FWvr0bmrw2SKEN5oQOAz5IrWRAbkkSRECFWjOqMUfHdrN7azbhwek3f
	PkcgmDkHPJ5OCQksCeKErpbhRCeuGtw4rbf7cqxn+uyZsnZMEy0ExObNBfHS+0g6rqpadPUaiGN
	aSfzpre3M+zc33xavRPKWO6W12SkUe+COUs7buF3/eMg6XQcQ9+Fm0Mv9E1pUG4uPLT0A==
X-Google-Smtp-Source: AGHT+IEhnIXSSxPYhcY0neTxlyHZDADmVNVbCDzQa3tkMUh6vAVxQBqibLLARfkLnU86UWSWZeFQiQbzRudujMMTAPg=
X-Received: by 2002:a05:6512:1113:b0:595:7e4f:3eb2 with SMTP id
 2adb3069b0e04-59598751575mr743503e87.10.1763445639603; Mon, 17 Nov 2025
 22:00:39 -0800 (PST)
MIME-Version: 1.0
References: <20250908211149.279143-1-dmukhin@ford.com> <20250908211149.279143-13-dmukhin@ford.com>
In-Reply-To: <20250908211149.279143-13-dmukhin@ford.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 18 Nov 2025 08:00:00 +0200
X-Gm-Features: AWmQ_bl6OzXPtJeNBojF9QPHAp86dF_WXx9vdKlOmDW2CkN9ze4sOLtJSxzf6HQ
Message-ID: <CAGeoDV_g0kTbTMq4dSXWjzBD5Gjf2CVTxgPRWPZ23dRV3QCjzA@mail.gmail.com>
Subject: Re: [PATCH v7 12/16] emul/ns16550: implement dump_state() hook
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
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Denis,

Thank you for the patch.

On Tue, Sep 9, 2025 at 12:12=E2=80=AFAM <dmukhin@xen.org> wrote:
>
> From: Denis Mukhin <dmukhin@ford.com>
>
> Implement dump_state() vUART hook for debugging UART state machine over X=
en
> console. dump_state() prints state of all emulated registers (including
> state-less IIR) and state of RX/TX FIFOs.
>
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v6:
> - n/a
> ---
>  xen/common/emul/vuart/ns16x50.c | 59 ++++++++++++++++++++++++++++++++-
>  1 file changed, 58 insertions(+), 1 deletion(-)
>
> diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16=
x50.c
> index a92df6923aa5..c341f012d005 100644
> --- a/xen/common/emul/vuart/ns16x50.c
> +++ b/xen/common/emul/vuart/ns16x50.c
> @@ -640,6 +640,58 @@ static int ns16x50_io_read(
>      return rc;
>  }
>
> +static void cf_check ns16x50_dump_state(void *arg)
> +{
> +#ifdef CONFIG_VUART_NS16X50_DEBUG
> +    struct vuart_ns16x50 *vdev =3D arg;
> +    const struct domain *d =3D vdev->owner;
> +    const struct vuart_info *info =3D vdev->info;
> +    const struct xencons_interface *cons;
> +    const uint8_t *regs;
> +
> +    if ( !vdev )

Is this NULL check actually useful here? At this point we=E2=80=99ve alread=
y
dereferenced vdev (vdev->owner / vdev->info), so if arg could be NULL
we=E2=80=99d already be in UB. Either the hook never receives NULL (and we =
can
drop the check or turn it into ASSERT(vdev)), or the check should be
moved before the first dereference.

> +        return;
> +
> +    /* Allow printing state in case of a deadlock. */
> +    if ( !spin_trylock(&vdev->lock) )
> +        return;
> +
> +    cons =3D &vdev->cons;
> +    regs =3D &vdev->regs[0];
> +
> +    printk("Virtual " pr_prefix " (%s) I/O port 0x%04x IRQ#%d owner %pd\=
n",
> +            vdev->name, info->base_addr, info->irq, d);
> +
> +    printk("  RX FIFO size %ld in_prod %d in_cons %d used %d\n",
> +            ARRAY_SIZE(cons->in), cons->in_prod, cons->in_cons,
> +            cons->in_prod - cons->in_cons);
> +
> +    printk("  TX FIFO size %ld out_prod %d out_cons %d used %d\n",
> +            ARRAY_SIZE(cons->out), cons->out_prod, cons->out_cons,
> +            cons->out_prod - cons->out_cons);
> +
> +    printk("  %02"PRIx8" RBR %02"PRIx8" THR %02"PRIx8" DLL %02"PRIx8" DL=
M %02"PRIx8"\n",
> +            UART_RBR,

Should this be using cons->in / cons->out instead of cons?

> +            cons->in[MASK_XENCONS_IDX(cons->in_prod, cons)],
> +            cons->out[MASK_XENCONS_IDX(cons->out_prod, cons)],

As written, MASK_XENCONS_IDX() gets &vdev->cons (struct pointer), not the
RX/TX arrays themselves, so its size/index calculation will use the size
of the pointer/struct rather than the in[]/out[] ring size. I think this
should be:

    cons->in[MASK_XENCONS_IDX(cons->in_prod, cons->in)],
    cons->out[MASK_XENCONS_IDX(cons->out_prod, cons->out)],


Best regards,
Mykola


> +            regs[NS16X50_REGS_NUM + UART_DLL],
> +            regs[NS16X50_REGS_NUM + UART_DLM]);
> +
> +    printk("  %02"PRIx8" IER %02"PRIx8"\n", UART_IER, regs[UART_IER]);
> +
> +    printk("  %02"PRIx8" FCR %02"PRIx8" IIR %02"PRIx8"\n",
> +            UART_FCR, regs[UART_FCR], ns16x50_iir_get(vdev));
> +
> +    printk("  %02"PRIx8" LCR %02"PRIx8"\n", UART_LCR, regs[UART_LCR]);
> +    printk("  %02"PRIx8" MCR %02"PRIx8"\n", UART_MCR, regs[UART_MCR]);
> +    printk("  %02"PRIx8" LSR %02"PRIx8"\n", UART_LSR, regs[UART_LSR]);
> +    printk("  %02"PRIx8" MSR %02"PRIx8"\n", UART_MSR, regs[UART_MSR]);
> +    printk("  %02"PRIx8" SCR %02"PRIx8"\n", UART_SCR, regs[UART_SCR]);
> +
> +    spin_unlock(&vdev->lock);
> +#endif /* CONFIG_VUART_NS16X50_DEBUG */
> +}
> +
>  /*
>   * Emulate I/O access to ns16x50 register.
>   * Note, emulation always returns X86EMUL_OKAY, once I/O port trap is en=
abled.
> @@ -709,6 +761,9 @@ static int cf_check ns16x50_io_handle(
>
>      spin_unlock(&vdev->lock);
>
> +    if ( ns16x50_log_level >=3D 3 )
> +        ns16x50_dump_state(vdev);
> +
>      if ( rc =3D=3D 0 )
>          ns16x50_debug(vdev, "%c 0x%04x %d: DLAB=3D%d %02"PRIx32" 0x%08"P=
RIx32"\n",
>                        op, addr, size, dlab, reg, *data);
> @@ -844,6 +899,8 @@ static int cf_check ns16x50_put_rx(void *arg, char ch=
)
>      }
>
>      spin_unlock(&vdev->lock);
> +    if ( ns16x50_log_level >=3D 3 )
> +        ns16x50_dump_state(vdev);
>
>      return rc;
>  }
> @@ -853,7 +910,7 @@ static int cf_check ns16x50_put_rx(void *arg, char ch=
)
>      .compatible =3D "ns16550",            \
>      .alloc      =3D ns16x50_alloc,        \
>      .free       =3D ns16x50_free,         \
> -    .dump_state =3D NULL,                 \
> +    .dump_state =3D ns16x50_dump_state,   \
>      .put_rx     =3D ns16x50_put_rx,       \
>  }
>
> --
> 2.51.0
>
>


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 06:00:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 06:00:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164317.1491326 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLElk-000757-Vs; Tue, 18 Nov 2025 06:00:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164317.1491326; Tue, 18 Nov 2025 06:00:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLElk-00074u-PH; Tue, 18 Nov 2025 06:00:48 +0000
Received: by outflank-mailman (input) for mailman id 1164317;
 Tue, 18 Nov 2025 06:00: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=n9C8=52=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vLEli-00062J-Ud
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 06:00:46 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ecc0c658-c443-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 07:00:46 +0100 (CET)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-59578e38613so5469052e87.2
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 22:00: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: ecc0c658-c443-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763445646; x=1764050446; 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=91oMGXh1mG+b/qR2D7O5Na00nBE0+P0/h/TFyb+qF7o=;
        b=c7xJKs0jd+ogyY4WI48zHD0/yd66t+XQEMaluiu6JoPIwAkYoBZh62IntuRy50PCH/
         OoCdPIr62/FhNGL5qbypEDCs7wB0Rt8dSY6qjZ5yoBvYYOeygShqc8Y5YnylpwAISHYV
         yd7KLwqQsV9Ov13xt017aRiYw009/czRjbFKPjCFQe05jwit/oqFbnNsggNgNIujvjRY
         KBnaVIBoMYVqVw8nyouG+lOk/hAQ2UGEEser/MvnxcyJvX/zmuqg3DHA4gUVJC4XAemO
         TK4qwt7Toa8x7wkGCmCrf+8KXFmlCHG1ExvKtRkNrzKXB/Ar2gzl5wj0q4DDtZIETj4/
         7ktQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763445646; x=1764050446;
        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=91oMGXh1mG+b/qR2D7O5Na00nBE0+P0/h/TFyb+qF7o=;
        b=jX8MrYa2+9geljI0dVPkOtBIzPY4Lxit38bTQk49dv0YoqVfzavtQmnvljzyagr7Sw
         6X7EL1Yx7YwExl3Mx7VWhlZE6exjPaP0OS3Wn+Dtg4oKc47+X06mKYwvNYIKA1v8Chmz
         4nVcU8Ln/c8EIttt92FGZU12qNjcqF3ojoiIDEh1ecioRCPEc6rPEbixKWqmS+gnyvOF
         m+oFuernqqmXEUFTWJAyCqVUzVNRGFiyn08mXd4H6jAhJJ86MGaHjVkBe8D8Y/tW4Aq2
         fWeDyPEWBBhLgPnto4POQ1BQM82tRxaWeMcLCRPi0o7HnGg4q68N8yDI68a4A6yafXB+
         IhSg==
X-Gm-Message-State: AOJu0YzuuV2bfn1mO345f61+M8b5wCZI8BeOGuNbjxNkpHJ4SANZcB/p
	xGbofOFQcbyNARxiao+Ms/3CsZytgX4xmJaFSTCQRb5KmZUoU/rzaxEYEW1R5uc1eK+Rse0YSty
	t0jro3NAjMy4rULoxCbL2cCXT/02KGZI8JtKl
X-Gm-Gg: ASbGncurqpuAuidg8AM98EHmczc/kwllM9hZ3mEn+UsO7BHF9CeBLyQB40NCDTsYOdF
	AT5jdw+cYOjPEwaRUXCuH0dTnXpcrbmrEsergTiI/dKgoRg0mFo+JMuTNAcTSbDCKpzBdCs6NgU
	Aa71+1JpSdxsMYqfilvKttRkQu6dIVa9E/367D4nVbzoBPjsheCfMa/O0mTb0sGN8rX6KGjE6EP
	rimAGqQwr+F4PpyFVrjEjTzxnlV5EtIraq7xONyU2AN4cKKo9J9qvvPldhJTIfFOQoRPA==
X-Google-Smtp-Source: AGHT+IFYJDxXNCtWIbUBdfdDUvuVfxT9wDBY2g6MdNFIYU0VdVXl2nhYbn+IdjBDZG6A+iB0pvdkW4WYkKiQDVKKBiA=
X-Received: by 2002:a05:6512:3e0a:b0:591:ec0f:fa92 with SMTP id
 2adb3069b0e04-5958419e9afmr5772873e87.3.1763445645665; Mon, 17 Nov 2025
 22:00:45 -0800 (PST)
MIME-Version: 1.0
References: <20250908211149.279143-1-dmukhin@ford.com> <20250908211149.279143-12-dmukhin@ford.com>
In-Reply-To: <20250908211149.279143-12-dmukhin@ford.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 18 Nov 2025 08:00:00 +0200
X-Gm-Features: AWmQ_bkjUtXQctnnFd0Dy-YGJWqfEklliQtRnxhv8yfhgt7EZa_GS85Uk2mGQGk
Message-ID: <CAGeoDV-LLA3XQMORFgLU3fe8-Ueu9tJMFoAmmxmg4Oh80cK3Xw@mail.gmail.com>
Subject: Re: [PATCH v7 11/16] emul/ns16x50: implement FCR register (write-only)
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
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Denis,

Thank you for the patch.

On Tue, Sep 9, 2025 at 1:06=E2=80=AFAM <dmukhin@xen.org> wrote:
>
> From: Denis Mukhin <dmukhin@ford.com>
>
> Add emulation logic for FCR register.
>
> Note, that does not hook FIFO interrupt moderation to the FIFO management
> code for simplicity.
>
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v6:
> - dropped UART_IIR_THR handling from UART_FCR_CLTX case
> ---
>  xen/common/emul/vuart/ns16x50.c | 27 +++++++++++++++++++++++++++
>  1 file changed, 27 insertions(+)
>
> diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16=
x50.c
> index 137ce08f4e1d..a92df6923aa5 100644
> --- a/xen/common/emul/vuart/ns16x50.c
> +++ b/xen/common/emul/vuart/ns16x50.c
> @@ -374,6 +374,33 @@ static int ns16x50_io_write8(
>              regs[UART_IER] =3D val & UART_IER_MASK;
>              break;
>
> +        case UART_FCR: /* WO */
> +            if ( val & UART_FCR_RSRVD0 )
> +                ns16x50_warn(vdev, "FCR: attempt to set reserved bit: %x=
\n",
> +                             UART_FCR_RSRVD0);
> +
> +            if ( val & UART_FCR_RSRVD1 )
> +                ns16x50_warn(vdev, "FCR: attempt to set reserved bit: %x=
\n",
> +                             UART_FCR_RSRVD1);

Do we really need these checks and prints?

> +
> +            if ( val & UART_FCR_CLRX )
> +            {
> +                ns16x50_fifo_rx_reset(vdev);

Note from the NS16550A datasheet:
Bit 0: This bit must be a 1 when other FCR bits are written to, or they
will not be programmed.

> +                regs[UART_LSR] &=3D ~UART_LSR_DR;
> +            }
> +
> +            if ( val & UART_FCR_CLTX )
> +                ns16x50_fifo_tx_reset(vdev);
> +
> +            if ( val & UART_FCR_ENABLE )
> +                val &=3D UART_FCR_ENABLE | UART_FCR_DMA | UART_FCR_TRG_M=
ASK;

Why can=E2=80=99t we just write back val as is, but with CLTX/CLRX cleared =
when
UART_FCR_ENABLE is set? For example:

    regs[UART_FCR] =3D val & ~(UART_FCR_CLTX | UART_FCR_CLRX);

> +            else
> +                val =3D 0;

If we take the above into account, I think we shouldn=E2=80=99t change the
content of FCR in the case where bit 0 is 0.

Also, from the spec:
=E2=80=9CResetting FCR0 will clear all bytes in both FIFOs.=E2=80=9D


Best regards,
Mykola



> +
> +            regs[UART_FCR] =3D val;
> +
> +            break;
> +
>          case UART_LCR:
>              regs[UART_LCR] =3D val;
>              break;
> --
> 2.51.0
>
>


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 06:00:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 06:00:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164324.1491335 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLElo-0007Mb-3o; Tue, 18 Nov 2025 06:00:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164324.1491335; Tue, 18 Nov 2025 06:00:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLElo-0007MQ-0t; Tue, 18 Nov 2025 06:00:52 +0000
Received: by outflank-mailman (input) for mailman id 1164324;
 Tue, 18 Nov 2025 06:00: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=n9C8=52=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vLElm-00062J-H3
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 06:00:50 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eedb866f-c443-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 07:00:49 +0100 (CET)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-37b983fbd45so41441461fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 22:00: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: eedb866f-c443-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763445649; x=1764050449; 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=pwD/qxM4klvXk5crZeSiWKD838Fjb9t3B6KR63KDOxs=;
        b=WhcTjdTEQIDtxP5NaiWXXBeamdpvHG5IvEkLCPQnAHsEQxEWmhIL8YQGox/mIJ8lXT
         eQcmh438XbYCSVBozxcvKbyoqvokYQNDTl7PQFE4RAUSXP9QE5L3B9q1N6Pc2hRS097p
         ASOKxR7tuQhvbummom7SS/e/rvj78VMlBOPMtz25BmBdlX/9mdpzpO3yxykknrnXbsCR
         yPa7vxZMF5hzhctR8grYteso9wJla9Q5NPmxQoEDjowc4L6U71mwOoTmcinxh9nfWSLt
         vNke/ZchSaoknl08q4iIkO7J77IKuVerDYHXlx/Ybz8tlzQxewv8Vsu1gUcWfaWP9+xQ
         nsQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763445649; x=1764050449;
        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=pwD/qxM4klvXk5crZeSiWKD838Fjb9t3B6KR63KDOxs=;
        b=HH7IQ7g1qiTblRNb8MZAPw1KAPimlY9eMCYFi3WmZ7oNQrHnU4IidpppmJYt+u19wf
         ze+AHSbx55EkTUIFl3kI3kAboiQ2eOeww0svHnDO27pj5/luVXFrl/8Gz6YaICaTCJLS
         D49ZnH8Ka2PX6R3sete4z9QKuwPprl63BvHGWBMbB6VDP0tn3t3eta4vIN+CSeQR4JN1
         dJ5hADJ5fo3t27Vb3TS72f3sU2WaBCuB9aDdJCTVfild4wbDuiYEcQ9Jppso9e2nVC5E
         IQQTV2JviTG2Hp/QZgdAeePyXS7rdnneWI/NaU/FREXHuo2IWP4AExIM+NISC/PPg9Fp
         SXeQ==
X-Gm-Message-State: AOJu0YyTQgEUgTMI4yhMjBhDXYD0T78WWuvxbOPTgUsktpZ1e0y/2yGR
	gBxYEcYAWvW4HA8hBuHCPqVl+F1dc8LTlIJcRhe+rN8RTVnzWaHJVXCpxKOEU71S32CzeUBxfoy
	QTpt3CG/JzyncZywd0TcZrd1YmGH03SM=
X-Gm-Gg: ASbGncuEt/UgW8BfHgdJeqWh8wj4fQYSDxyZWiC5bnUT/jEqrES0DnrHI16zdNcNWGm
	c1ll4EN5MSgNVCgaLUTuWui4G0t7CUHivframcQZz/oNjXG66SJJE1BmAADGGzzntrSF3VEBw+1
	KoMGl+DoaMqxSXJUST32FmbFf/wXyj20s9kP/bwcqc0+bniPBoDsVsX10DRqC9p/F+f6wqLzhH0
	kwWO8ED9oGevniQPAw2CdwEywcFJa7iGo8Qw3Mv2bmCooQbENJNIS1A5cuuSlKx06eydQ==
X-Google-Smtp-Source: AGHT+IG5LmDgdKQsDcLy9LqI+V6sMxTD1zs706xf2JYyNUERO8avigWpnhyUFxAIY0UUFWJjPjD1gCD0b07wXTfzJBk=
X-Received: by 2002:a05:6512:15a2:b0:592:f77d:88f7 with SMTP id
 2adb3069b0e04-595842262bfmr4946332e87.52.1763445648818; Mon, 17 Nov 2025
 22:00:48 -0800 (PST)
MIME-Version: 1.0
References: <20250908211149.279143-1-dmukhin@ford.com> <20250908211149.279143-11-dmukhin@ford.com>
In-Reply-To: <20250908211149.279143-11-dmukhin@ford.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 18 Nov 2025 08:00:00 +0200
X-Gm-Features: AWmQ_bl0qdrp4_c627SxShM-Zkf7VGdwsG4R77fxQ6BvA2PLF4sQmFhAEV5w9vU
Message-ID: <CAGeoDV9+6fLR0ivJ0UisWk7gtqYehpnfDa_p2Kk0Ty7Czkbj0w@mail.gmail.com>
Subject: Re: [PATCH v7 10/16] emul/ns16x50: implement THR register
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
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Denis,

Thank you for the patch.

On Tue, Sep 9, 2025 at 1:26=E2=80=AFAM <dmukhin@xen.org> wrote:
>
> From: Denis Mukhin <dmukhin@ford.com>
>
> Add THR register emulation to the I/O port handlder.
>
> Add TX FIFO management code since THR depends on TX FIFO.
>
> TX FIFOs is not emulated as per UART specs for simplicity (not need to em=
ulate
> baud rate). Emulator does not emulate NS8250 (no FIFO), NS16550a (16 byte=
s) or
> NS16750 (64 bytes).
>
> TX FIFOs is emulated by using xencons_interface which conveniently provid=
es
> primitives for buffer management and later can be used for inter-domain
> communication similarly to vpl011.
>
> Account for DLL =3D=3D 0: in this case, disable transmitter.
>
> Add UART_IIR_THR interrupt reason handling since it depends on THR regist=
er
> access.
>
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v6:
> - added DLL =3D=3D 0 case handling as per Mykola's suggestion
> - dropped UART_IIR_THR clearing in UART_IIR register emulation in ns16x50=
_io_write8()
> - simplified UART_IIR_THR handling
> - updated ns16x50_iir_check_thr()
> ---
>  xen/common/emul/vuart/ns16x50.c | 82 ++++++++++++++++++++++++++++++++-
>  1 file changed, 81 insertions(+), 1 deletion(-)
>
> diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16=
x50.c
> index 250411e0a7d8..137ce08f4e1d 100644
> --- a/xen/common/emul/vuart/ns16x50.c
> +++ b/xen/common/emul/vuart/ns16x50.c
> @@ -149,6 +149,66 @@ static int ns16x50_fifo_rx_putchar(struct vuart_ns16=
x50 *vdev, char c)
>      return rc;
>  }
>
> +static bool ns16x50_fifo_tx_full(const struct vuart_ns16x50 *vdev)
> +{
> +    const struct xencons_interface *cons =3D &vdev->cons;
> +
> +    return cons->out_prod - cons->out_cons =3D=3D ARRAY_SIZE(cons->out);
> +}
> +
> +static void ns16x50_fifo_tx_reset(struct vuart_ns16x50 *vdev)
> +{
> +    struct xencons_interface *cons =3D &vdev->cons;
> +
> +    cons->out_cons =3D cons->out_prod;
> +}
> +
> +/*
> + * Flush cached output to Xen console.
> + */
> +static void ns16x50_fifo_tx_flush(struct vuart_ns16x50 *vdev)
> +{
> +    struct xencons_interface *cons =3D &vdev->cons;
> +    struct domain *d =3D vdev->owner;
> +    XENCONS_RING_IDX i, n, len =3D cons->out_prod - cons->out_cons;
> +
> +    ASSERT(len <=3D ARRAY_SIZE(cons->out));
> +    if ( !len )
> +        return;
> +
> +    i =3D MASK_XENCONS_IDX(cons->out_cons, cons->out);
> +    n =3D min_t(XENCONS_RING_IDX, len, ARRAY_SIZE(cons->out) - i);
> +    if ( n )
> +        guest_printk(d, guest_prefix "%.*s", n, &cons->out[i]);
> +
> +    i =3D 0;
> +    n =3D len - n;
> +    if ( n )
> +        guest_printk(d, guest_prefix "%.*s", n, &cons->out[i]);

ns16x50_fifo_tx_flush() splits wrapped output into two guest_printk()
calls, so the log gets two prefixes for a single line:
    (d1) PART1(d1) PART2

Could we linearize the wrapped buffer and emit a single guest_printk()
(e.g. by printing both spans in one format string) to keep just one prefix?


Best regards,
Mykola


> +
> +    cons->out_cons +=3D len;
> +}
> +
> +/*
> + * Accumulate guest OS output before sending to Xen console.
> + */
> +static void ns16x50_fifo_tx_putchar(struct vuart_ns16x50 *vdev, char ch)
> +{
> +    struct xencons_interface *cons =3D &vdev->cons;
> +
> +    if ( !is_console_printable(ch) )
> +        return;
> +
> +    if ( !ns16x50_fifo_tx_full(vdev) )
> +    {
> +        cons->out[MASK_XENCONS_IDX(cons->out_prod, cons->out)] =3D ch;
> +        cons->out_prod++;
> +    }
> +
> +    if ( ch =3D=3D '\n' || ch =3D=3D '\0' || ns16x50_fifo_tx_full(vdev) =
)
> +        ns16x50_fifo_tx_flush(vdev);
> +}
> +
>  static bool ns16x50_is_running(const struct vuart_ns16x50 *vdev)
>  {
>      /* DLL set to 0 disables serial communication. */
> @@ -172,7 +232,7 @@ static bool cf_check ns16x50_iir_check_rda(const stru=
ct vuart_ns16x50 *vdev)
>
>  static bool cf_check ns16x50_iir_check_thr(const struct vuart_ns16x50 *v=
dev)
>  {
> -    return false;
> +    return !ns16x50_fifo_tx_full(vdev);
>  }
>
>  static bool cf_check ns16x50_iir_check_msi(const struct vuart_ns16x50 *v=
dev)
> @@ -294,6 +354,22 @@ static int ns16x50_io_write8(
>      {
>          switch ( reg )
>          {
> +        case UART_THR:
> +            if ( !ns16x50_is_running(vdev) )
> +                break;
> +
> +            if ( regs[UART_MCR] & UART_MCR_LOOP )
> +            {
> +                if ( ns16x50_fifo_rx_putchar(vdev, val) )
> +                    regs[UART_LSR] |=3D UART_LSR_OE;
> +
> +                regs[UART_LSR] |=3D UART_LSR_DR;
> +            }
> +            else
> +                ns16x50_fifo_tx_putchar(vdev, val);
> +
> +            break;
> +
>          case UART_IER:
>              regs[UART_IER] =3D val & UART_IER_MASK;
>              break;
> @@ -646,6 +722,10 @@ static void cf_check ns16x50_deinit(void *arg)
>      struct vuart_ns16x50 *vdev =3D arg;
>
>      ASSERT(vdev);
> +
> +    spin_lock(&vdev->lock);
> +    ns16x50_fifo_tx_flush(vdev);
> +    spin_unlock(&vdev->lock);
>  }
>
>  static void * cf_check ns16x50_alloc(struct domain *d, const struct vuar=
t_info *info)
> --
> 2.51.0
>
>


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 06:01:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 06:01:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164335.1491344 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLEm1-0007wo-Gl; Tue, 18 Nov 2025 06:01:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164335.1491344; Tue, 18 Nov 2025 06: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 1vLEm1-0007wd-EB; Tue, 18 Nov 2025 06:01:05 +0000
Received: by outflank-mailman (input) for mailman id 1164335;
 Tue, 18 Nov 2025 06:01: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=n9C8=52=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vLEm0-0006JB-Ge
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 06:01:04 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f5f3dc2e-c443-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 07:01:01 +0100 (CET)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-37b8aa5adf9so45004591fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 22:01: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: f5f3dc2e-c443-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763445661; x=1764050461; 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=d1ntIy5eBe+qUgxMKngVbEIrjiJ49U9U9JIlEAAQJcw=;
        b=UsNFMb+qyVS+nITFT2RzncWkCOZu1APdLB6AT/6bRQoUYWwHCUZ3iYDoKreRgSQq0X
         jlJSh4PPS73hmTdm3N6ASMDEuFTmFmmZ23LzGU+fPhx/MtnrI0NcLPiYON7xAlE+Qz5i
         3e2bh3j8xOZKgeYBoXLhXNrL3SiwfWhNUr3SRMOxIN2/oYUTuaxFg3+QPUKP2hsV+fs/
         iDXfxkZTWH8qMflxHwCeZ9KtPb2Jqu8MOYDnRbRbmrNs0sj64hd+aTyE4sR48WTtfBYJ
         1Bx3XkDgofEHpU9XEq2YTNkh4bMxW58ENWItDymq1rB441UEXHLolwjRpPwmCHfoV6pT
         dUgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763445661; x=1764050461;
        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=d1ntIy5eBe+qUgxMKngVbEIrjiJ49U9U9JIlEAAQJcw=;
        b=IMiBP+f6B5bPYZdmo5/CwXm85vUlNKid5tf1waFj3QrTKDvkMIxCC5pkRGEzYHWoR+
         wCHUHaJrjN8I3LJcsfgXnqI+KVpOijJ9+JKvYSPhzqgAdkDol7LquBZocQW3zF98TRvl
         ho5yOr21Oa71zaArwZ/ozju6YRFbeJQDq3C0hXymyr/rk4wSVH2pRMdqUG7wlFfO0VUG
         QLDVJlaGxiDEKvHAdTJLDbby2aI9JFf6xk3TiMOTBm5z2x1lJR5rHh4LVx5m6mveQMbg
         lrj+C2zsX4ut0zfvBAYRVlstESnYIZoq1mMHLJu6pkqCDiQP3K9N/Modz61P5V0Gvh6h
         4FhQ==
X-Gm-Message-State: AOJu0Yxx0Z1txSgr0wP7Nm9xaGPk++lUBdObLjZModSql4PI1D06MrCx
	UCFWbDePRrIyX6oohXYQRC299sqzYcgQMlwcnpik3JJTM+r18ZkvphAg7z/yvCQ58o2aZBZIA6r
	jw31SMoDeX0vFl9F0CTghQFZ46FxywKY=
X-Gm-Gg: ASbGncsSN+xLPqALyKrYXR2UsEFFDqCcw1X8Qi1HlzcUq5tW+AQek7P+0hR7ITzmdRR
	xo0qrT7dUkzkMLKNBdclXd3NGkQ6YxwsCTsS99AczCXov6kyFNQbz4zQ6NlXD3mAFiAofJVGyzw
	tOtz8KVqo46XbmUheq+udOTXXqRW/OiWfQCR6rjpkhm99XoGsiOxH1/jWuDv6IL1S3bM/yepXcE
	9FzA2VIY7JXCCxsobACQ/l+ecyyY0ae/qXKGTCa574ceAMG2VaTJ28rSYQ=
X-Google-Smtp-Source: AGHT+IE5tjKlyQJif/PGnnJ4Oo+LDaSwfImoUn/6k84wNkC1ed0BUTobp3AUAFNgPNxvgb6A7hah6TESAJbVPLVbMoY=
X-Received: by 2002:a2e:9692:0:b0:37a:5cb7:968f with SMTP id
 38308e7fff4ca-37babbf7f73mr36056991fa.29.1763445660873; Mon, 17 Nov 2025
 22:01:00 -0800 (PST)
MIME-Version: 1.0
References: <20250908211149.279143-1-dmukhin@ford.com> <20250908211149.279143-16-dmukhin@ford.com>
In-Reply-To: <20250908211149.279143-16-dmukhin@ford.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 18 Nov 2025 08:00:00 +0200
X-Gm-Features: AWmQ_bmsO5IClkL5cQh1kN8Rt5vg-ViLaCG4yGSTxfQRpRriOqswuRSnkjGQtCQ
Message-ID: <CAGeoDV8WORKLRGPhGnsXw_VtRh2E22ugj9wbQXvfRiHFfCmJ0Q@mail.gmail.com>
Subject: Re: [PATCH v7 15/16] xen/domain: allocate d->irq_caps before
 arch-specific initialization
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
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Denis,

Thank you for the patch.

On Tue, Sep 9, 2025 at 12:12=E2=80=AFAM <dmukhin@xen.org> wrote:
>
> From: Denis Mukhin <dmukhin@ford.com>
>
> Make sure that NS16550 emulator does not share virtual device IRQ with th=
e
> physical one. This is needed for enabling NS16550 emulator for PVH hwdom
> (dom0).
>
> To do that, move per-domain interrupt rangeset allocation before arch-spe=
cific
> code. Add irqs_setup_access() to setup the initial rangeset.
>
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v6:
> - n/a
> ---
>  xen/arch/x86/dom0_build.c       | 1 -
>  xen/arch/x86/hvm/dom0_build.c   | 7 +++++++
>  xen/arch/x86/include/asm/irq.h  | 2 ++
>  xen/arch/x86/irq.c              | 8 ++++++++
>  xen/arch/x86/pv/dom0_build.c    | 3 +++
>  xen/common/domain.c             | 8 ++++++--
>  xen/common/emul/vuart/ns16x50.c | 9 +++++++++
>  7 files changed, 35 insertions(+), 3 deletions(-)
>
> diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
> index 26202b33345c..9dc87efbf3e8 100644
> --- a/xen/arch/x86/dom0_build.c
> +++ b/xen/arch/x86/dom0_build.c
> @@ -442,7 +442,6 @@ int __init dom0_setup_permissions(struct domain *d)
>
>      rc |=3D iomem_permit_access(d, 0UL,
>                                PFN_DOWN(1UL << domain_max_paddr_bits(d)) =
- 1);
> -    rc |=3D irqs_permit_access(d, 1, nr_irqs_gsi - 1);
>
>      /* Local APIC. */
>      if ( mp_lapic_addr !=3D 0 )
> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.=
c
> index 5551f9044836..245a42dec9aa 100644
> --- a/xen/arch/x86/hvm/dom0_build.c
> +++ b/xen/arch/x86/hvm/dom0_build.c
> @@ -1348,6 +1348,13 @@ int __init dom0_construct_pvh(const struct boot_do=
main *bd)
>           */
>          pvh_setup_mmcfg(d);
>
> +        rc =3D irqs_setup_access(d);
> +        if ( rc )
> +        {
> +            printk("%pd unable to setup IRQ rangeset: %d\n", d, rc);
> +            return rc;
> +        }
> +
>          /*
>           * Setup permissions early so that calls to add MMIO regions to =
the
>           * p2m as part of vPCI setup don't fail due to permission checks=
.
> diff --git a/xen/arch/x86/include/asm/irq.h b/xen/arch/x86/include/asm/ir=
q.h
> index 8c81f66434a8..8bffec3bbfee 100644
> --- a/xen/arch/x86/include/asm/irq.h
> +++ b/xen/arch/x86/include/asm/irq.h
> @@ -231,4 +231,6 @@ int allocate_and_map_gsi_pirq(struct domain *d, int i=
ndex, int *pirq_p);
>  int allocate_and_map_msi_pirq(struct domain *d, int index, int *pirq_p,
>                                int type, struct msi_info *msi);
>
> +int irqs_setup_access(struct domain *d);
> +
>  #endif /* _ASM_HW_IRQ_H */
> diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
> index 556134f85aa0..079277be719d 100644
> --- a/xen/arch/x86/irq.c
> +++ b/xen/arch/x86/irq.c
> @@ -3046,3 +3046,11 @@ int allocate_and_map_msi_pirq(struct domain *d, in=
t index, int *pirq_p,
>
>      return ret;
>  }
> +
> +int irqs_setup_access(struct domain *d)
> +{
> +    if ( is_hardware_domain(d) )
> +        return irqs_permit_access(d, 1, nr_irqs_gsi - 1);
> +
> +    return 0;
> +}
> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
> index 2b8b4d869ee7..1a092b802833 100644
> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c
> @@ -1037,6 +1037,9 @@ static int __init dom0_construct(const struct boot_=
domain *bd)
>      rc =3D ioports_setup_access(d);
>      BUG_ON(rc !=3D 0);
>
> +    rc =3D irqs_setup_access(d);
> +    BUG_ON(rc !=3D 0);
> +
>      rc =3D dom0_setup_permissions(d);
>      BUG_ON(rc !=3D 0);
>
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 775c33928585..edf76b02e1a1 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -952,6 +952,11 @@ struct domain *domain_create(domid_t domid,
>      radix_tree_init(&d->pirq_tree);
>  #endif
>
> +    err =3D -ENOMEM;
> +    d->irq_caps =3D rangeset_new(d, "Interrupts", 0);
> +    if ( !d->irq_caps )
> +        goto fail;
> +
>      if ( (err =3D arch_domain_create(d, config, flags)) !=3D 0 )
>          goto fail;
>      init_status |=3D INIT_arch;
> @@ -961,8 +966,7 @@ struct domain *domain_create(domid_t domid,
>
>      err =3D -ENOMEM;
>      d->iomem_caps =3D rangeset_new(d, "I/O Memory", RANGESETF_prettyprin=
t_hex);
> -    d->irq_caps   =3D rangeset_new(d, "Interrupts", 0);
> -    if ( !d->iomem_caps || !d->irq_caps )
> +    if ( !d->iomem_caps )
>          goto fail;
>
>      if ( (err =3D xsm_domain_create(XSM_HOOK, d, config->ssidref)) !=3D =
0 )
> diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16=
x50.c
> index ea34c3ae598a..6bd58ba5540b 100644
> --- a/xen/common/emul/vuart/ns16x50.c
> +++ b/xen/common/emul/vuart/ns16x50.c
> @@ -797,6 +797,15 @@ static int ns16x50_init(void *arg)
>          return rc;
>      }
>
> +    /* Disallow sharing physical IRQ */

Should this be undone on teardown and error paths?


Best regards,
Mykola


> +    rc =3D irq_deny_access(d, info->irq);
> +    if ( rc )
> +    {
> +        ns16x50_err(info, "virtual IRQ#%d: conflict w/ physical IRQ: %d\=
n",
> +                    info->irq, rc);
> +        return rc;
> +    }
> +
>      /* NB: report 115200 baud rate. */
>      vdev->regs[NS16X50_REGS_NUM + UART_DLL] =3D divisor & UINT8_MAX;
>      vdev->regs[NS16X50_REGS_NUM + UART_DLM] =3D (divisor >> 8) & UINT8_M=
AX;
> --
> 2.51.0
>
>


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 06:11:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 06:11:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164380.1491355 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLEw6-0002AZ-Dp; Tue, 18 Nov 2025 06:11:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164380.1491355; Tue, 18 Nov 2025 06: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 1vLEw6-0002AS-A9; Tue, 18 Nov 2025 06:11:30 +0000
Received: by outflank-mailman (input) for mailman id 1164380;
 Tue, 18 Nov 2025 06: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=n9C8=52=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vLEmS-00062J-2V
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 06:01:32 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 07a61cc3-c444-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 07:01:31 +0100 (CET)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-59577c4c7c1so5702532e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 22:01: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: 07a61cc3-c444-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763445691; x=1764050491; 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=BgZr8IRTp2+3z7NzYoA2QTxxVVOaI5lJNKU3i0mTay4=;
        b=Qa2CfRvu1khH1P634AtfCYY4yoE1J+qXZxIYMVc18i3Dt+suPs3ooLV2vCLoy9Oou3
         T5oKhk/ysXWFwZyiazwFzBsh6zn6rPK1vNMIsKfsXvbP7wikYMwzUx+Mzoa9b3cZ+YPy
         qlZGUrzzOW8Srzs/ofCa1T7xrfGDtb+aerSly739wfTIzHSv4f2K2qOyGxxVc2wr9nYd
         JLKERM8w+0ClOxrxau39dLE8LjQlwR8bg0hrb5dfoZuGt/Dnz6czof96Kf0tGIJBKV3U
         uleeR7Uf7LTamQomhdq0oR/aVXdU1qVOHB+OtJhyPm1xiDzpbwGV1FSBJHdhTVtw8p8T
         XB7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763445691; x=1764050491;
        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=BgZr8IRTp2+3z7NzYoA2QTxxVVOaI5lJNKU3i0mTay4=;
        b=CNH6IFqYQ+Bhq4Ja3h7cMpX55T9fKUUEjEJ9+nTRPuUuwSw6PdoUtnKwM9gHhNKb8n
         fVn/oneVk+pIvhYyXOECnBXQpzWNJeg8TI34kH0aRTuAtecdXSiCSO84rPQ57l2Mo8gv
         cPzEm0xvOrZsuXDhYPYbCYS5eeBsZobUxupf/NOUgmtByJbJ/eOHmqzKZq4cZmF0jxi4
         V4qGjRhBL8kcGWxAgOp9dxw91C60WYI2onL7yRyh6kt4cPWg6BcoxJF1ZAyW6H7xe3fC
         N5SAOad2CkAO7HU8UzSkEVgkgDEahzowtvMxBeaorda7ucUqw7Tv2XtYVy0Rtk7qpeUI
         XKdg==
X-Forwarded-Encrypted: i=1; AJvYcCUWOFfAkwZtUdieP0+TZa3OHKfqze/VAELZ+RLqypSEm/evGdRuAEjkkEbDHkoAmLYkq/wQ65J7MgE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx1gaMtYVLTPLYqqQCWb5mVcIgda1gjaseklYjuwyjSO0B6pTOH
	viWIRNAtcsnR08Ddyf88IJY/2Uvgr8b4k1aYG9ingA9slsB1NhDBTj8WFnAtdl6mq8AxBKoiGlz
	c5ggOKcA7/YVnB+0qXF6fCuFmDW1Y/Ow=
X-Gm-Gg: ASbGnctCJ2BTddo0AzZir4uzJyLMZNVdYtyz0ZGR4KUVuAgYM1XtPqW+QpxxZPAnpW4
	eziIhTtnWHFXBHF3AK3IPAB4k/VR4PxfZxKeFYHGMjskkNH2wpakNufoCjhhDb2lrjH5SaO9VYF
	7Eq+WCaeXyn2+F6hjVfj3+jd4yUgOUjG3CLaDOZ0WLJ/EDw0cOvBpmncUH5eCV2CjkLG8iS0QjS
	4mXhYcDjctoIHmpz5bZdvdiGLKo/2eZ36fMcm3/T3ocbCz0yKLTtstfGEg=
X-Google-Smtp-Source: AGHT+IG+umzn6cqy64Ler0ptFKcByweA0xSdQHexD4Ox5iuQP6iTxmz/WdxVGyVUXLNFS6zi27PC1whOscv+L+U4/LQ=
X-Received: by 2002:a05:6512:3d08:b0:594:7718:ecb7 with SMTP id
 2adb3069b0e04-5959874ca7dmr689007e87.9.1763445690702; Mon, 17 Nov 2025
 22:01:30 -0800 (PST)
MIME-Version: 1.0
References: <20250908211149.279143-1-dmukhin@ford.com> <20250908211149.279143-10-dmukhin@ford.com>
In-Reply-To: <20250908211149.279143-10-dmukhin@ford.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 18 Nov 2025 08:00:00 +0200
X-Gm-Features: AWmQ_blDRxuIjcdNNGZYUb1J04PxSw2vQyo3hAulPCdVO09CQGivZ_HJA6bftjA
Message-ID: <CAGeoDV_jpCxvgk-5g5sh-HY1qX4FFCSOY8nQCApr3-L4TN8npQ@mail.gmail.com>
Subject: Re: [PATCH v7 09/16] emul/ns16x50: implement RBR register
To: dmukhin@xen.org, 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
Content-Type: text/plain; charset="UTF-8"

Hi Denis,

Thank you for the patch.

On 09/09/2025 00:11, dmukhin@xen.org wrote:
> From: Denis Mukhin <dmukhin@ford.com>
>
> Add RBR register emulation to the I/O port handlder.
>
> Add RX FIFO management code since RBR depends on RX FIFO.
>
> RX FIFO is not emulated as per UART specs for simplicity (not need to emulate
> baud rate). Emulator does not emulate NS8250 (no FIFO), NS16550a (16 bytes) or
> NS16750 (64 bytes).
>
> RX FIFO is emulated by means of using xencons_interface which conveniently
> provides primitives for buffer management and later can be used for
> inter-domain communication similarly to vpl011.
>
> Account for DLL == 0: in this case, disable receiver.
>
> Add UART_LSR_DR handling since it depends on RBR register access.
>
> Finally, implement put_rx() vUART hook for placing a character into the
> emulated RX FIFO from console driver. That implements physical console
> forwarding to the guest OS over emulated NS16550.
>
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v6:
> - added DLL == 0 case handling as per Mykola's suggestion
> ---
>   xen/common/emul/vuart/ns16x50.c | 134 +++++++++++++++++++++++++++++++-
>   1 file changed, 132 insertions(+), 2 deletions(-)
>
> diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
> index fdc20124d4c9..250411e0a7d8 100644
> --- a/xen/common/emul/vuart/ns16x50.c
> +++ b/xen/common/emul/vuart/ns16x50.c
> @@ -9,6 +9,8 @@
>    *     https://www.ti.com/lit/ds/symlink/tl16c550c.pdf
>    * - UART w/ 64 byte FIFO:
>    *     https://www.ti.com/lit/ds/symlink/tl16c750.pdf
> + * - DesignWare DW_apb_uart Databook, v4.02a:
> + *     https://iccircle.com/static/upload/img20240313113905.pdf
>    *
>    * Limitations:
>    * - Only x86;
> @@ -85,6 +87,74 @@ struct vuart_ns16x50 {
>       struct xencons_interface cons;      /* Emulated RX/TX FIFOs */
>   };
>
> +static bool ns16x50_fifo_rx_empty(const struct vuart_ns16x50 *vdev)
> +{
> +    const struct xencons_interface *cons = &vdev->cons;
> +
> +    return cons->in_prod == cons->in_cons;
> +}
> +
> +static bool ns16x50_fifo_rx_full(const struct vuart_ns16x50 *vdev)
> +{
> +    const struct xencons_interface *cons = &vdev->cons;
> +
> +    return cons->in_prod - cons->in_cons == ARRAY_SIZE(cons->in);
> +}
> +
> +static void ns16x50_fifo_rx_reset(struct vuart_ns16x50 *vdev)
> +{
> +    struct xencons_interface *cons = &vdev->cons;
> +
> +    cons->in_cons = cons->in_prod;
> +}
> +
> +/*
> + * Transfer character from RX FIFO and return the RX FIFO status after the
> + * transfer.
> + */
> +static int ns16x50_fifo_rx_getchar(struct vuart_ns16x50 *vdev, uint8_t *ptr)
> +{
> +    struct xencons_interface *cons = &vdev->cons;
> +
> +    if ( ns16x50_fifo_rx_empty(vdev) )
> +        return -ENODATA;
> +
> +    *ptr = cons->in[MASK_XENCONS_IDX(cons->in_cons, cons->in)];
> +    cons->in_cons++;
> +
> +    return ns16x50_fifo_rx_empty(vdev) ? -ENODATA : 0;
> +}
> +
> +static int ns16x50_fifo_rx_putchar(struct vuart_ns16x50 *vdev, char c)
> +{
> +    struct xencons_interface *cons = &vdev->cons;
> +    int rc;
> +
> +    /*
> +     * FIFO-less 8250/16450 UARTs: newly arrived word overwrites the contents
> +     * of the THR.
> +     */
> +    if ( ns16x50_fifo_rx_full(vdev) )
> +    {
> +        ns16x50_debug(vdev, "RX FIFO full; resetting\n");
> +        ns16x50_fifo_rx_reset(vdev);

Do we really need to drop everything from the buffer here?
Should we document somewhere that in case of OE the whole RX buffer is dropped?

> +        rc = -ENOSPC;
> +    }
> +    else
> +        rc = 0;
> +
> +    cons->in[MASK_XENCONS_IDX(cons->in_prod, cons->in)] = c;
> +    cons->in_prod++;
> +
> +    return rc;
> +}
> +
> +static bool ns16x50_is_running(const struct vuart_ns16x50 *vdev)
> +{
> +    /* DLL set to 0 disables serial communication. */
> +    return vdev->regs[NS16X50_REGS_NUM + UART_DLL];
> +}
> +
>   static uint8_t ns16x50_dlab_get(const struct vuart_ns16x50 *vdev)
>   {
>       return vdev->regs[UART_LCR] & UART_LCR_DLAB ? 1 : 0;
> @@ -97,7 +167,7 @@ static bool cf_check ns16x50_iir_check_lsi(const struct vuart_ns16x50 *vdev)
>
>   static bool cf_check ns16x50_iir_check_rda(const struct vuart_ns16x50 *vdev)
>   {
> -    return false;
> +    return !ns16x50_fifo_rx_empty(vdev);
>   }
>
>   static bool cf_check ns16x50_iir_check_thr(const struct vuart_ns16x50 *vdev)
> @@ -362,6 +432,20 @@ static int ns16x50_io_read8(
>       {
>           switch ( reg )
>           {
> +        case UART_RBR:
> +            if ( !ns16x50_is_running(vdev) )
> +                break;
> +
> +            /* NB: do not forget to clear overrun condition */
> +            regs[UART_LSR] &= ~UART_LSR_OE;

The "NS16550A Universal Asynchronous Receiver/Transmitter
with FIFOs" states:

The OE indicator is set to a logic 1 upon detection of an overrun
condition and reset whenever the CPU reads the contents of the Line
Status Register.

So it looks like we don't need to clear this bit here.
According to the spec it should be cleared only on LSR read.

Best regards,
Mykola


> +
> +            if ( ns16x50_fifo_rx_getchar(vdev, &val) )
> +                regs[UART_LSR] &= ~UART_LSR_DR;
> +            else
> +                regs[UART_LSR] |= UART_LSR_DR;
> +
> +            break;
> +
>           case UART_IER:
>               val = regs[UART_IER];
>               break;
> @@ -611,13 +695,59 @@ static void cf_check ns16x50_free(void *arg)
>       xvfree(arg);
>   }
>
> +static int cf_check ns16x50_put_rx(void *arg, char ch)
> +{
> +    struct vuart_ns16x50 *vdev = arg;
> +    uint8_t *regs;
> +    uint8_t dlab;
> +    int rc = -EBUSY;
> +
> +    spin_lock(&vdev->lock);
> +
> +    dlab = ns16x50_dlab_get(vdev);
> +    regs = vdev->regs;
> +
> +    if ( !ns16x50_is_running(vdev) )
> +        ns16x50_debug(vdev, "THR/RBR access disabled: DLL == 0\n");
> +    else if ( dlab )
> +        ns16x50_debug(vdev, "THR/RBR access disabled: DLAB=1\n");
> +    else if ( regs[UART_MCR] & UART_MCR_LOOP )
> +        ns16x50_debug(vdev, "THR/RBR access disabled: loopback mode\n");
> +    else
> +    {
> +        const struct domain *d = vdev->owner;
> +
> +        /*
> +         * Echo the user input on Xen console iff Xen console input is owned
> +         * by ns16x50 domain.
> +         * NB: use 'console_timestamps=none' to disable Xen timestamps.
> +         */
> +        if ( is_console_printable(ch) )
> +            guest_printk(d, "%c", ch);
> +
> +        if ( ns16x50_fifo_rx_putchar(vdev, ch) )
> +            regs[UART_LSR] |= UART_LSR_OE;
> +
> +        regs[UART_LSR] |= UART_LSR_DR;
> +
> +        /* TODO: check FCR when to fire an interrupt */
> +        ns16x50_irq_check(vdev);
> +
> +        rc = 0;
> +    }
> +
> +    spin_unlock(&vdev->lock);
> +
> +    return rc;
> +}
> +
>   #define ns16x50_emulator                \
>   {                                       \
>       .compatible = "ns16550",            \
>       .alloc      = ns16x50_alloc,        \
>       .free       = ns16x50_free,         \
>       .dump_state = NULL,                 \
> -    .put_rx     = NULL,                 \
> +    .put_rx     = ns16x50_put_rx,       \
>   }
>
>   VUART_REGISTER(ns16x50, ns16x50_emulator);


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 06:43:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 06:43:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164395.1491364 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLFQq-0006ht-OX; Tue, 18 Nov 2025 06:43:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164395.1491364; Tue, 18 Nov 2025 06:43: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 1vLFQq-0006hm-LT; Tue, 18 Nov 2025 06:43:16 +0000
Received: by outflank-mailman (input) for mailman id 1164395;
 Tue, 18 Nov 2025 06:43: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=g+ix=52=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vLFQo-0006hg-TO
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 06:43:14 +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 d9725c79-c449-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 07:43:11 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 SA0PR12MB7002.namprd12.prod.outlook.com (2603:10b6:806:2c0::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.22; Tue, 18 Nov
 2025 06:43:07 +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.9343.009; Tue, 18 Nov 2025
 06:43: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: d9725c79-c449-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NIoZXvQ66N538pjU3a/rhQAtAzP7Lq5hDMeTryHVHERnnfI9xOkK2ArvCmp+qB/W17JiSrnPHJBQA3gM2ZHPmScHdQfp3nRTLfrAh6jjBey0Waa/yu3Q3Wt7cerrByqki4vXHqezPivWfQAcTnBB6NR8V3/Ue+dZ9rNiL7Mqsy0KalH8MiIRzqIuGeLfiwZOVSNScfTUTvbQFK1U/y2JGgwKJbz/31EDgF1S79lDffYLKkMlM25CxYwEbrneBcWYNt9e413dJI8MAR+zb+G7wNpo49dEcj4znx8Qz+69O15kRf/XxzEsC/distLhSS9e2YjgHNd4U8iypeGrIFMfyw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0+8L3sl5/RFhUXG/epjIno9MG232mVLOlRSRsgxm9wE=;
 b=s2gXgVXKZPmg/Uh4lro+rCY3dYnwq3cc4HQgxX4PSHrb0yVMpQHlq9H1CNDsIBbtwPLTHGMtm2XoY9kbX/CMX34xo6p7P1RykMbZz9BR89ZO+vGCVz20Wc5juJ5C1t+pCWeNoSwpiM+byrWC3HPEcjfYGXXxddou5oIeSSFdl7tADGplYBW43B1WRfp4zkK435v28mGl0FQd0gxXmeAEVcmUEUuTF0p1WtxUoPKyDecRCwsVrJfXsTbSi6vCvTNQUHj4wj4KGJclbH3yz6AuIJbjlTZsYlpUgEEO4eUlmxH1nfgF2OoFTpqbLwxpL9yrAHTuM+BikHG6M4EAEfBRDg==
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=0+8L3sl5/RFhUXG/epjIno9MG232mVLOlRSRsgxm9wE=;
 b=svoSy1TdspRdWgveFEdhsXwHEhgiY0+W9ZQ0ASiT6WeWo95/JN+Rqjk5RzVx/A3YQwgo3Ff/rZgfk6WlrDNepv98t/N7n9kKNm19J0jZJWfWZ6QiiTcTH8TKsebB/DXXa+mNHezJf8uIY1twv3cCDIaajmuVh12sNWy07HCcpgs=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "oleksii.kurochko@gmail.com"
	<oleksii.kurochko@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>, "Orzel, Michal"
	<Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v3 28/28] xen/domctl: wrap common/domctl.c with
 CONFIG_MGMT_HYPERCALLS
Thread-Topic: [PATCH v3 28/28] xen/domctl: wrap common/domctl.c with
 CONFIG_MGMT_HYPERCALLS
Thread-Index: AQHcPCqhC21cJdWa5E25eCgk7enLhrTazScAgB1fVEA=
Date: Tue, 18 Nov 2025 06:43:07 +0000
Message-ID:
 <DM4PR12MB84511357C8F6FB1976244CA0E1D6A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251013101540.3502842-1-Penny.Zheng@amd.com>
 <20251013101540.3502842-29-Penny.Zheng@amd.com>
 <c18cdb1c-f2b3-4eeb-b064-670c86e19e67@suse.com>
In-Reply-To: <c18cdb1c-f2b3-4eeb-b064-670c86e19e67@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-11-18T06:29:50.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_|SA0PR12MB7002:EE_
x-ms-office365-filtering-correlation-id: 9849d099-cd6e-43a3-48e5-08de266dbbae
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?eUF2bmdqRnVaU2pGS1B2amhJNE5kTXJyem1qaG8xWkVDcFdYRXNYRytyTHp3?=
 =?utf-8?B?N256RFBySkh2ZklRNDN1RnEzWTluSWNsQmxuMjhsTGNYeGhIaTV6ek1WMzMx?=
 =?utf-8?B?ZzFUNktCS3A2U29DTWZjODhkNi9nTVJwTFNsNW5wMzhxS21VVmZ1dXEweGJQ?=
 =?utf-8?B?dXB0ZUxvS3Ywd2JXUUlDUmtGbGZ3eXBwaGhhcTFHQ250SGhoQlNoUFFndGxQ?=
 =?utf-8?B?eloySlFLWVRRT0wyK2FzYWtrWE5kbGRBM3NIZnhtTkhPSDRnTkt1YjBzVGlT?=
 =?utf-8?B?OVliL2Y0L2J4MVNqZ1JSS3I2S28rdDMzeDNqV0plVnQ2TXdJWURIbWpCbVhV?=
 =?utf-8?B?bHRwa2ZPSHkzU3dRUmFCOFNMc1ZhdU9RYXFudTFycGVrSlcxUFZ6MW5ZdE1O?=
 =?utf-8?B?TmpJZ0VDcWZsZDJIaEFZMWdXK1pHdXNkTUFMeDYweGJFQ240WDliSUpVRU4y?=
 =?utf-8?B?V1pZKzI5ME9RZjVCZm13d2htRHU2V1k2ZUtnUlZ4ZFFkdGFmMnExOTJsUXFJ?=
 =?utf-8?B?NzhOQXVKeVR0Q1A5TzQ3Um5mb05IUGtaMmxlV3NSMkh1L0lUUnI4QUJRWUxT?=
 =?utf-8?B?dmFjWmZTaWdxYmtzOGxBeTNSQUIwZlUzK0J1RXVKME1ucERwMWx3WlNWai9w?=
 =?utf-8?B?S0ZIaWFVRmp6OXhBaHNSYnVDcVNNQWZ4UTZiSk1IVjRSYVF3eXZmWVA0TWRy?=
 =?utf-8?B?NDdIWFZPWjVDKytvbWxyeWVqbU1hcGpnZEpoaml3MUdWRVNJYmxvTnU3Yklm?=
 =?utf-8?B?eHoxT0phZmdzRFhzcnVaU1hDUGFTdk9wV2RNOG55dXkyRGF6eHlpSnV2Z0RZ?=
 =?utf-8?B?UWRFc0NSMkxjTFJzMHAzWno0RTVsNWs3SnNhNXJpc3laYWVyOUpGSGVlRlBX?=
 =?utf-8?B?NmVvUHZ5Ly9tSTVTdTNHS0k4cGhIdkZPM3RaMFFKSitRUEVQQU1BS3A5ZVlp?=
 =?utf-8?B?YTA0UGdkaXZPVEZEK0tTcFVGZ3hueFloZExWOXZJdk8xUTN0VGFsV00wSllx?=
 =?utf-8?B?VWl2ZlNHMlZjVzdSYjZOcS9oYjRRd0IvVXlONjBWYmF6ZVVQZE9RMUpiK3ls?=
 =?utf-8?B?czF0T1VVTTZ3amdpZWtMWnV4TUdGaldrWUtLK2pUQVduZlNzSFdkaHVmU0xP?=
 =?utf-8?B?cXI0NWJlMmFSV2hVREpMSENxWUhZY3dLeEU3SXlTUTVnN1pLOWtvQU95MFR6?=
 =?utf-8?B?Y01vMjZVL0NkNUNwQ0w3Ymt5cFpYcDdibnVIcWJKaU9tOWFraCt1ajVkWmJJ?=
 =?utf-8?B?U2R2L0Q1cnBCK3ozWER4ekMyZ0dkQ242MEdhSUgva2FheHpUMlB0M1NHbmhL?=
 =?utf-8?B?TkdnRXZ4ekh4ekxkSWJjalR5Ny9qVWhra2owaFRVVDA4UmVhNDkzaDl0eUkr?=
 =?utf-8?B?NE9tM0Mxb01DM3Nxb0NCVldORXUzaHU3cGlNMzFSRmIxL3ViMXplNHFEMVJn?=
 =?utf-8?B?T28yMEpzVmYwNW1GemRyNTlRT0d0VmJYQzZYRzJpTHBrVXd6ekRLSytOd1E0?=
 =?utf-8?B?QmQwbEVxYzRpdUFUa1kxa05iVUZXL2dMYVJqYWFTOHFpakI0YTZWOXkwYU03?=
 =?utf-8?B?YjM1SExCU1FGcHpMQkZwbmExSFFVSGN6NmVnK2hLVGZwa250LzFYT3lKajFT?=
 =?utf-8?B?STNyVS85bnh1OElDS0NFaHQ3czl5bTBSdGdVYmpmRzBtYzlnaVhHeXpCcHFT?=
 =?utf-8?B?eFdNWTFoRjJvVzUzSjMzLzQvZXpUdEVnd2ltczgzaEN0RFkzVS9SaWdKZVlR?=
 =?utf-8?B?UHovRGRtdlZFLzRMdHhXTDdqZW9WM3lCcmpyY2I1M09wSktZRFpQR0pNQTZo?=
 =?utf-8?B?UlBDakdCQTJoeGt2RXk0YUkycnZ2MWZiVmFUWXRBOXRmQlRsZy9YSjJsSzc3?=
 =?utf-8?B?ai8zSHMwdWVNby9QOHVyaHNvcWVxbE5RUjRkckVXMnFVeG9MNjc2TE9sYjJI?=
 =?utf-8?B?d3hpRjNHVjJCanRwcWtHQlhqcHVBaGZ4dEVLamd1QTBneUlHUjVQdENMSHd4?=
 =?utf-8?B?bGZET0lSTXdvdWsybG03aTBLVFh4K1BzNkNaenhldm9MYkovUHRiWSs4UHdk?=
 =?utf-8?Q?H7zcnE?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VXdpVU9vR0RlSUlCYys3ekRYdVBTMCtTRkY2dmpiQm1rTG9IcUY3MDBCM2k0?=
 =?utf-8?B?WGxOWXJUM1NsUVBCNXZQWSt3dWdMNTRpVStRdUxmWjlDYzhPTlUwOTRRVkVa?=
 =?utf-8?B?aG1WZm9nTVdIQTZ1K2lxek1YNWQvOTg2OXF2VFFHc3R6YzVEa0xicXdUREhV?=
 =?utf-8?B?cG1JSHJrUkZRV1JTaFlDVGVXUkVtVkFRWFhBdTJIbE5hTHFSNVl1dlVjdjBk?=
 =?utf-8?B?WDN0VklicnRGdURNVVRRUkdTREFVVCtZKzF4TW5pOXNLOFEzNnR6NDdpLzZ2?=
 =?utf-8?B?WWNnYklPbnJzKzhlUndFaTBOWVMyVm8xem9XQjd1WTZpT2RxeWZVUkxhRHcz?=
 =?utf-8?B?Tzl2Mi9SUk5WbXlvMjR4OG1qb1YxK3JydXB4VGJKVnVzVDR0RXRmdXhEamcy?=
 =?utf-8?B?U1JhMitDMjY1NEEzR1VFSGNZMkVXdDZQaXpSMnNHZElEZzN3S3ViQ0dEZjQv?=
 =?utf-8?B?LzBOQWZkak96WUxZbmxQMkNqY1NWbC82cmVBcXJONE1MVU5XRWMxT1VuNTBR?=
 =?utf-8?B?cFZsR3o5cTAyUlMxVEdmNjE3NUpGZDducFlvWXZwcjZBV29YTCt5VS81eEx6?=
 =?utf-8?B?MEJoSklxczl2ZWFUOUtLZDM0RGNmaXNSWTFvaU51YW1nOUlnSW9McVc4Q2dC?=
 =?utf-8?B?OFZVVlpENlBpdnYwY2tzYWhGY2NoN0xrdmV4bUZEVEdOYXNLam5RaXpxNzJU?=
 =?utf-8?B?eStMWmZLQ1BVa2hBNnNBVnVWd01KVUFwVkpNM2t0VXJJOWZaOUJaQVY4dTg1?=
 =?utf-8?B?OUZhUndpaVlNTXd0WmRGRWFhTmZ6NjJ0TVU2U25zYTdCUThPTE9RbXJFV3Zw?=
 =?utf-8?B?QVg1RDZJZmk2aG95OEV5RWlML21Lb1FnZjNibUF3QXVLUnFWVm5qKzFYWGtl?=
 =?utf-8?B?V0V1ZkhQMlVMY3JXbFFYd2NuMnMwMnUzVTFGRE9HK1VTSkNqK1NzUDdLeHIv?=
 =?utf-8?B?anMvcVdiaFFVTU5venNqb0RDc0ExOTNESzlEY3lHZE1sOHpqZ3ZHRUdaUzhJ?=
 =?utf-8?B?NDdRSXB0aXdyL05UUFdVZGxud2JqYVNnODd1QnVEZnY0d1FENGFpRzBtL0I0?=
 =?utf-8?B?Rm9wTGlncStDdlpmS3lpb25xRFhKSXA4TXVoOVllaXpHZVJMS0h3Ykcyd0ZY?=
 =?utf-8?B?UWU0OVcxNzl2MjlsN214cHgwS0V0Zk5Ka2pLRG1PaThoaHRHU1R1Y2RXa3ox?=
 =?utf-8?B?dUs0ajhFb3JDbG42QWd5dk12YUtwS250aXJMYjU1bERtV1FHaTNqM3hBR0Zs?=
 =?utf-8?B?TGRJMjhoUzR3ZEI0M0c0Mm1iZzZzRUt3OG9RbDcvcmRRakthcUg0bjhKanNY?=
 =?utf-8?B?RWlDMDR6NTAzZDRXNFdQN3BRU3lUVzZoNkdrOUd4RkJldTQrUWg1bTY4a0xh?=
 =?utf-8?B?amk2OTAya1FpUGdyeVNhRlB3ZDJ1Qm9iNEt0UXhXRnpHRnRsbzVHNjMzRUk3?=
 =?utf-8?B?NDYzTFp3QzV2OFlhT1ZPYXhZR0YxRzVPclQ4bldWTkF4VWRjTU56TGh3TENL?=
 =?utf-8?B?QVpQNjdwejFpTzBQck5iSUJ0UWRQQnEwcmlKUUlSMFl6K2IvcmFJY3pTTmIr?=
 =?utf-8?B?MDBuTDdDUlNFY0V6akUzY204a0NZTmEvMmFMUndsMEFVRUpsZFU4RmYwRyti?=
 =?utf-8?B?SHFhK0VMWEtWSmwxbmtFSlBRVXFBWTZsa2JuaXFGN0srMTRCTUlxQmxDYjNw?=
 =?utf-8?B?OGQzWjBtUkRGV0ZmNjRtamIzTGdsQkRvSU1aYmRuWkIvNmZkWm5OVThBSzZi?=
 =?utf-8?B?c2cvMDhTdmk4b09sak0xejhNUWE5bys5OFczYUNPdFl0NEMvNE8rS0lRRFRY?=
 =?utf-8?B?dys4L1M4NkdIemMrQU5BbWZBdXZ1NzI1SnJnVUNBZTZnM3JEd1FiSEsvRFg0?=
 =?utf-8?B?SVYreTNIVFQvbVMwSTBCMHFtRm5ESWdhTFBlcW1HbWd5dmRiL084VTNTWVY2?=
 =?utf-8?B?dHN4dG1wTDh1UFp1VTF2djNWVkFYY1diMHRicTdFYkRRVTlxU00vWVhKdHJE?=
 =?utf-8?B?c29yck1tYmVmbjc5bk5rY096bUVyRVdFelFmNmo0MUlNemJ6SmNEK3NvVWtm?=
 =?utf-8?B?UldqS3ROcFRGdHA3TFRpY2pPM1pEYm1xc0s2Y21ZR1ZnbjRMdWRqMVZkNUwy?=
 =?utf-8?Q?d8VQ=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9849d099-cd6e-43a3-48e5-08de266dbbae
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2025 06:43:07.4505
 (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: fgK12LqMFZwn1H/lFRRiSOWnEDPAsHxM1UHNjubYPB5QVo1W3M5Y0k1Gr2xfPo/8P7PD3jR8ah7LC/BzBs9u/A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB7002

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDMwLCAy
MDI1IDk6NDAgUE0NCj4gVG86IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT4NCj4g
Q2M6IEh1YW5nLCBSYXkgPFJheS5IdWFuZ0BhbWQuY29tPjsgb2xla3NpaS5rdXJvY2hrb0BnbWFp
bC5jb207IEFuZHJldw0KPiBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+OyBBbnRo
b255IFBFUkFSRA0KPiA8YW50aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD47IE9yemVsLCBNaWNoYWwg
PE1pY2hhbC5PcnplbEBhbWQuY29tPjsgSnVsaWVuDQo+IEdyYWxsIDxqdWxpZW5AeGVuLm9yZz47
IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPjsgU3RlZmFubw0KPiBTdGFi
ZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPjsgeGVuLWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjMgMjgvMjhdIHhlbi9kb21jdGw6IHdyYXAg
Y29tbW9uL2RvbWN0bC5jIHdpdGgNCj4gQ09ORklHX01HTVRfSFlQRVJDQUxMUw0KPg0KPiBPbiAx
My4xMC4yMDI1IDEyOjE1LCBQZW5ueSBaaGVuZyB3cm90ZToNCj4gPiAtLS0gYS94ZW4vY29tbW9u
L0tjb25maWcNCj4gPiArKysgYi94ZW4vY29tbW9uL0tjb25maWcNCj4gPiBAQCAtNjQ2LDExICs2
NDYsMTMgQEAgY29uZmlnIFNZU1RFTV9TVVNQRU5EDQo+ID4gICAgICAgSWYgdW5zdXJlLCBzYXkg
Ti4NCj4gPg0KPiA+ICBjb25maWcgTUdNVF9IWVBFUkNBTExTDQo+ID4gLSAgIGRlZl9ib29sIHkN
Cj4gPiArICAgYm9vbCAiRW5hYmxlIHByaXZpbGVnZWQgaHlwZXJjYWxscyBmb3Igc3lzdGVtIG1h
bmFnZW1lbnQiDQo+ID4gICAgIGhlbHANCj4gPiAgICAgICBUaGlzIG9wdGlvbiBzaGFsbCBvbmx5
IGJlIGRpc2FibGVkIG9uIHNvbWUgZG9tMGxlc3Mgc3lzdGVtcywgb3INCj4gPiAgICAgICBQViBz
aGltIG9uIHg4NiwgdG8gcmVkdWNlIFhlbiBmb290cHJpbnQgdmlhIG1hbmFnaW5nIHVubmVzc2Fy
eQ0KPiA+IC0gICAgIGh5cGVyY2FsbHMsIGxpa2Ugc3lzY3RsLCBldGMuDQo+ID4gKyAgICAgaHlw
ZXJjYWxscywgbGlrZSBzeXNjdGwsIGRvbWN0bCwgZXRjLg0KPiA+ICsgICAgIEJlIGNhdXRpb3Vz
IHRvIGRpc2FibGUgaXQsIGFzIHVzZXJzIHdpbGwgZmFjZSBtaXNzaW5nIGEgZmV3IGJhc2ljDQo+
ID4gKyAgICAgaHlwZXJjYWxscyBsaWtlIGxpc3Rkb21haW5zLCBnZXRkb21haW5pbmZvLCBldGMu
DQo+DQo+IFRoaXMgaXMgc3RpbGwgdG9vIGxpdHRsZSwgaW1vLiBGb3Igb25lIEknbSBub3Qgc3Vy
ZSAidXNlcnMiIGlzIHF1aXRlIHRoZSByaWdodCB0ZXJtLiBJJ2Qgc2F5DQo+IGl0J3MgbW9yZSAi
YWRtaW5zIi4gQW5kIHRoZW4sIGFzIG1lbnRpb25lZCwgdGhlcmUgYXJlIGEgZmV3IGRvbWN0bC1z
IHdoaWNoIGFyZQ0KPiB1c2FibGUgYnkgRE1zLiBBaXVpIGRldmljZSBwYXNzLXRocm91Z2ggbWF5
IGFsc28gYmUgaW1wYWN0ZWQsIHdoaWNoIGltbyB3aWxsDQo+IHdhbnQgbWVudGlvbmluZyBoZXJl
IGFzIHdlbGwuIE9yIGVsc2UsIGlmIHRoZXJlIGlzIGFuIGltcGxpY2F0aW9uIHRoYXQgRE1zIGFy
ZW4ndCB0bw0KPiBiZSB1c2VkIHdoZW4gTUdNVF9IWVBFUkNBTExTPW4sIHRoYXQgaXMgd2hhdCB3
b3VsZCB3YW50IGNhbGxpbmcgb3V0Lg0KPg0KDQpIb3cgYWJvdXQNCiINCiAgICAgICAgQmUgY2F1
dGlvdXMgdG8gZGlzYWJsZSBpdCwgYXMgYWRtaW5zIHdpbGwgZmFjZSBtaXNzaW5nIGEgZmV3IGJh
c2ljDQogICAgICAgIGh5cGVyY2FsbHMgbGlrZSBsaXN0ZG9tYWlucywgZ2V0ZG9tYWluaW5mbywg
ZXRjLCBoZW5jZSBsZWFkaW5nIHRvDQogICAgICAgIGhhdmUgYW4gaW1wYWN0IG9uIHhsLWRldmlj
ZS1wYXNzdGhyb3VnaCBhbmQgcmVzdHJpY3RlZCBETS4NCiINCg0KQW5vdGhlciBxdWVzdGlvbiBv
biBQVl9TSElNX0VYQ0xVU0lWRToNCkFmdGVyIFN0ZWZhbm8ncyAiIDZjODBmMGRkMWJiICB4ZW46
IGZpeCByYW5kY29uZmlnIGJ1aWxkIHByb2JsZW1zIGFmdGVyIGludHJvZHVjaW5nIFNZU0NUTCAi
IHJldmVyc2lvbiBwYXRjaCwgYW5kIHRvIGF2b2lkIGluY3VycmluZyByYW5kY29uZmlnIGZhaWx1
cmVzIHRpbGwgdGhlIGxhc3QsIG1heWJlIEkgc2hhbGwgY29tYmluZSBhbGwgUFZfU0hJTV9FWENM
VVNJVkUtcmVsYXRlZCBjaGFuZ2VzIGludG8gYSBuZXcgY29tbWl0IGFuZCBwdXQgaXQgaW4gdGhl
IGxhc3QsIGFmdGVyIG1ha2luZyBNR01UX0hZUEVSQ0FMTFMgb3B0aW9uYWwgYWdhaW4/DQoNCj4g
SmFuDQo=


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 06:45:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 06:45:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164409.1491375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLFSo-0007Ji-6y; Tue, 18 Nov 2025 06:45:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164409.1491375; Tue, 18 Nov 2025 06:45:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLFSo-0007Ja-3J; Tue, 18 Nov 2025 06:45:18 +0000
Received: by outflank-mailman (input) for mailman id 1164409;
 Tue, 18 Nov 2025 06:45: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=g+ix=52=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vLFSm-0007Ij-GN
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 06:45:16 +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 22fcc094-c44a-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 07:45:15 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 SA0PR12MB7002.namprd12.prod.outlook.com (2603:10b6:806:2c0::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.22; Tue, 18 Nov
 2025 06:45:11 +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.9343.009; Tue, 18 Nov 2025
 06:45: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: 22fcc094-c44a-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hVaUPxCZJakHHcn/EzT+dY1uM/zTcv8em3TteGf/ZyQMXOgKaGXpVzLx7flF0PJOhtqdTzsg0IZvC4K7mHoBIr/ZVLde5wjB9DiRji2OLTRHql18GE9xUGxdyI+2YDkQefzkDpTeCeW0vnLmh16rgloyRtopnE2fMvnJC/ktxqMXgbpag99DUjTkLOiLu5AcWwRQ4vzSZ3xAB2WbgM6YWdFTTluFP1gfMOx7V1pVBoBAhoo9PpNV1JeNzouAL3ex4lb5UhWJvCoOcEuLbgg27LlGFaiLis2MJLEyRjPVOERzCzT5K4Vj7FSZ+H5mBotJQOUygfVef/4O2bLjhJQ9hQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pz/NXBOCuBLoFhjBSCbJgSh6bH16gW64n/sylWndD7Y=;
 b=OyKod8H9RdqWtrajSiRH3ZJRhS4Rg6913iYDsYdVCQE2NFgAtHMIII5Im17oB7igSPDn/mJ24efy7SRTa5DBGKl8+cz/QSoZQGUsXYw+RyI3OBSvybnBQfG5mddQT/yw4eWSJDc/+e6RDM/CRv2n+L6McOs2v3u3SVXf7DugVnOV+BPrEo4GTaJ6slBUM8oRPGqX387/x3vfuLA3aqMWSGrhDMl19gBJ335WnKO9xskGkO5OJrocFJ3XE2qiny2g994nrc6uBb3oISaFbwA/rsvkLpKvPh0AV6p1zbkVzDUhVlrioCM7JkVomUEVEWwtGDc4zYIw+4KRj+7xc/lPNg==
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=pz/NXBOCuBLoFhjBSCbJgSh6bH16gW64n/sylWndD7Y=;
 b=AyKRM0/fFMUUI3cc6lFJvCRlVqeK0YfTFSim5ke5udGFqminuboFk2sjMLxRTqxpUDjq6ciZoGkQFm6hEAbdlbg2lhx7UGNv0IeRJjGpBAoy/+zg7SQRo8bI7vzgWLg+KR/YaXymURsoLNXitVsbM4HqRXZ8taZeuNpljDGzijQ=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "oleksii.kurochko@gmail.com"
	<oleksii.kurochko@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v3 27/28] xen/domctl: make HVM_PARAM_IDENT_PT conditional
 upon CONFIG_MGMT_HYPERCALLS
Thread-Topic: [PATCH v3 27/28] xen/domctl: make HVM_PARAM_IDENT_PT conditional
 upon CONFIG_MGMT_HYPERCALLS
Thread-Index: AQHcPCqgC80pLf2zKEG1m+/WaQbSMLTay4MAgB0wHeA=
Date: Tue, 18 Nov 2025 06:45:11 +0000
Message-ID:
 <DM4PR12MB8451BC18FAF3D9B97F84B604E1D6A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251013101540.3502842-1-Penny.Zheng@amd.com>
 <20251013101540.3502842-28-Penny.Zheng@amd.com>
 <af8eb5b1-80fd-477c-9b50-29041ae93088@suse.com>
In-Reply-To: <af8eb5b1-80fd-477c-9b50-29041ae93088@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-11-18T03:21:45.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_|SA0PR12MB7002:EE_
x-ms-office365-filtering-correlation-id: da28e4d6-a842-44ea-d869-08de266e05ab
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?MHVaWU1YSVBZRDk0S2VpWVR6cDM0V3hCMy96aHZvRDVJL3JhdUhzOFJTUnR5?=
 =?utf-8?B?MUxtTGRvS3hLRjZDTGFJTGFzVkNNSjlPRndKS3JOVXFaUHN2cFk4MjJvOGlw?=
 =?utf-8?B?eG1SWVJJRmdSNEhZbEhLVXE4aisyTk9oUVZucW9WMHB0eGk1YmVJYzM5WVFI?=
 =?utf-8?B?aisySHc5S0FvRHNBMWJiYnc2QUplRldOU1ZwbmVpbldlbmc2K1JVamxCUHdw?=
 =?utf-8?B?NDJRcmxITW1pY05abHpxaklrZ3dSdEVSSUJMTnRuVmg3N2drelFnMWIwRUxU?=
 =?utf-8?B?WmZXRVlweWhuTWNlVmRHT25WTlFsUGc1ODUyMnhHY0VFTEZTWWRHVU9QcXRI?=
 =?utf-8?B?N0g5RG1CNHQ0WU95eUFEZnI0RXdVakFuQVBpT1BWelFNczVsZE1uYnJuUGFI?=
 =?utf-8?B?WjAxQzcvem8rVU50U3IrRTBBRldWaWVMRTdpTVZBdHRzZ3RxTCsrSlB0Tkd0?=
 =?utf-8?B?OVYrMFF1eE5paWZobUZxZEZUUVZNbHRqSUQ4aUl6a0twdm9SZ29XQ3FzTTUr?=
 =?utf-8?B?cCt3ems4cXpQc2tJSEZ3VVhxZzdCSUxmRVBDUFVHN1kzT1FMQnRGRFNNQ0hQ?=
 =?utf-8?B?Q3JsaThVOXBQdVhSZ0hzWlZJNW52ZTM5ODFIdGpvWkhEMmZSUXd3QVZqempB?=
 =?utf-8?B?eVI1SFZ2MEZFUU1FcHkrcjRvTVVtNGIvbHpGOXZJNmN1bWhGV1Noeml1NHg4?=
 =?utf-8?B?U1ZyRmhIcDBVaXB0bCtjdFZTMi92MHQ2elppMDlCOC9iNWZBRUtkL3JOL0Iz?=
 =?utf-8?B?T1RLQ1JYMTlQaTRBZ0k0ZHRBSUFEV252MHE2OHpSL0VJUlpLNUlMSW0waDc5?=
 =?utf-8?B?bUlNNk9GeHlCdTFGQVg4dk9oTlZKc3BxbUlUTEZSVllhVU94WXgvY2RTWUR2?=
 =?utf-8?B?Zks3S2Y2aTFIcCs3Zk5mOG1LZzZKcDZvRVdhdGdUN3B3TCtTUlFFUDgwOUxY?=
 =?utf-8?B?S0xVSUdpZUVtTU1MNFdpVDJRMWxxdG1QQ1B0VEt5S3diZzhQSVByanNkY0dH?=
 =?utf-8?B?SDNadFRwMktYRXdjZlZvZzcwdndhMS9ualZ4L1Q3dC9LeEt0RUlYZlBZc3ZV?=
 =?utf-8?B?UHI4YjJWK3BnbjRRcGkwZW0yQ2FCMEF2dTI2UmxnaUloSXovSUd5UncrQXhu?=
 =?utf-8?B?NTlSc1YxM0FnMlhZZVMzaHhUbFgrUE5wbURwSVpJSHFvVHJlUzNGa1NJYzJ6?=
 =?utf-8?B?enM1SVdqMjZyYUw1T0dteUQvRkc2M0NxMkJQWGhYOGRNZndkNDFjamZ0V3My?=
 =?utf-8?B?SCtRSkZDbWxmQ241YXJRYjZXWE93QlVHUnYwSFp6cUNvUUZEY1o5UTl0YXFJ?=
 =?utf-8?B?M05VVUdXdFlRRjlLQnVockgyQktRdjZsYnhVUUpQV0s2UGhWZlg3dkRmNVI3?=
 =?utf-8?B?dEJza2Z0dGtYeDBjbHBEU2VzdnJGUTVwRDBsWHlIVlpCM2UzTnl4OGtWWmt2?=
 =?utf-8?B?UHlrbXhmdFp1OG5IR3ZML3dsUW5kSVNyRjNUMjBLS1JBQkZmaXNCaERMZ3dr?=
 =?utf-8?B?VGdOZjVKQzZwQzBpS3FsL2FFMjJRdDg1aythMnZWL2VWZEdGYUtVZlJ1Nkpx?=
 =?utf-8?B?WG50T0g3NlpqM0pNVk91ckd4ejFmRWRod3gwTVhQaXAzRUtEbEZyWVVnWlJR?=
 =?utf-8?B?M0dOU3N1QTcweU1IaHgrNVRiUktzWjd4dTB2cXpqZmhpWVdodkgxL2hJZmV4?=
 =?utf-8?B?V0tRSFpnTGJ6cTlJVDNxL0NTNkpJUERQaGdlSnVFRFlTVDMrdWRyNEVKQi9K?=
 =?utf-8?B?MU1hK0pjbXkzY0VHTzNMRjlQZElFZVVuZC9xalpVK0Q0RVJsQytIWUVZajc4?=
 =?utf-8?B?bGY4citya2dKTlowZmh2L0JmeVpDWUFGcTBFcUY5eWNiSld2SDJPUXFPc2h6?=
 =?utf-8?B?Q2NZTzhEVUhta1kwMFB0QkFBamlybXkyeWNnN3Fnd3pCN2hJY0hSTERFMnNX?=
 =?utf-8?B?dStHenFGYWowTDl4NERuMCt6M3duSlo4Q1V0UldvcDFiTjc4SzhmL0pxbms3?=
 =?utf-8?B?dU9zemlZOUx4M052NlRQd1RHcHJuNjYvM2tQdEg0YmkwTTB1Mm5JR01RdUZ2?=
 =?utf-8?Q?5Ljsnx?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?LzNjN0FabUlaMm84TnVSYm9rcW93R3o3dUo1c0lkUVFOK3hVbTZrU3ZFMGdw?=
 =?utf-8?B?S25BTldPQ09EK0trUE5waVk2SEJvZkYwRUZ2WGhBcDJBaDVoL2wxNytWL1RG?=
 =?utf-8?B?bWg0MDJIYzRwTEhqZVRlWFY5Q0lYWXkyMk9EUS81Y2h1bkpESXZxY3FXN3VI?=
 =?utf-8?B?R0JUYzZFYlJrbkozTTBtOWdEZXE1WmRrZE9mYUV4OVNianNScU9rSG1iOC9V?=
 =?utf-8?B?NC84dlJiVDZHQTRxZ0RuVkpxYnJ4VEpYcHpkOUk0Wm54RGxCNUJLNTd1UDNn?=
 =?utf-8?B?MVVQM2UxdVB5NEJOV1VpVVp4T1ZQb3RsUXpvZ0hiY3BVcjFlVGVUR0cwUjBp?=
 =?utf-8?B?dUlJK0hKV05Kck0zVFlISFYxTFZlWU9lMTcyM3hIelV0K1RBUGJBaXN0MkpN?=
 =?utf-8?B?RWdOSFhjNi9JdTJNY29tRmpOalU1dGFFMSsxV2JGVFNMQkxrSFIzVGo2bW5m?=
 =?utf-8?B?YWI3N1R2WU5Uemo1a3dCMEZwU01LSmt5aGJybFRaeHVpZ0tmZFZBMVdZU3ND?=
 =?utf-8?B?QmI3UmtZQ1JMVTAzZ1daOWl4a2JyK0pMb05uaW9yMzB4R0xJZ2s5SEhUa09n?=
 =?utf-8?B?ZlkrWXJyc0JkeitDdldPYW91cVBjWi9aUWJ4ZXR2a1Z1dEhyWUx4a2N6dmIv?=
 =?utf-8?B?blJRT1JOR2Y0TnFLYmVBREtnYjBNSjVyL3FZbmlWNW53YkNJTmkzbTlDVjJN?=
 =?utf-8?B?UGRBeEUwWEtuSG1jc3JYLzk3dnpSU1hzTVF2K3V4MTFGSDNMampYZWNBOFdN?=
 =?utf-8?B?TmhXd2l6YStVRDA0Rk10a2NDRnNzRU40d1h6YnhpeTFjbVZPOG5NQUV5blZz?=
 =?utf-8?B?TnM1VVJVdkFhWTc5ZjZmemZhSGoydWtWZU1lVUlmWSs4eVoxWWdoaTR5dXRW?=
 =?utf-8?B?eGp1STAzdElGVGZNZFpWUUxzOU42Mll4US9OeXJjOXVIOWNnTk5DNndmL0RT?=
 =?utf-8?B?V3ZrcVFQL2hHd1VIdlFjOUN0VjBmT0xoRGhtd3Nmek9NWTRaWVJDTk4zd2M5?=
 =?utf-8?B?dHA4anpwS1d6MkZ5OGFvWmxHS0p0YnMyc2V2MVVHN1BKTllZbFo2TTBZS2s5?=
 =?utf-8?B?TXBiTE9hclNRSFIwWUlzbzVQLytWKzBiOHg3SVFCY25MM0RQeTA1ODRlbHFr?=
 =?utf-8?B?WU1qODlwdWo3QkhDY3N4MlJMZUJIUloyVVBCOEl3a1pUU0RnZnlFVUVPUmZk?=
 =?utf-8?B?UXlyWjFFR0dISVczNk93bkNQY3FTYTh2VkdoQldrMHZIK0hqbmh6ZTFHQWg3?=
 =?utf-8?B?bFdJeVNkMUxBK2s0TDY2dFZhYXZ6dmcyZUdOdzNJRGxNWGM1OStIT1p4SHlM?=
 =?utf-8?B?M2pxcXpVdXl2TzVNdGNsakc3NUcrZE44a1Vtb3dYUmJTMXFHWktCV3pRRDRE?=
 =?utf-8?B?L2dZMFZtMDNJRGJ6dTdvUlNTRzZGWG9FYWZReWsxYW05dXprRW9sUmdTb0ha?=
 =?utf-8?B?aWpLSXRMNWtLR1JpYWlseWxFU1FTczg5djAyQzA2bGN4U3o0anFTOHk1dnZS?=
 =?utf-8?B?UUtnVWI5OVhSLzEyV3VYM2ZzNGVtc0lBa0hIeVBuZ2ZWaVI4eXR0UnpxYk9N?=
 =?utf-8?B?SnBLTXBOd0gwOG5BRjBnaTlDN0lLK1F3V2U4enFpUnJWTlRrb0MrRHFmdmpC?=
 =?utf-8?B?T2ZqT2xuRHBXSGo5Y0NBSjRkMWNDdXNwbDBQWGQ3M2N4LzRsMlQzcFJONW1Z?=
 =?utf-8?B?bXhvOGVHd1dWckpNdjhVcFFXd3V3Z1R2REpiNWFlNWQxY1Ayc2ZkK2RwaW1y?=
 =?utf-8?B?NzRNNld5Z1RaQUdUaE45RFp4cjFJbmErSFRIUmNQbWwyWm8yTkhPcDNkQWpu?=
 =?utf-8?B?NUhGQ20xYnEwZGRRWVJDRlcvOTFWd29CVFlIZVV6S0hmNEZmbm1ySVQzN244?=
 =?utf-8?B?ZDR1NThJMi9MWGNCWWcyalBYQkpnSW80UUdUd2ovcU5XQ2tyNGZ6MGhYd1V3?=
 =?utf-8?B?TSs4LzhYMjJCZkhXZE5YTzg0MW1WazFwaTEzeUJjK0h5NjJ5LzYxZ3RLbmw1?=
 =?utf-8?B?bDZ1NDVRRUJ4VlFnSzdETkU5UmNEUS9GdEJFR2tlM0FKc1dxQmM2cXhUVjd3?=
 =?utf-8?B?Q094R0RhaHljTDZGU0pGbS82M1l2eXc2S3V5eDExNk5Ha2daY0Z6NkF3dnJt?=
 =?utf-8?Q?iH+g=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: da28e4d6-a842-44ea-d869-08de266e05ab
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2025 06:45:11.6238
 (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: X+z1uoIZuDDMg4r9klSWdHY2ZKYg+iEdcpcWZpAgBYUegobsgdofrsw81wgZvspNLWjmzpYXhMBErn7O4PArUw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB7002

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDMwLCAy
MDI1IDk6MzUgUE0NCj4gVG86IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT4NCj4g
Q2M6IEh1YW5nLCBSYXkgPFJheS5IdWFuZ0BhbWQuY29tPjsgb2xla3NpaS5rdXJvY2hrb0BnbWFp
bC5jb207IEFuZHJldw0KPiBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+OyBSb2dl
ciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT47DQo+IHhlbi1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDI3LzI4XSB4ZW4vZG9tY3Rs
OiBtYWtlIEhWTV9QQVJBTV9JREVOVF9QVA0KPiBjb25kaXRpb25hbCB1cG9uIENPTkZJR19NR01U
X0hZUEVSQ0FMTFMNCj4NCj4gT24gMTMuMTAuMjAyNSAxMjoxNSwgUGVubnkgWmhlbmcgd3JvdGU6
DQo+ID4gSGVscGVyIGRvbWN0bF9sb2NrX3thY3F1aXJlLHJlbGVhc2V9IGlzIGRvbWN0bF9sb2Nr
LCB3aGljaA0KPiA+IEhWTV9QQVJBTV9JREVOVF9QVCB1c2VzIHRvIGVuc3VyZSBzeW5jaHJvbml6
YXRpb24gYW5kIGhlbmNlIGJlaW5nIGENCj4gdG9vbHN0YWNrLW9ubHkgb3BlcmF0aW9uLg0KPiA+
IFNvIHdlIHNoYWxsIG1ha2UgSFZNX1BBUkFNX0lERU5UX1BUIGNvbmRpdGlvbmFsIHVwb24NCj4g
PiBDT05GSUdfTUdNVF9IWVBFUkNBTExTLCByZXR1cm5pbmcgLUVPUE5PVFNVUFAgd2hlbg0KPiBN
R01UX0hZUEVSQ0FMTFM9bi4NCj4gPg0KPiA+IFN1Z2dlc3RlZC1ieTogSmFuIEJldWxpY2ggPGpi
ZXVsaWNoQHN1c2UuY29tPg0KPg0KPiBJIGZlYXIgdGhpcyBpc24ndCBxdWl0ZSB3aGF0IEkgc3Vn
Z2VzdGVkLiBUaGUgcGFyYW0gZ2V0L3NldCBhcmUgWFNNX1RBUkdFVCwgaS5lLg0KPiBjYW4gYmUg
dXNlZCBieSBETSBhcyB3ZWxsLiBUaGUgcGFydGljdWxhciBvbmUgaGVyZSBzaG91bGRuJ3QgYmUg
dXNlZCBieSBhIERNLCBidXQNCj4gdGhhdCdzIGEgZGlmZmVyZW50IHF1ZXN0aW9uLiBTaW1pbGFy
bHkgaW4gcHJpbmNpcGxlIHRoZSBQVkggRG9tMCBidWlsZGluZyBjb2RlIHNob3VsZA0KPiBiZSBh
YmxlIHRvIHVzZSB0aGlzIHBhdGg7IGl0IGRvZXNuJ3QgcmlnaHQgbm93IGluIGZhdm9yIG9mIHNv
bWUgb3Blbi0gY29kaW5nLg0KPg0KPiBXaGF0IGlpcmMgSSBkaWQgc3VnZ2VzdCB3YXMgdGhhdCB0
aGUgc2VyaWFsaXphdGlvbiBpc24ndCBuZWVkZWQgd2hlbiBubyBkb21jdGwgY2FuDQo+IGJlIHVz
ZWQgdG8gb3RoZXJ3aXNlIGFsdGVyIChyZWxldmFudCkgZ3Vlc3Qgc3RhdGUuDQoNCkFoLCB0cnVl
LCBzZXJpYWxpemF0aW9uIGlzbid0IG5lZWRlZCB3aGVuIE1HTVRfSFlQRVJDQUxMUz1uLCBhcyBu
byBkb21jdGwtb3AgY291bGQgYWx0ZXIgdGhlIGd1ZXN0IHN0YXRlIGF0IHRoZSBzYW1lIHRpbWUu
DQpUaGVuIG1heWJlIGFkZGluZyBJU19FTkFCTEVEKCkgY2hlY2tpbmcgaXMgZW5vdWdoOg0KYGBg
DQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0v
aHZtLmMNCmluZGV4IDVhNTA3MjFiZDAuLjRlMWIzZWU1ZjQgMTAwNjQ0DQotLS0gYS94ZW4vYXJj
aC94ODYvaHZtL2h2bS5jDQorKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jDQpAQCAtNDMyNCw3
ICs0MzI0LDcgQEAgc3RhdGljIGludCBodm1fc2V0X3BhcmFtKHN0cnVjdCBkb21haW4gKmQsIHVp
bnQzMl90IGluZGV4LCB1aW50NjRfdCB2YWx1ZSkNCiAgICAgICAgICAqIHRoZSBkb21jdGxfbG9j
ay4NCiAgICAgICAgICAqLw0KICAgICAgICAgcmMgPSAtRVJFU1RBUlQ7DQotICAgICAgICBpZiAo
ICFkb21jdGxfbG9ja19hY3F1aXJlKCkgKQ0KKyAgICAgICAgaWYgKCBJU19FTkFCTEVEKENPTkZJ
R19NR01UX0hZUEVSQ0FMTFMpICYmICFkb21jdGxfbG9ja19hY3F1aXJlKCkgKQ0KICAgICAgICAg
ICAgIGJyZWFrOw0KDQogICAgICAgICByYyA9IDA7DQpAQCAtNDMzNCw3ICs0MzM0LDggQEAgc3Rh
dGljIGludCBodm1fc2V0X3BhcmFtKHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IGluZGV4LCB1
aW50NjRfdCB2YWx1ZSkNCiAgICAgICAgICAgICBwYWdpbmdfdXBkYXRlX2NyMyh2LCBmYWxzZSk7
DQogICAgICAgICBkb21haW5fdW5wYXVzZShkKTsNCg0KLSAgICAgICAgZG9tY3RsX2xvY2tfcmVs
ZWFzZSgpOw0KKyAgICAgICAgaWYgKCBJU19FTkFCTEVEKENPTkZJR19NR01UX0hZUEVSQ0FMTFMp
ICkNCisgICAgICAgICAgICBkb21jdGxfbG9ja19yZWxlYXNlKCk7DQogICAgICAgICBicmVhazsN
CiAgICAgY2FzZSBIVk1fUEFSQU1fRE1fRE9NQUlOOg0KICAgICAgICAgLyogVGhlIG9ubHkgdmFs
dWUgdGhpcyBzaG91bGQgZXZlciBiZSBzZXQgdG8gaXMgRE9NSURfU0VMRiAqLw0KYGBgDQoNCj4N
Cj4gSmFuDQo=


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 06:58:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 06:58:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164422.1491385 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLFfR-0000dY-7L; Tue, 18 Nov 2025 06:58:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164422.1491385; Tue, 18 Nov 2025 06: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 1vLFfR-0000dR-2w; Tue, 18 Nov 2025 06:58:21 +0000
Received: by outflank-mailman (input) for mailman id 1164422;
 Tue, 18 Nov 2025 06:58: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=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLFfP-0000dL-WB
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 06:58:20 +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 f6273e8f-c44b-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 07:58:18 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-42b2a0c18caso2658326f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 22:58:18 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a80:314a:d80f:dc29:6f97?
 (p200300cab70c6a80314ad80fdc296f97.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a80:314a:d80f:dc29:6f97])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42b53f2084dsm30917727f8f.42.2025.11.17.22.58.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 22:58: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: f6273e8f-c44b-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763449097; x=1764053897; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yLScSLEPsZrg35Qd7AVFqHRO+dbmG9wCDaTv26kQemI=;
        b=QpOhqGCunAOswkVnrx++L3dqFYbVbIEMp1q2qzIZldiVP5oSd8OEr8PJu9a0Iau01K
         WBULOmaxKSa+hAk7TNa+H0TDYD63veDG5CJTC2GqBiSSzJ8EZMEkpFz3QTKf4dQdbqR8
         YWAFjAEPynkwSk92rFsb9XXxaQm9bNeytBjRXwpFh/s5bw+/T+Ceb8wCuw/bwz6MV+Sg
         S/5gcZXrt2cs3Kps0KCyJ+QmawG9NZBBZK+CEJJXfMxEl49QF8Beky2UyjTgI3kVuVii
         KWPfbEHcOUO66YSlkTLL7jfxmhiTmw8oVlDI4MP8iMckzK8sYHywUYXgxHPuDsTvwSCe
         uGfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763449097; x=1764053897;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yLScSLEPsZrg35Qd7AVFqHRO+dbmG9wCDaTv26kQemI=;
        b=EPSl5aEIU9jt17qxgk1hLbZlEaNyOVmkHdzMFwK08zYcbaIVMg5NyCuA7TS4ikskSR
         PJ1Nf65B7tm2FcLDWvle0besOshFHVZWFk5Hq58Dz2KUhc/14sIwA01XBF7lLm6VMdg0
         rLSbhyof96fw+0miWH4cJoKnk3bvAzlW+m//Jf/BlRaWDCR1HB+Zj9sAcqvnzp7BHf1W
         U8Sc0BJrMbq1lpmbagGRX4e4e8e4DZymcg+c0I+JxspWRs3Z6j2GYI0AkxSdHhei2Ifg
         MS9NCJvzon7/CEOKWpKEKFoGgIGTegzUsZygYMbggKviBZBBj4o1RzEHzUns3t+/xq0M
         5W4g==
X-Forwarded-Encrypted: i=1; AJvYcCWDYWo7qqKaV9EgoezQM8x+9nUeVBieOdKrYFbfqMkdNQwktr9/xtcX1xJ0tGzm8slLiAEQqm7zjDY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxAinpoSYKcSF/tmu1Da20u4RAFvYOMLkydTA2BV5lA4uMgHw/7
	N8En1WAairUPAaEe7dzYp3CAeUEOS28p2zMxIRdExn1xuZhB2ZpP7F+rehdELwPyyA==
X-Gm-Gg: ASbGncts2FhwVo1rcx0AEpAPfZWuygBbn2/u3UJNUHBNs23IBn1JVV3nkGTsSpYF4Aw
	Tjhx7bwFCHHSGxdkXDmMAwy547S5Y0/ZmZdqGqow0nZ+0lNXfv4Jd5ZelTbXTduuXIItE0XEtAy
	QgOAkT1As0oUZnQuvs8gT5u8XmzNd3ePMWFyo58jTE6d3BKOKopCTp+uwqkI183lgM6F6Lc8VD+
	m1NEf17j25uCjnGWMKwIptoPm5F1vMTXvIebchHYAW5DmQPdud2r/eCqhHxVTVia4zncrF0cAMP
	K4CIulp8E1Z6UuINAX0EmIsPXGf+KmFI8JUs/K627Jm3UBH7pF9HbSx8DkeDNva5U6NbHx+qFAW
	oRr+V9C9Mm2sPpSRGboYnw9HMreLNmQJfqTxBcF+vWO30dxuLBpkHBoWrZkfhKo/dgjCC0cmnIW
	M75vOz1sJXFUQa6YKERIoDYLmGRoKWmueISgTnyn5v/fc9FFf1BMhoF1puxmeugkCFucYTLSpbN
	j7v2aUTfIr5rCowOgtO5Sz6VIlWgEoeUnTB8pVhMur2buGj
X-Google-Smtp-Source: AGHT+IG2qFhieg+0OXcOKRUz9n6bMMJONxwuueDKHMQdb0pawwaJcwxjXgrzKMmrogMvnlVU14sMoA==
X-Received: by 2002:a05:6000:310b:b0:3eb:9447:b97a with SMTP id ffacd0b85a97d-42b595b8004mr15365601f8f.54.1763449097417;
        Mon, 17 Nov 2025 22:58:17 -0800 (PST)
Message-ID: <6f431394-5c08-4974-85ae-4b38f1975289@suse.com>
Date: Tue, 18 Nov 2025 07:58:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 18/18] xen/riscv: introduce metadata table to store
 P2M type
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <d291d2efe7dcc6ddd3d16677a81c57d755c7ada2.1760974017.git.oleksii.kurochko@gmail.com>
 <6a5a9f4e-1f0e-453f-b1d1-d0e2acf97e2a@suse.com>
 <5d4ec4d9-b4c1-4365-a343-f42b390da165@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: <5d4ec4d9-b4c1-4365-a343-f42b390da165@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.11.2025 20:51, Oleksii Kurochko wrote:
> On 11/12/25 12:49 PM, Jan Beulich wrote:
>> On 20.10.2025 17:58, Oleksii Kurochko wrote:
>>> +Â Â Â  if ( *md_pg )
>>> +Â Â Â Â Â Â Â  metadata = __map_domain_page(*md_pg);
>>> +
>>> +Â Â Â  if ( t < p2m_first_external )
>>> +Â Â Â  {
>>> Â Â Â Â Â Â Â Â Â  pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>>> Â  -Â Â Â  return rc;
>>> +Â Â Â Â Â Â Â  if ( metadata )
>>> +Â Â Â Â Â Â Â Â Â Â Â  metadata[ctx->index].pte = p2m_invalid;
>> Shouldn't this be accompanied with a BUILD_BUG_ON(p2m_invalid), as otherwise
>> p2m_alloc_page()'s clearing of the page won't have the intended effect?
> 
> I think that, at least, at the moment we are always explicitly set p2m type and
> do not rely on that by default 0==p2m_invalid.

You don't, and ...

> Just to be safe, I will add after "if ( metadata )" suggested
> BUILD_BUG_ON(p2m_invalid):
> Â Â Â Â Â Â Â  if ( metadata )
> Â Â Â Â Â Â Â Â Â Â Â  metadata[ctx->index].type = p2m_invalid;
> Â Â Â Â Â Â Â  Â Â Â Â Â Â Â  /*
> Â Â Â Â Â Â Â Â  * metadata.type is expected to be p2m_invalid (0) after the page is
> Â Â Â Â Â Â Â Â  * allocated and zero-initialized in p2m_alloc_page().
> Â Â Â Â Â Â Â Â  */
> Â Â Â Â Â Â Â  BUILD_BUG_ON(p2m_invalid);
> ...

... this leaves me with the impression that you didn't read my reply correctly.
p2m_alloc_page() clear the page, thus _implicitly_ setting all entries to
p2m_invalid. That's where the BUILD_BUG_ON() would want to go (the call site,
ftaod).

>>> +Â Â Â  }
>>> +Â Â Â  else
>>> +Â Â Â  {
>>> +Â Â Â Â Â Â Â  pte->pte |= MASK_INSR(p2m_ext_storage, P2M_TYPE_PTE_BITS_MASK);
>>> +
>>> +Â Â Â Â Â Â Â  metadata[ctx->index].pte = t;
>> If you set t to p2m_ext_storage here, the pte->pte updating could be moved ...
> 
> 't' shouldn't be passed as 'p2m_ext_storage'.

Of course not. I said "set", not "pass". I suggested to set t to p2m_ext_storage
right after the assignment above. I notice though that I missed ...

> For example, in this case we will have that in metadata page we will have type
> equal to p2m_ext_storage and then in pte->pte will have the type set to
> p2m_ext_storage, and the we end that we don't have a real type stored somewhere.
> Even more, metadata.pte shouldn't be used to store p2m_ext_storage, only
> p2m_invalid and types mentioned in enum p2m_t after p2m_ext_storage.
> 
>>
>>> +Â Â Â  }
>> ... here, covering both cases. Overally this may then be easier as
>>
>> Â Â Â Â  if ( t >= p2m_first_external )
>> Â Â Â Â Â Â Â Â  metadata[ctx->index].pte = t;

... the respective line (and the figure braces which are the needed) here:

        t = p2m_ext_storage;

>> Â Â Â Â  else if ( metadata )
>> Â Â Â Â Â Â Â Â  metadata[ctx->index].pte = p2m_invalid;
>>
>> Â Â Â Â  pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>>
>> Then raising the question whether it couldn't still be the real type that's
>> stored in metadata[] even for t < p2m_first_external. That woiuld further
>> reduce conditionals.
> 
> It would be nice, but I think that at the moment we canâ€™t do that. As I explained
> above, 't' should not normally be passed as p2m_ext_storage.

Of course not, but how's that relevant to storing the _real_ type in the
metadata page even when it's one which can also can be stored in the PTE?
As said, for a frequently used path it may help to reduce the number of
conditionals here.

>>> +static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
>>> +
>>> +/*
>>> + * Free page table's page and metadata page linked to page table's page.
>>> + */
>>> +static void p2m_free_table(struct p2m_domain *p2m, struct page_info *tbl_pg)
>>> +{
>>> +Â Â Â  if ( tbl_pg->v.md.pg )
>>> +Â Â Â Â Â Â Â  p2m_free_page(p2m, tbl_pg->v.md.pg);
>> To play safe, maybe better also clear tbl_pg->v.md.pg?
> 
> I thought it would be enough to clear it during allocation in p2m_alloc_page(),
> since I'm not sure it is critical if md.pg data were somehow leaked and read.
> But to be safer, we can add this here:
> Â Â  clear_and_clean_page(tbl_pg->v.md.pg, p2m->clean_dcache);

I didn't say clear what tbl_pg->v.md.pg points to, though. I suggested to clear
the struct field itself.

>>> @@ -749,6 +849,10 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
>>> Â Â Â Â Â  unsigned int next_level = level - 1;
>>> Â Â Â Â Â  unsigned int level_order = P2M_LEVEL_ORDER(next_level);
>>> Â  +Â Â Â  struct p2m_pte_ctx p2m_pte_ctx;
>> I think this would better be one variable instance per scope where it's needed,
>> and then using an initzializer. Or else ...
>>
>>> +Â Â Â  /* Init with p2m_invalid just to make compiler happy. */
>>> +Â Â Â  p2m_type_t old_type = p2m_invalid;
>>> +
>>> Â Â Â Â Â  /*
>>> Â Â Â Â Â Â  * This should only be called with target != level and the entry is
>>> Â Â Â Â Â Â  * a superpage.
>>> @@ -770,6 +874,19 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
>>> Â  Â Â Â Â Â  table = __map_domain_page(page);
>>> Â  +Â Â Â  if ( MASK_EXTR(entry->pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage )
>>> +Â Â Â  {
>>> +Â Â Â Â Â Â Â  p2m_pte_ctx.pt_page = tbl_pg;
>>> +Â Â Â Â Â Â Â  p2m_pte_ctx.index = offsets[level];
>>> +Â Â Â Â Â Â Â  /*
>>> +Â Â Â Â Â Â Â Â  * It doesn't really matter what is a value for a level as
>>> +Â Â Â Â Â Â Â Â  * p2m_get_type() doesn't need it, so it is initialized just in case.
>>> +Â Â Â Â Â Â Â Â  */
>>> +Â Â Â Â Â Â Â  p2m_pte_ctx.level = level;
>>> +
>>> +Â Â Â Â Â Â Â  old_type = p2m_get_type(*entry, &p2m_pte_ctx);
>>> +Â Â Â  }
>>> +
>>> Â Â Â Â Â  for ( i = 0; i < P2M_PAGETABLE_ENTRIES(next_level); i++ )
>>> Â Â Â Â Â  {
>>> Â Â Â Â Â Â Â Â Â  pte_t *new_entry = table + i;
>>> @@ -781,6 +898,15 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
>>> Â Â Â Â Â Â Â Â Â  pte = *entry;
>>> Â Â Â Â Â Â Â Â Â  pte_set_mfn(&pte, mfn_add(mfn, i << level_order));
>>> Â  +Â Â Â Â Â Â Â  if ( MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage )
>>> +Â Â Â Â Â Â Â  {
>>> +Â Â Â Â Â Â Â Â Â Â Â  p2m_pte_ctx.pt_page = page;
>>> +Â Â Â Â Â Â Â Â Â Â Â  p2m_pte_ctx.index = i;
>>> +Â Â Â Â Â Â Â Â Â Â Â  p2m_pte_ctx.level = next_level;
>> ... why are the loop-invariat fields not filled ahead of the loop here?
> 
> Actually, they could be filled before the loop. If I move the initialization of
> p2m_pte_ctx.pt_page and p2m_pte_ctx.level ahead of the loop, does it still make
> sense to have a separate variable inside
> "if (MASK_EXTR(entry->pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage)"?

No, it's one of the two - scope limited variable within the loop, or wider-scope
variable with loop-invariant fields set ahead of the loop.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 07:11:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 07:11:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164434.1491394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLFsD-0003Pw-7M; Tue, 18 Nov 2025 07:11:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164434.1491394; Tue, 18 Nov 2025 07:11:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLFsD-0003Pp-4T; Tue, 18 Nov 2025 07:11:33 +0000
Received: by outflank-mailman (input) for mailman id 1164434;
 Tue, 18 Nov 2025 07: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=g+ix=52=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vLFsC-0003OX-Ic
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 07:11:32 +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 cdad7f73-c44d-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 08:11:30 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 MW4PR12MB7335.namprd12.prod.outlook.com (2603:10b6:303:22b::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.21; Tue, 18 Nov
 2025 07:11:25 +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.9343.009; Tue, 18 Nov 2025
 07:11: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: cdad7f73-c44d-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GbJRQnuvT09vw9gzuvTl2djpO0sZYPLdzxiLpX0XqpcYhMU36A9aQfOO+DSg8QZY8Pqww/Ow692bupctY1FWYVaUC1Mq5DO+ci6aG4JhpEF9ZvWuzdtHJn7P6M7BNDKzlXVOhDCDxtk2GEtOl+PLSgJZ+rXcYd27J5qnI/pNAJzrbkDlrU4vrx0uttBGWyYNXI1XHXKWE1d7E47jHuWM/2Q/JGi5NSj1Iy3Fbnw3xggrzcvIUwtHVhwXlY3208vr3ORLX0+3E5aeP55cgUokBjdCBKM1plYc4QYCwt7Fok8nAdcOVAArgUGSFvCqylDDeFwz4/hdMEJ95J/Pr7nMmQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=odISFh7aI4OENhrTZCmHg4xZT4MHYQ0tgnMz9bD6XQA=;
 b=C4CrXPamnyZjcPrfaPsDx4AwURoaBcT1WCAGxugkUHo8eB8ACzUb6gvC3QMnGBtim3Z3rfB21qsiRap6XB8CY/pbrjg7MfFgCwQ0LnkCtsbCpNF47vaVAfLen6VGutLZnu9m+HgRy5M5lvIYUj6dBbMMumUV/NQCIWevh8tcUPrbeKv82Xr9728HWq53odxbKIxBNZZtX/JUOpVQp3uXTUclY9Xu+mGlQG1bwYWS/dlqmja0BAIaOpV12rtxCghrSKQQqn+WFp8t1uSAH1Amye/W9TgAqe/Gsd1ahbAeKa7QfpyZq5Zurt0ApP1X5tKHvbX++P72vhmWiRCmiMD0aQ==
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=odISFh7aI4OENhrTZCmHg4xZT4MHYQ0tgnMz9bD6XQA=;
 b=UHQBPXskQO9GShEs0UMuNp7H7Z+IxUvKJgfDRz46P4uBc3B5925uOchtENtoKHVQ7RV8Xy3QUeBlrtaJPjZD8xBnqIdOOmCRTvi8bsHM0Cyke7BqfcsgMxvkmWT1+dAkAUtRppF29eD8gl0PNseymMEdIpFtkSMna3ZD/7pMkW4=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, "Andryuk, Jason"
	<Jason.Andryuk@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v1 1/7] xen/svm: limit the scope of "rc"
Thread-Topic: [PATCH v1 1/7] xen/svm: limit the scope of "rc"
Thread-Index: AQHcVEv7QeZ+fg/ABkeiD8Kl9SvRY7TwTjSAgAe47rA=
Date: Tue, 18 Nov 2025 07:11:25 +0000
Message-ID:
 <DM4PR12MB845149F3F5C2262969771FCDE1D6A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251113031630.1465599-1-Penny.Zheng@amd.com>
 <20251113031630.1465599-2-Penny.Zheng@amd.com>
 <8304ea57-0574-482b-a2ea-e1dadc58656e@suse.com>
In-Reply-To: <8304ea57-0574-482b-a2ea-e1dadc58656e@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-11-18T06:55:07.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|MW4PR12MB7335:EE_
x-ms-office365-filtering-correlation-id: 13f8bd27-c8fa-4711-25e1-08de2671afb9
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?TUJlcWhZTzNWdW42S3VmZzZWL25UWTNMZ29oUHkyc0o1dTlJMjhjbHhDV3NQ?=
 =?utf-8?B?bEg5KzRxU1k2TW1sS2YyVitTZE1NeGQvZ2pma0tWWWgyTEkrQk5uWk5wMzFI?=
 =?utf-8?B?Zlo2Z0pYbHcwRDBPVWJ4ZHdiYm1LNllpTjZKYklYUld1YjhCNTdlbFZKQU9l?=
 =?utf-8?B?QVZWWmpmYnFYZ04wUTdUVm8vYUJIYk1nallRVHBGUVpRVG1sSDVsdHZqT2JK?=
 =?utf-8?B?WG5YNHFKMXVLZzJ6aFlXdm50RlFWeW1sNzgxR3RlM01UMUVSWmdjL3ZGU3Vp?=
 =?utf-8?B?OUdGUHFjQWlMa2Q1OFk5NWtpdFN5cEJ6cjI5QmdzODNsVWhVU2dQTjE5cDhN?=
 =?utf-8?B?dUR4dFdYTEhFUk92QVl4V1g0bk1raWt5MVExbkNwdzI1cFdlMjltNjFtcXJp?=
 =?utf-8?B?alZjMmVUREtMYkpYSld5RnNDUXBrc3QyaFZ1ek1iTHBFYXZmbmcxWDVzcUtx?=
 =?utf-8?B?QjdMYVhQTHR4NzNDZXF2ZnZHc3JtZ2dteCtndUc5ZXVycDN1aFVzbGpOSEk3?=
 =?utf-8?B?RU1XRHZsdnNXS3lCVmpNUCttUWZoZm5PRldMSjYyK2VQSHp4MmgvZTRCV2h2?=
 =?utf-8?B?REJNMGlFUmpYOUVTaVk2UlhpMXA3S1FGcC91dSthWmhHdFVvSzFnWmNnSitP?=
 =?utf-8?B?cHp3WFBMSHVLNHZUVEgxVW1Iak1QQXdxU3BFcmlkMmd3K3hvdzRBRDZyQ0Na?=
 =?utf-8?B?U2l6VHJkd1lFdXltZ1FoZmUwNlBPMHNiOU8rRjBtZytCNTN4djZKWUVSa3pr?=
 =?utf-8?B?YWFRYjZQMjVWMUlOVE14QWlGNUxyNVRlMTJweC9PUUJQZ2RrUVBOU1UzdVJ4?=
 =?utf-8?B?NTN6SEZ3YnFMRjdqTVpvS2UyMzE4b01DVldsVzBSd0RuSlk3WElEcTdZRmh3?=
 =?utf-8?B?MHN4MGV6ZXcrUmp1M2JjdzI5MlhjZ0M0cWZwUHNPSkMrTUNGYVlEdlNCcFNU?=
 =?utf-8?B?UFNjTUNQVWhTc0xzTC9VQUdGb0pEOTdNOHd4QTlKZXcrSWExTy9FbnljWHlE?=
 =?utf-8?B?clJsMXBwcnR4WTVHNGJZUkRzYmN1TEN2YUVUUkNlWDEvTUxqTENGZ3Z3U1h0?=
 =?utf-8?B?cmI0aFNRQ2JRV1h3b0lNa2RGN1NOeGszSUhDM2YvajR0dnFoVGQ3cTlla016?=
 =?utf-8?B?cjJZVWhGeEp1bXlqMmVsSUZFUjJMOVFNTnlWWC9vcERFZHZ4aDRKM1FMM3dV?=
 =?utf-8?B?NUFlWk5TM2NaTGdQRWtGM0JwWUhyREZ2MEszSmVuaHM0bkVCMnp6aTdjdnE1?=
 =?utf-8?B?aUloaGJJbi9xZHdTU1Q5THY1Mk5lVnFzL3pwMzBOYkRmNFNXOUFIMTlpWFNz?=
 =?utf-8?B?TG81MS9QVkZLMUo0dWJkVENxNFdVR0NJSFlWd3NsYXB2aG9OVmJhVENTNG1R?=
 =?utf-8?B?aHZiZTZBS1hzbktNNW5hWnhvRmplTE01V3Y0ZGVKQmtJbzVjcHZwamdBd1ls?=
 =?utf-8?B?cWExY2FDOUQzd0RTdnNWcG8wbFhWZ3JaOGxScGtseWFJb3NqNFhncUZ3WlYv?=
 =?utf-8?B?UFlYUzRBcVMveVBab0xzNDQvenpwdlRVVko5NHhMZUFBU0NBRTVGUnR3bERp?=
 =?utf-8?B?Yjg0N25uSFFUcTQraFRueXhINlhWS3MvbTJ3RG1hWXhtSWlXWUhWVWk2OEhH?=
 =?utf-8?B?WlBHZ3dZY3dkT0p3OEg4a1kxbzNEeVQrMmxGVjAwMHFBV09FVVlGc1hHanQz?=
 =?utf-8?B?SWFrTzM1cGFKN2FmNysxQnVEV2t6emVROFc5cXYzUHUvZkxvMU5DL3FOWDJ0?=
 =?utf-8?B?aHpDTmZ2VHVPeDJzRHJxdEZiWGpmV1JTanBvaGFpeHJFczJ1aFU1bllyR0Vw?=
 =?utf-8?B?K0t0MWwyQ20zZTZBY1NDY0VqTnk0cUxVY1dTQVlQYXd3NWtZdFNYVlRXS1hT?=
 =?utf-8?B?SUl4TEFaR2hjY011MU56UHZ2Mk9maDhRYTNyeWh0MXFJTjZubysxSm5IUktE?=
 =?utf-8?B?VUEvczVoRjVIcXpNMHEvMk81bWt3WXk0eFdha25pMGVTaUJHMWVRZng1ODZ2?=
 =?utf-8?B?Qmp6dzF0WWYwb0JuNU9yNDIrY0NKa21EYmcxUW50ZFBPSG5lYXBPeEVrR3Zr?=
 =?utf-8?Q?XFNvmg?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MHArQVh6RXN1b0pVMFNrQ1U2WUxiSVRDViszVGhRdllMdktYSDEwVFNmL2lW?=
 =?utf-8?B?bnl2VFU2Q0pDT0RvcjhJME94cnZCUnZ5anhQeEt1MkV2OHdZVUFOK3hJMk9F?=
 =?utf-8?B?N01aV2RXUjFyUzFVR0JOZGtLOGtzYWFCNjZsYUZWSlZ2Y3FOUmppTEJKNnBo?=
 =?utf-8?B?djQwck00OVFtaGR1emZucm5iVk1VSFdiTHR4RENXcGpSMkJ5NXlPZTR4QjR1?=
 =?utf-8?B?anJXTTlJdEh4c0hYYS9SOThTUkhJNmdNdmVrdFg4Yy9QVzZtNXlwN3ZqQTgv?=
 =?utf-8?B?WmE5KzBEUTVHTXcyUmN3WDhueTFOcUdmZXdEakwrMnkyU1pPZzFjV3NEWlFV?=
 =?utf-8?B?V2VhTk1UQ2thaGk2MjVRQlJzSlJrQWEzSjFXNlliNWg4dUkrSE50UUdSOUJT?=
 =?utf-8?B?dTlkanRHdjNSYVlNRU5wT1ZVQkIwLzRTeWNOYnhzVm9rK25rcVJETzBKYWlm?=
 =?utf-8?B?UTJXZGRrWmt3bGhVVnphWW1SQUNoZUREaTR6UUhMb2FCTmxjaG4wSjloaUFF?=
 =?utf-8?B?c3RTMm04ZWJ4RVpEYVh5U1JJMC9XekZCQ2paM1oreWJJOGcreEQ2R1dTRnM5?=
 =?utf-8?B?U0NHR1F5ZEg4M0hZVXcwZE9GUzMzM21WU21LNzQ5cHVuaUlkcnVTSU82NmZo?=
 =?utf-8?B?V05PS0ZnSjNNUEt2a0xNT3JwcUVJWGdLZGNlbW1MTFgvRjlPZys4VWhhbm5K?=
 =?utf-8?B?b2dKK3h1ckhDS1Y3OElZWHN0eFREeVBveGxHQi9LZnhjVzNIbVlNUC9uVGx0?=
 =?utf-8?B?TnhIckc3UjZpQit2L2FLTzJzOGFlaDlOTGxGYVlibzREN3VFSW9ENzB1dVU3?=
 =?utf-8?B?bzNCeVozZnJtbzUvUHREdWtyTEFOK2NVZjluek45SG12ZWVFYURKaEMwcVhn?=
 =?utf-8?B?QVlwZnE1eUJucEJPTVowYnJ1WWR5alF5K0NYc1pOL0pvalJ2TUNjSEcxNGMx?=
 =?utf-8?B?cGx3TjNZK1pFWXBKZ2M2aGpLbmFJRStHbmdJdExMY2kyQ0REZkF1K2NJYUlq?=
 =?utf-8?B?RitpVU4xTDgrUy9lbXBkTHFZSC81VWhEaUZOckRGSzhjNm9kUzVJbW9VcGpn?=
 =?utf-8?B?d3hpeVRPUW9nSGpkV0ZQWGpzRkJEdnVGOVROd1VpYlhOdXl5WEdmSW5xV09z?=
 =?utf-8?B?alNFS09hanVVeWcrVUlDTTk3RnRkZ3VFUWJhaWdGeUdHaFo1UVFyVnlIUzMw?=
 =?utf-8?B?MDRvNmU0aFZmeG9oRXlFWHROajBEck9YbWVaVnBDcUpHeVpnZlF4aWIwbU51?=
 =?utf-8?B?T0lURWNCUHFMaTlidXRiMWxLM0hMdnc3VktDSk56Tm5MdU1OdW1TbjRqRlZT?=
 =?utf-8?B?dzNnd3dEaFh1YjBEemhWUndkdWVaN2F1cWRTSGFCY3N2cWdCTzBPN0ZGbDBG?=
 =?utf-8?B?NFFRWi9QYmJIVzlNN3dLVG1ZMWhDTG1ZS2V3TzBLRzhENU5LTkNMNXFIOWs2?=
 =?utf-8?B?OThoYUVjR2krRGt0dnRwV0FXTThkVlNrUm95Tkx3MUE1elJLZEF4eWtjUFk1?=
 =?utf-8?B?VHNZTmRzdXJOMHNiNUNkMm9qakc5VElJcEJXdzgyVENaeWpJYTFvQ3B6UUhn?=
 =?utf-8?B?VGdOd0dXOE0vN3U1bnowYWlqeC9zNm9JTGFhT2pwVzFWUWQxTHpxVHdpTk8y?=
 =?utf-8?B?K1pyNlI2cWc1SVFDYy94aWRMZTNISmdkOXQ2aE9zUThRTFhuOG5nOHRsSFVS?=
 =?utf-8?B?ei84U2RWZ2lmcldsSDV3VDNpR01YeHo5MEk5akJVUkZBODhvc2ozSzRVdzBp?=
 =?utf-8?B?Q1p2SXpFY1VPR3pIZmxDczd1MlY5M1FHZkFnaEFVY2ZzNFBqS3dOWVRXaGhS?=
 =?utf-8?B?YUs4MVJNZFVEc0dOTGppU0lFbnFqak1lOUV3MFFqUkNDK2FHOWNJUGl0M0Ev?=
 =?utf-8?B?MlBOdk5JMDBmbUJRbk4zUU1vSEZ5WEJPRWZkdUpXUWxBVHN4c04vbHZCcnJp?=
 =?utf-8?B?SHVGTElIYmZISUNyYnVLUkRKNHVoNmtKcHBaRjhOaFYyOEtxNE5tWDlTR3hn?=
 =?utf-8?B?ckdyanhDaS82MVBWVEVja0VDTFVBT0V3bm9zZHI5OVkwQksvNnFhc2ZXSU9s?=
 =?utf-8?B?UlFOMWdkOVh2YmRyb29mMG1USVFaSWViaWVEL1BFcWoxakRRTjRlV1ZNVDFX?=
 =?utf-8?Q?rFYg=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 13f8bd27-c8fa-4711-25e1-08de2671afb9
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2025 07:11:25.3728
 (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: z4c5E/idqGFk8PndH5jr+RYn1aHG+T/4e1tkJCHm8A5rMRueTKh9VgGOOVcRefrMO1clgPd1XiVxNLokCfVxZg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7335

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBOb3ZlbWJlciAxMywg
MjAyNSA0OjU2IFBNDQo+IFRvOiBQZW5ueSwgWmhlbmcgPHBlbm55LnpoZW5nQGFtZC5jb20+DQo+
IENjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPjsgUm9nZXIgUGF1
IE1vbm7DqQ0KPiA8cm9nZXIucGF1QGNpdHJpeC5jb20+OyBBbmRyeXVrLCBKYXNvbiA8SmFzb24u
QW5kcnl1a0BhbWQuY29tPjsgeGVuLQ0KPiBkZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBT
dWJqZWN0OiBSZTogW1BBVENIIHYxIDEvN10geGVuL3N2bTogbGltaXQgdGhlIHNjb3BlIG9mICJy
YyINCj4NCj4gT24gMTMuMTEuMjAyNSAwNDoxNiwgUGVubnkgWmhlbmcgd3JvdGU6DQo+ID4gVG8g
bWFrZSBjb2RlcyBsZXNzIGZyYWdpbGUsIHdlIGxpbWl0IHRoZSBzY29wZSBvZiAicmMiIHRocm91
Z2ggYWRkaW5nDQo+ID4gc2V2ZXJhbCBpbnN0YW5jZXMgaW4gcmVsYXRpdmVseSBuYXJyb3cgc2Nv
cGVzLiBXZSBhbHNvIGZpeGVzIHdyb25nIGluZGVudGF0aW9uLg0KPiA+DQo+ID4gU3VnZ2VzdGVk
LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTog
UGVubnkgWmhlbmcgPFBlbm55LlpoZW5nQGFtZC5jb20+DQo+DQo+IFJldmlld2VkLWJ5OiBKYW4g
QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+DQoNClRoeA0KDQo+ID4gQEAgLTI3NDgsMTYg
KzI3NDksMTggQEAgdm9pZCBhc21saW5rYWdlIHN2bV92bWV4aXRfaGFuZGxlcih2b2lkKQ0KPiA+
ICAgICAgICAgIH0NCj4gPiAgICAgICAgICBlbHNlDQo+ID4gICAgICAgICAgew0KPiA+IC0gICAg
ICAgICAgIHJjID0gaHZtX21vbml0b3JfZGVidWcocmVncy0+cmlwLA0KPiA+IC0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgSFZNX01PTklUT1JfU09GVFdBUkVfQlJFQUtQT0lOVCwN
Cj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFg4Nl9FVF9TV19FWEMsDQo+
ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNuX2xlbiwgMCk7DQo+ID4g
LSAgICAgICAgICAgaWYgKCByYyA8IDAgKQ0KPiA+IC0gICAgICAgICAgICAgICBnb3RvIHVuZXhw
ZWN0ZWRfZXhpdF90eXBlOw0KPiA+IC0gICAgICAgICAgIGlmICggIXJjICkNCj4gPiAtICAgICAg
ICAgICAgICAgaHZtX2luamVjdF9leGNlcHRpb24oWDg2X0VYQ19CUCwNCj4gPiAtICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWDg2X0VUX1NXX0VYQywNCj4gPiAtICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zbl9sZW4sIFg4Nl9FVkVOVF9OT19FQyk7DQo+
ID4gKyAgICAgICAgICAgIGludCByYzsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgIHJjID0gaHZt
X21vbml0b3JfZGVidWcocmVncy0+cmlwLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEhWTV9NT05JVE9SX1NPRlRXQVJFX0JSRUFLUE9JTlQsDQo+ID4gKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWDg2X0VUX1NXX0VYQywNCj4gPiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNuX2xlbiwgMCk7DQo+DQo+IEFzIHlvdSB0b3Vj
aCB0aGUgY29kZSBhbnl3YXksIG1ha2UgdGhpcyB0aGUgaW5pdGlhbGl6ZXIgb2YgcmM/IEFuZCBh
dCB0aGUgc2FtZSB0aW1lDQo+IGpvaW4gdGhlIGxhdHRlciB0d28gbGluZXM/IChJIG1heSB0YWtl
IHRoZSBsaWJlcnR5IG9mIG1ha2luZyB0aGVzZSBhZGp1c3RtZW50cyB3aGlsZQ0KPiBjb21taXR0
aW5nLikNCj4NCg0KVGh4LCBwbHoNCg0KPiBKYW4NCg==


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 07:12:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 07:12:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164447.1491405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLFsq-0003yC-Jn; Tue, 18 Nov 2025 07:12:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164447.1491405; Tue, 18 Nov 2025 07:12:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLFsq-0003y5-GS; Tue, 18 Nov 2025 07:12:12 +0000
Received: by outflank-mailman (input) for mailman id 1164447;
 Tue, 18 Nov 2025 07:12: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=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLFsp-0003OX-AR
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 07:12:11 +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 e65b875a-c44d-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 08:12:10 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-42b3c965cc4so2598509f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 23:12:10 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a80:314a:d80f:dc29:6f97?
 (p200300cab70c6a80314ad80fdc296f97.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a80:314a:d80f:dc29:6f97])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42b53e7ae16sm30408981f8f.3.2025.11.17.23.12.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 23:12: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: e65b875a-c44d-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763449930; x=1764054730; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Hg4OCMZTFuwf/W2EQSjEUN9FmHitJpWENRIhvcvyDy4=;
        b=aQSkbSM9CmfcYtxekybHQTqP9tovCmq5QTBpRZCPv0i82aAUHu0pFrOG0VE58IvDo3
         REIGT23DpTD1zMpitgZN3fhQoVyTNeAwLtNHcE1rk2TJ8v1htohduf1K7E/V/2Bg2vys
         WGvWwzkgPjLztTR1ZuIMN35r3ap3DTHhJpZf+YF87XlxMneg4ZIikbQiWtlYRTl5FuQ2
         cZV+WqzNPsZ8cMRMhlocPMkDoTqimw0zD0aw1AIm5KpFQiH7bnCUTKNP8EzuOwPaNj2a
         xuwDquxr2Z+qmRjZXqQFH+R9jZNm+waMjn1idtOEPtDird5O8EqqmQTTDR78aObKj5tt
         iw1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763449930; x=1764054730;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Hg4OCMZTFuwf/W2EQSjEUN9FmHitJpWENRIhvcvyDy4=;
        b=OteQXQsx/Hk51lzTB7KAscqKP7vGWefdlMCKK1QAD0AJz1EOTvEX6PVfJJwaGt4nXb
         qsEiFt/ci1LGY8uuxYG/J12VC0CgOS+zMKfKsXD8mzeUJvIJ4BG2JSe3P45hNScGB7p+
         IwNftE2UFj6VUM38nVweUwmYPO0FVZW+LQtpyHvoWss75BepXlcb2RRL3ZMi2GKu6EVd
         qAt2rBpMrkRd3ro2ahDLKw58E3eUO2aoPLZvUodan44lflbFljeKoyrZQYrB147Bq59z
         vYlRMVBKTx4lwScYmWJFI75vDljYk/eUyeK0GsSA3gd4NrByBQy3SF+moJqzf4CDctcw
         raOQ==
X-Forwarded-Encrypted: i=1; AJvYcCUJy9+bmCqxXtQnvvfvztdy2K7ac6385W8edcqPsB6dhfWQJ33HsrgX5v210FuysveOjKLfUIzQHqE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyqjfbAHQJ9yasQPTr62lffKK12JhvZbm9Q4yZ5ybCCK6HILK+L
	PO7UeTgq9dBc+5Kxc7psg8zog64HhhmuCCTHt/bZhn/mTMVH7mDl4QbO/HuH0XJSsg==
X-Gm-Gg: ASbGncsr66Id9ZV49daabMMV31WL/F17fXFKh/2L35QymEDoH+d8g+To3iX2CdR2uvM
	jCua3exulV2R1pRBj1L5mSH+SgaH7nxuLAHE6C1EhoAgE/JOhHc5bokCs5ZgO24zLHGPWM6h1L6
	apcBVs5uIrAaJv8jkbLboTSDlHxAK3IL7qVew1rKSPUF+/6gw1RLk2Is6/c/RGwS3mmNNBSj29C
	nQM+NIDi5doQBIfM1bUDQ4y43E3AARdjuFe7YBxJOYcsHjEv9nmMHMFg5BAbzNn/qP32hZnpLqM
	bzVdCZwrVam8hOiNppUGYbn6ObAh5cReon50/Kin0IVdfcd1TES4iC+aN4R09pXma6Z5pZUttVS
	R88PgSZWGtak7MQzh114nyyF1JDmjGBjBcYDIFe0doZhlfjmqztiKyuRMmbliFOybMi4LOTbcqm
	/gdIBE1reLiKd0FDb3vMGAi5CAUORC72sK5/ABGnvHfUA2SESBH+aM9KDXuGQN40GrAOK/y6StU
	BCPI+RsROU3YkdkoaP8ewgz15u7GRrIk8AJ+BaM0kAX5TCg0fGtfeeDVBA=
X-Google-Smtp-Source: AGHT+IGBNBmz7lbIgsO4BB/MQTtFm1FQCEzqWeHumSi3a4dxlGW7tBQnhb9cT6QwRfg/Y/9/swBXsA==
X-Received: by 2002:a05:6000:18a8:b0:429:eb05:1c69 with SMTP id ffacd0b85a97d-42ca8678447mr1887850f8f.2.1763449929984;
        Mon, 17 Nov 2025 23:12:09 -0800 (PST)
Message-ID: <0ff1d79b-a7c2-4fc0-a335-17cbdb977dfc@suse.com>
Date: Tue, 18 Nov 2025 08:12:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 27/28] xen/domctl: make HVM_PARAM_IDENT_PT conditional
 upon CONFIG_MGMT_HYPERCALLS
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 "oleksii.kurochko@gmail.com" <oleksii.kurochko@gmail.com>,
 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: <20251013101540.3502842-1-Penny.Zheng@amd.com>
 <20251013101540.3502842-28-Penny.Zheng@amd.com>
 <af8eb5b1-80fd-477c-9b50-29041ae93088@suse.com>
 <DM4PR12MB8451BC18FAF3D9B97F84B604E1D6A@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: <DM4PR12MB8451BC18FAF3D9B97F84B604E1D6A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.11.2025 07:45, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Thursday, October 30, 2025 9:35 PM
>> To: Penny, Zheng <penny.zheng@amd.com>
>> Cc: Huang, Ray <Ray.Huang@amd.com>; oleksii.kurochko@gmail.com; Andrew
>> Cooper <andrew.cooper3@citrix.com>; Roger Pau MonnÃ© <roger.pau@citrix.com>;
>> xen-devel@lists.xenproject.org
>> Subject: Re: [PATCH v3 27/28] xen/domctl: make HVM_PARAM_IDENT_PT
>> conditional upon CONFIG_MGMT_HYPERCALLS
>>
>> On 13.10.2025 12:15, Penny Zheng wrote:
>>> Helper domctl_lock_{acquire,release} is domctl_lock, which
>>> HVM_PARAM_IDENT_PT uses to ensure synchronization and hence being a
>> toolstack-only operation.
>>> So we shall make HVM_PARAM_IDENT_PT conditional upon
>>> CONFIG_MGMT_HYPERCALLS, returning -EOPNOTSUPP when
>> MGMT_HYPERCALLS=n.
>>>
>>> Suggested-by: Jan Beulich <jbeulich@suse.com>
>>
>> I fear this isn't quite what I suggested. The param get/set are XSM_TARGET, i.e.
>> can be used by DM as well. The particular one here shouldn't be used by a DM, but
>> that's a different question. Similarly in principle the PVH Dom0 building code should
>> be able to use this path; it doesn't right now in favor of some open- coding.
>>
>> What iirc I did suggest was that the serialization isn't needed when no domctl can
>> be used to otherwise alter (relevant) guest state.
> 
> Ah, true, serialization isn't needed when MGMT_HYPERCALLS=n, as no domctl-op could alter the guest state at the same time.
> Then maybe adding IS_ENABLED() checking is enough:

Yes, that or indeed introducing stubs. Which one is the lesser evil I'm having
a hard time determining. Hence I'd suggest that you go with the below, unless
someone else chimes in.

Jan

> ```
> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> index 5a50721bd0..4e1b3ee5f4 100644
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -4324,7 +4324,7 @@ static int hvm_set_param(struct domain *d, uint32_t index, uint64_t value)
>           * the domctl_lock.
>           */
>          rc = -ERESTART;
> -        if ( !domctl_lock_acquire() )
> +        if ( IS_ENABLED(CONFIG_MGMT_HYPERCALLS) && !domctl_lock_acquire() )
>              break;
> 
>          rc = 0;
> @@ -4334,7 +4334,8 @@ static int hvm_set_param(struct domain *d, uint32_t index, uint64_t value)
>              paging_update_cr3(v, false);
>          domain_unpause(d);
> 
> -        domctl_lock_release();
> +        if ( IS_ENABLED(CONFIG_MGMT_HYPERCALLS) )
> +            domctl_lock_release();
>          break;
>      case HVM_PARAM_DM_DOMAIN:
>          /* The only value this should ever be set to is DOMID_SELF */
> ```
> 
>>
>> Jan



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 07:14:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 07:14:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164458.1491414 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLFv2-0004YT-UB; Tue, 18 Nov 2025 07:14:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164458.1491414; Tue, 18 Nov 2025 07:14:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLFv2-0004YM-Ri; Tue, 18 Nov 2025 07:14:28 +0000
Received: by outflank-mailman (input) for mailman id 1164458;
 Tue, 18 Nov 2025 07:14: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=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLFv1-0004YG-3F
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 07:14:27 +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 36f34fca-c44e-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 08:14:26 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-47798ded6fcso9308635e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 23:14:25 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a80:314a:d80f:dc29:6f97?
 (p200300cab70c6a80314ad80fdc296f97.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a80:314a:d80f:dc29:6f97])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-477991646b2sm174918695e9.7.2025.11.17.23.14.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 23:14: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: 36f34fca-c44e-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763450065; x=1764054865; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zFtCrnINDrwaYiyzXiSXq+gd5proqbnsJy69jJO9sTM=;
        b=QF9W/clGmIBZmWrldoTZajoon+ldHugTjTpQOcv8LtHU8y6Ac74XA5/urbwz+NehRN
         4PyYwwuScTHY3yhf4upPq5kepwVrDdxN2FwAnui9edpvhsOhxPei5TFXR4vXGXFwFsFF
         cP118jlfEG7pLcM3oxdRRd0Dd2U3HdlfyZawK8tm/LvpPBkTioVeuMjuA3lq7DhK8qJw
         /Ah/9bceVd22DN5xNzKBhXKQItjpWgbq5XkgJKuJV7hjDrAH/0AjosBMyWUIv6T/WkQs
         acPLBXcLZU3EspXHbix7jDYEgZ2L4V7nRhYlWEMQ/XYhnDXniN+oOc8LcaLe6dszBBwG
         zK0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763450065; x=1764054865;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zFtCrnINDrwaYiyzXiSXq+gd5proqbnsJy69jJO9sTM=;
        b=wWSkZCub4JNlzD0U4IdsqKS9TFyd66tupoqEu7ayk3qSlkOuPZptbE5eADwnfD2Bzd
         xU+FL4JvpWBb33jWCU4WyaFp9lGzJ9ryoYpociBW5dgJparAYf0WGvd8pxtgP+0FdVNl
         s1m1FiCpbKeMjBTjA8ESziFVpwJWZcHnrtZ3Gq6sw8pLLCbln6TadoZs7OC9eGNzhLUo
         aDrjpdNJQw3RfjBdToNZSKMk0k0Z0d8l9sgH/FY6RLaFugzQ8zHXoQs8Ij43iCf//FjJ
         HnshRpYuFgOzhHbPeSU0bcOADxnhzi7N2VUTqTEsSd67ruAuSqULzZeWm28HUT47GzpQ
         XXuw==
X-Forwarded-Encrypted: i=1; AJvYcCX6RGgcnobcqVPf2hJgI2l5XB88n0St63Z/f++yRWL87u3P73K7bPtqA11oTPUJgoPnTU8lvixksAs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzLcX9oNATjKOBsI/VUHRGGtcpdcQ2Pdsz25LBji7YMtZH2ieLU
	sn71sGcPBGZCTbGFJeSsfElZ1ZqhByJ9RL0erY7OmKj2FGX36yAZ+4HJvZpS+smEjQ==
X-Gm-Gg: ASbGnctT1W6FMzpr0kHu0LADnNv7CJmBpT2woIvhl1XzT8WaUGxK44ykkop5uiiwUrx
	KCxVtEc7VZSJbCr+C+hTpGQjMRNCuLxAbJOkzNpRHDIoBkVRW9hZpd1Oab8GFbrQmNYqUcECqtP
	T9M5rTqTQW0fQ3vy+FVXa9VvTET23IXkAVEY0j1TmY8yUIDSVuOTU9UZ1ddUMiOV8SoB5NzGFZ5
	Lo9506wik2bQ0zrYUFepSPr4qtDJqKVaTSBOMUzv9UbLJIqM7u6lYm+YmFtiFY61DkolSRqkhZB
	FGW4lt8N3ozGtiYKo4Xzr/K1+R26NBpKeujurBu1whXNQsK9vJVV0wF7fqfSsCxDJd0CDR3c17R
	hSMj+j5sIls9zKNMfbKcOrE3dUABv63UYac7aNc+szH1LF5ymgCYqWuk6eMa6K0gpX9wbPkrXzD
	mfwIkGQfobZT8h12mo4OeBAsr5rdXN266zZqeq5o3bprUf2iRKndC4+9lLctt8B6kHxiQ4RCAq9
	uWKkdcR5s58ktbMw9C0o4/mEHD80sjvvjsMUyYkI4iR5czbFvjZBt81M9c=
X-Google-Smtp-Source: AGHT+IFkfFJj8L7BvMxKgxmLIXld8JD0juWb8QEyVBlMojVq0nvr3x+VVt0IkJwKEOqXXnCAeBBK/Q==
X-Received: by 2002:a05:600c:1f91:b0:475:dd9a:f791 with SMTP id 5b1f17b1804b1-4778feadab1mr130618645e9.28.1763450065211;
        Mon, 17 Nov 2025 23:14:25 -0800 (PST)
Message-ID: <ea81a0f2-d3d9-41f4-ae88-1426123129a6@suse.com>
Date: Tue, 18 Nov 2025 08:14:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 28/28] xen/domctl: wrap common/domctl.c with
 CONFIG_MGMT_HYPERCALLS
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 "oleksii.kurochko@gmail.com" <oleksii.kurochko@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251013101540.3502842-1-Penny.Zheng@amd.com>
 <20251013101540.3502842-29-Penny.Zheng@amd.com>
 <c18cdb1c-f2b3-4eeb-b064-670c86e19e67@suse.com>
 <DM4PR12MB84511357C8F6FB1976244CA0E1D6A@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: <DM4PR12MB84511357C8F6FB1976244CA0E1D6A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.11.2025 07:43, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Thursday, October 30, 2025 9:40 PM
>> To: Penny, Zheng <penny.zheng@amd.com>
>> Cc: Huang, Ray <Ray.Huang@amd.com>; oleksii.kurochko@gmail.com; Andrew
>> Cooper <andrew.cooper3@citrix.com>; Anthony PERARD
>> <anthony.perard@vates.tech>; Orzel, Michal <Michal.Orzel@amd.com>; Julien
>> Grall <julien@xen.org>; Roger Pau MonnÃ© <roger.pau@citrix.com>; Stefano
>> Stabellini <sstabellini@kernel.org>; xen-devel@lists.xenproject.org
>> Subject: Re: [PATCH v3 28/28] xen/domctl: wrap common/domctl.c with
>> CONFIG_MGMT_HYPERCALLS
>>
>> On 13.10.2025 12:15, Penny Zheng wrote:
>>> --- a/xen/common/Kconfig
>>> +++ b/xen/common/Kconfig
>>> @@ -646,11 +646,13 @@ config SYSTEM_SUSPEND
>>>       If unsure, say N.
>>>
>>>  config MGMT_HYPERCALLS
>>> -   def_bool y
>>> +   bool "Enable privileged hypercalls for system management"
>>>     help
>>>       This option shall only be disabled on some dom0less systems, or
>>>       PV shim on x86, to reduce Xen footprint via managing unnessary
>>> -     hypercalls, like sysctl, etc.
>>> +     hypercalls, like sysctl, domctl, etc.
>>> +     Be cautious to disable it, as users will face missing a few basic
>>> +     hypercalls like listdomains, getdomaininfo, etc.
>>
>> This is still too little, imo. For one I'm not sure "users" is quite the right term. I'd say
>> it's more "admins". And then, as mentioned, there are a few domctl-s which are
>> usable by DMs. Aiui device pass-through may also be impacted, which imo will
>> want mentioning here as well. Or else, if there is an implication that DMs aren't to
>> be used when MGMT_HYPERCALLS=n, that is what would want calling out.
> 
> How about
> "
>         Be cautious to disable it, as admins will face missing a few basic
>         hypercalls like listdomains, getdomaininfo, etc, hence leading to
>         have an impact on xl-device-passthrough and restricted DM.
> "

Much better. However, why "xl-" and why "restricted"? Neither aspect matters
here, unless I overlook something.

> Another question on PV_SHIM_EXCLUSIVE:
> After Stefano's " 6c80f0dd1bb  xen: fix randconfig build problems after introducing SYSCTL " reversion patch, and to avoid incurring randconfig failures till the last, maybe I shall combine all PV_SHIM_EXCLUSIVE-related changes into a new commit and put it in the last, after making MGMT_HYPERCALLS optional again?

Whatever works best.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 07:49:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 07:49:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164473.1491425 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLGT5-0000LO-J7; Tue, 18 Nov 2025 07:49:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164473.1491425; Tue, 18 Nov 2025 07:49:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLGT5-0000LH-Fz; Tue, 18 Nov 2025 07:49:39 +0000
Received: by outflank-mailman (input) for mailman id 1164473;
 Tue, 18 Nov 2025 07:49:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLGT4-0000LB-CX
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 07:49:38 +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 20bfded4-c453-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 08:49:36 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-42bb288c219so2166914f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 23:49:36 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a80:314a:d80f:dc29:6f97?
 (p200300cab70c6a80314ad80fdc296f97.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a80:314a:d80f:dc29:6f97])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42b53e7ae2dsm30934514f8f.5.2025.11.17.23.49.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 23:49: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: 20bfded4-c453-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763452175; x=1764056975; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KvHZgK67t9j8wAD0C2OSsJWTDJqxvteDTZ/ZUCakB9Y=;
        b=G8iR6SgSD/8bgbfrYP/kPYVdkvjEcB/z5QgaBZsi5+y6EHskJPxgyD5WNYjLtWqH/M
         ElVlW+6Pi+zLFgB06ZU4MRdwBD0LpzXh4IQAC3hsT3au41qPMaoMEuaKq7VsqsaA40Q8
         5ZFPj3imuytIitcCOI8ddk5nIvzP7ouAYxIdFmjtfglyAfJIOzGT8S3ctywEDIuAjLsA
         NtAeoAHJaQCmrHTPEIPoYOAox2KAX0gilYxCIx9sjg/rI0nJk72D+8r3pAjMtXA19LC9
         p52Vha9B9046HoPf2O9TnxqO0OlL5kiABKy59aG90t608HDffMKtTQ8ja7LucJ4qCGxe
         L9cw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763452175; x=1764056975;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KvHZgK67t9j8wAD0C2OSsJWTDJqxvteDTZ/ZUCakB9Y=;
        b=oW9jzJUnrX6OApNTI8/sbePODqqc1HFsyvm6sj9UiRe74SN5jja2omO1A5iGBs7wdI
         uSnjIqHYP/X0VBLB1c/QXkm0r91w1VNt9GtPSG5JVMQWvU8BNFwVSY3zfUbQbWp5NZhf
         vPdjCzw97WNGa89hrkbmWPXQebABCtlaUcsWGB8cgfvSD15vIibzZIu9OGoFvpnwWT5r
         Rul5SOBL2IrmN3l4mghXWdjjOkXDeOhrj3b/wmYR4IerbXjpZ1LQDvRbEd8NDOjKwy9v
         lXt7toGh3WtZHOAkaEub94YoIOAguKfGlxjfhnSUm1QP3MIRq2yze9Qk4FDAJKQqn2Eu
         ypIg==
X-Forwarded-Encrypted: i=1; AJvYcCXUBVgejnRRSlJKH7915AI8Se0ZguXOWAn6WThIQQFZ6eKPXmMYiOIIDlok5nCv00O3qmajW7KFxe4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyTW10aRp0rEVUb26bKh570i46O6D2mmSygK1mm+aUa40eUEorB
	X4w/ewZ5elaCZfs+df9cxSaeklRSH2l1n1jAxisa/88pKcGqOn18RssQTAyfPM13EQ==
X-Gm-Gg: ASbGncvWS4kjztxv+U/7YFbwkw/jeu/BSOGqxrAImxsE+Zz6fu2aeGX4WGPr1MDtk0B
	vZwLEoYssxH3sZmN3lOgEGXNvW6po5LFjj9FKQMy2ycdHd3REZ6qq73e848lZaCYQVHbI1FQbzX
	d05/1B1rz8KaWxdtf4yzrciRq+2TLX12vQMWaZ8JeNhzq3sZRJocCNlLL+siwNVQP0UVU5T2TNK
	zogI3IexFPCD1bgTSSZumX3Q9p4S/4vPF1msHEIPEvffhUT/09TQ7Of5gDcf09VrC2xemBM+pOU
	1NdyKn4eAklSjzcrsbiV6XeCBi2K4ZRrP61YBLMwzG0LRkFvxcxMDun3VoTYSgFhCseHRK7Xy06
	nzYadJa/ZSReIQFYs+RylhNO3H+Fs4WFaB9CF8x+e96L9YaABJOMiLBPUv4pmTYmeTYALUv3CW6
	gvgh54SaN0lidZHaF1jQfKc2cOMimYQm3m4FnVlVjdDqhyRjjIj8EHX/N/acQxpjMrGfmXaU2ZY
	XZG/uGXoqYVvc10OI5R+punpviYTy5L19o/v66wRREGiuskOHiWpQUY5B4=
X-Google-Smtp-Source: AGHT+IG3cPl9rCeC+K77bqv0F6TXm3o3yd3U4g1lHyRxzALXzWi1600KEG4uLrU0JQPB0yTu5UMTqg==
X-Received: by 2002:a5d:5885:0:b0:42b:3701:c4c0 with SMTP id ffacd0b85a97d-42b5933e285mr14711146f8f.5.1763452175459;
        Mon, 17 Nov 2025 23:49:35 -0800 (PST)
Message-ID: <52b13a38-f037-4235-8ea2-70b0d8a4b470@suse.com>
Date: Tue, 18 Nov 2025 08:49:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] x86/ucode: Fix error handling during parallel ucode
 load
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: <20251117222120.473451-1-andrew.cooper3@citrix.com>
 <20251117222120.473451-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: <20251117222120.473451-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.11.2025 23:21, Andrew Cooper wrote:
> wait_for_state() returns false on encountering LOADING_EXIT.
> control_thread_fn() can move directly to this state in the case of an early
> error.  It is not an error condition for APs, but right now the latest write
> into stopmachine_data.fn_result wins, causing the real error, -EIO, to get
> clobbered with -EBUSY.  e.g.:
> 
>   # xen-ucode /lib/firmware/amd-ucode/microcode_amd_fam17h.bin --force
>   Failed to update microcode. (err: Device or resource busy)
> 
>   (XEN) 256 cores are to update their microcode
>   (XEN) microcode: CPU0 update rev 0x830107d to 0x830107c failed, result 0x830107d
>   (XEN) Late loading aborted: CPU0 failed to update ucode: -5
> 
> Drop all the -EBUSY's, and treat hitting LOADING_EXIT as a success case.  This
> causes only a single error to be returned through stop_machine_run().  e.g.:

Why "single"? stop_machine_run() can't return multiple ones, having only a
scalar return type? Or do you mean "a single, consistent" or some such?

>   # xen-ucode /lib/firmware/amd-ucode/microcode_amd_fam17h.bin --force
>   Failed to update microcode. (err: Input/output error)
> 
>   (XEN) 256 cores are to update their microcode
>   (XEN) microcode: CPU0 update rev 0x830107d to 0x830107c failed, result 0x830107d
>   (XEN) Late loading aborted: CPU0 failed to update ucode: -5

The sole difference being which specific error is observed, which looks to
support the above interpretation. What I don't quite understand is ...

> Fixes: 5ed12565aa32 ("microcode: rendezvous CPUs in NMI handler and load ucode")

... this and the specific indication that this needs backporting: Why is
the particular error code this important here?

> --- a/xen/arch/x86/cpu/microcode/core.c
> +++ b/xen/arch/x86/cpu/microcode/core.c
> @@ -260,7 +260,9 @@ static int secondary_nmi_work(void)
>  {
>      cpumask_set_cpu(smp_processor_id(), &cpu_callin_map);
>  
> -    return wait_for_state(LOADING_EXIT) ? 0 : -EBUSY;
> +    wait_for_state(LOADING_EXIT);
> +
> +    return 0;
>  }

At which point the function could as well return void? Preferably with this
adjustment (and the knock-on one at the call site) and with the slight
clarification to the description
Reviewed-by: Jan Beulich <jbeulich@suse.com>

> @@ -271,7 +273,7 @@ static int primary_thread_work(const struct microcode_patch *patch,
>      cpumask_set_cpu(smp_processor_id(), &cpu_callin_map);
>  
>      if ( !wait_for_state(LOADING_ENTER) )
> -        return -EBUSY;
> +        return 0;
>  
>      ret = alternative_call(ucode_ops.apply_microcode, patch, flags);
>      if ( !ret )
> @@ -313,7 +315,7 @@ static int cf_check microcode_nmi_callback(
>  static int secondary_thread_fn(void)
>  {
>      if ( !wait_for_state(LOADING_CALLIN) )
> -        return -EBUSY;
> +        return 0;
>  
>      self_nmi();
>  
> @@ -336,7 +338,7 @@ static int primary_thread_fn(const struct microcode_patch *patch,
>                               unsigned int flags)
>  {
>      if ( !wait_for_state(LOADING_CALLIN) )
> -        return -EBUSY;
> +        return 0;
>  
>      if ( ucode_in_nmi )
>      {

Vaguely recalling the original intentions, these changes looked wrong to me at
the first glance. But yes, an exit indication from the control thread isn't
really a separate error condition.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 07:51:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 07:51:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164484.1491435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLGUy-0001uA-U5; Tue, 18 Nov 2025 07:51:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164484.1491435; Tue, 18 Nov 2025 07:51:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLGUy-0001u3-Qb; Tue, 18 Nov 2025 07:51:36 +0000
Received: by outflank-mailman (input) for mailman id 1164484;
 Tue, 18 Nov 2025 07:51:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=g+ix=52=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vLGUx-0001tv-GG
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 07:51:35 +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 6659edec-c453-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 08:51:33 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 CYYPR12MB8731.namprd12.prod.outlook.com (2603:10b6:930:ba::21) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.22; Tue, 18 Nov 2025 07:51:29 +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.9343.009; Tue, 18 Nov 2025
 07:51: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: 6659edec-c453-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=r1EVEKcUozbuNwX/fTI0nbVCglspMvmLFSqBXpLWCkkpbAawS8SJ0JUu/65a7rk5SN7/ufYYWf87NgRJUtRF+v3iwBwmsxH9J8rI+bDh2+cwqCyjflMX6h1sUZ0TXVzngt5UwXcGt9hhw56JBSO4Qes1a05r1Z5lUTTt1mDz1rwTvqtJj2Da/1oKEvq7ZtmLRnRS/EWPzjSMr9xkQ66cje03N3TiyxRCGjRaXhBlYHB6M2wqR1+PhFxuLzM23LAKArBPADgxwe4QwiMtB5/mcqLGKMCEg60Kx7fse+m0ArqH/ObdQMEjQzeFF0CTeC0Ie5yIn17AmNQAJgdK+dkXLA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7gIfVMT/j4v9E9Wl1jt70VSMKSXd88iOtbCjO212w5g=;
 b=x6kqRuvQ4qIoKtVEdy3Gbwd/vA+1lexuy81qHBOc9J2uSEpmqzeVlybUUAn7BxwTWEZ8BLXh43nX9ICqTkfuBt59U+Ba7PUlD5eP5SQUQkpkCI/dKS7PL6N/WDecdt8Dt8rRrryOPCqCMcOGOHjPLdRF3L7R6uJX5CQF0Dop9VW83TSofiDO7BB4DRul27h6aEuxAWSDk5lyOKCDPskP+w4lip/oZnFP35GpWBDZrdAjPMJciOh/yRZeUozKQ+Ss3QGOHT4EySgo3aJfIy1SVvyfToTAlKGuKSDC6AodHJN04+omvVOm9+U64TNTsNgm36KYuMELPdShP6BUCxv+Fw==
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=7gIfVMT/j4v9E9Wl1jt70VSMKSXd88iOtbCjO212w5g=;
 b=LHPn37UsXKXYsTQAZUzeQKxaUwxFVeXaG3MbE9+MWitAosdHw1woft+dDKMe3NupjYTs2IEyJVa8QVYnZ3ABrffsVeow8H1xvKyHIEIeypdOc5FhLnXYi0h3R37ZUpxSsJ4PakE9bbcLvFBD/ySbMnArz4k+99bS3CQXW0fIRi0=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>, "Andryuk, Jason" <Jason.Andryuk@amd.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "oleksii.kurochko@gmail.com"
	<oleksii.kurochko@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>, "Orzel, Michal"
	<Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v3 28/28] xen/domctl: wrap common/domctl.c with
 CONFIG_MGMT_HYPERCALLS
Thread-Topic: [PATCH v3 28/28] xen/domctl: wrap common/domctl.c with
 CONFIG_MGMT_HYPERCALLS
Thread-Index: AQHcPCqhC21cJdWa5E25eCgk7enLhrTazScAgB1wfK+AAAbwUA==
Date: Tue, 18 Nov 2025 07:51:29 +0000
Message-ID:
 <DM4PR12MB8451B211FB0F01DD1F744502E1D6A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251013101540.3502842-1-Penny.Zheng@amd.com>
 <20251013101540.3502842-29-Penny.Zheng@amd.com>
 <c18cdb1c-f2b3-4eeb-b064-670c86e19e67@suse.com>
 <DM4PR12MB84511357C8F6FB1976244CA0E1D6A@DM4PR12MB8451.namprd12.prod.outlook.com>
 <ea81a0f2-d3d9-41f4-ae88-1426123129a6@suse.com>
In-Reply-To: <ea81a0f2-d3d9-41f4-ae88-1426123129a6@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-Mentions: Jason.Andryuk@amd.com
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-11-18T07:51:21.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|CYYPR12MB8731:EE_
x-ms-office365-filtering-correlation-id: aac8cb65-8763-48c4-cd95-08de267748ae
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?S1Vkd2pXUGhPT1R6RDFzTEM2RnRPdFZFQzd3eXhjclVIS0dxQTY5WVFqZ1Yz?=
 =?utf-8?B?L2Fxd29HeFFZQm5kQndjNlBseFV4OVNML2NablI0UVlpOVBwMWlBN0U3OGc4?=
 =?utf-8?B?WEZwa3J5cVlJdkZ3dDEwRmtVY05PL3AzcDdUeTk4L0diR3NMOEkxN1p2eTRR?=
 =?utf-8?B?QkUxK2VPbGVYZW55c2VXNzllbjA2MkNldnVDZ05VQmxxZmcvdjl2UkpnSG5U?=
 =?utf-8?B?aVRKWit4Z09HekI4dDBzbnNVS1ZQNlFaaFptZWkxeHR3ZDlWaWRpVVhGdXJ6?=
 =?utf-8?B?STl0WW0xM1JKeHFRc3g2eEpBaWFzWnFQclJmOWxIcGlOZDFDeFBFbXFtelJP?=
 =?utf-8?B?aW1QdzVNYy9xWXpQVi84QlEweG1kc3dPZndVdkY4eDB5eWVJNTBYSGNuSHVs?=
 =?utf-8?B?WmlXampLVUQ0YnJZZWc3RmNwWlgzWWpMbjJmL2d5Z3RYYktPNXJYaHk4ZTEz?=
 =?utf-8?B?ZVYrZ3dGdVZVMGM0bVhTS3RMUzMvc2V4Tk92SkpGZmJORlBybXdkb20wcTAz?=
 =?utf-8?B?Y2hTRWl0Y3laeUJTZ0NVdmFYQk45SnBmN2RFQ0R4WXZBRFV0VjN0T0F6ZGZX?=
 =?utf-8?B?a09FV0YvVDJRSUxhOTNYLzdxRmpma01RMTVtYm91YzlINnF0eTZGSWFGMCtm?=
 =?utf-8?B?bHIxYWpFckFNR1VlaUgvVXorMkExbkNjaUlSNHVCRmdIb0h5c0ltazFyQUl5?=
 =?utf-8?B?YllhMDNEZVhyWUN5VUNzbjZsMk54Y0FWQzZyVmdodmZoSGhXQUNoVVkvU3ox?=
 =?utf-8?B?ZkFBWEE1MUVSdzlLNXZzRTZiNlprMmxlYkVqa0NvMFJXZUVXYVR2VkEvR2hL?=
 =?utf-8?B?d3dOVCtVN0NucGRTckZTbUVsWHBxTThVMUdybUU4NkNjVkxIbllkU243aEhP?=
 =?utf-8?B?Nkd2dGE1Z0tsYlBBRnRJeWZxeXd4VW9EN3hodTlwMERoR2tvRGlFaENhMHli?=
 =?utf-8?B?Nzd3czdRYnh4TUs4Snk1bERFT0dhTjhWMFB2dVdSalk4TWFGWm5UWTlhQXFJ?=
 =?utf-8?B?ZmpwdlRjS3NIK3FFa3RYTUp1cmlWd1JhbEZtUGpybmR2TTFUSFBqVEtEaktU?=
 =?utf-8?B?VzVwUVF1emo3Wk9LcEJDckFhWC9jVzNiZ0NLVzdYV1VNZFZVbW1lcVAyOEd2?=
 =?utf-8?B?SlFXVmtSMnI4cmR6MkNyeUpwZ3Q3S2lSUm9FMHYvOUdLbmk0SWZmSGU1ZlVv?=
 =?utf-8?B?SFh6VHNaNTdRa0ZJTWtwTFVTL0p6bHBCbm0zaFlTOVMrNU5zL2dxN1kzUFlP?=
 =?utf-8?B?a202WnhTSDBzeG5mMTQyUDhhakdTMC9WT3pCaXhuQk41SUU3WFdpNE53bEI4?=
 =?utf-8?B?ZXhOTkRFblh1N09tOHNyTWFueWRacmljcUZWeWF4R1FINWs2S0RkQWxia1p3?=
 =?utf-8?B?S00vSThqY2lHYVJMTXVWQm5ES0lmcjNCVGZlYU1rUGhQN0pkK2FuSmFEMWNJ?=
 =?utf-8?B?alUvOEduNGsyWUtVdVd6M05kT1dvTkU2RWVLb25mWTc5MS9STWZobDNiYlZK?=
 =?utf-8?B?M0kxNmJRWVcyS3oxSFkxK3R5OU51b2NIZmpUNTJzVkpaOTY2SzNoUFBDVUx4?=
 =?utf-8?B?MzU3ZE00dVVKTERRWXJqbkFHUFBGbzZWTDc1c0Z4NUhTVzYvZmpjeUlYVUZ5?=
 =?utf-8?B?Z2t6VHZjckVGNWFTVVgxd3RmZ0hsYnE5L25pcTlVKzVtdmlkWWQ5ZmRLcTEv?=
 =?utf-8?B?RVBCL2F5bzhRSzhXeE1ycmc1bTFUTG9waUZiS3ZkVmxJVVpwUVNsUVordEJN?=
 =?utf-8?B?dUhRQm90bGRFMFI4VmtoWC9VdjM0dnQwQ3NYc0N6RVd4TDdNckNUSEZ0QklE?=
 =?utf-8?B?RDFidXBDelgrd08yQTJUS3JqUXpJYzBFU1pRZ3VvV3ZBZEZjMXhYQU4rT1F4?=
 =?utf-8?B?dEJzSVlqZGc4VS96S29IbzdnWXVVOEMxRCtJK2hHR3puRm4yTlplTzNuYmNR?=
 =?utf-8?B?THRwcy8xMlF5b3c3cHRsQkg2OS9xS1ZQRVhKMlFXcHNOMVEzUEtIc2hNMGZt?=
 =?utf-8?B?RVJ2SjY3NUNjY2VFRTlubExDb0xZZUxlc1FDUWszMDBlUWhPMFBPcVlwT1Jk?=
 =?utf-8?Q?YzJfgj?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?cWRwVVArVGdYbUtjTk9zajVabExSTkp3NmF0WFFaRDdVWnIvbFpUTE1QU3la?=
 =?utf-8?B?aFhQazlVQklQeDB1akhwZ3ZUdTFxZFUrZnlmcnhiZGJVQjVXU2NYR2xLVnBi?=
 =?utf-8?B?RlUxQTBaZThHdi82SDhtQzlJMDBSVDN4M2RJSGxKY29JYkJHbGc3cU8zSEdB?=
 =?utf-8?B?TlVMWkZvZDU3NlVXU1o2Nloxd1ZyMEFYNUpJVjRzVXhYS2xCWm9zVUVWaWNC?=
 =?utf-8?B?VU4rYnFYckNWY3A1Z2E1RVE5MDFxTlRBUEpNR0Qyck1rSm9jNkdmN2hJWnZr?=
 =?utf-8?B?bkpGTjZaVXY3WHBJTFYrMjMzWThzaWlOVGtpZDh3VzVTMWsweHBCMHphN2pN?=
 =?utf-8?B?T0crclZJa1ErdG1GeG9wOGVrUmhKbmgrcXdMUXU4RmRHRElzcU1wZ0NnWHFV?=
 =?utf-8?B?Q2Fram5xNkRuWkR2cUtUbVZmMlRENURvb3pKTS94Q1lKTGR6UkhTOTVrd0VC?=
 =?utf-8?B?NnpJdUl6VW9WWkg3WDd6SDJEZ3ZQdlZWSkxEQlNYNnZHb21GNllERGU5NlB6?=
 =?utf-8?B?cVluK3l2ckxGWitCTGU2RU56YTJWclVNbExqWms4bnQvVnBnQmdPUU9TSVYr?=
 =?utf-8?B?NFM5S3M4RWI1bCtPeC9hR2JmdTl3MW0yZk8ycmY3TnZRMlVQNmpNZ2JrejZG?=
 =?utf-8?B?Uy9SclNyLzFZd2NIQzJQakN4dGp3OGVrdXNOVHJWZ0tna3VsejZNY1VKQklM?=
 =?utf-8?B?ZGxzM2Q2ZmlvcWxIY1JvU3ltMkw5cmpOS1QwNUVGc09pYmxIUkMzbmJEeDB2?=
 =?utf-8?B?cnpPczdoVCttckdCeHFLT2oxbDEyL0hrZ3VHVEo0ZHo2b08rMUdvanVvTktV?=
 =?utf-8?B?S2lTZTVLeTRXZjRWb0FCdlBPc1lSR29idGZZMUZQVjZvRjF3Wklka1dYQkU1?=
 =?utf-8?B?L3JybVZucXdkVWVNdnM2eWM5Q0R2WlE1WGszRkg0dHIvVHJFQUMrd2pSOGZr?=
 =?utf-8?B?OVh5V011dEhTWFkyN1poUGJRbVFXbnNqdHhwc1dKUytCcDVqazl3RjAxeVB5?=
 =?utf-8?B?R21FSUlLWUVBdHQ2QlZkaXJnMWZranByNmJWMGdVdnhnY0VTaDVaZ1Jxd3h4?=
 =?utf-8?B?WGttV3BVemk3UmRMSVAzL0RiREhwUWI0dzdBUUpCaU5qaDhMS1J2eHpIaXRV?=
 =?utf-8?B?VnM3dDd1SThNcXo5bml1Vmh4Nm9qcUd6NU85a291bGY5NTVtVVpwdkVVVHVx?=
 =?utf-8?B?eGhSb0JVVkZYRURnTFBkUFluY2ppbTMvOXpNSnlhZ1Jkc3JQYnpMUS9oRTVj?=
 =?utf-8?B?Qk4wUTNBR1JDMGZFY1d5LzRKamNDWDllQVdMN0lYRlBrTHFyd3FaQXNTRS9Z?=
 =?utf-8?B?RWtsN21YcjMxVWpsL2VQQk5VVkdqSGJVTXgwNHdOdXdaWkQ0WC93QVBWYnJt?=
 =?utf-8?B?bmc2WTE3cXh3Wjl6Wnl3UnNoQUhaSitoNmdUTThmME5majljd3d1TUVBSk82?=
 =?utf-8?B?dXFta2VnbmxEYlJyVzBwZU1QZHo4UDU4RTdsbFlxTzZza2haWHlMV2FzZjFp?=
 =?utf-8?B?ZmgxcHU5UjNROFpjVVdwV3NQWHpSRVJadEQ1cDhxSkhPVzdyQTJQbERQOU1l?=
 =?utf-8?B?OC9lcjFxREdWcG9wTkFXNHgvNVJWaURPMGNQbldrL2w1QTUrMjBUVG43VHVL?=
 =?utf-8?B?TDJjb1U5SVgxZE9kWFVmOW9mWnJGeThldmVQNkFmNnZiNkhyc0c2Vy9JQzhU?=
 =?utf-8?B?bEJ0bXNsRWZRREVsUDV0Nk9Za0xiWGlMZ09xZytPL2tDTzVmWG9raXkrRE44?=
 =?utf-8?B?eTNvaGluREU2SEZzVWxtTUlObGVJTnhpd1VJYkNnbkRsUVhoZUZGUnJkR3Rw?=
 =?utf-8?B?dklydm1PemF2cjJhV0JKR3dwdTVicEo3cUYvTTFrS1MzS1IzOVk0ZFJWT1RU?=
 =?utf-8?B?WlZ3bUtPcHFnTUdFaklSWG1Nc2hmd0VCZk5KNVNFVWRzVC8xSmZUQkhsSVFy?=
 =?utf-8?B?ZFJjOGRzQ3krODdEd0NQOUxaZmpxbU00QURQd1NvTHZoRktEZDlBY2p5alRT?=
 =?utf-8?B?VnVpWW9FVGhQNWlXVzd6K1dyVjZsalplaHRpQXFUTm9PQ1RrSUUxYXZmUVVh?=
 =?utf-8?B?MXQrUnZZdHVLcjc2bktJWXNNN1Uyb1F3Yzk1L1kyN1B4YjZlY0VaaGdiOGFX?=
 =?utf-8?Q?zMR8=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: aac8cb65-8763-48c4-cd95-08de267748ae
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2025 07:51:29.4952
 (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: iuD7qWq31F70vcdnpeZFK7hRCk0ahKbgsZ+KOFNlmNfLLXPho3UQUCutrYV6Ar+tcRnobXbkZwK5bdYbVfP9aA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8731

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIE5vdmVtYmVyIDE4LCAy
MDI1IDM6MTQgUE0NCj4gVG86IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT4NCj4g
Q2M6IEh1YW5nLCBSYXkgPFJheS5IdWFuZ0BhbWQuY29tPjsgb2xla3NpaS5rdXJvY2hrb0BnbWFp
bC5jb207IEFuZHJldw0KPiBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+OyBBbnRo
b255IFBFUkFSRA0KPiA8YW50aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD47IE9yemVsLCBNaWNoYWwg
PE1pY2hhbC5PcnplbEBhbWQuY29tPjsgSnVsaWVuDQo+IEdyYWxsIDxqdWxpZW5AeGVuLm9yZz47
IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPjsgU3RlZmFubw0KPiBTdGFi
ZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPjsgeGVuLWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjMgMjgvMjhdIHhlbi9kb21jdGw6IHdyYXAg
Y29tbW9uL2RvbWN0bC5jIHdpdGgNCj4gQ09ORklHX01HTVRfSFlQRVJDQUxMUw0KPg0KPiBPbiAx
OC4xMS4yMDI1IDA3OjQzLCBQZW5ueSwgWmhlbmcgd3JvdGU6DQo+ID4gW1B1YmxpY10NCj4gPg0K
PiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBKYW4gQmV1bGljaCA8
amJldWxpY2hAc3VzZS5jb20+DQo+ID4+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDMwLCAyMDI1
IDk6NDAgUE0NCj4gPj4gVG86IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT4NCj4g
Pj4gQ2M6IEh1YW5nLCBSYXkgPFJheS5IdWFuZ0BhbWQuY29tPjsgb2xla3NpaS5rdXJvY2hrb0Bn
bWFpbC5jb207DQo+ID4+IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+
OyBBbnRob255IFBFUkFSRA0KPiA+PiA8YW50aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD47IE9yemVs
LCBNaWNoYWwgPE1pY2hhbC5PcnplbEBhbWQuY29tPjsNCj4gPj4gSnVsaWVuIEdyYWxsIDxqdWxp
ZW5AeGVuLm9yZz47IFJvZ2VyIFBhdSBNb25uw6kNCj4gPj4gPHJvZ2VyLnBhdUBjaXRyaXguY29t
PjsgU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPjsNCj4gPj4geGVu
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjMg
MjgvMjhdIHhlbi9kb21jdGw6IHdyYXAgY29tbW9uL2RvbWN0bC5jIHdpdGgNCj4gPj4gQ09ORklH
X01HTVRfSFlQRVJDQUxMUw0KPiA+Pg0KPiA+PiBPbiAxMy4xMC4yMDI1IDEyOjE1LCBQZW5ueSBa
aGVuZyB3cm90ZToNCj4gPj4+IC0tLSBhL3hlbi9jb21tb24vS2NvbmZpZw0KPiA+Pj4gKysrIGIv
eGVuL2NvbW1vbi9LY29uZmlnDQo+ID4+PiBAQCAtNjQ2LDExICs2NDYsMTMgQEAgY29uZmlnIFNZ
U1RFTV9TVVNQRU5EDQo+ID4+PiAgICAgICBJZiB1bnN1cmUsIHNheSBOLg0KPiA+Pj4NCj4gPj4+
ICBjb25maWcgTUdNVF9IWVBFUkNBTExTDQo+ID4+PiAtICAgZGVmX2Jvb2wgeQ0KPiA+Pj4gKyAg
IGJvb2wgIkVuYWJsZSBwcml2aWxlZ2VkIGh5cGVyY2FsbHMgZm9yIHN5c3RlbSBtYW5hZ2VtZW50
Ig0KPiA+Pj4gICAgIGhlbHANCj4gPj4+ICAgICAgIFRoaXMgb3B0aW9uIHNoYWxsIG9ubHkgYmUg
ZGlzYWJsZWQgb24gc29tZSBkb20wbGVzcyBzeXN0ZW1zLCBvcg0KPiA+Pj4gICAgICAgUFYgc2hp
bSBvbiB4ODYsIHRvIHJlZHVjZSBYZW4gZm9vdHByaW50IHZpYSBtYW5hZ2luZyB1bm5lc3NhcnkN
Cj4gPj4+IC0gICAgIGh5cGVyY2FsbHMsIGxpa2Ugc3lzY3RsLCBldGMuDQo+ID4+PiArICAgICBo
eXBlcmNhbGxzLCBsaWtlIHN5c2N0bCwgZG9tY3RsLCBldGMuDQo+ID4+PiArICAgICBCZSBjYXV0
aW91cyB0byBkaXNhYmxlIGl0LCBhcyB1c2VycyB3aWxsIGZhY2UgbWlzc2luZyBhIGZldyBiYXNp
Yw0KPiA+Pj4gKyAgICAgaHlwZXJjYWxscyBsaWtlIGxpc3Rkb21haW5zLCBnZXRkb21haW5pbmZv
LCBldGMuDQo+ID4+DQo+ID4+IFRoaXMgaXMgc3RpbGwgdG9vIGxpdHRsZSwgaW1vLiBGb3Igb25l
IEknbSBub3Qgc3VyZSAidXNlcnMiIGlzIHF1aXRlDQo+ID4+IHRoZSByaWdodCB0ZXJtLiBJJ2Qg
c2F5IGl0J3MgbW9yZSAiYWRtaW5zIi4gQW5kIHRoZW4sIGFzIG1lbnRpb25lZCwNCj4gPj4gdGhl
cmUgYXJlIGEgZmV3IGRvbWN0bC1zIHdoaWNoIGFyZSB1c2FibGUgYnkgRE1zLiBBaXVpIGRldmlj
ZQ0KPiA+PiBwYXNzLXRocm91Z2ggbWF5IGFsc28gYmUgaW1wYWN0ZWQsIHdoaWNoIGltbyB3aWxs
IHdhbnQgbWVudGlvbmluZw0KPiA+PiBoZXJlIGFzIHdlbGwuIE9yIGVsc2UsIGlmIHRoZXJlIGlz
IGFuIGltcGxpY2F0aW9uIHRoYXQgRE1zIGFyZW4ndCB0byBiZSB1c2VkIHdoZW4NCj4gTUdNVF9I
WVBFUkNBTExTPW4sIHRoYXQgaXMgd2hhdCB3b3VsZCB3YW50IGNhbGxpbmcgb3V0Lg0KPiA+DQo+
ID4gSG93IGFib3V0DQo+ID4gIg0KPiA+ICAgICAgICAgQmUgY2F1dGlvdXMgdG8gZGlzYWJsZSBp
dCwgYXMgYWRtaW5zIHdpbGwgZmFjZSBtaXNzaW5nIGEgZmV3IGJhc2ljDQo+ID4gICAgICAgICBo
eXBlcmNhbGxzIGxpa2UgbGlzdGRvbWFpbnMsIGdldGRvbWFpbmluZm8sIGV0YywgaGVuY2UgbGVh
ZGluZyB0bw0KPiA+ICAgICAgICAgaGF2ZSBhbiBpbXBhY3Qgb24geGwtZGV2aWNlLXBhc3N0aHJv
dWdoIGFuZCByZXN0cmljdGVkIERNLg0KPiA+ICINCj4NCj4gTXVjaCBiZXR0ZXIuIEhvd2V2ZXIs
IHdoeSAieGwtIiBhbmQgd2h5ICJyZXN0cmljdGVkIj8gTmVpdGhlciBhc3BlY3QgbWF0dGVycyBo
ZXJlLA0KPiB1bmxlc3MgSSBvdmVybG9vayBzb21ldGhpbmcuDQo+DQoNCkxhdGVyLCBpbiBoeXBl
cmxhdW5jaCBzY2VuYXJpbywgZGV2aWNlIHBhc3N0aHJvdWdoIGlzIHN0aWxsIG5lZWRlZCwgYnV0
IGl0J3Mgbm90IGN1cnJlbnQgZGV2aWNlIHBhc3N0aHJvdWdoIG1vZGUsIHdoaWNoIGRlcGVuZHMg
b24geGwtdG9vbC1zdGFjayB0byBkZS1hc3NpZ24gaXQgZnJvbSBoYXJkd2FyZSBkb21haW4gYW5k
IHJlLWFzc2lnbiBpdCB0byBndWVzdC4gSXQgd2lsbCBiZSBsaW1pdGVkIGluIGJvb3QtdXAgc3Rh
Z2UsIGFuZCBjb25maWd1cmVkIHZpYSBkZXZpY2UgdHJlZSBvbmx5LiBGV0lVLCB3ZSBtYXkgcmV1
c2UgVlBDSSBmcmFtZXdvcmssIGJ1dCBjb21tYW5kcyBsaWtlICJ4bCBhc3NpZ24vZGVhc3NpZ24g
eHh4IiB3aWxsIG5vdCBiZSBuZWVkZWQgYW55bW9yZS4gUExaIGNvcnJlY3QgbWUgaWYgdW5kZXJz
dGFuZCB3cm9uZ2x5LCBAQW5kcnl1aywgSmFzb24NCg0KQW5kIERNLCBsaWtlIFFFTVUsIGlzIHN0
aWxsIGFwcGxpY2FibGUsIGJ1dCBvbmx5IHN1cHBvcnRzIGEgbmV3IG1hY2hpbmUgdHlwZSwgInB2
aCIuDQoNCklmIGl0IGlzIHRvbyBtdWNoIGRldGFpbHMgYW5kIG9ubHkgYnJpbmdzIGNvbmZ1c2lv
biwgSSdsbCBkZWxldGUgYW5kIHJlZmluZSBpdCB0byAiIGhhdmUgYW4gaW1wYWN0IG9uIGRldmlj
ZS1wYXNzdGhyb3VnaCBhbmQgRE0gIg0KDQo+ID4gQW5vdGhlciBxdWVzdGlvbiBvbiBQVl9TSElN
X0VYQ0xVU0lWRToNCj4gPiBBZnRlciBTdGVmYW5vJ3MgIiA2YzgwZjBkZDFiYiAgeGVuOiBmaXgg
cmFuZGNvbmZpZyBidWlsZCBwcm9ibGVtcyBhZnRlciBpbnRyb2R1Y2luZw0KPiBTWVNDVEwgIiBy
ZXZlcnNpb24gcGF0Y2gsIGFuZCB0byBhdm9pZCBpbmN1cnJpbmcgcmFuZGNvbmZpZyBmYWlsdXJl
cyB0aWxsIHRoZSBsYXN0LA0KPiBtYXliZSBJIHNoYWxsIGNvbWJpbmUgYWxsIFBWX1NISU1fRVhD
TFVTSVZFLXJlbGF0ZWQgY2hhbmdlcyBpbnRvIGEgbmV3DQo+IGNvbW1pdCBhbmQgcHV0IGl0IGlu
IHRoZSBsYXN0LCBhZnRlciBtYWtpbmcgTUdNVF9IWVBFUkNBTExTIG9wdGlvbmFsIGFnYWluPw0K
Pg0KPiBXaGF0ZXZlciB3b3JrcyBiZXN0Lg0KPg0KPiBKYW4NCg==


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 07:55:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 07:55:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164500.1491445 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLGYN-0002Vj-Ee; Tue, 18 Nov 2025 07:55:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164500.1491445; Tue, 18 Nov 2025 07:55:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLGYN-0002Vc-CB; Tue, 18 Nov 2025 07:55:07 +0000
Received: by outflank-mailman (input) for mailman id 1164500;
 Tue, 18 Nov 2025 07: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=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLGYM-0002VV-4m
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 07:55:06 +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 e4e05756-c453-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 08:55:05 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-47795f6f5c0so21678575e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 17 Nov 2025 23:55:05 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a80:314a:d80f:dc29:6f97?
 (p200300cab70c6a80314ad80fdc296f97.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a80:314a:d80f:dc29:6f97])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47787e8e6acsm361384625e9.9.2025.11.17.23.55.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 17 Nov 2025 23: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: e4e05756-c453-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763452504; x=1764057304; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/veRBfMZ2+Tzgh+9tTcf9q8mea1n5+ECWQwua59jLuk=;
        b=OJENjXMQ0jG9aAqpj88trwK30RklNLiyg6CmR4XYLGSlYIpGRpzaQ3+thvh6w2ZPJW
         VnXWefiJhzaMVd6j/gcb52HY6/+I1tUs0Gf5qMd6I3TYaZmmS9CK4YFoIuLCKTv3hJ9X
         4ZqWe/NqGh7Vayf/Auep/IfeDu5Qumu2S6NSGjfciXZnHKpeWBOd8iK6sIVe4CzERe3D
         TnNOABEE2ZYx90ZCrXOydX2IMoObMCqRk5/LzetPNN7bqgsiSI0iyfIPpJSnKMNsT30G
         dv2X7FSu4W5Zfxql38NFyb8AHZ9i/isVQy38NWOHc2CdCD9OW0+zvwsBUaIFCBd3t2kb
         s94A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763452504; x=1764057304;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/veRBfMZ2+Tzgh+9tTcf9q8mea1n5+ECWQwua59jLuk=;
        b=q07DHrjiwyGVayLwjlVytckGulvijDkzPXb4NCcN7oJPgl3Dgc+Af2fd3JMBa1LS4Q
         j1xs/A7nGsmSoZvccKg6MyBsHXSADZtIgGYCNWBKti1DB7UzjAlsaOhgDoT6FDeI8hmf
         0ir5jijR/iyE0DvxgNwK+mEG0JFVWP22ParwTTHNXq610J2Fiu3C8CcykVZvKWcTdIut
         g23iOXd+kBkTLCIsL5kDYAiVZeILsuQngE+BCppuaqLW3Lt8wbuR1oUCn9cphrWt5VpD
         Hodw6R5txd1bRl0tOc3+0/qbnZaYkwEFGZZJgQEOBJdiOjWXLlA2sPZQ3g4/nfViYIq4
         dvOg==
X-Forwarded-Encrypted: i=1; AJvYcCX1o7KDynFmPLiBj+PBTh47QQ28bBTDbO8MQtlo2wvlC68V1uRYryAehRJ8AtAgXN+NOZl3BSesLgw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyOhWTdNeEbsyg5JklC3epXEdLEyit4ENO2AsyLedaj8nJLhGL5
	4Kky9/EiT1+PlilwBdBvIzzeW2Z+EqUWKLCBXIzzBDNfprCDWG9KD6ASuNdzDCgQpQ==
X-Gm-Gg: ASbGncukDxNvjHia4vKoxFe/o7rDlElL/pFUbL7KaHfc0knOmLTf2PIz7p0LBddEl90
	VVGs6HHFwBG2qX21EIQWVOuROgeF4MYA+i8NtJsCe+eCRRKobyt9/fZBDh8sWn9JrwoiHIifKAx
	VK4jjNqO9U3O0R+DezYYPOgBP6rVMhPSkH7WTDO01wyv6Dqi2dKAjQ0ztXPT5NGRD6Q6rTSkK6D
	EYq1hJ+tlIIb9+u3Et6JwjPXNz1dbw5ZorPFshZOSwKEfjqFCmjwHgIlCS/GoIF9EkHEZLmnONO
	h0WNBRkCFedGMcOjiNgMEbeRs3Dz0GYN4XobF0L+lFqbd9Kzbwz6wWHdmeROmepvaWNUr/JuPDD
	Eiqmf+csGnkmuEYpaaoHIOw3MwACm0hvWIx/3i2Yld+e4n3xOQnYurgKjDR+QIWwMjJWIiNyaU0
	92ka3KU3rN0DrAh7PSts0W8WQQ3HOuw1RINSmQXWQXK2WuuSd/BDPrR5IZjeJ5KzG1stle0EoKe
	xZCBDoAQiu5MCktOJuuDmAK/ZLn2xeYCjBJLQ==
X-Google-Smtp-Source: AGHT+IH7nLKvkBBl9FAgvxy+N/uRlhNil8mMf7AwDKFtMeSejqfKzesvECd6FErG0L72tQF/JaHvZg==
X-Received: by 2002:a05:600c:4695:b0:477:63b4:ef7a with SMTP id 5b1f17b1804b1-4778feaa8a1mr123155525e9.20.1763452504497;
        Mon, 17 Nov 2025 23:55:04 -0800 (PST)
Message-ID: <bb9c4550-3503-4274-9df0-9bfc93edbc55@suse.com>
Date: Tue, 18 Nov 2025 08:55:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] x86/ucode: Drop structurally unreachable ASSERT()s
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: <20251117222120.473451-1-andrew.cooper3@citrix.com>
 <20251117222120.473451-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: <20251117222120.473451-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.11.2025 23:21, Andrew Cooper wrote:
> It's impossible for wait_for_state() to return false when looking for
> LOADING_EXIT, so much so that the optimiser can drop the ASSERT()s.
> 
> No functional change.
> 
> Fixes: 5ed12565aa32 ("microcode: rendezvous CPUs in NMI handler and load ucode")
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

Besides helping code clarity, mainly a Misra fix as it looks (unreachable
code).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 08:00:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 08:00:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164514.1491455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLGdG-0004Sx-6D; Tue, 18 Nov 2025 08:00:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164514.1491455; Tue, 18 Nov 2025 08: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 1vLGdG-0004Sq-3f; Tue, 18 Nov 2025 08:00:10 +0000
Received: by outflank-mailman (input) for mailman id 1164514;
 Tue, 18 Nov 2025 08:00: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=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLGdF-0004Sk-4o
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 08:00:09 +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 98dc3819-c454-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 09:00:07 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-429c48e05aeso3098724f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 00:00:07 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a80:314a:d80f:dc29:6f97?
 (p200300cab70c6a80314ad80fdc296f97.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a80:314a:d80f:dc29:6f97])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42b53e97a87sm31225522f8f.20.2025.11.18.00.00.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 00:00: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: 98dc3819-c454-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763452806; x=1764057606; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QlvKeuqGsUuCRQMAKfwIBxhvqrrHYmr/xIdDZJHlVaI=;
        b=TIxNh0c/urQYa0yeSiw7ALvAG3CseIm/O2g0kHLXxJbKmgbgoot6T3v07Pg0v1IDdq
         Uc0UGllVEUn60IKXjB6O+SF4yLqk6TzXADMnYERflVISDh8/Br/VW3qxpz7fMsdSy73i
         oKpCbQC+dg2pMAZFFfvuXSBoOu10i1huLixQldbsJz+2xGn/5VLRSGx+GdrY5V9wKGB1
         YcpqChDnGT4PMDvPNEkc54kLKGRRyApv1TLTd10sXproYkQUWjYOhEM04V/blzWt6fMm
         52mUt8elSkdrwtecXNkMu4I8gGMMvUJ2BHuk6riHARJapleiy16KbG9Qig84E38YdGzP
         KAAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763452806; x=1764057606;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QlvKeuqGsUuCRQMAKfwIBxhvqrrHYmr/xIdDZJHlVaI=;
        b=cEb+2A56z6qhnAOakstsQatuy+k/cDsqcgEcNeWhHBvoOnx57flKGb0GvD8OUDeYbP
         Tn8Y6co2/bquBpeGbchqPTb98PVH3Q7kgQJ0F3lpWa9cTfdyekUhnJyzllMhB1Ckgrhy
         8oxaRxDBOOuyngmN1Nzaa4/dLc6EG245S1iQXx37pZf1v7lM/4TAcvbnpQufXxdQz0vk
         OIsrwVqy5cJEZIa92BobFQlWXi9V6jEiiP40Npj6abYcI3XSzMF1wzynpoiLJHL9qO8J
         rCbQkH1m6AdGuJUnQAG1x7B8yWy68shTSuBpMbwCNXTzyPoiWHC651CRonJGlBRO5fAi
         fQIw==
X-Forwarded-Encrypted: i=1; AJvYcCV8ZhQ+dCTDVXvw36P4ur961aRFPCUMGIBf7eBFy6NdIsHGhDhCl/qI+Lq4DA8cmrvPG82JpBlVhvM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwrCUdH59BSZRzLCgSvteskZfEr8NndzdK/Xw8ByievdHQBhZ36
	k5QQpHN+fduFxO7B9ADWW1swqAaWmb6bP0WG+fIxXOR8RFaMISEWcF66yrMIOYOQHQ==
X-Gm-Gg: ASbGncvewJoXZD7PjTZNcYdTsY+4rEmLED4jRbj+nzpHxqqULCoOccdJ8BOuESh5dSD
	dh56rFzdLHVT/Xk5FSDw5XS8i8L3xIucJEbvhVk8Bsf6SBD69PXn0pA5A+jdkIQwRUHk/JDc1Rp
	EB1kBGOLgZshOcy9Lwbd7RyCXRtwNy5QCiD6GDGs3gzdSMCCpvATFxx5ywOtkARylZ0691P2cPX
	bHsAp3XPfp0C0YA4qvDUNKODzwUoexqY7iHUIyznSEDBQHyVUVUzcnguAiXpdXx7UP5fTKf7kTl
	llkzIfRCdN1w4bqU1cNKdyQASmtSzsvB2EnCMwYqAJe05w190mhge3K7cUyWK11meXAoGoi4CKJ
	usGHoMV+v39fZNr/zXAazX+YaPmiwSQikH3FW6TKPYAXNeRL+V5Dt0oa/eDXTrNB5BM2ycLtzdP
	yua8VRcH8vi+q+iRLwtDO0QBqHRqGH14qfUM0jE1gVhg4yZh+AyJybe4/Iqi5eTDw6GH8eBbH75
	YwQg+awmZ/Wg66axWglkdVgWcGlzOF9lOlxQftQYaC+fAJSi8uAzEnFR7A=
X-Google-Smtp-Source: AGHT+IEawQmDkq4LbCwuR5I0FgrgD2cKeI1qRqDUTeYpIJ2Xmk+OPybcs9tMHJm9b+vfAQZB+FJeaQ==
X-Received: by 2002:a05:6000:2582:b0:425:7e33:b4a9 with SMTP id ffacd0b85a97d-42ca85a5046mr2143391f8f.0.1763452806442;
        Tue, 18 Nov 2025 00:00:06 -0800 (PST)
Message-ID: <6528482b-8adb-47f4-805b-d9c7746ec92f@suse.com>
Date: Tue, 18 Nov 2025 09:00:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] x86/ucode: Create a real type for loading_state
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: <20251117222120.473451-1-andrew.cooper3@citrix.com>
 <20251117222120.473451-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: <20251117222120.473451-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.11.2025 23:21, Andrew Cooper wrote:
> Using typeof() in wait_for_state()/set_state() unnecesserily cryptic, and more
> verbose than using a proper type.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

I don't strictly mind the change, so
Acked-by: Jan Beulich <jbeulich@suse.com>
but I think the use of typeof() also has its benefits:

> @@ -237,9 +238,9 @@ static bool cf_check wait_cpu_callout(unsigned int nr)
>      return atomic_read(&cpu_out) >= nr;
>  }
>  
> -static bool wait_for_state(typeof(loading_state) state)
> +static bool wait_for_state(loading_state_t state)
>  {
> -    typeof(loading_state) cur_state;
> +    loading_state_t cur_state;
>  
>      while ( (cur_state = ACCESS_ONCE(loading_state)) != state )
>      {

Even if the type of loading_state changed, no type mismatches would result
here. Or in other words, a type adjustment there would not entail code
changes here and ...

> @@ -251,7 +252,7 @@ static bool wait_for_state(typeof(loading_state) state)
>      return true;
>  }
>  
> -static void set_state(typeof(loading_state) state)
> +static void set_state(loading_state_t state)
>  {
>      ACCESS_ONCE(loading_state) = state;
>  }

... here (which could easily be forgotten as the compiler might not flag
such mismatches).

Thing of course is that the type of loading_state is pretty unlikely to
change.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 08:09:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 08:09:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164528.1491464 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLGln-0005SW-Vt; Tue, 18 Nov 2025 08:08:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164528.1491464; Tue, 18 Nov 2025 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 1vLGln-0005SP-TK; Tue, 18 Nov 2025 08:08:59 +0000
Received: by outflank-mailman (input) for mailman id 1164528;
 Tue, 18 Nov 2025 08:08: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=n9C8=52=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vLGlm-0005SJ-GO
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 08:08:58 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d50ec8ea-c455-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 09:08:57 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-5957c929a5eso5903740e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 00:08: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: d50ec8ea-c455-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763453337; x=1764058137; 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=BxUlbc5kU9WEk3zCbovMK+3SrY/8SQ9jjyNJ7s8plwM=;
        b=lWu1eOlEomDoinQDKQiXNqw4jo4ptVMe5Mw6g7Bbg/h2GqyVMYtOECffZnDmlKY7mk
         wb1Ci8FZKmi+1CmeBjkI+QAoZbcsxZrvpN4QP3MZd0Fd6V/IQwFe9/OVT2iHAs0A5WCZ
         JRe52QX2pvqLdLKkCclVzv8pFO9jF6TJPs3r22PJ2IdSkdlT54wqcxcqRY/aI84aFRsj
         oGt6u9Mt3KbV/5q0BgxjRSQHrYYCZzkkh/3bfY14KY0irHpj6RMT/AAnFg1wvrXYCNBR
         n2EtJP8+WTiKM2mnD0VowAKxJa3wNX2tLvnLER4sbRSThxxgkuVWn6YaAD19JLht0oWh
         AZwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763453337; x=1764058137;
        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=BxUlbc5kU9WEk3zCbovMK+3SrY/8SQ9jjyNJ7s8plwM=;
        b=jKAh1WaN+QdCwjI2ggctZSD9URpG6pFuH+AcsV572rVDu4xtxTJWo7BDx03aPijZvw
         yCWiERD+cxiYdah0YRe6PVj6PUU6i67Swuir6uSGDzMdHNig6gxNjHRL6LwBJP/tZuJ6
         8ZTH6kfPJep+Oab/Y2a5KGFx5rRSJuh+K4JpFQbAaaO+40i8LjwRDaJnnRDVWiMQWK6S
         LG38gOKURR3vO1PEmCD0vRBhpSYspSFG/gtvWKZoTkqO/r1uwi2xHQk+QrtecdOzGogB
         stjYakZXE99qVanaybX1NOviAqOgB1TThUUwRfRP7ZMaeO7RSui1kvWKlJqNlIQILXHf
         QZnQ==
X-Forwarded-Encrypted: i=1; AJvYcCWvMgjR4Gi25LYibObW/j7N/kwwM5/lkH6CxSPHZVF5nPoRL+dod5JaB2kw71IBJ6V1seW2xuIWE9w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzO/HCbseX9NMGvEKMMBjLTWpWCq8PJqW4E2eBSHeLcMs17DeGf
	VlJhHQtpxpTqHwZRGsQ9GfBgPo0vS1mIelS9kDcBXRl7Mm59UAQQvJWg3mvlee0vVEjXrROq9FI
	ettsogt85JvyDd/Qc4PnYPb/Zf+viMe0=
X-Gm-Gg: ASbGnctSnWapYJmJvG0ANE36iu6LYzYJ8BazQC7P2tMBEAUEMzpgxuBCjeAww7aeiMz
	PgFg5+wAciSgmbQLhxJxdycctC5S0BJ70uQyxYOess7q3StyF1KIqzPB5s0bD2DJ6kMDceWVroP
	JLRzR5OBvEadLTpC9YiR7Xz5uNoiBCqFbbQZJ+/HByEfmWQ4gFQA3m//CampF5gmJ3yOjmmBtSd
	cqbb3M0Gd0wz3Fa+UPd3OaMcFj46YmMqowHd+IQNsZd6nzIPPKsO4Z59mA=
X-Google-Smtp-Source: AGHT+IHYzBcjV2XVR15vw7N7fWExRR4x9L1H9IJ8uOIscCXot5dFVdD4M5zUfLAPP+TrKDKfCvS6UvvfWAINGXJ3HA0=
X-Received: by 2002:a05:6512:108d:b0:595:81e7:3da8 with SMTP id
 2adb3069b0e04-595841f0872mr5122817e87.4.1763453336593; Tue, 18 Nov 2025
 00:08:56 -0800 (PST)
MIME-Version: 1.0
References: <20241217170637.233097-1-carlo.nonato@minervasys.tech>
 <20241217170637.233097-2-carlo.nonato@minervasys.tech> <0b5f19ea-6e33-4658-a165-f0af1cffbd03@gmail.com>
 <241eaaf3-069c-4dc8-8161-45a9563dbc77@xen.org>
In-Reply-To: <241eaaf3-069c-4dc8-8161-45a9563dbc77@xen.org>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 18 Nov 2025 10:08:45 +0200
X-Gm-Features: AWmQ_bnHPIOxLCUibI6lRD4GSSU0vx59cexZLIMCiMjiOtq2EiOC74Vg0hmcV3E
Message-ID: <CAGeoDV_v9EHe3x81nhzJ=DTbZYwdxG-fwmAUu7BLnaHbBqCxXQ@mail.gmail.com>
Subject: Re: [PATCH v13 01/12] xen/common: add cache coloring common code
To: Julien Grall <julien@xen.org>
Cc: Carlo Nonato <carlo.nonato@minervasys.tech>, xen-devel@lists.xenproject.org, 
	andrea.bastoni@minervasys.tech, marco.solieri@minervasys.tech, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Julien,

Thanks for your response.

On Tue, Nov 11, 2025 at 1:02=E2=80=AFAM Julien Grall <julien@xen.org> wrote=
:
>
> Hi Mykola,
>
> On 07/11/2025 08:27, Mykola Kvach wrote:
> >> +void __init llc_coloring_init(void)
> >> +{
> >> +    unsigned int way_size;
> >> +
> >> +    llc_coloring_enabled =3D (opt_llc_coloring >=3D 1);
> >> +    if ( (opt_llc_coloring !=3D 0) && llc_size && llc_nr_ways )
> >> +    {
> >> +        llc_coloring_enabled =3D true;
> >> +        way_size =3D llc_size / llc_nr_ways;
> >> +    }
> >> +    else if ( !llc_coloring_enabled )
> >> +        return;
> >> +    else
> >> +    {
> >> +        way_size =3D get_llc_way_size();
> >> +        if ( !way_size )
> >> +            panic("LLC probing failed and 'llc-size' or 'llc-nr-ways'
> >> missing\n");
> >
> > As far as I can see, this error means that we did not detect a suitable
> > LLC/unified cache.
> > Maybe it would be better to make that explicit in the panic message.
>
> I am rather confused why there are reviews on the series that was merged
> nearly a year ago. If you have comments that needs to be addressed, then
> it would be best to either send a new series or start a new thread (if
> there are bugs which needs discussion).

I wasn=E2=80=99t reviewing this specific series, but rather the code in
mainline. I needed to understand whether the LLC coloring code could
impact suspend/resume (s2ram) functionality, because one of my TODO
items was to check and test the interaction between s2ram and LLC
coloring.

During this testing I noticed a few potential problems and had some
questions. Then I found the corresponding mailing list series and saw
that the part I was interested in has not changed since it was
merged, so I replied directly to that thread because the context
still matches the current mainline code.

At the time this felt like the quickest way to ask questions in the
right context without duplicating it. I understand now that this is
not the preferred workflow for this project. In the near future I
will start a new discussion thread about my findings, or possibly
send patches if I manage to address some of them myself.

Thank you.

>
> Cheers,
>
> --
> Julien Grall
>

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 08:57:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 08:57:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164539.1491475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLHWJ-00040B-D8; Tue, 18 Nov 2025 08:57:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164539.1491475; Tue, 18 Nov 2025 08:57: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 1vLHWJ-000404-9y; Tue, 18 Nov 2025 08:57:03 +0000
Received: by outflank-mailman (input) for mailman id 1164539;
 Tue, 18 Nov 2025 08:57: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=Kq2N=52=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vLHWH-0003zy-Uy
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 08:57:02 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8a3d6027-c45c-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 09:56:58 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-b735ce67d1dso661401366b.3
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 00:56:58 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fad4494sm1287601866b.18.2025.11.18.00.56.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 00:56: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: 8a3d6027-c45c-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763456218; x=1764061018; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WLWZ4rG1BBsu7bzuls5xG0wvC3sQQZKjsfWhy8f9ZOg=;
        b=SEQBblNkvCp7ClpgSmr88ovCz5DTf6Fn1NfiW+NFN/1o+D5BVqKfG742QJhz3OflGA
         UGLj4t8PF0vMQtJO9TxyrgMaynvRNlNQwWfod0YURIuprYr2lTlhQ/3tpMCx9vt2uTRP
         TUf9pP9cfMW7gv5yRhVTXEpgOwlVVpwPMFy/cnu8BHO6nlu+XvzujgnOzPpk7V5BKble
         emgX3KxxCNNTTZBngSc6D1euAxCuwZq5t0xE+v3XGYfGRP7o8OTqfNGGMCHehw/BUwrJ
         uy+SIK53BhHlBXYvp7Fh6Qy8M9OQLKsveBEOnyyjxY/7LExbNSOhl0yVBEyqF0kwDyD1
         IIBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763456218; x=1764061018;
        h=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=WLWZ4rG1BBsu7bzuls5xG0wvC3sQQZKjsfWhy8f9ZOg=;
        b=ncIOZgTfDViA/nSBdOa8cXqP80J2T91LIikzVtG2NDXjZ76L7J0BhKyirurZftu9Uv
         eGKCwK0H7NQc3btTko8Tsl9yI2qJaeMkUN7+GT7BbgiGyXoGPUdSZucN6fkFcSsxmjTT
         D6qM0fsGBgqK2mQt9i4O7hOkhwAFmS4sd6Kc2OVewrAwPkGQUo3jakrd1YowQZaJjBpZ
         oTAviEzjKQ+SjWa1V+atmoq+VSORjjj91/59e5slpDtoJAZR2/39NS2VwWLOfDiwPlgr
         CGmMUr3huo9LRErI1i4LtozeNlZALnWJmUNJq95zU0rzW7KAk/cb45mFnwkzbMr6UJRC
         BZYw==
X-Forwarded-Encrypted: i=1; AJvYcCVGZDVj6wSgQu30BxTxv5zzWS0BJkMe7VgDrcIiPKlhNdKvYsqbUGZdq1xPin5bvz9ObdTctQEkrBI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyLqhk92erd5MCDh+KlaIzj5YkbKoBAfWH/HAFK5eEGqkcfYggu
	ayzACVZ1ZstChQjnZEp+XINLSIvwZQpOb2SDCrxRn9SNYTZSaocFV+1G
X-Gm-Gg: ASbGnctbhW9BLkFTndnFYnGNpzA2gmLufeh8n6POr4GgBiYGb8pRMqHMVrVWvb24DZa
	bRleuWnSfRADg+4h8nFLRRXCnvxElFxJroM+R7KYUvmgPRPHP2ssJGumHdOwtX4NQufr0D44+62
	cgOiYSqdDIRaZmtjnhgfPmRQviq+1PgcQi/hz2q3m4hSwwYqy9Fd0fHoyuZTw7n2Vg2lPfO/lmB
	LIWpCHPqOXCmjI8XBF+hV6t210O/8gR/+9HW+NFTiq87JQL5Y6Fat8SB6mGfJ0qWExMqD9ld6xs
	jIf2+8TQlx6UkckgVzukivMAJPuvkS4LHmYH2sMiZO/SSy9mt/7WjRT6V6RSiJ1bKTeijKf5YfR
	UVVhoevwQDKyp+QC4Tm81yf6oJW9xtAzxwsBsZoyMrL5vsEjdZ24HCaste/9X3/r+nvSr7dWk0V
	RGuniKBx0LM7otsg3TrG+7oJgb0weU29IU6aoYi46LZEn7aNDvAHyjNmoVvlE2
X-Google-Smtp-Source: AGHT+IFXZKEKolVLtNZ9iEIDNwXJpc0pKhaF2frOtNipRj4MOoiZH0jAqGAL7dTWk8An6pLXSk2Uig==
X-Received: by 2002:a17:907:d02:b0:b73:6d56:f3f4 with SMTP id a640c23a62f3a-b736d573e3dmr1480844966b.30.1763456217629;
        Tue, 18 Nov 2025 00:56:57 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------6cqP0ZzIK3gNLLxs3hU2C00n"
Message-ID: <e0aea302-00ba-426b-b65d-c616656f6836@gmail.com>
Date: Tue, 18 Nov 2025 09:56:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 01/18] xen/riscv: detect and initialize G-stage mode
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <2b21348b3300c741b276a47d5942e71d306846eb.1760974017.git.oleksii.kurochko@gmail.com>
 <8b204b21-80fb-408d-972e-8f183eb45dfc@suse.com>
 <6938d333-816d-49f8-9945-db9d4b17f1f1@gmail.com>
 <7d81564c-d7c0-47f4-9f2c-bf4508a0a870@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <7d81564c-d7c0-47f4-9f2c-bf4508a0a870@suse.com>

This is a multi-part message in MIME format.
--------------6cqP0ZzIK3gNLLxs3hU2C00n
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/13/25 5:32 PM, Jan Beulich wrote:
> On 13.11.2025 17:18, Oleksii Kurochko wrote:
>> On 11/6/25 2:43 PM, Jan Beulich wrote:
>>> On 20.10.2025 17:57, Oleksii Kurochko wrote:
>>>> Changes in V5:
>>>>    - Add static and __initconst for local variable modes[] in
>>>>      gstage_mode_detect().
>>>>    - Change type for gstage_mode from 'unsigned long' to 'unsigned char'.
>>>>    - Update the comment inisde defintion if modes[] variable in
>>>>      gstage_mode_detect():
>>>>      - Add information about Bare mode.
>>>>      - Drop "a paged virtual-memory scheme described in Section 10.3" as it isn't
>>>>        relevant here.
>>>>    - Drop printing of function name when chosen G-stage mode message is printed.
>>>>    - Drop the call of gstage_mode_detect() from start_xen(). It will be added into
>>>>      p2m_init() when the latter will be introduced.
>>> Well, thanks, but ...
>>>
>>>>    - Introduce pre_gstage_init().
>>> ... the same comment that I gave before now applies here: This doesn't look to
>>> belong directly in start_xen(). In x86'es terms I'd say this is a tiny part of
>>> paging_init().
>> Does it only the question of function naming now?
> Not just, no. My point is that you shouldn't pollute start_xen() with calls to
> dozens of special-purpose functions. There wants to be one call dealing with
> everything guest-mm related, I think.

I think I understand your point now. Iâ€™ll introduce|guest_mm_init()| and move
everything related to it inside that function (at the moment, this includes
the VMID initialization and G-stage mode detection).

>
>> IMO, ideally it would be nice to have it in p2m_init(), but there is no a lot of
>> sense to detect supported modes each time a domain is constructed. And it is the
>> reason why I put directly to start_xen().
> No per-domain function wants to be used for this, I agree. Hence why I pointed
> you at x86'es paging_init().
>
>>>> --- /dev/null
>>>> +++ b/xen/arch/riscv/p2m.c
>>>> @@ -0,0 +1,96 @@
>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>>> +
>>>> +#include <xen/init.h>
>>>> +#include <xen/lib.h>
>>>> +#include <xen/macros.h>
>>>> +#include <xen/sections.h>
>>>> +
>>>> +#include <asm/csr.h>
>>>> +#include <asm/flushtlb.h>
>>>> +#include <asm/riscv_encoding.h>
>>>> +
>>>> +unsigned char __ro_after_init gstage_mode;
>>>> +
>>>> +static void __init gstage_mode_detect(void)
>>>> +{
>>>> +    static const struct {
>>>> +        unsigned char mode;
>>>> +        unsigned int paging_levels;
>>>> +        const char name[8];
>>>> +    } modes[] __initconst = {
>>>> +        /*
>>>> +         * Based on the RISC-V spec:
>>>> +         *   Bare mode is always supported, regardless of SXLEN.
>>>> +         *   When SXLEN=32, the only other valid setting for MODE is Sv32.
>>>> +         *   When SXLEN=64, three paged virtual-memory schemes are defined:
>>>> +         *   Sv39, Sv48, and Sv57.
>>>> +         */
>>>> +#ifdef CONFIG_RISCV_32
>>>> +        { HGATP_MODE_SV32X4, 2, "Sv32x4" }
>>>> +#else
>>>> +        { HGATP_MODE_SV39X4, 3, "Sv39x4" },
>>>> +        { HGATP_MODE_SV48X4, 4, "Sv48x4" },
>>>> +        { HGATP_MODE_SV57X4, 5, "Sv57x4" },
>>>> +#endif
>>>> +    };
>>>> +
>>>> +    unsigned int mode_idx;
>>>> +
>>>> +    gstage_mode = HGATP_MODE_OFF;
>>> Why is this not the variable's initializer?
>> Good point. It should be the variable's initializer.
>>
>>>> +    for ( mode_idx = 0; mode_idx < ARRAY_SIZE(modes); mode_idx++ )
>>>> +    {
>>>> +        unsigned long mode = modes[mode_idx].mode;
>>>> +
>>>> +        csr_write(CSR_HGATP, MASK_INSR(mode, HGATP_MODE_MASK));
>>>> +
>>>> +        if ( MASK_EXTR(csr_read(CSR_HGATP), HGATP_MODE_MASK) == mode )
>>>> +        {
>>>> +            gstage_mode = mode;
>>>> +            break;
>>>> +        }
>>>> +    }
>>> I take it that using the first available mode is only transient. To support bigger
>>> guests, you may need to pick 48x4 or even 57x4 no matter that 39x4 is available.
>> I considered traversing the|modes[]| array in the opposite order so that the largest
>> mode would be checked first. However, I decided that 39x4 is sufficiently large and
>> provides a good balance between the number of page tables and supported address
>> space, at least for now.
>>
>>> I wonder whether you wouldn't be better off recording all supported modes right
>>> away.
>> What would be the use case for recording and storing all supported modes?
>> For example, would it be used to indicate which mode is preferable for a guest
>> domain via the device tree?
> Why device tree? That's what's exposed to guests, isn't it? Here we talk about
> what Xen uses to run guests. And that can vary from guest to guest.

At the same time, the bootloader also passes a device tree to Xen, and Xen
uses it, at leastâ€”to determine the RAM addresses and sizes. I also referred to
device tree because it can indicate the largest MMU mode supported on a hart:
   mmu-type:
     description:
       Identifies the largest MMU address translation mode supported by
       this hart.  These values originate from the RISC-V Privileged
       Specification document, available from
       https://riscv.org/specifications/
     $ref: /schemas/types.yaml#/definitions/string
     enum:
       - riscv,sv32
       - riscv,sv39
       - riscv,sv48
       - riscv,sv57
       - riscv,none
And so, I thought, that Xen could also re-use this information and use it as starting
value for Mode detection. But considering how much modes are supported by RISC-V spec,
it seems that it won't be too long just to detect which are supported in the way it
is done now.

>
>> Also, Iâ€™d like to note that it probably doesnâ€™t make much sense to record all
>> supported modes. If we traverse the|modes[]| array in the opposite orderâ€”checking
>> |Sv57| firstâ€”then, according to the RISC-V specification:
>> - Implementations that support Sv57 must also support Sv48.
>> - Implementations that support Sv48 must also support Sv39.
>> So if Sv57 is supported then lower modes are supported too. (except Sv32 for RV32)
>>
>> Based on this, it seems reasonable to start checking from Sv57, right?
> No. Bigger guests want running in 48x4, huge ones in 57x4 (each: if available),
> and most ones in 39x4. It doesn't matter what direction you do the checks, you
> want to know what you have available.

My point was that if we change the direction, then once we find the first (largest)
supported MMU mode, there is no need to check the others (lower modes) as according
to the RISC-V specification, the lower modes must be supported automatically.

~ Oleksii

--------------6cqP0ZzIK3gNLLxs3hU2C00n
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/13/25 5:32 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:7d81564c-d7c0-47f4-9f2c-bf4508a0a870@suse.com">
      <pre wrap="" class="moz-quote-pre">On 13.11.2025 17:18, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 11/6/25 2:43 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 20.10.2025 17:57, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">Changes in V5:
  - Add static and __initconst for local variable modes[] in
    gstage_mode_detect().
  - Change type for gstage_mode from 'unsigned long' to 'unsigned char'.
  - Update the comment inisde defintion if modes[] variable in
    gstage_mode_detect():
    - Add information about Bare mode.
    - Drop "a paged virtual-memory scheme described in Section 10.3" as it isn't
      relevant here.
  - Drop printing of function name when chosen G-stage mode message is printed.
  - Drop the call of gstage_mode_detect() from start_xen(). It will be added into
    p2m_init() when the latter will be introduced.
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Well, thanks, but ...

</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">  - Introduce pre_gstage_init().
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">... the same comment that I gave before now applies here: This doesn't look to
belong directly in start_xen(). In x86'es terms I'd say this is a tiny part of
paging_init().
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
Does it only the question of function naming now?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Not just, no. My point is that you shouldn't pollute start_xen() with calls to
dozens of special-purpose functions. There wants to be one call dealing with
everything guest-mm related, I think.</pre>
    </blockquote>
    <pre>I think I understand your point now. Iâ€™ll introduce <code
    data-start="112" data-end="129">guest_mm_init()</code> and move
everything related to it inside that function (at the moment, this includes
the VMID initialization and G-stage mode detection).

</pre>
    <blockquote type="cite"
      cite="mid:7d81564c-d7c0-47f4-9f2c-bf4508a0a870@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">IMO, ideally it would be nice to have it in p2m_init(), but there is no a lot of
sense to detect supported modes each time a domain is constructed. And it is the
reason why I put directly to start_xen().
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
No per-domain function wants to be used for this, I agree. Hence why I pointed
you at x86'es paging_init().

</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">--- /dev/null
+++ b/xen/arch/riscv/p2m.c
@@ -0,0 +1,96 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include &lt;xen/init.h&gt;
+#include &lt;xen/lib.h&gt;
+#include &lt;xen/macros.h&gt;
+#include &lt;xen/sections.h&gt;
+
+#include &lt;asm/csr.h&gt;
+#include &lt;asm/flushtlb.h&gt;
+#include &lt;asm/riscv_encoding.h&gt;
+
+unsigned char __ro_after_init gstage_mode;
+
+static void __init gstage_mode_detect(void)
+{
+    static const struct {
+        unsigned char mode;
+        unsigned int paging_levels;
+        const char name[8];
+    } modes[] __initconst = {
+        /*
+         * Based on the RISC-V spec:
+         *   Bare mode is always supported, regardless of SXLEN.
+         *   When SXLEN=32, the only other valid setting for MODE is Sv32.
+         *   When SXLEN=64, three paged virtual-memory schemes are defined:
+         *   Sv39, Sv48, and Sv57.
+         */
+#ifdef CONFIG_RISCV_32
+        { HGATP_MODE_SV32X4, 2, "Sv32x4" }
+#else
+        { HGATP_MODE_SV39X4, 3, "Sv39x4" },
+        { HGATP_MODE_SV48X4, 4, "Sv48x4" },
+        { HGATP_MODE_SV57X4, 5, "Sv57x4" },
+#endif
+    };
+
+    unsigned int mode_idx;
+
+    gstage_mode = HGATP_MODE_OFF;
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Why is this not the variable's initializer?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
Good point. It should be the variable's initializer.

</pre>
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+    for ( mode_idx = 0; mode_idx &lt; ARRAY_SIZE(modes); mode_idx++ )
+    {
+        unsigned long mode = modes[mode_idx].mode;
+
+        csr_write(CSR_HGATP, MASK_INSR(mode, HGATP_MODE_MASK));
+
+        if ( MASK_EXTR(csr_read(CSR_HGATP), HGATP_MODE_MASK) == mode )
+        {
+            gstage_mode = mode;
+            break;
+        }
+    }
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">I take it that using the first available mode is only transient. To support bigger
guests, you may need to pick 48x4 or even 57x4 no matter that 39x4 is available.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
I considered traversing the|modes[]| array in the opposite order so that the largest
mode would be checked first. However, I decided that 39x4 is sufficiently large and
provides a good balance between the number of page tables and supported address
space, at least for now.

</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">I wonder whether you wouldn't be better off recording all supported modes right
away.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
What would be the use case for recording and storing all supported modes?
For example, would it be used to indicate which mode is preferable for a guest
domain via the device tree?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Why device tree? That's what's exposed to guests, isn't it? Here we talk about
what Xen uses to run guests. And that can vary from guest to guest.</pre>
    </blockquote>
    <pre>At the same time, the bootloader also passes a device tree to Xen, and Xen
uses it, at leastâ€”to determine the RAM addresses and sizes. I also referred to
device tree because it can indicate the largest MMU mode supported on a hart:
  mmu-type:
    description:
      Identifies the largest MMU address translation mode supported by
      this hart.  These values originate from the RISC-V Privileged
      Specification document, available from
      <a class="moz-txt-link-freetext" href="https://riscv.org/specifications/">https://riscv.org/specifications/</a>
    $ref: /schemas/types.yaml#/definitions/string
    enum:
      - riscv,sv32
      - riscv,sv39
      - riscv,sv48
      - riscv,sv57
      - riscv,none
And so, I thought, that Xen could also re-use this information and use it as starting
value for Mode detection. But considering how much modes are supported by RISC-V spec,
it seems that it won't be too long just to detect which are supported in the way it
is done now.

</pre>
    <blockquote type="cite"
      cite="mid:7d81564c-d7c0-47f4-9f2c-bf4508a0a870@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Also, Iâ€™d like to note that it probably doesnâ€™t make much sense to record all
supported modes. If we traverse the|modes[]| array in the opposite orderâ€”checking
|Sv57| firstâ€”then, according to the RISC-V specification:
- Implementations that support Sv57 must also support Sv48.
- Implementations that support Sv48 must also support Sv39.
So if Sv57 is supported then lower modes are supported too. (except Sv32 for RV32)

Based on this, it seems reasonable to start checking from Sv57, right?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
No. Bigger guests want running in 48x4, huge ones in 57x4 (each: if available),
and most ones in 39x4. It doesn't matter what direction you do the checks, you
want to know what you have available.</pre>
    </blockquote>
    <pre>My point was that if we change the direction, then once we find the first (largest)
supported MMU mode, there is no need to check the others (lower modes) as according
to the RISC-V specification, the lower modes must be supported automatically.

~ Oleksii</pre>
  </body>
</html>

--------------6cqP0ZzIK3gNLLxs3hU2C00n--


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 09:05:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 09:05:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164554.1491485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLHeR-0005pM-8t; Tue, 18 Nov 2025 09:05:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164554.1491485; Tue, 18 Nov 2025 09:05:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLHeR-0005pF-5v; Tue, 18 Nov 2025 09:05:27 +0000
Received: by outflank-mailman (input) for mailman id 1164554;
 Tue, 18 Nov 2025 09:05:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLHeQ-0005p9-4L
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 09:05: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 b7e5bdc3-c45d-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 10:05:24 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-477a1c28778so25029395e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 01:05:24 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a80:314a:d80f:dc29:6f97?
 (p200300cab70c6a80314ad80fdc296f97.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a80:314a:d80f:dc29:6f97])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-477a972141bsm13055395e9.2.2025.11.18.01.05.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 01:05: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: b7e5bdc3-c45d-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763456724; x=1764061524; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RDIA6kJm7u/sdHm1R9Dvcv8HwuFRfkQo5VTH0mU4jcE=;
        b=VY42susf+mdOGhw7M8HOJIDzz5iA8ly0BTpPAZiPbEZ5FpZtk2V+94N8TO8bipMD9w
         OZ0F/UiTw9AhImpvyrF/CF2zOjSpjF2wWqGFB5D1+fVUU+lv8AePo4FuGQWONgdU7C8u
         w3BIjkOmuevcDOJOXBWI4uHSDIs9IaNM9E5o0EEu5JpKQFFag9wHTZ/AHvB9vw5T3LeB
         eoOrz0cj/+Vm+KNslomHhHM04AG/TPOoHevvNhaAGyVAN5Pee6FOmobvx81WL4br4Bes
         sXoCXCBGj3iJhFJJKtNWRDGEF0BJccecdR6qk7DyqSS88YD33X6VhX7RW0BKtnzOBa1t
         7aGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763456724; x=1764061524;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RDIA6kJm7u/sdHm1R9Dvcv8HwuFRfkQo5VTH0mU4jcE=;
        b=co15jytGdGokdaejQeQNoMq+cXihJiTNmGMZ84MvoF0iS1JnNfd9GIwh877DZrr7VS
         hMuvAGBprdofQMkgMy4DDZ4soQaYdYgTaymXssTK8UbmeFwNPxCZ969qmvxTD3QTyGbe
         RhUskvnAlMiv1rfha/UoT64CPMxJBs1GIcI8dB/H0gCuZZ2j/OFCc8gOoa91ZriG0Bdp
         +hZpoSwgHlQTH2mvqJ9j3k05HVd+baL39kFiyIEdDIZLTEYySInM4JLMsS+sejyT2sp4
         yNEuzUdKVkI07VAQ3+hoARtLw+x70/jz1JBZnOahk9fC1w2FnKT/CQgwGAwYTb9mUshd
         AY5A==
X-Forwarded-Encrypted: i=1; AJvYcCV8iJQgnN2g5RX1F2IuF7RQPJ5kB/IGnECmgbdiMBvTbbo7ZPNEM9f8+2hxb+2JddBLwPOytb3sFTY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxU1/QMB/0C77HpBmsxczg5E7fwozDA+K9l3koxiQEEqyN1IOm8
	G+sssfqlyp0PLEfuzGUaDa/iQ4FQUa0JpTLgJJrVvVmolzA168662FFvBK+N3CqQbA==
X-Gm-Gg: ASbGnctXPOVaH2qsqW51gYCSJSODEfkrMhfxaDSy8wZ/NGDPBohEfUmIFVvLdC+7edl
	A8DJnh+ojDtUkXxM1AsRtJQYd25Inhx/N6hxrDl34BcAglfHlA6laIj9iRGMZ5YUwasgaz0YWVD
	PlahkQqmE/8GEhPLcejhxjx+xl0y5r4IJNFXfA+UJgJNdhw2okTCcwUDHr5Xy3niRVd3pVQdF80
	T4+C0fnSe0MBRqq8IO0hKdNwUMgVzx6b6ZSN7BKf7/1wVQr86M2beyJ5Nb2Xk630VY2VSwC97+e
	wOx8KDrY0Z4WYZ8hxQ97n+sdLYvR2tOq5JQzR9wfeH5NHJ18hBbjprPp4HEI5s5P3e8ZZANUtRZ
	SCbdARrrd6C2T7KbVfkBAVHztvZW48Y43ZO7MoTjE7cQD/oR6AkJaIZclp/MktKFxQeb8is/e+/
	+exXUUUvnyvqOxt4TmM7MB/SvG+HHT2u4WQFirWNP176vDpiwCuk1/JeLx32G7Xa+qSubfu2obo
	7pK2a8A2lq7BoRer5yOM8xBY6t6dzVA113LZQ==
X-Google-Smtp-Source: AGHT+IFq46EFT0naRVasLso9yBUvMqg1yCxpMDpvstyXX3bM3CPTNzLbuZpFXzXa761I3TAGe1XdTw==
X-Received: by 2002:a05:600c:3b19:b0:471:989:9d7b with SMTP id 5b1f17b1804b1-4778fe95fe2mr146223555e9.21.1763456723992;
        Tue, 18 Nov 2025 01:05:23 -0800 (PST)
Message-ID: <01405772-da90-489e-bf9c-4065b37a6e08@suse.com>
Date: Tue, 18 Nov 2025 10:05:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 01/18] xen/riscv: detect and initialize G-stage mode
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <2b21348b3300c741b276a47d5942e71d306846eb.1760974017.git.oleksii.kurochko@gmail.com>
 <8b204b21-80fb-408d-972e-8f183eb45dfc@suse.com>
 <6938d333-816d-49f8-9945-db9d4b17f1f1@gmail.com>
 <7d81564c-d7c0-47f4-9f2c-bf4508a0a870@suse.com>
 <e0aea302-00ba-426b-b65d-c616656f6836@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: <e0aea302-00ba-426b-b65d-c616656f6836@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.11.2025 09:56, Oleksii Kurochko wrote:
> On 11/13/25 5:32 PM, Jan Beulich wrote:
>> On 13.11.2025 17:18, Oleksii Kurochko wrote:
>>> Also, Iâ€™d like to note that it probably doesnâ€™t make much sense to record all
>>> supported modes. If we traverse the|modes[]| array in the opposite orderâ€”checking
>>> |Sv57| firstâ€”then, according to the RISC-V specification:
>>> - Implementations that support Sv57 must also support Sv48.
>>> - Implementations that support Sv48 must also support Sv39.
>>> So if Sv57 is supported then lower modes are supported too. (except Sv32 for RV32)
>>>
>>> Based on this, it seems reasonable to start checking from Sv57, right?
>> No. Bigger guests want running in 48x4, huge ones in 57x4 (each: if available),
>> and most ones in 39x4. It doesn't matter what direction you do the checks, you
>> want to know what you have available.
> 
> My point was that if we change the direction, then once we find the first (largest)
> supported MMU mode, there is no need to check the others (lower modes) as according
> to the RISC-V specification, the lower modes must be supported automatically.

Oh, I see, makes sense.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 10:11:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 10:11:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164566.1491494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLIgO-0006cS-S7; Tue, 18 Nov 2025 10:11:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164566.1491494; Tue, 18 Nov 2025 10:11: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 1vLIgO-0006cL-PX; Tue, 18 Nov 2025 10:11:32 +0000
Received: by outflank-mailman (input) for mailman id 1164566;
 Tue, 18 Nov 2025 10:11: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=g+ix=52=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vLIgN-0006av-1A
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 10:11:31 +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 f1d30c08-c466-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 11:11:28 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 IA0PR12MB8896.namprd12.prod.outlook.com (2603:10b6:208:493::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.21; Tue, 18 Nov
 2025 10:11:24 +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.9343.009; Tue, 18 Nov 2025
 10:11: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: f1d30c08-c466-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HBmtf4MWkkmcqmRWIelHnnD7mNNGYurofC6g60Eu9Sa+PAxZmCTmLFfXijMEGFyBiqNnsTl2NyyfxnxCmko/i5G31wgWl1Sf5kG0BEs8xwgZocjnC/gS8qKtJ+9xAJ2yW+OlRNsqzarsytF0VBNo9p5VQyS/7soZT0SQpVRYGeGkeqlT5IW5Jrxp8Cu+i3Sod+1OBvHJPh31RFQJ9LqJ+xBxzyci5dfDueIhUUYA1cq1h6OBxwM1haXU0qqjTbyRZOaIjxQum3uAtCR1bFPeDkzYMfFB9VSowX3WqUzypsAWuIwdET4MLMp+AeV0SuKqcaMetIudO5nGBh5KWSvlTA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mXgZPuWfVNaFcLppfHsSUSWfXImbmJ+XVS1m2BZsvko=;
 b=meRiY5ay7QctgdvjQjrp3qZzTqGXuMpmEdfGRcQSI0aohIvmYn0u3qBm2Zz+v5fsOtDL9mvgpka+szohAPHl40CZT03FQho9zZtvPuxcYfJIDoQZZqBohBqMUeRcjIKN2JUerm4wUTaPY91Us+I9h3w8M5o+iquEtjpLtJpXJCsu9eGGpBuQUNaHIXKvOGwqgI5zmUWub+NwBBkovc/P3FpAtCsH01kOfRkon7AP7rxMGcA4bANi6rsw3l+pANtcFdvgCYyLZ/YT1mLm7X6fhXCdpzctPQ+Z9qNbAWenHcS1H4HB3/J4D1jFPWMCHXo+jO8WYCNH8p2rl7oOLgYIlw==
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=mXgZPuWfVNaFcLppfHsSUSWfXImbmJ+XVS1m2BZsvko=;
 b=dyrMYdiHrKutiTtGBtbajH4C5MqddUEPDCXKhXfjRsSbKmCeJaHfvtT2tU3o6AskqrppTz0Y+LmT8XZTIa7caRELJydB6MCdcNr1k4QRIZqydqeUxwW1u9yrC3cSUoQY0k6NMUeXahy3qMednU51yC7Cl/datsHYZ3rlB2+4L+k=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, "Andryuk, Jason"
	<Jason.Andryuk@amd.com>, Tamas K Lengyel <tamas@tklengyel.com>, Alexandru
 Isaila <aisaila@bitdefender.com>, Petre Pircalabu
	<ppircalabu@bitdefender.com>, Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v1 2/7] xen/vm_event: introduce vm_event_is_enabled()
Thread-Topic: [PATCH v1 2/7] xen/vm_event: introduce vm_event_is_enabled()
Thread-Index: AQHcVEv8xX7X3Fxy9k66rxMQCyTwArTwUwWAgAfo9XA=
Date: Tue, 18 Nov 2025 10:11:24 +0000
Message-ID:
 <DM4PR12MB845153694D28CC23FCF7C7C3E1D6A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251113031630.1465599-1-Penny.Zheng@amd.com>
 <20251113031630.1465599-3-Penny.Zheng@amd.com>
 <8c74b068-ba9a-4867-8d39-31c77f3cc339@suse.com>
In-Reply-To: <8c74b068-ba9a-4867-8d39-31c77f3cc339@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-11-18T10:11:16.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|IA0PR12MB8896:EE_
x-ms-office365-filtering-correlation-id: bd79ccfc-fcd6-44a3-0a56-08de268ad468
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:
 =?utf-8?B?Z0QzYXZlUUNTc2lmMTRDVG5ldUptZGJKSlRieFNvYzNLK1VQRFFYa3dsUHcw?=
 =?utf-8?B?NlFzTHlyc2NPY0pHRGxyaUxaRHB3aW1UVWZDSjE0aXpLanZFeVpoYjRuMERY?=
 =?utf-8?B?enhHRlMwaG04YkJJMzlvQ2h1NWphZjJrd0pvelNFSlVqNlNpMXlhYU14VW5U?=
 =?utf-8?B?YWE0QlBJVklMYTlyZU9KazhaclpsN1JTbmp4WElaRlFVbW5vRnR0d3Y5L3FC?=
 =?utf-8?B?WElHOHBRaStuZWV1VDFHM2FneGZSY2YzRitsUUVJWFVSN042YWQ3Y1dLTDhk?=
 =?utf-8?B?N25yREx2T2RJbTY0YkpZZ2JmdXJTbVhpRjdLYkdOcFdIenFVVGY4Q01ra05J?=
 =?utf-8?B?Z0tTdHZRWmRzMERteXNSUXNsMDN0dWVsWjhDYUdvWi9vZnNzVUJpMU9iSm1l?=
 =?utf-8?B?cEtNVkJNQmhFanU4TWtiQXd5bFJDemRvVmJ1aGFFRlVEaU45WjRSNUd5MEg5?=
 =?utf-8?B?ZU5EaVJuV2V1TXErcHdqQkhmWU5BYW5NZ3ZLVVN1ZjAvWExONXVhMXBMZkwr?=
 =?utf-8?B?RjhEeGlWeWpUdGdvV1dzdEdsbjNqZVdiNXdKQXplRzdYMEs4ZzJkVjNUSGha?=
 =?utf-8?B?UjE2dHdRaW5MNmhuL2FxejExZWlhbWpvcWNPM004ejhwZjZldXBTeG9mQ0ND?=
 =?utf-8?B?em1UVCtHNWViVEI3S0dBdkkzV2tZRkFRdC91ZUpGMzNlM2VKQjA1QmVuZklu?=
 =?utf-8?B?TTFwNS9lZnVsbzVyblRyaDNZZ29xQklnOWhKZTA4Q0J5SXdEa3ZlZStNUjJG?=
 =?utf-8?B?ekl2dHdYSXRWVVRLbVlHYW4vVjdENWNTVWZjQXlkcmFtRkNndlJBNXl0T3ZL?=
 =?utf-8?B?bDdsa0JhZDhTSVlIN2RIVy80aDllT2I5b1hDd3ZTbkdySFhzMm1idExIZEhP?=
 =?utf-8?B?T1VyQU12ZlUrZnd2eGF1QTZWa3hvL29CVnZjV1ZKcDAyTy9mQ3R6VENTalFa?=
 =?utf-8?B?QytrZ0dHY3hFYXdLTnZaY2tKYmthZ01mTjRyaUYrSVJkMkVHcFg1NUgyaHky?=
 =?utf-8?B?T3hNZTlQcmx0Uk5tcWZ6MGlzRFpEdklJeFZHWHJ0V0t4enlRQmppd2tOZmJ2?=
 =?utf-8?B?Zkk1NmRDTEpsUHBZcmJvR1hHMUtxMy9VUDNONVpETEpLcGo4amZhdVB3emRY?=
 =?utf-8?B?M05vVkhBbWtWNU9XVUFSbUZYemhIbG9hT1cxdDVSbVV0L0todmphOGUrNWZz?=
 =?utf-8?B?eFFDaEVoL2VLQkVxSXliTWdmaXM0T044NFh6TjNzUEJ6MG5aWG5meVlnYXlF?=
 =?utf-8?B?Vm1GSzlHZEw0cFcvZkhiYU5US2x2MDBOb0VMMmc1Sk5EU0VXWWllWk5xS0Jr?=
 =?utf-8?B?VVMxWTBwN2hOVmgzckNsV09ubjVvWjlXWm1MYzV2WDl0WjFMTFNsZHllUWkr?=
 =?utf-8?B?ZmtjeHFjNTRkWjJYTXNGK3BaWFFKcjVlN2gxelVFQUxrUHZMZldqNHBEbGJx?=
 =?utf-8?B?b09KdjB6RWc3R0VIbW8vcGZUbTR0Nm82TXdnU3BENGdiMzJDTGdJTVVFazE0?=
 =?utf-8?B?V3lwd2lMdDAvMU1NVE9DeHdzZHlTUmxjU3NjUEFuYVJQT0dvaDNhbk1Ham9h?=
 =?utf-8?B?RjNZbjRyYU9QUmRZblltOFpKTDNRSm1ISmFBTEcxeENLSUIrSXRSTnpBbW4z?=
 =?utf-8?B?VVlaRGx6b3J4ODZjbWl2ZnB6Zy9TOU9DVHd3RTZjajQ0ZTdDcGFRZXJGYXBL?=
 =?utf-8?B?VHNnYnNxcXJRMjdZZDJMMDRmNWpZUmtMMWF4K3d0ZkxjT2R0b2VzOFhaUzRn?=
 =?utf-8?B?VEFLOG83UVluWkRiNUFScnlQY1MxN2RrL2o5RkNidThXV3R6dzFVTUdtUDVs?=
 =?utf-8?B?TzBlQkpZUnJxYVBPWlJFdDFVQmZ1dWVSb2ZLRXhBSUJUSkZxRWpmYWgwN3Nr?=
 =?utf-8?B?ZnVDNHFIWmhmYUVIRXFZcC9oSTlBanlkRnBRZUtvbWc1RmxwcVZXUVVRd0J2?=
 =?utf-8?B?TVJyOUo5NXFSdEpjczdPb3R2NjZWNnJBSzJQK29VRm1Mb2luT3FJNXd3bisy?=
 =?utf-8?B?SVhjZjV5QjNYZHJMeUtZWk9pTFVwMWlQOUdQNjJOUzRNR2hWNlBySVRISzdI?=
 =?utf-8?Q?MQLu8W?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MjBocmFkbnlEOTBJbXVONHhBUmk2R2VIQ1BPZklDcm85U1U1Z0IvcUJQclZp?=
 =?utf-8?B?Yy9zZHRXUnRqdy9aUjRLMnZ1b25kVVNLQ0tOaU5LaTEzSmlZUUZHZUphbGFL?=
 =?utf-8?B?aENpZk5mMTBMQlU3bFlCekRvbFcyTHExWFJ0bjBUaHYzZHFPVUhQaS93Y3la?=
 =?utf-8?B?N2xvV2ZsbHBRWVlMd3lMTXN1UE9yemhDNXBtZWx2MW94d2ltVHV0QUFES1dh?=
 =?utf-8?B?Y2NPQkdiQWZQRkI0ZmVIMXFFMWFiL2MrM3NXYnhVRDYrV0xYazkxR095SFNr?=
 =?utf-8?B?eUhzUkdGSTU3RlkrQllRSnR3cTVTYTVTT0FhSzZWNmtFUFFrMDc3b1JVTVk1?=
 =?utf-8?B?NGIvbXBEMS9NVjdWTEY3dWxvYk8zUFhHeS9WS2NmL3VnUUdMK2Zwa0pzTjFB?=
 =?utf-8?B?YWIxOTh0YTFGNW5IbTdhTkFwSTErMDJtRCtJMlNQNmlMaldJOGhHR2ZTSDF6?=
 =?utf-8?B?ZGNqRm8wQTJuK1BEbVN4V3pOZkpIMkJyM3VVUC9HUjUvWVdQT20vV2I3NXhq?=
 =?utf-8?B?S2hHNnNGSzk3RVNTYWNxVFpLQmsrUjNOckg5YXVGTU5ibWE3ZWNrVysyUTJa?=
 =?utf-8?B?dFlJd2tqQlQ1VFVsMCtqOWEyU1Zqa1FtRGhsZGtzbE1ia2I2VXNKMC91THdX?=
 =?utf-8?B?TEhsUzF6TWFEMk1iU2RIVEFwd2xpUTVUN04yNFU1MHpuTTVqWjBVemdkY0lK?=
 =?utf-8?B?NCtxRUlFMStPUndMUjZrcmZFdDhaaHRJYkh0T082bTZDclNsVTBMalA3SEg1?=
 =?utf-8?B?RklMRjZsaVVKMVRoVlpsaWN3RG4vOEdieTNoN1QwZC9aVUJzek9qZG1CV2V2?=
 =?utf-8?B?clZTblRNa0h5eXZVQjNMSTZxNHl2K3ppaHc2QmFKem9rQkNtVkJiMG5XNlJX?=
 =?utf-8?B?TmNXQ09ibmlCV2JoR2EwWEppQVlxR21QaU1vSGJXS29Kd0UzZ3lVL1hFZkh6?=
 =?utf-8?B?Wm1KaHhvNmprYWdTbWpFa0Ewb2t2RndJM090cE1HWjdLa2FUODdMdnh4OStC?=
 =?utf-8?B?Tk1ocXVoaVRqSFZSYUVLd05UaTlmVDB0N2c2VXBZVW5SeEthVytlcHNUODdG?=
 =?utf-8?B?VUlrWHJVNkhVQmE1RGg1MEVrR0VxZFptMVNTTzdrVzR6eFcwOXA5bEdWZVND?=
 =?utf-8?B?ZzVwaXllcSt2a2haRG8zQ3U3bEhIWnhlTTViMXRzemxYcE04OHRpSk1CYm5m?=
 =?utf-8?B?b2hFYXhJM2dCK1BlRUJGYXdMU0c0dFZwTkV1OUZtRm9YUUo0UDJEZGx1ZXgv?=
 =?utf-8?B?SlZQZTZlZEJENkxFTkYyWkRnK2J2bmEyUElnbzlkcStxdzg4dWczZTMzUGlm?=
 =?utf-8?B?aTErbld2RTJmWHIrdGJoUHpBazJlRVBDSmlIRzgrNHJtZjJ5ejc1OTNJNGdi?=
 =?utf-8?B?WGZrRWh4dWtpOEpIT0hGVHRDNkFzSFZNM0lEWmFZeHYyalhONS96SWdydmsy?=
 =?utf-8?B?aitHa0FWQytFdE5ac3lraTdKeXNkM3ZHL1lNdFdSeG1BR1hTS1d2VStIaFBi?=
 =?utf-8?B?QnNIQTZQQmVPcGpLUnJVRjBUQlVXaXRRSG9PeGs5aFlvRG1jdWdQcndOU2hz?=
 =?utf-8?B?TGlBMW5TdXphS1kvUm94Q0padnphK01admw2clFpcWtBTmMzbWcxWVhqUTRh?=
 =?utf-8?B?YWgvd0c4Q2xRckV6VEZ1ZGNiZXRDb0pzVTNHQXhmbVc3VjNlYzhrb2dTVy90?=
 =?utf-8?B?d1RteXY3U2Y3SEJ4b2N1R3VHQ3R6T2p1cW54bVI5L3UvZnBjeStIUlJuN2NE?=
 =?utf-8?B?K1I0c1pYUEJCM0xuaEZOT0dLYVFEV0cxS3VBRXRTTHUvejZqZFBnbFRWZVo0?=
 =?utf-8?B?aUt6STNUcWJYVG9KZmwxWHEyWHc5bmdmYjVJVlZFdUtEdmh1eHZBSzc5ekdJ?=
 =?utf-8?B?VWRiTU9HakpORHNmN1RlakJKcGZvd21jMjFpWWdQOHNpNkY5K2gxRHhlanFh?=
 =?utf-8?B?MzYxNXM3bVh4ZE5DcDMrSFJnVElPaWRScEpkcHRvd29QT0FQcEhqUTdJbTQz?=
 =?utf-8?B?WTRuUERXU0tvM1V4ZjEzMEVzMlRjMUQ5aE9ScVlQU3hFaFFKeFdKU294T1pj?=
 =?utf-8?B?cXg2ajZKa3d4NE1hVXp3dGFFdXBkZnhlRXJENmh1T1M0czUzMFBPUGREY0Nh?=
 =?utf-8?Q?DpH0=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bd79ccfc-fcd6-44a3-0a56-08de268ad468
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2025 10:11:24.3932
 (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: hOKIJYRsRjuQi+OJGnlE1LxxklOLUqjqlTchEqibTUi0NocA1au0XoQEmXbgwjnHRstf3c6bpdKqRKguOxkE9A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8896

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBOb3ZlbWJlciAxMywg
MjAyNSA1OjE0IFBNDQo+IFRvOiBQZW5ueSwgWmhlbmcgPHBlbm55LnpoZW5nQGFtZC5jb20+DQo+
IENjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPjsgUm9nZXIgUGF1
IE1vbm7DqQ0KPiA8cm9nZXIucGF1QGNpdHJpeC5jb20+OyBBbmRyeXVrLCBKYXNvbiA8SmFzb24u
QW5kcnl1a0BhbWQuY29tPjsgVGFtYXMgSw0KPiBMZW5neWVsIDx0YW1hc0B0a2xlbmd5ZWwuY29t
PjsgQWxleGFuZHJ1IElzYWlsYSA8YWlzYWlsYUBiaXRkZWZlbmRlci5jb20+Ow0KPiBQZXRyZSBQ
aXJjYWxhYnUgPHBwaXJjYWxhYnVAYml0ZGVmZW5kZXIuY29tPjsgR3J5Z29yaWkgU3RyYXNoa28N
Cj4gPGdyeWdvcmlpX3N0cmFzaGtvQGVwYW0uY29tPjsgeGVuLWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjEgMi83XSB4ZW4vdm1fZXZlbnQ6IGludHJv
ZHVjZSB2bV9ldmVudF9pc19lbmFibGVkKCkNCj4NCj4gT24gMTMuMTEuMjAyNSAwNDoxNiwgUGVu
bnkgWmhlbmcgd3JvdGU6DQo+ID4gRnVuY3Rpb24gdm1fZXZlbnRfaXNfZW5hYmxlZCgpIGlzIGlu
dHJvZHVjZWQgdG8gY2hlY2sgaWYgdm0gZXZlbnQgaXMNCj4gPiBlbmFibGVkLCBhbmQgYWxzbyBt
YWtlIHRoZSBjaGVja2luZyBjb25kaXRpb25hbCB1cG9uIENPTkZJR19WTV9FVkVOVCwNCj4gPiB3
aGljaCBjb3VsZCBoZWxwIERDRSBhIGxvdCB1bnJlYWNoYWJsZSBjYWxscy9jb2Rlcywgc3VjaCBh
cw0KPiA+IGh2bV9tb25pdG9yX2lvKCksIGV0Yywgd2hlbiBoYXZpbmcgVk1fRVZFTlQ9bi4NCj4g
Pg0KPiA+IFNpZ25lZC1vZmYtYnk6IFBlbm55IFpoZW5nIDxQZW5ueS5aaGVuZ0BhbWQuY29tPg0K
PiA+IC0tLQ0KPiA+IHYyIC0+IHYzOg0KPiA+IC0gbW92ZSBhc3NpZ25tZW50ICh0byBldikgcGFz
dCB0aGUgY2hlY2suDQo+ID4gLSByZW1vdmUgcmVkdW5kYW50IGNoZWNrDQo+ID4gLSBtYWtlICJt
YXlfZGVmZXIiICYgd2l0aCB2bV9ldmVudF9pc19lbmFibGVkKCkgYW5kIGhhdmUgYXNzZXJ0aW9u
DQo+ID4gYmFjaw0KPiA+IC0gYWRkIHZtX2V2ZW50X2lzX2VuYWJsZWQoKSBmb3IgaHZtX21vbml0
b3JfeHh4KCkgaW4NCj4gPiBzdm0uYy92bXguYy9tZW1fc2hhcmluZy5jLCB0aGVuIGxhdGVyIHRo
ZXJlIGlzIG5vIG5lZWQgdG8gYWRkIHN0dWJzDQo+ID4gZm9yIHRoZW0NCj4gPiAtLS0NCj4gPiB2
MyAtPiB2NDoNCj4gPiAtIG1vdmUgIm1heV9kZWZlciIgJiB3aXRoIHZtX2V2ZW50X2lzX2VuYWJs
ZWQoKSB0byB0aGUgdmVyeSB0b3Agb2YgdGhlDQo+ID4gZnVuY3Rpb24NCj4gPiAtIHVzZSA/OiB0
byBhdm9pZCBpbnRyb2R1Y2luZyBhIG5ldyBsb2NhbCB2YXJpYWJsZQ0KPiA+IC0gZml4IHRoZSB3
cm9uZyBvcmRlcg0KPiA+IC0gdXNlIHBvaW50ZXItdG8tY29uc3Qgd2hlbiBwb3NzaWJsZQ0KPiA+
IC0gdXNlIElTX0VOQUJMRUQoeHh4KSBpbnN0ZWFkIG9mICNpZmRlZi1ibG9jaw0KPg0KPiBUaGlz
IGlzIGlycml0YXRpbmcsIGFzIHRoZSBzdWJqZWN0IChib2d1c2x5KSBzYXlzIHYxLg0KPg0KDQpJ
J20gbm90IHN1cmUgd2hldGhlciBJIG5lZWQgdG8gYnJpbmcgcHJldmlvdXMgZGlmZiBvciBub3Qu
DQoNCj4gPiAtLS0NCj4gPiArc3RhdGljIGlubGluZSBib29sIHZtX2V2ZW50X2lzX2VuYWJsZWQo
Y29uc3Qgc3RydWN0IHZjcHUgKnYpIHsNCj4gPiArICAgIGlmICggSVNfRU5BQkxFRChDT05GSUdf
Vk1fRVZFTlQpICkNCj4gPiArICAgICAgICByZXR1cm4gdi0+YXJjaC52bV9ldmVudCAhPSBOVUxM
Ow0KPiA+ICsNCj4gPiArICAgIHJldHVybiBmYWxzZTsNCj4gPiArfQ0KPg0KPiBTaW1wbHkNCj4N
Cj4gICAgIHJldHVybiBJU19FTkFCTEVEKENPTkZJR19WTV9FVkVOVCkgJiYgdi0+YXJjaC52bV9l
dmVudCAhPSBOVUxMOw0KPg0KPiA/DQo+DQo+IEkgZ3Vlc3MgSSBtaWdodCBhcyB3ZWxsIGRvIHRo
ZSBhZGp1c3RtZW50cyB3aGlsZSBjb21taXR0aW5nLCBldmVuIGlmIGl0J3MgcXVpdGUgYSBmZXcN
Cj4gb2YgdGhlbS4gSW4gYW55IGV2ZW50LCB3aXRoIHRoZSBhZGp1c3RtZW50cw0KPiBBY2tlZC1i
eTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KDQpNYW50IHRoYW5rcw0KDQo+IEph
bg0K


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 10:20:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 10:20:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164578.1491505 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLIoX-0007IA-Lc; Tue, 18 Nov 2025 10:19:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164578.1491505; Tue, 18 Nov 2025 10:19:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLIoX-0007I3-I7; Tue, 18 Nov 2025 10:19:57 +0000
Received: by outflank-mailman (input) for mailman id 1164578;
 Tue, 18 Nov 2025 10:19: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=USx6=52=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vLIoW-0007Hx-90
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 10:19:56 +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 1fb124f9-c468-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 11:19:54 +0100 (CET)
Received: from DS7PR03CA0025.namprd03.prod.outlook.com (2603:10b6:5:3b8::30)
 by BY5PR12MB4322.namprd12.prod.outlook.com (2603:10b6:a03:20a::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Tue, 18 Nov
 2025 10:19:50 +0000
Received: from DS1PEPF00017091.namprd03.prod.outlook.com
 (2603:10b6:5:3b8:cafe::97) by DS7PR03CA0025.outlook.office365.com
 (2603:10b6:5:3b8::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.17 via Frontend Transport; Tue,
 18 Nov 2025 10:19:14 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS1PEPF00017091.mail.protection.outlook.com (10.167.17.133) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Tue, 18 Nov 2025 10:19:49 +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, 18 Nov
 2025 02:19: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: 1fb124f9-c468-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yrJL0JrMEB0m7a4tht5R3yH1rzrwmSdkQY/WEevBthYob7bMkNHzhkCPTbg4bPFb2fZ2TbAB9MO1r3dNMxZhmrROGD2J7HDixa20RXUst/km/mSbu7mUxkmiv7LtukLV5h+Iy2FRvML36aqkyiTeDcAftBoAEHlWrn6Jkf8pEFZwDDf3bablCvqgsyQmz1jIBC0R1327QReAv+W4m6nXmpkYG28s7BW652xwm9nnyaYAQHGBUB/bCW+zHAZgd8OlvqOQAdKFSyThGV8lgb8lzR31ciSBkHjIPOCd8v5kU+5aeuKaVTFtDR5NrSS/BqKYANLaGrAKNpN4MLsWBTGzzw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=p/9VCwJ30+tlSZHfeU8x6VTrj4Pik8zQbWJTIumAWYI=;
 b=V0Fxb3GTRFK4hXijuwIPhtT0QjwhyYtTk7pTulMgNQ31KTBGGYdLjKXW9LtfatsL6KOE2aGs4FTRQ48bCgpEbio+H67D2ix6pSb5+GmI2+/g0SJ1dDtd3XCVCdDxTUbQfVZbkmNX4OrIUNBMGKVu9fPpCsBKssMvWcyKBb1RITj2psT1PcY1vPDDbGP3vSJFrce4owkSbZ7tSUB/m2L/gRGMClOi60L75676K+fECj/Q8w6mmECfJmYt/3zOkKM3TJ0Ifa56lVDGMgspNLLILyjJBawCVtghX/QcmE0/wYxPVPFtBHfJS1bIGDOrMdhDEc3XTkT4y2g5XbuUMpWbGA==
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=p/9VCwJ30+tlSZHfeU8x6VTrj4Pik8zQbWJTIumAWYI=;
 b=0uXTuY4LY4BbkEhJON46/wAYb9ROHsie5PRS4/U05+QyiV7nNT0evzA2vTmEcl1myWFXAEv+zTdASHmpYbSra7grUSk/7YR+L6ZhiLGhllZhSJ4cLTp3tT0HG9gMrzaBnSbP9PuvaIBx6aXey0n22mV5dmkfSJjeSwRbxQ4exf4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 18 Nov 2025 11:19:45 +0100
Message-ID: <DEBQTGUHGDTP.QF2PFIK6CKUZ@amd.com>
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
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>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, =?utf-8?q?Marek_Marczykowski-G=C3=B3recki?=
	<marmarek@invisiblethingslab.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 0/4] Add Kconfig option to remove microcode loading
 support
X-Mailer: aerc 0.20.1
References: <20251112162219.226075-1-alejandro.garciavallejo@amd.com>
 <61df49ba-4aab-42e3-b945-700a8f20c739@citrix.com>
 <035a9514-9a7f-44ab-86a7-61deab37f7c7@suse.com>
In-Reply-To: <035a9514-9a7f-44ab-86a7-61deab37f7c7@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: DS1PEPF00017091:EE_|BY5PR12MB4322:EE_
X-MS-Office365-Filtering-Correlation-Id: 47eef671-c8ba-4e4c-169d-08de268c01a3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bzE0ZkJwYkI2NGZPcmcxWlFIUG4vUWFvZmo5TStKU1dsVnZ4dnd0U2pHUDdZ?=
 =?utf-8?B?c1Q2TG5Xc2pJU0VBNjJDM29mTFRxbWNCMTdTdVFxa3NBZTBQVG5ET3cxaW5Q?=
 =?utf-8?B?RDdpUEoyOVhtbjVOUzkrbGJJbVRYTDBsdk1FUHQ4Yk5ZRDc2cW80b2ZsbGg3?=
 =?utf-8?B?WlFDZXY5L1UzQjR0ekt2L2U0bFVXbktGME84OTV3cUdjRERCdXJXdElsVTZT?=
 =?utf-8?B?MDRTVTYyNmxkVGw5dkF0RmpsYUs5dG1iSE9wZVJlbUgvRFAyMlcyanBFTmJk?=
 =?utf-8?B?eVhyb3dFOEl0TmZCVnpvWDNIbmgxOTRmeWlwQXRCTWxpQ0J2QXNaSGlMNjdV?=
 =?utf-8?B?NGVKbUFIV2IyNUMxSkxLTHR6Vm52MlFMY0dGY0NvYmpWNzM5Z1Z5UXJMZUNt?=
 =?utf-8?B?NXFFSndGeDQxU1pidm5Rcm9CV3pnYVlYZ1FVdm94WFc5RGtBUGV0bTlRMmRU?=
 =?utf-8?B?UDMxek5DWHBmR3dXQ3NCVENxUXR4dWhmTHhQSTZqVVpaVHBaVHo0Q3kvTjFk?=
 =?utf-8?B?RDMvZW52Q05SYjhuZ1hmTFE3RTU5RE1BeHFlQjBrTXI2SloyQ2dPWmJWZEVw?=
 =?utf-8?B?NDBBTmRiK3RNSUhPQk5nTW1QUGdOL0laNURSZWkzR3RRWGUxMWNvTUZVamlQ?=
 =?utf-8?B?MXQ2MEgyUW83anpUQWttYTNsL0RidlJxZGw5elQ3dVlwZGpkV0FPQzZMdnpl?=
 =?utf-8?B?VTVzNWZtUkw4MHNzMmhkNkUxVllKcUJnTVFNcEdMUXhMUXh5b3BFTkt3SUIv?=
 =?utf-8?B?Y1FtVTlMVVJ3SHhlWWIvRW9COExuOUxLVkEzSUZNdkt1Z3pCQy9PdjBoU1hF?=
 =?utf-8?B?RFBtSG9XK0FKR0RKdm5wOFkvQ0ljN3VESTZjMlpUR24xallmZnQ1N2pGOGVT?=
 =?utf-8?B?bTFlZWNpU2JSZ25wYTVkOWdwQUhzbHF0YUwvRUdMK0t5YmVQTzRXU2swOTRk?=
 =?utf-8?B?MkJtdE0wS2JMc091TVBhV2RwYkowU3N0UzdjZ05kTHFhL001Q2FxVWVDeU1P?=
 =?utf-8?B?SkJ1ajNCQXNHRGpBK01BWnRaemNEWEIxZi9xaDRDanI4Nklza3hxL2E5TXAv?=
 =?utf-8?B?YlZZM3JSRjRMWmlFb2xYVml4RUpJSFYwN0NFc0N3WUZrSG56QXJORUs5QmxH?=
 =?utf-8?B?NUxVcTZ4Vm9mK2lVS1h0RC9xb3JQWkZYUWovdk0vUVJYZ2VubEJRNlJtblNB?=
 =?utf-8?B?VnNnY0RnU3NGNFlCbi9MbUVHRTdvZk84NmxzeTlFMmIrTFhRVjRrWmFxaTB1?=
 =?utf-8?B?V3hIWXlTVjkzeWVnTFpBZm9QUVd2b2Q2RG9IUWcza0ROSGp6NVFWcTN2aWk4?=
 =?utf-8?B?RHd0Z241UjdHaEp3OHVpcVQvQXlwcytxZTZTckhnOXMycUlRN1IyYnV3U08x?=
 =?utf-8?B?UkthQmtFWlgxSy9GeDJpOFRITzBwTVJ2L1VCUk1zak9tbmI1MC9Gbm1qTkVF?=
 =?utf-8?B?ZWo3bmZGNkVKYUU0N1BsTU5NV3M2VXdjbEo5aDVCTnJmcng1S0NwZnpJdWFo?=
 =?utf-8?B?cEtPcFNRZjBkTmFZeWpoQkw2eE9VZlYzUHkyQXFXUEFLUm1zOWxoUnV0bHla?=
 =?utf-8?B?RGNNNE9DaDYyTFRSWGJ6cUlmREJEZmgxdjIvcERiL2dVMnVkQzlYTXNpczNN?=
 =?utf-8?B?aDhHbmNDQU9yR3Q3QkJ1MTVWUnpFeE5qU3FGcEpsR1IrQTdDSE5DMEdxVzda?=
 =?utf-8?B?K3JkbWlnTklsRVY2ZEdZQmRvc3QyKzJYSk9RR3lQZGlWQ0x5SkdMSWVwNkpF?=
 =?utf-8?B?Y1pVeTBQL0hwMGIrV1BoQ3VtQUkrYUtzVWhXTXJKc1lzZ3lLdklVeGY2TldO?=
 =?utf-8?B?K1Z2dUY4SVJiYmRLbU5Jb3l4Z05FUmgvRGZucjRaUVVsRkZOcWgwMFFjQkpV?=
 =?utf-8?B?UXoremltOEN4cFAxUy9yNEtOOXpSKzJud1NTbGcxaGZHTUFybEg5T0hkczl2?=
 =?utf-8?B?K3hQNlY5SVNNRkVCTXNIbU9oY0cyQ2E1QXIrNVE5cFg0K2NjVWwwaGtvZnBw?=
 =?utf-8?B?dDhZQk1UcTBpUzZEQlkvR3lZOFJIYmwxMUJnNWJFVlZoa0ZUM1FKN2kzb3RC?=
 =?utf-8?B?cTAzZHJRbks1N3BXTXYrSWF1bnpiMDMvclF2NUdwNlNQbzRyY0RHbzBwaEVs?=
 =?utf-8?Q?r0yo=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 10:19:49.7182
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 47eef671-c8ba-4e4c-169d-08de268c01a3
X-MS-Exchange-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:
	DS1PEPF00017091.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4322

On Mon Nov 17, 2025 at 5:55 PM CET, Jan Beulich wrote:
> On 13.11.2025 09:50, Andrew Cooper wrote:
>> On 12/11/2025 4:22 pm, Alejandro Vallejo wrote:
>>>  xen/arch/x86/Kconfig                    | 12 ++++
>>>  xen/arch/x86/cpu/microcode/Makefile     |  9 ++-
>>>  xen/arch/x86/cpu/microcode/amd-base.c   | 55 +++++++++++++++++++
>>>  xen/arch/x86/cpu/microcode/amd.c        | 55 ++-----------------
>>>  xen/arch/x86/cpu/microcode/amd.h        | 15 +++++
>>>  xen/arch/x86/cpu/microcode/base.c       | 73 +++++++++++++++++++++++++
>>>  xen/arch/x86/cpu/microcode/core.c       | 58 +-------------------
>>>  xen/arch/x86/cpu/microcode/intel-base.c | 50 +++++++++++++++++
>>>  xen/arch/x86/cpu/microcode/intel.c      | 56 +++----------------
>>>  xen/arch/x86/cpu/microcode/intel.h      | 16 ++++++
>>>  xen/arch/x86/cpu/microcode/private.h    | 14 +++++
>>>  xen/arch/x86/efi/efi-boot.h             |  2 +-
>>>  xen/arch/x86/platform_hypercall.c       |  2 +
>>>  13 files changed, 259 insertions(+), 158 deletions(-)
>>>  create mode 100644 xen/arch/x86/cpu/microcode/amd-base.c
>>>  create mode 100644 xen/arch/x86/cpu/microcode/amd.h
>>>  create mode 100644 xen/arch/x86/cpu/microcode/base.c
>>>  create mode 100644 xen/arch/x86/cpu/microcode/intel-base.c
>>>  create mode 100644 xen/arch/x86/cpu/microcode/intel.h
>>=20
>> This is awfully invasive for something that ultimately drops only a
>> handful of lines of code.
>>=20
>> First, it should be CONFIG_MICROCODE_LOADING.=C2=A0 We're not getting ri=
d of
>> all microcode capabilities.=C2=A0 Also, of all the places where UCODE ne=
eds
>> expanding properly, it's Kconfig.
>>=20
>> Next, annotate the functions that you conditionally don't reference in
>> {amd,intel}_ucode_ops with __maybe_unused, and dead code elimination
>> should do the rest.

I've done a few tests to see how something along those lines would pan out =
for
our needs. Our coverage tool correctly ignores ellided functions, so I'll b=
e
sending a v2 shortly.

>
> Are you, btw, sure this would be Misra-compliant? Right now we solely
> deviate __maybe_unused when used on labels which may really be unused,
> afaics.
>
> Jan

Rather than appending an unconditional __maybe_unused (that's, imo, a bad i=
dea),
I'll be creating a local __ucode_loading attribute in private.h that maps t=
o
__maybe_unused when CONFIG_MICROCODE_LOADING is not set and to nothing when=
 it
is set.

However, I'm tentatively keeping the movement from core.c to base.c, as the=
re's
just way too many functions with external linkage to ifdef. It'd be an utte=
rly
confusing file otherwise.

Plus, I'll be conditionally getting rid of earlycpio.c too, which is someth=
ing I
neglected to do in v1 even if it's only used for microcode loading.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 10:44:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 10:44:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164593.1491515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLJCC-00034i-Kr; Tue, 18 Nov 2025 10:44:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164593.1491515; Tue, 18 Nov 2025 10:44:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLJCC-00034b-ID; Tue, 18 Nov 2025 10:44:24 +0000
Received: by outflank-mailman (input) for mailman id 1164593;
 Tue, 18 Nov 2025 10:44:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OGil=52=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vLJCB-00034V-Ps
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 10:44:23 +0000
Received: from mail-yx1-xb129.google.com (mail-yx1-xb129.google.com
 [2607:f8b0:4864:20::b129])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 88924a8e-c46b-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 11:44:18 +0100 (CET)
Received: by mail-yx1-xb129.google.com with SMTP id
 956f58d0204a3-640e065991dso4810029d50.3
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 02:44: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: 88924a8e-c46b-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763462657; x=1764067457; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=mz8ybMx7hDWYwBCrXoytwSB/9UsW/C9AlXT+Uj0KnbQ=;
        b=jdM6fINm8MpFfExU4Y+nIQ4USgXbEUferxCohnRzOKlv8Fm2pjsvhvNhVZcuQU3iQa
         3bJiz3JJ39F0Jg5G22MAVbP1us83X3bUM7o3Xhjow0xNJiVF+tPeAuR8lZRvV/fhCv+7
         5WcoE8x2y5aLRUQpq7SZ3ttcaUMn+QQjQdrU4OpCW6tMhICmRiYNFXC9+Go1gu56iDT0
         opuaLzZdxpZfahGp/AlCsbO2PAgR5LQpn1Y3uuK44rKcf3CCi6vIxYzWUiVuO+sBH/dq
         3NBH27z6ii+0rAn2Qo+i8LLEbIShhSBqx15NzIhGBYRVgiPfFWrZ3b7SFxmCpt9K0Pvw
         wuuw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763462657; x=1764067457;
        h=cc: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=mz8ybMx7hDWYwBCrXoytwSB/9UsW/C9AlXT+Uj0KnbQ=;
        b=K3ehXeth1uCKulK9Vtl11STtoK9vXNasHJD52zus7AZBPB4j4MmiFrhpAKjlV4O+1O
         wu1U2ot9vWfFtnyvLdkN4LQGUa2eEHM9ZNINq/Fuqn6NNqMy8Ph/7WDJwmPvzmNWx8AJ
         0usbri7pQylse5oXGfmqFXqwhnMVh7VJjM4MVvy8saQmj/uhkCu6Z8oJNJdNt5DFqUCp
         02WR2uwOhAS5I1AwMEE4kDvrM7BtZMldm8zteNbwd758VapCitlOY1kVE5uAAyuwa+1G
         j+RPXNYR34jfvDjU4+SvIPyvI1SbnynNT67AQXv/z9rDO5F0BEF/SvRIAB0IuVXYjfeK
         +pYQ==
X-Gm-Message-State: AOJu0YyAAYRagNxWNXy1Zd1mTVte7Xk1zngcaeyK9o9m492K8EGdczLj
	kdOiqBvQn9SE+zDvqTejjglBYXicPRjxLmFxDvKp8VjJ5xd0+vCwuNlcYXsb3IXUY7/WUlZF/RS
	cT+uLwWVdXCvaXAInVxEfXsENzpI9MJDN/ksz
X-Gm-Gg: ASbGnctXZYxSbUAqXAvYFufgD3ED2+byxRgZqq0aVqKBvRgXplOXhIDsbEbxYsRoTmG
	kThHjsH/GNZ3Y7Jn1GTd7ozkh37hs55M1RF7+1v7mae9+74ARuNVbZhU/97QHIOozgjsJuT2TpW
	RzsfYFaWCMA+sYAD7hYpmFcUPR8UjVcbvC1BgzZJUFL7orSh96hKYr1zFgh6qK+VREHZ0snaC2c
	babXUWcaVQfWn6yIAEBg+T16gwclk9yuBmOeolK0SC1wYYqWr4qI+GUvWQZlAiqzANDPbM=
X-Google-Smtp-Source: AGHT+IGQOnybtDWPwHbD6wAQpklliqZ9jCdSSduqW83IcY78AzA/+5CGKQ0XueyvXFxrWhmxaHTz2sB+TAkTGNLmtXY=
X-Received: by 2002:a05:690e:250e:20b0:640:d303:3522 with SMTP id
 956f58d0204a3-641e755578cmr11731565d50.7.1763462657242; Tue, 18 Nov 2025
 02:44:17 -0800 (PST)
MIME-Version: 1.0
From: Frediano Ziglio <freddy77@gmail.com>
Date: Tue, 18 Nov 2025 10:44:06 +0000
X-Gm-Features: AWmQ_bnIll_Vij3Ua-vaVSyUjAUYbxGd4Y_iThT8iwNEXl4hlAPP3ddWilUMHKM
Message-ID: <CAHt6W4ejPT-A7bGfrZGW-8zEBxmQ__LVa91GRcXhYZO_3C1meg@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"

> > 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?

Regards,
   Frediano


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 10:54:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 10:54:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164605.1491525 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLJM9-0004sr-IM; Tue, 18 Nov 2025 10:54:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164605.1491525; Tue, 18 Nov 2025 10: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 1vLJM9-0004sh-Ep; Tue, 18 Nov 2025 10:54:41 +0000
Received: by outflank-mailman (input) for mailman id 1164605;
 Tue, 18 Nov 2025 10: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=USx6=52=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vLJM8-0004sX-Lb
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 10:54:40 +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 f72c6e37-c46c-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 11:54:34 +0100 (CET)
Received: from SA9P223CA0009.NAMP223.PROD.OUTLOOK.COM (2603:10b6:806:26::14)
 by LV8PR12MB9083.namprd12.prod.outlook.com (2603:10b6:408:18c::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.23; Tue, 18 Nov
 2025 10:54:30 +0000
Received: from SN1PEPF0002636A.namprd02.prod.outlook.com
 (2603:10b6:806:26:cafe::34) by SA9P223CA0009.outlook.office365.com
 (2603:10b6:806:26::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.10 via Frontend Transport; Tue,
 18 Nov 2025 10:54:29 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF0002636A.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.9343.9 via Frontend Transport; Tue, 18 Nov 2025 10:54: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; Tue, 18 Nov
 2025 02:54:27 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f72c6e37-c46c-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EpR36MjClcKSjTNFJqNR6hHEgBxgOQJVWBIPvjiLYJlCYt5iLkYNDW1kqJry97FvY2oLezMR9TK5EEy+8DDoh1kv0CtU4QkJXgeGCksNbdvUCOoHTS7cZZf2DOkDyLIWFCjwgzL2J8ti9OrjxPcfl8IReTTJiyMvVpgX2j/Rtl4k09vayItzgRyEvxZ8djZMA/adiC1biZJheUrZ8BL9OAhF+Pt8AGG6ea6M0RCfjIY/sRNOhu5sAuG7yBxc9Ft4DGQRKtGL7qf/X8ddCrxhjOe0gWhDbcT6DdMIBmHNoZv4LQ3mH+7yi8B5+/OqKXf1ZcPvBVlyHqGnmIl6SsXySg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=skz63dM4gCeY8kUjUVXRGg2VLYujiCJ8xVkh/zs2nn4=;
 b=nAsBntYHW4rPb9oW+0GtGNkYKtgHL3t6GKAEflF3NgGhXLK27eeREDOthtqeggp4+DDox3THd41QbNvoM8Caju1G28KS6KzSL15sO56VAdOeYOId6rHwpUkesaplY1lI/X2J/663RjK516I3shf4xb2EDF7YTvkABoIs5E5q+472b7U/vDsZigxFLCHTVyoxYQZbWhKBQBk77+mHRtGCCmfXXi9xUWQQ23oFlZRamVHwPTIgP3oVsPLbw9+/RaKI4V2yj6n1LQ7Lqr9kYS0riANWcfLximuHZYfDHOmQzqsIcNWR2MGi+tzPnQdikCna92JWiVL+q+igPtzRmcWLcQ==
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=skz63dM4gCeY8kUjUVXRGg2VLYujiCJ8xVkh/zs2nn4=;
 b=HpmaVhtiP2LR1m9nAePxlfLdAiK454N1V8SjiH6iYqWxT/KR8k1osoVWifNrUXlOUdXWW27E8jTdsa42PI62UFQ7+m0EgUjhhjAJIdxnw65JCE4v5DtGT4wCQpcFykt/q5wQu0xHALtU5HksISDGIki2X1a7pIDfbd6XIycbryY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 18 Nov 2025 11:54:25 +0100
Message-ID: <DEBRK0H5DR1V.20T45Z6SMT1RR@amd.com>
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>, 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>, "Julian
 Vetter" <julian.vetter@vates.tech>, <xen-devel@lists.xenproject.org>,
	Xen-devel <xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH v3] ioreq: Make sure ioreq is always in-bounds
X-Mailer: aerc 0.20.1
References: <dddbae09e8e6b94a20f5ce24f3560dd15e5c6c01.1763382746.git.teddy.astie@vates.tech> <97ffeca9-348e-4997-a223-359fefa83107@suse.com> <8e1403ce-c333-4236-b38a-82525c7b542f@vates.tech> <e0f69901-b8d4-4af0-b085-d936fdfcb0fd@suse.com>
In-Reply-To: <e0f69901-b8d4-4af0-b085-d936fdfcb0fd@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: SN1PEPF0002636A:EE_|LV8PR12MB9083:EE_
X-MS-Office365-Filtering-Correlation-Id: 47707ba0-c6a4-40b2-99ee-08de2690d971
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|7416014|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Z09yZEdYUC9wVXIrelZNbURIcG1KaE1MYVBBbU9pa3R2d3dQS3M0dnBBVVZE?=
 =?utf-8?B?ZDUzMUVTcXBBR0ZlTjk0bTN1R0lmamIzS0hwRzVzVnRQL2FpdXlKL2NxQ2s4?=
 =?utf-8?B?QjFVd3VISmU2MGV0M0VwNXRTSG5Ca3lWVnJBdDk0cGVPOEhPS0VrSW9aVnhV?=
 =?utf-8?B?SmxaSnAxMlNyOU1IWENSM3RtS0pnUlU2T1Y0TTI1L1NCTGhRY0hEQ0o4UGx6?=
 =?utf-8?B?YlBQbkF5QVhmUDYwMk9rK3ZScFREZDhQOE9QdDFKeWVMMmRWY3Y5TmkrdWRi?=
 =?utf-8?B?Z1pYVUZ6YVJFcUhWejFqckdwQXZkREg1YVZwbkNCZUhJREZEajFZSjFqNGRV?=
 =?utf-8?B?ZFRGTS9oS0FaNHppSjhwRnlYZVl5bWRjbTVzUkVuT0dtdFdHaHM1cndaSmxJ?=
 =?utf-8?B?bE16SXF6VzM3U3NCRGVTVE1LK2RaUnFWK2R6ekxheDIrdTJXd2lDNGdyaS9s?=
 =?utf-8?B?cWJpVUFXc0htaHB0cVFXdU9hTU9IeUYwUGdFdkk4VS9FLzBlWWlhSHI2STNq?=
 =?utf-8?B?aXNFelNlekRPaHJRd2NXMnoyUGkyb2NieElMSks0TnN5bkdoY0RqcnVMWURt?=
 =?utf-8?B?Z3Q1YTZKMytmK1ZETXhXSlJleVhsNFU5UzdCRXBxeUhqUTFlSXZGaWtBajMr?=
 =?utf-8?B?b2pYKzJQcm5ETDJlQkwzeStwWUt6SisydmNWdGNXWC9EVDBwTVpkem9TaE5R?=
 =?utf-8?B?T0JpdUs1OGdSdnl0RzlGWE4yajN1ajJ5QUFveWZ5djkvOUFlajkrYytSUjha?=
 =?utf-8?B?bWVMT0JyTTlsQm5sWVNMZFduQWhRWERXV003SWJKR1ZCWGkwZ3k5OEFpMVQv?=
 =?utf-8?B?ZDViczZKekMvQTl4eTI4Z1p6WmF4VnMrVm9abEp4aEVQS0VETVk3VHFzeXli?=
 =?utf-8?B?bnVSa1lIa3dZT3dLdHF4WFY4NWdRblpJcCtWbEYwMlRTcUZNazUzdXU1VEdy?=
 =?utf-8?B?cENMZTgxUENtL3l3ZWx6cUtBUndzOWhRZ0wvNFFKMXJLVTkyMk1KekdUMk12?=
 =?utf-8?B?NXZDaVl1Y1JCOUFWVXBPWDBCbXUrdXdxa25Benpkc09Pc3lCa0RLczdBTnM5?=
 =?utf-8?B?bVhOblZ1dyt4RFY0VWJ5MUswMFl2Q2Z1MXNIaEIzS0w5cE9HUndSbnl5c3l0?=
 =?utf-8?B?Y0V0YkxCMDVaaWxqSVVlUXdvRlNhT3NOL3BNeWxQbXVweGZidkxFQ3UvZ1BT?=
 =?utf-8?B?VW9IWHlCVC81V0RFbXZlZHVpVjlwMUs4RzVOOWJjREhHZFhtQnVqd1Z4YXVy?=
 =?utf-8?B?eDRTWkxYVm5PYWdYTU55d0VxSEZsNEtJZ0pYcEQvUGVkb0V1bmdzYVJ3cml0?=
 =?utf-8?B?RVRuSEpkM3ZhQjhzbW5qTGtnckZ6OFh0dXAzTW8rRFc3WVEzSWpoWlIxbjBO?=
 =?utf-8?B?Y3ZiU0ZwNzRSZjdaMVkzNjM0MzU0dXZqWFRVWjZFYUg5NkFBcVFaVldQbkd5?=
 =?utf-8?B?SlM5WENPdDF3eGJzS0kwUi9TOXdlSXVZNFZ0eEdhZ1c0cUtISXVpbzd5Zzkr?=
 =?utf-8?B?NTlpck04QkpoTlBaK2JLMmw0YnRxazJUQVZWODNTaXNzenhkMGFXQi9ueFZX?=
 =?utf-8?B?UGpPOWFUdGFWeWhqTFZwMzQ5QlA0a0tKRXZIWmdURmxFRjM5Q1NEOUN5SUNz?=
 =?utf-8?B?SCtGYzBBbWc4Rk8yek9ZQkM4aEJDbjhET2U5SWNldnJiUmZseU9ObHcxZ2cz?=
 =?utf-8?B?RHdubnNRUEFoYmJ6TnNmR2VtR3dWYVFUZmo1bU5BNDYrcHJmSXFsaE5NVnBM?=
 =?utf-8?B?Wm5wcE12bnNZWE1wMHgxajdGTDJHQUExTTJPTW1oUi9EM3dGdkFnVk9XWEVZ?=
 =?utf-8?B?WkFuTEhaVjFrSW51MzVDQ05ZTWkxSUxzWHdwYm8xRVhJYjFWSkVNY09Vb1JE?=
 =?utf-8?B?SVFtSVVkRGFiU2gyczB0YzRiNXhqM0ptVDdqejRSYmRUb1Y1Q1o3QzJhdlZy?=
 =?utf-8?B?QzJBNEl2Vkx6RTJWK1BYb2p0cFJ6eVozS1E3SkZmYUdldTlYUzArM3gvREpL?=
 =?utf-8?B?Uk5pSkFLUG4rYTBlUEFWSEkvZmRRQ0xabm1kVkppZXZpR1JJL21WZW5yaytm?=
 =?utf-8?B?d0paM3ovOFNuQjZORS96ZlFuK0FjVGhyZjVHVzRUejBSSWx6b3JFdGt1dnVK?=
 =?utf-8?Q?boMw=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)(7416014)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 10:54:29.7807
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 47707ba0-c6a4-40b2-99ee-08de2690d971
X-MS-Exchange-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:
	SN1PEPF0002636A.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9083

On Mon Nov 17, 2025 at 3:09 PM CET, Jan Beulich wrote:
> On 17.11.2025 14:43, Teddy Astie wrote:
>> Le 17/11/2025 =C3=A0 13:46, Jan Beulich a =C3=A9crit=C2=A0:
>>> On 17.11.2025 13:35, Teddy Astie wrote:
>>>> A 4K page appears to be able to hold 128 ioreq entries, which luckly
>>>> matches the current vCPU limit. However, if we decide to increase the
>>>> domain vCPU limit, that doesn't hold anymore and this function would n=
ow
>>>> silently create a out of bounds pointer leading to confusing problems.
>>>>
>>>> All architectures with ioreq support don't support 128 vCPU limit for
>>>> HVM guests, and  have pages that are at least 4 KB large, so this case
>>>> doesn't occurs in with the current limits.
>>>>
>>>> For the time being, make sure we can't make a Xen build that can
>>>> accidentally make a out of bounds pointers here.
>>>>
>>>> No functional change.
>>>>
>>>> Reported-by: Julian Vetter <julian.vetter@vates.tech>
>>>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>>>
>>> I was meaning to ack this, but ...
>>>
>>>> --- a/xen/common/ioreq.c
>>>> +++ b/xen/common/ioreq.c
>>>> @@ -99,6 +99,7 @@ static ioreq_t *get_ioreq(struct ioreq_server *s, st=
ruct vcpu *v)
>>>>  =20
>>>>       ASSERT((v =3D=3D current) || !vcpu_runnable(v));
>>>>       ASSERT(p !=3D NULL);
>>>> +    BUILD_BUG_ON(HVM_MAX_VCPUS > (PAGE_SIZE / sizeof(struct ioreq)));
>>>
>>> ... does this even build on e.g. Arm? IOREQ_SERVER is a setting which c=
an be
>>> enabled (with EXPERT=3Dy) also for non-x86. Yet HVM_MAX_VCPUS looks to =
be an
>>> x86-only thing. (I then also wonder about some of what the description =
says).
>>>
>>> Just to mention (no further change requested at this point, in this reg=
ard):
>>> HVM_MAX_VCPUS being part of the public interface, we'll need to see whe=
ther we
>>> can sensibly retain that identifier to carry changed meaning once we up=
 the
>>> limit. The check here may therefore not trigger at that point; the hope=
 then
>>> is that while making respective changes, people would at least stumble =
across
>>> it by e.g. seeing it in grep output.
>>>
>>=20
>> Apparently it doesn't build (debian-bookworm-gcc-arm32-randconfig=20
>> catched it).
>> ARM does provide MAX_VIRT_CPUS and GUEST_MAX_VCPUS which is 128 or=20
>> lower, but that doesn't map (or not properly) with what we have in x86=
=20
>> (MAX_VIRT_CPUS=3D8192 is PV-specific, and GUEST_MAX_VCPUS doesn't exist)=
.
>>=20
>> I am not sure what to do, looks like many things are redundant here.
>
> Maybe non-x86 could surface HVM_MAX_VCPUS as an alias of whatever they al=
ready
> got, much like CONFIG_HVM exists also for Arm, and will likely need intro=
ducing
> for PPC and RISC-V (despite not being overly meaningful for non-x86)?
>
> Jan

I'd say this is the better choice, pending some non-x86 people acking the p=
lan.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 11:10:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 11:10:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164618.1491535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLJb5-0007lb-PG; Tue, 18 Nov 2025 11:10:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164618.1491535; Tue, 18 Nov 2025 11:10:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLJb5-0007lU-MK; Tue, 18 Nov 2025 11:10:07 +0000
Received: by outflank-mailman (input) for mailman id 1164618;
 Tue, 18 Nov 2025 11:10:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=g+ix=52=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vLJb4-0007fg-Et
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 11:10:06 +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 21c893a7-c46f-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 12:10:04 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 DM4PR12MB7552.namprd12.prod.outlook.com (2603:10b6:8:10c::13) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.22; Tue, 18 Nov 2025 11:10:00 +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.9343.009; Tue, 18 Nov 2025
 11:09: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: 21c893a7-c46f-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IlIftc1HajgTQ80Is/S9esTMEN7cHsimhH5ZQF+qC8SRBy8Ho45LUwvuTqsl2VKjzOFJ0aZlRyw+qzLHvVKBLJC1xrS67Trj+pAUHMigLP1ELPjvzLd+n8efcz1uYDfKVfY12Fz1qsBzHdLzLNjvXobuERbEMo7xtVr73ce+7C5mr4FhUeZAk0IBUmJhSfJ9jLPJjAKxMKS+dh+J/0HQejvspR4jvMsgY5LIBOSMhExnWeQOEkR5ZMfiPgLlkvk0vHGiSCNurqHIxH0WO/B2BbYKKFYkUY/Y8emGttfyd1v639Lyd/h1d89mZ2tNbT+BRLViVY1+3Q/V6zdpU0Piwg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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/OTzoMSwHOPWwMKqSo/6wKsXqvkDRnA0J7b0zg9BIc=;
 b=F0ueVUr0wPiQe96du7jJ50oH/w08Ct8SAbHkDPke/+l9zsn6jNfcsEnRhYf7LwVFavCqsmra4hpJH4rl41bklW+gppqttTVRGH9mAS/qcgTE/SZX2Yc1qYHX1hZPQvkY/2XHanw0LrWCH3f7X7/orb3xX/n5NDDlyTiDs8jUFKmijB3s1DqM4qWDo/swxCrbHkHJC4NHEUhAq62x3ZY8qzeW1Do9HzzAjiaIINfjcLVegG4lM/WxxXd69w/a3dFJGHJeXRh/9qMAyRA8TyCYpnatqW0vNRO0BCCGBYgaI3aeygg0ffliO5XkSVlppC1PEfXPuHn2fJJJCYFsu/3S8A==
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=v/OTzoMSwHOPWwMKqSo/6wKsXqvkDRnA0J7b0zg9BIc=;
 b=UgXR+q0YcqpWLW7bj6HFaH4aKbMzp2ydV1EKpQoR5JQXoBoXZf+171Ey212n6gXBz+XARKv/vMBd99iX+uzAtd20pTx/yNdkAinmVr7n/gOnirRGRAIFT9NDG5eJYHStSRm6a5vn70sh2BGmALCLZy0ImD3MSaStI6e9n4oPCOQ=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Tamas K Lengyel
	<tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>, Petre
 Pircalabu <ppircalabu@bitdefender.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v1 5/7] xen/x86: move declaration from mem_access.h to
 altp2m.h
Thread-Topic: [PATCH v1 5/7] xen/x86: move declaration from mem_access.h to
 altp2m.h
Thread-Index: AQHcVEwAn1Hu22XaJ02mYEVUbE68oLTwWQCAgAf1+hA=
Date: Tue, 18 Nov 2025 11:09:59 +0000
Message-ID:
 <DM4PR12MB845171D6D974E63DDF6D4D6DE1D6A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251113031630.1465599-1-Penny.Zheng@amd.com>
 <20251113031630.1465599-6-Penny.Zheng@amd.com>
 <136416d6-ea2b-444d-b331-8aef1881ed91@suse.com>
In-Reply-To: <136416d6-ea2b-444d-b331-8aef1881ed91@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-11-18T11:09:51.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|DM4PR12MB7552:EE_
x-ms-office365-filtering-correlation-id: 5aa3cb44-93c7-4872-b254-08de2693039e
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:
 =?utf-8?B?MC9HeWswRExVaEhtVThsNnh3U2d2K3BjSFRWeDM1b1N5MVVvU05uaVR5QUFD?=
 =?utf-8?B?bWdTK2Z3RXo4S25haHRsY2hmL1hsUlBxU09BZkp5SnQ3MmwxcEtidERxL1lp?=
 =?utf-8?B?RjFYdHpLZUVZVUlVdDh1K1Y4YStxeER2VWZYb2VUazFWcVM4NVBmSVkyNklt?=
 =?utf-8?B?MTRyYnRydXF2WXBrNWRSaVZHd2JXQVIvbloyY0ZraTJMZXBQK29JUVNLb2F5?=
 =?utf-8?B?dWZPSUFwdTl1SzBHaFROV3EyVjRvZ1pBVHNWandCc0N1aFBpMDhFcmE5WTJU?=
 =?utf-8?B?bWVqVzNoQU5OdnVQRE1WRTIvZUhNM0tmT0x0N3BTWVRkOXdsVjJUS2RwTWFF?=
 =?utf-8?B?VmVRMXZQRjFBZElITFhmWW42aHdZckEvQjFBVXRhRWFrdlRJdElkWVJoZkpR?=
 =?utf-8?B?dmRSYTN4aXJwTlRVaWVvZURvZ21pTldSVGVFZ2VzTmZVUnVJblVUR1V6QzN6?=
 =?utf-8?B?aTZMZm8rdVVPMzl2QytWMkhPNXc3NEhUeU1UaDFpY0hoTFc3QTJjSCtWZW9I?=
 =?utf-8?B?bUJNanlQcFhldk9zOGQ2SVFHRVlXWFgzUktwS2tUbXRlcE02K2o3eS93UU5n?=
 =?utf-8?B?dUsveUdVRFBlT0VmeklNOTFWUjd5K29aZjJ2bnBNdFp6dHZRa2llMWx1Qytt?=
 =?utf-8?B?SGlZNlowTHk0bWhQWHZXc2lSbUdmWHQ2TFd0ZWdEdWEzeFJUVGtzS2h0R1hk?=
 =?utf-8?B?bDJ1ZEVWMllLTmVxQVBMbjlLUHRlckhQOFFyc2tQL3dZQWNnQ01XVS8wVFJ6?=
 =?utf-8?B?RGZad1U1MDF6ZEc1Z3Jnc2lnRzZNUXdlam1VMUZBOGp2NW01d2l0aWszNnpS?=
 =?utf-8?B?Zm5rUWlZcjI4b0dnaWJrQXZwT2VDREVaT1pIc0hCQVRNSVdtTHVrZUk3UXY3?=
 =?utf-8?B?RXlNWGJ6VlQreDlIQ1JFZmYrZG1RbkFJM0RMTDlQaDcxKzhDSTQwWHUzN3Bj?=
 =?utf-8?B?VWRlVnY5N0RHenFEOXpzNTRoeWFnOUxObTVtVU1HRW1xTm4rb1pSdFhod3Vr?=
 =?utf-8?B?dWY0VFErWnNLYWk0aEh1TUdweURVRVFkT2xwbUNDYkpBRURwQ3VuWTc2TGk0?=
 =?utf-8?B?TXYyTnB6cWlGL0J2YjVIMnZTUG9ZK1BJL3RleVlPTzNkY3gxTU10c1BrVk1J?=
 =?utf-8?B?KzhUdm5heHkyR2lORXNvR3NKbFc4TDdJQ2ErcWxlSjh0bFE1RDQ3Wkh3NnJH?=
 =?utf-8?B?Yy9uSVkzb3BFNFJ5UC9NSzY1OGhZRTdmZ0tqcTNpdm5OWmljaTMyU1RLWUpy?=
 =?utf-8?B?aXdvdWd6Z0RmUXcxRU0zK3NPKzAwMC82cnVwd08xaHZTVDFSUHJ3SitBVlRE?=
 =?utf-8?B?Sk5ZWWtJKy9kQ2RDZTFwQWVka3ZDeVgrVlhHS3dxV1ZXeVczUWQvUjBuc1JC?=
 =?utf-8?B?NUs5NklIYVAyVzdTRGJMaUZJYTRsUnRzKzVjQSszR2g0aW9taWdHM2RMVW1u?=
 =?utf-8?B?THoycHkwS1dweVVqcmhpTXJCMTN1YzVkRUtkZlhHYXVVRmQ0cjhGcnRnSVJX?=
 =?utf-8?B?VXpZUk9BWFQwbzlpanhCOXd1TVArTGk5eFRocmxkK1Z1ODJ4VGMyMVdqSW9R?=
 =?utf-8?B?aXlrN01zL3lBZnhXbE5IaVRneFRMWWVTTGluVTlaSlpqbDRUaWZoMEtZWlVM?=
 =?utf-8?B?ckJTTElwcmhqdm9OSDJ4LzE4N3BIMDFDRUVrT2RuZHVqNTBBMnB2Rk5ZdlJZ?=
 =?utf-8?B?SzhReXU0bDNUd2h0WkxQcDM5ZERHZXZPMCt0WmZsaEFWZlFKT2s0UXRCc1Ns?=
 =?utf-8?B?SVBBSXJ4Ni9KWVdtTDQ4NXptNEFtSmNYcHdaTHpaNHh1NVlZU2FrUmF0WWZk?=
 =?utf-8?B?UzZ0eDlVMXZKL0Q4MUhTRGdzWngxdlEyZE1jckY1bWwreis4cjBzYzdUTGp1?=
 =?utf-8?B?Ri9temduWnhMWHRGN0t3aDZtNWxBUjNLNXNtRFlHMnhFa3Z6czJOaG94Tjht?=
 =?utf-8?B?UytzMGRiV2JzMWQrclRGZXZNVGZLNXdLR0lCZVppTElvc0JuNlQxU2FpVCtm?=
 =?utf-8?B?eklDdTlkNFpFOW9OT2VxTXRFYVF3K3hPbkNKT3JsMDUrSm1zbXpPR3hqanB1?=
 =?utf-8?Q?H/yW78?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ZkpnMG9IM2l0Z2hTT2RBZGdrMmR2VkM0dGhVU1NIaTcvaFdUaHdCVmMxRElo?=
 =?utf-8?B?ZWVsU1JMcDVKdEppYlE4YXdIdjhKeFFBbUpDTVhnWHhrekN0SkJKOE1sc2xr?=
 =?utf-8?B?TVRVOEVya1pHK3R2WWVOd3ZtWVJLYlVzd1dnMVNRY3k5NHk5V29OcksySHJt?=
 =?utf-8?B?TEM0SFgvVEVKNHRraWlYTGpuV0ZxenN1YzB3U25uTmlhbXBCTHhUQ2Z4Z3ZL?=
 =?utf-8?B?K2tSSVc1ejZXbmlTMjlnenFaWk1aOWUzMGxjUmhrNmhxWm1WVXRFOEhic0FI?=
 =?utf-8?B?emk1L0p0bjAxWGN4dzd0Rzl0d2ttRVJ1a1JKTW1ob3lneXhHZGhhTU85U25T?=
 =?utf-8?B?SU13MGM3TEhCREcrQ0hEdFBUWGgvNXhVRGlUQURoRk4vNDZ3dlp5THhqQTNk?=
 =?utf-8?B?eXVmRS9YNEUwNGpZZG9Xcm90YnhBeVBDU1VURDV6Y0xtaG45b3MxMkJ3WjVM?=
 =?utf-8?B?K0RoRkNUdW9KK1Z6UXE5cU5qamFJZmZWb21YQnNQZi9oUkh3YVFzbXFRQmF2?=
 =?utf-8?B?MFZiYkN4emIrVWpKeGxGcktrK0V4TlRycnBCd0NxU1NiOXQzb0w2d2VwcWYw?=
 =?utf-8?B?WVlhMytYOGxGZEorRjZqY2hkV1dVWnh2NGxmQ0NxL2crV2pRQ2FLRHVlNWxK?=
 =?utf-8?B?a3FXRjlVZzlMNzhqRWRDelBxcDd6VHI3UFEzRzdYSmI5bnAybjlVWE0xZTlr?=
 =?utf-8?B?L3BsaytKbUo3bHNMNG1Nd294MzlNZTBURlQydWF1c0hjS2QxNmdKbnRLSGdM?=
 =?utf-8?B?aXlzdEY3Tk5BYnhES2RBV3A2ZDFpSm5zTEdzWkRsaFRNU3pUTXRaaUN5SjRS?=
 =?utf-8?B?V2xPUVdWc1RZeCtWaXNCNzQ1bllMY21oNXI0ckY4WFdydmRwMWRva3o5TmU1?=
 =?utf-8?B?dmNQNTI0VUM3VFYvU00ydm5tMDBUWm1nY2JnTElnd0t3SnlFM2FIQzlrZloz?=
 =?utf-8?B?bTdYd0w4bXp6TjdGdlEyQkM3ZWdVK2VjUkJVVE9FOHVqYkd2alg3RjJMbWEz?=
 =?utf-8?B?WEloWHNjWFNSNmNLR1pqaWpNNk15MldMeUhaaG1VSmQvTU4vVDgvVVJWZytx?=
 =?utf-8?B?d05yZkdzM1BqVnBxUkRKTC9Ba0ZiQ1c1QVRXbTVKcnFnY3BTSHRXeXlKY1o0?=
 =?utf-8?B?YnhLTCtaTjVIYnRvQUtWRkMxT2wxUWFZMzN2Y1dtbHFpSXoyTzc2cFBnaEFa?=
 =?utf-8?B?NXp2bWp2ZTA3Wm5MSUJhdGkvWFFQTEc3eDVuUXU1L3ZqZC9KcnpXeFJlL3A0?=
 =?utf-8?B?Um4rT1czMHNLb1hoSHJoQlZNb0VsR0N2Y085bERTajFMTlJBMm9EdjljYzdW?=
 =?utf-8?B?a25xeC9DNkZwUmVRZnlGMG1YRU9hcllmOU96Z09RdW5JMTJSOTk2WXhMODJl?=
 =?utf-8?B?Nkl6VnZpOWRJSnlYNVBoV2c5TVNVQVRWY0NUanVCOENSVjZWbm5kVVoxSVk3?=
 =?utf-8?B?V0Y0YmtWZmlkOHRZOVlpRDJuZDVVTzlSaSt3N3FZQTNFRjRnV0tCWTVndHd1?=
 =?utf-8?B?N2xvNjI2SzVQcEwvVlBzYytKTFlqcXFjQzRzRDJxQ0VTZzUzYmM3bnVrR2NV?=
 =?utf-8?B?bGJaOStFUlRmT0wvdDM4cjBCWFVJQit5cTJrVWJTOUl6R0FFQVNvQ1ZWNlhQ?=
 =?utf-8?B?WktRRkhJa2tYOFhEbGJ5bDhTWU9ic1d2bTJWbkdtYTUyaUFFNGtGNEtEaEI4?=
 =?utf-8?B?Q3c5cG93RkRrMDdsVEhyb0lUSkY5emNFbExVZFkrNWJ1bHQ0bWpzai8xUit4?=
 =?utf-8?B?bjRuWUZOaFVPME5zMHFPSkJvNmVkMFNMWlNUem81ZzFpVkh5enN3REIxSUU0?=
 =?utf-8?B?a3dLaTFFY0xrSHAyREhicWs5ZGk4Q1JRREtSM2dyWVRuRnZGd2grdUxvNGMx?=
 =?utf-8?B?d3lGeUFDb2RhTjh5NHkvSW9LQnlIOXo5bVIwUWdoQ240S0F5d21mYlNXZlN0?=
 =?utf-8?B?Nk05ZE5nZHB6dHRRWW9QSUVlSWpyTnllemxCVnFLS2lTVTJVN3A0NUxoblpU?=
 =?utf-8?B?SXFZeVJJZGJrS3pLajZIelhTWkJFUVNpSE1EZlpYTjdrVmhQREpocllwNVY5?=
 =?utf-8?B?b3h1Z0h2QVdwdFN3M0hQZ1dDV2Z6aTRjK0lFWTlUVkNpVllHZWp0U0JRRVp4?=
 =?utf-8?Q?YUI4=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5aa3cb44-93c7-4872-b254-08de2693039e
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2025 11:09:59.5034
 (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: aYw8uCsBovOdCxRctar0qUJGTuFA4XV0EHZigFJC1g4F4grbWBs8fETYvEiO75mv5UUE5SbqNpJSEVvY+ee3Lg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7552

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBOb3ZlbWJlciAxMywg
MjAyNSA1OjM1IFBNDQo+IFRvOiBQZW5ueSwgWmhlbmcgPHBlbm55LnpoZW5nQGFtZC5jb20+DQo+
IENjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPjsgUm9nZXIgUGF1
IE1vbm7DqQ0KPiA8cm9nZXIucGF1QGNpdHJpeC5jb20+OyBUYW1hcyBLIExlbmd5ZWwgPHRhbWFz
QHRrbGVuZ3llbC5jb20+OyBBbGV4YW5kcnUNCj4gSXNhaWxhIDxhaXNhaWxhQGJpdGRlZmVuZGVy
LmNvbT47IFBldHJlIFBpcmNhbGFidSA8cHBpcmNhbGFidUBiaXRkZWZlbmRlci5jb20+Ow0KPiB4
ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MSA1
LzddIHhlbi94ODY6IG1vdmUgZGVjbGFyYXRpb24gZnJvbSBtZW1fYWNjZXNzLmggdG8NCj4gYWx0
cDJtLmgNCj4NCj4gT24gMTMuMTEuMjAyNSAwNDoxNiwgUGVubnkgWmhlbmcgd3JvdGU6DQo+ID4g
TWVtb3J5IGFjY2VzcyBhbmQgQUxUUDJNIGFyZSB0d28gc2VwZXJhdGUgZmVhdHVyZXMsIGFuZCBl
YWNoIGNvdWxkIGJlDQo+ID4gY29udHJvbGxlZCB2aWEgVk1fRVZFTlQgb3IgQUxUUDJNLiBJbiBv
cmRlciB0byBhdm9pZCBpbXBsaWNpdA0KPiA+IGRlY2xhcmF0aW9uIHdoZW4gQUxUUDJNPXkgYW5k
IFZNX0VWRU5UPW4gb24gY29tcGlsaW5nIGh2bS5vL2FsdHAybS5vLA0KPiA+IHdlIG1vdmUgZGVj
bGFyYXRpb24gb2YgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgZnJvbSA8YXNtL21lbV9hY2Nlc3Mu
aD4gdG8NCj4gPGFzbS9hbHRwMm0uaD46DQo+ID4gLSBwMm1fc2V0X3N1cHByZXNzX3ZlDQo+ID4g
LSBwMm1fc2V0X3N1cHByZXNzX3ZlX211bHRpDQo+ID4gLSBwMm1fZ2V0X3N1cHByZXNzX3ZlDQo+
ID4gUG90ZW50aWFsIGVycm9yIG9uIGFsdHAybS5jIGFsc28gYnJlYWtzIE1pc3JhIFJ1bGUgOC40
Lg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogUGVubnkgWmhlbmcgPFBlbm55LlpoZW5nQGFtZC5j
b20+DQo+DQo+IFJldmlld2VkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+
DQoNClRoeA0KDQoNCj4gVGhpcyBsb29rcyB0byBiZSBpbmRlcGVuZGVudCBvZiBhbGwgZWFybGll
ciBjaGFuZ2VzLCBhbmQgaGVuY2UgY291bGQgZ28gaW4gYWhlYWQgb2YNCj4gYW55IG9mIHRoZW0/
DQoNClllcywgaXQgY291bGQuDQoNCj4NCj4gSmFuDQo=


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 11:22:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 11:22:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164633.1491544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLJn7-0001On-Rw; Tue, 18 Nov 2025 11:22:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164633.1491544; Tue, 18 Nov 2025 11:22:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLJn7-0001Og-P5; Tue, 18 Nov 2025 11:22:33 +0000
Received: by outflank-mailman (input) for mailman id 1164633;
 Tue, 18 Nov 2025 11:22:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YPWA=52=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vLJn5-0001OW-Tk
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 11:22: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 db416e6e-c470-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 12:22:25 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 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.9343.10; Tue, 18 Nov
 2025 11:22:22 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.009; Tue, 18 Nov 2025
 11:22:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: db416e6e-c470-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pvvouXBMTC4ZiATq9wZZYxkhnAMpsxJ1K31mF/rEEVqHIoYMHOiFbvNF0UFkHwTfPnbsOjcFf+ENA8zdrF8P4OoHN3ZAtbigaouNM5zgF/y3I49fqWswpFlORsoE9bLXytAkz6+MsqxTZ0Z4wAkGgQ/xS8ykmO/hgUykTW5nhzp45/FMAR9TknAsA710YGLQjGtGKcUnGsnFRgmAAMsfJyEywaqCVy3kRvZ8+5sFZRi0GLNT828MSWGpjCASTxzuvyJh3JNiTwEOwd9M4il/Qy9HR0EEjP7mFGRPLw5SVjq3HF382thp82E7HWrOyYqQ6XY96oYywE7kyuY6HvS14Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tgDFj/25KmJgR3KOsjti5byDhHZussCcQ7HUkUMULjo=;
 b=lbTHbISdSoO/v7WM20KhHp1/lGstGvhd8rxfpmVMoMu9+TRm0FrX8Ct56CZoMKenvpL7QbmETh1zaWrX3NXlUHJk0YchuMhMAXC97REB+oXoJcWArKLnkbBVOcWb+58c/sc8Vcrhf93ayQI76rJrHDFY/443NNURlLTcLdL65Q+QGPSpyQ8XE2lpm4wD4+hOioBneu+GbLXkPE9gInCI5OzJACQQTj+r65zOHzKNMoyGG7WXFBbsAGGH1yEvLHIFGFBKhCFm5eSlNpWSgGqWGvvUVfgGZLK4VD4S0Ky9El2kFN69uW6j4ij4mmi4MbuTR/z1Y/0rrbs2/ix8QBHErA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tgDFj/25KmJgR3KOsjti5byDhHZussCcQ7HUkUMULjo=;
 b=CQk22piD/ngK+NMOwWwXviskAhopwVarlhd1/qwLq9PuNS8n97pMwMEglBoIsmekm8rnYvMekoHQABhxULHwQFpCFDYoah7ogn9pF/Fbu9gLnEG0BA6qeu8BqMDnfsC+2a9As/obvhP7GKgmPQwn9nMN1yCcqA/dWW3qgLpXP8E=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d3056c90-8497-41f7-b571-fd598bef3238@citrix.com>
Date: Tue, 18 Nov 2025 11:22:19 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/4] Add Kconfig option to remove microcode loading
 support
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <20251112162219.226075-1-alejandro.garciavallejo@amd.com>
 <61df49ba-4aab-42e3-b945-700a8f20c739@citrix.com>
 <035a9514-9a7f-44ab-86a7-61deab37f7c7@suse.com>
 <DEBQTGUHGDTP.QF2PFIK6CKUZ@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <DEBQTGUHGDTP.QF2PFIK6CKUZ@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LNXP265CA0073.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:76::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_|MN2PR03MB5296:EE_
X-MS-Office365-Filtering-Correlation-Id: 6402e2c6-dc05-4dab-c593-08de2694be1d
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?OE5DNW44QXJuQ0F5NmljREZncmtKVXJMZWFBNFRJV0pSKzlFbVdFbGtDc0o3?=
 =?utf-8?B?V3pJN0hKT3pBcmtSV1dmbWZOZzVwNmlpN3VWNVBBSFFVWU5zYlg4M280U0Fh?=
 =?utf-8?B?T1ZCV2RoK3UzNi9TdHFSSEZZT1VqdUxwZ0R0MlBvTU1ET21KdVZmTXBqYkps?=
 =?utf-8?B?RitBOEhDMmh0UTY4NXdoY21KMU5QaE11R0V3SnNWeWRnNXN0bVVoc0kyVmky?=
 =?utf-8?B?ekJORGw1eHVQYlhLZ1R1N0E1b2JrU1VtVWs0cllyS2ExS3hyaHJhSXozY2l5?=
 =?utf-8?B?OUlGTDF0Yi9ZS0IvSzhYbzdKQzNpUlo1czJrUStMU3A5WXc4QkhzU29KR0VJ?=
 =?utf-8?B?bkFnWnZNLzQ2YkNiZGtLeEx1T1ZSZS85RVNrWTh0dk1rRDlpcENJa0IrTXdR?=
 =?utf-8?B?Y0NkK29USVI2elBFLy9qeVVzZHdTbWFuWHZRWURBUTFMdWhMcDJIS3ZDZmNG?=
 =?utf-8?B?dmlSQ1AwVUNkL2djQzVRR2FCQS9SL0JHN1UzMzlzZWdCV21qbkppU1VRc0pH?=
 =?utf-8?B?Z2krVytrUkJJelJzY1dxTEpCVjhBT2tHNmdvR3JnOHZxNTFIZzJSUVAyeDFh?=
 =?utf-8?B?ZXd0a3hmRlg2UkgySDM1MnNTS0ZzQld2T3ZML1o0aVlzeEt1eU9sOTVCSnlH?=
 =?utf-8?B?Z1lwRDkzQ3dKWUgvYXU2ei9UamZjcWVKMFcxTEV6VmY0WWt4ZCsvWXh3eTAr?=
 =?utf-8?B?bHVLWWFXUFZ5ZTVFaS8vM2sxMjBhSGoxb2EvY0NLRWV2ejJCTXl1VXJCVmR1?=
 =?utf-8?B?TWZVWHRkVFNPdkJzWVF5UWdmSXlSNGVHODRPNUlVc2FndnJQNU5QWVptZ3ky?=
 =?utf-8?B?c0lOZW1pcGU2dkNWSUFYdk5ZVkVCcXhGNG1vazJPMGdmNHBGNWpDR3ZKU3NF?=
 =?utf-8?B?MFN5N3hqWUZGZDVPY3ZjVWN1VWZiN2lhbGQrcFNZbEVKajVEeTBEamVsSmZY?=
 =?utf-8?B?Q09rRTl3TWpjdTJmTlNoWVNtb3M1SStOMXdCMGVZa2dFNTc1dnFldDRIeFRJ?=
 =?utf-8?B?TGM3RXhsaGpzVU83UWdLZFpLbFlXVFB0QWVkNCs4eWg5VFdZb25IcDIwZGJw?=
 =?utf-8?B?S1IwK2JjdUJ3N3dSMGttT2FvTUxnSnRvWndqNFN6RzgxdmhNbFdxNlpreVkr?=
 =?utf-8?B?V3prem53STdQVjhJSElvdnpkaE1tUEdEMFY3T3NVdHVSSC9sT2hBSStpSzNK?=
 =?utf-8?B?VG9YSzVlWDM3Vjd4MU5WSUo1ZHg0S0g5MlZhaHlFNDg5NER2YktkcDE1UCtD?=
 =?utf-8?B?T1BCN2FwK2ZOdGszYTk0eXNlV09JSVMvUi9jWFFPNlV0NmNqcE5PQmhXcXBY?=
 =?utf-8?B?MWZvaHdFYkNDenlhN2VBY3hOcW9UT09DNDFrZm1BUDJ0c1NHK0RKSW5YVm1X?=
 =?utf-8?B?ampYODdSQjE5WEpYbUxqR2oxa3hFNTZCUDM5WEx2ckJrWjkyZi9UdlJDRnVY?=
 =?utf-8?B?N0w0VXpkN29LVHFpUmxPTk96V2ZMZkt3R2hkSDQ4WWFEOVRtY1FSUTNzSjNO?=
 =?utf-8?B?dFA2cm0yM1VJZVlOb3ZSaHZsdVRkMnhxb2wyOGhDR0ROTk1IdHVtcWcyZjBv?=
 =?utf-8?B?UXNMZys2MU5PMm5nVXdmcFVwNFRxSjlRQXlTUm51czE5Ynp2YmhLTVM1Tkgr?=
 =?utf-8?B?TWxTNE5QSDNGTGF2eFZGaVRSU01iT3EvLzROck9rRjJzaUdtdmg0ZGlUQTR4?=
 =?utf-8?B?SzNrUS8zdXZyUnRuMzVrREZ0OUIxMlRCa3BjV1VZUk1WbDQxTjlPaHVMS1lm?=
 =?utf-8?B?TGF5ZTlubVVhN3pXMktqalNVSFk2UFg3Y1YrdzAxdktBcFR5Nm1rRUFSdEhw?=
 =?utf-8?B?MHlWSDFPVVhBRkc3eWZ6eHhBTzAydWd4OVR0OE8xeHByclk0SnNNR21xYUxy?=
 =?utf-8?B?NC9JeDNKelU3V3lFMmtkZE01dDFxalRqby9Vc3NoMC9qVFRpSWNEOUZHZ216?=
 =?utf-8?Q?k4xdPbCMHLjOz7xuVpZiu2yy6QB9Ki+g?=
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?Mk55V3V0b24yMGVEckJZWmR4WFpNVERsVnk5dnBQanBaSGFkVlJNRXgvbE5J?=
 =?utf-8?B?eGJHSEZ6RTlBMFlzZWk5L0NhbVlpQk5PcHlSWkJ5TTg5b3BWUUFOc0dPRFhz?=
 =?utf-8?B?UFdyL2tJdTkvM3VRTmdyRXY5VWpGaE5VaU10ZHZNTmMzU3hZQ1l2cTFTTHI5?=
 =?utf-8?B?Y1grcS9tdE1MN1duUDExMitDOVVtOUlrRXVHQ0FkaFkxK1VNOWNVYndGc0FM?=
 =?utf-8?B?eFE2VjZKdGpDQmRxaG1VYTBDQjlZS0IxQk4yUlBDMUZ2UEhMZFZHc1lma29q?=
 =?utf-8?B?MVpRWkl3dFVQUFNpdTA0b3pEOUFrOU01TjlKc2dsaVJtVmtnTmFJeEF3OFor?=
 =?utf-8?B?NjM2U3Y2ei9mb3VRMFRJSHg5ZWNnZ1o1THhwY2pLYmNkZWdPM1NqVkhUNjZV?=
 =?utf-8?B?MnJyaHUzOGVIenJhUHNlS1B3d1lrLytPSVc0S1pPVGF6T0VDZU1ESmNNaWlP?=
 =?utf-8?B?a3BydDJFMUdVTktkNGczRFBaYTR1dWMrb3Z1Z3dBNGllWWtYSWJLQmNZSTlX?=
 =?utf-8?B?NWR1ZDRLMSt5SkJ2WW5CdHl5ZEhVYVFtMXJ6Z0dEWERrd0NvQjA3a1ZGbDUx?=
 =?utf-8?B?RkozZVc1YWV3MVg3ZjJvWU85TkVIUGxLaHZmSys5K25ZRWZCKzByRDJSNUdO?=
 =?utf-8?B?MzE4QlRhUVBSWUllMFZZeE5oNzNWZGJDaElCK1g0K09jL0F4TXRHRS9HU0JU?=
 =?utf-8?B?S21rMXdtcGhUcFIzWFgybXdodzNVL1MrcWw5V3FVcGxja1JKUVg4L3ByUDRO?=
 =?utf-8?B?UDlBdXVNVW9URkRtK3R4bFhDL0hocnIvSU1heWptSzNMVHZxS0VxL2ZpaFhO?=
 =?utf-8?B?N1R6ZDdxK3QzTE11M1BoTGhka1c3ZnhUcmxmWkJHRDBQT05WMjJQYnRpa0JC?=
 =?utf-8?B?dW9RSmlqYjVmN2hlT3ZocUtvbG5rT2piZDh1d3NmR2xPa2cwbngxbitrTUtk?=
 =?utf-8?B?OFMybmkyeEFZNEZON2ZTSzI5WDFxZlk0ZnBSK1dkcnVxT1dqQVlHbFoxYkxr?=
 =?utf-8?B?NWkvQTJyREJ1R2NFK0NUcUNrS05heEIxQlRFdlYzTU9RNXFYV1ZiZlZZaW9R?=
 =?utf-8?B?Tk1JcjIzaTJZd2xDRlc4cng1WVd5TVhueFM0THdxQkxOWlZYa2I4RTh0WEIz?=
 =?utf-8?B?Tzg0WHZQOTdabXdWZlRsdW45YzZLamNvSTdRYzhFOG1HTnRhTWtVbllDc0o5?=
 =?utf-8?B?Qm9JZm43Vnl2dmUxdG03L0l0UTlLUkdGemViWE4vdnJlWi81WHpRelh5Wmkv?=
 =?utf-8?B?OWxGd1B5ZVlFYWQrMVpIcG85cnRBR1duZVhGSWJmZDEvSWw1aXdTTUxmaGhv?=
 =?utf-8?B?cjJsT1Q1azFpdmx1a05RdU5zRFozVmVPU2VaaDI4bUpBYXl2TnZnZU5DeW5a?=
 =?utf-8?B?YXpUZVVRVjVWNjFQdEpycHJtWDZxdlpocDVZU0Q2OTg0cXEwS1UxZWg3ZVJR?=
 =?utf-8?B?azNFTXgzNU53eUl2WXNqNHMydTBIVkVnRVdsNGc1OVVMV3NTbXBGYzVhVEI5?=
 =?utf-8?B?V3BSMEpLdHZwcGorMEdKOW1PVVNGZ2dmNkprbHpZcDQvTFh6NTN1NHh1RGhE?=
 =?utf-8?B?U0Nxb1BoeTZZZEI2UE93em5PU3VSVFU1aU9acmo0d1FWVXRlYnFrRFM0bSth?=
 =?utf-8?B?TjBrTHk2YWF4N2ZuL3pkNkV5SGIzS2JUaU9STWZsclNtWXFaZ2h2OXlFSjY5?=
 =?utf-8?B?b0poSFNIZEJGRldzejNWN0lvYmM3ZFBlUzhaM3BBRVUrVlY5R2ZtS1Q2OElT?=
 =?utf-8?B?djhxVmdtRzBhWFA0KzVWdVhIZmhMNjN1am55aHdkNkhMa3Y5amhXYVFLSmts?=
 =?utf-8?B?eXkzZmowbW8rZ2tqQXZMWHBDcUdxOEFQMDYvZzFVV0VxTHVZUFdxTFRUYUsx?=
 =?utf-8?B?RjE2OXVIeDZYZEU4ZTdlOERoZ3plNW1BaHhWM3RFaFcrclp3a21xdHA3Z2NZ?=
 =?utf-8?B?Q2FvakFQWmlqckpIN0RvU2d6QzZETkJGM08yUVRVZjJETnI5Tks4eEE2VnRn?=
 =?utf-8?B?OWtXQUtmenF4d0dzU3ZBSHIrdGZjaGdzdEtnRkt4YnZWb0x0SCt3YmVzemRq?=
 =?utf-8?B?US9Bek1sekNMQXVSeTVQQm40WmtsdVNHdHFKV0ZXSDB3VGNIdTc3VU1RNTRP?=
 =?utf-8?B?YTdDSjJTVDMrLzZoMG5IRyt5Q2ZZMTNzdzZzVUl2RFllU1lqeHpJYis1eEFl?=
 =?utf-8?B?SXc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6402e2c6-dc05-4dab-c593-08de2694be1d
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 11:22:22.0832
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SWKcnYXv8loRST0MNLALQtxkntjTN4HVx454XTHStCQpf/5RcU1BoXuI2hB9tu6KAv4/5+cLdA20EnhGVz7XCXiXcB0dfi1WnxP/T+SpLDk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5296

On 18/11/2025 10:19 am, Alejandro Vallejo wrote:
> On Mon Nov 17, 2025 at 5:55 PM CET, Jan Beulich wrote:
>> On 13.11.2025 09:50, Andrew Cooper wrote:
>>> On 12/11/2025 4:22 pm, Alejandro Vallejo wrote:
>>>>  xen/arch/x86/Kconfig                    | 12 ++++
>>>>  xen/arch/x86/cpu/microcode/Makefile     |  9 ++-
>>>>  xen/arch/x86/cpu/microcode/amd-base.c   | 55 +++++++++++++++++++
>>>>  xen/arch/x86/cpu/microcode/amd.c        | 55 ++-----------------
>>>>  xen/arch/x86/cpu/microcode/amd.h        | 15 +++++
>>>>  xen/arch/x86/cpu/microcode/base.c       | 73 +++++++++++++++++++++++++
>>>>  xen/arch/x86/cpu/microcode/core.c       | 58 +-------------------
>>>>  xen/arch/x86/cpu/microcode/intel-base.c | 50 +++++++++++++++++
>>>>  xen/arch/x86/cpu/microcode/intel.c      | 56 +++----------------
>>>>  xen/arch/x86/cpu/microcode/intel.h      | 16 ++++++
>>>>  xen/arch/x86/cpu/microcode/private.h    | 14 +++++
>>>>  xen/arch/x86/efi/efi-boot.h             |  2 +-
>>>>  xen/arch/x86/platform_hypercall.c       |  2 +
>>>>  13 files changed, 259 insertions(+), 158 deletions(-)
>>>>  create mode 100644 xen/arch/x86/cpu/microcode/amd-base.c
>>>>  create mode 100644 xen/arch/x86/cpu/microcode/amd.h
>>>>  create mode 100644 xen/arch/x86/cpu/microcode/base.c
>>>>  create mode 100644 xen/arch/x86/cpu/microcode/intel-base.c
>>>>  create mode 100644 xen/arch/x86/cpu/microcode/intel.h
>>> This is awfully invasive for something that ultimately drops only a
>>> handful of lines of code.
>>>
>>> First, it should be CONFIG_MICROCODE_LOADING.Â  We're not getting rid of
>>> all microcode capabilities.Â  Also, of all the places where UCODE needs
>>> expanding properly, it's Kconfig.
>>>
>>> Next, annotate the functions that you conditionally don't reference in
>>> {amd,intel}_ucode_ops with __maybe_unused, and dead code elimination
>>> should do the rest.
> I've done a few tests to see how something along those lines would pan out for
> our needs. Our coverage tool correctly ignores ellided functions, so I'll be
> sending a v2 shortly.
>
>> Are you, btw, sure this would be Misra-compliant? Right now we solely
>> deviate __maybe_unused when used on labels which may really be unused,
>> afaics.
>>
>> Jan
> Rather than appending an unconditional __maybe_unused (that's, imo, a bad idea),
> I'll be creating a local __ucode_loading attribute in private.h that maps to
> __maybe_unused when CONFIG_MICROCODE_LOADING is not set and to nothing when it
> is set.

__maybe_unused literally exists for this purpose.Â  See it's comment.

Wrapping in another condition just adds complexity for no gain.Â  This
case is unlike livepatch_or_$FOO because it's not choice between two
different things.

>
> However, I'm tentatively keeping the movement from core.c to base.c, as there's
> just way too many functions with external linkage to ifdef. It'd be an utterly
> confusing file otherwise.

There are 4 functions with external linkage, only one of which you can
fully elide.

(I think) you can do everything you need here with 4 IS_ENABLED()'s (two
in do_platform_op(), one in early_microcode_init() and
microcode_update_one()), one ifdef around ucode_update_hcall(), and one
__maybe_unused for ucode_update_hcall().

I'm going to save you some time, and insist that core.c is not split;
I'm not willing to take that kind of disruption into logic this
complicated.Â  The result is far nicer not split than split.

>
> Plus, I'll be conditionally getting rid of earlycpio.c too, which is something I
> neglected to do in v1 even if it's only used for microcode loading.

This is fine, but cpio should be lib-ified like sha2 so it's simply
dropped if not referenced.

In fact, the one ifdef mentioned above could be dropped if someone were
to get --gc-sections working, but I suppose that is a task for a
different day.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 12:01:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 12:01:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164648.1491554 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLKOp-00076M-Qg; Tue, 18 Nov 2025 12:01:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164648.1491554; Tue, 18 Nov 2025 12: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 1vLKOp-00076F-Nq; Tue, 18 Nov 2025 12:01:31 +0000
Received: by outflank-mailman (input) for mailman id 1164648;
 Tue, 18 Nov 2025 12:01: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=YPWA=52=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vLKOp-000769-BX
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 12:01:31 +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 4ffaff25-c476-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 13:01:29 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV5PR03MB8409.namprd03.prod.outlook.com (2603:10b6:408:35c::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Tue, 18 Nov
 2025 12:01:25 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.009; Tue, 18 Nov 2025
 12:01: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: 4ffaff25-c476-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Vw8ZjM7ChxqTszHhVStn1D2Kq44DSw04p73p1KMA4v+k8g4/5KiGuhxwafkbl/rBBKRcJ0CvLDF/Z+oJOvj3bKm3cj2SWnoS2A3UY+CoRyrqp3xs3pFP9wQBnDPldL0L0hTkCe2QmHnMbuFKZcCDs/8AC8BSyfoeU3KTK/2c39B0wEYJoNWWl6YmDSphbUY4msvnxxgh7EGTd8E6QiMqh5+gYb6bTcEc2xSuc2A4+Pfw1tHFI41y5F1atsYLuAZ1V292R1ti/8VdoKulZJcCOFIkZRWnx6MNKNxBZ3hgN5HxE8eejKytZtD/1IcH8dMMXPW4RuolL8iAkPa7IZAZfw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DfB4ZAAy+1lMtrxygrej1C/X/vQrG1zAUYbcl7qHRqA=;
 b=tI8u2REvSYjJ38aCy34VQaQHFotxKoYZUq/NYLkVaTcu9QM5Xl0Raw58L0Ppwz7t7k5XRN5ezsLCnjT4szdLCrL4+M4UxbvtTJzVnK6OMBQhqDzJ/ibsb8KKGXY1tLinTUJO88OMrq9/Zr9hrce8X9xHVtjmbQqIAA6r07fLE5SqWAPmf8teRxa1qj4V9UFGQd1YNZkN5AIzyfX6S9BL+qBKIeb7mvk3vNMSZj015iHcuq26GVX3Rvvh8RxF51MTyOkSfdYBqoowv0oa1QwnWdNOL5gKFcyPUylXMRHAj/1/2yhlPImWl9JHRgugnnRr5BQbncWt2Gi09io3y6fOzA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DfB4ZAAy+1lMtrxygrej1C/X/vQrG1zAUYbcl7qHRqA=;
 b=DWWrX3e8FgVKASuI2iMfuiJKbKffuCz6q+6KyvpegChHAKSmbBiS1wxTLF7BcIV7hveTybLNehUljAeaPfhMoMptfd6iZFGOxeYoR5QLxdhzZ01rQs0c3qdWNmAfU2wnV2FfgPE8SV7Qm7bScIQjJhvcIs+A5d6e4TNNgJYDqnU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <c381e863-0787-4f4f-82b3-f48484aef05a@citrix.com>
Date: Tue, 18 Nov 2025 12:01:21 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] x86/ucode: Fix error handling during parallel ucode
 load
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251117222120.473451-1-andrew.cooper3@citrix.com>
 <20251117222120.473451-2-andrew.cooper3@citrix.com>
 <52b13a38-f037-4235-8ea2-70b0d8a4b470@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <52b13a38-f037-4235-8ea2-70b0d8a4b470@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0319.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:390::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_|LV5PR03MB8409:EE_
X-MS-Office365-Filtering-Correlation-Id: 752286ab-342d-4c4f-04f2-08de269a32ad
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?ZjBhVkpITVduZCtWQm9HdVh0MVpKU00zVVF0aGYwNk95N2xqQ1JJRjNQVWZk?=
 =?utf-8?B?NVB0SUlnamt0Q0ZJYTNNMUxRencyRk94bnkyampxbnlkMFRudFowcFlMekd1?=
 =?utf-8?B?Tk0rVUhvVG9UMStxSEJHTDg5aEwzVHNCMm04SmlhcGk3Q3UxZ0lpQmNpaGF4?=
 =?utf-8?B?NTkySEc1dVM5cHIzeFRjT1FYUVFUM1djWEdFalp1U2p3MWJDTnZUT04zbXU0?=
 =?utf-8?B?TEwvLytadzIrR3R0djZ0TE1OSDA4V0lWRkQ5TDhWZm1BOHc4eFA2M3RpRXRB?=
 =?utf-8?B?blBkcWJhOXdTMkR1SWhGT1FvUG5oNXRjRysxeWtxbGkvVUJwY1RqWHdFcTNX?=
 =?utf-8?B?WjFtdEhHbEdsRGZxUmxvSTIvOElKZ2NyRVJ0aHMzVHczK2hqaWl3ZVpYRzNt?=
 =?utf-8?B?QVl6T3RmZnUxTitFNTkrSjV6VkNlWHNwdHk3eS9ZKzd4UGZrSVdxQTR2V3hE?=
 =?utf-8?B?dHFibkFVTEorckovRnRkdWVBUEdTbVFpdDIydkpwUkRGaXhVd2ZwUHlReUFZ?=
 =?utf-8?B?emNWWXRWSGEzbytUUWlWUHVVSk1SZEFqOHNsdXk1N05ZZ2xHZyt1K0pnakZV?=
 =?utf-8?B?WXlXTmxCcW5iV3FybnNhUGlmS1l4dzQ5NkdGaFJmTTdSNEpUMHgxcndGZDRC?=
 =?utf-8?B?UFRDUnRQUko4cDdCc0lXNUR1UHZBSnBHNE9hVnFUOVBldHpHS29DWTFycWdV?=
 =?utf-8?B?bng4bWJDQUYydGFPL1N1WmNQMWNyNUJqMTBVZVB6alpnaFQ2aEk5Qk5FcE1R?=
 =?utf-8?B?NzlGaTc4cFJzVXcxZlB0ZUdtMlBpZ21lR0dhOHh3YUNodFY3c1BjQW8wdnBP?=
 =?utf-8?B?a0NLY0FEeDBSNzQ4QmZBdW9HM204SkZsR1ZERnpXeXBOM1A4WGU1SmwvYmQw?=
 =?utf-8?B?RFpvbGorazZuYmNyUlRTQjB2WkdlTlczTVpIK3BjTVVuN1hFTm1QLytQTStG?=
 =?utf-8?B?N081Y3RucDdSdHdSeTZEQ0hqMlQ3T0FBOXFGYk0vdnNka2lZUjQ0UTJycXVH?=
 =?utf-8?B?eVVjTXgrWmdpN0t5RmpGYVVRSjFnRCszOEVmaXc4NzRYNVZyMlVjZWMrOXJi?=
 =?utf-8?B?V3lNU1ByTEI2UmdHdmttZHcyOUkzenF5bm5yN3R3WlF0RWJXYjJOeU9jVlZL?=
 =?utf-8?B?aUtDRitnRm5JNWZRajRCSE1URlFvc0t1SVE0L1lTK3U4L0JDQXVwVXkvcVpP?=
 =?utf-8?B?WDRDMVhtOEdNcUk5clgzM0Z3S3l6azNXRSt5bWFwcnVaTlJkYnNQNC9kZ0JT?=
 =?utf-8?B?M1h6djhuSmhyRVpRN0cwZGw4YzNXeEdocGlRWjNFWmFmZHpEV0dTRWRWWGNO?=
 =?utf-8?B?UEFNa2dJc0NyQWphZ1NuUWxZaU5pa21XMGx6RkttdWNrM3JVT2wxTHh5Q0FX?=
 =?utf-8?B?Zk5wTTlXTHF1UkhIWnFtOFVRUG50ZzUyUG5WeXR1Y1lLQ0JsZmsrckw4NU43?=
 =?utf-8?B?MjNGM2JFd1NLcHYzMHUvZzlITlpBcCtNZ2lqQ0Nzd2JPbEdhNmVlTzkzREpy?=
 =?utf-8?B?cUJjbzRFM1hKNUxPeUk3aWxabWtDdHN4OSsrcXkrcWNJV3pHcFVjKzdhWHQ3?=
 =?utf-8?B?eUttWWJPQzNEUDY4UUhPbzU3SWl1aG9BRjgrVVFtM0ZCUXFDemt6T2EyZnlv?=
 =?utf-8?B?ZGxyaVJ2dGd6akcvTHEwUkRmWWdmZmRKc0NIb1ZqbGxSVUNBODV4UTdMTVBm?=
 =?utf-8?B?ZHZncjBSQU1sSFp4anVIWU10clhjVUN4cHhxUUZTREFTbkxMSTBnWldKWlM2?=
 =?utf-8?B?NWpRenZVU1ZFTnNBOHR4TTdWWXhlMjY3azRnVEcwWklpQTZCQmlZRkE2QzBp?=
 =?utf-8?B?L1lPM2V6bURBRlJhZmJkUjUvSkJiRndtK21aUGt4Q2cwZ0w1dE41NWE3NHpt?=
 =?utf-8?B?Y3I2SXVRRjUvSGNXZUI1d0xqaDZ6a2d1T09WczB2U1ZlaldhVGtOdHl0eldv?=
 =?utf-8?Q?8tKIg+IZg91Tweav3OlcP+7DFlOkcCDY?=
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?dWJLK1NyanJ2Z3daaXZpZEh3NzBuK3RpSmdnZkNhNUppU1hTV3hZdmdobU1F?=
 =?utf-8?B?WUVWa3FuZUxMNjU1M1ZDSVZ5Y0h6d1djaXROZHdCS2JsVW5lUFAzcXBhck5B?=
 =?utf-8?B?Um4xZVpKYzNKZWMyOVJYWFp4VTN4bHNEaTVxV29TL3k1SVV0a1IyZCsvaVFu?=
 =?utf-8?B?eFRPa0Ria1VOeFM4bVZWMkU4RkNUYzgwdDZLK3VrSkNJVEp4OUk3NmxpSUlJ?=
 =?utf-8?B?U0FQcVorVmhtdnBwTGdoQzQ0aUt3TXhLR2Z4bFVaLzZybWhGTE5mMS9pVUV2?=
 =?utf-8?B?VTBZUWpqUVViQ1E4R0FraExWQjZBdGhoVWZqSkFxamNGNVlieXZadWY4NnBx?=
 =?utf-8?B?TEp5YkptUHF4Q1RMTG5halRGNFM5cmNNWjlsdjdtbUhXUlZWSHE2SFZ5ZGhK?=
 =?utf-8?B?NW5oWXFiOG5kZkZaMUUxSXNzVXhXcG5aVktMQlVWTEE2M2xPS1poRWc4MTd3?=
 =?utf-8?B?T1gwbmJ5Njhvdzh6MnpYaWV4dGRVWng3eVlaNnpQVHpLV1IvNnN1cFd2TVp3?=
 =?utf-8?B?aFB4alBQRzhtWUc3TFQ4cW9RWW9uNWFIbnUrL2hJRkJBT1h3RVNnOG9SeTk2?=
 =?utf-8?B?d0w5Qi9BKytrbWUzNkxEWFhLSkVDTzRkSGVzdFNSR0k4RE5PcUZCWGFDci9x?=
 =?utf-8?B?cEN2VjNQd1hIaFZDVzVPTXZVeGRGVG0ydk5reWNKUVRaN2Jibm9jdWcvYmZL?=
 =?utf-8?B?dE5MKzg4Q0QrcnREaXpENmZ3MjVwcW1VM3RSMlY3a1lwYkpIbXViaFZUQ29p?=
 =?utf-8?B?ZW1KWThDNzBseVFTTDdmK3pOUWk1M3BJMHRnT0YxREtoZTllTWlXRkF4L3I1?=
 =?utf-8?B?U1RuRzFTQldnK1dCaU41V1BmOGFLOGpwNjlFU1ZScmREdVRlZWFmV0FYTVdO?=
 =?utf-8?B?R0ZVRUs4NUJWUzJVRVdWZ1AwUnQyWGJjV3phWUk4Tjd0Qmo3T1lGemhWcmxq?=
 =?utf-8?B?VXpDeEpBNmN6aGFtSGx5R3loWUVEV2l0VjRGRU1qOWJlTG5oTmZQM0RveTBq?=
 =?utf-8?B?MDErcjRaRjJsQ1AvbjRxeW5TM0NLTXBYcVFpYVZvSTZKVm9zVzZPdXBrQldK?=
 =?utf-8?B?UFY2SzQ0dER4akZPMS9YNkE0K3dZaWR1QjFBbStIOTJXMjhlcUk1bk1zNzQ2?=
 =?utf-8?B?bU9IUnBJSVR3WG9hQnYzcmdrNGJsek1yczhpT09EcDFtVnV3NHQycUFQeWUy?=
 =?utf-8?B?VzJ2VWVaTnJlRlZLbTNiaDk3S0NRRHdQRFNmcm84VFpmQ0FhMnJQeURzdjhP?=
 =?utf-8?B?dlhZamJWaUYxSE5vUGU3RWFjR3RFYmthK1NOUVVnRlFvTEdHUFA3SlBXVWc1?=
 =?utf-8?B?SkRNSml3RUJrb2JtcUFweVRmWEM5Z3RVb2JJaURFRTljdllSZlZVMUtTYzNB?=
 =?utf-8?B?RjJYa1lVQkhSSUlKc2lXUlFMcW90WWxCYUx3b3BoaEowU25ndVhFUGdJZU1a?=
 =?utf-8?B?L2RiV3JmeWN2K21GOEl1VHlibzVyRzZZVUtvUWIzc1hYNTl1T2s1ckd1SXEr?=
 =?utf-8?B?SmhrVGdweFh6WURnd1JHcDNhTXJ0S05VcTQrRUgySzRrQ01URU45b2NuU3k3?=
 =?utf-8?B?Y2pLSnp3Q1Izbkhjb3JrMFVqRFd1RDFpdkl1eHhsZVUvSmlGK3pSbkkxUE9N?=
 =?utf-8?B?N2d0L2QwQ0FnQithazlGajd5ZithNi9NZzgvVjczRW9vSDNtdjNMcG1iSjl1?=
 =?utf-8?B?UFdJMGpnV0IrZHRVV0dNUXRnK0c1RlRsN1djTUZOMERSRXlXUGxnb1NyNlRF?=
 =?utf-8?B?a1ZJa0NocU5aVE41ZXVRWE1wdGhZM3JrTmF2elVZaXFoWi9rdDIvMVRFZGJ6?=
 =?utf-8?B?UVMxL2RtWW1VelU5OFhSa2Vlc0FNRnhvNzd5Z1JnSll3dkhTb1RiZ0dZWnYy?=
 =?utf-8?B?eExxdWVpQ1VUbUJCWHBFMHAvc2RzbzRSWmZudW5ReTl6UFlJUHlYcldyS3pB?=
 =?utf-8?B?ZndGOGQyMUhHVlA0dnA0c0tESVpoc3BCcDNGbWtWbUFTZVZwbnNuUmZtN3Ru?=
 =?utf-8?B?bnk2eWNmZndRUUpQQXZnWTVlSkw5dEZvZlJYRmJxaFJ6ZHZwQXd0MVU4YW9u?=
 =?utf-8?B?anh5Y3o4S0NtM1AvUGlQNlFGR0NUT01Xb3JFeFBXMVdOaFphMjh2OVUvZHdS?=
 =?utf-8?B?aWplcHVWWEpMYXNqUDVkeUJsOUZlYTBHRXhraWJwWTlMY0xhVkJnblJyRktP?=
 =?utf-8?B?Snc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 752286ab-342d-4c4f-04f2-08de269a32ad
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 12:01:25.0895
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: PES2gL8PIWaSOYbNi1rZbaP3EByLsmDX5p8y7kwB7BtABVSF0u5PKdGSvyJjdA9BT5zdLTBTG59txTjGh7VGQcsBTEJPrSs8KYa5oxHrXm8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV5PR03MB8409

On 18/11/2025 7:49 am, Jan Beulich wrote:
> On 17.11.2025 23:21, Andrew Cooper wrote:
>> wait_for_state() returns false on encountering LOADING_EXIT.
>> control_thread_fn() can move directly to this state in the case of an early
>> error.  It is not an error condition for APs, but right now the latest write
>> into stopmachine_data.fn_result wins, causing the real error, -EIO, to get
>> clobbered with -EBUSY.  e.g.:
>>
>>   # xen-ucode /lib/firmware/amd-ucode/microcode_amd_fam17h.bin --force
>>   Failed to update microcode. (err: Device or resource busy)
>>
>>   (XEN) 256 cores are to update their microcode
>>   (XEN) microcode: CPU0 update rev 0x830107d to 0x830107c failed, result 0x830107d
>>   (XEN) Late loading aborted: CPU0 failed to update ucode: -5
>>
>> Drop all the -EBUSY's, and treat hitting LOADING_EXIT as a success case.  This
>> causes only a single error to be returned through stop_machine_run().  e.g.:
> Why "single"? stop_machine_run() can't return multiple ones, having only a
> scalar return type? Or do you mean "a single, consistent" or some such?

stop_machine_run() has a data race on stopmachine_data.fn_result.

Any CPU returning any nonzero value back into the stop_machine machinery
will update the singleton result, and latest wins.

This causes the BSP to return -EIO, and all APs to return 0 and not
interfere with the -EIO.

>
>>   # xen-ucode /lib/firmware/amd-ucode/microcode_amd_fam17h.bin --force
>>   Failed to update microcode. (err: Input/output error)
>>
>>   (XEN) 256 cores are to update their microcode
>>   (XEN) microcode: CPU0 update rev 0x830107d to 0x830107c failed, result 0x830107d
>>   (XEN) Late loading aborted: CPU0 failed to update ucode: -5
> The sole difference being which specific error is observed, which looks to
> support the above interpretation. What I don't quite understand is ...
>
>> Fixes: 5ed12565aa32 ("microcode: rendezvous CPUs in NMI handler and load ucode")
> ... this and the specific indication that this needs backporting: Why is
> the particular error code this important here?

Because userspace cares about -EEXIST as a special case for success.

Having -EEIXST clobbered with -EBUSY causes a false negative failure in
XenServer's testing.

As said in the cover letter, 4.19 and earlier now suffer this as a side
effect of e0bb712a28a9 ("x86/ucode: Abort parallel load early on any
control thread error") because out-of-date ucodes used to be passed into
stop_machine and cause every CPU to fail with -EEXIST.

>> --- a/xen/arch/x86/cpu/microcode/core.c
>> +++ b/xen/arch/x86/cpu/microcode/core.c
>> @@ -260,7 +260,9 @@ static int secondary_nmi_work(void)
>>  {
>>      cpumask_set_cpu(smp_processor_id(), &cpu_callin_map);
>>  
>> -    return wait_for_state(LOADING_EXIT) ? 0 : -EBUSY;
>> +    wait_for_state(LOADING_EXIT);
>> +
>> +    return 0;
>>  }
> At which point the function could as well return void? Preferably with this
> adjustment (and the knock-on one at the call site) and with the slight
> clarification to the description
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

I have a different series, but ucode_in_nmi needs untangling first.

Even changing this function to be void causes this patch to be dominated
by cleanup, which isn't appropriate for a bugfix.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 12:32:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 12:32:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164660.1491565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLKsV-00039g-3A; Tue, 18 Nov 2025 12:32:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164660.1491565; Tue, 18 Nov 2025 12:32:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLKsU-00039Z-Vr; Tue, 18 Nov 2025 12:32:10 +0000
Received: by outflank-mailman (input) for mailman id 1164660;
 Tue, 18 Nov 2025 12:32: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=/jeL=52=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vLKsT-00039T-G9
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 12:32:09 +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 9538e1fe-c47a-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 13:32:02 +0100 (CET)
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com (2603:10a6:20b:6::31)
 by DBBPR03MB10318.eurprd03.prod.outlook.com (2603:10a6:10:532::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Tue, 18 Nov
 2025 12:31:59 +0000
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4]) by AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4%4]) with mapi id 15.20.9320.021; Tue, 18 Nov 2025
 12:31: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: 9538e1fe-c47a-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=f1S447vu5dioOtvM9IlU0DClQn+T7R9sIXPvgVlG1Q3sBDPrMy9dCe5EBp5i/XnuvT5YVzZlA89m2kAqqOFbxJGkloLVwm7xM9+JzORtn/c1v4cwDAMoD1Z/GphNoSY8fB1KA/tyeFfl00kMh+6lH2Kq/9LHYxT2uMnDp2nJYxvqoJZRMCZ3X+NMn0piznVC7v7o83xYMd1u8rShMmZSHCehqmJJCOdnClYIwabWdXnAjiyEgNqvocwvb7AuumfkiwXV0/e+/KYTg9Ou37F34aKPKqwt3O/D+SA1NJt+KRv/USjAW/BWZql0XKuAUVxwbM+Jg4eUspqwLD11odvqrQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CMvhyPEAKxba+6N/I1SQm/Bjz8mnxU/laodn14as4RY=;
 b=kA06rWR0LKDhh7oy/6ePFt912lFMLW5EQF/akvD4dkMbmFs1sduWJAPCeUmOnJ7rg+xO4xbD0qHq3fQLpVWNciMRFQkX5HWbiBdlq2NcGsTUMesAytqOcVS8XEK3jNhnK86ZNXUbP1rDsGvF2Vcm1AumQL8mDV+H6pvJTil9Mv8WPFE0s8lb2KZzSGP2G28HWMZBux3WfevdaUW7U99uvvD1J2YUxuKYer6xgxfoGrKSbG2sbqV/WKZrotZ9a4c6Z16LWU01leEvQmrHU3SsuHPy81A/IEDhO2Mq+YXIgUy0VJXyYU25blRVE1RSPGMHfVNC3OVc/UoyB1dknaVGRQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CMvhyPEAKxba+6N/I1SQm/Bjz8mnxU/laodn14as4RY=;
 b=ZSZDOGCckpWeghks/1PPqQ/MnUMjtgus5cUTSo99x0F5Cc83TN2MZzCrHY6PEan3H90qoiyAfuQ5dEPA/Vp4UBVfCADE6CbPnZgnkmqmBU2Q6bFVuzohFH+WzP4MOtb9qEyog3jjEiK0PZNE5H/m518Ao1exvDkc4WmTrU/D+43KHlH7xt5/MznxYV6gEzsx2fIE/7bWQbYKR95fHCVZz4q1P4DKVAXdBe4FWyY0DCiksFgGLSd1enhugmf+4ciKdUzmqTPzHPBiJ/fV0O5UuZu75JXrFuorXyMfK7CDDYMjouIiwSEgfPpIhdWrdUZnORD/c3vxrlh2AJmDfo3JDg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <136279e6-d8bc-4dc2-a441-743482a3e5c9@epam.com>
Date: Tue, 18 Nov 2025 14:31:58 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] x86/paging: replace !paging_mode_hap() with
 paging_mode_shadow()
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" <xen-devel@lists.xenproject.org>
References: <20251114144454.287224-1-grygorii_strashko@epam.com>
 <a34a7aa7-53da-4925-8428-cc20e1135f7f@amd.com>
 <547ea289-2dab-4047-af89-b5227c2f4936@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <547ea289-2dab-4047-af89-b5227c2f4936@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
X-ClientProxiedBy: WA2P291CA0032.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1f::21) To AM6PR03MB4600.eurprd03.prod.outlook.com
 (2603:10a6:20b:6::31)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM6PR03MB4600:EE_|DBBPR03MB10318:EE_
X-MS-Office365-Filtering-Correlation-Id: fae5f6d8-1bdf-4afa-f3aa-08de269e77eb
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?WFIwYVdvWlE5aWkvYnY5MWRZZ05LY294aXpWK2NuZlkrNGFjZGtnaSt1WCsv?=
 =?utf-8?B?VVdLcm91OTA0ZHVFS09rdzVNZzE1di8xRTNmY285Ym9KcXpIQ2ZvQUxlbHVz?=
 =?utf-8?B?cjBRR1JFRlBEREZ6dFc4aHAvRVE1UlQxVVpuTlBnd3cwcUdEYjhrMFR3SkRx?=
 =?utf-8?B?Tlkwd3hwZWFLQlEvRE5EQm9naTk2Q0FINVBZdmFxb2l3RDJZUzc0eDIyS1Zt?=
 =?utf-8?B?dTdHWjl6aHBYY1dac2RaWVhJWmZGT2xTTmdCbG9nb2xldWtQb3oxSWJwbCt6?=
 =?utf-8?B?OVZweW1acVdWYThWZ2pkM0J5TXN5V0lkVThaSi8zeXhTWkc4azBaaEF1aXZh?=
 =?utf-8?B?cW83WG9aZytLdFRIRnI4UHNWUXhGcml5bDd1YnBjbzdjT1ltWk9XRDZzalFZ?=
 =?utf-8?B?aFkvTW1SNUhYbVRVZkt5ZHJCanFYMFI0dWFTb21XRjhmTFExMHdCR3o5blMw?=
 =?utf-8?B?TGRaSFRDNHJMM1R0SENPNUJKRHE5TjErS2F6TmpPVmZhZEFnNUtGdTQwZE5Q?=
 =?utf-8?B?UDlMcit5YmlLRFRhV1VybHBGOUJPaWhHcmpFWVNyd01vV1VRQXJVWThQVXlp?=
 =?utf-8?B?VDlRL0ZZODNDSG0vWXZvcVR0aC9Fd3MvUHBaNGphLzFVV3JhNDN4MDcrVWJH?=
 =?utf-8?B?TXppVWV6V0dFYVBmTDhuNzhxRERJZDVuc09FcnA0WldpamR5ZlByQzRpZFVm?=
 =?utf-8?B?Z3YzeGMxWjZkd2FPZDAxa3h3Z05VUng0UFNUWUFlNWFOVzNnUmJRM3A2ZXBK?=
 =?utf-8?B?dmtiU2MvVDh6bGlacnp3Tzg5dWVWQXp6bkdIeWFLVUtXckZZQXo1SUhicFc3?=
 =?utf-8?B?RlFJejRzeExZRjcwaU9Ydko0WWp3UStQeEg1U21ZSzA5OVlFNUlQZGJFK1Fq?=
 =?utf-8?B?WHlJaVlNNXdMS2I3QmE4VHlxMEc4Q0FtOUtVRElWRmpEakg2bEVXbXgwU1RN?=
 =?utf-8?B?QjhrK2xUUjdWcFJsclVHSUxZVDNDb1ExSDFRWEQwbEtScW9GTCt6ZlJqS2FS?=
 =?utf-8?B?dWFmYTdVbFBmcVlNV3ZXTG5NR0dlVG1OM2xKNitWSElQaGxVV1N5Zy9aMExv?=
 =?utf-8?B?UFhiMDIzWEZsWm9mZmNOTzlvRUpNNVU0NXBxd0ptWGtId1FuMElXR1lIRFVE?=
 =?utf-8?B?OGxEaHpKODJxbnlRUW54TlBPSVZMdFpEMlpFMjFuV21PRVZmcU45bmNNc0x6?=
 =?utf-8?B?bnc5WEwwTXZUUCtCRGw4UWl5Vkg2RWtMaVQrNW81UVRqMEZ2M1BLY3lOY0Ex?=
 =?utf-8?B?ZUtMZURSNDQxYUJ4N2FkNHpXYVBGamhPek1JRmRSczduTU1JR0x1N0ExSWpV?=
 =?utf-8?B?ZUR5USt6TmltamlBMm05UjdUakFnUm9KUTJTeEQzL0FaQUZRV01ESHI1Umhk?=
 =?utf-8?B?Vk1sWk82NHN3WVBLaFhDSllkTDJ6RTFTVzA1b2ZVRGpOOEJkSEovV2N3dEFj?=
 =?utf-8?B?VnllSFNsSVoxSWd1VFk4K0tHd040Q25qYWZqZEF5cTRaQzFqbU0rRVBYODNT?=
 =?utf-8?B?NmxRVVRxdXBUM01IQkhrN3FjZDJtdGUrU1BWQnJqNTdLcUttUGd3VzF0SmRD?=
 =?utf-8?B?YjhxWE5QdFQyTm9HQitMRS9zRWtNc09FMmNUOFpWYzdMcWtLSGNESHRQRmxY?=
 =?utf-8?B?MFl0NVlwRlp2TVdhK3RiaTRFSGZDaWRxalVVeHQzeGJieUFEZ3dOQmszVmlS?=
 =?utf-8?B?RGtUOGJpZ0pUdEJHWTVxQlcrSjd1NGJpYjZ5Yzd1cTc5RUlISXhGZDJpamVX?=
 =?utf-8?B?WTkzNERZeEs1djNlMnFyaFNrV3pMbHNrdjFVVHBINlMvRjlPYXM4a0JEZ3hx?=
 =?utf-8?B?VEVONHY1SmliR2tvL0hBU1hrblZWdTNjQnBENXo1dTVEK0pDYkdyMS9xL3FG?=
 =?utf-8?B?VEZmYmU3SkJPUE91S3E5S2dOa1FTbEFaRkJHMkFLZTNqYWlhUGMvZkFSMHpE?=
 =?utf-8?Q?icjhouLhkVMyWdjRosx5Bs8Wz6gfw4tp?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR03MB4600.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QkhVekxrVVZtZjNCMWxoMWlYNHBtZkFQaGorckxMYmczaEUxWDBpcDVqaE80?=
 =?utf-8?B?WWJ3NHBjQVFtNlVOdmlSNTJWRHdMWEdYOXNaa3FOSjNoZ0l4RFJweFRaSGNa?=
 =?utf-8?B?a05ublNJOU5HK1ZESkQzNmVEVndWMWVGSXlwSkYrT0NibFZrc0gxNjgyOWdU?=
 =?utf-8?B?VVNkU0R5RXNiY3VlanlMOFdJMXdUMnRBNk5JaWZGNHZpdTV5T1NjRmUrd1dQ?=
 =?utf-8?B?d2txc1dMbFRVNmRDNTN2RW5FSUFzVi9EMDNibTkrUGhaSXdVVFlQZVJNQjJF?=
 =?utf-8?B?Zk9yRk5DeUpNQkZPeHJKZGR0eUg3bmRWL0loNTRXNEVDM3pSYWJSbXhYZ1o1?=
 =?utf-8?B?RkhQL0hmeVZSMEdxdks3S2xLREpHbFZiU1JQNDgxNHZrZmpCQ2k1NXJwRmV3?=
 =?utf-8?B?MmNKVkYvVG5IWTYyaG9hSkpCazcySndzZzFFY2dsZEpvR29uQ3dKNGg4MWcw?=
 =?utf-8?B?TWZJUTl3MW92eSs3djgyT3dXY1dtUHBnZEZlMkptclMxQWxrTjVRMWJZN3R3?=
 =?utf-8?B?VXdVcHB5a2Y0WkZmRjV4cjFiV3NiZ213TE93SEVCekRoSGNBUzVNY2s0Nmlw?=
 =?utf-8?B?b2VlMkNsVzdQS3JFU3hPMkZoSkoxcmU3QlgyOURNL3V3eU1nZHN5SEhUYnJo?=
 =?utf-8?B?VjU5dnZrUms1bkI3NVBmNXg5WDBoRFo4MHBlRW1VRHZVK2ZEeWt3TmdUTE9s?=
 =?utf-8?B?RVpaV2tPNkxKZ21BZ0YxY2FvTWI3c3Njek5hTHFSR29iMzdZdWZ1aVE4UkdZ?=
 =?utf-8?B?OXZvbDVWOTg3dXZxbHJESEpDSG9xdXVQUDhmK3YzeXNhdVdxVGp1YjRaMUdB?=
 =?utf-8?B?ZGx6MnFqYUxHNms4aU1WN25XUjBDRVNKZm1rMUhNa3F6Q01JaG1TSDhLMEdp?=
 =?utf-8?B?V1dJbG1LYSs4S0R5OWtyQlBRL0NjUlIyL2p6aU9DL040ZitqWVh5UlBqTDdM?=
 =?utf-8?B?Y2NlVmR3R2JLVGt4U2tncFlXaUZtYUs5eHI5dTV6LzhlbHlyYjZzT0pubjZS?=
 =?utf-8?B?UUZBWnExeWswRncxZEZpZ3Z5MDJvWVBsYlgvTWpnTjUxODgzekN2aU1jTzlJ?=
 =?utf-8?B?RnBOUGNiWmZXakowTkg3emRoeHdhK3h0N1RYVDlHS2VZV2hSeWlUWDEvZTJ0?=
 =?utf-8?B?dEgyU2daaGVGS3lycHp0cjg4NGhMUmFGZ2g2M0sxOXBaK3JZYTJ3ci9tWUVT?=
 =?utf-8?B?ZENrclNzWUpwSUk2M3N4QklVNXpiRWlaOC9SdTRlbVF5Y1pBZXFuZzd5ZEJM?=
 =?utf-8?B?SU9ZbStrdHVpTEt0WGtNcHkrNWlPZWR2M1JiTDFOREZTUmZwcU04OVBCM1NJ?=
 =?utf-8?B?UTJBYUFtR3U3N1k0SVYwN0R4TWFYbEdNWEdVWVlSQTVTZHpNZWg2bGxoVlls?=
 =?utf-8?B?T0xsZi95UmowZVZEdHMzcDNxd2UxOWRLTDBUOEg2aEtlM3hzNDF4eWFiUGpB?=
 =?utf-8?B?UE1PMWxpR1dSMWJCR29leTgzNGNvVGxhYTlLdC9oWU9FdGZrYXBzaGxwTVd4?=
 =?utf-8?B?Tit1cW93TUlaQjVOYWpxQitOUFU4Q0xrTjRCZHYvZ1FlcTN3RjRXSjlLbUtQ?=
 =?utf-8?B?VTNWSmxnNEJ4K2pSS21uMVJzYytGN1RZQUo4YkVmZ0V6NGZVdUd0TVdCR2Fu?=
 =?utf-8?B?clJSSmhCdUdJWmQwRndvdlpLWitSUXJoMnNlTFpSRHgxckRDMllUUTNUSHh0?=
 =?utf-8?B?aGM0cEoxL01icWNGbGM5QnZzVEFSdDBYTnhVOHVCdU45eVNEZnlVd3dCenFH?=
 =?utf-8?B?aFRpdVhwQzhFVDJ5YWQ5bmVNUEswdDlqM0JxMlhFSWh5Vy9RcEhuaDJVa0V6?=
 =?utf-8?B?a2JhU0ZnVVRKZkU2Tm1HTWRDUml4Q2JEWEwxVEpKUzFTVVNDS1lpMzI2dTlO?=
 =?utf-8?B?UHVvZ3lrVEVuLzlROGNWT2dhR2tjb3AzQ1FiWXZ2dTdGei9hazZCNExGc0hF?=
 =?utf-8?B?R1JqNFoydWx1QUUrR0dib1NUdzBUa0JDWlhLUlVhaU9VL2hjYUZTQ0lydEFm?=
 =?utf-8?B?SVJnNW9kRnBtaXoyOW5SSnowVURMckhUaElNQWhmYU9jQkxOeUNnS3hVbEJq?=
 =?utf-8?B?SDJPMGNKZmluTDJobFAwczU3K3RHS2RWcmdsem4zMHVmWHdsRDdoQWc4U3NQ?=
 =?utf-8?B?d1puNDJEMWl5Ly9WdUdhb2UxbWMxenczS2VmcVg3bnFlbkRNSHQzUG94ejcy?=
 =?utf-8?B?cXc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fae5f6d8-1bdf-4afa-f3aa-08de269e77eb
X-MS-Exchange-CrossTenant-AuthSource: AM6PR03MB4600.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 12:31:59.4236
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hpDsfYI4bkccQNS5wU+4rwWwm2LDl5OV03IHP0rkmR7pYCQlx55oGCOiGPlJ7lcjzc428I5qmaEeYLXGmZpxOq8WOGtRmt6mNp4ZNj7xdyo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB10318

Hi Jan,

On 17.11.25 11:47, Jan Beulich wrote:
> On 15.11.2025 00:21, Jason Andryuk wrote:
>> On 2025-11-14 09:44, Grygorii Strashko wrote:
>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>
>>> Now Xen supports only two paging modes: HAP and SHADOW, so
>>> !paging_mode_hap() is actually means paging_mode_shadow().
> 
> For HVM, that is. For PV both could produce "false". Luckily the code
> changes are all in line with that, but somewhere this detail wants
> mentioning imo (as it's also not part of the patch subject). Happy to
> make a small adjustment while committing; then ...

Sure. Thank you very much.

> 
>>> For an abstract, future case of there being a 3rd paging mode it is also
>>> better to explicitly mention checked paging mode (SHADOW) instead of using
>>> negative check of another paging mode (HAP).
>>>
>>> Hence, s/!paging_mode_hap()/paging_mode_shadow() which also allows DCE drop
>>> unused code when SHADOW_PAGING=n.
>>> The !paging_mode_hap() in hap.c not changed as HAP is checking for itself
>>> to be enabled.
>>>
>>> Inspired by [1].
>>>
>>> [1] https://patchwork.kernel.org/project/xen-devel/patch/20251111200958.3576341-3-grygorii_strashko@epam.com/
>>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
> 
> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> Jan

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 12:42:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 12:42:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164672.1491574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLL28-00051Z-VK; Tue, 18 Nov 2025 12:42:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164672.1491574; Tue, 18 Nov 2025 12:42: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 1vLL28-00051S-SS; Tue, 18 Nov 2025 12:42:08 +0000
Received: by outflank-mailman (input) for mailman id 1164672;
 Tue, 18 Nov 2025 12:42: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=/jeL=52=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vLL28-00051M-5O
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 12:42:08 +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 fdf0ce19-c47b-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 13:42:07 +0100 (CET)
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com (2603:10a6:20b:6::31)
 by AM9PR03MB6708.eurprd03.prod.outlook.com (2603:10a6:20b:2da::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.21; Tue, 18 Nov
 2025 12:42:05 +0000
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4]) by AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4%4]) with mapi id 15.20.9320.021; Tue, 18 Nov 2025
 12: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: fdf0ce19-c47b-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mwrtb1CM46YpZz+sJw4vI25gHQ5Kagl2k/lAQ4AOWX6sa2fnId3swBUl/RoWe8XbnxrWiq2+Byjod7g883h5rWHG0wkq1hITPli1sLH2mQPdIlWmB3tqT/q7Lzm2k5J9pEFQG4VR7I30YTACVXwrofKe7MxTnzImTsmZJiP+KYb7GzAdvGuw5TdU5sbE8cRoRDFDcTNjFf4esDNa/EP+dEeq0Q/KOkGF3nDqHUk7wX1MlDM6RHpXbYrNmlis5qH+2665fTRGeE/5yStOoqsEy/eOujN+VRupWrhbVAbOMB3syv2rQmdvqY1YVJE4cWs423kOAyEITgd7Mb/CJh/fFg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PGqOVODywlgENKbFMufC+/eym8CzsgqWh5ggEqqyMvM=;
 b=ZLcbeuzNRl7Fm2US734PWlR3P9Ycdfrvrpj9o4fIi71SDWvPt8M8uW07oEvTgN3RiAc6Eu/sUvYBpdmnoynNbzlonV2KtI5WZYB2MfYMzB8726L0T+QZqfMRHlUnHj6S9qp0jrNpR57vitGEB6dFfKMNDVNdewjYFDPdRBS8iGnQIgNKRpKCgm7Lqqg6mK9Y+tqGSWTNj6hocimFtA0txhe/J+Y8UC8E1HVde8/U2JZfm7ku+zvYJPtPBrDmlFtP1R12Zy9kjNAun6ufVFA77o73j2DPxa+x5IGM2CeJ+QqLXDPBwuN9ceTiQ+H7hEUzte6gWo9HWi363tXSIxC0ng==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PGqOVODywlgENKbFMufC+/eym8CzsgqWh5ggEqqyMvM=;
 b=PBHhXpIqQb6mex1IhfWM0bOAAs4xcGtz72QBMsJlMUMA+cwuNywsrdHYCdujI4Hg5+MZtyXqTKvOGEpeZ2b/bSx9eZchKQ0rzTFgzfzNxYMqRkMro8H0qL2M6cB5+6s+hLIH8MrZktQvbavGRy2zmGNopsOU+p+b48zr6+zoPuxZihW3bIlI2Amxa4pkHZi3m49/lrjV7EmlusfUT2HS9x9XsTPzKjSjXTQ90LUbr+zbooF6kLvU+MVU2UKpXl97EMAQqeCV7ZSsROAId+nB7chYHJR+1rHpAOZLFn3hBzq1e2ZNJxhDFGc/J9MEE+uEE5IHIXoWsGhl2cxT05NA1Q==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <5ebcbafc-d391-4541-8df3-2742cef43be8@epam.com>
Date: Tue, 18 Nov 2025 14:42:02 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v3] xen: make VMTRACE support optional
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 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>
References: <20251114142207.279834-1-grygorii_strashko@epam.com>
 <225378f4-0ebd-4c77-ae77-807bbb03b0bb@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <225378f4-0ebd-4c77-ae77-807bbb03b0bb@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BE1P281CA0036.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:b10:22::9) To AM6PR03MB4600.eurprd03.prod.outlook.com
 (2603:10a6:20b:6::31)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM6PR03MB4600:EE_|AM9PR03MB6708:EE_
X-MS-Office365-Filtering-Correlation-Id: 905ec9e3-06e8-4f76-03b2-08de269fe0f9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YlJ6cFZQTFlGUnArS0diVkV5NWE4WkpvdytVYkJwU3J5MkF6Nk82alF3cVJ5?=
 =?utf-8?B?QXBBYUpvanpqdG1MTVdhTVV1YkpIWnZrRW9yMmFIeFBUNUdKU0d3MFZjYmFp?=
 =?utf-8?B?T25uUUpmNllMUStIUTJZZ0QxeGY5ZHJ1QVUwM1ZBNmpxbHpFamN6Sk44d1Rk?=
 =?utf-8?B?Tm50aXgyRExJZ0x6Y0I2Q3RiUWdUOGlVcVJIbHIwTjlFWkhaTjlwTVVrUjcy?=
 =?utf-8?B?enNXZG5ENjNUREtOVElTaUJIVkt0SzJ6cVplblU5TjlVNWpEVGNYMW0vdGRD?=
 =?utf-8?B?THhJWEUrWVJEMmh1SnhFbm5ZME5VdGxjOWJWV1gwNXZWOHhIdVlOdDBGLzNy?=
 =?utf-8?B?NTlSR3MwK2UwZ0l3WHYveGdqalIxMGdndGFXeW83U2RnWW9LTjJ5dlJ6OTNY?=
 =?utf-8?B?ZWo5eXFzeFB3V25IOVhuODNJVjVNT0RRcGJIQmpQb0V1NzRrMjB4d1BkNjh1?=
 =?utf-8?B?bTJhMGFVdlI5RjBnYm1vWHV1Z0d5L1JXNWZzTk1oblkydkg2YUJJRENhS3dQ?=
 =?utf-8?B?eTlPbTVTRkxXeWJJY01rV2lqSFQyckwyL1VNZEpYUityRDBBTy9OdWpDVGNG?=
 =?utf-8?B?SkEwQzVhM1hydzc1MzYrbUM2elZkSGxZc1ZNWHBIRWtsZjdjZ1ZJTTRDekVw?=
 =?utf-8?B?NGNxWG9jRm5iRDFxQmRwQzZmYUc3dG82NUVMZ1I1RXNFakdXWFI1R2ZHbmR5?=
 =?utf-8?B?dllTcVVDNDZuMllVcmxqSFdrbWt2UDRFaUlmVXBhdGdxTXRWRHZXR3VDYVFD?=
 =?utf-8?B?NEpMVkVOaFI5bkRLRy8vb01tOGZTOTNMc3FRa1hCQVV4bEtibDlFYnYrQlli?=
 =?utf-8?B?RVdVU2IxUnl5ZVRmRmREYlRhT0krbSs2K2thNFdqVG01TDBpTEplRjVIWG9p?=
 =?utf-8?B?eVAvREh3UUpDSktGNWRpdHp4QXRqN2lmek0rWG9VekEzRUIyNjRxL2tpVXdh?=
 =?utf-8?B?d1JaWTJIVi9BVy83OEVrZFhMK0VwYjYyRzhWZUZNS2owOXZGWmdPSkJLejF2?=
 =?utf-8?B?MEJyTDJvWG13TDVXa2hNRUZhUjBKeVYya0Zaa3l0UjJNSmZBL2kza2dKdzlD?=
 =?utf-8?B?WnBMaGhjempjbkVYUFBZS2hxc3J6MTNmQ2N5VzhRbFBUdkhuazZOT2pjRHU1?=
 =?utf-8?B?SkFYUHBwUEptSjMwZWcrN2ZnZmVDTTAzTGJYWDlQSVRrSy8vWkp5aEJ4aGhz?=
 =?utf-8?B?alk2UlZoUWxMeDR3ZmxCMDdOUDZWblZWTmxqQ2g3ZSt4L1J1V24xTlVJK25Z?=
 =?utf-8?B?Q3V1T041eEdlMmpPRXBiaTB0L2tLTy9QK3VaMGFCakZ0aWErMmtSZVZEZGFv?=
 =?utf-8?B?ZUN4MitBR21jQ1JBekN5NDYrem1wQVhDcy9WMlZjdmo1dFVFNWhFRGszRytV?=
 =?utf-8?B?K2w1MURYMkp4bjhKZkt5dWRobmdCdGRVY280a3doUzM2eGI5WGJmUEZrRVBs?=
 =?utf-8?B?MTEyOThXNm5zbEUvUlhVbitSOHlZYjVZeCsvSjRSV3l2M2s4QStNZW9EY1Zk?=
 =?utf-8?B?NHhDSThOemdSK2VXbDRoYjZKVUhNRU1kdzF0NFEzRXdRdkdsWHhFaXZOZ29o?=
 =?utf-8?B?cUJTUVBKeDFmMktKa2xNYW44RFhUSHZuNFlmcWpyUHZvbjh1M1dnSnNUUTNZ?=
 =?utf-8?B?eW15eDdQNXozTjdZMS80ZzR1K2x3SjhRSXZ1RHlyNWNRbWdqa1JHNHNCWFNy?=
 =?utf-8?B?Z1Ewd3poNjNaYjNEVFZCdzhMaytNeVlpcStjZXFhOVZjWnA2dTEwa2Jwbm9w?=
 =?utf-8?B?QXVQYnVSa2toUnMvR2dMb1RnaG1Mb3JRbGhDNGY5enEzWlNlby9HTDV4bjE3?=
 =?utf-8?B?U3k5cXhTK0xrYkp0Y3I1ZUJVd0R4NktaWVNYSGxmOGp6QXhrYy8rc0thTXVx?=
 =?utf-8?B?WWFMOVlxa2ViS2FKUDJ4UmVmUWt6SnJhN3IvelQ1WTRBWjlQUnd4ckJMbTJs?=
 =?utf-8?Q?1fV5bCC1nskLCiplpSMqXkpta9eoKjCy?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR03MB4600.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?azVnK0RpRTF6T0FhK25XYllmc2NxTUhXWnRwY0tYUjdtbHdST1N2ZXY2QW1y?=
 =?utf-8?B?TktXNHk2Q09JaXpldFBJNnQraU1ReXd3ZktGOWkvTGFjYUZMcGp1T3dwWHE3?=
 =?utf-8?B?ZmMzYUt2ZmJrVW5UQktPRDFPVUtQNHVEaGliQmUvNmcwaE5CcDgrbnVXd3Jo?=
 =?utf-8?B?ZSt4T1hWQzRjK3BTalNnQnBBaWlVTEd2S3JFSmVMM2pNU244MG5ZOWxRbUdM?=
 =?utf-8?B?a3hnRU9WZTBoZ0tvQlBOb3pwdEtNemdrOFNEYU1wZUJrODExMHNyelE4VjRR?=
 =?utf-8?B?eEJzOGhTSGZEOGdoVEp6dEZkbFBRazhNallUaVNIMVhVT1k5c1F3NHVHVk1V?=
 =?utf-8?B?Z3VhbHc0RHU3eXdGYURUdk1aT0l2Y1NTRVh2Qlo4LzBoWFRIQ2g1R3FCSFRJ?=
 =?utf-8?B?K1pWZHNJcTVyazdlMjNKdFplQ0E2TUxXN0RZd3I2dW9qL2FGVXAvK0NzNXJQ?=
 =?utf-8?B?MElmekQ3N0pXM0NTSkNQS1NSN21oWTJTN092cklLNnJubkdHaGZaQk5JZnhj?=
 =?utf-8?B?M3BoaU1BVjZBM1hsbm1WYm1USXZxUk9FWFp4VFE3YTdJcHdxRkE2a29CQS9I?=
 =?utf-8?B?Ri9ONGJHRDdyWjJWNnhCdlZOWmYwUGhYQ0hKZDl1NldqdGpKbXc4Q0dYdmZP?=
 =?utf-8?B?UWZnRmtDL282cWozTEpMbDF2dnVFNG1GZVVrc1NEdi9udnBZZmNpRWl2SkY4?=
 =?utf-8?B?MWE2VmlrRGFGL0JIb01OQVFsUGNocVF1dnZodUZDckNnd2tsNE11aFNjbmNj?=
 =?utf-8?B?ZmdGZklvcXlhSDNnRndmWmFCUHkzQmhKRlNQOEIyRnlxUC93WWlUOXcvcng4?=
 =?utf-8?B?NEpkb1B6azF0Zm1QaU9NTlVKOXIzTmVSbHY3L2tNSUVRQ3lJeHRmZ1NFb2VF?=
 =?utf-8?B?Tnp0cjJhT1FMYW1vaEV5TFdXS09qdy81VlJkaWxrNStrUWZHbE95Njhhd3V6?=
 =?utf-8?B?UGM3b0syQ0szMmZONXJvSlU0Y09ZQkNidEg4R2NMZkFCSWdrR3dlQmJHVDJJ?=
 =?utf-8?B?aW5oK0RoWWxzUFNCL0dHSzhrQnl5YzAzdTdtRmp2azhINXM5SW4yaU5WNEt2?=
 =?utf-8?B?U1AvWTUzTnNRL2FNZ1NDT1p4cXQzUFZwaWluOVMzY3J0R1VmbUFNU3dvOGYw?=
 =?utf-8?B?bm9QVmFlb1BReUsrT2hDNEg4d1BDUUdMdkpiMnNpQTBCaFo5VGYwb1hYczcz?=
 =?utf-8?B?N0F6MkI1M1NEb0FidGVUdklpUEJJWHUxbTFWbmptS0RGV0MzbnNLTHdHL090?=
 =?utf-8?B?ZklEREtKRWlOVmswend3UVRYUXlTTW0vNHRkN002N0gzNEQ1M1Q2L09WTGcw?=
 =?utf-8?B?WVVvdjN1M0dzbGtXY0o2SFY4dUlIMFBrem5tR05VdVFhYVVWWXhzZ09HMlQv?=
 =?utf-8?B?MDc5UjVzL2UxMkFvRms4SFZibFRRdTc4VzJiWVdUMWYzcGJZcS80cTVLS2xa?=
 =?utf-8?B?aW8zd2JJam5RYUtpaFllNjdMM1JFZEtaWVpXUEpoRk1WTHVaeEdobG9YK3Ji?=
 =?utf-8?B?bTZMeUpxeHJoajFDT2pyYTFsMGF4M252a0VYRGVpdlMwWjRBaGlZMUp3YktQ?=
 =?utf-8?B?T05zcEZCZDhQUmR2WDR3NEdpb3A0NVQ0RkUrbWJneTR0a3hVR1F4UUtQOTlZ?=
 =?utf-8?B?a204VjM4WENkRzM3R01IVVZHWXpUckJDUkNnME5VL2JuVWU3VHQxVTBkQTdw?=
 =?utf-8?B?L1haUXNBcVYyaG1BTGxiU1B1ZHBhc1Q1LzFBTjZsQlRSS2xMWkcxQlF2OTY0?=
 =?utf-8?B?M1RIYmtJb2dCUVN3bXNaRU5UQk1mNmpBOUM5ZStuSDZXNHYwdy9DRXl5eFYw?=
 =?utf-8?B?MSswU2FURHdIZFBXeTR6NkgySWZRT2VwdVE5bkJob2ZCY0sxVHR1UkZDNTYv?=
 =?utf-8?B?N1VHalRoOHhZUWZGUGM1TWl5SGZuTWIraitBanJBbkVuR3p3ZzFlR1VUQlRK?=
 =?utf-8?B?alMzV2hXWjN3aWNBYXpPYXFUaWdlZ2h2eHhBT2tnVWxFNWk1R3c4NzE2cklK?=
 =?utf-8?B?U0Z6MTFZSFBhVE9NUmFBTlBpTHJRQzF4TkFDb0dEbmJwSzJPcENodjNtaE1s?=
 =?utf-8?B?TUtvMklTRGcrOGN5U2hTQnU1M0NDc1FBMkw3QXdDSmQwTTN2OStuVjVmcWJs?=
 =?utf-8?B?S05jRDZ5elgxSzI3OGtHRkFubFgwSEV0RlMxREh4QmtBb2NMVnNFazd6N20v?=
 =?utf-8?B?anc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 905ec9e3-06e8-4f76-03b2-08de269fe0f9
X-MS-Exchange-CrossTenant-AuthSource: AM6PR03MB4600.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 12:42:05.0288
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vzvmKIyuWolp41LksWxM6YfZq72g0aEMPrNA4sQtBBT8jWQp0cT/W8xDM6U+nr6iLzhqzhz/9qUYvFjKnXUu3zCV923X0oZrEY6Kl9Eq1vc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB6708

Hi Jan,

On 17.11.25 18:52, Jan Beulich wrote:
> On 14.11.2025 15:22, Grygorii Strashko wrote:
>> --- a/xen/arch/x86/hvm/Kconfig
>> +++ b/xen/arch/x86/hvm/Kconfig
>> @@ -35,6 +35,18 @@ config INTEL_VMX
>>   	  If your system includes a processor with Intel VT-x support, say Y.
>>   	  If in doubt, say Y.
>>   
>> +config VMTRACE
>> +    bool "HW VM tracing support"
>> +    depends on INTEL_VMX
>> +    default y
>> +    help
>> +      Enables HW VM tracing support which allows to configure HW processor
>> +      features (vmtrace_op) to enable capturing information about software
>> +      execution using dedicated hardware facilities with minimal interference
>> +      to the software being traced. The trace data can be retrieved using buffer
>> +      shared between Xen and domain
>> +      (see XENMEM_acquire_resource(XENMEM_resource_vmtrace_buf)).
> 
> Please check adjacent options above or ...
> 
>>   config HVM_FEP
>>   	bool "HVM Forced Emulation Prefix support (UNSUPPORTED)" if UNSUPPORTED
>>   	default DEBUG
> 
> ... below for how proper indentation would look like here.

There is a mix in Kconfigs - some places <Tabs> some places <Spaces> :(
Will change to <Tabs>

> 
>> --- a/xen/arch/x86/hvm/vmx/vmcs.c
>> +++ b/xen/arch/x86/hvm/vmx/vmcs.c
>> @@ -307,6 +307,7 @@ static int vmx_init_vmcs_config(bool bsp)
>>       rdmsrl(MSR_IA32_VMX_MISC, _vmx_misc_cap);
>>   
>>       /* Check whether IPT is supported in VMX operation. */
>> +#ifdef CONFIG_VMTRACE
> 
> This imo wants to move ahead of the comment. (Feels a little like I may have
> said so already, but it may well have been in the context of a different
> recent patch.)
> 
>> @@ -772,13 +775,24 @@ static inline int hvm_vmtrace_get_option(
>>   
>>       return -EOPNOTSUPP;
>>   }
>> +#else
>> +/*
>> + * Function declaration(s) here are used without definition(s) to make compiler
>> + * happy when VMTRACE=n, compiler DCE will eliminate unused code.
>> + */
>> +int hvm_vmtrace_output_position(struct vcpu *v, uint64_t *pos);
>> +#endif
>>   
>>   static inline int hvm_vmtrace_reset(struct vcpu *v)
>>   {
>> +#ifdef CONFIG_VMTRACE
>>       if ( hvm_funcs.vmtrace_reset )
>>           return alternative_call(hvm_funcs.vmtrace_reset, v);
>>   
>>       return -EOPNOTSUPP;
>> +#else
>> +    return -EOPNOTSUPP;
>> +#endif
> 
> No #else please and the #endif moved up.
> 
>> --- a/xen/arch/x86/vm_event.c
>> +++ b/xen/arch/x86/vm_event.c
>> @@ -253,7 +253,8 @@ void vm_event_fill_regs(vm_event_request_t *req)
>>       req->data.regs.x86.shadow_gs = ctxt.shadow_gs;
>>       req->data.regs.x86.dr6 = ctxt.dr6;
>>   
>> -    if ( hvm_vmtrace_output_position(curr, &req->data.regs.x86.vmtrace_pos) != 1 )
>> +    if ( IS_ENABLED(CONFIG_VMTRACE) &&
>> +         hvm_vmtrace_output_position(curr, &req->data.regs.x86.vmtrace_pos) != 1 )
> 
> Would be nice if the too-long-line issue here was also address, when the line
> needs touching anyway.

I left it as is for better readability as an exception.
Will below be ok:

      if ( IS_ENABLED(CONFIG_VMTRACE) &&
-         hvm_vmtrace_output_position(curr, &req->data.regs.x86.vmtrace_pos) != 1 )
+         hvm_vmtrace_output_position(curr,
+                                     &req->data.regs.x86.vmtrace_pos) != 1 )
          req->data.regs.x86.vmtrace_pos = ~0;

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 13:08:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 13:08:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164687.1491584 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLLRe-0008Uc-3L; Tue, 18 Nov 2025 13:08:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164687.1491584; Tue, 18 Nov 2025 13: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 1vLLRe-0008UV-04; Tue, 18 Nov 2025 13:08:30 +0000
Received: by outflank-mailman (input) for mailman id 1164687;
 Tue, 18 Nov 2025 13:08: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=/jeL=52=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vLLRb-0008U9-WF
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 13:08:28 +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 a8deef1a-c47f-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 14:08:22 +0100 (CET)
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com (2603:10a6:20b:6::31)
 by PA4PR03MB6878.eurprd03.prod.outlook.com (2603:10a6:102:f0::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Tue, 18 Nov
 2025 13:08:18 +0000
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4]) by AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4%4]) with mapi id 15.20.9320.021; Tue, 18 Nov 2025
 13:08:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8deef1a-c47f-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZXUJWPda9nJ1ISuvDRU6UKXfJEVY3k8QXJMOMYZgfyVSsx5ESLDGG2bxsWKbwx1EqIcqJpdidzS04SjMSkHdoerQTeQrn5DNF6MRXb+Ff9g6zK31JHl55fuf5EXNWk5gbXCATnV3citg4GMQnyvAdghnMCm3pi7gYGn63d6yxbdyppNybrEqqAMcwfUwoHuUIPBxuSEsaDsuN8i75lVPjm0BCCT8Bq/V7jJjkygoAmO2EYyzhhb9VmMDfMf3Tps3wp+7+/m1D6ip4Ji7h3ryplcLuFHTknqdViEGXqFvxnavAJUi0Kg6pXXYkjw8g3Mjj6ac59S2IhjBwCYFYyzoUQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VdE+ZIpLV+S5wnFmF9XxQntV3HFYQrAB4N3H5fpVw0A=;
 b=Z0sL6rWqf03XCDZltILUQEfGoAkzAOh9/lQeXqPwUnIj9DI2wyCK0W1tEUW6CHzbjP2ktOk8XDbnXarwvCR9nlFYj0PYP3LXZ+FYFtwh7Bq8e+XOqlZtn+LS2f8/5tz7WqMzLTVAV8AeLB9o9X5CDJCuq8z+Jna9hKySTnM2axLv28VSjzsYcIGDBansEigN3LvAzGmq4UMNKao9cGp6YY8E5vxGTWY2GkpqYIlRlIW/kR5f3YmWaKhoPXs2ll9//iHbpgqczJeDt5OAim21WoIM3g/MPVUiqCECj7i0BJ5t28HqimZISS5SdZ3ruH2Xm8KHSk3ujQ8NozqYKpxM4w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VdE+ZIpLV+S5wnFmF9XxQntV3HFYQrAB4N3H5fpVw0A=;
 b=SAatXISlhyOka9yQnpKBAHZjsY5eMlW+HREra5fe4TO1RzeOINdZo9ZgsONH9NJGEiNipZaUa5QFMtQSD1lzh6KLbzPaJyzoji0BhIuX3PNVs6FPWbjpIDlbl13ibGLVWDjpIfMITW30HXpHQgKRQ+L5o9SCF1K43uZY/N6zjMCOOjtKPalySIaaafCuZjq2zqhhDr/2+kY8qcXW1oZsExy9vUqvQb96rDvvimFw+IGlYLdEFy23EjGnHWtvfTTooScyJlnQpIJ69ODv2ZGVfx00cbc5taYck0+6CNGQ9dRzgmuQR8ZVFO6CqU+otx+6mrwcLNKCehx5g6RVkDZ71w==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <fdd51da7-c8dc-4c0f-aaaf-a9fd2094bcd4@epam.com>
Date: Tue, 18 Nov 2025 15:08:16 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v4] xen/x86: guest_access: optimize raw_x_guest() for
 PV and HVM combinations
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251114140117.270461-1-grygorii_strashko@epam.com>
 <11c3929a-977b-4ef8-aaaa-9aea01657b04@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <11c3929a-977b-4ef8-aaaa-9aea01657b04@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BE1P281CA0337.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:b10:7d::14) To AM6PR03MB4600.eurprd03.prod.outlook.com
 (2603:10a6:20b:6::31)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM6PR03MB4600:EE_|PA4PR03MB6878:EE_
X-MS-Office365-Filtering-Correlation-Id: 50745a18-cc57-4af8-8adb-08de26a38aa7
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?STBYQnhPemp5bk80aXVEU1BhVWJoV3RLcGxkOW9HWEVXL2thMjdNWDBObEJK?=
 =?utf-8?B?OExVRXBwVWRxK1hSWUhKRlQvRTAvN3EycHRsV3VQb21QeVFQQjY1YTVXV3RG?=
 =?utf-8?B?ZEJUYTlFU295b29FTU8rUmhaVlJpREVOK1VXZmQ0eFpkbjBlVGJndHdSaCtC?=
 =?utf-8?B?c0NUNUxhNFlYRmI5d0k1TVhpZDNMR0RDNWJPc2lyQTJkbzRYQ1l5M0VTMHBj?=
 =?utf-8?B?MTF3SnpYeWdVNFByck12YzRoK1RibjRBSnFNcjdwVlhjVmFtZjU3SUQxVzFY?=
 =?utf-8?B?cExqdU9NY2xyQklkcDhCVG1SOXRzSFNsd1FlZlNoZkJmVzlVc241dmFWMzhL?=
 =?utf-8?B?YmM0STBnSndRNGF6S0xveXF5bjF5R21CbmdxMDBIcCtYaEdVUkVtamUvbFoz?=
 =?utf-8?B?eWpiRCtKY0xzd1FPNVRwd3ZOTlVaTWxpVk9iVlVodXlXWTRJN1BXblY1Nk9X?=
 =?utf-8?B?SHpCMVdaSHlEN29ZQWpkQWhKZXQxV1g1VXpjTFVIa1dDU0c3REh5REZYblFJ?=
 =?utf-8?B?eW9DQ09wcFRaNGQranFkalhlUjhqc29KaFoyeFVkY2h6YVJjRmphc25OZkJk?=
 =?utf-8?B?bTZTUmtOSE1EYk1zWlRCdnVFNkxMNlh5S3A3M0dvS1EvR3hjVXptTEkrR0U5?=
 =?utf-8?B?VjYyTUdXOEEvRzlhRG1aWW1NZkp4dy9wd2ZZUnpOVGxjWXVoWmJZU3VuMVJ0?=
 =?utf-8?B?TXdOU1BvYktScTRTd09wenZXUDVPV2NDaUxRZWhHK1VLby9nL1Q4WVFNb3Nx?=
 =?utf-8?B?TW9NcnlSU2hJNWVyN0ppMk1ka3RKZzlvdGd2V3ZqNXZLUGpNdmpLK29iVTc3?=
 =?utf-8?B?NUZnVWtWUXR4aDdzdXROZkdJbU8zaHV0dFFHWmpkNjBEWXRjSFFDWllJN1oz?=
 =?utf-8?B?dGErTWN2bk0yblY3MVI3cEVoUzcxd0NBbWp3ZlB2VE1YRy96bVczRlQ5bmh0?=
 =?utf-8?B?SU5PaWRUNVBOdCtScUNBWUpMQWhISUNMMDN0QzV1T0tIY3NrTi81RnQ1ZExx?=
 =?utf-8?B?eUdYZXVNOGlYNmp2emN5c3RLZU9YTjFrU0VpV0I2US9sNHQ5SXJUeldadkRB?=
 =?utf-8?B?eEJZSHU3a1Y3aUlTRTFEUjFYV3dXT2RpNDFhbTc3aC95VDRqQW5yVUZsRjdp?=
 =?utf-8?B?VmtDUHlaV2F6N2JONDQvd0tlSkw2aUZOV05jc2txZTZsZ1FEUDZHZGRQVnpW?=
 =?utf-8?B?SXltVmxVcmV4Z1g4YW9weGxLdGhaQytZMW9Pb3hxNzdVN3BPUWxuOURSRExa?=
 =?utf-8?B?UHIvc2J0SERSL3lRd2tPZEd2OTNERzV4RDkzeFV0K3MyRkVtR2ZreDRtQmhB?=
 =?utf-8?B?STE3RmIyYW9sN1lIdUVKQUhGeHY0ejZhUkh5aUpWVjcwbXBTdlZlVnFCQUgz?=
 =?utf-8?B?TWFaZTNIRTNTSzVYTkNua1ByYkVKUkNrbXBIOFFyUkdjL2ZHeWExekc0WUE0?=
 =?utf-8?B?MjlWa1EvbVA0dVNDR1hMODNNMHI5aWpKUlh4Z0R0SDlHQmFGMUVGNDBsN2FU?=
 =?utf-8?B?WUdocWRXWk8xdTJnTzFTazlYeHRXQ09adGdvT3IxT1lvd1RwMnp3OGFabEJO?=
 =?utf-8?B?NnFJUlk3RE13dlM5TVVzOGRaZFN0cVhvMENLWjhaUnFGQUlRMHo4QXkrdXln?=
 =?utf-8?B?Q2xOVUpGa2c5RHk1ZGs0aGpGbUMyMEN1Qkx3YjNKdjdtekRxL0trZVgydGtS?=
 =?utf-8?B?UDNPUm9SV1hrcU5hVWUyeVRibjcxbXNLdXlKeVlhcVVqOUlvUDlRYnNXZ1FX?=
 =?utf-8?B?UUpkSEltQnF6a0hveGVBeWZkRk1LMXBVZytkSEF5ZlUzY3A0QlkxaTRna2dz?=
 =?utf-8?B?a2p0RW1BbkM0WEpoNjFGQUJrVlNVdXI2cjJmbVNuRnludldmcGdreURVeVdp?=
 =?utf-8?B?YlZtMC9Tc1lLRmpNR1EzdGE2ckhja2NONE03aDBRSXZyT01EQnNrRzdYclhC?=
 =?utf-8?Q?bB8+iWDikN4jkDO5BrgyVYULPq4cwo9T?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR03MB4600.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MUllS3YvNDZUUE00NUMwRUg2cWZWQk9CRWdDQlJUUkJUM0lydmt3LzZodDAr?=
 =?utf-8?B?ajNRYXozQmZqbml2Z0RRVGRzaXR5WEFEUS9VdEtUOEZmRVJ4VjdvY0RlS3gw?=
 =?utf-8?B?Tnovdi9NSVBGYzJKeHhWc3lWbmgwR0ZVZ1dEYXVZQ3RzdVFTTWhyS3dOV1NE?=
 =?utf-8?B?YnczR1RMZU9EUHArVU1sWkhvZTZyeVJRR1A1RkJIenRmL2QrTnpFeGRuQWJW?=
 =?utf-8?B?QXhDU1VKcityVkhoNUJnTzBjRmQxNkVIRC9CNUF1SkZhaER0Y24vcmNlaFpQ?=
 =?utf-8?B?OU9BNnZEaHFsQUVha083ait1UTRGbldUc2sxVmNZQVA4MFExTm8zcUJOaDk1?=
 =?utf-8?B?V3NEY0JXOFdUQzRERm1UM3N4L2xBZVU1NlNNQXdJT0VsNTREeThIMjBnWGFs?=
 =?utf-8?B?dDRueER2YXh4VHJtY2lYL2Uvb1JOMjhENkZHUHhnWHh2YWFJeTJyQkQwZS95?=
 =?utf-8?B?VkFpa0hTVG50ZUFSWDNIeU5XYm5HZzU0eVg1c2gwY1Q4MHRCSHZsbUpwYWpR?=
 =?utf-8?B?elY3ejlNZ0xoMlpVRGpObS9IcGZoUTVlcmxJRklDSmxBd2QzWmY1ZE9jd3Bm?=
 =?utf-8?B?TVFTV0xGcWRKemErRGx0VHkxN3BtYUFBbi9oUVl4cFhRV3JHSTVkOHEwYVRX?=
 =?utf-8?B?MXZOenlHQW1zOVdFcW1rczFkcG9aWlRQRGh0MThOWm9qbnJKWWlqdzF1c3Yv?=
 =?utf-8?B?WDdGS0Z4Y3N3Ynp5RE83V3FPMS9RVFVkZnFOMnIyRVBqRzdKeUd5OFRvYXNW?=
 =?utf-8?B?TDRvOXJkUmJaRGdjRWlKY09IMW5KOTUzdk92b0dkdUVLb0hwaXQ5emZnbW9p?=
 =?utf-8?B?TXIyU2J0Z1pmQjJ4L3VxZVdxKy9YQ3llTUNucmNiVmVOdjZyOHJ0eVJkVG9z?=
 =?utf-8?B?SG1UbFA0Tk1kNWREbFlqUkJIVC9zVUNNUUt2ampUeXhrRHFNQzZOMWJVbUdo?=
 =?utf-8?B?VFdROEpqZy8xZ0k1NTlOK3hPdjFGSGl0MU02UGJUMGQzMEFweWxDUFA1YjBW?=
 =?utf-8?B?UlNzMGJKVEpVWThDWVZoQk9oUVQ5NjVsVi9ET1IxWTdodm9rS1krby83Ukho?=
 =?utf-8?B?aE1ibC9qRnovZ2xJekxCV2ZENFltTDlLM2w5NU1IdVI3UXJDa1ZYQmFKdjU2?=
 =?utf-8?B?d1RSd2dlRkJqeFlqSzBvNmNYSlNmbHo5MjlaSXlmY1Y2dUFvelVUcUt6OWlU?=
 =?utf-8?B?T1FTdkVNdXZUbVNqM0kvMHdhc25JVGxwTXVubmZxNzY3U0drRllYeDc4dUtz?=
 =?utf-8?B?azFwNElOVVRoUWZ2VU1CakxURUIvT3R2M2lnMS96eHNhRWNtbWNyc2dkN0RQ?=
 =?utf-8?B?bDRWRUlHOVpMVjc4ZVFDVk1MTXFSZWg3cXViREErUngwdXFyVDNveFFvcVJH?=
 =?utf-8?B?STNXWWE5V3d3R1hFUHRtbnBSVFFNRnpESmdxcDJUQzRzblcxT0FpZ2ZxZDI1?=
 =?utf-8?B?UnFwWEhWRFA3YUw3QVhwYktMWkZ4Rjg3YUdZdmY0UjF2bnVJcEF2dU5QYlZj?=
 =?utf-8?B?MDJRR0hHcmdPVGw4WVl4VitMUk1RZGZkYTBOQ2lQY3MzR3prcUpPZlRvbjNm?=
 =?utf-8?B?b1ZraEFxNEpMZGRhVkt5bnlTdnJSR0ttb1QzWGxKOWVmQlZMSnVwS0g4dFZn?=
 =?utf-8?B?Z3JXUmZxMEUvT1RoVVArcHNyVHpabWNCRG10ZEdNSnlHSXR0cTZ0WmNLZ0pE?=
 =?utf-8?B?RS9RYnJLcWFYakE4NXlOQTNqMDM2VnU5d3dIdzhCb1o5OW1ueHoyanRVRElw?=
 =?utf-8?B?bU1TWkxhRUdxWld4eXZPYlRvTjZldm1Ob1lWVC9nN3AwdkJ1Y3lSYmpTbWlP?=
 =?utf-8?B?Q0hmVkg5NjVTb0ExdVpIcEloQlF2emRyRzNHTTYyZFRVRFpGYVZDWjBxQjlS?=
 =?utf-8?B?M0V4M2ZHWm1VeEdFQzdOV0NudE00V3o4ZTR2Unk5U2VYb0w1dnZJWlM3eFI0?=
 =?utf-8?B?U01xSzcza242aWxaVXNWbUpjM1h4SzhSdzd0TmduQ3dhd2lpWDBOVlFSMmgr?=
 =?utf-8?B?YTIzU28vbWZjUlZzQ2p6bldRQnU1anBCQlpCVXpuczJnczlnUy93dEI3YkJu?=
 =?utf-8?B?cFIvV0M5cS96dWZJTjhyWU4yblc5VjhaY2d5cFVVU25na3pPNWtDUTNhOEMx?=
 =?utf-8?B?bXh5WjFZK2FIcVJFNTNEaFZvZTFCWmtOWlpjcFh2Q3d2N0ZKS3FKMXVLaU9o?=
 =?utf-8?B?dHc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 50745a18-cc57-4af8-8adb-08de26a38aa7
X-MS-Exchange-CrossTenant-AuthSource: AM6PR03MB4600.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 13:08:18.1771
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: p5o9+RKIOmqcIF6wF8ZhpEk1WP1UJcml9O9/v+7sbpmfwwKj83U9o4cw5wMytyxGRbKaoksW6QcvZqPmAe3ZmLrpvgSngEEUj1FMMlMxlNY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB6878



On 17.11.25 18:43, Jan Beulich wrote:
> On 14.11.2025 15:01, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> Xen uses below pattern for raw_x_guest() functions:
>>
>> define raw_copy_to_guest(dst, src, len)        \
>>      (is_hvm_vcpu(current) ?                     \
>>       copy_to_user_hvm((dst), (src), (len)) :    \
>>       copy_to_guest_pv(dst, src, len))
>>
>> This pattern works depending on CONFIG_PV/CONFIG_HVM as:
>> - PV=y and HVM=y
>>    Proper guest access function is selected depending on domain type.
>> - PV=y and HVM=n
>>    Only PV domains are possible. is_hvm_domain/vcpu() will constify to "false"
>>    and compiler will optimize code and skip HVM specific part.
>> - PV=n and HVM=y
>>    Only HVM domains are possible. is_hvm_domain/vcpu() will not be constified.
>>    No PV specific code will be optimized by compiler.
>> - PV=n and HVM=n
>>    No guests should possible. The code will still follow PV path.
>>
>> Rework raw_x_guest() code to use static inline functions which account for
>> above PV/HVM possible configurations with main intention to optimize code
>> for (PV=n and HVM=y) case.
>>
>> For the case (PV=n and HVM=n) return "len" value indicating a failure (no
>> guests should be possible in this case, which means no access to guest
>> memory should ever happen).
>>
>> Finally move arch/x86/usercopy.c into arch/x86/pv/usercopy.c to use it only
>> with PV=y.
>>
>> The measured (bloat-o-meter) improvement for (PV=n and HVM=y) case is:
>>    add/remove: 3/8 grow/shrink: 3/89 up/down: 1018/-12087 (-11069)
>>    Total: Before=1937280, After=1926211, chg -0.57%
>>
>> [teddy.astie@vates.tech: Suggested to use static inline functions vs
>> macro combinations]
>> Suggested-by: Teddy Astie <teddy.astie@vates.tech>
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
> 
> I would guess that this R-b would have needed dropping, ...
> 
>> ---
>> changes in v4:
>> - move usercopy.c into arch/x86/pv/
>> - rework to always dynamically check for HVM vcpu(domain) by using is_hvm_vcpu()
>>    as requested by Jan Beulich
> 
> ... with at least the latter of these two changes.
> 
>> --- a/xen/arch/x86/pv/Makefile
>> +++ b/xen/arch/x86/pv/Makefile
>> @@ -14,6 +14,10 @@ obj-y += ro-page-fault.o
>>   obj-$(CONFIG_PV_SHIM) += shim.o
>>   obj-$(CONFIG_TRACEBUFFER) += trace.o
>>   obj-y += traps.o
>> +obj-$(CONFIG_PV) += usercopy.o
> 
> Just obj-y with the movement.
> 
> However, is the movement (and was the adding of $(CONFIG_PV) in the earlier
> version) actually correct? The file also produces copy_{from,to}_unsafe_ll(),
> which aren't PV-specific. This may be only a latent issue right now, as we
> have only a single use site of copy_from_unsafe(), but those functions need
> to remain available. (We may want to arrange for them to be removed when
> linking, as long as they're not referenced. But that's a separate topic.)

It is confusing that none of build cfg combinations have failed
(HVM=y PV=n, HVM=n PV=n) :(

copy_to_unsafe_ll()
- called from copy_to_unsafe()
- copy_to_unsafe() has no users (unreachable, MISRA 2.1?)

copy_from_unsafe_ll()
- called from copy_from_unsafe()
- copy_from_unsafe() called from one place do_invalid_op() with
   copy_from_unsafe(,, n = sizeof(bug_insn)).
   Due to __builtin_constant_p(n) check the copy_from_unsafe() call
   optimized by compiler to
   get_unsafe_size(*(uint16_t *)to, from, 2, UA_DROP, ret, 2);

as result copy_from_unsafe_ll() is unreachable also (?).

If those function are not subject to be removed, the
  usercopy.c can't be moved in "x86/pv", Right?

Making copy_{from,to}_unsafe_ll() available for !PV means
rewriting usercopy.c in some way, Right?

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 13:36:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 13:36:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164703.1491629 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLLsx-00057k-9x; Tue, 18 Nov 2025 13:36:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164703.1491629; Tue, 18 Nov 2025 13: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 1vLLsx-00056W-5b; Tue, 18 Nov 2025 13:36:43 +0000
Received: by outflank-mailman (input) for mailman id 1164703;
 Tue, 18 Nov 2025 13: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=0ey2=52=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vLLsv-0004PV-Q0
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 13:36:41 +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 9cc9271e-c483-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 14:36:39 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AM9PR03MB7217.eurprd03.prod.outlook.com
 (2603:10a6:20b:26d::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.21; Tue, 18 Nov
 2025 13:36:33 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%7]) with mapi id 15.20.9320.013; Tue, 18 Nov 2025
 13:36: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: 9cc9271e-c483-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WOlHA6XMDxKFhvyBH4YSvI2OIvdsiltn4k5bzRsiOan8ojX5PWlKWw0PPpzzJgShFvlwCAeOfREPCn/0Y5TtX6pWlPTzWOSIM7/nLT4bce/oBeXMjx/BB1Ow8BlHrsAeTrvU/Y6A81s1M3+twE7BsLSzJkP4C7GLSdgeGTVZzgUxhqrpvFLdgKGE+5LUfwgrGJCMmTex/2Gv0UTWW9+hC2m2kdDfdUQYRra9s4b/kn5YEdWSCFFHl5b7z0n+7OKBAf+LLP6+bQlwn0Imu8wlW5os7w4YVh1iIuqpgf0P+Ij/DmLnmcIYS41eSj4nYGZDGrkyemzeaaBg93vUsvHteQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/XEVTCh2kUTAALOQ+qR0XRxV/rN9vWfIGZCISaZjGHU=;
 b=HYoHkDv8D4nkSF+llzhuKIeeRKwR/b0d6wqADQvoGHYoto0trUyxtgLE1KW+seiu84B00lo5GziEsClTwju2gwyumjf5T1F2pIKmwCprKf6pXNGzFZuKFsj7oseF6uFuLeI1baBdgG3EYN4JHUfGG5PRKUo+aTqC5+uvzTjt0AWXNHQvj45XqxwLYEZzf9Jo5Z4sychXXAzCY3Kc9vRev7rcNXsfaD3h5p01OQuVM1rp8Or9to6yv8ha/m9eSOsH1ppNpYiRQlkoTqvHE/E1EkjxWjPjD2um6Lmuj2au1Op2U9ZBX4CGvpZz9o4rwiAuT2WEts/IYO3ZIznhjIBZIw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/XEVTCh2kUTAALOQ+qR0XRxV/rN9vWfIGZCISaZjGHU=;
 b=ImcXloApzr5K3uzA2nEg6Vynznz3DeF8yNkkphoNcCIMz+y4YJJKxqt8cxdtF1ryCcoVoNYWCZdiGm4oYpXVkxh50kuCuaOQWDoq8zh1Z/KJGMvr7g4el4As13HH/cJ4/TULXf2kS9yI/+hLChOyFj5u6JTaxYj3ni6T7QrCGpriusOZTtdpRHDXEXayxZU3MuY+RlFUvXiJdrfZd9vC8dK9Ylm+z0OoSSyE4P8JHCYk5+Emaahee+4e7tl2L86MpuCUPZe0ZBdYceCCZxf8hBu+TcEPJ4mXarIGKKBmCg07qmD3BHmPGMbaIZqX/anOukMKaMaHD9RNPIvz0aZvHw==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <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>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>
Subject: [PATCH v3 2/8] xen/dt: pass flags to callback in dt_for_each_range()
Thread-Topic: [PATCH v3 2/8] xen/dt: pass flags to callback in
 dt_for_each_range()
Thread-Index: AQHcWJBaNx96+qKbF0KY5H+PAaMMXw==
Date: Tue, 18 Nov 2025 13:36:33 +0000
Message-ID:
 <c96978ea8916d53ce9fb50846dc5c57165c8cbd0.1763462211.git.mykyta_poturai@epam.com>
References: <cover.1763462211.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1763462211.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_|AM9PR03MB7217:EE_
x-ms-office365-filtering-correlation-id: a6d76af0-2139-48e3-661d-08de26a77d26
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?IiziC9mSMMdw43XI5CGbgrB+SxxHyiR+gUci0nClpmnoEJVn3repv+0B59?=
 =?iso-8859-1?Q?lnw4iddSEmNdvlv+A0ET6q3NwfpGXrg9saVw/fvqyOKb1BSDxagYCX6rVA?=
 =?iso-8859-1?Q?MamzqOadj2ptQu/WtLRoiGVygNpyk0BRnOOXfP2kd7YLpmrpiIkaot1p1z?=
 =?iso-8859-1?Q?uZA4KGWhWv+1ksFkV+gD5hU6NVfKMsJ5O8wdJZkbZHxdwEwcTfU14x4SBU?=
 =?iso-8859-1?Q?5llpAXxym/rvLBwnW90hBQqi68aDBzooJuqiCydHYnFP3FiqqEvHvhdoRi?=
 =?iso-8859-1?Q?EcSAr562aNVloh8JRpt7VOn7PS4bIV7z5Ea1Mon8BcMR1HNhwFDuCAyS/1?=
 =?iso-8859-1?Q?cgZfmn4Prg0ZFP5eYmYXKS+51uvcP3735o23JyfMzni63tP1T7ds3i6vG7?=
 =?iso-8859-1?Q?VtPIhmZ2RV2Tyt4ndUd0MYmfd/X4fGGb7rJdMuFHdF29/n36u6D04O9Ai3?=
 =?iso-8859-1?Q?qkJy5Md/W9F9HV3dp5yiri5IWiFHsOnABedAcydS/yZUrCMl6m1uHT3SsU?=
 =?iso-8859-1?Q?dQtxlfZcosucgK8D+VTJ3WXiTKZFRd+p4G2h3TjKRiAHJgV5oFWBi64iEE?=
 =?iso-8859-1?Q?/ggWrH1diUOkWjJ3JGlP8KD04wRwfYrU0OR9lz/0l5gUipjBUCw/oc0wLp?=
 =?iso-8859-1?Q?Qnnq+6ko5f3oLMQDmtBcv4WidO5/IjCMdTlbrFdQNRTRmQXyvyOqAuyHEx?=
 =?iso-8859-1?Q?SdaPQtp7RH5yOqluHr9F916iDoAQHWgcOAFHNsJaw/zP6ipoHNHdmlJ36y?=
 =?iso-8859-1?Q?MaaHJ8fu2g3ynUrwJLiCY0pC4IXy0VljXK2eABMPmMG6vewYHlzJLSAbdJ?=
 =?iso-8859-1?Q?3zCa+ptK7h3EXE7I1qmMENMS5yIbdsmLDXGUYAvDF8dWkyOK+WC1Tm8zFC?=
 =?iso-8859-1?Q?4iXRmNQRNAFD4iIFE9PMYAo+YXyqo4IO81eU4Hw8ZdADUM/V71VPlKQwZ8?=
 =?iso-8859-1?Q?27VM71S74s9FZoEhVlL5+n5sFj80nRHtfGxWj8C4Z7rDNbEi3Mr6UVQQ7N?=
 =?iso-8859-1?Q?oy8gXlP4tGEMa2PAjNC0T4LOi+myyfZKh3Y/03Wcf4oiYoD3Y4V8bX/0ZR?=
 =?iso-8859-1?Q?kJe2+1QYib8bW4nEOHvZ0Bm4fK1DudqZWhlv+lFou7QjrVHwL50PgL4qU7?=
 =?iso-8859-1?Q?YcwvctQ37g2SByuHZGgp8an5AUs5XgZRWyLJXuWrXptRU04MImPsk6q1Ze?=
 =?iso-8859-1?Q?HsXVKk+BA7pby1aGgifFS43qn/EaiTUxEoDKnk41e7xYtG1Vm2JWnhz7FK?=
 =?iso-8859-1?Q?rEDxSGFbynNUEtYRXoJYDgeWCRgqBT4bf1NASX/pXGuY8Qetw4GGdzKzGE?=
 =?iso-8859-1?Q?u/RjI+mhkwaRAP0Ve3MoqzexdUFU/b/n0TrvLahDQEz61vM36HlD1T5UfG?=
 =?iso-8859-1?Q?jQPGZdGTKKL/JO5S2Ucsb6OR7NRl59Yh9xhwK/W70bzED26WcBaYhZn6io?=
 =?iso-8859-1?Q?aEyiXad2I45jXQrSTLSV9cMoyX6HAlkZG+94t0d/dby5fUQ1NpSKtUv4X6?=
 =?iso-8859-1?Q?v2DpaHeUnqe8p+R5wZvfYTLntq2fAX6fi1v3rWLD93siddmz7IZvLxezai?=
 =?iso-8859-1?Q?bpMqh6dMp3RZ5b97t1svYPSpghud?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?22xLloeC0C2GQlqh1N1kDnmniCv6obDH2H1or0+uTg6blzyo+D+5vFuZXK?=
 =?iso-8859-1?Q?EnzcpfUtKvJV5qvS8iaVpT9qEVlG6F7V2LtRb/HYkltBCntyA0TC7s9BkF?=
 =?iso-8859-1?Q?S+5o6tKlsdHqlXYlaXQyg+ZLvRyLCUpd9Fa6TPizvdTo7BAdWg90Zs76MN?=
 =?iso-8859-1?Q?JNjBTmb5YJEa8bbbY/4VtSYaP2Kx8IXkmo9+Y1V0XWu3u1bkvTu84hsfs3?=
 =?iso-8859-1?Q?EUTM7TDQpRKTlqqyBzzKU5ipdMNVG/1w6taLu0YNAr5W7PiQvwEri56e+4?=
 =?iso-8859-1?Q?ffWVxPrjLIxoU/XggL5Y1qbxtAbn5SZnzclnqVhVOGfnp5U0WGgMMhb56X?=
 =?iso-8859-1?Q?RqV/Kz7JMU5IeQ/EKywzfx2lHhAaO+Aywc/9fFIavDYTElfR5Y4ktERNzN?=
 =?iso-8859-1?Q?JBbAvH7JfPuMSyY+MITF4rho8OqvurjVD2H05PTjSZbPzDYat3/CeChwo/?=
 =?iso-8859-1?Q?dRR+vDb0LqbgaUx42QMXCslkKW2n2Obl5H4WF/+X9ej8EQLpeQAV9h4Iy3?=
 =?iso-8859-1?Q?IGUWYejVrS1khaAEMleeXoLIn9aAmOIXa4wM49hQpd2MdOPh0MOmMDSPuR?=
 =?iso-8859-1?Q?+3JPBU1GsLuHIH+Z3RBDZwUQZTcVyQnTSCNtU2Uyftw7+LwmloaR4ih6aV?=
 =?iso-8859-1?Q?vfcTo9ll/OzYX9VX9w3jHm0YwkHpz9e7HEjsxYx+26XETS34p3l7LL86OE?=
 =?iso-8859-1?Q?7xY8dMCg9KjpimlLJIYH4lipMyfcB+OTqxI3vP50F/j2sjowg3S7aVnoyY?=
 =?iso-8859-1?Q?eYcl4eF+mu95pm3GEQoqkc/GLIxUC4T15KaEmwPxPzbigieG1aSY9I2EDc?=
 =?iso-8859-1?Q?vBeXsIzSvnqi+mzETwg6IAOAye/Hrn24a+0U1kOLLQV8fZ20dH5qXI/sqm?=
 =?iso-8859-1?Q?NaK43WoTSyppEwz9ANcg02W+CLddR9KM4uu36uBkr/sivHtiNRuIgbtuW/?=
 =?iso-8859-1?Q?4Y1EwrKRjV2oxdEC18hLoZ6RzhNEkrt1JDT5wg0moKU+qqvt44X4W+hElU?=
 =?iso-8859-1?Q?tOT9LnOjVzUs/TBbQmlrxZ7EY6Va7No46u28ute5jyWc+kEvreKe/2Bk/Z?=
 =?iso-8859-1?Q?oZN7+uY0SOxz1t+EDCi70CIEBg2Gfm5lD+a2L4F2FiNsj19ZTRg+KP7a2n?=
 =?iso-8859-1?Q?vdl014ADVceicLWHl6BAPhiYAZDCkOYvpmch7sgkxslCkHuCrMLf8PDPVW?=
 =?iso-8859-1?Q?L9RDjaK/D+fwKJenjMHSNtImUZk4oeXf/U/cZVxfX9V6Xu6q1uXPdFSp+k?=
 =?iso-8859-1?Q?OetVzpKfpO9tIy9iv3QzSveWUUUOKEXamI8zQFl9HizRfdKoGbUVtL7rgi?=
 =?iso-8859-1?Q?+bFvCA2SZI7yBpiLcQqWSCSrhlCe4KhBLe3OSWcbqfTMJTelAhTOD6UbYL?=
 =?iso-8859-1?Q?eMAxnjMZgLeppZB2aecuWJ9oK8wtXPqx1pN4tLGnwzkaT2GINaiO9RQPZG?=
 =?iso-8859-1?Q?PG3ygBKtpclexY70qZDcNqmD4CSK/1afKygk8w+jeoHLREwTyc+if4IuFH?=
 =?iso-8859-1?Q?hGaQ3Bo6tPwtpgBdfUna2eJ6OYJOvOjPGU6s3L17vDSRkZI0NxDmD4eSJD?=
 =?iso-8859-1?Q?aaAAJW5RE5pXNqXy1NN3I61BqtuDRcayxs+hCbuHt+bdrhVZ76M/t9kCYs?=
 =?iso-8859-1?Q?vMMbQMd68W6szqmHgB+iR4VhVDvAlilVx9IEgyzqltdbPKlw/0V76dxQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a6d76af0-2139-48e3-661d-08de26a77d26
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2025 13:36:33.3744
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: NJyyDPKTVqwXJw//kEZkwBh168kguD/zQhqobTfs+ZFY1kgn7jNCwqrN0VBgR1yxHqv9AWnKNiNqCzUpFWboCg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7217

From: Stewart Hildebrand <stewart.hildebrand@amd.com>

PCI ranges have prefetchable / non-prefetchable flags that will be
needed in the callback. Pass the flags to the callback.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v2->v3:
* style fixes

v1->v2:
* no changes
---
 xen/arch/arm/device.c                | 4 ++--
 xen/arch/arm/domain_build.c          | 3 ++-
 xen/arch/arm/include/asm/setup.h     | 2 +-
 xen/arch/arm/pci/pci-host-common.c   | 4 ++--
 xen/common/device-tree/device-tree.c | 5 +++--
 xen/include/xen/device_tree.h        | 2 +-
 6 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/xen/arch/arm/device.c b/xen/arch/arm/device.c
index 74b54cad34..732c84e726 100644
--- a/xen/arch/arm/device.c
+++ b/xen/arch/arm/device.c
@@ -49,7 +49,7 @@ int map_irq_to_domain(struct domain *d, unsigned int irq,
     return 0;
 }
=20
-int map_range_to_domain(const struct dt_device_node *dev,
+int map_range_to_domain(const struct dt_device_node *dev, uint32_t flags,
                         uint64_t addr, uint64_t len, void *data)
 {
     struct map_range_data *mr_data =3D data;
@@ -325,7 +325,7 @@ int handle_device(struct domain *d, struct dt_device_no=
de *dev, p2m_type_t p2mt,
             return res;
         }
=20
-        res =3D map_range_to_domain(dev, addr, size, &mr_data);
+        res =3D map_range_to_domain(dev, 0, addr, size, &mr_data);
         if ( res )
             return res;
     }
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index fb8fbb1650..4bbffdf535 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -762,7 +762,8 @@ int __init add_ext_regions(unsigned long s_gfn, unsigne=
d long e_gfn,
 }
=20
 static int __init handle_pci_range(const struct dt_device_node *dev,
-                                   uint64_t addr, uint64_t len, void *data=
)
+                                   uint32_t flags, uint64_t addr, uint64_t=
 len,
+                                   void *data)
 {
     struct rangeset *mem_holes =3D data;
     paddr_t start, end;
diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/se=
tup.h
index 1eaf13bd66..97bc5f90a1 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -62,7 +62,7 @@ int map_device_irqs_to_domain(struct domain *d, struct dt=
_device_node *dev,
 int map_irq_to_domain(struct domain *d, unsigned int irq,
                       bool need_mapping, const char *devname);
=20
-int map_range_to_domain(const struct dt_device_node *dev,
+int map_range_to_domain(const struct dt_device_node *dev, uint32_t flags,
                         uint64_t addr, uint64_t len, void *data);
=20
 struct init_info
diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host=
-common.c
index d3481b05eb..46e7e3b707 100644
--- a/xen/arch/arm/pci/pci-host-common.c
+++ b/xen/arch/arm/pci/pci-host-common.c
@@ -418,7 +418,7 @@ int __init pci_host_bridge_mappings(struct domain *d)
                     bridge->child_ops->need_p2m_hwdom_mapping(d, bridge, a=
ddr);
             if ( need_mapping )
             {
-                err =3D map_range_to_domain(dev, addr, size, &mr_data);
+                err =3D map_range_to_domain(dev, 0, addr, size, &mr_data);
                 if ( err )
                     return err;
             }
@@ -433,7 +433,7 @@ int __init pci_host_bridge_mappings(struct domain *d)
  * to be page aligned. We should check for alignment but this is not the
  * right place for alignment check.
  */
-static int is_bar_valid(const struct dt_device_node *dev,
+static int is_bar_valid(const struct dt_device_node *dev, uint32_t flags,
                         uint64_t addr, uint64_t len, void *data)
 {
     struct pdev_bar_check *bar_data =3D data;
diff --git a/xen/common/device-tree/device-tree.c b/xen/common/device-tree/=
device-tree.c
index 0b5375f151..5ee1fa4eb1 100644
--- a/xen/common/device-tree/device-tree.c
+++ b/xen/common/device-tree/device-tree.c
@@ -976,7 +976,7 @@ int dt_device_get_paddr(const struct dt_device_node *de=
v, unsigned int index,
=20
 int dt_for_each_range(const struct dt_device_node *dev,
                       int (*cb)(const struct dt_device_node *dev,
-                                uint64_t addr, uint64_t length,
+                                uint32_t flags, uint64_t addr, uint64_t le=
ngth,
                                 void *data),
                       void *data)
 {
@@ -1041,13 +1041,14 @@ int dt_for_each_range(const struct dt_device_node *=
dev,
     {
         uint64_t a, s;
         int ret;
+        uint32_t flags =3D bus->get_flags(ranges);
=20
         memcpy(addr, ranges + na, 4 * pna);
=20
         a =3D __dt_translate_address(dev, addr, "ranges");
         s =3D dt_read_number(ranges + na + pna, ns);
=20
-        ret =3D cb(dev, a, s, data);
+        ret =3D cb(dev, flags, a, s, data);
         if ( ret )
         {
             dt_dprintk(" -> callback failed=3D%d\n", ret);
diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h
index 06d7643622..1091e34a10 100644
--- a/xen/include/xen/device_tree.h
+++ b/xen/include/xen/device_tree.h
@@ -667,7 +667,7 @@ int dt_for_each_irq_map(const struct dt_device_node *de=
v,
  */
 int dt_for_each_range(const struct dt_device_node *dev,
                       int (*cb)(const struct dt_device_node *dev,
-                                uint64_t addr, uint64_t length,
+                                uint32_t flags, uint64_t addr, uint64_t le=
ngth,
                                 void *data),
                       void *data);
=20
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 13:36:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 13:36:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164705.1491655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLLsz-0005lt-BA; Tue, 18 Nov 2025 13:36:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164705.1491655; Tue, 18 Nov 2025 13:36:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLLsz-0005lU-5Q; Tue, 18 Nov 2025 13:36:45 +0000
Received: by outflank-mailman (input) for mailman id 1164705;
 Tue, 18 Nov 2025 13:36: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=0ey2=52=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vLLsx-0004PV-QP
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 13:36:43 +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 9db4274b-c483-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 14:36:41 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AM9PR03MB7217.eurprd03.prod.outlook.com
 (2603:10a6:20b:26d::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.21; Tue, 18 Nov
 2025 13:36:34 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%7]) with mapi id 15.20.9320.013; Tue, 18 Nov 2025
 13:36: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: 9db4274b-c483-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Eie4zLhrAkOdIAk1eUdnJIzOmlattSEw10nMlBUtYKc2+8XKqze9TRUtnrOnFoBMiGBJZSCx7I0EB99j/iDYOHinZcf8OHCVOcpK0WxA2w6wzysKQJM3of6Fg8BUQTwjcabq7FIHOekmNdR7crQo6kR+y+RnbH+HgQbdr+ueOajZ3OcFUV7kWdZUAww/T9xFIxMyKOKVbKInbGJoXNkdLxB1fZ+VYWtysFGXrvfUvM3+5HDf9/4OyGHOkUSGHhLifuK8KRKHMt8wQ7jhBcxISOhvezXxBDsKTsSt9dGNqTdQZM8vS9mXpzEApXxeV+mu8ztFMXD8Qmyy4bATQbEZHw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=d3gUrZvavUMAU8h5VSMZBDp0633KA1vXEfAJbZw9Jiw=;
 b=EBYDNCPG3AXzybmXTXOWfOTX0ObrBcqXWB7xVXDRI+UZ1jYKar/45sCofxaY+1mqwTVTT1uN5Zh1z2XH1b31xYLm4JQnzkuW7UPzBd9F8lkss0E9UyyZ90bXRHCoUhFalYHp/tn1p7ZKq8JqkZRLuEuZLrEYeBJOlfGPwX9nbZ0bjKaZStbZk+gc+Ux7cQ+XWcdKYLpe5XcdlH7kahvD/qmSsbJ8XMqw0dAs2ypIW1lnzfbj7mek/e9TGSHp4iifCPMgWj+0/uesGldTCLrlVFYVTK3G3Q8jqGb8OcWKsOLN0lFH27EEVDIpFxtIEI8LL9BUzlMLlFqz7vJx2krLsg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=d3gUrZvavUMAU8h5VSMZBDp0633KA1vXEfAJbZw9Jiw=;
 b=IAekcQqfIZDoWZNpk6/N58dJ6MM+gwEfQ3flRYA2Wb07WvZCidT+D50bVAjT3i64UYI3n+q4kOWNVW/qSefZPY68StNsAAQo4q8lDzw+QafBxpg5WX1p8bTJ4yoMFrlAmbNWGuQ3tW+LCXDLp/s/UOm+NjJmzjDmH8kt4j8CqxkCDik0NKwCYrpHrTSJ7asGEIS6Moa8Hi+Qwd/eUkWJ1Jixf8O/7dcK4NCFiu8uNstvrFKalQaazyGPkxyJM0yqyA9sC2vGmpFgbShijPj0/aPOI9OeRcryFitwW1yCmYAzN9a9SqRPyXxahSq9OSYmavzura4scYWKYQMNjjPjmw==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v3 5/8] arm/pci: Mark pci_host_common_probe as init
Thread-Topic: [PATCH v3 5/8] arm/pci: Mark pci_host_common_probe as init
Thread-Index: AQHcWJBbQ2jIUgN/N0aOfhp6b7S6kA==
Date: Tue, 18 Nov 2025 13:36:34 +0000
Message-ID:
 <fbee017c9eb8317bcff7cc309c8ccc8305021ac7.1763462211.git.mykyta_poturai@epam.com>
References: <cover.1763462211.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1763462211.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_|AM9PR03MB7217:EE_
x-ms-office365-filtering-correlation-id: 2d89d1dd-2a2b-423e-4097-08de26a77dfb
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:
 =?iso-8859-1?Q?+NzbDBxNv2zGlnj4ZHGvFR+CPe97rZ3hMui3rB1AaOGNTnvLVmn013FKZU?=
 =?iso-8859-1?Q?B9Z4oFb/6O7KsdzQtRIk+ct4hTyJPZwSR8OxRxN96g1xLsqQYxYuckuViO?=
 =?iso-8859-1?Q?tEvVhSDVj8PtRgDn0/LtDPg3TcwgqBq7xFSV8KpZYpEdU8iRzgq9NcA2yU?=
 =?iso-8859-1?Q?TZ4Uib1+1L8TgX2x7VDJxAqM8ycV4IAaNQMaN8oxTBACRKAqft6qviB3AL?=
 =?iso-8859-1?Q?73o0fnTYh5gySuZzrfT0ti9nd7nn2/n/7GRXT/AIACTTo1nwJPgP8Ut8NH?=
 =?iso-8859-1?Q?VivwNylCSEb11JAhlGRBllB2MnU06FHo1MBbTcG7fn8sC67rsCDxiAUZJZ?=
 =?iso-8859-1?Q?yZhYy/VOaJjY3QpwTx1jJxTkACbVlAjmJXpTsNvRCty9qHRF9IbUr0Q1Q/?=
 =?iso-8859-1?Q?bVMfoFYLakkqW8KNSn90iVDI+/BgePSrNtyiCK65X/KMj6OOI11O869kBu?=
 =?iso-8859-1?Q?ALoreYoUWu9rkRGR8ufGsnODpgL27XciVtDMRyoqog1S1IokEDT39NOiN8?=
 =?iso-8859-1?Q?lMr0jZTijSCL2UTKlRr2f/lYSsiD0xEiYyp+3UYyL24NJ8MRcpDcv66Ssj?=
 =?iso-8859-1?Q?AJQ+jthaRYmkAFxMKxiTHI8BZuovIfEKu0LiXatpVLgFisOTn1XWqmDoCi?=
 =?iso-8859-1?Q?+gaZ4wUnP898IFu5OFNzMnkVMWbrtSTHceXnu11pOHOs5KnXd4NdFzLAkh?=
 =?iso-8859-1?Q?SDQIJi+SZ8Blz98iqXHY3HAZh9PZLXJV4AZKezxs0Bqy6EjHiTGMW5kBsR?=
 =?iso-8859-1?Q?Pc38ltz2Cjt+BaeeQ8j4mR7C+N2chmqrJp21Z4UH3LLbCrklVUEaT7k4oo?=
 =?iso-8859-1?Q?+xGW0vXObn2ufLRFjWBNGVOP6cJdLOK5drZTYpeHwTn5M0pSvzzyj5aPSY?=
 =?iso-8859-1?Q?T6KWkJ3BLyyYR6cBn+qAnqauGog/07cqPTg4hmpAb2i4XAMxWjvEh8mEmS?=
 =?iso-8859-1?Q?fWbdsV78O0zpm2P4AvrXTGP78JkJ5mFR+cgmfO8nXV+m5o1wInH+itYn9x?=
 =?iso-8859-1?Q?gQ6qW9r8UvvM7fRQ1sAUvRq2n0vOM0JBXdLvkKMshfR0k+RxSVG5wC+C0e?=
 =?iso-8859-1?Q?qzng89OXxxYLCb67b6czQQnYZK5QtD4fRIjyL6lK1TIYJLx2SfOSqYNZIX?=
 =?iso-8859-1?Q?lRZfvsLNbXG62Sadmq+7bUziLXBXEyf60EMuvx0eAr7d8vzdx11s0eZE8d?=
 =?iso-8859-1?Q?XKclhYaUmVsGEElKWbsook6RMsqGYSVCEPfLCcopK8NHLKYDrH3zJAcL0T?=
 =?iso-8859-1?Q?3b6Cy7p2ZEhiT1Omw1kWlNmD9VqRfdif7v9o8QqDpi5FkB+swfUYNG2Wwv?=
 =?iso-8859-1?Q?+HNIg8ChEROQ+r8BP3/0JfdSBg3RiU0VO4pUfZ2ZbVy41ltWLXYRkfzwjp?=
 =?iso-8859-1?Q?3A7icrJtk/sCxpjaRPbcVC2cpfV99QxpSyho4JalzG+ijzxygAWWTROTIL?=
 =?iso-8859-1?Q?q652AlRIIFX6bVMTxwyh6N3+MU818xf5kYkCmi6MZmRTBMUQmWz4rLoDR4?=
 =?iso-8859-1?Q?L5LuFTyebd3sL7E0hHgV4JHJpXtSUDdeJNszwD91IlqBl3HnMF//J5RN1I?=
 =?iso-8859-1?Q?51GZqoiFvAxd8QG4oBBrAMFM5GcD?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?G2fMD2WEbWmxTTJQnm9wJ2rCHlxFwRlor1laHmuF77xo8FGQsv/emRiZu6?=
 =?iso-8859-1?Q?4G49YmTEqXEkAYL+/SLCg04giEZiKhaM+rJQwcjJo3jcFqFY9Vf4zW12ny?=
 =?iso-8859-1?Q?OYtfNtcBrSKGwXPfBra+PJwNaWLvEN6Us9RJ3sO3+VgV8niD5+9r1o1Vo8?=
 =?iso-8859-1?Q?Xl/l1eAU7iWuxEaC5rObkfRhz8ghe+/HaL32e7JAbydYnaA6Xy9znWlmjA?=
 =?iso-8859-1?Q?tzsZqNmblyZf2IVQgQXG2+MaWTXAdexud+/DYEIQqabmajBkzX3oBX5EwV?=
 =?iso-8859-1?Q?tKOb9l8n8wOp+iF2qEpsjgG9+y3ZEWAO5pDHwfWcVq/Etqz91DS0JOH/oi?=
 =?iso-8859-1?Q?5tjDGchKF/jfDRMUMLBr9XUbEfpp4oNiw5PYyg4sUUYltEkB5TrVOgq6xi?=
 =?iso-8859-1?Q?CONMrSwu/nCcSN4wjYk9N9I1MGyppOg+Dz9Ku4ffGtB1ozrYL/koZU6nRZ?=
 =?iso-8859-1?Q?Q/jgX/RCekxhHkuLKAJcxBmf6l/yKLipQ6lbWcLgIHrtq9y4KFSrGzSQk2?=
 =?iso-8859-1?Q?QVezshN1bxvIdjEq1ANZIxfUHb4EFrB1KGVUPU0BJuazce+/mCr/L/RuU9?=
 =?iso-8859-1?Q?0AX5c/pbhW6KFnS1l5heo6Ik9YSWg9ECl/kfUjXJ2g3zb9eawpYE6vb2OD?=
 =?iso-8859-1?Q?Jk4ISFKMV+sK9QjnWu5u0WjWoAzrExBn/vuNe14UD8UoVdlf563isScr8t?=
 =?iso-8859-1?Q?3Ho6/2UkxsZAZ3Wru37GXgbMABvj2BjPZiOvmxxTUTLqlzD4RH6egPVZSL?=
 =?iso-8859-1?Q?jBR4/bmNEuVb779Lx5x/Tyc/VC4VaQZM8zOOtM4wnb0nA1ZonuS+jbT8LS?=
 =?iso-8859-1?Q?X7J/BKSYn2AL3EXfTuaMqZUZ5/SfrRq/nZahi26bBNYa6NhjS/Jxf5O5ll?=
 =?iso-8859-1?Q?32EtOERKEQguG0nV9WB52S/WpsHuYs2l2AP3Wo7Ic1L9XWlfM+zc4080hF?=
 =?iso-8859-1?Q?/5HS66hwhTxamwZdPeE5khLzJpkXsFVuDtmk/GEnkcPo99Gr/tdY0n0fhF?=
 =?iso-8859-1?Q?L1mMdUvSqj3vCDAKMoc723PMAtdjK+B6UklRLNCAH7r+mtyIWF+CDqMH4q?=
 =?iso-8859-1?Q?FXHQdLkhmbwBC5UBWS//LlpJyKFmz27GcqwoEeJDt2/meyqmi4+4hxIH29?=
 =?iso-8859-1?Q?aAMfrNHT768FkM4nriED6swgHtN9GVUz+RDKbIoS7YvN4Hr3Hm8Pb7/V9x?=
 =?iso-8859-1?Q?vkS3yF1wm1v/VbjqpqDvjuileGIcSCXIo0jzTybLN8wsW7PYEoCNjhgcMc?=
 =?iso-8859-1?Q?jSmrKzhdvV+DkYUataTQ818w1BQeb9X/Q7Q/C/V//B9VpCL4OsgBU6MMdT?=
 =?iso-8859-1?Q?VP3Ls84TVov/apBj4G4u91IUVHHV3svfUGMeDaneiEUl+pzAq5KQDEYSAa?=
 =?iso-8859-1?Q?wkPTJ4peB4qKdfNNhZsmlZQuZrBrCl/KwFRB4A6u23/Hv4jMmEVS3xLluI?=
 =?iso-8859-1?Q?MDAX8/IFd9TlWfUJA9FUTQa57Q6fiaLAOd74F9eQkcrxS2YXE0uVWBVNb/?=
 =?iso-8859-1?Q?ieHhpVnMsS+fmAy5eu5f8Gcy6TU7wHyEuQHWZWWXF4BPXA+V6VB8BR9h66?=
 =?iso-8859-1?Q?ViAtTtW++NMwz6dZMy0SpKg0i3R9bNVb8Vndg4Xb29g8+9x4Zg5ZiVfb63?=
 =?iso-8859-1?Q?6D6BkgEIx9eH9qAV8oHt4uMZK7KLOG07hdbYY8g0nFCSvXcnHUoHgsbg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2d89d1dd-2a2b-423e-4097-08de26a77dfb
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2025 13:36:34.7912
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: PRhkZhm/EF4hsEjXepal5bicSRyAALransVPn+Is0JLDa+u2hHbv2iuFrOlvvhqVUNNAcbtpHWGpcL/6a7El7g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7217

pci_host_common_probe is only ever called from init context so mark it
as such.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v2->v3:
* patch introduced
---
 xen/arch/arm/pci/pci-host-common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host=
-common.c
index 46e7e3b707..de30fb0aec 100644
--- a/xen/arch/arm/pci/pci-host-common.c
+++ b/xen/arch/arm/pci/pci-host-common.c
@@ -232,7 +232,7 @@ static int pci_bus_find_domain_nr(struct dt_device_node=
 *dev)
     return domain;
 }
=20
-struct pci_host_bridge *
+struct pci_host_bridge * __init
 pci_host_common_probe(struct dt_device_node *dev,
                       const struct pci_ecam_ops *ops,
                       const struct pci_ecam_ops *child_ops)
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 13:36:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 13:36:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164704.1491636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLLsx-0005Eo-QS; Tue, 18 Nov 2025 13:36:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164704.1491636; Tue, 18 Nov 2025 13: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 1vLLsx-0005CU-Hz; Tue, 18 Nov 2025 13:36:43 +0000
Received: by outflank-mailman (input) for mailman id 1164704;
 Tue, 18 Nov 2025 13:36: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=0ey2=52=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vLLsw-0004PV-Q5
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 13:36:42 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d7312fd-c483-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 14:36:41 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PAXPR03MB7650.eurprd03.prod.outlook.com
 (2603:10a6:102:1de::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.18; Tue, 18 Nov
 2025 13:36:35 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%7]) with mapi id 15.20.9320.013; Tue, 18 Nov 2025
 13:36: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: 9d7312fd-c483-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tf1c8OM1No0joyhFwQJj3LuuI3FSHXtmeC1NQ8OcqGOgQa9fi447qmPwrHx3CZQ/X3r9I4La4v9FB7N+uCRHwD8BY0KSo/S6Xp1yKMLdPaGOL9N067e7DpBb8zRu6c/qAa72yhE+9NKXnzehd9TLEQxiFh1L5D1dT+EY27N5XW90Ro9KCvosFmWlFeW62vVzhOMD/+Htwavnj5faXHp5Y1uEv09NHokhVEqncRo2pfCobOFdmQETk4ATaS4qiquiD+k1TsFmwYa/J1bKd2QPJ/60+ckDow+Nc29e/ez9rE7ys1/Nw5DTnTNWcZiK9Uqqeb2j4QsHJq1oqhrnMjRu8A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LKOEHIAYRgOWqREfBlgF+TaCvomfVedYKECxzp2okn8=;
 b=raNVKwALER6IT1DtIsgYLNq1J1qWPA1j1rmuPuPRiBni2EFd0JQZjXnnxGSY5++TypiA/YDBr38KeEi8NVBcB9kGl/g4uiemT39IxCYx3IkrSKcHN5vdr9cyKzcQdpO6KkNwPQfzoWthW2NHc/K+bCarmY/7h0ZERC+6wf+/ax36+pNAOt8seoTLndCHL6tE6pN4QV8WcxnRlwANKH+9SZhcl7UucbXzzI8+Tl0zAOEW7zKtXK/CG13/aHO8vPY54S8b25/YO4L+z/mCeH0Jo6JLGl6YuWf3STEkl8j8KT94Ao9yaLv0zC1ycPiOVQ+CIh+JXgGLlrieknFEXaBCiQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LKOEHIAYRgOWqREfBlgF+TaCvomfVedYKECxzp2okn8=;
 b=qLSxp1k612g7PrxRYBBKJaPqBO0Y8ydxcySuMPBLMObo5RTNT/V5c1k2eh8P6bnZs6tmHnqN6ivLIGjz37B+Yi8AoqM6Kwauw5mrWYLreaUIgGnAit4qu3bQYsMORt6MDrfj45DMJmLovh+Kg1PKqsaxZCSF8R3hjEB9RYxFErnSBQoPzUAGsMUctXS9f9pDe5HX+kM/YGIKEIeKLKSeIZlaD0x/1GYc4MH5sp5NIo2H/WwlvC7oR1fgEcziGNa/upWjjyQ3xZVsFatsNJyUreUVGTbRo3Kk+GYqPYDKE1efVE2hzLurU3DPhic0WYEnqkMVZWRTKQBjtUSAeNNCNg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Luca Fancellu <luca.fancellu@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>
Subject: [PATCH v3 7/8] xen/pci: assign discovered devices to hwdom
Thread-Topic: [PATCH v3 7/8] xen/pci: assign discovered devices to hwdom
Thread-Index: AQHcWJBc5bz51R8u20uOZBtSz+TqyQ==
Date: Tue, 18 Nov 2025 13:36:35 +0000
Message-ID:
 <af67b9cbc1dff78440afdd15ebe1856fbebe98e1.1763462211.git.mykyta_poturai@epam.com>
References: <cover.1763462211.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1763462211.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_|PAXPR03MB7650:EE_
x-ms-office365-filtering-correlation-id: d8f28b43-ed6e-49e8-437a-08de26a77e9a
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?CU8jgtdrPDXy6v6kUN9fgdmOO/0mTB7yHkka5N7qQDo89Qs6xTyjEnJwvD?=
 =?iso-8859-1?Q?5cOj9CvqNbDD/z9FV5IC7/XjZZqMFSP3iGfHxGzbe2b1yRuXVx11PyUB/I?=
 =?iso-8859-1?Q?krY/ePpL1mr2RPJo+pIoArDTOqkQdw1DkdqQRU/Gv62ypDfZf6AG5hfBYi?=
 =?iso-8859-1?Q?jIOF24zdGzdcLSU8vPX5/EaNO9MLat/ct14T1xleX+vx/6Y1wti4eMufDh?=
 =?iso-8859-1?Q?JuIV2KXHFrce4vac/pC9GU5VxCDCMcRqvW8VdL8Do+9UpBoQUa/xWtZxkz?=
 =?iso-8859-1?Q?m4Vk6FkLfrAd6LGehNV4dWg16tkydjgWmWhEgjcGxHru9hAZN+9dCzDSEw?=
 =?iso-8859-1?Q?Z+tvGbPHlQB0brIQ7u1DIw5QY00cwPtg/NispbuawP/oPo9kYnYu65tTVa?=
 =?iso-8859-1?Q?/XE7OBaCM8MYzfeZUBxP8YKP8d7QWe0jObcXvz8vTrMnlec0oK41HpYigt?=
 =?iso-8859-1?Q?mASCVDYGYXNSguuu/DbU1mBAQcEor8+ZJsDZgeeu1rvc8pJ92I44QGIKiq?=
 =?iso-8859-1?Q?L7mHcYnjESFMntiCY5AYkC4HtrO46Vtk1QNf5OjU+qyCTmYc5lxR5B944P?=
 =?iso-8859-1?Q?xyKEztkKAvDMlVzGwsD2LuLCtOXls/39yYLFpRowtttZ7fAB0JxLmjozdV?=
 =?iso-8859-1?Q?O4SMB+K6+DTq0MLtQW+C5gaPrSgQ2KWro4S6aJu0SDfGoxqkgWKdkvC1wn?=
 =?iso-8859-1?Q?NKpFGagL7hAw+3ymUJ5KQIoThqSd3iJmFK1Xb5A59UWYvo7kfcUzEM/46N?=
 =?iso-8859-1?Q?F6Vk1xdI3nzsluoblTfgj6ENZ83d41XPnCNjIpRD8pNkrsL0T1flcT+8r2?=
 =?iso-8859-1?Q?jkRe7Z4aDf4Vzkrkgzek0NgDncHMUxeyRcUwN0Qo9KatDBttMyiGJKajRc?=
 =?iso-8859-1?Q?0qStuKjxyF2eg6Dh2uP7A0kCwQ4G+9FNDF8zQSSDjtQwCeEVso6yJPUuyE?=
 =?iso-8859-1?Q?W5MOJn9JOiAOxVLFKLO2pXq8ll8Mc+uADpvKT+jgHjQyuWdhM9bBof81oC?=
 =?iso-8859-1?Q?vVC8wBPCGuvKRDtTsbnqJ3JKmnKuAEqFFecsCWSOyhMZoCweR53PCPqQzx?=
 =?iso-8859-1?Q?NgIDjtDZjko1HUkfJKpQV+I0gFmVMleF5q11fYgf+nQTqey9EAXIl3Am7N?=
 =?iso-8859-1?Q?vQfKkJioo3mu3eEP5h48cxcEFvUw8mgUkEamXlnPrgZTyNx1oTNBHfZPaz?=
 =?iso-8859-1?Q?K4/Psxb0xzkqhPapwTi/W8KHPeCMVFa3NA4FJW2puXCGKggD045K2Vbji/?=
 =?iso-8859-1?Q?9WeYzCJ2vvBnMZ5zM9x6o8Wt/AsmjXrr6ix/uF3bCmkmv/mAoDSsE9uRm4?=
 =?iso-8859-1?Q?96v6vO+tCeHkr1l2SCOCHWxEvA2PVnz3l/jqkHHud9IxE0adobRmp32dyi?=
 =?iso-8859-1?Q?32b9i+GrcbE+XZnqy+aQA+3NiIfY6tzrmZW7gkOXbEzsrLJwKtx+LoBVn4?=
 =?iso-8859-1?Q?Nujd+QLNWZMBA51JuMpZCfuBYNgYXRKE2HGrux4c3LYJVWz0vpw7WXrcf3?=
 =?iso-8859-1?Q?J12D/VeeqHRj0F7fTsD7HRDYyvOMZ+/e6Ris4/h8p8ND+NFhY5bRNYVnog?=
 =?iso-8859-1?Q?lT5hrrEjzV77UV+5THjhzeV8pxxZ?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?8qcQvoGBqkC9ck3r/qH0AlyElqc1ys4asYoheJpDytDEcRxjQ+UorfDRW2?=
 =?iso-8859-1?Q?zo2WYYUIX7fOHQcILRQDm0g0zrxEMD5QpBNv/Xf4mzS3mPjphXK/zwv0qZ?=
 =?iso-8859-1?Q?OOOX8p7YOd0NO8aeCDY+sDjqAWMrPcJxz0VGbFVZDhwdcTnocbJ0UWuyU1?=
 =?iso-8859-1?Q?eVXKfgUH01ia10Z3PBtgGLNRZaWkj9diBHQzUaMUuMr/f9tcuiIa3vavGb?=
 =?iso-8859-1?Q?4QNOUuvFdWD62z/XwedqfLSwY1kJlWV3M+dj3YU294d4uALktRjJYB0R/F?=
 =?iso-8859-1?Q?FV43aCTgAAabVleB2HXHw1MVQ16dI6LPRGXL23+jfWdtHXDe/htwgC2UsA?=
 =?iso-8859-1?Q?Oj7lCUCowHx0rwU1cnGFXpBlo6L6RBU7bm9xs2HxKuzcjC4AbBqB1O9edD?=
 =?iso-8859-1?Q?gHO4wwszocMlH4kr/6G8WRTncFMs52Ije+6+xrti/Q05DS54i27AVyXJQE?=
 =?iso-8859-1?Q?p53kqUZf381PGPq0BKxLcWK/eJEiPj8uIiQfYCjHf5T/8NLs5S2WPrT2iZ?=
 =?iso-8859-1?Q?SMCFY4sKNs2gLKOWcIUv3P9mBkYZlG5hwYGLP9DVTBzbto68dFEEgqxbQ+?=
 =?iso-8859-1?Q?IiBa7fRy7DyGw8ycavBFujO1cvnA0KAkoFqDsJm/8cWNjNdHn6C4+pJCni?=
 =?iso-8859-1?Q?kbFlHTNyKw5Ske1bsw8YeKozsOWYDSaAqooWCvpXVHOXQ3mpPDfvNOap9E?=
 =?iso-8859-1?Q?bQJwiRTNrdbHV5wkNAzO/aQg7mjl74MyxSg1P7puEOFtZVrNI8tioyOa/H?=
 =?iso-8859-1?Q?1THsH/2y3cSZ6RhB6H5v4TaCrnqWCnH8TIVxSLE5DsrJWEW5PXXnQP/H4l?=
 =?iso-8859-1?Q?QAcmhWXobM948EmkbGg+PFV0Nqp6IafTg2Bv+Jo9JTdMBVnffv5C0kEJho?=
 =?iso-8859-1?Q?J+QBrZHPGNaLKTeQkR9EUGRG/ky8o580l5x5zxceynZLCg4504f44md1+A?=
 =?iso-8859-1?Q?nImmANliH+0tvRGFB2Y/UjMsVfS9bGWVkMs+JgY43hEnUjBKMO2ckpUnuk?=
 =?iso-8859-1?Q?vEUI5kTrQUtXinyZ9ftzpYjvceNacdDBtMPWBONA7jOXL/Lk7rq1htUiVQ?=
 =?iso-8859-1?Q?QL9hU3TFDXOsr+H7AeJj1p8CzqIZLiB+I2SDZ4br9Y5b1FpkF0+gC729e6?=
 =?iso-8859-1?Q?Y8EqIfvV+rYk5o7yO0O3jcEVhWoeX65ZbyrRszQb2OVeeNTjUyBehhI0oO?=
 =?iso-8859-1?Q?cs9RCl6ctEf1MOi7uc4J4VReLemdRGvwL5D2JxhKCtF86Y4NDKwwJtzkPq?=
 =?iso-8859-1?Q?yr3zvr87KZJgErw1WwdG5wKNPOlkuDDmPtmdfR68A90HPpLUzbLgfjG/yO?=
 =?iso-8859-1?Q?DwowPyuZSiST1VFN1e6263BlmZgSGY3J1QF8FrFRWqGn4ZDFxXoGkswUyj?=
 =?iso-8859-1?Q?kBBR9nUsbhYFF9Vapul2zp1/HmRt1nu5QMnygejtOo9DI6AYS+qb8ZUG11?=
 =?iso-8859-1?Q?wttt4bboVcGMvstoS8mS78pbNNroDHA2yZ0PuVcVPU0T+Fjo1vSI9rxjY8?=
 =?iso-8859-1?Q?o1JmqkT3+Px5e/zvskL4I9zwvKKf0hPCsVzS1Q8Qrt2voZYYcHttYcpEK5?=
 =?iso-8859-1?Q?6KF++7sbMrVzvXUZA+By53qjNQ2LKBTgDdnwI2OVbmJJtv5N1D+khPBUHc?=
 =?iso-8859-1?Q?SVCcCQjnZR+B7e9a1VsKLV8g/UG86dZ/3PEJ5HqAxGiVgjHAPhAdMRcw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d8f28b43-ed6e-49e8-437a-08de26a77e9a
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2025 13:36:35.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: Q/UYv7Nbe19fceVfoBCjacGCWf9bLVX+8NOrSsO2X7LubjCUkzLTM6FXJig95JkzZQ9iW4snmoSjdsGUtsW/kw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB7650

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

Hook up existing PCI setup routines for hwdom into Arm iommu
initialization sequence, only assign endpoint devices.

During scanned PCI device assignment, also permit access to the BAR
ranges if hwdom is using vpci and hide host bridges from domains that
use the fully emulated one.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v2->v3:
* style fixes
* rework iomem access configuration

v1->v2:
* add host bridge hiding
* fix build without CONFIG_HAS_PCI
---
 xen/arch/arm/pci/pci-host-common.c  | 11 +++++++++++
 xen/drivers/passthrough/arm/iommu.c | 15 +++++++++++++++
 xen/drivers/passthrough/pci.c       | 11 +++++++++++
 3 files changed, 37 insertions(+)

diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host=
-common.c
index 28c26af9eb..110c334f59 100644
--- a/xen/arch/arm/pci/pci-host-common.c
+++ b/xen/arch/arm/pci/pci-host-common.c
@@ -430,6 +430,17 @@ int __init pci_host_bridge_mappings(struct domain *d)
         unsigned int i;
         bool need_mapping;
=20
+        /*
+         * Only allow iomem access to ranges if we use pci-scan
+         * Actual mappings will be handled by VPCI code.
+         */
+        if ( has_vpci_bridge(d) )
+        {
+            mr_data.skip_mapping =3D true;
+            dt_for_each_range(dev, map_range_to_domain, &mr_data);
+            continue;
+        }
+
         for ( i =3D 0; i < dt_number_of_address(dev); i++ )
         {
             paddr_t addr, size;
diff --git a/xen/drivers/passthrough/arm/iommu.c b/xen/drivers/passthrough/=
arm/iommu.c
index 100545e23f..124a99f198 100644
--- a/xen/drivers/passthrough/arm/iommu.c
+++ b/xen/drivers/passthrough/arm/iommu.c
@@ -19,6 +19,7 @@
 #include <xen/device_tree.h>
 #include <xen/iommu.h>
 #include <xen/lib.h>
+#include <xen/sched.h>
=20
 #include <asm/device.h>
=20
@@ -133,6 +134,16 @@ void arch_iommu_domain_destroy(struct domain *d)
 {
 }
=20
+#ifdef CONFIG_HAS_PCI
+static int __hwdom_init iommu_add_hwdom_pci_device(u8 devfn,
+                                                   struct pci_dev *pdev)
+{
+    const struct domain_iommu *hd =3D dom_iommu(hardware_domain);
+
+    return iommu_call(hd->platform_ops, add_device, devfn, pci_to_dev(pdev=
));
+}
+#endif
+
 void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
 {
     /* Set to false options not supported on ARM. */
@@ -142,6 +153,10 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain =
*d)
     if ( iommu_hwdom_reserved =3D=3D 1 )
         printk(XENLOG_WARNING "map-reserved dom0-iommu option is not suppo=
rted on ARM\n");
     iommu_hwdom_reserved =3D 0;
+
+#ifdef CONFIG_HAS_PCI
+    setup_hwdom_pci_devices(d, iommu_add_hwdom_pci_device);
+#endif
 }
=20
 /*
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 52c22fa50c..70c21403d5 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -20,6 +20,7 @@
 #include <xen/pci_ids.h>
 #include <xen/list.h>
 #include <xen/prefetch.h>
+#include <xen/iocap.h>
 #include <xen/iommu.h>
 #include <xen/irq.h>
 #include <xen/param.h>
@@ -1041,6 +1042,12 @@ enum pdev_type pdev_type(u16 seg, u8 bus, u8 devfn)
     return pos ? DEV_TYPE_PCIe_ENDPOINT : DEV_TYPE_PCI;
 }
=20
+static bool __hwdom_init pdev_is_endpoint(const struct pci_dev *pdev)
+{
+    enum pdev_type type =3D pdev_type(pdev->seg, pdev->bus, pdev->devfn);
+    return type =3D=3D DEV_TYPE_PCIe_ENDPOINT || type =3D=3D DEV_TYPE_PCI;
+}
+
 /*
  * find the upstream PCIe-to-PCI/PCIX bridge or PCI legacy bridge
  * return 0: the device is integrated PCI device or PCIe
@@ -1221,6 +1228,10 @@ static int __hwdom_init cf_check _setup_hwdom_pci_de=
vices(
             if ( !pdev )
                 continue;
=20
+            /* Hide real bridges from HWdom when it's using the emulated o=
ne */
+            if ( has_vpci_bridge(hardware_domain) && !pdev_is_endpoint(pde=
v) )
+                pci_hide_device(pdev->seg, pdev->bus, pdev->devfn);
+
             if ( !pdev->domain )
             {
                 pdev->domain =3D ctxt->d;
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 13:36:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 13:36:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164700.1491600 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLLsu-0004Sj-GT; Tue, 18 Nov 2025 13:36:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164700.1491600; Tue, 18 Nov 2025 13:36: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 1vLLsu-0004S8-C4; Tue, 18 Nov 2025 13:36:40 +0000
Received: by outflank-mailman (input) for mailman id 1164700;
 Tue, 18 Nov 2025 13:36:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0ey2=52=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vLLst-0004PV-CQ
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 13:36:39 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9b5feae2-c483-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 14:36:37 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PAXPR03MB7650.eurprd03.prod.outlook.com
 (2603:10a6:102:1de::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.18; Tue, 18 Nov
 2025 13:36:33 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%7]) with mapi id 15.20.9320.013; Tue, 18 Nov 2025
 13:36: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: 9b5feae2-c483-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FymBHOQ5qqRyn4hne7vE/T9D6noxTf2bSZwhHrEj345SS5IFvu3/PTnN9MlNONOoWPBj8I+50wJzzC7K5xJmrGPDgI8solUGnIEpWPkiMaTjhC2qSisv2nqh+7tCoALu2hVtk9GoyE0QdtoyrgdbOaKIwjcP7brjulf801K0K5zfS3o4isUcg49U2y/g1DN+al9pYXBD+pIhNDPdvaccI1v4NcYxLnLwx0jXH/RHwj2gwxljsYMVUu5nsiE9Qa/fynQ0uz3MOZNm3m6eBzLfypvW54nzOEB/wFtn3pdWSE4FwkK28devawJxNRwIFcgRI9hxrIuR+V8OzY7scL9dVw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hTGuoCs2WHO4MzRcHi6p/mnMsry/Pk1E1urssND/pzw=;
 b=xIYXcSFU4Q9s5zJ0j1z7VkfOKFfAF5hPGrFe+/vojLFDVcpjGfFrPTsew0P+8iZmpNTRPWX+OiGwrWLvpJbZOkgPZTpm3DKwEk1klKT2C4vsjxgrAyy+a67QNPoEkGhfbvzHJWoP1dEmlFF8huOr96hpkxfdZDCIrnYyB0hIdWWUrw0qi5VcwDqTV9Q43sucxtOSzyxVX1EycfpbQZqQGGCRtUrfheWi5TiS6EweOVtzcmIKPIbIN3hK7Hmg1T7jk2IGrIh1iIIGrvvhdy7FvqmmKrXs7LJEXxriL+468W83lXSE+2BDwElBUYoSzyjKCNOksubwTu9HlH5LHd1w1A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hTGuoCs2WHO4MzRcHi6p/mnMsry/Pk1E1urssND/pzw=;
 b=Vq9Z6QthU0mIWIOFHnuoff3lbPQYuEAeXhGNsMOLiJpcziK+KbiBSeLX8rPRb0wNzTydJb+2CgYj/puO3QzW/kZWLCm1VnLmTgjF4GyOA5CTH0Gm/qtWxN8mBMblZyQfsG0lyekeIvtgo2x2YNFxoJIU34NUQfjPNLddT1+uPBSsdNkSRAFRuUQQ0NLdZOFQKfpkA0tvJ/4p0nhTI1IUHTdA7X8NhQlwd+kN1nER+tZHFW/mNtopIgf97szbyrvNQrtIcswJYOrKIZoyCOSCexzvqbxLscqciI3neGSZu/gAdfN71dquQIK5zHGsrPqzT4nNZQvrUKJ/mWlzs+82xA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <stefano.stabellini@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>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Mykyta Poturai <Mykyta_Poturai@epam.com>
Subject: [PATCH v3 3/8] xen/vpci: introduce has_vpci_bridge
Thread-Topic: [PATCH v3 3/8] xen/vpci: introduce has_vpci_bridge
Thread-Index: AQHcWJBaPhgfVTH0K0SSYJwd1HNNWw==
Date: Tue, 18 Nov 2025 13:36:33 +0000
Message-ID:
 <207b6aef763d12426385efb925beeebbbb56f6b3.1763462211.git.mykyta_poturai@epam.com>
References: <cover.1763462211.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1763462211.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_|PAXPR03MB7650:EE_
x-ms-office365-filtering-correlation-id: 854ced44-1825-49f9-8720-08de26a77d60
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?r66zxSukQZ67c8+d9nWDC9YLF8bwV3aaThXUCimBJMXIB9qqA/HKCpv+Ri?=
 =?iso-8859-1?Q?jt0/D/l4nC42KaftAcsDq5j6Jp+jVPTfr5KvJ43YfAuEyYUizq8XcuqCCM?=
 =?iso-8859-1?Q?l73Hpjmsp9i1Mw/AuMMpQs+DAGBeXdJO7RWsFmhcYZMeQhcJ3PkoHJWkbE?=
 =?iso-8859-1?Q?ZtUmDnim/u7qMy93vMdzm5dCZVjxwUCbEm+erNIVWbT+Grhg5wDGriZlwE?=
 =?iso-8859-1?Q?Xxv4AMwaih6CG27SHF9bUnJonTt8tuSzlYj8vC4urQ0i96KEQZXcwXojB7?=
 =?iso-8859-1?Q?f/RQ0DHz73l/FR6vyvda1v8xhk4HPl4a770OwH+4NerFyek64m5pzgq1uz?=
 =?iso-8859-1?Q?R/YXtju16LhiU3VIk28jCQZSW2szZA8s8W8lRITiJyI+R4I79rCtnhz9l0?=
 =?iso-8859-1?Q?h/Ugv1fSjgt7DRKtzzgu7N4W5sE0m0JKmBBQCMfsOqnZ7f+KsCZN0K94+X?=
 =?iso-8859-1?Q?pP9zkZ2HxefenCu+OC9pLorEa/c/B4Z1gCbFTgZ+WfkfDxKmHWmKl0knOl?=
 =?iso-8859-1?Q?U1a06whBikH9oQUNIm9A9t6wAXosjKlMVsDQz3L1cTIZyAQ4lGX0tUBPSJ?=
 =?iso-8859-1?Q?yRcHiPCBJAR4Sf75pitq3CtHYzF0/qtmOJUXSQhn5sra4TUZUV1Y4rbHvV?=
 =?iso-8859-1?Q?UVTUPbCVW92VQbhxzQeyQ2xfs7m5l/EMzi025DKH+Ba+G2kHjfJeM4Us8V?=
 =?iso-8859-1?Q?e5jLoWPB17gExBsSlVvXc8Q3m8nhnPGOVpuoEJZXtEYAduzrPQOCAc8HHs?=
 =?iso-8859-1?Q?8mr0odyhbdAwKKXRgKshMW/vBphenzCpoHWhlzhDLCkB01+wOWu4cWB+2z?=
 =?iso-8859-1?Q?hZGvzS9ytN18AfqW8HUU2rpsoQQSU7xy1kl/zEQr1cfGs1qNDnXFDbyWGG?=
 =?iso-8859-1?Q?S/ufST2tbyxpJGAHhhlFhE9kBf/ejELOlvcMyEz3TL2aEcErlHqxzWbUgT?=
 =?iso-8859-1?Q?3kJPDixRTCmsbjmkLYhgJdxxegqG+MF7AGBUZ5bU9rAN12de/s2rK5QMb+?=
 =?iso-8859-1?Q?Mvhe+O+2MXf1YLRMWNnxaFpvtUQCTYV7gtxRKwvB4jnPbjFcZbdek0LkVq?=
 =?iso-8859-1?Q?Qi0U31DcwSo8Wa6IveFxLymlbHr1lKBaeEZbI3idCGTdZgV56cRdVRtBLa?=
 =?iso-8859-1?Q?+6S2rN+9RWDIIXwtefUjOaTn3gYi5fcbnnjZ2qSokYafibZG1uxWH07Mtw?=
 =?iso-8859-1?Q?o1/k7Wy1mwSGAQ8UH7EmSSV1FA8wkLW/tMNl3KRNmUcZ5kpH71m9IciaZy?=
 =?iso-8859-1?Q?8E+A+u+g+8mfFuNbAW6z9kcnu3pobdv2t9uCVf7ZxpU7N04k8OFdyqOCQS?=
 =?iso-8859-1?Q?xVdX1zUUWYwUdzksd+jONdUFYsLfI8lWlcwax9Ai/d/G/wY6DAgQ50uyP5?=
 =?iso-8859-1?Q?rwnNYkmQFzoiue2vK4QZQKwWDV32YyTQFdlPMMnKpbzTaKiJKAII8LDM6L?=
 =?iso-8859-1?Q?gSg40ANG36tJQhRWqbe7BDKoM06N1XJM8N/7r52Vdh0Vj2zWFIDq2H7H0F?=
 =?iso-8859-1?Q?/fwW6x9aSbO1tLW0fURWYgUYy8WJuA4vlcWbIhViROMkOXFoH2rdzcX76c?=
 =?iso-8859-1?Q?Qg3OqbQYtQyfhb1O2FVAimykC4rC?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?i65KbYz14aKuLLV2Tp9bhg7Gwx9tJEA7aEeUUeXppFKFAdeyP3iQkf/LRT?=
 =?iso-8859-1?Q?hZKxD1BXlxBizdDU3MTSq7Z68xJuBawdQjKIhiYM/frw1h3iPV6lTMTCpg?=
 =?iso-8859-1?Q?JBsVbgAA3zJ4T5dlMqCJzN84DRkWzYOMCHjCVEmOeYTTX6Bk0Qmo71o7n/?=
 =?iso-8859-1?Q?RjyC0gzl0KqL4yJrVRL59wFmG1XGnKhgYQsdYOxVG5emMYaBduJJSLb7eV?=
 =?iso-8859-1?Q?6FBHnrEUp5/yZXhwfGGze4pNELkVHwawNpg+ubuXD/wZXoQ3ZKEa45EcaN?=
 =?iso-8859-1?Q?OaQDsA2EjUROwBIawmyKmLtB9la8gawwp2koj/2jpsK9e62tq9Qf3TXTE9?=
 =?iso-8859-1?Q?GY/lXIfms1Muc5KDML1mljKBG2AND4i7vuJ9M79k/r8rbWNFliEaPiXKhD?=
 =?iso-8859-1?Q?sKwxohX3qHgd8vZ7lNVn9h0qrdh23f5GMsis84QTn1ZyjnPKeeDvgHKffZ?=
 =?iso-8859-1?Q?uaZseBTIX35A6Rz5E2UKpg4gqsXEdN0X+Vmazis3tXgpFr3mfn0dZMGe04?=
 =?iso-8859-1?Q?3LUSZ2u1nHiNNyu8mUGMHaNfY2Av7W3+k5bDWkC+AowvvBHq7GVjC4ZbS0?=
 =?iso-8859-1?Q?WRe5OfjHLZPMCQOVC4HAOvl7VogsfmFS9crvDA3Mp0s16cA4acZaeHrYFA?=
 =?iso-8859-1?Q?tj2JdInk8nU/hL8lJ5p4bBpS1UaQQBw0FfOnohKi0hXgs+ezjtytkzsuVm?=
 =?iso-8859-1?Q?mUdxg+2mkWGYU/m38qatDvdP7ab5TkNPeqgrmj1XODreeMt/MgjVKeVc5G?=
 =?iso-8859-1?Q?k9uQwdpBCNKlfpkaQndSiob/blsndZ2nhR1rxpxgLhwKbjPxw9bRy7oUlH?=
 =?iso-8859-1?Q?1lbUvSG7Kvvi+WQp8Z6t2Tq/CTUMEyOcfHDNQkfvXnQRcw/bjbDv0ovRZB?=
 =?iso-8859-1?Q?NU3F5Zhr/jSPo07Xz84PhiIiLnWBe1E/h8o6mFt814TSj3hW18pn/YWsS9?=
 =?iso-8859-1?Q?imw4dzuwcK/O7kjlK1YIuxbbSLu1FGbBTILaWotQPORdzUVpXRHkezS0gq?=
 =?iso-8859-1?Q?tJpL7UfVDGD32VCcP9oi5bEQy5oNx377SS8G/CjYCKVvUVubB0Markqqrf?=
 =?iso-8859-1?Q?7yF0Yb10xri0eAOdxeekMG72dCSX/WZP/gUWL16Alp3viFSyzJAgntXfEG?=
 =?iso-8859-1?Q?Z0xE4uLLE4luvyrb/pqcWBIL9/A9uqfo/LMGFTMwv8YIHix9WeMmvWF7Jx?=
 =?iso-8859-1?Q?pzbkuG33aiPyef4hveMdbHOGH9LYajWjxI7hUUBcC7fv3rhL+UjM0PbHLj?=
 =?iso-8859-1?Q?eyQxCWVYZPOOwdc7j7YQISHauevot9pkiGdbj94tY6ZpydaBOLend3wQKY?=
 =?iso-8859-1?Q?cQctGA5jeIXndRgFZeDB5XL/voDCJySGEBuV7CE1ugHJEJGR264d4lwDai?=
 =?iso-8859-1?Q?ypGv1prO8w91K2yK+SYJku/6fhAHOk9L91oz3DADiySatTrEJxxR+Hal9V?=
 =?iso-8859-1?Q?p498WCZ0a27l2HJAi7n9afrXrOUbEETUJta7n7RkABbx5EOtgbm3EQsS+V?=
 =?iso-8859-1?Q?KlfQ8k8ppOaGzExOHeqnRNTjaroBMJgUxWQxjxktNlb9PbRSeAhUrwmZLB?=
 =?iso-8859-1?Q?HVfBB59nVS3M0l7cdezTLzDsjZM/0vKu6WAGOiJgT9g6co9lLVfZPP40K1?=
 =?iso-8859-1?Q?6Laobx1sC2IdBDQIFdYmswaHO9jl/meA+gHCK8JcGNvhu71YldZ17rjQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 854ced44-1825-49f9-8720-08de26a77d60
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2025 13:36:33.7994
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: TUszDvzFAlQQbsu/YTbekjpVBrHu+Q86XXZQ5K3sq3CNtWt0lRQzrCDF49NzaRXkE/euuAmPy1NNrmBaMzml/Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB7650

From: Stefano Stabellini <stefano.stabellini@amd.com>

With Dom0 now being able to use a virtual bridge we need a way to
distinguish Dom0 using HW bridghe from Dom0 using virtual bridge.
Introduce a new macro has_vpci_bridge that would determine if a domain
should be treated as using HW bridge (only Dom0 with pci-scan disabled)
or as using a virtual one (all DomUs and Dom0 with pci-scan enabled)

Use the macro in drivers/vpci.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v2->v3:
* s/is_hwdom/is_hw_bridge/

v1->v2:
* simplify definition
---
 xen/arch/arm/include/asm/pci.h |  1 +
 xen/arch/arm/pci/pci.c         |  2 +-
 xen/drivers/vpci/header.c      | 74 +++++++++++++++++-----------------
 xen/drivers/vpci/vpci.c        |  4 +-
 xen/include/xen/vpci.h         |  8 ++++
 5 files changed, 50 insertions(+), 39 deletions(-)

diff --git a/xen/arch/arm/include/asm/pci.h b/xen/arch/arm/include/asm/pci.=
h
index 0680b2f50c..7289f7688b 100644
--- a/xen/arch/arm/include/asm/pci.h
+++ b/xen/arch/arm/include/asm/pci.h
@@ -23,6 +23,7 @@
 #define pci_to_dev(pcidev) (&(pcidev)->arch.dev)
=20
 extern bool pci_passthrough_enabled;
+extern bool pci_scan_enabled;
=20
 struct rangeset;
=20
diff --git a/xen/arch/arm/pci/pci.c b/xen/arch/arm/pci/pci.c
index 49ee003c5e..951639eb3f 100644
--- a/xen/arch/arm/pci/pci.c
+++ b/xen/arch/arm/pci/pci.c
@@ -92,7 +92,7 @@ bool __read_mostly pci_passthrough_enabled;
 boolean_param("pci-passthrough", pci_passthrough_enabled);
=20
 /* By default pci scan is disabled. */
-static __ro_after_init bool pci_scan_enabled;
+__ro_after_init bool pci_scan_enabled;
 boolean_param("pci-scan", pci_scan_enabled);
=20
 static int __init pci_init(void)
diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 469f497744..528e8b660b 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -230,7 +230,7 @@ bool vpci_process_pending(struct vcpu *v)
=20
             read_unlock(&v->domain->pci_lock);
=20
-            if ( !is_hardware_domain(v->domain) )
+            if ( has_vpci_bridge(v->domain) )
                 domain_crash(v->domain);
=20
             return false;
@@ -492,7 +492,7 @@ static int modify_bars(const struct pci_dev *pdev, uint=
16_t cmd, bool rom_only)
             }
         }
=20
-        if ( !is_hardware_domain(d) )
+        if ( has_vpci_bridge(d) )
             break;
=20
         d =3D dom_xen;
@@ -522,7 +522,7 @@ static void cf_check cmd_write(
 {
     struct vpci_header *header =3D data;
=20
-    if ( !is_hardware_domain(pdev->domain) )
+    if ( has_vpci_bridge(pdev->domain) )
     {
         const struct vpci *vpci =3D pdev->vpci;
=20
@@ -564,7 +564,7 @@ static void cf_check bar_write(
     struct vpci_bar *bar =3D data;
     bool hi =3D false;
=20
-    ASSERT(is_hardware_domain(pdev->domain));
+    ASSERT(!has_vpci_bridge(pdev->domain));
=20
     if ( bar->type =3D=3D VPCI_BAR_MEM64_HI )
     {
@@ -747,7 +747,7 @@ static int vpci_init_capability_list(struct pci_dev *pd=
ev)
 {
     int rc;
     bool mask_cap_list =3D false;
-    bool is_hwdom =3D is_hardware_domain(pdev->domain);
+    bool is_hw_bridge =3D !has_vpci_bridge(pdev->domain);
=20
     if ( pci_conf_read16(pdev->sbdf, PCI_STATUS) & PCI_STATUS_CAP_LIST )
     {
@@ -758,17 +758,17 @@ static int vpci_init_capability_list(struct pci_dev *=
pdev)
             PCI_CAP_ID_MSIX,
         };
         /*
-         * For dom0, we should expose all capabilities instead of a fixed
+         * For hw bridge, we should expose all capabilities instead of a f=
ixed
          * 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 =3D is_hwdom ? 0 : ARRAY_SIZE(supported_caps)=
;
+        const unsigned int n =3D is_hw_bridge ? 0 : ARRAY_SIZE(supported_c=
aps);
=20
         next =3D pci_find_next_cap_ttl(pdev->sbdf, PCI_CAPABILITY_LIST,
                                      supported_caps, n, &ttl);
=20
         rc =3D vpci_add_register(pdev->vpci, vpci_read_val,
-                               is_hwdom ? vpci_hw_write8 : NULL,
+                               is_hw_bridge ? vpci_hw_write8 : NULL,
                                PCI_CAPABILITY_LIST, 1,
                                (void *)(uintptr_t)next);
         if ( rc )
@@ -776,7 +776,7 @@ static int vpci_init_capability_list(struct pci_dev *pd=
ev)
=20
         next &=3D ~3;
=20
-        if ( !next && !is_hwdom )
+        if ( !next && !is_hw_bridge )
             /*
              * If we don't have any supported capabilities to expose to th=
e
              * guest, mask the PCI_STATUS_CAP_LIST bit in the status
@@ -792,7 +792,7 @@ static int vpci_init_capability_list(struct pci_dev *pd=
ev)
                                          pos + PCI_CAP_LIST_NEXT,
                                          supported_caps, n, &ttl);
=20
-            if ( !is_hwdom )
+            if ( !is_hw_bridge )
             {
                 rc =3D vpci_add_register(pdev->vpci, vpci_hw_read8, NULL,
                                        pos + PCI_CAP_LIST_ID, 1, NULL);
@@ -801,7 +801,7 @@ static int vpci_init_capability_list(struct pci_dev *pd=
ev)
             }
=20
             rc =3D vpci_add_register(pdev->vpci, vpci_read_val,
-                                   is_hwdom ? vpci_hw_write8 : NULL,
+                                   is_hw_bridge ? vpci_hw_write8 : NULL,
                                    pos + PCI_CAP_LIST_NEXT, 1,
                                    (void *)(uintptr_t)next);
             if ( rc )
@@ -811,8 +811,8 @@ static int vpci_init_capability_list(struct pci_dev *pd=
ev)
         }
     }
=20
-    /* Return early for the hw domain, no masking of PCI_STATUS. */
-    if ( is_hwdom )
+    /* Return early for the hw bridge, no masking of PCI_STATUS. */
+    if ( is_hw_bridge )
         return 0;
=20
     /* Utilize rsvdp_mask to hide PCI_STATUS_CAP_LIST from the guest. */
@@ -829,7 +829,7 @@ static int vpci_init_ext_capability_list(const struct p=
ci_dev *pdev)
 {
     unsigned int pos =3D PCI_CFG_SPACE_SIZE;
=20
-    if ( !is_hardware_domain(pdev->domain) )
+    if ( has_vpci_bridge(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);
@@ -866,7 +866,7 @@ int vpci_init_header(struct pci_dev *pdev)
     struct vpci_header *header =3D &pdev->vpci->header;
     struct vpci_bar *bars =3D header->bars;
     int rc;
-    bool is_hwdom =3D is_hardware_domain(pdev->domain);
+    bool is_hw_bridge =3D !has_vpci_bridge(pdev->domain);
=20
     ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));
=20
@@ -893,15 +893,15 @@ int vpci_init_header(struct pci_dev *pdev)
      * PCI_COMMAND_PARITY, PCI_COMMAND_SERR, and PCI_COMMAND_FAST_BACK.
      */
     rc =3D vpci_add_register_mask(pdev->vpci,
-                                is_hwdom ? vpci_hw_read16 : guest_cmd_read=
,
+                                is_hw_bridge ? vpci_hw_read16 : guest_cmd_=
read,
                                 cmd_write, PCI_COMMAND, 2, header, 0, 0,
-                                is_hwdom ? 0
-                                         : PCI_COMMAND_RSVDP_MASK |
-                                           PCI_COMMAND_IO |
-                                           PCI_COMMAND_PARITY |
-                                           PCI_COMMAND_WAIT |
-                                           PCI_COMMAND_SERR |
-                                           PCI_COMMAND_FAST_BACK,
+                                is_hw_bridge ? 0
+                                             : PCI_COMMAND_RSVDP_MASK |
+                                               PCI_COMMAND_IO |
+                                               PCI_COMMAND_PARITY |
+                                               PCI_COMMAND_WAIT |
+                                               PCI_COMMAND_SERR |
+                                               PCI_COMMAND_FAST_BACK,
                                 0);
     if ( rc )
         return rc;
@@ -925,7 +925,7 @@ int vpci_init_header(struct pci_dev *pdev)
      * start with memory decoding disabled, and modify_bars() will not be =
called
      * at the end of this function.
      */
-    if ( !is_hwdom )
+    if ( !is_hw_bridge )
         cmd &=3D ~(PCI_COMMAND_VGA_PALETTE | PCI_COMMAND_INVALIDATE |
                  PCI_COMMAND_SPECIAL | PCI_COMMAND_MASTER | PCI_COMMAND_ME=
MORY |
                  PCI_COMMAND_IO);
@@ -933,7 +933,7 @@ int vpci_init_header(struct pci_dev *pdev)
     header->guest_cmd =3D cmd;
=20
     /* Disable memory decoding before sizing. */
-    if ( !is_hwdom || (cmd & PCI_COMMAND_MEMORY) )
+    if ( !is_hw_bridge || (cmd & PCI_COMMAND_MEMORY) )
         pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd & ~PCI_COMMAND_MEMOR=
Y);
=20
     for ( i =3D 0; i < num_bars; i++ )
@@ -945,9 +945,10 @@ int vpci_init_header(struct pci_dev *pdev)
         {
             bars[i].type =3D VPCI_BAR_MEM64_HI;
             rc =3D vpci_add_register(pdev->vpci,
-                                   is_hwdom ? vpci_hw_read32
-                                            : guest_mem_bar_read,
-                                   is_hwdom ? bar_write : guest_mem_bar_wr=
ite,
+                                   is_hw_bridge ? vpci_hw_read32
+                                                : guest_mem_bar_read,
+                                   is_hw_bridge ? bar_write
+                                                : guest_mem_bar_write,
                                    reg, 4, &bars[i]);
             if ( rc )
                 goto fail;
@@ -959,7 +960,7 @@ int vpci_init_header(struct pci_dev *pdev)
         if ( (val & PCI_BASE_ADDRESS_SPACE) =3D=3D PCI_BASE_ADDRESS_SPACE_=
IO )
         {
             bars[i].type =3D VPCI_BAR_IO;
-            if ( !IS_ENABLED(CONFIG_X86) && !is_hwdom )
+            if ( !IS_ENABLED(CONFIG_X86) && !is_hw_bridge )
             {
                 rc =3D vpci_add_register(pdev->vpci, vpci_read_val, NULL,
                                        reg, 4, (void *)0);
@@ -988,7 +989,7 @@ int vpci_init_header(struct pci_dev *pdev)
         {
             bars[i].type =3D VPCI_BAR_EMPTY;
=20
-            if ( !is_hwdom )
+            if ( !is_hw_bridge )
             {
                 rc =3D vpci_add_register(pdev->vpci, vpci_read_val, NULL,
                                        reg, 4, (void *)0);
@@ -1005,17 +1006,18 @@ int vpci_init_header(struct pci_dev *pdev)
         bars[i].prefetchable =3D val & PCI_BASE_ADDRESS_MEM_PREFETCH;
=20
         rc =3D vpci_add_register(pdev->vpci,
-                               is_hwdom ? vpci_hw_read32 : guest_mem_bar_r=
ead,
-                               is_hwdom ? bar_write : guest_mem_bar_write,
+                               is_hw_bridge ? vpci_hw_read32
+                                            : guest_mem_bar_read,
+                               is_hw_bridge ? bar_write : guest_mem_bar_wr=
ite,
                                reg, 4, &bars[i]);
         if ( rc )
             goto fail;
     }
=20
     /* Check expansion ROM. */
-    rc =3D is_hwdom ? pci_size_mem_bar(pdev->sbdf, rom_reg, &addr, &size,
-                                     PCI_BAR_ROM)
-                  : 0;
+    rc =3D is_hw_bridge ? pci_size_mem_bar(pdev->sbdf, rom_reg, &addr, &si=
ze,
+                                         PCI_BAR_ROM)
+                      : 0;
     if ( rc > 0 && size )
     {
         struct vpci_bar *rom =3D &header->bars[num_bars];
@@ -1038,7 +1040,7 @@ int vpci_init_header(struct pci_dev *pdev)
                 goto fail;
         }
     }
-    else if ( !is_hwdom )
+    else if ( !is_hw_bridge )
     {
         /* TODO: Check expansion ROM, we do not handle ROM for guests for =
now */
         header->bars[num_bars].type =3D VPCI_BAR_EMPTY;
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 07c7071d0a..8ea89b9805 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -48,7 +48,7 @@ static int assign_virtual_sbdf(struct pci_dev *pdev)
=20
     ASSERT(rw_is_write_locked(&pdev->domain->pci_lock));
=20
-    if ( is_hardware_domain(d) )
+    if ( !has_vpci_bridge(d) )
         return 0;
=20
     /*
@@ -429,7 +429,7 @@ static const struct pci_dev *translate_virtual_device(c=
onst struct domain *d,
 #ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
     const struct pci_dev *pdev;
=20
-    ASSERT(!is_hardware_domain(d));
+    ASSERT(has_vpci_bridge(d));
     ASSERT(rw_is_locked(&d->pci_lock));
=20
     for_each_pdev ( d, pdev )
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 9ae75d946a..d4695cb353 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -339,6 +339,14 @@ static inline int __must_check vpci_reset_device(struc=
t pci_dev *pdev)
     return vpci_assign_device(pdev);
 }
=20
+#ifdef CONFIG_ARM
+#include <asm/pci.h>
+
+#define has_vpci_bridge(d) (!is_hardware_domain(d) || pci_scan_enabled)
+#else
+#define has_vpci_bridge(d) (!is_hardware_domain(d))
+#endif
+
 #endif
=20
 /*
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 13:36:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 13:36:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164707.1491675 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLLt3-0006N3-3k; Tue, 18 Nov 2025 13:36:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164707.1491675; Tue, 18 Nov 2025 13: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 1vLLt2-0006Mp-VS; Tue, 18 Nov 2025 13:36:48 +0000
Received: by outflank-mailman (input) for mailman id 1164707;
 Tue, 18 Nov 2025 13:36: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=0ey2=52=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vLLt1-0004PV-Cc
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 13:36:47 +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 a05f0900-c483-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 14:36:45 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AM9PR03MB7217.eurprd03.prod.outlook.com
 (2603:10a6:20b:26d::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.21; Tue, 18 Nov
 2025 13:36:36 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%7]) with mapi id 15.20.9320.013; Tue, 18 Nov 2025
 13:36: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: a05f0900-c483-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=W2bzKBtmeF64AUTos2yyfOpFsVYE7kE5n3/jf+ak0Di8PYvPF4Rwiloo+B0BQwaNuYDDnjhpvS0H0ZMXLeBJaD53J1fwP9OX4K72XxQ0cqquPijI0/sSTEf48JjwKzrRHAe/2a4j4io1lCTVd84ofyo9dRcS+xbemF+O4WUMPEwJ/CqI/0X/291zdVaNpHOVF07Mbmi8gcQhoRh+XBV0+hXtLkpW6xwaVzb+q8/XzWjjsaL/zQRG182xrwo0XzQEufZZB/0dx+qD02J6vTgmzFR+wn0QrEVjXMYl2kx5YkTKNSZW7vUXqO3QH6lW9SdweBacTq5ZNYu98OFVsFazfw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=71+mXVMCcGmDzHT41p1W9p55Yh86fh2s7rzxAEHrAJw=;
 b=N0ucQZzDJguJKalspgqma/G91se0Zdq3RC1H8AA2Ym741M4m+gHDuQ8LXEY0i/Cblre9jCgVSkNI/P8kUJW3zn6pQeYbmF/InWL06Gy61KYH2YS2eiE2tmzVqIBe3PsA6YY2nl8VqPk9YlxszGhTSbntcys1MY8P/0KJejMpPMRbVb7+Tn5Mpi9Yvzxd40IMLIX1hA4jMMu5xISNaGUGgi71vCEA/fGWSAYzCKT0N8gEsfEUwKlfbRDN3VB4wXox5saPZEA5OlqVGbR9AGKuRW+p3w1Vgq3R0IlJWLX9+gyWcnK0tv/gbBBE1D2B+K+SR2N8MlUpSpUxJCIg1Mslig==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=71+mXVMCcGmDzHT41p1W9p55Yh86fh2s7rzxAEHrAJw=;
 b=E/VeAtKOzg9M5cTIPzGtYx0mCfGfpAMywO78hUf6mHJbbNA/WBzrbtbvlqKzPQMlBFFyUzzdwKOjb+AavcaSePSxK2QHUgRXQQac+cJWGyUCQqvmUKXrRIvK5vlrmte5j8973gR7VUxBVIkHi8iREs7exB2ma2Z/D7iesEAIHhHf/M3FoDSqtZA5TEXQZ7ZK5T37J6wS9f49h/X3z+Bs+EXtr56fvuELfjgeS1yF+u0dLI6RcYzHsyAYQbJtHseGek+RgmeRcbRSLytQ8xLYNFzdTsgZSpDV/H03p3eIK9kRi3tMMdsrsBqUw3n++fodkR+ueIy25EaO9uHJH4h5rA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v3 8/8] arm/pci: enable vpci for hwdom when pci-scan is
 enabled
Thread-Topic: [PATCH v3 8/8] arm/pci: enable vpci for hwdom when pci-scan is
 enabled
Thread-Index: AQHcWJBceLVR272n0Uem7ppfvpbz3Q==
Date: Tue, 18 Nov 2025 13:36:36 +0000
Message-ID:
 <81b3d59050df8482652c081270350dfc965b5900.1763462211.git.mykyta_poturai@epam.com>
References: <cover.1763462211.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1763462211.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_|AM9PR03MB7217:EE_
x-ms-office365-filtering-correlation-id: c30c8f24-07d7-4949-6112-08de26a77edc
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:
 =?iso-8859-1?Q?bkP9oyIRUL9S1YL9lIJlZkqOHNto/J1moVKhxN/Qlua/n6eTa/xWw4lI+L?=
 =?iso-8859-1?Q?Fpnse4S4Bhp/0vhtcE2Fhf5xymC7ntO4WvBc33kK3PSjii7FjayV8XqWyn?=
 =?iso-8859-1?Q?ldTgKMYHkB4fUSzQfiiho2G7h4oyCdN81tdWxhzJwm3RF6Zb5oxVjrrrwW?=
 =?iso-8859-1?Q?9iGziGjtIZgA9bG0l7HfeYD4ZtKDNgU1s1Ch+/6347SYPPSFY/RTC9AYao?=
 =?iso-8859-1?Q?tfveDDaXo3QpvtDFaaTMFC+RtrEm0U/b8hkmZ6aX3avw6+qU5Fa2TuDxBu?=
 =?iso-8859-1?Q?qpEI3XLNjL2aJxnC92Qq726+6oYESMsLgKmUOCKNwPaqXJggGh7HAVEiuF?=
 =?iso-8859-1?Q?TkrqdH3KkfrVP+odmJToWqg0ihpoqZtd09dsmakgalArdvi+n4msnC58d7?=
 =?iso-8859-1?Q?W7Eav8GvyvW+O95PgGi3N5WR60s30VF2ZroczQvkq3Fia0pAVHUKrpndu8?=
 =?iso-8859-1?Q?E4PAPGSU1nmHzwJM7peyAKUrmAnyxEdxUkYINMmPRhJEwr4mJJMQEwMEy6?=
 =?iso-8859-1?Q?hARjyxn/lbTkZUKc2XLJzGrbgB6DIYiMwig7L5rn8hu/jwPXcRyF9cHqD2?=
 =?iso-8859-1?Q?FsKCnQFvtCy8SQhWwecoQ/TOawp8+rjzNoRqZGcfgq94uqgVeQ1AtZyS8w?=
 =?iso-8859-1?Q?Low9Ps4EiFEYG3VxvaFd0p8G57Z+CYnK7BP3NC/qWwfrDDqJa6C+cwV/rK?=
 =?iso-8859-1?Q?SAhQFVV7FPG/v9wYCSDHs2JkwofIWZzX89eYvU7XvPpyrL71/DIsPJQrUQ?=
 =?iso-8859-1?Q?WcJ+0YwJCG9+CjxePc4uVOYP9Hm5ZLlSeDy4o1IIXZ7Z8lgyfC+P+G9bX+?=
 =?iso-8859-1?Q?inhDEnbUHwJ+ZXCcBONZI0IMyU76USJdB27NizLXlttwxCq+T87UAGeuqM?=
 =?iso-8859-1?Q?4KSXipuVRCO9XexOV0R/PDr2FD810AM36T1S8+ph8TlhD90GaR7mLfZRpx?=
 =?iso-8859-1?Q?LvhgR0doX3PiMcXTz9mG5xg7Gr0z4p33ybAJ3s1RBZnSQ1wdx8jEZDVdKu?=
 =?iso-8859-1?Q?GwpzAxvi4GONXEpvffuMvi+usPOD0Ha1iX4b3QOawQoR1/GfSMJVA3Jn15?=
 =?iso-8859-1?Q?CxYPHGJfRVHA2gtDKvgYY+6mS3YMIpEzvvsedSpD6C/vXGJLqnuIuAo2mE?=
 =?iso-8859-1?Q?ulbPs9hzScCvDA+E3IdVbaYbD9JZwoPx2/0rAmK8d2pmt868JCQLeRo9Zu?=
 =?iso-8859-1?Q?OnQYZji5Z5jpcXAxsh8elxb3DfAZo9WcKKjDmbS1fe833i7oRFxRykUVa1?=
 =?iso-8859-1?Q?h8naHTF3Kiq7mmdMDq+rLIbsypJiU9+0frSPLMlyMGXbtgsoZCVWPqXoWW?=
 =?iso-8859-1?Q?XlrCNCLQD7jolfIWmZMC2qI4MQyg6BGYYHvph75Ch+uGjxdVHA8ZK843l2?=
 =?iso-8859-1?Q?5dD0rmadt43B5tW80ba2RRp1Q+SdhtvAUYko6DGjQHSEPyyejaFXQHyDo6?=
 =?iso-8859-1?Q?3Auc/FZmboNB6oFI/L3+3kisTNwNf1Hll6ypVe5DPE9scnqLYcaXbghov8?=
 =?iso-8859-1?Q?lebMvO5DK1vzbzdRNN/R4dYsNzYEits+xiOqiYf3f7Eat19lz41/u8XIe3?=
 =?iso-8859-1?Q?3+oUXAHwisCo6Bglkd0oK3o06oLA?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?shfWLQBmEWWUHPBF1SoVqjYzW/MiFI0P4zmlj9S1qmHr5aC2CXS7SoCP0o?=
 =?iso-8859-1?Q?mYKKk/8Y9Bzjn6S2bOz6kvvnCceIiD2RRBWKiUK5Q1gLDnybJRSu+M632u?=
 =?iso-8859-1?Q?LP7EfHycJgjp8Nop6e46u1F8W7j2NQKLVMB4vu5MBAC2UjHSapagxKrlNg?=
 =?iso-8859-1?Q?8SEudBqQk7BhsR1KjxifDJJ1edZufVw5J3Si+G86rG5dPxafDpbgdfp3uv?=
 =?iso-8859-1?Q?4B3M/byqHWsDz9/yTPUEGH885zBIXbZ8EMWMUYoYO71HD3bazFJXvcnBTa?=
 =?iso-8859-1?Q?pgnTCQNu4PN8Uv/8cxTLb9ByMF15eCtnaV78buTYq4yQwC9yiahvpAYw/X?=
 =?iso-8859-1?Q?XMqngumC5JRojhSRVV6b2M4dEzNE9AF9JV9b4x85vc7hSmyCARahI8IxJg?=
 =?iso-8859-1?Q?Sa9p3E6odRaCcGY6Y9+ORUj6dpCTK0/AuHPLqnpUxFMTlDTaptzyT1DiO1?=
 =?iso-8859-1?Q?b/EEDi9LJ1sdSojJkeBB18S3xCdgzvIQyUCBds155qpsUcy7yYHALCiXp5?=
 =?iso-8859-1?Q?MTtYoYRUFd2AML70u5mQ4hyj5TakkdqDqhnPEfcR1+GEVGqupnedTx747n?=
 =?iso-8859-1?Q?eFluyoQ+gIHhvxnEPGu+XeZcshNQjm1Agn2o0x0DJGne3wXV7s6qBPM9u0?=
 =?iso-8859-1?Q?UBQxfjqnSxt28AwNWUjzX/U3iTZRw2ymK9w3W6YNmBurYX407pr0bFhmmu?=
 =?iso-8859-1?Q?19ik5GoIwu3ym/raG02nCoaTjsqCUkTTW8HNF/mdkYX3/q0eUTj1OIkrTn?=
 =?iso-8859-1?Q?fn/c/y1OJIxNJyqx6u3o5q59XiHXOuYQnsVdGTUUOU/U9+965Q2ggXfP3C?=
 =?iso-8859-1?Q?9JZ86y9WYy6Fe3TN6yjoGaCc55opV2w1bWgrVC9lv6bInUK23tWiBTkTTF?=
 =?iso-8859-1?Q?YwuJ93QXTyjXEwQrajshATzckDMLmI0deLOOpTGn0cjnRF++VgLlUffagO?=
 =?iso-8859-1?Q?A0B1oSZB5QsZOM0o5pl39DseDtqCAhx2zV1CuofHvbWlBHC6NdL3X4k0Uu?=
 =?iso-8859-1?Q?6aUTZVQxEdQr5KySDuswFtzEymP2d+r9eY9SaLiznUrrpZreHT3Md6+sHx?=
 =?iso-8859-1?Q?O+CbdRYlC/3JaiaAT3n2NHPrsG8AiSr5s8AtTJTj+DYZryYzwJaWoMI3Vj?=
 =?iso-8859-1?Q?esigJwvBVzk69jyXBj2oQ4P5COvhw00K82giZNM/H58fA3gJSrIclW5/Si?=
 =?iso-8859-1?Q?JpDVlAOhsLTbKSqHmfCpgcpNFn1YYeqjuOLu/KeAHx2CnBV3HZjqHG8g0m?=
 =?iso-8859-1?Q?Kb1B5xhY0Rjemrepkxj0ycGZR3DiaaSzFkHprs2NEwdYutgYHqL/jBSXuO?=
 =?iso-8859-1?Q?iRA0fYgmmGbfTJwU92B+LTGEHAuoyw4/7ZOLRjUPlzkUgoqxAxy6jtaJot?=
 =?iso-8859-1?Q?CUz2TT8fzK5yypHT4pHM7E1S0XxYK1b4zy0F2S/64fOmNxy6wWMnEZtzRj?=
 =?iso-8859-1?Q?35SIl9rJJyhGkk0wIPURQ+GI3gQpoERxcsHgjfdUT5ET8MAbmKoiCSTpdE?=
 =?iso-8859-1?Q?Eky3yigt0SXHo8sxHdVXY+h9kB9zXsgCol74LWbnRlwZRqtMpfePF+r1ct?=
 =?iso-8859-1?Q?1ZEA2aIlAuoCnfFEPF7OduOHBHKbDnW7vAtc7q3KutpGDObX3SloxkPpv8?=
 =?iso-8859-1?Q?KdBmJkpfJ+tthxvrhgcdGaU+HYCumkpS3z79i1KWBhtPBMQ1ZyD279lw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c30c8f24-07d7-4949-6112-08de26a77edc
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2025 13:36:36.2504
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 1sS5jYNExYjIaHBGIBMlUPwua7DcmKhJbCeEt783WAbgedmEpuMNDOp/yKwOVXJ4FI54z00xC+o31SRsNxxT2A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7217

With pci-scan implemented it is now possible to use vpci for hardware
domains. Update has_vpci to reflect this change.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v2->v3:
* replace hwdom_uses_vpci with has_vpci_bridge

v1->v2:
* fix typo in commit message
---
 xen/arch/arm/include/asm/domain.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/d=
omain.h
index af3e168374..3eac0aea64 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -305,8 +305,7 @@ static inline void arch_vcpu_block(struct vcpu *v) {}
=20
 #define arch_vm_assist_valid_mask(d) (1UL << VMASST_TYPE_runstate_update_f=
lag)
=20
-/* vPCI is not available on Arm */
-#define has_vpci(d)    ({ (void)(d); false; })
+#define has_vpci(d)    (is_hardware_domain(d) && has_vpci_bridge(d))
=20
 struct arch_vcpu_io {
     struct instr_details dabt_instr; /* when the instruction is decoded */
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 13:36:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 13:36:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164701.1491614 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLLsv-0004r8-QR; Tue, 18 Nov 2025 13:36:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164701.1491614; Tue, 18 Nov 2025 13: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 1vLLsv-0004qy-NA; Tue, 18 Nov 2025 13:36:41 +0000
Received: by outflank-mailman (input) for mailman id 1164701;
 Tue, 18 Nov 2025 13: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=0ey2=52=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vLLst-0004PV-Vn
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 13:36:39 +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 99ed07c6-c483-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 14:36:35 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AM9PR03MB7217.eurprd03.prod.outlook.com
 (2603:10a6:20b:26d::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.21; Tue, 18 Nov
 2025 13:36:33 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%7]) with mapi id 15.20.9320.013; Tue, 18 Nov 2025
 13:36: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: 99ed07c6-c483-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kENiPLSTa3E9uqrp1UWAOoBLPwGrXyQsmWNqHiccGolIxUp+byS3II0XMzaGuD4Dj8ifPN3+L5dAye4Z8hyQe2FkxjYTebdgg9khOQCZJ6Km8PH2pN9FTRO3vKSdim0cn9SG5BiFqc3mhT19341ar4k8opa/e/OPDcHzChcEY6Zf1SACEaOcpott2uf8nla07VSW3faun3mKAUfKgLBRJKLo3m1z1AAL/kj6mPW+YdCgGgH5hxTZnJQChA2w8kvIzlgVv8jMzEo2jGlcPq7lA4hcDodx/LHhY4MGpqQYbw0SyXwQq4eKZookWrbfZo2qmiYgLV2ZYhrSDCwy281B9Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1vRvEsWL7V7SfwuRrWI4RoI5phHznft2v1SB3Ac0yZo=;
 b=KW+4LQL+q1j+/OjdHWEwVFaDvsoblvgkPkztW9lHUgQWzkEEHDhK00fGS74KhdmkooYHKssKUUVAES+aDpYw4CZPOOQ/y1dcUR0Mef8b3sTNFdaVKQ8HA7ugUqq6pKhwOESnLhv0Yp3dMpoMEfemYiSdTa8xPe/JM87KmXoOMU9jPGMLRW7BX+ZnH5oeo+c9HhE7sN2EAlOq0LCgn0e39ZwjD5gnlC+jzcN+kyDIvoiKiX/xz+Egb1eZZIpD0WPulT2DvOo5n62RzTLN8S7aF1bqcPeXqqsCVK7n0xwFWYZt8es8aym/Nu6IC1XClJNiNykNN8nBOUyWJUmqbcEE6g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1vRvEsWL7V7SfwuRrWI4RoI5phHznft2v1SB3Ac0yZo=;
 b=Qrx4I5fjhHs6dQM5Gf+cOCFzrvJNX8P2gwmmA6bIwrBhvS6s729+0MX/0pwsszUggmbawuEBsxhdz+6IwW20gaRWbAKMoFpfXoYhp73sH7pv8eaaZGsXgsVMBdIGgNLXHNTZmOR9w19DVcVHXmS2jN1bfVGaMnceEUxUhaYKmISjryJlQ1wi0DhKCqtNkD1biCh4dKIXpLzrBzoPVktXbzimpNQANKqqdeD0icXu/CBgehINHg6IZ+2FZmbiU1MTc6hB/PUpOuW0EEFjXHYY3sNfLUgISGBohj5g6A3wKfj9SQWqKCTjQkLgr4lgIp0CUpeYG+UwhWCIC1yxDewADA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Edward Pickup <Edward.Pickup@arm.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Luca Fancellu <luca.fancellu@arm.com>, Stewart
 Hildebrand <stewart.hildebrand@amd.com>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>
Subject: [PATCH v3 1/8] arm/pci: Add pci-scan boot argument
Thread-Topic: [PATCH v3 1/8] arm/pci: Add pci-scan boot argument
Thread-Index: AQHcWJBa0sfFMet/uEihbNa8Xr70/w==
Date: Tue, 18 Nov 2025 13:36:32 +0000
Message-ID:
 <a48e23aabba4a0a718be5046218e52f6c69f8c4a.1763462211.git.mykyta_poturai@epam.com>
References: <cover.1763462211.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1763462211.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_|AM9PR03MB7217:EE_
x-ms-office365-filtering-correlation-id: 95ad61a9-7623-49f2-a451-08de26a77cee
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|7416014|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?4PspFay2F7E93wGxuc2TfA6ZsyhSEgl3LKOeZOuqdKwyDUYoc4XOG+4KLw?=
 =?iso-8859-1?Q?SqpbLFbcva9+dJLiihLs/AMB3HSYzTqtI2kcFfUZK5LM/3104CO/RPYbKe?=
 =?iso-8859-1?Q?YDkYQ/+oTm2JcdVRCC0+YnbXXO1ygohFKiFdbv3mhQfsQ7YN6d9BQIqsmL?=
 =?iso-8859-1?Q?HUIXcEAKp87JPBsCabV4jZKGYffUQHBKwUrHcSvGD9BKAIzC3G1WyuMZVO?=
 =?iso-8859-1?Q?1K0rskbBBJvDPTtein3QXDeUxsTjppGo+FN6VxZskNYlR5Sz9MKmun+knP?=
 =?iso-8859-1?Q?BDqd4XylBh98ikZx9F99XG4lKsuvFE2jKPNOj92+7LxOtNEw62u2aB2Q/8?=
 =?iso-8859-1?Q?qZWnCy0XVGEaQpuZerUbfXDgRHf3/9XEtqJewgXWfn9j1qtzO9OkMFIt07?=
 =?iso-8859-1?Q?J14dGSDYZ7WZeeOM/eK9GKzra2ZW50OKWu9M6C7ag4Unv9cpvXnqmBoSpb?=
 =?iso-8859-1?Q?VnzcZ7perd336CW1XLwJYr4ss43LEH+MvdW3tofvQ4fdBeHKk4v1af989+?=
 =?iso-8859-1?Q?cqei3vnruEsZ1rYT0qV18rrWjHHZRlWu3S0EZ8soVJ0uBpgDq93j+H5tGT?=
 =?iso-8859-1?Q?LkBJ5BjQV/qB845UR/ATjCmd2I4Io+K1T8wdeLbbnE80vkm6eDXWXI2FBS?=
 =?iso-8859-1?Q?ghf8fkCk6+CHaO6Dzll5IJOIHM+oJqjbpvTIPSfGKhrlzue328obkhKnJX?=
 =?iso-8859-1?Q?sWHPDswKgPKMrKbzfRpC09SsMf4CyBG+eVUw8KQuz7o2LZNh7HpDPjzvzD?=
 =?iso-8859-1?Q?Fg0emtBK/Y8if4HULSIAdcKsxtZLGmi9nO0zyMLEDef+n6URSSXYhgn7c6?=
 =?iso-8859-1?Q?YRXUz/2iwt06p2Ta3RY/7Rx64T4ACnn6IOlPJZ7azwdzCbfWVd9cl+t/Y4?=
 =?iso-8859-1?Q?tXvSv+J1mDwKFqFMlCQcqTZgkJRf61poZ4wNBlGE8w7S+hVamILDEihYbp?=
 =?iso-8859-1?Q?IY5PCDK7cxvfp1vwhSYEuyQ5eRBj+jGu5B9oZzRWM4dbi6kiYEVOgPWknP?=
 =?iso-8859-1?Q?T9U86lZTIjR+JxTmrK1yr5nLB8sLVarT2EH+nDcO8YHjlgAZsv6sPKZCXx?=
 =?iso-8859-1?Q?Auf3gsmWpPV3hy4sYY4fOPJO319rSNFCg6DpkJ3l+OPXlZdp/MuciHPCov?=
 =?iso-8859-1?Q?loihqICwlSK/f1JKyRJzVhNuLcCBNP04WGINDaXQJ4mNISk5r/nPJy3YPg?=
 =?iso-8859-1?Q?nfy7TNlQf/KtnHX9PhPIkIQSg1RvVW3OpBmMn6K0p+2TyIhwzg2fbQQ0NC?=
 =?iso-8859-1?Q?qVjNybC8OMf5h8SD0Gdre7DErS87CdqHSc0r5FNgHzVzB9hnX5uqrhtth8?=
 =?iso-8859-1?Q?n9yqm8Udqnc2sgy9ilkWIRjzFbichQrzdv1N94KSJJoU8bx39Wv4QDW5ln?=
 =?iso-8859-1?Q?hPilMUSetRuOs2opWGKqLZHOWMZeUgKelm09xaPXHa51872/tVBHxhqfp7?=
 =?iso-8859-1?Q?rdIyCalS+Q1HNXNcWQZmQNNvgtgbU/Ov0JE0tkHhejxPo0jWiNLvsk/fRW?=
 =?iso-8859-1?Q?tIdfMFbiGGwCHjfzR82Xc/5Ur2H553e2qRxmeofFUL0CLI6qIm0nC4ZPsU?=
 =?iso-8859-1?Q?jj5RklbVR72WUMfGBENduHs8kY6c?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?29/JFNnYcdYuRFwiJWbTgWD2WpS3Z+8HTNRgk7rBgEsNEfzeLqOPOTOSZW?=
 =?iso-8859-1?Q?fip8MjdoPlB3d4gLZmMGpgmXBm30te/TKVzwymu7IfIFGNFU7jRxUurWLK?=
 =?iso-8859-1?Q?3GnOrlIbq7GSl2AoBnTs7znjVcnsmkyJpaUdk05gtrMir1ap3GLVdTrLV2?=
 =?iso-8859-1?Q?r9xM5pCneSqh+KakY+P73BvSQ7c6k9H7CguuM5uGnJOSN8TbHdiz8nLS4c?=
 =?iso-8859-1?Q?I6Uq0+FCS+tmVr+tellL74slqVloz4YPWQKvLOLPkOhnRgz3yo+iu40E8d?=
 =?iso-8859-1?Q?7pgGkBLL2cRSGU2CNrjdvetmVBeBGLu1bzKiDPk2mQueJ34X7E5hzt+sbm?=
 =?iso-8859-1?Q?spfsqNfi4ds41+mcPv3e0tFHfKYTx8bXrUAS6Q8mwGX8Zc/yIYND5RW5p8?=
 =?iso-8859-1?Q?O/BOQ+H5qccWHi6bpass9C1XOBXRCMRUK8lyPsegK2b9KHQEnDclpt/JdW?=
 =?iso-8859-1?Q?vJHF6fvqGqoXw3QiY0dp9tJh3hNO3gc/A4GB/PDF71TJf7F8OdVn9QUf0a?=
 =?iso-8859-1?Q?m8+Xc1i9OCVZI2jGzlEdk1GodOuB1cMmdXdJ7YOXf2tiXQy/jeWRSJ7PtQ?=
 =?iso-8859-1?Q?ikseZDdg613ogJqUHM2RHikYMYfLc9F9XC9IBVyf27hSHUrAv9TDFuWo8J?=
 =?iso-8859-1?Q?rxbjdMNpvAe90rVaZ15oVhZesvFj04yZ3bULDx7HybdTzKXCR3J1bEeC7u?=
 =?iso-8859-1?Q?J4+kHk/2WuggEvu72JLf0SPMI6Ydg7cEsLdj2UUsimYbmsEleHt2+QgsuE?=
 =?iso-8859-1?Q?PFqgxA3fPq6/7NqCknVVaJ95sw3Ef11r31MKwl5MAxXxkSX1QXrXrnnkk/?=
 =?iso-8859-1?Q?gTKAdlTT+09VbnsYtvb/iw8aNSyA8kovz8z/ttbOCuSBsBQAPmYcAbwGUJ?=
 =?iso-8859-1?Q?KUThmd+u8xC3eQxf9a7pa5/Yt2GEpBY5KWFFaAuLxID9vFsX2iWw4dCQ0q?=
 =?iso-8859-1?Q?hdQlEzrSLOoF99bMdgHSdq28nrgYP+ZHiZUyapW3wWWGGS1Hrem+pfIKWR?=
 =?iso-8859-1?Q?yrySpClRfejQ+NqQDuVxSPkVuT2lu8UwrRVwlsaUSqu1Q4WHGh7KiQWCNv?=
 =?iso-8859-1?Q?GFB8XSFAKDw+wIsTKMGwLhLwbUdYXtgV3bfO7P0GbK5FOxzzEVy+FcfoEW?=
 =?iso-8859-1?Q?Y3eecqp430/mnhx7E2k5NC54RWxEzonK3YAdl/Yy013QE+0ycD2QCQ62LO?=
 =?iso-8859-1?Q?2erycQ5VBaZU0fVESpyqFgh3zHNGrqDJY11eMNwv867A5dy08SrlrTOjcB?=
 =?iso-8859-1?Q?apMHeRjzFnTr0EA6VjcwnJNGdKUvoGVfl02ebRtTc7HtBx/nbjwqFZeJOq?=
 =?iso-8859-1?Q?6B50rMnvOM4wZK/Czr6bylKulVuUnms9XQv3FW6RmGD7AJN5G3kFnFsgS0?=
 =?iso-8859-1?Q?FAfigcICwkqO+milYcl+eCxPfg7yPDdg8qlreII5SLxVRzLUCDhXlGAW3j?=
 =?iso-8859-1?Q?5F57gKz15dnBtd7iEbePf90TmF9OAKz/gTnCpXUaQk9Pb6a5WjMqy2oOZ4?=
 =?iso-8859-1?Q?uZ8sC10X2S9TYWHoF3eGBzP5OUhjBn800j8JMiigx0t6l9gfc9IVVzevmd?=
 =?iso-8859-1?Q?oWUaLAg6zUGTSo2ggaMsDqd7AvX7lpQpma9Z5qShuKPnnKvPiEYVIEsAof?=
 =?iso-8859-1?Q?wQEY1G8k0Hgoe8LWhsOFqV2hNY4TN0Dqw+YxDPHLGiwHjMZqdlFUguCA?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 95ad61a9-7623-49f2-a451-08de26a77cee
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2025 13:36:32.9951
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: G0CYuTMz9kNj0CYwMf7Fm4CXCRvx0pRSlA6rGmMO5l02PVO92NNXBRSfvHSGs5Hl4sADPYBGGaB2SwgcICvg6g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7217

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

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

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

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---

v2->v3:
* add define for cases when HAS_PCI is not set

v1->v2:
* remove dead code
* don't return errors from pci_init, but report them

changes from previous series:
* remove is_pci_scan_enabled wrapper
* make pci_scan_enabled ro_after_init
* drop debug prints
* drop Edward's SOB
---
 docs/misc/xen-command-line.pandoc  |  7 +++++++
 xen/arch/arm/include/asm/pci.h     |  2 ++
 xen/arch/arm/pci/pci-host-common.c |  1 +
 xen/arch/arm/pci/pci.c             | 29 +++++++++++++++++++++++++++--
 4 files changed, 37 insertions(+), 2 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line=
.pandoc
index 34004ce282..e5f7275bdc 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2079,6 +2079,13 @@ This option can be specified more than once (up to 8=
 times at present).
=20
 Flag to enable or disable support for PCI passthrough
=20
+### pci-scan (arm)
+> `=3D <boolean>`
+
+> Default: `false`
+
+Flag to enable or disable Xen PCI scan at boot.
+
 ### pcid (x86)
 > `=3D <boolean> | xpti=3D<bool>`
=20
diff --git a/xen/arch/arm/include/asm/pci.h b/xen/arch/arm/include/asm/pci.=
h
index 08ffcd4438..0680b2f50c 100644
--- a/xen/arch/arm/include/asm/pci.h
+++ b/xen/arch/arm/include/asm/pci.h
@@ -155,6 +155,8 @@ bool arch_pci_device_physdevop(void);
=20
 #else   /*!CONFIG_HAS_PCI*/
=20
+#define pci_scan_enabled false
+
 struct pci_dev;
=20
 static inline void arch_pci_init_pdev(struct pci_dev *pdev) {}
diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host=
-common.c
index 487c545f3a..d3481b05eb 100644
--- a/xen/arch/arm/pci/pci-host-common.c
+++ b/xen/arch/arm/pci/pci-host-common.c
@@ -284,6 +284,7 @@ pci_host_common_probe(struct dt_device_node *dev,
     }
=20
     pci_add_host_bridge(bridge);
+    pci_add_segment(bridge->segment);
=20
     return bridge;
=20
diff --git a/xen/arch/arm/pci/pci.c b/xen/arch/arm/pci/pci.c
index beb1f971fa..49ee003c5e 100644
--- a/xen/arch/arm/pci/pci.c
+++ b/xen/arch/arm/pci/pci.c
@@ -91,8 +91,14 @@ bool arch_pci_device_physdevop(void)
 bool __read_mostly pci_passthrough_enabled;
 boolean_param("pci-passthrough", pci_passthrough_enabled);
=20
+/* By default pci scan is disabled. */
+static __ro_after_init bool pci_scan_enabled;
+boolean_param("pci-scan", pci_scan_enabled);
+
 static int __init pci_init(void)
 {
+    int ret;
+
     /*
      * Enable PCI passthrough when has been enabled explicitly
      * (pci-passthrough=3Don).
@@ -104,9 +110,28 @@ static int __init pci_init(void)
         panic("Could not initialize PCI segment 0\n");
=20
     if ( acpi_disabled )
-        return dt_pci_init();
+        ret =3D dt_pci_init();
     else
-        return acpi_pci_init();
+        ret =3D acpi_pci_init();
+
+    if ( ret < 0 )
+    {
+        printk(XENLOG_ERR "PCI: Failed to initialize PCI host bridges (rc=
=3D%d)\n", ret);
+        return 0;
+    }
+
+    if ( pci_scan_enabled )
+    {
+        ret =3D scan_pci_devices();
+
+        if ( ret < 0 )
+        {
+            printk(XENLOG_ERR "PCI: Failed to scan PCI devices (rc=3D%d)\n=
", ret);
+            return 0;
+        }
+    }
+
+    return 0;
 }
 __initcall(pci_init);
=20
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 13:36:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 13:36:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164706.1491665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLLt0-00062z-IP; Tue, 18 Nov 2025 13:36:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164706.1491665; Tue, 18 Nov 2025 13:36: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 1vLLt0-000620-DY; Tue, 18 Nov 2025 13:36:46 +0000
Received: by outflank-mailman (input) for mailman id 1164706;
 Tue, 18 Nov 2025 13: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=0ey2=52=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vLLsy-0004PV-QH
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 13:36:44 +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 9e8b6f8c-c483-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 14:36:42 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AM9PR03MB7217.eurprd03.prod.outlook.com
 (2603:10a6:20b:26d::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.21; Tue, 18 Nov
 2025 13:36:35 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%7]) with mapi id 15.20.9320.013; Tue, 18 Nov 2025
 13:36: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: 9e8b6f8c-c483-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gcVm8N55xdEMAEBPDMW6b+jg0V7djeIZHf0XPEIF0wqAhiuH+vy/zQ6Blva++d+1vOzG3K235KS/dEXmSdRR7ZopmEI+AwZ0MiZ/u4XIYghN6P0fcfSCZvYSjjqGqfqOZn094sZkAcSlObiVKrCkW8WjhUZaBuw7GPblQLWizij61kvoUHextBhapRhjSG02MuO86TD7IB/sg0YlQTSwDVBJqkWNrjEsUqhrWIhUjQXUwqNT7wJcDD4l7m2+evhkaKWc3ElMXuvPXNZv6QrKf8WNCoWgaXhTSi6arsLC3VvC2Qf2Z8gArrIu9bSYTDTXI/zv0+4bkA4jJ90GdEOJsw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Q5toO1p7HM6sy4CzbYFdVDRmwNAwzJNlRltMnSAEZo4=;
 b=ch2yLWxiIM2sXJwKQ3Z61UJWBIgcS2DR4NpKN3kxxGbC08YxXh+jjTBrrzJXXBijV2MYVrQBQ4/3eoQPmQFbfkEdmfkkfSxLaITuvAOXm8JuFBliiOv0VVzb7KAP5wVaQp54GkllZYiOzXZ14vqEa1SzYrZnoNN5U/my+9TeY3Y/e/B6YswT5XIA3DcMHcuHsvzMrsBUFWDL/QoEM6uHLBwSBxwygpKJxqpqit3WmDNTzai9TA2sgT5m06oQGvyPWF3cLWOMApobsXamQXGjURRjGLh2oNp1VOMzxSZ4mwPZTJmQ2QnuWtCaV1Z5/ZAM217e6W/xD6KPJGorwuPjxg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Q5toO1p7HM6sy4CzbYFdVDRmwNAwzJNlRltMnSAEZo4=;
 b=tFqSSmQG8LvDQPvEwNnl6/DwbEPSJUiWVRJb85+OkhnM5/Ray52toqAEEuo+n/GBEklc28GiWf02h46Tk+KIZ3qu80Yj4iHTxTSCpKiEN4+eOEQeNa61/mloQ5VABsbUjkvLw7dDeuotNxlV3mbJvZ44YX1z1oNbzU7GQLsgfx2suexgsd9k7f1xGSwcBOAjtyZQ3jzA5Bmie686336E+RG+in51s0DwRMIGSdGIKdKp/DS86WALIrfv2+6FTjcF7c/CKMwG8j1rxW8UVH2MRgKrX1sputQWDB+P8CTpVMetohkkFy9KOlS1h/8a2v2dIysmHamAopT06f8w++cF3g==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <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>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>
Subject: [PATCH v3 6/8] xen/pci: initialize BARs
Thread-Topic: [PATCH v3 6/8] xen/pci: initialize BARs
Thread-Index: AQHcWJBbzP55AknCK0ePM8b3+jQIaw==
Date: Tue, 18 Nov 2025 13:36:35 +0000
Message-ID:
 <20b26b4a3f180139971105ee1b23cc4b0a82092b.1763462211.git.mykyta_poturai@epam.com>
References: <cover.1763462211.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1763462211.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_|AM9PR03MB7217:EE_
x-ms-office365-filtering-correlation-id: 49be56a2-b3bc-45b1-00d6-08de26a77e4d
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|7416014|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?rQe9B5mUvRF/UAxSZDMDAbocGgdbKrJdcz6LV3vVLGMoWI7XKwjpn0Q3MG?=
 =?iso-8859-1?Q?PqwGvrTjQDeDNrqjmBU4AR+h20wg22KGbdlR8/LEOZsdPozFVeJ4BRpm8e?=
 =?iso-8859-1?Q?wvfbES/gPrVsBY14mrYJrmOlo+VxHQeHoES6owF9jNkohWqtB82k/GJQh9?=
 =?iso-8859-1?Q?/EKNuHIPVM8z+VRv0iZqJmAp7kDaa28gsjSZSvGzfg86ar6FOGok6Z4rgC?=
 =?iso-8859-1?Q?tkWJqe/TBwC1LeDAS1MIf8IjKxTMJqsSXHC0vLsqrSWQmIKLMr87vhbu5C?=
 =?iso-8859-1?Q?zsFKKG2yidfaaAH++uaHMaKxzS0fFvoOVdRKqDn9uw3/WafqBu2K24pjIe?=
 =?iso-8859-1?Q?y6JRRWtpJDSxy+t3lX2m41e5To2ipTlhXBKmdRdGsZWPJvUucEmY2qGEPj?=
 =?iso-8859-1?Q?l91qKyoD7O7y8VEumaXdV2/m6LXi2uSl4ExTKelgPpYlv9+YMlX/e62S1Y?=
 =?iso-8859-1?Q?6r2SVUgt+5TdQmHFl/EOE2XvdvBZ5lFMUnPYkoRuI4cfmU/04ZklVbhxCf?=
 =?iso-8859-1?Q?Jk8zOG8tbT8AK2PPqETbX5qnx2iLzA7sHX+zcGQA6dgULHG7qk2IVMyers?=
 =?iso-8859-1?Q?3F45/xtQ7JaDsXSOKakrQJJVRk16JSz9SRFYGly+jQuy6C6AP/PQoaxmZ3?=
 =?iso-8859-1?Q?/N0VkpWqxuX3O17TBiy1/8Qpxj19va1fiTCsDsA4hXZlAuHnp3FztgT0w/?=
 =?iso-8859-1?Q?Gukff5lnLL/84iXym8PqC4z2gNBPltLYAOzZFm6XoeNxy0kQt8gAnstJya?=
 =?iso-8859-1?Q?Lo+iQRFgy31Aescg6pjCQecOV6zbKkRvmlub/LMOXoFpisim0r2mmkXSyv?=
 =?iso-8859-1?Q?w6yeVD2/D5DP4IItV+XsKfbhPGoS4iaHYmomrZsYl06LCTL9oBbh+aCLux?=
 =?iso-8859-1?Q?R4mZ24IcJzlOUIB4eNFPByBVrED75QNGykjxD/51ad4287doUP3/3iOxBG?=
 =?iso-8859-1?Q?MpCs1kE6nT2q64mhis+1KqgX+R2FaHRJfpH1K7TbLSUkrpcgtLgS4a6SmW?=
 =?iso-8859-1?Q?ft2vXzt3T9vhSRgdvSD+Q4ZC7WouPptGz0OxBsW12xf8JGDGa57p5UpLOk?=
 =?iso-8859-1?Q?nokXMYFtK9bet9g7kw6jUCEbaENJ57uxKasWSGZl3jNXGCrKq77jHNt2Yu?=
 =?iso-8859-1?Q?2ztMO3xruDkFO9y0wIDE7MgDL8BKUSSya7qGI3PnGu4Gk8cQ/FUg3PmWUe?=
 =?iso-8859-1?Q?7eOsgK0fkmAU4Hj+Z50I8SgMnXKYNNrRE+TjS+rNHYCfsGgd0IT/fTDlZ+?=
 =?iso-8859-1?Q?OWG61HbLDm9mZk52GZ6hzBE8H5c/MKGjq01Vensp8NPJhRRfGv7hJBNAXM?=
 =?iso-8859-1?Q?pAvNhN8JQTux5sbDaBbqaTZ7WRd7f/3nmV8C4JdMfotkMU55tiMZn+PYzH?=
 =?iso-8859-1?Q?ygNbO62ePLRKbsPrXPlnmlMqGJm9sjCFktC7CWfRSbUMf8nf+8AWw06A8C?=
 =?iso-8859-1?Q?5sw3aNdN10rKstjNuTH7O8lCysXWD1jLjaPqi7D9HSHkESrigVGpJsAlew?=
 =?iso-8859-1?Q?cn+N1ERl6JVhKamDxPvCFUJpumSENtbbx9MKfPeMwKyL/rzbf/zYu8JFR2?=
 =?iso-8859-1?Q?iguUAl/16TJThNpmigd6pyQKT54/?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?2m2hGsY529pgOX8jjzWVC6+4vRgsA9uOFoGQW0hONQIzjQY7kOeGzVFKWc?=
 =?iso-8859-1?Q?5En13niW0Z8exbPln2bmc+79rj8oDDNgzdl4G5CwZLbBP9u9NPib81C2rs?=
 =?iso-8859-1?Q?01kx5XYViPx6iRh8h3bLaTFp6vviYESg7mkkeG9KUABboq6u9tW6+vif/c?=
 =?iso-8859-1?Q?tCFgSuXdk74kcPmnlY2LVBMpWi4Y/2bScP3wCmbgoq7swRdj5PIOJyfbHM?=
 =?iso-8859-1?Q?FBSY5PjJ/L8Vc+BHqccqkCNV2yAl6OoeOWsh/mWZiDb7eZLK/73oiSbG91?=
 =?iso-8859-1?Q?112LiYEeibUolGkrQ/qhxg/vZ6jbodCsgYFPYRx9Lq/o4TGWwgm6VNgBUt?=
 =?iso-8859-1?Q?qWfM5uB/DFq8zt+MIR4BlpeliwoG1VJiZO5jSuaSv/gI5HbLOyjuVhcvtH?=
 =?iso-8859-1?Q?eRsOP0/IICIqpH8tQweihG7kVWfmwktu95IPW7ziJXZXJeiduxh6oTicz3?=
 =?iso-8859-1?Q?HFY+7nTGYkNMdVmBUR+JUXW9E3mEzUr5kHPG9WywFH6U0n0zEIBqrV9aII?=
 =?iso-8859-1?Q?Z9ZdVOPMLT8dAH/qdDk44NP0CIHSRbuMbESM2dLsquCDRWmW+sZf/PPJa/?=
 =?iso-8859-1?Q?d/rNr7cbK14AFXCqYcue/WbydwqSktz8bBhAaDIaMl0f4sKl3ZKLk1NN8J?=
 =?iso-8859-1?Q?rcSxkyxWoWef4sdIs3nksiunhdzFs3xAMQB2AQsojICU4ayLoxkjojFgQA?=
 =?iso-8859-1?Q?ATaetRSevWkXjrQZaYVAIu1Lj7F3UmbxmhMyfU4SUgDD88eygtseD6YPH9?=
 =?iso-8859-1?Q?v7LGaqt9LHYaeQSnZfQAzTbkJBbaYLBAoEey6Kk8xLz4nO9SGVbYYI3j/f?=
 =?iso-8859-1?Q?GXD18Xk1OAco2YKw7DZ3FKcNkixE86eTxDzPqthIxAkavl5u0UtOEemulG?=
 =?iso-8859-1?Q?F76VDBWwv7y7xb550j5i5Cc7WtjMlJ8h+P3F04DDfS7V+XBVKeQquU+Dpb?=
 =?iso-8859-1?Q?71Oka7h13sCqZbvxFnNKWd0BVL24z1sLy2h77+4XSa7vrtoypyS68LY/bF?=
 =?iso-8859-1?Q?8Ec52K7QFiJa7DAm8ibM01hlcuUqfte9zZ5VnGjhTT/J+FUYDwWsM9+kA8?=
 =?iso-8859-1?Q?yjzngboh+LuXQCbSVplnFBvJlGFFm5QWJAYXK44ayUFYS+QNdpoLHLsf+V?=
 =?iso-8859-1?Q?muqFh5pZYt+CLGQz6QpqCPcSsWG9eFaCyPPbOfPsE0d/6RRO/g1HPVeaRW?=
 =?iso-8859-1?Q?47zV1M5w48Q0hFrpej/7PlfSM1N10UXIlMQg92pp9sVP8h8sb9V1FgyTTG?=
 =?iso-8859-1?Q?dbSS/GCEq0iUl2iJ8WJg29UnZPjmLVP1iZpM6/Atpg/L9J1Uo3rjDq3VvS?=
 =?iso-8859-1?Q?dxYJIpN40W0pUUcHK0kG5TbWc1O3qnzPGWw66otrah+JUaEkB20AYGzslF?=
 =?iso-8859-1?Q?2q2qOi1wI8oJBWn1Fk7OLIwJ1Vi8U/cPIqcm3pjOQA+kUWRKqEAdrW36H/?=
 =?iso-8859-1?Q?xm0bOoCPsXGXNE1HcS/Y9D+wPN2nAwtLPzL1eVsvg/8dwyQ0fba68ryboB?=
 =?iso-8859-1?Q?+iq9O16H5A6+TfCi3gRf0+UrAOy4v9iPE1DK9Zr3DFMSTRS4ygw0dq6Gd9?=
 =?iso-8859-1?Q?L26WTdBpkNEWxl9tlWfTImkg55K0su3iYmtft8W+Twvo2OZvFkMdw65QSk?=
 =?iso-8859-1?Q?d4wNDDjX5TTliB8WUb66zLCLe3SbQPxzJW4e3+XLfF9N0Gsj1k0rTaoQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 49be56a2-b3bc-45b1-00d6-08de26a77e4d
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2025 13:36:35.3324
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: jUjJccpWXmj8p+d+wz79u60M5f3HKbxHoz1ywdLiP5MIxmiPO04lGC3c6dJbrwo8mvyU9g3b2JkLRtH/BnoELQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7217

From: Stewart Hildebrand <stewart.hildebrand@amd.com>

A PCI device must have valid BARs in order to assign it to a domain.  On
ARM, firmware is unlikely to have initialized the BARs, so we must do
this in Xen. During setup_hwdom_pci_devices(), check if each BAR is
valid. If the BAR happens to already be valid, remove the BAR range from
a rangeset of valid PCI ranges so as to avoid overlap when reserving a
new BAR. If not valid, reserve a new BAR address from the rangeset and
write it to the device.

Avaliable ranges are read from DT during init and stored in two distinct
rangesets, one for prefetchable and one for non-prefetchable BARs.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v2->v3:
* drop hwdom_uses_vpci
* check that rangeset can handle u64
* rework rangeset manipulaiton
* mark more functions as __init
* move bar init to arm files
* style fixes

v1->v2:
* move hwdom_uses_vpci to this patch
* fixup error reporting
---
 xen/arch/arm/include/asm/pci.h     |   7 ++
 xen/arch/arm/pci/pci-host-common.c |  92 ++++++++++++++++++++++++
 xen/arch/arm/pci/pci.c             | 110 +++++++++++++++++++++++++++++
 xen/common/rangeset.c              |  62 ++++++++++++++--
 xen/include/xen/rangeset.h         |  11 +++
 5 files changed, 277 insertions(+), 5 deletions(-)

diff --git a/xen/arch/arm/include/asm/pci.h b/xen/arch/arm/include/asm/pci.=
h
index 7289f7688b..ac4e87f9c1 100644
--- a/xen/arch/arm/include/asm/pci.h
+++ b/xen/arch/arm/include/asm/pci.h
@@ -74,6 +74,8 @@ struct pci_host_bridge {
     struct pci_config_window *child_cfg;
     const struct pci_ops *child_ops;
     void *priv;                      /* Private data of the bridge. */
+    struct rangeset *bar_ranges;
+    struct rangeset *bar_ranges_prefetch;
 };
=20
 struct pci_ops {
@@ -154,6 +156,11 @@ void pci_generic_init_bus_range_child(struct dt_device=
_node *dev,
=20
 bool arch_pci_device_physdevop(void);
=20
+uint64_t pci_get_new_bar_addr(const struct pci_dev *pdev, uint64_t size,
+                              bool is_64bit, bool prefetch);
+int pci_reserve_bar_range(const struct pci_dev *pdev, uint64_t addr,
+                          uint64_t size, bool prefetch);
+
 #else   /*!CONFIG_HAS_PCI*/
=20
 #define pci_scan_enabled false
diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host=
-common.c
index de30fb0aec..28c26af9eb 100644
--- a/xen/arch/arm/pci/pci-host-common.c
+++ b/xen/arch/arm/pci/pci-host-common.c
@@ -21,6 +21,7 @@
 #include <xen/rwlock.h>
 #include <xen/sched.h>
 #include <xen/vmap.h>
+#include <xen/resource.h>
=20
 #include <asm/setup.h>
=20
@@ -232,6 +233,25 @@ static int pci_bus_find_domain_nr(struct dt_device_nod=
e *dev)
     return domain;
 }
=20
+static int __init add_bar_range(const struct dt_device_node *dev,
+                                uint32_t flags, uint64_t addr, uint64_t le=
n,
+                                void *data)
+{
+    struct pci_host_bridge *bridge =3D data;
+
+    /* Ensure we are not using bits in a rangeset */
+    BUILD_BUG_ON(sizeof(unsigned long) !=3D sizeof(uint64_t));
+
+    if ( !(flags & IORESOURCE_MEM) )
+        return 0;
+
+    if ( flags & IORESOURCE_PREFETCH )
+        return rangeset_add_range(bridge->bar_ranges_prefetch, addr,
+                                  addr + len - 1);
+    else
+        return rangeset_add_range(bridge->bar_ranges, addr, addr + len - 1=
);
+}
+
 struct pci_host_bridge * __init
 pci_host_common_probe(struct dt_device_node *dev,
                       const struct pci_ecam_ops *ops,
@@ -283,6 +303,18 @@ pci_host_common_probe(struct dt_device_node *dev,
         bridge->child_ops =3D &child_ops->pci_ops;
     }
=20
+    bridge->bar_ranges =3D rangeset_new(NULL, "BAR ranges",
+                                      RANGESETF_prettyprint_hex);
+    bridge->bar_ranges_prefetch =3D rangeset_new(NULL,
+                                               "BAR ranges (prefetchable)"=
,
+                                               RANGESETF_prettyprint_hex);
+    if ( bridge->bar_ranges && bridge->bar_ranges_prefetch )
+    {
+        err =3D dt_for_each_range(bridge->dt_node, add_bar_range, bridge);
+        if ( err )
+            goto err_child;
+    }
+
     pci_add_host_bridge(bridge);
     pci_add_segment(bridge->segment);
=20
@@ -476,6 +508,66 @@ bool pci_check_bar(const struct pci_dev *pdev, mfn_t s=
tart, mfn_t end)
=20
     return bar_data.is_valid;
 }
+
+/*
+ * Find suitable place for an uninitialized bar of specified size in the
+ * host bridge ranges
+ */
+uint64_t __init pci_get_new_bar_addr(const struct pci_dev *pdev, uint64_t =
size,
+                                     bool is_64bit, bool prefetch)
+{
+    struct pci_host_bridge *bridge;
+    struct rangeset *range;
+    uint64_t addr =3D 0, end =3D GB(4);
+
+    /* Make sure we can store addr in a rangeset */
+    BUILD_BUG_ON(sizeof(addr) !=3D sizeof(unsigned long));
+
+    bridge =3D pci_find_host_bridge(pdev->seg, pdev->bus);
+    if ( !bridge )
+        return 0;
+
+    range =3D prefetch ? bridge->bar_ranges_prefetch : bridge->bar_ranges;
+
+    if ( size < PAGE_SIZE )
+        size =3D PAGE_SIZE;
+
+    if ( is_64bit )
+    {
+        addr =3D GB(4);
+        end =3D ~0;
+    }
+
+    if ( !rangeset_claim_aligned_range(range, size, &addr, end) )
+        return addr;
+
+    printk(XENLOG_ERR "Failed to claim BAR range %lx-%lx from rangeset\n",
+           addr, addr + size - 1);
+
+    return 0;
+}
+
+/*
+ * Remove already used memory from the host bridge bar ranges
+ */
+int __init pci_reserve_bar_range(const struct pci_dev *pdev, uint64_t addr=
,
+                                 uint64_t size, bool prefetch)
+{
+    struct pci_host_bridge *bridge;
+    struct rangeset *range;
+
+    /* Make sure we can store addr in a rangeset */
+    BUILD_BUG_ON(sizeof(addr) !=3D sizeof(unsigned long));
+
+    bridge =3D pci_find_host_bridge(pdev->seg, pdev->bus);
+    if ( !bridge )
+        return 0;
+
+    range =3D prefetch ? bridge->bar_ranges_prefetch : bridge->bar_ranges;
+
+    return rangeset_remove_range(range, addr, addr + size - 1);
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/arm/pci/pci.c b/xen/arch/arm/pci/pci.c
index 951639eb3f..0330220e93 100644
--- a/xen/arch/arm/pci/pci.c
+++ b/xen/arch/arm/pci/pci.c
@@ -95,6 +95,108 @@ boolean_param("pci-passthrough", pci_passthrough_enable=
d);
 __ro_after_init bool pci_scan_enabled;
 boolean_param("pci-scan", pci_scan_enabled);
=20
+typedef int (*bar_callback_t)(struct pci_dev *, uint8_t, uint64_t, uint64_=
t,
+                              bool, bool);
+
+static int __init reserve_bar_range(struct pci_dev *pdev, uint8_t reg,
+                                    uint64_t addr, uint64_t size, bool is_=
64bit,
+                                    bool prefetch)
+{
+    if ( pci_check_bar(pdev, maddr_to_mfn(addr),
+                       maddr_to_mfn(addr + size - 1)) )
+        return pci_reserve_bar_range(pdev, addr, size, prefetch);
+    return 0;
+}
+
+static int __init setup_bar(struct pci_dev *pdev, uint8_t reg, uint64_t ad=
dr,
+                            uint64_t size, bool is_64bit, bool prefetch)
+{
+    if ( !pci_check_bar(pdev, maddr_to_mfn(addr),
+                        maddr_to_mfn(addr + size - 1)) )
+    {
+        uint16_t cmd =3D pci_conf_read16(pdev->sbdf, PCI_COMMAND);
+
+        addr =3D pci_get_new_bar_addr(pdev, size, is_64bit, prefetch);
+        if ( !addr )
+            return -ENOMEM;
+
+        pci_conf_write16(pdev->sbdf, PCI_COMMAND,
+                         cmd & ~(PCI_COMMAND_MEMORY | PCI_COMMAND_IO));
+
+        pci_conf_write32(pdev->sbdf, reg,
+                         (addr & GENMASK(31, 0)) |
+                         (is_64bit ? PCI_BASE_ADDRESS_MEM_TYPE_64 : 0));
+
+        if ( is_64bit )
+            pci_conf_write32(pdev->sbdf, reg + 4, addr >> 32);
+
+        pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
+    }
+
+    return 0;
+}
+
+static int __init bars_iterate(struct pci_dev *pdev, void *arg)
+{
+    unsigned int i, barsize, ret =3D 0, num_bars =3D PCI_HEADER_NORMAL_NR_=
BARS;
+    uint64_t addr, size;
+    bar_callback_t cb =3D arg;
+
+    if ( (pci_conf_read8(pdev->sbdf, PCI_HEADER_TYPE) & 0x7f) =3D=3D
+         PCI_HEADER_TYPE_NORMAL )
+    {
+        for ( i =3D 0; i < num_bars; i +=3D barsize )
+        {
+            uint8_t reg =3D PCI_BASE_ADDRESS_0 + i * 4;
+            bool prefetch;
+
+            if ( (pci_conf_read32(pdev->sbdf, reg) & PCI_BASE_ADDRESS_SPAC=
E) =3D=3D
+                 PCI_BASE_ADDRESS_SPACE_IO )
+            {
+                barsize =3D 1;
+                continue;
+            }
+
+            barsize =3D pci_size_mem_bar(pdev->sbdf, reg, &addr, &size,
+                                       (i =3D=3D num_bars - 1) ? PCI_BAR_L=
AST : 0);
+
+            if ( !size )
+                continue;
+
+            prefetch =3D pci_conf_read32(pdev->sbdf, reg) &
+                       PCI_BASE_ADDRESS_MEM_PREFETCH;
+
+            ret =3D cb(pdev, reg, addr, size, barsize =3D=3D 2, prefetch);
+            if ( ret )
+                return ret;
+        }
+    }
+
+    return ret;
+}
+
+static int __init pci_setup_bars(void)
+{
+    int ret;
+    /* We can't change the signature of bars_iterate to only accept
+     * bar_callback_t, so use intermediate variables to ensure callback
+     * signatures are always correct
+     */
+    bar_callback_t cb_reserve =3D reserve_bar_range;
+    bar_callback_t cb_setup =3D setup_bar;
+
+    pcidevs_lock();
+    ret =3D pci_iterate_devices(bars_iterate, cb_reserve);
+    if ( ret )
+        goto out;
+
+    ret =3D pci_iterate_devices(bars_iterate, cb_setup);
+
+out:
+    pcidevs_unlock();
+    return ret;
+}
+
 static int __init pci_init(void)
 {
     int ret;
@@ -129,6 +231,14 @@ static int __init pci_init(void)
             printk(XENLOG_ERR "PCI: Failed to scan PCI devices (rc=3D%d)\n=
", ret);
             return 0;
         }
+
+        ret =3D pci_setup_bars();
+
+        if ( ret < 0 )
+        {
+            printk(XENLOG_ERR "PCI: Failed to configure BARs (rc=3D%d)\n",=
 ret);
+            return 0;
+        }
     }
=20
     return 0;
diff --git a/xen/common/rangeset.c b/xen/common/rangeset.c
index 0e3b9acd35..6a0c20ab41 100644
--- a/xen/common/rangeset.c
+++ b/xen/common/rangeset.c
@@ -180,16 +180,13 @@ int rangeset_add_range(
     return rc;
 }
=20
-int rangeset_remove_range(
-    struct rangeset *r, unsigned long s, unsigned long e)
+static int remove_range(struct rangeset *r, unsigned long s, unsigned long=
 e)
 {
     struct range *x, *y, *t;
     int rc =3D 0;
=20
     ASSERT(s <=3D e);
=20
-    write_lock(&r->lock);
-
     x =3D find_range(r, s);
     y =3D find_range(r, e);
=20
@@ -244,8 +241,18 @@ int rangeset_remove_range(
             destroy_range(r, x);
     }
=20
- out:
+out:
+    return rc;
+}
+
+int rangeset_remove_range(struct rangeset *r, unsigned long s, unsigned lo=
ng e)
+{
+    int rc =3D 0;
+
+    write_lock(&r->lock);
+    rc =3D remove_range(r, s, e);
     write_unlock(&r->lock);
+
     return rc;
 }
=20
@@ -357,6 +364,51 @@ int rangeset_claim_range(struct rangeset *r, unsigned =
long size,
     return 0;
 }
=20
+int rangeset_claim_aligned_range(struct rangeset *r, unsigned long size,
+                                 unsigned long *s, unsigned long e)
+{
+    struct range *x;
+    int rc =3D 0;
+
+    /* Power of 2 check */
+    if ( (size & (size - 1)) !=3D 0 && size !=3D 0 )
+    {
+        *s =3D 0;
+        return -EINVAL;
+    }
+
+    if ( e < *s )
+        return -EINVAL;
+
+    write_lock(&r->lock);
+
+    for ( x =3D first_range(r); x; x =3D next_range(r, x) )
+    {
+        /* Assumes size is a power of 2 */
+        unsigned long start_aligned =3D ROUNDUP(x->s, size);
+
+        if ( x->e > start_aligned &&
+             (x->e - start_aligned) >=3D size &&
+             start_aligned >=3D *s &&
+             start_aligned + size <=3D e)
+        {
+            rc =3D remove_range(r, start_aligned, start_aligned + size - 1=
);
+            if ( !rc )
+                *s =3D start_aligned;
+            else
+                *s =3D 0;
+
+            write_unlock(&r->lock);
+            return rc;
+        }
+    }
+
+    *s =3D 0;
+
+    write_unlock(&r->lock);
+    return -ENOSPC;
+}
+
 int rangeset_consume_ranges(struct rangeset *r,
                             int (*cb)(unsigned long s, unsigned long e,
                                       void *ctxt, unsigned long *c),
diff --git a/xen/include/xen/rangeset.h b/xen/include/xen/rangeset.h
index 817505badf..dcef96cb2c 100644
--- a/xen/include/xen/rangeset.h
+++ b/xen/include/xen/rangeset.h
@@ -61,6 +61,17 @@ int __must_check rangeset_add_range(
     struct rangeset *r, unsigned long s, unsigned long e);
 int __must_check rangeset_claim_range(struct rangeset *r, unsigned long si=
ze,
                                       unsigned long *s);
+
+/*
+ * Find a range subset that starts at or after s, ends before e,
+ * and is aligned to the size.
+ * If such subset is present it is removed from the rangeset and
+ * it's start is written to s, otherwise s is set to 0.
+ */
+int __must_check rangeset_claim_aligned_range(struct rangeset *r,
+                                              unsigned long size,
+                                              unsigned long *s,
+                                              unsigned long e);
 int __must_check rangeset_remove_range(
     struct rangeset *r, unsigned long s, unsigned long e);
 bool __must_check rangeset_contains_range(
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 13:36:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 13:36:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164702.1491625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLLsx-00055U-3t; Tue, 18 Nov 2025 13:36:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164702.1491625; Tue, 18 Nov 2025 13: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 1vLLsw-00055I-Ug; Tue, 18 Nov 2025 13:36:42 +0000
Received: by outflank-mailman (input) for mailman id 1164702;
 Tue, 18 Nov 2025 13: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=0ey2=52=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vLLsv-0004PV-2v
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 13:36:41 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9c6eb938-c483-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 14:36:39 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PAXPR03MB7650.eurprd03.prod.outlook.com
 (2603:10a6:102:1de::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.18; Tue, 18 Nov
 2025 13:36:34 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%7]) with mapi id 15.20.9320.013; Tue, 18 Nov 2025
 13:36: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: 9c6eb938-c483-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ETM/dOLm/ghkkx0IULJbbSi2EHCdpTF5Zh6mtAVFLObyAPLrMA8rOyWyui3p1MfjD/KVMTVB1VZDGXbEXnFIozD0U38udW8tBqRTksQIWoSFP0Q5wejMxodO0qGRXL86aOHrOwh536dCZJc7uWqXar2UMg3poGP8kSh/WrnvIVjylAxZXCctE37Ts49Wu7PDXaVz9hXKg9WYKRTRjbpmG0i1yGitdFjpV272uWgG66Ghe3pN8DLVWv4geNPe2Af/XGJGOq1mRPsOF/VWck+MK2pwLR50hNQ0oy02W6ld8CwOYJDzwwu6+7GzUcRLMLBxpxjm0RrJSVPNrC98HpZU/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=hwiFIXX4P610NqjFRS+PLIfG423P2YodlLBqgLz4QzE=;
 b=OUKo08fTM6gZkSY2LJpruQjLnzIl8uaOH5fHE4n6i0deq2PiedjmTRCqbhm5Gdk6ILGSTOHnfjiNmRFDDdrNmXuH5A3m397XyCrlhGb10/eIeX9ZBSciA8O/OxKYOWtIc0nJJynSPgGOj6mBtEbSpJlyJRPTyIDdpP3KrDBKV2mAeLVW+1J67o+KcVMhgK6ma1IaPHhE0H8xFnUxJgpzRlrNp5/CEkB4/7v69G+XwS8mqBw7dNArX4T9LmOgvxi1BssVkNflIlj/gFOy/yHsaBYZhkNIGurNaBXw0MbkiaZ+XGLTAeqx2CgDECmwbni+lcrp2s6Ui6lVWIKdrjFd+w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hwiFIXX4P610NqjFRS+PLIfG423P2YodlLBqgLz4QzE=;
 b=Sl0U8Ak74T6cpobpKSa3FIjjdTCB/p5OP0722ePagkUB9Hgo3gHpuzGsTrcwxmg5xo2BMi+mU20HIMX1g5XPvySdf6qO8gofs6Pu4xtsaMGoARCS0zruuPwq2BdiP06xCi5ECz7ATyWNAdsRHvUoKmX4J0dmWr2cmVexzngzrxc2e9iy7GYNS9TvaB/5mC4rAQlLE5F5D+EYO+SYpNp7h/1oPVBj48UrXIgsK7rk+QT0BxmXrzdPxKyptFi0wub+3JITFiVH9Nd186mGqTBv4iDPLYDoSjAGKDAD6t8yN9JQM5g3DTgPuzjUYX4QBGUMPYTrw68w7ui9PWM//sy1CQ==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Luca Fancellu <luca.fancellu@arm.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>
Subject: [PATCH v3 4/8] xen/pci: update DT for hwdom when it uses vpci
Thread-Topic: [PATCH v3 4/8] xen/pci: update DT for hwdom when it uses vpci
Thread-Index: AQHcWJBbokhYTBMFOESThWU0kpE72A==
Date: Tue, 18 Nov 2025 13:36:34 +0000
Message-ID:
 <e11028e291d0a43c9111323ce21fe35d92fc6695.1763462211.git.mykyta_poturai@epam.com>
References: <cover.1763462211.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1763462211.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_|PAXPR03MB7650:EE_
x-ms-office365-filtering-correlation-id: bc6ea9dd-73f6-49ad-b2aa-08de26a77dad
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|7416014|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?HPl5DA8njYhc2pwC/lZsCrjfOJKRMxGEtOtIRnd9j1/rH+fKszUSq0G5GV?=
 =?iso-8859-1?Q?lvxFyt9v7x7Up25xUuP9sWqMCRiHI3FLn/XjuG1ZzEXK9c9QpcHNG/pVpZ?=
 =?iso-8859-1?Q?69xMQ+/D9soKKgLxPHlsQeZWjzq57Jl9RFUxvhcrx1f4aQfHrR32+b9UuX?=
 =?iso-8859-1?Q?YPfqUHIKTvNLt5JSHkWoG17lKkhhEfOxKOgj9gPE9OyXUkDht7EEvogJbU?=
 =?iso-8859-1?Q?W/31Ia3/kLLvjPqD7DgaM3uY6LYbLqI+MrRp2MI9gJXrt4G5+p+z9XS1PG?=
 =?iso-8859-1?Q?Ft5Fkfdo4C2eU1zGD6QnUR7YUnaniCdPsVKYu9hn0TnZOUlHeAuK1qdoKt?=
 =?iso-8859-1?Q?b+f8ghfvEETcogyOi3alOw44e6AEzyH6aR/kdbjBAmCAf/z7P7+Sws1Yw2?=
 =?iso-8859-1?Q?E9zjaHruh3IwzVTIqq/SMApCX80OMjgeUuMSoC4nOIYy0SaoboYs18vbgp?=
 =?iso-8859-1?Q?nL4GtRW4HoGcAHHd31z9EFGvXxqTfFrrWnvgOFFWJ6I1HxInsuwBYSWdKp?=
 =?iso-8859-1?Q?MKYeQM+dNBynVmz1qtAeKi36xpLZZHvfv9Ykg6cxaSZc7xOZb132IeHKb8?=
 =?iso-8859-1?Q?2H1pqCJCeMhXBspgarPWgd8RWXhX19PtIt/xS8VayBFv+3GSowyQYwo7Xy?=
 =?iso-8859-1?Q?zPnG7T5iL8OkWdeTaS1aAtgLPT54voT2kkCRAVm3204NzQup277Y/9QB+2?=
 =?iso-8859-1?Q?HDJMxWbgF39SStxonCLdAqFajg+t0vh1cmD8NPLPycMXm5mTj68TdjPhF4?=
 =?iso-8859-1?Q?7tNeqg0NJmqbklEsC+i74p06wOc7jHwx+tWklJ9HPp9GhbE9w4YQ8qeMCT?=
 =?iso-8859-1?Q?n86Ge1U6rGnLcL6ZRcdTb2w/zGvFDZhhXjwWtb5lvXcCOKST+PnORYlqAt?=
 =?iso-8859-1?Q?k4UuS2/tVuSMFjIfft/rDtVvmFhYeDnTErNrvInRUPfJBsboR8PLN9tddG?=
 =?iso-8859-1?Q?nAF/qVAgGqvw6XN3yaHgxeK2ue5bxAowUxUgkPyoI2yjdkxpdY9icxUnmC?=
 =?iso-8859-1?Q?BNoyUnqT5u8GmVoCMhaAJqjCO1jHPl4//cRLGL/LZw6VtqyAadJgJhmoWQ?=
 =?iso-8859-1?Q?01v7vClQzXFZ/l0Kg+OxU+H3tULePWG5hlhN8axoT569uGAHxYXaPwkYY1?=
 =?iso-8859-1?Q?Z2AaJcqYwHgLFcJ7ZlPxa57YT6tjN685te2oSSsO3E2db65pYAgYAi9ce8?=
 =?iso-8859-1?Q?/T4zWeacIqErN2vzGz6J+A6tyBl0/UQFLCiQzdqSCzRbMsX1bOZ64V6/FX?=
 =?iso-8859-1?Q?4wjriUtAjF6jMwnACVR3kIOgi/4UzO+qiYdAIaqW4YbB1zXVAuvSK5Eotj?=
 =?iso-8859-1?Q?OlRneMPKPumrDI0w4GnFPQta9HH3ZgWZlbnvZzbH4HiOBJ1NbhmVwO/9GC?=
 =?iso-8859-1?Q?x5BTQNy+Muj4EPmXcjM3QWHvSnEG03lBt7Mqg8lSI/CgFWqQqoe/GDVgc6?=
 =?iso-8859-1?Q?Uaw71ntCSTwf/MEbCv9Wh+h0Onjd+kq2OSjAlcGqEkK1ToiQFPKIT45Z5j?=
 =?iso-8859-1?Q?ubDRrmAP2RtcN+vuNCTIJq92lbd5Sm+2QXeZ/Ouz4opubicYNFSFImlT+K?=
 =?iso-8859-1?Q?bIof6/07r7DE+IlyYwYJ5DSebnQE?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?oM7vih9qJlk8VMwq89wswJyLpD+aGRTgZ1lC9n/gFFMa5m9MiNtOPbMtpP?=
 =?iso-8859-1?Q?nm+999QkF/np1TfCK6IT+4RU2LRNgc2AlCV96z2UZdG228gD9IsVD966QK?=
 =?iso-8859-1?Q?cwDSFTCg3wzQQuz4GZSJwEq5ywy2ftWs8xImzBUa6l8mvradLne35ORygP?=
 =?iso-8859-1?Q?sxMXAjwM4c9QTkNT/Rkd8LHMM6g2xpInjVlZJkJqhGZ+F/4seIDD96jV3e?=
 =?iso-8859-1?Q?TWtSm6NRcDxZ4BWm/IOboJ5iC9WZOabrGUg/mrn6UjVeoR0dbQqXfECqUs?=
 =?iso-8859-1?Q?qjLXJl6r0ayYKuuAAOXn8UPjGThOegPOxsL+PHxFgF1P7mpy4aDG7n+/Cx?=
 =?iso-8859-1?Q?OzCqtSKcDrx3g+i+MfzttQDvdgSO8mzTvxl6labFk4WX8WbrKQXZhbKlqH?=
 =?iso-8859-1?Q?ioAgQnvMvi4F+a5XcOPO1eJiUR25zuJyLH+cbu7Z6DtZtQRY7RIT64XVJg?=
 =?iso-8859-1?Q?9IUsZL+4B0I1rUE625vokepCEwH6gym9tZhJwRozovmK/5IcCiDkaMMaNc?=
 =?iso-8859-1?Q?TAbt2hRnsBmpReYsgNk9/W4EEwYhMgrY3BWR5L8ubeLCUBeCDj0AkOTcqN?=
 =?iso-8859-1?Q?YX4Qt7TrlutC5/C+bQj/BDO5IUZbG74O95bj6gF3TDDppmR91v2KZzk12j?=
 =?iso-8859-1?Q?pXDBeEt8C5M1oilLw0hI+vMBRqLDUkWBNCbK0f2xECSM7iNa4OW2CMBPzG?=
 =?iso-8859-1?Q?AizYnqPBEiqPXyaBxJoLJ0nu5S4G2XWR2rU4cDazitnT14cTxzXrmvjz62?=
 =?iso-8859-1?Q?fhg2Pkf667vdGrEbdR4N6dOxSTCnbx7Z0JsEPhkoz4vTn/6oRHpFVyhjtE?=
 =?iso-8859-1?Q?2o7LVTjCX9AMimIIJ5dUFoyMv5K2Jqjwi0TUxpxSExe8YEL6P0u4j3ZuWL?=
 =?iso-8859-1?Q?ZmHEDEWlCztZfHO0V37djQtPwDO41EQB9TtY34GornY1GXILLp0Zog57hS?=
 =?iso-8859-1?Q?whxB3kG6ZsPcRWZORypdS3+9LFyaCV/JA+z+tOMAKRtSMZSZgE7HzWcfbq?=
 =?iso-8859-1?Q?QdjwnYj+/A/H4/JqhvszbP0CyRG7T8rjPwaSz7fBSPzu/0MJOqzABOiKpc?=
 =?iso-8859-1?Q?EUD16Vmywz4yU+2ZXh3pGNwFTLopnkEb4ziWC7nHRNMtXFWLLFsc/lH9LP?=
 =?iso-8859-1?Q?FpKZIv7iAuhjnK2tD0rmXLNB1ZrxtezauH/fO6vP/5TtVnIOKeW20e/324?=
 =?iso-8859-1?Q?7o++fGh7Qgnne3SyVhn6kkfPMwlCEQn1wDYPr5UYqXMCFvwoqfmeZAl4cr?=
 =?iso-8859-1?Q?wpNYa/8yCg6D3dwGMNRJK833DVqLKZpIXPcntdIgXO0BcAJkLXblvtxpdZ?=
 =?iso-8859-1?Q?doDEgAp2e/4shFzvW9FA2jijrsMybQlaU303a3GQJrHazrTqx97vq3bSbm?=
 =?iso-8859-1?Q?SEVP7w/7fH96exgMzCQjZoaZL5RFrn3BndUE5HA+NtBaRpegrpWCqkviPj?=
 =?iso-8859-1?Q?4epsft+0wL7jW0zG2nCig6WWXHL66ns4RsJqI/RhSMpVXm8MiWhHngiiUg?=
 =?iso-8859-1?Q?OB1evvgQs7L11eBNlu4YJGTYq0e6MVGGxqwI9H/GMvCK/laxKotwvA0ydD?=
 =?iso-8859-1?Q?/JCzANxV2vDcuEo/WAwFwECUyX39fbMTm5/hoWzIFwu9ZNi4CCN2WYFNnc?=
 =?iso-8859-1?Q?Mqc3H7AKMfgN9uSBP/7jqw41icQ39W+hhbcvmRAdNZ/QjiQsD0MOrj9A?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bc6ea9dd-73f6-49ad-b2aa-08de26a77dad
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2025 13:36:34.3049
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: IUMGCYjrn0l9naYUM0DFJBbpdoqg0M1ExqHDg1sZEqG2spNtj1q4kDNFPcUgs0XFCUkfwdtzZCK32JLHgiBVmg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB7650

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

When pci-scan is enabled and Xen supports vpci for guests, Xen will
scan the pci bus to find devices and emulate the pci bus, so the hw
domain must see the emulated bus instead of the real one.

A new helper function, hwdom_uses_vpci, is implemented and returns true
when pci-scan is enabled and Xen is built with
CONFIG_HAS_VPCI_GUEST_SUPPORT=3Dy. When hwdom_uses_vpci() is true, a vpci
node is created for the hwdom device tree.

Depending on whether the guest is using vPCI or not, and whether the
domain is using host layout or not, generate the appropriate device tree
nodes for the guest and handle the right MMIO regions traps.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
v2->v3:
* use has_vpci_bridge in place of hwdom_uses_vpci

v1->v2:
* make make_vpci_node static
---
 docs/misc/xen-command-line.pandoc |   4 +-
 xen/arch/arm/domain_build.c       | 151 +++++++++++++++++++++++++++++-
 2 files changed, 153 insertions(+), 2 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line=
.pandoc
index e5f7275bdc..4a546f94a7 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2084,7 +2084,9 @@ Flag to enable or disable support for PCI passthrough
=20
 > Default: `false`
=20
-Flag to enable or disable Xen PCI scan at boot.
+Flag to enable or disable Xen PCI scan at boot. When the flag is enabled, =
the
+hardware domain cannot have access to the real PCI bus, it will see the bu=
s
+emulated by Xen.
=20
 ### pcid (x86)
 > `=3D <boolean> | xpti=3D<bool>`
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 4bbffdf535..7423605b61 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -41,6 +41,7 @@
 #include <xen/grant_table.h>
 #include <asm/grant_table.h>
 #include <xen/serial.h>
+#include <xen/resource.h>
=20
 static unsigned int __initdata opt_dom0_max_vcpus;
 integer_param("dom0_max_vcpus", opt_dom0_max_vcpus);
@@ -1557,6 +1558,142 @@ int __init make_chosen_node(const struct kernel_inf=
o *kinfo)
     return res;
 }
=20
+#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
+struct vpci_param {
+   uint64_t vpci_ecam_base;
+   uint64_t vpci_ecam_size;
+   uint64_t vpci_mem_base;
+   uint64_t vpci_mem_size;
+   uint64_t vpci_mem_prefetch_base;
+   uint64_t vpci_mem_prefetch_size;
+};
+
+static int __init handle_vpci_range(const struct dt_device_node *dev,
+                                    uint32_t flags, uint64_t addr, uint64_=
t len,
+                                    void *data)
+{
+    struct vpci_param *vpci =3D (struct vpci_param *)data;
+
+    if ( !(flags & IORESOURCE_MEM) )
+        return 0;
+
+    if ( !(flags & IORESOURCE_PREFETCH) && addr < GB(4) )
+    {
+        vpci->vpci_mem_base =3D addr;
+        vpci->vpci_mem_size =3D len;
+    }
+    else if ( flags & IORESOURCE_PREFETCH )
+    {
+        vpci->vpci_mem_prefetch_base =3D addr;
+        vpci->vpci_mem_prefetch_size =3D len;
+    }
+    return 0;
+}
+
+static int __init make_vpci_node(struct domain *d, void *fdt)
+{
+    /* reg is sized to be used for all the needed properties below */
+    __be32 reg[((GUEST_ROOT_ADDRESS_CELLS * 2) + GUEST_ROOT_SIZE_CELLS + 1=
)
+               * 2];
+    __be32 *cells;
+    char buf[22]; /* pcie@ + max 16 char address + '\0' */
+    int res;
+    struct vpci_param vpci =3D {
+        .vpci_ecam_base =3D GUEST_VPCI_ECAM_BASE,
+        .vpci_ecam_size =3D GUEST_VPCI_ECAM_SIZE,
+        .vpci_mem_base =3D GUEST_VPCI_MEM_ADDR,
+        .vpci_mem_size =3D GUEST_VPCI_MEM_SIZE,
+        .vpci_mem_prefetch_base =3D GUEST_VPCI_PREFETCH_MEM_ADDR,
+        .vpci_mem_prefetch_size =3D GUEST_VPCI_PREFETCH_MEM_SIZE
+    };
+
+    if ( domain_use_host_layout(d) )
+    {
+        struct pci_host_bridge *bridge;
+
+        bridge =3D pci_find_host_bridge(0, 0);
+
+        vpci.vpci_ecam_base =3D bridge->cfg->phys_addr;
+        vpci.vpci_ecam_size =3D bridge->cfg->size;
+
+        res =3D dt_for_each_range(bridge->dt_node, handle_vpci_range, &vpc=
i);
+        if ( res < 0 )
+            return -EINVAL;
+    }
+
+    snprintf(buf, sizeof(buf), "pcie@%"PRIx64, vpci.vpci_ecam_base);
+    dt_dprintk("Create vpci node\n");
+    res =3D fdt_begin_node(fdt, buf);
+    if ( res )
+        return res;
+
+    res =3D fdt_property_string(fdt, "compatible", "pci-host-ecam-generic"=
);
+    if ( res )
+        return res;
+
+    res =3D fdt_property_string(fdt, "device_type", "pci");
+    if ( res )
+        return res;
+
+    /* Create reg property */
+    cells =3D &reg[0];
+    dt_child_set_range(&cells, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_C=
ELLS,
+                       vpci.vpci_ecam_base, vpci.vpci_ecam_size);
+
+    res =3D fdt_property(fdt, "reg", reg,
+                       (GUEST_ROOT_ADDRESS_CELLS +
+                       GUEST_ROOT_SIZE_CELLS) * sizeof(*reg));
+    if ( res )
+        return res;
+
+    /* Create bus-range property */
+    cells =3D &reg[0];
+    dt_set_cell(&cells, 1, 0);
+    dt_set_cell(&cells, 1, 255);
+    res =3D fdt_property(fdt, "bus-range", reg, 2 * sizeof(*reg));
+    if ( res )
+        return res;
+
+    res =3D fdt_property_cell(fdt, "#address-cells", 3);
+    if ( res )
+        return res;
+
+    res =3D fdt_property_cell(fdt, "#size-cells", 2);
+    if ( res )
+        return res;
+
+    res =3D fdt_property_string(fdt, "status", "okay");
+    if ( res )
+        return res;
+
+    /*
+     * Create ranges property as:
+     * <(PCI bitfield) (PCI address) (CPU address) (Size)>
+     */
+    cells =3D &reg[0];
+    dt_set_cell(&cells, 1, GUEST_VPCI_ADDR_TYPE_MEM);
+    dt_set_cell(&cells, GUEST_ROOT_ADDRESS_CELLS, vpci.vpci_mem_base);
+    dt_set_cell(&cells, GUEST_ROOT_ADDRESS_CELLS, vpci.vpci_mem_base);
+    dt_set_cell(&cells, GUEST_ROOT_SIZE_CELLS, vpci.vpci_mem_size);
+    dt_set_cell(&cells, 1, GUEST_VPCI_ADDR_TYPE_PREFETCH_MEM);
+    dt_set_cell(&cells, GUEST_ROOT_ADDRESS_CELLS, vpci.vpci_mem_prefetch_b=
ase);
+    dt_set_cell(&cells, GUEST_ROOT_ADDRESS_CELLS, vpci.vpci_mem_prefetch_b=
ase);
+    dt_set_cell(&cells, GUEST_ROOT_SIZE_CELLS, vpci.vpci_mem_prefetch_size=
);
+    res =3D fdt_property(fdt, "ranges", reg, sizeof(reg));
+    if ( res )
+        return res;
+
+    res =3D fdt_end_node(fdt);
+
+    return res;
+}
+#else
+static inline int __init make_vpci_node(struct domain *d, void *fdt)
+{
+    return 0;
+}
+#endif
+
 static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
                               struct dt_device_node *node,
                               p2m_type_t p2mt)
@@ -1615,7 +1752,12 @@ static int __init handle_node(struct domain *d, stru=
ct kernel_info *kinfo,
         dt_dprintk("  Skip it (blacklisted)\n");
         return 0;
     }
-
+    /* If Xen is scanning the PCI devices, don't expose real bus to hwdom =
*/
+    if ( has_vpci_bridge(d) && dt_device_type_is_equal(node, "pci") )
+    {
+        dt_dprintk("  Skip it (pci-scan is enabled)\n");
+        return 0;
+    }
     /*
      * Replace these nodes with our own. Note that the original may be
      * used_by DOMID_XEN so this check comes first.
@@ -1766,6 +1908,13 @@ static int __init handle_node(struct domain *d, stru=
ct kernel_info *kinfo,
             if ( res )
                 return res;
         }
+
+        if ( has_vpci_bridge(d) )
+        {
+            res =3D make_vpci_node(d, kinfo->fdt);
+            if ( res )
+                return res;
+        }
     }
=20
     res =3D fdt_end_node(kinfo->fdt);
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 13:36:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 13:36:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164699.1491596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLLsu-0004Pt-9v; Tue, 18 Nov 2025 13:36:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164699.1491596; Tue, 18 Nov 2025 13:36: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 1vLLsu-0004Pm-4y; Tue, 18 Nov 2025 13:36:40 +0000
Received: by outflank-mailman (input) for mailman id 1164699;
 Tue, 18 Nov 2025 13:36: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=0ey2=52=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vLLss-0004PV-O0
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 13:36:38 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9a0e168d-c483-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 14:36:35 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PAXPR03MB7650.eurprd03.prod.outlook.com
 (2603:10a6:102:1de::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.18; Tue, 18 Nov
 2025 13:36: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%7]) with mapi id 15.20.9320.013; Tue, 18 Nov 2025
 13:36: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: 9a0e168d-c483-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dsgT4JlWgjdTEO5W/cqBfLThrza7pIEkqhBxyCt5amD+RFf1yURz3jVucYhmTR7LIQqFGE1eHYiNkZfkn9D/kjO1orviE/wVs/oN6lVZ9z8UnN2eEmHkWGXXgzKPA1UFAMOXynW6XTorz1OsDsWVO6+M3Yrk0kQlZJyA5+s5+IxLZCoXI3vRAByPEAljY7/6sjaO8D3nwXjurXqfguJk0aGsC04KGeKRNYbJa18/R6PvO5gyQMt6hi4sTxpeYxPIn1RXhFuucTUAoXGUwqhxx4UUc/zsKjQYhIxlKKlVRcZn1LkOKzk34uqtInkgxzPB39ZvZOHo9s/waBUeBVUKFw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MkB35NieCXk1vIie1ryoHvk/rHk8k3GfGPh6rTR6Gp8=;
 b=J0qQ7bqaW6Wf3c6tsx0xvg5qvTwb5tPsBpXCaCktFjOrKp8Po/YVFXhbfwkhzJZIRIK4THbhhglTDQp3rHCkjL0lUMFeTQieM7c1uLSqLr+YYobF6k8LCr4q/KyI1X/0uBhouT2MFbCEkqVv+SUSUMfV4rGhiS/UXFFr85x2L86qF9FCH6uqp3Dt2LOSH6D3a+1wbai19JDTtcnZ/k8A3KmYAOjMSkS8Iq9tZifBS4aeTAUAGhR3X2Ei4JWp45oQnnUTLacXiujK0PyblPP1fArJNu/qyrBhlMhFYyv/XxmshUfhEzNCy+C6J0I4n+4GBjKK8Xos4x5u44J7CuHpDw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MkB35NieCXk1vIie1ryoHvk/rHk8k3GfGPh6rTR6Gp8=;
 b=Uyqh29VOoHMkt1aAGe3DgRnf0fC5AsD/RqO1Litd8n2r91lxeqF3SIM1afYHiaFkGGJdhuImTJQMuRZQAQ18WWBcxUN6ULqIeLt6x7gpHPMR7BX5JPCKdFz5RGemtiFybp37MELXnrbXqwgbNCxwUrSwRftxt30IQsLSParVa64OE2ut6Gyc73A3e4Ogx1FzN4F9FZcT/IERYW9wOXdCW0WFw7vRAde5lWPr/imgH8FvnfwolA+lJjteAXG3ImgwSA+21oPDx6VHXqwTGJRwTr6cE47rTDXAR0AzO5jOss/4gAX8O/2da3CW68O/G3Qt8qFs/7dhLOspnd7fBdnRZQ==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: [PATCH v3 0/8] Implement PCI device enumeration on Arm
Thread-Topic: [PATCH v3 0/8] Implement PCI device enumeration on Arm
Thread-Index: AQHcWJBZXXA6diOiFk6VZUR45VGpMw==
Date: Tue, 18 Nov 2025 13:36:32 +0000
Message-ID: <cover.1763462211.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_|PAXPR03MB7650:EE_
x-ms-office365-filtering-correlation-id: 74e783ed-758d-40be-258e-08de26a77c8e
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|7416014|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?8YEepBJvnDDdfqTg8sn6zrAbipI9aBODERSsBdP3GT3bG3evXz3Rmc8tY5?=
 =?iso-8859-1?Q?qmwSxJ2STHcPcC5yxnrghKt3XHyDqU4g+pwMEURwaYsPv53oQ8MKoxdDUz?=
 =?iso-8859-1?Q?wWZdQ16Mc4GS8gtaTcWbjDcxyptFZdtHS5mweQVPT0ee24LqPuRIa9RNNd?=
 =?iso-8859-1?Q?weEHM7n5RGxTUDmy1mBxMW1HU+T9gHFxNcC+Wye8C0IXMNKWW3wUPsw6kl?=
 =?iso-8859-1?Q?klyTdV6D6yMImjV4NsmLwvCpJP2RtLHsHErQSGXXu/UQsyfXkAOAkMqjMf?=
 =?iso-8859-1?Q?VCiWWaiVRotd+D4oejzPgYbCP3SjAOwlDeqeiPk5fi+XGoq2JOLH9sdQEP?=
 =?iso-8859-1?Q?FNl/CziGV3bOB4BNGPs3PeuoAUlHFdHGI+otMlvwj7xqVD8HY8/uB9eZc6?=
 =?iso-8859-1?Q?Uh6I2iOckkBO2LuMwNUcuPN5ye2wyDo2TuJBEAPiw7mMNK7CeA7kOTSS0U?=
 =?iso-8859-1?Q?H7aB5Ui+GQ3ojDgXNuVoQ52jJ5YyfM0DxQ8QIKvSX1mGL/X1N1HXVdmslE?=
 =?iso-8859-1?Q?yTsFC7aVBKYzoIwS1uN7Mdd2Thh8ybrR76miKQQc2HQXijVzlh02IOl3DR?=
 =?iso-8859-1?Q?Z9R1mYLZjJkYBDiXcy7eF/vsBND62ruG8Dcq7uWEFeS2P0/ccultk+k+R8?=
 =?iso-8859-1?Q?tnFlezNE+7v4g+tszRTpGe7SSXHQOv3WWSPWAI6Bi98M3p27E8tCXeTBav?=
 =?iso-8859-1?Q?8RLk7BpIN7ZV8Q6WiDSB9e/KWBi4GpHWMRYbEo04KXe9WyQlLnHEEmZPah?=
 =?iso-8859-1?Q?yV5PKyNSlFj9GLrU6UEARhYctHUCkZ0smnmg4B2/v2H36T/oh5TkgrrY1C?=
 =?iso-8859-1?Q?4Nopc9c9umUUh2n723m6QpYCIaHz9xiJ3eQobcLPSE3tk29MoY2IqYd19i?=
 =?iso-8859-1?Q?Bjmx3ArsU682exx4jQaIeof5qrTX0Qg0O6aTb0uKYQ2L+uWk+Y83UsXSIq?=
 =?iso-8859-1?Q?zJ1xB7Oq70yF3UCGjMkwF1fkfkz/7fgLbYQ7yrZCCYwOy0djDoMJfSVili?=
 =?iso-8859-1?Q?iAnhSor07qFMDraRhhyn2Y+m7DX0FH+TIf9cM/fqY4fr8flDX2q0wiOyUN?=
 =?iso-8859-1?Q?4/kjpkb0KjfWxFbE1DxHsyzOis6zsfOyj+3mmNP9a30IjZv/NOYO9ZPtZD?=
 =?iso-8859-1?Q?wON+pHx8MoH2BDAH0we7br7GMSunQS6yIGwL66L9R9KxN+2CIQCDoTpok9?=
 =?iso-8859-1?Q?z9vmpGuf5czO/hBohQNuncR9hNYlJv6BqpH7MKBOv7vTOaO/1gqg9HIJ7r?=
 =?iso-8859-1?Q?av4G8vPUksMM6lGhNP7OcV0XtTwX+Akvdu5DUTL5pHZLM+dox4mW0wwEaQ?=
 =?iso-8859-1?Q?hs6UpNskbd+VyDDZNHR1RcTUx4Qn986QIcc2covESQ90gS5sUKlqaEWFuH?=
 =?iso-8859-1?Q?AJ8TlJeUBCAusif5203Jb/8+RpAL1zlPRbOhMGARx5rWKeb2sUc7kykaLN?=
 =?iso-8859-1?Q?2rmo3Nty5vS4V40kZH7FSLh5zrTgOekRAgKbRjrcNRpjXyFgE4UZBJiEiL?=
 =?iso-8859-1?Q?Hx2pzv4NjnL2P9AyGlcHszSpsMdWlppnpYzVy6CjXSq/zbDxfg3bWLCVwM?=
 =?iso-8859-1?Q?LOD6is1c9aZAmDK4B9IRD/xfc7u4?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?xQVPeNIBpy2zS1Z/fXrbPFOKaxoyrZgRxIvJklkbJXDgW+jc1mLn2viPOO?=
 =?iso-8859-1?Q?ZrBC39GxoPddDRFEI4Vpnt214FJJl59nQGu67gmT0AiAelAv2AGPh77oi8?=
 =?iso-8859-1?Q?zvgD6jb5Ca+2Bp/eRNVaWAooxTx2T62M5jivMOST01psOG5DqUa9xfXBYa?=
 =?iso-8859-1?Q?CELthhuXvGwqKm46+Gw+l8LB14o0D3LOG65aoMyPgg/s0mMuyOsi9bTvtS?=
 =?iso-8859-1?Q?7FjpkNupC0oXCJKAUTWZxBHe135ez5zvtcP0pAMgQiPmfxeArYpp7kXBXa?=
 =?iso-8859-1?Q?7IY94/0SoLcg8l5WNhD2VBFGbedP2QTKw9yLAJVLFLVv9wF4iNBGMpfi9G?=
 =?iso-8859-1?Q?VNY9ymY8VIa/WH/91q4oc6ea+UZ6pPd9xM8L1Sm6QeX2IYXrnkf5JGjH/K?=
 =?iso-8859-1?Q?eJmvQzETPdWKSpKN3iEf+hVyggFDRkWhOdwN5KYnu8Wu6u3AXRmRpNjJtr?=
 =?iso-8859-1?Q?y2+c+ukLhWv5xIDr4TfYC3O+CjckciyqMybQYERqZdyaDzxrX7qSQxBnwM?=
 =?iso-8859-1?Q?lWYlfuEFbt+rzK0xDWQujoBTa9X4wAUX+CnSaN58dtY/3wZW9jMEDoQ/1v?=
 =?iso-8859-1?Q?s2f5MBB4J+jZ1ZfmS6nhlX2WqST3yVSE97+Rp3O4Xozu70dQt4nwGxMxbA?=
 =?iso-8859-1?Q?GJ6ZOxJgp3R0hbEVWOaPjYrlv55gLLRnCSR2KX8Y5E0CU/qNlf7ESgbmlu?=
 =?iso-8859-1?Q?Lokz/3diP7AZ8tM2/RgW1n+dXz5VmS86clD483CMI7aiJEVXbuwvkcYvSs?=
 =?iso-8859-1?Q?oh7d7ayXKXlZRwFI/QeYu3XJxML1i8Co0DAGfhY0kTl45y82Q9vGUJNlS+?=
 =?iso-8859-1?Q?N3BIJQ2no3r9Lv9Dt0snLXq31phhCp8m4hcQ/0LfwuHfQOogD/9qV5pNcx?=
 =?iso-8859-1?Q?IL3CtgVVEtuxM5Wamb9nmJSHmMr7Vo6/0YT8odHpeMSZLskuTh+YV0NBKT?=
 =?iso-8859-1?Q?wtsaPIzN6xER+n0Ta2gVAq5EJXmFTO16urjqtcvbDsSdK0DlcTRt0fenFF?=
 =?iso-8859-1?Q?BKdiQx78T/P4Kd5tgOgWvkSD6X1S9usShhqq6+UjKRVmYCAOHyFbXbGDdB?=
 =?iso-8859-1?Q?RCPex60+6nOs8SniHhvS45ZLJCXPJzuyVdamgY61zaQG7xRbVK+a8g+zJz?=
 =?iso-8859-1?Q?/kCkYYZWAJIcV3ckSKYXS7PBxOKFDFWpDqH6adcToyMmPTj1Ts22hHdbzL?=
 =?iso-8859-1?Q?2X0D50xJwyzKZF4ZyLey+6RHgJ0muBqZ1rAWXK+LpGnucft1vUUdD/wA86?=
 =?iso-8859-1?Q?ldHr2cRHjme1Om+y/26SOKztUcBMlaeFzSfnt/SLAbfam7yiM6UwmzG4sw?=
 =?iso-8859-1?Q?wmZcaT5G6MeptyuAbJRhQEobhm0rvN32RVT9xiCZ94X9ASI9vqLFj4FAtZ?=
 =?iso-8859-1?Q?rJCZM17IwhTdoSk5LvLo3xroGGpF66bVP8gqweh1Pavk0DddNFDnGSr39W?=
 =?iso-8859-1?Q?uKT1UwjFtqKGfubEBhRo1Epnm6tiOxUPJI3vKUdaQje6d6i1qYZNYmduG4?=
 =?iso-8859-1?Q?cmVZZtkalAy6PufYG/vv8wBkW8CtTAOzuriQnUOa26zxwUxsIvLJwzvf75?=
 =?iso-8859-1?Q?t9JpW9c5mIHtMeVVi9QjGUA5m6yRukuihgpWfSIeELPJfoTWLmTM9WdB8/?=
 =?iso-8859-1?Q?unOguzPMu9XoB0eSWu3BzURDF2JmC2B11naSX9ezGkRt4ngTIqJI0CTA?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 74e783ed-758d-40be-258e-08de26a77c8e
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2025 13:36:32.4028
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 4AAsNTdmEhfeFkOrkF1QM5J0pPD770y0+rYbzLLDTGuDBUIe9MwwIe8iqDNJLnmO4Qx1bb8S1TlGN511JI9sNg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB7650

This series adds basic PCI device enumeration in Xen on Arm. This will allo=
w us
to not rely on Dom0 enumeration for supported controllers, which will enabl=
e PCI
passthrough for dom0less setups.

Enumeration is disabled by default and can be enabled with "pci-scan" cmdli=
ne
option.

For now the discovered devices are only assigned to HW domain. To achieve t=
his,
several things need to be done:
1. A VPCI node is created for HW domain device tree, and the real PCI nodes=
 are
hidden from it.
2. Discovered devices BARs are initialized.
3. Register handles for VPCI are updated to change behaviour depending on
whether or not the calling domain uses VPCI or HW PCI, instead of relying o=
n
is_hardware_domain()

Tested on QEMU.
Arm:
* pci-scan=3Dyes pci-passthrough=3Dyes
* pci-scan=3Dno pci-passthrough=3Dyes
* pci-scan=3Dno pci-passthrough=3Dno
X86:
* no special options

v2->v3:
* add arm/pci: Mark pci_host_common_probe as init
* reorder patches
* see individual patches

v1->v2:
* drop xen/pci: disable pci_device_{add,remove} when hwdom uses vpci on arm
* see individual patches


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

Luca Fancellu (2):
  xen/pci: update DT for hwdom when it uses vpci
  xen/pci: assign discovered devices to hwdom

Mykyta Poturai (2):
  arm/pci: Mark pci_host_common_probe as init
  arm/pci: enable vpci for hwdom when pci-scan is enabled

Stefano Stabellini (1):
  xen/vpci: introduce has_vpci_bridge

Stewart Hildebrand (2):
  xen/dt: pass flags to callback in dt_for_each_range()
  xen/pci: initialize BARs

 docs/misc/xen-command-line.pandoc    |   9 ++
 xen/arch/arm/device.c                |   4 +-
 xen/arch/arm/domain_build.c          | 154 ++++++++++++++++++++++++++-
 xen/arch/arm/include/asm/domain.h    |   3 +-
 xen/arch/arm/include/asm/pci.h       |  10 ++
 xen/arch/arm/include/asm/setup.h     |   2 +-
 xen/arch/arm/pci/pci-host-common.c   | 110 ++++++++++++++++++-
 xen/arch/arm/pci/pci.c               | 139 +++++++++++++++++++++++-
 xen/common/device-tree/device-tree.c |   5 +-
 xen/common/rangeset.c                |  62 ++++++++++-
 xen/drivers/passthrough/arm/iommu.c  |  15 +++
 xen/drivers/passthrough/pci.c        |  11 ++
 xen/drivers/vpci/header.c            |  74 ++++++-------
 xen/drivers/vpci/vpci.c              |   4 +-
 xen/include/xen/device_tree.h        |   2 +-
 xen/include/xen/rangeset.h           |  11 ++
 xen/include/xen/vpci.h               |   8 ++
 17 files changed, 565 insertions(+), 58 deletions(-)

--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 13:39:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 13:39:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164766.1491684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLLvm-0000iu-FD; Tue, 18 Nov 2025 13:39:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164766.1491684; Tue, 18 Nov 2025 13:39:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLLvm-0000in-Cg; Tue, 18 Nov 2025 13:39:38 +0000
Received: by outflank-mailman (input) for mailman id 1164766;
 Tue, 18 Nov 2025 13:39: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=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLLvl-0000if-16
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 13:39:37 +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 05a37da1-c484-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 14:39:36 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-640a503fbe8so9557162a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 05:39: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
 4fb4d7f45d1cf-6433a4b1fadsm13697576a12.31.2025.11.18.05.39.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 05:39: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: 05a37da1-c484-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763473175; x=1764077975; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YExxYdA3mXEoxETd+tuMXcDg0yE/yxcQGKFlhqouBd4=;
        b=Ne1Ffmmk9DDKKVWy8HUjErlx0BAssqe2Lcg/dq1JZkhQzLcabrRgi/234zYqEGA9PG
         b0hy7pRSR8tocoyK5ORhJYxoQ20ORprYO28g1NDzeKk+srw+fZWX6T8IJtSZ8gsyoayN
         d3O2VQ8gWEF2NQz9C0WHx4d6uuq/M5haUG1qJLp6hX6PBKOp0zJKy4d9R9HE14odjV2E
         b5zNOTP5Cettz6IfeakHXET6sw7QDzG3oowwygVS6ZIfCSVFXAygfLhrRcZbk3KfMP9T
         QlXABRZQ9vImDojkryI/zoZ2nCl/RAIAwxXn3qbjF0Yu1MM911KH+bR37F/8TO8LGUdL
         V1tQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763473175; x=1764077975;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YExxYdA3mXEoxETd+tuMXcDg0yE/yxcQGKFlhqouBd4=;
        b=rcyWf2z6WwfnpRXL5NcQZlgNfUvWGxmaDWGFYudqoDvafxoI9H5+YpO4rTZC0bwpXz
         b5/OzgyVfnzwXS+bWQ8n4jyl+ZBKoDu8IhbPC9OLWrpv/0IkXsC7/o4XbC4iJgydmbBn
         HcKbGLfKekctCGV+5KTSSa4TpnKMxmnxnyB3LdoFxgHL5R15zvas01eJUOmlVMdpswkw
         NO8rSPXtvmO6rxxUrkh5M//YSbPcsQLwqM2u8cZyhD/+iee2cvpEcsnv6RQJ43601YgT
         ioVjV3OkLECz0LWtbJWZ2FTzYz21fOpKaG1nL9O9KiaoTGkHESXW6GeSAOfT0pjWKr86
         apKA==
X-Forwarded-Encrypted: i=1; AJvYcCXLLJDh1b6/jH3K10o+uLtXJTm+yfCKyI3M1SDCdVEMfUgz6BVD9wbUfcPBN87jPy6RZtSSlt0jrBo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy4jwPC5w2tixicBecHLn6QpOSr+nn1Tj8t4p16IzwR1Gl0HuSt
	RJuFBJv5RP8w9wAxyUJRXcpQTvaAtUJVuMQzaqBvgOjRtCoOEd1GWFPPx6/ENO2kag==
X-Gm-Gg: ASbGnctrikZ9hmJULoWiqIHXvTV06pSKpevP7Wyu8FHsDpQTLAvbK9RzEBSKSqyrOmj
	INyk4nRFQR616ZMSeKyr+gY9L7i4uS/qrZ38SyoWSS3L7UhjL1WtKAtVzdmTKrt33hZI4l7e1xz
	Q6vecMN/VKwVRgWfD/gTE/Ibn8DRsaw6bcwaSmJ7bXLsIM28rb3c2kvviMgPjIweEvx0MX0fvCg
	M2R7VPL9UkP58+SHcZzWnQ40JB14WORdrHnuGUKqfp1eQd1ZTgOrnS9ed7tf5AGB+P/J0wu0ubO
	D5q44EQ5Tjh7nK30R1QMHGBALhWhwT+f09CvVO7Y5YGhVV78kkMuyz+pFSSq7y1yUDeFY/1c33v
	/6h6IzEu4LT64NbYcST4IHbzQtP1+quztwNZ/VPcPmk6A/50D6UqETH9icZlmPTrhWKyzz6IhfF
	jCDvvcaGOMqzDzjpI+E5DLZ57sxt2ZwAqGmOBNcfG6lN39dPN8bmPpC+dbWAkEtYnMHwQQ9xCh5
	nf9mBRLfjQpBQ==
X-Google-Smtp-Source: AGHT+IEjF87qxNSk9eoVwq/msAFMfObf++dKtJGVa8Bg7AN4oxZNi+LvmkbMSeEr3wsXN0ZKC7OEcg==
X-Received: by 2002:a05:6402:4403:b0:640:b497:bf71 with SMTP id 4fb4d7f45d1cf-64350e006b3mr16824585a12.8.1763473175245;
        Tue, 18 Nov 2025 05:39:35 -0800 (PST)
Message-ID: <c5636b73-cbbe-4480-94ce-928d4f01dd74@suse.com>
Date: Tue, 18 Nov 2025 14:39:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v3] xen: make VMTRACE support optional
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 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>
References: <20251114142207.279834-1-grygorii_strashko@epam.com>
 <225378f4-0ebd-4c77-ae77-807bbb03b0bb@suse.com>
 <5ebcbafc-d391-4541-8df3-2742cef43be8@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: <5ebcbafc-d391-4541-8df3-2742cef43be8@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.11.2025 13:42, Grygorii Strashko wrote:
> On 17.11.25 18:52, Jan Beulich wrote:
>> On 14.11.2025 15:22, Grygorii Strashko wrote:
>>> --- a/xen/arch/x86/hvm/Kconfig
>>> +++ b/xen/arch/x86/hvm/Kconfig
>>> @@ -35,6 +35,18 @@ config INTEL_VMX
>>>   	  If your system includes a processor with Intel VT-x support, say Y.
>>>   	  If in doubt, say Y.
>>>   
>>> +config VMTRACE
>>> +    bool "HW VM tracing support"
>>> +    depends on INTEL_VMX
>>> +    default y
>>> +    help
>>> +      Enables HW VM tracing support which allows to configure HW processor
>>> +      features (vmtrace_op) to enable capturing information about software
>>> +      execution using dedicated hardware facilities with minimal interference
>>> +      to the software being traced. The trace data can be retrieved using buffer
>>> +      shared between Xen and domain
>>> +      (see XENMEM_acquire_resource(XENMEM_resource_vmtrace_buf)).
>>
>> Please check adjacent options above or ...
>>
>>>   config HVM_FEP
>>>   	bool "HVM Forced Emulation Prefix support (UNSUPPORTED)" if UNSUPPORTED
>>>   	default DEBUG
>>
>> ... below for how proper indentation would look like here.
> 
> There is a mix in Kconfigs - some places <Tabs> some places <Spaces> :(
> Will change to <Tabs>

Any place where only spaces are used is malformed. "help" text with its special
indentation is a separate thing, of course.

>>> --- a/xen/arch/x86/vm_event.c
>>> +++ b/xen/arch/x86/vm_event.c
>>> @@ -253,7 +253,8 @@ void vm_event_fill_regs(vm_event_request_t *req)
>>>       req->data.regs.x86.shadow_gs = ctxt.shadow_gs;
>>>       req->data.regs.x86.dr6 = ctxt.dr6;
>>>   
>>> -    if ( hvm_vmtrace_output_position(curr, &req->data.regs.x86.vmtrace_pos) != 1 )
>>> +    if ( IS_ENABLED(CONFIG_VMTRACE) &&
>>> +         hvm_vmtrace_output_position(curr, &req->data.regs.x86.vmtrace_pos) != 1 )
>>
>> Would be nice if the too-long-line issue here was also address, when the line
>> needs touching anyway.
> 
> I left it as is for better readability as an exception.
> Will below be ok:
> 
>       if ( IS_ENABLED(CONFIG_VMTRACE) &&
> -         hvm_vmtrace_output_position(curr, &req->data.regs.x86.vmtrace_pos) != 1 )
> +         hvm_vmtrace_output_position(curr,
> +                                     &req->data.regs.x86.vmtrace_pos) != 1 )
>           req->data.regs.x86.vmtrace_pos = ~0;

Almost, albeit the off-by-1 indentation may also merely be an effect of your mailer.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 13:45:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 13:45:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164825.1491695 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLM1d-00033i-2R; Tue, 18 Nov 2025 13:45:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164825.1491695; Tue, 18 Nov 2025 13: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 1vLM1c-00033b-VJ; Tue, 18 Nov 2025 13:45:40 +0000
Received: by outflank-mailman (input) for mailman id 1164825;
 Tue, 18 Nov 2025 13: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=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLM1b-00033T-OY
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 13:45:39 +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 dd357b0f-c484-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 14:45:37 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b735e278fa1so822617266b.0
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 05: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
 a640c23a62f3a-b734fed9d38sm1375305966b.67.2025.11.18.05.45.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 05: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: dd357b0f-c484-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763473537; x=1764078337; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zkETE9o8Sl5QoRq38JwUTwe7vTd7IIWStNkxRer9PfU=;
        b=dy/cmpYau1vXoWRbhOnT9W0BJv2uNU8wI82BGnfJIOZGy9FeTvb0mqMwKmAzmTSBbC
         sqU08NKhZmZ+jAl3Sc230+2rX/Rb2Fi7ALrGCdkOUhc1KcTlwT4OXR/ORZff4IE/0CqS
         68tvp+SfSZ4ER/17/tPzX7V5b7q6/cCedBVAmH2bN9bjquYi09f2xD8sxwTdPsa1zXtG
         0lt5AXpd4pfLmdP29hHfL92brkxxT+L/uslgKvTFScXoVophkGmGZld2jRgMUZDSgGoU
         4uNLrT4gkMmpGDxx5W9HNp7a7y9+2vVPHTHxP/efuusP+m8I8jXfK8ysj0+VmIe+FR6G
         SkKg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763473537; x=1764078337;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zkETE9o8Sl5QoRq38JwUTwe7vTd7IIWStNkxRer9PfU=;
        b=mNegT/SvLU9WgNOMfMgEbMt/ubr3WOF+Uo1mV1K/UGQUkGJwAk8E5x4VksmGiXS5ch
         wXEl+Vj7h3Cru7ebIstWoN9m3IQ1m6Z1t7UtY9eOLV+V/X5P2mo81YwnMCMMJmNCqIPX
         ATbyDkSqmUdVh8FzwQyCUf+CT4hUyngyUmO2fWcxZ5FRSSUjQyqeGuTfMjKB4NvsoS4v
         yPJaI8lerM+XDTPSIJQDYbp5LxeVcrrEaqatYFtoLNA4ICOB0xcc9VuCEAhA2m1618n8
         mM6wma3HcTXmpO2o9yrrUipLybpFlTdk/3nfLXHvCDd6uMN5wFehrcu2tRjcE8FspCbh
         CtWQ==
X-Forwarded-Encrypted: i=1; AJvYcCVkwdhtXx3UKLTA5EIJ4SPQIPDFji0Uagm7sITAxHvCvwSwbQo8F05Q5Vhs+VnHVF8qgEnjigWfLwE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyyC039DxP5s8Rr9Uc1frZbA5VIliQ9g74nrAITACc1u1twmace
	Pi9kU5JHUGpGwKOQ2rbKNYTTyByMSWnqDK/DpZXn778yn/IisLw/OdWZXcx5johkdg==
X-Gm-Gg: ASbGncvyLtU8IcrPrSz9HQhT9dEFFzio5wd9anqtWYWZKe+n+ON2/WCsiSqgvA4rwO7
	dqkOeElByCgJC+ROjG5XuO2LaNCMklJIyQHh/lRlSivNEsT9O2hEgb9APPxHxd3lmilgPkTnsO5
	jG7S9NK7z7fMO7Px3+U4CBDAuLZM/rK2CP1hofRP6Ux9MkjPB9m2z8q/k0GSSaZFqVgFrq6Jshg
	+nauzkIHOeqkZsUj3SF54u3WvuOoFcWKpyu18tpBI91gvfXgvSFHsXIaJ6BvxK/LPF2VLDX04Fu
	IMFy+eRb+/XuTPQWnqRTKPqj/+QUy4HSqmlTSvY5bBHavIrxxU1lYsROpfuTdYJ+81nKVR6NMcI
	2SyP7v2QZ5eV1xZ+8cW6rbovW8wAIqozX3vehA+0pHqKxsafF1lwSQAkR7DWtUreEB/0lLJLS1R
	a50glfh75HpBJWHQlrystDDA5UtAxMOUGqKbzZsS9jhZ0jxiZosocxQxPmlTZEo+61
X-Google-Smtp-Source: AGHT+IHBu3yk1XMXDPAkFn7cqqCJdvT54+4z1YWG/Xj9t9Rjq13/xEiYKQy5Do42c3rTrK3GpDp3lw==
X-Received: by 2002:a17:907:97c3:b0:b72:a899:169f with SMTP id a640c23a62f3a-b7367828ab8mr2065746766b.4.1763473536976;
        Tue, 18 Nov 2025 05:45:36 -0800 (PST)
Message-ID: <567f2759-fa03-43bd-9ae4-75e0e3811b60@suse.com>
Date: Tue, 18 Nov 2025 14:45:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v4] xen/x86: guest_access: optimize raw_x_guest() for
 PV and HVM combinations
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251114140117.270461-1-grygorii_strashko@epam.com>
 <11c3929a-977b-4ef8-aaaa-9aea01657b04@suse.com>
 <fdd51da7-c8dc-4c0f-aaaf-a9fd2094bcd4@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: <fdd51da7-c8dc-4c0f-aaaf-a9fd2094bcd4@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.11.2025 14:08, Grygorii Strashko wrote:
> On 17.11.25 18:43, Jan Beulich wrote:
>> On 14.11.2025 15:01, Grygorii Strashko wrote:
>>> --- a/xen/arch/x86/pv/Makefile
>>> +++ b/xen/arch/x86/pv/Makefile
>>> @@ -14,6 +14,10 @@ obj-y += ro-page-fault.o
>>>   obj-$(CONFIG_PV_SHIM) += shim.o
>>>   obj-$(CONFIG_TRACEBUFFER) += trace.o
>>>   obj-y += traps.o
>>> +obj-$(CONFIG_PV) += usercopy.o
>>
>> Just obj-y with the movement.
>>
>> However, is the movement (and was the adding of $(CONFIG_PV) in the earlier
>> version) actually correct? The file also produces copy_{from,to}_unsafe_ll(),
>> which aren't PV-specific. This may be only a latent issue right now, as we
>> have only a single use site of copy_from_unsafe(), but those functions need
>> to remain available. (We may want to arrange for them to be removed when
>> linking, as long as they're not referenced. But that's a separate topic.)
> 
> It is confusing that none of build cfg combinations have failed
> (HVM=y PV=n, HVM=n PV=n) :(
> 
> copy_to_unsafe_ll()
> - called from copy_to_unsafe()
> - copy_to_unsafe() has no users (unreachable, MISRA 2.1?)
> 
> copy_from_unsafe_ll()
> - called from copy_from_unsafe()
> - copy_from_unsafe() called from one place do_invalid_op() with
>    copy_from_unsafe(,, n = sizeof(bug_insn)).
>    Due to __builtin_constant_p(n) check the copy_from_unsafe() call
>    optimized by compiler to
>    get_unsafe_size(*(uint16_t *)to, from, 2, UA_DROP, ret, 2);
> 
> as result copy_from_unsafe_ll() is unreachable also (?).

Yes, these likely all want to become library-like, so they are linked in only
when actually referenced.

> If those function are not subject to be removed, the
>   usercopy.c can't be moved in "x86/pv", Right?

That's my take, yes.

> Making copy_{from,to}_unsafe_ll() available for !PV means
> rewriting usercopy.c in some way, Right?

"Re-writing" is probably too much, but some adjustments would be needed if
you want to keep the "unsafe" functions but compile out the "guest" ones.
It may be possible to compile the file twice, once from x86/pv/ and once
from x86/, replacing the self-#include near the bottom of the file. The
former would then produce the "guest" functions, the latter the "unsafe"
ones.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 13:56:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 13:56:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164840.1491704 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLMBd-0005Ty-Um; Tue, 18 Nov 2025 13:56:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164840.1491704; Tue, 18 Nov 2025 13:56: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 1vLMBd-0005Tr-SH; Tue, 18 Nov 2025 13:56:01 +0000
Received: by outflank-mailman (input) for mailman id 1164840;
 Tue, 18 Nov 2025 13:56: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=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLMBc-0005Th-0I
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 13:56:00 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4f4d7650-c486-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 14:55:58 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-640a503fbe8so9588845a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 05:55: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
 4fb4d7f45d1cf-6433a2d746bsm12693461a12.0.2025.11.18.05.55.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 05:55: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: 4f4d7650-c486-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763474158; x=1764078958; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yXMmHKHF04iuPJ2Eitam8swpXNzENN911QwFNRlzvDI=;
        b=PGbqVuBLEnS1k+DE2aHh4RE4M+GfvKkalNZgrWLdZJMMz7Jz3iv2Ix7sNJ9z3eXvKg
         neW+2AExgV1oiWFtE+ts7ZndL7EG6rQUw2TdheoJQm3f/DP2a3i4hY8XqVe+iVi3NBty
         Ndsc7wqGR/52ZhC8WTMkLok70hz63Jg9eVJfnklkZ2+YfNnBtk5ES8lTf8fXSHz/YWtE
         D9a+WnWgAAcHydNHZz5p/hSJIwWYLlh3M5j4dr82ggy5X3lp0Gkv5WGDR2VKGew0sxjU
         kOXrWm82j72dltHqLCgGbXZQGc6o+P5tFTe3hd7qJKd3pdPUUAe0x9Db5Z4ndlLN2+tN
         ugeg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763474158; x=1764078958;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yXMmHKHF04iuPJ2Eitam8swpXNzENN911QwFNRlzvDI=;
        b=lHiFtUXynwaqkXC3YYZYZLG/iLg8arRNTz95LCsrxonT5742zeIhNxRVfTdP3qz/GN
         fZ18ZWPvgGPJxzNELKoFbzzEiHqvwAjMFpzvVldNbG71Dk+vsb2BH+JKWo5G0JonYmyN
         dGQ09BziE+tImVfQ29MXKmZK3IyLjibPVgseAht2Nxs7ou2pEwFlo6V8mA/2E0HJdfn8
         jGMcJjOKP3lwzrfa37bMcQpY1n1tTc8TBaAeVC23+hpnxwFFF4EoCDUg+6Z7ql3iiptz
         65C0U7K9JKl55X05JCAbVOzIy1twbl0JrXkGsKutfwpPflwVYuPBRNYr2X5FodsOGPBo
         U4qQ==
X-Forwarded-Encrypted: i=1; AJvYcCVextTHVY+dyd1OhcJgssqlHD6PqqDJeUZx19cVbuAzFh7yRftPk5EjlcDJIm9OurXi0VFV8AuvJ20=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx/3K+BLI1Vhw0kHvgRLzRcJOfR6csnpMLjZE065qNwUUlkWpfk
	iMC+do7uN9sHUOvWu2iUDRILAnmOEflKOLW/P4XrNBXsz90F8KT6ZjCoTLf1qBODIQ==
X-Gm-Gg: ASbGncst1BG77e7oamf1KgQxUnSB9QrS7xy44IJDF7Rv8dtFMP6XsdtbuRbOzTskeBn
	u1eKMItIIY8PbMJrTdRVg83xYbxfKOiHEuXvfsuUE0ZYLGLivDWnScbfwfmadPU9yULkz30jVN4
	SJTttaeVPaX9+IAYzbz2054/t7PKjGfhgUPmNieYVvDRkCZcqbmCvwf4K06rNDUHu2VCmCFPCbn
	n1fg3BW2+Ck5ZrFJ3mGxuoLFA1wAnZwNWZUHV+1dlYJVgUN+VQ842CSnBMAZFBM7xbSmZLorox1
	Wp5tp7ZwGsGtbLFHbJWRMqbwodlk6BrKlPoEm7/8bbVReYl11QEeBJvDvITSpWw6ZsgDlcIa2Uk
	o+IrOsvq1B1A7hG11uDobMtXc/wikPV2nC6KxZbW1Xmk79dAZyciOiIGSwVcFlWRgUvXamEPYeg
	72r1hyMrGADc8dtqey0rAW2uBJMyedvfEJh3cB6urfuV4P3y6TSiADFA6eo1ck8/9B
X-Google-Smtp-Source: AGHT+IEzId7fsXdsLrZWFFDDflKL+QBZhfp2aK5mIZNmuoUZsQvHScYF1kq0vv20sXDtNErbZ3zuKw==
X-Received: by 2002:a05:6402:1455:b0:640:b247:fede with SMTP id 4fb4d7f45d1cf-64350eaf223mr14404820a12.29.1763474157893;
        Tue, 18 Nov 2025 05:55:57 -0800 (PST)
Message-ID: <5e9ff734-6186-4635-8d06-884d97271a05@suse.com>
Date: Tue, 18 Nov 2025 14:55:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/8] xen/vpci: introduce has_vpci_bridge
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 Stefano Stabellini <stefano.stabellini@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1763462211.git.mykyta_poturai@epam.com>
 <207b6aef763d12426385efb925beeebbbb56f6b3.1763462211.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: <207b6aef763d12426385efb925beeebbbb56f6b3.1763462211.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.11.2025 14:36, Mykyta Poturai wrote:
> From: Stefano Stabellini <stefano.stabellini@amd.com>
> 
> With Dom0 now being able to use a virtual bridge we need a way to
> distinguish Dom0 using HW bridghe from Dom0 using virtual bridge.
> Introduce a new macro has_vpci_bridge that would determine if a domain
> should be treated as using HW bridge (only Dom0 with pci-scan disabled)
> or as using a virtual one (all DomUs and Dom0 with pci-scan enabled)

Where does the connection of "pci-scan {en,dis}abled" with "kind of bridges
in use" come from? There is a connection for what you're trying to achieve
right now, but this doesn't want setting in stone now, to avoid making it
harder to decouple the two again later.

> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -230,7 +230,7 @@ bool vpci_process_pending(struct vcpu *v)
>  
>              read_unlock(&v->domain->pci_lock);
>  
> -            if ( !is_hardware_domain(v->domain) )
> +            if ( has_vpci_bridge(v->domain) )
>                  domain_crash(v->domain);

At this example (applies more or less similarly elsewhere as well, and needs
answering separately for every instance), and effectively re-iterating a
point made previously: Why is it the kind of bridges that are used which
determines whether to call domain_crash() here?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 14:05:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 14:05:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164855.1491716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLML4-0007sZ-W2; Tue, 18 Nov 2025 14:05:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164855.1491716; Tue, 18 Nov 2025 14:05:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLML4-0007sS-RX; Tue, 18 Nov 2025 14:05:46 +0000
Received: by outflank-mailman (input) for mailman id 1164855;
 Tue, 18 Nov 2025 14:05:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NGhq=52=bounce.vates.tech=bounce-md_30504962.691c7d32.v1-933f98d3ebb747559bd5c245d8f0847e@srs-se1.protection.inumbo.net>)
 id 1vLML3-0007sM-Hv
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 14:05:45 +0000
Received: from mail180-15.suw31.mandrillapp.com
 (mail180-15.suw31.mandrillapp.com [198.2.180.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a97fa3b1-c487-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 15:05:40 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-15.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4d9mbk2YBHzPm14yB
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 14:05:38 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 933f98d3ebb747559bd5c245d8f0847e; Tue, 18 Nov 2025 14:05:38 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a97fa3b1-c487-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763474738; x=1763744738;
	bh=0pgxcerppOl/qwYG/Nkwun2tEMKb9oNJ5epfmApEBXA=;
	h=From:Subject:Message-Id:To:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=C9wcrB0l4qwOisBRSmPLU4mGlm309hc1UZ2uaWbg7hDMjXjQsS7xl43szNi050Cp6
	 ElUP4v0KzxiL0LFklFJ/XhbdhqAlVCR++RE8VWRCVC5ikqAN2bBjPtWX5LeI6Eso7I
	 GQUHOUGMJPE7sq/5ZS9GtlMxBV8aCDcwaR/4OcWShrGZ81VFic0TJKlZkDrr3JSuiJ
	 0F6jl2WrUucsqN3R2a4nxfzvEzVsWLuQymmGxk8Z+a3bdxPQgZwPMXBniWflHF4Gzd
	 5ROJhbOUEAAuOCc9ocCx8U6NEq/idQJYob3YGvC13ODBiuxM7aWKQQD2K8/KufWpS8
	 bCFgvUY4UreaQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763474738; x=1763735238; i=teddy.astie@vates.tech;
	bh=0pgxcerppOl/qwYG/Nkwun2tEMKb9oNJ5epfmApEBXA=;
	h=From:Subject:Message-Id:To:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=Zm7u19MuA7OwppNIJUIeiSvZJg3kGXkVEJKAa5rkXlr7kz2E8tgol+HrEyuTDy7gw
	 e/oZrj7SuTI3h3N9MY9kgsR04+WofFPh020u29srf4dLNAirYEtekxr8mqW3IWaH0o
	 M4cypyWzOZhkGOtFE2eX7EAtTYl3B+UAlE+EreVJjC6bTrx8vF/xkklxJ+QOwcGics
	 DqnfYBaYCw1gGIcqne7UMtZ+uSAVhOlP+eqaMm79AB2x2qyZITODc+C8K7sfDHOzPM
	 WzqQ/OjEXdquhFRAW98WXlM6SrgZ0gGch+qy37C5xlHBa+k3bugfejovQoMjx2GNSa
	 qJB4r0N9KrUMA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC]=20x86:=20Alternative=20AP=20bringup=20protocol=20(i.e=20SMP=20on=20SEV-ES)?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763474737721
Message-Id: <3b43d1a7-b1b2-4c5e-861d-16a89a973034@vates.tech>
To: Xen-devel <xen-devel@lists.xenproject.org>
References: <c68013da-dde4-4073-9031-67b9a1fd87f0@vates.tech>
In-Reply-To: <c68013da-dde4-4073-9031-67b9a1fd87f0@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.933f98d3ebb747559bd5c245d8f0847e?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251118:md
Date: Tue, 18 Nov 2025 14:05:38 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 30/10/2025 =C3=A0 18:46, Teddy Astie a =C3=A9crit=C2=A0:
> Hello,
> 
> In order to implement SMP support in SEV-ES, things quickly gets quite
> complicated.
> 
> As a PVH guest under Xen, we have 2 ways of initializing a vCPU (aside
> BSP) :
> - VCPUOP_initialise
> - INIT-SIPI with vLAPIC
> 
> The first one is a hypercall that takes vcpu_hvm_context where provide
> some initial state for the vCPU. The second one works by initializing
> the vCPU at some cs.
> 
> This works, but for instance under SEV-ES (*), the vCPUs state (VMSA)
> must be measured then stays encrypted, which means that we can't set the
> vCPU state once the VM is started; which prevent both of the methods to
> work.
> 
> IOW, all vCPUs state must be known before the guest actually starts
> running (and ideally be defined as a part of boot ABI in order to be
> able to reconstruct the VMSA for remote attestation).
> 
> GHCB specification provide a way to deal with it ([1] SEV-ES GHCB
> standardization 4.3 SMP Booting).
> It is mostly based on a "AP Jump Table" address that can be queried (and
> also modified by inside-guest UEFI firmware) by the guest through a GHCB
> operation to the hypervisor.
> This AP Jump Table is the address of a IP:CS combination that will be
> used to initialize the vCPU (e.g as a part of a long jump instruction
> that the vCPU is initially pointing to).
> 
> But it's UEFI firmware centric, and is still relies on
> hypervisor-specific behaviors. And it relies on the hypervisor to give a
> proper "AP Jump Table" addresses (originally given by guest UEFI
> firmware) which could be tampered (defeating some of the security
> aspects of SEV-ES).
> Another issue is that the CPU initially starts in real mode, which
> complicates the placement of such AP Jump Table.
> 
> Here is a idea on a alternative functionally similar to SEV-ES
> specification but more flexible and somewhat simpler to implement :
> 
> Introduce a new special page "Alternative AP bring-up page" which
> contains some header (similar to vcpu_hvm_x86_64) and some vcpu
> initialization logic that sets up some control registers, EFER, GPR,
> ..., and then long jump to some guest-provided CS:EIP.
> 
> All !BSP vCPUs start at the entry point with a CPU state similar to the
> one defined in direct boot ABI, all vCPUs are initially stopped.
> 
> In order to initialize a vCPU :
> - sets a appropriate vCPU state in bring-up page
> - calls VCPUOP_up on this vCPU
> - wait for vCPU initialization termination
> 
> This is similar to the one proposed in GHCB specification with some
> differences :
> - vCPU starts in protected mode (instead of real mode), which avoids
> some of the AP Jump Table placement restrictions, as we now can put our
> spacial page along the other ones (xenstore, pv console, ...)
> - we avoid potentially complicated initialization trampoline chains
> - we can start the vCPU directly in long mode (from guest PoV) if
> appropriate EFER and control registers values are provided
> 
> And the "AP Jump Table" protocol can still be implemented on top of this
> proposal, given that the guest UEFI firmware supports it.
> 
> Given that this expands some aspects of the "direct boot ABI", I would
> like to gather some feedback on the idea.
> 
> Thanks
> 
> [1]
> https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/spec=
ifications/56421.pdf
> 
> * regarding SEV-SNP, a different (simpler) method for vCPU
> initialization is supported as the guest can directly provide a usable
> VMSA with the entire encrypted state of the vCPU through
> 
> 
> --
> Teddy Astie | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech
> 
> 

Ping.

I still looking for a feedback on this.


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Tue Nov 18 14:42:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 14:42:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164866.1491725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLMu0-0005iP-JA; Tue, 18 Nov 2025 14:41:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164866.1491725; Tue, 18 Nov 2025 14:41:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLMu0-0005iI-GW; Tue, 18 Nov 2025 14:41:52 +0000
Received: by outflank-mailman (input) for mailman id 1164866;
 Tue, 18 Nov 2025 14:41: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=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLMtz-0005iC-62
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 14:41:51 +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 b292e78d-c48c-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 15:41:42 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b739b3fc2a0so333439766b.3
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 06: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
 a640c23a62f3a-b734fdac667sm1342383466b.58.2025.11.18.06.41.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 06:41: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: b292e78d-c48c-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763476901; x=1764081701; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZMuMGpaip/XciVhLNa2zvYIsWdsArOHX32hcuN7k2Nc=;
        b=ckVBpeEGBMmirtXWMNqbNGiVU77yR6CzGXSbd20cyhys6vdeNimTKVqKp+yEjq5jAk
         cSXTBAXSYRvHPCg71WHnb6SS0q1DFugJ8TQZ158Rike5KUnSSZBkYd17oV6JsErRSlNN
         Xy5zOHFSdUExbRe/TfcAOueAyk4hftZpKtSfLQ6wJfHJQCI0rN/0XaRA7N9gwF6HhhHb
         PhamJPSjfIDfDE2RUBBtNSX5ndrfzCWenyu+RxyBfRl5nXxybfeL+gXiFsRaftPtd0hH
         RvCijTRqQ12nsV1cLv97OBA5OBmFXyc4W6M1FYxWQORXz/nuIV7avRGMlaF8oqQgDBS8
         1WPQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763476901; x=1764081701;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZMuMGpaip/XciVhLNa2zvYIsWdsArOHX32hcuN7k2Nc=;
        b=K3se2vjW9QM0Loa4yfn/CAkZct6FCZcwlApbJP0nTlqCalsR0WFJid9DKuTjwZX7/y
         9NoANmUWXjH700sJox4SRPMhHcxjWMk+Vhohjhguy6/HG0kfiopyDnWwV7byWXmp1wl8
         mmV9NpXxrnp9UPZAAgMS+m61rVGfoq+EF8Iug6Fm9aXYhJr3BRZZooyq8e8HBMgWOjVS
         GyNymPIFnhYku20atFReQ2I8MZERgFxuELdwdT0uYwhIQtWotBItf6cQqKE5ojHaBS0Y
         EMR5OzaXDS8HU8Md4mqquI8CDnHcyn3xFKd7Z+DFczRdEQuNQTAl6cG0HaPUcKT6qGad
         hMPg==
X-Forwarded-Encrypted: i=1; AJvYcCUZD9L3iJRYlcGH+bvv/IOiToprSnjKHcX3J40sA6YoeZzE0nm9bCVTv+amtT9kSQZg5cvJtLuwyQE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxKkVt5pJfYdZsfLWc4J9/VI5qSy8HYTanmRdVFCOXm2xMGpf0k
	OJviMIp4Pbnzo1qzb95SaCNrx8bQk06SLT5hn02Uoq4sA/1DrmifLKevGTZlPc6d2g==
X-Gm-Gg: ASbGncvrgoP8OWnoElV+JsiNBdzN5v+yFPIAfgE9EWt/TWlI7tDZnuqHg2DZjcxM3gi
	kP7TgOoJiOk6AipiIThkP/2SltY4u7AG2pdQUt2THynLcakl860KhNYgJCziO/kYyDFlVmam8k9
	MKfXrarzaZLjMZ43YhZFdp0S1lwzO3W60hBqDjssR1mFr3urdQY4vYHsPjb4H+URWUpLALOZAWB
	CHyoS6rFEsmjFd47P2CF8qHD7DnYxeQtoPPtNaFLl1Zfm94Z38tEgPfXjUu21J6bWz776O3PTh+
	XlU0Xz6nlyzR7zOhLN1Z4VPQncXSpQB3GEiyg7bZkY0w1rptYrDgRwgRHIM/Fn46+NbKoGbpkuS
	nzTOzZ2XmebcslCRRAtI8XTwyQMdfa/eVQ8dBwdD9H8aF0pbasKpehMmkTuJgPl9loCEubCiaTC
	dQKg6MfEeQ5ij8wkUpBoTFtZAI+EmS37e6EeL9mSmBTSApiSYL+pT8HjVIUdaC9Ur9UCvL1K0XJ
	PkTm47xlKpZ2dKN1LdReCDG
X-Google-Smtp-Source: AGHT+IFgdrF1UatBnorbAT+aldRoPhoO6ZewLG79FVuHIDNvePiXvzBcFGT+dh+VdJzJtLg1iw8Ukg==
X-Received: by 2002:a17:907:9804:b0:b73:7418:dfeb with SMTP id a640c23a62f3a-b737418f0d1mr1426862166b.6.1763476901273;
        Tue, 18 Nov 2025 06:41:41 -0800 (PST)
Message-ID: <063fbe0f-8ebc-4a13-a65c-c3225c469b16@suse.com>
Date: Tue, 18 Nov 2025 15:41:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 6/8] xen/pci: initialize BARs
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1763462211.git.mykyta_poturai@epam.com>
 <20b26b4a3f180139971105ee1b23cc4b0a82092b.1763462211.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: <20b26b4a3f180139971105ee1b23cc4b0a82092b.1763462211.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.11.2025 14:36, Mykyta Poturai wrote:
> @@ -232,6 +233,25 @@ static int pci_bus_find_domain_nr(struct dt_device_node *dev)
>      return domain;
>  }
>  
> +static int __init add_bar_range(const struct dt_device_node *dev,
> +                                uint32_t flags, uint64_t addr, uint64_t len,
> +                                void *data)
> +{
> +    struct pci_host_bridge *bridge = data;
> +
> +    /* Ensure we are not using bits in a rangeset */
> +    BUILD_BUG_ON(sizeof(unsigned long) != sizeof(uint64_t));

Can you please help me interpret the comment?

Also, rather than != isn't < sufficient to check for?

> @@ -283,6 +303,18 @@ pci_host_common_probe(struct dt_device_node *dev,
>          bridge->child_ops = &child_ops->pci_ops;
>      }
>  
> +    bridge->bar_ranges = rangeset_new(NULL, "BAR ranges",
> +                                      RANGESETF_prettyprint_hex);
> +    bridge->bar_ranges_prefetch = rangeset_new(NULL,
> +                                               "BAR ranges (prefetchable)",
> +                                               RANGESETF_prettyprint_hex);
> +    if ( bridge->bar_ranges && bridge->bar_ranges_prefetch )
> +    {
> +        err = dt_for_each_range(bridge->dt_node, add_bar_range, bridge);
> +        if ( err )
> +            goto err_child;
> +    }

I'm pretty sure I commented on this already: Without an "else" use sites
of the two rangesets need to have NULL checks added, plus imo there would
want to be a comment here explaining to readers why omitting the "else"
(and hence proper error handling) is okay.

> @@ -476,6 +508,66 @@ bool pci_check_bar(const struct pci_dev *pdev, mfn_t start, mfn_t end)
>  
>      return bar_data.is_valid;
>  }
> +
> +/*
> + * Find suitable place for an uninitialized bar of specified size in the
> + * host bridge ranges
> + */
> +uint64_t __init pci_get_new_bar_addr(const struct pci_dev *pdev, uint64_t size,
> +                                     bool is_64bit, bool prefetch)

Seeing the comment - why only "host bridge"? Especially for Dom0, if other
bridges are present in the system, I think you won't get away without having
a virtual counterpart for evey one of them (or alternatively without hiding
all of them plus the devices behind them).

> +{
> +    struct pci_host_bridge *bridge;
> +    struct rangeset *range;
> +    uint64_t addr = 0, end = GB(4);
> +
> +    /* Make sure we can store addr in a rangeset */
> +    BUILD_BUG_ON(sizeof(addr) != sizeof(unsigned long));

While "store" looks right here, ...

> +    bridge = pci_find_host_bridge(pdev->seg, pdev->bus);
> +    if ( !bridge )
> +        return 0;
> +
> +    range = prefetch ? bridge->bar_ranges_prefetch : bridge->bar_ranges;
> +
> +    if ( size < PAGE_SIZE )
> +        size = PAGE_SIZE;
> +
> +    if ( is_64bit )
> +    {
> +        addr = GB(4);
> +        end = ~0;
> +    }
> +
> +    if ( !rangeset_claim_aligned_range(range, size, &addr, end) )
> +        return addr;
> +
> +    printk(XENLOG_ERR "Failed to claim BAR range %lx-%lx from rangeset\n",
> +           addr, addr + size - 1);
> +
> +    return 0;
> +}
> +
> +/*
> + * Remove already used memory from the host bridge bar ranges
> + */
> +int __init pci_reserve_bar_range(const struct pci_dev *pdev, uint64_t addr,
> +                                 uint64_t size, bool prefetch)
> +{
> +    struct pci_host_bridge *bridge;
> +    struct rangeset *range;
> +
> +    /* Make sure we can store addr in a rangeset */
> +    BUILD_BUG_ON(sizeof(addr) != sizeof(unsigned long));

... it doen't here, as ...

> +    bridge = pci_find_host_bridge(pdev->seg, pdev->bus);
> +    if ( !bridge )
> +        return 0;
> +
> +    range = prefetch ? bridge->bar_ranges_prefetch : bridge->bar_ranges;
> +
> +    return rangeset_remove_range(range, addr, addr + size - 1);

... there's nothing being stored.

But I'm apparently confused in a broader way: Here you remove a range from the
selected rangeset. rangeset_claim_aligned_range() also does so. Why are there
two removals? 

> --- a/xen/arch/arm/pci/pci.c
> +++ b/xen/arch/arm/pci/pci.c
> @@ -95,6 +95,108 @@ boolean_param("pci-passthrough", pci_passthrough_enabled);
>  __ro_after_init bool pci_scan_enabled;
>  boolean_param("pci-scan", pci_scan_enabled);
>  
> +typedef int (*bar_callback_t)(struct pci_dev *, uint8_t, uint64_t, uint64_t,
> +                              bool, bool);

Hmm, okay, you have a typedef now. But ...

> +static int __init reserve_bar_range(struct pci_dev *pdev, uint8_t reg,
> +                                    uint64_t addr, uint64_t size, bool is_64bit,
> +                                    bool prefetch)

... if I altered e.g. this function's signature, ...

> +{
> +    if ( pci_check_bar(pdev, maddr_to_mfn(addr),
> +                       maddr_to_mfn(addr + size - 1)) )
> +        return pci_reserve_bar_range(pdev, addr, size, prefetch);
> +    return 0;
> +}
> +
> +static int __init setup_bar(struct pci_dev *pdev, uint8_t reg, uint64_t addr,
> +                            uint64_t size, bool is_64bit, bool prefetch)
> +{
> +    if ( !pci_check_bar(pdev, maddr_to_mfn(addr),
> +                        maddr_to_mfn(addr + size - 1)) )
> +    {
> +        uint16_t cmd = pci_conf_read16(pdev->sbdf, PCI_COMMAND);
> +
> +        addr = pci_get_new_bar_addr(pdev, size, is_64bit, prefetch);
> +        if ( !addr )
> +            return -ENOMEM;
> +
> +        pci_conf_write16(pdev->sbdf, PCI_COMMAND,
> +                         cmd & ~(PCI_COMMAND_MEMORY | PCI_COMMAND_IO));
> +
> +        pci_conf_write32(pdev->sbdf, reg,
> +                         (addr & GENMASK(31, 0)) |
> +                         (is_64bit ? PCI_BASE_ADDRESS_MEM_TYPE_64 : 0));
> +
> +        if ( is_64bit )
> +            pci_conf_write32(pdev->sbdf, reg + 4, addr >> 32);
> +
> +        pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
> +    }
> +
> +    return 0;
> +}
> +
> +static int __init bars_iterate(struct pci_dev *pdev, void *arg)

... the use of void * here still renders things type-unsafe. Plus you
needlessly introduce function pointer <=> data pointer conversions,
which Misra wants us to avoid. IOW ...

> +{
> +    unsigned int i, barsize, ret = 0, num_bars = PCI_HEADER_NORMAL_NR_BARS;
> +    uint64_t addr, size;
> +    bar_callback_t cb = arg;

... this (bar_callback_t cb) is what the function parameter wants to be.
Ideally though as "bar_callback_t *cb" to not hide the pointer-ness, then
requiring the pointer part to be dropped from the typedef itself.

> +    if ( (pci_conf_read8(pdev->sbdf, PCI_HEADER_TYPE) & 0x7f) ==
> +         PCI_HEADER_TYPE_NORMAL )
> +    {
> +        for ( i = 0; i < num_bars; i += barsize )
> +        {
> +            uint8_t reg = PCI_BASE_ADDRESS_0 + i * 4;
> +            bool prefetch;
> +
> +            if ( (pci_conf_read32(pdev->sbdf, reg) & PCI_BASE_ADDRESS_SPACE) ==
> +                 PCI_BASE_ADDRESS_SPACE_IO )
> +            {
> +                barsize = 1;
> +                continue;
> +            }
> +
> +            barsize = pci_size_mem_bar(pdev->sbdf, reg, &addr, &size,
> +                                       (i == num_bars - 1) ? PCI_BAR_LAST : 0);
> +
> +            if ( !size )
> +                continue;
> +
> +            prefetch = pci_conf_read32(pdev->sbdf, reg) &
> +                       PCI_BASE_ADDRESS_MEM_PREFETCH;
> +
> +            ret = cb(pdev, reg, addr, size, barsize == 2, prefetch);
> +            if ( ret )
> +                return ret;
> +        }
> +    }
> +
> +    return ret;
> +}
> +
> +static int __init pci_setup_bars(void)
> +{
> +    int ret;
> +    /* We can't change the signature of bars_iterate to only accept
> +     * bar_callback_t, so use intermediate variables to ensure callback
> +     * signatures are always correct
> +     */
> +    bar_callback_t cb_reserve = reserve_bar_range;
> +    bar_callback_t cb_setup = setup_bar;

Oh, here you actually fake partial type-safety. This should be dropped.

> @@ -244,8 +241,18 @@ int rangeset_remove_range(
>              destroy_range(r, x);
>      }
>  
> - out:
> +out:

Why are you violating style here? See ./CODING_STYLE, also for other labels
you introduce.

> +    return rc;
> +}
> +
> +int rangeset_remove_range(struct rangeset *r, unsigned long s, unsigned long e)
> +{
> +    int rc = 0;

Pointless initializer.

> +    write_lock(&r->lock);
> +    rc = remove_range(r, s, e);
>      write_unlock(&r->lock);
> +
>      return rc;
>  }
>  
> @@ -357,6 +364,51 @@ int rangeset_claim_range(struct rangeset *r, unsigned long size,
>      return 0;
>  }
>  
> +int rangeset_claim_aligned_range(struct rangeset *r, unsigned long size,
> +                                 unsigned long *s, unsigned long e)
> +{
> +    struct range *x;
> +    int rc = 0;

Again, plus this variable looks to be used only ...

> +    /* Power of 2 check */
> +    if ( (size & (size - 1)) != 0 && size != 0 )
> +    {
> +        *s = 0;
> +        return -EINVAL;
> +    }
> +
> +    if ( e < *s )
> +        return -EINVAL;
> +
> +    write_lock(&r->lock);
> +
> +    for ( x = first_range(r); x; x = next_range(r, x) )
> +    {
> +        /* Assumes size is a power of 2 */
> +        unsigned long start_aligned = ROUNDUP(x->s, size);

I don't think the comment is very useful - you do the necessary check above,
and what is said is an inherent property of ROUNDUP().

> +        if ( x->e > start_aligned &&
> +             (x->e - start_aligned) >= size &&

Remember that x->e is an inclusive upper bound.

> +             start_aligned >= *s &&
> +             start_aligned + size <= e)
> +        {
> +            rc = remove_range(r, start_aligned, start_aligned + size - 1);

... in the narrow scope (so should move here).

> +            if ( !rc )
> +                *s = start_aligned;
> +            else
> +                *s = 0;

Is it reasonably possible to take this path? If not, please add
ASSERT_UNREACHABLE().

> +            write_unlock(&r->lock);

This can move up some, can't it? We want to keep locked regions as narrow as
possible.

> +            return rc;
> +        }
> +    }
> +
> +    *s = 0;
> +
> +    write_unlock(&r->lock);
> +    return -ENOSPC;

Blank line please ahead of the main / final "return" of a function.

> --- a/xen/include/xen/rangeset.h
> +++ b/xen/include/xen/rangeset.h
> @@ -61,6 +61,17 @@ int __must_check rangeset_add_range(
>      struct rangeset *r, unsigned long s, unsigned long e);
>  int __must_check rangeset_claim_range(struct rangeset *r, unsigned long size,
>                                        unsigned long *s);
> +
> +/*
> + * Find a range subset that starts at or after s, ends before e,
> + * and is aligned to the size.

Is "before" correct? Isn't it "at or before", just like for s it's "at or after"?

As to "aligned", nothing contrary being said here I think I ought to be able to
pass e.g. 7. (Tying together size and alignment is suitable for the BAR handling
purpose you have, but is making this new interface pretty much not general-
purpose.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 14:45:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 14:45:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164876.1491735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLMx3-0006NF-10; Tue, 18 Nov 2025 14:45:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164876.1491735; Tue, 18 Nov 2025 14:45:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLMx2-0006N8-UL; Tue, 18 Nov 2025 14:45:00 +0000
Received: by outflank-mailman (input) for mailman id 1164876;
 Tue, 18 Nov 2025 14:44: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=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLMx1-0006N2-9e
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 14:44:59 +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 277a0c56-c48d-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 15:44:58 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-640b06fa959so9925783a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 06:44: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
 4fb4d7f45d1cf-6433a3f880fsm12946303a12.11.2025.11.18.06.44.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 06:44: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: 277a0c56-c48d-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763477097; x=1764081897; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ucow77cbI8N4lr6/qwzGUs/Z9NiazRSQJfUlUtdrAAM=;
        b=WojvoSnXqd7lj2g2Z/WE4Z76MpzEvsFnbAZSa2mdQ4g1cccJdl4g9qMCrlodKbPbMy
         T8m3sMHm9KVDbexVHjx7QIsY2uJ8UjaiUn7WL+i65nghVYKwnbt3EtrOQ/GixYznOG5t
         502d5S/CTPGf10UtRYMAIfmfNfBP0nUC7fsjouFJ/3AcKD3vci1fKPv7+8KjMKRl2/D2
         fU3zyNMZm/+xyXity11Fii6Gu/0qR9IcZypg0FUD1zOjXgIgd141t+7Sd0lUEFUhOWue
         9vHbmEoq1Fjxx/CaHVKdIbZiuMt2C/CbnKNKObitwnAXrDU6Mx+gOSy8w1ZL9MpajNzA
         KPtw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763477097; x=1764081897;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ucow77cbI8N4lr6/qwzGUs/Z9NiazRSQJfUlUtdrAAM=;
        b=S9MmZIuh9HA7Z9A1Vr592gWo0gGzRIH3tWULb6k6H2hjvuaS2NX/6FLnfyp7jtin3O
         1gC+Z08UtQY/6ZuT/RPjmmkIo5N/L7fZjvButEC4wvmUOKK5qX1ZzptM3BdMPPeEDecO
         a915y6xmVNT5LLQbsqY1f182OcLISpuq+qUDFW59waw6Px/notDV24lpIxsrx5+BEXOU
         YHpGkQ47gJ/3E5oLHHzzb3TTWkiEgNqmYCeN2X9/luWzmmWUxcMiXZa2Q7jp9Mh3JQAo
         lnrh6pm2kQNyw60tvHrfRGX4vVPCzyogoQYEO7m2fav6P1dmGxr+7NfpuK4lYlHoJHa8
         lKng==
X-Forwarded-Encrypted: i=1; AJvYcCWAs6TRjcMZamh29GHEoWkU1QJ4AvwiDqCvAT7qFbdnV9Xinozu5CXN6xIu21yX9unZ6ccRn/dlKkg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw0DbNIDkMAQDT658T35x+AyFq3StY+YebExRqpqt6Q9LrySslP
	iLcXRWZpadmUQSXS/aVA/blR6CQtacMOk539Y4ahVpz55+FaGKglPrb/2dEZVkl7wQ==
X-Gm-Gg: ASbGncvU79QcSGL4v2fksbJz6YhLLO0FENAN8W/t6S8gTiw62b1XA5OIfq47Ap0vPUf
	3/VH2UbSHmGeAmqQQMeaHhwzuYR2+TtHOvSbHPZWNlTRGAjFdUGxVrfTmIk6oaYNAfnb9pS1bcO
	F73MT1SH1AZ9dbA6VvWxisq7I/+wasok1B9w6A2IlKXHzX45BCIxkBMcyCreX8ixrZBwgedFOxD
	q9FyRwtbSKqDZeclZt/sqKjcDlcKF7Rf9vd+iLA37EcCpxnXtIBrgwVYXREbQFIdBNZ2RZtaB6I
	aFj11+avj9oSpRefnZlOnfwEW2w74iWz1WH0Cl2JWXHiHTKVgy+UiOSSlmEXe8LYX1WU8Eiks2H
	1xjbmDpRx8/uwaN6Yi1Pt32p5hXZK4d07BKix/z++7Inb7DbFeXH6bYuwZg/nyr3ZFiDTwfRBFF
	BmEGsOY3NO7hMMV8qm87kKskNy1LrYTSkJsAO8JfVfgIvTUn7fmdaqPpUrwCIKUYZM0vmWbiyy2
	HlrOGVSKHO8QQ==
X-Google-Smtp-Source: AGHT+IGqnm97LrN6tMHIFyAVw+ZcaKuFEukctFTS3uV4dEkCIhJyDwTvwxx511U/p0/TOuttMVtyJA==
X-Received: by 2002:a05:6402:13c8:b0:637:e94a:fb56 with SMTP id 4fb4d7f45d1cf-64350eb9461mr17734463a12.35.1763477097573;
        Tue, 18 Nov 2025 06:44:57 -0800 (PST)
Message-ID: <0b6a62c4-969c-4dd9-be72-064d8971910e@suse.com>
Date: Tue, 18 Nov 2025 15:44:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 7/8] xen/pci: assign discovered devices to hwdom
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 Luca Fancellu <luca.fancellu@arm.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1763462211.git.mykyta_poturai@epam.com>
 <af67b9cbc1dff78440afdd15ebe1856fbebe98e1.1763462211.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: <af67b9cbc1dff78440afdd15ebe1856fbebe98e1.1763462211.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.11.2025 14:36, Mykyta Poturai wrote:
> @@ -1041,6 +1042,12 @@ enum pdev_type pdev_type(u16 seg, u8 bus, u8 devfn)
>      return pos ? DEV_TYPE_PCIe_ENDPOINT : DEV_TYPE_PCI;
>  }
>  
> +static bool __hwdom_init pdev_is_endpoint(const struct pci_dev *pdev)
> +{
> +    enum pdev_type type = pdev_type(pdev->seg, pdev->bus, pdev->devfn);
> +    return type == DEV_TYPE_PCIe_ENDPOINT || type == DEV_TYPE_PCI;

Once again - blank line please before the main return of a function (or, for
that matter, between declaration(s) and statement(s)).

> @@ -1221,6 +1228,10 @@ static int __hwdom_init cf_check _setup_hwdom_pci_devices(
>              if ( !pdev )
>                  continue;
>  
> +            /* Hide real bridges from HWdom when it's using the emulated one */
> +            if ( has_vpci_bridge(hardware_domain) && !pdev_is_endpoint(pdev) )
> +                pci_hide_device(pdev->seg, pdev->bus, pdev->devfn);

As said elsewhere, when you hide bridges without introducing virtual counterparts,
everything behind the bridge also needs hiding.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 15:04:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 15:04:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164893.1491745 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNFn-0001G8-Mz; Tue, 18 Nov 2025 15:04:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164893.1491745; Tue, 18 Nov 2025 15:04:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNFn-0001G1-IK; Tue, 18 Nov 2025 15:04:23 +0000
Received: by outflank-mailman (input) for mailman id 1164893;
 Tue, 18 Nov 2025 15: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=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLNFl-0001Fr-Dy
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 15:04:21 +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 dc145de6-c48f-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 16:04:20 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b7355f6ef12so969695866b.3
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 07:04: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
 a640c23a62f3a-b734fa81223sm1395868866b.4.2025.11.18.07.04.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 07:04: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: dc145de6-c48f-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763478259; x=1764083059; 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=v+hfsrOldDWg2dpAv3tPbQO6zhR+u9tTC5czwVhdDX4=;
        b=QIn84z898i6f6VZGw2br30NUEpOqWVarOkS5+uV70coslpUZG5fWKTwyG5LYkRaHmO
         1TZuax1n1+hxns4Z3uI8YZ2mHVesCP/aIiWrEQPKnJ3ogH0KT5lTQqItEpu/nZMlx0fr
         bOI9Fe5PLNOSXGvama+bktlj456R8My+ZjJ6aR++yHqIyPzangYoOgWqyAnDChi/W4SU
         geMn10bgKRvsflDxsapJlLuUKMGvA8c0NkrkLRxdFMGu3541BxnWlwOiD+g3U6jF8AnR
         52aIA2YB2Swu1OWIawi1DNDfalxebujS6DYPyvN34E5XS9Ztmm6JeRXJsYWZTfh++ZpH
         kzPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763478259; x=1764083059;
        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=v+hfsrOldDWg2dpAv3tPbQO6zhR+u9tTC5czwVhdDX4=;
        b=jmIoURTbD09k5LUfAD0B3MRtOsUkWX12Qp+aDdZr1aNjrZan+mK2zrXCDrTtbyJ5Ia
         dKsynuo06h+/4DYFXbsHEfK2vamqfSGc35K40aMKNQAb5cmNlsRrMUc/UoozmhfD9Nft
         8bIz3ZeHEgCpQqAVC/Rqc+lJpGMaE9Exab7pPtQ+Tn6PCIMI9bCvznuad0XETLifr1ge
         fqrbBlFIf1ck+xnc7qIU1ueE+d4U+9fhRG+3N9pT96ptRb98daC8PKmK4GnSMEXmPUbm
         ncWxyjnhYLr/fngv3U4hBOS9BrnagZ2SrfouqxLUXzqvlOPWrbpgvBJy+pzZeX20lFly
         b3NA==
X-Gm-Message-State: AOJu0Yx3c6r5/Sy0gkrLuhfoTUjwHsfrHTQZj+9eEXf1Y2ryQ72+xmyo
	OwMc24eq5ZGxbgb6trtck7SYNeQP8rw8GgxdcDvrJSwb7VrXaOeHzOcBT622OSn23ccKsTONYMw
	rU4M=
X-Gm-Gg: ASbGncvZgTXIgqcrBwsS5eCOnY8N7fjYR/B3HW8kcQkCTdmseIrPI73usnkjAunPjpP
	yuSiLD7KfTEX5mT6kdYSQ2A6ik9rVSyuZpCS6ojov58IM3sjlbBbgDmItixffUGPBWB9Z/Tg2ry
	06GI1WC2t9pRmwtmT+9Isvaszy851nSZgZuLRsrBZ9/N9Ld4NfYnw1ulqE+iXXyEb3CnCoHN6Ca
	IhN3wEZGPu+xeo5ZOnV7KKCXE9aT8SvXt8oQJq+twaPulQjAQjDHcM07i2az74CU1YWbJXYzmdv
	JMrOrWsFzXFMvzR3mhxyQn6PvN7L8TIYBxk8KP8OU965F88Hhn8Z0jdN5wlFpIOxi/fcLX1IV0N
	2BOW5YGwQtDIBtLmDlvGJpTWpWz1ctYPozK33pZK9aoDkyhjxjH5ZLhSUBITPPIdFcBDBmarxGO
	ijc0nzcH7HkMHuU2daqDi2uz0aWdvQW79vyfBM/xBIiHq2w6oMlSupega6/MB6dKLxMOcCI5NFQ
	z1g2RQWOjU7Dw==
X-Google-Smtp-Source: AGHT+IHThhGtGUdFbvTRLBSkjB+xLkj3rQgAHmsAdSygw0O571q7gg8FQ2onF1WdrEzaFC199jeCZw==
X-Received: by 2002:a17:907:6e90:b0:b70:ae6a:5fdb with SMTP id a640c23a62f3a-b7367bc46b0mr1610715066b.45.1763478259448;
        Tue, 18 Nov 2025 07:04:19 -0800 (PST)
Message-ID: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
Date: Tue, 18 Nov 2025 16:04: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: 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/8] x86: CPUID leaf 6 consolidation
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Integrate this leaf with CPU policy handling, to leverage the host policy
when feature bits need evaluating.

1: cpu-policy: move invocation of recalculate_misc()
2: cpu-policy: define bits of leaf 6
3: include: de-assemblify cpuid.h
4: replace APERRMPERF synthetic feature bit
5: rename ARAT feature flag
6: Intel: use host CPU policy for ARAT checking
7: cpufreq: use host CPU policy for Turbo checking
8: cpufreq: use host CPU policy in HWP driver

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 15:05:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 15:05:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164904.1491754 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNH6-0001ol-Vr; Tue, 18 Nov 2025 15:05:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164904.1491754; Tue, 18 Nov 2025 15:05:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNH6-0001oe-TH; Tue, 18 Nov 2025 15:05:44 +0000
Received: by outflank-mailman (input) for mailman id 1164904;
 Tue, 18 Nov 2025 15:05: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=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLNH6-0001oV-4F
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 15:05:44 +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 0d9fec03-c490-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 16:05:43 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b736ffc531fso718723066b.1
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 07:05: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
 a640c23a62f3a-b734fed90c0sm1387633666b.65.2025.11.18.07.05.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 07:05: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: 0d9fec03-c490-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763478343; x=1764083143; 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=pgIgBRyiwOjy12i+6dPUnzqpZO6a+/apZ7nKGk1jXJ4=;
        b=fhzV+UEwSuV90Ps+qM2iWY8y/q8SnJNeFHI6kAHJA8EywDq5x/OLbzOz5D5XRRRcd7
         ikuu9ESA070puRnoKM94TPkrO4Ss1FOL5Pg61XFeACb4UtRzmO4AUhzECew51L0XmB/z
         lQZ9uEJieFoYFME6/AV06cYEsKiTY6YWBC/Td0ABzOcCcVEHQQFsYcWChiXcaZGktTue
         H9qDuIwuF+OpImnFA6FY0YdT7QT72VNKjBlSg4LaD8mruHJGPZ+JGT+V3B4m4apTf/ry
         w6wIkyK2XpSu/OKafuveLHrVtBLIBLFWgNnvEQCTypBjNbxtzzLYHkkDRVzUTy0/7cqe
         2lfA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763478343; x=1764083143;
        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=pgIgBRyiwOjy12i+6dPUnzqpZO6a+/apZ7nKGk1jXJ4=;
        b=PO0T0EyO7cxHxrSMZOwBpE43da/iyqSN/hjtY+4VV/soTTp0GdvbjvoDPek/Cmfhy7
         rf91QHThPfGDI5lrecm8T2tMAB+TZnKQWbEwO/DWdMlzxsfXU3DulwaUv2ncsyfD0QF8
         tVtUezJvDXMZZAhweuu/eE5KW8wQlWMiCPp9cO0xD2tjT0xn52KIAgQOUV4gfNMtZ7eb
         fExlJQ6UCZcnUxR9kqQSDBc9Mo0ScVCH9ncAPBW+hSU6wD/jrgtPv2u3YVeHortLGME6
         zo7KFiWXX6Z5HmC103+HQZJ+bXzuNEIVCVp+4kc7RNkUjcEWcXLwfVjfFk5uc0gzDfzY
         Uj+g==
X-Gm-Message-State: AOJu0YwLYBgkmlB9rO7MGHeIgjUQL57iysJJROS/WMINAPURsgiSDBzg
	UkiIqubHHVmjgWfw2iFEbHaUgVJdmFSIbyc3LIKTPnTrVngxeJ9Ld0DdTkJ59ZAlRw+piIhRDX+
	wbjA=
X-Gm-Gg: ASbGnct7WWWD+9EPR7yJHtCVuPLiDj+7Xc6rzUbdi1sNm34GfMkeVXXN6uoUZrPj7Ob
	2uVhPpuhg+pYJe27j5L3EnaZoQZaTFvCfAIuQYjomrlpvEYEFltFYYAov+6eQnZpvobc+Nhc6O8
	2Fr4XGswKg5kcIQePED/om173bm3vOe09V/WzvGaBihb7snEuDDcF+FKZpCHyKyLOfoH+wdKyIK
	jXxYvDeZg3vdHhP+9LJvKjpmYN9Ji/om2jSFh+nHzQEAlhWkbcWE70ayeXLIlaF9dK2QeSBrPMi
	JwGSQb6jR58kYvBCjlzBgvpbknnOM880hikIAjd8NQmhZ6bwPMDMYIIVOR/A32KisrHUWSs/k6t
	tbJvX3IRAVWhBaRxeN6QlszczyyWJ8kx6zhf+G9+xYB86QdfGHVHKhKbyBrv41+SFmusHjhkMUw
	yeTUV9PeY+P0unIcHhTaGJDglptR+IbpJ0huhBEu+Hs5vxBLIFzoiiIAskVywbmYlnasprKa/GK
	PWSKvZE50wDSg==
X-Google-Smtp-Source: AGHT+IFpf6pTRBLI+R8S1l7vTgZNNT3iCQA3US4G+aR+ZYIXjj2+t2wNhkPnHMWteSDiMYPU3RSJ6A==
X-Received: by 2002:a17:906:9fd0:b0:b72:b8a9:78f4 with SMTP id a640c23a62f3a-b73678f4f66mr1837416166b.39.1763478342628;
        Tue, 18 Nov 2025 07:05:42 -0800 (PST)
Message-ID: <ea7237e2-9026-4c79-8cd6-7b62094aab1c@suse.com>
Date: Tue, 18 Nov 2025 16:05:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 1/8] x86/cpu-policy: move invocation of recalculate_misc()
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The function is about guest exposure of features / leaves. There's no need
for it to be applied on the host policy. In fact doing so gets in the way
of using the host policy in certain places.

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

--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -383,7 +383,6 @@ static void __init calculate_host_policy
 
     x86_cpu_featureset_to_policy(boot_cpu_data.x86_capability, p);
     recalculate_xstate(p);
-    recalculate_misc(p);
 
     /* When vPMU is disabled, drop it from the host policy. */
     if ( vpmu_mode == XENPMU_MODE_OFF )
@@ -634,6 +633,7 @@ static void __init calculate_pv_max_poli
     unsigned int i;
 
     *p = host_cpu_policy;
+    recalculate_misc(p);
 
     guest_common_max_leaves(p);
 
@@ -736,6 +736,7 @@ static void __init calculate_hvm_max_pol
     const uint32_t *mask;
 
     *p = host_cpu_policy;
+    recalculate_misc(p);
 
     guest_common_max_leaves(p);
 



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 15:06:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 15:06:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164910.1491764 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNHa-0002F8-7I; Tue, 18 Nov 2025 15:06:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164910.1491764; Tue, 18 Nov 2025 15: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 1vLNHa-0002F1-4O; Tue, 18 Nov 2025 15:06:14 +0000
Received: by outflank-mailman (input) for mailman id 1164910;
 Tue, 18 Nov 2025 15: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=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLNHZ-00026P-7Y
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 15:06:13 +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 1e5faad2-c490-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 16:06:11 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-6419aaced59so7585778a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 07:06: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
 4fb4d7f45d1cf-6450e8d1a23sm883561a12.15.2025.11.18.07.06.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 07: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: 1e5faad2-c490-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763478371; x=1764083171; 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=MuGvsatbOCNTnf1+piHi4k6STW82U3evhUtfXUWwz38=;
        b=XwPw7oGq0Dz3tDGnK9H4mVkz3NlCua/EsIGWpagevuu36gQzMXoAzM5/Zw72fYsEx4
         4yWMpk8JaBa3VN5IQrj6fENrNIjw5dWk8K3SlIRRDfuzy082B8HIuv2hLNUrmdMpDLt3
         OukLgqY3qYsxMK5IfIRKyyB4ncRMq0ox2eDWvo1d8cTvrtyXoeLBGuwbVWXzpypVZt3i
         G23Kgq5U5dm6HQ0acVRaD6NAGZaOXpqAlCd2aj/UP1QlfsihuAMjz00+y4PgZd4l1KyK
         JQtYtCIH/CShPjGhRuepbiTz4RU4K+UU80x+r6td6Iu3L9gThi9JKW5IknrvMAWKtils
         geZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763478371; x=1764083171;
        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=MuGvsatbOCNTnf1+piHi4k6STW82U3evhUtfXUWwz38=;
        b=lrOtj2X4Z8XQAI+ymLzfUvJh6rRaN40ZQ/dacCz0CNsq+uRc83Z/E6VRk8BsxzCOiz
         WtHTfuX/jjNFV2BHeAMsxrk/drleiroDkcGG24zipUmW7CoqFMJEEWQK7gTjc4bZya9Y
         GiM+R5i+WAHIKTQJCQIjTh6+o808+l/cIP5TBMoSd9d30uJgDknie+1+7zF+O2KLbuu9
         smZ49q9FFeHrBgNCQIe/hBYzm/mC7zJOq0ZQyVwysZd54G+ijk8R6MGVqkPIaFyXwEJB
         irI6atF9JeXXRXKGx+YHRpN97FqAXk78UA8WqCB+Dtzy8jZFPe2WfNfN7yT+RlbbFKkp
         CqsQ==
X-Gm-Message-State: AOJu0YxfXmoS3ocsIiM9AUB9cgWpKUW/EettVrSBd25kh9AV0mANIZ+3
	B+PLNq2Z7e4mgBJUpZKbv9bVyUZERGZQF7PqVWJHqk1FYzI2fCIn1nz5lwWtgl6FnHjjkN8sPQM
	KKv4=
X-Gm-Gg: ASbGncuJixqDfxSMwdoP8Qh3IBUMROXXnhWA7VUjo2q/2T0f0dR9Mfgq3MBW9ddLLuY
	kXCTdUKeg0naS3IGroDdTNVBhxZse+W2mbMpxqNLNHIgu/iXE36oGKHI2aL0KuEmFDg+4fWuPsl
	mRARFUqiT+p6cgCwpnmmZrMmBTG5coQ6PcJYPo5w5YMzXjqhgAeFPE4QxhbZIvXLDFbiIOUQwt4
	C22E0QPhhc3CzXHWV0K0hNrBrEOwYFV0asC4Jebh4visvY0MSF8nN27kQk8b4Kckz9pAzaYA9rS
	c+zUbcUfQph1clV9J4sSSuvWPHUfBl2OXR3SlOcPRfgp+1F8oVqygHGzaPh5exBOAQAsIyaMxnU
	k0qKU5FC3O4jev4tMkqmZPSmlnoKiqm8tArkHBT4Yd8TBzw1ZT9IInxEJlZ1SOogO07o1FHejQ4
	7EIoZpnStxYsGjYp21w1S7uLIWfSOIwIsOyEh3wQ5BhwUGSleJa57zc7mAQVKjiSo5
X-Google-Smtp-Source: AGHT+IEEiBmygkrrcJUcQiqLuhkHHAct9qy+FLpfROJT5T1xQ3QMMYhvLBaCTwjo/TyStGFSwZN+Ww==
X-Received: by 2002:a05:6402:20d5:20b0:641:297b:5567 with SMTP id 4fb4d7f45d1cf-64350ec18d4mr12995892a12.35.1763478370677;
        Tue, 18 Nov 2025 07:06:10 -0800 (PST)
Message-ID: <b59c0994-6bb2-4506-88ec-4ea0f3b6c311@suse.com>
Date: Tue, 18 Nov 2025 16:06:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/8] x86/cpu-policy: define bits of leaf 6
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
References: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

... as far as we presently use them in the codebase.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Or should we make both parts proper featureset elements? At least
APERFMPERF could likely be made visible to guests (in principle).

--- a/xen/include/xen/lib/x86/cpu-policy.h
+++ b/xen/include/xen/lib/x86/cpu-policy.h
@@ -121,7 +121,31 @@ struct cpu_policy
             uint64_t :64, :64; /* Leaf 0x3 - PSN. */
             uint64_t :64, :64; /* Leaf 0x4 - Structured Cache. */
             uint64_t :64, :64; /* Leaf 0x5 - MONITOR. */
-            uint64_t :64, :64; /* Leaf 0x6 - Therm/Perf. */
+
+            /* Leaf 0x6 - Therm/Perf. */
+            struct {
+                uint32_t /* a */:1,
+                    turbo:1,
+                    arat:1,
+                    :4,
+                    hwp:1,
+                    hwp_notification:1,
+                    hwp_activity_window:1,
+                    hwp_epp:1,
+                    hwp_plr:1,
+                    :1,
+                    hdc:1,
+                    :2,
+                    hwp_peci:1,
+                    :2,
+                    hw_feedback:1,
+                    :12;
+                uint32_t /* b */:32;
+                uint32_t /* c */ aperfmperf:1,
+                    :31;
+                uint32_t /* d */:32;
+            } pm;
+
             uint64_t :64, :64; /* Leaf 0x7 - Structured Features. */
             uint64_t :64, :64; /* Leaf 0x8 - rsvd */
             uint64_t :64, :64; /* Leaf 0x9 - DCA */



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 15:06:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 15:06:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164920.1491775 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNI2-0002jd-EO; Tue, 18 Nov 2025 15:06:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164920.1491775; Tue, 18 Nov 2025 15:06: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 1vLNI2-0002jW-Bg; Tue, 18 Nov 2025 15:06:42 +0000
Received: by outflank-mailman (input) for mailman id 1164920;
 Tue, 18 Nov 2025 15:06: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=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLNI1-00026P-8g
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 15:06:41 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2eefd324-c490-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 16:06:39 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-64088c6b309so83849a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 07:06: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
 4fb4d7f45d1cf-6450e8d1a23sm884342a12.15.2025.11.18.07.06.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 07:06: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: 2eefd324-c490-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763478398; x=1764083198; 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=jMn/cyVZqsuQaGJk1ULIzcL8rHs+FxB5cgoYXyQZKyQ=;
        b=LUK24N/KS6snkn36PdfgEimuDxbVLqX5+iAtsqOXsG9lQPTh0NKZABBlZj3b6HcbW9
         rtbdt5sWr2i7c4awPQ0+E0/5ce0gsbKawqxCC5cC29pY9sWWf2g2taUGcRWlmy6lIjY6
         88C5aj+u0y8NBLDthdnnaV7WkOAOkAzqtJUJabK2b/lnCnnCePR8XBZRB+pUAJrAnm/D
         K/29ViAvC8y2opi08T3SsXBeEJ9t+sE6bjoHDHVNHDrLxG20MXZ5uG6hXkuG5UBCiGhD
         3iaml9HgWX6JR1xezqT3tvX1w/5BTeSoo4GTj8nIkyBTa1QndFvA7lLNgHXv0WuHdUuB
         R/yw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763478398; x=1764083198;
        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=jMn/cyVZqsuQaGJk1ULIzcL8rHs+FxB5cgoYXyQZKyQ=;
        b=tLh6EJDukfv0+qMO3GY7hBHFsCE0Nj5PpkF8sP8QRMvO1IlPVyQpqem0TpIqRX35gi
         yocdhpd1ck1tLArngG6pvbqJ2PjQw+CdqhOLzZganc7QjrEPRBPA9PQATN2nBJbuSy5Q
         WZb/kxvFDGwZZsHg0JAmmQ2jLrgVi9EJAKZ7FiIB5/BrdqkcpoQC1kpqM6EYt802ZXtM
         /Gq350ydq+K4X6ZRRjOdQVlQtTxpzedN6PCGl9/AH+u2TY6XPthUbvn3v4xE9sgijMpH
         fmSFQcsLQ9ZUVYytqHtzIQLxuIQmiCLM/FuA+FGhTceJp0JnqG/CvyCNdZ9W35OENx9k
         fzUg==
X-Gm-Message-State: AOJu0YzJT2TB2a+fWs+i04G+pg85m1xH3J4FwB9e/TBXIrd5A1+yvVt1
	pp0YEPte6ERW7LaXbNDl7VKwJfYm0vToeImOFuIpasaP0WdFzaaeP819FZCAYrdpgQwQLczxFiJ
	B7zk=
X-Gm-Gg: ASbGncs5lJpA6BFbxHuikPS7DLNMVUD85NjwANq9Z5mWHYnU8TtZCzDkgPzaGi0acxR
	TedVwhu+T/NsXhgF5UmIxjpQ3tCGZ7p5p5RntpqbUxMmLsdNz2Qsrj4g8GWiE3vuULGoKOsUacH
	D2sgfd+r9JQ436moosbnC4KFg17h71TYiz8WdCLfC7HYAHQ8SIE+FfIjiDeqr+rhW11hH4k9jET
	6KzCCIBk6TMyk4QAjXUJqyQY0sJox3MsKonsqHyfZ6IWUDpE9gOQ/w2hFG0TKm3ROhcNSVeT1A9
	TECg802iqeRvFgwV15thmwdHDu5E8upz2iyW7kvsUhW39zajNG8EwqddIXPpR3cJJ0qcwW4i+pH
	yf1tssaPQkPaeIAFem3K5oDoFo9+fNPTUT2qGFZwbNZfRy/MOE2OUppSdFcRnyE8F0J2WYhGDl3
	Yk0aQ4Ny4CWm+tcUwSPfcCGaasiOoVqAvh02UVC8Sq8XrqkEisekf/naPzsy5Pd53WrcIgyD+9e
	HUoBlTPvTIrgA==
X-Google-Smtp-Source: AGHT+IH0eHnKFf6D2JbGKosKLvylnTF5ltnaGgh2liPP4o8m65DsinatQ4lDiiGASIXW6vchOw0soA==
X-Received: by 2002:a05:6402:27c8:b0:640:80f4:3914 with SMTP id 4fb4d7f45d1cf-64350e89eabmr16635900a12.19.1763478398511;
        Tue, 18 Nov 2025 07:06:38 -0800 (PST)
Message-ID: <6525306d-aebd-47a2-b17f-918d7989798a@suse.com>
Date: Tue, 18 Nov 2025 16:06:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 3/8] x86/include: de-assemblify cpuid.h
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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

There's nothing in that header which assembly files would need. Arrange
for cpufeatureset.h to be included directly by cpufeature.h in that case,
allowing respective guarding to be dropped

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

--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -10,7 +10,11 @@
 #include <xen/const.h>
 #include <xen/macros.h>
 
+#ifndef __ASSEMBLY__
 #include <asm/cpuid.h>
+#else
+#include <asm/cpufeatureset.h>
+#endif
 
 #define cpufeat_word(idx)	((idx) / 32)
 #define cpufeat_bit(idx)	((idx) % 32)
--- a/xen/arch/x86/include/asm/cpuid.h
+++ b/xen/arch/x86/include/asm/cpuid.h
@@ -3,7 +3,6 @@
 
 #include <asm/cpufeatureset.h>
 
-#ifndef __ASSEMBLY__
 #include <xen/types.h>
 #include <xen/kernel.h>
 #include <xen/percpu.h>
@@ -50,7 +49,6 @@ struct cpuid_leaf;
 void guest_cpuid(const struct vcpu *v, uint32_t leaf,
                  uint32_t subleaf, struct cpuid_leaf *res);
 
-#endif /* __ASSEMBLY__ */
 #endif /* !__X86_CPUID_H__ */
 
 /*



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 15:07:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 15:07:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164935.1491785 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNIl-0003LG-Nb; Tue, 18 Nov 2025 15:07:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164935.1491785; Tue, 18 Nov 2025 15:07:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNIl-0003L9-KX; Tue, 18 Nov 2025 15:07:27 +0000
Received: by outflank-mailman (input) for mailman id 1164935;
 Tue, 18 Nov 2025 15:07: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=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLNIk-00033y-04
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 15:07:26 +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 4a805d05-c490-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 16:07:25 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b73b24f1784so272297966b.0
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 07:07: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
 a640c23a62f3a-b734fa81296sm1393799666b.6.2025.11.18.07.07.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 07:07: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: 4a805d05-c490-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763478445; x=1764083245; 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=UcLxhIrNXaMN+dEZIS/JAOfVnBILwCijMp1B3XCEPJ8=;
        b=EoyIwBqaKYIu7aNm2p71Lczqz+xj/H2j6+ZwolZH8Q1MyUf1OnV79wb5hXjhFJRAW2
         Lk6aD+QocT9o3KPhnq1ORlp39YouNnqUQhXrVJweYkGE1bvpaeoOV5qwq29kLSbOpV3X
         Z4xjMUiFyJWrEmDxLYxFAh7XD/S/brcEn5k/qqC+riSIU90DNMV9ASueWwNmIIuvctS4
         oTTCbP3sBrRbalOfmhQJLOG0SkkrDdJGFxL3rakOfJcalfDNyIMscOUkki4/sx/Qhkl6
         9agYf5f4C929YxOShyHG8HcwuigyFxp/KZSgO6DJ4l3OvrDFxYyXu+kW5LfT7AnqeA2s
         Ysgg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763478445; x=1764083245;
        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=UcLxhIrNXaMN+dEZIS/JAOfVnBILwCijMp1B3XCEPJ8=;
        b=PCNxfoyvwQYHETA6XOYhr6RalWJnX1bWba0YPCHro7epv/CXkwMUrtoxnPsL7YmuOc
         l/KuIP6TdFf7J6REOf8yyLt7u+8UWH1C89sfet89/AhA9eEicK7OcT2kpYnjPNftW+OO
         DpKfuJFBaFHsKL9TN/FP1lZEJSAxqQ6r0ZbjJH2S+R+i/RiBN1zT9uBvRrgQbnLoHtTH
         01w7we2t+gE4B6yum2920Un6EJhPoM7VNwyaj4cZe12y8ZfBWz1TYklIoAtaPsA9QMbS
         RobvgH+Q+qJ23xo+ZFeBCxrRTodtNbIsc8LlYIcM/7jSIA82vFQvWh+HeXo1nOvJbJeW
         5y1A==
X-Gm-Message-State: AOJu0Yw8r0s+n71NY805jhK8XR65k2M+MBMJYXr1UiA3w6roNwwbxqXi
	R3LV7b9UbrjPHhLCZKu94dp5xZ2J7yUkeRpt9V/awiywGxogPVd3siB9y6vCwL7JjJTTN3EXCQ9
	ODaQ=
X-Gm-Gg: ASbGncs/Sb5lfM0n7kFEmleMcG0qkqXpok4h7kjhREXpRJy366D4uxIOI/6k8dXr4dB
	KQDO3VJ5irArGzgpcnhT0t1k8JdMkXOy/C9MfHiUfK0Vu8joq14DVpGmEJHlWIiJYnoDfZCKTI2
	8uvV4tepwZc1XghTPaOf9oBqRkid7mRFiZMnYaEocYGURGK5YBFAHS3j49/Du69RZfPfYw0bivv
	cW9afuDUERzyBRt7Oj4mF4i4rzDrwgNsC80PUi+gxQObOwwZs+G7MSdfsbg5GaYuGzQzIps3ujZ
	f+QBZrz5CHnhVYDJ1OpSIu6ifYPwmP21WzIwPwN+Afvk0/yeTDyxQA60Sx260S0ZZyW+snA27O5
	OMyHciNTpXWepRrOkCaDPVOPt8O+7My51QBvmtZDnQPY5JS5xDn83LzPMbU9IYcRfl1i7H5YbzK
	fIu5PiHfq/vPWaYE7LX6Uq0rYayoMdyKagsiZBU026SKmxWYDaThmaCwCC4a48vSfBCqf/HmpR3
	RIoAvxS/2lpag==
X-Google-Smtp-Source: AGHT+IE2AMQszacX3K1IzrjUWAeT0RvSIr8T9X7hWthAm+aZ3Z96afG5mCWt0bR5QdrEXk8PAbchzA==
X-Received: by 2002:a17:907:2d87:b0:b6d:3456:14b3 with SMTP id a640c23a62f3a-b75a0a546b7mr365066466b.20.1763478444409;
        Tue, 18 Nov 2025 07:07:24 -0800 (PST)
Message-ID: <505029ff-cb2e-425c-bf5c-3ac364f32140@suse.com>
Date: Tue, 18 Nov 2025 16:07:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 4/8] x86: replace APERFMPERF synthetic feature bit
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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Use the respective host CPU policy bit instead.

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

--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -523,10 +523,6 @@ static void generic_identify(struct cpui
 	if ( cpu_has(c, X86_FEATURE_CLFLUSH) )
 		c->x86_clflush_size = ((ebx >> 8) & 0xff) * 8;
 
-	if ( (c->cpuid_level >= CPUID_PM_LEAF) &&
-	     (cpuid_ecx(CPUID_PM_LEAF) & CPUID6_ECX_APERFMPERF_CAPABILITY) )
-		__set_bit(X86_FEATURE_APERFMPERF, c->x86_capability);
-
 	/* AMD-defined flags: level 0x80000001 */
 	if (c->extended_cpuid_level >= 0x80000001)
 		cpuid(0x80000001, &tmp, &tmp,
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -11,7 +11,9 @@
 #include <xen/macros.h>
 
 #ifndef __ASSEMBLY__
+#include <asm/cpu-policy.h>
 #include <asm/cpuid.h>
+#include <xen/lib/x86/cpu-policy.h>
 #else
 #include <asm/cpufeatureset.h>
 #endif
@@ -121,7 +123,6 @@ static inline bool boot_cpu_has(unsigned
 #define CPUID6_EAX_HDC                               BIT(13, U)
 #define CPUID6_EAX_HWP_PECI                          BIT(16, U)
 #define CPUID6_EAX_HW_FEEDBACK                       BIT(19, U)
-#define CPUID6_ECX_APERFMPERF_CAPABILITY             BIT(0, U)
 
 /* CPUID level 0x00000001.edx */
 #define cpu_has_fpu             1
@@ -175,6 +176,9 @@ static inline bool boot_cpu_has(unsigned
 #define cpu_has_fma4            boot_cpu_has(X86_FEATURE_FMA4)
 #define cpu_has_tbm             boot_cpu_has(X86_FEATURE_TBM)
 
+/* CPUID level 0x00000006.ecx */
+#define cpu_has_aperfmperf      host_cpu_policy.basic.pm.aperfmperf
+
 /* CPUID level 0x0000000D:1.eax */
 #define cpu_has_xsaveopt        boot_cpu_has(X86_FEATURE_XSAVEOPT)
 #define cpu_has_xsavec          boot_cpu_has(X86_FEATURE_XSAVEC)
@@ -292,7 +296,6 @@ static inline bool boot_cpu_has(unsigned
 /* Synthesized. */
 #define cpu_has_arch_perfmon    boot_cpu_has(X86_FEATURE_ARCH_PERFMON)
 #define cpu_has_cpuid_faulting  boot_cpu_has(X86_FEATURE_CPUID_FAULTING)
-#define cpu_has_aperfmperf      boot_cpu_has(X86_FEATURE_APERFMPERF)
 #define cpu_has_xen_lbr         boot_cpu_has(X86_FEATURE_XEN_LBR)
 #define cpu_has_xen_shstk       (IS_ENABLED(CONFIG_XEN_SHSTK) && \
                                  boot_cpu_has(X86_FEATURE_XEN_SHSTK))
--- a/xen/arch/x86/include/asm/cpufeatures.h
+++ b/xen/arch/x86/include/asm/cpufeatures.h
@@ -19,7 +19,7 @@ XEN_CPUFEATURE(TSC_RELIABLE,      X86_SY
 XEN_CPUFEATURE(XTOPOLOGY,         X86_SYNTH( 5)) /* cpu topology enum extensions */
 XEN_CPUFEATURE(CPUID_FAULTING,    X86_SYNTH( 6)) /* cpuid faulting */
 XEN_CPUFEATURE(XEN_FRED,          X86_SYNTH( 7)) /* Xen uses FRED */
-XEN_CPUFEATURE(APERFMPERF,        X86_SYNTH( 8)) /* APERFMPERF */
+/* Bit 8 unused */
 XEN_CPUFEATURE(MFENCE_RDTSC,      X86_SYNTH( 9)) /* MFENCE synchronizes RDTSC */
 XEN_CPUFEATURE(XEN_SMEP,          X86_SYNTH(10)) /* SMEP gets used by Xen itself */
 XEN_CPUFEATURE(XEN_SMAP,          X86_SYNTH(11)) /* SMAP gets used by Xen itself */



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 15:09:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 15:09:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164945.1491795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNKO-00040G-7j; Tue, 18 Nov 2025 15:09:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164945.1491795; Tue, 18 Nov 2025 15:09: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 1vLNKO-000409-4H; Tue, 18 Nov 2025 15:09:08 +0000
Received: by outflank-mailman (input) for mailman id 1164945;
 Tue, 18 Nov 2025 15:09: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=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLNKN-000403-7V
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 15:09:07 +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 85ecb686-c490-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 16:09:05 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b735487129fso887276166b.0
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 07:09: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
 a640c23a62f3a-b734fd809fasm1377008966b.45.2025.11.18.07.09.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 07:09: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: 85ecb686-c490-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763478544; x=1764083344; 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=GTDHw2weO1AUBfmHmJK8dwo4mfz5EckyJJgzqO2xOwA=;
        b=NBIP8Qkp3P+7Apoye79IAKEtBeHU9UNkIJivOGO3YU2QZNCOTFuEFsc9SrOekLtujG
         GcAVzjauRXeULfkGJA/4dEibNVpg2Ezo4Z83M95IskGmYGGnOVbETaCaV4VkMU1A05Kj
         4khHDhqi2vV7G58f8LghBiUcUJb0lsbuxdCBKj0CHcY3ZctZDDIS/JcPQQK6JoX9hcKT
         R4/bksgeJ/trkLKYLKP7edt0LGErksDpNb61ejtMM/8DckaY9DN7E1elAxykAB5Kla3a
         3uiyScDLq8l1W4/6qcbohqP68dTkwYovGjGxnvjm0zLyALR9lHVTH0D6ddamM+hZdGyC
         hVQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763478544; x=1764083344;
        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=GTDHw2weO1AUBfmHmJK8dwo4mfz5EckyJJgzqO2xOwA=;
        b=PpxkAIy+/xsPrfWJMWq7LkZ2HkoAXiRXekf1xxwAOnPyQQn9xk0ZlV2q4l95Xa9tqw
         qlyPjIV7pIN0BnAJ1I3b9Hdjd5kFO22XjNWury8HSmEcEMoL6dZJKFufcj49Kj4GHfCJ
         7CI/tMdPl/lJYiIzBvOiWOr12UwDttgvfwygLu2PDl+sH5XOTPGwlbrEjrQ5yfoboQBM
         oihkSu4IEVCH63Zo1MPfp1WsQgSH021mRXuID/pf8UKp2NJnINM073zbb9uX8/rB2Mom
         JW0PX4vOh4ajblThFZblsd3N8fjlJXX5S2H3/vfaX2l6+7vWuB/gJW0rhnAC7Oz8iTC6
         dV2A==
X-Gm-Message-State: AOJu0Yxugq930fAbm/8Pzyb7e8n0vnDKesJ5nRwgVBXnnvoW4lVsHZOs
	lJfZUpIL8nJRC5PXqeQaoaxe2PYWgy66Hf9gLpk8/l2YyRqUB4gM8+pBKk4IVH+NqE1XQIZ6AAn
	rW1g=
X-Gm-Gg: ASbGncs3U1QXuToBKaOfR2vVQs6YLjaqMWxdOG1XqF+40fMJgT7y5U2ZI1UgwclyMC7
	106D3vnMJbj1dBAxvdiB7fP+iYlY85E3z0dDSlzHSfrVbRKuoL6P1QeEOKBk75nRFteaEMMQSkN
	2JONW/IqxR2Kaj/92R/FYpz+ZejE3Nz8Awq33vei8865H20lbi7ZtEaqeDtj0CUlBVHmge9Dm+X
	WvpIOqT6qT4x+1WX4R7yMCXOxBi/evnSorUf8rcX0RL6ZzIJulbq3WfTlfd8OdAbe6Wls+cPI9/
	ZNcgTIHdYOTecuGCWk1R+r82/O7bX7B7ppXsa4ZIV8ewNZ2AqWcEp19GvKnTp28L2Vl3tB44zVf
	EkUOb+pVB2y/Yp3jkNgLxsqRRfsR5NJNTvul4F3hMtSEef6UEsUYQ+fxwBH6WyYyhElZF8t6e3Z
	YXum3VgxxcByqEfpkwk419W+YcNLzfhjoiLEooA7i8BHLuCoB5uy3/kKjGcbtI7AGCBd4GODytY
	QFL5IsIXERBcw==
X-Google-Smtp-Source: AGHT+IG3BCZghm7TEjUUuD1BxyRHTbjbFWeuzyTzfuwgLhtPozzm+QKLrPoqRE7cBld2KTh8wnJTKw==
X-Received: by 2002:a17:907:7eaa:b0:b76:2d96:6c28 with SMTP id a640c23a62f3a-b762d966d88mr158348966b.24.1763478544425;
        Tue, 18 Nov 2025 07:09:04 -0800 (PST)
Message-ID: <c0ed26a0-6e34-4aab-ad7d-44b9f596b1e9@suse.com>
Date: Tue, 18 Nov 2025 16:09:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 8/8] x86/cpufreq: use host CPU policy in HWP driver
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

There's no need to invoke CPUID yet another time. This way two of the
static booleans can also go away.

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

--- a/xen/arch/x86/acpi/cpufreq/hwp.c
+++ b/xen/arch/x86/acpi/cpufreq/hwp.c
@@ -18,9 +18,6 @@
 
 static bool __ro_after_init hwp_in_use;
 
-static bool __ro_after_init feature_hwp_notification;
-static bool __ro_after_init feature_hwp_activity_window;
-
 static bool __read_mostly feature_hdc;
 
 static bool __ro_after_init opt_cpufreq_hdc = true;
@@ -165,8 +162,6 @@ bool hwp_active(void)
 
 static bool __init hwp_available(void)
 {
-    unsigned int eax;
-
     if ( boot_cpu_data.cpuid_level < CPUID_PM_LEAF )
     {
         hwp_verbose("cpuid_level (%#x) lacks HWP support\n",
@@ -183,29 +178,25 @@ static bool __init hwp_available(void)
         return false;
     }
 
-    eax = cpuid_eax(CPUID_PM_LEAF);
-
     hwp_verbose("%d notify: %d act-window: %d energy-perf: %d pkg-level: %d peci: %d\n",
-                !!(eax & CPUID6_EAX_HWP),
-                !!(eax & CPUID6_EAX_HWP_NOTIFICATION),
-                !!(eax & CPUID6_EAX_HWP_ACTIVITY_WINDOW),
-                !!(eax & CPUID6_EAX_HWP_ENERGY_PERFORMANCE_PREFERENCE),
-                !!(eax & CPUID6_EAX_HWP_PACKAGE_LEVEL_REQUEST),
-                !!(eax & CPUID6_EAX_HWP_PECI));
+                host_cpu_policy.basic.pm.hwp,
+                host_cpu_policy.basic.pm.hwp_notification,
+                host_cpu_policy.basic.pm.hwp_activity_window,
+                host_cpu_policy.basic.pm.hwp_epp,
+                host_cpu_policy.basic.pm.hwp_plr,
+                host_cpu_policy.basic.pm.hwp_peci);
 
-    if ( !(eax & CPUID6_EAX_HWP) )
+    if ( !host_cpu_policy.basic.pm.hwp )
         return false;
 
-    if ( !(eax & CPUID6_EAX_HWP_ENERGY_PERFORMANCE_PREFERENCE) )
+    if ( !host_cpu_policy.basic.pm.hwp_epp )
     {
         hwp_verbose("disabled: No energy/performance preference available");
 
         return false;
     }
 
-    feature_hwp_notification    = eax & CPUID6_EAX_HWP_NOTIFICATION;
-    feature_hwp_activity_window = eax & CPUID6_EAX_HWP_ACTIVITY_WINDOW;
-    feature_hdc                 = eax & CPUID6_EAX_HDC;
+    feature_hdc                 = host_cpu_policy.basic.pm.hdc;
 
     hwp_verbose("Hardware Duty Cycling (HDC) %ssupported%s\n",
                 feature_hdc ? "" : "not ",
@@ -213,7 +204,7 @@ static bool __init hwp_available(void)
                             : "");
 
     hwp_verbose("HW_FEEDBACK %ssupported\n",
-                (eax & CPUID6_EAX_HW_FEEDBACK) ? "" : "not ");
+                host_cpu_policy.basic.pm.hw_feedback ? "" : "not ");
 
     hwp_in_use = true;
 
@@ -226,7 +217,8 @@ static int cf_check hwp_cpufreq_verify(s
 {
     struct hwp_drv_data *data = per_cpu(hwp_drv_data, policy->cpu);
 
-    if ( !feature_hwp_activity_window && data->activity_window )
+    if ( !host_cpu_policy.basic.pm.hwp_activity_window &&
+         data->activity_window )
     {
         hwp_verbose("HWP activity window not supported\n");
 
@@ -268,7 +260,7 @@ static int cf_check hwp_cpufreq_target(s
     hwp_req.max_perf = data->maximum;
     hwp_req.desired = data->desired;
     hwp_req.energy_perf = data->energy_perf;
-    if ( feature_hwp_activity_window )
+    if ( host_cpu_policy.basic.pm.hwp_activity_window )
         hwp_req.activity_window = data->activity_window;
 
     if ( hwp_req.raw == data->curr_req.raw )
@@ -365,7 +357,7 @@ static void cf_check hwp_init_msrs(void
     }
 
     /* Ensure we don't generate interrupts */
-    if ( feature_hwp_notification )
+    if ( host_cpu_policy.basic.pm.hwp_notification )
         wrmsr_safe(MSR_HWP_INTERRUPT, 0);
 
     if ( !(val & PM_ENABLE_HWP_ENABLE) )
@@ -537,7 +529,8 @@ int get_hwp_para(unsigned int cpu,
         return -ENODATA;
 
     cppc_para->features         =
-        (feature_hwp_activity_window ? XEN_SYSCTL_CPPC_FEAT_ACT_WINDOW : 0);
+        (host_cpu_policy.basic.pm.hwp_activity_window
+         ? XEN_SYSCTL_CPPC_FEAT_ACT_WINDOW : 0);
     cppc_para->lowest           = data->hw.lowest;
     cppc_para->lowest_nonlinear = data->hw.most_efficient;
     cppc_para->nominal          = data->hw.guaranteed;
@@ -585,7 +578,7 @@ int set_hwp_para(struct cpufreq_policy *
 
     /* Clear out activity window if lacking HW supported. */
     if ( (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_ACT_WINDOW) &&
-         !feature_hwp_activity_window )
+         !host_cpu_policy.basic.pm.hwp_activity_window )
     {
         set_cppc->set_params &= ~XEN_SYSCTL_CPPC_SET_ACT_WINDOW;
         cleared_act_window = true;
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -115,14 +115,6 @@ static inline bool boot_cpu_has(unsigned
 }
 
 #define CPUID_PM_LEAF                                6
-#define CPUID6_EAX_HWP                               BIT(7, U)
-#define CPUID6_EAX_HWP_NOTIFICATION                  BIT(8, U)
-#define CPUID6_EAX_HWP_ACTIVITY_WINDOW               BIT(9, U)
-#define CPUID6_EAX_HWP_ENERGY_PERFORMANCE_PREFERENCE BIT(10, U)
-#define CPUID6_EAX_HWP_PACKAGE_LEVEL_REQUEST         BIT(11, U)
-#define CPUID6_EAX_HDC                               BIT(13, U)
-#define CPUID6_EAX_HWP_PECI                          BIT(16, U)
-#define CPUID6_EAX_HW_FEEDBACK                       BIT(19, U)
 
 /* CPUID level 0x00000001.edx */
 #define cpu_has_fpu             1



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 15:10:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 15:10:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164957.1491805 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNLX-0005Vc-H0; Tue, 18 Nov 2025 15:10:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164957.1491805; Tue, 18 Nov 2025 15: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 1vLNLX-0005VV-EG; Tue, 18 Nov 2025 15:10:19 +0000
Received: by outflank-mailman (input) for mailman id 1164957;
 Tue, 18 Nov 2025 15: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=YPWA=52=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vLNLW-0005U1-6e
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 15:10:18 +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 b007d0b7-c490-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 16:10:17 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA3PR03MB8326.namprd03.prod.outlook.com (2603:10b6:806:462::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Tue, 18 Nov
 2025 15:10:13 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.009; Tue, 18 Nov 2025
 15:10: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: b007d0b7-c490-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AJw989k3F+mjXPXBOG8rX4nUZByA0wk1jJcVj3no/dImmcmGFSsJBDw1WSXLMHES3Wfljm8Hzb7SrCTMMzahaRyDfCslpGEFb25VzliAWX9yJW8TFoEPf17RoQjlyeYt85p5E+6sAvollHXJJlndJJbq25U6iLUoWxnawQhwnUm8N5JMuwiJjxp7T0jYS3/1kHnJScljYMa5i7LheFJRsb9FVMCEkRPlYkrjyUiCEmRiV990ac2tR6NZgB4fIZ69YPgyjS0/PIUaz7DYX7EJQ0mW0RTjHalZ8XVezSGZO5t3Okl/gTGpVKCG90jVe5yTXB2ITf5/ZTTmdWau4lT3Hw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=G4l0IRPrYYqsGygs10mjYPUXrqxgEiec9INfeMrMwkk=;
 b=pDzuobkD0EgKoKOJtyE8dNsJyEfw2eurGtPdPmHInZVj6RKqBsLrgzAC24HTYuedUASDJoFtQJxt+VTBe7bzHcxC748H+NEP9dwP9mRZpg8IDRnpwkf12EuEuMoogjaCgmzx+UCZHPVOzNT84zJd4dqyN70+GqXIM9x66a3t+7X4ril/EEbpfg6DDfnPQ3O+VdfxHixUbRWtQzMzqfLLvjC+W4vj/hfUeC39f3eJJQs4RPq0ZT/ED/jbsV7fVyMuEOGZ5B2ncQPC5gFW34uHrCoaNNaqW+KtEeC6vz6bbebHaHz9JVZ57xhKsmsNScNu65+xHxc2Ku6ShkWQAwMfgA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=G4l0IRPrYYqsGygs10mjYPUXrqxgEiec9INfeMrMwkk=;
 b=LCl+oI2Rj3KniMekIZib3G1T63oHYLWFwmqLYuYDsM9lNnVuiXiBQQZHxgc21nMbwnkpwoMOcWGx7XCb1W+Q+N5grttCIEl5uxhtI07GAz0yFoOeW5TnxQD7hIGIaknDF9P7meULz1VCpEctFPNFl3z3xuWQoUdrXxbZUjKyByM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <91e5b38b-b76c-48a2-9627-0729007f2a16@citrix.com>
Date: Tue, 18 Nov 2025 15:10:10 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/8] x86/cpu-policy: move invocation of recalculate_misc()
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>,
 Teddy Astie <teddy.astie@vates.tech>
References: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
 <ea7237e2-9026-4c79-8cd6-7b62094aab1c@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <ea7237e2-9026-4c79-8cd6-7b62094aab1c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0406.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:189::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_|SA3PR03MB8326:EE_
X-MS-Office365-Filtering-Correlation-Id: 2b550221-f3fb-4286-cc38-08de26b492f8
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?SFVKQUdNK0RCMkd3dm0vWC9JYXBObkpzSVFaZ1Zoak5LUDVQZFUwSUoxWUp5?=
 =?utf-8?B?T1UyMXo5OUlzN040Y0dNNXdDeDkzV0VvVzV1TjJSNUNMeDA4UEpiV0lEVDBs?=
 =?utf-8?B?VkZodXRDbjhwc3BLRWpBTU41N0VYWkk5NC8yd3NTRDdzWmxuV05LQmp6NUIx?=
 =?utf-8?B?VnNqM2cxWXB3ZmtYQkVja0ZKbzk1YWJyc0RNQ0JVMVhJSmhDa0NydVpiZTVM?=
 =?utf-8?B?ZTVxckRUTEQ5bkF0MWdCWTNZY2g5aXpHR3BVQ2Q3Yk9NZk5HSnRCNy9Pbkdp?=
 =?utf-8?B?ZEp5cDhzSlhNcEFlZ2hRTndYcDBLS0VIVVNxMnY2cGZPR3pPRk5uWWdFbWFp?=
 =?utf-8?B?ZEtMYitwOXZxRDNwMUFYQWt1cVBXa0NVTnVNeTZjUXdIMlFtSXdkSG10QmZq?=
 =?utf-8?B?endyMVNnc3A2YVpVVUZyVE02ZVFZRWpUNHRySEN0TXZadEl4ZkM3eGNjdU9H?=
 =?utf-8?B?MVRkS2RoSkg0UFp1MmRSaVFpSWErTzJNUnI0R3M4blZtdmpheStlVktVT3VH?=
 =?utf-8?B?UnBzbHpSeHNIekZxNWtIazFqY0VKM0swZlcvRHNwaDRsMCtSaFZQVUxnTGg2?=
 =?utf-8?B?Z0czUU0zeWZPN2ozUUNOMElJWGFaQjFHNTh6K2ZTQmRoSFpRNW8rTUNGTnJl?=
 =?utf-8?B?azdBM1VVTm5qcG55TFVraVE3dHNvUldsK09YWERKYTg4ZVZIaTE2aGFMdkI3?=
 =?utf-8?B?RlI3dnJpVVFud1c2emgwOGorRXVYdTBSN1RaaFR5ZEZhem1kQlEvOHk5ZG53?=
 =?utf-8?B?ZUlyODIrSlNEWStkaTNORzVSTG56elkvOVJRbm1HM2U1WFBNODNLaGRTV0dn?=
 =?utf-8?B?c2ZISTVaajBISU1pZW5VQW1LT3lZNG1NVDU5MXNOcHZOREVIZG4rQXBIWXpX?=
 =?utf-8?B?RVNmcXBpMmxDTnpZOEdDYytZR1RpbDY1anFUOVZLSkg3NEVBdHhVQzFLbzBs?=
 =?utf-8?B?STRwT3lVcHkxMC9uVWpzNVk1c1cyZTRpaGNXWXR5U3hGS2xMUmZoNFFJYzRC?=
 =?utf-8?B?ZWxpeWozN1BmUWhRY0FTR3pwSVpwektFTDZSd1pTWmdzcU85Unl0Z2JnenJv?=
 =?utf-8?B?VWZXUlBnNEh6K3JtTm1TU0xyakVSQlYvMm9qSWNMUVB4YWIwZDhYT2h4THV6?=
 =?utf-8?B?ZGc4eUY5NVViN1N4MUd6MjdxcFlmQlNBNnpEOVlNRFFWdTM3UUxTRXJjWkFU?=
 =?utf-8?B?UU5hRW8wdkRsMzZOcCswMnZLdFdOT0s1ZjllcE9CQ1dXcUtZbzZwUjdUd0F2?=
 =?utf-8?B?aTkxektHa0ZsS1ZxRGdoUEZQVWpieWFZd05LejRvRzNIYU5nY0ZMc1A3QVNT?=
 =?utf-8?B?Uk9yWWZWQTZGSDhFazQ0RGZmRG13K21NRzVSNkd2dWtMakxBeWxRZXFhdjc2?=
 =?utf-8?B?d09zVmlxUDBzZ0kraFJhRmdnZENRN3NBckZQNjhrV2E4K09IZ3NTSkVPRnVS?=
 =?utf-8?B?TWwxZUxqbHk0SG1WYk5rUXJwaUhteGVNbWcvclJ1N3Z1eUcvZ1p6QjB2M0o0?=
 =?utf-8?B?ajk1b3FDdXVHb1k2WlBoVGt1OWNaVkVNcmtpWmMvRmw5Q0RqazZ1Y2tzSWFP?=
 =?utf-8?B?YkNpVmFPZlZvZWt1U29wZDhQTDFGUGJRd2l3TUU1UDVMc2l4VmRBZUlxSGI0?=
 =?utf-8?B?UUV0TG1oS1hTQzVFTTZMRGJwdFp0QUd0OHpmTWwxZFFkTkR4Q0tTUG5qZllo?=
 =?utf-8?B?Njk0cm53bHVJdWVUbFdadWd5UU5XUGU3WGYzREpqSXRqelRSSWZjUm5TZ1BV?=
 =?utf-8?B?MHg2VmttZzdHcld1d2dtSzltZlZaUHI0cFdlQmI3VE9nWFlSWi9xRmpBRkhk?=
 =?utf-8?B?a1pZRDdIMkZiY0lVR0dNRFBHM0M4SXA2MVNSTkZ1YkhUNTZYcXlMM3JoOTda?=
 =?utf-8?B?QStVZFhLV1BVamNQNUtpKzBZck9OZ3BKbWJVRFdsSUs4d2dlaElRcHh4RmZN?=
 =?utf-8?Q?PX7njSj/lv4mVBEsFBGTwa8UdzBv60Tw?=
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?WHMrS242QVpjeDAzS0RueC9Bd241UmpkMlZ1aEV0eVprcUtwMDJXRzE2NDJu?=
 =?utf-8?B?bDJ5RkY3aHBYKzFoRDVja2hnQ040Z255QkxZUDczNDFwVCtES1pzMmhoRHNC?=
 =?utf-8?B?dmxCU21PMEVoSjFvVVpOczN1Lzg3S2ZndkEwRzgwc3BsNW5zMFNIRndFQ2pE?=
 =?utf-8?B?dkFMMXRHRUhISUxoL1BJVXc3WEZrc2xQdCtLSkVlN3lCcEZqazhGYm9BY3ZT?=
 =?utf-8?B?MyttV1QvSWtoNzcweXhkellhRWdIU1BXTjV0cDM4NGZ0dEppdHkyamFINE8r?=
 =?utf-8?B?YWlucEZ2WENGRXlpVGk1LzNJNlBBNUduTyt3TXp1aTBJMm1uUHF5ZjI1dE5k?=
 =?utf-8?B?T2F3R2p6ZWlRZkN5alpRS25QV3pzVHREWGQva3ZYbktScnhueVNYUktsdXdO?=
 =?utf-8?B?aUkvWE5Gb0NiNDNGYmhjUTlPQmU1UzdUb0Y5SnYyNWRjV0FzMHdxZnE0akVm?=
 =?utf-8?B?WGg3SjF0ME1FZWZMM201M1ZJNk1ZN0tTeGQ1R3h1MWYwSkJ2WUlMRVpISDR6?=
 =?utf-8?B?RUlGcE1VQU1OYXpwbjNyWGhobDlaUGV6RzlGbjY2ay8yZ0N3SW9adzkyTnBQ?=
 =?utf-8?B?SFVCVm5ueHN2Qy94MElQVml3TU4yVDRnVkVUdGdvN054THNFQnlqMS9VNm1D?=
 =?utf-8?B?R25PZlRRTnhrUmNYU0tGSDN6QWRkQm5ua3dTT3AvMFBOQmwrRGloaEp3bFQr?=
 =?utf-8?B?eVU0NHdmbXlJNnFEb1Y3TGFNZFZ5ai9aN2tsTmQ4dzZBREJaaU5ITk51Zm92?=
 =?utf-8?B?TVVHRDhRdXBlWkk5Y2puWDJNcjl6ckNSVk5xK0ExVDVtVFZ5L3pDNzZic3pY?=
 =?utf-8?B?TWt6YlNJamViMURNRkEzT0IvMXpqaVdkWVNYakdaaEFTK2RUTXBpcGdLYTVD?=
 =?utf-8?B?bnA4Y0FtWlB3Ynl6MStXaHY1LzZLSkU4eW1oMWUvZFlvZWNPVzZVRmdNejRJ?=
 =?utf-8?B?RTZ5c0MvTTI2NVVFTHlzSE4rems0REMzTHF5RUtCcUF6aEFHUU05NnFydUFQ?=
 =?utf-8?B?Y1hkbUE3MTRQTngzZnR0OGllaFhSWGRSelBJZ0tDcXFEQmM1K0t0QVVVUHJH?=
 =?utf-8?B?MS9FWFZ0dEp5ZHJFSm9qVkJsV0M1K1hYZXVXTkFYcXN0NUd0dUNmc2FKMWRs?=
 =?utf-8?B?S1NHVDJGTDkzOHJoRk1hYjBMWjczUldSNHRTditNMVpMVlNna05aR3pnUUZy?=
 =?utf-8?B?dmMyYnNMRERwZUhwVGk3T0V0eURzYXZ2bnVzOUl1ek9jTUhaZ1R0RWFQdGFC?=
 =?utf-8?B?OTdUTGh6L3JCLysxTDJidnBIaVlseDhuSVUvMnBnalJzMWRDR1pHV3ZIQ05y?=
 =?utf-8?B?Vzg1NUFncUZXRUlpaE1uRmZ1OWl5aGE3a2U2WmRxNE5JbTRuMUk4amljVnhE?=
 =?utf-8?B?TndOTXRqcE8xdjMzZ05IV3VTeWdCMGxJelJSTkxnTzhOdHV5N1BQaUpFRVZ6?=
 =?utf-8?B?dkl1a3RTTnQrLzVjSjVuSEFkZXdYd3hvQjVGREh2UlVFRDNMcTArdEM2cENO?=
 =?utf-8?B?enhlNGRNSWhrVmtPSEszK2pPV2RsbEd5ZmRNZ21JMlRpQnQ1NFVSVGFtOCtC?=
 =?utf-8?B?U29nVE0xdXp6YWhiQkdtS2wybE95Z1YyQkEzV0lWbDlCSm1hOWU0d0RLeDRa?=
 =?utf-8?B?Ly9pelN4WHRwVDIyV3dweGx3NitKWVJBVVFHek1FK3V2MU0wajhUcE1pdWpm?=
 =?utf-8?B?WEgrUm9BcWtHWWQrRi90cHc3d0FxSzk5R0V5SVk2OTRKQ0d3eXdwK0xFeHR5?=
 =?utf-8?B?cUhrTzdsT09oYkVKWHVKOEVFWVRZWE9qOEY5V055d3A3SHNLZHBWTHhWZ1V4?=
 =?utf-8?B?MWYwZmdXRTd6d3dDZjI1TzVObnhNZTNka2lMZFIrTnJSelFQWmtnRnN3Zk5L?=
 =?utf-8?B?U0ZzNDdJU1l1ZTRyU3JsRW1XbkxNNWhCN2JmbVVqdnltZGppZzRJQ2tPdTJ4?=
 =?utf-8?B?cThqd3R3VEM1aWpiY05DY1J2cUV3anlsT1pQSVZjdWU1eTJtcUI3ODNIM1Rs?=
 =?utf-8?B?SlRqRUVLVm51bVNDMElGUDR1MlRnMXUxUnZ6VjBZQlFDTEJKYURqQ1pPbzBM?=
 =?utf-8?B?Yk5nMWhZalBMRHBBZWZjaTRabTk3YVFFY2QvY3cvcW9nNlJkY0xOWmFQVFpa?=
 =?utf-8?B?VlZualVFeUxuN255V3VwSDgrNXUzcFYwaVhsaHhzM3hmdTYxR3Z0cytvcTJE?=
 =?utf-8?B?WEE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2b550221-f3fb-4286-cc38-08de26b492f8
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 15:10:13.7009
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: KcIL+3/CySVy4eAWs/eXNoTpT2OkI1gBFo/LtrwANJ9aopkdMzqZRZTo7hfTweSyOwmFpqu0z3GaC1cfC2nZtgGy221dhFZXdWocfP2Uokk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR03MB8326

On 18/11/2025 3:05 pm, Jan Beulich wrote:
> The function is about guest exposure of features / leaves. There's no need
> for it to be applied on the host policy. In fact doing so gets in the way
> of using the host policy in certain places.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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

I've been meaning to do this for a while.Â  It has interfered with some
debugging I've done in the past.


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 15:11:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 15:11:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164970.1491816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNMg-000697-Rz; Tue, 18 Nov 2025 15:11:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164970.1491816; Tue, 18 Nov 2025 15: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 1vLNMg-00068z-NE; Tue, 18 Nov 2025 15:11:30 +0000
Received: by outflank-mailman (input) for mailman id 1164970;
 Tue, 18 Nov 2025 15:11: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=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLNJo-00026P-Bz
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 15:08:32 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 716e96de-c490-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 16:08:30 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b7277324054so780203266b.0
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 07:08: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
 4fb4d7f45d1cf-6433a3f8e6dsm12962919a12.10.2025.11.18.07.08.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 07:08: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: 716e96de-c490-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763478510; x=1764083310; 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=EaxTfRibb0WV/8D0hz8O8sCazTK04DB2X0gZg+rQ2po=;
        b=LuibiqdlColTs3PtBpB7QESVQzwFR7g4nvr08wAnTNIs/n03ujuuqbdy1zJo1j64Vw
         iQfpnwdKF+eX2BgSNqYkL5lE97hIUYAjVkbqWboy4hBUK2sLZ6nxsGtllo42aFnxp2ru
         xxuAHHfi5wa6g9EHApt2l2goFWEu1XRMoC3LyX5A/sbe3XtR7KqW9ABv9T8JLga3rMV6
         K+txCbcXTFUY8GaIbG+cPNxL1YWw3KeADSbdAmqTh1w9StgI+Hxv0LnW/5zO8CeuAjHv
         4UxQG/Ex0Yk39DT8uCcKbwzxHgHARBjbJS1xKYyTXIJFajQ6DifKXJ8hq16+hKfDObMq
         Zspw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763478510; x=1764083310;
        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=EaxTfRibb0WV/8D0hz8O8sCazTK04DB2X0gZg+rQ2po=;
        b=wEjp0ki5xYCofsfOPSloUxAu88bxRPUOK6njwyy52nGEQBt/cu1BEb1VqTeyaOHkqe
         geb9XWIoq4NzE6VuIAYuMpN75kqx5uMfLrIdr6/H7QQ4qF5M0fmOyeILMqOdXOyCLUf4
         qP9KsH9hhRy5+7ZAA7kfjJqtO9gxkPSINuQXQXuHZAeX8N4ex8TlEGNoFHIFAptQxeCZ
         iljitpV4sbjJZo2SWsxY88QhO7RLHTd/8TJZP9Tpb/HvypX0cCtTvWN4mqfa7OaIE9q/
         wUUPx8YhHiqAO1y8483SEYMCdZuWpIkVgebxI1n42WsMeUT4gblgG/abtArqdDItBBQk
         Wvrw==
X-Gm-Message-State: AOJu0Yy5UOkZKfvl6DHJs6uYTcLLorI5JZxbW2f0Qy8aU8ERnLE0Oow6
	TVxWyFtmoS/IveDJO3YaDILzz8lDdy1bL2aJpisaxA4vCDmK5ISLaW4M3L51S8fj6UZmD3fZ3MF
	6sPw=
X-Gm-Gg: ASbGncvfVpoqTcln7TDCkyPDFUhaBTPPoFHpnz8pfLS60sa+JqlX0TKUpb77tgBt2e8
	zcFK1PN4zTHcHfFIyz9oPt+uyBTeERgGntzbUHg8EENqnzEVaLN2h7cSGibrdGe6JVwLgaZFqUr
	yQBEfxlnHGjFEB//amR8ySz1kZjiM1bjM/Hj3y3YVAb+CTKFdDbqKAOM7DF18/KT55IATWQlUY9
	DA4vGa8JeIulc+TJFBsy43xNxpsJ52B9twd7I5CahyIMsc3I2QZZ9QvPzeLNwGt0Cnq5QkUdAFk
	QgV06MTlMdfZemQ/LRHRgXqu58RbHsC3bzlMtsIssSHplnDU2LRU9Qu780SFEy0DznSbltdMBgi
	a8xjxm2A1UkqXWWVwU+B/7Z3/dQdMC09bBuVosh+X1EndIH9hbeZJ6Qhp/GA14Ff8f0ntLt6L+r
	6gslNdbYZ4it4OxF8WW1zSO0jNdKc0uDq+0mxGFaiaXnB5myufYa7J06UEWDcCWRQRiUUKkQS9s
	eqjEUv4ygON8DLJBzNuauTC
X-Google-Smtp-Source: AGHT+IF9K+r8GqRKCQE8yRN/NEsAGLmYIOctpAT8+1Dotrt3AMrqEBoosrWzfJtNzDqIBLUsN78mPg==
X-Received: by 2002:a17:906:7304:b0:b72:a899:168d with SMTP id a640c23a62f3a-b73677edba0mr1701170166b.13.1763478510059;
        Tue, 18 Nov 2025 07:08:30 -0800 (PST)
Message-ID: <c187188a-bb00-4dca-9ec6-7a3862a65bfd@suse.com>
Date: Tue, 18 Nov 2025 16:08:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 7/8] x86/cpufreq: use host CPU policy for Turbo checking
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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

There's no need to invoke CPUID yet another time - we assume symmetry
anyway. With symmetry assumed, logging per-CPU also isn't very useful.

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

--- a/xen/arch/x86/acpi/cpufreq/acpi.c
+++ b/xen/arch/x86/acpi/cpufreq/acpi.c
@@ -220,14 +220,11 @@ static unsigned int cf_check get_cur_fre
 
 void intel_feature_detect(struct cpufreq_policy *policy)
 {
-    unsigned int eax;
-
-    eax = cpuid_eax(6);
-    if (eax & 0x2) {
+    if ( cpu_has_turbo )
+    {
         policy->turbo = CPUFREQ_TURBO_ENABLED;
-        if (cpufreq_verbose)
-            printk(XENLOG_INFO "CPU%u: Turbo Mode detected and enabled\n",
-                   smp_processor_id());
+        if ( cpufreq_verbose )
+            printk_once(XENLOG_INFO "Turbo Mode detected and enabled\n");
     }
 }
 
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -177,6 +177,7 @@ static inline bool boot_cpu_has(unsigned
 #define cpu_has_tbm             boot_cpu_has(X86_FEATURE_TBM)
 
 /* CPUID level 0x00000006.eax */
+#define cpu_has_turbo           host_cpu_policy.basic.pm.turbo
 #define cpu_has_arat            host_cpu_policy.basic.pm.arat
 
 /* CPUID level 0x00000006.ecx */



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 15:11:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 15:11:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164971.1491824 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNMm-0006Th-5f; Tue, 18 Nov 2025 15:11:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164971.1491824; Tue, 18 Nov 2025 15:11:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNMm-0006Ta-2n; Tue, 18 Nov 2025 15:11:36 +0000
Received: by outflank-mailman (input) for mailman id 1164971;
 Tue, 18 Nov 2025 15:11:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLNJ6-00026P-Pz
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 15:07:48 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5736c4ec-c490-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 16:07:46 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b727f452fffso1090538866b.1
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 07:07: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
 a640c23a62f3a-b734fa81172sm1360206366b.15.2025.11.18.07.07.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 07:07: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: 5736c4ec-c490-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763478466; x=1764083266; 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=ogwqBuXZSaN+AgPZhx6o0JgPjsKbQmKgsLL7wy4U8mQ=;
        b=ducR8lKb+vbtuzzaVdY3f7EAoZ8MhqQX/QHxq0WfvFyBuiAFSQ28qwWaCT6EFyVRTh
         tO2ouQUYds1VuDopCzOkADYN9DS6uhhEp9EBpQx0/L610tecBeGjm3fhCsZ/Hr27wVQJ
         Ne1SY28axBT2Jaktrsyg3YfvxiiywpXbgA3xtwnj5Ooq+CYl7Kd6k712Rpp6I13refAy
         mDr5i50BnPkMwILZGjSxsLvsg/CxSSPV7YFY4BHJ4zPygMZtop9EwCV7rJeAKtgt5svm
         xyKEDmWeZiYzZUpRk+E3OsQCx5aZWL5y6WfVFKyDQDcWVdR8ljHnkeO9Grn02C5AcHK5
         2tUQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763478466; x=1764083266;
        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=ogwqBuXZSaN+AgPZhx6o0JgPjsKbQmKgsLL7wy4U8mQ=;
        b=S3J0OXaQMywDbZLiwcYV4W9SovPIzKIGfHAVO/SDDbqts9+Xk6n9705b5VuwQRt508
         A89KBt+ItZaGRto+0wT53dZ+pgxt6Ya+F85eqv3cBLdFz32rORbXkGheT90AkDr8cEOr
         rFm/nNGnm0FhhftZhZHvVXWFfsg1biMqHy2UcfwNejlWEIErLaIKz+ErX7I4lSOqvLVG
         gzPjKg0rzkvP6e2PCjDaE4DjEP5YSQ+2ctfMK4p6Bl2V5XPYmTNBdGvgc8CaC7ZvVuHy
         Q0DACn49LlVNSYCuzCgJ09rINv9xjRtvLExKyijW5NKehZg8tVupGJxDyuK/+ubZCHIl
         XUCg==
X-Gm-Message-State: AOJu0Yz4duhDhAiOh2lxa22m2Bh3ME0KIWys0gCWiN35TmCIH2i33ej9
	xxuhsmSy8DuhjoJYaHxAogbEhlUqQinbagsBeqZtlHyOPVQcXU2QWFwGov5X0KaMvnmTogR9UYN
	XVT8=
X-Gm-Gg: ASbGncuVfA+H/g5nNm0xAkoJNWz8zh80ZIYICyaeW+fxn/ZtAZ4C+nChMs0Wo5QM39X
	j0IQJ8yzWCaQKE0WGpfUjej45tMnCIRVoecEnuge5bWgtlvQq4eTayw1PD+9YQPcTCdFinEosRZ
	bA2TQsw4Np9iG2gQ3agnMQSAiGUm/eJkQn8hoCnHWE6pg6Jr1UnlT8iUeOOloFg6QMJ6euujeX9
	Ma5a9qyngWAJ6EGkMJX7y3OoYRbKiBfLsmdZSBSIicqB56m3j8jRcdoHpWuk/xvy5a1ESNMxK4E
	98qThXuSFOO4m8JqDXS4YEwMQxznUlv45jXP0JUKiBcSA4f0+hPq6aPt78fVBvVFHyK9rycTDYS
	FRHD1/RgkuyV+HK2LWEhQO5SpkxTue7rVsw0USXvh7aJHQptc4mNVDrIPVrIzXMTF3byfQ2l0cI
	0VyXABDXCgl6QoGKJtHyutWo6YeOpKDjboyQfmRqhriuMCv2a4BJTxQ8kh0AgmHHBHtfJD4y6Xc
	VE=
X-Google-Smtp-Source: AGHT+IFR9Pomx8rFbS6hsHAUaKwk67R3YEGcCjD+fMbAYcxcBh7aP2reu+6Hpe15tc6hWW/ITUC/6Q==
X-Received: by 2002:a17:907:d16:b0:b72:e158:8229 with SMTP id a640c23a62f3a-b75a09f290bmr484598866b.15.1763478466123;
        Tue, 18 Nov 2025 07:07:46 -0800 (PST)
Message-ID: <bd4f2601-a2fc-4c58-b1a9-3b2c40076eab@suse.com>
Date: Tue, 18 Nov 2025 16:07:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 5/8] x86: rename ARAT feature flag
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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Add a XEN infix, to properly distinguish it from the CPUID feature flag
(leaf 6 EAX bit 2).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Question is whether we still need opt_arat (and the command line option),
or whether we could go directly from the CPUID bit (overriding it to on
for older AMD [and Hygon?] CPUs). Or whether to have opt_arat affect the
(host) CPU policy directly.

--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -109,7 +109,7 @@ void (*__read_mostly lapic_timer_on)(voi
 
 bool lapic_timer_init(void)
 {
-    if ( boot_cpu_has(X86_FEATURE_ARAT) )
+    if ( boot_cpu_has(X86_FEATURE_XEN_ARAT) )
     {
         lapic_timer_off = lapic_timer_nop;
         lapic_timer_on = lapic_timer_nop;
@@ -1463,7 +1463,7 @@ static void amd_cpuidle_init(struct acpi
 
         if ( !vendor_override )
         {
-            if ( !boot_cpu_has(X86_FEATURE_ARAT) )
+            if ( !boot_cpu_has(X86_FEATURE_XEN_ARAT) )
                 hpet_broadcast_init();
 
             if ( !lapic_timer_init() )
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -1355,7 +1355,7 @@ static void cf_check init_amd(struct cpu
 	 * running in deep C states.
 	 */
 	if ( opt_arat && c->x86 > 0x11 )
-		__set_bit(X86_FEATURE_ARAT, c->x86_capability);
+		__set_bit(X86_FEATURE_XEN_ARAT, c->x86_capability);
 
 	/*
 	 * Prior to Family 0x14, perf counters are not reset during warm reboot.
--- a/xen/arch/x86/cpu/hygon.c
+++ b/xen/arch/x86/cpu/hygon.c
@@ -76,7 +76,7 @@ static void cf_check init_hygon(struct c
 
 	/* Hygon processors have APIC timer running in deep C states. */
 	if (opt_arat)
-		__set_bit(X86_FEATURE_ARAT, c->x86_capability);
+		__set_bit(X86_FEATURE_XEN_ARAT, c->x86_capability);
 
 	if (cpu_has(c, X86_FEATURE_EFRO)) {
 		rdmsrl(MSR_K8_HWCR, value);
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -668,7 +668,7 @@ static void cf_check init_intel(struct c
 	if ( opt_arat &&
 	     ( c->cpuid_level >= 0x00000006 ) &&
 	     ( cpuid_eax(0x00000006) & (1u<<2) ) )
-		__set_bit(X86_FEATURE_ARAT, c->x86_capability);
+		__set_bit(X86_FEATURE_XEN_ARAT, c->x86_capability);
 
 	if ((opt_cpu_info && !(c->apicid & (c->x86_num_siblings - 1))) ||
 	    c == &boot_cpu_data )
--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -1633,7 +1633,7 @@ static int __init mwait_idle_probe(void)
 	icpu = id->driver_data;
 	cpuidle_state_table = icpu->state_table;
 
-	if (boot_cpu_has(X86_FEATURE_ARAT))
+	if (boot_cpu_has(X86_FEATURE_XEN_ARAT))
 		lapic_timer_reliable_states = LAPIC_TIMER_ALWAYS_RELIABLE;
 
 	pr_debug(PREFIX "v" MWAIT_IDLE_VERSION " model %#x\n",
@@ -1792,7 +1792,7 @@ int __init mwait_idle_init(struct notifi
 		return -ENODEV;
 
 	err = mwait_idle_probe();
-	if (!err && !boot_cpu_has(X86_FEATURE_ARAT)) {
+	if (!err && !boot_cpu_has(X86_FEATURE_XEN_ARAT)) {
 		hpet_broadcast_init();
 		if (xen_cpuidle < 0 && !hpet_broadcast_is_available())
 			err = -ENODEV;
--- a/xen/arch/x86/include/asm/cpufeatures.h
+++ b/xen/arch/x86/include/asm/cpufeatures.h
@@ -13,7 +13,7 @@
 /* Synthetic features */
 XEN_CPUFEATURE(CONSTANT_TSC,      X86_SYNTH( 0)) /* TSC ticks at a constant rate */
 XEN_CPUFEATURE(NONSTOP_TSC,       X86_SYNTH( 1)) /* TSC does not stop in C states */
-XEN_CPUFEATURE(ARAT,              X86_SYNTH( 2)) /* Always running APIC timer */
+XEN_CPUFEATURE(XEN_ARAT,          X86_SYNTH( 2)) /* Xen may utilize always running APIC timer */
 XEN_CPUFEATURE(ARCH_PERFMON,      X86_SYNTH( 3)) /* Intel Architectural PerfMon */
 XEN_CPUFEATURE(TSC_RELIABLE,      X86_SYNTH( 4)) /* TSC is known to be reliable */
 XEN_CPUFEATURE(XTOPOLOGY,         X86_SYNTH( 5)) /* cpu topology enum extensions */
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -2642,7 +2642,7 @@ static int _disable_pit_irq(bool init)
      * XXX dom0 may rely on RTC interrupt delivery, so only enable
      * hpet_broadcast if FSB mode available or if force_hpet_broadcast.
      */
-    if ( cpuidle_using_deep_cstate() && !boot_cpu_has(X86_FEATURE_ARAT) )
+    if ( cpuidle_using_deep_cstate() && !boot_cpu_has(X86_FEATURE_XEN_ARAT) )
     {
         init ? hpet_broadcast_init() : hpet_broadcast_resume();
         if ( !hpet_broadcast_is_available() )



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 15:11:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 15:11:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1164972.1491835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNMo-0006jb-Dv; Tue, 18 Nov 2025 15:11:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1164972.1491835; Tue, 18 Nov 2025 15:11:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNMo-0006jS-9W; Tue, 18 Nov 2025 15:11:38 +0000
Received: by outflank-mailman (input) for mailman id 1164972;
 Tue, 18 Nov 2025 15:11:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLNJV-00026P-I6
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 15:08:13 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 662e9a63-c490-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 16:08:11 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-6417313bddaso9029704a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 07:08: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
 a640c23a62f3a-b734fa80afbsm1350070166b.11.2025.11.18.07.08.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 07: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: 662e9a63-c490-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763478491; x=1764083291; 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=W86zTLEXpDpklYi+GcoFltRiRTg9CcQOeSAaFkrNf28=;
        b=buihZib3bkytVULX1qWJ16BSNmfek/ewWT8+waWnCQEbdE90P2cRGX1gATkO32KtdG
         eARg4UZV2Q+/F6rOXuSsqVApXVvcpl3VrbquG0XWuQM25DboVbJyuLghqcdyqf9eHgS2
         tAeObkmiq0HUzmIcCDiFwtovIzV/6H7SCzxipGmQBOKxubzvEuayGZzG0B+bfATuRX32
         tJJqeI9f41oGkPzz1a3aaDz16xBFrVFAPS2GoOPQ5fpdwSlPFjVnbPGJT5ZkpREVDH74
         DinjHIBrdrW6kNecmCWar7KD4yFjbGKgt7j5uwNu1yOhyWt5/FllTQsQxtmnoCoKONpl
         +nRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763478491; x=1764083291;
        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=W86zTLEXpDpklYi+GcoFltRiRTg9CcQOeSAaFkrNf28=;
        b=QLpNO5OxO4qliODQUrq3E7I1raKjIWT9aH4ZViR8NbtBMXq4VvytcUz0hbhe7bHNa9
         OLwu5okYpthpq3I1f2j3I2KCGRzNbUSUEEJbp8A3Qh+C5Kvga7i1q0Wh5oyO63KPnVem
         aBaqEDNMwCTBWLZ3cjHXpW9z8wmaHyznx3qeAJp6dSjoNOX6TjxUdzsYjuxitNlGYFXb
         5BSkwFEl/XGTKG+hZ6nfocrYm0G5pXTkaYpEkhgnOEBaspqqg+W0CV+AEXt2sE8MDkbt
         +pSA7tozJOpChfeV9RhdykH4lZ39TQxiQM9FNaHw/DK60UyzNogW9jF96PWw6auMOUVo
         ZM7w==
X-Gm-Message-State: AOJu0YyJNb4AR8fOgdtLnZWpAQGAcFD7mZN7wfwx4zciZyAnfWXElBX+
	JLIpHWFb0rcQQ/Sf3ommaaBuO6S9WbO8yfknGFeFm5w/V8Oc2EvHrBvi3bLAX9UT+U0Py1nxndc
	OsuA=
X-Gm-Gg: ASbGncufTdA2eSIhZaTDPB/8bGkQFSgT8y9iW2zOtf2QfDC7sm2qBVFkknjIVuG5zT4
	YmaaAonLH7a6LkwCPXJt5qki9hNjocKJwrZlH3sKUSgAVBsozK1/ntuSPwdY62MX3kOq7VQFix3
	UzrTB3ihqltzE7CCsuRO6HbTQR3BhL/atFjeIhaceuN6jYts0tz9Z4oZpgaKUoUiJXzh07q/PT7
	9sZIe8z3pZS46f6EF+vd/2YoO+QAERAm65kfkav5tXVOl8rqP0fNCQzlyrOBTVnbgkAnfqfG6oP
	WDrOhyjxm7NOKB1026DjBPF9NDWXBzm3KqDMA85mClAtyNVtGDGkp4bJScpnDXzPPT7KDKKnosr
	WTOvWdXv0CfMJf1MkELWfBQrXDgeQLi8eeTRaiKX4sTiGFOzUAdNgrndiqebNVB2uYQpWvznd21
	S5tsxrq1Nh+h/IlCGPnlaOdrLdiUqOKuTt+tBgnQ3s8AR5T8XVYIl9OlAxV3FC2XGikeivicvBF
	iQ=
X-Google-Smtp-Source: AGHT+IEczz1Xgz1tWQgteHlheUhiJDKhuAQVZpHPlpECj+Ngb7vc1kuYcwHlMZr0Z8Drt989UCT1rQ==
X-Received: by 2002:a17:906:4786:b0:b73:5131:c45b with SMTP id a640c23a62f3a-b73678293b3mr1437014566b.22.1763478491035;
        Tue, 18 Nov 2025 07:08:11 -0800 (PST)
Message-ID: <65cb802c-922d-4bee-9dee-566367bec6ed@suse.com>
Date: Tue, 18 Nov 2025 16:08:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 6/8] x86/Intel: use host CPU policy for ARAT checking
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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

There's no need to invoke CPUID yet another time. However, as the host CPU
policy is set up only shortly after init_intel() ran on the BSP, defer the
logic to a pre-SMP initcall. This can't be (a new) one in cpu/intel.c
though, as that's linked after acpi/cpu_idle.c (which is where we already
need the feature set). Since opt_arat is local to the cpu/ subtree,
introduce a new Intel-specific helper to hold the code needed.

Further, as we assume symmetry anyway, use setup_force_cpu_cap() and hence
limit the checking to the boot CPU.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
The need to move where cpu_has_arat is checked would go away if we did
away with opt_arat (as mentioned in the previous patch), and hence could
use cpu_has_arat directly where right now XEN_ARAT is checked.

--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -1666,6 +1666,9 @@ static int __init cf_check cpuidle_presm
 {
     void *cpu = (void *)(long)smp_processor_id();
 
+    if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
+        intel_init_arat();
+
     if ( !xen_cpuidle )
         return 0;
 
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -665,10 +665,6 @@ static void cf_check init_intel(struct c
 		__set_bit(X86_FEATURE_NONSTOP_TSC, c->x86_capability);
 		__set_bit(X86_FEATURE_TSC_RELIABLE, c->x86_capability);
 	}
-	if ( opt_arat &&
-	     ( c->cpuid_level >= 0x00000006 ) &&
-	     ( cpuid_eax(0x00000006) & (1u<<2) ) )
-		__set_bit(X86_FEATURE_XEN_ARAT, c->x86_capability);
 
 	if ((opt_cpu_info && !(c->apicid & (c->x86_num_siblings - 1))) ||
 	    c == &boot_cpu_data )
@@ -690,3 +686,9 @@ const struct cpu_dev __initconst_cf_clob
 	.c_early_init	= early_init_intel,
 	.c_init		= init_intel,
 };
+
+void __init intel_init_arat(void)
+{
+    if ( opt_arat && cpu_has_arat )
+        setup_force_cpu_cap(X86_FEATURE_XEN_ARAT);
+}
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -176,6 +176,9 @@ static inline bool boot_cpu_has(unsigned
 #define cpu_has_fma4            boot_cpu_has(X86_FEATURE_FMA4)
 #define cpu_has_tbm             boot_cpu_has(X86_FEATURE_TBM)
 
+/* CPUID level 0x00000006.eax */
+#define cpu_has_arat            host_cpu_policy.basic.pm.arat
+
 /* CPUID level 0x00000006.ecx */
 #define cpu_has_aperfmperf      host_cpu_policy.basic.pm.aperfmperf
 
--- a/xen/arch/x86/include/asm/processor.h
+++ b/xen/arch/x86/include/asm/processor.h
@@ -102,6 +102,7 @@ extern void setup_force_cpu_cap(unsigned
 extern bool is_forced_cpu_cap(unsigned int cap);
 extern void print_cpu_info(unsigned int cpu);
 extern void init_intel_cacheinfo(struct cpuinfo_x86 *c);
+extern void intel_init_arat(void);
 
 #define cpu_to_core(_cpu)   (cpu_data[_cpu].cpu_core_id)
 #define cpu_to_socket(_cpu) (cpu_data[_cpu].phys_proc_id)



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 15:28:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 15:28:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165017.1491844 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNdD-0001Ts-N6; Tue, 18 Nov 2025 15:28:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165017.1491844; Tue, 18 Nov 2025 15:28:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNdD-0001Tl-Ke; Tue, 18 Nov 2025 15:28:35 +0000
Received: by outflank-mailman (input) for mailman id 1165017;
 Tue, 18 Nov 2025 15:28: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=Kq2N=52=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vLNdC-0001Tf-JC
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 15:28:34 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3dbeab60-c493-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 16:28:32 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b7291af7190so818662766b.3
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 07:28:32 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b73718fec4csm1048334166b.39.2025.11.18.07.28.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 07: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: 3dbeab60-c493-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763479712; x=1764084512; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jhNnrcJ5WZfInTMJrlK0pOxHvddBeWvV4qYFYrGOxqU=;
        b=D7XWnGHAMNqZA5COkC2XcVF0QbB6ZhIZhBJ3EnpQ6oSLunc7qHPoXIqXVD3GmnuVBn
         /m+Ey5as+E4e3FeDg/qiNM5CkFDeVSqwKHu9vauLer6A3kGTuZeREWJbyweCCwz07t9G
         49N3bIafni5kRv2K1njG/IVD2L5u8eRBzfee1DuKxUb+ymgYN71RC1Wc2yi28nXpeQsZ
         LdxyADGVqCYWgCAZsqq+DLje3evu9tc6CFUGHBln58G+B7R7v543d8o3XfbpZ5uS/rRM
         0sQDrEYrTC0dUpAQV80w1qKZNDVMzk/LLH1Ea8TYQ2vSzQjeLXKDCHZ4CpyJEJOVQvC4
         LVvg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763479712; x=1764084512;
        h=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=jhNnrcJ5WZfInTMJrlK0pOxHvddBeWvV4qYFYrGOxqU=;
        b=Em4h7WMVz/+Apt/ngmj/1UFH2pNavtGP1RTKb6h1djioMaE8tEpNZgxAz/KbK8M/NF
         EM43GiaSq6hhO+HrG5z7Ij1RQFrLcLm9fLUy75/HaBGgDEBnSd4w8Iib8BIumD1Kc5+8
         +o8OsxLqz2z7gaya3+kSTZItZNj4kPXzYOL73lEwYxZOrQuhvA+Kf2mr8VqirUo6uPYG
         KRz1Bj6ryD0XkQmVXeTR3n30ILHEulURV7gY0hzcK3mkBfve8EXRCO8pTFwKyngsALfT
         c1c13GCak03Lki2Fa6SL/7KRbVcopff/ri6fzT30I9TM7NtzcbtaO4U7MrTB0rwDJ/DG
         KHMA==
X-Forwarded-Encrypted: i=1; AJvYcCUTURohqPP87bULdKB7B0zrFtKQHBMMbCNfBbuKMZxwIKjUGSY/dvWbdmA4x2Z4YqSLvhJilOGVtO0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzH8yokKevNu+iPOXhx2Nc7AdxgBwAeri6D7ZmZ+X9NAdQ5urOX
	hotTdF6074pZkPOs+ZxTNTzc3vNJDc1zMVot8kF9rlvYiiVpY94J/EfE
X-Gm-Gg: ASbGncuDLMciYt3GzLJCwE+/INcANayWP+UFLUAbszjibnGsW83M3k1um7i3262kpq5
	c14vTXtNqO0pDajt0QW0hBHR536XIhb1o3cWYO6X3fBJsIdq5RRhPDuS9ugOgdzMyfWTvAlWjvB
	Hvhtl0zoSwoQ3v1570Tu+11tOA1Riwfc2QcsbernuGdnGS3c+5jwq4o2deeMEoRSiUkFjtPvaG4
	Y93VzLkY0ptFgZF2LAuG4HP5G4b2k5PolAI5Uql59XK/K+SrdvdvVru3aLuiNS26vSV7YAcBaaH
	kUEuJ6y8apI1BzzJkzH2JbvWoFhWv5GK4oWUR//fPia0V8cS0P70TcM3GwlHCpcLuWbfdYv6SrG
	bDbQn/RmLJjjkDt3Dkg+aP3Z/KZydVvWrdOLJXx55LPmBwIgY7cP8S5ligw5FHEu3suPvCgA24E
	A4KIVSY25c0mM06Cks+0cW4n551OQ1rt7SvMUOEBGwHSxVTLdZWb0IExowMkyR
X-Google-Smtp-Source: AGHT+IGWmJZIqp+9cQiAIkHRkBF0PYVa2YTbWa3JgfpPGjlfFwvqnql3hXLqFXbB13Vso75H6PRTuw==
X-Received: by 2002:a17:906:8f8a:b0:b73:1634:6d71 with SMTP id a640c23a62f3a-b736780df8cmr1795378066b.26.1763479711590;
        Tue, 18 Nov 2025 07:28:31 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------AdDDLHzqARKdy0Ld8w6LZXVe"
Message-ID: <6ddb0571-6c19-404b-813b-55c9ad0dd062@gmail.com>
Date: Tue, 18 Nov 2025 16:28:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 10/18] xen/riscv: implement p2m_set_range()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <d689c48582505b0dab6896b414d01d844d834bd5.1760974017.git.oleksii.kurochko@gmail.com>
 <cfe9da20-5680-4f42-92f6-f46350811380@suse.com>
 <3fc28006-4a03-4d95-8db3-71a7b3131f82@gmail.com>
 <31c69c86-46ba-4670-b265-10baa0001f85@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <31c69c86-46ba-4670-b265-10baa0001f85@suse.com>

This is a multi-part message in MIME format.
--------------AdDDLHzqARKdy0Ld8w6LZXVe
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/17/25 9:56 AM, Jan Beulich wrote:
>>>> +#define P2M_MAX_ROOT_LEVEL 4
>>>> +
>>>> +#define P2M_DECLARE_OFFSETS(var, addr) \
>>>> +    unsigned int var[P2M_MAX_ROOT_LEVEL] = {-1};\
>>>> +    for ( unsigned int i = 0; i <= gstage_root_level; i++ ) \
>>>> +        var[i] = calc_offset(i, addr);
>>> This surely is more than just "declare", and it's dealing with all levels no
>>> matter whether you actually will use all offsets.
>> I will rename|P2M_DECLARE_OFFSETS| to|P2M_BUILD_LEVEL_OFFSETS()|.
>>
>> But how can I know which offset I will actually need to use?
>> If we take the following loop as an example:
>>     |for( level = P2M_ROOT_LEVEL; level > target; level-- ) { ||/* ||* 
>> Don't try to allocate intermediate page tables if the mapping ||* is 
>> about to be removed. ||*/ ||rc = p2m_next_level(p2m, 
>> !removing_mapping, ||level, &table, offsets[level]); ||... ||} |It 
>> walks from|P2M_ROOT_LEVEL| down to|target|, where|target| is determined at runtime.
>>
>> If you mean that, for example, when the G-stage mode is Sv39, there is no need to allocate
>> an array with 4 entries (or 5 entries if we consider Sv57, so P2M_MAX_ROOT_LEVEL should be
>> updated), because Sv39 only uses 3 page table levels â€” then yes, in theory it could be
>> smaller. But I don't think it is a real issue if the|offsets[]| array on the stack has a
>> few extra unused entries.
>>
>> If preferred, Icould allocate the array dynamically based on|gstage_root_level|.
>> Would that be better?
> Having a few unused entries isn't a big deal imo. What I'm not happy with here is
> that you may_initialize_ more entries than actually needed. I have no good
> suggestion within the conceptual framework you use for page walking (the same
> issue iirc exists in host page table walks, just that the calculations there are
> cheaper).

The loop inside|P2M_DECLARE_OFFSETS()| uses|gstage_root_level|, so only the entries that
are actually going to be used are initialized.

You probably mean that itâ€™s possible we donâ€™t need to walk all the tables because a
leaf page-table entry appears earlier than the L0 page table for some gfns? IMO, itâ€™s not
really a big deal, because at worst we just spend some time calculating something that
isnâ€™t actually needed, but considering that it will be just extra 2 calls in the worst case
(when mapping is 1g, for no reason we calculated offsets for L1 and L0) of calc_offset()
it won't affect performance too much.

~ Oleksii

--------------AdDDLHzqARKdy0Ld8w6LZXVe
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/17/25 9:56 AM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:31c69c86-46ba-4670-b265-10baa0001f85@suse.com">
      <pre class="moz-quote-pre" wrap=""><blockquote type="cite"
      style="color: #007cff;"><blockquote type="cite"
      style="color: #007cff;"><blockquote type="cite"
      style="color: #007cff;"><pre wrap="" class="moz-quote-pre">+#define P2M_MAX_ROOT_LEVEL 4
+
+#define P2M_DECLARE_OFFSETS(var, addr) \
+    unsigned int var[P2M_MAX_ROOT_LEVEL] = {-1};\
+    for ( unsigned int i = 0; i &lt;= gstage_root_level; i++ ) \
+        var[i] = calc_offset(i, addr);
</pre></blockquote><pre wrap="" class="moz-quote-pre">This surely is more than just "declare", and it's dealing with all levels no
matter whether you actually will use all offsets.
</pre></blockquote><pre wrap="" class="moz-quote-pre">I will rename|P2M_DECLARE_OFFSETS| to|P2M_BUILD_LEVEL_OFFSETS()|.

But how can I know which offset I will actually need to use?
If we take the following loop as an example:
   <code class="moz-txt-verticalline"><span class="moz-txt-tag">|</span>for( level = P2M_ROOT_LEVEL; level &gt; target; level-- ) { ||/* ||* Don't try to allocate intermediate page tables if the mapping ||* is about to be removed. ||*/ ||rc = p2m_next_level(p2m, !removing_mapping, ||level, &amp;table, offsets[level]); ||... ||} <code
      class="moz-txt-verticalline"><span class="moz-txt-tag">|</span>It walks from|P2M_ROOT_LEVEL<span
      class="moz-txt-tag">|</span></code> down to|target<span
      class="moz-txt-tag">|</span></code>, where|target| is determined at runtime.

If you mean that, for example, when the G-stage mode is Sv39, there is no need to allocate
an array with 4 entries (or 5 entries if we consider Sv57, so P2M_MAX_ROOT_LEVEL should be
updated), because Sv39 only uses 3 page table levels â€” then yes, in theory it could be
smaller. But I don't think it is a real issue if the|offsets[]| array on the stack has a
few extra unused entries.

If preferred, Icould allocate the array dynamically based on|gstage_root_level|.
Would that be better?
</pre></blockquote><pre wrap="" class="moz-quote-pre">Having a few unused entries isn't a big deal imo. What I'm not happy with here is
that you may <span class="moz-txt-underscore"><span class="moz-txt-tag">_</span>initialize<span
      class="moz-txt-tag">_</span></span> more entries than actually needed. I have no good
suggestion within the conceptual framework you use for page walking (the same
issue iirc exists in host page table walks, just that the calculations there are
cheaper).</pre></pre>
    </blockquote>
    <pre>The loop inside <code data-start="92" data-end="115">P2M_DECLARE_OFFSETS()</code> uses <code
    data-start="121" data-end="140">gstage_root_level</code>, so only the entries that
are actually going to be used are initialized.

You probably mean that itâ€™s possible we donâ€™t need to walk all the tables because a
leaf page-table entry appears earlier than the L0 page table for some gfns? IMO, itâ€™s not
really a big deal, because at worst we just spend some time calculating something that
isnâ€™t actually needed, but considering that it will be just extra 2 calls in the worst case
(when mapping is 1g, for no reason we calculated offsets for L1 and L0) of calc_offset()
it won't affect performance too much.

~ Oleksii</pre>
  </body>
</html>

--------------AdDDLHzqARKdy0Ld8w6LZXVe--


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 15:30:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 15:30:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165031.1491855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNf5-00032E-6J; Tue, 18 Nov 2025 15:30:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165031.1491855; Tue, 18 Nov 2025 15: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 1vLNf5-000327-2s; Tue, 18 Nov 2025 15:30:31 +0000
Received: by outflank-mailman (input) for mailman id 1165031;
 Tue, 18 Nov 2025 15:30: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=YPWA=52=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vLNf4-000321-FB
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 15:30:30 +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 806f6acf-c493-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 16:30:25 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CO1PR03MB7868.namprd03.prod.outlook.com (2603:10b6:303:276::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.21; Tue, 18 Nov
 2025 15:30:21 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.009; Tue, 18 Nov 2025
 15:30: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: 806f6acf-c493-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xIjaYblgcfguBQWB+9LFHGOcI+4eu59u9UXIuybwWm8Gv5c4rJ7PNqpxrM9EHLmwGqJouS/F9tu0Z778johYLGY1WFaarAV+ehKACM+v6CndgGFoBLTL+ahEPq2zsigW1u4ZIbrWTYH15ei5grVE14nfvO9qsHlqKnT10gGn0XVuImGCZTU9oj/VRv85YS/T/V4yO9jfT/Mt/gfiAl8e8VyFas0xBoFekhUdYmiTG82AVHlQTXYSFChVRCnL03hvrI+umdwfUrT/wl4k/9XipGIj6LUhgxUaqhuYKr4qvH0WGnUgGyBGnGaV23G2QZ3C7Jzlh1ctSv35C2fIPW9hMQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pmn8UUt4vfhhKg5rTv2J3CvJWselWfmjzEw1oeY1aUA=;
 b=Wr989+wVSBVI34NNB7Vc57ErIrhMAFAAjRc5GRqreZP/MCr9B6BplleGw43YRZdEsuGzcC1QlYsHQ91P5Jk6TWL6OkLoWCTupPRwa1B6RuJBKLs2EG4jGkBnui1TZIzLxH2vDcuQqegEIjUBVaJ+9k7qUfl7uJzOI9ycGWjE+HQ35uudATk/JCR6hnyHEfmNbFnQjdKcgGxsEO065bLVkKmk88NTWNbgS1TnEnaqxkLfpqsYxKO9tM7nU/B53BsRSnTKQRSRBTELsIcR4zocD4n08cQmuBQUk0jUZDfzh1n/KTmUFxK5+ubyaik6Rtn3bYJJ82UJk4UiNSpSZPGgTQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pmn8UUt4vfhhKg5rTv2J3CvJWselWfmjzEw1oeY1aUA=;
 b=hW8liaMJ+A5DneTu7lOb34nOMEg2Wh+ZV4Fa6V5ulEP23DdDdpL3RvC4djkKeQh7L0TwCYG833OgKIo5wgKyb2KKR6/jNwGi4/LUSylHg12jsvni6shupSidxnmURk0Tq/P1NR2TBlZYxJmBSWx4y/fz8haG+vjgwlpAaBko1Jk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <ab1dc276-2753-4a9b-932b-6cce3ee2b58a@citrix.com>
Date: Tue, 18 Nov 2025 15:30:18 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/8] x86/cpu-policy: define bits of leaf 6
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>,
 Teddy Astie <teddy.astie@vates.tech>
References: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
 <b59c0994-6bb2-4506-88ec-4ea0f3b6c311@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <b59c0994-6bb2-4506-88ec-4ea0f3b6c311@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LNXP265CA0078.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:76::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_|CO1PR03MB7868:EE_
X-MS-Office365-Filtering-Correlation-Id: 27e0cd7a-d358-4bb1-51e2-08de26b762eb
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?dFJ0V2NhRko2WUx5QUFqWklZSnpBTm1iZ0szZmtyS1NkMnNRODFPSUZQaitB?=
 =?utf-8?B?WTZ6TG5uR1FiY3JoYWQ5Q0ppcUV6ODFGSEd3dEltbUhadGF6RnhsdEd5YkF2?=
 =?utf-8?B?Q1huUVZ1QnhXMVp1L0dLbGhCeG9XaCtoN2RmdUhBckY2OEFYSVhXcDQvbzFy?=
 =?utf-8?B?MWZlVi8vZUh6RXNNc3VoWGJjbGN5K1BhT1ZyVEM3SmVvYmNSRjNzbkxDQ1hG?=
 =?utf-8?B?OUZoTEhXSmdrNE9UV3ZscEZMeHVVT253dFVwN200dERtS2g5Nm5ZSk1nVmwx?=
 =?utf-8?B?RWdKdU1zbTAzYk5HWjA0Y010YU5HbUl5elR4UHZWejIyZnpDR3lMakFhWjZH?=
 =?utf-8?B?QmU0U1ZOVWRJTTdDS3BjQ09MSnAzcHhoVWg2cy8vMTdYVmsxcFJzS2ZUVTVM?=
 =?utf-8?B?bTB3SWl2RTJicUtBMzV5ay9uVzBMM0lPaFVoRysrZE5SdkFIWnpDc0s4dWUw?=
 =?utf-8?B?ZkJ0VVpiYVBYUGx5bmpPRklCWjVjUkdObmJMZFZmMUZaUEtWUDBUVnpZWmV4?=
 =?utf-8?B?SlRQRWN4TnBuNHhBOC9KYjFGalRPam56cFNTTXFqaTFMbG5ObmZtNTVYQTh4?=
 =?utf-8?B?R0xhblB4ZnNjSXBrd2x2RmpUUmRDMjc0SWpaVjdnekRKd0Z4Q0dLWktvNVRD?=
 =?utf-8?B?UlBQS3RvUWQrVU9jVkk0WGE5YnpsU3RNcjUxNlc3M0g5cmtXdEJlQkJZM0sw?=
 =?utf-8?B?Y3hXRS9jNEFITjJrOFp0VEhQYllaaHgwN2dUWm9mVXRKTTRCcmhOWmY3WkhO?=
 =?utf-8?B?bUVBbGJYN2VjS1l2VXRPdEIvYlg1S2s1emg1ODVMQU5BK3BhRlQxeFlidldl?=
 =?utf-8?B?a1Jybk1UbzZnZWhsTXRhWVdhK1NvcTBHTmMzWGZ2QUlLVFhpN1psaGxUeUcz?=
 =?utf-8?B?bXpuNXEvalRsbG9zdWFObjJja3RqVWZjN09sbWY5V2ZUY21hZE9EdVpaMjhC?=
 =?utf-8?B?NGQrWTdDY0ZONXVYU1JGYkxxUWplaFdWMXBONnpWbmFMUDhya01BbmJLWTJj?=
 =?utf-8?B?SEE4bnZzNHhaVVZHM3FaejBhZXZRdWxvYnRNQ2x3cXBjU1UxamorNGxCdVpK?=
 =?utf-8?B?MC9OK2dnejFFeWdzUkZNMFpuZ3ZoUFcvSlVsdlNjMmhtd3o2cUgrbTRWNElK?=
 =?utf-8?B?aWlEQTVOQmxxMTgzMC80TVd1alZrVm05bUUwVENScG5MbFlORTU4a1Zlc0Nr?=
 =?utf-8?B?NGlwS1JoTHRTTllQcU40VzkyMFVmZ29qT29VMStTakMzeVIrNHV0WFlLeUZN?=
 =?utf-8?B?d0VUT3dpaDBRVUhlNEdjWTBwQnllMW1oeVFrQ2FXVlI1c1A0c0JEV2hkeVUz?=
 =?utf-8?B?a240VUU2M09GbHg4N25FUmxkM0EzQUx1VHhnMWFDaUtsUUxxSk54aDVWNk00?=
 =?utf-8?B?VXZXRFJYWWNTV0hZaVQwYkRKZi9pQTM3WWpjSVJ4SXhadGtQY09hL1lZd0VN?=
 =?utf-8?B?NGZPU1hTYVFlMnMrcy95VURLWnRCRjJZZ1llcjFnYUtvbXo1cjU3ZVBHU3c0?=
 =?utf-8?B?aGtWUEREWUtBYlAydFRVbGRuaENsb3lTNWRWQUtuMWFpVWYvZGR0ZlFUTVcv?=
 =?utf-8?B?N3hUc0FsUkprZW1EK2p0TGZlaFZxNVlMYUh0V0UzRHBQbHM2UXl3QTl0ZENH?=
 =?utf-8?B?QWFHdWk0SEl0blFDUklteENGcm9zWWYyZmVvaUpBQ0JuTmw1Ry9GMVFiSzhv?=
 =?utf-8?B?YWJCVW1uTnNNTGcyOUpEYUNTZEFGRVZ1V2pFUVFQN2FpVlFXdkpXOVoyZGYw?=
 =?utf-8?B?aGFZV1JSYTFNMStRVjlqam9TTW5EV1JGdnArdzVlUU5VL0NaSVpReHhSTXFp?=
 =?utf-8?B?dTR1a3lqRXBPTThhdDF3UGFrQzRnbmFLVEdlQmJ0dU84RVJmbWwydmV4K09O?=
 =?utf-8?B?M3VzWHRPWVFodUsrTUhsT09JM2c1NHVFUnpMUFNTcFJnbmJIS0JxcmFPNm9u?=
 =?utf-8?Q?qoyCnl5+mM++aZM4oW+ohy+yWi9WNJgR?=
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?SldaMzRtcHROcjFKaVpkM1k3alkxb2poWi8xSERINEc5VXlXVmhMeTNFWC8w?=
 =?utf-8?B?d2x1WU9YVE13cjdzSEZObU9IRWMvNlNGOUVrb2JFd2FhanFwMFIyRzcxRmhU?=
 =?utf-8?B?TkhKK0kwQ0VrL3dwNnR0RGloNnF2cGdJb2t6ZS9zYUVQS3ZxNHRUZFdmOWNt?=
 =?utf-8?B?cmUvUllFMEpNSmhYQnV4QU9zWlA4bS9XS1l5ajFsYjg4Z09iMGdvUTRHL1ov?=
 =?utf-8?B?OVV4eUlRMDNQVzlrRkRWbGJNM0ZZaEdSdFNVZ2Rxc0dpY1Z1NmEvMDVoUk1a?=
 =?utf-8?B?R1pndjMyU0wwK2ZESy9MaEpqeUQ3Nnl3am9EWU03NVN3NnRXb2RPMGxPZDUz?=
 =?utf-8?B?NXE5NzlXT3p2Q29TcFZoNU5PL2liR3JLNERmQSs5K3NYMURnOEM4cDNYRWlQ?=
 =?utf-8?B?eC9oUFlmNEpPRlBqSHd2YkZkZDJGelg1cmxSSmlzaXBvY0xMNFoydFVkbzBX?=
 =?utf-8?B?Z3JGc0I3OXNtcndDaURudTVPWTV5VDNoUFRHRVZRdjdZcFBHUkVHbXlhYW9s?=
 =?utf-8?B?N2d2aWpiRjFvSVpmRFR0d3lVazRmWnY3cHFZV0ZmOVJqbHBwMHhMckxjV0Rp?=
 =?utf-8?B?Nm12YzdnVjZzMmhvY09KMXlaUXF0b3JoeGU1S29pS0EwaE1VQnFnRW9kRWlo?=
 =?utf-8?B?WENSV0ZCWTdzTms1ZThTU09YYkJUWVkyM2VIQ2wwdHNYYW1LcllJZ0kxV2JV?=
 =?utf-8?B?Mjk1TlByQ28za3d5UzJZUVJNS1VMKzVVU3NSRW0yL1kxWEgrOUp3QWNYWDFS?=
 =?utf-8?B?bkFaQlFrRW1kVGxRekg1TXBaWWJ2UmxTRkF4TTBTV25pSExnOGNQM2pUOTFN?=
 =?utf-8?B?c21RcXBucTlVUloxakU1TXc1NzlQeGVqdklvdW8xNFl1K0thOUF3SHhxOE0w?=
 =?utf-8?B?ZzFLRHNidzlQWmI0dkd3dVhUY2FpY0pSM2l2R0dQZzYvbUNhYkVzTi8zWDlY?=
 =?utf-8?B?aFhTZzdCZlZLZUNnZXZ6eUxoM1V1NkpyT2NGa3BYL1I2UHduUlBoSm81amh4?=
 =?utf-8?B?UkM0M2ZnN1hWQlJxY29VbWJjbnpNaDFwdC9ncWg5SGlEVXUySkJ4bjRKME4v?=
 =?utf-8?B?anRQWnJUdUd5R3MyNDJhMU04b3NlUlA0aUJXV1oza1FRSldRMDg2SkdNN3RB?=
 =?utf-8?B?c2tOTENrdlptYVpzM0RIbnljOHBEY2ptR2tYUis3dHFSTXdvcWVQUU1XOGFE?=
 =?utf-8?B?OHpYWUpxTDZvMnNNOHBZTndKN1d3c2x3ODYzU3FFNzZjSy9vb2VNVGRYbkJX?=
 =?utf-8?B?K3I3VzRoY1lQNTYwYnp5WE1BaHlTNmNud0xOeisva0s1YktlZFFQSk1nNkpB?=
 =?utf-8?B?bVBNMXBCRWVtUHUwN1VMZkZwaTNDVkFsTHEwd1RBYU5YQk0xL2lUT0QrZnJW?=
 =?utf-8?B?UWJLRUk3WUNhZE1QTW95ZTJnMzMxdTNxT1FpcmJML2I5QTdyRUg0bTQ5RXp4?=
 =?utf-8?B?aWtiWjYvT281UVFCMXJ2dkFSTHhHaDFkQ28wR1d6NitjQU92aTJxSFdISnVp?=
 =?utf-8?B?S0IwR24vSHRtOGZ2QldxSURjaDl2Tk94NWNZeG5FMzl5bVl6UFNZSE5nYVo1?=
 =?utf-8?B?UmFkQ1NLaWNPMS9NeHJXVFpEWVNNV2Rhb0gxNE5rQWUwajd6UU1Lc0I3OFZw?=
 =?utf-8?B?dXhucllaTzU3MVI5YXpqREdpSU92QVFpbU9mbytJZG1BMkp2SWZsODVhMlpy?=
 =?utf-8?B?U2dwdithUUtkTmxCeDJQY1h1QVJhejB3M1ZLVFhXaGViOUFKQlRxS1Bsdk5X?=
 =?utf-8?B?VVRDQVVVWkJOME1DMVgxZ1UwODBPcFRWdW80WEhSalRGWE8rc0NWelVmaHlN?=
 =?utf-8?B?K1FxUDQwd1pHV0szdFVBaGo4WEN4L3FoTFBLQTczMlN3VFU3TTJhanJhT0tW?=
 =?utf-8?B?VmZCc2wyaEVIVU4vTGdsYXpYNndySitjNTExeHBvMzMreGVTWkVZUVdlYzNP?=
 =?utf-8?B?Ti83Vi81dDVNTjNUWjBqTDhSOG5mQVprNWl6c3hEV04yL1ByOGhwNDJucnlp?=
 =?utf-8?B?L3dveHhiQ0RlN0E5TGNKN1dQaklxTjlOdWpnWEFIbHlrbUhNa3Y2eS84S05u?=
 =?utf-8?B?UXpVWTVja0h1ZkdtVVZXa21sQW5wMVJaRWk5ZXJLT2J6azd3M2ZDa0NIYzQ4?=
 =?utf-8?B?a3VNbDJJQWVrNjVRUlBlVnh4dDd4UW95YUw2MzZLbkZ5M3FVRUsxLy9SVVI1?=
 =?utf-8?B?Umc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 27e0cd7a-d358-4bb1-51e2-08de26b762eb
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 15:30:21.5220
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: P+awdpVVUlSjZY8mfhvInQdJNSBcQ+i5fmJ1baVEgMnlFoEIsn1FjF1ef2XxF6OvE3wBxovOWz1a6odpY0+2HVKG6+tqNVHmgS9377bekdE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB7868

On 18/11/2025 3:06 pm, Jan Beulich wrote:
> ... as far as we presently use them in the codebase.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Or should we make both parts proper featureset elements? At least
> APERFMPERF could likely be made visible to guests (in principle).

As before, A/MPERF can't be used safely by a VM.

In order to be persuaded to offer this to VMs, someone is going to have
to present a mechanism for how a VM could even figure out that it read
junk from the regsiters...

>
> --- a/xen/include/xen/lib/x86/cpu-policy.h
> +++ b/xen/include/xen/lib/x86/cpu-policy.h
> @@ -121,7 +121,31 @@ struct cpu_policy
>              uint64_t :64, :64; /* Leaf 0x3 - PSN. */
>              uint64_t :64, :64; /* Leaf 0x4 - Structured Cache. */
>              uint64_t :64, :64; /* Leaf 0x5 - MONITOR. */
> -            uint64_t :64, :64; /* Leaf 0x6 - Therm/Perf. */
> +
> +            /* Leaf 0x6 - Therm/Perf. */
> +            struct {
> +                uint32_t /* a */:1,
> +                    turbo:1,
> +                    arat:1,
> +                    :4,
> +                    hwp:1,
> +                    hwp_notification:1,
> +                    hwp_activity_window:1,
> +                    hwp_epp:1,
> +                    hwp_plr:1,
> +                    :1,
> +                    hdc:1,
> +                    :2,
> +                    hwp_peci:1,
> +                    :2,
> +                    hw_feedback:1,
> +                    :12;
> +                uint32_t /* b */:32;
> +                uint32_t /* c */ aperfmperf:1,
> +                    :31;
> +                uint32_t /* d */:32;

Elsewhere, single bit fields are bool foo:1, and these want to match for
consistency.Â  In particular using uint32_t:1 creates a latent bug in
patch 8.

One problem with bool bitfields is that your :4 needs to become 4x :1.Â 
Right now his hidden in the macros that gen-cpuid.py makes.

Given that b is of type uint32_t, you can omit the :12 from the end of a
and leave a comment.Â  Similarly, the trailing :31 on c can be dropped.

> +            } pm;

Nothing else is sub-scoped.Â  I'd prefer that you drop the 'pm'.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 15:31:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 15:31:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165041.1491864 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNfz-0003Y8-EU; Tue, 18 Nov 2025 15:31:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165041.1491864; Tue, 18 Nov 2025 15:31:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNfz-0003Y1-Bk; Tue, 18 Nov 2025 15:31:27 +0000
Received: by outflank-mailman (input) for mailman id 1165041;
 Tue, 18 Nov 2025 15:31:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YPWA=52=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vLNfy-0003Xp-CE
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 15:31:26 +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 a41a590d-c493-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 16:31:25 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CO1PR03MB7868.namprd03.prod.outlook.com (2603:10b6:303:276::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.21; Tue, 18 Nov
 2025 15:31:21 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.009; Tue, 18 Nov 2025
 15:31: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: a41a590d-c493-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cE6rZbVYMn4y6SXt5Q69yjUOZHnHyEkyTm8KdgMgKBetdvRYVKIc39WorUtL2GYcag7azx7P/eqAByYAKTbUz3kkVHCsIkJH2cQ2fQveld+ka+Hy3CqQ/4t0HJgXOLYJYCq8a53EOD3FRwEON8R6QTudDrl56v4hiATGN2bemDQxlmYfq/xKMIZFgSLBWZe7L7+4GkxqJhihDTA+IE24fFR2U4pltCxbNp/l/+FmQdiqKPKc3/CRGtojqAlU6H96avYV9haxBa0MSSGDhA4meVzETXagBnKfeknwOYWObxheRDvsq+l1sY9G+Q8+IkrR8EwFCLjK2HwmuD+B3jc8rg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ArLD0qneHy4X1jXz6gR8L85yEGeyl9hzO/1MtMKT5xQ=;
 b=IfV8gpKNki2N6dleDY+7svkTbM1ekrMYW3+lBsfb93HO2RG5Xp1IDj22L9eZJvtMY52UWt1Qj7QHpDgBQ7SI1QU39RXrM9bwq/PBhaG6qd6+69kCNYk4FBfeK33w0Cc56jTCydTnyZub8u7+aIIZ1UQWywFzYmD8Fmupn4wHKILFWb/w7vTy4bOPDVQLHium3+qV3UXqSYLstbJDY2xa8eccHSlfzKxRNwDiuQ0ks9+dcdZsZE3v5485pUICrOuC4e0zl9SyzjYrJjgSx66euSL/ttWO75xuZzTV4zgNFuNEBdb0Dn1Z7N+1Vt2pdGPhKnHqs8MugSW6IYi2EYLxmQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ArLD0qneHy4X1jXz6gR8L85yEGeyl9hzO/1MtMKT5xQ=;
 b=vQ7zWY+BLWu9X9e5qSA0l1tVsSrmAdM2k1ECDD8x9fpW4+f9B/3P4D7ESHOPxbdnwMuQmRRWHNGsNioc38AarQU5M5sJpe7Az64btFSK2AbG7fx13ff2JPawM+9uO+olVb5iCEWg6tP8+28gHtsV7opZFaIAIXtp4Sx1YrtYsCo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <73fbea03-9dde-4d3f-bcd4-69ebe6f65c06@citrix.com>
Date: Tue, 18 Nov 2025 15:31:18 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/8] x86/include: de-assemblify cpuid.h
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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
 <6525306d-aebd-47a2-b17f-918d7989798a@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <6525306d-aebd-47a2-b17f-918d7989798a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LNXP265CA0084.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:76::24) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CO1PR03MB7868:EE_
X-MS-Office365-Filtering-Correlation-Id: 7e9c6933-b355-44c8-ae53-08de26b78683
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?V1BVRzZFNXJKRTlKaWVkMlRIcWtEMHJaYWhLQkp5NjlPbTdGbTBPMzFXOW41?=
 =?utf-8?B?U2s5YWJqc05LdWV3a0FHT0ZJUG5lM2lJcEJsd0xvNkcrZERzMmdlanUybzNl?=
 =?utf-8?B?eitNYVdKUGlBekFhNkNFMlByY2VkV0J4cml0OTQ4ei8zWEZoVVV0ZTdGVERW?=
 =?utf-8?B?bm91aUtSeGw1RnE4OXNHTVBxNjVla2ZBOTZJcVlHY2dDd09WQnc0SHVYWTkv?=
 =?utf-8?B?V1FJeTNaeWltbUxtVVpXdlpac0JtZkJDQ2ZzNnJnUVphL250SmF2dWxRRTJ3?=
 =?utf-8?B?TFgxZERQQlU0WnVTalNZMG1wNWpJd0FHSlhZaXNzZHVCRlM3eVVHdzE0QzJr?=
 =?utf-8?B?YldGNkloOUswV0JUYUZYM1pZYlE2ZFRlUUh0c3M0YW5CeVptYkU2MHhCVDha?=
 =?utf-8?B?akFDRDZWdHdjc2cyZ1prKzdBSzc3cGZLZnNUeGxOSm04eDdLSzJzUTdTNEdF?=
 =?utf-8?B?TVV5NDRpZkZEaFQyMnU1MmI2VDBuME5FNUd5aVJBbTVQemlvWllQYjBST0Ny?=
 =?utf-8?B?L2RxN29UT21NKzhjR0lsUXUzWldkWlJjdHlQa3h0a3pTb1dpQmg3bVE4UGRR?=
 =?utf-8?B?STZtaGplRnFwMmNiSlRVTkZFdWFUL0ZjK1VzdVJtVHlBTUo2V3ZNOFJNbWxT?=
 =?utf-8?B?K2lEUzhPQnphWEpZcmVsSHlKc2JmVmlUMU1vUmY3SVdxYXlFbnJCWjZZVDl3?=
 =?utf-8?B?SXJIZGdZS3diUm5LejVqN0t3K1AwV1V2ZUlxVUd6eGo4bUxQcFlGWFBSU0cz?=
 =?utf-8?B?aVFSS0FTZFpxNWRuZWg4R00wRmIrNXFMYUltc0VpN2c3dVF4aG1tVms4bFlI?=
 =?utf-8?B?bnlQK21mL2dhdFpaanJ2dDVOZTZ1dC9KRStuY2RmVEVxRTN6NW9kUEVMNkJP?=
 =?utf-8?B?VWVWa1hXVjhJQ3RBeHBUaVV4RDlNWTdvcUJZNlVTcUNPYjI4Q29pczgvUEVP?=
 =?utf-8?B?bVZQdGhObGR6RmtiTS9jQytHY1liV3JsSDJxZ2pqNXNGaGthMnBDQnZ3Ym81?=
 =?utf-8?B?MVQwL3owTWtkZXBManByM1lsU1I5WmwvZXpkeklncWNPbXMzWGtWdk9LM0la?=
 =?utf-8?B?c2F2SUwvanhNcEJrYnlhTjVkZXU3bDFEdXhvWU4vYmZ5K0RHMEtrQWthRWth?=
 =?utf-8?B?TnJheTRPQ2c1MUE0KzY2bFV0aHpETWUzQ0wrMEMwby9HRjVCMDlvN3lyYzB4?=
 =?utf-8?B?UFB3Z1JtWTlad1N5U1UvMVAvYUltS1BSRWlNbGtxcXQxelN5d0dDQUxvTmYw?=
 =?utf-8?B?QVFpN1hxRTN6d1gvNHNrTlFzRUV4S0c5Y3c0L0VWNW5TM3pRTDcwYTVjMm5M?=
 =?utf-8?B?WVpzaTlUWXNudUUwdlhEODJQd1IwcFd3OXRKSmIxTkNKUUVVMFRBanAxTkJU?=
 =?utf-8?B?VEhtVWg3UCttdUlqWXNqS0VPT3Y3TkJmelpLODRQVjBsc0U2MjNTeDhFTVlu?=
 =?utf-8?B?WUVUbjYwejkrbWVFaDRKSitmV1FvbDZFeFJZazBGKzZFei80TkNubXljajFu?=
 =?utf-8?B?OXVkTm4xSDRPbmQyZzdsV01FcFBFVituUmxZQnQrQTltc2NaVHlQQldQQUI2?=
 =?utf-8?B?bkQzMWNyNXNCNEVxYzhQb2lHNEpmdWFoeWN5ZjQ5NWZnSHZkZEw0M3NLOWRv?=
 =?utf-8?B?aGdTMjdjOWlHRC93UlpFZlZsWSt3QUYySGlpZ0dYajdCTkt0QmUyam0yUUVN?=
 =?utf-8?B?VSs5N3lSU1NKZHkvWUdnZnNFQVNDRU91ZGNvQ0wvQ05MaE91S0t0OHNzU1Fl?=
 =?utf-8?B?Q3BjWXFIVjNYMncrQldEVlVGNTRGKzZNUk01RVR4QmsrTGVJblY0cDJPa0VC?=
 =?utf-8?B?TnhSVWNMcWtiYjd0N29YbmZxZUlhOTl6aE1uSHhVTnJiUGI1bzVCSjFHRkM5?=
 =?utf-8?B?Um15ZGZMdEZCdW1oTFRQUGRJYWQzSDl2Z1Q3cnFiZHQ4Tk1FRDZ6TmM0b3lj?=
 =?utf-8?Q?hEutQUUMuy2V1kCYR6/S0x5JdUcDkg57?=
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?TWNidE9CL0p2TVA0SDZBT3pyM2VTK1ZoRldlTFhRRnplM1U4anpvZEg1RTMv?=
 =?utf-8?B?OTZ3UVhOdWlMTXpiVFFJcnNlK09rTVFQZTZ6dWZVNHUrc0lvT1ZRWjlyVitm?=
 =?utf-8?B?VDFETGRRVklJQU9SblpZM2xIaXdyVndueEw5U0NEU2g0OSt2MGthVkJhbVNR?=
 =?utf-8?B?eUV4bW5vSWxzR2xJMTlFQXFYS2YxV0NDRVVDaE9mQ28rR2x3V0lmMmFaSng4?=
 =?utf-8?B?NVpUNUdmVXZFWVlUYWxEY3BrZEFUbklBUDFDZVZmUFJVQ1pvYjc5SG9yS1lw?=
 =?utf-8?B?NytYbnpZd3FlREdUblZicmVOQUlmUXY5RnRIWmpNSHdzak9yZDk1dGFhYnFL?=
 =?utf-8?B?MjNBcnFOaEQ2Z0VJVFVWeC9VNnVMVEtGRi9jYzRCTy9CUVZwWGtlRnNlSFNu?=
 =?utf-8?B?ejNtanlYTUpFL3lSYVFDMXU3RzhINWtmUGVialZIS2dTbG0vQ3Bia2ZISlVT?=
 =?utf-8?B?bVR2WmdUaDBNcTUyYzAzLzhKZjFUQytIWHVvbldYRDF0Rzk0VHhaMHZLUU1l?=
 =?utf-8?B?bDJURDFQekJDZE4xM2Z2aG9mUXpoNCtiZlNTekJNaHc5a2dxR0d6VGsvb3Rh?=
 =?utf-8?B?OHZldXM0NWlnZVBsQytxd3ZYbzFGcllNczZUU0RPNC9ZdStoKzlySzdmazI4?=
 =?utf-8?B?aXhqcm5JTUxFdDQxbzhabkdCSTBZeDNhaUlYbDB5TXlGQ0xvVEtqRU4yNkRL?=
 =?utf-8?B?UkVMbVF5UDZqaEdKSXJSaDJodHBCT2NsanQyTHJKRzAxUkFpMS9EWktPSXNI?=
 =?utf-8?B?NVJYTXhzUWQ4ckVRTnFhTUNNVUt0M2pIaUd4aVF5ZHB4OU1LRXp0M2xkTlkr?=
 =?utf-8?B?UnlsY21QdkFpaVFyNkhyVTJNMFFmYnU5aENRMnZhNzZmMEFwNzgrNzQybGJX?=
 =?utf-8?B?QlBVTU5DUGdXanZhQU1LMGx0UUwxaWpTaURyeUJEM0tqdS9rOEhQYzZ5ZFJv?=
 =?utf-8?B?b3Y0bEpYZGZiVzFheFU1YVdpRSs5WE9HTWFRZWRpWlYrR0FDMnhqZzJMSmtm?=
 =?utf-8?B?L3M1MENkaVd4cXhya3VXdS9XZlRxVnlLN09rWmhJMHJMY2RQVkdhQ21veDBn?=
 =?utf-8?B?aTBCM3pucCt0U2dYcy8xUTROSTNYb2QzYUc5Q3JjUkIwOEtnMU9ZZ1llNFFv?=
 =?utf-8?B?MzBGb0VXR2hrckpwYjdEQ053cDNCa09UTkQ0OGV2NHVHdVlmQUxsTzMydWxP?=
 =?utf-8?B?ZGU5eW5zTTVKbnZhQkpnWE1wQUFsN016dTZxQ1NuRFJ6UXFzNXZUbEFyNDBH?=
 =?utf-8?B?b3J1RmxvRnBrN2JmOWpLeTZXNktpTE95emYxeEVjQUFWbHpxeGZ6bWMwejd2?=
 =?utf-8?B?V1BKSitsSDVNU2drN1UvM2YrOEpRMlBjL1lWeHQraktMdkoxUXFHSGlMQlp0?=
 =?utf-8?B?a3VBVnUxd3RkcGJSSTlCOUMycU1kSFNHTWkwU3lSM2V1TnlLblF0NWdkK0Yx?=
 =?utf-8?B?b1ZwMm1VU2xkQmFrZFpLbHE1RDMyTmphb0c4cWJ1L2lpR0ZjcDU4bkJHM2Q1?=
 =?utf-8?B?YWVsS0huMDVXTVNYSnA5ci9Va3MxTVNtd2N6bmxCVXVUbS9KcWJvVjVWQjlj?=
 =?utf-8?B?NEZEbnhXeWhTVWJrWFlaOTNEUEJVVHBHdEZ4TGQycmxlaXRCcnBpOVNGTnk4?=
 =?utf-8?B?cHRHVjd5TWxpeXZ0WnpLeEFrYWJ0MkZpd0xGVzFGQTV5b0dYZjhXQ3UyVDJV?=
 =?utf-8?B?MGlHUm1lUDlxcmZEUWRPUWY4a1c4S3ZxUXdHMjUzU1luakhxbDd5S3BtTnN5?=
 =?utf-8?B?NDBiS1k3RGZXV2VqWXdXdnVTYVRNa0NUUUNOM0lVSVNwaTdaZXhxSC9DV2kw?=
 =?utf-8?B?dW13S21ZempNMlVVTzVuTmtDaFNBZ1VyWVc5MGZUSUhoOGw2eDJGVXh4ME12?=
 =?utf-8?B?dk5VWm9WQUovSFZMb2RwdkNQWWp4YUlWSFZhS1NOWkdjRFJIcXNHenY0Mndt?=
 =?utf-8?B?OWlqbmxuM1Znd05uRDUyWHByeUV6bjBJY3RGZE12Wk1ibXl4STJzb3JMcGds?=
 =?utf-8?B?ZlIxbzIydkw5b2tYS0lWS0FjVlhnYVJKSVB2TE4zdzBMT3d1WFhHSStyM3hD?=
 =?utf-8?B?ZWt4N0pTYUlwcHRkanhyTnM0bXJGbjlyczhUM1hhT01PeXkzODJvRWZrL1RK?=
 =?utf-8?B?c0FubzJPYkh4MVRKOXF5cHdxMWFGQ1BQRDNQVDVOcEk2dEF6TGR1dG5qL2pq?=
 =?utf-8?B?eUE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7e9c6933-b355-44c8-ae53-08de26b78683
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 15:31:21.2820
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: L7xfdgujPTWsKQH3XxcJ74EdfmPENxMoNS8KJB80AeFaZ0gEdYDWaPdE+UZ6Mp/MhNOGpQCWySNbJsTgkuNXxuXrRNhmYm2fSPFB+6XOdMA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB7868

On 18/11/2025 3:06 pm, Jan Beulich wrote:
> There's nothing in that header which assembly files would need. Arrange
> for cpufeatureset.h to be included directly by cpufeature.h in that case,
> allowing respective guarding to be dropped

Missing full stop.

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

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


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 15:39:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 15:39:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165057.1491889 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNo7-0004sy-RR; Tue, 18 Nov 2025 15:39:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165057.1491889; Tue, 18 Nov 2025 15:39: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 1vLNo7-0004sR-N2; Tue, 18 Nov 2025 15:39:51 +0000
Received: by outflank-mailman (input) for mailman id 1165057;
 Tue, 18 Nov 2025 15:39:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=n9C8=52=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vLNo7-0004pf-5y
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 15:39:51 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d0f0c1a9-c494-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 16:39:48 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b737cd03d46so474861266b.0
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 07:39:48 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-54.as6723.net. [185.5.253.54])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fd80d27sm1391385266b.40.2025.11.18.07.39.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 18 Nov 2025 07: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: d0f0c1a9-c494-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763480388; x=1764085188; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WtJsp+Y7Ad5QPg8ye5d7pLJWb0PeKCJcdGH4glFeQow=;
        b=MrlxMqFr13zKyf25Us093sbrZ3A0US66KoR0Ga8XCFAFz2X3zivbM2wuoDV9eU6cz5
         BhfxrZbIxny8as+RF7U+jOYK8t+vI7TsMwoTtH+MBkz94UiXfjQdImtwRfWeMC5VbFbt
         ouTQzvbOGHaj3dK6c29fYTx/Vsb3tsxnOVo/mzw6JMOEmzAglUZsnk30jD37C/dRiLDD
         x+itJz+/DMXLCe0LLmeIlgsN0ZAZSaDBi0HeKJObUrNNq4MiGx5idcnVmJjeIii0ePUd
         MApIEEEYMRMNyPeEwY6y4RVSo8VmEKIC74UAj1h76ICe5guDxPJgSCKV7IkOQmUkSK8u
         hWbQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763480388; x=1764085188;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=WtJsp+Y7Ad5QPg8ye5d7pLJWb0PeKCJcdGH4glFeQow=;
        b=nNB0WKrvYokoekFsga5Y9pV4KTa9PCRCEtkPDe+k7OUpMfuwVb+wV/nbAqViSC3Rfe
         PQIg3eoDCq6Pk7mQ7Wk9GIuhpoCykAr/Iw5CS5K/ULJ2ihBxZ8Kc5859Y1HB6zW2DVPM
         YzRGvKzxTICZFiGlxd8gBi6lydu7SzKi/dW6bIv3O0oOj9Vsg+Qw3ZxXBRK1KUar3pTY
         wnmfYG1ErNXo8PXziwYY7lwepVt9SiX9/y32uNVWPqmjbZQlsf7n1w3A6KpZhrSzOx/u
         u9fj3MvmRn6rovAGaabGv0pcNL+/n3PrR+Ve2CyNcJmwDFmpObsX/6iBPTiRSKPiqmL9
         AAJQ==
X-Gm-Message-State: AOJu0Yzuhx9Fcj4kaAUOPc5lzrhi/zCXX9DytLChZGpJ12WEn3uzt3Hr
	ljbICLKwRxNPGSJbjeL+b2Qe9Ed99NXSxHOW7ZXRaidclZTEsY1VsjUx69U7X+Y3kHI=
X-Gm-Gg: ASbGncsHkNt5MCDrqcVI2TvPqxRNEO2HoBlMQNP+R+pWklD6eh0fqj2cTth6mgYPDQS
	wmc6Dulym75KMiW7aWeQqQeC/f/LxM+3f7dVXA8AU+EUheMRWBQ+IeHrULfGeo7ganeeufmFZ/u
	kRjFh9NZkiRGs5Htk+fXfQtsMv/vIlUJTW+xPtoGE2KVfieAxxjHZ+94KWQxoajpEObkerRwaeX
	9VfbhgUIIUTEB+pgxJfQ03xo6dRzSkmt081yurOlrwvLXvqKzPibVDC314WGjR8OzhMo/9IddW+
	EHWqSbqUCL7P+3IflVuuXnBn7iw1YikHjt6PBuWGhHF7nkB01Uxro8ul+/F0x3esDrNzcmerXBK
	vk9bf/MwFrLpMUESrB+B5J3vrhbAEO6APm/y68hVIM/pVlgJha0gP3FZu6gjF+OBzcE9jXmlm0+
	4iEd+0S6QOAORI7sFGTB0M8NGgVOKaIgTr99Yciif2o78=
X-Google-Smtp-Source: AGHT+IHN7q6Juj4WaqvIxtRIkp31ytolu4qwoxqjU7orr59NszcHd7IzkMLpwOP27ZHwRVXKLZuiLQ==
X-Received: by 2002:a17:907:3fa0:b0:b70:b13c:3634 with SMTP id a640c23a62f3a-b73678dd5c0mr1785833666b.25.1763480388000;
        Tue, 18 Nov 2025 07:39:48 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v14 2/4] tools/xl: Allow compilation of 'xl resume' command on Arm
Date: Tue, 18 Nov 2025 17:37:29 +0200
Message-ID: <78e37e1b1d2ea50568a372d8950f4fc9e86567eb.1763479083.git.xakep.amatop@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1763479083.git.xakep.amatop@gmail.com>
References: <cover.1763479083.git.xakep.amatop@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

The "xl resume" command was previously excluded from Arm builds because
system suspend/resume (e.g., SYSTEM_SUSPEND via vPSCI) was not
implemented. On x86, this command is used for resume.

This change enables compilation of `xl resume` on Arm regardless of the
underlying implementation status, making the tool available for testing
and future feature support. The relevant libxl infrastructure and handler
functions are already present and usable.

Note: This does not imply full system suspend/resume support on Arm.
      The `xl suspend` command still does not work on Arm platforms.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Acked-by: Anthony PERARD <anthony.perard@vates.tech>
---
Changes in v14:
- no chnages
---
 tools/include/libxl.h     |  1 -
 tools/xl/xl.h             |  4 ++--
 tools/xl/xl_cmdtable.c    |  4 ++--
 tools/xl/xl_migrate.c     |  2 +-
 tools/xl/xl_saverestore.c |  2 +-
 tools/xl/xl_vmcontrol.c   | 12 ++++++------
 6 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index bc35e412da..14b9e4a859 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -1145,7 +1145,6 @@ typedef struct libxl__ctx libxl_ctx;
  * restoring or migrating a domain. In this case the related functions
  * should be expected to return failure. That is:
  *  - libxl_domain_suspend
- *  - libxl_domain_resume
  *  - libxl_domain_remus_start
  */
 #if defined(__arm__) || defined(__aarch64__)
diff --git a/tools/xl/xl.h b/tools/xl/xl.h
index 9000df00de..63db30a6eb 100644
--- a/tools/xl/xl.h
+++ b/tools/xl/xl.h
@@ -65,7 +65,7 @@ static const char migrate_permission_to_go[]=
     "domain is yours, you are cleared to unpause";
 static const char migrate_report[]=
     "my copy unpause results are as follows";
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
   /* followed by one byte:
    *     0: everything went well, domain is running
@@ -130,8 +130,8 @@ int main_migrate_receive(int argc, char **argv);
 int main_save(int argc, char **argv);
 int main_migrate(int argc, char **argv);
 int main_suspend(int argc, char **argv);
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 int main_resume(int argc, char **argv);
-#endif
 int main_dump_core(int argc, char **argv);
 int main_pause(int argc, char **argv);
 int main_unpause(int argc, char **argv);
diff --git a/tools/xl/xl_cmdtable.c b/tools/xl/xl_cmdtable.c
index 06a0039718..bcb2d233cc 100644
--- a/tools/xl/xl_cmdtable.c
+++ b/tools/xl/xl_cmdtable.c
@@ -198,12 +198,12 @@ const struct cmd_spec cmd_table[] = {
       "Suspend a domain to RAM",
       "<Domain>",
     },
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
     { "resume",
       &main_resume, 0, 1,
       "Resume a domain from RAM",
       "<Domain>",
     },
-#endif
     { "dump-core",
       &main_dump_core, 0, 1,
       "Core dump a domain",
@@ -548,7 +548,7 @@ const struct cmd_spec cmd_table[] = {
       "                        checkpoint must be disabled.\n"
       "-p                      Use COLO userspace proxy."
     },
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
     { "devd",
       &main_devd, 0, 1,
       "Daemon that listens for devices and launches backends",
diff --git a/tools/xl/xl_migrate.c b/tools/xl/xl_migrate.c
index b8594f44a5..4b4a379aa1 100644
--- a/tools/xl/xl_migrate.c
+++ b/tools/xl/xl_migrate.c
@@ -767,7 +767,7 @@ int main_remus(int argc, char **argv)
     close(send_fd);
     return EXIT_FAILURE;
 }
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
 
 /*
diff --git a/tools/xl/xl_saverestore.c b/tools/xl/xl_saverestore.c
index 953d791d1a..747094ec7b 100644
--- a/tools/xl/xl_saverestore.c
+++ b/tools/xl/xl_saverestore.c
@@ -270,7 +270,7 @@ int main_save(int argc, char **argv)
     return EXIT_SUCCESS;
 }
 
-#endif /* LIBXL_HAVE_NO_SUSPEND_RESUME */
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
 
 
diff --git a/tools/xl/xl_vmcontrol.c b/tools/xl/xl_vmcontrol.c
index c813732838..93766f631b 100644
--- a/tools/xl/xl_vmcontrol.c
+++ b/tools/xl/xl_vmcontrol.c
@@ -38,11 +38,6 @@ static void suspend_domain(uint32_t domid)
     libxl_domain_suspend_only(ctx, domid, NULL);
 }
 
-static void resume_domain(uint32_t domid)
-{
-    libxl_domain_resume(ctx, domid, 1, NULL);
-}
-
 int main_suspend(int argc, char **argv)
 {
     int opt;
@@ -55,6 +50,12 @@ int main_suspend(int argc, char **argv)
 
     return EXIT_SUCCESS;
 }
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
+
+static void resume_domain(uint32_t domid)
+{
+    libxl_domain_resume(ctx, domid, 1, NULL);
+}
 
 int main_resume(int argc, char **argv)
 {
@@ -68,7 +69,6 @@ int main_resume(int argc, char **argv)
 
     return EXIT_SUCCESS;
 }
-#endif
 
 static void pause_domain(uint32_t domid)
 {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 15:39:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 15:39:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165056.1491885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNo7-0004qM-JG; Tue, 18 Nov 2025 15:39:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165056.1491885; Tue, 18 Nov 2025 15:39: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 1vLNo7-0004qF-FW; Tue, 18 Nov 2025 15:39:51 +0000
Received: by outflank-mailman (input) for mailman id 1165056;
 Tue, 18 Nov 2025 15: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=n9C8=52=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vLNo6-0004pf-G7
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 15:39:50 +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 d0344571-c494-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 16:39:47 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-b727f452fffso1097231666b.1
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 07:39:47 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-54.as6723.net. [185.5.253.54])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fd80d27sm1391385266b.40.2025.11.18.07.39.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 18 Nov 2025 07: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: d0344571-c494-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763480387; x=1764085187; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HqRM5TfHvvqePEb+D+O5+fVBIHkXyRVzinuX7cgVNQA=;
        b=i23hrXfll+fbxmr5jVp5Gmg5ak4fpxuJ9jyu058vUuYjKJno6ammc2exEXYGTxlTMp
         gsUDDrj3oP9i1sZZfeCATBWJejlHBU9cj2Q6FTm+IWcqhLt3uUsMFdpxzxFT7tyO1ZeL
         t0euUV8aok79CNkeTP7/jBmUG+e5owbGzWPHfFOG7b/nBzGataTBfVQ3lJcPMBUcb7DG
         kr6m+ALmqGMekLbHavMJCK9KQ1woi2ZbT4sAnnvMp2X6mLJM28dZ+J9ZXsVV7oVx4T0k
         AHlU1qmfjJG2dShU5WpVg/Ds1CB+7i2tffq/kTpVBTxbAr9B2jNMn14K2hyTu4APdn08
         LvQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763480387; x=1764085187;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=HqRM5TfHvvqePEb+D+O5+fVBIHkXyRVzinuX7cgVNQA=;
        b=gEQ+jY48nMRgiuoyJXyQGCJN1FFBzvZuLAcyj6VUQmCpNCaN6vv4ajycp2AqEMShg5
         M1doO447jaSayvxq3hNnylFO4feApeAZH+RKfuCXeAeNnCvFKAMcYm+F3FVTGbQ5CnPN
         Hd8F4HZLwIqehRjqkyRHB38MFdTHEx53BXjb7cuDT2y8DWWDc35tZuVQEazjNoz8DfOs
         11VV08qPWzlAtqIWGLp8qFImnwZLq3OdrfXc1tWyz5TgjBoYEyiVUulXgQoDZ6XPZsI0
         1VNSXWJ8Lm3uh7aA1AVM7bC7SKvwvSO9qt6/YQ8tTVLvUSCVcQXAWqpD+vMGEv0ZdFHM
         GygA==
X-Gm-Message-State: AOJu0YyC9om3ZwbWRC2xkPyGynf+0Xb8SjHZdYJQN7ro+BvL21klaF1Y
	HA4o0IPadO+Sa/JNhh6tpSAJV8z5T9ifpBo0P6hGqM+wNM0/k8TYBARqZluoZZ7bPPg=
X-Gm-Gg: ASbGncs3l3Jh4/q+nO5a792BhpqWPXFTto7iw65XJEennJwgi+jVqlcS3Vq3J4jZp51
	kQ3oMJF2z6oYZOr+9NlY2rUV4W6QhibPbozDySm2hh9ocnymHwMdQPQ0gQ/N++fV6D94l8ZfJLY
	g+Y3QKQHDtrmXlBQJW1VN6THYHEOrpVrli5lJhmAbX7GNJT9Jb+GoUD7spFZTlZDFjTqDoCQbcO
	YI20kruYX/SMj4A8pjkH7Z7TVW0a2wUQT+pHePv6i8k5skleH6DzoV9bPriQUZ4sB6HcT6txPUp
	DjjUkKbgeQqsD1WGWYFqqqR07BUvks7I5rKeQfWWWhKm0ebOpU2gMU2N2dLfb3ukdES0RMonYRG
	4FFW7o9apPGITJj21GsvLcLXq1IhnaUx13lLqdmh0Ez7kiJDuRgFY/DmGZA0FaOmiIkMAsr1uir
	Zfz6kZmbkyo6rT7fh0XLp1s/sXceECIyK/b/DC5+auMmI=
X-Google-Smtp-Source: AGHT+IEXF6JBmsC/ldlQ8X1jSWRbybTeO9zAY1ZsvRhhiAoI/qEINaqJ+7ttI3DgYIz0k9jQ7byPkg==
X-Received: by 2002:a17:907:2da9:b0:afe:159:14b1 with SMTP id a640c23a62f3a-b758bb5461cmr420613866b.9.1763480386414;
        Tue, 18 Nov 2025 07:39:46 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v14 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
Date: Tue, 18 Nov 2025 17:37:28 +0200
Message-ID: <3786204d034ae4461aa0fde77771b8e14256314a.1763479083.git.xakep.amatop@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1763479083.git.xakep.amatop@gmail.com>
References: <cover.1763479083.git.xakep.amatop@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Add support for the PSCI SYSTEM_SUSPEND function in the vPSCI interface,
allowing guests to request suspend via the PSCI v1.0+ SYSTEM_SUSPEND call
(both 32-bit and 64-bit variants).

Implementation details:
- Add SYSTEM_SUSPEND function IDs to PSCI definitions
- Trap and handle SYSTEM_SUSPEND in vPSCI
- Allow only non-hardware domains to invoke SYSTEM_SUSPEND; return
  PSCI_NOT_SUPPORTED for the hardware domain to avoid halting the system
  in hwdom_shutdown() via domain_shutdown
- Require all secondary VCPUs of the calling domain to be offline before
  suspend, as mandated by the PSCI specification

The arch_domain_resume() function is an architecture-specific hook that is
invoked during domain resume to perform any necessary setup or restoration
steps required by the platform.

The new vpsci_vcpu_up_prepare() helper is called on the resume path to set up
the vCPU context (such as entry point, some system regs and context ID) before
resuming a suspended guest. This keeps ARM/vPSCI-specific logic out of common
code and avoids intrusive changes to the generic resume flow.

Usage:

For Linux-based guests, suspend can be initiated with:
    echo mem > /sys/power/state
or via:
    systemctl suspend

Resuming the guest is performed from control domain using:
      xl resume <domain>

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V14:
- move arch_domain_resume to a separate header
- avoid usage of typeof for context struct
- moved error printing from domain_resume to arch_domain_resume
  in order to simplify common parts of code
- minor changes after review
---
 xen/arch/arm/domain.c                 |  41 +++++++++
 xen/arch/arm/include/asm/domain.h     |   2 +
 xen/arch/arm/include/asm/perfc_defn.h |   1 +
 xen/arch/arm/include/asm/psci.h       |   2 +
 xen/arch/arm/include/asm/suspend.h    |  24 ++++++
 xen/arch/arm/include/asm/vpsci.h      |   5 +-
 xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-----
 xen/common/domain.c                   |   5 ++
 xen/include/xen/suspend.h             |  15 ++++
 9 files changed, 189 insertions(+), 22 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/suspend.h
 create mode 100644 xen/include/xen/suspend.h

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index e36719bce4..3c0170480b 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -12,6 +12,8 @@
 #include <xen/softirq.h>
 #include <xen/wait.h>
 
+#include <public/sched.h>
+
 #include <asm/arm64/sve.h>
 #include <asm/cpuerrata.h>
 #include <asm/cpufeature.h>
@@ -24,10 +26,12 @@
 #include <asm/platform.h>
 #include <asm/procinfo.h>
 #include <asm/regs.h>
+#include <asm/suspend.h>
 #include <asm/firmware/sci.h>
 #include <asm/tee/tee.h>
 #include <asm/vfp.h>
 #include <asm/vgic.h>
+#include <asm/vpsci.h>
 #include <asm/vtimer.h>
 
 #include "vpci.h"
@@ -885,6 +889,43 @@ void arch_domain_creation_finished(struct domain *d)
     p2m_domain_creation_finished(d);
 }
 
+int arch_domain_resume(struct domain *d)
+{
+    int rc;
+    struct resume_info *ctx = &d->arch.resume_ctx;
+
+    if ( !d->is_shutting_down || d->shutdown_code != SHUTDOWN_suspend )
+    {
+        dprintk(XENLOG_WARNING,
+                "%pd: Invalid domain state for resume: is_shutting_down=%d, shutdown_code=%d\n",
+                d, d->is_shutting_down, d->shutdown_code);
+        return -EINVAL;
+    }
+
+    /*
+     * It is still possible to call domain_shutdown() with a suspend reason
+     * via some hypercalls, such as SCHEDOP_shutdown or SCHEDOP_remote_shutdown.
+     * In these cases, the resume context will be empty.
+     * This is not expected to cause any issues, so we just warn about the
+     * situation and return without error, allowing the existing logic to
+     * proceed as expected.
+     */
+    if ( !ctx->wake_cpu )
+    {
+        dprintk(XENLOG_INFO, "%pd: Wake CPU pointer context was not provided\n",
+                d);
+        return 0;
+    }
+
+    rc = vpsci_vcpu_up_prepare(ctx->wake_cpu , ctx->ep, ctx->cid);
+    if ( rc )
+        printk("%pd: Failed to resume domain (ret %d)\n", d, rc);
+
+    memset(ctx, 0, sizeof(*ctx));
+
+    return rc;
+}
+
 static int is_guest_pv32_psr(uint32_t psr)
 {
     switch (psr & PSR_MODE_MASK)
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index af3e168374..e637cb4de0 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -5,6 +5,7 @@
 #include <xen/timer.h>
 #include <asm/page.h>
 #include <asm/p2m.h>
+#include <asm/suspend.h>
 #include <asm/vfp.h>
 #include <asm/mmio.h>
 #include <asm/gic.h>
@@ -126,6 +127,7 @@ struct arch_domain
     void *sci_data;
 #endif
 
+    struct resume_info resume_ctx;
 }  __cacheline_aligned;
 
 struct arch_vcpu
diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/include/asm/perfc_defn.h
index effd25b69e..8dfcac7e3b 100644
--- a/xen/arch/arm/include/asm/perfc_defn.h
+++ b/xen/arch/arm/include/asm/perfc_defn.h
@@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system_reset")
 PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
 PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
 PERFCOUNTER(vpsci_features,            "vpsci: features")
+PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
 
 PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
 
diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/psci.h
index 4780972621..48a93e6b79 100644
--- a/xen/arch/arm/include/asm/psci.h
+++ b/xen/arch/arm/include/asm/psci.h
@@ -47,10 +47,12 @@ void call_psci_system_reset(void);
 #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
 #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
 #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
+#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
 
 #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
 #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
 #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
+#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
 
 /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
 #define PSCI_0_2_AFFINITY_LEVEL_ON      0
diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
new file mode 100644
index 0000000000..b991a94d5a
--- /dev/null
+++ b/xen/arch/arm/include/asm/suspend.h
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __ARM_SUSPEND_H__
+#define __ARM_SUSPEND_H__
+
+struct resume_info {
+    register_t ep;
+    register_t cid;
+    struct vcpu *wake_cpu;
+};
+
+int arch_domain_resume(struct domain *d);
+
+#endif /* __ARM_SUSPEND_H__ */
+
+ /*
+  * Local variables:
+  * mode: C
+  * c-file-style: "BSD"
+  * c-basic-offset: 4
+  * tab-width: 4
+  * indent-tabs-mode: nil
+  * End:
+  */
diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/asm/vpsci.h
index 0cca5e6830..d790ab3715 100644
--- a/xen/arch/arm/include/asm/vpsci.h
+++ b/xen/arch/arm/include/asm/vpsci.h
@@ -23,12 +23,15 @@
 #include <asm/psci.h>
 
 /* Number of function implemented by virtual PSCI (only 0.2 or later) */
-#define VPSCI_NR_FUNCS  12
+#define VPSCI_NR_FUNCS  14
 
 /* Functions handle PSCI calls from the guests */
 bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
 bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid);
 
+int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
+                          register_t context_id);
+
 #endif /* __ASM_VPSCI_H__ */
 
 /*
diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index 7ba9ccd94b..22c3a5f544 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -10,32 +10,16 @@
 
 #include <public/sched.h>
 
-static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
-                            register_t context_id)
+int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
+                   register_t context_id)
 {
-    struct vcpu *v;
-    struct domain *d = current->domain;
-    struct vcpu_guest_context *ctxt;
     int rc;
+    struct domain *d = v->domain;
     bool is_thumb = entry_point & 1;
-    register_t vcpuid;
-
-    vcpuid = vaffinity_to_vcpuid(target_cpu);
-
-    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
-        return PSCI_INVALID_PARAMETERS;
-
-    /* THUMB set is not allowed with 64-bit domain */
-    if ( is_64bit_domain(d) && is_thumb )
-        return PSCI_INVALID_ADDRESS;
-
-    if ( !test_bit(_VPF_down, &v->pause_flags) )
-        return PSCI_ALREADY_ON;
+    struct vcpu_guest_context *ctxt;
 
     if ( (ctxt = alloc_vcpu_guest_context()) == NULL )
-        return PSCI_DENIED;
-
-    vgic_clear_pending_irqs(v);
+        return -ENOMEM;
 
     memset(ctxt, 0, sizeof(*ctxt));
     ctxt->user_regs.pc64 = (u64) entry_point;
@@ -76,8 +60,37 @@ static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
     free_vcpu_guest_context(ctxt);
 
     if ( rc < 0 )
+        return rc;
+
+    return 0;
+}
+
+static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
+                            register_t context_id)
+{
+    struct vcpu *v;
+    struct domain *d = current->domain;
+    int rc;
+    bool is_thumb = entry_point & 1;
+    register_t vcpuid;
+
+    vcpuid = vaffinity_to_vcpuid(target_cpu);
+
+    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
+        return PSCI_INVALID_PARAMETERS;
+
+    /* THUMB set is not allowed with 64-bit domain */
+    if ( is_64bit_domain(d) && is_thumb )
+        return PSCI_INVALID_ADDRESS;
+
+    if ( !test_bit(_VPF_down, &v->pause_flags) )
+        return PSCI_ALREADY_ON;
+
+    rc = vpsci_vcpu_up_prepare(v, entry_point, context_id);
+    if ( rc )
         return PSCI_DENIED;
 
+    vgic_clear_pending_irqs(v);
     vcpu_wake(v);
 
     return PSCI_SUCCESS;
@@ -197,6 +210,48 @@ static void do_psci_0_2_system_reset(void)
     domain_shutdown(d,SHUTDOWN_reboot);
 }
 
+static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
+{
+    int32_t rc;
+    struct vcpu *v;
+    struct domain *d = current->domain;
+    bool is_thumb = epoint & 1;
+
+    /* THUMB set is not allowed with 64-bit domain */
+    if ( is_64bit_domain(d) && is_thumb )
+        return PSCI_INVALID_ADDRESS;
+
+    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
+    if ( is_hardware_domain(d) )
+        return PSCI_NOT_SUPPORTED;
+
+    /* Ensure that all CPUs other than the calling one are offline */
+    domain_lock(d);
+    for_each_vcpu ( d, v )
+    {
+        if ( v != current && is_vcpu_online(v) )
+        {
+            domain_unlock(d);
+            return PSCI_DENIED;
+        }
+    }
+    domain_unlock(d);
+
+    rc = domain_shutdown(d, SHUTDOWN_suspend);
+    if ( rc )
+        return PSCI_DENIED;
+
+    d->arch.resume_ctx.ep = epoint;
+    d->arch.resume_ctx.cid = cid;
+    d->arch.resume_ctx.wake_cpu = current;
+
+    gprintk(XENLOG_DEBUG,
+            "SYSTEM_SUSPEND requested, epoint=0x%"PRIregister", cid=0x%"PRIregister"\n",
+            epoint, cid);
+
+    return rc;
+}
+
 static int32_t do_psci_1_0_features(uint32_t psci_func_id)
 {
     /* /!\ Ordered by function ID and not name */
@@ -214,6 +269,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
     case PSCI_0_2_FN32_SYSTEM_OFF:
     case PSCI_0_2_FN32_SYSTEM_RESET:
     case PSCI_1_0_FN32_PSCI_FEATURES:
+    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
+    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
     case ARM_SMCCC_VERSION_FID:
         return 0;
     default:
@@ -344,6 +401,23 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
         return true;
     }
 
+    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
+    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
+    {
+        register_t epoint = PSCI_ARG(regs, 1);
+        register_t cid = PSCI_ARG(regs, 2);
+
+        if ( fid == PSCI_1_0_FN32_SYSTEM_SUSPEND )
+        {
+            epoint &= GENMASK(31, 0);
+            cid &= GENMASK(31, 0);
+        }
+
+        perfc_incr(vpsci_system_suspend);
+        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid));
+        return true;
+    }
+
     default:
         return false;
     }
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 775c339285..6410d32970 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -26,6 +26,7 @@
 #include <xen/hypercall.h>
 #include <xen/delay.h>
 #include <xen/shutdown.h>
+#include <xen/suspend.h>
 #include <xen/percpu.h>
 #include <xen/multicall.h>
 #include <xen/rcupdate.h>
@@ -1363,6 +1364,9 @@ void domain_resume(struct domain *d)
 
     spin_lock(&d->shutdown_lock);
 
+    if ( arch_domain_resume(d) )
+        goto fail;
+
     d->is_shutting_down = d->is_shut_down = 0;
     d->shutdown_code = SHUTDOWN_CODE_INVALID;
 
@@ -1373,6 +1377,7 @@ void domain_resume(struct domain *d)
         v->paused_for_shutdown = 0;
     }
 
+ fail:
     spin_unlock(&d->shutdown_lock);
 
     domain_unpause(d);
diff --git a/xen/include/xen/suspend.h b/xen/include/xen/suspend.h
new file mode 100644
index 0000000000..53f75fd6ad
--- /dev/null
+++ b/xen/include/xen/suspend.h
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef __XEN_SUSPEND_H__
+#define __XEN_SUSPEND_H__
+
+#if __has_include(<asm/suspend.h>)
+#include <asm/suspend.h>
+#else
+static inline int arch_domain_resume(struct domain *d)
+{
+    return 0;
+}
+#endif
+
+
+#endif /* __XEN_SUSPEND_H__ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 15:39:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 15:39:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165055.1491874 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNo5-0004c8-6a; Tue, 18 Nov 2025 15:39:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165055.1491874; Tue, 18 Nov 2025 15: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 1vLNo5-0004c1-3c; Tue, 18 Nov 2025 15:39:49 +0000
Received: by outflank-mailman (input) for mailman id 1165055;
 Tue, 18 Nov 2025 15:39: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=n9C8=52=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vLNo3-0004bv-7Y
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 15:39:47 +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 cef8b762-c494-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 16:39:45 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b735ce67d1dso726415766b.3
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 07:39:45 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-54.as6723.net. [185.5.253.54])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fd80d27sm1391385266b.40.2025.11.18.07.39.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 18 Nov 2025 07:39: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: cef8b762-c494-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763480385; x=1764085185; 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=PUBxZxu1lwBqJ05KLC6IWQDKtIZoU6QUJa/RF+r/zco=;
        b=M/kdnscTu0aLB731siignaUJ4e42MbaBkJGVFlQdlF36SWSgiqmaEK8kCyD5Necd62
         v7r3f/8LyQ6eBO4ZntkG/zPVCjTL1UbTUX+HKiu/wWZT2kSfgugaPvqXx12qHhtiqZsR
         yHGm/m9L+creFsQKQ3d4U85cITzIWqWpwAtfWg1OjJe3kuiIIW3YCVhPyC21bSqHYpOe
         3dodcN6xTxKQKT2p2klZn7mfnFSlc3umDPRjWfKMi32zYDnZrQEFFQUBGVD8kQ4Lu6+G
         FIEFOzIuyRTEA2vgwX4pi1QzX/g5agkJ+IPfm89ooxENX4AF4rhzjcrKxAVFxUsBv1u9
         KQFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763480385; x=1764085185;
        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=PUBxZxu1lwBqJ05KLC6IWQDKtIZoU6QUJa/RF+r/zco=;
        b=WE3fvnKWznKa4qBuldwl3oJ08+M6iel8NaNIboNrtUlhksAt/lFjYiIcE/b2e01tgH
         lRHTqxoq1kwyWSck0prtpt9dUNk5JgoTYBl+fJxPuvI2kpbk7d2iAcuEcz3SEjEt7927
         c2kBDJ2KuBVQYQzcown3/9uccoS/eDKVYIh0ceiD8rhjk8gVsAFRd/ad3uKALd+qp7Bt
         EtvgKlJIGdd9RDXAAvmtzDFgDcfXJPCfk8s/Hz9s/1kNh2urSLthj61qlk8oGIfiq3C1
         mYli7E885JC7KK0b936e7amuIL9Z0TpG6sIFcmiSiH7KKUkIjawr9ucPazvR2qqYVo6k
         Td7g==
X-Gm-Message-State: AOJu0Yz/wx1irmzHoalEIYTBhbR8iuuFiqbVH6LXyv4tsqo9qZ3mGSnr
	Aq+WWr9UCsRzO0Utl1F/V3nAprvTWh4dq3Sw9ABbpLPb4zNSkUpVgEfFkKNG6ASEsVw=
X-Gm-Gg: ASbGncv/LiS5NVZRubtDGWVNOceqXPgw6mbnToJjkMsYneZVaZzEXIA5MklrIqkAf0h
	GrsS3/6aHOHnmASFg2k2L6MI5DqaRs8rQyQ8SR/7y4iOdBjptfrkmPLz0fyRNy+jUHn+qU4n9WN
	a8jv4mf4RnNMiCOqDMRw1O5gBBJthlXjhAoYsac1QBzNlQCIIBoTOaX6JBh4jiM7swvgYPQ7gvy
	Wahh6YKq/BBec9CWK231malUOFfzecLtd6OSEiL1JChK6oPRCsAukh4eoAvcCO7xK8vS29CAqAK
	qSCU8vEFGdvDh5Mqtc8JcDXlXyX4nkUWpIZt1Iibhkk4Rw6+7bCEzFyPWkhH/FnpIe8k3h+u2uI
	cWuyzSeOEE3ljeH6fWckUS7lt9c5EDoxruO1rf5j4kMVOhyDevtRcZDTJOi0X5JcrRjNAJgNBk3
	U7O79XSyMl5Nq4blD8i68i5PzGddP1ha5WbFk2E9T6kmY=
X-Google-Smtp-Source: AGHT+IHyRtLYTCTV1H0wye6KCJJiNoj0Pt2IF3N8dBdl7UqPFvTmJYle74n5Jg/3qsfd3AXsu6dzfA==
X-Received: by 2002:a17:906:d551:b0:b50:b539:8be6 with SMTP id a640c23a62f3a-b736795c7f0mr1331632466b.43.1763480384556;
        Tue, 18 Nov 2025 07:39:44 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Juergen Gross <jgross@suse.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v14 0/4] Enable guest suspend/resume support on ARM via vPSCI
Date: Tue, 18 Nov 2025 17:37:27 +0200
Message-ID: <cover.1763479083.git.xakep.amatop@gmail.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch series introduces the initial support for guest suspend
and resume on ARM platforms using the PSCI SYSTEM_SUSPEND interface. The main
goal is to allow ARM guests to request suspension using PSCI and be resumed
by the control domain (e.g., via "xl resume").


Background

The PSCI SYSTEM_SUSPEND call is part of the PSCI v1.0+ specification and is
used by guests to enter the deepest possible power state. On Xen/ARM, we
emulate this interface in the virtual PSCI (vPSCI) layer for guests.

This series includes:

1. A new vPSCI implementation of the PSCI SYSTEM_SUSPEND function for guests
2. Documentation updates to SUPPORT.md to reflect PSCI and vPSCI support status
3. Enabling "xl resume" command compilation for ARM, which was previously disabled


Usage

For Linux-based guests:
  - Suspend can be triggered using: "echo mem > /sys/power/state" or "systemctl suspend"
  - Resume can be performed from control domain using: "xl resume <domain>"

For more information, refer to the official Linux kernel documentation on power management.

Note that currently, SYSTEM_SUSPEND is supported only for guest domains (not for
the hardware domain).
---

This is the first part of previous patch series and originally consist only
with necessary changes needed for guest domain suspend.

The second part can be found here:
    https://patchew.org/Xen/cover.1756763487.git.mykola._5Fkvach@epam.com/
---

Changes introduced in v14:
- move arch_domain_resume() to its own header, drop typeof usage for
  the resume context, move resume error prints into arch_domain_resume(),
  and address review nits
- move the suspend-to-RAM changelog entry to the 4.22 section
- commit message tweaks.

Mykola Kvach (4):
  xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
  tools/xl: Allow compilation of 'xl resume' command on Arm
  SUPPORT.md: Document PSCI SYSTEM_SUSPEND support for guests
  CHANGELOG: Document guest suspend/resume to RAM support on Arm

 CHANGELOG.md                          |   4 +
 SUPPORT.md                            |   5 +-
 tools/include/libxl.h                 |   1 -
 tools/xl/xl.h                         |   4 +-
 tools/xl/xl_cmdtable.c                |   4 +-
 tools/xl/xl_migrate.c                 |   2 +-
 tools/xl/xl_saverestore.c             |   2 +-
 tools/xl/xl_vmcontrol.c               |  12 +--
 xen/arch/arm/domain.c                 |  41 +++++++++
 xen/arch/arm/include/asm/domain.h     |   2 +
 xen/arch/arm/include/asm/perfc_defn.h |   1 +
 xen/arch/arm/include/asm/psci.h       |   2 +
 xen/arch/arm/include/asm/suspend.h    |  24 ++++++
 xen/arch/arm/include/asm/vpsci.h      |   5 +-
 xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-----
 xen/common/domain.c                   |   5 ++
 xen/include/xen/suspend.h             |  15 ++++
 17 files changed, 208 insertions(+), 37 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/suspend.h
 create mode 100644 xen/include/xen/suspend.h

-- 
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 15:39:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 15:39:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165058.1491905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNo9-0005Hu-4B; Tue, 18 Nov 2025 15:39:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165058.1491905; Tue, 18 Nov 2025 15:39: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 1vLNo8-0005H8-VG; Tue, 18 Nov 2025 15:39:52 +0000
Received: by outflank-mailman (input) for mailman id 1165058;
 Tue, 18 Nov 2025 15:39: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=n9C8=52=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vLNo8-0004pf-7K
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 15:39:52 +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 d1fbea06-c494-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 16:39:50 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-644f90587e5so2210502a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 07:39:50 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-54.as6723.net. [185.5.253.54])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fd80d27sm1391385266b.40.2025.11.18.07.39.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 18 Nov 2025 07:39: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: d1fbea06-c494-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763480390; x=1764085190; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+IE/6U2/jxx06UiTUo+lX1PbDac7ac5Ki4u3TKrSREY=;
        b=ae5z4BfSyT1L7yg6+zC2NbkvzxbnuhyPg2NEfeTy4cPv9XOF8HfUbnskMJhujoWobI
         T7ZCi3Lz+uxW8a8A1e1gALMflkNk94TinDMkQgiBybUZf86d67oOc2EywKJ2xMf7ylE2
         fRARnOomheo524Rj55F/jDb8cu6nBSwlNrP0JeVPte0190FX/lh28t510p7sMxLp42/d
         /Qj9xh4fPOElwaRg08KiPEM1YkXrVZvmP+V00zn0DQB4K6lrdRMW0FLgdIVYlSm7H493
         lxM39GO7QbWE5wBue8DkkV1V6U/4mowMGXAhH/Wrv2XT0a8R+vHKiRnqyXnwtFlomCic
         spoA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763480390; x=1764085190;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=+IE/6U2/jxx06UiTUo+lX1PbDac7ac5Ki4u3TKrSREY=;
        b=SjqHuuDraT9xm7tc0S46pmB9smjxzOFujicPkljOZkS9CReC3fzXQX4JG5iUZTeYeI
         xh6wSfI1b71zjS+FI0QpGQSyCL4InSq3moaes7e3JK3/33vfnDUb3HK6QZQdaZHZdmzI
         JjtZxYGjc2kGYcA+EJ/K4WTXrMFzsC9p5zpvZGW+BH+WkKtIU0zL04oLfmKhNRYhcABh
         dTTvo0K0nP3leJSbBx6aaY/+cOPPZiOtqONLrhtj6yH82Z6cATnAc3FfNQzB8DTndfzX
         0e1uWS5fOIdu4BJevZzs6efN4HlJp92XrKmAHSYinQC5RbbmWJ+e9ww0/jwmTucBCjNM
         V57Q==
X-Gm-Message-State: AOJu0Yw3uQ5Hc8IxciCSLtaXSyiU1hJQdBHGtEcSMjmuIVONotcbCvvk
	4HNB/x/kuQ776URgwVRekMdUCIrfaJNyT7hXmyxg3IQ6XxSwo/+I5W9hQvU+OSsss5g=
X-Gm-Gg: ASbGncvEiCzeOt3q3x7cMxsLEpIp+WquGJLtMKdc5B8gO728rs+qXCZ6K92rLXI7IvQ
	6AwW2U7Us0iF7ZArBCAoo/ppSPWssIxEjl6NqodmiUNYW+iQ1cklYChPWjWabzSuIJ/Fu7LwvBy
	8HgVgWjbvMu6NbZtNTHIcJaB70GIU38svM01rznb4mnVLqDD+luWpM1Iw0bdwBoxyWSoJFzQhRV
	ONc78Ivh943UQvZOs3zaA3EeZxiKhbifnGhj7noghBBFX1UPl/9FNPY2Epl2RAcf8XTch04j6S+
	WrH0HJDY3WRIuPKJCfuPSSudXkRCuVqmsX5ohIOOXzflChxnLZkxXhJnY/bxrMTrElp/lZzrs/G
	WKapJprI6+5WMae0pz+b2t7pRL6V6qhAKvSUd9GkzNmV6TtmC4Ln7gfuUY7QOLra4l7kU/bTUnS
	IYP20u0mp0nqg4gSmyH0ZQ7bHlmGupAhzK6EokACoODeA=
X-Google-Smtp-Source: AGHT+IGspqpLQVqJEfAtmfmsTcS7G26/37S4TaDKtxuqTB51rg7iKd6MO9sAN/Y4UCS40Wfj9i9PUg==
X-Received: by 2002:a17:907:1c01:b0:b0e:d477:4972 with SMTP id a640c23a62f3a-b736780c3b1mr1466748066b.25.1763480389685;
        Tue, 18 Nov 2025 07:39:49 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v14 3/4] SUPPORT.md: Document PSCI SYSTEM_SUSPEND support for guests
Date: Tue, 18 Nov 2025 17:37:30 +0200
Message-ID: <aacae215d49a6cc96f4add793c6637d2fced8ddd.1763479083.git.xakep.amatop@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1763479083.git.xakep.amatop@gmail.com>
References: <cover.1763479083.git.xakep.amatop@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Add a new entry under the "Virtual Hardware, Hypervisor" section
documenting support for the optional PSCI SYSTEM_SUSPEND function
exposed to guests.

This function is available via the virtual PSCI interface and allows
guest domains (domUs) to initiate system suspend operations.

The feature is currently marked as "Tech Preview".

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Acked-by: Julien Grall <jgrall@amazon.com>
---
Changes in V14:
- fixes in commit message.
---
 SUPPORT.md | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/SUPPORT.md b/SUPPORT.md
index d441bccf37..8e7ab7cb3e 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -962,8 +962,9 @@ Emulated PSCI interface exposed to guests. We support all mandatory
 functions of PSCI 1.1. See below for the list of optional PSCI call
 implemented and their status.
 
-   Status, Mandatory: Supported
-   Status, MIGRATE_INFO_TYPE: Supported
+    Status, Mandatory: Supported
+    Status, MIGRATE_INFO_TYPE: Supported
+    Status, SYSTEM_SUSPEND: Tech Preview
 
 ## Virtual Hardware, QEMU
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 15:39:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 15:39:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165059.1491915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNoA-0005Yj-Dt; Tue, 18 Nov 2025 15:39:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165059.1491915; Tue, 18 Nov 2025 15:39: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 1vLNoA-0005YW-9j; Tue, 18 Nov 2025 15:39:54 +0000
Received: by outflank-mailman (input) for mailman id 1165059;
 Tue, 18 Nov 2025 15:39: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=n9C8=52=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vLNo8-0004bv-CJ
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 15:39:52 +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 d2a07829-c494-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 16:39:51 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-6419b7b4b80so8422762a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 07:39:51 -0800 (PST)
Received: from EPUAKYIW02F7.. (pool185-5-253-54.as6723.net. [185.5.253.54])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fd80d27sm1391385266b.40.2025.11.18.07.39.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 18 Nov 2025 07:39: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: d2a07829-c494-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763480391; x=1764085191; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5IRZHY2U62t3jJH8sNLFrWyIhFyWb8Ge0US4ibpnjnE=;
        b=LWRITPWh5gTFs20m/0PFieZwbbjZZyjFJ/JhTtbo64K/NvXUcL/9keHy/0G49j54uJ
         wMe7lQ4PFIRe709S7DDwwnRO+SIqm6Ma4o+c7tb+SQfHQQ2DkuSK23yJnM1ehQlw2R8M
         XgdVnue3uBjTM59NTG2viVEafHmlVvrbVNPYLAtQY/YuwpxISKv466yLZVf3m2ck2xqJ
         0/xQVHNaOll0PalrVuNfIvymB6YtIL7FQuGQoZmdFAGTAWFjdLFnPPZMP+reCiVySguu
         BI+1dtjR2/5ORHUv6Czeah+ZuY5+9+cx/kGYMzPtYnd0UiJUip1mzEzBTkTKLPCQ4I2x
         ApIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763480391; x=1764085191;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=5IRZHY2U62t3jJH8sNLFrWyIhFyWb8Ge0US4ibpnjnE=;
        b=XlqchoFdaG5rqWxTdFrNp6XAWdWAHSgOORhV97FFgeL1f4ZfkBCnOZJSE+D4WB0p2w
         QyYv0k8Dm4wC+JpVV22sLyphspLu3DExBYZCL8hC0ehnVmeMZcUMKGndQxwXUN1zr55q
         T0MhGSbCyRg5+UgrjdP56a+OdwzaGOMCUtoqPfwLcUxHrMh4TGTHpv5q30UGjigH+54/
         T/eQ7Zx00UfAvzTUDCgIRt3C0Iq+WzVw7mmsVfuvnE4t+kuJcAUWEcRy1wOiBsoRx8pj
         IMGo4zNpOm7FKOiWgRuKimb6B6HtdD2ULDvUhyDuRnipyzE7b48u4GlN7vKhuUgceQhW
         KKzg==
X-Gm-Message-State: AOJu0YyKwq7csbaKF1CRjbZ5pwoGgeQdTAYAHaOQ2KbKet2M03gHrC0v
	HsS8p9nKN0A3mjS222eCJ+9WJ0ijDSk40nazNvvFV9yNh5VJpVCN41/qBt0VYZ74HUE=
X-Gm-Gg: ASbGncsAgN8oWy9siWl4c9v5MhfcVYMnYsbF7I44u0UdxZVW+uGjBhOm7MNa+JWirjt
	H1js2bJyxfqxScilB3tF77Zj056/IiLPpMYckD+tyTJ29UvXp1UnO7S1gvGz/fsPG4AvelixALF
	+7F9cvSr3EFcT0Xw9umGrw8DfETuFHmAEMHq3v9yqJDUzrPtZNeb6yJFj3bApTxO3sNNOFhFQ02
	TjomYSIU8yCYk8HcKuiCoJeRE6jPVll2pIAAR7bi2TH68uLCLoGhzpZrZ6OWgLudVrn0d4aBjdC
	zO29U5Uto05pFygSWT87mP7uXdYC+XNDzQsb3DksyMcl70R444j5eJPovqVD25vPXb6w7TnNOv7
	ZkUF/Fz2lEjHR902OyKe5Shvdu2Wg6AqTZWi3uhPM+XG+qVi/SgKE6aPq40tBqop9wvu/eaPB5z
	sigy58areHr+Sq6J2XMgDtrKhypOneUl0Q
X-Google-Smtp-Source: AGHT+IG0on2rt+kR/hnHKEOXOoOo/qs/TkBN8/J/wlTjHcZFcjGqGEuTJtAJEvsKjtMhnCRCv7HwnA==
X-Received: by 2002:a17:907:1b02:b0:b73:8c6e:cf6f with SMTP id a640c23a62f3a-b738c6ef474mr1192116266b.32.1763480391021;
        Tue, 18 Nov 2025 07:39:51 -0800 (PST)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v14 4/4] CHANGELOG: Document guest suspend/resume to RAM support on Arm
Date: Tue, 18 Nov 2025 17:37:31 +0200
Message-ID: <8ed791c2471a23bf63715c16df519c86e0699157.1763479083.git.xakep.amatop@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1763479083.git.xakep.amatop@gmail.com>
References: <cover.1763479083.git.xakep.amatop@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Mention the newly added support for guest suspend and resume to/from
RAM via vPSCI on Arm platforms.

This support is limited to non-hardware domain guests.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Chnages in v14:
- moved s2ram changelog to 4.22 release section
---
 CHANGELOG.md | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index c9932a2af0..fd4657ea42 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 
 ### Added
 
+ - On Arm:
+   - Support for guest suspend and resume to/from RAM via vPSCI.
+     Applies only to non-hardware domain guests.
+
 ### Removed
 
 ## [4.21.0 UNRELEASED](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=staging) - TBD
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 15:41:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 15:41:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165104.1491924 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLNpQ-0008A8-LZ; Tue, 18 Nov 2025 15:41:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165104.1491924; Tue, 18 Nov 2025 15:41: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 1vLNpQ-0008A1-Iv; Tue, 18 Nov 2025 15:41:12 +0000
Received: by outflank-mailman (input) for mailman id 1165104;
 Tue, 18 Nov 2025 15:41: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=YPWA=52=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vLNpP-00089j-GZ
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 15:41:11 +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 00e0ae0f-c495-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 16:41:10 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH7PR03MB6972.namprd03.prod.outlook.com (2603:10b6:510:12f::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.18; Tue, 18 Nov
 2025 15:41:06 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.009; Tue, 18 Nov 2025
 15:41: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: 00e0ae0f-c495-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iO8BVulEo0tCYSOFSLmAwNG4nE7OmT57aozorF1iuFGv+K3L8wdhFMisNtA5PdhYurcXOtu2VPtOgyrqeWHMOmn3qtxBMt8IOGAM86vP7xPHxPoI82VamJGWzYUWeFvpYMEtI7tmsYadcDQgXVSzklUcm61gDWURAJwcbBn2ynYE3isS0uXl3a1KNIq/YcGBnE8xXsE6iG/8yZQ08/c/rLzw50x2LGSBLwvWKA5QDDgjk2oo9xKPklkYCm9t0eW4h/q9OC97VCXAPKSh8ItpwFoZy6NksCQDAgZMrZkpVqlWDELQf9Gc55bvQ7LJUTPYfuM29xWHNbVpYG1KCSPS6Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=t6o8tfdzHVkljlOcBbHO9NiT0V8NpQDoJXBAnUHjZec=;
 b=oHHed99ancESIT8DVO9ELSZM6e6Y4r3anU4rE2B32cCU5XLNG2idcVB2TCoBoS/7MGnfOoi6sKK0il6PXIOzwVaq2ITB1oNtoM5sWZDPuE2v6h04Lcx/fUBfCVhN5Q5YESfISCjhiFuBLsmWFlGEsoQ/GrfOJNt4GcNVxBrb0TIAAec+F1M+/CUXL+s9gL0SM9ZL6fi+5iTEQxN/Wjy+50ZfJof9BWN0vKvdNAuLTrE9GcAQAlRWtgTfwEkQWTjsv95nEwqdI+O0I4QtrdOQ2bYVhtY/OcX/35jZr+X4N/xTNlubCwafUHcA6SiVzF7+O+1HzvyKh3M2D0Ik/aOTqw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=t6o8tfdzHVkljlOcBbHO9NiT0V8NpQDoJXBAnUHjZec=;
 b=Y2YK/RXIw4++Bwj+UXxelfcACWdULgbVvk8VAF28c5so8MZ019eGfKfXwpil+FdFPtPcaaoRCy9cBqpVE2wLvu4Ov8S2P3evCJSXH1OiFyr7KTkVJSkyuXcUEHc3+5wiUot/WTtIZ6F6DEhjhUvVISZ6G7lnkFp1PgY5Q0kBFcI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <8c704f68-591c-4605-a649-86ca0ada411f@citrix.com>
Date: Tue, 18 Nov 2025 15:41:03 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/8] x86: replace APERFMPERF synthetic feature bit
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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
 <505029ff-cb2e-425c-bf5c-3ac364f32140@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <505029ff-cb2e-425c-bf5c-3ac364f32140@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0305.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:196::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_|PH7PR03MB6972:EE_
X-MS-Office365-Filtering-Correlation-Id: ea5ddf2e-9e6e-46a5-b077-08de26b8e34b
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?YU41bS92R24xOXJpbm5UZ2s3Z0VsNk9lbm5Ybmt3RmhuZTR5VFkxUXVSaVpQ?=
 =?utf-8?B?VzcxMzJ6NXZraG5hb1lHV2pYSk5MU2V6blA3Um9rU2U0KzVTRlRHdnlVeGxJ?=
 =?utf-8?B?bys3MTB1MkE3cS82ZkUzR0pVMFBtVytTQnZHU25heHZaQ2hMaUxaRWtlZjNI?=
 =?utf-8?B?VGZwTVJ4bEJNUzNkcWtnZGRaN1NMRkd5YTNLTGRXNEJid2lRM2w2cWlhMDRh?=
 =?utf-8?B?S1lIelNacFRCWGJ0RDRwdTE1RUt2dzlockpKOStjN2VEbGI1RDM3VlUrWHVF?=
 =?utf-8?B?OG5zRElRZVZjU0FMTTNBbWJDSGt1NWR0ckhnN1VLQzI5dkVPTldqVGd4TmJ1?=
 =?utf-8?B?cnd2NkFLeGtzME8wMkVZWUFUZEVRU1lWQ3JMOTZ1dW5jTEc2UjlML01MWDNt?=
 =?utf-8?B?T1JiT0gvdHJLQ1VwYXhoaWxWZHZZb1hWRVJOYWJmdWtsSjQ3TXlMTU94bllL?=
 =?utf-8?B?cHpHTWwyNjdXd2lOMEZzSnpMeTZUbXJYcVlhWG1PSEhHS3hLb243R3hXVU0r?=
 =?utf-8?B?amJQYkVvYzhTN1FyNEY5QkdVQUsxQVZkaWtMZExnZExpeVF4M09NUWpaVzFv?=
 =?utf-8?B?OHpxKzR2WHhTTEtSdE1VOHRlckVrWUcyRWJLZEtvSTRrcEE4NDRwc05JMHQ2?=
 =?utf-8?B?MXdoTEVnYjlFRDZvOHZwMkhRdHBWc3VnenJBSitFaEJzRERLWnNtYVBXVHpr?=
 =?utf-8?B?TUpRaW9FUS9Qd2ZKbVJ3ajFrUFl2aU1vK295RDNpRWQ1UllYa2k5YVBwWU9x?=
 =?utf-8?B?S1U5RGNmZmtnRkJ3dkVpcm5Vcy9oeTJtMVkvLzNJaFVWSzhPWkNXbnpEUU11?=
 =?utf-8?B?OXJ6V2pjZWVPNDhLT2VUM0ptcm5IN1psTk1haFB0WGVLbDcyZ3NZOFNxblRV?=
 =?utf-8?B?Wlp3WEF2M0ZyRmRDMGR2YzdkVWJzcDZHUkExVW9GYzU4cGprVmNwQTRuWDRC?=
 =?utf-8?B?bWlMU0ExUDVPeHFBUG1MZ24zTzgzcDhkYmlmWmQ3WTZVTDI5TGsvbzYxWCsv?=
 =?utf-8?B?MDBZQ1kwalk4UUFtR1J2cVJGZ0VuTTY1SDNzaWJ0dzJGbTE3WFYzZlA0VjRw?=
 =?utf-8?B?Z0h1WmJZSFRXSndSekxqKy9ENVlGRFRhYmFPUnhBV0gwby9nY3pkZEc2ZVY2?=
 =?utf-8?B?ckszdXNhVnVTZmJXQmlsRWc3UTd5ZUtBaUxscnRLaEo3OVFpQXowRkxaeEI3?=
 =?utf-8?B?ZmFmcFBiZExrdGU5Zk0zeUF5RGZmbGN1QVMrWXk1VWhRTkl1cUtVNS95ZkJ6?=
 =?utf-8?B?dVJWVm5obkhSUmlEL08zZ3RURlh6eEFxL2xaTU9hQ09QOXhQOWx5TkdSekFa?=
 =?utf-8?B?VFJiV05LN0VwYTlRTmkvdmtvaHowMEcxVUFPbmx3UzdGdTIzUlJubUtnYUtC?=
 =?utf-8?B?eGg2QlpYMGFoQUFqeS84eU5uMEh2Q3ExOEF0cklpeVdXZVRRalVBdXhoa2xX?=
 =?utf-8?B?cHpiTnhBUEZJODJzMTZMQkJFNU85VDFvOGMvOGk4NjVMMFFuSE5mUlQ2Rk9F?=
 =?utf-8?B?WStVQkdYL09XbEtSVURJVjJaVkdKYW5ieWdQaExUaGkyZEgyb0tJMlJBc1Z0?=
 =?utf-8?B?UktLTmh3aE1RcU5WcWxRQjdDN0U1WTFpNnpld3V2a0FYOHhkY3NuZkh5N3c4?=
 =?utf-8?B?QTVhcFhWK0hRMDF0Y2tndGRhazJ6a01EY1VKVzJsVUNWZFJBZ3JFdFAvTkJX?=
 =?utf-8?B?Sm1GSXAyTFArakg3NUtnSEl6YVZhK3pBQXkydFJhRUZWZ3MxUkg0S0Q4SStW?=
 =?utf-8?B?SWFhQ0cyNXRZcFN2aGhFTVdGcU53eS9QZVFlQWw0MTBQa3J0QTRMS0NmY1A2?=
 =?utf-8?B?bXhZSDFoTi85TmNJdENGdzQ4QTQzdzRZWE4rQUl5c0Z6OVQ1MGVlU2tzTkd3?=
 =?utf-8?B?WjBvQ1pEMHZKdnNIS0p5d0xUNXAvYm8vM0p0MnZGaG10dlBtd2taenVDUlVD?=
 =?utf-8?Q?sVEP05+M9+q1ztYkOcF2v5hvX01gTRcH?=
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?dU9KL282SkRmQzAyTGRvTWpxV01pNU9paUo0YStyWHYzSTU4dVpmTWZNSWNG?=
 =?utf-8?B?ZHZ0TE5yYm1USnlXUmxlb3RzL2UxWU56Smp4VDVTdlJPUURPOEI1YmpZVkVB?=
 =?utf-8?B?YVFjRFVtaEQ5dG1IY0dqRWJGOTFnTWx1VTdTRGM1TE53VW1HOE5OOHk4cjZV?=
 =?utf-8?B?ZElxdHJGck16cjhmdG5keUtxcHZDZk5adjIwdDgrSFoyZGNmQjZwYkMyQUhU?=
 =?utf-8?B?cnoxTW92S3BMcDFOR1p1eklPWDZ0NjhOKzRsdXJTWTNGa3BiRmx5eVBCUVI3?=
 =?utf-8?B?S3VuVHU3TFpoRGFnN09sdWdzZWxmUWxuYTVLSUQvWEpQRW92SzJia3JHeXdm?=
 =?utf-8?B?dUZzdDgwTUVWd0hLRGFadTI1TnpTT0VJV2xVeDNObHBtdTcrU3N4T0dXUWhV?=
 =?utf-8?B?K09JOTN5K2VGNXZXV2tmZVM1WmtFWE53Y0NueUxrdVRFTno4enlnOFAwbEN1?=
 =?utf-8?B?dnMzTHpGODdSR2lTNlZuK3NmWTdLbVZ6NTVFNzFOWlNzTDVNS2gyS1c5d1dl?=
 =?utf-8?B?YUxOZFR0MSsyWkY5TnJ1S0VaRU1sVi85Z1pMc3QrU0NWeGxKQzY3cXkrcXdw?=
 =?utf-8?B?bmIrMWowVEcxK0YwTDVOaEV4TUJJcFJLV1BzcEp6MkcxTThUdTdRQ1hvVVRD?=
 =?utf-8?B?aCt0WWhSVUFiMlhjN0k4dzdIRUxhYnlibEJyMVgvZWRmN3lsbm5udnFuWTdK?=
 =?utf-8?B?N0szLy9oNXZxczF3cFgxeW51NEYxMCtvSFpBQWhWWWRUczM4SUpIMjZaeVZE?=
 =?utf-8?B?ZCtuUXFyQ1YweWtwdUliaXVheWRvUm9UU2FERXdsMFFYWjl3QndHSkRFS3VY?=
 =?utf-8?B?RWxWbjJ2MDlhb005bUl2UlhDdTdORFlLelBtTkE2TzZMMUFPYXZ5UkdXRWg0?=
 =?utf-8?B?VlJUWGtIa2NTWnVFT2ZsUzNzSXg0aHhmZDZEZjFZQnBhZzBPZHZDcG1MSFlG?=
 =?utf-8?B?dlZwTGxGWFlsS1ZWMWNDeld3VGYrOHJrZXREWGdhb0E0WERLc05YSGJoUFZw?=
 =?utf-8?B?UEdRN0NGaWw5a29pa3F1dHV3WFZ4WmZYc0doc3NIL0VtRCtzZE1vWjRWeGY0?=
 =?utf-8?B?WGNlbzVxWGl6N1ZLeHF0UkJLcjZvTnAwOXVVNThLM0hmNWpaMFFSVG9WTUVm?=
 =?utf-8?B?RnNFaFQwMThMbGdxR0JJOGZ0VmFWNG1FVEtHaHZUWEZkdDk3VWdUVHQxU0hi?=
 =?utf-8?B?b2tDWHRmY2hXU0J5alZnMlNwOCtna0k5a0liYmZSS1JKQzV6TmFIN2x4NFI4?=
 =?utf-8?B?ellaYnVNKzdRWlZYRTVXL0dzWGR4NXN4M2N6TkVHMUxOOFJrMVZzUjNNdGFB?=
 =?utf-8?B?WkNWUS83QWd0QnhRWWRaOUt6NVFqQ00zRGZnMlFqYmlaUWJSZzdKNzQwd0RL?=
 =?utf-8?B?Y0p3Mm0xd0t6c3E4bzFyTnlEQ3VuYy9mMHRUendwZzkxNHFmREU0cXBMNEtu?=
 =?utf-8?B?U0lKYTdvZ2FTVXFkZzdBckp2T1BROTlaeDZTcENxUkpEenRxMWdRZDFZaHBq?=
 =?utf-8?B?NFdoclJwaU15NkE1ZWVrYUI3dzBGc1VFTUtDdDRiTGdIY0NJZmNSWFRRTkVk?=
 =?utf-8?B?TTJpcWlyNW1TalNRaVpzMlQ3K1RWRFdYSzZHMDlJcVJDSWp0Y0hEZkF1WmFC?=
 =?utf-8?B?MWRuTHQ3dXI0L0M4czlXU2xnbGNHZ1FtcmNjeTBON2RoNThKNjA4anNvbHMr?=
 =?utf-8?B?WDNEbW0xcDRhTHNYcnNOQVA1Z1pyK1ZtaVQra3E2OVlHOXZZdTZOdWExRmU5?=
 =?utf-8?B?czA2dW5xL1hqdVNDeDc2TW1RaTZNbjZqN2w0Y3RoVko0K2RMUzhvTDNOdjRR?=
 =?utf-8?B?em1ITHh4TFVoZXY5dEFNU285QUNReUF6KzRzc3VSdWJBSEV1cTkrS3ptdHU1?=
 =?utf-8?B?ZzhVN3NSR0gwS2s3eU5LNCtuV0t2LzZSQi9tMmZ3Q1ZBNDJyUXZpcXVDZmQ5?=
 =?utf-8?B?YVpZdDZBVGxZK29Ha1BjS1RxcHdsL2ovbHlwUU50ckdFS29KTVZqN1h6QzRy?=
 =?utf-8?B?djlkWmJxSnBleFliT3dwWlJWRllTRlpMeWhQRUdnVmJZWCtwR0ZGUmdKczMx?=
 =?utf-8?B?UVI5Qmx1T21QM29mV2Nvcmp6UjdzMDlzVlVWZ05oQ2hoYkVyYk1wc0l2U2dr?=
 =?utf-8?B?YjBkZ2dJSDJFc1VGOTFvQVlXR1ltakN0K24xMkxOMDJNa21mVmVlcHRZTWFl?=
 =?utf-8?B?SXc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ea5ddf2e-9e6e-46a5-b077-08de26b8e34b
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 15:41:06.4165
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hPBxmlF7gi5yTFWSSuMAfudvvyISx8AdGlVDIODELl21JqVI8v/U9zGkPyqs1M0s31EflV8Z+7g04W7XL3Fws/AFVy8cZGGLatLO4+yIM38=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB6972

On 18/11/2025 3:07 pm, Jan Beulich wrote:
> Use the respective host CPU policy bit instead.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Right now, the synthetic features get levelled across the system.Â  Now,
we take the BSP's copy.

This change is broadly fine, but it does need mentioning in the commit
message.

One thing we may want to do is take greater care to get the
masking/levelling MSRs properly level.Â  Right now, if they're asymmetric
for any reason, we would previously end up using the common subset.

> --- a/xen/arch/x86/cpu/common.c
> +++ b/xen/arch/x86/cpu/common.c
> @@ -523,10 +523,6 @@ static void generic_identify(struct cpui
>  	if ( cpu_has(c, X86_FEATURE_CLFLUSH) )
>  		c->x86_clflush_size = ((ebx >> 8) & 0xff) * 8;
>  
> -	if ( (c->cpuid_level >= CPUID_PM_LEAF) &&
> -	     (cpuid_ecx(CPUID_PM_LEAF) & CPUID6_ECX_APERFMPERF_CAPABILITY) )
> -		__set_bit(X86_FEATURE_APERFMPERF, c->x86_capability);
> -
>  	/* AMD-defined flags: level 0x80000001 */
>  	if (c->extended_cpuid_level >= 0x80000001)
>  		cpuid(0x80000001, &tmp, &tmp,
> --- a/xen/arch/x86/include/asm/cpufeature.h
> +++ b/xen/arch/x86/include/asm/cpufeature.h
> @@ -11,7 +11,9 @@
>  #include <xen/macros.h>
>  
>  #ifndef __ASSEMBLY__
> +#include <asm/cpu-policy.h>
>  #include <asm/cpuid.h>
> +#include <xen/lib/x86/cpu-policy.h>

Why both?

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 15:56:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 15:56:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165133.1491935 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLO3Y-0002lo-RZ; Tue, 18 Nov 2025 15:55:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165133.1491935; Tue, 18 Nov 2025 15:55:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLO3Y-0002lh-Nu; Tue, 18 Nov 2025 15:55:48 +0000
Received: by outflank-mailman (input) for mailman id 1165133;
 Tue, 18 Nov 2025 15:55:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=n9C8=52=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vLO3X-0002lb-Dt
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 15:55:47 +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 0ac5e962-c497-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 16:55:45 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-59431f57bf6so5878131e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 07:55: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: 0ac5e962-c497-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763481344; x=1764086144; 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=PmCQ5Yz2tMK4rWZkBUZdB/rLk7V6Q/PG+TafV+tsdSM=;
        b=WvBUTd8OBcGIMxPhrXHxXsC26GDV5E6yDwPFYW0bBEC2sp+oYy6VzlL0+FGgYOYEGX
         R2KcNlsDZiQgY1TUZCre4bf4QXu9gMWMr0EK9Fu38NMxFGsBIs30RgoQcfcutmTT8oon
         gvuAjC3bh9HeLrpv5OeOYoeFatHW1zDNAEwh4Xzff9+Bzq14uDRDBRizh7TX15Kkqlno
         4ZhmC9tqcOeRetCgmgPV8STVD5QcdMlel6Wusety0aRyRIeCxRqu+XNZRD7c63Z2xyGa
         Xf/ar1U5L3lLNuWOqxQb+1AZ4MjzWch0OiHCcRKRxD1BVdPWo1khhnq1WWR01DJo+raZ
         cpoA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763481344; x=1764086144;
        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=PmCQ5Yz2tMK4rWZkBUZdB/rLk7V6Q/PG+TafV+tsdSM=;
        b=QkfZYmUkm7Gnf/qh57lXc2dMqvnVzlhBINOgqiPuhsl3XC70CRpCyHYIDxAjR/JBiq
         1QllMZvFoxK3+H4cKBgGrAejX06VogpIyK8S/c/9sF4fVzONCRo26+VzOiqo45JA7if0
         knW9p/I75hIx5uX4PpLD5DR7+03MstwK2PFe36t+NAvei/cHaGKsBvMdEUDQZKIfUYHS
         qr23tSMLhmDFiEhYlUYY+sTTZbmVHowsy90Tv733a1AlXeP3Zp7Uwmwsj3xfHuZ9wl/a
         JcX4DX/MpqpABfjbhpxgg2HesAo0ip9uLl4CGlb7xKp8CbO/YEFMKOq9P8y4hI9nMwnL
         Qwzg==
X-Gm-Message-State: AOJu0YxBDLN9Mx82YQ/njXkIOSTBitHHBGulSs3cPMO6RQi7IeRJ0mgg
	vhypVTbj4s9jrKxGoZXQe+4KHQFCc48cbfxyrGvg5zWyDAJTUHtUSrJQTuMVNx8KTbiKIsxD5PW
	ZdYtQqyHAWGjSK7YrxPmQv4QhFV4OPmI=
X-Gm-Gg: ASbGncv26Q7SL6mMmsTc1vNacwCOy/wyFR7b8g0x+HBJMyVawqFPqx5U6ijlY5YkwIz
	8q2BdVwIKlm9arVLJvu7786wMAlsMXZIpfE8ufOG1qJR9AycQZN+FxGUYnDEGuxOs5LU6v2NiwK
	7qYNwJS0dMCFq+mgTJww0AVI/jfj57niWimm0jYMk+r9hWaIPillVrHOfI/93XiMez8+G7pALAa
	FKLo/G/JdyP59j+GMyl06eipvPSVn81QymaPQbE+2I+JlJGSGraKo81tAM=
X-Google-Smtp-Source: AGHT+IGex/SbzY5WvQlUFm9l/y3jFWxhhf/eHjkUryKurRFs4xn9j72sN6CHuSOEdvc6Uc4Aqfa+BvzQMAYWkiVLieA=
X-Received: by 2002:a05:6512:124b:b0:595:9d6b:1192 with SMTP id
 2adb3069b0e04-5959d6b131fmr107589e87.3.1763481344180; Tue, 18 Nov 2025
 07:55:44 -0800 (PST)
MIME-Version: 1.0
References: <f7475c0083bf4995f2ec4afa3aaf44b9676fd1ab.1756867760.git.mykola_kvach@epam.com>
 <0d0f4689-97e2-408f-91e4-dd59f47bdb95@xen.org> <CAGeoDV9zgfyHaHb5W6+T4F9Hjxv_R5wnGkcbwcN2xgRUhY+v2w@mail.gmail.com>
In-Reply-To: <CAGeoDV9zgfyHaHb5W6+T4F9Hjxv_R5wnGkcbwcN2xgRUhY+v2w@mail.gmail.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 18 Nov 2025 17:55:33 +0200
X-Gm-Features: AWmQ_blhoTtQAtqaA9niqb69pw1gLDTqhOP28V8vXXd7wyHph5nV6jcxbjoY7To
Message-ID: <CAGeoDV-qcfni8ihaU-L8E_e3ctd1A8mc2CQ4NfAunqFY37NiBw@mail.gmail.com>
Subject: Re: [PATCH] xen/arm: irq: Use appropriate priority for SGIs in setup_irq()
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Julien,

Gentle ping on this patch.

About two months ago I replied to your questions on the priority choice
and on the dynamic SGI use case (ffa_notif). Could you let me know
whether my explanation makes sense, and if you would like me to rework
the patch?

If you think the current approach is not acceptable, I am also happy to
drop or redesign it based on your guidance.

It would also be helpful to get feedback from other Arm maintainers.

Thanks,
Mykola

On Tue, Sep 16, 2025 at 1:19=E2=80=AFPM Mykola Kvach <xakep.amatop@gmail.co=
m> wrote:
>
> Hi Julien,
>
> Thank you for your review and the helpful comments.
> I appreciate your time and feedback.
>
> On Sat, Sep 13, 2025 at 1:01=E2=80=AFAM Julien Grall <julien@xen.org> wro=
te:
> >
> > Hi Mykola,
> >
> > On 03/09/2025 03:55, Mykola Kvach wrote:
> > > From: Mykola Kvach <mykola_kvach@epam.com>
> > >
> > > Use GIC_PRI_IPI priority for SGI interrupts instead of the generic
> > > GIC_PRI_IRQ priority in setup_irq().
> > >
> > > This change ensures that SGIs get the correct priority level when
> > > being set up for Xen's use, maintaining proper interrupt precedence
> > > in the system.
> > >
> > > The priority assignment now follows ARM GIC best practices:
> > > - SGIs (0-15): GIC_PRI_IPI (higher priority)
> > > - PPIs/SPIs (16+): GIC_PRI_IRQ (standard priority)
> >
> > Please provide a reference to the spec. But I don't follow why we shoul=
d
> > follow exactly what the spec suggest. This is up to us to decide what w=
e
> > want. Otherwise what's the point of having more than two priorities?
>
> To clarify, the GIC specification does not require SGIs to have higher
> priority than PPIs or SPIs. My reference to =E2=80=9Cbest practices=E2=80=
=9D is based on
> how Xen typically configures SGIs with higher priority during initializat=
ion.
> This is not a strict requirement, but it helps maintain interrupt precede=
nce
> in a way that aligns with established implementations.
>
> If needed, PPIs or SPIs could be assigned higher priority depending on
> system requirements.
>
> >
> > >
> > > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > > ---
> > >   xen/arch/arm/irq.c | 8 +++++++-
> > >   1 file changed, 7 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> > > index 02ca82c089..17c7ac92b5 100644
> > > --- a/xen/arch/arm/irq.c
> > > +++ b/xen/arch/arm/irq.c
> > > @@ -397,7 +397,13 @@ int setup_irq(unsigned int irq, unsigned int irq=
flags, struct irqaction *new)
> > AFAIK, we are not using setup_irq() to handle SGIs because they are all
> > static and always enabled. Are you planning to handle dynamic SGIs? If
> > yes, then can you provide more details?As far as I know, there can be a=
t least one =E2=80=9Cdynamic=E2=80=9D SGI in Xen.
>
> As far as I know, there is at least one =E2=80=9Cdynamic=E2=80=9D SGI in =
Xen. For
> example, see ffa_notif.c in the functions ffa_notif_init_interrupt
> and ffa_notif_init, which handle initialization of such SGIs.
>
> >
> > >       /* First time the IRQ is setup */
> > >       if ( disabled )
> > >       {
> > > -        gic_route_irq_to_xen(desc, GIC_PRI_IRQ);
> > > +        unsigned int prio =3D GIC_PRI_IRQ;
> > > +
> > > +        /* Use appropriate priority based on interrupt type */
> > > +        if (desc->irq < NR_GIC_SGI)
> > > +            prio =3D GIC_PRI_IPI;
> >
> > I am a bit split with this change. I feel static SGI (e.g. EVENT_CHECK,
> > CALL_FUNCTION) should have higher priority to the dynamic SGIs because
> > they are critical for Xen.
>
> That=E2=80=99s a good point. My intention was to follow the general appro=
ach of
> assigning higher priority to SGIs, as done during GIC initialization.
>
> >
> > Before making my mind, I would like to understand a bit more the use ca=
se.
> >
> > Cheers,
> >
> > --
> > Julien Grall
> >
>
> Best regards,
> Mykola


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 16:04:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 16:04:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165145.1491945 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLOCG-0005LM-MO; Tue, 18 Nov 2025 16:04:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165145.1491945; Tue, 18 Nov 2025 16: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 1vLOCG-0005LF-Iv; Tue, 18 Nov 2025 16:04:48 +0000
Received: by outflank-mailman (input) for mailman id 1165145;
 Tue, 18 Nov 2025 16:04: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=n9C8=52=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vLOCF-0005L9-Jb
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 16:04:47 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4d83169f-c498-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 17:04:46 +0100 (CET)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-37a5bc6b491so44720351fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 08:04: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: 4d83169f-c498-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763481886; x=1764086686; 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=aGmLsHwBq9lqotzSisRsukQM3cS3ykmHtuLNrAui7gU=;
        b=hyp4aMb0Ojm8kq3YK/KrQflWHhdEeG9Bt1ocIPQuq7hVzDUFWMGJWIrzI8b03wwjPp
         MTnVy268EN21JEyda4A20yrcDW+Y9bkqpb6lz1PwoItiGbxT6+N+XADcTTCFzdKX9esm
         IE12sHojY8DO+MHxLvBRwdMc5lC/HKin4xSOhfZwG9gHBhHAJ9x32c3SJQyPGKt+OrNE
         21fl/JOx3vbwzwMgARmUA2JliHZ1jcs2BFB9jSkD/8rLbiiDqqWJo2vhiKnPdw3E94l1
         oGYHldpw+2ShleK9f2xISQhKtM5nNsEH4V7cobyy6+QladmdRmsmt8OnuqY3YXwlFRpx
         mAfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763481886; x=1764086686;
        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=aGmLsHwBq9lqotzSisRsukQM3cS3ykmHtuLNrAui7gU=;
        b=bOJHbsRVEAHwAD3BlVZFhXbzhfT3v1DWSgx4qPAjjT2ow2OieuEre4+fbEA8aalCIF
         s1TvXqeK/UDoPDPC4gKPQ/Xu7eO3rjs8ECp62Oq1elNpOtDyfllkDQPG46IPvCyr0WH1
         T+DDW+t+Du/6YkMv7V838jVCiBbdoE71EhjVsvL/qFT4ZSrxOqSSfA1cCBL4LVZLUy+B
         soVGeNj8lkwaW3ogKxefN+L4OjGgv+Tr5sn6C7Zc+oek2sKOpOfWkDGn+N2kUZ1YYKkV
         MBM5aO2Ewlkm9Rd7Bu/oizzYbY0s4EuyGPHiXUtzVDyj5RCJzhHua/dINVT5Y2gEcGuL
         Rclg==
X-Gm-Message-State: AOJu0YzXMCMODaoi1f491My/FPodToht1xPvLzGFe05/ovUAEQUpfAA7
	6SPP8M938LlZza7JjmMPFr70Fhb/G4fSycerTrV5tmc0Wko/GeVb2cvWAfTjQJHxJtjic1Pl+M0
	4/EyWaGz67h4+mp3PfXUV6TCCetCkd4HIGOREySE=
X-Gm-Gg: ASbGnct3kL4JVrynfoIszu4vga+EoFi6WfW4Yg804qdLJsT/pBelLQqkaxNiYNzm4EY
	QMOKRYTYvYbSqUlWVxHZW/Imle4c8YnYKSfQyAdS6St+2xNUwVUbK/4jnieXHGWsfX1dumzgUjN
	MYbqevQLepNd6zdqpje7tuc0yP0nuOaKfIFAKLL07Z0khgL6842L/0ON3eIAb5tuV/XvTLpzTA0
	KX+MoL3aW73E4c95xYMju6T6BHH6uayVti19zzbI8g13CFHfLaBeKtS/nPxW2Z9fpRdBA==
X-Google-Smtp-Source: AGHT+IHKs04jtTfdYL7dP5c1ZYQzsK6Nxr5FMesPIrKOpR1pjsATUMWZ5WDDj/RL8stTk+7WHhXMwea9PGtIWVgwCBs=
X-Received: by 2002:a05:6512:108e:b0:594:35d5:f837 with SMTP id
 2adb3069b0e04-595841b49f7mr6018848e87.19.1763481885255; Tue, 18 Nov 2025
 08:04:45 -0800 (PST)
MIME-Version: 1.0
References: <e57133182b9bcecb519911c8b3f0d871955d6fef.1754540991.git.mykola_kvach@epam.com>
In-Reply-To: <e57133182b9bcecb519911c8b3f0d871955d6fef.1754540991.git.mykola_kvach@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 18 Nov 2025 18:04:32 +0200
X-Gm-Features: AWmQ_bk7OfQVqEH3IbZ0JrBlN97q4hQA45We3fWS8jmvZMy9l38GKJT0ttgmKd0
Message-ID: <CAGeoDV9_irT4Ggdtr0KfxoNfJwTLJ+XkFPX=-UY+XkPLcPDr+Q@mail.gmail.com>
Subject: Re: [PATCH v5] xen/char: implement suspend/resume calls for SCIF driver
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, 
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>, Mykola Kvach <mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi all,

Friendly ping on this series.

As far as I can see, all comments have been addressed and this series
already has the relevant Reviewed-by/Acked-by tags.

Is there anything else needed before this can be queued or merged?

Best regards,
Mykola

On Thu, Aug 7, 2025 at 8:16=E2=80=AFAM Mykola Kvach <xakep.amatop@gmail.com=
> wrote:
>
> From: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
>
> Implement suspend and resume callbacks for the SCIF UART driver,
> enabled when CONFIG_SYSTEM_SUSPEND is set. This allows proper
> handling of UART state across system suspend/resume cycles.
>
> Tested on Renesas R-Car H3 Starter Kit.
>
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> In patch v5, there are no changes at all;
> it was done just to trigger a review.
>
> In patch v4, enhance commit message, no functional changes
>
> In patch v2, I just added a CONFIG_SYSTEM_SUSPEND check around
> the suspend/resume functions in the SCIF driver.
> ---
>  xen/drivers/char/scif-uart.c | 40 ++++++++++++++++++++++++++++++++++--
>  1 file changed, 38 insertions(+), 2 deletions(-)
>
> diff --git a/xen/drivers/char/scif-uart.c b/xen/drivers/char/scif-uart.c
> index 757793ca45..888821a3b8 100644
> --- a/xen/drivers/char/scif-uart.c
> +++ b/xen/drivers/char/scif-uart.c
> @@ -139,9 +139,8 @@ static void scif_uart_interrupt(int irq, void *data)
>      }
>  }
>
> -static void __init scif_uart_init_preirq(struct serial_port *port)
> +static void scif_uart_disable(struct scif_uart *uart)
>  {
> -    struct scif_uart *uart =3D port->uart;
>      const struct port_params *params =3D uart->params;
>
>      /*
> @@ -155,6 +154,14 @@ static void __init scif_uart_init_preirq(struct seri=
al_port *port)
>
>      /* Reset TX/RX FIFOs */
>      scif_writew(uart, SCIF_SCFCR, SCFCR_RFRST | SCFCR_TFRST);
> +}
> +
> +static void scif_uart_init_preirq(struct serial_port *port)
> +{
> +    struct scif_uart *uart =3D port->uart;
> +    const struct port_params *params =3D uart->params;
> +
> +    scif_uart_disable(uart);
>
>      /* Clear all errors and flags */
>      scif_readw(uart, params->status_reg);
> @@ -271,6 +278,31 @@ static void scif_uart_stop_tx(struct serial_port *po=
rt)
>      scif_writew(uart, SCIF_SCSCR, scif_readw(uart, SCIF_SCSCR) & ~SCSCR_=
TIE);
>  }
>
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +
> +static void scif_uart_suspend(struct serial_port *port)
> +{
> +    struct scif_uart *uart =3D port->uart;
> +
> +    scif_uart_stop_tx(port);
> +    scif_uart_disable(uart);
> +}
> +
> +static void scif_uart_resume(struct serial_port *port)
> +{
> +    struct scif_uart *uart =3D port->uart;
> +    const struct port_params *params =3D uart->params;
> +    uint16_t ctrl;
> +
> +    scif_uart_init_preirq(port);
> +
> +    /* Enable TX/RX and Error Interrupts  */
> +    ctrl =3D scif_readw(uart, SCIF_SCSCR);
> +    scif_writew(uart, SCIF_SCSCR, ctrl | params->irq_flags);
> +}
> +
> +#endif /* CONFIG_SYSTEM_SUSPEND */
> +
>  static struct uart_driver __read_mostly scif_uart_driver =3D {
>      .init_preirq  =3D scif_uart_init_preirq,
>      .init_postirq =3D scif_uart_init_postirq,
> @@ -281,6 +313,10 @@ static struct uart_driver __read_mostly scif_uart_dr=
iver =3D {
>      .start_tx     =3D scif_uart_start_tx,
>      .stop_tx      =3D scif_uart_stop_tx,
>      .vuart_info   =3D scif_vuart_info,
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +    .suspend      =3D scif_uart_suspend,
> +    .resume       =3D scif_uart_resume,
> +#endif
>  };
>
>  static const struct dt_device_match scif_uart_dt_match[] __initconst =3D
> --
> 2.48.1
>


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 16:30:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 16:30:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165160.1491955 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLOar-0001OF-Ms; Tue, 18 Nov 2025 16:30:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165160.1491955; Tue, 18 Nov 2025 16:30: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 1vLOar-0001O8-KD; Tue, 18 Nov 2025 16:30:13 +0000
Received: by outflank-mailman (input) for mailman id 1165160;
 Tue, 18 Nov 2025 16:30: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=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLOaq-0001O2-A9
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 16:30:12 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d9d85df1-c49b-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 17:30:10 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-b75c7cb722aso154577166b.1
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 08:30: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
 a640c23a62f3a-b734fdac667sm1362564766b.58.2025.11.18.08.30.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 08:30: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: d9d85df1-c49b-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763483410; x=1764088210; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tm2Gtb2cGhkBggneTvSl8xUQ69TE8eI/em3VTKS3h6I=;
        b=FDASizaGN/97dQXBm7IuuPBUIDNIYmYZplah2neMrvT5+GcQcntoZ2I1oIwXpqsBD/
         9N/C0nG8n0U0Wg0yAR0m+erxk+2462NcHNn3SWYUm/sB0XlEjCwvxzIilr3IcyeMuG1n
         B9HfurZqbH2kde8UcmWGV487pDVQzXx5uV2Elwz7awDiSj/qEkd+PI75zIwcL4+BT/lj
         otPqtSQQSaEHYQX8MWU77/md7FegxOCjt3ahqWq6nYx9ODUm0Rwd26P64sCeuMGS91Lo
         rnHaBAjkOscv3mlt5njsMU46fYwTD19Bjc2mW/t3Xtjg5NvjFEToO2kuzW4ZRN32D1HL
         HpDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763483410; x=1764088210;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tm2Gtb2cGhkBggneTvSl8xUQ69TE8eI/em3VTKS3h6I=;
        b=Svruv5Htpq8D2niud7H08GrFbIwEELTBkYJFcgTyMa+V3rqEOHDXVjFB23tUYdogKl
         LTDTV0bCsiQN7VOqDNsRS85uVEl+kIeJ0dq/p0wrY2t+oKFKMuuyFWJ6p0F+kM4mHj64
         oyM5MfDV0BRv2ErpTtJEr68LWWCHV9NtgF0G5Dk13icceJhgDNt9NXAcX2UeInly9U15
         D9TzGAIP0fTQjKLXse6H3+QwacMQ38V9VbBZR60O3Xei5CiNrCloAidvXyJssDif2PxN
         E2n7wi6Ona+uv9AmHCBymWOY3a2H2cUMAYGlLaUjTlVkIdkh8nRJSIBLBA7J8POdythw
         Jvjg==
X-Forwarded-Encrypted: i=1; AJvYcCXGbFlzbQuhtgShwMI7PyFXwmHB1aNwxfJxuGerezcY4QAHVx5YUsIwtNVKgXbpJQcSC5q8ufNEnrQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxczP9ZIN56QFgSyCVH13qYjflWiunjnYN/LN0IDBftfzUAo2pw
	hgqYFwGCF0ugERlCcZeo1n6nyI3dsAloqIKFG5PgS29T6C75V5/gsgPMGSzYXZec5Q==
X-Gm-Gg: ASbGncvqCAqTZQJK9cyQN6Cqqc1b5v/3QkH+prK6lbQD91X5ZTe4Vkr2XEjasIF/TuI
	Mx3SYZbv4w5PuQKN/KASG2pLmdtYnrzb6EimUerRHgxeRTsRaq36zP+K6onNJXJ6n7d2qOvFc1g
	v4FqXqKxwOPC0oUWs5iqB0B+4GLiNqaMGaQWn78PELqOnXy7pHySqbfZP78OrkRfgzdea9v8P0H
	gPccZFNbTew1LVn5J1MmLPbFXZSt1cDt8nAotFEnQSo9DBEfVtq/93nVa5E87ZM3pDLWSaWc5VB
	Hk2LpgrPkt6fpudH8M+gyPiztFJz6Y7cpTFSere7izJOmqysjCUE7xDKWZaOLAiJ9OrNYo+lNC0
	oNthVwIuLHkMzmR7+W+Slwxt7wSMzfaaca2NusN9QvvukHtN8QTlRCi1SxsP8zquRaeL46mFlyz
	gbkoSUGW0nNGBv6/QdD4/lOQ7ZfLiowHUNsfTLnmB4NUk/Ppf9VFbFwWh9wJqG5WH5ZG1zFRzbl
	Va4dnqPUGiB/A==
X-Google-Smtp-Source: AGHT+IEi5NTzvklWbP9Qp8Uq+weaRmRwvt7aCKBb7lvD9vRI6rhJk8Z15M5Q4C6ta9nWTM7hpA6jpw==
X-Received: by 2002:a17:906:7304:b0:b72:a899:168d with SMTP id a640c23a62f3a-b73677edba0mr1731316666b.13.1763483409690;
        Tue, 18 Nov 2025 08:30:09 -0800 (PST)
Message-ID: <5da0c18a-cca3-4821-92f2-3a1588acea5c@suse.com>
Date: Tue, 18 Nov 2025 17:30:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 10/18] xen/riscv: implement p2m_set_range()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <d689c48582505b0dab6896b414d01d844d834bd5.1760974017.git.oleksii.kurochko@gmail.com>
 <cfe9da20-5680-4f42-92f6-f46350811380@suse.com>
 <3fc28006-4a03-4d95-8db3-71a7b3131f82@gmail.com>
 <31c69c86-46ba-4670-b265-10baa0001f85@suse.com>
 <6ddb0571-6c19-404b-813b-55c9ad0dd062@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: <6ddb0571-6c19-404b-813b-55c9ad0dd062@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.11.2025 16:28, Oleksii Kurochko wrote:
> 
> On 11/17/25 9:56 AM, Jan Beulich wrote:
>>>>> +#define P2M_MAX_ROOT_LEVEL 4
>>>>> +
>>>>> +#define P2M_DECLARE_OFFSETS(var, addr) \
>>>>> +    unsigned int var[P2M_MAX_ROOT_LEVEL] = {-1};\
>>>>> +    for ( unsigned int i = 0; i <= gstage_root_level; i++ ) \
>>>>> +        var[i] = calc_offset(i, addr);
>>>> This surely is more than just "declare", and it's dealing with all levels no
>>>> matter whether you actually will use all offsets.
>>> I will rename|P2M_DECLARE_OFFSETS| to|P2M_BUILD_LEVEL_OFFSETS()|.
>>>
>>> But how can I know which offset I will actually need to use?
>>> If we take the following loop as an example:
>>>     |for( level = P2M_ROOT_LEVEL; level > target; level-- ) { ||/* ||* 
>>> Don't try to allocate intermediate page tables if the mapping ||* is 
>>> about to be removed. ||*/ ||rc = p2m_next_level(p2m, 
>>> !removing_mapping, ||level, &table, offsets[level]); ||... ||} |It 
>>> walks from|P2M_ROOT_LEVEL| down to|target|, where|target| is determined at runtime.
>>>
>>> If you mean that, for example, when the G-stage mode is Sv39, there is no need to allocate
>>> an array with 4 entries (or 5 entries if we consider Sv57, so P2M_MAX_ROOT_LEVEL should be
>>> updated), because Sv39 only uses 3 page table levels â€” then yes, in theory it could be
>>> smaller. But I don't think it is a real issue if the|offsets[]| array on the stack has a
>>> few extra unused entries.
>>>
>>> If preferred, Icould allocate the array dynamically based on|gstage_root_level|.
>>> Would that be better?
>> Having a few unused entries isn't a big deal imo. What I'm not happy with here is
>> that you may_initialize_ more entries than actually needed. I have no good
>> suggestion within the conceptual framework you use for page walking (the same
>> issue iirc exists in host page table walks, just that the calculations there are
>> cheaper).
> 
> The loop inside|P2M_DECLARE_OFFSETS()| uses|gstage_root_level|, so only the entries that
> are actually going to be used are initialized.
> 
> You probably mean that itâ€™s possible we donâ€™t need to walk all the tables because a
> leaf page-table entry appears earlier than the L0 page table for some gfns?

Yes.

> IMO, itâ€™s not
> really a big deal, because at worst we just spend some time calculating something that
> isnâ€™t actually needed, but considering that it will be just extra 2 calls in the worst case
> (when mapping is 1g, for no reason we calculated offsets for L1 and L0) of calc_offset()
> it won't affect performance too much.

Well, it's your call in the end.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 16:38:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 16:38:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165171.1491964 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLOil-0002Gk-E8; Tue, 18 Nov 2025 16:38:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165171.1491964; Tue, 18 Nov 2025 16:38:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLOil-0002Gd-Be; Tue, 18 Nov 2025 16:38:23 +0000
Received: by outflank-mailman (input) for mailman id 1165171;
 Tue, 18 Nov 2025 16:38:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YPWA=52=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vLOik-0002GX-6i
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 16:38: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 fb290eaf-c49c-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 17:38:16 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA0PR03MB5641.namprd03.prod.outlook.com (2603:10b6:806:b0::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Tue, 18 Nov
 2025 16:38:13 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.009; Tue, 18 Nov 2025
 16:38:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb290eaf-c49c-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HvLtdhn1JpEu+SFe5+d8JFwWkeFXRAfeh1awrROCRvQvJulk0YkdvE6ou4WU59U41HrwctWEO22Gw5c5DE5oU3e6Fe3ZjpQ5kZ4Ki3PVCSfyOEXMGfKKgow69KeYOdOCQNnzPeKVB4ZOo4wZF2dsaqSwOIEizZpgeINAW9huReVNpIUii2G29D8x+w4ygJl2YsAJFaEdBTE4VZcLJ73M+nySgQsuZ50o63vI24UihpwGTWwBmM7dvcHUdRFhY82lFFsEFdH7LvJcZvMdqA0g/uBiL85DFH2dc0CFqv5o4McKpF6kgWI+bIF3xkxljpD9AdpPvIPv/HrB8WNqxaQ+Yw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+LzYLrMVTikP/lipnUx0Clcv3W1fH3EHtSQ9Sjmu3uo=;
 b=kPzt7J8FD2TaefgXa/PvvEK1OnUfIi/JDB6MFYnVZA/z3ZxZhFwt8ArgxpMtlBSycFB/+O1Y/DowMzRe+vggu87xMaLSuUxS3QUvRWjfBkJJq1Tz1bESOKfbIoZLuMyt1nVk3jiZdKxe6liPJGQ7OlFj4wd7OhXto234iagbAfoXlR4QytN969wbWC55tsMLkSFso3E+0uxmv6QUxBiaQ+G7Bw6BUv81DzQXgdCV0HWwVr5B1jfT3pvw1voxn98A15HZ1x8ZFP53TMOmblSFQrWGDidylnXQ6jlraRxHVjYhnYYvqnvqLiYqfONsb4m/iTgAw69qc/CLB5HR7UVv2w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+LzYLrMVTikP/lipnUx0Clcv3W1fH3EHtSQ9Sjmu3uo=;
 b=Fkm0yPg1uPozMFw5XPBXVZmjksoX8qsmTyjrFwLUEcyrjAUVZ+1qeI6Z/A2UWTo097p67CUw+eG1Fg0LwIPOlIoMLOysJUfr0sIgujqMGNh2IdiP8jSNbbu+GXr98MNibOzLjkALsX8nDDbBCjnEiZ2f7BPM4uSlx5vPpHsMdtc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <828b87a8-9521-40c5-95ff-f46e55fd5f71@citrix.com>
Date: Tue, 18 Nov 2025 16:38:11 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/8] x86: rename ARAT feature flag
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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
 <bd4f2601-a2fc-4c58-b1a9-3b2c40076eab@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <bd4f2601-a2fc-4c58-b1a9-3b2c40076eab@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0076.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2bd::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_|SA0PR03MB5641:EE_
X-MS-Office365-Filtering-Correlation-Id: 42ce9545-4720-44e8-f23a-08de26c0de25
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?dTZ3QTA0b1JhVzA5Nkc5VDF1ZmZmb0d1ZkdBTDl0bDl4MHRNa1IrT2JQc0dT?=
 =?utf-8?B?MVA4UXNuRWhwRUJWQklwZ1dGTVRhYlVyaHQ3dFF6bDZia2dVQ2NJVWZnZTFQ?=
 =?utf-8?B?YTdsMTNENlVYemJHWWZTR0dsYmQxb3F3TTd6TkRaQkJ3QTRTS3cvOGxCaUZC?=
 =?utf-8?B?VkxjM09RTzNjR1lDbHdQUitXL3BBTi9CWndPNndXakVmR0s2MkhIQW4vY2dM?=
 =?utf-8?B?c1JQakZRWnZJUXcrbkR6SVhJVWVTVzBIZVBMRnVld2daQjYzZi9JTEk0SzBu?=
 =?utf-8?B?aUwvZzRXbDBvQnIySmFheStkMnBucUhxN004WTErNTFwVjYyMDJWZThhYjFY?=
 =?utf-8?B?bDRyemtnME9BeDFOWU83azhpQ1RIUTdDNHNMbk9HUE1qOHlKelI0cklzZk1l?=
 =?utf-8?B?Vnk1RlNmNnAzOGxrK0lUWVplSzVUK2JwbnEzbGZ3VmxxUmI1MXQ1eGQ2d0cv?=
 =?utf-8?B?dE5xVnQxZ0xpN1Y4R3pxMDR6NmJqbUVMWUdCU2szbm1ZeVNFb3A4TTFQWDMz?=
 =?utf-8?B?SEoxUEdOblNEN0k5SHZVM3VCZHNNSmVyOHQwa09sdVFodUxqVVhtVFhmT3NU?=
 =?utf-8?B?VjBNL1B4NU5UOElOWGpEYVpuR3IxMWxnYUhkcFM5alVtTmJxNmRacG16ZmJy?=
 =?utf-8?B?KzNCUmVJRnluU21Jek85MXRPS3RQbVpiaHg0TGJOTVZFc3NjNWFZWWx3cm1F?=
 =?utf-8?B?ZkNYU2dEM3NabmpGK2t5VXZCRDZUVGhhQjdKYlJtY1g0WkxSb25VWk43NklF?=
 =?utf-8?B?eDIxMW9mMHZhREQycENkNVUySXdTSlJiejdmNzdTN0ZSb01FVnlRdGRxdXhw?=
 =?utf-8?B?TFBHQk1PejlCaVpvUVdEa2tBR29RVkcxQjUzZDdpOEJUbitCbXl6a3JXRkY2?=
 =?utf-8?B?UE9UMW9vK01GbTVYaCtiekdtQ1d1ZVRNVENFSmZ2ZC9wamU1MkNVc0d1bGE3?=
 =?utf-8?B?UWlCTStsMTNGT2dMVlZIczhNRmNJa3dZSlViekw2RUpQVUNEY2V5YmVBQlZN?=
 =?utf-8?B?V28rdERHMHZUbkFxWFg4ajdKcDRVcGlPWkF0KzBvdzYycGVSL0toSEdmMzRH?=
 =?utf-8?B?RVpPbHNYSStzR2Nockp6VTUxVDJwcjMyQzlaOFZhWk1zMDNnVVl1dkkwWnVV?=
 =?utf-8?B?NmUwZldKamZXTjNBU0h1MTRCVGV6TFRTVVdSNXphczF3ZlN1b2QrNkhmR0Fy?=
 =?utf-8?B?UVQ3VGNuWU5YTi91bForQ3B2SEdkRk95a1hwcHh3bW4vRHhMVlR5SHo3VFdK?=
 =?utf-8?B?UmtWUzNvQVhsRFIyQTh1SHBoc0I0R1lJKzZlNlVRanl3bWZDNHo4RXVMU0l6?=
 =?utf-8?B?cE9uZTZ2dXNxR0NJZWVGSTBSR0RyQzYvbjdueUx4Z1piN3RKYUxOTkhIRllV?=
 =?utf-8?B?NzVra0wxYkZ6eE9YY0h3dytDaDIzRU5WSWs0RUtkM210MFRHSFVjYUdFZzVI?=
 =?utf-8?B?Y2hDaEZVTDJvYkgxaENhRmZkZ2U3eW0yUWJLVVFhdmMyS0ZvRjJlVlV1Y3JF?=
 =?utf-8?B?UXFXazNGQ2FFemgvQ05WWDRzdEs2cERGMzN0TnJEWEg5L0FzVnBwVlRuN0hj?=
 =?utf-8?B?THY0ZlZuKzVUOVk1STFPeVVWSFdiSzhScjFpbDIvSWRrSms0R0NjeUw0bFBp?=
 =?utf-8?B?b05Cdk8wYW1tcXNPbW5DN2JkY1BIVjNsYTNlYlhtdWRTOTVhRDRTdTdOa0hN?=
 =?utf-8?B?alM3V0ZlVmVWVE0rL2FCZDh1WDBPdnlGbjJ3cmlRZ2oxNWJiZlM5N2VGVkhT?=
 =?utf-8?B?UEJLeFViVEhkRzFkc3B4WVdSSnAvSFAzTEdCK3h3QWF1TFNJcWNsM0Y2ampn?=
 =?utf-8?B?dmdZVnVyeDZCeTZBUDl2bXNxZ1lPL29GZ2xsZG0rQlBJUWJXeWdmKzVya0Nv?=
 =?utf-8?B?b3FzZ1c2VUFGSU9FOHRVemRtR1hTVWxFSjloZmM1eVRSTzJudjB2YlFNRmlU?=
 =?utf-8?Q?k6YZlaGfkTrvKtDWW8f/T73BmY62KQ6y?=
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?alJ3L3ZBRDl0dGVJbFc4SVFDQXNuYjYxQU1TT05QbXJnYS9QdVVVM0lvZ2d4?=
 =?utf-8?B?WUtRUm9UYnpvbEtrdDhWaDVVMUdFQ0h6QnlDS0k4dmVMSDVQMVByKzJDU2dY?=
 =?utf-8?B?SmxqcHZiL2Y1TFEyMzB4Mi9MMkdoSGR4Rm82SXU0ZWt5TWpIKzhxbFRrM3Vz?=
 =?utf-8?B?VnRHRFpVTDgzRU5JVGVwMFVFSk0rYUdleVpycGwrT3EvYVN4R0o4aUovQjFw?=
 =?utf-8?B?NGtNeGdmYldSUG40QjFyV1JwQ1hYZ3ZjajBuQjRWM1RNNWt6eWY1N3kvczhn?=
 =?utf-8?B?YVdHekkzczJ2SS9kdDBzajI2VXBDSlVyR2NwZE5wQjBXL2t6blZ1U1VLR0RD?=
 =?utf-8?B?TUR2YXpwM3Z2Mno5QTYzWjhMMUNSbDNhUHdhcmJxZ0pzdGF0ZGMzZURvT2w4?=
 =?utf-8?B?TmlkVklPZU5YUUdMV0RIb0F2TSsyRFpNWnRBUmwvajRVM0dJNnRqTGkydUFM?=
 =?utf-8?B?aCtHZitLWWt3aVdmdEl1T3lBa3E5R3h4Y1FnNURKR2orRzVIc2Z5MHpmTkRt?=
 =?utf-8?B?R1dBZGpsbDBKdlIvUjlQTDJTZmF3SVV2WTQra0Y1SEk5R3pOZk9PQkNTakhH?=
 =?utf-8?B?TFB0OFNCNFI4TWU5TS9sMmVMdzJibzdZa0tPd0dRZXhGVHhLSVd2ODBTU0ty?=
 =?utf-8?B?NzJKVERnQlVEeXNLMmZhWHpYMGZwT0N6T1h5S0xKanE1K1Q0dE1rcTQzeW9s?=
 =?utf-8?B?cnpPdmZMVEsvT29BR2dvbi9CVnprUnRNK0R0WGNtMW9DR3ZESXhTWjlsNzE5?=
 =?utf-8?B?dzVDUjJQblJKbjdlL090OXZabExIbmtuYmI2MVZEV3dpWEFXN01EdFZhTjdm?=
 =?utf-8?B?S21BN2tIbmNpV2dqUjFUWjN4N3k4N1I3SXR4NGk2eC9EZXkxaFlNZDFZdFB1?=
 =?utf-8?B?M1c0U1RnR213RWR6ajdjTjJJVG8yWFJYcmYvRUtNN2IwRm52UDVRQ0Q2YXhF?=
 =?utf-8?B?d25JWmlPYkxCMW5kUm9JcG9yckN1dFZKWVZ4RkVZZXB4V0R0SU1MTVJBRlFm?=
 =?utf-8?B?Zkd6alVyNGtMUlpqOWUwWUdGY3paY0xKbHpFQVlIZkRvUE9kemtybWZObGRX?=
 =?utf-8?B?aW13M1ZSd1FpOWpLem15ZFBTYkNUZ0hBOFoxNlhFRm1qRjdZSkNBWDNHRGdx?=
 =?utf-8?B?a2VGUFM5R1Y2R2FZT3M1Y1pVWGIvazhkQUVZRWl5ZzNSb3VFa0M3QStJc2du?=
 =?utf-8?B?dXNFZ3VXRTRyZHdpTTlaL3E3RG9OeVBwTVdQUmRwK3dITDZ2YUplOFl5bjYz?=
 =?utf-8?B?eGFpQU9mMUxIeUtJeThvTWhuRHIxb1ZFMVJScTJESmd5TytNYW9TNDUvNUVt?=
 =?utf-8?B?U0V5Z1ZoUW1IWW5PeUMxbG9JRGVjaVFqbFN3Q1FZdmFYMEVkZ3dtMmU1ZGE0?=
 =?utf-8?B?R2Z3N3p5QVNCeDV2WDFSK0wwTDlHdWR0aitlTzN3WmQzZEorZ0lNSUI4eCtz?=
 =?utf-8?B?Y0Jjcm9mZkJ2aGNYckliSjROM2pEU0c0L0k3SVY5YVV3bER5TWU0RzZpZzd4?=
 =?utf-8?B?cmU2Q0pyajhqN2RxbFRFdisyYVl6YW1Bak5taW92a2NCQjd1bTBvaXpQYmZ5?=
 =?utf-8?B?TjZVWUp0Ukl5SjlBMGVVZTUzVzdibFFVdVpLNXFoV3J1RHZicW5ab1ZjQS9n?=
 =?utf-8?B?bldQcklOSkhxTlg0SDh5MWE1VklIbENMS3hISDBRYWw2TGtucFFmT1NkU2Nv?=
 =?utf-8?B?OVNPSjgraE9RcVB6ZUVhaW5sNHRrWllaaTQwNTRUdEZSUUt4bDZ4NXBqUmVF?=
 =?utf-8?B?ZmZid2g0d1dETWtEUE1zdlZURU1QYUh4cEwwc1daOSt3NWpoc09DbVFlK1dU?=
 =?utf-8?B?eS9NK2twc2ZUU2FndXFUR2RaRkJYQmhrVEl4ZDlrMWQzQXpST3hYR0Y4eW1J?=
 =?utf-8?B?VVhzQk1qM0wzY0U0US9hUVVsamtvT2NZaVJtM1c5cE8wczFIL3plUGp1cC9l?=
 =?utf-8?B?d2Z3c09BaEhYZ0FGQUExc2hXaVFTQ3NEMHVWYXE2UUlBcjU3eW5nQ09ZWkk0?=
 =?utf-8?B?MC9ia1dHMXpkb3Y0a0ZHUG9xQ0dQM0k1ZzdJUkp0WEpRYUFaVWg0aWp5OFVJ?=
 =?utf-8?B?V2tsZ1VUZjlqUmFJRmtYOWE4Z0paWjRDUWN2L1VYTXNISXRHbmVlK3FjcDlP?=
 =?utf-8?B?NVErRlkxdFNwc3NLSmE1djh4cDMralJIMXpkNk4zSG9ZMk5ybE9yUFUvbzdj?=
 =?utf-8?B?Nnc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 42ce9545-4720-44e8-f23a-08de26c0de25
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 16:38:13.7504
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 38HZujmDKU1p5R8ZGVN/aLzTOtQ5f0qpVzQ1Eh9vHRMELYxKJZ1XWadE200mKPhaJVIDarEF8vu/UKgdjPcg8RkcaillRR0Ggjk6yiHcI9E=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR03MB5641

On 18/11/2025 3:07 pm, Jan Beulich wrote:
> Add a XEN infix, to properly distinguish it from the CPUID feature flag
> (leaf 6 EAX bit 2).
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Question is whether we still need opt_arat (and the command line option),
> or whether we could go directly from the CPUID bit (overriding it to on
> for older AMD [and Hygon?] CPUs). Or whether to have opt_arat affect the
> (host) CPU policy directly.

I have no particular love for opt_arat.Â  I added it when there was no
way to force a system to fall back to an older timer.

As long as we've got some way of configuring the exact timer to, I'm not
fussed about keeping the top level boolean.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 16:47:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 16:47:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165183.1491975 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLOrl-00041i-71; Tue, 18 Nov 2025 16:47:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165183.1491975; Tue, 18 Nov 2025 16:47: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 1vLOrl-00041b-4P; Tue, 18 Nov 2025 16:47:41 +0000
Received: by outflank-mailman (input) for mailman id 1165183;
 Tue, 18 Nov 2025 16:47: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=5/QT=52=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vLOrk-00041S-1x
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 16:47: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 48002e30-c49e-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 17:47:34 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4779cc419b2so34902705e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 08:47:34 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42b53f0b894sm34395528f8f.26.2025.11.18.08.47.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 18 Nov 2025 08:47: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: 48002e30-c49e-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1763484453; x=1764089253; 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=opBefqOvPnk2512WwKaoeMgeEnOduJAcaoE2iVpx1uM=;
        b=ICmAfd05EbvsOhA0pIxAapAFj3daZeacFfdmTcJbWgpz8EpSv34rneOwFmu57J53LK
         EDh8Ia8JOAM+6BVeLosbnEXQKC2dNPGhaDvquDeIH89xRuxoG0WNOtN+6ilIIGTC3HqC
         tn88uLMfSxs+UTwhKRxsWaFDiSw4AKWVNHE+c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763484453; x=1764089253;
        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=opBefqOvPnk2512WwKaoeMgeEnOduJAcaoE2iVpx1uM=;
        b=DKYyLQcgh0kom9QjxzRvjH5KT2zLFUmPE5gRNQcZUDJvO4oJCs2xPmZ84WCXuafjnZ
         KwZiiGEZW57XegTW/w1BUMbsj6yrouLgFQ+9bvx23d7NLtAPF4BgvkTQFWs8IkcLmbFb
         ZQbC4dAMLNoatK4vSjcP9rQ/u6YcU1DKoMSUcbyK2YdWnJrOtn80ihe+jGqL5lyqnoYZ
         lqom5KijhISnKkvXgKv/p7lnQtgmu6NCDXEf1yVnyjQuYW48Dy8Qn7QQPPBBxvIug+HO
         tCrgLSpBxEAOAw0AeJxA1jh2IP9TvJ2qQqYZdIg0c0IRMmUDYN5b4CRBJDj7GQnuVrZO
         QQJA==
X-Gm-Message-State: AOJu0YwqCoCx7SQCFA0DPujTNzLKHQcxRy0ZafwRIa7WH2UTFfCZ9hOY
	SulNDNEEY6sMxvgt6VwKtnNLeBf30Tl/z5mmea6WE9CzmhHWmUuVBXXR1CcahnDjVp939ogS3E9
	7eFaoLks=
X-Gm-Gg: ASbGncvEDSWFjxBG+/tV1XtRkNyxu7P9b5mRu5hLtGYRY0x6m7YFLXc/CPABJ/egSpt
	LfX/yGgfNs/IhajJRl45aXEL+xVimj7yHicvgrhvpFA6vPZXoUuH2ckq/zhTfPJa/cODmKKbWIT
	a8yW3vKqkKAGLVEUd7HC2YBQdJrm34/4PyQgXroDCyU11M4eAwivks+WcYJXqafk6Qnu6yvwGoW
	B2/lUG9SDJ5AgvfWD5IMJZKa+ryAIxwUlAJkR+0wdRIHrpw75by0yGvKZgT5W/7omxpFFHu2iB/
	TlEKXnUU3iRwiQENTzMiygIS9GpmY+rbp6aDa4koKIl0BIRa71viF5i1wFdiWoPkkWbQKBvPTTm
	zKWHSU2Wh++/O180MykZQqSSKEf4dRP3o6egIaG+jSt+LU+S+/OCzrkZLP5rzgQFRbQFw8jqq6A
	Qkazu0C1Ip+XlBlIcBxBRYZxAqsTCGHrN7OlD67MfoIhrMBOUFwmM=
X-Google-Smtp-Source: AGHT+IEt0iMcG7ZpWrVTednYRvUWptGRHq6JSzCMojGt/bH7ekt57a95yV7swAS+/OcX+GnfCTu/9g==
X-Received: by 2002:a05:600c:4744:b0:46e:48fd:a1a9 with SMTP id 5b1f17b1804b1-4778fea8ab2mr172918355e9.33.1763484453249;
        Tue, 18 Nov 2025 08:47:33 -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>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH] CHANGELOG.md: Set release date for 4.21
Date: Tue, 18 Nov 2025 16:47:30 +0000
Message-Id: <20251118164730.475344-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 CHANGELOG.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index c9932a2af077..adaad5ee8923 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,7 +12,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 
 ### Removed
 
-## [4.21.0 UNRELEASED](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=staging) - TBD
+## [4.21.0](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.21.0) - 2025-11-19
 
 ### Changed
  - The minimum toolchain requirements have increased for some architectures:

base-commit: 07e57af2b4715a9d088781b06c4f97c7d9f25b19
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 16:50:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 16:50:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165193.1491984 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLOuT-0005de-J0; Tue, 18 Nov 2025 16:50:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165193.1491984; Tue, 18 Nov 2025 16: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 1vLOuT-0005dX-GU; Tue, 18 Nov 2025 16:50:29 +0000
Received: by outflank-mailman (input) for mailman id 1165193;
 Tue, 18 Nov 2025 16:50: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=5/QT=52=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vLOuS-0005dM-9o
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 16:50:28 +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 ae6c23fd-c49e-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 17:50:26 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4777771ed1aso40156045e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 08:50:26 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42b53f203afsm33752427f8f.39.2025.11.18.08.50.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 18 Nov 2025 08: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: ae6c23fd-c49e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1763484625; x=1764089425; 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=ucoPHXHtoUxVGw2y8SYQNYXWmtCikp7TefnmB/In0Ts=;
        b=GFhdpBrx9OhqH40VTzV57FzLJ4CBCHOpk287TWImIaahpqmn5JQJtWqQ5FIsCQb8TG
         /lPxvKg6NLwqp4HdonDhBOkb12L5ZO3d5i3I3zKGQ51xFYZhcwjOPb9sfwAEW/zC6nyq
         UHkhUy6luhzwiB9r3ukiLtXMjuvZAjArt9v3s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763484625; x=1764089425;
        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=ucoPHXHtoUxVGw2y8SYQNYXWmtCikp7TefnmB/In0Ts=;
        b=pKJFZw3Q42/qDqELF8YJBcbOU7V49g1CTLxMWM3NWtmc4VMnWBImVnmRrklFfp4xAq
         Z6G1z/CWFgkr3HgQ5HtLpNDqjIxG2duaZzHS8kkoWfH0SJRCfAx/fSlLC1FrSOy93KA4
         Y8elJsOMvJC8aVhpsIYT2t5R1t/+HWhYsLDnDzASvzcFc8HyOjtWU2fc8Bgj4ip3VLXO
         XjpPUYkKHpwuxKKFi93CTqVgcoKYtcQNLPzMLxNoIb35iQ3y07IiYqAh5gtu92Uflmth
         pevsMTVAvnye5nap/rAiYGE4WXfo5vyKAmRD++z5x1XpoTr4O0IsDrw/i1qMSr3ER1KP
         3Q1A==
X-Gm-Message-State: AOJu0YyCWqZrkKQWOXhKdYzX4aM2HSMiw0iKLnI7y98ngFskhpzaqz/s
	B+9UukJDSCX9Qy4GP57gIIN/7o7pPSM3ZtCjIaIXoPZei+eT2e+nlPQplTFMTVoUBThsIlF9lvt
	NFv703aU=
X-Gm-Gg: ASbGncvv23G9u842SEJKFnaJI5jjxERAioCYrmECs2jGZU5xv01GyNDReruCQPI9zs5
	5Yf66p/CJlhxb4duqhwg2dj0kgdvA7mCIDKKnTD6dyMoBGTXo5RIaPaDlDLEjhrRXOlzES5LMdG
	HbhFr6KfF2n/hkCMWutg5GkFWJxUG2svvNoKjAQqohRDy2MUJSwnYmJ5RONSOLdry3eflDkHBpD
	6hmj9iM1bJ4dxJ8DT0l4blshZnuFbMfOMd/0cLw2SbrL167lVxtWZ9fUcK2jKGdCnB6GlZcXxHP
	fO3Z+YZumDGnSL6bWEAGSKfjyMvR/ABKBw7QJNsc0NLYlybZ5DF3/uJF8aB+plVbp+7uksiA43j
	XYIOBzjLjGg4Q43fw/4c9CnN9sqce9uGg+Fc7T7q71+chA/WvRoQyL5j5HECPArmKrfSTyBHNXI
	jcDT/jJTeTs3sU3dQ0qjCpRvwO4q5cscEc+YkP7ojwxb3EgUJ+V2aqsyGUSLxWzkz7QC0+R2Is5
	CS1RvYnfRU=
X-Google-Smtp-Source: AGHT+IFPpnTlgSd5Ri1cMDvNcvPfBBLE/+MWox1M6eM5WMq7tmmyEcyQgQWpT1KXkVWPXmxWGcFF6w==
X-Received: by 2002:a05:600c:a43:b0:46e:396b:f5ae with SMTP id 5b1f17b1804b1-4778fe6a415mr191818175e9.16.1763484624980;
        Tue, 18 Nov 2025 08:50:24 -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>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH for-4.21] SUPPORT.md: Define support lifetime
Date: Tue, 18 Nov 2025 16:50:22 +0000
Message-Id: <20251118165022.476308-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 SUPPORT.md | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/SUPPORT.md b/SUPPORT.md
index 491f9ecd1bbb..3099225c77f4 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -9,13 +9,13 @@ for the definitions of the support status levels etc.
 
 # Release Support
 
-    Xen-Version: 4.21-rc
-    Initial-Release: n/a
-    Supported-Until: TBD
-    Security-Support-Until: Unreleased - not yet security-supported
+    Xen-Version: 4.21
+    Initial-Release: 2025-11-19
+    Supported-Until: 2027-05-19
+    Security-Support-Until: 2028-11-19
 
 Release Notes
-: <a href="https://wiki.xenproject.org/wiki/Xen_Project_X.YY_Release_Notes">RN</a>
+: <a href="https://wiki.xenproject.org/wiki/Xen_Project_4.21_Release_Notes">RN</a>
 
 # Feature Support
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 16:54:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 16:54:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165209.1491995 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLOxv-0006d9-4B; Tue, 18 Nov 2025 16:54:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165209.1491995; Tue, 18 Nov 2025 16:54: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 1vLOxv-0006d2-15; Tue, 18 Nov 2025 16:54:03 +0000
Received: by outflank-mailman (input) for mailman id 1165209;
 Tue, 18 Nov 2025 16:54: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=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLOxu-0006cv-IG
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 16:54:02 +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 2e1dd83a-c49f-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 17:54:00 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-6431b0a1948so10128387a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 08:54: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
 a640c23a62f3a-b734fad43dfsm1394125566b.20.2025.11.18.08.53.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 08:53: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: 2e1dd83a-c49f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763484840; x=1764089640; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MxMe46qWD6ZN/K6B9MwEFXrhgMmccQiQCLHBui5UjoI=;
        b=NvWsKGX5vB9VUiwEdBywXeBndcyXf4PWGc1iKBOTmLffYZklniM5gB3EP1xITUXQ8J
         H7D8nzRJt+N+7KTKHGv9ajXOgAKbS7mVx9tPYJ8F60XUWcVOvcYOInVVrnyW3j5hhpXB
         xPWnhmGQQaZlATN5zDFMLWLnE07QRWfRq23fXFG7v+gqmyk5Rhi3o2EdwkSRGIwpIIrL
         7LW4XTI8IDZVrB0mFF8BEpwFymmgCAe6cNPOlw8mxwTt8OlOXo+7F8adPT1//vuoQkvG
         GTF+BwtNwH5aDdkKbzpjX7dA2FEbZ0TnEdQ1fqKKGeATDwgy+//ayKMa4hXoXfI72P/t
         jetw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763484840; x=1764089640;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MxMe46qWD6ZN/K6B9MwEFXrhgMmccQiQCLHBui5UjoI=;
        b=ldKAVfwY6Bn1xj3iweHyE32EZWAdlt1n/h2lJ/WrjTmkkiJQbaVSqhLcfLM0EvhGNA
         1WlAtEnjqDYbqwUBsJmSWP7fjmil7RUM6NaQL1EQCY524IoSz18nrs84QDE1gsHrICOS
         DogGX6dud7SPUme08rplskbcshRvFd9gqgHtUGPR97xIGONrKGli64/kYU4bnMKNgNck
         nQmkKbp26MzGTeEIvzcH4IBglU3IBEwHa45zQfBbfBVbK8QHmuhMGwU8oAygp0Yqvl7H
         j8YTuOXrddUyoP2xQ1eCpggStTbTDgHGWRDG6K+RrzdS3hawN2EjKd8gmZj9Alxfi1uI
         4g5A==
X-Forwarded-Encrypted: i=1; AJvYcCXGvgeKW1EwyUWOAC3mdGlwqLXWNbdFG+bVAxi4oll4xHCzBkZUmDerfIutyE0+6OFZ5CtaKD5lKCU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YywyYVa39D8iulVFj8QijWWVrdHk8B84FtZ2q2fA/zRSv0FeSXb
	ELZgcPG/Lf6GE8QIls6ki/1TGxpuiPbXjgPRHKP1yYuNhtj+qzEg2su+G+9FZCDGxQ==
X-Gm-Gg: ASbGncs7yfgNBIdyqBdUs3qjle4+qE0zcT/Iiqu3aDi1RMjCnFPuBwHCiTorcSVF0B0
	2PpEzGWT8AyO3xJ+KLZ4o7HWvKYuLwhqD9KqkL8O5A0nAx+Lq8PofHDn0NJKJzWZOulJp8gdTZu
	SuzOlrzYjZzV63Fp4J42w1EAYbUNqyaS2RFPGhuiNs7OWano94fUxX+yqL/R8Nfg9Lei/6pjy70
	NUHWrBDZ3jefLtrqlC3EsT/dfXooETni3H5zJYhHp+GDsrpZ3RJPTwsw7kelGhLfVB5ZT//j1H2
	/6YdrI3tGLTs5PZXaLuVNXTfnBW/HrFuD3lsSnMa4MYFf69g87+T9pmoezMKETKbAwsBvKTPoEv
	Yx1F5GG9L+Q5207TLmJB7ya2+sGhRKzNRYouSv/hGnlNqEQisgiutfjib6KexXz5qUqBKF01ic4
	tJmRE+07uviFkax6QtdLJp3ytRcMYGpCerarWm/2b6zcrhvrwulSTNZfsuR4Ze24iO
X-Google-Smtp-Source: AGHT+IGh5nkSDGrxftaeDOlHn+vNVAVaaXJLI8pxqLTrBauRHhWdq+z8N/6rff8dNd/iFSiTCd1zbg==
X-Received: by 2002:a17:907:7f8a:b0:b76:277b:9a58 with SMTP id a640c23a62f3a-b76277ba172mr274700666b.9.1763484839705;
        Tue, 18 Nov 2025 08:53:59 -0800 (PST)
Message-ID: <b3e43204-6555-49ec-8ae1-8c54e91b432c@suse.com>
Date: Tue, 18 Nov 2025 17:53:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/8] x86/cpu-policy: define bits of leaf 6
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
 <b59c0994-6bb2-4506-88ec-4ea0f3b6c311@suse.com>
 <ab1dc276-2753-4a9b-932b-6cce3ee2b58a@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: <ab1dc276-2753-4a9b-932b-6cce3ee2b58a@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.11.2025 16:30, Andrew Cooper wrote:
> On 18/11/2025 3:06 pm, Jan Beulich wrote:
>> --- a/xen/include/xen/lib/x86/cpu-policy.h
>> +++ b/xen/include/xen/lib/x86/cpu-policy.h
>> @@ -121,7 +121,31 @@ struct cpu_policy
>>              uint64_t :64, :64; /* Leaf 0x3 - PSN. */
>>              uint64_t :64, :64; /* Leaf 0x4 - Structured Cache. */
>>              uint64_t :64, :64; /* Leaf 0x5 - MONITOR. */
>> -            uint64_t :64, :64; /* Leaf 0x6 - Therm/Perf. */
>> +
>> +            /* Leaf 0x6 - Therm/Perf. */
>> +            struct {
>> +                uint32_t /* a */:1,
>> +                    turbo:1,
>> +                    arat:1,
>> +                    :4,
>> +                    hwp:1,
>> +                    hwp_notification:1,
>> +                    hwp_activity_window:1,
>> +                    hwp_epp:1,
>> +                    hwp_plr:1,
>> +                    :1,
>> +                    hdc:1,
>> +                    :2,
>> +                    hwp_peci:1,
>> +                    :2,
>> +                    hw_feedback:1,
>> +                    :12;
>> +                uint32_t /* b */:32;
>> +                uint32_t /* c */ aperfmperf:1,
>> +                    :31;
>> +                uint32_t /* d */:32;
> 
> Elsewhere, single bit fields are bool foo:1, and these want to match for
> consistency.

Oh, yes, will change.

>Â  In particular using uint32_t:1 creates a latent bug in
> patch 8.

I don't see where that would be.

> One problem with bool bitfields is that your :4 needs to become 4x :1.Â 
> Right now his hidden in the macros that gen-cpuid.py makes.
> 
> Given that b is of type uint32_t, you can omit the :12 from the end of a
> and leave a comment.Â  Similarly, the trailing :31 on c can be dropped.

We have these in many other places, and omitting in particular the :31
would also feel somewhat fragile / misleading. It'll need to be

                bool     /* c */ aperfmperf:1;
                uint32_t :31;

or something along these lines.

>> +            } pm;
> 
> Nothing else is sub-scoped.Â  I'd prefer that you drop the 'pm'.

Wouldn't that require the use of the very extension you just talked about
at the committer's call?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 16:55:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 16:55:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165218.1492005 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLOys-00079t-Dg; Tue, 18 Nov 2025 16:55:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165218.1492005; Tue, 18 Nov 2025 16:55: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 1vLOys-00079m-9A; Tue, 18 Nov 2025 16:55:02 +0000
Received: by outflank-mailman (input) for mailman id 1165218;
 Tue, 18 Nov 2025 16:55: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=maYy=52=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLOyr-00079X-8f
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 16:55:01 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5156e86a-c49f-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 17:54:59 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b735b89501fso638610966b.0
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 08:54: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
 a640c23a62f3a-b734fa80cb6sm1390313266b.7.2025.11.18.08.54.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 08:54: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: 5156e86a-c49f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763484899; x=1764089699; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wA+v3alUDLmjiFdbMBoLVa7otWuvN8Pr2JXcPMJM8EU=;
        b=EhtmgrGItIEC7no8gFlzbaIwr8cQzcX7UhhmyMNV7lAmKHvgjR/XjTD9SNT9DSSVvc
         eftBjvrwFLWV65NREpDAuZUC10Xvncp5MxiM6I0NMkEsBuiVaHCE7KPadicCp1oFD0gY
         bJqRj8lT11iQG9Z541XOBrAW3rF0XrO7Dn/8OFSP1dXSttx941RgBKvpsUD0/N+RGdS2
         mZ/QKwEtHBD3GHdzEkSbGONKMJm4UOBl8c5/hE8ga903IvpZK7YfUlvfkwjml7N65uQR
         7JgKkX3qcgIhVhbp4Q504lX6/lBNsu3M4wg2rEGi4w4gm+UDp2+ZxnPavuaqzcSc7O5o
         tk+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763484899; x=1764089699;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wA+v3alUDLmjiFdbMBoLVa7otWuvN8Pr2JXcPMJM8EU=;
        b=fv7JkLc83hHOSqDD96PD5AHvDVSoVFpLj3K7jgsdIFO9XQ1uQvYxaCX2jM70hBWKj0
         Ql1tocr4+SMVbsHpOBIsLwJ7fbgNUJZec7U9gGefNjCHYQ3fRqFMagN5WMYVaOHKrOsx
         yWa4F3ml29x2a59AHDwjqRLx47AhyhB1KLCLZ8mCG5eqJhGcKjrXPZOZnXw81sr2ryFk
         z9vk8rzDhfOb1ggFHHjCoObS7uSyhgImLQkPjMKv5DXN5BnO68eRYWE0W1xV+sS8mjWZ
         +MK/DUrT/SumMC3hq28SS2/wPIiLKpdlHQlP24TjU93Amnzr3Mov1cFyzK6KMQWO3VDv
         KHVA==
X-Forwarded-Encrypted: i=1; AJvYcCVD3R561lxiAoeS1px1dvIQ/549Bq6xLn1MosPMAZB6iBGFWVfx4OGWnzFvPPfcHl7jeCyiwKu6/yM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyaaeopbNGL+bd4a/FEnxJk8SK8hxKKRbk5Gm0FREfrPwEGqqyC
	BKrAQd2116w2tUyDWkOaiFq8LnRG8nTJ7cBhhUPoVmJY5Nn1Gh61guCbPMEJbXx13Q==
X-Gm-Gg: ASbGnct9iQB5jgVAV2W0rJp6HAn7ZLX+lpO+eYfDxuOEzUlObQeFiI8219TzW9wFSBh
	HpSviMlRTzzOq60e/G9OTBqf/mv+vwDxW4qO1NU5awpz92l+IFE7HUHYdtfc4qNpoMxaDwpaElj
	e8ueqh60aTPoPcuEVMnXHaEVTWdMhd4Js6I+yE2WIWaOUxncOda7QVnffvxvvTPBXiIhWqctwsV
	6xNe5FR7EnsCzH8YUTnU1/BeqYRmU5lz/6gJoL/kv91puUL4vbf0++iKecAFBmd2a0qJgEqVXx2
	hilpaH5dEJ/u+8wjAF6dVW+Lwh419NabErbvQVpy1fGdP3F3k/gT4ccEovDbTF3ecPI+ktpP+b9
	43xUfoKpZXXZL5pe6iCKGk95vdgF+HOxPkVTspXUh208qcJlcRJGiXXaV+URV4GmnLvx0BzNFcT
	NVKflvJATbzotFqzMdcvNTYYVVmLVvlBwoU2s/HVZt0hI7Qht/OuqO9lbjAvcM/fbtFqZm4cfzB
	fUKnu8erbOGNg==
X-Google-Smtp-Source: AGHT+IGk7E5Lcjb657wWAZpnQPcYEPl7+CDvjfQhzwiy0qWUZXOk6bC9EFoJqslrLCeERsMpqSL8mw==
X-Received: by 2002:a17:907:6d18:b0:b72:7cc6:a143 with SMTP id a640c23a62f3a-b73678ed08bmr1719214966b.40.1763484898670;
        Tue, 18 Nov 2025 08:54:58 -0800 (PST)
Message-ID: <b49599b5-782e-4520-a229-00a879f40185@suse.com>
Date: Tue, 18 Nov 2025 17:54:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.21] SUPPORT.md: Define support lifetime
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251118165022.476308-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: <20251118165022.476308-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.11.2025 17:50, Andrew Cooper wrote:
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 17:20:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 17:20:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165233.1492014 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLPNT-0003v0-72; Tue, 18 Nov 2025 17:20:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165233.1492014; Tue, 18 Nov 2025 17:20:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLPNT-0003ut-4F; Tue, 18 Nov 2025 17:20:27 +0000
Received: by outflank-mailman (input) for mailman id 1165233;
 Tue, 18 Nov 2025 17:20:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YPWA=52=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vLPNR-0003uf-Vp
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 17:20:25 +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 dc8982f2-c4a2-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 18:20:22 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH7PR03MB7390.namprd03.prod.outlook.com (2603:10b6:510:2ed::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.19; Tue, 18 Nov
 2025 17:20:19 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.009; Tue, 18 Nov 2025
 17:20:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dc8982f2-c4a2-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=T0fCLkcrmh597Bm25LP9zU5WokapQbHGKDxR6T2TUuH6EqdCLktizWl5EYZS5vWFhP3ENOhAjQrflWmCw3Hxr5rUvqafhM1ILQpMPONQ7AQYwHbiYqAoSgcEaD8CshF50Iy0reSC1MawX0cSBFKpBs9cy9m+lJUAh8fBjpKlbGi8laTKpMAK3I/195wj8B4wsOpJ1xOuTfmzVdK6nw+mHgnzBzhY/HasiT16nXV90NUUmpPKJpBEATUeIyb3RfEcGrwqbk9dPlDMwDoKv3duNhn2gAebMQ+QgXe27h1V6EY8/br8TpWQm2gXK+siDL9j2cDPKGcGjfZtGVmWs5R3ig==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ICG434jSTGql+x6mA5EDDwlqGY7mqeef/la8+CiwL8M=;
 b=IGbaG0NlPOhnSRGlYjjy6NHSZSvCb6kJZGIto2L+RHj984M7ZKgufE04JITbUEVZK97233UR5LnAOR8oRfu1s9MdP3OnRx4VtQuxzbBAtRH+zYm2mlQHbQAVVvM8Hp6oyb+t2D52fKyXpuG7xCXbzMsBMIlrpFHcN6NVF8s1hR+q0kVhE8A9Ncy5eIuDpRHKS0plI/2x0VGnkmr+4q10F8FzS5vqLqQHmCRcSp8ccD84885vbf69PNEp+fVh7eRIG1bw278/F8XgOInkNoemff3Got/1ncquo871d4r8NjONNOCiva6/DgvXflffsHwK9I52PDBt1l1WEoTMK7O2bw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ICG434jSTGql+x6mA5EDDwlqGY7mqeef/la8+CiwL8M=;
 b=ltOKIT7dZACL7U2lNCTTBv+VvbLEQTQAL2tTK8TApZHPGMBF3buAEa+aGRQxvJRwjsCEdJJ2gL0PsYjGN4t64noBb5vlrXXR96MywBaBNd4nluyiyU5717hwbIubz+T7+8kqttlxakZAqW53S97jSgPavuq+goUlp3momEjiIrA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <a35d9c4c-e76a-40db-9e27-3fd329ece089@citrix.com>
Date: Tue, 18 Nov 2025 17:20:15 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/8] x86/cpu-policy: define bits of leaf 6
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
 <b59c0994-6bb2-4506-88ec-4ea0f3b6c311@suse.com>
 <ab1dc276-2753-4a9b-932b-6cce3ee2b58a@citrix.com>
 <b3e43204-6555-49ec-8ae1-8c54e91b432c@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <b3e43204-6555-49ec-8ae1-8c54e91b432c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
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_|PH7PR03MB7390:EE_
X-MS-Office365-Filtering-Correlation-Id: 0cae7fde-f0dd-4327-2716-08de26c6bf45
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?Y1l6NnlXc01pNitxT21yZE51N0paZ0FVbWU3aGcwTm9sYVNJUmllTHR3M1dx?=
 =?utf-8?B?SEVIYjRDYmtIbWpLckI2czFSbEp6N3dkNnBydmQzNm9WWUF5M1hHeGE5K1BJ?=
 =?utf-8?B?UFV6YlFUQmIwL2NxRlpiZUJzRC80Ump3dWZmMWRWa29rbDE0eG1lN0JiSVE5?=
 =?utf-8?B?Rml2Z1ozMG03VGxKanREczBmOTZLQU5ZSXNEL1VKTjJXdWF4N2FHNmdzay9l?=
 =?utf-8?B?VzFDSVdYNUduZlZuVDNBSVowS0Mzb05VanVwTmp1YUxUMFQ5cS9lbmRjZWJk?=
 =?utf-8?B?aitDaXJTSmZ0K3NWRG9meVJqMlo5SzdSa05xcVlVbDFiZ3lrZHJoR21QQ3FO?=
 =?utf-8?B?MkNydDU4SjlGYzkvQnZ6czQyUGthQm9pTklZZExxZ1EzOFYzQytEbnhNVnpJ?=
 =?utf-8?B?b2wvNUNOQUZIS0NBSVk4Q21NMkRPbmFHUjBPaUFJSm1mOU5IVDNTbE1jenRu?=
 =?utf-8?B?V0l3cUpmMGc0ejdBMi9VOGZDWWNFalpBd0E1dThFeWdZeHJzZGJCM3E5ZVBG?=
 =?utf-8?B?M0VJbDQzSWVhZWw4M0hWU0VFeGJGRzNaL2VOa1I1dXRrOGFNRDNnSlJPQTJs?=
 =?utf-8?B?SXVDUTJvL0lhNVlodTJ4UlhUMmk4NGhOYy80Q0VNME5NMEJlYllXY2VwWnlq?=
 =?utf-8?B?clBGL1pONlR1enlJWGdTUHRQMTR5eGxwMENjUHltemxwdzdtanJGd1YvU3Uz?=
 =?utf-8?B?SEdKL3haQTc0ZjErTnRvaURrOEdxS09ZaXIxb2tjT2FFc1VWbTlZeEZLR0dZ?=
 =?utf-8?B?cE9obEtiVHN3bENBQm0rZjZJc3NvR0xFb0w4czdMM0JiT1N0dEdaYUFEQ2pF?=
 =?utf-8?B?RDBCWlZhYXc5eFpDOVEvYmIremhmWEpGTy84YlNGSCs2RkthZGVwdy92M25P?=
 =?utf-8?B?aWtpR1hqaktRVXhHNWZzOXpKdyswT0d3ZEk2VWJCSnpueGNlZCtKa2dXbWI3?=
 =?utf-8?B?WlZCNlptQzFRTS80YU1aWURad3EvY2Zya2o5dW1JcUpGMldLZDNkWTNrNUp1?=
 =?utf-8?B?eno3RUNtd1VsMGFLVXRXV3BLS2d0QU1iM3BVUEVXNzlCSzNoVkkvQWQvQU04?=
 =?utf-8?B?Rnp1bjVoUDNRUGxPOGR2RHNnNGdWc1dsaXVMdjZJMDh1aThQSmRrU3F4TFZX?=
 =?utf-8?B?bVQrMTBWVVFKNnhBRER5N21ZTHRKWUtGTTQzTFZLbzlnVmJaL21xMkFkT2F6?=
 =?utf-8?B?UVJubHRtUG9LM3NmaVBaV0V6S3c2WVZNMEhKWklMT0JxNkw1alA0Yms5VlAz?=
 =?utf-8?B?aUFVMk1RbllRTUZNSVZDWEp4ZXVrbHhBY2dJOWJOcUhPRXlFNSs3RUNKRE9K?=
 =?utf-8?B?YUQ5SG9kN3NVQlhWYWlpZjFRK3diUi9SRHd1NFdyd1cvV3ByQlFLNk0wSldq?=
 =?utf-8?B?VGZpaDM3SllzaEpnSEg4RzlXUU1Oc3duY0g2cnM0NnFFNW9kN1hqK21Kb0Fa?=
 =?utf-8?B?Vmg2ZTZXUHllZVQwemhzMUd4ajh1VzFYYTVneFJVWjNxYVhKMzIzSFlhOUQy?=
 =?utf-8?B?WVp5dVo4ZlFZdktNc09TTk9mSVJCWVUvTjQ4eFhhTEdSOE1qckp6d1RRQ01U?=
 =?utf-8?B?VmlxaHlSMksyMGNiSVZzVjR4K1lKV2ZFSlB3WE5BM3U5QWJoYStJNnFZVTVY?=
 =?utf-8?B?ZXI1RU9GaXhXNFpLdm9GT0N2S2R1cWJWdWU3SUt0ZzNPbDk4T3N6alRsb0xK?=
 =?utf-8?B?T2RaSkZZOVZQWTJnbVlaaGhJSmZqNTBNeG96NG9wMjlZWnZOMXhiOWozSUFm?=
 =?utf-8?B?djFwWDc1Uk1xREdOeUxzditYVFF0c21SRW9KVXZkQ3JXU3g0cEQ3aVFnSGdO?=
 =?utf-8?B?b3lWRWRWUDA5Tll5a1FUaWJNUmJ5N1IrSWhzQWErY0pzMEVaWlIwODNIREVN?=
 =?utf-8?B?TFY0WURyM0hCUHJnRjNRNDhkbFRIVzJQeVhXT0tkZEh3SnhJUUJ6L3dZS2pK?=
 =?utf-8?Q?GC8HL80N8NSPClqysu3LojMcmobSD+dD?=
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?dlhFY0NLMnA4UjRLbTJiTkJUUGQxZlZnQ0pwY1BtOFlDZXlRbERSai9kL296?=
 =?utf-8?B?cXQxK01QQnRUaUlIWkFmcXp6ei9ObTY2Tndkb01JUGtLY2NvYUhxS0RiSjk5?=
 =?utf-8?B?N2J0Qm5oRDJpTXcwQytNdDJMTXVxcjJxVUpJYUZsNUZXcHpLMFlkQkpRa3Y5?=
 =?utf-8?B?R0VDZzl5b080alJXSW1oNlE3dk1PTGFxb0l4STRtN2M2ak40MERBTSt2S1E2?=
 =?utf-8?B?K2xySHUwZ3VBNi9FY3VHWnMrMWsyT3pNa3RFTnJ2N3ROQ2JNMkxqN2NXallm?=
 =?utf-8?B?Z2wyVXNyMGhCRXJtSmkzUTlnNjVnQk13Y204REdPa1JFWmVkbmRIbGZLb2lz?=
 =?utf-8?B?eDRRNVFTN0VsUWYwZG5BMDl2Wi85akVLa0YyR04xaXBWZitxMG1NR1hXTUxr?=
 =?utf-8?B?M09WSlFrRXhlQjZTQ1RhNzZrZFNVNDFuZnNtdmJ2RkRTR2JsVHdDWlZJSExK?=
 =?utf-8?B?VjVwbnorcENhUnFPUXVLSzl6U3Q0QjlNM3huRWhQd2dNK1ZNQmRVeWE1OGJu?=
 =?utf-8?B?YVBQcE5EejJZWTFzUTJsMDFGdE02VjJ1eWF3TW83SThNMExBWGJNNzZ1NjV0?=
 =?utf-8?B?cW0vWVNVd3ZpQzRQMmhVRGM2amF3WENBUzIxcmdoWG02UVlneFhsaW9QSUpT?=
 =?utf-8?B?KzczbEpxY0VMVkdUVUpPdzR5Nkw5Y2JFM0lia3VKMC9sRGc1dE0vSHRoK0o4?=
 =?utf-8?B?dzdVTVV3Z3JzcXRrd2FxVXJtMVNreVhhSk10dGJmTzFmWGoyOW9QbTNpdEJZ?=
 =?utf-8?B?ZzR4d2FuUUN0ZHRlWFUyeVVUb2lwUVg1RzUrQ1lpVEVQWUFTZnpvQXdPWEVk?=
 =?utf-8?B?dEQ3akVCZ3kzMERvaWpiMEUvSy9UZG55OFZwT0lkaFk5YmFqeENqR3R4WDRp?=
 =?utf-8?B?THREOTJGTjNtZTdqejg3d0lNMnEwcVg4Y0s0Nm1wY0k2ajFyQjlhRXgxWVdI?=
 =?utf-8?B?YnlWL2xBY2JtUHIrNFpJZlJxYlQvRFcvK2ozSzl1M1dWY3UrUndRRitvYjdm?=
 =?utf-8?B?dk5TWE1iSTFkdUlsVnFyK2RTVnI5K3BmUVdxQWhLR2hIYnNMUk1nSm5iQ2Zh?=
 =?utf-8?B?bm13QzVnWUVYQjM1U2JTaHdQamtBQ3c2eVcrb3VoVVkvcW9sNEtEbXgyZWQ1?=
 =?utf-8?B?Qk81ZDc3enBOYUVQT29FQ2JXaXBKWENTT29Ed0NrYzl6NWZldnZwNDQvaXFD?=
 =?utf-8?B?c2wxbXBWS21HUDdQb1pTOGtEeCtMVXhuWTFwVzloN3UwQkpGdkplOTRJRy9p?=
 =?utf-8?B?VWlNb2wzY1UxbXl2cnhqV0hxWXJKWjkwcFVaaHdmOVh2UGFkVGZSd0d6NmZr?=
 =?utf-8?B?Tm5acVQyQ0xHV3orc2ViM1ZveFYrdHBndXZEb1hkYzZzTnN2T3RPK3E2R09a?=
 =?utf-8?B?ZS9iR0NySzBaT3VLR05DZmpPWWhpLy94OTY1MGcvRDJueFJPZkpqT3FSVzlM?=
 =?utf-8?B?NUlTeUdCZkwwTjZsZWlYSEpKcW5MNVBYTWljOElwZVNPZ1ZNUklwS0xxMEtn?=
 =?utf-8?B?RGpFYWs0MTg4VWlTYlJmSHdVTGptcE9IMHo0L3BiNmtlTGpWQnJrL2NIbHdi?=
 =?utf-8?B?MWlLNkV2S2tmZlZwUjlVNjhGUDR3WllieUZyTTlqbUNjdWVrUWV5WFN6M3hP?=
 =?utf-8?B?N1N6ODZLaXhRMTd6cWp6aFA1MjlKTXdDYWJUYnc4ZkZJS3hibWJrMG54VFhW?=
 =?utf-8?B?Q2luK2s4VUlnOVpLdklxYm5Hd3J4S05jYjFJYno1RjhvVDRWNDl6TWs4aVBD?=
 =?utf-8?B?eU5aZkg4L0I5VjAwNjgxenZNakFVeFZMY3pxaXNFQnVlWUxxZ1U3ZFhLa3Nu?=
 =?utf-8?B?U1gwUUh4dXRaTENCTnVFZEszbVJQRHNQUjMwUVJhZUEyQ2o3R3BLeEMwQ2F6?=
 =?utf-8?B?Z0JRNGZPV29HRk1RdXJING9GTWV3cGZKcWZqdWhLKzhhMUpvWG1SRzZzWURP?=
 =?utf-8?B?QWRVOTNvWGV2VUxpdmFaTExQZlpRTUQ2Q1hxWnAyL0J2SlFXYUhPZVQwVFBQ?=
 =?utf-8?B?TmFRdVhpZW9sM1d2SnpaZTdsNkJLV3FpRjk4RXNzdTVzakkvU2h3RFI0YmxO?=
 =?utf-8?B?WTYzTDN3WktlRzdXNUdENGRNMC9WMHlIdUNRSitsUzVxN3ZCLzBpL04yejdq?=
 =?utf-8?B?a0Zza0FObXdhbitINHIyQmVHSVZRS21vSTJndmlBZUs5S2U2QlBXY2pQSjc3?=
 =?utf-8?B?SHc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0cae7fde-f0dd-4327-2716-08de26c6bf45
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 17:20:18.8292
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: /CPM2Jy0Tq3uKJteV+85jiWjxpTFp8Q8bYID1cJq+CVKhoZVJDq1qYFjgj+erZl5I99kLs9Se/1wySDnaO19ikpZ3D/F1uR3rk+adm7ehNg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB7390

On 18/11/2025 4:53 pm, Jan Beulich wrote:
> On 18.11.2025 16:30, Andrew Cooper wrote:
>> On 18/11/2025 3:06 pm, Jan Beulich wrote:
>>> --- a/xen/include/xen/lib/x86/cpu-policy.h
>>> +++ b/xen/include/xen/lib/x86/cpu-policy.h
>>> @@ -121,7 +121,31 @@ struct cpu_policy
>>>              uint64_t :64, :64; /* Leaf 0x3 - PSN. */
>>>              uint64_t :64, :64; /* Leaf 0x4 - Structured Cache. */
>>>              uint64_t :64, :64; /* Leaf 0x5 - MONITOR. */
>>> -            uint64_t :64, :64; /* Leaf 0x6 - Therm/Perf. */
>>> +
>>> +            /* Leaf 0x6 - Therm/Perf. */
>>> +            struct {
>>> +                uint32_t /* a */:1,
>>> +                    turbo:1,
>>> +                    arat:1,
>>> +                    :4,
>>> +                    hwp:1,
>>> +                    hwp_notification:1,
>>> +                    hwp_activity_window:1,
>>> +                    hwp_epp:1,
>>> +                    hwp_plr:1,
>>> +                    :1,
>>> +                    hdc:1,
>>> +                    :2,
>>> +                    hwp_peci:1,
>>> +                    :2,
>>> +                    hw_feedback:1,
>>> +                    :12;
>>> +                uint32_t /* b */:32;
>>> +                uint32_t /* c */ aperfmperf:1,
>>> +                    :31;
>>> +                uint32_t /* d */:32;
>> Elsewhere, single bit fields are bool foo:1, and these want to match for
>> consistency.
> Oh, yes, will change.
>
>> Â  In particular using uint32_t:1 creates a latent bug in
>> patch 8.
> I don't see where that would be.

In the printf.Â  %d vs %u.Â  Latent because it's ok until bit 31 gets
used, and then it's not ok.

>
>> One problem with bool bitfields is that your :4 needs to become 4x :1.Â 
>> Right now his hidden in the macros that gen-cpuid.py makes.
>>
>> Given that b is of type uint32_t, you can omit the :12 from the end of a
>> and leave a comment.Â  Similarly, the trailing :31 on c can be dropped.
> We have these in many other places, and omitting in particular the :31
> would also feel somewhat fragile / misleading. It'll need to be
>
>                 bool     /* c */ aperfmperf:1;
>                 uint32_t :31;
>
> or something along these lines.

This doesn't work.Â  A gap of 31 bits gets inserted because of uint32_t's
alignment, which is why the suggestion to ignore it does work (even if
fragile).

I suggest a /* 31 spare bits */ comment, because the only other option
is 31x :1's.

>
>>> +            } pm;
>> Nothing else is sub-scoped.Â  I'd prefer that you drop the 'pm'.
> Wouldn't that require the use of the very extension you just talked about
> at the committer's call?

No. It would just be a plain anonymous struct in this case, but it
doesn't even need to be a struct.

leaf 0,2,10 are all "top level" insofar as they're all inside .basic.Â 
leaf 1 only has anonymous unions to join the the bitfield names and the
field-wide name.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 17:45:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 17:45:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165244.1492025 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLPlc-0007cL-0y; Tue, 18 Nov 2025 17:45:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165244.1492025; Tue, 18 Nov 2025 17:45:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLPlb-0007cE-Uc; Tue, 18 Nov 2025 17:45:23 +0000
Received: by outflank-mailman (input) for mailman id 1165244;
 Tue, 18 Nov 2025 17:45: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=xTEL=52=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vLPla-0007c4-Mw
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 17:45:22 +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 59d4dc1d-c4a6-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 18:45:20 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BY5PR03MB5172.namprd03.prod.outlook.com (2603:10b6:a03:221::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Tue, 18 Nov
 2025 17:45: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%5]) with mapi id 15.20.9343.009; Tue, 18 Nov 2025
 17:45: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: 59d4dc1d-c4a6-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gbOGZ280UVWWNLboerJBvKB+DtMsXxLdTj1aVp0PVwm4brasCmxPy3QxP4KvolI0i5CeWdqHQ2Fvu+ZjQ1hh8AlvB9PsdLGpG81ffpuYpjZq+ck8qhwYYfvY1KWo8CdbOEHJzF11NDTssEigJU9YJwxqHE3/Xpo2k7Chk6nfoL+Q5A4fBtHmj1xgke2/Q6QV77WQhQ4xao7O/jGINu9OdsUd832JPAeJ8TrFUs9yQJlUYv6uZCPwomOAJ1d+MnFAE4bKatY5br43NhDRTAfZPh7QdT6g2oYawv0sO2OJzHd73l6iSs2gfjLNshyz5QoxteB9t9ZzS5OoNeZ8AVs9vg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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/t0fFz3Dnek+3b+5m+uqxUS8yfWzmjjyWFZjC4Wwa4=;
 b=g6zBJe3gipmA3SL9+tLioDqAa1/lZE5eqZkm9yjh41lwtES+Frjs4EgQAUb9sTtyXSDEwLicYqlVJOUeAVXpaz6OIXYV4eoFhMCtAyCGWo8e+PTSo0rDg9QgMpZVNkcBuZjPkQ7oawBBhYM1Ax6ZGIT4z2Vwy42089bHKxMrW0RgOa/kjqGvF8B7lbmfDCQTB3N3FuOhp2ZKTG3pItOQ5PKPpjq2AUtTdCo22KkI7Gh9Lcyc+a34WF+QeFmwvRF+ojm2SeLOnmivXX+5qO1gcmVFvc892dITwsKKZMcNeYd7u1XWT7AA5kAMr8ZasQJywOoNvjnH31D5VjCihdgmDA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-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/t0fFz3Dnek+3b+5m+uqxUS8yfWzmjjyWFZjC4Wwa4=;
 b=S+sapZOCSQ84C7uRX0A65Viiv3jCWSnMcYI7Z2kYsxLG43uxu2Pv/MrVAV3RlRxgwDm7Iog0gAuHtCPH/DFuDd6ZG5FflJayo0rKwAO5P2sYh5DtLIS4VnbvPV+6tzvIEOTOvEON0c17cxcJvOG6HubiLRQ8C77Ktt3off1PQK0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 18 Nov 2025 18:45:11 +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>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH] CHANGELOG.md: Set release date for 4.21
Message-ID: <aRywp7cDzX394Qzv@Mac.lan>
References: <20251118164730.475344-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20251118164730.475344-1-andrew.cooper3@citrix.com>
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_|BY5PR03MB5172:EE_
X-MS-Office365-Filtering-Correlation-Id: 6106fa48-9c3b-4757-29ef-08de26ca3b73
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?ek5JN3REZm1DaHlmS0NqK2dqaW45M3VNczAyRVJVdzdzVHVHcG5oTlJxSmtI?=
 =?utf-8?B?Zm12VGNYVjdma0hvRDRkd0VEWEVoMGp1TXp0RFRmMVdhU3o2Yk1XVFVxRnNG?=
 =?utf-8?B?VXltMVk2YTg3anFua2x0aFBIQXJMc0FpQWY3cFZJbzRJcHFrekg4Skp3SVov?=
 =?utf-8?B?U2I0dk9uVVpNaVI0ZHQ5Vi9XYXR1YTJpMkxKU21kc3BXQVFVejRrRU9KMkNL?=
 =?utf-8?B?Z2hSVGZHSm5wLzJXNXUxdGR3WldwWSsvUWNvbGFTQ0VNMkYzbjlvTkRXU1lx?=
 =?utf-8?B?Q2J4SzM5dEdLV09zMWtoWUxoUDlPdTNiY3NQNWxnRzlOR3J6REd4Z210c2da?=
 =?utf-8?B?d1ZTWVdGSFArSWw1NEhhZGZseDlENU9qTllqbjhCRS9BSE9YcHZWdVdzNkZ5?=
 =?utf-8?B?Qll6VnFBcG4wb0drVXZxa3RLZkZFU2xUR3IrL2VPVnZISzIvYzJ3ckZQYmN5?=
 =?utf-8?B?VFJIMmZQTlFQUCtRUTk5ZnJGdU1EYWdhTnRKanVxYk1YNTF3RmhKcWZPbjdX?=
 =?utf-8?B?ZkpoQ1BPUm1JSUVraVVlZDdldHE2TFNFTHpaRVVtaW94Y1pvMG1sNGFKamht?=
 =?utf-8?B?TzJSNWNxd3FWZ3FIWmg2QTQrZmFEQ3gzTmlwSGo3N0RhK2hUWEE3OGE4M3Bk?=
 =?utf-8?B?enlLakJ6Zk1Hc20wZ0FUYkhrdFB3My9Qbm1DVHVTcjVCc2NmQ28xcGM1cllv?=
 =?utf-8?B?cHJlbzlwME56OUdFOWdkWGkrQURDdkxWSVliM0dVbDhQWk5zSGJEcXFvcFNV?=
 =?utf-8?B?L25ucHlwUTZoNTB6ZThsREFmZnEvdFJyVlBHTXNmVXlwRjloR1ptREN2V1Q3?=
 =?utf-8?B?ZVhYU2pybDVyVFJ2dzk5V3JhYlJWdEloM3NqSHJsQXRkUGdSeGU2UWxUaEFz?=
 =?utf-8?B?K2NQODRoMHdreXE0ZEJTcFdQUnEzSmEvWUNwU1pPMGtZT2VkL1duOU9URzNu?=
 =?utf-8?B?MWRwMUx6dXppL3pQbmJFaFIvYmJ3dENyVXgveGRPejFIaHZBblFiMFFJZUUr?=
 =?utf-8?B?ZDlxOVVDMnZjZ2RYSnVUYWxlSXg1TXhWcnRlbGZBRzhqWnM5ZVlnTS9jT3FJ?=
 =?utf-8?B?NGFmMjFrRHhxSXZQckJvQ0ZhZlNHUm1iNTUvNFhubjVPVER6bTBlUGtGb3Zv?=
 =?utf-8?B?VnBVR28ydGxwblEvK0tIdVE5STJKOFJ5dXhaR2cwRlZKRHFNRG9HTmRrWW1L?=
 =?utf-8?B?d2FTcEMwbEdlRzJsU3h4OTRuQmllemdZdFA2TExzMjNUK3pSOG1yYU43RWxH?=
 =?utf-8?B?bDJEbW13NWpWUzczcU4zRUZKekdJQ3kyVTF5b0x1WXlnV0ppQWJxUGZSZjhC?=
 =?utf-8?B?b1pwZVJ5VWV5VkQ4VDFlSXZxaldkVWdQandremtoa0ZIcURFVTQ0YnlBUnV1?=
 =?utf-8?B?WDVPZDZTMVA5WkcxeTREK3dhQmYyd3BmemxhMkx1UWwzbDZ6MXBoUmF3Rjdu?=
 =?utf-8?B?bnY4REFYMzh5c051ZG9KbDAwUTJwK3gweTVGbm5mSVdBVlpvTmtQN0M0WG1m?=
 =?utf-8?B?aUY0eTliWExHa0FzYUdQYm9kZzErN3dtOGtoSUdxa3NSemREWS83N1JIQlhT?=
 =?utf-8?B?VEJQUE1EQkJBRUs3Qm40QXFaVjAxOEJKSHJJRFl1N2pqTVdNZFp1N2VNRXRk?=
 =?utf-8?B?Z1R6TEtndVJrdllSTG9EUFJTSU9HbWRuT1RpZlNHckJ2RjZ3UW9QUnJ6djlp?=
 =?utf-8?B?YnVwaVRVR3hCdDdsNm1jTmxiRHlmYURsUjZGckk1MDZzcDNnS09pSERscm9y?=
 =?utf-8?B?Ylc3dFpOOEJ1cXBiTkdTNGYwcWx0WXhEVjdXV0V0eGJRalhKK1ZtWTBqd3ox?=
 =?utf-8?B?c3ZGRUdPL1dad29RWDZnSGs3UnpQeWtvMVVuOWpOY2RQNUl6ZEh2OXdKMlBN?=
 =?utf-8?B?cERuL1dya2FjMCt0MkVsdmJzQWtqTWdkdU1FejJtMkF4dWV4SmVHWmRpNTlj?=
 =?utf-8?Q?iyQEbvvyVwz6W/8WbVXo7HxhUh02JjW2?=
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?WW41dDJObHZvR2hUUGMzbHRyZFFhK0VMZ3pJek5BbU5rcGlKakVMNVIweG1o?=
 =?utf-8?B?RWo4Ump5K3c3cTlPUjU3Q3hqaWliRjdvVjVHTGdvMWRJbTM1bkdCbFRCclZo?=
 =?utf-8?B?RlZqMlZrQTZVZXhldGY2NWRoUXZZOFZJUithUXdGd05WWEZKU3J4NmZUcnB3?=
 =?utf-8?B?STE3bEtEREEzajRibGIzLzdydU5LN2tZa3FUcHZONmZXaGkvZUpuQmhzbHc4?=
 =?utf-8?B?TmFuZStxS3RZbXc2b1pKc1djYVNXdThEMzJIUW01dTNCcXZQNjl3MmF5ejdB?=
 =?utf-8?B?VDVGa2xLL0FqMEczM3NXWUhTYWdwaW41VEozYkR5SjJLMjVwd3htQTZ5bjRV?=
 =?utf-8?B?bXd2RGJiYkdKVmQySE9tbUthRWhXYTNWSDRva1BxZm80T2pSOTJsM3h1eVZ6?=
 =?utf-8?B?bjQ1VVh2MXRuYnFjRjV6U0tNczFxMWhRUXI1d1p4OVR6NEhEdU1UZXlicENZ?=
 =?utf-8?B?ZGdTTGwxVlZvOHk3QTkyTDlyait3Rlc1M0xUTDhsMzJJODhtSG5DeE5Zc3Jh?=
 =?utf-8?B?VDZ1aUI2QXVKY2NyTlRaZGpNbTJORXVIYnRlNzhZS1dNUG9Ka2tsK2JZUld6?=
 =?utf-8?B?aFlVN3RPRFB2N21xTU1FUkFuc05BU3owU0drcjA4RGx4TGdrQTdQd1hlZG5j?=
 =?utf-8?B?UVNLNnRRRmVJV2UrTUZEMFM1RVJON3NvM0YrQnllK0VhZDIxcmdvd0Q0REhq?=
 =?utf-8?B?VUpUaCtSbmZ4WVp2VXo3MTJDTzBOeS92RDVyN3NGL0hQTjZaVTBsK2d3b29l?=
 =?utf-8?B?TDJLd1FXWE1sOVNGSW52V1ZwbUkrZUxDSFhOV0h1RnVqQ0tWOTk5aTZBUDU0?=
 =?utf-8?B?V2o2R1pnWmJ4ZnVvMW5rTXk0YjBZZ0RVOVQ0NmFRbWhTYkViN3YwTmkrNUVI?=
 =?utf-8?B?ZVpZbEJoVHo5SkdaZ0Irb2NMVHFxU1U2eE05VmIzWG1JdzRHZDBhS0EzanVS?=
 =?utf-8?B?MFd4dTMxRUs3S0VsRjhEMEtEUjZQVDAzRmRNYTdFbG13UzVISmVTQmxNZElF?=
 =?utf-8?B?N21WV3p6dFhQbTg4dVlhN2R5Y0dkSGZOQWtuYlJYbTkwV3Zock00a3dEaFFF?=
 =?utf-8?B?dmNva25YOEE5QUZvdXd4eVFYb1FHV3dqR05OdGsvM2hBZFFRN1U4dmZCM2xS?=
 =?utf-8?B?bjJ0SGs1K0N1ZHBWeHEzRW5sTmozZEppSTVRNzU5R1Q2ZkxNRWkxSllXN1By?=
 =?utf-8?B?QW9IbElGNzFnT0lzejlKalI0RTZtNU5zUWZ6MjFyTmxidXRxTXQwYnc4KzFn?=
 =?utf-8?B?UnlSZEVTdURtaHhvb2xtYXRPZVpQLzFtazBDeHF6VHVTRDlSNWhkMEhtWUFo?=
 =?utf-8?B?MnlXUmhsUEI5MnRLbUovTTMvbmI5ZExCRWtTdXIzRE1ia1hmcnp2ekRZVG11?=
 =?utf-8?B?K09rWUt3aDNvd21ZQVI4SkVLOS9raWIxZTJ2dGxyUlJaMkpQZHNqNEErUkNI?=
 =?utf-8?B?VDRGSUFDTDUzYVN5TTNOVkxwVm8wcVJ3Q2Zabm9DclV1SDYrcEF0a0hiUTg2?=
 =?utf-8?B?WUttU1Vvc0Z1Ri9zbEZ0UkJvdmZXN0s4KzdOU2ZnbUo5NmhRWlp6QXZmdTVr?=
 =?utf-8?B?TUJ1S0FVcUFlSGxWVmYxMHkyU0ttZGd4cUVLQnBOTjJ4TTZ3TDZsTkVTc0ky?=
 =?utf-8?B?NzNRNmdwRlJZdW45RjhrN0djMkdNdVM5djFicThUc1dBbEozWDY2NmtZL21o?=
 =?utf-8?B?V3FoTlJrNGhORDV4bnpiUDV4VHphd3dYZW0yQytHMDhrcGRYTEtIUHNxaG91?=
 =?utf-8?B?ekxuSStRVjlJMXJxK1lWRk03U0VUMUloNlJFcTRyUVFhb0E2eVc5eTcwVGxm?=
 =?utf-8?B?NHFRWCtYTVk4ZVR3a1U4bldETzFxZ2FSSHlPODhuUlpMa3lScHpPNlgxRUlG?=
 =?utf-8?B?SmxETXVzMkpWOEc0OHZWT2REVnF3d2ZUMEJPTnJtcXhHRXhkalpXcENFU0ZJ?=
 =?utf-8?B?aGEzWkt0Mk9NcVFGdFBOdWRjUGRCNE45UlJKT0lMV1dhODdyS0FIYTBhNUtS?=
 =?utf-8?B?aTMrdmlWMERqQk1ZUVhzaWJOM1V4SlkrVHdiUHdrUmdyNXZaQ293OUdLYjRr?=
 =?utf-8?B?dForQ3F2dFpIeDNaQ1JDK3BoWnp4aHlMdm9jcW53Z2p0clpZVFVWM1AxZVBW?=
 =?utf-8?Q?VgUBTk22GJk6TnMSKPvxk5xJv?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6106fa48-9c3b-4757-29ef-08de26ca3b73
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 17:45:15.7041
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: A1j8E6W4477kgQhW99Sstz5p4ZqcGimEFVDIMcqvoNpFFEJGM3IGnnPnKPzoY/XkWGREV5R7DkHOM34gRAF9HQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5172

On Tue, Nov 18, 2025 at 04:47:30PM +0000, Andrew Cooper wrote:
> 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 Tue Nov 18 17:58:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 17:58:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165260.1492039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLPyM-0001Kf-9N; Tue, 18 Nov 2025 17:58:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165260.1492039; Tue, 18 Nov 2025 17:58:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLPyM-0001KY-6K; Tue, 18 Nov 2025 17:58:34 +0000
Received: by outflank-mailman (input) for mailman id 1165260;
 Tue, 18 Nov 2025 17:58: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=Kq2N=52=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vLPyK-0001KN-Uh
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 17:58:33 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2b7cb282-c4a8-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 18:58:21 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-64180bd67b7so8028904a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 09:58:21 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fb12d55sm1398077166b.33.2025.11.18.09.58.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 09:58: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: 2b7cb282-c4a8-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763488701; x=1764093501; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hFp0af3WUDxFK7fL09lex7RW8M9QnpS9B6bt9KztMhQ=;
        b=HImLwVdnRYM1b7E3lKuacrTZ31dzl/gNcwAqB/pxR5wJR7Jezk/IRXiktx2x9jl1qo
         Xl6zirOfRbYiXYUcINQ6jGBnQNVgrMHOqPgb0DQbo9Wz0qddARgfwa+rAGkT3qW5eX9i
         w8iXayklidttic+jWbe30I6EIKoH7Q+AchoVa+mWKeEGh156MmC7v0+PXQLxJh61Ir5Y
         MkdIsWnXInpxwsxuJK5uZSOM/3ViqCkk2wuT19XGidfk/EriTzMvAy5m9xcsIaFk3Hd3
         eZgjtpUYGmgzmFuot4qKGwz5b33fBEQnkpHKHUIK9c6KSCEllUEv/AhxnmsLKKruV4k/
         FhSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763488701; x=1764093501;
        h=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=hFp0af3WUDxFK7fL09lex7RW8M9QnpS9B6bt9KztMhQ=;
        b=gIBt4nA35dZ25rzMmiSTToeRg5B8iVUURWi3PchB0S7zpvOMiXkPdbyLyOWWCEmEoh
         Q0S9p9IyQqcl701DTuacjYhdTs/RNci7OUFgJ+KrYrPSlquwk2eo/gGx4RiEtc20v9Ql
         XkmHVbCa0aGmrq3KtqYR7x3XqOYKqYDcFOh8SEpF3G8ncHGd9GMC2N3xkB6P5PRZIEMz
         u4Et+/GR4E1MXxt7bszbmXNkoqUvDhJIoPDJdvUukRP86nMgTXqc6cPs0/893t8FXIfG
         Qr616IsYc1Dah1CnJRrBJrcVDbx7UIX6VR3UVZtyfGttHOby7dCvDTXa7zYw0ir9dLbz
         ep/w==
X-Forwarded-Encrypted: i=1; AJvYcCVqgQFT+/jkqYaigBd/dYB4lNw7iJJrpXnSotCZhKqkDnmrBeYzWz2MJIssLahM14f4fv4+JQ+zYno=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywomw/4RQZIkQRDZXZGGWLEsKkDHo+MW20QimMLLTvoN5fECoSC
	rv7LmiPUoQcjf2TPDU0hL7tKO5FDmdP19y8FdYqxSdV8riPZ4leCjoe2
X-Gm-Gg: ASbGncvWuPKe8b9ZR18lgv+AR5xz3Yox3+L/yuuIvIwI1XnsjqugJKp7iDXZ7DthQnY
	3lnYfyVeLL+ssKZK6zvQwgYWH++xP7VBh/15Nr1PxYI0BAmrDJ3nLfUNOyEB8TKhJY5Kl8vU21U
	SHzNQYJsjyA+QLsYZGKoYkmmmHV3MjVSOzXkCZdPcD+bWW3Vdhyo6LhVUyhiOac1dzoF+apFH4j
	JGcv5J2C8X6F1Q5Ssp651GcBfNpJWV39wVdaHUW1ZxTijtOuog5bxb3+zUFsa64WHNbzbgd/3Pl
	BmPPEIC2fgnVeG40RknK3OS4KrH6/e8tGpeoOh8r5+qgIXKbtU1qeqruImHQxRR80wVlUVD4upa
	4v3eHakLI+i1VQqyC9mcqzLclDTlKJSqoCfIyAjQb5DIynZiXiMP5NZ/23DqSVMrfrYiabKDJKi
	072zXtTn4dXQa/bxB2L+4qQDzsDYOuE+b8QBKoZDvno7XeKXWTICNZvgajuqbvov1t/8xLHEA=
X-Google-Smtp-Source: AGHT+IH+9FU8sEofnYv8nWnAKBjYKuxX4lHUIlv6xBcUVNpYZ0QDcgW6T8xGG1JlXOl8lw5knbUMkw==
X-Received: by 2002:a17:906:f105:b0:b73:7652:ef9e with SMTP id a640c23a62f3a-b737652f76bmr1138755266b.55.1763488700453;
        Tue, 18 Nov 2025 09:58:20 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------590qd5gvnSXjggih0WnwLrqx"
Message-ID: <81030d67-ddc2-4d20-a0c8-8a73c6afa801@gmail.com>
Date: Tue, 18 Nov 2025 18:58:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.21] SUPPORT.md: Define support lifetime
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20251118165022.476308-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20251118165022.476308-1-andrew.cooper3@citrix.com>

This is a multi-part message in MIME format.
--------------590qd5gvnSXjggih0WnwLrqx
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/18/25 5:50 PM, Andrew Cooper wrote:
> Signed-off-by: Andrew Cooper<andrew.cooper3@citrix.com>
> ---
> CC: Anthony PERARD<anthony.perard@vates.tech>
> CC: Michal Orzel<michal.orzel@amd.com>
> CC: Jan Beulich<jbeulich@suse.com>
> CC: Julien Grall<julien@xen.org>
> CC: Roger Pau MonnÃ©<roger.pau@citrix.com>
> CC: Stefano Stabellini<sstabellini@kernel.org>
> CC: Oleksii Kurochko<oleksii.kurochko@gmail.com>
> ---
>   SUPPORT.md | 10 +++++-----
>   1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/SUPPORT.md b/SUPPORT.md
> index 491f9ecd1bbb..3099225c77f4 100644
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -9,13 +9,13 @@ for the definitions of the support status levels etc.
>   
>   # Release Support
>   
> -    Xen-Version: 4.21-rc
> -    Initial-Release: n/a
> -    Supported-Until: TBD
> -    Security-Support-Until: Unreleased - not yet security-supported
> +    Xen-Version: 4.21
> +    Initial-Release: 2025-11-19
> +    Supported-Until: 2027-05-19
> +    Security-Support-Until: 2028-11-19
>   
>   Release Notes
> -: <a href="https://wiki.xenproject.org/wiki/Xen_Project_X.YY_Release_Notes">RN</a>
> +: <a href="https://wiki.xenproject.org/wiki/Xen_Project_4.21_Release_Notes">RN</a>
>   
>   # Feature Support

Release-Acked-By:Â Oleksii Kurochko<oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii

--------------590qd5gvnSXjggih0WnwLrqx
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/18/25 5:50 PM, Andrew Cooper
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20251118165022.476308-1-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">Signed-off-by: Andrew Cooper <a class="moz-txt-link-rfc2396E" href="mailto:andrew.cooper3@citrix.com">&lt;andrew.cooper3@citrix.com&gt;</a>
---
CC: Anthony PERARD <a class="moz-txt-link-rfc2396E" href="mailto:anthony.perard@vates.tech">&lt;anthony.perard@vates.tech&gt;</a>
CC: Michal Orzel <a class="moz-txt-link-rfc2396E" href="mailto:michal.orzel@amd.com">&lt;michal.orzel@amd.com&gt;</a>
CC: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a>
CC: Julien Grall <a class="moz-txt-link-rfc2396E" href="mailto:julien@xen.org">&lt;julien@xen.org&gt;</a>
CC: Roger Pau MonnÃ© <a class="moz-txt-link-rfc2396E" href="mailto:roger.pau@citrix.com">&lt;roger.pau@citrix.com&gt;</a>
CC: Stefano Stabellini <a class="moz-txt-link-rfc2396E" href="mailto:sstabellini@kernel.org">&lt;sstabellini@kernel.org&gt;</a>
CC: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
---
 SUPPORT.md | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/SUPPORT.md b/SUPPORT.md
index 491f9ecd1bbb..3099225c77f4 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -9,13 +9,13 @@ for the definitions of the support status levels etc.
 
 # Release Support
 
-    Xen-Version: 4.21-rc
-    Initial-Release: n/a
-    Supported-Until: TBD
-    Security-Support-Until: Unreleased - not yet security-supported
+    Xen-Version: 4.21
+    Initial-Release: 2025-11-19
+    Supported-Until: 2027-05-19
+    Security-Support-Until: 2028-11-19
 
 Release Notes
-: &lt;a href=<a class="moz-txt-link-rfc2396E" href="https://wiki.xenproject.org/wiki/Xen_Project_X.YY_Release_Notes">"https://wiki.xenproject.org/wiki/Xen_Project_X.YY_Release_Notes"</a>&gt;RN&lt;/a&gt;
+: &lt;a href=<a class="moz-txt-link-rfc2396E" href="https://wiki.xenproject.org/wiki/Xen_Project_4.21_Release_Notes">"https://wiki.xenproject.org/wiki/Xen_Project_4.21_Release_Notes"</a>&gt;RN&lt;/a&gt;
 
 # Feature Support</pre>
    </blockquote>
    <pre>Release-Acked-By:Â Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

Thanks.

~ Oleksii</pre>
  </body>
</html>

--------------590qd5gvnSXjggih0WnwLrqx--


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 18:45:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 18:45:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165275.1492053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLQhV-0000TQ-Kn; Tue, 18 Nov 2025 18:45:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165275.1492053; Tue, 18 Nov 2025 18: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 1vLQhV-0000TI-Hm; Tue, 18 Nov 2025 18:45:13 +0000
Received: by outflank-mailman (input) for mailman id 1165275;
 Tue, 18 Nov 2025 18:45: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=m/+5=52=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vLQhU-0000T4-Bq
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 18:45:12 +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 b29cd1f4-c4ae-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 19:45:05 +0100 (CET)
Received: from MN2PR20CA0004.namprd20.prod.outlook.com (2603:10b6:208:e8::17)
 by DM4PR12MB5961.namprd12.prod.outlook.com (2603:10b6:8:68::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.22; Tue, 18 Nov
 2025 18:45:01 +0000
Received: from BL02EPF00021F6B.namprd02.prod.outlook.com
 (2603:10b6:208:e8:cafe::39) by MN2PR20CA0004.outlook.office365.com
 (2603:10b6:208:e8::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.23 via Frontend Transport; Tue,
 18 Nov 2025 18:45:04 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BL02EPF00021F6B.mail.protection.outlook.com (10.167.249.7) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Tue, 18 Nov 2025 18:45:01 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 18 Nov
 2025 10:45:01 -0800
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, 18 Nov
 2025 10:45:00 -0800
Received: from [172.27.232.218] (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, 18 Nov 2025 10:45:00 -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: b29cd1f4-c4ae-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OytJ362bMH/bFSd0QDzn2+gj99/SdQLvPIh/VExhjxseHrFqQaetiePfye6inqbhZulaVpRA6jkgrXLt3DdVz9xIcrywBtF3qHT4Li7dZCzz4DW/nMWHxcmzEVjEwcmHAFie4J/fyqRK/8gHVamMQuy/bfzwJ8942Q9lZ+vizJNNmV4P9YFZfPycCbH78GQnonJ9Y7qEVccSh1Tqv7g6wB3BgbOZhUUFPYzv0hwWqmf1vROoLgpui3sSRLxm/nEro/GFJ0xRakKkyBhudB2X6nTpaJFhJuquKwxPyp30kST87725IEkGR1A1PMXRNFTAe25AMo0KVe3+gznGfh3u+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=X5ZelEBTFB/Ck8Ka+JbG3DrzBAWsvYeYujs4JKs+USQ=;
 b=XQG8sWYsgdfeFk964I4QpL15o87j1U/6MSBxgYAd1uVwSD1hHSPOkAxyNXFt6X9AgNC8JO3Dxh5oiwx5mwQu7AZ9Kg7kh3P6W86Zbl34bYpy82cjw2Fa6oSwTMz8e6qcXavDlWKX0w65ArxYq/V6LLGrAex+emoXuxrozBTaKPcspDV2v9o4D5YarcsJ2hBH2ICBpts3n76JX9gCvypiBlO2jhRwzfqDGG5RqVz4qPK0reX7tILX80k3l3tvnG8F48ZcG5B+UnJ1mKd8VQgE/+BILTsCxy6v1ieC4+tqNNEvVd888+Gxd3aZB8t6Si1+y0mS6RAFpT64NcoReGC8Mw==
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=X5ZelEBTFB/Ck8Ka+JbG3DrzBAWsvYeYujs4JKs+USQ=;
 b=H2Xhqajih3KsrgCiNKA4tNlDwgwz1omIzSywJ6OGDhaS21gsWLIyhrfOel/ppjEp8f7i2UIeqYiNqDBXtw8QqJm9wSLDyJpoB5BMG2bIV/fbAung/ux74j4pQVxRE1moh8HvU1FtP+CogmC+7xUwfBXfrUosZybTIrfuBuF5RHk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <f26dccc4-740b-4acf-b1cb-fe052a8e8424@amd.com>
Date: Tue, 18 Nov 2025 13:45:01 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 8/8] x86/cpufreq: use host CPU policy in HWP driver
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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
 <c0ed26a0-6e34-4aab-ad7d-44b9f596b1e9@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <c0ed26a0-6e34-4aab-ad7d-44b9f596b1e9@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: BL02EPF00021F6B:EE_|DM4PR12MB5961:EE_
X-MS-Office365-Filtering-Correlation-Id: 44f6ac30-03e9-4901-614a-08de26d294db
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SWd1NzVJYjhEMU40WitGeU5hODJBZ2l5ZUE2RFZzb1NxS1JrdjRFbERTRHMx?=
 =?utf-8?B?ZnVFeFhXQ25vMlBVU1Q5cFNjZ0NQcFVWejJqSlIwVFMxU3Rwa3hpb1J4b3FL?=
 =?utf-8?B?SWl0QnhmRmkwWll4NUpIblp1STZVVHYvbTFLcTZOYlVncWQ0eU9aSTRwRjNp?=
 =?utf-8?B?VCtrTHlwRkFVQVpKYTlPVUtRdVd3OERHR3JJajk5OG9vMUxtRy9Ja0h1dVlp?=
 =?utf-8?B?aFBVR2ZxYTg1U2N1dHFRSEp4MGt4blVjbnFlVzRPYURVeVV2Z3ViMWZUL3dD?=
 =?utf-8?B?YTdSRlBPd25WLzdDcERSQnlqSnh4RzdSTzV0N2ZhR2ExSHlSVThwamZBNVpX?=
 =?utf-8?B?NTJDQXMxVElibUh6aUFlVkc0c3pJYlJzRlBKWTQxeldRSFZtMzVUN0k1RUk3?=
 =?utf-8?B?WDFrdy83bVJQSTJqalMxQlpMdkRudGY2eW1ldkxFdWFxaXJDckNQajB5Lzd2?=
 =?utf-8?B?WHR5TGVTUWREalg0N0J4NlV4alk1c0dNbDVHRlFYOVNzZVdSYVpuRE1lU2c3?=
 =?utf-8?B?MmZpcythQU1qVXNGNU1zMW9QdWw4UU1XYjdHQVRReXVvem56cnpLQ3B1eWhL?=
 =?utf-8?B?VFBWQWc5MURKeVBpQXY5QTVZRElOT1RIQTd1VzUxL0RqUjEyQ0FjU1Z1eElE?=
 =?utf-8?B?akkyTmMyZU9lUUhFdVk2QjZKcmpscG5jUk85dmxrUVhnK2tWYW9Sdk5WM2xW?=
 =?utf-8?B?OXZlb0N2eUptUUZlWi9XQkZ4a1dwSGhPVzhJcVE0UjVoUHh5VVpnQUIxYi9y?=
 =?utf-8?B?R09Zd1ZLeUhhUGoyODFrcFhORi8wUEs4NEtLR3RpNGRvN0ZNYVhNVWhuRitM?=
 =?utf-8?B?ZHE0Vk96QjVpMnZOTXVRV0FHV2dTNHRwWEZXb01XRmxmSDlsaW5PbEo1RTNJ?=
 =?utf-8?B?UVRXTjlYdlRHNHNmQ3ZLb3VzOTJFRUpsNDJJZkt2WEp1bVIrS1drVzkzNWZm?=
 =?utf-8?B?cjljQXo1cjJKYUMra0crU0dGQytqc3N5NnFQNlA5S01UOHIwWmtPaGxKb1pL?=
 =?utf-8?B?UDl4K01YYWJEdnZlUlFjOWVqcFRMZk9mRTJENnNVMUx3bWxOZ2RNdWxocUx4?=
 =?utf-8?B?cURaOFF5aHYrRjRIZlpVclN1RUdiVWtRdjQ2aTFQVktSSVVPR3luQktRMjJj?=
 =?utf-8?B?U0tJZjdxWG5DSGhsaWg2N2VOYmNSS2NsRm42eUlxU2VvVHZJakFxZGN3RVB2?=
 =?utf-8?B?TzI1V2kyKzFJOWk5TWRudC92VnVyRGVyMHhRaGVodnBzSHJPOGlBQ0x4Q0pa?=
 =?utf-8?B?cFRXSkxpTWt5ZStQQVN4QlZlU0kxOU9qT2Q1VE5PODRjOC9yWTJpdzJiNHhZ?=
 =?utf-8?B?M0xja1crcnQrNzRKUTJabGlPMjNYL3gzcThxMWdybkpzUHZ5SkpZdlJRa0t0?=
 =?utf-8?B?TXFkeDhmQ3M4NTRpUFhGQVNMSlhFa2lyVVpYYVl0T3BDcld0U0k2RGtUSkpt?=
 =?utf-8?B?SCtxQnJPOVJ1VFV0cjZwa1I4MWRBMWxFT2kwNGhEb0VISlpDQWx0azVpSy83?=
 =?utf-8?B?dG5XQ1oxV2pLR1lPUzJrSnVVY3ZyQUFCczJjKzdpYXFUKzJtSm1zYUVSdkVP?=
 =?utf-8?B?ZHpNZXB1YWtraFQza0dvWFZlWmNGYkNPZUEyNW9VclQxODZRUUYrd1BzMUow?=
 =?utf-8?B?ZXgzcWpBUVNPL2UzKzZ1eEp6d2h2L0YySWlWWUZLenpqTjVEQTNjSzRmQ1JC?=
 =?utf-8?B?ZVVERDhpUHExejFLMTI5RDdTd1RDNDB1dUF3U2NYY0dpMXQxQm5yMFh2UHVm?=
 =?utf-8?B?T3RDMjZqYUNqckVLOUw3cEZJVEVGSVc2YUZoYk5xYWlJWU5DL1lVUnpGQlhv?=
 =?utf-8?B?a1Zicks4NTZBcW9hMkhUZy9YZStMK0NTamhhMTc3RldXN1BVMk40SXB4eDJJ?=
 =?utf-8?B?VXdHcTdPaW1QUTNpMUF6ZjFlbE5SVjJCY3kyZGR3bk1jV1ROWm0vejU2bHdq?=
 =?utf-8?B?S1NuUDdyV3pXQ0dSYXc3ZXhFSmV1V282SVVhaXhFTEVLenJsMENnYVZ4c0Fu?=
 =?utf-8?B?aHZWbC9SaFkrTnUwaFdzeEsrSVFJaUpGYjF0K0c2VXBkNytIS1BVOGFZaU9O?=
 =?utf-8?B?RDdKbmJzYXpwdDNTUUpDcU1uRzlDNnFjUjRWUTlZVFpQL2h0S3djQmRBZDdX?=
 =?utf-8?Q?4Yr4=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)(82310400026)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 18:45:01.5140
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 44f6ac30-03e9-4901-614a-08de26d294db
X-MS-Exchange-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:
	BL02EPF00021F6B.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5961

On 2025-11-18 10:09, Jan Beulich wrote:
> There's no need to invoke CPUID yet another time. This way two of the
> static booleans can also go away.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 19:30:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 19:30:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165291.1492079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLRPD-0007mU-VP; Tue, 18 Nov 2025 19:30:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165291.1492079; Tue, 18 Nov 2025 19: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 1vLRPD-0007mN-SE; Tue, 18 Nov 2025 19:30:23 +0000
Received: by outflank-mailman (input) for mailman id 1165291;
 Tue, 18 Nov 2025 19:30: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=m/+5=52=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vLRPC-0007mD-4v
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 19:30:22 +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 01c61953-c4b5-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 20:30:15 +0100 (CET)
Received: from PH0PR07CA0038.namprd07.prod.outlook.com (2603:10b6:510:e::13)
 by BN3PR12MB9595.namprd12.prod.outlook.com (2603:10b6:408:2cb::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.21; Tue, 18 Nov
 2025 19:30:03 +0000
Received: from CY4PEPF0000E9CF.namprd03.prod.outlook.com
 (2603:10b6:510:e:cafe::32) by PH0PR07CA0038.outlook.office365.com
 (2603:10b6:510:e::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.22 via Frontend Transport; Tue,
 18 Nov 2025 19:30:02 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CY4PEPF0000E9CF.mail.protection.outlook.com (10.167.241.134) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Tue, 18 Nov 2025 19:30:01 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 18 Nov
 2025 11:30:01 -0800
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, 18 Nov
 2025 11:30:00 -0800
Received: from [172.27.232.218] (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, 18 Nov 2025 11:29:59 -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: 01c61953-c4b5-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UJzzujtLpy71viokKwn42N0IqeGUYBnhgPcGO4cNvYbYmwEx5DaPAqiIQ3+FIrmPVaw+a7Dx6zg6PouTmQ4qIaWE992h4CUT2IjkiVxkiE4V9xyUlHzYfKWDqvd973m8uH4AcTgnZxRyP/MeVc/k9eaFUn5qS0iUBVmKUmDEI0kigpXMtGF6SzeThHnR4Ltt3nfCd4O51a5k02ZkVj+zeq6dpPGyBGsRegdkLpbH63UVlfg1dZeBG4LnQKf1TTAaaycXG4nPbAjU/kw7aQDcrj7+uCXYWQdadDlmd7o/x/vqNHFdtVqUG45UvqUa4hr3X/IRWu/BsREb1ZUKNQxkrw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gPMwguJp3iCVFCAU2IdtMUQbCsg8mF4I3n3hDYTdZEA=;
 b=w7FXpUbriRKUDLeGHqnULCy0KadN/B32e3TpFpkE44ujtjqpp1tHiKJ9t9ewQsAlkaOvhWKqVEs95VjRUw1YcCcnDDHd5+dRSqpwle4/17N0hNVJOnLIb4Owb0ymA9JY18cCL7m5sC2kEOYXAeqnxAot8NQ/GhFnlsF7Lau45Rb4EDMtxd+S3hoX/1Ha3gRErLhIm3dfy/V/4L1LllMVxLoGrJO5R9m6FQtaBsiBXSWTZPl9854cf+Q+6ThDdHIBTt4lkygw8ZQw+csJuYWtQ/z7LNcwYxITAYKsEYoI7kVdY1BxgGdKy0xmorEcjI7ZLZ1n0zaqMmwWFogdVlM/ug==
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=gPMwguJp3iCVFCAU2IdtMUQbCsg8mF4I3n3hDYTdZEA=;
 b=q+Z9VtEqLVNuVISK2N7D9S5piImacxKmKy6hWdaWfBKg0YsAVQ3+R2Ud1QtY70iI4kx4RFjnRx3GXb2HZFNbXCExAicUMz1N+6Bab5jGt2vfYWf0Sa77Sqm/vIH13qcHUuI1hzo98JTEV7AZbUajxU7G4Gz117EF2zw0tfNzSLo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <120bb273-60b2-4405-8db6-defc27715250@amd.com>
Date: Tue, 18 Nov 2025 14:29:56 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 28/28] xen/domctl: wrap common/domctl.c with
 CONFIG_MGMT_HYPERCALLS
To: "Penny, Zheng" <penny.zheng@amd.com>, Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "oleksii.kurochko@gmail.com"
	<oleksii.kurochko@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>, "Orzel, Michal"
	<Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
References: <20251013101540.3502842-1-Penny.Zheng@amd.com>
 <20251013101540.3502842-29-Penny.Zheng@amd.com>
 <c18cdb1c-f2b3-4eeb-b064-670c86e19e67@suse.com>
 <DM4PR12MB84511357C8F6FB1976244CA0E1D6A@DM4PR12MB8451.namprd12.prod.outlook.com>
 <ea81a0f2-d3d9-41f4-ae88-1426123129a6@suse.com>
 <DM4PR12MB8451B211FB0F01DD1F744502E1D6A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <DM4PR12MB8451B211FB0F01DD1F744502E1D6A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9CF:EE_|BN3PR12MB9595:EE_
X-MS-Office365-Filtering-Correlation-Id: ab3515fd-cdc6-4265-7e92-08de26d8de45
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TjV5dDRXazlCcXlNSVc3K09NODZCL2lJS01GQ0tKcHU3OFcvS25nYW5NYi8y?=
 =?utf-8?B?SEJRNzFzQTlPc2t2eEtmcDI5NDJGRXJSRWNnTFVkYUkwMzZhTFRndFdnRGts?=
 =?utf-8?B?RHZGTklWalRqelkrUVJXcS9aQW0vRGV4RmNsbWNLQ3VvOGt6QmhuZ1RoU25w?=
 =?utf-8?B?U2FZSW5RaXVzaDdnM2IyRGtzeWJvNnIzcEVWVTdxY2JjSFNOWkgzTlNqdlVy?=
 =?utf-8?B?R3c5RW0ybisvdVZvcXBhd0JtN1lUT0ZVVHdycUowbWdZSEFoUWZnVXc5MWlp?=
 =?utf-8?B?b0pMMHNIK2V2K09KeFpPREtCeWI2Vk9DWHcrSStvZ1lpZ0QyenhncXdCano5?=
 =?utf-8?B?aVdWY1UyU00zdEwwRURqSEpsc3BVelM1aGloakZxYkZzYkZKVUdPZE5PVWZF?=
 =?utf-8?B?YnlUOEhUaDU0YTZpeXZKT1dKVG9TZ3cwMDUxMDNjdk4xdWFPYTFmVEFUQmhZ?=
 =?utf-8?B?Y21Xd2V1TWFXSi9Kb2Y1bXZhK3dFd1VONURha0FmR29KeWdYYjVUTzB3SnNa?=
 =?utf-8?B?S3JURStoTk1NVmhINFRTeGM0TllXTUNZbXNESDFSTWZpNGQvVmhPZHlHZEgv?=
 =?utf-8?B?cE16eVhJS3JmcWQ1VWVsYUZ1WDZDTmVsWU5veG1EL0pDd1JaTlA5VVUrM2Z4?=
 =?utf-8?B?NngzdUNLb3N3RlFjMUlZWExza3lhZTgrcm9yMmFNcXdXMkZERU5hV0ZMVXhF?=
 =?utf-8?B?RW5nb0s2ZktKSmFwajNJTm1FSWNMazQxT05mYzF6VjhMVGxjYVFVcFlnckFl?=
 =?utf-8?B?RGY5M01pTEwrZUtWZEhaTmRsc3R0cEN0aGFTRUxwWTA1c2dZZm52a0xGM2hC?=
 =?utf-8?B?dDFxb1o0S0t0Tk1PNXZkUmVycnd0bmRUNHQ3eWdaa3EzaVlEdjZIaUMvSE5K?=
 =?utf-8?B?NW1UUFdIRnBtaWc0UnNzU21zRDEvd3BHeFNseVJOWXNPWDc4NHNhd2FZZkh2?=
 =?utf-8?B?Ym9wcVMwWFRwT3o5akdDWjQ0L0JGVTZ5WUhFM3R2VUgvNEhrWk9QZG5uWVAx?=
 =?utf-8?B?bWVoeFhhK1E3N3k2NzRiRmZmM2wwK0ZIV3JQc1pxYUlMdW1MNGRnL09Id29K?=
 =?utf-8?B?M2JMOHN3UmdJajBUSlBkazQxNytDa2RHekRUQ3RzSUNDNmhucUd5am4vS1dh?=
 =?utf-8?B?Z05PamdwSXJtM3pZQnkxVzZvdzJTY25Bc00vSitKZmNNNnJJK0VBYkpudzIz?=
 =?utf-8?B?ZW5Yc0NGcDVUUjJ3TlExT3J1ZWkwVlByUjBrWVdKOEpCMWtqektJNzMzM1g3?=
 =?utf-8?B?eWR5TWsrQk9Edks0dms1YjJ1NUJWZDUxRXlBR1ZaUHZFaklJT2FGaDgyalpk?=
 =?utf-8?B?RVlwZmIzdmR0Z2pSSjBBT29SR090cjJSeHEyT0hLeEtCRDloNCtwVlM1UE5i?=
 =?utf-8?B?T1BNVWtwakhINDN0TDNDTGRoWFdFRGtpWHZPRUs2VXd3SGJzNzdOOGs4UkZz?=
 =?utf-8?B?OXNRVW9rZkRkV3llMXZ6NElTZ0F2elExQlVXYzUweXVLRVBJaFI5bTRPbDJ4?=
 =?utf-8?B?Wms1M1U3SWtvNjVvNmw5dHNNc1pEQ1Y2cytRRnNSRldQMTdyQjR4Qm1ydkpR?=
 =?utf-8?B?RHh5Tlg2R2RWQ2ppQ1dyekUvRmd3OWlPUlpqTTZvS256M3dJYnVFdUtwWUdv?=
 =?utf-8?B?T25udEJWT3I1amtsMWtHV2NmNlpGRVdUQzUxTitkRTBxVXlGVGE3cnZLMHdx?=
 =?utf-8?B?Q0FxeENEOWRvMFRqVS9yWFE5K1ppQmozOTdyeUE0QWY0T1FRSEtSTWZTNVNW?=
 =?utf-8?B?OGhKMm5UWmxBQ3I2S01mdWl5VjUvUDl4ZHBMQURBUHJjSmUvWVVwTy8zY2M4?=
 =?utf-8?B?NExVek0rRmlWUFRiWlNseTA3bE4zV1JDc1dNMk9aRHZXaVcvMTdHRWRMSk5v?=
 =?utf-8?B?dThVdCs3ekFmbG1rVUZaYnp2NE1jZGhCbnNoNlZoQi9sR3VTRU1FbEJFck1s?=
 =?utf-8?B?RDArek9pZVVjSEtSd2kyOFFrSXB2dFU3TEJyMVNHdjkwZ1R4Vi9lL1dqL0di?=
 =?utf-8?B?UWRFUnZQK1VwN1JtaVFSakVuVnJtOFRCWmY2UjdldEtvZXBJdjNhRXdZbW4w?=
 =?utf-8?B?Ylh2aGV1UEhDNmhqZndFSTVwTFhnYko3Qlc2cnBqTWxDM0RZMzVDK3FDNXZl?=
 =?utf-8?Q?3z/g=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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 19:30:01.6195
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ab3515fd-cdc6-4265-7e92-08de26d8de45
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9CF.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR12MB9595

On 2025-11-18 02:51, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Tuesday, November 18, 2025 3:14 PM
>> To: Penny, Zheng <penny.zheng@amd.com>
>> Cc: Huang, Ray <Ray.Huang@amd.com>; oleksii.kurochko@gmail.com; Andrew
>> Cooper <andrew.cooper3@citrix.com>; Anthony PERARD
>> <anthony.perard@vates.tech>; Orzel, Michal <Michal.Orzel@amd.com>; Julien
>> Grall <julien@xen.org>; Roger Pau MonnÃ© <roger.pau@citrix.com>; Stefano
>> Stabellini <sstabellini@kernel.org>; xen-devel@lists.xenproject.org
>> Subject: Re: [PATCH v3 28/28] xen/domctl: wrap common/domctl.c with
>> CONFIG_MGMT_HYPERCALLS
>>
>> On 18.11.2025 07:43, Penny, Zheng wrote:
>>> [Public]
>>>
>>>> -----Original Message-----
>>>> From: Jan Beulich <jbeulich@suse.com>
>>>> Sent: Thursday, October 30, 2025 9:40 PM
>>>> To: Penny, Zheng <penny.zheng@amd.com>
>>>> Cc: Huang, Ray <Ray.Huang@amd.com>; oleksii.kurochko@gmail.com;
>>>> Andrew Cooper <andrew.cooper3@citrix.com>; Anthony PERARD
>>>> <anthony.perard@vates.tech>; Orzel, Michal <Michal.Orzel@amd.com>;
>>>> Julien Grall <julien@xen.org>; Roger Pau MonnÃ©
>>>> <roger.pau@citrix.com>; Stefano Stabellini <sstabellini@kernel.org>;
>>>> xen-devel@lists.xenproject.org
>>>> Subject: Re: [PATCH v3 28/28] xen/domctl: wrap common/domctl.c with
>>>> CONFIG_MGMT_HYPERCALLS
>>>>
>>>> On 13.10.2025 12:15, Penny Zheng wrote:
>>>>> --- a/xen/common/Kconfig
>>>>> +++ b/xen/common/Kconfig
>>>>> @@ -646,11 +646,13 @@ config SYSTEM_SUSPEND
>>>>>        If unsure, say N.
>>>>>
>>>>>   config MGMT_HYPERCALLS
>>>>> -   def_bool y
>>>>> +   bool "Enable privileged hypercalls for system management"
>>>>>      help
>>>>>        This option shall only be disabled on some dom0less systems, or
>>>>>        PV shim on x86, to reduce Xen footprint via managing unnessary

"unnecessary"

>>>>> -     hypercalls, like sysctl, etc.
>>>>> +     hypercalls, like sysctl, domctl, etc.
>>>>> +     Be cautious to disable it, as users will face missing a few basic
>>>>> +     hypercalls like listdomains, getdomaininfo, etc.
>>>>
>>>> This is still too little, imo. For one I'm not sure "users" is quite
>>>> the right term. I'd say it's more "admins". And then, as mentioned,
>>>> there are a few domctl-s which are usable by DMs. Aiui device
>>>> pass-through may also be impacted, which imo will want mentioning
>>>> here as well. Or else, if there is an implication that DMs aren't to be used when
>> MGMT_HYPERCALLS=n, that is what would want calling out.
>>>
>>> How about
>>> "
>>>          Be cautious to disable it, as admins will face missing a few basic
>>>          hypercalls like listdomains, getdomaininfo, etc, hence leading to
>>>          have an impact on xl-device-passthrough and restricted DM.
>>> "
>>
>> Much better. However, why "xl-" and why "restricted"? Neither aspect matters here,
>> unless I overlook something.
>>
> 
> Later, in hyperlaunch scenario, device passthrough is still needed, but it's not current device passthrough mode, which depends on xl-tool-stack to de-assign it from hardware domain and re-assign it to guest. It will be limited in boot-up stage, and configured via device tree only. FWIU, we may reuse VPCI framework, but commands like "xl assign/deassign xxx" will not be needed anymore. PLZ correct me if understand wrongly, @Andryuk, Jason

Yes, this is correct.

> 
> And DM, like QEMU, is still applicable, but only supports a new machine type, "pvh".

vPCI is used to assign the PCI devices to a PVH domain during boot. 
QEMU is present and provides virtio devices, but it does not play a role 
in PCI passthrough.  So far we've used independent PCI segments for vPCI 
and QEMU/virtio.

Anyway, maybe something like this for the help text:
"""
Management hypercalls provide the means for dom0 to manage the overall 
Xen system and other domains.  This includes the hypercalls needed to 
construct new domains.  In a dom0less or pv-shim build, they can be 
omitted to cut down on the Xen binary's size.  However, this comes at 
the loss of significant runtime functionality.

Unless you know what you are doing, you should enable this.
"""

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 19:42:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 19:42:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165306.1492088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLRb5-0001Sn-2O; Tue, 18 Nov 2025 19:42:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165306.1492088; Tue, 18 Nov 2025 19:42:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLRb4-0001Sg-Vx; Tue, 18 Nov 2025 19:42:38 +0000
Received: by outflank-mailman (input) for mailman id 1165306;
 Tue, 18 Nov 2025 19:42: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=YPWA=52=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vLRb3-0001SV-8E
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 19:42:37 +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 baf82344-c4b6-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 20:42:35 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB6381.namprd03.prod.outlook.com (2603:10b6:510:b4::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Tue, 18 Nov
 2025 19:42:31 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.009; Tue, 18 Nov 2025
 19:42: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: baf82344-c4b6-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gZrAxy5sO1FnxnFcWcdbpTIuvd/PI9KkeJmc4osCEr+5iWVY6McVatIlZqIXI8r6X2j2Rih7Mnv/o6xOcXTKKeMgIa0sWIAj9D56OJm3GE70xymdbYFfGMF/6/iJnUFaoRHBZvJI42uf5y7t19gLY/tddhK6PrEye/CduIWK259eRqzxiVQFk5S9DypuAowiiTMu2sgUTGdp7dN9zHeKHwIH8CCGuwNYiH/k8u/5d/HsQadpA3k60eNT21s3rAUsdKjTV8uZCd0oW/mHN/bnWHBGmsgKHZwu1oxr5lVoWtxWw2pjZUEbIH4AxwvBBMBLwgZbRJ0nCe985apaIpJOQA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Y7us3+rDzc8EVNdKmlUwZMDntOWgubbA+JKPaclBEaQ=;
 b=RIBE1Sog9/vWG5S3Xr66hJjsvCla8plXMMkQWpKaiz1dQS8VtMZgnX2q8dvqa9XiZx1eSC1IeUr1G8aUDWLRmnORP1bDI5DJXgTgB52yFmynqWUws/XMlSHpVnobTs0rO2gC5IrkeOt0oi1NHJC+tXmtCVPfqXgz07PCKYJMbo6jyGe/sc21deBL0EGG4kIUJa7ELumW16rO/NG+aRfkcqcuh0pFPYQxaI+wo6cyrN2X3fBkPfV3fS7eu5UBmnjWwQjimaXDia4CosxWCxVYmRUKVG7Ldk/fpIH3rZHUy0d9wZoC+tMqsneMTw/YRnqEEw1PuoDdif4GO4ywdA+xPA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Y7us3+rDzc8EVNdKmlUwZMDntOWgubbA+JKPaclBEaQ=;
 b=vxZh75RXMxuw1pOSje1B0bd0SCbkeZPfZD4KNdKitc164d03yBhcxdcKsRcuyb6kCW0jEcqGXEfo2zJhGCrsLWHgH3KH3avcmM+tiGOcBB7qREeYkDdvnRojYi7bKZSQCmOQzFrTIRTNDKYwy64iXOEjBh+ln4ApP1/PAPc4/PE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <15a614d7-1646-4ad7-a298-edb77baae279@citrix.com>
Date: Tue, 18 Nov 2025 19:42:28 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 6/8] x86/Intel: use host CPU policy for ARAT checking
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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
 <65cb802c-922d-4bee-9dee-566367bec6ed@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <65cb802c-922d-4bee-9dee-566367bec6ed@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0225.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:b::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_|PH0PR03MB6381:EE_
X-MS-Office365-Filtering-Correlation-Id: 8fdf05b3-4b75-4411-8e39-08de26da9caf
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?YXVZN2lJVmdKd1RZM3NaZzFDQU9kYkp5S3ZnQ0g1VFhMS3lSRC9RN2VvRGxo?=
 =?utf-8?B?Y1FvdzZYWXBsWHc0NENsUDNYdDU5ZTJVb1hWOXpzb2NwOVEzMjJGNXdwS2Fj?=
 =?utf-8?B?ZklYNzhBY0ZPV3E0TkczY1ZKaFBGaVBBYXgzVHF4UEN6Z1lYc0tRc2I5ckY5?=
 =?utf-8?B?dFVRcEt4bE1UMEdxZHVnSitiTzRNcDk1M2xqdmVWK0V2cVk2bTdjSVF4RzEz?=
 =?utf-8?B?aG53cThoOUJLNk5vVU9sUVhvUmhSSWJsZXNDTnR2SFVxMDViQ0lQbzlxSmNq?=
 =?utf-8?B?N2IvblUxM3B3OE5XaUxVN3hocGM4KzVrRFdXOXNLb0ZJcnhRM2hiTkFmRU5q?=
 =?utf-8?B?d0xCZnZSY0hSVFNiazh3NG1HbWR6UjJNZC9tcWZSR2N4aHowWmF4OEt2ZWpi?=
 =?utf-8?B?T0xaSXJkQi9ydjA1Q0J0U3NZellkNFpwZTY0aHRLUFVZWkl3MWM1UXJjbXFu?=
 =?utf-8?B?N2d5QlIyNEwzN2Z3MmlvdndNWFpMMWxKUWlPZ2RHMXExWkd3TE16elVpUHRz?=
 =?utf-8?B?aVdUd3lmeXdBcVVtR0FyQ1Y3Wk1ibm9kRzFNK01vTVFScmpDS2hqTFpTYlM0?=
 =?utf-8?B?emR0aUttTVFXaUNMZjF6c2FQY3NWK20vQldqOXpnWFpTZ0c1SU1oaHRweEhJ?=
 =?utf-8?B?MFNXbUVMYU96cUY0VTM5Z2FFU1FHN0sveXF5QjV0MXNtTHhwTklmU1E4a0NM?=
 =?utf-8?B?MXdYeGh3eHFwN1hpUVlHN1IxcXdXd3pQdWM2bDRhU3k5bkdHdCt6bEdBRkE4?=
 =?utf-8?B?UWt0SXluNS9EMUlKcjgrQkxScDhZdmJaOEdmSTZ0c0JWL3RFUGJkbEFRVDIz?=
 =?utf-8?B?a3RiTGpaV2k5VFpDbEQxUlRCWGI2bVlwcm9rb3pubmxyL3QwczB0bm8yOGJB?=
 =?utf-8?B?RGM3QkJYUkIvYWVubnNSeDQrZ0VGMjdHUm1oTGFqOUJsS202WS9VcStpTmFE?=
 =?utf-8?B?amk3cWlLdi9JdmJQcVpxK08xMXpvYTFLeXJKazQ2aytPWEtoZ0RxRDNCTVFm?=
 =?utf-8?B?d0tEMFR2NFVYY1FVOEpiNTVuNG1mZTVvQ0ZQSjJnVk1ONVJVQjgzem5yb2tk?=
 =?utf-8?B?OVh0NldRSk91bmZUNU5GcHlqcGd0cEl5VmV2ME9aSnp3MDBTM1ZDU29uSWxG?=
 =?utf-8?B?WC81M1krWllPMm5sMmQ5NVRpVFI4Z2g2VUg0M0sxQ0VML1lURXFNTzM3M0ZD?=
 =?utf-8?B?dSsrSGt2U2NFazdDT2pJYkMzQTFXNllqVGlXVGd2YUlKcXl3a0JRK29ZUEdz?=
 =?utf-8?B?dHdvQzdhczJEY3lIWEdwS0FEa1djNlp6TVAvMTc2U05kUW9ndk4vS1NOMmdi?=
 =?utf-8?B?Mkhkb21oNFcxaURWb2JUYVVNYnd2M1ovd2wxZHE2bzVld2RBTlVNa0hGYlRD?=
 =?utf-8?B?R3I0VFB3eTFpZitIc3dvSWJybFBRek5hRkRMZEJhTXl2RDBjSi9ZQzRJcDBY?=
 =?utf-8?B?T1hlTWpUcUUxSEhEMFZXVHB1RHhyYzFCWEdnRUkyMDl1NWpZWVJFNzcwME41?=
 =?utf-8?B?SWJ5U3crcXZRM2FYcGE2am42Q3FZODA4eW8vS2hmdHZwK255S2hvNnNDMWZr?=
 =?utf-8?B?ekxXZG9tSE14Q0F1MUZBa3VJTTFKT1J6clMvWWNVSFZWOWQ2MCtjazI0MW1U?=
 =?utf-8?B?WER2UFlWK1l4OVRXTzVGeDQzVVFjTnBvbS8xQWRaVkN4Q1ZoRTQ2N09nWVp5?=
 =?utf-8?B?aUhCQXBVNW0zdzdnbWtVaG1VUEp3SFR2QU5lMEVuWmZQSy9SZVhpYUM3NXVV?=
 =?utf-8?B?dVNKRXlxSmxhYXk2eTUrcVQrVGgxWUtDSG5td3lua0I1YjdCdTV6QVpGYWdo?=
 =?utf-8?B?eUVDYWhwUERRYi9yWE5FNTNCRCtJZlQ5Y2hnRWxmVHFGYnpOc1loQnNPMExx?=
 =?utf-8?B?QjA0Q2xnOWhNM3cwV3dBVUExVzQ1WW5qL3ozRlFsZEtBU1BjNzVKVTIxRjRh?=
 =?utf-8?Q?+n7JmUlmAPUNGMF7MpidiBNymgzAL5TJ?=
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?aGluOGpHMWJxMjBhRll2SWhmR3JobXNWd3ArcGRUREJnNGN3RzJrRjRYQndT?=
 =?utf-8?B?NEdNOFNkWHJtWUY3TlBVYkRmVDgrM1Q0VTg2OFlDZ3ZvV2g0YXZjRFVYK1B2?=
 =?utf-8?B?OG5MeWRIdlhobzhLbHZkMVhEZ0lHYkdmdHNkMVFTMVU5dVlvVjRDM0M2UUNi?=
 =?utf-8?B?c21iNW9pYXBlRHV0T05kWjNod1lHK2lIVThQMjcrNkNHUlYvakg5bUl6R3Vl?=
 =?utf-8?B?VXNYNW9KR21MMEc4Q0FvSzA2YTdVVGp5MjE4OG1kYnZDNU5GRVE3cGlHc3FC?=
 =?utf-8?B?U1p1NXRxa3lGRlpFeTU1emJ5OVRWSUVGNFR3ZnkrZnU2cEIrVUFYVEgzc0Z0?=
 =?utf-8?B?SlIrelRmdy9Ia0ZvbWFORElYcXMzRkl6S1BFL1VYN0dqTm5PSUJqZWhOcHBX?=
 =?utf-8?B?NzNVSFl2UER6RnNJZWdUYnlpT05lVXo3RjFPZWh4ZVZ4RE1YdWhRcTJzU1lm?=
 =?utf-8?B?cmtwbVJWQ2VKQXZQRFRjYWJlanM2Z2VidVBGNlZJN24wTXpDeDR6SnY2cjFx?=
 =?utf-8?B?d2lKUmU1TUJiaUJLTzNKcng2bHF3OGVOZ2NWeG1YQ1ZEUVVSV2djK0E4YjB5?=
 =?utf-8?B?dDQvenllVElLWUsxeUlRdzQ3R05qQUJFU3VRcTI0d2xzS0xzcEZIaUs4MTYv?=
 =?utf-8?B?dHBRa0N5R2oxeHBVZzJ2QzV5M3NrZDg1VnFleGRiaFBJTDgrTC8wc3E5YVJB?=
 =?utf-8?B?L2o4ZDN5bFoyRzBKRkx1NEJPeGdTK2hqaTBYaEUzVTl2b05TQy9YVG1Hbi9p?=
 =?utf-8?B?WksyVVBuNFpBSkxjbW9oVjlhZUFxdm1pKzZ4bUV1QTFWNHZ6VGx5aks1UW9T?=
 =?utf-8?B?ajBKV3Nac1hPZ0N0cXBYRTBqOGwzc2xpMnVESnF6MUNnTG9zUU5CSnhOaWox?=
 =?utf-8?B?bGFxeXRsYmptdjA0cVRUeEhPWEV2TUV3bU5KN0Y1YnZZNG83S1FKY2s0Rk1P?=
 =?utf-8?B?L043ZlRqSEQ0WDVmZkNHNkhuNk1YK1R1Y0JUQkFpYWFRRmJSMW5LVDRZRWFW?=
 =?utf-8?B?R2V0N3ZLZkVQeVlrbzZtV3luWHdLRDRyckFnWEJ3WkkxenN3d0NZVmdhd0Mx?=
 =?utf-8?B?ZVh6eEsrTlRTTHBieGo1MzBBeVkzOGp1Y1hkZEsxTHAzY1hMT3o1emVhNVB3?=
 =?utf-8?B?UVh0dVptV0VlWVM1a010MlRTY0tKeFgyS3hkYXZaZmhpVEVVcVk4dkNTYWlw?=
 =?utf-8?B?dkUrY21uYVBaTWtvbDBEWWNDS3V6RmVRbzkyOHE0OUNWWG5LVFBvZ3A1OFdF?=
 =?utf-8?B?VklZRW5XL3VQVGlvR3ZxWXM0c2srZlJMdlZ1N29pTmpGSWFMNi9oR25FYTY5?=
 =?utf-8?B?OTAzdlhmemYwRzhEajhlTU1xOTM5SUN5UnF6WEd6T2dYemJBenhublp4MWxJ?=
 =?utf-8?B?clpsNWVnNGdidnk5bXptUVdJU3p4Q1hVMzFkVE85cHR3R0hiT0J4SHdONFAx?=
 =?utf-8?B?V0tGanJJUVBFL1RhVlAwakFWYXJRcTlSY0craUVxQ1plSVJteUZ1OXdWRWcr?=
 =?utf-8?B?SFZXdzFCT0tpVHVpZ3p4cEdDMm1Qa2lNY1pRRm95V0tLTFhMUjJFSFRZSTVa?=
 =?utf-8?B?Mjd6SEhQdnVkV0I2NGRWQzRKOXp1S3A1QlZIZktVNUo4aWRSQXN2cUZVc09N?=
 =?utf-8?B?ZjNRVSt0Z1pPQ3psN1RwU25lcGdBSDE1eXhRaTA4S2ducldXQ2hWTHJTOVpZ?=
 =?utf-8?B?MGdaRWR1QUFtTFM2VFdpMVJNM3BBejVDak1uU2hFaXc2RmlXNFNOeXJlV0Jq?=
 =?utf-8?B?bU95dDJYeWozWktqbitMVnJDSXl1bTN3NmdKY3NsNEt5ekJJVUNLb2prVEVa?=
 =?utf-8?B?STA2dzVWYkVablNKQy9KRHZNV0Q5d1hjRGljYTd2TVRLemJsQ2tNdVlDNWZR?=
 =?utf-8?B?QllSYSsvQzQ5d2E5WnpSZHBOMHY1cUs5SVpnc1AwZkNveXcvT29IeStuemE2?=
 =?utf-8?B?Q2ZZTEhLQkQydVBBV2lLMVdqckpWSVovQ1I3TitGOWRGT2ZWN3Qyay9pdzNs?=
 =?utf-8?B?OW1Wd203M3MvS3JDRDA1bVBMTDRXWWpOSDhOblNuYlp4RCtPeWxNK1U0c05W?=
 =?utf-8?B?QVBmYUhYaHU4SXVzb0FGRzZWU3VnNENJZ3p6Wm1LYjNwbFB1dDJzTkdNYjVn?=
 =?utf-8?B?cm1xQ05maE5SUVBpOTNydU5zb1NUbnRHckxMdHM0dnViblNQc1ZoSjlTZDBW?=
 =?utf-8?B?UWc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8fdf05b3-4b75-4411-8e39-08de26da9caf
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 19:42:30.8284
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: dTnEt/+REqofM8mB66q2U/aC1P+1nIwFCyCvGFyOQMjY9pDOqT8Q51BtIgdpSnB8cXKY/39ULDuqqt1peTfOghqrLw9Obi427SQS2LvdJBU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6381

On 18/11/2025 3:08 pm, Jan Beulich wrote:
> There's no need to invoke CPUID yet another time. However, as the host CPU
> policy is set up only shortly after init_intel() ran on the BSP, defer the
> logic to a pre-SMP initcall. This can't be (a new) one in cpu/intel.c
> though, as that's linked after acpi/cpu_idle.c (which is where we already
> need the feature set). Since opt_arat is local to the cpu/ subtree,
> introduce a new Intel-specific helper to hold the code needed.
>
> Further, as we assume symmetry anyway, use setup_force_cpu_cap() and hence
> limit the checking to the boot CPU.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> The need to move where cpu_has_arat is checked would go away if we did
> away with opt_arat (as mentioned in the previous patch), and hence could
> use cpu_has_arat directly where right now XEN_ARAT is checked.
>
> --- a/xen/arch/x86/acpi/cpu_idle.c
> +++ b/xen/arch/x86/acpi/cpu_idle.c
> @@ -1666,6 +1666,9 @@ static int __init cf_check cpuidle_presm
>  {
>      void *cpu = (void *)(long)smp_processor_id();
>  
> +    if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
> +        intel_init_arat();

I really would prefer to avoid the need for this.

Now that microcode loading has moved to the start of day, we can drop
most of the order-of-init complexity for CPUID/etc, and I expect that
problems like this will cease to exist as a result.

Notably, we've now got no relevant difference between early_init() and
regular init().Â  That was a complexity we inherited from Linux.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 19:43:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 19:43:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165317.1492099 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLRc7-000200-Bb; Tue, 18 Nov 2025 19:43:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165317.1492099; Tue, 18 Nov 2025 19:43:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLRc7-0001zt-8k; Tue, 18 Nov 2025 19:43:43 +0000
Received: by outflank-mailman (input) for mailman id 1165317;
 Tue, 18 Nov 2025 19:43: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=/jeL=52=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vLRc5-0001zi-Vs
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 19:43:42 +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 e0c590b9-c4b6-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 20:43:39 +0100 (CET)
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com (2603:10a6:20b:6::31)
 by AS2PR03MB9791.eurprd03.prod.outlook.com (2603:10a6:20b:609::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Tue, 18 Nov
 2025 19:43:35 +0000
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4]) by AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4%4]) with mapi id 15.20.9320.021; Tue, 18 Nov 2025
 19:43: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: e0c590b9-c4b6-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ArVzEj+sceqFNO5IOtyk8o4elg9g4cvZnYjKlqwn0TV6QhAGdnNSiAhAHouAPuhsKKabHeq/aGrKwbtSM5DWGm9SXGyqNj5XZ0ZVml/giGH1+Lad9Ek8lXyLisPAXVKrQCv4A8NDGsPomc+oMxa7w20npSqPkrL3tTr5MLAeweSDxtQCp4jFP7pJzEgDWB61ex+14uFqGuJube7QF1VPDvc2IjGu+Xfb/DZog1T0TFk8M3TM1idZQ2vJOySMBhx70AYBSEIJ3d2k/+gZQS8qmk3MYUg+VciU99SM6i/jg1K3EWAVSq2ktXUn3rVsao4j1RPrbW93p+3r6Kj5aoM8zw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bd4ODv427YJtT60WZI6Ty3rkCnD2W7OaWuKCYaDTL9U=;
 b=XJaM1GcbfLXY+xQ8EwBiEYHnKpyZ7NY3Zsn5JSip4FH42S960iaw9FgtwF6/ByZp0zWIjj9v/qNK0BVlT90Fnnm1gh7itmU2NgvSaXB8F4glI4cdYnDB0n2fgihkt8BnR3YjSUa1C+z4uZRPWkAemTtVRqALJt/T/6o7kex0cJ32jbsWrodf9fNj01rwnJJ871p8KjwmjaUHPwJHxc1syiKT9+6SSeMQcgXYuYeHy4i3yTo9Pvpj0JLiTx189YCncPFeobLA4t8IuUK6c1OU1mGB65K+e5qtNeXFTdqZSWYbLt4kSM8W+in37zDbGpCLDFZW/BDwPnZW4pAHka6LFQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bd4ODv427YJtT60WZI6Ty3rkCnD2W7OaWuKCYaDTL9U=;
 b=sQleHvIi5XiS1rVYKwEqlyLZdKTVkx2Z1fgz9unzWHfxmmiTPpJgVNtm81HWm8pQL+dVNvU9To+x528DUDFZHlfFqJZBsCk74OhL8/WVm6dufoLY5lKIv1Zxu0Tudor4lptS6IFDblY4DsKNsHma9EwQ/d6WKHSLqLv+DliYDVgqT4HcIA26DsbWYn9aVY7eEDSdD5NubJiKJtddpcp27/CwNXdguCr8pnKZaM1mxbfDznBlXIGtjt+aH3lMX7bJ/yYlCp59wVl8dtBHQU0h6rA1xgGTrj2sOWKD7aYVmGxgHimOWFC4BVos7k/ucyqwhEzPdMpTiyBaW7mlfElkNQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <04e6d52e-a5c7-4684-b806-556d0c14c9c8@epam.com>
Date: Tue, 18 Nov 2025 21:43:33 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] common/libfdt: optimize usage
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>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251114180130.346755-1-grygorii_strashko@epam.com>
 <0557029f-5946-4ee1-a622-842e2698a6c8@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <0557029f-5946-4ee1-a622-842e2698a6c8@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA1P291CA0014.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::22) To AM6PR03MB4600.eurprd03.prod.outlook.com
 (2603:10a6:20b:6::31)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM6PR03MB4600:EE_|AS2PR03MB9791:EE_
X-MS-Office365-Filtering-Correlation-Id: c7883a04-1a26-48ae-35db-08de26dac316
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?aXlNNmxvNTF2U0k3S2dzSjQ0b3Mvb2JWQWRBUisyL1p0ZnUwSlZ2c0tGYWxY?=
 =?utf-8?B?Y0twM3RJcjQyQjM3dTlscmR0Nm9rMXZQVER6dXc5d3hjc1J4SDhLeXJsV01E?=
 =?utf-8?B?QjAzMlRpblhiUk1lSlp6eEJMQThCNUlteWhRb2drUVhONWZSMWZHZ0ViYVZT?=
 =?utf-8?B?OHNaM0hDZW5SMXVVaTIvdElQdk8wVVFwSW1BMzZ5ZXowSGpEU2FlYlBNMmFB?=
 =?utf-8?B?SVNzVUg1cGdUalFBRDdERlZMa25Fd3UzbCtBSWZHd2pVZ2xGRWloekM1VHN6?=
 =?utf-8?B?dnBKTThMazZTSTlhdExzRXBELzZoYWpnM2Q2UWlBZjdsYUErVU1YUjE4SGVm?=
 =?utf-8?B?RHc4VHFmaXRoVWkrRFVKL3cvdDZkWnluTzl5VmlFSy9VbS9rWlp1RGVobkxB?=
 =?utf-8?B?dFlhYWNVbnczSTZJcEg2N2s0OWV6QkZNRVdLMjdxQXoyTGFtbnFCTmlRWVcy?=
 =?utf-8?B?TGJ4WXZpcDlGWHBVODd0V1BMdkdVNW5OQThuWkd0Y3FpN0w3VkkyVEkrUklv?=
 =?utf-8?B?eXQyQk9kRXRPSWNzNFluSzhieVZ1WTRuQ0NtRmhJVnRyLzBuRi9wbW5GRlpp?=
 =?utf-8?B?bThuWjdOVWYyZE1LTW5ZZ2w4MFVMKzkwRWZrSkJXVXpvZ2RIZGlUbXArazh3?=
 =?utf-8?B?VWl6QlBreUVUa3NSbC96NjZMbUt2T3hrTk5LUUh3TFB0Q1hoTkFyb0c0V29o?=
 =?utf-8?B?eEh1SnVuOEU1eVVtWkMvK3hYanFKUkNvcWZEa3JrUXc3cjVMaS80NGg0bFJT?=
 =?utf-8?B?QkJsNnNzS2cwdnNMekJ1RCs1MXZueWR2TzhjK1UrSFB1T25xbjBzWVlpR1c2?=
 =?utf-8?B?R3VoM0Q0alV4V0ozOEk1ditoNXE4aGFuWTVNNWo5N1FVYkE4WkZhK2lJQkdL?=
 =?utf-8?B?Tm9vNTBpZHJCWUt6RFpPcGx5Q1JkWXdHRzJPTzRRSFQ1ekc1WVd6SDVvcTRt?=
 =?utf-8?B?eHJCNzVwczBSWHd5Ty9aZVVsclNlaE1CenNGWm9YbHova1diVzhiaEVNUDh4?=
 =?utf-8?B?NFYzT3dwVXBBMjYydERzUTN3bSs1cG95aWNmeGQxdjdHV1ppcjUrNkVFSnhQ?=
 =?utf-8?B?MlEwRmdGaDZ0eGRtVzhOMU5qbUR3dkpOLzRZL0pDTHJFUVE2UU10VXlqOXRr?=
 =?utf-8?B?RnZPcmZqRWZyRFI3dGRrUDJISS9BNWtsVXVVbitWaXRURnhyWHJMbCtPZzhr?=
 =?utf-8?B?T1pXQnFpWXEzNlZOckt2V2s5WGVyb0pnSVp0bFNYaHRLMUhvL1dEUUlTeGMx?=
 =?utf-8?B?N1VSclFoOWRwYVRLWE5FVkJLS05TbzU4WUJ2ZEpsQTN1SjYrcDBiQXpGNDFy?=
 =?utf-8?B?Snk5d2Zjd3lwN0VZL1MxRC93Zk1Waml6NmZ6RWJOK0hrZVpGL1RZQytpS0lt?=
 =?utf-8?B?Nzd6UUlwNEpkRVE0Y015VHQxRFVJakRpOVk3cVowT2c4emZlK1laQXlFR0ZP?=
 =?utf-8?B?dXJKYVByeWJyM01VWW4yM0NQa0RwcEV6K09pS0FKRUloU1gzcDJWd1JNWVhp?=
 =?utf-8?B?Y1c2ekFEcWhvOWRMOXhWRm5uT3lsYnhkOTVJTVdOaFdsWEpHZ2NlN1VyUDJP?=
 =?utf-8?B?eWF0cDNoVEI3ZWVFdjIyNy9EbVVqM3ZFcnZWOWhjaFVBcEVtSVZ6eTJac2Jo?=
 =?utf-8?B?TlRjREgyc3d5dy9vdDNsKzRvMWZoZ0NvMlNBeTRHT3p6U0QycGU1L1R3M1cz?=
 =?utf-8?B?d3EzWGUxN2VOK0VVVVRRN2tRRVZ4WW51SVVvZ2Qyd29oZUJuR0JleEtCS2ow?=
 =?utf-8?B?NFplOXRzZnAySDBvc1lYU2QwSGdUcnFUOE4zcDNkR1JXdVluMXNqd090WG1j?=
 =?utf-8?B?bFF1ZFVmbTRGanZWLy9ZNzF2UENKMEFWTU9DbUN3VGVuQ21OelJCSzJ1dW9m?=
 =?utf-8?B?UlMrdUlNWXNGWHRGUHJpaGZEVDlJZytyRnR4K1h2cEdmVVhEenFVUHErNDhi?=
 =?utf-8?Q?qa0S364kGUWX6o/5eKx2aQLkkO4BCGUk?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR03MB4600.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cmp4Qit6U1ZIL1B1STFzTE9YaUNwbGZUamtyNy9TWWhuMXRLbGNQc3pFN0Mw?=
 =?utf-8?B?UkpZYWsySXRoNWMxR1M5REk4RW1LaVZXblVZRCtTRFdlUTNWY1hGdzhXSUF4?=
 =?utf-8?B?QkZZenBTSFNYek5maXlXNWxLYXlhWmZZYWx0c2JYWEovOTVyUHU1elRneUFk?=
 =?utf-8?B?bDIyT3ZxbDZNc2JSMHVwRFZUQ2NsM2crYmxKNSt5MVh4dEZaUEdsY3VGMm9M?=
 =?utf-8?B?dnBmNnkxbVZobklwT2tXNVRaTTBRUVhtbTRVTzdEQitZK2FHNnFCNWE2KzVy?=
 =?utf-8?B?QktaMlFoMVFrVGEyclFQTnVQRnkwQmY4ckRVYkdsY0lwaEx3ZUVpeHQ1RkFx?=
 =?utf-8?B?UGNHSkpmaWpWcG90REt1Y1k5UVR4MkVjTkNkcXF0S2hXczhPeDRmbm83Qmgr?=
 =?utf-8?B?bFFEc2IwRy9iSVNsWGtvbkhUeHJMTWN3b1hPazZrVW1RVzVNVnNJSjJMcnhH?=
 =?utf-8?B?WDIrSnNJa3Axa0JjV3JOYXR4d2NPZFRSVU9jdWxGYU9FUUdtSlIrSEdvY0JH?=
 =?utf-8?B?azFGUVo5a1M4SDRYbFZWb3RtTFBVL1E2WDhKdnloN2lJRUVITVRvTkVscXdo?=
 =?utf-8?B?QkN2ZC9UNm90b1VDbHVzbHU3VkVScExnbzc0UDhiZnBFTEVjQkJNWUtKdnlT?=
 =?utf-8?B?bTYrTVZ1UXlvOUJzSlNUWXVONG53TENta25SWXJiaU9uWHBrWmx3Ry8yRVZE?=
 =?utf-8?B?ZGRKZVVoakZyODBYem9zYlFXTjUraytxU0tQazBaQ3VrWEFkQUtuSzVvdXdT?=
 =?utf-8?B?aFNidEdxWnJTSENGUlFxWkVzOUplSXFvRCtiK20wQzVyeTZKR3JGcnVOWnox?=
 =?utf-8?B?MXlBUGd0aGdZYThzSC9za1ArTStSVzZ4ZTVGWjFTazloRmFzVytITWtYNGVG?=
 =?utf-8?B?QXAzRUtwMnBQNkF0M1l6RSsxeHRZRUptS205V3NvbmZId21ZTlZVNVlUT2c5?=
 =?utf-8?B?ajRnS0F2N3RHMGRrVDhVYlM3cFJ1R2lIL1RFdGZmUExFQUZIV0E1S1VUZ0Qr?=
 =?utf-8?B?SDR4alBvRWVvVEV0VzBBa1ZJcG5CWDNZazllU1VEa2JadVB1VzlFWVpiQ0pT?=
 =?utf-8?B?M2pRWVkrTkZzcjZGUWk0MUFSYUdmVXFjcG9KNnR6WWVVd2hGeWgxeTVtWmlU?=
 =?utf-8?B?L0RTbDBBZWJpekFkZTc5UkVUTTl3aG1ISGdNWVc4NzJuMnIyRWpuY0lTcU9t?=
 =?utf-8?B?bG50WXBWRHdRaFRaR2h3T3hnSUtDbE5qU0IyT29wUEI0RUxUSnNhQXNVWVRU?=
 =?utf-8?B?T0xmVnBHMEFBck50WU1FMDZST0ZqQ3M5eVZXMk9PdnFBVjR6SDBrOXNHTG1W?=
 =?utf-8?B?cWpYUWxTZDJXNzVKTnpzWTFhbTlDZ1RqaVVZOExDcGl5UHlqVkZ2RFFaSVkz?=
 =?utf-8?B?S1VwWEhIQlpodkZYVGVqN3V0M3ZIa0ZESW1yUlN6WW1yRGlMV2ZiQzZBYkpX?=
 =?utf-8?B?TGthbWxLUVRIZ3RNbUZJZmN6MWFjZkdDQUhBVGY2anhDaTEzTmZGVVA1VjQw?=
 =?utf-8?B?VHAySFRuU1dpdGdkMk81UzlTRVM2dWQrOW1kVys1MWJwTGpWM2NLcnBLNWdO?=
 =?utf-8?B?S2RsdUVSSCswak44OFZtcUFLSXFSL0w4TjQ2NG1ldUV0cmtKZU1CdjI5Wm1H?=
 =?utf-8?B?LzV6Z1pPMCt0NDIvZkZSMmxKdXdyRmJDZWxPQnVCVXBpT2RxYmJPZ0NFYThi?=
 =?utf-8?B?ZkNBaTl2K0FxT1hhTSt0cHBEL2xQaUlnajVLaWdFUkwwUTRvaUkxTDVQSHFo?=
 =?utf-8?B?REVvRytIeHg1UkxUd3BDMWphNU4yT2thN2NybG9ieUZaTmNOUWV3M29vWHYr?=
 =?utf-8?B?ZW1aNCtoaXlocWV2SDc2Nkg0emV0MFNIYnJqQnc0NXJOditYRzFCVWJXc0Y5?=
 =?utf-8?B?RUpaQzhwUi8vS2JQL2dTZExHUi9kOUpGb1puV3BkNjV2ZTNXQjBwSGZvSk1F?=
 =?utf-8?B?TUJhSVBEclFOdzFZb0o3Q3dGZmdEZERPM1lhV0dOTExvTEd5S0NlL0pWb1Rp?=
 =?utf-8?B?bG83cEZuVVlwT29ZTkQwUmZtTmdpVEFTbTZ6cHhGVzNKdFdaaTZrK0F4Nzho?=
 =?utf-8?B?RDdLa1NoN0FzdUVaVkpsZEdNVjVtcGp1aExKUVg5NXdjYWhDZlkyTmRzQ1Iz?=
 =?utf-8?B?c0VWOXExVk5vWVIzcWhBRHY3c01wWmpNcWZ4ZTF0K0RyUkVPSFF0Vk16dGRt?=
 =?utf-8?B?cGc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c7883a04-1a26-48ae-35db-08de26dac316
X-MS-Exchange-CrossTenant-AuthSource: AM6PR03MB4600.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 19:43:35.3074
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8NjtFdh3a+AMKQQyK1Hk7QnE2nD2fDoCN5Oampis14qP2OsajZfTSq+uLpUeSEiWURJ7cLY+de1Mbg9nCW54WWITjC/MGe3a9ivAuYDXPWU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9791



On 17.11.25 11:31, Jan Beulich wrote:
> On 14.11.2025 19:01, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> Now all libfdt features are built-it unconditionally, but...
>>
>> X86: The libfdt is used on x86 only to parse Hyperlaunch/dom0less Xen
>> nodes, so full libfdt is not needed in this case and minimal, RO
>> configuration can be used.
>>
>> ARM - situation is more complicated:
>> 1) ARM reads Host DT (fdt.c RO)
>> 2) ARM reads passthrough DT (RO)
>> 3) ARM generates dom0/hwdom DT from Host DT (there is a mix of WIP and SW APIs)
>> 4) ARM generates domU DT (there is a mix of WIP and SW APIs)
>> 4) With EFI enabled - ARM needs RW API and fdt_empty_tree
>> 5) With CONFIG_OVERLAY_DTB - ARM needs RW and fdt_overlay API
> 
> This goes too far, imo.
> 
>> --- /dev/null
>> +++ b/xen/common/libfdt/Kconfig
>> @@ -0,0 +1,14 @@
>> +config LIBFDT_WIP

"Write-in-place"
- update property in place
- NOP the property or node
(no resize)

>> +	bool
>> +
>> +config LIBFDT_SW

"Sequential-write"
Used to create DT in a buffer sequentially in one pass
fdt_create
  fdt_begin_node
   fdt_property
   ...
  fdt_end_node
...
fdt_finish

>> +    bool
>> +
>> +config LIBFDT_RW

"Full read-write"
- add/del/change nodes or properties in fdt blob
- no automatic resize

>> +    bool
>> +
>> +config LIBFDT_EMPTY_TREE

Enables fdt_create_empty_tree() helper

>> +    bool
>> +
>> +config LIBFDT_OVERLAY

Enables DT overlay helpers (deps: RW, WIP)

>> +    bool
> 
> Nit: Inconsistent indentation.
> 
> Also, how would one be to guess which of these may need selecting? What do
> "WIP", "SW", and "RW" stand for? What exactly would "empty tree" mean? Yes,
> you follow what the files are named under libfdt/, but that naming is
> overly cryptic, too. The comments at the top of these files also don't
> say anything helpful.

Indeed.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Nov 18 19:43:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 19:43:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165318.1492109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLRc9-0002Eu-KQ; Tue, 18 Nov 2025 19:43:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165318.1492109; Tue, 18 Nov 2025 19:43:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLRc9-0002El-Gn; Tue, 18 Nov 2025 19:43:45 +0000
Received: by outflank-mailman (input) for mailman id 1165318;
 Tue, 18 Nov 2025 19:43: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=YPWA=52=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vLRc8-0001zi-KL
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 19:43:44 +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 e09188d6-c4b6-11f0-980a-7dc792cee155;
 Tue, 18 Nov 2025 20:43:39 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB6381.namprd03.prod.outlook.com (2603:10b6:510:b4::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Tue, 18 Nov
 2025 19:43:36 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.009; Tue, 18 Nov 2025
 19:43: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: e09188d6-c4b6-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lA9z3eRYrfxZBzbnlkau0S8KEpumewPShPAxybHttT0RKRV7FTIDLfNXTGxlwMEh8HHZmRI1+udTRRqpFlKCxJxAvjhyPWstXWtXb8Z53ZlkSvwsHcBkZA2ykvTjSsf5O3L6U9NYLKrWorj3b7+4xD3KIEnvoAEGrJAGG3MSkydBHf+l3Fm7kXjMiiGG45LiaY9ZuU1Ku5wDcZU/GOz+dU2zk/D18gM4HFtaNRVOVMOHq5X+PV/auHHR1iuw2tEHnzLYEzKRe+aAE1axLNUa3n8B9oVIOtvtrL+wGi3qxEZNu/4fxLXxV/RR2Lt9W1E1+KAKnVRl3dt3aEdBec4c/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=nZzasS8vJobgIL9U9NrPOU4AjGQLfTFran3lxhauwoE=;
 b=XPUdB9K3BjL0y3gyLD1dE0rKXnvlghcXe8YCnVZznuMAwpBtAPn8pXOom67aDpU7xcVlsvGF4oW71osLb91J94e3aX9cU9SnV5497m6mCTZ9jsDyCjpJZJ1ChyFdJ2Rws//tG1x3elKoMby49S8wBmpUyNCc7oHfmmXApprHOBdvSCHjlozcV/zjT4NX7+NRDO6IBYk8TbBlXajo9vBeEN6sedKhF1y409nNs3G9IqDXX9Omh+LCd/Ur/VQokf16rDZ0CXX+T4mBH0yhX8CZuARSn8KVLVJ1zxoW3SUjM4XpNL0orSw52Onqu2jLyilWtRKK7OBYF/lmuS9HIYrucA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nZzasS8vJobgIL9U9NrPOU4AjGQLfTFran3lxhauwoE=;
 b=mZEH58QHGEK0/lCshRY7baLu+i9KgakDNSmJLYoHUPi+AOYGCHxajeCw6pfiNhED8Mwv7C62rP0+N1Sq6vadSdtcboU06QM3WjvnTzhXmmkZr2hCHuwW9aNxxqd0G9D+w6/fA7NtaKoBfaN4UGqxcuzFG1zCE9tcMZ3rkVnPmvk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <622240e1-e31d-424a-a946-f3797ad8c55a@citrix.com>
Date: Tue, 18 Nov 2025 19:43:33 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 7/8] x86/cpufreq: use host CPU policy for Turbo checking
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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
 <c187188a-bb00-4dca-9ec6-7a3862a65bfd@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <c187188a-bb00-4dca-9ec6-7a3862a65bfd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P265CA0220.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:b::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_|PH0PR03MB6381:EE_
X-MS-Office365-Filtering-Correlation-Id: ed944369-8fe4-4f57-7053-08de26dac390
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?YklXdzZLS0l4Y2NLL3BvRkN0azlvSFF6NnF0c0RGckVVeWRYMlcweE5XdWNO?=
 =?utf-8?B?UXltTjU1bW12ZW9tT2l5WjNhQk5xT0NDdldlVklGa2xiMC81bXN3bHorK2Jq?=
 =?utf-8?B?OUcrSnN2Uko5TVRiTUkwVW5CaEdGOTZ0eDlEVUJ3aEZIRGg5R3dMUmtrQ3ZE?=
 =?utf-8?B?V2l0d3duQnhkWThTWGZnNnUvWTRxSitFanBaeHQySWMwUFFDWG9yYjNXbnd6?=
 =?utf-8?B?eDAxc1BSOWVzb29ZaWhKWGlyQmpJLzN1WG1TdWk4dGgzTkxTTys3dDFTNmFR?=
 =?utf-8?B?d0I3bEtkUjhwV1o5dTQwZk93MTVwZ1BSZ2FTMzJtdzlYamZLK2NPQlBRaUJo?=
 =?utf-8?B?a2FSdkFjV1FBcDdkOUEwTG51MUQ5cFJXOTk3UXFCR0pDZjhaUE9FN2dXZ0hw?=
 =?utf-8?B?RnJQQ0hmbk5VZmNmd09FS0JHTGhjajQ5dloxUE1BdWh1a0hNY01sdmNxNzVy?=
 =?utf-8?B?VzhkK1Q0MEV0SmlEd3dHSjQ5bjgwMFQzVjV5bVQrTlZrck9kNFphMjQ5N3VO?=
 =?utf-8?B?ZjFpUTlWa2xPV29BRHF0NzhVcmhnMHV2NkYzUzJvRE1YS0lZRG11L1g1RHk3?=
 =?utf-8?B?Z2tRS3h0SjJCTkVzTitUeWluTjZuVlJ3RWlmSXB1a1FNZ1F3NVZ2SWQxVjFz?=
 =?utf-8?B?T24zb2ZWV3BaWHRwY21CNzgvVDVlOWxRRXdYVFlMUmZGbzlSOVFJOXhEZmRE?=
 =?utf-8?B?TDlvRHRlcTdDNjNiQlg4WGo1a2lEVHZNS2xSZlRZaU9YQ0N0bGFLYTlnaVVN?=
 =?utf-8?B?L21JdmprMERxUmtXTE5tN21RUVNKVlNadExzRlJ6YmhQblJ6SitwOVhPL1lr?=
 =?utf-8?B?eGgzSXFFYXRMdFhhQ1R6cUR5WUJudWgxYTJRcC9aRFNhRkhlcTllTTVlUEI2?=
 =?utf-8?B?UEJZTGs1NjJMbVJkcGVXM25sQ1BkM1JuVjlVQmRXUXlDWDdPWFFmVWw0KzN0?=
 =?utf-8?B?bklNd2ZteEZFclBxT1o0MUhidUFHQ1pXNVp1L2VUc0lHdUZTWVBEQ1AvQVFK?=
 =?utf-8?B?UVZaRnRYbUtPR1gxTlRYQjVCRFJNd25vREU1bVdtV3hHTm1TSS9VWXM5aDhW?=
 =?utf-8?B?TGNWR0RsWGRad21CbGllS0pyeDAzZk1PY2llenZidjA4ajlEZnpuRUhpY2ZR?=
 =?utf-8?B?SnoxaFlZRlpzY1VrNmxNdkJIM2p5SFF1TDdpaVFIb0VQdUY0bEUrT0NZaWFn?=
 =?utf-8?B?SEkvRnRzd2w4c01nU3dQYk5OOFN2bFgyVEFqVDc0OFpxM2RURHpxY3Y4NWxK?=
 =?utf-8?B?Y0dNbXhaU0FTVFc4N2hPUVhBeFljMGdKWHdZNHlRVytXVzE4SzhCNkZXRXhu?=
 =?utf-8?B?K0xMNjBmQS8zajVTelRGcnZBeHNNOXlSdXVHWDhHbE0zQjFwdjZHOXl1VDJO?=
 =?utf-8?B?N055dFNRbXppQ2hYd2ZERmliMGtHSSs0bE5YekV5VUlnd1cxSUx1ejZtZWZU?=
 =?utf-8?B?U04walJaeWkzMXN0Z3RUMFRDSkZIY1IzQkdHb25Wd0ZCa2sxQ3B3QnB0WEEx?=
 =?utf-8?B?SjFUZnJOYzRmUUxsQ1NlNVBmYXVHNmRXZUZSRlI3MlhEb0NDWFlqQVgyaXdN?=
 =?utf-8?B?Z2xLdndDQkxCZlhmNTVkU2tPRjhZbjhuK1pBem4vQUU3dXVLUEwvUTNaa0Q1?=
 =?utf-8?B?UHlzUDZQRGVhbmF5QU9pWkdFVitKczRFM1BVcFhVemNTVW5kdlA5QXdJdmxC?=
 =?utf-8?B?N1RTWGgrWDdhbUg3eHlWSnI3TVEvMStoTXBGQnhjZ1ZjT0xiVHJEd0R6RjlU?=
 =?utf-8?B?c0ptNWRya2p1dlVxR2p3RXEwYTd0Z1B2OHkyclc3Q1JqVE41aWg0Tm9wUmZG?=
 =?utf-8?B?by9kZ2w2QlExalZwQXlyZjBIUGtMeFZDZnRscklFaXlYa3VjaXRWQld4TXA1?=
 =?utf-8?B?M3ByVzE5WElzVkdhNFNDK3VEeGFIMnZBZm4vVXd5bU00M2JoNmF6OUF6cEZj?=
 =?utf-8?Q?zr3BTxWpISZhBwbAHhWobhb3IzA/eYLi?=
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?Y1lEQjVuOFE2b1pPUzgvUTRuV0NmZGFaUElkQnUvRFo0UGVkTjVOODJ4cUxu?=
 =?utf-8?B?cDZhdzRWQ2cvbXNYTnExYlpvTWxWUjcrM29ScnMwRE12V1dmNnlUMnAyZnRV?=
 =?utf-8?B?THVkQUN3QWY2UHczajk0dmpKdHNNSHdCNGUyS0E0UWdaYnJ4cXd0ZVZuYjJR?=
 =?utf-8?B?dHpSdXhDUWdDbmVvR3FNb3VqWHNvS3VPYXRRK2hSdE1qaHV3Vk1jUi94QWRO?=
 =?utf-8?B?eG0zWjhHL1p5ejU0ZVZLeVRrbzU3UjFpV0xUWEIrMUNHK1czVkkzZ2hJbW5o?=
 =?utf-8?B?SzB0OXZPZ2RpUUF3MEhaWlhJYTRocXkvOER4d25QWDRFM21ZQlNzOFJvYlhK?=
 =?utf-8?B?eGFMalJsR3l0V0h5ODhwcVdIUVlCbG85ZDUwNXUyTHU2ZGI0ajFlV0kzU045?=
 =?utf-8?B?OGl2cXVvc001NWZlTHk1NlNaZVVKMWkzeXFBMFY1V2lEMVdhWU55MjVSaHRR?=
 =?utf-8?B?V1dEb1ozaHNRa0xqdnl1Wm9lTTlaVmt3TndIY2d0bEdJWVFtRTk4SDhoRDAr?=
 =?utf-8?B?NEpiNFRZVnBIWWd0dGcram9WTmhXM29hZzBKbHlLZG40d0thS3BtUk9NSDF2?=
 =?utf-8?B?Uys0dUhmNk5DeHIwaDdrUmpoZ2NsQXNuTDZHRzJFeng3QkVrYmpQYnc0bEtF?=
 =?utf-8?B?WTBncDVzb0dXdTFUd3VZVVB2ZXVWVHpaUnJTUjdoZkwxRWhrWFE0SFNPbCtS?=
 =?utf-8?B?ZkNvVmRTRFNsQy9LbnVMbmVrd3gzdXFmYkk3VXY0djlWVnNWUnlzcFczc1ZY?=
 =?utf-8?B?TVVDQ0tZYSttT01GSFJmZk9Tbm9WUGwxbFhydGhaY29YMTB4NDFRakpMT0xZ?=
 =?utf-8?B?aGVCUGFtOG9lVjNzbUw5aEM1WDNuMkpIdjczOUwyV3hmb0dDRk1USm5PMFJq?=
 =?utf-8?B?amhzWTFxQkIwQ01yb2NhdzR3M0lGdDIxdnZ1akpZbEp5QUNuU1JuWFdnRFFC?=
 =?utf-8?B?d0hKRUxacFNkUUVXTVNtdVBLblRQRGM5R1MwY3FSaXpYMjk3aEg0bUtEVjF0?=
 =?utf-8?B?cmVMVWN2SXVYUG1IdUhGTkFhV1R3dHVOQjJhcjMvU1M5R2RSbS9aMGh5bTRw?=
 =?utf-8?B?c01aVGlaSGYwR3d4eHZVQy93bmpRNlAzdzVlS21NdmFpU3c3a2pWeFB4ZUFF?=
 =?utf-8?B?U0RXQWMvZ0ErTlRnaWlGbHJDakhPOUs5S2RZZXlEU04xRytWcEFWUGZTNlBI?=
 =?utf-8?B?SFArTEo2NXFLTnNISXgwMGRJNlc1M2xoajFKQmd2OVZiZTY5YTZjSGM4QW0x?=
 =?utf-8?B?Z2Z3Nm13QmI4aHIrWnQ3M0tLc21GeUdrTDRnWW9NdUpoVlhnQk9ORnFDdzJM?=
 =?utf-8?B?cjFxWnJKTDd0akFkSmgyV3NEQ3hCZ1IyaFJkbW9nZktxcElzZU9XMG9uT0t4?=
 =?utf-8?B?NS85SVpibmxtMXJJdHpSYXZSMGtCaXkxTEZsOUoyZHZsMno2VXY3K1BlUDZQ?=
 =?utf-8?B?UUl6eFFncCs5SkM5UDVyVmx6UmNWcUd6Y2txM2ZRVDcxTVBNd1pRMDJRcG1J?=
 =?utf-8?B?ajVjWDF6V0RqOExHN2xpMHZuVnd2SlBLT3VXNlBRS2wwdkluRFRZd0srL2dn?=
 =?utf-8?B?citmNjRrdzdTZDZyTGhzYVc2WTBRVXRKNGNsNXlTcCtBNDl6M2VoY201dy9T?=
 =?utf-8?B?RTFVQ0ZUaFlRM1pEbDVhYzlHLzNDOGFCNEw1S0kvSlRNUXdQc1JYVlV4Y2JV?=
 =?utf-8?B?L29lWWNySmp2T2R6aGlVbmQ2OVZtM3VpU1dKV0U3QnlIZFN5bEJOZHY4ZWRE?=
 =?utf-8?B?VVJqZXYxeGs5OS92Q0pEL1hIU2FHRk5qbG0vcE9uQXNiUTNKSVJrSHpkTWl0?=
 =?utf-8?B?WXNXd2dieXBXV1BBV2I1QzhHRUN2bVB6cVkvUXk1T0VldVM4TzZjNmQ3RVRj?=
 =?utf-8?B?OWlQRU9zWjIzWUlmYkdReFQ4ZjdGeG0yeDAvT2FnSERBZkVFclY1aVVrUnlZ?=
 =?utf-8?B?VzcvTzhFNlViTEhGRVVTSE8xL2RnbklCNHdIelE3RlVpSmFuNk4zTUhBZks5?=
 =?utf-8?B?bEtGUmlpK21vcVZINkNqZ1VJM0ZVUXM4YXRadUF0VEpyWVB0QkxhWVViMHVi?=
 =?utf-8?B?ZEVkejg5LzR3YW45QlU5L0NyNXNWZ0wyT1RLM29RcnlDLzVvSDlaV0JSRWtG?=
 =?utf-8?B?NHlja09LK1J1R1lkZ1M2MlhTZm44aWg4S3lUYXZkV1NZT0ZwVVh4TGRmbWhJ?=
 =?utf-8?B?TUE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ed944369-8fe4-4f57-7053-08de26dac390
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 19:43:35.9530
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: B5pRfd2UB6zwtNazGDe+nZDAoJAXvHRJ9ej6+gHADrNm7Etg90RLgg801AD7IqHqdbeVsE7DwgwSpLwcQUkfc8hZCX83lEcUsv+JwOJLaks=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6381

On 18/11/2025 3:08 pm, Jan Beulich wrote:
> There's no need to invoke CPUID yet another time - we assume symmetry
> anyway. With symmetry assumed, logging per-CPU also isn't very useful.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Subject to the feedback from earlier in the series, Reviewed-by: Andrew
Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 20:04:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 20:04:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165348.1492135 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLRw2-0006Pk-Fg; Tue, 18 Nov 2025 20:04:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165348.1492135; Tue, 18 Nov 2025 20:04: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 1vLRw2-0006Pd-CY; Tue, 18 Nov 2025 20:04:18 +0000
Received: by outflank-mailman (input) for mailman id 1165348;
 Tue, 18 Nov 2025 20: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=YPWA=52=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vLRw0-0006PR-IZ
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 20:04:16 +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 c17e2274-c4b9-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 21:04:14 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB5893.namprd03.prod.outlook.com (2603:10b6:510:32::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Tue, 18 Nov
 2025 20:04:11 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.009; Tue, 18 Nov 2025
 20:04: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: c17e2274-c4b9-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UIfcaOTo6mqMyi83wZX6MXWotk6GIry5aJfxEwbeMai1jUkdYJUl3I2JaSrcAO8h0d9c9l313mJhDk6hfAnOV9TnDt9flLsKrk6z3n9E5hzhXSZY0OjV6a4xF+XEyVd/kLJCLx+84IpNx6nq96UwBlgMF0k+Da9nwIijqsYfISm3yQY21oo3tnT++YRZ9MzDeoQAPm7lrHlgMtjR6mFSMDN/X3lBq32vh5yJiZ/ErlPic71su9cr/mN9+Z6h98ScckfQVfgdi6wSzDNF5WPxFh1uFz2oSWEjU8bVIp2MsAR8GUCRg2e2sn4KUw9sziRXc7VnwSnP4h/ay9VOBdc5Rw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=V9dGiNF/p5EYeNIFPFeELI6d+3PghBrckP1uP+zCuQo=;
 b=tv1RyiSH5rK1K3xHqVkpOpXujuKFTalZWGZ1p9DHPCoFziOEJxZtHaBystpz3EFRDJuxqNq+JJbAppqND37HrOb+B1I9i+ri1i3DfzTgYEAWwKKHXNjIZDYL8CK/YKiYcf0CWprLnDb99YuSxOMOzFyHkIuEc0jnaipxuAIapqDCKEE50gg/Bfi8cvd0J0pPyD1GfIfejDs61Me+Me0mGceijmQYOP75UVRw6IWPvnFYq3wLN7UzBuY0TWnFjULco1qDDSmn/2C6d8YVsGtxPK3wcwGaNFIFbFslMYfwuW2nSUQ0lM/E0CrOggm8g2UIKFM5eNeItLd0KwYXvRaf7g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=V9dGiNF/p5EYeNIFPFeELI6d+3PghBrckP1uP+zCuQo=;
 b=wpPDxSkhXYBdmx6iPa2Hl1nuQQqC+kcYUcMcdP1Zh5aX9jZP2LL0NlvFcb21ZpkO21NciZuyIRZ6OgPGab6cpESwEJdPBIOlcnmYrdm5R4iMHhofP/ycLHccitZYG9JrIHFRwvIHpT2YC2bSpurV3qME3Fg1OIMav40YSAbmHeM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b57c2fc2-d302-464d-aaf3-552da0114bb2@citrix.com>
Date: Tue, 18 Nov 2025 20:04:01 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 8/8] x86/cpufreq: use host CPU policy in HWP driver
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>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
 <c0ed26a0-6e34-4aab-ad7d-44b9f596b1e9@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <c0ed26a0-6e34-4aab-ad7d-44b9f596b1e9@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0541.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:319::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_|PH0PR03MB5893:EE_
X-MS-Office365-Filtering-Correlation-Id: e94df038-c066-49f1-a5b6-08de26dda3ae
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?WE9kV0FNTEwrLy9WcUtnSjRrbS9aUU5kU1RuVmtIMVZZTGNoYnhEWm9SYVQw?=
 =?utf-8?B?aGxsMnN2eEU2YTFIaHVWZ2NMbnlvelZ3dW5ObzFobjR4dFJFMk5ScjB5ZTBX?=
 =?utf-8?B?SnBLdmdvL1Q4Z1JoOEh1V1g3YlpIaVVha250WHA2dXQwcXB1ZDVaclhVOSs5?=
 =?utf-8?B?aUtrc0FQaGs0Tk8xdE1QQXBJdGpYL2NZa0taZElSdGQzR28wZmFRWFVHbzlX?=
 =?utf-8?B?cTdDNWM4U3hxOHNEeVVmN2ZjOTJTODlKSllVU0lDZTRiZDNlUGxBNy8vejdr?=
 =?utf-8?B?ME05d05IcXlvV3N3V3BwSUdjZFY3VXNCOVJOOVk0QTYxZmREWTJobEhtS1Q4?=
 =?utf-8?B?ZjJQd0huWm1JOS9heWxsNTdlcm9tZTAvTDRSK1hnNTNNbDRSSU1HcmtsMW9B?=
 =?utf-8?B?T0h2VDFhdkdxbGNHQ1paOCszNmxrdFhmMjRjU3ZibUVqS1hEeDI5cjJ3Q0JC?=
 =?utf-8?B?S1BTNWZtSllsQ2ZTYU1CbXVXNEQvVXZGcktCS3djQ1U1Z1N2a2ZucnNZYmUz?=
 =?utf-8?B?YjNFVGw0NVNvT01vajJndEtxdUtNRFhuTmp1SWpiZFRiOUdSVGh3NnkzRWFP?=
 =?utf-8?B?Q3BsckZRclJRampxczVBVlNoOUlyNldtR2I2UVlGL01yeVZHMGFyRDM0ck9q?=
 =?utf-8?B?OGJndnNwZmRGTXdBaHpaZXVEd3FCTmlTcHlpUlhhcjFzTDAxWmxQNjJ6TCtO?=
 =?utf-8?B?WFVvYmdkRVdMN1VDcit6dUZBb05LbFFTMjFmMXh0TEFRaVU0aXRvdW9aTEwr?=
 =?utf-8?B?eWVNWkppVWNvZkxUaDJUdWg1T1BuNlVaYnFhcitBbW8zTnI0WVRjVjNEd25p?=
 =?utf-8?B?RUI1aFhOTXlMbzQvRlJkWk0yRXlvK0U1K245VnUwY0c0T0RSR3RvN0kydndo?=
 =?utf-8?B?Z0NHK1FQNVNMSmg2TWhPck5OWmNkZlY3UExrb2ZSYTRXNkJ4QUNtOVJhUita?=
 =?utf-8?B?RFFHNDA0ZUNpd0xyMmZKS1JnVTQ0ckVqVmZvRXl6eGF0R0tFdEhqVEFtdHBC?=
 =?utf-8?B?VGY0Zzc3Tk9RQzRRUm9zaUZIdHVXMzRiN0ltb1RzNWZOekhEcWVaazBHTkhu?=
 =?utf-8?B?MEcyb01JVzhxM0FzdXN5N2xVSGduaW9PNkxHdmxnNHV1b0lieVQ5UGNRT2Jv?=
 =?utf-8?B?a0FGOUJPYkl4Vm1aSWtnK3gwU0RKYU8rRTJBTDMvOWlJRWpITk00dGJLa0tw?=
 =?utf-8?B?WlozZEVhc0lxNjJOazFlNDUxU1p1YmZ3M2hKWWtraGE3eEZuSzRDd2tCUWg4?=
 =?utf-8?B?bFN1K2RzR3NERTFZWFROaGdWOGZ5WlN5SlY3cjlQcHFDemFsVFBUeGtkMTND?=
 =?utf-8?B?Z0ZWY0Z3aEJyc2hQQzl6ZEJOMmh3emllMU9KQ1RlVUF4VmI1SGUvOHNIN0x3?=
 =?utf-8?B?MDI4azJSaFg3Q3doUFl4R01ncXkyN09zNys3a3RDRkdKMmVzZzBCN0puL1Jy?=
 =?utf-8?B?VkIwWDAwRmRDYjllMXowdVNFc01XUnBuMy9nV3QxNnZYb3A2RTl4akFCVCtI?=
 =?utf-8?B?elV6amttWXMwTnV3N0VLd1VUYjlJcnB0RzhNcVl2b0hweFUvaUxHZUlPMUFv?=
 =?utf-8?B?Ti9zbFJzNlc3VW1MeUtGTWp0YVZPSnlZMXJPT1ZVL0RSWGdlNWJPUFVqbmlX?=
 =?utf-8?B?QUp5dFRLN3gvUWk4bit4UFlISlVZdnlIWkd2dnlkUnRFc09KNUdZejRxQ1RC?=
 =?utf-8?B?d0xVZmtJZ2dhVjlvM0xJOTdMS1A0UG4veHRUOHQ0Zk0zSVNoaWEyZ3JIdmZU?=
 =?utf-8?B?bWllTHRUeU10SlAxNXY0Tit3SXZubE5paGJXa3ZJR2tEUndVZ25IeEgrQlc3?=
 =?utf-8?B?NFZVaFFRZGsxZkVDUlNqOU9GbmhWbkN1c3ZxdlNXRDhKcXFUWmVySDV4emRE?=
 =?utf-8?B?cTdQQjJpNXQ3SVEyY1RkMklSVHVOcmxOczJPVW5RVFdzazBCNW9zRTdBZG5l?=
 =?utf-8?Q?91uu+sC2OQ5+tNQbnQKBc4bCPBLyhKDa?=
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?Rm4vaGxoaG5ZZUh5ZVVkMWZxblV0dVVvb29lV0pSYkxEcjM3OTlCbDM0SnhE?=
 =?utf-8?B?RzNxSVM3eFhnNVBUdXd1WmE1SWsxMG9tQytPTFJ5d0Y5dkZadk5lZ0JqTEVw?=
 =?utf-8?B?NzNIR2Q3UE55blFLRWxWdnZZS2pUNnlYaVVvY0V6OVRvUUI0QlVnOHd0L3BK?=
 =?utf-8?B?Ly80alhudldaK3ZtN09Vb1FFVGdxV1ArWDR3L2VvTHYybkFrY0ZYTVp6ZUg5?=
 =?utf-8?B?NkQzdUUwYkdnZ2tRVDNHeWF0RGd4TDlveVZ4R0FwQnd2OXNyamRMOTUreWdJ?=
 =?utf-8?B?am5LNFJZQ3JyWElpdmhOSWIxWGhNcUU1SmZxUE80NkhYVGdDTmNxRjFycG5h?=
 =?utf-8?B?ZXNrTUMzZUdQQWs3V211TGVvdEtiRTVDVlQ2RzExdm5HaHBVVDdiUjM3WXI0?=
 =?utf-8?B?cDZjYi9UaWovMEhlUU9oYkxITjU5VjIzelNnRGpOZjdVL1g2eDluL2preW9C?=
 =?utf-8?B?TUdJYksycnFzc2cwci85azdIaHMxOUxmdWJkamxXaDd6LzlXNGpQWVQ0QXRF?=
 =?utf-8?B?eTR4WHZMTWpZenNqa3FZbjFWSSt5aWZUM0lYUUJJQmp4NWFGR2pWTmtIUEh1?=
 =?utf-8?B?dzlYWCtNZVpDcmd5OEI1eHpTMTl5czVyN0xNbDdLbXk5ZWIvVlhnbFpPM1pq?=
 =?utf-8?B?a2M0ZnU4d2xBVWYvVU5iQmd2N1NiZ0l5ZTMzbkJmRHRMQWgxODZNREgySERz?=
 =?utf-8?B?b0VuazBnWFJXRFROR0JHa2paTmRFZ0dZRnE2V0xBVFVGZkNaWUpycDJkeC9m?=
 =?utf-8?B?WXFXc0RNckZ6dWNhTTJqQkFwK0xwWnJ3SzNtQW5sdkNSYlNxYUVnZXZ0VTJn?=
 =?utf-8?B?THRiYUx0V2ZVV3krdTluRFI5WHVCRWpZbzdubTFFcXVMRC81ZlhtdGg3bFhF?=
 =?utf-8?B?K0VHWGJFdWVJTGtUQjd4UFBpOXF2TGpjbFdyM3RsWnY2V0YzaTdRaEVWWjk0?=
 =?utf-8?B?dXZEZnN1TWV4eHNtVEZtbE5ITUNKR3FXUE0yclZ1YVRZNGM0V0tPbHpDU1lp?=
 =?utf-8?B?RzVjaXl3WGlPL2ZTZS9xOTZYS1dGNExZejJCdGVndmQvUGt5eW56TG4zSTVX?=
 =?utf-8?B?Q2NSRUJRd0FvbjNpb3JLODZjSmhBM1Y4NG5KcFZnZitlbEFiQ0dsWUdiV3JI?=
 =?utf-8?B?bjg1K1FDNVd5MzlkUU8xYWlPOW1zK1BIM0pjWlpySEdVS3RyTmw0bUx1VVZl?=
 =?utf-8?B?eUM3YWcwaGNaUE45R1pSekVxZmJEcUxObEpzcjVuYyt2eWFzeDREajVLZ0J3?=
 =?utf-8?B?UFZkQzFrUDdoYThuVmxkazNFWWoyNjJWMU9zN01qVWxkZlFjaDd3RVFLZml0?=
 =?utf-8?B?SkE5ZHpDdjdJRjNuQU5oMEtIaHNEblhMeEVrZ2tHYXlKTC85RDhQWWV1OCtZ?=
 =?utf-8?B?UmwyQ2ZiQm5oajZWaXdjWXRsc28vQ01tdFI4TVB0QnppRFRWU0J0TkNScVZQ?=
 =?utf-8?B?Z3ozTkRvOWIwR3JJL1lYdXFYSVIxVXBhd3F3TjlxeG1mRERVaGpReG82V0Jl?=
 =?utf-8?B?bG5vNjFBSXpudS8xWkd4ZktDSENlY1lHL0dtRFBmb0l6b0NEd1I2L05VOXdL?=
 =?utf-8?B?aDNkcHM4bkQvYi95RW1aNUlUUVRmVGxMVFFVTE9EdTRBazlXelJ1SGJZSmMv?=
 =?utf-8?B?eUZud3JvWlRHQVJjVW9VdDFWWkVITVBuMHRoYllCN2dFUFpYR3NRTGVuYi9s?=
 =?utf-8?B?aFVuR2Z5eWhnc2VqVFFoTHRkdHk1NkxmS0RxOStYeHdCcjR1Z3pNcUx4N3FM?=
 =?utf-8?B?NjE5ZThoQ25XMVVia1IyWi9md3JKUXdXM3VZd0VDc29DU0src2lra0RHYWhU?=
 =?utf-8?B?aXlZQWhUT1NKVzZHc3BlQVlBcUxJOEVZemlnSWtod0IyL2RvSnJqK29FM1BW?=
 =?utf-8?B?NUl6QU84V0ozREkrQWRDOUdtSFJJR1p4cVovVElmd1RSYS9tbmFLeXJSbWNj?=
 =?utf-8?B?UlhHVDEyemdyZElmeE5wOEtIQXlETXI3cWZYM2lKaDNVb3k5aUYyak04Rnh0?=
 =?utf-8?B?c3kxYTczMGVKcGV0NUZzdWVYM1grRGNDWW9rRE8xY2hmZk9zQ0R6OEg4YmFK?=
 =?utf-8?B?WlZjSlJNUUJPZ2RnWWpLRUg3OFgzcnVVMDNYbk9qSDd2VjVVREttdFRhREdM?=
 =?utf-8?B?SzBjUExzM1BkZlhDbmZSRmJPTURkL0VrUCs0WDBXbFNOSlNhWGUyY1ZTTllZ?=
 =?utf-8?B?TGc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e94df038-c066-49f1-a5b6-08de26dda3ae
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 20:04:11.0443
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9mbuyMVZEO8h1jOPXV3NwAJSjP0zOROjG4Kk/Z+MAah+BVPSF3bcgRzIUo7FQiGcRkYS54KejAjlHfQ2qkHgAcR1v1Uwk/XkGqJN0PDR6EQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB5893

On 18/11/2025 3:09 pm, Jan Beulich wrote:
> --- a/xen/arch/x86/acpi/cpufreq/hwp.c
> +++ b/xen/arch/x86/acpi/cpufreq/hwp.c
> @@ -183,29 +178,25 @@ static bool __init hwp_available(void)
>          return false;
>      }
>  
> -    eax = cpuid_eax(CPUID_PM_LEAF);
> -
>      hwp_verbose("%d notify: %d act-window: %d energy-perf: %d pkg-level: %d peci: %d\n",
> -                !!(eax & CPUID6_EAX_HWP),
> -                !!(eax & CPUID6_EAX_HWP_NOTIFICATION),
> -                !!(eax & CPUID6_EAX_HWP_ACTIVITY_WINDOW),
> -                !!(eax & CPUID6_EAX_HWP_ENERGY_PERFORMANCE_PREFERENCE),
> -                !!(eax & CPUID6_EAX_HWP_PACKAGE_LEVEL_REQUEST),
> -                !!(eax & CPUID6_EAX_HWP_PECI));
> +                host_cpu_policy.basic.pm.hwp,
> +                host_cpu_policy.basic.pm.hwp_notification,
> +                host_cpu_policy.basic.pm.hwp_activity_window,
> +                host_cpu_policy.basic.pm.hwp_epp,
> +                host_cpu_policy.basic.pm.hwp_plr,
> +                host_cpu_policy.basic.pm.hwp_peci);
>  
> -    if ( !(eax & CPUID6_EAX_HWP) )
> +    if ( !host_cpu_policy.basic.pm.hwp )

I think this justifies a cpu_has_hwp like we have for turbo/arat/etc.Â 
Similarly for the other features.

>          return false;
>  
> -    if ( !(eax & CPUID6_EAX_HWP_ENERGY_PERFORMANCE_PREFERENCE) )
> +    if ( !host_cpu_policy.basic.pm.hwp_epp )
>      {
>          hwp_verbose("disabled: No energy/performance preference available");
>  
>          return false;
>      }
>  
> -    feature_hwp_notification    = eax & CPUID6_EAX_HWP_NOTIFICATION;
> -    feature_hwp_activity_window = eax & CPUID6_EAX_HWP_ACTIVITY_WINDOW;
> -    feature_hdc                 = eax & CPUID6_EAX_HDC;
> +    feature_hdc                 = host_cpu_policy.basic.pm.hdc;

Looking at how feature_hdc is used, I think it should be the bit within
the host policy, rather than a separate boolean.

The host policy "is" what Xen is using, so if the HWP code decides it
doesn't like HDC, then that does want reflecting.

Unrelated to this patch, but as I've been looking at the code.Â  What
happens when hwp_init_msrs() fails on an AP?Â  I can't see anything which
unwinds the initialised HDC state on the prior CPUs...

> @@ -365,7 +357,7 @@ static void cf_check hwp_init_msrs(void
>      }
>  
>      /* Ensure we don't generate interrupts */
> -    if ( feature_hwp_notification )
> +    if ( host_cpu_policy.basic.pm.hwp_notification )
>          wrmsr_safe(MSR_HWP_INTERRUPT, 0);

Again, unrelated to the patch, but why is this a wrmsr_safe() ?

If the feature is enumerated, the MSR had better work.

Things like this start to matter more when we consider the code
generation for wrmsr_safe() using MSR_IMM.

> --- a/xen/arch/x86/include/asm/cpufeature.h
> +++ b/xen/arch/x86/include/asm/cpufeature.h
> @@ -115,14 +115,6 @@ static inline bool boot_cpu_has(unsigned
>  }
>  
>  #define CPUID_PM_LEAF                                6

Doesn't this patch drop the final user?

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 20:25:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 20:25:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165362.1492146 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLSGc-0001TP-5T; Tue, 18 Nov 2025 20:25:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165362.1492146; Tue, 18 Nov 2025 20:25:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLSGc-0001TI-0z; Tue, 18 Nov 2025 20:25:34 +0000
Received: by outflank-mailman (input) for mailman id 1165362;
 Tue, 18 Nov 2025 20:25:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=m/+5=52=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vLSGZ-0001Sp-To
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 20:25:32 +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 b9292dd0-c4bc-11f0-9d18-b5c5bf9af7f9;
 Tue, 18 Nov 2025 21:25:29 +0100 (CET)
Received: from SJ0PR03CA0178.namprd03.prod.outlook.com (2603:10b6:a03:338::33)
 by MW4PR12MB7430.namprd12.prod.outlook.com (2603:10b6:303:224::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Tue, 18 Nov
 2025 20:25:24 +0000
Received: from SJ1PEPF00002312.namprd03.prod.outlook.com
 (2603:10b6:a03:338:cafe::ee) by SJ0PR03CA0178.outlook.office365.com
 (2603:10b6:a03:338::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.22 via Frontend Transport; Tue,
 18 Nov 2025 20:25:24 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ1PEPF00002312.mail.protection.outlook.com (10.167.242.166) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Tue, 18 Nov 2025 20:25:24 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 18 Nov
 2025 12:25:23 -0800
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, 18 Nov
 2025 12:25:23 -0800
Received: from [172.27.232.218] (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, 18 Nov 2025 12:25:22 -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: b9292dd0-c4bc-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lE3W0iBIKjAUEnGrTi+2YZdfDu2aMbizsFKpdK7XxRv+A0GC1U2Q2Y4VzyaqjHEtNfreg4vsmDrJJ4F6CVbJdNVKhRnjclea4Jc/ZpcNsNFcdDD+uEVtfjPJv+uVBXZOTbmnAcummhKU/Ud/E98Nfl8tF2S9BQibxUHhbNc4zpj34aCgeYtJwe4G/XcnM3qx8Pcf2isKDmwDVa292ovc4aVVmMfmJQDwTCwdM4N44SGrUEbBwTiotyizvdc5rG+g0pnh22FOodgo+a5jIiOWXV4s4zir17lh30Gph+nxefsyPOQYMbkme2LexuSlg1pk01kXRYvmj6+DA9oLUlNsxQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BIb/armPiwKL08gh7vN4UjU1LnktCJ3ZTzj4hT54DQ4=;
 b=FUbrTDCjCn7AOGeLfTWmq23YVeJkRPlm0vafmiElpB5S63kmCymtKMsgIdh525RZ8WcSNwlGImfTD/rZlpNBE+KJHkA8s1jgc6nn4uLR21PT2FXu3lKB4r/zFhlVB7iOnB1KDsJ+9GCzyyzOmrjIK3fo0EmWbH7A8Ewaqj3MRN3wFYUaHZ6yHE2sVjWj/ZOFJO6tgjnzFmpj9Zq1P/78UVXLMfXkXneCrfQHMo/RaUaE+5/a51rnPXVE2gM0zDUvYb1jKleomo/x63lcnmvLqm/GJ0obwpo+h9OHqOKV1EgkSq1KLWdRc+K62BjRC4Z3GaoDw+ij0hnTn3ub4N9GBA==
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=BIb/armPiwKL08gh7vN4UjU1LnktCJ3ZTzj4hT54DQ4=;
 b=dTvCZL5o6XIdP/WzttXpKdiIWzL5VVUmbaV6GW/9/RMAU6MKgtjE5bH6cXndnLI8adYM4xmssL/FgZYq9LnPJkclQf7y1bte3rEZMsSuspeC6EecRd6VBpHlKeJe6KzhjJl5LDm6Nl5l5W82jD18KCLWDbMWhUIwuz4eptWf00I=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <8f0c9b79-eed1-4e69-a7d5-3e3151fc3984@amd.com>
Date: Tue, 18 Nov 2025 15:25:24 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 8/8] x86/cpufreq: use host CPU policy in HWP driver
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
 <c0ed26a0-6e34-4aab-ad7d-44b9f596b1e9@suse.com>
 <b57c2fc2-d302-464d-aaf3-552da0114bb2@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <b57c2fc2-d302-464d-aaf3-552da0114bb2@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: SJ1PEPF00002312:EE_|MW4PR12MB7430:EE_
X-MS-Office365-Filtering-Correlation-Id: ff5e8193-f8e5-44e8-b1a6-08de26e09aa1
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?cnBqcE5lbFMwSW5wT1h1VjVydzBJTno3WHZwZGt0M2k2RHprYnV6WmQ5aHJh?=
 =?utf-8?B?QWFsU1kvcHhvaEl2ZEgrWFVIWEQ1ZmlMRTN6Si9xeUFvVjNXTVRLRk1XZTB6?=
 =?utf-8?B?MUk1MytyQU9BNnpTZnFNbzhKUis0Z25PNEdCOVBmZmczR3BWT2FJQXg4U0JN?=
 =?utf-8?B?OUl2b2RxNGdzT1EwVDhNQ2NraStnb1J6T3l6OUlnY1U4V2tuUmdqUzVYa2l3?=
 =?utf-8?B?M1lHRkpjejFJaklvU29rNHZDdURka2RJbDY2QUY3cVVWcExQYXdqNFpXdnJM?=
 =?utf-8?B?R21rejRBWVRHS0VqamZHbFhWZTNidVI2U1o2bWNKNXVRK2dQUllYRi80WUlM?=
 =?utf-8?B?amw2enI3NGdFYjV3NGRVelRoUmsxTk1MaXF6MWhFVFRjbFNXV3hpU3RKMUwz?=
 =?utf-8?B?RzB1RDdIU3JsdTJ4VWRpTEVYZzJGRjRaV0JRSmlwRlZyQjFkQ3ovbVM1U3oy?=
 =?utf-8?B?VitJZDQ1c1g0MCs1QmhvU3FaalZmZXJxK2NISDFvRTFjdjgwSko5MzhCcEFX?=
 =?utf-8?B?cVRYZ2UzT2FJdVUxQU9COExKdlZTbnlCOTNyZTIvdkxNUHdsZDRpWDA0ZE9y?=
 =?utf-8?B?YzBxTlJVczhVeUx4VDZEWnRlZ3FmR1UweGJ3UUgxemNjcG1KUGZya1ZDTVFh?=
 =?utf-8?B?bTFQQXFmT0pHbmNuSjJLM2U1bUxLVFQzVEZpUnppcDVHdC9nNndreHJXNi9E?=
 =?utf-8?B?UldkMlBNTGI3MUJFYmVVbi9PTDM2RVpSRnBSdERGc20yZWFqL2RsMVczOTRX?=
 =?utf-8?B?dHFRYkJOYTVwNDBmVTNuNDdHOGNXTU9kbmQwVWdScmttbGtNQjd0OThxSzJL?=
 =?utf-8?B?enQ1QlpHMXhYc09YTVJTL0RoZ2R1bzA0b1VjVWVlTjZZV2hFN05YMzJLNTZm?=
 =?utf-8?B?QTJWV2tJdVJqREhraU9ZQ1B6eTBhdE9uL3JHYmYxZDVXaUF0Zkk3RHdtZ29y?=
 =?utf-8?B?MW0yMWJxM2JDaU8vU0Z1cEFnZHVGNDhmTGJJd295UGRQN09iUWl5TnBUYmNP?=
 =?utf-8?B?N3NhdDB3RHVBMGF6SGxEeVdZRG8yMWp4cVlzZlJ5TDZIL2lDRE90d2hkSG5B?=
 =?utf-8?B?VWlpRlNYcWJ3cGVmcjMrYytFTTV0elg2Z0tXakNXcmpuWDQ0ZUxleW5lZU1Q?=
 =?utf-8?B?Si83NWZiTkg1ekd0MG5sc2E0WDU2cVFURDVrNzkvN1NvWWdtaFMrdnY1M2Q0?=
 =?utf-8?B?SDBMenR6eU1sbi9ZYkJLbURwWXBYaStRM0Z1MjlYMno1MVpXT2J4bi91VTZ0?=
 =?utf-8?B?QlBzWk4rcTVXY1BDT251bFhlNGM0ZTBrNHRpV3BUcktvY21TZEh0emlpR0Ro?=
 =?utf-8?B?b1NDbWsvUC9DL2UvTVFRNlRHREVVenBWUFpTRC9pc1Flbm9za1NJNzlFRVd6?=
 =?utf-8?B?d0srSHRzRVVjV1FVM0R4V1NsaHBReVRKT1A4RHBVL3FSaElWZE1WQ1RtaTRi?=
 =?utf-8?B?Sjc4Y3dtVWJyZmN0N0tSWkREZTZXMVl3SERxRjFLNHRiRWZWb2lnYlNsUXpJ?=
 =?utf-8?B?UnQ2NCt4WjJkZER5WXFuUC9CWHVzMTBBRDI3VE0wNXpvTEJIcEs0RzZ1MHVa?=
 =?utf-8?B?d1N6SkVscGhFbHFaVTlnVngvTEpXMWlMb2JmVk41Ykl4MzN6RlJqNXhCNjFJ?=
 =?utf-8?B?Wjc3Wm5rVU1VVUV0NHFrMGNMVCtYcnB1OVRUMGNTeVQrbjNGbDA4RUFjT1Jz?=
 =?utf-8?B?cGoySmU2S2hwemtWbnM1YzFISkVXMlptUjRRQXByRW5aYnk2VkhNY2U1RHZE?=
 =?utf-8?B?dHdpTXBOMlQ1UVBrRWo3Nmk3LzlhUWg0dGoxM2ZqSHJGYVhsWTBmcVUvTVQ5?=
 =?utf-8?B?M3BRM0UrTjNCNGFRSDkvdm9yb1BNNnFHa1h5TDVIUm0rRjBwcHdQZmhYYm8x?=
 =?utf-8?B?RjVyQkhqeVkwRG9mVFZlQzVhbTFFTU9rWkg5S2o1bnNBWURUNlJ1RUErTUlq?=
 =?utf-8?B?UmFJL3RQZzhTZDNIZ1M1Rm9MMFBDYWYvMGNaSlNTL2hxUm9uMFF3RFY2VHlS?=
 =?utf-8?B?Qk1YdFEySWxrZko3ejBkWWpHa1N6a3dwSlk0UXZNV3BEWW1QUjkrU0VFeDdm?=
 =?utf-8?B?eXIzYy9BK1FIQjlmTnlOalZ5ckY1am0wSVFxNmVaL1lneVIyVjllWWNwWUZr?=
 =?utf-8?Q?1nRo=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 20:25:24.0656
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ff5e8193-f8e5-44e8-b1a6-08de26e09aa1
X-MS-Exchange-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:
	SJ1PEPF00002312.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7430

On 2025-11-18 15:04, Andrew Cooper wrote:
> On 18/11/2025 3:09 pm, Jan Beulich wrote:
>> --- a/xen/arch/x86/acpi/cpufreq/hwp.c
>> +++ b/xen/arch/x86/acpi/cpufreq/hwp.c
>> @@ -183,29 +178,25 @@ static bool __init hwp_available(void)

>>           return false;
>>   
>> -    if ( !(eax & CPUID6_EAX_HWP_ENERGY_PERFORMANCE_PREFERENCE) )
>> +    if ( !host_cpu_policy.basic.pm.hwp_epp )
>>       {
>>           hwp_verbose("disabled: No energy/performance preference available");
>>   
>>           return false;
>>       }
>>   
>> -    feature_hwp_notification    = eax & CPUID6_EAX_HWP_NOTIFICATION;
>> -    feature_hwp_activity_window = eax & CPUID6_EAX_HWP_ACTIVITY_WINDOW;
>> -    feature_hdc                 = eax & CPUID6_EAX_HDC;
>> +    feature_hdc                 = host_cpu_policy.basic.pm.hdc;
> 
> Looking at how feature_hdc is used, I think it should be the bit within
> the host policy, rather than a separate boolean.
> 
> The host policy "is" what Xen is using, so if the HWP code decides it
> doesn't like HDC, then that does want reflecting.
> 
> Unrelated to this patch, but as I've been looking at the code.Â  What
> happens when hwp_init_msrs() fails on an AP?Â  I can't see anything which
> unwinds the initialised HDC state on the prior CPUs...

Assuming symmetry, it'd fail on the BSP and never get to an AP.  Yes, I 
didn't consider unwinding.

>> @@ -365,7 +357,7 @@ static void cf_check hwp_init_msrs(void
>>       }
>>   
>>       /* Ensure we don't generate interrupts */
>> -    if ( feature_hwp_notification )
>> +    if ( host_cpu_policy.basic.pm.hwp_notification )
>>           wrmsr_safe(MSR_HWP_INTERRUPT, 0);
> 
> Again, unrelated to the patch, but why is this a wrmsr_safe() ?

It seemed safer ;)

> If the feature is enumerated, the MSR had better work.

Yes, but I wasn't sure how much to trust it.  I only tested with 2 
processor models, so I wanted to be safer.  IIRC, I saw a #GP or two 
during development.  Those might have been from writing a reserved bit 
and fixed during development.

Given my small testing size, I wanted to keep it safe and not take down Xen.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Nov 18 23:57:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 18 Nov 2025 23:57:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165374.1492155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLVZZ-0003Z2-B8; Tue, 18 Nov 2025 23:57:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165374.1492155; Tue, 18 Nov 2025 23: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 1vLVZZ-0003Yv-7d; Tue, 18 Nov 2025 23:57:21 +0000
Received: by outflank-mailman (input) for mailman id 1165374;
 Tue, 18 Nov 2025 23: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=m/+5=52=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vLVZY-0003Yp-8b
 for xen-devel@lists.xenproject.org; Tue, 18 Nov 2025 23:57:20 +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 4f00447e-c4da-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 00:57:16 +0100 (CET)
Received: from DM6PR17CA0031.namprd17.prod.outlook.com (2603:10b6:5:1b3::44)
 by DM4PR12MB6157.namprd12.prod.outlook.com (2603:10b6:8:ac::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Tue, 18 Nov
 2025 23:57:11 +0000
Received: from DS1PEPF00017097.namprd05.prod.outlook.com
 (2603:10b6:5:1b3:cafe::3d) by DM6PR17CA0031.outlook.office365.com
 (2603:10b6:5:1b3::44) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9320.22 via Frontend Transport; Tue,
 18 Nov 2025 23:57:11 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS1PEPF00017097.mail.protection.outlook.com (10.167.18.101) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Tue, 18 Nov 2025 23:57:11 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 18 Nov
 2025 15:57:08 -0800
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 18 Nov
 2025 17:57:08 -0600
Received: from [172.27.232.218] (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, 18 Nov 2025 15:57:07 -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: 4f00447e-c4da-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qV+hPqtRDcyBPpwfQIf5u6Xt+GK2B31UJQaFkwp+Ze4rrE/4s9uSGM9Iq8i1jeW7V1m54UQPnwUo5iD1vsinzFKqR7H02//Ajf2QQPZWJ9tSR58ZEBJo18jLlwfygq9T6uSV30SFv7ahqDtRqjYC0jxL+EJh9LCw6JugaRrk9OoXO4S5vPTmMXIqmn1TtrKGokN9tfkoVdlhn9iSn0mtj6AyUs/9/LV5q0VDMWvbKipXnXtssrmOCCO+PRGzJRo5PrEAdFUYP5tYwFCgjVv5WZedCwqmfIdxIU6iBq2fI6ARKs7gQg3ifUzPG9fA2Ll7vGvuUd8Wll4l7r6RFUTcoA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TJSAe+xeKd4uG+kuBtefz60/TNdSAs9kSUiyuH8nHAQ=;
 b=B39NUMXaERjF1vh/zJg02yzSiHf57LhnzrHTFZkY9Fa8NGcSnc7wFc9oh+5ZMUa1jqSs0byY8ywfvnRBbuxJ1/KLxeP60iNxqYi7PMVv+THv78uxWNbuOXTi+qFI3s9NKRfR4mWC8BLtAo2rOCbxt3KxrDAKCctpI2vpC6ngHu7hRyPD7+2xAZaNr5ihm6xhluVOWqxAK+Az9cwdXgfyV3XoEBpbsHSdWf2vTAM1jtNFYEaLlOoY/NIBntZe87r43257eax/sLxiOx2V3W2NLy4qXEQva0HAzrXf1ho0A+vCOyMkqdVAfOBvm1seca4kQz/Dr96qLzKSqx+bJ0KBtg==
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=TJSAe+xeKd4uG+kuBtefz60/TNdSAs9kSUiyuH8nHAQ=;
 b=miCWQkg3/hmRHQq8GCWzCSs5DH2Zj2WcAPZ/z5ndsA2e9V3hulLSvVv6YA/TtAN7Y1PVo0ZGl401lgYxWSFJbMGXw6rRRGyvm7VrCsF3MMgCiyFRYuu0iNjIhhck12xz/FWBxfxSFpoB/zxehShzkoULIPSEbMHXhRNBupU5by0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <53d1878f-413c-43c2-8bec-750ff3eade9c@amd.com>
Date: Tue, 18 Nov 2025 18:20:50 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/7] xen/svm: limit the scope of "rc"
To: "Penny, Zheng" <penny.zheng@amd.com>, Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251113031630.1465599-1-Penny.Zheng@amd.com>
 <20251113031630.1465599-2-Penny.Zheng@amd.com>
 <8304ea57-0574-482b-a2ea-e1dadc58656e@suse.com>
 <DM4PR12MB845149F3F5C2262969771FCDE1D6A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <DM4PR12MB845149F3F5C2262969771FCDE1D6A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PEPF00017097:EE_|DM4PR12MB6157:EE_
X-MS-Office365-Filtering-Correlation-Id: 04294a5d-334a-4e81-9596-08de26fe3095
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?Z0Nid1VINkp2Q0lCRVNrekhkVjZUTkFDVVJLaUl6SDhKWkRrUmI2UG5KQTJa?=
 =?utf-8?B?ZUtPdURZM3JSUmtEY2QrQ25QaGY4OHM3VXVoQU53TGo5QUlkbUV5Y0hGcDEz?=
 =?utf-8?B?cHRvTmkyU1ZMaDczUmc2RXl1SDBnRGNkbWttT1hrcVJ1YlB3SFNYbDBqSTAz?=
 =?utf-8?B?TENMMVlOQWk1MUN0YmxyZFdvNjhnM284OTcyTFZrcnJTTGxGa0lLK2NDQzhk?=
 =?utf-8?B?TUJTTHZzK2pvcktRMVNCTVgyV3hiSDRDdWgrSzE2c2Zib2VjcHdmTUJMeWx0?=
 =?utf-8?B?N0d5ZCt1aUlXWUNJeVpTR1cvYkdROXNuNmtlNzRzeFFQNjdRNnZBM0pFK1lw?=
 =?utf-8?B?cnltOEVVZDhDN3dqUSswWXBpTkpQZkU3amgrdTdQaytxVlpDNGpvcEZZN1Vv?=
 =?utf-8?B?dXVJTjVWbXVET1E4NTBLelpjRHBzdGlDNVJTazNDQTVrdElHT2Jrb05YVEt3?=
 =?utf-8?B?Yzk0RHhiSUtPdDQ2WTRxYXZVVVpMMjk4VURZWGwzSkloUVFnR0QzK1RNVjA3?=
 =?utf-8?B?cllaUmtibWU4Tm1PUnhZRkJseURyQ2I4MWEzMExwdWJzT1ZNYjRrb2R6aGho?=
 =?utf-8?B?eFZESGxpWWI0WFpkYXZQSmh0dnZMSVpudUxzLzZtdHVHVmlnVElOWDByRUJh?=
 =?utf-8?B?dTcremJpV1M1RndRQk9yOUJwRkp1aGtoUXh2UEl0OGNnSDRsUWNPYkUvOFh1?=
 =?utf-8?B?T0FCL2czREhLd050RXU2YThYWnhiMXhVc2RoRWc4MkpIUFNZYzZTNTFkZTZ6?=
 =?utf-8?B?dGtMa1lMU0ZXS3F3UUY0bkYwNEZDbVhVVXVFeWVnWE1DWUhORlk1aWRUQlIx?=
 =?utf-8?B?S1NPeGpXamQ1VHpxc1VQekpoTWZTRGpkS2dDV0ZQZTg4UmZDWUtwS2d0MHUy?=
 =?utf-8?B?YmZ0NDNNZ3ZaSjdPWU9zR3BOb2JCNEwrdE10RS92aHc3bTN2WlhYd2JWWUQw?=
 =?utf-8?B?T0Mwd0NJYUFCQUpyVzhNM0NYT1VZUFRLQVdEaVJTZG1UVGJhTDMrNVBjRDBk?=
 =?utf-8?B?R1dMZVY1cUJCeVBac2dWem9HTy9IY3ozSUpOdDl1WEhibVZ4SkpsaXdzNTVh?=
 =?utf-8?B?MkNOVXh4Ymx0ajNNM0g0Vndicm1oNGs5U0dIOHhwU2dNV2Z2dUF2RG5ybTd6?=
 =?utf-8?B?d2szOVN0emUzajNXTmNBa0RlL3BHbzh5MWVIR1Rva01VdGY3MnEyZXliL1Jy?=
 =?utf-8?B?bnUxTkxqTEFhRVQwYUkwU1RaUDdTMFRBRHdxQTdwdmRCQ1Z0bHVnMHZxakd4?=
 =?utf-8?B?WUhqWXc2S09Xd2F3aUdrRW9VaTQzZ3dYSXhGdEd4dUZ1ZUJqWXoyYnVDM3dD?=
 =?utf-8?B?TmFXam1yaE1QRGpwVUhDa0hmUDNTWlRoTVVKYnB0Qk02T1d6dUF2TlUrQjd0?=
 =?utf-8?B?UFBHNEF1amNITHVQRWFMcXhLWEFwWHRDNzZkakNOTnFJa09XaVZSU3ZGNGhu?=
 =?utf-8?B?K2lUdGdmZ3NwTnlIenIxSjVxNHZVZlJZVWwwVE1oa3dhNmVlWGthMTNYeXp4?=
 =?utf-8?B?NU5qajlYU01tWTlqRFJwNmJUT2M1Qm9FMWRXVy9uMW9MVW1saGFveGVTVWlt?=
 =?utf-8?B?VFU4MktTTmkxd3hCaHUrbCtOcTdUKzYxd3RqZnhNMzM0SkpxbHZLcVlKajRC?=
 =?utf-8?B?ZWxDaitZdGpCY01RWWxBaDRqUmcvbFJ2NWh0OTlSRHlOUU9iZXUwQkhRMGFZ?=
 =?utf-8?B?Vm1vVHhyU3MxNGgrbFdhRG56Wkl5SHk4TnkranNMT3lCci9rbnRjU2NBYWUr?=
 =?utf-8?B?Z29UejZ1ZkNuNzlFd2l0ajA0YXJzQWp3L1hVVmI1T0NQeENlcUVjazZORTYv?=
 =?utf-8?B?eVlORG13R0Q2MWpiMnEzUFhBL0h4T2hXWkR2M2xuYXk5bXR1QnB0WlZzc0N1?=
 =?utf-8?B?cHliMXZKcTN0T0EwdThqcDJPbVlSKzdzTmdLbG4vK2o4dTZmbFBhMmVaTkdR?=
 =?utf-8?B?S2ZKN0JiMExxRGc3VFNBRnE4eEorMXdCdVQ0cndTUlRVbm9OUVVZNWR5NlJW?=
 =?utf-8?B?V0Nta25PYkZuZ3lXblVleFloSGs0MGc1VHRhL3RobTN3YmI2cVY3Nk5qQmty?=
 =?utf-8?B?Q0tWQk9yR3BOZmpZTFNTRGF6V1hIVVk5K2hoWDlIcy9MbGtDTTQyRkhyMnlL?=
 =?utf-8?Q?fsCE=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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2025 23:57:11.1044
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 04294a5d-334a-4e81-9596-08de26fe3095
X-MS-Exchange-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:
	DS1PEPF00017097.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6157

On 2025-11-18 02:11, Penny, Zheng wrote:
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> On 13.11.2025 04:16, Penny Zheng wrote:
>>> To make codes less fragile, we limit the scope of "rc" through adding
>>> several instances in relatively narrow scopes. We also fixes wrong indentation.
>>>
>>> Suggested-by: Jan Beulich <jbeulich@suse.com>
>>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
>>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>

>> As you touch the code anyway, make this the initializer of rc? And at the same time
>> join the latter two lines? (I may take the liberty of making these adjustments while
>> committing.)
>>
> 
> Thx, plz

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 00:07:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 00:07:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165389.1492165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLVj6-0005pK-Is; Wed, 19 Nov 2025 00:07:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165389.1492165; Wed, 19 Nov 2025 00:07:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLVj6-0005pD-GA; Wed, 19 Nov 2025 00:07:12 +0000
Received: by outflank-mailman (input) for mailman id 1165389;
 Wed, 19 Nov 2025 00:07: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=y3JJ=53=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vLVj4-0005p7-Du
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 00:07:10 +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 ada64bff-c4db-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 01:07:04 +0100 (CET)
Received: from DM5PR08CA0036.namprd08.prod.outlook.com (2603:10b6:4:60::25) by
 IA1PR12MB9531.namprd12.prod.outlook.com (2603:10b6:208:596::8) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.10; Wed, 19 Nov 2025 00:07:01 +0000
Received: from DS3PEPF000099D6.namprd04.prod.outlook.com
 (2603:10b6:4:60:cafe::50) by DM5PR08CA0036.outlook.office365.com
 (2603:10b6:4:60::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.10 via Frontend Transport; Wed,
 19 Nov 2025 00:07:00 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 DS3PEPF000099D6.mail.protection.outlook.com (10.167.17.7) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Wed, 19 Nov 2025 00:07:00 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 18 Nov
 2025 16:07:00 -0800
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 18 Nov
 2025 18:07:00 -0600
Received: from [172.27.232.218] (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, 18 Nov 2025 16:06:59 -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: ada64bff-c4db-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eJZ+/Zq7m15vY8GrYgOMeDhghqW5ScxyFy76YWctJE0Mz2T8zum6o4cANYPWqId2me12iZeLfob7bQKVgXnV4XyLv6/gfoh7ba/5xInZullmxfEzlWYB+eoVZV8C4/clT57up/ZXNQAt6geO5P4gMxc7l60yHd1l9It27NORlAxYJ2YhM+V1R6s+zMFlnZjFXbxmJYt094ER4MJO20Zhlz8e4vH6IWuUjRMQn1I79f8gqMP64sp/9J/nZ7kF/AzFzfBSx/V/7+9Mctlzum9tzzslwcPy4xkH+WWO3j7UqZE2+VqQ81FEK/awhq+tgPgvvJq6o2CTrpWpZ7lxnb1Tdw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8mjn+Qd46gOML/itX0B1Ca5s1DfEHlEzRO2k3J7b9So=;
 b=h4BEwBzF2g7vM6fLccVG6M6Sl50QkB7Kay4VpryrKQBH8BnqxuBD+Rlee9hyVMteXd+19zlgx8p366fq02rWWR2lfhK4LgpZXM01qIQy/9tgHMvYjqtaSosoiH9IkMx1JJbvssyRDL9etnZojuW2d7MmGT35tDZz30CxR1YOnq94m9ZwUcfwbC0PESjT2N0QyiqMEYldx2KyBHLO+vNEKXbw5yRfpWiMsgQC6Ycg+KLq8SSNRukNDv1HYdXCAvTiD5/M0GdaVcc6BWlQcCaoczfS7046Cf6KB0G+SaCON7KvjxUkggpBWUyZrYGM00NsrjcrFJ6XbbZXfxWvVztSWw==
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=8mjn+Qd46gOML/itX0B1Ca5s1DfEHlEzRO2k3J7b9So=;
 b=EzKkvF2XpZoeVw0PxizE1D8/RlGM5VkRB4ZxbZV1amxaTFU9KcsG+qG4j3owwR4FrSID2LLv8utrUO9YnxXG4y/zAtjJJ36+qbJg4Gk3eBE8aswpodQwec10vQCMkT4uUMtevun3AaQ2DD46cvAgno4R+oaz7uZZNQ2+lRkeFI0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <82407d33-14a8-44b3-ab43-78fc7908ea7f@amd.com>
Date: Tue, 18 Nov 2025 18:30:47 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/7] xen/vm_event: introduce vm_event_is_enabled()
To: "Penny, Zheng" <penny.zheng@amd.com>, Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Tamas K Lengyel
	<tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>, "Petre
 Pircalabu" <ppircalabu@bitdefender.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
References: <20251113031630.1465599-1-Penny.Zheng@amd.com>
 <20251113031630.1465599-3-Penny.Zheng@amd.com>
 <8c74b068-ba9a-4867-8d39-31c77f3cc339@suse.com>
 <DM4PR12MB845153694D28CC23FCF7C7C3E1D6A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <DM4PR12MB845153694D28CC23FCF7C7C3E1D6A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF000099D6:EE_|IA1PR12MB9531:EE_
X-MS-Office365-Filtering-Correlation-Id: a85f86d5-8296-492c-4660-08de26ff9013
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?anAweWEyc0pCeE5lcDROaGlTcVA2QS82L0FqM21CL1JXeVNDWEd4VzZmTjhM?=
 =?utf-8?B?S01QQkxBTW12TmF4aTNSdkNsVTNpS2QzVjlGRUlSM3l5VmkvcEt3VWV5VUR5?=
 =?utf-8?B?a0JiSjVlaXZ5aDJuTXNKYm9yaWpraEQ2Q00xaWU0L0ZQSEJUZlh1ZlMxUWlp?=
 =?utf-8?B?b0Y2UU1RaG8vcUlhbXpLSnEvam1YYnFvN1NSUE1JdEF3ZlBCc3FtcHZTUVk0?=
 =?utf-8?B?VHMyL2kzT1VkVTM2RHd4OHZGdjU5cldGNmErcGticXljWVYvQnh4dnc3MnpR?=
 =?utf-8?B?RHh1UmpFRm5aaDBRSDlrVmxLaTNKZExKd29rb1NnMHRQTU9KT3Vod0o1Tmdl?=
 =?utf-8?B?L1hzdTlBMFh6Y3pHTzZldjgrOWdvUlJQTG9DRXZCbzZyd2VsSlRwcEtXUUhm?=
 =?utf-8?B?QjRtTzd4ajFOTTdBV0htQ0FVdXNyU3ZwZit0dG9BaXhMVmZmUTk2SGZzVEZ5?=
 =?utf-8?B?RXU2ZzNpZFZhKy8rcjNLbGhsaWtQalRhVGk0WXFZZ3lEQWJrWExaTnJDZ1NP?=
 =?utf-8?B?Yk53R3BqQVNacjFpc1NlZDZXUC8xdHR0WVdaNEhvZnVWWmdvK3JUK0hsMHFE?=
 =?utf-8?B?U0NCN0Uvdk8xckpYeGNweXFjR1pheTJSMyt5KytTNnBTeDdBMGZXVVZnSzhV?=
 =?utf-8?B?bTRvU3NTUWZ2K2hjUzdGZlZiZ1M0eUJwa3AvS3dUbkRqbWI2azlrVWUxMGg4?=
 =?utf-8?B?VGtoNUx3RTA1Q3NqQ3hET2toT2JwSU5SZXEvSElWT3RQL2FhTEJZcmlBU2Jp?=
 =?utf-8?B?SEl5Y0dmcFpyUmQ0Z0FoaGxIM25zZFlXVGRhd0k0dXZzRExDUEorME1QRjM2?=
 =?utf-8?B?MGNTRUNvS1NxalhqaXQxcjFwUC8wcVlsV2lnakkxSmZTd1N1Nnl5Z3Bib1g4?=
 =?utf-8?B?bnIxL1JUK3pHTnNuUzRyN0l4amczakNyeVlJRnFnUE5NV2UwTTFnL0VFakZt?=
 =?utf-8?B?NW16d3VINkU1RDQyazlGZmdXVzMvbGJONmo3ZTdZdytEWWF1QlB3Tythb0lt?=
 =?utf-8?B?NXBweTJrZWlqRTJ2MFpIR3llYUVYRTVIRkRJalJFU0RYTDh1Z0swTFQ4aXZ5?=
 =?utf-8?B?am95WmNyR1drVDduZ0xXeVZQUmIzRVVVRjNQb1JLNmh4dzc0Y3NKbWMwb2tU?=
 =?utf-8?B?MDNBcXI0aUVqdHFMbFZkeEg1Q2hHVGd3dU50ZmFFM0tLUy9xTU8vcDVGdzVz?=
 =?utf-8?B?OFFNWlJNTjNDbEkwdDVpWlRIaWNKUVNvRmpsMFZyNHlCdUNxUTNCZEpPUWUw?=
 =?utf-8?B?TFdGbjlTL1lyQzBZclpRMVJCeVJSVlkwRldtTXdWNjZZMU4rZWJmYkxaY0NR?=
 =?utf-8?B?bGo0ajNkVWxxYm5HWWJBcVRZOUtmL2MyN09HemMzeC85enJuQW9ZMld1L2dP?=
 =?utf-8?B?UGsvWk5QSnhvQjRjZVkxdUJORlNEK0FEUDVZNW5sZjBQdkU1eC9GNVVrcGQ5?=
 =?utf-8?B?SFRDSU5hYkc5RDhQRVo0c2k0cUdKTEVFcW10V05DeG1JSnk0R3hCZUVScFdB?=
 =?utf-8?B?ck1RSDRhQlV0VVpFMWNkbE5nZFRjQXh1ei94M0ZkdjlJemx6b2x1eTRwdmhq?=
 =?utf-8?B?NDBNdFptbzBhZjhtRzBPTitqemtSYjI0UTRjU2hMYTB1YWhFbHpMR0RzeGFL?=
 =?utf-8?B?WTk4ank2MlNNVWZ3MzlTRTZLaStvbHFka0QybnBQN1dDVmZ3VE5SeFR2MDFr?=
 =?utf-8?B?OXBhK3Y1Q21UOHNIamdvTkV0OHdITHo0VDlKUkRmaUd4UTJpYkc3TDByRmRX?=
 =?utf-8?B?UWJsY0xhSlErYncrREt6MXhPQ0Q0eFg1UC82cXhrUGJpOHlza2NucTUyc1ln?=
 =?utf-8?B?Ry9PNHZLdjAwblZPSzRxN0o2MUdpMTh5aUk4WFJyRU5WQU1yVEI3aGNFN2g5?=
 =?utf-8?B?bFFOM2Y0SGdndnp4dnBOQ1hzWE9LMG9YYUFOaWV0SVdwRENhazAybi9QNmp4?=
 =?utf-8?B?alRnWEIrRzJvdnZBZU5WV0NjL2RNenpHd1ZCcS83YUxvTEtSaXZDaG9EVnUz?=
 =?utf-8?B?cHd0Nnc1YVZTaGRpTUpRSDJVK3RJcTQ0NVF3NVVXdzV3VHllNUoyb1Q5dGJm?=
 =?utf-8?B?bVBkR1hCNXdNeGZzeXhNdU9YSlFiOUgrKzlwV2RoWDJ1K3JzZ2VBQU54TlRl?=
 =?utf-8?Q?/LOw=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)(36860700013)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2025 00:07:00.8489
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a85f86d5-8296-492c-4660-08de26ff9013
X-MS-Exchange-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:
	DS3PEPF000099D6.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB9531

On 2025-11-18 05:11, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Thursday, November 13, 2025 5:14 PM
>> To: Penny, Zheng <penny.zheng@amd.com>
>> Cc: Andrew Cooper <andrew.cooper3@citrix.com>; Roger Pau MonnÃ©
>> <roger.pau@citrix.com>; Andryuk, Jason <Jason.Andryuk@amd.com>; Tamas K
>> Lengyel <tamas@tklengyel.com>; Alexandru Isaila <aisaila@bitdefender.com>;
>> Petre Pircalabu <ppircalabu@bitdefender.com>; Grygorii Strashko
>> <grygorii_strashko@epam.com>; xen-devel@lists.xenproject.org
>> Subject: Re: [PATCH v1 2/7] xen/vm_event: introduce vm_event_is_enabled()
>>
>> On 13.11.2025 04:16, Penny Zheng wrote:
>>> Function vm_event_is_enabled() is introduced to check if vm event is
>>> enabled, and also make the checking conditional upon CONFIG_VM_EVENT,
>>> which could help DCE a lot unreachable calls/codes, such as
>>> hvm_monitor_io(), etc, when having VM_EVENT=n.
>>>
>>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
>> I guess I might as well do the adjustments while committing, even if it's quite a few
>> of them. In any event, with the adjustments
>> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> Mant thanks

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 00:09:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 00:09:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165400.1492174 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLVkr-0006LN-TG; Wed, 19 Nov 2025 00:09:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165400.1492174; Wed, 19 Nov 2025 00: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 1vLVkr-0006LG-QM; Wed, 19 Nov 2025 00:09:01 +0000
Received: by outflank-mailman (input) for mailman id 1165400;
 Wed, 19 Nov 2025 00: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=y3JJ=53=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vLVkq-0006LA-Jb
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 00:09:00 +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 f1a3602c-c4db-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 01:08:58 +0100 (CET)
Received: from BYAPR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:40::27)
 by MN2PR12MB4126.namprd12.prod.outlook.com (2603:10b6:208:199::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 00:08:55 +0000
Received: from MWH0EPF000971E4.namprd02.prod.outlook.com
 (2603:10b6:a03:40:cafe::3c) by BYAPR04CA0014.outlook.office365.com
 (2603:10b6:a03:40::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.10 via Frontend Transport; Wed,
 19 Nov 2025 00:08:54 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MWH0EPF000971E4.mail.protection.outlook.com (10.167.243.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Wed, 19 Nov 2025 00:08:54 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 18 Nov
 2025 16:08:54 -0800
Received: from [172.27.232.218] (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, 18 Nov 2025 16:08:53 -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: f1a3602c-c4db-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=a3WKCXfjl16Cd8vk1vR9Jy3fyn4k7Knzi08dTvrzss0e65rpoBiV+DV7JF50IpuyhYjNbQIYf+fuKnpsbhM22lhoH+7vcOzh3JPXsTFbvy0QojzRpuXCnq76p6yOAmAVzw0O/3DhXwUyBNHHHif/qTRuoQ5b5YeXFjN/uHOcDJhk25gDVVEU1Vy9EDPcInjbbIgdPeD9LKH34d2VHtNIMAAqVsRZG/xzb9floGzZCjhQT9rNhHJS+zNvFRDr9Vmn1Oo1Pp4PmJDL001Kp1HywJ3WuirPCbjNF69C3WQd8mklUoT9xK1GqQba6paGZB4XSGoMOFvxxwSSQ84fjy30EQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=R81sVUysovOxXE6UE4eYjgnofd2JsEJPd3NYNv6MvEw=;
 b=LINqwAnYLeBczllGmN1kfod8W+TjMZfa8zbR8ScrFYLCufYwlyGND0fSfFbU2S+FLdrNQHP/Zg8C5j5+VT3aUF49yUlSH67Ps0hsTgZ/9BxXS0c1pKhx98/kPu0Hm3gsuaanI0AtZ9bnJTj8jPPWeGBi+XViuEafEEIFSF4I2zcV5mT1NhSFWugqQVSglZedau579Xvh5xjwV/yy39sdxY47CVgUvXgzu9XBNWAijiZp/70kSyy5zVBi1Rr7jm5oq+wJtolZUyjcYqChPL3rpcS1mPK1spkCyC56ld66d1TU+z4+KqDfA5WxSc82OBT8b8JZhrePQ5CFNeTzB40Rcg==
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=R81sVUysovOxXE6UE4eYjgnofd2JsEJPd3NYNv6MvEw=;
 b=msmGh3HRPGJHyMs0OkBYfE1hbC6JEWf0ZGNsyvYlH7mdcR1TaxpwdvMQyJ2rL9y2PFdeMsFemgREQ16JI5lrzjaORCVi4vaP83KiTm4EigOXi7+Qh2ur0zWbiZNKVa8IB5hKU0YQJjsTuKIY0Sn7K+BDfID5d0VX3Qx7+OhYcmY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <99620d96-4a79-48a4-a506-38d5ecc14eae@amd.com>
Date: Tue, 18 Nov 2025 18:32:36 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/7] xen/monitor: wrap monitor_op under CONFIG_VM_EVENT
To: Jan Beulich <jbeulich@suse.com>, Penny Zheng <Penny.Zheng@amd.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Tamas K Lengyel
	<tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>, "Petre
 Pircalabu" <ppircalabu@bitdefender.com>, <xen-devel@lists.xenproject.org>
References: <20251113031630.1465599-1-Penny.Zheng@amd.com>
 <20251113031630.1465599-4-Penny.Zheng@amd.com>
 <e443bbe9-e2ac-42c7-803f-2017848c4f58@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <e443bbe9-e2ac-42c7-803f-2017848c4f58@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: MWH0EPF000971E4:EE_|MN2PR12MB4126:EE_
X-MS-Office365-Filtering-Correlation-Id: 49272bc0-fedc-489e-2394-08de26ffd3e6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SFdDUFd6ZWRGRkNGajF1TWYvbkZyZVNVT1ZKQzlTcFR5a0RtdHNvdFlMYWFo?=
 =?utf-8?B?T3I1ZVlmZzNMYk9VUTZlSVBQa2pBc1hTajJ4RDdQbGJiMEsxUDdqbk5uWUcz?=
 =?utf-8?B?eFlSZlQ0bWRZY01nRzlCdjdlWHpObzNybEc4TnRiZDRoOVk4WG1yU2pQNURw?=
 =?utf-8?B?enZ6VEVHMDhXUWtFWjBxc2FzNVZDL0RXcDJHWGhYazZZR1ZYemZEVEVlRHYr?=
 =?utf-8?B?eVBTUXA1UHhEM2xmMHltOGVvYmlMNDNWY3lmN3JZaDdWNHVLT0ZNMWdDbHdw?=
 =?utf-8?B?QmVwRkFjQmRyRldlVGh2akxFL3hSdzhOMzM3ZWlnMkcwU2YxMk90U1RSMUlu?=
 =?utf-8?B?T0UxZm84S293YTBUZTVKNDF6YVZmTjVHTk1CTThXRFdOc1M0TDk4cFZkTVkr?=
 =?utf-8?B?S0ZLc0orSXRRSmdxTnN1K0pjTjRrTk85Qjk1K3JoelNqdXhaWGRmcW1iSm1l?=
 =?utf-8?B?WjZkSytLaW56NzJ4bTl2YjZuZUV6ckdTek9GYWpjVnFNeWVHblBjV2lmc0pZ?=
 =?utf-8?B?RGQ2aFFKamlES1hSYW1nbmhydE0wS29lZkwxTC9IOWw0M1I2NklGbkVPalY3?=
 =?utf-8?B?OVdjWmtxSC9KNVdCSnhqSHFmVVBYVFFKdUp2bmJkSDdwTXpzTXJyaUpwOEtG?=
 =?utf-8?B?M1RkTURuaEw4cWRLOFpRVDJTY25zUjh2TSs3cmdFQXllOU9uc2tYdUZaNnE3?=
 =?utf-8?B?eVlZVjFKUi8wa2FvUnpDUUw5UnRoVHBuSk42c0FzVlRMczFlTjhOUWI3aWlC?=
 =?utf-8?B?T1E5cG9xTGxQU2ZuOTJ5YWZHNmVqMWpCV3hxWUEvNlVsekxUcEQxaldGcEdY?=
 =?utf-8?B?bm9KdFkrVitvZHppdmxLaXQzZkxIV1FKcGE5cXhCWmpiYTcwMjE4cGcxZHpl?=
 =?utf-8?B?am9Zak9hVGhNeTNmdTcxSTU1SkFuSzd6R09CYTJxRlQ4MHpOMTh1RHFKek1j?=
 =?utf-8?B?YVZ4MytIeUNOUGl4TjBzVVZQVkYvVlpPajFkVk9tYmdURDMwWTdwS1BsR0Fp?=
 =?utf-8?B?SDdQYmt4MUFLNlJlL3FmUjFPaU1ISy84bjY5Sm1NRGNjN3Z0REM3MVFGakdw?=
 =?utf-8?B?VWZtdlU3WFFVcjFrQzJNdU1NdVI4NjBsMHA1ditqVEVYTEI3aFNFcHM4a002?=
 =?utf-8?B?d2ptWGdDVm5hNnNvb21iYmxvazMyR3JlOTZ4NDYrdDNvVGN6Tyt3anZGRnVE?=
 =?utf-8?B?L2ZQdUdzdVd4b3hqbVJ4WVR1NXM1QkVWZnFTZTNpZnozTk91aDdPUkZURXRz?=
 =?utf-8?B?SURza2dHaHViK1ZIZXZkaURwejQzY1NvTkx0bHE4ZC8wVkw0VzNHTWJDTXJY?=
 =?utf-8?B?RmpUQUgwblJPU1VEeTMyYWt3Zi9NeWcreCtzVnI0M0dZUkRldWxTWWw4TVlF?=
 =?utf-8?B?NjA0WTU5d0Z3bWs4cUFmemdtSXhLR0JHSzI5cU9VS0ZGaTBmcHVSUWcrTE55?=
 =?utf-8?B?L2NwcHorRG1hQnl4WDBKb280YVlRUGNJUmRGZTUra1FCRjkzS1RsS0tDSTZL?=
 =?utf-8?B?cTNlVDhiak1qK3piY2JGY1hKSXpEN01DMGV3UFpSS3U1NTluUmtDaEx0Q2dR?=
 =?utf-8?B?UERDZXk3Unh4M3JuTTVtVFZ1dEI1TTloVm8xbERpQk4zQW5hTGt4YjN0dmJE?=
 =?utf-8?B?dTVEb1BzOWhJN3hXUFhzRGY2dFFYdFZEcFF0T044RnZBWkdVWWllbURiZXhR?=
 =?utf-8?B?OUVUaFRxYkE1aWFiakI4bGJUdTkyTEdrN2RDbkI3cTJ3cXY2ZE1GNVAvMCtF?=
 =?utf-8?B?TDNqODI5UlBXdUlyMFlCUUljaERoMTJZSCthUC85aXoweXlsc2VVSFFnVTlP?=
 =?utf-8?B?SEZlT0tVUGlqbklDRlZUZ1orZkpsRk9WeVB6anplUDB0OUVmeDFtR29iQTd5?=
 =?utf-8?B?NkJHSXhkQjlpZEhUYmhGck4wNVY2ckpLZDIxc3E4bVQyWjZEdUhvSTN1a2ZM?=
 =?utf-8?B?UUEzQ2hjQmZSd1hkMzMvRm1ZKzRZQXdnSUY0VnFSWHBTMy9sZ3hydWNuY0h0?=
 =?utf-8?B?ZUczcXRYQVFaUjc1dEx3dTV3OXdWOGtxcE0xVGVtZDZzWXY2K3VROFZMMHhZ?=
 =?utf-8?B?T2EyYTlaU2ZOamUrRDduYmsrWjhlQVAzTjRsNzRWYW91WXhoclZkeC9aVlBM?=
 =?utf-8?Q?2Okk=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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2025 00:08:54.6060
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 49272bc0-fedc-489e-2394-08de26ffd3e6
X-MS-Exchange-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:
	MWH0EPF000971E4.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4126

On 2025-11-13 04:18, Jan Beulich wrote:
> On 13.11.2025 04:16, Penny Zheng wrote:
>> Feature monitor_op is based on vm event subsystem, so monitor.o shall be
>> wrapped under CONFIG_VM_EVENT.
>> The following functions are only invoked by monitor-op, so they all shall be
>> wrapped with CONFIG_VM_EVENT (otherwise they will become unreachable and
>> violate Misra rule 2.1 when VM_EVENT=n):
>> - hvm_enable_msr_interception
>>    - hvm_function_table.enable_msr_interception
>> - hvm_has_set_descriptor_access_existing
>>    - hvm_function_table.set_descriptor_access_existi
>> - arch_monitor_get_capabilities
>> Function monitored_msr() still needs a stub to pass compilation when
>> VM_EVENT=n.
>>
>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
>> ---
>> v3 -> v4:
>> - a new commit split from previous "xen/vm_event: consolidate CONFIG_VM_EVENT"
>> - Another blank line ahead of the #ifdef
>> - Move hvm_enable_msr_interception() up into the earlier #ifdef
>> - only arch_monitor_get_capabilities() needs wrapping, as this static inline
>> function calls hvm_has_set_descriptor_access_exiting(), which is declared only
>> when VM_EVENT=y
>> ---
>>   xen/arch/x86/hvm/Makefile          |  2 +-
>>   xen/arch/x86/hvm/svm/svm.c         |  8 +++++++-
>>   xen/arch/x86/hvm/vmx/vmx.c         | 10 ++++++++++
>>   xen/arch/x86/include/asm/hvm/hvm.h | 18 +++++++++++-------
>>   xen/arch/x86/include/asm/monitor.h |  9 +++++++++
>>   5 files changed, 38 insertions(+), 9 deletions(-)
> 
> Same remark as for patch 2 regarding the subject prefix. Then
> Acked-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 00:17:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 00:17:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165413.1492185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLVsu-000829-MD; Wed, 19 Nov 2025 00:17:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165413.1492185; Wed, 19 Nov 2025 00:17:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLVsu-000822-Ii; Wed, 19 Nov 2025 00:17:20 +0000
Received: by outflank-mailman (input) for mailman id 1165413;
 Wed, 19 Nov 2025 00:17: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=y3JJ=53=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vLVst-00081w-R6
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 00:17:19 +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 19ab18e8-c4dd-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 01:17:17 +0100 (CET)
Received: from BN0PR04CA0182.namprd04.prod.outlook.com (2603:10b6:408:e9::7)
 by DS0PR12MB9057.namprd12.prod.outlook.com (2603:10b6:8:c7::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.19; Wed, 19 Nov
 2025 00:17:07 +0000
Received: from BN2PEPF000044AB.namprd04.prod.outlook.com
 (2603:10b6:408:e9:cafe::f1) by BN0PR04CA0182.outlook.office365.com
 (2603:10b6:408:e9::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.10 via Frontend Transport; Wed,
 19 Nov 2025 00:17:07 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN2PEPF000044AB.mail.protection.outlook.com (10.167.243.106) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Wed, 19 Nov 2025 00:17:06 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 18 Nov
 2025 16:17:06 -0800
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 18 Nov
 2025 18:17:06 -0600
Received: from [172.27.232.218] (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, 18 Nov 2025 16:17:05 -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: 19ab18e8-c4dd-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OTjdNV1iH6b5hJuv1B9iAsc+7gnTwJSEsLnrpDKRk19xlhw16ZZXgOTYmQwJ6pNRsYWJjp5YcWl0ZL0A8HQNXqnty8prG+khjTLkONIBDvqI0DVzlhUh2BF0XkSUTXjUgLR8K4vKbpQbakBVrUnA8Btnu7dOImRMujJbnSZQ1vNk6P6RRrGLgbftRdq2v5juReqzDforyjtjOx1m72P84JcidEfqu58IdkO0c2+VXEZJJnLP59buArCHsGLuj02Jifl6Nas/M22BJTHCnb3U44HMq/GUlEWuh1jiN13IzcAdRviQ2oTzm7XbRT6CjnieKwfvSLhFeqGI0Dwr5ivNZA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZckqI7p7DpTBZvd1JPWkL30gfBv8JG1WU+UnmLbVB/M=;
 b=iWmgfmH0bJtzVVZQ/tW+76y85ynqjLKMiCaEDBCCUGAxPnPGD3DZhbrQ8ZE08074wuMdbhNHo/GfTViJw6TUjofgx16wZogJX82rp3iA+1O1JKOAWoxnYM3416qQuT5HXyPohjSrnILmLnfZFNu6zFA9wd10dBu8qDsdWWbucCWeoEmnu1arTGLN7KVEJIF5eyY1HXToK2chrCUqevbN2jM/1kTiayvDue4oRd2j9V0YkqN9wCn6LBEtrjIn8UwGySXWtbUXKRRWQqEnzAokHmSg1c6kKUD1MTDDDs36WwiHM8M0FmpaQfdIiPQ2w9oaKtUZnIk/bto3YelQbU/jeA==
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=ZckqI7p7DpTBZvd1JPWkL30gfBv8JG1WU+UnmLbVB/M=;
 b=BgSSs+EEnaRj1I/OBJC184WUAOZmWwj1qefRBDJsXQ5k6TWsjfJjVkNWDz2cPRnbGtREsXhRelHEOVkQMXnzmTpeE7sEIlMd2mjB4lS0wP5QqgSynuI+j9yy+0Y9igyJC8mAhWwfJyzENfGL1BW0/8ddRMePnDfZKuAmlm6z7mw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <7cebd161-5eb2-4755-a78b-28cea5ebd9ff@amd.com>
Date: Tue, 18 Nov 2025 18:40:53 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 5/7] xen/x86: move declaration from mem_access.h to
 altp2m.h
To: "Penny, Zheng" <penny.zheng@amd.com>, Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Tamas K Lengyel
	<tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>, "Petre
 Pircalabu" <ppircalabu@bitdefender.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
References: <20251113031630.1465599-1-Penny.Zheng@amd.com>
 <20251113031630.1465599-6-Penny.Zheng@amd.com>
 <136416d6-ea2b-444d-b331-8aef1881ed91@suse.com>
 <DM4PR12MB845171D6D974E63DDF6D4D6DE1D6A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <DM4PR12MB845171D6D974E63DDF6D4D6DE1D6A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000044AB:EE_|DS0PR12MB9057:EE_
X-MS-Office365-Filtering-Correlation-Id: a690874e-36de-4810-90cd-08de2700f946
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?QUFiYWtMV1VtMldFU0xlSnJmV2h4N21UY0tadHFGYzFwdXdKRTR4Qm41YWtL?=
 =?utf-8?B?QWJMMXBucFJoQ2VrMXhuUGltVlYydjJqbGdYRlc4SngzdmptMWJ2N3BnTDBq?=
 =?utf-8?B?WjlYRXYyRmEyVmk4TTJ6cFE3VWswdVBUaU91aXZrSHFzS3JMNTFTcVJLUXVv?=
 =?utf-8?B?RHp4dCtqL0duaWtyUUd3UU9XcHNGeW02SXg0WlhwY0Y1NTBHTHVqTTBqKytB?=
 =?utf-8?B?VnlTVEIxbGxYTFpRalRWTWVSVmlxUUtrSXRiZzJVUjE1QmYrYXV3NERLR2s1?=
 =?utf-8?B?ZDFjNDRFODdRYUsvWHNKa29QWDYxZ25JazVYYThpa2dHOGk2QzE4aW1CN04w?=
 =?utf-8?B?c3pTRTNtNExOdTRzL29LMUg3QjJ1VnQrejZXSWh1QjhpTWJ0bjgwdzJRSkhE?=
 =?utf-8?B?YzZpUDh2Slp1bFhKdE5jU0hEMFRWeHpLb2pBcllkRkhmL05hSXRKRHZETzJW?=
 =?utf-8?B?cmZHazdzMTVJU0dINWJVYmxEOUl4bHc0dUZqY0tMWTFEMXVGbGE2QjBOTlU5?=
 =?utf-8?B?Ui95NlZDNXFSYzVoSGZkdGVKUFZORHRVYWlJUGxWZktDbGJRQjZWYWd4RitN?=
 =?utf-8?B?Y0JiM0c5WEVyMXBOSnJvRWJCWllldTZUS29RKzY1SzlQeXRaUUk0S2psMmMz?=
 =?utf-8?B?WVBkZDJ6TmpESGlTNGNyUjV6eFEwOVZxTzJsdHhSZituMFpDb2xzelovbFF0?=
 =?utf-8?B?Z1FYU2RmdkQxeHBHSEN0d2w0YzJsZnVsM1lMOFh0ZW1vS0J0RXNlY2wxRFFq?=
 =?utf-8?B?RERoSjVVTHdTa05EbHp1VnNjQ0taLzhkWUlTS3Z5RDVUaU9yOW1XaGlLYXJL?=
 =?utf-8?B?T1ZnUFVmTTFGdGFPUW5HUTMrTFhKZ3YyaHRLcUhERTB1QkdRZFpUaFhUanM5?=
 =?utf-8?B?b1dnV2cxM1NncVI0UnlzRkRSV3NOUCtDZlpkL0JURmowSVo4ZXFpN1ZLN1Rj?=
 =?utf-8?B?MFhXc1dzSGtTQXZrSWFKbHI2blBOQWxXWUdwN0dndXBIMml0cnY2Z1dNMkNw?=
 =?utf-8?B?ZGFBYmxrYUJkV3RYczRWQjZnUjJPQ0dDNTNmUVQ0d3A0RVBtaTRzeGxpdDQ1?=
 =?utf-8?B?em85MnE1VmphZVVYUjN4cUZuSUxuTkxwWFBuaTVWVnlkbHhDV3Zac1ZFbktz?=
 =?utf-8?B?NTJQTDRmY3VJRkloMXluSk9sbVJDTUJRWEZUZ2I3SDZhL0cyVUpUbTZQbjJt?=
 =?utf-8?B?ZTJzclNNKytoK2puOGpRaEJkaXhaUHlpakFzOUw0WjRkVjRjeTVpUWJsRm1Z?=
 =?utf-8?B?cW13Qzl3TmpDUHpnNlJiNWljaEx5Q0l5SHd1UExQV0JSMldtWnhqWnVDRVlj?=
 =?utf-8?B?RC9HcmtORkkrbXMrU00vREdoWEFURWg5WlFZWDVheTJ2VEp1VEltOE50dzZ5?=
 =?utf-8?B?eGZPVVczRG85OXdNK1RYY043cEIwT2l1R3l5b0NNUEltQlJaeVhZV3FHNHRY?=
 =?utf-8?B?WHUvb3JFOG5xaGRkcjRqUjV5NW10eVhXdmNDUHowQkRmSTg0SlJGS1Fwa0kr?=
 =?utf-8?B?MkxjZG5BcU5jU1hTVTExS2JvRkpxTVlGZ3h0amFlZWNHZUh3SmVVTGtnanp4?=
 =?utf-8?B?d3FQK2U5clVFZGp1T3d2amRZaDhROEFVTUIyNDhSY3pOYlNQdTdaRWI5QW84?=
 =?utf-8?B?WE8rRzBKdEdvRDIva3BEa2EyNEtoNmFWNnV4cjkyVnNVSWYzb050NUlNaGxs?=
 =?utf-8?B?bE9pamgzeG11SDUrNUtuNjJ2UmJxWUx3cWYzOEs0ZXYvc3ZQT3dmT1pKS3JM?=
 =?utf-8?B?TnRJSDNmODlaS0hHdUdLSExMd004a1huVnJiVENmN3RCNVZtUUVzWkVjUFVR?=
 =?utf-8?B?alBVTkg4S0JLMXJHSzBZVDRnbWlpdjY0Z1pLaG1zK1kwaWhaOGhkVitmTGQ5?=
 =?utf-8?B?amQxRjdNbEQrR1hMamJ0Q3llUU85Qmg5WjBHYTM3TnhJc2tYWlJBMElSdVRr?=
 =?utf-8?B?UThXcUhkbFlMQjBnTG1SeWo0TWgvZnpiM1FrWU9obTRzVG5jRzk5bjVCcEl0?=
 =?utf-8?B?c1JNa2lYZkFPeGVWWlNPclg0VnE0Snd2bEo1WmNWLzNNWnBTQ2ZTK3BwOVlU?=
 =?utf-8?B?RVc3cUdSU2pXeXlZeTh3MDBWMjRramt3WlN1ci9VczBYbVN5dU5MUW4wWkVK?=
 =?utf-8?Q?Um+c=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)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2025 00:17:06.8406
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a690874e-36de-4810-90cd-08de2700f946
X-MS-Exchange-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:
	BN2PEPF000044AB.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB9057

On 2025-11-18 06:09, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Thursday, November 13, 2025 5:35 PM
>> To: Penny, Zheng <penny.zheng@amd.com>
>> Cc: Andrew Cooper <andrew.cooper3@citrix.com>; Roger Pau MonnÃ©
>> <roger.pau@citrix.com>; Tamas K Lengyel <tamas@tklengyel.com>; Alexandru
>> Isaila <aisaila@bitdefender.com>; Petre Pircalabu <ppircalabu@bitdefender.com>;
>> xen-devel@lists.xenproject.org
>> Subject: Re: [PATCH v1 5/7] xen/x86: move declaration from mem_access.h to
>> altp2m.h
>>
>> On 13.11.2025 04:16, Penny Zheng wrote:
>>> Memory access and ALTP2M are two seperate features, and each could be
>>> controlled via VM_EVENT or ALTP2M. In order to avoid implicit
>>> declaration when ALTP2M=y and VM_EVENT=n on compiling hvm.o/altp2m.o,
>>> we move declaration of the following functions from <asm/mem_access.h> to
>> <asm/altp2m.h>:
>>> - p2m_set_suppress_ve
>>> - p2m_set_suppress_ve_multi
>>> - p2m_get_suppress_ve
>>> Potential error on altp2m.c also breaks Misra Rule 8.4.
>>>
>>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
>>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>>
> 
> Thx

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 00:25:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 00:25:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165428.1492196 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLW0t-0001N3-Ij; Wed, 19 Nov 2025 00:25:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165428.1492196; Wed, 19 Nov 2025 00:25: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 1vLW0t-0001Mw-Ed; Wed, 19 Nov 2025 00:25:35 +0000
Received: by outflank-mailman (input) for mailman id 1165428;
 Wed, 19 Nov 2025 00:25: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=y3JJ=53=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vLW0s-0001MX-9D
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 00:25:34 +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 410eaf77-c4de-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 01:25:31 +0100 (CET)
Received: from BL1PR13CA0274.namprd13.prod.outlook.com (2603:10b6:208:2bc::9)
 by BY5PR12MB4323.namprd12.prod.outlook.com (2603:10b6:a03:211::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 00:25:24 +0000
Received: from BL02EPF0001A102.namprd05.prod.outlook.com
 (2603:10b6:208:2bc:cafe::ec) by BL1PR13CA0274.outlook.office365.com
 (2603:10b6:208:2bc::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.10 via Frontend Transport; Wed,
 19 Nov 2025 00:24:54 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BL02EPF0001A102.mail.protection.outlook.com (10.167.241.134) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Wed, 19 Nov 2025 00:25:23 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 18 Nov
 2025 16:25:23 -0800
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 18 Nov
 2025 18:25:23 -0600
Received: from [172.27.232.218] (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, 18 Nov 2025 16:25:21 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 410eaf77-c4de-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=THlU1B/49kY+dx0T7Xm9IoBXWMX3OuEsofYrV+4m7HzQ8lUoNKc/4CSjBPKeLVk07NfCN9W6LksuBoM9USndvFU7qsDCQwkVhJS8/FEORDCTMtI8muvVGFW4/EWAKBl++2YHXTkEhMSB4tucG/dite6yW/XWn3nxmuTQE0C4SEVvNRRcPqFPJxDqFh6JzRFqeAZqh44ZiEsGM/n58FHdWg3EgHk0/eIsOT/0zCwYbmqF0PXARRccVA1RZGxz6TuecH5fE+lKvKgXWE2RQfpk3R8EpI6vE6SKrmO0+blXC29vPTc9ECXCDTpU0H458TSdCS6PLxVmtWC/tZsglVz3yQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Nzs4L2+7DWg036yKvPvtOIUyaPcX4D0qZksOlz0ZG4E=;
 b=TIC91LLaX80TxpEysCRghya29sCi5HYZxCf3PF9UVOjBx3fJwYJtdJXEHOS8Mza17hlH+UtBibwK9cKItHwOfOxEGwjDdoaIYAMjG6k5zxUmPX6EXjP2xOzzCrqXfeZDvTNlYGaNn+zOfgzYMjKWs3rpGUVR5UX6J8YpVtPTGe8ZsmwJXW4wUIpEnNeQpnBBB8UgyXPi+Se+zKRNo4I1+1oMW3USq9r9+qhuGM4jokPyB2AGDN+9WOAEeD2gKTWGQvr1uMchdsqb2YggR8B5iQcc+aNj55K7+tFZTpgK0YE2WW4CeMjWdrQdRjxZZHgsqsY/5dTtW3lk6NEMML7MkQ==
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=Nzs4L2+7DWg036yKvPvtOIUyaPcX4D0qZksOlz0ZG4E=;
 b=f3WVgbvkJU41LsOjjBz4UB0L/BkX7G/aAsmnySCuCDCrSRYRbWmWxz52N9voOhYYPkHT/Gvj5azPKKdvYDZBrfvjaQT587SmtEAR9PltfbtkiSVCZ2D07TUcq+9aDzhC2ZGiNdcRvtRaWG9wvNBLrYYznvl337+7LFyZbgz2J90=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <29467e98-de94-414c-a6cc-8b49c8ed67af@amd.com>
Date: Tue, 18 Nov 2025 18:49:09 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 7/7] xen/vm_event: consolidate CONFIG_VM_EVENT
To: Jan Beulich <jbeulich@suse.com>, Penny Zheng <Penny.Zheng@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>, "Tamas
 K Lengyel" <tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>,
	Petre Pircalabu <ppircalabu@bitdefender.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>, <xen-devel@lists.xenproject.org>
References: <20251113031630.1465599-1-Penny.Zheng@amd.com>
 <20251113031630.1465599-8-Penny.Zheng@amd.com>
 <9ca0d80e-2566-4874-b4b3-914d8b99f33d@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <9ca0d80e-2566-4874-b4b3-914d8b99f33d@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: BL02EPF0001A102:EE_|BY5PR12MB4323:EE_
X-MS-Office365-Filtering-Correlation-Id: fc285d1b-cee4-43b0-7a2f-08de27022182
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|7416014|376014|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WVhDRTFheThtZTh0dERFWjVTYmY2cml0UElQSC9RTHpuRS9aMG9WOXJ3VXVs?=
 =?utf-8?B?cjJYaDVKRE9ZSCsyMWdEWEN2akdGQkdWUEo2Y3g0MlBOWDJiOWUvR0MxUmZY?=
 =?utf-8?B?cXppaCtMUGhjbFE5ZHNtUkR6RjNFMlhHSlRXMjNiMTN3K1dpMXRnQTllRGhT?=
 =?utf-8?B?T0hQV3FpM3g5b0o5YVdLeXNNMG02VHpDZTVLQ3E0akl6ak5kWjRFZEFaZ3JS?=
 =?utf-8?B?cDM3MVBzN05HOHZaMlBNbTV0cHBGSllWb2NBMzBMekx4ajk4UFFYUmxDeVpz?=
 =?utf-8?B?S2w0dy9wQk0yVi9RWm9MUDRmU0RXSU11NGY5ZVZ6ZTg3ZXVMQ3NBejUxdmVl?=
 =?utf-8?B?RGlCa2R1MnJURDVOMW4xcEhYTFlPZkNsaXhYaXJBc0VDVTV4b2FmdU9pSExO?=
 =?utf-8?B?WkIwRjFSN0tpcE1LeGtlbmhxSXVNVHo1Q2IrVnI3b2ZiUWRtcFVBRkhnS0NX?=
 =?utf-8?B?dnRiYmpWbUFlZ0NlR2M4V3hkSDRVdDZJWVdsMTNwa2RHSXlVZ3Btaktlbk01?=
 =?utf-8?B?YkQzU0hzNWNJRmIwZGhBQUxkQmh5WjViSUorcEg3QjFudDcrWTJsdXJ1VWJT?=
 =?utf-8?B?VnpMSG0xSTRxUXhqM0FLQ1IyTkdUZFkyWEpObDRMY1JhQVBBSkpMZmhJRks1?=
 =?utf-8?B?aEthNXJXWVVIU0kxc0JsdStXc253Q2szbERFbHRLbkhSVnNaNlU2NmhQaWZm?=
 =?utf-8?B?aERwdUZkYzYzeGlHbGtoK1M5ekZHOFppcm10Q3duV0hueDRVU1cvbXlGUHc0?=
 =?utf-8?B?OWRmWVF0R0FjSEhWaWFXMlZZY29idFlPNTdSQUpZUGdpQ0Z3SWJ1Q3VVMGt5?=
 =?utf-8?B?Sko1MGNoUm9GTGtMditFYzVBMm0vMWVmVllSM053bkxQc3EwTUVQNHJxOTd0?=
 =?utf-8?B?VnhCOFlqRW9ENVFQaE1kcityb2s3b0VkdFQ2ck82dytKQXkwN3NSWFpya25x?=
 =?utf-8?B?Y2RWSmtjNXBtRTU0ZHJVZVRqcnNNN01hQklzdHB3RWxwbjZQRjF2cmFZbXF5?=
 =?utf-8?B?Ri9neHV0WGwxVjFkUDgzT2EvQzU4elV5MkJhaENSVG40bzNSenFFRnNVM1R6?=
 =?utf-8?B?MkJtZ0lGN1J3OVlZUDlUcGZoQlhmNzBKRVVCY21WQWl1NklCeFo3d0p3WU9u?=
 =?utf-8?B?b1Rxc2hVa3Y3VzhVZzZQMnZuNFp0Sm95RUluWmFRODFiZm9YRCt5WS9xQU5J?=
 =?utf-8?B?cGVtY0JNbjFyWGpBWGduMndoZTZGZnhCeVBPbGVQOSs2YVhzSGYrMXBGanZi?=
 =?utf-8?B?eElyMHNEdFdDQjFQRWV1NDNHQVN0Y3RWL01LYUhuUldxMmttaHB2WENQWCt0?=
 =?utf-8?B?dDVLQ1dxd0FjSnBwZmU0SUV4cjZ5V2FsOEw0Sll5RWV4ek5GbEt3MGFZMlUx?=
 =?utf-8?B?UUptcjEyS20wejY2RmhOWFNsNUE4ODM3bDNLVzVRbEhXSnE0S3ZOR1FWZk4x?=
 =?utf-8?B?RlY4R2FnZHd2QkZpOWlFU1ovQ094ZkJOOWNadkw3blJncnd2WEN0UmdpNlA3?=
 =?utf-8?B?SVNydHFNUXFkODMvaHhXVEZ5b0ZhMjFkQk0wcUtyVnBPbndRQVlWbDdCeUN4?=
 =?utf-8?B?ellkdHNUMnJkM3RtdG9ONHRWQVhtdkZJbFpJcnB6YkxUVy93K1ViTm9XbEdi?=
 =?utf-8?B?UzMzVmZ2M3hBUTBPUDFHQWNDQnZuUG4xRy9VeXBVSFh2eFIyc1BwUFF0d2Fm?=
 =?utf-8?B?Z0JqTGZEV0NSMFdseGduTkNDWVB1MkxFMC8xYU9maEIvV1puUEgvOUFrZlRZ?=
 =?utf-8?B?N3VkZ2dycS9NckhLa2VNUDNReVpuUTVaa3FycHJqSzBXZWczZEFNWTZxcHNO?=
 =?utf-8?B?bDJyYmhSU1F1NFRNVjc0Q0FiVmFGRE5PMVpycXlRa0FrdXorNnUwWnFLa1Rj?=
 =?utf-8?B?YTBoR3hNTWVlTWlkWVJoeDBhSkFpbWNGVXBtWXk4YUFtVnhWK0x4b2JWRlNB?=
 =?utf-8?B?eFdOMW9YNEpzekhQVjQ5b2huVlZMamduazFUMTlwT0QvTTV6azdBTy9nTmJW?=
 =?utf-8?B?T0l1RFpLa0JlZ29XTkllQ3cvRXhVaVRNQnFIL0hFb3BxY1VhQmVZaFQ0VVo1?=
 =?utf-8?B?bE9BeGpUQ3p5ejFlSXgzNnNEemFvVWlocmtwcXdXaDBKWGJUN1pzYzlCMklM?=
 =?utf-8?Q?8v3k=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)(82310400026)(7416014)(376014)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2025 00:25:23.8369
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fc285d1b-cee4-43b0-7a2f-08de27022182
X-MS-Exchange-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:
	BL02EPF0001A102.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4323

On 2025-11-13 05:16, Jan Beulich wrote:
> On 13.11.2025 04:16, Penny Zheng wrote:
>> File hvm/vm_event.c and x86/vm_event.c are the extend to vm_event handling
>> routines, and its compilation shall be guarded by CONFIG_VM_EVENT too.
>>
>> Although CONFIG_VM_EVENT is right now forcibly enabled on x86 via
>> MEM_ACCESS_ALWAYS_ON, we could disable it through disabling
>> CONFIG_MGMT_HYPERCALLS later. So we remove MEM_ACCESS_ALWAYS_ON and
>> make VM_EVENT=y on default only on x86 to retain the same.
>>
>> The following functions are developed on the basis of vm event framework, or
>> only invoked by vm_event.c, so they all shall be wrapped with CONFIG_VM_EVENT
>> (otherwise they will become unreachable and
>> violate Misra rule 2.1 when VM_EVENT=n):
>> - hvm_toggle_singlestep
>> - hvm_fast_singlestep
>> - hvm_emulate_one_vm_event
>>      - hvmemul_write{,cmpxchg,rep_ins,rep_outs,rep_movs,rep_stos,read_io,write_io}_discard
>> And Function vm_event_check_ring() needs stub to pass compilation when
>> VM_EVENT=n.
>>
>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
>> ---
>> v1 -> v2:
>> - split out XSM changes
> 
> Isn't that split out patch also needed as a prereq to the one here? The one
> here on its own:
> Acked-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 06:33:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 06:33:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165439.1492205 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLbkm-0001KU-T3; Wed, 19 Nov 2025 06:33:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165439.1492205; Wed, 19 Nov 2025 06:33: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 1vLbkm-0001KH-O5; Wed, 19 Nov 2025 06:33:20 +0000
Received: by outflank-mailman (input) for mailman id 1165439;
 Wed, 19 Nov 2025 06:33: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=2o4X=53=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vLbkk-0001KA-Tg
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 06:33:19 +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 9ddf9b59-c511-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 07:33:11 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 SJ2PR12MB7822.namprd12.prod.outlook.com (2603:10b6:a03:4ca::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 06:33:07 +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.9343.009; Wed, 19 Nov 2025
 06: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: 9ddf9b59-c511-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gsMQtMkZlE/S18M+cCe8Eumz6f0NnmWhO9SAApTahnPwtMi7kLUY+CCavnqKngKNaymcQ9wqAAipfLseFZiv/jhTmCxo8L4D2TcpR6OoiuFLFXzi7537IxkOGFcdcjMHLiwmspmQgGgThEhoje3YVW/kxSL1d98iqfjeXVpvGylHOujxLrekVFbvgbnylnaKLq1Q+AARtB6xZH7fb0VkkQoTYq+MI8uvZL0rripL99o+02bGxy/cspO6UNeU6v3vTMbGiGr9L22a4fwTdRFUaFCYry2aHjc7Nq562Cxq0QialFlnXTJ2eP/gZ1M5HN8aUbGSebZmn1KnXUc++KNKrg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3D5I2cjDZkrfjxg83NW3W+Uotkierky2lVnqaC9+MwY=;
 b=B8UGc0OAwa8tZTh4Aw5GAQUnnrqVQ13GvO8sh5rdkqKo+j4YWiPhEV1TQOfMxU+wzufjUA+PsjVGSqUiOq4W+8hX5XoOZBxY0Oc9GanlDJ/Gh51IYyC2FGrXwNP9w9qqns6E0curFo+hv01ozbiRuWGBMyFTOPozfow5XwUJPzJhhbEc8FOY02gAbyYgxoYmgSZFqdKWaxrJ3dhks/xDG6yLZj+e7kblxCvtIloD7ODYXp7gZ6n5j0sPQb+fq1mXO/+zmj9qXNg9LkVJhDZWf5BAokiX9ImWWpXgK+ekAyZbWXhBvv/7fFCpXau25ejg+coPfNItYHQ7csU2tyj0gQ==
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=3D5I2cjDZkrfjxg83NW3W+Uotkierky2lVnqaC9+MwY=;
 b=z+SYMrT8M7llktpjPUXKqFSQ339UmgyztjedwqBnfXnt0LGeKlLpMwfRdrOLdD9se4cBcH95RwCTKNMM/ednBSHgNsQ0YCOnw2GMwwf3QPyvDbJZhjhUjAUI38zH6yE33cMdvrnICSuCZm4obU4ONObupzuLPuMTCpfREXmH8oI=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: "Hildebrand, Stewart" <Stewart.Hildebrand@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"xen-devel@dornerworks.com" <xen-devel@dornerworks.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "oleksii.kurochko@gmail.com"
	<oleksii.kurochko@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>, "Orzel, Michal"
	<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>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>,
	Nathan Studer <nathan.studer@dornerworks.com>, Stewart Hildebrand
	<stewart@stew.dk>, Dario Faggioli <dfaggioli@suse.com>, Juergen Gross
	<jgross@suse.com>, George Dunlap <gwd@xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
Subject: RE: [PATCH v3 05/28] xen/sysctl: replace CONFIG_SYSCTL with
 CONFIG_MGMT_DOMCTL
Thread-Topic: [PATCH v3 05/28] xen/sysctl: replace CONFIG_SYSCTL with
 CONFIG_MGMT_DOMCTL
Thread-Index: AQHcPCp8W9F3cPi2vkONW8in9Aw31LTZvQMAgCAHPaA=
Date: Wed, 19 Nov 2025 06:33:06 +0000
Message-ID:
 <DM4PR12MB845114DC191DA5B7DBA29846E1D7A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251013101540.3502842-1-Penny.Zheng@amd.com>
 <20251013101540.3502842-6-Penny.Zheng@amd.com>
 <fee691ec-6bb9-429e-aaed-4fd007cbc0b1@amd.com>
In-Reply-To: <fee691ec-6bb9-429e-aaed-4fd007cbc0b1@amd.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-11-19T06:32:58.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|SJ2PR12MB7822:EE_
x-ms-office365-filtering-correlation-id: b2503c37-ea96-43a5-744b-08de27358022
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|7416014|1800799024|7053199007|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?cFZ4TUNQcGU5MGtFV09JaSsyalhWM1ZPbENzUDBWTlh0SmkzQ3lnZnBmRnh0?=
 =?utf-8?B?TVU4b2FaNHFqUk5INCszSGdRYWx5Qmx6RStsQWRLcGhwTUtsNjloWGlIcmxK?=
 =?utf-8?B?NVdDSm1nZUtoWSt0cDVqak1XTEY1SVNlb0hRenlUdEVDZ3l0WGNEakFOTEMy?=
 =?utf-8?B?dVdqc3ZLVEhLSWU5NHdIelB6bkR4UWJEUi95WlNpT0Ixb2pJUzFZcmRxNEhl?=
 =?utf-8?B?MXJnc0ZTN1FJLzJnYklQeEQ2NlJjemFneDhqUWlkL0F4dmpSUWJUSlJSZHRn?=
 =?utf-8?B?NmtEUFdRRDY3ZzVrcXgxTWNmZVQ3ZUxBbjdTNEJ4ZUptTE9nM3h0NG5hNExQ?=
 =?utf-8?B?b3dmOGpvRUdZbjZkOENZeS9kODFwUHlEOE5Ub29LbC90cFROTFVWU3puQVh5?=
 =?utf-8?B?REszWVRwb2FLUFRIL0hvMUlCSVE3ZTlteTNDUnFlLzBNUkR3MEQzSWpCQzUv?=
 =?utf-8?B?RHhYeXh2bWNhOTB2VEJVZXdiY09GblJadSs2VDU5elFVc00wbkVta3hVT2I5?=
 =?utf-8?B?ZlMwM3ZtQ254RzdoWU1HSzIrR1IvZzJYLy9XZGRXbE83MTBVQTJXaFJOZSth?=
 =?utf-8?B?YzBGaGJsajhZZFBNdXFLQ1owcHF6U0JsL0RWeXB1VjNuM0hGNzdZYVdzcjBF?=
 =?utf-8?B?YVQ4TWlRY0JDbXNPZDJLKzV3NEdrcjh3SEl3cllJRG1OMTJtWjBuWHNXV3V2?=
 =?utf-8?B?eHpPSlU0OHVJVXZ4VUs5V01JN0poVTR1RVRHSFBEbmhJRmRSa3N5Q0g1SWdG?=
 =?utf-8?B?dGFFWU9VVnlWMFpQVG5ieFh0ZWVpTDkxTEV4Q01KdldPblY3NjQvU2dBUi9D?=
 =?utf-8?B?SXBCM2dianNCS3dqYnpQd215L1JHUGRqZDZBTGsrc1hYS3dxU1VIZTVaMXhs?=
 =?utf-8?B?S2FpYks0aHVaYk96RjdzNVNsaUoyWC8xT0dIZzk1Q1JvNDRSemN5N0h6OGhn?=
 =?utf-8?B?VGtabDRsanJyRHlXWEVqTlYvUE5BNWFlbTE4YUtzdkp2RFNGK3NzTjRPcXhK?=
 =?utf-8?B?MWlyMzYrOHN0UTR3VGtFTnhSV2lIL3ZFNmoyNEY4S2RxTk1HaEd1T2tJem1G?=
 =?utf-8?B?VG02KzVId1dJR09FR2dncldXWWlDZVB6ZERNNjk0STdIK01FOVJWbUhSTmp3?=
 =?utf-8?B?Tml1TDcxTlFSLytMR2kvQWZaRzlvTFgrb3Z0R0RhNFdYOFRpZEdlODhaVlNK?=
 =?utf-8?B?Nkl1ODBPemVMK0lWTzJORG5VR3VXRlV1emNxSlBQZit6ZHdsN1k1ZkhmZzBi?=
 =?utf-8?B?L3grNDFSNXhuYUN3YlVaRVBZMlJlMGVhdmN2OVhnQml6MzA5MGkwODc0WTJV?=
 =?utf-8?B?dll4cFlPdksrTExFeXZMYmJOeGlkRXlnVVBFSHhhdjAzajA4dThnNmQxYWNE?=
 =?utf-8?B?ci9tM2I0TW04bHlXK1hqeGlZWmdVYXhNc2FESkhXMkZHanFCWXpRczMzZ2xE?=
 =?utf-8?B?WG9CRE9QU2s2ZUJtZGF0SmtyNXVhN0VZb3RLS3NpdzB3ZTJXWTRpMllBb055?=
 =?utf-8?B?S3BDbGlnNUk4OVh0R0U1OGwySi8vdXVtY1JiUWw2aWFibk5DaW5CTzRrWXd6?=
 =?utf-8?B?QWc2RldObDdaK21ZK2RkbmZFN01wY3VGa3o3UTVoalg0L21MdzcyR3NMMmZw?=
 =?utf-8?B?czlVY1RZaU4xUVIwTXpuL2d0c1hSay9lUEJiRVc3WFltYng0NFJkb2pXNW95?=
 =?utf-8?B?S3ZyZkMxNlRielFndG1RSVB2V3J2MFlmVm5wVjhRVTdqVXptUytZVVVlK0th?=
 =?utf-8?B?Q2FyWlpOeG5paHlzRWhsQnZ5d0sxcnppRVlCeUNnUkxNUDRXaitnbXZ6UFF1?=
 =?utf-8?B?UDZXVlVhcVA1RGdMQUt3dExPdUUyR1FHa1hhV0pBVHdKNWlOcmF0blhBa241?=
 =?utf-8?B?V2tlTmpEM25kNUxuY0x1TCtiQWdLMTd3WlRpL1VrdFBXSVdsZlhpYmJlN3ZN?=
 =?utf-8?B?MmxyTFBRQkVZRUpOSTJCRk5rR2Y4NnF0eXhoRmxVcXY4VUNkbnlNc2QyYzI3?=
 =?utf-8?B?d1N2cDNoK0FpbmdnTDVqenZ3cmJuUkdhRG9UbEhaY2VKZEFKVGNhSkUwSWJp?=
 =?utf-8?Q?uoK/ds?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(7053199007)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?cStIU1FINnVkSVlsN054ektOcjArSzhHTEpPdmZQcDFZRGtXYzNHRFBQN3dv?=
 =?utf-8?B?dXBzK3JDbmxEaWVzanMxSEdVM2RucXBjK2V6UGcrL3VRaEFrOGdXdDNlRU9o?=
 =?utf-8?B?akI0dmQ1dE43ZnQxSkVUbGxBUjUzcjAvdm5yeVRxQlhnS1lTdmN4blpIdDZq?=
 =?utf-8?B?NDZhOUFRMWlHR2tiZjVVVVBEWXcxUFdTLzZQM3Q0aEE0NWJZNE41MVBBZ1Z4?=
 =?utf-8?B?eEFKaU9ON09aN3pJazl3WXVWV1U4bnpJb2xWTUlWZzVtZTljNDQ4NHJoYjVa?=
 =?utf-8?B?ZWtqUUJFaU1xVzlOaG9MU3ZGVmIrT05lY1NFbjNVNWErL1RlQjk1cHB0b3E2?=
 =?utf-8?B?alpPNHRrVDE5NWRNdzlMMFJONld5OGYzdnVhRGZVdlRlY3dnM2lSN1VSMWlJ?=
 =?utf-8?B?NmdxUlY4bWN2cTZOQkIzYm1UeHFYR0NGRFpWc2NUbDcxejI3WU9GSXhyb0RE?=
 =?utf-8?B?cFM0N0k1ME9GcFBVMnA0L2VxMVVqWU80aU5VSFBReDB4NzlSQW1RbG12ZUhv?=
 =?utf-8?B?TW1VVi9BcXllSUdFZ3l3K1pFcytaNWVZSkt6YmpOV2NtQUtFRHJGaUpVQ0RK?=
 =?utf-8?B?MlpPR0RYUG9TdmZoMk5RU3dJd2k2bmxxdU5pMkZHOWdhZWJoY01hVE43dlY4?=
 =?utf-8?B?UTJXTnJmVG0vQk1jMjZBQlBKL3FIQTcxYTd3d0h0OXUvRFZsbTE0d2NYTXdG?=
 =?utf-8?B?djM4anpvS2NUUzRIK1FzNHJoalRXL0hVRndJM0FOVEZ1UmhCNE90eDVFYTU3?=
 =?utf-8?B?cS8rVTRkWEUrVlR5NXJHdjVYMGZUd1JlZlg2eVBmaGthdWZDVHhvSnJ6T252?=
 =?utf-8?B?K2g4dDRURmQ0alg2dWFsNjhabG1rL1FuUkZBandWUGNhOFFPOGxqZEk2N3Vs?=
 =?utf-8?B?ZUIrSGpPQzYyRElKUk9GK0Q4N1N6dTdtSVNlVmVNMzlyOUp4WWpSMURDeUZv?=
 =?utf-8?B?cVEvNzdLS1VJbERGWUxCRWhMNkdhMzQ3ejJCTW9SMDNsS2NBLzFvM3V5aDUv?=
 =?utf-8?B?clE0bU9MZ2g2NVVZcjZBSEpDUmlaeFFiRzRnVmh6RjFyaDVWbnl0S3hRTXBX?=
 =?utf-8?B?aXorR3F6N1EvTDhMUEMzL3FKcjFiZ21xc1lGNllvRWZzQ1hDMHJlNEZsOGNa?=
 =?utf-8?B?QUcrUitiNmRyQ3piYVFNNGFDeGhEOXZRNjAwYzdwZis1OER2MCt1Z1pQSS81?=
 =?utf-8?B?NEtYem81cm9uc0J4ai9VNEtjdEF6eDBQUzU5eHNjMWRoSktGQVEzbkJKaXR0?=
 =?utf-8?B?YlBlQnVaWHJRSHo1alVZWmNCSUFOSzVvU2NESWNvbnZKSzJOeVI2ZzBMNmNK?=
 =?utf-8?B?L1k4cERPYVI4UURaWVp0eWpvby9JTmJvZkg4dkRiTzQ5c0NORTFiOUN0RkRI?=
 =?utf-8?B?bFBUUCtGTzUzNlRsQjd2a3NqckdYSWxlb0QxWU9pT0hUMGxYZ3BnZTNXYnlM?=
 =?utf-8?B?RWNtdkNCT0Z4NjI4S0N1MWltQkl1TXJONTNCMkdRSmh1MUNUMjRZRnNKVTJ0?=
 =?utf-8?B?U1ZtL0E2OWtyNTgrMDVaQW9TTlkvQlZxbHlmMzNDb1AxTThRUkxJc3lZYk9V?=
 =?utf-8?B?L1VkUEUyZXJLNkZuR1JiaFIzYlNYR25MaDV6MWhlY3pzMi9tNE82dHVVQ1Q0?=
 =?utf-8?B?S1NsL2FzNDkvNE5WOTlWeTFNL0ZuN0RTYlBFcjE0d0xPNE9XQjJra3JFdlNa?=
 =?utf-8?B?d21OcTVCVmppbDFWU2tMTEU0bnNXaEFqb3VlaUdCd2ptT0xDbmcxdzEvOWJJ?=
 =?utf-8?B?Tkk0Tm80YUZuVVZsT1AyanEwTms1bjJ1dU9yMkdvL2ZQWTRlRG4zVFhNQjFY?=
 =?utf-8?B?MHRPQUJtSERCUERNZ2xkZW9MM2hvL09XdkNESnVaaFlNbmx3NmxrSXUya2Fw?=
 =?utf-8?B?aTlqaU01WHpwejZEZ2FDdHNMTFhNVWtLcnF6MGh5bUtxeFdoaVA1ZXEwQ01P?=
 =?utf-8?B?ZG02bDR6eG5xZk5xcUNscS91eTV1cnQyc3RseGVoRTZVbEZkSUY0ZW9wbFBk?=
 =?utf-8?B?b0p4LzROVExJWTRxcjArSVdiVjF5bmt4Wml6bjZIMzhvNFBxWFZZQ3dVT2ww?=
 =?utf-8?B?SWpUQkt1NTR2OTZWWkVHN3ltN0pCdElUNDJUb25xL2dUSS9mSFEwbXkxckNz?=
 =?utf-8?Q?cb08=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b2503c37-ea96-43a5-744b-08de27358022
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2025 06:33:06.9087
 (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: /xlmdB1zPxv9O/obMHUn70IA5kDwFQZJXTDlKMLBhiHoTTjX9Xn/OeYRwyQB0YhE7wSZZx0UYZF3+BDbM62v4g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB7822

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBTdGV3YXJ0
IEhpbGRlYnJhbmQgPHN0ZXdhcnQuaGlsZGVicmFuZEBhbWQuY29tPg0KPiBTZW50OiBUaHVyc2Rh
eSwgT2N0b2JlciAzMCwgMjAyNSA1OjI2IEFNDQo+IFRvOiBQZW5ueSwgWmhlbmcgPHBlbm55Lnpo
ZW5nQGFtZC5jb20+OyB4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc7IHhlbi0NCj4gZGV2
ZWxAZG9ybmVyd29ya3MuY29tDQo+IENjOiBIdWFuZywgUmF5IDxSYXkuSHVhbmdAYW1kLmNvbT47
IG9sZWtzaWkua3Vyb2Noa29AZ21haWwuY29tOyBBbmRyZXcNCj4gQ29vcGVyIDxhbmRyZXcuY29v
cGVyM0BjaXRyaXguY29tPjsgQW50aG9ueSBQRVJBUkQNCj4gPGFudGhvbnkucGVyYXJkQHZhdGVz
LnRlY2g+OyBPcnplbCwgTWljaGFsIDxNaWNoYWwuT3J6ZWxAYW1kLmNvbT47IEphbg0KPiBCZXVs
aWNoIDxqYmV1bGljaEBzdXNlLmNvbT47IEp1bGllbiBHcmFsbCA8anVsaWVuQHhlbi5vcmc+OyBS
b2dlciBQYXUgTW9ubsOpDQo+IDxyb2dlci5wYXVAY2l0cml4LmNvbT47IFN0ZWZhbm8gU3RhYmVs
bGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47IEJlcnRyYW5kDQo+IE1hcnF1aXMgPGJlcnRy
YW5kLm1hcnF1aXNAYXJtLmNvbT47IFZvbG9keW15ciBCYWJjaHVrDQo+IDxWb2xvZHlteXJfQmFi
Y2h1a0BlcGFtLmNvbT47IEFsaXN0YWlyIEZyYW5jaXMgPGFsaXN0YWlyLmZyYW5jaXNAd2RjLmNv
bT47DQo+IEJvYiBFc2hsZW1hbiA8Ym9iYnllc2hsZW1hbkBnbWFpbC5jb20+OyBDb25ub3IgRGF2
aXMNCj4gPGNvbm5vamRhdmlzQGdtYWlsLmNvbT47IE5hdGhhbiBTdHVkZXIgPG5hdGhhbi5zdHVk
ZXJAZG9ybmVyd29ya3MuY29tPjsNCj4gU3Rld2FydCBIaWxkZWJyYW5kIDxzdGV3YXJ0QHN0ZXcu
ZGs+OyBEYXJpbyBGYWdnaW9saSA8ZGZhZ2dpb2xpQHN1c2UuY29tPjsNCj4gSnVlcmdlbiBHcm9z
cyA8amdyb3NzQHN1c2UuY29tPjsgR2VvcmdlIER1bmxhcCA8Z3dkQHhlbnByb2plY3Qub3JnPjsg
RGFuaWVsDQo+IFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPg0KPiBTdWJq
ZWN0OiBSZTogW1BBVENIIHYzIDA1LzI4XSB4ZW4vc3lzY3RsOiByZXBsYWNlIENPTkZJR19TWVND
VEwgd2l0aA0KPiBDT05GSUdfTUdNVF9ET01DVEwNCj4NCj4gT24gMTAvMTMvMjUgMDY6MTUsIFBl
bm55IFpoZW5nIHdyb3RlOg0KPiA+IFJlbmFtZSBhbGwgdGhlIENPTkZJR19TWVNDVEwgaW50byBD
T05GSUdfTUdNVF9IWVBFUkNBTExTIHRvIGhlbHANCj4gPiBwcm92aWRlIGEgc2luZ2xlIG9wdGlv
biB0byBtYW5hZ2UgYWxsIHVubmVjZXNzYXJ5IGh5cGVyY2FsbHMsDQo+ID4gaW5jbHVkaW5nIHN5
c2N0bCwgZG9tY3RsLCBldGMsIGluIGRvbTBsZXNzIHN5c3RlbSBhbmQgUFYgc2hpbSBtb2RlLA0K
PiA+IHdoaWNoIGNvdWxkIGFsc28gbWFrZSBpdCBlYXNpZXIgdG8gc3VwcG9ydCByYW5kY29uZmln
cy4NCj4gPiBXaGlsZSBkb2luZyB0aGUgcmVwbGFjZW1lbnQsIHdlIGZpeCBzb21lIGJ1Z3Mgb24g
eHNtIHN5c3RlbToNCj4gPiAtIHdyYXAgdGhlIHdob2xlIHhzbSBmdW5jdGlvbiB0byBhdm9pZCBi
cmluZ2luZyB1bnJlYWNoYWJsZSBjb2RlcyB3aGVuDQo+ID4gTUdNVF9ET01DVEw9bg0KPiA+IC0g
YWRkIG1pc3Npbmcgd3JhcHBpbmcgaW4gaW5jbHVkZS94c20vZHVtbXkuaA0KPiA+DQo+ID4gU3Vn
Z2VzdGVkLWJ5OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+DQo+
ID4gU2lnbmVkLW9mZi1ieTogUGVubnkgWmhlbmcgPFBlbm55LlpoZW5nQGFtZC5jb20+DQo+ID4g
UmV2aWV3ZWQtYnk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4N
Cj4gU2hvdWxkbid0IHRoZSB0aXRsZSBvZiB0aGUgcGF0Y2ggdXNlIENPTkZJR19NR01UX0hZUEVS
Q0FMTFMsIG5vdA0KPiBDT05GSUdfTUdNVF9ET01DVEw/DQo+DQoNCk9oLCB0eXBvLCBzbyBzb3Jy
eQ0KDQo+IFJlZ2FyZGxlc3MsIGZvciBBUklOQyA2NTM6DQo+DQo+IEFja2VkLWJ5OiBTdGV3YXJ0
IEhpbGRlYnJhbmQgPHN0ZXdhcnRAc3Rldy5kaz4NCg0KdGh4DQo=


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 07:02:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 07:02:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165526.1492247 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLcCz-0007Lk-LN; Wed, 19 Nov 2025 07:02:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165526.1492247; Wed, 19 Nov 2025 07:02:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLcCz-0007Ld-Hd; Wed, 19 Nov 2025 07:02:29 +0000
Received: by outflank-mailman (input) for mailman id 1165526;
 Wed, 19 Nov 2025 07: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=nJND=53=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLc7Q-00055J-PW
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 06:56:44 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e5ea9e2c-c514-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 07:56:39 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-6419b7b4b80so9471060a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 22:56: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
 4fb4d7f45d1cf-6433a4b2155sm14267224a12.29.2025.11.18.22.56.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 22:56: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: e5ea9e2c-c514-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763535399; x=1764140199; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fy55kcq9Jf4HY7Gu+2WwFcbUpHpA0ue3SoOVYKIlmd8=;
        b=Qr5JrZ2o8PKv45zQ01ljVcocArOD+a0itl7P9xq7pWN5Ignd/M9QDXQ/VgoB9cmVW2
         YhiwmDCHcq0A/ubumv4NxaKiqS84TXNxBQ9vc4BU2zlS6XlFoOGP+5wY1BPAFNvJWDVe
         YB2nOdW6a9X1lJ0xsiPDpC3/gGsbiKMIJOoKNgB0RF7uXk3k1WQgX/QmnqvtWJgVFmX4
         35PP69nu3h4AyhjHpPQrMZqtu+0znx68E1O1NcjRkzNwKixNgQq1uH71YT23QBP0n9Vu
         U8/8RNoxLeClYnKbZJwFNfmKfH+NADIVfTlnLjQzz8eFpZnNAhi0XEqu6Iru3+oDw7Sj
         GKUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763535399; x=1764140199;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fy55kcq9Jf4HY7Gu+2WwFcbUpHpA0ue3SoOVYKIlmd8=;
        b=aQQL9Yf/40XVrEziaKItZYsLiDzd5Rpr9SxXcMKTLDSUiKv8mkl6+xhcBInOWzVWmi
         zBMZQet0enbkW4o4xrqMMg8UFl2TilW/LMslmT8OqVqJeeDVsO6v6A4Tz1WdrfKAhgmv
         ih1b9YK64Z6ajWJa9W8puOPUFDqOVLoa0R9EaupSiRPkE3fpn9ozFuC+JB8jr/94VnTF
         9S0NXpVDEUsaoitCyGA1Nv6AWnaHSpeZlkKMSW07D0tEGNTlAP/phBlqE4a4/rlnJWIA
         H4tN09wcYMykZrCKJsNJYvOA92frorCoh6NsSoaAYe0/PNW3C9a5HPIVTxqYU+myXXOy
         UAww==
X-Forwarded-Encrypted: i=1; AJvYcCUtMkIsNVQ20oAfpjxRR2TvaxJWV+UAIqEvOFtSAx7bTJji8ktSRRGpAUEPPHkejoe+w4qS7pyUh7c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwJ+LfSRn4ccZc4qQ9/mJrKyF6D83/tmu22ACIn5x9qy9BQ5fn3
	owa894CZj/2fqt3OEyvQ56ugWTrVqzc7JOBn1k8sRnaDJTmuqLq8qN/vkZKeJbz3ug==
X-Gm-Gg: ASbGnctGyJtvua8vDjirt/pPHV/h1Y3S22WdWRGvvWnR9MnreKzbkLNfhxR0iOaBHO+
	DpE1Cue9eaOQthq3PI2v8YXoQX669qpROWLRCxZ/R9nB6OYWCe23LNPrGLpr5sOBC7k624oAkZC
	XXnJnh0VARDgRmOse0V+B4oNc08wdzYHcwSkGmpeq/O+WfuiA3YqqG/uqeZDPGXTFF0Oefy55bT
	n6KffZXp3c6zX5g+Gdh7KAkOe1ii+GbLgVUoHjsolkTVNX54frEDtWIj4xLq/3jh+qgV7k4m1qp
	foGfMw4NpY+7npxwE/8eyV5AM7hwnLm6xM+qGK8gPJg/xGVyVvGRHfJUbJYhCV80xcAauDegymA
	UkG87wckVvzx5KYcUEce8wys8DuE0PcZIThgx4DUu7B2knGMZxu4ba3q5Glpf+Kaofalx7Ywrq4
	KlWK4eWFXK6GxRRXNWKV3UmpDdKK2w+gaEZ+XHC7mIfxdnjooDQOofmVmo1xZhnjIwE/fgkGRuF
	R6XIB1MYwhe1oaQG8Wr8AD5
X-Google-Smtp-Source: AGHT+IGljgB7DJRroBXArNdgyz5nVUpCKsHeFZiupoUpcKgCIK5ImQ3eNXc6aAk8a2wUa4QeDKzHmQ==
X-Received: by 2002:a05:6402:518a:b0:641:27d8:ec3f with SMTP id 4fb4d7f45d1cf-64350eac3e6mr16873469a12.29.1763535399105;
        Tue, 18 Nov 2025 22:56:39 -0800 (PST)
Message-ID: <55bfa9d5-d795-4408-bcfa-6b3d2d1a89e7@suse.com>
Date: Wed, 19 Nov 2025 07:56:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/8] x86/cpu-policy: define bits of leaf 6
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
 <b59c0994-6bb2-4506-88ec-4ea0f3b6c311@suse.com>
 <ab1dc276-2753-4a9b-932b-6cce3ee2b58a@citrix.com>
 <b3e43204-6555-49ec-8ae1-8c54e91b432c@suse.com>
 <a35d9c4c-e76a-40db-9e27-3fd329ece089@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: <a35d9c4c-e76a-40db-9e27-3fd329ece089@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.11.2025 18:20, Andrew Cooper wrote:
> On 18/11/2025 4:53 pm, Jan Beulich wrote:
>> On 18.11.2025 16:30, Andrew Cooper wrote:
>>> On 18/11/2025 3:06 pm, Jan Beulich wrote:
>>>> --- a/xen/include/xen/lib/x86/cpu-policy.h
>>>> +++ b/xen/include/xen/lib/x86/cpu-policy.h
>>>> @@ -121,7 +121,31 @@ struct cpu_policy
>>>>              uint64_t :64, :64; /* Leaf 0x3 - PSN. */
>>>>              uint64_t :64, :64; /* Leaf 0x4 - Structured Cache. */
>>>>              uint64_t :64, :64; /* Leaf 0x5 - MONITOR. */
>>>> -            uint64_t :64, :64; /* Leaf 0x6 - Therm/Perf. */
>>>> +
>>>> +            /* Leaf 0x6 - Therm/Perf. */
>>>> +            struct {
>>>> +                uint32_t /* a */:1,
>>>> +                    turbo:1,
>>>> +                    arat:1,
>>>> +                    :4,
>>>> +                    hwp:1,
>>>> +                    hwp_notification:1,
>>>> +                    hwp_activity_window:1,
>>>> +                    hwp_epp:1,
>>>> +                    hwp_plr:1,
>>>> +                    :1,
>>>> +                    hdc:1,
>>>> +                    :2,
>>>> +                    hwp_peci:1,
>>>> +                    :2,
>>>> +                    hw_feedback:1,
>>>> +                    :12;
>>>> +                uint32_t /* b */:32;
>>>> +                uint32_t /* c */ aperfmperf:1,
>>>> +                    :31;
>>>> +                uint32_t /* d */:32;
>>> Elsewhere, single bit fields are bool foo:1, and these want to match for
>>> consistency.
>> Oh, yes, will change.
>>
>>> Â  In particular using uint32_t:1 creates a latent bug in
>>> patch 8.
>> I don't see where that would be.
> 
> In the printf.Â  %d vs %u.Â  Latent because it's ok until bit 31 gets
> used, and then it's not ok.

How would there be a difference? Every bit is individually unsigned when
the field type is uint32_t, so even bit 31 will cleanly produce 0 / 1
when read.

>>> One problem with bool bitfields is that your :4 needs to become 4x :1.Â 
>>> Right now his hidden in the macros that gen-cpuid.py makes.
>>>
>>> Given that b is of type uint32_t, you can omit the :12 from the end of a
>>> and leave a comment.Â  Similarly, the trailing :31 on c can be dropped.
>> We have these in many other places, and omitting in particular the :31
>> would also feel somewhat fragile / misleading. It'll need to be
>>
>>                 bool     /* c */ aperfmperf:1;
>>                 uint32_t :31;
>>
>> or something along these lines.
> 
> This doesn't work.Â  A gap of 31 bits gets inserted because of uint32_t's
> alignment, which is why the suggestion to ignore it does work (even if
> fragile).

Interesting. When (iirc) we converted the AMD IOMMU machinery to use
struct-s, it was me to be concerned of this, and you telling me the
opposite of what you say now. See how there's no problem in e.g.
struct amd_iommu_dte.

> I suggest a /* 31 spare bits */ comment, because the only other option
> is 31x :1's.

I'll do this differently anyway, ..

>>>> +            } pm;
>>> Nothing else is sub-scoped.Â  I'd prefer that you drop the 'pm'.
>> Wouldn't that require the use of the very extension you just talked about
>> at the committer's call?
> 
> No. It would just be a plain anonymous struct in this case, but it
> doesn't even need to be a struct.

... having realized over night that this would be what you ask for, and ...

> leaf 0,2,10 are all "top level" insofar as they're all inside .basic.Â 
> leaf 1 only has anonymous unions to join the the bitfield names and the
> field-wide name.

... getting things closer to what we use there:

            union {
                uint32_t _6c;
                struct { ... };
            };

Then I can safely and obviously omit any unused tail bits in the bitfield
set. I hope that's going to be okay with you.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 07:25:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 07:25:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165547.1492257 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLcZ0-0002Da-CX; Wed, 19 Nov 2025 07:25:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165547.1492257; Wed, 19 Nov 2025 07:25:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLcZ0-0002DT-9J; Wed, 19 Nov 2025 07:25:14 +0000
Received: by outflank-mailman (input) for mailman id 1165547;
 Wed, 19 Nov 2025 07:25: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=nJND=53=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLcYy-0002DN-Mp
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 07:25:12 +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 e199f010-c518-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 08:25:10 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b75c7cb722aso244576366b.1
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 23:25: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
 4fb4d7f45d1cf-6433a3f880fsm14684281a12.11.2025.11.18.23.25.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 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: e199f010-c518-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763537110; x=1764141910; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=O95jTT8eeuh49JH71XrU2PXo6LAZ9sVvPph8+ApeHsU=;
        b=Ww5OekMjR4atVqGb+4WX+LSYazRwwBwXxZNFkOy1+2+eai2pPNDyAryqgam3IR3RAr
         YSl9gucVLTySkh337PN5izhLpwCFu/Kxr6ueR8S6/ox+pIiLykcvAZTLZ95RKtSDz29z
         UllqRuooyyE3+iwaxD8kB0Lwi8dBpUAwzbORXv7oMbhp0hd4AJ5MCxZhxqEghoNK82iF
         XsMIuOwYf10yyajOVSwMbOiqtBL/TNQ5sSBc340Vd6cgjR6eAJc7bWBqZ9SQa9NKOP/w
         eJqimGbSwK+PJmiXDaYZJ3oPOTRe/Z9dsLOzh/87GOiakZLEFV3ewE+mpaTJITdznH3e
         D8rw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763537110; x=1764141910;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=O95jTT8eeuh49JH71XrU2PXo6LAZ9sVvPph8+ApeHsU=;
        b=L7AXPXMVUX4wB9BV5tAvyvXvI0lK9qG6lJ0U33wbZ7GT2qxABsMCnhYUwBmljW3DRy
         lmLJjHlwUGjQCBD3CgpmO8vlSUanvgMzTNIaIc7pHW4zKF5l10ziYou2vQucdQG7brxP
         IwU79B2kkDKzb7Th+26qtkGIXELmGOgAWqM4GmJGbY+xfID2guzaLgfw7yIUlSgihOFO
         LF+9aOSNG7lp2Oz8kOF16Fdk/+KDTmODceazl/Sg0hh04Pnvs2rnK0rOksQStyq0qPmF
         TTB2PEvN+XPy8EjiPBe+Z/Vqg/5TyCdq7d0AsvjGS0g+ZK+cv+UMD5SLvaKNk7l/AUvp
         OO+w==
X-Forwarded-Encrypted: i=1; AJvYcCU0njOQ6UBjTsLZWJaIOq4ShALBtc/bzvy4AvGrTfxu+XJ3xvPcyfJAdkrKvd7pKXKk4syQrmuYI/Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyrCJRdwPDQdEMLWVeI+hI/Tn578xdFnX/b67RvZ7Yj5npApAcY
	GIiQayMQ7kIRztlHuzteQEGvwwAC0gLmiW2ZCFH2EhntPKvZMn8R6Y24X3mm/s8lTw==
X-Gm-Gg: ASbGncttPhsIgXquole2cMj3tjywS8NB6bWxOFzd1BDzV0JGUPsnHrx46hgRyCZyizn
	3TjiPA5ZsMou0Fp5ylrGmc4MNe/JdZ0nEfMFxM+fSZn14CbFnKsfj+5Wh6Q1bFvtY8oAGaHtfGP
	S55jJp9z6vQMYktSM0dsXmGsCygT/XMFEMxtOpFrhuuvuNb6UTj2Um0Bh4aHxyTncOS4/jv9QTt
	alfNm2FsGlrKtf/JvIA2tVwkiedO7s19tlDf5X/tkWKFHOgwh4DhSlTYJCl8lvC6GOPybod5tsn
	sjNhcv2GBpSEVoq/5JEKn/s05MXRohc5H73wSr277fs4IZBRZKdRUaDygPm9abVALfpB2hjk0W8
	vDTAphMMiao2ZPvyf6qZz6RSy5LeOkosaYaLlfWMtQiTKdwkKCxWFbWKoz+JYxxjaVfufSXtdXw
	1N58qAyAQVqvgIdb2rSKqt2I5dYqlYlFWy4M2UhoGZgIX4J3GLtHOoZz4QdqAvPid2Lizq8L6aK
	JE=
X-Google-Smtp-Source: AGHT+IHZPGNq/eVaON2hqs6++jSxBp76vTZoGnxBw+P7lmeV0Xoy/Vf2GIFzsn/TlSd5+jX7a4N5ww==
X-Received: by 2002:a17:907:a44:b0:b73:544d:ba2e with SMTP id a640c23a62f3a-b736780d5bamr2272943966b.25.1763537109804;
        Tue, 18 Nov 2025 23:25:09 -0800 (PST)
Message-ID: <d32700af-909c-44e0-afe9-c7f54fe9b332@suse.com>
Date: Wed, 19 Nov 2025 08:25:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/8] x86: replace APERFMPERF synthetic feature bit
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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
 <505029ff-cb2e-425c-bf5c-3ac364f32140@suse.com>
 <8c704f68-591c-4605-a649-86ca0ada411f@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: <8c704f68-591c-4605-a649-86ca0ada411f@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.11.2025 16:41, Andrew Cooper wrote:
> On 18/11/2025 3:07 pm, Jan Beulich wrote:
>> Use the respective host CPU policy bit instead.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Right now, the synthetic features get levelled across the system.Â  Now,
> we take the BSP's copy.
> 
> This change is broadly fine, but it does need mentioning in the commit
> message.

"Use the respective host CPU policy bit instead. This has the (tolerable,
 as we generally assume symmetry anyway) effect of using the BSP's
 (unleveled) setting, rather than the result of leveling (as is done by
 identify_cpu() on boot_cpu_data, rendering the variable name somewhat
 misleading)."

?

> One thing we may want to do is take greater care to get the
> masking/levelling MSRs properly level.Â  Right now, if they're asymmetric
> for any reason, we would previously end up using the common subset.

Possibly; I'd prefer to leave that to you, though.

>> --- a/xen/arch/x86/include/asm/cpufeature.h
>> +++ b/xen/arch/x86/include/asm/cpufeature.h
>> @@ -11,7 +11,9 @@
>>  #include <xen/macros.h>
>>  
>>  #ifndef __ASSEMBLY__
>> +#include <asm/cpu-policy.h>
>>  #include <asm/cpuid.h>
>> +#include <xen/lib/x86/cpu-policy.h>
> 
> Why both?

The former declares host_cpu_policy, while the latter defines struct cpu_policy.
And neither of the two #include-s the other, afaics.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 07:31:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 07:31:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165558.1492266 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLcfA-0003tI-Ui; Wed, 19 Nov 2025 07:31:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165558.1492266; Wed, 19 Nov 2025 07:31: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 1vLcfA-0003tB-Rg; Wed, 19 Nov 2025 07:31:36 +0000
Received: by outflank-mailman (input) for mailman id 1165558;
 Wed, 19 Nov 2025 07:31: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=nJND=53=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLcf8-0003t5-Ry
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 07:31:34 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c5f08727-c519-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 08:31:33 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b72b495aa81so823306466b.2
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 23:31: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
 a640c23a62f3a-b734fda933fsm1515954966b.56.2025.11.18.23.31.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 23:31: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: c5f08727-c519-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763537493; x=1764142293; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UII7YPSLmZoWfgLAFslF5ozU1ThOMhF5VR0aPZsMdSw=;
        b=QkvAeXcmtmhApbcVbSAUzUUFrxjFiWPbqUUBamrWqYgv9E3nRhk3PSNv+k8db5Sog8
         Xp9dENLkb4Q1nhtBbFbD2FbZGnv92XmpA0vL7Eszh9sdnGIOf5PoiGLylmOSeN7P3jOt
         FXmlAdexDPD5Uw2LVl4s9NdXfLgb1Ra2PzATcOgkK6+pf8Fxk4+SPXYkpRNQ8idI0RkU
         iHd3YWaBMq2zXyRmceO8R/+K5WfbCu5/4pO9v1Zbg/vMSiuZ55BiaVWVcY46Wpnt3fNz
         kk93tW9Rsm94zcrrTLAMenAbIC8kkQ+weYjlmfE4GaW9/4DGm1fBn1OzpFYNZ1SHwoPa
         D89Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763537493; x=1764142293;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UII7YPSLmZoWfgLAFslF5ozU1ThOMhF5VR0aPZsMdSw=;
        b=RO4x+M47I074RDR/T67iUV0SJGKaXwHl1/wXn5JjNk4q5hJ9lr0c641iZjXLVudAPE
         XzSDdLDEnXKhnUpleOW+cni24S2G6qkCahyWVznh3RhOPgFPKT7xJijaVN6V7vn5WzE1
         vc5S1xaz9jk0WusFz0cbjeA0yR6hS4ZfO/e0PUVAtLIjBLa5Wbq2vnb5TpczUkKjTF2g
         q4v0Gf5oJb9yHj/OCGEGdEMfxMr1cWOkea+2ePOVcV8kZk3gTFT9RLKcMcIHKwjlEind
         JrwMfBfskT5Y6RpCgHLz1AdqbzeqWzuGB/FyLdilMYvCcZYQKItyj8ryowNDEUEo3xQh
         Ikrw==
X-Forwarded-Encrypted: i=1; AJvYcCVS3sLrIFkAgNySZErUTPRafbuT0kF1mEMkTZfJ8RgLjkN/3rWkK/9PriueRFVqEg/LMdwdk88qSok=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwZbv57ZSW4IqDcOpBfcLxAy5WsHOX2HTVGm4NUdfwNBhbziARH
	sgO4BH60lSxMXgiVCJolFQRq77jUF5t4NTio3+ZMsq9bv03T1JsJWaX5AmmcvmLa6g==
X-Gm-Gg: ASbGnctaC8bnRaMG73ky75RG8DTpIsNB8GwdUVyG/3uT3LlGeUk9KrUTd6/7X0hzULg
	JOgGCsKmtTaxz+Nx8j0JsCri+TjbrgOPoBEYlxBxb8HwCWfY22R+QzZFETU8ZwS8EQXQpIrqwab
	ryKou2lF6Dop+HvKhuqbR+O20v92+QU1tHFnq+rRlsiVciwAzWTSjo53q473ebkZGjV5AU0v/wZ
	cACjYAJuvdP6VxYb/zOnzvwCELmfgiBVqSFOsrj98ZcvgzraxFBvRMQ6QtHbu/7/+P/MNsXyLqu
	/uQ+v0yuJnJReH1Hejlu5TXU3ji8TjJORRb6wKcDEJR5ooJ34WKoNlIGODUUrDddHSKSwqV8Q6x
	gRTTmt6dRskxEr7oxfnebIASYE/+J06lbcDclNgF2qvkREkEP/ha1I3MwKm2yrz9nN9SyY1DARg
	Rs8UgsF+N0wimRld5P9uHm2o1aZWpkpOC5M/ta+zwKXg8Nrwjnjq0bW4kwn/ZDzbw/00ANVKL0V
	i4=
X-Google-Smtp-Source: AGHT+IGubwQkaG7UvhT1WMkpNs86+5/GrsY+cFyNLyZwwaXCLZKni2NkLLB7Ecohq2V/NHjP7JM1mA==
X-Received: by 2002:a17:907:3e03:b0:b3d:b8c3:768d with SMTP id a640c23a62f3a-b736780af1dmr2255109366b.7.1763537492961;
        Tue, 18 Nov 2025 23:31:32 -0800 (PST)
Message-ID: <19a735cc-23fb-4d26-8090-ee61f4a92e37@suse.com>
Date: Wed, 19 Nov 2025 08:31:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/8] x86: rename ARAT feature flag
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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
 <bd4f2601-a2fc-4c58-b1a9-3b2c40076eab@suse.com>
 <828b87a8-9521-40c5-95ff-f46e55fd5f71@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: <828b87a8-9521-40c5-95ff-f46e55fd5f71@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.11.2025 17:38, Andrew Cooper wrote:
> On 18/11/2025 3:07 pm, Jan Beulich wrote:
>> Add a XEN infix, to properly distinguish it from the CPUID feature flag
>> (leaf 6 EAX bit 2).
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Question is whether we still need opt_arat (and the command line option),
>> or whether we could go directly from the CPUID bit (overriding it to on
>> for older AMD [and Hygon?] CPUs). Or whether to have opt_arat affect the
>> (host) CPU policy directly.
> 
> I have no particular love for opt_arat.Â  I added it when there was no
> way to force a system to fall back to an older timer.
> 
> As long as we've got some way of configuring the exact timer to, I'm not
> fussed about keeping the top level boolean.

But the question is what the replacement would look like. Is it okay to
override bits to true in the host policy? (It may be as long as we don't
expose this in the guest policies, but at some point we may want or even
need to.) Would the command line option also go away (in favor of
integrating with cpuid=, which would require extra logic as long as we
don't put leaf 6 bits in public/arch-x86/cpufeatureset.h)?

IOW for the patch at hand I wouldn't mean to make adjustments. The remark
was more towards further, future adjustments.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 07:40:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 07:40:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165570.1492278 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLcnv-0005qh-Qh; Wed, 19 Nov 2025 07:40:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165570.1492278; Wed, 19 Nov 2025 07:40: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 1vLcnv-0005qa-MY; Wed, 19 Nov 2025 07:40:39 +0000
Received: by outflank-mailman (input) for mailman id 1165570;
 Wed, 19 Nov 2025 07:40: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=nJND=53=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLcnu-0005qE-Mt
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 07:40:38 +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 08e52d80-c51b-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 08:40:35 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-64162c04f90so10127714a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 18 Nov 2025 23:40: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
 4fb4d7f45d1cf-6433a3d82cfsm14462110a12.2.2025.11.18.23.40.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 18 Nov 2025 23:40: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: 08e52d80-c51b-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763538035; x=1764142835; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qfyLvtK0+cQEh3RVeWZ+tqWHVoNUyoODHiQvDK/+9Ew=;
        b=NKIZOe7SBVsPyi5OOdqKaWN/7IXEKeilZjN2FJ8fwTzJ4JQwSs1VXD+FGNK2U+Xrek
         jDLiT/j17JsxKVxzF37rHxCfrEy0Ye5FMFCenGUX3jIkP4ftiiNAfFy0ov40DD6nlVmV
         V6mKIB60KdNt/8SML14oAi1cOrbamLv+7t2Cahm6GbkisU8DxukV9L58zul5nmdrs/7O
         7KMbght0X3VWcuWDa9ylExxD7V2MVuYm4c34xvKLXE9jeLqdQrK129Joo1o0Az0M+FN6
         Map82+/0/AOSAl9FnM4g/p7W/LxYXs1k4yzMFnuGeVVQlBPYCWpQKvB/wTLmp77+pglH
         s06Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763538035; x=1764142835;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qfyLvtK0+cQEh3RVeWZ+tqWHVoNUyoODHiQvDK/+9Ew=;
        b=U7AmW6NwZOSOj0NbugYt2kHsXK3nrs1JG55jw8y/4qtPsJti4l1x6FWzyI2FTFS0A0
         bZWrPR1oMaPI1TzK3/M/fa2Dy7sNYJvCdXKow6lc5ieWf1ojH6nDisTbuVuvre+GjyF9
         zba73p0d/DKk82buDXttZXjDoC/dOBsxbOThJZZroROO0ds7x/k8Zu3OPVhg+IkA6Cfn
         YWlkuuZMbY95qwHbAKFr6LJThb1p+8D6gcxLJFY5YzZKiUjDltYL0nKp/9cKY7Wkn9N8
         7/cy9DIip7QVYPS+HW4uyZotr9jrqKGK/YJ0PMzjNSzYy/0jyEWNQEm2Vq6EqNQqbr+D
         OhOg==
X-Forwarded-Encrypted: i=1; AJvYcCUy0d4SFaPK/UaPByEi8/G+p7xjfh4RPPY6uwWNfjWaIVNABpORnjcJg7U5aoAdlCV/Lp+hEUJC3nw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwL7s+O+T8KPmzqlA0+7KuJTe4t/yUXxK/TgwInM4RRo9VSoI7A
	Cy4o2Z1+XsmNrgIo4pcvA47U47qP5RAJmjJ+ydY6G3lH632TxXR8u+wqrHjdmuRqmVvds2dK0l9
	6JuM=
X-Gm-Gg: ASbGncsGsT0fIOzi4RyxnI/IRAamRwKjIkpET3Ld7A5kvDOyC4X6A0r17e8f3uzK+Ko
	xuaHyUbbMrGdX8PseBZCvITtxUrl1kIRtGDC3VhJ7Rl9rGfDJgkUdfDtnYOEWWjFP0qed/KXrUl
	TJP7HGNrVbgKaQOWDJTZ8ypPXqr6SkAk9nBYzS39R5dBg2JC77Q0z0OS8t6KjRfgM0Bx8ww+Bnh
	scAOfpr+6iQOJtI2a3D3AAAiPpQKvmuJE3+KkwFkqPcZeKVqubCy1lb2qKDP81Cz/ojENVyFO95
	IZbVfeA/Kpz5v/BnTAb0Kbk1XckaZgpTaWsc4+fuD8VWXp+u0Sa24wPtB+YQ/64IG/31OXiumsf
	jpwyqUoYSj7ZNsPS9qdyIkPplSM/9y8WupUBhMDEqs+tHlRybAp1e+EaHlSRnZ45pqQ6Jxe9jO0
	ZcYi8JtbcxPzSYNErMMWlfsBpknIUjteM7WQdxvZ1wr8dweDBAhUS7IOBYduPvMCvcqpgODeTpg
	gbWzVFJYZLF2w==
X-Google-Smtp-Source: AGHT+IGFDyXTLdOwndlGsdT6ZFt6tI4wcuy5rmQH+R44R1KL38m2RoBfJ3IKVP/UZ/4s2mFZZAqwKA==
X-Received: by 2002:a05:6402:278f:b0:62f:8274:d6bd with SMTP id 4fb4d7f45d1cf-64350dee90emr17673898a12.8.1763538034681;
        Tue, 18 Nov 2025 23:40:34 -0800 (PST)
Message-ID: <bf617c69-8e51-4e9f-bcfa-9e51f3be7aa8@suse.com>
Date: Wed, 19 Nov 2025 08:40:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 6/8] x86/Intel: use host CPU policy for ARAT checking
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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
 <65cb802c-922d-4bee-9dee-566367bec6ed@suse.com>
 <15a614d7-1646-4ad7-a298-edb77baae279@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: <15a614d7-1646-4ad7-a298-edb77baae279@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.11.2025 20:42, Andrew Cooper wrote:
> On 18/11/2025 3:08 pm, Jan Beulich wrote:
>> There's no need to invoke CPUID yet another time. However, as the host CPU
>> policy is set up only shortly after init_intel() ran on the BSP, defer the
>> logic to a pre-SMP initcall. This can't be (a new) one in cpu/intel.c
>> though, as that's linked after acpi/cpu_idle.c (which is where we already
>> need the feature set). Since opt_arat is local to the cpu/ subtree,
>> introduce a new Intel-specific helper to hold the code needed.
>>
>> Further, as we assume symmetry anyway, use setup_force_cpu_cap() and hence
>> limit the checking to the boot CPU.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> The need to move where cpu_has_arat is checked would go away if we did
>> away with opt_arat (as mentioned in the previous patch), and hence could
>> use cpu_has_arat directly where right now XEN_ARAT is checked.
>>
>> --- a/xen/arch/x86/acpi/cpu_idle.c
>> +++ b/xen/arch/x86/acpi/cpu_idle.c
>> @@ -1666,6 +1666,9 @@ static int __init cf_check cpuidle_presm
>>  {
>>      void *cpu = (void *)(long)smp_processor_id();
>>  
>> +    if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
>> +        intel_init_arat();
> 
> I really would prefer to avoid the need for this.

So would I, but ...

> Now that microcode loading has moved to the start of day, we can drop
> most of the order-of-init complexity for CPUID/etc, and I expect that
> problems like this will cease to exist as a result.
> 
> Notably, we've now got no relevant difference between early_init() and
> regular init().Â  That was a complexity we inherited from Linux.

... I don't see how this leads to any concrete suggestion as to better
arrangements. With cpu_has_arat using the host policy now,
setup_force_cpu_cap(X86_FEATURE_XEN_ARAT) being conditional upon that
has to run _after_ calculate_host_policy(), which in turn runs after
intel_init(). We could add a .c_late_init hook to struct cpu_dev, but
doing so felt like overkill for the purpose here. Plus it feels like
that wouldn't really address your concern either.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 07:54:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 07:54:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165583.1492296 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLd18-0008Dn-6b; Wed, 19 Nov 2025 07:54:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165583.1492296; Wed, 19 Nov 2025 07:54:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLd18-0008Dg-3i; Wed, 19 Nov 2025 07:54:18 +0000
Received: by outflank-mailman (input) for mailman id 1165583;
 Wed, 19 Nov 2025 07:54: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=+YCl=53=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1vLd16-00088E-PV
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 07:54:16 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id f0c58cc3-c51c-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 08:54: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 C619E1477;
 Tue, 18 Nov 2025 23:54: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 536893F740;
 Tue, 18 Nov 2025 23:54: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: f0c58cc3-c51c-11f0-9d18-b5c5bf9af7f9
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 v3 2/3] arm/mpu: Implement reference counting for inclusive regions
Date: Wed, 19 Nov 2025 07:53:50 +0000
Message-ID: <20251119075351.3926690-3-harry.ramsey@arm.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251119075351.3926690-1-harry.ramsey@arm.com>
References: <20251119075351.3926690-1-harry.ramsey@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement reference counting to enable inclusive MPU regions. An
inclusive region is defined as a region encapsulated inside a
previously allocated region sharing the same permissions.

Reference counts are incremented and decremented in
xen_mpumap_update_entry. A region will be destroyed if the reference
count is 0 upon calling destroy_xen_mappings and if the full region
range is specified.

Additionally XEN_MPUMAP_ENTRY_SHIFT and XEN_MPUMAP_ENTRY_SHIFT_ZERO are
no longer hardcoded and defined inside asm-offsets.c.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
Changes in v3:
- Return early when checking memory attribute condtions
- Replace references with refcount
Changes in v2:
- Improve clarity with regards to MPU inclusive regions
- Fix code format issues
---
 xen/arch/arm/arm32/asm-offsets.c         |  2 +
 xen/arch/arm/arm64/asm-offsets.c         |  2 +
 xen/arch/arm/include/asm/arm32/mpu.h     |  2 +
 xen/arch/arm/include/asm/arm64/mpu.h     |  2 +
 xen/arch/arm/include/asm/mpu/regions.inc | 11 +++-
 xen/arch/arm/mpu/mm.c                    | 73 +++++++++++++++++++-----
 6 files changed, 76 insertions(+), 16 deletions(-)

diff --git a/xen/arch/arm/arm32/asm-offsets.c b/xen/arch/arm/arm32/asm-offsets.c
index c203ce269d..951f8d03f3 100644
--- a/xen/arch/arm/arm32/asm-offsets.c
+++ b/xen/arch/arm/arm32/asm-offsets.c
@@ -79,6 +79,8 @@ void __dummy__(void)
 #ifdef CONFIG_MPU
    DEFINE(XEN_MPUMAP_MASK_sizeof, sizeof(xen_mpumap_mask));
    DEFINE(XEN_MPUMAP_sizeof, sizeof(xen_mpumap));
+   DEFINE(XEN_MPUMAP_ENTRY_SHIFT, ilog2(sizeof(pr_t)));
+   DEFINE(XEN_MPUMAP_ENTRY_ZERO_OFFSET, sizeof(prbar_t) + sizeof(prlar_t));
    BLANK();
 #endif
 }
diff --git a/xen/arch/arm/arm64/asm-offsets.c b/xen/arch/arm/arm64/asm-offsets.c
index 320289b281..38a3894a3b 100644
--- a/xen/arch/arm/arm64/asm-offsets.c
+++ b/xen/arch/arm/arm64/asm-offsets.c
@@ -73,6 +73,8 @@ void __dummy__(void)
 #ifdef CONFIG_MPU
    DEFINE(XEN_MPUMAP_MASK_sizeof, sizeof(xen_mpumap_mask));
    DEFINE(XEN_MPUMAP_sizeof, sizeof(xen_mpumap));
+   DEFINE(XEN_MPUMAP_ENTRY_SHIFT, ilog2(sizeof(pr_t)));
+   DEFINE(XEN_MPUMAP_ENTRY_ZERO_OFFSET, sizeof(prbar_t) + sizeof(prlar_t));
    BLANK();
 #endif
 }
diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
index 0a6930b3a0..137022d922 100644
--- a/xen/arch/arm/include/asm/arm32/mpu.h
+++ b/xen/arch/arm/include/asm/arm32/mpu.h
@@ -39,6 +39,8 @@ typedef union {
 typedef struct {
     prbar_t prbar;
     prlar_t prlar;
+    uint8_t refcount;
+    uint8_t pad[7];     /* Pad structure to 16 Bytes */
 } pr_t;
 
 #endif /* __ASSEMBLY__ */
diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
index f0ce344e78..17f62ccaf6 100644
--- a/xen/arch/arm/include/asm/arm64/mpu.h
+++ b/xen/arch/arm/include/asm/arm64/mpu.h
@@ -38,6 +38,8 @@ typedef union {
 typedef struct {
     prbar_t prbar;
     prlar_t prlar;
+    uint8_t refcount;
+    uint8_t pad[15];    /* Pad structure to 32 Bytes */
 } pr_t;
 
 #endif /* __ASSEMBLY__ */
diff --git a/xen/arch/arm/include/asm/mpu/regions.inc b/xen/arch/arm/include/asm/mpu/regions.inc
index 23fead3b21..0cdbb17bc3 100644
--- a/xen/arch/arm/include/asm/mpu/regions.inc
+++ b/xen/arch/arm/include/asm/mpu/regions.inc
@@ -14,14 +14,12 @@
 #define PRLAR_ELx_EN            0x1
 
 #ifdef CONFIG_ARM_64
-#define XEN_MPUMAP_ENTRY_SHIFT  0x4     /* 16 byte structure */
 
 .macro store_pair reg1, reg2, dst
     stp \reg1, \reg2, [\dst]
 .endm
 
 #else
-#define XEN_MPUMAP_ENTRY_SHIFT  0x3     /* 8 byte structure */
 
 .macro store_pair reg1, reg2, dst
     strd  \reg1, \reg2, [\dst]
@@ -97,6 +95,15 @@
 
 3:
 
+    /* Clear the rest of the xen_mpumap entry. */
+#ifdef CONFIG_ARM_64
+    stp xzr, xzr, [\base, #XEN_MPUMAP_ENTRY_ZERO_OFFSET]
+#else
+    mov \prbar, #0
+    mov \prlar, #0
+    strd \prbar, \prlar, [\base, #XEN_MPUMAP_ENTRY_ZERO_OFFSET]
+#endif
+
     add   \sel, \sel, #1
 
 1:
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index b80edcf1ca..29dd8c4622 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -106,6 +106,7 @@ pr_t pr_of_addr(paddr_t base, paddr_t limit, unsigned int flags)
     region = (pr_t) {
         .prbar = prbar,
         .prlar = prlar,
+        .refcount = 0,
     };
 
     /* Set base address and limit address. */
@@ -170,6 +171,35 @@ int mpumap_contains_region(pr_t *table, uint8_t nr_regions, paddr_t base,
     return MPUMAP_REGION_NOTFOUND;
 }
 
+static bool is_mm_attr_match(pr_t *region, unsigned int attributes)
+{
+    if ( region->prbar.reg.ro != PAGE_RO_MASK(attributes) )
+    {
+        printk(XENLOG_WARNING
+               "Mismatched Access Permission attributes (%#x instead of %#x)\n",
+               region->prbar.reg.ro, PAGE_RO_MASK(attributes));
+        return false;
+    }
+
+    if ( region->prbar.reg.xn != PAGE_XN_MASK(attributes) )
+    {
+        printk(XENLOG_WARNING
+               "Mismatched Execute Never attributes (%#x instead of %#x)\n",
+               region->prbar.reg.xn, PAGE_XN_MASK(attributes));
+        return false;
+    }
+
+    if ( region->prlar.reg.ai != PAGE_AI_MASK(attributes) )
+    {
+        printk(XENLOG_WARNING
+               "Mismatched Memory Attribute Index (%#x instead of %#x)\n",
+               region->prlar.reg.ai, PAGE_AI_MASK(attributes));
+        return false;
+    }
+
+    return true;
+}
+
 /* Map a frame table to cover physical addresses ps through pe */
 void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
 {
@@ -284,22 +314,26 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
 
     flags_has_page_present = flags & _PAGE_PRESENT;
 
-    /* Currently we don't support modifying an existing entry. */
+    /*
+    * Currently, we only support removing/modifying a *WHOLE* MPU memory
+    * region. Part-region removal/modification is not supported as in the worst
+    * case it will leave two/three fragments behind.
+    */
     if ( flags_has_page_present && (rc >= MPUMAP_REGION_FOUND) )
     {
-        printk("Modifying an existing entry is not supported\n");
-        return -EINVAL;
-    }
+        if ( !is_mm_attr_match(&xen_mpumap[idx], flags) )
+        {
+            printk("Modifying an existing entry is not supported\n");
+            return -EINVAL;
+        }
 
-    /*
-     * Currently, we only support removing/modifying a *WHOLE* MPU memory
-     * region. Part-region removal/modification is not supported as in the worst
-     * case it will leave two/three fragments behind.
-     */
-    if ( rc == MPUMAP_REGION_INCLUSIVE )
-    {
-        printk("Part-region removal/modification is not supported\n");
-        return -EINVAL;
+        /* Check for overflow of refcount before incrementing.  */
+        if ( xen_mpumap[idx].refcount == 0xFF )
+        {
+            printk("Cannot allocate region as it would cause refcount overflow\n");
+            return -ENOENT;
+        }
+        xen_mpumap[idx].refcount += 1;
     }
 
     /* We are inserting a mapping => Create new region. */
@@ -323,7 +357,18 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
             return -EINVAL;
         }
 
-        disable_mpu_region_from_index(idx);
+        if ( xen_mpumap[idx].refcount == 0 )
+        {
+            if ( MPUMAP_REGION_FOUND == rc )
+                disable_mpu_region_from_index(idx);
+            else
+            {
+                printk("Cannot remove a partial region\n");
+                return -EINVAL;
+            }
+        }
+        else
+            xen_mpumap[idx].refcount -= 1;
     }
 
     return 0;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 07:54:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 07:54:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165584.1492307 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLd19-0008Rj-Ci; Wed, 19 Nov 2025 07:54:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165584.1492307; Wed, 19 Nov 2025 07:54:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLd19-0008RX-9n; Wed, 19 Nov 2025 07:54:19 +0000
Received: by outflank-mailman (input) for mailman id 1165584;
 Wed, 19 Nov 2025 07:54: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=+YCl=53=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1vLd17-0007zV-U6
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 07:54:17 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id f2277e92-c51c-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 08:54: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 1D9251480;
 Tue, 18 Nov 2025 23:54: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 A15BA3F740;
 Tue, 18 Nov 2025 23:54: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: f2277e92-c51c-11f0-980a-7dc792cee155
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 v3 3/3] arm/mpu: Implement ioremap_attr for MPU
Date: Wed, 19 Nov 2025 07:53:51 +0000
Message-ID: <20251119075351.3926690-4-harry.ramsey@arm.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251119075351.3926690-1-harry.ramsey@arm.com>
References: <20251119075351.3926690-1-harry.ramsey@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement the function `ioremap_attr` for MPU systems.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>
---
 xen/arch/arm/mpu/mm.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 29dd8c4622..f25560d746 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -473,8 +473,13 @@ void free_init_memory(void)
 
 void __iomem *ioremap_attr(paddr_t start, size_t len, unsigned int flags)
 {
-    BUG_ON("unimplemented");
-    return NULL;
+    paddr_t start_pg = round_pgdown(start);
+    paddr_t end_pg = round_pgup(start_pg + len);
+    if ( xen_mpumap_update(start_pg, end_pg, flags) )
+        return NULL;
+
+    /* Mapped or already mapped */
+    return maddr_to_virt(start_pg);
 }
 
 /*
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 07:54:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 07:54:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165582.1492288 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLd15-0007zi-Un; Wed, 19 Nov 2025 07:54:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165582.1492288; Wed, 19 Nov 2025 07:54:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLd15-0007zb-Qt; Wed, 19 Nov 2025 07:54:15 +0000
Received: by outflank-mailman (input) for mailman id 1165582;
 Wed, 19 Nov 2025 07:54:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+YCl=53=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1vLd14-0007zV-DZ
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 07:54:14 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id ef86bef3-c51c-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 08:54: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 B5E8012FC;
 Tue, 18 Nov 2025 23:54:03 -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 41FB23F740;
 Tue, 18 Nov 2025 23:54: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: ef86bef3-c51c-11f0-980a-7dc792cee155
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 v3 1/3] arm/mpu: Implement setup_mm for MPU systems
Date: Wed, 19 Nov 2025 07:53:49 +0000
Message-ID: <20251119075351.3926690-2-harry.ramsey@arm.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251119075351.3926690-1-harry.ramsey@arm.com>
References: <20251119075351.3926690-1-harry.ramsey@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement `setup_mm` for MPU systems. This variant does not require
setting up a direct map.

To reduce code duplication the common initalisation code for both MPU
and MMU Arm64 configurations is refactored into `setup_mm`. Platform-specific
setup steps are now handled by a new helper function `setup_mm_helper`.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
---
Changes in v3:
- Remove reference to MPU in comment
Changes in v2:
- Improve clarity with regards to MPU inclusive regions
- Fix code format issues
---
 xen/arch/arm/arm64/mmu/mm.c   | 26 +-------------------
 xen/arch/arm/include/asm/mm.h |  2 ++
 xen/arch/arm/mm.c             | 45 +++++++++++++++++++++++++++++++++++
 xen/arch/arm/mpu/mm.c         | 30 +++++++++++++++++++++--
 4 files changed, 76 insertions(+), 27 deletions(-)

diff --git a/xen/arch/arm/arm64/mmu/mm.c b/xen/arch/arm/arm64/mmu/mm.c
index 3e64be6ae6..70b53be032 100644
--- a/xen/arch/arm/arm64/mmu/mm.c
+++ b/xen/arch/arm/arm64/mmu/mm.c
@@ -4,8 +4,6 @@
 #include <xen/llc-coloring.h>
 #include <xen/mm.h>
 #include <xen/pfn.h>
-#include <xen/static-memory.h>
-#include <xen/static-shmem.h>

 #include <asm/setup.h>

@@ -240,33 +238,18 @@ static void __init setup_directmap_mappings(unsigned long base_mfn,
         panic("Unable to setup the directmap mappings.\n");
 }

-void __init setup_mm(void)
+void __init setup_mm_helper(void)
 {
     const struct membanks *banks = bootinfo_get_mem();
     paddr_t ram_start = INVALID_PADDR;
     paddr_t ram_end = 0;
-    paddr_t ram_size = 0;
     unsigned int i;

-    init_pdx();
-
-    /*
-     * We need some memory to allocate the page-tables used for the directmap
-     * mappings. But some regions may contain memory already allocated
-     * for other uses (e.g. modules, reserved-memory...).
-     *
-     * For simplicity, add all the free regions in the boot allocator.
-     */
-    populate_boot_allocator();
-
-    total_pages = 0;
-
     for ( i = 0; i < banks->nr_banks; i++ )
     {
         const struct membank *bank = &banks->bank[i];
         paddr_t bank_end = bank->start + bank->size;

-        ram_size = ram_size + bank->size;
         ram_start = min(ram_start, bank->start);
         ram_end = max(ram_end, bank_end);

@@ -274,16 +257,9 @@ void __init setup_mm(void)
                                  PFN_DOWN(bank->size));
     }

-    total_pages += ram_size >> PAGE_SHIFT;
-
     directmap_virt_end = XENHEAP_VIRT_START + ram_end - ram_start;
     directmap_mfn_start = maddr_to_mfn(ram_start);
     directmap_mfn_end = maddr_to_mfn(ram_end);
-
-    setup_frametable_mappings(ram_start, ram_end);
-
-    init_staticmem_pages();
-    init_sharedmem_pages();
 }

 /*
diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index 7a93dad2ed..f702f4a0d6 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -202,6 +202,8 @@ extern void remove_early_mappings(void);
 extern int prepare_secondary_mm(int cpu);
 /* Map a frame table to cover physical addresses ps through pe */
 extern void setup_frametable_mappings(paddr_t ps, paddr_t pe);
+/* 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);

diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index 3b05b46ee0..6df8b616e4 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -12,8 +12,12 @@
 #include <xen/grant_table.h>
 #include <xen/guest_access.h>
 #include <xen/mm.h>
+#include <xen/static-memory.h>
+#include <xen/static-shmem.h>
 #include <xen/vmap.h>

+#include <asm/setup.h>
+
 #include <xsm/xsm.h>

 #include <public/memory.h>
@@ -24,6 +28,47 @@

 unsigned long frametable_base_pdx __read_mostly;

+#if defined(CONFIG_ARM_64) || defined(CONFIG_MPU)
+void __init setup_mm(void)
+{
+    const struct membanks *banks = bootinfo_get_mem();
+    paddr_t ram_start = INVALID_PADDR;
+    paddr_t ram_end = 0;
+    paddr_t ram_size = 0;
+    unsigned int i;
+
+    init_pdx();
+
+    for ( i = 0; i < banks->nr_banks; i++ )
+    {
+        const struct membank *bank = &banks->bank[i];
+        paddr_t bank_end = bank->start + bank->size;
+
+        ram_size = ram_size + bank->size;
+        ram_start = min(ram_start, bank->start);
+        ram_end = max(ram_end, bank_end);
+    }
+
+    total_pages = ram_size >> PAGE_SHIFT;
+
+    /*
+     * On MMU systems we need some memory to allocate the page-tables used for
+     * the direct mapmappings. But some regions may contain memory already
+     * allocated for other uses (e.g. modules, reserved-memory...).
+     *
+     * For simplicity, add all the free regions in the boot allocator.
+     */
+    populate_boot_allocator();
+
+    setup_mm_helper();
+
+    setup_frametable_mappings(ram_start, ram_end);
+
+    init_staticmem_pages();
+    init_sharedmem_pages();
+}
+#endif
+
 bool flags_has_rwx(unsigned int flags)
 {
     /*
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 3f155b7db2..b80edcf1ca 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -5,12 +5,14 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/mm.h>
+#include <xen/pfn.h>
 #include <xen/sizes.h>
 #include <xen/spinlock.h>
 #include <xen/types.h>
 #include <asm/mpu.h>
 #include <asm/mpu/mm.h>
 #include <asm/page.h>
+#include <asm/setup.h>
 #include <asm/sysregs.h>

 struct page_info *frame_table;
@@ -378,9 +380,33 @@ int map_pages_to_xen(unsigned long virt, mfn_t mfn, unsigned long nr_mfns,
     return xen_mpumap_update(virt, mfn_to_maddr(mfn_add(mfn, nr_mfns)), flags);
 }

-void __init setup_mm(void)
+/*
+ * Heap must be statically configured in Device Tree through "xen,static-heap"
+ * on MPU systems, use setup_mm_helper() for that.
+ */
+void __init setup_mm_helper(void)
 {
-    BUG_ON("unimplemented");
+    const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
+    unsigned int bank = 0;
+
+    for ( ; bank < reserved_mem->nr_banks; bank++ )
+    {
+        if ( reserved_mem->bank[bank].type == MEMBANK_STATIC_HEAP )
+        {
+            paddr_t bank_start = round_pgup(reserved_mem->bank[bank].start);
+            paddr_t bank_size = round_pgdown(reserved_mem->bank[bank].size);
+            paddr_t bank_end = bank_start + bank_size;
+
+            /* Map static heap with one MPU protection region */
+            if ( xen_mpumap_update(bank_start, bank_end, PAGE_HYPERVISOR) )
+                panic("Failed to map static heap\n");
+
+            break;
+        }
+    }
+
+    if ( bank == reserved_mem->nr_banks )
+        panic("No static heap memory bank found\n");
 }

 int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
--
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 07:54:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 07:54:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165585.1492317 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLd1F-0000LV-L6; Wed, 19 Nov 2025 07:54:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165585.1492317; Wed, 19 Nov 2025 07:54:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLd1F-0000LO-HO; Wed, 19 Nov 2025 07:54:25 +0000
Received: by outflank-mailman (input) for mailman id 1165585;
 Wed, 19 Nov 2025 07:54:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+YCl=53=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1vLd1D-0007zV-VK
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 07:54:23 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id ed6da2df-c51c-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 08:54: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 3369AFEC;
 Tue, 18 Nov 2025 23:54:00 -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 B2FA53F740;
 Tue, 18 Nov 2025 23:54: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: ed6da2df-c51c-11f0-980a-7dc792cee155
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 v3 0/3] Third MPU Series
Date: Wed, 19 Nov 2025 07:53:48 +0000
Message-ID: <20251119075351.3926690-1-harry.ramsey@arm.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement `setup_mm` for MPU systems. This variant does not require
setting up a direct map.

To reduce code duplication the common initalisation code for both MPU
and MMU Arm64 configurations is refactored into `setup_mm`. Platform-specific
setup steps are now handled by a new helper function `setup_mm_helper`.

Harry Ramsey (3):
  arm/mpu: Implement setup_mm for MPU systems
  arm/mpu: Implement reference counting for inclusive regions
  arm/mpu: Implement ioremap_attr for MPU

 xen/arch/arm/arm32/asm-offsets.c         |   2 +
 xen/arch/arm/arm64/asm-offsets.c         |   2 +
 xen/arch/arm/arm64/mmu/mm.c              |  26 +-----
 xen/arch/arm/include/asm/arm32/mpu.h     |   2 +
 xen/arch/arm/include/asm/arm64/mpu.h     |   2 +
 xen/arch/arm/include/asm/mm.h            |   2 +
 xen/arch/arm/include/asm/mpu/regions.inc |  11 ++-
 xen/arch/arm/mm.c                        |  45 +++++++++
 xen/arch/arm/mpu/mm.c                    | 112 +++++++++++++++++++----
 9 files changed, 159 insertions(+), 45 deletions(-)

--
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 07:58:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 07:58:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165628.1492327 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLd5F-0001j3-4J; Wed, 19 Nov 2025 07:58:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165628.1492327; Wed, 19 Nov 2025 07: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 1vLd5F-0001iw-1L; Wed, 19 Nov 2025 07:58:33 +0000
Received: by outflank-mailman (input) for mailman id 1165628;
 Wed, 19 Nov 2025 07: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=VtRO=53=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1vLd5E-0001iq-5L
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 07:58: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 8931a227-c51d-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 08:58:29 +0100 (CET)
Received: from DU2PR04CA0156.eurprd04.prod.outlook.com (2603:10a6:10:2b0::11)
 by AS8PR08MB5989.eurprd08.prod.outlook.com (2603:10a6:20b:297::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.20; Wed, 19 Nov
 2025 07:58:26 +0000
Received: from DB5PEPF00014B8F.eurprd02.prod.outlook.com
 (2603:10a6:10:2b0:cafe::16) by DU2PR04CA0156.outlook.office365.com
 (2603:10a6:10:2b0::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.10 via Frontend Transport; Wed,
 19 Nov 2025 07:58:25 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B8F.mail.protection.outlook.com (10.167.8.203) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.9
 via Frontend Transport; Wed, 19 Nov 2025 07:58:25 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by DBBPR08MB10508.eurprd08.prod.outlook.com (2603:10a6:10:53c::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 07:57:52 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc%5]) with mapi id 15.20.9343.009; Wed, 19 Nov 2025
 07:57: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: 8931a227-c51d-11f0-980a-7dc792cee155
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=wpDvLZOSLsP2hCkPtvFw4HuF26Asz6pEPNCy1UpYnG5Ee0RbA2ZbCVaVM85KS1owHE+SQ+tgV/KPzABwAzXUfhehj3BTXxTOwqBUfvAMlfASlRrb1QaWQuL1+bl9Zwcf97UdFbyYssjxonhuCtSE+/HdOShlYhBhhWfZmqafBuBsnP2OYRHx4gFstAm9+A6C13M/jTLzzzyki1Q9RkImT4A889tCs5g9E08dkgKk8VPj6NsLCHLubq25Rz3Dy/vYYRQ7tAakI077fim9DBp+gS01+eSS5viug9OxIMQ5elCoDUHi5kmsqlW0ZLv8mSWl3WgRbRGEezM/MlAPeppsBg==
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=WF+r6PUhu1ZO3ZLsX3xu4uAvR/+8l+dWM47DUPqgtIA=;
 b=ZCtVgS/6FrVZJ97lRSwMZrPkQCI109rX9L96vKwI2/qdMYDk7Q+UcQNVqZQ2t776KxtmSCzjaI/RNUqXz4Up737vRX1ZOXX4ivNhGwXn+puGDx494GIjE9CeIK7nzxElZ0qQkIH2yIyy39aJrqWEe/39dik4as+924iL53tppgzqfckw1P9vgAP7bMFVIl8R0kH1pX4aNEkhjnFeS1LsxRk3rSGuokdR1dkKYhbCwY73/CBP/9XHfEZ+LVZ1A+NERv7ztyj89j3L3Re6x6oFC3tyUhB/K3oltzwm2891nXTPbxCuIIb/S7wP7Z3I0AS5Te9fX/31KRj//RyxFjafuQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;
 dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WF+r6PUhu1ZO3ZLsX3xu4uAvR/+8l+dWM47DUPqgtIA=;
 b=cJQrqNGa6uOP4jvl74s2qtGwNlraoHp6ha/l2slACxDvbwekOG/CG8QNv1zHvrl4a3YhX+AfeJHqREQE3Z7EUnQW4cnMfzf/43eu51IetCWkOxq85x3PGlxZw10AgdR4wUbGb+mWlpi5zYlIGwRCKHIb0y4BUfZOirQoqv3DgVc=
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=AEbs09UBuaqn7U1Ev/uBlnvlZe96n5eweXkCLykImir41YfyeeaC+cEbbkkKoa4oqWkA9wFspOpzQNBRkxfa+yMhXDyL+fCeHJUe1WMfeL1tiwL9bUBQInIDYoxtYdpfD7QPE6mg3fVJZW2gNoiIq6JddiljdVaQz81j79x0lcGQuU17MGDjZMwdw1GwrlYMWZbFKYDVnDr2YJeJ5P+uDR7H7K2ZeHmihI6RfL7VXMXwQ08rWtwMvPGF/vEfblceAABoi3bwdbHRg6vUkg1qEouwCHb0T8KvYks1f/YKx4EIooK8Xs+ZshKqLiZB9IKBhf1WfV3fhv9U5RmwTrkzzw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WF+r6PUhu1ZO3ZLsX3xu4uAvR/+8l+dWM47DUPqgtIA=;
 b=ncz+ATZP8cUP+RHX1pjHicPhvWsMzftOEM7mJttDCyLID+wCVJAXi9cXNeokHXDGkrJureMlDXC34uHoLyra0ySN3FAL7ZK5dZQLlzk0TZq+g7n0dQflCsy92OF56gG33WsVkbLfdVNN2duhs/DRe5mmZ26yxLc4RkGpVdYkp43Blj65CIV53r4HKCjsWcoio0a8faXSB2xSvYZgEgomg259IXfzBz2CCf5dXNoO7CxLx7hpx3yo1Mn1q/u7Tg8i/myvq8qheZIx6ImvFgsTZaDel2399CgqIp6pnq2sl4vmBltZaReviKdSTri3czi837e/BpToyfQhSZirbLT2IA==
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=WF+r6PUhu1ZO3ZLsX3xu4uAvR/+8l+dWM47DUPqgtIA=;
 b=cJQrqNGa6uOP4jvl74s2qtGwNlraoHp6ha/l2slACxDvbwekOG/CG8QNv1zHvrl4a3YhX+AfeJHqREQE3Z7EUnQW4cnMfzf/43eu51IetCWkOxq85x3PGlxZw10AgdR4wUbGb+mWlpi5zYlIGwRCKHIb0y4BUfZOirQoqv3DgVc=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Harry Ramsey <Harry.Ramsey@arm.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v3 3/3] arm/mpu: Implement ioremap_attr for MPU
Thread-Topic: [PATCH v3 3/3] arm/mpu: Implement ioremap_attr for MPU
Thread-Index: AQHcWSm12J9R4GyDBUGq1Kes7XNCkLT5ofCA
Date: Wed, 19 Nov 2025 07:57:52 +0000
Message-ID: <F8E5188A-6ACE-42B0-B579-737D89F898E4@arm.com>
References: <20251119075351.3926690-1-harry.ramsey@arm.com>
 <20251119075351.3926690-4-harry.ramsey@arm.com>
In-Reply-To: <20251119075351.3926690-4-harry.ramsey@arm.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|DBBPR08MB10508:EE_|DB5PEPF00014B8F:EE_|AS8PR08MB5989:EE_
X-MS-Office365-Filtering-Correlation-Id: 9f1dd2e6-339d-44c3-25a5-08de27416b44
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?N2N1dHhJdXpxMjNnUXJaUEZkblZFWTB5cjVEUDhzbDZGVDI0YWVjRUsxbTB6?=
 =?utf-8?B?ZWgwVkJUajRYK1ZROHR3S1pOYm9tTFhkZG1Ob2dRc1V6VXR6R1A5ZDl3Y2RD?=
 =?utf-8?B?ZjhnOUN3RnNya1JlRjIrRHkzRjdXWXhMbEIxOEdhUFlmUGVKQ3VUNlMycEhF?=
 =?utf-8?B?NzdTenI0aUx4Ty91T3NRMTZLLzgzNUpRYkRMZFhReUhBQWVSS0FZejBuWWl3?=
 =?utf-8?B?cUYzSnpNTHo4YXYxMnNGR2hxUGJoeDNzUUo3NXZkODU2Y0FhdUVhVWE0bklu?=
 =?utf-8?B?MnJFOXRUL21QdVZCcXQvWjRKRFVtYkJacS9TUFBtWFlRck9uR241NzN5T0Fi?=
 =?utf-8?B?LzllaG5vdlE1NEQ5US9VTnovVVkwUCtFYk9wdFpEWVB2RDFGWVMxK1h5UVZG?=
 =?utf-8?B?QkFpaEtkZnhYK0Q2VkozMzl3NGdndnhyNWZDVCt0RmZLL0lUQ081UXBvMTRv?=
 =?utf-8?B?emdZc1Q2RmxUMngvaGttSjh1ZnFPM3MwOW1nOWlwOVVvVjkzcEpKRWhYY0Jp?=
 =?utf-8?B?L3FtRUVBOUNRSmsvQ01xZTYrQU9LN29HaVBxNU9kT04ySHZoMTlXZUpJTFA0?=
 =?utf-8?B?bm5hRnVGZUlIbmRyVi9Ya0p6UnUxQ1NobGVRa1Z2SDVzSlVpdGk4cEhWZld2?=
 =?utf-8?B?WDZMZkZOQXNTU0RBZ3IxUFJKMWUzRVltSzQvTUJiNSswcUtvWUxCdTNJNmx0?=
 =?utf-8?B?dTMxd3hseUU5cnpucFYvSkh0THNTSXRLdFJFZlpUVDA3Q0hUcDRtM1o3SEgz?=
 =?utf-8?B?K1ZQRWFZL25QWk9Wb1NkZXlVdGRiTVh4MEIwWll6SlRKSENKN0ZjQWFBSU9i?=
 =?utf-8?B?VnhqWTVHWjgvQlRRYjEvL0hJYkRnSEVQOW1ZUStTdUsxa1ZnTzFjbDlnQlpV?=
 =?utf-8?B?ay9vd3djaEtsb3VWMUh6azFnVlNXTDRQS2VucVN2R1BaeTZFdEJyWTcwcTFG?=
 =?utf-8?B?YlBUWFIrYVNWRXVQM1hDVVBRWi9ncGpoMXZWaXQrcXY0ZWVuRk00U0xwcFd3?=
 =?utf-8?B?dTdtanVwSzVOMmNQQVlyRUdQQTNPTFV6RUcrVDlMYnFycUxlWlkxbndheWdh?=
 =?utf-8?B?MVBGWWl1ZjkzaFJwV1BubWVGdWVIRzJsY3FKdVBtclVGdzJDZVE2MGxOS2Rx?=
 =?utf-8?B?Y1dSMEoydnlRQ015b2NRV2VuSXoraFNZVTV6KzdUOEF4aUMycmNmYWtVUFdW?=
 =?utf-8?B?amYvck1BSlZlR2VvRnZabXA5aVVuZkFPTXZnWWpXZnZVbWZSbm9QSEtPSXl4?=
 =?utf-8?B?N3RERTUrcDRlZ2V3VHFETk5URDJQcGZBcjZOU29yc1ZqK1F4bGIwQUR6QkR5?=
 =?utf-8?B?V3AyTW5ka1oyeXBQRHJjK1ZlaXlURXhuZUZQdkI5TDJpMDI2WjNQeklLbzRM?=
 =?utf-8?B?OGdRTFppSFM3Y3g3V1VRRTBZcFJCT25LOGdPbU1makQzQ0d5SGFhTTg0azIy?=
 =?utf-8?B?ZElLc3BxVnZaemtqVWYxWENodlZXTXVkUURiMzFiQ0h4S3c0Q0JUVWdBempq?=
 =?utf-8?B?UjAxTjRkZEs3WkozWTBwQkgyOUk0NnNLNXlEWHY0RWpqQUdBM0ZNRklrTnRS?=
 =?utf-8?B?QmpQQkphSFlVenBoV1B1MDByL0Z2akcwL2tMT3k3OEpLZjBuUVlyRFo1cjZl?=
 =?utf-8?B?aGR6L2ZrckdjaWkvTFQxeEhyT1BXb1RvZllXWDZCLzdaNTI2bStxZm5jNm5s?=
 =?utf-8?B?aUlGVHoyMTNOU1RIeTYyYm9sb2VIU1RFdExTSnFIL0JVUGx4bFBKVlkzcm1o?=
 =?utf-8?B?UnR6Y3V3bDM0ZFFjM1AvNzRHTkVXc2c2T3BBK3IwNkxJN0ZyY2pXdEo3QkJk?=
 =?utf-8?B?NGIxcjdPZ1hYZXRpaW1aVmdtcjJ5SHFYZktZanMvSmFvMm5iL3hPeXNIZHJ6?=
 =?utf-8?B?bWNUaUhaN3U2dHFCOFY3WFlFRmpZWTFoc1hISnQrSWZiNmQ2NzVWdGFRYTZH?=
 =?utf-8?B?Z3c0TDhBMnFvR29JOTJYcVdESGs0TjVnWTRyQ01IWEFNeXh1NzdiMkVEQU5M?=
 =?utf-8?B?Y09QRkROMUkrMFNEcDFtMUo1YlFYZVdsSjlEZTM2emliMUkzS2gyTW5vRllm?=
 =?utf-8?Q?4eEPQH?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <54D2F04C5A904E4E9AC9E4FBEE23CDA5@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB10508
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B8F.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	6618b684-7bea-4e43-9f5b-08de2741573e
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700013|14060799003|1800799024|35042699022;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MGdYTzlSTGxHcVpia0pKMXl2M1N2ZEhEZzVya0J2K1g3b2FPVmI4K2lYcDI2?=
 =?utf-8?B?SWpIcWdvclBqa3BJL3QyUnROOGdKK2JzaE1LcVh2eEFoU1N5WklORjIrNGJq?=
 =?utf-8?B?R0VGc3hhcVBoUW51ZWFzL2J3UkxqbzRxTDVnSVJPKzFqbkFYSzE1aHdzY2FD?=
 =?utf-8?B?eFBiWlZ4bVZnYUJkSTg2TkdPOW1XUTZQU0NyVFh3R1BJQ2NVQjM0NzVHemJM?=
 =?utf-8?B?WFp1d0hsNFpsc0NwVVdMekxraSs1WTFyaVJBTVhiQWtGTDlkaFB5aTk4Q091?=
 =?utf-8?B?T0FDTmUycEl2MXVKbzdoeFd1NDFJOUk5RmtKcStDeC9NTzllN1U2aHRuNGNZ?=
 =?utf-8?B?eW5NRGlvcSt6OUFpWEczYTVaVFlIak9WOElrdUc4T09Xdmo1Q25iOVlZNDFY?=
 =?utf-8?B?d0tVUklqOU5SOGFwRTI5UlBLZlBOMWt1VTUvU2xBQ1JjQ3BGUm16VjFuVDFO?=
 =?utf-8?B?enpJNFMzckszSjI0OTVjV3BaZlUzeTkzUGcrYU1HcHJQT0dXRWlnN0RlYWo2?=
 =?utf-8?B?b0FHQmFqY2h6Qms3bkV4bS80SUZZQVZrYzRMTjVOVUh2WThFK3g4NzhCei96?=
 =?utf-8?B?cUIvV0JicmpTbGwvYXVUWk42Q0prZUk3Wjc2S0V0OXNHT0s0aWNLMU1TUmZN?=
 =?utf-8?B?ckc1azgyVkh1TWNxT3E4NXJLc3dFcWo3WEgvUTQrWU1lUFRwMXdPQ2d3UkUw?=
 =?utf-8?B?UVhUSVhMSWNCTjZUMmJQVVgvS2dKbDU0OXNhY1gzSGZMK1dyQmJqZTJSODg2?=
 =?utf-8?B?Y0xQK2FwTG9NT2Zqd0lSaWNqcTRkQWRvOGV3MFFhS2JRQiswclVnY0FJNHZM?=
 =?utf-8?B?VFJUcUx0c2FIZVNkMTJFdlNVWGw0RVRIb1k5UXpLTDRKSDBwQUpndDNCTk16?=
 =?utf-8?B?cFJYZ1Nqb3J4ZjNQSHRhY0piL042dEdheUZaaTBxMzJ5aXZYM3RxWUgvTnUx?=
 =?utf-8?B?OEltOGZjSEZXS2xJaUJwZUlxeFpvZ3FJRzdxWmc3M1JJNHZMRUFYRUpncEpx?=
 =?utf-8?B?WWZGeXlSTzA0WnVaN2JFRDJuLzAzakVqczNrTkdNbElpTmxkL0dIblhHWUJE?=
 =?utf-8?B?VVRxVE1wSjZRdkNxc1d4SWRibVRDbVJjYitTZm0yUFNVdjBqSm5sNklxOVk0?=
 =?utf-8?B?UzA3ZDliUWdWWm9BWncxd3dsN0FUM3BDamZjbERLMUlhSmgwTjQvQmliSmxI?=
 =?utf-8?B?VVVtNGxDV2p2VXgvNUpOZmxyUlJtaUNJM2JWKzhZa3dtaU80cXI5ZmUwVHF6?=
 =?utf-8?B?Q012Ujl1a0V2bzNucEh4UVdoSGxSYk1lV09JRkVlY3hVMVFLUnBFaEh0ay8x?=
 =?utf-8?B?NGcwbXZtc0xVc0NvS2ZSMjRoVG5FQkdLMHBQN0JYNkd2OXJjUUZwa3ExLytu?=
 =?utf-8?B?bm1BVVkxTTZ4WlhLSjdER3lydlVKNDN6ZHVhRGRJSFRRUm1ENUdWNnUrQTVP?=
 =?utf-8?B?UHRLVnB4blVqVi9PekFRUkFNU2phRlh4bW9Ka0JMN01JTXNKemdNeGloODM3?=
 =?utf-8?B?aUtnSk1jMTZ1cVhILzBnSWlwV3lCVG4zbkJYa1JGNzF4a2ZrV04ydm5COWt3?=
 =?utf-8?B?Tm44MkxQZDlQVHEzNVBlUGdHN0gxdTZxZ2gvUHFEQ0NvUnRBNXlVak1HdlB6?=
 =?utf-8?B?TnpqKzc3RGtIZTQyZjFEYmZDMXBiMXVrWTIzNmcwNE1INk5OS3UxTUxodWdz?=
 =?utf-8?B?RVpWdlhtRzcwZmVSZk1LRGVHcVV3OThKalRmZ3ZoRUxvZnk2VmI0VE9XZE1H?=
 =?utf-8?B?M2R1NWlQOVhiR0RTVTY2MEJmbTVYMmtSc3lJaVRYZTF3Vk5WaTN5MkU4YUdj?=
 =?utf-8?B?ck9oSFJDcGhqS0c0b3hjaFVXeC9UVXR1OStnc1RrVnl3OGdtazFLSzBldnpI?=
 =?utf-8?B?Qk5Ca3MrUXd3bVJxRUovNS82NFk0MkprTTJTeTV4dEYwVjIrVitlU3o2OGFS?=
 =?utf-8?B?ZC9sOTFDS015NlhRWTBNeU5neGFSdXlpdnQ2YVZVMWtEN2xyZWZlRHRUSVVi?=
 =?utf-8?B?cEMwOHVGMU1rVjFNeWJSRWs2dnlGSWYvWTkzOE1TWVRYekJHc05qRlExVkR6?=
 =?utf-8?B?dUJsZ1U2YTY4MzhRRkVQbVFrUWM0M3p6bWw5SE9TbUNuQVlBYUF3OWkzbGNF?=
 =?utf-8?Q?FLCI=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)(82310400026)(36860700013)(14060799003)(1800799024)(35042699022);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2025 07:58:25.8154
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9f1dd2e6-339d-44c3-25a5-08de27416b44
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B8F.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB5989

SGkgSGFycnksDQoNCj4gT24gMTkgTm92IDIwMjUsIGF0IDA3OjUzLCBIYXJyeSBSYW1zZXkgPEhh
cnJ5LlJhbXNleUBhcm0uY29tPiB3cm90ZToNCj4gDQo+IEltcGxlbWVudCB0aGUgZnVuY3Rpb24g
YGlvcmVtYXBfYXR0cmAgZm9yIE1QVSBzeXN0ZW1zLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogSGFy
cnkgUmFtc2V5IDxoYXJyeS5yYW1zZXlAYXJtLmNvbT4NCj4gQWNrZWQtYnk6IE1pY2hhbCBPcnpl
bCA8bWljaGFsLm9yemVsQGFtZC5jb20+DQo+IC0tLQ0KDQpMb29rcyBnb29kIHRvIG1lLCBJ4oCZ
dmUgYWxzbyB0ZXN0ZWQgdGhhdCB3aXRoIHRoZSBGVlAuDQoNClJldmlld2VkLWJ5OiBMdWNhIEZh
bmNlbGx1IDxsdWNhLmZhbmNlbGx1QGFybS5jb20+DQpUZXN0ZWQtYnk6IEx1Y2EgRmFuY2VsbHUg
PGx1Y2EuZmFuY2VsbHVAYXJtLmNvbT4NCg0KQ2hlZXJzLA0KTHVjYQ0KDQo=


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 08:00:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 08:00:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165646.1492337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLd74-0003iG-LH; Wed, 19 Nov 2025 08:00:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165646.1492337; Wed, 19 Nov 2025 08:00:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLd74-0003i9-IZ; Wed, 19 Nov 2025 08:00:26 +0000
Received: by outflank-mailman (input) for mailman id 1165646;
 Wed, 19 Nov 2025 08:00: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=6cZ7=53=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vLd73-0003hy-Cv
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 08:00:25 +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 cca4dddc-c51d-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 09:00:23 +0100 (CET)
Received: from CYZPR19CA0014.namprd19.prod.outlook.com (2603:10b6:930:8e::6)
 by DS0PR12MB7678.namprd12.prod.outlook.com (2603:10b6:8:135::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.22; Wed, 19 Nov
 2025 08:00:18 +0000
Received: from CY4PEPF0000EE37.namprd05.prod.outlook.com
 (2603:10b6:930:8e:cafe::52) by CYZPR19CA0014.outlook.office365.com
 (2603:10b6:930:8e::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.10 via Frontend Transport; Wed,
 19 Nov 2025 08:00:18 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CY4PEPF0000EE37.mail.protection.outlook.com (10.167.242.43) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Wed, 19 Nov 2025 08:00:18 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 19 Nov
 2025 00:00:18 -0800
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 19 Nov
 2025 02:00:17 -0600
Received: from [10.252.147.171] (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, 19 Nov 2025 00:00:16 -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: cca4dddc-c51d-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EKC9ScUUWAbgUDrIT7IJDgTEubK+UhSzSKV34k0v4+GN38k7dI7EUG8Fo7zDFMYppiQbTnEJE4lHvnIkyvILqwMP0qvZx7B9LJLwNUxXmuabDxPq98oIpmmpx5FVNFFXLPgttAhG2p/zRmP16oocQhzjqakBQxyQutFrWHRAHyNnaJFur2MIJGF8rsQiC26Hwrc3A1+WIKJGUtBaGK+SYIrQ2akT2Jxtk1K6tikUOtZHJoRr3MsPFGvdHQr8I+nI52bMvera92oER574NHa8Qf9561SeQHogQMYWR0/G2mlXsGSVUSHtkbZfqhBbxxkHz/4ND/otj3mxtDV5uVgFsw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/pnjg58ED52tQYY4R8dFccSNs/F3BvlCXEtxSOFEnWA=;
 b=zCOqKpQv/diU/ncsheywEMgb27+zmHqiHKvuMIP3yErTThRrjvRLLV7/y5PdljaDc10DipWSCaKZaV4I5Le9ndztjwYUngV0Hk+xemIWnnyYD2RTSLL4wQMqSzxTSjzMhXoTCBXSfvMNgOqMblFO4xMFbC5NUBpjadd3wmaFlJWqVEWS4lGdD/N1tvHt+XaaRairbsavtbjJDf3ficFIBjpv2wEEleROPeysE2clAvAj3k4GsIKt5pGwhCLRoGph+zRPTM536+c2AalY8Wsb8M75TKhJo4EkyOJVOqDiyKVTXEAm8Iix/5RAfeue3TZGpeu1eZpe4Nkd9hU1oH31qA==
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=/pnjg58ED52tQYY4R8dFccSNs/F3BvlCXEtxSOFEnWA=;
 b=upmi6mqmFSjo/d/0BpDG474X7UrKysl+8avOf6P0I3QAg+BP7yNgX8D7wZ2alOoMQK+hBS9Wonos8G1fZ4Ee4gpaTb65UEp/B2Pcgwzlc6lkVKSkDKcQ1pQBu2scG39IzXaLMO3nDqhnmVzaXqFNJFeISSUbKzvbKYF1o9gOlFE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <5fb909a9-7dee-4f31-adb3-d0c35d1ad2a2@amd.com>
Date: Wed, 19 Nov 2025 09:00:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/3] arm/mpu: Implement ioremap_attr for MPU
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: <20251119075351.3926690-1-harry.ramsey@arm.com>
 <20251119075351.3926690-4-harry.ramsey@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20251119075351.3926690-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: CY4PEPF0000EE37:EE_|DS0PR12MB7678:EE_
X-MS-Office365-Filtering-Correlation-Id: 9568d600-2d65-4e03-f968-08de2741ae50
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?d0V6VUhndVJ6NWpqVUF1aDV5YWFXWnJraUFxd3FOL2RFa2Z2cG9mZENYUlZD?=
 =?utf-8?B?MmxuaDNVTThZUzlhbnBUZ3B6YlVDb0lxdHp1bDB0UEtiVE0reTRZcWRpZmRs?=
 =?utf-8?B?U25LTHdYWjJKRzZ4MnFqL1V5RU1YS2UxeWd2Q0VvaTNldktTZDFQUmRBeFpm?=
 =?utf-8?B?SFVJQmJoNXc4RkNiblViVC9DRlhDTERNT3RocEFFUHV3NnhFSFpqWkxMdkFq?=
 =?utf-8?B?eTlaUUJNNlg1WHpzakxDOU9rek1Wd2xaVThHMmtKOGRRSWU3NmdhODVmNjkx?=
 =?utf-8?B?S2JqTE9NaDVqWG5WYndZK2ZSR2ZSMWtmVWZvMENJY0ZqUWNTL3VTMDZyTmZG?=
 =?utf-8?B?cGsrdVByTThQSlN1NGkwSStJZS9uUDMrODUzMWMzaTBWKzNtRGZnU0dNbW5W?=
 =?utf-8?B?Q2NMZ3l3MVBUZkpyRjQ5V3JEejM5bVpDR3lxQmVkT3kyZVo4M3A2ZHE3TWsz?=
 =?utf-8?B?TFY1c3pwQXIwb3BIN1ZpUHZMQTFCRndHd3YzTWltRW5SQlk4VWl5UENzZVpz?=
 =?utf-8?B?eVRvQ2FqckZ6N1BEUnU0TnlINkY0djMvRGlJMWVsc2dFTFhLQ3BSczR5YmxH?=
 =?utf-8?B?MDZJVVZLTmlpTWtBY2M3SFBoVHNFZittRkxIYnlJc2krc2M0R3oveXBlakR2?=
 =?utf-8?B?aUtxUWlFN3FBc3MvQXVya2Jia2hDcjVkT3o3Z21IaVZUdm9kdmM1MlZPb0ow?=
 =?utf-8?B?bDFBZ1lVOVVwTWY1TjFrVkJQQjVXN3Y3aExKT3BUSXU3S2R0eUUrNlNkaDUr?=
 =?utf-8?B?c0JtQkNSRG1KZmU2anVLUi9DOTcwQmh3WG5QSld5S0g5MDBrU2RNcHRtaXlR?=
 =?utf-8?B?YzYweGpOUVM3UXFUQmVWU1RlWVNrc1NPZE9lNVJvMVJJWXk1Q0NZRndpUGJ5?=
 =?utf-8?B?RTByN2RXQXYyRVpITTJ4d1hzVzVxRTE5VXYzYkpPa1pQM3NkVDcvMDJzQUM5?=
 =?utf-8?B?NElnRDdIZHpUcFhobGsrNkJ5b1hCajZEOENlOThoNmgvZTVQdTRGSWZMMmho?=
 =?utf-8?B?enI1L0FxdFRTMWpYcEl5bDZZaTZrSVI1a0FnY3B5dHJhdWZrNHd1TVZZWUJy?=
 =?utf-8?B?QUdwNHBWMVNiK0pJUzFTZVY5WDNTY3V3MnZjKzdTNU00eThFOHhQK0UxRFJ4?=
 =?utf-8?B?cVgyS2xqWVkwVnZhS1lUYVZaQWNnVlI2cWY2QWFZZDI0YVZYZDVuVjdUY0Nx?=
 =?utf-8?B?YkFsaSszZVkrZy9oZUFZSzFoaXJPU3QwWURtSEcrREVIWXkxSEwzSEoxK3ln?=
 =?utf-8?B?VGQycWNmR3dQM04yR09VdzBQcmtENDlsemlKRSs2ZFVNNmtEWHF6YitLdy9S?=
 =?utf-8?B?cWVWZFhoTVhPeHhYMTVIYzNBTk11cWI5Rll2Wm03MlhsSFBFREpWMEZiZmF4?=
 =?utf-8?B?YytrTUZHcy9qSXF0OFNZSUoyT3ZOL0ZXR0NYdDEwRktqYmJ5WUxsOXFHNXFW?=
 =?utf-8?B?ZGREbVh3aGI1b05BaHFXSVg0MzVINUdEK1MzN1o3dk9pbDZJajNkblN6dTg0?=
 =?utf-8?B?dXVWUHlrczdnKzVQRzc1a1NJcnJoVFM0bFZ0UmxjeGZ6OXVJWU1pa3lYRito?=
 =?utf-8?B?ODhpNkZFVzJnN25ZSDBLVFYxejlmemliRVZaZ0xPamxBQTl4aXBIMytjcEJD?=
 =?utf-8?B?dGFnQXpHN3BTTEdCUDJyNnVUenN4YnkvVXpTVVNBaGI1ZFVhNVV6THV6ZE1G?=
 =?utf-8?B?VmU0dW44YWFycG1SZm01KzQ4c0w3TjVJT1A0eUhZTU8rWTY3ZDJwRUtJTnB4?=
 =?utf-8?B?RnMwcHFsd0t2aW1HR2JDVk1PejJwZU9YYllncWpFdnJVTWJTOUgxanROWnNt?=
 =?utf-8?B?VE00SzNGQ1Yrd2twUmFQMnp6OGtSdC9vcnU0aVQzbDYreHF4NkRQeEFKWDVB?=
 =?utf-8?B?NnYrSHdPY0JFWE5NMzU3VnROekxlb0g5aU9qb0ZUSlRxVksvVVgxQ3h5V0FV?=
 =?utf-8?B?N0t4OGo5OHVJbG5wY3J3NmdPUUduV21ZYVhZRFJPdFhocGxkZ2FJeSt3Vjh0?=
 =?utf-8?B?U3dpckJ5OUxPWWtvQlpGU0J4TitGeFowNlE4Z1RGVFZiZXlNQnZJSjBGZS9Y?=
 =?utf-8?B?QUxFV2hSSUV3aE9TeUFFbm43MnpPVlhzRmFrR3BzQ1JuNDhYaUJ0Zm1rSlR3?=
 =?utf-8?Q?2KAk=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)(36860700013)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2025 08:00:18.3255
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9568d600-2d65-4e03-f968-08de2741ae50
X-MS-Exchange-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:
	CY4PEPF0000EE37.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7678



On 19/11/2025 08:53, Harry Ramsey wrote:
> Implement the function `ioremap_attr` for MPU systems.
> 
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
> Acked-by: Michal Orzel <michal.orzel@amd.com>
> ---
>  xen/arch/arm/mpu/mm.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
> index 29dd8c4622..f25560d746 100644
> --- a/xen/arch/arm/mpu/mm.c
> +++ b/xen/arch/arm/mpu/mm.c
> @@ -473,8 +473,13 @@ void free_init_memory(void)
>  
>  void __iomem *ioremap_attr(paddr_t start, size_t len, unsigned int flags)
>  {
> -    BUG_ON("unimplemented");
> -    return NULL;
> +    paddr_t start_pg = round_pgdown(start);
> +    paddr_t end_pg = round_pgup(start_pg + len);
NIT (can be done on commit): There should be a space between initializers and
rest of code. I missed that previously.

~Michal

> +    if ( xen_mpumap_update(start_pg, end_pg, flags) )
> +        return NULL;
> +
> +    /* Mapped or already mapped */
> +    return maddr_to_virt(start_pg);
>  }
>  
>  /*



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 08:07:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 08:07:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165662.1492346 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLdE0-0004dg-CF; Wed, 19 Nov 2025 08:07:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165662.1492346; Wed, 19 Nov 2025 08:07:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLdE0-0004dZ-94; Wed, 19 Nov 2025 08:07:36 +0000
Received: by outflank-mailman (input) for mailman id 1165662;
 Wed, 19 Nov 2025 08:07: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=nJND=53=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLdDy-0004dS-JX
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 08:07:34 +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 cc8efe2d-c51e-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 09:07:32 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-b735487129fso1027541966b.0
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 00:07: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
 a640c23a62f3a-b734fed90c0sm1573939266b.65.2025.11.19.00.07.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 19 Nov 2025 00: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: cc8efe2d-c51e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763539651; x=1764144451; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PVx08SGiWWUV7Lhm2cQgXuUgrX4KHmWFJc6GnQW5Y5o=;
        b=eaIk0/Xthzl+Pft4tCBJspo8qPfuspRleFbjztz+DbFAMVK+Fzt8ybVLXLvFTKXmZ7
         R9rIsQ9yK98knYPxYjlrFqWishG18s6vQIb9tt8EjMzxkHXIXR1WUlXrmv6lYF5Lb5my
         jYtocC8LgFSNVE72Tsf7KKaM8CoojqEST4CWoOW6hLYhdmZ8oKeyra4JKLk+4Jo+F7Jr
         EgH4taOf86ugbUcv4sTOsUWWyuVQD8lNDAbcmmB9xA2b5zXY7fLpdO8d8e3SJm3oYfwq
         FeH5ZAZJyVjHNWW0vH3ZaW/eZDnggNC23g4x4oxXe27VuAMm0J+z/+FUPkWRc+7JQSYN
         nqpg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763539651; x=1764144451;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PVx08SGiWWUV7Lhm2cQgXuUgrX4KHmWFJc6GnQW5Y5o=;
        b=MLg1mKn2Glbvag1H4s36I8uvHjW2GZqXzIiWUGXuMVDOZ556X9C+Rvq1dNj+AXJzU/
         TkswPb9cyykcoc/kqlqKMTo6SFh6094leDJp2dyIMfKfxF/sHaABBPw4ncLSudcI0epp
         C7FGSWSO8fYIPspVsQIL+5A/kKgrc6mqxKh+XoJjgqxrLxkyIhkm5LJFhe0v9dDzTYv1
         DIP1oHqfKdZQF+Tyge8pHbeChOtc7uJ45EGu9Oj4ZO3rdowTl5/j7+ePM8/RbTOg0eK7
         kxHbSSFEw0DPXB5GfrCU4eukC9z3ud9ImDT+Yhj20/1w/zvyWyiTKo4dYDatbw+rzysI
         gyrw==
X-Forwarded-Encrypted: i=1; AJvYcCXiReYXu6G0JfXWLO+j6Uo+kUEE4TzX/e5sud7LVPKuDTJ30TA/pmrA+7mvHHvFsfy93lKFq3UdYK4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxHQY6Btdb/rhlnv7roJXLqcHAXickLo2SmJGOaxI3gde/ud548
	jHQMAZMOwM3/2xcMcWMjeq6ugx/FuTO/ACKIAUM6MssG7DphixLMZkjxTqqi2/rhoA==
X-Gm-Gg: ASbGncvTYzutYdNIflXxwNTKvojaW2tyuF4OYzrUOCd1jvvDJnYLeQA0OARibtSTSW0
	F7ExHd5wPKQ85n7cSoC1D8E5OJl2wKFI+miFP7MPeZmRJd98vI2k/PlbHDFqdJTYU3DGXi6dNa2
	i/d6xxMClRiv83iB8JQQrtHNfp8IfcGStrmI0NTWskm6o8cVt4QHJdnXoBARwBI8gmg3mC9LWcW
	9bSXtx8n7BP3Ud72VXbHZu29ikyL+uJBaaExsQuwfSwkuMiBU6c00f33fjluzkkbUyocExB+Az7
	BMNob8vnjh+FZsLA00smPIfPRtqGLzSpBX1/ZA7i/6PEXb3DhFOImY00bnJyHN91H0EEuvqJMvd
	z8kLNNLdE6KQvGKs7TJf9C9VPQ89WUxLxVHKHeOxFL2Vdo5zmEIY1YB1gezjWYpgRyw0ZALB+5m
	5z8d6Vcc7zGpOV7M43ABWNZoSR2Crgx+DuWXH+HKjhil1rXFyAy51+R1obILHbFqMI9xGtEACC5
	3Y=
X-Google-Smtp-Source: AGHT+IErqqIW6EdFTgNsS+vQL2Lg3SPejQuoN9dpQQDsdcgTM/GfipZHIFAV0QbPQV+jwEqr1fUFEg==
X-Received: by 2002:a17:907:1c28:b0:b73:8f33:eee6 with SMTP id a640c23a62f3a-b738f4336b3mr1282484866b.23.1763539651350;
        Wed, 19 Nov 2025 00:07:31 -0800 (PST)
Message-ID: <a4575711-01e3-4fbf-a78e-9997b0c4df3b@suse.com>
Date: Wed, 19 Nov 2025 09:07:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 8/8] x86/cpufreq: use host CPU policy in HWP driver
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: <53ef6c9a-1115-4bb4-bb7f-e2595ab9d0b6@suse.com>
 <c0ed26a0-6e34-4aab-ad7d-44b9f596b1e9@suse.com>
 <b57c2fc2-d302-464d-aaf3-552da0114bb2@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: <b57c2fc2-d302-464d-aaf3-552da0114bb2@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.11.2025 21:04, Andrew Cooper wrote:
> On 18/11/2025 3:09 pm, Jan Beulich wrote:
>> --- a/xen/arch/x86/acpi/cpufreq/hwp.c
>> +++ b/xen/arch/x86/acpi/cpufreq/hwp.c
>> @@ -183,29 +178,25 @@ static bool __init hwp_available(void)
>>          return false;
>>      }
>>  
>> -    eax = cpuid_eax(CPUID_PM_LEAF);
>> -
>>      hwp_verbose("%d notify: %d act-window: %d energy-perf: %d pkg-level: %d peci: %d\n",
>> -                !!(eax & CPUID6_EAX_HWP),
>> -                !!(eax & CPUID6_EAX_HWP_NOTIFICATION),
>> -                !!(eax & CPUID6_EAX_HWP_ACTIVITY_WINDOW),
>> -                !!(eax & CPUID6_EAX_HWP_ENERGY_PERFORMANCE_PREFERENCE),
>> -                !!(eax & CPUID6_EAX_HWP_PACKAGE_LEVEL_REQUEST),
>> -                !!(eax & CPUID6_EAX_HWP_PECI));
>> +                host_cpu_policy.basic.pm.hwp,
>> +                host_cpu_policy.basic.pm.hwp_notification,
>> +                host_cpu_policy.basic.pm.hwp_activity_window,
>> +                host_cpu_policy.basic.pm.hwp_epp,
>> +                host_cpu_policy.basic.pm.hwp_plr,
>> +                host_cpu_policy.basic.pm.hwp_peci);
>>  
>> -    if ( !(eax & CPUID6_EAX_HWP) )
>> +    if ( !host_cpu_policy.basic.pm.hwp )
> 
> I think this justifies a cpu_has_hwp like we have for turbo/arat/etc.Â 
> Similarly for the other features.

Hmm, okay, I can do that. The difference between using boot_cpu_data vs
host_cpu_policy in cpu_has_* is completely that way, which in fact made
me uncertain even for the introduction of the APERFMPERF, ARAT, and
TURBO shorthands.

>>          return false;
>>  
>> -    if ( !(eax & CPUID6_EAX_HWP_ENERGY_PERFORMANCE_PREFERENCE) )
>> +    if ( !host_cpu_policy.basic.pm.hwp_epp )
>>      {
>>          hwp_verbose("disabled: No energy/performance preference available");
>>  
>>          return false;
>>      }
>>  
>> -    feature_hwp_notification    = eax & CPUID6_EAX_HWP_NOTIFICATION;
>> -    feature_hwp_activity_window = eax & CPUID6_EAX_HWP_ACTIVITY_WINDOW;
>> -    feature_hdc                 = eax & CPUID6_EAX_HDC;
>> +    feature_hdc                 = host_cpu_policy.basic.pm.hdc;
> 
> Looking at how feature_hdc is used, I think it should be the bit within
> the host policy, rather than a separate boolean.
> 
> The host policy "is" what Xen is using, so if the HWP code decides it
> doesn't like HDC, then that does want reflecting.

I'm not sure about this. Yes as long as the host policy bits don't propagate
to guest policies. But if they did (and as said earlier, sooner or later we
may want / need to do that for some of the leaf 6 ones), why would the
driver's choice affect what guests get to see? (That's applicable to a fair
degree for the host policy as well: What the driver chooses doesn't need to
match Xen's global view of the world.

>> @@ -365,7 +357,7 @@ static void cf_check hwp_init_msrs(void
>>      }
>>  
>>      /* Ensure we don't generate interrupts */
>> -    if ( feature_hwp_notification )
>> +    if ( host_cpu_policy.basic.pm.hwp_notification )
>>          wrmsr_safe(MSR_HWP_INTERRUPT, 0);
> 
> Again, unrelated to the patch, but why is this a wrmsr_safe() ?
> 
> If the feature is enumerated, the MSR had better work.

Yet as we know when running virtualized ourselves, we can't always rely on
CPUID bits and MSR accessibility to be fully in sync. Yes, using in fact any
cpufreq driver is pretty meaningless when running virtualized, but we don't
prevent that scenario afaict.

> Things like this start to matter more when we consider the code
> generation for wrmsr_safe() using MSR_IMM.

Your patch from August only altered wrmsrns() iirc, hence even if we switched
to wrmsr() here there would be no difference (yet). If wrmsrns() was provably
usable in this case, wouldn't wrmsrns_safe() (yet to be invented) ultimately
be not significantly different in terms of code gen, wrt MSR_IMM? The
difference would continue to be whether there's recovery code; the recovery
code, however, isn't affected by MSR_IMM. Finally, for a purpose like the one
here (infrequently executed code), would the code size increase from trying
to use the immediate form really be justified by the to be expected perf
gain?

>> --- a/xen/arch/x86/include/asm/cpufeature.h
>> +++ b/xen/arch/x86/include/asm/cpufeature.h
>> @@ -115,14 +115,6 @@ static inline bool boot_cpu_has(unsigned
>>  }
>>  
>>  #define CPUID_PM_LEAF                                6
> 
> Doesn't this patch drop the final user?

No, there's one use left in the HWP driver.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 08:13:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 08:13:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165674.1492357 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLdJl-0006X8-WA; Wed, 19 Nov 2025 08:13:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165674.1492357; Wed, 19 Nov 2025 08:13:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLdJl-0006X1-TS; Wed, 19 Nov 2025 08:13:33 +0000
Received: by outflank-mailman (input) for mailman id 1165674;
 Wed, 19 Nov 2025 08:13: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=6cZ7=53=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vLdJk-0006Wv-FZ
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 08:13:32 +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 a13fd03b-c51f-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 09:13:30 +0100 (CET)
Received: from MN2PR12CA0032.namprd12.prod.outlook.com (2603:10b6:208:a8::45)
 by SA1PR12MB9548.namprd12.prod.outlook.com (2603:10b6:806:458::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 08:13:25 +0000
Received: from MN1PEPF0000F0E0.namprd04.prod.outlook.com
 (2603:10b6:208:a8:cafe::bc) by MN2PR12CA0032.outlook.office365.com
 (2603:10b6:208:a8::45) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.10 via Frontend Transport; Wed,
 19 Nov 2025 08:13:25 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MN1PEPF0000F0E0.mail.protection.outlook.com (10.167.242.38) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Wed, 19 Nov 2025 08:13:25 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 19 Nov
 2025 00:13:24 -0800
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 19 Nov
 2025 02:13:24 -0600
Received: from [10.252.147.171] (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, 19 Nov 2025 00:13: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: a13fd03b-c51f-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ndkZj1lG5nOvd9Dg3LfVMEHy+Vae/6dO6oA4hY4W7w5+k1CrnkZayXhr1HiFirOcwFqwfd/4mbvO7Jo7UZjXizB0UQOUfmWe0xXtuOAtga1nUwS/fQ4in8PBsd9Fa6s6ttDc98fb8TDC4WWGT84u5fcbQ2Kc9urKYgkNeYtpTgJwdmrJ/apvN3QSoI0ezmFbKHhnm/w6dHRqbDhsKxpHGiGC6ZmDQqx0slXB0o2JrTjEF87o3nTYbb6jiU45MjNE/4YKAevnVAmrNRfHHCV31u0Fz3zEsy8eDSDjjZYe+/m5Kgr9e6nS03KyS8Bi1nZXzt/VUTRZqahRf0uX4kW20A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=24AyysSNcNIiHw+H3hH98QJaEOrIoTB56CxyVKzb4U0=;
 b=PKI/F2P1SkZtUTzIAgDPBhCX0NOt5PjWqwdEQQpZJVMeDbXS27a/Hn6o8ObuzTeJcW5AOdMrBD1B6mibvMceJXw/8ma3jQ2mxRJ+jILgpQpYJ+VnmLvCEERf3YeO1WQSn0PsT0+YsjTZ3cAX9IJA7G5zZtYg62GYpB13Xart38Vm6GIFs1KW5+Q6ihXpTFQNTyClFWnDKXUBhw8wb/vN7WIxzMWFnTQzVX9tXkXL9hj89xhd8KYiR7C6CVDgP1URlCLsRXBqzmITim6DG9HQ5x7irSLvXdLsmagbZ+ab7fdfyiJmZyr/AlBzlf1BMCqiXkxe8nuY1e4QkSn61MAUiA==
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=24AyysSNcNIiHw+H3hH98QJaEOrIoTB56CxyVKzb4U0=;
 b=qSuJnvmiuPo4jpoa9vUzA901Nrr70XQ1Uf9q5XGI4vAm7bXl1KOy36K7aec+UCfliO3ch4ep5WMNn2QvvkmROHQ8/U4JLGNLWcU0nmet0PJkDyBBgenu6VqBGMY6xOrllynLSPKJBSjQe3nV0Qpqoj2ZfFQIAwsK0HXtchoMg8o=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <6a58e48e-b56f-4139-8229-dd48838de5ae@amd.com>
Date: Wed, 19 Nov 2025 09:13:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/3] arm/mpu: Implement setup_mm for MPU systems
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: <20251119075351.3926690-1-harry.ramsey@arm.com>
 <20251119075351.3926690-2-harry.ramsey@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20251119075351.3926690-2-harry.ramsey@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E0:EE_|SA1PR12MB9548:EE_
X-MS-Office365-Filtering-Correlation-Id: 3e77f041-8865-4896-4172-08de27438334
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?N0srSlNBSW0vVVN5aGdXSXFOdS91N2YwcWR3czJLbExVUGhtaXcwYjVzZW5k?=
 =?utf-8?B?QTd1RW14aVhsYUxGODlqbjh6RThqVTNPdEcwMElIdmQwVEtmVWtOMHEwWkdh?=
 =?utf-8?B?T0JwUjRscU1LYlFsYkZPMXlHMUpISUFVMnFnd2lRVE1GQis1OC83ckNFMkg2?=
 =?utf-8?B?cDhYblBHcjlyMjVmTWpuSEJUWml5ZmlNd0IrZnlabmhlU3pQYnllb083L1p1?=
 =?utf-8?B?djc1WWR5di9JQVBmNnordTNxMWVXZGNyeWFndkp3UFV4SytvS2h1QnJ1L2dK?=
 =?utf-8?B?NkZtUzQrNXVuOVBybnRORCtJVmtHSjM5QXRyWGIzWHhZTC90ZnNVMXREenM0?=
 =?utf-8?B?ZzFmekRsOG5tcTF4dHJWd2Y1V1QrUXU2bHdIelpIN1h0dldvaHRQOEZaNHdY?=
 =?utf-8?B?aVFiM2EzbVhFcjYxdUd6elF6Y0ZDdVEwd3RVZUxuT1IwZjAzNjVTSWxFaEFT?=
 =?utf-8?B?L2p1ckdlUk9kT0MrcWtMZ1p6WEtsckRVM3VUanFHKy82c3VKQ0pwNUtwN0JH?=
 =?utf-8?B?RHNkb1NZb2FNLzZ4ZGpVbWtRNXhHNFlJazF4OWVsenI4bStISjN4WElUVVQ4?=
 =?utf-8?B?b1ZjbGJMTnhoZ1lDQys2aDRuNTdCc0M3VmFGM3kyMlBEMjZEOVBTVngwQ0tV?=
 =?utf-8?B?NmtmMFhuLzZ3Z1VBMFBVNEhCeHBqWWVmR1lJQUJJNytxZVg5R1hnSFNydFdr?=
 =?utf-8?B?TTdlbElWK0VHSmNubmNlRXNFRDc0U2lvT2JXaitQSUhWZEVwSDN1a3ZHODJv?=
 =?utf-8?B?eElBRkZNbmtkZ3gyN0dyN051cW1FbjlHd0RxeUhFdUNpclB1UnM0ZWJoRGpq?=
 =?utf-8?B?d0RpSk05eThoVFlJdG8wd1E0ZzQ1MUZ0NjBkU0l1NUFqN2poNHozUitHR2JU?=
 =?utf-8?B?bE5oeEZyR3pzOVNlbXRYVGY0dDdJcmVSVVp3Mk00NnNxL1Q0YllKaFFGbWlw?=
 =?utf-8?B?cHViRUY0UGhxVGo4Q2pkTXMvWlhaK1NvNGJOanFmRWlvWjFPOFpQZ1p2cEN3?=
 =?utf-8?B?SXlzMFhEd1VKVXlaWUFUQVVCYWtCMjAxcUhmb3U5MGh4bWg3bGFRSzJzMTAy?=
 =?utf-8?B?OUFRWE5mSzF1eU9xZjBpaEFCR05SRjMrMWRvV0lpNExpdk9BUUc0cE5FMXBL?=
 =?utf-8?B?aUd6aG5Dd0lYdUZuQ2w5THh4NTJCbVp2NWg5aW1iYmcwamRTaXZHSFVDWTFZ?=
 =?utf-8?B?U3I5b1FJM1VQZnE2UTZGVndLZVlIVUdEeWJpOVVBbGtRd2c3K2pzWFlyUzAy?=
 =?utf-8?B?MUtDYWFsL05NNVpZQkRTY0lVYkJuS29NTzlpUThqWFZoMmZzdG4zMStrcExY?=
 =?utf-8?B?djRseW9QcUhLcnVJK1hsTHFaV3RQbkFvNnpCYm9LcTg4U1UzZm5SWElVL3dP?=
 =?utf-8?B?Umk4NlNEQmk5dDZ4aHczRjk1UjdFL2p4UWk2WCtpWGN2SkZ0VWdGRG8vTGMr?=
 =?utf-8?B?b3JUYVF0WVJrd2VvZ0puQjVETnV2Vi85NlBtWlJRU1Q3R2V3U1BkVFJRSFZw?=
 =?utf-8?B?QmxxN1UxSnFyK29FbnVoTHZxWUNoV3BaTTlXTjk3NjB3TXhaRDZ5aU9ySG40?=
 =?utf-8?B?ZUlzMUM0Uy9mckhaVVpNV1duQkNVYXhYYkpBbVRxZFNJR0dyY3dyTnl2Y2tP?=
 =?utf-8?B?V0c3cVM1LysyUTlpeGIwNng3NkY1MUhyMmZqS3cxQ2tOVU8rVFRQOGFscHhD?=
 =?utf-8?B?eFFsNkt1KzVFUzh1d0ZacUN6d25TUGFMbEtwSXNxTFFib0VFajExL0c0YWZB?=
 =?utf-8?B?M3pYR1J5TzdqOXFIV2NLaFFzdm5PS2JtMC92ZUFBMUY5dFVabm9MSXdjOU15?=
 =?utf-8?B?dzdhek5zRlcwdGszRkFjVGVaQkNSOU9PbnhyUm50K2lyVncwSjZRMytGTmJQ?=
 =?utf-8?B?R1BBNGpTL01yV1g5emYyck9MbGlZNnQ4RGdjbEtDUmg5YkpFclVlUVZrTGdp?=
 =?utf-8?B?N1E1V3NleDhhNllzMnhrM0dWZ05Yd3ExOTIwYVRBYlFCUExEa0NxNHZSUFJq?=
 =?utf-8?B?SlYwSUl5WjZtYXd3aU5yc0JzZWx4K3BkbkhudTdhSFpFMU5DdzA0LzdFeWQ4?=
 =?utf-8?B?bVJFU3NIaXBmTk9IZ1lTRTVPb2RISlgrL2d2cFRrbXhabW40cjVRYk10S055?=
 =?utf-8?Q?4+Pk=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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2025 08:13:25.0287
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e77f041-8865-4896-4172-08de27438334
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000F0E0.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB9548



On 19/11/2025 08:53, Harry Ramsey wrote:
> Implement `setup_mm` for MPU systems. This variant does not require
> setting up a direct map.
> 
> To reduce code duplication the common initalisation code for both MPU
> and MMU Arm64 configurations is refactored into `setup_mm`. Platform-specific
> setup steps are now handled by a new helper function `setup_mm_helper`.
> 
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 08:48:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 08:48:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165689.1492367 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLdrC-0002Pc-Ib; Wed, 19 Nov 2025 08:48:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165689.1492367; Wed, 19 Nov 2025 08:48:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLdrC-0002PV-FR; Wed, 19 Nov 2025 08:48:06 +0000
Received: by outflank-mailman (input) for mailman id 1165689;
 Wed, 19 Nov 2025 08:48:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6cZ7=53=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vLdrB-0002PP-NK
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 08:48:05 +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 743d4667-c524-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 09:48:01 +0100 (CET)
Received: from BN0PR10CA0028.namprd10.prod.outlook.com (2603:10b6:408:143::34)
 by SN7PR12MB8820.namprd12.prod.outlook.com (2603:10b6:806:341::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 08:47:55 +0000
Received: from BN2PEPF000055E0.namprd21.prod.outlook.com
 (2603:10b6:408:143:cafe::47) by BN0PR10CA0028.outlook.office365.com
 (2603:10b6:408:143::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.10 via Frontend Transport; Wed,
 19 Nov 2025 08:47:55 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN2PEPF000055E0.mail.protection.outlook.com (10.167.245.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.1 via Frontend Transport; Wed, 19 Nov 2025 08:47:55 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 19 Nov
 2025 00:47:55 -0800
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 19 Nov
 2025 02:47:54 -0600
Received: from [10.252.147.171] (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, 19 Nov 2025 00:47: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: 743d4667-c524-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cLfl6eqEy7nX5KSPlxL5VSth47DmPSonB17AjPr6AMM6Ol0KtOQEYy4V/Dnb/T4fThjWtl3MgpOdpr/bgozggWxnvZIkFaAZuTdwy9IKFDWVHQFYd2KCjgjGY14dXgJ5moUMz0Q60eO+209cTU1FRcjaZc9zaF21T0GlfYA+kRJwqL4Td9C2j8Vx2fI1bFoAZKkrGwo3UDfvIYAUS4+EZW1HSchiP0rRfPX3HbcOdsDsyuYYxT5/9h1RIQ2SCkhDWy/+ERHUhMXMnV+TC5EPjJgKAtOf4DJC3NkAQR3RG2fOl2P2FgUFtwbZ/uLd9myIYEwe09c02YTiKltPgE5lcw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=su0iSqib626Zn72ft5Jjud6kQuq0GVOlnNFk524ALPQ=;
 b=d29mGxPiZcQaPz3JZ2OeWXtUmeL2+1i6xctw8SmsZ0jx/T0+oclBQSuQDybtuBq3z0b576fNH8l2WRfvaCB65ukTjGlzQVtSaNKwlLsBkwhj38I4W6df5L0ZdJQfBqS5jAd8SteVDcIVghjoTAxvwMx90GPjzb6JOCMzmMqxqKNvLSkmMs+J9zSE6DlmcbpdrFB6LYkDQ+/Eni4BbQDUvhOHoOr0MD8fuv2WdZKfKZArW70uvnje6PnwkcKgFRwAA+JuNILYEwAyjR8XXg2NVIpNBYlju25/ge76vMIzK8mf3uCMwm38qlMDLDBW1M+s6qyajNItNHBbIYT085skbw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=su0iSqib626Zn72ft5Jjud6kQuq0GVOlnNFk524ALPQ=;
 b=B1AeFX60/xWEu4VmXEGXERDGZhHCu9FHKweTTbxeY1V4w1lradi1Bec2VxYVczoZ9XGcTYToVf0IC4wy113uHtLLF8uD6XnBJit/NGn2h/RLtmGlsSApQExM2GGOPeG3vmcJKzJ5hSbVtGCiWube825Bfgw+tDOEakwlKblXEbg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <5a5b4bf6-4cd6-4b64-ba31-07a87b1fdbaa@amd.com>
Date: Wed, 19 Nov 2025 09:47:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v14 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
To: Mykola Kvach <xakep.amatop@gmail.com>, <xen-devel@lists.xenproject.org>
CC: Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <cover.1763479083.git.xakep.amatop@gmail.com>
 <3786204d034ae4461aa0fde77771b8e14256314a.1763479083.git.xakep.amatop@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <3786204d034ae4461aa0fde77771b8e14256314a.1763479083.git.xakep.amatop@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000055E0:EE_|SN7PR12MB8820:EE_
X-MS-Office365-Filtering-Correlation-Id: 220315bd-d194-487b-9b03-08de27485520
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?bWNNbEtXMFRLbWVyWitCT3FwOE9mYnlvRjE3MUhyMWR1U0xLWnJ0ajV5OWQz?=
 =?utf-8?B?aXpHRVI3aUZEbUFTbjI5RFdEU3lHK2NpeU4ySzNhdFVHb2hoYXcxZGlVcFB5?=
 =?utf-8?B?SGhnUkNnai9pcG1RaXdiemQ2VExXUTFxYVVETTA4OXNqdnhNOHhMNk9GYnk5?=
 =?utf-8?B?NlVKNHl4YVg2WUhCSnljaS9TOWo0Z3RGNTdkUmR1YVZ1T1ZFMGw1QktHa2pQ?=
 =?utf-8?B?Ymc0NlYxWktiUnZ4VU1aMGFSQUM1V0ZrbVkvbWkwanFtb0x1RnpnS2xQeGxH?=
 =?utf-8?B?OWxnQlE2VExldzZTbUFYYzZ0d0ZaQTIzVzg2L0Jaekd4NjhhOExGM2k1eG4v?=
 =?utf-8?B?cjArQjNCdExzTGV4STlNampnU3hJS3JmaWhwcnI2ZUxWcGp1WWZsK2tVSHdt?=
 =?utf-8?B?TDNVWVBqUndpSUR5dnZocHhFSkZPTThaQXdQcUVBUEZoT0trQXhVeDhwL2ps?=
 =?utf-8?B?WTg0dnREbmlMZWlyelNFT2Jsam1lTW5kTGpnQmxhb1E0cFdqb21meHBRSGpT?=
 =?utf-8?B?M2NhVVZOV2M3Qm9DS1R2RkhzZDhtVHJEcGNJTmlpRmdGb2pwMVFCdDNsdEJP?=
 =?utf-8?B?Q0NVczlxSkgzWkJPQjdyc1kyQVcwakdadnlSUXZhYXdodERoaGIwUHpNdzRT?=
 =?utf-8?B?Y2ZhM1FvbWRpQ2ZPbEM4eE9FQmdXM1NqRytFdDNnY3NkVVlVV1IzU2lsQWMx?=
 =?utf-8?B?Y0Y5T3NaYnVwTDQzMU5aL2NHdXM5SUJYaVoyV2IwQWhKMjlhZ0pUUXltajY2?=
 =?utf-8?B?ZXpLNUxQN3NlTTlFdjk4UFZveTlvRkwzYjFpdlhDRXBENzVBdC95M2hpZ3Jw?=
 =?utf-8?B?Sy9scExWZndORldMeHRCOWlySm1Ba3ZYQlN5d3BHa3NDVGp1TzZrVXA0S2Qy?=
 =?utf-8?B?TGordzlXUmZBcDZ4aml6eXlHdVBncWYybzJlY3ZZNTgrRkRHUzd1SzJOM1NF?=
 =?utf-8?B?clc4QS84TWhwMGdlalZxRkh3YWNlSjJZS21YMHJ1TlBWSWllZncvRXJEWEhO?=
 =?utf-8?B?dXloZ1N3d2M0RVhSdzZSTXUrT3FVNktPeWxyam03UVJCV2tMYk9OUzMxajE2?=
 =?utf-8?B?bjV3cmNCN2tOYnVTazdOT05pZzVEd1BKTTEyT2lnUEpoS3VoNVVGZXcxVlJh?=
 =?utf-8?B?WHI4L1JhVTJpdDhsNG40Y3dwMy9FcG0vQTNYRERnaWJwdERwS1N1TVkweU5P?=
 =?utf-8?B?TTlDcHJ2c1pKWDUvYVQwZkxLa1JvR1lqWDBORGRKUG0xNll3NkR5ZytTODBX?=
 =?utf-8?B?T2pMYVZSMGxqanlibTd2UGR1MjVlK2UwYWNzTGxEZWxBSWhZVUhIZGFyVUh3?=
 =?utf-8?B?Ujdhb2gxVU95aW9MZHhaYlhrZjcyNWwrbmJjdDdVMWhZamdaTmwrSy95ZS9h?=
 =?utf-8?B?UDBGRkgwMUo1aVBCNmZ3WmJ2NThHQi90UnNGbDVNRityVkhMMXNRd1crSGdp?=
 =?utf-8?B?RkFyRWI3MDlVVW9Wd0o3YVNZZ3pYeDBsYWRiTWxiT0NXTzI2dXZ4RjYrMFgy?=
 =?utf-8?B?TWRkMEY2WGpwdlF4ZWx3cGlMWXN2eDJ5bzBOaUhrdVNmdSt4eFRnaG1waElt?=
 =?utf-8?B?Q0NaMjl0RTFHUUJJaitNaW92dmtLdVZEWWFGQTVWamFKSzloVHpMWEFKRUhK?=
 =?utf-8?B?VUxhV2JHTlcrSi90eU1pUnlPRnJjOVhITkFCY0g0V2ZmVStqSlFPVkxhd1Qv?=
 =?utf-8?B?TTdObTE1RWY5WTlPMXVyRGxlMUdQOWkzVnQ5c0RoYmRtMFNHTzlscnBqU3Bm?=
 =?utf-8?B?clo5R2luQU9sT29lZUh3UzNweEd4a2IwKzJPU2pIbko4UHF4OWZKZFNDRHVk?=
 =?utf-8?B?WFcxRUY5Wi9iem14dXMyejVpaDVnNHhyQWVucWVaeG9MUmF2ZkN6WTZScUMz?=
 =?utf-8?B?eS9rZkc2aDUvbWVmeklxQ2VQNVZOY1JSZitDaFE3dGRWbjJCRmJhanpLRmN5?=
 =?utf-8?B?QkFmNTlUUVE1dk5veHpOSi9HMkFUaTZnY3VoRlp2WnArTWFLYkl2QnUzN1c4?=
 =?utf-8?B?QVhKUWJWM2cxdWoyVVhIcHlsd0lzT3BqRlc3RHdtelFMSWdCbFNvOEcyOWtZ?=
 =?utf-8?B?Ynd0bnhBRjZWWU12UGpyMVdDMW9yTVErQU9URkN2ejhkMzZSNEtjMDNlS0Zn?=
 =?utf-8?Q?G1+w=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)(7416014)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2025 08:47:55.2113
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 220315bd-d194-487b-9b03-08de27485520
X-MS-Exchange-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:
	BN2PEPF000055E0.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB8820



On 18/11/2025 16:37, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> Add support for the PSCI SYSTEM_SUSPEND function in the vPSCI interface,
> allowing guests to request suspend via the PSCI v1.0+ SYSTEM_SUSPEND call
> (both 32-bit and 64-bit variants).
> 
> Implementation details:
> - Add SYSTEM_SUSPEND function IDs to PSCI definitions
> - Trap and handle SYSTEM_SUSPEND in vPSCI
> - Allow only non-hardware domains to invoke SYSTEM_SUSPEND; return
>   PSCI_NOT_SUPPORTED for the hardware domain to avoid halting the system
>   in hwdom_shutdown() via domain_shutdown
> - Require all secondary VCPUs of the calling domain to be offline before
>   suspend, as mandated by the PSCI specification
> 
> The arch_domain_resume() function is an architecture-specific hook that is
> invoked during domain resume to perform any necessary setup or restoration
> steps required by the platform.
> 
> The new vpsci_vcpu_up_prepare() helper is called on the resume path to set up
> the vCPU context (such as entry point, some system regs and context ID) before
> resuming a suspended guest. This keeps ARM/vPSCI-specific logic out of common
> code and avoids intrusive changes to the generic resume flow.
> 
> Usage:
> 
> For Linux-based guests, suspend can be initiated with:
>     echo mem > /sys/power/state
> or via:
>     systemctl suspend
> 
> Resuming the guest is performed from control domain using:
>       xl resume <domain>
> 
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> Changes in V14:
> - move arch_domain_resume to a separate header
> - avoid usage of typeof for context struct
> - moved error printing from domain_resume to arch_domain_resume
>   in order to simplify common parts of code
> - minor changes after review
> ---
>  xen/arch/arm/domain.c                 |  41 +++++++++
>  xen/arch/arm/include/asm/domain.h     |   2 +
>  xen/arch/arm/include/asm/perfc_defn.h |   1 +
>  xen/arch/arm/include/asm/psci.h       |   2 +
>  xen/arch/arm/include/asm/suspend.h    |  24 ++++++
>  xen/arch/arm/include/asm/vpsci.h      |   5 +-
>  xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-----
>  xen/common/domain.c                   |   5 ++
>  xen/include/xen/suspend.h             |  15 ++++
>  9 files changed, 189 insertions(+), 22 deletions(-)
>  create mode 100644 xen/arch/arm/include/asm/suspend.h
>  create mode 100644 xen/include/xen/suspend.h
> 
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index e36719bce4..3c0170480b 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -12,6 +12,8 @@
>  #include <xen/softirq.h>
>  #include <xen/wait.h>
>  
> +#include <public/sched.h>
> +
>  #include <asm/arm64/sve.h>
>  #include <asm/cpuerrata.h>
>  #include <asm/cpufeature.h>
> @@ -24,10 +26,12 @@
>  #include <asm/platform.h>
>  #include <asm/procinfo.h>
>  #include <asm/regs.h>
> +#include <asm/suspend.h>
>  #include <asm/firmware/sci.h>
>  #include <asm/tee/tee.h>
>  #include <asm/vfp.h>
>  #include <asm/vgic.h>
> +#include <asm/vpsci.h>
>  #include <asm/vtimer.h>
>  
>  #include "vpci.h"
> @@ -885,6 +889,43 @@ void arch_domain_creation_finished(struct domain *d)
>      p2m_domain_creation_finished(d);
>  }
>  
> +int arch_domain_resume(struct domain *d)
> +{
> +    int rc;
> +    struct resume_info *ctx = &d->arch.resume_ctx;
> +
> +    if ( !d->is_shutting_down || d->shutdown_code != SHUTDOWN_suspend )
> +    {
> +        dprintk(XENLOG_WARNING,
> +                "%pd: Invalid domain state for resume: is_shutting_down=%d, shutdown_code=%d\n",
These are bool and uint, so %u should be used.

> +                d, d->is_shutting_down, d->shutdown_code);
> +        return -EINVAL;
> +    }
> +
> +    /*
> +     * It is still possible to call domain_shutdown() with a suspend reason
> +     * via some hypercalls, such as SCHEDOP_shutdown or SCHEDOP_remote_shutdown.
> +     * In these cases, the resume context will be empty.
> +     * This is not expected to cause any issues, so we just warn about the
> +     * situation and return without error, allowing the existing logic to
> +     * proceed as expected.
> +     */
> +    if ( !ctx->wake_cpu )
> +    {
> +        dprintk(XENLOG_INFO, "%pd: Wake CPU pointer context was not provided\n",
> +                d);
> +        return 0;
> +    }
> +
> +    rc = vpsci_vcpu_up_prepare(ctx->wake_cpu , ctx->ep, ctx->cid);
> +    if ( rc )
> +        printk("%pd: Failed to resume domain (ret %d)\n", d, rc);
> +
> +    memset(ctx, 0, sizeof(*ctx));
> +
> +    return rc;
> +}
> +
>  static int is_guest_pv32_psr(uint32_t psr)
>  {
>      switch (psr & PSR_MODE_MASK)
> diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
> index af3e168374..e637cb4de0 100644
> --- a/xen/arch/arm/include/asm/domain.h
> +++ b/xen/arch/arm/include/asm/domain.h
> @@ -5,6 +5,7 @@
>  #include <xen/timer.h>
>  #include <asm/page.h>
>  #include <asm/p2m.h>
> +#include <asm/suspend.h>
>  #include <asm/vfp.h>
>  #include <asm/mmio.h>
>  #include <asm/gic.h>
> @@ -126,6 +127,7 @@ struct arch_domain
>      void *sci_data;
>  #endif
>  
> +    struct resume_info resume_ctx;
>  }  __cacheline_aligned;
>  
>  struct arch_vcpu
> diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/include/asm/perfc_defn.h
> index effd25b69e..8dfcac7e3b 100644
> --- a/xen/arch/arm/include/asm/perfc_defn.h
> +++ b/xen/arch/arm/include/asm/perfc_defn.h
> @@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system_reset")
>  PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
>  PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
>  PERFCOUNTER(vpsci_features,            "vpsci: features")
> +PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
>  
>  PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
>  
> diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/psci.h
> index 4780972621..48a93e6b79 100644
> --- a/xen/arch/arm/include/asm/psci.h
> +++ b/xen/arch/arm/include/asm/psci.h
> @@ -47,10 +47,12 @@ void call_psci_system_reset(void);
>  #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
>  #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
>  #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
> +#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
>  
>  #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
>  #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
>  #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
> +#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
>  
>  /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
>  #define PSCI_0_2_AFFINITY_LEVEL_ON      0
> diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
> new file mode 100644
> index 0000000000..b991a94d5a
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/suspend.h
> @@ -0,0 +1,24 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#ifndef __ARM_SUSPEND_H__
There should be no double underscores in guards (see examples in CODING_STYLE)
> +#define __ARM_SUSPEND_H__
> +
> +struct resume_info {
> +    register_t ep;
> +    register_t cid;
> +    struct vcpu *wake_cpu;
> +};
> +
> +int arch_domain_resume(struct domain *d);
If possible, headers should be standalone, meaning you should include necessary
headers or forward declare what's missing.

> +
> +#endif /* __ARM_SUSPEND_H__ */
> +
> + /*
> +  * Local variables:
> +  * mode: C
> +  * c-file-style: "BSD"
> +  * c-basic-offset: 4
> +  * tab-width: 4
> +  * indent-tabs-mode: nil
> +  * End:
> +  */
> diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/asm/vpsci.h
> index 0cca5e6830..d790ab3715 100644
> --- a/xen/arch/arm/include/asm/vpsci.h
> +++ b/xen/arch/arm/include/asm/vpsci.h
> @@ -23,12 +23,15 @@
>  #include <asm/psci.h>
>  
>  /* Number of function implemented by virtual PSCI (only 0.2 or later) */
> -#define VPSCI_NR_FUNCS  12
> +#define VPSCI_NR_FUNCS  14
>  
>  /* Functions handle PSCI calls from the guests */
>  bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
>  bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid);
>  
> +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
> +                          register_t context_id);
> +
>  #endif /* __ASM_VPSCI_H__ */
>  
>  /*
> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> index 7ba9ccd94b..22c3a5f544 100644
> --- a/xen/arch/arm/vpsci.c
> +++ b/xen/arch/arm/vpsci.c
> @@ -10,32 +10,16 @@
>  
>  #include <public/sched.h>
>  
> -static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
> -                            register_t context_id)
> +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
> +                   register_t context_id)
NIT: incorrect parameter alignment

>  {
> -    struct vcpu *v;
> -    struct domain *d = current->domain;
> -    struct vcpu_guest_context *ctxt;
>      int rc;
> +    struct domain *d = v->domain;
>      bool is_thumb = entry_point & 1;
> -    register_t vcpuid;
> -
> -    vcpuid = vaffinity_to_vcpuid(target_cpu);
> -
> -    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
> -        return PSCI_INVALID_PARAMETERS;
> -
> -    /* THUMB set is not allowed with 64-bit domain */
> -    if ( is_64bit_domain(d) && is_thumb )
> -        return PSCI_INVALID_ADDRESS;
> -
> -    if ( !test_bit(_VPF_down, &v->pause_flags) )
> -        return PSCI_ALREADY_ON;
> +    struct vcpu_guest_context *ctxt;
>  
>      if ( (ctxt = alloc_vcpu_guest_context()) == NULL )
> -        return PSCI_DENIED;
> -
> -    vgic_clear_pending_irqs(v);
> +        return -ENOMEM;
>  
>      memset(ctxt, 0, sizeof(*ctxt));
>      ctxt->user_regs.pc64 = (u64) entry_point;
> @@ -76,8 +60,37 @@ static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
>      free_vcpu_guest_context(ctxt);
>  
>      if ( rc < 0 )
> +        return rc;
> +
> +    return 0;
> +}
> +
> +static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
> +                            register_t context_id)
> +{
> +    struct vcpu *v;
> +    struct domain *d = current->domain;
> +    int rc;
> +    bool is_thumb = entry_point & 1;
> +    register_t vcpuid;
> +
> +    vcpuid = vaffinity_to_vcpuid(target_cpu);
> +
> +    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
> +        return PSCI_INVALID_PARAMETERS;
> +
> +    /* THUMB set is not allowed with 64-bit domain */
> +    if ( is_64bit_domain(d) && is_thumb )
> +        return PSCI_INVALID_ADDRESS;
> +
> +    if ( !test_bit(_VPF_down, &v->pause_flags) )
> +        return PSCI_ALREADY_ON;
> +
> +    rc = vpsci_vcpu_up_prepare(v, entry_point, context_id);
> +    if ( rc )
>          return PSCI_DENIED;
>  
> +    vgic_clear_pending_irqs(v);
>      vcpu_wake(v);
>  
>      return PSCI_SUCCESS;
> @@ -197,6 +210,48 @@ static void do_psci_0_2_system_reset(void)
>      domain_shutdown(d,SHUTDOWN_reboot);
>  }
>  
> +static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
> +{
> +    int32_t rc;
> +    struct vcpu *v;
> +    struct domain *d = current->domain;
> +    bool is_thumb = epoint & 1;
> +
> +    /* THUMB set is not allowed with 64-bit domain */
> +    if ( is_64bit_domain(d) && is_thumb )
> +        return PSCI_INVALID_ADDRESS;
> +
> +    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
> +    if ( is_hardware_domain(d) )
> +        return PSCI_NOT_SUPPORTED;
> +
> +    /* Ensure that all CPUs other than the calling one are offline */
> +    domain_lock(d);
> +    for_each_vcpu ( d, v )
> +    {
> +        if ( v != current && is_vcpu_online(v) )
> +        {
> +            domain_unlock(d);
> +            return PSCI_DENIED;
> +        }
> +    }
> +    domain_unlock(d);
> +
> +    rc = domain_shutdown(d, SHUTDOWN_suspend);
> +    if ( rc )
> +        return PSCI_DENIED;
> +
> +    d->arch.resume_ctx.ep = epoint;
> +    d->arch.resume_ctx.cid = cid;
> +    d->arch.resume_ctx.wake_cpu = current;
> +
> +    gprintk(XENLOG_DEBUG,
> +            "SYSTEM_SUSPEND requested, epoint=0x%"PRIregister", cid=0x%"PRIregister"\n",
NIT: %# is preffered over 0x%.

> +            epoint, cid);
> +
> +    return rc;
> +}
> +
>  static int32_t do_psci_1_0_features(uint32_t psci_func_id)
>  {
>      /* /!\ Ordered by function ID and not name */
> @@ -214,6 +269,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
>      case PSCI_0_2_FN32_SYSTEM_OFF:
>      case PSCI_0_2_FN32_SYSTEM_RESET:
>      case PSCI_1_0_FN32_PSCI_FEATURES:
> +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
>      case ARM_SMCCC_VERSION_FID:
>          return 0;
>      default:
> @@ -344,6 +401,23 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
>          return true;
>      }
>  
> +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
> +    {
> +        register_t epoint = PSCI_ARG(regs, 1);
> +        register_t cid = PSCI_ARG(regs, 2);
> +
> +        if ( fid == PSCI_1_0_FN32_SYSTEM_SUSPEND )
> +        {
> +            epoint &= GENMASK(31, 0);
> +            cid &= GENMASK(31, 0);
> +        }
> +
> +        perfc_incr(vpsci_system_suspend);
> +        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid));
> +        return true;
> +    }
> +
>      default:
>          return false;
>      }
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 775c339285..6410d32970 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -26,6 +26,7 @@
>  #include <xen/hypercall.h>
>  #include <xen/delay.h>
>  #include <xen/shutdown.h>
> +#include <xen/suspend.h>
>  #include <xen/percpu.h>
>  #include <xen/multicall.h>
>  #include <xen/rcupdate.h>
> @@ -1363,6 +1364,9 @@ void domain_resume(struct domain *d)
>  
>      spin_lock(&d->shutdown_lock);
>  
> +    if ( arch_domain_resume(d) )
> +        goto fail;
> +
>      d->is_shutting_down = d->is_shut_down = 0;
>      d->shutdown_code = SHUTDOWN_CODE_INVALID;
>  
> @@ -1373,6 +1377,7 @@ void domain_resume(struct domain *d)
>          v->paused_for_shutdown = 0;
>      }
>  
> + fail:
>      spin_unlock(&d->shutdown_lock);
>  
>      domain_unpause(d);
> diff --git a/xen/include/xen/suspend.h b/xen/include/xen/suspend.h
> new file mode 100644
> index 0000000000..53f75fd6ad
> --- /dev/null
> +++ b/xen/include/xen/suspend.h
> @@ -0,0 +1,15 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#ifndef __XEN_SUSPEND_H__
There should be no double underscores in guards

> +#define __XEN_SUSPEND_H__
> +
> +#if __has_include(<asm/suspend.h>)
> +#include <asm/suspend.h>
> +#else
> +static inline int arch_domain_resume(struct domain *d)
> +{
> +    return 0;
> +}
> +#endif
> +
Stray whiteline?

> +
> +#endif /* __XEN_SUSPEND_H__ */
Missing emacs block?

Did you run MISRA scan on this patch?

~Michal




From xen-devel-bounces@lists.xenproject.org Wed Nov 19 10:22:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 10:22:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165704.1492388 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLfKS-0005yt-40; Wed, 19 Nov 2025 10:22:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165704.1492388; Wed, 19 Nov 2025 10:22: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 1vLfKS-0005yk-15; Wed, 19 Nov 2025 10:22:24 +0000
Received: by outflank-mailman (input) for mailman id 1165704;
 Wed, 19 Nov 2025 10:22:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OdYd=53=bounce.vates.tech=bounce-md_30504962.691d9a59.v1-4f590a01462a46599c9640fe486dc864@srs-se1.protection.inumbo.net>)
 id 1vLfKQ-0005xG-NP
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 10:22:22 +0000
Received: from mail180-15.suw31.mandrillapp.com
 (mail180-15.suw31.mandrillapp.com [198.2.180.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a02d059f-c531-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 11:22:18 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-15.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4dBHbY2xKSzPm168Y
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 10:22:17 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 4f590a01462a46599c9640fe486dc864; Wed, 19 Nov 2025 10:22:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a02d059f-c531-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763547737; x=1763817737;
	bh=QzctCEEK/dV3EtP47Px3B23oMG15atUFFGtIhwSfgno=;
	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=uE7vopbNyJyMQu/c193crsgsrpLoJOCwoD31DLiWDyuHfkGiQKW2cIRJpPjAKZyfv
	 GsfY2P0cOGU9kLXkSDpDPdDBdGjwdbwDa17ejYPzhoMpm/YHcLHkndBKtSKiOpLr4X
	 jKwNWql3I5zitMihFtNy0Xi/ZHmxPxkvYD020Pp/2annaUA+pnRb7N0nkPmyxlQ1ra
	 phuM3KldeMcjm4658RNm6nTQBCmCDlXQHHGi5w+vJyuv9Lx8iAPonDZMCbC72LV7Mo
	 GfY+MPS2f9tBDM9ATDwDg///JsYnipcByc6kSkt8uo/aMRzYF4pa0MDir9C2N0b+qO
	 bFes08Iw/IwGQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763547737; x=1763808237; i=teddy.astie@vates.tech;
	bh=QzctCEEK/dV3EtP47Px3B23oMG15atUFFGtIhwSfgno=;
	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=akah1bSCW9wVkaH3W40BK8demLU1A/4ZdZ+hjPsj2/xnOJo7o9XeHAAk0RkpL2/Xv
	 z4PPH2g1FMuALLtuwnF6DcPHydgNgzwjiQ5BxOnkIG6EmUpKjaPbRsg99Je7nbCUnT
	 mFN1njO4/muDfI3NDWanMUEDjFyp5o9FYmiiRM8idZipS6SNY9tWuQyKY00XUDOuE+
	 t2Rj4rvaODhPYmdzLu/rRK3cg0GS4MJsE/mRgbxB7qwBpUFaAuFkAmWkUTX3ZHSkxf
	 qXQxXIk93HCjW1zSqexxqkb3lILA9v9OG4dcPXn0+JAxNmMGenxe2I3Y2i/mqygFSd
	 sj52BWdauvmxQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=202/2]=20amd/iommu:=20Remove=20dead=20non-atomic=20update=20checking?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763547736243
Message-Id: <f9193b72-dcb2-4140-8b6b-46e7b509ed1b@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>, "Jason Andryuk" <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1762961527.git.teddy.astie@vates.tech> <b0e81bd67c3f135a4102d12ed95a52ce56482992.1762961527.git.teddy.astie@vates.tech> <367dc942-7113-46cf-9c54-fa77dc6b4c53@suse.com>
In-Reply-To: <367dc942-7113-46cf-9c54-fa77dc6b4c53@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.4f590a01462a46599c9640fe486dc864?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251119:md
Date: Wed, 19 Nov 2025 10:22:17 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 13/11/2025 =C3=A0 12:39, Jan Beulich a =C3=A9crit=C2=A0:
> On 12.11.2025 16:37, Teddy Astie wrote:
>> When updating a DTE, amd_iommu_setup_domain_device() would check if
>> the update had been non-atomic (i.e rc > 0) and throw a warning if
>> such non-atomic update could be dangerous.  However since commit
>> 3fc44151d83d, rc can no longer be positive, making this branch
>> unreachable code.
> 
> I.e. it addresses a Misra concern and hence ...
> 
>> No functional change intended.
>>
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> 
> ... wants at least an Amends: tag, likely a Fixes: one. Then:

With :

Fixes: 3fc44151d83d ("x86/iommu: remove non-CX16 logic from DMA remapping")

?

As it is the commit that removed the rc > 0 case.

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



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Nov 19 10:30:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 10:30:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165720.1492415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLfSN-0007je-1s; Wed, 19 Nov 2025 10:30:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165720.1492415; Wed, 19 Nov 2025 10:30:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLfSM-0007jX-Uk; Wed, 19 Nov 2025 10:30:34 +0000
Received: by outflank-mailman (input) for mailman id 1165720;
 Wed, 19 Nov 2025 10:30: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=nJND=53=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLfSL-0007jR-Pk
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 10:30:33 +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 c65d0ebd-c532-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 11:30:31 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-6418b55f86dso10532004a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 02:30: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
 a640c23a62f3a-b734fad4635sm1588751866b.26.2025.11.19.02.30.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 19 Nov 2025 02:30: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: c65d0ebd-c532-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763548231; x=1764153031; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jTS4Im0Sg+nrKJf1Md2EMB2alv2JVlFEjAtTpF9/yxE=;
        b=FS6gQhpnX3z55VJWNLfgfaOgTHib9kWCgBh5DGapqa6/qQ1yf8zYhHxP8BwP3VN4kp
         wySUxez6OMMHZLodoAMKAZ9gA/MM2EgSnkPkDYlf03vvC5iUm+cVLg8ZrvP1R1lEP18U
         B0sOqLeac0He6FlOqh3gdvRGtzz8E2RkOxrqAMuxbw0TxfH4ISuq2mmXLlzhg2qC7rTK
         mnSLW8wg36DSgyTGwcWdRzgJhwEAzjDoMMygFzOZO6YEHk/oLntmUeCDmz68dV1WzTNx
         9Zf81CHXdTMFebOuq1CCX99G+NADFyaIGTvt6yUr1nBp/GZ3qxt4TACP8lMVdum9eF6u
         KBqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763548231; x=1764153031;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jTS4Im0Sg+nrKJf1Md2EMB2alv2JVlFEjAtTpF9/yxE=;
        b=sElmhb9ZvZLCMzHN9oTfqAjdDKOGst9RI8EsjAS7kCV4Xl+dV6usY6m8CcBhQHy8yx
         TgA+feftcu6ecW8YF4YrnQtF2Vmdl0YPvceHp3k62u4dm9PfFLnQvYouVImXaCly9oHG
         E+dvAtHYMlbnUDbp5f0drSn7xwROcmWr54TqmOb5F5Q9Cjkil4Zcm9QI0s4KCJvT9lcC
         O0WDrRj29AHzM1tVAmzWOo34kbx0aXKMjOUEBzUn7PGkqzN28OTe75xoYjlQ7wXs0Kx3
         Z6spj5SLi99TaL/6IK6NGr+mE2YYDEgGC2JEglKnRRpRHJZyib3ATucXnu4QlhVC+Igb
         bVlQ==
X-Forwarded-Encrypted: i=1; AJvYcCUKRqlrX7hXBoPjZsg1RGBifYrgebyHpwhG9Dd311XTLLJcBlC5voE9onBNT1hKFIOOo05CzCKRhSQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyLrhrnM+vr0tKSlAcvt3M2Lwdo102j+g7lMpCRvNU1duADjTwo
	mC3xcAnep7uGDgXCJ+QYhLr1vyaP2oSUaevwUAdSG5XMRjY9SmItl1hNvvGrjmi31A==
X-Gm-Gg: ASbGnctxdgZLvU/13FDOuVgwOPPmr3PlCHDx5BUsc0YpsF7i5q903ZFmwJylMcwuNvZ
	pTqW4yqE+3mepblj1QCmoaTmKJKd+SsOUE2AugNQRJwLfDFg99h7geW7pMf6Seu/ErxiZwNN/Mp
	dwASZpCo4IxqS85K6t3sjtDeopOXe3MWzKpkl9hnRMEi3kol9exQYxFvlLFAlTqHtMxwIAWf/H4
	dNkppQ9LO39+cFOvU5jl3h156UfaTZPLngaU0VvrWBwwLooY+9/xxVa9OPQilOz4k9SAcdq6iI5
	eX+368WjIUmqodml20Hpj7fFLp1+Q5ORBT2MlEmgMeg6z/IHyZhcnUPB4PxvLw/+hI7jIlph0dF
	GjSEiAOx41xfao+zvYYUDWlQz7oAb7ek20bn10GnvNDUh+0WpJgCRhxfBoPlG9HoJqZO3prlhpf
	y/J56ZJwb6A41N+la098/TusOz4HUg/GZF++fWemKkV4AnR/pE8P4RykYkYLKJP6Cw+2RaZBclp
	zPGbSRxn7O+UBXNFcAjFkc726O+3C06QWw=
X-Google-Smtp-Source: AGHT+IHhUAItv2Ihm0FhDkPpUn+rz5A1BoSOdh6GktkOZ8tjTslVwS9KFQ0J3lCbie1ybcGaXd4jjw==
X-Received: by 2002:a17:907:72c9:b0:b73:a1e3:8de1 with SMTP id a640c23a62f3a-b73a1e39018mr1159686466b.15.1763548231013;
        Wed, 19 Nov 2025 02:30:31 -0800 (PST)
Message-ID: <92c0d9cb-2350-416f-b10d-22d10f3a1021@suse.com>
Date: Wed, 19 Nov 2025 11:30:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] amd/iommu: Remove dead non-atomic update checking
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1762961527.git.teddy.astie@vates.tech>
 <b0e81bd67c3f135a4102d12ed95a52ce56482992.1762961527.git.teddy.astie@vates.tech>
 <367dc942-7113-46cf-9c54-fa77dc6b4c53@suse.com>
 <f9193b72-dcb2-4140-8b6b-46e7b509ed1b@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: <f9193b72-dcb2-4140-8b6b-46e7b509ed1b@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.11.2025 11:22, Teddy Astie wrote:
> Le 13/11/2025 Ã  12:39, Jan Beulich a Ã©critÂ :
>> On 12.11.2025 16:37, Teddy Astie wrote:
>>> When updating a DTE, amd_iommu_setup_domain_device() would check if
>>> the update had been non-atomic (i.e rc > 0) and throw a warning if
>>> such non-atomic update could be dangerous.  However since commit
>>> 3fc44151d83d, rc can no longer be positive, making this branch
>>> unreachable code.
>>
>> I.e. it addresses a Misra concern and hence ...
>>
>>> No functional change intended.
>>>
>>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>>
>> ... wants at least an Amends: tag, likely a Fixes: one. Then:
> 
> With :
> 
> Fixes: 3fc44151d83d ("x86/iommu: remove non-CX16 logic from DMA remapping")
> 
> ?
> 
> As it is the commit that removed the rc > 0 case.

Yes, that looks to be the one.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 10:34:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 10:34:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165734.1492424 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLfVr-0008PV-Ja; Wed, 19 Nov 2025 10:34:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165734.1492424; Wed, 19 Nov 2025 10:34:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLfVr-0008PO-Gd; Wed, 19 Nov 2025 10:34:11 +0000
Received: by outflank-mailman (input) for mailman id 1165734;
 Wed, 19 Nov 2025 10:34:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oRf7=53=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vLfVq-0008PH-FL
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 10:34:10 +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 46b47098-c533-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 11:34:08 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH4PR03MB7747.namprd03.prod.outlook.com (2603:10b6:610:23a::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 10:34:04 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.009; Wed, 19 Nov 2025
 10:34: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: 46b47098-c533-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pvwXljca2QoGG9/8cYOUJYXZYHX5SxzvDrjXiQSGt5WCmkbjBWyg1LwXB5+WiMIGZVtQdMNd1UaLyMMJcou6EsjXcNorLKXP5fYR0auSOQWiNGE9ihQtSe/6pnY9QHOuOxU3rRwpbv54qa2mhyp4F7BtsOxwlG2CxSD66Oz17SoaX+6wAkYibyLext3Gfvfwvh0FT1jcDwimB1nsSknjpFOOnOnx9Me7QG7JayxIXrjYHYPOZS4JTb1+Wg6qeoSQnIm227FCFKK9rclk4Pn+HpPvLfGup1V6wIizFaCfibkA7t5SqFWRUYbwFCm4tMPiOmR4cA0FSl0bjkjlWa61Kw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jHDCUg4U6jHmHeHbDXIljK9wsreNfvmASatg8X7F9pI=;
 b=kcRkXIYvxD5FtBAHYjltZCtV0306i6us5elGwVk4S7PAnLqGU1poYmhcO54KTDzFLQO/6BAe63oJxuAsoQhxLUNiKCZloy1P9yvv+PvHOgFLJDM7e1/qIS6lUOzmuIztR5RjN4yJ56cuf5JfZAC9YLspjorKBJ0ICdFpBV6VFAQmgtfaZyy4/eWE9SieRpdayquI44Cvn2SujE1vtf/q9ypuNqje/W468ZkHrjEoTz0q4sLS3enPWssnKiZI4ybFCgnI7J6gQoAKs0bGpCCFsFDnKdBPoGmaM0IT0YjArkk+XyUVACl2J+aSS64oA76Be1666vYEe9k0UQWeefDg+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=jHDCUg4U6jHmHeHbDXIljK9wsreNfvmASatg8X7F9pI=;
 b=CmALeQsvyCZ/OBKefWdHUaDu4z4AFaad3OyNDb77vnUs6unMfIpJszAoqPZIrM8J6rtIVXvTn3tOPLCCA1bf5/HGazugGPMYCo+duirJSLzUtkus8ItP7N1IZ+DSmNyaWsSpG4RcFNGGhFJK429reDjgXCZg5k5QvbVdQ/ZNoGQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <a4d03eca-d835-4f82-a8a1-c0cd313ebb98@citrix.com>
Date: Wed, 19 Nov 2025 10:34:01 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/5] x86/ioapic: Don't open-code 32-bits rte reads
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1761209564.git.teddy.astie@vates.tech>
 <eab88bd79a65887961e0e1563f47360ef08e421a.1761209564.git.teddy.astie@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <eab88bd79a65887961e0e1563f47360ef08e421a.1761209564.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P265CA0007.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:62::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_|CH4PR03MB7747:EE_
X-MS-Office365-Filtering-Correlation-Id: 3e84c11c-8467-4386-54c5-08de27572980
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?blBKWjJSa1BrMElBVUpBSmIzQW42eGtuL1MxM3lqaVFUV3gwNFhneTNNYmpp?=
 =?utf-8?B?ZEFWeWt1Z1h6aExFcDlROTFzOFpzcDBSTGZjdmx1TzV6NXBLcmRqWDZJUEZm?=
 =?utf-8?B?YW43UlBnRXVhTktLS0FzQkhPbHpvOVZEcVhSOGJqRDVOTnBZeUkxazlaejhl?=
 =?utf-8?B?eFE5aTdJMG01OVNWVnJNSnd0UmI5ODBaUTdBWXdxemhxMzlkQjNKZ1BKWmJs?=
 =?utf-8?B?clJPVGpYK2pvQ2wwQjkyWjRKbjlINGtCRmdIWGY0VjNGckFYUEt5S2FVQmRD?=
 =?utf-8?B?TjB5K2dpOHh3WkVLdENtNVlwOVFmMWRGSUg4VHp3V2RHRnE0VGFDTzZYaWlm?=
 =?utf-8?B?c0dnMzIzYm43d0lLY1Vzckg5eGUzbkVmK1hxbllaVVh3VFRyNFlENktmMEll?=
 =?utf-8?B?SE9STjJ5TjJaL0cwZzFwUDRNeVlIbTU1bUFlQWlNUjNJelY4SnJGNnBwdGVu?=
 =?utf-8?B?UENBWmU3UUN4S1VNY2dUVUtXU0o0ckdnanVMU2Q2bnBiWnQ5L29IaVFvV3lJ?=
 =?utf-8?B?MnVsK2J0eWNVcFZpcWtNTUJnd2xwN1VVV1NiZGhkNytqM2pvV3pJSEdKUkht?=
 =?utf-8?B?MUNUbmZCK0RneXV4anEzS0lrV2h0WWE1TGx6WDNEa0JsdnRyZE8relBmWkhI?=
 =?utf-8?B?a05JbnlOQUtkT3Z0ZjFvTWNhS2VSR1c2WllrU1lZYnpLMDBCOFpOU2Qvb25L?=
 =?utf-8?B?ZmZjL2xZL1A5dkxUeWk1UmdWNlpCY0dwMDVDUWluOU1pYUtyT3kzSmdkcXg1?=
 =?utf-8?B?OXVtbTVhL0xzcXNNWmZidXYxREtQQitBMCt3T1RzUzdHdG9BQWpwSGdvdlhS?=
 =?utf-8?B?dzJEVTI3OWQweVlnQnA0NEVRMUJGd2tReGpRZ0diSmhIZitEd2pacmVuTlRn?=
 =?utf-8?B?RDBZdU0wNEI4bCtDNnhzRkFlaDQzeE8vY1kwaWo0ejZSRVA0ZXU5K011OW54?=
 =?utf-8?B?M1BJNnl2VU5XRjVjSkVMMFpzcERpMlJlOXk2M3RieVdlclNseDlhSDNuWlc3?=
 =?utf-8?B?ZHM5VDdLa0hscG1PTVI0OXlLNi8wdzhiWWlMbktZbTRjeXdvZS9iVE11SlVF?=
 =?utf-8?B?TWhQNExoSW9Ra2ZOU2NjemhEVDd1NTdQNHd4Q0NIdXRsMTRuckcvU0llRjgx?=
 =?utf-8?B?eTBtY2lwUXZWYUhrV2R0b2pJZjZucUp6MitZOExVOFh0RmdDb3ZhVUpFMnRm?=
 =?utf-8?B?aWVWQUViTWg1dlhXWUJzUGlaVncxVjZPUXNqS2liK2tPbXA0cndJZyt4cEJ4?=
 =?utf-8?B?dmQ0dWhINmpkdjRhWTcwQWRaNE9IcUF6Kzg0aGMvb1VpRG45eXJGOFBwZW1r?=
 =?utf-8?B?Um5kTkFTdzM2d21VZTdEdjZzdHVlcEhVUVJKWC9wbmQ4eVVnanVFaGp0Yndu?=
 =?utf-8?B?Tm1kbWJQQ0MzOU1nckRWWE13MHMrY24xU0w3Vks2QVNFeVdGcDcxNDdJNXNZ?=
 =?utf-8?B?WExMSlV3R1RQZERCZS9lUTNrZHYrZUZBY1ByOTgwWEkwNW84ZDRaaXZqaXJK?=
 =?utf-8?B?aHp1bXBURVpXMUlFVnlqeUQ1N2RIWXBxcWlCRjQ0NkwxUXo0MVhlRm84YW5o?=
 =?utf-8?B?NXQyTlJvaHh5TnMraG9NenNHQU9YTlJpT0NVa0JZNEFpNDE5THIycndtUUJN?=
 =?utf-8?B?QlhoZHZRR2xlc1pPdVR4THhvejczdWtzOWtoUnRUT1VWWTlLMFQyUFpQRXNa?=
 =?utf-8?B?ZTFUMWNpb0JiR3UwQXFUSm5qRHFQY0ZtV254anRYT1NsSUkvT0hMdFhUU0p1?=
 =?utf-8?B?NEFLTFU2a29lV1o5Z2grY29tZDg5YnZEUzBRUFEra0d6UWxQNGNOQ2pRVlpW?=
 =?utf-8?B?NmZob0N0VXJHNnVpa2gxakpIKzVzV3VQaFoxV3NvdDhyMUUxeHAxN2R5Z1lW?=
 =?utf-8?B?NU4zbExiV3hyaTJaRmh1VnFzUUkrMW1iY2VoYXBadzRaL0ZiZ05DR3c0SXBS?=
 =?utf-8?Q?eLXtp26xccVScYPP/EG4FkmNK1oaF+7e?=
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?YTFxVzJicGhJN3ROZkhjR0NCRWp6OGtGbXVqWFhXbjVIUS9PNy9ydXVsL1A5?=
 =?utf-8?B?czlpTmJRMm5jNjVWbkVuWU5oeDJzZXg1ZHpIOFhsOVpHT283WWV0ZUZiZmFF?=
 =?utf-8?B?STk0dzlDaG1udjlybGw3TzRMc045d3lZQnNtZlJnSXNMSm43N2UybFZwTXdj?=
 =?utf-8?B?WVlTVmVSRStveUh6SVVTMEErMGZma3NCbDRVOUhUUTV6WGFub1VUR1dXcjli?=
 =?utf-8?B?bURjdGJuZ0tjeEJvcFpOandxUWRiQ05JQjczbUlhNG52M2Q3N3hnNnhhakZv?=
 =?utf-8?B?dHY2WkkyMGxlcCt4dzQyVGNlSmErdDVFZEZ6NlVxUE5oU1hVMzJhY2I1MU9t?=
 =?utf-8?B?NVMvUnhFVTZ4NEtYL0tBSFY3bmprdTVva2dUQ2ZmV2RLSTRMQzg5TGl2WmxW?=
 =?utf-8?B?T0tYelV6cEFuZWJSNG5YaTRWa2tCVUhHbysxUW1Gb2xTVDg1SXA5NGxVQTc4?=
 =?utf-8?B?Zk1BdG4xSEdtWTZVUDJCNnNYTHBobDhzSzVGNDY4aDBtNGh2cnN3RFBPeFdS?=
 =?utf-8?B?bVNieUduYVE4V0hoWVk3TDQrcktGNjJ6MFE2UHlXd09nQVZGalRKOWtEMGMz?=
 =?utf-8?B?bXI3b1ByYyt4ZHh2UDEzZzhQNEExYUFRTUxBSFp5VGJXbU1sbEEvbXBRUE9N?=
 =?utf-8?B?WXFvTFhkU2pkYnI3UG0ycUZ5L2RVR1hPUkZhSGpVVjQ1Y1RWelZ1S2FhSkRY?=
 =?utf-8?B?Mk1NbEhiTmRqT1RETDZYaFJVd2QxaUpnK3VvSS9rczZmOHVNYUJpZGJHZlIw?=
 =?utf-8?B?YzQ2TjUxODcvY2ZuOHVaUjRSeDFqU0l2WUs3WFNYb0NwMk5tMmFwUFVKNXoz?=
 =?utf-8?B?eTYvblZlb2ltczgrQ1hpVTRSSmhUcjFoQnpQSHFEeE9wVnNiZCtsTFhtSjdO?=
 =?utf-8?B?NmRtRHhsYVR0d0puV3p3YllRT1piMzRBc3ZZOGdZeUtQYVpUVFprd0paY01O?=
 =?utf-8?B?a3hoRnFvM0t5dkRueXI0NWd4aTNtM25vVFU2Tys3U3l6d1Fqa01FMWJZS29m?=
 =?utf-8?B?VitUNmRFQnJ4TlArdS9iQlNQakRvSUx4Y1phOXQ2L0luQ285Y3JrZ0xqd2V2?=
 =?utf-8?B?emFsT1cyaE1zRlpKTW5tS3F1WDNTbFY1N3gzVFhoN28vNEdQWE83cGFUZHpO?=
 =?utf-8?B?cW8zL2dhQlBYNko1amtQaXpHYWh0UlVLYmcyOUpqczIxVjNONXp0b0dqbWtJ?=
 =?utf-8?B?Z09peWhpdkloUU9mRjk3TkhISUV4bDcyZnk1YWNVM0c4c2VJaGFVT0ZpSWV5?=
 =?utf-8?B?YmN1dE1COExaOWJaUHlPRk5FU2JDR3J4UFdoaG9YMm9Pa2dPbDVoNkJiQ25J?=
 =?utf-8?B?Ty82T2phd1dWbURUU2ZLTUYxSHM0T1VVQ3BLR1N2OW9IR1BoZ3BGbG1sNlNa?=
 =?utf-8?B?Uk9ZU3ZlTlB1bmFJWG9BRkpaR1VDKy82UGEwUExFUHRpdHdMVUJ3cFZyd0l6?=
 =?utf-8?B?WWFLeTNWU21acGFoTllsN0xpbkJtMDR2ZWF1clBuZVFkSEpOOHVkakI4MmVm?=
 =?utf-8?B?YzkxaTFWTTE1N3ZzZjJXNzd1YmZXVVhORjFBWFFjR2VBcmNTS0pwaWczMTVH?=
 =?utf-8?B?VExhdXBlQk9qUHQ0UDQrcmFPNmdmRjBwL2tabWNBN05nQkdMRUZUU1c2RVpo?=
 =?utf-8?B?Q3JZQ2FncW9idWEwa0xmeFVxb1UrZTk4VUtXUUM5TkFVSXFTdFB1aWpWcXJP?=
 =?utf-8?B?cndaRkYxQWdPSS9DU296R1hMcFFKZmR4QXZ4NGlUaTZRcENnVmNHWktVeUc0?=
 =?utf-8?B?cVdXeE5vRHNTQmJZd2VGWm9yMjRLTXdaVUx3Um8wRVJUYzBZc0c0bGxNcnkv?=
 =?utf-8?B?QUROanYvcWM1TzdyWHNpb2N3VHZ0TEZNNHJrZVVPUEp0UTVZeXFnRitLOVNa?=
 =?utf-8?B?eTBJQTA1ZXlnUWFnRzk4MTZGVERFSkp0WFV1cTRNWXZWeGhDRXBNSmE0Vzlv?=
 =?utf-8?B?QmdFdEVUWGN6d0xrODVZK1B1LzZQbFNwUkF6SXpKR1Rib0hBSHBPeElXaUp3?=
 =?utf-8?B?WWp1cmlMajJPZ01lK0pod3AzV0lxYTlvZXJVVWhoMFlrVG9hRjN5dythb3dY?=
 =?utf-8?B?NHVjTUU4aDFRU2VvR0N4bmpzd0l2Q0dIaTVpWDNIS3o5WDF2UUEvaThIN2hW?=
 =?utf-8?B?WFptbzNyWDhWQUdPdTIwR1BwTUhCbDh5R1NEeC90c0VCKy9tVEt3ZnFTaWlJ?=
 =?utf-8?B?SHc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e84c11c-8467-4386-54c5-08de27572980
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2025 10:34:04.6617
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vLAo9O3RJgLVaQzKymKykjmjIrkSxFsbfw/rD3G+hXRYETA5IDj22y4Eu+9i8HBQfTIrHs6RUOA42tO2o67/pcQdae+G3PSIegjeIfxeu/E=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR03MB7747

On 23/10/2025 10:12 am, Teddy Astie wrote:
> diff --git a/xen/drivers/passthrough/vtd/intremap.c b/xen/drivers/passthrough/vtd/intremap.c
> index 612e08bcec..a276518c52 100644
> --- a/xen/drivers/passthrough/vtd/intremap.c
> +++ b/xen/drivers/passthrough/vtd/intremap.c
> @@ -411,11 +411,8 @@ unsigned int cf_check io_apic_read_remap_rte(
>  
>      if ( remap_entry_to_ioapic_rte(iommu, index, &old_rte) )
>          return __io_apic_read(apic, reg);
> -
> -    if ( rte_upper )
> -        return (*(((u32 *)&old_rte) + 1));
> -    else
> -        return (*(((u32 *)&old_rte) + 0));
> +    
> +    return rte_upper ? old_rte.high : old_rte.low;
>  }

This hunk introduces trailing whitespace where there was none previously.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 10:48:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 10:48:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165747.1492435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLfjl-0001lA-Nn; Wed, 19 Nov 2025 10:48:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165747.1492435; Wed, 19 Nov 2025 10:48:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLfjl-0001l3-LA; Wed, 19 Nov 2025 10:48:33 +0000
Received: by outflank-mailman (input) for mailman id 1165747;
 Wed, 19 Nov 2025 10:48: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=nJND=53=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLfjl-0001kx-14
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 10:48:33 +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 49763fc2-c535-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 11:48:30 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b736d883ac4so900510366b.2
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 02:48: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
 a640c23a62f3a-b73783ef841sm1211542066b.46.2025.11.19.02.48.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 19 Nov 2025 02:48: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: 49763fc2-c535-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763549310; x=1764154110; 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=TLGEmdvkhlxZaIiBvk+4EcXTetBTuqQsxNhCoxttbh0=;
        b=Kdyz+VWmXIlxzTCJC1TMWI4KVB83/YjDfgOkeile7Vuk/AzkbFQvYuNd4yTFqcp9os
         APkd92AkV/KgbPatWd6lDU1iRkQAxX3+oakZxEq6+Y0LBdfgfz3wgIlO8Hb1psWwcvTA
         Q9FpDdbrf+2nRUEckZUrV3xtRA7MM1aLjhhfXKwwntJTghqWnZV9yIIKoUl0xBe8ec/2
         NdQwr8WLIbmDCTy9QNsVd2dpS1p18yPO1/vfDqV9p9aPsyvIuVo/qWTqgn3uXwHShSN2
         I7fAZDRqFWClBzNmLC+ccaKsvA/dPKKIadyxMIvqLBfse1oWz8dII3vU3ejQCO2t8rJN
         8mxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763549310; x=1764154110;
        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=TLGEmdvkhlxZaIiBvk+4EcXTetBTuqQsxNhCoxttbh0=;
        b=h2jFuMSTnqI0N7mU8gEqz5N02IO5rzUFO9Kzr8vjrjljIBT8GSEnfLDqwbvZktcmY1
         v+Zk8QWzlRpazIymq/v0ai7gf+mzpwTeAndyJzyzvD+DfeySJdy0KqnUbx2v1G75SEJm
         Dg02yWELBpz51dtxgjkmOXJTOn2oAmRu97au5kB2UfvbO1zf2a02ZyT4PVDfRnc1I56m
         H31M21FJq29f1N3Z82hII44MIP65oW1qtTbPHn6/NVYrx6+npOAPjYqGwTseX0ZV9G/E
         IQKnmRuaJ7+2pj3ERXLQZnIHiVtiyl9DwjqRV/yra1KhoECEaSiUSGssbp0aqIgw96fp
         IL0w==
X-Gm-Message-State: AOJu0YxIUdo0NzkwZVGtT1+9E84ZhQMS9GIANG7M1otZfU3XPw0b7ung
	zrg8eqTwmte9pltL05rQ1QnjjXcSPDHLo+FFbhoXQU0SWVR0So77LFw1U6PPvaEDQWyQ8mJHsy4
	hloc=
X-Gm-Gg: ASbGncsA+sR3S2AXUMeJdKvmgQSB7WJfske6ts1vjwoOeajV4Vb0hxgoI5cwAyXlJQZ
	rbSZ2vTurjcqqYi/tQioFPl6GKRGqjeLudPJxXRzAJWikQaViQ3Wmxcyoc7QYdjNaOSDHCQT8eH
	FBPDmMlhyhSgo2FmUWcOKZMWVx7cSjTRA0Np9IuE8JPtYLaLxFQbuXgdeDx+76aUC9KfQzGizqR
	fvYpSWxWn3MQrbRCxOtr5x+VwyrJTjvvCqGA6s+9e8f1B/UGOY2z/zEv+ECRx8ZXMyMJEdMw40E
	WIZ/v1QEyM0yylJOC9Qrj1Z/MXEG+AmOAVhGnplnHURO0Ym43mP1Xj9aPPp85aKJG8daDgL6V2M
	7ge/HvRwdspoAJTxHczoDtRiPADfd4bzH3fvaS5tcQQIrnKPbAhCQ4tD1+swrGf+ULCzcous0P8
	0YO/kxUu92RVipSWMmIGNaVq0dVxEzAhlYU/oB8YOykR5CFnbUYFudVn06Lvq4noEnyjxlZGdq/
	+Q=
X-Google-Smtp-Source: AGHT+IGHUkMfRX7SiWA9Eh6EUJeXj5S3wnn+8Bmf/wGh1H4J5+scxZxqgxihQQaZR4OwXfUNRCuAqQ==
X-Received: by 2002:a17:906:9fc1:b0:b73:885b:7554 with SMTP id a640c23a62f3a-b73885b857fmr1413292466b.45.1763549310098;
        Wed, 19 Nov 2025 02:48:30 -0800 (PST)
Message-ID: <fbc9a2f8-170a-4645-8836-c90c42ad726f@suse.com>
Date: Wed, 19 Nov 2025 11:48:28 +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/4] x86: direct APIC vector adjustments
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The setting up of such vectors really is a boot-time-only thing. vPMU also
doesn't need any vector when it's no in use anyway (which is the default).

1: guest: move allocation of Xen upcall vector to init code
2: MCE: restrict allocation of thermal and CMCI vector to BSP
3: IRQ: direct-APIC-vector setting is now init-only
4: vPMU: don't statically reserve the interrupt vector

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 10:50:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 10:50:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165757.1492445 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLflJ-0003Dv-1S; Wed, 19 Nov 2025 10:50:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165757.1492445; Wed, 19 Nov 2025 10: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 1vLflI-0003Do-UA; Wed, 19 Nov 2025 10:50:08 +0000
Received: by outflank-mailman (input) for mailman id 1165757;
 Wed, 19 Nov 2025 10:50:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nJND=53=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLflH-0003Dg-HS
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 10:50:07 +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 829b57e2-c535-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 11:50:06 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-6419b7b4b80so9776895a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 02:50: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
 4fb4d7f45d1cf-6433a3d8775sm14817729a12.5.2025.11.19.02.50.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 19 Nov 2025 02:50: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: 829b57e2-c535-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763549406; x=1764154206; 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=lK2Mi18t8Rxkch5T8qqE7ShIv2l4kzNr0A0IpujOPGk=;
        b=K5O31HBQ17SzlA1lvKm5VpuWR/ElRaNkBU/R5fhT6QmUJ8P4YQ98vRhLVX4IoFRn3P
         M/WLso7/FdhSM6wIYqEwov+eKbubPdcTSxv1RGZrnQ12NvTHbrCXdbQy4I38IuVAyFub
         5xqklwconi6ScAHazeKXlwEo+xp72JlTikUaM4LypOhwKe7OUZLF+8JRY6QZMj1IlFBd
         kfTbnLY6QOnsdPoRXdggyTxs8QsWmtsV9wa3DTIQpxJJr44ODbJtGE3SA3KmgdfB7owK
         s4mmK/tq/JnIbNDvY4z5XdsYhXlrDP6cXTL/7NGUwTHuoZF9h1xDitONu+htx2L6wTTo
         zeow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763549406; x=1764154206;
        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=lK2Mi18t8Rxkch5T8qqE7ShIv2l4kzNr0A0IpujOPGk=;
        b=Ewr9ZZNO9N88M1bvrXSYQlwv2SHRfbXVjgCvcnqDfcRFuEG8T/RTz3Fkd99VA31VWV
         5V3XJoTTk8VX5jh90PEjNxST/fc4gJjvbgp0yh5uKK8d3N1+bBGwWwWuh9/sqA1ZHDei
         KeT1d4lHbD5ZM04Nub8j8kZzeH4qAiic1HPupJkZQqG/ls/38gpQjGx5GSrbhQKdgjog
         LyxQcUyBLlmdo1WSVPzmMd31YCETng7RE2ToZgIylRMDZ9yZ3eBlU8dAKuekTqu/7VCu
         9OFrBhJKVgVRbwqFFmdII7GvgjNe25ZWmFjgwaFqgXRmfhIzA7H73Np0j0qQyZDfTSfS
         oddw==
X-Gm-Message-State: AOJu0YyrYSmGM66/XnRgcnWPD+qopxsSPn3N9uqUKGa54XA2GS9Jr+n7
	aZ90al25uAynihGmPuSG7efvpFF2UDMJQF1EtNj/oG4zldFlqlTzGZStzfpHjaDjSwzClTzgrRw
	lwmY=
X-Gm-Gg: ASbGncsl/C1mwmN0EYZGgvIiodkGRjK5nlJVs6/FRMRo2l5AE3blL48RXrb3/bCiBh2
	R/hjj/zRTT8KNOyaZ3iBpSBHL/kbXnkWz4LM2QIR1r26ffNj8UPaDdUEX6vJyokjJ0SgDWp2D4S
	57fCV8OMtRALfo36Bi9pZMvSUhzROJQBA1pbwq1hjdtJKQRcINeEDhmddbzz/8dwfoE7wF5B/vq
	P4K7+jf8SCoaHs5SE+Sn3NgmwWRcrFbRmVW3/YvEwoXTljbc9W285Xe1MAbCl79NPFKTDMYch47
	F1CTkh2zTuQ5aPEOdDBMSQPGMeQMw9nbVFhVw4gE5u1BX96GGuMPNL/F3sz7MHXtB9mi6NNEvku
	VsI0XLStHXsl0uFABldNlO7LU6ArfC0bCZTBYM0PP3tBE+iQ6Chi2MKQkQhpJ659cRY9DThJxPT
	VmqesBZiuIFwySA0Wp4mCNjjJsAj/+twSIyi7Q3y8Xy5aWfkattUaAz63NDKiEn7VbhVlg0Y1BS
	mMuv526lL4oymp/lK16O+9v
X-Google-Smtp-Source: AGHT+IEqxxpjSt+O5RXVgWwMrFHFihOSiWNxj4fki2yqblLF5mxuS/pdeObbIjugdfN80OhHk8I2mg==
X-Received: by 2002:a05:6402:518a:b0:641:27d8:ec3f with SMTP id 4fb4d7f45d1cf-64350eac3e6mr17397428a12.29.1763549405864;
        Wed, 19 Nov 2025 02:50:05 -0800 (PST)
Message-ID: <5ccf9000-9847-40de-838e-cb181633b098@suse.com>
Date: Wed, 19 Nov 2025 11:50:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 1/4] x86/guest: move allocation of Xen upcall vector to init
 code
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: <fbc9a2f8-170a-4645-8836-c90c42ad726f@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: <fbc9a2f8-170a-4645-8836-c90c42ad726f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

There's no need to do this every time init_evtchn() is called. Just do it
once when setting up CPU0. Drop the assertion as well, as
alloc_hipriority_vector() (called by alloc_direct_apic_vector()) uses more
restrictive BUG_ON() anyway. Then evtchn_upcall_vector can also validly
become ro-after-init, just that it needs to move out of init_evtchn().

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

--- a/xen/arch/x86/guest/xen/xen.c
+++ b/xen/arch/x86/guest/xen/xen.c
@@ -233,16 +233,12 @@ static void cf_check xen_evtchn_upcall(v
     ack_APIC_irq();
 }
 
+static uint8_t __ro_after_init evtchn_upcall_vector;
+
 static int init_evtchn(void)
 {
-    static uint8_t evtchn_upcall_vector;
     int rc;
 
-    if ( !evtchn_upcall_vector )
-        alloc_direct_apic_vector(&evtchn_upcall_vector, xen_evtchn_upcall);
-
-    ASSERT(evtchn_upcall_vector);
-
     rc = xen_hypercall_set_evtchn_upcall_vector(this_cpu(vcpu_id),
                                                 evtchn_upcall_vector);
     if ( rc )
@@ -293,6 +289,8 @@ static void __init cf_check setup(void)
                XEN_LEGACY_MAX_VCPUS);
     }
 
+    alloc_direct_apic_vector(&evtchn_upcall_vector, xen_evtchn_upcall);
+
     BUG_ON(init_evtchn());
 }
 



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 10:50:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 10:50:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165764.1492455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLfli-0003hE-8O; Wed, 19 Nov 2025 10:50:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165764.1492455; Wed, 19 Nov 2025 10: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 1vLfli-0003h7-4m; Wed, 19 Nov 2025 10:50:34 +0000
Received: by outflank-mailman (input) for mailman id 1165764;
 Wed, 19 Nov 2025 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=nJND=53=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLflg-0003Dg-GW
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 10:50:32 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9199e2b2-c535-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 11:50:31 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-640e9f5951aso1183527a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 02: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
 a640c23a62f3a-b734fad4494sm1575027766b.18.2025.11.19.02.50.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 19 Nov 2025 02: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: 9199e2b2-c535-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763549431; x=1764154231; 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=loYtzp0ab1X2xMw5ZpAYNU+RwEo6LK1Qt3iW0KjPiTQ=;
        b=QTzRlye3nn6iWQha3i7xHxibutqPNlfTuiEjo0mkXmYhg4M40J27w32dJswhU1AGCN
         7UqA3DPvr+F2A82Ayfo4G0ecckBZMFc+/ImgRGZxCnVAXyA98you+XmpbVFnmTUNYyGt
         wUUgdyybJteytq0ZoTSt7ejT6G8kmFEIhxSx8vOeYaEqZn2glBcFLuTjHl+7cS/hZwvs
         ew+d9BisoaB+l/kNj7hZxGbaorLGEenrmsCkIkWiGLbPvxvzvUY8YnDvFU2Non8mXLmf
         Vl3CVsWJzaJmGX1QzzUWnwgTkP8HIeDTCUeM8RK89iF+SZ/ZfhZ6TMHOR0k0nKWxU84o
         MSPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763549431; x=1764154231;
        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=loYtzp0ab1X2xMw5ZpAYNU+RwEo6LK1Qt3iW0KjPiTQ=;
        b=XNqUMOC1XNRjYljgmHhvhsxLsZYdOdLrgwpTfegnlsx6umDwsiF4wz1AMPpBhvWb8T
         zmIaEQruzB/3eTlcNfBZuXmOVbGt8//1zwqFsZ+tY9m95d51GnZZR52/K2hns1N8gzlO
         ujGCvsMGrqU7+eHcq6C2Al17U6CClui6eyGCY6UmiuWyqGQR+VKcrPagO0pUgkwOl8RL
         urlL5pQgrov2Vyh92g3hwDbd6lPQawnjs0zYpShjLUByIfUSLEiNaarcxk8chTGQlcYE
         SSpuv7kINJCPEOJZUrblzljDlp0H/Z0RIfSTmG01PLDgVOysnHpwqAZLBE9LyM93j2du
         K9zQ==
X-Gm-Message-State: AOJu0YwnTuME3CNI+iiQ/0hFaNKnHrL7DDZgt3Az3M6cBmHGyGA5tkMI
	xDB65g0qqkvzC3rFN8zQDxVKenCQABSZNUkJ7eZSBcOCRXWdh+3ohs5qJUg0sH0bNB5f2+uFdEZ
	Wg94=
X-Gm-Gg: ASbGnctxceg64vvJ3URY+gam0wYzrtkhH+hGUXDWutNdJ6isDiTELLCAz0ypoprBTXM
	hiVxGLl1cbkioy6QNNaErlBpd6wvaqQSxbDFa+bG5zhxaOwnLyESohOGomh70xMtyLUdrE2MX7/
	kFlqQtf8PJncxEbeDK19UE5+MQ6yp5ar4SQTF24UlHihO9YHCIRVoEWBzpc42WlUHCvOfD7z00C
	UMEX5rZqsoAgRpel2LYdFZvlkNfe5jH0H7w5jBZ+Jz8GUeHmx8ggmaKwOppxIqNW94c+abaWXAB
	nWOe4K1+Y7IUmDSSOIAMOtRlwFyzo8RMAzVCk700E2rX4duohJm0CJa/4wsaT8AqPWVpXpRdZlK
	oYCj5aYwZPGpVvILC0ZsKnz4H61xFI+Y5+rLiusqnAmRAAKjriZbchvjGm2aAuV0m6XUe7potBZ
	8E3n7JSVQFMqqRoqHcgyz6k6nBhTxi5zoQWrmnbawCnhkhBppDqinvSWSOk6O4gpb69miJQq+1c
	+E=
X-Google-Smtp-Source: AGHT+IGTSa2SoqaSM6MxzZVV6krh/0JZvl3sKjNYS5ilfrS4p5hFfhVobIvSqhuabRs2iEnGysniFg==
X-Received: by 2002:a17:907:9625:b0:b73:9222:6a64 with SMTP id a640c23a62f3a-b7638d02056mr241902266b.3.1763549431096;
        Wed, 19 Nov 2025 02:50:31 -0800 (PST)
Message-ID: <638d0954-e889-41ee-b277-282f83170c69@suse.com>
Date: Wed, 19 Nov 2025 11:50:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/4] x86/MCE: restrict allocation of thermal and CMCI vector
 to BSP
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: <fbc9a2f8-170a-4645-8836-c90c42ad726f@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: <fbc9a2f8-170a-4645-8836-c90c42ad726f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

There's no need to do this for every AP; just do it once when setting up
the BSP. Then both vector variables can also validly become ro-after-init.

While touching intel_init_thermal(), constify its 1st parameter, which
in turn requires touching intel_thermal_supported() as well.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
This contextually (but not functionally) collides with "x86/MCE: adjust S3
resume handling".

--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -37,7 +37,7 @@ bool is_mc_panic;
 DEFINE_PER_CPU_READ_MOSTLY(unsigned int, nr_mce_banks);
 unsigned int __read_mostly firstbank;
 unsigned int __read_mostly ppin_msr;
-uint8_t __read_mostly cmci_apic_vector;
+uint8_t __ro_after_init cmci_apic_vector;
 bool __read_mostly cmci_support;
 
 /* If mce_force_broadcast == 1, lmce_support will be disabled forcibly. */
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -87,7 +87,7 @@ static void cf_check intel_thermal_inter
 }
 
 /* Thermal monitoring depends on APIC, ACPI and clock modulation */
-static bool intel_thermal_supported(struct cpuinfo_x86 *c)
+static bool intel_thermal_supported(const struct cpuinfo_x86 *c)
 {
     if ( !cpu_has_apic )
         return false;
@@ -110,13 +110,13 @@ static void __init mcheck_intel_therm_in
 }
 
 /* P4/Xeon Thermal regulation detect and init */
-static void intel_init_thermal(struct cpuinfo_x86 *c)
+static void intel_init_thermal(const struct cpuinfo_x86 *c, bool bsp)
 {
     uint64_t msr_content;
     uint32_t val;
     int tm2 = 0;
     unsigned int cpu = smp_processor_id();
-    static uint8_t thermal_apic_vector;
+    static uint8_t __ro_after_init thermal_apic_vector;
 
     if ( !intel_thermal_supported(c) )
         return; /* -ENODEV */
@@ -160,7 +160,8 @@ static void intel_init_thermal(struct cp
         return; /* -EBUSY */
     }
 
-    alloc_direct_apic_vector(&thermal_apic_vector, intel_thermal_interrupt);
+    if ( bsp )
+        alloc_direct_apic_vector(&thermal_apic_vector, intel_thermal_interrupt);
 
     /* The temperature transition interrupt handler setup */
     val = thermal_apic_vector;    /* our delivery vector */
@@ -667,7 +668,7 @@ static void cf_check cmci_interrupt(void
         mctelem_dismiss(mctc);
 }
 
-static void intel_init_cmci(struct cpuinfo_x86 *c)
+static void intel_init_cmci(struct cpuinfo_x86 *c, bool bsp)
 {
     u32 l, apic;
     int cpu = smp_processor_id();
@@ -687,7 +688,8 @@ static void intel_init_cmci(struct cpuin
         return;
     }
 
-    alloc_direct_apic_vector(&cmci_apic_vector, cmci_interrupt);
+    if ( bsp )
+        alloc_direct_apic_vector(&cmci_apic_vector, cmci_interrupt);
 
     apic = cmci_apic_vector;
     apic |= (APIC_DM_FIXED | APIC_LVT_MASKED);
@@ -993,9 +995,9 @@ enum mcheck_type intel_mcheck_init(struc
 
     intel_init_mce(bsp);
 
-    intel_init_cmci(c);
+    intel_init_cmci(c, bsp);
 
-    intel_init_thermal(c);
+    intel_init_thermal(c, bsp);
 
     intel_init_ppin(c);
 



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 10:50:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 10:50:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165771.1492464 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLflz-00046f-IQ; Wed, 19 Nov 2025 10:50:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165771.1492464; Wed, 19 Nov 2025 10: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 1vLflz-00046A-Fa; Wed, 19 Nov 2025 10:50:51 +0000
Received: by outflank-mailman (input) for mailman id 1165771;
 Wed, 19 Nov 2025 10:50: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=nJND=53=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLflx-0003Dg-JX
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 10:50:49 +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 9be3f6e7-c535-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 11:50:48 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b73161849e1so1208365366b.2
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 02:50: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
 a640c23a62f3a-b734fa80bf5sm1616900566b.3.2025.11.19.02.50.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 19 Nov 2025 02:50: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: 9be3f6e7-c535-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763549448; x=1764154248; 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=eRIw90P1ahcneHzGRMqLxQ5Dx5L/DYU6UEQ17i/AD+g=;
        b=EKOJLhcqmTjoGEfPNDGekkVV3GMrM8XutPH5ygp+PgbvsvDpZVp41ovXdP0r/oSDtk
         m9c2ovprDXh9jOvTEjZ21Pq+MK4TspzIXGPQbtJsKgk30QTGxyaqonb4g4PvnjVolZ7x
         AK9BT5RoI0UaT5Za1BHOVHT7f+h9r1Kfvyj2vEG3Wwnc8ZeIOy05otxlJMMkxd83AG7N
         IIcrvNKblQHcgvDoI+eaG5/i9x1mcfTxHmC3yEfgKrVLXnwglF2T/kwW0ladfejoDFkx
         ZyBqmxyCCJ/063Co1mwCSKOckSoWgOk9d6+bJpXHlankZ/B3KUtWjbWB4MNj7dLrjtRu
         Anww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763549448; x=1764154248;
        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=eRIw90P1ahcneHzGRMqLxQ5Dx5L/DYU6UEQ17i/AD+g=;
        b=MulAyCXphTqPYrs+YS+lUr0K30UAzk3NZsQeWS+Evl6e5cKgye3OqH2yis3AEJxBbE
         H+Tmaddjs0OkETEgtnoIRt/KgBSfblNiTQFVnLx9k6S55BUG3r6ouzGfjitteRpDt5SD
         0hAPGrel7NXPwALtTrvlUwXQ5GHbnBJTzvBXswoxHTXR0bGXS3C1uNd9rrgvRRn6hCCh
         YO2ok6X1foy5J6jWUJMAkEiYuW2LsfHA4nqci29DuFi5nG8QMda3Np1SIm0PnG0GpYuo
         kxkYeZHZgk5nnEORHkmc93HQz9qr0v+eRUg7wTGeEqzv4IzlnKnheOqFJcjxUF51lIz1
         nu0g==
X-Gm-Message-State: AOJu0YyWNFr0F7QF/3q9txpIUKhg1hqe5TY4KlExoXGny0Axn6VVjDSx
	76/cCZ0xgYqjyD7BLSH0vkyiCwIEdm1pur4T8kaXHTmUNTEpWpyp61Sy3F3olfziT+RN0pPxmp9
	MRpc=
X-Gm-Gg: ASbGncsT5LUzQ1kl+p6wfGdXYwB8q1NAcFBQTorRYvgpwdbDANaPqAFXkMdXCDr3aYR
	RhoRIrh6kgt/KO6jiqB1PCauVCyTp3l6whVS/S7J8LQoMa7QvJbCF3AMckXRE9omvM+8ujk9tEl
	rmieiDOXKx60otLRcQCVRB9T8PYiHgoLX6FE+JgoTa5c77JSahGAyupBSqbnJ70CtCjot67OE81
	PIO/1i/uNiGAJS0KIXBVeqetj7m/gN80jWbQmMhQoSjG/8CPZ5V4X5VkDF9UPwqcC5lMFXKvASR
	P5ftSI78RslA4wLGF3Dam4mXcveQYS9ZmcgAL020+/sVi6rmF7zLLDsmFUmEd0vI20ad5sDy5KH
	2DLArPLXHUhrC6KpVYkEgCGE7/yR7/LiStgI1w68Iu93IOm/+5ME+yR+oay8PEvQEUK1m5ylGW/
	4fNQgNK7nrluNXsvkTZxA9g6B+bozV5Hcm5qzQY/6UqD8F0zXElnRD/HeoJnVQb7GIg9VlpbhX4
	YlhriZ67UZwCxz66+OY+NbJ
X-Google-Smtp-Source: AGHT+IH5Debcdi1hBvibEqbG4IgnnstzobN5hsYPDLb/0BEFtc6X1L4wNV9cXEsV54VeOfBtNuurNg==
X-Received: by 2002:a17:907:3f99:b0:b73:3f7d:3df with SMTP id a640c23a62f3a-b76379a1cf0mr198206866b.41.1763549448161;
        Wed, 19 Nov 2025 02:50:48 -0800 (PST)
Message-ID: <3d412bdf-e053-44f2-b51a-300f9cb3e775@suse.com>
Date: Wed, 19 Nov 2025 11:50:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 3/4] x86/IRQ: direct-APIC-vector setting is now init-only
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: <fbc9a2f8-170a-4645-8836-c90c42ad726f@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: <fbc9a2f8-170a-4645-8836-c90c42ad726f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

With all callers of alloc_direct_apic_vector() now being limited to BSP
setup, it and its helpers (whose other callers have already been init-
only) can become __init. As a result data items can be adjusted, too.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Question is whether with this the "if (*vector == 0)" in
alloc_direct_apic_vector() is of much use anymore.

--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -970,22 +970,22 @@ void pirq_set_affinity(struct domain *d,
 DEFINE_PER_CPU(unsigned int, irq_count);
 static DEFINE_PER_CPU(bool, check_eoi_deferral);
 
-uint8_t alloc_hipriority_vector(void)
+uint8_t __init alloc_hipriority_vector(void)
 {
-    static uint8_t next = FIRST_HIPRIORITY_VECTOR;
+    static uint8_t __initdata next = FIRST_HIPRIORITY_VECTOR;
     BUG_ON(next < FIRST_HIPRIORITY_VECTOR);
     BUG_ON(next > LAST_HIPRIORITY_VECTOR);
     return next++;
 }
 
-static void (*direct_apic_vector[X86_IDT_VECTORS])(void);
-void set_direct_apic_vector(uint8_t vector, void (*handler)(void))
+static void (*__ro_after_init direct_apic_vector[X86_IDT_VECTORS])(void);
+void __init set_direct_apic_vector(uint8_t vector, void (*handler)(void))
 {
     BUG_ON(direct_apic_vector[vector] != NULL);
     direct_apic_vector[vector] = handler;
 }
 
-void alloc_direct_apic_vector(uint8_t *vector, void (*handler)(void))
+void __init alloc_direct_apic_vector(uint8_t *vector, void (*handler)(void))
 {
     static DEFINE_SPINLOCK(lock);
 



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 10:51:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 10:51:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165786.1492475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLfmI-0004cz-Ow; Wed, 19 Nov 2025 10:51:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165786.1492475; Wed, 19 Nov 2025 10: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 1vLfmI-0004cs-Lt; Wed, 19 Nov 2025 10:51:10 +0000
Received: by outflank-mailman (input) for mailman id 1165786;
 Wed, 19 Nov 2025 10: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=nJND=53=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLfmG-0003Dg-Kj
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 10:51:08 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a71dca3f-c535-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 11:51:07 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b736cd741c1so820364766b.0
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 02:51: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
 a640c23a62f3a-b734fedb2eesm1580727666b.68.2025.11.19.02.51.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 19 Nov 2025 02:51: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: a71dca3f-c535-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763549467; x=1764154267; 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=UtnZFSIGU7bG1vfdAcW2qaHOgH8mtrYWLBBQLVZWajw=;
        b=JMDx/mazn8LOGl1CnahVgsdpLuwMZqvljBKmaKpeV2qxkDJEwMv7JE8MVt/cK8n+XK
         +onHGPCa/u9psOtq0jKc9fAueTxfD/hcltvytc3nU+NMn83hF1djsQq7m1IXaihwqffl
         ZAwasDOT92z5MQyn1MILi0rchPf+GQlMrqN6UBEwPxUp8vV2we7Egna1pya4efnJzBtP
         nTkkYwMgziT4D4Ekpp0QxBeMKbfKFdPsTxLuZcD8j/0+Eruj02rluMSIW7kBdsTWWXeO
         iZhuqHz6MbnWKxqS1OkVyNNwZ2B7AwIOn/6kjbQMvvORfUCBhTHCxADuZ4onRlQ3m0Ci
         +qng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763549467; x=1764154267;
        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=UtnZFSIGU7bG1vfdAcW2qaHOgH8mtrYWLBBQLVZWajw=;
        b=SII/+GezYzHlKFMeOV/oYXNaG4ux9KI2tXmrqnxSwV5UvO+82h9DLzWo7uedNlIM17
         DZNXmCid/u4xDdO4vJgbgUbF7X83h1v/2Jz62PhB3sqOf6SJ+nml3YxksgR7W55lTgaV
         285nIjPHZJpD8dT5nv2mS74xlJtI2Q40qXwDxDxlP8ZLnbnm1YStcBeEj1OFj1pzTrJk
         6CkkMlTH9xisVDA/j/MuCpAJet6myKOU+2uQYsQyBTUu+tsfEbaax6s9weCD/I8/cbF7
         /7pyIAsR5jjCJS9GvrD/uBkthXJXBKd2M8Vaon5+JYDA0f4uShAbfXhdDLdO+Lr6aZ9t
         UdLw==
X-Gm-Message-State: AOJu0YymXrUwoCUKOdmQ0Q8dXl3xKQFbMpSKiG0RpllTYttwW4CH4iwB
	LdcbkzWZxej/ZOHEU4yu0bX8qGCyVraanW/qoVg+pULy58tvwZrn4UIv/xzlKYztzQbmsiKFNvE
	9XG4=
X-Gm-Gg: ASbGnctuCuI1rGtXZIPTIffxClMwy8sm+5hUKDYd4YqR7EXJ6iiLBeebSN0D7OdgxXV
	QRybmDBNyDj5Y+VvU93GOojjgFipjMCjxISWUAw+uHygUnahbYpsIil6jsXhB+NQ34VEbEJyxgN
	l5uhi/pBofbOBVBO2+8azPwKvL4DB48Y5bSdhj9voWnpcma0bK/g9RlOfTPZwIWJidsjfqz+/Jp
	POqfQaspq1vokH8fQ2U6cK5zPEiZp71GAbFceTW0c/R7t0aDd7IkIkLKNyxXmXONReuBZJUsqA/
	Z/5h40N//N4h1ZKpnGPJU+Tzy1kaLYdjItMOIGJX8dcY4HuGHmh7nlczL0S8HXFn7qIt6RlgYUj
	UcrJWK2xYenFgz5lka5xAWP1hCD9YYhFvoE+l2Ooy57hks4pLk2F75Hv8aOXepr7WiekHWEFRr9
	i3BrwCWDpu+HmG0fmn/ayAmkEljKXHsvo2IYuO1XNYSh4XpihKnLSN8GusBDigCeq27923rg0G1
	dfAB6U23OZSmul0mb+6VpZ2
X-Google-Smtp-Source: AGHT+IE2WtzPthZ9szFJm6vcoB7pTMXSg78Zs6a7lb6QJzF8tCzGLaldMkWOBo/FvokuUh0HrOh19w==
X-Received: by 2002:a17:906:c103:b0:b72:5bdf:6074 with SMTP id a640c23a62f3a-b7637897967mr247384266b.20.1763549467155;
        Wed, 19 Nov 2025 02:51:07 -0800 (PST)
Message-ID: <06f2081b-64e0-47f5-b66a-26363979cfdb@suse.com>
Date: Wed, 19 Nov 2025 11:51:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 4/4] x86/vPMU: don't statically reserve the interrupt vector
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: <fbc9a2f8-170a-4645-8836-c90c42ad726f@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: <fbc9a2f8-170a-4645-8836-c90c42ad726f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Move the setup to vPMU code, doing the allocation of a vector only when
one is actually going to be needed. With that the handler function also
doesn't need to be split across two places anymore.

Add the freed up vector to the dynamically allocatable range.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
In case down the road we also want to have a build mode with vPMU code
excluded, this may also simplify things a little there.

--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -1313,16 +1313,6 @@ static void cf_check error_interrupt(voi
            entries[3], entries[2], entries[1], entries[0]);
 }
 
-/*
- * This interrupt handles performance counters interrupt
- */
-
-static void cf_check pmu_interrupt(void)
-{
-    ack_APIC_irq();
-    vpmu_do_interrupt();
-}
-
 void __init apic_intr_init(void)
 {
     smp_intr_init();
@@ -1333,9 +1323,6 @@ void __init apic_intr_init(void)
     /* IPI vectors for APIC spurious and error interrupts */
     set_direct_apic_vector(SPURIOUS_APIC_VECTOR, spurious_interrupt);
     set_direct_apic_vector(ERROR_APIC_VECTOR, error_interrupt);
-
-    /* Performance Counters Interrupt */
-    set_direct_apic_vector(PMU_APIC_VECTOR, pmu_interrupt);
 }
 
 /*
--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -40,6 +40,8 @@ static struct arch_vpmu_ops __initdata v
 static DEFINE_SPINLOCK(vpmu_lock);
 static unsigned vpmu_count;
 
+static uint8_t __ro_after_init pmu_apic_vector;
+
 static DEFINE_PER_CPU(struct vcpu *, last_vcpu);
 
 static int __init cf_check parse_vpmu_params(const char *s)
@@ -94,7 +96,7 @@ void vpmu_lvtpc_update(uint32_t val)
 
     vpmu = vcpu_vpmu(curr);
 
-    vpmu->hw_lapic_lvtpc = PMU_APIC_VECTOR | (val & APIC_LVT_MASKED);
+    vpmu->hw_lapic_lvtpc = pmu_apic_vector | (val & APIC_LVT_MASKED);
 
     /* Postpone APIC updates for PV(H) guests if PMU interrupt is pending */
     if ( has_vlapic(curr->domain) || !vpmu->xenpmu_data ||
@@ -160,7 +162,7 @@ static inline struct vcpu *choose_hwdom_
     return hardware_domain->vcpu[idx];
 }
 
-void vpmu_do_interrupt(void)
+static void cf_check vpmu_interrupt(void)
 {
     struct vcpu *sampled = current, *sampling;
     struct vpmu_struct *vpmu;
@@ -169,6 +171,8 @@ void vpmu_do_interrupt(void)
     uint32_t vlapic_lvtpc;
 #endif
 
+    ack_APIC_irq();
+
     /*
      * dom0 will handle interrupt for special domains (e.g. idle domain) or,
      * in XENPMU_MODE_ALL, for everyone.
@@ -369,7 +373,7 @@ void vpmu_save(struct vcpu *v)
 
     vpmu_reset(vpmu, VPMU_CONTEXT_SAVE);
 
-    apic_write(APIC_LVTPC, PMU_APIC_VECTOR | APIC_LVT_MASKED);
+    apic_write(APIC_LVTPC, pmu_apic_vector | APIC_LVT_MASKED);
 }
 
 int vpmu_load(struct vcpu *v, bool from_guest)
@@ -432,7 +436,7 @@ static int vpmu_arch_initialise(struct v
         return ret;
     }
 
-    vpmu->hw_lapic_lvtpc = PMU_APIC_VECTOR | APIC_LVT_MASKED;
+    vpmu->hw_lapic_lvtpc = pmu_apic_vector | APIC_LVT_MASKED;
     vpmu_set(vpmu, VPMU_INITIALIZED);
 
     return 0;
@@ -860,6 +864,8 @@ static int __init cf_check vpmu_init(voi
         register_cpu_notifier(&cpu_nfb);
         printk(XENLOG_INFO "VPMU: version " __stringify(XENPMU_VER_MAJ) "."
                __stringify(XENPMU_VER_MIN) "\n");
+
+        alloc_direct_apic_vector(&pmu_apic_vector, vpmu_interrupt);
     }
     else
     {
--- a/xen/arch/x86/include/asm/irq-vectors.h
+++ b/xen/arch/x86/include/asm/irq-vectors.h
@@ -8,13 +8,12 @@
 #define EVENT_CHECK_VECTOR	0xfc
 #define CALL_FUNCTION_VECTOR	0xfb
 #define LOCAL_TIMER_VECTOR	0xfa
-#define PMU_APIC_VECTOR 	0xf9
 /*
  * High-priority dynamically-allocated vectors. For interrupts that
  * must be higher priority than any guest-bound interrupt.
  */
 #define FIRST_HIPRIORITY_VECTOR	0xf1
-#define LAST_HIPRIORITY_VECTOR  0xf8
+#define LAST_HIPRIORITY_VECTOR  0xf9
 /* IRQ0 (timer) is statically allocated but must be high priority. */
 #define IRQ0_VECTOR             0xf0
 
--- a/xen/arch/x86/include/asm/vpmu.h
+++ b/xen/arch/x86/include/asm/vpmu.h
@@ -99,7 +99,6 @@ static inline bool vpmu_are_all_set(cons
 
 void vpmu_lvtpc_update(uint32_t val);
 int vpmu_do_msr(unsigned int msr, uint64_t *msr_content, bool is_write);
-void vpmu_do_interrupt(void);
 void vpmu_initialise(struct vcpu *v);
 void vpmu_destroy(struct vcpu *v);
 void vpmu_save(struct vcpu *v);



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 11:00:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 11:00:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165806.1492485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLfvA-0006mG-Jt; Wed, 19 Nov 2025 11:00:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165806.1492485; Wed, 19 Nov 2025 11: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 1vLfvA-0006m9-GO; Wed, 19 Nov 2025 11:00:20 +0000
Received: by outflank-mailman (input) for mailman id 1165806;
 Wed, 19 Nov 2025 11:00: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=/QLq=53=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vLfv9-0006m2-QD
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 11:00:20 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ee7d047c-c536-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 12:00:17 +0100 (CET)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-5959da48139so1028939e87.1
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 03:00: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: ee7d047c-c536-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763550016; x=1764154816; 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=AbFbrqez1R7g6gqL9EbALU3YChLv5r/yX4AhXNEKi+Q=;
        b=JfbeC6wOLtyP0JUou/y2ZbGRwSXyE52kylaQt5kWrNz7GASg/PjjhaDKBQG5jAfuOr
         2bp6QYtKmRVrP/ujoEaP4ofKhJgfRkHTBYCGdIdllG5nr2j/R6TKEwVpg8ft+obWeY7u
         h0zHpNgYTGXIFAtblQJrxJF80ukFSpxyMn2gdrLCQo2iyL6/NGfpwLXAxc1qKxf5uT+3
         sw8aT7t65fqKgIhFrXHg28IMY7rGTI0u0BDgL94VglLOOJQuHhiWge8O2+3mITq3X7aQ
         +nDvCHXsjw80VnXBRrFlLZxOwGWcF2CCxc5OqMUTRTp0P71hzwrFo3Cnfi3o4Svf9fS/
         Bb9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763550016; x=1764154816;
        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=AbFbrqez1R7g6gqL9EbALU3YChLv5r/yX4AhXNEKi+Q=;
        b=c2KSLZK9VRcWY3AoWZqo0j3qwvSYf44LiE3C5HcorL+1QDM2WXw5gyKxYipdki7jLp
         7ieFM4dRPGyZ32pxmeeoaGoBBVwt0+/nndRUpXD5LaIXLDWECmchXBEZo8hfafBYciCo
         pv98X94QndvsHTiHIEKdAlpXFywJ5II7JoG7E9kH/5wvCrBPeLPk4JqBUNmPOXeIT6ad
         FNpyEdrUs7Tgyb54FdEiByAsRt8+z6kHv4HUR5ilSi5E7lWoIhzlvJ9kpbuseuvRmpbR
         5uOeq2iGrYjsPBiQ6ToE9vDcz9DFeEIxSTOb7YdnX0lZ9fxeXllPzK3SiqVwaRwN3eEo
         pLAw==
X-Gm-Message-State: AOJu0YwiY2TSwIIL0U4mUi0WcqCJe38fev1XvAV24Ot40XhjirdFvm/G
	57VTm0EriI+0QhmVCPQTwFhxZQbFC2z9TAH7dTNDvNHGHxv7kiezO1n1Ihhew0clfB+wVof/Ovz
	uPsJP1FYFvl94MAidsLxOMuQijjca044=
X-Gm-Gg: ASbGncsHeMxDsjzRt9TiD7+EVSzldgCE+r8aq8PNBX0Mr4pIQvE5UBr2WIOmohvRZzH
	7BdHmdlb5wJKTbBVIYdmrQvp8oAw6av2P528A7gkVEaOWhY2o6gnSJVPR4BYWajaeR336MADye2
	lcuEEoE0aZ2ucOFYM+Q5y6bKi/8+6CBZQVrkTMNhTYwBNypakrqtCtcYo+WKkPEUwwxPrwqztEy
	nL8/N8Dl9Fk0IGnmZxFm+TAZbEUla0To1gmVcu/cMGRCD1RmOpYPc4TvdIjJwd/FTiY96M2iiM1
	M30khWB9Uxv8/wU=
X-Google-Smtp-Source: AGHT+IHaqRsEyFRORq52t43KdX9JzM8PvqWxS5Aux9hmM0ViR1jTlfitYCj/HikirGQKSWaPVP7NMQBEq4H2PT4wUpE=
X-Received: by 2002:a05:6512:3b81:b0:595:8200:9f75 with SMTP id
 2adb3069b0e04-59584217260mr7280152e87.47.1763550015336; Wed, 19 Nov 2025
 03:00:15 -0800 (PST)
MIME-Version: 1.0
References: <cover.1763479083.git.xakep.amatop@gmail.com> <3786204d034ae4461aa0fde77771b8e14256314a.1763479083.git.xakep.amatop@gmail.com>
 <5a5b4bf6-4cd6-4b64-ba31-07a87b1fdbaa@amd.com>
In-Reply-To: <5a5b4bf6-4cd6-4b64-ba31-07a87b1fdbaa@amd.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Wed, 19 Nov 2025 13:00:03 +0200
X-Gm-Features: AWmQ_bmXvWi7C6kNmhDSN-iHjlfQasL-3Zgpy00NEx94TY-N4do8urL8jqBg1nQ
Message-ID: <CAGeoDV_4Bpp50wkd+wtq6zVHg4KZqnOcndG7rfqMndo=HW1sYQ@mail.gmail.com>
Subject: Re: [PATCH v14 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Michal,

Thanks for your review.

On Wed, Nov 19, 2025 at 10:48=E2=80=AFAM Orzel, Michal <michal.orzel@amd.co=
m> wrote:
>
>
>
> On 18/11/2025 16:37, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > Add support for the PSCI SYSTEM_SUSPEND function in the vPSCI interface=
,
> > allowing guests to request suspend via the PSCI v1.0+ SYSTEM_SUSPEND ca=
ll
> > (both 32-bit and 64-bit variants).
> >
> > Implementation details:
> > - Add SYSTEM_SUSPEND function IDs to PSCI definitions
> > - Trap and handle SYSTEM_SUSPEND in vPSCI
> > - Allow only non-hardware domains to invoke SYSTEM_SUSPEND; return
> >   PSCI_NOT_SUPPORTED for the hardware domain to avoid halting the syste=
m
> >   in hwdom_shutdown() via domain_shutdown
> > - Require all secondary VCPUs of the calling domain to be offline befor=
e
> >   suspend, as mandated by the PSCI specification
> >
> > The arch_domain_resume() function is an architecture-specific hook that=
 is
> > invoked during domain resume to perform any necessary setup or restorat=
ion
> > steps required by the platform.
> >
> > The new vpsci_vcpu_up_prepare() helper is called on the resume path to =
set up
> > the vCPU context (such as entry point, some system regs and context ID)=
 before
> > resuming a suspended guest. This keeps ARM/vPSCI-specific logic out of =
common
> > code and avoids intrusive changes to the generic resume flow.
> >
> > Usage:
> >
> > For Linux-based guests, suspend can be initiated with:
> >     echo mem > /sys/power/state
> > or via:
> >     systemctl suspend
> >
> > Resuming the guest is performed from control domain using:
> >       xl resume <domain>
> >
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > Changes in V14:
> > - move arch_domain_resume to a separate header
> > - avoid usage of typeof for context struct
> > - moved error printing from domain_resume to arch_domain_resume
> >   in order to simplify common parts of code
> > - minor changes after review
> > ---
> >  xen/arch/arm/domain.c                 |  41 +++++++++
> >  xen/arch/arm/include/asm/domain.h     |   2 +
> >  xen/arch/arm/include/asm/perfc_defn.h |   1 +
> >  xen/arch/arm/include/asm/psci.h       |   2 +
> >  xen/arch/arm/include/asm/suspend.h    |  24 ++++++
> >  xen/arch/arm/include/asm/vpsci.h      |   5 +-
> >  xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-----
> >  xen/common/domain.c                   |   5 ++
> >  xen/include/xen/suspend.h             |  15 ++++
> >  9 files changed, 189 insertions(+), 22 deletions(-)
> >  create mode 100644 xen/arch/arm/include/asm/suspend.h
> >  create mode 100644 xen/include/xen/suspend.h
> >
> > diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> > index e36719bce4..3c0170480b 100644
> > --- a/xen/arch/arm/domain.c
> > +++ b/xen/arch/arm/domain.c
> > @@ -12,6 +12,8 @@
> >  #include <xen/softirq.h>
> >  #include <xen/wait.h>
> >
> > +#include <public/sched.h>
> > +
> >  #include <asm/arm64/sve.h>
> >  #include <asm/cpuerrata.h>
> >  #include <asm/cpufeature.h>
> > @@ -24,10 +26,12 @@
> >  #include <asm/platform.h>
> >  #include <asm/procinfo.h>
> >  #include <asm/regs.h>
> > +#include <asm/suspend.h>
> >  #include <asm/firmware/sci.h>
> >  #include <asm/tee/tee.h>
> >  #include <asm/vfp.h>
> >  #include <asm/vgic.h>
> > +#include <asm/vpsci.h>
> >  #include <asm/vtimer.h>
> >
> >  #include "vpci.h"
> > @@ -885,6 +889,43 @@ void arch_domain_creation_finished(struct domain *=
d)
> >      p2m_domain_creation_finished(d);
> >  }
> >
> > +int arch_domain_resume(struct domain *d)
> > +{
> > +    int rc;
> > +    struct resume_info *ctx =3D &d->arch.resume_ctx;
> > +
> > +    if ( !d->is_shutting_down || d->shutdown_code !=3D SHUTDOWN_suspen=
d )
> > +    {
> > +        dprintk(XENLOG_WARNING,
> > +                "%pd: Invalid domain state for resume: is_shutting_dow=
n=3D%d, shutdown_code=3D%d\n",
> These are bool and uint, so %u should be used.

ack

>
> > +                d, d->is_shutting_down, d->shutdown_code);
> > +        return -EINVAL;
> > +    }
> > +
> > +    /*
> > +     * It is still possible to call domain_shutdown() with a suspend r=
eason
> > +     * via some hypercalls, such as SCHEDOP_shutdown or SCHEDOP_remote=
_shutdown.
> > +     * In these cases, the resume context will be empty.
> > +     * This is not expected to cause any issues, so we just warn about=
 the
> > +     * situation and return without error, allowing the existing logic=
 to
> > +     * proceed as expected.
> > +     */
> > +    if ( !ctx->wake_cpu )
> > +    {
> > +        dprintk(XENLOG_INFO, "%pd: Wake CPU pointer context was not pr=
ovided\n",
> > +                d);
> > +        return 0;
> > +    }
> > +
> > +    rc =3D vpsci_vcpu_up_prepare(ctx->wake_cpu , ctx->ep, ctx->cid);
> > +    if ( rc )
> > +        printk("%pd: Failed to resume domain (ret %d)\n", d, rc);
> > +
> > +    memset(ctx, 0, sizeof(*ctx));
> > +
> > +    return rc;
> > +}
> > +
> >  static int is_guest_pv32_psr(uint32_t psr)
> >  {
> >      switch (psr & PSR_MODE_MASK)
> > diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/a=
sm/domain.h
> > index af3e168374..e637cb4de0 100644
> > --- a/xen/arch/arm/include/asm/domain.h
> > +++ b/xen/arch/arm/include/asm/domain.h
> > @@ -5,6 +5,7 @@
> >  #include <xen/timer.h>
> >  #include <asm/page.h>
> >  #include <asm/p2m.h>
> > +#include <asm/suspend.h>
> >  #include <asm/vfp.h>
> >  #include <asm/mmio.h>
> >  #include <asm/gic.h>
> > @@ -126,6 +127,7 @@ struct arch_domain
> >      void *sci_data;
> >  #endif
> >
> > +    struct resume_info resume_ctx;
> >  }  __cacheline_aligned;
> >
> >  struct arch_vcpu
> > diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/inclu=
de/asm/perfc_defn.h
> > index effd25b69e..8dfcac7e3b 100644
> > --- a/xen/arch/arm/include/asm/perfc_defn.h
> > +++ b/xen/arch/arm/include/asm/perfc_defn.h
> > @@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system=
_reset")
> >  PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
> >  PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
> >  PERFCOUNTER(vpsci_features,            "vpsci: features")
> > +PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
> >
> >  PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
> >
> > diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm=
/psci.h
> > index 4780972621..48a93e6b79 100644
> > --- a/xen/arch/arm/include/asm/psci.h
> > +++ b/xen/arch/arm/include/asm/psci.h
> > @@ -47,10 +47,12 @@ void call_psci_system_reset(void);
> >  #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
> >  #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
> >  #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
> > +#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
> >
> >  #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
> >  #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
> >  #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
> > +#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
> >
> >  /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
> >  #define PSCI_0_2_AFFINITY_LEVEL_ON      0
> > diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/=
asm/suspend.h
> > new file mode 100644
> > index 0000000000..b991a94d5a
> > --- /dev/null
> > +++ b/xen/arch/arm/include/asm/suspend.h
> > @@ -0,0 +1,24 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +
> > +#ifndef __ARM_SUSPEND_H__
> There should be no double underscores in guards (see examples in CODING_S=
TYLE)

I had initially followed the style used by some of the existing headers
in this directory, which still use guards with double underscores.

I'll remove underscores in the next series.

> > +#define __ARM_SUSPEND_H__
> > +
> > +struct resume_info {
> > +    register_t ep;
> > +    register_t cid;
> > +    struct vcpu *wake_cpu;
> > +};
> > +
> > +int arch_domain_resume(struct domain *d);
> If possible, headers should be standalone, meaning you should include nec=
essary
> headers or forward declare what's missing.

Thanks for the comment.

My initial intention was to avoid adding new dependencies from asm
headers to higher-level Xen headers, so I did not include e.g.
<xen/sched.h> directly here. In this header we only need pointers to
struct domain and struct vcpu, we never dereference them, so forward
declarations would be sufficient to make it standalone.

I also noticed that some existing asm headers in this directory do
include higher-level Xen headers, so both patterns exist in the tree.

If you prefer, I can either:
  - add forward declarations

      struct domain;
      struct vcpu;

    at the top of this header and keep the full includes in the .c
    files that actually dereference these types, or

  - include the appropriate Xen header(s) directly in this header.

Personally I slightly prefer the forward-declaration approach to keep
this header lightweight and avoid tightening the layering, but I am
happy to follow your preference.

>
> > +
> > +#endif /* __ARM_SUSPEND_H__ */
> > +
> > + /*
> > +  * Local variables:
> > +  * mode: C
> > +  * c-file-style: "BSD"
> > +  * c-basic-offset: 4
> > +  * tab-width: 4
> > +  * indent-tabs-mode: nil
> > +  * End:
> > +  */
> > diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/as=
m/vpsci.h
> > index 0cca5e6830..d790ab3715 100644
> > --- a/xen/arch/arm/include/asm/vpsci.h
> > +++ b/xen/arch/arm/include/asm/vpsci.h
> > @@ -23,12 +23,15 @@
> >  #include <asm/psci.h>
> >
> >  /* Number of function implemented by virtual PSCI (only 0.2 or later) =
*/
> > -#define VPSCI_NR_FUNCS  12
> > +#define VPSCI_NR_FUNCS  14
> >
> >  /* Functions handle PSCI calls from the guests */
> >  bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
> >  bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid);
> >
> > +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
> > +                          register_t context_id);
> > +
> >  #endif /* __ASM_VPSCI_H__ */
> >
> >  /*
> > diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> > index 7ba9ccd94b..22c3a5f544 100644
> > --- a/xen/arch/arm/vpsci.c
> > +++ b/xen/arch/arm/vpsci.c
> > @@ -10,32 +10,16 @@
> >
> >  #include <public/sched.h>
> >
> > -static int do_common_cpu_on(register_t target_cpu, register_t entry_po=
int,
> > -                            register_t context_id)
> > +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
> > +                   register_t context_id)
> NIT: incorrect parameter alignment

ack

>
> >  {
> > -    struct vcpu *v;
> > -    struct domain *d =3D current->domain;
> > -    struct vcpu_guest_context *ctxt;
> >      int rc;
> > +    struct domain *d =3D v->domain;
> >      bool is_thumb =3D entry_point & 1;
> > -    register_t vcpuid;
> > -
> > -    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> > -
> > -    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> > -        return PSCI_INVALID_PARAMETERS;
> > -
> > -    /* THUMB set is not allowed with 64-bit domain */
> > -    if ( is_64bit_domain(d) && is_thumb )
> > -        return PSCI_INVALID_ADDRESS;
> > -
> > -    if ( !test_bit(_VPF_down, &v->pause_flags) )
> > -        return PSCI_ALREADY_ON;
> > +    struct vcpu_guest_context *ctxt;
> >
> >      if ( (ctxt =3D alloc_vcpu_guest_context()) =3D=3D NULL )
> > -        return PSCI_DENIED;
> > -
> > -    vgic_clear_pending_irqs(v);
> > +        return -ENOMEM;
> >
> >      memset(ctxt, 0, sizeof(*ctxt));
> >      ctxt->user_regs.pc64 =3D (u64) entry_point;
> > @@ -76,8 +60,37 @@ static int do_common_cpu_on(register_t target_cpu, r=
egister_t entry_point,
> >      free_vcpu_guest_context(ctxt);
> >
> >      if ( rc < 0 )
> > +        return rc;
> > +
> > +    return 0;
> > +}
> > +
> > +static int do_common_cpu_on(register_t target_cpu, register_t entry_po=
int,
> > +                            register_t context_id)
> > +{
> > +    struct vcpu *v;
> > +    struct domain *d =3D current->domain;
> > +    int rc;
> > +    bool is_thumb =3D entry_point & 1;
> > +    register_t vcpuid;
> > +
> > +    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> > +
> > +    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> > +        return PSCI_INVALID_PARAMETERS;
> > +
> > +    /* THUMB set is not allowed with 64-bit domain */
> > +    if ( is_64bit_domain(d) && is_thumb )
> > +        return PSCI_INVALID_ADDRESS;
> > +
> > +    if ( !test_bit(_VPF_down, &v->pause_flags) )
> > +        return PSCI_ALREADY_ON;
> > +
> > +    rc =3D vpsci_vcpu_up_prepare(v, entry_point, context_id);
> > +    if ( rc )
> >          return PSCI_DENIED;
> >
> > +    vgic_clear_pending_irqs(v);
> >      vcpu_wake(v);
> >
> >      return PSCI_SUCCESS;
> > @@ -197,6 +210,48 @@ static void do_psci_0_2_system_reset(void)
> >      domain_shutdown(d,SHUTDOWN_reboot);
> >  }
> >
> > +static int32_t do_psci_1_0_system_suspend(register_t epoint, register_=
t cid)
> > +{
> > +    int32_t rc;
> > +    struct vcpu *v;
> > +    struct domain *d =3D current->domain;
> > +    bool is_thumb =3D epoint & 1;
> > +
> > +    /* THUMB set is not allowed with 64-bit domain */
> > +    if ( is_64bit_domain(d) && is_thumb )
> > +        return PSCI_INVALID_ADDRESS;
> > +
> > +    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
> > +    if ( is_hardware_domain(d) )
> > +        return PSCI_NOT_SUPPORTED;
> > +
> > +    /* Ensure that all CPUs other than the calling one are offline */
> > +    domain_lock(d);
> > +    for_each_vcpu ( d, v )
> > +    {
> > +        if ( v !=3D current && is_vcpu_online(v) )
> > +        {
> > +            domain_unlock(d);
> > +            return PSCI_DENIED;
> > +        }
> > +    }
> > +    domain_unlock(d);
> > +
> > +    rc =3D domain_shutdown(d, SHUTDOWN_suspend);
> > +    if ( rc )
> > +        return PSCI_DENIED;
> > +
> > +    d->arch.resume_ctx.ep =3D epoint;
> > +    d->arch.resume_ctx.cid =3D cid;
> > +    d->arch.resume_ctx.wake_cpu =3D current;
> > +
> > +    gprintk(XENLOG_DEBUG,
> > +            "SYSTEM_SUSPEND requested, epoint=3D0x%"PRIregister", cid=
=3D0x%"PRIregister"\n",
> NIT: %# is preffered over 0x%.

ack

>
> > +            epoint, cid);
> > +
> > +    return rc;
> > +}
> > +
> >  static int32_t do_psci_1_0_features(uint32_t psci_func_id)
> >  {
> >      /* /!\ Ordered by function ID and not name */
> > @@ -214,6 +269,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_f=
unc_id)
> >      case PSCI_0_2_FN32_SYSTEM_OFF:
> >      case PSCI_0_2_FN32_SYSTEM_RESET:
> >      case PSCI_1_0_FN32_PSCI_FEATURES:
> > +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> > +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
> >      case ARM_SMCCC_VERSION_FID:
> >          return 0;
> >      default:
> > @@ -344,6 +401,23 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs,=
 uint32_t fid)
> >          return true;
> >      }
> >
> > +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> > +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
> > +    {
> > +        register_t epoint =3D PSCI_ARG(regs, 1);
> > +        register_t cid =3D PSCI_ARG(regs, 2);
> > +
> > +        if ( fid =3D=3D PSCI_1_0_FN32_SYSTEM_SUSPEND )
> > +        {
> > +            epoint &=3D GENMASK(31, 0);
> > +            cid &=3D GENMASK(31, 0);
> > +        }
> > +
> > +        perfc_incr(vpsci_system_suspend);
> > +        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid))=
;
> > +        return true;
> > +    }
> > +
> >      default:
> >          return false;
> >      }
> > diff --git a/xen/common/domain.c b/xen/common/domain.c
> > index 775c339285..6410d32970 100644
> > --- a/xen/common/domain.c
> > +++ b/xen/common/domain.c
> > @@ -26,6 +26,7 @@
> >  #include <xen/hypercall.h>
> >  #include <xen/delay.h>
> >  #include <xen/shutdown.h>
> > +#include <xen/suspend.h>
> >  #include <xen/percpu.h>
> >  #include <xen/multicall.h>
> >  #include <xen/rcupdate.h>
> > @@ -1363,6 +1364,9 @@ void domain_resume(struct domain *d)
> >
> >      spin_lock(&d->shutdown_lock);
> >
> > +    if ( arch_domain_resume(d) )
> > +        goto fail;
> > +
> >      d->is_shutting_down =3D d->is_shut_down =3D 0;
> >      d->shutdown_code =3D SHUTDOWN_CODE_INVALID;
> >
> > @@ -1373,6 +1377,7 @@ void domain_resume(struct domain *d)
> >          v->paused_for_shutdown =3D 0;
> >      }
> >
> > + fail:
> >      spin_unlock(&d->shutdown_lock);
> >
> >      domain_unpause(d);
> > diff --git a/xen/include/xen/suspend.h b/xen/include/xen/suspend.h
> > new file mode 100644
> > index 0000000000..53f75fd6ad
> > --- /dev/null
> > +++ b/xen/include/xen/suspend.h
> > @@ -0,0 +1,15 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +#ifndef __XEN_SUSPEND_H__
> There should be no double underscores in guards

I initially followed the style used by the existing headers in this
directory, which still have include guards with double underscores.

You are right that this does not match CODING_STYLE examples.
I will update this header to use a proper guard name.

>
> > +#define __XEN_SUSPEND_H__
> > +
> > +#if __has_include(<asm/suspend.h>)
> > +#include <asm/suspend.h>
> > +#else
> > +static inline int arch_domain_resume(struct domain *d)
> > +{
> > +    return 0;
> > +}
> > +#endif
> > +
> Stray whiteline?

will drop

>
> > +
> > +#endif /* __XEN_SUSPEND_H__ */
> Missing emacs block?

It is permitted but isn't necessary as far as know,
but if it needed here per your opinion I'll add it
just let me know

>
> Did you run MISRA scan on this patch?

Yes, I ran it with:

  ./xen/scripts/xen-analysis.py \
      --run-cppcheck --cppcheck-misra --cppcheck-html -- \
      XEN_TARGET_ARCH=3Darm64 CROSS_COMPILE=3Daarch64-linux-gnu-

The analysis did not report any new MISRA violations in the code
touched by this patch.

>
> ~Michal
>
>

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 11:02:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 11:02:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165819.1492495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLfxN-0007O7-1F; Wed, 19 Nov 2025 11:02:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165819.1492495; Wed, 19 Nov 2025 11:02:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLfxM-0007O0-Uv; Wed, 19 Nov 2025 11:02:36 +0000
Received: by outflank-mailman (input) for mailman id 1165819;
 Wed, 19 Nov 2025 11:02:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=y799=53=bounce.vates.tech=bounce-md_30504962.691da3c7.v1-3fda88b1751145d7a11369dbd7ec1311@srs-se1.protection.inumbo.net>)
 id 1vLfxL-0007Nu-Rn
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 11:02:35 +0000
Received: from mail180-15.suw31.mandrillapp.com
 (mail180-15.suw31.mandrillapp.com [198.2.180.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3f5b288f-c537-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 12:02:33 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-15.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4dBJTz6JfpzPm15M7
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 11:02:31 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 3fda88b1751145d7a11369dbd7ec1311; Wed, 19 Nov 2025 11:02:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3f5b288f-c537-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763550151; x=1763820151;
	bh=CViR0ahlfVo9QsHGpKoHDZaSWvQa9JvaabGL617d3E8=;
	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=103cPAc0NCDdjxzkBC08OMOI1GpOVGLnp4R65mMj4hmnyOUfYqHWE8HBKGQxzlNwE
	 bFecPuGF/QrRfyZr0hgn1SOvvDeApUMVXK4o9pVyAaOWv5nKHMUb/Vx7kEnRtATZtF
	 IKQGabUoiMOJKSx4wZk+0DGfMYpWyact/GcQOFv2/fodJdgfENhWF7pOOQZzlp0if1
	 yT3kvY5ES8q7FJEoa2GTiFDfgMp4m2INaqSxVOc/VoVfQj8J6KHcPaWR7x49eo9j9G
	 H3bCZ9maI+22R+aKpieJqAxbISDKhPVIl8ieAEikNhgJ65VFOCdlTYfH7ISRGFRG7a
	 jnpBu5+5z/w9g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763550151; x=1763810651; i=teddy.astie@vates.tech;
	bh=CViR0ahlfVo9QsHGpKoHDZaSWvQa9JvaabGL617d3E8=;
	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=e22kNdmHGB0Hmydrw0u9xkAm/THUytjiQTgCakTCPSYolI0GUVDJ4gdExcM6jQqp0
	 6znlbJVCEczgC5pBV9ngE5HwUc6Zfdw7XgCrHd85ga5A37hchW4ucPNKAMaYngT3fO
	 cvirpGD+W1i0QIu0VKVgwLL31CMDFIFqGZR4w0HIyz8BlEt1QqkDTb3pAg2EzeU/KH
	 VU+8bvWulEHeCcLUa6UNJxB2YwnMQE4rJPHJCTlkTbQPIEi5FzS90f5AMtzOvhfKze
	 DQtJz7ilUU5RyTaliSl6p9hGJYjrs5GuPKc6cKA5tZNY5y3qMgtuHX8oLPV+H2e0Ik
	 uooQScl9cUilw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2.1=205/5]=20x86/ioapic:=20Don't=20open-code=2032-bits=20rte=20reads?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763550150823
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <e9ae9ca2b51efa337117a6fe2db48939f8317747.1763549659.git.teddy.astie@vates.tech>
In-Reply-To: <eab88bd79a65887961e0e1563f47360ef08e421a.1761209564.git.teddy.astie@vates.tech>
References: <eab88bd79a65887961e0e1563f47360ef08e421a.1761209564.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.3fda88b1751145d7a11369dbd7ec1311?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251119:md
Date: Wed, 19 Nov 2025 11:02:31 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

There are many places where we use interesting ways of reading 32-bits
components of the RTE. Introduce and use low and high components directly
to the rte structure instead.

Also take the opportunity to simplify "x & 1 ? 1 : 0".

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
v2.1:
 - fix trailing spaces
v2:
 - make rte_upper to use bool instead

 xen/arch/x86/include/asm/io_apic.h     |  1 +
 xen/arch/x86/io_apic.c                 | 29 ++++++++++----------------
 xen/drivers/passthrough/vtd/intremap.c |  7 ++-----
 3 files changed, 14 insertions(+), 23 deletions(-)

diff --git a/xen/arch/x86/include/asm/io_apic.h b/xen/arch/x86/include/asm/io_apic.h
index 4680dce9e1..0e85f2a860 100644
--- a/xen/arch/x86/include/asm/io_apic.h
+++ b/xen/arch/x86/include/asm/io_apic.h
@@ -122,6 +122,7 @@ struct IO_APIC_route_entry {
             } dest;
         };
         uint64_t raw;
+        struct { uint32_t low, high; };
     };
 };
 
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index d20ab2aa98..46c2a43dac 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -254,28 +254,23 @@ nomem:
     return NULL;
 }
 
-union entry_union {
-    struct { u32 w1, w2; };
-    struct IO_APIC_route_entry entry;
-};
-
 struct IO_APIC_route_entry __ioapic_read_entry(
     unsigned int apic, unsigned int pin, bool raw)
 {
-    union entry_union eu;
+    struct IO_APIC_route_entry entry;
 
     if ( raw || !iommu_intremap )
     {
-        eu.w1 = __io_apic_read(apic, 0x10 + 2 * pin);
-        eu.w2 = __io_apic_read(apic, 0x11 + 2 * pin);
+        entry.low  = __io_apic_read(apic, 0x10 + 2 * pin);
+        entry.high = __io_apic_read(apic, 0x11 + 2 * pin);
     }
     else
     {
-        eu.w1 = iommu_read_apic_from_ire(apic, 0x10 + 2 * pin);
-        eu.w2 = iommu_read_apic_from_ire(apic, 0x11 + 2 * pin);
+        entry.low  = iommu_read_apic_from_ire(apic, 0x10 + 2 * pin);
+        entry.high = iommu_read_apic_from_ire(apic, 0x11 + 2 * pin);
     }
 
-    return eu.entry;
+    return entry;
 }
 
 static struct IO_APIC_route_entry ioapic_read_entry(
@@ -294,12 +289,10 @@ void __ioapic_write_entry(
     unsigned int apic, unsigned int pin, bool raw,
     struct IO_APIC_route_entry e)
 {
-    union entry_union eu = { .entry = e };
-
     if ( raw || !iommu_intremap )
     {
-        __io_apic_write(apic, 0x11 + 2 * pin, eu.w2);
-        __io_apic_write(apic, 0x10 + 2 * pin, eu.w1);
+        __io_apic_write(apic, 0x11 + 2 * pin, e.high);
+        __io_apic_write(apic, 0x10 + 2 * pin, e.low);
         /*
          * Might be called before io_apic_pin_eoi is allocated.  Entry will be
          * initialized to the RTE value once the cache is allocated.
@@ -2218,7 +2211,7 @@ int ioapic_guest_read(unsigned long physbase, unsigned int reg, u32 *pval)
     dprintk(XENLOG_INFO, "IO-APIC: apic=%d, pin=%d, irq=%d\n" \
             XENLOG_INFO "IO-APIC: new_entry=%08x\n"           \
             XENLOG_INFO "IO-APIC: " f "\n",                   \
-            apic, pin, irq, *(u32 *)&rte, ##a )
+            apic, pin, irq, rte.low, ##a )
 
 int ioapic_guest_write(unsigned long physbase, unsigned int reg, u32 val)
 {
@@ -2237,7 +2230,7 @@ int ioapic_guest_write(unsigned long physbase, unsigned int reg, u32 val)
     pin = (reg - 0x10) >> 1;
 
     /* Write first half from guest; second half is target info. */
-    *(u32 *)&rte = val;
+    rte.low = val;
 
     /*
      * What about weird destination types?
@@ -2288,7 +2281,7 @@ int ioapic_guest_write(unsigned long physbase, unsigned int reg, u32 val)
         ret = io_apic_read(apic, 0x10 + 2 * pin);
         spin_unlock_irqrestore(&ioapic_lock, flags);
         rte.vector = desc->arch.vector;
-        if ( *(u32*)&rte != ret )
+        if ( rte.low != ret )
             WARN_BOGUS_WRITE("old_entry=%08x pirq=%d\n" XENLOG_INFO
                              "IO-APIC: Attempt to modify IO-APIC pin for in-use IRQ!",
                              ret, pirq);
diff --git a/xen/drivers/passthrough/vtd/intremap.c b/xen/drivers/passthrough/vtd/intremap.c
index 116c2e75ae..ac39405c0d 100644
--- a/xen/drivers/passthrough/vtd/intremap.c
+++ b/xen/drivers/passthrough/vtd/intremap.c
@@ -399,7 +399,7 @@ unsigned int cf_check io_apic_read_remap_rte(
     unsigned int ioapic_pin = (reg - 0x10) / 2;
     int index;
     struct IO_APIC_route_entry old_rte = {};
-    int rte_upper = (reg & 1) ? 1 : 0;
+    bool rte_upper = reg & 1;
     struct vtd_iommu *iommu = ioapic_to_iommu(IO_APIC_ID(apic));
 
     if ( !iommu->intremap.num ||
@@ -411,10 +411,7 @@ unsigned int cf_check io_apic_read_remap_rte(
     if ( remap_entry_to_ioapic_rte(iommu, index, &old_rte) )
         return __io_apic_read(apic, reg);
 
-    if ( rte_upper )
-        return (*(((u32 *)&old_rte) + 1));
-    else
-        return (*(((u32 *)&old_rte) + 0));
+    return rte_upper ? old_rte.high : old_rte.low;
 }
 
 void cf_check io_apic_write_remap_rte(
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 11:07:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 11:07:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165831.1492504 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLg23-00086d-In; Wed, 19 Nov 2025 11:07:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165831.1492504; Wed, 19 Nov 2025 11:07:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLg23-00086W-G6; Wed, 19 Nov 2025 11:07:27 +0000
Received: by outflank-mailman (input) for mailman id 1165831;
 Wed, 19 Nov 2025 11:07: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=snYy=53=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vLg21-00086P-LA
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 11:07:26 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ea820ecb-c537-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 12:07:20 +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 3A0374EE8C8E;
 Wed, 19 Nov 2025 12:07: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: ea820ecb-c537-11f0-980a-7dc792cee155
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=1763550438;
	b=vJs9SRNQJV2hcqjCgctfz82dKLqffBlW4q+AqBKkh9KeWBhi1LTtaVAGXb49re8aLwSA
	 F9nCnB7Z8lvkjgErt8QrlHLJ3cQRqJQIrJREg7+/xl1+JK8DkkQ32cef2XSMKTylpTfok
	 YGri6UR45McSeoHwsHxHehn/RjhsUp56yPPO860/pqQf1owhA702FNR2VgVpeb3MsLnU4
	 sHNLAFG9auZsNhp8VsNrbJtMHKN8tHv9NYb6yVRa5yUX215QqrzfskOG/175sPxSdO9+q
	 ZiuUD4Q/6bQfoU37Kwuqxe9A5v34CCMkhFM8Z2+J91yTNUw7bc0ISqt1zTN7FRP+YYBfb
	 yrmSN+1MeWIEQn7q1Cib6NDSchNLuMctw+v7X/2/47FOjUMPtxizX3dyGWRZmneMb/O18
	 GwtvjIePOoEkdKAFRtS6XKSEL501bMgFz7bhEBOiaJAz62jzC8fIZxpmmhcGrpKuJPhz0
	 STsAZifIeDsD3ybedptgV+gCHwrhjdnXftv5qPFabFuTVqet5daGgBxkb/+my5ZpwtuAo
	 5PdpNriIo6AhFsub0Tyn6e9QaHrDMgVfYO98KKTcNq2/QskZf340k2LG2/4jvwvsB66ty
	 ZcoWRo7Eulbcu3emjTw4WBdzYFP0zkYnUE2R7G9P0isLzi2aHXFaiqoPjCPLQsY=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1763550438;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=BtbYBFrcflQTy2LooyaKZgzoL1OL5n/f/43HkATRBYU=;
	b=pAUjN4Dr80c4oxnVTxf3S/4XfGQgT7c379n+rUEh9d64si1poItRMrVwWPCKWKbXu8B1
	 8ZXDYlgudGyogFurTEJKwE5zj1EVApW8oEach+wOQFRUE+r/iusoYLFsQIhi4h0kl8wqo
	 dWsOPSdPjfc5VRnZDfB5ZSfZ1KyN4+DecRfsi3pR+/K0LIdhg+nf025T1ppSbNDeY81xI
	 dtsat/OZeJeKeDFqSRCNk3AI4hpEYW9Lt21YMlJYhXijhC/Vtwa6d0aEU9CLR2xpUC3+t
	 RsshNOKtxAAYUyWoN5qc7QN54Lu/AFAwdSSE0qQPTwL6VjkubnLVMlt3Vv6ugA2jCbPGU
	 cg5c6B7+LtLqAcx0G8V95jzzXZXU3d+1CwVVco6UoFINofPXox4gDGOwZLelYzUZYpepQ
	 cX0Unn17E4C9MB6vhTzH2hw9b54Y2ZP9XYWLFUpoZhMZIql0XfAfauHpFW9HCMrwEPBD7
	 ZJIlVTLw5p55F8nkWtx4YidXZzZQhhAslHQfejarA/kbXS1OXU6XdWsLXGtHTbTT0ln2A
	 f/iWqXAtJFdMwMx2J41DuJ72rjAn0Ka7d9kYO5p03gh/ut6QYJyZT+SwxZRRuOr95nZuu
	 pL1dXRhCrWEyzR6qDCNg0cJmjU/qZesrgKKwAtO9DZR1pYsCr1iiTqiTJM9k+X8=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1763550438; bh=GXxR5CtSDbp7vtYYENYoRAPCok2PrrLZ9PThtM9t9DA=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=Pba9cvMjLyMBKHXTHA6phm0ys3Nv8krpqVouQKJ09td6+8bkMBKTKzYvSntwKCLKI
	 xoFAjPJGfx5NUwyjnbG/v1nN5UIhCe77s7RlYHq451vMNjDwturbbGL9t8izPp0JKd
	 tkGn3qYI4AbDGIeBtFgR9yZmq0WmvFed74ETM8K4gqjMbSaFVe4q21HrYkhFF3kxen
	 RST2DehHXt9nHGYT+ANwTxjrepkKxox189R7tTsY+ELOUAmeWmsqycwOb/PrYQ16wl
	 anlo4omlE842+o/heK3tqL1UbCcNBv/dpdT+Hh9N7fN9NPdApDeCOxH75m26tLM20q
	 d/3iL5o4wIpwA==
MIME-Version: 1.0
Date: Wed, 19 Nov 2025 12:07:18 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: "Orzel, Michal" <michal.orzel@amd.com>, xen-devel@lists.xenproject.org,
 Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
 <bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
 <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v14 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
In-Reply-To: <CAGeoDV_4Bpp50wkd+wtq6zVHg4KZqnOcndG7rfqMndo=HW1sYQ@mail.gmail.com>
References: <cover.1763479083.git.xakep.amatop@gmail.com>
 <3786204d034ae4461aa0fde77771b8e14256314a.1763479083.git.xakep.amatop@gmail.com>
 <5a5b4bf6-4cd6-4b64-ba31-07a87b1fdbaa@amd.com>
 <CAGeoDV_4Bpp50wkd+wtq6zVHg4KZqnOcndG7rfqMndo=HW1sYQ@mail.gmail.com>
Message-ID: <cc55fa4e1d2a2660577389ff92cfe035@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=UTF-8;
 format=flowed
Content-Transfer-Encoding: 8bit

On 2025-11-19 12:00, Mykola Kvach wrote:
> Hi Michal,
> 
> Thanks for your review.
> 
> On Wed, Nov 19, 2025 at 10:48â€¯AM Orzel, Michal <michal.orzel@amd.com> 
> wrote:
>> 
>> 
>> 
>> On 18/11/2025 16:37, Mykola Kvach wrote:
>> > From: Mykola Kvach <mykola_kvach@epam.com>
>> >
>> > Add support for the PSCI SYSTEM_SUSPEND function in the vPSCI interface,
>> > allowing guests to request suspend via the PSCI v1.0+ SYSTEM_SUSPEND call
>> > (both 32-bit and 64-bit variants).
>> >
>> > Implementation details:
>> > - Add SYSTEM_SUSPEND function IDs to PSCI definitions
>> > - Trap and handle SYSTEM_SUSPEND in vPSCI
>> > - Allow only non-hardware domains to invoke SYSTEM_SUSPEND; return
>> >   PSCI_NOT_SUPPORTED for the hardware domain to avoid halting the system
>> >   in hwdom_shutdown() via domain_shutdown
>> > - Require all secondary VCPUs of the calling domain to be offline before
>> >   suspend, as mandated by the PSCI specification
>> >
>> > The arch_domain_resume() function is an architecture-specific hook that is
>> > invoked during domain resume to perform any necessary setup or restoration
>> > steps required by the platform.
>> >
>> > The new vpsci_vcpu_up_prepare() helper is called on the resume path to set up
>> > the vCPU context (such as entry point, some system regs and context ID) before
>> > resuming a suspended guest. This keeps ARM/vPSCI-specific logic out of common
>> > code and avoids intrusive changes to the generic resume flow.
>> >
>> > Usage:
>> >
>> > For Linux-based guests, suspend can be initiated with:
>> >     echo mem > /sys/power/state
>> > or via:
>> >     systemctl suspend
>> >
>> > Resuming the guest is performed from control domain using:
>> >       xl resume <domain>
>> >
>> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>> > ---
>> > Changes in V14:
>> > - move arch_domain_resume to a separate header
>> > - avoid usage of typeof for context struct
>> > - moved error printing from domain_resume to arch_domain_resume
>> >   in order to simplify common parts of code
>> > - minor changes after review
>> > ---
>> >  xen/arch/arm/domain.c                 |  41 +++++++++
>> >  xen/arch/arm/include/asm/domain.h     |   2 +
>> >  xen/arch/arm/include/asm/perfc_defn.h |   1 +
>> >  xen/arch/arm/include/asm/psci.h       |   2 +
>> >  xen/arch/arm/include/asm/suspend.h    |  24 ++++++
>> >  xen/arch/arm/include/asm/vpsci.h      |   5 +-
>> >  xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-----
>> >  xen/common/domain.c                   |   5 ++
>> >  xen/include/xen/suspend.h             |  15 ++++
>> >  9 files changed, 189 insertions(+), 22 deletions(-)
>> >  create mode 100644 xen/arch/arm/include/asm/suspend.h
>> >  create mode 100644 xen/include/xen/suspend.h
>> >
>> > diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
>> > index e36719bce4..3c0170480b 100644
>> > --- a/xen/arch/arm/domain.c
>> > +++ b/xen/arch/arm/domain.c
>> > @@ -12,6 +12,8 @@
>> >  #include <xen/softirq.h>
>> >  #include <xen/wait.h>
>> >
>> > +#include <public/sched.h>
>> > +
>> >  #include <asm/arm64/sve.h>
>> >  #include <asm/cpuerrata.h>
>> >  #include <asm/cpufeature.h>
>> > @@ -24,10 +26,12 @@
>> >  #include <asm/platform.h>
>> >  #include <asm/procinfo.h>
>> >  #include <asm/regs.h>
>> > +#include <asm/suspend.h>
>> >  #include <asm/firmware/sci.h>
>> >  #include <asm/tee/tee.h>
>> >  #include <asm/vfp.h>
>> >  #include <asm/vgic.h>
>> > +#include <asm/vpsci.h>
>> >  #include <asm/vtimer.h>
>> >
>> >  #include "vpci.h"
>> > @@ -885,6 +889,43 @@ void arch_domain_creation_finished(struct domain *d)
>> >      p2m_domain_creation_finished(d);
>> >  }
>> >
>> > +int arch_domain_resume(struct domain *d)
>> > +{
>> > +    int rc;
>> > +    struct resume_info *ctx = &d->arch.resume_ctx;
>> > +
>> > +    if ( !d->is_shutting_down || d->shutdown_code != SHUTDOWN_suspend )
>> > +    {
>> > +        dprintk(XENLOG_WARNING,
>> > +                "%pd: Invalid domain state for resume: is_shutting_down=%d, shutdown_code=%d\n",
>> These are bool and uint, so %u should be used.
> 
> ack
> 
>> 
>> > +                d, d->is_shutting_down, d->shutdown_code);
>> > +        return -EINVAL;
>> > +    }
>> > +
>> > +    /*
>> > +     * It is still possible to call domain_shutdown() with a suspend reason
>> > +     * via some hypercalls, such as SCHEDOP_shutdown or SCHEDOP_remote_shutdown.
>> > +     * In these cases, the resume context will be empty.
>> > +     * This is not expected to cause any issues, so we just warn about the
>> > +     * situation and return without error, allowing the existing logic to
>> > +     * proceed as expected.
>> > +     */
>> > +    if ( !ctx->wake_cpu )
>> > +    {
>> > +        dprintk(XENLOG_INFO, "%pd: Wake CPU pointer context was not provided\n",
>> > +                d);
>> > +        return 0;
>> > +    }
>> > +
>> > +    rc = vpsci_vcpu_up_prepare(ctx->wake_cpu , ctx->ep, ctx->cid);
>> > +    if ( rc )
>> > +        printk("%pd: Failed to resume domain (ret %d)\n", d, rc);
>> > +
>> > +    memset(ctx, 0, sizeof(*ctx));
>> > +
>> > +    return rc;
>> > +}
>> > +
>> >  static int is_guest_pv32_psr(uint32_t psr)
>> >  {
>> >      switch (psr & PSR_MODE_MASK)
>> > diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
>> > index af3e168374..e637cb4de0 100644
>> > --- a/xen/arch/arm/include/asm/domain.h
>> > +++ b/xen/arch/arm/include/asm/domain.h
>> > @@ -5,6 +5,7 @@
>> >  #include <xen/timer.h>
>> >  #include <asm/page.h>
>> >  #include <asm/p2m.h>
>> > +#include <asm/suspend.h>
>> >  #include <asm/vfp.h>
>> >  #include <asm/mmio.h>
>> >  #include <asm/gic.h>
>> > @@ -126,6 +127,7 @@ struct arch_domain
>> >      void *sci_data;
>> >  #endif
>> >
>> > +    struct resume_info resume_ctx;
>> >  }  __cacheline_aligned;
>> >
>> >  struct arch_vcpu
>> > diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/include/asm/perfc_defn.h
>> > index effd25b69e..8dfcac7e3b 100644
>> > --- a/xen/arch/arm/include/asm/perfc_defn.h
>> > +++ b/xen/arch/arm/include/asm/perfc_defn.h
>> > @@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system_reset")
>> >  PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
>> >  PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
>> >  PERFCOUNTER(vpsci_features,            "vpsci: features")
>> > +PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
>> >
>> >  PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
>> >
>> > diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/psci.h
>> > index 4780972621..48a93e6b79 100644
>> > --- a/xen/arch/arm/include/asm/psci.h
>> > +++ b/xen/arch/arm/include/asm/psci.h
>> > @@ -47,10 +47,12 @@ void call_psci_system_reset(void);
>> >  #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
>> >  #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
>> >  #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
>> > +#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
>> >
>> >  #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
>> >  #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
>> >  #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
>> > +#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
>> >
>> >  /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
>> >  #define PSCI_0_2_AFFINITY_LEVEL_ON      0
>> > diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
>> > new file mode 100644
>> > index 0000000000..b991a94d5a
>> > --- /dev/null
>> > +++ b/xen/arch/arm/include/asm/suspend.h
>> > @@ -0,0 +1,24 @@
>> > +/* SPDX-License-Identifier: GPL-2.0-only */
>> > +
>> > +#ifndef __ARM_SUSPEND_H__
>> There should be no double underscores in guards (see examples in 
>> CODING_STYLE)
> 
> I had initially followed the style used by some of the existing headers
> in this directory, which still use guards with double underscores.
> 
> I'll remove underscores in the next series.
> 
>> > +#define __ARM_SUSPEND_H__
>> > +
>> > +struct resume_info {
>> > +    register_t ep;
>> > +    register_t cid;
>> > +    struct vcpu *wake_cpu;
>> > +};
>> > +
>> > +int arch_domain_resume(struct domain *d);
>> If possible, headers should be standalone, meaning you should include 
>> necessary
>> headers or forward declare what's missing.
> 
> Thanks for the comment.
> 
> My initial intention was to avoid adding new dependencies from asm
> headers to higher-level Xen headers, so I did not include e.g.
> <xen/sched.h> directly here. In this header we only need pointers to
> struct domain and struct vcpu, we never dereference them, so forward
> declarations would be sufficient to make it standalone.
> 
> I also noticed that some existing asm headers in this directory do
> include higher-level Xen headers, so both patterns exist in the tree.
> 
> If you prefer, I can either:
>   - add forward declarations
> 
>       struct domain;
>       struct vcpu;
> 
>     at the top of this header and keep the full includes in the .c
>     files that actually dereference these types, or
> 
>   - include the appropriate Xen header(s) directly in this header.
> 
> Personally I slightly prefer the forward-declaration approach to keep
> this header lightweight and avoid tightening the layering, but I am
> happy to follow your preference.
> 
>> 
>> > +
>> > +#endif /* __ARM_SUSPEND_H__ */
>> > +
>> > + /*
>> > +  * Local variables:
>> > +  * mode: C
>> > +  * c-file-style: "BSD"
>> > +  * c-basic-offset: 4
>> > +  * tab-width: 4
>> > +  * indent-tabs-mode: nil
>> > +  * End:
>> > +  */
>> > diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/asm/vpsci.h
>> > index 0cca5e6830..d790ab3715 100644
>> > --- a/xen/arch/arm/include/asm/vpsci.h
>> > +++ b/xen/arch/arm/include/asm/vpsci.h
>> > @@ -23,12 +23,15 @@
>> >  #include <asm/psci.h>
>> >
>> >  /* Number of function implemented by virtual PSCI (only 0.2 or later) */
>> > -#define VPSCI_NR_FUNCS  12
>> > +#define VPSCI_NR_FUNCS  14
>> >
>> >  /* Functions handle PSCI calls from the guests */
>> >  bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
>> >  bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid);
>> >
>> > +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
>> > +                          register_t context_id);
>> > +
>> >  #endif /* __ASM_VPSCI_H__ */
>> >
>> >  /*
>> > diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
>> > index 7ba9ccd94b..22c3a5f544 100644
>> > --- a/xen/arch/arm/vpsci.c
>> > +++ b/xen/arch/arm/vpsci.c
>> > @@ -10,32 +10,16 @@
>> >
>> >  #include <public/sched.h>
>> >
>> > -static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
>> > -                            register_t context_id)
>> > +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
>> > +                   register_t context_id)
>> NIT: incorrect parameter alignment
> 
> ack
> 
>> 
>> >  {
>> > -    struct vcpu *v;
>> > -    struct domain *d = current->domain;
>> > -    struct vcpu_guest_context *ctxt;
>> >      int rc;
>> > +    struct domain *d = v->domain;
>> >      bool is_thumb = entry_point & 1;
>> > -    register_t vcpuid;
>> > -
>> > -    vcpuid = vaffinity_to_vcpuid(target_cpu);
>> > -
>> > -    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
>> > -        return PSCI_INVALID_PARAMETERS;
>> > -
>> > -    /* THUMB set is not allowed with 64-bit domain */
>> > -    if ( is_64bit_domain(d) && is_thumb )
>> > -        return PSCI_INVALID_ADDRESS;
>> > -
>> > -    if ( !test_bit(_VPF_down, &v->pause_flags) )
>> > -        return PSCI_ALREADY_ON;
>> > +    struct vcpu_guest_context *ctxt;
>> >
>> >      if ( (ctxt = alloc_vcpu_guest_context()) == NULL )
>> > -        return PSCI_DENIED;
>> > -
>> > -    vgic_clear_pending_irqs(v);
>> > +        return -ENOMEM;
>> >
>> >      memset(ctxt, 0, sizeof(*ctxt));
>> >      ctxt->user_regs.pc64 = (u64) entry_point;
>> > @@ -76,8 +60,37 @@ static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
>> >      free_vcpu_guest_context(ctxt);
>> >
>> >      if ( rc < 0 )
>> > +        return rc;
>> > +
>> > +    return 0;
>> > +}
>> > +
>> > +static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
>> > +                            register_t context_id)
>> > +{
>> > +    struct vcpu *v;
>> > +    struct domain *d = current->domain;
>> > +    int rc;
>> > +    bool is_thumb = entry_point & 1;
>> > +    register_t vcpuid;
>> > +
>> > +    vcpuid = vaffinity_to_vcpuid(target_cpu);
>> > +
>> > +    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
>> > +        return PSCI_INVALID_PARAMETERS;
>> > +
>> > +    /* THUMB set is not allowed with 64-bit domain */
>> > +    if ( is_64bit_domain(d) && is_thumb )
>> > +        return PSCI_INVALID_ADDRESS;
>> > +
>> > +    if ( !test_bit(_VPF_down, &v->pause_flags) )
>> > +        return PSCI_ALREADY_ON;
>> > +
>> > +    rc = vpsci_vcpu_up_prepare(v, entry_point, context_id);
>> > +    if ( rc )
>> >          return PSCI_DENIED;
>> >
>> > +    vgic_clear_pending_irqs(v);
>> >      vcpu_wake(v);
>> >
>> >      return PSCI_SUCCESS;
>> > @@ -197,6 +210,48 @@ static void do_psci_0_2_system_reset(void)
>> >      domain_shutdown(d,SHUTDOWN_reboot);
>> >  }
>> >
>> > +static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
>> > +{
>> > +    int32_t rc;
>> > +    struct vcpu *v;
>> > +    struct domain *d = current->domain;
>> > +    bool is_thumb = epoint & 1;
>> > +
>> > +    /* THUMB set is not allowed with 64-bit domain */
>> > +    if ( is_64bit_domain(d) && is_thumb )
>> > +        return PSCI_INVALID_ADDRESS;
>> > +
>> > +    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
>> > +    if ( is_hardware_domain(d) )
>> > +        return PSCI_NOT_SUPPORTED;
>> > +
>> > +    /* Ensure that all CPUs other than the calling one are offline */
>> > +    domain_lock(d);
>> > +    for_each_vcpu ( d, v )
>> > +    {
>> > +        if ( v != current && is_vcpu_online(v) )
>> > +        {
>> > +            domain_unlock(d);
>> > +            return PSCI_DENIED;
>> > +        }
>> > +    }
>> > +    domain_unlock(d);
>> > +
>> > +    rc = domain_shutdown(d, SHUTDOWN_suspend);
>> > +    if ( rc )
>> > +        return PSCI_DENIED;
>> > +
>> > +    d->arch.resume_ctx.ep = epoint;
>> > +    d->arch.resume_ctx.cid = cid;
>> > +    d->arch.resume_ctx.wake_cpu = current;
>> > +
>> > +    gprintk(XENLOG_DEBUG,
>> > +            "SYSTEM_SUSPEND requested, epoint=0x%"PRIregister", cid=0x%"PRIregister"\n",
>> NIT: %# is preffered over 0x%.
> 
> ack
> 
>> 
>> > +            epoint, cid);
>> > +
>> > +    return rc;
>> > +}
>> > +
>> >  static int32_t do_psci_1_0_features(uint32_t psci_func_id)
>> >  {
>> >      /* /!\ Ordered by function ID and not name */
>> > @@ -214,6 +269,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
>> >      case PSCI_0_2_FN32_SYSTEM_OFF:
>> >      case PSCI_0_2_FN32_SYSTEM_RESET:
>> >      case PSCI_1_0_FN32_PSCI_FEATURES:
>> > +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
>> > +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
>> >      case ARM_SMCCC_VERSION_FID:
>> >          return 0;
>> >      default:
>> > @@ -344,6 +401,23 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
>> >          return true;
>> >      }
>> >
>> > +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
>> > +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
>> > +    {
>> > +        register_t epoint = PSCI_ARG(regs, 1);
>> > +        register_t cid = PSCI_ARG(regs, 2);
>> > +
>> > +        if ( fid == PSCI_1_0_FN32_SYSTEM_SUSPEND )
>> > +        {
>> > +            epoint &= GENMASK(31, 0);
>> > +            cid &= GENMASK(31, 0);
>> > +        }
>> > +
>> > +        perfc_incr(vpsci_system_suspend);
>> > +        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid));
>> > +        return true;
>> > +    }
>> > +
>> >      default:
>> >          return false;
>> >      }
>> > diff --git a/xen/common/domain.c b/xen/common/domain.c
>> > index 775c339285..6410d32970 100644
>> > --- a/xen/common/domain.c
>> > +++ b/xen/common/domain.c
>> > @@ -26,6 +26,7 @@
>> >  #include <xen/hypercall.h>
>> >  #include <xen/delay.h>
>> >  #include <xen/shutdown.h>
>> > +#include <xen/suspend.h>
>> >  #include <xen/percpu.h>
>> >  #include <xen/multicall.h>
>> >  #include <xen/rcupdate.h>
>> > @@ -1363,6 +1364,9 @@ void domain_resume(struct domain *d)
>> >
>> >      spin_lock(&d->shutdown_lock);
>> >
>> > +    if ( arch_domain_resume(d) )
>> > +        goto fail;
>> > +
>> >      d->is_shutting_down = d->is_shut_down = 0;
>> >      d->shutdown_code = SHUTDOWN_CODE_INVALID;
>> >
>> > @@ -1373,6 +1377,7 @@ void domain_resume(struct domain *d)
>> >          v->paused_for_shutdown = 0;
>> >      }
>> >
>> > + fail:
>> >      spin_unlock(&d->shutdown_lock);
>> >
>> >      domain_unpause(d);
>> > diff --git a/xen/include/xen/suspend.h b/xen/include/xen/suspend.h
>> > new file mode 100644
>> > index 0000000000..53f75fd6ad
>> > --- /dev/null
>> > +++ b/xen/include/xen/suspend.h
>> > @@ -0,0 +1,15 @@
>> > +/* SPDX-License-Identifier: GPL-2.0-only */
>> > +#ifndef __XEN_SUSPEND_H__
>> There should be no double underscores in guards
> 
> I initially followed the style used by the existing headers in this
> directory, which still have include guards with double underscores.
> 
> You are right that this does not match CODING_STYLE examples.
> I will update this header to use a proper guard name.
> 
>> 
>> > +#define __XEN_SUSPEND_H__
>> > +
>> > +#if __has_include(<asm/suspend.h>)
>> > +#include <asm/suspend.h>
>> > +#else
>> > +static inline int arch_domain_resume(struct domain *d)
>> > +{
>> > +    return 0;
>> > +}
>> > +#endif
>> > +
>> Stray whiteline?
> 
> will drop
> 
>> 
>> > +
>> > +#endif /* __XEN_SUSPEND_H__ */
>> Missing emacs block?
> 
> It is permitted but isn't necessary as far as know,
> but if it needed here per your opinion I'll add it
> just let me know
> 
>> 
>> Did you run MISRA scan on this patch?
> 
> Yes, I ran it with:
> 
>   ./xen/scripts/xen-analysis.py \
>       --run-cppcheck --cppcheck-misra --cppcheck-html -- \
>       XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
> 
> The analysis did not report any new MISRA violations in the code
> touched by this patch.
> 

This just runs cppcheck, which has many false negatives, but the 
upstream analysis should be done using ECLAIR with GitLab pipelines

>> 
>> ~Michal
>> 
>> 
> 
> Best regards,
> Mykola

-- 
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 Nov 19 11:07:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 11:07:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165834.1492515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLg2N-0008Uk-TY; Wed, 19 Nov 2025 11:07:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165834.1492515; Wed, 19 Nov 2025 11:07: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 1vLg2N-0008Ud-QL; Wed, 19 Nov 2025 11:07:47 +0000
Received: by outflank-mailman (input) for mailman id 1165834;
 Wed, 19 Nov 2025 11:07: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=6cZ7=53=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vLg2L-0008UH-NZ
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 11:07:46 +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 f4670837-c537-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 12:07:36 +0100 (CET)
Received: from CH2PR07CA0036.namprd07.prod.outlook.com (2603:10b6:610:20::49)
 by IA1PR12MB6258.namprd12.prod.outlook.com (2603:10b6:208:3e6::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 11:07:27 +0000
Received: from CH1PEPF0000AD76.namprd04.prod.outlook.com
 (2603:10b6:610:20:cafe::d1) by CH2PR07CA0036.outlook.office365.com
 (2603:10b6:610:20::49) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.10 via Frontend Transport; Wed,
 19 Nov 2025 11:07:27 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH1PEPF0000AD76.mail.protection.outlook.com (10.167.244.53) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Wed, 19 Nov 2025 11:07:27 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 19 Nov
 2025 03:07:26 -0800
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 19 Nov
 2025 05:07:26 -0600
Received: from [10.252.147.171] (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, 19 Nov 2025 03:07:22 -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: f4670837-c537-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lFRX1SD4gQG5t7QcNoM6sQRftJYCLLQwjxLa2DYJ5AFgw3mk4kH4OxagAm0MLc4pHqofAcbBW4DxzuVj7gIfTH8O2Pn+O/Py5UsyyD4VXjq4sEs4UZB0meiiWTXg4aDNLIgT7x032AMLyyQkXuwkikQ2Nh2wOYVfqXekfFR1b6YmdYK+0kcJ2PW9qpA49Qynsutduwwtk/b74lAWoOKJjQSs3DqP7bPRDFYXLBxyGJ1LiwBuLQX5QMyqMmsDpEBaotABWuiYTjiaeocm15sF1nL9leIjf2Nxe7FmYeKD0dHJiGR+X6OajicI8FtemIBrDt2l4aiMCxaOIgrj1Qqkuw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DMvVme95m4G6IbgFOmezWrxJF1zkKYEpmcFc9+b9dUU=;
 b=FD62/ouZ2f3hvVB0X2jtozu3Fkuqa538DVhJeDCEVCCwxjRTuB9eodWA0t8noQDIYZcOVvhgbtVrje6adEtXzkSztoUG9s/gX9i9PI0yTh0EyAm5aCaJIGyYZJd+p/h+47m8CCJKZMMRIbOk4YQ5KjWuApvMdyTc7eGav/Zyt5wY6/o576MyzuQgOQkRFOCKZU7KyqcxAoW4x5me2feFG9gsxOinYB63zYJe5Z/ODjEWA6YqSoWfmGRDZkM+bQkP5J9jmLyuxi3X4Io+KccZGsYLwB9UQIir4EXGo49QOn6vqhva1s+j7qpU7XBHoDXPdXGtacxsTzYSrzq4ku+eHQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DMvVme95m4G6IbgFOmezWrxJF1zkKYEpmcFc9+b9dUU=;
 b=j6dnRkNE3bnx+zqh+Pmmy0ImVMSrOd/059L1HLaIRbX2G3eH519xmp0tmBLaA9ETaCjb0uRre3ybL1mjMJxWKFuaLb/gQz+yFioGXFhgr/GGF3Jb5zihnPgRG9WVYohXycnqOOhOUfFzn9OlhyqZm18SoYAQOJ7iNshzSPVde+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: <cd7657d8-47bd-4484-91b3-4fb79985537c@amd.com>
Date: Wed, 19 Nov 2025 12:07:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v14 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, 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.1763479083.git.xakep.amatop@gmail.com>
 <3786204d034ae4461aa0fde77771b8e14256314a.1763479083.git.xakep.amatop@gmail.com>
 <5a5b4bf6-4cd6-4b64-ba31-07a87b1fdbaa@amd.com>
 <CAGeoDV_4Bpp50wkd+wtq6zVHg4KZqnOcndG7rfqMndo=HW1sYQ@mail.gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <CAGeoDV_4Bpp50wkd+wtq6zVHg4KZqnOcndG7rfqMndo=HW1sYQ@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD76:EE_|IA1PR12MB6258:EE_
X-MS-Office365-Filtering-Correlation-Id: 08b65d9b-a87f-43d1-bd5a-08de275bd326
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|7416014|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OUxUM3JMWkF2bHlyTmk2Vm96eHkzOGxLbmlqUjZkQmFESVZZREJ5QzRQS0dn?=
 =?utf-8?B?VVFqLzQycnJTMTNaV3pmNk1YY0tQU2RicUJ2Zm5rTVZZMXJYQ2JLbFRWcGM2?=
 =?utf-8?B?TllzOXhkS2M2WHdQZTl3Q2RWN2lxSlJYb2pSSnQ3MHpENzZWUXNXSmtvb0RR?=
 =?utf-8?B?S21HWHQrZ3dxMTdOdEo2b3ZUMjN5c0hsUm1rdnNrUjhoL1d4UmQ0cmUwUDNF?=
 =?utf-8?B?SzlGU3hnbG1ZV0srYXpzNDdMeDM0NjU0UE12RDlvNXNNTHY2eHVTajNOS2Z1?=
 =?utf-8?B?RFdkMDZLMGNpbWVQTzhZbHZqaUNsUjFmZ0ZrU3dOT2dmRm1FNVJOcGR4NS81?=
 =?utf-8?B?NWtGZ0ZhdG5nUmV4MVVnRlQ0TWJnR2xmakxxb3RXUXVIOWp2NjlLTnVSa0FF?=
 =?utf-8?B?bkdlREE5YW96Z2hCaXVmcWVzSndoYUpQU2prNStyTlMyUmx0ZTNZcFExNzQ1?=
 =?utf-8?B?ZmhTL2RJS3RnU2Y1TFpZMURFNjNHbEtWNzNxdTU5N2JSMGF4MzV5eUsvYzA1?=
 =?utf-8?B?dlR3VGQ1Y0x0d1pORWRhbndyWG4yWnlMT25vaWFvWEVubWJXeUdlcFBLcWtO?=
 =?utf-8?B?NVl3bHBBaER0MDhUMWFTZ3BrU3NjSnV5Y3cyTlRkdm5icXFjbFJEbExZTUNB?=
 =?utf-8?B?SW5jUmtXNDRjdlJ5cGdaem5JSk5PalZPVnpsVTA5UE5aWW9kSjhTL0R5MVJY?=
 =?utf-8?B?UXpSK3ErbElkUjd2eGxXQ3ZnN3cwWWMrYTM1d1NDUEVVQkxGdUxaQXlQUTZP?=
 =?utf-8?B?cXJkU3BMMWdnVElUUE5kNzBEQTVYOXV1YTJIT2RNL1pONWpvZElseXJPT3k3?=
 =?utf-8?B?bEhTcysrUzBmTjBIVGpKTG1Yaks5QkJUaE0rU1FiRFpBYWdVNUZxcEVYZUV5?=
 =?utf-8?B?SHhDM09xRHZTb1pVcE00ZGtkaGdPcXQxdTk4cGJvdkpCK2NmVjFyOXprR2FU?=
 =?utf-8?B?VEwvWGREYVMxcGtrV3lwa1UydEJrdkN1eHNrVVZlVWU2bTc5OTFpWGdmc25I?=
 =?utf-8?B?ZmJZeEVCck9GK0o5ZzkvMWdGVWhDaktSUTBJTUhPMi9GS3owODAxREtUcUlu?=
 =?utf-8?B?UFM3c0NYcnlzd2tKeWhObGtYaHU1WU84djV0d0JhN1VkTnRzMEVHdTFaVEpw?=
 =?utf-8?B?WHpnTGRlTEpqVnduWHJ6UGQrdWsrSnc0Rjk3VlhUYTFqOGs5dlpyRUlrYWtw?=
 =?utf-8?B?NWhpT1loalp1L0RKTURnWU9EWk51VFF6M2FSNnpNYStkRHBtekgzTGllR1Zo?=
 =?utf-8?B?L1RHZC9lNUhpVkFtQ3BZM3cydncvQVg5K2lwMUZibDM1UnE1MnJDd1B4VFVa?=
 =?utf-8?B?T2M1RzNNZUVmZXArbGtBR2FFc2FkbHhTNXV2emJOMEdKZE51eGoyQUFWS3k0?=
 =?utf-8?B?ZTNNL2hkVHZQWkEyc0x1N3hRVmUvbm1Ba0ZzT3lBZ1A3R2x6dVBLRll0c202?=
 =?utf-8?B?MHJEZS91NXdOcmNydlBzSDRIUjY5UEtQY3VMUFR2SU1WZXZpdVlHN3BkR1FX?=
 =?utf-8?B?VDFxN3VJQU5aVEdZeC9jOGlwajBrd2d2MC83L2svSDdNRVdhamNhR3dUM0N4?=
 =?utf-8?B?Q3YvUGp4MmU1Q2poZGovSS9EYmNFRmd2VGU0T0hQU3VISlowYm44OGdSZlFo?=
 =?utf-8?B?NklSckY0QWtGZ1pHVk8ySUFXMjBUaW0vZUFoMDNoejBGRGVhcWh6clJuQzVw?=
 =?utf-8?B?TWVoamQrVkpKeHNmbEZiNFNUWUFBT095c3dPWkt3MHU4Y2FNUFVBZDVJZm9O?=
 =?utf-8?B?N3QzbkpaMmhDUWxaVm9WamtZQVBlV1JqRHF2YjU1SXBJWnVJbURndWlXakNv?=
 =?utf-8?B?UWlKZVhFZGg0WnVTd0QxQkZWb2UreUw4R2xQUjdNNVNFRWh2dHRGSStlbElr?=
 =?utf-8?B?d0Z0QWRSNUduYnRydWNQeEJ4azZqbk0yU3NpTmgvaDYwWVlFb3d4d0NEWVJw?=
 =?utf-8?B?eVVicmxHeHVac21xVnZuTjErem03ZUxQbHFNcSsxWmFhR1lpSzN6ak1lZGxk?=
 =?utf-8?B?aVhhSkVwZW9SaFlZUW5WMFRUMk9hWFNLVkFIWFBqNzZvQWowZmViMXBuOXhY?=
 =?utf-8?B?TzdqdFh2NDZzUXQzeDJVNHp1VVN3MlVvZnVPYzlqSitxdEF4WE1iTlRWaTkr?=
 =?utf-8?Q?pvVo=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)(7416014)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2025 11:07:27.0689
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 08b65d9b-a87f-43d1-bd5a-08de275bd326
X-MS-Exchange-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:
	CH1PEPF0000AD76.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6258



On 19/11/2025 12:00, Mykola Kvach wrote:
> Hi Michal,
> 
> Thanks for your review.
> 
> On Wed, Nov 19, 2025 at 10:48â€¯AM Orzel, Michal <michal.orzel@amd.com> wrote:
>>
>>
>>
>> On 18/11/2025 16:37, Mykola Kvach wrote:
>>> From: Mykola Kvach <mykola_kvach@epam.com>
>>>
>>> Add support for the PSCI SYSTEM_SUSPEND function in the vPSCI interface,
>>> allowing guests to request suspend via the PSCI v1.0+ SYSTEM_SUSPEND call
>>> (both 32-bit and 64-bit variants).
>>>
>>> Implementation details:
>>> - Add SYSTEM_SUSPEND function IDs to PSCI definitions
>>> - Trap and handle SYSTEM_SUSPEND in vPSCI
>>> - Allow only non-hardware domains to invoke SYSTEM_SUSPEND; return
>>>   PSCI_NOT_SUPPORTED for the hardware domain to avoid halting the system
>>>   in hwdom_shutdown() via domain_shutdown
>>> - Require all secondary VCPUs of the calling domain to be offline before
>>>   suspend, as mandated by the PSCI specification
>>>
>>> The arch_domain_resume() function is an architecture-specific hook that is
>>> invoked during domain resume to perform any necessary setup or restoration
>>> steps required by the platform.
>>>
>>> The new vpsci_vcpu_up_prepare() helper is called on the resume path to set up
>>> the vCPU context (such as entry point, some system regs and context ID) before
>>> resuming a suspended guest. This keeps ARM/vPSCI-specific logic out of common
>>> code and avoids intrusive changes to the generic resume flow.
>>>
>>> Usage:
>>>
>>> For Linux-based guests, suspend can be initiated with:
>>>     echo mem > /sys/power/state
>>> or via:
>>>     systemctl suspend
>>>
>>> Resuming the guest is performed from control domain using:
>>>       xl resume <domain>
>>>
>>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>>> ---
>>> Changes in V14:
>>> - move arch_domain_resume to a separate header
>>> - avoid usage of typeof for context struct
>>> - moved error printing from domain_resume to arch_domain_resume
>>>   in order to simplify common parts of code
>>> - minor changes after review
>>> ---
>>>  xen/arch/arm/domain.c                 |  41 +++++++++
>>>  xen/arch/arm/include/asm/domain.h     |   2 +
>>>  xen/arch/arm/include/asm/perfc_defn.h |   1 +
>>>  xen/arch/arm/include/asm/psci.h       |   2 +
>>>  xen/arch/arm/include/asm/suspend.h    |  24 ++++++
>>>  xen/arch/arm/include/asm/vpsci.h      |   5 +-
>>>  xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-----
>>>  xen/common/domain.c                   |   5 ++
>>>  xen/include/xen/suspend.h             |  15 ++++
>>>  9 files changed, 189 insertions(+), 22 deletions(-)
>>>  create mode 100644 xen/arch/arm/include/asm/suspend.h
>>>  create mode 100644 xen/include/xen/suspend.h
>>>
>>> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
>>> index e36719bce4..3c0170480b 100644
>>> --- a/xen/arch/arm/domain.c
>>> +++ b/xen/arch/arm/domain.c
>>> @@ -12,6 +12,8 @@
>>>  #include <xen/softirq.h>
>>>  #include <xen/wait.h>
>>>
>>> +#include <public/sched.h>
>>> +
>>>  #include <asm/arm64/sve.h>
>>>  #include <asm/cpuerrata.h>
>>>  #include <asm/cpufeature.h>
>>> @@ -24,10 +26,12 @@
>>>  #include <asm/platform.h>
>>>  #include <asm/procinfo.h>
>>>  #include <asm/regs.h>
>>> +#include <asm/suspend.h>
>>>  #include <asm/firmware/sci.h>
>>>  #include <asm/tee/tee.h>
>>>  #include <asm/vfp.h>
>>>  #include <asm/vgic.h>
>>> +#include <asm/vpsci.h>
>>>  #include <asm/vtimer.h>
>>>
>>>  #include "vpci.h"
>>> @@ -885,6 +889,43 @@ void arch_domain_creation_finished(struct domain *d)
>>>      p2m_domain_creation_finished(d);
>>>  }
>>>
>>> +int arch_domain_resume(struct domain *d)
>>> +{
>>> +    int rc;
>>> +    struct resume_info *ctx = &d->arch.resume_ctx;
>>> +
>>> +    if ( !d->is_shutting_down || d->shutdown_code != SHUTDOWN_suspend )
>>> +    {
>>> +        dprintk(XENLOG_WARNING,
>>> +                "%pd: Invalid domain state for resume: is_shutting_down=%d, shutdown_code=%d\n",
>> These are bool and uint, so %u should be used.
> 
> ack
> 
>>
>>> +                d, d->is_shutting_down, d->shutdown_code);
>>> +        return -EINVAL;
>>> +    }
>>> +
>>> +    /*
>>> +     * It is still possible to call domain_shutdown() with a suspend reason
>>> +     * via some hypercalls, such as SCHEDOP_shutdown or SCHEDOP_remote_shutdown.
>>> +     * In these cases, the resume context will be empty.
>>> +     * This is not expected to cause any issues, so we just warn about the
>>> +     * situation and return without error, allowing the existing logic to
>>> +     * proceed as expected.
>>> +     */
>>> +    if ( !ctx->wake_cpu )
>>> +    {
>>> +        dprintk(XENLOG_INFO, "%pd: Wake CPU pointer context was not provided\n",
>>> +                d);
>>> +        return 0;
>>> +    }
>>> +
>>> +    rc = vpsci_vcpu_up_prepare(ctx->wake_cpu , ctx->ep, ctx->cid);
>>> +    if ( rc )
>>> +        printk("%pd: Failed to resume domain (ret %d)\n", d, rc);
>>> +
>>> +    memset(ctx, 0, sizeof(*ctx));
>>> +
>>> +    return rc;
>>> +}
>>> +
>>>  static int is_guest_pv32_psr(uint32_t psr)
>>>  {
>>>      switch (psr & PSR_MODE_MASK)
>>> diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
>>> index af3e168374..e637cb4de0 100644
>>> --- a/xen/arch/arm/include/asm/domain.h
>>> +++ b/xen/arch/arm/include/asm/domain.h
>>> @@ -5,6 +5,7 @@
>>>  #include <xen/timer.h>
>>>  #include <asm/page.h>
>>>  #include <asm/p2m.h>
>>> +#include <asm/suspend.h>
>>>  #include <asm/vfp.h>
>>>  #include <asm/mmio.h>
>>>  #include <asm/gic.h>
>>> @@ -126,6 +127,7 @@ struct arch_domain
>>>      void *sci_data;
>>>  #endif
>>>
>>> +    struct resume_info resume_ctx;
>>>  }  __cacheline_aligned;
>>>
>>>  struct arch_vcpu
>>> diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/include/asm/perfc_defn.h
>>> index effd25b69e..8dfcac7e3b 100644
>>> --- a/xen/arch/arm/include/asm/perfc_defn.h
>>> +++ b/xen/arch/arm/include/asm/perfc_defn.h
>>> @@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system_reset")
>>>  PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
>>>  PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
>>>  PERFCOUNTER(vpsci_features,            "vpsci: features")
>>> +PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
>>>
>>>  PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
>>>
>>> diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/psci.h
>>> index 4780972621..48a93e6b79 100644
>>> --- a/xen/arch/arm/include/asm/psci.h
>>> +++ b/xen/arch/arm/include/asm/psci.h
>>> @@ -47,10 +47,12 @@ void call_psci_system_reset(void);
>>>  #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
>>>  #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
>>>  #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
>>> +#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
>>>
>>>  #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
>>>  #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
>>>  #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
>>> +#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
>>>
>>>  /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
>>>  #define PSCI_0_2_AFFINITY_LEVEL_ON      0
>>> diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
>>> new file mode 100644
>>> index 0000000000..b991a94d5a
>>> --- /dev/null
>>> +++ b/xen/arch/arm/include/asm/suspend.h
>>> @@ -0,0 +1,24 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +
>>> +#ifndef __ARM_SUSPEND_H__
>> There should be no double underscores in guards (see examples in CODING_STYLE)
> 
> I had initially followed the style used by some of the existing headers
> in this directory, which still use guards with double underscores.
> 
> I'll remove underscores in the next series.
> 
>>> +#define __ARM_SUSPEND_H__
>>> +
>>> +struct resume_info {
>>> +    register_t ep;
>>> +    register_t cid;
>>> +    struct vcpu *wake_cpu;
>>> +};
>>> +
>>> +int arch_domain_resume(struct domain *d);
>> If possible, headers should be standalone, meaning you should include necessary
>> headers or forward declare what's missing.
> 
> Thanks for the comment.
> 
> My initial intention was to avoid adding new dependencies from asm
> headers to higher-level Xen headers, so I did not include e.g.
> <xen/sched.h> directly here. In this header we only need pointers to
> struct domain and struct vcpu, we never dereference them, so forward
> declarations would be sufficient to make it standalone.
> 
> I also noticed that some existing asm headers in this directory do
> include higher-level Xen headers, so both patterns exist in the tree.
> 
> If you prefer, I can either:
>   - add forward declarations
> 
>       struct domain;
>       struct vcpu;
> 
>     at the top of this header and keep the full includes in the .c
>     files that actually dereference these types, or
> 
>   - include the appropriate Xen header(s) directly in this header.
> 
> Personally I slightly prefer the forward-declaration approach to keep
> this header lightweight and avoid tightening the layering, but I am
> happy to follow your preference.
My preference is also to forward declare these structs.

> 
>>
>>> +
>>> +#endif /* __ARM_SUSPEND_H__ */
>>> +
>>> + /*
>>> +  * Local variables:
>>> +  * mode: C
>>> +  * c-file-style: "BSD"
>>> +  * c-basic-offset: 4
>>> +  * tab-width: 4
>>> +  * indent-tabs-mode: nil
>>> +  * End:
>>> +  */
>>> diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/asm/vpsci.h
>>> index 0cca5e6830..d790ab3715 100644
>>> --- a/xen/arch/arm/include/asm/vpsci.h
>>> +++ b/xen/arch/arm/include/asm/vpsci.h
>>> @@ -23,12 +23,15 @@
>>>  #include <asm/psci.h>
>>>
>>>  /* Number of function implemented by virtual PSCI (only 0.2 or later) */
>>> -#define VPSCI_NR_FUNCS  12
>>> +#define VPSCI_NR_FUNCS  14
>>>
>>>  /* Functions handle PSCI calls from the guests */
>>>  bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
>>>  bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid);
>>>
>>> +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
>>> +                          register_t context_id);
>>> +
>>>  #endif /* __ASM_VPSCI_H__ */
>>>
>>>  /*
>>> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
>>> index 7ba9ccd94b..22c3a5f544 100644
>>> --- a/xen/arch/arm/vpsci.c
>>> +++ b/xen/arch/arm/vpsci.c
>>> @@ -10,32 +10,16 @@
>>>
>>>  #include <public/sched.h>
>>>
>>> -static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
>>> -                            register_t context_id)
>>> +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
>>> +                   register_t context_id)
>> NIT: incorrect parameter alignment
> 
> ack
> 
>>
>>>  {
>>> -    struct vcpu *v;
>>> -    struct domain *d = current->domain;
>>> -    struct vcpu_guest_context *ctxt;
>>>      int rc;
>>> +    struct domain *d = v->domain;
>>>      bool is_thumb = entry_point & 1;
>>> -    register_t vcpuid;
>>> -
>>> -    vcpuid = vaffinity_to_vcpuid(target_cpu);
>>> -
>>> -    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
>>> -        return PSCI_INVALID_PARAMETERS;
>>> -
>>> -    /* THUMB set is not allowed with 64-bit domain */
>>> -    if ( is_64bit_domain(d) && is_thumb )
>>> -        return PSCI_INVALID_ADDRESS;
>>> -
>>> -    if ( !test_bit(_VPF_down, &v->pause_flags) )
>>> -        return PSCI_ALREADY_ON;
>>> +    struct vcpu_guest_context *ctxt;
>>>
>>>      if ( (ctxt = alloc_vcpu_guest_context()) == NULL )
>>> -        return PSCI_DENIED;
>>> -
>>> -    vgic_clear_pending_irqs(v);
>>> +        return -ENOMEM;
>>>
>>>      memset(ctxt, 0, sizeof(*ctxt));
>>>      ctxt->user_regs.pc64 = (u64) entry_point;
>>> @@ -76,8 +60,37 @@ static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
>>>      free_vcpu_guest_context(ctxt);
>>>
>>>      if ( rc < 0 )
>>> +        return rc;
>>> +
>>> +    return 0;
>>> +}
>>> +
>>> +static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
>>> +                            register_t context_id)
>>> +{
>>> +    struct vcpu *v;
>>> +    struct domain *d = current->domain;
>>> +    int rc;
>>> +    bool is_thumb = entry_point & 1;
>>> +    register_t vcpuid;
>>> +
>>> +    vcpuid = vaffinity_to_vcpuid(target_cpu);
>>> +
>>> +    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
>>> +        return PSCI_INVALID_PARAMETERS;
>>> +
>>> +    /* THUMB set is not allowed with 64-bit domain */
>>> +    if ( is_64bit_domain(d) && is_thumb )
>>> +        return PSCI_INVALID_ADDRESS;
>>> +
>>> +    if ( !test_bit(_VPF_down, &v->pause_flags) )
>>> +        return PSCI_ALREADY_ON;
>>> +
>>> +    rc = vpsci_vcpu_up_prepare(v, entry_point, context_id);
>>> +    if ( rc )
>>>          return PSCI_DENIED;
>>>
>>> +    vgic_clear_pending_irqs(v);
>>>      vcpu_wake(v);
>>>
>>>      return PSCI_SUCCESS;
>>> @@ -197,6 +210,48 @@ static void do_psci_0_2_system_reset(void)
>>>      domain_shutdown(d,SHUTDOWN_reboot);
>>>  }
>>>
>>> +static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
>>> +{
>>> +    int32_t rc;
>>> +    struct vcpu *v;
>>> +    struct domain *d = current->domain;
>>> +    bool is_thumb = epoint & 1;
>>> +
>>> +    /* THUMB set is not allowed with 64-bit domain */
>>> +    if ( is_64bit_domain(d) && is_thumb )
>>> +        return PSCI_INVALID_ADDRESS;
>>> +
>>> +    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
>>> +    if ( is_hardware_domain(d) )
>>> +        return PSCI_NOT_SUPPORTED;
>>> +
>>> +    /* Ensure that all CPUs other than the calling one are offline */
>>> +    domain_lock(d);
>>> +    for_each_vcpu ( d, v )
>>> +    {
>>> +        if ( v != current && is_vcpu_online(v) )
>>> +        {
>>> +            domain_unlock(d);
>>> +            return PSCI_DENIED;
>>> +        }
>>> +    }
>>> +    domain_unlock(d);
>>> +
>>> +    rc = domain_shutdown(d, SHUTDOWN_suspend);
>>> +    if ( rc )
>>> +        return PSCI_DENIED;
>>> +
>>> +    d->arch.resume_ctx.ep = epoint;
>>> +    d->arch.resume_ctx.cid = cid;
>>> +    d->arch.resume_ctx.wake_cpu = current;
>>> +
>>> +    gprintk(XENLOG_DEBUG,
>>> +            "SYSTEM_SUSPEND requested, epoint=0x%"PRIregister", cid=0x%"PRIregister"\n",
>> NIT: %# is preffered over 0x%.
> 
> ack
> 
>>
>>> +            epoint, cid);
>>> +
>>> +    return rc;
>>> +}
>>> +
>>>  static int32_t do_psci_1_0_features(uint32_t psci_func_id)
>>>  {
>>>      /* /!\ Ordered by function ID and not name */
>>> @@ -214,6 +269,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
>>>      case PSCI_0_2_FN32_SYSTEM_OFF:
>>>      case PSCI_0_2_FN32_SYSTEM_RESET:
>>>      case PSCI_1_0_FN32_PSCI_FEATURES:
>>> +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
>>> +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
>>>      case ARM_SMCCC_VERSION_FID:
>>>          return 0;
>>>      default:
>>> @@ -344,6 +401,23 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
>>>          return true;
>>>      }
>>>
>>> +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
>>> +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
>>> +    {
>>> +        register_t epoint = PSCI_ARG(regs, 1);
>>> +        register_t cid = PSCI_ARG(regs, 2);
>>> +
>>> +        if ( fid == PSCI_1_0_FN32_SYSTEM_SUSPEND )
>>> +        {
>>> +            epoint &= GENMASK(31, 0);
>>> +            cid &= GENMASK(31, 0);
>>> +        }
>>> +
>>> +        perfc_incr(vpsci_system_suspend);
>>> +        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid));
>>> +        return true;
>>> +    }
>>> +
>>>      default:
>>>          return false;
>>>      }
>>> diff --git a/xen/common/domain.c b/xen/common/domain.c
>>> index 775c339285..6410d32970 100644
>>> --- a/xen/common/domain.c
>>> +++ b/xen/common/domain.c
>>> @@ -26,6 +26,7 @@
>>>  #include <xen/hypercall.h>
>>>  #include <xen/delay.h>
>>>  #include <xen/shutdown.h>
>>> +#include <xen/suspend.h>
>>>  #include <xen/percpu.h>
>>>  #include <xen/multicall.h>
>>>  #include <xen/rcupdate.h>
>>> @@ -1363,6 +1364,9 @@ void domain_resume(struct domain *d)
>>>
>>>      spin_lock(&d->shutdown_lock);
>>>
>>> +    if ( arch_domain_resume(d) )
>>> +        goto fail;
>>> +
>>>      d->is_shutting_down = d->is_shut_down = 0;
>>>      d->shutdown_code = SHUTDOWN_CODE_INVALID;
>>>
>>> @@ -1373,6 +1377,7 @@ void domain_resume(struct domain *d)
>>>          v->paused_for_shutdown = 0;
>>>      }
>>>
>>> + fail:
>>>      spin_unlock(&d->shutdown_lock);
>>>
>>>      domain_unpause(d);
>>> diff --git a/xen/include/xen/suspend.h b/xen/include/xen/suspend.h
>>> new file mode 100644
>>> index 0000000000..53f75fd6ad
>>> --- /dev/null
>>> +++ b/xen/include/xen/suspend.h
>>> @@ -0,0 +1,15 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +#ifndef __XEN_SUSPEND_H__
>> There should be no double underscores in guards
> 
> I initially followed the style used by the existing headers in this
> directory, which still have include guards with double underscores.
> 
> You are right that this does not match CODING_STYLE examples.
> I will update this header to use a proper guard name.
> 
>>
>>> +#define __XEN_SUSPEND_H__
>>> +
>>> +#if __has_include(<asm/suspend.h>)
>>> +#include <asm/suspend.h>
>>> +#else
>>> +static inline int arch_domain_resume(struct domain *d)
>>> +{
>>> +    return 0;
>>> +}
>>> +#endif
>>> +
>> Stray whiteline?
> 
> will drop
> 
>>
>>> +
>>> +#endif /* __XEN_SUSPEND_H__ */
>> Missing emacs block?
> 
> It is permitted but isn't necessary as far as know,
> but if it needed here per your opinion I'll add it
> just let me know
On Arm we usually require them and that's the overall preference I would say.

> 
>>
>> Did you run MISRA scan on this patch?
> 
> Yes, I ran it with:
> 
>   ./xen/scripts/xen-analysis.py \
>       --run-cppcheck --cppcheck-misra --cppcheck-html -- \
>       XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
> 
> The analysis did not report any new MISRA violations in the code
> touched by this patch.
That's only cppcheck scan which is rather poor in finding violations. ECLAIR
scan is done through Gitlab CI and this one is what we rely on for taking the
series in.

~Michal



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 11:33:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 11:33:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165861.1492524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLgQn-0004yd-Pk; Wed, 19 Nov 2025 11:33:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165861.1492524; Wed, 19 Nov 2025 11:33: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 1vLgQn-0004yW-MW; Wed, 19 Nov 2025 11:33:01 +0000
Received: by outflank-mailman (input) for mailman id 1165861;
 Wed, 19 Nov 2025 11:33: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=/QLq=53=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vLgQn-0004yK-5M
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 11:33:01 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7e77a809-c53b-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 12:32:56 +0100 (CET)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-5957f617ff0so7185501e87.2
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 03:32: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: 7e77a809-c53b-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763551976; x=1764156776; 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=i9/TQUoqVINbTdvbzMv1siyswm2A8tvJZcIh6XBFO78=;
        b=ODglg9Bilc8V7qfekVCOyMlOjj63xWUPd04ppIFmi+F1XvQKWGuCgFnSC32mGCT5wv
         ulj/YOBk0loKBgGioBM8ncmeffpF8K3Ug6wGzxgF//NzO3leX+T9UfvT4HyFcLrnaf1I
         67/YDRjmb+vK4vm5oFhByFg3NYi5WOC4oiPctCvseGrur8gM99YBW/efg2jgTmEhalJR
         +o6SYSonomhkwATpVx0WoR85NEaYwUWNH0jL13AGZ+zNJCip0UdhAUMQacXT4T7sBswj
         7Rxb2alf1wul3yboNp0JfsMMmhiS2YM1KSSgkvs6B3My31pLy8zj1j7jkdS2bWa2gbfP
         /8cg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763551976; x=1764156776;
        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=i9/TQUoqVINbTdvbzMv1siyswm2A8tvJZcIh6XBFO78=;
        b=fSYaK3Iytl8WpPpgXYJVvPlKyR2bfYKLWSMx/n1v7J2kmjidN6H2jiUVNm9qCMmnQi
         9/fpXc+WWfVJyxM3Jiy4pPLx9zdua+qy2rFCaXfESozFdVAWtos3HLXYzeQBymoRlAXo
         0jtF4nex3XI0FJSeMxFlMeIg0uX0KTJ62BtTLGDmPtqjlnMUTnqWHrrGRLx/c6bt34jb
         BybJN/FkAz0jGNntw90l/kNB2k1YlMD1AcSWhe+TzTVCcK/ZQXX/mc0XlxgwBcxYZgSb
         QYBYbOooJIa/IQH6AL7Qxk9xKjM3oJ4eRi8Aeej/uYmihOdm2fvDULZ6RlgeZB3cNJB6
         PdJQ==
X-Gm-Message-State: AOJu0Yx+JrDWF3W1V3+31PTz1/oLo3yGPtP5PLjk0GyjKxQ80EM9VICn
	1fhYtkp2bzkpPVZZL5oMXQ8RC0RyyQV6IY0u5z76xEfsIH38xNUcQrDo8SXBvHwX8Aus4GY0jiX
	iUvoX2eifYPHQtea/dOwk16JLaNwVAoc=
X-Gm-Gg: ASbGncuWrM3WpC/NBHT/xcrApOKS6xlrB/5qZGIB5KN76yJstvzDJ2RC/L2r+6qaUy0
	qlZG7sjg0Qe1cRtFuDaaBZSQWAbiyn6+nw32E/HSAenwxbILY2B0nwFp4F5G1/TIMIsEQXFydO2
	xDPbajn0JTYaX+Yx9fSqKJU1szhZO4iAJy0vqh5BrD27PrqqQlV92uwV1nYgDwOQl7FYrFrBLkU
	973whD7u+PDoVrOkyVB9IvVanWRFKBsHv8PqCvHxCQoVjp56rC2QPfW/UCZAtFlpJW1Vw==
X-Google-Smtp-Source: AGHT+IE854lHLwfNu5ThseE7V6PylR4g2SJjBaEkXGRZJ6R4n3MKUoiBzQd7OcqyieAsRxBOw99AMUWCiI5rJJomyVQ=
X-Received: by 2002:a05:6512:12c9:b0:594:3270:3b14 with SMTP id
 2adb3069b0e04-595841f96b2mr6975126e87.32.1763551975361; Wed, 19 Nov 2025
 03:32:55 -0800 (PST)
MIME-Version: 1.0
References: <cover.1763479083.git.xakep.amatop@gmail.com> <3786204d034ae4461aa0fde77771b8e14256314a.1763479083.git.xakep.amatop@gmail.com>
 <5a5b4bf6-4cd6-4b64-ba31-07a87b1fdbaa@amd.com> <CAGeoDV_4Bpp50wkd+wtq6zVHg4KZqnOcndG7rfqMndo=HW1sYQ@mail.gmail.com>
 <cd7657d8-47bd-4484-91b3-4fb79985537c@amd.com>
In-Reply-To: <cd7657d8-47bd-4484-91b3-4fb79985537c@amd.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Wed, 19 Nov 2025 13:32:43 +0200
X-Gm-Features: AWmQ_bmJG5AokgVbRcO8RET0RkHuQEbvrQ2IDjVcT2G0QkiMJgfmvZUakzGzAUU
Message-ID: <CAGeoDV9C7OVQWRyYZ+rV8Dn79PSkGd2veP18t46t+pMCt3LMnQ@mail.gmail.com>
Subject: Re: [PATCH v14 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Nov 19, 2025 at 1:07=E2=80=AFPM Orzel, Michal <michal.orzel@amd.com=
> wrote:
>
>
>
> On 19/11/2025 12:00, Mykola Kvach wrote:
> > Hi Michal,
> >
> > Thanks for your review.
> >
> > On Wed, Nov 19, 2025 at 10:48=E2=80=AFAM Orzel, Michal <michal.orzel@am=
d.com> wrote:
> >>
> >>
> >>
> >> On 18/11/2025 16:37, Mykola Kvach wrote:
> >>> From: Mykola Kvach <mykola_kvach@epam.com>
> >>>
> >>> Add support for the PSCI SYSTEM_SUSPEND function in the vPSCI interfa=
ce,
> >>> allowing guests to request suspend via the PSCI v1.0+ SYSTEM_SUSPEND =
call
> >>> (both 32-bit and 64-bit variants).
> >>>
> >>> Implementation details:
> >>> - Add SYSTEM_SUSPEND function IDs to PSCI definitions
> >>> - Trap and handle SYSTEM_SUSPEND in vPSCI
> >>> - Allow only non-hardware domains to invoke SYSTEM_SUSPEND; return
> >>>   PSCI_NOT_SUPPORTED for the hardware domain to avoid halting the sys=
tem
> >>>   in hwdom_shutdown() via domain_shutdown
> >>> - Require all secondary VCPUs of the calling domain to be offline bef=
ore
> >>>   suspend, as mandated by the PSCI specification
> >>>
> >>> The arch_domain_resume() function is an architecture-specific hook th=
at is
> >>> invoked during domain resume to perform any necessary setup or restor=
ation
> >>> steps required by the platform.
> >>>
> >>> The new vpsci_vcpu_up_prepare() helper is called on the resume path t=
o set up
> >>> the vCPU context (such as entry point, some system regs and context I=
D) before
> >>> resuming a suspended guest. This keeps ARM/vPSCI-specific logic out o=
f common
> >>> code and avoids intrusive changes to the generic resume flow.
> >>>
> >>> Usage:
> >>>
> >>> For Linux-based guests, suspend can be initiated with:
> >>>     echo mem > /sys/power/state
> >>> or via:
> >>>     systemctl suspend
> >>>
> >>> Resuming the guest is performed from control domain using:
> >>>       xl resume <domain>
> >>>
> >>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> >>> ---
> >>> Changes in V14:
> >>> - move arch_domain_resume to a separate header
> >>> - avoid usage of typeof for context struct
> >>> - moved error printing from domain_resume to arch_domain_resume
> >>>   in order to simplify common parts of code
> >>> - minor changes after review
> >>> ---
> >>>  xen/arch/arm/domain.c                 |  41 +++++++++
> >>>  xen/arch/arm/include/asm/domain.h     |   2 +
> >>>  xen/arch/arm/include/asm/perfc_defn.h |   1 +
> >>>  xen/arch/arm/include/asm/psci.h       |   2 +
> >>>  xen/arch/arm/include/asm/suspend.h    |  24 ++++++
> >>>  xen/arch/arm/include/asm/vpsci.h      |   5 +-
> >>>  xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++---=
--
> >>>  xen/common/domain.c                   |   5 ++
> >>>  xen/include/xen/suspend.h             |  15 ++++
> >>>  9 files changed, 189 insertions(+), 22 deletions(-)
> >>>  create mode 100644 xen/arch/arm/include/asm/suspend.h
> >>>  create mode 100644 xen/include/xen/suspend.h
> >>>
> >>> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> >>> index e36719bce4..3c0170480b 100644
> >>> --- a/xen/arch/arm/domain.c
> >>> +++ b/xen/arch/arm/domain.c
> >>> @@ -12,6 +12,8 @@
> >>>  #include <xen/softirq.h>
> >>>  #include <xen/wait.h>
> >>>
> >>> +#include <public/sched.h>
> >>> +
> >>>  #include <asm/arm64/sve.h>
> >>>  #include <asm/cpuerrata.h>
> >>>  #include <asm/cpufeature.h>
> >>> @@ -24,10 +26,12 @@
> >>>  #include <asm/platform.h>
> >>>  #include <asm/procinfo.h>
> >>>  #include <asm/regs.h>
> >>> +#include <asm/suspend.h>
> >>>  #include <asm/firmware/sci.h>
> >>>  #include <asm/tee/tee.h>
> >>>  #include <asm/vfp.h>
> >>>  #include <asm/vgic.h>
> >>> +#include <asm/vpsci.h>
> >>>  #include <asm/vtimer.h>
> >>>
> >>>  #include "vpci.h"
> >>> @@ -885,6 +889,43 @@ void arch_domain_creation_finished(struct domain=
 *d)
> >>>      p2m_domain_creation_finished(d);
> >>>  }
> >>>
> >>> +int arch_domain_resume(struct domain *d)
> >>> +{
> >>> +    int rc;
> >>> +    struct resume_info *ctx =3D &d->arch.resume_ctx;
> >>> +
> >>> +    if ( !d->is_shutting_down || d->shutdown_code !=3D SHUTDOWN_susp=
end )
> >>> +    {
> >>> +        dprintk(XENLOG_WARNING,
> >>> +                "%pd: Invalid domain state for resume: is_shutting_d=
own=3D%d, shutdown_code=3D%d\n",
> >> These are bool and uint, so %u should be used.
> >
> > ack
> >
> >>
> >>> +                d, d->is_shutting_down, d->shutdown_code);
> >>> +        return -EINVAL;
> >>> +    }
> >>> +
> >>> +    /*
> >>> +     * It is still possible to call domain_shutdown() with a suspend=
 reason
> >>> +     * via some hypercalls, such as SCHEDOP_shutdown or SCHEDOP_remo=
te_shutdown.
> >>> +     * In these cases, the resume context will be empty.
> >>> +     * This is not expected to cause any issues, so we just warn abo=
ut the
> >>> +     * situation and return without error, allowing the existing log=
ic to
> >>> +     * proceed as expected.
> >>> +     */
> >>> +    if ( !ctx->wake_cpu )
> >>> +    {
> >>> +        dprintk(XENLOG_INFO, "%pd: Wake CPU pointer context was not =
provided\n",
> >>> +                d);
> >>> +        return 0;
> >>> +    }
> >>> +
> >>> +    rc =3D vpsci_vcpu_up_prepare(ctx->wake_cpu , ctx->ep, ctx->cid);
> >>> +    if ( rc )
> >>> +        printk("%pd: Failed to resume domain (ret %d)\n", d, rc);
> >>> +
> >>> +    memset(ctx, 0, sizeof(*ctx));
> >>> +
> >>> +    return rc;
> >>> +}
> >>> +
> >>>  static int is_guest_pv32_psr(uint32_t psr)
> >>>  {
> >>>      switch (psr & PSR_MODE_MASK)
> >>> diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include=
/asm/domain.h
> >>> index af3e168374..e637cb4de0 100644
> >>> --- a/xen/arch/arm/include/asm/domain.h
> >>> +++ b/xen/arch/arm/include/asm/domain.h
> >>> @@ -5,6 +5,7 @@
> >>>  #include <xen/timer.h>
> >>>  #include <asm/page.h>
> >>>  #include <asm/p2m.h>
> >>> +#include <asm/suspend.h>
> >>>  #include <asm/vfp.h>
> >>>  #include <asm/mmio.h>
> >>>  #include <asm/gic.h>
> >>> @@ -126,6 +127,7 @@ struct arch_domain
> >>>      void *sci_data;
> >>>  #endif
> >>>
> >>> +    struct resume_info resume_ctx;
> >>>  }  __cacheline_aligned;
> >>>
> >>>  struct arch_vcpu
> >>> diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/inc=
lude/asm/perfc_defn.h
> >>> index effd25b69e..8dfcac7e3b 100644
> >>> --- a/xen/arch/arm/include/asm/perfc_defn.h
> >>> +++ b/xen/arch/arm/include/asm/perfc_defn.h
> >>> @@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: syst=
em_reset")
> >>>  PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
> >>>  PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
> >>>  PERFCOUNTER(vpsci_features,            "vpsci: features")
> >>> +PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
> >>>
> >>>  PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
> >>>
> >>> diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/a=
sm/psci.h
> >>> index 4780972621..48a93e6b79 100644
> >>> --- a/xen/arch/arm/include/asm/psci.h
> >>> +++ b/xen/arch/arm/include/asm/psci.h
> >>> @@ -47,10 +47,12 @@ void call_psci_system_reset(void);
> >>>  #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
> >>>  #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
> >>>  #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
> >>> +#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
> >>>
> >>>  #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
> >>>  #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
> >>>  #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
> >>> +#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
> >>>
> >>>  /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
> >>>  #define PSCI_0_2_AFFINITY_LEVEL_ON      0
> >>> diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/includ=
e/asm/suspend.h
> >>> new file mode 100644
> >>> index 0000000000..b991a94d5a
> >>> --- /dev/null
> >>> +++ b/xen/arch/arm/include/asm/suspend.h
> >>> @@ -0,0 +1,24 @@
> >>> +/* SPDX-License-Identifier: GPL-2.0-only */
> >>> +
> >>> +#ifndef __ARM_SUSPEND_H__
> >> There should be no double underscores in guards (see examples in CODIN=
G_STYLE)
> >
> > I had initially followed the style used by some of the existing headers
> > in this directory, which still use guards with double underscores.
> >
> > I'll remove underscores in the next series.
> >
> >>> +#define __ARM_SUSPEND_H__
> >>> +
> >>> +struct resume_info {
> >>> +    register_t ep;
> >>> +    register_t cid;
> >>> +    struct vcpu *wake_cpu;
> >>> +};
> >>> +
> >>> +int arch_domain_resume(struct domain *d);
> >> If possible, headers should be standalone, meaning you should include =
necessary
> >> headers or forward declare what's missing.
> >
> > Thanks for the comment.
> >
> > My initial intention was to avoid adding new dependencies from asm
> > headers to higher-level Xen headers, so I did not include e.g.
> > <xen/sched.h> directly here. In this header we only need pointers to
> > struct domain and struct vcpu, we never dereference them, so forward
> > declarations would be sufficient to make it standalone.
> >
> > I also noticed that some existing asm headers in this directory do
> > include higher-level Xen headers, so both patterns exist in the tree.
> >
> > If you prefer, I can either:
> >   - add forward declarations
> >
> >       struct domain;
> >       struct vcpu;
> >
> >     at the top of this header and keep the full includes in the .c
> >     files that actually dereference these types, or
> >
> >   - include the appropriate Xen header(s) directly in this header.
> >
> > Personally I slightly prefer the forward-declaration approach to keep
> > this header lightweight and avoid tightening the layering, but I am
> > happy to follow your preference.
> My preference is also to forward declare these structs.
>
> >
> >>
> >>> +
> >>> +#endif /* __ARM_SUSPEND_H__ */
> >>> +
> >>> + /*
> >>> +  * Local variables:
> >>> +  * mode: C
> >>> +  * c-file-style: "BSD"
> >>> +  * c-basic-offset: 4
> >>> +  * tab-width: 4
> >>> +  * indent-tabs-mode: nil
> >>> +  * End:
> >>> +  */
> >>> diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/=
asm/vpsci.h
> >>> index 0cca5e6830..d790ab3715 100644
> >>> --- a/xen/arch/arm/include/asm/vpsci.h
> >>> +++ b/xen/arch/arm/include/asm/vpsci.h
> >>> @@ -23,12 +23,15 @@
> >>>  #include <asm/psci.h>
> >>>
> >>>  /* Number of function implemented by virtual PSCI (only 0.2 or later=
) */
> >>> -#define VPSCI_NR_FUNCS  12
> >>> +#define VPSCI_NR_FUNCS  14
> >>>
> >>>  /* Functions handle PSCI calls from the guests */
> >>>  bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
> >>>  bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid);
> >>>
> >>> +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
> >>> +                          register_t context_id);
> >>> +
> >>>  #endif /* __ASM_VPSCI_H__ */
> >>>
> >>>  /*
> >>> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> >>> index 7ba9ccd94b..22c3a5f544 100644
> >>> --- a/xen/arch/arm/vpsci.c
> >>> +++ b/xen/arch/arm/vpsci.c
> >>> @@ -10,32 +10,16 @@
> >>>
> >>>  #include <public/sched.h>
> >>>
> >>> -static int do_common_cpu_on(register_t target_cpu, register_t entry_=
point,
> >>> -                            register_t context_id)
> >>> +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
> >>> +                   register_t context_id)
> >> NIT: incorrect parameter alignment
> >
> > ack
> >
> >>
> >>>  {
> >>> -    struct vcpu *v;
> >>> -    struct domain *d =3D current->domain;
> >>> -    struct vcpu_guest_context *ctxt;
> >>>      int rc;
> >>> +    struct domain *d =3D v->domain;
> >>>      bool is_thumb =3D entry_point & 1;
> >>> -    register_t vcpuid;
> >>> -
> >>> -    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> >>> -
> >>> -    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> >>> -        return PSCI_INVALID_PARAMETERS;
> >>> -
> >>> -    /* THUMB set is not allowed with 64-bit domain */
> >>> -    if ( is_64bit_domain(d) && is_thumb )
> >>> -        return PSCI_INVALID_ADDRESS;
> >>> -
> >>> -    if ( !test_bit(_VPF_down, &v->pause_flags) )
> >>> -        return PSCI_ALREADY_ON;
> >>> +    struct vcpu_guest_context *ctxt;
> >>>
> >>>      if ( (ctxt =3D alloc_vcpu_guest_context()) =3D=3D NULL )
> >>> -        return PSCI_DENIED;
> >>> -
> >>> -    vgic_clear_pending_irqs(v);
> >>> +        return -ENOMEM;
> >>>
> >>>      memset(ctxt, 0, sizeof(*ctxt));
> >>>      ctxt->user_regs.pc64 =3D (u64) entry_point;
> >>> @@ -76,8 +60,37 @@ static int do_common_cpu_on(register_t target_cpu,=
 register_t entry_point,
> >>>      free_vcpu_guest_context(ctxt);
> >>>
> >>>      if ( rc < 0 )
> >>> +        return rc;
> >>> +
> >>> +    return 0;
> >>> +}
> >>> +
> >>> +static int do_common_cpu_on(register_t target_cpu, register_t entry_=
point,
> >>> +                            register_t context_id)
> >>> +{
> >>> +    struct vcpu *v;
> >>> +    struct domain *d =3D current->domain;
> >>> +    int rc;
> >>> +    bool is_thumb =3D entry_point & 1;
> >>> +    register_t vcpuid;
> >>> +
> >>> +    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> >>> +
> >>> +    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> >>> +        return PSCI_INVALID_PARAMETERS;
> >>> +
> >>> +    /* THUMB set is not allowed with 64-bit domain */
> >>> +    if ( is_64bit_domain(d) && is_thumb )
> >>> +        return PSCI_INVALID_ADDRESS;
> >>> +
> >>> +    if ( !test_bit(_VPF_down, &v->pause_flags) )
> >>> +        return PSCI_ALREADY_ON;
> >>> +
> >>> +    rc =3D vpsci_vcpu_up_prepare(v, entry_point, context_id);
> >>> +    if ( rc )
> >>>          return PSCI_DENIED;
> >>>
> >>> +    vgic_clear_pending_irqs(v);
> >>>      vcpu_wake(v);
> >>>
> >>>      return PSCI_SUCCESS;
> >>> @@ -197,6 +210,48 @@ static void do_psci_0_2_system_reset(void)
> >>>      domain_shutdown(d,SHUTDOWN_reboot);
> >>>  }
> >>>
> >>> +static int32_t do_psci_1_0_system_suspend(register_t epoint, registe=
r_t cid)
> >>> +{
> >>> +    int32_t rc;
> >>> +    struct vcpu *v;
> >>> +    struct domain *d =3D current->domain;
> >>> +    bool is_thumb =3D epoint & 1;
> >>> +
> >>> +    /* THUMB set is not allowed with 64-bit domain */
> >>> +    if ( is_64bit_domain(d) && is_thumb )
> >>> +        return PSCI_INVALID_ADDRESS;
> >>> +
> >>> +    /* SYSTEM_SUSPEND is not supported for the hardware domain yet *=
/
> >>> +    if ( is_hardware_domain(d) )
> >>> +        return PSCI_NOT_SUPPORTED;
> >>> +
> >>> +    /* Ensure that all CPUs other than the calling one are offline *=
/
> >>> +    domain_lock(d);
> >>> +    for_each_vcpu ( d, v )
> >>> +    {
> >>> +        if ( v !=3D current && is_vcpu_online(v) )
> >>> +        {
> >>> +            domain_unlock(d);
> >>> +            return PSCI_DENIED;
> >>> +        }
> >>> +    }
> >>> +    domain_unlock(d);
> >>> +
> >>> +    rc =3D domain_shutdown(d, SHUTDOWN_suspend);
> >>> +    if ( rc )
> >>> +        return PSCI_DENIED;
> >>> +
> >>> +    d->arch.resume_ctx.ep =3D epoint;
> >>> +    d->arch.resume_ctx.cid =3D cid;
> >>> +    d->arch.resume_ctx.wake_cpu =3D current;
> >>> +
> >>> +    gprintk(XENLOG_DEBUG,
> >>> +            "SYSTEM_SUSPEND requested, epoint=3D0x%"PRIregister", ci=
d=3D0x%"PRIregister"\n",
> >> NIT: %# is preffered over 0x%.
> >
> > ack
> >
> >>
> >>> +            epoint, cid);
> >>> +
> >>> +    return rc;
> >>> +}
> >>> +
> >>>  static int32_t do_psci_1_0_features(uint32_t psci_func_id)
> >>>  {
> >>>      /* /!\ Ordered by function ID and not name */
> >>> @@ -214,6 +269,8 @@ static int32_t do_psci_1_0_features(uint32_t psci=
_func_id)
> >>>      case PSCI_0_2_FN32_SYSTEM_OFF:
> >>>      case PSCI_0_2_FN32_SYSTEM_RESET:
> >>>      case PSCI_1_0_FN32_PSCI_FEATURES:
> >>> +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> >>> +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
> >>>      case ARM_SMCCC_VERSION_FID:
> >>>          return 0;
> >>>      default:
> >>> @@ -344,6 +401,23 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *reg=
s, uint32_t fid)
> >>>          return true;
> >>>      }
> >>>
> >>> +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> >>> +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
> >>> +    {
> >>> +        register_t epoint =3D PSCI_ARG(regs, 1);
> >>> +        register_t cid =3D PSCI_ARG(regs, 2);
> >>> +
> >>> +        if ( fid =3D=3D PSCI_1_0_FN32_SYSTEM_SUSPEND )
> >>> +        {
> >>> +            epoint &=3D GENMASK(31, 0);
> >>> +            cid &=3D GENMASK(31, 0);
> >>> +        }
> >>> +
> >>> +        perfc_incr(vpsci_system_suspend);
> >>> +        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid=
));
> >>> +        return true;
> >>> +    }
> >>> +
> >>>      default:
> >>>          return false;
> >>>      }
> >>> diff --git a/xen/common/domain.c b/xen/common/domain.c
> >>> index 775c339285..6410d32970 100644
> >>> --- a/xen/common/domain.c
> >>> +++ b/xen/common/domain.c
> >>> @@ -26,6 +26,7 @@
> >>>  #include <xen/hypercall.h>
> >>>  #include <xen/delay.h>
> >>>  #include <xen/shutdown.h>
> >>> +#include <xen/suspend.h>
> >>>  #include <xen/percpu.h>
> >>>  #include <xen/multicall.h>
> >>>  #include <xen/rcupdate.h>
> >>> @@ -1363,6 +1364,9 @@ void domain_resume(struct domain *d)
> >>>
> >>>      spin_lock(&d->shutdown_lock);
> >>>
> >>> +    if ( arch_domain_resume(d) )
> >>> +        goto fail;
> >>> +
> >>>      d->is_shutting_down =3D d->is_shut_down =3D 0;
> >>>      d->shutdown_code =3D SHUTDOWN_CODE_INVALID;
> >>>
> >>> @@ -1373,6 +1377,7 @@ void domain_resume(struct domain *d)
> >>>          v->paused_for_shutdown =3D 0;
> >>>      }
> >>>
> >>> + fail:
> >>>      spin_unlock(&d->shutdown_lock);
> >>>
> >>>      domain_unpause(d);
> >>> diff --git a/xen/include/xen/suspend.h b/xen/include/xen/suspend.h
> >>> new file mode 100644
> >>> index 0000000000..53f75fd6ad
> >>> --- /dev/null
> >>> +++ b/xen/include/xen/suspend.h
> >>> @@ -0,0 +1,15 @@
> >>> +/* SPDX-License-Identifier: GPL-2.0-only */
> >>> +#ifndef __XEN_SUSPEND_H__
> >> There should be no double underscores in guards
> >
> > I initially followed the style used by the existing headers in this
> > directory, which still have include guards with double underscores.
> >
> > You are right that this does not match CODING_STYLE examples.
> > I will update this header to use a proper guard name.
> >
> >>
> >>> +#define __XEN_SUSPEND_H__
> >>> +
> >>> +#if __has_include(<asm/suspend.h>)
> >>> +#include <asm/suspend.h>
> >>> +#else
> >>> +static inline int arch_domain_resume(struct domain *d)
> >>> +{
> >>> +    return 0;
> >>> +}
> >>> +#endif
> >>> +
> >> Stray whiteline?
> >
> > will drop
> >
> >>
> >>> +
> >>> +#endif /* __XEN_SUSPEND_H__ */
> >> Missing emacs block?
> >
> > It is permitted but isn't necessary as far as know,
> > but if it needed here per your opinion I'll add it
> > just let me know
> On Arm we usually require them and that's the overall preference I would =
say.
>
> >
> >>
> >> Did you run MISRA scan on this patch?
> >
> > Yes, I ran it with:
> >
> >   ./xen/scripts/xen-analysis.py \
> >       --run-cppcheck --cppcheck-misra --cppcheck-html -- \
> >       XEN_TARGET_ARCH=3Darm64 CROSS_COMPILE=3Daarch64-linux-gnu-
> >
> > The analysis did not report any new MISRA violations in the code
> > touched by this patch.
> That's only cppcheck scan which is rather poor in finding violations. ECL=
AIR
> scan is done through Gitlab CI and this one is what we rely on for taking=
 the
> series in.

Thanks for the clarification.

Is it possible to run the ECLAIR MISRA scan locally, or is it only
available via the project Gitlab CI instance? If there is a way to run
it on a developer machine, I would be happy to set it up and check this
series with the same configuration.

>
> ~Michal
>

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 11:43:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 11:43:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165876.1492534 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLgbB-0006tr-RA; Wed, 19 Nov 2025 11:43:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165876.1492534; Wed, 19 Nov 2025 11:43:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLgbB-0006tk-OI; Wed, 19 Nov 2025 11:43:45 +0000
Received: by outflank-mailman (input) for mailman id 1165876;
 Wed, 19 Nov 2025 11:43: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=6cZ7=53=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vLgbA-0006tc-IB
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 11:43:44 +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 fe0d4838-c53c-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 12:43:41 +0100 (CET)
Received: from BL1P223CA0041.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:5b6::12)
 by BL3PR12MB6521.namprd12.prod.outlook.com (2603:10b6:208:3bd::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 11:43:34 +0000
Received: from MN1PEPF0000ECD7.namprd02.prod.outlook.com
 (2603:10b6:208:5b6:cafe::5d) by BL1P223CA0041.outlook.office365.com
 (2603:10b6:208:5b6::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.10 via Frontend Transport; Wed,
 19 Nov 2025 11:43:34 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 MN1PEPF0000ECD7.mail.protection.outlook.com (10.167.242.136) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Wed, 19 Nov 2025 11:43:34 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 19 Nov
 2025 03:43:34 -0800
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, 19 Nov
 2025 03:43:33 -0800
Received: from [10.252.147.171] (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, 19 Nov 2025 03:43:31 -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: fe0d4838-c53c-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=di2E9EmeM6XkYjTA7sz0kM2gjq85wFpBMd7oEUx4ECrIgcopsKyvFT6oZdMNOCxUAXiULCBYDztM/t0nbrP6n1D5fRJsxcHx8kEu05Inzn8wjXK5VId5mQcx+152c7N3wL/2iIIWrjTWM5kofQPxj+nJGXgU3MISsGGPK6LOH7EcM3QgwpmRp5N43yHIPrCXBJeeZxzjibcSCOB5LbM8HcsdYyOOuCuA8rj+yxH+5vuUNaCPzxEvgS1Lq6j9aZk9/ti7mPyKLnMdcKB5QGjuRpHST2Itnt7/mB7o+eIqAiD6nk7yOsYfo7t3XNzY1GrGLqKpyjwS0xfsh3Pg8UnMvQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9pQz3VOe//algzHIaKY7qyAIP6O5trbOvMWQQ/5XWLo=;
 b=KQui0j0GZ2dslhqKX9lDFYfx19HTtbyv0SlB7FJxu985x0nQYA9yq7m/1lv96KaA/U0S/7RwEeRS4IePQA4QXrmsyVTdtvtQZiww3S1tA+AfAze6vk7k/TY+o1kC4qtoQIx0QWs87NpXDP+c8w0OqKJTq+HowBdmdX5ABb8aqhITfPnXPON47umpCJ6P1kO3wvrU2W3eaLUe+Nwqq9osNVlQWZdI6eipI4Wgj9thDY3iwirWVV/7nLFHcXX+7oBaXbYyNRKb0JBch1GEExzmsi04aGwNlIHfNnmovHj0OzEKI/j9/3tQU+7yve0WtGreQoWBiy5tNaiEJ3mCTsquCg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9pQz3VOe//algzHIaKY7qyAIP6O5trbOvMWQQ/5XWLo=;
 b=thbVDevyvVVz5N5cRvWExky2OiBmn7h15Hibh6X6YROOHrtXCaDNFtdT3jJQa7fsBZSKxdH9BMJCG+xnp3wo3XbCNkz/UmrAkyIPy+jH+Jt7IMkL7wHt/SY2YzFFWyMZMjyv+bPSo/sycDGoMoAVYGOMrqIAIryfgDn/kHlDxY8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <47acc1e0-4d09-49dc-959d-f93c6a1b3b61@amd.com>
Date: Wed, 19 Nov 2025 12:43:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v14 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
To: Mykola Kvach <xakep.amatop@gmail.com>
CC: <xen-devel@lists.xenproject.org>, Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, 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.1763479083.git.xakep.amatop@gmail.com>
 <3786204d034ae4461aa0fde77771b8e14256314a.1763479083.git.xakep.amatop@gmail.com>
 <5a5b4bf6-4cd6-4b64-ba31-07a87b1fdbaa@amd.com>
 <CAGeoDV_4Bpp50wkd+wtq6zVHg4KZqnOcndG7rfqMndo=HW1sYQ@mail.gmail.com>
 <cd7657d8-47bd-4484-91b3-4fb79985537c@amd.com>
 <CAGeoDV9C7OVQWRyYZ+rV8Dn79PSkGd2veP18t46t+pMCt3LMnQ@mail.gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <CAGeoDV9C7OVQWRyYZ+rV8Dn79PSkGd2veP18t46t+pMCt3LMnQ@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECD7:EE_|BL3PR12MB6521:EE_
X-MS-Office365-Filtering-Correlation-Id: 2706c7df-80b1-4ac9-5b59-08de2760dedf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|7416014|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?b0R4T3RSK0JCVVZIL0ZGV1JzQWc3eGtFTTlIaGtKMFlSTTc4eVpKT21jdlI1?=
 =?utf-8?B?ZVhydjd3NGpmbXJlY3BHMFpFelcwc0padFo4ekVMTk83cUgwbVIwQkVqdlBH?=
 =?utf-8?B?V2RZOHZQWjJIMkhGTVVoYzNDNVFPb2dTYlU2LzV3NFdKd2dEZ1FDczkwYWU5?=
 =?utf-8?B?eUQrbTRZNU92QVNSMXdLSHcyWWUrVVNPMTFNZW1QOHg0MFNmSjJBamEwR1Zl?=
 =?utf-8?B?R3RBR25DTU45R2VEQjAweU9MTmJBWVBhWDR5NHQ2SklKYXU4REwvb2NSZDQ3?=
 =?utf-8?B?VFdGQzFEQXJML3FGeFRrZGxKSVh4NkxLWWtKUSs5Q1A1K1Y1b2J0WUs3OTFB?=
 =?utf-8?B?Mm5FTXRTbkErR3FjeDBLV2wyaTVnMTYrT3RWODgrNlliVHhkUldtR2p2eHg5?=
 =?utf-8?B?Yy81TzhzSEFOVHFiM1daWkk0RlhBMEs4VEdSMzI0eEJpUWdvekNMTDVJS25I?=
 =?utf-8?B?SFRrQWFsTmc2bjdxenJQTDBiQit2ck1KOTFCM2ZpdFRPZmRtVk5XT0hQRWdL?=
 =?utf-8?B?WWtBY2QwNkhoZkVTUVFWT3JUNUtndzZicU5GeGtodEc4TFBjSi9ER0orNFlu?=
 =?utf-8?B?b21CaldKTjB0TVl5aHNmRGl4d053N0hZRktOOGs0NlJqTUtpU0JQaGNwMWlS?=
 =?utf-8?B?REJKcUhIT1VNdUhHUitveFVUcmY1VkwwWTFDeVBkeGRieXUzOVMrYmVpMTJl?=
 =?utf-8?B?UEZwWHBEN0pZL2NHOFNhN1ArK0pjZ0FGclZFanRRUU1aRVVSZnpNcjBHeDE1?=
 =?utf-8?B?WU9lSko0T2RSSVBxNkxlbnFKWHdCRE1QUThFeWVYdmx5Rk5xcVl5RWNuQ1N6?=
 =?utf-8?B?b3FackpXWU1SVk12dTFOOUwvSkNFaUxNcTNSYXNKSnlWTVFqaXNZZ2M1K2NM?=
 =?utf-8?B?Y2l3Y2RySkpKNFVOdlJFZWc4SUR0dUkvMDJDQnhJQllISEpQb1FUUjhLV1FS?=
 =?utf-8?B?VndaMkp2UEhJS1E4aStSdGMrSHgzTjhvMW9VZkVKMnIva0NBdXEyZnNhQ0tt?=
 =?utf-8?B?dmV6d0oyczcxSnhsd1dSMzlhUmVRc2JtN1JCREVrM2pYUWRlN1ZZZHBZazQ4?=
 =?utf-8?B?c3Q0MDVZeUJvalJYby9xWENZN29vS2FObDlZRHJVNWMrL0NqNDFySmRKU1Fj?=
 =?utf-8?B?NFlKNVAweDlsOUlOenR6dDFRZ055UkxaZGtoVHoyemUwVXAzZXExTmxuMTVM?=
 =?utf-8?B?am1USzNYM2dBSW1GT1JYMDViZlhvNnlKdEd1bjBoSXlYVjBoanNpbnR0NlZS?=
 =?utf-8?B?SWowR211SE1ZWXM2QWU2ZTVxRkJJdVNBODNpSmJKb1FyZCtDN3c5cExsR2ZP?=
 =?utf-8?B?WjhVLytUOERFbWdwOVNQZDhGQ3NrZUNtdDlyUVQ0NnliSXoxNkd4T2hKQVcz?=
 =?utf-8?B?ZFpBVFpiNUVPTTYwVGtvc3FMSENDM3YrOFJURmNteW1DSm9jRHlTNkZpTy90?=
 =?utf-8?B?V2x2b2t5dFo4V2xOVkVpZmgrNlBYZGszaHFiMGVCRWVJcW4rMFV1MXh3Wjdx?=
 =?utf-8?B?Sm43a0pMMmpKbHR3bmtyL0UxSlBMend5RnROYWxVdE8rbFppSy9wRlY2N2NT?=
 =?utf-8?B?dk5veTZTaGVDTGVyaDlZR1VpazNSbmVUREtnL3ltRHR6WmxzbjNiK3ZRWnFW?=
 =?utf-8?B?ZkxleGxzaldVTENEM1hvNlFYNFUzQVpkdTl6c0t4RE9VNkNZMC80MzZQc1Fp?=
 =?utf-8?B?dW50VTBRVFU3Zk1jUFBVd2xUT0Nla0txU0VxbU5YZ3NnUXZQaWpSTFRUN01E?=
 =?utf-8?B?dERNWk5neGU0Q2FXNlV0QmYzQnBaWUNRZXlLV1EwZzR1dnNtSVd2a3RFT2hr?=
 =?utf-8?B?MjZUWnlyTUFNb0c4QUNBOUx6K0liWGxnNXUvWHdFZXNLRndkaFAvbW5sV3dL?=
 =?utf-8?B?WW1lczMrRzh2bnRSYm9aNDBzSE55dUsrc0tnbHhJL0tRdjVRc0ZEcStOblJ6?=
 =?utf-8?B?U05JTmF6TjFyN1owbVljMGIwYVR6U29ISVd3K0dUWmFRYi95VjEyOUVvVkdm?=
 =?utf-8?B?UDFjNEh0aEVKY2V4b3JtOFJ4b09JemJ3YjhGNnVHbU5KUGJRME5OaHVGL1Vp?=
 =?utf-8?B?cXpnVnc3djN3LzJTSDRGaTZxRTZYRnNwbWtWSWYwTC9FRS81SlI4aVVWQUtm?=
 =?utf-8?Q?A14E=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)(82310400026)(7416014)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2025 11:43:34.2267
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2706c7df-80b1-4ac9-5b59-08de2760dedf
X-MS-Exchange-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:
	MN1PEPF0000ECD7.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6521



On 19/11/2025 12:32, Mykola Kvach wrote:
> On Wed, Nov 19, 2025 at 1:07â€¯PM Orzel, Michal <michal.orzel@amd.com> wrote:
>>
>>
>>
>> On 19/11/2025 12:00, Mykola Kvach wrote:
>>> Hi Michal,
>>>
>>> Thanks for your review.
>>>
>>> On Wed, Nov 19, 2025 at 10:48â€¯AM Orzel, Michal <michal.orzel@amd.com> wrote:
>>>>
>>>>
>>>>
>>>> On 18/11/2025 16:37, Mykola Kvach wrote:
>>>>> From: Mykola Kvach <mykola_kvach@epam.com>
>>>>>
>>>>> Add support for the PSCI SYSTEM_SUSPEND function in the vPSCI interface,
>>>>> allowing guests to request suspend via the PSCI v1.0+ SYSTEM_SUSPEND call
>>>>> (both 32-bit and 64-bit variants).
>>>>>
>>>>> Implementation details:
>>>>> - Add SYSTEM_SUSPEND function IDs to PSCI definitions
>>>>> - Trap and handle SYSTEM_SUSPEND in vPSCI
>>>>> - Allow only non-hardware domains to invoke SYSTEM_SUSPEND; return
>>>>>   PSCI_NOT_SUPPORTED for the hardware domain to avoid halting the system
>>>>>   in hwdom_shutdown() via domain_shutdown
>>>>> - Require all secondary VCPUs of the calling domain to be offline before
>>>>>   suspend, as mandated by the PSCI specification
>>>>>
>>>>> The arch_domain_resume() function is an architecture-specific hook that is
>>>>> invoked during domain resume to perform any necessary setup or restoration
>>>>> steps required by the platform.
>>>>>
>>>>> The new vpsci_vcpu_up_prepare() helper is called on the resume path to set up
>>>>> the vCPU context (such as entry point, some system regs and context ID) before
>>>>> resuming a suspended guest. This keeps ARM/vPSCI-specific logic out of common
>>>>> code and avoids intrusive changes to the generic resume flow.
>>>>>
>>>>> Usage:
>>>>>
>>>>> For Linux-based guests, suspend can be initiated with:
>>>>>     echo mem > /sys/power/state
>>>>> or via:
>>>>>     systemctl suspend
>>>>>
>>>>> Resuming the guest is performed from control domain using:
>>>>>       xl resume <domain>
>>>>>
>>>>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>>>>> ---
>>>>> Changes in V14:
>>>>> - move arch_domain_resume to a separate header
>>>>> - avoid usage of typeof for context struct
>>>>> - moved error printing from domain_resume to arch_domain_resume
>>>>>   in order to simplify common parts of code
>>>>> - minor changes after review
>>>>> ---
>>>>>  xen/arch/arm/domain.c                 |  41 +++++++++
>>>>>  xen/arch/arm/include/asm/domain.h     |   2 +
>>>>>  xen/arch/arm/include/asm/perfc_defn.h |   1 +
>>>>>  xen/arch/arm/include/asm/psci.h       |   2 +
>>>>>  xen/arch/arm/include/asm/suspend.h    |  24 ++++++
>>>>>  xen/arch/arm/include/asm/vpsci.h      |   5 +-
>>>>>  xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-----
>>>>>  xen/common/domain.c                   |   5 ++
>>>>>  xen/include/xen/suspend.h             |  15 ++++
>>>>>  9 files changed, 189 insertions(+), 22 deletions(-)
>>>>>  create mode 100644 xen/arch/arm/include/asm/suspend.h
>>>>>  create mode 100644 xen/include/xen/suspend.h
>>>>>
>>>>> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
>>>>> index e36719bce4..3c0170480b 100644
>>>>> --- a/xen/arch/arm/domain.c
>>>>> +++ b/xen/arch/arm/domain.c
>>>>> @@ -12,6 +12,8 @@
>>>>>  #include <xen/softirq.h>
>>>>>  #include <xen/wait.h>
>>>>>
>>>>> +#include <public/sched.h>
>>>>> +
>>>>>  #include <asm/arm64/sve.h>
>>>>>  #include <asm/cpuerrata.h>
>>>>>  #include <asm/cpufeature.h>
>>>>> @@ -24,10 +26,12 @@
>>>>>  #include <asm/platform.h>
>>>>>  #include <asm/procinfo.h>
>>>>>  #include <asm/regs.h>
>>>>> +#include <asm/suspend.h>
>>>>>  #include <asm/firmware/sci.h>
>>>>>  #include <asm/tee/tee.h>
>>>>>  #include <asm/vfp.h>
>>>>>  #include <asm/vgic.h>
>>>>> +#include <asm/vpsci.h>
>>>>>  #include <asm/vtimer.h>
>>>>>
>>>>>  #include "vpci.h"
>>>>> @@ -885,6 +889,43 @@ void arch_domain_creation_finished(struct domain *d)
>>>>>      p2m_domain_creation_finished(d);
>>>>>  }
>>>>>
>>>>> +int arch_domain_resume(struct domain *d)
>>>>> +{
>>>>> +    int rc;
>>>>> +    struct resume_info *ctx = &d->arch.resume_ctx;
>>>>> +
>>>>> +    if ( !d->is_shutting_down || d->shutdown_code != SHUTDOWN_suspend )
>>>>> +    {
>>>>> +        dprintk(XENLOG_WARNING,
>>>>> +                "%pd: Invalid domain state for resume: is_shutting_down=%d, shutdown_code=%d\n",
>>>> These are bool and uint, so %u should be used.
>>>
>>> ack
>>>
>>>>
>>>>> +                d, d->is_shutting_down, d->shutdown_code);
>>>>> +        return -EINVAL;
>>>>> +    }
>>>>> +
>>>>> +    /*
>>>>> +     * It is still possible to call domain_shutdown() with a suspend reason
>>>>> +     * via some hypercalls, such as SCHEDOP_shutdown or SCHEDOP_remote_shutdown.
>>>>> +     * In these cases, the resume context will be empty.
>>>>> +     * This is not expected to cause any issues, so we just warn about the
>>>>> +     * situation and return without error, allowing the existing logic to
>>>>> +     * proceed as expected.
>>>>> +     */
>>>>> +    if ( !ctx->wake_cpu )
>>>>> +    {
>>>>> +        dprintk(XENLOG_INFO, "%pd: Wake CPU pointer context was not provided\n",
>>>>> +                d);
>>>>> +        return 0;
>>>>> +    }
>>>>> +
>>>>> +    rc = vpsci_vcpu_up_prepare(ctx->wake_cpu , ctx->ep, ctx->cid);
>>>>> +    if ( rc )
>>>>> +        printk("%pd: Failed to resume domain (ret %d)\n", d, rc);
>>>>> +
>>>>> +    memset(ctx, 0, sizeof(*ctx));
>>>>> +
>>>>> +    return rc;
>>>>> +}
>>>>> +
>>>>>  static int is_guest_pv32_psr(uint32_t psr)
>>>>>  {
>>>>>      switch (psr & PSR_MODE_MASK)
>>>>> diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
>>>>> index af3e168374..e637cb4de0 100644
>>>>> --- a/xen/arch/arm/include/asm/domain.h
>>>>> +++ b/xen/arch/arm/include/asm/domain.h
>>>>> @@ -5,6 +5,7 @@
>>>>>  #include <xen/timer.h>
>>>>>  #include <asm/page.h>
>>>>>  #include <asm/p2m.h>
>>>>> +#include <asm/suspend.h>
>>>>>  #include <asm/vfp.h>
>>>>>  #include <asm/mmio.h>
>>>>>  #include <asm/gic.h>
>>>>> @@ -126,6 +127,7 @@ struct arch_domain
>>>>>      void *sci_data;
>>>>>  #endif
>>>>>
>>>>> +    struct resume_info resume_ctx;
>>>>>  }  __cacheline_aligned;
>>>>>
>>>>>  struct arch_vcpu
>>>>> diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/include/asm/perfc_defn.h
>>>>> index effd25b69e..8dfcac7e3b 100644
>>>>> --- a/xen/arch/arm/include/asm/perfc_defn.h
>>>>> +++ b/xen/arch/arm/include/asm/perfc_defn.h
>>>>> @@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system_reset")
>>>>>  PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
>>>>>  PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
>>>>>  PERFCOUNTER(vpsci_features,            "vpsci: features")
>>>>> +PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
>>>>>
>>>>>  PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
>>>>>
>>>>> diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/psci.h
>>>>> index 4780972621..48a93e6b79 100644
>>>>> --- a/xen/arch/arm/include/asm/psci.h
>>>>> +++ b/xen/arch/arm/include/asm/psci.h
>>>>> @@ -47,10 +47,12 @@ void call_psci_system_reset(void);
>>>>>  #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
>>>>>  #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
>>>>>  #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
>>>>> +#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
>>>>>
>>>>>  #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
>>>>>  #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
>>>>>  #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
>>>>> +#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
>>>>>
>>>>>  /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
>>>>>  #define PSCI_0_2_AFFINITY_LEVEL_ON      0
>>>>> diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
>>>>> new file mode 100644
>>>>> index 0000000000..b991a94d5a
>>>>> --- /dev/null
>>>>> +++ b/xen/arch/arm/include/asm/suspend.h
>>>>> @@ -0,0 +1,24 @@
>>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>>>> +
>>>>> +#ifndef __ARM_SUSPEND_H__
>>>> There should be no double underscores in guards (see examples in CODING_STYLE)
>>>
>>> I had initially followed the style used by some of the existing headers
>>> in this directory, which still use guards with double underscores.
>>>
>>> I'll remove underscores in the next series.
>>>
>>>>> +#define __ARM_SUSPEND_H__
>>>>> +
>>>>> +struct resume_info {
>>>>> +    register_t ep;
>>>>> +    register_t cid;
>>>>> +    struct vcpu *wake_cpu;
>>>>> +};
>>>>> +
>>>>> +int arch_domain_resume(struct domain *d);
>>>> If possible, headers should be standalone, meaning you should include necessary
>>>> headers or forward declare what's missing.
>>>
>>> Thanks for the comment.
>>>
>>> My initial intention was to avoid adding new dependencies from asm
>>> headers to higher-level Xen headers, so I did not include e.g.
>>> <xen/sched.h> directly here. In this header we only need pointers to
>>> struct domain and struct vcpu, we never dereference them, so forward
>>> declarations would be sufficient to make it standalone.
>>>
>>> I also noticed that some existing asm headers in this directory do
>>> include higher-level Xen headers, so both patterns exist in the tree.
>>>
>>> If you prefer, I can either:
>>>   - add forward declarations
>>>
>>>       struct domain;
>>>       struct vcpu;
>>>
>>>     at the top of this header and keep the full includes in the .c
>>>     files that actually dereference these types, or
>>>
>>>   - include the appropriate Xen header(s) directly in this header.
>>>
>>> Personally I slightly prefer the forward-declaration approach to keep
>>> this header lightweight and avoid tightening the layering, but I am
>>> happy to follow your preference.
>> My preference is also to forward declare these structs.
>>
>>>
>>>>
>>>>> +
>>>>> +#endif /* __ARM_SUSPEND_H__ */
>>>>> +
>>>>> + /*
>>>>> +  * Local variables:
>>>>> +  * mode: C
>>>>> +  * c-file-style: "BSD"
>>>>> +  * c-basic-offset: 4
>>>>> +  * tab-width: 4
>>>>> +  * indent-tabs-mode: nil
>>>>> +  * End:
>>>>> +  */
>>>>> diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/asm/vpsci.h
>>>>> index 0cca5e6830..d790ab3715 100644
>>>>> --- a/xen/arch/arm/include/asm/vpsci.h
>>>>> +++ b/xen/arch/arm/include/asm/vpsci.h
>>>>> @@ -23,12 +23,15 @@
>>>>>  #include <asm/psci.h>
>>>>>
>>>>>  /* Number of function implemented by virtual PSCI (only 0.2 or later) */
>>>>> -#define VPSCI_NR_FUNCS  12
>>>>> +#define VPSCI_NR_FUNCS  14
>>>>>
>>>>>  /* Functions handle PSCI calls from the guests */
>>>>>  bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
>>>>>  bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid);
>>>>>
>>>>> +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
>>>>> +                          register_t context_id);
>>>>> +
>>>>>  #endif /* __ASM_VPSCI_H__ */
>>>>>
>>>>>  /*
>>>>> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
>>>>> index 7ba9ccd94b..22c3a5f544 100644
>>>>> --- a/xen/arch/arm/vpsci.c
>>>>> +++ b/xen/arch/arm/vpsci.c
>>>>> @@ -10,32 +10,16 @@
>>>>>
>>>>>  #include <public/sched.h>
>>>>>
>>>>> -static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
>>>>> -                            register_t context_id)
>>>>> +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
>>>>> +                   register_t context_id)
>>>> NIT: incorrect parameter alignment
>>>
>>> ack
>>>
>>>>
>>>>>  {
>>>>> -    struct vcpu *v;
>>>>> -    struct domain *d = current->domain;
>>>>> -    struct vcpu_guest_context *ctxt;
>>>>>      int rc;
>>>>> +    struct domain *d = v->domain;
>>>>>      bool is_thumb = entry_point & 1;
>>>>> -    register_t vcpuid;
>>>>> -
>>>>> -    vcpuid = vaffinity_to_vcpuid(target_cpu);
>>>>> -
>>>>> -    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
>>>>> -        return PSCI_INVALID_PARAMETERS;
>>>>> -
>>>>> -    /* THUMB set is not allowed with 64-bit domain */
>>>>> -    if ( is_64bit_domain(d) && is_thumb )
>>>>> -        return PSCI_INVALID_ADDRESS;
>>>>> -
>>>>> -    if ( !test_bit(_VPF_down, &v->pause_flags) )
>>>>> -        return PSCI_ALREADY_ON;
>>>>> +    struct vcpu_guest_context *ctxt;
>>>>>
>>>>>      if ( (ctxt = alloc_vcpu_guest_context()) == NULL )
>>>>> -        return PSCI_DENIED;
>>>>> -
>>>>> -    vgic_clear_pending_irqs(v);
>>>>> +        return -ENOMEM;
>>>>>
>>>>>      memset(ctxt, 0, sizeof(*ctxt));
>>>>>      ctxt->user_regs.pc64 = (u64) entry_point;
>>>>> @@ -76,8 +60,37 @@ static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
>>>>>      free_vcpu_guest_context(ctxt);
>>>>>
>>>>>      if ( rc < 0 )
>>>>> +        return rc;
>>>>> +
>>>>> +    return 0;
>>>>> +}
>>>>> +
>>>>> +static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
>>>>> +                            register_t context_id)
>>>>> +{
>>>>> +    struct vcpu *v;
>>>>> +    struct domain *d = current->domain;
>>>>> +    int rc;
>>>>> +    bool is_thumb = entry_point & 1;
>>>>> +    register_t vcpuid;
>>>>> +
>>>>> +    vcpuid = vaffinity_to_vcpuid(target_cpu);
>>>>> +
>>>>> +    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
>>>>> +        return PSCI_INVALID_PARAMETERS;
>>>>> +
>>>>> +    /* THUMB set is not allowed with 64-bit domain */
>>>>> +    if ( is_64bit_domain(d) && is_thumb )
>>>>> +        return PSCI_INVALID_ADDRESS;
>>>>> +
>>>>> +    if ( !test_bit(_VPF_down, &v->pause_flags) )
>>>>> +        return PSCI_ALREADY_ON;
>>>>> +
>>>>> +    rc = vpsci_vcpu_up_prepare(v, entry_point, context_id);
>>>>> +    if ( rc )
>>>>>          return PSCI_DENIED;
>>>>>
>>>>> +    vgic_clear_pending_irqs(v);
>>>>>      vcpu_wake(v);
>>>>>
>>>>>      return PSCI_SUCCESS;
>>>>> @@ -197,6 +210,48 @@ static void do_psci_0_2_system_reset(void)
>>>>>      domain_shutdown(d,SHUTDOWN_reboot);
>>>>>  }
>>>>>
>>>>> +static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
>>>>> +{
>>>>> +    int32_t rc;
>>>>> +    struct vcpu *v;
>>>>> +    struct domain *d = current->domain;
>>>>> +    bool is_thumb = epoint & 1;
>>>>> +
>>>>> +    /* THUMB set is not allowed with 64-bit domain */
>>>>> +    if ( is_64bit_domain(d) && is_thumb )
>>>>> +        return PSCI_INVALID_ADDRESS;
>>>>> +
>>>>> +    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
>>>>> +    if ( is_hardware_domain(d) )
>>>>> +        return PSCI_NOT_SUPPORTED;
>>>>> +
>>>>> +    /* Ensure that all CPUs other than the calling one are offline */
>>>>> +    domain_lock(d);
>>>>> +    for_each_vcpu ( d, v )
>>>>> +    {
>>>>> +        if ( v != current && is_vcpu_online(v) )
>>>>> +        {
>>>>> +            domain_unlock(d);
>>>>> +            return PSCI_DENIED;
>>>>> +        }
>>>>> +    }
>>>>> +    domain_unlock(d);
>>>>> +
>>>>> +    rc = domain_shutdown(d, SHUTDOWN_suspend);
>>>>> +    if ( rc )
>>>>> +        return PSCI_DENIED;
>>>>> +
>>>>> +    d->arch.resume_ctx.ep = epoint;
>>>>> +    d->arch.resume_ctx.cid = cid;
>>>>> +    d->arch.resume_ctx.wake_cpu = current;
>>>>> +
>>>>> +    gprintk(XENLOG_DEBUG,
>>>>> +            "SYSTEM_SUSPEND requested, epoint=0x%"PRIregister", cid=0x%"PRIregister"\n",
>>>> NIT: %# is preffered over 0x%.
>>>
>>> ack
>>>
>>>>
>>>>> +            epoint, cid);
>>>>> +
>>>>> +    return rc;
>>>>> +}
>>>>> +
>>>>>  static int32_t do_psci_1_0_features(uint32_t psci_func_id)
>>>>>  {
>>>>>      /* /!\ Ordered by function ID and not name */
>>>>> @@ -214,6 +269,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
>>>>>      case PSCI_0_2_FN32_SYSTEM_OFF:
>>>>>      case PSCI_0_2_FN32_SYSTEM_RESET:
>>>>>      case PSCI_1_0_FN32_PSCI_FEATURES:
>>>>> +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
>>>>> +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
>>>>>      case ARM_SMCCC_VERSION_FID:
>>>>>          return 0;
>>>>>      default:
>>>>> @@ -344,6 +401,23 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
>>>>>          return true;
>>>>>      }
>>>>>
>>>>> +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
>>>>> +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
>>>>> +    {
>>>>> +        register_t epoint = PSCI_ARG(regs, 1);
>>>>> +        register_t cid = PSCI_ARG(regs, 2);
>>>>> +
>>>>> +        if ( fid == PSCI_1_0_FN32_SYSTEM_SUSPEND )
>>>>> +        {
>>>>> +            epoint &= GENMASK(31, 0);
>>>>> +            cid &= GENMASK(31, 0);
>>>>> +        }
>>>>> +
>>>>> +        perfc_incr(vpsci_system_suspend);
>>>>> +        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid));
>>>>> +        return true;
>>>>> +    }
>>>>> +
>>>>>      default:
>>>>>          return false;
>>>>>      }
>>>>> diff --git a/xen/common/domain.c b/xen/common/domain.c
>>>>> index 775c339285..6410d32970 100644
>>>>> --- a/xen/common/domain.c
>>>>> +++ b/xen/common/domain.c
>>>>> @@ -26,6 +26,7 @@
>>>>>  #include <xen/hypercall.h>
>>>>>  #include <xen/delay.h>
>>>>>  #include <xen/shutdown.h>
>>>>> +#include <xen/suspend.h>
>>>>>  #include <xen/percpu.h>
>>>>>  #include <xen/multicall.h>
>>>>>  #include <xen/rcupdate.h>
>>>>> @@ -1363,6 +1364,9 @@ void domain_resume(struct domain *d)
>>>>>
>>>>>      spin_lock(&d->shutdown_lock);
>>>>>
>>>>> +    if ( arch_domain_resume(d) )
>>>>> +        goto fail;
>>>>> +
>>>>>      d->is_shutting_down = d->is_shut_down = 0;
>>>>>      d->shutdown_code = SHUTDOWN_CODE_INVALID;
>>>>>
>>>>> @@ -1373,6 +1377,7 @@ void domain_resume(struct domain *d)
>>>>>          v->paused_for_shutdown = 0;
>>>>>      }
>>>>>
>>>>> + fail:
>>>>>      spin_unlock(&d->shutdown_lock);
>>>>>
>>>>>      domain_unpause(d);
>>>>> diff --git a/xen/include/xen/suspend.h b/xen/include/xen/suspend.h
>>>>> new file mode 100644
>>>>> index 0000000000..53f75fd6ad
>>>>> --- /dev/null
>>>>> +++ b/xen/include/xen/suspend.h
>>>>> @@ -0,0 +1,15 @@
>>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>>>> +#ifndef __XEN_SUSPEND_H__
>>>> There should be no double underscores in guards
>>>
>>> I initially followed the style used by the existing headers in this
>>> directory, which still have include guards with double underscores.
>>>
>>> You are right that this does not match CODING_STYLE examples.
>>> I will update this header to use a proper guard name.
>>>
>>>>
>>>>> +#define __XEN_SUSPEND_H__
>>>>> +
>>>>> +#if __has_include(<asm/suspend.h>)
>>>>> +#include <asm/suspend.h>
>>>>> +#else
>>>>> +static inline int arch_domain_resume(struct domain *d)
>>>>> +{
>>>>> +    return 0;
>>>>> +}
>>>>> +#endif
>>>>> +
>>>> Stray whiteline?
>>>
>>> will drop
>>>
>>>>
>>>>> +
>>>>> +#endif /* __XEN_SUSPEND_H__ */
>>>> Missing emacs block?
>>>
>>> It is permitted but isn't necessary as far as know,
>>> but if it needed here per your opinion I'll add it
>>> just let me know
>> On Arm we usually require them and that's the overall preference I would say.
>>
>>>
>>>>
>>>> Did you run MISRA scan on this patch?
>>>
>>> Yes, I ran it with:
>>>
>>>   ./xen/scripts/xen-analysis.py \
>>>       --run-cppcheck --cppcheck-misra --cppcheck-html -- \
>>>       XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
>>>
>>> The analysis did not report any new MISRA violations in the code
>>> touched by this patch.
>> That's only cppcheck scan which is rather poor in finding violations. ECLAIR
>> scan is done through Gitlab CI and this one is what we rely on for taking the
>> series in.
> 
> Thanks for the clarification.
> 
> Is it possible to run the ECLAIR MISRA scan locally, or is it only
> available via the project Gitlab CI instance? If there is a way to run
> it on a developer machine, I would be happy to set it up and check this
> series with the same configuration.
It's not possible to run it locally. But you can use your (if you don't have,
ask on Matrix) Xen fork under https://gitlab.com/xen-project/people to push a
branch and trigger the CI (ECLAIR scan needs to be manually executed from the
pipeline page).

~Michal



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 11:48:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 11:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165887.1492544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLgfe-0007VE-BL; Wed, 19 Nov 2025 11:48:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165887.1492544; Wed, 19 Nov 2025 11: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 1vLgfe-0007V7-8i; Wed, 19 Nov 2025 11:48:22 +0000
Received: by outflank-mailman (input) for mailman id 1165887;
 Wed, 19 Nov 2025 11:48: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=GacY=53=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vLgfd-0007Uz-0a
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 11:48:21 +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 a4228d02-c53d-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 12:48:18 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by AS8PR03MB7638.eurprd03.prod.outlook.com (2603:10a6:20b:346::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.18; Wed, 19 Nov
 2025 11:48:16 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9343.009; Wed, 19 Nov 2025
 11:48: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: a4228d02-c53d-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wFwS/G3JNKaI1BzslE7XofNbn4FfjP1rlVPGkYp+NqBnTfzP252cp8ibqJnjT604B7wVUqvZjLqy1bbFfLC1RhgST1tFBLgLRSfKLZncYk7ll4Ltd+X1iGEgIQHl2fU3t6/+AaMLPf/uDDKmSyVWgfLgdLlicAnqMtUB3b46nLM2G1QjOFV9071qaiQ6xFzLJyF4W5kgbAnlydCvq+t33aV+/aeOFn+/eAN5udQGUheRxNAOpEoMNasIt/es8sfBBrmGgfl9ooWihk0sA29N/u0sKt1qjdByHXjfeu5iAeIIwVt84b3D+ouySoanOqamhEDFKkmD8PQ+nttw0J5aOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9hUTUz8FbAyVfJ3OBFEcwaMmc8+lTI2NZUk0/bO2tA0=;
 b=clfvgUU53SwHbLUqgyISHsb1/sTUqH2CEzx6QnLVz1KOkiXTdHDakwRW1ZjZsk/rN+z5p6slrGSA1vmpBHWdE4qLj+l6mNrGS2nwT0UKvlaUZY4iGLfGe1Bdk9Wg22dBQ5Du4XOP0dVaVuNBBcSZ4MBhlC/n5CQYnH7nA5eeGCHxcNjQ1RD9gtNaEOAs+qt2Zdu1afkhOu44VfafREECaWAccosvSSqQ1jU658r4RrHHKbYyZmefTSwfhQWhpv+UVQp9UilpLPzK8QvZp1AGGBGcGGrNOqEz4wFhGwwlQxXEspo+glfJv2mRRTrWTukjSHTfyRJ0Zb6WWp9cZ4to+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=9hUTUz8FbAyVfJ3OBFEcwaMmc8+lTI2NZUk0/bO2tA0=;
 b=sD55BimO/FMgbylnjMVEzDojbH26mArV9EMZlCTblPw06wFXq85gGXj72BVReUxFq7xXh3JxbRAlFIpRmj/62PasPQEfJa757R+7iYU3YAJv8ED/DyLoUQM63WNN95lfA1TbGbD3d/+0n0WBWw7PUgwoSfzsPwkCtK2Z/o764+lSPhyMgJRCQhJc0rNtbYn5Jeu9sCEAn28jLwxmgOwmZ6mSgWUBM5UG6Y1IhbaNXFAjbaIRv/ezvyyjHxxC4njpO/tmppaaNXQc79BArc4gdS6bxkNGC8iQwPeIDGKYbBRLjBrzaIJ8TOfNNw7ELJNra3UhroRi6YO0+Yk+QTA5Uw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <9d5f30c9-1a9e-45d2-93f9-3af20f105a69@epam.com>
Date: Wed, 19 Nov 2025 13:48:14 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 3/5] x86: hvm: factor out compat code under ifdefs
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <20251111175413.3540690-4-grygorii_strashko@epam.com>
 <af736490-5f04-4fa8-9b73-4071b72e1c33@suse.com>
 <4e4aa540-514b-458f-8036-7941a0ecf268@epam.com>
 <be6f958b-ae23-4cd0-9dd7-c096ae36d39b@suse.com>
 <a17e86e4-f8c1-464d-b30d-42713f793ea5@suse.com>
 <8aa7ddeb-fb2b-42ac-bba6-272b91fc1e8f@suse.com>
 <a36eafd3-35cf-448e-8c46-df063f50b082@epam.com>
 <8a57904f-17f2-46f9-9b08-e2287f8fd44c@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <8a57904f-17f2-46f9-9b08-e2287f8fd44c@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: BE1P281CA0353.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:b10:7d::13) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|AS8PR03MB7638:EE_
X-MS-Office365-Filtering-Correlation-Id: 10d19330-227f-4805-da85-08de276186e4
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?dlFpWWg4aDVRdVc4Y1JhYnd4Q2pWOEZmemFTOGpHb3NjNzZsZFlGOFFvN2E3?=
 =?utf-8?B?U3E2SS8xUUV3Y0J1R2NPOXZHSUlXaDMxa2ZzT1ZRSnJxcjNHU1pWQVBrUnA0?=
 =?utf-8?B?d0V0cGpqYk8xS3dYblMwcVlvcU1ud05aQkJBUmVzdjZLc2tIQTd4Q1RVM1Na?=
 =?utf-8?B?cmFnRWNuOHVrZ0VFeldJNHl5NlVldURma0Y1M3FsZ01sd2tYeUk1S0xFeitt?=
 =?utf-8?B?UHVLL25ReVZPaXFraGJUTCs2Q2Q3NFVoSEhrd1lrYWtYTUZZVGUrTUFPaEFm?=
 =?utf-8?B?SXJVY1lZRGlHTm0xWEhjR3hoaUZGV2w5a0JCdUlKQk9leEl1NnNETEI4Nllh?=
 =?utf-8?B?MGVRSlV4WTFJZUpGT0hPUEVMdkxuMzhtaGF0cXNvbXQ4b0M2KzVldGl4NWhn?=
 =?utf-8?B?dCtMeExpRFFoaGtxUmxKR2tDdWJxMTFKTmxYTTN0cnNYam1lQnBzRW1tbGZt?=
 =?utf-8?B?MDBuck4rdW1CakJ5YzkrZitmZ1pPUTRsb0JlRGdvRC8rcUNwNHFXK0FKVjd6?=
 =?utf-8?B?a0xUbkNvQmRSazNMcTRmais1SXFXTmljYzZOT25SU3daYTVYQzRBS3JlSHY3?=
 =?utf-8?B?Q2V0TlRsTDluS29MeVdJQkFNUnZKbmZWUmpOTXo3SjkyUWVxYXVqbC9LUnFZ?=
 =?utf-8?B?aTBsdFlIc1lSK3dpMFA2TXJkWEZ5K2g1UzhPTzNUUGNwbk9sVHpTa2JWYVhv?=
 =?utf-8?B?MnVrdnBjZnMwQU1SUTZsY3pUWnJYSHhzRU12aGt3Z0xqK3drb1hNZVRVYTZY?=
 =?utf-8?B?YUZJWENGREVNTWlBVyt6aUxZVUo1T29OSUplZnhOcTdVeFBaZkUybHZjTzlk?=
 =?utf-8?B?amZpaGJVMTVac3I2N2wwTjJrUUJVQmlYZUNhb2xPOFpRcnhsbkxqeU41ODRN?=
 =?utf-8?B?NkFDeWJ2M3RacnMrM0tzQWNRSXpxd0lpMWc3SEtmcUtUSEVpMVJNVzZHRFdi?=
 =?utf-8?B?b1lnTU5raERsb3FEbHVFZ3dhWGVZUDlsajYyZ1NsbVlMYWtNUW85RFZYckdr?=
 =?utf-8?B?UDlHNnVuSEZxN2ZmKzVIR0dkNThTd29kM0srNFQzekZPT3VUa2lqMVBoOXd0?=
 =?utf-8?B?OVNQNnJhUGRPc3BFYWRCMnFoV05jZERuVVBWY1BEV2p1L3pWY3UvOFJMUUdY?=
 =?utf-8?B?dXlzNlpUbnliMzVnSjg2K3F1ZG1PbnpGYWpsNHhzazM2a3RDY1ZxR1pHcTZP?=
 =?utf-8?B?clVad0FGb2gvak1RV0ltWC9vZkJkTURmWUwwbEptSkJhWEczSEVaRDAvYWNT?=
 =?utf-8?B?a0RhQTNQKzdaSHdLNWtTMkNVLzBPeEZoNmllT0twZTk2TnM0VzJhbnZYQ3V5?=
 =?utf-8?B?S1dYOVR6N3Y3RUpoYUYzQ1p0OVlYSmtudHFPbG10dXVMT3BVZmZJVDBZeVFQ?=
 =?utf-8?B?Q1o2UUk1V0Q1VlFkRDNxZDdFRnNzbTZ1SjQ0TXN2WDdtOWJSSXlnMnVSM2dX?=
 =?utf-8?B?cEgxcUhna0o5ZTY4L2ZHOC8rY0NjZ0lRODZxNk1PNDhJY0kydGFRWEtweStD?=
 =?utf-8?B?QUhKSXZlYUM3TlMxUmt2TXN3bC9yR0M4S0lqd1MzbWtjUEFWS0sxZmF5ek5F?=
 =?utf-8?B?emxzZGR5aEFWV2ZuZGZWK25veXBxSFBSWGdaa2NVK2liZDJFSmU2S3M0a1hz?=
 =?utf-8?B?dk1ZWU9NbEh1d3VFNzFCYml3MVU2dmlhTldoRk02dndUY1JHcFYrVjBxd2pt?=
 =?utf-8?B?anpLSHU4bnVsN0toK0orYndLbjJEKy9kLzdOdVdCS2EyNmZSUDZNNjcvNU84?=
 =?utf-8?B?TTFOYnJqSjF1ay80T09QTzNMRHE4VHRvV2hZTUNwTm1ka1VXWWtZcmJKVURP?=
 =?utf-8?B?VGZBOHRWL0gzbDQ3WHAwNi9aYWJrb2N2TlZxZGtGVHdhYlNIVklyQ2RWcklh?=
 =?utf-8?B?U3hJaGJKVmtreVdVTGtHQkVpczROdzFHL1Z5Rkhzd3ovdXJ1dFdUUnVKRXIv?=
 =?utf-8?Q?bksxf0i9NG+S0UjfTc16f8ulT5mD3tRr?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SHgrcGNhNmZTTUJ3SEgyaUdGbUZRd1hhR1JDY1EzVlZyVXEvTXZyRW9nUlpF?=
 =?utf-8?B?eUEweTJYTDI5U2s4c09SQWd3YkNvbDBpVlo2OGRFTVdBbWtLYW5WOEw2VmlZ?=
 =?utf-8?B?SzBKNGVUa0pBVmRhRExvWHVRdEordmQvUG41UnB6NVplYVpLQW41ZVFEdUVE?=
 =?utf-8?B?eW9iQWl3QUJOd3NsTndZa0UzYlNOVHJvNS9UMnhBbHoxbGlHamhodWlkdzV2?=
 =?utf-8?B?OWo5d0xibDV2TUlYNmY3VWxTNmNLYk9xK3dxUjNZc1BScGd2elpKL1dOWjNL?=
 =?utf-8?B?U1J2RTdseFZpVUMzVHpWQXR2NVFtK0FrNTdEaGl2YVgvc0lsVmRZVnFvNlZn?=
 =?utf-8?B?aEw4Q3hoWmFvR1lhaUhFeWdQRk9LeHVBaU85OWhXeWlpV1dxMmxQRjByYkdu?=
 =?utf-8?B?SXplNkQ5VWptZXNmRFZxYTNQSUNpWWgzZkZ3d01TaTV6MmVSMk9JVDd0QTRT?=
 =?utf-8?B?ZGd3YTlTSmQyMUFxUXJtMjUwMDF0UVBXZHRwWFBlcEVubEZDSk1WVGNGbDg0?=
 =?utf-8?B?UE8vUzFmQmRXVXJWOTlEaVJyaTczdnVNNkNlOFdocXlpNElJYituZzZsa21L?=
 =?utf-8?B?OWI3SU5SZkhOcnl5OXdFUXJxWWxyN0FPRnh6OEN1dTJmR0xmbURnWkJzR0U1?=
 =?utf-8?B?Y1QrMTdXZnRmVXQ0SXJMbkhLc3RES0xzbEc1aEIyQWFkbVJOM3JiMTcrU0VG?=
 =?utf-8?B?SnpUNm5wYVNzU1NYM0I3N04yVzFvWERsNzBFb3M1ZjVka2pSckM1WVpWZmxz?=
 =?utf-8?B?Qkdtd2ZPSElFUnZwSUVMd0h0cGdjc0JBSGZOQytIeDJUTk9GOUJjN1N1aFAz?=
 =?utf-8?B?clBJR1kxT0FVVVZSckRXN1NpRWRoQUlVa2dWa2pGYlRHdFh5cVluTHpjdk9R?=
 =?utf-8?B?S2xGaytSVnB2N2JaNEFCU3RhaFVQUXMzbk91RnRhMVUyaGh6YVhkYnFsV0dq?=
 =?utf-8?B?QkpCaEpPdlA4RDQ0bFVqZ3pOZXdjRFZQL283OWpPdVNHamR6SVA0ZjdGalh3?=
 =?utf-8?B?RVN4bmRYRkpTQzdyTEY2ZnlSeEdzdUxnSk9zUTRIQWdmKzhnTllZc0dncGFP?=
 =?utf-8?B?Yk8wT1Fic1N0ZFhpbzlPcm82SXd2RFFSNHB2THlBVXNHRU9RK0hMTHB0eXlu?=
 =?utf-8?B?amJqRlF2eTBLZUdtUlFjWVM0RE5nT2ZJZGZ6Ym1QY1htcFV6Z0dWUHlaM0V6?=
 =?utf-8?B?cWg1c2pqdXNUOXRraVEzM0NzR0tVaHRzVzhIQXJqK3dudUlCZ1V1ZlpBbjF3?=
 =?utf-8?B?NjJsTjNYa3hBWHgvLytYWjZXU3M5S1RuOUJxWCtlZ0c0bmpBM2hudHkyWUdt?=
 =?utf-8?B?ZDFLVk5TdDlieHA2RWJiOWdsMTZIdlpUMkdlRk84ZWh5U0xpTS9CZjllVTQ1?=
 =?utf-8?B?SEJhQmRaeFRSOEVxMENDUUJEM0k0R0RqVVhJYWhvRUo1NzUybXR5eGRkY1ln?=
 =?utf-8?B?b2daN0VzdVd0d2hrRllrLzV2QkQrMWxrVGJtY3hrQVJ6WHhLMVVkMG9wd05X?=
 =?utf-8?B?L1J1QTEzTC9Jam41VzNmUUp4NjYxbHRPSjFVWnFqZGczeWN2czRoWjFibW5C?=
 =?utf-8?B?VGhNSmRxOThoQTg4RnJTaFQ5elFnME9mazcwYVNYVW1lb3RZOW83Rys1WGRB?=
 =?utf-8?B?N3NGYmQzMlVmVVk3dE5odjJoVU1hYVpKRDdPMFcxQkRKQjc1bWhERXk4Nk0v?=
 =?utf-8?B?WjJTQVJ3VGpGRHJPWmpIemd0cWptdHNvZWsyZE4veVFrUk4wRkszVEIvVk5R?=
 =?utf-8?B?T0doRkZXU2lseC9LMUY0WGtBclR3WEwzSENEamFYOGxrYXJreUhaRDJTQVZj?=
 =?utf-8?B?V09veHUyWEZncGN6QnprK3B6d3Zpa05mdmh2TU9sdURtL3pWMUxuSXdRVHJI?=
 =?utf-8?B?Nmh4b254VmFzVUVoWm1YbkZRSGg5YThRTC9CUnVNRnNkZnFzWDF3RGhPMzYr?=
 =?utf-8?B?NkM1d09TQXBtLzNudy85Z0ZHeDRFQ2hNZVgyTTg2T05FR2tNS1ZkczZ5VkxU?=
 =?utf-8?B?bS9NbUFYYUN6VFV5ZVRRTzd6NlV3VnBxMFBxRjhMUlNMcHVmU1hicEtCNzNH?=
 =?utf-8?B?K0piKzUxazJ1Z0g0Z1lpdDcvUUtXSW1uUzVyZ2wrTUJtUTAwM1lGSjhXVmds?=
 =?utf-8?B?cHgyMUQyTGoxeUlmc1FBK0hndG5vZnNNNUVOa1RlTHFNMi8zOVpydzBSVzFw?=
 =?utf-8?B?elE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 10d19330-227f-4805-da85-08de276186e4
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2025 11:48:16.3792
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: iO9IwAFCChwbH5Ghqvs/w/727SLPKZe46Q+t4Ux2+3aVZ0NLwSz/qb8dJ5i77FF5iQqdrc2n9AyrM8Cqwvk460yYbKgf8OJD2FJ19V4Plkc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7638

Hi JÃ¼rgen,

On 13.11.25 17:43, JÃ¼rgen GroÃŸ wrote:
> On 13.11.25 16:32, Grygorii Strashko wrote:
>> Hi JÃ¼rgen,
>>
>> On 13.11.25 16:46, Juergen Gross wrote:
>>> On 13.11.25 15:39, JÃ¼rgen GroÃŸ wrote:
>>>> On 13.11.25 14:23, Jan Beulich wrote:
>>>>> On 13.11.2025 14:18, Grygorii Strashko wrote:
>>>>>> On 13.11.25 14:30, Jan Beulich wrote:
>>>>>>> On 11.11.2025 18:54, Grygorii Strashko wrote:
>>>>>>>> --- a/xen/arch/x86/hvm/hypercall.c
>>>>>>>> +++ b/xen/arch/x86/hvm/hypercall.c
>>>>>>>> @@ -29,10 +29,12 @@ long hvm_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>>>>>>>> Â Â Â Â Â Â Â Â Â Â  return -ENOSYS;
>>>>>>>> Â Â Â Â Â Â  }
>>>>>>>> -Â Â Â  if ( !vcpu_is_hcall_compat(current) )
>>>>>>>> -Â Â Â Â Â Â Â  rc = do_memory_op(cmd, arg);
>>>>>>>> -Â Â Â  else
>>>>>>>> +#ifdef CONFIG_COMPAT
>>>>>>>> +Â Â Â  if ( vcpu_is_hcall_compat(current) )
>>>>>>>> Â Â Â Â Â Â Â Â Â Â  rc = compat_memory_op(cmd, arg);
>>>>>>>> +Â Â Â  else
>>>>>>>> +#endif
>>>>>>>> +Â Â Â Â Â Â Â  rc = do_memory_op(cmd, arg);
>>>>>>>
>>>>>>> Why would this be needed when vcpu_is_hcall_compat() already honors CONFIG_COMPAT?
>>>>>>> (Same question then applies elsewhere, of course.)
>>>>>>
>>>>>> This I do not like by myself, but I was not able to find other options :(
>>>>>>
>>>>>> hypercall-defs.h is autogenerated and it's the only one place where functions
>>>>>> declarations like do_x_op() are appeared or disappeared.
>>>>>> So build is failing without ifdefs as compiler can't find compat_memory_op()
>>>>>> declaration.
>>>>>
>>>>> Oh, I see; I hadn't thought of that aspect. I wonder if we wouldn't better take
>>>>> care of that in the machinery there. Cc-ing JÃ¼rgen, who did introduce this
>>>>> originally. Maybe he has concrete arguments against us doing so.
>>>>
>>>> No arguments against it.
>>>>
>>>> You probably will need a new Prefix defined (e.g. compat_always) and set it via
>>>>
>>>> #define PREFIX_compat_always compat
>>>>
>>>> unconditionally. Then it should be possible to have
>>>>
>>>> Prefix: compat_always
>>>> memory_op(...)
>>>>
>>>> outside of #ifdefs and drop the memory_op() in the #ifdef CONFIG_COMPAT section.
>>>
>>> Oh, this might be wrong, as this will break the PV32 memory_op() hypercall.
>>>
>>> You need to keep the current memory_op() in the #ifdef CONFIG_COMPAT section
>>> and move the compat_always stuff into an #else part of the CONFIG_COMPAT.
>>>
>>>>
>>>> This should result in the compat_memory_op() prototype to be always available.
>>>> Having no related function should be no problem due to DCO in case CONFIG_COMPAT
>>>> isn't defined.
>>
>> Smth like this, right?
>>
>> diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
>> index 338d7afe3048..e85943320bd2 100644
>> --- a/xen/include/hypercall-defs.c
>> +++ b/xen/include/hypercall-defs.c
>> @@ -80,6 +80,8 @@ rettype: compat int
>> Â Â #define PREFIX_compat
>> Â Â #endif
>>
>> +#define PREFIX_compat_always compat
>> +
>> Â Â #ifdef CONFIG_ARM
>> Â Â #define PREFIX_dep dep
>> Â Â #define PREFIX_do_arm do_arm
>> @@ -156,6 +158,9 @@ platform_op(compat_platform_op_t *u_xenpf_op)
>> Â Â #ifdef CONFIG_KEXEC
>> Â Â kexec_op(unsigned int op, void *uarg)
>> Â Â #endif
>> +#else
>> +prefix: PREFIX_compat_always
> 
> This should be:
> 
> +prefix: compat_always

Unfortunately, ^ is not working it generates
long compat_always_memory_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);

My version works "prefix: PREFIX_compat_always"

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 11:51:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 11:51:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165900.1492555 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLgif-0000gK-Sl; Wed, 19 Nov 2025 11:51:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165900.1492555; Wed, 19 Nov 2025 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 1vLgif-0000gD-Q5; Wed, 19 Nov 2025 11:51:29 +0000
Received: by outflank-mailman (input) for mailman id 1165900;
 Wed, 19 Nov 2025 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=/QLq=53=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vLgid-0000eq-TG
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 11:51:28 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0ec68057-c53e-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 12:51:17 +0100 (CET)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-5957c929a5eso7595261e87.1
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 03: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: 0ec68057-c53e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763553077; x=1764157877; 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=pkrJNiWeT2SicSU+1WDE/L+6w8QfJkwCj+eQ+f4jHzE=;
        b=MQ+nmEd2gvZ51YxEfuPIPWFgvc7myVpbK4kK4zZ8Xh/82VOZOy5sV39KGU+l4M/XOS
         AqXsn0324a2AVFsEAN+3Tbg5Z1hyN1vSFE5ZVLyPSc63Z/MEmnuAlt+GJc/9k3BYPZHA
         nYZA5ebF76bNgtsHKA3qp3Z+fSa9Gm9RTF9oISWdpHV10bgvnPKUj2pjHSgShbleOril
         MfrTsfCHAOlxbFBlXhaLpLanQjZzLKQoI4qC26EN1lEoTUjcbT1xgephafNuhBQX2wGE
         uox15osDwx/EJe2VIgB7z2cFs7XXL0loBHxJ80r9YZJ8JJqP5r9zWanjP3yJ0gMOdh8q
         xrcA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763553077; x=1764157877;
        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=pkrJNiWeT2SicSU+1WDE/L+6w8QfJkwCj+eQ+f4jHzE=;
        b=JLYUtMQr8t9JCPHekJPQi9ByWv9ZCw1ujr/DaCUCHoY23COdCzG8fZLD0w5MlI+Uwo
         AwkXCbQzktAtFa1gJDIAZKtUo+sSU57Zfx9yk2T0qoSr75eECHrksgMydUnHyGe4qWgo
         G2PdR687wyDwlIf8/W2LBh/Bh3Wr8dLZKgVhJi1I2gmBtASnJBRNPFvt21btmGVpkUEf
         Trei5g6ULUCrQJeN4WVuQfq5IkE0CFY7x99J+9nt2vDilR8+S3kFh2qPA3TPbKF9bdQa
         F3UmUqJtin2rbVoLpx2p3AnSEx/jMJ+gsxRTyRAHqHI+Zl4Zh9StXTE7+sfmCJCMsU9e
         3mWA==
X-Gm-Message-State: AOJu0Yy/e5a6zLzYwzW1bar/HbJArHaEujPrezlYkDVhjMzSVxDhcIou
	M5b80iFPGYjm9l/djz6JoiQPnRxuA5QAyNOswV7zVhHj6jPFw6ncO7f8iWID9FU7JplvbNlJbcN
	5mamYicD0eIqyuV3aN8nboGhZ0qtGf6Q=
X-Gm-Gg: ASbGncsem6jHzjbIH3egDgN+hCMehxdziMFoDJLLAx8wjdeyoa+qw2OgSceIhznNqDc
	l0HPKt/a8H4/voIBcHj4aK+Suke20nEx8WJSf4iL12wdx1zI0s0DV1rKPFyYTrnBvWk9LNjx9/a
	UjM7SMvmyy54xSho3S0WJSBagEOpPLwOjypLBat+vMLcnCPGwb3AIu2a3JxWUixq3PhjQMCiPei
	Eh0E/LCCgCNaXpNN510SM0e2UINVFZ1rLexn5qag8ngt5QC6QAEviHuHjiOvrGzCHNHrQ==
X-Google-Smtp-Source: AGHT+IHdnamdK5DAwHnutntLMVl77uLDo8NYALMNPdJo8jV9wbkaz6OtZFb1kf0sbGjFpoIrWb5q7RTbJStYq4DF+qM=
X-Received: by 2002:a05:6512:4017:b0:594:26d7:c443 with SMTP id
 2adb3069b0e04-595842620d0mr7039382e87.39.1763553076593; Wed, 19 Nov 2025
 03:51:16 -0800 (PST)
MIME-Version: 1.0
References: <cover.1763479083.git.xakep.amatop@gmail.com> <3786204d034ae4461aa0fde77771b8e14256314a.1763479083.git.xakep.amatop@gmail.com>
 <5a5b4bf6-4cd6-4b64-ba31-07a87b1fdbaa@amd.com> <CAGeoDV_4Bpp50wkd+wtq6zVHg4KZqnOcndG7rfqMndo=HW1sYQ@mail.gmail.com>
 <cd7657d8-47bd-4484-91b3-4fb79985537c@amd.com> <CAGeoDV9C7OVQWRyYZ+rV8Dn79PSkGd2veP18t46t+pMCt3LMnQ@mail.gmail.com>
 <47acc1e0-4d09-49dc-959d-f93c6a1b3b61@amd.com>
In-Reply-To: <47acc1e0-4d09-49dc-959d-f93c6a1b3b61@amd.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Wed, 19 Nov 2025 13:51:04 +0200
X-Gm-Features: AWmQ_bmSlAFDLEtUWuzcPbm6HEnXGGrwMVukzLBYkh8GJ57jpJnTaa84SX_4Bbs
Message-ID: <CAGeoDV9LzicJ-n3cU2MWKjK1y6xZp525EDZDOAuYhB0z+bXQ_A@mail.gmail.com>
Subject: Re: [PATCH v14 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Nov 19, 2025 at 1:43=E2=80=AFPM Orzel, Michal <michal.orzel@amd.com=
> wrote:
>
>
>
> On 19/11/2025 12:32, Mykola Kvach wrote:
> > On Wed, Nov 19, 2025 at 1:07=E2=80=AFPM Orzel, Michal <michal.orzel@amd=
.com> wrote:
> >>
> >>
> >>
> >> On 19/11/2025 12:00, Mykola Kvach wrote:
> >>> Hi Michal,
> >>>
> >>> Thanks for your review.
> >>>
> >>> On Wed, Nov 19, 2025 at 10:48=E2=80=AFAM Orzel, Michal <michal.orzel@=
amd.com> wrote:
> >>>>
> >>>>
> >>>>
> >>>> On 18/11/2025 16:37, Mykola Kvach wrote:
> >>>>> From: Mykola Kvach <mykola_kvach@epam.com>
> >>>>>
> >>>>> Add support for the PSCI SYSTEM_SUSPEND function in the vPSCI inter=
face,
> >>>>> allowing guests to request suspend via the PSCI v1.0+ SYSTEM_SUSPEN=
D call
> >>>>> (both 32-bit and 64-bit variants).
> >>>>>
> >>>>> Implementation details:
> >>>>> - Add SYSTEM_SUSPEND function IDs to PSCI definitions
> >>>>> - Trap and handle SYSTEM_SUSPEND in vPSCI
> >>>>> - Allow only non-hardware domains to invoke SYSTEM_SUSPEND; return
> >>>>>   PSCI_NOT_SUPPORTED for the hardware domain to avoid halting the s=
ystem
> >>>>>   in hwdom_shutdown() via domain_shutdown
> >>>>> - Require all secondary VCPUs of the calling domain to be offline b=
efore
> >>>>>   suspend, as mandated by the PSCI specification
> >>>>>
> >>>>> The arch_domain_resume() function is an architecture-specific hook =
that is
> >>>>> invoked during domain resume to perform any necessary setup or rest=
oration
> >>>>> steps required by the platform.
> >>>>>
> >>>>> The new vpsci_vcpu_up_prepare() helper is called on the resume path=
 to set up
> >>>>> the vCPU context (such as entry point, some system regs and context=
 ID) before
> >>>>> resuming a suspended guest. This keeps ARM/vPSCI-specific logic out=
 of common
> >>>>> code and avoids intrusive changes to the generic resume flow.
> >>>>>
> >>>>> Usage:
> >>>>>
> >>>>> For Linux-based guests, suspend can be initiated with:
> >>>>>     echo mem > /sys/power/state
> >>>>> or via:
> >>>>>     systemctl suspend
> >>>>>
> >>>>> Resuming the guest is performed from control domain using:
> >>>>>       xl resume <domain>
> >>>>>
> >>>>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> >>>>> ---
> >>>>> Changes in V14:
> >>>>> - move arch_domain_resume to a separate header
> >>>>> - avoid usage of typeof for context struct
> >>>>> - moved error printing from domain_resume to arch_domain_resume
> >>>>>   in order to simplify common parts of code
> >>>>> - minor changes after review
> >>>>> ---
> >>>>>  xen/arch/arm/domain.c                 |  41 +++++++++
> >>>>>  xen/arch/arm/include/asm/domain.h     |   2 +
> >>>>>  xen/arch/arm/include/asm/perfc_defn.h |   1 +
> >>>>>  xen/arch/arm/include/asm/psci.h       |   2 +
> >>>>>  xen/arch/arm/include/asm/suspend.h    |  24 ++++++
> >>>>>  xen/arch/arm/include/asm/vpsci.h      |   5 +-
> >>>>>  xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-=
----
> >>>>>  xen/common/domain.c                   |   5 ++
> >>>>>  xen/include/xen/suspend.h             |  15 ++++
> >>>>>  9 files changed, 189 insertions(+), 22 deletions(-)
> >>>>>  create mode 100644 xen/arch/arm/include/asm/suspend.h
> >>>>>  create mode 100644 xen/include/xen/suspend.h
> >>>>>
> >>>>> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> >>>>> index e36719bce4..3c0170480b 100644
> >>>>> --- a/xen/arch/arm/domain.c
> >>>>> +++ b/xen/arch/arm/domain.c
> >>>>> @@ -12,6 +12,8 @@
> >>>>>  #include <xen/softirq.h>
> >>>>>  #include <xen/wait.h>
> >>>>>
> >>>>> +#include <public/sched.h>
> >>>>> +
> >>>>>  #include <asm/arm64/sve.h>
> >>>>>  #include <asm/cpuerrata.h>
> >>>>>  #include <asm/cpufeature.h>
> >>>>> @@ -24,10 +26,12 @@
> >>>>>  #include <asm/platform.h>
> >>>>>  #include <asm/procinfo.h>
> >>>>>  #include <asm/regs.h>
> >>>>> +#include <asm/suspend.h>
> >>>>>  #include <asm/firmware/sci.h>
> >>>>>  #include <asm/tee/tee.h>
> >>>>>  #include <asm/vfp.h>
> >>>>>  #include <asm/vgic.h>
> >>>>> +#include <asm/vpsci.h>
> >>>>>  #include <asm/vtimer.h>
> >>>>>
> >>>>>  #include "vpci.h"
> >>>>> @@ -885,6 +889,43 @@ void arch_domain_creation_finished(struct doma=
in *d)
> >>>>>      p2m_domain_creation_finished(d);
> >>>>>  }
> >>>>>
> >>>>> +int arch_domain_resume(struct domain *d)
> >>>>> +{
> >>>>> +    int rc;
> >>>>> +    struct resume_info *ctx =3D &d->arch.resume_ctx;
> >>>>> +
> >>>>> +    if ( !d->is_shutting_down || d->shutdown_code !=3D SHUTDOWN_su=
spend )
> >>>>> +    {
> >>>>> +        dprintk(XENLOG_WARNING,
> >>>>> +                "%pd: Invalid domain state for resume: is_shutting=
_down=3D%d, shutdown_code=3D%d\n",
> >>>> These are bool and uint, so %u should be used.
> >>>
> >>> ack
> >>>
> >>>>
> >>>>> +                d, d->is_shutting_down, d->shutdown_code);
> >>>>> +        return -EINVAL;
> >>>>> +    }
> >>>>> +
> >>>>> +    /*
> >>>>> +     * It is still possible to call domain_shutdown() with a suspe=
nd reason
> >>>>> +     * via some hypercalls, such as SCHEDOP_shutdown or SCHEDOP_re=
mote_shutdown.
> >>>>> +     * In these cases, the resume context will be empty.
> >>>>> +     * This is not expected to cause any issues, so we just warn a=
bout the
> >>>>> +     * situation and return without error, allowing the existing l=
ogic to
> >>>>> +     * proceed as expected.
> >>>>> +     */
> >>>>> +    if ( !ctx->wake_cpu )
> >>>>> +    {
> >>>>> +        dprintk(XENLOG_INFO, "%pd: Wake CPU pointer context was no=
t provided\n",
> >>>>> +                d);
> >>>>> +        return 0;
> >>>>> +    }
> >>>>> +
> >>>>> +    rc =3D vpsci_vcpu_up_prepare(ctx->wake_cpu , ctx->ep, ctx->cid=
);
> >>>>> +    if ( rc )
> >>>>> +        printk("%pd: Failed to resume domain (ret %d)\n", d, rc);
> >>>>> +
> >>>>> +    memset(ctx, 0, sizeof(*ctx));
> >>>>> +
> >>>>> +    return rc;
> >>>>> +}
> >>>>> +
> >>>>>  static int is_guest_pv32_psr(uint32_t psr)
> >>>>>  {
> >>>>>      switch (psr & PSR_MODE_MASK)
> >>>>> diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/inclu=
de/asm/domain.h
> >>>>> index af3e168374..e637cb4de0 100644
> >>>>> --- a/xen/arch/arm/include/asm/domain.h
> >>>>> +++ b/xen/arch/arm/include/asm/domain.h
> >>>>> @@ -5,6 +5,7 @@
> >>>>>  #include <xen/timer.h>
> >>>>>  #include <asm/page.h>
> >>>>>  #include <asm/p2m.h>
> >>>>> +#include <asm/suspend.h>
> >>>>>  #include <asm/vfp.h>
> >>>>>  #include <asm/mmio.h>
> >>>>>  #include <asm/gic.h>
> >>>>> @@ -126,6 +127,7 @@ struct arch_domain
> >>>>>      void *sci_data;
> >>>>>  #endif
> >>>>>
> >>>>> +    struct resume_info resume_ctx;
> >>>>>  }  __cacheline_aligned;
> >>>>>
> >>>>>  struct arch_vcpu
> >>>>> diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/i=
nclude/asm/perfc_defn.h
> >>>>> index effd25b69e..8dfcac7e3b 100644
> >>>>> --- a/xen/arch/arm/include/asm/perfc_defn.h
> >>>>> +++ b/xen/arch/arm/include/asm/perfc_defn.h
> >>>>> @@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: sy=
stem_reset")
> >>>>>  PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
> >>>>>  PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
> >>>>>  PERFCOUNTER(vpsci_features,            "vpsci: features")
> >>>>> +PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
> >>>>>
> >>>>>  PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
> >>>>>
> >>>>> diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include=
/asm/psci.h
> >>>>> index 4780972621..48a93e6b79 100644
> >>>>> --- a/xen/arch/arm/include/asm/psci.h
> >>>>> +++ b/xen/arch/arm/include/asm/psci.h
> >>>>> @@ -47,10 +47,12 @@ void call_psci_system_reset(void);
> >>>>>  #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
> >>>>>  #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
> >>>>>  #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
> >>>>> +#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
> >>>>>
> >>>>>  #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
> >>>>>  #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
> >>>>>  #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
> >>>>> +#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
> >>>>>
> >>>>>  /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
> >>>>>  #define PSCI_0_2_AFFINITY_LEVEL_ON      0
> >>>>> diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/incl=
ude/asm/suspend.h
> >>>>> new file mode 100644
> >>>>> index 0000000000..b991a94d5a
> >>>>> --- /dev/null
> >>>>> +++ b/xen/arch/arm/include/asm/suspend.h
> >>>>> @@ -0,0 +1,24 @@
> >>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
> >>>>> +
> >>>>> +#ifndef __ARM_SUSPEND_H__
> >>>> There should be no double underscores in guards (see examples in COD=
ING_STYLE)
> >>>
> >>> I had initially followed the style used by some of the existing heade=
rs
> >>> in this directory, which still use guards with double underscores.
> >>>
> >>> I'll remove underscores in the next series.
> >>>
> >>>>> +#define __ARM_SUSPEND_H__
> >>>>> +
> >>>>> +struct resume_info {
> >>>>> +    register_t ep;
> >>>>> +    register_t cid;
> >>>>> +    struct vcpu *wake_cpu;
> >>>>> +};
> >>>>> +
> >>>>> +int arch_domain_resume(struct domain *d);
> >>>> If possible, headers should be standalone, meaning you should includ=
e necessary
> >>>> headers or forward declare what's missing.
> >>>
> >>> Thanks for the comment.
> >>>
> >>> My initial intention was to avoid adding new dependencies from asm
> >>> headers to higher-level Xen headers, so I did not include e.g.
> >>> <xen/sched.h> directly here. In this header we only need pointers to
> >>> struct domain and struct vcpu, we never dereference them, so forward
> >>> declarations would be sufficient to make it standalone.
> >>>
> >>> I also noticed that some existing asm headers in this directory do
> >>> include higher-level Xen headers, so both patterns exist in the tree.
> >>>
> >>> If you prefer, I can either:
> >>>   - add forward declarations
> >>>
> >>>       struct domain;
> >>>       struct vcpu;
> >>>
> >>>     at the top of this header and keep the full includes in the .c
> >>>     files that actually dereference these types, or
> >>>
> >>>   - include the appropriate Xen header(s) directly in this header.
> >>>
> >>> Personally I slightly prefer the forward-declaration approach to keep
> >>> this header lightweight and avoid tightening the layering, but I am
> >>> happy to follow your preference.
> >> My preference is also to forward declare these structs.
> >>
> >>>
> >>>>
> >>>>> +
> >>>>> +#endif /* __ARM_SUSPEND_H__ */
> >>>>> +
> >>>>> + /*
> >>>>> +  * Local variables:
> >>>>> +  * mode: C
> >>>>> +  * c-file-style: "BSD"
> >>>>> +  * c-basic-offset: 4
> >>>>> +  * tab-width: 4
> >>>>> +  * indent-tabs-mode: nil
> >>>>> +  * End:
> >>>>> +  */
> >>>>> diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/includ=
e/asm/vpsci.h
> >>>>> index 0cca5e6830..d790ab3715 100644
> >>>>> --- a/xen/arch/arm/include/asm/vpsci.h
> >>>>> +++ b/xen/arch/arm/include/asm/vpsci.h
> >>>>> @@ -23,12 +23,15 @@
> >>>>>  #include <asm/psci.h>
> >>>>>
> >>>>>  /* Number of function implemented by virtual PSCI (only 0.2 or lat=
er) */
> >>>>> -#define VPSCI_NR_FUNCS  12
> >>>>> +#define VPSCI_NR_FUNCS  14
> >>>>>
> >>>>>  /* Functions handle PSCI calls from the guests */
> >>>>>  bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
> >>>>>  bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid);
> >>>>>
> >>>>> +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
> >>>>> +                          register_t context_id);
> >>>>> +
> >>>>>  #endif /* __ASM_VPSCI_H__ */
> >>>>>
> >>>>>  /*
> >>>>> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> >>>>> index 7ba9ccd94b..22c3a5f544 100644
> >>>>> --- a/xen/arch/arm/vpsci.c
> >>>>> +++ b/xen/arch/arm/vpsci.c
> >>>>> @@ -10,32 +10,16 @@
> >>>>>
> >>>>>  #include <public/sched.h>
> >>>>>
> >>>>> -static int do_common_cpu_on(register_t target_cpu, register_t entr=
y_point,
> >>>>> -                            register_t context_id)
> >>>>> +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
> >>>>> +                   register_t context_id)
> >>>> NIT: incorrect parameter alignment
> >>>
> >>> ack
> >>>
> >>>>
> >>>>>  {
> >>>>> -    struct vcpu *v;
> >>>>> -    struct domain *d =3D current->domain;
> >>>>> -    struct vcpu_guest_context *ctxt;
> >>>>>      int rc;
> >>>>> +    struct domain *d =3D v->domain;
> >>>>>      bool is_thumb =3D entry_point & 1;
> >>>>> -    register_t vcpuid;
> >>>>> -
> >>>>> -    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> >>>>> -
> >>>>> -    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> >>>>> -        return PSCI_INVALID_PARAMETERS;
> >>>>> -
> >>>>> -    /* THUMB set is not allowed with 64-bit domain */
> >>>>> -    if ( is_64bit_domain(d) && is_thumb )
> >>>>> -        return PSCI_INVALID_ADDRESS;
> >>>>> -
> >>>>> -    if ( !test_bit(_VPF_down, &v->pause_flags) )
> >>>>> -        return PSCI_ALREADY_ON;
> >>>>> +    struct vcpu_guest_context *ctxt;
> >>>>>
> >>>>>      if ( (ctxt =3D alloc_vcpu_guest_context()) =3D=3D NULL )
> >>>>> -        return PSCI_DENIED;
> >>>>> -
> >>>>> -    vgic_clear_pending_irqs(v);
> >>>>> +        return -ENOMEM;
> >>>>>
> >>>>>      memset(ctxt, 0, sizeof(*ctxt));
> >>>>>      ctxt->user_regs.pc64 =3D (u64) entry_point;
> >>>>> @@ -76,8 +60,37 @@ static int do_common_cpu_on(register_t target_cp=
u, register_t entry_point,
> >>>>>      free_vcpu_guest_context(ctxt);
> >>>>>
> >>>>>      if ( rc < 0 )
> >>>>> +        return rc;
> >>>>> +
> >>>>> +    return 0;
> >>>>> +}
> >>>>> +
> >>>>> +static int do_common_cpu_on(register_t target_cpu, register_t entr=
y_point,
> >>>>> +                            register_t context_id)
> >>>>> +{
> >>>>> +    struct vcpu *v;
> >>>>> +    struct domain *d =3D current->domain;
> >>>>> +    int rc;
> >>>>> +    bool is_thumb =3D entry_point & 1;
> >>>>> +    register_t vcpuid;
> >>>>> +
> >>>>> +    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> >>>>> +
> >>>>> +    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> >>>>> +        return PSCI_INVALID_PARAMETERS;
> >>>>> +
> >>>>> +    /* THUMB set is not allowed with 64-bit domain */
> >>>>> +    if ( is_64bit_domain(d) && is_thumb )
> >>>>> +        return PSCI_INVALID_ADDRESS;
> >>>>> +
> >>>>> +    if ( !test_bit(_VPF_down, &v->pause_flags) )
> >>>>> +        return PSCI_ALREADY_ON;
> >>>>> +
> >>>>> +    rc =3D vpsci_vcpu_up_prepare(v, entry_point, context_id);
> >>>>> +    if ( rc )
> >>>>>          return PSCI_DENIED;
> >>>>>
> >>>>> +    vgic_clear_pending_irqs(v);
> >>>>>      vcpu_wake(v);
> >>>>>
> >>>>>      return PSCI_SUCCESS;
> >>>>> @@ -197,6 +210,48 @@ static void do_psci_0_2_system_reset(void)
> >>>>>      domain_shutdown(d,SHUTDOWN_reboot);
> >>>>>  }
> >>>>>
> >>>>> +static int32_t do_psci_1_0_system_suspend(register_t epoint, regis=
ter_t cid)
> >>>>> +{
> >>>>> +    int32_t rc;
> >>>>> +    struct vcpu *v;
> >>>>> +    struct domain *d =3D current->domain;
> >>>>> +    bool is_thumb =3D epoint & 1;
> >>>>> +
> >>>>> +    /* THUMB set is not allowed with 64-bit domain */
> >>>>> +    if ( is_64bit_domain(d) && is_thumb )
> >>>>> +        return PSCI_INVALID_ADDRESS;
> >>>>> +
> >>>>> +    /* SYSTEM_SUSPEND is not supported for the hardware domain yet=
 */
> >>>>> +    if ( is_hardware_domain(d) )
> >>>>> +        return PSCI_NOT_SUPPORTED;
> >>>>> +
> >>>>> +    /* Ensure that all CPUs other than the calling one are offline=
 */
> >>>>> +    domain_lock(d);
> >>>>> +    for_each_vcpu ( d, v )
> >>>>> +    {
> >>>>> +        if ( v !=3D current && is_vcpu_online(v) )
> >>>>> +        {
> >>>>> +            domain_unlock(d);
> >>>>> +            return PSCI_DENIED;
> >>>>> +        }
> >>>>> +    }
> >>>>> +    domain_unlock(d);
> >>>>> +
> >>>>> +    rc =3D domain_shutdown(d, SHUTDOWN_suspend);
> >>>>> +    if ( rc )
> >>>>> +        return PSCI_DENIED;
> >>>>> +
> >>>>> +    d->arch.resume_ctx.ep =3D epoint;
> >>>>> +    d->arch.resume_ctx.cid =3D cid;
> >>>>> +    d->arch.resume_ctx.wake_cpu =3D current;
> >>>>> +
> >>>>> +    gprintk(XENLOG_DEBUG,
> >>>>> +            "SYSTEM_SUSPEND requested, epoint=3D0x%"PRIregister", =
cid=3D0x%"PRIregister"\n",
> >>>> NIT: %# is preffered over 0x%.
> >>>
> >>> ack
> >>>
> >>>>
> >>>>> +            epoint, cid);
> >>>>> +
> >>>>> +    return rc;
> >>>>> +}
> >>>>> +
> >>>>>  static int32_t do_psci_1_0_features(uint32_t psci_func_id)
> >>>>>  {
> >>>>>      /* /!\ Ordered by function ID and not name */
> >>>>> @@ -214,6 +269,8 @@ static int32_t do_psci_1_0_features(uint32_t ps=
ci_func_id)
> >>>>>      case PSCI_0_2_FN32_SYSTEM_OFF:
> >>>>>      case PSCI_0_2_FN32_SYSTEM_RESET:
> >>>>>      case PSCI_1_0_FN32_PSCI_FEATURES:
> >>>>> +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> >>>>> +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
> >>>>>      case ARM_SMCCC_VERSION_FID:
> >>>>>          return 0;
> >>>>>      default:
> >>>>> @@ -344,6 +401,23 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *r=
egs, uint32_t fid)
> >>>>>          return true;
> >>>>>      }
> >>>>>
> >>>>> +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> >>>>> +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
> >>>>> +    {
> >>>>> +        register_t epoint =3D PSCI_ARG(regs, 1);
> >>>>> +        register_t cid =3D PSCI_ARG(regs, 2);
> >>>>> +
> >>>>> +        if ( fid =3D=3D PSCI_1_0_FN32_SYSTEM_SUSPEND )
> >>>>> +        {
> >>>>> +            epoint &=3D GENMASK(31, 0);
> >>>>> +            cid &=3D GENMASK(31, 0);
> >>>>> +        }
> >>>>> +
> >>>>> +        perfc_incr(vpsci_system_suspend);
> >>>>> +        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, c=
id));
> >>>>> +        return true;
> >>>>> +    }
> >>>>> +
> >>>>>      default:
> >>>>>          return false;
> >>>>>      }
> >>>>> diff --git a/xen/common/domain.c b/xen/common/domain.c
> >>>>> index 775c339285..6410d32970 100644
> >>>>> --- a/xen/common/domain.c
> >>>>> +++ b/xen/common/domain.c
> >>>>> @@ -26,6 +26,7 @@
> >>>>>  #include <xen/hypercall.h>
> >>>>>  #include <xen/delay.h>
> >>>>>  #include <xen/shutdown.h>
> >>>>> +#include <xen/suspend.h>
> >>>>>  #include <xen/percpu.h>
> >>>>>  #include <xen/multicall.h>
> >>>>>  #include <xen/rcupdate.h>
> >>>>> @@ -1363,6 +1364,9 @@ void domain_resume(struct domain *d)
> >>>>>
> >>>>>      spin_lock(&d->shutdown_lock);
> >>>>>
> >>>>> +    if ( arch_domain_resume(d) )
> >>>>> +        goto fail;
> >>>>> +
> >>>>>      d->is_shutting_down =3D d->is_shut_down =3D 0;
> >>>>>      d->shutdown_code =3D SHUTDOWN_CODE_INVALID;
> >>>>>
> >>>>> @@ -1373,6 +1377,7 @@ void domain_resume(struct domain *d)
> >>>>>          v->paused_for_shutdown =3D 0;
> >>>>>      }
> >>>>>
> >>>>> + fail:
> >>>>>      spin_unlock(&d->shutdown_lock);
> >>>>>
> >>>>>      domain_unpause(d);
> >>>>> diff --git a/xen/include/xen/suspend.h b/xen/include/xen/suspend.h
> >>>>> new file mode 100644
> >>>>> index 0000000000..53f75fd6ad
> >>>>> --- /dev/null
> >>>>> +++ b/xen/include/xen/suspend.h
> >>>>> @@ -0,0 +1,15 @@
> >>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
> >>>>> +#ifndef __XEN_SUSPEND_H__
> >>>> There should be no double underscores in guards
> >>>
> >>> I initially followed the style used by the existing headers in this
> >>> directory, which still have include guards with double underscores.
> >>>
> >>> You are right that this does not match CODING_STYLE examples.
> >>> I will update this header to use a proper guard name.
> >>>
> >>>>
> >>>>> +#define __XEN_SUSPEND_H__
> >>>>> +
> >>>>> +#if __has_include(<asm/suspend.h>)
> >>>>> +#include <asm/suspend.h>
> >>>>> +#else
> >>>>> +static inline int arch_domain_resume(struct domain *d)
> >>>>> +{
> >>>>> +    return 0;
> >>>>> +}
> >>>>> +#endif
> >>>>> +
> >>>> Stray whiteline?
> >>>
> >>> will drop
> >>>
> >>>>
> >>>>> +
> >>>>> +#endif /* __XEN_SUSPEND_H__ */
> >>>> Missing emacs block?
> >>>
> >>> It is permitted but isn't necessary as far as know,
> >>> but if it needed here per your opinion I'll add it
> >>> just let me know
> >> On Arm we usually require them and that's the overall preference I wou=
ld say.
> >>
> >>>
> >>>>
> >>>> Did you run MISRA scan on this patch?
> >>>
> >>> Yes, I ran it with:
> >>>
> >>>   ./xen/scripts/xen-analysis.py \
> >>>       --run-cppcheck --cppcheck-misra --cppcheck-html -- \
> >>>       XEN_TARGET_ARCH=3Darm64 CROSS_COMPILE=3Daarch64-linux-gnu-
> >>>
> >>> The analysis did not report any new MISRA violations in the code
> >>> touched by this patch.
> >> That's only cppcheck scan which is rather poor in finding violations. =
ECLAIR
> >> scan is done through Gitlab CI and this one is what we rely on for tak=
ing the
> >> series in.
> >
> > Thanks for the clarification.
> >
> > Is it possible to run the ECLAIR MISRA scan locally, or is it only
> > available via the project Gitlab CI instance? If there is a way to run
> > it on a developer machine, I would be happy to set it up and check this
> > series with the same configuration.
> It's not possible to run it locally. But you can use your (if you don't h=
ave,
> ask on Matrix) Xen fork under https://gitlab.com/xen-project/people to pu=
sh a
> branch and trigger the CI (ECLAIR scan needs to be manually executed from=
 the
> pipeline page).

Got it, thanks.

~Mykola

>
> ~Michal
>


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 11:56:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 11:56:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165912.1492565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLgnU-0001PO-Do; Wed, 19 Nov 2025 11:56:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165912.1492565; Wed, 19 Nov 2025 11: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 1vLgnU-0001PH-B4; Wed, 19 Nov 2025 11:56:28 +0000
Received: by outflank-mailman (input) for mailman id 1165912;
 Wed, 19 Nov 2025 11:56: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=ZQwi=53=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vLgnS-0001P9-3A
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 11:56:26 +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 c54e9b67-c53e-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 12:56:23 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b73669bdcd2so925353266b.2
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 03:56:23 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b734fda8d69sm1580851066b.50.2025.11.19.03.56.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 19 Nov 2025 03: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: c54e9b67-c53e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763553383; x=1764158183; 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=FYRFuhnLohUDhchuPxPl647lREljhNHqqsqQufM/jwM=;
        b=EYZ9wBTf6J6ryboL91M4/eYiQulbAlMY/hmVb588NndJ4ArgUtYFUOaPzXwhL27q+8
         YnoH9M2vTEmq6NaG8xhtZCl3Wc5URw+1JQfoXdr+TfkVwm5gJ689QsrpOQq9auupI7OP
         LoDYHL/wbaTZ6TQ6hFV37aIL5t56cgfg6FLnZa3OG8DC1dlxPmOmkE8BC+pQN4hMdnym
         dAqK9XxQPfi7CWp6iyZ0Jis3VIVAJ5PD6Vvk99JFOooPTIzGy35J8Ih3F+wIx+BlWvam
         rX+DGDvsaq88fl0UAP8wM3vbV9eHJhWz6a8VF9sOJomkJL5kbr1lr/ZatAGEqRecGoMv
         56bw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763553383; x=1764158183;
        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=FYRFuhnLohUDhchuPxPl647lREljhNHqqsqQufM/jwM=;
        b=V6EGRZqdlT38injo0v/1FW/h3N89eXf7T6YYCQ/d2gj9+4OWAQfmcfydtXTcUB2kaP
         HmlNYbrI5pcID6PhKlG/CSYOBuWWu/urDFdau8G/ZANAnbvyCZxPt+KyprzX38Ky8ZCx
         IcGDXjNkQVolcZGQFjueAKAGDxK5Lv6lyxA4htY5iV2nIX3FshHwzd10noF0PCJLAXx0
         /G/6Q3VevYq8l1cgNvqnGUAEFj/jL2bM/gcv4PzbtocdnrjfwpSEEcQTN/GfUgOEsbFT
         sT7nPPTAIRk81t/Xm69dAtvgrX5CjDYoSRIIDMD9k4lO6RtGTvEFL6802wVnMeFfGnK4
         Pq7Q==
X-Forwarded-Encrypted: i=1; AJvYcCVdaEg85AAGajnfR2ZGgWtJQHX0U5BzvvAybqxiR+e2zTTlr99WROl1R4M9OfO3r8Twex+bT6Hzrfk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwmZOzHhsGbHw7BSaLiX6gGq8vOlvqsMbx0AfzHj8YrpE4skvuO
	ztlRQdqfqhmQD+t7zBftvqI+Sg4l13bvAGii1S8iKm4PYLXAnIghQU3ygTg4JfXHIPo=
X-Gm-Gg: ASbGncuvqMieQwQLdh0QBkEwSC6uO0lRYFJ6KWfk1eVH8VzatNXWNPB3hYWnB3aahxE
	jjWB0MiCauVJKGYjDnTIz7+ehGY+WV3xy+XM5T8yZ2JD0SJ5uHSETDkHul5dvxjeDHBbrzFFJpv
	GPjVLlEW/1CGWrB37YWIsxtr5lC+HHWrENRSvf5vK49kufJhkF1eEyx2lMT3YoHHHO+N1zUAdeV
	e29St6/aMWyfcm1A7A0xurpu2+2f2pVkQ/2oA0SKLKTDPwBKjorkLhASXEnRfm4qj7KEO1tHClM
	XfHWSllzulHo/IGMLmaFsOOA47SY8+TirmItFEzQDEWpIwQcnRzY8DWmMALxbyf8q+kNJaRKlDn
	hYQzXHchfLDJ7rax4G3fIg+yMQxP6yltnaP/lPIFei8jgwN7M+2Xj1ZafMno+nSzo1Tnv01vuZv
	dvdeeQsutmdCQWuaoxlT4Q7y7Wr4uC3+9gaP8EQ8FqeEHm0b6adfWjRyHQ99sOM2JSe9ZRSbSad
	PdHEZAqsPjoxWPfQz9ro1i+FsBuItVomCHziWbuK83pImAukg==
X-Google-Smtp-Source: AGHT+IF3sN6MGyMRLKS3V8/vC/hp5l13zG+XUSKs2up3QZmrOAO+PMb5DZxBVx/BOK5+PeNYeHx8qQ==
X-Received: by 2002:a17:907:3f05:b0:b73:4fbb:37a8 with SMTP id a640c23a62f3a-b7367880f9dmr2183670566b.12.1763553383112;
        Wed, 19 Nov 2025 03:56:23 -0800 (PST)
Message-ID: <ade173bc-5247-46eb-aac1-3aa92999e0b6@suse.com>
Date: Wed, 19 Nov 2025 12:56:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 3/5] x86: hvm: factor out compat code under ifdefs
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <20251111175413.3540690-4-grygorii_strashko@epam.com>
 <af736490-5f04-4fa8-9b73-4071b72e1c33@suse.com>
 <4e4aa540-514b-458f-8036-7941a0ecf268@epam.com>
 <be6f958b-ae23-4cd0-9dd7-c096ae36d39b@suse.com>
 <a17e86e4-f8c1-464d-b30d-42713f793ea5@suse.com>
 <8aa7ddeb-fb2b-42ac-bba6-272b91fc1e8f@suse.com>
 <a36eafd3-35cf-448e-8c46-df063f50b082@epam.com>
 <8a57904f-17f2-46f9-9b08-e2287f8fd44c@suse.com>
 <9d5f30c9-1a9e-45d2-93f9-3af20f105a69@epam.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <9d5f30c9-1a9e-45d2-93f9-3af20f105a69@epam.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------lXR8L9LJEqNtg6oDM8T34rpq"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------lXR8L9LJEqNtg6oDM8T34rpq
Content-Type: multipart/mixed; boundary="------------eapoUKOgYX70TRIRP1U7FERe";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Message-ID: <ade173bc-5247-46eb-aac1-3aa92999e0b6@suse.com>
Subject: Re: [XEN][PATCH 3/5] x86: hvm: factor out compat code under ifdefs
References: <20251111175413.3540690-1-grygorii_strashko@epam.com>
 <20251111175413.3540690-4-grygorii_strashko@epam.com>
 <af736490-5f04-4fa8-9b73-4071b72e1c33@suse.com>
 <4e4aa540-514b-458f-8036-7941a0ecf268@epam.com>
 <be6f958b-ae23-4cd0-9dd7-c096ae36d39b@suse.com>
 <a17e86e4-f8c1-464d-b30d-42713f793ea5@suse.com>
 <8aa7ddeb-fb2b-42ac-bba6-272b91fc1e8f@suse.com>
 <a36eafd3-35cf-448e-8c46-df063f50b082@epam.com>
 <8a57904f-17f2-46f9-9b08-e2287f8fd44c@suse.com>
 <9d5f30c9-1a9e-45d2-93f9-3af20f105a69@epam.com>
In-Reply-To: <9d5f30c9-1a9e-45d2-93f9-3af20f105a69@epam.com>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------eapoUKOgYX70TRIRP1U7FERe
Content-Type: multipart/mixed; boundary="------------GYOi2GCi0j5yWHtCR0WpzUvT"

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

T24gMTkuMTEuMjUgMTI6NDgsIEdyeWdvcmlpIFN0cmFzaGtvIHdyb3RlOg0KPiBIaSBKw7xy
Z2VuLA0KPiANCj4gT24gMTMuMTEuMjUgMTc6NDMsIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+
PiBPbiAxMy4xMS4yNSAxNjozMiwgR3J5Z29yaWkgU3RyYXNoa28gd3JvdGU6DQo+Pj4gSGkg
SsO8cmdlbiwNCj4+Pg0KPj4+IE9uIDEzLjExLjI1IDE2OjQ2LCBKdWVyZ2VuIEdyb3NzIHdy
b3RlOg0KPj4+PiBPbiAxMy4xMS4yNSAxNTozOSwgSsO8cmdlbiBHcm/DnyB3cm90ZToNCj4+
Pj4+IE9uIDEzLjExLjI1IDE0OjIzLCBKYW4gQmV1bGljaCB3cm90ZToNCj4+Pj4+PiBPbiAx
My4xMS4yMDI1IDE0OjE4LCBHcnlnb3JpaSBTdHJhc2hrbyB3cm90ZToNCj4+Pj4+Pj4gT24g
MTMuMTEuMjUgMTQ6MzAsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+Pj4+Pj4gT24gMTEuMTEu
MjAyNSAxODo1NCwgR3J5Z29yaWkgU3RyYXNoa28gd3JvdGU6DQo+Pj4+Pj4+Pj4gLS0tIGEv
eGVuL2FyY2gveDg2L2h2bS9oeXBlcmNhbGwuYw0KPj4+Pj4+Pj4+ICsrKyBiL3hlbi9hcmNo
L3g4Ni9odm0vaHlwZXJjYWxsLmMNCj4+Pj4+Pj4+PiBAQCAtMjksMTAgKzI5LDEyIEBAIGxv
bmcgaHZtX21lbW9yeV9vcCh1bnNpZ25lZCBsb25nIGNtZCwgDQo+Pj4+Pj4+Pj4gWEVOX0dV
RVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpDQo+Pj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDC
oMKgwqAgcmV0dXJuIC1FTk9TWVM7DQo+Pj4+Pj4+Pj4gwqDCoMKgwqDCoMKgIH0NCj4+Pj4+
Pj4+PiAtwqDCoMKgIGlmICggIXZjcHVfaXNfaGNhbGxfY29tcGF0KGN1cnJlbnQpICkNCj4+
Pj4+Pj4+PiAtwqDCoMKgwqDCoMKgwqAgcmMgPSBkb19tZW1vcnlfb3AoY21kLCBhcmcpOw0K
Pj4+Pj4+Pj4+IC3CoMKgwqAgZWxzZQ0KPj4+Pj4+Pj4+ICsjaWZkZWYgQ09ORklHX0NPTVBB
VA0KPj4+Pj4+Pj4+ICvCoMKgwqAgaWYgKCB2Y3B1X2lzX2hjYWxsX2NvbXBhdChjdXJyZW50
KSApDQo+Pj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmMgPSBjb21wYXRfbWVtb3J5
X29wKGNtZCwgYXJnKTsNCj4+Pj4+Pj4+PiArwqDCoMKgIGVsc2UNCj4+Pj4+Pj4+PiArI2Vu
ZGlmDQo+Pj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJjID0gZG9fbWVtb3J5X29wKGNtZCwg
YXJnKTsNCj4+Pj4+Pj4+DQo+Pj4+Pj4+PiBXaHkgd291bGQgdGhpcyBiZSBuZWVkZWQgd2hl
biB2Y3B1X2lzX2hjYWxsX2NvbXBhdCgpIGFscmVhZHkgaG9ub3JzIA0KPj4+Pj4+Pj4gQ09O
RklHX0NPTVBBVD8NCj4+Pj4+Pj4+IChTYW1lIHF1ZXN0aW9uIHRoZW4gYXBwbGllcyBlbHNl
d2hlcmUsIG9mIGNvdXJzZS4pDQo+Pj4+Pj4+DQo+Pj4+Pj4+IFRoaXMgSSBkbyBub3QgbGlr
ZSBieSBteXNlbGYsIGJ1dCBJIHdhcyBub3QgYWJsZSB0byBmaW5kIG90aGVyIG9wdGlvbnMg
OigNCj4+Pj4+Pj4NCj4+Pj4+Pj4gaHlwZXJjYWxsLWRlZnMuaCBpcyBhdXRvZ2VuZXJhdGVk
IGFuZCBpdCdzIHRoZSBvbmx5IG9uZSBwbGFjZSB3aGVyZSANCj4+Pj4+Pj4gZnVuY3Rpb25z
DQo+Pj4+Pj4+IGRlY2xhcmF0aW9ucyBsaWtlIGRvX3hfb3AoKSBhcmUgYXBwZWFyZWQgb3Ig
ZGlzYXBwZWFyZWQuDQo+Pj4+Pj4+IFNvIGJ1aWxkIGlzIGZhaWxpbmcgd2l0aG91dCBpZmRl
ZnMgYXMgY29tcGlsZXIgY2FuJ3QgZmluZCBjb21wYXRfbWVtb3J5X29wKCkNCj4+Pj4+Pj4g
ZGVjbGFyYXRpb24uDQo+Pj4+Pj4NCj4+Pj4+PiBPaCwgSSBzZWU7IEkgaGFkbid0IHRob3Vn
aHQgb2YgdGhhdCBhc3BlY3QuIEkgd29uZGVyIGlmIHdlIHdvdWxkbid0IGJldHRlciANCj4+
Pj4+PiB0YWtlDQo+Pj4+Pj4gY2FyZSBvZiB0aGF0IGluIHRoZSBtYWNoaW5lcnkgdGhlcmUu
IENjLWluZyBKw7xyZ2VuLCB3aG8gZGlkIGludHJvZHVjZSB0aGlzDQo+Pj4+Pj4gb3JpZ2lu
YWxseS4gTWF5YmUgaGUgaGFzIGNvbmNyZXRlIGFyZ3VtZW50cyBhZ2FpbnN0IHVzIGRvaW5n
IHNvLg0KPj4+Pj4NCj4+Pj4+IE5vIGFyZ3VtZW50cyBhZ2FpbnN0IGl0Lg0KPj4+Pj4NCj4+
Pj4+IFlvdSBwcm9iYWJseSB3aWxsIG5lZWQgYSBuZXcgUHJlZml4IGRlZmluZWQgKGUuZy4g
Y29tcGF0X2Fsd2F5cykgYW5kIHNldCBpdCANCj4+Pj4+IHZpYQ0KPj4+Pj4NCj4+Pj4+ICNk
ZWZpbmUgUFJFRklYX2NvbXBhdF9hbHdheXMgY29tcGF0DQo+Pj4+Pg0KPj4+Pj4gdW5jb25k
aXRpb25hbGx5LiBUaGVuIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBoYXZlDQo+Pj4+Pg0K
Pj4+Pj4gUHJlZml4OiBjb21wYXRfYWx3YXlzDQo+Pj4+PiBtZW1vcnlfb3AoLi4uKQ0KPj4+
Pj4NCj4+Pj4+IG91dHNpZGUgb2YgI2lmZGVmcyBhbmQgZHJvcCB0aGUgbWVtb3J5X29wKCkg
aW4gdGhlICNpZmRlZiBDT05GSUdfQ09NUEFUIA0KPj4+Pj4gc2VjdGlvbi4NCj4+Pj4NCj4+
Pj4gT2gsIHRoaXMgbWlnaHQgYmUgd3JvbmcsIGFzIHRoaXMgd2lsbCBicmVhayB0aGUgUFYz
MiBtZW1vcnlfb3AoKSBoeXBlcmNhbGwuDQo+Pj4+DQo+Pj4+IFlvdSBuZWVkIHRvIGtlZXAg
dGhlIGN1cnJlbnQgbWVtb3J5X29wKCkgaW4gdGhlICNpZmRlZiBDT05GSUdfQ09NUEFUIHNl
Y3Rpb24NCj4+Pj4gYW5kIG1vdmUgdGhlIGNvbXBhdF9hbHdheXMgc3R1ZmYgaW50byBhbiAj
ZWxzZSBwYXJ0IG9mIHRoZSBDT05GSUdfQ09NUEFULg0KPj4+Pg0KPj4+Pj4NCj4+Pj4+IFRo
aXMgc2hvdWxkIHJlc3VsdCBpbiB0aGUgY29tcGF0X21lbW9yeV9vcCgpIHByb3RvdHlwZSB0
byBiZSBhbHdheXMgYXZhaWxhYmxlLg0KPj4+Pj4gSGF2aW5nIG5vIHJlbGF0ZWQgZnVuY3Rp
b24gc2hvdWxkIGJlIG5vIHByb2JsZW0gZHVlIHRvIERDTyBpbiBjYXNlIA0KPj4+Pj4gQ09O
RklHX0NPTVBBVA0KPj4+Pj4gaXNuJ3QgZGVmaW5lZC4NCj4+Pg0KPj4+IFNtdGggbGlrZSB0
aGlzLCByaWdodD8NCj4+Pg0KPj4+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9oeXBlcmNh
bGwtZGVmcy5jIGIveGVuL2luY2x1ZGUvaHlwZXJjYWxsLWRlZnMuYw0KPj4+IGluZGV4IDMz
OGQ3YWZlMzA0OC4uZTg1OTQzMzIwYmQyIDEwMDY0NA0KPj4+IC0tLSBhL3hlbi9pbmNsdWRl
L2h5cGVyY2FsbC1kZWZzLmMNCj4+PiArKysgYi94ZW4vaW5jbHVkZS9oeXBlcmNhbGwtZGVm
cy5jDQo+Pj4gQEAgLTgwLDYgKzgwLDggQEAgcmV0dHlwZTogY29tcGF0IGludA0KPj4+IMKg
wqAjZGVmaW5lIFBSRUZJWF9jb21wYXQNCj4+PiDCoMKgI2VuZGlmDQo+Pj4NCj4+PiArI2Rl
ZmluZSBQUkVGSVhfY29tcGF0X2Fsd2F5cyBjb21wYXQNCj4+PiArDQo+Pj4gwqDCoCNpZmRl
ZiBDT05GSUdfQVJNDQo+Pj4gwqDCoCNkZWZpbmUgUFJFRklYX2RlcCBkZXANCj4+PiDCoMKg
I2RlZmluZSBQUkVGSVhfZG9fYXJtIGRvX2FybQ0KPj4+IEBAIC0xNTYsNiArMTU4LDkgQEAg
cGxhdGZvcm1fb3AoY29tcGF0X3BsYXRmb3JtX29wX3QgKnVfeGVucGZfb3ApDQo+Pj4gwqDC
oCNpZmRlZiBDT05GSUdfS0VYRUMNCj4+PiDCoMKga2V4ZWNfb3AodW5zaWduZWQgaW50IG9w
LCB2b2lkICp1YXJnKQ0KPj4+IMKgwqAjZW5kaWYNCj4+PiArI2Vsc2UNCj4+PiArcHJlZml4
OiBQUkVGSVhfY29tcGF0X2Fsd2F5cw0KPj4NCj4+IFRoaXMgc2hvdWxkIGJlOg0KPj4NCj4+
ICtwcmVmaXg6IGNvbXBhdF9hbHdheXMNCj4gDQo+IFVuZm9ydHVuYXRlbHksIF4gaXMgbm90
IHdvcmtpbmcgaXQgZ2VuZXJhdGVzDQo+IGxvbmcgY29tcGF0X2Fsd2F5c19tZW1vcnlfb3Ao
dW5zaWduZWQgaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpOw0K
PiANCj4gTXkgdmVyc2lvbiB3b3JrcyAicHJlZml4OiBQUkVGSVhfY29tcGF0X2Fsd2F5cyIN
Cj4gDQoNCk9oLCBJIHN0YW5kIGNvcnJlY3RlZCB0aGVuLg0KDQoNCkp1ZXJnZW4NCg==
--------------GYOi2GCi0j5yWHtCR0WpzUvT
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-----

--------------GYOi2GCi0j5yWHtCR0WpzUvT--

--------------eapoUKOgYX70TRIRP1U7FERe--

--------------lXR8L9LJEqNtg6oDM8T34rpq
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/Ey8FAmkdsGYFAwAAAAAACgkQsN6d1ii/Ey/w
VQf+NFP76hssanfAbVfJWtUxSNohBn+G4iJ3Pa5PN8mMY63oPCVvYx/P7fp7h8dFURE77x8p5G96
oF+ijknYTawgTLrllRZ5w+7g5Vj0159G4ZsARnd41lf18hjx63qkKZiYxEjCgkRMx0uKvCZwmDQR
WFOUMmAuwOpeliqROluImxxIAKQAqK97v62isY0bHmOGK39Gj0I2WwSxCS1jAmBDjc0L4hWwwYVt
0LuFZQE3827v89f0PwCIWh44NToRmc7B/8RuD4U1lUSsQw9C1OFMH2oGI/MF8baGAyoRBHpU4xoa
/n11X8Hyv9tLxvluaNsZ/VYvIzrtGAGFYlJewNB0OQ==
=j5G8
-----END PGP SIGNATURE-----

--------------lXR8L9LJEqNtg6oDM8T34rpq--


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 12:48:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 12:48:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165945.1492603 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLhbJ-0000gQ-Kv; Wed, 19 Nov 2025 12:47:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165945.1492603; Wed, 19 Nov 2025 12:47:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLhbJ-0000gJ-Gl; Wed, 19 Nov 2025 12:47:57 +0000
Received: by outflank-mailman (input) for mailman id 1165945;
 Wed, 19 Nov 2025 12:47: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=/QLq=53=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vLhbH-0000gD-Ed
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 12:47:55 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f6059dbf-c545-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 13:47:52 +0100 (CET)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-59581e32163so6708924e87.1
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 04:47: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: f6059dbf-c545-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763556471; x=1764161271; 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=dqEwcQxqlcnTBb5sqdGGZLT640pBdvh5MhYRVjxBaKE=;
        b=mNruoufI/rli4SvUTZhir9xREFh3StkX1rqQO5k9k4pwwoDbbiCgUIXtyvKepPzeTI
         7WHkqNvXbd2Ht/7YrR+ZvraI62xuwRlc0DTxIUYBpdZDBsNxgIsG0FjaqK66ufgKfdmA
         EYRCfGdXqcanJeF62Z7TWUCxnilGUqrwF8hmcDWUo4VsDcbxSOC3NrNy6nWIUii4gIQz
         weMcqz5b8cDyGvz8CMlPHAL/DBW/LeV5f4jKNGBSsiHtctuwiENwb7/RSW+FEE3JueDN
         qP0F54RtF/UUAv9e92i8hx3cdS/vuCv/cwt63ecKtvNeAZrpI8KFns/8qmBWnHsOgx73
         8Jrg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763556471; x=1764161271;
        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=dqEwcQxqlcnTBb5sqdGGZLT640pBdvh5MhYRVjxBaKE=;
        b=Fvh0zQnoJvE/sXO00w6TaE2qHyDGC00S79bTCFJ74kbF/84D+FM5SQuOu3A+hlQxEp
         1XPLA8W57QU/n2LXLGYY9w8ibKYRa8Ve2e4LBxngmo+k6GK95IP1fo03IzEzG/0HLrnT
         GMNrJ7Qhk2uULv0C0YE2nROVjHg1xtliyMP7wzADeWckXgARy06yaex4Bs/MU+UZf3Oc
         Jdsa3Cj5npR1KE57rxle2YXvrhcMlQs7Rl2htAd+xJ+CkP+5QDYrOH8KaaRneg0068DL
         mW1XFgdFEPt47S7O1lTlVnqdnZmSJbAuPkgNHAWVc+V+SI0s+er23wWuUrMD9MjovV1l
         vXoA==
X-Gm-Message-State: AOJu0Yy8MCHO5muOnUBcK0r44R73vOo7vJ6K+C3G1euRNrCm2gbqhsTd
	w8ZVS+IzR2wYCY3YjJFup20oGZCHb0QG+VzjDFUfC01RraoEBDMngmfmBfv61O2fADJIk91ynkM
	wRoAVr8I3P7CgHmppYitklTDObrgdAOU=
X-Gm-Gg: ASbGncsmpFDrmWfPYNam4cEgfPsyhSkuHm2jiOYav7QGkls8KdIYYe8lufS3QpoVWgx
	ra5o4LqhjuSOWTtscPp+JlrjwFs/8gAJNAUZDZibzMNoarzMpEa3rRC3YOWYGSEzRSi6Am8YAxv
	D9Lqp+H/w91LeDdnFuRteZwDZfr2EVBHZh/2HVTZCLsQR+fvwkLc1wgE6YmvidzpdD6qcSSFNf8
	XqKwf1zBIbfnibZ08GbMMUW1DUPgT6hFaLwy1MUzHyKfyWD/lGannN7XWrkWpjs2j56Cg==
X-Google-Smtp-Source: AGHT+IHKAm4VDs0JouIMH7EkQZ/wojqtABJWN+qx5mboo6wPypnUmh2AJYnKM6jq+w7/kQEonaJ6BRGoHOFY78neCRE=
X-Received: by 2002:a05:6512:33cc:b0:592:fc68:5b9d with SMTP id
 2adb3069b0e04-5958419e9ccmr6166314e87.10.1763556470888; Wed, 19 Nov 2025
 04:47:50 -0800 (PST)
MIME-Version: 1.0
References: <cover.1763479083.git.xakep.amatop@gmail.com> <3786204d034ae4461aa0fde77771b8e14256314a.1763479083.git.xakep.amatop@gmail.com>
 <5a5b4bf6-4cd6-4b64-ba31-07a87b1fdbaa@amd.com>
In-Reply-To: <5a5b4bf6-4cd6-4b64-ba31-07a87b1fdbaa@amd.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Wed, 19 Nov 2025 14:47:39 +0200
X-Gm-Features: AWmQ_bluPbvO3pAoTjmJleMeN-bRk5mxkcH4x-7Ym5LU70mFXLQJnbMwqcEumWE
Message-ID: <CAGeoDV8vM_=XrCHUghyWHgiRBFMNQCALJSf_hrC9p5KHY6R8oA@mail.gmail.com>
Subject: Re: [PATCH v14 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Nov 19, 2025 at 10:48=E2=80=AFAM Orzel, Michal <michal.orzel@amd.co=
m> wrote:
>
>
>
> On 18/11/2025 16:37, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > Add support for the PSCI SYSTEM_SUSPEND function in the vPSCI interface=
,
> > allowing guests to request suspend via the PSCI v1.0+ SYSTEM_SUSPEND ca=
ll
> > (both 32-bit and 64-bit variants).
> >
> > Implementation details:
> > - Add SYSTEM_SUSPEND function IDs to PSCI definitions
> > - Trap and handle SYSTEM_SUSPEND in vPSCI
> > - Allow only non-hardware domains to invoke SYSTEM_SUSPEND; return
> >   PSCI_NOT_SUPPORTED for the hardware domain to avoid halting the syste=
m
> >   in hwdom_shutdown() via domain_shutdown
> > - Require all secondary VCPUs of the calling domain to be offline befor=
e
> >   suspend, as mandated by the PSCI specification
> >
> > The arch_domain_resume() function is an architecture-specific hook that=
 is
> > invoked during domain resume to perform any necessary setup or restorat=
ion
> > steps required by the platform.
> >
> > The new vpsci_vcpu_up_prepare() helper is called on the resume path to =
set up
> > the vCPU context (such as entry point, some system regs and context ID)=
 before
> > resuming a suspended guest. This keeps ARM/vPSCI-specific logic out of =
common
> > code and avoids intrusive changes to the generic resume flow.
> >
> > Usage:
> >
> > For Linux-based guests, suspend can be initiated with:
> >     echo mem > /sys/power/state
> > or via:
> >     systemctl suspend
> >
> > Resuming the guest is performed from control domain using:
> >       xl resume <domain>
> >
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > Changes in V14:
> > - move arch_domain_resume to a separate header
> > - avoid usage of typeof for context struct
> > - moved error printing from domain_resume to arch_domain_resume
> >   in order to simplify common parts of code
> > - minor changes after review
> > ---
> >  xen/arch/arm/domain.c                 |  41 +++++++++
> >  xen/arch/arm/include/asm/domain.h     |   2 +
> >  xen/arch/arm/include/asm/perfc_defn.h |   1 +
> >  xen/arch/arm/include/asm/psci.h       |   2 +
> >  xen/arch/arm/include/asm/suspend.h    |  24 ++++++
> >  xen/arch/arm/include/asm/vpsci.h      |   5 +-
> >  xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-----
> >  xen/common/domain.c                   |   5 ++
> >  xen/include/xen/suspend.h             |  15 ++++
> >  9 files changed, 189 insertions(+), 22 deletions(-)
> >  create mode 100644 xen/arch/arm/include/asm/suspend.h
> >  create mode 100644 xen/include/xen/suspend.h
> >
> > diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> > index e36719bce4..3c0170480b 100644
> > --- a/xen/arch/arm/domain.c
> > +++ b/xen/arch/arm/domain.c
> > @@ -12,6 +12,8 @@
> >  #include <xen/softirq.h>
> >  #include <xen/wait.h>
> >
> > +#include <public/sched.h>
> > +
> >  #include <asm/arm64/sve.h>
> >  #include <asm/cpuerrata.h>
> >  #include <asm/cpufeature.h>
> > @@ -24,10 +26,12 @@
> >  #include <asm/platform.h>
> >  #include <asm/procinfo.h>
> >  #include <asm/regs.h>
> > +#include <asm/suspend.h>
> >  #include <asm/firmware/sci.h>
> >  #include <asm/tee/tee.h>
> >  #include <asm/vfp.h>
> >  #include <asm/vgic.h>
> > +#include <asm/vpsci.h>
> >  #include <asm/vtimer.h>
> >
> >  #include "vpci.h"
> > @@ -885,6 +889,43 @@ void arch_domain_creation_finished(struct domain *=
d)
> >      p2m_domain_creation_finished(d);
> >  }
> >
> > +int arch_domain_resume(struct domain *d)
> > +{
> > +    int rc;
> > +    struct resume_info *ctx =3D &d->arch.resume_ctx;
> > +
> > +    if ( !d->is_shutting_down || d->shutdown_code !=3D SHUTDOWN_suspen=
d )
> > +    {
> > +        dprintk(XENLOG_WARNING,
> > +                "%pd: Invalid domain state for resume: is_shutting_dow=
n=3D%d, shutdown_code=3D%d\n",
> These are bool and uint, so %u should be used.
>
> > +                d, d->is_shutting_down, d->shutdown_code);
> > +        return -EINVAL;
> > +    }
> > +
> > +    /*
> > +     * It is still possible to call domain_shutdown() with a suspend r=
eason
> > +     * via some hypercalls, such as SCHEDOP_shutdown or SCHEDOP_remote=
_shutdown.
> > +     * In these cases, the resume context will be empty.
> > +     * This is not expected to cause any issues, so we just warn about=
 the
> > +     * situation and return without error, allowing the existing logic=
 to
> > +     * proceed as expected.
> > +     */
> > +    if ( !ctx->wake_cpu )
> > +    {
> > +        dprintk(XENLOG_INFO, "%pd: Wake CPU pointer context was not pr=
ovided\n",
> > +                d);
> > +        return 0;
> > +    }
> > +
> > +    rc =3D vpsci_vcpu_up_prepare(ctx->wake_cpu , ctx->ep, ctx->cid);
> > +    if ( rc )
> > +        printk("%pd: Failed to resume domain (ret %d)\n", d, rc);
> > +
> > +    memset(ctx, 0, sizeof(*ctx));
> > +
> > +    return rc;
> > +}
> > +
> >  static int is_guest_pv32_psr(uint32_t psr)
> >  {
> >      switch (psr & PSR_MODE_MASK)
> > diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/a=
sm/domain.h
> > index af3e168374..e637cb4de0 100644
> > --- a/xen/arch/arm/include/asm/domain.h
> > +++ b/xen/arch/arm/include/asm/domain.h
> > @@ -5,6 +5,7 @@
> >  #include <xen/timer.h>
> >  #include <asm/page.h>
> >  #include <asm/p2m.h>
> > +#include <asm/suspend.h>
> >  #include <asm/vfp.h>
> >  #include <asm/mmio.h>
> >  #include <asm/gic.h>
> > @@ -126,6 +127,7 @@ struct arch_domain
> >      void *sci_data;
> >  #endif
> >
> > +    struct resume_info resume_ctx;
> >  }  __cacheline_aligned;
> >
> >  struct arch_vcpu
> > diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/inclu=
de/asm/perfc_defn.h
> > index effd25b69e..8dfcac7e3b 100644
> > --- a/xen/arch/arm/include/asm/perfc_defn.h
> > +++ b/xen/arch/arm/include/asm/perfc_defn.h
> > @@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system=
_reset")
> >  PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
> >  PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
> >  PERFCOUNTER(vpsci_features,            "vpsci: features")
> > +PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
> >
> >  PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
> >
> > diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm=
/psci.h
> > index 4780972621..48a93e6b79 100644
> > --- a/xen/arch/arm/include/asm/psci.h
> > +++ b/xen/arch/arm/include/asm/psci.h
> > @@ -47,10 +47,12 @@ void call_psci_system_reset(void);
> >  #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
> >  #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
> >  #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
> > +#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
> >
> >  #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
> >  #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
> >  #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
> > +#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
> >
> >  /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
> >  #define PSCI_0_2_AFFINITY_LEVEL_ON      0
> > diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/=
asm/suspend.h
> > new file mode 100644
> > index 0000000000..b991a94d5a
> > --- /dev/null
> > +++ b/xen/arch/arm/include/asm/suspend.h
> > @@ -0,0 +1,24 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +
> > +#ifndef __ARM_SUSPEND_H__
> There should be no double underscores in guards (see examples in CODING_S=
TYLE)
> > +#define __ARM_SUSPEND_H__
> > +
> > +struct resume_info {
> > +    register_t ep;
> > +    register_t cid;
> > +    struct vcpu *wake_cpu;
> > +};
> > +
> > +int arch_domain_resume(struct domain *d);
> If possible, headers should be standalone, meaning you should include nec=
essary
> headers or forward declare what's missing.
>
> > +
> > +#endif /* __ARM_SUSPEND_H__ */
> > +
> > + /*
> > +  * Local variables:
> > +  * mode: C
> > +  * c-file-style: "BSD"
> > +  * c-basic-offset: 4
> > +  * tab-width: 4
> > +  * indent-tabs-mode: nil
> > +  * End:
> > +  */
> > diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/as=
m/vpsci.h
> > index 0cca5e6830..d790ab3715 100644
> > --- a/xen/arch/arm/include/asm/vpsci.h
> > +++ b/xen/arch/arm/include/asm/vpsci.h
> > @@ -23,12 +23,15 @@
> >  #include <asm/psci.h>
> >
> >  /* Number of function implemented by virtual PSCI (only 0.2 or later) =
*/
> > -#define VPSCI_NR_FUNCS  12
> > +#define VPSCI_NR_FUNCS  14
> >
> >  /* Functions handle PSCI calls from the guests */
> >  bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
> >  bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid);
> >
> > +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
> > +                          register_t context_id);
> > +
> >  #endif /* __ASM_VPSCI_H__ */
> >
> >  /*
> > diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> > index 7ba9ccd94b..22c3a5f544 100644
> > --- a/xen/arch/arm/vpsci.c
> > +++ b/xen/arch/arm/vpsci.c
> > @@ -10,32 +10,16 @@
> >
> >  #include <public/sched.h>
> >
> > -static int do_common_cpu_on(register_t target_cpu, register_t entry_po=
int,
> > -                            register_t context_id)
> > +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
> > +                   register_t context_id)
> NIT: incorrect parameter alignment
>
> >  {
> > -    struct vcpu *v;
> > -    struct domain *d =3D current->domain;
> > -    struct vcpu_guest_context *ctxt;
> >      int rc;
> > +    struct domain *d =3D v->domain;
> >      bool is_thumb =3D entry_point & 1;
> > -    register_t vcpuid;
> > -
> > -    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> > -
> > -    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> > -        return PSCI_INVALID_PARAMETERS;
> > -
> > -    /* THUMB set is not allowed with 64-bit domain */
> > -    if ( is_64bit_domain(d) && is_thumb )
> > -        return PSCI_INVALID_ADDRESS;
> > -
> > -    if ( !test_bit(_VPF_down, &v->pause_flags) )
> > -        return PSCI_ALREADY_ON;
> > +    struct vcpu_guest_context *ctxt;
> >
> >      if ( (ctxt =3D alloc_vcpu_guest_context()) =3D=3D NULL )
> > -        return PSCI_DENIED;
> > -
> > -    vgic_clear_pending_irqs(v);
> > +        return -ENOMEM;
> >
> >      memset(ctxt, 0, sizeof(*ctxt));
> >      ctxt->user_regs.pc64 =3D (u64) entry_point;
> > @@ -76,8 +60,37 @@ static int do_common_cpu_on(register_t target_cpu, r=
egister_t entry_point,
> >      free_vcpu_guest_context(ctxt);
> >
> >      if ( rc < 0 )
> > +        return rc;
> > +
> > +    return 0;
> > +}
> > +
> > +static int do_common_cpu_on(register_t target_cpu, register_t entry_po=
int,
> > +                            register_t context_id)
> > +{
> > +    struct vcpu *v;
> > +    struct domain *d =3D current->domain;
> > +    int rc;
> > +    bool is_thumb =3D entry_point & 1;
> > +    register_t vcpuid;
> > +
> > +    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> > +
> > +    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> > +        return PSCI_INVALID_PARAMETERS;
> > +
> > +    /* THUMB set is not allowed with 64-bit domain */
> > +    if ( is_64bit_domain(d) && is_thumb )
> > +        return PSCI_INVALID_ADDRESS;
> > +
> > +    if ( !test_bit(_VPF_down, &v->pause_flags) )
> > +        return PSCI_ALREADY_ON;
> > +
> > +    rc =3D vpsci_vcpu_up_prepare(v, entry_point, context_id);
> > +    if ( rc )
> >          return PSCI_DENIED;
> >
> > +    vgic_clear_pending_irqs(v);
> >      vcpu_wake(v);
> >
> >      return PSCI_SUCCESS;
> > @@ -197,6 +210,48 @@ static void do_psci_0_2_system_reset(void)
> >      domain_shutdown(d,SHUTDOWN_reboot);
> >  }
> >
> > +static int32_t do_psci_1_0_system_suspend(register_t epoint, register_=
t cid)
> > +{
> > +    int32_t rc;
> > +    struct vcpu *v;
> > +    struct domain *d =3D current->domain;
> > +    bool is_thumb =3D epoint & 1;
> > +
> > +    /* THUMB set is not allowed with 64-bit domain */
> > +    if ( is_64bit_domain(d) && is_thumb )
> > +        return PSCI_INVALID_ADDRESS;
> > +
> > +    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
> > +    if ( is_hardware_domain(d) )
> > +        return PSCI_NOT_SUPPORTED;
> > +
> > +    /* Ensure that all CPUs other than the calling one are offline */
> > +    domain_lock(d);
> > +    for_each_vcpu ( d, v )
> > +    {
> > +        if ( v !=3D current && is_vcpu_online(v) )
> > +        {
> > +            domain_unlock(d);
> > +            return PSCI_DENIED;
> > +        }
> > +    }
> > +    domain_unlock(d);
> > +
> > +    rc =3D domain_shutdown(d, SHUTDOWN_suspend);
> > +    if ( rc )
> > +        return PSCI_DENIED;
> > +
> > +    d->arch.resume_ctx.ep =3D epoint;
> > +    d->arch.resume_ctx.cid =3D cid;
> > +    d->arch.resume_ctx.wake_cpu =3D current;
> > +
> > +    gprintk(XENLOG_DEBUG,
> > +            "SYSTEM_SUSPEND requested, epoint=3D0x%"PRIregister", cid=
=3D0x%"PRIregister"\n",
> NIT: %# is preffered over 0x%.
>
> > +            epoint, cid);
> > +
> > +    return rc;
> > +}
> > +
> >  static int32_t do_psci_1_0_features(uint32_t psci_func_id)
> >  {
> >      /* /!\ Ordered by function ID and not name */
> > @@ -214,6 +269,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_f=
unc_id)
> >      case PSCI_0_2_FN32_SYSTEM_OFF:
> >      case PSCI_0_2_FN32_SYSTEM_RESET:
> >      case PSCI_1_0_FN32_PSCI_FEATURES:
> > +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> > +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
> >      case ARM_SMCCC_VERSION_FID:
> >          return 0;
> >      default:
> > @@ -344,6 +401,23 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs,=
 uint32_t fid)
> >          return true;
> >      }
> >
> > +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> > +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
> > +    {
> > +        register_t epoint =3D PSCI_ARG(regs, 1);
> > +        register_t cid =3D PSCI_ARG(regs, 2);
> > +
> > +        if ( fid =3D=3D PSCI_1_0_FN32_SYSTEM_SUSPEND )
> > +        {
> > +            epoint &=3D GENMASK(31, 0);
> > +            cid &=3D GENMASK(31, 0);
> > +        }
> > +
> > +        perfc_incr(vpsci_system_suspend);
> > +        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid))=
;
> > +        return true;
> > +    }
> > +
> >      default:
> >          return false;
> >      }
> > diff --git a/xen/common/domain.c b/xen/common/domain.c
> > index 775c339285..6410d32970 100644
> > --- a/xen/common/domain.c
> > +++ b/xen/common/domain.c
> > @@ -26,6 +26,7 @@
> >  #include <xen/hypercall.h>
> >  #include <xen/delay.h>
> >  #include <xen/shutdown.h>
> > +#include <xen/suspend.h>
> >  #include <xen/percpu.h>
> >  #include <xen/multicall.h>
> >  #include <xen/rcupdate.h>
> > @@ -1363,6 +1364,9 @@ void domain_resume(struct domain *d)
> >
> >      spin_lock(&d->shutdown_lock);
> >
> > +    if ( arch_domain_resume(d) )
> > +        goto fail;
> > +
> >      d->is_shutting_down =3D d->is_shut_down =3D 0;
> >      d->shutdown_code =3D SHUTDOWN_CODE_INVALID;
> >
> > @@ -1373,6 +1377,7 @@ void domain_resume(struct domain *d)
> >          v->paused_for_shutdown =3D 0;
> >      }
> >
> > + fail:
> >      spin_unlock(&d->shutdown_lock);
> >
> >      domain_unpause(d);
> > diff --git a/xen/include/xen/suspend.h b/xen/include/xen/suspend.h
> > new file mode 100644
> > index 0000000000..53f75fd6ad
> > --- /dev/null
> > +++ b/xen/include/xen/suspend.h
> > @@ -0,0 +1,15 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +#ifndef __XEN_SUSPEND_H__
> There should be no double underscores in guards
>
> > +#define __XEN_SUSPEND_H__
> > +
> > +#if __has_include(<asm/suspend.h>)
> > +#include <asm/suspend.h>
> > +#else
> > +static inline int arch_domain_resume(struct domain *d)
> > +{
> > +    return 0;
> > +}
> > +#endif
> > +
> Stray whiteline?
>
> > +
> > +#endif /* __XEN_SUSPEND_H__ */
> Missing emacs block?
>
> Did you run MISRA scan on this patch?

The ECLAIR MISRA scan was run via GitLab CI for this branch by my
colleague:

https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/2167389661

As far as I can see, there are no new MISRA violations reported for the
code touched by this patch.


~Mykola

>
> ~Michal
>
>


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 13:09:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 13:09:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165962.1492653 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLhvu-0004bs-BN; Wed, 19 Nov 2025 13:09:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165962.1492653; Wed, 19 Nov 2025 13:09:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLhvu-0004bD-6y; Wed, 19 Nov 2025 13:09:14 +0000
Received: by outflank-mailman (input) for mailman id 1165962;
 Wed, 19 Nov 2025 13:09:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=aBqX=53=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vLhvs-0003iP-LP
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 13:09:12 +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 ef1b7b7f-c548-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 14:09:09 +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-101-fS5PrNXsNZ2b5hmC7UdEAQ-1; Wed,
 19 Nov 2025 08:09:03 -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 5B9A918AB40A; Wed, 19 Nov 2025 13:09:00 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 848921800361; Wed, 19 Nov 2025 13:08:58 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 7F93A21E6742; Wed, 19 Nov 2025 14:08:55 +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: ef1b7b7f-c548-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763557748;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=k57r6YVNx8uUAT391iV07rPUraOx5YF9nTsOj6DrfB4=;
	b=Tt0TfMGE2AHPiugLQNMx9o5JoOf3aQAkcxFwHLOGjLA4MUpd3eqlYwJnC32cc5Xq9hPJ4f
	qosftrXN62d6I695YNv7cE82jTf0ESdVu+xbteI01eXXx9q0dVtLNfep9Fmle0+RKPA7hJ
	G7bDwgRoBkvvELmQXhKwgoGkR9bQP9M=
X-MC-Unique: fS5PrNXsNZ2b5hmC7UdEAQ-1
X-Mimecast-MFC-AGG-ID: fS5PrNXsNZ2b5hmC7UdEAQ_1763557740
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com,
	hreitz@redhat.com,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	gengdongjiu1@gmail.com,
	peter.maydell@linaro.org,
	alistair@alistair23.me,
	edgar.iglesias@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	berrange@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	eblake@redhat.com,
	vsementsov@yandex-team.ru,
	eduardo@habkost.net,
	marcel.apfelbaum@gmail.com,
	philmd@linaro.org,
	wangyanan55@huawei.com,
	zhao1.liu@intel.com,
	qemu-block@nongnu.org,
	qemu-arm@nongnu.org,
	qemu-ppc@nongnu.org,
	qemu-riscv@nongnu.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH 2/5] hw/nvram/xlnx-bbram: More idiomatic and simpler error reporting
Date: Wed, 19 Nov 2025 14:08:52 +0100
Message-ID: <20251119130855.105479-3-armbru@redhat.com>
In-Reply-To: <20251119130855.105479-1-armbru@redhat.com>
References: <20251119130855.105479-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111

bbram_bdrv_error() interpolates a "detail" string into a template with
error_setg_errno(), then reports the result with error_report().
Produces error messages with an unwanted '.':

    BLK-NAME: BBRAM backstore DETAIL failed.: STERROR

Replace both calls of bbram_bdrv_error() by straightforward
error_report(), and drop the function.  This is less code, easier to
read, and the error message is more greppable.

Also delete the unwanted '.'.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 hw/nvram/xlnx-bbram.c | 18 ++++--------------
 1 file changed, 4 insertions(+), 14 deletions(-)

diff --git a/hw/nvram/xlnx-bbram.c b/hw/nvram/xlnx-bbram.c
index 22aefbc240..fe289bad9d 100644
--- a/hw/nvram/xlnx-bbram.c
+++ b/hw/nvram/xlnx-bbram.c
@@ -88,18 +88,6 @@ static bool bbram_pgm_enabled(XlnxBBRam *s)
     return ARRAY_FIELD_EX32(s->regs, BBRAM_STATUS, PGM_MODE) != 0;
 }
 
-static void bbram_bdrv_error(XlnxBBRam *s, int rc, gchar *detail)
-{
-    Error *errp = NULL;
-
-    error_setg_errno(&errp, -rc, "%s: BBRAM backstore %s failed.",
-                     blk_name(s->blk), detail);
-    error_report("%s", error_get_pretty(errp));
-    error_free(errp);
-
-    g_free(detail);
-}
-
 static void bbram_bdrv_read(XlnxBBRam *s, Error **errp)
 {
     uint32_t *ram = &s->regs[R_BBRAM_0];
@@ -162,7 +150,8 @@ static void bbram_bdrv_sync(XlnxBBRam *s, uint64_t hwaddr)
     offset = hwaddr - A_BBRAM_0;
     rc = blk_pwrite(s->blk, offset, 4, &le32, 0);
     if (rc < 0) {
-        bbram_bdrv_error(s, rc, g_strdup_printf("write to offset %u", offset));
+        error_report("%s: BBRAM backstore write to offset %u failed: %s",
+                     blk_name(s->blk), offset, strerror(-rc));
     }
 }
 
@@ -178,7 +167,8 @@ static void bbram_bdrv_zero(XlnxBBRam *s)
 
     rc = blk_make_zero(s->blk, 0);
     if (rc < 0) {
-        bbram_bdrv_error(s, rc, g_strdup("zeroizing"));
+        error_report("%s: BBRAM backstore zeroizing failed: %s",
+                     blk_name(s->blk), strerror(-rc));
     }
 
     /* Restore bbram8 if it is non-zero */
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 13:09:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 13:09:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165960.1492632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLhvs-0004AK-P2; Wed, 19 Nov 2025 13:09:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165960.1492632; Wed, 19 Nov 2025 13: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 1vLhvs-0004A8-Lm; Wed, 19 Nov 2025 13:09:12 +0000
Received: by outflank-mailman (input) for mailman id 1165960;
 Wed, 19 Nov 2025 13:09: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=aBqX=53=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vLhvr-0003iP-4Q
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 13:09:11 +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 ef988f31-c548-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 14:09:10 +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-55-fWja6XeyMdqUfO5drj9beA-1; Wed,
 19 Nov 2025 08:09:05 -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 37A2A1800343; Wed, 19 Nov 2025 13:09:00 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 4FCEF1800451; Wed, 19 Nov 2025 13:08:58 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 79C9C21E6935; Wed, 19 Nov 2025 14:08:55 +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: ef988f31-c548-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763557749;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=D6teciZy8520fQI1QLTUyVGW20QyuWqmo6xWXoR980s=;
	b=NwMAWEPkE0StnviJUnR3Qs1gjynzrnenKXqiwyX9jtEbP3VlX+BtvTXUE/TzEG3nGjuJ6s
	Ky/wFjVf5PNFhPx56TlPqgmEQSG9xlEizZI3F1F7iEsAAP5Uzxav/75UBR5bXD9/znXyZ8
	AL2HOcKHrclsfjKEC1cw6bJEtz3cnPM=
X-MC-Unique: fWja6XeyMdqUfO5drj9beA-1
X-Mimecast-MFC-AGG-ID: fWja6XeyMdqUfO5drj9beA_1763557740
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com,
	hreitz@redhat.com,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	gengdongjiu1@gmail.com,
	peter.maydell@linaro.org,
	alistair@alistair23.me,
	edgar.iglesias@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	berrange@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	eblake@redhat.com,
	vsementsov@yandex-team.ru,
	eduardo@habkost.net,
	marcel.apfelbaum@gmail.com,
	philmd@linaro.org,
	wangyanan55@huawei.com,
	zhao1.liu@intel.com,
	qemu-block@nongnu.org,
	qemu-arm@nongnu.org,
	qemu-ppc@nongnu.org,
	qemu-riscv@nongnu.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH 1/5] hw/core/loader: Make load_elf_hdr() return bool, simplify caller
Date: Wed, 19 Nov 2025 14:08:51 +0100
Message-ID: <20251119130855.105479-2-armbru@redhat.com>
In-Reply-To: <20251119130855.105479-1-armbru@redhat.com>
References: <20251119130855.105479-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 include/hw/loader.h |  4 +++-
 hw/arm/boot.c       |  6 +-----
 hw/core/loader.c    |  8 ++++++--
 hw/riscv/spike.c    | 10 +---------
 4 files changed, 11 insertions(+), 17 deletions(-)

diff --git a/include/hw/loader.h b/include/hw/loader.h
index d035e72748..6f91703503 100644
--- a/include/hw/loader.h
+++ b/include/hw/loader.h
@@ -188,8 +188,10 @@ ssize_t load_elf(const char *filename,
  *
  * Inspect an ELF file's header. Read its full header contents into a
  * buffer and/or determine if the ELF is 64bit.
+ *
+ * Returns true on success, false on failure.
  */
-void load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp);
+bool load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp);
 
 ssize_t load_aout(const char *filename, hwaddr addr, int max_sz,
                   bool big_endian, hwaddr target_page_size);
diff --git a/hw/arm/boot.c b/hw/arm/boot.c
index b91660208f..06b303aab8 100644
--- a/hw/arm/boot.c
+++ b/hw/arm/boot.c
@@ -766,16 +766,12 @@ static ssize_t arm_load_elf(struct arm_boot_info *info, uint64_t *pentry,
     int data_swab = 0;
     int elf_data_order;
     ssize_t ret;
-    Error *err = NULL;
 
-
-    load_elf_hdr(info->kernel_filename, &elf_header, &elf_is64, &err);
-    if (err) {
+    if (!load_elf_hdr(info->kernel_filename, &elf_header, &elf_is64, NULL)) {
         /*
          * If the file is not an ELF file we silently return.
          * The caller will fall back to try other formats.
          */
-        error_free(err);
         return -1;
     }
 
diff --git a/hw/core/loader.c b/hw/core/loader.c
index 590c5b02aa..10687fe1c8 100644
--- a/hw/core/loader.c
+++ b/hw/core/loader.c
@@ -364,8 +364,9 @@ const char *load_elf_strerror(ssize_t error)
     }
 }
 
-void load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp)
+bool load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp)
 {
+    bool ok = false;
     int fd;
     uint8_t e_ident_local[EI_NIDENT];
     uint8_t *e_ident;
@@ -380,7 +381,7 @@ void load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp)
     fd = open(filename, O_RDONLY | O_BINARY);
     if (fd < 0) {
         error_setg_errno(errp, errno, "Failed to open file: %s", filename);
-        return;
+        return false;
     }
     if (read(fd, hdr, EI_NIDENT) != EI_NIDENT) {
         error_setg_errno(errp, errno, "Failed to read file: %s", filename);
@@ -415,8 +416,11 @@ void load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp)
         off += br;
     }
 
+    ok = true;
+
 fail:
     close(fd);
+    return ok;
 }
 
 /* return < 0 if error, otherwise the number of bytes loaded in memory */
diff --git a/hw/riscv/spike.c b/hw/riscv/spike.c
index b0bab3fe00..8531e1d121 100644
--- a/hw/riscv/spike.c
+++ b/hw/riscv/spike.c
@@ -180,15 +180,7 @@ static void create_fdt(SpikeState *s, const MemMapEntry *memmap,
 
 static bool spike_test_elf_image(char *filename)
 {
-    Error *err = NULL;
-
-    load_elf_hdr(filename, NULL, NULL, &err);
-    if (err) {
-        error_free(err);
-        return false;
-    } else {
-        return true;
-    }
+    return load_elf_hdr(filename, NULL, NULL, NULL);
 }
 
 static void spike_board_init(MachineState *machine)
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 13:09:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 13:09:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165958.1492613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLhvq-0003ic-78; Wed, 19 Nov 2025 13:09:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165958.1492613; Wed, 19 Nov 2025 13:09:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLhvq-0003iV-4F; Wed, 19 Nov 2025 13:09:10 +0000
Received: by outflank-mailman (input) for mailman id 1165958;
 Wed, 19 Nov 2025 13:09:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=aBqX=53=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vLhvo-0003iP-Iw
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 13:09:08 +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 ed5bf4fc-c548-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 14:09:07 +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-606-xOlTkhEoOF61yJ6X7umJXA-1; Wed,
 19 Nov 2025 08:09:04 -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 4A0641800372; Wed, 19 Nov 2025 13:09:00 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 4F924300A88D; Wed, 19 Nov 2025 13:08:58 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 89E3A21E66F8; Wed, 19 Nov 2025 14:08:55 +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: ed5bf4fc-c548-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763557745;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=tllD2ZsIo6gOfJev+IZeA8jqBYAlRgDihWUmymBakcU=;
	b=eImq2/naRkM4GVvMhLR9EW9t3d4ojeKrjAR9ktSQ9fnP35GBKvo54p2Qnyk/UgxyryamI0
	hTBaQ5WEk9JjRpbddN8is/DfdEGGgk8kEgdIvS7O4aVlZUg7oUrNyfjQAdCLVCvlXezAba
	R2kSN68YnCL13RQjhi2FDlj1UXo9ZF0=
X-MC-Unique: xOlTkhEoOF61yJ6X7umJXA-1
X-Mimecast-MFC-AGG-ID: xOlTkhEoOF61yJ6X7umJXA_1763557741
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com,
	hreitz@redhat.com,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	gengdongjiu1@gmail.com,
	peter.maydell@linaro.org,
	alistair@alistair23.me,
	edgar.iglesias@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	berrange@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	eblake@redhat.com,
	vsementsov@yandex-team.ru,
	eduardo@habkost.net,
	marcel.apfelbaum@gmail.com,
	philmd@linaro.org,
	wangyanan55@huawei.com,
	zhao1.liu@intel.com,
	qemu-block@nongnu.org,
	qemu-arm@nongnu.org,
	qemu-ppc@nongnu.org,
	qemu-riscv@nongnu.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH 4/5] error: error_free(NULL) is safe, drop unnecessary conditionals
Date: Wed, 19 Nov 2025 14:08:54 +0100
Message-ID: <20251119130855.105479-5-armbru@redhat.com>
In-Reply-To: <20251119130855.105479-1-armbru@redhat.com>
References: <20251119130855.105479-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 hw/acpi/pcihp.c             | 4 +---
 io/channel-websock.c        | 4 +---
 io/task.c                   | 4 +---
 migration/migration.c       | 6 ++----
 tests/unit/test-smp-parse.c | 5 +----
 5 files changed, 6 insertions(+), 17 deletions(-)

diff --git a/hw/acpi/pcihp.c b/hw/acpi/pcihp.c
index 4922bbc778..87162ff2c0 100644
--- a/hw/acpi/pcihp.c
+++ b/hw/acpi/pcihp.c
@@ -62,9 +62,7 @@ static int acpi_pcihp_get_bsel(PCIBus *bus)
                                              &local_err);
 
     if (local_err || bsel >= ACPI_PCIHP_MAX_HOTPLUG_BUS) {
-        if (local_err) {
-            error_free(local_err);
-        }
+        error_free(local_err);
         return -1;
     } else {
         return bsel;
diff --git a/io/channel-websock.c b/io/channel-websock.c
index cb4dafdebb..d0929ba232 100644
--- a/io/channel-websock.c
+++ b/io/channel-websock.c
@@ -932,9 +932,7 @@ static void qio_channel_websock_finalize(Object *obj)
     if (ioc->io_tag) {
         g_source_remove(ioc->io_tag);
     }
-    if (ioc->io_err) {
-        error_free(ioc->io_err);
-    }
+    error_free(ioc->io_err);
     object_unref(OBJECT(ioc->master));
 }
 
diff --git a/io/task.c b/io/task.c
index 451f26f8b4..da79d31782 100644
--- a/io/task.c
+++ b/io/task.c
@@ -91,9 +91,7 @@ static void qio_task_free(QIOTask *task)
     if (task->destroyResult) {
         task->destroyResult(task->result);
     }
-    if (task->err) {
-        error_free(task->err);
-    }
+    error_free(task->err);
     object_unref(task->source);
 
     qemu_mutex_unlock(&task->thread_lock);
diff --git a/migration/migration.c b/migration/migration.c
index c2daab6bdd..3160e24220 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1569,10 +1569,8 @@ bool migrate_has_error(MigrationState *s)
 static void migrate_error_free(MigrationState *s)
 {
     QEMU_LOCK_GUARD(&s->error_mutex);
-    if (s->error) {
-        error_free(s->error);
-        s->error = NULL;
-    }
+    error_free(s->error);
+    s->error = NULL;
 }
 
 static void migration_connect_set_error(MigrationState *s, const Error *error)
diff --git a/tests/unit/test-smp-parse.c b/tests/unit/test-smp-parse.c
index 326045ecbb..34082c1465 100644
--- a/tests/unit/test-smp-parse.c
+++ b/tests/unit/test-smp-parse.c
@@ -875,10 +875,7 @@ static void check_parse(MachineState *ms, const SMPConfiguration *config,
                config_str, expect_err, output_topo_str);
 
 end:
-    if (err != NULL) {
-        error_free(err);
-    }
-
+    error_free(err);
     abort();
 }
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 13:09:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 13:09:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165961.1492639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLhvt-0004Dj-4J; Wed, 19 Nov 2025 13:09:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165961.1492639; Wed, 19 Nov 2025 13:09: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 1vLhvs-0004DX-Uu; Wed, 19 Nov 2025 13:09:12 +0000
Received: by outflank-mailman (input) for mailman id 1165961;
 Wed, 19 Nov 2025 13:09: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=aBqX=53=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vLhvr-0003w5-KG
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 13:09:11 +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 ee9c0f27-c548-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 14:09:08 +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-151-AWehYKanNrqJKV5WNRli2g-1; Wed,
 19 Nov 2025 08:09: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-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 664D91956096; Wed, 19 Nov 2025 13:09:00 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 6C6D3195608E; Wed, 19 Nov 2025 13:08:58 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 84D1321E66EF; Wed, 19 Nov 2025 14:08:55 +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: ee9c0f27-c548-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763557747;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=Q2/KZiPL6jFf6ZEf6LuTfoZJ9VDQwSYmfYUw5h6FWj8=;
	b=d9jsWNs817ctZjQ2q7OG5AQdAQcwqVhcdYVpF+G+WzI+f42B55AFI6X2oaGbFLYKbxz7lg
	JywkaTCzc2VHpMhgAY0sPBoRW1BdCSgwXKcoF4HLkpBEk+hNhPKjEUMte4mcJ02mowrhlc
	lHWSxSZAVHBwM4b0uy1iGjjlX0CqO/U=
X-MC-Unique: AWehYKanNrqJKV5WNRli2g-1
X-Mimecast-MFC-AGG-ID: AWehYKanNrqJKV5WNRli2g_1763557741
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com,
	hreitz@redhat.com,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	gengdongjiu1@gmail.com,
	peter.maydell@linaro.org,
	alistair@alistair23.me,
	edgar.iglesias@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	berrange@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	eblake@redhat.com,
	vsementsov@yandex-team.ru,
	eduardo@habkost.net,
	marcel.apfelbaum@gmail.com,
	philmd@linaro.org,
	wangyanan55@huawei.com,
	zhao1.liu@intel.com,
	qemu-block@nongnu.org,
	qemu-arm@nongnu.org,
	qemu-ppc@nongnu.org,
	qemu-riscv@nongnu.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH 3/5] nbd/client-connection: Replace error_propagate() by assignment
Date: Wed, 19 Nov 2025 14:08:53 +0100
Message-ID: <20251119130855.105479-4-armbru@redhat.com>
In-Reply-To: <20251119130855.105479-1-armbru@redhat.com>
References: <20251119130855.105479-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17

connect_thread_func() sets a variable to null, then error_propagate()s
an Error * to it.  This is a roundabout way to assign the Error * to
it, so replace it by just that.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 nbd/client-connection.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/nbd/client-connection.c b/nbd/client-connection.c
index 79ea97e4cc..6a4f080717 100644
--- a/nbd/client-connection.c
+++ b/nbd/client-connection.c
@@ -207,8 +207,7 @@ static void *connect_thread_func(void *opaque)
         qemu_mutex_lock(&conn->mutex);
 
         error_free(conn->err);
-        conn->err = NULL;
-        error_propagate(&conn->err, local_err);
+        conn->err = local_err;
 
         if (ret < 0) {
             object_unref(OBJECT(conn->sioc));
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 13:09:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 13:09:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165959.1492623 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLhvr-0003wE-E7; Wed, 19 Nov 2025 13:09:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165959.1492623; Wed, 19 Nov 2025 13:09:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLhvr-0003w7-Ao; Wed, 19 Nov 2025 13:09:11 +0000
Received: by outflank-mailman (input) for mailman id 1165959;
 Wed, 19 Nov 2025 13: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=aBqX=53=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vLhvq-0003iP-Pd
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 13:09:10 +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 ef6e9ebf-c548-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 14:09:10 +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-232-WePI68LnPQCITVv1F2bMiQ-1; Wed,
 19 Nov 2025 08:09:04 -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 6E5D219560AD; Wed, 19 Nov 2025 13:09:00 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 720CA180047F; Wed, 19 Nov 2025 13:08:58 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 766DA21E6A27; Wed, 19 Nov 2025 14:08:55 +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: ef6e9ebf-c548-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763557749;
	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=Js6BO4VeBey2OiZe7AjXj3GXLYuEHV85DWPD2FEQA2I=;
	b=hWZ7Yv65+kQoFiDL2iLN9JWViSTd+Y+g80ACGb3/OnRsAd/izKPt0dgmcs3IVaF/Z5M6uu
	PkJbFkmiN82vP2Y0MxhmaJMMOUyi1j5Igv+1zrtbsLBNEWUX/JiJlcImFFZxVQvEje68YP
	prNA5LHB9yzPIcZ4GBzLwOqaoA5WTf4=
X-MC-Unique: WePI68LnPQCITVv1F2bMiQ-1
X-Mimecast-MFC-AGG-ID: WePI68LnPQCITVv1F2bMiQ_1763557741
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com,
	hreitz@redhat.com,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	gengdongjiu1@gmail.com,
	peter.maydell@linaro.org,
	alistair@alistair23.me,
	edgar.iglesias@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	berrange@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	eblake@redhat.com,
	vsementsov@yandex-team.ru,
	eduardo@habkost.net,
	marcel.apfelbaum@gmail.com,
	philmd@linaro.org,
	wangyanan55@huawei.com,
	zhao1.liu@intel.com,
	qemu-block@nongnu.org,
	qemu-arm@nongnu.org,
	qemu-ppc@nongnu.org,
	qemu-riscv@nongnu.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH 0/5] A bit of cleanup around Error
Date: Wed, 19 Nov 2025 14:08:50 +0100
Message-ID: <20251119130855.105479-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111

Note: the last patch adds a drive-by FIXME.  I asked for advice on how
to fix it:

    Subject: Incorrect error handling in xen_enable_tpm()
    To: qemu-devel@nongnu.org
    Cc: Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD <anthony@xenproject.org>, Paul
     Durrant <paul@xen.org>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
     xen-devel@lists.xenproject.org, Vikram Garhwal <vikram.garhwal@amd.com> 
    Date: Fri, 14 Nov 2025 10:16:58 +0100
    Message-ID: <87jyzt0y9h.fsf@pond.sub.org>

No reply so far.

Markus Armbruster (5):
  hw/core/loader: Make load_elf_hdr() return bool, simplify caller
  hw/nvram/xlnx-bbram: More idiomatic and simpler error reporting
  nbd/client-connection: Replace error_propagate() by assignment
  error: error_free(NULL) is safe, drop unnecessary conditionals
  error: Consistently name Error * objects err, and not errp

 include/hw/loader.h         |  4 +++-
 block/crypto.c              |  8 ++++----
 hw/acpi/ghes.c              |  8 ++++----
 hw/acpi/pcihp.c             |  4 +---
 hw/arm/boot.c               |  6 +-----
 hw/core/loader.c            |  8 ++++++--
 hw/nvram/xlnx-bbram.c       | 18 ++++--------------
 hw/ppc/spapr.c              | 16 ++++++++--------
 hw/riscv/spike.c            | 10 +---------
 hw/xen/xen-pvh-common.c     | 13 ++++++++++---
 io/channel-websock.c        |  4 +---
 io/task.c                   |  4 +---
 migration/migration.c       |  6 ++----
 nbd/client-connection.c     |  3 +--
 nbd/common.c                |  6 +++---
 tests/unit/test-smp-parse.c |  5 +----
 16 files changed, 51 insertions(+), 72 deletions(-)

-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 13:09:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 13:09:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1165963.1492663 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLhvx-0004vo-Lj; Wed, 19 Nov 2025 13:09:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1165963.1492663; Wed, 19 Nov 2025 13:09:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLhvx-0004vf-Hz; Wed, 19 Nov 2025 13:09:17 +0000
Received: by outflank-mailman (input) for mailman id 1165963;
 Wed, 19 Nov 2025 13:09: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=aBqX=53=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vLhvw-0003w5-Gs
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 13:09:16 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f1fd0a30-c548-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 14:09:14 +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-327-4l80z0zhO3KwJirOWaUm4g-1; Wed,
 19 Nov 2025 08:09:07 -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 DD5B218AB410; Wed, 19 Nov 2025 13:09:03 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 17C931800346; Wed, 19 Nov 2025 13:09:03 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 8F4A421E66A9; Wed, 19 Nov 2025 14:08:55 +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: f1fd0a30-c548-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763557753;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=AWrrhvA/SQYaSu88z25wZQ2Z8oavREpawBAonXTqbBU=;
	b=Z2QkO9d2OB5P73b1FJ/W/pbyqYnYWxaEmrg75mSgx11nyouOQJlUjTGXeXWvzN0LDbsddy
	VsWKpT1iL5j6DZ16xt1F8yKQih7ac8B3aq6oRCfMPFd7Is4eKIHlbjWjvtcHVsNk6RA+rY
	clc9lvzONz3Ee3ngptSzR2IqaAu29z8=
X-MC-Unique: 4l80z0zhO3KwJirOWaUm4g-1
X-Mimecast-MFC-AGG-ID: 4l80z0zhO3KwJirOWaUm4g_1763557744
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com,
	hreitz@redhat.com,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	gengdongjiu1@gmail.com,
	peter.maydell@linaro.org,
	alistair@alistair23.me,
	edgar.iglesias@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	berrange@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	eblake@redhat.com,
	vsementsov@yandex-team.ru,
	eduardo@habkost.net,
	marcel.apfelbaum@gmail.com,
	philmd@linaro.org,
	wangyanan55@huawei.com,
	zhao1.liu@intel.com,
	qemu-block@nongnu.org,
	qemu-arm@nongnu.org,
	qemu-ppc@nongnu.org,
	qemu-riscv@nongnu.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH 5/5] error: Consistently name Error * objects err, and not errp
Date: Wed, 19 Nov 2025 14:08:55 +0100
Message-ID: <20251119130855.105479-6-armbru@redhat.com>
In-Reply-To: <20251119130855.105479-1-armbru@redhat.com>
References: <20251119130855.105479-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93

This touches code in xen_enable_tpm() that is obviously wrong.  Since
I don't know how to fix it properly, I'm adding a FIXME there.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 block/crypto.c          |  8 ++++----
 hw/acpi/ghes.c          |  8 ++++----
 hw/ppc/spapr.c          | 16 ++++++++--------
 hw/xen/xen-pvh-common.c | 13 ++++++++++---
 nbd/common.c            |  6 +++---
 5 files changed, 29 insertions(+), 22 deletions(-)

diff --git a/block/crypto.c b/block/crypto.c
index b97d027444..36abb7af46 100644
--- a/block/crypto.c
+++ b/block/crypto.c
@@ -938,14 +938,14 @@ static void GRAPH_RDLOCK
 block_crypto_amend_cleanup(BlockDriverState *bs)
 {
     BlockCrypto *crypto = bs->opaque;
-    Error *errp = NULL;
+    Error *err = NULL;
 
     /* release exclusive read/write permissions to the underlying file */
     crypto->updating_keys = false;
-    bdrv_child_refresh_perms(bs, bs->file, &errp);
+    bdrv_child_refresh_perms(bs, bs->file, &err);
 
-    if (errp) {
-        error_report_err(errp);
+    if (err) {
+        error_report_err(err);
     }
 }
 
diff --git a/hw/acpi/ghes.c b/hw/acpi/ghes.c
index 06555905ce..841a36e370 100644
--- a/hw/acpi/ghes.c
+++ b/hw/acpi/ghes.c
@@ -563,7 +563,7 @@ int acpi_ghes_memory_errors(AcpiGhesState *ags, uint16_t source_id,
     const uint8_t guid[] =
           UUID_LE(0xA5BC1114, 0x6F64, 0x4EDE, 0xB8, 0x63, 0x3E, 0x83, \
                   0xED, 0x7C, 0x83, 0xB1);
-    Error *errp = NULL;
+    Error *err = NULL;
     int data_length;
     GArray *block;
 
@@ -583,12 +583,12 @@ int acpi_ghes_memory_errors(AcpiGhesState *ags, uint16_t source_id,
     acpi_ghes_build_append_mem_cper(block, physical_address);
 
     /* Report the error */
-    ghes_record_cper_errors(ags, block->data, block->len, source_id, &errp);
+    ghes_record_cper_errors(ags, block->data, block->len, source_id, &err);
 
     g_array_free(block, true);
 
-    if (errp) {
-        error_report_err(errp);
+    if (err) {
+        error_report_err(err);
         return -1;
     }
 
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 99b843ba2f..db5e98e458 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -2847,7 +2847,7 @@ static void spapr_machine_init(MachineState *machine)
     int i;
     MemoryRegion *sysmem = get_system_memory();
     long load_limit, fw_size;
-    Error *errp = NULL;
+    Error *err = NULL;
     NICInfo *nd;
 
     if (!filename) {
@@ -2871,7 +2871,7 @@ static void spapr_machine_init(MachineState *machine)
     /* Determine capabilities to run with */
     spapr_caps_init(spapr);
 
-    kvmppc_check_papr_resize_hpt(&errp);
+    kvmppc_check_papr_resize_hpt(&err);
     if (spapr->resize_hpt == SPAPR_RESIZE_HPT_DEFAULT) {
         /*
          * If the user explicitly requested a mode we should either
@@ -2879,10 +2879,10 @@ static void spapr_machine_init(MachineState *machine)
          * it's not set explicitly, we reset our mode to something
          * that works
          */
-        if (errp) {
+        if (err) {
             spapr->resize_hpt = SPAPR_RESIZE_HPT_DISABLED;
-            error_free(errp);
-            errp = NULL;
+            error_free(err);
+            err = NULL;
         } else {
             spapr->resize_hpt = smc->resize_hpt_default;
         }
@@ -2890,14 +2890,14 @@ static void spapr_machine_init(MachineState *machine)
 
     assert(spapr->resize_hpt != SPAPR_RESIZE_HPT_DEFAULT);
 
-    if ((spapr->resize_hpt != SPAPR_RESIZE_HPT_DISABLED) && errp) {
+    if ((spapr->resize_hpt != SPAPR_RESIZE_HPT_DISABLED) && err) {
         /*
          * User requested HPT resize, but this host can't supply it.  Bail out
          */
-        error_report_err(errp);
+        error_report_err(err);
         exit(1);
     }
-    error_free(errp);
+    error_free(err);
 
     spapr->rma_size = spapr_rma_size(spapr, &error_fatal);
 
diff --git a/hw/xen/xen-pvh-common.c b/hw/xen/xen-pvh-common.c
index b93ff80c85..3e62ec09d0 100644
--- a/hw/xen/xen-pvh-common.c
+++ b/hw/xen/xen-pvh-common.c
@@ -101,7 +101,7 @@ static void xen_create_virtio_mmio_devices(XenPVHMachineState *s)
 #ifdef CONFIG_TPM
 static void xen_enable_tpm(XenPVHMachineState *s)
 {
-    Error *errp = NULL;
+    Error *err = NULL;
     DeviceState *dev;
     SysBusDevice *busdev;
 
@@ -111,8 +111,15 @@ static void xen_enable_tpm(XenPVHMachineState *s)
         return;
     }
     dev = qdev_new(TYPE_TPM_TIS_SYSBUS);
-    object_property_set_link(OBJECT(dev), "tpmdev", OBJECT(be), &errp);
-    object_property_set_str(OBJECT(dev), "tpmdev", be->id, &errp);
+    /*
+     * FIXME This use of &err is is wrong.  If both calls fail, the
+     * second will trip error_setv()'s assertion.  If just one call
+     * fails, we leak an Error object.  Setting the same property
+     * twice (first to a QOM path, then to an ID string) is almost
+     * certainly wrong, too.
+     */
+    object_property_set_link(OBJECT(dev), "tpmdev", OBJECT(be), &err);
+    object_property_set_str(OBJECT(dev), "tpmdev", be->id, &err);
     busdev = SYS_BUS_DEVICE(dev);
     sysbus_realize_and_unref(busdev, &error_fatal);
     sysbus_mmio_map(busdev, 0, s->cfg.tpm.base);
diff --git a/nbd/common.c b/nbd/common.c
index 2a133a66c3..f43cbaa15b 100644
--- a/nbd/common.c
+++ b/nbd/common.c
@@ -282,10 +282,10 @@ void nbd_set_socket_send_buffer(QIOChannelSocket *sioc)
 #ifdef UNIX_STREAM_SOCKET_SEND_BUFFER_SIZE
     if (sioc->localAddr.ss_family == AF_UNIX) {
         size_t size = UNIX_STREAM_SOCKET_SEND_BUFFER_SIZE;
-        Error *errp = NULL;
+        Error *err = NULL;
 
-        if (qio_channel_socket_set_send_buffer(sioc, size, &errp) < 0) {
-            warn_report_err(errp);
+        if (qio_channel_socket_set_send_buffer(sioc, size, &err) < 0) {
+            warn_report_err(err);
         }
     }
 #endif /* UNIX_STREAM_SOCKET_SEND_BUFFER_SIZE */
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 13:22:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 13:22:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166030.1492673 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLi8Y-00011q-NY; Wed, 19 Nov 2025 13:22:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166030.1492673; Wed, 19 Nov 2025 13:22: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 1vLi8Y-00011j-Kj; Wed, 19 Nov 2025 13:22:18 +0000
Received: by outflank-mailman (input) for mailman id 1166030;
 Wed, 19 Nov 2025 13:22: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=oRf7=53=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vLi8X-00011c-4S
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 13:22:17 +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 c3e72f08-c54a-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 14:22:16 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS1PR03MB7989.namprd03.prod.outlook.com (2603:10b6:8:21b::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 13:22:13 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.009; Wed, 19 Nov 2025
 13:22:13 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3e72f08-c54a-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eEJp9XEX0TQZpIkFqLFwpHhqXQC11rYrLDNvxjrZ64gGa2t54Ebcje0mcWHQl1rPJFasQNT4rVz0paOsgY5fVlbmVCnembpug7+bEsn6q7Q8g+maBwUN1qM29FYNqyB8jXMtw9L1JjBTyRlbKRgpgus+9EDlxDkCI1oQASNxm2K3gn4KUMh2LYGzXSW4GigtRU1sejw6UIX8+G8n8PlOBGXcuR61Y/Wg6gEtkzv8wYMkcOv/h2Yv3MojTWy1XLSAQ2OKddCgbcj4gdh94blWJCozA0lS0v0lDtk/9Ke9KuBvdxbPS81t7v5Y0eYyr5pYiSZKcP2AxxW3vlhHWcd3Mw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aihNnCGI4tJ8zoQ72ytyPTqMzPj/HcLyikTFHTHi3gQ=;
 b=ZgVQ+WUBwwrvMNqTgUeIfuXJ3QnbJMU4jdomOmpcThYGLMBNOj1xYyB9cZsXSu1FRcLswrCW+pgeR02pNJjyUmgQxRebGxkW7P9x3hZBBuGeQdjQMQ2v9aVGrdSpOoAZlaitF1CvS38DLjsNi8zSRlm6ab2xs0Na/mpjIPjH1E9hlbNYV6ECnXXWyFUBpoHFww3z8Vgmn3H5E2mM1QhiLrKtTkP+cEvHBzWVnrNOvSZ6asJvV2spckxPvAQRf2wJ84YwBv+zINGVxYif/gwUXlyDkEwB8DU09q3MSf9/Fb9b8tzk3t0649aOWsDCQYsKCqYFNITkXXNvyE4hJrOqNw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=aihNnCGI4tJ8zoQ72ytyPTqMzPj/HcLyikTFHTHi3gQ=;
 b=KQqrnvw5omu8qgKLy6Abb15eVBozBqLVhmpOXo7zWo88rdO1yxDAySvjyCm3OyfjGVOUWAxWCOg7A4VFTDWhnz8OUnWHHjlF2HMPs2cmLZaoddatPZ1Ub2uDiFQ1E7mzbc9Y0X7VGtC6RhkXD3gX4eaAtCCf1jzMwVcNOhxjCvA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <3ffe11b9-db81-4930-aefa-e55d758645bf@citrix.com>
Date: Wed, 19 Nov 2025 13:22:06 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/5] error: Consistently name Error * objects err, and not
 errp
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: kwolf@redhat.com, hreitz@redhat.com, mst@redhat.com, imammedo@redhat.com,
 anisinha@redhat.com, gengdongjiu1@gmail.com, peter.maydell@linaro.org,
 alistair@alistair23.me, edgar.iglesias@gmail.com, npiggin@gmail.com,
 harshpb@linux.ibm.com, palmer@dabbelt.com, liwei1518@gmail.com,
 dbarboza@ventanamicro.com, zhiwei_liu@linux.alibaba.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 berrange@redhat.com, peterx@redhat.com, farosas@suse.de, eblake@redhat.com,
 vsementsov@yandex-team.ru, eduardo@habkost.net, marcel.apfelbaum@gmail.com,
 philmd@linaro.org, wangyanan55@huawei.com, zhao1.liu@intel.com,
 qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org,
 qemu-riscv@nongnu.org, xen-devel@lists.xenproject.org
References: <20251119130855.105479-1-armbru@redhat.com>
 <20251119130855.105479-6-armbru@redhat.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251119130855.105479-6-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0326.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18c::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_|DS1PR03MB7989:EE_
X-MS-Office365-Filtering-Correlation-Id: 38c1ebd8-acb5-4a89-379e-08de276ea6dc
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?U1VFeFE4alBsRm04SVcweEhSeG5zUjE5L01pYXVqM0VLdytpNnNaN1NGa0x3?=
 =?utf-8?B?YXIrZURDM0dnaFZCTHd5STh4YlFvMGtBK0VNQ2UyYVY0aWVZK2pYdnQvR1h4?=
 =?utf-8?B?eHU2Uis2Rzl6OGJaMVhwTzRvb0dmb3JNVUhYYWx5dVpUcUtYS1A1aG5UWEVB?=
 =?utf-8?B?dXRVNjN0elRQWXExaUpWbkE4b3NxVzVMM2R0blRuSW82bHFob1dSVXJvK0Ny?=
 =?utf-8?B?ZXdITEtUVFdaT0Q1OHJhRFZwaWZoZ2NoUkgvek1QRlhRbXo1MVZRVXdyVDI5?=
 =?utf-8?B?OFdLUC9yQWY0NkxRbTRYM0kyTzNCaGVBSm5oa3hzNmM2YXl0OGZiODZzVit4?=
 =?utf-8?B?MmpRL0p1MzlVSkN0dEpWcEpUS2RDaVVpWUJCOStRRkI1UTlmRUVKL2J1dzlY?=
 =?utf-8?B?SzA0RTJMWWg4T2ZwazlRaFBBeXhxVDZUN0hCcFd2cVc1bXpKYlpRbElDSGtq?=
 =?utf-8?B?Z2Z2bHNtbDI3WkdDdkJwODlmSzE4TGlCcmZKWEJEdFJPN2gwTEdSR0ovK0hE?=
 =?utf-8?B?QzNLQXhtMU04NXFvYUFjUkNJTXdPVndoRXllR3drcWRuZk5OTkRja1FPMEVV?=
 =?utf-8?B?M3BOYW1xRXFXZVN5dGFrSUVjbzd1S1BNU1NqY0E0OXI3VUEyOGdoM3ZxVkpw?=
 =?utf-8?B?NGIrLyt1Szl0dmxQL3F4UjE4UlRwdEYrQXgzZnlPRmJxZE9FT2lhZUFFSXQw?=
 =?utf-8?B?eFQxTWZwZTBVNExBZWlKSzFSbXJxVlhUSFExaHUrQ25Xa0R1ZEg5KzhZVmcy?=
 =?utf-8?B?MnJHUEQ4SllYNTVOdHExd3RZVWRYNUdwczFBbVJqWkRXdGpFMXNhV1IvbXNS?=
 =?utf-8?B?MHJOTXRacmFNaG9TOW1DeHNXVUlrei9GbWhVaGF5Q01DUnYxOUpUdG9uUkpB?=
 =?utf-8?B?Wlk0YUEvbmJDd0ZJTVBXakdqY3dNRFg3dzRvRm1iNHdSYXMrZlZwVGw5WGpt?=
 =?utf-8?B?TlVFMWxmN2c3Ui9DRXh6WlR6dFYzN0R1QUtJSm44MFFwNkxVMnM2a2hCbjVK?=
 =?utf-8?B?dytVOGQ2MzdKZ2xJanJJTHphM2xFb3QwYnQ3R3U3LzV5Zmlqa2FQdUJIcjhZ?=
 =?utf-8?B?UkpPall3NWZyak8zWndYZE1IM2pSbDA4RTlCaEhYYWYzNVF0NUgwaUR3MDQ5?=
 =?utf-8?B?K0JUdmoxRDZJbXFuazZUcTNTZlpnVGtyKzNudHZHN0FMNDV4L2dpMEJSMVZ6?=
 =?utf-8?B?Tk90djdoWStPa1BmVnpMdW9seHZUNklUclVWT2NOeEt2VTNOSFNkMU1kWEtl?=
 =?utf-8?B?bC9WeUk0QnRJWVRMQ1lYLzZOVDV2S2JNcU4wWG4wQ1A3eExDRTg1b0Izc2Rm?=
 =?utf-8?B?MVM3T0NGV2dhTVlDdkI4NDVwMTl6L3JaNmN3MFU0WnhmSkhqU3kyVWJzM3FS?=
 =?utf-8?B?K2xIMGpmNVZMYXJaVGNzQ2xOdkQxNG5icHFHZVlYR3k0U0R6UWtSZ0Fxa0Zj?=
 =?utf-8?B?bEpaZ1hIdkQ2UEd4dDNKVFp2YStNQk9mSUhUOU13eU9ka2hjOHlUcEJYcVBk?=
 =?utf-8?B?K0ZkcFdLeVZoQ0VnMFR5S1d3YThXeFNKMitKempocFd1UENndk1MQUZRL1Z1?=
 =?utf-8?B?M21tUmxhcXRYNzR0UHNvdWxmMURYVU9HVGFNSUs4Vi9EV20yU3VxejFSUVlG?=
 =?utf-8?B?RXBNMTM5cmlpdEUrNkZ4cW5IVTVZeUcvOGhhOWVRVUpBWUdDR2lRUitDeFdH?=
 =?utf-8?B?UEFTM0VUZjRDYlZCdkZ5bUgwOFpmakdNZmQ3NlpQNGI0SDl3VnpPa2kxMlpY?=
 =?utf-8?B?ZHJHSnZFdmVZQklqRkx1Z2FsektHbVAwT3AwbTlMZWJQUXlVaUVYNU8rNFZi?=
 =?utf-8?B?NWZoVDZ4T0s3c1VHZVM3Y3RMeTgvUWcyTmhyeDEyUHFXLzRXUndhZVhVa0Vp?=
 =?utf-8?B?allNNmtRVHpjelMrT3NCYnIvdlVvZEtPNVh0NkxBYTZmcEZUaCtDTFRFMU9r?=
 =?utf-8?Q?amf2NRy23zoKE8eFNIXuOL5nbM46onOY?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZnFtWGVrZXp3bG9SWENBSWZ0TWRncGJpcHFwbWVDT0wxRVR5RDYvaUJTVTNh?=
 =?utf-8?B?Qmo0ZXhmdk0yVUlrdmF0S25nK056WEZOWENNZ2hpZytqb1RxZE50RHNFNks0?=
 =?utf-8?B?RU1sa0RLN3pMQWdrdzNZc2FzZDMrNWJtN3Btd0o1Z2hHNHQ1d1VHV1dmd2lL?=
 =?utf-8?B?Q1l6dGpmY3lEL1kwZmw3eTJWaGF5aitxYUVJTjNxaUJiNVVyTDBRaUsvVEJS?=
 =?utf-8?B?Mk1sdVEyQ0piTDVRSS9xU2p1UTBsSzVjeGp3QmlMUGhuaW5vdFNnczdhbHYy?=
 =?utf-8?B?aGtZdzYrZG4wUkZoM2dzdU5IWHBxbjRlSk4zOXc3bTYrcHNWUlhBbHEyRGE1?=
 =?utf-8?B?c0N6RGJQaS9weVJ3eUQ2RjZ6cGpJT3N2bjRMRE1aRkFkclZXa3Q2bWlxV2Na?=
 =?utf-8?B?QVUvTVlwUURiZjRKMStvTnZleUFOaDRnaGVjdTZxNWdNU0NMVERuWXRLZ2sx?=
 =?utf-8?B?SEZvaWdnU3VEWUVYS3dCM2R2cGVWZjlQdlQ3TmU0aUlyY3A1S0F2b2lzaHVM?=
 =?utf-8?B?YlY4RnZ2ZXZWS2xrc3hTREdsa2F0dGFUVHJkSDkzNStXOXdXU09jeTNoRzJV?=
 =?utf-8?B?Z3I1YTJPOGx6enNYSERETGdPVWxOUFl4Q2doeUZRRTVxWGkxcVA4NVYrLzBQ?=
 =?utf-8?B?d1VwdTR0K0NwUDA4VzdJQk1Jd3Bla0t0OW5HWXk4MlZmdi9tcEpVUG1ncSs1?=
 =?utf-8?B?RGVPMmgvSmtKMVR0OE9zUXFjeVhiaStxNGNRYkZMbkVXVlZmREVRczJIZ0RO?=
 =?utf-8?B?QnlMTUNJTGdRQlpOaWFCdHBTQnArcWRsNWxsdDZ6dEd0dnN0UFY0YjJiZlI1?=
 =?utf-8?B?NEdtdG9mdTk0a09mSXJ6eUg0QWhjb3I2UFpGOVNXRlJLWFIxUVptSFBYVTNw?=
 =?utf-8?B?WHlOWDN2U2ZDM2FlVVNxc1A2d0EzM3NBTWIzQTE2VUM4ekRscTFJVEdpc213?=
 =?utf-8?B?ZTBFaWNDaFhvemcvazVrRTQ3YjNnZkdLU3VtS0tKaCtyNk1XLzJ3Q3hkbTNB?=
 =?utf-8?B?aUZUYlJ2aU9OcitOQWI1TndVa3BWNWtCbVVhbk00V3oyMmRkZFNZY1JPeGF2?=
 =?utf-8?B?cHhLTDhndGJuZlAzSnJiUlRyZVk1NDFya0MzSXlFVVRWSUJRb0JyUDExcDFR?=
 =?utf-8?B?dS8wdEZmMHJOMUFPK3JwS2JKSzBQZTNXNVFIOEYrZnZMeTMyM0Vvb2FBNVV6?=
 =?utf-8?B?VjROZExuQlRLZCsybkV3dzRKbnVyaElrUmowL05OV2JIR29QaDNhR1huMDRx?=
 =?utf-8?B?d2ZjcGVlMWtjSGZXZGovSWJpK3hHL2dldlZGbUk4Z1V6eDhGVDZ1U1Q4QkRJ?=
 =?utf-8?B?c2oxMWc2OHNSUzc1dktLYmlHdlJGWlZza1FZR0Q1dUFhTTczaG54SFBoUndZ?=
 =?utf-8?B?N2hKQ1pKbUZSdEl6R0xaV3l0RkRiR3QwY2hkTXQyWjRLSm9weXBZcU1PRDl5?=
 =?utf-8?B?elpSeS9CdWJSUmdvOUtlbm5qRjF3MkJUaTZhUGJpM3JpMitOb01LYXFGcFEx?=
 =?utf-8?B?WnNObUhyUi9OVGZTUE1rVGl3T1BObU1FTHVXT2tTUzg0bG5Gd3Y5M2VWSTZG?=
 =?utf-8?B?UDRIK3JrdzZ5NGNmaHJnZENvYW1ac0dCcjVoeFFaaXA4QUp2WE1KSVAxRnJO?=
 =?utf-8?B?WCsrNGEzSkFYOENwWE5MN09TdzhYUnRXeUMwK3JRSkh4dWFDVGtpTE9Cc0w3?=
 =?utf-8?B?NnkzM0xrVHJueGQyOVJPQ0ZIUHptYW1OSXNjL0s1alduSE5yUEtKY0RQcC92?=
 =?utf-8?B?SFRHTWpTenpTUlNUVGROL0NRWm5kSGlXbjFkcUFVRzBmbGYyMmN4ZHZ1bXdF?=
 =?utf-8?B?UEJVcFRGMkdYbU1xZUJzand5QVhSZCtUdi9RbjJiYUVBZ3hETkhjSmttM25m?=
 =?utf-8?B?YzlvV1BBZmJTa1FYRXBmZ3RZU1BVQWFzUWx3SFp3Y3dEVTY4YjdUSFFHcEpQ?=
 =?utf-8?B?SFI1a0lERUhSbW5TUTRaN1JTZXpObmJGZHJTcDVIeS81NDJWcTN5cEI2cWQ4?=
 =?utf-8?B?Kzd6L2FYQ0FiTjFmUS9ZTGdGQXlFdXpHM2E0N3dNTTdvYm53SGl3UHlYbThG?=
 =?utf-8?B?aXB0QjZpWjcydENBUEIxeFR3cTQ4SGN5R3R5QWRlYW0yTUJLYk14U3ZuVzlv?=
 =?utf-8?B?L3lWU0p2R0lFME1RZ01FeDEyTlhIZGl4NlJ5ZzBwSmlwR2dPWURyeXFveUVy?=
 =?utf-8?B?c1E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 38c1ebd8-acb5-4a89-379e-08de276ea6dc
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2025 13:22:13.3227
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: IV97UAwBFJ6bMGnajwqCPvyrxiVdAL9INiK3J3Ly+fIs+JwJYzpYKB7epKIQfrg4h46BCho8oFqe+DnV8wUpOaWA1TG+Q/De73LxSCJ3j84=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS1PR03MB7989

On 19/11/2025 1:08 pm, Markus Armbruster wrote:
> diff --git a/hw/xen/xen-pvh-common.c b/hw/xen/xen-pvh-common.c
> index b93ff80c85..3e62ec09d0 100644
> --- a/hw/xen/xen-pvh-common.c
> +++ b/hw/xen/xen-pvh-common.c
> @@ -101,7 +101,7 @@ static void xen_create_virtio_mmio_devices(XenPVHMachineState *s)
>  #ifdef CONFIG_TPM
>  static void xen_enable_tpm(XenPVHMachineState *s)
>  {
> -    Error *errp = NULL;
> +    Error *err = NULL;
>      DeviceState *dev;
>      SysBusDevice *busdev;
>  
> @@ -111,8 +111,15 @@ static void xen_enable_tpm(XenPVHMachineState *s)
>          return;
>      }
>      dev = qdev_new(TYPE_TPM_TIS_SYSBUS);
> -    object_property_set_link(OBJECT(dev), "tpmdev", OBJECT(be), &errp);
> -    object_property_set_str(OBJECT(dev), "tpmdev", be->id, &errp);
> +    /*
> +     * FIXME This use of &err is is wrong.  If both calls fail, the
> +     * second will trip error_setv()'s assertion.  If just one call
> +     * fails, we leak an Error object.  Setting the same property
> +     * twice (first to a QOM path, then to an ID string) is almost
> +     * certainly wrong, too.
> +     */
> +    object_property_set_link(OBJECT(dev), "tpmdev", OBJECT(be), &err);
> +    object_property_set_str(OBJECT(dev), "tpmdev", be->id, &err);

To your question, I don't know the answer, but I think it's far more
likely that the original author didn't grok the proper use of &errp,
than for this behaviour to be intentional.

Surely we just want a failure path and abort the construction if this
goes wrong?

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 13:36:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 13:36:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166044.1492682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLiLl-0003I3-Ui; Wed, 19 Nov 2025 13:35:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166044.1492682; Wed, 19 Nov 2025 13:35: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 1vLiLl-0003Hw-Rs; Wed, 19 Nov 2025 13:35:57 +0000
Received: by outflank-mailman (input) for mailman id 1166044;
 Wed, 19 Nov 2025 13:35: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=sErG=53=redhat.com=berrange@srs-se1.protection.inumbo.net>)
 id 1vLiLk-0003Hq-IF
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 13:35:56 +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 aae9193f-c54c-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 14:35:53 +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-632-8SZqLeL1Mm6WPxvtRPhmAQ-1; Wed,
 19 Nov 2025 08:35:48 -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 B402519560A7; Wed, 19 Nov 2025 13:35:44 +0000 (UTC)
Received: from redhat.com (unknown [10.42.28.69])
 by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 69E29180049F; Wed, 19 Nov 2025 13:35: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: aae9193f-c54c-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763559352;
	h=from:from:reply-to: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=3WlUOQIxwdIljy6YeUgG8qobydVquMhaPXGSQAcA6to=;
	b=Q7twRHn/fzlKzrkpxXkcmrb0lePJDff0JArLqe1V0ocSIFqMedRw6/yrSVsIHxZJkMpzdz
	gJecNyqSQqFN2ebIkzLPD7h+Qf9arC/gLRkvUZgCdfdlvclkZMtd69cFUSDCL9RPYw8GEw
	HMz8H2tBnGdIZt+Ho+vCbf80ZN1KVUM=
X-MC-Unique: 8SZqLeL1Mm6WPxvtRPhmAQ-1
X-Mimecast-MFC-AGG-ID: 8SZqLeL1Mm6WPxvtRPhmAQ_1763559345
Date: Wed, 19 Nov 2025 13:35:32 +0000
From: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= <berrange@redhat.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org,
	kwolf@redhat.com, hreitz@redhat.com, mst@redhat.com,
	imammedo@redhat.com, anisinha@redhat.com, gengdongjiu1@gmail.com,
	peter.maydell@linaro.org, alistair@alistair23.me,
	edgar.iglesias@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
	palmer@dabbelt.com, liwei1518@gmail.com, dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com, sstabellini@kernel.org,
	anthony@xenproject.org, paul@xen.org, peterx@redhat.com,
	farosas@suse.de, eblake@redhat.com, vsementsov@yandex-team.ru,
	eduardo@habkost.net, marcel.apfelbaum@gmail.com, philmd@linaro.org,
	wangyanan55@huawei.com, zhao1.liu@intel.com, qemu-block@nongnu.org,
	qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-riscv@nongnu.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 5/5] error: Consistently name Error * objects err, and
 not errp
Message-ID: <aR3HpH88od11v8qL@redhat.com>
Reply-To: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= <berrange@redhat.com>
References: <20251119130855.105479-1-armbru@redhat.com>
 <20251119130855.105479-6-armbru@redhat.com>
 <3ffe11b9-db81-4930-aefa-e55d758645bf@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <3ffe11b9-db81-4930-aefa-e55d758645bf@citrix.com>
User-Agent: Mutt/2.2.14 (2025-02-20)
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93

On Wed, Nov 19, 2025 at 01:22:06PM +0000, Andrew Cooper wrote:
> On 19/11/2025 1:08 pm, Markus Armbruster wrote:
> > diff --git a/hw/xen/xen-pvh-common.c b/hw/xen/xen-pvh-common.c
> > index b93ff80c85..3e62ec09d0 100644
> > --- a/hw/xen/xen-pvh-common.c
> > +++ b/hw/xen/xen-pvh-common.c
> > @@ -101,7 +101,7 @@ static void xen_create_virtio_mmio_devices(XenPVHMachineState *s)
> >  #ifdef CONFIG_TPM
> >  static void xen_enable_tpm(XenPVHMachineState *s)
> >  {
> > -    Error *errp = NULL;
> > +    Error *err = NULL;
> >      DeviceState *dev;
> >      SysBusDevice *busdev;
> >  
> > @@ -111,8 +111,15 @@ static void xen_enable_tpm(XenPVHMachineState *s)
> >          return;
> >      }
> >      dev = qdev_new(TYPE_TPM_TIS_SYSBUS);
> > -    object_property_set_link(OBJECT(dev), "tpmdev", OBJECT(be), &errp);
> > -    object_property_set_str(OBJECT(dev), "tpmdev", be->id, &errp);
> > +    /*
> > +     * FIXME This use of &err is is wrong.  If both calls fail, the
> > +     * second will trip error_setv()'s assertion.  If just one call
> > +     * fails, we leak an Error object.  Setting the same property
> > +     * twice (first to a QOM path, then to an ID string) is almost
> > +     * certainly wrong, too.
> > +     */
> > +    object_property_set_link(OBJECT(dev), "tpmdev", OBJECT(be), &err);
> > +    object_property_set_str(OBJECT(dev), "tpmdev", be->id, &err);
> 
> To your question, I don't know the answer, but I think it's far more
> likely that the original author didn't grok the proper use of &errp,
> than for this behaviour to be intentional.
> 
> Surely we just want a failure path and abort the construction if this
> goes wrong?

In the caller of xen_enable_tpm, we just have error_report+exit calls,
so there's no error propagation ability in the call chain.

The caller will also skip  xen_enable_tpm unless a TPM was explicitly
requested in the config.

Given that, I'm inclined to say that the object_property_set_* calls
in xen_enable_tpm should be using &error_abort, as a failure to setup
the explicitly requested TPM should be fatal.

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 13:48:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 13:48:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166056.1492693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLiXW-0005K8-V3; Wed, 19 Nov 2025 13:48:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166056.1492693; Wed, 19 Nov 2025 13:48:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLiXW-0005K1-S7; Wed, 19 Nov 2025 13:48:06 +0000
Received: by outflank-mailman (input) for mailman id 1166056;
 Wed, 19 Nov 2025 13:48: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=mBIH=53=siemens.com=haseeb.ashraf@srs-se1.protection.inumbo.net>)
 id 1vLiXV-0005Jv-5V
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 13:48:05 +0000
Received: from TYDPR03CU002.outbound.protection.outlook.com
 (mail-japaneastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c405::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5a5b5695-c54e-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 14:47:58 +0100 (CET)
Received: from KL1PR0601MB4588.apcprd06.prod.outlook.com
 (2603:1096:820:87::11) by SE1PPF0B96CE885.apcprd06.prod.outlook.com
 (2603:1096:108:1::408) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.16; Wed, 19 Nov
 2025 13:47:34 +0000
Received: from KL1PR0601MB4588.apcprd06.prod.outlook.com
 ([fe80::3f19:282d:5fe2:f523]) by KL1PR0601MB4588.apcprd06.prod.outlook.com
 ([fe80::3f19:282d:5fe2:f523%3]) with mapi id 15.20.9320.013; Wed, 19 Nov 2025
 13:47: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: 5a5b5695-c54e-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PXrdBfiKZ3f+BQqhwmBdMCFrjUaXpAq0z3B8lDI3Djom2kbp2XgGSduIjiZFxquRSTI4A2ZigJ4OL9V3XAsz5D98zUi/k4edEmTffdyFpK029YYJLIRdv/8Xok79l2CHuAhPaaYNwMuUvfnYJOeeG4vYeCq/0g6tjnOp0YNzIZn4j6ivNjoLOKm1a7+lmR5ZEqVNMQ2vOCsiwz2+Wqj/NMjDZzvDUqRBsv4UdYPgig34MTTBmQQlCLR9zs7sU1BsySMePvcbO7ma7bzUS2a2e5fc6IB6cZ0ntCtTNWCYMVRE6QKfjGeEKgtzcNzyCaGhMHDQJDqWxCth+24noKtWrQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Bgekb5CaypElNKJQWk8fX4QMHEBy462BkQmLzLvlNV8=;
 b=Cgcd+G0Un+PvgHThxo8pcAGzc9ggbI0vWmMvGMjEDHDjZIJtkMWt9sce8nShUMr5Xl/9noqVlGZRMwGfvhoC8sMRERlwcAYAFll7ZGmpdxLXSKYtSavxCOXwCAIaBWX2B2+QhMONbruu0IRoWjQfzmjM17ET4N3uOLs5epI7ifRfcIAzWWHDfeMmeyKYednombOHZmrhmtiT1nu8B1WEybt+VwVkJxpeh6LU4az/YdkBEcnEDDuGOW58JYfBqYy1zdkJi2wqaA7E2lGK9fI01td3DncVLNqD+Sd7zd1ViWzy0mxoJecUxApv7VGrBS0D9CJGFWWqSw4Y9/tYyO03sA==
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=Bgekb5CaypElNKJQWk8fX4QMHEBy462BkQmLzLvlNV8=;
 b=Jdnz9uqfqKXRVVW1DaB6kJ2a36VmN42vBzwuISRsK0Ac8NED6sXenOA4GqXf7UHL2rF1wDixHlL3UikjIclflvvk3vii56YtgxvbGFydInlmHEjs6EMVuqSZ8jj09z5NJV0XEXImjHPX54ay1LkPix76EdX9DKGShLleW01Ak50cWmrdxurMeftdVQbkW4ZDt/z7PfJr0S9bn+notdS7DzpgXSnSh8AW/GJlGKFO4RYtqKjvAAXSPgDP5zHI/LxSEi5QTjXUi23heQQnXzZy8FnX2ySwLGGOlanvnXZ6AJCxlf4/Q83XWppWgAmCDYw81PXdoAkKg8xMi1xl2gL8nQ==
From: "haseeb.ashraf@siemens.com" <haseeb.ashraf@siemens.com>
To: Julien Grall <julien@xen.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Mohamed Mediouni <mohamed@unpredictable.fr>
CC: Stefano Stabellini <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"Driscoll, Dan" <dan.driscoll@siemens.com>, "noor.ahsan@siemens.com"
	<noor.ahsan@siemens.com>, "fahad.arslan@siemens.com"
	<fahad.arslan@siemens.com>, "Bachtel, Andrew" <andrew.bachtel@siemens.com>,
	Haseeb Ashraf <haseebashraf091@gmail.com>
Subject: Re: [XEN PATCH] xen/arm/p2m: perform IPA-based TLBI for arm64 when
 IPA is known
Thread-Topic: [XEN PATCH] xen/arm/p2m: perform IPA-based TLBI for arm64 when
 IPA is known
Thread-Index: AQHcTlJkrRvi9xUbREKbU/4GUfXtUrT1Vd2AgAMhG4c=
Date: Wed, 19 Nov 2025 13:47:34 +0000
Message-ID:
 <KL1PR0601MB45885BEB1C85C8AAFDD062CFE6D6A@KL1PR0601MB4588.apcprd06.prod.outlook.com>
References: <20251105124727.142272-1-haseebashraf091@gmail.com>
 <cf7ab262-59f4-4f92-8194-be16b56ccbdc@xen.org>
In-Reply-To: <cf7ab262-59f4-4f92-8194-be16b56ccbdc@xen.org>
Accept-Language: en-US
Content-Language: en-US
X-Mentions: mohamed@unpredictable.fr
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_Enabled=True;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_SiteId=38ae3bcd-9579-4fd4-adda-b42e1495d55a;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_SetDate=2025-11-19T13:47:33.492Z;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_Name=C1
 -
 Restricted;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_ContentBits=1;MSIP_Label_9d258917-277f-42cd-a3cd-14c4e9ee58bc_Method=Standard;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=siemens.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: KL1PR0601MB4588:EE_|SE1PPF0B96CE885:EE_
x-ms-office365-filtering-correlation-id: d89439c2-83b9-445e-7cf0-08de27723167
x-ms-exchange-atpmessageproperties: SA
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|39142699007|31052699007|38070700021|13003099007|8096899003;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?qhyWX5vHN25uDQPqIWJzHFuVCFh6U6Z8XNf+V+kQy4IHS5G3UTT9sLlvvD?=
 =?iso-8859-1?Q?Ake4CtQKoMsKU9FZXpvC/yb3/JIhbjjrccu7ewX62qLsl1pK67Fen8wH5z?=
 =?iso-8859-1?Q?9pA8rtkhYyQ51iymUmLkqzFk39wqtjy7Xps3OnNVqBU/asQyhRbNhTDGv0?=
 =?iso-8859-1?Q?TuWW8bJnoL2ejsWqxHRqKccNJqj2XNlSwfz6xz0i2GF0FbZ4LeMkVdbvrT?=
 =?iso-8859-1?Q?gJZkO6nmAcswMcVSYFyPTDFGzlQolr08jGJmyTZSiHyNB/LjKGBT97qrQV?=
 =?iso-8859-1?Q?nkjxwVTIWDb3oT5MDckMbpFC7+C2pBcVWtzg7r6jvs/exSzJyOC1sTilWA?=
 =?iso-8859-1?Q?qO5xekqcQrmjz09O+O7CBQFsCu7ULFR3ysopQH8ol+V2XTnS4VROHFv8eX?=
 =?iso-8859-1?Q?dTIFG9fJGKBKsxqsSS5Quxk4O4QdXuJoDAlmCDny9ed5tuDatiosw9S5W1?=
 =?iso-8859-1?Q?Xp3vGTBhXflNKpbgDt5Q+ZDpr99R6zc+1cw4htusJTArBnNB8Dk+bG+vcb?=
 =?iso-8859-1?Q?76hvJq0BqyjioDahgsZaLJbZ1Oc1CU8jw4UhnqROSdZi51VHK+Opk95efO?=
 =?iso-8859-1?Q?cnJ4s6EyWj/ZqlwfUN6cwkxhsdnac/yiT+FpVrynpNpc3KuxdZmFP9x8PS?=
 =?iso-8859-1?Q?mm73MMjEC3e64ONU01bjq3CM0npivxHQbH3YwNmaUUdvaZ5oIArQ2JtW04?=
 =?iso-8859-1?Q?j+okRbwFTk7VTGWcpY+5piOlhSwkHx4HFd41yOJisZJIQvM32k0inG9GuS?=
 =?iso-8859-1?Q?ffIfgmEImUQZvjvw5WAi19yddd/uBqcNvhlfCLj+Yydx01KC9N+VzSgag9?=
 =?iso-8859-1?Q?zPK8zYfHwA4h6aX86mA+QuCFRrM+6Y8Lzelc2q12hLRYuDB13B/YlNTd3T?=
 =?iso-8859-1?Q?s2voVZqIuBHCoLmN+m6j0K9TfFB3Wc3gKihWv6rEa+GbIYZDrbmb2uLFh0?=
 =?iso-8859-1?Q?bJ/BX+FrLrX5OF0ENOOu8lVV6MQ/t4PGJgyQL1en2sapZb423LO73L+b2y?=
 =?iso-8859-1?Q?NdvN8HYGEn0taVX8PQ2es4XsznLH4j11/4+gLWJpfKVYOITNTdN+vsPVme?=
 =?iso-8859-1?Q?eTeTQnfhgws6MTCkq2TFCAq2IUKTYvcWyN3E6Hj0sYu03El0HMNkc6Nd2u?=
 =?iso-8859-1?Q?9tNw94wrsQPdsFsoMVDR2ZJke3hgct5vyffuH0Q+lfirkroYLankRK7UYu?=
 =?iso-8859-1?Q?DLzNIW9SQD5o9VTcpziONaCof323chjIWSb2YugcDwrj4U3mwtQMvabztw?=
 =?iso-8859-1?Q?cXg3NM7+ta3rHK6nOjRRWqYV3QtFnUHSAdzEWB1Bpoe3oLAWYKN20/UFII?=
 =?iso-8859-1?Q?QyS1NUMgSw2hTtNCtv5DCvpJbkkez2fvqwWfi31Y4AqW+BUZotYr3etSsO?=
 =?iso-8859-1?Q?nyGm5Xa6mWl2PZ8fcdJcN1AJiTtaUxncccCvKYuCUIoCnUvfia4MG4Wi19?=
 =?iso-8859-1?Q?Oj+JpHeZ7e3If/gOSI1/CnW3tM1NsxD0KyvJ8MIzXLkoLxT5WeeybYTknD?=
 =?iso-8859-1?Q?fAVcIy9Vy/0BU14vsMkDtMwN6nPREPe6qDBuP9nlgbpQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:KL1PR0601MB4588.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(39142699007)(31052699007)(38070700021)(13003099007)(8096899003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?LpM7srCgVYg/6KyGg+rCz4pQvAoMzz7m8wAQIrIGmDpxtN+XltlxGC8kPq?=
 =?iso-8859-1?Q?MtBvKbYfg7uWBh+hb9uzd12HYeOCXp9jtcbAdRqp7KqstbxhID8PQk+YsA?=
 =?iso-8859-1?Q?N22Vb8kBM928aPQOtefCVsd6syi6oyT3QHecg+6vBk5N5cChJ25TraIe0V?=
 =?iso-8859-1?Q?fJ0OF7JlaYBuRW0xlUB3r21RY+cuTiN24lMGzNFAtxRivMwFJq9W9f6TaU?=
 =?iso-8859-1?Q?H6oO4gLynIMJpbo9Iki722tGPq2HbC/ZQ5Zh+/4q/AqQ6D0AAF9/N9+eGl?=
 =?iso-8859-1?Q?qYWw5G3VfrmH7lrtDiR/GLA3EkMqGo7tXyLtmTk4cvyAX2KMc1mIm1MmJo?=
 =?iso-8859-1?Q?9O27GiDYYEUrmf6+VEuT64OipYkVZMBJkbxOZnC9qbAvzVgwksEx4KZea7?=
 =?iso-8859-1?Q?emMA0vWdx7NNdGDVZv1BYHxRQKnxybfmURp1C6Y85gD5BgLFifzUL7Quge?=
 =?iso-8859-1?Q?/P+NU1cuc0IN9wLl7qNjj9s2XYb6I3uZVyeBmgi7CLrGwFLdcobIOvDxUz?=
 =?iso-8859-1?Q?ZYrLIA/fujNq6O7hyzGCWndwzkiUn583aF34VXdUxNvfLvJvGE/M9XF6MA?=
 =?iso-8859-1?Q?kjdJa39H8i4BdfxcO95SZYKgBSFsEO6DG7sJpS/DlblTD2juemXUk30Aw7?=
 =?iso-8859-1?Q?uXZ27a/ONPzMDhqJr4u7Jtwc0KTaykBpQvG+4jyorqjm04Y4MAo4HsPEn3?=
 =?iso-8859-1?Q?GVy0Wh5hY0Bmk+YSBx1+jDIsmzqFS+1xFwHQl2fy7XsU8r+De/Cc3g5G0T?=
 =?iso-8859-1?Q?UWDTKx8pJoQH4pAIKxDkpmha4TtfMqC+LQSUv+5QHe8DRwryErYK3uth/r?=
 =?iso-8859-1?Q?KyHgEWtIHy6FJS3ZFvOHJ7cs149cT/vy7WNeCCnZFTCncOL3rFtl008Dbu?=
 =?iso-8859-1?Q?OF7IE5QUHZTwB5786Z0Tzvv7liphO5TBD7uS21KNx9OLFIR5JP1v7fckmo?=
 =?iso-8859-1?Q?UuFWEAOeXZ5aL0efRPxpxMib+/U58vqMbydsNjyQLoNesOu41rPZ+3NveW?=
 =?iso-8859-1?Q?RxVNALUana41GuZ+eplOBCuUPHnPjSQ5XkTVyP+sBWRjJvZG3lvaPcIrXd?=
 =?iso-8859-1?Q?a/6go6yhHJl6KYfoLhMUb2ytctuORahNC424FkD4J9KT/OLfiLBniyXWor?=
 =?iso-8859-1?Q?irG3ddYn3HvKGC7GpILjqkt5iajy8CFavNNN3KDMuvmmFyPM1GG1gbPL9i?=
 =?iso-8859-1?Q?TpzWCfZ9ALMnz4PVTklkRZXJsvMHo+1H+m23kkmIdeQmZ6GmKJ8uyBdtIJ?=
 =?iso-8859-1?Q?2gvnf5EAiSDnO1kIK5c1l+EVJgJPpi69hWyEHkH1KQ5lSXysBRi96zCXj0?=
 =?iso-8859-1?Q?OimrCPwFRDVJevnx45iet3qmqXyXG4M3BZkdFmry+RTyjvnM0Dzxn781Me?=
 =?iso-8859-1?Q?UsPb/76xXcvEG0+hG0Z/a9aGn/IGaL7VpQnNal9Z2a4CYiZEzi6r8S5x+i?=
 =?iso-8859-1?Q?3CWou6JzjcntmFIvX1eIPIoVIwWqnC+t95B3lUl5Pi0IanUohxBt6p+Ynz?=
 =?iso-8859-1?Q?uEDbFNzeIRebYavhgYh2lFyTMEJ/lrt+81zdCThxp7oBzOuIsqZVXKyruZ?=
 =?iso-8859-1?Q?Exbih2/CtUMUFkvPlehrhpYfUtZjoJmg7giRMRDnp30YFBS8/FvEcKNn+0?=
 =?iso-8859-1?Q?lCulS8MoB4Qllgp49NHC4FL7GZrF37jYfA?=
Content-Type: multipart/alternative;
	boundary="_000_KL1PR0601MB45885BEB1C85C8AAFDD062CFE6D6AKL1PR0601MB4588_"
MIME-Version: 1.0
X-OriginatorOrg: siemens.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: KL1PR0601MB4588.apcprd06.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d89439c2-83b9-445e-7cf0-08de27723167
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2025 13:47:34.1726
 (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: YS9BnANendod8u4/5NlujUQcIi0ojMS13O+aW/T1FQvwo72J3aN6QGKNmgq/m/p1EB9XE9ty8emcnIbEirh+41tDj93M6QjoiMqcNqqHCio=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SE1PPF0B96CE885

--_000_KL1PR0601MB45885BEB1C85C8AAFDD062CFE6D6AKL1PR0601MB4588_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi Julien,

Thanks for your review.

> > The first one is addressed by relaxing VMALLS12E1IS -> VMALLE1IS.
> > Each CPU have their own private TLBs, so flush between vCPU of the
> > same domains is required to avoid translations from vCPUx to "leak"
> > to the vCPUy.
>
> This doesn't really tell me why we don't need the flush the S2. The key
> point is (barring altp2m) the stage-2 is common between all the vCPUs of
> a VM.

Alright, I'll update the commit message in version 2.

> > This can be achieved by using VMALLE1. If FEAT_nTLBPA
> > is present then VMALLE1 can also be avoided.
>
> I had a look at the Arm Arm and I can't figure out why it is fine to
> skip the flush. Can you provide a pointer? BTW, in general, it is useful
> to quote the Arm Arm for the reviewer and future reader. It makes easier
> to find what you are talking about.

Okay. This was pointed out by @Mohamed Mediouni<mailto:mohamed@unpredictabl=
e.fr>. From Arm Arm:
> Translation table entry caching that is used for stage 1 translations and=
 is indexed by the intermediate physical
> address of the location holding the translation table entry. However, FEA=
T_nTLBPA allows software
> discoverability of whether such caches exist, such that if FEAT_nTLBPA is=
 implemented, such caching is not
> implemented.

> > +/*
> > + * FLush TLB by IPA. This will likely be used in a loop, so the caller
> > + * is responsible to use the appropriate memory barriers before/after
> > + * the sequence.
>
> If the goal is to call TLB_HELPER_IPA() in a loop, then the current
> implementation is too expensive.
>
> If the CPU doesn't need the repeat TLBI workaround, then you only need
> to do the dsb; isb once.
>
> If the CPU need the repeat TLBI workaround, looking at the Cortex A76
> errata doc (https://developer.arm.com/documentation/SDEN885749/latest/)
> then I think you might be able to do:
>
> "Flush TLBs"
> "DSB"
> "ISB"
> "Flush TLBs"
> "DSB"
> "ISB"

Yes, I did not use dsb/isb inside this helper TLB_HELPER_IPA(). That's what=
 the comment explains that the caller is responsible to call isb/dsb outsid=
e as it can be invoked in a loop. So, dsb() and isb() should be added befor=
e and after the loop where this is invoked in the loop. (I forgot isb() in =
my patch, I'll update that). And I kept the sequence with repeat TLBI worka=
round same as used in TLB_HELPER_VA() and it is also same in Linux Kernel: =
https://github.com/torvalds/linux/blob/master/arch/arm64/include/asm/tlbflu=
sh.h#L32.

> > diff --git a/xen/arch/arm/include/asm/mmu/p2m.h b/xen/arch/arm/include/=
asm/mmu/p2m.h
> > index 58496c0b09..fc2e08bbe8 100644
> > --- a/xen/arch/arm/include/asm/mmu/p2m.h
> > +++ b/xen/arch/arm/include/asm/mmu/p2m.h
> > @@ -10,6 +10,10 @@ extern unsigned int p2m_root_level;
> >
> >   struct p2m_domain;
> >   void p2m_force_tlb_flush_sync(struct p2m_domain *p2m);
> > +#ifdef CONFIG_ARM_64
>
> We should also handle Arm 32-bit. Barring nTLBA, the code should be the
> same.

Okay, nTLBPA feature is also available on Arm 32-bit. I'll update this.

> > diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
> > index 51abf3504f..28268fb67f 100644
> > --- a/xen/arch/arm/mmu/p2m.c
> > +++ b/xen/arch/arm/mmu/p2m.c
> > @@ -235,7 +235,12 @@ void p2m_restore_state(struct vcpu *n)
> >        * when running multiple vCPU of the same domain on a single pCPU=
.
> >        */
> >       if ( *last_vcpu_ran !=3D INVALID_VCPU_ID && *last_vcpu_ran !=3D n=
->vcpu_id )
> > +#ifdef CONFIG_ARM_64
> > +        if ( system_cpuinfo.mm64.ntlbpa !=3D MM64_NTLBPA_SUPPORT_IMP )
>
> If we decide to use nTLBA, then we should introduce a capability so the
> check can be patched at aboot time.

Alright, I need to go through how a CPU capability is added in Xen. Any com=
mit I can use as reference?

> > +        /*
> > +         * ARM64_WORKAROUND_AT_SPECULATE: We need to stop AT to alloca=
te
> > +         * TLBs entries because the context is partially modified. We
> > +         * only need the VMID for flushing the TLBs, so we can generat=
e
> > +         * a new VTTBR with the VMID to flush and the empty root table=
.
> > +         */
> > +        if ( !cpus_have_const_cap(ARM64_WORKAROUND_AT_SPECULATE) )
> > +            vttbr =3D p2m->vttbr;
> > +        else
> > +            vttbr =3D generate_vttbr(p2m->vmid, empty_root_mfn);
> > +
> > +        WRITE_SYSREG64(vttbr, VTTBR_EL2);
> > +
> > +        /* Ensure VTTBR_EL2 is synchronized before flushing the TLBs *=
/
> > +        isb();
> > +    }
>
> I don't really like the idea to duplicate the AT speculation logic.
> Could we try to consolidate by introducing helper to load and unload the
> VTTBR?

Okay, I'll create helpers for load_vttbr() and restore_vttbr().

> > +
> > +    /* Ensure prior page-tables updates have completed */
> > +    dsb(ishst);
> > +
> > +    /* Invalidate stage-2 TLB entries by IPA range */
> > +    for ( i =3D 0; i < page_count; i++ ) {
> > +        flush_guest_tlb_one_s2(ipa);
> > +        ipa +=3D 1UL << PAGE_SHIFT;
> > +    }
>
> In theory, __p2m_set_entry() could modify large region. For 1GB region
> it means the loop would send 262144 TLB instructions. This seems quite a
> lot.
>
> If the region is a superpage, then you might be able to send a single
> TLB instruction (need to confirm from the ARM ARM).
>
> If the region contains multiple mapping, then I wonder whether it would
> be better to flush the full S2. Not sure what would be the threshold.

__p2m_set_entry() invokes p2m_force_tlb_flush_range_sync() only after split=
ting the superpage. Therefore, I think it would require invalidating w.r.t.=
 normal page size. IPAS2E1 does not have any input argument to specify supe=
rpage size, only base address and translation granules of 4K, 16K and 64K.
I'll do some profiling and let you know of threshold for full S2 invalidati=
on vs IPA-based S2-invalidation in my use-case.

> > @@ -1090,8 +1169,13 @@ static int __p2m_set_entry(struct p2m_domain *p2=
m,
> >           p2m_remove_pte(entry, p2m->clean_pte);
> >
> >       if ( removing_mapping )
> > +#ifdef CONFIG_ARM_64
> > +        p2m_force_tlb_flush_range_sync(p2m, gfn_x(sgfn) << PAGE_SHIFT,
> > +                                       1UL << page_order);
> > +#else
> >           /* Flush can be deferred if the entry is removed */
> >           p2m->need_flush |=3D !!lpae_is_valid(orig_pte);
> > +#endif
>
> To emphasis on what I wrote above, this is one of the reason I would
> strongly prefer if we had support for p2m_force_flush_range_sync() on
> Arm 32-bit. This would make the code a lot simpler and easier to reason.

IPA-based TLBI (TLBIIPAS2) exists for Arm 32-bit only after armv8a.
For simplification, we can wrap p2m_force_tlb_flush_sync() in p2m_force_tlb=
_flush_range_sync() for Arm 32-bit for older architectures where this is un=
supported. How an architecture-specific feature is implemented? like this o=
ne is supported only after armv8a and range TLBI is supported only after ar=
mv8.4a. Any reference example would be helpful.

Regards,
Haseeb

--_000_KL1PR0601MB45885BEB1C85C8AAFDD062CFE6D6AKL1PR0601MB4588_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Hi Julien,</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Thanks for your review.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
&gt; &gt; The first one is addressed by relaxing VMALLS12E1IS -&gt; VMALLE1=
IS.<br>
&gt; &gt; Each CPU have their own private TLBs, so flush between vCPU of th=
e<br>
&gt; &gt; same domains is required to avoid translations from vCPUx to &quo=
t;leak&quot;<br>
&gt; &gt; to the vCPUy.<br>
&gt;<br>
&gt; This doesn't really tell me why we don't need the flush the S2. The ke=
y<br>
&gt; point is (barring altp2m) the stage-2 is common between all the vCPUs =
of<br>
&gt; a VM.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Alright, I'll update the commit message in version 2.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
&gt; &gt; This can be achieved by using VMALLE1. If FEAT_nTLBPA<br>
&gt; &gt; is present then VMALLE1 can also be avoided.<br>
&gt;&nbsp;<br>
&gt; I had a look at the Arm Arm and I can't figure out why it is fine to<b=
r>
&gt; skip the flush. Can you provide a pointer? BTW, in general, it is usef=
ul<br>
&gt; to quote the Arm Arm for the reviewer and future reader. It makes easi=
er<br>
&gt; to find what you are talking about.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Okay. This was pointed out by <a class=3D"tWKOu mention ms-bgc-nlr ms-fcl-b=
" id=3D"OWAAM424008" href=3D"mailto:mohamed@unpredictable.fr">
@Mohamed Mediouni</a>. From Arm Arm:</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
&gt; Translation table entry caching that is used for stage 1 translations =
and is indexed by the intermediate physical</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
&gt; address of the location holding the translation table entry. However, =
FEAT_nTLBPA allows software</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
&gt; discoverability of whether such caches exist, such that if FEAT_nTLBPA=
 is implemented, such caching is not</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
&gt; implemented.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
&gt; &gt; +/*<br>
&gt; &gt; + * FLush TLB by IPA. This will likely be used in a loop, so the =
caller<br>
&gt; &gt; + * is responsible to use the appropriate memory barriers before/=
after<br>
&gt; &gt; + * the sequence.<br>
&gt;&nbsp;<br>
&gt; If the goal is to call TLB_HELPER_IPA() in a loop, then the current<br=
>
&gt; implementation is too&nbsp;expensive.<br>
&gt;&nbsp;<br>
&gt; If the CPU doesn't need the repeat TLBI workaround, then you only need=
<br>
&gt; to do the dsb; isb once.<br>
&gt;&nbsp;<br>
&gt; If the CPU need the repeat TLBI workaround, looking at the Cortex A76<=
/div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
&gt; errata doc (<a data-auth=3D"NotApplicable" class=3D"OWAAutoLink" id=3D=
"OWAf205ea90-4efa-1a31-9b8f-c484d8c948ad" href=3D"https://developer.arm.com=
/documentation/SDEN885749/latest/">https://developer.arm.com/documentation/=
SDEN885749/latest/</a>)</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
&gt; then I think you might be able to do:<br>
&gt;&nbsp;<br>
&gt; &quot;Flush TLBs&quot;<br>
&gt; &quot;DSB&quot;<br>
&gt; &quot;ISB&quot;<br>
&gt; &quot;Flush TLBs&quot;<br>
&gt; &quot;DSB&quot;<br>
&gt; &quot;ISB&quot;</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Yes, I did not use dsb/isb inside this helper TLB_HELPER_IPA(). That's what=
 the comment explains that the caller is responsible to call isb/dsb outsid=
e as it can be invoked in a loop. So, dsb() and isb() should be added befor=
e and after the loop where this
 is invoked in the loop. (I forgot isb() in my patch, I'll update that). An=
d I kept the sequence with repeat TLBI workaround same as used in TLB_HELPE=
R_VA() and it is also same in Linux Kernel:
<a data-auth=3D"NotApplicable" class=3D"OWAAutoLink" id=3D"OWA376d7870-d8f5=
-e504-3ba0-53ea60bf0fec" href=3D"https://github.com/torvalds/linux/blob/mas=
ter/arch/arm64/include/asm/tlbflush.h#L32">
https://github.com/torvalds/linux/blob/master/arch/arm64/include/asm/tlbflu=
sh.h#L32</a>.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
&gt; &gt; diff --git a/xen/arch/arm/include/asm/mmu/p2m.h b/xen/arch/arm/in=
clude/asm/mmu/p2m.h<br>
&gt; &gt; index 58496c0b09..fc2e08bbe8 100644<br>
&gt; &gt; --- a/xen/arch/arm/include/asm/mmu/p2m.h<br>
&gt; &gt; +++ b/xen/arch/arm/include/asm/mmu/p2m.h<br>
&gt; &gt; @@ -10,6 +10,10 @@ extern unsigned int p2m_root_level;<br>
&gt; &gt;&nbsp;&nbsp;<br>
&gt; &gt;&nbsp;&nbsp; struct p2m_domain;<br>
&gt; &gt;&nbsp;&nbsp; void p2m_force_tlb_flush_sync(struct p2m_domain *p2m)=
;<br>
&gt; &gt; +#ifdef CONFIG_ARM_64<br>
&gt;&nbsp;<br>
&gt; We should also handle Arm 32-bit. Barring nTLBA, the code should be th=
e<br>
&gt; same.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Okay, nTLBPA feature is also available on Arm 32-bit. I'll update this.</di=
v>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
&gt; &gt; diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c<br>
&gt; &gt; index 51abf3504f..28268fb67f 100644<br>
&gt; &gt; --- a/xen/arch/arm/mmu/p2m.c<br>
&gt; &gt; +++ b/xen/arch/arm/mmu/p2m.c<br>
&gt; &gt; @@ -235,7 +235,12 @@ void p2m_restore_state(struct vcpu *n)<br>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * when running multiple=
 vCPU of the same domain on a single pCPU.<br>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( *last_vcpu_ran !=3D INVA=
LID_VCPU_ID &amp;&amp; *last_vcpu_ran !=3D n-&gt;vcpu_id )<br>
&gt; &gt; +#ifdef CONFIG_ARM_64<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( system_cpuinfo.m=
m64.ntlbpa !=3D MM64_NTLBPA_SUPPORT_IMP )<br>
&gt;&nbsp;<br>
&gt; If we decide to use nTLBA, then we should introduce a capability so th=
e<br>
&gt; check can be patched at aboot time.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Alright, I need to go through how a CPU capability is added in Xen. Any com=
mit I can use as reference?</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * ARM64_WORKARO=
UND_AT_SPECULATE: We need to stop AT to allocate<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * TLBs entries =
because the context is partially modified. We<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * only need the=
 VMID for flushing the TLBs, so we can generate<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * a new VTTBR w=
ith the VMID to flush and the empty root table.<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( !cpus_have_const=
_cap(ARM64_WORKAROUND_AT_SPECULATE) )<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; vttbr =3D p2m-&gt;vttbr;<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; vttbr =3D generate_vttbr(p2m-&gt;vmid, empty_root_mfn);<br>
&gt; &gt; +<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WRITE_SYSREG64(vttbr,=
 VTTBR_EL2);<br>
&gt; &gt; +<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Ensure VTTBR_EL2 i=
s synchronized before flushing the TLBs */<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isb();<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp; }<br>
&gt;&nbsp;<br>
&gt; I don't really like the idea to duplicate the AT speculation logic.<br=
>
&gt; Could we try to consolidate by introducing helper to load and unload t=
he<br>
&gt; VTTBR?</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Okay, I'll create helpers for load_vttbr() and restore_vttbr().</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
&gt; &gt; +<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp; /* Ensure prior page-tables updates have comp=
leted */<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp; dsb(ishst);<br>
&gt; &gt; +<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp; /* Invalidate stage-2 TLB entries by IPA rang=
e */<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp; for ( i =3D 0; i &lt; page_count; i++ ) {<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; flush_guest_tlb_one_s=
2(ipa);<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ipa +=3D 1UL &lt;&lt;=
 PAGE_SHIFT;<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp; }<br>
&gt;&nbsp;<br>
&gt; In theory, __p2m_set_entry()&nbsp;could&nbsp;modify large region. For =
1GB region<br>
&gt; it means the loop would send 262144 TLB instructions. This seems quite=
 a<br>
&gt; lot.<br>
&gt;&nbsp;<br>
&gt; If the region is a superpage, then you might be able to send a single<=
br>
&gt; TLB instruction (need to confirm from the ARM ARM).<br>
&gt;&nbsp;<br>
&gt; If the region contains multiple mapping, then I wonder whether it woul=
d<br>
&gt; be better to flush the full S2. Not sure what would be the threshold.<=
br>
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
__p2m_set_entry() invokes p2m_force_tlb_flush_range_sync() only after split=
ting the superpage. Therefore, I think&nbsp;it would require invalidating w=
.r.t. normal page size. IPAS2E1 does not have any input argument to specify=
 superpage size, only base address and
 translation granules of 4K, 16K and 64K.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
I'll do some profiling and let you know of threshold for full S2 invalidati=
on vs IPA-based S2-invalidation in my use-case.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
&gt; &gt; @@ -1090,8 +1169,13 @@ static int __p2m_set_entry(struct p2m_doma=
in *p2m,<br>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p2m_r=
emove_pte(entry, p2m-&gt;clean_pte);<br>
&gt; &gt;&nbsp;&nbsp;<br>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( removing_mapping )<br>
&gt; &gt; +#ifdef CONFIG_ARM_64<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p2m_force_tlb_flush_r=
ange_sync(p2m, gfn_x(sgfn) &lt;&lt; PAGE_SHIFT,<br>
&gt; &gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp; 1UL &lt;&lt; page_order);<br>
&gt; &gt; +#else<br>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Fl=
ush can be deferred if the entry is removed */<br>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p2m-&=
gt;need_flush |=3D !!lpae_is_valid(orig_pte);<br>
&gt; &gt; +#endif<br>
&gt;&nbsp;<br>
&gt; To emphasis on what I wrote above, this is one of the reason I would<b=
r>
&gt; strongly prefer if we had support for p2m_force_flush_range_sync() on<=
br>
&gt; Arm 32-bit. This would make the code a lot simpler and easier to reaso=
n.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
IPA-based TLBI (TLBIIPAS2) exists for Arm 32-bit only after armv8a.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
For simplification, we can wrap p2m_force_tlb_flush_sync() in p2m_force_tlb=
_flush_range_sync() for Arm 32-bit for older architectures where this is un=
supported. How an architecture-specific feature is implemented? like this o=
ne is supported only after armv8a
 and range TLBI is supported only after armv8.4a. Any reference example wou=
ld be helpful.</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Regards,</div>
<div style=3D"font-family: Arial, Helvetica, sans-serif; font-size: 10pt; c=
olor: rgb(0, 0, 0);" class=3D"elementToProof">
Haseeb</div>
</body>
</html>

--_000_KL1PR0601MB45885BEB1C85C8AAFDD062CFE6D6AKL1PR0601MB4588_--


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 13:48:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 13:48:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166059.1492703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLiXr-0005dW-9o; Wed, 19 Nov 2025 13:48:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166059.1492703; Wed, 19 Nov 2025 13:48:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLiXr-0005dP-6R; Wed, 19 Nov 2025 13:48:27 +0000
Received: by outflank-mailman (input) for mailman id 1166059;
 Wed, 19 Nov 2025 13:48: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=aBqX=53=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vLiXq-0005d3-Q1
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 13:48:26 +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 6ab0f313-c54e-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 14:48:24 +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-589-c9AsqnwVO_K6HMYJOAg8Tg-1; Wed,
 19 Nov 2025 08:48:20 -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 CC8DB180035F; Wed, 19 Nov 2025 13:48:15 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 7A14B18004A3; Wed, 19 Nov 2025 13:48:14 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id A94D221E6A27; Wed, 19 Nov 2025 14:48:11 +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: 6ab0f313-c54e-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763560103;
	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=xsySjUAW/OC81jZhGvxSBn3taIt42d+Gp2Dn5EiAh3I=;
	b=SglrrurfweQh+/BjeUuTzzF5itB3RQKTiD8mQVMTrk8+MLFP2EAH3DGvxv8LkxNa9PxhtK
	IXK7x7uwmVZruKQOj1MA+LqyCvYm9rTyxsN8usqcfiuAThZ/Fp24LXIRgt76Tnjzu3u1q8
	U2EiszZ773KK3mcsFG2IGguPn0dQlxM=
X-MC-Unique: c9AsqnwVO_K6HMYJOAg8Tg-1
X-Mimecast-MFC-AGG-ID: c9AsqnwVO_K6HMYJOAg8Tg_1763560096
From: Markus Armbruster <armbru@redhat.com>
To: Daniel P. =?utf-8?Q?Berrang=C3=A9?= <berrange@redhat.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,  qemu-devel@nongnu.org,
  kwolf@redhat.com,  hreitz@redhat.com,  mst@redhat.com,
  imammedo@redhat.com,  anisinha@redhat.com,  gengdongjiu1@gmail.com,
  peter.maydell@linaro.org,  alistair@alistair23.me,
  edgar.iglesias@gmail.com,  npiggin@gmail.com,  harshpb@linux.ibm.com,
  palmer@dabbelt.com,  liwei1518@gmail.com,  dbarboza@ventanamicro.com,
  zhiwei_liu@linux.alibaba.com,  sstabellini@kernel.org,
  anthony@xenproject.org,  paul@xen.org,  peterx@redhat.com,
  farosas@suse.de,  eblake@redhat.com,  vsementsov@yandex-team.ru,
  eduardo@habkost.net,  marcel.apfelbaum@gmail.com,  philmd@linaro.org,
  wangyanan55@huawei.com,  zhao1.liu@intel.com,  qemu-block@nongnu.org,
  qemu-arm@nongnu.org,  qemu-ppc@nongnu.org,  qemu-riscv@nongnu.org,
  xen-devel@lists.xenproject.org
Subject: Re: [PATCH 5/5] error: Consistently name Error * objects err, and
 not errp
In-Reply-To: <aR3HpH88od11v8qL@redhat.com> ("Daniel P. =?utf-8?Q?Berrang?=
 =?utf-8?Q?=C3=A9=22's?= message of
	"Wed, 19 Nov 2025 13:35:32 +0000")
References: <20251119130855.105479-1-armbru@redhat.com>
	<20251119130855.105479-6-armbru@redhat.com>
	<3ffe11b9-db81-4930-aefa-e55d758645bf@citrix.com>
	<aR3HpH88od11v8qL@redhat.com>
Date: Wed, 19 Nov 2025 14:48:11 +0100
Message-ID: <87a50ixhes.fsf@pond.sub.org>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93

Daniel P. Berrang=C3=A9 <berrange@redhat.com> writes:

> On Wed, Nov 19, 2025 at 01:22:06PM +0000, Andrew Cooper wrote:
>> On 19/11/2025 1:08 pm, Markus Armbruster wrote:
>> > diff --git a/hw/xen/xen-pvh-common.c b/hw/xen/xen-pvh-common.c
>> > index b93ff80c85..3e62ec09d0 100644
>> > --- a/hw/xen/xen-pvh-common.c
>> > +++ b/hw/xen/xen-pvh-common.c
>> > @@ -101,7 +101,7 @@ static void xen_create_virtio_mmio_devices(XenPVHM=
achineState *s)
>> >  #ifdef CONFIG_TPM
>> >  static void xen_enable_tpm(XenPVHMachineState *s)
>> >  {
>> > -    Error *errp =3D NULL;
>> > +    Error *err =3D NULL;
>> >      DeviceState *dev;
>> >      SysBusDevice *busdev;
>> >=20=20
>> > @@ -111,8 +111,15 @@ static void xen_enable_tpm(XenPVHMachineState *s)
>> >          return;
>> >      }
>> >      dev =3D qdev_new(TYPE_TPM_TIS_SYSBUS);
>> > -    object_property_set_link(OBJECT(dev), "tpmdev", OBJECT(be), &errp=
);
>> > -    object_property_set_str(OBJECT(dev), "tpmdev", be->id, &errp);
>> > +    /*
>> > +     * FIXME This use of &err is is wrong.  If both calls fail, the
>> > +     * second will trip error_setv()'s assertion.  If just one call
>> > +     * fails, we leak an Error object.  Setting the same property
>> > +     * twice (first to a QOM path, then to an ID string) is almost
>> > +     * certainly wrong, too.
>> > +     */
>> > +    object_property_set_link(OBJECT(dev), "tpmdev", OBJECT(be), &err);
>> > +    object_property_set_str(OBJECT(dev), "tpmdev", be->id, &err);
>>=20
>> To your question, I don't know the answer, but I think it's far more
>> likely that the original author didn't grok the proper use of &errp,
>> than for this behaviour to be intentional.
>>=20
>> Surely we just want a failure path and abort the construction if this
>> goes wrong?
>
> In the caller of xen_enable_tpm, we just have error_report+exit calls,
> so there's no error propagation ability in the call chain.
>
> The caller will also skip  xen_enable_tpm unless a TPM was explicitly
> requested in the config.
>
> Given that, I'm inclined to say that the object_property_set_* calls
> in xen_enable_tpm should be using &error_abort, as a failure to setup
> the explicitly requested TPM should be fatal.

I *suspect* that the first call always fails, and the second one always
works.  If that's the case, the fix is to delete the first call, and
pass &error_abort to the second.



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 14:26:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 14:26:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166084.1492713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLj8U-0003Z4-02; Wed, 19 Nov 2025 14:26:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166084.1492713; Wed, 19 Nov 2025 14:26: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 1vLj8T-0003Yx-SW; Wed, 19 Nov 2025 14:26:17 +0000
Received: by outflank-mailman (input) for mailman id 1166084;
 Wed, 19 Nov 2025 14:26:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nJND=53=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLj8T-0003Yr-Di
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 14:26:17 +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 adfc27e1-c553-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 15:26:04 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-640aa1445c3so10636655a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 06:26: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
 4fb4d7f45d1cf-6433a3d7335sm15067582a12.4.2025.11.19.06.26.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 19 Nov 2025 06:26: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: adfc27e1-c553-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763562363; x=1764167163; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Bevt7aayd9ZkoyNlMDUKn83UDWt/GZfy7D/6RVdWOUA=;
        b=JJ4nGhqbe07YLI3ytJbUMO33ZiCYIaVpT8E81ppTYNpnT9KMq4H5TqhZxqQcx+YYDL
         5sXWhfjQpA+YN0kbp0qd0ezvAN30ywvxerW7o5iCsDGEqxgRxM6J+MhUSpUIj4s2nL4t
         nLk8/HFU7odxfyUFwBgpcyaBoaTS+0voeqeCoB40Y7Pi0YO/7W4weOjmfR4cNeAwKJUd
         eN75d15mfh97ljl4lX60rwQDazz4puz0xXbj3hg34XUcJz2S/Hk2zhivscEr+l0yQzG0
         9hapgNygrfkALcgx+r3yKeyAYaTglKu2yU6agdarb+13vY5wLPTMAP5iCBM4IZzXZDAY
         RXkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763562363; x=1764167163;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Bevt7aayd9ZkoyNlMDUKn83UDWt/GZfy7D/6RVdWOUA=;
        b=MI1mxQStlJTDugweSmgCoQypZ06YdP99jRWFi4ge2mqafFb02wVuDfrcPDwywTVFnQ
         x3QqWDtZyJSLRcduVPEDwbph+5io0g1dFOuuttqGDh69GWDkfgBjHzQBTRD8/JEdNwtu
         Htbrpn3RLN71lPwIH/3hA1lAhaTfbiwSbrPy5tlBW7wQ0oGNfZAt8ru5Qmr+NZR6wsey
         nVZYRfBL2YVZD4HQD62sHr95UyuhNibuZ1lu4Jk5U99B8SDZ9MQG0lZM+OqQMteslV0z
         jUxEO4K9vJz3JwO5EwK62MRj7Bu9+qJVzYQ42wEQ8gmeKyn2sGIDSybNrr9JGWUycAwL
         wF0w==
X-Forwarded-Encrypted: i=1; AJvYcCUGC7fR8VfGudUOhiGlROXV2ItCXzpvmxlcHZfQe6ypDLezZPvm+yx/8EFToBRXzk7lrHBcgkAvQ8k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwT5UQ3kQ/IQT/oBn90xZcGIkDvmn1PxNkGI259Y9suqtPypus1
	psxfJ0e2Zh9G/2SBqm6qIkAl6Y9ldrCXNGsU0gCBnwExRfgIGIxRex9/UPynISoFTQ==
X-Gm-Gg: ASbGncuyj/m39JYpnRR+DiikxLTo6AU0DickGrP0t0SMOtin1pWBHKzFHGZmZcuoH5i
	Ioan1sProq4shXgBpbDx1M8dZ6G9XZ78gPAN9SFYn/DwuNsHm0KilemK5+DFfKTAY4RIF5RBg8a
	T5P7K1oVnD1T2kfpmNrB5ZoOCGlxa651jzvWyIfB3b7oGlsHr/GCilRQEjhPcyDl7Sj88xvLML0
	6BdUvt6PG1wRx/A8eOlFbNzLT1H6ii6B4zS4VTDz1W2lok6CuMTQa42a4tNz+dTZDaFtnLj7khK
	21CT3//Kv+kmRjPtcyfBA3QWLKPE/PXSapfOelS0+CDgRXWoDL8Go1nCJr1Rc8IW5F8+UEPKZmS
	1MS9KbomeVD6kSrd3ModS21R54ap44ht+VmsqRAQ4yBUHLhDXSeTQjMxqXcN5o73kmNyqi5X/OG
	lf+WK5HUKuanS4uZUCdO77mQmyK/iqhFEi5q0rC3MQPAnOHL+NtCDr3qNxM8Im690t/HDYEB8hZ
	8TH28PX3cLALcKXtp8tl12+lmX/DAoVHkY=
X-Google-Smtp-Source: AGHT+IHY4V4JBJTki28SzpSbLlJG0IzFmp/KPGh9eaRt08wTbDXYB+lrK2gMvvaSuW8M0ODIGDaUcw==
X-Received: by 2002:a05:6402:2710:b0:640:c454:e9 with SMTP id 4fb4d7f45d1cf-64350e1120fmr18444594a12.4.1763562363554;
        Wed, 19 Nov 2025 06:26:03 -0800 (PST)
Message-ID: <0e34c8cc-24a1-49cd-8aa3-c0ca3a824023@suse.com>
Date: Wed, 19 Nov 2025 15:26:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2.1 5/5] x86/ioapic: Don't open-code 32-bits rte reads
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <eab88bd79a65887961e0e1563f47360ef08e421a.1761209564.git.teddy.astie@vates.tech>
 <e9ae9ca2b51efa337117a6fe2db48939f8317747.1763549659.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: <e9ae9ca2b51efa337117a6fe2db48939f8317747.1763549659.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.11.2025 12:02, Teddy Astie wrote:
> There are many places where we use interesting ways of reading 32-bits
> components of the RTE. Introduce and use low and high components directly
> to the rte structure instead.
> 
> Also take the opportunity to simplify "x & 1 ? 1 : 0".
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> ---
> v2.1:
>  - fix trailing spaces

You did notice v2 was committed already, didn't you? I suppose that's what
made Andrew notice the style issue.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 15:07:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 15:07:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166098.1492723 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLjm5-0000Zj-KB; Wed, 19 Nov 2025 15:07:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166098.1492723; Wed, 19 Nov 2025 15:07:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLjm5-0000Zc-Gs; Wed, 19 Nov 2025 15:07:13 +0000
Received: by outflank-mailman (input) for mailman id 1166098;
 Wed, 19 Nov 2025 15:07:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=G5Pp=53=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vLjm4-0000ZW-KN
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 15:07:12 +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 68fb7431-c559-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 16:07:06 +0100 (CET)
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 63DB87A00F7;
 Wed, 19 Nov 2025 10:07:04 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-03.internal (MEProxy); Wed, 19 Nov 2025 10:07:04 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 19 Nov 2025 10:07: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: 68fb7431-c559-11f0-980a-7dc792cee155
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=1763564824;
	 x=1763651224; bh=1aAjMxf6lY3tTY/5GBouk1D+THYn4Lckf9hl5t7pRUM=; b=
	KalmHQV0iOV0aCxxKyox4gFDmdW3EAPMC+dOfpWW5SHvOz4IvPMUpDX98eRWJB/Q
	UqP0mdgG525qmm2l2zLC1aYa6JuKy+7HLLxyW5Qq7MmSIWQ6xeQnxsFxKdZWJhVp
	AIIa3EwvPSyPs5jeTRDjJ7Z8WvPbDGdIC6drh6h+4Y1XnvEl1DUuAANWdQaygJij
	2JiGYadQQtJUtewJlkHKCycPsi4AUbA3pZZIABeoHBcGCEOHzmznhIoIyhbDdx3F
	Rb0GtKkvQbdIxIuHNiibZRJVXzlMf1i+mQoZZiM3KYBCgmiS6JjZIkfWZK6KDAPL
	hkoEUPUi2/Mvl4AO2Ov2wg==
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=
	1763564824; x=1763651224; bh=1aAjMxf6lY3tTY/5GBouk1D+THYn4Lckf9h
	l5t7pRUM=; b=135QgpmGQS3W5vsBFTXVohtJFCZuzAtcgMuEvNzt28IZJEFuRpn
	S21sWaIwYYaoewzOEYGWM23KTUhB9whqWSVmPJFYOS9a+NYtDCE95ypcWOzoGkSh
	vmVrz5H1AfwIh3fzC4LKPHMkIjOG5cuFuPpnl7G91Y1+AhM15YUyf5kELe4v0+x8
	NgU3X+Kn3mxb2LEP3gwE+ohfU9Xah8NpFqbF14jV2lGYrBcNIgGuYMXE2ZU6XmHI
	Q1qSi4Fs/mgb3051S3TS2HxPUE+dScSprDJW/F7Df7HobD/oqz9DZTfxBcwzmui1
	wGEBvM4zWYgUEq2m6m9PGD5/idiRgPRRPlg==
X-ME-Sender: <xms:F90daSxdxfqd6TUA60MtCjQPVONWb8I8D16U6zUrMhHR9faSQ3e-_Q>
    <xme:F90daR8nFMKgv3A6ZeyrJr3-D8Airtet334cV1R2r19naL4qhDuaILRVoB7jCKDay
    oy-4OrDMj2NVocFy7E4dWgcWFaWER_XcE6YrEZz0L2y3vJfkQ>
X-ME-Received: <xmr:F90dac_PxXe5aCKFnJk3jdin7P0tBrdCtM89d24wpfKeNFGuXw90L4QjtPs3_ogHQ5rF7bko_3stwxtXD2MLZKbWhXxmj2tZFQ0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvvdeghedvucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepffduvdfg
    veeghffgvdejheekteefjedvieehteetkeevheefteduffejhfeihedunecuffhomhgrih
    hnpehgihhtlhgrsgdrtghomhdpkhgvrhhnvghlrdhorhhgpdhtrhhmmhdrnhgvthdpghhi
    thhhuhgsrdgtohhmpdhlughsrdhssgenucevlhhushhtvghrufhiiigvpedtnecurfgrrh
    grmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhg
    shhlrggsrdgtohhmpdhnsggprhgtphhtthhopedugedpmhhouggvpehsmhhtphhouhhtpd
    hrtghpthhtohepfhhrvgguugihjeejsehgmhgrihhlrdgtohhmpdhrtghpthhtoheprghn
    ughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeholhgvkh
    hsihhirdhkuhhrohgthhhkohesghhmrghilhdrtghomhdprhgtphhtthhopehfrhgvughi
    rghnohdriihighhlihhosegtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqdguvg
    hvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehfrhgv
    ughirghnohdriihighhlihhosegtlhhouhgurdgtohhmpdhrtghpthhtoheprghnthhhoh
    hnhidrphgvrhgrrhgusehvrghtvghsrdhtvggthhdprhgtphhtthhopehmihgthhgrlhdr
    ohhriigvlhesrghmugdrtghomhdprhgtphhtthhopehjsggvuhhlihgthhesshhushgvrd
    gtohhm
X-ME-Proxy: <xmx:F90daZ68Qf2BXFy6SHw5EvKFcczlK0Yt9lqo3SFsQ24iFvAWP1LGhw>
    <xmx:F90daVbLhemS8EmX-reY-bpQFbGcKgOqeTz463Tas2hRHlfGgq6U4A>
    <xmx:F90dab8WDUhc5kMzPL6gAVNsUHDJKcUvj3y2252Hp-0XNVc78Y7qDQ>
    <xmx:F90dacTckexE1ov4Bdh-sq7RUyfWK21f6B0cFtU1qNTu4qYS6JCTVA>
    <xmx:GN0daVX9Dmcqsv_sx9qCjQP-QQy04Upykdtpwjk-VnMs1KXP8kiPBMLo>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 19 Nov 2025 16:06:59 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Frediano Ziglio <freddy77@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Frediano Ziglio <frediano.ziglio@citrix.com>,
	xen-devel@lists.xenproject.org,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Demi Marie Obenour <demiobenour@gmail.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v8] xen: Strip xen.efi by default
Message-ID: <aR3dFPTeH4Wegodd@mail-itl>
References: <20251113154358.28704-1-frediano.ziglio@citrix.com>
 <6729f3d9-618c-4dcd-93f8-d02ca7cea017@gmail.com>
 <8f8a769d-95ea-4554-8ee0-d6247f583e37@citrix.com>
 <CAHt6W4eDDm-fNUB7W1Zgj+x-bkK2fxTB50C38T4Uy0_Ofy_cww@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="8V+dyZVEzhjP7r7u"
Content-Disposition: inline
In-Reply-To: <CAHt6W4eDDm-fNUB7W1Zgj+x-bkK2fxTB50C38T4Uy0_Ofy_cww@mail.gmail.com>


--8V+dyZVEzhjP7r7u
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 19 Nov 2025 16:06:59 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Frediano Ziglio <freddy77@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Frediano Ziglio <frediano.ziglio@citrix.com>,
	xen-devel@lists.xenproject.org,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Demi Marie Obenour <demiobenour@gmail.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v8] xen: Strip xen.efi by default

On Sat, Nov 15, 2025 at 06:23:08AM +0000, Frediano Ziglio wrote:
> On Fri, 14 Nov 2025 at 19:18, Andrew Cooper <andrew.cooper3@citrix.com> w=
rote:
> >
> > On 14/11/2025 3:40 pm, Oleksii Kurochko wrote:
> > >
> > >
> > > On 11/13/25 4:43 PM, Frediano Ziglio wrote:
> > >> From: Frediano Ziglio <frediano.ziglio@cloud.com>
> > >>
> > >> For xen.gz file we strip all symbols and have an additional
> > >> xen-syms.efi file version with all symbols.
> > >> Make xen.efi more coherent stripping all symbols too.
> > >> xen-syms.efi can be used for debugging.
> > >>
> > >> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> > > Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > >
> > > Thanks.
> >
> > Thanks.  Unfortunately CI says no.
> >
> > Ubuntu's 20.04, 18.04 and 16.04 all fail:
> > https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2159622=
869
> >
> > From 16.04:
> >
> > 2025-11-14T18:01:51.192964Z 01O strip xen-syms.efi -o xen.efi
> > 2025-11-14T18:01:51.198151Z 01O strip:xen-syms.efi[.init]: relocation c=
ount is negative: File truncated
> > 2025-11-14T18:01:51.198166Z 01O strip: xen.efi: Failed to read debug da=
ta section
> > 2025-11-14T18:01:51.198169Z 01O strip:xen.efi: error copying private BF=
D data: File truncated
> > 2025-11-14T18:01:51.198932Z 01O arch/x86/Makefile:207: recipe for targe=
t 'xen.efi' failed
> > 2025-11-14T18:01:51.198937Z 01O make[3]: *** [xen.efi] Error 1
> > 2025-11-14T18:01:51.199616Z 01O build.mk:90: recipe for target 'xen' fa=
iled
> > 2025-11-14T18:01:51.199619Z 01O make[2]: *** [xen] Error 2
> > 2025-11-14T18:01:51.200402Z 01O Makefile:600: recipe for target 'xen' f=
ailed
> > 2025-11-14T18:01:51.200409Z 01O make[1]: *** [xen] Error 2
> >
> >
> > I find it hard to believe that the relocation count is really negative,
> > and given that newer binuitls works, I expect this is a binutils bug.
> >
>=20
> Unless the message is just misleading I find it hard to have a
> negative number of items in a container.
>=20
> > Nevertheless, we need some workaround.  Given that the previous
> > behaviour was not to strip, I think we can reuse that for broken toolch=
ains?
> >
>=20
> Something like that ?
>=20
> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index a154ffe6b2..c465eb12e2 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -236,7 +236,9 @@ ifeq ($(CONFIG_DEBUG_INFO),y)
>         $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) \
>                 -O elf64-x86-64 $(TARGET)-syms.efi $@.elf
>  endif
> -       $(STRIP) $(TARGET)-syms.efi -o $@
> +       $(STRIP) $(TARGET)-syms.efi -o $@ || { \
> +               LANG=3DC strip $(TARGET)-syms.efi -o $@ 2>&1 | grep -q \
> +               "relocation count is negative" && mv -f $(TARGET)-syms.ef=
i $@; }
>  ifneq ($(CONFIG_DEBUG_INFO),y)
>         rm -f $(TARGET)-syms.efi
>  endif

On Ubuntu 20.04 it fails different way:

    strip: xen.efi: Data Directory size (1c) exceeds space left in section =
(18)
    strip: xen.efi: error copying private BFD data: file in wrong format

Looks similar to:
https://lore.kernel.org/all/3TMd7J2u5gCA8ouIG_Xfcw7s5JKMG06XsDIesEB3Fi9htUJ=
43Lfl057wXohlpCHcszqoCmicpIlneEDO26ZqT8QfC2Y39VxBuqD3nS1j5Q4=3D@trmm.net/

Qubes has this patch:
https://github.com/QubesOS/qubes-vmm-xen/blob/main/0608-Fix-buildid-alignme=
nt.patch

    diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
    index 9a1dfe1b340a..26a23a7b0651 100644
    --- a/xen/arch/x86/xen.lds.S
    +++ b/xen/arch/x86/xen.lds.S
    @@ -171,6 +171,7 @@ SECTIONS
            __note_gnu_build_id_end =3D .;
       } PHDR(note) PHDR(text)
     #elif defined(BUILD_ID_EFI)
    +  . =3D ALIGN(32);
       DECL_SECTION(.buildid) {
            __note_gnu_build_id_start =3D .;
            *(.buildid)

Lets see if that helps:
https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/2167783980

And few lines earlier there is also:

    ld: xen-syms.efi: warning: section .init: alignment 2**15 not represent=
able

> It will fall back to not stripping in case that bug is detected. I
> don't know how to test it.
> (the LANG=3DC is to always force the English message).

If going this way, use LC_ALL=3DC (otherwise LC_ALL=3Dsomething present in
the env would override your LANG=3DC). But given there are different
messages, this may not be the best option.

And TBH, I don't like silent behavior change based on (unknown) version
of binutils. Lets see if the alignment adjustment helps. While it
shouldn't be necessary on newer binutils (thanks to Jan's fix there -
see thread linked above), IMO it isn't too bad to add it, to keep older
versions happy. And it can be dropped, once we raise toolchain base
version next time.

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

--8V+dyZVEzhjP7r7u
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkd3RMACgkQ24/THMrX
1yytqQf9GCOjZO8eg/0Md3rKTtGpo0Ze7JCf0Wsb9HtG50wlWY3lwpEr6poGtDjK
nTzUu1XDtYORf5FuJEbmta/1F8jf/IrmfcDhvBbIYEGdNVu4vcle/gXGsr1PJVda
b2biooGbNPzqJBewZuq4me7+Kn/Ri/0CE4n6ik10s8RFhXauyPUP/ar8jHazvj6l
iKKtJ48A+2kaHHez2Q1h6dWmk4bvoAwxPFtcfNYUwSGPszq3beMKquRa/6stz6Ey
C1TRPEVkFYI/T57oKiCTBduOauVyVawOlLjQDnt5MnuILBMRg3EzQ0lysERhEcRH
kp19ftScMMpawtjhDLRhLVQW3+zpFA==
=DOlS
-----END PGP SIGNATURE-----

--8V+dyZVEzhjP7r7u--


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 16:02:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 16:02:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166110.1492732 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLkdt-0000EY-GY; Wed, 19 Nov 2025 16:02:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166110.1492732; Wed, 19 Nov 2025 16:02:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLkdt-0000ER-Dx; Wed, 19 Nov 2025 16:02:49 +0000
Received: by outflank-mailman (input) for mailman id 1166110;
 Wed, 19 Nov 2025 16:02:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oRf7=53=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vLkds-0000EL-4e
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 16:02:48 +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 2fc075a3-c561-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 17:02:46 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB5910.namprd03.prod.outlook.com (2603:10b6:510:33::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 16:02:36 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.009; Wed, 19 Nov 2025
 16:02: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: 2fc075a3-c561-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uXAzE2tMVTTew3t2sp3q1ZfkuHLoAPg4WkI2ptCw4lUY6+rtpLPssvqVaZgsOtpWVE2T6pvHv5UQGFhPMKceqnd4NTvrHmkkqUxjLmL63wb/62Bj+FRpQdFlx4fcQVfh6TpfSI7ow7yxsthAWWMfrtmqBjATRKdM53z8zrOr6DEQHHKzVqwinV05mDLQ3nrfwil3Wtx8AgNaPHPyze2tgydahmon7tGAyD7QBhdxbYvN0gKYC58da36VBzEHLEVzOwbAZm62M32p+hWIvXmRQY0ZoPkA9GpiDL7/Qfh/SSXHGYVdZWnD8rvgBWrigng24Y+ACdhAqYeDXeDjkcFEvA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YFzVkDdrnd7R9L/HMUgLcm4veUPC8HuKrFB18LWsz28=;
 b=kCsl9Nt0HgsYDd8vnDBmDzF9YC4rGHMvch0XEDWCjIRhBW+rQH/1zqhfOqqJ8c2MW7tC219bGvhtAFyKfL7alC2V1ON2oabXO/qD9aQG8wXXzmGZaR8oLj3AbJuY8lSAwZ2/pr2FFG8XoHv2h3LwMghD5N9Bzn385akg+pUNF8TWldZIDOWqQ4UrNGgBmW9kYvK+jElKXtznLOnavyYeDoFX8CetVhAi8U/jsOTdQDTCyKInnG3E6IqwK0fmMw6Iy1FuOYmWHsKCrLWsokGLMDX4rxBSTIsKnW3RZ7DMJRHfnHQ8Hs9kWhDgHcph9ILyNC0vXouvdgk4rkl1ilYMAg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YFzVkDdrnd7R9L/HMUgLcm4veUPC8HuKrFB18LWsz28=;
 b=eKIVw9TUnlYmmCFmmeWCgUTsjyv2RJ38KzBWDDoV9jFetPXxXz2Ith+o1M6X4WnZ7Z/576DtDh5PNaynHHNSqaFwz1saY7zbpo30a7MGhNWGYpOKQbqY4Oy2PGu75U3omYD8ZXh9eFfLAxfnsacnKNJBzT8ZE7DGbtecazaZ144=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <38ba402c-6920-47f6-91d3-7b499c407c36@citrix.com>
Date: Wed, 19 Nov 2025 16:02:30 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8] xen: Strip xen.efi by default
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Frediano Ziglio <freddy77@gmail.com>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Frediano Ziglio <frediano.ziglio@citrix.com>,
 xen-devel@lists.xenproject.org, Frediano Ziglio <frediano.ziglio@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <20251113154358.28704-1-frediano.ziglio@citrix.com>
 <6729f3d9-618c-4dcd-93f8-d02ca7cea017@gmail.com>
 <8f8a769d-95ea-4554-8ee0-d6247f583e37@citrix.com>
 <CAHt6W4eDDm-fNUB7W1Zgj+x-bkK2fxTB50C38T4Uy0_Ofy_cww@mail.gmail.com>
 <aR3dFPTeH4Wegodd@mail-itl>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <aR3dFPTeH4Wegodd@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO0P123CA0010.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:354::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_|PH0PR03MB5910:EE_
X-MS-Office365-Filtering-Correlation-Id: cf8cad4b-8a38-4373-9e09-08de27850e33
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:
	=?utf-8?B?blNPRk5sOUIxVGJjUFh2RXIycWdjYVFibjc0b3Ywem5hWlFXQm5CRGhrM1NQ?=
 =?utf-8?B?U3hCN2RyVW5tYVRmS2FsZitqRm5aSStpaElLYjYxSnpzdGwxL04zY3VWaUJN?=
 =?utf-8?B?ekNPSytTYjYzZGVNTFJoaEV0bXhodCt0cGtvdk1qak1helVyVWE3OUlybDJz?=
 =?utf-8?B?R0kvd29PZjdMZFBqYlo4U1lPR2VFSmdwRTJBOEZiZGFqc0dqbnRpNjRYTVVD?=
 =?utf-8?B?cUt4OWpMSTBkR0U0a0lvSmtIZlFnODd5dHFvVHhRbXJDakN5Zi9hRHphWlRw?=
 =?utf-8?B?Tk9BWHVnYVR1REpLNTh0Z2gxVEREOS9wNGpMWXRzUk1kaUo4L2dmNXQ2dW5H?=
 =?utf-8?B?Vk12UnFVZmc2RGgwdlpvVjFWbzdVWE5sRGhaTXV3RjNrMmZLRGN6RnBzMFho?=
 =?utf-8?B?WGxpTDhBUklHb1U0YzYrNWg4MDJoSUxMekZoTHliY2ZncjQ2R1lWM1htS21N?=
 =?utf-8?B?QnQ2NE1qUzljZFUxVzkzazhuL2Y4RG5UMWV0WG1Mc0kwVVBzakpXTy9ZZWJB?=
 =?utf-8?B?NEkweDEyY1lHMjd4Q0lha0xjVmhqc2JQbzkyOUtTcU81NmlFREc5R0FNMXZX?=
 =?utf-8?B?cFFaelE3c1B5ME0wUlNmZnhmdEMyYVRTWC9QSDFqeXRMZHBsSEJFbVNkZDZU?=
 =?utf-8?B?OUlkbi9rbGx5UWFLSlhOL2pqOFZQeHgweFRPaDdjb0NRV005ckdyMnUreXhU?=
 =?utf-8?B?Q0tNZU54TmlZNXhVRit0QWdadis0OHA4REpqdVNWbkIzZmZ4bHRLY0pVa2x6?=
 =?utf-8?B?UGRZTnNDZkMvSUgvelVMOVZTdHZXckI1UnBJWTBNb1Fta1FmaG8xdEU4VEgv?=
 =?utf-8?B?bEpiZTlNcVVWeFdWSUplRkdhLzkzRzJjRjZPODNxOTlDYjB1SXV0UzZ2aGk1?=
 =?utf-8?B?ekc0T2pCREo2UUFSdXRqMzJ5c01MR2dIYXZYK2MzVldQU3VKUVBuZ0wwMFp5?=
 =?utf-8?B?Y3c5Yk9lYTAxM0IyK0x1SzVVNmZkNHA4SjArOWc0K1BZTjRkQ2xIUDlsaVpt?=
 =?utf-8?B?UStOMkJEZkwrMHI5YnYwc3JXR01URThCSWRhd2tLZW5tY2M4T3kya3hPa0wr?=
 =?utf-8?B?QmFxTlhZaXgrenBGK1p4UUVLSzhycXRzZDBYVkNodnlkaUI0S25NeEhWd1ZQ?=
 =?utf-8?B?QmdlMUhyQkFwU25nUlE0NVhpWnlVM2JUbmpERzZMdjRXN0RjdWxadHBhb01T?=
 =?utf-8?B?dDlrMnBodkF3TURLcURXMFNUN29tb291dFdOTVVWTTRCTXU1bGRNYmJzeGx3?=
 =?utf-8?B?Q2dwOE1lWXNzcEFJUUNBTkhyckc0VzNJaHJxTHFZcGpIYVlUclB2Z3VOTG80?=
 =?utf-8?B?Qm9NbFhYR2c1N3NWSEdwZ1k1cFcxeDhKdkhjOEJ0TTZGYmprclE2bmVVbUxC?=
 =?utf-8?B?bm5sUWs0Z0lpVWxncmNhdS94b05mRUpjazErQUJFMnNQcEsxZ08xWitmOWpG?=
 =?utf-8?B?dTg5RW9LdVBCQ2JYcnpteUR2NjZsdEdLMllOUml3U3lhSnc0Tm13ZWR4VXJk?=
 =?utf-8?B?dm1UY2VEbEtKVjNzZ3BmU2J6U1lkR3dlUkpFNlJPclpoRE1PYlQrTlFkWTBI?=
 =?utf-8?B?RVNseXlpaWF2TDRDdG00MkQvclc2TGZNaGFyaGNOdWJ2cXNkY0tNTGtab0Yv?=
 =?utf-8?B?RVkzckFiWjFxVHQ1TTRuYVNZbHZUQW8zTjdkZmloWVJVdk1xRndYYzZ1a0hB?=
 =?utf-8?B?c08yZW16UU5vRFFyWE1YU2wrVWdRK2VDZEt1eHZUMlpHMDRFdmVpa0pxeDE2?=
 =?utf-8?B?Znp0dHYyblBqTTJJMkh5NXd3SUZOeC91RmlXOUJ5YWxtQW5sbEVKak9pZits?=
 =?utf-8?B?ZTI0UVhjMzBVQ21LR1JCeC9kYWg4VlNKWTQ2NWwwSCtabnN1dWRQck5vUU9D?=
 =?utf-8?B?aWxOSUptMW0rZE81QmlXY09ITWcxUUZOTVo1Wm0yd1VyajRQYUtyRDQrTnpJ?=
 =?utf-8?Q?RwGupjQsiK8lv9lYQMkHlu3vIMXp6X53?=
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?MHVFVTU5bzFrTmVWNTkzQVY2eHZodTlmdXhNb0FLd3M4OEkwVXZFSkhta0tm?=
 =?utf-8?B?ZUVtSzU1VW1hbFZYdlpDQ2hoMG9INzNtMXUvYmI5N3dRaGtTVVhFR01VVFQ2?=
 =?utf-8?B?Y0dIb1ZuRkR0Vmw3N3dyc1lReWpOdi92RUJLL0YzWWNHMnIyeVVuUTRoYjhy?=
 =?utf-8?B?dDVTM3lsMG5NRjFJQTYvS2FNVlIwVTFpL1FhVk85Yjhwbkw2M0plSXh0aVNT?=
 =?utf-8?B?UzY0MG1PTzB0eWlEYmNuNHU0OWt5aDlURWRpTC95dWpNZTZaNGc5SmxUa0hG?=
 =?utf-8?B?WlR4VnQyaVROYkF1ZEFpMlZpQURiQlcwMFdDOEI3Z2MwRlFqUk9qSHNWaG5i?=
 =?utf-8?B?T29iQXNBdENDTFNxYmRXNDJCbkdmaHg5MnQ5enZPdGJqMnhKQ200MnlGT2pN?=
 =?utf-8?B?VDFDWE5VWXZPMWZWSEJYSEQ0cUxyeHh5d1Y0VFppbTlZT0tySndTRDMvejJU?=
 =?utf-8?B?bzZEa05YdU5TSjV3bTYybmtYU20xcWJkbzdNUUxVOGVmMGxyMU40cEFHQzJD?=
 =?utf-8?B?VzdRcXVBYm5rY0pqQnBwY0RyNUw4U2NpZUt2MUVkZmNvaFd0UVUxdFlIbjRI?=
 =?utf-8?B?ek85bkZPdFVTRGxtQWZqMVc4OUZUckMvSzFQb3FSSThiU3NyMVg0bDZ3Wkcv?=
 =?utf-8?B?d3B5b3FQM3pHdEpFZFNPN3dPb3ZJN3lDdEVzVFpTOFlSZGE2Y2NUTHdVVjdY?=
 =?utf-8?B?ZENWS21jclFkZ2dNWkovOVlaUkhvKzYxeTdYcWlydnRwb1l4cWVETzVESzlU?=
 =?utf-8?B?eUNkbGR2WWcramtOZ2RRdEI4ODdrUktpaFVHSnVLa1RqbExINGNFUHV4REdo?=
 =?utf-8?B?MFpJeGJHc1dJelN6SVVKVnBMdWY4TFJVTVFETUIrdWQydFZ4bkhQaXRIaCtG?=
 =?utf-8?B?WGlPVDhRemgraXYzQWdNU1hMbm9tTlp6cjlERC9PSldYTGtTcXhEV09ING1y?=
 =?utf-8?B?OUFqajhFYno1b2VtNi9zeHc3UFQwS1JwcytSTXorWVYwT1lOVHpLdGkvcmxZ?=
 =?utf-8?B?SEhQNGRITmtZVlZ0ZTIrQ2FQakt1K1NxZU95N2Y5M0FUdzFZOFpjQ1N3Tzdn?=
 =?utf-8?B?b3F3UEE4VkEyZVBuS2IzMWRLWUFjVVU3R1lwbEUwWFlKLzBRaGsxVmlEb2Fv?=
 =?utf-8?B?eTFzaWtZV0dxQmgzMFE1c0JLSlJLYlZTVVpKcnBLTStjV1lhTHJXajQyK05s?=
 =?utf-8?B?SXk2MFlKUCtDaEs0Um9IZ1FDSGxRR25vU2I4R0pDK1NZM3NMVjFXektmeERB?=
 =?utf-8?B?bnViMEd6MnBlV1RmVG93NTF6c2FZWitVN1FwZnkyYi85QkR6dDRBZ3F3bTg0?=
 =?utf-8?B?ZTdTVHFycmVQdWZ2eXdqVHJLT0gzUmNuRk5GTVRyYXF2NWZhbVJGSXE1bHR6?=
 =?utf-8?B?cG1kS3A2Wmp3UWl4UktoUmdlUVdEUlF6T2ZrL1pWWjFiNTZHZWN1ZHFuMjZ6?=
 =?utf-8?B?L0dBdG9RVG9PdTEweTlFRnREaEZZK2F3SzU5ZHROVEVIL3R0bDExbVFwbUpt?=
 =?utf-8?B?SDV6Z2ROOFpnVUhvems4SURrSzNpMmhwMy9OUUw2aDRBU2gxQ05nSlNjbEpC?=
 =?utf-8?B?elpDUlkwWmUxRXl1RFRVc0FBMjZaaWxzU1dueVZrQmxWYnVkNHl1SG1OWXR2?=
 =?utf-8?B?SHNtb3VxZ3l6WDJZYVJ5YlB0blBzTUkvU045WFlqU1J0bXpMUHRTMFQ4RGJL?=
 =?utf-8?B?UXpiL2dkZ2JUQWhkOEdHUGVic3E0Lzh4VGsyM2V0TlBqQktyNW5kWEtxdVlC?=
 =?utf-8?B?ZkRSLzFtT0t4OFNWb0J4bFdaNUJpQjF4akdLdUpBN3ZKMkZ4b0s3QzZTTEJQ?=
 =?utf-8?B?YnZINWlqYkVuZkROVzRRTE51ZFFqRzhTaDBDY0RSaytENncvVEJ5ZkxTYUlu?=
 =?utf-8?B?QlZxM0s2RytkT1NXbGZib1pMenFSalk5SG9wcDZPMUVaUm1zcnVTdHNQdEF0?=
 =?utf-8?B?YVA0RDBMeWNSRkphL29TaUkvck1LU29uVjRvRmpIY2JnWWRzRVR5bEhPODAv?=
 =?utf-8?B?OERBUzlKTWU3T1lyZ0UvcThrdE9FY3BYY3plKytCY2NPbnRWdGtGSm5nSXEz?=
 =?utf-8?B?S09GRzJqMDlaQi9GOXNDVTlhYkQvYitVUVNXQnRDQVdrYW1nS2NpUlc0MzE0?=
 =?utf-8?B?cm9mcTYxcGNnNGJHSDNCZUxBcVR6bXF4SksxWDdXVnpTUGU3VjB1RnNIeW1a?=
 =?utf-8?B?NFE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cf8cad4b-8a38-4373-9e09-08de27850e33
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2025 16:02:35.6395
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: aOGnKdEWbU7p6+3Ex02UkXpgmKL3QYaerkz2P4ISvFiN3qDibmCK11ot02OEqfWVerJjPZTfGgM7K3ixYuH1Rcq72rT7iv4wRtPubUJXh/Y=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB5910

On 19/11/2025 3:06 pm, Marek Marczykowski-GÃ³recki wrote:
> On Sat, Nov 15, 2025 at 06:23:08AM +0000, Frediano Ziglio wrote:
>> On Fri, 14 Nov 2025 at 19:18, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>>> On 14/11/2025 3:40 pm, Oleksii Kurochko wrote:
>>>>
>>>> On 11/13/25 4:43 PM, Frediano Ziglio wrote:
>>>>> From: Frediano Ziglio <frediano.ziglio@cloud.com>
>>>>>
>>>>> For xen.gz file we strip all symbols and have an additional
>>>>> xen-syms.efi file version with all symbols.
>>>>> Make xen.efi more coherent stripping all symbols too.
>>>>> xen-syms.efi can be used for debugging.
>>>>>
>>>>> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
>>>> Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>
>>>> Thanks.
>>> Thanks.  Unfortunately CI says no.
>>>
>>> Ubuntu's 20.04, 18.04 and 16.04 all fail:
>>> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2159622869
>>>
>>> From 16.04:
>>>
>>> 2025-11-14T18:01:51.192964Z 01O strip xen-syms.efi -o xen.efi
>>> 2025-11-14T18:01:51.198151Z 01O strip:xen-syms.efi[.init]: relocation count is negative: File truncated
>>> 2025-11-14T18:01:51.198166Z 01O strip: xen.efi: Failed to read debug data section
>>> 2025-11-14T18:01:51.198169Z 01O strip:xen.efi: error copying private BFD data: File truncated
>>> 2025-11-14T18:01:51.198932Z 01O arch/x86/Makefile:207: recipe for target 'xen.efi' failed
>>> 2025-11-14T18:01:51.198937Z 01O make[3]: *** [xen.efi] Error 1
>>> 2025-11-14T18:01:51.199616Z 01O build.mk:90: recipe for target 'xen' failed
>>> 2025-11-14T18:01:51.199619Z 01O make[2]: *** [xen] Error 2
>>> 2025-11-14T18:01:51.200402Z 01O Makefile:600: recipe for target 'xen' failed
>>> 2025-11-14T18:01:51.200409Z 01O make[1]: *** [xen] Error 2
>>>
>>>
>>> I find it hard to believe that the relocation count is really negative,
>>> and given that newer binuitls works, I expect this is a binutils bug.
>>>
>> Unless the message is just misleading I find it hard to have a
>> negative number of items in a container.
>>
>>> Nevertheless, we need some workaround.  Given that the previous
>>> behaviour was not to strip, I think we can reuse that for broken toolchains?
>>>
>> Something like that ?
>>
>> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
>> index a154ffe6b2..c465eb12e2 100644
>> --- a/xen/arch/x86/Makefile
>> +++ b/xen/arch/x86/Makefile
>> @@ -236,7 +236,9 @@ ifeq ($(CONFIG_DEBUG_INFO),y)
>>         $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) \
>>                 -O elf64-x86-64 $(TARGET)-syms.efi $@.elf
>>  endif
>> -       $(STRIP) $(TARGET)-syms.efi -o $@
>> +       $(STRIP) $(TARGET)-syms.efi -o $@ || { \
>> +               LANG=C strip $(TARGET)-syms.efi -o $@ 2>&1 | grep -q \
>> +               "relocation count is negative" && mv -f $(TARGET)-syms.efi $@; }
>>  ifneq ($(CONFIG_DEBUG_INFO),y)
>>         rm -f $(TARGET)-syms.efi
>>  endif
> On Ubuntu 20.04 it fails different way:
>
>     strip: xen.efi: Data Directory size (1c) exceeds space left in section (18)
>     strip: xen.efi: error copying private BFD data: file in wrong format
>
> Looks similar to:
> https://lore.kernel.org/all/3TMd7J2u5gCA8ouIG_Xfcw7s5JKMG06XsDIesEB3Fi9htUJ43Lfl057wXohlpCHcszqoCmicpIlneEDO26ZqT8QfC2Y39VxBuqD3nS1j5Q4=@trmm.net/
>
> Qubes has this patch:
> https://github.com/QubesOS/qubes-vmm-xen/blob/main/0608-Fix-buildid-alignment.patch
>
>     diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
>     index 9a1dfe1b340a..26a23a7b0651 100644
>     --- a/xen/arch/x86/xen.lds.S
>     +++ b/xen/arch/x86/xen.lds.S
>     @@ -171,6 +171,7 @@ SECTIONS
>             __note_gnu_build_id_end = .;
>        } PHDR(note) PHDR(text)
>      #elif defined(BUILD_ID_EFI)
>     +  . = ALIGN(32);
>        DECL_SECTION(.buildid) {
>             __note_gnu_build_id_start = .;
>             *(.buildid)
>
> Lets see if that helps:
> https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/2167783980

That seems to have fixed 20.04 and 18.04.

The extra line wants a comment at least identifying roughly which
binutils it's a workaround for, so we can drop it eventually.

And, as it's already in a downstream, it should be upstreamed and
backported.

>
> And few lines earlier there is also:
>
>     ld: xen-syms.efi: warning: section .init: alignment 2**15 not representable

This can't be helped.Â  It's not an error, but you also cant get LD to
shut up about it.

>
>> It will fall back to not stripping in case that bug is detected. I
>> don't know how to test it.
>> (the LANG=C is to always force the English message).
> If going this way, use LC_ALL=C (otherwise LC_ALL=something present in
> the env would override your LANG=C). But given there are different
> messages, this may not be the best option.
>
> And TBH, I don't like silent behavior change based on (unknown) version
> of binutils. Lets see if the alignment adjustment helps. While it
> shouldn't be necessary on newer binutils (thanks to Jan's fix there -
> see thread linked above), IMO it isn't too bad to add it, to keep older
> versions happy. And it can be dropped, once we raise toolchain base
> version next time.

Given it's now only 16.04 broken, how about simply excluding xen.efi
with these broken toolchains?

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 16:35:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 16:35:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166129.1492742 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLl9R-0004GK-1X; Wed, 19 Nov 2025 16:35:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166129.1492742; Wed, 19 Nov 2025 16:35:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLl9Q-0004GD-V2; Wed, 19 Nov 2025 16:35:24 +0000
Received: by outflank-mailman (input) for mailman id 1166129;
 Wed, 19 Nov 2025 16: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=Dri0=53=yandex-team.ru=vsementsov@srs-se1.protection.inumbo.net>)
 id 1vLl8e-0004Db-Oe
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 16:34:37 +0000
Received: from forwardcorp1a.mail.yandex.net (forwardcorp1a.mail.yandex.net
 [178.154.239.72]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a1f5d023-c565-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 17:34:35 +0100 (CET)
Received: from mail-nwsmtp-smtp-corp-main-69.vla.yp-c.yandex.net
 (mail-nwsmtp-smtp-corp-main-69.vla.yp-c.yandex.net
 [IPv6:2a02:6b8:c1f:3a87:0:640:845c:0])
 by forwardcorp1a.mail.yandex.net (Yandex) with ESMTPS id 7BFCAC0678;
 Wed, 19 Nov 2025 19:34:30 +0300 (MSK)
Received: from [IPV6:2a02:6bf:8080:d4f::1:a] (unknown [2a02:6bf:8080:d4f::1:a])
 by mail-nwsmtp-smtp-corp-main-69.vla.yp-c.yandex.net (smtpcorp/Yandex) with
 ESMTPSA id QYZPeU1FLa60-mQxSyg0n; Wed, 19 Nov 2025 19:34:30 +0300
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a1f5d023-c565-11f0-9d18-b5c5bf9af7f9
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru;
	s=default; t=1763570070;
	bh=nvUxf4V4e/z9dwNpB0No3uc5zUvVA+AcUD4f7gSNLCY=;
	h=From:In-Reply-To:Cc:Date:References:To:Subject:Message-ID;
	b=b4HvaIDkLdN13ZIRsj7vpKOom9PrDP1UVvmJwn5Ej4iOeBldqY/rc59PIRJWV6Jfk
	 Rc+59oFHW2OhaV1fIpTz2cPhhqz+U1DoFm08nRC734t1aRTOAqTleRaQ9XC9f2fWVb
	 NOHTrES/em7yeh3uIebA6z4lvlE5ELFCJo0LMEgE=
Authentication-Results: mail-nwsmtp-smtp-corp-main-69.vla.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru
Message-ID: <bf44d9cd-806a-4d2c-8cff-0a88222959ed@yandex-team.ru>
Date: Wed, 19 Nov 2025 19:34:26 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] hw/core/loader: Make load_elf_hdr() return bool,
 simplify caller
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: kwolf@redhat.com, hreitz@redhat.com, mst@redhat.com, imammedo@redhat.com,
 anisinha@redhat.com, gengdongjiu1@gmail.com, peter.maydell@linaro.org,
 alistair@alistair23.me, edgar.iglesias@gmail.com, npiggin@gmail.com,
 harshpb@linux.ibm.com, palmer@dabbelt.com, liwei1518@gmail.com,
 dbarboza@ventanamicro.com, zhiwei_liu@linux.alibaba.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 berrange@redhat.com, peterx@redhat.com, farosas@suse.de, eblake@redhat.com,
 eduardo@habkost.net, marcel.apfelbaum@gmail.com, philmd@linaro.org,
 wangyanan55@huawei.com, zhao1.liu@intel.com, qemu-block@nongnu.org,
 qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-riscv@nongnu.org,
 xen-devel@lists.xenproject.org
References: <20251119130855.105479-1-armbru@redhat.com>
 <20251119130855.105479-2-armbru@redhat.com>
Content-Language: en-US
From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
In-Reply-To: <20251119130855.105479-2-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 19.11.25 16:08, Markus Armbruster wrote:
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

> ---
>   include/hw/loader.h |  4 +++-
>   hw/arm/boot.c       |  6 +-----
>   hw/core/loader.c    |  8 ++++++--
>   hw/riscv/spike.c    | 10 +---------
>   4 files changed, 11 insertions(+), 17 deletions(-)
> 
> diff --git a/include/hw/loader.h b/include/hw/loader.h
> index d035e72748..6f91703503 100644
> --- a/include/hw/loader.h
> +++ b/include/hw/loader.h
> @@ -188,8 +188,10 @@ ssize_t load_elf(const char *filename,
>    *
>    * Inspect an ELF file's header. Read its full header contents into a
>    * buffer and/or determine if the ELF is 64bit.
> + *
> + * Returns true on success, false on failure.

I don't really care, but IMO, it's obvious contract for bool+errp functions, not worth a comment.

>    */
> -void load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp);
> +bool load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp);
>   
>   ssize_t load_aout(const char *filename, hwaddr addr, int max_sz,
>                     bool big_endian, hwaddr target_page_size);

-- 
Best regards,
Vladimir


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 16:39:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 16:39:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166142.1492753 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLlDH-0004pN-HE; Wed, 19 Nov 2025 16:39:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166142.1492753; Wed, 19 Nov 2025 16:39: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 1vLlDH-0004pG-EK; Wed, 19 Nov 2025 16:39:23 +0000
Received: by outflank-mailman (input) for mailman id 1166142;
 Wed, 19 Nov 2025 16: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=Dri0=53=yandex-team.ru=vsementsov@srs-se1.protection.inumbo.net>)
 id 1vLlDH-0004pA-02
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 16:39:23 +0000
Received: from forwardcorp1a.mail.yandex.net (forwardcorp1a.mail.yandex.net
 [178.154.239.72]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4c7a2d3c-c566-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 17:39:21 +0100 (CET)
Received: from mail-nwsmtp-smtp-corp-main-83.vla.yp-c.yandex.net
 (mail-nwsmtp-smtp-corp-main-83.vla.yp-c.yandex.net
 [IPv6:2a02:6b8:c2d:7394:0:640:5a8a:0])
 by forwardcorp1a.mail.yandex.net (Yandex) with ESMTPS id A42C7C0417;
 Wed, 19 Nov 2025 19:39:19 +0300 (MSK)
Received: from [IPV6:2a02:6bf:8080:d4f::1:a] (unknown [2a02:6bf:8080:d4f::1:a])
 by mail-nwsmtp-smtp-corp-main-83.vla.yp-c.yandex.net (smtpcorp/Yandex) with
 ESMTPSA id EdZ4hj1FoqM0-PnOuENIM; Wed, 19 Nov 2025 19:39:19 +0300
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c7a2d3c-c566-11f0-980a-7dc792cee155
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru;
	s=default; t=1763570359;
	bh=DM0KRnw/bJmlXF59KSLJHO7inhk1CSuI+W867TiXkhk=;
	h=From:In-Reply-To:Cc:Date:References:To:Subject:Message-ID;
	b=1aV3AQx9aES23Vo5+MMzL/Y4U1Q/xSdVQV9kID9CPGBFyxOO5gCBPF5Z0uI5h3BF4
	 iYmwL1dOKyCcf3BHSPNZ0GR9CkFWL1iXtOFXUxpaH5+YEU4mAePovvIojEwsXcoIkr
	 pM/RDLPTvlXlZtbSzEM/5jVb9Kkrncl88vVYyO64=
Authentication-Results: mail-nwsmtp-smtp-corp-main-83.vla.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru
Message-ID: <a36f938d-b35a-4605-ab77-6ed7dd419945@yandex-team.ru>
Date: Wed, 19 Nov 2025 19:39:14 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] hw/nvram/xlnx-bbram: More idiomatic and simpler error
 reporting
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: kwolf@redhat.com, hreitz@redhat.com, mst@redhat.com, imammedo@redhat.com,
 anisinha@redhat.com, gengdongjiu1@gmail.com, peter.maydell@linaro.org,
 alistair@alistair23.me, edgar.iglesias@gmail.com, npiggin@gmail.com,
 harshpb@linux.ibm.com, palmer@dabbelt.com, liwei1518@gmail.com,
 dbarboza@ventanamicro.com, zhiwei_liu@linux.alibaba.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 berrange@redhat.com, peterx@redhat.com, farosas@suse.de, eblake@redhat.com,
 eduardo@habkost.net, marcel.apfelbaum@gmail.com, philmd@linaro.org,
 wangyanan55@huawei.com, zhao1.liu@intel.com, qemu-block@nongnu.org,
 qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-riscv@nongnu.org,
 xen-devel@lists.xenproject.org
References: <20251119130855.105479-1-armbru@redhat.com>
 <20251119130855.105479-3-armbru@redhat.com>
Content-Language: en-US
From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
In-Reply-To: <20251119130855.105479-3-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 19.11.25 16:08, Markus Armbruster wrote:
> bbram_bdrv_error() interpolates a "detail" string into a template with
> error_setg_errno(), then reports the result with error_report().
> Produces error messages with an unwanted '.':
> 
>      BLK-NAME: BBRAM backstore DETAIL failed.: STERROR
> 
> Replace both calls of bbram_bdrv_error() by straightforward
> error_report(), and drop the function.  This is less code, easier to
> read, and the error message is more greppable.
> 
> Also delete the unwanted '.'.

Also, using "errp" name for local "Error *" (one star) variable is a bit misleading.

> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

> ---
>   hw/nvram/xlnx-bbram.c | 18 ++++--------------
>   1 file changed, 4 insertions(+), 14 deletions(-)
> 
> diff --git a/hw/nvram/xlnx-bbram.c b/hw/nvram/xlnx-bbram.c
> index 22aefbc240..fe289bad9d 100644
> --- a/hw/nvram/xlnx-bbram.c
> +++ b/hw/nvram/xlnx-bbram.c
> @@ -88,18 +88,6 @@ static bool bbram_pgm_enabled(XlnxBBRam *s)
>       return ARRAY_FIELD_EX32(s->regs, BBRAM_STATUS, PGM_MODE) != 0;
>   }
>   
> -static void bbram_bdrv_error(XlnxBBRam *s, int rc, gchar *detail)
> -{
> -    Error *errp = NULL;
> -
> -    error_setg_errno(&errp, -rc, "%s: BBRAM backstore %s failed.",
> -                     blk_name(s->blk), detail);
> -    error_report("%s", error_get_pretty(errp));
> -    error_free(errp);
> -
> -    g_free(detail);
> -}
> -
>   static void bbram_bdrv_read(XlnxBBRam *s, Error **errp)
>   {
>       uint32_t *ram = &s->regs[R_BBRAM_0];
> @@ -162,7 +150,8 @@ static void bbram_bdrv_sync(XlnxBBRam *s, uint64_t hwaddr)
>       offset = hwaddr - A_BBRAM_0;
>       rc = blk_pwrite(s->blk, offset, 4, &le32, 0);
>       if (rc < 0) {
> -        bbram_bdrv_error(s, rc, g_strdup_printf("write to offset %u", offset));
> +        error_report("%s: BBRAM backstore write to offset %u failed: %s",
> +                     blk_name(s->blk), offset, strerror(-rc));
>       }
>   }
>   
> @@ -178,7 +167,8 @@ static void bbram_bdrv_zero(XlnxBBRam *s)
>   
>       rc = blk_make_zero(s->blk, 0);
>       if (rc < 0) {
> -        bbram_bdrv_error(s, rc, g_strdup("zeroizing"));
> +        error_report("%s: BBRAM backstore zeroizing failed: %s",
> +                     blk_name(s->blk), strerror(-rc));
>       }
>   
>       /* Restore bbram8 if it is non-zero */


-- 
Best regards,
Vladimir


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 16:43:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 16:43:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166153.1492762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLlHf-0006Ty-0P; Wed, 19 Nov 2025 16:43:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166153.1492762; Wed, 19 Nov 2025 16:43: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 1vLlHe-0006Tr-Tr; Wed, 19 Nov 2025 16:43:54 +0000
Received: by outflank-mailman (input) for mailman id 1166153;
 Wed, 19 Nov 2025 16:43: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=Dri0=53=yandex-team.ru=vsementsov@srs-se1.protection.inumbo.net>)
 id 1vLlHd-0006Tl-Cp
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 16:43:53 +0000
Received: from forwardcorp1a.mail.yandex.net (forwardcorp1a.mail.yandex.net
 [178.154.239.72]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ee335859-c566-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 17:43:52 +0100 (CET)
Received: from mail-nwsmtp-smtp-corp-main-69.vla.yp-c.yandex.net
 (mail-nwsmtp-smtp-corp-main-69.vla.yp-c.yandex.net
 [IPv6:2a02:6b8:c1f:3a87:0:640:845c:0])
 by forwardcorp1a.mail.yandex.net (Yandex) with ESMTPS id E53F9C0678;
 Wed, 19 Nov 2025 19:43:51 +0300 (MSK)
Received: from [IPV6:2a02:6bf:8080:d4f::1:a] (unknown [2a02:6bf:8080:d4f::1:a])
 by mail-nwsmtp-smtp-corp-main-69.vla.yp-c.yandex.net (smtpcorp/Yandex) with
 ESMTPSA id phZGjU1FBqM0-YrNCSosA; Wed, 19 Nov 2025 19:43:51 +0300
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ee335859-c566-11f0-9d18-b5c5bf9af7f9
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru;
	s=default; t=1763570631;
	bh=8MHPFc36XmRWLoEylCS+7mscko0S7lVDKgcOSkUaRq8=;
	h=From:In-Reply-To:Cc:Date:References:To:Subject:Message-ID;
	b=WGbz3m5pVgylCWUF0F7yXY6P1mq/DUxP0B6rUPRLgxlpNN4sMw+uCN5oYPEoz1weL
	 m+DhG/yIsv61AExP9v6dFCYWslHdiqhedix4qeFGaCCN5D/czYjwDaVMig5Ejg93QG
	 +AT5h+gu6ABapeHRV4R1xdXJ1lNH7VT8rDFS41Zs=
Authentication-Results: mail-nwsmtp-smtp-corp-main-69.vla.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru
Message-ID: <c0b7faef-7c89-49c4-90d6-16da94217db9@yandex-team.ru>
Date: Wed, 19 Nov 2025 19:43:51 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] nbd/client-connection: Replace error_propagate() by
 assignment
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: kwolf@redhat.com, hreitz@redhat.com, mst@redhat.com, imammedo@redhat.com,
 anisinha@redhat.com, gengdongjiu1@gmail.com, peter.maydell@linaro.org,
 alistair@alistair23.me, edgar.iglesias@gmail.com, npiggin@gmail.com,
 harshpb@linux.ibm.com, palmer@dabbelt.com, liwei1518@gmail.com,
 dbarboza@ventanamicro.com, zhiwei_liu@linux.alibaba.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 berrange@redhat.com, peterx@redhat.com, farosas@suse.de, eblake@redhat.com,
 eduardo@habkost.net, marcel.apfelbaum@gmail.com, philmd@linaro.org,
 wangyanan55@huawei.com, zhao1.liu@intel.com, qemu-block@nongnu.org,
 qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-riscv@nongnu.org,
 xen-devel@lists.xenproject.org
References: <20251119130855.105479-1-armbru@redhat.com>
 <20251119130855.105479-4-armbru@redhat.com>
Content-Language: en-US
From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
In-Reply-To: <20251119130855.105479-4-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 19.11.25 16:08, Markus Armbruster wrote:
> connect_thread_func() sets a variable to null, then error_propagate()s
> an Error * to it.  This is a roundabout way to assign the Error * to
> it, so replace it by just that.
> 
> Signed-off-by: Markus Armbruster<armbru@redhat.com>


Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

-- 
Best regards,
Vladimir


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 16:45:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 16:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166165.1492773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLlIn-0006z9-9v; Wed, 19 Nov 2025 16:45:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166165.1492773; Wed, 19 Nov 2025 16:45:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLlIn-0006z2-75; Wed, 19 Nov 2025 16:45:05 +0000
Received: by outflank-mailman (input) for mailman id 1166165;
 Wed, 19 Nov 2025 16:45: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=Dri0=53=yandex-team.ru=vsementsov@srs-se1.protection.inumbo.net>)
 id 1vLlIm-0006yw-9L
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 16:45:04 +0000
Received: from forwardcorp1b.mail.yandex.net (forwardcorp1b.mail.yandex.net
 [178.154.239.136]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 18533727-c567-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 17:45:03 +0100 (CET)
Received: from mail-nwsmtp-smtp-corp-canary-81.sas.yp-c.yandex.net
 (mail-nwsmtp-smtp-corp-canary-81.sas.yp-c.yandex.net
 [IPv6:2a02:6b8:c10:49f:0:640:b99a:0])
 by forwardcorp1b.mail.yandex.net (Yandex) with ESMTPS id F27A3893AA;
 Wed, 19 Nov 2025 19:45:00 +0300 (MSK)
Received: from [IPV6:2a02:6bf:8080:d4f::1:a] (unknown [2a02:6bf:8080:d4f::1:a])
 by mail-nwsmtp-smtp-corp-canary-81.sas.yp-c.yandex.net (smtpcorp/Yandex) with
 ESMTPSA id uiZX4u1FEiE0-dyR3VX9a; Wed, 19 Nov 2025 19:45:00 +0300
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 18533727-c567-11f0-9d18-b5c5bf9af7f9
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru;
	s=default; t=1763570700;
	bh=s5SGDEOXCffdPGa2ExWMjbXnxXE80V2KPR7fbbbsK78=;
	h=From:In-Reply-To:Cc:Date:References:To:Subject:Message-ID;
	b=oMT+pXOJswxjJJq1zanTvP8KS2EylucYuHPNHD4L6q6KUnf3xGj709hkkW/XV2ahX
	 I/57FU9PC3BrCmtaQu/FF2c0XnjgR2Zdb67j8D18YC3cxQWboyaRHjFJTVx/WeUBJa
	 JsLwq61D96jB+ELIc9XI/coQIf63FBxXzkOXgr2E=
Authentication-Results: mail-nwsmtp-smtp-corp-canary-81.sas.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru
Message-ID: <0a07425e-ddee-4942-8ae7-dc8b801b1595@yandex-team.ru>
Date: Wed, 19 Nov 2025 19:44:56 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/5] error: error_free(NULL) is safe, drop unnecessary
 conditionals
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: kwolf@redhat.com, hreitz@redhat.com, mst@redhat.com, imammedo@redhat.com,
 anisinha@redhat.com, gengdongjiu1@gmail.com, peter.maydell@linaro.org,
 alistair@alistair23.me, edgar.iglesias@gmail.com, npiggin@gmail.com,
 harshpb@linux.ibm.com, palmer@dabbelt.com, liwei1518@gmail.com,
 dbarboza@ventanamicro.com, zhiwei_liu@linux.alibaba.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 berrange@redhat.com, peterx@redhat.com, farosas@suse.de, eblake@redhat.com,
 eduardo@habkost.net, marcel.apfelbaum@gmail.com, philmd@linaro.org,
 wangyanan55@huawei.com, zhao1.liu@intel.com, qemu-block@nongnu.org,
 qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-riscv@nongnu.org,
 xen-devel@lists.xenproject.org
References: <20251119130855.105479-1-armbru@redhat.com>
 <20251119130855.105479-5-armbru@redhat.com>
Content-Language: en-US
From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
In-Reply-To: <20251119130855.105479-5-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 19.11.25 16:08, Markus Armbruster wrote:
> Signed-off-by: Markus Armbruster<armbru@redhat.com>

Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

-- 
Best regards,
Vladimir


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 17:08:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 17:08:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166179.1492783 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLlfg-0001pU-3h; Wed, 19 Nov 2025 17:08:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166179.1492783; Wed, 19 Nov 2025 17:08: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 1vLlfg-0001pN-0O; Wed, 19 Nov 2025 17:08:44 +0000
Received: by outflank-mailman (input) for mailman id 1166179;
 Wed, 19 Nov 2025 17:08: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=G5Pp=53=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vLlfe-0001pH-4R
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 17:08:42 +0000
Received: from fout-b1-smtp.messagingengine.com
 (fout-b1-smtp.messagingengine.com [202.12.124.144])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6284ca81-c56a-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 18:08:37 +0100 (CET)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfout.stl.internal (Postfix) with ESMTP id 236281D00176;
 Wed, 19 Nov 2025 12:08:35 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Wed, 19 Nov 2025 12:08:35 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 19 Nov 2025 12:08:32 -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: 6284ca81-c56a-11f0-980a-7dc792cee155
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=1763572114;
	 x=1763658514; bh=mDpgXtaCN+orxNRhmcjmJ7cvGHaNrOgIkQZfa3C8Zj4=; b=
	lrbpnjXTEM7PX1DCC8o1t/mTWv3f95vyXHhyOekLypyySZFwVNdG53PwB0CGdDWW
	iaoacghGxG8Y7C52oeT5IOzRY9nLFa7c59FnfMm/yerRePwSBgVkH8lp5yqVCMnw
	PMza1z+gQizqGR8Kc4m5yaSeUKC96RZUBSEOoCw7yS8nKQqIeVqncWhVwjQn7cCa
	wYGAuSrDv0tsjfvLVNRw4vzJzS31AQLq9X9YRsQQ+pY9cYpYXqwXKc9J2qHFqTuR
	05Tge1qTOg5EMEa3Xwze9fIMNknxlIKtosCj2aKWaCCYvlvu3yBjlcvZWJpOYhFF
	rtIFBHXsLCX1Nn7oQkasQA==
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=
	1763572114; x=1763658514; bh=mDpgXtaCN+orxNRhmcjmJ7cvGHaNrOgIkQZ
	fa3C8Zj4=; b=WberbUE/A7zOyBKZ33Rc6HLy5t1ywN0QvsaHlqCUd/iPRKorFq9
	6Yc2Q8Qwb0s9SONwP+YQxr3+MligWTh6ggiiCvR66MNF9srUp++9VpcGkegGn91I
	r5Z0hx3m+TPdRMqLlXhYR6ei6v5vSpAVuVuc9e35tadYTh8HwTInmFgAHQQKAq0f
	Bxf1RhlMB9GraLYtcvDjiTGndI87zXZZBc2ZM6DBZlDKBIAhD2D8g4X+DzJjAvmj
	aMpkbaR1wsogG68m+P9nGRFI4lT/ehFixGBQ6NuwJPon2FYJbzSxGJpk7ApoIJuY
	XSoUN+dMM/9LtbCJwqSHov37S6MRqZXb6Jg==
X-ME-Sender: <xms:kvkdaXedrmGn2uOwN21Pp-ZHn6DNOZe58zuqsX9fcKb8I3gN5nL4dQ>
    <xme:kvkdaQ7pS3J-jO8NJLCrNoFKHUfRo6h7nCQBqrqkbcXmxAfIQ6drqNY9JAjUCL1nj
    rgy43gEe4ASlynP1Om6CvUfQh0hFYSDLWCCgyD5GPA7G-W5zA>
X-ME-Received: <xmr:kvkdaZIcFKJi3ra7KxZqJ_gdmtC8KElG90u334AWggzXvSEXA8VAUNfRu9x87T0J2O9mQBTUEteFHXwamPDIuBjiosB00D_oKF8>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvvdegjeeiucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepudegpd
    hmohguvgepshhmthhpohhuthdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfees
    tghithhrihigrdgtohhmpdhrtghpthhtohepfhhrvgguugihjeejsehgmhgrihhlrdgtoh
    hmpdhrtghpthhtohepohhlvghkshhiihdrkhhurhhotghhkhhosehgmhgrihhlrdgtohhm
    pdhrtghpthhtohepfhhrvgguihgrnhhordiiihhglhhiohestghithhrihigrdgtohhmpd
    hrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdho
    rhhgpdhrtghpthhtohepfhhrvgguihgrnhhordiiihhglhhiohestghlohhuugdrtghomh
    dprhgtphhtthhopegrnhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhr
    tghpthhtohepmhhitghhrghlrdhorhiivghlsegrmhgurdgtohhmpdhrtghpthhtohepjh
    gsvghulhhitghhsehsuhhsvgdrtghomh
X-ME-Proxy: <xmx:kvkdaaWdUzfdFNQeMWDcgELukCB9bRDEYmRrLtFpG4V8x7pSGxK87w>
    <xmx:kvkdaVHlwjfwG8r5WA7n-P7r3yz9P_8xgKKhSvJuaHPz6CSxzjBuPQ>
    <xmx:kvkdaZ6ozBoKpx4aePWiHYOWZR2mtwkHIXvzErR48Yc7w87RZagBmQ>
    <xmx:kvkdabdSxaDJx2g3RtR_OYh-5nEul7-GfBeW2UY1ZOfQnGrB7HvLDw>
    <xmx:kvkdaRClgYp5yO4o60PqIdT54k-r_QR5YWX1Wa0ViNMdBDS75CTSw5Ve>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 19 Nov 2025 18:08:30 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Frediano Ziglio <freddy77@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Frediano Ziglio <frediano.ziglio@citrix.com>,
	xen-devel@lists.xenproject.org,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Demi Marie Obenour <demiobenour@gmail.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v8] xen: Strip xen.efi by default
Message-ID: <aR35jsEXBcV2uEFY@mail-itl>
References: <20251113154358.28704-1-frediano.ziglio@citrix.com>
 <6729f3d9-618c-4dcd-93f8-d02ca7cea017@gmail.com>
 <8f8a769d-95ea-4554-8ee0-d6247f583e37@citrix.com>
 <CAHt6W4eDDm-fNUB7W1Zgj+x-bkK2fxTB50C38T4Uy0_Ofy_cww@mail.gmail.com>
 <aR3dFPTeH4Wegodd@mail-itl>
 <38ba402c-6920-47f6-91d3-7b499c407c36@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="himx9ggVNJp+HM6G"
Content-Disposition: inline
In-Reply-To: <38ba402c-6920-47f6-91d3-7b499c407c36@citrix.com>


--himx9ggVNJp+HM6G
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 19 Nov 2025 18:08:30 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Frediano Ziglio <freddy77@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Frediano Ziglio <frediano.ziglio@citrix.com>,
	xen-devel@lists.xenproject.org,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Demi Marie Obenour <demiobenour@gmail.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v8] xen: Strip xen.efi by default

On Wed, Nov 19, 2025 at 04:02:30PM +0000, Andrew Cooper wrote:
> Given it's now only 16.04 broken, how about simply excluding xen.efi
> with these broken toolchains?

That would mean adjusting README to say a newer binutils is required for
xen.efi, right? Then ofc we would need to figure out which version
specifically. FWIW Ubuntu 16.04 has 2.26 and Ubuntu 18.04 has 2.30.
Would raising required toolchain version (for some configuration here)
even accepted, especially if considered for backporting?

Alternatively, simply disable building xen.efi in CI on 16.04, and maybe
document as "known issue" pointing at toolchain bug? Result is very
similar, but might be more acceptable on the process side...

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

--himx9ggVNJp+HM6G
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkd+Y4ACgkQ24/THMrX
1ywgnQf/RI6jbzFCKb3GmIGW5l9VaoZYxUsjs/bCn9fQvTkHWO9abOYjlfF6pmf1
JZUxHOl5oyGH4lRAdf3NTzpQBzVo9vbkkmZD57sUarSafPQ7Fe9ZGw2hnzdz0Uvw
guITmuLmPVEtCiHFCgNmS6hstZp2tdoxFSwOhAPCaTPZ95/1XptkoK5Lmwr2h3RQ
X4rgPQg8U+TME/s94/BWMJYsySrF0oV3hzgLbC6Va86HsEUCuK6zHeBEzVP2Fcvi
6l1IouFCQnp7WOV8h/6NK4kHgFrFJVBqJcZYr+snBA8XyT92noXPZbbbG29qtnT8
ECg37nK1KoSQOQePrj3K8+ClP59gHA==
=/X0a
-----END PGP SIGNATURE-----

--himx9ggVNJp+HM6G--


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 17:11:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 17:11:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166189.1492792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLlik-0003Rj-Gk; Wed, 19 Nov 2025 17:11:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166189.1492792; Wed, 19 Nov 2025 17: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 1vLlik-0003R8-DG; Wed, 19 Nov 2025 17:11:54 +0000
Received: by outflank-mailman (input) for mailman id 1166189;
 Wed, 19 Nov 2025 17:11: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=qdfF=53=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vLlii-0003QQ-AZ
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 17:11:52 +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 d1685235-c56a-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 18:11:42 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-64088c6b309so2272001a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 09:11:42 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64536443784sm28039a12.28.2025.11.19.09.11.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 19 Nov 2025 09:11: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: d1685235-c56a-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763572301; x=1764177101; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DyO+CWlpUJBi6y30o1PBbKSYtgX/eWjDnWW4N07oIOw=;
        b=mdw1IrOgHuJK4P+hnTx/jckpJxlExHPnJ63raH2DA0GRs42q15nUg798EQFd5kUa+p
         7baKgXrFSSOb93O4hmFoDNYyrLiHy8QVT8AB4H/pHF1dXLFwEiI6crUwXOy+BvxR84Iq
         5Dp5mTM+SE01l0IxCxVJ5HrgBgC/imi8/D8gJYIvo9KOYoQYki1XMlRaUsWnSo+vhUkj
         lOQFVU0eLZPYfZfVytdrqk/dbLZf1vLrJgpf2eDqVItz0vWhAbXsT/L+ZOPwQNOFY7LY
         eqVwlmOzVfAjw4YNCngeKcUVvL3uwp/iqbBckMdwb7Ntjd6YvpAdXFNgmmfTDRn1PR5m
         3eFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763572301; x=1764177101;
        h=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=DyO+CWlpUJBi6y30o1PBbKSYtgX/eWjDnWW4N07oIOw=;
        b=NhOfUVoB17iNUUBa/pqZqBFPjLFMFBQME2akVjFJtYbOlg3ceH5Pup3VyjRuXOL3Z1
         eFQGvhXtrmYI/nRt5A+InFnGbgIZqV/1hL4eVK1avHAIzvh8mQyWzFkTwzYz+Xkm3F9W
         f7VtjIOLmEGAgZrB9WBbrgekPhwZZaCFqqzl7wfV0GVDKZ+20AOTnXzKs2SaVSIvkkov
         ZWuAumidtAu8dLmXxhgELT4qr8D41UoS69yC3KheB0chadZS3bhEIglouV9MecsvoZn7
         C4NfKaR8YV4hl5da4LpvA/MYDPbI0m/Sbo3o3z4IV/2HUw2b8xI5Uwii0DHdIJxJkBqP
         NWCg==
X-Forwarded-Encrypted: i=1; AJvYcCXeCbm4us/B6sYdlTgT1o8d0VxMRLTeQJeQEFRfwJj+obas9/tUmi8qIOr75i+DUccMCxFMOQMkE8w=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz9xCdKa+swhYKRmtLJAHr9NI6hsC+i0kEqRqqou0TZl3oHPk6+
	IV5dyPuP5mwc6FKD0FcV2s6l6gcKEMTlIMGp97qFZnxPJbbmepXvasve
X-Gm-Gg: ASbGncvnNVae6tmvnDlbdT0ZYKGfZa1Pnxti5If25+CvGGj6hvukM8vJHY5BYQ21aPp
	w1BxnFJfgyHeKoVMSL7jwwihjdEpC2ZVHrQgXeRe/Wc76vLmhiOUcPdrpgqMQYw5oUHPkP2c2EZ
	unJcvNGJ9mbUvEyvi93t1vnEwbh60uh4n3luPJrXPAoLZujla7qQ/78XbeWSM8GkcTbUP7aoO3V
	tpgx/UzPI/tRDy+NQEDh1drEQLO8M7hKOSoLvUQ/Eb47aZth8f/mRRTXmwIQmD0ZB40Hsz0iIlh
	HGNJGux1vz5deMZVAa2TVXEJZVMfCKPifhCQ9xKqKNP0xDk9D1BxFkEQfxlebCStjW60PSr9guP
	ICZuWRP1Jsq8wLaSKtckBU3Nq1E780VCCX8tNzHJ0oxwyytm/+/FzUtX72lE4fbIdfX8JQhpiHu
	/CgB2Uq+sCw9/pPqf5FuosUHmvVmdrsAru0Bi+WoQZxRufwNfttTGLgQXZDGo5VUyjjozrGNk=
X-Google-Smtp-Source: AGHT+IG+tniha4CZVcTYRL22zdXWzQoMvZIzjSaQBgeBWIpo/rPTL4314HqPtRDddD7z5tqwlm6ZIQ==
X-Received: by 2002:a05:6402:3583:b0:63c:1e15:b9fb with SMTP id 4fb4d7f45d1cf-6453643d11fmr63251a12.22.1763572301193;
        Wed, 19 Nov 2025 09:11:41 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------0X0aeALjqkcNTZ3peP7NrZqg"
Message-ID: <a3b00440-28d5-4c22-874a-d4f017b0766f@gmail.com>
Date: Wed, 19 Nov 2025 18:11:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 17/18] xen/riscv: add support of page lookup by GFN
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <3eea04894401202666ea0bb7ee1240a23ba54d8a.1760974017.git.oleksii.kurochko@gmail.com>
 <c40be165-0db3-4115-b96b-92624b669e74@suse.com>
 <1cd26ed4-cf48-4524-acec-3d806a5cf953@gmail.com>
 <499df585-d50e-435c-8496-bc6078dd504b@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <499df585-d50e-435c-8496-bc6078dd504b@suse.com>

This is a multi-part message in MIME format.
--------------0X0aeALjqkcNTZ3peP7NrZqg
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 11/17/25 5:00 PM, Jan Beulich wrote:
> On 17.11.2025 16:52, Oleksii Kurochko wrote:
>> On 11/10/25 5:46 PM, Jan Beulich wrote:
>>> On 20.10.2025 17:58, Oleksii Kurochko wrote:
>>>> +static bool check_outside_boundary(gfn_t gfn, gfn_t boundary, bool is_lower,
>>>> +                                   unsigned int *level_out)
>>>> +{
>>>> +    unsigned int level;
>>>> +
>>>> +    if ( is_lower ? gfn_x(gfn) < gfn_x(boundary)
>>>> +                  : gfn_x(gfn) > gfn_x(boundary) )
>>>> +    {
>>>> +        unsigned long mask = 0;
>>>> +
>>>> +        for ( level = P2M_ROOT_LEVEL; level; level-- )
>>>> +        {
>>>> +            unsigned long masked_gfn;
>>>> +
>>>> +            mask |= PFN_DOWN(P2M_LEVEL_MASK(level));
>>>> +            masked_gfn = gfn_x(gfn) & mask;
>>>> +
>>>> +            if ( is_lower ? masked_gfn < gfn_x(boundary)
>>>> +                          : masked_gfn > gfn_x(boundary) )
>>>> +            {
>>>> +                *level_out = level;
>>> For this to be correct in the is_lower case, don't you need to fill the
>>> bottom bits of masked_gfn with all 1s, rather than with all 0s? Otherwise
>>> the tail of the range may be above boundary.
>> I think that I didn't get what you mean by "the range" here and so I can't understand
>> what is "the tail of the range".
>> Could you please clarify?
> By applying "mask" you effectively produce a range (with "gfn" somewhere in
> the middle). For the level (which you return to the caller) to be correct,
> the entire range must be matching "gfn" in being below or above of the
> boundary. My impression is that this isn't the case when is_lower is true.

Oh, got it. Then I agree that when is_lower is true we really need to fill the bottoms
bits of masked_gfn with all 1s.

Thanks for clarifying.

~ Oleksii

--------------0X0aeALjqkcNTZ3peP7NrZqg
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/17/25 5:00 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:499df585-d50e-435c-8496-bc6078dd504b@suse.com">
      <pre wrap="" class="moz-quote-pre">On 17.11.2025 16:52, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 11/10/25 5:46 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 20.10.2025 17:58, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+static bool check_outside_boundary(gfn_t gfn, gfn_t boundary, bool is_lower,
+                                   unsigned int *level_out)
+{
+    unsigned int level;
+
+    if ( is_lower ? gfn_x(gfn) &lt; gfn_x(boundary)
+                  : gfn_x(gfn) &gt; gfn_x(boundary) )
+    {
+        unsigned long mask = 0;
+
+        for ( level = P2M_ROOT_LEVEL; level; level-- )
+        {
+            unsigned long masked_gfn;
+
+            mask |= PFN_DOWN(P2M_LEVEL_MASK(level));
+            masked_gfn = gfn_x(gfn) &amp; mask;
+
+            if ( is_lower ? masked_gfn &lt; gfn_x(boundary)
+                          : masked_gfn &gt; gfn_x(boundary) )
+            {
+                *level_out = level;
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">For this to be correct in the is_lower case, don't you need to fill the
bottom bits of masked_gfn with all 1s, rather than with all 0s? Otherwise
the tail of the range may be above boundary.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
I think that I didn't get what you mean by "the range" here and so I can't understand
what is "the tail of the range".
Could you please clarify?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
By applying "mask" you effectively produce a range (with "gfn" somewhere in
the middle). For the level (which you return to the caller) to be correct,
the entire range must be matching "gfn" in being below or above of the
boundary. My impression is that this isn't the case when is_lower is true.
</pre>
    </blockquote>
    <pre>Oh, got it. Then I agree that when is_lower is true we really need to fill the bottoms
bits of masked_gfn with all 1s.

Thanks for clarifying.

~ Oleksii</pre>
  </body>
</html>

--------------0X0aeALjqkcNTZ3peP7NrZqg--


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 17:25:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 17:25:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166209.1492803 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLlvJ-0005PD-Nt; Wed, 19 Nov 2025 17:24:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166209.1492803; Wed, 19 Nov 2025 17:24:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLlvJ-0005P6-LJ; Wed, 19 Nov 2025 17:24:53 +0000
Received: by outflank-mailman (input) for mailman id 1166209;
 Wed, 19 Nov 2025 17: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=qdfF=53=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vLlvI-0005Ov-IM
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 17:24:52 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a1b7a5c2-c56c-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 18:24:41 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-6417313bddaso11205469a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 09:24:41 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-645363b5fe9sm62398a12.11.2025.11.19.09.24.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 19 Nov 2025 09:24: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: a1b7a5c2-c56c-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763573080; x=1764177880; darn=lists.xenproject.org;
        h=content-transfer-encoding:subject:from:to:content-language
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=55SGmtXQ9o5EY141c7ab3dNmMOpFvCMTG3q4suOEbf8=;
        b=SFJ+16+jswr5lTANd0DMycHdFUDewk2uaZZKC4vneu0Q2ASjBxahj8/cB3WDlwXr0X
         J4Tu+w1EDUr2PwF3rEyT5OsT34LMJLal5TgARnwQF8o6UR3EodyQiJhWVyYrYL1lxH4W
         AK8iP/PnbOrNwCMEzlryWHeSBOHyptmc7NHR4DIwUJ28JcDxcAVOVPqzb23Tr5GIp/GL
         STaoLjXNVpW6EhYdYpjfwXbeSty+Tg0nbTs6z61ZL8D52JGiIXh5Cj9HThqDAItABwxy
         YCXyxp6+FOeGbR+aNayQV/PhnBugyF1kRa1GTh+NIyr4v4IJ6U2Jgsvx4Gwk25huEVTQ
         hX4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763573080; x=1764177880;
        h=content-transfer-encoding:subject:from:to:content-language
         :user-agent:mime-version:date:message-id:x-gm-gg:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=55SGmtXQ9o5EY141c7ab3dNmMOpFvCMTG3q4suOEbf8=;
        b=YR07+DnyRwreevoEbBoNVxHFnKjPisz4ju01iSCOATqZXIgjPH3Nzd1e599lucWWRC
         YE+eW7A4+sQd4Lg/UphiyskF1cqzQv3o4IyuWi69VCliE4gpMletwVvENzhlMOKy0cyT
         p4ilVaCkoliUIaig6ocIEIjUxicejc6rJnjnrZWaIqLNfz3YtfS+pSYO/p2JAu2gK+LJ
         fgybcxP6v7twoYmQ9tx1SCQIOrMl+jB7cVdFqUbzCDQJhZML3k5QIQq/YXVeiTqFYhxR
         kFZzJR5LHKJX2odRS7Q0fRP2sKotsPir4YWM3D5CDUPy0u79iPrTriZ4p3fRQcRxgKbL
         1GeQ==
X-Gm-Message-State: AOJu0YwP/w2Do16dlwmJ2rjdM+mu9An58VwMCnIM73qRcuntZtEUD/kr
	IPnBLA4oq9OzN+qNvgr9tI/ey7AnxvkTsfmDePfGZifCsn1OSiQOO0N2QsrXxN+V
X-Gm-Gg: ASbGncvqD7p/c/7thKXIxL2lMxZewgC4uXstKc5ONSe77y5lK815TZ5a7ftjNkfywBs
	Hwfa+h8NM1+Kq9d441RO6w1iGbxe8MHL/e7CSKVkRSSu48F/i9+m8MV8aFU3C1lq0PvbDK90Q1b
	vsO8coaVkBixU9SIOSJda9Ui2qlRcH7nonoYa6cWsZkn46MXUQwWA+tiNwmWlPQGtmBl/RxRgS6
	FqzSp79VJ0lgIsjUjgHaWJsZo5dz0o3mMgmTUEHPiShAXvxbhKR65lGS16hEwGO6MGA1sMxqxVQ
	qjdArbXJFf6/E5tT1qjTe/+Qj/yzuTlNPUZ8sARYTpSWWP7NYvB5SXTQc/oXd8W6sVwhFZz4OdI
	FOIiDTFRLo8r0lxM/0JM1e+76NpSEsIxnACWCm45YQZYXlheJdKkq/7paelRyNpq5rp/PO38fHE
	4NCyIjs4Yle6NLH4dvQiYunrBzIdgDl/Klxr09gKjsymT/mdEcCGlFSBTFgzeo1z+nriA2zx8=
X-Google-Smtp-Source: AGHT+IH5KIeZCB6DZnSNPNYa4dQBpSCWpG0vNamTZW4xzcXQ/FJRcmxv5dgwxTU5Ifc4pVC8M+mOyw==
X-Received: by 2002:a05:6402:26d2:b0:638:74dc:cf78 with SMTP id 4fb4d7f45d1cf-64536486defmr92788a12.34.1763573079963;
        Wed, 19 Nov 2025 09:24:39 -0800 (PST)
Message-ID: <7b03be85-e41e-4912-bc14-9316658ddbd1@gmail.com>
Date: Wed, 19 Nov 2025 18:24:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Xen-devel <xen-devel@lists.xenproject.org>,
 xen-announce@lists.xenproject.org, advisory-board@lists.xenproject.org,
 Community Manager <community.manager@xenproject.org>
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Xen Project Releases Version 4.21
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hello everyone,

It's with great pleasure that I announce our 4.21 PR release.

I want to thank the whole community for their efforts in getting this
release published!

*Please find the PR article attached here
<https://www.linuxfoundation.org/press/xen-project-delivers-xen-4.21-a-modernized-hypervisor-with-broader-architecture-support-and-improved-performance
 Â >*

Please find the tarball and its signature at:
 Â  Â  https://downloads.xenproject.org/release/xen/4.21.0/

You can also check out the tag in xen.git:
 Â  Â  git://xenbits.xen.org/xen.git RELEASE-4.21.0

Git checkout and build instructions can be found at:
https://wiki.xenproject.org/wiki/Xen_Project_4.21_Release_Notes#Build_Requirements

Release notes can be found at:
 Â  Â  https://wiki.xenproject.org/wiki/Xen_Project_4.21_Release_Notes

A summary for 4.21 release documents can be found at:
 Â  Â  https://wiki.xenproject.org/wiki/Category:Xen_4.21

Please find the released features below:
https://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=CHANGELOG.md;h=adaad5ee8923d3a1811fbcd1a99429958fec2fb8;hb=HEAD#l15

Best regards,
 Â  Oleksii

Come join the conversation on Matrix:

XenProject:https://matrix.to/#/#XenProject:matrix.org

XenDevel:https://matrix.to/#/#XenDevel:matrix.org






From xen-devel-bounces@lists.xenproject.org Wed Nov 19 18:05:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 18:05:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166249.1492835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLmYT-0003cV-5t; Wed, 19 Nov 2025 18:05:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166249.1492835; Wed, 19 Nov 2025 18:05:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLmYT-0003cO-2Q; Wed, 19 Nov 2025 18:05:21 +0000
Received: by outflank-mailman (input) for mailman id 1166249;
 Wed, 19 Nov 2025 18:05: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=oRf7=53=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vLmYR-0003bE-7s
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 18:05:19 +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 4c6089ce-c572-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 19:05:16 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS4PR03MB8400.namprd03.prod.outlook.com (2603:10b6:8:32a::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 18:05:12 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.009; Wed, 19 Nov 2025
 18:05:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c6089ce-c572-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oFUGVTHCW7S/9Git8exkFfTpqMGEGUkN3gxaU1y77EKxas8j6hRtl6fnF1xlL6nw5JwqGvAo9jZs4hEhMaqw49467gACQL6JpsjdAp8ypkFZvLHJjun0ErFrf2xmKyhgIgTV1Cli8ILoGfmLDUsX1UmAVINTSjZUjxUUxL8A2eC1g54QvXE0u8r3AZ3DSqv/76CxcDdUWtsXJNME9wh4zlxv252C1qryYYBgndXXyFdFWsObf7YGYFT2CPbLfd9Une3I9OA7gjQA9PCrz4vxI3O91k85EjA8Al4swqlgZPm0kKK87+5SQEMv24Z5YfnlwzvkBGvCj55giIXjfmIB0w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lhVEppCV56GwQV56edg6qmvCroVrQp54IWfXaIXJhAU=;
 b=TCTTaQqbVvVLqCnxAMFnwnYyJxjA30osGLIHxKBObcLUTvrD/ie5lLT3fl1e76BE8tkBQCJio7CrIUhK1V7VkEuQld3++3hxU9Ico9Bc/IuuYfV5EvQEKppdxA7+z7ScYwQRXtFbOeNmoB7pXLSJXR41Tamrcdwd0mEmT8T/hUtIn3fsaumPCvHnibszr+E6uJmu/Z6fWAuhOFBotoseWvvYk5TT67gjZw+nkm6S6cx4P+hL50hPv7HtyBoEquN2Y26cqGBUdvePj3K6JbX6fxPmHEqhmBHFNpvYpMq6xHYoioe1YFp7U8ijEH+NG7+3A5+PAHF12IQZAomq8S9INw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lhVEppCV56GwQV56edg6qmvCroVrQp54IWfXaIXJhAU=;
 b=WM2mF4O5aJaZvf6m4NJ1s5C7ZhgIppllvESi70niFtVFD3umfff1neDIzEFFgk0MCDpQgrFqBjZrO5VK2Lu9ZPXD8QDobonlwJBU9y8SLKdUhyWPZa9YnDyEmrOwHqFOl4kc/T8ZFzJ4wI/mSTao6Rgs04DgHWS1o3ifKwPmYZQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b4832205-d01c-4a54-9b1b-d4a24823f2f2@citrix.com>
Date: Wed, 19 Nov 2025 18:05:07 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8] xen: Strip xen.efi by default
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Frediano Ziglio <freddy77@gmail.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Frediano Ziglio <frediano.ziglio@citrix.com>,
 xen-devel@lists.xenproject.org, Frediano Ziglio <frediano.ziglio@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <20251113154358.28704-1-frediano.ziglio@citrix.com>
 <6729f3d9-618c-4dcd-93f8-d02ca7cea017@gmail.com>
 <8f8a769d-95ea-4554-8ee0-d6247f583e37@citrix.com>
 <CAHt6W4eDDm-fNUB7W1Zgj+x-bkK2fxTB50C38T4Uy0_Ofy_cww@mail.gmail.com>
 <aR3dFPTeH4Wegodd@mail-itl> <38ba402c-6920-47f6-91d3-7b499c407c36@citrix.com>
 <aR35jsEXBcV2uEFY@mail-itl>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <aR35jsEXBcV2uEFY@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0415.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a0::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_|DS4PR03MB8400:EE_
X-MS-Office365-Filtering-Correlation-Id: 12558166-9c40-479f-082d-08de27962ed6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bFRPeWJQNjZmb2swRnpKM3JBQVNvUEtyeXIwVEJDQ3hkYmVQcDA3TDF1SU1o?=
 =?utf-8?B?VWdyUXd3Yk1BQ1RlTjRkcjNsa3hoZ2NLVi9yNHE2S3hZUDY1SmIvRDNyN3N3?=
 =?utf-8?B?eEpHMXNIbjQ3TDc1SVZVbSszYzROcmZLSjhPMUE2S1oxc0pHZmVJenRlT20w?=
 =?utf-8?B?RVZIMzI2QXJzdC9jWXdJVmNCdEtodDBGQmFHTWZFZEJDV1pnTnVIUEQ4UEhM?=
 =?utf-8?B?bHhmbDBKRi9kNVRYc3VHR0lUWnJpZHJHc1oxc1JtVXVKcEsyY2RMRkF6aGo4?=
 =?utf-8?B?aEZmSzBsZ2FNR2l1S3VqQVVZanBRcEFPWGRSYVdKMHRLWG5zN3N6QndkQk15?=
 =?utf-8?B?K1I4TnptYk9CQzdHMVY2bnRpdHRvSVJMZmFWUG8yMXVGaktLUDFnc0VHWWpw?=
 =?utf-8?B?UTFDanRnVXNsdFNNamwvTUNBd01nZlcxNTM1d0lMM0RnUUFUTmQyVzZZS0U0?=
 =?utf-8?B?Y0lJUXZxRkpVZXgzZE9rMFhPellsYmEwaUJnRFRqVlJIY1JwTU9pL2c5eVFh?=
 =?utf-8?B?VEFaWTg1K0FJeEloU1NycGRQVytrNHg4TXlhQVpEVXpZNFNRUXdSaVBTelg3?=
 =?utf-8?B?alA0OFE3L0JBS1B1ZXdSbWpYRkhKL2RCbnpoRGlVT3hQYmVoNUZhU1JFcnUr?=
 =?utf-8?B?Q2ViZGE4UlF3R1dKbHN3bVQzZVRIdTJKa0NKMmppY1pncHZEajZVSmc0cFRw?=
 =?utf-8?B?c0RYUFBBb0Y2TjJYVUNSSE16ZmNId0tBa2EzTSt0V1p5NVJwVFdyWm1uTUU4?=
 =?utf-8?B?T0lZYkZQSitrWmdCNWIxNUxrN2xtSHNKUW4wbGsrbGNJUnVhOVhCbnRGdWEr?=
 =?utf-8?B?OUwwYXhscjBKcUNWY000QnA1eER3QTZya0VzakNJdnBoV0srT0syVDA0bG9C?=
 =?utf-8?B?ckw4VWU5NWVBZS9QNE9adVUwU1M4Sld5a3F2ZFZLUWswZ1hDeDVUT21OMDlp?=
 =?utf-8?B?amZiZnAyVEZGVGpJM0xiSy9DU2o3VGdqaG9KR3NJRi9CaDZoZklNdkxJeFRN?=
 =?utf-8?B?dzd4ajNKV2NENXBjTk1EZVVGZ2RTdENJdDErVmlwUWNMeW03bzUrK0tGUW5p?=
 =?utf-8?B?UERtOGt6SkFXN0xKU2c3c1JmT0VOMGxPSm5rRGZGUUs3cVlwZDJwVkI2Um94?=
 =?utf-8?B?UWMrVWxJNHc5TVFQMnFkclMxeUN5aG9mK1FZYllEc1p6ZnZuVzJLZVFaQWpZ?=
 =?utf-8?B?V2VRK1hnMk5qcjNGRjZCSkxwb3JhQ0pOUGVZVTltcTVDd2NWR1RSQko2bkxG?=
 =?utf-8?B?V0c5aDNuNVdwS1BuN1AvdGk4QWhCNzJIQVYvMm5JcWoxNGRzK2RodThyQVBC?=
 =?utf-8?B?MEIxTitGd0V2QXgwcGlBQzFGVkhCbVhsUEFpeThVNldWd3dSOXpucHJvL0xn?=
 =?utf-8?B?MmJXaFNtOWhESThPTWZZWUE4d2h1MjkzM1YrY0MxKzFyV0RvbEQzZVRUV00x?=
 =?utf-8?B?KzlOQitiTUFGckN6MjlhcFZYMHE1emhCT0crdGl1MW9keENBUnJEV2UyNU1W?=
 =?utf-8?B?MTdjdHVWZmVRWEJlUWs4dzY3THh3OVY0U2VWUFBjQVF2U2VWTDE1Sk4rOGYv?=
 =?utf-8?B?aDNxN2lMZlJmeUs4aVQrL1BJSkZlb1YzMXZONTg5dnF3SThJMzBRVlI4YVAz?=
 =?utf-8?B?R2xpZnhvSzNyUTk3YlBzeXBUaW9laHRZZFZrR2tvNmhkZHdodytobE5NRTNh?=
 =?utf-8?B?L3AxaG82bCs0NnlVT0FiWFlNZHFFL29oZ3I2ay9NeWZucVZhSHhwaTNYWkVC?=
 =?utf-8?B?MGcyNjFwNlhEaHJGVVdBZHRtcGtjaEs4L0RBZE8xMGxpejJTcXpZdXFWQlNO?=
 =?utf-8?B?VmdqdkNDdm55VGtPcWltUWtxTldEVEJ1MXcvTTZFRTR3ZjMzcitqSXd3MWVU?=
 =?utf-8?B?dktRQ05rY0FIa1lFeEtja0FNOWNVcmU3NStNY05iYXc0REFMVzJpR2lzWDhI?=
 =?utf-8?Q?d9kEUclJFvLSoxXGSHJ57ix+9yoVPdXX?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MXhiemFJSWFVQUE1MDNZKzhyeDM1NHUyay9qSWR3bFJEWTV1UUNkZm9hV0c1?=
 =?utf-8?B?M2d0QlFVaG14SmlaWnducGdrMDVvUnN6aForQU1lR0dzeEs5VnBTUFY1WHB5?=
 =?utf-8?B?UDVyVS9OU2VJcjAxWHdmZlRwaElEekZIb2h6N2RaSFBnR0NFZ2RXZmZ4RXpm?=
 =?utf-8?B?NngzZVZWcGo5MHp5TGVCaGJXWEpvZ3c1YzRXWVVvcnF3U2dZd1V6VHFpNFJN?=
 =?utf-8?B?OUxUTXRoVHNuN1JZMDlSbi9IWWVLK1o1aHRVNnNXN1FtMFVJMjhqM3I5TVE2?=
 =?utf-8?B?T1RJZjM5L2VJZmg4NVB3Y1RiOWxDWUxnVnNBQ3VxTmk2UGgzNnVuSkN3d25M?=
 =?utf-8?B?bUJIeGpaSUVaSjUrNTUrRWdSWE9ZbEh4Z0ltSU1ZWGZad1VQUEQ2Y2pVaVQ2?=
 =?utf-8?B?WklQOGM0cW5qNUJiQmVzVzYyVytkZHFYTE01SU1ZUUdtNTU5YkIwaSs4dnJn?=
 =?utf-8?B?UzIyeDZyWEpreDR1WDlZc0dPeSs0TGlUUnlTTG85Ymd0Mk9qa1EzN1JmaG1k?=
 =?utf-8?B?UmZPKzFpdTBHZVhOMW4zRnZ2QUZzNGwxa2x1eFY4RzB0UFJWaGFRQU1JWHRM?=
 =?utf-8?B?RHRrQ0VvL2lxQ1hBVW4vaW1uUWtXN1dIMFpKeXpLSVlJdE1Ta29LWWdHVExa?=
 =?utf-8?B?OUVTUUkrbUpVbDBqQWdqQk9wcVVQZXcvRnQ3Nk9ydDAyN2JsZTZtUXpKSTVE?=
 =?utf-8?B?bmFocTFtZERHTU9VdkgrK09adTVrRFIwWi9hdlhSMkhQUG50TXZwMnFGOWQ0?=
 =?utf-8?B?clBCMkVaVEVRMmxCKzNVOXM4Rm1xbFRORk9adEhXU1kxN1B0UkpQU0RQSlhM?=
 =?utf-8?B?aGp5SzFtZWwyOVJ2Zkt4RmY5NjFVSitJMjVCcjdNL2RJMksvbzFNNTJaN1JL?=
 =?utf-8?B?elArZ21uR1RFa0NJVmNmbUFsbTdaTCsyQkxYcnFFSmh4WEx4RDNVaWVxODg0?=
 =?utf-8?B?THQ2bzJxems5QkVrT2dkTVpXeWp2cWRLNHlTYmFxcnhKdElLT1ZoUFpQUGdJ?=
 =?utf-8?B?alZvMDhaTHEyUzhaVlFyb2dyV2xqUkRxb0RsTys0L1NhNFZSWTd0dVJ2RUdk?=
 =?utf-8?B?MjJDMUp3ZlFsQXlVeVdYRmgvdTNNc3dVcjJpSmQ3SHpQRThJMXR2VDlLL016?=
 =?utf-8?B?WUZKRmVIbUlIN2czV0V5bGNHaytoS0pna3ozNHFKUFc3dmhib1dSL2lNZjhV?=
 =?utf-8?B?K3ljeFJlY21xWkh4RkxzQ010QWpGQ1lFbUJoRHdTZzB1VFpaN2p4L3E5UlZ1?=
 =?utf-8?B?a2hlKzdFWVpJaENlcHRpTi9hWkkrVzNHQmhISC9VNEpPVHFXQld2SDBxL3Zw?=
 =?utf-8?B?MWt0Vk9TVHhQdW9VRzVhK1F3dENFTzdiZEVlTHFDUDVZSEpXMkdxa1hna215?=
 =?utf-8?B?VjIyMUJzd1luK2F6YUVKeVA5TUZ4aU92ZURPcEwyblBoSklpWFdRdjNLbTRa?=
 =?utf-8?B?KzBkWlRPRWgrVEFtejhnZ21rUnowenYrSnhMME83alRQakhVdkxRZThQeDc1?=
 =?utf-8?B?NE5lRytoTTlqWUluc2VjeExjR1J2aW13eE5oaVFVSWpqRWl1WDdySXMrY3dI?=
 =?utf-8?B?VDhVS0pHeXVaMUpPV2ZqQkJzdGE0aVEyTzV2ME9GTURSWEUyck5HQk5oS0tv?=
 =?utf-8?B?R1FJVW9HL1U5QmROL0dtM1RDVEtndkh6ZnMydnRiQ2N5dVRaZU5XWGpNVzlk?=
 =?utf-8?B?V2VyQWE3a281ajNWS0pjOGNhS0pqcWdZdDVNOFpyYjMxSXVWbGx5V1FQWVQx?=
 =?utf-8?B?b3BPMy9JNmFWN3BUN1FKNDRXMm9QRGtZL3JibmUxak9MeFlEb3gzWDJJMTRN?=
 =?utf-8?B?TTRvMFNWTldYZElHUnRiaE83MkZOMTJmU3IwYmlwK3NLTHdpUU0xbEdrYktx?=
 =?utf-8?B?WXZhaTg1YWJDMVJEd21pZ0IraFdQK08rbW9acEIwak5aT1JnVnZLNG44N00v?=
 =?utf-8?B?U2pOdnEzUjNWbm9iak4xbVVkYTlua3VxbFJWcGJhRHgrVU56SW8wcEh4WXpU?=
 =?utf-8?B?bkxWWU02cHFxMElTWCtGbnNoTVc4Vk13YTRoRy9HZmhpbDFLbkNqSFV0R1Vs?=
 =?utf-8?B?WG5CUWVWVXJiYkNCTlo2MzFZY0tON1JHeWxaTzZxUm52OC9YamQ1YWFjcTdB?=
 =?utf-8?B?cVhJWWY0c1JCS0tHZ3ZORXNXRzlTN0JYRjZyUWtEOXlNOUdTUWpzRkpmOStF?=
 =?utf-8?B?RkE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 12558166-9c40-479f-082d-08de27962ed6
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2025 18:05:11.9080
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: L69jR8K5296wfE2Kedykkj9pmrWEX2CWW8I6r09YKkVdx3JtFlTU5khYJQOEuDaWkB9kPirf3eAdgmLe7lZZeNg3uhEltl7qLUbB05HR4fc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR03MB8400

On 19/11/2025 5:08 pm, Marek Marczykowski-GÃ³recki wrote:
> On Wed, Nov 19, 2025 at 04:02:30PM +0000, Andrew Cooper wrote:
>> Given it's now only 16.04 broken, how about simply excluding xen.efi
>> with these broken toolchains?
> That would mean adjusting README to say a newer binutils is required for
> xen.efi, right? Then ofc we would need to figure out which version
> specifically. FWIW Ubuntu 16.04 has 2.26 and Ubuntu 18.04 has 2.30.
> Would raising required toolchain version (for some configuration here)
> even accepted, especially if considered for backporting?
>
> Alternatively, simply disable building xen.efi in CI on 16.04, and maybe
> document as "known issue" pointing at toolchain bug? Result is very
> similar, but might be more acceptable on the process side...

xen.efi has never been part of the toolchain minimum statement.

It was introduced as unconditionally enabled, with probing of the
toolchain to decide whether it was capable or not. That's what
XEN_BUILD_EFI is doing.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 18:05:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 18:05:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166248.1492825 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLmYP-0003NB-04; Wed, 19 Nov 2025 18:05:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166248.1492825; Wed, 19 Nov 2025 18:05:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLmYO-0003N4-S2; Wed, 19 Nov 2025 18:05:16 +0000
Received: by outflank-mailman (input) for mailman id 1166248;
 Wed, 19 Nov 2025 18:05: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=t1IC=53=redhat.com=peterx@srs-se1.protection.inumbo.net>)
 id 1vLmYN-0003My-LD
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 18:05:15 +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 489ca1a0-c572-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 19:05:09 +0100 (CET)
Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com
 [209.85.219.69]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-311-vH0WEA8aOsCUOknBTVlAdA-1; Wed, 19 Nov 2025 13:05:06 -0500
Received: by mail-qv1-f69.google.com with SMTP id
 6a1803df08f44-8805c2acd64so309086d6.3
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 10:05:06 -0800 (PST)
Received: from x1.local ([142.188.210.156]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-88286595ea2sm138610226d6.51.2025.11.19.10.04.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 19 Nov 2025 10: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: 489ca1a0-c572-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763575508;
	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=sLup+W7pa6WZ/k6QZNaZVOA124clRvPAt6nyoZoANYk=;
	b=L0N67id8V25htQxH0WGWIxf0RUU4x+gtpNZPXNdGyqkySZEfhYK8gLsg7ai1qQsMF9D1Or
	0nKBNxMVMApCvBeq3pt58KhCOOMp6KqmFuXjbYgdwc1GJOi1ebFvMyiG/Ydq9ftRuIly+x
	JwqhPmlgqdpsRwENFb3QUR8r+pyZhW8=
X-MC-Unique: vH0WEA8aOsCUOknBTVlAdA-1
X-Mimecast-MFC-AGG-ID: vH0WEA8aOsCUOknBTVlAdA_1763575505
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763575505; x=1764180305;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=sLup+W7pa6WZ/k6QZNaZVOA124clRvPAt6nyoZoANYk=;
        b=H7wgLFc8bRdiabETAdiek3CZbeofCIC70hT8lMqdKRrqBTz5J3w/K3O1je23YUp5zo
         CA7D3RHrptBL9eVenO6TM1C2RuWVPpMBIAUetEJSuUk7edV9qnzJV8qAfMj8AosPaAqR
         a95pcyscbA2a3fegXpMj5j4JV4yI5H2UzchxLBU4dQrv4pBhVUeVwxxskfdzHbnjMAW5
         Y4yMH7fiVm7khorZfqI1tajKtEweyJCsElnyRfuCRoCZyhsMIeGSnfpDXeMRc4EJe6tG
         M1LA1YaTSezMJtT6Pgmt79bErehmBmI97v3CqVu3zRhbn1xk4t8Q9QwfvpkHHRPABhSm
         qSmQ==
X-Forwarded-Encrypted: i=1; AJvYcCWmElgFj0DV1qbLm4uVX3aTA2cnDeVTl6mFcO4SVh32yDN+cUOTfeI97jhPmIJPq/wfC650amooj/4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxp0zFX488h1ps+Xmr+mkYyxsvAX8zV0fVKdkl4HvHvUJCGS4eT
	yEVIkSVzerzbv8j1CWkbFcI6uWeG/D1Tnbi4hXWZz3R4xuSiy7M26IcpzRPGnqjk+ikPsqDCZ+K
	8A7fvrNRfG9SQqAqwvYSSNQPpWOjVTw6PGNWsJnUlYkRk4HOPEAnNgWKiMyGZAfdHUwkY
X-Gm-Gg: ASbGncvhPbQqflt+vT88bYDef+e29V5HnAq828X9MzxF32Ze5SpVN1ZwW56NOulwh5b
	SlfH+LlsOv/d44Jep1Va2Zq/lDQ/j0wLz2rns1FAilDQJXUOw3go3WqB/Mho8eyjIdEtH5HlhKP
	SR0pjbLsLUZp6plu78xBUio+Vxp14LUTxNotMsDYvhX4GAFO7FL78KkwTWUcB49tofRIP0s7Zim
	DWnK4Rg71vLOVS3DzjMurLJAc6jIxOlheRMVDliis1ZYFBUxE4STYfmSfWMxOQ97Q5VfixqLPkz
	whC5XyBeqw5X3mp1dcuAx/Qi0QSUb7PpkKmBYh7Ts5ycNMPj3sQKOIz30p68wG28C//YnvW6I7v
	MTWI=
X-Received: by 2002:a05:622a:1915:b0:4ed:8fa:6fc4 with SMTP id d75a77b69052e-4ee4971d531mr1625091cf.78.1763575505162;
        Wed, 19 Nov 2025 10:05:05 -0800 (PST)
X-Google-Smtp-Source: AGHT+IGyg2JyzSrFhB2LMApC4ECHgD7juQRduC9UIz0/PCIU7u2oBKhMX1CSoSw3khRb1Qff2CShKQ==
X-Received: by 2002:a05:622a:1915:b0:4ed:8fa:6fc4 with SMTP id d75a77b69052e-4ee4971d531mr1616981cf.78.1763575499123;
        Wed, 19 Nov 2025 10:04:59 -0800 (PST)
Date: Wed, 19 Nov 2025 13:04:56 -0500
From: Peter Xu <peterx@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, kwolf@redhat.com, hreitz@redhat.com,
	mst@redhat.com, imammedo@redhat.com, anisinha@redhat.com,
	gengdongjiu1@gmail.com, peter.maydell@linaro.org,
	alistair@alistair23.me, edgar.iglesias@gmail.com, npiggin@gmail.com,
	harshpb@linux.ibm.com, palmer@dabbelt.com, liwei1518@gmail.com,
	dbarboza@ventanamicro.com, zhiwei_liu@linux.alibaba.com,
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
	berrange@redhat.com, farosas@suse.de, eblake@redhat.com,
	vsementsov@yandex-team.ru, eduardo@habkost.net,
	marcel.apfelbaum@gmail.com, philmd@linaro.org,
	wangyanan55@huawei.com, zhao1.liu@intel.com, qemu-block@nongnu.org,
	qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-riscv@nongnu.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 4/5] error: error_free(NULL) is safe, drop unnecessary
 conditionals
Message-ID: <aR4GyA3nfvelqr7i@x1.local>
References: <20251119130855.105479-1-armbru@redhat.com>
 <20251119130855.105479-5-armbru@redhat.com>
MIME-Version: 1.0
In-Reply-To: <20251119130855.105479-5-armbru@redhat.com>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: DQLnCQFG-dR6bzry34mA41i5Bnie-aBcj6dJWi3xYL4_1763575505
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline

On Wed, Nov 19, 2025 at 02:08:54PM +0100, Markus Armbruster wrote:
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Acked-by: Peter Xu <peterx@redhat.com>

-- 
Peter Xu



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 18:06:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 18:06:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166270.1492846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLmZm-0004O5-FR; Wed, 19 Nov 2025 18:06:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166270.1492846; Wed, 19 Nov 2025 18:06: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 1vLmZm-0004Ny-BD; Wed, 19 Nov 2025 18:06:42 +0000
Received: by outflank-mailman (input) for mailman id 1166270;
 Wed, 19 Nov 2025 18:06: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=t1IC=53=redhat.com=peterx@srs-se1.protection.inumbo.net>)
 id 1vLmZk-0004Nj-Iv
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 18:06:40 +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 7d1e1283-c572-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 19:06:38 +0100 (CET)
Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com
 [209.85.219.70]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-343-T5Dtxxx7P1m28COS9VU3uA-1; Wed, 19 Nov 2025 13:06:32 -0500
Received: by mail-qv1-f70.google.com with SMTP id
 6a1803df08f44-88236279bd9so309216d6.3
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 10:06:32 -0800 (PST)
Received: from x1.local ([142.188.210.156]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-8846e46a846sm181466d6.18.2025.11.19.10.06.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 19 Nov 2025 10:06: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: 7d1e1283-c572-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763575596;
	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=zxKk+ZBrfy+3vEGqZdJgfoqPz6L6wSNR8CNOxVRPE4c=;
	b=VlMsuoi1p6TTwBjL+hh5RMlHl10hjws/DsevogC9RL29qNOj8Zeo8v86n5vGduoYgzSfup
	5jkmgfkL3zseIRrkxloqfhqs9grilag+Aw834J59RUdtgXbB1ln7LnC27szOiftTqXTuRa
	4teI5N/Tk0hPqPonCUmbp9Pvx0yKUog=
X-MC-Unique: T5Dtxxx7P1m28COS9VU3uA-1
X-Mimecast-MFC-AGG-ID: T5Dtxxx7P1m28COS9VU3uA_1763575592
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763575592; x=1764180392;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=zxKk+ZBrfy+3vEGqZdJgfoqPz6L6wSNR8CNOxVRPE4c=;
        b=wCSUNanUwXlBckPi1BU5p6laeoCBLwLUHvbrjzSosv5cJhU/9PNVfUC+UID5QgZu9R
         g295DfoifwKXHHNTWW06O+JuRgVi24t1fpWlhHdnqBSGs4kCrEXHDMYcYvQjuJRYktH8
         9kggQfiErdczJfNWv0vMb/1JON44IyDvjLXn4Z3su2BAgNRF1c3B7dNWgz6S51VSWeci
         gdJpn/+B98zYR78lKUo3tdEUZccqNdlzNM5XMl/erld1E29wGo2uakhEnUasQ8Uf5jAV
         jhsPqa1iJzt5OnZQeZncxjjEgcuC8A5g80F3M7nGeejkUjdYgYa4edVrOF915IQL6U4a
         94sw==
X-Forwarded-Encrypted: i=1; AJvYcCU2pKZ6n14b6s1PEg+RUpwO1LcMcMqpMTBsGVzyGAiJ2eslRXtsrc46R6jo9xSmtv6fNy1GbXXynok=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyiX1bU3RwCNgSW6ESsg3NtjnFI/CgYNz5NQXL905eHI97XXrHj
	UJCDcXHy2Cnh/Uz6u1zOUIR5498lbxjJvh8usSrdnHd6mo8E1JZ8GgZlfa7bwIXNGUFd/+9TMiS
	zEcXmcbcpq932OXLSHRs3kEqNNfUVj9Czn36wUzoNWew613dF4i0V+8N4/iTIaMJMW4oW
X-Gm-Gg: ASbGnctG0arymW8l1E57SKXvKIo6Y2VzmK9bfOSu48PYvmuOsrGHTqDeaEW2zhBDrat
	zc3lnZeJLR8O0fDcXp5DTBPQ4exs5FujFgsdwN9AIS9lqU21BY3GrLj9VzZsyBqw+1tY1CYlIwb
	xUyeMeN5WHYQ3FD8xn6QDfYG7Yu5Xu08XZMpQPpcdG/8L+lFZj+1ZBtzj4AJaJ3Ff5Vq6jPEd1i
	Yu5Dk0Y8rjd2HoFGSolKp7OyVZHLaskWyqlBwLD/eQmkjtZX9muPD0zuo0qlRVVtyL27XZ2reXs
	EjXPvULk8Dn1E8KKf2FcYuB/D6RPqpP0CIZllkTZAgNxYdjPSLZia7C5/LHxgE4ZuF4RkQpB08a
	FVBw=
X-Received: by 2002:a05:6214:20ad:b0:880:48c6:acfb with SMTP id 6a1803df08f44-8846e1d1ee1mr1616206d6.49.1763575592089;
        Wed, 19 Nov 2025 10:06:32 -0800 (PST)
X-Google-Smtp-Source: AGHT+IFA3KddVigP0uQkMDW+wiQ07QNB1nQ4u8CPelnAOsxIbSfbRmY+sPznvOSd7uBlcPTF+2F45w==
X-Received: by 2002:a05:6214:20ad:b0:880:48c6:acfb with SMTP id 6a1803df08f44-8846e1d1ee1mr1615226d6.49.1763575591593;
        Wed, 19 Nov 2025 10:06:31 -0800 (PST)
Date: Wed, 19 Nov 2025 13:06:29 -0500
From: Peter Xu <peterx@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, kwolf@redhat.com, hreitz@redhat.com,
	mst@redhat.com, imammedo@redhat.com, anisinha@redhat.com,
	gengdongjiu1@gmail.com, peter.maydell@linaro.org,
	alistair@alistair23.me, edgar.iglesias@gmail.com, npiggin@gmail.com,
	harshpb@linux.ibm.com, palmer@dabbelt.com, liwei1518@gmail.com,
	dbarboza@ventanamicro.com, zhiwei_liu@linux.alibaba.com,
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
	berrange@redhat.com, farosas@suse.de, eblake@redhat.com,
	vsementsov@yandex-team.ru, eduardo@habkost.net,
	marcel.apfelbaum@gmail.com, philmd@linaro.org,
	wangyanan55@huawei.com, zhao1.liu@intel.com, qemu-block@nongnu.org,
	qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-riscv@nongnu.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 1/5] hw/core/loader: Make load_elf_hdr() return bool,
 simplify caller
Message-ID: <aR4HJQGqCswwH022@x1.local>
References: <20251119130855.105479-1-armbru@redhat.com>
 <20251119130855.105479-2-armbru@redhat.com>
MIME-Version: 1.0
In-Reply-To: <20251119130855.105479-2-armbru@redhat.com>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: 5N7CIaM51r64DAMGbAuBBWn2gZaEaqNmmqfSebRkRa0_1763575592
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline

On Wed, Nov 19, 2025 at 02:08:51PM +0100, Markus Armbruster wrote:
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Reviewed-by: Peter Xu <peterx@redhat.com>

-- 
Peter Xu



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 18:09:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 18:09:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166288.1492854 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLmcY-00051t-UD; Wed, 19 Nov 2025 18:09:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166288.1492854; Wed, 19 Nov 2025 18:09:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLmcY-00051m-Qs; Wed, 19 Nov 2025 18:09:34 +0000
Received: by outflank-mailman (input) for mailman id 1166288;
 Wed, 19 Nov 2025 18:09:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=t1IC=53=redhat.com=peterx@srs-se1.protection.inumbo.net>)
 id 1vLmcX-00051g-T3
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 18:09:33 +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 e5c3e919-c572-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 19:09:33 +0100 (CET)
Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com
 [209.85.219.69]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-223-c6rs5NeAOPKbS9c-50oZUQ-1; Wed, 19 Nov 2025 13:09:28 -0500
Received: by mail-qv1-f69.google.com with SMTP id
 6a1803df08f44-882529130acso440216d6.2
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 10:09:28 -0800 (PST)
Received: from x1.local ([142.188.210.156]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-8846e445b1csm262086d6.9.2025.11.19.10.09.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 19 Nov 2025 10:09: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: e5c3e919-c572-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763575771;
	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=0DCGaHtOp5reLxorwEtMOeyn9iP1bnDso8ubGDPMiBA=;
	b=XgTOtcgdexDfsJ+X+OqqJ5+8V78uzi7WHn09zmWXL2TJrrZAO3SjToWTHSkfo6ZC/dcDQc
	XUm1f+tIK5oqF1ceh53R0uqeGZH0GMjDvc9tnEjckaSskJ/x4OugxayQpFl63jsl7Zer3K
	5pgXzsDngndfFvZKhIZ8jr8MCeccIZI=
X-MC-Unique: c6rs5NeAOPKbS9c-50oZUQ-1
X-Mimecast-MFC-AGG-ID: c6rs5NeAOPKbS9c-50oZUQ_1763575768
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763575768; x=1764180568;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=0DCGaHtOp5reLxorwEtMOeyn9iP1bnDso8ubGDPMiBA=;
        b=CbhebfLanbDRhenhQ7NZC2UViX+BEjzq5aYo25tLusXtoewIDe5ZBciYx9xUOsXh4r
         sipc4+neSTFfECdQIwaBw9t3dSUUu9ri1NMaRGS56E38o15unLrqardGw7cNQ5ncd0Md
         pTVunWd8h4tEtAf9kowm09asrGmTgpcBRchXYfMPOJV76qq8qPiuGxWH8e8ZY5I0iozu
         JtE0spwigI5TavqXWde93Y6Yv+Wj/jNBE4/27uTiE0Qzz+QzBSMHogE4dvr2lMOP5XHB
         4aPQvrBr8kCk5FqKc8KOh+fJjfKj5C/+CcvokQwOVQXiDHffZnuED3+b6nxnVP9yjhmx
         tn1g==
X-Forwarded-Encrypted: i=1; AJvYcCVqMkyE7ufwupVGSrjOvR8rqTn2KlbJzOVb2FRBQMP5I9dUwSPQSboTa7c0SYqCCiwwGtdVaBWx8/Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzsZMmnNJuM0AuIm++3uguLLsRbXTdBmm4I/WYSVHcJe3YrncrK
	hTQ5zj3+o8Llst2do0nNDPGPkgzGL+86dMRQklsQixBmFNisXq4d4QGnY80oEtJ4vzxKmNCTLJb
	5P6jNjbdjKKaxZxualaIxoGcwNx1Ql0snZiH9Zcv8B0Ixrsks884BZdcG4S/MhS4pypG7
X-Gm-Gg: ASbGnctfQRM1ftwuQw2OvLG8qXnJO6iO4qiqySS+/HiL0v8h3eXbcepgdVtfeKZevnu
	rygBoU4jG+HtvO8fW9Lf8hvOlyHyOQSsD0jLWqV/jAihARZvLmF1xZgJm9kROXjozcHu0520roP
	6NqnJC5EXRH+AZJmZEReKAGCDtZSVk3lXgxx/BXKMJvZlL+MXav6YU8o4YTP/sJnIhHLUsTRqUm
	Ficy7q/uWQSruwLLiEbkP811FPU+RraXy+tvajtEFV/3qv5TxIoO3sjGW3UjoVlRZ9yuRirOczS
	pglr8jWYD90dcwn07K4kNLQSLb8TKqKJLQ8g/I8NkjjHxiXnuCA8cNnEXYPyrPdr13FTTOJL7uE
	VsRg=
X-Received: by 2002:a05:6214:3a85:b0:880:5730:d3db with SMTP id 6a1803df08f44-8846e054d65mr2568586d6.21.1763575767602;
        Wed, 19 Nov 2025 10:09:27 -0800 (PST)
X-Google-Smtp-Source: AGHT+IHhcLsZHPo01FYGgTUQih5BLapAokqbeuAA+4Y54wTxOgNgHkwNxLSBBg1nI3YTS9Sdt0XpFw==
X-Received: by 2002:a05:6214:3a85:b0:880:5730:d3db with SMTP id 6a1803df08f44-8846e054d65mr2567856d6.21.1763575767173;
        Wed, 19 Nov 2025 10:09:27 -0800 (PST)
Date: Wed, 19 Nov 2025 13:09:24 -0500
From: Peter Xu <peterx@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, kwolf@redhat.com, hreitz@redhat.com,
	mst@redhat.com, imammedo@redhat.com, anisinha@redhat.com,
	gengdongjiu1@gmail.com, peter.maydell@linaro.org,
	alistair@alistair23.me, edgar.iglesias@gmail.com, npiggin@gmail.com,
	harshpb@linux.ibm.com, palmer@dabbelt.com, liwei1518@gmail.com,
	dbarboza@ventanamicro.com, zhiwei_liu@linux.alibaba.com,
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
	berrange@redhat.com, farosas@suse.de, eblake@redhat.com,
	vsementsov@yandex-team.ru, eduardo@habkost.net,
	marcel.apfelbaum@gmail.com, philmd@linaro.org,
	wangyanan55@huawei.com, zhao1.liu@intel.com, qemu-block@nongnu.org,
	qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-riscv@nongnu.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/5] hw/nvram/xlnx-bbram: More idiomatic and simpler
 error reporting
Message-ID: <aR4H1FyafbvOUw2c@x1.local>
References: <20251119130855.105479-1-armbru@redhat.com>
 <20251119130855.105479-3-armbru@redhat.com>
MIME-Version: 1.0
In-Reply-To: <20251119130855.105479-3-armbru@redhat.com>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: 8cCZSjKimj-rYEN4VaL6sHu068gSDL3X8p1ncAZeOxk_1763575768
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline

On Wed, Nov 19, 2025 at 02:08:52PM +0100, Markus Armbruster wrote:
> bbram_bdrv_error() interpolates a "detail" string into a template with
> error_setg_errno(), then reports the result with error_report().
> Produces error messages with an unwanted '.':
> 
>     BLK-NAME: BBRAM backstore DETAIL failed.: STERROR
> 
> Replace both calls of bbram_bdrv_error() by straightforward
> error_report(), and drop the function.  This is less code, easier to
> read, and the error message is more greppable.
> 
> Also delete the unwanted '.'.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Reviewed-by: Peter Xu <peterx@redhat.com>

-- 
Peter Xu



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 18:09:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 18:09:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166290.1492865 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLmch-0005I9-4J; Wed, 19 Nov 2025 18:09:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166290.1492865; Wed, 19 Nov 2025 18: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 1vLmch-0005I0-18; Wed, 19 Nov 2025 18:09:43 +0000
Received: by outflank-mailman (input) for mailman id 1166290;
 Wed, 19 Nov 2025 18: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=t1IC=53=redhat.com=peterx@srs-se1.protection.inumbo.net>)
 id 1vLmcg-00051g-4K
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 18:09:42 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eb00f713-c572-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 19:09:41 +0100 (CET)
Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com
 [209.85.219.72]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-56-N94ghYGsPj22AWNkJSK94A-1; Wed, 19 Nov 2025 13:09:38 -0500
Received: by mail-qv1-f72.google.com with SMTP id
 6a1803df08f44-88050708ac2so593166d6.2
 for <xen-devel@lists.xenproject.org>; Wed, 19 Nov 2025 10:09:38 -0800 (PST)
Received: from x1.local ([142.188.210.156]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-8846e445bd4sm265876d6.10.2025.11.19.10.09.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 19 Nov 2025 10:09: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: eb00f713-c572-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763575780;
	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=iWKuGlFXZQJhDckFQcgt5gxApYJTrA/9Towipm9l4OQ=;
	b=WLKJ7kl8dB3i5BML+gsMXEqOpB6+nlBAPZYmvqTNq4g6fl+VVzv+s1Hv17BfHkeIu8gzlV
	B8b5bZghzEi4KI8td6ngoMvvjeZiwIC8Ubs4f1+wytF9LlaJ8TxOQrTYRXKL5ogC6utky+
	mpIuzNei1gsHLUc6RJmX8xY63tr7mUk=
X-MC-Unique: N94ghYGsPj22AWNkJSK94A-1
X-Mimecast-MFC-AGG-ID: N94ghYGsPj22AWNkJSK94A_1763575778
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763575778; x=1764180578;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=iWKuGlFXZQJhDckFQcgt5gxApYJTrA/9Towipm9l4OQ=;
        b=LMzQ7eRyv8WHWW/LZZwnCc8++7C2eeVfJMhutFW2g0nPkwxULaSVlVNDWBVp7ELx8R
         jgOCpzlrF80xRSZDhjvY0LbjD0Ga1UB4rL2yKucOT2a1ANbU5ecyIALZhqOq6Mcvq/nT
         se11g5b0eDfKcrnmLLJ1eztDzfb7fEnB+yZFqq2aBF2u4vLRLZDWeJFPDHfWCcDheki/
         mhAw4Nvx7BsTZcIpz3n0endzOSQhTJLFnuOnUHC6uh4Z7PR/rtKXvKdgl+cqy4+HDU+I
         mH1JoqDgtBkGMag0du2dSdRtPqADjdCKhBgXiaR9/U2ZoQ+3C5tB4MTZiKOMLqpgC1jS
         QT5A==
X-Forwarded-Encrypted: i=1; AJvYcCWIbpfbEKxejz8rp2GHSKoBuFqw3gF8GwCzWpY11MIiKUz6CWmSZ+Cji7iP38j6F+PwepMi2pODO0Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwZBvy05BcD5CGzhvU4pa9CQ7MtLiAVEPZy05PqOvZnjcj6kVvu
	K/mum87JMuSQRS1DFZNKL4KURN/D5NgnySum18Wh3QrBzrgPifE1TxpI7Iu9UywmHb/e4+x8hy0
	XeZuMoyi6tOaKm3/Z80kqnNHfchBUxN1sxqAkRzhKXXHAJVAn3tRDVWtebp3x4pdLxeTH
X-Gm-Gg: ASbGncv1DCrp46yJkwCTYy2ksAf7pUc1n/U0cav2+puDwgN4+Dsh8Hew+cGnmuBKeU8
	KtWoqi+N99psI76AbGMA9eBVj/sITLsnuyIeSg4ILZpfQLfkMyIQrBigFqY5cKe5SVFG1UUHr7X
	8QmyFNBeYCScd+CJUCarG+ka6xPqMps4ny56vHXSIm83X8XECj/krBdlDAtVuSLSKEQU/IS6U0Y
	j3y/oIRa0rjk/izPRoSgs8mwvl/guuecTfthY9NVWe7bDcoHBTtVVF5j9/RKy71pgIvw3ROMJVe
	XzB19acQRr7nsKSD4Gbv7KJEvQdYT5Y0hybkKPFkY09XhEPZqa7eP+V2frXDvaj4Op7/GSdbxq0
	QIgM=
X-Received: by 2002:a05:6214:33c6:b0:87c:a4f:afd3 with SMTP id 6a1803df08f44-8846e02d57bmr1889456d6.16.1763575778020;
        Wed, 19 Nov 2025 10:09:38 -0800 (PST)
X-Google-Smtp-Source: AGHT+IELSahBwRm5SxgULUmKqEQouDGBl9IAYstEeLqOk0A49a/xIWSs9mc1bJ81aMUBPzhLGlz0ig==
X-Received: by 2002:a05:6214:33c6:b0:87c:a4f:afd3 with SMTP id 6a1803df08f44-8846e02d57bmr1888776d6.16.1763575777665;
        Wed, 19 Nov 2025 10:09:37 -0800 (PST)
Date: Wed, 19 Nov 2025 13:09:35 -0500
From: Peter Xu <peterx@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, kwolf@redhat.com, hreitz@redhat.com,
	mst@redhat.com, imammedo@redhat.com, anisinha@redhat.com,
	gengdongjiu1@gmail.com, peter.maydell@linaro.org,
	alistair@alistair23.me, edgar.iglesias@gmail.com, npiggin@gmail.com,
	harshpb@linux.ibm.com, palmer@dabbelt.com, liwei1518@gmail.com,
	dbarboza@ventanamicro.com, zhiwei_liu@linux.alibaba.com,
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
	berrange@redhat.com, farosas@suse.de, eblake@redhat.com,
	vsementsov@yandex-team.ru, eduardo@habkost.net,
	marcel.apfelbaum@gmail.com, philmd@linaro.org,
	wangyanan55@huawei.com, zhao1.liu@intel.com, qemu-block@nongnu.org,
	qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-riscv@nongnu.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 3/5] nbd/client-connection: Replace error_propagate() by
 assignment
Message-ID: <aR4H3-CQ-F8ZUN_Z@x1.local>
References: <20251119130855.105479-1-armbru@redhat.com>
 <20251119130855.105479-4-armbru@redhat.com>
MIME-Version: 1.0
In-Reply-To: <20251119130855.105479-4-armbru@redhat.com>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: IEOcER8lyS96JImryaSQWBNWAYKHlqf13vyNaVF0DHE_1763575778
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline

On Wed, Nov 19, 2025 at 02:08:53PM +0100, Markus Armbruster wrote:
> connect_thread_func() sets a variable to null, then error_propagate()s
> an Error * to it.  This is a roundabout way to assign the Error * to
> it, so replace it by just that.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Reviewed-by: Peter Xu <peterx@redhat.com>

-- 
Peter Xu



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 19:11:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 19:11:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166314.1492874 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLnaF-0006nX-Cl; Wed, 19 Nov 2025 19:11:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166314.1492874; Wed, 19 Nov 2025 19:11:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLnaF-0006nQ-9z; Wed, 19 Nov 2025 19:11:15 +0000
Received: by outflank-mailman (input) for mailman id 1166314;
 Wed, 19 Nov 2025 19:11: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=aBqX=53=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vLnaE-0006nK-JS
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 19:11:14 +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 7e4c1206-c57b-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 20:11:04 +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-111-yNpZLchdNUuuTavbCUxFWQ-1; Wed,
 19 Nov 2025 14:10:59 -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 96A13195608F; Wed, 19 Nov 2025 19:10:54 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 9B530180047F; Wed, 19 Nov 2025 19:10:52 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id E69F421E6A27; Wed, 19 Nov 2025 20:10:49 +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: 7e4c1206-c57b-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763579463;
	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=wt/fub6z3HxiVa5B4/hE5RzRQKQVhOj7h1C0uZV+h1o=;
	b=fMShJisjfib4WijbCPZ7VXxKyPY5XaEQR/g2zxX9htbFCBmBLtph0cmuv49g2W6+j8vHXW
	ht3YpMYQ6Hy/AA+4BhaSjnvvXLX8A/Phv+Oog3RAIRlEVcCOKNWRxjQhiO7ZFQcHHgR2F9
	8eq0OpQ/XHM917cj9ODBdzLBVUMpV0Q=
X-MC-Unique: yNpZLchdNUuuTavbCUxFWQ-1
X-Mimecast-MFC-AGG-ID: yNpZLchdNUuuTavbCUxFWQ_1763579455
From: Markus Armbruster <armbru@redhat.com>
To: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Cc: qemu-devel@nongnu.org,  kwolf@redhat.com,  hreitz@redhat.com,
  mst@redhat.com,  imammedo@redhat.com,  anisinha@redhat.com,
  gengdongjiu1@gmail.com,  peter.maydell@linaro.org,
  alistair@alistair23.me,  edgar.iglesias@gmail.com,  npiggin@gmail.com,
  harshpb@linux.ibm.com,  palmer@dabbelt.com,  liwei1518@gmail.com,
  dbarboza@ventanamicro.com,  zhiwei_liu@linux.alibaba.com,
  sstabellini@kernel.org,  anthony@xenproject.org,  paul@xen.org,
  berrange@redhat.com,  peterx@redhat.com,  farosas@suse.de,
  eblake@redhat.com,  eduardo@habkost.net,  marcel.apfelbaum@gmail.com,
  philmd@linaro.org,  wangyanan55@huawei.com,  zhao1.liu@intel.com,
  qemu-block@nongnu.org,  qemu-arm@nongnu.org,  qemu-ppc@nongnu.org,
  qemu-riscv@nongnu.org,  xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/5] hw/nvram/xlnx-bbram: More idiomatic and simpler
 error reporting
In-Reply-To: <a36f938d-b35a-4605-ab77-6ed7dd419945@yandex-team.ru> (Vladimir
	Sementsov-Ogievskiy's message of "Wed, 19 Nov 2025 19:39:14 +0300")
References: <20251119130855.105479-1-armbru@redhat.com>
	<20251119130855.105479-3-armbru@redhat.com>
	<a36f938d-b35a-4605-ab77-6ed7dd419945@yandex-team.ru>
Date: Wed, 19 Nov 2025 20:10:49 +0100
Message-ID: <87a50hx2h2.fsf@pond.sub.org>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111

Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> writes:

> On 19.11.25 16:08, Markus Armbruster wrote:
>> bbram_bdrv_error() interpolates a "detail" string into a template with
>> error_setg_errno(), then reports the result with error_report().
>> Produces error messages with an unwanted '.':
>>
>>      BLK-NAME: BBRAM backstore DETAIL failed.: STERROR
>>
>> Replace both calls of bbram_bdrv_error() by straightforward
>> error_report(), and drop the function.  This is less code, easier to
>> read, and the error message is more greppable.
>>
>> Also delete the unwanted '.'.
>
> Also, using "errp" name for local "Error *" (one star) variable is a bit misleading.

True.  I don't mention it, because I delete the variable.

My search for misleading uses of @errp led me here.

>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>
> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

Thanks!



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 19:12:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 19:12:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166325.1492884 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLnbi-0007Ps-MF; Wed, 19 Nov 2025 19:12:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166325.1492884; Wed, 19 Nov 2025 19: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 1vLnbi-0007Pl-Jb; Wed, 19 Nov 2025 19:12:46 +0000
Received: by outflank-mailman (input) for mailman id 1166325;
 Wed, 19 Nov 2025 19: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=G5Pp=53=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vLnbh-0007Pd-7h
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 19:12:45 +0000
Received: from fout-b3-smtp.messagingengine.com
 (fout-b3-smtp.messagingengine.com [202.12.124.146])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b8a35941-c57b-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 20:12:42 +0100 (CET)
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfout.stl.internal (Postfix) with ESMTP id 3B72C1D00093;
 Wed, 19 Nov 2025 14:12:41 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-02.internal (MEProxy); Wed, 19 Nov 2025 14:12:41 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 19 Nov 2025 14:12: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: b8a35941-c57b-11f0-9d18-b5c5bf9af7f9
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=1763579561; x=1763665961; bh=TPHRLLUj9N7LeFhs2fEg1LQrQouY7BKz
	7R9+rgW0YsE=; b=lVQcL7UwZaCpONrm/KSwcSoH6r613//7zdP5vNMmriwIs4CY
	u5K3Z/KTcrzl+9w8Z3JRYZez1gd0uoiujMZyZItm9fws/zP7hpvczvZGt2UZRcrn
	knuwarMLKZp3q47yolrd5jFKg/Xw+7Xo50iHBeazS4BI7Cp7geLSn21QrQDPDgN7
	HfRQL5gqPr9TPULK2pYwdibIpqbIhzJLmQ9S1XCWvUw36yVBiTh4Uy2y0Dzcy1+d
	mbc/ZlyOdP5bn63drUP/RGKeB/Zu0eYFOXQiVi9lpHB78Wh5MjiiBgBRhGOAYZkE
	oWAGUxd4eMrStwqQS2NHlffd28QwHI3W6jMTqQ==
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=1763579561; x=1763665961; bh=TPHRLLUj9N7LeFhs2fEg1LQrQouY
	7BKz7R9+rgW0YsE=; b=fFensa4GCJYkFrjHSMzQKHmcIxC8rKFj5b54WFuxheUK
	T/SD+VvRvO2ROBPhb3azw1u9OkVwNmrALp94U9lQ6mxMtR+SqbhWCEaOttgexbFT
	0vABzkh0HOixEbhtbNQXGmfuuZ3/jwH2hYn6pnGfk/zzKKVqpcOquClfiG0O40Vn
	q0VJVBNm4TA51EhS7SnE0RtP/5puQnXjz4jwlM6rrqYVApYYonJf5Bb4I7IP4i/s
	3WdLZTpL1xVZcNFWrR6YinRHjaEIA5lC+sAt2fSKVw8/EPfsWrF617PidkQrgAeF
	Zg+hgfaT+QQZMMIYJQq6PHeYUkOah71RddsYDsLtIQ==
X-ME-Sender: <xms:qBYeabhxux9qQWMh4wPA0TU9RxowBtJA-1NJFvGDB43OCyN4JCnNMA>
    <xme:qBYeae6hx2u7J5_iyTCFT5ua59BnihHQNdNz-KBsBdYVfJ934Zaj0AK03Rz-l3ZYs
    cknHU9k0BHQ5gUMxw9Xoyy9DSjzL4K4U748uTEIJ6w8hoQM>
X-ME-Received: <xmr:qBYeaTZZ9o35hUpNFGeCdyYih-tdbESlgrF5mI7dWh1izl69sKT0dNoTRpDhH77lJgGO7h3Zzjb_ZCjeydUVxQz7Q12LQesUsjsKcbAZ1f0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvvdehtdduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhephffvvefufffkofggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeduteevffdv
    keduvddulefflefhveehhefgieffudffteegvdejuefgvdejfeeftdenucffohhmrghinh
    epkhgvrhhnvghlrdhorhhgpdhtrhhmmhdrnhgvthdplhgushdrshgsnecuvehluhhsthgv
    rhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinh
    hvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohephedpmhho
    uggvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgi
    gvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhs
    ihgslhgvthhhihhnghhslhgrsgdrtghomhdprhgtphhtthhopehjsggvuhhlihgthhessh
    hushgvrdgtohhmpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrhefsegtihhtrhhi
    gidrtghomhdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
X-ME-Proxy: <xmx:qBYeaT6qc107i0__3y6Z9ONMsZZOqpNHUHME-EA52scxAItK6d7JqA>
    <xmx:qBYeaWDtcJ9Uw1UgoEWfH8nJ0Uvq6eJH11IvZMs9MW0bSUfj-ItYeg>
    <xmx:qBYeaZer1XDSwhJMGYUZxGOdu4yXu7FJLTJF1tN_uSXyfgxyVPssyQ>
    <xmx:qBYeaVIBkXqwfV6zJQfFf-aDBipg5AQX0GRwzdfFL851tP_aPh-D-A>
    <xmx:qRYeaZ_pOP4rjSVeNgIpnojzvWFHmWuQMqzf03M0g1aEIMANxI-CZD39>
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] xen: Fix EFI buildid alignment
Date: Wed, 19 Nov 2025 20:12:31 +0100
Message-ID: <20251119191235.863187-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

Old binutils get confused about .buildid overlapping (in VA space) with
earlier section. That confusion results in weird errors down the road,
like this one:

    objcopy: xen.efi: Data Directory size (1c) exceeds space left in section (8)

While the bug is fixed in later binutils version, force alignment of the
buildid to avoid overlapping and make it work with older versions too.
This can be reverted once toolchain base is raised at or above binutils
2.36.

Details at:
https://lore.kernel.org/all/3TMd7J2u5gCA8ouIG_Xfcw7s5JKMG06XsDIesEB3Fi9htUJ43Lfl057wXohlpCHcszqoCmicpIlneEDO26ZqT8QfC2Y39VxBuqD3nS1j5Q4=@trmm.net/

Signed-off-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
Fixes: eee5909e9d1e ("x86/EFI: use less crude a way of generating the build ID")
---
While the actual bug apparently is in binutils, the commit mentioned in
Fixes: tag introduced part that triggers that bug.
---
 xen/arch/x86/xen.lds.S | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 5d02f83a409c..967f9167f757 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -171,6 +171,8 @@ SECTIONS
        __note_gnu_build_id_end = .;
   } PHDR(note) PHDR(text)
 #elif defined(BUILD_ID_EFI)
+  /* Workaround bug in binutils < 2.38 */
+  . = ALIGN(32);
   DECL_SECTION(.buildid) {
        __note_gnu_build_id_start = .;
        *(.buildid)
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 19:13:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 19:13:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166327.1492894 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLnbz-0007jV-Td; Wed, 19 Nov 2025 19:13:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166327.1492894; Wed, 19 Nov 2025 19:13: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 1vLnbz-0007jO-Qk; Wed, 19 Nov 2025 19:13:03 +0000
Received: by outflank-mailman (input) for mailman id 1166327;
 Wed, 19 Nov 2025 19:13: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=aBqX=53=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vLnby-0007Pd-NM
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 19:13:02 +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 c44940d8-c57b-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 20:13:02 +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-163-ZZ9ZNeNsM7mLeavDfCwX8g-1; Wed,
 19 Nov 2025 14:12: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-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 0EC18180034A; Wed, 19 Nov 2025 19:12:51 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id B313C180047F; Wed, 19 Nov 2025 19:12:49 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 3478021E6A27; Wed, 19 Nov 2025 20:12:47 +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: c44940d8-c57b-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763579581;
	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=40h3XLj9+PQ9YtwgX30Ek+MMJ2QDdr/Ci5vXiZEsl2A=;
	b=PIbfsttwP8VK0U/cN/MVh0Vb1Qxv+glISjeLh+HpvbiqV/SVNV1cmyqMqd3bVv4YiDpIQj
	7wCVR4ZCQSw14fxPlZ5an6o8thBg2DcmGbD6OkMuAhg4ErO88oftqsuvTTm7RozuhFWVFN
	ZhRsZQ+v4pFRP3C9OMB8VRVbe4h9OsQ=
X-MC-Unique: ZZ9ZNeNsM7mLeavDfCwX8g-1
X-Mimecast-MFC-AGG-ID: ZZ9ZNeNsM7mLeavDfCwX8g_1763579572
From: Markus Armbruster <armbru@redhat.com>
To: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Cc: qemu-devel@nongnu.org,  kwolf@redhat.com,  hreitz@redhat.com,
  mst@redhat.com,  imammedo@redhat.com,  anisinha@redhat.com,
  gengdongjiu1@gmail.com,  peter.maydell@linaro.org,
  alistair@alistair23.me,  edgar.iglesias@gmail.com,  npiggin@gmail.com,
  harshpb@linux.ibm.com,  palmer@dabbelt.com,  liwei1518@gmail.com,
  dbarboza@ventanamicro.com,  zhiwei_liu@linux.alibaba.com,
  sstabellini@kernel.org,  anthony@xenproject.org,  paul@xen.org,
  berrange@redhat.com,  peterx@redhat.com,  farosas@suse.de,
  eblake@redhat.com,  eduardo@habkost.net,  marcel.apfelbaum@gmail.com,
  philmd@linaro.org,  wangyanan55@huawei.com,  zhao1.liu@intel.com,
  qemu-block@nongnu.org,  qemu-arm@nongnu.org,  qemu-ppc@nongnu.org,
  qemu-riscv@nongnu.org,  xen-devel@lists.xenproject.org
Subject: Re: [PATCH 1/5] hw/core/loader: Make load_elf_hdr() return bool,
 simplify caller
In-Reply-To: <bf44d9cd-806a-4d2c-8cff-0a88222959ed@yandex-team.ru> (Vladimir
	Sementsov-Ogievskiy's message of "Wed, 19 Nov 2025 19:34:26 +0300")
References: <20251119130855.105479-1-armbru@redhat.com>
	<20251119130855.105479-2-armbru@redhat.com>
	<bf44d9cd-806a-4d2c-8cff-0a88222959ed@yandex-team.ru>
Date: Wed, 19 Nov 2025 20:12:47 +0100
Message-ID: <875xb5x2ds.fsf@pond.sub.org>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111

Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> writes:

> On 19.11.25 16:08, Markus Armbruster wrote:
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>
> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
>
>> ---
>>   include/hw/loader.h |  4 +++-
>>   hw/arm/boot.c       |  6 +-----
>>   hw/core/loader.c    |  8 ++++++--
>>   hw/riscv/spike.c    | 10 +---------
>>   4 files changed, 11 insertions(+), 17 deletions(-)
>> diff --git a/include/hw/loader.h b/include/hw/loader.h
>> index d035e72748..6f91703503 100644
>> --- a/include/hw/loader.h
>> +++ b/include/hw/loader.h
>> @@ -188,8 +188,10 @@ ssize_t load_elf(const char *filename,
>>    *
>>    * Inspect an ELF file's header. Read its full header contents into a
>>    * buffer and/or determine if the ELF is 64bit.
>> + *
>> + * Returns true on success, false on failure.
>
> I don't really care, but IMO, it's obvious contract for bool+errp functions, not worth a comment.

Nearby function comments all have a "Returns" sentence.  I try to blend
in :)

>>    */
>> -void load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp);
>> +bool load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp);
>>     ssize_t load_aout(const char *filename, hwaddr addr, int max_sz,
>>                     bool big_endian, hwaddr target_page_size);



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 19:30:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 19:30:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166357.1492935 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLnsj-0003Hi-4q; Wed, 19 Nov 2025 19:30:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166357.1492935; Wed, 19 Nov 2025 19:30: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 1vLnsj-0003HX-0c; Wed, 19 Nov 2025 19:30:21 +0000
Received: by outflank-mailman (input) for mailman id 1166357;
 Wed, 19 Nov 2025 19:30:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GacY=53=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vLnsh-0002Z9-K9
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 19:30:19 +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 2de3360a-c57e-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 20:30:17 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DB9PR03MB7690.eurprd03.prod.outlook.com (2603:10a6:10:2c6::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 19:30:10 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9343.009; Wed, 19 Nov 2025
 19:30: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: 2de3360a-c57e-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qJN4pVjaecb08Qv8WxboLvOBhm15mGG+doAz9iSpr6ifcocJUfPLRc2O7vLJ4IC4ZynU6tq6RSPrKaf6wPnUxDJOFYnI8OKE49z5sxygDEyo51rdfhfV/KxViJReLX3F48CfRwF19/JI3QG8zTpSXawo8V5n+OzX/hTdxILL3Sa8bxIXYiwalbq+b2jvffR+9jzPQhkuLvP8vVCWPIz585WBDVfyi9qZKwfWpkAuDasbqFX4tBoGr3/HZYf6KB674PPEZ4FAWqqfTo+ClexoCtpVAdw0yNHI63SfDozkgY4ZovznnfhNCbU/qNVsS5x0b0QZXZFzaTFZSM/Ewdw5/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=yxVNyvT9747pN+a6JgkjBZM2A2r4H6G+Y1GFsarwU5k=;
 b=Qts7YRhjBXkKz8T5mPdGFsXRxLhudQhwrug0O+ra7pTx8K6kr2RDQ382zwRrweVSu2/LhHqhjvSfDfKej+afuVtwu2SoZNaE8Ilr47oQYpd18YZkHPDY5Yzq+Dk0tRqtH25hXCg4ET6FAod7l34q9JIoaCoB9UW/rXbEguVo5ODBwEVkl5MwqjDFOdUJKrb+TrBLeSyTNMwY7bV/qceO0wiCuvB3YBMrWGHVXNMgp1cAw5VP/IFsHrxmpxV6CbVRXHNlOib4d7Uv9nWnLfBb2Qs76/oF05tTMDO40h56KRW6BJhp7A764A2qjVH0Hv2oFAS6JWrYa20Oao86xbPT7g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yxVNyvT9747pN+a6JgkjBZM2A2r4H6G+Y1GFsarwU5k=;
 b=DYhY0WH02V103ZDmUe4N5iohrv5M+6bxqDRjS00moyd3bLSQJnp5k9qRkAPTB5nKeoAGisPN+Rr9udK3LYgU64HTdYMpvCHYsArFaCYLbXTEYtR5T3uYuDA4BDUCmgEaiYDq7FgHarAwIGmYLz3Yg8c1cUU0oASCnpZWXcnMPy4S7YJgGC59hkxL3W0HmT/7xaj+6q6phy2BJ7uU19uIJLUm41G473U/6EQt29tFzBU8Buo3O18X6+L2bwLfTw+uMFOy40ImBRcB3ICApFl8eXVBkyfsGlRKgfJqt3ftDpNgR29CIbYmbiQbY2NnK//KAAtxjGJiLgfnNMYYB0sRuA==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [XEN][PATCH v2 2/4] x86: hvm: compat: introduce is_hcall_compat()
 helper
Thread-Topic: [XEN][PATCH v2 2/4] x86: hvm: compat: introduce
 is_hcall_compat() helper
Thread-Index: AQHcWYrqDL5Jc1Je5EipZt1jZOW+Bw==
Date: Wed, 19 Nov 2025 19:30:09 +0000
Message-ID: <20251119192916.1009549-3-grygorii_strashko@epam.com>
References: <20251119192916.1009549-1-grygorii_strashko@epam.com>
In-Reply-To: <20251119192916.1009549-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM0PR03MB4594:EE_|DB9PR03MB7690:EE_
x-ms-office365-filtering-correlation-id: b1864e68-5db8-4ffb-330c-08de27a20dd9
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|7416014|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?qEkxN/B6rKKHTpyZfxEo3AcakfqUQoXRh3teW5jGwpO/xAgaoYKilansj/?=
 =?iso-8859-1?Q?a+gLk1Uef7jzVbWhYX0eX0V4Y8vWJsiem0mf7zZGUYNBgCy9c86h9XkcIq?=
 =?iso-8859-1?Q?/+Dq4L+pHfxUwhzKyVXOuB/zWo0wNBMssUCfGCZuj5wFlG3gvt8LgM9IU5?=
 =?iso-8859-1?Q?QMq+0lCNeQGTMzPeZkUxjbNEnWQ+Zw0adXVwatAqvkyTpysksGZNhP21kG?=
 =?iso-8859-1?Q?TZFvuVQPq46/PU8traHRo092co9tkq3ck4O1LlbYFYiEIRG2Btzofx19ly?=
 =?iso-8859-1?Q?7n4b44P/kX+E7YEW9H4o6XnAu6NbG4lduDYf48lNurGL+zijSKNd0X1swS?=
 =?iso-8859-1?Q?JHo13F0W5FAvwcDR+VfDqUERw2gPaf8flOLK1TBSSJJ54rbVa5Awcj7Fun?=
 =?iso-8859-1?Q?E7dDgqGm6oxMVhtB8x88aRRmrxDtftoynCYUgEttVJYEgWNHkQ99GO4KPh?=
 =?iso-8859-1?Q?qjeXP47BuChzGHg5o8yFuA9Ov1XRb7kE8fU9aulNpXm1mTA7IVLdSEkY5O?=
 =?iso-8859-1?Q?Liho3lp17cqtpkmqP20va+CL7EnBAUdes6KNVcCUDFFr5uc97bwkB47OzZ?=
 =?iso-8859-1?Q?F4ZVZUdtd4M0Jqrd2epzZR3R3NMbaMZLcD8PJilZdKJxWFeBsOSt/XHk5H?=
 =?iso-8859-1?Q?/0L0KgVoaPMQHLeHMaux02GwMixTxJgcRpte2N2bw/D3AFKZ+IqfbmJ7Fy?=
 =?iso-8859-1?Q?TnEJ+zCFCtteaSIJZMwwiDPSYiohmTSyiXPaSMxGf2p71VXkx5eeFPcQb5?=
 =?iso-8859-1?Q?E43YGwwJX56jhNKdMbJ+55iTECFiwV6Mpr/uZTO6bZXqyXJtSe5XqPhr6t?=
 =?iso-8859-1?Q?dS2+71Q+F9ixlCZfybgayUn6gp/shVy6oA+7+z4DV4XYxOyje3RZq7f5oM?=
 =?iso-8859-1?Q?0X4A77LVveKXwjHMGvdHiY85LvIw6R9qIiSG4/1uxNXSOJwyExjjz3nOFF?=
 =?iso-8859-1?Q?zMTYFiIBE89/nydTjakY8rcOaPpl8mvzYuxrlQdraKBHftVPgtszR4kOm6?=
 =?iso-8859-1?Q?TU0Z41zbgo1TQDxmllXy3WCPIbsJKaWVFwlfLZoi0ubOtoe4Cfr/FN/MOW?=
 =?iso-8859-1?Q?jaHrTDDsjk0/LmBHJTnr6LbsU6BvSUWJN+lsvmkasoP4w7fu83xXx+0uCS?=
 =?iso-8859-1?Q?3NAHFxh1p7J9H7K95r3L7MMFIXTCOF9RczfgcFFb24T/vlP2omYgh4JugO?=
 =?iso-8859-1?Q?8n048xt5cqkANJH0w2tWKgzn2kQ/0O/Tp2yxObp5o407xkaTZfYHATB4Mg?=
 =?iso-8859-1?Q?BeGGcpbfFTWC4jNA+qIGU9WFLH204yld8FUB8i82wPIGy9vUkS0his4Jq7?=
 =?iso-8859-1?Q?in7ZBrGfAjNJd0aWiALCuboJsbUitAiJyFQ10spid7Rz4XgRUM4YQsZ7kB?=
 =?iso-8859-1?Q?F+3eQC62ZEMBkgIxsRbSgkuQ53S05IfS150/tf45OPWA/zou9lf/GDnCCf?=
 =?iso-8859-1?Q?nBBP99kQnuaMBmB459L4XmRGCA3Rc4s/25r/qcCggy07FlfeFNu47q8vo+?=
 =?iso-8859-1?Q?NcXSLb85K8qRpxgIrIrkbHxiAigjDokzbShnfwGovbdO9/drYPWJ9urfZ7?=
 =?iso-8859-1?Q?zhRyPOM=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?XZx4rqQ5i4EBI29BgzYAsSJA8r7oQUWA6Ofa1UZImoio70+TWyIZNln7Ng?=
 =?iso-8859-1?Q?Aza1YnFPtF4GOuhwq+MhADEpZqjrBj5LHT8364IgX2N7zjoHTd4L+r8ZUM?=
 =?iso-8859-1?Q?JDo7LgppnqysZwigyqJdc6vHTu1XT7xh6HSa7CWjrThsEZ8WMmpjtUq/Hv?=
 =?iso-8859-1?Q?L1p1dvPdJ49RxqUOlyQKHGACjNzZjJG8vEHj9+cj+d0fquUg7cbNZV6H2X?=
 =?iso-8859-1?Q?ruORqATuc9FgCJE9v7quEeiOLGDxIvHFOfjxB26TuGtIrOAgffpsVUFDFx?=
 =?iso-8859-1?Q?c3hC4GBZLXY/Gpak9FQPr29qSQequbGMVkc1++BYRON01n+ZgRsm/fPY/Q?=
 =?iso-8859-1?Q?gJEnqgH+VMgf4BoXHojbLjlX+aWxgomfeVbmNUBS1aHPR3zKIURnZe2CH7?=
 =?iso-8859-1?Q?Bfhbgo5GzzsoLmq+PwbtawPVpij+8kAKPd7lzBUx52TokUpL+almQe8G+P?=
 =?iso-8859-1?Q?S+ZXwdbHLoReTLXmEnghCArwMyqakQWgAO9WzK7bzMXb9uYHBHMA3s5Yr1?=
 =?iso-8859-1?Q?VHwd1Ds7iMtgnTU6cVeH3I94CplZBP/5KfG+MoC5ECUJdvA56QvInCSaNt?=
 =?iso-8859-1?Q?dyOkStkPBVf01GbmE8J8qUY3EidMvUqsdhfqu4x3b1Gu+lmJYJp41aRNU0?=
 =?iso-8859-1?Q?lYr37gFE1IgkX1AAqPLYhvxdSa2lyNanFfYqhbdgAIvOqG2Z6VcNZHq901?=
 =?iso-8859-1?Q?S5mk2RlCJSlBTxEGM7m8VgZomnF/68S1jUA3MyOumKakBR5uQqrApjWuY/?=
 =?iso-8859-1?Q?KbqrmL3mICZ5IvPUgRnqjsCvHsj3D06uwjOwpCIaZNEI1JGfpZOmgLTqJk?=
 =?iso-8859-1?Q?SXml0aCi8f8fcGLJnTFhnKOWd6Ju816Y6LzPMSSAE2SDSmjMCDgcvM56VO?=
 =?iso-8859-1?Q?dQDimKTRPRGkOR1T+CYhu3NKnctrkUho/NlGI/8PuUFpjTAHSWr83wA5+f?=
 =?iso-8859-1?Q?H4GYN/q4f59BSHQCa/Ai6JTnQ1PXX35WsnyNtG7ANyrRCzo9N8sEc/2ClD?=
 =?iso-8859-1?Q?AasXHIvLgHC+KyfH+e6nl98hAyHaq7gAlwY69Ks7H17eUJqLdP0jin4SKk?=
 =?iso-8859-1?Q?jamuNGht4iTk3HkFHQyaN04ts/T8ad9XFq/EckjwgiRbUhgrEQnZG7Uwaz?=
 =?iso-8859-1?Q?fQGDHS25XikfgsXse1IzPw3iYraUUhQCkh4UkIRjw66xk1noQSJDTxJhme?=
 =?iso-8859-1?Q?I9i+IUSu1VJWsh4HOlWua1fENpXTObZ2xR2s6oreiI4BrEWMeX5dZe1KDx?=
 =?iso-8859-1?Q?0Wb6/e5Glm4lmgvO2FYp9PA67Jxgqo0NTKCEQDcad8lzFcHwxN0K9cps4Z?=
 =?iso-8859-1?Q?L7jFnpojwTS0wzf89kRQ+XWdSLl9ETa9BYVSuLXYa9es7GnWyAmShWy6rc?=
 =?iso-8859-1?Q?cBQYFqetG3N6exU+ljtzpQ9VJoMiPWtoOIRJu1g15npc6VBBAEumB70Sm7?=
 =?iso-8859-1?Q?Im+ykd9yj8MPBzEzG/SmCLRrq1fu9YRgz6otOvp3ViDKvwGy9j/GrAmtPW?=
 =?iso-8859-1?Q?ZBmmQDlaue21DYGNOZ1W5X62bB3NQwLUXawZ45Fajw8U3mXcNfwylyUoFg?=
 =?iso-8859-1?Q?9wDnKXZJnnp3tuGZuENDrWEDttrtxQNN2Su4NJ+0bkOtYM8wlip619kDbw?=
 =?iso-8859-1?Q?yMxwsGO4K4h8rKgYIGZ5PLKJK3FaSYifQxibhDAB0nuTEBpd3smLwULw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b1864e68-5db8-4ffb-330c-08de27a20dd9
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2025 19:30:09.3784
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: upMs5v4m4sEAboi5v2brPGN0pJgDjQX1loFmB9cD1i/xvUY6DvwkVG6v3NEmqsXsms6CmmY745LvyypiuZjePaoQOmMdleIDxLRb1o80pAY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7690

From: Grygorii Strashko <grygorii_strashko@epam.com>

Introduce is_hcall_compat() helper and use it instead of direct access to
struct vcpu->hcall_compat field in preparation for making HVM COMPAT code
optional. The vcpu->hcall_compat field is under CONFIG_COMPAT ifdefs
already.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
changes in v2:
- change to bool is_hcall_compat(void)

 xen/arch/x86/hvm/hvm.c       | 8 ++++----
 xen/arch/x86/hvm/hypercall.c | 9 ++++-----
 xen/arch/x86/hypercall.c     | 6 +-----
 xen/common/kernel.c          | 2 +-
 xen/include/xen/sched.h      | 9 +++++++++
 5 files changed, 19 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 0ff242d4a0d6..0fd3f95b6e0e 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3500,7 +3500,7 @@ unsigned int copy_to_user_hvm(void *to, const void *f=
rom, unsigned int len)
 {
     int rc;
=20
-    if ( current->hcall_compat && is_compat_arg_xlat_range(to, len) )
+    if ( is_hcall_compat() && is_compat_arg_xlat_range(to, len) )
     {
         memcpy(to, from, len);
         return 0;
@@ -3514,7 +3514,7 @@ unsigned int clear_user_hvm(void *to, unsigned int le=
n)
 {
     int rc;
=20
-    if ( current->hcall_compat && is_compat_arg_xlat_range(to, len) )
+    if ( is_hcall_compat() && is_compat_arg_xlat_range(to, len) )
     {
         memset(to, 0x00, len);
         return 0;
@@ -3529,7 +3529,7 @@ unsigned int copy_from_user_hvm(void *to, const void =
*from, unsigned int len)
 {
     int rc;
=20
-    if ( current->hcall_compat && is_compat_arg_xlat_range(from, len) )
+    if ( is_hcall_compat() && is_compat_arg_xlat_range(from, len) )
     {
         memcpy(to, from, len);
         return 0;
@@ -5214,7 +5214,7 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PAR=
AM(void) arg)
         break;
=20
     case HVMOP_altp2m:
-        rc =3D current->hcall_compat ? compat_altp2m_op(arg) : do_altp2m_o=
p(arg);
+        rc =3D is_hcall_compat() ? compat_altp2m_op(arg) : do_altp2m_op(ar=
g);
         break;
=20
     default:
diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index b254b3e2f7d6..52cae1d15312 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -29,7 +29,7 @@ long hvm_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PA=
RAM(void) arg)
         return -ENOSYS;
     }
=20
-    if ( !current->hcall_compat )
+    if ( !is_hcall_compat() )
         rc =3D do_memory_op(cmd, arg);
     else
         rc =3D compat_memory_op(cmd, arg);
@@ -57,7 +57,7 @@ long hvm_grant_table_op(
         return -ENOSYS;
     }
=20
-    if ( !current->hcall_compat )
+    if ( !is_hcall_compat() )
         return do_grant_table_op(cmd, uop, count);
     else
         return compat_grant_table_op(cmd, uop, count);
@@ -66,8 +66,7 @@ long hvm_grant_table_op(
=20
 long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
-    const struct vcpu *curr =3D current;
-    const struct domain *currd =3D curr->domain;
+    const struct domain *currd =3D current->domain;
=20
     switch ( cmd )
     {
@@ -96,7 +95,7 @@ long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void)=
 arg)
         return -ENOSYS;
     }
=20
-    if ( !curr->hcall_compat )
+    if ( !is_hcall_compat() )
         return do_physdev_op(cmd, arg);
     else
         return compat_physdev_op(cmd, arg);
diff --git a/xen/arch/x86/hypercall.c b/xen/arch/x86/hypercall.c
index dc0a90ca0915..5d1ac906fd37 100644
--- a/xen/arch/x86/hypercall.c
+++ b/xen/arch/x86/hypercall.c
@@ -53,11 +53,7 @@ unsigned long hypercall_create_continuation(
=20
         regs->rax =3D op;
=20
-#ifdef CONFIG_COMPAT
-        if ( !curr->hcall_compat )
-#else
-        if ( true )
-#endif
+        if ( !is_hcall_compat() )
         {
             for ( i =3D 0; *p !=3D '\0'; i++ )
             {
diff --git a/xen/common/kernel.c b/xen/common/kernel.c
index e6979352e100..3ff06e315f57 100644
--- a/xen/common/kernel.c
+++ b/xen/common/kernel.c
@@ -615,7 +615,7 @@ long do_xen_version(int cmd, XEN_GUEST_HANDLE_PARAM(voi=
d) arg)
         const struct vcpu *curr =3D current;
=20
 #ifdef CONFIG_COMPAT
-        if ( curr->hcall_compat )
+        if ( is_hcall_compat() )
         {
             compat_platform_parameters_t params =3D {
                 .virt_start =3D is_pv_vcpu(curr)
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 02bdc256ce37..ed6fdeeda9f9 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -311,6 +311,15 @@ struct vcpu
 #endif
 };
=20
+static inline bool is_hcall_compat(void)
+{
+#ifdef CONFIG_COMPAT
+    return current->hcall_compat;
+#else
+    return false;
+#endif /* CONFIG_COMPAT */
+}
+
 struct sched_unit {
     struct domain         *domain;
     struct vcpu           *vcpu_list;
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 19:30:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 19:30:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166354.1492905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLnse-0002ZU-Br; Wed, 19 Nov 2025 19:30:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166354.1492905; Wed, 19 Nov 2025 19: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 1vLnse-0002ZM-90; Wed, 19 Nov 2025 19:30:16 +0000
Received: by outflank-mailman (input) for mailman id 1166354;
 Wed, 19 Nov 2025 19: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=GacY=53=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vLnsd-0002Z9-1M
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 19:30:15 +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 2ab64210-c57e-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 20:30:12 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DB9PR03MB7690.eurprd03.prod.outlook.com (2603:10a6:10:2c6::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 19:30:10 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9343.009; Wed, 19 Nov 2025
 19:30: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: 2ab64210-c57e-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hzFVI1qeLmoUep9G1d3a0+k9reJE0YODhqc/eMCJOaIYeP/MIkjyFGdYqpF9nKApG2pUxbbfXvyA7Sl3uD7b6OOqtmJI0n2wUaj5p0gcF9C7ffb6YdLnha8C+0Pp8t1zgsFE+/XEL7rh9q9XrmLE4S735ZhCOm9QMtGSkmuaVM9oj4s8N4yfrHB0F0WEBC4dPRL8XuLwmBNZ073vsAunaO3VAZ8MSZHiRx8o14oVXrXK5gx11JVebUp7onza1kveJQl8wpzyzBZXIKZ8ODz3Rf3uMseJceybgBwBz6eard7fh4p/yTHeek9AVJlngKCJ9zH52Ws28bxS64ucw+/MEg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qAU2PDhbuiddf2I/GmozcltWmnhZWuzrgOPvAj3MfzU=;
 b=lP1oYpxKReMPTWUaFLwm7G466UxB/qDQYK6VoBgbN6ABF+vrmTwpBF0jPGQCy3JwKRE3M7V0UOE5J1V3cZB/g3EMLTyH889JvqLnUoUSoIfzIYIjSHLnNoymWTyiVXWLr3m2hROa6SDJbojelUxCJ2/aFeXlcGGJwoX34cwR5h1695o6gIvvHcUOOZz4gdTq4i0kHxBG3zGUPA4vIzze52ITu6lvC1Pj7VVBUW0AR1yaT7ALIMamU2Kq1o5HtJ1UW9HOR3oJ17J6PtVJwz9nKElrQ4Ax6/V7euKWFsIoBJSFxz0OBSgT+SuDbOtdubhYColWw9STwi1W13QrfA3H2Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qAU2PDhbuiddf2I/GmozcltWmnhZWuzrgOPvAj3MfzU=;
 b=sXINcK/jZtfCr50/9GTz98OQjblXX+sz2vmd4yHxQBPcFZTJJuSgOcev35O9HEiDXanwi5DwOHR5/Lt2hj8thx0Syy9iPZUXiBjFqoqxJelombrMYqO18qSP871b3DPRyCr5Q2kp9NnUaHZVbJOOpfY8uXqbfSqw7azPIzwTGLeGCgSYv1Z3JxxXW1IrcoKqd96LKLUwLCB9iHVmEOMh0bpXXcGHt0S6UU2q3C6yh6A5ICzqg5nxBtt3IJt+9+7wMwciwsmSCzA7ceRyxz4foTfOx802hsUH0HMCcfn3saRdQ8Fuh74dMrEpOzZTaYlYuVoVpvIfwbFJ4EnxcjPFWg==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Alejandro Vallejo
	<alejandro.garciavallejo@amd.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: [XEN][PATCH v2 1/4] x86: hvm: dm: factor out compat code under ifdefs
Thread-Topic: [XEN][PATCH v2 1/4] x86: hvm: dm: factor out compat code under
 ifdefs
Thread-Index: AQHcWYrqEylB9yFxC0Ctjtrr94qNKw==
Date: Wed, 19 Nov 2025 19:30:08 +0000
Message-ID: <20251119192916.1009549-2-grygorii_strashko@epam.com>
References: <20251119192916.1009549-1-grygorii_strashko@epam.com>
In-Reply-To: <20251119192916.1009549-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM0PR03MB4594:EE_|DB9PR03MB7690:EE_
x-ms-office365-filtering-correlation-id: 2a4e4612-cc18-4637-4a30-08de27a20db2
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?cZVXkW1svFTsFBRXmH9NjcLQlqoygso4fByRIl/0WeVRqMReNUKm+Ih2J1?=
 =?iso-8859-1?Q?6ZZhQqnYivPJMNkLXpb0wkaC78ptSJqx2mJvBUxD/ZIzhQ2RMvD7hwLvIZ?=
 =?iso-8859-1?Q?pI1PeLDKIjp9L3MLXeLkL4zv0+tP4bD3cms+DwwCCAIbqQcDX18q84fjdR?=
 =?iso-8859-1?Q?YBkAW41yt2W62f/EmyGX48AKSB6Vuiv/dmukWeCiUsnJbpNk/t7yXrj6nX?=
 =?iso-8859-1?Q?O1WVwICPytH5E+PHYAgELSypvoQhu+2gAHVrnTdmLjZITIQlkMyfyTUvaL?=
 =?iso-8859-1?Q?byl4HkCuN4LKaeC/VMjyyIb9Yq5CD9EhC/KLCWqdjkOImCOIly5CBzNbwd?=
 =?iso-8859-1?Q?qI3xlp51au4Rl3mzuu+pM0MkBEAvqB0pkIVLp0UonTGKMsbvD7d+1Xt819?=
 =?iso-8859-1?Q?ti+ToVfGyX2R/AkLutqe4Cu4KWQWVpl0/BryzNSNDqKnvqBhLiGDSOqZAA?=
 =?iso-8859-1?Q?NqvAIqT+j50AmBlNdImRrlQXTtxAQOLTpzK5BZ6KXWYvD/EyRBdMF4vS0m?=
 =?iso-8859-1?Q?IuV6/SW7xPPGZ+kcdlRykfb98GpHFAJHEPodcSdKfis1e8oSLTpfyooXo+?=
 =?iso-8859-1?Q?YjKwY3GglU2C4QJUmNR4TV8H0W3ePTIUB08yqv235vY6xuSpuOrW2UYRxi?=
 =?iso-8859-1?Q?vbD7+qz8se+Z365v+RWk/ybrj3APlKpugC4i2v3QWU2K926qC6EEk456bc?=
 =?iso-8859-1?Q?rj1bGEUe+epCt7mEdy5lfItQBofL+I3vvK0WdqE4+jregBivgDfvSiM4kS?=
 =?iso-8859-1?Q?d0oJgtwYVtfWplA4+iMXBvRtM7bjYoieQqJX9y/6OpD6Ni4+lNbSNJ5om6?=
 =?iso-8859-1?Q?LgN2vfeVwNly/OcpV0ue9FDjxeF3ZQJMI8fvEn/7Ctvqtw6tbJS5XNk1T/?=
 =?iso-8859-1?Q?oTkqLo0gb8qvF9o3t1/7Vv34KR1COs7N27GeuAu6lu7ErV1bm0x3fFwBrV?=
 =?iso-8859-1?Q?srRt3DKsbINw7RJpX8fO8IN2NBqaa4/QutMPDkjza21WKDekPRI07PfPHS?=
 =?iso-8859-1?Q?9uGYF+IKAqnmujlJbxWX1dLIO+c+fmH6lePXU23T+mkUhzFA6pRDaCHV7I?=
 =?iso-8859-1?Q?2Yz9KtQHSU6B7bpnMaJ1ULYkSSevmj/rl6KX6e95HCaM7rwbYMuze1Y+yO?=
 =?iso-8859-1?Q?DyehbG2Fgh5ZIEY2SQ7C5whQy5ZXGqkNt43vugxyc1gcW/nnkXnTAOLBTT?=
 =?iso-8859-1?Q?BCXlXvQVPdHq3kWwRfA5b7j1Sha85WBYGXJt91E5ZShfiqsf0GIW6TpaG/?=
 =?iso-8859-1?Q?mi0WaAd7UfVjxtC5Kx0kZWCX77cR9AeODAcH1KzL8pf1iAd1Aq2kTdAnFD?=
 =?iso-8859-1?Q?/JklylDOqegBCFNfnaBmv/ZuExB/BHQ+xyyyf/bgGDsqJnmAxt4FxxVX+V?=
 =?iso-8859-1?Q?RacjjWjiNPxkPyPGRdYUM7IXO1XruNUhVaW2LUgpjvv4pCl5N8C3S9eW3U?=
 =?iso-8859-1?Q?abYKOEIAD4nwOD1nQdp/AxCA+m+KazHXrW3/ciq1JzsD2K/bUbvDuKu1fM?=
 =?iso-8859-1?Q?+gTDkqtNSaQ0KbuOylGniP/UobDSM/UkiCLfrGaqY1wfPvk7yCnlIowDjH?=
 =?iso-8859-1?Q?FSjkBxNFMgmwTlOk+rPP3lzfzY9m?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.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?LFlY5jU1GQpFoE7f+6oS67pI9UotOEQn0GsVeyZ1RMuOnYwk9oLVwynYHz?=
 =?iso-8859-1?Q?E4j178YtEgXryvaBBvn4QyI6lmMcfq64ORcspMDydSrVIt+xAyiCW+4rO9?=
 =?iso-8859-1?Q?HKSFCl2t3fV/44Q8Pa27LABErrMmmhsz6a6wv5nfSq857cR10xSl+SR23S?=
 =?iso-8859-1?Q?n0Y1F0kwq3aCPW+Yma2v4G2MwP1tzYt1AwySaC//sZIoUMloA30QEuGjx/?=
 =?iso-8859-1?Q?xaEmbHLZdKxtHM5UMMMHO0ZL66RNq9x96xjatDIkdNpfrNT+6gFMBABGVw?=
 =?iso-8859-1?Q?s76kXU9zqADqFY8Xy5wZT7XCZGf2EqJxNLNvY3f/uXkqcQ/ZZZip6cerLQ?=
 =?iso-8859-1?Q?kGP9wYCUcpdhKrBSbrusP1xFHGe7oAEAdSKlEVjNMgm5ThR8wWmGze/zoz?=
 =?iso-8859-1?Q?81LGyyc+2c4Pt9ZyRgWpEMsyWTE0Lxu2X2CK/NGkzQqI3P5/NVzB23UgtD?=
 =?iso-8859-1?Q?C1LJ7PUyGQAg6G2W3b1bPx76kyvDWJKCS0oxx0XjPl8wND9WN3jenTRwfj?=
 =?iso-8859-1?Q?4GijYRibMaqR0fCsxgbZAEchHVGr1LmNBxIh8yeuHSL5sGlNTVU/HnOUjI?=
 =?iso-8859-1?Q?vLNnvRfkG+Z/Jl7e788DfR6vG9BkRGhRBWZFqQg3WxRueBwhrYxqpzwgVI?=
 =?iso-8859-1?Q?kcBGcejicc+QEz/dhDAB+J9MpLOvBb19WvgfOkkD3Di4hCoQ19qlk5skC1?=
 =?iso-8859-1?Q?f3EZgi0Xlpyk8wsInTq8GlRPUeOucS3z10UDymMlDBPPIFOgQ9sPR5cWTO?=
 =?iso-8859-1?Q?AvOwec5UXY8qzPuXZMtJuKxSuTwrPkJ2jM70ST44OxXmKQQA+M2TYOeh+j?=
 =?iso-8859-1?Q?zMjQHDJs+BUIchCpUUQyL5BHWdDbKvYT5+jc4gpzATSldb7GIq6YA8KKKB?=
 =?iso-8859-1?Q?u2l/VkXIDARJMCUexWoSuKV5BZMyvJEseHPOBr6F4MTvxjhQjBxib2oNus?=
 =?iso-8859-1?Q?9HOgTTTiZyzLZJKyma3sZnZdrJkIfTd/5PGV+vhaEZsOwkV8JNF6Hhm3GD?=
 =?iso-8859-1?Q?PFjLF26dsswJq2DcHzxCtKqlt6W+y9/oKuPWtx7W9ctATAlYPRCwBZ/8SY?=
 =?iso-8859-1?Q?mu/+LxVU6+VNK0IxQAJ458rWc5cm501TjQzWoCW0+Ckrnojk+txcmbqBA1?=
 =?iso-8859-1?Q?oJBJ0aQn1mNJEg0YU6nKH5dYsZsrXyb/DwOwaGN8ko4FMeyudtCSsfDBgP?=
 =?iso-8859-1?Q?FVNY+tnieJAeIrtphhCMJlX3Cssy9WNQMf09Tq3nFjdPzFA/Cg1ly0zMGk?=
 =?iso-8859-1?Q?QfHuiptMBjA3lzmga9vLSvSu2F1hlg05hqC/P/R90lazOJATpW3o0Tb/XR?=
 =?iso-8859-1?Q?s+6mVaGOkqqX/rgLl/ZSOXTFLzb45ISa7poHZTko6I+lpR9IBiDtXusjCx?=
 =?iso-8859-1?Q?7gRBzErl8MnMidv9g1YI0QKBronnQs6R8gb8+EZLMJaZGWa2UflUgokchK?=
 =?iso-8859-1?Q?JXaCFyZ1GE1XhFNvrQwYHcJhoPqTIDBR5eV7fFKuMCKo6HGJFsxrI1qOWO?=
 =?iso-8859-1?Q?mJv4w24vEGSiUdTm4+7194NsFoWJcBh/5C34reC1p0t3+doBQgyvhozkPO?=
 =?iso-8859-1?Q?XC099lyTu6FTNI39eBGLlb7cRZ+3N04cJ3fr3q+J/W1qdfEcbojPD0Gau+?=
 =?iso-8859-1?Q?ZI+RBK4ufO3JLcaS9ZjNURc7IvOzpREgUuE95fQcUhmrnCUEvBdCeujg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2a4e4612-cc18-4637-4a30-08de27a20db2
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2025 19:30:09.0086
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: UYroOkb4L3OIIOq6tlPUwarGDgJ6m8J66kzL9jLwUtZzfR07SNctbKR9YPld6cTT5YqIrfSDQrC4tykCjRjm9rlrhR9LUwgeg+PGLliEcdw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7690

From: Grygorii Strashko <grygorii_strashko@epam.com>

Factor out COMPAT HVM DM code under ifdefs in preparation for making HVM
COMPAT code optional.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
changes in v2:
 - no changes

 xen/arch/x86/hvm/dm.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/arch/x86/hvm/dm.c b/xen/arch/x86/hvm/dm.c
index 3b53471af0d9..f6dd1634428a 100644
--- a/xen/arch/x86/hvm/dm.c
+++ b/xen/arch/x86/hvm/dm.c
@@ -623,6 +623,7 @@ int dm_op(const struct dmop_args *op_args)
     return rc;
 }
=20
+#ifdef CONFIG_COMPAT
 #include <compat/hvm/dm_op.h>
=20
 CHECK_dm_op_create_ioreq_server;
@@ -680,6 +681,7 @@ int compat_dm_op(
=20
     return rc;
 }
+#endif /* CONFIG_COMPAT */
=20
 /*
  * Local variables:
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 19:30:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 19:30:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166356.1492925 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLnsg-00031b-Pc; Wed, 19 Nov 2025 19:30:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166356.1492925; Wed, 19 Nov 2025 19: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 1vLnsg-00031P-Mb; Wed, 19 Nov 2025 19:30:18 +0000
Received: by outflank-mailman (input) for mailman id 1166356;
 Wed, 19 Nov 2025 19:30: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=GacY=53=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vLnsf-0002Z9-Pj
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 19:30:17 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2cd7d038-c57e-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 20:30:15 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DB9PR03MB7690.eurprd03.prod.outlook.com (2603:10a6:10:2c6::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 19:30:10 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9343.009; Wed, 19 Nov 2025
 19:30: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: 2cd7d038-c57e-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TYUxg4MI9zZ52azaxNb13uB0AUT+WAkML/IpIYPmI+1Ujz8yiq+l1l/i4Ct1t/hLJ2w5RSgOYrx2QcjK6qa8CH+7wvcSYSe/6dnHHFtAuLIqgYdQQC/o5k0Ud07SpDu07cZQqMjLc9CZBnaj9SxlzBnBgVhE1UUMcOJRuPmGURhx6QzYFh+SVG26rpVai5QyFTIaA1zgmDj1+xbxTm0UXAN3K/sdOaEomGze9cswoSJdXstfsfZgOn+7mwqvMrSVP9PWCiufQAofZu9ru5hxglvN2sfbpujKlPmyOBR1BbC5Fn5cROC8uzAAXwSWg/XJnD03/bny1ELsgLhN5R57BQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GPglyECsOkN2++4mgHd44d2kLgu2wCiloD7HtlQYTtQ=;
 b=HPSdVrL9vEr/4yHQrHqU0uhvPjtrTb2lpuCDAWZbIN/jiUqJurH/PeNExY2Lrg5usyZobgptoQ+Bhnv4VJ+R3mbt3VOlFwT/Uq4vx7VlzxbmTTaCK/qyYTq9QNgeLQjVH5ZE+PFgQZ7f6WGL7vFqRN3Xzc/QBLMZ69OEaj3ZQlWqqakiSQNmTwGfp5oczpBkguyK0jg5yBj5Av9jjSTrMsL3fau2qZU5qY7H4aPr3UoLXMtyrOK4fkcIVENyCqZ7kDE38+ZZKzVap9wWN17ca9NmQhfJOUgMAssGxFtQQeaQu+VrvSkpDhlEBuT9L6Zk4m+2dfGaCCEBu7+ddVIEPQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GPglyECsOkN2++4mgHd44d2kLgu2wCiloD7HtlQYTtQ=;
 b=SuYR6DQEkeZ6lK1BciOBH6+zGNTHwqqan8XtQy9LZowgThCvzqsQHIzJ0YaTmizXv1ih2xHKb52cLAfVd0800knjSdymNaLl45QSJTxbcOU8+qvotfbZOu45HiiADYV3Yf1byHyLf2rJPDVwz6zzk1f54JEbmgHqwiGlF5CYUtMX7SKSV6jCf4u14e9EnXFQhplUohyEsY2pACE6GHaAUcnrEK2GkK6JCaSdBl0LshMNVMBMdeY7+u0qapcK7QrWew/am3eVgkHlTHPbUcJDgFat00zcxQ4dabJW+8eNWu+FisGK7liO+6QF5c64amjTlepPZVd3yp9tnfjWlBiurA==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jason Andryuk
	<jason.andryuk@amd.com>, =?iso-8859-1?Q?J=FCrgen_Gro=DF?= <jgross@suse.com>
Subject: [XEN][PATCH v2 3/4] x86: hvm: factor out COMPAT code under ifdefs
Thread-Topic: [XEN][PATCH v2 3/4] x86: hvm: factor out COMPAT code under
 ifdefs
Thread-Index: AQHcWYrrmJaqhgTOc0CHcduP//mrNg==
Date: Wed, 19 Nov 2025 19:30:09 +0000
Message-ID: <20251119192916.1009549-4-grygorii_strashko@epam.com>
References: <20251119192916.1009549-1-grygorii_strashko@epam.com>
In-Reply-To: <20251119192916.1009549-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM0PR03MB4594:EE_|DB9PR03MB7690:EE_
x-ms-office365-filtering-correlation-id: c2f3ae3b-da64-4d74-ca86-08de27a20e05
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|7416014|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?uzmTjlOLXL+DZF0DYUbWBODLf+SPwI+8HbNyR361TXM/5o8zCGF7P1QoXn?=
 =?iso-8859-1?Q?sxeN+Mht8ryrGqQjueAzCQEZF2oqSU+FLUOra9EoXhYn2f+MZbMJbzGweL?=
 =?iso-8859-1?Q?BAgptAHlIVyFUxFcCVof3dmQKhuDUossilc+Iunp7dYN2MUDBswkFxTM1K?=
 =?iso-8859-1?Q?W01GquxvEWce++DwNOKP7ZMfMNSHt6z+1afMzxGiBJA6ZAAp20jJWn/fL0?=
 =?iso-8859-1?Q?7j6vZD9Me9Q5cDiEhmv9CHXaJcufFr/JIYm7djE3ldNsI6guZb5eh8lyXS?=
 =?iso-8859-1?Q?G1zhdcslN36GGyp+BaixNV/eNLVISeJ/bLH/ULMsl30P7HHbb0RxBZsT0T?=
 =?iso-8859-1?Q?C6ibtdlJ2If30CzoSWfDXfvLcQjGdlpfmdHqHU/THkxPhdH/Eq3FuBA0ig?=
 =?iso-8859-1?Q?9A4RGn7z8+cZVfBJ0LUKKhma+ulpAAqOKoiVu+B1N7MdJkIDF7iTjJ0cI4?=
 =?iso-8859-1?Q?FXcJ0th87VCfQxsXHgDPy4b1cUd1tmW/OV3jvp2l6bG9vRWP5wbDYHEteB?=
 =?iso-8859-1?Q?Mo9fWY/e5NtYMB57Zb2d2V7dly9iYYDDhb+MG0c7YCWkxTef9o246y3TM7?=
 =?iso-8859-1?Q?LvSVrjZvs2yBMl0tx7a2QJhHcgQUAs7uMuFvdVw4SzVcTTG8yPaE2W5LBr?=
 =?iso-8859-1?Q?MIDUJKD7N6sCTdm14ca5UN9rNuFovYeRieFsKN2VOjg7HjJMDAwL8urGEM?=
 =?iso-8859-1?Q?mFk9u6bZ5rs54i57/9yPq26Q8RfmgPZL8vBBCNAd5VMw0AxZhQhBmCHNe8?=
 =?iso-8859-1?Q?/rxW8knZLty8A+yL78dD5BzcY5KHwf4J/V6m/M2/GPxrx5ce7p8CqR2cCR?=
 =?iso-8859-1?Q?8eqCW2IskrV9YVjFW30J8RlZ57WxMpM2RLzs4tlP8JaLdlZH4QHFf6GSPx?=
 =?iso-8859-1?Q?uiq0yuo1Gw5XSZms/7+WQGwrWajr4lkAr29VwZytj7m5NAWJExI1ms09+l?=
 =?iso-8859-1?Q?tmIlohRg2jIvgALvso+j5n/BeZ40vUslOhmNZndKGMmGvCSjjOCZW+mmcT?=
 =?iso-8859-1?Q?Yn8KymAHgCuy4wzlRrAvhPa+4Kw6or/KSMCIIr3WNHq0a/C4DwwouTHgbP?=
 =?iso-8859-1?Q?x6uI5MyzmgTMtROD8c12MtbOo3ceeOTlQDAWsW+eWOr1IrK5yo18yHXhE4?=
 =?iso-8859-1?Q?z1GBWIIBbJdINBwTTSzXhR6ngm3fbk5yYXqLBVpVagGL9A7RaCsby1dja9?=
 =?iso-8859-1?Q?LQIKc3qr3zESzE3/k7ATiSjrPgOGxtUtfHeAXWZgh1LYH+jBshaf4YOv/H?=
 =?iso-8859-1?Q?ajDyFq2N9mSzG0wkPvJLV903DY3GGaGJJQhPnHt5NCinUv2DE4ZQIy+GPG?=
 =?iso-8859-1?Q?7ooMbD2WCYL1FE4VTo7UXheeITLFvmbinjF8MzOImSfnBELITHwZZO0gk3?=
 =?iso-8859-1?Q?bESx4bHX/pqe8gpLE2jik1MJTaTvJWXVcfeUZfNmD76PmKl27OAQy1WpYm?=
 =?iso-8859-1?Q?ShputM7cS5ErrPfVYDZNfTIBZrJvnqRDYNWvC/1Ppd2VyILlQYzm7Zxubc?=
 =?iso-8859-1?Q?ZHvpRG/YQMPhroGTEtCd04/AJy6S3QLgwMYy6w0u34TvZAdh5U+CREG1qv?=
 =?iso-8859-1?Q?tcZzDL53+VzsZBDSRltVQUHhXGRe?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?b48+mywrFru8xI9h4QXrDH//6VSOmVarISfUWDalU0rwUx+Z8k0J4rhqEB?=
 =?iso-8859-1?Q?oNmH+HZrNPwLCBdQKm6h4MKT0Stz23dul3PEyq+X4LZIrj5Mu16rBUtooq?=
 =?iso-8859-1?Q?UTuOoG2Vy4UnwJv3pfp5F91+KkW/KcpHpFF8bdCU5E77fRNtCDQjaA8Oa7?=
 =?iso-8859-1?Q?Kw1CJls0NZAj/utrFVKVQd8ZZ4mjdzySm6dv2ntD4pYiVmEczZKfjnsD7C?=
 =?iso-8859-1?Q?QSLTtf4WKfsDD22Ouxhs8SND1VA9SM53JrX+SIbtJzCgz95sZUZQDeEzWO?=
 =?iso-8859-1?Q?D3CGGQttRvQZyFtysqQT8LBQn9p7Na5ndeTCfsTeU9ehvFfJYIKQU1UA54?=
 =?iso-8859-1?Q?aXRA9eK9329YZ5+Bwi+SQOKUQvgbfj3tYXAIxCXrQUWjTCoFUbAqaLJTj0?=
 =?iso-8859-1?Q?0MKfWn09jqkFMH2cu2FAu7XlXBdI69BDIrGJn2ZRk4GeVA4D6xo+O4VsSr?=
 =?iso-8859-1?Q?GAMDDjHL3mBGl3guJFPWWJhkztwnjKjYvTXat1hilV7Ak6bFY61f3aNc2H?=
 =?iso-8859-1?Q?3dtpihy+InYjUADNZs9h4gBgy8Uroz0tX2xWaFPcUtW6wWp/jCPdSPx1Re?=
 =?iso-8859-1?Q?gW0w6gQ9df2d/y9WQcKjc3LSmhYo3OMLPLznBXARTO8bOubMJTH5LhfFm0?=
 =?iso-8859-1?Q?JkL53cBsPBuYyDsWy8wvU9E3cVb6ri6IwulYz6BkrIuj1iTFoQPkvfwwMy?=
 =?iso-8859-1?Q?7QqiIOUpz3ZY8Gdo4TjIB+Yf6hj47oUKBrx5V+EB+OAfiHWbz2h3jT9wXm?=
 =?iso-8859-1?Q?6pF1/Pov1lGdD1iQEKzOt47FZX3/Zy1eYrKJpT0aWEMkZN1c19r6ySvOHM?=
 =?iso-8859-1?Q?eXFhtzLXKN+F1LwC+oEJgzmxg/y8QyzkDNyBW0DjiHp6kglh1zjlQrbFR5?=
 =?iso-8859-1?Q?Nz9wTVUUr5O2X5zn5ItaETOo0oVDCynHzY1qYqzQKtIo7Cm4ASlVCYeIjH?=
 =?iso-8859-1?Q?GI0Frf0PsBUZFFYciIKhoT7p4ME/IrTkN7IwCOqX+BQ1T8CEve7eIE1mQF?=
 =?iso-8859-1?Q?76swx6k5PKk4VOnG+qu0clO7V64S3kbGmbns1kx5XTsZSAKsP20MYGxXgA?=
 =?iso-8859-1?Q?DKVQkXNArF45lO6uX/00vePtYp3lIJZOZE/iaMFTz7PCqcfspTd4PP2mIs?=
 =?iso-8859-1?Q?7kpR1n87RQyG9dWapspv0zv+etkr9tbXAIeHnSHBvFkESBNSD6u53KEDDB?=
 =?iso-8859-1?Q?OV/3GusOhRILAiSZoyE3xTTe7A4SLlX3Y8Q6KvjcRlrq4L1bvRsCUBYBgo?=
 =?iso-8859-1?Q?mvNk0AtEgghKkRH63dcPePOWKdY2CyOSxcfJ+2Bn0zCQqR4dBlUat/mpaF?=
 =?iso-8859-1?Q?ghtQUxNI5YWmsW6moVowd5mS5ADRpkljo2yabRA7vYq3Md8St9rfCr5L3f?=
 =?iso-8859-1?Q?lxLKki49Tzl4jUWIRcs1bBP0kBiq6Ydzp+H+BxVS/V6k5fCyOfpNyFwZus?=
 =?iso-8859-1?Q?OBXiJyzqKSEGpc5wElmgy+644geD3yIJSvQr5EnkUJHh9q6mWeZT0ulB/T?=
 =?iso-8859-1?Q?qzgH9AyG6PAWSC9Ut7KWoAUXUF0LA/qflFdXUzTwJaA8dt52GsBQ0/36yM?=
 =?iso-8859-1?Q?7URXrTNJb4jFgwGRQiaP/M3KMCFbYIaaw9KcvpAssfsJt0bxouFNZAclyB?=
 =?iso-8859-1?Q?/DWxI6RY1uJRRQyJ1Wg7Kd1LELcK65wC5CZGcsVD2rCYBEm09aqI+4Sg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c2f3ae3b-da64-4d74-ca86-08de27a20e05
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2025 19:30:09.8001
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: GUbr4VOgv9e0obk7xtRF+Q9J5w9rQBIaiu9EF8Utw4FtVOhXh9kUYZaFZyUKPhFP6vYUt0vaso823j0hlordu8ctd4rxgZknBXX0bYn1j4E=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7690

From: Grygorii Strashko <grygorii_strashko@epam.com>

Factor out COMPAT HVM code under ifdefs in preparation for making HVM
COMPAT code optional.

- hypercall-defs.c updated to always provide compat declaration for:
physdev_op, grant_table_op, grant_table_op. This reduces number of COMPAT
ifdefs in HVM code and lets compiler DCE do the job.

- Only 64-bit shinfo is supported with COMPAT=3Dn, so struct
arch_domain->has_32bit_shinfo field is moved under COMPAT ifdef and
has_32bit_shinfo() is updated to account for COMPAT=3Dn.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
changes in v2:
- update hypercall-defs.c to always provide compat declaration for:
  physdev_op, grant_table_op, grant_table_op
- move struct arch_domain->has_32bit_shinfo is moved under COMPAT ifdef
- return hvm_hypercall()
- use ASSERT_UNREACHABLE() in hvm_do_multicall_call()
- constify has_32bit_shinfo() for COMPAT=3Dn

 xen/arch/x86/hvm/hvm.c            | 16 ++++++++++++++++
 xen/arch/x86/hvm/hypercall.c      | 13 +++++++++++++
 xen/arch/x86/include/asm/domain.h |  9 +++++++--
 xen/include/hypercall-defs.c      |  9 +++++++--
 4 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 0fd3f95b6e0e..19524cb7a914 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -69,7 +69,9 @@
 #include <public/version.h>
 #include <public/vm_event.h>
=20
+#ifdef CONFIG_COMPAT
 #include <compat/hvm/hvm_op.h>
+#endif
=20
 bool __read_mostly hvm_enabled;
=20
@@ -1255,6 +1257,7 @@ static int cf_check hvm_save_cpu_xsave_states(
     return 0;
 }
=20
+#ifdef CONFIG_COMPAT
 /*
  * Structure layout conformity checks, documenting correctness of the cast=
 in
  * the invocation of validate_xstate() below.
@@ -1267,6 +1270,7 @@ CHECK_FIELD_(struct, xsave_hdr, xcomp_bv);
 CHECK_FIELD_(struct, xsave_hdr, reserved);
 #undef compat_xsave_hdr
 #undef xen_xsave_hdr
+#endif /* CONFIG_COMPAT */
=20
 static int cf_check hvm_load_cpu_xsave_states(
     struct domain *d, hvm_domain_context_t *h)
@@ -3991,8 +3995,14 @@ static void hvm_latch_shinfo_size(struct domain *d)
      */
     if ( current->domain =3D=3D d )
     {
+#ifdef CONFIG_COMPAT
+        /*
+         * Only 64-bit shinfo is supported when COMPAT 32-bit hypercalls
+         * interface is disabled
+         */
         d->arch.has_32bit_shinfo =3D
             hvm_guest_x86_mode(current) !=3D X86_MODE_64BIT;
+#endif
=20
         /*
          * Make sure that the timebase in the shared info structure is cor=
rect.
@@ -4965,6 +4975,7 @@ static int do_altp2m_op(
 #endif /* CONFIG_ALTP2M */
 }
=20
+#ifdef CONFIG_COMPAT
 DEFINE_XEN_GUEST_HANDLE(compat_hvm_altp2m_op_t);
=20
 /*
@@ -4992,10 +5003,12 @@ DEFINE_XEN_GUEST_HANDLE(compat_hvm_altp2m_op_t);
=20
 CHECK_hvm_altp2m_op;
 CHECK_hvm_altp2m_set_mem_access_multi;
+#endif /* CONFIG_COMPAT */
=20
 static int compat_altp2m_op(
     XEN_GUEST_HANDLE_PARAM(void) arg)
 {
+#ifdef CONFIG_COMPAT
     int rc =3D 0;
     struct compat_hvm_altp2m_op a;
     union
@@ -5063,6 +5076,9 @@ static int compat_altp2m_op(
     }
=20
     return rc;
+#else
+    return -EOPNOTSUPP;
+#endif /* CONFIG_COMPAT */
 }
=20
 static int hvmop_get_mem_type(
diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index 52cae1d15312..1ee0193b69af 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -170,6 +170,7 @@ int hvm_hypercall(struct cpu_user_regs *regs)
         HVM_DBG_LOG(DBG_LEVEL_HCALL, "hcall%lu(%x, %x, %x, %x, %x)", eax,
                     regs->ebx, regs->ecx, regs->edx, regs->esi, regs->edi)=
;
=20
+#ifdef CONFIG_COMPAT
         curr->hcall_compat =3D true;
         call_handlers_hvm32(eax, regs->eax, regs->ebx, regs->ecx, regs->ed=
x,
                             regs->esi, regs->edi);
@@ -177,6 +178,9 @@ int hvm_hypercall(struct cpu_user_regs *regs)
=20
         if ( !curr->hcall_preempted && regs->eax !=3D -ENOSYS )
             clobber_regs(regs, eax, hvm, 32);
+#else
+        regs->eax =3D -ENOSYS;
+#endif
     }
=20
     hvmemul_cache_restore(curr, token);
@@ -207,10 +211,19 @@ enum mc_disposition hvm_do_multicall_call(struct mc_s=
tate *state)
     }
     else
     {
+#ifdef CONFIG_COMPAT
         struct compat_multicall_entry *call =3D &state->compat_call;
=20
         call_handlers_hvm32(call->op, call->result, call->args[0], call->a=
rgs[1],
                             call->args[2], call->args[3], call->args[4]);
+#else
+        /*
+         * code should never reach here in case !CONFIG_COMPAT as any
+         * 32-bit hypercall should bail out earlier from hvm_hypercall()
+         * with -EOPNOTSUPP
+         */
+        ASSERT_UNREACHABLE();
+#endif
     }
=20
     return !hvm_get_cpl(curr) ? mc_continue : mc_preempt;
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/d=
omain.h
index 5df8c7825333..0005f4450931 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -12,8 +12,11 @@
 #include <public/vcpu.h>
 #include <public/hvm/hvm_info_table.h>
=20
-#define has_32bit_shinfo(d)    ((d)->arch.has_32bit_shinfo)
-
+#ifdef CONFIG_COMPAT
+#define has_32bit_shinfo(d) ((d)->arch.has_32bit_shinfo)
+#else
+#define has_32bit_shinfo(d) ((void)(d), false)
+#endif
 /*
  * Set to true if either the global vector-type callback or per-vCPU
  * LAPIC vectors are used. Assume all vCPUs will use
@@ -365,8 +368,10 @@ struct arch_domain
     /* NB. protected by d->event_lock and by irq_desc[irq].lock */
     struct radix_tree_root irq_pirq;
=20
+#ifdef CONFIG_COMPAT
     /* Is shared-info page in 32-bit format? */
     bool has_32bit_shinfo;
+#endif
=20
     /* Is PHYSDEVOP_eoi to automatically unmask the event channel? */
     bool auto_unmask;
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index cef08eeec1b8..08c01153ac56 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -80,6 +80,8 @@ rettype: compat int
 #define PREFIX_compat
 #endif
=20
+#define PREFIX_compat_always compat
+
 #ifdef CONFIG_ARM
 #define PREFIX_dep dep
 #define PREFIX_do_arm do_arm
@@ -104,10 +106,10 @@ defhandle: trap_info_compat_t
 defhandle: physdev_op_compat_t
 #endif
=20
-prefix: do PREFIX_hvm PREFIX_compat PREFIX_do_arm
+prefix: do PREFIX_hvm PREFIX_compat_always PREFIX_do_arm
 physdev_op(int cmd, void *arg)
=20
-prefix: do PREFIX_hvm PREFIX_compat
+prefix: do PREFIX_hvm PREFIX_compat_always
 #if defined(CONFIG_GRANT_TABLE) || defined(CONFIG_PV_SHIM)
 grant_table_op(unsigned int cmd, void *uop, unsigned int count)
 #endif
@@ -156,6 +158,9 @@ platform_op(compat_platform_op_t *u_xenpf_op)
 #ifdef CONFIG_KEXEC
 kexec_op(unsigned int op, void *uarg)
 #endif
+#else /* CONFIG_COMPAT */
+prefix: PREFIX_compat_always
+memory_op(unsigned int cmd, void *arg)
 #endif /* CONFIG_COMPAT */
=20
 #if defined(CONFIG_PV) || defined(CONFIG_ARM)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 19:30:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 19:30:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166355.1492910 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLnse-0002cf-Ks; Wed, 19 Nov 2025 19:30:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166355.1492910; Wed, 19 Nov 2025 19: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 1vLnse-0002cW-Fn; Wed, 19 Nov 2025 19:30:16 +0000
Received: by outflank-mailman (input) for mailman id 1166355;
 Wed, 19 Nov 2025 19:30: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=GacY=53=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vLnse-0002Z9-1a
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 19:30:16 +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 2bea38ed-c57e-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 20:30:14 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DB9PR03MB7690.eurprd03.prod.outlook.com (2603:10a6:10:2c6::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 19:30:08 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9343.009; Wed, 19 Nov 2025
 19:30: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: 2bea38ed-c57e-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=feqDyk6P4heFKV/K+PijOozUKe2/WI65zCFcuv9xf6fvCIkHbhFBTOb1a5HfGdyz7MJWFu7puGbi8WqO26+7egh/shONoY3/ETggT+Ctyy4i7U9qAMX2H0zZpxDYrMuVI4sYNKcsoGDWl5nKrgAIKvOYn24cXme7lJ9I7JLhekXnp1sEjLdi0GKtpBoA7atS96JyEUyglT+GvdHQARg4MMMZS41SSYjd3efCJr19U/tl8Kd9/usMiijs+02oQkmMwgUXBiw2vq0vWY71yGqIjxPpfQri0HIJjaOWkSOWVl042BQtpGMtzoEvgVC7iIjDPffmsKwGU2AZ5di4L7A1Ug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0jR9H82uqN6Pq4sjQFVnEVcGPJ2uolsJHWh6buD+pW0=;
 b=fBBfIvdAJeiLiyZAKTUZce4f/HyBz4nCYcteGZqq6f2D+upMtX7OgKHgykml4pSHEszhPQmbX22Tflg6hzuM4e60ekdcgntBUYO9qLxqYYzKCXbLTNnKeW+kuhU2XxiZYzXCnEcMdS3Mf4iJhuPEi9SxLajCTL4Kic7JwSUmbIQgmVx2TtBpVgxz52GvMqAIjl2c6xME4RHVntpgOBb4vfyKNkxhKOruI39C1YxiS9mgrNyFx8f8a9+iLjF/eLKaoeMd+2OQ+HENcj5e7NX1mtxQ39HdDNv9gL3IH+4Pblfus1LqY7avs6YdzrNE2Z5GERWRVhMXVdWUIfo6++v0+w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0jR9H82uqN6Pq4sjQFVnEVcGPJ2uolsJHWh6buD+pW0=;
 b=UDDgVCtwIfMNgkVBwQnTY+65oJ+VttF5jgbfj2hHq2ko2wFJB6RRUVXJbSbZ6mseFKOuI0Hmty92rKe7LTSr1yF28/o0ozUIFa86gPh/R8KnwgJ37RzP060uTLM4Ibd1ivpbBgrnlihQv4HTilyIkwU+0+mIUePF1CZkmy52L5xGBwSzP0+F35O/7fFbzLt9P1GC+5nsdi500M6GUUZA3XKG5fJ2gelMKc3zJXMe5zxMSHK2IVWwLNfgCGliLrxV+8lP8hB7CJqDB49LqHuYrOZqbz5bLSbEpWSCk/eXqC3X7aNk/OyOdRcwotCZJVVmm/46CBnz+whInj348RNcJQ==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN][PATCH v2 0/4] x86: pvh: allow to disable 32-bit (COMPAT)
 interface support
Thread-Topic: [XEN][PATCH v2 0/4] x86: pvh: allow to disable 32-bit (COMPAT)
 interface support
Thread-Index: AQHcWYrqEdLIdxgHq06iG/KRChB4+A==
Date: Wed, 19 Nov 2025 19:30:08 +0000
Message-ID: <20251119192916.1009549-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM0PR03MB4594:EE_|DB9PR03MB7690:EE_
x-ms-office365-filtering-correlation-id: 7fcc194e-186d-4a31-3b06-08de27a20ccf
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?irI3hVksnb9E2WANveVnzmJ+7hT/F6SDNVpVGIvJVuwK2WNAOXs7CQTZ8+?=
 =?iso-8859-1?Q?qUVzcZCB0GGQdh5wx6siyIT3xC6mqfCGjA19dHUerNeKzT16r/qSwu0E4b?=
 =?iso-8859-1?Q?t7yIlLHzkO7iD8nvrE93wZE9SIk4XJJQvuySnAZs/tYcJ8UslxBMZfkyH/?=
 =?iso-8859-1?Q?bo5SCZRO5h/ixnb2KQf9ToL/Afv+9SXlNdDiJllHn8k6Qj/VzhoA5sZlcv?=
 =?iso-8859-1?Q?vHYj8MeIX9ZjTn49maHYEGUKj9Z6//PQO4WDeaJNUZCVzGjsY3iUowgOHz?=
 =?iso-8859-1?Q?vP3gkwcHwc70OfJsJNcDRJ8dQR56OqhlnjNccl7bm5wQtdF/za/rrDJFMo?=
 =?iso-8859-1?Q?nsC48DD0wu0ea9tU3FpHbRK6rw658ncU8WzZixB62bM5nPugvYnNHYtmRV?=
 =?iso-8859-1?Q?32Su1pKnqIMrFoPGo66hO6rKXPYRn3IXsEDnvlu4k08SWuLqfLIZU8Id1y?=
 =?iso-8859-1?Q?lJGKiY4L/zK0t6dl4vALTIOLX/c0AfOx7UlXVZY44Rx0ebut2Mv5L/Wz5H?=
 =?iso-8859-1?Q?zq3rMSFPPzo7m5G7n/um+HJaZRJ+8SUUA7qVRrIgOTyxeRHD1JhypDHKLe?=
 =?iso-8859-1?Q?V/ZGzm+y76/220GdPopaGsAHcejtalzYPQOvorULD4aWO4uJqq85IQcCjp?=
 =?iso-8859-1?Q?8fPWkVJ+VF3TWBQwc8WXSUOiP9pcbBCQhOzP9b4zzLEx5aBF8zhggfySU9?=
 =?iso-8859-1?Q?0N17PXWdGss3e1U5DVo2veUxUjfsd9KHLpJjMiFSNbtKp7S76DuAdK29o6?=
 =?iso-8859-1?Q?cZWcMl/MSU/DC4zAX88ex+Hdwj/dXOsZbJrWsL5WcRN2HOoTS2hQdJMBUA?=
 =?iso-8859-1?Q?79ikd5ndPshrfDD4wUsJr/Gg5Gf4pZzrM4+Y1qbnK2Prj7E6yqfTqFfKSd?=
 =?iso-8859-1?Q?5Zzj8AktHPpIdEc/BqD4JojFkcNGgK67dUTYri9XfTMsmdcSRtmGj39OxX?=
 =?iso-8859-1?Q?1bBk4GyjLwXpkYIpJjo8fjWd2I7pjC/pgpjS4KUoCQ0cDF23tzrPcIrITC?=
 =?iso-8859-1?Q?KTke6UGXYyFvblAf4EnjakdruSXFPjNik+NH2kohIPYeF9ETKhrWdy+RbV?=
 =?iso-8859-1?Q?cjJ7SkqoClXUz7gReKnnLsx5DHPrOWbkwowA73oBbc91I8F9IZiX3S2hqA?=
 =?iso-8859-1?Q?I+V71fgy16TDAJjEgUmrCoS0QWfNkqy0kdJ+As58XR0Zeo+lZhZJWh/dfY?=
 =?iso-8859-1?Q?+bBeQFGLoltAtXPFrr9cTNp2kO1Aswol5odkqTVD/g88e9UmXIIjisZ2ba?=
 =?iso-8859-1?Q?PeelYntVdxTmTtu0P7gQGD0SSyqTAuWwt10871BCrVIQMXSVfSAU7kcNcM?=
 =?iso-8859-1?Q?htr3l9EZ9nUzUbDwbPdbjNH3Wx8u4SCohOv1Jyi09idHODzWwKrDfLmyG6?=
 =?iso-8859-1?Q?FyMtG0JYkag2XcF8tuPH+xEnVt4RGEHaXWtUpYrAZsJJZmNMLN/qc+lGC8?=
 =?iso-8859-1?Q?ffMu2Bh3oT5uL6WO8rbmRtJim4SETq3fPjHFUyt/PZYq71oReXweyu4Xld?=
 =?iso-8859-1?Q?bjEbForc52k8QYmMWcwsZABCTn3ZYbUfdiFQdoa/Fs9s9nzOyq+GLHMa4+?=
 =?iso-8859-1?Q?QwjIyHrIyLkFfrYnF5mN89JE+vJR?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.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?wLcwTYA4UsP74oNmEw37b8GkrqWp4V4f5TSoNmzB6H3hQkvxvTeQpX1qoL?=
 =?iso-8859-1?Q?E8jWRLcHhWk0OwdGmnbyRT9L6JOpf4VjFnh6rXZR33nsWwtS5xVvuJkWPC?=
 =?iso-8859-1?Q?So/PxKMT02Y8oin8DSVfV26zIs21H5DSN9GKDwKz0NSybeS5peSLwvoFYh?=
 =?iso-8859-1?Q?N1iush+YaQw0zoEFq9W2epWUTOv//PoXpiiD0s3OtATdNm6yh5VWROWlQ+?=
 =?iso-8859-1?Q?p7iaObMZrPwWhOTsb8sMXcm+XPygJdHjW4sAWnec9AUnAsC2GQULXuRzuN?=
 =?iso-8859-1?Q?LNXXZoqYPgXHLk11S32wte5K2iR1X7ep6WqFTH0fdhdVk82WHXauIdADVB?=
 =?iso-8859-1?Q?TA6eEHRt50wnmnI7xeb5Vldqtolwf+tiMVzIv7FUj7Iz4EDQNHbUgEe3W+?=
 =?iso-8859-1?Q?Zy7qn/Q9lHdk7ywjlBAhe9pkfAVdwCFk52GGPajGBy00v3FMolIQDnQdFk?=
 =?iso-8859-1?Q?DQsODdecrT1xdCj+Gf7QoZSs/F+YjiD3I3N23wPOX3IORKT+1jUQWxuGzr?=
 =?iso-8859-1?Q?gS85HU0NKzOcBfKgkFacmD6Xjps2fU7wmPrbioHORG0YH5NTUBCGvgHK5U?=
 =?iso-8859-1?Q?xfZQQAeK5gI55mtmrNVtoEuGq/T92LXPIv6MeyuzjwMJn6RZzFAQG3Z2Ld?=
 =?iso-8859-1?Q?DYABciiAEFDa3kOiGWI65doilQfKkNjYQIL34fSLv0ZVEMBMOsh+iujyEk?=
 =?iso-8859-1?Q?4Bte2X8w8FpK+ZWbb+DjbbYZTSU27QyygASboA2uJ7/82HiEm8gILKNN9Q?=
 =?iso-8859-1?Q?yDjb7VkqrHaMkVCtZbMWDvBTNriGkyasn7Py8BuTYGNF5UKanLgGN/1my5?=
 =?iso-8859-1?Q?meonDePfm0C/pSqFSIFrGZnoikgMzp3vvtokhJr7fjm2e6FAu3/9wOyGJV?=
 =?iso-8859-1?Q?GsNCdZlK0+p8evg+2MVUbqLKXqmizuuPJoDqxtovmuB/oLMKR76Zm7TBjy?=
 =?iso-8859-1?Q?ssGLlwLURIGNZG3vQzoszB62CD6LCKckRcB8rWohAgNeIfdCqVP4Io1jk+?=
 =?iso-8859-1?Q?Fdw8r4v0vxhAbOd14ID/973oB6zBsCADxhWIcBI/C0aO3ZjOuTSW7y7cwk?=
 =?iso-8859-1?Q?Bkf7uJ+vaRw79DRI6XQUCrnkTx/GVzVKlQhmB9XvbA1O48SDUlGSdpx3eX?=
 =?iso-8859-1?Q?IEEN298r8YagPh1tV8V79UN2HJIid1BCPYDzo7lLwJm0iEv0lQaHf4kHtc?=
 =?iso-8859-1?Q?KhhkBsCiP/5KAV1DsSU/Wdquhw0VAKat6KjjUcuSLsV8zjrqnbA/qAvkBq?=
 =?iso-8859-1?Q?ZZ0Ct8GEZlEbbSbl/DydJvc6alZiakh/NOoCuWDlmKYO7JsJ71fiqU6A2i?=
 =?iso-8859-1?Q?b2j5q9DKWr8ax9xFGUWhTyax16hKZcn5N3ZnuZrOu9cRmJDZn2gLGSolOX?=
 =?iso-8859-1?Q?PBk7TpUzgUX6xZqQ++Mlo6vCUOWGjyXQh5ieAO39Dvyd1LXzeUkdIFDbEs?=
 =?iso-8859-1?Q?XLLoFaCkj2BsdS8jbKOA13lG0AUTWaSmUFmh7vzqZ8iVjsyFpcgRC97ZQn?=
 =?iso-8859-1?Q?1hm9Rs5oedh2E7TJqSKZmjntPbs2fVqLHm/1I6axUGWxB4+gS6mmh4mlW9?=
 =?iso-8859-1?Q?QXwu3dwvDv/7MDC22EtowiyLqC4eEEwexKWBKr4e9/WooTrz9GFAWRoqSS?=
 =?iso-8859-1?Q?fclueyGXZXazLSC6LLT2bwvmrG//LHRWTRtW/Knk1fqICSnlK8s2htHg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7fcc194e-186d-4a31-3b06-08de27a20ccf
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2025 19:30:08.5844
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: zFXxTYSuGzbwPBg6WbhPQkImVLYguyrD3Fmh5cbHedni8Y3BmsCC5hAqY7frarvaESN2/uxkckAyXnftN48ysy6wIQVwQQQ5WJUZA//X73w=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7690

From: Grygorii Strashko <grygorii_strashko@epam.com>

Hi

This series introduces possibility to disable 32-bit (COMPAT) interface sup=
port
in the following case:
      - Only PVH domains are used
      - Guests (OS) are started by using direct Direct Kernel Boot
      - Guests (OS) are 64-bit and Guest early boot code, which is running =
not
        in 64-bit mode, does not access Xen interfaces
        (hypercalls, shared_info, ..)

If above criterias are met the COMPAT HVM interface become unreachable and =
can be disabled.
Coverage reports analyze and adding guard (debug) exceptions in hvm_hyperca=
ll/hvm_do_multicall_call
and hvm_latch_shinfo_size() confirm that COMPAT HVM interface is unused for=
 safety use-case.

Changes in v2 described in each patch:
- patch "x86: constify has_32bit_shinfo() if !CONFIG_COMPAT" squashed in pa=
tch 2.

v1:
 https://patchwork.kernel.org/project/xen-devel/cover/20251111175413.354069=
0-1-grygorii_strashko@epam.com/

Grygorii Strashko (4):
  x86: hvm: dm: factor out compat code under ifdefs
  x86: hvm: compat: introduce is_hcall_compat() helper
  x86: hvm: factor out COMPAT code under ifdefs
  x86: pvh: allow to disable 32-bit interface support

 xen/arch/x86/hvm/Kconfig          | 19 ++++++++++++++++++-
 xen/arch/x86/hvm/dm.c             |  2 ++
 xen/arch/x86/hvm/hvm.c            | 24 ++++++++++++++++++++----
 xen/arch/x86/hvm/hypercall.c      | 22 +++++++++++++++++-----
 xen/arch/x86/hypercall.c          |  6 +-----
 xen/arch/x86/include/asm/domain.h |  9 +++++++--
 xen/common/kernel.c               |  2 +-
 xen/include/hypercall-defs.c      |  9 +++++++--
 xen/include/xen/sched.h           |  9 +++++++++
 9 files changed, 82 insertions(+), 20 deletions(-)

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 19:30:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 19:30:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166358.1492945 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLnsl-0003YA-BJ; Wed, 19 Nov 2025 19:30:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166358.1492945; Wed, 19 Nov 2025 19: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 1vLnsl-0003Y3-8W; Wed, 19 Nov 2025 19:30:23 +0000
Received: by outflank-mailman (input) for mailman id 1166358;
 Wed, 19 Nov 2025 19:30: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=GacY=53=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vLnsj-0002Z9-6y
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 19:30:21 +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 2efe187e-c57e-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 20:30:19 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DB9PR03MB7690.eurprd03.prod.outlook.com (2603:10a6:10:2c6::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 19:30:10 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9343.009; Wed, 19 Nov 2025
 19:30: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: 2efe187e-c57e-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RaB2bSTix67HTsLfGfHAUWaXHzuzSuuX4ACsFgq3TL9s63UrXQ9ES+PSPfk6iX0umVLcjfYkQ89A9mkhTx8lQsQTytR2h+2fa+3rQ0R1pxui4kIYr1tdKlnmFW3NSteNvW74klYNlJQm5JcGCHXSIf0AKC+NCy0FHUDUNecT5PkqJOtrupw51sIW9ov4Y1m+EkJCTrc/Scz1KCa+Uj6QslxsCLaN3DB34h53S1B2f2nsRJS2jcIjLEqw8aD1OXB3d9e0x4FTz+S9d3ij2qs9gbuZpaI6d4+34ZXv2nKRdZMiEUyWOahXdwzm1d+IZUWoo3wxyXlGi2xIHk174w3WCA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2pgeAgmuBA5/KH5sFul8K61H69AUlJ3tMBDEqpzse9k=;
 b=hsrU32Mq3vrw8tlUWY6v2sz8lJfQuu0mFdbGstywnFQBQLdVHpXgr5qMrnybKHodaijmGAla5X3vJzckL97YZKJAt/2X8ygjIabiSSnrIwJKe27sm5ACLjpyHKfgBb8wY6BbWMmIjCtbGGMA88tJWa6OwcGlYM33S0CPmYJA8M7m4WABB4xQm3dI5hSFjQSNt6CrF7U3dJd2HnJ7JB39TICp3TuQh/ujR7h5sFRZwh8cGpV8Rrm53VAmS7X45lZRdDxqPHuaUE4/ZGxqCtWHGy/Ak1onnrtpGfTRv0suSb+/dGhcg1dZs61HNXHXFML9PDnJW7ZL/jFKsVHu7mVmPw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2pgeAgmuBA5/KH5sFul8K61H69AUlJ3tMBDEqpzse9k=;
 b=OBdl6jj9/ZWXoMbDyJpuSuh+YYlIC1Zkx5i4+wBEZSLjGksD/A8JystAPa+pber2dj42/yvgRXJNWj8BAlZkRTfufuK/3jKTkHB5oP4fk2BbuCY//bJPR2VW0FXz1Sl8JlVCtIgyAeSAnXsMMkcpEG9pNc+7VyyKAL0UfFZ3O3dXyC1HcwPxjwdTS6fXe0Ehko+AEhFbBEQtT3SW36uAbt3cNDk0N2naMwLlBDhDCk5YCnv1ukqrXSgXEH+i2LVh/3Zi+GvNca6dPH0ZsPk0lFXhEsSqPlMHMRZUzh68w/RdmDr7PJZJq4aAI7KaslCJwaxnILAtM5kmJcBod/fqrg==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Alejandro Vallejo
	<alejandro.garciavallejo@amd.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: [XEN][PATCH v2 4/4] x86: pvh: allow to disable 32-bit interface
 support
Thread-Topic: [XEN][PATCH v2 4/4] x86: pvh: allow to disable 32-bit interface
 support
Thread-Index: AQHcWYrr1fGFNDkTXkKtxIuHdmqCJw==
Date: Wed, 19 Nov 2025 19:30:10 +0000
Message-ID: <20251119192916.1009549-5-grygorii_strashko@epam.com>
References: <20251119192916.1009549-1-grygorii_strashko@epam.com>
In-Reply-To: <20251119192916.1009549-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM0PR03MB4594:EE_|DB9PR03MB7690:EE_
x-ms-office365-filtering-correlation-id: cf1bf8b9-79a9-460f-b80d-08de27a20e29
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?/m7Vu5f7cRx5/zi34OtZGNy/1t8dG75CvHfcYQITJlQtP5Cs6SuO8dmaiF?=
 =?iso-8859-1?Q?XIcpAX2mOGkdKtRetL/HqWC3D2eQck3IMk5MAFGxDutscx23dfBwpEOwWT?=
 =?iso-8859-1?Q?phP0FMdrbbejw7zEdHfqiP4puvKdGO5Rc4J06EnVn+XN8Ftsr0Q5plOlwD?=
 =?iso-8859-1?Q?9FqIQnNRVML8nFzAWnUMt++E20X4uti/kOmuKc9uUEAngnT5I7ue6rPQu7?=
 =?iso-8859-1?Q?PMeI1BZXawf6wQhRcnqTapR/esaynbq06Z0oR3wRbC7r4ZVb7HU5B5v+tc?=
 =?iso-8859-1?Q?GbsftW7lMTJG1notzZe36uYSiapAWFpTFhJKNO9kyrefir35YdoMfaTTu6?=
 =?iso-8859-1?Q?HLx3r1gBpBf2JzSY24w13JXxpSgIrxj2YtYNA1ADQsCtmsC9odpDe0dkml?=
 =?iso-8859-1?Q?+68DlzBweblYBKVbwHAa5xDf7cvQg7L16uxhxBVtCksPQ+rR2L0VqoYOru?=
 =?iso-8859-1?Q?/CnqbZBhWV3LSfWaSWHNUmoUzjlbH2y1FSuW+DK82HAI+4yNR8Yb0l3rRQ?=
 =?iso-8859-1?Q?aFqdulFWJKC+u6crmBh6CPCM9AaACdSjw4SBiUZ8qr4u/NcYZIYnlvEL5v?=
 =?iso-8859-1?Q?GYcV49zQmbx6VJddEcSl05DX5cS9L3dPMpbc14dfEbe+L8QZfIhIm8v2Fs?=
 =?iso-8859-1?Q?IV83uvVmUV0AzSMtHKhoGra9dFP+q90FwENbGA7LRk+tvjCLezCzY/YbQW?=
 =?iso-8859-1?Q?6TjuqRZdBO2/p3rS66H+UksUoPl3iMLiZ/3IFHTkhEEOLR/vwk5iKTzYtA?=
 =?iso-8859-1?Q?YdcKc8J/f29Q/Jp4fcns7CD2BDePyU2NUXAs/PGFabKhk7j9+Fs6Pq9JDk?=
 =?iso-8859-1?Q?GiyhENPWvx8mBtJmSZZaygx8ZOyZTAkTgb3uw1ICy0n+PGRAYhM7p4aMKj?=
 =?iso-8859-1?Q?ear69kqgAbsf8Jn4NjsyvHDisdmjPR/jKBDBk6Y9+RSoRYndJMs57M8CrI?=
 =?iso-8859-1?Q?7qsKQXcDFK2p5y7pWHh463J0xKXAGuLwz+waGsg5iSRy9hVzCEAMZhWglI?=
 =?iso-8859-1?Q?DGJOBLXns04F76DdG1IHBV6wCJRppoUQ07cW+xU64qhnzuqsyJIyVeqIJ+?=
 =?iso-8859-1?Q?km/fu/Vjdzt+tgeLBmPjN7WLOou2r++0CC2n9YrcZU2LevnkFNWSSVLnp8?=
 =?iso-8859-1?Q?DYRsK7lEocOa0lCOHhMAycTwSACPtEG72Sbu9Od9fsLm/dycB9HoM4gaRj?=
 =?iso-8859-1?Q?QNu2Cpm00qsuPc/fgMYimMG0pQMZRhnr/1YnUVt1dWdn3jcAdhI4oJC5Be?=
 =?iso-8859-1?Q?mDR+LylTnz1YPVDYf9iEVV3QuyCX9+Wm9PMqXkULS0AsZTJAjF3+5Da3j9?=
 =?iso-8859-1?Q?Vh9uuFTIMoeBjeRx7IxFQIB93MV2A/lZ7Md1woJ6RWWMN1B+PYN79NW2pU?=
 =?iso-8859-1?Q?nWpiGsSl2u1lwcUEL9ZPCLSaRiB1O1fol9nDOZUAs66Vhtzv8BhHaQdOtp?=
 =?iso-8859-1?Q?xpov1yDB9y6AjhrngkiPmB9d0VPaqih+bBxclVGuJfDXNB7LbdZJY0yP6l?=
 =?iso-8859-1?Q?egP5QCYyTvV8ZB/OTVh/gtziis6h+o++fCIzRnk8TPjrQ4wv+UkBHaCvzz?=
 =?iso-8859-1?Q?eC3SwQfRLv81C+X8n/umKBLs3xBO?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.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?QA4V2IK4AJKL7Kc4plrDuQLhykelSFEoUt8/JWsEHFQnaABYAtRL4RkfWq?=
 =?iso-8859-1?Q?7k8sy6X5IDCHBRJVnXbW4eBSBZnuhfdzFPgbXzNLEjgX3iETMTFdc1fSLh?=
 =?iso-8859-1?Q?jyIWhRI9IDu0Hk+ewHSThD5SFZuU94gjtEIEJP67mCatbUYwZNTL/uTaGk?=
 =?iso-8859-1?Q?0/Un2AFHbCA2njyZglPhBAM+mgCk/cQ5mNTSPUMxj5EAYpD50vUPQYp6vB?=
 =?iso-8859-1?Q?GktYpDhpM7Xx7OhV4uVf1M0dSsFfNjtVWKuwFzSTmCRjlw3jkEYobf0AWI?=
 =?iso-8859-1?Q?Ul1wTxiJnFlkWEKqa7Sected9NE3S9coHGhO127TGxDwd+UAeofdcdm13S?=
 =?iso-8859-1?Q?2H9lXNZSauXhCzrWjma542CK/ZjGwwM74jaiWepAIJ9JGUseXA5BU1ji4k?=
 =?iso-8859-1?Q?RPqzNctxuJyY1ziYZK7w4ExcB2GPt0fMiVKgztF5e5JW2tu/fQYEbBU/P/?=
 =?iso-8859-1?Q?0rfcKvq1Ga4He0EhyBDeFBzxSe+FGSdFA+qdD6An3+4aw3RYxzFixECdju?=
 =?iso-8859-1?Q?haEkHE2umPMLJ6EK8W7JaRPB9KaqDvsRNQ5fXyp8w5abRHm4SXAPhJGDR/?=
 =?iso-8859-1?Q?h2ZORwuYHlJUHKT9VrWkbMYlZzgIv+5wi7+LVJdA5NuZFz5eaLfKV4VqqZ?=
 =?iso-8859-1?Q?FqsviX6AAe4Zc/fXaHJIFG0OQJTdkaof9ItmyW1SYHFkqbbM/UDf/C2KUU?=
 =?iso-8859-1?Q?Ku5lbKoW+48FA0MKLVZBF6b2MRnUcarRiDHZl51/QZLox4QRwhs/IUwnJg?=
 =?iso-8859-1?Q?K4P8vwXOmBYq1IeodIIGH2xk4FYb5gUxIeHW7iURstYcRUVwAOnAJ24Y2i?=
 =?iso-8859-1?Q?0AIZCHRB6vrdJwTvUEMymH6etMqi321iiJo2Ud1hZHMwNYrCs3cQZOAQ1H?=
 =?iso-8859-1?Q?WSzTCZ2VxVB4EfkSGvwSt52cDPodMHhYHcFnjNqoTXkkVm1nS/ZLpOVTVQ?=
 =?iso-8859-1?Q?rynFhbsENDDbuY44WYw69d8ev0q4qDi5yfYMMFeo6vUp8izVCQ8vix3AJ+?=
 =?iso-8859-1?Q?LB7P2QLMkfo5FckQT6db8xBUwlwWsW7kndoadmLEyGwoL9CKOnEv7cpSYb?=
 =?iso-8859-1?Q?0mCPYi0VeOP4kMGeWasCVmOyaRxwmU0PeMPdWVmnxZj9zOjj4FeXh2Yi+K?=
 =?iso-8859-1?Q?Ek+rXgjP1X8awXM2/phRXOLgqbRoXdRHVXKQV8s6qSSc56xOwjpDatgM+2?=
 =?iso-8859-1?Q?WdTxwSnz5hw/sLdAMwdvlvtu9NZnQTnThhzt0UqIJF00Z4GrHHHIwAtNLr?=
 =?iso-8859-1?Q?eK2WEzp2SJGy5sTnunE4F/bc91w4O1qQJs9yCfoLf2ntS3SE8wP795BZrh?=
 =?iso-8859-1?Q?/L7XNh0W/fdaqOosj+tw/Sousi9NcJHP5eSL5Faxfx31S5f7JjAaIzfjSg?=
 =?iso-8859-1?Q?CGkXTitZec08/bm6QPlB/cA8Pn/xwfZcQWGH8qrgWGSE3BDBe9MeDXauUk?=
 =?iso-8859-1?Q?z3ROaP2h9vwaK1WGabSrQ2KFHyp+jZnD0iUlshtrL7LuQDh6gx+8p5XCrQ?=
 =?iso-8859-1?Q?QtzI1yABeQfUXQKvvwYPcjgnuUvHHVaBqxKttFj2ASnJhDC/KPSFhdWPdE?=
 =?iso-8859-1?Q?5xL2w3nx/v3W6Sijc7hXgjY8YGMphJMRhb8B9VGQ/XMdgMqAZYiFDoIk1N?=
 =?iso-8859-1?Q?X56y0nhZFOLyNv4SVZa+NiIlzqCXqlMeZO6hXPwW88MD57Y5J8LEOj4g?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cf1bf8b9-79a9-460f-b80d-08de27a20e29
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2025 19:30:10.1618
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: zU89w4ffTQmie0Qdwt0ylgqRMda9CnX78+p3s5rY3dwcMBZvBfhdzVp5ahU8E9+ckxAnawvU+jxebkwXjtjH2s2W/XjycTsEAtTkzJ16L4I=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7690

From: Grygorii Strashko <grygorii_strashko@epam.com>

For x86 Xen safety certification only PVH Gusts are selected to be allowed
which are started by using direct Direct Kernel Boot only. There is also an
assumption that x86 Guest's (OS) early boot code (which is running not in
64-bit mode) does not access Xen interfaces (hypercalls, shared_info, ..).

In this case the Xen HVM 32-bit COMPAT interface become unused and leaves
gaps in terms of coverage.

Hence now all prerequisite changes are in place, introduce a
CONFIG_HVM_COMPAT option through which HVM(PVH) 32-bit interface support on
64-bit Xen can be disabled.

By default, CONFIG_HVM_COMPAT is ("y") enabled and accessible only in
EXPERT mode.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
changes in v2:
- fix format and move above HVM_FEP

 xen/arch/x86/hvm/Kconfig | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index c323d767e77c..88090f5b3965 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -2,7 +2,6 @@ menuconfig HVM
 	bool "HVM support"
 	depends on !PV_SHIM_EXCLUSIVE
 	default !PV_SHIM
-	select COMPAT
 	select IOREQ_SERVER
 	select MEM_ACCESS_ALWAYS_ON
 	help
@@ -35,6 +34,24 @@ config INTEL_VMX
 	  If your system includes a processor with Intel VT-x support, say Y.
 	  If in doubt, say Y.
=20
+config HVM_COMPAT
+	bool "HVM 32-bit hypercalls interface support" if EXPERT
+	select COMPAT
+	default y
+	help
+	  The HVM 32-bit interface must be enabled for HVM domains to be able to
+	  make hypercalls in 32bit mode. Non-PVH domains unconditionally need thi=
s
+	  option so that hvmloader may issue hypercalls in 32bit mode.
+
+	  The HVM 32-bit interface can be disabled if:
+	  - Only PVH domains are used
+	  - Guests (OS) are started by using direct Direct Kernel Boot
+	  - Guests (OS) are 64-bit and Guest early boot code, which is running no=
t
+	    in 64-bit mode, does not access Xen interfaces
+	    (hypercalls, shared_info, ..)
+
+	  If unsure, say Y.
+
 config HVM_FEP
 	bool "HVM Forced Emulation Prefix support (UNSUPPORTED)" if UNSUPPORTED
 	default DEBUG
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 19:31:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 19:31:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166402.1492955 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLnto-00059g-Lw; Wed, 19 Nov 2025 19:31:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166402.1492955; Wed, 19 Nov 2025 19: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 1vLnto-00059Z-It; Wed, 19 Nov 2025 19:31:28 +0000
Received: by outflank-mailman (input) for mailman id 1166402;
 Wed, 19 Nov 2025 19: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=GacY=53=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vLntn-00059P-7I
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 19:31:27 +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 55af4c74-c57e-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 20:31:24 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DB9PR03MB7690.eurprd03.prod.outlook.com (2603:10a6:10:2c6::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 19:31:21 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9343.009; Wed, 19 Nov 2025
 19:31: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: 55af4c74-c57e-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lcTL/H4tqSAOuK68UUbgqolyoI5ghnRjnx4CDSQfcLnjfVzooyWGSKPpQoH6Ew1a26OZNM1bUGSTzktqf4dYO5Y6/NN41emcnHrmfFVlyZM6Q+xRJG9VCPVQLwp+CM5flTn0DLuzm9fyKZlKCWBcQMbqCx9RBG10Wdc6wxy1T0L20Oy/zljQr4p7P/Gw2Cj3RzdgVo2o2pVfR2S6Qat0slb1EsE+Za9LG5hQhoebOzSuaG1LcNXScHf+bvfU7lrjzkqDu3cRMpc6Qg73lwJBLWd0nNL3AJavJDH88Lgye0uxdl0UWhujTfctkvQdid46fgPYdJZmDZn1hOon6iWQkg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uwsg/Sw8se4wwGO2HVFNrhq5TqZvVjljEI8uKGyiDeY=;
 b=UuTjR+vcbsag2t5bs+Ll/dHb0P9VTLkh5m/ZbtLAjaWyOYpLhBM2XKZi/nAtaZDAW8fFbvPi20Vc/2YhvMId4PGoM2pLiJrKga3vU4UIyOMeh/sOaO2WaIB6lZMb4CyjdsjhJKhWYJ6id17WnhVczwAk7uvpfS/D2ivZ1feZ/b0h09h+KM0vhFDeP4tAiHpHqjQskNASPwK5iwf4xYrv4LnBi1pclqwsT6ycGrXT0YSjhzp5F5HlOaRyEBgU6PWBgPcUk2qjuAiFuu+StlAB1BVoVrTYcBeVPmOkOZaJLuD91bN8EGluWBSuQblSz4RlnE3ln4zNzEp51UVIwtKrFQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uwsg/Sw8se4wwGO2HVFNrhq5TqZvVjljEI8uKGyiDeY=;
 b=JER7r2GwKmEeJ19CH1ugWTlnCsFgZ2bpQMsumP5yv7dp21LmKr/09rzEdaalzViM9nUkMm4qFQ8rapo9puYBrRDU4otVMFVb+cTwELOA3VLIjEe1yiHeM4q6vU5jFDo4WWV/AFkFq9wmSaS5jzQwVMq1abDNX+vy03eJMERdaTC8DUy/CTZ9/9ZGyCwgTHgiVuQbsheH6hFwG5Xg69XozdI0tPneyfaHbEFUtqk55BREvnYA3KcQhsnNqK+/I1uAjTgfiIcSX+YXotEBMxtNhTfI2EaesG5jIAx/jjA710+vYXPpJJ/ZY3SwLPXErgwI1J5R98FSAruo5brPNNkheA==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Tamas K
 Lengyel <tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>,
	Petre Pircalabu <ppircalabu@bitdefender.com>, Teddy Astie
	<teddy.astie@vates.tech>, Penny Zheng <Penny.Zheng@amd.com>
Subject: [XEN][PATCH v4] xen: make VMTRACE support optional
Thread-Topic: [XEN][PATCH v4] xen: make VMTRACE support optional
Thread-Index: AQHcWYsVwkzlU6tg9E6YV8TOMrknlQ==
Date: Wed, 19 Nov 2025 19:31:20 +0000
Message-ID: <20251119193120.1011448-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM0PR03MB4594:EE_|DB9PR03MB7690:EE_
x-ms-office365-filtering-correlation-id: c0654e2d-39dd-4d16-97d0-08de27a23802
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|7416014|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?UzRtx75v68OcRkzPFAdaJNv/T3LsAeCn9RUsp0gpPaAqib+et7f55PmkOQ?=
 =?iso-8859-1?Q?rWM/Z1KW3TTxjfBzeiIOhqL6Up5jemoU2t3xfQ3bAKjAuyo5Ck/9uJk78N?=
 =?iso-8859-1?Q?vrsDszI4ukVMFBsZ2sGB2vHQ8Qs6cJsqCJ7/LdNQPKehRDa05xkPr8KbU9?=
 =?iso-8859-1?Q?b5hYBy5cb1uB/UNMpwHdWEAxkJESW79aSqYRJUu8FX4D9PN2KqjPteib4X?=
 =?iso-8859-1?Q?QxzZVO60afI9+JSPSBQp6XB0JTwVjmu9XBSs4AfT7vx7jkbaSqL9VL+YkO?=
 =?iso-8859-1?Q?syqvSJJid3t1lolfA6AyDpEWNxt3aythbHfH4LwHHFK9H66LIdN4dTyvLu?=
 =?iso-8859-1?Q?RPOsRwOaSTBf51eQohF52RN2moQ06tlKmjWjNqxsCfyske/RJkcTJueRur?=
 =?iso-8859-1?Q?NL3b+if64dXH6wvsg6CgRc7sFmi/5F5cKkReluhlo1WgQjKEnabeFkSjbk?=
 =?iso-8859-1?Q?Kyg26ni5f5N/VsIOSOq2F12Qu/WoLf9qylLcGQPLwJrOxCYDR7q1KyZZX+?=
 =?iso-8859-1?Q?6t1Auk4gJXDGWifT6MDvTfSQ3Tmdqy1GEFA6Y2AKj8VZZBcYg70o0oheQl?=
 =?iso-8859-1?Q?qhxAdMiKURKHfN4AttKjpYh+8K8LEAU/2UmlsPc4GSyZKHO/qFV4NGIhfS?=
 =?iso-8859-1?Q?DluoOJeQV0rLSlHbt7+wy15axWmZjn0QkrtdnrSLKZnBK99obByBJJx6rg?=
 =?iso-8859-1?Q?VOyI+uAhLQr7vrmHhanrOk9+hG81smQDxM3smoBU8re8nQaer26pTFKQqM?=
 =?iso-8859-1?Q?vB0brpBeXLxSCgts+9i6TzqAtsLDX1WsIlDpSxcujmh9xg1uzDV8+GCnJH?=
 =?iso-8859-1?Q?0mtloTwDvxVDMsYHuvQtQrdqu2Phf+UqK5X+rS6RScpYE91oeMJOa5+b3q?=
 =?iso-8859-1?Q?325jB5bDhPZt9zSrjjQMRLpKdQ+3ga0Bv8zNng8+yTc9vpSq+FNWlff/GD?=
 =?iso-8859-1?Q?M3C0G+R1JfgKDyMpZT82FfTAsbzvV6Io+Ms/0bxYVSb9Y4lwiyyVLaJTLG?=
 =?iso-8859-1?Q?PJBqrEecocVSvHQR+TcynUU9IlEr0xAo/MBPXA3QvlKU0W3hYkrA/BrMTl?=
 =?iso-8859-1?Q?oSnUES9ghyM/d6aWZLZcl7qnXgzXV/drbq+GCrQDRYqHvki9Zxo8LTZspj?=
 =?iso-8859-1?Q?ptrcw7Nq4upCjMS1Bb1LP6GQo7eVmNmfr/bPbCr2hRoRMtQw5/K85CFZhW?=
 =?iso-8859-1?Q?tVv9vFPKhU2vY66yxSxq4afhpHFNJUg6Us7vBZJNJISAHZeUt5Uft5oh/D?=
 =?iso-8859-1?Q?ZWoqaD2eP38oOl34f5KRtpBMhAVDxFDUFEDETg1Cs/7FNt0ycoNCIxBPAc?=
 =?iso-8859-1?Q?UzIWtCAMG5Gm4PR5CEQgMhDeYWvEKJYzHdGEp8yQuLVm1y7FQ3u5uH362g?=
 =?iso-8859-1?Q?gd/WoGmunwA5sdlzz1SrWsmyPS2p6MX/6UmaYxmEhQJtIwHhSMSVT4I9TQ?=
 =?iso-8859-1?Q?6PXmpwhEG1LKbdH59rPiQQvWQDKcLI+lkaWWchaCSsUa6BSkak9y2xSrQZ?=
 =?iso-8859-1?Q?LuXjMuCvUpMvGKDOMpGbtdXce1GsO8PLKvD+OsU/axLUgVSOpe+KEvJXdT?=
 =?iso-8859-1?Q?Reu8E+p+C+2YaQLOhRmnjuVaak8k?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Kp7e8dlo9cHg87Jfy/2GvjbkCi4CNuykAeBnsA2QMAy/uFpJHAJFbUOcJs?=
 =?iso-8859-1?Q?4yx+sUJZRqOsPfrfG+w+mt+iJTSwk8S64hZFB3xMxerfzLRCwlLx8QgKxT?=
 =?iso-8859-1?Q?pR3VH23CemItR2wpbBK91X7m87j05vGTE4zSqCMn3rrnK28a5jEJRNMn8s?=
 =?iso-8859-1?Q?fzDjNXev3R9vlPHV75nL8ERT45mBzBuI1s+3Gp1ntlElBfJA+CfWfedWSp?=
 =?iso-8859-1?Q?STsNWfx1MmK/WDtJgsTuWMK0GmrdQW4YINDRtaYLcsx6051JcJrdq1PWFO?=
 =?iso-8859-1?Q?sa3baJ+KOmRh+d9eo7TryBwMIhxmiZIYNq6OKJuCbfPQzAg0UiWWp0Pw+h?=
 =?iso-8859-1?Q?K6ULK/k/U52Rf0PR3b8DBUieTJXHtsYZzCHiOQohVE8FRsQNDmX31x1h3C?=
 =?iso-8859-1?Q?krkXCRM3OuP6uPHI/iogTMBAgSyu1xvbgRXdHO31XHnIISFI6wYGotN7+t?=
 =?iso-8859-1?Q?XuvTiHhJ7OhDpa8YS3QByjLh2yjt8o7DDlc6bD3iQeK26JWuRTg6/RGn0u?=
 =?iso-8859-1?Q?1P/bt8uxLIRtj+FxVL6hEbgQQpItCy7/sLMBLQYDyVHEzS7HAA9cIYqMUU?=
 =?iso-8859-1?Q?obFglMXf7TRK+iXEiSIU80mnN6qBemcwqQCTkiH1ZUPmVwUvl7S6vjFMiU?=
 =?iso-8859-1?Q?bZqUx6ukyNd6uPUmYODopaOn7PW2M5dqnLsAF0ba4FBD2pch3pGQoXeNWH?=
 =?iso-8859-1?Q?lu/pJkzpws2U25xvSFxZa+ebnJBDaLT/0YcC8L252AQ1WUkCJk+0V88IUA?=
 =?iso-8859-1?Q?2+DmjFolS+AMMkHCHgJE3V9DcXKvlQ1PN1ZLNIh0J+qPXjbSIoE2LK//uz?=
 =?iso-8859-1?Q?bOOq/40lGEBZFUKHycKlDM0ChdkosGJzP9zEWbURjrLjTyGGF0xiOLQyJ8?=
 =?iso-8859-1?Q?8ZP+VWsggMwtKLz0EbRBk6sRuYxVINXwdYMIFJDKx1L1C+d+oExf9VDsP8?=
 =?iso-8859-1?Q?YOhjkEUedG7VClUoKDjGatOeAEdGQJMq10Z7F+bJ2y6nrSTmq/BY9iDLPp?=
 =?iso-8859-1?Q?pSI3rMmcn/2vJlu36YPjdoxVN/QNTwLpAZjycYLqdW7Iy4qa570hnomBs8?=
 =?iso-8859-1?Q?ufFuVpSlrhRITn2MWpofI/40ehB6Lc4pNFm0efLRce2E9fBOKR886SeDbt?=
 =?iso-8859-1?Q?VCmeQADHBuNjPqu97i2lpccrKdm5gzSd5ULqCXb9n4NEHfXBewtQ4Zeso4?=
 =?iso-8859-1?Q?lTudo3oBEPzUhBLBpvxqtRGsGCji+kBR3tAvBeVWknj/uhLu758ByO9unW?=
 =?iso-8859-1?Q?TbL9DkTh/AHT7TtAHpN+wURhKC8QxYXpV9/hXu1Pn8ILatkDCDYyrT1/+O?=
 =?iso-8859-1?Q?8av6MEoLBSNBzHbeBzFvbpVMZMHwpHUmCGCp7PWu1SXLVK8eOdALj90Utn?=
 =?iso-8859-1?Q?MBCEwyuSHJ/54tqh8rX7P6jP5oAUCQziynuVy6g13szovkbWpnFnKuNKVF?=
 =?iso-8859-1?Q?99qJfEp11RCrXEeRmuKSEINQ5vhk9zZz+uzIHYZNePmKVbkUhBLW2XWyVh?=
 =?iso-8859-1?Q?sp5YziAJAuskIwR3UM31HPK8zUPPOEDe6AgyxHVj2gZSJjsgYVRRa9PqZT?=
 =?iso-8859-1?Q?McWp7/ZxoVcIXLJUUQk1RdqZne3sgkztgOf55WMFF5S7oHYohLZ7bxtGFw?=
 =?iso-8859-1?Q?DsVkea964rlFbqZUUxTvpi+vsoXffKInHG1bogN42+RZf8g8GFFEvIHg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c0654e2d-39dd-4d16-97d0-08de27a23802
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2025 19:31:21.0254
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: fWArHuthegxRdZzMeY4GtbvpCdcP+T+pRIvvM+DHopVHYYLnLqj5Vd4XKuXIx96bOXgW1QO/ZSelPAUMMZf4/9Zgh4QamOdNg90w+/s6dnI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7690

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=3Dn 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.387999=
7-1-grygorii_strashko@epam.com/=20
v1:
 https://patchwork.kernel.org/project/xen-devel/patch/20251031212005.133821=
2-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(-)

diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 6153e3c07e2d..d9521808dcba 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -154,6 +154,7 @@ void arch_get_domain_info(const struct domain *d,
 static int do_vmtrace_op(struct domain *d, struct xen_domctl_vmtrace_op *o=
p,
                          XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
 {
+#ifdef CONFIG_VMTRACE
     struct vcpu *v;
     int rc;
=20
@@ -198,6 +199,9 @@ static int do_vmtrace_op(struct domain *d, struct xen_d=
omctl_vmtrace_op *op,
     vcpu_unpause(v);
=20
     return rc;
+#else
+    return -EOPNOTSUPP;
+#endif
 }
=20
 #define MAX_IOPORTS 0x10000
diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index c1a131d1851a..f75dec5ea40a 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -35,6 +35,18 @@ config INTEL_VMX
 	  If your system includes a processor with Intel VT-x support, say Y.
 	  If in doubt, say Y.
=20
+config VMTRACE
+	bool "HW VM tracing support"
+	depends on INTEL_VMX
+	default y
+	help
+	  Enables HW VM tracing support which allows to configure HW processor
+	  features (vmtrace_op) to enable capturing information about software
+	  execution using dedicated hardware facilities with minimal interference
+	  to the software being traced. The trace data can be retrieved using buf=
fer
+	  shared between Xen and domain
+	  (see XENMEM_acquire_resource(XENMEM_resource_vmtrace_buf)).
+
 config HVM_FEP
 	bool "HVM Forced Emulation Prefix support (UNSUPPORTED)" if UNSUPPORTED
 	default DEBUG
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index d610988bf91b..c2e7f9aed39f 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -306,6 +306,7 @@ static int vmx_init_vmcs_config(bool bsp)
=20
     rdmsrl(MSR_IA32_VMX_MISC, _vmx_misc_cap);
=20
+#ifdef CONFIG_VMTRACE
     /* Check whether IPT is supported in VMX operation. */
     if ( bsp )
         vmtrace_available =3D cpu_has_proc_trace &&
@@ -317,6 +318,7 @@ static int vmx_init_vmcs_config(bool bsp)
                smp_processor_id());
         return -EINVAL;
     }
+#endif
=20
     if ( caps.cpu_based_exec_control & CPU_BASED_ACTIVATE_SECONDARY_CONTRO=
LS )
     {
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index d042e7fb927f..c98ec110d144 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -622,6 +622,7 @@ static void cf_check domain_creation_finished(struct do=
main *d)
=20
 static void vmx_init_ipt(struct vcpu *v)
 {
+#ifdef CONFIG_VMTRACE
     unsigned int size =3D v->domain->vmtrace_size;
=20
     if ( !size )
@@ -632,6 +633,7 @@ static void vmx_init_ipt(struct vcpu *v)
     ASSERT(size >=3D PAGE_SIZE && (size & (size - 1)) =3D=3D 0);
=20
     v->arch.msrs->rtit.output_limit =3D size - 1;
+#endif
 }
=20
 static int cf_check vmx_vcpu_initialise(struct vcpu *v)
@@ -724,11 +726,13 @@ static void vmx_save_guest_msrs(struct vcpu *v)
      */
     v->arch.hvm.vmx.shadow_gs =3D read_gs_shadow();
=20
+#ifdef CONFIG_VMTRACE
     if ( v->arch.hvm.vmx.ipt_active )
     {
         rdmsrl(MSR_RTIT_OUTPUT_MASK, msrs->rtit.output_mask);
         rdmsrl(MSR_RTIT_STATUS, msrs->rtit.status);
     }
+#endif
=20
     if ( cp->feat.pks )
         msrs->pkrs =3D rdpkrs_and_cache();
@@ -747,12 +751,14 @@ static void vmx_restore_guest_msrs(struct vcpu *v)
     if ( cpu_has_msr_tsc_aux )
         wrmsr_tsc_aux(msrs->tsc_aux);
=20
+#ifdef CONFIG_VMTRACE
     if ( v->arch.hvm.vmx.ipt_active )
     {
         wrmsrl(MSR_RTIT_OUTPUT_BASE, page_to_maddr(v->vmtrace.pg));
         wrmsrl(MSR_RTIT_OUTPUT_MASK, msrs->rtit.output_mask);
         wrmsrl(MSR_RTIT_STATUS, msrs->rtit.status);
     }
+#endif
=20
     if ( cp->feat.pks )
         wrpkrs(msrs->pkrs);
@@ -2626,6 +2632,7 @@ static bool cf_check vmx_get_pending_event(
     return true;
 }
=20
+#ifdef CONFIG_VMTRACE
 /*
  * We only let vmtrace agents see and modify a subset of bits in MSR_RTIT_=
CTL.
  * These all pertain to data-emitted into the trace buffer(s).  Must not
@@ -2768,6 +2775,7 @@ static int cf_check vmtrace_reset(struct vcpu *v)
     v->arch.msrs->rtit.status =3D 0;
     return 0;
 }
+#endif
=20
 static uint64_t cf_check vmx_get_reg(struct vcpu *v, unsigned int reg)
 {
@@ -2940,11 +2948,14 @@ static struct hvm_function_table __initdata_cf_clob=
ber vmx_function_table =3D {
     .altp2m_vcpu_emulate_ve =3D vmx_vcpu_emulate_ve,
     .altp2m_vcpu_emulate_vmfunc =3D vmx_vcpu_emulate_vmfunc,
 #endif
+
+#ifdef CONFIG_VMTRACE
     .vmtrace_control =3D vmtrace_control,
     .vmtrace_output_position =3D vmtrace_output_position,
     .vmtrace_set_option =3D vmtrace_set_option,
     .vmtrace_get_option =3D vmtrace_get_option,
     .vmtrace_reset =3D vmtrace_reset,
+#endif
=20
     .get_reg =3D vmx_get_reg,
     .set_reg =3D vmx_set_reg,
diff --git a/xen/arch/x86/include/asm/guest-msr.h b/xen/arch/x86/include/as=
m/guest-msr.h
index 5f0cb0a93995..702f47fe1e16 100644
--- a/xen/arch/x86/include/asm/guest-msr.h
+++ b/xen/arch/x86/include/asm/guest-msr.h
@@ -50,6 +50,7 @@ struct vcpu_msrs
         };
     } misc_features_enables;
=20
+#ifdef CONFIG_VMTRACE
     /*
      * 0x00000560 ... 57x - MSR_RTIT_*
      *
@@ -81,6 +82,7 @@ struct vcpu_msrs
             };
         };
     } rtit;
+#endif
=20
     /*
      * 0x000006e1 - MSR_PKRS - Protection Key Supervisor.
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/=
hvm/hvm.h
index 7412256a2dab..93da4dd2dc4b 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -234,12 +234,14 @@ struct hvm_function_table {
     int (*altp2m_vcpu_emulate_vmfunc)(const struct cpu_user_regs *regs);
 #endif
=20
+#ifdef CONFIG_VMTRACE
     /* vmtrace */
     int (*vmtrace_control)(struct vcpu *v, bool enable, bool reset);
     int (*vmtrace_output_position)(struct vcpu *v, uint64_t *pos);
     int (*vmtrace_set_option)(struct vcpu *v, uint64_t key, uint64_t value=
);
     int (*vmtrace_get_option)(struct vcpu *v, uint64_t key, uint64_t *valu=
e);
     int (*vmtrace_reset)(struct vcpu *v);
+#endif
=20
     uint64_t (*get_reg)(struct vcpu *v, unsigned int reg);
     void (*set_reg)(struct vcpu *v, unsigned int reg, uint64_t val);
@@ -738,6 +740,7 @@ static inline bool altp2m_vcpu_emulate_ve(struct vcpu *=
v)
 bool altp2m_vcpu_emulate_ve(struct vcpu *v);
 #endif /* CONFIG_ALTP2M */
=20
+#ifdef CONFIG_VMTRACE
 static inline int hvm_vmtrace_control(struct vcpu *v, bool enable, bool re=
set)
 {
     if ( hvm_funcs.vmtrace_control )
@@ -772,13 +775,24 @@ static inline int hvm_vmtrace_get_option(
=20
     return -EOPNOTSUPP;
 }
+#else
+/*
+ * Function declaration(s) here are used without definition(s) to make com=
piler
+ * happy when VMTRACE=3Dn, compiler DCE will eliminate unused code.
+ */
+int hvm_vmtrace_output_position(struct vcpu *v, uint64_t *pos);
+#endif
=20
 static inline int hvm_vmtrace_reset(struct vcpu *v)
 {
+#ifdef CONFIG_VMTRACE
     if ( hvm_funcs.vmtrace_reset )
         return alternative_call(hvm_funcs.vmtrace_reset, v);
=20
     return -EOPNOTSUPP;
+#else
+    return -EOPNOTSUPP;
+#endif
 }
=20
 /*
@@ -934,28 +948,6 @@ static inline bool hvm_has_set_descriptor_access_exiti=
ng(void)
     return false;
 }
=20
-static inline int hvm_vmtrace_control(struct vcpu *v, bool enable, bool re=
set)
-{
-    return -EOPNOTSUPP;
-}
-
-static inline int hvm_vmtrace_output_position(struct vcpu *v, uint64_t *po=
s)
-{
-    return -EOPNOTSUPP;
-}
-
-static inline int hvm_vmtrace_set_option(
-    struct vcpu *v, uint64_t key, uint64_t value)
-{
-    return -EOPNOTSUPP;
-}
-
-static inline int hvm_vmtrace_get_option(
-    struct vcpu *v, uint64_t key, uint64_t *value)
-{
-    return -EOPNOTSUPP;
-}
-
 static inline uint64_t hvm_get_reg(struct vcpu *v, unsigned int reg)
 {
     ASSERT_UNREACHABLE();
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h b/xen/arch/x86/include=
/asm/hvm/vmx/vmcs.h
index 8ff7c8045fc6..879ec10cefd0 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
@@ -154,8 +154,10 @@ struct vmx_vcpu {
     /* Do we need to tolerate a spurious EPT_MISCONFIG VM exit? */
     bool                 ept_spurious_misconfig;
=20
+#ifdef CONFIG_VMTRACE
     /* Processor Trace configured and enabled for the vcpu. */
     bool                 ipt_active;
+#endif
=20
     /* Is the guest in real mode? */
     uint8_t              vmx_realmode;
diff --git a/xen/arch/x86/mm/mem_sharing.c b/xen/arch/x86/mm/mem_sharing.c
index 4787b2796479..074f1b2562b3 100644
--- a/xen/arch/x86/mm/mem_sharing.c
+++ b/xen/arch/x86/mm/mem_sharing.c
@@ -1888,7 +1888,9 @@ static int fork(struct domain *cd, struct domain *d)
         domain_pause(d);
         cd->max_pages =3D d->max_pages;
         *cd->arch.cpu_policy =3D *d->arch.cpu_policy;
+#ifdef CONFIG_VMTRACE
         cd->vmtrace_size =3D d->vmtrace_size;
+#endif
         cd->parent =3D d;
     }
=20
diff --git a/xen/arch/x86/vm_event.c b/xen/arch/x86/vm_event.c
index fc349270b9c5..112d2ef66dc7 100644
--- a/xen/arch/x86/vm_event.c
+++ b/xen/arch/x86/vm_event.c
@@ -253,7 +253,9 @@ void vm_event_fill_regs(vm_event_request_t *req)
     req->data.regs.x86.shadow_gs =3D ctxt.shadow_gs;
     req->data.regs.x86.dr6 =3D ctxt.dr6;
=20
-    if ( hvm_vmtrace_output_position(curr, &req->data.regs.x86.vmtrace_pos=
) !=3D 1 )
+    if ( IS_ENABLED(CONFIG_VMTRACE) &&
+         hvm_vmtrace_output_position(curr,
+                                     &req->data.regs.x86.vmtrace_pos) !=3D=
 1 )
         req->data.regs.x86.vmtrace_pos =3D ~0;
 #endif
 }
@@ -303,12 +305,12 @@ void vm_event_emulate_check(struct vcpu *v, vm_event_=
response_t *rsp)
 #endif
 }
=20
+#ifdef CONFIG_VMTRACE
 void vm_event_reset_vmtrace(struct vcpu *v)
 {
-#ifdef CONFIG_HVM
     hvm_vmtrace_reset(v);
-#endif
 }
+#endif
=20
 /*
  * Local variables:
diff --git a/xen/common/domain.c b/xen/common/domain.c
index e13e01c1d272..ce4f55339fb4 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -136,7 +136,9 @@ struct vcpu *idle_vcpu[NR_CPUS] __read_mostly;
=20
 vcpu_info_t dummy_vcpu_info;
=20
+#ifdef CONFIG_VMTRACE
 bool __read_mostly vmtrace_available;
+#endif
=20
 bool __read_mostly vpmu_is_available;
=20
@@ -318,6 +320,7 @@ static void vcpu_info_reset(struct vcpu *v)
=20
 static void vmtrace_free_buffer(struct vcpu *v)
 {
+#ifdef CONFIG_VMTRACE
     const struct domain *d =3D v->domain;
     struct page_info *pg =3D v->vmtrace.pg;
     unsigned int i;
@@ -332,10 +335,12 @@ static void vmtrace_free_buffer(struct vcpu *v)
         put_page_alloc_ref(&pg[i]);
         put_page_and_type(&pg[i]);
     }
+#endif
 }
=20
 static int vmtrace_alloc_buffer(struct vcpu *v)
 {
+#ifdef CONFIG_VMTRACE
     struct domain *d =3D v->domain;
     struct page_info *pg;
     unsigned int i;
@@ -377,6 +382,9 @@ static int vmtrace_alloc_buffer(struct vcpu *v)
     }
=20
     return -ENODATA;
+#else
+    return 0;
+#endif
 }
=20
 /*
@@ -825,7 +833,9 @@ struct domain *domain_create(domid_t domid,
         ASSERT(!config->altp2m.nr);
 #endif
=20
+#ifdef CONFIG_VMTRACE
         d->vmtrace_size =3D config->vmtrace_size;
+#endif
     }
=20
     /* Sort out our idea of is_control_domain(). */
diff --git a/xen/common/memory.c b/xen/common/memory.c
index 3688e6dd5032..66dc7f7a0a41 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -1155,8 +1155,10 @@ static unsigned int resource_max_frames(const struct=
 domain *d,
     case XENMEM_resource_ioreq_server:
         return ioreq_server_max_frames(d);
=20
+#ifdef CONFIG_VMTRACE
     case XENMEM_resource_vmtrace_buf:
         return d->vmtrace_size >> PAGE_SHIFT;
+#endif
=20
     default:
         return 0;
@@ -1198,6 +1200,7 @@ static int acquire_ioreq_server(struct domain *d,
 #endif
 }
=20
+#ifdef CONFIG_VMTRACE
 static int acquire_vmtrace_buf(
     struct domain *d, unsigned int id, unsigned int frame,
     unsigned int nr_frames, xen_pfn_t mfn_list[])
@@ -1220,6 +1223,7 @@ static int acquire_vmtrace_buf(
=20
     return nr_frames;
 }
+#endif
=20
 /*
  * Returns -errno on error, or positive in the range [1, nr_frames] on
@@ -1238,8 +1242,10 @@ static int _acquire_resource(
     case XENMEM_resource_ioreq_server:
         return acquire_ioreq_server(d, id, frame, nr_frames, mfn_list);
=20
+#ifdef CONFIG_VMTRACE
     case XENMEM_resource_vmtrace_buf:
         return acquire_vmtrace_buf(d, id, frame, nr_frames, mfn_list);
+#endif
=20
     default:
         ASSERT_UNREACHABLE();
diff --git a/xen/common/vm_event.c b/xen/common/vm_event.c
index b2787c010890..cf0258223f50 100644
--- a/xen/common/vm_event.c
+++ b/xen/common/vm_event.c
@@ -441,7 +441,8 @@ static int vm_event_resume(struct domain *d, struct vm_=
event_domain *ved)
             if ( rsp.flags & VM_EVENT_FLAG_GET_NEXT_INTERRUPT )
                 vm_event_monitor_next_interrupt(v);
=20
-            if ( rsp.flags & VM_EVENT_FLAG_RESET_VMTRACE )
+            if ( IS_ENABLED(CONFIG_VMTRACE) &&
+                 (rsp.flags & VM_EVENT_FLAG_RESET_VMTRACE) )
                 vm_event_reset_vmtrace(v);
=20
             if ( rsp.flags & VM_EVENT_FLAG_VCPU_PAUSED )
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 8aab05ae93c8..aa86a9f46022 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -191,7 +191,11 @@ void vnuma_destroy(struct vnuma_info *vnuma);
 static inline void vnuma_destroy(struct vnuma_info *vnuma) { ASSERT(!vnuma=
); }
 #endif
=20
+#ifdef CONFIG_VMTRACE
 extern bool vmtrace_available;
+#else
+#define vmtrace_available false
+#endif
=20
 extern bool vpmu_is_available;
=20
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 02bdc256ce37..dcd8647e0d36 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -300,9 +300,11 @@ struct vcpu
     /* vPCI per-vCPU area, used to store data for long running operations.=
 */
     struct vpci_vcpu vpci;
=20
+#ifdef CONFIG_VMTRACE
     struct {
         struct page_info *pg; /* One contiguous allocation of d->vmtrace_s=
ize */
     } vmtrace;
+#endif
=20
     struct arch_vcpu arch;
=20
@@ -623,7 +625,9 @@ struct domain
     unsigned int nr_altp2m;    /* Number of altp2m tables. */
 #endif
=20
+#ifdef CONFIG_VMTRACE
     unsigned int vmtrace_size; /* Buffer size in bytes, or 0 to disable. *=
/
+#endif
=20
 #ifdef CONFIG_ARGO
     /* Argo interdomain communication support */
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 19:36:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 19:36:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166427.1492964 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLnyq-0006IE-C4; Wed, 19 Nov 2025 19:36:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166427.1492964; Wed, 19 Nov 2025 19:36: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 1vLnyq-0006I7-9E; Wed, 19 Nov 2025 19:36:40 +0000
Received: by outflank-mailman (input) for mailman id 1166427;
 Wed, 19 Nov 2025 19:36:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GacY=53=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vLnyp-0006I1-0q
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 19:36:39 +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 0f95f41b-c57f-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 20:36:36 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by AM9PR03MB7012.eurprd03.prod.outlook.com (2603:10a6:20b:2d4::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 19:36:33 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9343.009; Wed, 19 Nov 2025
 19:36: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: 0f95f41b-c57f-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZBXTzGPB0VpMo/Iv6MDHckxjfQKG7Jseycw9i1JVqZ+dZhSJVEQ7eSoth5zEAXBWXRU3sI6ifISTqeUrmJIO+pX49D6GQ6uzMPRTr65Ks3TDSpUUmVDBo3Md+zFbLg/rjf6VxVXGA4TiFBztXPQqmRXejyx6kfgRv1qnlb7YSjR/9o9BrmYLxwbN2nQrmAmLgM1v5USsY00h7H5n0G0wQk4Ku4GV+aECE6SG5yKJ/iiqrC0ppfJMTQ5D7fuUWl8OPUqsxRQzdOKFGxai5Jq4yJ7pKgHTO7ty4veQXcn6P4s3bzbmvGuPoast3TV6837FnIw8YyEfW14jalFD3D2HVA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CS4ctYxn8RLiheRAQXqyYaZGe+SL2L5OEIBpefv1+Rg=;
 b=wosBBRCTw/wU1DKgxG+wamjkRRnS7El3xjERcztjWvkd3ba6XWn2QFo+ic25WWHLm75bE7JsMLV62TQK7dhUqG9c7V8qLeJe4IJ+Xi2Em6sZA+ZqphF/NgarFZg1mQWLZN8RDDYred4VeDKKjN5x7BWqrPRCZV4BdKpmuXcf6wEV/hHkJTAnLjYugW+gx4BkxAYngY024i0/iq/f8da+lUYWoeZJAlpsp8Yi1b8o5Y8gUkf2Z15SuEMhKnGnIIVzviDJoWLqq1aYKgtN23G0YLAmBsn5QKuJsB7e9na9bxg4CpfR3sMAXXGNFON0tixiN8UOeM5k5/HDE9atwJTvMw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CS4ctYxn8RLiheRAQXqyYaZGe+SL2L5OEIBpefv1+Rg=;
 b=uIcJUiLboOpK9wCpsq5c/KA71ZwYKUohdXBh+MK+7ZVyO3/HKZ3lL73AXAyx+eL3yxvSc7kas778HQrQYe50/FjHWUGS6IhaIGIiR5RnB8UWBQO1V2AkmaJG+i4/xdOhhR1dxpbOGJw2NRwkPGtFSKsMvjsameu7oHi0mn2jNPRLsayCRiK2l+78CvlNgBQd//LtbKzTh8SDywIIIcS+ONRRiAN7lecvSqxwUl9mc4x/H2P1quJPEy5ffPf2Po49FYFzENfaAxe7des0nBKVBCkh53cZCRo4OWyx+0dYQUY/Tk6KdlskaTi6brMg5GyaO7KdOFnM5foLTVH2eC1v6Q==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <276968a6-4688-48bb-b0a1-5270ad3f0002@epam.com>
Date: Wed, 19 Nov 2025 21:36:29 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v4] xen/x86: guest_access: optimize raw_x_guest() for
 PV and HVM combinations
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251114140117.270461-1-grygorii_strashko@epam.com>
 <11c3929a-977b-4ef8-aaaa-9aea01657b04@suse.com>
 <fdd51da7-c8dc-4c0f-aaaf-a9fd2094bcd4@epam.com>
 <567f2759-fa03-43bd-9ae4-75e0e3811b60@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <567f2759-fa03-43bd-9ae4-75e0e3811b60@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA1P291CA0001.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::12) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|AM9PR03MB7012:EE_
X-MS-Office365-Filtering-Correlation-Id: 5f368ff9-a1db-4e93-70ca-08de27a2f095
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?KzFxalB4b3FveUFUWFByc1NHWUR2UUthdzFmMmZ6TmxIcm11M0R4WFRadTZX?=
 =?utf-8?B?UWJXZGlzQWZBKzR4Vnk2T3NRemJFc2phUi9YNXNiQjllUE5STDRBZ0ZBTnZM?=
 =?utf-8?B?S2FTT29ybFFickdLZzZTcEp6bkorYmZDOWdhcDN3T2NVWE9QY1NUVWk1VDZ6?=
 =?utf-8?B?ZituRFdJeEZ3ZE9icWN5Mmhid0pJQ2UwRDdwMGhuRFFVOVpLTndDcTVDZW5G?=
 =?utf-8?B?YVpBdUxJbHpBM0ZGOHVaem9aeTN5SlNkT0h6clNYSlpHVFBhaUFDSE1IYnB0?=
 =?utf-8?B?ZW85a3pDOXU0OCtIbEk5VDFQYmFEd3RvV1dWKy9OR1g0a0hMSjE1UUozRllt?=
 =?utf-8?B?U0h4NjdiTHdpalVHc2wzdW9aT0lNZDkzbEsyLzZRaStaY2c4TFdlempFOEFm?=
 =?utf-8?B?M1dKNXBFYmNiRjBaREEySFVhWndhdk9LVDdjOU9STXBOKzdsYnM2a2szdXVl?=
 =?utf-8?B?b3NCL2hTUmJzRlc0NHpUR3VKeEN1MGVWTWpyZGpOeWV5Uk9jcXE3U3pJYVhQ?=
 =?utf-8?B?TWpTTUFXeWp2aUc0SHJoNXlvT21XQnZGS09vR3Y5OW5BcnVaNG9QdXB0THhZ?=
 =?utf-8?B?My9kelpRV2pDMCtJMlNvU1FRNXZabElXRFBXTytRYmFhWmpIakV5Wld2S0hr?=
 =?utf-8?B?aTlXUkgvTWFYTHljemg0VTZqVzlxRzZhM2w0RDYyNzcwYlhEVmhpQ3F0TFh2?=
 =?utf-8?B?NEQ3L2p2a0U2RGRsZUlSZUxVUFE2UEpXUnFkS3I0U3ZxMitOMk1aOVRIV3R2?=
 =?utf-8?B?Qmt1aUU3OE5DT1d5S1pTKzlSdTlLWHNCdDhqVzNBZHFXUVROeXFBa29aeVJt?=
 =?utf-8?B?NFUyU3RzQjF3RStIdHhhczZwUnh3NlQybkhnRTY4clB2SGlNMDBrSFd3WkZw?=
 =?utf-8?B?Y0xiaUdwaHc4WE1ETFRvY1NEK3pld1ZTeHVXbUZxUUlNS1liUFdHSFkrcXJv?=
 =?utf-8?B?SjZUSEk1bUJlanNNODRDUDFZOGgzZThGMUhHRTduYmdtblo1QWd3dG94aFJU?=
 =?utf-8?B?Sk1rU3ZCd1pDRldvMm1mQjZIUmlvR29qcEJrN1U5WnROMEtsdzFQTlhkcndz?=
 =?utf-8?B?Wm0yYmM3cjV4cXBvRnFBM21MWEVhclZkVTVKMk9tVzh1ekhRWnhqaG9RUmxs?=
 =?utf-8?B?aW5pbThIN2pRTXB0VWxxb1cyUzZONis1KzRXenIyUVVmdzluSC9TdEtLdW1H?=
 =?utf-8?B?dlRhL2llYnlPbTl4UFovTzdicHVzelVJdCtvbFMyOTlBS2h3emRiTm5mNnp5?=
 =?utf-8?B?dzA1NVBOeWFwLy95Y2VXN1hocjJ3bzVWZHlVNHRQbWFSTVRsM2RnaDlBenIx?=
 =?utf-8?B?anlFYTdNMEFscWVQK1hqWkRuNDYzSDNMVW8wb05NeDRQZmtwNXp6a29XS1B4?=
 =?utf-8?B?MHJHalM3MnZUcktrVWZLVEZQSThDMGFFVlBxbWdaaFVhWFpZNkF0MEFGcFlS?=
 =?utf-8?B?dnc5KzUvVVBqTEUrZDI3ZFdkQzVHSGxIMXhVNkRvRVhnRU1XRysrWmRhSDRU?=
 =?utf-8?B?eWFvQUpoSXhuMVJKTEZUQUhydzIvZGhWS0RCU1NXSkFxWjR6Mkd1a3k4KzMv?=
 =?utf-8?B?SE5LeFdHVVlVSXIvdTVmMGNvbjM0bmF4N1hPMVpJOW1IM25pb2l3ckNxMnM0?=
 =?utf-8?B?dmpLTTNMN1d6b3lweG5qekJQUW9LNDJmc1hRWWIzTHBOR3V6aS9DVFh4elpZ?=
 =?utf-8?B?OXpneEpQWDhzNE9oSlFZK2tEN3NPNnJYVU1VRTZadWhmcUY2a21EYnR6TlJZ?=
 =?utf-8?B?SDViRk14eHJpUnN3U2hETXpsODVQR2V6Ykk3c1JNLzgrTkRDdi9EYmNhQjRp?=
 =?utf-8?B?Tk8wZlQ5blM2MGNaRWFvc2RiQ0dWUjdJelk0cnlnVnZJMVVJazlBYytER3V1?=
 =?utf-8?B?dHI5QW5kR2FtQWNFLzkyVUYzOElvVHNYNUFBY0hqWFBJaldpWnlrSW44WjNC?=
 =?utf-8?Q?8BGlaac1xjD4s7hgKGS4mXb53JBdy/aW?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MmRLdjE4MWEwUkxHUzV3Wmp1WE9nWjF5K3YwUVpEalkvdFI3aW5Xekhpa3Bw?=
 =?utf-8?B?d2hhQjB6MDB1K045Q0d2MUh3WEd5NEk5aDMxM3JGOG0zd21aT2Nza0hWSmpG?=
 =?utf-8?B?QzFYd3Q2TjV4UmVhQmJDMEpMNnJkc08yZDByeHNSbXVvUkM1WmdaU01jbDdj?=
 =?utf-8?B?ZWVVVGpscGVybUlSV1ZMN3htSk56NWlieHRYREF3eHY5UC95K0pmcW5sdHBy?=
 =?utf-8?B?VHZnREJvZzc3QmRQdlUza25HbUlTMHN0aWJOQzNHcWhYZTQwN2tEeFoyMGV4?=
 =?utf-8?B?Zk84RDY0bldNamg3Vjd3azdsd0ZleGRnNG1id2ZUL3R3NlVoUCtCL2xzQ0pw?=
 =?utf-8?B?Y2J1NGY0ZGQvNlN1ZE05aVl4aHFCYnV6Y2lPQTdKQVhEalBsZFJtQXZjUmZp?=
 =?utf-8?B?Ry9uZWtJSzZSNTNUNnVBV2ErQytDYXJ1N1Y5QTBZdHQ2NnpxMnV1NE1xR3VB?=
 =?utf-8?B?M0gzYzFBRS9CdXQyWU80ektwSkEwZ1BjUzE3UjhVeGdNVnVObjRocElxdGZZ?=
 =?utf-8?B?SEdvRE1RZjQ1MXAwQTZxTUVLalNTZTFPdDFHd0FmNTNRUjRGNUFkWmk1enA2?=
 =?utf-8?B?UFdIbU96czZUUUVwdUpxWXBlaFZRSVRMMWZWY004bjFramdwQnRFallGaUdG?=
 =?utf-8?B?V29mR1ZRZnJLNVlsQTBiUk0rU0FaVXVCbUxCOXJSZzdMWWlBWHU4QWdNUUJG?=
 =?utf-8?B?NWJvSHhpK3Zrcms0bERPQVBZb3FFZ1hNcmhKWWxDL2R2d0ViZ2RCWFZFa1Uw?=
 =?utf-8?B?MWFBT2xSb2dPejd0V09pYU9ZZHlDOHdid3ZBRjlPc0RkR1hXZzhlTVVkSlox?=
 =?utf-8?B?cnQ0VmszaTU3MlNteFV5T1lzVXlLZXNIYkVoMnQybDhHekZpKzR0S3NwNDRZ?=
 =?utf-8?B?MG9mS2JhdGxtd3lPYnRKZC8wOU5heDJ3ME4wWmc5Z2JnWExZdGo4Z1NFa0VJ?=
 =?utf-8?B?cW1MamhQKy9PeTIwWUwrbDFBWEpwVHJqN1dvYXlLWWx1SWdjK0RIZm9seGh4?=
 =?utf-8?B?NEd5emkyV1VDbEhveU5xWGgwUjZEb0ExUXdycW1rY01QdEJqcmd1M0UrYWFG?=
 =?utf-8?B?Sk9veE8vRFZxSkl5TnE4Y2FHbmpYdnlMMEwrVnBKd0xqbHZMZzFqenZDVkFo?=
 =?utf-8?B?akZSSXZ2QnVBNzRibUVlUFdZdnJnOUcxaXdlVmx6SFk2TGR2eTJxb0pjN3lU?=
 =?utf-8?B?ODJ0cVhScmZ1cjdabXB3R0lWUjFtbjZacDlaaWZNeXRZU0hhbit2WUhvbm54?=
 =?utf-8?B?dE5aaHBhZEZ2ekVDSXdTWGd1eUJ4QVZKL0F5QlFlQVhkeklaZlZyeUMxY0lD?=
 =?utf-8?B?RGt2RVFtaHRlV3NMaHV0Zkk0SElzUnNGbUdDRkQwRURPZ2srL0k3QjVIOXBi?=
 =?utf-8?B?eXVIeEw5eUR5RjNmRGRrMnlCNHZuRVNobnFNK3dCWThqNzRSWnBNY21lWk9O?=
 =?utf-8?B?K1oxRnBFQ3hqdk9FT2k0UHdxaTRITEtkSmVML1ZCSUkwUlhhWWRZdkx1Yzd6?=
 =?utf-8?B?dTd4aHNqeHlWT1BlcGtLMHdIUG53WDNZZTNOQ1hZQTZLUWo0ZnFzR1g2aUwy?=
 =?utf-8?B?S1N0VkM2ZmZRQ1NkMlZjcWtWVU9HbjBkeWR5clZKbWJMNkltRGlYRG9xUTZq?=
 =?utf-8?B?NjNraGtNZDdTL0VkVDcrdjMyS2txck1xbTd6STdyT1dzNXY4bTgxbW8ydnZI?=
 =?utf-8?B?MWJRUWkySm1aTTNJRTl1dGthU3pUL1o5RVgxV3hxdUczaHNPT01UZWtXMkph?=
 =?utf-8?B?QXA4UUZxZmhscVhoUk5RZnFPellCclAwYW80eis2VWZBbncwbVNmOHltai9k?=
 =?utf-8?B?UERyTVo3RldzbnVwd0dTazN2aWRhQnBCNFBTWEJpVENwVXNlaXJvTlo5SlZV?=
 =?utf-8?B?UCtYYzlqRjVsTVM2eUp0TGZ1K24vWFh3dFk2UXF0MWdwL2k2aDVkRkluSW91?=
 =?utf-8?B?MTNUcG5HK0EraXNlbGU1OFZ5czNINTNqNDROUzJvUlJvMzZnN0RLak0rVG5s?=
 =?utf-8?B?U2dtZzRCN1JkT1BMaVA4OFNFUFk5MXRJb0JkcXA2SE8wYUJQTXI0S29xRHM2?=
 =?utf-8?B?R0I0WWpueS9kd245ZmdHZ2htd1pxU09kb2IvQjVMN0ZpM0ZZRklzTFRuaE45?=
 =?utf-8?B?em1pc0pBUHk1ZzltWkprUVk2bEU3ZldMY29jR3J5Q2lhT25TdDd2WVJNRVNH?=
 =?utf-8?B?cFE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5f368ff9-a1db-4e93-70ca-08de27a2f095
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2025 19:36:31.0737
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: DInDtGx0qziEP/O8jPU3Q86xWP1sMpRo3oHz9BNUShz74mzmYV0+ZGY3dsOwhLsrMY8sAyszMK50ct4utV9+iEAHK6XYYipYcBKhq1UYWd0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7012

Hi Jan

On 18.11.25 15:45, Jan Beulich wrote:
> On 18.11.2025 14:08, Grygorii Strashko wrote:
>> On 17.11.25 18:43, Jan Beulich wrote:
>>> On 14.11.2025 15:01, Grygorii Strashko wrote:
>>>> --- a/xen/arch/x86/pv/Makefile
>>>> +++ b/xen/arch/x86/pv/Makefile
>>>> @@ -14,6 +14,10 @@ obj-y += ro-page-fault.o
>>>>    obj-$(CONFIG_PV_SHIM) += shim.o
>>>>    obj-$(CONFIG_TRACEBUFFER) += trace.o
>>>>    obj-y += traps.o
>>>> +obj-$(CONFIG_PV) += usercopy.o
>>>
>>> Just obj-y with the movement.
>>>
>>> However, is the movement (and was the adding of $(CONFIG_PV) in the earlier
>>> version) actually correct? The file also produces copy_{from,to}_unsafe_ll(),
>>> which aren't PV-specific. This may be only a latent issue right now, as we
>>> have only a single use site of copy_from_unsafe(), but those functions need
>>> to remain available. (We may want to arrange for them to be removed when
>>> linking, as long as they're not referenced. But that's a separate topic.)
>>
>> It is confusing that none of build cfg combinations have failed
>> (HVM=y PV=n, HVM=n PV=n) :(
>>
>> copy_to_unsafe_ll()
>> - called from copy_to_unsafe()
>> - copy_to_unsafe() has no users (unreachable, MISRA 2.1?)
>>
>> copy_from_unsafe_ll()
>> - called from copy_from_unsafe()
>> - copy_from_unsafe() called from one place do_invalid_op() with
>>     copy_from_unsafe(,, n = sizeof(bug_insn)).
>>     Due to __builtin_constant_p(n) check the copy_from_unsafe() call
>>     optimized by compiler to
>>     get_unsafe_size(*(uint16_t *)to, from, 2, UA_DROP, ret, 2);
>>
>> as result copy_from_unsafe_ll() is unreachable also (?).
> 
> Yes, these likely all want to become library-like, so they are linked in only
> when actually referenced.
> 
>> If those function are not subject to be removed, the
>>    usercopy.c can't be moved in "x86/pv", Right?
> 
> That's my take, yes.
> 
>> Making copy_{from,to}_unsafe_ll() available for !PV means
>> rewriting usercopy.c in some way, Right?
> 
> "Re-writing" is probably too much, but some adjustments would be needed if
> you want to keep the "unsafe" functions but compile out the "guest" ones.
> It may be possible to compile the file twice, once from x86/pv/ and once
> from x86/, replacing the self-#include near the bottom of the file. The
> former would then produce the "guest" functions, the latter the "unsafe"
> ones.

Below is the difference I came up with, will it work?

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 6e2b17471719..a2017b4600b3 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -71,6 +71,7 @@ obj-y += time.o
  obj-y += traps-setup.o
  obj-y += traps.o
  obj-$(CONFIG_INTEL) += tsx.o
+obj-y += usercopy.o
  obj-y += x86_emulate.o
  obj-$(CONFIG_TBOOT) += tboot.o
  obj-y += hpet.o
diff --git a/xen/arch/x86/pv/Makefile b/xen/arch/x86/pv/Makefile
index 59489cd75af6..1fddfac8303e 100644
--- a/xen/arch/x86/pv/Makefile
+++ b/xen/arch/x86/pv/Makefile
@@ -14,10 +14,7 @@ obj-y += ro-page-fault.o
  obj-$(CONFIG_PV_SHIM) += shim.o
  obj-$(CONFIG_TRACEBUFFER) += trace.o
  obj-y += traps.o
-obj-$(CONFIG_PV) += usercopy.o
+obj-y += usercopy.o
  
  obj-bin-y += dom0_build.init.o
  obj-bin-y += gpr_switch.o
-
-# Allows usercopy.c to include itself
-$(obj)/usercopy.o: CFLAGS-y += -iquote .
diff --git a/xen/arch/x86/pv/usercopy.c b/xen/arch/x86/pv/usercopy.c
index a24b52cc66c1..6ca6eca5d818 100644
--- a/xen/arch/x86/pv/usercopy.c
+++ b/xen/arch/x86/pv/usercopy.c
@@ -64,8 +64,6 @@ unsigned int copy_from_guest_ll(void *to, const void __user *from, unsigned int
      return n;
  }
  
-#if GUARD(1) + 0
-
  /**
   * copy_to_guest_pv: - Copy a block of data into PV guest space.
   * @to:   Destination address, in PV guest space.
@@ -139,16 +137,6 @@ unsigned int copy_from_guest_pv(void *to, const void __user *from,
      return n;
  }
  
-# undef GUARD
-# define GUARD UA_DROP
-# define copy_to_guest_ll copy_to_unsafe_ll
-# define copy_from_guest_ll copy_from_unsafe_ll
-# undef __user
-# define __user
-# include __FILE__
-
-#endif /* GUARD(1) */
-
  /*
   * Local variables:
   * mode: C
diff --git a/xen/arch/x86/usercopy.c b/xen/arch/x86/usercopy.c
new file mode 100644
index 000000000000..9c12eda64181
--- /dev/null
+++ b/xen/arch/x86/usercopy.c
@@ -0,0 +1,77 @@
+/*
+ * User address space access functions.
+ *
+ * Copyright 1997 Andi Kleen <ak@muc.de>
+ * Copyright 1997 Linus Torvalds
+ * Copyright 2002 Andi Kleen <ak@suse.de>
+ */
+
+#include <xen/lib.h>
+#include <xen/sched.h>
+#include <asm/uaccess.h>
+
+# define GUARD UA_DROP
+# define copy_to_guest_ll copy_to_unsafe_ll
+# define copy_from_guest_ll copy_from_unsafe_ll
+# undef __user
+# define __user
+
+unsigned int copy_to_guest_ll(void __user *to, const void *from, unsigned int n)
+{
+    GUARD(unsigned dummy);
+
+    stac();
+    asm_inline volatile (
+        GUARD(
+        "    guest_access_mask_ptr %[to], %q[scratch1], %q[scratch2]\n"
+        )
+        "1:  rep movsb\n"
+        "2:\n"
+        _ASM_EXTABLE(1b, 2b)
+        : [cnt] "+c" (n), [to] "+D" (to), [from] "+S" (from)
+          GUARD(, [scratch1] "=&r" (dummy), [scratch2] "=&r" (dummy))
+        :: "memory" );
+    clac();
+
+    return n;
+}
+
+unsigned int copy_from_guest_ll(void *to, const void __user *from, unsigned int n)
+{
+    unsigned dummy;
+
+    stac();
+    asm_inline volatile (
+        GUARD(
+        "    guest_access_mask_ptr %[from], %q[scratch1], %q[scratch2]\n"
+        )
+        "1:  rep movsb\n"
+        "2:\n"
+        ".section .fixup,\"ax\"\n"
+        "6:  mov  %[cnt], %k[from]\n"
+        "    xchg %%eax, %[aux]\n"
+        "    xor  %%eax, %%eax\n"
+        "    rep stosb\n"
+        "    xchg %[aux], %%eax\n"
+        "    mov  %k[from], %[cnt]\n"
+        "    jmp 2b\n"
+        ".previous\n"
+        _ASM_EXTABLE(1b, 6b)
+        : [cnt] "+c" (n), [to] "+D" (to), [from] "+S" (from),
+          [aux] "=&r" (dummy)
+          GUARD(, [scratch1] "=&r" (dummy), [scratch2] "=&r" (dummy))
+        :: "memory" );
+    clac();
+
+    return n;
+}



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 19:42:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 19:42:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166441.1492975 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLo44-0007y2-UT; Wed, 19 Nov 2025 19:42:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166441.1492975; Wed, 19 Nov 2025 19:42: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 1vLo44-0007xU-R3; Wed, 19 Nov 2025 19:42:04 +0000
Received: by outflank-mailman (input) for mailman id 1166441;
 Wed, 19 Nov 2025 19: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=GacY=53=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vLnud-0003Xw-MA
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 19:32:19 +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 7644e273-c57e-11f0-9d18-b5c5bf9af7f9;
 Wed, 19 Nov 2025 20:32:19 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by AM9PR03MB7012.eurprd03.prod.outlook.com (2603:10a6:20b:2d4::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 19:32:16 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9343.009; Wed, 19 Nov 2025
 19:32: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: 7644e273-c57e-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Q1qoCP6mIbLpMm0dygnwZ9RqboUcVFy8BmN96/fEUN8veP8hJKS+ZZtowOubz/1GOjxHI4qh4Clxu+N+mcirl5fVB3pg3C4aQfx1eSuYTBhIaFN7qEg7OYc2CEsWCKRjE9ssgLjtRqC6DDgD8HuXZ9eeolafTvTUKkpc2ARRp2jzzTo/8OtlXaRhyVim1BERme1fn209JrpWQPqXFwVsgZLIW1jLKzxsLiHBV7P6K+R1iauTH5rMuTnp0ShaMDmmst5+Ud2mm8hDZCLrxR37KUNgX82wlFCKnEZcD1fdzCH10Juh26kkWKF1NNMy/MSnZl44+rvLZzALE0fbwgsHAA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AaBBvL45GWZve+KtHwXvB/y5MwarwU/6KhVE6kHGKhk=;
 b=w1wDdwuQpylIRGBe5UDbRnHiE3HOxk7FwMsvXh1ce7lQEtodoa0zTHSj8f4yB5s9MlhhKrml52GhSnNP5f74DdyM/SiQp9hY5FucEktK5fwFXxfndZ8+zy/Li7w3qXtMCTFXKaTiEGilfTExCV+4WfkiVeYPBRwRQ5Icyy+gGwGukQ5chrCpNKlMmF3is2BSGNHyujvpkory8NUZLNLLsvjzHtmBHQ692SCaxJbvV/7EtnbFZ/zlF2fYIecLC6cTf+WT1BBWP5Qwfl2PbVH1t2V5w7bxGzJ07WL4V1+i89f0RZiYceOCEF6p2mKe5vQMrAwzs7Ze8cxxc/hD1ClTvg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AaBBvL45GWZve+KtHwXvB/y5MwarwU/6KhVE6kHGKhk=;
 b=GPcQkZ/6dTn/q3tligg8wjU8l1vx23Kv2o7xNjyj/6Pya20l08xV8Rd6CcJdxhPTqw1WPImf3F8b7Aya38TtzVdMGFZ2TQWBTR2jDLFHiOpXERqhDjJrGzezVbyHUSOgGm8LZH32Or0YvnVIrgB48m6CUbKttZnJ28es4A4gLCkBZ0b1AEWZ6Hqzm7eheZJScAxgqX+nEomICA8ufv7+Ivu5ZByAj8Qpg+rpjxUs5s7R30QlM0r9EQIhlJlk01bKmppIoGDKpx625v4N8B5KbcO/MChRer03jcPGcKJqYoFyqiGyF/TqhCtqGttZf435EyOnUATSHPCLgwUnmPx6dw==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Sergiy Kibrik <Sergiy_Kibrik@epam.com>, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Paul Durrant <paul@xen.org>, Alejandro Vallejo
	<alejandro.garciavallejo@amd.com>, Jason Andryuk <jason.andryuk@amd.com>,
	Grygorii Strashko <grygorii_strashko@epam.com>
Subject: [XEN][PATCH] x86: make Viridian support optional
Thread-Topic: [XEN][PATCH] x86: make Viridian support optional
Thread-Index: AQHcWYs2Y218dBKOy0uhfhyo74AxFw==
Date: Wed, 19 Nov 2025 19:32:16 +0000
Message-ID: <20251119193215.1012108-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM0PR03MB4594:EE_|AM9PR03MB7012:EE_
x-ms-office365-filtering-correlation-id: 339787f2-983e-4418-476f-08de27a2590b
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?TjjRFNmIzls3hOgqTWCBiOm6pTRlzRs7HjxjB8jJnkPLrVTUr/Ri1OPQvz?=
 =?iso-8859-1?Q?SMBQWKyjXA1jPmDfMGG5iLUZ8hktydwa/zRoDDA82pDU5LBvh98iJxmMqt?=
 =?iso-8859-1?Q?OA6s1XWSef/P2aH59MSPyIE5UubhU5OMIn0lpoQ85lmTof6s6oPXXIFr7V?=
 =?iso-8859-1?Q?KZ5qJSjwP2X98zACAleT0YgE+zKAZ1pyoY9wmxkgJip1jbn2zIRToEbSOT?=
 =?iso-8859-1?Q?OIYjDVMXmHa27QMVwM6ZLP4PRxMlRel578UAzf3RxsEM5nx6NhaJ7+pm6A?=
 =?iso-8859-1?Q?8jhjRY9mfRF39FloILcuK7gcdgsAR3qP3wvsqUWHmduDJdS0hpTX/55/XW?=
 =?iso-8859-1?Q?ykjF9XR7hq9ZTZInk9Ifd4JP0iUCwVA+dxXw11FkfZLh+SIZMN7p1DI8CY?=
 =?iso-8859-1?Q?M72YrXQbm/+giMenU1qxY+1sIarYNv+wCPeIGozQ9pp92ezLXCXBLORq6W?=
 =?iso-8859-1?Q?xE9cmcTwFb0QpKp1tUmo/EwcHCD+KVwsmypxT86ynVaPS/zNeaxbHlZLcp?=
 =?iso-8859-1?Q?uvEL7YDvRizaGKgRq7GParmy8/kyPu5mNMMj085PLdylfPJln5NuTLP4/i?=
 =?iso-8859-1?Q?/s2xlrabr6O0shSvRxsansiw9GRlXqjHh3vV9msgeHTkl4jfw9hY2RPVQI?=
 =?iso-8859-1?Q?RFDza+GsJN6tdnSnngxgNLpRNtkm+vmrD1igWMGdTHHKOYI2ckAnkq8uvH?=
 =?iso-8859-1?Q?OAeOl9yQCfLdZyqYs9KRFXcYOVx9MvWTRIqwYOk0qKBNoh9l3NcmSPNiFM?=
 =?iso-8859-1?Q?HY4H8cGsDtk0N/L6n4mIp0s5nRur75Je81bUkoraU+1994DIW90BkIjDDW?=
 =?iso-8859-1?Q?IcGT2OfoFI1iEuWPOqxVIL4vIfKiCCbzCkup9HOTWU1BIl9vgVv/2cRXsM?=
 =?iso-8859-1?Q?LBGJ5HvwCEAQ++SDbeCHoG9JZ/h6UrBfidD8IEQUlrGiZWTGwrHtNTf6LS?=
 =?iso-8859-1?Q?8EZWt8dHCyDv/BmFV3D5hG/hiMMzPPfMZEImdx33ZviblCt2LK22CYPzV+?=
 =?iso-8859-1?Q?ga15cVvXecA/jqQMD9rwKnqhB86HRuRQ1wXAj2uEiYdGbDbja1T6X1AwCa?=
 =?iso-8859-1?Q?UOXs7Gzpi9DggNWoY6NQnhDzzbpjbqL0wiIm4a7+NhWp++zvjpkv8FHmNi?=
 =?iso-8859-1?Q?x04toA1IOMGKA1ulkK74zQcOobsyz43PJwkl4BlE4omehowSP9vAHtWcvr?=
 =?iso-8859-1?Q?WjBbN1WYBk7rkEPSjOKz6im8flqOcFpxujfAxdfc8tthYN88RFQmxsZSfk?=
 =?iso-8859-1?Q?ip4VhysT+JFtyT8oicZW7E7/iBNKjF4CBHG+N+g097uBKrlhpYY5HC3tiE?=
 =?iso-8859-1?Q?yDTON8knObfQsYJM3UrI2+twsDTPmjjlUQ3V9MqF+C4w+dpiIGgTQjC9pQ?=
 =?iso-8859-1?Q?pCfja4zYaA21IE4c64p6/HENN1yTXgPGcOJPZWYqV4U+0B/3pEZFApb0QG?=
 =?iso-8859-1?Q?dSNOxeokA7p1vq0iW4u3xrvqK9mIp4sf68HrB2e3esUNVyrtX6C8l/bkNt?=
 =?iso-8859-1?Q?NufRm8qyw9FaLk32gULbW2M2gWp025PMAW5azbJyLJlW0tfPbmJsn0lB6W?=
 =?iso-8859-1?Q?UN49i9jwC5vBTU3DVsQAlKcxhq5c?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.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?bth3p3vpd1SGaMdrwn+cqmzytjelYEL8S0Q08IETYJJ7cKrPFaStW98Piy?=
 =?iso-8859-1?Q?CLHkEWUod+JZWjv7u6oYAHdNJL6GhI5hv1PK2dVM7+VdWQWizL3itjVFu7?=
 =?iso-8859-1?Q?rVzydSPo8fG9cgbfx9+v2/QoEjZDKU5mBAFipMAY68H/fNJc5caoeON7J/?=
 =?iso-8859-1?Q?zmyGs6JXsxhA7fttmHRGcYYBJFHpZ7b5UmbgE9gwtCVgcN/N6H9xP9N2+3?=
 =?iso-8859-1?Q?bt1+Gb8W4n349vOVI4Ej8FR0vrhV4ZBNPM84/CnzZ4x9fu6ghj9EdolheJ?=
 =?iso-8859-1?Q?OG9s7lpDuFFD+JQia0CsZq0LY8bpIefhdcXoq7jLb44JcGDI38cA4eJDco?=
 =?iso-8859-1?Q?Y7haHBnpmEUfZZOikjslz0uahtzUHIG53pd0P9ozDeioPwPhFfFTls4wl0?=
 =?iso-8859-1?Q?iTGKWKxEhRze2vLaKZYtJuNVNWWGdX2+rwmulm+rbsBntA7pzELtPLpOde?=
 =?iso-8859-1?Q?gNalKleM21QUJiSqhAmRvNqJmL6CJKgWhpHTEyak0rzS9AWxgbCf3LdWKs?=
 =?iso-8859-1?Q?AcQzaz+k0UHT2+qSgQ7X4pO4iaiznb/nnUnZ+JriHC2ym83LrqNqa5FdiM?=
 =?iso-8859-1?Q?gU4UzTOHRqnMco7ybblYdk6dl6afFV4bk5UVdPybTa8VQRRq3iJmGfopLo?=
 =?iso-8859-1?Q?pBUo4MPAXlSdWZUhYJcglqh9U5rCUveOK+OB8yC3ZICPhbQaJqn3IghQpu?=
 =?iso-8859-1?Q?E7lrSva+sYR3KiHYaGI3uOLyamnt3vcujzoL9KzJvS/3m/IdknvklxXB2o?=
 =?iso-8859-1?Q?zwsm4FlAlFOq4vADTmubPSbOJeEkZWSrcdFySkFMlkC2ndEWsuHVTHDxvy?=
 =?iso-8859-1?Q?Q4BtDrowC74ZY21bYOi74CfgxeFx4MTrpuzX9qZdcusJdgP5FVfJeDnjDK?=
 =?iso-8859-1?Q?iHMCIrfD/T9wVE4OLqZKaWq+WtsnAorku4LPLdAchy+1h4fRZqIIC+BZp5?=
 =?iso-8859-1?Q?eHQHvAHvFBH0jcxVofvvcfEd2kB93mF9P6W5Rb1yLDSaUE0+a5fcqeSNBZ?=
 =?iso-8859-1?Q?k6DUAo7vklqWBjmmneW4/y01z84h3ykQoz1R/a+61vykgLbWVHI0aBHRY2?=
 =?iso-8859-1?Q?y32E2ivSHb57qvZrZUCFWTvEBs5DLh9/tgrENESZkspl+LVJQqumbJ9O8Z?=
 =?iso-8859-1?Q?cFebMu+Xu7uiF7rmTGZ5tEdwoc+TuKSQlO4+RqnMGDgFZZOSeMfbtJ5ztJ?=
 =?iso-8859-1?Q?q2DX1L0DAdm3RNvZDH9SBPpD82bOjO3g0zv9qq0SeripzupGJAMNpOLU56?=
 =?iso-8859-1?Q?N/0fEHwX7nkhj0P2mRN4Fm/6vxvviG1Z8tIlYB1n6SFNG3ryk3MXnVErWj?=
 =?iso-8859-1?Q?YnqGPzKARQuhhskatNHDXo3Uo+RasKuLJYrOVFWAhaY9IcQNaVZipCzvX7?=
 =?iso-8859-1?Q?zzq8J28cxJPAHKhVyyg+OKU/MLMHNLmYt4VGAebHZpdVSotQBRYOdRGGH0?=
 =?iso-8859-1?Q?OwID74ktMAZJGq6tEtjAKJ+7d0xo4/9zqsLMEsblU8NTNcxa0UDWjTF4jB?=
 =?iso-8859-1?Q?2jLl18gyuYKCUqjiqC/V1jnrq+LHMIBQGc43EQ0cSG0KDl1EF12Ak0COva?=
 =?iso-8859-1?Q?r8Rvvu4YRgzSSjhrNqthwBPrSuIJ4boMR7dS2ULf6CrdVWo+jB5HwirKls?=
 =?iso-8859-1?Q?bmdABrvnd5+PiEmxGgg4BOFaUqILm4UtxmT2TCBYz4u3Ng5P+iCPeUKw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 339787f2-983e-4418-476f-08de27a2590b
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Nov 2025 19:32:16.4431
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ATskDiWZe2Rs34sRPsqklIfq28Cp+9hIxAMghbC5PvM/0tiWhUrJS9bYyRLVNaxO8pSDEtFI557sGvhTEo+a3FxB5G6JfzKtcxN506nGWcI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7012

From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>

Add config option VIRIDIAN that covers viridian code within HVM.
Calls to viridian functions guarded by is_viridian_domain() and related mac=
ros.
Having this option may be beneficial by reducing code footprint for systems
that are not using Hyper-V.

[grygorii_strashko@epam.com: fixed NULL pointer deref in
viridian_save_domain_ctxt(); stub viridian_vcpu/domain_init/deinit()]
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>=20
---
changes in v8:
- drop checks from viridian_load_vcpu/domain_ctxt()
- drop check "value !=3D 0" in HVM_PARAM_VIRIDIAN handler, laways return
  -ENODEV for VIRIDIAN=3Dn

changes in v7:
- s/!is_viridian_vcpu()/!IS_ENABLED(CONFIG_VIRIDIAN) checks in
  viridian_load_vcpu/domain_ctxt(), because it is not
  guaranteed that HVM_PARAM_VIRIDIAN will be loaded before
  viridian_load_vcpu_ctxt() is called (comment from Jason Andryuk)

changes in v6:
- add stubs for viridian_vcpu/domain_init/deinit()
- update Kconfig description
- make set(HVM_PARAM_VIRIDIAN) return -ENODEV
  if (!IS_ENABLED(CONFIG_VIRIDIAN) && value)

changes in v5:
- drop "depends on AMD_SVM || INTEL_VMX"
- return -EILSEQ from viridian_load_x() if !VIRIDIAN

changes in v4:
- s/HVM_VIRIDIAN/VIRIDIAN
- add "depends on AMD_SVM || INTEL_VMX"
- add guard !is_viridian_vcpu() checks in viridian_load_vcpu_ctxt/viridian_=
load_domain_ctxt

changes in v3:
- fixed NULL pointer deref in viridian_save_domain_ctxt() reported for v2,
  which caused v2 revert by commit 1fffcf10cd71 ("Revert "x86: make Viridia=
n
  support optional")

v7: https://patchwork.kernel.org/project/xen-devel/patch/20251031161716.122=
2956-1-grygorii_strashko@epam.com/
v6: https://patchwork.kernel.org/project/xen-devel/patch/20251023151807.560=
843-1-grygorii_strashko@epam.com/
v5: https://patchwork.kernel.org/project/xen-devel/patch/20250930125215.108=
7214-1-grygorii_strashko@epam.com/
v4: https://patchwork.kernel.org/project/xen-devel/patch/20250919163139.282=
1531-1-grygorii_strashko@epam.com/
v3: https://patchwork.kernel.org/project/xen-devel/patch/20250916134114.221=
4104-1-grygorii_strashko@epam.com/
v2: https://patchwork.kernel.org/project/xen-devel/patch/20250321092633.398=
2645-1-Sergiy_Kibrik@epam.com/

 xen/arch/x86/hvm/Kconfig                | 10 ++++++++++
 xen/arch/x86/hvm/Makefile               |  2 +-
 xen/arch/x86/hvm/hvm.c                  |  5 +++--
 xen/arch/x86/hvm/viridian/viridian.c    |  8 ++++----
 xen/arch/x86/hvm/vlapic.c               | 11 +++++++----
 xen/arch/x86/include/asm/hvm/domain.h   |  2 ++
 xen/arch/x86/include/asm/hvm/hvm.h      |  3 ++-
 xen/arch/x86/include/asm/hvm/vcpu.h     |  2 ++
 xen/arch/x86/include/asm/hvm/viridian.h | 15 +++++++++++++++
 9 files changed, 46 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index 5e86cac26e1b..5c47a45c9350 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -75,6 +75,16 @@ config ALTP2M
=20
 	  If unsure, stay with defaults.
=20
+config VIRIDIAN
+	bool "Hyper-V enlightenments for guests" if EXPERT
+	default y
+	help
+	  Support optimizations for Hyper-V guests such as hypercalls, efficient
+	  timers and interrupt handling. This is to improve performance and
+	  compatibility of Windows VMs.
+
+	  If unsure, say Y.
+
 config MEM_PAGING
 	bool "Xen memory paging support (UNSUPPORTED)" if UNSUPPORTED
 	depends on VM_EVENT
diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 6ec2c8f2db56..736eb3f966e9 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -1,6 +1,6 @@
 obj-$(CONFIG_AMD_SVM) +=3D svm/
 obj-$(CONFIG_INTEL_VMX) +=3D vmx/
-obj-y +=3D viridian/
+obj-$(CONFIG_VIRIDIAN) +=3D viridian/
=20
 obj-y +=3D asid.o
 obj-y +=3D dm.o
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 88ad4100001e..7299cfa90ad5 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -4231,8 +4231,9 @@ static int hvm_set_param(struct domain *d, uint32_t i=
ndex, uint64_t value)
             rc =3D -EINVAL;
         break;
     case HVM_PARAM_VIRIDIAN:
-        if ( (value & ~HVMPV_feature_mask) ||
-             !(value & HVMPV_base_freq) )
+        if ( !IS_ENABLED(CONFIG_VIRIDIAN) )
+            rc =3D -ENODEV;
+        else if ( (value & ~HVMPV_feature_mask) || !(value & HVMPV_base_fr=
eq) )
             rc =3D -EINVAL;
         break;
     case HVM_PARAM_IDENT_PT:
diff --git a/xen/arch/x86/hvm/viridian/viridian.c b/xen/arch/x86/hvm/viridi=
an/viridian.c
index f79cffcb3767..90e749ceb581 100644
--- a/xen/arch/x86/hvm/viridian/viridian.c
+++ b/xen/arch/x86/hvm/viridian/viridian.c
@@ -1097,14 +1097,14 @@ static int cf_check viridian_save_domain_ctxt(
 {
     const struct domain *d =3D v->domain;
     const struct viridian_domain *vd =3D d->arch.hvm.viridian;
-    struct hvm_viridian_domain_context ctxt =3D {
-        .hypercall_gpa =3D vd->hypercall_gpa.raw,
-        .guest_os_id =3D vd->guest_os_id.raw,
-    };
+    struct hvm_viridian_domain_context ctxt =3D {};
=20
     if ( !is_viridian_domain(d) )
         return 0;
=20
+    ctxt.hypercall_gpa =3D vd->hypercall_gpa.raw;
+    ctxt.guest_os_id =3D vd->guest_os_id.raw,
+
     viridian_time_save_domain_ctxt(d, &ctxt);
     viridian_synic_save_domain_ctxt(d, &ctxt);
=20
diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
index 4121285daef8..b315e56d3f18 100644
--- a/xen/arch/x86/hvm/vlapic.c
+++ b/xen/arch/x86/hvm/vlapic.c
@@ -447,7 +447,8 @@ void vlapic_EOI_set(struct vlapic *vlapic)
      * priority vector and then recurse to handle the lower priority
      * vector.
      */
-    bool missed_eoi =3D viridian_apic_assist_completed(v);
+    bool missed_eoi =3D has_viridian_apic_assist(v->domain) &&
+                      viridian_apic_assist_completed(v);
     int vector;
=20
  again:
@@ -463,7 +464,7 @@ void vlapic_EOI_set(struct vlapic *vlapic)
      * NOTE: It is harmless to call viridian_apic_assist_clear() on a
      *       recursion, even though it is not necessary.
      */
-    if ( !missed_eoi )
+    if ( has_viridian_apic_assist(v->domain) && !missed_eoi )
         viridian_apic_assist_clear(v);
=20
     vlapic_clear_vector(vector, &vlapic->regs->data[APIC_ISR]);
@@ -1375,7 +1376,8 @@ int vlapic_has_pending_irq(struct vcpu *v)
      * If so, we need to emulate the EOI here before comparing ISR
      * with IRR.
      */
-    if ( viridian_apic_assist_completed(v) )
+    if ( has_viridian_apic_assist(v->domain) &&
+         viridian_apic_assist_completed(v) )
         vlapic_EOI_set(vlapic);
=20
     isr =3D vlapic_find_highest_isr(vlapic);
@@ -1388,7 +1390,8 @@ int vlapic_has_pending_irq(struct vcpu *v)
     if ( isr >=3D 0 &&
          (irr & 0xf0) <=3D (isr & 0xf0) )
     {
-        viridian_apic_assist_clear(v);
+        if ( has_viridian_apic_assist(v->domain) )
+            viridian_apic_assist_clear(v);
         return -1;
     }
=20
diff --git a/xen/arch/x86/include/asm/hvm/domain.h b/xen/arch/x86/include/a=
sm/hvm/domain.h
index 94d19730b2c1..83be2bd1c29c 100644
--- a/xen/arch/x86/include/asm/hvm/domain.h
+++ b/xen/arch/x86/include/asm/hvm/domain.h
@@ -105,7 +105,9 @@ struct hvm_domain {
     /* hypervisor intercepted msix table */
     struct list_head       msixtbl_list;
=20
+#ifdef CONFIG_VIRIDIAN
     struct viridian_domain *viridian;
+#endif
=20
     /*
      * TSC value that VCPUs use to calculate their tsc_offset value.
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/=
hvm/hvm.h
index 927427764c9e..93da4dd2dc4b 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -514,7 +514,8 @@ hvm_get_cpl(struct vcpu *v)
     (has_hvm_params(d) ? (d)->arch.hvm.params[HVM_PARAM_VIRIDIAN] : 0)
=20
 #define is_viridian_domain(d) \
-    (is_hvm_domain(d) && (viridian_feature_mask(d) & HVMPV_base_freq))
+    (IS_ENABLED(CONFIG_VIRIDIAN) && \
+     is_hvm_domain(d) && (viridian_feature_mask(d) & HVMPV_base_freq))
=20
 #define is_viridian_vcpu(v) \
     is_viridian_domain((v)->domain)
diff --git a/xen/arch/x86/include/asm/hvm/vcpu.h b/xen/arch/x86/include/asm=
/hvm/vcpu.h
index 3cf7a71fd309..eae9ac53767b 100644
--- a/xen/arch/x86/include/asm/hvm/vcpu.h
+++ b/xen/arch/x86/include/asm/hvm/vcpu.h
@@ -173,7 +173,9 @@ struct hvm_vcpu {
     /* Pending hw/sw interrupt (.vector =3D -1 means nothing pending). */
     struct x86_event     inject_event;
=20
+#ifdef CONFIG_VIRIDIAN
     struct viridian_vcpu *viridian;
+#endif
 };
=20
 #endif /* __ASM_X86_HVM_VCPU_H__ */
diff --git a/xen/arch/x86/include/asm/hvm/viridian.h b/xen/arch/x86/include=
/asm/hvm/viridian.h
index 47c9d13841ac..07ea95d4ae6e 100644
--- a/xen/arch/x86/include/asm/hvm/viridian.h
+++ b/xen/arch/x86/include/asm/hvm/viridian.h
@@ -86,11 +86,26 @@ viridian_hypercall(struct cpu_user_regs *regs);
 void viridian_time_domain_freeze(const struct domain *d);
 void viridian_time_domain_thaw(const struct domain *d);
=20
+#if defined(CONFIG_VIRIDIAN)
 int viridian_vcpu_init(struct vcpu *v);
 int viridian_domain_init(struct domain *d);
=20
 void viridian_vcpu_deinit(struct vcpu *v);
 void viridian_domain_deinit(struct domain *d);
+#else
+static inline int viridian_vcpu_init(struct vcpu *v)
+{
+    return 0;
+}
+
+static inline int viridian_domain_init(struct domain *d)
+{
+    return 0;
+}
+
+static inline void viridian_vcpu_deinit(struct vcpu *v) {}
+static inline void viridian_domain_deinit(struct domain *d) {}
+#endif
=20
 void viridian_apic_assist_set(const struct vcpu *v);
 bool viridian_apic_assist_completed(const struct vcpu *v);
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Nov 19 22:46:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 22:46:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166460.1492985 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLqwc-0005mV-0S; Wed, 19 Nov 2025 22:46:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166460.1492985; Wed, 19 Nov 2025 22:46: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 1vLqwb-0005mO-Tj; Wed, 19 Nov 2025 22:46:33 +0000
Received: by outflank-mailman (input) for mailman id 1166460;
 Wed, 19 Nov 2025 22:46: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=y3JJ=53=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vLqwa-0005mA-NR
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 22:46:32 +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 94f3541f-c599-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 23:46:28 +0100 (CET)
Received: from BYAPR06CA0052.namprd06.prod.outlook.com (2603:10b6:a03:14b::29)
 by PH0PR12MB5678.namprd12.prod.outlook.com (2603:10b6:510:14e::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.22; Wed, 19 Nov
 2025 22:46:23 +0000
Received: from CO1PEPF000042AD.namprd03.prod.outlook.com
 (2603:10b6:a03:14b:cafe::ea) by BYAPR06CA0052.outlook.office365.com
 (2603:10b6:a03:14b::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.10 via Frontend Transport; Wed,
 19 Nov 2025 22:46:21 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF000042AD.mail.protection.outlook.com (10.167.243.42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Wed, 19 Nov 2025 22:46:22 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 19 Nov
 2025 14:46:21 -0800
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 19 Nov
 2025 16:46:21 -0600
Received: from amd-BIRMANPLUS.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, 19 Nov 2025 14:46:20 -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: 94f3541f-c599-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=D6pdPn0lX0G72L/NgQ972YX2rREjmPusC6fo1HPQmDBnRa3T2XEZzpQ8hbyABGl02kOnZm6ixrYWpbCvwUyB2lxfm+sDmbd5idPJl0Y1dBIiRV4wNjJbY5ix7STxOvDjuKCpEr5xXCZHJVau8U+U7n1I0y/0fkBbldJ3D471Qy25DkC+w3EY/rQ+lO9076atq1sjkLt2JM90XJhfZWZz9g/Jx3rQyYUiBZgBF3v8s/x9ALP7wNUS/v6GH0HUH0GH7NtPkauVnGqyyASLHGws+Q7FTFVamABmlc+ps4p53SdLs5QLA3ZSwiOf38p3eO/5pt+UkG68opaZ5LQnuZfkDw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0Jc7jSgi9oFlLTE+/8M413tkZoZeYTb/nTYdwbRMV2g=;
 b=tYZ0ggGNGpZRRhCx9FmcIhQXqPezyiNsZVSB1wnPINmFhEd5E/JaDoyj/2F5ayl6cEGsy/c0EkqAlTtAbOrN4K4z54wDpzSn5Sh+joT3T1yGIDVH/bZQ4v7cXwvkrtTw1umQ5hrvsW6DlkWfz4KT1KsIJiqZs6UJUFirjVT958o8wBAgvtYq7rloGEJZvUJBetSq6WZypU1wPQ6wVOM2x0DT1oTWdd0GNw38lM6BOavO8wYMBSEqmws1q4p93pcElI3oUQOi4M3RiQqh4jpQz5kmYDGX5S8QkalwOmy6tmTYGsbebFKRwYHGiDRrqz6ck6vrQLA8lmgQIYN3FZyRpg==
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=0Jc7jSgi9oFlLTE+/8M413tkZoZeYTb/nTYdwbRMV2g=;
 b=5JkRGdIblZPIlG2oz9dHJR0iSCYwKInmzazb+thN2WwkJHpYVA5daXXkAmmO6rnREFtVxPOxgNGdW4hVllc9htiYkyPFb19Q8+xj+xKpXSjJX5nLQfOJ0gysaDAvd4g+pHqmcf5TulS/yHZvf0WlKOXhsKevkQg3jpVfJTKUP6Q=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>
CC: Yann Sionneau <yann.sionneau@vates.tech>, Jason Andryuk
	<jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>,
	<linux-kernel@vger.kernel.org>
Subject: [PATCH 1/2] xenbus: Use .freeze/.thaw to handle xenbus devices
Date: Wed, 19 Nov 2025 17:47:29 -0500
Message-ID: <20251119224731.61497-2-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251119224731.61497-1-jason.andryuk@amd.com>
References: <20251119224731.61497-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000042AD:EE_|PH0PR12MB5678:EE_
X-MS-Office365-Filtering-Correlation-Id: 67d5c2f8-24c6-4b04-74fb-08de27bd76bc
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?Id+LCTrbsvcX2IT4nFK94uUOT9WKUd/RkIDBFYYJivl5sO2z+OKDnw7zWpyu?=
 =?us-ascii?Q?H+AmhBresYelwRY7jD5eoKhK+aJDRGZ7+xgyH4s8tH9hE2rurkZFlbkJlWxx?=
 =?us-ascii?Q?mDoPJmHy6Ds3AKzn9DbKuy/PQHoycyT1UzJNM2C9TX3B8F9CU77+7UeQrx/5?=
 =?us-ascii?Q?4T7YyL1+ET8nVgHhFvStbolk36cDxsgiLibQlU5BwwF1AEVyRdhro4TJ1RjC?=
 =?us-ascii?Q?lh00U+ZUf8CnoooFGD/SzJ/PRCWWmkuw3KAusBhE3f2rAV3TwN/jrMJGj4vS?=
 =?us-ascii?Q?RVaw61SsYpBY1IyLU+cZxnjl/NC4CFmtgR6bUc4V0jnmmebb7/EkFwCXbeOO?=
 =?us-ascii?Q?8d+XIxWEVmlAEZc2euOvKx5uCuDBZ3qmzyciwJzwdFNuqFYh8ayx5/Z2rzg/?=
 =?us-ascii?Q?4tQJZ2h0/mdrxcxhqAG02ZL5gvMVuzaDdP8Gbd7F4VSfMWHfAbFUrPGB9IwI?=
 =?us-ascii?Q?TLboR41ueiZMbualhHjAZOU9DBWSbcfjIV+Id95srOpumMTZ+F9S2sCAfymp?=
 =?us-ascii?Q?mFOU4LiW0iMnCcPc2n4IOew8kGHMhQZJB3kVIdzDzDjyNlww5Ltbna5ESSl3?=
 =?us-ascii?Q?YWgnvD7qVuhNpW1UcQOJfaGLpxz4WIoCGspge9UBXUvCLeDok8UQOI85lfBT?=
 =?us-ascii?Q?IOkERW0yAwlJ87cAt6XKotZlz0mSjmjUKI0gsRFU+OWf7M+5IHXbfstGmQVa?=
 =?us-ascii?Q?yKNNlOGRIQqD4bSGA15kAT1f5qt/XIdyWHkk+aISzb7DxpD0eDEf46DcIq7Z?=
 =?us-ascii?Q?9CXAW8BTsxym4JYtasvvIoa/mhCO1+lBi93syQTPVFfLj7N/r3Fip2qE5OzR?=
 =?us-ascii?Q?dIF07zuX82H4wEi6MZmw3yeLCRzJcDNLFqv+yzqNdz74mid+qkBzHZ1VBVqu?=
 =?us-ascii?Q?tH7Cu6tyHIzvUZ08/W9OmINLcvWiv6q6BO/xn4pvVYXaItPJ//hLZfLeG+Lr?=
 =?us-ascii?Q?xq+2oovPlBYIZ8TPEEZ1jj3Xm1o0blcNYCzOvjy5VhxJyWKd3U8Ad8Cb7yoL?=
 =?us-ascii?Q?LEV//q4/It+diT+DW3rgnekHnKFFDI9xLyx32CC4GkUCbtMCUQXBOJrdBLIT?=
 =?us-ascii?Q?AS9oGQeZ/9Ega7kqfhoPVLH4Vmn3o3XsYNupq/TsAOeIw+STwxNb4ZBlgHSy?=
 =?us-ascii?Q?uEFb7ZzuKdGTd9oH1txuym0OppzyRnuJ/dY9PykTI0KrcC5qF5KPx2cCcg0L?=
 =?us-ascii?Q?1irkg5SSGxbhVTMDW9YSQ0o1fE+0bjb8Yq+78ObwXVgT+qNo82p1bbjtOWeA?=
 =?us-ascii?Q?3Hq9+H5DaV+0xzL2BP3Q1cciquydvSm/6mXaOBRBlaFcNy2EHfOQdRz3wtfG?=
 =?us-ascii?Q?DXXy2b4TjNnsLOZyA34ofh5lVGMC0LzJalYB23/h4UVSE2AqvovCpvnfvc3i?=
 =?us-ascii?Q?Nx0MIB3DVCKr+gDx0qjoKHIJGrXOXnoPkwfUZwbPHXXtNNMiQ7clX5bXIyga?=
 =?us-ascii?Q?MHgZv63KU3O2p+cLoZKirANsTNKzuqzkXtd03xS4A+2PYzCHkXfp2s3QzoOI?=
 =?us-ascii?Q?k53GMk10CxnGdIYcReVNeVkcGMEti2iHthlM7lZOp30QQa6AqdS8/0Ae4FXM?=
 =?us-ascii?Q?XOVBwATEqcjNA1K2JaU=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2025 22:46:22.6215
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 67d5c2f8-24c6-4b04-74fb-08de27bd76bc
X-MS-Exchange-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:
	CO1PEPF000042AD.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB5678

The goal is to fix s2idle and S3 for Xen PV devices.  A domain resuming
from s3 or s2idle disconnects its PV devices during resume.  The
backends are not expecting this and do not reconnect.

b3e96c0c7562 ("xen: use freeze/restore/thaw PM events for suspend/
resume/chkpt") changed xen_suspend()/do_suspend() from
PMSG_SUSPEND/PMSG_RESUME to PMSG_FREEZE/PMSG_THAW/PMSG_RESTORE, but the
suspend/resume callbacks remained.

.freeze/restore are used with hiberation where Linux restarts in a new
place in the future.  .suspend/resume are useful for runtime power
management for the duration of a boot.

The current behavior of the callbacks works for an xl save/restore or
live migration where the domain is restored/migrated to a new location
and connecting to a not-already-connected backend.

Change xenbus_pm_ops to use .freeze/thaw/restore and drop the
.suspend/resume hook.  This matches the use in drivers/xen/manage.c for
save/restore and live migration.  With .suspend/resume empty, PV devices
are left connected during s2idle and s3, so PV devices are not changed
and work after resume.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
 drivers/xen/xenbus/xenbus_probe_frontend.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c
index 6d1819269cbe..199917b6f77c 100644
--- a/drivers/xen/xenbus/xenbus_probe_frontend.c
+++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
@@ -148,11 +148,9 @@ static void xenbus_frontend_dev_shutdown(struct device *_dev)
 }
 
 static const struct dev_pm_ops xenbus_pm_ops = {
-	.suspend	= xenbus_dev_suspend,
-	.resume		= xenbus_frontend_dev_resume,
 	.freeze		= xenbus_dev_suspend,
 	.thaw		= xenbus_dev_cancel,
-	.restore	= xenbus_dev_resume,
+	.restore	= xenbus_frontend_dev_resume,
 };
 
 static struct xen_bus_type xenbus_frontend = {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 22:46:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 22:46:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166461.1492989 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLqwc-0005p4-7T; Wed, 19 Nov 2025 22:46:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166461.1492989; Wed, 19 Nov 2025 22:46:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLqwc-0005nx-43; Wed, 19 Nov 2025 22:46:34 +0000
Received: by outflank-mailman (input) for mailman id 1166461;
 Wed, 19 Nov 2025 22:46: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=y3JJ=53=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vLqwb-0005mA-47
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 22:46:33 +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 96a5a95b-c599-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 23:46:30 +0100 (CET)
Received: from BY3PR04CA0009.namprd04.prod.outlook.com (2603:10b6:a03:217::14)
 by SA0PR12MB4461.namprd12.prod.outlook.com (2603:10b6:806:9c::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 22:46:25 +0000
Received: from CO1PEPF000042A7.namprd03.prod.outlook.com
 (2603:10b6:a03:217:cafe::bf) by BY3PR04CA0009.outlook.office365.com
 (2603:10b6:a03:217::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.10 via Frontend Transport; Wed,
 19 Nov 2025 22:46:25 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF000042A7.mail.protection.outlook.com (10.167.243.36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Wed, 19 Nov 2025 22:46: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; Wed, 19 Nov
 2025 14:46:24 -0800
Received: from amd-BIRMANPLUS.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, 19 Nov 2025 14:46: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: 96a5a95b-c599-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=R1Bzm4mYyRodsEcfMAw3HM9qIRAGE4Ud+s3bGgPiHkaf99SlcVIm92Y6TZrEokNdaGxiOGsK13PPvsUQuTJjgclh548gQPx9RDxHRiKAxfSKXNJuSOeiwF0Ee1n6MyKo9gyBrLdn2/Iv9bgWt6z2qv/gEcl9TIFlJBbG/vovRESVdL0/8/vVqxXmuNi0n2+xrTvzHQsCW1QVCLUO186DCHuW5J/IV+yPY7sCjdZkXa7RGGd20CNEAFkc7yIUp6yPA7mtxc0eN/Cp9U5LB27J/tCsa3bU7XjaxEVzKF8XUFAupOf16edjHZ6qw8GhroUzWWqAxFv2Q/nnEAoJlpIsCA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mr/274oyZ5Wa2jLCKf2Aq4943b2cFZOS6TfYwrRDfOY=;
 b=bIl9XnUwQrjIJ7wl+y4iHoXwSgh4ggH6mReM+R7ET23xOEp1wDvHNGObm3TwkiUyiCv5QaOS1TspyW0Fn4XvmkaQq2myW2FfUAWsQfBQoLkaJa4y/T0jRj1URjurQYcFP9uWj78jS9A/gpoJopEfwR41qKGS6WyCvi9VT81l+QgrTw50JTREQUyj9eny5X4CharIkv4oCCenVX0XPCo+AvXQS/LdL1sWe4NioQ0v0CfvlyWHSKNgAEXLn3jOUvsgvv1Rxq3alWHfT7w65Q3ZR2ebUVuMTMydw4tzdyStjAjfzsZOwE+sGhuphOvfbZty9NjGRMFvodz8hHsvk/xpJg==
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=mr/274oyZ5Wa2jLCKf2Aq4943b2cFZOS6TfYwrRDfOY=;
 b=bDxoAG8hrzJZPESeh629S2jgl6VIEDDSFCA+ya33wVKpGg5lb/vUIxBdHGx48/hVVqL/6gz6BHQgF1h95Azb+4bwZ8a3/sFrEZ1rKGfqOFYP8JC7m8CD23wZkwZmNbDhzXdVvPGBJ6lyJAK6XXwtoURqMMH59lVCUvnLb33UPAU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>
CC: Yann Sionneau <yann.sionneau@vates.tech>, Jason Andryuk
	<jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>,
	<linux-kernel@vger.kernel.org>
Subject: [PATCH 2/2] xenbus: Rename helpers to freeze/thaw/restore
Date: Wed, 19 Nov 2025 17:47:30 -0500
Message-ID: <20251119224731.61497-3-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251119224731.61497-1-jason.andryuk@amd.com>
References: <20251119224731.61497-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000042A7:EE_|SA0PR12MB4461:EE_
X-MS-Office365-Filtering-Correlation-Id: d6046ba1-3f0b-4830-0456-08de27bd780b
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?XL6wnrk6aec0HA5EoxR82vcf0G4qpBk0CwymLfRdCaVngee8TdKTMH5I3vgk?=
 =?us-ascii?Q?rsYSamXvAII/3cwTrMUTml6+l+0uO32INg3veM0zXsiDWNRylALlw14IkTso?=
 =?us-ascii?Q?sX6tv6LDHhBwL7bor+00womrEydltyPaiLCzdJGInsMOPnEW+LY+jX/tGa0X?=
 =?us-ascii?Q?AmparFlYR2xxSgdH3xBE1eoLgH32jNPgYN/K5w/fYCdc4t2I6PFqaanmp4O5?=
 =?us-ascii?Q?Sw+xehItqwsnlsMkYEazoORBu+g3YMOnMJ7GSBwDMy6eNsvg8jIHe8bWAX+v?=
 =?us-ascii?Q?Pd9fCsUaGPOMPXxhlwZARrteXqp28+jMZkmORb8yipaTVPtX/nVvhsuaGzJ5?=
 =?us-ascii?Q?A4+QX3ACskGfM1gQOKR2hNBsWnllWoA4ly7IidiWsgOHI3h6S2EjSYH8h4pt?=
 =?us-ascii?Q?P6JsnRkv2rCH8GSay2ODVOkwXSwXterUsEAKWwrDIpulvqjOjAUPxZmQNIqY?=
 =?us-ascii?Q?WBWg4g3O33py28unfoiCAjH6A/wlc4loRSls0Jjwq7ZFmi38ahoSz/mZ3VHF?=
 =?us-ascii?Q?8ZLMBmeH86j/3YaQoSLHQLX8fsbi/DoEkCf5qPWb6lVUlCKXPNe1aTxZ1j5p?=
 =?us-ascii?Q?fgaKHUVLA8WQuQSEo+kfMwwLHtqvYob7XjfiImmed3qu7rHULiPx2DhPMzSw?=
 =?us-ascii?Q?xmjc7hkyFVMdE6c0rnAUz7O63Aj3gT8hqhPqA6XdYrSvLK9iehuaOvpGDMqL?=
 =?us-ascii?Q?yJiK0kOaxZtvPoCseL2oRV/jXKSaL2NDlEfiOr9m6qk0BGZc9PR1dubADF18?=
 =?us-ascii?Q?CkUx7Tmtbkt7dh24prOKXDp8X/tALBNzvnsyHxRZqcVrgxalGywnDIoGLm1O?=
 =?us-ascii?Q?g5GNd22eOs343l2HxQBG041VH4iHB/rCAYfOy0nFh73oZEgvNjQ9OHfpUeJW?=
 =?us-ascii?Q?V6j/tAefmkfku7jU3N+cgangaO7xK0eebsF3IwQ0A7LvJIWzrjfO9VSEHO6d?=
 =?us-ascii?Q?4fJ+nzpo/ueDKGZyBEQMZ5iYmcSZZziJMUjgEagEezN1zh3OOaZclIc+vJdy?=
 =?us-ascii?Q?1ZxqtP5gQ7qBUR5xCnH9pS6zqf/jb71teWgHgfU1LS53AQz4rlRZwipCt054?=
 =?us-ascii?Q?MJ8ddbEYzJjrADU3A3ZtJr+4uSKhYlr21vnK371WoB5hCW/1pZliG4583I/b?=
 =?us-ascii?Q?utifeQ64ErDNdEmbEm4SXVazT1Nm9O3ZH6U8NCYQVpAuH41GAgIDtgFhz9rK?=
 =?us-ascii?Q?BT3lm/GpstspD/Iw7LRAkVhgEx0P9zsV9KPKzq7192vaqrqopI6AGFFSAF+G?=
 =?us-ascii?Q?6eIOSuHh9iSVJaqkcL6qDhlpqmmHv6M33nMenIzaGZdh3nqDTSZJDLqjLRGB?=
 =?us-ascii?Q?8++0BzBUMecRahYN6xzHhscjqEMLjyAp7dGobwBUUZRnuc4btRZpwu7CRIMt?=
 =?us-ascii?Q?5d8TX9lhhv3wirOiHXffPTfk8XisVYIA30fyQu2EDIOaOY99WyebHpX//8tC?=
 =?us-ascii?Q?c8jvFtdiSw4cfwjgCryzvTaMmndr7orNEEhVnNc5HedRyqdY1akjOdm5d7SU?=
 =?us-ascii?Q?zqZcbcwlAcPTKSP0D1AnXvgYsTmZaiC4X832u7WVZIsg9gMLAmQ6Qo5QHaYJ?=
 =?us-ascii?Q?SCSm1U9505p6gL8VHcw=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2025 22:46:24.8152
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d6046ba1-3f0b-4830-0456-08de27bd780b
X-MS-Exchange-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:
	CO1PEPF000042A7.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4461

Rename the xenbus helpers called from the .freeze, .thaw, and .restore
pm ops to have matching names.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
We could continue renaming and change struct xenbus_driver
.suspend/.resume to .freeze/.restore.  Thereis only the single callback,
and it would be more churn, so I did not do it.
---
 drivers/xen/xenbus/xenbus.h                |  6 +++---
 drivers/xen/xenbus/xenbus_probe.c          | 22 +++++++++++-----------
 drivers/xen/xenbus/xenbus_probe_frontend.c | 16 ++++++++--------
 3 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/drivers/xen/xenbus/xenbus.h b/drivers/xen/xenbus/xenbus.h
index 9ac0427724a3..daba7f5e05c4 100644
--- a/drivers/xen/xenbus/xenbus.h
+++ b/drivers/xen/xenbus/xenbus.h
@@ -120,9 +120,9 @@ int xenbus_probe_devices(struct xen_bus_type *bus);
 
 void xenbus_dev_changed(const char *node, struct xen_bus_type *bus);
 
-int xenbus_dev_suspend(struct device *dev);
-int xenbus_dev_resume(struct device *dev);
-int xenbus_dev_cancel(struct device *dev);
+int xenbus_dev_freeze(struct device *dev);
+int xenbus_dev_restore(struct device *dev);
+int xenbus_dev_thaw(struct device *dev);
 
 void xenbus_otherend_changed(struct xenbus_watch *watch,
 			     const char *path, const char *token,
diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index 86fe6e779056..9f9011cd7447 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -668,7 +668,7 @@ void xenbus_dev_changed(const char *node, struct xen_bus_type *bus)
 }
 EXPORT_SYMBOL_GPL(xenbus_dev_changed);
 
-int xenbus_dev_suspend(struct device *dev)
+int xenbus_dev_freeze(struct device *dev)
 {
 	int err = 0;
 	struct xenbus_driver *drv;
@@ -683,12 +683,12 @@ int xenbus_dev_suspend(struct device *dev)
 	if (drv->suspend)
 		err = drv->suspend(xdev);
 	if (err)
-		dev_warn(dev, "suspend failed: %i\n", err);
+		dev_warn(dev, "freeze failed: %i\n", err);
 	return 0;
 }
-EXPORT_SYMBOL_GPL(xenbus_dev_suspend);
+EXPORT_SYMBOL_GPL(xenbus_dev_freeze);
 
-int xenbus_dev_resume(struct device *dev)
+int xenbus_dev_restore(struct device *dev)
 {
 	int err;
 	struct xenbus_driver *drv;
@@ -702,7 +702,7 @@ int xenbus_dev_resume(struct device *dev)
 	drv = to_xenbus_driver(dev->driver);
 	err = talk_to_otherend(xdev);
 	if (err) {
-		dev_warn(dev, "resume (talk_to_otherend) failed: %i\n", err);
+		dev_warn(dev, "restore (talk_to_otherend) failed: %i\n", err);
 		return err;
 	}
 
@@ -711,28 +711,28 @@ int xenbus_dev_resume(struct device *dev)
 	if (drv->resume) {
 		err = drv->resume(xdev);
 		if (err) {
-			dev_warn(dev, "resume failed: %i\n", err);
+			dev_warn(dev, "restore failed: %i\n", err);
 			return err;
 		}
 	}
 
 	err = watch_otherend(xdev);
 	if (err) {
-		dev_warn(dev, "resume (watch_otherend) failed: %d\n", err);
+		dev_warn(dev, "restore (watch_otherend) failed: %d\n", err);
 		return err;
 	}
 
 	return 0;
 }
-EXPORT_SYMBOL_GPL(xenbus_dev_resume);
+EXPORT_SYMBOL_GPL(xenbus_dev_restore);
 
-int xenbus_dev_cancel(struct device *dev)
+int xenbus_dev_thaw(struct device *dev)
 {
 	/* Do nothing */
-	DPRINTK("cancel");
+	DPRINTK("thaw");
 	return 0;
 }
-EXPORT_SYMBOL_GPL(xenbus_dev_cancel);
+EXPORT_SYMBOL_GPL(xenbus_dev_thaw);
 
 /* A flag to determine if xenstored is 'ready' (i.e. has started) */
 int xenstored_ready;
diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c
index 199917b6f77c..f04707d1f667 100644
--- a/drivers/xen/xenbus/xenbus_probe_frontend.c
+++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
@@ -91,14 +91,14 @@ static void backend_changed(struct xenbus_watch *watch,
 	xenbus_otherend_changed(watch, path, token, 1);
 }
 
-static void xenbus_frontend_delayed_resume(struct work_struct *w)
+static void xenbus_frontend_delayed_restore(struct work_struct *w)
 {
 	struct xenbus_device *xdev = container_of(w, struct xenbus_device, work);
 
-	xenbus_dev_resume(&xdev->dev);
+	xenbus_dev_restore(&xdev->dev);
 }
 
-static int xenbus_frontend_dev_resume(struct device *dev)
+static int xenbus_frontend_dev_restore(struct device *dev)
 {
 	/*
 	 * If xenstored is running in this domain, we cannot access the backend
@@ -112,14 +112,14 @@ static int xenbus_frontend_dev_resume(struct device *dev)
 		return 0;
 	}
 
-	return xenbus_dev_resume(dev);
+	return xenbus_dev_restore(dev);
 }
 
 static int xenbus_frontend_dev_probe(struct device *dev)
 {
 	if (xen_store_domain_type == XS_LOCAL) {
 		struct xenbus_device *xdev = to_xenbus_device(dev);
-		INIT_WORK(&xdev->work, xenbus_frontend_delayed_resume);
+		INIT_WORK(&xdev->work, xenbus_frontend_delayed_restore);
 	}
 
 	return xenbus_dev_probe(dev);
@@ -148,9 +148,9 @@ static void xenbus_frontend_dev_shutdown(struct device *_dev)
 }
 
 static const struct dev_pm_ops xenbus_pm_ops = {
-	.freeze		= xenbus_dev_suspend,
-	.thaw		= xenbus_dev_cancel,
-	.restore	= xenbus_frontend_dev_resume,
+	.freeze		= xenbus_dev_freeze,
+	.thaw		= xenbus_dev_thaw,
+	.restore	= xenbus_frontend_dev_restore,
 };
 
 static struct xen_bus_type xenbus_frontend = {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 19 22:48:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 19 Nov 2025 22:48:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166481.1493006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLqyJ-0006mC-Kv; Wed, 19 Nov 2025 22:48:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166481.1493006; Wed, 19 Nov 2025 22:48:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLqyJ-0006m5-H8; Wed, 19 Nov 2025 22:48:19 +0000
Received: by outflank-mailman (input) for mailman id 1166481;
 Wed, 19 Nov 2025 22:48: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=y3JJ=53=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vLqyH-0006lz-UA
 for xen-devel@lists.xenproject.org; Wed, 19 Nov 2025 22:48:18 +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 d4a71e21-c599-11f0-980a-7dc792cee155;
 Wed, 19 Nov 2025 23:48:15 +0100 (CET)
Received: from DM6PR10CA0002.namprd10.prod.outlook.com (2603:10b6:5:60::15) by
 BY5PR12MB4114.namprd12.prod.outlook.com (2603:10b6:a03:20c::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Wed, 19 Nov
 2025 22:48:01 +0000
Received: from DS1PEPF00017096.namprd05.prod.outlook.com
 (2603:10b6:5:60:cafe::9c) by DM6PR10CA0002.outlook.office365.com
 (2603:10b6:5:60::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.10 via Frontend Transport; Wed,
 19 Nov 2025 22:48:01 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 DS1PEPF00017096.mail.protection.outlook.com (10.167.18.100) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Wed, 19 Nov 2025 22:48:01 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 19 Nov
 2025 14:48:01 -0800
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 19 Nov
 2025 16:48:00 -0600
Received: from [172.27.232.218] (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, 19 Nov 2025 14:48:00 -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: d4a71e21-c599-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bMFrCf89FuDLkpS6yCiDHwUtcVvslD6Ir/I9E/cbZz+cjvF7B+XT+hQhNR9LR4oPKawt8IZw10ZwJwumX2pkPfunmMEdEIz3GqPhf9yVTSWhpdAdJJcv94+AlU5vIA7GzY+8mb+OvhsIZqP6o0nknRQRC9fJy6upIqFgHtVjIoNvE3dUNsQbbNQ/a67yBTkWxbopV3eJYRcvJgSz394tJId31v3zQqOu//2kN6rtJ1EltLZYAEenY8IEWHyh0esa12xsM4JBicTzLUFzoQ4rZNjsOfaie0xgpVAUldif+BFw+MgVNJI8eCZ0Mk+D1KYsJp/0YXihUw/3HphlA6jmbQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CxTZ3E6qf3AJrBjrl2JcXEXmHe+j/ntA1ZrKOpbSnvY=;
 b=Rz0pEYIoqezXqjGgFKE9pksUIV9NamKaThS5k8jtWcE+xNnJfUZghzrpl74vU3CdN+pMCzlWuGvrFyR0ZnWwDcgOIKE/QaQcAUlQThYaWMiK+Tfi0hFsc/y0aksC0VUrjxYRgHSzGc0dTTvUONxyD8+cCGnpu/cKSRIcOiYdF2q4lIO6FnXC0fqxxx0Sg5wowTDk9e34hoD1opByXNypajjl8JBdFGd7yjDsTzAacBHNqeTPanE6vsEX+cw/T2kD4sUQ1Kr8VGqvie9EsvkIU3466nVb/bajBEHJz48SngSfJVSeeok3GHG7nJSIA3iLoxwhqyzQUlP+mEjb+xQ78w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=vates.tech smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CxTZ3E6qf3AJrBjrl2JcXEXmHe+j/ntA1ZrKOpbSnvY=;
 b=VIzzygL19ExHm4Re6sH0Q5gjKuaNw62h5GcWZKf+7YuAG5oEXZ3zGnKVm4YKo0SCigy5sxnCybleBl7Ekl/PD4Nr58Eb8A7wM1n+oTSrYZPaWlXv0YrNVii4+Wu7VP4NlxmB11Xtm4wbGZ0QrGoSiK+J/o8dWA3prguPsr22dKY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <596ea613-5f09-42cf-88e3-0cb7a4220ff1@amd.com>
Date: Wed, 19 Nov 2025 17:48:01 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: domU suspend issue - freeze processes failed - Linux 6.16
To: Yann Sionneau <yann.sionneau@vates.tech>, <xen-devel@lists.xenproject.org>
References: <aKiBJeqsYx_4Top5@mail-itl> <aKiBwEsogK420kwo@mail-itl>
 <05e9628d-83e5-4feb-881d-5854b72bd560@suse.com> <aKi6Foj-Lx_n0L6l@mail-itl>
 <aNEgTgis2JeyQ4HA@mail-itl> <8f6b8f08-ca62-467b-a6be-4d33208e5393@epam.com>
 <aNPyW5a7BHni-SuI@mail-itl> <32097dc9-761f-4319-9fa8-6bcb15c06a82@vates.tech>
 <45fbc094-f90a-415d-abd8-8e1404251530@amd.com>
 <36d3599b-f8d8-496a-88a1-d64a4fa6e37a@vates.tech>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <36d3599b-f8d8-496a-88a1-d64a4fa6e37a@vates.tech>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PEPF00017096:EE_|BY5PR12MB4114:EE_
X-MS-Office365-Filtering-Correlation-Id: 57ed61fc-d6d8-427c-3132-08de27bdb199
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:
	=?utf-8?B?S2NSTW5MK0grTEdmWHY1WmhzRTIxNFhCTUUwN1RBbnRDNmZxUWJoM1BGQ25G?=
 =?utf-8?B?eFZFM0tiSUF1Z015UVorSXcxeDRmd05nZWhoN2R1ZVdGWkpFb2N2SmpCSHoz?=
 =?utf-8?B?TDVRcVVGdC9jcnpDZ2pReVdROVpmL2hnVUpqa3BCVTA1TFhBWk9WMDZxOGdo?=
 =?utf-8?B?OVArbDhUWVJwZll6VHhpTXNqb2t1WDlXZHZ6VTVPSXZyb1RMOVFJRzNCdGdl?=
 =?utf-8?B?T2NzYUc1d0FNWGNzTk42TXlUM1VFUHRFM3VOMy9TVzgxUGJuMUxMZmIrd1l5?=
 =?utf-8?B?akR1K29Va2tDVlJmT1R5emIvRGlTNk1vMmd6L2VYcTl6dVZlZW9md2Q2SkdG?=
 =?utf-8?B?L1RqR0g2dXhOWituOEJEeGI1R3U0aktRaXdQSkZIQXQxd2tUd0VwOUw0WGJX?=
 =?utf-8?B?YVgzbkl2UnE1S0dPRStQQW56OFA1MWFXSVNlSUxxQ2I1Q3RxeWNCU1NUVkRE?=
 =?utf-8?B?L0tpaDZlZVR2RGsxOS9UZ3A4a1o5WUNFVFltUWxZNy9ZTXpjMjJoY3dNK2lL?=
 =?utf-8?B?dzNYdTByRkhkWFBXMnN4ZEFQU3Q3ZlM4c21DSkd0OStTT0ZXeC81VnUwTGxJ?=
 =?utf-8?B?QUVaeUlyV2lDQ05VbUgzNDBuakpWWTlSTm1QSjNlZWt1eUowWUNxU215V2M2?=
 =?utf-8?B?OUt0R0RnWUhvOG0wbTFkcFdzWWdsS3JEYlNIcDMxcFZIdFNYKzJDQnJGNnUv?=
 =?utf-8?B?aVRvWm5oOEdTUkwvNi92NEdpMHRHSnp4dEI2NEt0M2NtM3NYSVIyOFArSXNC?=
 =?utf-8?B?NldFR3Q2UVBzcytsU0JrQTM5UVJMN3BWczBQdzNETzNFUXdWeW5Tb0VBemMr?=
 =?utf-8?B?SXFkYWFzWnlTZHdSU0dDcHhNcG1mbzZlY0U0dTVrV3RDZGx1SlRvWXpJWXlu?=
 =?utf-8?B?YXlralVBQ3VISXpERVFUaStvL1JQcGswNVZHeGhDc2IwU3B4RWlsZEt2OVBI?=
 =?utf-8?B?VmVpSUtTaWJnOHdCY21ETzFnSzZRSHF4WEhNRjFLNlQwVWxXSElQcFZUdmUz?=
 =?utf-8?B?d0pQemFmY1A5UlgzRVM4K2Z6VmxyM0pxZ2N0NXIvekJTdXhlUlE4UjN3em5T?=
 =?utf-8?B?RlZYRlpyMXZhY2xSZUpLQ0t1YkZ4aTR3cTNGSURkeWRQQkcyMWYyVVdsTjZv?=
 =?utf-8?B?YzFGS1M5ZVZyc0xDWElmTFpxQVgzT3lXbjMrOEdwY0VjdnF3c3pLOG1wbTEw?=
 =?utf-8?B?cU5JNURxNE9QMVlmUnBCUDUwQkIwS1d1SzNwbU9YNHYxVlBDVDYwSlFTb1M2?=
 =?utf-8?B?dDJqY0JUd212VzNnVnVqbUhYUWRQN0tHRUt1cU5kSjVEVW5VSitWM2wybTdw?=
 =?utf-8?B?ZVYzRDVHSUowNFloekFDWGhodVVSaHh1NFdWNEd6RWJlR0ZQajZQRXFCQXZ0?=
 =?utf-8?B?d1FsblZrcUlyVmxYR3Q0ODdHNXFZUUgrVGFrOGMyR2FkNnd6bFB1YmlvQ1pn?=
 =?utf-8?B?Njdmb3hFdFp5VFN1TVNwZXNEaFFGS3A4eU1tMGNzMzFJL0NxYzZHYUtoVEtZ?=
 =?utf-8?B?dllaQ1BPZHFPQTJ3ZFp2b0JGR1hJK1BTY2owVjkxQllSMEQwT3k2aERkakdC?=
 =?utf-8?B?TVBIQ256c2tEaHlvKzR5RnBZa3dQOFYwdUhXY01RQVRocWtRc05IWjEzNnVN?=
 =?utf-8?B?NU5RNnUrajdYMXNreWVFR3VIM2pHWjdMUHNJenhBM3Z3NXhVK29OV1dqQ1pn?=
 =?utf-8?B?TTNzKzIxOUtSUCtrSVYxci9xMEhzYjZ2NjY1WGVoeGlCVFMyWUZKYkdkWThT?=
 =?utf-8?B?c3RHUHM4MmNyelVTZm9QMCtmbnJ2QU1obVJFWGMvWDhiRzlGTEpYcG1xSDgr?=
 =?utf-8?B?MjZPMjE4SU5POHNnN0ZpUW9qYTFha0xWaTJvSWVoR2c2elU4TXJwN0NtbXZU?=
 =?utf-8?B?bVcxZUhoVk15aVYxc3gzL3BlQ3UvMnlUOHNCM3JqaTdncFJwRHJ1ZjhzdmJh?=
 =?utf-8?B?akd1UVZtUWI0dElLUlRCWjdqR2J5RUp4NkxBR0l6MWRIOUlBNVRqbHZNbXdE?=
 =?utf-8?B?WHhQMUFRdmkrbldUcHNHREptQSt2dzVoMm8vcXhlNmtoTUI2ajRiRWJJbEJL?=
 =?utf-8?B?a3RNMVJzc0U2MXZNcWpIQnIyckJoZmt0K3pCUFhPdGMyTGdmT0VDR0hTTVJx?=
 =?utf-8?Q?PM7/O8DS0w3/of17EIwQEOAkH?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700013)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2025 22:48:01.4289
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 57ed61fc-d6d8-427c-3132-08de27bdb199
X-MS-Exchange-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:
	DS1PEPF00017096.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4114



On 2025-11-13 10:55, Yann Sionneau wrote:
> On 10/6/25 16:28, Jason Andryuk wrote:
>> On 2025-09-24 10:28, Yann Sionneau wrote:
>>> On 9/24/25 15:30, Marek Marczykowski-GÃ³recki wrote:
>>>> On Wed, Sep 24, 2025 at 01:17:15PM +0300, Grygorii Strashko wrote:
>>>>>
>>>>>
>>>>> On 22.09.25 13:09, Marek Marczykowski-GÃ³recki wrote:
>>>>>> On Fri, Aug 22, 2025 at 08:42:30PM +0200, Marek Marczykowski-
>>>>>> GÃ³recki wrote:
>>>>>>> On Fri, Aug 22, 2025 at 05:27:20PM +0200, JÃ¼rgen GroÃŸ wrote:
>>>>>>>> On 22.08.25 16:42, Marek Marczykowski-GÃ³recki wrote:
>>>>>>>>> On Fri, Aug 22, 2025 at 04:39:33PM +0200, Marek Marczykowski-
>>>>>>>>> GÃ³recki wrote:
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> When suspending domU I get the following issue:
>>>>>>>>>>
>>>>>>>>>>  Â Â Â Â Â Â Â  Freezing user space processes
>>>>>>>>>>  Â Â Â Â Â Â Â  Freezing user space processes failed after 20.004
>>>>>>>>>> seconds (1 tasks refusing to freeze, wq_busy=0):
>>>>>>>>>>  Â Â Â Â Â Â Â  task:xlÂ Â Â Â Â Â Â Â Â Â Â Â Â  state:D stack:0Â Â Â Â  pid:466
>>>>>>>>>> tgid:466Â Â  ppid:1Â Â Â Â Â  task_flags:0x400040 flags:0x00004006
>>>>>>>>>>  Â Â Â Â Â Â Â  Call Trace:
>>>>>>>>>>  Â Â Â Â Â Â Â Â  <TASK>
>>>>>>>>>>  Â Â Â Â Â Â Â Â  __schedule+0x2f3/0x780
>>>>>>>>>>  Â Â Â Â Â Â Â Â  schedule+0x27/0x80
>>>>>>>>>>  Â Â Â Â Â Â Â Â  schedule_preempt_disabled+0x15/0x30
>>>>>>>>>>  Â Â Â Â Â Â Â Â  __mutex_lock.constprop.0+0x49f/0x880
>>>>>>>>>>  Â Â Â Â Â Â Â Â  unregister_xenbus_watch+0x216/0x230
>>>>>>>>>>  Â Â Â Â Â Â Â Â  xenbus_write_watch+0xb9/0x220
>>>>>>>>>>  Â Â Â Â Â Â Â Â  xenbus_file_write+0x131/0x1b0
>>>>>>>>>>  Â Â Â Â Â Â Â Â  vfs_writev+0x26c/0x3d0
>>>>>>>>>>  Â Â Â Â Â Â Â Â  ? do_writev+0xeb/0x110
>>>>>>>>>>  Â Â Â Â Â Â Â Â  do_writev+0xeb/0x110
>>>>>>>>>>  Â Â Â Â Â Â Â Â  do_syscall_64+0x84/0x2c0
>>>>>>>>>>  Â Â Â Â Â Â Â Â  ? do_syscall_64+0x200/0x2c0
>>>>>>>>>>  Â Â Â Â Â Â Â Â  ? generic_handle_irq+0x3f/0x60
>>>>>>>>>>  Â Â Â Â Â Â Â Â  ? syscall_exit_work+0x108/0x140
>>>>>>>>>>  Â Â Â Â Â Â Â Â  ? do_syscall_64+0x200/0x2c0
>>>>>>>>>>  Â Â Â Â Â Â Â Â  ? __irq_exit_rcu+0x4c/0xe0
>>>>>>>>>>  Â Â Â Â Â Â Â Â  entry_SYSCALL_64_after_hwframe+0x76/0x7e
>>>>>>>>>>  Â Â Â Â Â Â Â  RIP: 0033:0x79b618138642
>>>>>>>>>>  Â Â Â Â Â Â Â  RSP: 002b:00007fff9a192fc8 EFLAGS: 00000246 ORIG_RAX:
>>>>>>>>>> 0000000000000014
>>>>>>>>>>  Â Â Â Â Â Â Â  RAX: ffffffffffffffda RBX: 00000000024fd490 RCX:
>>>>>>>>>> 000079b618138642
>>>>>>>>>>  Â Â Â Â Â Â Â  RDX: 0000000000000003 RSI: 00007fff9a193120 RDI:
>>>>>>>>>> 0000000000000014
>>>>>>>>>>  Â Â Â Â Â Â Â  RBP: 00007fff9a193000 R08: 0000000000000000 R09:
>>>>>>>>>> 0000000000000000
>>>>>>>>>>  Â Â Â Â Â Â Â  R10: 0000000000000000 R11: 0000000000000246 R12:
>>>>>>>>>> 0000000000000014
>>>>>>>>>>  Â Â Â Â Â Â Â  R13: 00007fff9a193120 R14: 0000000000000003 R15:
>>>>>>>>>> 0000000000000000
>>>>>>>>>>  Â Â Â Â Â Â Â Â  </TASK>
>>>>>>>>>>  Â Â Â Â Â Â Â  OOM killer enabled.
>>>>>>>>>>  Â Â Â Â Â Â Â  Restarting tasks: Starting
>>>>>>>>>>  Â Â Â Â Â Â Â  Restarting tasks: Done
>>>>>>>>>>  Â Â Â Â Â Â Â  xen:manage: do_suspend: freeze processes failed -16
>>>>>>>>>>
>>>>>>>>>> The process in question is `xl devd` daemon. It's a domU serving a
>>>>>>>>>> xenvif backend.
>>>>>>>>>>
>>>>>>>>>> I noticed it on 6.16.1, but looking at earlier test logs I see
>>>>>>>>>> it with
>>>>>>>>>> 6.16-rc6 already (but interestingly, not 6.16-rc2 yet? feels
>>>>>>>>>> weird given
>>>>>>>>>> seemingly no relevant changes between rc2 and rc6).
>>>>>>>>>
>>>>>>>>> I forgot to include link for (a little) more details:
>>>>>>>>> https://github.com/QubesOS/qubes-linux-kernel/pull/1157
>>>>>>>>>
>>>>>>>>> Especially, there is another call trace with panic_on_warn
>>>>>>>>> enabled -
>>>>>>>>> slightly different, but looks related.
>>>>>>>>>
>>>>>>>>
>>>>>>>> I'm pretty sure the PV variant for suspending is just wrong: it
>>>>>>>> is calling
>>>>>>>> dpm_suspend_start() from do_suspend() without taking the required
>>>>>>>> system_transition_mutex, resulting in the WARN() in
>>>>>>>> pm_restrict_gfp_mask().
>>>>>>>>
>>>>>>>> It might be as easy as just adding the mutex() call to
>>>>>>>> do_suspend(), but I'm
>>>>>>>> really not sure that will be a proper fix.
>>>>>>>
>>>>>>> Hm, this might explain the second call trace, but not the freeze
>>>>>>> failure
>>>>>>> quoted here above, I think?
>>>>>>
>>>>>> While the patch I sent appears to fix this particular issue, it
>>>>>> made me
>>>>>> wonder: is there any fundamental reason why do_suspend() is not using
>>>>>> pm_suspend() and register Xen-specific actions via
>>>>>> platform_suspend_ops
>>>>>> (and maybe syscore_ops)? From a brief look at the code, it should
>>>>>> theoretically be possible, and should avoid issues like this.
>>>>>>
>>>>>> I tried to do a quick&dirty attempt at that[1], and it failed
>>>>>> (panic). I
>>>>>> surely made several mistakes there (and also left a ton of todo
>>>>>> comments). But before spending any more time at that, I'd like to ask
>>>>>> if this is a viable option at all.
>>>>>
>>>>> I think it might, but be careful with this, because there are two
>>>>> "System Low power" paths in Linux
>>>>> 1) Suspend2RAM and Co
>>>>> 2) Hybernation
>>>>>
>>>>> While "Suspend2RAM and Co" path is relatively straight forward and
>>>>> expected to be always
>>>>> started through pm_suspend(). In general, it's expected to happen
>>>>>  Â Â  - from sysfs (User space)
>>>>>  Â Â  - from autosuspend (wakelocks).
>>>>>
>>>>> the "hibernation" path is more complicated:(
>>>>> - Genuine Linux hybernation hibernate()/hibernate_quiet_exec()
>>>>
>>>> IIUC hibernation is very different as it puts Linux in charge of dumping
>>>> all the state to the disk. In case of Xen, the primary use case for
>>>> suspend is preparing VM for Xen toolstack serializing its state to disk
>>>> (or migrating to another host).
>>>> Additionally, VM suspend may be used as preparation for host suspend
>>>> (this is what I actually do here). This is especially relevant if the VM
>>>> has some PCI passthrough - to properly suspend (and resume) devices
>>>> across host suspend.
>>>>
>>>>> I'm not sure what path Xen originally implemented :( It seems like
>>>>> "suspend2RAM",
>>>>> but, at the same time "hybernation" specific staff is used, like
>>>>> PMSG_FREEZE/PMSG_THAW/PMSG_RESTORE.
>>>>> As result, Linux suspend/hybernation code moves forward while Xen
>>>>> stays behind and unsync.
>>>>
>>>> Yeah, I think it's supposed to be suspend2RAM. TBH the
>>>> PMSG_FREEZE/PMSG_THAW/PMSG_RESTORE confuses me too and Qubes OS has a
>>>> patch[2] to switch it to PMSG_SUSPEND/PMSG_RESUME.
>>>>
>>>>> So it sounds reasonable to avoid custom implementation, but may be
>>>>> not easy :(
>>>>>
>>>>> Suspending Xen features can be split between suspend stages, but
>>>>> not sure if platform_suspend_ops can be used.
>>>>>
>>>>> Generic suspend stages list
>>>>> - freeze
>>>>> - prepare
>>>>> - suspend
>>>>> - suspend_late
>>>>> - suspend_noirq (SPIs disabled, except wakeups)
>>>>>  Â Â Â  [most of Xen specific staff has to be suspended at this point]
>>>>> - disable_secondary_cpus
>>>>> - arch disable IRQ (from this point no IRQs allowed, no timers, no
>>>>> scheduling)
>>>>> - syscore_suspend
>>>>>  Â Â Â  [rest here]
>>>>> - platform->enter() (suspended)
>>>>>
>>>>> You can't just overwrite platform_suspend_ops, because ARM64 is
>>>>> expected to enter
>>>>> suspend through PSCI FW interface:
>>>>> drivers/firmware/psci/psci.c
>>>>>  Â Â  static const struct platform_suspend_ops psci_suspend_ops = {
>>>>
>>>> Does this apply to a VM on ARM64 too? At least on x86, the VM is
>>>> supposed to make a hypercall to tell Xen it suspended (the hypercall
>>>> will return only on resume).
>>>>
>>>>> As an option, some Xen components could be converted to use
>>>>> syscore_ops (but not xenstore),
>>>>> and some might need to use DD(dev_pm_ops).
>>>>>
>>>>>>
>>>>>> [1] https://github.com/marmarek/linux/
>>>>>> commit/47cfdb991c85566c9c333570511e67bf477a5da6
>>>>>
>>>>> -- 
>>>>> Best regards,
>>>>> -grygorii
>>>>>
>>>>
>>>> [2] https://github.com/QubesOS/qubes-linux-kernel/blob/main/xen-pm-
>>>> use-suspend.patch
>>>>
>>>
>>> On my setup I get a weird behavior when trying to suspend (s2idle) a
>>> Linux guest.
>>> Doing echo freeze > /sys/power/state in the guest seems to "freeze" the
>>> guest for good, I could not unfreeze it afterward.
>>> VCPU goes to 100% according to XenOrchestra
>>> xl list shows state "r" but xl console blocks forever
>>> xl shutdown would block for some time and then print:
>>> Shutting down domain 721
>>> ?ibxl: error: libxl_domain.c:848:pvcontrol_cb: guest didn't acknowledge
>>> control request: -9
>>> shutdown failed (rc=-9)
>>>
>>> Do you think it's related to your current issue?
>>
>> idle=halt on the Linux command line addresses the 100% CPU usage.Â  Or
>> alternatively C2 needs to be implemented for guest vcpus.Â  I forget
>> preceisely, but I think the 100% CPU is because there are no C-states
>> available and Linux/cpuidle won't use halt by default.
>>
>> To wake up, you need a wake up source.Â  The ACPI buttons presses will do
>> that:
>> xl trigger $dom power
>> xl trigger $dom sleep
>>
>> However, I think without changes, domU s2idle/S3 will detach all its PV
>> devices.Â  Naturally they don't get reconnected on resume.Â  You can hack
>> around that to skip the detach.
>>
>> Actually, maybe we just need:
>> --- i/drivers/xen/xenbus/xenbus_probe_frontend.c
>> +++ w/drivers/xen/xenbus/xenbus_probe_frontend.c
>> @@ -148,8 +148,6 @@ static void xenbus_frontend_dev_shutdown(struct
>> device *_dev)
>>   Â }
>>
>>   Â static const struct dev_pm_ops xenbus_pm_ops = {
>> -Â Â Â Â Â Â  .suspendÂ Â Â Â Â Â Â  = xenbus_dev_suspend,
>> -Â Â Â Â Â Â  .resumeÂ Â Â Â Â Â Â Â  = xenbus_frontend_dev_resume,
>>   Â Â Â Â Â Â Â  .freezeÂ Â Â Â Â Â Â Â  = xenbus_dev_suspend,
>>   Â Â Â Â Â Â Â  .thawÂ Â Â Â Â Â Â Â Â Â  = xenbus_dev_cancel,
>> -Â Â Â Â Â Â  .restoreÂ Â Â Â Â Â Â  = xenbus_dev_resume,
>> +Â Â Â Â Â Â  .restoreÂ Â Â Â Â Â Â  = xenbus_frontend_dev_resume,
>>   Â };
>>
>> b3e96c0c7562 ("xen: use freeze/restore/thaw PM events for suspend/
>> resume/chkpt") changed from PMSG_SUSPEND/PMSG_RESUME to PMSG_FREEZE/
>> PMSG_THAW/PMSG_RESTORE, but the suspend/resume callbacks remained.Â  But
>> freeze and suspend being identical doesn't seem correct.
>>
>> This would leave xl save/restore/migrate using the hibernate freeze/
>> thaw/resume.Â  S3/s2idle would no touch the PV devices, so they would
>> still be present on resume.Â  Maybe there are cases I am not thinking of
>> though.
>>
>> Regards,
>> Jason
>>
> 
> Hi all,
> 
> I finally took time to try what you guyz advised, thanks for all the
> answers!
> 
> So, I tried this on a clean Debian 13 VM install on a XCP-ng 8.3 (Xen
> 4.17.5 with local patches) host.
> 
> 1/ Just booting with idle=halt/nomwait/poll didn't help with waking up
> the VM, it kept being in a weird unwakable state. Even providing xl
> trigger power/sleep events. Although I reckon you were saying it would
> help with the CPU@100% and indeed I don't see this anymore.

Yes, just 100% CPU.

> 2/ Just applying QubesOS patch
> https://github.com/QubesOS/qubes-linux-kernel/blob/main/xen-events-Add-wakeup-support-to-xen-pirq.patch
> did help *a bit*. Hitting a key would wake the VM, then show again the
> Debian desktop, with some flickering, allowing to move the mouse and bit
> and hitting some keys on the keyboard ... then it would very quickly
> completely freeze and stay dead.

I think this is needed for dom0 s2idle, but not for domU.

> 3/ on top of previous patch, applying your modification (removing
> .suspend, .resume and changing .restore to xenbus_frontend_dev_resume):
> then tadaaa I can wake the VM and it stays alive afterward. It seems it
> fixes the issue (I did not test for very very long though).
> 
> Thanks for the help on this!
> What do you think we should do to move this forward? Submit those
> changes to upstream Linux? That will take long to end up in distros...

I submitted the patch for #3.  Yes, it'll take a little while to get to 
distros, but I don't see any other choice here.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 00:44:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 00:44:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166499.1493015 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLsmQ-0005Dd-1R; Thu, 20 Nov 2025 00:44:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166499.1493015; Thu, 20 Nov 2025 00:44:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLsmP-0005DW-Ur; Thu, 20 Nov 2025 00:44:09 +0000
Received: by outflank-mailman (input) for mailman id 1166499;
 Thu, 20 Nov 2025 00:44: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=ChS/=54=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vLsmO-0005DQ-BT
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 00:44:08 +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 037df58b-c5aa-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 01:44:04 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM6PR03MB5084.namprd03.prod.outlook.com (2603:10b6:5:1ed::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.21; Thu, 20 Nov
 2025 00:44:00 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.009; Thu, 20 Nov 2025
 00:44:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 037df58b-c5aa-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yhe6HUwHyx1UoPCCmiVvIwOtfxKz/+6zrut1EiWU+Z6v1pGQ5pBQ+B74gpAB7BLll7iZm1iEUaVn/JK70N0NV824+jQ1nUmg9HiMiXj2j0h2gy5zGjIDSR49vn9Th/nLkI80bRuTlg657hbqPX3m0wCygHGlmEq/xeJ7QmIBPr4eRRZ/w5ZFUarFKf2AJh5eD2mvjm07WOnOBbVgJU+Svq/WWITYl3Zua8q7ADP6C5Q9tl8Iys6ez9wVIAHGlgs0JmDbKgMdT0AW474lJ7lwS/baFota3ibzO7G/eMl0XIp/LDqo5pIatd9CziC7R4dIDTQr3pNEc9oE0tpQLOUfOg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vBPIfW6iK6zy4J8PunQCqJZKDVGEefEGQ/IaJIui6e0=;
 b=ra5lc/kdPVV8NKgXykxzFwH2G/7R3flUax59rRqX4qtdwLviOH93n9BdswGFPH4Pwmelcwt/Fq6PRNcV+ASiS+eIk1JGgt/TBCGubIbAVE1NHwLWnFGJQP4Aa68eN4YJlK5S8Vo+ijw2BVxya+zKwGkYK5/HEuDByNZsJc3rX0f3Al7maWMAoDesSkeEJPVOp3nYTRU/9g18RvvdFS2pdumpOn0dmcGZKcbcveHMiTvRN0YN77/ZdRkdzQjMUWLwiI8sJpklDR+cOolPBBCxnT82bjOx7GVlzG2RaqfOk97/2Sh8Utpn3Wv+D+FLYSPoL92Rp9fY5ffYuWFtQu/GcA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vBPIfW6iK6zy4J8PunQCqJZKDVGEefEGQ/IaJIui6e0=;
 b=jfDHwomxgiLFe7TnXZhPHZJsV2LPoQh1I3vXZvau/yHe8AD8mYg5+AatbR3VpVPIljQWcqyquf5sOeicGDBySfB2UYoZNS0Xse8W9iH81Sp5Zb5n8VoGjlwjQ1CAXj67sG03DSCKV4H+OprDc6gysauSHBhLj0dkZ4cZvZIMiH4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <ded843d3-465b-419a-9342-cb3a35a2d880@citrix.com>
Date: Thu, 20 Nov 2025 00:43:57 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: Fix EFI buildid alignment
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20251119191235.863187-1-marmarek@invisiblethingslab.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251119191235.863187-1-marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0183.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a4::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_|DM6PR03MB5084:EE_
X-MS-Office365-Filtering-Correlation-Id: 2eca5da9-4b6c-40b0-c15b-08de27cde578
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?ZmJmYzIzNFM2T0FiM1o3YU5iTTUzbGpmSXExdUZUaHY2R1FPWTBTb1BVdUow?=
 =?utf-8?B?QTZMdXBpNEJpWmVuZFllMmpBZlM1RCtVb1B6dzRmZnJHOEJCeXNPRHM5Vk8z?=
 =?utf-8?B?MEdtQUZWNnBGRU13UFVySmNOTVZRdXI4OStwYUQvYjNnZEtKS25pQ0FpWkQ1?=
 =?utf-8?B?ZVc4MUNIS0F4azFFbmRHb0wzSitLT1FEc2RSMmk4RDZVdTZURW1PY1JHQ2ZM?=
 =?utf-8?B?aktacjVlZ3pOWWRTOHByOUxzZTNBT2lNNkZUN1lYR0duVStCRUpmWWFTV1g3?=
 =?utf-8?B?Z0ZKTkNzcW1idmd4SUdvb1I4MnpielhiRHpDYmZkbkRZRkh6VEoxakM4QUZ3?=
 =?utf-8?B?Qmd3T3ZiUWMya2puRXdVak9MaHc4N0x1WTBnR3lnWm01cjA4d3ppekpzNDV4?=
 =?utf-8?B?UlFBZVhxNkRuekQ3RC81T0piWmcydkJPdVdleCtFK0dZUytuSVIwSk1mS2Ft?=
 =?utf-8?B?d0dqNDV3aTlUeVhVUzZFQnRCc3YyRHlmS2x2VXpCSDl5VGtIcmlkMjdqOHdm?=
 =?utf-8?B?blFmcDJvQ2RrTFhzU28wM2J6Z015YmZkVTZnZmJqRTNLQ3VJb0VEKytvcm5r?=
 =?utf-8?B?ZW1ydHZsQVhYNDhCZEpiMXZsWWR1VUx1MkdRY2FFdXUyTnFKV0tTaGJuTklQ?=
 =?utf-8?B?TzBrL1dqNnJMeUN0SzlpVkpud1ZiclhZTDNwcUl4Q2lvMUVEb0l5Q29RZzB6?=
 =?utf-8?B?dEtIcmwvTFYwRWVpais5ZzFOTGJpMlkrcXNXUDdYZUdDRHhpSmI2TmpkaTJq?=
 =?utf-8?B?NDF6L1VoOURKQ3kxUmRieW92enI4R0RBY1RpNFMxdkJpRkloS3RqcUg5M3hw?=
 =?utf-8?B?SW9rbVc5enBKS1VzVThQc0ZnWG9ZTlMyTkg4VTR6Z0xYNGIyblVzRkJyM3Ft?=
 =?utf-8?B?YXRmRStZNUw0L2pDWWVvMW9zVW1ha3BnMG1Wa2hsMlIyNTBaSnY5K0RCMDBn?=
 =?utf-8?B?VFNRcmZXN1RKcW53YkNnODFLVGhqTHM5Z1FhaUlXRng2RWpUdlIyYzBEV2JD?=
 =?utf-8?B?V3dSVVlmbzBSSHcrZnl2ZjBuUnp0dE1GalhnZnFtVVFKbG5XSS80enJudVk3?=
 =?utf-8?B?Rjg0SmprRnQ5Z3N4NHFKUStDeUdCbmlsV1BITFAwOXBsdzZwcmlNTW54eHR4?=
 =?utf-8?B?WllaNE90cGlPZmRPdHhMMjNyZGROU3hsSDlzcUlzQStuanhhN3k5TlNWR2M1?=
 =?utf-8?B?YitlYXNjajdTT1B3VnQ5djc5aEFuZEJibUVibEZRRDR4ekk3TUd0ekdLTHRJ?=
 =?utf-8?B?WXhhY2dKYkt5ZlFLeVU1N0drY1JSMUhsdFpGcWQ0b0VEeU51d3E0aWhXM0Fk?=
 =?utf-8?B?RXF3SjJNcmJCS0t5SG5nakExbHBOdXhDYUhodTROc3JVaHpQQ0hVTXZKdHFC?=
 =?utf-8?B?S2dsbFY5TzFabWF2aUtWZEhzSlQ1Q0l3SyszU24vU3hoRzdMT0NCS2lZRS9S?=
 =?utf-8?B?elFjMVRmVlVZWGRWRFUvdVZtRkRuY2kxQzZLWktZbmlRMm4rU2NTNTNhMDkz?=
 =?utf-8?B?UHdnOTF2TDlYZmkycWhwWjltWUo0N2RVZk5nRDRZbDQ3Rkpac01ybmhCUzJa?=
 =?utf-8?B?UkQrMThaWjl6QUVuMWhTVUNlOEVMa0N4b2JTMW9vbkptcEtPNWJybHpKNXZX?=
 =?utf-8?B?Q1RjK2F0ZnlnbEk3RnUxRkl5N09hNFhRQi9RcHZQSHlpRGdqWXBJZURUWG5p?=
 =?utf-8?B?Zzd5dEtWekJkV3dHOTU2aVB1VkwwK2pWSzN3UGk0OWNBbVdDbGg0VzJhalNX?=
 =?utf-8?B?MUV4Ykd4RFJIb3ptTkkwaFVicjRYYmlFZ0FabXNvRE5OWGl3OXNQZjFPSWcy?=
 =?utf-8?B?VGRtanp1RUNkWEVDN29xaStWaUJZVkYvTmhkWTlENzcvSE5YdVNsenN5RXk4?=
 =?utf-8?B?S3Q1Qm54QjVBSWNxWUp6RXA5dnJnK0FUMlNwWHBMM1lKVFUrMGRqUENoZDh2?=
 =?utf-8?B?Q1pVWmdJcGpoMkZzTWdtSWlsR0xaL3FWcGVCeVM3SGxMUk8xSys3ek5NK3dS?=
 =?utf-8?B?dGJOK0JETm9RPT0=?=
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?RGt6MS9oZ3dzQjBTbEpKUnhSeGlvVGs5QzlrYndxcjUvMldiNC9ObjdxWDRP?=
 =?utf-8?B?Rk5vdXpBNk5aMjV6SmdzNUp3eXAvQzgyVFpud3RldVhwUFg3enB6cERwYmJB?=
 =?utf-8?B?ZU53U0F0eER0R2Q1S0xIT29RanRxWTlkL3M4THJPZFI5a21RemRJTno5Q0xX?=
 =?utf-8?B?K2RJTG5kQ0NOM0FONjFKN05vSzBoWWJjS0xudjRBcjNmOGc4bnZWVzM1QTVk?=
 =?utf-8?B?L1o1eExTazB4UjlGL0FVY01pUDREeVY3U0FSaUhjenZCd1ZLN05UVzB1d2xL?=
 =?utf-8?B?RDFiMVNxV051K3N4eDQ0R0NqRzg2TXh3KzhpekFLcjc3VU0vMzl3OXo2V3No?=
 =?utf-8?B?Uy84emdlTm5vMTlJR1l5UnB3K0ZpWnF3bHhRaVVHV0YwaWJ4YWxkckFrWTl3?=
 =?utf-8?B?T3J5V2FsbEQyNk1nQmszdWZGdFVmNERXZHUzeEJSSWFFZFhIbjhuc2RnbDhl?=
 =?utf-8?B?NlVvUkxZNUJhWjRmNzEzUGFJNnl4VkxETVh4andMVFZFQXBkZndYWXBBdHov?=
 =?utf-8?B?RFhVOUV4ZXBGUloxbk5VTUZ5ZVNoQUtYM0EzMkNBV2JaUEg4SWVTTHJXenF6?=
 =?utf-8?B?ck96RG0zczdBSVpNN1VmZDJhemlKNGl5WFVWbGlVT0Y3VE96bEpUa2JzVncz?=
 =?utf-8?B?VnNnbHNmeWVTbHUrNng3N0NYaDRKcms0WU5mK2dhQ2VGWjJ6NmlKYTNXQkNQ?=
 =?utf-8?B?S0RVQkVPOTBTNDV4d0cwZ1V6WE1paEUvRk5qenJ4VWduVmZQYlJWWFhUT29t?=
 =?utf-8?B?czBNUzVkNW1MVTI3VFRsQzhXMS8zRUxQMUpKOEUydi9lclBWVVByQmdpd0g0?=
 =?utf-8?B?NDdlWmtUUjJxaklzU09BU0pQMFdmQU1jNnJIMU1DTlJ2WUtsakFyOCt6K1pI?=
 =?utf-8?B?Zm1UZm1pOW9pUFRuZVQ3N3ZML2FQMUxXcW9tUHcxcnNYam1JaU1wOE56anJz?=
 =?utf-8?B?RkxidXJQOGp1NzcxVXhjZjZvc1Z3cjk3NWx2VDJtVFhKV1Zna3ltN3lGcGhT?=
 =?utf-8?B?Y1RUV3VlN05LMWoxTWF2K1o4NFlaZHh2RVd6aC9zRy8zQW81WWNQU3pWWXgx?=
 =?utf-8?B?eml1MUlwZUNKYlFuVTJlaG5ycjdJZzFQQXNpUnd0MTFIbHJrNEc5VG8ydnQ0?=
 =?utf-8?B?UmQ3Q0dNa1MrcmRMZWxmYTBwQSs5Mnk0SXFzK1pJa25pMEdJYm52UE9HZkt4?=
 =?utf-8?B?eXhFOHhscmRwYW1uWGtQSGdKakZ5U0cyUXBxVC9ndXFncXRic2E5WURKMEts?=
 =?utf-8?B?MkM2anpRSGcyYjBpNEs2QllEcGpyT3FKTVpMR21XTDZVczc5dnNZL0d4YzVK?=
 =?utf-8?B?TjR5bWNOZG52MUpiRmpDMUJmUE9SazlDQk1zNko4VzZ6eXRrZGxMNlVkVTFl?=
 =?utf-8?B?bUZPY0R2R3UzVWhSOU5ianZSVmVXSytvRkpTQkU2dktJcHlseVFqUGc1N2xm?=
 =?utf-8?B?YmtkSyt6dE9ka1Jyb25JQ3pHOGplbkEzWlFNTEhFS1d6QWdkVTdnNWt2cGVO?=
 =?utf-8?B?M1R2VkZYNWJ4TFN5QlZ6L2lQOEpNOWxBdjVUbFUyaFczZlBLNG9aQ0xUdmlD?=
 =?utf-8?B?RnAyWktNbTY2UXYvVGJQRGt6c2VTRGlLaTdsMEs4WWF6dkRIR1dMaWtyaDRS?=
 =?utf-8?B?b0pQUm5BWUZjRTkxbFY4bVRyazNSZ1JoeGRiTDhLWnA4TUhleEV2b1BtbmhX?=
 =?utf-8?B?UnlkdEtjdmhkQUpQd1k2NjArU0xxWllsY053cXp2M0pwWmtZak1aTm82K01s?=
 =?utf-8?B?c0ViQ3hSM3pWNTI3ekN3OGNFU215aTFNTHo5dVdTN04ySDl6L0JGYXhKUEVC?=
 =?utf-8?B?L3hRL3FUUjF3dk15S2JLZGNPOE5mQzAva2wrTzlocXQ5VWJ3dTQ1ajlyNWdz?=
 =?utf-8?B?NVRGMS9ET29jenlxY0I4dzd1RlJDUGlhc2Nkcnh1TXNyTnN3Y0oyWkxiek1G?=
 =?utf-8?B?NmxrdDRJYTY2N1NhU1pHcEI5ZEdCOHozeVg5ZDlpdmZmZ0thOVJaWWhmRFpj?=
 =?utf-8?B?bEN5WWx2VXYyM09rMWJWL1JVVTZFZ2pFVnZzRXQrMlZNVFN5YTdrVWdJQ2h3?=
 =?utf-8?B?OCtjMEczTFdvVzVjY3FUK0liTGowdVdZZlN6TDdpMGpUb254UVFyemU4b0VX?=
 =?utf-8?B?eVlrbisyK2RHMWx0YnVObk1pKzJuNU50aThPRzhrdmE0cHlvODNpU296Nlk0?=
 =?utf-8?B?QXc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2eca5da9-4b6c-40b0-c15b-08de27cde578
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 00:44:00.6550
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9VT+0ujPD8MtrtFHcXw8oTUd3VbUbpmCGh8eiA8klovoc7QEF5v6bZcrTJWim4ak2wjjmNm3IotV+rwVBzg+JoS9zsR6y5Ntklabvbh8yDM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5084

On 19/11/2025 7:12 pm, Marek Marczykowski-GÃ³recki wrote:
> Old binutils get confused about .buildid overlapping (in VA space) with
> earlier section. That confusion results in weird errors down the road,
> like this one:
>
>     objcopy: xen.efi: Data Directory size (1c) exceeds space left in section (8)
>
> While the bug is fixed in later binutils version, force alignment of the
> buildid to avoid overlapping and make it work with older versions too.
> This can be reverted once toolchain base is raised at or above binutils
> 2.36.
>
> Details at:
> https://lore.kernel.org/all/3TMd7J2u5gCA8ouIG_Xfcw7s5JKMG06XsDIesEB3Fi9htUJ43Lfl057wXohlpCHcszqoCmicpIlneEDO26ZqT8QfC2Y39VxBuqD3nS1j5Q4=@trmm.net/
>
> Signed-off-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
> Fixes: eee5909e9d1e ("x86/EFI: use less crude a way of generating the build ID")

We typically put these tags in the other order.Â  I can fix on commit.

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>, although...

> ---
> While the actual bug apparently is in binutils, the commit mentioned in
> Fixes: tag introduced part that triggers that bug.
> ---
>  xen/arch/x86/xen.lds.S | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
> index 5d02f83a409c..967f9167f757 100644
> --- a/xen/arch/x86/xen.lds.S
> +++ b/xen/arch/x86/xen.lds.S
> @@ -171,6 +171,8 @@ SECTIONS
>         __note_gnu_build_id_end = .;
>    } PHDR(note) PHDR(text)
>  #elif defined(BUILD_ID_EFI)
> +  /* Workaround bug in binutils < 2.38 */

... this says 2.38, but the commit message says 2.36.Â  Which one is it?

~Andrew

> +  . = ALIGN(32);
>    DECL_SECTION(.buildid) {
>         __note_gnu_build_id_start = .;
>         *(.buildid)



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 01:34:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 01:34:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166513.1493025 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLtYh-0002SU-L7; Thu, 20 Nov 2025 01:34:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166513.1493025; Thu, 20 Nov 2025 01: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 1vLtYh-0002SN-I5; Thu, 20 Nov 2025 01:34:03 +0000
Received: by outflank-mailman (input) for mailman id 1166513;
 Thu, 20 Nov 2025 01:34:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RcKq=54=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vLtYg-0002SH-HI
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 01:34:02 +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 fc70d2c9-c5b0-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 02:33:59 +0100 (CET)
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 613107A01CA;
 Wed, 19 Nov 2025 20:33:58 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-02.internal (MEProxy); Wed, 19 Nov 2025 20:33:58 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 19 Nov 2025 20:33: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: fc70d2c9-c5b0-11f0-9d18-b5c5bf9af7f9
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=1763602438;
	 x=1763688838; bh=wuJD3DSi8OYU3lUxQFLU0p35HJ4OYc6gCIDGnNAlOPM=; b=
	QDFrUVPP+LNUgAZmD50+3ugOYMpuL5Qgt8BZGi1Ue5B9EScrpVuWepB60btVWvyT
	jMq7h7v4W56nTq9s+Fw6nwPwNfo7k+scurhlpMgoAI5eE6YKw6QB8LOl3MyyVCKL
	5KydYlIqH0TkA/mTSUgtljQZi8ivcS3kN1O/SnIqOrQdslDIyOOZrrFFRS4tUzTx
	7b/ewHHeq2mBbV/JQPX4g+Y+xcBGmjGo921kC+RFrj2VF2ne7dXQS3RBRQaz1345
	RkuqbUMga1+mKuKrkBBu9s2bDmSI0aorErfZhldw4BSBU6FitamUZjZDjTLbn0LT
	HSnm5KdYLPo9KeDt+mbpDg==
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=
	1763602438; x=1763688838; bh=wuJD3DSi8OYU3lUxQFLU0p35HJ4OYc6gCID
	GnNAlOPM=; b=Mq/pv3uHH7BNGu4214QS1wxbjcQpJ5GxD9hIbP675ubuq/XoKf9
	jTsODOYmyD/qS8aNjIYAOMkfHwzaiikJ762u4hsxu/MOWpygqpSjO1d4I4x3rxlB
	+8B+hOBpXzKixRgOW1G3uT6LQ0nLNI4N1iqv9Ic18iUJw7LlfZ6G13C1+VS494/4
	+88LsYUJNeXU706JMOyDmpBzTyD1ucGR6HR0pL1KyHAIQ06m5FByFsx6PT74xZx2
	ZKorrV4l43LX7ehDIF1NhRQtQilLKsB3qWmIIg3i4+nMP4RGmKMvGUOUI/m6t8mD
	KAGbnFT+tUgpLH0DzAF2gv8V6DPcHcRwfEA==
X-ME-Sender: <xms:BXAeaRXhuk30CgPimr9cYnVJO3YAm4cm61zL9m1Vghlbgu5yZe4c4w>
    <xme:BXAeaYl0VRfcrAVk_fsGFGIKH6jKOwIYTe85mkLnQKcbQsJYGF3QEbsrhwmJ2OtqS
    ZqxObh0eNiTMQzJ1TtRJLRPWZR5vi5kORufZkh7-CFSRQtUtX8>
X-ME-Received: <xmr:BXAeaSbCS2AYLozmRcRNvmTW90tpK9AKzi8_ldOxPzNq7h1_jWA1qUObLGQZt545514sOwGwxkJuZA6YPkEA-xcOgakiFrUCy6w>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvvdehjeejucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepfffhgfeu
    ueffvdegudejgefhjeehvdekgfetgefgkeeguefgheejvefhfefhledunecuffhomhgrih
    hnpehkvghrnhgvlhdrohhrghdpthhrmhhmrdhnvghtpdhlughsrdhssgenucevlhhushht
    vghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesih
    hnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpdhm
    ohguvgepshhmthhpohhuthdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestg
    hithhrihigrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigv
    nhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtg
    homhdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
X-ME-Proxy: <xmx:BXAeaTPc19jXjcyR8GZoSAHWYVc3ffz5iRmlbpjYKvIRHVQ9OWFfeQ>
    <xmx:BXAeaXbJAyp_dcCMzljKHTsXqUC2EDUKawKq7hQPF8ikp-Ai1oa5Mw>
    <xmx:BXAeaR0Z-6XcA6s_kDZ63GnOiNn_qzrfD0Tsh_OtFC9s7tqDKxZXgA>
    <xmx:BXAeadfSIBk6HNveGQ7N3GHfHhre1Qm8TYLmsU1yzsU4G_mdpVnoxg>
    <xmx:BnAeaQmfYjnfS6X7WT1HhEx2nM1lR0RiOAvN3bYF6t6eRmjpmyLrw2pH>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 20 Nov 2025 02:33:55 +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, Jan Beulich <jbeulich@suse.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH] xen: Fix EFI buildid alignment
Message-ID: <aR5wA-9cdEO6gG3x@mail-itl>
References: <20251119191235.863187-1-marmarek@invisiblethingslab.com>
 <ded843d3-465b-419a-9342-cb3a35a2d880@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="DAa+bDPYJnjL4Miu"
Content-Disposition: inline
In-Reply-To: <ded843d3-465b-419a-9342-cb3a35a2d880@citrix.com>


--DAa+bDPYJnjL4Miu
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 20 Nov 2025 02:33:55 +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, Jan Beulich <jbeulich@suse.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH] xen: Fix EFI buildid alignment

On Thu, Nov 20, 2025 at 12:43:57AM +0000, Andrew Cooper wrote:
> On 19/11/2025 7:12 pm, Marek Marczykowski-G=C3=B3recki wrote:
> > Old binutils get confused about .buildid overlapping (in VA space) with
> > earlier section. That confusion results in weird errors down the road,
> > like this one:
> >
> >     objcopy: xen.efi: Data Directory size (1c) exceeds space left in se=
ction (8)
> >
> > While the bug is fixed in later binutils version, force alignment of the
> > buildid to avoid overlapping and make it work with older versions too.
> > This can be reverted once toolchain base is raised at or above binutils
> > 2.36.
> >
> > Details at:
> > https://lore.kernel.org/all/3TMd7J2u5gCA8ouIG_Xfcw7s5JKMG06XsDIesEB3Fi9=
htUJ43Lfl057wXohlpCHcszqoCmicpIlneEDO26ZqT8QfC2Y39VxBuqD3nS1j5Q4=3D@trmm.ne=
t/
> >
> > Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblething=
slab.com>
> > Fixes: eee5909e9d1e ("x86/EFI: use less crude a way of generating the b=
uild ID")
>=20
> We typically put these tags in the other order.=C2=A0 I can fix on commit.
>=20
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>, although...
>=20
> > ---
> > While the actual bug apparently is in binutils, the commit mentioned in
> > Fixes: tag introduced part that triggers that bug.
> > ---
> >  xen/arch/x86/xen.lds.S | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
> > index 5d02f83a409c..967f9167f757 100644
> > --- a/xen/arch/x86/xen.lds.S
> > +++ b/xen/arch/x86/xen.lds.S
> > @@ -171,6 +171,8 @@ SECTIONS
> >         __note_gnu_build_id_end =3D .;
> >    } PHDR(note) PHDR(text)
> >  #elif defined(BUILD_ID_EFI)
> > +  /* Workaround bug in binutils < 2.38 */
>=20
> ... this says 2.38, but the commit message says 2.36.=C2=A0 Which one is =
it?

2.36

> ~Andrew
>=20
> > +  . =3D ALIGN(32);
> >    DECL_SECTION(.buildid) {
> >         __note_gnu_build_id_start =3D .;
> >         *(.buildid)
>=20

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

--DAa+bDPYJnjL4Miu
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkecAMACgkQ24/THMrX
1yw1DAf9HI/2dqAmbNUhlxCqHuwEmycePCPH1vhGDek6zhK9IKj1yJkyEPJt3OdX
04U0iu8zYxj0HEmKRL3F6deIoD5cwfVyTmeAmW7qwYHLIK6h7bw/zY98L7x/lMzT
6x4PTjFj/Z2CH0ExY7kHzXRnHOaVJ4gIC7MwrOOx7rV1Rg8uFvGVNaKY5yQH/EV/
jZ1/67K9cN9K+Wbf0jL/oc5yJMsDX4diH2NC/Hkg40FR33nhFnifPYoTuCl5Ok3/
0iQTNODCKX8gze2vuZrb+hBYBAcyJnc0zFTPQ/sX03kuckw0rjQQpqH1ORz4Nz0L
MH1uWSGsneRVOa/LnhBAxD7Kp+ywwg==
=hECE
-----END PGP SIGNATURE-----

--DAa+bDPYJnjL4Miu--


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 04:10:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 04:10:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166526.1493034 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLvzo-0004dv-Fu; Thu, 20 Nov 2025 04:10:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166526.1493034; Thu, 20 Nov 2025 04: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 1vLvzo-0004do-Cw; Thu, 20 Nov 2025 04:10:12 +0000
Received: by outflank-mailman (input) for mailman id 1166526;
 Thu, 20 Nov 2025 04: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=sF88=54=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vLvzn-0004di-26
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 04:10:11 +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 cb3e9143-c5c6-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 05:10:06 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 CYYPR12MB8989.namprd12.prod.outlook.com (2603:10b6:930:c2::9) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.10; Thu, 20 Nov 2025 04:10:00 +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.9343.011; Thu, 20 Nov 2025
 04: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: cb3e9143-c5c6-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=X+eDAb8Yuz+sj1QbthWAc2qSFd5ogy8oMbuiBvHopl0edGjE1ntLHu/sQlK9Dt2ZLSizT+SHiUnDiVBUrQn0YB8fSYUFYgctOehdppVGlPDeap6WBwgW3eUlzmtWra5qJLNyqQ1RRw1RKJjrzhu2WltsUOYgfI9iz86tGUughjHtgDxv86oM3VMfObQqWzhcR9iZ/AxziTRTVuBT5iHcEBZmEAaSHPfqKN8lV4hrwkkrgOoZK0EU26WReCV37aOBWSF8l8ipv63XNLK7BjcC6dlwYy5jhyO1GvFbFznRXzZvfPMpepYS5ihNutfYuiG3goiqgLjaPmfT0NWv8jCFFw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bFztgpEeeeIvO7rAoYPXmnwqaR9zXoVttoavI78r6Bs=;
 b=uc7tsrDxCH0GQrCBEg3WfixGSGbr0e2NPv81mjYJuvHOCcfU/YteraMvuMzcvspLsmKGVn4vSersTdAWwNvUh8iWEGQ4IvD2so+Dmk9sF5E/yTbKnOkMSg7x2Ed1keP6Vn5gFe8caeefdeAiQ0fHTgXFQg70CteKbsSkkxhn64FLmm8OyGI2eLP3Ci5XYCYrVv3Sz/8KVy5YCzRPuM26Baq6RNub9ioenX7psXyPadMCySIsDBjEKOzeG8C/1ZOAQNeuKmAoNRTFzqWEwNfA7ViZa8O7WSezv9/n1flTl8gP+oqE8W104RswUzuGu8IINlOIvFdAwLNjmIpEznpGhQ==
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=bFztgpEeeeIvO7rAoYPXmnwqaR9zXoVttoavI78r6Bs=;
 b=hABrYTssWprybGL9dd/Lhqvnb0H0mXEZrMwEkBqb7iRnet3IMFwKrx7jghtbaflq+CEsXqh4lV+hCtxCOuHTQI1mTuSMpjexTgqhEZvUxfes4lk6r+GuGqvGg7JukVOBae7jNtAWD8gGqsjNDeVQRJrSmoC+NMwvQsEbMD1qWRo=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: "Andryuk, Jason" <Jason.Andryuk@amd.com>, Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "oleksii.kurochko@gmail.com"
	<oleksii.kurochko@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>, "Orzel, Michal"
	<Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v3 28/28] xen/domctl: wrap common/domctl.c with
 CONFIG_MGMT_HYPERCALLS
Thread-Topic: [PATCH v3 28/28] xen/domctl: wrap common/domctl.c with
 CONFIG_MGMT_HYPERCALLS
Thread-Index: AQHcPCqhC21cJdWa5E25eCgk7enLhrTazScAgB1wfK+AAAbwUIAAxogAgAIjbCA=
Date: Thu, 20 Nov 2025 04:09:55 +0000
Message-ID:
 <DM4PR12MB84515DFA314A150C4E0C5B45E1D4A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251013101540.3502842-1-Penny.Zheng@amd.com>
 <20251013101540.3502842-29-Penny.Zheng@amd.com>
 <c18cdb1c-f2b3-4eeb-b064-670c86e19e67@suse.com>
 <DM4PR12MB84511357C8F6FB1976244CA0E1D6A@DM4PR12MB8451.namprd12.prod.outlook.com>
 <ea81a0f2-d3d9-41f4-ae88-1426123129a6@suse.com>
 <DM4PR12MB8451B211FB0F01DD1F744502E1D6A@DM4PR12MB8451.namprd12.prod.outlook.com>
 <120bb273-60b2-4405-8db6-defc27715250@amd.com>
In-Reply-To: <120bb273-60b2-4405-8db6-defc27715250@amd.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-11-20T04:09:49.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|CYYPR12MB8989:EE_
x-ms-office365-filtering-correlation-id: 0272605d-767a-4c39-2ea6-08de27eaa971
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?a1grMzZHSWhoaUxZYUkzQ3NqcWdJRll1bzdpR1cxWWIvaFR4ZTFpdGtJYnhE?=
 =?utf-8?B?eUlDNUdVRENZb0tDU0wrNWw4cTg1ejBNS3lsUUdJS0N5eVFOd01JN081NGlm?=
 =?utf-8?B?U0xWczNjM01ndHdQTDk0eVBRMnZFcnY3MTJOZmxscTJSK0pYMEROd2I0Q1NU?=
 =?utf-8?B?NjVDSHNSWmY3UHFaNHc1UlZoMXZxU25SOVVDaG9TWkRwbmk2aFdiQ0lvUHVy?=
 =?utf-8?B?ZkZJMmVyZHppV3hYRVZqY0MyMW41ZGcxR3MwNWJOY2lwY1FiUkhscjFDOXpw?=
 =?utf-8?B?aXJQaUtVSHRCOTZGTFZsQ1FZTlVUTEFFY0tDTzBRM2JMTGNRQVBjVDNvOGFO?=
 =?utf-8?B?NXdJajl4NTNUQWRhTXIzaXo1R3J4NUdHZDBQbUplb3N0QVNDa25FRE9HdlR6?=
 =?utf-8?B?OUlYd0JCMjI0TDVFSlNQdCtXQ3Y2WXEzd0duN2NLRkV4Rm9Va3ZvVVhKV0dw?=
 =?utf-8?B?eXFoeFNMdDdoVXVFSm5JVTBLRjRQUzZ2OUk0SjJNdXNOVHpzVWpVY1BDSmt6?=
 =?utf-8?B?RGcyelYzWUJCRm14M2FpMUVBNHl1UnJvUm8rakNTZlJGMG5vWEVBUFp1dlRQ?=
 =?utf-8?B?b0U0U3YvL00yYW1zTmNaU2NMZUVEYkNaTlluM0J3SDc5L1d5QzB1RHdmekNv?=
 =?utf-8?B?b0NzV01KbCtaUDEwN2dhN1F5R1R1K2xnVVdmYXJLN2kyTFkyVHFpT2p3c2RJ?=
 =?utf-8?B?ZjZrVlRta1FBMlU4aFhFY3FhcjdNOTYrVmEyV3pLWlBUbzdIcHZ3VDArYnN0?=
 =?utf-8?B?TGhGdHd1SmRITnBtbEhMNVdRSXUreG9RN1Zydkk1VUMrUU5sVGxMbmhzSXg1?=
 =?utf-8?B?SUVWUitORnp2aUl0eXBhMlcrMG0zK2JxQnZRTDNjUmFMbnI2d20vcW5VaXBi?=
 =?utf-8?B?d0poMnpKenk0ZTA0VmlwRWxaZFJsL0NMV2lYUG5POWlXcTVrZXo5OVl4ZDhO?=
 =?utf-8?B?Zm1pQzVFTXdtZmJ4UXNOanpGcitZTVMwSHcrc2VLM2FqUi9MZUY1NXB4K0t4?=
 =?utf-8?B?eUZaNE9OdVdJZHhrU3JFcjRvMThBTlgzTWwzYTQ1cGFFSXA3dkp2WkluVzNx?=
 =?utf-8?B?T3p2YnVtN21mZlJRbEVwbml6eUlNU0J5MG1xRlR6cjRkM0pyQnl3cDFURmd3?=
 =?utf-8?B?Zk5pRDJjYmhRRHJ2Ym5hQk5wRG5vNnl0dm83QUdDUFUrcUw0UHhHRW8rbkli?=
 =?utf-8?B?ZEUxQndGcDlkcEQrdFZXZU5JYis3b2UxeTVtTWd6bUlhb3VpVWVkTFRPZ2ZL?=
 =?utf-8?B?M25rcEpteHg5V25US2cyVlBkY2FsdjVZc0tQQW81SXVHcWhLb3dtRlo1RStO?=
 =?utf-8?B?QUE5WEQxaWRhWE9jam9hZnpMcEpaY1hEQUF1V2FpSzhlUlJaRFJsNGdFTmY2?=
 =?utf-8?B?Z1dhS2ZKeEFmU1RoUnh5cnBnN0tENTc3TnVsTGZxVkRHbG9TRTFxNE95VFNo?=
 =?utf-8?B?YVBRSDNlZk9CdVg0M3J5em9IdzYxZTYxcEpud21VK3ZSeDZWNC81eEpvNmlH?=
 =?utf-8?B?NzZRK21od0VMeHFUaEJyZ2luSzk1aW1mUVFqRkt4eHVlclErK0NDanZ1czc5?=
 =?utf-8?B?a2Y4U0s2cXgyYXVLbVhmNFZBVVNtSkZLUGYySHZWcXZWUkZ0clJFMXFRZzZP?=
 =?utf-8?B?L3hUa3J4NlN3cEsrejBrTXNBbTQzYXFWN3ZMRGdyNndGeUFJaENuTlBoVGtY?=
 =?utf-8?B?S2xESkw1V1NZL0F6UEtMZlJmYjZidDhPdHp3RWp6TlltZ29SRG5pTVpRMmJL?=
 =?utf-8?B?bG4rN212NlNhZWFXZk1rUHFlbnZUcWp4MjllRU9WdWh5UXp2RXV5RHBQaEEy?=
 =?utf-8?B?K3BaemNQUzBYc0NDcmU4M2M2VkY1YWd4aXRmRWYxTlhIeWF0TUZ4aWFCQmpD?=
 =?utf-8?B?SXBqK3FkV1NyQnlTbm9rTFJPYzZrdDJzOThQL0djYXhMd2RCRU1IYmQ2cmxs?=
 =?utf-8?B?bHN6WmtlYXFDcms3SjJWTno3Vkt2OEY1Ty9RWlgwYmF6TUlhQVVSeitIRmVp?=
 =?utf-8?B?UXBUUVJVaGR3SmJEMFVFOG02d0xjY1N0U0ZwVVhhcWFYSUZVczZ0Q1QwaWhZ?=
 =?utf-8?Q?KJRldz?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?eldKazV1S0NpZTNBMytTREtXUmduRnQvekVFblNxN2JIYTd0ckhQcEJjUTFl?=
 =?utf-8?B?R3hEQkIxS2thSWlmaEFsL3VQOFpPU1ZLR2owMzVrQ1lkelROKzFQbHZPT3RI?=
 =?utf-8?B?TE5QM2lrOWhYV3dXalB4NjdrdGlVVmxVSzBYMUFJMnVyb0U4QTR4Rlp4aFN5?=
 =?utf-8?B?QVBqS29nd3RnUVZpVEM3NTIwWjVSNWlSb1FZSGdzZEpmYnY3T05acGluUUF0?=
 =?utf-8?B?eEkza280MTkwTzVXc1FPbVJNempHZjF4YlBXY25VMGEzOTlhY3VZdXdOeVRS?=
 =?utf-8?B?SnhXZFNLYWZNVkpDYnl6Rkl5eFB2MGNDZlRiTmVXaUE0U2Ezc3NSUlJXVFFY?=
 =?utf-8?B?MkpweWVWSkkra3RvT1YyRmxHajAzQ002TE5rU3htY083WHdOakxtdVNmcDlV?=
 =?utf-8?B?K2taOXlWdlRPYzBHUExXRFZWR3NWMmdHSmdIdW1Mejl4QVJkYkZjUkVDUFZC?=
 =?utf-8?B?Yks1LzQ3bW1mckk1Ri9CVHZaajIwQ0ZrdEY1YktWeW1UL2RYWno4ZW0yT2tr?=
 =?utf-8?B?aW9qYkErVE15Yk9pOUxSWHVNR1ZJTm5GV01zU0xLR2RWKzA2OE44RGs1TnVG?=
 =?utf-8?B?STVXQkM3YlJtZ2djaVlGZVF2TmdTTXFHSE41M2dFaG5RZjVGaE8za01QOFZF?=
 =?utf-8?B?cWNMSnFQKzNMS1NTTW5qeVdaMVJoNlh5QnptN2YyVWpqT0JVWTdIUXRXQldu?=
 =?utf-8?B?SDVicUVaSTV0SGt1NFFsaVF0NjhOTEpIOG81RW5LSHlFZDN3RXNnZUFGY1M5?=
 =?utf-8?B?SndlZDRtaEVuWXRPQVlPdnlLVVFaY0RLZFkyQ3dKalNnTDhUZ1FUNlozRXMr?=
 =?utf-8?B?MnYrMzBsQlVnTjRnVElSenRHTXN2OEl2TzNwTXJrMS9yVXB5TXhuUURFSzlw?=
 =?utf-8?B?cDVxR1MvcTJwUi85Rzh3VXE5alJFa1hoTDZjT3Q1TnBFYWlQU3hvZlZSZlQ0?=
 =?utf-8?B?U1lEUmhDZ2dhT2tIaTZSd1A0UWllL00yMWVkL2cxOTkwSXRhYUxUcGhCcnlx?=
 =?utf-8?B?V1NYOUJzRGErbW5pb3F0WUpWR3piWlp5T2prV1FnZzdsZEtHaUVkTlF5VWsy?=
 =?utf-8?B?THlKQzVlbWJxYmpGSVRGYmQvdTV4QmdvbFpRZTh2UnBqNnJNU2JobGhlVnM5?=
 =?utf-8?B?VHNiaTFsa0Z1RDZjRlNGYUdCSmFlMkw4eXg4eXh3SEtjclRLZHZ3cmpCUUsw?=
 =?utf-8?B?V201ZEM5c0lWWjZoeVZRZXpBQ1RvSXdaWnlKQXR2dVFHTVdub3B5WFF6TVRp?=
 =?utf-8?B?U1ZUVEJCZmFabFc2UnhCQUNySkd1bjdteGpjcHFXWnhzam5PaFJ6R05DUzMx?=
 =?utf-8?B?WHBPem9JaU5VQnNOYTZnTEE3YkY2emQ1amI4b3ZtNit0dkFZbTVKRmZHL3Vw?=
 =?utf-8?B?ZjlxUzJMUGJsdjdaWC9oZ2lkZmExcmFyVjMvK1l3ZlM1SHVRZW5HYVhqc2N1?=
 =?utf-8?B?TXFLTVJ1LzV6N2s1S0tZMHVnaTFsZ2c1U1p6bzlGY1VKRC84VnNlU3ZUUHl0?=
 =?utf-8?B?VjhkR2JlMHZ4eU5lVEw5OU54SjJmVVFSN09UZmU4NHRQQ2tWblRFZURZKzZP?=
 =?utf-8?B?dUhvYWZmalFubTB1U1VKTWRMU1h1WklWcFpIN3l5UXdMcEY0NVUxNk9qUVlQ?=
 =?utf-8?B?TlBWMXRJRyswQ0JYcE9jYnVJYkdtdXJ4ampoU1B4KzUwY2gxZEhuT05VKzdD?=
 =?utf-8?B?UEdscENkK3NJaTg4R1ZjbTB6UzE5cGdxbU9YMXB4ekNDS216cllnU2ZCWVJF?=
 =?utf-8?B?bWNlSkt2YnlZOFJreE5WZ3NSaStpT1dhQlJ2dXdiQStKYWJMdnk2VStoeWh0?=
 =?utf-8?B?aE1LZ2QyODJ1MjA2TXl2ekFBaTJZRkh5dFFHUE5YVmphS3ppMVNuMGgzVHc2?=
 =?utf-8?B?SnZtUFJOczNzZ1hJY0g2SHRLNUtQZFRWdnhickJFVGt1RVlVdllDejRPem96?=
 =?utf-8?B?MnNTdkI3eXFDOVNKV2dNbW5Gc3NLM3MvZ1VvUzQvMnlURmNUd2ZnL0JKWHRa?=
 =?utf-8?B?VGVlSi91elRxcm9oSFlYWlVzU0drVkJOcXFTck9TeUFNZ3FucHdpTjgwWWhl?=
 =?utf-8?B?R3hpSUtrczlzbDlxeTlHYUJLOUxad3ZQOU5IREZRY3pZVEh0dzlzK2hwRjNk?=
 =?utf-8?Q?7nbc=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0272605d-767a-4c39-2ea6-08de27eaa971
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Nov 2025 04:09:55.1364
 (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: J8tpCK+Ln4wu1ZSgqXZKt0xYDCVQrN3AfrBXKHdBvhEsJTLnIgh9AVsIVIfadK08659E++JvqlvscNG5n6Jkrw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8989

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYXNvbiBB
bmRyeXVrIDxqYXNvbi5hbmRyeXVrQGFtZC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1i
ZXIgMTksIDIwMjUgMzozMCBBTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQu
Y29tPjsgSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPiBDYzogSHVhbmcsIFJheSA8
UmF5Lkh1YW5nQGFtZC5jb20+OyBvbGVrc2lpLmt1cm9jaGtvQGdtYWlsLmNvbTsgQW5kcmV3DQo+
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT47IEFudGhvbnkgUEVSQVJEDQo+IDxh
bnRob255LnBlcmFyZEB2YXRlcy50ZWNoPjsgT3J6ZWwsIE1pY2hhbCA8TWljaGFsLk9yemVsQGFt
ZC5jb20+OyBKdWxpZW4NCj4gR3JhbGwgPGp1bGllbkB4ZW4ub3JnPjsgUm9nZXIgUGF1IE1vbm7D
qSA8cm9nZXIucGF1QGNpdHJpeC5jb20+OyBTdGVmYW5vDQo+IFN0YWJlbGxpbmkgPHNzdGFiZWxs
aW5pQGtlcm5lbC5vcmc+OyB4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVj
dDogUmU6IFtQQVRDSCB2MyAyOC8yOF0geGVuL2RvbWN0bDogd3JhcCBjb21tb24vZG9tY3RsLmMg
d2l0aA0KPiBDT05GSUdfTUdNVF9IWVBFUkNBTExTDQo+DQo+IE9uIDIwMjUtMTEtMTggMDI6NTEs
IFBlbm55LCBaaGVuZyB3cm90ZToNCj4gPiBbUHVibGljXQ0KPiA+DQo+ID4+IC0tLS0tT3JpZ2lu
YWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv
bT4NCj4gPj4gU2VudDogVHVlc2RheSwgTm92ZW1iZXIgMTgsIDIwMjUgMzoxNCBQTQ0KPiA+PiBU
bzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiA+PiBDYzogSHVhbmcsIFJh
eSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBvbGVrc2lpLmt1cm9jaGtvQGdtYWlsLmNvbTsNCj4gPj4g
QW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT47IEFudGhvbnkgUEVSQVJE
DQo+ID4+IDxhbnRob255LnBlcmFyZEB2YXRlcy50ZWNoPjsgT3J6ZWwsIE1pY2hhbCA8TWljaGFs
Lk9yemVsQGFtZC5jb20+Ow0KPiA+PiBKdWxpZW4gR3JhbGwgPGp1bGllbkB4ZW4ub3JnPjsgUm9n
ZXIgUGF1IE1vbm7DqQ0KPiA+PiA8cm9nZXIucGF1QGNpdHJpeC5jb20+OyBTdGVmYW5vIFN0YWJl
bGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+Ow0KPiA+PiB4ZW4tZGV2ZWxAbGlzdHMueGVu
cHJvamVjdC5vcmcNCj4gPj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MyAyOC8yOF0geGVuL2RvbWN0
bDogd3JhcCBjb21tb24vZG9tY3RsLmMgd2l0aA0KPiA+PiBDT05GSUdfTUdNVF9IWVBFUkNBTExT
DQo+ID4+DQo+ID4+IE9uIDE4LjExLjIwMjUgMDc6NDMsIFBlbm55LCBaaGVuZyB3cm90ZToNCj4g
Pj4+IFtQdWJsaWNdDQo+ID4+Pg0KPiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+
ID4+Pj4gRnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPiA+Pj4+IFNlbnQ6
IFRodXJzZGF5LCBPY3RvYmVyIDMwLCAyMDI1IDk6NDAgUE0NCj4gPj4+PiBUbzogUGVubnksIFpo
ZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiA+Pj4+IENjOiBIdWFuZywgUmF5IDxSYXkuSHVh
bmdAYW1kLmNvbT47IG9sZWtzaWkua3Vyb2Noa29AZ21haWwuY29tOw0KPiA+Pj4+IEFuZHJldyBD
b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+OyBBbnRob255IFBFUkFSRA0KPiA+Pj4+
IDxhbnRob255LnBlcmFyZEB2YXRlcy50ZWNoPjsgT3J6ZWwsIE1pY2hhbCA8TWljaGFsLk9yemVs
QGFtZC5jb20+Ow0KPiA+Pj4+IEp1bGllbiBHcmFsbCA8anVsaWVuQHhlbi5vcmc+OyBSb2dlciBQ
YXUgTW9ubsOpDQo+ID4+Pj4gPHJvZ2VyLnBhdUBjaXRyaXguY29tPjsgU3RlZmFubyBTdGFiZWxs
aW5pDQo+ID4+Pj4gPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+OyB4ZW4tZGV2ZWxAbGlzdHMueGVu
cHJvamVjdC5vcmcNCj4gPj4+PiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDI4LzI4XSB4ZW4vZG9t
Y3RsOiB3cmFwIGNvbW1vbi9kb21jdGwuYyB3aXRoDQo+ID4+Pj4gQ09ORklHX01HTVRfSFlQRVJD
QUxMUw0KPiA+Pj4+DQo+ID4+Pj4gT24gMTMuMTAuMjAyNSAxMjoxNSwgUGVubnkgWmhlbmcgd3Jv
dGU6DQo+ID4+Pj4+IC0tLSBhL3hlbi9jb21tb24vS2NvbmZpZw0KPiA+Pj4+PiArKysgYi94ZW4v
Y29tbW9uL0tjb25maWcNCj4gPj4+Pj4gQEAgLTY0NiwxMSArNjQ2LDEzIEBAIGNvbmZpZyBTWVNU
RU1fU1VTUEVORA0KPiA+Pj4+PiAgICAgICAgSWYgdW5zdXJlLCBzYXkgTi4NCj4gPj4+Pj4NCj4g
Pj4+Pj4gICBjb25maWcgTUdNVF9IWVBFUkNBTExTDQo+ID4+Pj4+IC0gICBkZWZfYm9vbCB5DQo+
ID4+Pj4+ICsgICBib29sICJFbmFibGUgcHJpdmlsZWdlZCBoeXBlcmNhbGxzIGZvciBzeXN0ZW0g
bWFuYWdlbWVudCINCj4gPj4+Pj4gICAgICBoZWxwDQo+ID4+Pj4+ICAgICAgICBUaGlzIG9wdGlv
biBzaGFsbCBvbmx5IGJlIGRpc2FibGVkIG9uIHNvbWUgZG9tMGxlc3Mgc3lzdGVtcywgb3INCj4g
Pj4+Pj4gICAgICAgIFBWIHNoaW0gb24geDg2LCB0byByZWR1Y2UgWGVuIGZvb3RwcmludCB2aWEg
bWFuYWdpbmcNCj4gPj4+Pj4gdW5uZXNzYXJ5DQo+DQo+ICJ1bm5lY2Vzc2FyeSINCj4NCj4gPj4+
Pj4gLSAgICAgaHlwZXJjYWxscywgbGlrZSBzeXNjdGwsIGV0Yy4NCj4gPj4+Pj4gKyAgICAgaHlw
ZXJjYWxscywgbGlrZSBzeXNjdGwsIGRvbWN0bCwgZXRjLg0KPiA+Pj4+PiArICAgICBCZSBjYXV0
aW91cyB0byBkaXNhYmxlIGl0LCBhcyB1c2VycyB3aWxsIGZhY2UgbWlzc2luZyBhIGZldyBiYXNp
Yw0KPiA+Pj4+PiArICAgICBoeXBlcmNhbGxzIGxpa2UgbGlzdGRvbWFpbnMsIGdldGRvbWFpbmlu
Zm8sIGV0Yy4NCj4gPj4+Pg0KPiA+Pj4+IFRoaXMgaXMgc3RpbGwgdG9vIGxpdHRsZSwgaW1vLiBG
b3Igb25lIEknbSBub3Qgc3VyZSAidXNlcnMiIGlzDQo+ID4+Pj4gcXVpdGUgdGhlIHJpZ2h0IHRl
cm0uIEknZCBzYXkgaXQncyBtb3JlICJhZG1pbnMiLiBBbmQgdGhlbiwgYXMNCj4gPj4+PiBtZW50
aW9uZWQsIHRoZXJlIGFyZSBhIGZldyBkb21jdGwtcyB3aGljaCBhcmUgdXNhYmxlIGJ5IERNcy4g
QWl1aQ0KPiA+Pj4+IGRldmljZSBwYXNzLXRocm91Z2ggbWF5IGFsc28gYmUgaW1wYWN0ZWQsIHdo
aWNoIGltbyB3aWxsIHdhbnQNCj4gPj4+PiBtZW50aW9uaW5nIGhlcmUgYXMgd2VsbC4gT3IgZWxz
ZSwgaWYgdGhlcmUgaXMgYW4gaW1wbGljYXRpb24gdGhhdA0KPiA+Pj4+IERNcyBhcmVuJ3QgdG8g
YmUgdXNlZCB3aGVuDQo+ID4+IE1HTVRfSFlQRVJDQUxMUz1uLCB0aGF0IGlzIHdoYXQgd291bGQg
d2FudCBjYWxsaW5nIG91dC4NCj4gPj4+DQo+ID4+PiBIb3cgYWJvdXQNCj4gPj4+ICINCj4gPj4+
ICAgICAgICAgIEJlIGNhdXRpb3VzIHRvIGRpc2FibGUgaXQsIGFzIGFkbWlucyB3aWxsIGZhY2Ug
bWlzc2luZyBhIGZldyBiYXNpYw0KPiA+Pj4gICAgICAgICAgaHlwZXJjYWxscyBsaWtlIGxpc3Rk
b21haW5zLCBnZXRkb21haW5pbmZvLCBldGMsIGhlbmNlIGxlYWRpbmcgdG8NCj4gPj4+ICAgICAg
ICAgIGhhdmUgYW4gaW1wYWN0IG9uIHhsLWRldmljZS1wYXNzdGhyb3VnaCBhbmQgcmVzdHJpY3Rl
ZCBETS4NCj4gPj4+ICINCj4gPj4NCj4gPj4gTXVjaCBiZXR0ZXIuIEhvd2V2ZXIsIHdoeSAieGwt
IiBhbmQgd2h5ICJyZXN0cmljdGVkIj8gTmVpdGhlciBhc3BlY3QNCj4gPj4gbWF0dGVycyBoZXJl
LCB1bmxlc3MgSSBvdmVybG9vayBzb21ldGhpbmcuDQo+ID4+DQo+ID4NCj4gPiBMYXRlciwgaW4g
aHlwZXJsYXVuY2ggc2NlbmFyaW8sIGRldmljZSBwYXNzdGhyb3VnaCBpcyBzdGlsbCBuZWVkZWQs
DQo+ID4gYnV0IGl0J3Mgbm90IGN1cnJlbnQgZGV2aWNlIHBhc3N0aHJvdWdoIG1vZGUsIHdoaWNo
IGRlcGVuZHMgb24NCj4gPiB4bC10b29sLXN0YWNrIHRvIGRlLWFzc2lnbiBpdCBmcm9tIGhhcmR3
YXJlIGRvbWFpbiBhbmQgcmUtYXNzaWduIGl0IHRvDQo+ID4gZ3Vlc3QuIEl0IHdpbGwgYmUgbGlt
aXRlZCBpbiBib290LXVwIHN0YWdlLCBhbmQgY29uZmlndXJlZCB2aWEgZGV2aWNlDQo+ID4gdHJl
ZSBvbmx5LiBGV0lVLCB3ZSBtYXkgcmV1c2UgVlBDSSBmcmFtZXdvcmssIGJ1dCBjb21tYW5kcyBs
aWtlICJ4bA0KPiA+IGFzc2lnbi9kZWFzc2lnbiB4eHgiIHdpbGwgbm90IGJlIG5lZWRlZCBhbnlt
b3JlLiBQTFogY29ycmVjdCBtZSBpZg0KPiA+IHVuZGVyc3RhbmQgd3JvbmdseSwgQEFuZHJ5dWss
IEphc29uDQo+DQo+IFllcywgdGhpcyBpcyBjb3JyZWN0Lg0KPg0KPiA+DQo+ID4gQW5kIERNLCBs
aWtlIFFFTVUsIGlzIHN0aWxsIGFwcGxpY2FibGUsIGJ1dCBvbmx5IHN1cHBvcnRzIGEgbmV3IG1h
Y2hpbmUgdHlwZSwNCj4gInB2aCIuDQo+DQo+IHZQQ0kgaXMgdXNlZCB0byBhc3NpZ24gdGhlIFBD
SSBkZXZpY2VzIHRvIGEgUFZIIGRvbWFpbiBkdXJpbmcgYm9vdC4NCj4gUUVNVSBpcyBwcmVzZW50
IGFuZCBwcm92aWRlcyB2aXJ0aW8gZGV2aWNlcywgYnV0IGl0IGRvZXMgbm90IHBsYXkgYSByb2xl
IGluIFBDSQ0KPiBwYXNzdGhyb3VnaC4gIFNvIGZhciB3ZSd2ZSB1c2VkIGluZGVwZW5kZW50IFBD
SSBzZWdtZW50cyBmb3IgdlBDSSBhbmQNCj4gUUVNVS92aXJ0aW8uDQo+DQo+IEFueXdheSwgbWF5
YmUgc29tZXRoaW5nIGxpa2UgdGhpcyBmb3IgdGhlIGhlbHAgdGV4dDoNCj4gIiIiDQo+IE1hbmFn
ZW1lbnQgaHlwZXJjYWxscyBwcm92aWRlIHRoZSBtZWFucyBmb3IgZG9tMCB0byBtYW5hZ2UgdGhl
IG92ZXJhbGwgWGVuDQo+IHN5c3RlbSBhbmQgb3RoZXIgZG9tYWlucy4gIFRoaXMgaW5jbHVkZXMg
dGhlIGh5cGVyY2FsbHMgbmVlZGVkIHRvIGNvbnN0cnVjdCBuZXcNCj4gZG9tYWlucy4gIEluIGEg
ZG9tMGxlc3Mgb3IgcHYtc2hpbSBidWlsZCwgdGhleSBjYW4gYmUgb21pdHRlZCB0byBjdXQgZG93
biBvbiB0aGUNCj4gWGVuIGJpbmFyeSdzIHNpemUuICBIb3dldmVyLCB0aGlzIGNvbWVzIGF0IHRo
ZSBsb3NzIG9mIHNpZ25pZmljYW50IHJ1bnRpbWUNCj4gZnVuY3Rpb25hbGl0eS4NCj4NCj4gVW5s
ZXNzIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZywgeW91IHNob3VsZCBlbmFibGUgdGhpcy4N
Cj4gIiIiDQo+DQoNClRoeCEhISBJJ2xsIGNvbWJpbmUgdGhlbSBhbGwNCg0KPiBSZWdhcmRzLA0K
PiBKYXNvbg0K


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 08:12:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 08:12:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166551.1493044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLzls-0008Im-1Y; Thu, 20 Nov 2025 08:12:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166551.1493044; Thu, 20 Nov 2025 08:12:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLzlr-0008If-Uv; Thu, 20 Nov 2025 08:12:03 +0000
Received: by outflank-mailman (input) for mailman id 1166551;
 Thu, 20 Nov 2025 08: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=nz19=54=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vLzlr-0008IZ-Go
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 08:12:03 +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 97e04169-c5e8-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 09:12:02 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-640b06fa959so931237a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 00: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
 4fb4d7f45d1cf-6453642d3e1sm1463316a12.18.2025.11.20.00.12.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 00: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: 97e04169-c5e8-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763626321; x=1764231121; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oYWHLSY/TdqdQZqfXl+ILZChA9ImMal7+XUHdcyMhiA=;
        b=CTMRzUAFbJp7fTeHlzXm7VG3ZYgI2x4eqbxjDv/5FYp9JqlNvqta+B8EmPTLAq5jC1
         aO0TIOEZSH0jkyeBwA2ZA4FihabQ9v/3xpo1RkO51J/kxBIak4tToZP+j1DYDE8tEXMQ
         DtfXikTGZT3Pmwwn3iT1Yqej9Mr1lwy5fARqcn280b1V0GjmkSscO/K7jSVN89zr32TN
         hxFxYKZC5gvTzlHM+ciCTDW0l2DcMZFpmceQmAUvrHlUOgyZegDZNqwpKrQoRHlReZWh
         mh/aebvjrT34N2WpBtQM+xfyVJg3ENJ2dRmM5QNIyQqtn4atzr6Gsp6c7o/J2LfEViRt
         0C5w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763626321; x=1764231121;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oYWHLSY/TdqdQZqfXl+ILZChA9ImMal7+XUHdcyMhiA=;
        b=qEpaoYqKB3DtHVrU1ZccPfHSaQJ8+r//QY56nGH8NMMgz3WoKJFDUdriNOBUfyJY+/
         dEEKH6V5YL0lyY83qti1idQvs1oUjAREa3PwcQW/cPAj0afZhJ4ctntvC49T8yUqmOA0
         7t3PEP9Z9sIJYKmSSv2CpNpuU7PSC6+sDT9v1Xfv1wBKGeTbT3mAfAjCUmculFZH5l13
         +b+JrePiJkKqP/dGE3f63SQ35oCep1u8tQ5aGaJtowi3O6toyHcparUVHocV52kaWhQQ
         BOHW3gHOPFQrMg1UfmzcGhABYr4XpT/XJU4m6B2zO6XXfSeobpkgcCsoyHWA8bf7sz6a
         GZMQ==
X-Forwarded-Encrypted: i=1; AJvYcCV8uMyQtoy6fgV399oOQa+KceifpUva1bRDcXLtzY95PX8JfZMHZc1ZJVuQkRTaxrVubdu0lRgaCa0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwyZoaDBgQqUZYXGXzCogFjo80ou3SpMKTEitYUyA87MZpntiGC
	TxKHnsV6bxmX253dWY6TcpKq5nfPBjp4lOtzCuzpSI7A7fL7IgfMoq3A3yUWHLNMfA==
X-Gm-Gg: ASbGncscskx1/z0OipCfTedKgnm2PtK4QhDsoTe96uaeXo0KAbAqhXgp+kH37SiqCvP
	b6x3I38ekZl9KLfr41KJ3KMOSXHwlx0E1ph3sHcCkD2y7S5Ctenu19BNR9nePSIwfU0+f4mmAnL
	L5iJbZHDGtoDnTvHDaZZhwpxa4caIlYr2SAeFw626BC9uQ+XCuhv/xYPxVw6pB7gJKgfbJy7iTL
	5bwuX/0EBb4YXOYZfh/dfIJIdfojY1tzB4zaFl/VQCg8HTqzmUIcOWU5XzBEpDQhqEwo2e+PUS0
	DdEU9BRAUIOxBurPAKh+CRWOAw4BhejXRLq7rg1yWPxpeb/QnZRXvH/IM+mK2vVFWRudTLJqixd
	zWA8Z6S9iHKfMjHdxhTwlqPaMUSVG71VCvHDvJ2dduj6xBtXkSw0fCFsd1xKJjbzFlhdHY1M5Zk
	aIIJdDjl39o+OQPojTebgaP0kJUoAFs99XTdtKWwRbxmi4qc+tIlCuFL0KN34fh8hWPg502yOKL
	6o=
X-Google-Smtp-Source: AGHT+IGqLdMbxc8BwcCiRb8F8E9pI87CQeSDcmrYvzx+ikegxRE1tRfACb+LqnWXancU65h7AZwLdA==
X-Received: by 2002:a05:6402:4307:b0:640:7529:b8c7 with SMTP id 4fb4d7f45d1cf-6453d084720mr729559a12.1.1763626321541;
        Thu, 20 Nov 2025 00:12:01 -0800 (PST)
Message-ID: <081b0989-79fc-4cf2-9527-0dcd2d91d518@suse.com>
Date: Thu, 20 Nov 2025 09:11:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v4] xen/x86: guest_access: optimize raw_x_guest() for
 PV and HVM combinations
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251114140117.270461-1-grygorii_strashko@epam.com>
 <11c3929a-977b-4ef8-aaaa-9aea01657b04@suse.com>
 <fdd51da7-c8dc-4c0f-aaaf-a9fd2094bcd4@epam.com>
 <567f2759-fa03-43bd-9ae4-75e0e3811b60@suse.com>
 <276968a6-4688-48bb-b0a1-5270ad3f0002@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: <276968a6-4688-48bb-b0a1-5270ad3f0002@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.11.2025 20:36, Grygorii Strashko wrote:
> Hi Jan
> 
> On 18.11.25 15:45, Jan Beulich wrote:
>> On 18.11.2025 14:08, Grygorii Strashko wrote:
>>> On 17.11.25 18:43, Jan Beulich wrote:
>>>> On 14.11.2025 15:01, Grygorii Strashko wrote:
>>>>> --- a/xen/arch/x86/pv/Makefile
>>>>> +++ b/xen/arch/x86/pv/Makefile
>>>>> @@ -14,6 +14,10 @@ obj-y += ro-page-fault.o
>>>>>    obj-$(CONFIG_PV_SHIM) += shim.o
>>>>>    obj-$(CONFIG_TRACEBUFFER) += trace.o
>>>>>    obj-y += traps.o
>>>>> +obj-$(CONFIG_PV) += usercopy.o
>>>>
>>>> Just obj-y with the movement.
>>>>
>>>> However, is the movement (and was the adding of $(CONFIG_PV) in the earlier
>>>> version) actually correct? The file also produces copy_{from,to}_unsafe_ll(),
>>>> which aren't PV-specific. This may be only a latent issue right now, as we
>>>> have only a single use site of copy_from_unsafe(), but those functions need
>>>> to remain available. (We may want to arrange for them to be removed when
>>>> linking, as long as they're not referenced. But that's a separate topic.)
>>>
>>> It is confusing that none of build cfg combinations have failed
>>> (HVM=y PV=n, HVM=n PV=n) :(
>>>
>>> copy_to_unsafe_ll()
>>> - called from copy_to_unsafe()
>>> - copy_to_unsafe() has no users (unreachable, MISRA 2.1?)
>>>
>>> copy_from_unsafe_ll()
>>> - called from copy_from_unsafe()
>>> - copy_from_unsafe() called from one place do_invalid_op() with
>>>     copy_from_unsafe(,, n = sizeof(bug_insn)).
>>>     Due to __builtin_constant_p(n) check the copy_from_unsafe() call
>>>     optimized by compiler to
>>>     get_unsafe_size(*(uint16_t *)to, from, 2, UA_DROP, ret, 2);
>>>
>>> as result copy_from_unsafe_ll() is unreachable also (?).
>>
>> Yes, these likely all want to become library-like, so they are linked in only
>> when actually referenced.
>>
>>> If those function are not subject to be removed, the
>>>    usercopy.c can't be moved in "x86/pv", Right?
>>
>> That's my take, yes.
>>
>>> Making copy_{from,to}_unsafe_ll() available for !PV means
>>> rewriting usercopy.c in some way, Right?
>>
>> "Re-writing" is probably too much, but some adjustments would be needed if
>> you want to keep the "unsafe" functions but compile out the "guest" ones.
>> It may be possible to compile the file twice, once from x86/pv/ and once
>> from x86/, replacing the self-#include near the bottom of the file. The
>> former would then produce the "guest" functions, the latter the "unsafe"
>> ones.
> 
> Below is the difference I came up with, will it work?

That'll be on you to make sure, but ...

> --- /dev/null
> +++ b/xen/arch/x86/usercopy.c
> @@ -0,0 +1,77 @@
> +/*
> + * User address space access functions.
> + *
> + * Copyright 1997 Andi Kleen <ak@muc.de>
> + * Copyright 1997 Linus Torvalds
> + * Copyright 2002 Andi Kleen <ak@suse.de>
> + */
> +
> +#include <xen/lib.h>
> +#include <xen/sched.h>
> +#include <asm/uaccess.h>
> +
> +# define GUARD UA_DROP
> +# define copy_to_guest_ll copy_to_unsafe_ll
> +# define copy_from_guest_ll copy_from_unsafe_ll
> +# undef __user
> +# define __user
> +
> +unsigned int copy_to_guest_ll(void __user *to, const void *from, unsigned int n)
> +{
> +    GUARD(unsigned dummy);
> +
> +    stac();
> +    asm_inline volatile (
> +        GUARD(
> +        "    guest_access_mask_ptr %[to], %q[scratch1], %q[scratch2]\n"
> +        )
> +        "1:  rep movsb\n"
> +        "2:\n"
> +        _ASM_EXTABLE(1b, 2b)
> +        : [cnt] "+c" (n), [to] "+D" (to), [from] "+S" (from)
> +          GUARD(, [scratch1] "=&r" (dummy), [scratch2] "=&r" (dummy))
> +        :: "memory" );
> +    clac();
> +
> +    return n;
> +}
> +
> +unsigned int copy_from_guest_ll(void *to, const void __user *from, unsigned int n)
> +{
> +    unsigned dummy;
> +
> +    stac();
> +    asm_inline volatile (
> +        GUARD(
> +        "    guest_access_mask_ptr %[from], %q[scratch1], %q[scratch2]\n"
> +        )
> +        "1:  rep movsb\n"
> +        "2:\n"
> +        ".section .fixup,\"ax\"\n"
> +        "6:  mov  %[cnt], %k[from]\n"
> +        "    xchg %%eax, %[aux]\n"
> +        "    xor  %%eax, %%eax\n"
> +        "    rep stosb\n"
> +        "    xchg %[aux], %%eax\n"
> +        "    mov  %k[from], %[cnt]\n"
> +        "    jmp 2b\n"
> +        ".previous\n"
> +        _ASM_EXTABLE(1b, 6b)
> +        : [cnt] "+c" (n), [to] "+D" (to), [from] "+S" (from),
> +          [aux] "=&r" (dummy)
> +          GUARD(, [scratch1] "=&r" (dummy), [scratch2] "=&r" (dummy))
> +        :: "memory" );
> +    clac();
> +
> +    return n;
> +}

... we don't want to have two instances of that code in the code base. One file
should #include the other, after putting in place suitable #define-s. Which
direction the #include should work I'm not entirely certain:
- pv/usercopy.c including usercopy.c means usercopy.c then ends up misnamed,
- usercopy.c including pv/usercopy.c means a "common" file includes a more
  specialized (PV-only) one.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 08:14:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 08:14:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166549.1493055 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vLznt-0000N9-CK; Thu, 20 Nov 2025 08:14:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166549.1493055; Thu, 20 Nov 2025 08:14: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 1vLznt-0000N2-9V; Thu, 20 Nov 2025 08:14:09 +0000
Received: by outflank-mailman (input) for mailman id 1166549;
 Thu, 20 Nov 2025 08:11: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=K14s=54=amd.com=Luc.Michel@srs-se1.protection.inumbo.net>)
 id 1vLzl3-0008Ed-CO
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 08:11:13 +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 78a2cdde-c5e8-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 09:11:10 +0100 (CET)
Received: from BLAPR03CA0077.namprd03.prod.outlook.com (2603:10b6:208:329::22)
 by DS7PR12MB5742.namprd12.prod.outlook.com (2603:10b6:8:71::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 08:11:03 +0000
Received: from MN1PEPF0000ECD6.namprd02.prod.outlook.com
 (2603:10b6:208:329:cafe::1) by BLAPR03CA0077.outlook.office365.com
 (2603:10b6:208:329::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.10 via Frontend Transport; Thu,
 20 Nov 2025 08:11:02 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MN1PEPF0000ECD6.mail.protection.outlook.com (10.167.242.135) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Thu, 20 Nov 2025 08:11: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, 20 Nov
 2025 00:11:03 -0800
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, 20 Nov
 2025 00:11:03 -0800
Received: from XFR-LUMICHEL-L2.amd.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17 via Frontend
 Transport; Thu, 20 Nov 2025 00:10:58 -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: 78a2cdde-c5e8-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=k0ernmHbpR0++IS1oDj3A8sXKmbhoFT687NP/vujCdre/DT233TceIZare4UTrNq6W4do+OZB6ILMjf3PZ17vhXSJMS4RBBN3cmsotZapSxMWG0lheV+UhkzRMESJ9XT68lJMTc9nfTTMgsryYXbygvPeRZknU3kiq2UPdCbNi1D5MIWpzTz7nrV3k7iRCLudfpnk6hNUhVMT/Xhmpm+AeK78Iw5BwyMdWQvHJ/m6EWk3X1vgqspz8jGI+KtbKWWWJkMdyYx1m4JSbkAaKp/mh4M6/wil5QgwQIZtE07ONgy44ujABe4OGnNdAj+vLaFSbvuBW/rN3bhziBJ3XDsEg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ARoXeX8gsb6s7/rH9G4XD4nZ+xh3tI27WjqRUo6FL0Q=;
 b=qyh8h454a2sY3sbTiD4B/Wh2TOiXO9LVMVNq7LGegQ9qitCmut8M4twkHcr7vXrbF2vYYpGwi6bWwGPolnI7UZrxz9rqLY758dz4CExk4cligJElPU4t02j1Yogm+rQBBj6Gux0wuKNXE6bK2iaqWB4TL/H38DAWePVtJtGFG9VvEqf2ikwzbRMCsLILMtxfeSgb7Sqfqb9s2IW3+MdxjhOLNDB/UIZfnqsJQig0f/iag223sa261cIFHmJROtMYDrOYhUe6PAAarKpCo2qDtcSoKeaQkYvebJMYHybzOfPbQ26CPrwMPr2LSq+7XH4hPKPncKZZWJDORDlzvG53VA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=redhat.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=ARoXeX8gsb6s7/rH9G4XD4nZ+xh3tI27WjqRUo6FL0Q=;
 b=cDeoe6b7MZeJ2vlIEw469sl5erO6LS8D5RtfdEPjh/ZtqK3q3382EhECuxNKbmRGMpDpy+kSIG3/pW6vg3AMX6475oqynixuZgx7xXxWZ4pq8PF51PApih/nUe9TMTVQZ0tPdZjy9Ywd8x2qxMo2iYANSko3om83oGgWyemLYk8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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
Date: Thu, 20 Nov 2025 09:10:56 +0100
From: Luc Michel <luc.michel@amd.com>
To: Markus Armbruster <armbru@redhat.com>
CC: <qemu-devel@nongnu.org>, <kwolf@redhat.com>, <hreitz@redhat.com>,
	<mst@redhat.com>, <imammedo@redhat.com>, <anisinha@redhat.com>,
	<gengdongjiu1@gmail.com>, <peter.maydell@linaro.org>,
	<alistair@alistair23.me>, <edgar.iglesias@gmail.com>, <npiggin@gmail.com>,
	<harshpb@linux.ibm.com>, <palmer@dabbelt.com>, <liwei1518@gmail.com>,
	<dbarboza@ventanamicro.com>, <zhiwei_liu@linux.alibaba.com>,
	<sstabellini@kernel.org>, <anthony@xenproject.org>, <paul@xen.org>,
	<berrange@redhat.com>, <peterx@redhat.com>, <farosas@suse.de>,
	<eblake@redhat.com>, <vsementsov@yandex-team.ru>, <eduardo@habkost.net>,
	<marcel.apfelbaum@gmail.com>, <philmd@linaro.org>, <wangyanan55@huawei.com>,
	<zhao1.liu@intel.com>, <qemu-block@nongnu.org>, <qemu-arm@nongnu.org>,
	<qemu-ppc@nongnu.org>, <qemu-riscv@nongnu.org>,
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 2/5] hw/nvram/xlnx-bbram: More idiomatic and simpler
 error reporting
Message-ID: <aR7NEB_hRiBRZ6vN@XFR-LUMICHEL-L2.amd.com>
References: <20251119130855.105479-1-armbru@redhat.com>
 <20251119130855.105479-3-armbru@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <20251119130855.105479-3-armbru@redhat.com>
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECD6:EE_|DS7PR12MB5742:EE_
X-MS-Office365-Filtering-Correlation-Id: 2c54ceaa-b355-4920-6d02-08de280c596e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|7416014|36860700013|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?3QT2PaI+IpKNrBbRATmK3YqKY9wivNn/d2S4hqUF99ymRxJnK7+IUSxHlBzW?=
 =?us-ascii?Q?sbJgw/huJd8xMOu7a0XaMKFG0s9022cqNOOekI31YOBByVLdTEPUKhLjXC3M?=
 =?us-ascii?Q?as1q7oQIKVewohpOL1uHAgz/tB/W34D6a0ZOSjIM96NPlLWaSNeIfiAW833N?=
 =?us-ascii?Q?PUhKNsbwTWJNleppvC8tJuFC/mFnaxuKJvd/q2TS7HItmhqy3gqg2YSyxuNh?=
 =?us-ascii?Q?3zkrPdMKikeo3iJezB5a2Tz5RL85OIHVOMNYYg7ougQOq8WbJsq2s7lgaPeB?=
 =?us-ascii?Q?zcfLy9U/Nlg4ylwcqaxVYjJrAnZ/mbrswFg2iC1J5ad6ig1BkU7vthtAh/aj?=
 =?us-ascii?Q?OZoVRXwQ2XBPd3l43LweUz6LFH/p+cvkfGKjZYGvYvJIL/Ees0ZDrGa6VkW3?=
 =?us-ascii?Q?0DYjXe9Pm3foeV7lXylC70HdQuskl/AhYMPPfRWxdi94ViBbEZ4XLkHunPVt?=
 =?us-ascii?Q?BlLzdjAvbsxoZFyZ4hRrniCYVvJS4EI9Al8dnxtUDBihF0VsOMkSsS9hTF2e?=
 =?us-ascii?Q?BcVjXfRerO4IrA2xwwPTs7JfVKoKRa1OVFRCTR/Kkqv0wrKchX4VNSkoyGhU?=
 =?us-ascii?Q?DekIataSv7mweZSeLQ7AefEu/8FYEHJ7cevsF/WRZ/oPLF+cSG2fkVngirpi?=
 =?us-ascii?Q?MR30aoVVPEnv/6HYlVaYUPcgMZMZ1oI9HkpjM3cN+Qo21O/oTD4+1ApVO3rA?=
 =?us-ascii?Q?O4xyk4ZDOlZ/a/3OvbvFq1xGH2HB0bic4hIHaJ/KnjF0hYTudJmP/Zn7co0L?=
 =?us-ascii?Q?M0TNg3yZhuPcmoSx+5Pi3UqTKsVME2EAWzAOjDaWSH/IXRnqa8kB7Ei+mjHn?=
 =?us-ascii?Q?3hK4fvhm6moxvGGAqZvtKK6HGQ6MukrnqX4vK/XXVYnrCbBJSXRehK1zWCZp?=
 =?us-ascii?Q?D1A4/IaGEbG16l0aow3k4pCnk+hyuCIdrdjmWcpJihLpjGXaY606anehC6cv?=
 =?us-ascii?Q?Dq8Zhzqwq3CA9b8ooZoC29shIJpJJkEvCL5o6y50CS29E0T89SjcaRqaLXue?=
 =?us-ascii?Q?I4LVNMEFMBpnkcDmTM4c37KselgIjtfZhvKNQpuVd9RO5+3+G6777JePGsjW?=
 =?us-ascii?Q?L6fRa0XZGfOV2OwCz0ry5nZu2aTv8xMPQZEHVK/LZXLJgJSqdiHNcHEi9u3y?=
 =?us-ascii?Q?jh2E6ag8IGkIsVtIcMmwTfxCcEce7lFphgMdUHDiR119z71/QBax2x2xLgss?=
 =?us-ascii?Q?SV+KjX2gdtFlYChfPxFNVy2QxjDli4z54xC9MWwBMBYmKQclquVr+xpZ2RBk?=
 =?us-ascii?Q?JCvQJ4uRdAVs7ctwZr6384Hze/ZLZpEUAeAicpJD13yVP4l8RY1+7k+SIw3O?=
 =?us-ascii?Q?0skRv4W2nY8JrRbdIy5pbm12nfArOpTw9LQXawz3fEJd3l5+dedy9ckYW5S1?=
 =?us-ascii?Q?QurSDiGQYI+vedyO+Rku9g+pGzId/C9yflAN28AQZL7s9qz6UA3yAlGxXU+W?=
 =?us-ascii?Q?SjBxIEP0Tt5Ei4Nx5NDO2D0y0xCiOv9s5tJsrL9ikwPeLv9PlBR2MRRamUj5?=
 =?us-ascii?Q?5LsB2HyR9hLJb4XKoet9+asEysAust3i7CJG1TwWWHAZA/xX2sZHug2HuWoL?=
 =?us-ascii?Q?lBSjY06FsUBx6dsdVyo=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)(7416014)(36860700013)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 08:11:03.7875
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2c54ceaa-b355-4920-6d02-08de280c596e
X-MS-Exchange-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:
	MN1PEPF0000ECD6.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5742

On 14:08 Wed 19 Nov     , Markus Armbruster wrote:
> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
> 
> 
> bbram_bdrv_error() interpolates a "detail" string into a template with
> error_setg_errno(), then reports the result with error_report().
> Produces error messages with an unwanted '.':
> 
>     BLK-NAME: BBRAM backstore DETAIL failed.: STERROR
> 
> Replace both calls of bbram_bdrv_error() by straightforward
> error_report(), and drop the function.  This is less code, easier to
> read, and the error message is more greppable.
> 
> Also delete the unwanted '.'.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Reviewed-by: Luc Michel <luc.michel@amd.com>

> ---
>  hw/nvram/xlnx-bbram.c | 18 ++++--------------
>  1 file changed, 4 insertions(+), 14 deletions(-)
> 
> diff --git a/hw/nvram/xlnx-bbram.c b/hw/nvram/xlnx-bbram.c
> index 22aefbc240..fe289bad9d 100644
> --- a/hw/nvram/xlnx-bbram.c
> +++ b/hw/nvram/xlnx-bbram.c
> @@ -88,18 +88,6 @@ static bool bbram_pgm_enabled(XlnxBBRam *s)
>      return ARRAY_FIELD_EX32(s->regs, BBRAM_STATUS, PGM_MODE) != 0;
>  }
> 
> -static void bbram_bdrv_error(XlnxBBRam *s, int rc, gchar *detail)
> -{
> -    Error *errp = NULL;
> -
> -    error_setg_errno(&errp, -rc, "%s: BBRAM backstore %s failed.",
> -                     blk_name(s->blk), detail);
> -    error_report("%s", error_get_pretty(errp));
> -    error_free(errp);
> -
> -    g_free(detail);
> -}
> -
>  static void bbram_bdrv_read(XlnxBBRam *s, Error **errp)
>  {
>      uint32_t *ram = &s->regs[R_BBRAM_0];
> @@ -162,7 +150,8 @@ static void bbram_bdrv_sync(XlnxBBRam *s, uint64_t hwaddr)
>      offset = hwaddr - A_BBRAM_0;
>      rc = blk_pwrite(s->blk, offset, 4, &le32, 0);
>      if (rc < 0) {
> -        bbram_bdrv_error(s, rc, g_strdup_printf("write to offset %u", offset));
> +        error_report("%s: BBRAM backstore write to offset %u failed: %s",
> +                     blk_name(s->blk), offset, strerror(-rc));
>      }
>  }
> 
> @@ -178,7 +167,8 @@ static void bbram_bdrv_zero(XlnxBBRam *s)
> 
>      rc = blk_make_zero(s->blk, 0);
>      if (rc < 0) {
> -        bbram_bdrv_error(s, rc, g_strdup("zeroizing"));
> +        error_report("%s: BBRAM backstore zeroizing failed: %s",
> +                     blk_name(s->blk), strerror(-rc));
>      }
> 
>      /* Restore bbram8 if it is non-zero */
> --
> 2.49.0
> 
> 

-- 


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 08:27:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 08:27:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166575.1493065 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM00b-0002AA-Ew; Thu, 20 Nov 2025 08:27:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166575.1493065; Thu, 20 Nov 2025 08:27:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM00b-0002A3-C0; Thu, 20 Nov 2025 08:27:17 +0000
Received: by outflank-mailman (input) for mailman id 1166575;
 Thu, 20 Nov 2025 08:27:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nz19=54=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vM00a-00029x-Kp
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 08:27:16 +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 b8096fac-c5ea-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 09:27:15 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b735e278fa1so127691966b.0
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 00: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
 4fb4d7f45d1cf-645363b5fe9sm1524362a12.11.2025.11.20.00.27.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 00: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: b8096fac-c5ea-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763627234; x=1764232034; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GWCOFW6WLFvsPH+O+kr/D+58GC9J3bak8EY8+7MHnAU=;
        b=Z5ia/7/CuaW8qcZFcPbFMf9kyTQwiBdMwAc8P82QIF73yzUsOLBPi9Iwf6GRg9IC3T
         GbrOVpNYXzY5iqSViY5AE94z6gPm3dY+rDUeFor5Iw+PA1WWgJpQ/o5ehXnx/4Om+NVX
         c5OW7gUoVqR5Ee2AJ75opzQrZ+K+A8qfG82pLhGD6ANwh1+3diZifiW6u8er8rRVVgpP
         sYsmnR1ct5HcBj+D7EYRwVrkIFCUNDfpaVJWPKRZ9sGRDzHhfbzTGbCHmvQcHrDFynOs
         cYlwznr+gOpKRmYep18nmJYMz44GXEpyD7/d9/QeJgx+kr5tAS7XeA4LlLjKjeB6VAQz
         yMrw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763627234; x=1764232034;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GWCOFW6WLFvsPH+O+kr/D+58GC9J3bak8EY8+7MHnAU=;
        b=bdR5+yZXKTaKlLXB/+lEaEERwOCEjokJ6S4aGap0SGAST8J8d/nsxmRoSYtgyBQhFx
         8FKu4Rt+q08I7WZ1hdhmVPoBuRQPSRRRT+rVKljEPUp53HcCZeHCdvnTrIMMxSWTDaz0
         Oc3Dvch/fC70wP1og4bOgRNocIwat4VW6z8miEUYhNYN6RThH5hqThrHIb6qlTZSm0r0
         KDBKk/7LSK/fR+2jlvNkjehSmGDENYYbcCe5RO5QHScCyLRLd+XVcfBlLSHnwbixj288
         g02XvRonJC6Xyhgu1h0ARo6ObrYzjaTl6eKTPIuPsbAEAoe1Mfy8nkghXSGJK6eT+bgK
         hZPg==
X-Forwarded-Encrypted: i=1; AJvYcCVa8bGSpWD4MbEIsj44nGKGGcAl8ghhRtagMhqj8pmupg+QHhanp0jbP0N/t4mx1J3//n3kF5EgOCc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzWTL8sUkPzipD6IUmAOnA74j2jfvmqvyUdl+puIiBidREj168L
	eAjuT9siP85RCqThdsGJRq1/wEG+k1r8N8lvvoUHRpqGY8YLgsqbl/F0zzF1hnaasA==
X-Gm-Gg: ASbGncvIFJ5dRdudL9ilr7PXagt00Y0qSKK+oHUQFAPmnxNzG8BntwzVc8C/j6Vp8lh
	mWs6UuHMSWVlF8lNSwTHeURHyLhscwg+xwhH39FBmatVkSD003sd3dNYQgTxAcy1o/wmNfM5BiV
	wt3xd+fe+PbYQo+0ZG3IwgIjuz4UyKdt47droR/d3dHr335GlgNjrgYsaNCYiGQIImvaH0mPql3
	KwRM4loHaT3MX87hPKeLL/UDAcGffp1IsgrovrZbkTDxjytcgTGRGBi0EGrIvP3tnrZfUuM0lR7
	U0o2Yacn+D1h+cUGpWw2PG49Ym+RE1xZlKidaAPp91C2EYryywrJalliaHvEzG5dJrBNIdb7M4z
	c43F+xuy9RvooMY7QYaI6lvr7YbFnuPMRBKyjz2ZlrCHtX8CGHBITupCftvCNvN01wGwe2X7uw/
	Wmz3FHW7wA/jDQ9owYI0bdskxH9Vvc/b7XhzUz2o5LgxQJd33LuxR5BOK1k0p0oAf5cYmJspzmj
	bw=
X-Google-Smtp-Source: AGHT+IEEDEMmxnwvuTYTndLVeFHCdtFiUx40H8RFz/xZO5SzI0W2jXln4VZnGdNSAV6WfyKzk4LcjQ==
X-Received: by 2002:a17:906:f59b:b0:b73:9a71:13bb with SMTP id a640c23a62f3a-b7654fa2c37mr258575966b.32.1763627234560;
        Thu, 20 Nov 2025 00:27:14 -0800 (PST)
Message-ID: <6d38653f-8450-4bec-9650-db6af0cdbe73@suse.com>
Date: Thu, 20 Nov 2025 09:27:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8] xen: Strip xen.efi by default
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Frediano Ziglio <freddy77@gmail.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Frediano Ziglio <frediano.ziglio@citrix.com>,
 xen-devel@lists.xenproject.org, Frediano Ziglio <frediano.ziglio@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <20251113154358.28704-1-frediano.ziglio@citrix.com>
 <6729f3d9-618c-4dcd-93f8-d02ca7cea017@gmail.com>
 <8f8a769d-95ea-4554-8ee0-d6247f583e37@citrix.com>
 <CAHt6W4eDDm-fNUB7W1Zgj+x-bkK2fxTB50C38T4Uy0_Ofy_cww@mail.gmail.com>
 <aR3dFPTeH4Wegodd@mail-itl> <38ba402c-6920-47f6-91d3-7b499c407c36@citrix.com>
 <aR35jsEXBcV2uEFY@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: <aR35jsEXBcV2uEFY@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.11.2025 18:08, Marek Marczykowski-GÃ³recki wrote:
> On Wed, Nov 19, 2025 at 04:02:30PM +0000, Andrew Cooper wrote:
>> Given it's now only 16.04 broken, how about simply excluding xen.efi
>> with these broken toolchains?
> 
> That would mean adjusting README to say a newer binutils is required for
> xen.efi, right? Then ofc we would need to figure out which version
> specifically. FWIW Ubuntu 16.04 has 2.26 and Ubuntu 18.04 has 2.30.
> Would raising required toolchain version (for some configuration here)
> even accepted, especially if considered for backporting?
> 
> Alternatively, simply disable building xen.efi in CI on 16.04, and maybe
> document as "known issue" pointing at toolchain bug? Result is very
> similar, but might be more acceptable on the process side...

Along the lines of what Andrew said, the probing done would then want
updating. Which in turn raises the need to properly know what to probe.
That said, from what I've read so far it's not the building of xen.efi
which would need disabling, but (as we already do for certain cases)
its building with debug info included (which in turn is now going to
require its stripping during the build process).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 08:50:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 08:50:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166590.1493076 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM0My-0006Dj-Av; Thu, 20 Nov 2025 08:50:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166590.1493076; Thu, 20 Nov 2025 08: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 1vM0My-0006Dc-79; Thu, 20 Nov 2025 08:50:24 +0000
Received: by outflank-mailman (input) for mailman id 1166590;
 Thu, 20 Nov 2025 08: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=nz19=54=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vM0Mw-0006DV-L4
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 08:50:22 +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 f1db59ed-c5ed-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 09:50:20 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b472842981fso79516866b.1
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 00: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
 a640c23a62f3a-b7654cdac18sm154380066b.11.2025.11.20.00.50.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 00: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: f1db59ed-c5ed-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763628620; x=1764233420; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1k4wVoeEQx/R0py45cUqXCaTXbqkMdqxj52pacX72q4=;
        b=LLbdI4sKFBMEUSptTB8J4vVbOeR8kVtUqKBGMWUfHywJKDAk4crpfH9cV64gDMCtKw
         ar12br4PuUTV2SSdBrG58FMi9i50gZiK213URKOizf7nxBfLxD4PwLVBPQq+wybvKR5y
         JkiwAMZU7Fp4hauCXG5ClOqAnhWQUUVgahcl0/70Ec2o+MiixwmJb/aot0RcicCr+/Je
         J6zv3KBVoq73eu0RZkPBwrIjBazS5VJhA88J0EC9HHARnzGW+kaQero1DkC2JCIebNTh
         xrEvzRENYuNV471rh6q5VK5yZoDrJVLs7F8HGX1eakKO0NRtoGUHw//xT4XpK28ocuzx
         +P6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763628620; x=1764233420;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1k4wVoeEQx/R0py45cUqXCaTXbqkMdqxj52pacX72q4=;
        b=nsVI7u3/U4jk1VvS+vSNqFSG0qNc/IL01QIyrIXp/uY9ytzsBLEllyF9Rw7bOnenXL
         ERLqMKaip7ji4N3BZWlRgKX1XuR1weuqCuTMiWueD+Xf3Rbqfhz0DA+PJ2FWQyBY4NdF
         UPsil0xNrbiR69KHvwv17TFWdeaoslZ1VVhsA2quNUx8BwnuWQNAXQ+Qv5+7KfBb+Uvd
         wn1+GijfTSoWd/9QQq73gScWG3tVEAb41HwKdOEPZSQdPMEKlqzay6sqctYvqw4/71VO
         DC5HcLBjSf6r67EveGpEjCwju/LsbUbeEcRyz7hEQQ/dMK8LJvS/hd3d/HGeFVJfQEM7
         V4ow==
X-Forwarded-Encrypted: i=1; AJvYcCUNq7yeRfnm3XP75SAT7f3A5YjHkYF3veKNjJDLAK8O82JgFH6HoK1ygCde8qoAmfCinx7Q7LmalHw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwdfGT6suBMLWTqe4gaYHSwpan8OeCKTKGfAL4Y//3oXVSaB07v
	e0w63um69C5WWlpx8t+qSN9mAUJKkuyaiAUFkNrdVBSIHRIyQvPkqF8rKZx4GvUULJQiinZ91ec
	Dios=
X-Gm-Gg: ASbGnctSx13XPihUtRdZVvR+eHgSJDDvgGqLk5S7eoDu1IikWU0iA2I7MvZ3E7gIG1D
	vOB8gvbB26DeiOAGbiD4tIduDIT2vytP4fkA1Cwo99Blqhvn4TL0bLkSrm6x/29lSMcJneO5aoU
	b655cbn6EZK1mrvE9evLA/mbPNbFoHviHWnMmwGpXRa0FT1d8Kg6ccYvhSZ+dVbWXvrPWn3TINV
	rEwstdzelZXM4YJJKlPDc+SAUd/DsGyyM9S1TDNeVsd1irOPw2DPjvv1AzoU7v2I+fTUcvl2jcG
	MlyRQc4Jj+LbNuqkrY0ZCW3t4CxvZLvGNgfxeGP4dpPC7rtnFMiz/tuMxCb3dDrhjZTYXLfu+ki
	h8kc1FH/5qeFazEvP4wtr1ydICqW9ugbL83K66oMW6uC+7J1nj4VWMi8xMHms1VtZumMZL8CVEF
	FntUFWeN0PV0FvAgAZZiPc1Y/XM2VUNcZBBGjRlGKxnhwwvJCNJJhGjpN/hwy3mioHbPFiQYDtp
	QA=
X-Google-Smtp-Source: AGHT+IEIA+z1PhPd96CVhddUlzLKUtRykbwgYG+/6wZlKYIeW2UNhagerMSh7Xx8qnWS1AivJOimag==
X-Received: by 2002:a17:907:3f17:b0:b71:1164:6a7e with SMTP id a640c23a62f3a-b7654af8628mr217740866b.0.1763628620205;
        Thu, 20 Nov 2025 00:50:20 -0800 (PST)
Message-ID: <dc779808-a46d-4b71-8cde-6239b4a68819@suse.com>
Date: Thu, 20 Nov 2025 09:50:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v8] x86: make Viridian support optional
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 Jason Andryuk <jason.andryuk@amd.com>
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Paul Durrant <paul@xen.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251119193215.1012108-1-grygorii_strashko@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: <20251119193215.1012108-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

(adding v8 tag to subject)

On 19.11.2025 20:32, Grygorii Strashko wrote:
> From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
> 
> Add config option VIRIDIAN that covers viridian code within HVM.
> Calls to viridian functions guarded by is_viridian_domain() and related macros.
> Having this option may be beneficial by reducing code footprint for systems
> that are not using Hyper-V.
> 
> [grygorii_strashko@epam.com: fixed NULL pointer deref in
> viridian_save_domain_ctxt(); stub viridian_vcpu/domain_init/deinit()]
> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com> 

As before - this R-b likely would need dropping, ...

> ---
> changes in v8:
> - drop checks from viridian_load_vcpu/domain_ctxt()
> - drop check "value != 0" in HVM_PARAM_VIRIDIAN handler, laways return
>   -ENODEV for VIRIDIAN=n

... when more than just cosmetic changes are made. Jason, please can you
indicate whether it's fine to retain?

> --- a/xen/arch/x86/hvm/Makefile
> +++ b/xen/arch/x86/hvm/Makefile
> @@ -1,6 +1,6 @@
>  obj-$(CONFIG_AMD_SVM) += svm/
>  obj-$(CONFIG_INTEL_VMX) += vmx/
> -obj-y += viridian/
> +obj-$(CONFIG_VIRIDIAN) += viridian/

When committing, I'll likely take the liberty to also move the altered line
up, to restore proper alphabetical sorting here.

> --- a/xen/arch/x86/include/asm/hvm/viridian.h
> +++ b/xen/arch/x86/include/asm/hvm/viridian.h
> @@ -86,11 +86,26 @@ viridian_hypercall(struct cpu_user_regs *regs);
>  void viridian_time_domain_freeze(const struct domain *d);
>  void viridian_time_domain_thaw(const struct domain *d);
>  
> +#if defined(CONFIG_VIRIDIAN)

Similarly I'm likely going to take the liberty and change this to #ifdef,
just like you have it elsewhere.

Preferably with the adjustments:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 08:57:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 08:57:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166603.1493085 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM0TK-00072Z-V8; Thu, 20 Nov 2025 08:56:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166603.1493085; Thu, 20 Nov 2025 08:56:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM0TK-00072S-SG; Thu, 20 Nov 2025 08:56:58 +0000
Received: by outflank-mailman (input) for mailman id 1166603;
 Thu, 20 Nov 2025 08:56: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=nz19=54=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vM0TJ-00072L-II
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 08:56:57 +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 dca6f18e-c5ee-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 09:56:54 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-64088c6b309so1042900a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 00:56: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
 4fb4d7f45d1cf-64536459e61sm1598966a12.32.2025.11.20.00.56.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 00:56: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: dca6f18e-c5ee-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763629014; x=1764233814; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wfeZAr65VZxMafVFo2X5gcWWKYJLoRBZ6L7Vh9YvTxs=;
        b=HcDoAsCUA0ThTnpAR53hmRkr4iBn/mNPvmKreODQTAAk5JF5xDJhr3y6c203mS5DYE
         KTgCAFsRso3qFPwGnc2d1CspF5OqrZX1Ei+wUuwm7FzOc9fhXamWgZ9joinCd6O7B1xt
         MbucWa+mJE0OA+O713MUsAjmmnEk1clTAcsdBDi7bv4OD0SaC0GWmZrg5gMA4x+XvP3u
         8oJPFbGyfyXvELrASV1+NS2SPzexAEtKubiaTlkEulKnyi+CNiPLjj9pGIJ5omlz3b8w
         ZSoiC2LcQXyAiCdxX0ttmUZZsyD0iVtLIXf98MgAU5m7uUKcmMzFIAKh+5HQLMDMNyBi
         yerQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763629014; x=1764233814;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wfeZAr65VZxMafVFo2X5gcWWKYJLoRBZ6L7Vh9YvTxs=;
        b=hI1KkcGNHzcJyWCSK+vDj14ShiSPBwzwu5GfaGQr1DjA+D8sBC0i7y4oZ3211p+wT5
         hcy9stf20PiGLsfxmEUpr2i2pu8lbRExMzfKzQT9WUMFeHYLFLwhpuZmdkJIzlHlzRRD
         P2rA/M+qtuxw0zuziLvsgmLWz5f0JaoXDE7l+G0MUf7KuFFJwV57/zpxRKzlZs9ghW7V
         w3c9UZpn2/vsupZk/QYtYMK90d60np4/UwVU8jWuWrXAhlFk2vkEcA1g83kzygSI2Il0
         76p/v+d56gueeoRkrWDWOdc0Mp7AnGVfBHXAonZdEBDit1JMkzDGIVeBsezTuiDab66R
         NbWA==
X-Forwarded-Encrypted: i=1; AJvYcCWjzfRJOM/Za81vRDRm65L3EyB2QAVPDltR7wXWn4HbC2gGATghajqA1DJIiXcBz2ZIooKmXYrrf78=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzMHfZWO9o6nxc0zyGcqrcQ/eFooEqYQ+xHKcGNXHoT9yRk6voR
	pHheR78h4wcVXJf4OvXOzU1oPC2Qqtsv509x7hELZvXkVnL+eOLp8uIanVf+S6OwJQ==
X-Gm-Gg: ASbGncvRJ7JzR3zx7c/Rm4mtJmgFlrkrmSGXI2D8p6mkr9m0pghDsNvmR16wwRhJ2/M
	0Ev98GFwEMviUN51agI77Ht9F4L+CObwpoNr5QOCxkDC3/fOuZUyQdbWpwm0PgzWplUgfaO7EvQ
	xjpvTm34t0/0/0YSy8/WZRY8hWHaLVb/Q4n7jQB6EDPEFL/XHjsrp/TYY8QPgkniIJJ+NpqAGmi
	dg6oLC2sQOMyqEi6A9Lm/EiNoijaWj8C6dbveGVgEk2VitKr513DRxUzPFx6lxmbHadhUwLzE/d
	1juSC4CRmRIf1TOG0L3nCcgRNP3KEJeFotKBMfHHDMWqfjGHaV3D+pEDhcgeDMnVCiwvpMIm0Gn
	f3HXvyBCPeKIpHquR+UdOBcPL00acYaEb8DrStXxy0UM5vGoRZZ5tpFTedaZMr90ETvws0nZQ6X
	TJB/SGEs1AIQzyJt76jtx9qqAHMsWG6dc62p8JjmzAb3Wf/4JzYABmhSnTPKD1hqsJAbjFdGjhq
	os=
X-Google-Smtp-Source: AGHT+IEvQPdJKs+WD2+KJxdxEY1NXrKWP24JRsL2Q708W6N3Rr/05FAL8UL8XPMjLdjjvMMYdZ17Yw==
X-Received: by 2002:a05:6402:5247:b0:643:129f:9d8e with SMTP id 4fb4d7f45d1cf-645363e41d7mr2001856a12.8.1763629013835;
        Thu, 20 Nov 2025 00:56:53 -0800 (PST)
Message-ID: <f354c1cd-c46e-4bd2-98d6-a614029991f7@suse.com>
Date: Thu, 20 Nov 2025 09:56:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v4] xen: make VMTRACE support optional
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 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>
References: <20251119193120.1011448-1-grygorii_strashko@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: <20251119193120.1011448-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

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

Just partly, ...

> @@ -772,13 +775,24 @@ static inline int hvm_vmtrace_get_option(
>  
>      return -EOPNOTSUPP;
>  }
> +#else
> +/*
> + * Function declaration(s) here are used without definition(s) to make compiler
> + * happy when VMTRACE=n, compiler DCE will eliminate unused code.
> + */
> +int hvm_vmtrace_output_position(struct vcpu *v, uint64_t *pos);
> +#endif
>  
>  static inline int hvm_vmtrace_reset(struct vcpu *v)
>  {
> +#ifdef CONFIG_VMTRACE
>      if ( hvm_funcs.vmtrace_reset )
>          return alternative_call(hvm_funcs.vmtrace_reset, v);
>  
>      return -EOPNOTSUPP;
> +#else
> +    return -EOPNOTSUPP;
> +#endif
>  }

... the #else wasn't dropped from here. If no need for a v5 arises, I guess
I can make the adjustment while committing. But it would be really nice if
all earlier comments were taken care of (one way or another) when submitting
a new version.

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

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 09:09:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 09:09:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166617.1493095 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM0fM-0000X0-0L; Thu, 20 Nov 2025 09:09:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166617.1493095; Thu, 20 Nov 2025 09:09: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 1vM0fL-0000Wt-T3; Thu, 20 Nov 2025 09:09:23 +0000
Received: by outflank-mailman (input) for mailman id 1166617;
 Thu, 20 Nov 2025 09:09: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=vEGo=54=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vM0fK-0000Wn-RM
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 09:09:22 +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 996d32ae-c5f0-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 10:09:21 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MN2PR03MB5072.namprd03.prod.outlook.com (2603:10b6:208:1a7::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 09:09: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%5]) with mapi id 15.20.9343.009; Thu, 20 Nov 2025
 09: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: 996d32ae-c5f0-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IPqrXBRDgQ/IljmV6IxIFklqlw+ooFb9YA7visHe5mOUWNLL0Lb4D8FH7haStCRKSyTaqXS46D9F1ijryAweHG7a/9mRQTIDD6/QSo21IyOrzhyeZdwnpIV8w/Az2MUQ5oyp0NdZgyZ+RojDi3wPUGldLSkq/SQePgiTMjNvfkA6ygsH8JQ0hfjNsXVqOjApxbywxTXvYe4B8grXgzu79Fn4QnCjzuM88GN3shmnp65eG2q1tY/MbHcwSDFPKJfhsnWFcCdgl1QI2c5/j6VL+VOGhMC3NJ0bhFLD3BeD/+WXjwYb6zry/9lHEmpIXL/jIaHq+WlUFqgptazguzLcJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OJWY6M/iBPu1ECyWjTISdlhNaeScyqsFCzJbpWuPU8o=;
 b=CRKQkG1i8Vi7gMDGhJJTr0i6oi4Hc2C/I2Pby7vLhAzXg3vZPLTW2k90R9+zIQBMv/EZahHx4b82ChXZrfxCRq22FJg3WipLReY6M3VTSd4Whdc8t1CExRxxNrGbmUF+ccVYSgDm0QPpVNf0rn575jUw3znTBWeBtzPJCRMSdrM6ZfcHc0ttog0sNnOrRfj6uzzHfBs0lCUd0kqUtEsnZbjArPHKfuXf36H0jhKThv8UApHjeRe1f5euZ/ImTFgZL1SW2Dy2cMCqfpJsaTGLgQKMj+m9WG8mkcozNY+Z9nJDORj+4KLctB4RafvC2oYAsstFgS+lJMKSp+8/fptF9Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=OJWY6M/iBPu1ECyWjTISdlhNaeScyqsFCzJbpWuPU8o=;
 b=JcF3C6KtnCIdtEd9gP/uk0KtKm7b/DqRAzWx0Ky71C53X/Sv9jo9tN2PTh5n6IfMhnizleF04O4suvVz4bLHexVJM5qv7iWETnrVbgTp0eRNfp+U/6BLMOqcSuXOrx0rmLb1dIgSSQ05yl79yFkpI7oesiQEbkLva1mUgM2QXHY=
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>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH 00/12] x86/irq: drop interrupt target cpumasks
Date: Thu, 20 Nov 2025 10:06:25 +0100
Message-ID: <20251120090637.25087-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: MA2P292CA0011.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:1::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_|MN2PR03MB5072:EE_
X-MS-Office365-Filtering-Correlation-Id: 948f990f-e520-4bd2-34fc-08de28147c43
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?U3g1cVYrSDJkNHZOTEVMNTBpdEVNclUrOC8yNjBJY3hFNCtOZDBRaGpVYmdv?=
 =?utf-8?B?dUt1bzYvdjV6dWRQQ2VCMFVjRitCcE1WMTl4a1M1QWtBcEE2ZjQ4WWZ6TFRS?=
 =?utf-8?B?QnBnVHhBM2VRYy9sTEhDUEJQaTVBUjV4dUprc3ZiRytWNU1mWE9XblQvR2N4?=
 =?utf-8?B?NDBRc1N2MGRESzBOa0REVkU2YkgzSmVoNmt4RFp5QnpBSHZ1U0IyR2VVY0dI?=
 =?utf-8?B?bTBoUjR2QnRBMXlVYkxMS2JPbFZWenVhRk5aRUpWNWU5NWhNMHFTc2F5Mlhv?=
 =?utf-8?B?N0NCdlBLajd4M01od0VKdVUwZjdycXJNamRFS2JkdDluNnppNjdrQVRpOExV?=
 =?utf-8?B?S0JBejVmYS9DK3RIK2Z3cDNQUFlmNVpzMStsY1NOZGN2SDVQZmdqNFVrVEds?=
 =?utf-8?B?allha0dRQm5BWnpTZWNVTEZZN3hNSFc5ZlY3S3RSNytMem00NUFjS0MzYncz?=
 =?utf-8?B?Y2lPckZTMytXVGZMaHBheUVPQlBhdFlBSDZZUy9jUm1Cdm1FUmVOcDhZSktx?=
 =?utf-8?B?TmJBdkd2bE5ydmpHQVpwcUhHbHBrdDFEcHNYejRBTVJycFZvd0xrcGFwWDcv?=
 =?utf-8?B?VVhiNGpmcnIvSm1XOElsTEVOMDlpbjlFUVNuWDU2dHAxRXdGaEZsY0l4ejZP?=
 =?utf-8?B?SjJpZ2QrdXAvUldDdmNTVXFWZjgyK0JBSWRjbWpBUGJ6OWo4N2ptMDBGTVR3?=
 =?utf-8?B?eDBXV3B1d1A3dVJrYVlpN0QxVVhVZm1meEJhV3hDSjBaYUM4NzFtSUsxbXNm?=
 =?utf-8?B?RGw2bzZhZVBrSU80czNlVUhTZ1VMRUNTSzYyYTBQbVl5cnNZUFYyZ2tUUTk0?=
 =?utf-8?B?dnlYZTZTUDdZbUN0eVVMY2Zzb3hMYXRvTFpIZi9SeU9qQWhmcW1HL1VoMktj?=
 =?utf-8?B?NHFwUnJKTy9IT2ZRZG8xV1RqKzNkRWdZbWV5WVdYR0JuWUp1RHZtOUJZZXk0?=
 =?utf-8?B?WTFIY0d6SitDdjFiOFZCUGtaVG9wM2RMMWxnSCtyZlppanBFRkhLYitYdlBT?=
 =?utf-8?B?T0kxT2lmRHE2c28wWVpWVW9DTUwvMU9sZXE3cGw2K1hrSkZ6YWJrcmZyM0pt?=
 =?utf-8?B?clo1OUFoZTltNUZPWWtNdCtwVCtTd2hhVDRnZUQ1RGZSSWhzMHo3c0Z3bkZr?=
 =?utf-8?B?RGw3TWVrdEVQcnMzTUl2eXhKUkYzeGRsWmNMdTZPUXJiZElOb0VqaFhNQTZp?=
 =?utf-8?B?R0xmazM3SnhaYzJoV0xQZnRBeVVGWWJpZi9kbVZDR3FjNllFWkVyM2phY2dk?=
 =?utf-8?B?TnRmYWl3U0kxM3UrZG9NanY2emRoQUFiRDFLdkU3NzcxSll3Ykx4Q1ZYeUh5?=
 =?utf-8?B?bVI3REdYME9HdjR5bG9abnI5eG1YaW54b1dibDRqOHFYdWJXSDVLQitPOUZ1?=
 =?utf-8?B?a3RiM29sWjFzd3NmTEg0cm1Cb0dUcVRPbXg5bGtLSXlKR2JzSUMyRGM4R1lx?=
 =?utf-8?B?RmpsWXVnZDR3RWlzMWEyQ2V2S1ZNcy9YVEZXNUtlSlE0Y1FFOUZ6RFk3L3pN?=
 =?utf-8?B?Wm9KNWJtcVFSbHFvbXI2MG56eVJENU1VTzY3VjBDeE1USU1BRERZZlJreWFB?=
 =?utf-8?B?WDhJRlJmSWVldFhxeVF2VFprRysxeW5IcWo3WEtCQ2d6blUvcThQYy9BTytk?=
 =?utf-8?B?bXgyYmVXSUpoeWxlcHZtckdVQ3dzbHFZUDcrSnorU2ZQdy8zZlZhdlBwWGJF?=
 =?utf-8?B?MHlPSExsenROUmcvS2xLSjhuYWN5bWF1ZjR2ckV4Z1daUnFkUTlrTWdDTzZv?=
 =?utf-8?B?U1ppaWFKUFRYaDZlamFHSUF0b3FtUkVCays3M3NydHlGSTB0T1JPQkVJMEg2?=
 =?utf-8?B?Y0ZteGMrMUdYSU02K2FVZEhYeXYrN0c2emR2N3dMOHBsQUFwWXhZYituR0Uw?=
 =?utf-8?B?RVNlekdnK3IrbVlPdFlQanNPZzB1T1ZGZitob1B2QWZST3F4aUJ1bkJXamtT?=
 =?utf-8?Q?8OAD0YryYEht0m5BqIdmX+J4muP+aMtT?=
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?UVhXYmxJeEFsTWNkQ2VKTEJlcGxqUFhQbHpVSXpWbVE2dEhVclJnbVNFclgr?=
 =?utf-8?B?amtDamNxRWZXMko5N3hQTUhXTGRjWnRGQ20vTE1mQU1KRnUrbEFQNzM4eFd3?=
 =?utf-8?B?QTRPWGVrUStrTVVmQU52eW9SQWVqYVRxNTlwbFo4Uk5pbVpNOGxIRHRRSHp3?=
 =?utf-8?B?UW9vLzVZbWNOeXhpRzhNT1VkQnlMa2JvR0s3dGxVM0Z2elJDaWFZSDVRWTIz?=
 =?utf-8?B?L2lUUUh3YTkwbWJyRFRodVgzTFJ5R3dMdjZFYlJEMkhrb3orWWUrdXUzMmdq?=
 =?utf-8?B?SzNkVloxYzdRZnhRQ0I0RkdPUU41Nm5WalNuQnJaZVZTSm9QVXNQcU5DMnFt?=
 =?utf-8?B?R3JSeHZhNThFZkgyS1RnNkcyd20yZ01aclNoRGs2ZDltbUwrRG9vRDk4d1VY?=
 =?utf-8?B?aStISEJDYXFodzdyVlB4a3NnZGo5YlhuZ2hKZkVVVGJXZzd5R1FyNjhYcDVL?=
 =?utf-8?B?YVgwdFFCY1pkbUtRQzgyS0dlL292YXJEZHBpWjJueVhUMTNRTUxOMldGOXRZ?=
 =?utf-8?B?eXBYWTdlNVM0V0swdDZpNU5nVjRCRklCOGhBRmMybnM0WFlzNnUzcWoveGlZ?=
 =?utf-8?B?K0RteFFEclpCOE9rVjBWMTBEUC9XSG9aa05rcEJJbW9nU3IxTVF5Q3kySW5s?=
 =?utf-8?B?d0pPeEV3ZVJYQ3pveFhLZlkzd096Slo1b2RGTGgwc0ZnZ204OXlmUkt0S2d6?=
 =?utf-8?B?RVVGRm5ueDFNeFh5cHRKdjl2cjljS2dBUm1hVjRYMm5Gd1RJeTJGNXFDRzBK?=
 =?utf-8?B?VE16bWlBR3R3ZWc2VEVVZVU2R3BGQ0ZDWWlwdE9wU0g0eUM1a3p3SXNlME9X?=
 =?utf-8?B?SUJVSCt1VlJxWklXUzFWR3lkTjJ1RVFxN3VOeW1pMVpwV2NPbTd2N09LeC9z?=
 =?utf-8?B?Y1VsUnErejZxeUhVZE1ZdlBPRktua3hqaWp1M1hINVpDejE3NW8wcjFwWWVn?=
 =?utf-8?B?bGZ1Q09YZktIWGRPcDlQb0srQWJxSWl3cU1JZ3ljVFRwZGJsWWVZdTZMTjZs?=
 =?utf-8?B?RzcrbGFUd2Nld0JGcU1uaW83M0pKbUF5Qjlwdk9zRmJSc28vYlMyTU9KcDUy?=
 =?utf-8?B?bFBHOHRYZVA0UG50eE9zdHlUN2JZNEk2NDhidUZYVitwUDJLZ1BLZ1BEeERz?=
 =?utf-8?B?SCtDcmdPTzVxdXFGMnRRYjJIVkNqMGFjc05nM1FEQkJ0ZGxxOHlYbVdQRGNL?=
 =?utf-8?B?SnVFby95cVZLZUhNeXpiRlBoWGVLYndndVkxMk5peW0wUGp4TlVJOU53MThn?=
 =?utf-8?B?d2RMUzh5NmRVUWhkWU9NbVliZVFwYkdlcjFTRG1KUWVULzNmYlZSN0lyL0h1?=
 =?utf-8?B?TVZuQnA0N2t2ZmYvTG5YV2ZxbHZyUlRqcThBSytCcXVPaXVmclZKYmZENW1n?=
 =?utf-8?B?QkhlYjNJS241ejVveC9rMWN0dGZMbFdHdGlsZWxNbEp4akFJeEE1cHBUcFRD?=
 =?utf-8?B?VE9kR1drWWJkS0xMMEk5bDY5Qi8rVkhqYTN5OEk4cm5UaFlRRmgrbExBQ0Yw?=
 =?utf-8?B?aU1wMlJVZzVrK2wrK01KMjBDeitwbTBTbjlvMTZVYmNUQVBwbGx2L1gwQWF3?=
 =?utf-8?B?TTVEZU1tbzRBWFByWHUwZTdGOU8wM3RlWkw1WUlaNUcxTGNSQVJCam5pSTBz?=
 =?utf-8?B?RW42TkhWaS9YMFJ1VElJZWtwQm9yalBoQ1hlOWtKcGM5L3BrMTlPTXZ5Qng2?=
 =?utf-8?B?c1JSSGMyTktVa0hJcmZMbVdua1F1dS9UaHRHUXhWR2hZNFI4MDhSK3ZpbzJk?=
 =?utf-8?B?STZPemhvWll3OS9OUWFWTUcrNjFQL2QrNGJ3b1ZkYWljRlpMV2RJZkFkbWVr?=
 =?utf-8?B?VHZ3N1pWaVpQRFFrQUFBNWl1bHV6d0JzRWxFRllrRUErdE1NZDVGS1V3R0ow?=
 =?utf-8?B?RmwxL1pDektxeHBsaEJmYWFNOGVsdXNMRGM1ekNncmhTQXJ4Vis4WFl0RXhF?=
 =?utf-8?B?VkpvNzhpQmYwSFozbG56WjJzenF3RVFsUENnTlV3NVJEa3E3NnBiRkM1cG4v?=
 =?utf-8?B?Y05mQ1VJVStZaGYwMm1iUG9WWXBIWWVOYS9pYStycnIwbFJYdG1Ib0YvcjVu?=
 =?utf-8?B?VCt3TTltR1dSN3J6OGNPU001b3FIUTQ1QTR1OTF1VFVSM0pwUDc0bk10eHAr?=
 =?utf-8?Q?RvoG8bbSgw7VG+KJxaOzeg43P?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 948f990f-e520-4bd2-34fc-08de28147c43
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 09:09:18.4226
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: HvD+HdafZ1UltqOkYSQ14kczFFBhR1MlpKPt0pNV1UPJvjGYfkHYj2uO8tkaMkZan7n8yuCNYkZF/SwN8bkFBw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5072

Hello,

After the adjustments that dropped logical delivery mode for all
external interrupts the Xen internal interrupt descriptors no longer
require a cpumask to store the possible targets of the interrupt.  Using
physical delivery mode only allows a single CPU to be the target of the
interrupt, and hence the field can be converted into an unsigned int.

The series contain a bit of cleanup and code adjustments ahead of the
removal of the cpumasks that's done in the last 3 patches.

A couple of notes from the series:

 * It's possible that further simplifications can be applied to
   fixup_irqs() (and other logic) after dropping the cpumasks.  I
   haven't looked closely enough, but in any case that would be a
   followup change(s) on top of this series.

 * Current code seems to confuse interrupt affinity (possible interrupt
   destinations) with the current target of the interrupt.  For example
   irq_set_affinity() doesn't set the interrupt affinity, but rather
   migrates the interrupt from one target CPU to another.

Thanks, Roger.

Roger Pau Monne (12):
  x86/apic: remove cpu_mask_to_apicid hook
  x86/apic: remove vector_allocation_cpumask hook
  x86/irq: introduce local irq_desc
  x86/irq: set accurate cpu_mask for high priority vectors used by
    external interrupts
  x86/io-apic: purge usage of logical mode
  x86/i8259: redo workaround for AMD spurious PIC interrupts
  x86/io-apic: fix usage of setup_ioapic_dest()
  x86/irq: adjust bind_irq_vector() to take a single CPU as parameter
  x86/irq: convert cpumask parameter to integer in
    {,p}irq_set_affinity()
  x86/irq: convert irq_desc cpu_mask field to integer
  x86/irq: convert irq_desc old_cpu_mask field to integer
  x86/irq: convert irq_desc pending_mask field to integer

 xen/arch/x86/genapic/bigsmp.c            |   2 -
 xen/arch/x86/genapic/default.c           |   2 -
 xen/arch/x86/genapic/delivery.c          |   7 +-
 xen/arch/x86/genapic/x2apic.c            |   9 -
 xen/arch/x86/hpet.c                      |  11 +-
 xen/arch/x86/hvm/hvm.c                   |   2 +-
 xen/arch/x86/i8259.c                     |  17 +-
 xen/arch/x86/include/asm/genapic.h       |  17 +-
 xen/arch/x86/include/asm/irq.h           |  22 +-
 xen/arch/x86/include/asm/msi.h           |   3 +-
 xen/arch/x86/io_apic.c                   |  61 +++---
 xen/arch/x86/irq.c                       | 249 ++++++++++-------------
 xen/arch/x86/msi.c                       |  17 +-
 xen/arch/x86/platform_hypercall.c        |   2 +-
 xen/arch/x86/smpboot.c                   |  12 +-
 xen/common/cpu.c                         |   1 +
 xen/common/event_channel.c               |   6 +-
 xen/drivers/passthrough/amd/iommu_init.c |   2 +-
 xen/drivers/passthrough/vtd/iommu.c      |   2 +-
 xen/include/xen/cpumask.h                |   1 +
 xen/include/xen/irq.h                    |   3 +-
 21 files changed, 179 insertions(+), 269 deletions(-)

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 09:09:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 09:09:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166618.1493105 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM0fQ-0000lI-9d; Thu, 20 Nov 2025 09:09:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166618.1493105; Thu, 20 Nov 2025 09:09:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM0fQ-0000lB-6A; Thu, 20 Nov 2025 09:09:28 +0000
Received: by outflank-mailman (input) for mailman id 1166618;
 Thu, 20 Nov 2025 09:09: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=vEGo=54=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vM0fP-0000ko-7E
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 09:09:27 +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 9b660b1a-c5f0-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 10:09:25 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MN2PR03MB5072.namprd03.prod.outlook.com (2603:10b6:208:1a7::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 09: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%5]) with mapi id 15.20.9343.009; Thu, 20 Nov 2025
 09:09: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: 9b660b1a-c5f0-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CY3pp3KGq2x5i530EyvJPlUOEY9Ql9q8yyecWEhUvSLDXRMshLa+zG8myR9gADzCn6JQcqk2H3PLagLmtU1wFjs67GSBGZt7SMYRNdEv0RikyprjNeTK8KQDPPdRPZBMvxhyBiUNTangL+2GeH8UYtA4nyIdak029jbzVag9o91TG5TpgmKaRSMINM/2JJfTTG50fLXpKzJM/bdbmqGdBTETc1l2yMpdUxHA+d69s/or6jkSnpcA8adDoCwE0UVgW9Ztcu4vUdDVliGBmi7tLnevq9v2qD8nzHchNrnaTL2db2sD5EQacEs1nHFgDhkHSY663gvpHLHY0XuXUvyDRA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+3Za9LyGvxYALLsg1XgahqG2nvkE8DL7H3BT/GA2ww=;
 b=CDV3lOVpfTnH76E7KGr72V/LsoUuhy/+1EocokOLOTfA/a1AEttgbtNyEr18xEPaf6PVe/i3UQ8BqiVLOL2FmxBoXI8CBsxqO7GueJLuSr1fFPgVEw3AiiDRoliSP2HZgYsQ4pBWtghy0hpZkI28iiiydU0vowWYj1Utr4onUSmji+G/zBezvRqZsXyxsX/WTMkZG8f4fp0eD/QW+MKnZMrEGRAVRq5ygKnaFvQ2OS6nRd0qW0eivoYnkhlg8bGgMnmP0xhYrpzaSSl8RVKuYuiKklgFoNGRGP5S/Fbbq+qGNUMZylR8LTYAjtaqPyy0vBlgI6oe3NjHeS7GIl0nIQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-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+3Za9LyGvxYALLsg1XgahqG2nvkE8DL7H3BT/GA2ww=;
 b=uso4raBSc6TlWKTQ5oR7y1gPj5r4W5pX+HEctwfQU6Ue6twSAchbfVAp+ieJ1Y6chKouLtqCDECEAMbMnWIHa2/S4LAe6dAidGgAKOOcafjC4V9gPDhkO8Dc0W6ukWueYPpabLWK9qmLWakEef5Rb+z8jDt6emoWSluY4DaG0QU=
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 01/12] x86/apic: remove cpu_mask_to_apicid hook
Date: Thu, 20 Nov 2025 10:06:26 +0100
Message-ID: <20251120090637.25087-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251120090637.25087-1-roger.pau@citrix.com>
References: <20251120090637.25087-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
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_|MN2PR03MB5072:EE_
X-MS-Office365-Filtering-Correlation-Id: 033ef387-be79-4a73-43a6-08de28147e3d
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?Ym1XeVE1cG5UYWxWTWdjYkZ5eEZNMWhMMzhXVXVEeDJjVFVSVWVzdm9aRmVt?=
 =?utf-8?B?b2YrZEZkOGFiYWpjWjV6elZ5Z0lwRy82bUNtcHFsK3VnNFpsUGVQVklkdHN0?=
 =?utf-8?B?Um5Wekt4aG9OQ0VsTDNJenV3Y3ZvQWQ5VmJWa1NXQUtadVQ1VU1wOUp3UXhx?=
 =?utf-8?B?UnZuYWZxOG81WUtxbnZtdUYvVzFoY3dOSlZHVTJsbVlPUlJFcWFTM1BnODht?=
 =?utf-8?B?VTFkamdRS1Z0VVc4bGZOZHUxVmFaT2JLQWU5L0JURGwyZTVOODkyZXNVd0xx?=
 =?utf-8?B?Z0dERWxmbnByR1A2UG5sL3AyaXBEV2l1WTNpSGhxcE9NRENPWkRiV2FPRytI?=
 =?utf-8?B?b0dUa2pLeWtVUXJtNlIrb2RoWmpwZWJDd3dWU1EwSzBHejgwSnRPUXNEaUdV?=
 =?utf-8?B?S1JFeUhoT3VDc0hiV0tnQk9zdHNxMzd4NGVRbmhGQWNuZ1cvWWZEZzh1ZkhK?=
 =?utf-8?B?cWhXS01GNkVRVFhEQndkOHRTeWgyN1c3QWtTR05LalBOdlQ3d2ZDU3JVSHZK?=
 =?utf-8?B?blFqcXhES3pnb0pvTzllTE0xTENkTDNkYm96UzZRUlYveEdvQVJ3ZEVZcyt6?=
 =?utf-8?B?RURySEdWOTVHY05Oblh1YnRTVG9hWkRDVFd6MVZOR3ZYY0NDQjdNVzMxTGF6?=
 =?utf-8?B?emVvQ3J2M0tnVWY1dVlXVmxsaCtsaFFWQ2U4VEJ4TWxTOXVpUHhhcXZJSGdz?=
 =?utf-8?B?a01wakc5aC9jRFQzSDZhNmhCWVdxeWtZbDlPQkEzRDczVmp5M0tjWG1GSnly?=
 =?utf-8?B?K2xIRzc5N0lmT3drcTRJM2hlQ0NxZVBYUi9FN3NaNlZVeUxtTklndHJkYVBG?=
 =?utf-8?B?ckYzVUhSVXpjZ2YrMUk4VXdzUUg1SVd1ak9PSjc1eExQd3J6MWdPRG8zQS9S?=
 =?utf-8?B?dVJBcDZlbGlxS0J2ZlFnc0lpbHc0ajhKd3B5MjdvdzBpYnE5WUVlMWFKTzNF?=
 =?utf-8?B?Uitpb1hpVjZhMVFPSzZyUG5Cd3RvNmswbERyOWI5cXZlRmw3N3p4SVdVeGRV?=
 =?utf-8?B?Vk9XY0ZKSHE3UUxEdGJuY0dKSjlQMSt4TkF5U0RyWnN4TlRsaGpnL1dkWDZ1?=
 =?utf-8?B?NFRxS0xRdHh5RW5Ia0I5OER0WXMyekR6MnJTdFdCNXRxWTAzcjFpMTYxaDBY?=
 =?utf-8?B?em9HVUZoNWQ2M1pkdmFNejY5YlM4Y09RcE1HOWlHa0ZCcDdCUnkwYktjVjV5?=
 =?utf-8?B?Yno0YWIwSi95aDRyRXpKdzAvOHpkVXVUdFVCcmROb09ITUZybEdUK29KQ1hn?=
 =?utf-8?B?UExRNGdBQ3lVQXBFV0tWTEtrc3l6MDhtWWVVMUhUME1VTjhqWEFHaUVJM0Vh?=
 =?utf-8?B?dWpuVnBYdFNjSnZrTXJWbHhIR2p0dS9INWJFN3FvQU9TbnlJZUY4eW9Nek8w?=
 =?utf-8?B?UFZHZTc4RHB0d1UrTU4vaTA0c3h3K1dWeGdhalVxK0J0S2R4WGlRQVBrMEQz?=
 =?utf-8?B?MUlNTm1NYTROVEMvaVZHUnVHRGFveFptaU96eUVmbklQaGMzVlo5bnRRRWwy?=
 =?utf-8?B?UW5lRFcrRStyQ1FnWWllUVJ0OE5QRk9KMjVQZEJYcTBGdU05OGZudk5oWEVq?=
 =?utf-8?B?YTBsRU5ORmM3dmpJbnRlc3Y4RDlmME9ITlgyUXMvNkZaSWVUVnFMaTgyVFpY?=
 =?utf-8?B?L01Bdk1PcTQxeDRqUFFtb0Vvd2c3VUp3Sm8wRE95dExqSGlyYXBGZW9SUUdH?=
 =?utf-8?B?UjZNdkNIdkFLc0xYNmdLdzN2NG1IZjMzQXdsTjhha1hqc1ltZ2NPR0Yydmp3?=
 =?utf-8?B?MGdVcUx2YUFreS9WcTAxYlR2UnBSNlZqT3c3czd2c2NaTzFrQ1VaTUF5anlP?=
 =?utf-8?B?dTdjdGYvODdOcjRBY1BnWnl4MHdjeHo3TVZDRnBOR1VGQnJaUzB5T29wTnRW?=
 =?utf-8?B?THpERkM2SnlOWUhoYmUwSituSE1Wa3pIdmpKRmEvc1c1UVJhT1RRbHBuSEhB?=
 =?utf-8?Q?WEbzQ/moflrPrMafMbkPJypKRXIkThmU?=
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?L2lYZVRHMjdLWXVibzBKVnZLdmtJd2VkUFJlTEhEOWY5UURiZkJGRmZmRFlQ?=
 =?utf-8?B?Z0JCMEFVSThGV1dFZWZvRmRBMFFUOXhvS1pYb3VUU0llR3NYL1pqZUhWSTBY?=
 =?utf-8?B?d050aHBPV0k0aEtoaGFXNGtBcDYwd2VITkxzSVZtOWN5dDZCd3d3OHY3SVJV?=
 =?utf-8?B?ZS9QczNKYTlyVmdub3J2eklqd0ZBTmhoZ1lBbDMrWXNVMXZvT2tDSjN5UzNm?=
 =?utf-8?B?TjNZTDhOYjV0S3JseFA3QXNLQ2UxWDBKcEJCM0JmUUVuZHdDQUVCb3N1NnJr?=
 =?utf-8?B?MmJIN0hSQ0ttTFJCUWRsUDVqQ0FBUko1Um5aenFTQk5SV3UrUmlDdUIvMmJm?=
 =?utf-8?B?YkFZN2IwK2JOL3l2VFJrbHBncTRaVjY2b1BqYTh5bmR5anVPVXRzQ2h2VWgx?=
 =?utf-8?B?UTdxRnEwTDI3WGdZRDRaKzUvQS96d2x5NFVwOTJrMGwybUgzd1hrZ0V3NjRn?=
 =?utf-8?B?ckcvbXUrbDFwQm5VYUlxN083RWM2UDR2OHJHekEvcXlxZ21YVzFzejhheFUy?=
 =?utf-8?B?MGlrckdhTTExdUFtRWtya1ZCa0NvMlVXQ3luSDN5QmtTVjY0Y3I3RUlUWEh5?=
 =?utf-8?B?UjFUNHhIM1E3eW1JZ0wyRUpmbjlDWjNrajRHUFNxNWovUkJLMlNCM3lMRVpR?=
 =?utf-8?B?aDhtaUtFSkozVUxlRDFHK0NPaEJNN292QVdNV3I4cENZUHQ5REkvOXVaNklu?=
 =?utf-8?B?YmVjcDNIdGhQMDBqTlNzQ3k2M3FrYmRBbG1IK00vM1gwdTV5NFd5eFYyTmJr?=
 =?utf-8?B?UUNUMUVYb2lHbFBqUnNyTXJMZkt4NkQxK1AyUUZBWlIxNjRLYXZ2b1k1UlZH?=
 =?utf-8?B?YVNhdUlWL0c4TnNycXpwcmd2SHdSdGdxTmFIZFdkSjY1VCtQREo5L2REQTZm?=
 =?utf-8?B?aGQrRDBFeldjNnB5Sk1ZYW10NDlNNTMwWEtqcWd1dmJVczVUTEtaZTBPUXl4?=
 =?utf-8?B?MDRVSXgwdXFGTHM2SjFncnV3ZmZuRmYvaGFTU1RmUjZ1VlQ2cDFpYW4vcWVx?=
 =?utf-8?B?NVJnWlRpV2ZQRnRWZG5WNnRLSmJKM0p2b080T3E3Y0I0UktsbEE3VW05UFNM?=
 =?utf-8?B?MXlsTy9lSEtMbGNvTndHbnpKRzVpYmpIdllaYXJhbXlBdjduUCszaXE3N3dX?=
 =?utf-8?B?OVMzRnZUNDdqYUxEOGg4NUh3T0I3ekN1cVlxOFJXVHNTZWZTeE1aQ21XM2JR?=
 =?utf-8?B?R21aYWF4MmtwcS9Xbk1hSTN3aWdHQnliTVE5ZGc4Q0FldlRMUGhXZVEzQmRz?=
 =?utf-8?B?ZGpKMmJMNzYvWlpvdWgyQTQzUVRQeW52TEhwL0xZZ213bWdWQnlQRnRIWHNO?=
 =?utf-8?B?UzZJdEg4WmlpMU1VcjRlR0VSMmZ3MnZ1ZnZ5aVRldjVualJESTJHTitWUllK?=
 =?utf-8?B?Yi9qc2NRY3JLSDZTLzhkdjZaUVVmTEhKK1B2ZnMyYk5vVjFndFoxeWRUMjBh?=
 =?utf-8?B?MjA2cGtaUUY3ZXE3N3Q2Z1FhOVhleVFMTDI0bzZVR1ZtTlNiZDI2anBRdjBh?=
 =?utf-8?B?TUIwTXZ2QURVYXd5UCtKTEkvVUFuN3NmMU12cmw0YktuR21WTndoSDBWSDBT?=
 =?utf-8?B?SFd0bjk0VjhGRmI2YTUxc3RtT0w3L0NjZ3NjRndXL0ZHcGZldmZVaWpQZlZw?=
 =?utf-8?B?WHlZNU9pK3prZnVzVDR6WktRa3N5Z2VFWGxuNkVTbS9YdTZhR0xGczBtQWM4?=
 =?utf-8?B?M0J6YzZqRytMOUM4bWtMQlJUUHczOEwydmhGUjlsakM1ZlZqc3FDNDVvcytk?=
 =?utf-8?B?dUd1ZzlrMGl2ZDJqdVlFb3k4UXpYN0xUMmkyOUlnOWJkQlI1Rjg1VG9FbHAw?=
 =?utf-8?B?ZWlZRWNvc09ZWjlBekE4eGNmRjZkMlhUV2VqTDd0R2ZYSCswL2NjS0VGdjVy?=
 =?utf-8?B?ZjNYelM2WS9HZDVBYllVQ0pZSjBaWkw4b0NsTU90R3k2M2JVVEpZYzVYa3dG?=
 =?utf-8?B?eEVtVGhnaTN4WGxhS2F2N2J5YVdrQTB4SDN6bGhsWGw1SGI0cFZtWHRXWmJy?=
 =?utf-8?B?Nlp6VGJmYUk0ZmtxRGNiZTRxelJibDNuaDlMY1FjS0wwZURYcDEwNWVORUMy?=
 =?utf-8?B?b2I3V2pYOWI3WDJZcnhwVE1TdFlOYkhSdGxTRXA3TVZQcjJKTm90UHhxY1J6?=
 =?utf-8?Q?c6gUWrQ5sujwUcAJ2qzEWtJkG?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 033ef387-be79-4a73-43a6-08de28147e3d
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 09:09:21.7137
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7DgPSVGKeoA/xB7v9KZ0pnMcftCfgFHETVgfkQaJN7L0n/qZjHxq+pBDGQE2wHda//0xN2p7fi+DlM1Uv0mByQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5072

All implementations use the same hook.  No functional change intended.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/genapic/bigsmp.c      |  1 -
 xen/arch/x86/genapic/default.c     |  1 -
 xen/arch/x86/genapic/delivery.c    |  2 +-
 xen/arch/x86/genapic/x2apic.c      |  2 --
 xen/arch/x86/include/asm/genapic.h | 13 +------------
 5 files changed, 2 insertions(+), 17 deletions(-)

diff --git a/xen/arch/x86/genapic/bigsmp.c b/xen/arch/x86/genapic/bigsmp.c
index ddb3a0b5d727..066feb4a1755 100644
--- a/xen/arch/x86/genapic/bigsmp.c
+++ b/xen/arch/x86/genapic/bigsmp.c
@@ -48,7 +48,6 @@ const struct genapic __initconst_cf_clobber apic_bigsmp = {
 	APIC_INIT("bigsmp", probe_bigsmp),
 	.init_apic_ldr = init_apic_ldr_phys,
 	.vector_allocation_cpumask = vector_allocation_cpumask_phys,
-	.cpu_mask_to_apicid = cpu_mask_to_apicid_phys,
 	.send_IPI_mask = send_IPI_mask_phys,
 	.send_IPI_self = send_IPI_self_legacy
 };
diff --git a/xen/arch/x86/genapic/default.c b/xen/arch/x86/genapic/default.c
index 16e1875f6378..ab9a292464d6 100644
--- a/xen/arch/x86/genapic/default.c
+++ b/xen/arch/x86/genapic/default.c
@@ -18,7 +18,6 @@ const struct genapic __initconst_cf_clobber apic_default = {
 	APIC_INIT("default", NULL),
 	.init_apic_ldr = init_apic_ldr_flat,
 	.vector_allocation_cpumask = vector_allocation_cpumask_phys,
-	.cpu_mask_to_apicid = cpu_mask_to_apicid_phys,
 	.send_IPI_mask = send_IPI_mask_flat,
 	.send_IPI_self = send_IPI_self_legacy
 };
diff --git a/xen/arch/x86/genapic/delivery.c b/xen/arch/x86/genapic/delivery.c
index 15100439be05..5d105e848502 100644
--- a/xen/arch/x86/genapic/delivery.c
+++ b/xen/arch/x86/genapic/delivery.c
@@ -35,7 +35,7 @@ const cpumask_t *cf_check vector_allocation_cpumask_phys(int cpu)
 	return cpumask_of(cpu);
 }
 
-unsigned int cf_check cpu_mask_to_apicid_phys(const cpumask_t *cpumask)
+unsigned int cpu_mask_to_apicid(const cpumask_t *cpumask)
 {
 	/* As we are using single CPU as destination, pick only one CPU here */
 	return cpu_physical_id(cpumask_any(cpumask));
diff --git a/xen/arch/x86/genapic/x2apic.c b/xen/arch/x86/genapic/x2apic.c
index 58157c217ee8..f4709ab92950 100644
--- a/xen/arch/x86/genapic/x2apic.c
+++ b/xen/arch/x86/genapic/x2apic.c
@@ -142,7 +142,6 @@ static const struct genapic __initconst_cf_clobber apic_x2apic_phys = {
     APIC_INIT("x2apic_phys", NULL),
     .init_apic_ldr = init_apic_ldr_phys,
     .vector_allocation_cpumask = vector_allocation_cpumask_phys,
-    .cpu_mask_to_apicid = cpu_mask_to_apicid_phys,
     .send_IPI_mask = send_IPI_mask_x2apic_phys,
     .send_IPI_self = send_IPI_self_x2apic
 };
@@ -162,7 +161,6 @@ static const struct genapic __initconst_cf_clobber apic_x2apic_mixed = {
      * hence are set to use Physical destination mode handlers.
      */
     .vector_allocation_cpumask = vector_allocation_cpumask_phys,
-    .cpu_mask_to_apicid = cpu_mask_to_apicid_phys,
 
     /*
      * The following fields are exclusively used by IPIs and hence are set to
diff --git a/xen/arch/x86/include/asm/genapic.h b/xen/arch/x86/include/asm/genapic.h
index 04d3f1de7a1f..6d979279bd2b 100644
--- a/xen/arch/x86/include/asm/genapic.h
+++ b/xen/arch/x86/include/asm/genapic.h
@@ -25,7 +25,6 @@ struct genapic {
 
 	void (*init_apic_ldr)(void);
 	const cpumask_t *(*vector_allocation_cpumask)(int cpu);
-	unsigned int (*cpu_mask_to_apicid)(const cpumask_t *cpumask);
 	void (*send_IPI_mask)(const cpumask_t *mask, int vector);
     void (*send_IPI_self)(uint8_t vector);
 };
@@ -36,16 +35,6 @@ struct genapic {
 
 #define TARGET_CPUS ((const typeof(cpu_online_map) *)&cpu_online_map)
 #define init_apic_ldr() alternative_vcall(genapic.init_apic_ldr)
-#define cpu_mask_to_apicid(mask) ({ \
-	/* \
-	 * There are a number of places where the address of a local variable \
-	 * gets passed here. The use of ?: in alternative_call<N>() triggers an \
-	 * "address of ... is always true" warning in such a case with at least \
-	 * gcc 7 and 8. Hence the seemingly pointless local variable here. \
-	 */ \
-	const cpumask_t *m_ = (mask); \
-	alternative_call(genapic.cpu_mask_to_apicid, m_); \
-})
 #define vector_allocation_cpumask(cpu) \
 	alternative_call(genapic.vector_allocation_cpumask, cpu)
 
@@ -59,7 +48,7 @@ void cf_check init_apic_ldr_flat(void);
 void cf_check send_IPI_mask_flat(const cpumask_t *cpumask, int vector);
 
 void cf_check init_apic_ldr_phys(void);
-unsigned int cf_check cpu_mask_to_apicid_phys(const cpumask_t *cpumask);
+unsigned int cpu_mask_to_apicid(const cpumask_t *cpumask);
 void cf_check send_IPI_mask_phys(const cpumask_t *mask, int vector);
 const cpumask_t *cf_check vector_allocation_cpumask_phys(int cpu);
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 09:09:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 09:09:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166619.1493115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM0fS-00010K-GG; Thu, 20 Nov 2025 09:09:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166619.1493115; Thu, 20 Nov 2025 09: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 1vM0fS-00010D-Cr; Thu, 20 Nov 2025 09:09:30 +0000
Received: by outflank-mailman (input) for mailman id 1166619;
 Thu, 20 Nov 2025 09:09:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vEGo=54=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vM0fQ-0000ko-Rg
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 09:09:28 +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 9d3b0cae-c5f0-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 10:09:27 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MN2PR03MB5072.namprd03.prod.outlook.com (2603:10b6:208:1a7::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 09:09:25 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%5]) with mapi id 15.20.9343.009; Thu, 20 Nov 2025
 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: 9d3b0cae-c5f0-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=opDwc27w//lq7tx6MGfu0Ts43rrRmNuj0rz+CTuNK5D/H7qfTqKsukpex9Xz4B+UyMP0KpDx4MBClcc7NAFQKfCB+sab0kBDjusHAm6DQ5MkvuVS2YpymfhMhAnENmaIMp60p7+UUbzrzssxn+/R31Pkr/lKaYzLQqPbj9bMLms3lnOLQWILx5s3XtnYQM++q7Skmr1OP/AHMD6B7Lg6GIRlWWWINLaJiCGA4JZXE1aUgn+8bMYhLf+bYtoNnVxgqLBASV9d9Oxv03RDkp9nnxf65XpxEU9Hj3EpDfjUrgE+Hq6AfidrCt0tvYu0EkieEx3JIdecFpdJMKDN1/2o/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=3Ps4qpb/HeavGjoMpeWQVB1HeWzQZcZOSFbllOt3RlQ=;
 b=SF0wmm+LYf/dIyWeUEIUEAbmAu4lr1jKDvXmgOVKcP1cdKaaxStX8vegDd0q+9cxiyA7NdgbO2YzqBN4AIJ3tNSW/bqQOMHu50NK0ZcLdE8eQYkykSxSjwt6zus7/wOwil6QmUUyrlSj80BSpH9NW0c7jbydj05uQgudg88xb+Epnpmxl7uBlOXjqKhx+SBi/mUGPtahp60vBYlxW6xn8UL+3EwNDpKHdvRZsWBIsK1geYpG5uNazVElD6oXGShU3lmk60JMgM0k7RG0JirjEAQpnnG4YStD/DUdV/8g+pR+E+8jlOTy+53Ke7zn9R7Q8moAxSKlV0lHpNdVhOYidg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3Ps4qpb/HeavGjoMpeWQVB1HeWzQZcZOSFbllOt3RlQ=;
 b=Q6z81Ei/ubxNiCrPCe6QgTkw5v7LwweA2ppkBMuonZoYDIKtdpv16b9N6CAi6gv7/GlPmv0OUvntr8lZwfnnN/i/5ahdk6nijwsKDWxbWpX+ZtMWRA9cGBxHHuOzLjYkbacKzZeYSY0lTxcu4nSsFFy++RLkd73Fqf/YOXoqR8I=
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 02/12] x86/apic: remove vector_allocation_cpumask hook
Date: Thu, 20 Nov 2025 10:06:27 +0100
Message-ID: <20251120090637.25087-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251120090637.25087-1-roger.pau@citrix.com>
References: <20251120090637.25087-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0024.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::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_|MN2PR03MB5072:EE_
X-MS-Office365-Filtering-Correlation-Id: 1ae1d432-83c0-461c-e7e1-08de28148072
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?TFlsT0lsTTZIdC9rL0VNL0J1eUNnL2cwZUpaanFobnhTamlsMUJadkZySGlj?=
 =?utf-8?B?SUl5c2Q5cGNtbE1zTVVrdjEzWWdITysxdURlM1JlUjR2NWNuYitCTUMvdHpD?=
 =?utf-8?B?TGlFd3BtVU5sZ1lZeVFYTlM1WVAwRDNLNm9UblhreTY2UFpaekh0Rmk4ZGxT?=
 =?utf-8?B?emRVTS96L2NxUlNCSitzWVB6anJlVGdHRUNnb1R5ZHpLeDkvYWg1N0o0aDdl?=
 =?utf-8?B?WkFtNmt3VE52bDRsQ2ZmMzVHZUx1M3pCTUVCdGNTRHcvVGhJTnVyMmwvTGor?=
 =?utf-8?B?dVphL28zanozZ3dzeVcrb2FVeG9ZenQ3N1NCVkl3WXhkYWF5RFZxZ00vYW9y?=
 =?utf-8?B?aXYyOVpwNVRjemlDTXdGWTcwM29OUHR0V1Z5bUU5MmFHcU9XK1VsSVVyL0dr?=
 =?utf-8?B?NGpsR05xZUxaR1pjZkQwS3czbmxOMXR4S2xGd3JJZVVQUjNid3dtdnd1Q2V4?=
 =?utf-8?B?UG5sbUQ5NnZNRTF3ZDVhcFk5MVlhTHp2TWltSW9MUmkxNWphWnVXYW5aQW9E?=
 =?utf-8?B?YWx5azhrSmZNUGtJak4rNTV6N2tqbE9ZWEZCcitNSHljZng4WDlxQ0lNYlVQ?=
 =?utf-8?B?WkQ1Tzg5QkJnbmMyMURyYlBLYk5raWp6b3Y3cC9MWURlVjJRRVhjRlJiOVRM?=
 =?utf-8?B?OEpwODNXUHlVQ3VoTTZSU29JMVNES1gwV1d1c0loRVVtaU5TWWE3RElINldj?=
 =?utf-8?B?UHRxdFMrY3Avb09Zb2dCZWdmRSt3WEg4VW1HdVRib0dONmVBUUduSHNMWk1R?=
 =?utf-8?B?MEhBaWl1eHNpRzMvcGNtKzErQkJvVWtwZHR5WU1lRFJsTENIRkFMVUEybmFC?=
 =?utf-8?B?ZDZXUlp0SzdON0lReWYvdTE4VHorRVV1ODR6MkZtTnJpK1dGRUpsMHc0ak5t?=
 =?utf-8?B?dEQvOXc2OXJ5Z2VBZkZLRXdzNENaZXRNWnNsc0s3eFZqRGdiYUhZWHFaRTBj?=
 =?utf-8?B?M1NzM0RadGVKTEJGY3lSd1c2cXBQcEs4QjdQSy9KbVhsWnNJU1pUdWNsRXh5?=
 =?utf-8?B?cmRja0ovbUJVcVBuZmRpbnRGV2NYK1BCMmdSZFYrcXlrekdGQjRaSDFrYVBO?=
 =?utf-8?B?djlLVzV4NEpCYWtaUXFSMlZuaWMrVE95WXgzcVg4QUFRckM2ZzNEK2VnTUVU?=
 =?utf-8?B?VExxKzM3VjJxQlNZc1F2K3M2WGJhNnV6TFpRWlp2czA1WU1SaFB2bXJWdTlS?=
 =?utf-8?B?RERnN1NocDNyUHdvampjMVVYeDBXSW90THNNd1NHTDd5Yi9aellsNE5FZHhM?=
 =?utf-8?B?MVdtNmIwajMzVVd0UnlCaWZSR3g2OWwxaDdiMkhMWXRockJNSTZHajFldVFs?=
 =?utf-8?B?NW9ReHVQN2xTamFqNTQxNzBWWFZ0WlFleHlXYjRCL0QzbVJWUzZmaXJ4NUdq?=
 =?utf-8?B?SGpMMXlobU1rYlFMSVQ4U1k3a0R5blowVHMvRE80OFR1YzFja29xVlpOVFJ5?=
 =?utf-8?B?WGdMS2RIakExa0J2bHgxOXhXOEgwd3IyTy9jZFZYaVVNWU5ibmtERjk3WUJG?=
 =?utf-8?B?aTNkMTl6TnVaSkgxSEIyQ1FDMldBMHpnUGdPVlRFcFVJTVFhMFlOTHk5bEEw?=
 =?utf-8?B?QmVLNjF0QVYvTit2UGdMWisxUlZ3dHpIZlM0SDh0bTdma2dpZWFaMk4zSmRk?=
 =?utf-8?B?Tm1QZWl2Ny9kdkhhaTlMN0V0NGJqdmV5N0E1YmRtUWhyT0J2RzBFVVN0SWZX?=
 =?utf-8?B?SUdVZXlxNERmdVVGRGNyU2taNy9CdTRKNHBQTDNCdjBzeUt4R0F3Q2g5WWlp?=
 =?utf-8?B?UDlRelRTMzd0NXJSV0h0bjB1QkN5azh5Z1R5a2hrM0N6OVBqRzlOWEtNc1V4?=
 =?utf-8?B?eE51RkgrZXVhQk5lQk5SUm1EWHZWMTZaU3dhZzdRSklrU1ErcXJwWS8yWnlG?=
 =?utf-8?B?TXovMDJuYW1DcEdnbHA4eXQvb1MwZnVKQzZtK3RZMnRWS0p5ZmpIMDFpN0NK?=
 =?utf-8?Q?F1CTMFZShQN0N+BKDveoAM7m9I5jVnGL?=
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?WHVlQ1Yzb2JMR0VyL3p4YktBelkzcFZvVXFwUHc4dGlpTUFwL0hyaTQ2SFNv?=
 =?utf-8?B?RFJIWHdoaC9sdDdEaWdaUUk2blBGRVpENWxvMUxvcmU0d2tHazM5akxLTmFu?=
 =?utf-8?B?WXdiYjZSdjNGYVZvcmI5VTNOUlRscHhJdkZWeEt4eFR3SlhRMktORldaU0Nt?=
 =?utf-8?B?S212L1BWUmdUUWNMamxYdng0ampvYmFWU0JwL1B1TUF6VmwySWJjdmExNDQw?=
 =?utf-8?B?Q3pVTVp5ZkxSYnV4UFAxN0xLVlpQbHhjcEpBazNtNDF4bUsyekJ4ZHBYS2F5?=
 =?utf-8?B?MWpzeTdzOEV5TEd2SDJsSzVRSkcrNVp3cndSUlBwc3BzdzlTaUx1ZGxsbjZy?=
 =?utf-8?B?V1ZWak9UZDUyWjA3RElPOFYyWmpCLzEvVncwM3cvVGpKaG5rRWFMVWVrNEda?=
 =?utf-8?B?Z0Jyb0U2dGJiejF5L3JVTHo1b2cyNXQ3bXd0U3h5Z2RQMDNoS0VTYlIreHBL?=
 =?utf-8?B?T0JiM2xaV25JaEZyem5VWmc0Umphd0FzckRlRXk3dlMvRUtEeUdTdTVmUkVm?=
 =?utf-8?B?SkxydU1QMUk5bVhTM0kva0Y0SWxXcXhnUHBEWkV4RStFeElqQndqTURidnB0?=
 =?utf-8?B?OUVaeDlVeTh2aUJCL1FyVHdySEJxbHcrLzE4QkpZRmg4MjFzRnUvMnJVSTNs?=
 =?utf-8?B?L3BQdWl1Z0ZIeS81VURUbnpNTzFrQ0gyK0oySzRMK09iQ0ZnV3AwREtVRlVl?=
 =?utf-8?B?R0NZZkhkK0dad1ZVMzFFMWZ5TDhCODFLMXJEQ0M3eWhiZ1o0U3FBcGduUUlT?=
 =?utf-8?B?UWhHUDZjZVNydGw3U3MxM1l6ZFNOdS9ydFNseVYwazVueThicytVaXB2dExw?=
 =?utf-8?B?ZnlvWDNwMjRxWnFhL3dYMkYveUFwckZHMXZnUFpybDB1T3daWlMzU2prUG5K?=
 =?utf-8?B?bFQ2SGJwWVcvMUlRcnJDRmxOdjdDR0luekpSNjc4ZzlSTEtOY3BIOXIwZjFN?=
 =?utf-8?B?SVBwV01kSnJqZGhPRWx2bDFHbG56SDdLT2tKbjA0dmNnRWVMVVM4R0VMMUps?=
 =?utf-8?B?a2NpUDlGbHJTTVVKeWF1a1Awb0Z4RDZQbHhDYUN4RlhMc0JqNHpic3NwVmQz?=
 =?utf-8?B?RC8wdkk5a21JV0FwR255cG9ZWlhpcXdXaGx1Nmp1blNhSzh0U2U5eUgyZjZq?=
 =?utf-8?B?YXBla2JQK2hoa2IvWjBYN2JRQ2VSelNtbkZrYlYrdDlnbHB3clo4aFd1eVpF?=
 =?utf-8?B?TXNsK1FiUWVqVWttS2xLSjhaUTYyK0VjVmFUL3cwbWxZdlBtZDdSMmpUc1la?=
 =?utf-8?B?MmdjRWZWZ2IyenR1UGcxT3cxeE1EM21XSjlua3ljTWlQWmlvUnFVVGhsUzFt?=
 =?utf-8?B?NHFmMDIyMTRaU1Z1QlZiTGkrc3ZPb1F4dldEeWpZTElUZll4ekl4L2RCK1B1?=
 =?utf-8?B?M0xVYVlNSmRxc3FDYm0rNmRGQ3dvS2JNTkVvdVI3WkV1Q1NSS0J3K2ZHQVJZ?=
 =?utf-8?B?S1M4c1J1R0pGTXF3MWgwYnB1OW8wS2VmOG9wZzNyNmRkcWsrNnNUSjllRmxR?=
 =?utf-8?B?VVFnUE5WbzN5MTBTNFdtT3Q4cGhzZXI5c0pnSExDQUFIdG9sSkNQYTdWbkJR?=
 =?utf-8?B?MWpkOFZ0eXVJNmtIMjdYWHBqY1dLS21rNjltT1BVM2ZLKzhCaEVYd1IyVGxm?=
 =?utf-8?B?UkNXTDNxOG1SN0cySW0yUTZSUXJ1UGVsdGRiVXV5djB0alhVd3VmclowNHFE?=
 =?utf-8?B?V01hUmpsVWdweGlzcjFoU2xubVhPYTVoVGdyV0dPRnBnaXUxT1N0M2FHR1g3?=
 =?utf-8?B?Mk5ReUlTY000Z1I1b1NvRkNuem1zMktUcTNhQXk1U3hkMXRFeUlpVHk2S1Nj?=
 =?utf-8?B?dlZhNGlxV1NQV0EwbHZMdU9hRmpqNGc2K21rZ1JaYlJnaGI5R1pyNWpJNUFu?=
 =?utf-8?B?aVFjcUxDZUZqRUhyZDRZNktrU3ZpY1J3K2YvNllCM3RrUUFOUW9lMDZEaDZ0?=
 =?utf-8?B?dit3MENOY1gvZmhadk5JNDlyS3VmRXJucTdCZDhNL3UreDZkNXdkRk1oWGFC?=
 =?utf-8?B?QjQ4MURsb1UycFJsRkN2RnFyemVQdjFseExoQTlVUGV5OTYzekwwT1V4UERs?=
 =?utf-8?B?QkhrM2lUSEh3eEdPOUM2dVlaYm5OelhkdmN3TUdwQWNKUVZ2VGtNclM2WXBw?=
 =?utf-8?Q?Vtuot/yk9P35VAOt8ld9z+tBB?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1ae1d432-83c0-461c-e7e1-08de28148072
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 09:09:25.4300
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: jog2sB7IPoau5TKzDSMbWxaPlapU9soAdkN2mnGw5jExdq5+c7rJybLK5HZLi6qwVG+QL+xjbTvGAwam+smo+Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5072

All implementations use the same hook which is a wrapper around
cpumask_of(cpu).  Adjust callers to no longer use such dummy mask with a
single CPU set, as the CPU is already known to the caller.  This removes a
pair of usages of for_each_cpu().

No functional change intended.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/genapic/bigsmp.c      |  1 -
 xen/arch/x86/genapic/default.c     |  1 -
 xen/arch/x86/genapic/delivery.c    |  5 -----
 xen/arch/x86/genapic/x2apic.c      |  7 -------
 xen/arch/x86/include/asm/genapic.h |  4 ----
 xen/arch/x86/irq.c                 | 19 +++++++------------
 6 files changed, 7 insertions(+), 30 deletions(-)

diff --git a/xen/arch/x86/genapic/bigsmp.c b/xen/arch/x86/genapic/bigsmp.c
index 066feb4a1755..c0bcee659f1b 100644
--- a/xen/arch/x86/genapic/bigsmp.c
+++ b/xen/arch/x86/genapic/bigsmp.c
@@ -47,7 +47,6 @@ static int __init cf_check probe_bigsmp(void)
 const struct genapic __initconst_cf_clobber apic_bigsmp = {
 	APIC_INIT("bigsmp", probe_bigsmp),
 	.init_apic_ldr = init_apic_ldr_phys,
-	.vector_allocation_cpumask = vector_allocation_cpumask_phys,
 	.send_IPI_mask = send_IPI_mask_phys,
 	.send_IPI_self = send_IPI_self_legacy
 };
diff --git a/xen/arch/x86/genapic/default.c b/xen/arch/x86/genapic/default.c
index ab9a292464d6..58b5884aac0d 100644
--- a/xen/arch/x86/genapic/default.c
+++ b/xen/arch/x86/genapic/default.c
@@ -17,7 +17,6 @@
 const struct genapic __initconst_cf_clobber apic_default = {
 	APIC_INIT("default", NULL),
 	.init_apic_ldr = init_apic_ldr_flat,
-	.vector_allocation_cpumask = vector_allocation_cpumask_phys,
 	.send_IPI_mask = send_IPI_mask_flat,
 	.send_IPI_self = send_IPI_self_legacy
 };
diff --git a/xen/arch/x86/genapic/delivery.c b/xen/arch/x86/genapic/delivery.c
index 5d105e848502..777570f3b633 100644
--- a/xen/arch/x86/genapic/delivery.c
+++ b/xen/arch/x86/genapic/delivery.c
@@ -30,11 +30,6 @@ void cf_check init_apic_ldr_phys(void)
 	/* We only deliver in phys mode - no setup needed. */
 }
 
-const cpumask_t *cf_check vector_allocation_cpumask_phys(int cpu)
-{
-	return cpumask_of(cpu);
-}
-
 unsigned int cpu_mask_to_apicid(const cpumask_t *cpumask)
 {
 	/* As we are using single CPU as destination, pick only one CPU here */
diff --git a/xen/arch/x86/genapic/x2apic.c b/xen/arch/x86/genapic/x2apic.c
index f4709ab92950..89d66bc627d7 100644
--- a/xen/arch/x86/genapic/x2apic.c
+++ b/xen/arch/x86/genapic/x2apic.c
@@ -141,7 +141,6 @@ static void cf_check send_IPI_mask_x2apic_cluster(
 static const struct genapic __initconst_cf_clobber apic_x2apic_phys = {
     APIC_INIT("x2apic_phys", NULL),
     .init_apic_ldr = init_apic_ldr_phys,
-    .vector_allocation_cpumask = vector_allocation_cpumask_phys,
     .send_IPI_mask = send_IPI_mask_x2apic_phys,
     .send_IPI_self = send_IPI_self_x2apic
 };
@@ -156,12 +155,6 @@ static const struct genapic __initconst_cf_clobber apic_x2apic_phys = {
 static const struct genapic __initconst_cf_clobber apic_x2apic_mixed = {
     APIC_INIT("x2apic_mixed", NULL),
 
-    /*
-     * The following fields are exclusively used by external interrupts and
-     * hence are set to use Physical destination mode handlers.
-     */
-    .vector_allocation_cpumask = vector_allocation_cpumask_phys,
-
     /*
      * The following fields are exclusively used by IPIs and hence are set to
      * use Cluster Logical destination mode handlers.  Note that init_apic_ldr
diff --git a/xen/arch/x86/include/asm/genapic.h b/xen/arch/x86/include/asm/genapic.h
index 6d979279bd2b..33ec492a6ff5 100644
--- a/xen/arch/x86/include/asm/genapic.h
+++ b/xen/arch/x86/include/asm/genapic.h
@@ -24,7 +24,6 @@ struct genapic {
 	int (*probe)(void);
 
 	void (*init_apic_ldr)(void);
-	const cpumask_t *(*vector_allocation_cpumask)(int cpu);
 	void (*send_IPI_mask)(const cpumask_t *mask, int vector);
     void (*send_IPI_self)(uint8_t vector);
 };
@@ -35,8 +34,6 @@ struct genapic {
 
 #define TARGET_CPUS ((const typeof(cpu_online_map) *)&cpu_online_map)
 #define init_apic_ldr() alternative_vcall(genapic.init_apic_ldr)
-#define vector_allocation_cpumask(cpu) \
-	alternative_call(genapic.vector_allocation_cpumask, cpu)
 
 extern struct genapic genapic;
 extern const struct genapic apic_default;
@@ -50,7 +47,6 @@ void cf_check send_IPI_mask_flat(const cpumask_t *cpumask, int vector);
 void cf_check init_apic_ldr_phys(void);
 unsigned int cpu_mask_to_apicid(const cpumask_t *cpumask);
 void cf_check send_IPI_mask_phys(const cpumask_t *mask, int vector);
-const cpumask_t *cf_check vector_allocation_cpumask_phys(int cpu);
 
 void generic_apic_probe(void);
 void generic_bigsmp_probe(void);
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 80f7417d2103..7009a3c6d0dd 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -621,16 +621,12 @@ static int _assign_irq_vector(struct irq_desc *desc, const cpumask_t *mask)
 
     for_each_cpu(cpu, mask)
     {
-        const cpumask_t *vec_mask;
-        int new_cpu;
         int vector, offset;
 
         /* Only try and allocate irqs on cpus that are present. */
         if (!cpu_online(cpu))
             continue;
 
-        vec_mask = vector_allocation_cpumask(cpu);
-
         vector = current_vector;
         offset = current_offset;
 next:
@@ -650,13 +646,12 @@ next:
             && test_bit(vector, irq_used_vectors) )
             goto next;
 
-        if ( cpumask_test_cpu(0, vec_mask) &&
+        if ( !cpu &&
              vector >= FIRST_LEGACY_VECTOR && vector <= LAST_LEGACY_VECTOR )
             goto next;
 
-        for_each_cpu(new_cpu, vec_mask)
-            if (per_cpu(vector_irq, new_cpu)[vector] >= 0)
-                goto next;
+        if ( per_cpu(vector_irq, cpu)[vector] >= 0 )
+            goto next;
         /* Found one! */
         current_vector = vector;
         current_offset = offset;
@@ -688,12 +683,12 @@ next:
                 release_old_vec(desc);
         }
 
-        trace_irq_mask(TRC_HW_IRQ_ASSIGN_VECTOR, irq, vector, vec_mask);
+        trace_irq_mask(TRC_HW_IRQ_ASSIGN_VECTOR, irq, vector, cpumask_of(cpu));
 
-        for_each_cpu(new_cpu, vec_mask)
-            per_cpu(vector_irq, new_cpu)[vector] = irq;
+        per_cpu(vector_irq, cpu)[vector] = irq;
         desc->arch.vector = vector;
-        cpumask_copy(desc->arch.cpu_mask, vec_mask);
+        cpumask_clear(desc->arch.cpu_mask);
+        cpumask_set_cpu(cpu, desc->arch.cpu_mask);
 
         desc->arch.used = IRQ_USED;
         ASSERT((desc->arch.used_vectors == NULL)
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 09:09:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 09:09:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166620.1493125 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM0fW-0001Ij-PX; Thu, 20 Nov 2025 09:09:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166620.1493125; Thu, 20 Nov 2025 09:09:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM0fW-0001Ic-M9; Thu, 20 Nov 2025 09:09:34 +0000
Received: by outflank-mailman (input) for mailman id 1166620;
 Thu, 20 Nov 2025 09:09: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=vEGo=54=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vM0fU-0000ko-UG
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 09:09:32 +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 9f49616a-c5f0-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 10:09:31 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MN2PR03MB5072.namprd03.prod.outlook.com (2603:10b6:208:1a7::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 09:09: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%5]) with mapi id 15.20.9343.009; Thu, 20 Nov 2025
 09:09: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: 9f49616a-c5f0-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gsTvlb6gl58GLHdhrHR9X8gHktRQyynoE4WtFHUFW6JIn4EQKNu6NjW57RHcZQ5gLSztr0PSPC7ekrscwIN8XQtliXI8pcJ6EEM84wF8VfoqQ0UYO0CtLAUHwv/hxXq56v0KuDbzkcEoRTfl0WDTRdNap/nt5g4TcA/Jsqmx6bzBx3YGF428+WhJaadS28cXEC180hYslfiqSFBSAcPJQznFFQzElektQBjtnKJMX39hye0gW+bE5DCrg+l2OmYNT9ArHLNN9ZBA0+NFQ0b3U9q+94aAJ0FTIJRXWyXAv0v0qOVI0rMZHZTrg8IUvQS0t++oTTLTn9Ovc1mw36mGlw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qAs1Y5Qqo4ZLjPuw0r6KVRa8n5fqVYDMsTWrbFPvIG8=;
 b=r0QcaeX2PcyzU5AJYg1gA9APsook5aMPl4rbEAH4Wm0cjw84cb4Z17k4U4fCQyMCRWvhHWV7tIdtzudQLIZmzZZJtX3yH6R7+Kgdbp916EuxeJu9gaYLIMNVQ0WwdrFsE0ZJuVTGorcCCxaXNWQ+Md4bXTyMU16DwJlQBJGkd/Q+zuENboRFdvbzVYcUnaRYp5kAdkpSpHRwwE9wMeJT5pzOm9jzTLdgruKlDW6YONZuQ1GGv+X0A6HwRUs8/PiUDnkayU10HsblQsEbBNS83t7jweHh2i44gIH133UyI6Cy8iZIrVV5NaS1bmOvjupH/LWParns1aIVZK6PfHBH2g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qAs1Y5Qqo4ZLjPuw0r6KVRa8n5fqVYDMsTWrbFPvIG8=;
 b=CzusmpXTTbxPNUL/FY5rSAq6pZxralPtHsvzD5pzqQP3Zf2JNGPN1+1CPiRsvXAxcDFqCSrxI4kNlBrausfu3lubtq0GtcCImqgQM3PebkO47yFIqsJ45Oflb7llv/PMVhDsKrUHiBLZptDIXmIKALW3d1kKek9F2H3VmMhyswk=
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 03/12] x86/irq: introduce local irq_desc
Date: Thu, 20 Nov 2025 10:06:28 +0100
Message-ID: <20251120090637.25087-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251120090637.25087-1-roger.pau@citrix.com>
References: <20251120090637.25087-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
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_|MN2PR03MB5072:EE_
X-MS-Office365-Filtering-Correlation-Id: 1c928cc5-72e4-4763-930f-08de28148273
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?UlZXamxVVEIrenIvSGdZWmt3VnRhckhmZjlod2NoN09BTkFUUlV3dEV6a0dl?=
 =?utf-8?B?SmlVK3hPQnAzME5vQmx3V0lhU1VxOXhPTWZXZldtS21JVzd0N0wzTXBPajRT?=
 =?utf-8?B?cDVQa1N2dHNjbGQ1Qmd4MDRFN2VuNzl1TTZmdm9TOVN6YUZ4YVFSVm51bGNS?=
 =?utf-8?B?VmtNZ2hwOTFlai9wbjBGNjRDOFVMa2JERjkzUnFFSE1TZmQzZ2NhaVRDdlV4?=
 =?utf-8?B?S1pIQW15d2VXc1ZSRGU2RVJIaWoyU0JtQWdzWFFnMXRxY1JVS2NZbFdYYldD?=
 =?utf-8?B?cnBBL2Z4VFU1WkFRRGphVm02LzBYWTlqQlRobElPaDVtZnptOStjZitTcDV0?=
 =?utf-8?B?SUE1dE85TEJFT0RRb0RlSkRKamxOSXBYNTV3S0JZNFZyVGNyWEtYcEJoblZp?=
 =?utf-8?B?VW01dXVjTDFOTGZSQzVoeG1mOHdxK20zSG9TT0EyTk83ZmFVNTVxellLRWRN?=
 =?utf-8?B?bXFvKzhtUkVhZkpBaVVtbmIwQnIyN3RqUGNCTWx4ekR0QlMwOXNkenJOODJr?=
 =?utf-8?B?aCtGdlVzd1BTOXJBV1VIQ3hFbUdDZmUxOFFXVnFybXpjM3drTzJsUmlRUmlr?=
 =?utf-8?B?VzZiODNBcG1aSDNKMFREaU1uZGtRZmMrTU1aVHNQWDZSeGJrUXBIQmljZGRh?=
 =?utf-8?B?SVZQSXNpTE5aeURVOXNMeGNWVzBmKzZMaCtRdzNsVXMvdlNHS0d5c0NxRFcx?=
 =?utf-8?B?Q1pOZlBXOCtjd1ZsclhzOVpuTkdmVWh2eE5sckpEcHhWR1ZCdFpoNEZQQzhV?=
 =?utf-8?B?Vm1WOENod21leHcvRDJteTZwWWRtakE5aTI0WFRSb1FOTzczZHBtMzB4dXBO?=
 =?utf-8?B?cW5JMXc2SmxCTzdUV0xZQnV2cnl5RGQzV2FJd1UrZ2NGVkF3bS81SCtQeS9w?=
 =?utf-8?B?Q3dUSmpHOHZUOGE2a3pXM2w2bmM5bmJ2RUxuVWpRSnRZN21VaEVBbmpyOWwy?=
 =?utf-8?B?N0hTMytXSnRPaVZnTk1EaVhmQVdOQ3Vab1R6aVdaV2h2WjczeUZvVVRnc09Y?=
 =?utf-8?B?YzlxQWlVV0VCektlZnN0UkNTVFhoV0k0SkJyblFwcDFjMFlKVnNUUnovZXFv?=
 =?utf-8?B?OFgxSVRTZ2w0Z25kUkhwK0NTS1daUGxPajlmK21rUEhMbXU1NVhNcnVaTFhX?=
 =?utf-8?B?aHlobzZtV1BOcFlraGJNelVzb0VyRHVJYWtsOGptQVQ0QTNyK25jbGhMUGF0?=
 =?utf-8?B?UkVSYjBZY1lPWllUMnlVRHl3Ull1WXNKZUZIZEozb2NiNktuQm5HcGg2d0cy?=
 =?utf-8?B?S0NRdlFWcnVzWVZnbFU5cFYvOVpxL2RQbXN0MjhPbDk2VTNFMk1NakJ6aGpV?=
 =?utf-8?B?YzgxaVdBVFQ1N3JxSnBtSngxMmpXNFBIeWhRaDYxZVhpaVFhZFpVMWsrbVFx?=
 =?utf-8?B?cWVIZ04rSm1mditwWnpOaEZYR2FVaFpLdFN2dDliVDZ5aDBwcGY3NFZYNFZZ?=
 =?utf-8?B?cmJNU0ZnRXRDbitWOVhmai9lZlRRS3VITGJWMXZESTNJQW9MUWxIWk9SaWV6?=
 =?utf-8?B?eWU3d2JDS3NQWnQxUjBrajZFT3A5WWtUUThoN0FFdElUdDJNZ0VxT0cwUWQr?=
 =?utf-8?B?RFF5V0xBVTZwUFRKaEpLd0hCckI2UXp0dUtJMlZVSjFIdU04aTFiUUgzY1Rl?=
 =?utf-8?B?cmxIT2hOdnJBcmxjQi9udUJTd3U2TURPZ1NjRU9Va2UvbUhDeUFjTWJRU1Yx?=
 =?utf-8?B?R3hNYzNtWVFqY0FXYUcvTmdNRi82ekptb2t6a1Z6MU9nZkp3RXVQVmsvVTRU?=
 =?utf-8?B?UW1ONDMxTWJwMGZ0OXN3NVRLTUg4bUdGMjBKRkp3U2VSM2djZEQxTFVQY0ZS?=
 =?utf-8?B?dWVTbURTZ05FTVI2dlMvZmpuOEZFcXZmNGNvWHhzc1lpdHc2N2dYeU1wM3pa?=
 =?utf-8?B?aFkvMjYvUncxUlNIL3gxSlhaYVVxbk9ETVJhUFFOZWxlRVZnM0NUUTFoM3dD?=
 =?utf-8?Q?13blukwbWozDY9kZ4O6Kkl06R7GiLJNU?=
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?d2pPb25wck5tTlQwUDV0TEhmWWJUUFRNN1ZlNUFOOW1Tb3BJdFo4TXFNNkJh?=
 =?utf-8?B?UG9nMVQ1Zi9lZkpPYW10Ui9ZamJ2U3hSYm1BMkJiOGdwUk5hcHlNYldhUk5T?=
 =?utf-8?B?SUU4UlBnZEUxWjA2NjNFM3J1UGQvVG1OTnhKT3EzQW9BNWNSOXVXZkZHeHdi?=
 =?utf-8?B?enExV0kvZWVOdDRKVDQrbTJHTnJIazhUS3ZSVE1mbGRZV3VYUllYaFZ4SVJC?=
 =?utf-8?B?WGZrWjBZc3FtcE5PczRSOTlWRlEyZnVaV0owbXdrd1ZWZ3hkKytXRXFLcWNQ?=
 =?utf-8?B?QzdOWTRnNnFXY0tVNXcyQk9pTDdMdno1ZXd2VTdCaFoxdjlXSXR5YnZDdDRj?=
 =?utf-8?B?aGxzb09xc3BjU3NIQWNkVXFmTEJJaU52OEl0U3hLaGVLYXF2M0RiY25CYzVP?=
 =?utf-8?B?M2JjY3RwdmQ3Y09iemdlbklzRlJrcmE1TjJSMkluMUFZYitYQ0d0UTJ4TXVU?=
 =?utf-8?B?ZWl3dTR3TUZzS1ZPU25UZndqQW9abDlVSEROanZ1SEtNS3hBRnhqclNmYXZC?=
 =?utf-8?B?MjYzVUQ1ay9XeXlVTFFISmoyaXZqb241SmZBZSsreXJoQ3FtRzZwZFJmejZM?=
 =?utf-8?B?OVVSV25odFZoRi94UndVYXZPdS9abWRiSzcrajV1Ni9Ebzd4STcxN3ZVWjMw?=
 =?utf-8?B?K1d5M3lkRjJNd2RqdExCQk1zc1BkcUhOSWJPdThQdU83em94NHV1UWZ0WUVC?=
 =?utf-8?B?ZjVpQ1RtMCt2dG5RanVPL3lscEhaVUdEekQ0aUFDNnZLNjVuSUxHL3UwaWdC?=
 =?utf-8?B?b3dBTnBXWmcxME55ZW5LVHNwdXpab2hkSCtGSnZTeGFzS3ljRUdDQUxFNEZI?=
 =?utf-8?B?Y2MrdEhOWWZ6QWhhTm1MR2lWRDlKTjV2eDYvdlYrTDdDbVdJaDJGd1hyRFhw?=
 =?utf-8?B?TVlFc2o2a0pTcW8yNGlmdncwWGVVYm5YaXlpczhOYkg1QThCcksySXFaV2tO?=
 =?utf-8?B?S2lWcXZaa2lHM1hqZWRRbHhqb3h3RWx0T3BqWnFxc1hjWlBzbm1rS0RtYktI?=
 =?utf-8?B?cW9oNnl1c1E1bnpUTGdrZ2JLdFBMMHEwOVFMYmJyZ0p3UjBlMUhjdHlpS25l?=
 =?utf-8?B?ZWdyd2k5RW5jZEU4cjlnbXJ4T1o4bm5HdkpDMFU2VGM5RmZvMXZyalNLbnEv?=
 =?utf-8?B?VFlBUjl0MXI2NUJmK2xGZkIxQkR1eGxYQ1pZL2tLRjFFbkdpa1FDNzFvQzV4?=
 =?utf-8?B?dnFBdloxUUw3U1lLMjdGeDBHRDdlenE4OTZ5SjJjUVE5NkJNRW54OHlyN2s0?=
 =?utf-8?B?c0d2ZjhyLzBQempScnB3dmFES0FqS2lMQmhQVDd2S1Vhd1V4YTRGaDMrYmNl?=
 =?utf-8?B?TG1OQmtabUdBaUVMbUtjSGl2ZU91M1h2dDVYZHQ1Nzk0cUlBS1dtRkZDNkpQ?=
 =?utf-8?B?Mmx4N0lyTEdxTGhRUDBmc0VSZ2ZQeFZ1UDY0dHVsQjhmYmQ3K3hKWmxxOHpI?=
 =?utf-8?B?V3lPMVYzVnBnclFTVExHOXRNMXRKOFV5Q1YxSkdsRnJ6cC8rS2Z1SXJGa2Ux?=
 =?utf-8?B?Q3FuZCtSbWZPdmxWK3pQcFh1d1NONCtNMExxMTh3QWxOL3JaRFJYVjJBY0Iz?=
 =?utf-8?B?RXc3b1dZeVUrRk1VZHAzUm5EcTJ6N0IwV0h3U2duaGh4dGFCVjlzUGZDS3oy?=
 =?utf-8?B?b1FYTXNqWVBHOHZOQ3VEeTdpNzM5QW9pOE9YVDZNRjNHams3Lytkay9HTFQz?=
 =?utf-8?B?UjhOdURuT2ZZekRRWGY4bFBMQWJ0cVdGeGJqVkdVK1k4UEkwaTEwcG92OEtH?=
 =?utf-8?B?YnE0MXlNaEdNTi9icm5lMmVud3ZVOVVoSFZxcGRmbVNUeDdxZEsyWXd4RXp0?=
 =?utf-8?B?T3FoWndrejhaRDhZSnBqZktGRFNtU1djWDE4N2lnMU9kdFJ1QVNkZDYrMHZu?=
 =?utf-8?B?T3VHcVpZY3lIQUNCWGtnWFZoMkF4c1FDQ0VGQ3VLNHFMcEtWclJnZndVd0tz?=
 =?utf-8?B?djhmV2xhdGVpL2lKa0xRUUpYa3VVMmppaWV6ai9DQUtubmUvaU1RVE96TXJV?=
 =?utf-8?B?ZnJoNnBFQVV4VUhTS3Q1UGFPaGd4TWI3QzFnaDg1dWJ6MXJyMExpY25mNU1a?=
 =?utf-8?B?eEhtOVNYVEhERWY1aXcvcnBpTlRCb2xGcnEwOUhlamx2b2U3amVRLzhlclBH?=
 =?utf-8?Q?D5rAxVUFDmu3yqgQY4v2Vl5gy?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1c928cc5-72e4-4763-930f-08de28148273
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 09:09:28.6915
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Bda0W/h0eZt0ys+ZWy75IZpb9ZcwqWsIC+OVomyWOlY9Tg6OcOM2hgxi+Z+BPo7Qmjdp0Q9sWmoROkqw0reczw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5072

Avoid duplicated calls to irq_to_desc() by storing the result in a local
variable.  No functional change.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/smpboot.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 8d3161248de0..7fab5552335b 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -1455,12 +1455,16 @@ void __init smp_intr_init(void)
      */
     for ( seridx = 0; seridx <= SERHND_IDX; seridx++ )
     {
+        struct irq_desc *desc;
+
         if ( (irq = serial_irq(seridx)) < 0 )
             continue;
         vector = alloc_hipriority_vector();
         per_cpu(vector_irq, cpu)[vector] = irq;
-        irq_to_desc(irq)->arch.vector = vector;
-        cpumask_copy(irq_to_desc(irq)->arch.cpu_mask, &cpu_online_map);
+
+        desc = irq_to_desc(irq);
+        desc->arch.vector = vector;
+        cpumask_copy(desc->arch.cpu_mask, &cpu_online_map);
     }
 
     /* Direct IPI vectors. */
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 09:09:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 09:09:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166625.1493135 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM0ff-0001kA-2X; Thu, 20 Nov 2025 09:09:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166625.1493135; Thu, 20 Nov 2025 09: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 1vM0fe-0001k1-Up; Thu, 20 Nov 2025 09:09:42 +0000
Received: by outflank-mailman (input) for mailman id 1166625;
 Thu, 20 Nov 2025 09:09: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=vEGo=54=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vM0fd-0000Wn-3m
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 09:09:41 +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 a482e377-c5f0-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 10:09:40 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MN2PR03MB5072.namprd03.prod.outlook.com (2603:10b6:208:1a7::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 09:09: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%5]) with mapi id 15.20.9343.009; Thu, 20 Nov 2025
 09:09:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a482e377-c5f0-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IbHuRuNfSX3OdGCYRSZHbPKTt26yQVAUmN/GR3RgWGXuwR2RgVfBga/VPTtGRQBTDFFhEJ4BIq2yMnTEvsim19FNMU7/0BzFqeBro1hD7JD99xfpbq7YTmvr9A5rGtF5NWcKwbYuR5HzqnLF3RErpFZzrx1cCxD+Hd59yTc6tL4G0fzx0tmchXv4HcSEFGuVdWHu1LX8sTaDLJjrllkEgPW0y6ZWlvGcYsbZ8NWPCAfCwQkydLhHY40NNEKMCQFm5W3WxNaHA665JRKTZPBwD54VVGo5TUI7pnm94hxj5N6N00liMtC3CJvjEGWKGVCyWEZiV3ouungPNRzwVAONkw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VVC8ah353fCaq4FQWmc0+WOQ82jU240QoCVXUnFWw9g=;
 b=IMrbMIl59qJh9Xs0Fo7XAOcjTSnTG6r7Gb0ypNL9qHC+UhyFUazbVcQFZLzDkBeCQhjgm16Oo22ek4zxeael5K39254fbfuY3wlCdPvPz+A/MfUYUnLc0Go8X3pjI0K8tfa0aBP18wP4p25Ipw3v8/wh5FT2rMU4CCCjaDDXPteAqZVrfqsENn2xYXQOcb0J+bsG2xhciqiRa0UZwNygrvLpLfhP5cgGIzxrT3Ebwy/yxqWDu+Hi1nji4ZA9igYgGXclGzOOAeVZpSSk+9MeDtA1Ib2sYu+requAknlMSEygQ61UQro9jsS/6cQz4xUaKw8bj3unbxyhDC7f2yzAZw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VVC8ah353fCaq4FQWmc0+WOQ82jU240QoCVXUnFWw9g=;
 b=lYncggR8WeZOU8opDcRDoOsmJQpdvNJ0IngCBxEaavoZMbw+wM/4QL25EHxKL0Dl9TzhLVaOLgA+AO5RCBdQvhBlNZ96Yz1i7rg6J5WodDdyGIg6IV6mz83rwfOBG+ToRR7TizzemtThh7Bmj+kUPY5sn52Nu5IWzhlsbCzqAuI=
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 04/12] x86/irq: set accurate cpu_mask for high priority vectors used by external interrupts
Date: Thu, 20 Nov 2025 10:06:29 +0100
Message-ID: <20251120090637.25087-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251120090637.25087-1-roger.pau@citrix.com>
References: <20251120090637.25087-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
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_|MN2PR03MB5072:EE_
X-MS-Office365-Filtering-Correlation-Id: d39c0f22-fdf4-4edc-e2d6-08de281487d0
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?RTltazBITEQrdHFUdDZaaERUTmEzN3RUMUNqanJ4cFV0b3k5UytJQlhCNDV2?=
 =?utf-8?B?dnpWQnVZTlQ3ZkZWQ2tVa3h6YmdrUFVuL2dtUHdlL3NXSG1IYUlPeHJiaGFj?=
 =?utf-8?B?L1FCZFlKOUo0WG5lNXBhWlJIanF0bktCNUhQQmhWZVNpSXNzU3JEMG5CdEZq?=
 =?utf-8?B?ZmhOVXFBdFNHVzgrVzlyUkM4VVBCNzQ5MWxMUXM3dFZ5R0tGalNVMngwWUYx?=
 =?utf-8?B?R3gwckdJSklNRnVaWThiRC94ck9Kc2JyaG5RdmQ1QU91c0hESUQ5dEdCS0Y2?=
 =?utf-8?B?aWRKUTdSOGJqRUJSTk95TGVxdFFxM1g3YXJCaXRkQjROcFNxaGJTQjlxT05t?=
 =?utf-8?B?b1FHT095WHkvSlNpdlgrTytpbTNITTRpYmI5djd5YVRJUUdjbG8vclJxSUJN?=
 =?utf-8?B?M0tCbWQrcm9ac1FBTEtyL1RnWVlycXZtc3RoWkNOekpGVGhXZ1B4RkNtM0dI?=
 =?utf-8?B?NG1URk5sWHQyd21EemYwOG9TbWtXOGhkSzdOS2FNdWU4a0tUck5kdGE3czZQ?=
 =?utf-8?B?ckFqYmR2MUdPVjlZeXRpU1llZnRDVURDTDkxaHFZQmVCaUFPUURMTHMwZDFK?=
 =?utf-8?B?VUhhYjVJdE5tWmpBRXdqSk9EdGJXRUJBcXltV3M4U3V6cTVlRVB3cUkwbVNi?=
 =?utf-8?B?NENKRUs5K05qY2xPYkU0NnU1T3RRMDRFM1ovUmRwWlZHN3RmeWlIQWp2akNU?=
 =?utf-8?B?SWRQckgxUDhPbVJXdnl0R2cwdmM1YXdETm1Bd1kxQWxZTnlyVkEyWUhqNVNE?=
 =?utf-8?B?bTdnaUZDSWtBM1Q0dXIxSlpyT0R1MnpPWEIzRGcwWkNNM0tZc08zNkZaZ1lX?=
 =?utf-8?B?aGdyRmRyWFZ5K3Y4UzNraXFMcHlxazBIa2NJNE90c1ZGS1hRcGIxRnZLR3pl?=
 =?utf-8?B?YWoxTnpnc2ZkN3haRUNvWW9CYm80Skp5Q0xGTVhpaG84SDBrN2QvdVhMRnBH?=
 =?utf-8?B?L05BNWdFUnh6Z2NJYmRvWW5iZ3V3MWNmUFRaRXU2VVpsVnovb3dudkpPUG9y?=
 =?utf-8?B?VE9zdGp2QUdQMkhselM4Mmd0ZDJBRUFHRVBIZEZqaWtKcTlkdTkvK2lDRFB4?=
 =?utf-8?B?UVppSEpIZHozMlF5ejl4YkxTd1hCdGhlbGR2TW1talFtdkQ2bGc2NDVYSFUy?=
 =?utf-8?B?Q3QyK2pwQ1Jhd0FibHZFVVNYRlpLUzNLaHFKams0WXJ6Skt0VVJ5NzdIUm1M?=
 =?utf-8?B?WkdqdkdRanBPYlB0UE1LK1lrdm1ad01wMURmc3E4NHlkNGt1SzA0bGtpTC9U?=
 =?utf-8?B?b3U1MFZKUTYzeDAybmFqbk1qUzZBT2ZOSGJ5d0VRQjdqNDl0UlpMdkxCUFdZ?=
 =?utf-8?B?QmFuSXJlV3UzVStrTzFKOTc2NWM3V3ZJbXBadkc2eDBPTTFKWHppc3AzSEtQ?=
 =?utf-8?B?YW1Ha2dZMXljNGNXdmxiSVVJMTh5RWlhM1V0TURnTnp5Y0h3amluYTNqc3lF?=
 =?utf-8?B?SWZ1LzdYYjZ5eitlWmdaaXJ6cE9HRytOT3gwYUVsWW82N2ZsMXJlV1E4WXp5?=
 =?utf-8?B?aFM4NEZWWVdNRDJLYjlQVno2bWJBU0tyT2pLL2F2UG5YbDNma3NmQTNDSEd4?=
 =?utf-8?B?aVNBaUoxRXFPTUtRNXFHNk1pR2tIdlFhK2d3OTk2Z0htQVFQdElFMnBBRnVm?=
 =?utf-8?B?NUNtTisrWmo4d3hCeGhVcUhyUDRlN2FycFJ6NWM0U2RBR0g3cnIrQm1WVEtY?=
 =?utf-8?B?dlcrNzF2cDA2bEw3K1Y0b0N2elhaWFdIbFlmb0lQVENoTXZDazR0WTAvck9D?=
 =?utf-8?B?RWhUeWVMWGExK1ZrbkY0aWw5TUdPa0k4NStQOXgwQmdMQVRYTTJRRFNlZHJL?=
 =?utf-8?B?c1kwZ2pLa29iQXBwOEpEWE1YajJPOVFPTStqZFZSN3lGRVNoSk15NTQ5Tkt2?=
 =?utf-8?B?WEZhMENTOW9PUmRTSk55ME5XRzhmbWJnMjdGd01ISTI1bUtXY3UxZ1habHlW?=
 =?utf-8?Q?tV6DzGPKbjltYEUWwDHJFMwC6aCNdorz?=
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?UE9WanJ2N0M0cEZtcVlqYUpzYVRKN1ZRYy9reXVidHZGVFRzVVJ3Uyt6SndN?=
 =?utf-8?B?NTNIM1o1VzIveUVDNnluZlZZRE85WDJETzBJaDZZQ1VuYnRSUEZRbUE2Qmt2?=
 =?utf-8?B?T0ZKZThoQ2VRWkpRVW1EWDdVYnVvaHVLU1loZXRJUGo0SzFWbk1Nbk9hSG5G?=
 =?utf-8?B?b2d4N2dyeXJWZG1EcmdJbFNxcGFmdEYxaGk1U2ZiV3RLQU4ybkpNazNUajI5?=
 =?utf-8?B?dGNrN2tqS0NkVWtmMTN6Skt3OFJKWjI4TEh2WjBDbGtQSkJ1RlpBaTdRaUJw?=
 =?utf-8?B?c2QrQnBPZGVmVk1CZGdmWUUrL3NiWmMrT0IxOGk1V0ljV2Npd3gycGVBOG1O?=
 =?utf-8?B?VGs5TGtnNWk0SEFIRld1R0ZBT1dvZm9VaE01ZnR6WW9GNi9xRmR4NFpBRitv?=
 =?utf-8?B?TjlRZEFLVWtOeFFjc1krUGhiNEhYY2xScDhWejhmNm9KaVV4M2tJSld5Vnl3?=
 =?utf-8?B?ejA4Sld6ajR6bVAwcitlU3pBSGZoM3RMdEF2cStuVjNaSHFON3VSZXFzakFU?=
 =?utf-8?B?REJIYUdBK1I2M2pMYk5Xcytaa09COGJEdHIyMUdCK3NRcW05bnRXdG4xdlJG?=
 =?utf-8?B?M21yY0NsWkkxcThzZkZqNFNQRmpaU1BGUklRbGdTTHNPa1RsOHRIK2NSV3N5?=
 =?utf-8?B?VnMwQzJ0TUFDczdhQmYzQnlSN0cwQjhtUm1IMWNPbFBFSVdFbFVhekt3WEpG?=
 =?utf-8?B?d0pjTVJmWU0zM2tmcGZ6SmFHTk9nd3gyWGhhOU4zUFNaZHo4YndUZmJMWkpn?=
 =?utf-8?B?WjNZVmYzbFp1V2lUOTlJMWNhcFVpVkZEMlhYek1melJLdUFKaVUveTVoZzcw?=
 =?utf-8?B?ZlF3a0E5WUpGN3JWN3AwRklKc0NUb1NHOWVQK2ZyNklIK1NpdTBNelNQVU9R?=
 =?utf-8?B?M3grMTcvYkE4R2pFaXF6Q3QrK3gvZTQwc256N1U0aEs3bERabVVnSDBSeXd3?=
 =?utf-8?B?RGJmRzltUDhjcEF4YUkyNkdRRkhBc0FKaTcvZldKWW5RKzE0Vm00T21sQ0E0?=
 =?utf-8?B?bmI0bXFWdkh2VERZay9mUHdhK1VvQTh0WDlzN2Vtd0R0K05RMStDN3JMMjho?=
 =?utf-8?B?ak5TckJWQWN1NTZXczdEMldnQnlzMFNoVmtLU085QTdoVlFscWJoNGNzTVcv?=
 =?utf-8?B?Tng0WmRRSXAxT2ZWQ0ZzNXpaK0c0STJQQWdlb25vQkhmQ3FKQmhLVFR5ZGtW?=
 =?utf-8?B?WG5waFlhZ2pxSDFqY01LVHlFcGtmN2xPWlRjR2VrUFpjV3NFKzk3OXFlT0Ru?=
 =?utf-8?B?NXE5SHNNUUxvbWVxeFdkNVNXOWRQd0p0VVpGTGkwbUtQenpCTjVXZWxxWGRN?=
 =?utf-8?B?NjlTbFZyRWFzNzVnUzlKK0RKSEFCY3Fpd1UxT04yZ1lCR1ZNN3NJeFFlRENl?=
 =?utf-8?B?M1VMTURHTi82aTErNSsxM1FGVFJ2dHcxeGtxZ3B3N2FBQlk3ampCUUptbDNO?=
 =?utf-8?B?aEtuS1czcklRenBEcFhXQkFwc3k1NTRYRE01N3NMSVVkTFlwM3FJYi9NSXp0?=
 =?utf-8?B?WEdkTmV2VEl4MVRZREJjS3JJd1BaUHlvU29ZWURjQ05mTEpWc2tJQkcwanRo?=
 =?utf-8?B?WS9wVGkycXlsVHFqSHFVaWRnQVVPMUwvR3ZaQnZTV0YyYXVhVkpoMklxcG0r?=
 =?utf-8?B?T0RuWDIydG9yZWRFUjVIcENkUHZ5dEZvUFNuTStiY0ovSkVsaTE4ZFZwQjVL?=
 =?utf-8?B?dGh0djIvWW5Kb3k0ZlQrb0RiWjhQOCtHVnQ0OWxCNXJQcWxhRUtQUDlla1Ru?=
 =?utf-8?B?dlQ4TVRzM3paeDNZaERzY3FuVmJ5VXdyZHlJSGRLUEM3S2RTeFBUODlFWGpX?=
 =?utf-8?B?TDVhZzFVOXhEd1pnWEtiMXJub3pIUWJzQytjMVVVNWdxczFkSmZNZmVBcG1G?=
 =?utf-8?B?ZkdheEx2d09RS2s5dFdhL2hIZkQ2Mzkva1lKcnk3bXYyT2J0SnJ6K2d3QjZF?=
 =?utf-8?B?cGNHaVRHSUEzNi8ycC81OFdvTGVuSUo2bXRiOVpCQUExcjB1QUt3NWRFa3Jl?=
 =?utf-8?B?dS9VdVZlbTNuYXZSa0NrcWw5Qk5CYUhXWkVjbTZEaG9zQzJzMWJZTk93aUo0?=
 =?utf-8?B?ZEQ1K1lHcThLTE4zMTM5dWFWbFRZZ29GL1VJSkRiZ1Vnc3pQQW9keVE5Ymlt?=
 =?utf-8?Q?Ivz7MMr5M3FUXMOHfpvUzAqYj?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d39c0f22-fdf4-4edc-e2d6-08de281487d0
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 09:09:37.7868
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: NGYWDWLSxVIPKISpwS7HJt4kQs5NmmFQbvGGP6/SRzknWmjqoK2NuV+dRcrNMycGOGdo1C3ema7mb14QTxSxOQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5072

Setting the irq descriptor target CPU mask of high priority interrupts to
contain all online CPUs is not accurate.  External interrupts are
exclusively delivered using physical destination mode, and hence can only
target a single CPU.  Setting the descriptor CPU mask to contain all online
CPUs makes it impossible for Xen to figure out which CPU the interrupt is
really targeting.

Instead handle high priority vectors used by external interrupts similarly
to normal vectors, keeping the target CPU mask accurate.  Introduce
specific code in _assign_irq_vector() to deal with moving high priority
vectors across CPUs, this is needed at least for fixup_irqs() to be able to
evacuate those if the target CPU goes offline.

Fixes: fc0c3fa2ad5c ("x86/IO-APIC: fix setup of Xen internally used IRQs (take 2)")
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/irq.c     | 24 ++++++++++++++++++------
 xen/arch/x86/smpboot.c |  3 ++-
 2 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 7009a3c6d0dd..5cd934ea2a32 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -547,6 +547,20 @@ static int _assign_irq_vector(struct irq_desc *desc, const cpumask_t *mask)
         cpumask_t tmp_mask;
 
         cpumask_and(&tmp_mask, mask, &cpu_online_map);
+
+        /*
+         * High priority vectors are reserved on all CPUs, hence moving them
+         * just requires changing the target CPU.  There's no need for vector
+         * allocation on the destination.
+         */
+        if ( old_vector >= FIRST_HIPRIORITY_VECTOR &&
+             old_vector <= LAST_HIPRIORITY_VECTOR )
+        {
+            cpumask_copy(desc->arch.cpu_mask,
+                         cpumask_of(cpumask_any(&tmp_mask)));
+            return 0;
+        }
+
         if (cpumask_intersects(&tmp_mask, desc->arch.cpu_mask)) {
             desc->arch.vector = old_vector;
             return 0;
@@ -756,12 +770,10 @@ void setup_vector_irq(unsigned int cpu)
         if ( !irq_desc_initialized(desc) )
             continue;
         vector = irq_to_vector(irq);
-        if ( vector >= FIRST_HIPRIORITY_VECTOR &&
-             vector <= LAST_HIPRIORITY_VECTOR )
-            cpumask_set_cpu(cpu, desc->arch.cpu_mask);
-        else if ( !cpumask_test_cpu(cpu, desc->arch.cpu_mask) )
-            continue;
-        per_cpu(vector_irq, cpu)[vector] = irq;
+        if ( (vector >= FIRST_HIPRIORITY_VECTOR &&
+              vector <= LAST_HIPRIORITY_VECTOR) ||
+             cpumask_test_cpu(cpu, desc->arch.cpu_mask) )
+            per_cpu(vector_irq, cpu)[vector] = irq;
     }
 }
 
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 7fab5552335b..69cc9bbc6e2c 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -1464,7 +1464,8 @@ void __init smp_intr_init(void)
 
         desc = irq_to_desc(irq);
         desc->arch.vector = vector;
-        cpumask_copy(desc->arch.cpu_mask, &cpu_online_map);
+        cpumask_copy(desc->arch.cpu_mask, cpumask_of(cpu));
+        cpumask_setall(desc->affinity);
     }
 
     /* Direct IPI vectors. */
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 09:09:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 09:09:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166628.1493145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM0fg-0001zo-9X; Thu, 20 Nov 2025 09:09:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166628.1493145; Thu, 20 Nov 2025 09:09:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM0fg-0001zd-5q; Thu, 20 Nov 2025 09:09:44 +0000
Received: by outflank-mailman (input) for mailman id 1166628;
 Thu, 20 Nov 2025 09:09: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=vEGo=54=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vM0ff-0000Wn-Om
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 09:09:43 +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 a6548358-c5f0-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 10:09:43 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MN2PR03MB5072.namprd03.prod.outlook.com (2603:10b6:208:1a7::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 09:09: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%5]) with mapi id 15.20.9343.009; Thu, 20 Nov 2025
 09:09: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: a6548358-c5f0-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MvqEzQQE/tXzbWUMyH9NoZ24Au6t/lP4787+plUMNo4PiwsfGV4CnFq1QNM+uS7rLHUlDpehnXU6zUSFdACLqgNdI9aR8RMBXqdNCBmS09u5c7yOl1AFxFAaLv9QmDEWWzaalgXADG/LOB89AEITkTQm75z5bwoT9HeBAOJu4d0yrLJXLSHnl/J/lN/EHDTHgRGLgPwPdV0RP8MlHzBkpf4EN7Bci2kDWXzGx6qWHkLqf9qg8pV8NT9rgyLlpt4SMt46vThOZqWLo/7i9UypuRuL098ZoP2OlbUXU+teq0EAeCkLTFhhFPVRabEwUjWQhics7D8EmxYNQ0DGMh3Hjw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WBn0wIUSagCcNXuxdruRc9da5j6+arDekcJulY68nFw=;
 b=T6rfh7nTS0cFO2U34ZTUpc0b4KD9dsZu2ksFz3A7/qD/OOr+3dtihA8zQANk4mVH0rryFPcOn4p6K8iCHgCSR2RhpP4NTyl8WlE99oX30C0D6FrLYSVwpTnd48wCwSISDsw1Y/y3n1Y9evmO1u+WRqx5LqusEUj+RwklgJs0AwDi5xD/HYwr7CBH64NaBN9j2ppMf2dvig94o3HHxMh1dWevAoxcF364+aBWrr67WbuHncAMV0vqAczSo2PTN++sPmJRKtK+FfqAfvmokumgyLowWmuMOFtPNbaeONG7ZU2zXHkY9mgCrIKO0N3ZrDvlfWSgvDiSIxT+exXuPmbgCg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WBn0wIUSagCcNXuxdruRc9da5j6+arDekcJulY68nFw=;
 b=XN5sURsaIW4R5P5RKsQWSXZN1Zez8sZ5LuM22GuL0UuEql4LeQtlcJBOCjLliLpCNCfb1uxrlTWs2pmT/PATeC43dJ0mOhxBX7OLWsefmBq3BYRbveshp5PGVITKuncOWtjkWxZU3b4DfKjDeu7aWMAikrqbGwrm0fu8Y5P/roI=
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 05/12] x86/io-apic: purge usage of logical mode
Date: Thu, 20 Nov 2025 10:06:30 +0100
Message-ID: <20251120090637.25087-6-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251120090637.25087-1-roger.pau@citrix.com>
References: <20251120090637.25087-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0025.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::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_|MN2PR03MB5072:EE_
X-MS-Office365-Filtering-Correlation-Id: 05ad9808-3aca-42ff-e935-08de281489be
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?UXYxNFdFWUFIZGsyQ0ZraVhVYkdmMlhFbURXRzFYQitCdS9USlpRNkZ4L2Nx?=
 =?utf-8?B?ejJVK1AzbHNvRUs2UEtLTkk5dzFpQnBGL3dQYkZmSElLVEN5YmZEL2NmS2Rp?=
 =?utf-8?B?cjRPSHBQOGVZT2RMVktTTEdlZTFtaUJxaTROZmlYSy9pWUxRU0VCbXZMSE5E?=
 =?utf-8?B?UEFad1cwTlFDR1NwNEUrZHlBeE5hbmpXOWtHOENLUlNGOTBleFpnNTZGallU?=
 =?utf-8?B?MTRocEswMEoyajYzZHl4c2pOTk8xWXI4VG0ybUFJaE1YcmhrNGJ5Q1F1TGt5?=
 =?utf-8?B?V3FBenNWUklKSUw3NWIxckppZEduMHdZVmJBRTlnTUVSNE1NZFZKZjJiUS9i?=
 =?utf-8?B?eG5OaEVrb0hkR0Z1K0JON205aEVCRTJhenBFSjF3cmJGM0swVkQ2V3dNRVpl?=
 =?utf-8?B?SFVPK2hYaGluTVBQdGNxRDlYTUJmMVRUcnE0UlJiSnBtZURuMTkvUDJ4YVkz?=
 =?utf-8?B?REVLTXNUM2pYWXNwazRzTEo5bFFabXBZRHl6NFpWZE9Hb0t0ejRNNUtKWXE2?=
 =?utf-8?B?MWcrdnNxbGltOVhSbkMycXJ6WXZJa3VlMElzMk9SMnlrSXJDbGhCUHE0c2xW?=
 =?utf-8?B?NTJhUGNWWlpQQkRhU3lxNGRObHpsR3FtT0NKUkN6QjdhKzJYNVg2blVPenJh?=
 =?utf-8?B?RXV3QXpWK1N2U3pSRU9QNm9KRWhtZHl6RHRDbi8wZWxEaFQyWGFEcDNkQllG?=
 =?utf-8?B?VFMvN3N4aGxSSDBuQVJwUERHVXU4cEorMEMyNVBqNWQrdkpEYnBXSVhUR2Fm?=
 =?utf-8?B?OWtubGd0NGJQdDRuMDlWdEF4djhZaGd2YUFpeWk0Mkg1WGRyTTFEZnpTckNt?=
 =?utf-8?B?eW13dWdVTyt2eW1qMzlmeWR4REo3ZW05aE9qL20vc1FwMFhDT1ZEekNna1J6?=
 =?utf-8?B?dUVaSnpHd3RadzdqQVRHckJndVNiT2Znb01FZ0FjSDFlSnZxSEJNQTVteWVV?=
 =?utf-8?B?cnUyTWxCZENqUi8yLzBVdEJFemF6M003VGN6dzZ6Q3gzTER0YWZaMVN1cnpn?=
 =?utf-8?B?clVDNzNEcWF2cWlndHJNSEw4allSclBscDN5bjNoWTBzOCs5cHZ4NDZ6TlpO?=
 =?utf-8?B?ZHJxT2dqWkhRd1lEZ2hZOVkyK1loZ1J0TTQxOTZDajEwQWh2Y09hOU5UbkMw?=
 =?utf-8?B?UjV4VmFWSXdTZmt4eGkveEVQNnp1elhNZll3VEs5U1pHbUhJRXJVWGxzL1Fo?=
 =?utf-8?B?L1VVZVFidlpxWkZMWmR6VGFqVGRFTzQyMldDUS8rb1E4TE02TTdoTGVuNzY2?=
 =?utf-8?B?UnpweXNwR3JBNVYwTjV1d2s4S05WRE5uSXZGb2R2cFZtYUpBb1hsTGtVM3By?=
 =?utf-8?B?NGI3cWp1SlNBOTNPbDN4M2o0QzFYcHpzRm4yVUVmZmRxeE56NFh1Nm5nem4z?=
 =?utf-8?B?ajk0bGpXd0dqbU1FSklHVU4va0lSNnNVSlJpUzRNMlVwM0s2d0V5S2JXTVFG?=
 =?utf-8?B?Vnl3SGdlTFNHVFI2Q09mV2pOMXVrQWhiSk9KQkt4MU02Y1NkYzROcFBMN09t?=
 =?utf-8?B?cEpGeEdURE9QY21mcXJ6dWYwakZ3bGpXRWdoNWJlZ1NESTNkcnF4VFhha0xa?=
 =?utf-8?B?WEhWN2NLMkdXNW1iRjcxYlMxYTNleXowLzN1L2xBbTAvUHlDTTBnYjF6MDNT?=
 =?utf-8?B?Q1Y1cFg4MTJ2RGlOQ01CZHRxU2VvZktQTUFseWdtWjN6YmFONHJqUFNlV2NF?=
 =?utf-8?B?QnhqWTkrVjRxTU5QZllBOW9aZDBrQ0RYcDdzVTBXaXdRbWRMUlA4UjRyWFRE?=
 =?utf-8?B?all4aE5YK09TcFFYWUxyd2QydTN5bm9zQmhMaFJPSEMwNURRR1RtNytmd3Nq?=
 =?utf-8?B?MjN0WldwbkdRNXdZMjJnTHlrZ2pQVjk1N2hTOEJJWnlRcFQwMm1BWVo3Ni9H?=
 =?utf-8?B?ZWFLRDNGc1FpeXpuV2ZteFN5KzRZbWFQemJDMDV4Zjg5c0kxVGdHVHQwa2JN?=
 =?utf-8?Q?XaI7bIOcfoFFujR3COAVYxvUSCTvqwvG?=
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?VDJ4bXNnT0p1RGxWOXgyeWVkTExPbWYvUjlRZk1ZWW1RK2U2VzdTck5qTkl5?=
 =?utf-8?B?b2loWkcyYmpVdkpjbkFCRUhuVlJyYUo4OXVVYjIzQ2hNd3lUWUJaV2VIWWRF?=
 =?utf-8?B?N2JKT1h4c3lpZmswU01FRlR0eG1wMHRBMjRUZnEzNlgrWXVJNVUza05MMEZZ?=
 =?utf-8?B?aTE5bkhpYU8wTHBUd2V2eHZMQkpMR2h1UWNGdVZsMHdCUXJ5bUN3NUs4NkVK?=
 =?utf-8?B?ZTFUeC9QVUpRZ1kxczU3SHBrbzc5d1JCZFdFc01VVGF5N0RQMFdyd2hvQUYv?=
 =?utf-8?B?b0NxNWxNYys4NUJyT2phWUNPbzMzQis0TlUramNvWndxVnhzVzA3anplVHpa?=
 =?utf-8?B?TlA3QkdyQ294a0hxQ3lWMDZzTFpEQ1Z2OFRPdGJuMktlRW9hUWVQVE1hcVhZ?=
 =?utf-8?B?akUyTVFBVURHc0xnU084VlV5bVovOGFpdGJFZXBEWmtGbkUyQ0xMWmJrVkRk?=
 =?utf-8?B?bFoweCsvRlBkVEZGM0lQZDYwWVROb0I2OWhEWXNDS2J0aXRpUFEvVjJicG1q?=
 =?utf-8?B?OUFNYUNEbFhiT2V1b1k1bm5yZTE1TkptRWpqdlZRWnF3K21WOFcwZW9oakNP?=
 =?utf-8?B?Y3UwVEl3ci93STd1NG1YOW5qS3I3eXhKRHN0cHZHeUdnT3IvZm4vRkVyUVFT?=
 =?utf-8?B?Z1dyQm1xRjBydFhvd3BkUjZRSjgvekJha0J6Qm51M2JmTTNyRnZST0R0NGZO?=
 =?utf-8?B?ZWxFV2Y2YnhmV0FWd2ZHVDdWcmNUUzlBb1NCNkVVeHdBQUhkMkU3T0p5UGRK?=
 =?utf-8?B?UmZmbTVBVUc1eG9QTHI2OTFZZlpBanFCdHArc0xNKzRnWnRWbnM2YzJUWnNZ?=
 =?utf-8?B?WW5CZFpYS0s2TExqU2NLbVFqTG4yeVRhSG1JTC84blBjNjkxcDJyTE9vT1Jo?=
 =?utf-8?B?MzBaZVc0bCt2dHRwS1I4eDZuaGlyOHVKWWovKzk1U2IwbU5hN2w1ZnZLSVZL?=
 =?utf-8?B?bVM1MlZpOWxKN1BHdmVrOWJPN1FEdHVSSkl2KzA1Wm04MjJ3R1lQVGNZMmRy?=
 =?utf-8?B?N05OUmQyZys5eEp2cFZzOHNQSC95OXdRM2I5Q0VQVDFHQys1alhkbER5WkNi?=
 =?utf-8?B?T3oxVE0wNkZXcGdOK0dGMzlkZTlUMnZHNU45MUo1ajF5Q1d6blhHekpwd2sr?=
 =?utf-8?B?cEpyWmRrTENxVFFlU29BbWpFdFJadFV0alc5VTBqK0MvTnZJRFZJT2JUUDAr?=
 =?utf-8?B?bkJYYndjM1Q0VUJwajZYUGNkdC9NR0lQa2NmZktiZGk5VnRpeVUxRnEvKy9R?=
 =?utf-8?B?ZHhxY0ptT0p3LzBmYm1jVmlZNzk0Z0NKRFhJOVZIK0tia0FqU1lOYlR2WFdh?=
 =?utf-8?B?QlpWbXFsL05IZk9ONnNDNDYyaHhZckpGbTBwTXNsZFJvQVJnS0RzbmhYWThT?=
 =?utf-8?B?bnNOM3hjUHlPcThqOUcwNHhxWkk1N0J4KzVCZ2I4OWd4SG9JbzF3aW1Cd0lG?=
 =?utf-8?B?bzEvakt6UmkrUEo1azN2dGQzaE05eExOZEdVVW93TDJNRVZWajVGWWZJNitV?=
 =?utf-8?B?SmlMZjdTTG9zdzlBWWlkWEtuekl1TmQrS242bUdWYnVhbjhOcm9PNXRvb1Ux?=
 =?utf-8?B?ektpTVk2bm5qeXVSTDByU01IQ0laZENKaWJvdEMvQ3N5bUtMRkdzS3FKc1Vh?=
 =?utf-8?B?YjZQSk5BdXBjN1hhRnM4eFhWajJmc2Vjd3lQNDZWUUY2b1NINXd1MDhIK0tG?=
 =?utf-8?B?bnZiOGw0TnNxYlMrdi82WjQyRW4rdUNJQXlXaUg3dXRrZjRzek1kY1VQc04r?=
 =?utf-8?B?MHdzYU9hM3d5ZU03MWhmRlMwL1ZWaDFXYk5GajR3Z0pmKzFua2czMlkrbW41?=
 =?utf-8?B?SGhEUDhrUVZQU1F6ODBXYTZKU2JObVJaM3Z4U0lKcGNmblpSeGpITGJmWXA0?=
 =?utf-8?B?VGc2RXo4dU5YZW01dXJoMEkwdlpSNnRIR0xSSVZHK0pNRFlKRGlETDh4WE40?=
 =?utf-8?B?cVFjNjBPR0ZnekdkcGNwR014Z2dweEdwVmlDZ1JTK1NsVEdiVDY1WW90VFpY?=
 =?utf-8?B?cXVxejZmME9CVEpBWmVscWZHSUhWZVNTcFBDUHhjZTk5K0F2TzN2SlJzNGFh?=
 =?utf-8?B?bUIvRElzeWcwV1BUemVSZmNzTTJvVnRzaFFraHJPcHNMVDJ0dXhnWnBPV0tL?=
 =?utf-8?Q?4armV9B8biJGP6w9sJc2bMXOE?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 05ad9808-3aca-42ff-e935-08de281489be
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 09:09:41.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: SanoW39GGlGvFcMvVPwKihEthr5cMwUdG48chmK/WJjhJHMdxk+P2Ad0lgu/2JPJl6lS283ZctavkKx08WgsDQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5072

The IO-APIC RTEs are unconditionally programmed with physical destination
mode, and hence the field to set in the RTE is always physical_dest.

Remove the mode parameter from SET_DEST() and take the opportunity to
convert it into a function, there's no need for it to be a macro.

This is a benign fix, because due to the endianness of x86 the start of the
physical_dest and logical_dest fields on the RTE overlap.

While there also adjust setup_IO_APIC_irqs() to use the target CPU set by
the assign_irq_vector(), rather than using TARGET_CPUS and possibly
creating a mismatch between the target CPU in desc->arch.cpu_mask and the
one programmed in the IO-APIC RTE.

Fixes: 032d6733a458 ("x86/apic: remove delivery and destination mode fields from drivers")
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/io_apic.c | 27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 46c2a43dac6d..3c59bf0e15da 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -1037,12 +1037,14 @@ static hw_irq_controller ioapic_edge_type;
 #define IOAPIC_EDGE	0
 #define IOAPIC_LEVEL	1
 
-#define SET_DEST(ent, mode, val) do { \
-    if (x2apic_enabled && iommu_intremap) \
-        (ent).dest.dest32 = (val); \
-    else \
-        (ent).dest.mode.mode##_dest = (val); \
-} while (0)
+static void set_entry_dest(struct IO_APIC_route_entry *entry,
+                           unsigned int apic_id)
+{
+    if ( x2apic_enabled && iommu_intremap )
+        entry->dest.dest32 = apic_id;
+    else
+        entry->dest.physical.physical_dest = apic_id;
+}
 
 static inline void ioapic_register_intr(int irq, unsigned long trigger)
 {
@@ -1109,7 +1111,8 @@ static void __init setup_IO_APIC_irqs(void)
             if (platform_legacy_irq(irq))
                 disable_8259A_irq(irq_to_desc(irq));
 
-            SET_DEST(entry, logical, cpu_mask_to_apicid(TARGET_CPUS));
+            set_entry_dest(&entry,
+                           cpu_mask_to_apicid(irq_to_desc(irq)->arch.cpu_mask));
             spin_lock_irqsave(&ioapic_lock, flags);
             __ioapic_write_entry(apic, pin, false, entry);
             spin_unlock_irqrestore(&ioapic_lock, flags);
@@ -1140,7 +1143,7 @@ static void __init setup_ExtINT_IRQ0_pin(unsigned int apic, unsigned int pin, in
      */
     entry.dest_mode = 0; /* physical delivery */
     entry.mask = 0;					/* unmask IRQ now */
-    SET_DEST(entry, logical, cpu_mask_to_apicid(TARGET_CPUS));
+    set_entry_dest(&entry, cpu_mask_to_apicid(TARGET_CPUS));
     entry.delivery_mode = dest_Fixed;
     entry.polarity = 0;
     entry.trigger = 0;
@@ -1432,7 +1435,7 @@ void disable_IO_APIC(void)
         entry.dest_mode       = 0; /* Physical */
         entry.delivery_mode   = dest_ExtINT; /* ExtInt */
         entry.vector          = 0;
-        SET_DEST(entry, physical, get_apic_id());
+        set_entry_dest(&entry, get_apic_id());
 
         /*
          * Add it to the IO-APIC irq-routing table:
@@ -1806,7 +1809,7 @@ static void __init unlock_ExtINT_logic(void)
 
     entry1.dest_mode = 0;			/* physical delivery */
     entry1.mask = 0;			/* unmask IRQ now */
-    SET_DEST(entry1, physical, get_apic_id());
+    set_entry_dest(&entry1, get_apic_id());
     entry1.delivery_mode = dest_ExtINT;
     entry1.polarity = entry0.polarity;
     entry1.trigger = 0;
@@ -2137,7 +2140,7 @@ int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int a
         cpumask_t *mask = this_cpu(scratch_cpumask);
 
         cpumask_and(mask, desc->arch.cpu_mask, TARGET_CPUS);
-        SET_DEST(entry, logical, cpu_mask_to_apicid(mask));
+        set_entry_dest(&entry, cpu_mask_to_apicid(mask));
     } else {
         printk(XENLOG_ERR "IRQ%d: no target CPU (%*pb vs %*pb)\n",
                irq, CPUMASK_PR(desc->arch.cpu_mask), CPUMASK_PR(TARGET_CPUS));
@@ -2334,7 +2337,7 @@ int ioapic_guest_write(unsigned long physbase, unsigned int reg, u32 val)
         cpumask_t *mask = this_cpu(scratch_cpumask);
 
         cpumask_and(mask, desc->arch.cpu_mask, TARGET_CPUS);
-        SET_DEST(rte, logical, cpu_mask_to_apicid(mask));
+        set_entry_dest(&rte, cpu_mask_to_apicid(mask));
     }
     else
     {
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 09:58:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 09:58:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166701.1493164 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM1RB-0002eu-25; Thu, 20 Nov 2025 09:58:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166701.1493164; Thu, 20 Nov 2025 09: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 1vM1RA-0002en-Vj; Thu, 20 Nov 2025 09:58:48 +0000
Received: by outflank-mailman (input) for mailman id 1166701;
 Thu, 20 Nov 2025 09: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=vEGo=54=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vM1R9-0002R9-LU
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 09:58:47 +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 80f85a0f-c5f7-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 10:58:47 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by BY5PR03MB5125.namprd03.prod.outlook.com (2603:10b6:a03:1ea::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 09:58:44 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9343.009; Thu, 20 Nov 2025
 09:58:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 80f85a0f-c5f7-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HqMhh844RdtmUu5fOweq58Qb3kdj+fWULaQ3h0RMDJa5D0JAVWveOsLP7trJXysIVxln/GNyzLrO8UpwxkghG5vkXfIhIj4BCg+91y5HyhLGN4ZdQiJKya6kxGmjKG0aaRcbk7hw/JIV5dNdl/HXJq6VOMrGNWmM2k34wdaDYQMMHZ03Ym6OpzUullpEv04YRjHTKqQCvfT2iPZ0yvxLJ1rv8PQRzLJPabBGQNdq24p3xlP24KN6SI/PAbsH02jctMh7U088wPrSQLbk8SqFkbFcb/8VKP6wFdmJwlIK9GInLCDpnag6J3Tf8Hg3CuZLhfyTSGRELLutMeybkSdnhQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xklGVyUP9Zbd32cAuMG1njcB45nfMfGCMSsOi+HLzMI=;
 b=a+MSR4QgI2Jyhm7IjQGnX6DEM5KIO7u0KFC1Qb/RDiboehjD6ZzYB02Y+H0w53OcM/lIOwA6Hk5DeewWXLkmrifgCZdEK6C9cASrpu87ZmUmjYZTMy43Fnf+umUyScOcRHOoPFlKr+YCsH4cqdRZ4tNtQy2I7B9oG41Sz/QmE/50YWXOl6K8DiaN8HL+y+6NqYk1yux3kHV8B5N0ChsyxwZIC31gJcn9y8VYpxslQakCcNVUd2NL+IJW3cuxVio6CjDEZ2FjhZVpcMN+B3Sn7TDxNh29uEvB4T3SX9syFRIf9eox4WQOIOL3xx5zVYahbK2/2xIE7ZiZRz2Qo4NJzQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xklGVyUP9Zbd32cAuMG1njcB45nfMfGCMSsOi+HLzMI=;
 b=sAdkNYqdGDdz8HDNFm6MIXmim/phShMHtc8O92MFugxjuh6yP779he6Patnow9nwOxjioXJHirITniydTqLodnaGjIBzWvtqFSigFs+nq+f14fQQpQueOBylPlzx1o/QetXqFeBfJ3B9FCaSeaCOZ37bj2KnNU6wJTBVTrV0wa4=
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 07/12] x86/io-apic: fix usage of setup_ioapic_dest()
Date: Thu, 20 Nov 2025 10:58:21 +0100
Message-ID: <20251120095826.25782-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251120095826.25782-1-roger.pau@citrix.com>
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120095826.25782-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0022.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::17) To BY1PR03MB7875.namprd03.prod.outlook.com
 (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|BY5PR03MB5125:EE_
X-MS-Office365-Filtering-Correlation-Id: 40b34615-fd56-4112-adcc-08de281b6461
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?YWwyWWRRU1kzaWIvNjB4TWNzVDA1azRJQkovSExKM0ZSYStJcHl1TllLYTNt?=
 =?utf-8?B?U29zOVdWR3huRnhrWWp4S3lLOHo0MFRVOUVVZUVvN0FhNDJIK3VRNzR5TExD?=
 =?utf-8?B?dHhMUEdGVkFjclhPOEFPTkFwTmV5MENxNXUvdGhVblA5c2lRZXNNWlg1M0pO?=
 =?utf-8?B?Sk82a0JtSmpFc0EwSTR5d3hNWTdmKzcrU293YWZSblBCS1NUWXF2S1ZlNk16?=
 =?utf-8?B?K0h2K2xhelFSOEE2N2tqcDhHK2hHbGVCb2VqU2dSc2ZDRzBXWk1PN3RZcVph?=
 =?utf-8?B?VlpINUs2V2g0NmVzdnQrMmhkeEtPZGVNbmwvTUtPK2lBYTQybTRnQm9sTHNl?=
 =?utf-8?B?a0V3Y1Iyc1UyWFBTMkExb0w2UjFDYWVqcEU5U0p6S1BNOG9TVHZpOUJqbWZ5?=
 =?utf-8?B?RmNjREVRNnRGME5KM21hY3Jac2ZoQ1NPVzhiOWxhRi81ZUQyOEZtb0tXOEZk?=
 =?utf-8?B?YnhGcFI3Ly8vKzlZNFo3MTVaM1RtVFpnYVdKS1ZsckNIZUV1ODFBR3VtYjBr?=
 =?utf-8?B?VmRvU3JTTDNvZzFReHU3dzRnUGxIeFJVZzZCNFNmWUtXZ2lCcUlXcGpRQUNa?=
 =?utf-8?B?OHNiU0FFV2JvU0tWOS9kL25kY3VKVE43d3NrZVZwODluV05vUHdIZmNTR3Jl?=
 =?utf-8?B?bHA0akI5Zk1qaG9UU2JoTzZaRXFveW1wOXptZnBOVkdPOHNEZ0NvR1kwVmtC?=
 =?utf-8?B?Z21BeVpBdFpZQzlIM0szMm96aTFZZldjM1RYdHVxQWpLZ1A2YmtIeEVmMU85?=
 =?utf-8?B?ZjJnbTBVR0V0Ukcrc3lVYldyUUR3clI1QzlsRThIYk85YnZvdndVUFgrenJT?=
 =?utf-8?B?SHdaRzBVcS83VWFIMDN3dWRnYVk1b24weHJvdVhvcW16eTdxYnBCekhnUDZB?=
 =?utf-8?B?VkV6VCt0VzBKcDNuVlM0b0M4YjlUWnV6cmRyV0hlR1NlLytDWi9wZEYxL2Fa?=
 =?utf-8?B?NzhRNE9lQ1pZbG56ZVU0STBIa21tQTJWbWE3MzV2VVlJS1B0d3c1NUFyNmtF?=
 =?utf-8?B?ZW4rSm51eWFLSjJadDdTVXY5d2lVMFdPVjlqMC9wUmh1a0swY1RzQjIyMGF0?=
 =?utf-8?B?d0hXMlY3Wko1QTI5eEh5NXl1RDJkWitRbFhuWHlwQThvVW1UaTNKUmhQbjJo?=
 =?utf-8?B?TGtETmZzVUJhNkRZcEhXdkpodEtIN09vMldCVXdGc05JbkdvMDdqMzNKb2RR?=
 =?utf-8?B?ZHJGVmFRcERUWW5DTXlDbEJiYnZFRm5SdlYvWVhtTnNXVDhyWVhIRDFuaFRy?=
 =?utf-8?B?NXlCY1NmeXptemMzYWxyM20xdzZQd2NBcWVxbUp3TXJyK0kzTW5UMVZlZm1k?=
 =?utf-8?B?NG5YOHlkOFMrclZEM2FQYzBYZ05oTmpjMEQxOFIzaG84a1krVmFDajZYVlJE?=
 =?utf-8?B?QkxQcFp0SXR4Yy9UZ0xjZDJUMFUvRVV1MEdFK0hLQklEcGFka1BUYWo5RTly?=
 =?utf-8?B?VFJrWGZCVFkwdHJneGQrbDBCTElpNy93aU1aUDNoOUNrMDZHU2p1K2h3WUZs?=
 =?utf-8?B?c2VpYU8va05ESGYyMzVtYjZscnE4WWsyMjdod0oxS1ZCU3g3Y2lkSTA1ODJl?=
 =?utf-8?B?TXlnSTN1bnI4a2JZcENJb2syaWJtUE54SE52dTNac2toNXRxMzV2c0VaajV3?=
 =?utf-8?B?Z1hCa2hRQjdFbDJaa2wyTDlKYkxPOURQQVBDTHRvOU1UTHlmSnNQenNUckxQ?=
 =?utf-8?B?RDdNTFBGZkNaS0pNMTBJZFRMdVBSWlFpZzVidHR0ekxZWG02Z0RDNEk1SFc0?=
 =?utf-8?B?MDRhVmdnNTZ0ZnduRjdKZW9wYmZ4Q0g2ZkpwR3ZWaGwwRG94eXRkenUyM3hS?=
 =?utf-8?B?OHdOUHpEQTZSNFFMTDNCWC8rT2Y0SzVvU3lvWXlmNUpUcE9OYmxMVWdFVzNK?=
 =?utf-8?B?MExBSHpjeS9uREpZMVFDRzhHajdOd0lLTU54b2xhbkp1V3dQWXp2ajl2MTdZ?=
 =?utf-8?Q?1XPbIHxPzwWxJnVnY1LQXSIKZJ2a3+5C?=
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?TWhnZ0w2TGt0UmEwam5TV3R3SExSTFZ1YUVFalgrbFh0SGxheG9IMlk2enRR?=
 =?utf-8?B?OGJFNVk2Zmk2MlNrVUIzM1FMNDc0eDBJQmJ2b244ekNMQXIrakNEcVhoTzBF?=
 =?utf-8?B?dEs2bXNNSXQ2enBoaGFVQ3NVRWdqa0dTOWJTNFZnR1ZrN1JGQlFMaHBVa0Zp?=
 =?utf-8?B?RXRkNlJzb0h2VHdZTEhBaUs4ckRxalJRbTdxVkNxcjN6MWRqNEt2L2dsUGgw?=
 =?utf-8?B?dGY3MG96OXJsN2QwYnNaM0JSYkdSMFU5Q0ZqWEtoSUVMMDYrYXRPMDJPNWJx?=
 =?utf-8?B?SExTc1JIUmtaUS9oWEg1ZDZyNUNyWnhvaXo5T3JMQkxPdTc2c0JqNnBWRVZU?=
 =?utf-8?B?N1NuOHJva3pBc0pJY0M0SWhXUldTRHppbWVjVWxZL3lLRy9QUS9nbmRhVDZ0?=
 =?utf-8?B?SjBSV1RSVzBVV3hmSDNaNUxBemhPTFN2RzFqM20vTGx6ZjRlSlN6M2dQdHcr?=
 =?utf-8?B?K0F1Ykd3dEkrU3grTVg0TlZ6VUFPdDZZSHF0eThEak9jWWs3ZTlBYXJLUFc2?=
 =?utf-8?B?SngrZ0hyZytpdjJhbUN3YXZTUTdMOS82Q2hDQkxoczlmdS94M2pBWktYbEVJ?=
 =?utf-8?B?QkhqdlBGcElNbC9YVldGNXRid2MxdEtmOFl6TXZXTWlnVTB0WjgrWFdZUU4r?=
 =?utf-8?B?UndHVkJkVkYwNnYyREhBYU9sVFY4aS9NRmlqTkpWeE9UMTU1V2tDK0xKV245?=
 =?utf-8?B?Y01WNVJoMG84YnVuUGZGaVZxc0FJVU9nN0ZqNndEb0lEeFNvUHpxTG9aUzE4?=
 =?utf-8?B?VUhLVWNVNGZYYzdQVmxoNFVPWDNTUU9FYkR1ZUdtZERBdU1wVmlLbUo5bklH?=
 =?utf-8?B?OWhzNU5pL2dMOVVYYkJOaEh6U1B2TTVhM2s0MmkyaGczM3MvVk5mKzRUcHVE?=
 =?utf-8?B?cDB3YjgyS0g3U0Q4ckkrd09JdTQyakVHajJ3RGIrMjFncGNJd2VMc2RzSUo4?=
 =?utf-8?B?QUFlUWF5YVZzRDEySkRhK1dmaUZGakJybGpUd1ExbEZnN2ttbWRnZTQ0ZER5?=
 =?utf-8?B?S2szTGRPU2tINm1ycVdDcVRFdTVLVXU3Rkt2ZHVxQ01kTDBRU2tsZEFDemNM?=
 =?utf-8?B?TWJZWnp4UjJZK0xCSnB5SXRuQTJVQmgvZFdSUGp5clVreHFVcWRSdUkydWtJ?=
 =?utf-8?B?NU1QdlZ1U2huSjFpM3ZGdmxXMnp4TEhrSVE1Nisxci9uMXU2S3plZ3hmYW5t?=
 =?utf-8?B?MW9NVVFJZHNUdzVVbEJBdDB4NXhFYzhIeU1SeVF3bVNkZFFwQXRTeS94cm5U?=
 =?utf-8?B?M3IrUzZVU2xUMy9KbUoveVVweW9DbGNKN1NldnVESENoSHNiQzNNTUJIVFZi?=
 =?utf-8?B?aGMvM0x6TWJYUVBTc2ZERitFTURNWGV4SEYyYUE2VnlMWmNVdXFDTEdWaS9p?=
 =?utf-8?B?d0pQUkJuNk5pb0pMYWRNMzFWWkNBMDdxcTVMekpaVEJRUk00Vk10clV3bHhr?=
 =?utf-8?B?NncyWW40bU1UMzM5bE5qTnNGVlVLYmlnZmtwMmV5Y2RnZDk4VW5GamtsZW8y?=
 =?utf-8?B?dU0wb3Jnc3RpUEczdFhiVUJwdlQ0bW9aRytRSy9yVzBETm5ETnpVK05LQTdJ?=
 =?utf-8?B?NmQxcWpNdnhyVWJRek51YjlET0pUYkpWSFlmMEhuSEFQcEJXL0dBSW9JY0Ez?=
 =?utf-8?B?QmdnVkVKcjlmV1hiVXRjOUU1OE1sRW5GaVN1VndvQjIzZW9senZYVXFVcnlX?=
 =?utf-8?B?U1kySWNkNlI4RmhOUnJuejZscjRrcGFmSGUwekVUbUtuZkI0T0dVMFU5eG5r?=
 =?utf-8?B?OWh0U3c3bkoxK1NyUHZwcTJPb29DZ2p0M2Y3Y2xLYnV3Kzk3MEE3NDdRS3pX?=
 =?utf-8?B?bjBTNVFSVGd2TGxRNUNMdUdHTVZDWXByMTdyN2ZCSG9KMHhSQm5DdGJ0R2o0?=
 =?utf-8?B?ZU1Wb05RTlg5TnNMTDF5RDBpZEU1QjBnTndyZ3VHUDc1VXI5QStkam9uVitu?=
 =?utf-8?B?anNPUDE5ZXM3aGozN011NW1RUUVyeW1WQkRybXZ4OHJhZzQ3eGxFcUhEMHdI?=
 =?utf-8?B?dC9jdGE2aitoaUJsNzJqSSt4VlNSTkRtUGFYc3R2MWtibVVleU1ZNGIxODNt?=
 =?utf-8?B?VWI3NytQTHhZa3NsS2kzdzZkMlNyT1FCRDdVUDlmVkUwY0hqRFVtc0wreWVG?=
 =?utf-8?Q?7p/HHwMkkh8F5Ve/QV5NieQ+j?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 40b34615-fd56-4112-adcc-08de281b6461
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 09:58:44.8700
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: G6R1i3bhCXDKTIGQUTZ4/ISUctpxO/LE4owl1kpgzcMCZ2RJcLiv4mzYPEDeMfRsl9pWUrq4/B9zWxmiBc2ofw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5125

Attempt to clarify the purpose of setup_ioapic_dest(), as the comment ahead
of it is outdated, and looks to be a verbatim copy from Linux from one of
the code imports.

The function serves two purposes: shuffling the interrupts across CPUs
after SMP bringup or re-assigning all interrupts to CPU#0 if no IRQ
balancing is set at run time.  However the function won't perform any of
those functions correctly, as it was unconditionally using
desc->arch.cpu_mask as the target CPU mask for interrupts (which is the
current target anyway).

Fix by adding a new `shuffle` parameter that's used to signal whether the
function is intended to balance interrupts across CPUs, or to re-assign all
interrupts to the BSP.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
I couldn't find a specific Fixes tag to use here, I think this has been
broken all along.
---
 xen/arch/x86/include/asm/irq.h    |  2 +-
 xen/arch/x86/io_apic.c            | 13 +++++++------
 xen/arch/x86/platform_hypercall.c |  2 +-
 xen/arch/x86/smpboot.c            |  3 ++-
 4 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/include/asm/irq.h b/xen/arch/x86/include/asm/irq.h
index 7315150b66b4..df7b48c8653e 100644
--- a/xen/arch/x86/include/asm/irq.h
+++ b/xen/arch/x86/include/asm/irq.h
@@ -137,7 +137,7 @@ int i8259A_resume(void);
 void enable_IO_APIC(void);
 void setup_IO_APIC(void);
 void disable_IO_APIC(void);
-void setup_ioapic_dest(void);
+void setup_ioapic_dest(bool shuffle);
 vmask_t *io_apic_get_used_vector_map(unsigned int irq);
 
 extern unsigned int io_apic_irqs;
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 3c59bf0e15da..19960d291c47 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -717,12 +717,14 @@ static int __init find_isa_irq_apic(int irq, int type)
 static int pin_2_irq(int idx, int apic, int pin);
 
 /*
- * This function currently is only a helper for the i386 smp boot process where 
- * we need to reprogram the ioredtbls to cater for the cpus which have come online
- * so mask in all cases should simply be TARGET_CPUS
+ * This function serves two different purposes: shuffling the IO-APIC
+ * interrupts across CPUs after SMP bringup, or re-assigning all interrupts to
+ * the BSP if IRQ balancing is disabled at runtime.  Such functional
+ * distinction is signaled by the `shuffle` parameter.
  */
-void /*__init*/ setup_ioapic_dest(void)
+void setup_ioapic_dest(bool shuffle)
 {
+    const cpumask_t *mask = shuffle ? TARGET_CPUS : cpumask_of(0);
     int pin, ioapic, irq, irq_entry;
 
     if (skip_ioapic_setup)
@@ -740,8 +742,7 @@ void /*__init*/ setup_ioapic_dest(void)
             desc = irq_to_desc(irq);
 
             spin_lock_irqsave(&desc->lock, flags);
-            BUG_ON(!cpumask_intersects(desc->arch.cpu_mask, &cpu_online_map));
-            set_ioapic_affinity_irq(desc, desc->arch.cpu_mask);
+            set_ioapic_affinity_irq(desc, mask);
             spin_unlock_irqrestore(&desc->lock, flags);
         }
     }
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 79bb99e0b602..22fd65a6aa7e 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -337,7 +337,7 @@ ret_t do_platform_op(
         case QUIRK_NOIRQBALANCING:
             printk("Platform quirk -- Disabling IRQ balancing/affinity.\n");
             opt_noirqbalance = 1;
-            setup_ioapic_dest();
+            setup_ioapic_dest(false);
             break;
         case QUIRK_IOAPIC_BAD_REGSEL:
             dprintk(XENLOG_WARNING,
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 69cc9bbc6e2c..55ea62d7d67f 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -1433,7 +1433,8 @@ void __init smp_cpus_done(void)
         check_nmi_watchdog();
     }
 
-    setup_ioapic_dest();
+    if ( !opt_noirqbalance )
+        setup_ioapic_dest(true);
 
     mtrr_save_state();
     mtrr_aps_sync_end();
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 09:58:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 09:58:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166700.1493155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM1R9-0002RU-Se; Thu, 20 Nov 2025 09:58:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166700.1493155; Thu, 20 Nov 2025 09: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 1vM1R9-0002RN-Pc; Thu, 20 Nov 2025 09:58:47 +0000
Received: by outflank-mailman (input) for mailman id 1166700;
 Thu, 20 Nov 2025 09: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=vEGo=54=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vM1R8-0002R9-J2
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 09:58:46 +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 7f5e6774-c5f7-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 10:58:44 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by BY5PR03MB5125.namprd03.prod.outlook.com (2603:10b6:a03:1ea::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 09:58:40 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9343.009; Thu, 20 Nov 2025
 09:58: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: 7f5e6774-c5f7-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ADpMoeAcTgDM8rPgw2x75ewDyV5byGFNXkd1QaFg1g+CZFyJGtZR0wvkdb1fM23YI4OhLKUbzzlkK/0mDGPG7EDwgjsT2UZiWPhN1P2qQPPZAouMWs5TnNdjxZPFkh+UZvRz6OG/E0DxSI/6ftQiGddlIu3fqjeHZ70NQuallmvx/2lWa1UienyoN8GUcfLciOulKQky9WME3MyI6N0zjNckqnjHWzvka92Tmj+NH/rFnVqkk+7d17cQ1CVFleWEvHQ9eh28k1UHJyhFmMTdf+UKR97JtAJT5cYVWX7/0Y0CweWQ+JKcmeEwBqgufL2+B443IDGyRyiQ2wOTbNNdVg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2DM/Ls3+WQjhJwVSqMkgHe3aqCBOgWK7VQBwBqIPy7I=;
 b=waJv55VpcY78DIx1jYeb87oBY4j4XCYc/Cjt6hGlBWGKdUC+vvc+1GshqmCngL0j58uU+qFX8bMQ3k0dKRjVipBv8pHS2fIEGCWORF4TVpMf6lJ20KalruS+xCOB8U7YiXKiAW6pIESvkMpbeHJbjaUstNVp3rGc3kybgMVKhYciicNNFU9YXckVamD+C0IvrfCvLEl0siMnbP+Y6JgIrJuWNm/dT5j0E8heBBu2iWdSxErk7CpZ0AF61KpLzKNgSc8RTUzj4KR/DkpQiCqBeOlZWqsRIShhYuZFT0PislQiOCyBArgw7+kGWDAaktgRn6/Nq06PXTw3dFdvnUM/hw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2DM/Ls3+WQjhJwVSqMkgHe3aqCBOgWK7VQBwBqIPy7I=;
 b=a8QfX7vi4BiFAWAo5XS+vKp48b1HpuXTcuvJMwOYLzg3/0ehKftTJ2MkbMmVU/9KQvPH8nxx2UMGos/839qRfzfGaHu6d7NEQDNxBilPhuIudRMxm2+u8De11cNrjbLQB6leR3JwE9zgCio9UwECqFOgLkZzyySDHssvUcBnssg=
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 06/12] x86/i8259: redo workaround for AMD spurious PIC interrupts
Date: Thu, 20 Nov 2025 10:58:20 +0100
Message-ID: <20251120095826.25782-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251120090637.25087-1-roger.pau@citrix.com>
References: <20251120090637.25087-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA2P292CA0019.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::17)
 To BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|BY5PR03MB5125:EE_
X-MS-Office365-Filtering-Correlation-Id: bea9827c-637f-46b9-d44f-08de281b61e7
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?Y3Y2Um5zVGw0ZG00dnB0cDlLWk5TSDA5OWRFa3l5TStDb2N1RVRkK0JmUUVV?=
 =?utf-8?B?KzR1R0h1UzY2NEpnKyt4ZnFaZjZHUXV6dTJRUkZwa3AveGFWQ0ZKYXFxR0FT?=
 =?utf-8?B?QUFKUEZCWHFZRVB3dDh4MTc3ODVQdGJpSllqV2F4MHpEa285ckZUWUlrOGt2?=
 =?utf-8?B?V3FBTFlxazd0dkhXdzFPck01VnludHBKUkpveTU1K3hJcitEMUdrblpVbzRE?=
 =?utf-8?B?eDh6K2wzcDZydFdIc1Jtd0dUNWNEbUpqcDVEdEVya29vWVgvZ0x1UjlHcjZG?=
 =?utf-8?B?aUJZcTNmVVZqWktjTmdjdFo1NHZsZUU1dFJlUWE0b0hjTDU4bU9SamhXeDR1?=
 =?utf-8?B?Z2NPNE1sUGZkc1JPb1lMcUtFQmMxMXFCbWZZbzFtWUJoZXlGM1FUb0h5eTMw?=
 =?utf-8?B?cVVRa1I2bFlqKzhZY3BLakZic1VmMHZaWUo3YWxBYjZwLy9tc3VNMUpmamF6?=
 =?utf-8?B?RGRpRVNYaHVicUtOY0JxQ2dZVmpFZ0w1Rld0NHNPNFlzQmQ2dHd2K3d0VUE3?=
 =?utf-8?B?dkd3U1dYc09YQXFpZ01vUU9OQ2JNTVdUL293UWNlODByTURaL1l5aVJwdFI2?=
 =?utf-8?B?dEVoNXpOTUpxTmtPb0ZvWDJnUksvdHBHeVFrL1dSWFpsdWdmdUlLQ2R0Tnh3?=
 =?utf-8?B?ZFVudTZTNVZTSnEzRW9NMWgxNnBEZmRmNFJ2NEVaRnNyaXZ1WUVkeEw1dzBI?=
 =?utf-8?B?VnFqa2tNOGNrYmdXcDUxM21LcmlHSVVTblRTcWdZeXpqN01peHoza2NsODlF?=
 =?utf-8?B?T2Z4WjVNZGlDSXlFTkhpNXgrOE40VmlYbmhDRWJXS201R24rSzcrT294eTE2?=
 =?utf-8?B?aVhUWDRJcXJYb3VZeGJCWllwTG9YYlUybUpPa0FXZFV6VU51Mm5LWGMxV3JV?=
 =?utf-8?B?b0YwMkxLeUUzZ0JHejN2WEd4OXp6ZmY3VlFrcnJmWG5PTEdrT3FIK0NJU0M3?=
 =?utf-8?B?V3puZ0tXMkJsSTV1Q1FOUGVmcFA4YmpaTjlsaVpmVGg2VWdhbFFJamlOdExL?=
 =?utf-8?B?aTlnSFRoVjM1aFNIVVVKNExuMWhoRHZtdW1VbEdrd1h4aUFySERFeHpvZnJK?=
 =?utf-8?B?VzV5Z0xqMm9tVWxaQllJaGQ1NXJzb0RHdGFIWGw4WEx3VXVWTk14dXFtYzhq?=
 =?utf-8?B?MTdHWTl3SkNuaFJxUlpkeFJpNDUvdStaZkNTQVNCVEZGd3daNFp3RjVBcW9a?=
 =?utf-8?B?b0d0NWtTcVBUWDdVdmtIU0kwUXJwaHlqV29zWSs3UUhWam1sZk9qYmZRN0Zp?=
 =?utf-8?B?cUdmTnl6S0p2WG4xenczL2dnSElGZGZudGYxM1J6Z1ZRdFpoTTdIN1YvWHVG?=
 =?utf-8?B?QjlmanhyUDQyMklLNzcyeGJ5VFQ1bytvYWlkTXJ5R2xQZXc1R1RyQVRwdUtH?=
 =?utf-8?B?ZVdtSm1leVhMWWF3a2tudFMwbHAwcklzcm13RklYdmlhZGxEVE83czlTQVFB?=
 =?utf-8?B?WXFIYlVVck1Nbngrd2tweUxCUDNvc0FlSEt0cWllSGpuaytwR1cxZHdQM2xu?=
 =?utf-8?B?eE9VeTdUcm53YmhSQWJMeGVGN3plWUVndmR0eU1QMnlFWGN3RlJnNWxKckxr?=
 =?utf-8?B?L1NjQWgvdkkwbUsrMFZTQWhobUJnQVVBQytKSWo4dlN0TE1tOTk5cEozSmVr?=
 =?utf-8?B?TzIzRVl0QmVlckJ0dlNJNFhJVjlDOXV6OUxTeVRPbzA5akdiaE5kMTNiUnBM?=
 =?utf-8?B?MVhNdklQekVsV25oQXNZSk5TR0c4RW93bjMyQVcyR2pMNUE5T1pFT0MwSjhX?=
 =?utf-8?B?MTVqMHJRbUUwa0cyNWFXUnhMaHgwZFdQNFpPRmNsUEFtcC9GeU0vSmQvdDFC?=
 =?utf-8?B?eThpc1g5amR1eHNEZFZGbkRvdjZoV1Z0cTNGUVcwYXlidUpRVUR5TzdGaEl2?=
 =?utf-8?B?VC9ITkd1UFBMcmxpVEpsMjZCVkEzYzUxcFdESUkySFcrZE9BRG84YUl4cnd1?=
 =?utf-8?Q?7Sk2QwgTOdFU32y+d9M0UUfSRRsqXNrP?=
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?WllTMHpHbitLbzlwdE9Za29NT0FVU1E1MDdZdzBUMy9KMFdDQ1JLcmErVWlH?=
 =?utf-8?B?U1pEUzdKNFNsMVhGSWJTNTllQUlKaVFDY2hncWpUSWRKcUgrRUltak9tWlU2?=
 =?utf-8?B?RG5HaTVMMmxUS3o3RUcveHMyYVV2OFZHRW1GN0MyVTRIWFFoVmErb0laakRi?=
 =?utf-8?B?VFRwd3JIQjJnR1REdWNkVGFhdDF4UVFEb2JDNFVDZG8rM0NCYktWMXZQUngr?=
 =?utf-8?B?cmFNekp6YkZNdFhuUmY3T21ESzlYRWgwdURUckpqbmlPWVFZYVFaLzk3TDBC?=
 =?utf-8?B?SEVJUVNqVFllMWZsRUJxYzlFUzBzTG11M1JpaVFjME8zOXpMVVBvOEg3RkxF?=
 =?utf-8?B?ajJDSEc4MGtJZGZXMUlUNS94RkUreFFtRjVqdGMzOEFpV2R6dy9wdDlIK0h4?=
 =?utf-8?B?RVRGVk80Y3FHR2dzV2loR0UvQXE5eXBBZXNqRllZdlRBOEdFenhRVDF5OVZn?=
 =?utf-8?B?TW9EbWdhK2FaRW9haHlHcGRSSGE3ZWZSNU9aZ2ppR3pXditRaDhHbXdnQU1Z?=
 =?utf-8?B?U1lFc2RVTEVtOGJxOXM2emx0VVk3Rnhmei9UV1I0bm1IMy9ZOHd4V1c0eWly?=
 =?utf-8?B?ZHRZdzBkb3h2VmVjUjQvZGVtU0xveGdwK1J3ckJCbGtldjhHaUxsRjlaU29T?=
 =?utf-8?B?OFpRNytwbjQyc3huMnNybEppQWRPd0t3NHJ6SnhyWmgreHJDalVTbTlYSEho?=
 =?utf-8?B?N0Z3aVlCQkhOTXhBZmpBWWhGTHdRRFJCcmxZczFPVkt4NUkvRjJkWHE0aWlr?=
 =?utf-8?B?UHFEK3p2V09Xd1hIeGdVL1pqK1ErOFhxTXhtOFVJV2lPV3JuTStkTWk0dCtD?=
 =?utf-8?B?bWYzTVlLL29IZDdZbzkwLzNiR3QvdmNlWEhnWVJXRlU1ZElRZElBcnlVenh0?=
 =?utf-8?B?Z2JsV2YyUVlhQ1dXU0QyM05uQ05NMlFyZTFILzk5YUZaeVZhQjdLYlZPRkhU?=
 =?utf-8?B?S1pTZ2FlYmRKeWNmbmZ0alVydmhicHJ3WjRHVHRPc0xVL09GYVAzMjVzRDJn?=
 =?utf-8?B?VzM5dWxHQllDWkJSbkJUZUNxakNrREphQTdudGtaUDR1Y3RnRHFCdGMrK2JS?=
 =?utf-8?B?blNseHBGUU5EZkoxRStYU1BOMncwNHFjNG1kc0JxTmF2OEZ2d1d4TlpaNHQ5?=
 =?utf-8?B?THF4bG5SdTdlalNHSWZEK1Q5RU1hd2tTSWlONnJjdUhYNTNibmtyK29oTFVD?=
 =?utf-8?B?MVRvckVNOEJyNWJUSjdTYlhseGthWndtajdtaGtXK28zWEFpRERFdFJQRU90?=
 =?utf-8?B?VTFPdUZGMHRwem9NUkNMTVV3TmM0MUpoN1ZXRU14N2NrdWpMT0oxSVhkQmIr?=
 =?utf-8?B?SXNXeVR1N2tNVTl5eEcyL21mSzVRaytjYVc0UWt6T091QUo0QXFDNWNucjZr?=
 =?utf-8?B?Y1hNdXZQQkFyak9PZFZhRVJ5YU8xd202RVBJaEIvUmZHbjF0dzJ4bElncm4v?=
 =?utf-8?B?aGJieDVPbWFXMlhLdVk1U1ltWUJ4UExMZDJXL2ljN0ZtUGlxb2sydDcyUjhI?=
 =?utf-8?B?MlhqbkF2RXdnZS81UzBCNW9wVWtJU3pZeHFObnNHakpRVFlzeWtOVGF1SXo1?=
 =?utf-8?B?d1FjSTYzdExRTE00cWdnYURDRGJaQzV0VVo4TDBQUGRjQ012RUJUR3l0YmFD?=
 =?utf-8?B?YXFuOGdCZjhsdHh4UFBDMjBmTnRia28zL09SK3FEbFVId3NjNGU5MUs2TUpS?=
 =?utf-8?B?eGhYOHlEOFEzR3h2UktqMDdidHlVOHpjaWRKd2hqZG1INVJtbmRBVVpLTnhr?=
 =?utf-8?B?REhsN0xQb1JrcnNYcFc5SHgvRlNNMzZaYjMxYzh2NjZHWUJaMjNnT3FwVkpi?=
 =?utf-8?B?T29WRXZkRldlVy8wK0JKR2JoNWdWNkZnbURTbCtqc0F3Q3orT2JuQjVEVnFY?=
 =?utf-8?B?eWU4RFRLR0VGSWp1dHdTZnF0WTZFNnVkS1duTENVK3I0U05ZWWszQzNCS05N?=
 =?utf-8?B?QkFvSnBzTlo2Rnp4aTFYUjFydGh1TTY5Mnl6cTNMTzBLTGNJN1lxUE03aHZJ?=
 =?utf-8?B?K1BoVEthNjczb2VoN0wzTXVveElDYTRGYSt1NHRQWHdseXo1WUE5c3lERzZa?=
 =?utf-8?B?TS9ZeDBPNW44Q1BPc0d0Yitlc1pyTk9lanFvQldnVjllTkE4dUhvbHJtbk5B?=
 =?utf-8?Q?mmXGjBMVBJ/8nnbC2auZ7Rhs+?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bea9827c-637f-46b9-d44f-08de281b61e7
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 09:58:40.7537
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: jxdX5UgZLIYdTA+FVFG0GoYvrL3N3GY/MCb3Vw6PYnCERUug37Dvgd19bDWOqN4LRfkGBru+fqHLogUFAfTSaQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5125

Do not set legacy IRQs target CPU mask to all CPUs, as the interrupt is
strictly targeting a single CPU, even if a spurious interrupt can be
delivered to other CPUs.

Instead set the target CPU mask correctly, as do_IRQ() will always deal
with spurious interrupts generated on AMD hardware.  Otherwise fixup_irqs()
would assume the IRQ is targeting all CPUs, and would simply not perform
the required affinity move if the target CPU goes offline.

Most of this is unlikely to make any difference in practice, the IO-APIC
setup will take over those entries and set the proper destination as part
of startup setup.

Fixes: 87f37449d586 ("x86/i8259: do not assume interrupts always target CPU0")
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/i8259.c | 17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/i8259.c b/xen/arch/x86/i8259.c
index 5c7e21a7515c..41f949a36531 100644
--- a/xen/arch/x86/i8259.c
+++ b/xen/arch/x86/i8259.c
@@ -407,21 +407,14 @@ void __init init_IRQ(void)
         per_cpu(vector_irq, cpu)[LEGACY_VECTOR(irq)] = irq;
 
         /*
-         * The interrupt affinity logic never targets interrupts to offline
-         * CPUs, hence it's safe to use cpumask_all here.
-         *
          * Legacy PIC interrupts are only targeted to CPU0, but depending on
          * the platform they can be distributed to any online CPU in hardware.
-         * Note this behavior has only been observed on AMD hardware. In order
-         * to cope install all active legacy vectors on all CPUs.
-         *
-         * IO-APIC will change the destination mask if/when taking ownership of
-         * the interrupt.
+         * Note this behavior has only been observed on AMD hardware. Set the
+         * target CPU as expected here, and cope with the possibly spurious
+         * interrupts in do_IRQ().  This behavior has only been observed
+         * during AP bringup.
          */
-        cpumask_copy(desc->arch.cpu_mask,
-                     (boot_cpu_data.x86_vendor &
-                      (X86_VENDOR_AMD | X86_VENDOR_HYGON) ? &cpumask_all
-                                                          : cpumask_of(cpu)));
+        cpumask_copy(desc->arch.cpu_mask, cpumask_of(cpu));
         desc->arch.vector = LEGACY_VECTOR(irq);
     }
     
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 09:59:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 09:59:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166703.1493175 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM1RM-0002yi-8j; Thu, 20 Nov 2025 09:59:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166703.1493175; Thu, 20 Nov 2025 09:59: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 1vM1RM-0002yZ-5W; Thu, 20 Nov 2025 09:59:00 +0000
Received: by outflank-mailman (input) for mailman id 1166703;
 Thu, 20 Nov 2025 09:58: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=vEGo=54=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vM1RK-0002vx-H6
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 09:58:58 +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 84a27077-c5f7-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 10:58:53 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by BY5PR03MB5125.namprd03.prod.outlook.com (2603:10b6:a03:1ea::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 09:58:49 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9343.009; Thu, 20 Nov 2025
 09:58: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: 84a27077-c5f7-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zRr+B4yTgNvcy0gCJUFMcqQ9qmTL/iHxAx6Od2OS4gMFoJ6gjFPGtC1z7kBKNbRrqLRYd/uBMOYjHlHAM2vh1D9Tj9rOefp/Shc8uGJ4uur7cMdtjH4LPYbhm7DIwoFUhvochst2FKSbahm5XMQ+qd2hVOtOk6isvNNgsN6j/x/LfQQfU9CxL5UV4TMwaB/o6CUrl6neCkvuxAtr9Br5wZZ7w5+08HBJLpnd/bKEpfykvurcG6GlnjVgnjHbKTNrQMAutleotRhOIEgI5i39VZMei8JHEymcotixvPfLrUAkydyo3Z3FO9SPf6kpaeYjr62CpPECvdxQcOzfmxQIlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CNaJa5GtJOvNp5LIJxWkZEHm+c3C8n4cxyZ0oxNQnlc=;
 b=eGfrSFjYNQbU9JZAwPXynmnNbvD/Upon7UiqYEzU8gWb0COtB883iDORBZftKGEo4IGuWur3HG0n4D60ushvtZVp72jFWZmD1bFFvwYvzaQPHMXhPWVL5GoDAsvzMGv9ts+uPg6oy0taCmpV2+YM3qd1pNYgail6CTmnoVyA5r0Iz5Ah6IYPItd5MU6Zu6r3CD6Oc1yItIlW055rpsSxmNx4gWjHyNU0rsx1RT6jEmeQSpAKfrLiVxzfr4JEsdY3ENa0dGSQrDffcoH0LjWHBL8KZhmT/7uP0dPwXyROFI2cejHfzjulD6v9mz4+BlA6Bjc8eOnJStUoXRi0NPR4tQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CNaJa5GtJOvNp5LIJxWkZEHm+c3C8n4cxyZ0oxNQnlc=;
 b=VTNplej0dCbWGCxqeU6Anwpg9k/Hi+Qcpy75RDlWlZ+Jo5Gt/MtFQs+LaOQWt9vbQlSLzL3oinNMBNDR1Ia8BQCkpdOVShas75xSdCyPdHY9thGVthJxj70jI0NTfuvISDlQ064of5rKybqwL45DQmdjT5YZLqNK6/CgssVvYIw=
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 08/12] x86/irq: adjust bind_irq_vector() to take a single CPU as parameter
Date: Thu, 20 Nov 2025 10:58:22 +0100
Message-ID: <20251120095826.25782-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251120095826.25782-1-roger.pau@citrix.com>
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120095826.25782-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0001.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2c::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_|BY5PR03MB5125:EE_
X-MS-Office365-Filtering-Correlation-Id: 82673d05-f1ca-4f00-0986-08de281b66df
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?Wk5ZUVl3UFNDdjNrSE5ETGFZbEhDNnZ6SGMyeDJOMjZUWGxzUWVsNWR2MEFE?=
 =?utf-8?B?MXZVSi83SThWdk1RQVNjVlgwMVRsK3ZDeHNvUlpqL3V2cUQ2NTh6Y3FpRDJB?=
 =?utf-8?B?R2RqNGIzWEpNQThzY1AxTy9HUGFMOXg4MFF0Vi9wWE0yRjdzWlU1OTFuaGt5?=
 =?utf-8?B?ckpmcnN6UDQzZlM5cWVIbURGQ2EzaUZmeWdkc2tlckczZXVJMndFQzN4SkVa?=
 =?utf-8?B?RWNNUTdLdm5IZFZldEYrdWVGRVdMQllRM1NDTUxlT3VQbUZrODFlN1hpc0d6?=
 =?utf-8?B?L2RUcVpmUWtoVEwxVXR2dmZvbUJuK0FQbVRYVUNPRytLcjF2aWVxQ2U2cEZM?=
 =?utf-8?B?dUpKaW0zYnJOVzRYUVBadmNkalZVYkR0WWFQU3lzc1QyQ2ZmZlJLZ3dzZWF1?=
 =?utf-8?B?NHlZRk9WUXJFeUgxWG1zZGprUHFlVFp1K2lFcnhVTWpsOHB2ak1kVlEwenQy?=
 =?utf-8?B?N3BqYVI3SmlyYUgrL0I4T0NuR25qaDNFS2VwamtseU9CT3E3bTYrQWtnTi9R?=
 =?utf-8?B?dnFUbER5eHlTWU5JZXRoVDNFRnZnRGN4eUFjb1RhamVmOW9Ub2RBTEhPbGF0?=
 =?utf-8?B?b2ZhbGhPZFN4OTYrd0RoYlhzOWJndWxSWWRMRU51cFJuSDArdjlkN0g5dkVS?=
 =?utf-8?B?SCthWkRXSGoxNy9FK3VrY2V4bTBNb3NoajVoanpsUHNnUVpsWGNNQnV4Qk4v?=
 =?utf-8?B?NGF6dnlocWZyWHQ3a2ZraXV2c1pnUXFyd2pOVjZNcTdNaExFTDlURTFVeEps?=
 =?utf-8?B?R3ZxUHJ6YThsZzdPQzFNVUI5eCtVWnNHN3JaR0tDOTl1REE1Z2szVjJtdVUr?=
 =?utf-8?B?d3ZpRHZDSytIcndlT3pacGRibk55QzdoRWtkUDVaN0Z6MzluYXk1Z3RSaFVn?=
 =?utf-8?B?TDQ1bnhkOFpaUzM5bEw5TlhHS0JHMU8yK0plN3RlR05sNlNuaDFUZzdmbWZO?=
 =?utf-8?B?TlhzMXR1V0hKM1Z3dUtMcG9FS0gvLzRxSk1rWkJ5aWNEL3JJeWcyVkZhdHU1?=
 =?utf-8?B?bk82dmNFV1psdDM0Ynl2M3JuZk9vM1ZLTUNzYVlibzFKYmRUK1l5WllhRjRD?=
 =?utf-8?B?UXdSTXJoMmkvMFB3dktXaVRBb1ZGdTlod01CbUJJRzlGV3Vxd0J4Wk5iQnRQ?=
 =?utf-8?B?Z3p2QXJ0aE9ibUJVMXUweVRiYmhGUnMzZG0zVm5wMXlKQk1LaXNGSWk5Q3VR?=
 =?utf-8?B?WW9jOTBIVGRrR0RGQ1RHRDRta1p2VFZMU0VXOVhEaHdPQWVZQTZXMnJrSUZm?=
 =?utf-8?B?alZLZkVZaDQwRmJRVDdwUWY2bXBZLzhhODl0TkJjcCtqMTFGdVdRdnI0WHJ2?=
 =?utf-8?B?S1lRanNMb3hNeEhjMzMvOXVpTDN5bE0zeHJackI0MGE2Q05yc3UzRTFoeEdM?=
 =?utf-8?B?a1NucDlvZmlzN3ZCb1lPWHc5c1YxdnZmdTZjSmZvU0xJUlRDT3FSdmhuMzlK?=
 =?utf-8?B?bU5GKzJmYU42c3BqQm9obUxYcVBNdGZLVFV6aHRCUUNNc25ldVNMUnlCN2ZY?=
 =?utf-8?B?d3ZqdVh0YlE3bXV3M0l2SGc5WFBYT1dBZS9PRnNOaThoZytBcTJJa3F6SUtn?=
 =?utf-8?B?bWZHSHpZcXQ0T2UrV25UNVU2cERoNjlnNUtLcE5uNDRXSVNyRTdUTlFkeGto?=
 =?utf-8?B?aVArZzB4ZkhYZzREUmI2SlFDY2JZNFNBQlBmRS93d1pSZ29idEFxK1NacGlt?=
 =?utf-8?B?b0NKSU0vNStMRlVMV0lkTDRUREhIOFFFWTg3endBblM4NFo4cEhoQVRvRlRS?=
 =?utf-8?B?b2ZzazA4MGtZanJkMk5Gbk1lSDYwMWhkL1NIank5OGJLSklFeFJwTUFYSWl4?=
 =?utf-8?B?QXdkREpkbGw2OEhhaDVuNHIyRFRnQU5SRUN4UHRwZ3plSURLcFZteEhQdVNv?=
 =?utf-8?B?blRlbnYvTlN4VjBVanNDT2gwR1ZMeWVyUXBCTjNxbzZqdzVTZVMwSEVmT1VT?=
 =?utf-8?Q?uFokc/9KITKZaixSJvCJcw6xxD5tVp5A?=
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?SnpnWFE3cFlyTGJtOGdUY095SzVCZUppZVIwSkxUenNPbGZFR043NVlNbE1P?=
 =?utf-8?B?ZEZzK0lVd0pabS9UeVJZM2pSaTkzZmF6Qis0alo1Vk8rcU5aaitJVU9Hbmw3?=
 =?utf-8?B?T0N6KzVGNmFaZk8ybjh2UzhCM2hySS80SFdZK0pQSXR6bUM3RGZTenVBNDFN?=
 =?utf-8?B?ZTJVemxRK2dQOGQ3THpiTDE3WDRrV1lIV2RPbkdKZkNoN0xURWlRZStCQi81?=
 =?utf-8?B?aUgxR2F6VkhGcFBocHlCRXFoc1M3all4VEc0M3pBa2NFNzFDZjg2WlZFRHRN?=
 =?utf-8?B?cmtHUHRtQXNEbEVUZDJWQjg2ZzBYTVlDUlMwNktVNGZPbktIV0g3OFF4WWs0?=
 =?utf-8?B?emRoUElzTFllMVBBeFdCa1Z0QkFuMkVHSkVLMHdLeUR1N25ML3JyUEZGTysy?=
 =?utf-8?B?ZkZQVXY5bm4vWS9HOW1NTHdzTGk4bU92S2FOU2RtVzVoak5SY05ORDA1RThh?=
 =?utf-8?B?dkFLd25MaWJGbzMxVVlpK1c3K0hxcjU0cDg1Zk5nR0NETGJ3eUFua1pReUlM?=
 =?utf-8?B?T2gzOHhpUW9rU1VjeEVBR0xPVE5uSiswYkV3TDZPWG9OdElkU2MvdmdwVWlU?=
 =?utf-8?B?SFVQUU9rcTBLQkdoY0s1bjZoOWJoWXE0N3UyM2svSzlHcDZuRnA4U2VJK08z?=
 =?utf-8?B?VHRDdFBXZWtTdjV1V3E3RWdSaC9zTVNaYkxJbzljb0p1Tnl1NWR6ZUFHWUpq?=
 =?utf-8?B?VCtmYzVwWTJhKzgvb1lzMTVaOVZ4bXFTNnpScnNLandNa2QvQ2ZjS2VCZVZR?=
 =?utf-8?B?MEVlY2M4TWc3VnNJTlBSSC8xYTJ1UGdPdjlsYVhRYkRGQXB4b1Z2TVdMSEd4?=
 =?utf-8?B?WVFZc1JwSGcvUWgwNHZEblg2VmFQVHQ5clVFY3dQS2ZYbUxXQ0djdCsxeDJJ?=
 =?utf-8?B?OFpvVnZxdjd2bHljRTZheWZOdzFQSkNTU2E2UFZTTERTMkU1TllwOVQwZ2g0?=
 =?utf-8?B?WTdSK2NENy8zdUlNRkNTalBPWXk0OWJPUEttRk9sWktZY1U5bis4UEx4bDlG?=
 =?utf-8?B?aFVmRW9vY3F0V1pWS1ExY0J4R0lmMUZid1BFQitXN240eDFlN29UdkZpTFQ4?=
 =?utf-8?B?T0VjNnU2RFFMQ0gwNWpmeDJKaHRJK2Uydk5PaDhYcSttemt6V2x1QlRuTWpa?=
 =?utf-8?B?eUQyeEJkR1ZaN004cmRpTFNralJaSzg2dnI2TjEvV29iZHdmd2JZdzNMd3Iv?=
 =?utf-8?B?QldPQnk5cDNkRjB3NDlub0liOFU0SFNQK01nUkdJV20zeXRaT01SVUJsOXYr?=
 =?utf-8?B?aFlKNGJNVmRRdFc1T2I0ZlJtY3FpcE1iZkxtV3BoeXQxTlRHdjQ4ek9kc2J5?=
 =?utf-8?B?YzZSd2thOXB2RHdWZzBJeCtWYWI1Z2RQdUMrVHBvTDF6K0FUYmxOWWY1YS83?=
 =?utf-8?B?cTcwclRXYVI3OXQ1RzR2bGtQQkpqU25CT3dHSHVaeHZHOXlVMWNqdTdOTWFF?=
 =?utf-8?B?bWtvRWpuK1ErdXRqOXdmbFVpOEsrVnRQNGNmbDlzblNDS0FLK1N5MDBhKzNy?=
 =?utf-8?B?UmFCZWFuUmcxWUVIOFg3ell1bXRJSFlvUVp4NDA0V0FDcnJMVDJHNFdnZXFa?=
 =?utf-8?B?NE0zWWVEbDNxbkdndlFpeEplQ0NQbjdXT2xyQ0ZlZlNxMDBoOFRtUmdUOXhs?=
 =?utf-8?B?QjNobjQ1RjZhb21ueFVxV2thWmx5UTJGamF5RCs2VlBJU2JxVS9COFg5WEh0?=
 =?utf-8?B?NzVvWm1JanpUaDZSRkVZbzdFRVVlVEl3bXcwQzIrZFV0SUZFMW9VUkxkNGhH?=
 =?utf-8?B?UmpPQlVjcnBlKytLeG1UbFpYMTdFcm15L21BWlVlbGhpR2hzdFRlWnJybExL?=
 =?utf-8?B?R0k2ZWd3MVdDcEJ3bS82R0JoM1E2aUE5djJrL0JDNUZueCtxcUdqSm8rQUtq?=
 =?utf-8?B?by9SVjREalFsYWJRbXlaWit6bjIxcy84OU4xQjVNbWFMUVhCZDFVOWgwaE1h?=
 =?utf-8?B?bGk5eHozYTNrak5uQTBIRnY5KzFPRWZEMlJPcEJIeThqeklxcFUram5haFFL?=
 =?utf-8?B?RVlqVndDK29DTkdUaFZPU3pXQlhDdnp5eDVBRllKY1AxR3Q3SThhOHk1S3ZT?=
 =?utf-8?B?NTVpcjlNOUlzSEI4NzgySlI4VFFFNWdnSU5DWGg0RXNuQUsvMGJIdGtWb3hI?=
 =?utf-8?Q?tOZqX0qryNBtSZtEbmsROtrRh?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 82673d05-f1ca-4f00-0986-08de281b66df
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 09:58:48.9801
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: rmZ45QmXhVw6ISnre0K1BBc6EOteiV54YSY9esemtS0VaSACDJ0pPBHOEk2M3LJZdZqqRaPhHlqO88jHI5QrPQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5125

The vector will be targeting a single CPU at a time, so passing a mask is
not needed.  Simplify the interface and adjust callers to make use of it.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/hpet.c            |  2 +-
 xen/arch/x86/include/asm/irq.h |  2 +-
 xen/arch/x86/io_apic.c         |  2 +-
 xen/arch/x86/irq.c             | 23 ++++++++++-------------
 4 files changed, 13 insertions(+), 16 deletions(-)

diff --git a/xen/arch/x86/hpet.c b/xen/arch/x86/hpet.c
index a69abe2650a8..abf4eaf86db1 100644
--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -352,7 +352,7 @@ static int __init hpet_setup_msi_irq(struct hpet_event_channel *ch)
      * Technically we don't want to bind the IRQ to any CPU yet, but we need to
      * specify at least one online one here.  Use the BSP.
      */
-    ret = bind_irq_vector(ch->msi.irq, HPET_BROADCAST_VECTOR, cpumask_of(0));
+    ret = bind_irq_vector(ch->msi.irq, HPET_BROADCAST_VECTOR, 0);
     if ( ret )
         return ret;
     cpumask_setall(desc->affinity);
diff --git a/xen/arch/x86/include/asm/irq.h b/xen/arch/x86/include/asm/irq.h
index df7b48c8653e..355332188932 100644
--- a/xen/arch/x86/include/asm/irq.h
+++ b/xen/arch/x86/include/asm/irq.h
@@ -199,7 +199,7 @@ void setup_vector_irq(unsigned int cpu);
 void move_native_irq(struct irq_desc *desc);
 void move_masked_irq(struct irq_desc *desc);
 
-int bind_irq_vector(int irq, int vector, const cpumask_t *mask);
+int bind_irq_vector(int irq, int vector, unsigned int cpu);
 
 void cf_check end_nonmaskable_irq(struct irq_desc *desc, uint8_t vector);
 void irq_set_affinity(struct irq_desc *desc, const cpumask_t *mask);
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 19960d291c47..dfbe27b12d54 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -1859,7 +1859,7 @@ static void __init check_timer(void)
     vector = IRQ0_VECTOR;
     clear_irq_vector(0);
 
-    if ((ret = bind_irq_vector(0, vector, &cpumask_all)))
+    if ((ret = bind_irq_vector(0, vector, smp_processor_id())))
         printk(KERN_ERR"..IRQ0 is not set correctly with ioapic!!!, err:%d\n", ret);
     
     irq_desc[0].status &= ~IRQ_DISABLED;
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 5cd934ea2a32..e09559fce856 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -150,26 +150,23 @@ static void trace_irq_mask(uint32_t event, int irq, int vector,
 }
 
 static int __init _bind_irq_vector(struct irq_desc *desc, int vector,
-                                   const cpumask_t *cpu_mask)
+                                   unsigned int cpu)
 {
-    cpumask_t online_mask;
-    int cpu;
-
     BUG_ON((unsigned)vector >= X86_IDT_VECTORS);
 
-    cpumask_and(&online_mask, cpu_mask, &cpu_online_map);
-    if (cpumask_empty(&online_mask))
+    if ( !cpu_online(cpu) )
         return -EINVAL;
     if ( (desc->arch.vector == vector) &&
-         cpumask_equal(desc->arch.cpu_mask, &online_mask) )
+         cpumask_test_cpu(cpu, desc->arch.cpu_mask) )
         return 0;
     if ( desc->arch.vector != IRQ_VECTOR_UNASSIGNED )
         return -EBUSY;
-    trace_irq_mask(TRC_HW_IRQ_BIND_VECTOR, desc->irq, vector, &online_mask);
-    for_each_cpu(cpu, &online_mask)
-        per_cpu(vector_irq, cpu)[vector] = desc->irq;
+
+    trace_irq_mask(TRC_HW_IRQ_BIND_VECTOR, desc->irq, vector, cpumask_of(cpu));
+    per_cpu(vector_irq, cpu)[vector] = desc->irq;
     desc->arch.vector = vector;
-    cpumask_copy(desc->arch.cpu_mask, &online_mask);
+    cpumask_clear(desc->arch.cpu_mask);
+    cpumask_set_cpu(cpu, desc->arch.cpu_mask);
     if ( desc->arch.used_vectors )
     {
         ASSERT(!test_bit(vector, desc->arch.used_vectors));
@@ -179,7 +176,7 @@ static int __init _bind_irq_vector(struct irq_desc *desc, int vector,
     return 0;
 }
 
-int __init bind_irq_vector(int irq, int vector, const cpumask_t *mask)
+int __init bind_irq_vector(int irq, int vector, unsigned int cpu)
 {
     struct irq_desc *desc = irq_to_desc(irq);
     unsigned long flags;
@@ -189,7 +186,7 @@ int __init bind_irq_vector(int irq, int vector, const cpumask_t *mask)
 
     spin_lock_irqsave(&desc->lock, flags);
     spin_lock(&vector_lock);
-    ret = _bind_irq_vector(desc, vector, mask);
+    ret = _bind_irq_vector(desc, vector, cpu);
     spin_unlock(&vector_lock);
     spin_unlock_irqrestore(&desc->lock, flags);
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 09:59:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 09:59:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166705.1493185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM1RN-0003Dp-Lq; Thu, 20 Nov 2025 09:59:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166705.1493185; Thu, 20 Nov 2025 09:59:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM1RN-0003Di-Hh; Thu, 20 Nov 2025 09:59:01 +0000
Received: by outflank-mailman (input) for mailman id 1166705;
 Thu, 20 Nov 2025 09:59:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vEGo=54=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vM1RM-0002vx-A9
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 09:59:00 +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 88507b74-c5f7-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 10:58:58 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by BY5PR03MB5125.namprd03.prod.outlook.com (2603:10b6:a03:1ea::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 09:58:52 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9343.009; Thu, 20 Nov 2025
 09:58: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: 88507b74-c5f7-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Lj4Uhx1xivNmQbsGPfN+PgcWEJPX5EUnoWEovCiM/x3G63KPOFYy/LRP7b9HFcQmTIPnfPVxKJtzuWIMs8oM3tDW2xNb+4MikSPnc+t6MaNiQWuzonob+zCZLu0NTfauen0GPy61DyHLG7S5bKSZgFCJs2+NUN7s8Hc1lRaHA1M80aZM0YQn51ZyQV7MlJXmOBynzECtuAWUrsPVkt+QjeAhildH0spNIDByc/xnUx9pJ+ADdSRCSZJ3SFEKk2D3iy+QzqQIlTivKmKq6dm4+s50AAWGH/F2QQPRkdBedSXmQetaL4c/SxAJuR9S0C6TDVLjbfIYn31DQtgKcwOqrA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7sT9dG4bTppFe0E9dtJP58jC+wxTYyALuG2pVgbrgjQ=;
 b=thZEft+iQSnjwtujR28j3/Qox0Pbfc33xgnq1+HeLDPw/DQfkCG2xMsqnjUu3KMb79Ph9u1afD3Nd22x9AKq7ORrZEnUn56zpPjbHnqrR57N+n1mKd3upiBZo/+DnnRYq6nEL1gAsEN/VRbm3G/r7/LCUTcbYUO08ZnWEGM5jV+0EsjAEwSFzfm/J/Mw5pSCgMA4v4LWJKbcb0Hpkq04sdpm63yj4HWYwzB5bugpuyr78IUSV7sJHVDrXguNAX+czrdkpmLYUf1ZhSvhvAm/M4FEGeJppuMdDTXMtkxUd8WNZYIYMLg7PRWOfHLO6ITQWA/bzEyfPxvjs83pIYVYYg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7sT9dG4bTppFe0E9dtJP58jC+wxTYyALuG2pVgbrgjQ=;
 b=upyxDzvy5YyZ3SzoSMRvCeCvSUr2AE2S+5Bm9SPAdL8z0sPlGoo7TSOLU7A2y9aJ3xCT7vDZQ5mApjEMl1uhmMfUvNn0mI9SH2p2A7NU8AUmmsEBH3t9c5doJMXyg86kKnMRTKAqYqJtEWsaLb5WCrLdmBN/aXhASyw7NxJzUgA=
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 09/12] x86/irq: convert cpumask parameter to integer in {,p}irq_set_affinity()
Date: Thu, 20 Nov 2025 10:58:23 +0100
Message-ID: <20251120095826.25782-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251120095826.25782-1-roger.pau@citrix.com>
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120095826.25782-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA2P292CA0019.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::17)
 To BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|BY5PR03MB5125:EE_
X-MS-Office365-Filtering-Correlation-Id: 04bf01c3-2885-4cc7-32f9-08de281b68ef
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?TVU3YW9tcUlaU004S2c3dXllVWQxYnB4MW5haUJ6QXIrVExzdUFXalg3dVJJ?=
 =?utf-8?B?VUZZVFl3MHlQT2I1RUoyamIxK3dNbUhFdnMwTnNvcERGQzdYVlVNcTd3MU5N?=
 =?utf-8?B?S1cyUEhBbXBlNlJncGVWMWgyRnNGb0ZPb1JyMGhJb0FtdUJsUHY0NDB1SjMr?=
 =?utf-8?B?aVQ2d0FYOWlzejhEVlZXVzBabnlvc3lsOE5YYzlHWGdObzl1Um5FRE9UaEov?=
 =?utf-8?B?WGdPcHhBSU0zZk5DdmlEbU84VHB0WmhtZUdtYjNtVnJDMjAxaU12QVBwQ1VC?=
 =?utf-8?B?YU55WDE0WU1nQXM5a2VlTXRZakltc3VNRXZzQTZ4OHRWb3NWejNoZGUxOHlh?=
 =?utf-8?B?aUV5RmF5WGtLamoyU29XaUJhYm0zc2xZcjJ4SnNuYldMK1JnM1RaNEppTTBF?=
 =?utf-8?B?V2Z2REIyY0ZrWjJBdWtQWXNUS0pVYlBSZUwrWTNlQ0x6UmY0SW80amsvY0d6?=
 =?utf-8?B?dy8venhlYUFxWkFqLy9qVEZZN1pIWnVFdDJXWmNrVXQ4cUZHZGNLTTcvUGZM?=
 =?utf-8?B?K21EZkQzZ0NDc1YyWXZGVVRWVXA4V2ozZitNV2tYTENrZHNVc0RkaVlvSkwy?=
 =?utf-8?B?NlBEclcwQ0pPNUt1elRBTUdocWtqZXRaUlJJbFZXWG9xY2xRRW5aNW1EelJ5?=
 =?utf-8?B?eWpwTFJWa2syWVJ3VmhIUExVbnVoMjljS25MMDNyTHZ6U1ptcXpYcUxGMjNr?=
 =?utf-8?B?TGFpL2oySCtyb1JlM3BoOGc0a3UrL0g2bWZXYk44dDI1aUJCb0NnbkpHaXBj?=
 =?utf-8?B?WXJZTnZuZ0srczNEZEVGZm52V1QyUVdmT29wWXZJV2V3Q1BHaEdNbGxRSTZs?=
 =?utf-8?B?ZnNJWnM3U1ZMQjhkYVJBdm84NU1uem4renYxUHkybVFVK012MC9uUDd6THdz?=
 =?utf-8?B?TDI0OCtpVWdIaEhoUWFDV2MxeUdLRXVmMFBWTG0vYmd4bEZ4SjJWdmNid3B0?=
 =?utf-8?B?RFdYa2R5bG8vSjhBWTcydytPRms5L0ZTUlJzR3poVnRybXhXblNmN3JXK3JX?=
 =?utf-8?B?WS80bXA1NmdDWnhoV2dsSlVFR0dqb3gyeENscmhrRjhpUXNpQnVLV3N5Y0h3?=
 =?utf-8?B?Y1JFYlhPd015WGlBQitiYk1LaUc3UHBiZ1c5eU81a3hERGp1dEYycDNZZFFm?=
 =?utf-8?B?MW13dUxpZE1QK3ZWS0h0bEtuWVZObDdGWWRmVlhyaTZLK012Q3VPUDlvOTVq?=
 =?utf-8?B?MXorNUloVWlBaEhpS09aRlkvblVPLyttMG5LRjJ0MzdtdExSamNyKzR2ZFMv?=
 =?utf-8?B?ZGpBZHg1T1BISThUT1FWZHYxZWJTOVBOYzFMMzdONS9HZ0FGcml6aHE0MzJw?=
 =?utf-8?B?WXNJMlFnTXpJYU40VktJS0Urd0VwL294UGJ4eWFxdHUrdXl0eEZMMFRUbGxT?=
 =?utf-8?B?RFhMSjcvNTV1dThKM1c4ZFlDK05McmlSVlpXamJPaTZkTXhaSmFnbFYyajJv?=
 =?utf-8?B?ZDJsM3JBMVZwNElsaGUxV2k1dE5UYW5ucndxYkV5ZVFwd3REYmI1TURJM0FX?=
 =?utf-8?B?c0VDYUlhdzFBQjRCQVZXOWtFbEh5TFZWWUpNcXU5Q1Y4MmVaQmkzbzQwNmdU?=
 =?utf-8?B?Nm9YN2NNVmpGb2dyNVN0Ym8xSVpMMmNxK281ZzdoTUVYRFBvcGRYendMOERz?=
 =?utf-8?B?eENmd21XSXZQeENSOTNsem1XVWlQeFZKUHZma3FTNDlpMkIyTDRQeXE2bllO?=
 =?utf-8?B?bDVuUFczN1NyTlNxMEhGSGdXaXRMRWJOTmFMRVh2di8ycnZ1NzB3WFdBUjl6?=
 =?utf-8?B?R2dxMUw2S1RQTU1mUVNCb01XNDdOakFhZ1lCMFdNRFNGWjBoUTN6dEZWa1VZ?=
 =?utf-8?B?K2R3WEN4SnRpY01ISWw4UUYwWDU0T3psaERhUzRlOFRtTll3UUxWMjJkbWV5?=
 =?utf-8?B?QVFBT0VkQzZzM3RmYjJ4VFVhUmErRmwrZEZ0ZjRnTFRndlJvOS9ZMUlXNzNr?=
 =?utf-8?Q?aezRHQaDCZy4hc+7LdfWjM7ag6ak6eg3?=
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?eVpFVjNWUml3M3pLS2cvTEE0ckNKamRwNlpOaWJFOGJRekJibkQxS3hiVENw?=
 =?utf-8?B?SEk4ZHg5Nk53bDIrTnFZMlRhWTNzdDZYbTRWYkxqSkhPb1RvdTZOZnVQWWdY?=
 =?utf-8?B?eHBqWThTSjJJZE1PelBGUVJPRy9YTzF4WEM2RmFnTlMxdFpGVTRZUURkSmwz?=
 =?utf-8?B?Zk53RTZYMGJNRGpGMkhWQzdZcXc2eXJXdmdLV1JSdHd0MElTUUpKOHo3bHUz?=
 =?utf-8?B?dzhiUHp6OEcvR1BGMjFzU1I3VHVCS25iRENuUVg2djFrWXNGOUJEQUgvMTN5?=
 =?utf-8?B?SnFTdDY5aEZjMFhuNjE1RTZIako0N0hxd1U3cU9uNzJVclduNEdvMnd1Qnpv?=
 =?utf-8?B?eFZQbmVZN2dnS0tsMnFpTHRXc29aVDY2VHQ2c1NQbnMvMmZCNWJlOTNPaFdY?=
 =?utf-8?B?QjZpZ2xiYis2dnlIeE4xaWEvUXhPNmhwVmo0NHRPSEFPVjVESjBhcEp4R1E2?=
 =?utf-8?B?bUx0VWFiQU1qdGNFcm14dXdRbzM5L0huSmNvc0lRZEpaVjdtQnFYK2lmaDln?=
 =?utf-8?B?em4wK1drSDU0aElwckNoMFFib3ZVSW5tSjNNWnJwV3pyRk91V1VQaGRqTnEv?=
 =?utf-8?B?dFlxbjUycDVmS1preWgrTzFlWTV0ajdrdmpyUnEwUTlPclpnQ0p4LzVPZjJF?=
 =?utf-8?B?eHg0bUJRMnZndElLZWV3QzlGYTdRbDJiZldDNVRWb29HUk5WQVNVZ2dKNDhL?=
 =?utf-8?B?TGJOcXpnRWI5MjJadGJ1enB5aHRUSHRGYktMWTRDejRyZjQyKzRhRGlvcTU3?=
 =?utf-8?B?SWdYcjZNN0NGYjlnMk5kQWxCSjRJalBIdUhmblBVMjVjVGxPM3lGS2JCQjVW?=
 =?utf-8?B?YWpVbE9nVUdyaDIxQytWQjQ3Z3RqR0dPZ0FnQmJDVzkvMGoxN2xsQlE4K1I3?=
 =?utf-8?B?eEd0c2RSWm81UTBRYy9BcUUxSWdtam52OG5ON0FGVllHdVc4S01SSUZ6MEcw?=
 =?utf-8?B?NkZQL2FlYzk1VEVmV0hqMnhrWDFMTGo5NFhVKytCZmtlYldpTnpsbVMwdCtD?=
 =?utf-8?B?Y1BWcFpOZzJXbzFjNUp4ZlFLV2g0NFA5dWN4YzVkR3ZuMHFmWGR6ZjR1ODhJ?=
 =?utf-8?B?am0zR2pweHo1a2FpazFGWk9BQTdVMk9BWkJsTnU2QVNqYjVKaTBZV3VzaG13?=
 =?utf-8?B?VTgzZ25yQWEzMjdTV21nVGx6elgwNVQ0VTRRS3F0b2RncERoZFRYVjJxUGhF?=
 =?utf-8?B?VGtjVVZ3VGZQWFZRRlBNK3JtcGVVV3ltMGdVaHE1aDRXQnRKMmpEcllXZDY0?=
 =?utf-8?B?WFpnR0t0WlBmQjRJTWpraFl6MWVETC9tbkp4SHpvNCt0SmxuR3JyQXdzMENN?=
 =?utf-8?B?bU9yOEtVb25kbUMza0Y0KzdDV0NmcEkwRmVVTnJUcjE1VzBtL1cwRDBLMWc3?=
 =?utf-8?B?ZDZMNTJjanZSWUpnckZoSkpFSHl4R29rS2pOYlJBcHpjUzU2c0NPbnFwdmQ4?=
 =?utf-8?B?eDNTdWtGZzJTeG0zNFQxcm5UakxyRzAvSzI5YTlRSEVBcHg2eGljbXA3MFZP?=
 =?utf-8?B?SmQ4UjJ0WTJFa2F2Y2gwY0Y4czFFVVZVdG95S0pKRmxEV2V2M0t6Y3F6eURL?=
 =?utf-8?B?Y2hBRjVBZzZES2xNeEM1S0w5NERCeVFIelF4Z3NVVjBLRFlneUlrTngwbmNJ?=
 =?utf-8?B?Z1F4RXRZNzFCKzRlcVlEUGRBTkVpQVB1WTBQS0xrUDFjTituWWtUUk5scXJl?=
 =?utf-8?B?My9sa2loWis5MFFoVlltY0xZc0lORGppOTlOT3Z6aUVTbTZMQTdzU3Y0NTQ5?=
 =?utf-8?B?UGRpQkI0Qm9HQ2NzWkxGV216cndkSUVxUng2emIzSS91Q29jSU0rcE1hLzc1?=
 =?utf-8?B?YkRycTRYd3dtalVheEZjMDl1WHdNOWhhRmZvZ3BBSXJUNzAzckdLR0xRbkU1?=
 =?utf-8?B?YWJaQVNUQ0ErbDhkcG5HamVJVkRsN3dDcUJZWUlDSG40UWRiL0tKMGI0UmhB?=
 =?utf-8?B?anRqc2pJMmw3UmF1N3ZybnViNTk4VUdwNVpUcG91RjlBVitpeWxtUWFVbUNW?=
 =?utf-8?B?MVZobjQrckZHb0d3WTNLVjIvVnRVaC9qR0k1VmhIejFBVDV1cmt2bHZ0ZHh0?=
 =?utf-8?B?ZkRUNVhrZUdkUm5sQkFTTDNIL1VUb215Z2kwTGtqQm1BS3ZmQ3FMZTk5Sk1H?=
 =?utf-8?Q?hAYQgqvRJG9NnVKhQ5mSUwvpg?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 04bf01c3-2885-4cc7-32f9-08de281b68ef
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 09:58:52.5026
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: R0+XDPdeoleE49fMrYptP+dt1qUVB1tCYTVhzzJWitA4a5watpW3JIJ5r4Dilw0LD5HsX4dQ83lWq6z+4oASqA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5125

Existing callers where already generating the passed cpumask using
cpumask_of() to contain a single target CPU.  Reduce complexity by passing
the single target CPU as an integer parameter.

No functional change intended.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
The function names are misleading, as {,p}irq_set_affinity() doesn't adjust
the affinity of the interrupt (desc->affinity) but the interrupt target
itself.  Further cleanup might be helpful to correctly differentiate
between setting interrupt affinity vs setting interrupt target.
---
 xen/arch/x86/hvm/hvm.c         | 2 +-
 xen/arch/x86/include/asm/irq.h | 2 +-
 xen/arch/x86/irq.c             | 8 ++++----
 xen/common/event_channel.c     | 6 ++----
 xen/include/xen/irq.h          | 3 +--
 5 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 0ff242d4a0d6..33521599a844 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -485,7 +485,7 @@ void hvm_migrate_pirq(struct hvm_pirq_dpci *pirq_dpci, const struct vcpu *v)
         if ( !desc )
             return;
         ASSERT(MSI_IRQ(desc - irq_desc));
-        irq_set_affinity(desc, cpumask_of(v->processor));
+        irq_set_affinity(desc, v->processor);
         spin_unlock_irq(&desc->lock);
     }
 }
diff --git a/xen/arch/x86/include/asm/irq.h b/xen/arch/x86/include/asm/irq.h
index 355332188932..73abc8323a8d 100644
--- a/xen/arch/x86/include/asm/irq.h
+++ b/xen/arch/x86/include/asm/irq.h
@@ -202,7 +202,7 @@ void move_masked_irq(struct irq_desc *desc);
 int bind_irq_vector(int irq, int vector, unsigned int cpu);
 
 void cf_check end_nonmaskable_irq(struct irq_desc *desc, uint8_t vector);
-void irq_set_affinity(struct irq_desc *desc, const cpumask_t *mask);
+void irq_set_affinity(struct irq_desc *desc, unsigned int cpu);
 
 int init_domain_irq_mapping(struct domain *d);
 void cleanup_domain_irq_mapping(struct domain *d);
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index e09559fce856..bfb94852a6dc 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -947,7 +947,7 @@ unsigned int set_desc_affinity(struct irq_desc *desc, const cpumask_t *mask)
 }
 
 /* For re-setting irq interrupt affinity for specific irq */
-void irq_set_affinity(struct irq_desc *desc, const cpumask_t *mask)
+void irq_set_affinity(struct irq_desc *desc, unsigned int cpu)
 {
     if (!desc->handler->set_affinity)
         return;
@@ -955,19 +955,19 @@ void irq_set_affinity(struct irq_desc *desc, const cpumask_t *mask)
     ASSERT(spin_is_locked(&desc->lock));
     desc->status &= ~IRQ_MOVE_PENDING;
     smp_wmb();
-    cpumask_copy(desc->arch.pending_mask, mask);
+    cpumask_copy(desc->arch.pending_mask, cpumask_of(cpu));
     smp_wmb();
     desc->status |= IRQ_MOVE_PENDING;
 }
 
-void pirq_set_affinity(struct domain *d, int pirq, const cpumask_t *mask)
+void pirq_set_affinity(struct domain *d, int pirq, unsigned int cpu)
 {
     unsigned long flags;
     struct irq_desc *desc = domain_spin_lock_irq_desc(d, pirq, &flags);
 
     if ( !desc )
         return;
-    irq_set_affinity(desc, mask);
+    irq_set_affinity(desc, cpu);
     spin_unlock_irqrestore(&desc->lock, flags);
 }
 
diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index 67700b050ad1..8e155649b171 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -1226,8 +1226,7 @@ int evtchn_bind_vcpu(evtchn_port_t port, unsigned int vcpu_id)
             break;
         unlink_pirq_port(chn, d->vcpu[chn->notify_vcpu_id]);
         chn->notify_vcpu_id = v->vcpu_id;
-        pirq_set_affinity(d, chn->u.pirq.irq,
-                          cpumask_of(v->processor));
+        pirq_set_affinity(d, chn->u.pirq.irq, v->processor);
         link_pirq_port(port, chn, v);
         break;
 #endif
@@ -1712,7 +1711,6 @@ void evtchn_destroy_final(struct domain *d)
 void evtchn_move_pirqs(struct vcpu *v)
 {
     struct domain *d = v->domain;
-    const cpumask_t *mask = cpumask_of(v->processor);
     unsigned int port;
     struct evtchn *chn;
 
@@ -1720,7 +1718,7 @@ void evtchn_move_pirqs(struct vcpu *v)
     for ( port = v->pirq_evtchn_head; port; port = chn->u.pirq.next_port )
     {
         chn = evtchn_from_port(d, port);
-        pirq_set_affinity(d, chn->u.pirq.irq, mask);
+        pirq_set_affinity(d, chn->u.pirq.irq, v->processor);
     }
     read_unlock(&d->event_lock);
 }
diff --git a/xen/include/xen/irq.h b/xen/include/xen/irq.h
index 95034c0d6bb5..f0b119d23521 100644
--- a/xen/include/xen/irq.h
+++ b/xen/include/xen/irq.h
@@ -193,8 +193,7 @@ extern void desc_guest_eoi(struct irq_desc *desc, struct pirq *pirq);
 extern int pirq_guest_unmask(struct domain *d);
 extern int pirq_guest_bind(struct vcpu *v, struct pirq *pirq, int will_share);
 extern void pirq_guest_unbind(struct domain *d, struct pirq *pirq);
-extern void pirq_set_affinity(struct domain *d, int pirq,
-                              const cpumask_t *mask);
+extern void pirq_set_affinity(struct domain *d, int pirq, unsigned int cpu);
 extern struct irq_desc *domain_spin_lock_irq_desc(
     struct domain *d, int pirq, unsigned long *pflags);
 extern struct irq_desc *pirq_spin_lock_irq_desc(
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 09:59:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 09:59:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166706.1493195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM1RP-0003Ty-So; Thu, 20 Nov 2025 09:59:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166706.1493195; Thu, 20 Nov 2025 09:59:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM1RP-0003Tp-PW; Thu, 20 Nov 2025 09:59:03 +0000
Received: by outflank-mailman (input) for mailman id 1166706;
 Thu, 20 Nov 2025 09:59:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vEGo=54=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vM1RO-0002vx-Ty
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 09:59:03 +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 89894f62-c5f7-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 10:59:00 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by BY5PR03MB5125.namprd03.prod.outlook.com (2603:10b6:a03:1ea::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 09:58:56 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9343.009; Thu, 20 Nov 2025
 09:58: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: 89894f62-c5f7-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lxYawzihFZGaUVANL6Uo5Q8fjKDGZf9oo8LJWUZJJ7sWtkpZWiDQS5ZNAT+qci80b53xbfHBzeGod8ggDPx+iFlixl7+wlCoYRWojBClCnZSkaY/D7mphbDIyXLmdbOwoJxkaUtOzXlrlOwzSekw1Am+/GfAjxfC9iACDlaZ0vLOvkALsN9zBeKS5iwZafpPucWxQ/APJp7Hm+TRVdua8iSXES5drUDn2FQZsQZjZey1QZvs6Clt29E5Fv3RoaJSXUVygHQ+5GepZLrewOQdyph2ptAiiy9di7wQ5JPt+YEkvjCCgA2rnn8wZ63BwkWs8NHUl2BQCyJU5Cs/7FwfhA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rX9f34N3RiS3RpmCEMtImbPweMHt7sIs+19N2XAhZxY=;
 b=hJ0Ir4De2vnYBQs+rfWdifSUtuyn/RAM2Fz2k+NiWNEXjyEVnIPvdlmX44iqfZCgddyPjZlEAnXi5+m27RGgmwGHrCj//LmOZG0lxdgbJ5gtbltGbktWw9wvI65gB1c7F3PWvr50K7Mnf129opKnxV1S5BLsDbznBZBJVUtIrVg0dF1Jk8ASpcpBIT/zNP8Sg1agJVCR+Ni0ETDLJbdBF9G34Z01br3I/dNTWz1mj5gMIOJARnOnuIdw9wyWHx7psxzDLewR4LpbRe+e41A+INLf7FG/c5LyOXstzAYFVmhtIN28T2iB5pJDRBNFxTkd5bIblAhzmu0fkcz09Qbx3g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rX9f34N3RiS3RpmCEMtImbPweMHt7sIs+19N2XAhZxY=;
 b=ClsFTwxAalCs+FHtKmkefg4f+seqAqpcAtxFNfWzjvgcKeEVB7kwwm9w7T0fh0h+GuZYQLEvdWl5C/hec2efWDQpB9eaEmmoGbgaDYs+fmukacat/Dp83N9JaP39+HlXNLm1ePoUkxaTtSvpjHgCIwTCeUU+stpqS4fYePQ91/4=
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>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH 10/12] x86/irq: convert irq_desc cpu_mask field to integer
Date: Thu, 20 Nov 2025 10:58:24 +0100
Message-ID: <20251120095826.25782-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251120095826.25782-1-roger.pau@citrix.com>
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120095826.25782-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA2P292CA0005.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250:1::8)
 To BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|BY5PR03MB5125:EE_
X-MS-Office365-Filtering-Correlation-Id: f977eb64-9f6b-4805-bf63-08de281b6b41
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?bHJBTVFHMWlFcWlsR3F6RzZLanhKQTdXMFUzNjFaYitQaWd1QmZxRHlWR1VM?=
 =?utf-8?B?bWl5UE5NTVZqODhIUGJWQlNsYTBadDIvdmsrQ0hkZ2YrNEVLMmR3eitjSktX?=
 =?utf-8?B?WURWZ1pVWCtvdE5XcDNRQVdHeFIzTDdNaG1PeVAzUHhRSFdGUTA4eEJxV013?=
 =?utf-8?B?RW9sSzBkVGR5NVVNODRwRjlubUIzWGtzaFl4ZHBiWVVhTGY0WDBQWEVHbmlN?=
 =?utf-8?B?QW1CNVhPUFBETkVzLzlqOWswSkY0NE9nUFBXNlhZUjFaeUJ6Z2VQbk4raG5Z?=
 =?utf-8?B?ZG5UVE9naGwwaUlOWWM5YlJvdm9UMzFSbUxSdGFsVm5OWmpvcnBUaHVNM1RS?=
 =?utf-8?B?WldWOGxzRjBBTGhMT0xpNVBEVzVwa2c1ajRjVjgxNTFJemlDcnVYOVkzbWJZ?=
 =?utf-8?B?Nkl3U1RMcTJINWJaYk0vYk5NUDNSSS9Tc0NjYVlUSUxXczJZNkpkcXB3RlZt?=
 =?utf-8?B?QU1icWhka05IUGQ1YWtqYk01S0labHZWQWFzNW1BalB6WE93M3dtK0NkQXND?=
 =?utf-8?B?OE5nNFBHVllnR2VHSEhBazFzZDltYktjM1dSTEFaQkxjdFQzRFUySkU0d1dv?=
 =?utf-8?B?YkVIUVhyUGd4a09PSSt0OE9peWZvUVRTaFc4TTR4ZzB6dWNOZ09qaDV6bEVU?=
 =?utf-8?B?SU1YcldET2VUZWQzemZ4NjhYWjl2Nmx3L1lScUs0REhHbU5vUHRGRGE2ZzNp?=
 =?utf-8?B?eTBtMzlSaG4xSXE2alpyYXRrZDV4MGVSMTBKSnc2YlBIU0dQZm5ITElkeEdG?=
 =?utf-8?B?WU1ZZGQxUUhkNExybEdyckZ0cVdLamt1OHFrdTlHOXRpTXN1KytoUUJOZFZK?=
 =?utf-8?B?T01ORFEzQ2NIR0ovRjFoVjRwcnpoQ2t4QlBYVUlnSTMxZXVzM20vRUZGKzFS?=
 =?utf-8?B?Wk1uWG9wMWZVbHByZlVHQXduY2hJNCtNaEJtWUk5QVo2SmltRDU5MGlLdjBW?=
 =?utf-8?B?d3VrQkFHZ1RjOEI4Ui82bjE2ZXdTbmdHWDdSeGkzam9zdkVjeHhtRzFsMGZU?=
 =?utf-8?B?RXNkQ0hJZjR5UWZONVI5akdjUzRDRUtwejlZRkFreDRkb09ES3NrQ0FXL2U2?=
 =?utf-8?B?VmJCWWxDRTFxWWVLNm5QWTh2NUxQc3JGZ3d4NU1yQkFXaUIxazN6Vk9RQTVT?=
 =?utf-8?B?SjkxbXNKWTVscldpTGlPaGwxNWxHK2tBMFZEOHFoZW01b2FTT29WT0laS0hY?=
 =?utf-8?B?b1IzTU42dFo2d2tNZEUxVXlmK3pYb2tybENzUzhnV3Uxem1LZEhWV081YlNp?=
 =?utf-8?B?dDFlNENaRlkvZzgrK1BVYUE2YXJGOFQxalV2cWJuZGFGZS9qdnZpOW9pRlNr?=
 =?utf-8?B?a2Q0Zm1LK0V2SEY0UGtoVWpoVTJxVXQ3NUZiTzlvZDB4Rlh4RmdDQnlUelli?=
 =?utf-8?B?SnVkR2dLd1oySTJKbFFRa3J2bS95WHpPOXN1MVlQZTJCQzc2U2J2VVBzUXJO?=
 =?utf-8?B?TDhvenJxTnkrcjlSNWJhL3J5NWQvNkpFeTVnU1BXTExBS29EeGUrOEpCS3du?=
 =?utf-8?B?dHNzaldQRDJuOTZuaWtHeUp5aHNnV293bW9HY1VTQy9rYWIrRTdGTGNuYVZx?=
 =?utf-8?B?Wi9abk5FS2VLSldYUVlFcENxMEd2SlpKckpSazd1MkwzNXY0eXVqa0dNSWVZ?=
 =?utf-8?B?S2xXTEdJelJSS0lrUzhlVkFSUVNSdC82Z3FhUlRTNHRMYjN3U09zdjNTZThh?=
 =?utf-8?B?dnQ2RXIyMStiNWs3dWNaaEY1cStjc1gwcnhZbEgzSkZvRkREcUFvMitPOFdG?=
 =?utf-8?B?RldCL2R4Sng4QXM5MGs1cGwzMFBBQ0RHZ0dnY1F2c1kybmM1RkN6aUhuRFk0?=
 =?utf-8?B?ajJ5dVo0bDJWYUYvbit6RDl4QWpmWXpmRnB0TnZRWU1RRCtEeDdoTkFxenpC?=
 =?utf-8?B?UklFUFV3VXVZYUt4WDhEM2MzdE9QeldST01zdmthUm9CbHpHVnpnY3ZXRUw4?=
 =?utf-8?Q?ug6xtbrP/UobKbNVU5Atg+3/RkqkYqNK?=
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?MGJiNXpaNDd5Y2s2RFZoU2hvSTBMU1dyd3FCVFBWNlNzNmVxUU1zMDZDZVJn?=
 =?utf-8?B?VEVqMWt5V1RuUU45Nld2K3V1VTdpaGZNTmMwZXdMajRTYittdlF3cmk0Zmh0?=
 =?utf-8?B?TlB1WjRwWVlGYWRHN3RMdFJCdGdXQmo4ZHp0d2krUUVMZWhqUW50RkdvNGRK?=
 =?utf-8?B?K05XM3FlaEQySzVtWXRQWis3Um81YWJhd3Q0Rnh3aHBWQjc1cG8yU01LVXpP?=
 =?utf-8?B?eUtrWWhwRjh5NVlLVHB2M1RUSWVPenJONXlqWnlzSXdONkJCUy9OWEIrUi9k?=
 =?utf-8?B?RW5STHdyKzdMTk10anRYSFFZeVJnUHdaM3lueWxxMTJXS3REZEoxelJMMDNX?=
 =?utf-8?B?Tm5oYlpBNEpFODg1RG5zVFVBV2tLcmJQdkhiMkliWnZEZUVtUGovQ0hTNFBK?=
 =?utf-8?B?Z1lYL0hhREhPczdGS3VXeG1BM1BYbno2dGpyeFYwa3l4b1UzMG04Kzk2bjFD?=
 =?utf-8?B?RjNtQVBzeTRSUUhOTVdCYmhEMmQrK0tSU1RvQ2YwZGdhelRxVmlvUStUQ21E?=
 =?utf-8?B?VlNPclJFTkRVYlNDSUF6ZUtZM2hPajRGbmlGUGJrL3dNNzdtbHBqTkFhM2Ev?=
 =?utf-8?B?QWZnK01WQTNtZzVwbmdiRnMzalUvalRkZDFGY213T3k3aGxBeDkwTnFPL2dp?=
 =?utf-8?B?K1hvNktWejlmd0hsS2p4blFhQkQ1YWFTUnU5d042cFp3RUtOSzFuOXY1WXcr?=
 =?utf-8?B?cXlLUStMZnFnV1V1bGIyNVcyY0NaNWVXM1FwUlZFQWZsSlpxRFRXcmZyaVdB?=
 =?utf-8?B?SU84TWp3aGRiTnhrekVlRHNweVFVbjFmRTlVRm1NZFFsVm9VVEpRVXRGL1hE?=
 =?utf-8?B?VkdLSnF0WG9JZkkvbzF6S25RMk9CNWEvTVRZazJtVFVHS3VyUDVsMEhxVlRU?=
 =?utf-8?B?RkZNMXRyZDdicDU2ekdGSERuVFZOUjVhQTNxYW0zT3JwTldXbzBzMENTOUlG?=
 =?utf-8?B?MFlmZVJNRmdSMTVhQkhzWHlVd0YyKys5WGM5bTc4THR6TWFZQVhwVVN5Vlh2?=
 =?utf-8?B?SUpkRFhYZzFoam5zaW10Nk83NUdESy9jR0Vqem5qMGQzYXpvamRlVlQ0d2Vk?=
 =?utf-8?B?QVhmUEFzNDh0ckJjcU1GbHNkZDJGZDVtNGwvZjEwRW1oMkpLV3ZYK1EySkxr?=
 =?utf-8?B?c2JHUW9MMXdIcERuYnROaFF3YVZkZm84QlJEaTFiM0ZQQUJsSXZFYlEvNmVW?=
 =?utf-8?B?NmFqRjNJR0hsSWpLQlJkTmtHTVB6S2NmdTQreDcyTmRSc0hZNEN3b09QTlhO?=
 =?utf-8?B?clRCYldXelpqS0lVWHdtREcvZDFpQ2xJNWlqekpXd09JZmduMzRTMWxIbHJM?=
 =?utf-8?B?ekhSNGFBeUhGNUxuZVBqbmRubEVOSWQvZGxRYVJ3QjY2VW0vNERrUGtQWFFz?=
 =?utf-8?B?MEFkQjlPQk9MVmE0QWVuRGk2YjlRSjQyN3JWbENUYWw2ckdiTjJ2bitBV09K?=
 =?utf-8?B?bjNURytXN1lKaWtMbllzZUZNR0JrWUR6SDdmKzA3MjdnTzFIcXBnSXk5dW9V?=
 =?utf-8?B?NkQ4andOTTVXeU5NRnBRRUt5SUxORDF6eno0Y0Z2U1RXcXRmNFNHTVRyTll3?=
 =?utf-8?B?d1orTEQwdHdOaUNqbkMwZXVqdlgzYUpFbU9lOUZDVjR3d0wwYUxhbzU0UGtG?=
 =?utf-8?B?YnRnUVhUdnNSNUllc3A1d0xwUmE4blc3OWpNWm1vQ09rMVpkKzErUW1UZWlz?=
 =?utf-8?B?QmJaNElFRmFHeUhsUVhOSUlNUDJSZkFIMjExQXJidEJWR2JtSVkrcVZvNmtH?=
 =?utf-8?B?Ryt2R01NNjA5NE1Pck5XazcxWGNnbEo4LzVSb2ExRW5lUlI4QzhwK0tWYi80?=
 =?utf-8?B?Y1ROR0hxNjJmSTR6Zmdyei9YSXp6WkNoWUFJVndHUjlyUHRzSFEyZ0xFYzVi?=
 =?utf-8?B?M2RKOWFYR2lFS01KY3BPdVFUZjVoOGc0K0Rvc0lXaDRMNUJiaEhVVnR5VlFV?=
 =?utf-8?B?YnBuMy84RU4wTjRhWU9VeS9uN0dWcmhIalEyNzZVa010aXpoNDkwcWkwWVlz?=
 =?utf-8?B?Q0s2NzVncnZGa09iRUorN3U0KzJqd0xGM2lvZW40eDk0dm5NdnkzVG8wdXpM?=
 =?utf-8?B?OHU1SFZBUW53dWFzSDRLSGEzSmJHSitBNUpzVEN0NDF0RXFmT0UyUFJ4dHlk?=
 =?utf-8?Q?MZ4sFDc3NXTjVveB0/mSz7n1l?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f977eb64-9f6b-4805-bf63-08de281b6b41
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 09:58:56.4242
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: jMUgTMBNXQHMmfcksQQ5Mo6XA4TWO5GrfsDk5mt38WX5dxx34FwAQ25zezoX/DeZbI/4k1dveAYhmpnFEXMSFw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5125

With the dropping of logical target mode for interrupts Xen can now
guarantee that an irq_desc can only target a single CPU.  As such, simplify
the fields and convert the cpu_mask that used to contain the set of target
CPUs into a integer that will contain the single target CPU.

No functional change intended in how interrupts are assigned or distributed
across CPUs.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/hpet.c                      |  9 ++-
 xen/arch/x86/i8259.c                     |  2 +-
 xen/arch/x86/include/asm/irq.h           | 10 +--
 xen/arch/x86/include/asm/msi.h           |  3 +-
 xen/arch/x86/io_apic.c                   | 27 +++----
 xen/arch/x86/irq.c                       | 97 ++++++++++--------------
 xen/arch/x86/msi.c                       | 17 +----
 xen/arch/x86/smpboot.c                   |  2 +-
 xen/common/cpu.c                         |  1 +
 xen/drivers/passthrough/amd/iommu_init.c |  2 +-
 xen/drivers/passthrough/vtd/iommu.c      |  2 +-
 xen/include/xen/cpumask.h                |  1 +
 12 files changed, 70 insertions(+), 103 deletions(-)

diff --git a/xen/arch/x86/hpet.c b/xen/arch/x86/hpet.c
index abf4eaf86db1..168675420f06 100644
--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -310,9 +310,9 @@ static void cf_check hpet_msi_set_affinity(
     struct msi_msg msg = ch->msi.msg;
 
     /* This really is only for dump_irqs(). */
-    cpumask_copy(desc->arch.cpu_mask, mask);
+    desc->arch.cpu = cpumask_any(mask);
 
-    msg.dest32 = cpu_mask_to_apicid(mask);
+    msg.dest32 = cpu_physical_id(desc->arch.cpu);
     msg.address_lo &= ~MSI_ADDR_DEST_ID_MASK;
     msg.address_lo |= MSI_ADDR_DEST_ID(msg.dest32);
     if ( msg.dest32 != ch->msi.msg.dest32 )
@@ -337,7 +337,8 @@ static int __hpet_setup_msi_irq(struct irq_desc *desc)
 {
     struct msi_msg msg;
 
-    msi_compose_msg(desc->arch.vector, desc->arch.cpu_mask, &msg);
+    msg.dest32 = cpu_physical_id(desc->arch.cpu);
+    msi_compose_msg(desc->arch.vector, &msg);
     return hpet_msi_write(desc->action->dev_id, &msg);
 }
 
@@ -501,7 +502,7 @@ static void set_channel_irq_affinity(struct hpet_event_channel *ch)
      * we're no longer at risk of missing IRQs (provided hpet_broadcast_enter()
      * keeps setting the new deadline only afterwards).
      */
-    cpumask_copy(desc->arch.cpu_mask, cpumask_of(ch->cpu));
+    desc->arch.cpu = ch->cpu;
 
     spin_unlock(&desc->lock);
 
diff --git a/xen/arch/x86/i8259.c b/xen/arch/x86/i8259.c
index 41f949a36531..5ad5e622c0e1 100644
--- a/xen/arch/x86/i8259.c
+++ b/xen/arch/x86/i8259.c
@@ -414,7 +414,7 @@ void __init init_IRQ(void)
          * interrupts in do_IRQ().  This behavior has only been observed
          * during AP bringup.
          */
-        cpumask_copy(desc->arch.cpu_mask, cpumask_of(cpu));
+        desc->arch.cpu = cpu;
         desc->arch.vector = LEGACY_VECTOR(irq);
     }
     
diff --git a/xen/arch/x86/include/asm/irq.h b/xen/arch/x86/include/asm/irq.h
index 73abc8323a8d..97c706acebf2 100644
--- a/xen/arch/x86/include/asm/irq.h
+++ b/xen/arch/x86/include/asm/irq.h
@@ -69,13 +69,9 @@ struct irq_desc;
 struct arch_irq_desc {
         int16_t vector;                  /* vector itself is only 8 bits, */
         int16_t old_vector;              /* but we use -1 for unassigned  */
-        /*
-         * Except for high priority interrupts @cpu_mask may have bits set for
-         * offline CPUs.  Consumers need to be careful to mask this down to
-         * online ones as necessary.  There is supposed to always be a non-
-         * empty intersection with cpu_online_map.
-         */
-        cpumask_var_t cpu_mask;
+/* Special target CPU values. */
+#define CPU_INVALID  ~0U
+        unsigned int cpu;                /* Target CPU of the interrupt. */
         cpumask_var_t old_cpu_mask;
         cpumask_var_t pending_mask;
         vmask_t *used_vectors;
diff --git a/xen/arch/x86/include/asm/msi.h b/xen/arch/x86/include/asm/msi.h
index 00059d4a3a9d..2f91294105be 100644
--- a/xen/arch/x86/include/asm/msi.h
+++ b/xen/arch/x86/include/asm/msi.h
@@ -235,8 +235,7 @@ struct arch_msix {
 };
 
 void early_msi_init(void);
-void msi_compose_msg(unsigned vector, const cpumask_t *cpu_mask,
-                     struct msi_msg *msg);
+void msi_compose_msg(unsigned vector, struct msi_msg *msg);
 void __msi_set_enable(pci_sbdf_t sbdf, int pos, int enable);
 void cf_check mask_msi_irq(struct irq_desc *desc);
 void cf_check unmask_msi_irq(struct irq_desc *desc);
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index dfbe27b12d54..a50f7061161a 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -1112,8 +1112,7 @@ static void __init setup_IO_APIC_irqs(void)
             if (platform_legacy_irq(irq))
                 disable_8259A_irq(irq_to_desc(irq));
 
-            set_entry_dest(&entry,
-                           cpu_mask_to_apicid(irq_to_desc(irq)->arch.cpu_mask));
+            set_entry_dest(&entry, cpu_physical_id(irq_to_desc(irq)->arch.cpu));
             spin_lock_irqsave(&ioapic_lock, flags);
             __ioapic_write_entry(apic, pin, false, entry);
             spin_unlock_irqrestore(&ioapic_lock, flags);
@@ -2137,14 +2136,11 @@ int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int a
         return vector;
     entry.vector = vector;
 
-    if (cpumask_intersects(desc->arch.cpu_mask, TARGET_CPUS)) {
-        cpumask_t *mask = this_cpu(scratch_cpumask);
-
-        cpumask_and(mask, desc->arch.cpu_mask, TARGET_CPUS);
-        set_entry_dest(&entry, cpu_mask_to_apicid(mask));
+    if (cpu_online(desc->arch.cpu)) {
+        set_entry_dest(&entry, cpu_physical_id(desc->arch.cpu));
     } else {
-        printk(XENLOG_ERR "IRQ%d: no target CPU (%*pb vs %*pb)\n",
-               irq, CPUMASK_PR(desc->arch.cpu_mask), CPUMASK_PR(TARGET_CPUS));
+        printk(XENLOG_ERR "IRQ%d: target CPU %u is offline\n",
+               irq, desc->arch.cpu);
         desc->status |= IRQ_DISABLED;
     }
 
@@ -2333,17 +2329,12 @@ int ioapic_guest_write(unsigned long physbase, unsigned int reg, u32 val)
     /* Set the vector field to the real vector! */
     rte.vector = desc->arch.vector;
 
-    if ( cpumask_intersects(desc->arch.cpu_mask, TARGET_CPUS) )
-    {
-        cpumask_t *mask = this_cpu(scratch_cpumask);
-
-        cpumask_and(mask, desc->arch.cpu_mask, TARGET_CPUS);
-        set_entry_dest(&rte, cpu_mask_to_apicid(mask));
-    }
+    if ( cpu_online(desc->arch.cpu) )
+        set_entry_dest(&rte, cpu_physical_id(desc->arch.cpu));
     else
     {
-        gprintk(XENLOG_ERR, "IRQ%d: no target CPU (%*pb vs %*pb)\n",
-               irq, CPUMASK_PR(desc->arch.cpu_mask), CPUMASK_PR(TARGET_CPUS));
+        gprintk(XENLOG_ERR, "IRQ%d: target CPU %u offline\n",
+                irq, desc->arch.cpu);
         desc->status |= IRQ_DISABLED;
         rte.mask = 1;
     }
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index bfb94852a6dc..a56d1e8fc267 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -156,8 +156,7 @@ static int __init _bind_irq_vector(struct irq_desc *desc, int vector,
 
     if ( !cpu_online(cpu) )
         return -EINVAL;
-    if ( (desc->arch.vector == vector) &&
-         cpumask_test_cpu(cpu, desc->arch.cpu_mask) )
+    if ( (desc->arch.vector == vector) && cpu == desc->arch.cpu )
         return 0;
     if ( desc->arch.vector != IRQ_VECTOR_UNASSIGNED )
         return -EBUSY;
@@ -165,8 +164,7 @@ static int __init _bind_irq_vector(struct irq_desc *desc, int vector,
     trace_irq_mask(TRC_HW_IRQ_BIND_VECTOR, desc->irq, vector, cpumask_of(cpu));
     per_cpu(vector_irq, cpu)[vector] = desc->irq;
     desc->arch.vector = vector;
-    cpumask_clear(desc->arch.cpu_mask);
-    cpumask_set_cpu(cpu, desc->arch.cpu_mask);
+    desc->arch.cpu = cpu;
     if ( desc->arch.used_vectors )
     {
         ASSERT(!test_bit(vector, desc->arch.used_vectors));
@@ -195,23 +193,21 @@ int __init bind_irq_vector(int irq, int vector, unsigned int cpu)
 
 static void _clear_irq_vector(struct irq_desc *desc)
 {
-    unsigned int cpu, old_vector, irq = desc->irq;
+    unsigned int cpu = desc->arch.cpu, old_vector, irq = desc->irq;
     unsigned int vector = desc->arch.vector;
     cpumask_t *tmp_mask = this_cpu(scratch_cpumask);
 
     BUG_ON(!valid_irq_vector(vector));
 
     /* Always clear desc->arch.vector */
-    cpumask_and(tmp_mask, desc->arch.cpu_mask, &cpu_online_map);
-
-    for_each_cpu(cpu, tmp_mask)
+    if ( cpu_online(cpu) )
     {
         ASSERT(per_cpu(vector_irq, cpu)[vector] == irq);
         per_cpu(vector_irq, cpu)[vector] = ~irq;
     }
 
     desc->arch.vector = IRQ_VECTOR_UNASSIGNED;
-    cpumask_clear(desc->arch.cpu_mask);
+    desc->arch.cpu = CPU_INVALID;
 
     if ( desc->arch.used_vectors )
     {
@@ -219,7 +215,7 @@ static void _clear_irq_vector(struct irq_desc *desc)
         clear_bit(vector, desc->arch.used_vectors);
     }
 
-    trace_irq_mask(TRC_HW_IRQ_CLEAR_VECTOR, irq, vector, tmp_mask);
+    trace_irq_mask(TRC_HW_IRQ_CLEAR_VECTOR, irq, vector, cpumask_of(cpu));
 
     if ( unlikely(desc->arch.move_in_progress) )
     {
@@ -392,22 +388,16 @@ int irq_to_vector(int irq)
 
 int arch_init_one_irq_desc(struct irq_desc *desc)
 {
-    if ( !zalloc_cpumask_var(&desc->arch.cpu_mask) )
-        return -ENOMEM;
-
     if ( !alloc_cpumask_var(&desc->arch.old_cpu_mask) )
-    {
-        free_cpumask_var(desc->arch.cpu_mask);
         return -ENOMEM;
-    }
 
     if ( !alloc_cpumask_var(&desc->arch.pending_mask) )
     {
         free_cpumask_var(desc->arch.old_cpu_mask);
-        free_cpumask_var(desc->arch.cpu_mask);
         return -ENOMEM;
     }
 
+    desc->arch.cpu = CPU_INVALID;
     desc->arch.vector = IRQ_VECTOR_UNASSIGNED;
     desc->arch.old_vector = IRQ_VECTOR_UNASSIGNED;
     desc->arch.creator_domid = DOMID_INVALID;
@@ -553,12 +543,12 @@ static int _assign_irq_vector(struct irq_desc *desc, const cpumask_t *mask)
         if ( old_vector >= FIRST_HIPRIORITY_VECTOR &&
              old_vector <= LAST_HIPRIORITY_VECTOR )
         {
-            cpumask_copy(desc->arch.cpu_mask,
-                         cpumask_of(cpumask_any(&tmp_mask)));
+            desc->arch.cpu = cpumask_any(&tmp_mask);
             return 0;
         }
 
-        if (cpumask_intersects(&tmp_mask, desc->arch.cpu_mask)) {
+        if ( cpumask_test_cpu(desc->arch.cpu, &tmp_mask) )
+        {
             desc->arch.vector = old_vector;
             return 0;
         }
@@ -570,7 +560,7 @@ static int _assign_irq_vector(struct irq_desc *desc, const cpumask_t *mask)
          * If the current destination is online refuse to shuffle.  Retry after
          * the in-progress movement has finished.
          */
-        if ( cpumask_intersects(desc->arch.cpu_mask, &cpu_online_map) )
+        if ( cpu_online(desc->arch.cpu) )
             return -EAGAIN;
 
         /*
@@ -591,11 +581,10 @@ static int _assign_irq_vector(struct irq_desc *desc, const cpumask_t *mask)
              * in the 'mask' parameter.
              */
             desc->arch.vector = desc->arch.old_vector;
-            cpumask_and(desc->arch.cpu_mask, desc->arch.old_cpu_mask, mask);
+            desc->arch.cpu = cpumask_any(desc->arch.old_cpu_mask);
 
             /* Undo any possibly done cleanup. */
-            for_each_cpu(cpu, desc->arch.cpu_mask)
-                per_cpu(vector_irq, cpu)[desc->arch.vector] = irq;
+            per_cpu(vector_irq, desc->arch.cpu)[desc->arch.vector] = irq;
 
             /* Cancel the pending move and release the current vector. */
             desc->arch.old_vector = IRQ_VECTOR_UNASSIGNED;
@@ -669,7 +658,7 @@ next:
 
         if ( desc->arch.move_in_progress || desc->arch.move_cleanup_count )
         {
-            ASSERT(!cpumask_intersects(desc->arch.cpu_mask, &cpu_online_map));
+            ASSERT(!cpu_online(desc->arch.cpu));
             /*
              * Special case when evacuating an interrupt from a CPU to be
              * offlined and the interrupt was already in the process of being
@@ -684,8 +673,9 @@ next:
         }
         else if ( valid_irq_vector(old_vector) )
         {
-            cpumask_and(desc->arch.old_cpu_mask, desc->arch.cpu_mask,
-                        &cpu_online_map);
+            cpumask_clear(desc->arch.old_cpu_mask);
+            if ( cpu_online(desc->arch.cpu) )
+                cpumask_set_cpu(desc->arch.cpu, desc->arch.old_cpu_mask);
             desc->arch.old_vector = desc->arch.vector;
             if ( !cpumask_empty(desc->arch.old_cpu_mask) )
                 desc->arch.move_in_progress = 1;
@@ -698,8 +688,7 @@ next:
 
         per_cpu(vector_irq, cpu)[vector] = irq;
         desc->arch.vector = vector;
-        cpumask_clear(desc->arch.cpu_mask);
-        cpumask_set_cpu(cpu, desc->arch.cpu_mask);
+        desc->arch.cpu = cpu;
 
         desc->arch.used = IRQ_USED;
         ASSERT((desc->arch.used_vectors == NULL)
@@ -762,14 +751,14 @@ void setup_vector_irq(unsigned int cpu)
     /* Mark the inuse vectors */
     for ( irq = 0; irq < nr_irqs; ++irq )
     {
-        struct irq_desc *desc = irq_to_desc(irq);
+        const struct irq_desc *desc = irq_to_desc(irq);
 
         if ( !irq_desc_initialized(desc) )
             continue;
         vector = irq_to_vector(irq);
         if ( (vector >= FIRST_HIPRIORITY_VECTOR &&
               vector <= LAST_HIPRIORITY_VECTOR) ||
-             cpumask_test_cpu(cpu, desc->arch.cpu_mask) )
+             cpu == desc->arch.cpu )
             per_cpu(vector_irq, cpu)[vector] = irq;
     }
 }
@@ -847,8 +836,7 @@ void cf_check irq_move_cleanup_interrupt(void)
         if (!desc->arch.move_cleanup_count)
             goto unlock;
 
-        if ( vector == desc->arch.vector &&
-             cpumask_test_cpu(me, desc->arch.cpu_mask) )
+        if ( vector == desc->arch.vector && me == desc->arch.cpu )
             goto unlock;
 
         irr = apic_read(APIC_IRR + (vector / 32 * 0x10));
@@ -910,8 +898,7 @@ void cf_check irq_complete_move(struct irq_desc *desc)
     vector = (u8)get_irq_regs()->entry_vector;
     me = smp_processor_id();
 
-    if ( vector == desc->arch.vector &&
-         cpumask_test_cpu(me, desc->arch.cpu_mask) )
+    if ( vector == desc->arch.vector && me == desc->arch.cpu )
         send_cleanup_vector(desc);
 }
 
@@ -919,7 +906,6 @@ unsigned int set_desc_affinity(struct irq_desc *desc, const cpumask_t *mask)
 {
     int ret;
     unsigned long flags;
-    cpumask_t dest_mask;
 
     if ( mask && !cpumask_intersects(mask, &cpu_online_map) )
         return BAD_APICID;
@@ -932,18 +918,12 @@ unsigned int set_desc_affinity(struct irq_desc *desc, const cpumask_t *mask)
         return BAD_APICID;
 
     if ( mask )
-    {
         cpumask_copy(desc->affinity, mask);
-        cpumask_and(&dest_mask, mask, desc->arch.cpu_mask);
-    }
     else
-    {
         cpumask_setall(desc->affinity);
-        cpumask_copy(&dest_mask, desc->arch.cpu_mask);
-    }
-    cpumask_and(&dest_mask, &dest_mask, &cpu_online_map);
 
-    return cpu_mask_to_apicid(&dest_mask);
+    ASSERT(cpu_online(desc->arch.cpu));
+    return cpu_physical_id(desc->arch.cpu);
 }
 
 /* For re-setting irq interrupt affinity for specific irq */
@@ -1687,8 +1667,7 @@ int pirq_guest_bind(struct vcpu *v, struct pirq *pirq, int will_share)
                 cpumask_setall(desc->affinity);
                 affinity = &cpumask_all;
             }
-            else if ( !cpumask_intersects(desc->arch.cpu_mask,
-                                          &cpu_online_map) )
+            else if ( !cpu_online(desc->arch.cpu) )
                 affinity = desc->affinity;
             if ( affinity )
                 desc->handler->set_affinity(desc, affinity);
@@ -1966,6 +1945,15 @@ static void do_IRQ_guest(struct irq_desc *desc, unsigned int vector)
     }
 }
 
+static const cpumask_t *get_cpumask(unsigned int cpu)
+{
+    if ( cpu < nr_cpu_ids )
+        return cpumask_of(cpu);
+
+    ASSERT(cpu == CPU_INVALID);
+    return &cpumask_none;
+}
+
 void do_IRQ(struct cpu_user_regs *regs)
 {
     struct irqaction *action;
@@ -2013,7 +2001,8 @@ void do_IRQ(struct cpu_user_regs *regs)
                     spin_lock(&desc->lock);
                     printk("IRQ%d a={%*pbl}[{%*pbl},{%*pbl}] v=%02x[%02x] t=%s s=%08x\n",
                            ~irq, CPUMASK_PR(desc->affinity),
-                           CPUMASK_PR(desc->arch.cpu_mask),
+                           /* TODO: handle hipri vectors nicely. */
+                           CPUMASK_PR(get_cpumask(desc->arch.cpu)),
                            CPUMASK_PR(desc->arch.old_cpu_mask),
                            desc->arch.vector, desc->arch.old_vector,
                            desc->handler->typename, desc->status);
@@ -2545,7 +2534,8 @@ static void cf_check dump_irqs(unsigned char key)
 
         printk("   IRQ:%4d vec:%02x %-15s status=%03x aff:{%*pbl}/{%*pbl} ",
                irq, desc->arch.vector, desc->handler->typename, desc->status,
-               CPUMASK_PR(desc->affinity), CPUMASK_PR(desc->arch.cpu_mask));
+               CPUMASK_PR(desc->affinity),
+               CPUMASK_PR(get_cpumask(desc->arch.cpu)));
 
         if ( ssid )
             printk("Z=%-25s ", ssid);
@@ -2683,8 +2673,7 @@ void fixup_irqs(void)
              * interrupts.
              */
             if ( apic_irr_read(desc->arch.old_vector) )
-                send_IPI_mask(cpumask_of(cpumask_any(desc->arch.cpu_mask)),
-                              desc->arch.vector);
+                send_IPI_mask(cpumask_of(desc->arch.cpu), desc->arch.vector);
 
             /*
              * This CPU is going offline, remove it from ->arch.old_cpu_mask
@@ -2709,8 +2698,7 @@ void fixup_irqs(void)
          * are a subset of the online mask.  What fixup_irqs() cares about is
          * evacuating interrupts from CPUs not in the online mask.
          */
-        if ( !desc->action || cpumask_subset(desc->arch.cpu_mask,
-                                             &cpu_online_map) )
+        if ( !desc->action || cpu_online(desc->arch.cpu) )
         {
             spin_unlock(&desc->lock);
             continue;
@@ -2732,7 +2720,7 @@ void fixup_irqs(void)
          * the interrupt, signal to check whether there are any pending vectors
          * to be handled in the local APIC after the interrupt has been moved.
          */
-        if ( cpumask_test_cpu(cpu, desc->arch.cpu_mask) )
+        if ( cpu == desc->arch.cpu )
             check_irr = true;
 
         if ( desc->handler->set_affinity )
@@ -2754,8 +2742,7 @@ void fixup_irqs(void)
              * desc in order for any in-flight interrupts to be delivered to
              * the lapic.
              */
-            send_IPI_mask(cpumask_of(cpumask_any(desc->arch.cpu_mask)),
-                          desc->arch.vector);
+            send_IPI_mask(cpumask_of(desc->arch.cpu), desc->arch.vector);
 
         spin_unlock(&desc->lock);
 
diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
index 5389bc08674a..f70abac687e4 100644
--- a/xen/arch/x86/msi.c
+++ b/xen/arch/x86/msi.c
@@ -154,24 +154,13 @@ static bool msix_memory_decoded(const struct pci_dev *dev, unsigned int pos)
 /*
  * MSI message composition
  */
-void msi_compose_msg(unsigned vector, const cpumask_t *cpu_mask, struct msi_msg *msg)
+void msi_compose_msg(unsigned vector, struct msi_msg *msg)
 {
     memset(msg, 0, sizeof(*msg));
 
     if ( vector < FIRST_DYNAMIC_VECTOR )
         return;
 
-    if ( cpu_mask )
-    {
-        cpumask_t *mask = this_cpu(scratch_cpumask);
-
-        if ( !cpumask_intersects(cpu_mask, &cpu_online_map) )
-            return;
-
-        cpumask_and(mask, cpu_mask, &cpu_online_map);
-        msg->dest32 = cpu_mask_to_apicid(mask);
-    }
-
     msg->address_hi = MSI_ADDR_BASE_HI;
     msg->address_lo = MSI_ADDR_BASE_LO |
                       MSI_ADDR_DESTMODE_PHYS |
@@ -531,7 +520,9 @@ int __setup_msi_irq(struct irq_desc *desc, struct msi_desc *msidesc,
 
     desc->msi_desc = msidesc;
     desc->handler = handler;
-    msi_compose_msg(desc->arch.vector, desc->arch.cpu_mask, &msg);
+    msg.dest32 = cpu_physical_id(desc->arch.cpu);
+
+    msi_compose_msg(desc->arch.vector, &msg);
     ret = write_msi_msg(msidesc, &msg, true);
     if ( unlikely(ret) )
     {
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 55ea62d7d67f..3492073d5c8c 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -1465,7 +1465,7 @@ void __init smp_intr_init(void)
 
         desc = irq_to_desc(irq);
         desc->arch.vector = vector;
-        cpumask_copy(desc->arch.cpu_mask, cpumask_of(cpu));
+        desc->arch.cpu = cpu;
         cpumask_setall(desc->affinity);
     }
 
diff --git a/xen/common/cpu.c b/xen/common/cpu.c
index f09af0444b6a..f52f02e2a9d6 100644
--- a/xen/common/cpu.c
+++ b/xen/common/cpu.c
@@ -16,6 +16,7 @@ unsigned int __read_mostly nr_cpumask_bits
 const cpumask_t cpumask_all = {
     .bits[0 ... (BITS_TO_LONGS(NR_CPUS) - 1)] = ~0UL
 };
+const cpumask_t cpumask_none;
 
 /*
  * cpu_bit_bitmap[] is a special, "compressed" data structure that
diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index 00d2c46cbcd5..0d03b9d86254 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -507,7 +507,7 @@ static void cf_check set_x2apic_affinity(
     if ( dest == BAD_APICID )
         return;
 
-    msi_compose_msg(desc->arch.vector, NULL, &iommu->msi.msg);
+    msi_compose_msg(desc->arch.vector, &iommu->msi.msg);
     iommu->msi.msg.dest32 = dest;
 
     ctrl.dest_mode = MASK_EXTR(iommu->msi.msg.address_lo,
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index 90f36ac22b8a..d2dbf74bc8bb 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -1194,7 +1194,7 @@ static void cf_check dma_msi_set_affinity(
         return;
     }
 
-    msi_compose_msg(desc->arch.vector, NULL, &msg);
+    msi_compose_msg(desc->arch.vector, &msg);
     msg.dest32 = dest;
     if (x2apic_enabled)
         msg.address_hi = dest & 0xFFFFFF00;
diff --git a/xen/include/xen/cpumask.h b/xen/include/xen/cpumask.h
index b713bb69a9cb..1d72c179d7a4 100644
--- a/xen/include/xen/cpumask.h
+++ b/xen/include/xen/cpumask.h
@@ -289,6 +289,7 @@ static inline const cpumask_t *cpumask_of(unsigned int cpu)
 #define cpumask_bits(maskp) ((maskp)->bits)
 
 extern const cpumask_t cpumask_all;
+extern const cpumask_t cpumask_none;
 
 /*
  * cpumask_var_t: struct cpumask for stack usage.
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 09:59:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 09:59:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166708.1493205 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM1RS-0003mh-8I; Thu, 20 Nov 2025 09:59:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166708.1493205; Thu, 20 Nov 2025 09:59:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM1RS-0003mX-4w; Thu, 20 Nov 2025 09:59:06 +0000
Received: by outflank-mailman (input) for mailman id 1166708;
 Thu, 20 Nov 2025 09:59: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=vEGo=54=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vM1RR-0002vx-3l
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 09:59:05 +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 8b1889d1-c5f7-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 10:59:03 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by BY5PR03MB5125.namprd03.prod.outlook.com (2603:10b6:a03:1ea::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 09:59:00 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9343.009; Thu, 20 Nov 2025
 09:59:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8b1889d1-c5f7-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=O+C0Qn5mHIiXm3yBaBkfqza/XW5r98lQRcqT2DPhCYSzchDN08kDNn48auRk0Hv8P3BPkm7itp5frCvk/amnoi5/1hqYcsblRGfd/V9LoGVW+0fgNoTI4BRDK68DUJN/gJcrT87ofPSyluu5rzTOUL191qANt2L00SCulTI223OVEXTyPquZPCRWNr8FBp0WWUA5qAP5AGwZAZOtyaeFPDhIcF1v8rn6v93QPfmlqxH4PGyQ8glTds7h1ttZhOSw3nek5MbF3rcfGg9AyfaelrXRJSKxToEru1zBuSK7AUg5H2a0ft2LHizeTkDK8n4HFECtGleK1PCpsNK/dSdwpA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wYLemCz/ejmq9i/3iHjcMi3Ukp02UqKJT5V2Wj0bREE=;
 b=BYco59qnV3GU9amhluVdFa3cLkJNgMgu+Yj5sFg/T+G6beUrAS0pHgPFcnkH8nhiS7l8TTcBUVjEkRAoccinwK2jTepP2TbLMtt1RdeYHfm5ATbtXgQR1X3Ntec3hgnxpoYQdL1fVfejG1bygdq40ibkUMFqlrCnhgOup/EdmlC7OjeZGXZZYfbkKKdGAZXUWBLhrvNn+EQ04qQQsrYcmEZvQKX/DgX/i1hMmM4a8Z2dk6jYEf5S3Ix7I1fDIKAWmYg2koO/Fokb7IYzaBP4AVkg/5aJAEfZYriRGWRANbDLgJUJICGXkdk1EHPHls65bZZNk9W9aGU4lM3FIMej5Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wYLemCz/ejmq9i/3iHjcMi3Ukp02UqKJT5V2Wj0bREE=;
 b=VqsF8ofaSqiUySHAXf4Co2nsJhdXiPLTlDyn07aHDB7dqAqHEaXrDU59V9RKR2tapL5/UfXfa5/T5NhmOlIsY+n/YVJTfV7/Jpt1YEo7VFlakKctm3yEbT9oJq8l0XKIbFnXjKW9yhllF+nbrFIct4gXdkrJsrR982o2nXG6YDc=
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 11/12] x86/irq: convert irq_desc old_cpu_mask field to integer
Date: Thu, 20 Nov 2025 10:58:25 +0100
Message-ID: <20251120095826.25782-6-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251120095826.25782-1-roger.pau@citrix.com>
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120095826.25782-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0020.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::6) To BY1PR03MB7875.namprd03.prod.outlook.com
 (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|BY5PR03MB5125:EE_
X-MS-Office365-Filtering-Correlation-Id: dfa68c29-aec6-43f0-fc29-08de281b6d60
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?NkpTOEg4bEtpR21tRjJUUTNrbG1UU09rckg4Ry8rdldjcERyYlVlWkhzY0Np?=
 =?utf-8?B?eHVCQ2xnajJkNGFlSS9lUnpaZGFJczhCMWNjQVlCYkVRMGJxTW5NVmwrS01E?=
 =?utf-8?B?MDhVZVNqU3ZQWEhKNkl3YlhFdXlZeDJDUVJ3ajh0UVdRTVh5VGJBZ2MyMkk4?=
 =?utf-8?B?QTZjaENGcFBLSUlpbjBuRHFSK3UzWnRjVCtNK1E3ODBiZ01HVTZvYWZ6WmVS?=
 =?utf-8?B?RjZYZ1dOTGtLUldxMU1CZlQ2R2xKNVFZYURDek9kRG51dS9yTE1rcGVBNGZZ?=
 =?utf-8?B?VDdmdHNFRFJZc1FNS2lKUm0zWlF6OUpBSTFaeUg4TGw4enFGbUQ2Z1NxYno5?=
 =?utf-8?B?aDB1NEYzVUFuZ2h3dWlYbmpGaXJtWWRrZ1N4OW9RQ1UrN0dPZ2UyOFRCcEdy?=
 =?utf-8?B?RFZyUFpzN3ZHTGNKcjZhRmM4aFAxbGRUZ2ZxSnBOSEZNMDFoeURwTlRpUDds?=
 =?utf-8?B?SEp4bmhkVGhMTmYwdnBhaGpHdHIxcEFMbmVnREZhbFFnVVVZL3kwTVUrT2Uv?=
 =?utf-8?B?bkZZN0hkUE5OZDhDOEg3RityRjB6RHVVSHVPWE5wbzdJVGtyclpYS09nMWRH?=
 =?utf-8?B?NzVMOHg4MGZ5S3ozbXNXUG5ZMUM2eHJON3RmYkx6aGdpZ2E3V0M0S1E2V3No?=
 =?utf-8?B?bndRV2l0MHFKUHd3SEltOXdYdHd6UFY2bmlZNk90YnJ2SjQ1R3YzVndJVkp4?=
 =?utf-8?B?ZVVFMnl4L1ZKeTlFZWZJTmhQY0JKamM0bHhVVjNOay9QalJ5MCsvT0FWRS85?=
 =?utf-8?B?NzJaYzVyb280bWV6anVRQk1wd1V1ekdEQnV1MFVISzEvS2FqaXZUUFNrc0VD?=
 =?utf-8?B?SGs4YzlYb1hBclJwT2Q4aWZjQnUvaFovdSs2S01rZHVTVHlVVkc4RS8wcEZ3?=
 =?utf-8?B?QVgydzhJbm8wdFB2b2tOUVhuNjh4aGRlam1Gb0xHWFZWS3VzVW9OcFRqN2ht?=
 =?utf-8?B?dGVvTys0R1hTTVdtMEI1dE5QODFyZGRSeWRYSlUxZWxhYUd2QWl6QUhaT3V6?=
 =?utf-8?B?NzJjU0cvcnlUY2N2M1NJeTlOVWY2bU5SV3E0UWZob1dla0NCdXRaV0dPRlJj?=
 =?utf-8?B?UCtJS2dJSkVyUnZQa2F1SERWYnQ4dFZtQ0lDeTRvVzNEbENXK1dMbkt2d1Rh?=
 =?utf-8?B?ckZkd1pVa1dReHFKYU1iSGRvTXVMSER5dklUMzl6L2J6NG9GM3d5UFMremx2?=
 =?utf-8?B?Vm1RR0FvNDBLbmtGSE4wdEJBV2x1cm43VjlRbWZMaHBDR0tFVVhUMmVCWGla?=
 =?utf-8?B?azk2YWNYaVIwaWxONlh2V2hyV3ZTZ0dWTlFDbXdTaTNVa3JRRGNwZU9iY1JC?=
 =?utf-8?B?R2JSM2x3T3RSMTFDdVpaaGs2ZzcybVZYUHRFZ0Nhd1JVL1Z0aGtJRytiUXRG?=
 =?utf-8?B?eUNuRnovRFhmWDhSWFpHaXlyL3hzcGVQQ29tN1BPTmJtTWZTc3NORy9BeVkw?=
 =?utf-8?B?R3VaYkc5Q0VMZjZDbjJLWXp1cStCSk4weTFpL2lEQ3Y0cGdxTUJEZ05XNENq?=
 =?utf-8?B?cklldWdXeHNqUk9OaDBNM3Q4M2tzZDl2aWpBeUJoaVJvWXVIbGJCQm1ac0cw?=
 =?utf-8?B?M1dtV1QyZVpsWExHaWR5VHl6ellqTjgyZi9janExbjluV0xLYTBzbnpLWDlp?=
 =?utf-8?B?UmduaXlGc3FYTnlTMTM0QnFvMGNkb2pCVGtORUkvRjVBQXRYQXpqRDY3T0VK?=
 =?utf-8?B?QU5ybE9GaTRGdWpldzlQZXRURC9pTkljMEtGQ3dwb2hmVm5ucGkzdngrRVdY?=
 =?utf-8?B?dDlndUlCcCs3SFZXM0t4cldrT2pSdndma2l6M2JqS2VGOHNpMlVScGhlcTRi?=
 =?utf-8?B?UG00VEpObVJ1Zjg5VElrNm1nd0FTUGVvUEgzOTJZMmprbW5CUUdtWk1sVkJw?=
 =?utf-8?B?dVVnNFVDUzhId25tVkUrZnNDSTVqMWNOTU1iajVnMHRnY0R2dDRHQWExWnBW?=
 =?utf-8?Q?szM6oGppsetyP1wOO32WRAQ6pMtuwloS?=
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?NDF4SHZTV0dCc3g5bXRvektMMC9wdUQwbGVxa2cvZU5nUWZBak5ROTV4eEZX?=
 =?utf-8?B?aW1Oc2RsZVhYQzJrdE93ZkdxblpMeW1xVG1IY0VqRHgzY1MxS1ZldlJCSTQy?=
 =?utf-8?B?QkZKSkJsQk4vRDRkRmdhZkMrbVE4a2hFamtSMEZiNW12ZGxLbkJOWndDWjJW?=
 =?utf-8?B?VzlXR0hvM2tGNDREWmFaSWVlTWxIMUZLOU5PcEtIRGR5RldBYTJ4a3dJQVcv?=
 =?utf-8?B?OUZMcWtLUnlxRVFKSDZaUUd3VXBoL0lGRm5FanVYVVN3ekZoY3dhNThjRFky?=
 =?utf-8?B?NnIyMTJoR1R5SndxNVIzaUltOVdwMlRZYktNR25DS29LODFTUzVXTlR2Q0Nx?=
 =?utf-8?B?REprZVllOHA2MGdvbGZreC90Z0tyTlM0aEF6bmhNYVcxWkd4eWJGVjhNMXZE?=
 =?utf-8?B?NW1QdkZEbkREY28yTDh0RlBhTCtGcmhMamVpK2ErNnB3cktMY3QwSFNScVN1?=
 =?utf-8?B?ZVJOVG5Bbm9oTjZ6TFBqNnMvc1huSkxPaVpNTkxEWVZUV1VxZVRJQUk0RERp?=
 =?utf-8?B?SWkyWTd0TldHQXZ4aFJDUVNsUE1EeHdVbmdicFJabG9TRTlRSGg4ZENoazR0?=
 =?utf-8?B?SjJ5NDM1RTZORi8zck0xeE5DZkhtTk95bm5LTHRnV1l3WkwxUFVjN1FPYW9V?=
 =?utf-8?B?UGFkZkt0SGo3SnVCS0pDRmpIeFpGUG54VUdRczMyNG5jNyt0TjBIaXNmbHBO?=
 =?utf-8?B?M1RwSEkwSC9ucFRmeDFqTmJoRDBxa3VwRFdELzdzU0NKSjZsLzdSTHBKeUxB?=
 =?utf-8?B?OVNzZWpiQmVjVFNManRHUGp4cnF0cjVKdS96UHJuNW9yWmRPTUFoRE1rRXJ2?=
 =?utf-8?B?NXVHRzdzYnY2QTdUeVBKVGJpRUxGNnRiNmJ0SStWM214U0t1ZDVhQlp5N253?=
 =?utf-8?B?QnpvT2ZwZkhxSm04bHFOejhxUTU5Ri9Mdkdoa01rZjB0b2I0Wjk1SEZGci9Z?=
 =?utf-8?B?L0lBbTBlQlVudnpnM0ZsYktIT0hhVVhXWTBJZy9FNWlFbUNvaVlGTHM1cjB6?=
 =?utf-8?B?R3Z0MHJCUVhNTVFhTVJMelhndGpNZ3hJMGI0S3Y2Snk5a2R5TVRiWnF4aG1q?=
 =?utf-8?B?ZW1ZRnJlcnNuY1huNFJ1ZlZQL2ZyRU9mbkFMY2N5NXFhbXh3WVArOXlGNnpj?=
 =?utf-8?B?VXJyT0JGODN4WktWdzFucWxJaGVuelpVWUhXQlFmRys3Y1JzaS9xeFlpME5P?=
 =?utf-8?B?OHpMa3MvNTdzSDBOVm9sR1FRUFpNaFNGUEVtdExPelE0T3ZUNUNIaGtHUnBM?=
 =?utf-8?B?SHlVaXRUZStVNGk1S1VsMmhLaXdFZlVvdkZlcXhaazhIWU5wckFzaGUxWk1u?=
 =?utf-8?B?UWx6cmJhWkxoQXFnTThjOStJTER2aHIxdmNKOFdYV1k3N3dHUnpaYXU2eTVR?=
 =?utf-8?B?UmhsRXQ1bHlpSWRxUHozUUtlR2RLUm9zTW5YS1FUTGczbS9Kc3M5QkhVK05L?=
 =?utf-8?B?dW5rVU9lS1VhR3ZJTmJoemhDK3QrWmhKVXkzV3FJZkJiVkJqczlkUWhSeEdL?=
 =?utf-8?B?RlVMVkl3aVBvZGwwVU5ZUHY3RURqUzZBQjVycmhycDQrZ1JEdG9tZ08yUUpl?=
 =?utf-8?B?N0xlQVFLak50cHNHV0xGZS9MNUxrMzdNcWFDakVETXFxVVRVSDVRQXNwNlNn?=
 =?utf-8?B?SkdDbThPZ1NIT2I5TXNEZUNYc3BaZ3ZLdGhkeDJ6Rk10NDlqZFJhOEQzdTVu?=
 =?utf-8?B?Wi9GTTdoOHZGR1F5ZE9wend3Y1NGSnRwQ0k4OW50SVYwdVhDb1lrTGVnS2lr?=
 =?utf-8?B?MTJhWmZMSVEzTmdDSy9TYmZRVUViSTN0aXYrdytZTWp3UkZySnA4MEZDN2Fy?=
 =?utf-8?B?VjhPTTV5UEZtN0g0S3Rkbk9zSHUrK0p4Zm0xSTltbWhHM2xZRnplenNFYS85?=
 =?utf-8?B?cnN6clBnZWtkeDJSc2dMRlc4bkJiWThUd2JkNFVOek5nMjQ2YklqMUFqdjkw?=
 =?utf-8?B?MGdWNFJQeXk4SnVsQUNoL0NXOC9BU0VjeVlob08xb2kydDZBNWRLU2ZNM01C?=
 =?utf-8?B?UGZERFRLeTVNUk9Sa1RHbVFvYUszb2tOWTQ0ZzZISEJFU2w0NWI3ZEhleDBE?=
 =?utf-8?B?MDNSZWRmcVJDN3RtMFcyaVVRa1JNYzBCY0x5eGZWMWNoTy9KMi9jZHZMdmZ4?=
 =?utf-8?Q?AX7gn/NM48+qvcpIVXQSefvxT?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dfa68c29-aec6-43f0-fc29-08de281b6d60
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 09:58:59.9633
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: KAtXHsLer6ASPaugNC9AWod+QFvDp/neRabsutYJU8LsQ1Zzss/hQsDMRDgxmEQUl9FdfHEDijmzG5cu+r9LEg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5125

As the cpu_mask field has already been converted to an integer, propagate
such change to the field that stores the previous target CPU and convert it
to an integer.

Also convert the move_cleanup_count field into a boolean, since the
previous target will always be a single CPU.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/irq.h |  4 +-
 xen/arch/x86/irq.c             | 90 +++++++++++++---------------------
 2 files changed, 35 insertions(+), 59 deletions(-)

diff --git a/xen/arch/x86/include/asm/irq.h b/xen/arch/x86/include/asm/irq.h
index 97c706acebf2..bc59ce7c3ffb 100644
--- a/xen/arch/x86/include/asm/irq.h
+++ b/xen/arch/x86/include/asm/irq.h
@@ -72,10 +72,10 @@ struct arch_irq_desc {
 /* Special target CPU values. */
 #define CPU_INVALID  ~0U
         unsigned int cpu;                /* Target CPU of the interrupt. */
-        cpumask_var_t old_cpu_mask;
+        unsigned int old_cpu;
         cpumask_var_t pending_mask;
         vmask_t *used_vectors;
-        unsigned move_cleanup_count;
+        bool move_cleanup : 1;
         bool move_in_progress : 1;
         int8_t used;
         /*
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index a56d1e8fc267..680f190da065 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -115,7 +115,7 @@ static void release_old_vec(struct irq_desc *desc)
     unsigned int vector = desc->arch.old_vector;
 
     desc->arch.old_vector = IRQ_VECTOR_UNASSIGNED;
-    cpumask_clear(desc->arch.old_cpu_mask);
+    desc->arch.old_cpu = CPU_INVALID;
 
     if ( !valid_irq_vector(vector) )
         ASSERT_UNREACHABLE();
@@ -195,7 +195,6 @@ static void _clear_irq_vector(struct irq_desc *desc)
 {
     unsigned int cpu = desc->arch.cpu, old_vector, irq = desc->irq;
     unsigned int vector = desc->arch.vector;
-    cpumask_t *tmp_mask = this_cpu(scratch_cpumask);
 
     BUG_ON(!valid_irq_vector(vector));
 
@@ -221,10 +220,10 @@ static void _clear_irq_vector(struct irq_desc *desc)
     {
         /* If we were in motion, also clear desc->arch.old_vector */
         old_vector = desc->arch.old_vector;
-        cpumask_and(tmp_mask, desc->arch.old_cpu_mask, &cpu_online_map);
 
-        for_each_cpu(cpu, tmp_mask)
+        if ( cpu_online(desc->arch.old_cpu) )
         {
+            cpu = desc->arch.old_cpu;
             ASSERT(per_cpu(vector_irq, cpu)[old_vector] == irq);
             TRACE_TIME(TRC_HW_IRQ_MOVE_FINISH, irq, old_vector, cpu);
             per_cpu(vector_irq, cpu)[old_vector] = ~irq;
@@ -388,16 +387,11 @@ int irq_to_vector(int irq)
 
 int arch_init_one_irq_desc(struct irq_desc *desc)
 {
-    if ( !alloc_cpumask_var(&desc->arch.old_cpu_mask) )
-        return -ENOMEM;
-
     if ( !alloc_cpumask_var(&desc->arch.pending_mask) )
-    {
-        free_cpumask_var(desc->arch.old_cpu_mask);
         return -ENOMEM;
-    }
 
     desc->arch.cpu = CPU_INVALID;
+    desc->arch.old_cpu = CPU_INVALID;
     desc->arch.vector = IRQ_VECTOR_UNASSIGNED;
     desc->arch.old_vector = IRQ_VECTOR_UNASSIGNED;
     desc->arch.creator_domid = DOMID_INVALID;
@@ -554,7 +548,7 @@ static int _assign_irq_vector(struct irq_desc *desc, const cpumask_t *mask)
         }
     }
 
-    if ( desc->arch.move_in_progress || desc->arch.move_cleanup_count )
+    if ( desc->arch.move_in_progress || desc->arch.move_cleanup )
     {
         /*
          * If the current destination is online refuse to shuffle.  Retry after
@@ -570,9 +564,9 @@ static int _assign_irq_vector(struct irq_desc *desc, const cpumask_t *mask)
          * ->arch.old_cpu_mask.
          */
         ASSERT(valid_irq_vector(desc->arch.old_vector));
-        ASSERT(cpumask_intersects(desc->arch.old_cpu_mask, &cpu_online_map));
+        ASSERT(cpu_online(desc->arch.old_cpu));
 
-        if ( cpumask_intersects(desc->arch.old_cpu_mask, mask) )
+        if ( cpumask_test_cpu(desc->arch.old_cpu, mask) )
         {
             /*
              * Fallback to the old destination if moving is in progress and the
@@ -581,16 +575,16 @@ static int _assign_irq_vector(struct irq_desc *desc, const cpumask_t *mask)
              * in the 'mask' parameter.
              */
             desc->arch.vector = desc->arch.old_vector;
-            desc->arch.cpu = cpumask_any(desc->arch.old_cpu_mask);
+            desc->arch.cpu = desc->arch.old_cpu;
 
             /* Undo any possibly done cleanup. */
             per_cpu(vector_irq, desc->arch.cpu)[desc->arch.vector] = irq;
 
             /* Cancel the pending move and release the current vector. */
             desc->arch.old_vector = IRQ_VECTOR_UNASSIGNED;
-            cpumask_clear(desc->arch.old_cpu_mask);
+            desc->arch.old_cpu = CPU_INVALID;
             desc->arch.move_in_progress = 0;
-            desc->arch.move_cleanup_count = 0;
+            desc->arch.move_cleanup =  false;
             if ( desc->arch.used_vectors )
             {
                 ASSERT(test_bit(old_vector, desc->arch.used_vectors));
@@ -656,7 +650,7 @@ next:
         current_vector = vector;
         current_offset = offset;
 
-        if ( desc->arch.move_in_progress || desc->arch.move_cleanup_count )
+        if ( desc->arch.move_in_progress || desc->arch.move_cleanup )
         {
             ASSERT(!cpu_online(desc->arch.cpu));
             /*
@@ -673,12 +667,13 @@ next:
         }
         else if ( valid_irq_vector(old_vector) )
         {
-            cpumask_clear(desc->arch.old_cpu_mask);
-            if ( cpu_online(desc->arch.cpu) )
-                cpumask_set_cpu(desc->arch.cpu, desc->arch.old_cpu_mask);
+            desc->arch.old_cpu = CPU_INVALID;
             desc->arch.old_vector = desc->arch.vector;
-            if ( !cpumask_empty(desc->arch.old_cpu_mask) )
+            if ( cpu_online(desc->arch.cpu) )
+            {
+                desc->arch.old_cpu = desc->arch.cpu;
                 desc->arch.move_in_progress = 1;
+            }
             else
                 /* This can happen while offlining a CPU. */
                 release_old_vec(desc);
@@ -833,7 +828,7 @@ void cf_check irq_move_cleanup_interrupt(void)
         if (desc->handler->enable == enable_8259A_irq)
             goto unlock;
 
-        if (!desc->arch.move_cleanup_count)
+        if ( !desc->arch.move_cleanup )
             goto unlock;
 
         if ( vector == desc->arch.vector && me == desc->arch.cpu )
@@ -862,13 +857,10 @@ void cf_check irq_move_cleanup_interrupt(void)
         TRACE_TIME(TRC_HW_IRQ_MOVE_CLEANUP, irq, vector, me);
 
         per_cpu(vector_irq, me)[vector] = ~irq;
-        desc->arch.move_cleanup_count--;
+        desc->arch.move_cleanup = false;
 
-        if ( desc->arch.move_cleanup_count == 0 )
-        {
-            ASSERT(vector == desc->arch.old_vector);
-            release_old_vec(desc);
-        }
+        ASSERT(vector == desc->arch.old_vector);
+        release_old_vec(desc);
 unlock:
         spin_unlock(&desc->lock);
     }
@@ -876,12 +868,11 @@ unlock:
 
 static void send_cleanup_vector(struct irq_desc *desc)
 {
-    cpumask_and(desc->arch.old_cpu_mask, desc->arch.old_cpu_mask,
-                &cpu_online_map);
-    desc->arch.move_cleanup_count = cpumask_weight(desc->arch.old_cpu_mask);
-
-    if ( desc->arch.move_cleanup_count )
-        send_IPI_mask(desc->arch.old_cpu_mask, IRQ_MOVE_CLEANUP_VECTOR);
+    if ( cpu_online(desc->arch.old_cpu) )
+    {
+        desc->arch.move_cleanup = true;
+        send_IPI_mask(cpumask_of(desc->arch.old_cpu), IRQ_MOVE_CLEANUP_VECTOR);
+    }
     else
         release_old_vec(desc);
 
@@ -2003,7 +1994,7 @@ void do_IRQ(struct cpu_user_regs *regs)
                            ~irq, CPUMASK_PR(desc->affinity),
                            /* TODO: handle hipri vectors nicely. */
                            CPUMASK_PR(get_cpumask(desc->arch.cpu)),
-                           CPUMASK_PR(desc->arch.old_cpu_mask),
+                           CPUMASK_PR(get_cpumask(desc->arch.old_cpu)),
                            desc->arch.vector, desc->arch.old_vector,
                            desc->handler->typename, desc->status);
                     spin_unlock(&desc->lock);
@@ -2636,26 +2627,14 @@ void fixup_irqs(void)
             continue;
         }
 
-        if ( desc->arch.move_cleanup_count )
+        if ( desc->arch.move_cleanup && !cpu_online(desc->arch.old_cpu) )
         {
             /* The cleanup IPI may have got sent while we were still online. */
-            cpumask_andnot(affinity, desc->arch.old_cpu_mask,
-                           &cpu_online_map);
-            desc->arch.move_cleanup_count -= cpumask_weight(affinity);
-            if ( !desc->arch.move_cleanup_count )
-                release_old_vec(desc);
-            else
-                /*
-                 * Adjust old_cpu_mask to account for the offline CPUs,
-                 * otherwise further calls to fixup_irqs() could subtract those
-                 * again and possibly underflow the counter.
-                 */
-                cpumask_andnot(desc->arch.old_cpu_mask, desc->arch.old_cpu_mask,
-                               affinity);
+            desc->arch.move_cleanup = false;
+            release_old_vec(desc);
         }
 
-        if ( desc->arch.move_in_progress &&
-             cpumask_test_cpu(cpu, desc->arch.old_cpu_mask) )
+        if ( desc->arch.move_in_progress && cpu == desc->arch.old_cpu )
         {
             /*
              * This to be offlined CPU was the target of an interrupt that's
@@ -2685,12 +2664,9 @@ void fixup_irqs(void)
              * per-cpu vector table will no longer have ->arch.old_vector
              * setup, and hence ->arch.old_cpu_mask would be stale.
              */
-            cpumask_clear_cpu(cpu, desc->arch.old_cpu_mask);
-            if ( cpumask_empty(desc->arch.old_cpu_mask) )
-            {
-                desc->arch.move_in_progress = 0;
-                release_old_vec(desc);
-            }
+            desc->arch.old_cpu = CPU_INVALID;
+            desc->arch.move_in_progress = 0;
+            release_old_vec(desc);
         }
 
         /*
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 09:59:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 09:59:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166711.1493215 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM1RU-00045u-Hc; Thu, 20 Nov 2025 09:59:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166711.1493215; Thu, 20 Nov 2025 09:59:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM1RU-00045n-DX; Thu, 20 Nov 2025 09:59:08 +0000
Received: by outflank-mailman (input) for mailman id 1166711;
 Thu, 20 Nov 2025 09: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=vEGo=54=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vM1RT-0002R9-9D
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 09:59:07 +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 8cd18d7e-c5f7-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 10:59:06 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by BY5PR03MB5125.namprd03.prod.outlook.com (2603:10b6:a03:1ea::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 09:59:03 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9343.009; Thu, 20 Nov 2025
 09:59:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8cd18d7e-c5f7-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=b54PghwqrbFFnH3+0Cz5Nev/aq+/5b3vzaM2JX5xYtm2Fv5TeztRpQ3WBnjO5yJtgL4eTGOeKKkGYKxPO37KuNdZVhcLjWG3+OLx0N2oEIWrVmlnyVlbjws2rympb/+Sk1WGE8uRL0TQRKJHjAX5l1ULXaVeTXvMPJa7bxs9fL3LDCQ4t61M0+tdj3NluH6xoqucgsedWO04qmQjxbJuG28lKybgwZUpKFQOJ3X0Xv9sf4jjWFDxJulKqbqvhRhPZHH6C6Wdd8Uw0pq5Z/NF9YziY0RQJfmRhApo3J1Eddk/KaDGrpTTX5q9zoIctx82aIm+y0AZlWEkKBQzqhM5SA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TbCrwlvezFLJjSfH4rjfQHTAYF9jHHhDrcGai00ypnA=;
 b=DNgRG0OYRZ4b+r2ZEw7lSz15sY9ucpMTQc9W6pkz356i97AvW1OevlV2HGH2Dc27wdBFT6F1McKzbOJwROzdJUJdeTxfmhHsOCL5yZL1jixLRJQi/r7HrEocoqltcwCXxfOj0s1GAbqSP+TRXmIQAbWiDJ1CkS3Lk8YxB1NCr76pi+OeuPL+LQ3+Yt+NV6DIxZy6ysBVwJxwP4/9ALK9JOxc2KMyxyIoCc9SoDl/2yKhILgS2eecw3zDi+ljnfdm/EyUDZBLqfDGmS/gr4fOAWWMSKQq4QeQwdkPiLKmd756FVvC2VA5usrllNduzWfVAJohUh6HeZR5GepleaWNoA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TbCrwlvezFLJjSfH4rjfQHTAYF9jHHhDrcGai00ypnA=;
 b=eHKZ/rsLE0PwmRw4uXcjRO0gLjQDw0IdsWLZ9yJC+LatO8vfugHq6DPxA9x1CrRaymtvNINgtFY0TklNpUWq8RpLvzhZclGSzPmXQiK8qf6sMeKg3GJ/FnsWnuUSr0gTH5T7gwmHYAI6r1253N+uk3Mfi4ToBlXYXI9Xi5G7fc4=
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 12/12] x86/irq: convert irq_desc pending_mask field to integer
Date: Thu, 20 Nov 2025 10:58:26 +0100
Message-ID: <20251120095826.25782-7-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251120095826.25782-1-roger.pau@citrix.com>
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120095826.25782-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0022.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::17) To BY1PR03MB7875.namprd03.prod.outlook.com
 (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|BY5PR03MB5125:EE_
X-MS-Office365-Filtering-Correlation-Id: 3ff04dbc-0d7f-42ca-c925-08de281b6f83
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?d3RJejFLa1ZMTlRvWm5SMnlzZ29ESUswcTBha3V5djh0bGhHT3VEd0h2dGNC?=
 =?utf-8?B?YmUvOUdqbXVxRTF4dnZKS0dZSXcvekJLeVp6K1A1Q0pzdTE2eDU2RzVHa3Jq?=
 =?utf-8?B?YXAvNVpaTDVkWHFLWS9Xanltb2dXUWt2TUtpdTkxSnJsWDF6V0hGdGRmZkdV?=
 =?utf-8?B?QkVqVG5iZWwwSEpXanV0M3Uzdk5nN3hYNjJ4NFBseWhjaU1nYlBTWGRYRjYz?=
 =?utf-8?B?Q0thNXlLU3I5RUVQWWFMZUtZQmNVU3MrV0Rvem53QkZSQmtmL2VaQnA1WjB1?=
 =?utf-8?B?bEpNdUhBeXQ5M0N3aTVrWm1uQzkzT3plMC9DZGdUWDM4R2NkT1A0QVpXQUVv?=
 =?utf-8?B?Syt4UWpZbnFYd2g3SjVkT2NmMTBmNjVYdHU4MFRQVkFrcnlmRHZvKzliVCtW?=
 =?utf-8?B?cEF3QnBtMGFpa0NEQUlmT200SEdaTXNPZXRrSUkwTWtVUjVmeW5rUy9leXk5?=
 =?utf-8?B?TVF6WjYyTEhWWWFOeGRIVXExc29tZ2VsRXFRakJST3hMQWZvUlhCcGVqd0Rp?=
 =?utf-8?B?Y3N1NVdqcm9yQStidStPaDI0M2ZndmMwRENwRHlYRkp3YVNxQzJSMTZQdWcw?=
 =?utf-8?B?VTBNMXEwZ1FaVzRZMXBxM0NQUzJ5Vmc4L2JWU3I5UlluQ3kvMDNyQW1Mbzdr?=
 =?utf-8?B?cXlucFJXT3NENzIyTFo3MXJGOVRROWpXSkFUOUFNSGM0eE0zSWFIR3FPOGtP?=
 =?utf-8?B?Q0tLakE4NTNseHZGejRmczdwNmNwblZEaUFkY0RpeVBlYy9DemlXbVhlWmJv?=
 =?utf-8?B?WkpnbWhRMnYzazJocGFBWE16U2lKYjRmWDliMHFuMmRGQU96UGkvTFp3K01r?=
 =?utf-8?B?WnRjVC9wUWtIcm44a3lDL1ZrWVFhdVVKWnFHQ3hpaXhidkRJU3FSZy9nUC82?=
 =?utf-8?B?MUROYjM0V2h1YTJjNFJuekdHN05KSy93QUpxRkJnQWhhd2FjTmZPVlZVUXV1?=
 =?utf-8?B?M2VaMHpmRTB0R0NaOXVsN2dRTldGN0hLR2Nsb2xWMW9SWFZKNHEyYXFoYjRs?=
 =?utf-8?B?SnVHenhVVmFrUXRMeS9PTVVvdEprTEp3UTFLdGxuZDZaeUpRaS95M0c0KzZs?=
 =?utf-8?B?dkdvUWdiVk9ZVUVBbUt5cm0ybUNSTGpxTW9EY1pUcVc1RkJFNUZRRWp5MlRp?=
 =?utf-8?B?T0ZUcWtrcGIyVjM0bktKa3liT3AyL0VERW1GdkZPckhqYUFiSm02L0hJUStC?=
 =?utf-8?B?WDVBbmlKTE1QbTh6ZHFxdXJIdFFoK1dkdDJTc3J0Zld0SG9nSFVIWGJseWpr?=
 =?utf-8?B?Skp3NDBBNmE0Mml6Nk9wUjVqall5bndmaWZ5Q3FVclJyWGphalltRFUwMmdE?=
 =?utf-8?B?QXVocHJjOFRXUlFTeDJJNU5wS1ZhRzRKNWM2TFZHNnhrU2VILzF2R1Y0VGhN?=
 =?utf-8?B?d3NTZ1RFRkswK2pQNFhUQ3Q1bHltNUY3eFp5UThwS2VRaU9FVE41aHpldkdS?=
 =?utf-8?B?UFJISFJCbUpFNmxveVRCelB5M0M0ZGkxRFdDZlV4dno1TC9RV1d4a2FIMzZC?=
 =?utf-8?B?VTZUTnZKUUFhK05wWEZjbGhDb3VydzVPcWRPRVQ0bVloODJFYTM2OXJBcmw4?=
 =?utf-8?B?Ky9EVDd5VFRodDNiZGdIaGt3L2orZEREck5HRkhXeDVQdUM2S001WFpMY2R1?=
 =?utf-8?B?K1VEZnYzdnZQSjQ2YWJTZzJjRnZ4cy9vcUFOSDJQNFgrdUJORmhmRCtsZDZu?=
 =?utf-8?B?a01NSFR6bW0rcXNyTmtVNENLbGQ1NFJ0OUVibEFXTGo0SVM5cnRiRXMwTUsz?=
 =?utf-8?B?OFJZSVJ0SUZGYXdCQlJtS1Fqd29jKzljOTkvUC9pZ3ZsdTNocFRjTUNyOXZz?=
 =?utf-8?B?bDlUM2thN1g5aGtHeG9CWmxybEE5UVJhZEkwckdPeUFFdCtjZCszRUs5UkVz?=
 =?utf-8?B?ZWlIeU9ZdDdkcHptYU1Na0ladFYyYld4eUFkZGlBMFNmTnRsRGlYTjVpNHcz?=
 =?utf-8?Q?nxcpuhLE1YlQDCyutiDGMsxa1OAncJ8x?=
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?RnRHeTdIWTY3eENEOE5aVjZZWHI4RS8xVVhrSEtINFY4ZFIrekJMZ09HZG1U?=
 =?utf-8?B?Si9RZUFQUmJOejF2ODlmUmUzSC9TZW44RHhsMEFYVlhYNWF2RmNnK0ExVERI?=
 =?utf-8?B?MzV0ZElEZWJNd0o2cEpyZnRYWS93WFhLTlpGUE5mNjlpai9FT2V3MHFkWEFI?=
 =?utf-8?B?NjN3WlMxMTB4MFUzTTdDTzRtZlNNcDB0WWRlcTVRYWRFeTFQN2JzaFBkQ1gw?=
 =?utf-8?B?MWo5VWpyZGIxS1VIcW9CWWF5cU1iV1FHWHl0cmVWRW1WSWJ2OU5YQVdNOFd3?=
 =?utf-8?B?WDNIa1NFbndQTmNTT0kyamJrT0I4S2VUbmswekExdmdFTDhVUDFzbUtZazVV?=
 =?utf-8?B?SVV5YVJ6L0dKbFdKUitOMVROVk1LKzNoQ0dYYmZpaXJ6Y1ZjQ2JFWWNqNGlh?=
 =?utf-8?B?aHN3d016RFhEOHhwYmRuOEgrQ0dONzdxeEJwU0YyZWlvSlVTS2ZCb2Ftem1B?=
 =?utf-8?B?a1o4OTJ3TWpUSFZZVEV4YkNzUUxhM0pTL3RBdkh2MjJLWTRMRGgvNTBvVnVi?=
 =?utf-8?B?L2ZJZ2k1WDZQYWV2QUpUU3VzY2NtcUI2cDVDV0ZQR1p6a1RYTG12MXNnNStV?=
 =?utf-8?B?T0s1TkZjZmxmUHVvT1Njd05zY1FyM3hJYUJFUGZ5a2NQZlRRaWsrcVBtWE9S?=
 =?utf-8?B?YzNsekZRZUZnK0llTDFHSG5QMm1NSDcweHZ6UjVEZU5mZmZjTG80YWd3Y1dM?=
 =?utf-8?B?UnRzUW00RzhUSy9WYUhQVVpWZzlzRkRsR01IYUpjdk9xakUzZzJ1RUlUMi9K?=
 =?utf-8?B?ai85OHR4M0NUaGY0Z2xpQVc3SEFzWWovTnhpemVtbHV3WFNma040dC9XT2o5?=
 =?utf-8?B?K1R4Zm1GNFNLdFVuMjZBc0owYVdPRFNlaVJFTHlYSlpwd1VPYnM1MUh0RU05?=
 =?utf-8?B?YlY2RDlKL05qNW1JTm9ZcHNEK2VCYmNoQy94RkRQYkpud01QTlB2bFR0R1RB?=
 =?utf-8?B?QmUyTyt5TCsyK0djMTFXbyt6a0RJV3ZUdGZQWGd4QkFuQ2J2QnY3NUdZNG44?=
 =?utf-8?B?b0xDb2s3WkFkczhqTzZnMjBjU1ZqbG5ERmQ0OU9QUC9JWWFkVzh1d3Q2KzhV?=
 =?utf-8?B?all1bDJraFh2T0ZMUWlhTmxlSzkxb3JyWEdmTExZVDY1TWdsaXBPZkFNVkF5?=
 =?utf-8?B?d1RQOHpFNTFhUmRDWGd5RWFNNlNEeVdGeld0UGFsM3hqMGEzb0VWeXRkRGFO?=
 =?utf-8?B?dHF4ZnJGUUxFdzFGM0JHbWVKczUya0EveEZYTzV4UEJnTHJ0TEpoWEhHNExo?=
 =?utf-8?B?TXc4YytlVHpESVhLUFFiOGZjcXA2ekVzbHE5Wi9rTlgxWVhpenVab2poOWpi?=
 =?utf-8?B?a1NmcUh3UDZMS1luRCtvVnlxbXdQeHpzbE5hazUvZ2NRTzVoMEtsT28wbzRH?=
 =?utf-8?B?T3M1UlR0TktCVi9SSmF4MVlmU0ZhZ25LUGVyV1djTURrSWhmeDJzMTJKQVpi?=
 =?utf-8?B?cG45SFNhZ3Y4NS83NDhyaVUzcE82WVBXTS9OeVRtMTZCNDYwTW1RVWZVcmNT?=
 =?utf-8?B?NjNiTWE3LzBTbzE0Q1BEbi9WS3FITVdYMmhMdzNiTndHM3pkandDVFpicHZR?=
 =?utf-8?B?OGp3cEI0TVhzdXBZSGx0dEFaWG1zMnpTWGN0VXNBYnc3aUJpbm9LNTJ0WTBI?=
 =?utf-8?B?aFBPNW9xYmJJOXJCblpCTU9ncWxmcjU0T3JkODc0UEJvOW4vNitlNkhpdWh6?=
 =?utf-8?B?Tld3QWtzVlh1cVVmbWNwRm1oakdWTVhIbGZCcWhBby9NZGVGUm5rMzZwR3l0?=
 =?utf-8?B?enl0Zi9pR051UmdHR0VRTitXbDdKVE9RNFp3K3Y5dlFwWmptKzNJNjhRWWpw?=
 =?utf-8?B?Q1EyK1U2RU1wL2tDSjhDcituMXlXbjRyaFBydXkzRUtYcU5HVHZIK3N4bmNx?=
 =?utf-8?B?ZFNKU0ZHQ0RUc2NlVjJOSEhka2t1ZUhzNERUZWJST3lKbDRuRVlsRjJWYklx?=
 =?utf-8?B?dDFsWnVsZ0NrbUJmMm1HWFFoUFlVNWdSL01jVHVwNHg3YlIvb1FlQXNwN0Zz?=
 =?utf-8?B?TUhuUmRiVzBVeEdtTXBkVzdScHFlNlEwSEZGU21JMGRTenNXWkdEcUZYRzQ0?=
 =?utf-8?B?SGpaUnBncXcrVWxqSnVqUlNkcHdScnBrVzdaOXErWHg5UWZyZFBuSHoyVU1D?=
 =?utf-8?Q?O9RgaiykJAcbiDT3qnC7as4ZS?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3ff04dbc-0d7f-42ca-c925-08de281b6f83
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 09:59:03.4236
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2ziK2Ay+IYLinaQDpi69HISzoiIbcS8aiVmC0i8YrYMKUN/g/VkZUVj8kIX4WzWSi2e7qsAwppggRTj9YFAZtg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5125

Much like the rest of the fields that relate to the current or old CPU
target, the pending_mask can be converted into an integer field.

No functional change intended.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/irq.h |  2 +-
 xen/arch/x86/irq.c             | 14 +++++---------
 2 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/xen/arch/x86/include/asm/irq.h b/xen/arch/x86/include/asm/irq.h
index bc59ce7c3ffb..55047772eb46 100644
--- a/xen/arch/x86/include/asm/irq.h
+++ b/xen/arch/x86/include/asm/irq.h
@@ -73,7 +73,7 @@ struct arch_irq_desc {
 #define CPU_INVALID  ~0U
         unsigned int cpu;                /* Target CPU of the interrupt. */
         unsigned int old_cpu;
-        cpumask_var_t pending_mask;
+        unsigned int pending_cpu;
         vmask_t *used_vectors;
         bool move_cleanup : 1;
         bool move_in_progress : 1;
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 680f190da065..8d7947116e33 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -387,11 +387,9 @@ int irq_to_vector(int irq)
 
 int arch_init_one_irq_desc(struct irq_desc *desc)
 {
-    if ( !alloc_cpumask_var(&desc->arch.pending_mask) )
-        return -ENOMEM;
-
     desc->arch.cpu = CPU_INVALID;
     desc->arch.old_cpu = CPU_INVALID;
+    desc->arch.pending_cpu = CPU_INVALID;
     desc->arch.vector = IRQ_VECTOR_UNASSIGNED;
     desc->arch.old_vector = IRQ_VECTOR_UNASSIGNED;
     desc->arch.creator_domid = DOMID_INVALID;
@@ -760,8 +758,6 @@ void setup_vector_irq(unsigned int cpu)
 
 void move_masked_irq(struct irq_desc *desc)
 {
-    cpumask_t *pending_mask = desc->arch.pending_mask;
-
     if (likely(!(desc->status & IRQ_MOVE_PENDING)))
         return;
     
@@ -779,10 +775,10 @@ void move_masked_irq(struct irq_desc *desc)
      *
      * For correct operation this depends on the caller masking the irqs.
      */
-    if ( likely(cpumask_intersects(pending_mask, &cpu_online_map)) )
-        desc->handler->set_affinity(desc, pending_mask);
+    if ( likely(cpu_online(desc->arch.pending_cpu)) )
+        desc->handler->set_affinity(desc, cpumask_of(desc->arch.pending_cpu));
 
-    cpumask_clear(pending_mask);
+    desc->arch.pending_cpu = CPU_INVALID;
 }
 
 void move_native_irq(struct irq_desc *desc)
@@ -926,7 +922,7 @@ void irq_set_affinity(struct irq_desc *desc, unsigned int cpu)
     ASSERT(spin_is_locked(&desc->lock));
     desc->status &= ~IRQ_MOVE_PENDING;
     smp_wmb();
-    cpumask_copy(desc->arch.pending_mask, cpumask_of(cpu));
+    desc->arch.pending_cpu = cpu;
     smp_wmb();
     desc->status |= IRQ_MOVE_PENDING;
 }
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 10:42:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 10:42:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166794.1493225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM27H-0004eC-Ly; Thu, 20 Nov 2025 10:42:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166794.1493225; Thu, 20 Nov 2025 10: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 1vM27H-0004e5-IL; Thu, 20 Nov 2025 10:42:19 +0000
Received: by outflank-mailman (input) for mailman id 1166794;
 Thu, 20 Nov 2025 10:42: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=hQ23=54=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vM27G-0004dz-PW
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 10:42:18 +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 92cddd7f-c5fd-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 11:42:13 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by PAWPR03MB9922.eurprd03.prod.outlook.com (2603:10a6:102:358::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 10:42:10 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9343.009; Thu, 20 Nov 2025
 10:42: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: 92cddd7f-c5fd-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=W+sAEh60w3VNgKlZVwv3dLZO6gv5mqsnaTg/2HaK35qzRl3feBzPJAOZGN8cfDuS0twAOCAANsYJM+deCoD85qFGFstfaWKQuQKiNxkUE8ex+vjLugbwTDeD8MkeQozhzfz4egbkoSXAMhu5/oyEEdUbgo9P9/y1kTed8QosMysCA9kXQj4H+Tk85Vy0d5BoOyv8hRTmtoYArWTpUc1qBZY3dB3WwbqOJx8/bd603brfg9IxfQxVWYm98FWRoqVrPbbSeEJZWRy3QwoezaX20fa9gcry98u7ripIVqipNlue51ubWBHNE5npFADTri6elm5ClmzT9gZ7D0xKWB2J0Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=inbO6NBfMbBH+ZAwmnx+90g/Pwa6NY7Yn+qjllpju+Y=;
 b=Y+i5S7lkfPmN+cUebtzKzqBTFpCHqki4Xx1sAQ2yYyy6acqA6eX5LQ8/qDWunTCG4Gr34boh/XPg3NIcgSHX6O5sa/Qc/jEsyiQEwF1ez5Vqrul2Qp8kN7sNdgDgAObDyvcjUJ/yUqwccc4VNxufHvCJJ23yxFfusczYVCjOrZe2N1/4tdN2mvgdo5llJ4vn67C79Uj9++N8bNIJSXTddDvtesdzXXwM0rUP6/p10zWQSijacWnCVtcIy7s4nvpDHPYc/HV8C77M7Jx9UNpqH9LLo6RV3a0EyBn4OtJP8EVN9DON7nZp7ooCtxNOHJtgPIBRkpGq0fi2Ey6tnOsAtg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=inbO6NBfMbBH+ZAwmnx+90g/Pwa6NY7Yn+qjllpju+Y=;
 b=Ohc9vS8ISmbrsn6mdngg+ooszte2cFws1vajpXkck3aQtA5QIgbTElqjgsBkmxviWd2C0i/+IWVEUbdGsBKboxm4Waiw4IKYn5MVQctq42gnaVOLph7GsK3uZKMvOb8mMCS5S+s9uNeSgG7FR6J3I0HwYQ1HRdEh+C74fP1245ixQvhiHZJY81I9BVyq8zuRM71eEvoiL3EUD8/6N5L4YkEdBgaGMKM42/UX3CP7CKb+mKceXf3ATm3i7hEkUQdiAuYmAK2euwBQLbemahdUEiz3K0UhDnnA2q7kkQgRvF+5P53BZRMwsGO2fr+OeIconuP+55AmzuZEwxqX8mTKCQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <e79baedf-c619-461a-81e2-eb7eeafa648d@epam.com>
Date: Thu, 20 Nov 2025 12:42:03 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v8] x86: make Viridian support optional
To: Jan Beulich <jbeulich@suse.com>, Jason Andryuk <jason.andryuk@amd.com>
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Paul Durrant <paul@xen.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251119193215.1012108-1-grygorii_strashko@epam.com>
 <dc779808-a46d-4b71-8cde-6239b4a68819@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <dc779808-a46d-4b71-8cde-6239b4a68819@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0040.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:c7::20) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|PAWPR03MB9922:EE_
X-MS-Office365-Filtering-Correlation-Id: e91c6ebe-cd5d-483c-0e34-08de2821740f
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?YkZWUEtPbzhtVXdCdXcrVUdVU1B0cW9HcWN4a0dMdVlmVXg3TVp4YXVZbFY5?=
 =?utf-8?B?K2dtY2lTdnMyVlFZWFBkNWw3dlpmVkZpeVN3Ky9LSkNVKzZOWU9FZlBzMUUy?=
 =?utf-8?B?VGJBZDJvdEZ4RENwdW9vR2dBR3RCWEx1dVZVbnhLTjkxUjFaWXN0dXlHYmh1?=
 =?utf-8?B?L1hZZWY4SHo3ZTBoY21VSDFXU0FGQmtUMGpVQUdvZDE4Z0d0VDBQVStZNDNZ?=
 =?utf-8?B?Mnp3ZkQ1MDNaRVJTTFRqbnpablE2KzB5NENpV252eWpTRGJDZEVMWHBnYkpy?=
 =?utf-8?B?blJFMVQ2T2ZJdWlFRHN2ZEdFUTJQM2dMaGFZc0ZDcVNPUEhVL3E0NGdCMDhT?=
 =?utf-8?B?R1NOT0cxTGFwVGpNaVE4a080TWJxekZpcGN6OFBZLzlVOXR0VHlkMVFXNktz?=
 =?utf-8?B?dHpJNFBqL0lJQlBaMUl2dEVXalgwb0pWYUJsL0t6OHNwTUlKN0dPdGFCQlcy?=
 =?utf-8?B?YXFNRTBHQ3YzaTRZbndBT1VEbGF4S1VnSWx1dWd5YTNkTWs1WnkxOEkxV2dY?=
 =?utf-8?B?aExUbGVya1d1ZTJWeE1uYWE1cFluMEcvazZiVVFtaWxBT09nUnY0NU1nNW9x?=
 =?utf-8?B?TnFybmg5Y0IvbXFsQUMvb0ZrUW1JWnQ1ZlpHNlgvMTVLZk9DTmdVaXIvRFFY?=
 =?utf-8?B?Y1JudlVTbTkxSE9wa2JVcEZGaitvYWl6NVVKSk9sbVRZTnhQQVBBUUJBVXlC?=
 =?utf-8?B?bitvaENnRmlqbGdJL2xWcHVzL296eFhMZm9KMm1PRkgwandrbmZoZ1NoUEdI?=
 =?utf-8?B?K3FrMFdKYzNPakgxQTM5TXg4TXFtb01kMlJoQ0VJL0oydi9IYS95amMyZGdw?=
 =?utf-8?B?TjU2b1dtbmREZ21tYnZJdjYvVFFnMUJ6VHRjaE85d3BROEhJTjJ4bklPWHJJ?=
 =?utf-8?B?UmxHTW1VUm5BczZwVUNYN3JLVklmQUpsMTBGdGM4b1hGazdDMjVYelozSldG?=
 =?utf-8?B?eFc1N0ZMblcyWXZPenFqdnd6TnF0bEdMbEk1Ykh5bnN5eFFwNy9RdmpJSTN6?=
 =?utf-8?B?K28vU0V4SStSekpRR0RUVHR3cmFZQnpYYnl2dFZYZFFPd2Fpb0YxWGJjcjYv?=
 =?utf-8?B?Wml4ajlhd2R0VUw2a1FrY2ppL3d1RjRRcFJtTDdCYXNoQ00vV3BLQjhyUWVS?=
 =?utf-8?B?a1AyWXFNOTl6YWkzdnRMN1dzT0NtNzBnVDc2TGdFVnoyM01VN0d1QVB2aXYr?=
 =?utf-8?B?L2NwV01ycXA2QVI5YVVSaFF3SEdFTGVwZGxBZWIwWU1ERlVQWThmYytGRmtP?=
 =?utf-8?B?eUZ0WnBJRkQxZWUwZFpYMEk0dzNid09JMjV4bmI5Wm5UdUt1UWtTRXMwbUg2?=
 =?utf-8?B?S09RMnV2dytiSEphUGl1SDRxak5wKzZMeW1TRWtaQ1RaemtPeDBZVTFGUWNo?=
 =?utf-8?B?bXRac2pyTUJ0WXNvR0xiWUtWY1JtSVU2VlVnYk5IMy9CeUlXUHZxSEZsNW9o?=
 =?utf-8?B?bGJSYW1tUnM4dHQ2U05WTUtDVUpLTk43dDNmaVRyVE83Qi8vYjdCOVBlNFBh?=
 =?utf-8?B?eGJiWnRVUUU2Tk1XMHBTZVNWdDJnc3hpVEJpUW8yLzdDb0pVQzh1VVhPanJs?=
 =?utf-8?B?Vkx1NlQrSlBucjVzSVlOR3c2VWNCa3ZKTzhBSnlldDZDSFlWU2ZXVlQyVytm?=
 =?utf-8?B?VzJzSWNaM2xkOE1wK0doblJseUtLekgwTzJ3U3k4RDI2ZGI4TEtmVTZFNW1F?=
 =?utf-8?B?L0lGOXpqZWx5RHl5UWgxOERlZkFzOVNFR1U3T2IyeldsNFdyZmRDS01ORElQ?=
 =?utf-8?B?ZjBRaVkvZnJZZ2Jma2VZWit3RU1zL2w5UThLNVlGUDF6NVJTRFFqZjgzNEFM?=
 =?utf-8?B?M1p4MG1LaVZxRjNTWThVcFJpcURtQjlDUlVHMW1qVDFVbEVhM05ZQXlPeUsx?=
 =?utf-8?B?aUVjWFVSYi9Wb0JWU1dMcG5lY0gvb0ZUVVpldU1KWWVSdzc2cEFxbGxYNzVa?=
 =?utf-8?Q?wwUMtozC07ZJBLpFlCw8ABtvyPbp4ypF?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.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?T29hSDVvdFFyQWIzMEkvOG52dUR5RDhuenBldDdlYzVRRHdKMkh1SGlzWWhQ?=
 =?utf-8?B?dVlrTmNMQlBMa0xwVjBCamNMU1k5WnJ0aUo3STVYQXptNDJyaDhLMElaOEJu?=
 =?utf-8?B?RkJmZmtHMHBJYW5JOHdzYmVTSXh1dExxZk1YdGIzdUZ3VStNdXdJUlNINkVh?=
 =?utf-8?B?cWVPdHU4RFpqU1NMdjNKTmpYZm9uOTQzaHlTU3oxcGdkYzBRazlmNUkrcFhx?=
 =?utf-8?B?UGlNUGVWNnR1djl2Yk5MNVBzNWw5MWo5bmpuRWpXdDRDMGtueVgvSUc3SEkr?=
 =?utf-8?B?N1crbDd3SWpmaDRXbGlFdlRyYXJNcEV3YmgyUHI3U3U0ekI2WFRJcDJlRlYw?=
 =?utf-8?B?RExVTWRtb0h6ZWNvZTlyMzhvSk9HUVo1Rkdqa3NHd1U4QjR2dFlRQXZLblda?=
 =?utf-8?B?cXI0dFZPMFlOUHBmZXMvbFlBTHQ2anZ4N0xibjJnMTV5YXBxYTFJSUNpS00r?=
 =?utf-8?B?eitITlUvb2ZSaU1vYnJkRmJhYjVhUDVaMFhpdUN2bTRhbC9VYTRMdUQrUk05?=
 =?utf-8?B?bHhoQnQ0bU5DYjIrRzdNc2lBMXZvQk1FR0haUzV2dW5Sc2tNWElwYTZhV3Q0?=
 =?utf-8?B?NGRxNE5VS2Jic3dYWUczVHRMSzRtMmllSzk2NlhxWTZwVkVkMUtSWUVCR1Ew?=
 =?utf-8?B?RWs5OVNZYndkSDRiS2hzaG9XdW05bVlCMnhaMWF4eTI2VlNac3B2N2JxYTlx?=
 =?utf-8?B?ZXZvSW9xT0VYd2VUMTdEWEMzRktJc2JpMUNOaDRiREJuQkZpdk1Ya2QzRUJw?=
 =?utf-8?B?Y01ZbEJqSlVDc3Y5R1p3ZE1VdUdMSU1rVGZGZ2l4RjE0c0MvNE0xOTc2a0ZX?=
 =?utf-8?B?SVJJc0NKK1plb0RCSkkxSkFYd0ZhcG5qandTRXJELzcrTEo1dExEU2pSRWJ4?=
 =?utf-8?B?TllBb2pQeUgwYlMvSTNmS3FGVXl4bXBKQWlNYXFINWRrTG5TMzdCb2tuRkpI?=
 =?utf-8?B?bDM4MzJCRjdyeGVFNWhtRGRoYWVEZmVWWnI1aU1aM3ZwcTV3MTViZWZMODhQ?=
 =?utf-8?B?RTZDTjhLMkU5UlR6MUlpZHk0dWlLT1l1TE5vRUJYdEoyU3U3N2RuVTRZQnFF?=
 =?utf-8?B?RktkbE92Ukx4Z05pSDE0T2NCZ24wbDRJTDZOd0JnRXMzY2RBTVZoZGZGbzhZ?=
 =?utf-8?B?L29MNk51UktMd0k0WTJPM0EzRkpGMHFFRkg3NE5ST0R6M0xtQUdXWkw3TG5q?=
 =?utf-8?B?WXYwVkNlTll4dDRvQ0VreWgvVkxsamF5aGN5c0VOWGt4bmd3Mm5UbXlVa2pk?=
 =?utf-8?B?aDAxVGlQZUhRQXI2U1A1MmczQ3BXS2pzR1V3aTNtSFpWK3ZOQnZjQWFja3h1?=
 =?utf-8?B?b01pRkJqQ0JoS2FBbzdBMjBFUENFTkJXc0ZERzZTT3cxbUE2UjkxRXdjcUVH?=
 =?utf-8?B?WXY1UFBJbURJd29VWlVkN2oxemlCbnFob0xVSTN1bk5KQ2UwQnVWNEdnOFZ0?=
 =?utf-8?B?b2RnUlBTaDdEcVpoRUZIbUYyRXVjT01sdWowcXQ5RnZPZitwNE1YVi9PN3pG?=
 =?utf-8?B?dFJta2pudjhtRmVSQWlKWVJxQSt5RVV0aUFLeHIvaVdlY282M3dMcDBHekVZ?=
 =?utf-8?B?eDRxdU1xdnJacW1JaHJCcEZBcnZQSTM3NzFuZ3BXMHZvTG9SdC95aVFJdWww?=
 =?utf-8?B?RE9OOWg4TGhwK1R1RW9jeVdON2pNTXVvdWtMUzFyTnRJWTF4d3NWZFF3WklO?=
 =?utf-8?B?MkE1OXE3eGk3MGJ4WE03ZWszV0JkUGtpTVViZ3l5U0Ywa1BVbCtaL29uOTBC?=
 =?utf-8?B?RWJoLzhPakdTVGxsRkNQa1E0Mit2ZGUxc2tuU1owUlV2bC9OZFowRTNWSVBH?=
 =?utf-8?B?djZZd0taTFVOK1BCb240NTlRZjAvSk41eUJGaHBoM0RCZ3VOTHpaamZnNlJy?=
 =?utf-8?B?UHBCRXlKSU9id3J2Mk1xNG13ay9CMklNWGVQemN3TkRISVlKSy9QVHlUSS91?=
 =?utf-8?B?UjE3Slp4V29ZQVVodVE3MnhNNzRqY25PNzJIMzQ5M21vK2owNE9rc09XMWcy?=
 =?utf-8?B?QTF5alhEQWcyOERST2UrcTRGNC9rR1BRcVZGcFZCeUtRTHdBMG9UVmt4c1Rh?=
 =?utf-8?B?TmZycjhaK1NlbGQyL0V0dXhhWm5KSk5GRWNKc2xveDVJcDlYbTljYjU4NEpJ?=
 =?utf-8?B?WjlMdm84WVVQYTVwRmlnK2ZHeHVYS0hlN2hDZi9tUGVVVHRVQ1p0SmxlcEFO?=
 =?utf-8?B?bXc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e91c6ebe-cd5d-483c-0e34-08de2821740f
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 10:42:09.3081
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7lqKXarIWHvwWCEJdgmmpJv2s8nPmhE7vvSftthKkDm2a5y3p/aZqBLX9KtWRzoGCkPg+3O4MmbAxvmmsSEyyxyDUCwzG9yAXoykka8A96I=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9922

Hi Jan,

On 20.11.25 10:50, Jan Beulich wrote:
> (adding v8 tag to subject)
> 
> On 19.11.2025 20:32, Grygorii Strashko wrote:
>> From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
>>
>> Add config option VIRIDIAN that covers viridian code within HVM.
>> Calls to viridian functions guarded by is_viridian_domain() and related macros.
>> Having this option may be beneficial by reducing code footprint for systems
>> that are not using Hyper-V.
>>
>> [grygorii_strashko@epam.com: fixed NULL pointer deref in
>> viridian_save_domain_ctxt(); stub viridian_vcpu/domain_init/deinit()]
>> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
> 
> As before - this R-b likely would need dropping, ...
> 
>> ---
>> changes in v8:
>> - drop checks from viridian_load_vcpu/domain_ctxt()
>> - drop check "value != 0" in HVM_PARAM_VIRIDIAN handler, laways return
>>    -ENODEV for VIRIDIAN=n
> 
> ... when more than just cosmetic changes are made. Jason, please can you
> indicate whether it's fine to retain?

Sorry, I'll be more careful with tags.

> 
>> --- a/xen/arch/x86/hvm/Makefile
>> +++ b/xen/arch/x86/hvm/Makefile
>> @@ -1,6 +1,6 @@
>>   obj-$(CONFIG_AMD_SVM) += svm/
>>   obj-$(CONFIG_INTEL_VMX) += vmx/
>> -obj-y += viridian/
>> +obj-$(CONFIG_VIRIDIAN) += viridian/
> 
> When committing, I'll likely take the liberty to also move the altered line
> up, to restore proper alphabetical sorting here.
> 
>> --- a/xen/arch/x86/include/asm/hvm/viridian.h
>> +++ b/xen/arch/x86/include/asm/hvm/viridian.h
>> @@ -86,11 +86,26 @@ viridian_hypercall(struct cpu_user_regs *regs);
>>   void viridian_time_domain_freeze(const struct domain *d);
>>   void viridian_time_domain_thaw(const struct domain *d);
>>   
>> +#if defined(CONFIG_VIRIDIAN)
> 
> Similarly I'm likely going to take the liberty and change this to #ifdef,
> just like you have it elsewhere.

I'm ok with mentioned adjustments.

> 
> Preferably with the adjustments:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thank you.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 10:47:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 10:47:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166805.1493235 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2CP-0005Dp-84; Thu, 20 Nov 2025 10:47:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166805.1493235; Thu, 20 Nov 2025 10:47:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2CP-0005Di-57; Thu, 20 Nov 2025 10:47:37 +0000
Received: by outflank-mailman (input) for mailman id 1166805;
 Thu, 20 Nov 2025 10:47: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=hQ23=54=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vM2CN-0005Dc-Sf
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 10:47:35 +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 4e2172ef-c5fe-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 11:47:27 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by PAWPR03MB9922.eurprd03.prod.outlook.com (2603:10a6:102:358::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 10:47:24 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9343.009; Thu, 20 Nov 2025
 10:47:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4e2172ef-c5fe-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=C3XvLemDMZws75ed4sjQoIDhMW+IqAZjZvC4ITHZ+8Dvf57bN3511AtA23sthp3bUd7LMueziaC5nNcxMWYEhi5HXmuFK3woYr57w/Kl7vvULigv7zXhinEQDxZ+aV+IazdCxCNxL/BDBjs//2b7+dRNqONY5gC5AbrAFLVOVqi+wOb5AQC0SmhA4Tx5QQgaFvwIVRxZFzIODgkw46MZ0lSrJx5ahTeG+f6N4KiBcL9ivZPrgTL8TlYQagfM35yHTqEN4/OEp8v8LuJRUOwSzFLR+HaZZVoyOGe/P7cfWh3bO2DwRhfe3LL6pNHoWEKxUh3LOv6kdPniuV4T7XlKnA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zet+1/WAg/mK2F4LaJxBMH8W9F4nGtbtbZDeiT5Djhw=;
 b=A0WQdMwiAbDjSMaTvleiWEQwg0bbRzA9olZfeL6jvdfdhtts2+EgPffeqj6dH5vBy6aWabV0guVOHzzSQ7FwVgSN2h3hIdzee0snXBle4NG28F0G0Ogf/BTBc5tuuzHIx+s2EIG80K4ZwhnTXruzz33pWnuQKNUsf51uhjC9guIbYIToVyhncpwDJNkkSMJ/t1LZcWp2THK45a0z088rTpyCNJt4y5N3Dak0yWKA8dbQ9koh7xgCz+QPqyl3n+YNRI8RUz9T7tnQ2fSvxy+PLhh/v+gca3TF2bc/2YHVpczMQr/4XVS4kfIu1kQ0SJK4qg90ZF48VWVDy4hA8ZKpsA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zet+1/WAg/mK2F4LaJxBMH8W9F4nGtbtbZDeiT5Djhw=;
 b=Xlx7P5QmH6p4vH9PcDUiLYm82GXUDBXvY6r92W2y8bQqcYBqhUEPv6/VE6dDs/HXi/gx+H8ZEeIQx7/0+WhrjQuM4QIMqEKYImbxQAszudQrby2s6ZMJqlNYdUX04efn72QS45C52w4ydpkhDKMFOQ7mozfzfB56WPwrFYImskvL3sLffrP3q6C5lVzoom+CN6uOFJmndOxKxE/6AGvE8UZmySQLpHyi2O257G1exAs1iQ0chKuIkKWZGqBbjSfaZCJpThRLndVE4sJQXoO7DJqUnZCWkKKU/aPsYm1WIUoqQl9EgQj7dIWHcEwFES64BxJWMxJGKsyPU84z2CckKg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <054aaca3-919f-4b9e-bdfe-9bdb40f08388@epam.com>
Date: Thu, 20 Nov 2025 12:47:22 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v4] xen: make VMTRACE support optional
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 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>
References: <20251119193120.1011448-1-grygorii_strashko@epam.com>
 <f354c1cd-c46e-4bd2-98d6-a614029991f7@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <f354c1cd-c46e-4bd2-98d6-a614029991f7@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0005.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:1d::19) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|PAWPR03MB9922:EE_
X-MS-Office365-Filtering-Correlation-Id: 8f66807c-7e03-435c-e589-08de28223050
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|7416014|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MHl6K2xVUCtkajE2TXk1NVJJWW5yMlUxcHljQnVUTm5jbzRLVWRoUDlBN0NT?=
 =?utf-8?B?ellhajgzbFR0ZkhGdk1xNWE2Zytub2c1QUtnU1kzQmtHbXFqVUdzTWhoWDBo?=
 =?utf-8?B?T3hVR3p1WjFzblVEZEY3ZlJ1dE1wYnIrSmZnSjNPZlNNVlpwYkhNZHVuaXYr?=
 =?utf-8?B?YmpqZjlNbDU2TWF0bHc3V1RJQk5LWEdVZW1NaGJybmMrRGx2N0l4OWhxdkFO?=
 =?utf-8?B?akgyWXUvYm1zUGF2WWNKblByQlRkSjlTZ1pRR2FhUDlva2VOeGlPTnd4eXFG?=
 =?utf-8?B?ZTVSbmZka3RrVytQNHVlYUY0RzJLdFA4ZGFaYjM4ZCtFbkxuUVR4d3BSc0px?=
 =?utf-8?B?dWZBaXhJVnFPaDhPZDZDcEVhS1I3NUNTdWhNdFY2V0tBRVlENmtoNFU5aFJE?=
 =?utf-8?B?L0ZWVEFnbXBDY3Z4NG5Xd0drdVV4eHdlN2hJV1R0TmZLd29IbmZycnVOTjJ2?=
 =?utf-8?B?VTJyaG1aRndvcEg5dEpiK1RGRTFlaXZBZVhSbVlYUTZSRmVsdXNxNktGTXJz?=
 =?utf-8?B?Mkt3OThHbTJWNkdGYlpVc2M4a0lGUVMzdk9Gby8rUHYra09mVnZzc2JtSzEy?=
 =?utf-8?B?RmVUU1puTXVEb3NvTk4yK1FLK2J0M3Rxc1l1amtJcjBWd0xNTmhNL3FkUGkz?=
 =?utf-8?B?eUFlNDIxUlUva1Urck9CK2RrYVd2Q3ZEWE15a3gxY1JJQW16N2hkSFpxY0dF?=
 =?utf-8?B?TnhMeFVKMGx1Yzk3MWliNFJMWWdxRGtrb216T3NSc3o3Y3JhTTdHdi9lUHdZ?=
 =?utf-8?B?V09McEJqTlRBU29wTVdMT01EeXYwM2tISjZXRTg3ekNTWFJWNmQ3cWpYRk5x?=
 =?utf-8?B?OFNzZldSQ2ZVQmZhNzM4WmJGRDZTSXM0NjFFUjhjMCtLdy81UCtjTXRNL2tz?=
 =?utf-8?B?QlU2Y3pPcHQzNEtYMjA4WlZaNWhDdmV4dTNHSEMzc1E3R3dob2JZczBpR0lR?=
 =?utf-8?B?Y2M0cS91YWk3UEQ4Q2grVzJMc29pS1hENkt3TmliTnZKMEsrWW03a0owQjN6?=
 =?utf-8?B?eXBkUzZHRnNmOWtFcnNjbEUwTGIzNXlGd0dzdkVtSmVZdS9aSXBnbEF5RW03?=
 =?utf-8?B?Z0ZXRzJ1bVozMTZXU0RHSWYxbEpkNWpURGhjZzQvYnB1Rzg5RnZCRWZDVkxk?=
 =?utf-8?B?Tlg1Y2RBWXVyTXA4Y3d2RWFtYWhGMFpIbTA1SmZoeGxiZVI2MVdpS0dmeW5j?=
 =?utf-8?B?bThXamNuN3Q3cUF6dDc3VlJubDVLTm1tWll4OWpHUnROdWtSZVZobHFla3lx?=
 =?utf-8?B?azlLK2hJMFkxaXNXdjJYT2NGOS83RjhNK09FMmJvOHk4TEtTL21jaWZaUmlN?=
 =?utf-8?B?QUlvZUdZSk8rK1FDVkk2L0xwWWRIQnMyVGVKaHN6bzMxWkxFTmxmMnc4N3JQ?=
 =?utf-8?B?ellJUXVmeG1GbDdOR2I5ejA3dkZTM1lhRlpIOTNDRDBxTmxyaytXbHFTSDJj?=
 =?utf-8?B?blRmaEV6SnJNOUM5VlZLMjQralA4SEVWZU5FY0UwYjlpTXcvYWVWNzJBc0hy?=
 =?utf-8?B?ZkhlQ1B2SUxFWmRvTlBnN29qWnpFMjBHNDhuTnRrUmVaa1hUN1JvdUZYRFB2?=
 =?utf-8?B?ck9hMVRCa201ejY2aUMxYXpqTXQwRjQ5Nk1qZEFqdXFrSGJMcWpQdDZ4SkRF?=
 =?utf-8?B?MWFYcmFYY285RlZrWkltcWxLUkpnNFkvQjk3aDdOemkvZExJWlRmVVBKYnNV?=
 =?utf-8?B?SGhYVHQvenM5VVFqOUIrZDlFOW9RNThBWW83SGhOYnlTWDBVa1hsSzNZNHAv?=
 =?utf-8?B?eXg2UGtDVG81S1U3RkwzUFZTdHc2SjRrTGJYaE9vNmowUENaRmNSNGUvc1pk?=
 =?utf-8?B?MngydkJiRUdlVDc2UGVlTFpZR1JsMnhsNy9qdmo5T1hCb29ITXpNS2lEVkdQ?=
 =?utf-8?B?R2dZaytGaitXNHhabllCWldCVWlYYUZEYVYycE1rTDdSWE4rQ0UyM2JLQWRj?=
 =?utf-8?Q?+Z81mTkK12XRcO8qBm+bmIC0BFmocmzS?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QzN6MkwveDdtc0lKMSt0am5qaldWVGo2dUJXWVpZZEpOc1RCR3hCb3FCaG4x?=
 =?utf-8?B?SlVLRTBvenZ1MHhzVjNMT2h5WU5BR1dDbk8vMGFGWHh5OUZFYm5jbng4UytQ?=
 =?utf-8?B?ZUlNSXUvUmtQeGN3cm1JZ0dqaCtEK3ZBUjY0OGtqZzZ5M3ZLNldvSFFRZzlz?=
 =?utf-8?B?TUhacnFDbU1NK0J1QUJMOUw1bUFqdml3dWVHMjF6d1VYZUZJc3FEWVNUZWxj?=
 =?utf-8?B?aDVGVGJsSk01MUVjR3ozZnQ4MzExbkkxSy9WcGhieStoY3FmYVo0ZGJMejda?=
 =?utf-8?B?aGpObjd0L1NIVUFtYk01cXhicG9LRmw0NnBncWF3QXRnM3dIY0cxVkJEdHRt?=
 =?utf-8?B?cExlY3RUUlliOFM1YmVGOTZMY1p5NzdjQWJqMWpOZDBPTnY1ZGFnNmtMb3BC?=
 =?utf-8?B?SmxXaHBZK3lkVFhDdVVCNWlwK0pLcUFXdGtHUlA2TmhKUUM2SlRIT0x6QTd1?=
 =?utf-8?B?Y3loalRDS1ZrQzRWSXNsM2ZoNkFRSk5xR3FLUS90czRyMmI0T09uMUNMYm5I?=
 =?utf-8?B?QVRYc3ZCZ3pCTElZRm81dmNMUjA0WDdhNXlpVS9uVG00QVJSWU5xL2ZzalIx?=
 =?utf-8?B?ZmRjMUVHNmRqR01wOG85WXlEVzFpU05raWVBcUtQeGphYzhMWGlvZXZiYU5D?=
 =?utf-8?B?VnNud2N6Z3BOV0lSZExxcXFBcmE5RENzL0s0QUNBNU1HV0tGUytDdlZ0bC8w?=
 =?utf-8?B?a2tmZGJsUEFiWG5KQTYxWWJFWEREK2s1UXBSSGlPS3JiY1RxTmFOWjVoaGFy?=
 =?utf-8?B?ODJsbFFNZVordzBKSzVhUjZnY2lCb2JpMEdPTG5IQVc3TXRURG9rcWgxWllX?=
 =?utf-8?B?M2I3aVFvaHZZNXk2MmppTVdVakZ2NFlRWDY4WDZXaUxyL01NdEp3ajBVaE8w?=
 =?utf-8?B?THB1ZGY4eXR1TFVzbUltK3VsUGY0Y3V4MGhhVCtCejZTUTE3aDhISm9sVEhM?=
 =?utf-8?B?SmRsSU5oK0cyYWF0Tkx3aTNRSVVQb0c4My9zaUFkSmo2K0ZDNkpFYjdkVWNN?=
 =?utf-8?B?L3B1ZXdrMHozNEY0VTdoMDhhVW01aUp4U0JqRk9HRUhXZ0h2aUY5QTQvNUJs?=
 =?utf-8?B?RitVRUJPd1d0WWc1VXNKQnZzK3JSRWpZb3R1cUtOQjdEWEFYa0RZdGo2S1NB?=
 =?utf-8?B?RlpNRGlvVWV0VXFxbXNta0VMYmVKRzV4WnpuWlMrN3dSa09CTmpXczVSaHZv?=
 =?utf-8?B?QmQ3L1poVzdOMHBTWDVOblR2elZiSXVBZ1FLRWRCN1lDUnJHSXpxaWhzUm1y?=
 =?utf-8?B?RlI1Tm9PVkF1ZGQ4NGdOd0dkM0pCekN1M2dIdVVuOTNENEpudzBnOW5pWEY0?=
 =?utf-8?B?TFhsS2xDMnRUL3ExVitoc1hpT0x5WXkrOUI0WVZ4VEYxL0JuWTJteVhzbzJO?=
 =?utf-8?B?YnE5TjBHYnpsa2pWT3pFdTQvTy90VDVreSs2SWsrQ3RBRDdZWisvY2VYOThl?=
 =?utf-8?B?YVY0WlowQzg1UXlEek02Mk5QTnhMTi9jV1QxY3YzcmdaWTlWY0NnQWpRckty?=
 =?utf-8?B?MjFTMURqY3B5Y2VORDA1M2JIS1FZeXJ4bDFhTUdZaW9KakNhdjMvZmNkOTFh?=
 =?utf-8?B?Y0FIYzlkRGpoL0dlTENwWFlBbkRjTHNSd3F1T0dBelZmRmU1SVQ3M0hGYjFF?=
 =?utf-8?B?NTFIVXlYZ256N1ZZQVdZTUYydCttMzlvODloVXg2NDFBbU5YcktZanNHaUZQ?=
 =?utf-8?B?eldmQzhwQ1RJbWszSXFyYlhlcm9PRTNNNGIvdVJTN1R2UmpzYzlFMTc0dFJF?=
 =?utf-8?B?Nk44Myt1OXNBcHZOaUV2K2ZEcWxGamFXZnZZNk9MQkhpbmZjcjlDN241YjFr?=
 =?utf-8?B?dWlIRmo0YS9IeWZLb0dBTlQ2eGNIaHFaMERWbmlUMkxDWTlVVGVNczVVL0NW?=
 =?utf-8?B?ZFBUVDlKRVRXSjYvUCtGc2c0dzh4L2UrdmVNdGhJRTlvbUtsTkd0NEtRakJY?=
 =?utf-8?B?Z0xDdGtNN1FaZlY4MG1IVWF6dlJKaDhMeS9TUUFkeXZ1OUV5dWp1MFRYaXY0?=
 =?utf-8?B?R05tWWVoVXhuR0JGcktyOFdpNkJUVWdrejR5YUF0TEM2U09memJ4bGVSUFV6?=
 =?utf-8?B?QW1tdzU1STRNVmk0Zkg5NWNBMkJ2K042ZUNSY0JFektvT0lkdjE5azk4cWZG?=
 =?utf-8?B?a0FHNGoxdEsyV0dDZDBHVGduM0Z5bDRnbnJyaEpkM1BPdm94NGg2cG5iWTEz?=
 =?utf-8?B?d0E9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8f66807c-7e03-435c-e589-08de28223050
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 10:47:23.8937
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: pcMk4bOJLXlTMeX2aUvLVX2Rz8AI7epU2wmq9NqRGIBAlKpNBK2NTNG3aWId4E0yltK2ayxshQO8Bb+ZRg8dhyRSxPwEVKA6hDrFpuMXLkI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9922

Hi Jan,

On 20.11.25 10:56, 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
> 
> Just partly, ...
> 
>> @@ -772,13 +775,24 @@ static inline int hvm_vmtrace_get_option(
>>   
>>       return -EOPNOTSUPP;
>>   }
>> +#else
>> +/*
>> + * Function declaration(s) here are used without definition(s) to make compiler
>> + * happy when VMTRACE=n, compiler DCE will eliminate unused code.
>> + */
>> +int hvm_vmtrace_output_position(struct vcpu *v, uint64_t *pos);
>> +#endif
>>   
>>   static inline int hvm_vmtrace_reset(struct vcpu *v)
>>   {
>> +#ifdef CONFIG_VMTRACE
>>       if ( hvm_funcs.vmtrace_reset )
>>           return alternative_call(hvm_funcs.vmtrace_reset, v);
>>   
>>       return -EOPNOTSUPP;
>> +#else
>> +    return -EOPNOTSUPP;
>> +#endif
>>   }
> 
> ... the #else wasn't dropped from here. If no need for a v5 arises, I guess
> I can make the adjustment while committing. But it would be really nice if
> all earlier comments were taken care of (one way or another) when submitting
> a new version.

This is absolutely my miss. Sorry.
I can resend with fix. Just tell me how will be better for you.

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

Thank you.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 10:51:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 10:51:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166814.1493244 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2GH-0006n2-N9; Thu, 20 Nov 2025 10:51:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166814.1493244; Thu, 20 Nov 2025 10:51:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2GH-0006mv-Ki; Thu, 20 Nov 2025 10:51:37 +0000
Received: by outflank-mailman (input) for mailman id 1166814;
 Thu, 20 Nov 2025 10: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=qEvF=54=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vM2GF-0006lL-UU
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 10:51:36 +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 df421b0d-c5fe-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 11:51:30 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-429c8632fcbso405416f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 02:51:30 -0800 (PST)
Received: from [192.168.69.210] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42cb7fb9190sm4912620f8f.33.2025.11.20.02.51.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 02: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: df421b0d-c5fe-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1763635890; x=1764240690; 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=1M/18t6moVlkRgWVwoPcK84uBvdA6yoMjg+D+edbTko=;
        b=PnGVpq8upac2/1Mz5PZZNQ99N/qHaWpgl6bHwyCY3kfHOXxlXuTuaAyzTSJUhua2tb
         OyPsfGSmC/4Hy93F8RD5LdJdoY9yZpRBlf2BB3JsWRHa17DvzObHE+EAmfh8JGAcWTKC
         bnHU/gqXDDFY9IFf9PB9opohyQxfSG4FV+QJ9lqsseYV3frBQ56FKMMrz7HLHMlTKSkG
         eDS7tBwKZA72Ym/yJdHQrBM42vZOYBjK6qDs656tkvdoIw7tgaLjoojdHsF8AsC1v+wc
         ikBPjbNY4CMBCpDypTbIeBQyiUF2FHhWO5eMczT+Vk++e+Q+oNyB8nPmWz9lFfVorrOb
         dbsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763635890; x=1764240690;
        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=1M/18t6moVlkRgWVwoPcK84uBvdA6yoMjg+D+edbTko=;
        b=jVe3SOJ/hz2hWRzLkJA7wBHUYuc43hU+UwsdFvOSoq6A/i2mjFPOdtfUIgEfh1FYgY
         G0MBPK+T/XBOEnKnZYHJFiXk00+VOz1FOgMC8ecPOWQLopGIuWkEJr5gNPf997NNvnnw
         KbvkCbjTwcpsMWB7hnlOVBXoj7IHKHp2R4F+Qumm6hl/XBCgVZEUfBmXUTS4OtEQYfQX
         2OpbndaxtuxIXXB4GkptWg8k9Nx8sTR5GoVFNBt6uN9Losv+XtHu+yrRi/iF9hWZuzzU
         zzF0aOXTtyr8FDmAbmaKasJ0niekZZ/5irQ3nlXkIHiHrO6yo/ckPtqjCLgT2xI12hR3
         p79A==
X-Forwarded-Encrypted: i=1; AJvYcCUan9XnsoDhVbXpyzUIRZFxmQVCHwbJWX38hlXnVASUcIKnoe3EOZi57NjE6dGWsAGqmYDyDL8gRIs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyJejomzVy1WypbCPlzwCoQALYjVCzzEYGM4TzWfJA9oUM4iz+V
	hvfwIhxfh/462seSAZ0XKt6OouBCHLgFqISSUdUCQ+RpOy3XP409qIoLi0jTR7n0+tM=
X-Gm-Gg: ASbGncv7HMZW/U5xXeXOCDcpS1ExKKNepHPAxlqWSbnFpRnACTzta+ujYxp6CJUTkbJ
	KK2bSWGfcl+ZJw+QGGDJUYkSEfgTu5KsRuqa31an3eOQ0m/m39LEJlxW72fk9VkNNB1MitXTg6c
	+6AOJ+B/Z2SjyFAA5kw1b+g4L3VVTA+ftbDl5ZfxpDUW0E+pO6dDnoB8RJeqCDPyO8s9zdmxxfl
	yDLdE5V0pbZf/+gSZjuX86h+nFEA634Y3bBwC9zGXw0K0FJ4h2lBWxri92hiYkSNqqCMwHcL6uK
	JYB4dzJhpO5GzOxp1m0eOPPnQ3N2HzkW0vv2F3DT/aEBdOoLZLmk2WwjzFF/qEXOfbPodXuZhC2
	nIkYYCRU/kRO3B63JH7689qg7amEIPeIK04wrRkqo6TNCkBX+HCXwgo0YNUSbd1bz6Rpgv0YEf3
	fneE6ngjJL2B3KqVl0bdZSiszkcQGhQD0UPuf1RszbnzV6oTJGkrudHA==
X-Google-Smtp-Source: AGHT+IF1uX4P9Ldl1MKPWCI4CVFASAXHm93mBmH2oSNKZDSuBThVvq6LdHNkjvPuApS7MKVFsJt3HQ==
X-Received: by 2002:a05:6000:228a:b0:42b:3131:5433 with SMTP id ffacd0b85a97d-42cb9a2decbmr2359371f8f.26.1763635890108;
        Thu, 20 Nov 2025 02:51:30 -0800 (PST)
Message-ID: <ab69153d-b162-47f2-90c9-22cd248c94a5@linaro.org>
Date: Thu, 20 Nov 2025 11:51:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] hw/core/loader: Make load_elf_hdr() return bool,
 simplify caller
Content-Language: en-US
To: Markus Armbruster <armbru@redhat.com>,
 Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Cc: qemu-devel@nongnu.org, kwolf@redhat.com, hreitz@redhat.com,
 mst@redhat.com, imammedo@redhat.com, anisinha@redhat.com,
 gengdongjiu1@gmail.com, peter.maydell@linaro.org, alistair@alistair23.me,
 edgar.iglesias@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
 palmer@dabbelt.com, liwei1518@gmail.com, dbarboza@ventanamicro.com,
 zhiwei_liu@linux.alibaba.com, sstabellini@kernel.org,
 anthony@xenproject.org, paul@xen.org, berrange@redhat.com,
 peterx@redhat.com, farosas@suse.de, eblake@redhat.com, eduardo@habkost.net,
 marcel.apfelbaum@gmail.com, wangyanan55@huawei.com, zhao1.liu@intel.com,
 qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org,
 qemu-riscv@nongnu.org, xen-devel@lists.xenproject.org
References: <20251119130855.105479-1-armbru@redhat.com>
 <20251119130855.105479-2-armbru@redhat.com>
 <bf44d9cd-806a-4d2c-8cff-0a88222959ed@yandex-team.ru>
 <875xb5x2ds.fsf@pond.sub.org>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <875xb5x2ds.fsf@pond.sub.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 19/11/25 20:12, Markus Armbruster wrote:
> Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> writes:
> 
>> On 19.11.25 16:08, Markus Armbruster wrote:
>>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>>
>> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
>>
>>> ---
>>>    include/hw/loader.h |  4 +++-
>>>    hw/arm/boot.c       |  6 +-----
>>>    hw/core/loader.c    |  8 ++++++--
>>>    hw/riscv/spike.c    | 10 +---------
>>>    4 files changed, 11 insertions(+), 17 deletions(-)
>>> diff --git a/include/hw/loader.h b/include/hw/loader.h
>>> index d035e72748..6f91703503 100644
>>> --- a/include/hw/loader.h
>>> +++ b/include/hw/loader.h
>>> @@ -188,8 +188,10 @@ ssize_t load_elf(const char *filename,
>>>     *
>>>     * Inspect an ELF file's header. Read its full header contents into a
>>>     * buffer and/or determine if the ELF is 64bit.
>>> + *
>>> + * Returns true on success, false on failure.
>>
>> I don't really care, but IMO, it's obvious contract for bool+errp functions, not worth a comment.
> 
> Nearby function comments all have a "Returns" sentence.  I try to blend
> in :)

New developers might just have to look at a particular API such this
loader one, without knowing the global errp contract. With that in
mind, I'll documents @return everywhere.

> 
>>>     */
>>> -void load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp);
>>> +bool load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp);
>>>      ssize_t load_aout(const char *filename, hwaddr addr, int max_sz,
>>>                      bool big_endian, hwaddr target_page_size);
> 



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 11:02:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 11:02:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166831.1493255 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2Q8-0000BD-Kw; Thu, 20 Nov 2025 11:01:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166831.1493255; Thu, 20 Nov 2025 11: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 1vM2Q8-0000B6-IF; Thu, 20 Nov 2025 11:01:48 +0000
Received: by outflank-mailman (input) for mailman id 1166831;
 Thu, 20 Nov 2025 11:01: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=ChS/=54=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vM2Q6-00009T-Q3
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 11:01:46 +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 4cb0fcf3-c600-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 12:01:44 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH4PR03MB7723.namprd03.prod.outlook.com (2603:10b6:610:23c::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Thu, 20 Nov
 2025 11:01:40 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.011; Thu, 20 Nov 2025
 11: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: 4cb0fcf3-c600-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=l9CEM/azyOw+qAlg8dQ6chtUhrp8UL5l3AnbKAWCkk28PnGNWlQPtIJfVbS4SlBy3TEfVy/wIIL62I02ddNufOzs/S+opdWSf+V5kgIDSSBCu3nCA8OHV6XGTtz0BNZClmNzhjGCw5q3LwgEvaOoPieKeHNyn5kfu53Y0SQhpjzLSCkB1O6lajWMQJyVs97ahYnq1gzRpCYpQzHxjWc4yBE+i+Fo8XuA+eG3MIUYLeWtA+osxsEnu6ORZMmHTjf35JsEPZaht3bJ7HEZQYnhT+/YMET5RHYjLommG4NEwqf6BVyGEr3b/xRY2eXKIK3g1+ooUx5HXvI21Fw+z0esTw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=k8U+VBh4pERobnJvTuByqG4B4pFfkMK052GaaIaUlOo=;
 b=c8fmNZwXfS8dx9gkYxT4/vNWNjzErxToIV8edumG9VzNZZYRsqqORHz1LS8/6vQPm5bhg7RgpTK0CULeIu26Em/o3C70WohLsztaTaZuDL6569xMoZ9KOq7Vc7Uw1qXSAJAaaIdTusbBjC9T0gGV5J8EMqTRbJJcoRG4CaA0TKQqWltQpdyjSmuO16Z3prMfwn1i44yfia7jgbcOHmFv/XVRgCPcAMpbzB1XCVoOMXzKc7ChveGH2+8k17Nk0Xj5vWiiUG1QDikY2O9gYuSt1E1feQwLW6OXhwJCz9Lr4O60eZq8jIpnBs8ixeMVA5z+GULGwJYzbIqPorCtV5EdmA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=k8U+VBh4pERobnJvTuByqG4B4pFfkMK052GaaIaUlOo=;
 b=x/aqKJmA2Z8pL2K0EPweEt1pHV5t+llX0yrK0Pno/q/W0yB6Ii/NjctPbiJMadI8EutFhuQkZTLIW89Fv1k48vmNG5uR6V0M8D+2eNm+vkno3yFJhJ6mojAcxnoxPnWbOJ4joZzBeOzpMVV4z2tfMlp5/i1cDjmO543YGx4wWGo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <943e462f-d948-4f72-8d4c-626febca5b32@citrix.com>
Date: Thu, 20 Nov 2025 11:01:36 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/4] x86/guest: move allocation of Xen upcall vector to
 init code
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: <fbc9a2f8-170a-4645-8836-c90c42ad726f@suse.com>
 <5ccf9000-9847-40de-838e-cb181633b098@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <5ccf9000-9847-40de-838e-cb181633b098@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0670.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:351::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_|CH4PR03MB7723:EE_
X-MS-Office365-Filtering-Correlation-Id: 33c984e8-b5d8-4903-9e9d-08de28242e38
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?d3VTUmdta0gvSnJENDR6U296aEdXUDMxVnZqR3d1WmhFdUx6VHNvY0l4aWpL?=
 =?utf-8?B?NUY3S0wvWSthQ1BKbEpWenJ1RTRSTVRVZUNQdHZ2SkJIbDgxR2ttdExKTndL?=
 =?utf-8?B?b0xnUW4zMzZOcmtDaFBpaVd0ZVNxN2hlM29tWmlNWXd0Szd2M3dWeHdCKzI4?=
 =?utf-8?B?MCs1WU8zYWwzOTZoTC9KV1JOUEx1ZWZGV0pEb0hnOUx3bytqK0FKcjE5YjAr?=
 =?utf-8?B?SUt6Smwvb2ZlZ2VWVmtzYjNNOXpQeW01TU02RWpRUzYxMHdNaGdwRkcwYTlM?=
 =?utf-8?B?UDJ4UFlpdyt0N1R4Qy9iYzVsbTJCOENCTGxmMWZmY2dyOWQyUE9DVHg5OVcw?=
 =?utf-8?B?M1M3VmZxdWZlMGhtWkpQbkVqVk9LR2pyVnIxbzNzejYrYjRpelJ5c1RxV0hJ?=
 =?utf-8?B?TXlDenBkdzNGOGlGTjBDM3FKeEJoUUYwQy9zM2FHTDRLdWxTZHlzbkd0cWsw?=
 =?utf-8?B?Mnh5dXVXcXJ0TkF0cGZ4dEFNc0xPTTdERmZwQXVjUzFHWlg2MWd2QnpVYTNY?=
 =?utf-8?B?R01YdldkWWVtREErWC94Zy9wNlEyYXhpbnQ0YnFSTnRSMWt5aTVhTUw4MlZQ?=
 =?utf-8?B?US9OV2lOMnVXSHJqRFAyNXZycnlIaWlCdDgwVVZkVFFVZHlrSU1xRkNHemFT?=
 =?utf-8?B?aks1RUtDcS9BM2t6K2FiTDNzQW9lcTFheTY4S2I1NUtIeU9qTHZScmVpbk5U?=
 =?utf-8?B?WXhSV1Y4Wnh6Wm5laHU1SHluTnhkY1dBN3BlWW5KWHRubll6M3d1c1dwRDMv?=
 =?utf-8?B?WkRMMUR5Sm13OHBpUHZnVUQzNUM2emorcURmQmpIdkllQ1JCWmd3K0I0SnA5?=
 =?utf-8?B?NHRPMXFCbjI2NTVkQU1INVVaTGpzUy9kQ1Y0bGVIQkU4bjBhMnVyN3hHM1ZW?=
 =?utf-8?B?RkNHQ1FDRUNjcHBZQ3RCbG5GNE8wQnZmWXNGU3pINnY2ckMwSEE0My9DdXpG?=
 =?utf-8?B?alp1TERmdGdtc2FLNlIxYm12dlFJSkxYM29tUytBdzR4KzdLM0ZWVkNWYkFV?=
 =?utf-8?B?SEZKcGhWQWdBLzdWZ09iZWlUVUlNd05XRStiNGsxNDBMSkpQb3NPcy9jbk5s?=
 =?utf-8?B?dGhyUVdhbWJVbU90R3hRNUhWbVhOOEtoVUpudHFIekhIQjAwd1VOOFB2dEZh?=
 =?utf-8?B?ZGJwMjVsUE1IVUhHazRudXJrUmk1Q3VUejVEckxHczM3RUd4T1lSTVViNDNm?=
 =?utf-8?B?bHRFZmd5YkZTMGZkc1czTnFkSGZFeWxDVFQ1UG5YYXhmb1V5YjdQdVFDY0Y5?=
 =?utf-8?B?WUFZQWFZN2pMMmVDWW9jNFhBU05uYTAzUWU5NVpYZDQ5QnJHemJrZjhzOGhH?=
 =?utf-8?B?ZTZwU1RJWVhmU1dBeGNHNGtLU0lMYlhUWVEyeHNJYXBkMmF4TGpRQ3ZDT1I4?=
 =?utf-8?B?a1ZnZkpqYUlrUU43YXJuZFB3YUxrN3BrdDdUeEt2VGdCMnBzV1BDY1BreDFH?=
 =?utf-8?B?RDczQzRjVk93SkZYNERtYUN6OHhHRmRvZGNpL2trM1g0REZRWGtmSUdyc3Vj?=
 =?utf-8?B?WXcrSEU2bVFBYytRc3VZYUl0aE5wWmR5YzY1TDUybzcrRWNDTTRwK1VPUnVP?=
 =?utf-8?B?YkJmc01IaHloQTFLMjMyTGVFWlBwcUtjbVNLYXlHYVB6MVpkYVRzTGRCdWdD?=
 =?utf-8?B?WG0ybGk5Tmp3bEVrWWZ4LytmMjZyMnZ3UmkwU3BzSjY3b1QwdnpBQzFXQVBi?=
 =?utf-8?B?d0xEck1xcUtzbDZRN2pNZ21mekF2RUhrdVJCZldiMEFZVFRxK1NWSEhHbDlu?=
 =?utf-8?B?UXVDTURzTTdoVUUxWEIwQlNyTVVUbTY5c3hiMk5JSFdqcHpJaWVXZGxQdUJt?=
 =?utf-8?B?RGZFWVdoUTc0UWl1dHU4Lzk4bzVQWjhLQ2R2NWlDYVN1d2ZTUEJTRlNNZmNB?=
 =?utf-8?B?N2RNWlhZWXErNlJEanlNQXE0QWJ0RGZEblhlbVRlOWhhUE5XV0VuaHdON0dC?=
 =?utf-8?Q?kNMJC2JulwmmLbHg1QDf2la5XLT98d/q?=
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?MzRVREl3SFNDeFJoQW9ldk9ndFM0c2VZZElNRVlpYWhkOXdDeGlKQkMweE5G?=
 =?utf-8?B?MTQrbzgxUmRhcmhaOXJDdjlTWGJJOVFXY1Bhb25yOXRqZ29RcFJJcnFqVVpp?=
 =?utf-8?B?YmpKMEUzMHRQcEQ4alQwZytraXgvd2FRRWVGUUFHcEwrUVo1V3laVW91Y2Y4?=
 =?utf-8?B?NTFIMjdlNmZsOWQ5VmJ0ZC9RRjlHS2lndjlucWIzZ2lXRmplUFB0Zmx1ZEZX?=
 =?utf-8?B?NUdNbDdEenBvTDArWEZ3aGlOZ0g1WjBpT0VrTXJLaCszb3ZJbXRjKzlTZHN0?=
 =?utf-8?B?Uk1kV01VYjBZQ3luS0ZYRDRRN0RHZWRxYm9ibmY3S1hUNTZHSnF2TldnMkw2?=
 =?utf-8?B?RXFzMjBEVXJVQk00enBpS0xZTlVMNzU1bzRzOFFwR3FOVlY3SU9QWlVXYlk3?=
 =?utf-8?B?eUtGK2V5NzVHTE5DMEJRZGE2T2xnL0lHcDBZYWZUZFFWSjdPTnNKaFJ3aFlh?=
 =?utf-8?B?MDlOdG45aFhuQ2FpcldQenY5V2pOUWc3TnBIUjlNSmVkRGlTMVpwZ3B5OFdB?=
 =?utf-8?B?dFRSZ1lTUnZuN0pSREE5TUtmV2hHZGJ2bm9QNVlYKzdPcnZ6MThvUHhVcXB6?=
 =?utf-8?B?dXdmeTQrSlptemNtdU1vWkVLUFhjZ29xT3dYR1YzcTFxeExXTDV6dVIwOWRS?=
 =?utf-8?B?T00xOHdRV0F0dXpFenF1d0NWTW9Ua2hjeTdSbk5uK3lnU3JHU05PRXpqNkxp?=
 =?utf-8?B?WllvaGxqZklzOHdSaFdkdWpnUGR5bzR4c2dPUXZFUnNVRkRhYlN4SzRGaXBW?=
 =?utf-8?B?cDZ0WTBvUHcrbzRybkZSTkRjakxkdENiWHZ5Z3FRYUlJNWZuK0g5TGhZZlJD?=
 =?utf-8?B?ai9KZjNLbm1Gam1la2dVTktUcVM0TVROUmVjY1lkSmVFYlVlcnZ6a3E0c21n?=
 =?utf-8?B?V1FvdkFKVm1Tb0tkRUZkUDNzQTRub1ZSQ3BIU0NVTWU2ZDJWZ2s4b3N5eTV3?=
 =?utf-8?B?TXVlL3BhQUNWaFFSa2w0QW5RWDlJZm1NODh2QVMrWVJaT215UWRaQlBVVmdB?=
 =?utf-8?B?NkEvUXplN2ZNbGd5MUxrYWlHbktDSlgvYUNxc21xNUgvMzlxdWpKT2hwTUNt?=
 =?utf-8?B?V294R05SV1U2OGZLZFNSeGI2WXFKd1FtcjlCMCt2azBWMjRxbVBrZnFLWjNQ?=
 =?utf-8?B?aG5rbVFxSHN1S05qU3B2RkhVNEo3ZlJaNDdiSmgwbmpiL0NwVkJHV0hVNmdj?=
 =?utf-8?B?RzZxSFhUR2VLMHpHaXdRTnY1emVWRThJWGg0SXg1SmZoMTNxMjgvZVdCbzRB?=
 =?utf-8?B?K1hDOTcvRVJrM1pBeW5TZUtxWWg1eE8vckNpK0x1TVhoL1NPdEhxdnlOYXpk?=
 =?utf-8?B?bHBSLzVJckxnTWZhWStSNDFXbitma1kyOXVDR3crSUNwQS8rQzhaeVlqSWl1?=
 =?utf-8?B?ZVhqa3paWkZOcFV6a0xQL2l2TW9QWnlGbHh6R3JreXoyV1Y3MVcrbm5HMDNh?=
 =?utf-8?B?MklEa2hIZktUVjQwbFZ6bDREZTNob3l6alVlaEZSYysxemZ1QjZ6cVZna2tj?=
 =?utf-8?B?NmdXQVRrVzNzenNQZHZoMTV3ekhHZmNMVGROYm0xTElXcHpLS1pYTksrY3Vi?=
 =?utf-8?B?ekZacVgrL3V3bm5rbDh2Mk94clgzZVY4UGpsNmtOYkovVXJERXpkSEhIRUcx?=
 =?utf-8?B?L0VCVTdNbnhOdDBSNjJsTlpaK2hxT2lNVzYwbGd2VVR5NkREWk9ZOHh3RVQ4?=
 =?utf-8?B?Z1RYZm9hVm9Id0dLQ0VOU0pVYllnV2pvT2NvWkJaVVA0amIxMjRpb0VpNVBX?=
 =?utf-8?B?RXJCOUwyK1VISHE5ZmNwV1B5eTB3RTJ0YzhBS1RTREVoTWg1VkFVSVZlcnQx?=
 =?utf-8?B?MkhtempTMGx4MU9rdlo3WEszeldabi9BdU4vTFRwU2wzN0xtaVUwMDFiQmhQ?=
 =?utf-8?B?VzNXRWxncGUxeUx1bTJjc05FYjN5d2Y1ZHIxaWRJUG5nZnVSZjduZEM1d0FP?=
 =?utf-8?B?NnZFZ3VlcHg3UlZLVXUzNzdtQkViWHp1c1lhVlFHQmtPY05UcWd1RXZVMU54?=
 =?utf-8?B?SXp0ZFAvVE8rc2ozUldNTUdhU2lLQ1h0ZldyMHdpQW9Mcm5NME51UjlIeW13?=
 =?utf-8?B?Y1l5aEdvL3hWRXIvKzVDRnZVcWxraTVpc3lJa3JVdGJjVFFvbzF2Z2RlVzVZ?=
 =?utf-8?B?UzJiV210S09Db3FpQlNHSk04VkZPaEdob2E0VTVxcVlDSjhrcXdUbmo5YzNq?=
 =?utf-8?B?V0E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 33c984e8-b5d8-4903-9e9d-08de28242e38
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 11:01:39.4332
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: tLa6sWFocS92+1eIruYxv4A7bhFwf2pum2hHIoTnb4xvYugjhtgmsB0U1JoifEnXkjC2HkjZy1qozaF5oJUep3IOZdKxmYLLPpjFMbEwda4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR03MB7723

On 19/11/2025 10:50 am, Jan Beulich wrote:
> There's no need to do this every time init_evtchn() is called. Just do it
> once when setting up CPU0. Drop the assertion as well, as
> alloc_hipriority_vector() (called by alloc_direct_apic_vector()) uses more
> restrictive BUG_ON() anyway. Then evtchn_upcall_vector can also validly
> become ro-after-init, just that it needs to move out of init_evtchn().
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>
> --- a/xen/arch/x86/guest/xen/xen.c
> +++ b/xen/arch/x86/guest/xen/xen.c
> @@ -233,16 +233,12 @@ static void cf_check xen_evtchn_upcall(v
>      ack_APIC_irq();
>  }
>  
> +static uint8_t __ro_after_init evtchn_upcall_vector;
> +
>  static int init_evtchn(void)
>  {
> -    static uint8_t evtchn_upcall_vector;
>      int rc;
>  
> -    if ( !evtchn_upcall_vector )
> -        alloc_direct_apic_vector(&evtchn_upcall_vector, xen_evtchn_upcall);
> -
> -    ASSERT(evtchn_upcall_vector);
> -
>      rc = xen_hypercall_set_evtchn_upcall_vector(this_cpu(vcpu_id),
>                                                  evtchn_upcall_vector);
>      if ( rc )
> @@ -293,6 +289,8 @@ static void __init cf_check setup(void)
>                 XEN_LEGACY_MAX_VCPUS);
>      }
>  
> +    alloc_direct_apic_vector(&evtchn_upcall_vector, xen_evtchn_upcall);
> +
>      BUG_ON(init_evtchn());
>  }
>  
>

This patch is fine, but it would be nicer to split init_evtchn() into
bsp_init_evtchn() and percpu_init_evtchn().

Just out of context in init_evtchn(), there's a check for CPU0 that also
ought to move into bsp_init_evtchn() (and therefore into __init), at
which point the percpu simplifies to a single hypercall, and we keep
subsystem specifics out of setup().

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 11:07:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 11:07:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166846.1493266 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2Va-0000t1-8q; Thu, 20 Nov 2025 11:07:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166846.1493266; Thu, 20 Nov 2025 11: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 1vM2Va-0000su-4W; Thu, 20 Nov 2025 11:07:26 +0000
Received: by outflank-mailman (input) for mailman id 1166846;
 Thu, 20 Nov 2025 11:07: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=DpbD=54=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vM2VY-0000so-F0
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 11:07:24 +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 1495b693-c601-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 12:07:19 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4779aa4f928so7634775e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 03:07:19 -0800 (PST)
Received: from [192.168.1.37] (host-92-29-237-183.as13285.net. [92.29.237.183])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-477b831421fsm41120655e9.10.2025.11.20.03.07.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 03:07: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: 1495b693-c601-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1763636839; x=1764241639; 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=lrxvUVj9niTrIJioOd4eIi6MRCKVkUy5Zw3irL6v5CU=;
        b=UzB1WY8XRjzQYv1Aee+N//BNOvVIRbQDkVwJRCJDr8aSHFn3UbKwC98xx0795PW2GV
         IMgHv3qmKveoIfJ842ho+KPlDQVNWxLgSBv+0GZLvkAQXVaOcBffmrcUmwNrOcd8HN78
         lgzKR8PjCL+8raiyvEsGkvzru/Lsi96/9mABk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763636839; x=1764241639;
        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=lrxvUVj9niTrIJioOd4eIi6MRCKVkUy5Zw3irL6v5CU=;
        b=Scdlb94YE3/+q6yj6SlO4nQYAFBajqi1T7h3JKpfPJR/dBL1FVTNtInkJeH31sFAnK
         EkgCw1FyPqjMrUYQgqK8KeIO/VvkfWiBctanv3h0XD81ZdrgeJjqnn+Zer2MfuNY9d3c
         uYhjj71GRkgDHFVYbd8920dEz9SbgXs8PvzuItkZT1IOFPHCCSJbNEXIb6jLdhm37fAk
         LtVuRPHZE2+Y7bmnKrHXZdFQGXmK5XArSrlqmqu64ln2MiXQ7Vd2wneoUDotcj8fIpO9
         wXdzK7gQUfNoSXIyK0RK6q/6bbcX6wsELO+tNERG0exmkm/Ym+zrEBLICy85/9sKgf8N
         X2OA==
X-Forwarded-Encrypted: i=1; AJvYcCV+pYF7HLSkbLUKuFxLOv9bcwPPOAc6sJ6cRiEeqjk3aPWX/VAUNsRDgKIX6SCLDHOw+IGd7GcETzU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwnNigP+XDpBKApenKalTovoCHibinnnzYc5GC5kBYZBkZ+GR+W
	/Z1YHGMHG0hxjnSp6gZPQ8zzTztsGohmIyeW56PM4zvN2HVJA3XxGUnFRm6hYi3ikY0=
X-Gm-Gg: ASbGncs+zDOnLDYWfqB0dKMj9eR61ZtCvanT96Y/TZppkcEmdLoG+geb75hX38Og/97
	HI+cn412aSiqHvh29piHKFuJz2o/Gy5xY8ttIkE97a88KgD1vgzTOwGWVOC/wmj15Ln0+ox04oB
	KpjUPci7vAxWiRtgDjrWLFMhckQsGVsg1jMc4OBAmRkr8TZ8O15ZsGEQUp8E2RBfKdjNcVNGB40
	4W5iCbJyjslQxDbJcKgHtvYw3t6Ip6HQuSAHsMpvWYxOE6PjlkDze60N0prsO+trTMlnuI6oV4O
	w2uq/VtLll982mYbbzEhT3/Fsp34zN0sYBoUbguTQWArTeqEC1Q+jbbZXE6FmUg+qRcGNvwGScI
	5wtFMXB4cmbZsG7B+DOvUa1xGzXgRi7zFzNylhnm9oZv/Ts6TEk060T4/bCTUd/+3KHSfiM4Lhp
	3RkZ/MM4HZLiiJi1f1Awz8D6RbAuE2+pkjQznCn2z0f3AbQGyardRXl8PhGVkDVAA=
X-Google-Smtp-Source: AGHT+IG0hTQNsl2MA39Acg+tZyVXMu6rU+mNuvxCRPbKZ7xt/xOJRS353f03F8YnQdKMWAQsuWr7ng==
X-Received: by 2002:a05:600c:1994:b0:477:7b16:5f80 with SMTP id 5b1f17b1804b1-477b8a50f4fmr28452155e9.10.1763636838568;
        Thu, 20 Nov 2025 03:07:18 -0800 (PST)
Message-ID: <4a266547-b058-49c0-8c45-7a80f8ada3b7@citrix.com>
Date: Thu, 20 Nov 2025 11:07:17 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/4] x86/guest: move allocation of Xen upcall vector to
 init code
From: Andrew Cooper <andrew.cooper3@citrix.com>
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: <fbc9a2f8-170a-4645-8836-c90c42ad726f@suse.com>
 <5ccf9000-9847-40de-838e-cb181633b098@suse.com>
 <943e462f-d948-4f72-8d4c-626febca5b32@citrix.com>
Content-Language: en-GB
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <943e462f-d948-4f72-8d4c-626febca5b32@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20/11/2025 11:01 am, Andrew Cooper wrote:
> On 19/11/2025 10:50 am, Jan Beulich wrote:
>> There's no need to do this every time init_evtchn() is called. Just do it
>> once when setting up CPU0. Drop the assertion as well, as
>> alloc_hipriority_vector() (called by alloc_direct_apic_vector()) uses more
>> restrictive BUG_ON() anyway. Then evtchn_upcall_vector can also validly
>> become ro-after-init, just that it needs to move out of init_evtchn().
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>
>> --- a/xen/arch/x86/guest/xen/xen.c
>> +++ b/xen/arch/x86/guest/xen/xen.c
>> @@ -233,16 +233,12 @@ static void cf_check xen_evtchn_upcall(v
>>      ack_APIC_irq();
>>  }
>>  
>> +static uint8_t __ro_after_init evtchn_upcall_vector;
>> +
>>  static int init_evtchn(void)
>>  {
>> -    static uint8_t evtchn_upcall_vector;
>>      int rc;
>>  
>> -    if ( !evtchn_upcall_vector )
>> -        alloc_direct_apic_vector(&evtchn_upcall_vector, xen_evtchn_upcall);
>> -
>> -    ASSERT(evtchn_upcall_vector);
>> -
>>      rc = xen_hypercall_set_evtchn_upcall_vector(this_cpu(vcpu_id),
>>                                                  evtchn_upcall_vector);
>>      if ( rc )
>> @@ -293,6 +289,8 @@ static void __init cf_check setup(void)
>>                 XEN_LEGACY_MAX_VCPUS);
>>      }
>>  
>> +    alloc_direct_apic_vector(&evtchn_upcall_vector, xen_evtchn_upcall);
>> +
>>      BUG_ON(init_evtchn());
>>  }
>>  
>>
> This patch is fine, but it would be nicer to split init_evtchn() into
> bsp_init_evtchn() and percpu_init_evtchn().
>
> Just out of context in init_evtchn(), there's a check for CPU0 that also
> ought to move into bsp_init_evtchn() (and therefore into __init), at
> which point the percpu simplifies to a single hypercall, and we keep
> subsystem specifics out of setup().

No, scratch that.Â  HVM_PARAM_CALLBACK_IRQ is not in the list of HVM
Params that migration moves on migrate (see write_hvm_params() in
xg_sr_save_x86_hvm.c).

Everything is awful.

Could you include a comment such as /* HVM_PARAM_CALLBACK_IRQ is not
moved on migrate, so has to be set up again on resume. */ to make it
clear why that piece of logic needs to stay in a non-init function?

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 11:09:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 11:09:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166856.1493274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2Xw-0001PQ-J8; Thu, 20 Nov 2025 11:09:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166856.1493274; Thu, 20 Nov 2025 11:09:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2Xw-0001PJ-GO; Thu, 20 Nov 2025 11:09:52 +0000
Received: by outflank-mailman (input) for mailman id 1166856;
 Thu, 20 Nov 2025 11:09: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=O4pg=54=bounce.vates.tech=bounce-md_30504962.691ef6f7.v1-3a7b79b5db2c42199b36281b832d96ce@srs-se1.protection.inumbo.net>)
 id 1vM2Xu-0001P8-Gh
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 11:09:50 +0000
Received: from mail128-17.atl41.mandrillapp.com
 (mail128-17.atl41.mandrillapp.com [198.2.128.17])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6b1c68ef-c601-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 12:09:45 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4dBwbq1Nx6zCf9P17
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 11:09:43 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 3a7b79b5db2c42199b36281b832d96ce; Thu, 20 Nov 2025 11:09: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: 6b1c68ef-c601-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763636983; x=1763906983;
	bh=HcGtXUeNdCp+wbDiufqVXTOGkEfP6WR8yDN0dbvMJLY=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=h4dcy7Y/rNCT16HgaNyADBMbaEjIco6RmPunr+wwOSJGlnjvCBNITuEMxafAzSuRi
	 fmHr3wqGFy+sKSwcnTuLTNYRsVPE1uCKFrwO2eLwzUgciUBPICEH52DNDebgBIu48N
	 yMjFrybCfDZWOJfdAfr0ltMWy9GsXrD5TExQ3zy4q5nvKyYPlxBHRlaWZoH8TK8c2o
	 uZJC9INX4iAdWrINrY8hPBK/scVnSYjcetPwJf9kzxCnhAPsJSDOIp9xTN9bnFaXKw
	 v6ZpcfA/T6T2XwSdDLsuXYVAFCLr0O8B2RZOYPEvGT5VMiBIqYro1oGUNhe8N2ld07
	 qu9qhCA/P3zyQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763636983; x=1763897483; i=teddy.astie@vates.tech;
	bh=HcGtXUeNdCp+wbDiufqVXTOGkEfP6WR8yDN0dbvMJLY=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=horE0Y9oNUhGBIc6/Hpcfc2TVcqCoS8czwNyFd0aVBsm5Ccx6eiVhcHrPgn+w1O8x
	 iNaB2Rk0FFQ+B5wnnZG6Kf9NU40hl+8ahygWwcRVuNHjPuN+Mi1Q5GISQRv8KSfXBs
	 ZXBe39CS4xsRYvzTkAJ0/iy8MqUoUVuZZVZR23AsFPXoFluwSu5QsQRMvd8pwZW0ij
	 OfXiJuy/MSaKt4CXBCOr2iqknuy6MSPpElf/bCmq4XOCNOPOZ4rv2mcN0jSw3BCDpV
	 4t1G/jOiXIShdDp+syf4XCoJg5p7zMKIr+wH8SEloMqxSlEX3PQ4JgT9Rqf5Fjd5fV
	 Es0YRUNs3f4hQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=20v7=2000/14]=20IOMMU=20subsystem=20redesign=20and=20PV-IOMMU=20interface?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763636982365
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>, "Bertrand Marquis" <bertrand.marquis@arm.com>, "Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>, "Timothy Pearson" <tpearson@raptorengineering.com>, "Lukasz Hawrylko" <lukasz@hawrylko.pl>, "Daniel P. Smith" <dpsmith@apertussolutions.com>, "=?utf-8?Q?Mateusz=20M=C3=B3wka?=" <mateusz.mowka@intel.com>, "Jason Andryuk" <jason.andryuk@amd.com>, "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>
Message-Id: <cover.1763569135.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.3a7b79b5db2c42199b36281b832d96ce?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251120:md
Date: Thu, 20 Nov 2025 11:09:43 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

This work has been presented at Xen Summit 2024 during the
  IOMMU paravirtualization and Xen IOMMU subsystem rework
design session.

Operating systems may want to have access to a IOMMU in order to do DMA
protection or implement certain features (e.g VFIO on Linux).

VFIO support is mandatory for framework such as SPDK, which can be useful t=
o
implement an alternative storage backend for virtual machines [1].

In this patch series, we introduce in Xen the ability to manage several
"IOMMU contexts" per domain and provide a new hypercall interface to allow
guests to manage IOMMU contexts.

The VT-d and AMD-Vi drivers are updated to support these new features.
Work still remain to do for ARM/PPC/RISC-V.

Assuming appropriate Dom0 drivers, aside the capability to use VFIO in Dom0=
,
it also changes the way Linux performs DMA with devices to rely on the "IOM=
MU"
(thus "PV-IOMMU") instead of assuming all of it is device-visible and event=
ually
relying on the swiotlb. (this behavior can be disabled with Linux's iommu=
=3Dpt).

In this case, address space of device is no longer tied to the p2m, causing=
 all
modifications of p2m (e.g grant, foreign) to no longer require a IOTLB flus=
h (usually
on unmap, when using Dom0 PVH or dom0-iommu=3Dstrict).
That makes virtualized I/O vastly better with PVH Dom0, at least on Intel p=
latform.

On a Intel i5-4670 platform

PVH Dom0 with current Xen behavior or with iommu=3Dpt:
iperf VM -> Dom0: ~600 Mbps

PVH Dom0 with Dom0 IOMMU driver and iommu=3Dnopt (usually default):
iperf VM -> Dom0: ~7 Gbps (~11x performance increase)

Dom0 driver branch (until a make a new patch):
https://gitlab.com/xen-project/people/tsnake41/linux/-/tree/xen-pviommu-6.1=
8

[1] Using SPDK with the Xen hypervisor - FOSDEM 2023
---
This is a RFC, things are still experimental at this state.

Cc: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>

Changed in v2 :
* fixed Xen crash when dumping IOMMU contexts (using X debug key)
with DomUs without IOMMU
* s/dettach/detach/
* removed some unused includes
* fix dangling devices in contexts with detach

Changed in v3 :
* lock entirely map/unmap in hypercall
* prevent IOMMU operations on dying contexts (fix race condition)
* iommu_check_context+iommu_get_context -> iommu_get_context and check for =
NULL

Changed in v4 :
* Part of initialization logic is moved to domain or toolstack (IOMMU_init)
  + domain/toolstack now decides on "context count" and "pagetable pool siz=
e"
  + for now, all domains are able to initialize PV-IOMMU
* introduce "dom0-iommu=3Dno-dma" to make default context block all DMA
  (disables HAP and sync-pt), enforcing usage of PV-IOMMU for DMA
  Can be used to expose properly "Pre-boot DMA protection"
* redesigned locking logic for contexts
  + contexts are accessed using iommu_get_context and released with iommu_p=
ut_context

Changed in v5 :
* various PCI Passthrough related fixes
  + rewrote parts of PCI Passthrough logic
  + various other related bug fixes
* simplified VT-d DID (for hardware) management by only having one map inst=
ead of two
  (pseudo_domid map was previously used for old quarantine code then recycl=
ed for PV-IOMMU
   in addition to another map also tracing Domain<->VT-d DID, now there is =
only one
   map tracking both making things simpler)
* reworked parts of Xen quarantine logic (needed for PCI Passthrough)
* added cf_check annotations
* some changes to PV-IOMMU headers (Alejandro)

Changed in v6 :
* reorganized the patch series to allow bissecting
   * it is splitted in various smaller patches
* initial AMD-Vi port (it doesn't completely work with PV-IOMMU though, but=
 builds at
  least)
   * AMD-Vi lacks support for iommu_lookup_page (needed for several PV-IOMM=
U ops)

Changed in v7 :
* Proper AMD-Vi support for PV-IOMMU, mostly works with some quirks (e.g 'A=
MD IOMMU' devices
  that are visible for Dom0, but doesn't exist from PV-IOMMU point of view)
* splitted some parts of patches to smaller ones
* fixed numerous issues
 * a notable one being a ASSERT in PV-IOMMU map operation due to problemati=
c foreign page
   reference counting
* fixed typo in design document
* introduce a transient "invalid context" ID for devices that aren't handle=
d yet
* add proper "no-dma" documentation

TODO:
* Proper cleanup of AMD-Vi mappings (for ctx_no !=3D 0)
* consider per-iommu domid limit (allocate did on first attach/reattach ?)
* ARM implementation
* properly define nested mode and PASID support
* define how PV-IOMMU should behave in DomUs (e.g they don't see machine bd=
f) 
 * especially regarding how to expose "no-dma" mode

* better quarantine code (e.g isolate devices with different reserved regio=
ns
  regions using separate 'contexts')
* there are corner cases with PV-IOMMU and to-domain Xen PCI Passthrough
  (e.g pci-assignable-remove will reassign to context 0, while the driver
   expects the device to to be in context X)

Teddy Astie (14):
  docs/designs: Add a design document for IOMMU subsystem redesign
  docs/designs: Add a design document for PV-IOMMU
  x86/domain: Defer domain iommu initialization.
  iommu: Move IOMMU domain related structures to (arch_)iommu_context
  iommu: Simplify quarantine logic
  vtd: Remove MAP_ERROR_RECOVERY code path in domain_context_mapping_one
  iommu: Simplify hardware did management
  iommu: Introduce redesigned IOMMU subsystem
  iommu: Provide 'X' debug key to dump IOMMU context infos
  amd/iommu: Introduce lookup implementation
  iommu: Introduce iommu_get_max_iova
  x86/iommu: Introduce IOMMU arena
  iommu: Introduce PV-IOMMU
  iommu: Introduce no-dma feature

 docs/designs/iommu-contexts.md              |  403 +++++
 docs/designs/pv-iommu.md                    |  118 ++
 docs/misc/xen-command-line.pandoc           |   16 +-
 xen/arch/arm/include/asm/iommu.h            |    4 +
 xen/arch/ppc/include/asm/iommu.h            |    3 +
 xen/arch/x86/domain.c                       |   10 +-
 xen/arch/x86/include/asm/arena.h            |   54 +
 xen/arch/x86/include/asm/iommu.h            |   59 +-
 xen/arch/x86/include/asm/pci.h              |   17 -
 xen/arch/x86/mm/p2m-ept.c                   |    2 +-
 xen/arch/x86/pv/dom0_build.c                |    6 +-
 xen/arch/x86/tboot.c                        |    3 +-
 xen/arch/x86/x86_64/mm.c                    |    3 +-
 xen/common/Makefile                         |    1 +
 xen/common/memory.c                         |    4 +-
 xen/common/pv-iommu.c                       |  554 +++++++
 xen/drivers/passthrough/amd/iommu.h         |   23 +-
 xen/drivers/passthrough/amd/iommu_cmd.c     |   20 +-
 xen/drivers/passthrough/amd/iommu_init.c    |   57 +-
 xen/drivers/passthrough/amd/iommu_map.c     |  307 ++--
 xen/drivers/passthrough/amd/pci_amd_iommu.c |  411 +++--
 xen/drivers/passthrough/iommu.c             |  751 ++++++++-
 xen/drivers/passthrough/pci.c               |  394 ++---
 xen/drivers/passthrough/vtd/extern.h        |   19 +-
 xen/drivers/passthrough/vtd/iommu.c         | 1623 ++++++-------------
 xen/drivers/passthrough/vtd/iommu.h         |    2 -
 xen/drivers/passthrough/vtd/qinval.c        |    2 +-
 xen/drivers/passthrough/vtd/quirks.c        |   21 +-
 xen/drivers/passthrough/vtd/vtd.h           |    3 +-
 xen/drivers/passthrough/x86/Makefile        |    1 +
 xen/drivers/passthrough/x86/arena.c         |  157 ++
 xen/drivers/passthrough/x86/iommu.c         |  294 +++-
 xen/include/hypercall-defs.c                |    6 +
 xen/include/public/pv-iommu.h               |  343 ++++
 xen/include/public/xen.h                    |    1 +
 xen/include/xen/iommu.h                     |  122 +-
 xen/include/xen/pci.h                       |    3 +
 37 files changed, 3777 insertions(+), 2040 deletions(-)
 create mode 100644 docs/designs/iommu-contexts.md
 create mode 100644 docs/designs/pv-iommu.md
 create mode 100644 xen/arch/x86/include/asm/arena.h
 create mode 100644 xen/common/pv-iommu.c
 create mode 100644 xen/drivers/passthrough/x86/arena.c
 create mode 100644 xen/include/public/pv-iommu.h

-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Nov 20 11:09:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 11:09:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166857.1493286 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2Xy-0001dh-0R; Thu, 20 Nov 2025 11:09:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166857.1493286; Thu, 20 Nov 2025 11:09:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2Xx-0001da-Rh; Thu, 20 Nov 2025 11:09:53 +0000
Received: by outflank-mailman (input) for mailman id 1166857;
 Thu, 20 Nov 2025 11:09:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=00fE=54=bounce.vates.tech=bounce-md_30504962.691ef6fe.v1-a33abe37a54b40cd96edbc62b21e7e78@srs-se1.protection.inumbo.net>)
 id 1vM2Xw-0001PI-Mn
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 11:09:52 +0000
Received: from mail128-17.atl41.mandrillapp.com
 (mail128-17.atl41.mandrillapp.com [198.2.128.17])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6ee32b85-c601-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 12:09:51 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4dBwby2brDzCf9P1D
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 11:09:50 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 a33abe37a54b40cd96edbc62b21e7e78; Thu, 20 Nov 2025 11:09: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: 6ee32b85-c601-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763636990; x=1763906990;
	bh=udBt1y9h/YNLYss5IYUydlCXTo7q/nhKS0HCbYJbk70=;
	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=EI3XA86z6I8ZtuNT+rICdeUz9coL0/bK7i6bBiCIJg8nag+FTnqmqRNBPU4nI6K8B
	 blitUNSWGkytWZfpAlxlE8H0ZVHw63GjK/HJRenQ1wuC07fbbf2pUXRuPmveSIEtZv
	 Rqxo1cnxMCvpx2OIwpFnn2i3G/iBTz7LB5tteZg63I8OqElgkF6Z6a5LqAfrIdOgcI
	 FeH+P8KJ6c/KGBDdpjrZQJldf3BVbw/HuJEP+X0GRBk8aNB/AefDKu7Y/KP81q5+2m
	 noIBwDN60sntFi4czCTUJ9E2+eY3dVvpPdDXtE37NamLUUxJuQgLaorCEpelaoEQh3
	 46Niovirayeew==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763636990; x=1763897490; i=teddy.astie@vates.tech;
	bh=udBt1y9h/YNLYss5IYUydlCXTo7q/nhKS0HCbYJbk70=;
	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=U9xdiinJwnoWvbrblp0KXhriS0NfFnL43hahC4SMiX32n58gw1KxjCzYgT9EX6UHY
	 vJGRBTB9CGcVeX2f5FJ/AhCVu9NDDKfBtICKnBcBpW02xu9bZdxiGQcEcWxysc9U2Y
	 kYXtmz3AztzCwh9boTRL/6ceUwFOdhryo9BVb8h37GOD8YNcCHxw0RJgeCP9Od9KPD
	 8W1AtsSQPqG8JauG/RGx+5GPnphV7e23dOY6agIa/N0SoR3EFC9ImTadRQ/JiKbF3I
	 L6iiE42TW4tE4SzvMoT3mSCdBXF9SeZcYrJTa0wlBs4hLCAnGT2KN3twpB2sQfqVPL
	 DvyLsCL350dAQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=20v7=2001/14]=20docs/designs:=20Add=20a=20design=20document=20for=20IOMMU=20subsystem=20redesign?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763636986531
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>
Message-Id: <71a207c3a55036a426381bf9ae3020cf56557ba0.1763569135.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1763569135.git.teddy.astie@vates.tech>
References: <cover.1763569135.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.a33abe37a54b40cd96edbc62b21e7e78?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251120:md
Date: Thu, 20 Nov 2025 11:09:50 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Current IOMMU subsystem has some limitations that make PV-IOMMU practically impossible.
One of them is the assumtion that each domain is bound to a single "IOMMU domain", which
also causes complications with quarantine implementation.

Moreover, current IOMMU subsystem is not entirely well-defined, for instance, the behavior
of map_page between ARM SMMUv3 and x86 VT-d/AMD-Vi greatly differs. On ARM, it can modifies
the domain page table while on x86, it may be forbidden (e.g using HAP with PVH), or only
modifying the devices PoV (e.g using PV).

The goal of this redesign is to define more explicitely the behavior and interface of the
IOMMU subsystem while allowing PV-IOMMU to be effectively implemented.

Signed-off-by Teddy Astie <teddy.astie@vates.tech>
---
 docs/designs/iommu-contexts.md | 403 +++++++++++++++++++++++++++++++++
 1 file changed, 403 insertions(+)
 create mode 100644 docs/designs/iommu-contexts.md

diff --git a/docs/designs/iommu-contexts.md b/docs/designs/iommu-contexts.md
new file mode 100644
index 0000000000..d61c5fcde2
--- /dev/null
+++ b/docs/designs/iommu-contexts.md
@@ -0,0 +1,403 @@
+# IOMMU context management in Xen
+
+Status: Experimental
+Revision: 0
+
+# Background
+
+The design for *IOMMU paravirtualization for Dom0* [1] explains that some guests may
+want to access to IOMMU features. In order to implement this in Xen, several adjustments
+needs to be made to the IOMMU subsystem.
+
+This "hardware IOMMU domain" is currently implemented on a per-domain basis such as each
+domain actually has a specific *hardware IOMMU domain*, this design aims to allow a
+single Xen domain to manage several "IOMMU context", and allow some domains (e.g Dom0
+[1]) to modify their IOMMU contexts.
+
+In addition to this, quarantine feature can be refactored into using IOMMU contexts
+to reduce the complexity of platform-specific implementations and ensuring more
+consistency across platforms.
+
+# IOMMU context
+
+We define a "IOMMU context" as being a *hardware IOMMU domain*, but named as a context
+to avoid confusion with Xen domains.
+It represents some hardware-specific data structure that contains mappings from a device
+frame-number to a machine frame-number (e.g using a pagetable) that can be applied to
+a device using IOMMU hardware.
+
+This structure is bound to a Xen domain, but a Xen domain may have several IOMMU context.
+These contexts may be modifiable using the interface as defined in [1] aside some
+specific cases (e.g modifying default context).
+
+This is implemented in Xen as a new structure that will hold context-specific
+data.
+
+```c
+struct iommu_context {
+    u16 id; /* Context id (0 means default context) */
+    struct list_head devices;
+
+    struct arch_iommu_context arch;
+
+    bool opaque; /* context can't be modified nor accessed (e.g HAP) */
+};
+```
+
+A context is identified by a number that is domain-specific and may be used by IOMMU
+users such as PV-IOMMU by the guest.
+
+struct arch_iommu_context is splited from struct arch_iommu
+
+```c
+struct arch_iommu_context
+{
+    spinlock_t pgtables_lock;
+    struct page_list_head pgtables;
+
+    union {
+        /* Intel VT-d */
+        struct {
+            uint64_t pgd_maddr; /* io page directory machine address */
+            domid_t *didmap; /* per-iommu DID */
+            unsigned long *iommu_bitmap; /* bitmap of iommu(s) that the context uses */
+        } vtd;
+        /* AMD IOMMU */
+        struct {
+            struct page_info *root_table;
+        } amd;
+    };
+};
+
+struct arch_iommu
+{
+    spinlock_t mapping_lock; /* io page table lock */
+    struct {
+        struct page_list_head list;
+        spinlock_t lock;
+    } pgtables;
+
+    struct list_head identity_maps;
+
+    union {
+        /* Intel VT-d */
+        struct {
+            /* no more context-specific values */
+            unsigned int agaw; /* adjusted guest address width, 0 is level 2 30-bit */
+        } vtd;
+        /* AMD IOMMU */
+        struct {
+            unsigned int paging_mode;
+            struct guest_iommu *g_iommu;
+        } amd;
+    };
+};
+```
+
+IOMMU context information is now carried by iommu_context rather than being integrated to
+struct arch_iommu.
+
+# Xen domain IOMMU structure
+
+`struct domain_iommu` is modified to allow multiples context within a single Xen domain
+to exist :
+
+```c
+struct iommu_context_list {
+    uint16_t count; /* Context count excluding default context */
+
+    /* if count > 0 */
+
+    uint64_t *bitmap; /* bitmap of context allocation */
+    struct iommu_context *map; /* Map of contexts */
+};
+
+struct domain_iommu {
+    /* ... */
+
+    struct iommu_context default_ctx;
+    struct iommu_context_list other_contexts;
+
+    /* ... */
+}
+```
+
+default_ctx is a special context with id=0 that holds the page table mapping the entire
+domain, which basically preserve the previous behavior. All devices are expected to be
+bound to this context during initialization.
+
+Along with this default context that always exist, we use a pool of contexts that has a
+fixed size at domain initialization, where contexts can be allocated (if possible), and
+have a id matching their position in the map (considering that id != 0).
+These contexts may be used by IOMMU contexts users such as PV-IOMMU or quarantine domain
+(DomIO).
+
+# Platform independent context management interface
+
+A new platform independant interface is introduced in Xen hypervisor to allow
+IOMMU contexts users to create and manage contexts within domains.
+
+```c
+/* Direct context access functions (not supposed to be used directly) */
+struct iommu_context *iommu_get_context(struct domain *d, u16 ctx_id);
+void iommu_put_context(struct iommu_context *ctx);
+
+/* Flag for default context initialization */
+#define IOMMU_CONTEXT_INIT_default (1 << 0)
+
+/* Flag for quarantine contexts (scratch page, DMA Abort mode, ...) */
+#define IOMMU_CONTEXT_INIT_quarantine (1 << 1)
+
+int iommu_context_init(struct domain *d, struct iommu_context *ctx, u16 ctx_id, u32 flags);
+
+/* Flag to specify that devices will need to be reattached to default domain */
+#define IOMMU_TEARDOWN_REATTACH_DEFAULT (1 << 0)
+
+/*
+ * Flag to specify that the context needs to be destroyed preemptively
+ * (multiple calls to iommu_context_teardown will be required)
+ */
+#define IOMMU_TEARDOWN_PREEMPT (1 << 1)
+
+int iommu_context_teardown(struct domain *d, struct iommu_context *ctx, u32 flags);
+
+/* Allocate a new context, uses CONTEXT_INIT flags */
+int iommu_context_alloc(struct domain *d, u16 *ctx_id, u32 flags);
+
+/* Free a context, uses CONTEXT_TEARDOWN flags */
+int iommu_context_free(struct domain *d, u16 ctx_id, u32 flags);
+
+/* Move a device from one context to another, including between different domains. */
+int iommu_reattach_context(struct domain *prev_dom, struct domain *next_dom,
+                           device_t *dev, u16 ctx_id);
+
+/* Add a device to a context for first initialization */
+int iommu_attach_context(struct domain *d, device_t *dev, u16 ctx_id);
+
+/* Remove a device from a context, effectively removing it from the IOMMU. */
+int iommu_detach_context(struct domain *d, device_t *dev);
+```
+
+This interface will use a new interface with drivers to implement these features.
+
+Some existing functions will have a new parameter to specify on what context to do the operation.
+- iommu_map (iommu_legacy_map untouched)
+- iommu_unmap (iommu_legacy_unmap untouched)
+- iommu_lookup_page
+- iommu_iotlb_flush
+
+These functions will modify the iommu_context structure to accomodate with the
+operations applied, these functions will be used to replace some operations previously
+made in the IOMMU driver.
+
+# IOMMU platform_ops interface changes
+
+The IOMMU driver needs to expose a way to create and manage IOMMU contexts, the approach
+taken here is to modify the interface to allow specifying a IOMMU context on operations,
+and at the same time, simplifying the interface by relying more on iommu
+platform-independent code.
+
+Added functions in iommu_ops
+
+```c
+/* Initialize a context (creating page tables, allocating hardware, structures, ...) */
+int (*context_init)(struct domain *d, struct iommu_context *ctx,
+                    u32 flags);
+/* Destroy a context, assumes no device is bound to the context. */
+int (*context_teardown)(struct domain *d, struct iommu_context *ctx,
+                        u32 flags);
+/* Put a device in a context (assumes the device is not attached to another context) */
+int (*attach)(struct domain *d, device_t *dev,
+              struct iommu_context *ctx);
+/* Remove a device from a context, and from the IOMMU. */
+int (*detach)(struct domain *d, device_t *dev,
+              struct iommu_context *prev_ctx);
+/* Move the device from a context to another, including if the new context is in
+   another domain. d corresponds to the target domain. */
+int (*reattach)(struct domain *d, device_t *dev,
+                struct iommu_context *prev_ctx,
+                struct iommu_context *ctx);
+
+#ifdef CONFIG_HAS_PCI
+/* Specific interface for phantom function devices. */
+int (*add_devfn)(struct domain *d, struct pci_dev *pdev, u16 devfn,
+                 struct iommu_context *ctx);
+int (*remove_devfn)(struct domain *d, struct pci_dev *pdev, u16 devfn,
+                    struct iommu_context *ctx);
+#endif
+
+/* Changes in existing to use a specified iommu_context. */
+int __must_check (*map_page)(struct domain *d, dfn_t dfn, mfn_t mfn,
+                             unsigned int flags,
+                             unsigned int *flush_flags,
+                             struct iommu_context *ctx);
+int __must_check (*unmap_page)(struct domain *d, dfn_t dfn,
+                               unsigned int order,
+                               unsigned int *flush_flags,
+                               struct iommu_context *ctx);
+int __must_check (*lookup_page)(struct domain *d, dfn_t dfn, mfn_t *mfn,
+                                unsigned int *flags,
+                                struct iommu_context *ctx);
+
+int __must_check (*iotlb_flush)(struct domain *d,
+                                struct iommu_context *ctx, dfn_t dfn,
+                                unsigned long page_count,
+                                unsigned int flush_flags);
+
+void (*clear_root_pgtable)(struct domain *d, struct iommu_context *ctx);
+```
+
+These functions are redundant with existing functions, therefore, the following functions
+are replaced with new equivalents :
+- quarantine_init : platform-independent code and IOMMU_CONTEXT_INIT_quarantine flag
+- add_device : attach and add_devfn (phantom)
+- assign_device : attach and add_devfn (phantom)
+- remove_device : detach and remove_devfn (phantom)
+- reassign_device : reattach
+
+Some functionnal differences with previous functions, the following should be handled
+by platform-independent/arch-specific code instead of IOMMU driver :
+- identity mappings (unity mappings and rmrr)
+- device list in context and domain
+- domain of a device
+- quarantine
+
+The idea behind this is to implement IOMMU context features while simplifying IOMMU
+drivers implementations and ensuring more consistency between IOMMU drivers.
+
+## Phantom function handling
+
+PCI devices may use additionnal devfn to do DMA operations, in order to support such
+devices, an interface is added to map specific device functions without implying that
+the device is mapped to a new context (that may cause duplicates in Xen data structures).
+
+Functions add_devfn and remove_devfn allows to map a iommu context on specific devfn
+for a pci device, without altering platform-independent data structures.
+
+It is important for the reattach operation to care about these devices, in order
+to prevent devices from being partially reattached to the new context (see XSA-449 [2])
+by using a all-or-nothing approach for reattaching such devices.
+
+# Quarantine refactoring using IOMMU contexts
+
+The quarantine mecanism can be entirely reimplemented using IOMMU context, making
+it simpler, more consistent between platforms,
+
+Quarantine is currently only supported with x86 platforms and works by creating a
+single *hardware IOMMU domain* per quarantined device. All the quarantine logic is
+the implemented in a platform-specific fashion while actually implementing the same
+concepts :
+
+The *hardware IOMMU context* data structures for quarantine are currently stored in
+the device structure itself (using arch_pci_dev) and IOMMU driver needs to care about
+whether we are dealing with quarantine operations or regular operations (often dealt
+using macros such as QUARANTINE_SKIP or DEVICE_PGTABLE).
+
+The page table that will apply on the quarantined device is created reserved device
+regions, and adding mappings to a scratch page if enabled (quarantine=scratch-page).
+
+A new approach we can use is allowing the quarantine domain (DomIO) to manage IOMMU
+contexts, and implement all the quarantine logic using IOMMU contexts.
+
+That way, the quarantine implementation can be platform-independent, thus have a more
+consistent implementation between platforms. It will also allows quarantine to work
+with other IOMMU implementations without having to implement platform-specific behavior.
+Moreover, quarantine operations can be implemented using regular context operations
+instead of relying on driver-specific code.
+
+Quarantine implementation can be summarised as
+
+```c
+int iommu_quarantine_dev_init(device_t *dev)
+{
+    int ret;
+    u16 ctx_id;
+
+    if ( !iommu_quarantine )
+        return -EINVAL;
+
+    ret = iommu_context_alloc(dom_io, &ctx_id, IOMMU_CONTEXT_INIT_quarantine);
+
+    if ( ret )
+        return ret;
+
+    /** TODO: Setup scratch page, mappings... */
+
+    ret = iommu_reattach_context(dev->domain, dom_io, dev, ctx_id);
+
+    if ( ret )
+    {
+        ASSERT(!iommu_context_free(dom_io, ctx_id, 0));
+        return ret;
+    }
+
+    return ret;
+}
+```
+
+# Platform-specific considerations
+
+## Reference counters on target pages
+
+When mapping a guest page onto a IOMMU context, we need to make sure that
+this page is not reused for something else while being actually referenced
+by a IOMMU context. One way of doing it is incrementing the reference counter
+of each target page we map (excluding reserved regions), and decrementing it
+when the mapping isn't used anymore.
+
+One consideration to have is when destroying the context while having existing
+mappings in it. We can walk through the entire page table and decrement the
+reference counter of all mappings. All of that assumes that there is no reserved
+region mapped (which should be the case as a requirement of teardown, or as a
+consequence of REATTACH_DEFAULT flag).
+
+Another consideration is that the "cleanup mappings" operation may take a lot
+of time depending on the complexity of the page table. Making the teardown operation preemptable can allow the hypercall to be preempted if needed also preventing a malicious
+guest from stalling a CPU in a teardown operation with a specially crafted IOMMU
+context (e.g with several 1G superpages).
+
+## Limit the amount of pages IOMMU contexts can use
+
+In order to prevent a (eventually malicious) guest from causing too much allocations
+in Xen, we can enforce limits on the memory the IOMMU subsystem can use for IOMMU context.
+A possible implementation can be to preallocate a reasonably large chunk of memory
+and split it into pages for use by the IOMMU subsystem only for non-default IOMMU
+contexts (e.g PV-IOMMU interface), if this limitation is overcome, some operations
+may fail from the guest side. These limitations shouldn't impact "usual" operations
+of the IOMMU subsystem (e.g default context initialization).
+
+## x86 Architecture
+
+TODO
+
+### Intel VT-d
+
+VT-d uses DID to tag the *IOMMU domain* applied to a device and assumes that all entries
+with the same DID uses the same page table (i.e same IOMMU context).
+Under certain circonstances (e.g DRHD with DID limit below 16-bits), the *DID* is
+transparently converted into a DRHD-specific DID using a map managed internally.
+
+The current implementation of the code reuses the Xen domain_id as DID.
+However, by using multiples IOMMU contexts per domain, we can't use the domain_id for
+contexts (otherwise, different page tables will be mapped with the same DID).
+The following strategy is used :
+- on the default context, reuse the domain_id (the default context is unique per domain)
+- on non-default context, use a id allocated in the pseudo_domid map, (actually used by
+quarantine) which is a DID outside of Xen domain_id range
+
+### AMD-Vi
+
+TODO
+
+## Device-tree platforms
+
+### SMMU and SMMUv3
+
+TODO
+
+* * *
+
+[1] See pv-iommu.md
+
+[2] pci: phantom functions assigned to incorrect contexts
+https://xenbits.xen.org/xsa/advisory-449.html
\ No newline at end of file
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 11:09:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 11:09:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166858.1493295 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2Xz-0001sG-6k; Thu, 20 Nov 2025 11:09:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166858.1493295; Thu, 20 Nov 2025 11:09:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2Xz-0001s1-2M; Thu, 20 Nov 2025 11:09:55 +0000
Received: by outflank-mailman (input) for mailman id 1166858;
 Thu, 20 Nov 2025 11:09: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=4u1Y=54=bounce.vates.tech=bounce-md_30504962.691ef6fe.v1-4085b47ab6ed4a5fa90b0d9e1de06089@srs-se1.protection.inumbo.net>)
 id 1vM2Xx-0001P8-IV
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 11:09:53 +0000
Received: from mail128-17.atl41.mandrillapp.com
 (mail128-17.atl41.mandrillapp.com [198.2.128.17])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6f247af5-c601-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 12:09:51 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4dBwby304dzCf9P1H
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 11:09:50 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 4085b47ab6ed4a5fa90b0d9e1de06089; Thu, 20 Nov 2025 11:09: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: 6f247af5-c601-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763636990; x=1763906990;
	bh=GXinnFzT2Dw3AKOWRX54Rw2tJx5c93LXLNjbjR065W4=;
	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=WXPBYSuj6i52fQ0MfwmD8mPYEN9b6Tpqf1ueyBthSDr7MN8IG9azC4oLv5jy6Of91
	 MBjEOuYUyfAgYeNPB8YkkV1tl5sKJMw8sgvcLE/PrGcAkdT4NQwF/wZjw8E5JY+t89
	 t+lisIROdB+uG2ZOXEdBiiCwy6eQgcbJKzIt+qdoSYHDsVCrCPPYUdOMIiGNrOVHwU
	 bcHGW0aEgviEGe2DgrO4qoMJLBSZl7aBcbbdFZd00AUPHTS2wlfdxxP8xyqVIvsvor
	 xm1oLfcCWQvoah5nMMpbppan7gj+KxYZ3uYsSFfB7k6T/VSQUt4xRYW2cwHnAN21yj
	 adE9qOGRdbvvg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763636990; x=1763897490; i=teddy.astie@vates.tech;
	bh=GXinnFzT2Dw3AKOWRX54Rw2tJx5c93LXLNjbjR065W4=;
	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=b623Ziwa2oYEazPE9+4uSXZCewBvlUHRmm2SNZRrH84fjppf2ayzh8xONsxY9Tnq8
	 sq7rktFs87xKbrBPQu1bgnXi/Uynev7YFZ6vX1WR4hpyId0WHIhOzcKmHvfLrgGQgG
	 ty6KdLtux5puoG643gdLoBs7RYOqZQv0ahFg494fdZBsy3H/64eKmRaujqDtlLC8hY
	 /oT132cLBpJu06njFO1ul6dr4tBHB55pHQP8cB5z7KYm4sWn4I5zEUVaYFDTMTt9C4
	 XgexWm/4j3CxM0b/Ibxj/WxbpduUn33ON9Tr6znikp2yQuwAR8cqs/CHxCide703ce
	 b7LH47aYG25rQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=20v7=2002/14]=20docs/designs:=20Add=20a=20design=20document=20for=20PV-IOMMU?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763636989083
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>
Message-Id: <7d5e25fe9c042e3e58f957c71eb2cdd51b8fc0af.1763569135.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1763569135.git.teddy.astie@vates.tech>
References: <cover.1763569135.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.4085b47ab6ed4a5fa90b0d9e1de06089?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251120:md
Date: Thu, 20 Nov 2025 11:09:50 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Some operating systems want to use IOMMU to implement various features (e.g
VFIO) or DMA protection.
This patch introduce a proposal for IOMMU paravirtualization for Dom0.

Signed-off-by Teddy Astie <teddy.astie@vates.tech>
---
 docs/designs/pv-iommu.md | 118 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 118 insertions(+)
 create mode 100644 docs/designs/pv-iommu.md

diff --git a/docs/designs/pv-iommu.md b/docs/designs/pv-iommu.md
new file mode 100644
index 0000000000..d2f708b3e8
--- /dev/null
+++ b/docs/designs/pv-iommu.md
@@ -0,0 +1,118 @@
+# IOMMU paravirtualization for Dom0
+
+Status: Experimental
+
+# Background
+
+By default, Xen only uses the IOMMU for itself, either to make device address
+space coherent with guest address space (x86 HVM/PVH) or to prevent devices
+from doing DMA outside it's expected memory regions including the hypervisor
+(x86 PV).
+
+A limitation is that guests (especially privileged ones) may want to use
+IOMMU hardware in order to implement features such as DMA protection and
+VFIO [1] as IOMMU functionality is not available outside of the hypervisor
+currently.
+
+[1] VFIO - "Virtual Function I/O" - https://www.kernel.org/doc/html/latest/driver-api/vfio.html
+
+# Design
+
+The operating system may want to have access to various IOMMU features such as
+context management and DMA remapping. We can create a new hypercall that allows
+the guest to have access to a new paravirtualized IOMMU interface.
+
+This feature is only meant to be available for the Dom0, as DomU have some
+emulated devices that can't be managed on Xen side and are not hardware, we
+can't rely on the hardware IOMMU to enforce DMA remapping.
+
+This interface is exposed under the `iommu_op` hypercall.
+
+In addition, Xen domains are modified in order to allow existence of several
+IOMMU context including a default one that implement default behavior (e.g
+hardware assisted paging) and can't be modified by guest. DomU cannot have
+contexts, and therefore act as if they only have the default domain.
+
+Each IOMMU context within a Xen domain is identified using a domain-specific
+context number that is used in the Xen IOMMU subsystem and the hypercall
+interface.
+
+The number of IOMMU context a domain is specified by either the toolstack or
+the domain itself.
+
+# IOMMU operations
+
+## Initialize PV-IOMMU
+
+Initialize PV-IOMMU for the domain.
+It can only be called once.
+
+## Alloc context
+
+Create a new IOMMU context for the guest and return the context number to the
+guest.
+Fail if the IOMMU context limit of the guest is reached.
+
+A flag can be specified to create a identity mapping.
+
+## Free context
+
+Destroy a IOMMU context created previously.
+It is not possible to free the default context.
+
+Reattach context devices to default context if specified by the guest.
+
+Fail if there is a device in the context and reattach-to-default flag is not
+specified.
+
+## Reattach device
+
+Reattach a device to another IOMMU context (including the default one).
+The target IOMMU context number must be valid and the context allocated.
+
+The guest needs to specify a PCI SBDF of a device he has access to.
+
+## Map/unmap page
+
+Map/unmap a page on a context.
+The guest needs to specify a gfn and target dfn to map.
+
+Refuse to create the mapping if one already exist for the same dfn.
+
+## Lookup page
+
+Get the gfn mapped by a specific dfn.
+
+## Remote command
+
+Make a PV-IOMMU operation on behalf of another domain.
+Especially useful for implementing IOMMU emulation (e.g using QEMU)
+or initializing PV-IOMMU with enforced limits.
+
+# Implementation considerations
+
+## Hypercall batching
+
+In order to prevent unneeded hypercalls and IOMMU flushing, it is advisable to
+be able to batch some critical IOMMU operations (e.g map/unmap multiple pages).
+These batched operations should be preemptable/abortable to prevent a large
+map/unmap to block execution forever.
+
+## Hardware without IOMMU support
+
+Operating system needs to be aware on PV-IOMMU capability, and whether it is
+able to make contexts. However, some operating system may critically fail in
+case they are able to make a new IOMMU context. Which is supposed to happen
+if no IOMMU hardware is available.
+
+The hypercall interface needs a interface to advertise the ability to create
+and manage IOMMU contexts including the amount of context the guest is able
+to use. Using these informations, the Dom0 may decide whether to use or not
+the PV-IOMMU interface.
+
+## Page pool for contexts
+
+In order to prevent unexpected starving on the hypervisor memory with a
+buggy Dom0. We can preallocate the pages the contexts will use and make
+map/unmap use these pages instead of allocating them dynamically.
+
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 11:09:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 11:09:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166859.1493305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2Y0-00027r-JL; Thu, 20 Nov 2025 11:09:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166859.1493305; Thu, 20 Nov 2025 11:09:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2Y0-00027k-Fg; Thu, 20 Nov 2025 11:09:56 +0000
Received: by outflank-mailman (input) for mailman id 1166859;
 Thu, 20 Nov 2025 11:09: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=58Zc=54=bounce.vates.tech=bounce-md_30504962.691ef6ff.v1-fe5580723b8f4641a8a2c0f50e1932a1@srs-se1.protection.inumbo.net>)
 id 1vM2Xy-0001P8-IV
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 11:09:54 +0000
Received: from mail180-15.suw31.mandrillapp.com
 (mail180-15.suw31.mandrillapp.com [198.2.180.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6fc724a0-c601-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 12:09:52 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-15.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4dBwbz373YzPm0r8t
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 11:09:51 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 fe5580723b8f4641a8a2c0f50e1932a1; Thu, 20 Nov 2025 11:09: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: 6fc724a0-c601-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763636991; x=1763906991;
	bh=0H4/bqjY8W+k0exa1sAH31qgAUJ6pXe42xKLfYS+xWo=;
	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=msYCO4HDWTM4iOOo+eFWbNxDT82rYCtfdYEvQfVgVOCJV9n7znv9NJ1+IgHVhCX7E
	 tCUbVz57CmWUWs1bpXljd3Ja0ca0TLjBfGr8fMvDssV8LfKy7+Zb2ex9SFyLlTLf6X
	 5fhePPQtGpX3DN/IkOQUZMX+s3c3GOLs+HSDmHAUFzAudDsUuxQ0Smruu5mc7HO5c2
	 TTAiqOjk8PSYf/RRLNHFvWuiapGPuD2YTGLEVh2tKhTS7c2ectr1YQvrFtmJt4S/yr
	 2p2Zdo4LnnqfnUXW4CdXzTBHEAcxIXql+St5R3THqUTJB7ZK73qIaeKVRMyqKAczkG
	 stogBT6ui+FwQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763636991; x=1763897491; i=teddy.astie@vates.tech;
	bh=0H4/bqjY8W+k0exa1sAH31qgAUJ6pXe42xKLfYS+xWo=;
	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=0opB1cZySE3tmA0dy/XBB/lebquNL1ppesV6JdpjFMgRKk3XHIEmANUqCkxgRjCpq
	 FhWgUtTh4LT9h/d53avQoATekE4Xegjpf3qDXS1R3UX9BwCo4fu3wu/UFM3hhRWMSw
	 RZXyDn3TarmIHQeyW+7shTNyOvjF+7EtIQqEBmY4D3I/YXuBI1J0REN+z1yRa9NzS1
	 p7UAszszIReUtoAQ2bMGy96TWegb9MOZhZswd1Pf1TN1neExSKxAtbrsP6cnqmOw1L
	 ShygmRhsVnCYDXNjAomEghJYoAOpxdTeXxU7NOxp6QyQ0pkFBr9/rpEfzGoPzy5ckb
	 wgGzajGgBMjYQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=20v7=2003/14]=20x86/domain:=20Defer=20domain=20iommu=20initialization.?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763636990528
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <c4a81e284ec202a34b8e983679dead4dc2ae248a.1763569135.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1763569135.git.teddy.astie@vates.tech>
References: <cover.1763569135.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.fe5580723b8f4641a8a2c0f50e1932a1?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251120:md
Date: Thu, 20 Nov 2025 11:09:51 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

For the IOMMU redesign, the iommu context pagetable is defined once during
initialization. When reusing P2M pagetable, we want to ensure that this
pagetable is properly initialized.

Signed-off-by Teddy Astie <teddy.astie@vates.tech>
---
 xen/arch/x86/domain.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 66b7412b87..393b0fe27c 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -927,9 +927,6 @@ int arch_domain_create(struct domain *d,
     if ( (rc = init_domain_irq_mapping(d)) != 0 )
         goto fail;
 
-    if ( (rc = iommu_domain_init(d, config->iommu_opts)) != 0 )
-        goto fail;
-
     psr_domain_init(d);
 
     if ( is_hvm_domain(d) )
@@ -948,6 +945,9 @@ int arch_domain_create(struct domain *d,
     else
         ASSERT_UNREACHABLE(); /* Not HVM and not PV? */
 
+    if ( (rc = iommu_domain_init(d, config->iommu_opts)) != 0 )
+        goto fail;
+
     if ( (rc = tsc_set_info(d, XEN_CPUID_TSC_MODE_DEFAULT, 0, 0, 0)) != 0 )
     {
         ASSERT_UNREACHABLE();
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 11:09:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 11:09:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166860.1493310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2Y0-0002BU-Ug; Thu, 20 Nov 2025 11:09:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166860.1493310; Thu, 20 Nov 2025 11:09:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2Y0-00029l-Mc; Thu, 20 Nov 2025 11:09:56 +0000
Received: by outflank-mailman (input) for mailman id 1166860;
 Thu, 20 Nov 2025 11:09: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=RiGt=54=bounce.vates.tech=bounce-md_30504962.691ef701.v1-c591c0d02f5f4ae3bf67e9fd997ea28c@srs-se1.protection.inumbo.net>)
 id 1vM2Xy-0001PI-SG
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 11:09:55 +0000
Received: from mail128-17.atl41.mandrillapp.com
 (mail128-17.atl41.mandrillapp.com [198.2.128.17])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 708bc95d-c601-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 12:09:53 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4dBwc11tHszCf9PNj
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 11:09:53 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c591c0d02f5f4ae3bf67e9fd997ea28c; Thu, 20 Nov 2025 11:09: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: 708bc95d-c601-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763636993; x=1763906993;
	bh=5zrLUSwtaWCuG9JklxWOwKUmXJhYA8DPaKHZ66yozag=;
	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=HrGu7jm+0LDV1JZYyFafXewadLTw7yBpPPLBklcq7b4xt5ZZjmsb03EkQUSP+ffOl
	 1rQ6sO9eoe0x7MVG+Y06N9zI0/DVjFv8FyWKq8m1T4P6xuo5IWgsQ4qYNWJciyjzLY
	 2SDVqmGqLbkJWTs70a5rORc30MOmWtizhYOen0rGODQXATV5R2N8H7tm2PW4p4i+cP
	 I92pAK3NrY/Ei8nt9HNxllBVIy9VQnZJPAxJQUYznYODZTonTkAwf2N8sF5+V2yAOy
	 SzExvyPQTyppBJA/8HykmDSuV6px/4hE08JL57sMfDBWuB01Pkrr6SnP87nKu60mrC
	 CaL8Rn3CV9Qtw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763636993; x=1763897493; i=teddy.astie@vates.tech;
	bh=5zrLUSwtaWCuG9JklxWOwKUmXJhYA8DPaKHZ66yozag=;
	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=J5bo9HACs9XG2cYzarHIItH8XKtgFLm6tqC1cN9rT5scjrzr7Oi6hrpBbowpAEVdL
	 bVsh5nByNjcLxTF4GcX+S76InxHM6gv5TPsRTrum/ZDI2m3RGqtsX5Z//yzjR+Ytp4
	 FLg8zuPuI32qt6xKWQZQRLj1FNUMIrreEaQdpCbiq3allXi5YqE/vuwb3v6QhWfOyb
	 5uOn9Zvkl/W4mHjbweebCcazvebEo/0vw2hSoLyI10HHH01vOuxVNimYuwD+D3Ox4p
	 AATtpx3P2h3p8FUzPfkBcCSMgIFJy4k2Z3x78FghSAr380DiyidXgnGXCWX5cpByyk
	 RmnJ9rvEbrLSQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=20v7=2004/14]=20iommu:=20Move=20IOMMU=20domain=20related=20structures=20to=20(arch=5F)iommu=5Fcontext?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763636992337
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Stefano Stabellini" <sstabellini@kernel.org>, "Julien Grall" <julien@xen.org>, "Bertrand Marquis" <bertrand.marquis@arm.com>, "Michal Orzel" <michal.orzel@amd.com>, "Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>, "Timothy Pearson" <tpearson@raptorengineering.com>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Lukasz Hawrylko" <lukasz@hawrylko.pl>, "Daniel P. Smith" <dpsmith@apertussolutions.com>, "=?utf-8?Q?Mateusz=20M=C3=B3wka?=" <mateusz.mowka@intel.com>, "Jason Andryuk" <jason.andryuk@amd.com>
Message-Id: <af6217ef3ce355cc873fd7aca128fb12feea3e55.1763569135.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1763569135.git.teddy.astie@vates.tech>
References: <cover.1763569135.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.c591c0d02f5f4ae3bf67e9fd997ea28c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251120:md
Date: Thu, 20 Nov 2025 11:09:53 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Preparatory work for IOMMU redesign.

Introduce a new structure (arch_)iommu_context that will hold all
per-IOMMU context related informations for the IOMMU drivers.

Signed-off-by Teddy Astie <teddy.astie@vates.tech>
---
 xen/arch/arm/include/asm/iommu.h            |   4 +
 xen/arch/ppc/include/asm/iommu.h            |   3 +
 xen/arch/x86/domain.c                       |   4 +-
 xen/arch/x86/include/asm/iommu.h            |  50 +++--
 xen/arch/x86/tboot.c                        |   3 +-
 xen/drivers/passthrough/amd/iommu.h         |   5 +-
 xen/drivers/passthrough/amd/iommu_init.c    |   6 +-
 xen/drivers/passthrough/amd/iommu_map.c     | 102 +++++-----
 xen/drivers/passthrough/amd/pci_amd_iommu.c |  81 ++++----
 xen/drivers/passthrough/iommu.c             |   6 +
 xen/drivers/passthrough/vtd/extern.h        |   4 +-
 xen/drivers/passthrough/vtd/iommu.c         | 206 +++++++++++---------
 xen/drivers/passthrough/vtd/quirks.c        |   3 +-
 xen/drivers/passthrough/x86/iommu.c         |  62 +++---
 xen/include/xen/iommu.h                     |  10 +
 15 files changed, 318 insertions(+), 231 deletions(-)

diff --git a/xen/arch/arm/include/asm/iommu.h b/xen/arch/arm/include/asm/iommu.h
index ad15477e24..41fc676db6 100644
--- a/xen/arch/arm/include/asm/iommu.h
+++ b/xen/arch/arm/include/asm/iommu.h
@@ -20,6 +20,10 @@ struct arch_iommu
     void *priv;
 };
 
+struct arch_iommu_context
+{
+};
+
 const struct iommu_ops *iommu_get_ops(void);
 void iommu_set_ops(const struct iommu_ops *ops);
 
diff --git a/xen/arch/ppc/include/asm/iommu.h b/xen/arch/ppc/include/asm/iommu.h
index 024ead3473..8367505de2 100644
--- a/xen/arch/ppc/include/asm/iommu.h
+++ b/xen/arch/ppc/include/asm/iommu.h
@@ -5,4 +5,7 @@
 struct arch_iommu {
 };
 
+struct arch_iommu_context {
+};
+
 #endif /* __ASM_PPC_IOMMU_H__ */
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 393b0fe27c..35abbfcc82 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -665,7 +665,7 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
     if ( nested_virt && !hvm_nested_virt_supported() )
     {
         dprintk(XENLOG_INFO, "Nested virt requested but not available\n");
-        return -EINVAL;        
+        return -EINVAL;
     }
 
     if ( nested_virt && !hap )
@@ -2498,7 +2498,7 @@ int domain_relinquish_resources(struct domain *d)
 
     PROGRESS(iommu_pagetables):
 
-        ret = iommu_free_pgtables(d);
+        ret = iommu_free_pgtables(d, iommu_default_context(d));
         if ( ret )
             return ret;
 
diff --git a/xen/arch/x86/include/asm/iommu.h b/xen/arch/x86/include/asm/iommu.h
index 8dc464fbd3..94513ba9dc 100644
--- a/xen/arch/x86/include/asm/iommu.h
+++ b/xen/arch/x86/include/asm/iommu.h
@@ -31,22 +31,21 @@ typedef uint64_t daddr_t;
 #define dfn_to_daddr(dfn) __dfn_to_daddr(dfn_x(dfn))
 #define daddr_to_dfn(daddr) _dfn(__daddr_to_dfn(daddr))
 
-struct arch_iommu
-{
-    spinlock_t mapping_lock; /* io page table lock */
-    struct {
-        struct page_list_head list;
-        spinlock_t lock;
-    } pgtables;
+struct iommu_context;
 
+struct arch_iommu_context
+{
+    struct page_list_head pgtables;
     struct list_head identity_maps;
 
+
+    spinlock_t mapping_lock; /* io page table lock */
+
     union {
         /* Intel VT-d */
         struct {
             uint64_t pgd_maddr; /* io page directory machine address */
-            unsigned int agaw; /* adjusted guest address width, 0 is level 2 30-bit */
-            unsigned long *iommu_bitmap; /* bitmap of iommu(s) that the domain uses */
+            unsigned long *iommu_bitmap; /* bitmap of iommu(s) that the context uses */
         } vtd;
         /* AMD IOMMU */
         struct {
@@ -56,6 +55,24 @@ struct arch_iommu
     };
 };
 
+struct arch_iommu
+{
+    /* Queue for freeing pages */
+    struct page_list_head free_queue;
+
+    union {
+        /* Intel VT-d */
+        struct {
+            unsigned int agaw; /* adjusted guest address width, 0 is level 2 30-bit */
+        } vtd;
+        /* AMD IOMMU */
+        struct {
+            unsigned int paging_mode;
+            struct guest_iommu *g_iommu;
+        };
+    };
+};
+
 extern struct iommu_ops iommu_ops;
 
 # include <asm/alternative.h>
@@ -109,10 +126,10 @@ static inline void iommu_disable_x2apic(void)
         iommu_vcall(&iommu_ops, disable_x2apic);
 }
 
-int iommu_identity_mapping(struct domain *d, p2m_access_t p2ma,
-                           paddr_t base, paddr_t end,
+int iommu_identity_mapping(struct domain *d, struct iommu_context *ctx,
+                           p2m_access_t p2ma, paddr_t base, paddr_t end,
                            unsigned int flag);
-void iommu_identity_map_teardown(struct domain *d);
+void iommu_identity_map_teardown(struct domain *d, struct iommu_context *ctx);
 
 extern bool untrusted_msi;
 
@@ -128,14 +145,19 @@ unsigned long *iommu_init_domid(domid_t reserve);
 domid_t iommu_alloc_domid(unsigned long *map);
 void iommu_free_domid(domid_t domid, unsigned long *map);
 
-int __must_check iommu_free_pgtables(struct domain *d);
+int __must_check iommu_free_pgtables(struct domain *d, struct iommu_context *ctx);
 struct domain_iommu;
 struct page_info *__must_check iommu_alloc_pgtable(struct domain_iommu *hd,
+                                                   struct iommu_context *ctx,
                                                    uint64_t contig_mask);
-void iommu_queue_free_pgtable(struct domain_iommu *hd, struct page_info *pg);
+void iommu_queue_free_pgtable(struct domain *d, struct iommu_context *ctx,
+                              struct page_info *pg);
 
 /* Check [start, end] unity map range for correctness. */
 bool iommu_unity_region_ok(const char *prefix, mfn_t start, mfn_t end);
+int arch_iommu_context_init(struct domain *d, struct iommu_context *ctx, u32 flags);
+int arch_iommu_context_teardown(struct domain *d, struct iommu_context *ctx, u32 flags);
+int arch_iommu_flush_free_queue(struct domain *d);
 
 #endif /* !__ARCH_X86_IOMMU_H__ */
 /*
diff --git a/xen/arch/x86/tboot.c b/xen/arch/x86/tboot.c
index 9d9bb6e7cf..ecc0666334 100644
--- a/xen/arch/x86/tboot.c
+++ b/xen/arch/x86/tboot.c
@@ -222,7 +222,8 @@ static void tboot_gen_domain_integrity(const uint8_t key[TB_KEY_SIZE],
         {
             const struct domain_iommu *dio = dom_iommu(d);
 
-            update_iommu_mac(&ctx, dio->arch.vtd.pgd_maddr,
+            update_iommu_mac(&ctx,
+                             iommu_default_context(d)->arch.vtd.pgd_maddr,
                              agaw_to_level(dio->arch.vtd.agaw));
         }
     }
diff --git a/xen/drivers/passthrough/amd/iommu.h b/xen/drivers/passthrough/amd/iommu.h
index 52f748310b..4938cc38ed 100644
--- a/xen/drivers/passthrough/amd/iommu.h
+++ b/xen/drivers/passthrough/amd/iommu.h
@@ -26,6 +26,7 @@
 #include <xen/tasklet.h>
 #include <xen/sched.h>
 #include <xen/domain_page.h>
+#include <xen/iommu.h>
 
 #include <asm/msi.h>
 #include <asm/apicdef.h>
@@ -199,10 +200,10 @@ int __must_check cf_check amd_iommu_unmap_page(
     struct domain *d, dfn_t dfn, unsigned int order,
     unsigned int *flush_flags);
 int __must_check amd_iommu_alloc_root(struct domain *d);
-int amd_iommu_reserve_domain_unity_map(struct domain *d,
+int amd_iommu_reserve_domain_unity_map(struct domain *d, struct iommu_context *ctx,
                                        const struct ivrs_unity_map *map,
                                        unsigned int flag);
-int amd_iommu_reserve_domain_unity_unmap(struct domain *d,
+int amd_iommu_reserve_domain_unity_unmap(struct domain *d, struct iommu_context *ctx,
                                          const struct ivrs_unity_map *map);
 int cf_check amd_iommu_get_reserved_device_memory(
     iommu_grdm_t *func, void *ctxt);
diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index 00d2c46cbc..56b5c2c6ec 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -608,7 +608,6 @@ static void iommu_check_event_log(struct amd_iommu *iommu)
                    sizeof(event_entry_t), parse_event_log_entry);
 
     spin_lock_irqsave(&iommu->lock, flags);
-    
     /* Check event overflow. */
     entry = readl(iommu->mmio_base + IOMMU_STATUS_MMIO_OFFSET);
     if ( entry & IOMMU_STATUS_EVENT_LOG_OVERFLOW )
@@ -664,9 +663,8 @@ static void iommu_check_ppr_log(struct amd_iommu *iommu)
 
     iommu_read_log(iommu, &iommu->ppr_log,
                    sizeof(ppr_entry_t), parse_ppr_log_entry);
-    
-    spin_lock_irqsave(&iommu->lock, flags);
 
+    spin_lock_irqsave(&iommu->lock, flags);
     /* Check event overflow. */
     entry = readl(iommu->mmio_base + IOMMU_STATUS_MMIO_OFFSET);
     if ( entry & IOMMU_STATUS_PPR_LOG_OVERFLOW )
@@ -1595,7 +1593,7 @@ void cf_check amd_iommu_resume(void)
     for_each_amd_iommu ( iommu )
     {
        /*
-        * To make sure that iommus have not been touched 
+        * To make sure that iommus have not been touched
         * before re-enablement
         */
         disable_iommu(iommu);
diff --git a/xen/drivers/passthrough/amd/iommu_map.c b/xen/drivers/passthrough/amd/iommu_map.c
index 320a2dc64c..81a63cce8e 100644
--- a/xen/drivers/passthrough/amd/iommu_map.c
+++ b/xen/drivers/passthrough/amd/iommu_map.c
@@ -18,6 +18,7 @@
  */
 
 #include <xen/acpi.h>
+#include <xen/iommu.h>
 
 #include "iommu.h"
 
@@ -264,9 +265,9 @@ void __init iommu_dte_add_device_entry(struct amd_iommu_dte *dte,
  * {Re, un}mapping super page frames causes re-allocation of io
  * page tables.
  */
-static int iommu_pde_from_dfn(struct domain *d, unsigned long dfn,
-                              unsigned int target, unsigned long *pt_mfn,
-                              unsigned int *flush_flags, bool map)
+static int iommu_pde_from_dfn(struct domain *d, struct iommu_context *ctx,
+                              unsigned long dfn, unsigned int target,
+                              unsigned long *pt_mfn, unsigned int *flush_flags, bool map)
 {
     union amd_iommu_pte *pde, *next_table_vaddr;
     unsigned long  next_table_mfn;
@@ -274,8 +275,8 @@ static int iommu_pde_from_dfn(struct domain *d, unsigned long dfn,
     struct page_info *table;
     struct domain_iommu *hd = dom_iommu(d);
 
-    table = hd->arch.amd.root_table;
-    level = hd->arch.amd.paging_mode;
+    table = ctx->arch.amd.root_table;
+    level = ctx->arch.amd.paging_mode;
 
     if ( !table || target < 1 || level < target || level > 6 )
     {
@@ -311,7 +312,7 @@ static int iommu_pde_from_dfn(struct domain *d, unsigned long dfn,
             mfn = next_table_mfn;
 
             /* allocate lower level page table */
-            table = iommu_alloc_pgtable(hd, IOMMU_PTE_CONTIG_MASK);
+            table = iommu_alloc_pgtable(hd, ctx, IOMMU_PTE_CONTIG_MASK);
             if ( table == NULL )
             {
                 AMD_IOMMU_ERROR("cannot allocate I/O page table\n");
@@ -346,7 +347,7 @@ static int iommu_pde_from_dfn(struct domain *d, unsigned long dfn,
 
             if ( next_table_mfn == 0 )
             {
-                table = iommu_alloc_pgtable(hd, IOMMU_PTE_CONTIG_MASK);
+                table = iommu_alloc_pgtable(hd, ctx, IOMMU_PTE_CONTIG_MASK);
                 if ( table == NULL )
                 {
                     AMD_IOMMU_ERROR("cannot allocate I/O page table\n");
@@ -376,7 +377,8 @@ static int iommu_pde_from_dfn(struct domain *d, unsigned long dfn,
     return 0;
 }
 
-static void queue_free_pt(struct domain_iommu *hd, mfn_t mfn, unsigned int level)
+static void queue_free_pt(struct domain *d, struct iommu_context *ctx, mfn_t mfn,
+                          unsigned int level)
 {
     if ( level > 1 )
     {
@@ -387,13 +389,13 @@ static void queue_free_pt(struct domain_iommu *hd, mfn_t mfn, unsigned int level
             if ( pt[i].pr && pt[i].next_level )
             {
                 ASSERT(pt[i].next_level < level);
-                queue_free_pt(hd, _mfn(pt[i].mfn), pt[i].next_level);
+                queue_free_pt(d, ctx, _mfn(pt[i].mfn), pt[i].next_level);
             }
 
         unmap_domain_page(pt);
     }
 
-    iommu_queue_free_pgtable(hd, mfn_to_page(mfn));
+    iommu_queue_free_pgtable(d, ctx, mfn_to_page(mfn));
 }
 
 int cf_check amd_iommu_map_page(
@@ -401,6 +403,7 @@ int cf_check amd_iommu_map_page(
     unsigned int *flush_flags)
 {
     struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx = iommu_default_context(d);
     unsigned int level = (IOMMUF_order(flags) / PTE_PER_TABLE_SHIFT) + 1;
     bool contig;
     int rc;
@@ -410,7 +413,7 @@ int cf_check amd_iommu_map_page(
     ASSERT((hd->platform_ops->page_sizes >> IOMMUF_order(flags)) &
            PAGE_SIZE_4K);
 
-    spin_lock(&hd->arch.mapping_lock);
+    spin_lock(&ctx->arch.mapping_lock);
 
     /*
      * IOMMU mapping request can be safely ignored when the domain is dying.
@@ -420,24 +423,24 @@ int cf_check amd_iommu_map_page(
      */
     if ( d->is_dying )
     {
-        spin_unlock(&hd->arch.mapping_lock);
+        spin_unlock(&ctx->arch.mapping_lock);
         return 0;
     }
 
     rc = amd_iommu_alloc_root(d);
     if ( rc )
     {
-        spin_unlock(&hd->arch.mapping_lock);
+        spin_unlock(&ctx->arch.mapping_lock);
         AMD_IOMMU_ERROR("root table alloc failed, dfn = %"PRI_dfn"\n",
                         dfn_x(dfn));
         domain_crash(d);
         return rc;
     }
 
-    if ( iommu_pde_from_dfn(d, dfn_x(dfn), level, &pt_mfn, flush_flags, true) ||
+    if ( iommu_pde_from_dfn(d, ctx, dfn_x(dfn), level, &pt_mfn, flush_flags, true) ||
          !pt_mfn )
     {
-        spin_unlock(&hd->arch.mapping_lock);
+        spin_unlock(&ctx->arch.mapping_lock);
         AMD_IOMMU_ERROR("invalid IO pagetable entry dfn = %"PRI_dfn"\n",
                         dfn_x(dfn));
         domain_crash(d);
@@ -449,12 +452,12 @@ int cf_check amd_iommu_map_page(
                                 flags & IOMMUF_writable,
                                 flags & IOMMUF_readable, &contig);
 
-    while ( unlikely(contig) && ++level < hd->arch.amd.paging_mode )
+    while ( unlikely(contig) && ++level < ctx->arch.amd.paging_mode )
     {
         struct page_info *pg = mfn_to_page(_mfn(pt_mfn));
         unsigned long next_mfn;
 
-        if ( iommu_pde_from_dfn(d, dfn_x(dfn), level, &pt_mfn, flush_flags,
+        if ( iommu_pde_from_dfn(d, ctx, dfn_x(dfn), level, &pt_mfn, flush_flags,
                                 false) )
             BUG();
         BUG_ON(!pt_mfn);
@@ -464,11 +467,11 @@ int cf_check amd_iommu_map_page(
                               flags & IOMMUF_writable,
                               flags & IOMMUF_readable, &contig);
         *flush_flags |= IOMMU_FLUSHF_modified | IOMMU_FLUSHF_all;
-        iommu_queue_free_pgtable(hd, pg);
+        iommu_queue_free_pgtable(d, ctx, pg);
         perfc_incr(iommu_pt_coalesces);
     }
 
-    spin_unlock(&hd->arch.mapping_lock);
+    spin_unlock(&ctx->arch.mapping_lock);
 
     *flush_flags |= IOMMU_FLUSHF_added;
     if ( old.pr )
@@ -476,7 +479,7 @@ int cf_check amd_iommu_map_page(
         *flush_flags |= IOMMU_FLUSHF_modified;
 
         if ( IOMMUF_order(flags) && old.next_level )
-            queue_free_pt(hd, _mfn(old.mfn), old.next_level);
+            queue_free_pt(d, ctx, _mfn(old.mfn), old.next_level);
     }
 
     return 0;
@@ -487,6 +490,7 @@ int cf_check amd_iommu_unmap_page(
 {
     unsigned long pt_mfn = 0;
     struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx = iommu_default_context(d);
     unsigned int level = (order / PTE_PER_TABLE_SHIFT) + 1;
     union amd_iommu_pte old = {};
 
@@ -496,17 +500,17 @@ int cf_check amd_iommu_unmap_page(
      */
     ASSERT((hd->platform_ops->page_sizes >> order) & PAGE_SIZE_4K);
 
-    spin_lock(&hd->arch.mapping_lock);
+    spin_lock(&ctx->arch.mapping_lock);
 
-    if ( !hd->arch.amd.root_table )
+    if ( !ctx->arch.amd.root_table )
     {
-        spin_unlock(&hd->arch.mapping_lock);
+        spin_unlock(&ctx->arch.mapping_lock);
         return 0;
     }
 
-    if ( iommu_pde_from_dfn(d, dfn_x(dfn), level, &pt_mfn, flush_flags, false) )
+    if ( iommu_pde_from_dfn(d, ctx, dfn_x(dfn), level, &pt_mfn, flush_flags, false) )
     {
-        spin_unlock(&hd->arch.mapping_lock);
+        spin_unlock(&ctx->arch.mapping_lock);
         AMD_IOMMU_ERROR("invalid IO pagetable entry dfn = %"PRI_dfn"\n",
                         dfn_x(dfn));
         domain_crash(d);
@@ -520,30 +524,30 @@ int cf_check amd_iommu_unmap_page(
         /* Mark PTE as 'page not present'. */
         old = clear_iommu_pte_present(pt_mfn, dfn_x(dfn), level, &free);
 
-        while ( unlikely(free) && ++level < hd->arch.amd.paging_mode )
+        while ( unlikely(free) && ++level < ctx->arch.amd.paging_mode )
         {
             struct page_info *pg = mfn_to_page(_mfn(pt_mfn));
 
-            if ( iommu_pde_from_dfn(d, dfn_x(dfn), level, &pt_mfn,
+            if ( iommu_pde_from_dfn(d, ctx, dfn_x(dfn), level, &pt_mfn,
                                     flush_flags, false) )
                 BUG();
             BUG_ON(!pt_mfn);
 
             clear_iommu_pte_present(pt_mfn, dfn_x(dfn), level, &free);
             *flush_flags |= IOMMU_FLUSHF_all;
-            iommu_queue_free_pgtable(hd, pg);
+            iommu_queue_free_pgtable(d, ctx, pg);
             perfc_incr(iommu_pt_coalesces);
         }
     }
 
-    spin_unlock(&hd->arch.mapping_lock);
+    spin_unlock(&ctx->arch.mapping_lock);
 
     if ( old.pr )
     {
         *flush_flags |= IOMMU_FLUSHF_modified;
 
         if ( order && old.next_level )
-            queue_free_pt(hd, _mfn(old.mfn), old.next_level);
+            queue_free_pt(d, ctx, _mfn(old.mfn), old.next_level);
     }
 
     return 0;
@@ -646,7 +650,7 @@ int cf_check amd_iommu_flush_iotlb_pages(
     return 0;
 }
 
-int amd_iommu_reserve_domain_unity_map(struct domain *d,
+int amd_iommu_reserve_domain_unity_map(struct domain *d, struct iommu_context *ctx,
                                        const struct ivrs_unity_map *map,
                                        unsigned int flag)
 {
@@ -664,14 +668,14 @@ int amd_iommu_reserve_domain_unity_map(struct domain *d,
         if ( map->write )
             p2ma |= p2m_access_w;
 
-        rc = iommu_identity_mapping(d, p2ma, map->addr,
+        rc = iommu_identity_mapping(d, ctx, p2ma, map->addr,
                                     map->addr + map->length - 1, flag);
     }
 
     return rc;
 }
 
-int amd_iommu_reserve_domain_unity_unmap(struct domain *d,
+int amd_iommu_reserve_domain_unity_unmap(struct domain *d, struct iommu_context *ctx,
                                          const struct ivrs_unity_map *map)
 {
     int rc;
@@ -681,7 +685,7 @@ int amd_iommu_reserve_domain_unity_unmap(struct domain *d,
 
     for ( rc = 0; map; map = map->next )
     {
-        int ret = iommu_identity_mapping(d, p2m_access_x, map->addr,
+        int ret = iommu_identity_mapping(d, ctx, p2m_access_x, map->addr,
                                          map->addr + map->length - 1, 0);
 
         if ( ret && ret != -ENOENT && !rc )
@@ -771,6 +775,7 @@ static int fill_qpt(union amd_iommu_pte *this, unsigned int level,
                     struct page_info *pgs[IOMMU_MAX_PT_LEVELS])
 {
     struct domain_iommu *hd = dom_iommu(dom_io);
+    struct iommu_context *ctx = iommu_default_context(dom_io);
     unsigned int i;
     int rc = 0;
 
@@ -787,7 +792,7 @@ static int fill_qpt(union amd_iommu_pte *this, unsigned int level,
                  * page table pages, and the resulting allocations are always
                  * zeroed.
                  */
-                pgs[level] = iommu_alloc_pgtable(hd, 0);
+                pgs[level] = iommu_alloc_pgtable(hd, ctx, 0);
                 if ( !pgs[level] )
                 {
                     rc = -ENOMEM;
@@ -823,14 +828,15 @@ static int fill_qpt(union amd_iommu_pte *this, unsigned int level,
 int cf_check amd_iommu_quarantine_init(struct pci_dev *pdev, bool scratch_page)
 {
     struct domain_iommu *hd = dom_iommu(dom_io);
-    unsigned int level = hd->arch.amd.paging_mode;
+    struct iommu_context *ctx = iommu_default_context(dom_io);
+    unsigned int level = ctx->arch.amd.paging_mode;
     unsigned int req_id = get_dma_requestor_id(pdev->seg, pdev->sbdf.bdf);
     const struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(pdev->seg);
     int rc;
 
     ASSERT(pcidevs_locked());
-    ASSERT(!hd->arch.amd.root_table);
-    ASSERT(page_list_empty(&hd->arch.pgtables.list));
+    ASSERT(!ctx->arch.amd.root_table);
+    ASSERT(page_list_empty(&ctx->arch.pgtables));
 
     if ( !scratch_page && !ivrs_mappings[req_id].unity_map )
         return 0;
@@ -843,19 +849,19 @@ int cf_check amd_iommu_quarantine_init(struct pci_dev *pdev, bool scratch_page)
         return 0;
     }
 
-    pdev->arch.amd.root_table = iommu_alloc_pgtable(hd, 0);
+    pdev->arch.amd.root_table = iommu_alloc_pgtable(hd, ctx, 0);
     if ( !pdev->arch.amd.root_table )
         return -ENOMEM;
 
     /* Transiently install the root into DomIO, for iommu_identity_mapping(). */
-    hd->arch.amd.root_table = pdev->arch.amd.root_table;
+    ctx->arch.amd.root_table = pdev->arch.amd.root_table;
 
-    rc = amd_iommu_reserve_domain_unity_map(dom_io,
+    rc = amd_iommu_reserve_domain_unity_map(dom_io, ctx,
                                             ivrs_mappings[req_id].unity_map,
                                             0);
 
-    iommu_identity_map_teardown(dom_io);
-    hd->arch.amd.root_table = NULL;
+    iommu_identity_map_teardown(dom_io, ctx);
+    ctx->arch.amd.root_table = NULL;
 
     if ( rc )
         AMD_IOMMU_WARN("%pp: quarantine unity mapping failed\n", &pdev->sbdf);
@@ -871,7 +877,7 @@ int cf_check amd_iommu_quarantine_init(struct pci_dev *pdev, bool scratch_page)
         pdev->arch.leaf_mfn = page_to_mfn(pgs[0]);
     }
 
-    page_list_move(&pdev->arch.pgtables_list, &hd->arch.pgtables.list);
+    page_list_move(&pdev->arch.pgtables_list, &ctx->arch.pgtables);
 
     if ( rc )
         amd_iommu_quarantine_teardown(pdev);
@@ -881,16 +887,16 @@ int cf_check amd_iommu_quarantine_init(struct pci_dev *pdev, bool scratch_page)
 
 void amd_iommu_quarantine_teardown(struct pci_dev *pdev)
 {
-    struct domain_iommu *hd = dom_iommu(dom_io);
+    struct iommu_context *ctx = iommu_default_context(dom_io);
 
     ASSERT(pcidevs_locked());
 
     if ( !pdev->arch.amd.root_table )
         return;
 
-    ASSERT(page_list_empty(&hd->arch.pgtables.list));
-    page_list_move(&hd->arch.pgtables.list, &pdev->arch.pgtables_list);
-    while ( iommu_free_pgtables(dom_io) == -ERESTART )
+    ASSERT(page_list_empty(&ctx->arch.pgtables));
+    page_list_move(&ctx->arch.pgtables, &pdev->arch.pgtables_list);
+    while ( iommu_free_pgtables(dom_io, ctx) == -ERESTART )
         /* nothing */;
     pdev->arch.amd.root_table = NULL;
 }
diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/passthrough/amd/pci_amd_iommu.c
index 3a14770855..964f6b47db 100644
--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
+++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
@@ -19,6 +19,7 @@
 
 #include <xen/iocap.h>
 #include <xen/softirq.h>
+#include <xen/iommu.h>
 
 #include <asm/acpi.h>
 
@@ -86,12 +87,12 @@ int get_dma_requestor_id(uint16_t seg, uint16_t bdf)
 
 static int __must_check allocate_domain_resources(struct domain *d)
 {
-    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx = iommu_default_context(d);
     int rc;
 
-    spin_lock(&hd->arch.mapping_lock);
+    spin_lock(&ctx->arch.mapping_lock);
     rc = amd_iommu_alloc_root(d);
-    spin_unlock(&hd->arch.mapping_lock);
+    spin_unlock(&ctx->arch.mapping_lock);
 
     return rc;
 }
@@ -125,7 +126,7 @@ static bool use_ats(
 }
 
 static int __must_check amd_iommu_setup_domain_device(
-    struct domain *domain, struct amd_iommu *iommu,
+    struct domain *domain, struct iommu_context *ctx, struct amd_iommu *iommu,
     uint8_t devfn, struct pci_dev *pdev)
 {
     struct amd_iommu_dte *table, *dte;
@@ -133,7 +134,6 @@ static int __must_check amd_iommu_setup_domain_device(
     unsigned int req_id, sr_flags;
     int rc;
     u8 bus = pdev->bus;
-    struct domain_iommu *hd = dom_iommu(domain);
     const struct ivrs_mappings *ivrs_dev;
     const struct page_info *root_pg;
     domid_t domid;
@@ -141,7 +141,7 @@ static int __must_check amd_iommu_setup_domain_device(
     if ( QUARANTINE_SKIP(domain, pdev) )
         return 0;
 
-    BUG_ON(!hd->arch.amd.paging_mode || !iommu->dev_table.buffer);
+    BUG_ON(!ctx->arch.amd.paging_mode || !iommu->dev_table.buffer);
 
     rc = allocate_domain_resources(domain);
     if ( rc )
@@ -161,7 +161,7 @@ static int __must_check amd_iommu_setup_domain_device(
 
     if ( domain != dom_io )
     {
-        root_pg = hd->arch.amd.root_table;
+        root_pg = ctx->arch.amd.root_table;
         domid = domain->domain_id;
     }
     else
@@ -177,7 +177,7 @@ static int __must_check amd_iommu_setup_domain_device(
         /* bind DTE to domain page-tables */
         rc = amd_iommu_set_root_page_table(
                  dte, page_to_maddr(root_pg), domid,
-                 hd->arch.amd.paging_mode, sr_flags);
+                 ctx->arch.amd.paging_mode, sr_flags);
         if ( rc )
         {
             ASSERT(rc < 0);
@@ -219,7 +219,7 @@ static int __must_check amd_iommu_setup_domain_device(
         else
             rc = amd_iommu_set_root_page_table(
                      dte, page_to_maddr(root_pg), domid,
-                     hd->arch.amd.paging_mode, sr_flags);
+                     ctx->arch.amd.paging_mode, sr_flags);
         if ( rc < 0 )
         {
             spin_unlock_irqrestore(&iommu->lock, flags);
@@ -270,7 +270,7 @@ static int __must_check amd_iommu_setup_domain_device(
                     "root table = %#"PRIx64", "
                     "domain = %d, paging mode = %d\n",
                     req_id, pdev->type, page_to_maddr(root_pg),
-                    domid, hd->arch.amd.paging_mode);
+                    domid, ctx->arch.amd.paging_mode);
 
     ASSERT(pcidevs_locked());
 
@@ -352,11 +352,12 @@ static int cf_check iov_enable_xt(void)
 int amd_iommu_alloc_root(struct domain *d)
 {
     struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx = iommu_default_context(d);
 
-    if ( unlikely(!hd->arch.amd.root_table) && d != dom_io )
+    if ( unlikely(!ctx->arch.amd.root_table) && d != dom_io )
     {
-        hd->arch.amd.root_table = iommu_alloc_pgtable(hd, 0);
-        if ( !hd->arch.amd.root_table )
+        ctx->arch.amd.root_table = iommu_alloc_pgtable(hd, ctx, 0);
+        if ( !ctx->arch.amd.root_table )
             return -ENOMEM;
     }
 
@@ -368,7 +369,7 @@ int __read_mostly amd_iommu_min_paging_mode = 1;
 
 static int cf_check amd_iommu_domain_init(struct domain *d)
 {
-    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx = iommu_default_context(d);
     int pglvl = amd_iommu_get_paging_mode(
                     1UL << (domain_max_paddr_bits(d) - PAGE_SHIFT));
 
@@ -379,7 +380,7 @@ static int cf_check amd_iommu_domain_init(struct domain *d)
      * Choose the number of levels for the IOMMU page tables, taking into
      * account unity maps.
      */
-    hd->arch.amd.paging_mode = max(pglvl, amd_iommu_min_paging_mode);
+    ctx->arch.amd.paging_mode = max(pglvl, amd_iommu_min_paging_mode);
 
     return 0;
 }
@@ -455,7 +456,7 @@ static void amd_iommu_disable_domain_device(const struct domain *domain,
         AMD_IOMMU_DEBUG("Disable: device id = %#x, "
                         "domain = %d, paging mode = %d\n",
                         req_id, dte->domain_id,
-                        dom_iommu(domain)->arch.amd.paging_mode);
+                        iommu_default_context(domain)->arch.amd.paging_mode);
     }
     else
         spin_unlock_irqrestore(&iommu->lock, flags);
@@ -466,6 +467,8 @@ static int cf_check reassign_device(
     struct pci_dev *pdev)
 {
     struct amd_iommu *iommu;
+    struct iommu_context *target_ctx = iommu_default_context(target);
+    struct iommu_context *source_ctx = iommu_default_context(source);
     int rc;
 
     iommu = find_iommu_for_device(pdev->sbdf);
@@ -478,7 +481,7 @@ static int cf_check reassign_device(
 
     if ( !QUARANTINE_SKIP(target, pdev) )
     {
-        rc = amd_iommu_setup_domain_device(target, iommu, devfn, pdev);
+        rc = amd_iommu_setup_domain_device(target, target_ctx, iommu, devfn, pdev);
         if ( rc )
             return rc;
     }
@@ -509,7 +512,7 @@ static int cf_check reassign_device(
         unsigned int bdf = PCI_BDF(pdev->bus, devfn);
 
         rc = amd_iommu_reserve_domain_unity_unmap(
-                 source,
+                 source, source_ctx,
                  ivrs_mappings[get_dma_requestor_id(pdev->seg, bdf)].unity_map);
         if ( rc )
             return rc;
@@ -528,7 +531,8 @@ static int cf_check amd_iommu_assign_device(
     unsigned int bdf = PCI_BDF(pdev->bus, devfn);
     int req_id = get_dma_requestor_id(pdev->seg, bdf);
     int rc = amd_iommu_reserve_domain_unity_map(
-                 d, ivrs_mappings[req_id].unity_map, flag);
+                 d, iommu_default_context(d),
+                 ivrs_mappings[req_id].unity_map, flag);
 
     if ( !rc )
         rc = reassign_device(pdev->domain, d, devfn, pdev);
@@ -536,7 +540,8 @@ static int cf_check amd_iommu_assign_device(
     if ( rc && !is_hardware_domain(d) )
     {
         int ret = amd_iommu_reserve_domain_unity_unmap(
-                      d, ivrs_mappings[req_id].unity_map);
+                      d, iommu_default_context(d),
+                      ivrs_mappings[req_id].unity_map);
 
         if ( ret )
         {
@@ -553,22 +558,25 @@ static int cf_check amd_iommu_assign_device(
 
 static void cf_check amd_iommu_clear_root_pgtable(struct domain *d)
 {
-    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx = iommu_default_context(d);
 
-    spin_lock(&hd->arch.mapping_lock);
-    hd->arch.amd.root_table = NULL;
-    spin_unlock(&hd->arch.mapping_lock);
+    spin_lock(&ctx->arch.mapping_lock);
+    ctx->arch.amd.root_table = NULL;
+    spin_unlock(&ctx->arch.mapping_lock);
 }
 
 static void cf_check amd_iommu_domain_destroy(struct domain *d)
 {
-    iommu_identity_map_teardown(d);
-    ASSERT(!dom_iommu(d)->arch.amd.root_table);
+    struct iommu_context *ctx = iommu_default_context(d);
+
+    iommu_identity_map_teardown(d, ctx);
+    ASSERT(!ctx->arch.amd.root_table);
 }
 
 static int cf_check amd_iommu_add_device(u8 devfn, struct pci_dev *pdev)
 {
     struct amd_iommu *iommu;
+    struct iommu_context *ctx;
     u16 bdf;
     struct ivrs_mappings *ivrs_mappings;
     bool fresh_domid = false;
@@ -577,6 +585,8 @@ static int cf_check amd_iommu_add_device(u8 devfn, struct pci_dev *pdev)
     if ( !pdev->domain )
         return -EINVAL;
 
+    ctx = iommu_default_context(pdev->domain);
+
     for_each_amd_iommu(iommu)
         if ( pdev->sbdf.sbdf == iommu->sbdf.sbdf )
             return is_hardware_domain(pdev->domain) ? 0 : -ENODEV;
@@ -633,7 +643,7 @@ static int cf_check amd_iommu_add_device(u8 devfn, struct pci_dev *pdev)
     }
 
     if ( amd_iommu_reserve_domain_unity_map(
-             pdev->domain,
+             pdev->domain, ctx,
              ivrs_mappings[ivrs_mappings[bdf].dte_requestor_id].unity_map,
              0) )
         AMD_IOMMU_WARN("%pd: unity mapping failed for %pp\n",
@@ -647,7 +657,7 @@ static int cf_check amd_iommu_add_device(u8 devfn, struct pci_dev *pdev)
         fresh_domid = true;
     }
 
-    ret = amd_iommu_setup_domain_device(pdev->domain, iommu, devfn, pdev);
+    ret = amd_iommu_setup_domain_device(pdev->domain, ctx, iommu, devfn, pdev);
     if ( ret && fresh_domid )
     {
         iommu_free_domid(pdev->arch.pseudo_domid, iommu->domid_map);
@@ -660,12 +670,15 @@ static int cf_check amd_iommu_add_device(u8 devfn, struct pci_dev *pdev)
 static int cf_check amd_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
 {
     struct amd_iommu *iommu;
+    struct iommu_context *ctx;
     u16 bdf;
     struct ivrs_mappings *ivrs_mappings;
 
     if ( !pdev->domain )
         return -EINVAL;
 
+    ctx = iommu_default_context(pdev->domain);
+
     iommu = find_iommu_for_device(pdev->sbdf);
     if ( !iommu )
     {
@@ -680,7 +693,7 @@ static int cf_check amd_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
     bdf = PCI_BDF(pdev->bus, devfn);
 
     if ( amd_iommu_reserve_domain_unity_unmap(
-             pdev->domain,
+             pdev->domain, ctx,
              ivrs_mappings[ivrs_mappings[bdf].dte_requestor_id].unity_map) )
         AMD_IOMMU_WARN("%pd: unity unmapping failed for %pp\n",
                        pdev->domain, &PCI_SBDF(pdev->seg, bdf));
@@ -755,14 +768,14 @@ static void amd_dump_page_table_level(struct page_info *pg, int level,
 
 static void cf_check amd_dump_page_tables(struct domain *d)
 {
-    const struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx = iommu_default_context(d);
 
-    if ( !hd->arch.amd.root_table )
+    if ( !ctx->arch.amd.root_table )
         return;
 
-    printk("AMD IOMMU %pd table has %u levels\n", d, hd->arch.amd.paging_mode);
-    amd_dump_page_table_level(hd->arch.amd.root_table,
-                              hd->arch.amd.paging_mode, 0, 0);
+    printk("AMD IOMMU %pd table has %u levels\n", d, ctx->arch.amd.paging_mode);
+    amd_dump_page_table_level(ctx->arch.amd.root_table,
+                              ctx->arch.amd.paging_mode, 0, 0);
 }
 
 static const struct iommu_ops __initconst_cf_clobber _iommu_ops = {
diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
index c9425d6971..32c5011820 100644
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -403,12 +403,15 @@ long iommu_unmap(struct domain *d, dfn_t dfn0, unsigned long page_count,
     unsigned long i;
     unsigned int order, j = 0;
     int rc = 0;
+    struct iommu_context *ctx;
 
     if ( !is_iommu_enabled(d) )
         return 0;
 
     ASSERT(!(flags & ~IOMMUF_preempt));
 
+    ctx = iommu_default_context(d);
+
     for ( i = 0; i < page_count; i += 1UL << order )
     {
         dfn_t dfn = dfn_add(dfn0, i);
@@ -468,10 +471,13 @@ int iommu_lookup_page(struct domain *d, dfn_t dfn, mfn_t *mfn,
                       unsigned int *flags)
 {
     const struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx;
 
     if ( !is_iommu_enabled(d) || !hd->platform_ops->lookup_page )
         return -EOPNOTSUPP;
 
+    ctx = iommu_default_context(d);
+
     return iommu_call(hd->platform_ops, lookup_page, d, dfn, mfn, flags);
 }
 
diff --git a/xen/drivers/passthrough/vtd/extern.h b/xen/drivers/passthrough/vtd/extern.h
index c16583c951..3dcb77c711 100644
--- a/xen/drivers/passthrough/vtd/extern.h
+++ b/xen/drivers/passthrough/vtd/extern.h
@@ -80,8 +80,8 @@ uint64_t alloc_pgtable_maddr(unsigned long npages, nodeid_t node);
 void free_pgtable_maddr(u64 maddr);
 void *map_vtd_domain_page(u64 maddr);
 void unmap_vtd_domain_page(const void *va);
-int domain_context_mapping_one(struct domain *domain, struct vtd_iommu *iommu,
-                               uint8_t bus, uint8_t devfn,
+int domain_context_mapping_one(struct domain *domain, struct iommu_context *ctx,
+                               struct vtd_iommu *iommu, uint8_t bus, uint8_t devfn,
                                const struct pci_dev *pdev, domid_t domid,
                                paddr_t pgd_maddr, unsigned int mode);
 int domain_context_unmap_one(struct domain *domain, struct vtd_iommu *iommu,
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index 90f36ac22b..9252c3e0f3 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -54,7 +54,7 @@
 #define DEVICE_DOMID(d, pdev) ((d) != dom_io ? (d)->domain_id \
                                              : (pdev)->arch.pseudo_domid)
 #define DEVICE_PGTABLE(d, pdev) ((d) != dom_io \
-                                 ? dom_iommu(d)->arch.vtd.pgd_maddr \
+                                 ? iommu_default_context(d)->arch.vtd.pgd_maddr \
                                  : (pdev)->arch.vtd.pgd_maddr)
 
 bool __read_mostly iommu_igfx = true;
@@ -227,7 +227,7 @@ static void check_cleanup_domid_map(const struct domain *d,
 
     if ( !found )
     {
-        clear_bit(iommu->index, dom_iommu(d)->arch.vtd.iommu_bitmap);
+        clear_bit(iommu->index, iommu_default_context(d)->arch.vtd.iommu_bitmap);
         cleanup_domid_map(d->domain_id, iommu);
     }
 }
@@ -315,8 +315,9 @@ static u64 bus_to_context_maddr(struct vtd_iommu *iommu, u8 bus)
  *   PTE for the requested address,
  * - for target == 0 the full PTE contents below PADDR_BITS limit.
  */
-static uint64_t addr_to_dma_page_maddr(struct domain *domain, daddr_t addr,
-                                       unsigned int target,
+static uint64_t addr_to_dma_page_maddr(struct domain *domain,
+                                       struct iommu_context *ctx,
+                                       daddr_t addr, unsigned int target,
                                        unsigned int *flush_flags, bool alloc)
 {
     struct domain_iommu *hd = dom_iommu(domain);
@@ -326,10 +327,10 @@ static uint64_t addr_to_dma_page_maddr(struct domain *domain, daddr_t addr,
     u64 pte_maddr = 0;
 
     addr &= (((u64)1) << addr_width) - 1;
-    ASSERT(spin_is_locked(&hd->arch.mapping_lock));
+    ASSERT(spin_is_locked(&ctx->arch.mapping_lock));
     ASSERT(target || !alloc);
 
-    if ( !hd->arch.vtd.pgd_maddr )
+    if ( !ctx->arch.vtd.pgd_maddr )
     {
         struct page_info *pg;
 
@@ -337,13 +338,13 @@ static uint64_t addr_to_dma_page_maddr(struct domain *domain, daddr_t addr,
             goto out;
 
         pte_maddr = level;
-        if ( !(pg = iommu_alloc_pgtable(hd, 0)) )
+        if ( !(pg = iommu_alloc_pgtable(hd, ctx, 0)) )
             goto out;
 
-        hd->arch.vtd.pgd_maddr = page_to_maddr(pg);
+        ctx->arch.vtd.pgd_maddr = page_to_maddr(pg);
     }
 
-    pte_maddr = hd->arch.vtd.pgd_maddr;
+    pte_maddr = ctx->arch.vtd.pgd_maddr;
     parent = map_vtd_domain_page(pte_maddr);
     while ( level > target )
     {
@@ -379,7 +380,7 @@ static uint64_t addr_to_dma_page_maddr(struct domain *domain, daddr_t addr,
             }
 
             pte_maddr = level - 1;
-            pg = iommu_alloc_pgtable(hd, DMA_PTE_CONTIG_MASK);
+            pg = iommu_alloc_pgtable(hd, ctx, DMA_PTE_CONTIG_MASK);
             if ( !pg )
                 break;
 
@@ -431,13 +432,12 @@ static uint64_t addr_to_dma_page_maddr(struct domain *domain, daddr_t addr,
     return pte_maddr;
 }
 
-static paddr_t domain_pgd_maddr(struct domain *d, paddr_t pgd_maddr,
-                                unsigned int nr_pt_levels)
+static paddr_t domain_pgd_maddr(struct domain *d, struct iommu_context *ctx,
+                                paddr_t pgd_maddr, unsigned int nr_pt_levels)
 {
-    struct domain_iommu *hd = dom_iommu(d);
     unsigned int agaw;
 
-    ASSERT(spin_is_locked(&hd->arch.mapping_lock));
+    ASSERT(spin_is_locked(&ctx->arch.mapping_lock));
 
     if ( pgd_maddr )
         /* nothing */;
@@ -449,19 +449,19 @@ static paddr_t domain_pgd_maddr(struct domain *d, paddr_t pgd_maddr,
     }
     else
     {
-        if ( !hd->arch.vtd.pgd_maddr )
+        if ( !ctx->arch.vtd.pgd_maddr )
         {
             /*
              * Ensure we have pagetables allocated down to the smallest
              * level the loop below may need to run to.
              */
-            addr_to_dma_page_maddr(d, 0, min_pt_levels, NULL, true);
+            addr_to_dma_page_maddr(d, ctx, 0, min_pt_levels, NULL, true);
 
-            if ( !hd->arch.vtd.pgd_maddr )
+            if ( !ctx->arch.vtd.pgd_maddr )
                 return 0;
         }
 
-        pgd_maddr = hd->arch.vtd.pgd_maddr;
+        pgd_maddr = ctx->arch.vtd.pgd_maddr;
     }
 
     /* Skip top level(s) of page tables for less-than-maximum level DRHDs. */
@@ -735,7 +735,7 @@ static int __must_check cf_check iommu_flush_iotlb(struct domain *d, dfn_t dfn,
                                                    unsigned long page_count,
                                                    unsigned int flush_flags)
 {
-    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx = iommu_default_context(d);
     struct acpi_drhd_unit *drhd;
     struct vtd_iommu *iommu;
     bool flush_dev_iotlb;
@@ -763,7 +763,7 @@ static int __must_check cf_check iommu_flush_iotlb(struct domain *d, dfn_t dfn,
 
         iommu = drhd->iommu;
 
-        if ( !test_bit(iommu->index, hd->arch.vtd.iommu_bitmap) )
+        if ( !test_bit(iommu->index, ctx->arch.vtd.iommu_bitmap) )
             continue;
 
         flush_dev_iotlb = !!find_ats_dev_drhd(iommu);
@@ -791,7 +791,8 @@ static int __must_check cf_check iommu_flush_iotlb(struct domain *d, dfn_t dfn,
     return ret;
 }
 
-static void queue_free_pt(struct domain_iommu *hd, mfn_t mfn, unsigned int level)
+static void queue_free_pt(struct domain *d, struct iommu_context *ctx, mfn_t mfn,
+                          unsigned int level)
 {
     if ( level > 1 )
     {
@@ -800,13 +801,13 @@ static void queue_free_pt(struct domain_iommu *hd, mfn_t mfn, unsigned int level
 
         for ( i = 0; i < PTE_NUM; ++i )
             if ( dma_pte_present(pt[i]) && !dma_pte_superpage(pt[i]) )
-                queue_free_pt(hd, maddr_to_mfn(dma_pte_addr(pt[i])),
+                queue_free_pt(d, ctx, maddr_to_mfn(dma_pte_addr(pt[i])),
                               level - 1);
 
         unmap_domain_page(pt);
     }
 
-    iommu_queue_free_pgtable(hd, mfn_to_page(mfn));
+    iommu_queue_free_pgtable(d, ctx, mfn_to_page(mfn));
 }
 
 static int iommu_set_root_entry(struct vtd_iommu *iommu)
@@ -1436,10 +1437,11 @@ void __init iommu_free(struct acpi_drhd_unit *drhd)
 static int cf_check intel_iommu_domain_init(struct domain *d)
 {
     struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx = iommu_default_context(d);
 
-    hd->arch.vtd.iommu_bitmap = xzalloc_array(unsigned long,
+    ctx->arch.vtd.iommu_bitmap = xzalloc_array(unsigned long,
                                               BITS_TO_LONGS(nr_iommus));
-    if ( !hd->arch.vtd.iommu_bitmap )
+    if ( !ctx->arch.vtd.iommu_bitmap )
         return -ENOMEM;
 
     hd->arch.vtd.agaw = width_to_agaw(DEFAULT_DOMAIN_ADDRESS_WIDTH);
@@ -1480,11 +1482,11 @@ static void __hwdom_init cf_check intel_iommu_hwdom_init(struct domain *d)
  */
 int domain_context_mapping_one(
     struct domain *domain,
+    struct iommu_context *ctx,
     struct vtd_iommu *iommu,
     uint8_t bus, uint8_t devfn, const struct pci_dev *pdev,
     domid_t domid, paddr_t pgd_maddr, unsigned int mode)
 {
-    struct domain_iommu *hd = dom_iommu(domain);
     struct context_entry *context, *context_entries, lctxt;
     __uint128_t res, old;
     uint64_t maddr;
@@ -1537,12 +1539,12 @@ int domain_context_mapping_one(
     {
         paddr_t root;
 
-        spin_lock(&hd->arch.mapping_lock);
+        spin_lock(&ctx->arch.mapping_lock);
 
-        root = domain_pgd_maddr(domain, pgd_maddr, iommu->nr_pt_levels);
+        root = domain_pgd_maddr(domain, ctx, pgd_maddr, iommu->nr_pt_levels);
         if ( !root )
         {
-            spin_unlock(&hd->arch.mapping_lock);
+            spin_unlock(&ctx->arch.mapping_lock);
             spin_unlock(&iommu->lock);
             unmap_vtd_domain_page(context_entries);
             if ( prev_dom )
@@ -1556,7 +1558,7 @@ int domain_context_mapping_one(
         else
             context_set_translation_type(lctxt, CONTEXT_TT_MULTI_LEVEL);
 
-        spin_unlock(&hd->arch.mapping_lock);
+        spin_unlock(&ctx->arch.mapping_lock);
     }
 
     rc = context_set_domain_id(&lctxt, domid, iommu);
@@ -1630,7 +1632,7 @@ int domain_context_mapping_one(
     if ( rc > 0 )
         rc = 0;
 
-    set_bit(iommu->index, hd->arch.vtd.iommu_bitmap);
+    set_bit(iommu->index, ctx->arch.vtd.iommu_bitmap);
 
     unmap_vtd_domain_page(context_entries);
 
@@ -1648,7 +1650,7 @@ int domain_context_mapping_one(
              (prev_dom == dom_io && !pdev) )
             ret = domain_context_unmap_one(domain, iommu, bus, devfn);
         else
-            ret = domain_context_mapping_one(prev_dom, iommu, bus, devfn, pdev,
+            ret = domain_context_mapping_one(prev_dom, ctx, iommu, bus, devfn, pdev,
                                              DEVICE_DOMID(prev_dom, pdev),
                                              DEVICE_PGTABLE(prev_dom, pdev),
                                              (mode & MAP_WITH_RMRR) |
@@ -1667,8 +1669,8 @@ int domain_context_mapping_one(
 static const struct acpi_drhd_unit *domain_context_unmap(
     struct domain *d, uint8_t devfn, struct pci_dev *pdev);
 
-static int domain_context_mapping(struct domain *domain, u8 devfn,
-                                  struct pci_dev *pdev)
+static int domain_context_mapping(struct domain *domain, struct iommu_context *ctx,
+                                  u8 devfn, struct pci_dev *pdev)
 {
     const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
     const struct acpi_rmrr_unit *rmrr;
@@ -1737,7 +1739,7 @@ static int domain_context_mapping(struct domain *domain, u8 devfn,
         if ( iommu_debug )
             printk(VTDPREFIX "%pd:PCIe: map %pp\n",
                    domain, &PCI_SBDF(seg, bus, devfn));
-        ret = domain_context_mapping_one(domain, drhd->iommu, bus, devfn, pdev,
+        ret = domain_context_mapping_one(domain, ctx, drhd->iommu, bus, devfn, pdev,
                                          DEVICE_DOMID(domain, pdev), pgd_maddr,
                                          mode);
         if ( ret > 0 )
@@ -1763,7 +1765,7 @@ static int domain_context_mapping(struct domain *domain, u8 devfn,
             printk(VTDPREFIX "%pd:PCI: map %pp\n",
                    domain, &PCI_SBDF(seg, bus, devfn));
 
-        ret = domain_context_mapping_one(domain, drhd->iommu, bus, devfn,
+        ret = domain_context_mapping_one(domain, ctx, drhd->iommu, bus, devfn,
                                          pdev, DEVICE_DOMID(domain, pdev),
                                          pgd_maddr, mode);
         if ( ret < 0 )
@@ -1794,7 +1796,7 @@ static int domain_context_mapping(struct domain *domain, u8 devfn,
          * their owner would be the wrong one. Pass NULL instead.
          */
         if ( ret >= 0 )
-            ret = domain_context_mapping_one(domain, drhd->iommu, bus, devfn,
+            ret = domain_context_mapping_one(domain, ctx, drhd->iommu, bus, devfn,
                                              NULL, DEVICE_DOMID(domain, pdev),
                                              pgd_maddr, mode);
 
@@ -1810,7 +1812,7 @@ static int domain_context_mapping(struct domain *domain, u8 devfn,
          */
         if ( !ret && pdev_type(seg, bus, devfn) == DEV_TYPE_PCIe2PCI_BRIDGE &&
              (secbus != pdev->bus || pdev->devfn != 0) )
-            ret = domain_context_mapping_one(domain, drhd->iommu, secbus, 0,
+            ret = domain_context_mapping_one(domain, ctx, drhd->iommu, secbus, 0,
                                              NULL, DEVICE_DOMID(domain, pdev),
                                              pgd_maddr, mode);
 
@@ -1819,7 +1821,7 @@ static int domain_context_mapping(struct domain *domain, u8 devfn,
             if ( !prev_present )
                 domain_context_unmap(domain, devfn, pdev);
             else if ( pdev->domain != domain ) /* Avoid infinite recursion. */
-                domain_context_mapping(pdev->domain, devfn, pdev);
+                domain_context_mapping(pdev->domain, ctx, devfn, pdev);
         }
 
         break;
@@ -2013,44 +2015,44 @@ static const struct acpi_drhd_unit *domain_context_unmap(
 
 static void cf_check iommu_clear_root_pgtable(struct domain *d)
 {
-    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx = iommu_default_context(d);
 
-    spin_lock(&hd->arch.mapping_lock);
-    hd->arch.vtd.pgd_maddr = 0;
-    spin_unlock(&hd->arch.mapping_lock);
+    spin_lock(&ctx->arch.mapping_lock);
+    ctx->arch.vtd.pgd_maddr = 0;
+    spin_unlock(&ctx->arch.mapping_lock);
 }
 
 static void cf_check iommu_domain_teardown(struct domain *d)
 {
-    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx = iommu_default_context(d);
     const struct acpi_drhd_unit *drhd;
 
     if ( list_empty(&acpi_drhd_units) )
         return;
 
-    iommu_identity_map_teardown(d);
+    iommu_identity_map_teardown(d, ctx);
 
-    ASSERT(!hd->arch.vtd.pgd_maddr);
+    ASSERT(!ctx->arch.vtd.pgd_maddr);
 
     for_each_drhd_unit ( drhd )
         cleanup_domid_map(d->domain_id, drhd->iommu);
 
-    XFREE(hd->arch.vtd.iommu_bitmap);
+    XFREE(ctx->arch.vtd.iommu_bitmap);
 }
 
 static void quarantine_teardown(struct pci_dev *pdev,
                                 const struct acpi_drhd_unit *drhd)
 {
-    struct domain_iommu *hd = dom_iommu(dom_io);
+    struct iommu_context *ctx = iommu_default_context(dom_io);
 
     ASSERT(pcidevs_locked());
 
     if ( !pdev->arch.vtd.pgd_maddr )
         return;
 
-    ASSERT(page_list_empty(&hd->arch.pgtables.list));
-    page_list_move(&hd->arch.pgtables.list, &pdev->arch.pgtables_list);
-    while ( iommu_free_pgtables(dom_io) == -ERESTART )
+    ASSERT(page_list_empty(&ctx->arch.pgtables));
+    page_list_move(&ctx->arch.pgtables, &pdev->arch.pgtables_list);
+    while ( iommu_free_pgtables(dom_io, ctx) == -ERESTART )
         /* nothing */;
     pdev->arch.vtd.pgd_maddr = 0;
 
@@ -2063,6 +2065,7 @@ static int __must_check cf_check intel_iommu_map_page(
     unsigned int *flush_flags)
 {
     struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx = iommu_default_context(d);
     struct dma_pte *page, *pte, old, new = {};
     u64 pg_maddr;
     unsigned int level = (IOMMUF_order(flags) / LEVEL_STRIDE) + 1;
@@ -2079,7 +2082,7 @@ static int __must_check cf_check intel_iommu_map_page(
     if ( iommu_hwdom_passthrough && is_hardware_domain(d) )
         return 0;
 
-    spin_lock(&hd->arch.mapping_lock);
+    spin_lock(&ctx->arch.mapping_lock);
 
     /*
      * IOMMU mapping request can be safely ignored when the domain is dying.
@@ -2089,15 +2092,15 @@ static int __must_check cf_check intel_iommu_map_page(
      */
     if ( d->is_dying )
     {
-        spin_unlock(&hd->arch.mapping_lock);
+        spin_unlock(&ctx->arch.mapping_lock);
         return 0;
     }
 
-    pg_maddr = addr_to_dma_page_maddr(d, dfn_to_daddr(dfn), level, flush_flags,
+    pg_maddr = addr_to_dma_page_maddr(d, ctx, dfn_to_daddr(dfn), level, flush_flags,
                                       true);
     if ( pg_maddr < PAGE_SIZE )
     {
-        spin_unlock(&hd->arch.mapping_lock);
+        spin_unlock(&ctx->arch.mapping_lock);
         return -ENOMEM;
     }
 
@@ -2118,7 +2121,7 @@ static int __must_check cf_check intel_iommu_map_page(
 
     if ( !((old.val ^ new.val) & ~DMA_PTE_CONTIG_MASK) )
     {
-        spin_unlock(&hd->arch.mapping_lock);
+        spin_unlock(&ctx->arch.mapping_lock);
         unmap_vtd_domain_page(page);
         return 0;
     }
@@ -2147,7 +2150,7 @@ static int __must_check cf_check intel_iommu_map_page(
         new.val &= ~(LEVEL_MASK << level_to_offset_bits(level));
         dma_set_pte_superpage(new);
 
-        pg_maddr = addr_to_dma_page_maddr(d, dfn_to_daddr(dfn), ++level,
+        pg_maddr = addr_to_dma_page_maddr(d, ctx, dfn_to_daddr(dfn), ++level,
                                           flush_flags, false);
         BUG_ON(pg_maddr < PAGE_SIZE);
 
@@ -2157,11 +2160,11 @@ static int __must_check cf_check intel_iommu_map_page(
         iommu_sync_cache(pte, sizeof(*pte));
 
         *flush_flags |= IOMMU_FLUSHF_modified | IOMMU_FLUSHF_all;
-        iommu_queue_free_pgtable(hd, pg);
+        iommu_queue_free_pgtable(d, ctx, pg);
         perfc_incr(iommu_pt_coalesces);
     }
 
-    spin_unlock(&hd->arch.mapping_lock);
+    spin_unlock(&ctx->arch.mapping_lock);
     unmap_vtd_domain_page(page);
 
     *flush_flags |= IOMMU_FLUSHF_added;
@@ -2170,7 +2173,7 @@ static int __must_check cf_check intel_iommu_map_page(
         *flush_flags |= IOMMU_FLUSHF_modified;
 
         if ( IOMMUF_order(flags) && !dma_pte_superpage(old) )
-            queue_free_pt(hd, maddr_to_mfn(dma_pte_addr(old)),
+            queue_free_pt(d, ctx, maddr_to_mfn(dma_pte_addr(old)),
                           IOMMUF_order(flags) / LEVEL_STRIDE);
     }
 
@@ -2181,6 +2184,7 @@ static int __must_check cf_check intel_iommu_unmap_page(
     struct domain *d, dfn_t dfn, unsigned int order, unsigned int *flush_flags)
 {
     struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx = iommu_default_context(d);
     daddr_t addr = dfn_to_daddr(dfn);
     struct dma_pte *page = NULL, *pte = NULL, old;
     uint64_t pg_maddr;
@@ -2200,12 +2204,12 @@ static int __must_check cf_check intel_iommu_unmap_page(
     if ( iommu_hwdom_passthrough && is_hardware_domain(d) )
         return 0;
 
-    spin_lock(&hd->arch.mapping_lock);
+    spin_lock(&ctx->arch.mapping_lock);
     /* get target level pte */
-    pg_maddr = addr_to_dma_page_maddr(d, addr, level, flush_flags, false);
+    pg_maddr = addr_to_dma_page_maddr(d, ctx, addr, level, flush_flags, false);
     if ( pg_maddr < PAGE_SIZE )
     {
-        spin_unlock(&hd->arch.mapping_lock);
+        spin_unlock(&ctx->arch.mapping_lock);
         return pg_maddr ? -ENOMEM : 0;
     }
 
@@ -2214,7 +2218,7 @@ static int __must_check cf_check intel_iommu_unmap_page(
 
     if ( !dma_pte_present(*pte) )
     {
-        spin_unlock(&hd->arch.mapping_lock);
+        spin_unlock(&ctx->arch.mapping_lock);
         unmap_vtd_domain_page(page);
         return 0;
     }
@@ -2232,7 +2236,7 @@ static int __must_check cf_check intel_iommu_unmap_page(
 
         unmap_vtd_domain_page(page);
 
-        pg_maddr = addr_to_dma_page_maddr(d, addr, level, flush_flags, false);
+        pg_maddr = addr_to_dma_page_maddr(d, ctx, addr, level, flush_flags, false);
         BUG_ON(pg_maddr < PAGE_SIZE);
 
         page = map_vtd_domain_page(pg_maddr);
@@ -2241,18 +2245,18 @@ static int __must_check cf_check intel_iommu_unmap_page(
         iommu_sync_cache(pte, sizeof(*pte));
 
         *flush_flags |= IOMMU_FLUSHF_all;
-        iommu_queue_free_pgtable(hd, pg);
+        iommu_queue_free_pgtable(d, ctx, pg);
         perfc_incr(iommu_pt_coalesces);
     }
 
-    spin_unlock(&hd->arch.mapping_lock);
+    spin_unlock(&ctx->arch.mapping_lock);
 
     unmap_vtd_domain_page(page);
 
     *flush_flags |= IOMMU_FLUSHF_modified;
 
     if ( order && !dma_pte_superpage(old) )
-        queue_free_pt(hd, maddr_to_mfn(dma_pte_addr(old)),
+        queue_free_pt(d, ctx, maddr_to_mfn(dma_pte_addr(old)),
                       order / LEVEL_STRIDE);
 
     return 0;
@@ -2261,7 +2265,7 @@ static int __must_check cf_check intel_iommu_unmap_page(
 static int cf_check intel_iommu_lookup_page(
     struct domain *d, dfn_t dfn, mfn_t *mfn, unsigned int *flags)
 {
-    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx = iommu_default_context(d);
     uint64_t val;
 
     /*
@@ -2272,11 +2276,11 @@ static int cf_check intel_iommu_lookup_page(
          (iommu_hwdom_passthrough && is_hardware_domain(d)) )
         return -EOPNOTSUPP;
 
-    spin_lock(&hd->arch.mapping_lock);
+    spin_lock(&ctx->arch.mapping_lock);
 
-    val = addr_to_dma_page_maddr(d, dfn_to_daddr(dfn), 0, NULL, false);
+    val = addr_to_dma_page_maddr(d, ctx, dfn_to_daddr(dfn), 0, NULL, false);
 
-    spin_unlock(&hd->arch.mapping_lock);
+    spin_unlock(&ctx->arch.mapping_lock);
 
     if ( val < PAGE_SIZE )
         return -ENOENT;
@@ -2309,6 +2313,7 @@ static bool __init vtd_ept_page_compatible(const struct vtd_iommu *iommu)
 static int cf_check intel_iommu_add_device(u8 devfn, struct pci_dev *pdev)
 {
     struct acpi_rmrr_unit *rmrr;
+    struct iommu_context *ctx;
     u16 bdf;
     int ret, i;
 
@@ -2317,6 +2322,8 @@ static int cf_check intel_iommu_add_device(u8 devfn, struct pci_dev *pdev)
     if ( !pdev->domain )
         return -EINVAL;
 
+    ctx = iommu_default_context(pdev->domain);
+
     for_each_rmrr_device ( rmrr, bdf, i )
     {
         if ( rmrr->segment == pdev->seg && bdf == PCI_BDF(pdev->bus, devfn) )
@@ -2327,7 +2334,7 @@ static int cf_check intel_iommu_add_device(u8 devfn, struct pci_dev *pdev)
              * Since RMRRs are always reserved in the e820 map for the hardware
              * domain, there shouldn't be a conflict.
              */
-            ret = iommu_identity_mapping(pdev->domain, p2m_access_rw,
+            ret = iommu_identity_mapping(pdev->domain, ctx, p2m_access_rw,
                                          rmrr->base_address, rmrr->end_address,
                                          0);
             if ( ret )
@@ -2336,7 +2343,7 @@ static int cf_check intel_iommu_add_device(u8 devfn, struct pci_dev *pdev)
         }
     }
 
-    ret = domain_context_mapping(pdev->domain, devfn, pdev);
+    ret = domain_context_mapping(pdev->domain, ctx, devfn, pdev);
     if ( ret )
         dprintk(XENLOG_ERR VTDPREFIX, "%pd: context mapping failed\n",
                 pdev->domain);
@@ -2365,10 +2372,13 @@ static int cf_check intel_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
     struct acpi_rmrr_unit *rmrr;
     u16 bdf;
     unsigned int i;
+    struct iommu_context *ctx;
 
     if ( !pdev->domain )
         return -EINVAL;
 
+    ctx = iommu_default_context(pdev->domain);
+
     drhd = domain_context_unmap(pdev->domain, devfn, pdev);
     if ( IS_ERR(drhd) )
         return PTR_ERR(drhd);
@@ -2382,7 +2392,7 @@ static int cf_check intel_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
          * Any flag is nothing to clear these mappings but here
          * its always safe and strict to set 0.
          */
-        iommu_identity_mapping(pdev->domain, p2m_access_x, rmrr->base_address,
+        iommu_identity_mapping(pdev->domain, ctx, p2m_access_x, rmrr->base_address,
                                rmrr->end_address, 0);
     }
 
@@ -2401,7 +2411,9 @@ static int cf_check intel_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
 static int __hwdom_init cf_check setup_hwdom_device(
     u8 devfn, struct pci_dev *pdev)
 {
-    return domain_context_mapping(pdev->domain, devfn, pdev);
+    struct iommu_context *ctx = iommu_default_context(pdev->domain);
+
+    return domain_context_mapping(pdev->domain, ctx, devfn, pdev);
 }
 
 void clear_fault_bits(struct vtd_iommu *iommu)
@@ -2495,7 +2507,7 @@ static int __must_check init_vtd_hw(bool resume)
 
     /*
      * Enable queue invalidation
-     */   
+     */
     for_each_drhd_unit ( drhd )
     {
         iommu = drhd->iommu;
@@ -2516,7 +2528,7 @@ static int __must_check init_vtd_hw(bool resume)
 
     /*
      * Enable interrupt remapping
-     */  
+     */
     if ( iommu_intremap != iommu_intremap_off )
     {
         int apic;
@@ -2573,6 +2585,7 @@ static int __must_check init_vtd_hw(bool resume)
 
 static void __hwdom_init setup_hwdom_rmrr(struct domain *d)
 {
+    struct iommu_context *ctx = iommu_default_context(d);
     struct acpi_rmrr_unit *rmrr;
     u16 bdf;
     int ret, i;
@@ -2586,7 +2599,7 @@ static void __hwdom_init setup_hwdom_rmrr(struct domain *d)
          * domain, there shouldn't be a conflict. So its always safe and
          * strict to set 0.
          */
-        ret = iommu_identity_mapping(d, p2m_access_rw, rmrr->base_address,
+        ret = iommu_identity_mapping(d, ctx, p2m_access_rw, rmrr->base_address,
                                      rmrr->end_address, 0);
         if ( ret )
             dprintk(XENLOG_ERR VTDPREFIX,
@@ -2751,6 +2764,8 @@ static int cf_check reassign_device_ownership(
 
     if ( !QUARANTINE_SKIP(target, pdev->arch.vtd.pgd_maddr) )
     {
+        struct iommu_context *target_ctx = iommu_default_context(target);
+
         if ( !has_arch_pdevs(target) )
             vmx_pi_hooks_assign(target);
 
@@ -2765,7 +2780,7 @@ static int cf_check reassign_device_ownership(
             untrusted_msi = true;
 #endif
 
-        ret = domain_context_mapping(target, devfn, pdev);
+        ret = domain_context_mapping(target, target_ctx, devfn, pdev);
 
         if ( !ret && pdev->devfn == devfn &&
              !QUARANTINE_SKIP(source, pdev->arch.vtd.pgd_maddr) )
@@ -2814,6 +2829,7 @@ static int cf_check reassign_device_ownership(
     if ( !is_hardware_domain(source) )
     {
         const struct acpi_rmrr_unit *rmrr;
+        struct iommu_context *ctx = iommu_default_context(source);
         u16 bdf;
         unsigned int i;
 
@@ -2825,7 +2841,7 @@ static int cf_check reassign_device_ownership(
                  * Any RMRR flag is always ignored when remove a device,
                  * but its always safe and strict to set 0.
                  */
-                ret = iommu_identity_mapping(source, p2m_access_x,
+                ret = iommu_identity_mapping(source, ctx, p2m_access_x,
                                              rmrr->base_address,
                                              rmrr->end_address, 0);
                 if ( ret && ret != -ENOENT )
@@ -2840,6 +2856,7 @@ static int cf_check intel_iommu_assign_device(
     struct domain *d, u8 devfn, struct pci_dev *pdev, u32 flag)
 {
     struct domain *s = pdev->domain;
+    struct iommu_context *ctx = iommu_default_context(d);
     struct acpi_rmrr_unit *rmrr;
     int ret = 0, i;
     u16 bdf, seg;
@@ -2887,7 +2904,7 @@ static int cf_check intel_iommu_assign_device(
     {
         if ( rmrr->segment == seg && bdf == PCI_BDF(bus, devfn) )
         {
-            ret = iommu_identity_mapping(d, p2m_access_rw, rmrr->base_address,
+            ret = iommu_identity_mapping(d, ctx, p2m_access_rw, rmrr->base_address,
                                          rmrr->end_address, flag);
             if ( ret )
             {
@@ -2910,7 +2927,7 @@ static int cf_check intel_iommu_assign_device(
     {
         if ( rmrr->segment == seg && bdf == PCI_BDF(bus, devfn) )
         {
-            int rc = iommu_identity_mapping(d, p2m_access_x,
+            int rc = iommu_identity_mapping(d, ctx, p2m_access_x,
                                             rmrr->base_address,
                                             rmrr->end_address, 0);
 
@@ -3083,10 +3100,11 @@ static void vtd_dump_page_table_level(paddr_t pt_maddr, int level, paddr_t gpa,
 static void cf_check vtd_dump_page_tables(struct domain *d)
 {
     const struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx = iommu_default_context(d);
 
     printk(VTDPREFIX" %pd table has %d levels\n", d,
            agaw_to_level(hd->arch.vtd.agaw));
-    vtd_dump_page_table_level(hd->arch.vtd.pgd_maddr,
+    vtd_dump_page_table_level(ctx->arch.vtd.pgd_maddr,
                               agaw_to_level(hd->arch.vtd.agaw), 0, 0);
 }
 
@@ -3094,6 +3112,7 @@ static int fill_qpt(struct dma_pte *this, unsigned int level,
                     struct page_info *pgs[6])
 {
     struct domain_iommu *hd = dom_iommu(dom_io);
+    struct iommu_context *ctx = iommu_default_context(dom_io);
     unsigned int i;
     int rc = 0;
 
@@ -3110,7 +3129,7 @@ static int fill_qpt(struct dma_pte *this, unsigned int level,
                  * page table pages, and the resulting allocations are always
                  * zeroed.
                  */
-                pgs[level] = iommu_alloc_pgtable(hd, 0);
+                pgs[level] = iommu_alloc_pgtable(hd, ctx, 0);
                 if ( !pgs[level] )
                 {
                     rc = -ENOMEM;
@@ -3144,6 +3163,7 @@ static int cf_check intel_iommu_quarantine_init(struct pci_dev *pdev,
                                                 bool scratch_page)
 {
     struct domain_iommu *hd = dom_iommu(dom_io);
+    struct iommu_context *ctx = iommu_default_context(dom_io);
     struct page_info *pg;
     unsigned int agaw = hd->arch.vtd.agaw;
     unsigned int level = agaw_to_level(agaw);
@@ -3154,8 +3174,8 @@ static int cf_check intel_iommu_quarantine_init(struct pci_dev *pdev,
     int rc;
 
     ASSERT(pcidevs_locked());
-    ASSERT(!hd->arch.vtd.pgd_maddr);
-    ASSERT(page_list_empty(&hd->arch.pgtables.list));
+    ASSERT(!ctx->arch.vtd.pgd_maddr);
+    ASSERT(page_list_empty(&ctx->arch.pgtables));
 
     if ( pdev->arch.vtd.pgd_maddr )
     {
@@ -3167,14 +3187,14 @@ static int cf_check intel_iommu_quarantine_init(struct pci_dev *pdev,
     if ( !drhd )
         return -ENODEV;
 
-    pg = iommu_alloc_pgtable(hd, 0);
+    pg = iommu_alloc_pgtable(hd, ctx, 0);
     if ( !pg )
         return -ENOMEM;
 
     rc = context_set_domain_id(NULL, pdev->arch.pseudo_domid, drhd->iommu);
 
     /* Transiently install the root into DomIO, for iommu_identity_mapping(). */
-    hd->arch.vtd.pgd_maddr = page_to_maddr(pg);
+    ctx->arch.vtd.pgd_maddr = page_to_maddr(pg);
 
     for_each_rmrr_device ( rmrr, bdf, i )
     {
@@ -3185,7 +3205,7 @@ static int cf_check intel_iommu_quarantine_init(struct pci_dev *pdev,
         {
             rmrr_found = true;
 
-            rc = iommu_identity_mapping(dom_io, p2m_access_rw,
+            rc = iommu_identity_mapping(dom_io, ctx, p2m_access_rw,
                                         rmrr->base_address, rmrr->end_address,
                                         0);
             if ( rc )
@@ -3195,8 +3215,8 @@ static int cf_check intel_iommu_quarantine_init(struct pci_dev *pdev,
         }
     }
 
-    iommu_identity_map_teardown(dom_io);
-    hd->arch.vtd.pgd_maddr = 0;
+    iommu_identity_map_teardown(dom_io, ctx);
+    ctx->arch.vtd.pgd_maddr = 0;
     pdev->arch.vtd.pgd_maddr = page_to_maddr(pg);
 
     if ( !rc && scratch_page )
@@ -3211,7 +3231,7 @@ static int cf_check intel_iommu_quarantine_init(struct pci_dev *pdev,
         pdev->arch.leaf_mfn = page_to_mfn(pgs[0]);
     }
 
-    page_list_move(&pdev->arch.pgtables_list, &hd->arch.pgtables.list);
+    page_list_move(&pdev->arch.pgtables_list, &ctx->arch.pgtables);
 
     if ( rc || (!scratch_page && !rmrr_found) )
         quarantine_teardown(pdev, drhd);
diff --git a/xen/drivers/passthrough/vtd/quirks.c b/xen/drivers/passthrough/vtd/quirks.c
index 0a10a46d90..195fc5c08f 100644
--- a/xen/drivers/passthrough/vtd/quirks.c
+++ b/xen/drivers/passthrough/vtd/quirks.c
@@ -423,7 +423,8 @@ static int __must_check map_me_phantom_function(struct domain *domain,
 
     /* map or unmap ME phantom function */
     if ( !(mode & UNMAP_ME_PHANTOM_FUNC) )
-        rc = domain_context_mapping_one(domain, drhd->iommu, 0,
+        rc = domain_context_mapping_one(domain, iommu_default_context(domain),
+                                        drhd->iommu, 0,
                                         PCI_DEVFN(dev, 7), NULL,
                                         domid, pgd_maddr, mode);
     else
diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c
index 0954cc4922..3bc8aa3e09 100644
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -19,6 +19,7 @@
 #include <xen/paging.h>
 #include <xen/guest_access.h>
 #include <xen/event.h>
+#include <xen/spinlock.h>
 #include <xen/softirq.h>
 #include <xen/vm_event.h>
 #include <xsm/xsm.h>
@@ -185,26 +186,31 @@ void __hwdom_init arch_iommu_check_autotranslated_hwdom(struct domain *d)
 
 int arch_iommu_domain_init(struct domain *d)
 {
-    struct domain_iommu *hd = dom_iommu(d);
+    INIT_PAGE_LIST_HEAD(&dom_iommu(d)->arch.free_queue);
+    return 0;
+}
 
-    spin_lock_init(&hd->arch.mapping_lock);
+int arch_iommu_context_init(struct domain *d, struct iommu_context *ctx, u32 flags)
+{
+    spin_lock_init(&ctx->arch.mapping_lock);
 
-    INIT_PAGE_LIST_HEAD(&hd->arch.pgtables.list);
-    spin_lock_init(&hd->arch.pgtables.lock);
-    INIT_LIST_HEAD(&hd->arch.identity_maps);
+    INIT_PAGE_LIST_HEAD(&ctx->arch.pgtables);
+    INIT_LIST_HEAD(&ctx->arch.identity_maps);
+
+    return 0;
+}
+
+int arch_iommu_context_teardown(struct domain *d, struct iommu_context *ctx, u32 flags)
+{
+    /* Cleanup all page tables */
+    while ( iommu_free_pgtables(d, ctx) == -ERESTART )
+        /* nothing */;
 
     return 0;
 }
 
 void arch_iommu_domain_destroy(struct domain *d)
 {
-    /*
-     * There should be not page-tables left allocated by the time the
-     * domain is destroyed. Note that arch_iommu_domain_destroy() is
-     * called unconditionally, so pgtables may be uninitialized.
-     */
-    ASSERT(!dom_iommu(d)->platform_ops ||
-           page_list_empty(&dom_iommu(d)->arch.pgtables.list));
 }
 
 struct identity_map {
@@ -214,14 +220,13 @@ struct identity_map {
     unsigned int count;
 };
 
-int iommu_identity_mapping(struct domain *d, p2m_access_t p2ma,
-                           paddr_t base, paddr_t end,
+int iommu_identity_mapping(struct domain *d, struct iommu_context *ctx,
+                           p2m_access_t p2ma, paddr_t base, paddr_t end,
                            unsigned int flag)
 {
     unsigned long base_pfn = base >> PAGE_SHIFT_4K;
     unsigned long end_pfn = PAGE_ALIGN_4K(end) >> PAGE_SHIFT_4K;
     struct identity_map *map;
-    struct domain_iommu *hd = dom_iommu(d);
 
     ASSERT(pcidevs_locked());
     ASSERT(base < end);
@@ -230,7 +235,7 @@ int iommu_identity_mapping(struct domain *d, p2m_access_t p2ma,
      * No need to acquire hd->arch.mapping_lock: Both insertion and removal
      * get done while holding pcidevs_lock.
      */
-    list_for_each_entry( map, &hd->arch.identity_maps, list )
+    list_for_each_entry( map, &ctx->arch.identity_maps, list )
     {
         if ( map->base == base && map->end == end )
         {
@@ -280,7 +285,7 @@ int iommu_identity_mapping(struct domain *d, p2m_access_t p2ma,
      * Insert into list ahead of mapping, so the range can be found when
      * trying to clean up.
      */
-    list_add_tail(&map->list, &hd->arch.identity_maps);
+    list_add_tail(&map->list, &ctx->arch.identity_maps);
 
     for ( ; base_pfn < end_pfn; ++base_pfn )
     {
@@ -300,12 +305,11 @@ int iommu_identity_mapping(struct domain *d, p2m_access_t p2ma,
     return 0;
 }
 
-void iommu_identity_map_teardown(struct domain *d)
+void iommu_identity_map_teardown(struct domain *d, struct iommu_context *ctx)
 {
-    struct domain_iommu *hd = dom_iommu(d);
     struct identity_map *map, *tmp;
 
-    list_for_each_entry_safe ( map, tmp, &hd->arch.identity_maps, list )
+    list_for_each_entry_safe ( map, tmp, &ctx->arch.identity_maps, list )
     {
         list_del(&map->list);
         xfree(map);
@@ -582,7 +586,7 @@ void iommu_free_domid(domid_t domid, unsigned long *map)
         BUG();
 }
 
-int iommu_free_pgtables(struct domain *d)
+int iommu_free_pgtables(struct domain *d, struct iommu_context *ctx)
 {
     struct domain_iommu *hd = dom_iommu(d);
     struct page_info *pg;
@@ -592,7 +596,7 @@ int iommu_free_pgtables(struct domain *d)
         return 0;
 
     /* After this barrier, no new IOMMU mappings can be inserted. */
-    spin_barrier(&hd->arch.mapping_lock);
+    spin_barrier(&ctx->arch.mapping_lock);
 
     /*
      * Pages will be moved to the free list below. So we want to
@@ -600,7 +604,7 @@ int iommu_free_pgtables(struct domain *d)
      */
     iommu_vcall(hd->platform_ops, clear_root_pgtable, d);
 
-    while ( (pg = page_list_remove_head(&hd->arch.pgtables.list)) )
+    while ( (pg = page_list_remove_head(&ctx->arch.pgtables)) )
     {
         free_domheap_page(pg);
 
@@ -612,6 +616,7 @@ int iommu_free_pgtables(struct domain *d)
 }
 
 struct page_info *iommu_alloc_pgtable(struct domain_iommu *hd,
+                                      struct iommu_context *ctx,
                                       uint64_t contig_mask)
 {
     unsigned int memflags = 0;
@@ -656,9 +661,7 @@ struct page_info *iommu_alloc_pgtable(struct domain_iommu *hd,
 
     unmap_domain_page(p);
 
-    spin_lock(&hd->arch.pgtables.lock);
-    page_list_add(pg, &hd->arch.pgtables.list);
-    spin_unlock(&hd->arch.pgtables.lock);
+    page_list_add(pg, &ctx->arch.pgtables);
 
     return pg;
 }
@@ -697,13 +700,12 @@ static void cf_check free_queued_pgtables(void *arg)
     }
 }
 
-void iommu_queue_free_pgtable(struct domain_iommu *hd, struct page_info *pg)
+void iommu_queue_free_pgtable(struct domain *d, struct iommu_context *ctx,
+                              struct page_info *pg)
 {
     unsigned int cpu = smp_processor_id();
 
-    spin_lock(&hd->arch.pgtables.lock);
-    page_list_del(pg, &hd->arch.pgtables.list);
-    spin_unlock(&hd->arch.pgtables.lock);
+    page_list_del(pg, &ctx->arch.pgtables);
 
     page_list_add_tail(pg, &per_cpu(free_pgt_list, cpu));
 
diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
index 37c4a1dc82..91f106968e 100644
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -416,9 +416,18 @@ extern int iommu_get_extra_reserved_device_memory(iommu_grdm_t *func,
 # define iommu_vcall iommu_call
 #endif
 
+struct iommu_context {
+    #ifdef CONFIG_HAS_PASSTHROUGH
+    u16 id; /* Context id (0 means default context) */
+
+    struct arch_iommu_context arch;
+    #endif
+};
+
 struct domain_iommu {
 #ifdef CONFIG_HAS_PASSTHROUGH
     struct arch_iommu arch;
+    struct iommu_context default_ctx;
 #endif
 
     /* iommu_ops */
@@ -453,6 +462,7 @@ struct domain_iommu {
 #define dom_iommu(d)              (&(d)->iommu)
 #define iommu_set_feature(d, f)   set_bit(f, dom_iommu(d)->features)
 #define iommu_clear_feature(d, f) clear_bit(f, dom_iommu(d)->features)
+#define iommu_default_context(d) (&dom_iommu(d)->default_ctx) /* does not lock ! */
 
 #ifdef CONFIG_HAS_PASSTHROUGH
 /* Are we using the domain P2M table as its IOMMU pagetable? */
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 11:09:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 11:09:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166861.1493325 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2Y2-0002cX-Fg; Thu, 20 Nov 2025 11:09:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166861.1493325; Thu, 20 Nov 2025 11:09:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2Y2-0002bq-AL; Thu, 20 Nov 2025 11:09:58 +0000
Received: by outflank-mailman (input) for mailman id 1166861;
 Thu, 20 Nov 2025 11:09:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xes+=54=bounce.vates.tech=bounce-md_30504962.691ef703.v1-ebe588fab1704163be70331fd0c31b01@srs-se1.protection.inumbo.net>)
 id 1vM2Y0-0001PI-Ml
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 11:09:56 +0000
Received: from mail128-17.atl41.mandrillapp.com
 (mail128-17.atl41.mandrillapp.com [198.2.128.17])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 71dff962-c601-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 12:09:55 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4dBwc33WLyzCf9PNg
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 11:09:55 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 ebe588fab1704163be70331fd0c31b01; Thu, 20 Nov 2025 11:09: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: 71dff962-c601-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763636995; x=1763906995;
	bh=oEKbdG6ielNAks5NqJQuvhTJR35C9k/ERkSX1n4x528=;
	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=cxwLwjTbVwH77lW2JfnPtavhYp+07kEeFqgk9yC44Y4cVXQdMsysciZRtrd5qvYD9
	 vmuMRimDZGnVx5gdbP0X9A5e/jnR+bKduzwSCRRPTbBLdOWFl9ASCe5Fl2N0lLYkPa
	 6hwG0nmZZRW7gxBomVnqUhU/OI5IAm4SZg9+gXdyIWDNCXccs5xVVXac7Z3s16UrCN
	 pOCAi+uvM07uYzTdqHlgp5lh0Iw3zRfsMWD+bWPK2CU2QmZ8GSa//FUF54z42TsaXe
	 +hw5BJ+rGCZ/U6rUCfzI0cwxUYPFJ9dQ91YkiJ5x9sM2iExhwxAesz7bampmrlco1J
	 MGinNuLEgvFQA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763636995; x=1763897495; i=teddy.astie@vates.tech;
	bh=oEKbdG6ielNAks5NqJQuvhTJR35C9k/ERkSX1n4x528=;
	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=Y3ou0ESd2vfAeiR5RkiP8R8ebsym6Tm7xsYXWcuqcU8YRaNCxTk+50klVXtbbsCLX
	 gwCPOEhQpWYKEDcP6nsr6PgefTvDe9VuUJ6iof0gibnifH1G+WtwQFGh+eE+8KY1lu
	 tpYUzKObGyGtnk8G4ilogBhl6G3Na5+cEViVvxMB7KvNC4/Ou/+InUvOpL5zJtgQd5
	 zXJgBK8ZwnjftZuxEnMN/XiJxujcJFlFmrDzV4PLcUAIghkkD7vAfhgNDr8aFZj3ti
	 HOdegz9qo4DBU2v0qnwqVInRB0lOuBSedYS2F8ztf1eyohoyTqbltStlXjwloHE8vP
	 xQ+Z39rjvepdw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=20v7=2005/14]=20iommu:=20Simplify=20quarantine=20logic?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763636994248
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>, "Jason Andryuk" <jason.andryuk@amd.com>
Message-Id: <31b2ede1eab92048b69fe4999a35eb7d4a4617ba.1763569135.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1763569135.git.teddy.astie@vates.tech>
References: <cover.1763569135.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.ebe588fab1704163be70331fd0c31b01?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251120:md
Date: Thu, 20 Nov 2025 11:09:55 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Current quarantine code is very hard to change and is very
complicated, remove most bits of it and replace it with direct
reassignement to dom_io domain instead.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
A idea would be to rework this feature using the new reworked
IOMMU subsystem.
---
 xen/arch/x86/include/asm/pci.h              |  17 --
 xen/drivers/passthrough/amd/iommu_map.c     | 129 +---------
 xen/drivers/passthrough/amd/pci_amd_iommu.c |  51 +---
 xen/drivers/passthrough/pci.c               |   7 +-
 xen/drivers/passthrough/vtd/iommu.c         | 253 ++------------------
 xen/drivers/passthrough/x86/iommu.c         |   1 -
 6 files changed, 29 insertions(+), 429 deletions(-)

diff --git a/xen/arch/x86/include/asm/pci.h b/xen/arch/x86/include/asm/pci.h
index 0b98081aea..c64dd13452 100644
--- a/xen/arch/x86/include/asm/pci.h
+++ b/xen/arch/x86/include/asm/pci.h
@@ -17,23 +17,6 @@ struct pci_dev;
 
 struct arch_pci_dev {
     vmask_t used_vectors;
-    /*
-     * These fields are (de)initialized under pcidevs-lock. Other uses of
-     * them don't race (de)initialization and hence don't strictly need any
-     * locking.
-     */
-    union {
-        /* Subset of struct arch_iommu's fields, to be used in dom_io. */
-        struct {
-            uint64_t pgd_maddr;
-        } vtd;
-        struct {
-            struct page_info *root_table;
-        } amd;
-    };
-    domid_t pseudo_domid;
-    mfn_t leaf_mfn;
-    struct page_list_head pgtables_list;
 };
 
 int pci_conf_write_intercept(unsigned int seg, unsigned int bdf,
diff --git a/xen/drivers/passthrough/amd/iommu_map.c b/xen/drivers/passthrough/amd/iommu_map.c
index 81a63cce8e..42827c7dc7 100644
--- a/xen/drivers/passthrough/amd/iommu_map.c
+++ b/xen/drivers/passthrough/amd/iommu_map.c
@@ -656,9 +656,6 @@ int amd_iommu_reserve_domain_unity_map(struct domain *d, struct iommu_context *c
 {
     int rc;
 
-    if ( d == dom_io )
-        return 0;
-
     for ( rc = 0; !rc && map; map = map->next )
     {
         p2m_access_t p2ma = p2m_access_n;
@@ -680,9 +677,6 @@ int amd_iommu_reserve_domain_unity_unmap(struct domain *d, struct iommu_context
 {
     int rc;
 
-    if ( d == dom_io )
-        return 0;
-
     for ( rc = 0; map; map = map->next )
     {
         int ret = iommu_identity_mapping(d, ctx, p2m_access_x, map->addr,
@@ -771,134 +765,15 @@ int cf_check amd_iommu_get_reserved_device_memory(
     return 0;
 }
 
-static int fill_qpt(union amd_iommu_pte *this, unsigned int level,
-                    struct page_info *pgs[IOMMU_MAX_PT_LEVELS])
-{
-    struct domain_iommu *hd = dom_iommu(dom_io);
-    struct iommu_context *ctx = iommu_default_context(dom_io);
-    unsigned int i;
-    int rc = 0;
-
-    for ( i = 0; !rc && i < PTE_PER_TABLE_SIZE; ++i )
-    {
-        union amd_iommu_pte *pte = &this[i], *next;
-
-        if ( !pte->pr )
-        {
-            if ( !pgs[level] )
-            {
-                /*
-                 * The pgtable allocator is fine for the leaf page, as well as
-                 * page table pages, and the resulting allocations are always
-                 * zeroed.
-                 */
-                pgs[level] = iommu_alloc_pgtable(hd, ctx, 0);
-                if ( !pgs[level] )
-                {
-                    rc = -ENOMEM;
-                    break;
-                }
-
-                if ( level )
-                {
-                    next = __map_domain_page(pgs[level]);
-                    rc = fill_qpt(next, level - 1, pgs);
-                    unmap_domain_page(next);
-                }
-            }
-
-            /*
-             * PDEs are essentially a subset of PTEs, so this function
-             * is fine to use even at the leaf.
-             */
-            set_iommu_pde_present(pte, mfn_x(page_to_mfn(pgs[level])), level,
-                                  true, true);
-        }
-        else if ( level && pte->next_level )
-        {
-            next = map_domain_page(_mfn(pte->mfn));
-            rc = fill_qpt(next, level - 1, pgs);
-            unmap_domain_page(next);
-        }
-    }
-
-    return rc;
-}
-
 int cf_check amd_iommu_quarantine_init(struct pci_dev *pdev, bool scratch_page)
 {
-    struct domain_iommu *hd = dom_iommu(dom_io);
-    struct iommu_context *ctx = iommu_default_context(dom_io);
-    unsigned int level = ctx->arch.amd.paging_mode;
-    unsigned int req_id = get_dma_requestor_id(pdev->seg, pdev->sbdf.bdf);
-    const struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(pdev->seg);
-    int rc;
+    amd_iommu_quarantine_teardown(pdev);
 
-    ASSERT(pcidevs_locked());
-    ASSERT(!ctx->arch.amd.root_table);
-    ASSERT(page_list_empty(&ctx->arch.pgtables));
-
-    if ( !scratch_page && !ivrs_mappings[req_id].unity_map )
-        return 0;
-
-    ASSERT(pdev->arch.pseudo_domid != DOMID_INVALID);
-
-    if ( pdev->arch.amd.root_table )
-    {
-        clear_domain_page(pdev->arch.leaf_mfn);
-        return 0;
-    }
-
-    pdev->arch.amd.root_table = iommu_alloc_pgtable(hd, ctx, 0);
-    if ( !pdev->arch.amd.root_table )
-        return -ENOMEM;
-
-    /* Transiently install the root into DomIO, for iommu_identity_mapping(). */
-    ctx->arch.amd.root_table = pdev->arch.amd.root_table;
-
-    rc = amd_iommu_reserve_domain_unity_map(dom_io, ctx,
-                                            ivrs_mappings[req_id].unity_map,
-                                            0);
-
-    iommu_identity_map_teardown(dom_io, ctx);
-    ctx->arch.amd.root_table = NULL;
-
-    if ( rc )
-        AMD_IOMMU_WARN("%pp: quarantine unity mapping failed\n", &pdev->sbdf);
-    else if ( scratch_page )
-    {
-        union amd_iommu_pte *root;
-        struct page_info *pgs[IOMMU_MAX_PT_LEVELS] = {};
-
-        root = __map_domain_page(pdev->arch.amd.root_table);
-        rc = fill_qpt(root, level - 1, pgs);
-        unmap_domain_page(root);
-
-        pdev->arch.leaf_mfn = page_to_mfn(pgs[0]);
-    }
-
-    page_list_move(&pdev->arch.pgtables_list, &ctx->arch.pgtables);
-
-    if ( rc )
-        amd_iommu_quarantine_teardown(pdev);
-
-    return rc;
+    return 0;
 }
 
 void amd_iommu_quarantine_teardown(struct pci_dev *pdev)
 {
-    struct iommu_context *ctx = iommu_default_context(dom_io);
-
-    ASSERT(pcidevs_locked());
-
-    if ( !pdev->arch.amd.root_table )
-        return;
-
-    ASSERT(page_list_empty(&ctx->arch.pgtables));
-    page_list_move(&ctx->arch.pgtables, &pdev->arch.pgtables_list);
-    while ( iommu_free_pgtables(dom_io, ctx) == -ERESTART )
-        /* nothing */;
-    pdev->arch.amd.root_table = NULL;
 }
 
 /*
diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/passthrough/amd/pci_amd_iommu.c
index 964f6b47db..c871660661 100644
--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
+++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
@@ -138,9 +138,6 @@ static int __must_check amd_iommu_setup_domain_device(
     const struct page_info *root_pg;
     domid_t domid;
 
-    if ( QUARANTINE_SKIP(domain, pdev) )
-        return 0;
-
     BUG_ON(!ctx->arch.amd.paging_mode || !iommu->dev_table.buffer);
 
     rc = allocate_domain_resources(domain);
@@ -159,16 +156,8 @@ static int __must_check amd_iommu_setup_domain_device(
     dte = &table[req_id];
     ivrs_dev = &get_ivrs_mappings(iommu->sbdf.seg)[req_id];
 
-    if ( domain != dom_io )
-    {
-        root_pg = ctx->arch.amd.root_table;
-        domid = domain->domain_id;
-    }
-    else
-    {
-        root_pg = pdev->arch.amd.root_table;
-        domid = pdev->arch.pseudo_domid;
-    }
+    root_pg = ctx->arch.amd.root_table;
+    domid = domain->domain_id;
 
     spin_lock_irqsave(&iommu->lock, flags);
 
@@ -414,9 +403,6 @@ static void amd_iommu_disable_domain_device(const struct domain *domain,
     int req_id;
     u8 bus = pdev->bus;
 
-    if ( QUARANTINE_SKIP(domain, pdev) )
-        return;
-
     ASSERT(pcidevs_locked());
 
     if ( pci_ats_device(iommu->sbdf.seg, bus, pdev->devfn) &&
@@ -479,14 +465,9 @@ static int cf_check reassign_device(
         return -ENODEV;
     }
 
-    if ( !QUARANTINE_SKIP(target, pdev) )
-    {
-        rc = amd_iommu_setup_domain_device(target, target_ctx, iommu, devfn, pdev);
-        if ( rc )
-            return rc;
-    }
-    else
-        amd_iommu_disable_domain_device(source, iommu, devfn, pdev);
+    rc = amd_iommu_setup_domain_device(target, target_ctx, iommu, devfn, pdev);
+    if ( rc )
+        return rc;
 
     if ( devfn == pdev->devfn && pdev->domain != target )
     {
@@ -579,8 +560,6 @@ static int cf_check amd_iommu_add_device(u8 devfn, struct pci_dev *pdev)
     struct iommu_context *ctx;
     u16 bdf;
     struct ivrs_mappings *ivrs_mappings;
-    bool fresh_domid = false;
-    int ret;
 
     if ( !pdev->domain )
         return -EINVAL;
@@ -649,22 +628,7 @@ static int cf_check amd_iommu_add_device(u8 devfn, struct pci_dev *pdev)
         AMD_IOMMU_WARN("%pd: unity mapping failed for %pp\n",
                        pdev->domain, &PCI_SBDF(pdev->seg, bdf));
 
-    if ( iommu_quarantine && pdev->arch.pseudo_domid == DOMID_INVALID )
-    {
-        pdev->arch.pseudo_domid = iommu_alloc_domid(iommu->domid_map);
-        if ( pdev->arch.pseudo_domid == DOMID_INVALID )
-            return -ENOSPC;
-        fresh_domid = true;
-    }
-
-    ret = amd_iommu_setup_domain_device(pdev->domain, ctx, iommu, devfn, pdev);
-    if ( ret && fresh_domid )
-    {
-        iommu_free_domid(pdev->arch.pseudo_domid, iommu->domid_map);
-        pdev->arch.pseudo_domid = DOMID_INVALID;
-    }
-
-    return ret;
+    return amd_iommu_setup_domain_device(pdev->domain, ctx, iommu, devfn, pdev);
 }
 
 static int cf_check amd_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
@@ -700,9 +664,6 @@ static int cf_check amd_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
 
     amd_iommu_quarantine_teardown(pdev);
 
-    iommu_free_domid(pdev->arch.pseudo_domid, iommu->domid_map);
-    pdev->arch.pseudo_domid = DOMID_INVALID;
-
     if ( amd_iommu_perdev_intremap &&
          ivrs_mappings[bdf].dte_requestor_id == bdf &&
          ivrs_mappings[bdf].intremap_table )
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 52c22fa50c..ee73d55740 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -1371,12 +1371,7 @@ static int cf_check _dump_pci_devices(struct pci_seg *pseg, void *arg)
     list_for_each_entry ( pdev, &pseg->alldevs_list, alldevs_list )
     {
         printk("%pp - ", &pdev->sbdf);
-#ifdef CONFIG_X86
-        if ( pdev->domain == dom_io )
-            printk("DomIO:%x", pdev->arch.pseudo_domid);
-        else
-#endif
-            printk("%pd", pdev->domain);
+        printk("%pd", pdev->domain);
         printk(" - node %-3d", (pdev->node != NUMA_NO_NODE) ? pdev->node : -1);
         pdev_dump_msi(pdev);
         printk("\n");
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index 9252c3e0f3..f269fca9bf 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -49,14 +49,6 @@
 #define CONTIG_MASK DMA_PTE_CONTIG_MASK
 #include <asm/pt-contig-markers.h>
 
-/* dom_io is used as a sentinel for quarantined devices */
-#define QUARANTINE_SKIP(d, pgd_maddr) ((d) == dom_io && !(pgd_maddr))
-#define DEVICE_DOMID(d, pdev) ((d) != dom_io ? (d)->domain_id \
-                                             : (pdev)->arch.pseudo_domid)
-#define DEVICE_PGTABLE(d, pdev) ((d) != dom_io \
-                                 ? iommu_default_context(d)->arch.vtd.pgd_maddr \
-                                 : (pdev)->arch.vtd.pgd_maddr)
-
 bool __read_mostly iommu_igfx = true;
 bool __read_mostly iommu_qinval = true;
 #ifndef iommu_snoop
@@ -1495,8 +1487,6 @@ int domain_context_mapping_one(
     int rc, ret;
     bool flush_dev_iotlb;
 
-    if ( QUARANTINE_SKIP(domain, pgd_maddr) )
-        return 0;
 
     ASSERT(pcidevs_locked());
     spin_lock(&iommu->lock);
@@ -1518,8 +1508,6 @@ int domain_context_mapping_one(
         domid = did_to_domain_id(iommu, prev_did);
         if ( domid < DOMID_FIRST_RESERVED )
             prev_dom = rcu_lock_domain_by_id(domid);
-        else if ( pdev ? domid == pdev->arch.pseudo_domid : domid > DOMID_MASK )
-            prev_dom = rcu_lock_domain(dom_io);
         if ( !prev_dom )
         {
             spin_unlock(&iommu->lock);
@@ -1651,8 +1639,8 @@ int domain_context_mapping_one(
             ret = domain_context_unmap_one(domain, iommu, bus, devfn);
         else
             ret = domain_context_mapping_one(prev_dom, ctx, iommu, bus, devfn, pdev,
-                                             DEVICE_DOMID(prev_dom, pdev),
-                                             DEVICE_PGTABLE(prev_dom, pdev),
+                                             prev_dom->domain_id,
+                                             iommu_default_context(prev_dom)->arch.vtd.pgd_maddr,
                                              (mode & MAP_WITH_RMRR) |
                                              MAP_ERROR_RECOVERY) < 0;
 
@@ -1674,8 +1662,8 @@ static int domain_context_mapping(struct domain *domain, struct iommu_context *c
 {
     const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
     const struct acpi_rmrr_unit *rmrr;
-    paddr_t pgd_maddr = DEVICE_PGTABLE(domain, pdev);
-    domid_t orig_domid = pdev->arch.pseudo_domid;
+    paddr_t pgd_maddr = ctx->arch.vtd.pgd_maddr;
+    domid_t did = domain->domain_id;
     int ret = 0;
     unsigned int i, mode = 0;
     uint16_t seg = pdev->seg, bdf;
@@ -1728,20 +1716,11 @@ static int domain_context_mapping(struct domain *domain, struct iommu_context *c
         if ( !drhd )
             return -ENODEV;
 
-        if ( iommu_quarantine && orig_domid == DOMID_INVALID )
-        {
-            pdev->arch.pseudo_domid =
-                iommu_alloc_domid(drhd->iommu->pseudo_domid_map);
-            if ( pdev->arch.pseudo_domid == DOMID_INVALID )
-                return -ENOSPC;
-        }
-
         if ( iommu_debug )
             printk(VTDPREFIX "%pd:PCIe: map %pp\n",
                    domain, &PCI_SBDF(seg, bus, devfn));
         ret = domain_context_mapping_one(domain, ctx, drhd->iommu, bus, devfn, pdev,
-                                         DEVICE_DOMID(domain, pdev), pgd_maddr,
-                                         mode);
+                                         did, pgd_maddr, mode);
         if ( ret > 0 )
             ret = 0;
         if ( !ret && devfn == pdev->devfn && ats_device(pdev, drhd) > 0 )
@@ -1753,21 +1732,12 @@ static int domain_context_mapping(struct domain *domain, struct iommu_context *c
         if ( !drhd )
             return -ENODEV;
 
-        if ( iommu_quarantine && orig_domid == DOMID_INVALID )
-        {
-            pdev->arch.pseudo_domid =
-                iommu_alloc_domid(drhd->iommu->pseudo_domid_map);
-            if ( pdev->arch.pseudo_domid == DOMID_INVALID )
-                return -ENOSPC;
-        }
-
         if ( iommu_debug )
             printk(VTDPREFIX "%pd:PCI: map %pp\n",
                    domain, &PCI_SBDF(seg, bus, devfn));
 
         ret = domain_context_mapping_one(domain, ctx, drhd->iommu, bus, devfn,
-                                         pdev, DEVICE_DOMID(domain, pdev),
-                                         pgd_maddr, mode);
+                                         pdev, did, pgd_maddr, mode);
         if ( ret < 0 )
             break;
         prev_present = ret;
@@ -1797,8 +1767,7 @@ static int domain_context_mapping(struct domain *domain, struct iommu_context *c
          */
         if ( ret >= 0 )
             ret = domain_context_mapping_one(domain, ctx, drhd->iommu, bus, devfn,
-                                             NULL, DEVICE_DOMID(domain, pdev),
-                                             pgd_maddr, mode);
+                                             NULL, did, pgd_maddr, mode);
 
         /*
          * Devices behind PCIe-to-PCI/PCIx bridge may generate different
@@ -1813,8 +1782,7 @@ static int domain_context_mapping(struct domain *domain, struct iommu_context *c
         if ( !ret && pdev_type(seg, bus, devfn) == DEV_TYPE_PCIe2PCI_BRIDGE &&
              (secbus != pdev->bus || pdev->devfn != 0) )
             ret = domain_context_mapping_one(domain, ctx, drhd->iommu, secbus, 0,
-                                             NULL, DEVICE_DOMID(domain, pdev),
-                                             pgd_maddr, mode);
+                                             NULL, did, pgd_maddr, mode);
 
         if ( ret )
         {
@@ -1836,13 +1804,6 @@ static int domain_context_mapping(struct domain *domain, struct iommu_context *c
     if ( !ret && devfn == pdev->devfn )
         pci_vtd_quirk(pdev);
 
-    if ( ret && drhd && orig_domid == DOMID_INVALID )
-    {
-        iommu_free_domid(pdev->arch.pseudo_domid,
-                         drhd->iommu->pseudo_domid_map);
-        pdev->arch.pseudo_domid = DOMID_INVALID;
-    }
-
     return ret;
 }
 
@@ -2006,10 +1967,6 @@ static const struct acpi_drhd_unit *domain_context_unmap(
         return ERR_PTR(-EINVAL);
     }
 
-    if ( !ret && pdev->devfn == devfn &&
-         !QUARANTINE_SKIP(domain, pdev->arch.vtd.pgd_maddr) )
-        check_cleanup_domid_map(domain, pdev, iommu);
-
     return drhd;
 }
 
@@ -2043,21 +2000,6 @@ static void cf_check iommu_domain_teardown(struct domain *d)
 static void quarantine_teardown(struct pci_dev *pdev,
                                 const struct acpi_drhd_unit *drhd)
 {
-    struct iommu_context *ctx = iommu_default_context(dom_io);
-
-    ASSERT(pcidevs_locked());
-
-    if ( !pdev->arch.vtd.pgd_maddr )
-        return;
-
-    ASSERT(page_list_empty(&ctx->arch.pgtables));
-    page_list_move(&ctx->arch.pgtables, &pdev->arch.pgtables_list);
-    while ( iommu_free_pgtables(dom_io, ctx) == -ERESTART )
-        /* nothing */;
-    pdev->arch.vtd.pgd_maddr = 0;
-
-    if ( drhd )
-        cleanup_domid_map(pdev->arch.pseudo_domid, drhd->iommu);
 }
 
 static int __must_check cf_check intel_iommu_map_page(
@@ -2398,13 +2340,6 @@ static int cf_check intel_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
 
     quarantine_teardown(pdev, drhd);
 
-    if ( drhd )
-    {
-        iommu_free_domid(pdev->arch.pseudo_domid,
-                         drhd->iommu->pseudo_domid_map);
-        pdev->arch.pseudo_domid = DOMID_INVALID;
-    }
-
     return 0;
 }
 
@@ -2762,42 +2697,22 @@ static int cf_check reassign_device_ownership(
 {
     int ret;
 
-    if ( !QUARANTINE_SKIP(target, pdev->arch.vtd.pgd_maddr) )
-    {
-        struct iommu_context *target_ctx = iommu_default_context(target);
-
-        if ( !has_arch_pdevs(target) )
-            vmx_pi_hooks_assign(target);
+    if ( !has_arch_pdevs(target) )
+        vmx_pi_hooks_assign(target);
 
 #ifdef CONFIG_PV
-        /*
-         * Devices assigned to untrusted domains (here assumed to be any domU)
-         * can attempt to send arbitrary LAPIC/MSI messages. We are unprotected
-         * by the root complex unless interrupt remapping is enabled.
-         */
-        if ( !iommu_intremap && !is_hardware_domain(target) &&
-             !is_system_domain(target) )
-            untrusted_msi = true;
+    /*
+        * Devices assigned to untrusted domains (here assumed to be any domU)
+        * can attempt to send arbitrary LAPIC/MSI messages. We are unprotected
+        * by the root complex unless interrupt remapping is enabled.
+        */
+    if ( !iommu_intremap && !is_hardware_domain(target) &&
+            !is_system_domain(target) )
+        untrusted_msi = true;
 #endif
 
-        ret = domain_context_mapping(target, target_ctx, devfn, pdev);
-
-        if ( !ret && pdev->devfn == devfn &&
-             !QUARANTINE_SKIP(source, pdev->arch.vtd.pgd_maddr) )
-        {
-            const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
+    ret = domain_context_mapping(target, iommu_default_context(target), devfn, pdev);
 
-            if ( drhd )
-                check_cleanup_domid_map(source, pdev, drhd->iommu);
-        }
-    }
-    else
-    {
-        const struct acpi_drhd_unit *drhd;
-
-        drhd = domain_context_unmap(source, devfn, pdev);
-        ret = IS_ERR(drhd) ? PTR_ERR(drhd) : 0;
-    }
     if ( ret )
     {
         if ( !has_arch_pdevs(target) )
@@ -2896,9 +2811,6 @@ static int cf_check intel_iommu_assign_device(
         }
     }
 
-    if ( d == dom_io )
-        return reassign_device_ownership(s, d, devfn, pdev);
-
     /* Setup rmrr identity mapping */
     for_each_rmrr_device( rmrr, bdf, i )
     {
@@ -3108,135 +3020,10 @@ static void cf_check vtd_dump_page_tables(struct domain *d)
                               agaw_to_level(hd->arch.vtd.agaw), 0, 0);
 }
 
-static int fill_qpt(struct dma_pte *this, unsigned int level,
-                    struct page_info *pgs[6])
-{
-    struct domain_iommu *hd = dom_iommu(dom_io);
-    struct iommu_context *ctx = iommu_default_context(dom_io);
-    unsigned int i;
-    int rc = 0;
-
-    for ( i = 0; !rc && i < PTE_NUM; ++i )
-    {
-        struct dma_pte *pte = &this[i], *next;
-
-        if ( !dma_pte_present(*pte) )
-        {
-            if ( !pgs[level] )
-            {
-                /*
-                 * The pgtable allocator is fine for the leaf page, as well as
-                 * page table pages, and the resulting allocations are always
-                 * zeroed.
-                 */
-                pgs[level] = iommu_alloc_pgtable(hd, ctx, 0);
-                if ( !pgs[level] )
-                {
-                    rc = -ENOMEM;
-                    break;
-                }
-
-                if ( level )
-                {
-                    next = map_vtd_domain_page(page_to_maddr(pgs[level]));
-                    rc = fill_qpt(next, level - 1, pgs);
-                    unmap_vtd_domain_page(next);
-                }
-            }
-
-            dma_set_pte_addr(*pte, page_to_maddr(pgs[level]));
-            dma_set_pte_readable(*pte);
-            dma_set_pte_writable(*pte);
-        }
-        else if ( level && !dma_pte_superpage(*pte) )
-        {
-            next = map_vtd_domain_page(dma_pte_addr(*pte));
-            rc = fill_qpt(next, level - 1, pgs);
-            unmap_vtd_domain_page(next);
-        }
-    }
-
-    return rc;
-}
-
 static int cf_check intel_iommu_quarantine_init(struct pci_dev *pdev,
                                                 bool scratch_page)
 {
-    struct domain_iommu *hd = dom_iommu(dom_io);
-    struct iommu_context *ctx = iommu_default_context(dom_io);
-    struct page_info *pg;
-    unsigned int agaw = hd->arch.vtd.agaw;
-    unsigned int level = agaw_to_level(agaw);
-    const struct acpi_drhd_unit *drhd;
-    const struct acpi_rmrr_unit *rmrr;
-    unsigned int i, bdf;
-    bool rmrr_found = false;
-    int rc;
-
-    ASSERT(pcidevs_locked());
-    ASSERT(!ctx->arch.vtd.pgd_maddr);
-    ASSERT(page_list_empty(&ctx->arch.pgtables));
-
-    if ( pdev->arch.vtd.pgd_maddr )
-    {
-        clear_domain_page(pdev->arch.leaf_mfn);
-        return 0;
-    }
-
-    drhd = acpi_find_matched_drhd_unit(pdev);
-    if ( !drhd )
-        return -ENODEV;
-
-    pg = iommu_alloc_pgtable(hd, ctx, 0);
-    if ( !pg )
-        return -ENOMEM;
-
-    rc = context_set_domain_id(NULL, pdev->arch.pseudo_domid, drhd->iommu);
-
-    /* Transiently install the root into DomIO, for iommu_identity_mapping(). */
-    ctx->arch.vtd.pgd_maddr = page_to_maddr(pg);
-
-    for_each_rmrr_device ( rmrr, bdf, i )
-    {
-        if ( rc )
-            break;
-
-        if ( rmrr->segment == pdev->seg && bdf == pdev->sbdf.bdf )
-        {
-            rmrr_found = true;
-
-            rc = iommu_identity_mapping(dom_io, ctx, p2m_access_rw,
-                                        rmrr->base_address, rmrr->end_address,
-                                        0);
-            if ( rc )
-                printk(XENLOG_ERR VTDPREFIX
-                       "%pp: RMRR quarantine mapping failed\n",
-                       &pdev->sbdf);
-        }
-    }
-
-    iommu_identity_map_teardown(dom_io, ctx);
-    ctx->arch.vtd.pgd_maddr = 0;
-    pdev->arch.vtd.pgd_maddr = page_to_maddr(pg);
-
-    if ( !rc && scratch_page )
-    {
-        struct dma_pte *root;
-        struct page_info *pgs[6] = {};
-
-        root = map_vtd_domain_page(pdev->arch.vtd.pgd_maddr);
-        rc = fill_qpt(root, level - 1, pgs);
-        unmap_vtd_domain_page(root);
-
-        pdev->arch.leaf_mfn = page_to_mfn(pgs[0]);
-    }
-
-    page_list_move(&pdev->arch.pgtables_list, &ctx->arch.pgtables);
-
-    if ( rc || (!scratch_page && !rmrr_found) )
-        quarantine_teardown(pdev, drhd);
-
-    return rc;
+    return 0;
 }
 
 static void cf_check vtd_quiesce(void)
diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c
index 3bc8aa3e09..75c8752022 100644
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -528,7 +528,6 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
 
 void arch_pci_init_pdev(struct pci_dev *pdev)
 {
-    pdev->arch.pseudo_domid = DOMID_INVALID;
 }
 
 unsigned long *__init iommu_init_domid(domid_t reserve)
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 11:09:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 11:09:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166862.1493335 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2Y3-0002tn-Po; Thu, 20 Nov 2025 11:09:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166862.1493335; Thu, 20 Nov 2025 11:09:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2Y3-0002sU-Lx; Thu, 20 Nov 2025 11:09:59 +0000
Received: by outflank-mailman (input) for mailman id 1166862;
 Thu, 20 Nov 2025 11:09: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=W5t6=54=bounce.vates.tech=bounce-md_30504962.691ef704.v1-d71239346bcd49868e89efb5fc5acd64@srs-se1.protection.inumbo.net>)
 id 1vM2Y1-0001PI-OX
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 11:09:57 +0000
Received: from mail128-17.atl41.mandrillapp.com
 (mail128-17.atl41.mandrillapp.com [198.2.128.17])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 72b87bbb-c601-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 12:09:57 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4dBwc46VMbzCf9PPb
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 11:09:56 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d71239346bcd49868e89efb5fc5acd64; Thu, 20 Nov 2025 11:09: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: 72b87bbb-c601-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763636996; x=1763906996;
	bh=IB8SiWp3cnHfGEHVz8f7L6lwm7yItLzdTN6a/r1KsBo=;
	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=fwPCa3hu2hOsSHeXJ4nMj7oVo3/TXVVHKUlnrxC3A8y3Cb8LhFPP/saDmj8UwFqiS
	 XDfoYnZDJ6R1vbkCu9hTbZ71yN8NAEs4VvUxgy9OLpL9IPLWI3mV6lysBLy7hzwS1u
	 PCtzIQIiJZpwo810F/LV3hys0KDVcaNQfLayYNyd/Q7IxF3awrnoO1NWk4njp9Yws3
	 PbuJqyJhyDtQ1rKGfqdOTxNLdIKc7Wk/pn8/Md6POMum2w3weYrSH57tKrp9iHnsTr
	 J5YU305sczW5PCIIa8nNB8r06DQ7AaMlHdH02VNrqP5epDLD7QRWjf8J8l602xk9iQ
	 sozRMLicDu8AA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763636996; x=1763897496; i=teddy.astie@vates.tech;
	bh=IB8SiWp3cnHfGEHVz8f7L6lwm7yItLzdTN6a/r1KsBo=;
	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=1dXOugXmB9ixtIA5mLfGYMcvAuO0IQ823Ep53dWgvJEcdGxV7EXvmrD9FKyIU6g5V
	 e+QjMhuubAKjBKqTnzKWd1s3x7rbzx425P4kNjdXIYry7Ja+goWBWQwKwb3yPYyq55
	 sPEl30pE+3Vca9kZi3hrzYUCSSzOCGBv3PRzG6uafraD3ZG5T4hI4cRsogszRen1wL
	 9pg4SJ2UU+Or4dxpuuX4aQluLkTkW++jjE3g0X/GqjLTeygzTfIDxm6LGvFEhhFYM8
	 jCmq1vPd2ZicwB2kuOiTfkvEZfq+GU0MOLiKCS6OLMJuv0iVdPeDWrmcwwRvc3A3eY
	 lC5yjDaR9E21A==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=20v7=2006/14]=20vtd:=20Remove=20MAP=5FERROR=5FRECOVERY=20code=20path=20in=20domain=5Fcontext=5Fmapping=5Fone?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763636996032
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <149e3a765a5a55792be7af0a4d9c0ca9fb5098c6.1763569135.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1763569135.git.teddy.astie@vates.tech>
References: <cover.1763569135.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.d71239346bcd49868e89efb5fc5acd64?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251120:md
Date: Thu, 20 Nov 2025 11:09:56 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This logic is basically never called as the only possible failures are
- no memory to allocate the pagetable (if it isn't already allocated)
  this is fixed in this patch serie by ensuring that the pagetable is allocated
  when entering this function
- EILSEQ when there is a race condtion with hardware, which should not happen under
  normal circonstances

Remove this logic to simplify the error management of the function.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
This is fairly similar to [1], although we don't check for -EILSEQ.
Such failures can happen through me_wifi_quirk which can recursively
calls domain_context_mapping_one.

[1] https://lore.kernel.org/xen-devel/b0e81bd67c3f135a4102d12ed95a52ce56482992.1762961527.git.teddy.astie@vates.tech/
---
 xen/drivers/passthrough/vtd/iommu.c | 20 --------------------
 xen/drivers/passthrough/vtd/vtd.h   |  3 +--
 2 files changed, 1 insertion(+), 22 deletions(-)

diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index f269fca9bf..986b05b9dd 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -1627,26 +1627,6 @@ int domain_context_mapping_one(
     if ( !seg && !rc )
         rc = me_wifi_quirk(domain, bus, devfn, domid, pgd_maddr, mode);
 
-    if ( rc && !(mode & MAP_ERROR_RECOVERY) )
-    {
-        if ( !prev_dom ||
-             /*
-              * Unmapping here means DEV_TYPE_PCI devices with RMRRs (if such
-              * exist) would cause problems if such a region was actually
-              * accessed.
-              */
-             (prev_dom == dom_io && !pdev) )
-            ret = domain_context_unmap_one(domain, iommu, bus, devfn);
-        else
-            ret = domain_context_mapping_one(prev_dom, ctx, iommu, bus, devfn, pdev,
-                                             prev_dom->domain_id,
-                                             iommu_default_context(prev_dom)->arch.vtd.pgd_maddr,
-                                             (mode & MAP_WITH_RMRR) |
-                                             MAP_ERROR_RECOVERY) < 0;
-
-        if ( !ret && pdev && pdev->devfn == devfn )
-            check_cleanup_domid_map(domain, pdev, iommu);
-    }
 
     if ( prev_dom )
         rcu_unlock_domain(prev_dom);
diff --git a/xen/drivers/passthrough/vtd/vtd.h b/xen/drivers/passthrough/vtd/vtd.h
index f0286b40c3..0178214929 100644
--- a/xen/drivers/passthrough/vtd/vtd.h
+++ b/xen/drivers/passthrough/vtd/vtd.h
@@ -28,8 +28,7 @@
  */
 #define MAP_WITH_RMRR         (1u << 0)
 #define MAP_OWNER_DYING       (1u << 1)
-#define MAP_ERROR_RECOVERY    (1u << 2)
-#define UNMAP_ME_PHANTOM_FUNC (1u << 3)
+#define UNMAP_ME_PHANTOM_FUNC (1u << 2)
 
 struct IO_APIC_route_remap_entry {
     union {
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 11:10:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 11:10:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166863.1493345 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2Y5-0003Bq-99; Thu, 20 Nov 2025 11:10:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166863.1493345; Thu, 20 Nov 2025 11:10:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2Y5-0003BX-5W; Thu, 20 Nov 2025 11:10:01 +0000
Received: by outflank-mailman (input) for mailman id 1166863;
 Thu, 20 Nov 2025 11:10: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=hnm0=54=bounce.vates.tech=bounce-md_30504962.691ef706.v1-e781f1b7ca2f4b25996ea524fb6efc5f@srs-se1.protection.inumbo.net>)
 id 1vM2Y4-0001PI-ED
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 11:10:00 +0000
Received: from mail180-15.suw31.mandrillapp.com
 (mail180-15.suw31.mandrillapp.com [198.2.180.15])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 73b8db9e-c601-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 12:09:59 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-15.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4dBwc63Ng0zPm112H
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 11:09:58 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 e781f1b7ca2f4b25996ea524fb6efc5f; Thu, 20 Nov 2025 11:09: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: 73b8db9e-c601-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763636998; x=1763906998;
	bh=yUV9y407otX9CTpYQfrPpY0mk2tstV0R95lLgKbizS0=;
	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=m890f9m8Cfb7FagmI29g3tyzPaE7WALU/wNNVBfHOhUOgGQyAYQ1u+Gs4M1OZJEC1
	 jRGg+fVL+aI/p1wt+RwUCsaWUhm27CArl4HwZjyrL/eJG6BdcLFFdiJcBnoVrFLf3A
	 4hUxsPAD95Ysov0dANBy7nM+/5rZXlbWy88zr8RLAZXmbniLTAT0N/F39g4NIjMVAk
	 e9wesSg6GXlXD5SwK4bjIGS/M/giwX5Q8vMUJpF6ZoDh1caT6sRHPV5PQX1Rhka8O4
	 yR6GQVKZbMaQ40ma4BlORSZWEfMIXvbad8RlPAJNLdhcYh1nXTSnvDXk5J301fn4fd
	 Ab0iYWw4V4k3Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763636998; x=1763897498; i=teddy.astie@vates.tech;
	bh=yUV9y407otX9CTpYQfrPpY0mk2tstV0R95lLgKbizS0=;
	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=I6S5EShl9kF6ApgDqY+JhpQBpwOuxfCy6G7VAmmerE5M5F09lPsXNBkuyRqGsRUGw
	 ywvGVjFZtj6Vhvs+RPwckIXLPgtqrvGYQQu+UQaDhLBw8UUby8BmBymb6udB9uyZif
	 To8l3R11TO1S8mHX8v2atMMLpUqEwmwcZ56OQopDcb9sQjphwQ9P4hQZcGk4+19WdB
	 1cKft26QH7je2f2aqDa6SR59X4VrGMKz8JrSXoR80CqoCPNF5xb1lmrEV5PQ6qhv94
	 v2/CkjZ1ELnZ1cqrqQioUqmbC8qSdtCUSHJOQ8Z4r70Ah738l2g4QZzEmkq+7HU0Ol
	 3j+xNm9DHlgJA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=20v7=2007/14]=20iommu:=20Simplify=20hardware=20did=20management?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763636997412
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>, "Jason Andryuk" <jason.andryuk@amd.com>
Message-Id: <c86ba5c4f96dcce7be1f4a0c5533ae8a476363e5.1763569135.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1763569135.git.teddy.astie@vates.tech>
References: <cover.1763569135.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.e781f1b7ca2f4b25996ea524fb6efc5f?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251120:md
Date: Thu, 20 Nov 2025 11:09:58 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Simplify the hardware DID management by allocating a DID
per IOMMU context (currently Xen domain) instead of trying
to reuse Xen domain DID (which may not be possible depending
on hardware constraints like did limits).

Signed-off-by Teddy Astie <teddy.astie@vates.tech>
---
 xen/arch/x86/include/asm/iommu.h         |   5 +-
 xen/drivers/passthrough/amd/iommu.h      |   3 +
 xen/drivers/passthrough/amd/iommu_cmd.c  |   4 +-
 xen/drivers/passthrough/amd/iommu_init.c |   3 +-
 xen/drivers/passthrough/vtd/extern.h     |   2 -
 xen/drivers/passthrough/vtd/iommu.c      | 335 +++++------------------
 xen/drivers/passthrough/vtd/iommu.h      |   2 -
 xen/drivers/passthrough/vtd/qinval.c     |   2 +-
 xen/drivers/passthrough/x86/iommu.c      |  27 +-
 9 files changed, 89 insertions(+), 294 deletions(-)

diff --git a/xen/arch/x86/include/asm/iommu.h b/xen/arch/x86/include/asm/iommu.h
index 94513ba9dc..d20c3cda59 100644
--- a/xen/arch/x86/include/asm/iommu.h
+++ b/xen/arch/x86/include/asm/iommu.h
@@ -45,12 +45,15 @@ struct arch_iommu_context
         /* Intel VT-d */
         struct {
             uint64_t pgd_maddr; /* io page directory machine address */
-            unsigned long *iommu_bitmap; /* bitmap of iommu(s) that the context uses */
+            domid_t *didmap; /* per-iommu DID (valid only if related iommu_dev_cnt > 0) */
+            unsigned long *iommu_dev_cnt; /* counter of devices per iommu */
         } vtd;
         /* AMD IOMMU */
         struct {
             unsigned int paging_mode;
             struct page_info *root_table;
+            domid_t *didmap; /* per-iommu DID (valid only if related iommu_dev_cnt > 0) */
+            unsigned long *iommu_dev_cnt; /* counter of devices per iommu */
         } amd;
     };
 };
diff --git a/xen/drivers/passthrough/amd/iommu.h b/xen/drivers/passthrough/amd/iommu.h
index 4938cc38ed..db6d7ace02 100644
--- a/xen/drivers/passthrough/amd/iommu.h
+++ b/xen/drivers/passthrough/amd/iommu.h
@@ -35,6 +35,7 @@
 
 #define iommu_found()           (!list_empty(&amd_iommu_head))
 
+extern unsigned int nr_amd_iommus;
 extern struct list_head amd_iommu_head;
 
 typedef struct event_entry
@@ -106,6 +107,8 @@ struct amd_iommu {
 
     int enabled;
 
+    unsigned int index;
+
     struct list_head ats_devices;
 };
 
diff --git a/xen/drivers/passthrough/amd/iommu_cmd.c b/xen/drivers/passthrough/amd/iommu_cmd.c
index 6b80c57f44..0c4dcf4ece 100644
--- a/xen/drivers/passthrough/amd/iommu_cmd.c
+++ b/xen/drivers/passthrough/amd/iommu_cmd.c
@@ -331,11 +331,13 @@ static void _amd_iommu_flush_pages(struct domain *d,
                                    daddr_t daddr, unsigned int order)
 {
     struct amd_iommu *iommu;
-    unsigned int dom_id = d->domain_id;
+    struct iommu_context *ctx = iommu_default_context(d);
 
     /* send INVALIDATE_IOMMU_PAGES command */
     for_each_amd_iommu ( iommu )
     {
+        domid_t dom_id = ctx->arch.amd.didmap[iommu->index];
+
         invalidate_iommu_pages(iommu, daddr, dom_id, order);
         flush_command_buffer(iommu, 0);
     }
diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index 56b5c2c6ec..5cbb3fdb05 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -23,7 +23,7 @@
 
 #include "iommu.h"
 
-static int __initdata nr_amd_iommus;
+unsigned int nr_amd_iommus = 0;
 static bool __initdata pci_init;
 
 static struct tasklet amd_iommu_irq_tasklet;
@@ -920,6 +920,7 @@ static void enable_iommu(struct amd_iommu *iommu)
     set_iommu_translation_control(iommu, IOMMU_CONTROL_ENABLED);
 
     iommu->enabled = 1;
+    iommu->index = nr_amd_iommus;
 
     spin_unlock_irqrestore(&iommu->lock, flags);
 
diff --git a/xen/drivers/passthrough/vtd/extern.h b/xen/drivers/passthrough/vtd/extern.h
index 3dcb77c711..82db8f9435 100644
--- a/xen/drivers/passthrough/vtd/extern.h
+++ b/xen/drivers/passthrough/vtd/extern.h
@@ -45,8 +45,6 @@ void disable_intremap(struct vtd_iommu *iommu);
 int iommu_alloc(struct acpi_drhd_unit *drhd);
 void iommu_free(struct acpi_drhd_unit *drhd);
 
-domid_t did_to_domain_id(const struct vtd_iommu *iommu, unsigned int did);
-
 int iommu_flush_iec_global(struct vtd_iommu *iommu);
 int iommu_flush_iec_index(struct vtd_iommu *iommu, u8 im, u16 iidx);
 void clear_fault_bits(struct vtd_iommu *iommu);
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index 986b05b9dd..3668185ebc 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -63,50 +63,6 @@ static struct tasklet vtd_fault_tasklet;
 static int cf_check setup_hwdom_device(u8 devfn, struct pci_dev *);
 static void setup_hwdom_rmrr(struct domain *d);
 
-static bool domid_mapping(const struct vtd_iommu *iommu)
-{
-    return (const void *)iommu->domid_bitmap != (const void *)iommu->domid_map;
-}
-
-static domid_t convert_domid(const struct vtd_iommu *iommu, domid_t domid)
-{
-    /*
-     * While we need to avoid DID 0 for caching-mode IOMMUs, maintain
-     * the property of the transformation being the same in either
-     * direction. By clipping to 16 bits we ensure that the resulting
-     * DID will fit in the respective context entry field.
-     */
-    BUILD_BUG_ON(DOMID_MASK >= 0xffff);
-
-    return !cap_caching_mode(iommu->cap) ? domid : ~domid;
-}
-
-static int get_iommu_did(domid_t domid, const struct vtd_iommu *iommu,
-                         bool warn)
-{
-    unsigned int nr_dom, i;
-
-    if ( !domid_mapping(iommu) )
-        return convert_domid(iommu, domid);
-
-    nr_dom = cap_ndoms(iommu->cap);
-    i = find_first_bit(iommu->domid_bitmap, nr_dom);
-    while ( i < nr_dom )
-    {
-        if ( iommu->domid_map[i] == domid )
-            return i;
-
-        i = find_next_bit(iommu->domid_bitmap, nr_dom, i + 1);
-    }
-
-    if ( warn )
-        dprintk(XENLOG_ERR VTDPREFIX,
-                "No valid iommu %u domid for Dom%d\n",
-                iommu->index, domid);
-
-    return -1;
-}
-
 #define DID_FIELD_WIDTH 16
 #define DID_HIGH_OFFSET 8
 
@@ -117,127 +73,17 @@ static int get_iommu_did(domid_t domid, const struct vtd_iommu *iommu,
 static int context_set_domain_id(struct context_entry *context,
                                  domid_t domid, struct vtd_iommu *iommu)
 {
-    unsigned int i;
-
     ASSERT(pcidevs_locked());
 
-    if ( domid_mapping(iommu) )
-    {
-        unsigned int nr_dom = cap_ndoms(iommu->cap);
-
-        i = find_first_bit(iommu->domid_bitmap, nr_dom);
-        while ( i < nr_dom && iommu->domid_map[i] != domid )
-            i = find_next_bit(iommu->domid_bitmap, nr_dom, i + 1);
-
-        if ( i >= nr_dom )
-        {
-            i = find_first_zero_bit(iommu->domid_bitmap, nr_dom);
-            if ( i >= nr_dom )
-            {
-                dprintk(XENLOG_ERR VTDPREFIX, "IOMMU: no free domain id\n");
-                return -EBUSY;
-            }
-            iommu->domid_map[i] = domid;
-            set_bit(i, iommu->domid_bitmap);
-        }
-    }
-    else
-        i = convert_domid(iommu, domid);
-
     if ( context )
     {
         context->hi &= ~(((1 << DID_FIELD_WIDTH) - 1) << DID_HIGH_OFFSET);
-        context->hi |= (i & ((1 << DID_FIELD_WIDTH) - 1)) << DID_HIGH_OFFSET;
+        context->hi |= (domid & ((1 << DID_FIELD_WIDTH) - 1)) << DID_HIGH_OFFSET;
     }
 
     return 0;
 }
 
-static void cleanup_domid_map(domid_t domid, struct vtd_iommu *iommu)
-{
-    int iommu_domid;
-
-    if ( !domid_mapping(iommu) )
-        return;
-
-    iommu_domid = get_iommu_did(domid, iommu, false);
-
-    if ( iommu_domid >= 0 )
-    {
-        /*
-         * Update domid_map[] /before/ domid_bitmap[] to avoid a race with
-         * context_set_domain_id(), setting the slot to DOMID_INVALID for
-         * did_to_domain_id() to return a suitable value while the bit is
-         * still set.
-         */
-        iommu->domid_map[iommu_domid] = DOMID_INVALID;
-        clear_bit(iommu_domid, iommu->domid_bitmap);
-    }
-}
-
-static bool any_pdev_behind_iommu(const struct domain *d,
-                                  const struct pci_dev *exclude,
-                                  const struct vtd_iommu *iommu)
-{
-    const struct pci_dev *pdev;
-
-    for_each_pdev ( d, pdev )
-    {
-        const struct acpi_drhd_unit *drhd;
-
-        if ( pdev == exclude )
-            continue;
-
-        drhd = acpi_find_matched_drhd_unit(pdev);
-        if ( drhd && drhd->iommu == iommu )
-            return true;
-    }
-
-    return false;
-}
-
-/*
- * If no other devices under the same iommu owned by this domain,
- * clear iommu in iommu_bitmap and clear domain_id in domid_bitmap.
- */
-static void check_cleanup_domid_map(const struct domain *d,
-                                    const struct pci_dev *exclude,
-                                    struct vtd_iommu *iommu)
-{
-    bool found;
-
-    if ( d == dom_io )
-        return;
-
-    found = any_pdev_behind_iommu(d, exclude, iommu);
-    /*
-     * Hidden devices are associated with DomXEN but usable by the hardware
-     * domain. Hence they need considering here as well.
-     */
-    if ( !found && is_hardware_domain(d) )
-        found = any_pdev_behind_iommu(dom_xen, exclude, iommu);
-
-    if ( !found )
-    {
-        clear_bit(iommu->index, iommu_default_context(d)->arch.vtd.iommu_bitmap);
-        cleanup_domid_map(d->domain_id, iommu);
-    }
-}
-
-domid_t did_to_domain_id(const struct vtd_iommu *iommu, unsigned int did)
-{
-    if ( did >= cap_ndoms(iommu->cap) )
-        return DOMID_INVALID;
-
-    if ( !domid_mapping(iommu) )
-        return convert_domid(iommu, did);
-
-    if ( !test_bit(did, iommu->domid_bitmap) )
-        return DOMID_INVALID;
-
-    return iommu->domid_map[did];
-}
-
 /* Allocate page table, return its machine address */
 uint64_t alloc_pgtable_maddr(unsigned long npages, nodeid_t node)
 {
@@ -755,13 +601,11 @@ static int __must_check cf_check iommu_flush_iotlb(struct domain *d, dfn_t dfn,
 
         iommu = drhd->iommu;
 
-        if ( !test_bit(iommu->index, ctx->arch.vtd.iommu_bitmap) )
+        if ( !ctx->arch.vtd.iommu_dev_cnt[iommu->index] )
             continue;
 
         flush_dev_iotlb = !!find_ats_dev_drhd(iommu);
-        iommu_domid = get_iommu_did(d->domain_id, iommu, !d->is_dying);
-        if ( iommu_domid == -1 )
-            continue;
+        iommu_domid = ctx->arch.vtd.didmap[iommu->index];
 
         if ( !page_count || (page_count & (page_count - 1)) ||
              dfn_eq(dfn, INVALID_DFN) || !IS_ALIGNED(dfn_x(dfn), page_count) )
@@ -1258,7 +1102,6 @@ int __init iommu_alloc(struct acpi_drhd_unit *drhd)
 {
     struct vtd_iommu *iommu;
     unsigned int sagaw, agaw = 0, nr_dom;
-    domid_t reserved_domid = DOMID_INVALID;
     int rc;
 
     iommu = xzalloc(struct vtd_iommu);
@@ -1347,43 +1190,16 @@ int __init iommu_alloc(struct acpi_drhd_unit *drhd)
     if ( !ecap_coherent(iommu->ecap) )
         iommu_non_coherent = true;
 
-    if ( nr_dom <= DOMID_MASK * 2 + cap_caching_mode(iommu->cap) )
-    {
-        /* Allocate domain id (bit) maps. */
-        iommu->domid_bitmap = xzalloc_array(unsigned long,
-                                            BITS_TO_LONGS(nr_dom));
-        iommu->domid_map = xzalloc_array(domid_t, nr_dom);
-        rc = -ENOMEM;
-        if ( !iommu->domid_bitmap || !iommu->domid_map )
-            goto free;
-
-        /*
-         * If Caching mode is set, then invalid translations are tagged
-         * with domain id 0. Hence reserve bit/slot 0.
-         */
-        if ( cap_caching_mode(iommu->cap) )
-        {
-            iommu->domid_map[0] = DOMID_INVALID;
-            __set_bit(0, iommu->domid_bitmap);
-        }
-    }
-    else
-    {
-        /* Don't leave dangling NULL pointers. */
-        iommu->domid_bitmap = ZERO_BLOCK_PTR;
-        iommu->domid_map = ZERO_BLOCK_PTR;
-
-        /*
-         * If Caching mode is set, then invalid translations are tagged
-         * with domain id 0. Hence reserve the ID taking up bit/slot 0.
-         */
-        reserved_domid = convert_domid(iommu, 0) ?: DOMID_INVALID;
-    }
+    /* Allocate domain id (bit) maps. */
+    iommu->domid_bitmap = xzalloc_array(unsigned long,
+                                        BITS_TO_LONGS(nr_dom));
 
-    iommu->pseudo_domid_map = iommu_init_domid(reserved_domid);
-    rc = -ENOMEM;
-    if ( !iommu->pseudo_domid_map )
-        goto free;
+    /*
+        * If Caching mode is set, then invalid translations are tagged
+        * with domain id 0. Hence reserve bit/slot 0.
+        */
+    if ( cap_caching_mode(iommu->cap) )
+        __set_bit(0, iommu->domid_bitmap);
 
     return 0;
 
@@ -1411,8 +1227,6 @@ void __init iommu_free(struct acpi_drhd_unit *drhd)
         iounmap(iommu->reg);
 
     xfree(iommu->domid_bitmap);
-    xfree(iommu->domid_map);
-    xfree(iommu->pseudo_domid_map);
 
     if ( iommu->msi.irq >= 0 )
         destroy_irq(iommu->msi.irq);
@@ -1426,19 +1240,39 @@ void __init iommu_free(struct acpi_drhd_unit *drhd)
         agaw = 64;                              \
     agaw; })
 
-static int cf_check intel_iommu_domain_init(struct domain *d)
+static int cf_check intel_iommu_context_init(struct domain *d, struct iommu_context *ctx)
 {
-    struct domain_iommu *hd = dom_iommu(d);
-    struct iommu_context *ctx = iommu_default_context(d);
+    struct acpi_drhd_unit *drhd;
 
-    ctx->arch.vtd.iommu_bitmap = xzalloc_array(unsigned long,
-                                              BITS_TO_LONGS(nr_iommus));
-    if ( !ctx->arch.vtd.iommu_bitmap )
+    ctx->arch.vtd.didmap = xzalloc_array(domid_t, nr_iommus);
+    if ( !ctx->arch.vtd.didmap )
         return -ENOMEM;
 
+    ctx->arch.vtd.iommu_dev_cnt = xzalloc_array(unsigned long, nr_iommus);
+    if ( !ctx->arch.vtd.iommu_dev_cnt )
+    {
+        xfree(ctx->arch.vtd.didmap);
+        return -ENOMEM;
+    }
+
+    // TODO: Allocate IOMMU domid only when attaching devices ?
+    /* Populate context DID map using pseudo DIDs */
+    for_each_drhd_unit(drhd)
+    {
+        ctx->arch.vtd.didmap[drhd->iommu->index] =
+            iommu_alloc_domid(drhd->iommu->domid_bitmap);
+    }
+
+    return arch_iommu_context_init(d, ctx, 0);
+}
+
+static int cf_check intel_iommu_domain_init(struct domain *d)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+
     hd->arch.vtd.agaw = width_to_agaw(DEFAULT_DOMAIN_ADDRESS_WIDTH);
 
-    return 0;
+    return intel_iommu_context_init(d, iommu_default_context(d));
 }
 
 static void __hwdom_init cf_check intel_iommu_hwdom_init(struct domain *d)
@@ -1482,11 +1316,11 @@ int domain_context_mapping_one(
     struct context_entry *context, *context_entries, lctxt;
     __uint128_t res, old;
     uint64_t maddr;
-    uint16_t seg = iommu->drhd->segment, prev_did = 0;
-    struct domain *prev_dom = NULL;
+    uint16_t seg = iommu->drhd->segment, prev_did = 0, did;
     int rc, ret;
-    bool flush_dev_iotlb;
+    bool flush_dev_iotlb, overwrite_entry = false;
 
+    struct iommu_context *prev_ctx = pdev->domain ? iommu_default_context(pdev->domain) : NULL;
 
     ASSERT(pcidevs_locked());
     spin_lock(&iommu->lock);
@@ -1500,23 +1334,12 @@ int domain_context_mapping_one(
     context = &context_entries[devfn];
     old = (lctxt = *context).full;
 
+    did = ctx->arch.vtd.didmap[iommu->index];
+
     if ( context_present(lctxt) )
     {
-        domid_t domid;
-
         prev_did = context_domain_id(lctxt);
-        domid = did_to_domain_id(iommu, prev_did);
-        if ( domid < DOMID_FIRST_RESERVED )
-            prev_dom = rcu_lock_domain_by_id(domid);
-        if ( !prev_dom )
-        {
-            spin_unlock(&iommu->lock);
-            unmap_vtd_domain_page(context_entries);
-            dprintk(XENLOG_DEBUG VTDPREFIX,
-                    "no domain for did %u (nr_dom %u)\n",
-                    prev_did, cap_ndoms(iommu->cap));
-            return -ESRCH;
-        }
+        overwrite_entry = true;
     }
 
     if ( iommu_hwdom_passthrough && is_hardware_domain(domain) )
@@ -1532,11 +1355,7 @@ int domain_context_mapping_one(
         root = domain_pgd_maddr(domain, ctx, pgd_maddr, iommu->nr_pt_levels);
         if ( !root )
         {
-            spin_unlock(&ctx->arch.mapping_lock);
-            spin_unlock(&iommu->lock);
             unmap_vtd_domain_page(context_entries);
-            if ( prev_dom )
-                rcu_unlock_domain(prev_dom);
             return -ENOMEM;
         }
 
@@ -1549,35 +1368,13 @@ int domain_context_mapping_one(
         spin_unlock(&ctx->arch.mapping_lock);
     }
 
-    rc = context_set_domain_id(&lctxt, domid, iommu);
+    rc = context_set_domain_id(&lctxt, did, iommu);
     if ( rc )
-    {
-    unlock:
-        spin_unlock(&iommu->lock);
-        unmap_vtd_domain_page(context_entries);
-        if ( prev_dom )
-            rcu_unlock_domain(prev_dom);
-        return rc;
-    }
-
-    if ( !prev_dom )
-    {
-        context_set_address_width(lctxt, level_to_agaw(iommu->nr_pt_levels));
-        context_set_fault_enable(lctxt);
-        context_set_present(lctxt);
-    }
-    else if ( prev_dom == domain )
-    {
-        ASSERT(lctxt.full == context->full);
-        rc = !!pdev;
         goto unlock;
-    }
-    else
-    {
-        ASSERT(context_address_width(lctxt) ==
-               level_to_agaw(iommu->nr_pt_levels));
-        ASSERT(!context_fault_disable(lctxt));
-    }
+
+    context_set_address_width(lctxt, level_to_agaw(iommu->nr_pt_levels));
+    context_set_fault_enable(lctxt);
+    context_set_present(lctxt);
 
     res = cmpxchg16b(context, &old, &lctxt.full);
 
@@ -1587,8 +1384,6 @@ int domain_context_mapping_one(
      */
     if ( res != old )
     {
-        if ( pdev )
-            check_cleanup_domid_map(domain, pdev, iommu);
         printk(XENLOG_ERR
                 "%pp: unexpected context entry %016lx_%016lx (expected %016lx_%016lx)\n",
                 &PCI_SBDF(seg, bus, devfn),
@@ -1602,9 +1397,9 @@ int domain_context_mapping_one(
     spin_unlock(&iommu->lock);
 
     rc = iommu_flush_context_device(iommu, prev_did, PCI_BDF(bus, devfn),
-                                    DMA_CCMD_MASK_NOBIT, !prev_dom);
+                                    DMA_CCMD_MASK_NOBIT, !overwrite_entry);
     flush_dev_iotlb = !!find_ats_dev_drhd(iommu);
-    ret = iommu_flush_iotlb_dsi(iommu, prev_did, !prev_dom, flush_dev_iotlb);
+    ret = iommu_flush_iotlb_dsi(iommu, prev_did, !overwrite_entry, flush_dev_iotlb);
 
     /*
      * The current logic for returns:
@@ -1620,18 +1415,27 @@ int domain_context_mapping_one(
     if ( rc > 0 )
         rc = 0;
 
-    set_bit(iommu->index, ctx->arch.vtd.iommu_bitmap);
+    if ( prev_ctx )
+    {
+        /* Don't underflow the counter. */
+        BUG_ON(!prev_ctx->arch.vtd.iommu_dev_cnt[iommu->index]);
+        prev_ctx->arch.vtd.iommu_dev_cnt[iommu->index]--;
+    }
+
+    ctx->arch.vtd.iommu_dev_cnt[iommu->index]++;
 
     unmap_vtd_domain_page(context_entries);
+    spin_unlock(&iommu->lock);
 
     if ( !seg && !rc )
         rc = me_wifi_quirk(domain, bus, devfn, domid, pgd_maddr, mode);
 
+    return rc;
 
-    if ( prev_dom )
-        rcu_unlock_domain(prev_dom);
-
-    return rc ?: pdev && prev_dom;
+    unlock:
+        unmap_vtd_domain_page(context_entries);
+        spin_unlock(&iommu->lock);
+        return rc;
 }
 
 static const struct acpi_drhd_unit *domain_context_unmap(
@@ -1643,7 +1447,7 @@ static int domain_context_mapping(struct domain *domain, struct iommu_context *c
     const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
     const struct acpi_rmrr_unit *rmrr;
     paddr_t pgd_maddr = ctx->arch.vtd.pgd_maddr;
-    domid_t did = domain->domain_id;
+    domid_t did = ctx->arch.vtd.didmap[drhd->iommu->index];
     int ret = 0;
     unsigned int i, mode = 0;
     uint16_t seg = pdev->seg, bdf;
@@ -1972,9 +1776,10 @@ static void cf_check iommu_domain_teardown(struct domain *d)
     ASSERT(!ctx->arch.vtd.pgd_maddr);
 
     for_each_drhd_unit ( drhd )
-        cleanup_domid_map(d->domain_id, drhd->iommu);
+        iommu_free_domid(d->domain_id, drhd->iommu->domid_bitmap);
 
-    XFREE(ctx->arch.vtd.iommu_bitmap);
+    XFREE(ctx->arch.vtd.iommu_dev_cnt);
+    XFREE(ctx->arch.vtd.didmap);
 }
 
 static void quarantine_teardown(struct pci_dev *pdev,
diff --git a/xen/drivers/passthrough/vtd/iommu.h b/xen/drivers/passthrough/vtd/iommu.h
index 29d350b23d..77edfa3587 100644
--- a/xen/drivers/passthrough/vtd/iommu.h
+++ b/xen/drivers/passthrough/vtd/iommu.h
@@ -506,9 +506,7 @@ struct vtd_iommu {
     } flush;
 
     struct list_head ats_devices;
-    unsigned long *pseudo_domid_map; /* "pseudo" domain id bitmap */
     unsigned long *domid_bitmap;  /* domain id bitmap */
-    domid_t *domid_map;           /* domain id mapping array */
     uint32_t version;
 };
 
diff --git a/xen/drivers/passthrough/vtd/qinval.c b/xen/drivers/passthrough/vtd/qinval.c
index 036f3e8505..3f25b6a2e0 100644
--- a/xen/drivers/passthrough/vtd/qinval.c
+++ b/xen/drivers/passthrough/vtd/qinval.c
@@ -229,7 +229,7 @@ static int __must_check dev_invalidate_sync(struct vtd_iommu *iommu,
     rc = queue_invalidate_wait(iommu, 0, 1, 1, 1);
     if ( rc == -ETIMEDOUT && !pdev->broken )
     {
-        struct domain *d = rcu_lock_domain_by_id(did_to_domain_id(iommu, did));
+        struct domain *d = rcu_lock_domain(pdev->domain);
 
         /*
          * In case the domain has been freed or the IOMMU domid bitmap is
diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c
index 75c8752022..98cca92dc3 100644
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -534,9 +534,6 @@ unsigned long *__init iommu_init_domid(domid_t reserve)
 {
     unsigned long *map;
 
-    if ( !iommu_quarantine )
-        return ZERO_BLOCK_PTR;
-
     BUILD_BUG_ON(DOMID_MASK * 2U >= UINT16_MAX);
 
     map = xzalloc_array(unsigned long, BITS_TO_LONGS(UINT16_MAX - DOMID_MASK));
@@ -551,36 +548,24 @@ unsigned long *__init iommu_init_domid(domid_t reserve)
 
 domid_t iommu_alloc_domid(unsigned long *map)
 {
-    /*
-     * This is used uniformly across all IOMMUs, such that on typical
-     * systems we wouldn't re-use the same ID very quickly (perhaps never).
-     */
-    static unsigned int start;
-    unsigned int idx = find_next_zero_bit(map, UINT16_MAX - DOMID_MASK, start);
+    /* TODO: Consider nr_doms ? */
+    unsigned int idx = find_next_zero_bit(map, UINT16_MAX, 0);
 
-    ASSERT(pcidevs_locked());
-
-    if ( idx >= UINT16_MAX - DOMID_MASK )
-        idx = find_first_zero_bit(map, UINT16_MAX - DOMID_MASK);
-    if ( idx >= UINT16_MAX - DOMID_MASK )
-        return DOMID_INVALID;
+    if ( idx >= UINT16_MAX )
+        return UINT16_MAX;
 
     __set_bit(idx, map);
 
-    start = idx + 1;
-
-    return idx | (DOMID_MASK + 1);
+    return idx;
 }
 
 void iommu_free_domid(domid_t domid, unsigned long *map)
 {
     ASSERT(pcidevs_locked());
 
-    if ( domid == DOMID_INVALID )
+    if ( domid == UINT16_MAX )
         return;
 
-    ASSERT(domid > DOMID_MASK);
-
     if ( !__test_and_clear_bit(domid & DOMID_MASK, map) )
         BUG();
 }
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 11:10:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 11:10:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166865.1493354 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2Y9-00046k-Lf; Thu, 20 Nov 2025 11:10:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166865.1493354; Thu, 20 Nov 2025 11: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 1vM2Y9-00046G-Gf; Thu, 20 Nov 2025 11:10:05 +0000
Received: by outflank-mailman (input) for mailman id 1166865;
 Thu, 20 Nov 2025 11: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=2mUT=54=bounce.vates.tech=bounce-md_30504962.691ef709.v1-c483da0948f24feab05d81858fa32721@srs-se1.protection.inumbo.net>)
 id 1vM2Y8-0001P8-0K
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 11:10:04 +0000
Received: from mail180-15.suw31.mandrillapp.com
 (mail180-15.suw31.mandrillapp.com [198.2.180.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7557369c-c601-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 12:10:02 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-15.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4dBwc91dwXzPm1CGs
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 11:10:01 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c483da0948f24feab05d81858fa32721; Thu, 20 Nov 2025 11:10: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: 7557369c-c601-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763637001; x=1763907001;
	bh=qKPhb2hXtbAfqWjmWJKnX0A4SzctJuOE8fF03rvyg9I=;
	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=FTLge2cHpiKJnRrHDJ64MR5X79WaTt/46yLUsLJ/IkjJo6bBMcQDcr0ZJ+73JkNPx
	 5IRHzQ1uP+dbYCgnhGrgzqxT5C0j8H7MPDfdZQSN+9cL/5Cdb/mxN2OQUAtIJ8qGcL
	 bIsLTeVE/1DoG2lCekEmau3uGIBvSAXv+MTIHCdqVqHxHa8lPTozn/m5YKaVg4KXlD
	 wanSpmcnN2Gsiu0jY3fwXISq/kaP3yBItQC88Ec3kk2/qDvntp0oqfWDebLA2buarW
	 7x+Jj6ZKfHuvG9kVfXXoXPUer8l020osO3/C6f0RMfveVAEUcPv1WkkIss5oVHx2pb
	 QRbx1L+fP4fBg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763637001; x=1763897501; i=teddy.astie@vates.tech;
	bh=qKPhb2hXtbAfqWjmWJKnX0A4SzctJuOE8fF03rvyg9I=;
	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=gwmx7H9UBGXIJ+ejSPA3g9q4F97LbnTMialepsat3rAEf+1L7HHXoacLOmpAGMmWK
	 q+ReRr1OqytsIeXklVcidxI7SV90ZIJsVoBtn165vfxUF4g+6MUasdnKrTmBOeXlAq
	 oarzUSaRYI3bOK8p8xl6OyVWc4OId22Yk6XSBNEGtUCb4PwhDTTsjOIFzQ7C/pfANH
	 8bbGR6t+8ylsyRlg3EGkPG5ScXrUquiw5FY/W0b8pCUIkN7wbmetNkJlboYbAsrIs9
	 T3ilDvIpKSwPj0dU1xK2xlTplgooAmaz8KvBYlBeET5913icfBwotY0cYe8l9Bd9qe
	 +vvcuLj3NTQQQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=20v7=2009/14]=20iommu:=20Provide=20'X'=20debug=20key=20to=20dump=20IOMMU=20context=20infos?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763637000187
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>, "Jason Andryuk" <jason.andryuk@amd.com>
Message-Id: <6433e2b223d610ee7705abaa49bb27fc4233bf60.1763569135.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1763569135.git.teddy.astie@vates.tech>
References: <cover.1763569135.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.c483da0948f24feab05d81858fa32721?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251120:md
Date: Thu, 20 Nov 2025 11:10:01 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

It is often useful to know the state of all contexts and what devices
are in it. It can also be used to know what device belong to which domains.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v7: introduced

 xen/drivers/passthrough/amd/iommu_init.c | 46 ++++++++++++++++++++++++
 xen/drivers/passthrough/vtd/iommu.c      | 45 ++++++++++++++++++++++-
 2 files changed, 90 insertions(+), 1 deletion(-)

diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index bf32b6c718..1c38ac0369 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -1332,6 +1332,51 @@ static int __init cf_check amd_iommu_setup_device_table(
     return 0;
 }
 
+static void cf_check amd_dump_domain_iommu_contexts(struct domain *d)
+{
+    unsigned int i, iommu_no;
+    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx;
+    struct pci_dev *pdev;
+
+    if (d == dom_io)
+        printk("d[IO] contexts\n");
+    else
+        printk("d%hu contexts\n", d->domain_id);
+
+    for (i = 0; i < (1 + hd->other_contexts.count); ++i)
+    {
+        if ( (ctx = iommu_get_context(d, i)) )
+        {
+            printk(" Context %d (%"PRI_mfn")\n", i,
+                   mfn_x(page_to_mfn(ctx->arch.amd.root_table)));
+
+            for (iommu_no = 0; iommu_no < nr_amd_iommus; iommu_no++)
+                printk("  IOMMU %u (used=%lu; did=%hu)\n", iommu_no,
+                       ctx->arch.amd.iommu_dev_cnt[iommu_no],
+                       ctx->arch.amd.didmap[iommu_no]);
+
+            list_for_each_entry(pdev, &ctx->devices, context_list)
+            {
+                printk("  - %pp\n", &pdev->sbdf);
+            }
+
+            iommu_put_context(ctx);
+        }
+    }
+}
+
+static void cf_check amd_dump_iommu_contexts(unsigned char key)
+{
+    struct domain *d;
+
+    for_each_domain(d)
+        if (is_iommu_enabled(d))
+            amd_dump_domain_iommu_contexts(d);
+
+    amd_dump_domain_iommu_contexts(dom_io);
+}
+
 /* Check whether SP5100 SATA Combined mode is on */
 static bool __init amd_sp5100_erratum28(void)
 {
@@ -1486,6 +1531,7 @@ int __init amd_iommu_init(bool xt)
         register_keyhandler('V', &amd_iommu_dump_intremap_tables,
                             "dump IOMMU intremap tables", 0);
 
+    register_keyhandler('X', amd_dump_iommu_contexts, "dump iommu contexts", 1);
     return 0;
 
 error_out:
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index 3319903297..a602edd755 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -1954,6 +1954,49 @@ static int __must_check init_vtd_hw(bool resume)
     return iommu_flush_all();
 }
 
+static void cf_check vtd_dump_domain_contexts(struct domain *d)
+{
+    unsigned int i, iommu_no;
+    struct pci_dev *pdev;
+    struct iommu_context *ctx;
+    struct domain_iommu *hd = dom_iommu(d);
+
+    if (d == dom_io)
+        printk("d[IO] contexts\n");
+    else
+        printk("d%hu contexts\n", d->domain_id);
+
+    for (i = 0; i < (1 + hd->other_contexts.count); ++i)
+    {
+        if ( (ctx = iommu_get_context(d, i)) )
+        {
+            printk(" Context %d (%"PRIx64")\n", i, ctx->arch.vtd.pgd_maddr);
+
+            for (iommu_no = 0; iommu_no < nr_iommus; iommu_no++)
+                printk("  IOMMU %u (used=%lu; did=%hu)\n", iommu_no,
+                       ctx->arch.vtd.iommu_dev_cnt[iommu_no],
+                       ctx->arch.vtd.didmap[iommu_no]);
+
+            list_for_each_entry(pdev, &ctx->devices, context_list)
+            {
+                printk("  - %pp\n", &pdev->sbdf);
+            }
+
+            iommu_put_context(ctx);
+        }
+    }
+}
+
+static void cf_check vtd_dump_contexts(unsigned char key)
+{
+    struct domain *d;
+
+    for_each_domain(d)
+        if (is_iommu_enabled(d))
+            vtd_dump_domain_contexts(d);
+
+    vtd_dump_domain_contexts(dom_io);
+}
 
 static struct iommu_state {
     uint32_t fectl;
@@ -2088,7 +2131,7 @@ static int __init cf_check vtd_setup(void)
     iommu_ops.page_sizes |= large_sizes;
 
     register_keyhandler('V', vtd_dump_iommu_info, "dump iommu info", 1);
-
+    register_keyhandler('X', vtd_dump_contexts, "dump iommu contexts", 1);
     return 0;
 
  error:
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 11:10:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 11:10:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166866.1493360 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2YA-0004Fs-EP; Thu, 20 Nov 2025 11:10:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166866.1493360; Thu, 20 Nov 2025 11:10:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2YA-0004EE-5Z; Thu, 20 Nov 2025 11:10:06 +0000
Received: by outflank-mailman (input) for mailman id 1166866;
 Thu, 20 Nov 2025 11:10: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=4I7H=54=bounce.vates.tech=bounce-md_30504962.691ef709.v1-9649909ca9c644af83ec3718ce3f354f@srs-se1.protection.inumbo.net>)
 id 1vM2Y8-0001PI-Gw
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 11:10:05 +0000
Received: from mail128-17.atl41.mandrillapp.com
 (mail128-17.atl41.mandrillapp.com [198.2.128.17])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 75a199dc-c601-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 12:10:02 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4dBwc94n00zCf9RNh
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 11:10:01 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 9649909ca9c644af83ec3718ce3f354f; Thu, 20 Nov 2025 11:10: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: 75a199dc-c601-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763637001; x=1763907001;
	bh=7PY47YiBEAqJUtWCu8V5zgWutXDzUBRUXX0Mm4bYILU=;
	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=LikyBE+XofQWyK4B/7P5SkOJdSc3CL5NR4qU+CApmLZQzOFIibAPe3yBI9ZZ7YIOg
	 tjar0VBWq8F2HvlQ6zk4rzt9bsluG+RMPcQFcPUM+/L74anmLxLy9ytPXfX8x++R39
	 7XtyfeUwoqYhyjnmVVB6v1xpNEbZuhlyk+CrS1femTugg6SaLGsf6fQi/ugPvePXY4
	 tc72y78TrD6aFWziIAQ//ZVbJnA/UxUQD0X6o5cUXIei+WryozZuqXVMxQRadCJ5er
	 SfyaWkjdZGSvIf/pl+g0gK4ZoKZnm1YgWf2D8QDepXADF2gPuWKsvZMVjX2WUjpXaf
	 D7CZ8E4sdhY2g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763637001; x=1763897501; i=teddy.astie@vates.tech;
	bh=7PY47YiBEAqJUtWCu8V5zgWutXDzUBRUXX0Mm4bYILU=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=b/98XeGv2B1XQhW0+gWfHwXOQlZDQkgCZBRW+N+AZ6LHTjZqu+wMRf4VsbRPIediD
	 BDTxAwHXbxkI+dYix4psA2AIRNYMN5zEpQyOoOG8j3ojTfkWRkc+LBxB4kFnPD0PGh
	 6jAyL/UdVx662uD1u5IgnHZg8hEVCGXEujsq/rHpmYj4EPUk9VXCZxwOLEAQE31hbG
	 0HNVI+kJu5w36STZ6WnjDYIddK9G5/c2+71mN/97/pO8EqWhlHtU4Nh5Rb5KY/tA2b
	 WsHyLbsrgS7mDgfCMO9CyWnKRe9UPCtxZClKFZ/xq7PMBdvAc+OUtf8vHCMotmPDj9
	 w5Nf1gghXpx0Q==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=20v7=2008/14]=20iommu:=20Introduce=20redesigned=20IOMMU=20subsystem?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763636998872
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, "Jason Andryuk" <jason.andryuk@amd.com>
Message-Id: <ebbeb1dffd74ca31285d1f6e07fc212d878a7089.1763569135.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1763569135.git.teddy.astie@vates.tech>
References: <cover.1763569135.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.9649909ca9c644af83ec3718ce3f354f?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251120:md
Date: Thu, 20 Nov 2025 11:10:01 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Introduce the changes proposed in docs/designs/iommu-context.md.

Signed-off-by Teddy Astie <teddy.astie@vates.tech>
---
This patch is still quite large but I am not sure how to split it further.
---
 xen/arch/x86/include/asm/iommu.h            |    8 +-
 xen/arch/x86/mm/p2m-ept.c                   |    2 +-
 xen/arch/x86/pv/dom0_build.c                |    6 +-
 xen/common/memory.c                         |    4 +-
 xen/drivers/passthrough/amd/iommu.h         |   13 +-
 xen/drivers/passthrough/amd/iommu_cmd.c     |   20 +-
 xen/drivers/passthrough/amd/iommu_init.c    |    2 +-
 xen/drivers/passthrough/amd/iommu_map.c     |   52 +-
 xen/drivers/passthrough/amd/pci_amd_iommu.c |  383 ++++---
 xen/drivers/passthrough/iommu.c             |  635 +++++++++++-
 xen/drivers/passthrough/pci.c               |  387 +++----
 xen/drivers/passthrough/vtd/extern.h        |   17 +-
 xen/drivers/passthrough/vtd/iommu.c         | 1030 +++++++------------
 xen/drivers/passthrough/vtd/quirks.c        |   22 +-
 xen/drivers/passthrough/x86/iommu.c         |  153 ++-
 xen/include/xen/iommu.h                     |   99 +-
 xen/include/xen/pci.h                       |    3 +
 17 files changed, 1530 insertions(+), 1306 deletions(-)

diff --git a/xen/arch/x86/include/asm/iommu.h b/xen/arch/x86/include/asm/iommu.h
index d20c3cda59..654a07b9b2 100644
--- a/xen/arch/x86/include/asm/iommu.h
+++ b/xen/arch/x86/include/asm/iommu.h
@@ -2,10 +2,12 @@
 #ifndef __ARCH_X86_IOMMU_H__
 #define __ARCH_X86_IOMMU_H__
 
+#include <xen/bitmap.h>
 #include <xen/errno.h>
 #include <xen/list.h>
 #include <xen/mem_access.h>
 #include <xen/spinlock.h>
+#include <xen/stdbool.h>
 #include <asm/apicdef.h>
 #include <asm/cache.h>
 #include <asm/processor.h>
@@ -39,18 +41,16 @@ struct arch_iommu_context
     struct list_head identity_maps;
 
 
-    spinlock_t mapping_lock; /* io page table lock */
-
     union {
         /* Intel VT-d */
         struct {
             uint64_t pgd_maddr; /* io page directory machine address */
             domid_t *didmap; /* per-iommu DID (valid only if related iommu_dev_cnt > 0) */
             unsigned long *iommu_dev_cnt; /* counter of devices per iommu */
+            uint32_t superpage_progress; /* superpage progress during teardown */
         } vtd;
         /* AMD IOMMU */
         struct {
-            unsigned int paging_mode;
             struct page_info *root_table;
             domid_t *didmap; /* per-iommu DID (valid only if related iommu_dev_cnt > 0) */
             unsigned long *iommu_dev_cnt; /* counter of devices per iommu */
@@ -72,7 +72,7 @@ struct arch_iommu
         struct {
             unsigned int paging_mode;
             struct guest_iommu *g_iommu;
-        };
+        } amd;
     };
 };
 
diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c
index b854a08b4c..6cc97ec139 100644
--- a/xen/arch/x86/mm/p2m-ept.c
+++ b/xen/arch/x86/mm/p2m-ept.c
@@ -978,7 +978,7 @@ out:
             rc = iommu_iotlb_flush(d, _dfn(gfn), 1ul << order,
                                    (iommu_flags ? IOMMU_FLUSHF_added : 0) |
                                    (vtd_pte_present ? IOMMU_FLUSHF_modified
-                                                    : 0));
+                                                    : 0), 0);
         else if ( need_iommu_pt_sync(d) )
             rc = iommu_flags ?
                 iommu_legacy_map(d, _dfn(gfn), mfn, 1ul << order, iommu_flags) :
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 21158ce181..1bae5f2ba9 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -77,7 +77,7 @@ static __init void mark_pv_pt_pages_rdonly(struct domain *d,
          * iommu_memory_setup() ended up mapping them.
          */
         if ( need_iommu_pt_sync(d) &&
-             iommu_unmap(d, _dfn(mfn_x(page_to_mfn(page))), 1, 0, flush_flags) )
+             iommu_unmap(d, _dfn(mfn_x(page_to_mfn(page))), 1, 0, flush_flags, 0) )
             BUG();
 
         /* Read-only mapping + PGC_allocated + page-table page. */
@@ -128,7 +128,7 @@ static void __init iommu_memory_setup(struct domain *d, const char *what,
 
     while ( (rc = iommu_map(d, _dfn(mfn_x(mfn)), mfn, nr,
                             IOMMUF_readable | IOMMUF_writable | IOMMUF_preempt,
-                            flush_flags)) > 0 )
+                            flush_flags, 0)) > 0 )
     {
         mfn = mfn_add(mfn, rc);
         nr -= rc;
@@ -962,7 +962,7 @@ static int __init dom0_construct(const struct boot_domain *bd)
     }
 
     /* Use while() to avoid compiler warning. */
-    while ( iommu_iotlb_flush_all(d, flush_flags) )
+    while ( iommu_iotlb_flush_all(d, 0, flush_flags) )
         break;
 
     if ( initrd_len != 0 )
diff --git a/xen/common/memory.c b/xen/common/memory.c
index 3688e6dd50..0c0526a160 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -928,7 +928,7 @@ int xenmem_add_to_physmap(struct domain *d, struct xen_add_to_physmap *xatp,
         this_cpu(iommu_dont_flush_iotlb) = 0;
 
         ret = iommu_iotlb_flush(d, _dfn(xatp->idx - done), done,
-                                IOMMU_FLUSHF_modified);
+                                IOMMU_FLUSHF_modified, 0);
         if ( unlikely(ret) && rc >= 0 )
             rc = ret;
 
@@ -942,7 +942,7 @@ int xenmem_add_to_physmap(struct domain *d, struct xen_add_to_physmap *xatp,
             put_page(pages[i]);
 
         ret = iommu_iotlb_flush(d, _dfn(xatp->gpfn - done), done,
-                                IOMMU_FLUSHF_added | IOMMU_FLUSHF_modified);
+                                IOMMU_FLUSHF_added | IOMMU_FLUSHF_modified, 0);
         if ( unlikely(ret) && rc >= 0 )
             rc = ret;
     }
diff --git a/xen/drivers/passthrough/amd/iommu.h b/xen/drivers/passthrough/amd/iommu.h
index db6d7ace02..0bd0f15a72 100644
--- a/xen/drivers/passthrough/amd/iommu.h
+++ b/xen/drivers/passthrough/amd/iommu.h
@@ -198,11 +198,10 @@ void amd_iommu_quarantine_teardown(struct pci_dev *pdev);
 /* mapping functions */
 int __must_check cf_check amd_iommu_map_page(
     struct domain *d, dfn_t dfn, mfn_t mfn, unsigned int flags,
-    unsigned int *flush_flags);
+    unsigned int *flush_flags, struct iommu_context *ctx);
 int __must_check cf_check amd_iommu_unmap_page(
     struct domain *d, dfn_t dfn, unsigned int order,
-    unsigned int *flush_flags);
-int __must_check amd_iommu_alloc_root(struct domain *d);
+    unsigned int *flush_flags, struct iommu_context *ctx);
 int amd_iommu_reserve_domain_unity_map(struct domain *d, struct iommu_context *ctx,
                                        const struct ivrs_unity_map *map,
                                        unsigned int flag);
@@ -211,7 +210,7 @@ int amd_iommu_reserve_domain_unity_unmap(struct domain *d, struct iommu_context
 int cf_check amd_iommu_get_reserved_device_memory(
     iommu_grdm_t *func, void *ctxt);
 int __must_check cf_check amd_iommu_flush_iotlb_pages(
-    struct domain *d, dfn_t dfn, unsigned long page_count,
+    struct domain *d, struct iommu_context *ctx, dfn_t dfn, unsigned long page_count,
     unsigned int flush_flags);
 void amd_iommu_print_entries(const struct amd_iommu *iommu, unsigned int dev_id,
                              dfn_t dfn);
@@ -233,9 +232,9 @@ void iommu_dte_add_device_entry(struct amd_iommu_dte *dte,
                                 const struct ivrs_mappings *ivrs_dev);
 
 /* send cmd to iommu */
-void amd_iommu_flush_all_pages(struct domain *d);
-void amd_iommu_flush_pages(struct domain *d, unsigned long dfn,
-                           unsigned int order);
+void amd_iommu_flush_all_pages(struct domain *d, struct iommu_context *ctx);
+void amd_iommu_flush_pages(struct domain *d, struct iommu_context *ctx,
+                           unsigned long dfn, unsigned int order);
 void amd_iommu_flush_iotlb(u8 devfn, const struct pci_dev *pdev,
                            daddr_t daddr, unsigned int order);
 void amd_iommu_flush_device(struct amd_iommu *iommu, uint16_t bdf,
diff --git a/xen/drivers/passthrough/amd/iommu_cmd.c b/xen/drivers/passthrough/amd/iommu_cmd.c
index 0c4dcf4ece..13c353b038 100644
--- a/xen/drivers/passthrough/amd/iommu_cmd.c
+++ b/xen/drivers/passthrough/amd/iommu_cmd.c
@@ -327,19 +327,21 @@ static void amd_iommu_flush_all_iotlbs(const struct domain *d, daddr_t daddr,
 }
 
 /* Flush iommu cache after p2m changes. */
-static void _amd_iommu_flush_pages(struct domain *d,
+static void _amd_iommu_flush_pages(struct domain *d, struct iommu_context *ctx,
                                    daddr_t daddr, unsigned int order)
 {
     struct amd_iommu *iommu;
-    struct iommu_context *ctx = iommu_default_context(d);
 
     /* send INVALIDATE_IOMMU_PAGES command */
     for_each_amd_iommu ( iommu )
     {
-        domid_t dom_id = ctx->arch.amd.didmap[iommu->index];
+        if ( ctx->arch.amd.iommu_dev_cnt[iommu->index] )
+        {
+            domid_t dom_id = ctx->arch.amd.didmap[iommu->index];
 
-        invalidate_iommu_pages(iommu, daddr, dom_id, order);
-        flush_command_buffer(iommu, 0);
+            invalidate_iommu_pages(iommu, daddr, dom_id, order);
+            flush_command_buffer(iommu, 0);
+        }
     }
 
     if ( ats_enabled )
@@ -355,15 +357,15 @@ static void _amd_iommu_flush_pages(struct domain *d,
     }
 }
 
-void amd_iommu_flush_all_pages(struct domain *d)
+void amd_iommu_flush_all_pages(struct domain *d, struct iommu_context *ctx)
 {
-    _amd_iommu_flush_pages(d, INV_IOMMU_ALL_PAGES_ADDRESS, 0);
+    _amd_iommu_flush_pages(d, ctx, INV_IOMMU_ALL_PAGES_ADDRESS, 0);
 }
 
-void amd_iommu_flush_pages(struct domain *d,
+void amd_iommu_flush_pages(struct domain *d, struct iommu_context *ctx,
                            unsigned long dfn, unsigned int order)
 {
-    _amd_iommu_flush_pages(d, __dfn_to_daddr(dfn), order);
+    _amd_iommu_flush_pages(d, ctx, __dfn_to_daddr(dfn), order);
 }
 
 void amd_iommu_flush_device(struct amd_iommu *iommu, uint16_t bdf,
diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index 5cbb3fdb05..bf32b6c718 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -1538,7 +1538,7 @@ static void invalidate_all_domain_pages(void)
 
     for_each_domain( d )
         if ( is_iommu_enabled(d) )
-            amd_iommu_flush_all_pages(d);
+            amd_iommu_flush_all_pages(d, iommu_default_context(d));
 }
 
 static int cf_check _invalidate_all_devices(
diff --git a/xen/drivers/passthrough/amd/iommu_map.c b/xen/drivers/passthrough/amd/iommu_map.c
index 42827c7dc7..01b36fdf4f 100644
--- a/xen/drivers/passthrough/amd/iommu_map.c
+++ b/xen/drivers/passthrough/amd/iommu_map.c
@@ -276,7 +276,7 @@ static int iommu_pde_from_dfn(struct domain *d, struct iommu_context *ctx,
     struct domain_iommu *hd = dom_iommu(d);
 
     table = ctx->arch.amd.root_table;
-    level = ctx->arch.amd.paging_mode;
+    level = hd->arch.amd.paging_mode;
 
     if ( !table || target < 1 || level < target || level > 6 )
     {
@@ -400,21 +400,17 @@ static void queue_free_pt(struct domain *d, struct iommu_context *ctx, mfn_t mfn
 
 int cf_check amd_iommu_map_page(
     struct domain *d, dfn_t dfn, mfn_t mfn, unsigned int flags,
-    unsigned int *flush_flags)
+    unsigned int *flush_flags, struct iommu_context *ctx)
 {
     struct domain_iommu *hd = dom_iommu(d);
-    struct iommu_context *ctx = iommu_default_context(d);
     unsigned int level = (IOMMUF_order(flags) / PTE_PER_TABLE_SHIFT) + 1;
     bool contig;
-    int rc;
     unsigned long pt_mfn = 0;
     union amd_iommu_pte old;
 
     ASSERT((hd->platform_ops->page_sizes >> IOMMUF_order(flags)) &
            PAGE_SIZE_4K);
 
-    spin_lock(&ctx->arch.mapping_lock);
-
     /*
      * IOMMU mapping request can be safely ignored when the domain is dying.
      *
@@ -422,25 +418,11 @@ int cf_check amd_iommu_map_page(
      * before any page tables are freed (see iommu_free_pgtables()).
      */
     if ( d->is_dying )
-    {
-        spin_unlock(&ctx->arch.mapping_lock);
         return 0;
-    }
-
-    rc = amd_iommu_alloc_root(d);
-    if ( rc )
-    {
-        spin_unlock(&ctx->arch.mapping_lock);
-        AMD_IOMMU_ERROR("root table alloc failed, dfn = %"PRI_dfn"\n",
-                        dfn_x(dfn));
-        domain_crash(d);
-        return rc;
-    }
 
     if ( iommu_pde_from_dfn(d, ctx, dfn_x(dfn), level, &pt_mfn, flush_flags, true) ||
          !pt_mfn )
     {
-        spin_unlock(&ctx->arch.mapping_lock);
         AMD_IOMMU_ERROR("invalid IO pagetable entry dfn = %"PRI_dfn"\n",
                         dfn_x(dfn));
         domain_crash(d);
@@ -452,7 +434,7 @@ int cf_check amd_iommu_map_page(
                                 flags & IOMMUF_writable,
                                 flags & IOMMUF_readable, &contig);
 
-    while ( unlikely(contig) && ++level < ctx->arch.amd.paging_mode )
+    while ( unlikely(contig) && ++level < hd->arch.amd.paging_mode )
     {
         struct page_info *pg = mfn_to_page(_mfn(pt_mfn));
         unsigned long next_mfn;
@@ -471,8 +453,6 @@ int cf_check amd_iommu_map_page(
         perfc_incr(iommu_pt_coalesces);
     }
 
-    spin_unlock(&ctx->arch.mapping_lock);
-
     *flush_flags |= IOMMU_FLUSHF_added;
     if ( old.pr )
     {
@@ -486,11 +466,11 @@ int cf_check amd_iommu_map_page(
 }
 
 int cf_check amd_iommu_unmap_page(
-    struct domain *d, dfn_t dfn, unsigned int order, unsigned int *flush_flags)
+    struct domain *d, dfn_t dfn, unsigned int order, unsigned int *flush_flags,
+    struct iommu_context *ctx)
 {
     unsigned long pt_mfn = 0;
     struct domain_iommu *hd = dom_iommu(d);
-    struct iommu_context *ctx = iommu_default_context(d);
     unsigned int level = (order / PTE_PER_TABLE_SHIFT) + 1;
     union amd_iommu_pte old = {};
 
@@ -500,17 +480,11 @@ int cf_check amd_iommu_unmap_page(
      */
     ASSERT((hd->platform_ops->page_sizes >> order) & PAGE_SIZE_4K);
 
-    spin_lock(&ctx->arch.mapping_lock);
-
     if ( !ctx->arch.amd.root_table )
-    {
-        spin_unlock(&ctx->arch.mapping_lock);
         return 0;
-    }
 
     if ( iommu_pde_from_dfn(d, ctx, dfn_x(dfn), level, &pt_mfn, flush_flags, false) )
     {
-        spin_unlock(&ctx->arch.mapping_lock);
         AMD_IOMMU_ERROR("invalid IO pagetable entry dfn = %"PRI_dfn"\n",
                         dfn_x(dfn));
         domain_crash(d);
@@ -524,7 +498,7 @@ int cf_check amd_iommu_unmap_page(
         /* Mark PTE as 'page not present'. */
         old = clear_iommu_pte_present(pt_mfn, dfn_x(dfn), level, &free);
 
-        while ( unlikely(free) && ++level < ctx->arch.amd.paging_mode )
+        while ( unlikely(free) && ++level < hd->arch.amd.paging_mode )
         {
             struct page_info *pg = mfn_to_page(_mfn(pt_mfn));
 
@@ -540,8 +514,6 @@ int cf_check amd_iommu_unmap_page(
         }
     }
 
-    spin_unlock(&ctx->arch.mapping_lock);
-
     if ( old.pr )
     {
         *flush_flags |= IOMMU_FLUSHF_modified;
@@ -608,7 +580,7 @@ static unsigned long flush_count(unsigned long dfn, unsigned long page_count,
 }
 
 int cf_check amd_iommu_flush_iotlb_pages(
-    struct domain *d, dfn_t dfn, unsigned long page_count,
+    struct domain *d, struct iommu_context *ctx, dfn_t dfn, unsigned long page_count,
     unsigned int flush_flags)
 {
     unsigned long dfn_l = dfn_x(dfn);
@@ -626,7 +598,7 @@ int cf_check amd_iommu_flush_iotlb_pages(
     /* If so requested or if the range wraps then just flush everything. */
     if ( (flush_flags & IOMMU_FLUSHF_all) || dfn_l + page_count < dfn_l )
     {
-        amd_iommu_flush_all_pages(d);
+        amd_iommu_flush_all_pages(d, ctx);
         return 0;
     }
 
@@ -639,13 +611,13 @@ int cf_check amd_iommu_flush_iotlb_pages(
      *       flush code.
      */
     if ( page_count == 1 ) /* order 0 flush count */
-        amd_iommu_flush_pages(d, dfn_l, 0);
+        amd_iommu_flush_pages(d, ctx, dfn_l, 0);
     else if ( flush_count(dfn_l, page_count, 9) == 1 )
-        amd_iommu_flush_pages(d, dfn_l, 9);
+        amd_iommu_flush_pages(d, ctx, dfn_l, 9);
     else if ( flush_count(dfn_l, page_count, 18) == 1 )
-        amd_iommu_flush_pages(d, dfn_l, 18);
+        amd_iommu_flush_pages(d, ctx, dfn_l, 18);
     else
-        amd_iommu_flush_all_pages(d);
+        amd_iommu_flush_all_pages(d, ctx);
 
     return 0;
 }
diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/passthrough/amd/pci_amd_iommu.c
index c871660661..3c17d78caf 100644
--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
+++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
@@ -20,8 +20,11 @@
 #include <xen/iocap.h>
 #include <xen/softirq.h>
 #include <xen/iommu.h>
+#include <xen/mm.h>
+#include <xen/pci.h>
 
 #include <asm/acpi.h>
+#include <asm/iommu.h>
 
 #include "iommu.h"
 #include "../ats.h"
@@ -85,18 +88,6 @@ int get_dma_requestor_id(uint16_t seg, uint16_t bdf)
     return req_id;
 }
 
-static int __must_check allocate_domain_resources(struct domain *d)
-{
-    struct iommu_context *ctx = iommu_default_context(d);
-    int rc;
-
-    spin_lock(&ctx->arch.mapping_lock);
-    rc = amd_iommu_alloc_root(d);
-    spin_unlock(&ctx->arch.mapping_lock);
-
-    return rc;
-}
-
 static bool any_pdev_behind_iommu(const struct domain *d,
                                   const struct pci_dev *exclude,
                                   const struct amd_iommu *iommu)
@@ -127,8 +118,9 @@ static bool use_ats(
 
 static int __must_check amd_iommu_setup_domain_device(
     struct domain *domain, struct iommu_context *ctx, struct amd_iommu *iommu,
-    uint8_t devfn, struct pci_dev *pdev)
+    uint8_t devfn, struct pci_dev *pdev, struct iommu_context *prev_ctx)
 {
+    struct domain_iommu *hd = dom_iommu(domain);
     struct amd_iommu_dte *table, *dte;
     unsigned long flags;
     unsigned int req_id, sr_flags;
@@ -138,11 +130,7 @@ static int __must_check amd_iommu_setup_domain_device(
     const struct page_info *root_pg;
     domid_t domid;
 
-    BUG_ON(!ctx->arch.amd.paging_mode || !iommu->dev_table.buffer);
-
-    rc = allocate_domain_resources(domain);
-    if ( rc )
-        return rc;
+    BUG_ON(!hd->arch.amd.paging_mode || !iommu->dev_table.buffer);
 
     req_id = get_dma_requestor_id(iommu->sbdf.seg, pdev->sbdf.bdf);
     ivrs_dev = &get_ivrs_mappings(iommu->sbdf.seg)[req_id];
@@ -157,7 +145,7 @@ static int __must_check amd_iommu_setup_domain_device(
     ivrs_dev = &get_ivrs_mappings(iommu->sbdf.seg)[req_id];
 
     root_pg = ctx->arch.amd.root_table;
-    domid = domain->domain_id;
+    domid = ctx->arch.amd.didmap[iommu->index];
 
     spin_lock_irqsave(&iommu->lock, flags);
 
@@ -166,7 +154,7 @@ static int __must_check amd_iommu_setup_domain_device(
         /* bind DTE to domain page-tables */
         rc = amd_iommu_set_root_page_table(
                  dte, page_to_maddr(root_pg), domid,
-                 ctx->arch.amd.paging_mode, sr_flags);
+                 hd->arch.amd.paging_mode, sr_flags);
         if ( rc )
         {
             ASSERT(rc < 0);
@@ -208,7 +196,7 @@ static int __must_check amd_iommu_setup_domain_device(
         else
             rc = amd_iommu_set_root_page_table(
                      dte, page_to_maddr(root_pg), domid,
-                     ctx->arch.amd.paging_mode, sr_flags);
+                     hd->arch.amd.paging_mode, sr_flags);
         if ( rc < 0 )
         {
             spin_unlock_irqrestore(&iommu->lock, flags);
@@ -251,6 +239,7 @@ static int __must_check amd_iommu_setup_domain_device(
         spin_unlock_irqrestore(&iommu->lock, flags);
 
         amd_iommu_flush_device(iommu, req_id, prev_domid);
+        amd_iommu_flush_device(iommu, req_id, domid);
     }
     else
         spin_unlock_irqrestore(&iommu->lock, flags);
@@ -259,7 +248,7 @@ static int __must_check amd_iommu_setup_domain_device(
                     "root table = %#"PRIx64", "
                     "domain = %d, paging mode = %d\n",
                     req_id, pdev->type, page_to_maddr(root_pg),
-                    domid, ctx->arch.amd.paging_mode);
+                    domid, hd->arch.amd.paging_mode);
 
     ASSERT(pcidevs_locked());
 
@@ -272,6 +261,15 @@ static int __must_check amd_iommu_setup_domain_device(
         amd_iommu_flush_iotlb(devfn, pdev, INV_IOMMU_ALL_PAGES_ADDRESS, 0);
     }
 
+    if ( prev_ctx )
+    {
+        /* Don't underflow the counter. */
+        BUG_ON(!prev_ctx->arch.amd.iommu_dev_cnt[iommu->index]);
+        prev_ctx->arch.amd.iommu_dev_cnt[iommu->index]--;
+    }
+
+    ctx->arch.amd.iommu_dev_cnt[iommu->index]++;
+
     return 0;
 }
 
@@ -338,27 +336,12 @@ static int cf_check iov_enable_xt(void)
     return 0;
 }
 
-int amd_iommu_alloc_root(struct domain *d)
-{
-    struct domain_iommu *hd = dom_iommu(d);
-    struct iommu_context *ctx = iommu_default_context(d);
-
-    if ( unlikely(!ctx->arch.amd.root_table) && d != dom_io )
-    {
-        ctx->arch.amd.root_table = iommu_alloc_pgtable(hd, ctx, 0);
-        if ( !ctx->arch.amd.root_table )
-            return -ENOMEM;
-    }
-
-    return 0;
-}
-
 unsigned int __read_mostly amd_iommu_max_paging_mode = IOMMU_MAX_PT_LEVELS;
 int __read_mostly amd_iommu_min_paging_mode = 1;
 
 static int cf_check amd_iommu_domain_init(struct domain *d)
 {
-    struct iommu_context *ctx = iommu_default_context(d);
+    struct domain_iommu *hd = dom_iommu(d);
     int pglvl = amd_iommu_get_paging_mode(
                     1UL << (domain_max_paddr_bits(d) - PAGE_SHIFT));
 
@@ -369,20 +352,20 @@ static int cf_check amd_iommu_domain_init(struct domain *d)
      * Choose the number of levels for the IOMMU page tables, taking into
      * account unity maps.
      */
-    ctx->arch.amd.paging_mode = max(pglvl, amd_iommu_min_paging_mode);
+    hd->arch.amd.paging_mode = max(pglvl, amd_iommu_min_paging_mode);
 
     return 0;
 }
 
-static int cf_check amd_iommu_add_device(u8 devfn, struct pci_dev *pdev);
+static int __hwdom_init cf_check setup_hwdom_device(u8 devfn, struct pci_dev *pdev)
+{
+    return iommu_attach_context(hardware_domain, pdev, 0);
+}
 
 static void __hwdom_init cf_check amd_iommu_hwdom_init(struct domain *d)
 {
     const struct amd_iommu *iommu;
 
-    if ( allocate_domain_resources(d) )
-        BUG();
-
     for_each_amd_iommu ( iommu )
         if ( iomem_deny_access(d, PFN_DOWN(iommu->mmio_base_phys),
                                PFN_DOWN(iommu->mmio_base_phys +
@@ -391,11 +374,12 @@ static void __hwdom_init cf_check amd_iommu_hwdom_init(struct domain *d)
 
     /* Make sure workarounds are applied (if needed) before adding devices. */
     arch_iommu_hwdom_init(d);
-    setup_hwdom_pci_devices(d, amd_iommu_add_device);
+    setup_hwdom_pci_devices(d, setup_hwdom_device);
 }
 
 static void amd_iommu_disable_domain_device(const struct domain *domain,
                                             struct amd_iommu *iommu,
+                                            struct iommu_context *prev_ctx,
                                             uint8_t devfn, struct pci_dev *pdev)
 {
     struct amd_iommu_dte *table, *dte;
@@ -442,155 +426,82 @@ static void amd_iommu_disable_domain_device(const struct domain *domain,
         AMD_IOMMU_DEBUG("Disable: device id = %#x, "
                         "domain = %d, paging mode = %d\n",
                         req_id, dte->domain_id,
-                        iommu_default_context(domain)->arch.amd.paging_mode);
+                        dom_iommu(domain)->arch.amd.paging_mode);
     }
     else
         spin_unlock_irqrestore(&iommu->lock, flags);
+
+    BUG_ON(!prev_ctx->arch.amd.iommu_dev_cnt[iommu->index]);
+    prev_ctx->arch.amd.iommu_dev_cnt[iommu->index]--;
 }
 
-static int cf_check reassign_device(
-    struct domain *source, struct domain *target, u8 devfn,
-    struct pci_dev *pdev)
+static int cf_check amd_iommu_context_init(struct domain *d, struct iommu_context *ctx,
+                                           u32 flags)
 {
     struct amd_iommu *iommu;
-    struct iommu_context *target_ctx = iommu_default_context(target);
-    struct iommu_context *source_ctx = iommu_default_context(source);
-    int rc;
+    struct domain_iommu *hd = dom_iommu(d);
 
-    iommu = find_iommu_for_device(pdev->sbdf);
-    if ( !iommu )
+    ctx->arch.amd.didmap = xzalloc_array(domid_t, nr_amd_iommus);
+    if ( !ctx->arch.amd.didmap )
+        return -ENOMEM;
+
+    ctx->arch.amd.iommu_dev_cnt = xzalloc_array(unsigned long, nr_amd_iommus);
+    if ( !ctx->arch.amd.iommu_dev_cnt )
     {
-        AMD_IOMMU_WARN("failed to find IOMMU: %pp cannot be assigned to %pd\n",
-                       &PCI_SBDF(pdev->seg, pdev->bus, devfn), target);
-        return -ENODEV;
+        xfree(ctx->arch.amd.didmap);
+        return -ENOMEM;
     }
 
-    rc = amd_iommu_setup_domain_device(target, target_ctx, iommu, devfn, pdev);
-    if ( rc )
-        return rc;
-
-    if ( devfn == pdev->devfn && pdev->domain != target )
+    // TODO: Allocate IOMMU domid only when attaching devices ?
+    /* Populate context DID map using pseudo DIDs */
+    for_each_amd_iommu(iommu)
     {
-        write_lock(&source->pci_lock);
-        list_del(&pdev->domain_list);
-        write_unlock(&source->pci_lock);
-
-        pdev->domain = target;
-
-        write_lock(&target->pci_lock);
-        list_add(&pdev->domain_list, &target->pdev_list);
-        write_unlock(&target->pci_lock);
+        ctx->arch.amd.didmap[iommu->index] =
+            iommu_alloc_domid(iommu->domid_map);
     }
 
-    /*
-     * If the device belongs to the hardware domain, and it has a unity mapping,
-     * don't remove it from the hardware domain, because BIOS may reference that
-     * mapping.
-     */
-    if ( !is_hardware_domain(source) )
+    if ( !ctx->opaque )
     {
-        const struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(pdev->seg);
-        unsigned int bdf = PCI_BDF(pdev->bus, devfn);
-
-        rc = amd_iommu_reserve_domain_unity_unmap(
-                 source, source_ctx,
-                 ivrs_mappings[get_dma_requestor_id(pdev->seg, bdf)].unity_map);
-        if ( rc )
-            return rc;
+        /* Create initial context page */
+        ctx->arch.amd.root_table = iommu_alloc_pgtable(hd, ctx, 0);
     }
 
-    AMD_IOMMU_DEBUG("Re-assign %pp from %pd to %pd\n",
-                    &PCI_SBDF(pdev->seg, pdev->bus, devfn), source, target);
+    return arch_iommu_context_init(d, ctx, flags);
 
-    return 0;
 }
 
-static int cf_check amd_iommu_assign_device(
-    struct domain *d, u8 devfn, struct pci_dev *pdev, u32 flag)
+static int cf_check amd_iommu_context_teardown(struct domain *d,
+                                        struct iommu_context *ctx, u32 flags)
 {
-    struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(pdev->seg);
-    unsigned int bdf = PCI_BDF(pdev->bus, devfn);
-    int req_id = get_dma_requestor_id(pdev->seg, bdf);
-    int rc = amd_iommu_reserve_domain_unity_map(
-                 d, iommu_default_context(d),
-                 ivrs_mappings[req_id].unity_map, flag);
+    struct amd_iommu *iommu;
+    pcidevs_lock();
 
-    if ( !rc )
-        rc = reassign_device(pdev->domain, d, devfn, pdev);
+    // TODO: Cleanup mappings
+    ASSERT(ctx->arch.amd.didmap);
 
-    if ( rc && !is_hardware_domain(d) )
+    for_each_amd_iommu(iommu)
     {
-        int ret = amd_iommu_reserve_domain_unity_unmap(
-                      d, iommu_default_context(d),
-                      ivrs_mappings[req_id].unity_map);
-
-        if ( ret )
-        {
-            printk(XENLOG_ERR "AMD-Vi: "
-                   "unity-unmap for %pd/%04x:%02x:%02x.%u failed (%d)\n",
-                   d, pdev->seg, pdev->bus,
-                   PCI_SLOT(devfn), PCI_FUNC(devfn), ret);
-            domain_crash(d);
-        }
+        iommu_free_domid(ctx->arch.amd.didmap[iommu->index], iommu->domid_map);
     }
 
-    return rc;
-}
-
-static void cf_check amd_iommu_clear_root_pgtable(struct domain *d)
-{
-    struct iommu_context *ctx = iommu_default_context(d);
-
-    spin_lock(&ctx->arch.mapping_lock);
-    ctx->arch.amd.root_table = NULL;
-    spin_unlock(&ctx->arch.mapping_lock);
-}
-
-static void cf_check amd_iommu_domain_destroy(struct domain *d)
-{
-    struct iommu_context *ctx = iommu_default_context(d);
+    xfree(ctx->arch.amd.didmap);
 
-    iommu_identity_map_teardown(d, ctx);
-    ASSERT(!ctx->arch.amd.root_table);
+    pcidevs_unlock();
+    return arch_iommu_context_teardown(d, ctx, flags);
 }
 
-static int cf_check amd_iommu_add_device(u8 devfn, struct pci_dev *pdev)
+static int cf_check amd_iommu_attach(
+    struct domain *d, struct pci_dev *pdev, struct iommu_context *ctx)
 {
-    struct amd_iommu *iommu;
-    struct iommu_context *ctx;
-    u16 bdf;
-    struct ivrs_mappings *ivrs_mappings;
-
-    if ( !pdev->domain )
-        return -EINVAL;
-
-    ctx = iommu_default_context(pdev->domain);
-
-    for_each_amd_iommu(iommu)
-        if ( pdev->sbdf.sbdf == iommu->sbdf.sbdf )
-            return is_hardware_domain(pdev->domain) ? 0 : -ENODEV;
-
-    iommu = find_iommu_for_device(pdev->sbdf);
-    if ( unlikely(!iommu) )
-    {
-        /* Filter bridge devices. */
-        if ( pdev->type == DEV_TYPE_PCI_HOST_BRIDGE &&
-             is_hardware_domain(pdev->domain) )
-        {
-            AMD_IOMMU_DEBUG("Skipping host bridge %pp\n", &pdev->sbdf);
-            return 0;
-        }
-
-        AMD_IOMMU_WARN("no IOMMU for %pp; cannot be handed to %pd\n",
-                        &PCI_SBDF(pdev->seg, pdev->bus, devfn), pdev->domain);
-        return -ENODEV;
-    }
+    int ret;
+    struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(pdev->seg);
+    int req_id = get_dma_requestor_id(pdev->seg, pdev->sbdf.bdf);
+    struct ivrs_unity_map *map = ivrs_mappings[req_id].unity_map;
+    struct amd_iommu *iommu = find_iommu_for_device(pdev->sbdf);
+    uint16_t bdf = pdev->sbdf.bdf;
 
-    ivrs_mappings = get_ivrs_mappings(pdev->seg);
-    bdf = PCI_BDF(pdev->bus, devfn);
-    if ( !ivrs_mappings ||
-         !ivrs_mappings[ivrs_mappings[bdf].dte_requestor_id].valid )
-        return -EPERM;
+    if ( !iommu )
+        return 0;
 
     if ( iommu_intremap &&
          ivrs_mappings[bdf].dte_requestor_id == bdf &&
@@ -621,55 +532,98 @@ static int cf_check amd_iommu_add_device(u8 devfn, struct pci_dev *pdev)
         amd_iommu_flush_device(iommu, bdf, DOMID_INVALID);
     }
 
-    if ( amd_iommu_reserve_domain_unity_map(
-             pdev->domain, ctx,
-             ivrs_mappings[ivrs_mappings[bdf].dte_requestor_id].unity_map,
-             0) )
-        AMD_IOMMU_WARN("%pd: unity mapping failed for %pp\n",
-                       pdev->domain, &PCI_SBDF(pdev->seg, bdf));
+    ret = amd_iommu_reserve_domain_unity_map(d, ctx, map, 0);
+    if ( ret )
+        return ret;
 
-    return amd_iommu_setup_domain_device(pdev->domain, ctx, iommu, devfn, pdev);
+    return amd_iommu_setup_domain_device(d, ctx, iommu, pdev->devfn, pdev, NULL);
 }
 
-static int cf_check amd_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
+static int cf_check amd_iommu_detach(struct domain *d, struct pci_dev *pdev,
+                                     struct iommu_context *prev_ctx)
 {
-    struct amd_iommu *iommu;
-    struct iommu_context *ctx;
-    u16 bdf;
-    struct ivrs_mappings *ivrs_mappings;
+    struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(pdev->seg);
+    int req_id = get_dma_requestor_id(pdev->seg, pdev->sbdf.bdf);
+    struct amd_iommu *iommu = find_iommu_for_device(pdev->sbdf);
 
-    if ( !pdev->domain )
-        return -EINVAL;
+    if ( !iommu )
+        return 0;
 
-    ctx = iommu_default_context(pdev->domain);
+    amd_iommu_disable_domain_device(d, iommu, prev_ctx, pdev->devfn, pdev);
+
+    return amd_iommu_reserve_domain_unity_unmap(d, prev_ctx, ivrs_mappings[req_id].unity_map);
+}
+
+static int cf_check amd_iommu_add_devfn(struct domain *d, struct pci_dev *pdev,
+                                        u16 devfn, struct iommu_context *ctx)
+{
+    struct amd_iommu *iommu = find_iommu_for_device(pdev->sbdf);
 
-    iommu = find_iommu_for_device(pdev->sbdf);
     if ( !iommu )
+        return 0;
+
+    return amd_iommu_setup_domain_device(d, ctx, iommu, pdev->devfn, pdev, NULL);
+}
+
+static int cf_check amd_iommu_remove_devfn(struct domain *d, struct pci_dev *pdev,
+                                           u16 devfn, struct iommu_context *prev_ctx)
+{
+    struct amd_iommu *iommu = find_iommu_for_device(pdev->sbdf);
+
+    if ( !iommu )
+        return 0;
+
+    amd_iommu_disable_domain_device(d, iommu, prev_ctx, pdev->devfn, pdev);
+
+    return 0;
+}
+
+static int cf_check amd_iommu_reattach(struct domain *d,
+                                       struct pci_dev *pdev,
+                                       struct iommu_context *prev_ctx,
+                                       struct iommu_context *ctx)
+{
+    int ret, rc, req_id = get_dma_requestor_id(pdev->seg, pdev->sbdf.bdf);
+    struct ivrs_mappings *ivrs_mapping = &get_ivrs_mappings(pdev->seg)[req_id];
+    struct ivrs_unity_map *map = ivrs_mapping ? ivrs_mapping->unity_map : NULL;
+    struct amd_iommu *iommu = find_iommu_for_device(pdev->sbdf);
+
+    if ( !iommu )
+        return 0;
+
+    ret = amd_iommu_reserve_domain_unity_map(d, ctx, map, 0);
+    if ( ret )
+        return ret;
+
+    ret = amd_iommu_setup_domain_device(d, ctx, ivrs_mapping->iommu, pdev->devfn,
+                                        pdev, prev_ctx);
+    if ( ret )
     {
-        AMD_IOMMU_WARN("failed to find IOMMU: %pp cannot be removed from %pd\n",
-                        &PCI_SBDF(pdev->seg, pdev->bus, devfn), pdev->domain);
-        return -ENODEV;
-    }
+        if ( (rc = amd_iommu_reserve_domain_unity_unmap(d, ctx, map)) )
+            AMD_IOMMU_DEBUG(" Unable to unmap RMRR from d%dc%d for %pp (%d)\n",
+                            d->domain_id, prev_ctx->id, &pdev->sbdf, rc);
 
-    amd_iommu_disable_domain_device(pdev->domain, iommu, devfn, pdev);
+        return ret;
+    }
 
-    ivrs_mappings = get_ivrs_mappings(pdev->seg);
-    bdf = PCI_BDF(pdev->bus, devfn);
+    if ( (rc = amd_iommu_reserve_domain_unity_unmap(d, prev_ctx, map)) )
+        AMD_IOMMU_DEBUG(" Unable to unmap previous RMRR for %pp (%d)\n",
+                        &pdev->sbdf, rc);
 
-    if ( amd_iommu_reserve_domain_unity_unmap(
-             pdev->domain, ctx,
-             ivrs_mappings[ivrs_mappings[bdf].dte_requestor_id].unity_map) )
-        AMD_IOMMU_WARN("%pd: unity unmapping failed for %pp\n",
-                       pdev->domain, &PCI_SBDF(pdev->seg, bdf));
+    return ret;
+}
 
-    amd_iommu_quarantine_teardown(pdev);
+static void cf_check amd_iommu_clear_root_pgtable(struct domain *d, struct iommu_context *ctx)
+{
+    ctx->arch.amd.root_table = NULL;
+}
 
-    if ( amd_iommu_perdev_intremap &&
-         ivrs_mappings[bdf].dte_requestor_id == bdf &&
-         ivrs_mappings[bdf].intremap_table )
-        amd_iommu_free_intremap_table(iommu, &ivrs_mappings[bdf], bdf);
+static void cf_check amd_iommu_domain_destroy(struct domain *d)
+{
+    struct iommu_context *ctx = iommu_default_context(d);
 
-    return 0;
+    iommu_identity_map_teardown(d, ctx);
+    ASSERT(!ctx->arch.amd.root_table);
 }
 
 static int cf_check amd_iommu_group_id(u16 seg, u8 bus, u8 devfn)
@@ -729,30 +683,45 @@ static void amd_dump_page_table_level(struct page_info *pg, int level,
 
 static void cf_check amd_dump_page_tables(struct domain *d)
 {
-    struct iommu_context *ctx = iommu_default_context(d);
+    unsigned int i;
+    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx;
 
-    if ( !ctx->arch.amd.root_table )
-        return;
+    if (d == dom_io)
+        printk("d[IO] page tables\n");
+    else
+        printk("d%hu page tables\n", d->domain_id);
+
+    for (i = 0; i < (1 + hd->other_contexts.count); ++i)
+    {
+        if ( (ctx = iommu_get_context(d, i)) )
+        {
+            printk(" Context %d (%"PRI_mfn")\n", i,
+                   mfn_x(page_to_mfn(ctx->arch.amd.root_table)));
 
-    printk("AMD IOMMU %pd table has %u levels\n", d, ctx->arch.amd.paging_mode);
-    amd_dump_page_table_level(ctx->arch.amd.root_table,
-                              ctx->arch.amd.paging_mode, 0, 0);
+            amd_dump_page_table_level(ctx->arch.amd.root_table,
+                                      hd->arch.amd.paging_mode, 0, 0);
+            iommu_put_context(ctx);
+        }
+    }
 }
 
 static const struct iommu_ops __initconst_cf_clobber _iommu_ops = {
     .page_sizes = PAGE_SIZE_4K | PAGE_SIZE_2M | PAGE_SIZE_1G,
     .init = amd_iommu_domain_init,
     .hwdom_init = amd_iommu_hwdom_init,
-    .quarantine_init = amd_iommu_quarantine_init,
-    .add_device = amd_iommu_add_device,
-    .remove_device = amd_iommu_remove_device,
-    .assign_device  = amd_iommu_assign_device,
+    .context_init = amd_iommu_context_init,
+    .context_teardown = amd_iommu_context_teardown,
+    .attach = amd_iommu_attach,
+    .detach = amd_iommu_detach,
+    .reattach = amd_iommu_reattach,
+    .add_devfn = amd_iommu_add_devfn,
+    .remove_devfn = amd_iommu_remove_devfn,
     .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,
-    .reassign_device = reassign_device,
     .get_device_group_id = amd_iommu_group_id,
     .enable_x2apic = iov_enable_xt,
     .update_ire_from_apic = amd_iommu_ioapic_update_ire,
diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
index 32c5011820..feda2e390b 100644
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -208,13 +208,15 @@ int iommu_domain_init(struct domain *d, unsigned int opts)
     hd->node = NUMA_NO_NODE;
 #endif
 
+    rspin_lock_init(&hd->default_ctx.lock);
+
     ret = arch_iommu_domain_init(d);
     if ( ret )
         return ret;
 
     hd->platform_ops = iommu_get_ops();
     ret = iommu_call(hd->platform_ops, init, d);
-    if ( ret || is_system_domain(d) )
+    if ( ret || (is_system_domain(d) && d != dom_io) )
         return ret;
 
     /*
@@ -236,7 +238,17 @@ int iommu_domain_init(struct domain *d, unsigned int opts)
 
     ASSERT(!(hd->need_sync && hd->hap_pt_share));
 
-    return 0;
+    rspin_lock(&hd->default_ctx.lock);
+    ret = iommu_context_init(d, &hd->default_ctx, 0, IOMMU_CONTEXT_INIT_default);
+    rspin_unlock(&hd->default_ctx.lock);
+
+    rwlock_init(&hd->other_contexts.lock);
+    hd->other_contexts.initialized = (atomic_t)ATOMIC_INIT(0);
+    hd->other_contexts.count = 0;
+    hd->other_contexts.bitmap = NULL;
+    hd->other_contexts.map = NULL;
+
+    return ret;
 }
 
 static void cf_check iommu_dump_page_tables(unsigned char key)
@@ -249,14 +261,11 @@ static void cf_check iommu_dump_page_tables(unsigned char key)
 
     for_each_domain(d)
     {
-        if ( is_hardware_domain(d) || !is_iommu_enabled(d) )
+        if ( !is_iommu_enabled(d) )
             continue;
 
         if ( iommu_use_hap_pt(d) )
-        {
             printk("%pd sharing page tables\n", d);
-            continue;
-        }
 
         iommu_vcall(dom_iommu(d)->platform_ops, dump_page_tables, d);
     }
@@ -274,9 +283,13 @@ void __hwdom_init iommu_hwdom_init(struct domain *d)
     iommu_vcall(hd->platform_ops, hwdom_init, d);
 }
 
-static void iommu_teardown(struct domain *d)
+void cf_check iommu_domain_destroy(struct domain *d)
 {
     struct domain_iommu *hd = dom_iommu(d);
+    struct pci_dev *pdev;
+
+    if ( !is_iommu_enabled(d) )
+        return;
 
     /*
      * During early domain creation failure, we may reach here with the
@@ -285,17 +298,68 @@ static void iommu_teardown(struct domain *d)
     if ( !hd->platform_ops )
         return;
 
+    /* Move all devices back to quarantine */
+    /* TODO: Is it needed ? */
+    for_each_pdev(d, pdev)
+    {
+        int rc = iommu_reattach_context(d, dom_io, pdev, 0);
+
+        if ( rc )
+        {
+            printk(XENLOG_WARNING "Unable to quarantine device %pp (%d)\n", &pdev->sbdf, rc);
+            pdev->broken = true;
+        }
+        else
+            pdev->domain = dom_io;
+    }
+
     iommu_vcall(hd->platform_ops, teardown, d);
+
+    arch_iommu_domain_destroy(d);
 }
 
-void iommu_domain_destroy(struct domain *d)
-{
-    if ( !is_iommu_enabled(d) )
-        return;
+bool cf_check iommu_check_context(struct domain *d, uint16_t ctx_id) {
+    struct domain_iommu *hd = dom_iommu(d);
 
-    iommu_teardown(d);
+    if ( ctx_id == 0 )
+        return true; /* Default context always exist. */
 
-    arch_iommu_domain_destroy(d);
+    if ( (ctx_id - 1) >= hd->other_contexts.count )
+        return false; /* out of bounds */
+
+    if ( ctx_id == IOMMU_INVALID_CONTEXT_ID )
+        return false; /* Invalid ID */
+
+    return test_bit(ctx_id - 1, hd->other_contexts.bitmap);
+}
+
+struct iommu_context * cf_check iommu_get_context(struct domain *d, uint16_t ctx_id) {
+    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx;
+
+    if ( !iommu_check_context(d, ctx_id) )
+        return NULL;
+
+    if (ctx_id == 0)
+        ctx = &hd->default_ctx;
+    else
+        ctx = &hd->other_contexts.map[ctx_id - 1];
+
+    rspin_lock(&ctx->lock);
+    /* Check if the context is still valid at this point */
+    if ( unlikely(!iommu_check_context(d, ctx_id)) )
+    {
+        /* Context has been destroyed in between */
+        rspin_unlock(&ctx->lock);
+        return NULL;
+    }
+
+    return ctx;
+}
+
+void cf_check iommu_put_context(struct iommu_context *ctx)
+{
+    rspin_unlock(&ctx->lock);
 }
 
 static unsigned int mapping_order(const struct domain_iommu *hd,
@@ -323,11 +387,11 @@ static unsigned int mapping_order(const struct domain_iommu *hd,
     return order;
 }
 
-long iommu_map(struct domain *d, dfn_t dfn0, mfn_t mfn0,
-               unsigned long page_count, unsigned int flags,
-               unsigned int *flush_flags)
+static long _iommu_map(struct domain *d, dfn_t dfn0, mfn_t mfn0,
+                       unsigned long page_count, unsigned int flags,
+                       unsigned int *flush_flags, struct iommu_context *ctx)
 {
-    const struct domain_iommu *hd = dom_iommu(d);
+    struct domain_iommu *hd = dom_iommu(d);
     unsigned long i;
     unsigned int order, j = 0;
     int rc = 0;
@@ -350,7 +414,7 @@ long iommu_map(struct domain *d, dfn_t dfn0, mfn_t mfn0,
             return i;
 
         rc = iommu_call(hd->platform_ops, map_page, d, dfn, mfn,
-                        flags | IOMMUF_order(order), flush_flags);
+                        flags | IOMMUF_order(order), flush_flags, ctx);
 
         if ( likely(!rc) )
             continue;
@@ -361,10 +425,10 @@ long iommu_map(struct domain *d, dfn_t dfn0, mfn_t mfn0,
                    d->domain_id, dfn_x(dfn), mfn_x(mfn), rc);
 
         /* while statement to satisfy __must_check */
-        while ( iommu_unmap(d, dfn0, i, 0, flush_flags) )
+        while ( iommu_unmap(d, dfn0, i, 0, flush_flags, ctx->id) )
             break;
 
-        if ( !is_hardware_domain(d) )
+        if ( !ctx->id && !is_hardware_domain(d) )
             domain_crash(d);
 
         break;
@@ -375,43 +439,67 @@ long iommu_map(struct domain *d, dfn_t dfn0, mfn_t mfn0,
      * page, flush everything and clear flush flags.
      */
     if ( page_count > 1 && unlikely(rc) &&
-         !iommu_iotlb_flush_all(d, *flush_flags) )
+         !iommu_iotlb_flush_all(d, ctx->id, *flush_flags) )
         *flush_flags = 0;
 
     return rc;
 }
 
+long iommu_map(struct domain *d, dfn_t dfn0, mfn_t mfn0,
+               unsigned long page_count, unsigned int flags,
+               unsigned int *flush_flags, uint16_t ctx_id)
+{
+    struct iommu_context *ctx;
+    long ret;
+
+    if ( !(ctx = iommu_get_context(d, ctx_id)) )
+        return -ENOENT;
+
+    ret = _iommu_map(d, dfn0, mfn0, page_count, flags, flush_flags, ctx);
+
+    iommu_put_context(ctx);
+
+    return ret;
+}
+
 int iommu_legacy_map(struct domain *d, dfn_t dfn, mfn_t mfn,
                      unsigned long page_count, unsigned int flags)
 {
+    struct iommu_context *ctx;
     unsigned int flush_flags = 0;
-    int rc;
+    int rc = 0;
 
     ASSERT(!(flags & IOMMUF_preempt));
-    rc = iommu_map(d, dfn, mfn, page_count, flags, &flush_flags);
 
-    if ( !this_cpu(iommu_dont_flush_iotlb) && !rc )
-        rc = iommu_iotlb_flush(d, dfn, page_count, flush_flags);
+    ctx = iommu_get_context(d, 0);
+
+    if ( !ctx->opaque )
+    {
+        rc = iommu_map(d, dfn, mfn, page_count, flags, &flush_flags, 0);
+
+        if ( !this_cpu(iommu_dont_flush_iotlb) && !rc )
+            rc = iommu_iotlb_flush(d, dfn, page_count, flush_flags, 0);
+    }
+
+    iommu_put_context(ctx);
 
     return rc;
 }
 
-long iommu_unmap(struct domain *d, dfn_t dfn0, unsigned long page_count,
-                 unsigned int flags, unsigned int *flush_flags)
+static long _iommu_unmap(struct domain *d, dfn_t dfn0, unsigned long page_count,
+                         unsigned int flags, unsigned int *flush_flags,
+                         struct iommu_context *ctx)
 {
-    const struct domain_iommu *hd = dom_iommu(d);
+    struct domain_iommu *hd = dom_iommu(d);
     unsigned long i;
     unsigned int order, j = 0;
     int rc = 0;
-    struct iommu_context *ctx;
 
     if ( !is_iommu_enabled(d) )
         return 0;
 
     ASSERT(!(flags & ~IOMMUF_preempt));
 
-    ctx = iommu_default_context(d);
-
     for ( i = 0; i < page_count; i += 1UL << order )
     {
         dfn_t dfn = dfn_add(dfn0, i);
@@ -425,7 +513,8 @@ long iommu_unmap(struct domain *d, dfn_t dfn0, unsigned long page_count,
             return i;
 
         err = iommu_call(hd->platform_ops, unmap_page, d, dfn,
-                         flags | IOMMUF_order(order), flush_flags);
+                         flags | IOMMUF_order(order), flush_flags,
+                         ctx);
 
         if ( likely(!err) )
             continue;
@@ -438,7 +527,7 @@ long iommu_unmap(struct domain *d, dfn_t dfn0, unsigned long page_count,
         if ( !rc )
             rc = err;
 
-        if ( !is_hardware_domain(d) )
+        if ( !ctx->id && !is_hardware_domain(d) )
         {
             domain_crash(d);
             break;
@@ -450,41 +539,74 @@ long iommu_unmap(struct domain *d, dfn_t dfn0, unsigned long page_count,
      * page, flush everything and clear flush flags.
      */
     if ( page_count > 1 && unlikely(rc) &&
-         !iommu_iotlb_flush_all(d, *flush_flags) )
+         !iommu_iotlb_flush_all(d, ctx->id, *flush_flags) )
         *flush_flags = 0;
 
     return rc;
 }
 
+long iommu_unmap(struct domain *d, dfn_t dfn0, unsigned long page_count,
+                 unsigned int flags, unsigned int *flush_flags,
+                 uint16_t ctx_id)
+{
+    struct iommu_context *ctx;
+    long ret;
+
+    if ( !(ctx = iommu_get_context(d, ctx_id)) )
+        return -ENOENT;
+
+    ret = _iommu_unmap(d, dfn0, page_count, flags, flush_flags, ctx);
+
+    iommu_put_context(ctx);
+
+    return ret;
+}
+
 int iommu_legacy_unmap(struct domain *d, dfn_t dfn, unsigned long page_count)
 {
     unsigned int flush_flags = 0;
-    int rc = iommu_unmap(d, dfn, page_count, 0, &flush_flags);
+    struct iommu_context *ctx;
+    int rc = 0;
 
-    if ( !this_cpu(iommu_dont_flush_iotlb) && !rc )
-        rc = iommu_iotlb_flush(d, dfn, page_count, flush_flags);
+    ctx = iommu_get_context(d, 0);
+
+    if ( !ctx->opaque )
+    {
+        rc = iommu_unmap(d, dfn, page_count, 0, &flush_flags, 0);
+
+        if ( !this_cpu(iommu_dont_flush_iotlb) && !rc )
+            rc = iommu_iotlb_flush(d, dfn, page_count, flush_flags, 0);
+    }
+
+    iommu_put_context(ctx);
 
     return rc;
 }
 
 int iommu_lookup_page(struct domain *d, dfn_t dfn, mfn_t *mfn,
-                      unsigned int *flags)
+                      unsigned int *flags, uint16_t ctx_id)
 {
-    const struct domain_iommu *hd = dom_iommu(d);
+    struct domain_iommu *hd = dom_iommu(d);
     struct iommu_context *ctx;
+    int ret;
 
     if ( !is_iommu_enabled(d) || !hd->platform_ops->lookup_page )
         return -EOPNOTSUPP;
 
-    ctx = iommu_default_context(d);
+    if ( !(ctx = iommu_get_context(d, ctx_id)) )
+        return -ENOENT;
 
-    return iommu_call(hd->platform_ops, lookup_page, d, dfn, mfn, flags);
+    ret = iommu_call(hd->platform_ops, lookup_page, d, dfn, mfn, flags, ctx);
+
+    iommu_put_context(ctx);
+    return ret;
 }
 
 int iommu_iotlb_flush(struct domain *d, dfn_t dfn, unsigned long page_count,
-                      unsigned int flush_flags)
+                      unsigned int flush_flags, uint16_t ctx_id)
 {
-    const struct domain_iommu *hd = dom_iommu(d);
+    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx;
     int rc;
 
     if ( !is_iommu_enabled(d) || !hd->platform_ops->iotlb_flush ||
@@ -494,7 +616,10 @@ int iommu_iotlb_flush(struct domain *d, dfn_t dfn, unsigned long page_count,
     if ( dfn_eq(dfn, INVALID_DFN) )
         return -EINVAL;
 
-    rc = iommu_call(hd->platform_ops, iotlb_flush, d, dfn, page_count,
+    if ( !(ctx = iommu_get_context(d, ctx_id)) )
+        return -ENOENT;
+
+    rc = iommu_call(hd->platform_ops, iotlb_flush, d, ctx, dfn, page_count,
                     flush_flags);
     if ( unlikely(rc) )
     {
@@ -503,23 +628,29 @@ int iommu_iotlb_flush(struct domain *d, dfn_t dfn, unsigned long page_count,
                    "d%d: IOMMU IOTLB flush failed: %d, dfn %"PRI_dfn", page count %lu flags %x\n",
                    d->domain_id, rc, dfn_x(dfn), page_count, flush_flags);
 
-        if ( !is_hardware_domain(d) )
+        if ( !ctx->id && !is_hardware_domain(d) )
             domain_crash(d);
     }
 
+    iommu_put_context(ctx);
+
     return rc;
 }
 
-int iommu_iotlb_flush_all(struct domain *d, unsigned int flush_flags)
+int iommu_iotlb_flush_all(struct domain *d, uint16_t ctx_id, unsigned int flush_flags)
 {
-    const struct domain_iommu *hd = dom_iommu(d);
+    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx;
     int rc;
 
     if ( !is_iommu_enabled(d) || !hd->platform_ops->iotlb_flush ||
          !flush_flags )
         return 0;
 
-    rc = iommu_call(hd->platform_ops, iotlb_flush, d, INVALID_DFN, 0,
+    if ( !(ctx = iommu_get_context(d, ctx_id)) )
+        return -ENOENT;
+
+    rc = iommu_call(hd->platform_ops, iotlb_flush, d, ctx, _dfn(0), 0,
                     flush_flags | IOMMU_FLUSHF_all);
     if ( unlikely(rc) )
     {
@@ -532,21 +663,419 @@ int iommu_iotlb_flush_all(struct domain *d, unsigned int flush_flags)
             domain_crash(d);
     }
 
+    iommu_put_context(ctx);
     return rc;
 }
 
+int cf_check iommu_context_init(struct domain *d, struct iommu_context *ctx,
+                                uint16_t ctx_id, unsigned int flags)
+{
+    if ( !dom_iommu(d)->platform_ops->context_init )
+        return -ENOSYS;
+
+    INIT_LIST_HEAD(&ctx->devices);
+    ctx->id = ctx_id;
+    ctx->dying = false;
+    ctx->opaque = false; /* assume non-opaque by default */
+
+    return iommu_call(dom_iommu(d)->platform_ops, context_init, d, ctx, flags);
+}
+
+int iommu_context_alloc(struct domain *d, uint16_t *ctx_id, unsigned int flags)
+{
+    unsigned int i;
+    int ret;
+    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx;
+
+    do {
+        i = find_first_zero_bit(hd->other_contexts.bitmap, hd->other_contexts.count);
+
+        if ( i >= hd->other_contexts.count )
+            return -ENOSPC;
+
+        ctx = &hd->other_contexts.map[i];
+
+        /* Try to lock the mutex, can fail on concurrent accesses */
+        if ( !rspin_trylock(&ctx->lock) )
+            continue;
+
+        /* We can now set it as used, we keep the lock for initialization. */
+        set_bit(i, hd->other_contexts.bitmap);
+    } while (0);
+
+    *ctx_id = i + 1;
+
+    ret = iommu_context_init(d, ctx, *ctx_id, flags);
+
+    if ( ret )
+        clear_bit(*ctx_id, hd->other_contexts.bitmap);
+
+    iommu_put_context(ctx);
+    return ret;
+}
+
+/**
+ * Attach dev phantom functions to ctx, override any existing
+ * mapped context.
+ */
+static int cf_check iommu_reattach_phantom(struct domain *d, device_t *dev,
+                                           struct iommu_context *ctx)
+{
+    int ret = 0;
+    uint8_t devfn = dev->devfn;
+    struct domain_iommu *hd = dom_iommu(d);
+
+    while ( dev->phantom_stride )
+    {
+        devfn += dev->phantom_stride;
+
+        if ( PCI_SLOT(devfn) != PCI_SLOT(dev->devfn) )
+            break;
+
+        ret = iommu_call(hd->platform_ops, add_devfn, d, dev, devfn, ctx);
+
+        if ( ret )
+            break;
+    }
+
+    return ret;
+}
+
+/**
+ * Detach all device phantom functions.
+ */
+static int cf_check iommu_detach_phantom(struct domain *d, device_t *dev,
+                                         struct iommu_context *prev_ctx)
+{
+    int ret = 0;
+    uint8_t devfn = dev->devfn;
+    struct domain_iommu *hd = dom_iommu(d);
+
+    while ( dev->phantom_stride )
+    {
+        devfn += dev->phantom_stride;
+
+        if ( PCI_SLOT(devfn) != PCI_SLOT(dev->devfn) )
+            break;
+
+        ret = iommu_call(hd->platform_ops, remove_devfn, d, dev, devfn, prev_ctx);
+
+        if ( ret )
+            break;
+    }
+
+    return ret;
+}
+
+int cf_check iommu_attach_context(struct domain *d, device_t *dev, uint16_t ctx_id)
+{
+    struct iommu_context *ctx = NULL;
+    int ret = 0, rc;
+
+    if ( dev->context == ctx_id )
+        return 0;
+
+    if ( !(ctx = iommu_get_context(d, ctx_id)) )
+    {
+        ret = -ENOENT;
+        goto unlock;
+    }
+
+    pcidevs_lock();
+
+    if ( ctx->dying )
+    {
+        ret = -EINVAL;
+        goto unlock;
+    }
+
+    /* ignore attach operations on PCIe bridges */
+    if ( dev->type != DEV_TYPE_PCIe_BRIDGE )
+        ret = iommu_call(dom_iommu(d)->platform_ops, attach, d, dev, ctx);
+
+    if ( ret )
+        goto unlock;
+
+    /* See iommu_reattach_context() */
+    rc = iommu_reattach_phantom(d, dev, ctx);
+
+    if ( rc )
+    {
+        printk(XENLOG_ERR "IOMMU: Unable to attach %pp phantom functions\n",
+               &dev->sbdf);
+
+        if( iommu_call(dom_iommu(d)->platform_ops, detach, d, dev, ctx)
+            || iommu_detach_phantom(d, dev, ctx) )
+        {
+            printk(XENLOG_ERR "IOMMU: Improperly detached %pp\n", &dev->sbdf);
+            WARN();
+        }
+
+        ret = -EIO;
+        goto unlock;
+    }
+
+    dev->context = ctx_id;
+    list_add(&dev->context_list, &ctx->devices);
+
+unlock:
+    pcidevs_unlock();
+
+    if ( ctx )
+        iommu_put_context(ctx);
+
+    return ret;
+}
+
+int cf_check iommu_detach_context(struct domain *d, device_t *dev)
+{
+    struct iommu_context *ctx;
+    int ret = 0, rc;
+
+    if ( !dev->domain || dev->context == IOMMU_INVALID_CONTEXT_ID )
+    {
+        printk(XENLOG_WARNING "IOMMU: Trying to detach a non-attached device\n");
+        WARN();
+        return 0;
+    }
+
+    /* Make sure device is actually in the domain. */
+    ASSERT(d == dev->domain);
+
+    pcidevs_lock();
+
+    ctx = iommu_get_context(d, dev->context);
+    ASSERT(ctx); /* device is using an invalid context ?
+                    dev->context invalid ? */
+
+    /* ignore detach operations on PCIe bridges */
+    if ( dev->type != DEV_TYPE_PCIe_BRIDGE )
+        ret = iommu_call(dom_iommu(d)->platform_ops, detach, d, dev, ctx);
+
+    if ( ret )
+        goto unlock;
+
+    rc = iommu_detach_phantom(d, dev, ctx);
+
+    if ( rc )
+        printk(XENLOG_WARNING "IOMMU: "
+               "Improperly detached device functions (%d)\n", rc);
+
+    list_del(&dev->context_list);
+
+unlock:
+    pcidevs_unlock();
+    iommu_put_context(ctx);
+    return ret;
+}
+
+int cf_check iommu_reattach_context(struct domain *prev_dom, struct domain *next_dom,
+                                    device_t *dev, uint16_t ctx_id)
+{
+    uint16_t prev_ctx_id;
+    device_t *ctx_dev;
+    struct domain_iommu *prev_hd, *next_hd;
+    struct iommu_context *prev_ctx = NULL, *next_ctx = NULL;
+    int ret = 0, rc;
+    bool same_domain;
+
+    /* Make sure we actually are doing something meaningful */
+    BUG_ON(!prev_dom && !next_dom);
+
+    /* Device domain must be coherent with prev_dom. */
+    ASSERT(!prev_dom || dev->domain == prev_dom);
+
+    /// TODO: Do such cases exists ?
+    // /* Platform ops must match */
+    // if (dom_iommu(prev_dom)->platform_ops != dom_iommu(next_dom)->platform_ops)
+    //     return -EINVAL;
+
+    if ( !prev_dom )
+        return iommu_attach_context(next_dom, dev, ctx_id);
+
+    if ( !next_dom )
+        return iommu_detach_context(prev_dom, dev);
+
+    prev_hd = dom_iommu(prev_dom);
+    next_hd = dom_iommu(next_dom);
+
+    pcidevs_lock();
+
+    same_domain = prev_dom == next_dom;
+
+    prev_ctx_id = dev->context;
+
+    if ( same_domain && (ctx_id == prev_ctx_id) )
+    {
+        printk(XENLOG_DEBUG
+               "IOMMU: Reattaching %pp to same IOMMU context c%hu\n",
+               &dev->sbdf, ctx_id);
+        ret = 0;
+        goto unlock;
+    }
+
+    if ( !(prev_ctx = iommu_get_context(prev_dom, prev_ctx_id)) )
+    {
+        ret = -ENOENT;
+        goto unlock;
+    }
+
+    if ( !(next_ctx = iommu_get_context(next_dom, ctx_id)) )
+    {
+        ret = -ENOENT;
+        goto unlock;
+    }
+
+    if ( next_ctx->dying )
+    {
+        ret = -EINVAL;
+        goto unlock;
+    }
+
+    /* ignore reattach operations on PCIe bridges */
+    if ( dev->type != DEV_TYPE_PCIe_BRIDGE )
+        ret = iommu_call(prev_hd->platform_ops, reattach, next_dom, dev,
+                         prev_ctx, next_ctx);
+
+    if ( ret )
+        goto unlock;
+
+    /*
+     * We need to do special handling for phantom devices as they
+     * also use some other PCI functions behind the scenes.
+     */
+    rc = iommu_reattach_phantom(next_dom, dev, next_ctx);
+
+    if ( rc )
+    {
+        /**
+         * Device is being partially reattached (we have primary function and
+         * maybe some phantom functions attached to next_ctx, some others to prev_ctx),
+         * some functions of the device will be attached to next_ctx.
+         */
+        printk(XENLOG_WARNING "IOMMU: "
+               "Device %pp improperly reattached due to phantom function"
+               " reattach failure between %dd%dc and %dd%dc (%d)\n", dev,
+               prev_dom->domain_id, prev_ctx->id, next_dom->domain_id,
+               next_dom->domain_id, rc);
+
+        /* Try reattaching to previous context, reverting into a consistent state. */
+        if ( iommu_call(prev_hd->platform_ops, reattach, prev_dom, dev, next_ctx,
+                        prev_ctx) || iommu_reattach_phantom(prev_dom, dev, prev_ctx) )
+        {
+            printk(XENLOG_ERR "Unable to reattach %pp back to %dd%dc\n",
+                   &dev->sbdf, prev_dom->domain_id, prev_ctx->id);
+
+            if ( !is_hardware_domain(prev_dom) )
+                domain_crash(prev_dom);
+
+            if ( prev_dom != next_dom && !is_hardware_domain(next_dom) )
+                domain_crash(next_dom);
+
+            rc = -EIO;
+        }
+
+        ret = rc;
+        goto unlock;
+    }
+
+    /* Remove device from previous context, and add it to new one. */
+    list_for_each_entry(ctx_dev, &prev_ctx->devices, context_list)
+    {
+        if ( ctx_dev == dev )
+        {
+            list_del(&ctx_dev->context_list);
+            list_add(&ctx_dev->context_list, &next_ctx->devices);
+            break;
+        }
+    }
+
+    if (!ret)
+        dev->context = ctx_id; /* update device context*/
+
+unlock:
+    pcidevs_unlock();
+
+    if ( prev_ctx )
+        iommu_put_context(prev_ctx);
+
+    if ( next_ctx )
+        iommu_put_context(next_ctx);
+
+    return ret;
+}
+
+int cf_check iommu_context_teardown(struct domain *d, struct iommu_context *ctx, u32 flags)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+
+    if ( !hd->platform_ops->context_teardown )
+        return -ENOSYS;
+
+    ctx->dying = true;
+
+    /* first reattach devices back to default context if needed */
+    if ( flags & IOMMU_TEARDOWN_REATTACH_DEFAULT )
+    {
+        struct pci_dev *device;
+        list_for_each_entry(device, &ctx->devices, context_list)
+            iommu_reattach_context(d, d, device, 0);
+    }
+    else if (!list_empty(&ctx->devices))
+        return -EBUSY; /* there is a device in context */
+
+    return iommu_call(hd->platform_ops, context_teardown, d, ctx, flags);
+}
+
+int cf_check iommu_context_free(struct domain *d, uint16_t ctx_id, u32 flags)
+{
+    int ret;
+    struct domain_iommu *hd = dom_iommu(d);
+    struct iommu_context *ctx;
+
+    if ( ctx_id == 0 )
+        return -EINVAL;
+
+    if ( !(ctx = iommu_get_context(d, ctx_id)) )
+        return -ENOENT;
+
+    ret = iommu_context_teardown(d, ctx, flags);
+
+    if ( !ret )
+        clear_bit(ctx_id - 1, hd->other_contexts.bitmap);
+
+    iommu_put_context(ctx);
+    return ret;
+}
+
 int iommu_quarantine_dev_init(device_t *dev)
 {
-    const struct domain_iommu *hd = dom_iommu(dom_io);
+    int ret;
+    uint16_t ctx_id;
 
-    if ( !iommu_quarantine || !hd->platform_ops->quarantine_init )
+    if ( !iommu_quarantine )
         return 0;
 
-    return iommu_call(hd->platform_ops, quarantine_init,
-                      dev, iommu_quarantine == IOMMU_quarantine_scratch_page);
+    ret = iommu_context_alloc(dom_io, &ctx_id, IOMMU_CONTEXT_INIT_quarantine);
+
+    if ( ret )
+        return ret;
+
+    /** TODO: Setup scratch page, mappings... */
+
+    ret = iommu_reattach_context(dev->domain, dom_io, dev, ctx_id);
+
+    if ( ret )
+    {
+        ASSERT(!iommu_context_free(dom_io, ctx_id, 0));
+        return ret;
+    }
+
+    return ret;
 }
 
-static int __init iommu_quarantine_init(void)
+int __init iommu_quarantine_init(void)
 {
     dom_io->options |= XEN_DOMCTL_CDF_iommu;
 
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index ee73d55740..2d9db79787 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -330,6 +330,7 @@ static struct pci_dev *alloc_pdev(struct pci_seg *pseg, u8 bus, u8 devfn)
     *((u8*) &pdev->bus) = bus;
     *((u8*) &pdev->devfn) = devfn;
     pdev->domain = NULL;
+    pdev->context = IOMMU_INVALID_CONTEXT_ID;
 
     INIT_LIST_HEAD(&pdev->vf_list);
 
@@ -604,7 +605,6 @@ static void pci_enable_acs(struct pci_dev *pdev)
 }
 
 static int iommu_add_device(struct pci_dev *pdev);
-static int iommu_enable_device(struct pci_dev *pdev);
 static int iommu_remove_device(struct pci_dev *pdev);
 
 unsigned int pci_size_mem_bar(pci_sbdf_t sbdf, unsigned int pos,
@@ -654,6 +654,101 @@ unsigned int pci_size_mem_bar(pci_sbdf_t sbdf, unsigned int pos,
     return is64bits ? 2 : 1;
 }
 
+static int device_assigned(struct pci_dev *pdev)
+{
+    int rc = 0;
+
+    /*
+     * If the device exists and it is not owned by either the hardware
+     * domain or dom_io then it must be assigned to a guest, or be
+     * hidden (owned by dom_xen).
+     */
+    if ( pdev->domain != hardware_domain && pdev->domain != dom_io )
+        rc = -EBUSY;
+
+    return rc;
+}
+
+/* Caller should hold the pcidevs_lock */
+static int pci_reassign_device(struct domain *prev_dom, struct domain *next_dom,
+                               struct pci_dev *pdev, u32 flag)
+{
+    int rc = 0;
+    ASSERT(prev_dom || next_dom);
+
+    if ( !is_iommu_enabled(next_dom) )
+        return -EINVAL;
+
+    if ( !arch_iommu_use_permitted(next_dom) )
+        return -EXDEV;
+
+    /* Do not allow broken devices to be assigned to guests. */
+    if ( pdev->broken && next_dom != hardware_domain && next_dom != dom_io )
+        return -EBADF;
+
+    if ( prev_dom )
+    {
+        write_lock(&prev_dom->pci_lock);
+        vpci_deassign_device(pdev);
+        write_unlock(&prev_dom->pci_lock);
+    }
+
+    rc = pdev_msix_assign(next_dom, pdev);
+    if ( rc )
+        goto done;
+
+    pdev->fault.count = 0;
+
+    if ( prev_dom && next_dom )
+    {
+        printk(XENLOG_INFO "PCI: Reassigning PCI device from %dd to %dd\n",
+               prev_dom->domain_id, next_dom->domain_id);
+    }
+    else if ( prev_dom )
+    {
+        printk(XENLOG_INFO "PCI: Assigning PCI device to %dd\n", prev_dom->domain_id);
+    }
+    else if ( next_dom )
+    {
+        printk(XENLOG_INFO "PCI: Remove PCI device of %dd\n", next_dom->domain_id);
+    }
+    else
+    {
+        ASSERT_UNREACHABLE();
+    }
+
+    rc = iommu_reattach_context(prev_dom, next_dom, pci_to_dev(pdev), 0);
+
+    if ( rc )
+        goto done;
+
+    if ( prev_dom )
+    {
+        write_lock(&prev_dom->pci_lock);
+        list_del(&pdev->domain_list);
+        write_unlock(&prev_dom->pci_lock);
+    }
+
+    pdev->domain = next_dom;
+
+    if ( next_dom )
+    {
+        write_lock(&next_dom->pci_lock);
+        list_add(&pdev->domain_list, &next_dom->pdev_list);
+
+        rc = vpci_assign_device(pdev);
+        write_unlock(&next_dom->pci_lock);
+    }
+
+ done:
+
+    /* The device is assigned to dom_io so mark it as quarantined */
+    if ( !rc && next_dom == dom_io )
+        pdev->quarantine = true;
+
+    return rc;
+}
+
 int pci_add_device(u16 seg, u8 bus, u8 devfn,
                    const struct pci_dev_info *info, nodeid_t node)
 {
@@ -798,7 +893,7 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
         }
     }
     else
-        iommu_enable_device(pdev);
+        ret = iommu_add_device(pdev);
 
     pci_enable_acs(pdev);
 
@@ -878,74 +973,6 @@ int pci_remove_device(u16 seg, u8 bus, u8 devfn)
     return ret;
 }
 
-/* Caller should hold the pcidevs_lock */
-static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
-                           uint8_t devfn)
-{
-    const struct domain_iommu *hd = dom_iommu(d);
-    struct pci_dev *pdev;
-    struct domain *target;
-    int ret = 0;
-
-    if ( !is_iommu_enabled(d) )
-        return -EINVAL;
-
-    ASSERT(pcidevs_locked());
-    pdev = pci_get_pdev(d, PCI_SBDF(seg, bus, devfn));
-    if ( !pdev )
-        return -ENODEV;
-
-    /* De-assignment from dom_io should de-quarantine the device */
-    if ( (pdev->quarantine || iommu_quarantine) && pdev->domain != dom_io )
-    {
-        ret = iommu_quarantine_dev_init(pci_to_dev(pdev));
-        if ( ret )
-           return ret;
-
-        target = dom_io;
-    }
-    else
-        target = hardware_domain;
-
-    while ( pdev->phantom_stride )
-    {
-        devfn += pdev->phantom_stride;
-        if ( PCI_SLOT(devfn) != PCI_SLOT(pdev->devfn) )
-            break;
-        ret = iommu_call(hd->platform_ops, reassign_device, d, target, devfn,
-                         pci_to_dev(pdev));
-        if ( ret )
-            goto out;
-    }
-
-    write_lock(&d->pci_lock);
-    vpci_deassign_device(pdev);
-    write_unlock(&d->pci_lock);
-
-    devfn = pdev->devfn;
-    ret = iommu_call(hd->platform_ops, reassign_device, d, target, devfn,
-                     pci_to_dev(pdev));
-    if ( ret )
-        goto out;
-
-    if ( pdev->domain == hardware_domain  )
-        pdev->quarantine = false;
-
-    pdev->fault.count = 0;
-
-    write_lock(&target->pci_lock);
-    /* Re-assign back to hardware_domain */
-    ret = vpci_assign_device(pdev);
-    write_unlock(&target->pci_lock);
-
- out:
-    if ( ret )
-        printk(XENLOG_G_ERR "%pd: deassign (%pp) failed (%d)\n",
-               d, &PCI_SBDF(seg, bus, devfn), ret);
-
-    return ret;
-}
-
 int pci_release_devices(struct domain *d)
 {
     int combined_ret;
@@ -967,13 +994,10 @@ int pci_release_devices(struct domain *d)
         struct pci_dev *pdev = list_first_entry(&d->pdev_list,
                                                 struct pci_dev,
                                                 domain_list);
-        uint16_t seg = pdev->seg;
-        uint8_t bus = pdev->bus;
-        uint8_t devfn = pdev->devfn;
         int ret;
 
         write_unlock(&d->pci_lock);
-        ret = deassign_device(d, seg, bus, devfn);
+        ret = pci_reassign_device(d, dom_io, pdev, 0);
         write_lock(&d->pci_lock);
         if ( ret )
         {
@@ -1181,25 +1205,18 @@ struct setup_hwdom {
 static void __hwdom_init setup_one_hwdom_device(const struct setup_hwdom *ctxt,
                                                 struct pci_dev *pdev)
 {
-    u8 devfn = pdev->devfn;
     int err;
 
-    do {
-        err = ctxt->handler(devfn, pdev);
-        if ( err )
-        {
-            printk(XENLOG_ERR "setup %pp for d%d failed (%d)\n",
-                   &pdev->sbdf, ctxt->d->domain_id, err);
-            if ( devfn == pdev->devfn )
-                return;
-        }
-        devfn += pdev->phantom_stride;
-    } while ( devfn != pdev->devfn &&
-              PCI_SLOT(devfn) == PCI_SLOT(pdev->devfn) );
+    err = ctxt->handler(pdev->devfn, pdev);
+
+    if ( err )
+        goto done;
 
     write_lock(&ctxt->d->pci_lock);
     err = vpci_assign_device(pdev);
     write_unlock(&ctxt->d->pci_lock);
+
+done:
     if ( err )
         printk(XENLOG_ERR "setup of vPCI for d%d failed: %d\n",
                ctxt->d->domain_id, err);
@@ -1398,8 +1415,6 @@ __initcall(setup_dump_pcidevs);
 static int iommu_add_device(struct pci_dev *pdev)
 {
     const struct domain_iommu *hd;
-    int rc;
-    unsigned int devfn = pdev->devfn;
 
     if ( !pdev->domain )
         return -EINVAL;
@@ -1410,180 +1425,18 @@ static int iommu_add_device(struct pci_dev *pdev)
     if ( !is_iommu_enabled(pdev->domain) )
         return 0;
 
-    rc = iommu_call(hd->platform_ops, add_device, devfn, pci_to_dev(pdev));
-    if ( rc || !pdev->phantom_stride )
-        return rc;
-
-    for ( ; ; )
-    {
-        devfn += pdev->phantom_stride;
-        if ( PCI_SLOT(devfn) != PCI_SLOT(pdev->devfn) )
-            return 0;
-        rc = iommu_call(hd->platform_ops, add_device, devfn, pci_to_dev(pdev));
-        if ( rc )
-            printk(XENLOG_WARNING "IOMMU: add %pp failed (%d)\n",
-                   &PCI_SBDF(pdev->seg, pdev->bus, devfn), rc);
-    }
-}
-
-static int iommu_enable_device(struct pci_dev *pdev)
-{
-    const struct domain_iommu *hd;
-
-    if ( !pdev->domain )
-        return -EINVAL;
-
-    ASSERT(pcidevs_locked());
-
-    hd = dom_iommu(pdev->domain);
-    if ( !is_iommu_enabled(pdev->domain) ||
-         !hd->platform_ops->enable_device )
-        return 0;
-
-    return iommu_call(hd->platform_ops, enable_device, pci_to_dev(pdev));
+    return iommu_attach_context(pdev->domain, pci_to_dev(pdev), 0);
 }
 
 static int iommu_remove_device(struct pci_dev *pdev)
 {
-    const struct domain_iommu *hd;
-    u8 devfn;
-
     if ( !pdev->domain )
         return -EINVAL;
 
-    hd = dom_iommu(pdev->domain);
     if ( !is_iommu_enabled(pdev->domain) )
         return 0;
 
-    for ( devfn = pdev->devfn ; pdev->phantom_stride; )
-    {
-        int rc;
-
-        devfn += pdev->phantom_stride;
-        if ( PCI_SLOT(devfn) != PCI_SLOT(pdev->devfn) )
-            break;
-        rc = iommu_call(hd->platform_ops, remove_device, devfn,
-                        pci_to_dev(pdev));
-        if ( !rc )
-            continue;
-
-        printk(XENLOG_ERR "IOMMU: remove %pp failed (%d)\n",
-               &PCI_SBDF(pdev->seg, pdev->bus, devfn), rc);
-        return rc;
-    }
-
-    devfn = pdev->devfn;
-
-    return iommu_call(hd->platform_ops, remove_device, devfn, pci_to_dev(pdev));
-}
-
-static int device_assigned(u16 seg, u8 bus, u8 devfn)
-{
-    struct pci_dev *pdev;
-    int rc = 0;
-
-    ASSERT(pcidevs_locked());
-    pdev = pci_get_pdev(NULL, PCI_SBDF(seg, bus, devfn));
-
-    if ( !pdev )
-        rc = -ENODEV;
-    /*
-     * If the device exists and it is not owned by either the hardware
-     * domain or dom_io then it must be assigned to a guest, or be
-     * hidden (owned by dom_xen).
-     */
-    else if ( pdev->domain != hardware_domain &&
-              pdev->domain != dom_io )
-        rc = -EBUSY;
-
-    return rc;
-}
-
-/* Caller should hold the pcidevs_lock */
-static int assign_device(struct domain *d, u16 seg, u8 bus, u8 devfn, u32 flag)
-{
-    const struct domain_iommu *hd = dom_iommu(d);
-    struct pci_dev *pdev;
-    int rc = 0;
-
-    if ( !is_iommu_enabled(d) )
-        return 0;
-
-    if ( !arch_iommu_use_permitted(d) )
-        return -EXDEV;
-
-    /* device_assigned() should already have cleared the device for assignment */
-    ASSERT(pcidevs_locked());
-    pdev = pci_get_pdev(NULL, PCI_SBDF(seg, bus, devfn));
-    ASSERT(pdev && (pdev->domain == hardware_domain ||
-                    pdev->domain == dom_io));
-
-    /* Do not allow broken devices to be assigned to guests. */
-    rc = -EBADF;
-    if ( pdev->broken && d != hardware_domain && d != dom_io )
-        goto done;
-
-    write_lock(&pdev->domain->pci_lock);
-    vpci_deassign_device(pdev);
-    write_unlock(&pdev->domain->pci_lock);
-
-    rc = pdev_msix_assign(d, pdev);
-    if ( rc )
-        goto done;
-
-    if ( pdev->domain != dom_io )
-    {
-        rc = iommu_quarantine_dev_init(pci_to_dev(pdev));
-        if ( rc )
-            goto done;
-    }
-
-    pdev->fault.count = 0;
-
-    rc = iommu_call(hd->platform_ops, assign_device, d, devfn, pci_to_dev(pdev),
-                    flag);
-
-    while ( pdev->phantom_stride && !rc )
-    {
-        devfn += pdev->phantom_stride;
-        if ( PCI_SLOT(devfn) != PCI_SLOT(pdev->devfn) )
-            break;
-        rc = iommu_call(hd->platform_ops, assign_device, d, devfn,
-                        pci_to_dev(pdev), flag);
-    }
-
-    if ( rc )
-        goto done;
-
-    write_lock(&d->pci_lock);
-    rc = vpci_assign_device(pdev);
-    write_unlock(&d->pci_lock);
-
- done:
-    if ( rc )
-    {
-        printk(XENLOG_G_WARNING "%pd: assign %s(%pp) failed (%d)\n",
-               d, devfn != pdev->devfn ? "phantom function " : "",
-               &PCI_SBDF(seg, bus, devfn), rc);
-
-        if ( devfn != pdev->devfn && deassign_device(d, seg, bus, pdev->devfn) )
-        {
-            /*
-             * Device with phantom functions that failed to both assign and
-             * rollback.  Mark the device as broken and crash the target domain,
-             * as the state of the functions at this point is unknown and Xen
-             * has no way to assert consistent context assignment among them.
-             */
-            pdev->broken = true;
-            if ( !is_hardware_domain(d) && d != dom_io )
-                domain_crash(d);
-        }
-    }
-    /* The device is assigned to dom_io so mark it as quarantined */
-    else if ( d == dom_io )
-        pdev->quarantine = true;
-
-    return rc;
+    return iommu_detach_context(pdev->domain, pdev);
 }
 
 static int iommu_get_device_group(
@@ -1673,6 +1526,7 @@ int iommu_do_pci_domctl(
     u8 bus, devfn;
     int ret = 0;
     uint32_t machine_sbdf;
+    struct pci_dev *pdev;
 
     switch ( domctl->cmd )
     {
@@ -1742,7 +1596,15 @@ int iommu_do_pci_domctl(
         devfn = PCI_DEVFN(machine_sbdf);
 
         pcidevs_lock();
-        ret = device_assigned(seg, bus, devfn);
+        pdev = pci_get_pdev(NULL, PCI_SBDF(seg, bus, devfn));
+
+        if ( !pdev )
+        {
+            printk(XENLOG_G_INFO "%pp doesn't exist", &PCI_SBDF(seg, bus, devfn));
+            break;
+        }
+
+        ret = device_assigned(pdev);
         if ( domctl->cmd == XEN_DOMCTL_test_assign_device )
         {
             if ( ret )
@@ -1753,7 +1615,7 @@ int iommu_do_pci_domctl(
             }
         }
         else if ( !ret )
-            ret = assign_device(d, seg, bus, devfn, flags);
+            ret = pci_reassign_device(pdev->domain, d, pdev, flags);
         pcidevs_unlock();
         if ( ret == -ERESTART )
             ret = hypercall_create_continuation(__HYPERVISOR_domctl,
@@ -1787,7 +1649,20 @@ int iommu_do_pci_domctl(
         devfn = PCI_DEVFN(machine_sbdf);
 
         pcidevs_lock();
-        ret = deassign_device(d, seg, bus, devfn);
+        pdev = pci_get_pdev(d, PCI_SBDF(seg, bus, devfn));
+
+        if ( pdev )
+        {
+            struct domain *target = hardware_domain;
+
+            if ( (pdev->quarantine || iommu_quarantine) && pdev->domain != dom_io )
+                target = dom_io;
+
+            ret = pci_reassign_device(d, target, pdev, 0);
+        }
+        else
+            ret = -ENODEV;
+
         pcidevs_unlock();
         break;
 
diff --git a/xen/drivers/passthrough/vtd/extern.h b/xen/drivers/passthrough/vtd/extern.h
index 82db8f9435..a980be3646 100644
--- a/xen/drivers/passthrough/vtd/extern.h
+++ b/xen/drivers/passthrough/vtd/extern.h
@@ -78,12 +78,12 @@ uint64_t alloc_pgtable_maddr(unsigned long npages, nodeid_t node);
 void free_pgtable_maddr(u64 maddr);
 void *map_vtd_domain_page(u64 maddr);
 void unmap_vtd_domain_page(const void *va);
-int domain_context_mapping_one(struct domain *domain, struct iommu_context *ctx,
-                               struct vtd_iommu *iommu, uint8_t bus, uint8_t devfn,
-                               const struct pci_dev *pdev, domid_t domid,
-                               paddr_t pgd_maddr, unsigned int mode);
-int domain_context_unmap_one(struct domain *domain, struct vtd_iommu *iommu,
-                             uint8_t bus, uint8_t devfn);
+int apply_context_single(struct domain *domain, struct iommu_context *ctx,
+                         struct vtd_iommu *iommu, uint8_t bus, uint8_t devfn,
+                         struct iommu_context *prev_ctx);
+int unapply_context_single(struct domain *domain, struct vtd_iommu *iommu,
+                           struct iommu_context *prev_ctx, uint8_t bus,
+                           uint8_t devfn);
 int cf_check intel_iommu_get_reserved_device_memory(
     iommu_grdm_t *func, void *ctxt);
 
@@ -104,8 +104,9 @@ void platform_quirks_init(void);
 void vtd_ops_preamble_quirk(struct vtd_iommu *iommu);
 void vtd_ops_postamble_quirk(struct vtd_iommu *iommu);
 int __must_check me_wifi_quirk(struct domain *domain, uint8_t bus,
-                               uint8_t devfn, domid_t domid, paddr_t pgd_maddr,
-                               unsigned int mode);
+                               uint8_t devfn, domid_t domid,
+                               unsigned int mode, struct iommu_context *ctx,
+                               struct iommu_context *prev_ctx);
 void pci_vtd_quirk(const struct pci_dev *);
 void quirk_iommu_caps(struct vtd_iommu *iommu);
 
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index 3668185ebc..3319903297 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -27,6 +27,7 @@
 #include <xen/iommu.h>
 #include <xen/numa.h>
 #include <xen/softirq.h>
+#include <xen/event.h>
 #include <xen/time.h>
 #include <xen/pci.h>
 #include <xen/pci_regs.h>
@@ -61,7 +62,6 @@ static unsigned int __ro_after_init min_pt_levels = UINT_MAX;
 static struct tasklet vtd_fault_tasklet;
 
 static int cf_check setup_hwdom_device(u8 devfn, struct pci_dev *);
-static void setup_hwdom_rmrr(struct domain *d);
 
 #define DID_FIELD_WIDTH 16
 #define DID_HIGH_OFFSET 8
@@ -165,7 +165,7 @@ static uint64_t addr_to_dma_page_maddr(struct domain *domain,
     u64 pte_maddr = 0;
 
     addr &= (((u64)1) << addr_width) - 1;
-    ASSERT(spin_is_locked(&ctx->arch.mapping_lock));
+    ASSERT(rspin_is_locked(&ctx->lock));
     ASSERT(target || !alloc);
 
     if ( !ctx->arch.vtd.pgd_maddr )
@@ -270,36 +270,22 @@ static uint64_t addr_to_dma_page_maddr(struct domain *domain,
     return pte_maddr;
 }
 
-static paddr_t domain_pgd_maddr(struct domain *d, struct iommu_context *ctx,
-                                paddr_t pgd_maddr, unsigned int nr_pt_levels)
+static paddr_t get_context_pgd(struct domain *d, struct iommu_context *ctx,
+                               unsigned int nr_pt_levels)
 {
     unsigned int agaw;
+    paddr_t pgd_maddr = ctx->arch.vtd.pgd_maddr;
 
-    ASSERT(spin_is_locked(&ctx->arch.mapping_lock));
-
-    if ( pgd_maddr )
-        /* nothing */;
-    else if ( iommu_use_hap_pt(d) )
+    if ( !ctx->arch.vtd.pgd_maddr )
     {
-        pagetable_t pgt = p2m_get_pagetable(p2m_get_hostp2m(d));
+        /*
+         * Ensure we have pagetables allocated down to the smallest
+         * level the loop below may need to run to.
+         */
+        addr_to_dma_page_maddr(d, ctx, 0, min_pt_levels, NULL, true);
 
-        pgd_maddr = pagetable_get_paddr(pgt);
-    }
-    else
-    {
         if ( !ctx->arch.vtd.pgd_maddr )
-        {
-            /*
-             * Ensure we have pagetables allocated down to the smallest
-             * level the loop below may need to run to.
-             */
-            addr_to_dma_page_maddr(d, ctx, 0, min_pt_levels, NULL, true);
-
-            if ( !ctx->arch.vtd.pgd_maddr )
-                return 0;
-        }
-
-        pgd_maddr = ctx->arch.vtd.pgd_maddr;
+            return 0;
     }
 
     /* Skip top level(s) of page tables for less-than-maximum level DRHDs. */
@@ -569,17 +555,20 @@ static int __must_check iommu_flush_all(void)
     return rc;
 }
 
-static int __must_check cf_check iommu_flush_iotlb(struct domain *d, dfn_t dfn,
+static int __must_check cf_check iommu_flush_iotlb(struct domain *d,
+                                                   struct iommu_context *ctx,
+                                                   dfn_t dfn,
                                                    unsigned long page_count,
                                                    unsigned int flush_flags)
 {
-    struct iommu_context *ctx = iommu_default_context(d);
     struct acpi_drhd_unit *drhd;
     struct vtd_iommu *iommu;
     bool flush_dev_iotlb;
     int iommu_domid;
     int ret = 0;
 
+    ASSERT(ctx);
+
     if ( flush_flags & IOMMU_FLUSHF_all )
     {
         dfn = INVALID_DFN;
@@ -1240,7 +1229,8 @@ void __init iommu_free(struct acpi_drhd_unit *drhd)
         agaw = 64;                              \
     agaw; })
 
-static int cf_check intel_iommu_context_init(struct domain *d, struct iommu_context *ctx)
+static int cf_check intel_iommu_context_init(struct domain *d, struct iommu_context *ctx,
+                                             u32 flags)
 {
     struct acpi_drhd_unit *drhd;
 
@@ -1255,6 +1245,27 @@ static int cf_check intel_iommu_context_init(struct domain *d, struct iommu_cont
         return -ENOMEM;
     }
 
+    ctx->arch.vtd.superpage_progress = 0;
+
+    if ( flags & IOMMU_CONTEXT_INIT_default )
+    {
+        ctx->arch.vtd.pgd_maddr = 0;
+
+        /*
+         * Context is considered "opaque" (non-managed) in these cases :
+         *  - HAP is enabled, in this case, the pagetable is not managed by the
+         *    IOMMU code, thus opaque
+         *  - IOMMU is in passthrough which means that there is no actual pagetable
+         */
+        if ( iommu_use_hap_pt(d) )
+        {
+            pagetable_t pgt = p2m_get_pagetable(p2m_get_hostp2m(d));
+            ctx->arch.vtd.pgd_maddr = pagetable_get_paddr(pgt);
+
+            ctx->opaque = true;
+        }
+    }
+
     // TODO: Allocate IOMMU domid only when attaching devices ?
     /* Populate context DID map using pseudo DIDs */
     for_each_drhd_unit(drhd)
@@ -1263,7 +1274,11 @@ static int cf_check intel_iommu_context_init(struct domain *d, struct iommu_cont
             iommu_alloc_domid(drhd->iommu->domid_bitmap);
     }
 
-    return arch_iommu_context_init(d, ctx, 0);
+    if ( !ctx->opaque )
+        /* Create initial context page */
+        addr_to_dma_page_maddr(d, ctx, 0, min_pt_levels, NULL, true);
+
+    return arch_iommu_context_init(d, ctx, flags);
 }
 
 static int cf_check intel_iommu_domain_init(struct domain *d)
@@ -1272,7 +1287,7 @@ static int cf_check intel_iommu_domain_init(struct domain *d)
 
     hd->arch.vtd.agaw = width_to_agaw(DEFAULT_DOMAIN_ADDRESS_WIDTH);
 
-    return intel_iommu_context_init(d, iommu_default_context(d));
+    return 0;
 }
 
 static void __hwdom_init cf_check intel_iommu_hwdom_init(struct domain *d)
@@ -1280,7 +1295,7 @@ static void __hwdom_init cf_check intel_iommu_hwdom_init(struct domain *d)
     struct acpi_drhd_unit *drhd;
 
     setup_hwdom_pci_devices(d, setup_hwdom_device);
-    setup_hwdom_rmrr(d);
+
     /* Make sure workarounds are applied before enabling the IOMMU(s). */
     arch_iommu_hwdom_init(d);
 
@@ -1297,21 +1312,17 @@ static void __hwdom_init cf_check intel_iommu_hwdom_init(struct domain *d)
     }
 }
 
-/*
- * This function returns
- * - a negative errno value upon error,
- * - zero upon success when previously the entry was non-present, or this isn't
- *   the "main" request for a device (pdev == NULL), or for no-op quarantining
- *   assignments,
- * - positive (one) upon success when previously the entry was present and this
- *   is the "main" request for a device (pdev != NULL).
+/**
+ * Apply a context on a device.
+ * @param domain Domain of the context
+ * @param ctx IOMMU context to apply
+ * @param iommu IOMMU hardware to use (must match device iommu)
+ * @param bus PCI device bus
+ * @param devfn PCI device function
  */
-int domain_context_mapping_one(
-    struct domain *domain,
-    struct iommu_context *ctx,
-    struct vtd_iommu *iommu,
-    uint8_t bus, uint8_t devfn, const struct pci_dev *pdev,
-    domid_t domid, paddr_t pgd_maddr, unsigned int mode)
+int apply_context_single(struct domain *domain, struct iommu_context *ctx,
+                         struct vtd_iommu *iommu, uint8_t bus, uint8_t devfn,
+                         struct iommu_context *prev_ctx)
 {
     struct context_entry *context, *context_entries, lctxt;
     __uint128_t res, old;
@@ -1320,8 +1331,6 @@ int domain_context_mapping_one(
     int rc, ret;
     bool flush_dev_iotlb, overwrite_entry = false;
 
-    struct iommu_context *prev_ctx = pdev->domain ? iommu_default_context(pdev->domain) : NULL;
-
     ASSERT(pcidevs_locked());
     spin_lock(&iommu->lock);
     maddr = bus_to_context_maddr(iommu, bus);
@@ -1342,7 +1351,7 @@ int domain_context_mapping_one(
         overwrite_entry = true;
     }
 
-    if ( iommu_hwdom_passthrough && is_hardware_domain(domain) )
+    if ( iommu_hwdom_passthrough && is_hardware_domain(domain) && !ctx->id )
     {
         context_set_translation_type(lctxt, CONTEXT_TT_PASS_THRU);
     }
@@ -1350,9 +1359,7 @@ int domain_context_mapping_one(
     {
         paddr_t root;
 
-        spin_lock(&ctx->arch.mapping_lock);
-
-        root = domain_pgd_maddr(domain, ctx, pgd_maddr, iommu->nr_pt_levels);
+        root = get_context_pgd(domain, ctx, iommu->nr_pt_levels);
         if ( !root )
         {
             unmap_vtd_domain_page(context_entries);
@@ -1364,8 +1371,6 @@ int domain_context_mapping_one(
             context_set_translation_type(lctxt, CONTEXT_TT_DEV_IOTLB);
         else
             context_set_translation_type(lctxt, CONTEXT_TT_MULTI_LEVEL);
-
-        spin_unlock(&ctx->arch.mapping_lock);
     }
 
     rc = context_set_domain_id(&lctxt, did, iommu);
@@ -1394,7 +1399,6 @@ int domain_context_mapping_one(
     }
 
     iommu_sync_cache(context, sizeof(struct context_entry));
-    spin_unlock(&iommu->lock);
 
     rc = iommu_flush_context_device(iommu, prev_did, PCI_BDF(bus, devfn),
                                     DMA_CCMD_MASK_NOBIT, !overwrite_entry);
@@ -1428,7 +1432,7 @@ int domain_context_mapping_one(
     spin_unlock(&iommu->lock);
 
     if ( !seg && !rc )
-        rc = me_wifi_quirk(domain, bus, devfn, domid, pgd_maddr, mode);
+        WARN_ON(me_wifi_quirk(domain, bus, devfn, did, 0, ctx, prev_ctx));
 
     return rc;
 
@@ -1438,152 +1442,23 @@ int domain_context_mapping_one(
         return rc;
 }
 
-static const struct acpi_drhd_unit *domain_context_unmap(
-    struct domain *d, uint8_t devfn, struct pci_dev *pdev);
-
-static int domain_context_mapping(struct domain *domain, struct iommu_context *ctx,
-                                  u8 devfn, struct pci_dev *pdev)
+int apply_context(struct domain *d, struct iommu_context *ctx,
+                  struct pci_dev *pdev, u8 devfn,
+                  struct iommu_context *prev_ctx)
 {
-    const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
-    const struct acpi_rmrr_unit *rmrr;
-    paddr_t pgd_maddr = ctx->arch.vtd.pgd_maddr;
-    domid_t did = ctx->arch.vtd.didmap[drhd->iommu->index];
+    struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
+    struct vtd_iommu *iommu = drhd->iommu;
     int ret = 0;
-    unsigned int i, mode = 0;
-    uint16_t seg = pdev->seg, bdf;
-    uint8_t bus = pdev->bus, secbus;
 
-    /*
-     * Generally we assume only devices from one node to get assigned to a
-     * given guest.  But even if not, by replacing the prior value here we
-     * guarantee that at least some basic allocations for the device being
-     * added will get done against its node.  Any further allocations for
-     * this or other devices may be penalized then, but some would also be
-     * if we left other than NUMA_NO_NODE untouched here.
-     */
-    if ( drhd && drhd->iommu->node != NUMA_NO_NODE )
-        dom_iommu(domain)->node = drhd->iommu->node;
+    if ( !drhd )
+        return -EINVAL;
 
     ASSERT(pcidevs_locked());
 
-    for_each_rmrr_device( rmrr, bdf, i )
-    {
-        if ( rmrr->segment != pdev->seg || bdf != pdev->sbdf.bdf )
-            continue;
-
-        mode |= MAP_WITH_RMRR;
-        break;
-    }
-
-    if ( domain != pdev->domain && pdev->domain != dom_io &&
-         pdev->domain->is_dying )
-        mode |= MAP_OWNER_DYING;
-
-    switch ( pdev->type )
-    {
-        bool prev_present;
-
-    case DEV_TYPE_PCI_HOST_BRIDGE:
-        if ( iommu_debug )
-            printk(VTDPREFIX "%pd:Hostbridge: skip %pp map\n",
-                   domain, &PCI_SBDF(seg, bus, devfn));
-        if ( !is_hardware_domain(domain) )
-            return -EPERM;
-        break;
-
-    case DEV_TYPE_PCIe_BRIDGE:
-    case DEV_TYPE_PCIe2PCI_BRIDGE:
-    case DEV_TYPE_LEGACY_PCI_BRIDGE:
-        break;
-
-    case DEV_TYPE_PCIe_ENDPOINT:
-        if ( !drhd )
-            return -ENODEV;
+    ret = apply_context_single(d, ctx, iommu, pdev->bus, pdev->devfn, prev_ctx);
 
-        if ( iommu_debug )
-            printk(VTDPREFIX "%pd:PCIe: map %pp\n",
-                   domain, &PCI_SBDF(seg, bus, devfn));
-        ret = domain_context_mapping_one(domain, ctx, drhd->iommu, bus, devfn, pdev,
-                                         did, pgd_maddr, mode);
-        if ( ret > 0 )
-            ret = 0;
-        if ( !ret && devfn == pdev->devfn && ats_device(pdev, drhd) > 0 )
-            enable_ats_device(pdev, &drhd->iommu->ats_devices);
-
-        break;
-
-    case DEV_TYPE_PCI:
-        if ( !drhd )
-            return -ENODEV;
-
-        if ( iommu_debug )
-            printk(VTDPREFIX "%pd:PCI: map %pp\n",
-                   domain, &PCI_SBDF(seg, bus, devfn));
-
-        ret = domain_context_mapping_one(domain, ctx, drhd->iommu, bus, devfn,
-                                         pdev, did, pgd_maddr, mode);
-        if ( ret < 0 )
-            break;
-        prev_present = ret;
-
-        if ( (ret = find_upstream_bridge(seg, &bus, &devfn, &secbus)) < 1 )
-        {
-            if ( !ret )
-                break;
-            ret = -ENXIO;
-        }
-        /*
-         * Strictly speaking if the device is the only one behind this bridge
-         * and the only one with this (secbus,0,0) tuple, it could be allowed
-         * to be re-assigned regardless of RMRR presence.  But let's deal with
-         * that case only if it is actually found in the wild.  Note that
-         * dealing with this just here would still not render the operation
-         * secure.
-         */
-        else if ( prev_present && (mode & MAP_WITH_RMRR) &&
-                  domain != pdev->domain )
-            ret = -EOPNOTSUPP;
-
-        /*
-         * Mapping a bridge should, if anything, pass the struct pci_dev of
-         * that bridge. Since bridges don't normally get assigned to guests,
-         * their owner would be the wrong one. Pass NULL instead.
-         */
-        if ( ret >= 0 )
-            ret = domain_context_mapping_one(domain, ctx, drhd->iommu, bus, devfn,
-                                             NULL, did, pgd_maddr, mode);
-
-        /*
-         * Devices behind PCIe-to-PCI/PCIx bridge may generate different
-         * requester-id. It may originate from devfn=0 on the secondary bus
-         * behind the bridge. Map that id as well if we didn't already.
-         *
-         * Somewhat similar as for bridges, we don't want to pass a struct
-         * pci_dev here - there may not even exist one for this (secbus,0,0)
-         * tuple. If there is one, without properly working device groups it
-         * may again not have the correct owner.
-         */
-        if ( !ret && pdev_type(seg, bus, devfn) == DEV_TYPE_PCIe2PCI_BRIDGE &&
-             (secbus != pdev->bus || pdev->devfn != 0) )
-            ret = domain_context_mapping_one(domain, ctx, drhd->iommu, secbus, 0,
-                                             NULL, did, pgd_maddr, mode);
-
-        if ( ret )
-        {
-            if ( !prev_present )
-                domain_context_unmap(domain, devfn, pdev);
-            else if ( pdev->domain != domain ) /* Avoid infinite recursion. */
-                domain_context_mapping(pdev->domain, ctx, devfn, pdev);
-        }
-
-        break;
-
-    default:
-        dprintk(XENLOG_ERR VTDPREFIX, "%pd:unknown(%u): %pp\n",
-                domain, pdev->type, &PCI_SBDF(seg, bus, devfn));
-        ret = -EINVAL;
-        break;
-    }
+    if ( !ret && ats_device(pdev, drhd) > 0 )
+        enable_ats_device(pdev, &iommu->ats_devices);
 
     if ( !ret && devfn == pdev->devfn )
         pci_vtd_quirk(pdev);
@@ -1591,10 +1466,8 @@ static int domain_context_mapping(struct domain *domain, struct iommu_context *c
     return ret;
 }
 
-int domain_context_unmap_one(
-    struct domain *domain,
-    struct vtd_iommu *iommu,
-    uint8_t bus, uint8_t devfn)
+int unapply_context_single(struct domain *domain, struct vtd_iommu *iommu,
+                           struct iommu_context *prev_ctx, uint8_t bus, uint8_t devfn)
 {
     struct context_entry *context, *context_entries;
     u64 maddr;
@@ -1648,12 +1521,18 @@ int domain_context_unmap_one(
     if ( rc > 0 )
         rc = 0;
 
+    if ( !rc )
+    {
+        BUG_ON(!prev_ctx->arch.vtd.iommu_dev_cnt[iommu->index]);
+        prev_ctx->arch.vtd.iommu_dev_cnt[iommu->index]--;
+    }
+
     spin_unlock(&iommu->lock);
     unmap_vtd_domain_page(context_entries);
 
     if ( !iommu->drhd->segment && !rc )
-        rc = me_wifi_quirk(domain, bus, devfn, DOMID_INVALID, 0,
-                           UNMAP_ME_PHANTOM_FUNC);
+        WARN_ON(me_wifi_quirk(domain, bus, devfn, DOMID_INVALID, UNMAP_ME_PHANTOM_FUNC,
+                           NULL, prev_ctx));
 
     if ( rc && !is_hardware_domain(domain) && domain != dom_io )
     {
@@ -1671,128 +1550,27 @@ int domain_context_unmap_one(
     return rc;
 }
 
-static const struct acpi_drhd_unit *domain_context_unmap(
-    struct domain *domain,
-    uint8_t devfn,
-    struct pci_dev *pdev)
-{
-    const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
-    struct vtd_iommu *iommu = drhd ? drhd->iommu : NULL;
-    int ret;
-    uint16_t seg = pdev->seg;
-    uint8_t bus = pdev->bus, tmp_bus, tmp_devfn, secbus;
-
-    switch ( pdev->type )
-    {
-    case DEV_TYPE_PCI_HOST_BRIDGE:
-        if ( iommu_debug )
-            printk(VTDPREFIX "%pd:Hostbridge: skip %pp unmap\n",
-                   domain, &PCI_SBDF(seg, bus, devfn));
-        return ERR_PTR(is_hardware_domain(domain) ? 0 : -EPERM);
-
-    case DEV_TYPE_PCIe_BRIDGE:
-    case DEV_TYPE_PCIe2PCI_BRIDGE:
-    case DEV_TYPE_LEGACY_PCI_BRIDGE:
-        return ERR_PTR(0);
-
-    case DEV_TYPE_PCIe_ENDPOINT:
-        if ( !iommu )
-            return ERR_PTR(-ENODEV);
-
-        if ( iommu_debug )
-            printk(VTDPREFIX "%pd:PCIe: unmap %pp\n",
-                   domain, &PCI_SBDF(seg, bus, devfn));
-        ret = domain_context_unmap_one(domain, iommu, bus, devfn);
-        if ( !ret && devfn == pdev->devfn && ats_device(pdev, drhd) > 0 )
-            disable_ats_device(pdev);
-
-        break;
-
-    case DEV_TYPE_PCI:
-        if ( !iommu )
-            return ERR_PTR(-ENODEV);
-
-        if ( iommu_debug )
-            printk(VTDPREFIX "%pd:PCI: unmap %pp\n",
-                   domain, &PCI_SBDF(seg, bus, devfn));
-        ret = domain_context_unmap_one(domain, iommu, bus, devfn);
-        if ( ret )
-            break;
-
-        tmp_bus = bus;
-        tmp_devfn = devfn;
-        if ( (ret = find_upstream_bridge(seg, &tmp_bus, &tmp_devfn,
-                                         &secbus)) < 1 )
-        {
-            if ( ret )
-            {
-                ret = -ENXIO;
-                if ( !domain->is_dying &&
-                     !is_hardware_domain(domain) && domain != dom_io )
-                {
-                    domain_crash(domain);
-                    /* Make upper layers continue in a best effort manner. */
-                    ret = 0;
-                }
-            }
-            break;
-        }
-
-        ret = domain_context_unmap_one(domain, iommu, tmp_bus, tmp_devfn);
-        /* PCIe to PCI/PCIx bridge */
-        if ( !ret && pdev_type(seg, tmp_bus, tmp_devfn) == DEV_TYPE_PCIe2PCI_BRIDGE )
-            ret = domain_context_unmap_one(domain, iommu, secbus, 0);
-
-        break;
-
-    default:
-        dprintk(XENLOG_ERR VTDPREFIX, "%pd:unknown(%u): %pp\n",
-                domain, pdev->type, &PCI_SBDF(seg, bus, devfn));
-        return ERR_PTR(-EINVAL);
-    }
-
-    return drhd;
-}
-
-static void cf_check iommu_clear_root_pgtable(struct domain *d)
+static void cf_check iommu_clear_root_pgtable(struct domain *d,
+                                              struct iommu_context *ctx)
 {
-    struct iommu_context *ctx = iommu_default_context(d);
-
-    spin_lock(&ctx->arch.mapping_lock);
     ctx->arch.vtd.pgd_maddr = 0;
-    spin_unlock(&ctx->arch.mapping_lock);
 }
 
 static void cf_check iommu_domain_teardown(struct domain *d)
 {
     struct iommu_context *ctx = iommu_default_context(d);
-    const struct acpi_drhd_unit *drhd;
 
     if ( list_empty(&acpi_drhd_units) )
         return;
 
-    iommu_identity_map_teardown(d, ctx);
-
     ASSERT(!ctx->arch.vtd.pgd_maddr);
-
-    for_each_drhd_unit ( drhd )
-        iommu_free_domid(d->domain_id, drhd->iommu->domid_bitmap);
-
-    XFREE(ctx->arch.vtd.iommu_dev_cnt);
-    XFREE(ctx->arch.vtd.didmap);
-}
-
-static void quarantine_teardown(struct pci_dev *pdev,
-                                const struct acpi_drhd_unit *drhd)
-{
 }
 
 static int __must_check cf_check intel_iommu_map_page(
     struct domain *d, dfn_t dfn, mfn_t mfn, unsigned int flags,
-    unsigned int *flush_flags)
+    unsigned int *flush_flags, struct iommu_context *ctx)
 {
     struct domain_iommu *hd = dom_iommu(d);
-    struct iommu_context *ctx = iommu_default_context(d);
     struct dma_pte *page, *pte, old, new = {};
     u64 pg_maddr;
     unsigned int level = (IOMMUF_order(flags) / LEVEL_STRIDE) + 1;
@@ -1801,35 +1579,22 @@ static int __must_check cf_check intel_iommu_map_page(
     ASSERT((hd->platform_ops->page_sizes >> IOMMUF_order(flags)) &
            PAGE_SIZE_4K);
 
-    /* Do nothing if VT-d shares EPT page table */
-    if ( iommu_use_hap_pt(d) )
+    if ( ctx->opaque )
         return 0;
 
-    /* Do nothing if hardware domain and iommu supports pass thru. */
-    if ( iommu_hwdom_passthrough && is_hardware_domain(d) )
-        return 0;
-
-    spin_lock(&ctx->arch.mapping_lock);
-
     /*
      * IOMMU mapping request can be safely ignored when the domain is dying.
      *
-     * hd->arch.mapping_lock guarantees that d->is_dying will be observed
+     * hd->lock guarantees that d->is_dying will be observed
      * before any page tables are freed (see iommu_free_pgtables())
      */
     if ( d->is_dying )
-    {
-        spin_unlock(&ctx->arch.mapping_lock);
         return 0;
-    }
 
     pg_maddr = addr_to_dma_page_maddr(d, ctx, dfn_to_daddr(dfn), level, flush_flags,
                                       true);
     if ( pg_maddr < PAGE_SIZE )
-    {
-        spin_unlock(&ctx->arch.mapping_lock);
         return -ENOMEM;
-    }
 
     page = (struct dma_pte *)map_vtd_domain_page(pg_maddr);
     pte = &page[address_level_offset(dfn_to_daddr(dfn), level)];
@@ -1848,7 +1613,6 @@ static int __must_check cf_check intel_iommu_map_page(
 
     if ( !((old.val ^ new.val) & ~DMA_PTE_CONTIG_MASK) )
     {
-        spin_unlock(&ctx->arch.mapping_lock);
         unmap_vtd_domain_page(page);
         return 0;
     }
@@ -1891,7 +1655,6 @@ static int __must_check cf_check intel_iommu_map_page(
         perfc_incr(iommu_pt_coalesces);
     }
 
-    spin_unlock(&ctx->arch.mapping_lock);
     unmap_vtd_domain_page(page);
 
     *flush_flags |= IOMMU_FLUSHF_added;
@@ -1908,10 +1671,10 @@ static int __must_check cf_check intel_iommu_map_page(
 }
 
 static int __must_check cf_check intel_iommu_unmap_page(
-    struct domain *d, dfn_t dfn, unsigned int order, unsigned int *flush_flags)
+    struct domain *d, dfn_t dfn, unsigned int order, unsigned int *flush_flags,
+    struct iommu_context *ctx)
 {
     struct domain_iommu *hd = dom_iommu(d);
-    struct iommu_context *ctx = iommu_default_context(d);
     daddr_t addr = dfn_to_daddr(dfn);
     struct dma_pte *page = NULL, *pte = NULL, old;
     uint64_t pg_maddr;
@@ -1923,20 +1686,13 @@ static int __must_check cf_check intel_iommu_unmap_page(
      */
     ASSERT((hd->platform_ops->page_sizes >> order) & PAGE_SIZE_4K);
 
-    /* Do nothing if VT-d shares EPT page table */
-    if ( iommu_use_hap_pt(d) )
-        return 0;
-
-    /* Do nothing if hardware domain and iommu supports pass thru. */
-    if ( iommu_hwdom_passthrough && is_hardware_domain(d) )
+    if ( ctx->opaque )
         return 0;
 
-    spin_lock(&ctx->arch.mapping_lock);
     /* get target level pte */
     pg_maddr = addr_to_dma_page_maddr(d, ctx, addr, level, flush_flags, false);
     if ( pg_maddr < PAGE_SIZE )
     {
-        spin_unlock(&ctx->arch.mapping_lock);
         return pg_maddr ? -ENOMEM : 0;
     }
 
@@ -1945,7 +1701,6 @@ static int __must_check cf_check intel_iommu_unmap_page(
 
     if ( !dma_pte_present(*pte) )
     {
-        spin_unlock(&ctx->arch.mapping_lock);
         unmap_vtd_domain_page(page);
         return 0;
     }
@@ -1976,8 +1731,6 @@ static int __must_check cf_check intel_iommu_unmap_page(
         perfc_incr(iommu_pt_coalesces);
     }
 
-    spin_unlock(&ctx->arch.mapping_lock);
-
     unmap_vtd_domain_page(page);
 
     *flush_flags |= IOMMU_FLUSHF_modified;
@@ -1990,25 +1743,16 @@ static int __must_check cf_check intel_iommu_unmap_page(
 }
 
 static int cf_check intel_iommu_lookup_page(
-    struct domain *d, dfn_t dfn, mfn_t *mfn, unsigned int *flags)
+    struct domain *d, dfn_t dfn, mfn_t *mfn, unsigned int *flags,
+    struct iommu_context *ctx)
 {
-    struct iommu_context *ctx = iommu_default_context(d);
     uint64_t val;
 
-    /*
-     * If VT-d shares EPT page table or if the domain is the hardware
-     * domain and iommu_passthrough is set then pass back the dfn.
-     */
-    if ( iommu_use_hap_pt(d) ||
-         (iommu_hwdom_passthrough && is_hardware_domain(d)) )
+    if ( ctx->opaque )
         return -EOPNOTSUPP;
 
-    spin_lock(&ctx->arch.mapping_lock);
-
     val = addr_to_dma_page_maddr(d, ctx, dfn_to_daddr(dfn), 0, NULL, false);
 
-    spin_unlock(&ctx->arch.mapping_lock);
-
     if ( val < PAGE_SIZE )
         return -ENOENT;
 
@@ -2037,103 +1781,10 @@ static bool __init vtd_ept_page_compatible(const struct vtd_iommu *iommu)
             (cap_sps_1gb(vtd_cap) && iommu_superpages);
 }
 
-static int cf_check intel_iommu_add_device(u8 devfn, struct pci_dev *pdev)
-{
-    struct acpi_rmrr_unit *rmrr;
-    struct iommu_context *ctx;
-    u16 bdf;
-    int ret, i;
-
-    ASSERT(pcidevs_locked());
-
-    if ( !pdev->domain )
-        return -EINVAL;
-
-    ctx = iommu_default_context(pdev->domain);
-
-    for_each_rmrr_device ( rmrr, bdf, i )
-    {
-        if ( rmrr->segment == pdev->seg && bdf == PCI_BDF(pdev->bus, devfn) )
-        {
-            /*
-             * iommu_add_device() is only called for the hardware
-             * domain (see xen/drivers/passthrough/pci.c:pci_add_device()).
-             * Since RMRRs are always reserved in the e820 map for the hardware
-             * domain, there shouldn't be a conflict.
-             */
-            ret = iommu_identity_mapping(pdev->domain, ctx, p2m_access_rw,
-                                         rmrr->base_address, rmrr->end_address,
-                                         0);
-            if ( ret )
-                dprintk(XENLOG_ERR VTDPREFIX, "%pd: RMRR mapping failed\n",
-                        pdev->domain);
-        }
-    }
-
-    ret = domain_context_mapping(pdev->domain, ctx, devfn, pdev);
-    if ( ret )
-        dprintk(XENLOG_ERR VTDPREFIX, "%pd: context mapping failed\n",
-                pdev->domain);
-
-    return ret;
-}
-
-static int cf_check intel_iommu_enable_device(struct pci_dev *pdev)
-{
-    struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
-    int ret = drhd ? ats_device(pdev, drhd) : -ENODEV;
-
-    pci_vtd_quirk(pdev);
-
-    if ( ret <= 0 )
-        return ret;
-
-    ret = enable_ats_device(pdev, &drhd->iommu->ats_devices);
-
-    return ret >= 0 ? 0 : ret;
-}
-
-static int cf_check intel_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
-{
-    const struct acpi_drhd_unit *drhd;
-    struct acpi_rmrr_unit *rmrr;
-    u16 bdf;
-    unsigned int i;
-    struct iommu_context *ctx;
-
-    if ( !pdev->domain )
-        return -EINVAL;
-
-    ctx = iommu_default_context(pdev->domain);
-
-    drhd = domain_context_unmap(pdev->domain, devfn, pdev);
-    if ( IS_ERR(drhd) )
-        return PTR_ERR(drhd);
-
-    for_each_rmrr_device ( rmrr, bdf, i )
-    {
-        if ( rmrr->segment != pdev->seg || bdf != PCI_BDF(pdev->bus, devfn) )
-            continue;
-
-        /*
-         * Any flag is nothing to clear these mappings but here
-         * its always safe and strict to set 0.
-         */
-        iommu_identity_mapping(pdev->domain, ctx, p2m_access_x, rmrr->base_address,
-                               rmrr->end_address, 0);
-    }
-
-    quarantine_teardown(pdev, drhd);
-
-    return 0;
-}
-
 static int __hwdom_init cf_check setup_hwdom_device(
     u8 devfn, struct pci_dev *pdev)
 {
-    struct iommu_context *ctx = iommu_default_context(pdev->domain);
-
-    return domain_context_mapping(pdev->domain, ctx, devfn, pdev);
+    return iommu_attach_context(hardware_domain, pdev, 0);
 }
 
 void clear_fault_bits(struct vtd_iommu *iommu)
@@ -2303,30 +1954,6 @@ static int __must_check init_vtd_hw(bool resume)
     return iommu_flush_all();
 }
 
-static void __hwdom_init setup_hwdom_rmrr(struct domain *d)
-{
-    struct iommu_context *ctx = iommu_default_context(d);
-    struct acpi_rmrr_unit *rmrr;
-    u16 bdf;
-    int ret, i;
-
-    pcidevs_lock();
-    for_each_rmrr_device ( rmrr, bdf, i )
-    {
-        /*
-         * Here means we're add a device to the hardware domain.
-         * Since RMRRs are always reserved in the e820 map for the hardware
-         * domain, there shouldn't be a conflict. So its always safe and
-         * strict to set 0.
-         */
-        ret = iommu_identity_mapping(d, ctx, p2m_access_rw, rmrr->base_address,
-                                     rmrr->end_address, 0);
-        if ( ret )
-            dprintk(XENLOG_ERR VTDPREFIX,
-                     "IOMMU: mapping reserved region failed\n");
-    }
-    pcidevs_unlock();
-}
 
 static struct iommu_state {
     uint32_t fectl;
@@ -2475,173 +2102,6 @@ static int __init cf_check vtd_setup(void)
     return ret;
 }
 
-static int cf_check reassign_device_ownership(
-    struct domain *source,
-    struct domain *target,
-    u8 devfn, struct pci_dev *pdev)
-{
-    int ret;
-
-    if ( !has_arch_pdevs(target) )
-        vmx_pi_hooks_assign(target);
-
-#ifdef CONFIG_PV
-    /*
-        * Devices assigned to untrusted domains (here assumed to be any domU)
-        * can attempt to send arbitrary LAPIC/MSI messages. We are unprotected
-        * by the root complex unless interrupt remapping is enabled.
-        */
-    if ( !iommu_intremap && !is_hardware_domain(target) &&
-            !is_system_domain(target) )
-        untrusted_msi = true;
-#endif
-
-    ret = domain_context_mapping(target, iommu_default_context(target), devfn, pdev);
-
-    if ( ret )
-    {
-        if ( !has_arch_pdevs(target) )
-            vmx_pi_hooks_deassign(target);
-        return ret;
-    }
-
-    if ( devfn == pdev->devfn && pdev->domain != target )
-    {
-        write_lock(&source->pci_lock);
-        list_del(&pdev->domain_list);
-        write_unlock(&source->pci_lock);
-
-        pdev->domain = target;
-
-        write_lock(&target->pci_lock);
-        list_add(&pdev->domain_list, &target->pdev_list);
-        write_unlock(&target->pci_lock);
-    }
-
-    if ( !has_arch_pdevs(source) )
-        vmx_pi_hooks_deassign(source);
-
-    /*
-     * If the device belongs to the hardware domain, and it has RMRR, don't
-     * remove it from the hardware domain, because BIOS may use RMRR at
-     * booting time.
-     */
-    if ( !is_hardware_domain(source) )
-    {
-        const struct acpi_rmrr_unit *rmrr;
-        struct iommu_context *ctx = iommu_default_context(source);
-        u16 bdf;
-        unsigned int i;
-
-        for_each_rmrr_device( rmrr, bdf, i )
-            if ( rmrr->segment == pdev->seg &&
-                 bdf == PCI_BDF(pdev->bus, devfn) )
-            {
-                /*
-                 * Any RMRR flag is always ignored when remove a device,
-                 * but its always safe and strict to set 0.
-                 */
-                ret = iommu_identity_mapping(source, ctx, p2m_access_x,
-                                             rmrr->base_address,
-                                             rmrr->end_address, 0);
-                if ( ret && ret != -ENOENT )
-                    return ret;
-            }
-    }
-
-    return 0;
-}
-
-static int cf_check intel_iommu_assign_device(
-    struct domain *d, u8 devfn, struct pci_dev *pdev, u32 flag)
-{
-    struct domain *s = pdev->domain;
-    struct iommu_context *ctx = iommu_default_context(d);
-    struct acpi_rmrr_unit *rmrr;
-    int ret = 0, i;
-    u16 bdf, seg;
-    u8 bus;
-
-    if ( list_empty(&acpi_drhd_units) )
-        return -ENODEV;
-
-    seg = pdev->seg;
-    bus = pdev->bus;
-    /*
-     * In rare cases one given rmrr is shared by multiple devices but
-     * obviously this would put the security of a system at risk. So
-     * we would prevent from this sort of device assignment. But this
-     * can be permitted if user set
-     *      "pci = [ 'sbdf, rdm_policy=relaxed' ]"
-     *
-     * TODO: in the future we can introduce group device assignment
-     * interface to make sure devices sharing RMRR are assigned to the
-     * same domain together.
-     */
-    for_each_rmrr_device( rmrr, bdf, i )
-    {
-        if ( rmrr->segment == seg && bdf == PCI_BDF(bus, devfn) &&
-             rmrr->scope.devices_cnt > 1 )
-        {
-            bool relaxed = flag & XEN_DOMCTL_DEV_RDM_RELAXED;
-
-            printk(XENLOG_GUEST "%s" VTDPREFIX
-                   " It's %s to assign %pp"
-                   " with shared RMRR at %"PRIx64" for %pd.\n",
-                   relaxed ? XENLOG_WARNING : XENLOG_ERR,
-                   relaxed ? "risky" : "disallowed",
-                   &PCI_SBDF(seg, bus, devfn), rmrr->base_address, d);
-            if ( !relaxed )
-                return -EPERM;
-        }
-    }
-
-    /* Setup rmrr identity mapping */
-    for_each_rmrr_device( rmrr, bdf, i )
-    {
-        if ( rmrr->segment == seg && bdf == PCI_BDF(bus, devfn) )
-        {
-            ret = iommu_identity_mapping(d, ctx, p2m_access_rw, rmrr->base_address,
-                                         rmrr->end_address, flag);
-            if ( ret )
-            {
-                printk(XENLOG_G_ERR VTDPREFIX
-                       "%pd: cannot map reserved region [%"PRIx64",%"PRIx64"]: %d\n",
-                       d, rmrr->base_address, rmrr->end_address, ret);
-                break;
-            }
-        }
-    }
-
-    if ( !ret )
-        ret = reassign_device_ownership(s, d, devfn, pdev);
-
-    /* See reassign_device_ownership() for the hwdom aspect. */
-    if ( !ret || is_hardware_domain(d) )
-        return ret;
-
-    for_each_rmrr_device( rmrr, bdf, i )
-    {
-        if ( rmrr->segment == seg && bdf == PCI_BDF(bus, devfn) )
-        {
-            int rc = iommu_identity_mapping(d, ctx, p2m_access_x,
-                                            rmrr->base_address,
-                                            rmrr->end_address, 0);
-
-            if ( rc && rc != -ENOENT )
-            {
-                printk(XENLOG_ERR VTDPREFIX
-                       "%pd: cannot unmap reserved region [%"PRIx64",%"PRIx64"]: %d\n",
-                       d, rmrr->base_address, rmrr->end_address, rc);
-                domain_crash(d);
-                break;
-            }
-        }
-    }
-
-    return ret;
-}
-
 static int cf_check intel_iommu_group_id(u16 seg, u8 bus, u8 devfn)
 {
     u8 secbus;
@@ -2766,6 +2226,11 @@ static void vtd_dump_page_table_level(paddr_t pt_maddr, int level, paddr_t gpa,
     if ( level < 1 )
         return;
 
+    if (pt_maddr == 0) {
+        printk(" (empty)\n");
+        return;
+    }
+
     pt_vaddr = map_vtd_domain_page(pt_maddr);
 
     next_level = level - 1;
@@ -2797,20 +2262,296 @@ static void vtd_dump_page_table_level(paddr_t pt_maddr, int level, paddr_t gpa,
 static void cf_check vtd_dump_page_tables(struct domain *d)
 {
     const struct domain_iommu *hd = dom_iommu(d);
-    struct iommu_context *ctx = iommu_default_context(d);
+    unsigned int i;
 
-    printk(VTDPREFIX" %pd table has %d levels\n", d,
+    printk(VTDPREFIX " %pd table has %d levels\n", d,
            agaw_to_level(hd->arch.vtd.agaw));
-    vtd_dump_page_table_level(ctx->arch.vtd.pgd_maddr,
-                              agaw_to_level(hd->arch.vtd.agaw), 0, 0);
+
+    for (i = 1; i < (1 + hd->other_contexts.count); ++i)
+    {
+        struct iommu_context *ctx = iommu_get_context(d, i);
+
+        printk(VTDPREFIX " %pd context %d: %s\n", d, i,
+               ctx ? "allocated" : "non-allocated");
+
+        if (ctx)
+        {
+            vtd_dump_page_table_level(ctx->arch.vtd.pgd_maddr,
+                                      agaw_to_level(hd->arch.vtd.agaw), 0, 0);
+            iommu_put_context(ctx);
+        }
+    }
+}
+
+static int intel_iommu_cleanup_pte(uint64_t pte_maddr, bool preempt)
+{
+    size_t i;
+    struct dma_pte *pte = map_vtd_domain_page(pte_maddr);
+
+    for (i = 0; i < (1 << PAGETABLE_ORDER); ++i)
+        if ( dma_pte_present(pte[i]) )
+        {
+            /* Remove the reference of the target mapping (if needed) */
+            mfn_t mfn = maddr_to_mfn(dma_pte_addr(pte[i]));
+
+            if ( mfn_valid(mfn) )
+                put_page(mfn_to_page(mfn));
+
+            if ( preempt )
+                dma_clear_pte(pte[i]);
+        }
+
+    unmap_vtd_domain_page(pte);
+
+    return 0;
+}
+
+/**
+ * Cleanup logic :
+ * Walk through the entire page table, progressively removing mappings if preempt.
+ *
+ * Return values :
+ *  - Report preemption with -ERESTART.
+ *  - Report empty pte/pgd with 0.
+ *
+ * When preempted during superpage operation, store state in vtd.superpage_progress.
+ */
+
+static int intel_iommu_cleanup_superpage(struct iommu_context *ctx,
+                                          unsigned int page_order, uint64_t pte_maddr,
+                                          bool preempt)
+{
+    size_t i = 0, page_count = 1 << page_order;
+    struct page_info *page = maddr_to_page(pte_maddr);
+
+    if ( preempt )
+        i = ctx->arch.vtd.superpage_progress;
+
+    for (; i < page_count; page++)
+    {
+        put_page(page);
+
+        if ( preempt && (i & 0xff) && general_preempt_check() )
+        {
+            ctx->arch.vtd.superpage_progress = i + 1;
+            return -ERESTART;
+        }
+    }
+
+    if ( preempt )
+        ctx->arch.vtd.superpage_progress = 0;
+
+    return 0;
+}
+
+static int intel_iommu_cleanup_mappings(struct iommu_context *ctx,
+                                         unsigned int nr_pt_levels, uint64_t pgd_maddr,
+                                         bool preempt)
+{
+    size_t i;
+    int rc;
+    struct dma_pte *pgd;
+
+    if ( ctx->opaque )
+        /* don't touch opaque contexts */
+        return 0;
+
+    pgd = map_vtd_domain_page(pgd_maddr);
+
+    for (i = 0; i < (1 << PAGETABLE_ORDER); ++i)
+    {
+        if ( dma_pte_present(pgd[i]) )
+        {
+            uint64_t pte_maddr = dma_pte_addr(pgd[i]);
+
+            if ( dma_pte_superpage(pgd[i]) )
+                rc = intel_iommu_cleanup_superpage(ctx, nr_pt_levels * SUPERPAGE_ORDER,
+                                                   pte_maddr, preempt);
+            else if ( nr_pt_levels > 2 )
+                /* Next level is not PTE */
+                rc = intel_iommu_cleanup_mappings(ctx, nr_pt_levels - 1,
+                                                  pte_maddr, preempt);
+            else
+                rc = intel_iommu_cleanup_pte(pte_maddr, preempt);
+
+            if ( preempt && !rc )
+                /* Fold pgd (no more mappings in it) */
+                dma_clear_pte(pgd[i]);
+            else if ( preempt && (rc == -ERESTART || general_preempt_check()) )
+            {
+                unmap_vtd_domain_page(pgd);
+                return -ERESTART;
+            }
+        }
+    }
+
+    unmap_vtd_domain_page(pgd);
+
+    return 0;
+}
+
+static int cf_check intel_iommu_context_teardown(struct domain *d,
+                                        struct iommu_context *ctx, u32 flags)
+{
+    struct acpi_drhd_unit *drhd;
+    pcidevs_lock();
+
+    // Cleanup mappings
+    if ( intel_iommu_cleanup_mappings(ctx, agaw_to_level(d->iommu.arch.vtd.agaw),
+                                      ctx->arch.vtd.pgd_maddr,
+                                      flags & IOMMUF_preempt) < 0 )
+    {
+        pcidevs_unlock();
+        return -ERESTART;
+    }
+
+    ASSERT(ctx->arch.vtd.didmap);
+
+    for_each_drhd_unit(drhd)
+    {
+        unsigned long index = drhd->iommu->index;
+
+        iommu_free_domid(ctx->arch.vtd.didmap[index], drhd->iommu->domid_bitmap);
+    }
+
+    xfree(ctx->arch.vtd.didmap);
+
+    pcidevs_unlock();
+    return arch_iommu_context_teardown(d, ctx, flags);
 }
 
-static int cf_check intel_iommu_quarantine_init(struct pci_dev *pdev,
-                                                bool scratch_page)
+static int intel_iommu_dev_rmrr(struct domain *d, struct pci_dev *pdev,
+                                struct iommu_context *ctx, bool unmap)
 {
+    struct acpi_rmrr_unit *rmrr;
+    u16 bdf;
+    int ret, i;
+
+    for_each_rmrr_device(rmrr, bdf, i)
+    {
+        if ( PCI_SBDF(rmrr->segment, bdf).sbdf == pdev->sbdf.sbdf )
+        {
+            ret = iommu_identity_mapping(d, ctx,
+                                         unmap ? p2m_access_x : p2m_access_rw,
+                                         rmrr->base_address, rmrr->end_address,
+                                         0);
+
+            if ( ret < 0 )
+                return ret;
+        }
+    }
+
     return 0;
 }
 
+static int cf_check intel_iommu_attach(struct domain *d, struct pci_dev *pdev,
+                                       struct iommu_context *ctx)
+{
+    int ret;
+    const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
+
+    if ( !pdev || !drhd )
+        return -EINVAL;
+
+    ret = intel_iommu_dev_rmrr(d, pdev, ctx, false);
+
+    if ( ret )
+        return ret;
+
+    ret = apply_context(d, ctx, pdev, pdev->devfn, NULL);
+
+    if ( ret )
+        return ret;
+
+    pci_vtd_quirk(pdev);
+
+    return ret;
+}
+
+static int cf_check intel_iommu_detach(struct domain *d, struct pci_dev *pdev,
+                                       struct iommu_context *prev_ctx)
+{
+    int ret, rc;
+    const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
+
+    if ( !pdev || !drhd )
+        return -EINVAL;
+
+    ret = unapply_context_single(d, drhd->iommu, prev_ctx, pdev->bus, pdev->devfn);
+
+    if ( ret )
+        return ret;
+
+    if ( (rc = intel_iommu_dev_rmrr(d, pdev, prev_ctx, true)) )
+        printk(XENLOG_WARNING VTDPREFIX
+               " Unable to unmap RMRR from d%dc%d for %pp (%d)\n",
+               d->domain_id, prev_ctx->id, &pdev->sbdf, rc);
+
+    return ret;
+}
+
+static int cf_check intel_iommu_reattach(struct domain *d,
+                                         struct pci_dev *pdev,
+                                         struct iommu_context *prev_ctx,
+                                         struct iommu_context *ctx)
+{
+    int ret, rc;
+    const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
+
+    if ( !pdev || !drhd )
+        return -EINVAL;
+
+    ret = intel_iommu_dev_rmrr(d, pdev, ctx, false);
+
+    if ( ret )
+        return ret;
+
+    ret = apply_context(d, ctx, pdev, pdev->devfn, prev_ctx);
+
+    if ( ret )
+    {
+        /* Remove the RMRR we just added */
+        if ( (rc = intel_iommu_dev_rmrr(d, pdev, ctx, true)) )
+            printk(XENLOG_WARNING VTDPREFIX
+                   " Unable to unmap RMRR from d%dc%d for %pp (%d)\n",
+                   d->domain_id, prev_ctx->id, &pdev->sbdf, rc);
+
+        return ret;
+    }
+
+    /* Remove previous context RMRR  */
+    if ( (rc = intel_iommu_dev_rmrr(d, pdev, prev_ctx, true)) )
+        printk(XENLOG_WARNING VTDPREFIX
+               " Unable to unmap previous RMRR for %pp (%d)\n", &pdev->sbdf, rc);
+
+    pci_vtd_quirk(pdev);
+
+    return ret;
+}
+
+static int cf_check intel_iommu_add_devfn(struct domain *d,
+                                          struct pci_dev *pdev, u16 devfn,
+                                          struct iommu_context *ctx)
+{
+    const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
+
+    if ( !pdev || !drhd )
+        return -EINVAL;
+
+    return apply_context(d, ctx, pdev, devfn, NULL);
+}
+
+static int cf_check intel_iommu_remove_devfn(struct domain *d, struct pci_dev *pdev,
+                                             u16 devfn, struct iommu_context *prev_ctx)
+{
+    const struct acpi_drhd_unit *drhd = acpi_find_matched_drhd_unit(pdev);
+
+    if ( !pdev || !drhd )
+        return -EINVAL;
+
+    return unapply_context_single(d, drhd->iommu, prev_ctx, pdev->bus, devfn);
+}
+
 static void cf_check vtd_quiesce(void)
 {
     const struct acpi_drhd_unit *drhd;
@@ -2833,17 +2574,18 @@ static const struct iommu_ops __initconst_cf_clobber vtd_ops = {
     .page_sizes = PAGE_SIZE_4K,
     .init = intel_iommu_domain_init,
     .hwdom_init = intel_iommu_hwdom_init,
-    .quarantine_init = intel_iommu_quarantine_init,
-    .add_device = intel_iommu_add_device,
-    .enable_device = intel_iommu_enable_device,
-    .remove_device = intel_iommu_remove_device,
-    .assign_device  = intel_iommu_assign_device,
+    .context_init = intel_iommu_context_init,
+    .context_teardown = intel_iommu_context_teardown,
+    .attach = intel_iommu_attach,
+    .detach = intel_iommu_detach,
+    .reattach = intel_iommu_reattach,
+    .add_devfn = intel_iommu_add_devfn,
+    .remove_devfn = intel_iommu_remove_devfn,
     .teardown = iommu_domain_teardown,
     .clear_root_pgtable = iommu_clear_root_pgtable,
     .map_page = intel_iommu_map_page,
     .unmap_page = intel_iommu_unmap_page,
     .lookup_page = intel_iommu_lookup_page,
-    .reassign_device = reassign_device_ownership,
     .get_device_group_id = intel_iommu_group_id,
     .enable_x2apic = intel_iommu_enable_eim,
     .disable_x2apic = intel_iommu_disable_eim,
diff --git a/xen/drivers/passthrough/vtd/quirks.c b/xen/drivers/passthrough/vtd/quirks.c
index 195fc5c08f..517d0e7a13 100644
--- a/xen/drivers/passthrough/vtd/quirks.c
+++ b/xen/drivers/passthrough/vtd/quirks.c
@@ -409,9 +409,9 @@ void __init platform_quirks_init(void)
 
 static int __must_check map_me_phantom_function(struct domain *domain,
                                                 unsigned int dev,
-                                                domid_t domid,
-                                                paddr_t pgd_maddr,
-                                                unsigned int mode)
+                                                unsigned int mode,
+                                                struct iommu_context *ctx,
+                                                struct iommu_context *prev_ctx)
 {
     struct acpi_drhd_unit *drhd;
     struct pci_dev *pdev;
@@ -423,19 +423,17 @@ static int __must_check map_me_phantom_function(struct domain *domain,
 
     /* map or unmap ME phantom function */
     if ( !(mode & UNMAP_ME_PHANTOM_FUNC) )
-        rc = domain_context_mapping_one(domain, iommu_default_context(domain),
-                                        drhd->iommu, 0,
-                                        PCI_DEVFN(dev, 7), NULL,
-                                        domid, pgd_maddr, mode);
+        rc = apply_context_single(domain, ctx, drhd->iommu, 0,
+                                  PCI_DEVFN(dev, 7), prev_ctx);
     else
-        rc = domain_context_unmap_one(domain, drhd->iommu, 0,
-                                      PCI_DEVFN(dev, 7));
+        rc = unapply_context_single(domain, drhd->iommu, prev_ctx, 0, PCI_DEVFN(dev, 7));
 
     return rc;
 }
 
 int me_wifi_quirk(struct domain *domain, uint8_t bus, uint8_t devfn,
-                  domid_t domid, paddr_t pgd_maddr, unsigned int mode)
+                  domid_t domid, unsigned int mode,
+                  struct iommu_context *ctx, struct iommu_context *prev_ctx)
 {
     u32 id;
     int rc = 0;
@@ -459,7 +457,7 @@ int me_wifi_quirk(struct domain *domain, uint8_t bus, uint8_t devfn,
             case 0x423b8086:
             case 0x423c8086:
             case 0x423d8086:
-                rc = map_me_phantom_function(domain, 3, domid, pgd_maddr, mode);
+                rc = map_me_phantom_function(domain, 3, mode, ctx, prev_ctx);
                 break;
             default:
                 break;
@@ -485,7 +483,7 @@ int me_wifi_quirk(struct domain *domain, uint8_t bus, uint8_t devfn,
             case 0x42388086:        /* Puma Peak */
             case 0x422b8086:
             case 0x422c8086:
-                rc = map_me_phantom_function(domain, 22, domid, pgd_maddr, mode);
+                rc = map_me_phantom_function(domain, 22, mode, ctx, prev_ctx);
                 break;
             default:
                 break;
diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c
index 98cca92dc3..d8becfa869 100644
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -12,6 +12,12 @@
  * this program; If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <xen/keyhandler.h>
+#include <xen/lib.h>
+#include <xen/pci.h>
+#include <xen/bitmap.h>
+#include <xen/list.h>
+#include <xen/mm.h>
 #include <xen/cpu.h>
 #include <xen/sched.h>
 #include <xen/iocap.h>
@@ -19,7 +25,6 @@
 #include <xen/paging.h>
 #include <xen/guest_access.h>
 #include <xen/event.h>
-#include <xen/spinlock.h>
 #include <xen/softirq.h>
 #include <xen/vm_event.h>
 #include <xsm/xsm.h>
@@ -29,6 +34,9 @@
 #include <asm/mem_paging.h>
 #include <asm/pt-contig-markers.h>
 #include <asm/setup.h>
+#include <asm/iommu.h>
+#include <asm/page.h>
+#include <asm/p2m.h>
 
 const struct iommu_init_ops *__initdata iommu_init_ops;
 struct iommu_ops __ro_after_init iommu_ops;
@@ -192,8 +200,6 @@ int arch_iommu_domain_init(struct domain *d)
 
 int arch_iommu_context_init(struct domain *d, struct iommu_context *ctx, u32 flags)
 {
-    spin_lock_init(&ctx->arch.mapping_lock);
-
     INIT_PAGE_LIST_HEAD(&ctx->arch.pgtables);
     INIT_LIST_HEAD(&ctx->arch.identity_maps);
 
@@ -220,6 +226,95 @@ struct identity_map {
     unsigned int count;
 };
 
+static int unmap_identity_region(struct domain *d, struct iommu_context *ctx,
+                                 unsigned int base_pfn, unsigned int end_pfn)
+{
+    int ret = 0;
+
+    if ( ctx->opaque && !ctx->id )
+    {
+        #ifdef CONFIG_HVM
+        this_cpu(iommu_dont_flush_iotlb) = true;
+        while ( base_pfn < end_pfn )
+        {
+            if ( p2m_remove_identity_entry(d, base_pfn) )
+                ret = -ENXIO;
+
+            base_pfn++;
+        }
+        this_cpu(iommu_dont_flush_iotlb) = false;
+        #else
+        ASSERT_UNREACHABLE();
+        #endif
+    }
+    else
+    {
+        size_t page_count = end_pfn - base_pfn + 1;
+        unsigned int flush_flags;
+
+        ret = iommu_unmap(d, _dfn(base_pfn), page_count, 0, &flush_flags,
+                          ctx->id);
+
+        if ( ret )
+            return ret;
+
+        ret = iommu_iotlb_flush(d, _dfn(base_pfn), page_count,
+                                flush_flags, ctx->id);
+    }
+
+    return ret;
+}
+
+static int map_identity_region(struct domain *d, struct iommu_context *ctx,
+                               unsigned int base_pfn, unsigned int end_pfn,
+                               p2m_access_t p2ma, unsigned int flag)
+{
+    int ret = 0;
+    unsigned int flush_flags = 0;
+    size_t page_count = end_pfn - base_pfn + 1;
+
+    if ( ctx->opaque && !ctx->id )
+    {
+        #ifdef CONFIG_HVM
+        int i;
+        this_cpu(iommu_dont_flush_iotlb) = true;
+
+        for (i = 0; i < page_count; i++)
+        {
+            ret = p2m_add_identity_entry(d, base_pfn + i, p2ma, flag);
+
+            if ( ret )
+                break;
+
+            base_pfn++;
+        }
+        this_cpu(iommu_dont_flush_iotlb) = false;
+        #else
+        ASSERT_UNREACHABLE();
+        #endif
+    }
+    else
+    {
+        int i;
+
+        for (i = 0; i < page_count; i++)
+        {
+            ret = iommu_map(d, _dfn(base_pfn + i), _mfn(base_pfn + i), 1,
+                            p2m_access_to_iommu_flags(p2ma), &flush_flags,
+                            ctx->id);
+
+            if ( ret )
+                break;
+        }
+    }
+
+    ret = iommu_iotlb_flush(d, _dfn(base_pfn), page_count, flush_flags,
+                            ctx->id);
+
+    return ret;
+}
+
+/* p2m_access_x removes the mapping */
 int iommu_identity_mapping(struct domain *d, struct iommu_context *ctx,
                            p2m_access_t p2ma, paddr_t base, paddr_t end,
                            unsigned int flag)
@@ -227,24 +322,20 @@ int iommu_identity_mapping(struct domain *d, struct iommu_context *ctx,
     unsigned long base_pfn = base >> PAGE_SHIFT_4K;
     unsigned long end_pfn = PAGE_ALIGN_4K(end) >> PAGE_SHIFT_4K;
     struct identity_map *map;
+    int ret = 0;
 
     ASSERT(pcidevs_locked());
     ASSERT(base < end);
 
-    /*
-     * No need to acquire hd->arch.mapping_lock: Both insertion and removal
-     * get done while holding pcidevs_lock.
-     */
     list_for_each_entry( map, &ctx->arch.identity_maps, list )
     {
         if ( map->base == base && map->end == end )
         {
-            int ret = 0;
-
             if ( p2ma != p2m_access_x )
             {
                 if ( map->access != p2ma )
                     return -EADDRINUSE;
+
                 ++map->count;
                 return 0;
             }
@@ -252,12 +343,9 @@ int iommu_identity_mapping(struct domain *d, struct iommu_context *ctx,
             if ( --map->count )
                 return 0;
 
-            while ( base_pfn < end_pfn )
-            {
-                if ( clear_identity_p2m_entry(d, base_pfn) )
-                    ret = -ENXIO;
-                base_pfn++;
-            }
+            printk("Unmapping [%"PRI_mfn"x:%"PRI_mfn"] for d%dc%d\n", base_pfn, end_pfn,
+                   d->domain_id, ctx->id);
+            ret = unmap_identity_region(d, ctx, base_pfn, end_pfn);
 
             list_del(&map->list);
             xfree(map);
@@ -281,27 +369,17 @@ int iommu_identity_mapping(struct domain *d, struct iommu_context *ctx,
     map->access = p2ma;
     map->count = 1;
 
-    /*
-     * Insert into list ahead of mapping, so the range can be found when
-     * trying to clean up.
-     */
-    list_add_tail(&map->list, &ctx->arch.identity_maps);
+    printk("Mapping [%"PRI_mfn"x:%"PRI_mfn"] for d%dc%d\n", base_pfn, end_pfn,
+           d->domain_id, ctx->id);
+    ret = map_identity_region(d, ctx, base_pfn, end_pfn, p2ma, flag);
 
-    for ( ; base_pfn < end_pfn; ++base_pfn )
+    if ( ret )
     {
-        int err = set_identity_p2m_entry(d, base_pfn, p2ma, flag);
-
-        if ( !err )
-            continue;
-
-        if ( (map->base >> PAGE_SHIFT_4K) == base_pfn )
-        {
-            list_del(&map->list);
-            xfree(map);
-        }
-        return err;
+        xfree(map);
+        return ret;
     }
 
+    list_add(&map->list, &ctx->arch.identity_maps);
     return 0;
 }
 
@@ -385,7 +463,7 @@ static int __hwdom_init cf_check identity_map(unsigned long s, unsigned long e,
             if ( iomem_access_permitted(d, s, s) )
             {
                 rc = iommu_map(d, _dfn(s), _mfn(s), 1, perms,
-                               &info->flush_flags);
+                               &info->flush_flags, 0);
                 if ( rc < 0 )
                     break;
                 /* Must map a frame at least, which is what we request for. */
@@ -395,7 +473,7 @@ static int __hwdom_init cf_check identity_map(unsigned long s, unsigned long e,
             s++;
         }
         while ( (rc = iommu_map(d, _dfn(s), _mfn(s), e - s + 1,
-                                perms, &info->flush_flags)) > 0 )
+                                perms, &info->flush_flags, 0)) > 0 )
         {
             s += rc;
             process_pending_softirqs();
@@ -522,7 +600,7 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
                map_data.mmio_ro ? "read-only " : "", rc);
 
     /* Use if to avoid compiler warning */
-    if ( iommu_iotlb_flush_all(d, map_data.flush_flags) )
+    if ( iommu_iotlb_flush_all(d, 0, map_data.flush_flags) )
         return;
 }
 
@@ -579,14 +657,11 @@ int iommu_free_pgtables(struct domain *d, struct iommu_context *ctx)
     if ( !is_iommu_enabled(d) )
         return 0;
 
-    /* After this barrier, no new IOMMU mappings can be inserted. */
-    spin_barrier(&ctx->arch.mapping_lock);
-
     /*
      * Pages will be moved to the free list below. So we want to
      * clear the root page-table to avoid any potential use after-free.
      */
-    iommu_vcall(hd->platform_ops, clear_root_pgtable, d);
+    iommu_vcall(hd->platform_ops, clear_root_pgtable, d, ctx);
 
     while ( (pg = page_list_remove_head(&ctx->arch.pgtables)) )
     {
diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
index 91f106968e..8c20f575ee 100644
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -187,11 +187,10 @@ enum
  */
 long __must_check iommu_map(struct domain *d, dfn_t dfn0, mfn_t mfn0,
                             unsigned long page_count, unsigned int flags,
-                            unsigned int *flush_flags);
+                            unsigned int *flush_flags, u16 ctx_id);
 long __must_check iommu_unmap(struct domain *d, dfn_t dfn0,
                               unsigned long page_count, unsigned int flags,
-                              unsigned int *flush_flags);
-
+                              unsigned int *flush_flags, u16 ctx_id);
 int __must_check iommu_legacy_map(struct domain *d, dfn_t dfn, mfn_t mfn,
                                   unsigned long page_count,
                                   unsigned int flags);
@@ -199,12 +198,13 @@ int __must_check iommu_legacy_unmap(struct domain *d, dfn_t dfn,
                                     unsigned long page_count);
 
 int __must_check iommu_lookup_page(struct domain *d, dfn_t dfn, mfn_t *mfn,
-                                   unsigned int *flags);
+                                   unsigned int *flags, u16 ctx_id);
 
 int __must_check iommu_iotlb_flush(struct domain *d, dfn_t dfn,
                                    unsigned long page_count,
-                                   unsigned int flush_flags);
-int __must_check iommu_iotlb_flush_all(struct domain *d,
+                                   unsigned int flush_flags,
+                                   u16 ctx_id);
+int __must_check iommu_iotlb_flush_all(struct domain *d, u16 ctx_id,
                                        unsigned int flush_flags);
 
 enum iommu_feature
@@ -321,20 +321,32 @@ struct page_info;
  */
 typedef int iommu_grdm_t(xen_pfn_t start, xen_ulong_t nr, u32 id, void *ctxt);
 
+#define IOMMU_INVALID_CONTEXT_ID 0xFFFF
+
+struct iommu_context;
+
 struct iommu_ops {
     unsigned long page_sizes;
     int (*init)(struct domain *d);
     void (*hwdom_init)(struct domain *d);
-    int (*quarantine_init)(device_t *dev, bool scratch_page);
-    int (*add_device)(uint8_t devfn, device_t *dev);
-    int (*enable_device)(device_t *dev);
-    int (*remove_device)(uint8_t devfn, device_t *dev);
-    int (*assign_device)(struct domain *d, uint8_t devfn, device_t *dev,
-                         uint32_t flag);
-    int (*reassign_device)(struct domain *s, struct domain *t,
-                           uint8_t devfn, device_t *dev);
+    int (*context_init)(struct domain *d, struct iommu_context *ctx,
+                        u32 flags);
+    int (*context_teardown)(struct domain *d, struct iommu_context *ctx,
+                            u32 flags);
+    int (*attach)(struct domain *d, device_t *dev,
+                  struct iommu_context *ctx);
+    int (*detach)(struct domain *d, device_t *dev,
+                   struct iommu_context *prev_ctx);
+    int (*reattach)(struct domain *d, device_t *dev,
+                    struct iommu_context *prev_ctx,
+                    struct iommu_context *ctx);
+
 #ifdef CONFIG_HAS_PCI
     int (*get_device_group_id)(uint16_t seg, uint8_t bus, uint8_t devfn);
+    int (*add_devfn)(struct domain *d, struct pci_dev *pdev, u16 devfn,
+                     struct iommu_context *ctx);
+    int (*remove_devfn)(struct domain *d, struct pci_dev *pdev, u16 devfn,
+                        struct iommu_context *prev_ctx);
 #endif /* HAS_PCI */
 
     void (*teardown)(struct domain *d);
@@ -345,12 +357,15 @@ struct iommu_ops {
      */
     int __must_check (*map_page)(struct domain *d, dfn_t dfn, mfn_t mfn,
                                  unsigned int flags,
-                                 unsigned int *flush_flags);
+                                 unsigned int *flush_flags,
+                                 struct iommu_context *ctx);
     int __must_check (*unmap_page)(struct domain *d, dfn_t dfn,
                                    unsigned int order,
-                                   unsigned int *flush_flags);
+                                   unsigned int *flush_flags,
+                                   struct iommu_context *ctx);
     int __must_check (*lookup_page)(struct domain *d, dfn_t dfn, mfn_t *mfn,
-                                    unsigned int *flags);
+                                    unsigned int *flags,
+                                    struct iommu_context *ctx);
 
 #ifdef CONFIG_X86
     int (*enable_x2apic)(void);
@@ -363,14 +378,15 @@ struct iommu_ops {
     int (*setup_hpet_msi)(struct msi_desc *msi_desc);
 
     void (*adjust_irq_affinities)(void);
-    void (*clear_root_pgtable)(struct domain *d);
+    void (*clear_root_pgtable)(struct domain *d, struct iommu_context *ctx);
     int (*update_ire_from_msi)(struct msi_desc *msi_desc, struct msi_msg *msg);
 #endif /* CONFIG_X86 */
 
     int __must_check (*suspend)(void);
     void (*resume)(void);
     void (*crash_shutdown)(void);
-    int __must_check (*iotlb_flush)(struct domain *d, dfn_t dfn,
+    int __must_check (*iotlb_flush)(struct domain *d,
+                                    struct iommu_context *ctx, dfn_t dfn,
                                     unsigned long page_count,
                                     unsigned int flush_flags);
     int (*get_reserved_device_memory)(iommu_grdm_t *func, void *ctxt);
@@ -418,16 +434,37 @@ extern int iommu_get_extra_reserved_device_memory(iommu_grdm_t *func,
 
 struct iommu_context {
     #ifdef CONFIG_HAS_PASSTHROUGH
-    u16 id; /* Context id (0 means default context) */
+    uint16_t id; /* Context id (0 means default context) */
+    rspinlock_t lock; /* context lock */
+
+    struct list_head devices;
 
     struct arch_iommu_context arch;
+
+    bool opaque; /* context can't be modified nor accessed (e.g HAP) */
+    bool dying; /* the context is tearing down */
     #endif
 };
 
+struct iommu_context_list {
+    atomic_t initialized; /* has/is context list being initialized ? */
+    rwlock_t lock; /* prevent concurrent destruction and access of contexts */
+    uint16_t count; /* Context count excluding default context */
+
+    /* if count > 0 */
+
+    unsigned long *bitmap; /* bitmap of context allocation */
+    struct iommu_context *map; /* Map of contexts */
+};
+
+
 struct domain_iommu {
+
 #ifdef CONFIG_HAS_PASSTHROUGH
     struct arch_iommu arch;
+
     struct iommu_context default_ctx;
+    struct iommu_context_list other_contexts;
 #endif
 
     /* iommu_ops */
@@ -491,6 +528,8 @@ void iommu_resume(void);
 void iommu_crash_shutdown(void);
 void iommu_quiesce(void);
 int iommu_get_reserved_device_memory(iommu_grdm_t *func, void *ctxt);
+
+int __init iommu_quarantine_init(void);
 int iommu_quarantine_dev_init(device_t *dev);
 
 #ifdef CONFIG_HAS_PCI
@@ -500,6 +539,26 @@ int iommu_do_pci_domctl(struct xen_domctl *domctl, struct domain *d,
 
 void iommu_dev_iotlb_flush_timeout(struct domain *d, struct pci_dev *pdev);
 
+
+struct iommu_context *iommu_get_context(struct domain *d, u16 ctx_id);
+void iommu_put_context(struct iommu_context *ctx);
+
+#define IOMMU_CONTEXT_INIT_default (1 << 0)
+#define IOMMU_CONTEXT_INIT_quarantine (1 << 1)
+int iommu_context_init(struct domain *d, struct iommu_context *ctx, u16 ctx_id, u32 flags);
+
+#define IOMMU_TEARDOWN_REATTACH_DEFAULT (1 << 0)
+#define IOMMU_TEARDOWN_PREEMPT (1 << 1)
+int iommu_context_teardown(struct domain *d, struct iommu_context *ctx, u32 flags);
+
+int iommu_context_alloc(struct domain *d, u16 *ctx_id, u32 flags);
+int iommu_context_free(struct domain *d, u16 ctx_id, u32 flags);
+
+int iommu_reattach_context(struct domain *prev_dom, struct domain *next_dom,
+                           device_t *dev, u16 ctx_id);
+int iommu_attach_context(struct domain *d, device_t *dev, u16 ctx_id);
+int iommu_detach_context(struct domain *d, device_t *dev);
+
 /*
  * The purpose of the iommu_dont_flush_iotlb optional cpu flag is to
  * avoid unecessary iotlb_flush in the low level IOMMU code.
diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
index 130c2a8c1a..acc2229ccf 100644
--- a/xen/include/xen/pci.h
+++ b/xen/include/xen/pci.h
@@ -102,6 +102,7 @@ struct pci_dev_info {
 struct pci_dev {
     struct list_head alldevs_list;
     struct list_head domain_list;
+    struct list_head context_list;
 
     struct list_head msi_list;
 
@@ -109,6 +110,8 @@ struct pci_dev {
 
     struct domain *domain;
 
+    uint16_t context; /* IOMMU context number of domain */
+
     const union {
         struct {
             uint8_t devfn;
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 11:10:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 11:10:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166867.1493367 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2YB-0004LE-5t; Thu, 20 Nov 2025 11:10:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166867.1493367; Thu, 20 Nov 2025 11:10:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2YA-0004JQ-NJ; Thu, 20 Nov 2025 11:10:06 +0000
Received: by outflank-mailman (input) for mailman id 1166867;
 Thu, 20 Nov 2025 11:10:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MVa3=54=bounce.vates.tech=bounce-md_30504962.691ef70a.v1-518358f759774a67b695c403d1301a41@srs-se1.protection.inumbo.net>)
 id 1vM2Y9-0001P8-A8
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 11:10:05 +0000
Received: from mail128-17.atl41.mandrillapp.com
 (mail128-17.atl41.mandrillapp.com [198.2.128.17])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 761cd388-c601-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 12:10:03 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4dBwcB3knszCf9RNd
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 11:10:02 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 518358f759774a67b695c403d1301a41; Thu, 20 Nov 2025 11:10: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: 761cd388-c601-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763637002; x=1763907002;
	bh=hTbgBPnZ4+R3igGlDozv+3Pws+sR6+GzT16fzmrSWCI=;
	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=bAViuhfZH1RbhwQuqnOiQN/RLA/q3Yv/gHT8p9EwM/ohFbekiVmDwuChfbV3fZpLU
	 bJ9a4H6i70BveMoVdKshoXGCdc0spTTagw9ZrKXHgUj5uiuR0ULEV2Yu4nonuKfY5L
	 pCb21nW7as7zy6bAglVexOiGuavI1F1v+GFV/NwRZgBZDcqbYFFs1QAMhTJrJ0jbMm
	 sqnVqZJ9nqwQ9LXbaMWZqjBgrmdUk8V0dKouQhhmoUdyk9E4vWMrc0ID3GF6ip4A2g
	 gcTphcgRzhx/EDowHhk6gzlcGnFYOF9EJSFFd7PcCLKkv8S7n6BhJK352YVBzAv6pa
	 dRVT1HSp6lBbQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763637002; x=1763897502; i=teddy.astie@vates.tech;
	bh=hTbgBPnZ4+R3igGlDozv+3Pws+sR6+GzT16fzmrSWCI=;
	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=yYkFGdMli4ZwogOhffPELT0dthYz9sMnFjmERUKx4NWVci7+EM8xQZ+icP6Qf9xpw
	 14Iy/Zz87NoRzwbD5phFRv5rY+z7l+0lbrx9TiI2h4T+t2XM16tB76Z9CIDri8mFtD
	 dTxAdP8Repxkr5bWjlQOQ8oxTDbsGK44+08gwkWJEuL1Fm6i7+sbMhSCC7ML8W64fg
	 gvnXn8Ycf1K/DCkMDIezP5Mh11963dsOWta7cHFgwYQrfOkU89lIAJO6WTNXhjm6xL
	 lMFvSX5yzQpZr9dwIxkhISinWibFYJEgjONEYmcsNigcelnR2LwqJxVGnUcBp9Mg9a
	 I9tKAakhEM3gg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=20v7=2010/14]=20amd/iommu:=20Introduce=20lookup=20implementation?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763637001462
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>, "Jason Andryuk" <jason.andryuk@amd.com>
Message-Id: <6bee56dd62ad755fdaa41b60fedcfd50082ac6ad.1763569135.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1763569135.git.teddy.astie@vates.tech>
References: <cover.1763569135.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.518358f759774a67b695c403d1301a41?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251120:md
Date: Thu, 20 Nov 2025 11:10:02 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

PV-IOMMU requires a lookup implementation to behave properly, provide one.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v7: introduced
---
 xen/drivers/passthrough/amd/iommu.h         |  2 +
 xen/drivers/passthrough/amd/iommu_map.c     | 90 +++++++++++++++++++++
 xen/drivers/passthrough/amd/pci_amd_iommu.c |  1 +
 3 files changed, 93 insertions(+)

diff --git a/xen/drivers/passthrough/amd/iommu.h b/xen/drivers/passthrough/amd/iommu.h
index 0bd0f15a72..de1442af1b 100644
--- a/xen/drivers/passthrough/amd/iommu.h
+++ b/xen/drivers/passthrough/amd/iommu.h
@@ -202,6 +202,8 @@ int __must_check cf_check amd_iommu_map_page(
 int __must_check cf_check amd_iommu_unmap_page(
     struct domain *d, dfn_t dfn, unsigned int order,
     unsigned int *flush_flags, struct iommu_context *ctx);
+int cf_check amd_iommu_lookup_page(struct domain *d, dfn_t dfn, mfn_t *mfn,
+                                   unsigned int *flags, struct iommu_context *ctx);
 int amd_iommu_reserve_domain_unity_map(struct domain *d, struct iommu_context *ctx,
                                        const struct ivrs_unity_map *map,
                                        unsigned int flag);
diff --git a/xen/drivers/passthrough/amd/iommu_map.c b/xen/drivers/passthrough/amd/iommu_map.c
index 01b36fdf4f..82f8eb85c8 100644
--- a/xen/drivers/passthrough/amd/iommu_map.c
+++ b/xen/drivers/passthrough/amd/iommu_map.c
@@ -622,6 +622,96 @@ int cf_check amd_iommu_flush_iotlb_pages(
     return 0;
 }
 
+static int lookup_pagewalk(struct page_info *table, dfn_t dfn, unsigned long level,
+                           mfn_t *mfn, unsigned int *flags)
+{
+    int rc = 0;
+    union amd_iommu_pte entry, *pagetable;
+
+    pagetable = __map_domain_page(table);
+    if ( !pagetable )
+        return -ENOMEM;
+
+    entry = pagetable[pfn_to_pde_idx(dfn_x(dfn), level)];
+
+    if ( !entry.pr || WARN_ON(!entry.mfn) )
+    {
+        /* Missing mapping has no flag. */
+        *flags = 0;
+        rc = -ENOENT;
+        goto out;
+    }
+
+    /*
+     * AMD-Vi Specification, 2.2.3 I/O Page Tables for Host Translations
+     *
+     * Effective write permission is calculated using the IW(resp IR) bits in the DTE,
+     * the I/O PDEs, and the I/O PTE. At each step of the translation process,
+     * I/O write permission (IW) bits (resp IR) from fetched page table entries are
+     * logically ANDed into cumulative I/O write permissions for the translation
+     * including the IW (resp IR) bit in the DTE.
+     */
+
+    if ( !entry.ir )
+        *flags &= ~IOMMUF_readable;
+
+    if ( !entry.iw )
+        *flags &= ~IOMMUF_writable;
+
+    if ( entry.next_level )
+    {
+        /* Go to the next mapping */
+        if ( WARN_ON(entry.next_level >= level) )
+        {
+            rc = -EILSEQ;
+            goto out;
+        }
+
+        unmap_domain_page(pagetable);
+        return lookup_pagewalk(mfn_to_page(_mfn(entry.mfn)), dfn, entry.next_level,
+                               mfn, flags);
+    }
+    else
+    {
+        /*
+         * Terminal mapping (either superpage or PTE). Compute that by combining entry
+         * address with dfn (for taking account of sub-entry frames in case of a superpage).
+         */
+        *mfn = _mfn(entry.mfn |
+               (dfn_x(dfn) & ((1ULL << ((level - 1) * PTE_PER_TABLE_SHIFT)) - 1)));
+    }
+
+out:
+    unmap_domain_page(pagetable);
+    return rc;
+}
+
+int cf_check amd_iommu_lookup_page(struct domain *d, dfn_t dfn, mfn_t *mfn,
+                                   unsigned int *flags, struct iommu_context *ctx)
+{
+    struct page_info *root_table;
+    unsigned long level;
+
+    if ( ctx->opaque )
+        return -EOPNOTSUPP;
+
+    if ( !ctx->arch.amd.root_table )
+        return -ENOENT;
+
+    root_table = ctx->arch.amd.root_table;
+    level = dom_iommu(d)->arch.amd.paging_mode;
+
+    if ( dfn_x(dfn) >> (PTE_PER_TABLE_SHIFT * level) )
+        return -ENOENT;
+
+    /*
+     * We initially consider the page writable and readable, lookup_pagewalk will
+     * remove these flags if it is not actually the case.
+     */
+    *flags |= IOMMUF_writable | IOMMUF_readable;
+    return lookup_pagewalk(root_table, dfn, level, mfn, flags);
+}
+
 int amd_iommu_reserve_domain_unity_map(struct domain *d, struct iommu_context *ctx,
                                        const struct ivrs_unity_map *map,
                                        unsigned int flag)
diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/passthrough/amd/pci_amd_iommu.c
index 3c17d78caf..3d08a925d6 100644
--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
+++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
@@ -732,6 +732,7 @@ static const struct iommu_ops __initconst_cf_clobber _iommu_ops = {
     .suspend = amd_iommu_suspend,
     .resume = amd_iommu_resume,
     .crash_shutdown = amd_iommu_crash_shutdown,
+    .lookup_page = amd_iommu_lookup_page,
     .get_reserved_device_memory = amd_iommu_get_reserved_device_memory,
     .dump_page_tables = amd_dump_page_tables,
     .quiesce = amd_iommu_quiesce,
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 11:10:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 11:10:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166871.1493378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2YD-0004op-2j; Thu, 20 Nov 2025 11:10:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166871.1493378; Thu, 20 Nov 2025 11: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 1vM2YC-0004oA-Rp; Thu, 20 Nov 2025 11:10:08 +0000
Received: by outflank-mailman (input) for mailman id 1166871;
 Thu, 20 Nov 2025 11:10:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x2SP=54=bounce.vates.tech=bounce-md_30504962.691ef70b.v1-333301a5be55468c8714a95308cc1089@srs-se1.protection.inumbo.net>)
 id 1vM2YA-0001PI-HQ
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 11:10:06 +0000
Received: from mail128-17.atl41.mandrillapp.com
 (mail128-17.atl41.mandrillapp.com [198.2.128.17])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 773bb9eb-c601-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 12:10:05 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4dBwcC6CBBzCf9RNt
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 11:10:03 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 333301a5be55468c8714a95308cc1089; Thu, 20 Nov 2025 11: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: 773bb9eb-c601-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763637003; x=1763907003;
	bh=OapH2MHIAp2S9SzCUt8Ia8Mv+id8AIAMINW1iJ5dAfE=;
	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=Jp2p+1KeTvywnHXgSG0oxl/a8lGjcpFy4rFBghie0PnFIpRiZQt2WTeyhgwqzDJ6F
	 avpDRRFEqFc/SUEyQ2wlZVj0FVpTf4RYBAtBPkcSyY6+7PdQVViToBCCwQjp0HKMJ9
	 ePzbvESK6hKxEz27HGxiDUMVBZS+ctvcXKXFxawAY+oQB+M5USMIG8rBOaJwcnSetp
	 cT9sAvA2wssSrckTqRaTFJQirtUhLOCIL10/2hK61Gyrt/+cVSptA/CaCvN8Wj75Zt
	 BPekcCwXMJOWpXgrMHllpM3QBrbFKUbx3fwtGc15rmXJXZpqactD94qJnfAaM/DjJl
	 IRsU4Zc6Ye+fQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763637003; x=1763897503; i=teddy.astie@vates.tech;
	bh=OapH2MHIAp2S9SzCUt8Ia8Mv+id8AIAMINW1iJ5dAfE=;
	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=uO4O5eVg6yTsY160J+28UUzEm9nDlhADy386XkTaha/1jnjIwd6dbf6QVg9RYngng
	 cgYD3VSNGu1Da16Va2ehHUpwl7bwUX+8wMeJ/xG3TcJnimAZ3uS0dIbmPRcIy5HItu
	 31KGPrUZR1menlWjhGIaXOAN57oyI9rRUYDpfuNuSXnJyS6ncrXvFKr2GQ1OOsE4OV
	 v3kwkXw6vdT+r/6YYTXMqtihg4XYfPZlHCGsO8gAB4ev5vvGZxFddhGA1y261uIorY
	 fU7LnQe0P3aZ6WcdT6meFh8dzKLarsZkAhDv6k04j2x6rQCguwqCUS681g1ggvQTvQ
	 A0camm/PTgl5g==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=20v7=2011/14]=20iommu:=20Introduce=20iommu=5Fget=5Fmax=5Fiova?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763637002749
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>, "Jason Andryuk" <jason.andryuk@amd.com>
Message-Id: <a7541fa86390a281a301942487e2518262524f60.1763569135.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1763569135.git.teddy.astie@vates.tech>
References: <cover.1763569135.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.333301a5be55468c8714a95308cc1089?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251120:md
Date: Thu, 20 Nov 2025 11:10:03 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Provide a way to know what maximum IOVA is usable for DMA.
This will be later used by PV-IOMMU to provide limits to guest.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v7: introduced
---
 xen/drivers/passthrough/amd/pci_amd_iommu.c | 15 +++++++++++++++
 xen/drivers/passthrough/iommu.c             | 10 ++++++++++
 xen/drivers/passthrough/vtd/iommu.c         |  8 ++++++++
 xen/include/xen/iommu.h                     |  3 +++
 4 files changed, 36 insertions(+)

diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/passthrough/amd/pci_amd_iommu.c
index 3d08a925d6..4185e4cd64 100644
--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
+++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
@@ -706,6 +706,20 @@ static void cf_check amd_dump_page_tables(struct domain *d)
     }
 }
 
+static uint64_t cf_check amd_iommu_get_max_iova(struct domain *d)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+    unsigned int bits = 12 + hd->arch.amd.paging_mode * 9;
+
+    /* If paging_mode == 6, which indicates 6-level page tables,
+       we have bits == 66 while the GPA space is still 64-bits
+     */
+    if (bits >= 64)
+        return ~0LLU;
+
+    return (1LLU << bits) - 1;
+}
+
 static const struct iommu_ops __initconst_cf_clobber _iommu_ops = {
     .page_sizes = PAGE_SIZE_4K | PAGE_SIZE_2M | PAGE_SIZE_1G,
     .init = amd_iommu_domain_init,
@@ -736,6 +750,7 @@ static const struct iommu_ops __initconst_cf_clobber _iommu_ops = {
     .get_reserved_device_memory = amd_iommu_get_reserved_device_memory,
     .dump_page_tables = amd_dump_page_tables,
     .quiesce = amd_iommu_quiesce,
+    .get_max_iova = amd_iommu_get_max_iova,
 };
 
 static const struct iommu_init_ops __initconstrel _iommu_init_ops = {
diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
index feda2e390b..4434a9dcd0 100644
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -1229,6 +1229,16 @@ bool iommu_has_feature(struct domain *d, enum iommu_feature feature)
     return is_iommu_enabled(d) && test_bit(feature, dom_iommu(d)->features);
 }
 
+uint64_t iommu_get_max_iova(struct domain *d)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+
+    if ( !hd->platform_ops->get_max_iova )
+        return 0;
+
+    return iommu_call(hd->platform_ops, get_max_iova, d);
+}
+
 #define MAX_EXTRA_RESERVED_RANGES 20
 struct extra_reserved_range {
     unsigned long start;
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index a602edd755..af3c6fb178 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -2595,6 +2595,13 @@ static int cf_check intel_iommu_remove_devfn(struct domain *d, struct pci_dev *p
     return unapply_context_single(d, drhd->iommu, prev_ctx, pdev->bus, devfn);
 }
 
+static uint64_t cf_check intel_iommu_get_max_iova(struct domain *d)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+
+    return (1LLU << agaw_to_width(hd->arch.vtd.agaw)) - 1;
+}
+
 static void cf_check vtd_quiesce(void)
 {
     const struct acpi_drhd_unit *drhd;
@@ -2644,6 +2651,7 @@ static const struct iommu_ops __initconst_cf_clobber vtd_ops = {
     .get_reserved_device_memory = intel_iommu_get_reserved_device_memory,
     .dump_page_tables = vtd_dump_page_tables,
     .quiesce = vtd_quiesce,
+    .get_max_iova = intel_iommu_get_max_iova,
 };
 
 const struct iommu_init_ops __initconstrel intel_iommu_init_ops = {
diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
index 8c20f575ee..66951c9809 100644
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -403,6 +403,9 @@ struct iommu_ops {
 #endif
     /* Inhibit all interrupt generation, to be used at shutdown. */
     void (*quiesce)(void);
+
+    /* Get maximum domain device address (IOVA). */
+    uint64_t (*get_max_iova)(struct domain *d);
 };
 
 /*
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 11:10:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 11:10:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166879.1493395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2YG-0005hv-IZ; Thu, 20 Nov 2025 11:10:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166879.1493395; Thu, 20 Nov 2025 11: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 1vM2YG-0005gs-As; Thu, 20 Nov 2025 11:10:12 +0000
Received: by outflank-mailman (input) for mailman id 1166879;
 Thu, 20 Nov 2025 11:10: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=mqCo=54=bounce.vates.tech=bounce-md_30504962.691ef70f.v1-e256d5f039384ed8a42fd4c1aa3b0daf@srs-se1.protection.inumbo.net>)
 id 1vM2YE-0001P8-70
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 11:10:10 +0000
Received: from mail180-15.suw31.mandrillapp.com
 (mail180-15.suw31.mandrillapp.com [198.2.180.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 78f00f05-c601-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 12:10:08 +0100 (CET)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-15.suw31.mandrillapp.com (Mailchimp) with ESMTP id
 4dBwcH1sDpzPm0bxt
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 11:10:07 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 e256d5f039384ed8a42fd4c1aa3b0daf; Thu, 20 Nov 2025 11: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: 78f00f05-c601-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763637007; x=1763907007;
	bh=1JvgRf0rexS39lvXSQ6h0vAJOtgrDkxsYnUvnyHod10=;
	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=1wD2iR8HuZyStwZtwpeBjEqMxgilcuNR1GImEOBdsTUU9g7ZdkGB3MGBaHG8UIJ9t
	 bq1QSpMdo+bb0/lBDRUliTCyv/BRQrQy6qRMKn3D3MKjFMpUKQU2udDJ9xhXtPTeR0
	 C/8GYqybRlrkBWT9cMT694PBoD2dhxhJMzoZVqIfkFJaFjPGJW41Emqy8SlI4+Tlvz
	 PFVus8lk/J75MrBPY7IQ8MPi1JfPX+H4vi02RpmdRCC3UDLKbLvMDRI45hj8X1xw+K
	 MSnSCGQemhbymieRs2tQQfx1nDtl+5xltJi513N1kUqz43lRKSNI8C/Q7cB8tfPH0l
	 BgqzyZZEw3ypQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763637007; x=1763897507; i=teddy.astie@vates.tech;
	bh=1JvgRf0rexS39lvXSQ6h0vAJOtgrDkxsYnUvnyHod10=;
	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=SPNktnjj9asuiNq2pvXHP4WmqwJWKdU1aTRYBphxZuIjRTVH/HZfDuVK/R2YdmnBM
	 2rwV5EU7Rwag2xAzuVFJktnqGG6+wOuCcDJONQqJkclQEA/vJ5x7qbZKrz00Opktc8
	 Q9Oh+wmTwCkcYHC1Bso3Eg3SpiczXXh84Bzb9c2gtth3zbhV/5C31deym9YxOy+2vq
	 PycWM6u+9RhUy0RbNm/wyPt4v/RRVSr+tfherFU6pEVxoYhI1hieReDBCCpUw2/pye
	 6gDCoepM0SxhasP/f86WiddSe9tZbeNY3pDw3MXSSV9qAmn10uRwefyagTD6wMHQhM
	 qC8rzshe9QiTg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=20v7=2014/14]=20iommu:=20Introduce=20no-dma=20feature?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763637006009
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>
Message-Id: <6e1cb09c1543e9f2ca913f1cb6eecaaca7b7a13b.1763569135.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1763569135.git.teddy.astie@vates.tech>
References: <cover.1763569135.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.e256d5f039384ed8a42fd4c1aa3b0daf?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251120:md
Date: Thu, 20 Nov 2025 11:10:07 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This feature exposed through `dom0-iommu=no-dma` prevents the devices
of default context to have access to domain's memory.
This basically enforces DMA protection by default. The domain will
need to prepare a specific IOMMU context to do DMA.

This feature needs the guest to provide a PV-IOMMU driver.

Signed-off-by Teddy Astie <teddy.astie@vates.tech>
---
 docs/misc/xen-command-line.pandoc   | 16 +++++++++++++++-
 xen/arch/x86/x86_64/mm.c            |  3 ++-
 xen/common/pv-iommu.c               |  3 +++
 xen/drivers/passthrough/iommu.c     | 13 +++++++++++++
 xen/drivers/passthrough/x86/iommu.c |  4 ++++
 xen/include/xen/iommu.h             |  3 +++
 6 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 34004ce282..b528f626a7 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -941,7 +941,7 @@ is necessary to fix an issue, please report a bug.
 
 ### dom0-iommu
     = List of [ passthrough=<bool>, strict=<bool>, map-inclusive=<bool>,
-                map-reserved=<bool>, none ]
+                map-reserved=<bool>, dma=<bool>, none ]
 
 Controls for the dom0 IOMMU setup.
 
@@ -992,6 +992,20 @@ Controls for the dom0 IOMMU setup.
     subset of the correction by only mapping reserved memory regions rather
     than all non-RAM regions.
 
+*   The `dma` option determines if the IOMMU is configured to identity map
+    the "default IOMMU context". If set to false, all devices of the Dom0 get
+    their DMA blocked until the IOMMU is properly configured by the guest (aside
+    special reserved regions).
+
+    Disabling this can slightly improve performance by removing the need to synchronize
+    p2m modifications with the IOMMU subsystem, moreover, disabling it provides DMA
+    protection that some operating systems can expect in order to securely handle some
+    devices (e.g Thunderbolt).
+
+    Disabling this requires guest support for PV-IOMMU for devices to behave properly.
+
+    This option is enabled by default.
+
 *   The `none` option is intended for development purposes only, and skips
     certain safety checks pertaining to the correct IOMMU configuration for
     dom0 to boot.
diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
index d4e6a9c0a2..00ff5d0b71 100644
--- a/xen/arch/x86/x86_64/mm.c
+++ b/xen/arch/x86/x86_64/mm.c
@@ -1315,7 +1315,8 @@ int memory_add(unsigned long spfn, unsigned long epfn, unsigned int pxm)
      */
     if ( is_iommu_enabled(hardware_domain) &&
          !iommu_use_hap_pt(hardware_domain) &&
-         !need_iommu_pt_sync(hardware_domain) )
+         !need_iommu_pt_sync(hardware_domain) &&
+         !iommu_hwdom_no_dma )
     {
         for ( i = spfn; i < epfn; i++ )
             if ( iommu_legacy_map(hardware_domain, _dfn(i), _mfn(i),
diff --git a/xen/common/pv-iommu.c b/xen/common/pv-iommu.c
index 4cdb30a031..a1d0552a66 100644
--- a/xen/common/pv-iommu.c
+++ b/xen/common/pv-iommu.c
@@ -107,6 +107,9 @@ static long capabilities_op(struct pv_iommu_capabilities *cap, struct domain *d)
     cap->max_pasid = 0; /* TODO */
     cap->cap_flags = 0;
 
+    if ( !dom_iommu(d)->no_dma )
+        cap->cap_flags |= IOMMUCAP_default_identity;
+
     cap->pgsize_mask = PAGE_SIZE_4K;
 
     return 0;
diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
index 5c6b272697..81d4cb87cf 100644
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -55,6 +55,7 @@ static bool __hwdom_initdata iommu_hwdom_none;
 bool __hwdom_initdata iommu_hwdom_strict;
 bool __read_mostly iommu_hwdom_passthrough;
 bool __hwdom_initdata iommu_hwdom_inclusive;
+bool __read_mostly iommu_hwdom_no_dma = false;
 int8_t __hwdom_initdata iommu_hwdom_reserved = -1;
 
 #ifndef iommu_hap_pt_share
@@ -172,6 +173,8 @@ static int __init cf_check parse_dom0_iommu_param(const char *s)
             iommu_hwdom_reserved = val;
         else if ( !cmdline_strcmp(s, "none") )
             iommu_hwdom_none = true;
+        else if ( (val = parse_boolean("dma", s, ss)) >= 0 )
+            iommu_hwdom_no_dma = !val;
         else
             rc = -EINVAL;
 
@@ -292,7 +295,10 @@ int iommu_domain_init(struct domain *d, unsigned int opts)
     int ret = 0;
 
     if ( is_hardware_domain(d) )
+    {
         check_hwdom_reqs(d); /* may modify iommu_hwdom_strict */
+        hd->no_dma = iommu_hwdom_no_dma;
+    }
 
     if ( !is_iommu_enabled(d) )
         return 0;
@@ -329,6 +335,13 @@ int iommu_domain_init(struct domain *d, unsigned int opts)
     if ( !is_hardware_domain(d) || iommu_hwdom_strict )
         hd->need_sync = !iommu_use_hap_pt(d);
 
+    if ( hd->no_dma )
+    {
+        /* No-DMA mode is exclusive with HAP and sync_pt. */
+        hd->hap_pt_share = false;
+        hd->need_sync = false;
+    }
+
     ASSERT(!(hd->need_sync && hd->hap_pt_share));
 
     hd->allow_pv_iommu = true;
diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c
index ac339a2ed3..b100c55e69 100644
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -542,6 +542,10 @@ void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
     if ( iommu_hwdom_reserved == -1 )
         iommu_hwdom_reserved = 1;
 
+    if ( iommu_hwdom_no_dma )
+        /* Skip special mappings with no-dma mode */
+        return;
+
     if ( iommu_hwdom_inclusive )
     {
         printk(XENLOG_WARNING
diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
index 3c77dfaf41..55bd9c9704 100644
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -108,6 +108,7 @@ extern bool iommu_debug;
 extern bool amd_iommu_perdev_intremap;
 
 extern bool iommu_hwdom_strict, iommu_hwdom_passthrough, iommu_hwdom_inclusive;
+extern bool iommu_hwdom_no_dma;
 extern int8_t iommu_hwdom_reserved;
 
 extern unsigned int iommu_dev_iotlb_timeout;
@@ -487,6 +488,8 @@ struct domain_iommu {
     /* SAF-2-safe enum constant in arithmetic operation */
     DECLARE_BITMAP(features, IOMMU_FEAT_count);
 
+    /* Do the IOMMU block all DMA on default context (implies !has_pt_share) ? */
+    bool no_dma;
 
     /* Is the domain allowed to use PV-IOMMU ? */
     bool allow_pv_iommu;
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 11:14:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 11:14:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1166982.1493405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2bt-00013M-4k; Thu, 20 Nov 2025 11:13:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1166982.1493405; Thu, 20 Nov 2025 11:13: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 1vM2bt-00013A-1P; Thu, 20 Nov 2025 11:13:57 +0000
Received: by outflank-mailman (input) for mailman id 1166982;
 Thu, 20 Nov 2025 11:13: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=NE5L=54=bounce.vates.tech=bounce-md_30504962.691ef70e.v1-88d1e4a663ac4727b5f279336b0d5faf@srs-se1.protection.inumbo.net>)
 id 1vM2YE-0001PI-IZ
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 11:10:10 +0000
Received: from mail128-17.atl41.mandrillapp.com
 (mail128-17.atl41.mandrillapp.com [198.2.128.17])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 788e0caf-c601-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 12:10:06 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4dBwcG4z7NzCf9P1H
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 11:10:06 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 88d1e4a663ac4727b5f279336b0d5faf; Thu, 20 Nov 2025 11:10: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: 788e0caf-c601-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763637006; x=1763907006;
	bh=c/JljpXkKEnMLI4s/6MD5SMOH2GQOJrsu01e1YgqiEs=;
	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=ymzj/HXOkuTCq1wb2WeX2Ao5eeu0Oi/3/LBM6D0Fj7WNYd2vXRUoSGtX6qsCxFhK8
	 oCcqQ6TBdxIoUjXev8X8Ny/sy1Zl+mUW9Ycrk2J+v/KD1i9w4kzUrwDCvLAHp4jvw7
	 wbTQMJsnRl7qitnXEitp0zarhc7Rbi+Y6d2MEfPi+DqfRxbzlaYsc8o6A67KldW8Kv
	 uN8tyQZubk0v/OsnXMDDIyT38LT+Qd6u8PFmx6411+zAv5Ifi325+r4Jk4lZ2dfJ6b
	 CNeQiWEOcs0UKyi6192kQd5zmrHyyiVqPxuTIpuqmqQzI75B3VJuu9BKtsvNDfavIU
	 gYmdp0XlqRlpA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763637006; x=1763897506; i=teddy.astie@vates.tech;
	bh=c/JljpXkKEnMLI4s/6MD5SMOH2GQOJrsu01e1YgqiEs=;
	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=N0NEkiqt086+XFv0AB6djIFsDHrzq5eOY8FZQkn/UhEI4yZvLGEAV8++vBIBFbJ9A
	 0OCMBDGWTE7rER6K3lZvvukE7xTpXA8QWImSDinoWWAELYije6Nq9sMkT7dJGjW0sc
	 OuaAQ38/BkHZM5JGBXarfSLu7j7QSNdiO+mZtDKxxunaoDwHoiNsz1lo0D2PwAnz/n
	 4V9sSvhF6SVlTG+nbih67GHTH+v560xQpbDTr/AVMmfTn695ERmiWDCui1cUbmQrg/
	 ojd3nLFUZ6mO+CIOgapRzxWbgAI77TBysSc/jOhJjSdf6jzmvNN0KcUNJBRaZdePw0
	 xt+w7pYK/tVWg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=20v7=2013/14]=20iommu:=20Introduce=20PV-IOMMU?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763637005106
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>
Message-Id: <73a34b0236aec756738e0073b75495dcb214a74b.1763569135.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1763569135.git.teddy.astie@vates.tech>
References: <cover.1763569135.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.88d1e4a663ac4727b5f279336b0d5faf?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251120:md
Date: Thu, 20 Nov 2025 11:10:06 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Introduce the PV-IOMMU subsystem as defined in docs/designs/pv-iommu.md.

Signed-off-by Teddy Astie <teddy.astie@vates.tech>
---
 xen/arch/x86/include/asm/iommu.h    |   5 +-
 xen/common/Makefile                 |   1 +
 xen/common/pv-iommu.c               | 551 ++++++++++++++++++++++++++++
 xen/drivers/passthrough/iommu.c     |  95 +++++
 xen/drivers/passthrough/x86/iommu.c |  61 ++-
 xen/include/hypercall-defs.c        |   6 +
 xen/include/public/pv-iommu.h       | 343 +++++++++++++++++
 xen/include/public/xen.h            |   1 +
 xen/include/xen/iommu.h             |   9 +
 9 files changed, 1066 insertions(+), 6 deletions(-)
 create mode 100644 xen/common/pv-iommu.c
 create mode 100644 xen/include/public/pv-iommu.h

diff --git a/xen/arch/x86/include/asm/iommu.h b/xen/arch/x86/include/asm/iommu.h
index 452b98b42d..c1d19baa13 100644
--- a/xen/arch/x86/include/asm/iommu.h
+++ b/xen/arch/x86/include/asm/iommu.h
@@ -136,6 +136,9 @@ int iommu_identity_mapping(struct domain *d, struct iommu_context *ctx,
                            p2m_access_t p2ma, paddr_t base, paddr_t end,
                            unsigned int flag);
 void iommu_identity_map_teardown(struct domain *d, struct iommu_context *ctx);
+bool iommu_identity_map_check(struct domain *d, struct iommu_context *ctx,
+                              mfn_t mfn);
+
 
 extern bool untrusted_msi;
 
@@ -151,7 +154,7 @@ unsigned long *iommu_init_domid(domid_t reserve);
 domid_t iommu_alloc_domid(unsigned long *map);
 void iommu_free_domid(domid_t domid, unsigned long *map);
 
-int __must_check iommu_free_pgtables(struct domain *d, struct iommu_context *ctx);
+int __must_check cf_check iommu_free_pgtables(struct domain *d, struct iommu_context *ctx);
 struct domain_iommu;
 struct page_info *__must_check iommu_alloc_pgtable(struct domain_iommu *hd,
                                                    struct iommu_context *ctx,
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 0c7d0f5d46..e2180b382e 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -39,6 +39,7 @@ obj-y += percpu.o
 obj-$(CONFIG_PERF_COUNTERS) += perfc.o
 obj-bin-$(CONFIG_HAS_PMAP) += pmap.init.o
 obj-y += preempt.o
+obj-y += pv-iommu.o
 obj-y += random.o
 obj-y += rangeset.o
 obj-y += radix-tree.o
diff --git a/xen/common/pv-iommu.c b/xen/common/pv-iommu.c
new file mode 100644
index 0000000000..4cdb30a031
--- /dev/null
+++ b/xen/common/pv-iommu.c
@@ -0,0 +1,551 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * xen/common/pv_iommu.c
+ *
+ * PV-IOMMU hypercall interface.
+ */
+
+#include <xen/errno.h>
+#include <xen/mm.h>
+#include <xen/lib.h>
+#include <xen/iommu.h>
+#include <xen/sched.h>
+#include <xen/iocap.h>
+#include <xen/mm-frame.h>
+#include <xen/pci.h>
+#include <xen/guest_access.h>
+#include <asm/p2m.h>
+#include <asm/event.h>
+#include <asm/mm.h>
+#include <asm/iommu.h>
+#include <public/pv-iommu.h>
+
+#define PVIOMMU_PREFIX "[PV-IOMMU] "
+
+static int get_paged_frame(struct domain *d, gfn_t gfn, mfn_t *mfn,
+                           struct page_info **page, bool readonly)
+{
+    int ret = 0;
+    p2m_type_t p2mt = p2m_invalid;
+
+    #ifdef CONFIG_X86
+    p2m_query_t query = P2M_ALLOC;
+
+    if ( !readonly )
+        query |= P2M_UNSHARE;
+
+    *mfn = get_gfn_type(d, gfn_x(gfn), &p2mt, query);
+    #else
+    *mfn = p2m_lookup(d, gfn, &p2mt);
+    #endif
+
+    if ( mfn_eq(*mfn, INVALID_MFN) )
+    {
+        /* No mapping ? */
+        gprintk(XENLOG_G_WARNING, PVIOMMU_PREFIX
+                "Trying to map to non-backed page frame (gfn=%"PRI_gfn" p2mt=%d)\n",
+                gfn_x(gfn), p2mt);
+
+        ret = -ENOENT;
+    }
+    else if ( p2m_is_any_ram(p2mt) && mfn_valid(*mfn) )
+    {
+        struct domain *owner;
+
+        *page = mfn_to_page(*mfn);
+        owner = page_get_owner_and_reference(*page);
+        if ( !owner || (owner != d && !is_hardware_domain(d)) )
+        {
+            /* TODO: foreign mappings when d is not privileged ? */
+            put_page(*page);
+            *page = NULL;
+            return -EPERM;
+        }
+        ret = 0;
+    }
+    else if ( p2m_is_mmio(p2mt) ||
+              iomem_access_permitted(d, mfn_x(*mfn),mfn_x(*mfn)) )
+    {
+        *page = NULL;
+        ret = 0;
+    }
+    else
+    {
+        gprintk(XENLOG_WARNING, PVIOMMU_PREFIX
+                "Unexpected p2mt %d (gfn=%"PRI_gfn" mfn=%"PRI_mfn")\n",
+                p2mt, gfn_x(gfn), mfn_x(*mfn));
+
+        ret = -EPERM;
+    }
+
+    put_gfn(d, gfn_x(gfn));
+    return ret;
+}
+
+static bool can_use_iommu_check(struct domain *d)
+{
+    if ( !is_iommu_enabled(d) )
+    {
+        gprintk(XENLOG_WARNING, PVIOMMU_PREFIX "IOMMU disabled for this domain\n");
+        return false;
+    }
+
+    if ( !dom_iommu(d)->allow_pv_iommu )
+    {
+        gprintk(XENLOG_WARNING, PVIOMMU_PREFIX "PV-IOMMU disabled for this domain\n");
+        return false;
+    }
+
+    return true;
+}
+
+static long capabilities_op(struct pv_iommu_capabilities *cap, struct domain *d)
+{
+    cap->max_ctx_no = d->iommu.other_contexts.count;
+    cap->max_iova_addr = iommu_get_max_iova(d);
+
+    cap->max_pasid = 0; /* TODO */
+    cap->cap_flags = 0;
+
+    cap->pgsize_mask = PAGE_SIZE_4K;
+
+    return 0;
+}
+
+static long init_op(struct pv_iommu_init *init, struct domain *d)
+{
+    if (init->max_ctx_no == UINT32_MAX)
+        return -E2BIG;
+
+    return iommu_domain_pviommu_init(d, init->max_ctx_no + 1, init->arena_order);
+}
+
+static long alloc_context_op(struct pv_iommu_alloc *alloc, struct domain *d)
+{
+    uint16_t ctx_no = 0;
+    int status = 0;
+
+    status = iommu_context_alloc(d, &ctx_no, 0);
+
+    if ( status )
+        return status;
+
+    gprintk(XENLOG_INFO, PVIOMMU_PREFIX "Created IOMMU context %hu\n", ctx_no);
+
+    alloc->ctx_no = ctx_no;
+    return 0;
+}
+
+static long free_context_op(struct pv_iommu_free *free, struct domain *d)
+{
+    int flags = IOMMU_TEARDOWN_PREEMPT;
+
+    if ( !free->ctx_no )
+        return -EINVAL;
+
+    if ( free->free_flags & IOMMU_FREE_reattach_default )
+        flags |= IOMMU_TEARDOWN_REATTACH_DEFAULT;
+
+    return iommu_context_free(d, free->ctx_no, flags);
+}
+
+static long reattach_device_op(struct pv_iommu_reattach_device *reattach,
+                               struct domain *d)
+{
+    int ret;
+    device_t *pdev;
+    struct physdev_pci_device dev = reattach->dev;
+
+    pcidevs_lock();
+    pdev = pci_get_pdev(d, PCI_SBDF(dev.seg, dev.bus, dev.devfn));
+
+    if ( !pdev )
+    {
+        pcidevs_unlock();
+        return -ENODEV;
+    }
+
+    ret = iommu_reattach_context(d, d, pdev, reattach->ctx_no);
+
+    pcidevs_unlock();
+    return ret;
+}
+
+static long map_pages_op(struct pv_iommu_map_pages *map, struct domain *d)
+{
+    struct iommu_context *ctx;
+    int ret = 0, flush_ret;
+    struct page_info *page = NULL;
+    mfn_t mfn, mfn_lookup;
+    unsigned int lookup_flags, flags = 0, flush_flags = 0;
+    size_t i = 0;
+    dfn_t dfn0 = _dfn(map->dfn); /* original map->dfn */
+
+    if ( !map->ctx_no || !(ctx = iommu_get_context(d, map->ctx_no)) )
+        return -EINVAL;
+
+    if ( map->map_flags & IOMMU_MAP_readable )
+        flags |= IOMMUF_readable;
+
+    if ( map->map_flags & IOMMU_MAP_writeable )
+        flags |= IOMMUF_writable;
+
+    for (i = 0; i < map->nr_pages; i++)
+    {
+        gfn_t gfn = _gfn(map->gfn + i);
+        dfn_t dfn = _dfn(map->dfn + i);
+
+#ifdef CONFIG_X86
+        if ( iommu_identity_map_check(d, ctx, _mfn(map->dfn)) )
+        {
+            ret = -EADDRNOTAVAIL;
+            break;
+        }
+#endif
+
+        ret = get_paged_frame(d, gfn, &mfn, &page, 0);
+
+        if ( ret )
+            break;
+
+        /* Check for conflict with existing mappings */
+        if ( !iommu_lookup_page(d, dfn, &mfn_lookup, &lookup_flags, map->ctx_no) )
+        {
+            if ( page && mfn_valid(mfn) )
+                put_page(page);
+
+            ret = -EADDRINUSE;
+            break;
+        }
+
+        ret = iommu_map(d, dfn, mfn, 1, flags, &flush_flags, map->ctx_no);
+
+        if ( ret )
+        {
+            if ( page && mfn_valid(mfn) )
+                put_page(page);
+
+            break;
+        }
+
+        map->mapped++;
+
+        if ( (i & 0xff) && hypercall_preempt_check() )
+        {
+            i++;
+
+            map->gfn += i;
+            map->dfn += i;
+            map->nr_pages -= i;
+
+            ret = -ERESTART;
+            break;
+        }
+    }
+
+    flush_ret = iommu_iotlb_flush(d, dfn0, i, flush_flags, map->ctx_no);
+
+    iommu_put_context(ctx);
+
+    if ( flush_ret )
+        gprintk(XENLOG_G_WARNING, PVIOMMU_PREFIX
+                "Flush operation failed for %d (%d)\n", ctx->id, flush_ret);
+
+    return ret;
+}
+
+static long unmap_pages_op(struct pv_iommu_unmap_pages *unmap, struct domain *d)
+{
+    struct iommu_context *ctx;
+    mfn_t mfn;
+    int ret = 0, flush_ret;
+    unsigned int flags, flush_flags = 0;
+    size_t i = 0;
+    dfn_t dfn0 = _dfn(unmap->dfn); /* original unmap->dfn */
+
+    if ( !unmap->ctx_no || !(ctx = iommu_get_context(d, unmap->ctx_no)) )
+        return -EINVAL;
+
+    for (i = 0; i < unmap->nr_pages; i++)
+    {
+        dfn_t dfn = _dfn(unmap->dfn + i);
+
+#ifdef CONFIG_X86
+        if ( iommu_identity_map_check(d, ctx, _mfn(dfn_x(dfn))) )
+        {
+            ret = -EADDRNOTAVAIL;
+            break;
+        }
+#endif
+
+        /* Check if there is a valid mapping for this domain */
+        if ( iommu_lookup_page(d, dfn, &mfn, &flags, unmap->ctx_no) ) {
+            ret = -ENOENT;
+            break;
+        }
+
+        ret = iommu_unmap(d, dfn, 1, 0, &flush_flags, unmap->ctx_no);
+
+        if ( ret )
+            break;
+
+        unmap->unmapped++;
+
+        /* Decrement reference counter (if needed) */
+        if ( mfn_valid(mfn) )
+            put_page(mfn_to_page(mfn));
+
+        if ( (i & 0xff) && hypercall_preempt_check() )
+        {
+            i++;
+
+            unmap->dfn += i;
+            unmap->nr_pages -= i;
+
+            ret = -ERESTART;
+            break;
+        }
+    }
+
+    flush_ret = iommu_iotlb_flush(d, dfn0, i, flush_flags, unmap->ctx_no);
+
+    iommu_put_context(ctx);
+
+    if ( flush_ret )
+        printk(XENLOG_WARNING PVIOMMU_PREFIX
+               "Flush operation failed for c%d (%d)\n", ctx->id, flush_ret);
+
+    return ret;
+}
+
+static long do_iommu_subop(int subop, XEN_GUEST_HANDLE_PARAM(void) arg,
+                           struct domain *d, bool remote);
+
+static long remote_cmd_op(struct pv_iommu_remote_cmd *remote_cmd,
+                          struct domain *current_domain)
+{
+    long ret = 0;
+    struct domain *d;
+
+    /* TODO: use a better permission logic */
+    if ( !is_hardware_domain(current_domain) )
+        return -EPERM;
+
+    d = get_domain_by_id(remote_cmd->domid);
+
+    if ( !d )
+        return -ENOENT;
+
+    ret = do_iommu_subop(remote_cmd->subop, remote_cmd->arg, d, true);
+
+    put_domain(d);
+
+    return ret;
+}
+
+static long do_iommu_subop(int subop, XEN_GUEST_HANDLE_PARAM(void) arg,
+                           struct domain *d, bool remote)
+{
+    long ret = 0;
+
+    switch ( subop )
+    {
+        case IOMMU_noop:
+            break;
+
+        case IOMMU_query_capabilities:
+        {
+            struct pv_iommu_capabilities cap;
+
+            ret = capabilities_op(&cap, d);
+
+            if ( unlikely(copy_to_guest(arg, &cap, 1)) )
+                ret = -EFAULT;
+
+            break;
+        }
+
+        case IOMMU_init:
+        {
+            struct pv_iommu_init init;
+
+            if ( unlikely(copy_from_guest(&init, arg, 1)) )
+            {
+                ret = -EFAULT;
+                break;
+            }
+
+            ret = init_op(&init, d);
+            gdprintk(XENLOG_INFO, PVIOMMU_PREFIX "init -> %ld\n", ret);
+        }
+
+        case IOMMU_alloc_context:
+        {
+            struct pv_iommu_alloc alloc;
+
+            if ( unlikely(copy_from_guest(&alloc, arg, 1)) )
+            {
+                ret = -EFAULT;
+                break;
+            }
+
+            ret = alloc_context_op(&alloc, d);
+
+            if ( unlikely(copy_to_guest(arg, &alloc, 1)) )
+                ret = -EFAULT;
+
+            gdprintk(XENLOG_INFO, PVIOMMU_PREFIX
+                     "alloc_context(flags:%x) -> ctx_no: %d, ret=%ld\n",
+                     alloc.alloc_flags, alloc.ctx_no, ret);
+            break;
+        }
+
+        case IOMMU_free_context:
+        {
+            struct pv_iommu_free free;
+
+            if ( unlikely(copy_from_guest(&free, arg, 1)) )
+            {
+                ret = -EFAULT;
+                break;
+            }
+
+            ret = free_context_op(&free, d);
+            gdprintk(XENLOG_INFO, PVIOMMU_PREFIX
+                     "free_context(ctx_no:%d) -> %ld\n", free.ctx_no, ret);
+            break;
+        }
+
+        case IOMMU_reattach_device:
+        {
+            struct pv_iommu_reattach_device reattach;
+
+            if ( unlikely(copy_from_guest(&reattach, arg, 1)) )
+            {
+                ret = -EFAULT;
+                break;
+            }
+
+            ret = reattach_device_op(&reattach, d);
+            gdprintk(XENLOG_INFO, PVIOMMU_PREFIX
+                     "reattach(ctx_no:%d, bus:%02x, devfn:%2x) -> %ld\n",
+                     reattach.ctx_no, reattach.dev.bus, reattach.dev.devfn, ret);
+            break;
+        }
+
+        case IOMMU_map_pages:
+        {
+            struct pv_iommu_map_pages map;
+
+            if ( unlikely(copy_from_guest(&map, arg, 1)) )
+            {
+                ret = -EFAULT;
+                break;
+            }
+
+            ret = map_pages_op(&map, d);
+
+            if ( unlikely(copy_to_guest(arg, &map, 1)) )
+                ret = -EFAULT;
+
+            break;
+        }
+
+        case IOMMU_unmap_pages:
+        {
+            struct pv_iommu_unmap_pages unmap;
+
+            if ( unlikely(copy_from_guest(&unmap, arg, 1)) )
+            {
+                ret = -EFAULT;
+                break;
+            }
+
+            ret = unmap_pages_op(&unmap, d);
+
+            if ( unlikely(copy_to_guest(arg, &unmap, 1)) )
+                ret = -EFAULT;
+
+            break;
+        }
+
+        case IOMMU_remote_cmd:
+        {
+            struct pv_iommu_remote_cmd remote_cmd;
+
+            if ( remote )
+            {
+                /* Prevent remote_cmd from being called recursively */
+                ret = -EINVAL;
+                break;
+            }
+
+            if ( unlikely(copy_from_guest(&remote_cmd, arg, 1)) )
+            {
+                ret = -EFAULT;
+                break;
+            }
+
+            ret = remote_cmd_op(&remote_cmd, d);
+            break;
+        }
+
+        /*
+         * TODO
+         */
+        case IOMMU_alloc_nested:
+        {
+            ret = -EOPNOTSUPP;
+            break;
+        }
+
+        case IOMMU_flush_nested:
+        {
+            ret = -EOPNOTSUPP;
+            break;
+        }
+
+        case IOMMU_attach_pasid:
+        {
+            ret = -EOPNOTSUPP;
+            break;
+        }
+
+        case IOMMU_detach_pasid:
+        {
+            ret = -EOPNOTSUPP;
+            break;
+        }
+
+        default:
+            return -EOPNOTSUPP;
+    }
+
+    return ret;
+}
+
+long do_iommu_op(unsigned int subop, XEN_GUEST_HANDLE_PARAM(void) arg)
+{
+    long ret = 0;
+    struct domain *d = current->domain;
+
+    if ( !can_use_iommu_check(d) )
+        return -ENODEV;
+
+    ret = do_iommu_subop(subop, arg, d, false);
+
+    if ( ret == -ERESTART )
+        return hypercall_create_continuation(__HYPERVISOR_iommu_op, "ih", subop, arg);
+
+    return ret;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
index 4434a9dcd0..5c6b272697 100644
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -193,6 +193,99 @@ static void __hwdom_init check_hwdom_reqs(struct domain *d)
     arch_iommu_check_autotranslated_hwdom(d);
 }
 
+
+int iommu_domain_pviommu_init(struct domain *d, uint16_t nb_ctx, uint32_t arena_order)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+    int rc;
+
+    BUG_ON(nb_ctx == 0); /* sanity check (prevent underflow) */
+
+    /*
+     * hd->other_contexts.count is always reported as 0 during initialization
+     * preventing misuse of partially initialized IOMMU contexts.
+     */
+
+    if ( atomic_cmpxchg(&hd->other_contexts.initialized, 0, 1) == 1 )
+        return -EACCES;
+
+    if ( (nb_ctx - 1) > 0 ) {
+        /* Initialize context bitmap */
+        size_t i;
+
+        hd->other_contexts.bitmap = xzalloc_array(unsigned long,
+                                                  BITS_TO_LONGS(nb_ctx - 1));
+
+        if (!hd->other_contexts.bitmap)
+        {
+            rc = -ENOMEM;
+            goto cleanup;
+        }
+
+        hd->other_contexts.map = xzalloc_array(struct iommu_context, nb_ctx - 1);
+
+        if (!hd->other_contexts.map)
+        {
+            rc = -ENOMEM;
+            goto cleanup;
+        }
+
+        for (i = 0; i < (nb_ctx - 1); i++)
+            rspin_lock_init(&hd->other_contexts.map[i].lock);
+    }
+
+    rc = arch_iommu_pviommu_init(d, nb_ctx, arena_order);
+
+    if ( rc )
+        goto cleanup;
+
+    /* Make sure initialization is complete before making it visible to other CPUs. */
+    smp_wmb();
+
+    hd->other_contexts.count = nb_ctx - 1;
+
+    printk(XENLOG_INFO "Dom%d uses %lu IOMMU contexts (%llu pages arena)\n",
+           d->domain_id, (unsigned long)nb_ctx, 1llu << arena_order);
+
+    return 0;
+
+cleanup:
+    /* TODO: Reset hd->other_contexts.initialized */
+    if ( hd->other_contexts.bitmap )
+    {
+        xfree(hd->other_contexts.bitmap);
+        hd->other_contexts.bitmap = NULL;
+    }
+
+    if ( hd->other_contexts.map )
+    {
+        xfree(hd->other_contexts.map);
+        hd->other_contexts.bitmap = NULL;
+    }
+
+    return rc;
+}
+
+int iommu_domain_pviommu_teardown(struct domain *d)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+    int i;
+    /* FIXME: Potential race condition with remote_op ? */
+
+    for (i = 0; i < hd->other_contexts.count; i++)
+        WARN_ON(iommu_context_free(d, i, IOMMU_TEARDOWN_REATTACH_DEFAULT) != ENOENT);
+
+    hd->other_contexts.count = 0;
+
+    if ( hd->other_contexts.bitmap )
+        xfree(hd->other_contexts.bitmap);
+
+    if ( hd->other_contexts.map )
+        xfree(hd->other_contexts.map);
+
+    return 0;
+}
+
 int iommu_domain_init(struct domain *d, unsigned int opts)
 {
     struct domain_iommu *hd = dom_iommu(d);
@@ -238,6 +331,8 @@ int iommu_domain_init(struct domain *d, unsigned int opts)
 
     ASSERT(!(hd->need_sync && hd->hap_pt_share));
 
+    hd->allow_pv_iommu = true;
+
     rspin_lock(&hd->default_ctx.lock);
     ret = iommu_context_init(d, &hd->default_ctx, 0, IOMMU_CONTEXT_INIT_default);
     rspin_unlock(&hd->default_ctx.lock);
diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c
index d8becfa869..ac339a2ed3 100644
--- a/xen/drivers/passthrough/x86/iommu.c
+++ b/xen/drivers/passthrough/x86/iommu.c
@@ -215,6 +215,32 @@ int arch_iommu_context_teardown(struct domain *d, struct iommu_context *ctx, u32
     return 0;
 }
 
+int arch_iommu_pviommu_init(struct domain *d, uint16_t nb_ctx, uint32_t arena_order)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+
+    if ( arena_order == 0 )
+        return 0;
+
+    return iommu_arena_initialize(&hd->arch.pt_arena, NULL, arena_order, 0);
+}
+
+int arch_iommu_pviommu_teardown(struct domain *d)
+{
+    struct domain_iommu *hd = dom_iommu(d);
+
+    if ( iommu_arena_teardown(&hd->arch.pt_arena, true) )
+    {
+        printk(XENLOG_WARNING "IOMMU Arena used while being destroyed\n");
+        WARN();
+
+        /* Teardown anyway */
+        iommu_arena_teardown(&hd->arch.pt_arena, false);
+    }
+
+    return 0;
+}
+
 void arch_iommu_domain_destroy(struct domain *d)
 {
 }
@@ -394,6 +420,19 @@ void iommu_identity_map_teardown(struct domain *d, struct iommu_context *ctx)
     }
 }
 
+bool iommu_identity_map_check(struct domain *d, struct iommu_context *ctx,
+                              mfn_t mfn)
+{
+    struct identity_map *map;
+    uint64_t addr = pfn_to_paddr(mfn_x(mfn));
+
+    list_for_each_entry ( map, &ctx->arch.identity_maps, list )
+        if (addr >= map->base && addr < map->end)
+            return true;
+
+    return false;
+}
+
 struct handle_iomemcap {
     struct rangeset *r;
     unsigned long last;
@@ -648,7 +687,7 @@ void iommu_free_domid(domid_t domid, unsigned long *map)
         BUG();
 }
 
-int iommu_free_pgtables(struct domain *d, struct iommu_context *ctx)
+int cf_check iommu_free_pgtables(struct domain *d, struct iommu_context *ctx)
 {
     struct domain_iommu *hd = dom_iommu(d);
     struct page_info *pg;
@@ -665,7 +704,10 @@ int iommu_free_pgtables(struct domain *d, struct iommu_context *ctx)
 
     while ( (pg = page_list_remove_head(&ctx->arch.pgtables)) )
     {
-        free_domheap_page(pg);
+        if (ctx->id == 0)
+            free_domheap_page(pg);
+        else
+            iommu_arena_free_page(&hd->arch.pt_arena, pg);
 
         if ( !(++done & 0xff) && general_preempt_check() )
             return -ERESTART;
@@ -687,7 +729,11 @@ struct page_info *iommu_alloc_pgtable(struct domain_iommu *hd,
         memflags = MEMF_node(hd->node);
 #endif
 
-    pg = alloc_domheap_page(NULL, memflags);
+    if (ctx->id == 0)
+        pg = alloc_domheap_page(NULL, memflags);
+    else
+        pg = iommu_arena_allocate_page(&hd->arch.pt_arena);
+
     if ( !pg )
         return NULL;
 
@@ -766,9 +812,14 @@ void iommu_queue_free_pgtable(struct domain *d, struct iommu_context *ctx,
 
     page_list_del(pg, &ctx->arch.pgtables);
 
-    page_list_add_tail(pg, &per_cpu(free_pgt_list, cpu));
+    if ( !ctx->id )
+    {
+        page_list_add_tail(pg, &per_cpu(free_pgt_list, cpu));
 
-    tasklet_schedule(&per_cpu(free_pgt_tasklet, cpu));
+        tasklet_schedule(&per_cpu(free_pgt_tasklet, cpu));
+    }
+    else
+        iommu_arena_free_page(&dom_iommu(d)->arch.pt_arena, pg);
 }
 
 static int cf_check cpu_callback(
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index cef08eeec1..0cfda01094 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -213,6 +213,9 @@ hypfs_op(unsigned int cmd, const char *arg1, unsigned long arg2, void *arg3, uns
 #ifdef CONFIG_X86
 xenpmu_op(unsigned int op, xen_pmu_params_t *arg)
 #endif
+#ifdef CONFIG_HAS_PASSTHROUGH
+iommu_op(unsigned int subop, void *arg)
+#endif
 
 #ifdef CONFIG_PV
 caller: pv64
@@ -301,5 +304,8 @@ mca                                do       do       -        -        -
 #if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
 paging_domctl_cont                 do       do       do       do       -
 #endif
+#ifdef CONFIG_HAS_PASSTHROUGH
+iommu_op                           do       do       do       do       -
+#endif
 
 #endif /* !CPPCHECK */
diff --git a/xen/include/public/pv-iommu.h b/xen/include/public/pv-iommu.h
new file mode 100644
index 0000000000..6f50aea4b7
--- /dev/null
+++ b/xen/include/public/pv-iommu.h
@@ -0,0 +1,343 @@
+/* SPDX-License-Identifier: MIT */
+/**
+ * pv-iommu.h
+ *
+ * Paravirtualized IOMMU driver interface.
+ *
+ * Copyright (c) 2024 Teddy Astie <teddy.astie@vates.tech>
+ */
+
+#ifndef __XEN_PUBLIC_PV_IOMMU_H__
+#define __XEN_PUBLIC_PV_IOMMU_H__
+
+#include "xen.h"
+#include "physdev.h"
+
+#ifndef uint64_aligned_t
+#define uint64_aligned_t uint64_t
+#endif
+
+#define IOMMU_DEFAULT_CONTEXT (0)
+
+enum pv_iommu_cmd {
+    /* Basic cmd */
+    IOMMU_noop = 0,
+    IOMMU_query_capabilities = 1,
+    IOMMU_init = 2,
+    IOMMU_alloc_context = 3,
+    IOMMU_free_context = 4,
+    IOMMU_reattach_device = 5,
+    IOMMU_map_pages = 6,
+    IOMMU_unmap_pages = 7,
+    IOMMU_remote_cmd = 8,
+
+    /* Extended cmd */
+    IOMMU_alloc_nested = 9,      /* if IOMMUCAP_nested */
+    IOMMU_flush_nested = 10,     /* if IOMMUCAP_nested */
+    IOMMU_attach_pasid = 11,     /* if IOMMUCAP_pasid */
+    IOMMU_detach_pasid = 12,     /* if IOMMUCAP_pasid */
+};
+
+/**
+ * If set, default context allow DMA to domain memory.
+ * If cleared, default context blocks all DMA to domain memory.
+ */
+#define IOMMUCAP_default_identity  (1U << 0)
+
+/**
+ * IOMMU_MAP_cache support.
+ */
+#define IOMMUCAP_cache     (1U << 1)
+
+/**
+ * If set, IOMMU_alloc_nested and IOMMU_flush_nested are supported.
+ */
+#define IOMMUCAP_nested    (1U << 2)
+
+/**
+ * If set, IOMMU_attach_pasid and IOMMU_detach_pasid are supported and
+ * a device PASID can be specified in reattach_context.
+ */
+#define IOMMUCAP_pasid     (1U << 3)
+
+/**
+ * If set, IOMMU_ALLOC_identity is supported in pv_iommu_alloc.
+ */
+#define IOMMUCAP_identity  (1U << 4)
+
+/**
+ * IOMMU_query_capabilities
+ * Query PV-IOMMU capabilities for this domain.
+ */
+struct pv_iommu_capabilities {
+    /*
+     * OUT: Maximum device address (iova) that the guest can use for mappings.
+     */
+    uint64_aligned_t max_iova_addr;
+
+    /* OUT: IOMMU capabilities flags */
+    uint32_t cap_flags;
+
+    /* OUT: Mask of all supported page sizes. */
+    uint32_t pgsize_mask;
+
+    /* OUT: Maximum pasid (if IOMMUCAP_pasid) */
+    uint32_t max_pasid;
+
+    /* OUT: Maximum number of IOMMU context this domain can use. */
+    uint16_t max_ctx_no;
+
+    uint16_t pad0;
+};
+typedef struct pv_iommu_capabilities pv_iommu_capabilities_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_capabilities_t);
+
+/**
+ * IOMMU_init
+ * Initialize PV-IOMMU for this domain.
+ *
+ * Fails with -EACCESS if PV-IOMMU is already initialized.
+ */
+struct pv_iommu_init {
+    /* IN: Maximum number of IOMMU context this domain can use. */
+    uint32_t max_ctx_no;
+
+    /* IN: Arena size in pages (in power of two) */
+    uint32_t arena_order;
+};
+typedef struct pv_iommu_init pv_iommu_init_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_init_t);
+
+/**
+ * Create a 1:1 identity mapped context to domain memory
+ * (needs IOMMUCAP_identity).
+ */
+#define IOMMU_ALLOC_identity (1 << 0)
+
+/**
+ * IOMMU_alloc_context
+ * Allocate an IOMMU context.
+ * Fails with -ENOSPC if no context number is available.
+ */
+struct pv_iommu_alloc {
+    /* OUT: allocated IOMMU context number */
+    uint16_t ctx_no;
+
+    /* IN: allocation flags */
+    uint32_t alloc_flags;
+};
+typedef struct pv_iommu_alloc pv_iommu_alloc_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_alloc_t);
+
+/**
+ * Move all devices to default context before freeing the context.
+ */
+#define IOMMU_FREE_reattach_default (1 << 0)
+
+/**
+ * IOMMU_free_context
+ * Destroy a IOMMU context.
+ *
+ * If IOMMU_FREE_reattach_default is specified, move all context devices to
+ * default context before destroying this context.
+ *
+ * If there are devices in the context and IOMMU_FREE_reattach_default is not
+ * specified, fail with -EBUSY.
+ *
+ * The default context can't be destroyed.
+ */
+struct pv_iommu_free {
+    /* IN: IOMMU context number to free */
+    uint16_t ctx_no;
+
+    /* IN: Free operation specific flags */
+    uint32_t free_flags;
+};
+typedef struct pv_iommu_free pv_iommu_free_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_free_t);
+
+/* Device has read access */
+#define IOMMU_MAP_readable (1 << 0)
+
+/* Device has write access */
+#define IOMMU_MAP_writeable (1 << 1)
+
+/* Enforce DMA coherency */
+#define IOMMU_MAP_cache (1 << 2)
+
+/**
+ * IOMMU_map_pages
+ * Map pages on a IOMMU context.
+ *
+ * pgsize must be supported by pgsize_mask.
+ * Fails with -EINVAL if mapping on top of another mapping.
+ * Report actually mapped page count in mapped field (regardless of failure).
+ */
+struct pv_iommu_map_pages {
+    /* IN: IOMMU context number */
+    uint16_t ctx_no;
+
+    /* IN: Guest frame number */
+    uint64_aligned_t gfn;
+
+    /* IN: Device frame number */
+    uint64_aligned_t dfn;
+
+    /* IN: Map flags */
+    uint32_t map_flags;
+
+    /* IN: Size of pages to map */
+    uint32_t pgsize;
+
+    /* IN: Number of pages to map */
+    uint32_t nr_pages;
+
+    /* OUT: Number of pages actually mapped */
+    uint32_t mapped;
+};
+typedef struct pv_iommu_map_pages pv_iommu_map_pages_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_map_pages_t);
+
+/**
+ * IOMMU_unmap_pages
+ * Unmap pages on a IOMMU context.
+ *
+ * pgsize must be supported by pgsize_mask.
+ * Report actually unmapped page count in mapped field (regardless of failure).
+ * Fails with -ENOENT when attempting to unmap a page without any mapping
+ */
+struct pv_iommu_unmap_pages {
+    /* IN: IOMMU context number */
+    uint16_t ctx_no;
+
+    /* IN: Device frame number */
+    uint64_aligned_t dfn;
+
+    /* IN: Size of pages to unmap */
+    uint32_t pgsize;
+
+    /* IN: Number of pages to unmap */
+    uint32_t nr_pages;
+
+    /* OUT: Number of pages actually unmapped */
+    uint32_t unmapped;
+};
+typedef struct pv_iommu_unmap_pages pv_iommu_unmap_pages_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_unmap_pages_t);
+
+/**
+ * IOMMU_reattach_device
+ * Reattach a device to another IOMMU context.
+ * Fails with -ENODEV if no such device exist.
+ */
+struct pv_iommu_reattach_device {
+    /* IN: Target IOMMU context number */
+    uint16_t ctx_no;
+
+    /* IN: Physical device to move */
+    struct physdev_pci_device dev;
+
+    /* IN: PASID of the device (if IOMMUCAP_pasid) */
+    uint32_t pasid;
+};
+typedef struct pv_iommu_reattach_device pv_iommu_reattach_device_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_reattach_device_t);
+
+
+/**
+ * IOMMU_remote_cmd
+ * Do a PV-IOMMU operation on another domain.
+ * Current domain needs to be allowed to act on the target domain, otherwise
+ * fails with -EPERM.
+ */
+struct pv_iommu_remote_cmd {
+    /* IN: Target domain to do the subop on */
+    uint16_t domid;
+
+    /* IN: Command to do on target domain. */
+    uint16_t subop;
+
+    /* INOUT: Command argument from current domain memory */
+    XEN_GUEST_HANDLE(void) arg;
+};
+typedef struct pv_iommu_remote_cmd pv_iommu_remote_cmd_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_remote_cmd_t);
+
+/**
+ * IOMMU_alloc_nested
+ * Create a nested IOMMU context (needs IOMMUCAP_nested).
+ *
+ * This context uses a platform-specific page table from domain address space
+ * specified in pgtable_gfn and use it for nested translations.
+ *
+ * Explicit flushes needs to be submited with IOMMU_flush_nested on
+ * modification of the nested pagetable to ensure coherency between IOTLB and
+ * nested page table.
+ *
+ * This context can be destroyed using IOMMU_free_context.
+ * This context cannot be modified using map_pages, unmap_pages.
+ */
+struct pv_iommu_alloc_nested {
+    /* OUT: allocated IOMMU context number */
+    uint16_t ctx_no;
+
+    /* IN: guest frame number of the nested page table */
+    uint64_aligned_t pgtable_gfn;
+
+    /* IN: nested mode flags */
+    uint64_aligned_t nested_flags;
+};
+typedef struct pv_iommu_alloc_nested pv_iommu_alloc_nested_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_alloc_nested_t);
+
+/**
+ * IOMMU_flush_nested (needs IOMMUCAP_nested)
+ * Flush the IOTLB for nested translation.
+ */
+struct pv_iommu_flush_nested {
+    /* TODO */
+};
+typedef struct pv_iommu_flush_nested pv_iommu_flush_nested_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_flush_nested_t);
+
+/**
+ * IOMMU_attach_pasid (needs IOMMUCAP_pasid)
+ * Attach a new device-with-pasid to a IOMMU context.
+ * If a matching device-with-pasid already exists (globally),
+ * fail with -EEXIST.
+ * If pasid is 0, fails with -EINVAL.
+ * If physical device doesn't exist in domain, fail with -ENOENT.
+ */
+struct pv_iommu_attach_pasid {
+    /* IN: IOMMU context to add the device-with-pasid in */
+    uint16_t ctx_no;
+
+    /* IN: Physical device */
+    struct physdev_pci_device dev;
+
+    /* IN: pasid of the device to attach */
+    uint32_t pasid;
+};
+typedef struct pv_iommu_attach_pasid pv_iommu_attach_pasid_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_attach_pasid_t);
+
+/**
+ * IOMMU_detach_pasid (needs IOMMUCAP_pasid)
+ * detach a device-with-pasid.
+ * If the device-with-pasid doesn't exist or belong to the domain,
+ * fail with -ENOENT.
+ * If pasid is 0, fails with -EINVAL.
+ */
+struct pv_iommu_detach_pasid {
+    /* IN: Physical device */
+    struct physdev_pci_device dev;
+
+    /* pasid of the device to detach */
+    uint32_t pasid;
+};
+typedef struct pv_iommu_detach_pasid pv_iommu_detach_pasid_t;
+DEFINE_XEN_GUEST_HANDLE(pv_iommu_detach_pasid_t);
+
+/* long do_iommu_op(int subop, XEN_GUEST_HANDLE_PARAM(void) arg) */
+
+#endif
\ No newline at end of file
diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
index 82b9c05a76..f0b1860c7c 100644
--- a/xen/include/public/xen.h
+++ b/xen/include/public/xen.h
@@ -118,6 +118,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_ulong_t);
 #define __HYPERVISOR_xenpmu_op            40
 #define __HYPERVISOR_dm_op                41
 #define __HYPERVISOR_hypfs_op             42
+#define __HYPERVISOR_iommu_op             43
 
 /* Architecture-specific hypercall definitions. */
 #define __HYPERVISOR_arch_0               48
diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
index 66951c9809..3c77dfaf41 100644
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -487,6 +487,10 @@ struct domain_iommu {
     /* SAF-2-safe enum constant in arithmetic operation */
     DECLARE_BITMAP(features, IOMMU_FEAT_count);
 
+
+    /* Is the domain allowed to use PV-IOMMU ? */
+    bool allow_pv_iommu;
+
     /* Does the guest share HAP mapping with the IOMMU? */
     bool hap_pt_share;
 
@@ -526,6 +530,8 @@ static inline int iommu_do_domctl(struct xen_domctl *domctl, struct domain *d,
 }
 #endif
 
+int iommu_domain_pviommu_init(struct domain *d, uint16_t nb_ctx, uint32_t arena_order);
+
 int __must_check iommu_suspend(void);
 void iommu_resume(void);
 void iommu_crash_shutdown(void);
@@ -542,6 +548,7 @@ int iommu_do_pci_domctl(struct xen_domctl *domctl, struct domain *d,
 
 void iommu_dev_iotlb_flush_timeout(struct domain *d, struct pci_dev *pdev);
 
+uint64_t iommu_get_max_iova(struct domain *d);
 
 struct iommu_context *iommu_get_context(struct domain *d, u16 ctx_id);
 void iommu_put_context(struct iommu_context *ctx);
@@ -574,6 +581,8 @@ int iommu_detach_context(struct domain *d, device_t *dev);
  */
 DECLARE_PER_CPU(bool, iommu_dont_flush_iotlb);
 
+int arch_iommu_pviommu_init(struct domain *d, uint16_t nb_ctx, uint32_t arena_order);
+int arch_iommu_pviommu_teardown(struct domain *d);
 bool arch_iommu_use_permitted(const struct domain *d);
 
 #ifdef CONFIG_X86
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 11:21:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 11:21:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167037.1493414 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM2io-0003FK-V6; Thu, 20 Nov 2025 11:21:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167037.1493414; Thu, 20 Nov 2025 11:21: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 1vM2io-0003FD-SB; Thu, 20 Nov 2025 11:21:06 +0000
Received: by outflank-mailman (input) for mailman id 1167037;
 Thu, 20 Nov 2025 11:21: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=JF05=54=bounce.vates.tech=bounce-md_30504962.691ef70c.v1-bf55f820ed1749f9b0cf76669c1d72e5@srs-se1.protection.inumbo.net>)
 id 1vM2YD-0001PI-IP
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 11:10:09 +0000
Received: from mail128-17.atl41.mandrillapp.com
 (mail128-17.atl41.mandrillapp.com [198.2.128.17])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 77b5de54-c601-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 12:10:06 +0100 (CET)
Received: from pmta08.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail128-17.atl41.mandrillapp.com (Mailchimp) with ESMTP id
 4dBwcD5JjyzCf9RNh
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 11:10:04 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 bf55f820ed1749f9b0cf76669c1d72e5; Thu, 20 Nov 2025 11: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: 77b5de54-c601-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763637004; x=1763907004;
	bh=z1hG9N4QPItf8MjLZ/v2lUzA7qCjlYVIHr5mohm0MpM=;
	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=Uf31AYLMol5RGUzToVdTZk6SizCLgsO7ABI2Jp8WIeAq2riKw7lGhL+uEsDAVEN3g
	 0nHMh5ycgtGATI3j/pcHJbRmIQKkWuvsWbtYaSwJe3DOGrCvWQYRAT/JobA92bR6CZ
	 Pme4SaBYYgX+IBko/+cYRoNwy739J9cwbQ3SJnEZ3OZgUIK3Gn4TaI6T/1l2TSrQkq
	 0Fzkw2RjYaO8DFc2Tx14l8/cB3OENnsegmmvyRM2Asu09wYS398aXHaPTBYJbWicer
	 rIW4h/rboZh3Ojg+9QmZ+ei4EfKuXuNQ91KjWxvx37zGmTmsQh0DzE3eSsbD25A/a+
	 R2MujedILLEOw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763637004; x=1763897504; i=teddy.astie@vates.tech;
	bh=z1hG9N4QPItf8MjLZ/v2lUzA7qCjlYVIHr5mohm0MpM=;
	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=CDozOPM2eVx0uc5qA54CxxiJIaWD0mnUFZmwoWKwcAEhmryz6Pa70VNNVHsfj3nKW
	 c98S37cgQzSwX/F0DUEm7ZWZMOJfg3DKs6yiOank5em4oFCOBsWhqdqsuEyTl/TnIv
	 eRloXmhqBSg14P+q/Hza67G4jLMM9jegOJQiijWLt9Cc+arnKTn6byTKsvw5WF0FD6
	 EAUTXKZpikRqsbCO9IBvvaNX/qVY6kuC5EFKCoXakTTai2kMy5gT3WxXlBlJg4/LDs
	 UfLXBNRKqOC4zwEuJaIqGWSaiCQHSfCq6ime60i24s9TonmsaV/GciysfbphzVnzfc
	 Y8lI5g/WZ5a1A==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=20v7=2012/14]=20x86/iommu:=20Introduce=20IOMMU=20arena?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763637003914
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <08caa05849ee029c409b11e9783e2b8237632a94.1763569135.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1763569135.git.teddy.astie@vates.tech>
References: <cover.1763569135.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.bf55f820ed1749f9b0cf76669c1d72e5?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251120:md
Date: Thu, 20 Nov 2025 11:10:04 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Introduce a new facility that reserves a fixed amount of contiguous
pages and provide a way to allocate them.

It is used to ensure that the guest cannot cause the hypervisor to
OOM with unconstrained allocations by abusing the PV-IOMMU interface.

Signed-off-by Teddy Astie <teddy.astie@vates.tech>
---
 xen/arch/x86/include/asm/arena.h     |  54 +++++++++
 xen/arch/x86/include/asm/iommu.h     |   3 +
 xen/drivers/passthrough/x86/Makefile |   1 +
 xen/drivers/passthrough/x86/arena.c  | 157 +++++++++++++++++++++++++++
 4 files changed, 215 insertions(+)
 create mode 100644 xen/arch/x86/include/asm/arena.h
 create mode 100644 xen/drivers/passthrough/x86/arena.c

diff --git a/xen/arch/x86/include/asm/arena.h b/xen/arch/x86/include/asm/arena.h
new file mode 100644
index 0000000000..7555b100e0
--- /dev/null
+++ b/xen/arch/x86/include/asm/arena.h
@@ -0,0 +1,54 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/**
+ * Simple arena-based page allocator.
+ */
+
+#ifndef __XEN_IOMMU_ARENA_H__
+#define __XEN_IOMMU_ARENA_H__
+
+#include "xen/domain.h"
+#include "xen/atomic.h"
+#include "xen/mm-frame.h"
+#include "xen/types.h"
+
+/**
+ * struct page_arena: Page arena structure
+ */
+struct iommu_arena {
+    /* mfn of the first page of the memory region */
+    mfn_t region_start;
+    /* bitmap of allocations */
+    unsigned long *map;
+
+    /* Order of the arena */
+    unsigned int order;
+
+    /* Used page count */
+    atomic_t used_pages;
+};
+
+/**
+ * Initialize a arena using domheap allocator.
+ * @param [out] arena Arena to allocate
+ * @param [in] domain domain that has ownership of arena pages
+ * @param [in] order order of the arena (power of two of the size)
+ * @param [in] memflags Flags for domheap_alloc_pages()
+ * @return -ENOMEM on arena allocation error, 0 otherwise
+ */
+int iommu_arena_initialize(struct iommu_arena *arena, struct domain *domain,
+                           unsigned int order, unsigned int memflags);
+
+/**
+ * Teardown a arena.
+ * @param [out] arena arena to allocate
+ * @param [in] check check for existing allocations
+ * @return -EBUSY if check is specified
+ */
+int iommu_arena_teardown(struct iommu_arena *arena, bool check);
+
+struct page_info *iommu_arena_allocate_page(struct iommu_arena *arena);
+bool iommu_arena_free_page(struct iommu_arena *arena, struct page_info *page);
+
+#define iommu_arena_size(arena) (1LLU << (arena)->order)
+
+#endif
diff --git a/xen/arch/x86/include/asm/iommu.h b/xen/arch/x86/include/asm/iommu.h
index 654a07b9b2..452b98b42d 100644
--- a/xen/arch/x86/include/asm/iommu.h
+++ b/xen/arch/x86/include/asm/iommu.h
@@ -12,6 +12,8 @@
 #include <asm/cache.h>
 #include <asm/processor.h>
 
+#include "arena.h"
+
 #define DEFAULT_DOMAIN_ADDRESS_WIDTH 48
 
 struct g2m_ioport {
@@ -62,6 +64,7 @@ struct arch_iommu
 {
     /* Queue for freeing pages */
     struct page_list_head free_queue;
+    struct iommu_arena pt_arena; /* allocator for non-default contexts */
 
     union {
         /* Intel VT-d */
diff --git a/xen/drivers/passthrough/x86/Makefile b/xen/drivers/passthrough/x86/Makefile
index 75b2885336..1614f3d284 100644
--- a/xen/drivers/passthrough/x86/Makefile
+++ b/xen/drivers/passthrough/x86/Makefile
@@ -1,2 +1,3 @@
 obj-y += iommu.o
+obj-y += arena.o
 obj-$(CONFIG_HVM) += hvm.o
diff --git a/xen/drivers/passthrough/x86/arena.c b/xen/drivers/passthrough/x86/arena.c
new file mode 100644
index 0000000000..984bc4d643
--- /dev/null
+++ b/xen/drivers/passthrough/x86/arena.c
@@ -0,0 +1,157 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/**
+ * Simple arena-based page allocator.
+ *
+ * Allocate a large block using alloc_domheam_pages and allocate single pages
+ * using iommu_arena_allocate_page and iommu_arena_free_page functions.
+ *
+ * Concurrent {allocate/free}_page is thread-safe
+ * iommu_arena_teardown during {allocate/free}_page is not thread-safe.
+ *
+ * Written by Teddy Astie <teddy.astie@vates.tech>
+ */
+
+#include <asm/bitops.h>
+#include <asm/page.h>
+#include <xen/atomic.h>
+#include <xen/bug.h>
+#include <xen/config.h>
+#include <xen/mm-frame.h>
+#include <xen/mm.h>
+#include <xen/xmalloc.h>
+
+#include <asm/arena.h>
+
+/* Maximum of scan tries if the bit found not available */
+#define ARENA_TSL_MAX_TRIES 5
+
+int iommu_arena_initialize(struct iommu_arena *arena, struct domain *d,
+                           unsigned int order, unsigned int memflags)
+{
+    struct page_info *page;
+
+    /* TODO: Maybe allocate differently ? */
+    page = alloc_domheap_pages(d, order, memflags);
+
+    if ( !page )
+        return -ENOMEM;
+
+    arena->map = xzalloc_array(unsigned long, BITS_TO_LONGS(1LLU << order));
+    arena->order = order;
+    arena->region_start = page_to_mfn(page);
+
+    _atomic_set(&arena->used_pages, 0);
+    bitmap_zero(arena->map, iommu_arena_size(arena));
+
+    printk(XENLOG_DEBUG "IOMMU: Allocated arena (%llu pages, start=%"PRI_mfn")\n",
+           iommu_arena_size(arena), mfn_x(arena->region_start));
+    return 0;
+}
+
+int iommu_arena_teardown(struct iommu_arena *arena, bool check)
+{
+    BUG_ON(mfn_x(arena->region_start) == 0);
+
+    /* Check for allocations if check is specified */
+    if ( check && (atomic_read(&arena->used_pages) > 0) )
+        return -EBUSY;
+
+    free_domheap_pages(mfn_to_page(arena->region_start), arena->order);
+
+    arena->region_start = _mfn(0);
+    _atomic_set(&arena->used_pages, 0);
+    xfree(arena->map);
+    arena->map = NULL;
+
+    return 0;
+}
+
+struct page_info *iommu_arena_allocate_page(struct iommu_arena *arena)
+{
+    unsigned int index;
+    unsigned int tsl_tries = 0;
+
+    BUG_ON(mfn_x(arena->region_start) == 0);
+
+    if ( atomic_read(&arena->used_pages) == iommu_arena_size(arena) )
+        /* All pages used */
+        return NULL;
+
+    do
+    {
+        index = find_first_zero_bit(arena->map, iommu_arena_size(arena));
+
+        if ( index >= iommu_arena_size(arena) )
+            /* No more free pages */
+            return NULL;
+
+        /*
+         * While there shouldn't be a lot of retries in practice, this loop
+         * *may* run indefinetly if the found bit is never free due to being
+         * overwriten by another CPU core right after. Add a safeguard for
+         * such very rare cases.
+         */
+        tsl_tries++;
+
+        if ( unlikely(tsl_tries == ARENA_TSL_MAX_TRIES) )
+        {
+            printk(XENLOG_ERR "ARENA: Too many TSL retries !");
+            return NULL;
+        }
+
+        /* Make sure that the bit we found is still free */
+    } while ( test_and_set_bit(index, arena->map) );
+
+    atomic_inc(&arena->used_pages);
+
+    return mfn_to_page(mfn_add(arena->region_start, index));
+}
+
+bool iommu_arena_free_page(struct iommu_arena *arena, struct page_info *page)
+{
+    unsigned long index;
+    mfn_t frame;
+
+    if ( !page )
+    {
+        printk(XENLOG_WARNING "IOMMU: Trying to free NULL page");
+        WARN();
+        return false;
+    }
+
+    frame = page_to_mfn(page);
+
+    /* Check if page belongs to our arena */
+    if ( (mfn_x(frame) < mfn_x(arena->region_start))
+        || (mfn_x(frame) >= (mfn_x(arena->region_start) + iommu_arena_size(arena))) )
+    {
+        printk(XENLOG_WARNING
+               "IOMMU: Trying to free outside arena region [mfn=%"PRI_mfn"]",
+               mfn_x(frame));
+        WARN();
+        return false;
+    }
+
+    index = mfn_x(frame) - mfn_x(arena->region_start);
+
+    /* Sanity check in case of underflow. */
+    ASSERT(index < iommu_arena_size(arena));
+
+    if ( !test_and_clear_bit(index, arena->map) )
+    {
+        /*
+         * Bit was free during our arena_free_page, which means that
+         * either this page was never allocated, or we are in a double-free
+         * situation.
+         */
+        printk(XENLOG_WARNING
+               "IOMMU: Freeing non-allocated region (double-free?) [mfn=%"PRI_mfn"]",
+               mfn_x(frame));
+        WARN();
+        return false;
+    }
+
+    atomic_dec(&arena->used_pages);
+
+    return true;
+}
\ No newline at end of file
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 11:43:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 11:43:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167070.1493425 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM33z-00008P-MA; Thu, 20 Nov 2025 11:42:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167070.1493425; Thu, 20 Nov 2025 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 1vM33z-00008E-Il; Thu, 20 Nov 2025 11:42:59 +0000
Received: by outflank-mailman (input) for mailman id 1167070;
 Thu, 20 Nov 2025 11:42: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=nz19=54=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vM33x-00007d-Ln
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 11:42:57 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0dc2ca89-c606-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 12:42:55 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-b73161849e1so204325966b.2
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 03:42: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
 a640c23a62f3a-b7654d7cb3bsm194223966b.27.2025.11.20.03.42.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 03:42: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: 0dc2ca89-c606-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763638975; x=1764243775; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1A57igL4O38RF4Gnv2kW+vRh9kLGjingSZovSliCfK8=;
        b=VjZ5fPANsnuR719sCxCqdP+ogcaydj7dY9MOIID6WbZRrnj+43O5iNdV7SUUT2pYuB
         1TaPkWbh/RoLL4hK8FrtY0AGGobhNSVMMhtwMISXEle6Y2bWLh9rlYbxo71SKvq53EcN
         B4ngAoEw6CgOu/s9pRFNZ5mvjGrXEqlO1NWnQbAkqq+HZb8fSnT6upo3RBQpkz/Y9n3F
         TSXMqqwZIm53l+On8BSchuJtc5U9hDHpmHcDApZSs8I16OKG9ZaJS3DLLCHqynCea9eF
         OCN7FUZ7lJd0YEM4XRl1Q2R3X25/VozH3yukViYmkPkg0cJfvs42T/YIan/QsqcCWW+S
         XFxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763638975; x=1764243775;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1A57igL4O38RF4Gnv2kW+vRh9kLGjingSZovSliCfK8=;
        b=oGJcLMreArPUOkCtZ+xUTcchfHoqLJ/S5Wji3vkcvjsK6EAFxA6H27WvmUVgfWz9J7
         BrAmtZhi4JDGmXeAZVUOYPyI++d/yOZ+WKa/WlnaTKUnEcHrEoNMbjCzuurR7MlXZcQ7
         EGP2U48sYYPysGgnRBM3lf+j4lD2kTzz2xLwi/w9ehAMo+q2jntGTMwd0zbNOrhohXqv
         p5kxHG+ydL7sgx9+ab4RJFJL1KanKPMfbR/dfFws/ZCub/8pNxm1m6sYq9Mg/uN2w1aq
         YI/k4vknoqWw/VuDHcKXysD0ZmDBs/D/0t1Ed49+AFAGrLUt+xeXzHP0hTuivcaEKqCX
         yZlg==
X-Forwarded-Encrypted: i=1; AJvYcCV18skwJwp1A6lz/toPAr7hduU1FJ7x6ia+R0K3CGxXrO3FzUDclPwjGtUvndbWhk1rMH2FKj8tVqw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy8sxl9JMpyEvrl3vXPzVgGN026CNz02Vm6X9LAx84vYtwOVxg1
	LNk63Qk4+0uDFoNXdxtYvfNSEQSwCKXif8fewlpS5TccfRPPRrNjAEstHZCbosC5tQ==
X-Gm-Gg: ASbGncvBDgaQy3NjOPvC6M5NzLVr4aLEWlXUq9yu2fo5prVVi8KOCLoy4p/DM0vvJ6w
	XKHwIzN9fMbFyehDU8YU6zg2tX+f/6nSuXvwJlkXbScEKa9Pk4wfoFFj8wzzkgZ4V8pKl2Nk6He
	7xwf7fyD7czyOR8bL8jMwEIV8gV/Ou/OQsbGVQTZx63+VpeoM6/PuD1CaND6LHvOYO5QQuNCDxS
	PeZ1PznTMytmLg2zC8WiZzKWB5V+17rGgrfMbRpc9ri1GK7S14TX+y7EA3Op61cIBL+enPvgJ9n
	S6mxO0Xk9XcSsYYV90xQpWg5SNJOqCPapryYstp0ZL/up48naH48nDD1ND6kGZC9I7UYu7NXeyI
	BTL9LcjFGbVSWDsBlUt4+LZn1Ty6INhap9EMJLkrfibbI5rHxkvP74MUd8bTgTfg3Aff6epWbKe
	EPP2cC+a2gSsqBkp9cMssL6Bz4u4Bm5mI+3kisR0lEv/abqZgMt7WzDJx4R6rQEEjpZotv6eS13
	Kw=
X-Google-Smtp-Source: AGHT+IEOSiVzShk7bcr24H0EOKL7OtQxsVZ5X0aQnfTFEBZzY69CtHeJC9KeMGdEhEDQJtMkhVBYuw==
X-Received: by 2002:a17:907:2d8a:b0:b73:57eb:688 with SMTP id a640c23a62f3a-b7658917b4fmr191201566b.53.1763638974598;
        Thu, 20 Nov 2025 03:42:54 -0800 (PST)
Message-ID: <2de4377e-8746-4fda-b7ed-ca588170c4a1@suse.com>
Date: Thu, 20 Nov 2025 12:42:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v4] xen: make VMTRACE support optional
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 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>
References: <20251119193120.1011448-1-grygorii_strashko@epam.com>
 <f354c1cd-c46e-4bd2-98d6-a614029991f7@suse.com>
 <054aaca3-919f-4b9e-bdfe-9bdb40f08388@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: <054aaca3-919f-4b9e-bdfe-9bdb40f08388@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.11.2025 11:47, Grygorii Strashko wrote:
> Hi Jan,
> 
> On 20.11.25 10:56, 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
>>
>> Just partly, ...
>>
>>> @@ -772,13 +775,24 @@ static inline int hvm_vmtrace_get_option(
>>>   
>>>       return -EOPNOTSUPP;
>>>   }
>>> +#else
>>> +/*
>>> + * Function declaration(s) here are used without definition(s) to make compiler
>>> + * happy when VMTRACE=n, compiler DCE will eliminate unused code.
>>> + */
>>> +int hvm_vmtrace_output_position(struct vcpu *v, uint64_t *pos);
>>> +#endif
>>>   
>>>   static inline int hvm_vmtrace_reset(struct vcpu *v)
>>>   {
>>> +#ifdef CONFIG_VMTRACE
>>>       if ( hvm_funcs.vmtrace_reset )
>>>           return alternative_call(hvm_funcs.vmtrace_reset, v);
>>>   
>>>       return -EOPNOTSUPP;
>>> +#else
>>> +    return -EOPNOTSUPP;
>>> +#endif
>>>   }
>>
>> ... the #else wasn't dropped from here. If no need for a v5 arises, I guess
>> I can make the adjustment while committing. But it would be really nice if
>> all earlier comments were taken care of (one way or another) when submitting
>> a new version.
> 
> This is absolutely my miss. Sorry.
> I can resend with fix. Just tell me how will be better for you.

Well, as said above - no need to resend unless another reason for a v5 surfaces.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 11:51:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 11:51:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167092.1493471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM3CO-00028M-Q6; Thu, 20 Nov 2025 11:51:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167092.1493471; Thu, 20 Nov 2025 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 1vM3CO-00028F-N5; Thu, 20 Nov 2025 11:51:40 +0000
Received: by outflank-mailman (input) for mailman id 1167092;
 Thu, 20 Nov 2025 11:51:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ChS/=54=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vM3CN-00027f-5U
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 11:51:39 +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 422ed38d-c607-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 12:51:33 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV3PR03MB7732.namprd03.prod.outlook.com (2603:10b6:408:281::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 11:51:30 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.011; Thu, 20 Nov 2025
 11: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: 422ed38d-c607-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lcpfkAbCuc1Pk7d899DjKfnbBDE+lJqj0HS6/NtX9Pa50pzqoLMT4tNJljGetM5bqZFNAAhErlbnMvLrnyauR81VGIjQKLAKuRsoFcks5GxG7E72c8ziXnx9uuWOJzyewva820o+i69KQM19ssKo+nZ0OlC8H0ZrI0wIMIRrbHdpQack5HQcjE2bVQODZDzQ5pS1BpgvcD9Jhjb/miIFDWU5Jn7kUCaLRgpL+8+oLyBpsk6knOmowA17Y/7W52V/oZqOJ+LS4P7WnNdOPI6mUysFachBPI9jUnU3Li0N5FK31b+N45Ao8fwy+c/PV6B6IFVhsNhzLYUb3zoLo6vP+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=sLDy/hNapsmpu1OpM9WWzd1VD35jURq8F+6HLtaztI8=;
 b=njcQStlz677iotuhV267CqRkiLcrGCxC6prIhGF1+5I5K/ih3JWhRqD0p9ITAeEjp38tnHVuX8opSyR3De0lFh7CmwahdzGav3hkliKygh1RPiR/Y7SrgN5fYCT08HyFzXnPdnXx/Jzj1czFldbBxv/Cj5Q0MK2sbmjl7qpbjDaAfB8e/VxgI2AwmO8v3aAabLgGe5pg4HS8d6i8zKbn/b/X/KF+MWXM1WTz5ZzUSz+Dc+DfD7pRFtAXChX9YQ7Rz6TkAyx7GytqwQ8X/rYZb70O22vPQCUrB4ZY3h+xFJpaD+Cgu7KSL5j6kxfZHxb1vDTg9vh2ok8LeWw+boPe3w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sLDy/hNapsmpu1OpM9WWzd1VD35jURq8F+6HLtaztI8=;
 b=OSGgMFkZRF8B+JdK4DEkyjiJE7WhMY3uRqLp64MHqpfUtsJytEPqPmPHMduBbs4uajgkFkOxZ3qbRuK/9rg1fDxQAPHO7mCAHCHBVZ9tajbzkYytACO+VKVjXlxdk0lWCkoEcgrz4ywc1/xIEYFKvDC7kA9N9vhfyqJVgvBhYfI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <ed2f44ce-b28d-482f-b6bb-5ef40149f2b2@citrix.com>
Date: Thu, 20 Nov 2025 11:51:26 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] x86/MCE: restrict allocation of thermal and CMCI
 vector to BSP
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: <fbc9a2f8-170a-4645-8836-c90c42ad726f@suse.com>
 <638d0954-e889-41ee-b277-282f83170c69@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <638d0954-e889-41ee-b277-282f83170c69@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0477.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a8::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_|LV3PR03MB7732:EE_
X-MS-Office365-Filtering-Correlation-Id: 8344804a-2f60-47c0-ede7-08de282b24c6
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?Yk1zVEcrc0t3MUpjaVM4YU9PZHcrUjZkcnlNQnpaU1Vqem5sNGtWT1NCTDVO?=
 =?utf-8?B?ZllneFk3eExjUEtVWEtTSFk2NkhkQ3l4bVR1VXF4ZURWMmo0MW5iQXV6Z0NL?=
 =?utf-8?B?R1ZtNXRDNlI3RisrU2twZzhXS2plTHV6U0ladTVVQVhnK2EyVGYvbEpiZDlB?=
 =?utf-8?B?dS9FNUZNRUx3ZWVwVXBoaXF3QUF6UEYxWlNoWGNHblpQQ252Z1BELysyOFNG?=
 =?utf-8?B?MTJweDJxRVNtR1JKTitaMkxKd1o0SDYzRnQwN0xXekhHWU03YmVRTnErV0Zh?=
 =?utf-8?B?M21FeUd1WWh2OFdBc0MvTzNDV2ptTE1wZVJ0cEZad0ZqeXhMSEdLNXBxTzhw?=
 =?utf-8?B?MWdkWnBJVkl4ZjNOK0U5SG1lOVlyN0JzVTNDMWIrcnhtMDBNUEpqVmt0ZHpk?=
 =?utf-8?B?SHpXSWhJSGcrUGszbnVVNzQxZDRSWXpmb01vd0RIV0xYTGNseDArMTl2TXlI?=
 =?utf-8?B?KzJWTy9UNlpmUmNDaFAyOGI3VGRSNGFFRk9iSjBrOUdMMmhnSnZEcHZOcC9u?=
 =?utf-8?B?NlBIZHc5cDBVekFQWnJ5WnFQV2VJQVBmYXpjT01MTHVxZ1Z6MWpOTngrc0sy?=
 =?utf-8?B?WS9FUlRqcHBWZ3phOEhtUExrRENNWVY1emJvMnAwb2xGMlZUN0RSdmI4UHYr?=
 =?utf-8?B?VkFpQ0lXTXJVVzFXa1pNcFdzSGYvVFZZbzdqckdkWnBMK1pNNGl2bzgxZTZ2?=
 =?utf-8?B?OWk4VGF0VHVIRDNCR2NYellmR3psajhkSGxtd2RBa2FKeTk0MG1jeFVEeE5S?=
 =?utf-8?B?MTFQOEJ4UXdmQlM3bmw0QXpyVWhKT0kyaTRRQjlreDBuaytjOTdnQnBjNEhm?=
 =?utf-8?B?M2xCNEN5MWp3R1ArbEFFMC92djV4c0VXaExQeFJsYXdjaGxWVlo5ZzNTYmJz?=
 =?utf-8?B?WHc1L3FLdGRKYkJsWGlxUmFYTlYxNC9xZndTWXFJRWpqNHJEaHh0NWhqOVpQ?=
 =?utf-8?B?bFFicU9MSjE4cDVwZ0FSNnlyRTA1VTZVNDgrQVpqMDBtU2NwYnZ3QmsraDJ6?=
 =?utf-8?B?SUMrZm5oZ2VXYzVydElGdTRWdkdRTXNoRDJkTk1GRUQ2aHFaTFdFVVBBYVky?=
 =?utf-8?B?KzRCbFdrM1M3dFc1SnYvWEN6NjQxYi9DenlOd0xGL3hvcURaR3NVYkhjMnBh?=
 =?utf-8?B?cGFJL3NGYzEraThFUkxFZ0VUUDJjYm1uYzBuYzlFWjZPZnJxdGl4ejZ4cjdz?=
 =?utf-8?B?bjVVM0Npdmx5cUtqbjEzYWhxNk9RWHFCZGE0WXM5bHJPV0Jsc3NtbnBxNzM3?=
 =?utf-8?B?aEZoTjlvZzRkN0Qyb05QMUZnNzdMMG9CVXJkYmRDaEg4ZjdXaCtPcnpyd0tQ?=
 =?utf-8?B?OTRMRFEvbklMQks4M3ZtUytuSjdOaWlnQzdDYVd3Rk5YaEk0bW9pZURlaDN2?=
 =?utf-8?B?cStjSDgzVDJ4ZXVjdVlqM0RvSUQ2Zm1kQnFzSlRtM2ZNRW5xdjR3VHl5UWs1?=
 =?utf-8?B?clhtZ0N0c2lFYXBDRy85b2tuRHloNzFRajJMamdnZ1FjeHRsNUZ6UlBWUVcz?=
 =?utf-8?B?cXhmUWxGdGVia3FhaExSNG1DNW13a2d6bXREVmNReC9VTjhMME4wRWVUQ0dQ?=
 =?utf-8?B?aE5nTzdWYnhLWnhYSitvTnpCS3JEQ1JUMjQ2KzhvTkUyUk1uYkZKUXdsT1Ji?=
 =?utf-8?B?T1hCVzBpaFR2ajR2djZWNTVqeGkwOTZLWHpvNW1HUExXQWhCczM0bUpmaVBS?=
 =?utf-8?B?NElWV2F2T2d2bGxoVmhZVXRTWTZrekRkQnFNSFB4a01EMzFJKzhLeHoxVUdY?=
 =?utf-8?B?cVY2Zy9QWkVkQ3dVVUl1OURHV0dPQ3R4Y2JlK1VhQnBIVldxOE9Rd3FHY01D?=
 =?utf-8?B?SmNDVzVkaFJGaGlhZjl1NktKNGFQZGNyeDJnZll1SHVhVEtSTnlRWXI5OElM?=
 =?utf-8?B?a21JOTU3L2lmc2Rab0RPeVIzNHZPS0VWbWVIN2FyS1RhUnZzYlpzR3BVVURr?=
 =?utf-8?Q?jAsety47ZSaXLZHAOwIsbRVD1xiVN3c4?=
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?MGErOW1lVVlQZXEzdEh5bTBqU3BuOUlmYWMySDd5cTlpbXJrbXEyS0NjWUtG?=
 =?utf-8?B?aXp6eS92RW5lcmY5b29sbXlzaW1Bd1VDbWhDMktCdXRzR254OXROYUJIZnJP?=
 =?utf-8?B?RlJ0cFNOSEp0czNCQ1UyZDRBbSs5dm1NY1F2bGk0ZGJ0ZTlvUG1OYzJtbEZF?=
 =?utf-8?B?b29NaSttNG94Q1hyTUtUZDJ0amh5VzM5dVVkZGFzbEtxelBLRTlNdXJ0eGV6?=
 =?utf-8?B?Qk01NHVLUWRkdENuNndjMHpNZDd0cmM4eUVDUTZ5cHZreVlHWHg1UFVaN2Zo?=
 =?utf-8?B?aWQxemhDaDZGTWlRQUVoNm5vWC8zQisrc0FKSTBpbDFjM2NFcGpsZnQ0ME44?=
 =?utf-8?B?WUdZWjlyakNmNjNqSWlwN1N0cUk5UTZlTkVYR05oK01wdXVZTXJZcGJralR5?=
 =?utf-8?B?QkpVNGRGdWo4TWQ1bFZNQU1TbUlrTVUzVUxLbEhpaURSS2RaVnJha2xmTFFX?=
 =?utf-8?B?ZTRjTGdIVTM2OERLVXA0SkcrbEkzeXVaL1M0djg1VnluMmc3VlVUYnErZWY4?=
 =?utf-8?B?ZkZoK0YvQ2tJQ1Vya0lEc05BQnFxbi9SUmZLbXdwZUsxYVl2clV0dVVXSmRu?=
 =?utf-8?B?cm9Nc1Njek9JeER5UXJqaEo0YTdndGtTOFU1c3ptaS9EYjBhUjljVHpEeWtw?=
 =?utf-8?B?LzlTeE5UUE9VZGptL2RHSDlnb1c0OWE5NGdFQVJhN21EQ1gvRXNpZ3dxV1Er?=
 =?utf-8?B?dnV2aEVKaWxkK2F5Mjh4MWczeGRHTUNPajZRRFZhUlZsVzE1dEJ1TzUwdzhq?=
 =?utf-8?B?TmRiUFpsajUzd0VjS2NYekkvanhNWEhYeHF5RzRmQUxGMmczNDI2YXZ5Ulgx?=
 =?utf-8?B?cUVDaUV5TUlqdTZqRVBUM3c1MFdHakRWemxPQmpuWElBcDI0MFBKaWhDSXhP?=
 =?utf-8?B?STRsajBHa05NMm4vMEFrOGhmc0lNUm1aRVFYYlRQbjNNMmhNejJkWHByNUtx?=
 =?utf-8?B?V3E0T1RxcUptTXVQcXlkMTBDaVg0Z0NOS3I2SFFJenVIWFRQY0IrOUJDckFH?=
 =?utf-8?B?dkNmMkdIODJDRUcxcTVISURiNlhKWTdydW1PM0FwWWFRZDBXS3RnMnM3UW8x?=
 =?utf-8?B?MG1HM1IwdFlaYUJGZ29xblhybVo2MGRLUzNzb2F0VUZjOERNN09SQWJHUkMx?=
 =?utf-8?B?Ym5udS9ic0x1SEdCOUhkWmt5NDdVNXR6OWxCZmI5aUE3RWtIL1ByRjBmRlY1?=
 =?utf-8?B?eUVPRXNuV1Nub2Z1c3lRZHJ5UkR1RTVwWTh3aXVSS0xEUVA1OWlib21UWnJu?=
 =?utf-8?B?L3RNT1pCZXNNU2RFYno3aUdoS1QzdExHaGRrMEMvODYxdVgzbTVOSnRwaFpv?=
 =?utf-8?B?dXY1NXRaQUJudUlyTXV5c0dTdFQ0Y1VyT0xOKzF0RFJ1cHhEMmNYTGRzK3Vl?=
 =?utf-8?B?cHRpUVhFNFU3QWxSK1dDbGZ0SWhIMkhHSWJtL0hHcHJlcG1LbFhXTWdGUTR3?=
 =?utf-8?B?dXN2S1pQVFhLVEI2bHBJSGtxY3UvM1ZsU0c3TDA5VXI3b0xhNXR3aDNCZkRT?=
 =?utf-8?B?Y1krSmFSZWJUU214WXIwQ1lwbURkcWRnWStDZnlmTm5xOXdsSGx5YjNRcGdQ?=
 =?utf-8?B?L3h3M3NSc2ZPY2dHek5ZUTMxTE1pS3V2SEZIWU0rNmtPOFdORG9sZGlDSllh?=
 =?utf-8?B?bVN1ejZTdHRjV2JxMGtDZC9pREI2SCtyMTI5TURrRit6TG5kRmozS05oQ1cv?=
 =?utf-8?B?bDd1ME9IOTQ3VlRQWjVJbHBXWlhQZFQzbHhlaktDTmdZcERnRU82OE1naWxD?=
 =?utf-8?B?ekl0bnJpa29YRWM5eFlrZE5NSmhxMWx3RzRmY285YU85MG1Da0ZOd2FkWUdx?=
 =?utf-8?B?VjRxM1l1RE1PTGt1dU5ka0xpd2FadzZwRXR4U1IzMU5hc2hndW9Ya1VYR1Fq?=
 =?utf-8?B?U0I5M21BV3BSbXJsc2MzVDJIOHhnSHZPa1dvQjJ1eVRXbUpVcVJzY1JPNzVy?=
 =?utf-8?B?bWJoWHdpbDYwU2MveTV2bVNhcHkvR1VTa0xFajgyQXc2V1pSQklWRWs1VjZ4?=
 =?utf-8?B?cHY1QlVzczJaaGVkSDlaUDZpMERvWmdlSjRMWHVHbS9UV1AzK0sxWE1iVGJR?=
 =?utf-8?B?c1oxMmxjT2hpZnI1bjB5Wm9pY2VBU3Nnb0ZTNTlkN3VCZEQ0Zzl1VGtqenFE?=
 =?utf-8?B?Q3BFZ2NkWGZKTUVtRGNaYXQzb2dodGRhTk5IRmNYdzZXeHJ0YzJsaTBDTmZF?=
 =?utf-8?B?a1E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8344804a-2f60-47c0-ede7-08de282b24c6
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 11:51:30.0527
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bL2Q4SffAEOu/VyzuEfGh4qa3INxHvGU7jrnm7oJLu6UuuKJVtqQmck8HJREgMDrecPPUAt4PpBTinDSihus6JktggalZODRxPP8zR4MBl4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR03MB7732

On 19/11/2025 10:50 am, Jan Beulich wrote:
> --- a/xen/arch/x86/cpu/mcheck/mce.c
> +++ b/xen/arch/x86/cpu/mcheck/mce.c
> @@ -110,13 +110,13 @@ static void __init mcheck_intel_therm_in
>  }
>  
>  /* P4/Xeon Thermal regulation detect and init */
> -static void intel_init_thermal(struct cpuinfo_x86 *c)
> +static void intel_init_thermal(const struct cpuinfo_x86 *c, bool bsp)
>  {
>      uint64_t msr_content;
>      uint32_t val;
>      int tm2 = 0;
>      unsigned int cpu = smp_processor_id();
> -    static uint8_t thermal_apic_vector;
> +    static uint8_t __ro_after_init thermal_apic_vector;
>  
>      if ( !intel_thermal_supported(c) )
>          return; /* -ENODEV */
> @@ -160,7 +160,8 @@ static void intel_init_thermal(struct cp
>          return; /* -EBUSY */
>      }
>  
> -    alloc_direct_apic_vector(&thermal_apic_vector, intel_thermal_interrupt);
> +    if ( bsp )
> +        alloc_direct_apic_vector(&thermal_apic_vector, intel_thermal_interrupt);

We really don't want both c and bsp passed in.Â  That can only go wrong.

Furthermore, this function has 2 other examples generating bsp locally.

The function is in desperate need of cleanup (MSRs, variable and
constant names), but right now this makes it worse.

Please either use c == &boot_cpu_data, and I'll do some cleanup later,
or generate bsp = c == &boot_cpu_data and fix up all users in the function.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 12:04:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 12:04:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167116.1493481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM3Ou-0004tm-62; Thu, 20 Nov 2025 12:04:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167116.1493481; Thu, 20 Nov 2025 12:04: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 1vM3Ou-0004tf-24; Thu, 20 Nov 2025 12:04:36 +0000
Received: by outflank-mailman (input) for mailman id 1167116;
 Thu, 20 Nov 2025 12:04: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=amKt=54=ventanamicro.com=dbarboza@srs-se1.protection.inumbo.net>)
 id 1vM3Os-0004tZ-3r
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 12:04:34 +0000
Received: from mail-ot1-x332.google.com (mail-ot1-x332.google.com
 [2607:f8b0:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11b547ee-c609-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 13:04:31 +0100 (CET)
Received: by mail-ot1-x332.google.com with SMTP id
 46e09a7af769-7c701097a75so377595a34.3
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 04:04:31 -0800 (PST)
Received: from [192.168.68.110] ([177.188.133.235])
 by smtp.gmail.com with ESMTPSA id
 46e09a7af769-7c78d302329sm924384a34.6.2025.11.20.04.04.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 04: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: 11b547ee-c609-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=ventanamicro.com; s=google; t=1763640270; x=1764245070; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=HarGE69Xcqz4hsoJV05tBZlKbKycWI9YTMfsZh37Imo=;
        b=j/gmgp+tfUNOPy/cAq627OwATFnbxmLHSyXl2Mkk8r236mQgksgA3XAMEdvA5rPmKf
         QqUeuzZnpQHbK1STpihFf3q2rXXmqykR/7cNvnjEAqlDHXdYhAQqEqS6Elemsbtn50Vz
         oBm0Y6xECMxIdTRMwWpMUIBn/Qpx8H/AxNiTo7ngFUpn/GXC5nqpbQY1Pq2drpCwkxbg
         GRImTZWgln5g63qvjNeUi0Ch4EsYZN5Bkw24CpeVSrhW3wTS1ivrQo4xzm3i10wUs9iW
         5jZcxTbc/1t2hf8N00FNwnmgY780NJMRg+PT9sc9wPGWeg+v7FHdE8jaA3W/LYbHfj7y
         HukA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763640270; x=1764245070;
        h=content-transfer-encoding:in-reply-to:content-language:from
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=HarGE69Xcqz4hsoJV05tBZlKbKycWI9YTMfsZh37Imo=;
        b=uuWjLXhaYE+YYuIcc9B0Ra81ihJXrkUh4G8FIH4zq1nLmQchGfoLwXxRrcXpH5x+lA
         D/gR0ZDxbrYpORRmwFYuu5ZGj2qKQwZ6B06jXBcPnD4U71sL4fd68mITMHK3DYNlgWyF
         +cgeg/AnCZUPGmMbqt6qGHkAaoRa0uMlXTiNkR86AcV0jdD6KLBEwf30OdpdLjX5AR0S
         GBvcX07CmEj8IjSQcpE9HABZlPikOxVCA1nh200sXd7Mt0htqhRYFzMFebrcxsTQ/hsy
         CYaJ+IA0o6E4qqizW+N9ln9sCp2VwGvLEeA2d9E0EYeR/+/2+Nf5LIyhPO3/UqfgX+2O
         80Rw==
X-Forwarded-Encrypted: i=1; AJvYcCUbsiUaKpTQDbPgucbPwBc+GI7JPewq5dNYrEjfhCMA3UfgLwvXiM3C8nkS1H1QrslsqHGHLyTtIeI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzJrK97I6Oe15FQGv2+GXqQ23Ro6ouROdtVxAEvZV3ll61oPBdP
	AFQgJkkBAwkZHh51s2jDm/YZ/gq4PiBc7a8caMjMqzvzEvsSpcOPHejDWPbf+pDHy2k=
X-Gm-Gg: ASbGncsBCSx24VNqu9T/AfKmpOlZV3aliyj9t93ORlSWXXxvzgqtFFGyLfvatRJFVjd
	DaI2yaUkYFMy1JE79zFX7R5j9L4rXcvMSbFi1lKsMdlNCEiqnEck+9SFiW3sJvcgSRdKNCFu22F
	IdbqBPawEqJR0RkAfFPe3MH5MKl5RKMA/DAwKOwQDPk3zUXN6tobUgERjFV80dDplagsKYVf7pU
	vQGQNfmWqBR3BgJPEiNOxVGRpVoA4bgrgqxBFetKXpxR6MPaRzIXOZxag2OKrpuICt3SfuHutuq
	6VrAxGZFXMX5JtFROfY+8gm7I3guFkRdAvF5SOFrHxKRwcxAlWpBNeyCc4nlFGVGiPCxaya7E9u
	E+O4+b7yLw6yj4SXlzJDeuYXmHf6C7mopG9AeRRkA9CS4UrR47qVpsAcN1WuiG05sgyKzFh3QFY
	LgCDH0SnvrSqLEnu6IYK2z5osqauQ=
X-Google-Smtp-Source: AGHT+IE7T3zLtJLZzoLsBItMOrBxunHBl1jg9y/7kshJBu9cagdI0RFnANqpM80LeRmUMaqt6X37qA==
X-Received: by 2002:a05:6830:7187:b0:7c7:59a1:48d7 with SMTP id 46e09a7af769-7c78f381e2bmr1004247a34.2.1763640269622;
        Thu, 20 Nov 2025 04:04:29 -0800 (PST)
Message-ID: <4fb0a736-4450-47c0-9f9e-6cb86a3b28ea@ventanamicro.com>
Date: Thu, 20 Nov 2025 09:04:19 -0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] hw/core/loader: Make load_elf_hdr() return bool,
 simplify caller
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: kwolf@redhat.com, hreitz@redhat.com, mst@redhat.com, imammedo@redhat.com,
 anisinha@redhat.com, gengdongjiu1@gmail.com, peter.maydell@linaro.org,
 alistair@alistair23.me, edgar.iglesias@gmail.com, npiggin@gmail.com,
 harshpb@linux.ibm.com, palmer@dabbelt.com, liwei1518@gmail.com,
 zhiwei_liu@linux.alibaba.com, sstabellini@kernel.org,
 anthony@xenproject.org, paul@xen.org, berrange@redhat.com,
 peterx@redhat.com, farosas@suse.de, eblake@redhat.com,
 vsementsov@yandex-team.ru, eduardo@habkost.net, marcel.apfelbaum@gmail.com,
 philmd@linaro.org, wangyanan55@huawei.com, zhao1.liu@intel.com,
 qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org,
 qemu-riscv@nongnu.org, xen-devel@lists.xenproject.org
References: <20251119130855.105479-1-armbru@redhat.com>
 <20251119130855.105479-2-armbru@redhat.com>
From: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Content-Language: en-US
In-Reply-To: <20251119130855.105479-2-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 11/19/25 10:08 AM, Markus Armbruster wrote:
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---

Nice cleanup


Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>

>   include/hw/loader.h |  4 +++-
>   hw/arm/boot.c       |  6 +-----
>   hw/core/loader.c    |  8 ++++++--
>   hw/riscv/spike.c    | 10 +---------
>   4 files changed, 11 insertions(+), 17 deletions(-)
> 
> diff --git a/include/hw/loader.h b/include/hw/loader.h
> index d035e72748..6f91703503 100644
> --- a/include/hw/loader.h
> +++ b/include/hw/loader.h
> @@ -188,8 +188,10 @@ ssize_t load_elf(const char *filename,
>    *
>    * Inspect an ELF file's header. Read its full header contents into a
>    * buffer and/or determine if the ELF is 64bit.
> + *
> + * Returns true on success, false on failure.
>    */
> -void load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp);
> +bool load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp);
>   
>   ssize_t load_aout(const char *filename, hwaddr addr, int max_sz,
>                     bool big_endian, hwaddr target_page_size);
> diff --git a/hw/arm/boot.c b/hw/arm/boot.c
> index b91660208f..06b303aab8 100644
> --- a/hw/arm/boot.c
> +++ b/hw/arm/boot.c
> @@ -766,16 +766,12 @@ static ssize_t arm_load_elf(struct arm_boot_info *info, uint64_t *pentry,
>       int data_swab = 0;
>       int elf_data_order;
>       ssize_t ret;
> -    Error *err = NULL;
>   
> -
> -    load_elf_hdr(info->kernel_filename, &elf_header, &elf_is64, &err);
> -    if (err) {
> +    if (!load_elf_hdr(info->kernel_filename, &elf_header, &elf_is64, NULL)) {
>           /*
>            * If the file is not an ELF file we silently return.
>            * The caller will fall back to try other formats.
>            */
> -        error_free(err);
>           return -1;
>       }
>   
> diff --git a/hw/core/loader.c b/hw/core/loader.c
> index 590c5b02aa..10687fe1c8 100644
> --- a/hw/core/loader.c
> +++ b/hw/core/loader.c
> @@ -364,8 +364,9 @@ const char *load_elf_strerror(ssize_t error)
>       }
>   }
>   
> -void load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp)
> +bool load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp)
>   {
> +    bool ok = false;
>       int fd;
>       uint8_t e_ident_local[EI_NIDENT];
>       uint8_t *e_ident;
> @@ -380,7 +381,7 @@ void load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp)
>       fd = open(filename, O_RDONLY | O_BINARY);
>       if (fd < 0) {
>           error_setg_errno(errp, errno, "Failed to open file: %s", filename);
> -        return;
> +        return false;
>       }
>       if (read(fd, hdr, EI_NIDENT) != EI_NIDENT) {
>           error_setg_errno(errp, errno, "Failed to read file: %s", filename);
> @@ -415,8 +416,11 @@ void load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp)
>           off += br;
>       }
>   
> +    ok = true;
> +
>   fail:
>       close(fd);
> +    return ok;
>   }
>   
>   /* return < 0 if error, otherwise the number of bytes loaded in memory */
> diff --git a/hw/riscv/spike.c b/hw/riscv/spike.c
> index b0bab3fe00..8531e1d121 100644
> --- a/hw/riscv/spike.c
> +++ b/hw/riscv/spike.c
> @@ -180,15 +180,7 @@ static void create_fdt(SpikeState *s, const MemMapEntry *memmap,
>   
>   static bool spike_test_elf_image(char *filename)
>   {
> -    Error *err = NULL;
> -
> -    load_elf_hdr(filename, NULL, NULL, &err);
> -    if (err) {
> -        error_free(err);
> -        return false;
> -    } else {
> -        return true;
> -    }
> +    return load_elf_hdr(filename, NULL, NULL, NULL);
>   }
>   
>   static void spike_board_init(MachineState *machine)



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 12:07:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 12:07:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167130.1493492 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM3S3-0005T9-Jm; Thu, 20 Nov 2025 12:07:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167130.1493492; Thu, 20 Nov 2025 12:07:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM3S3-0005T2-Fg; Thu, 20 Nov 2025 12:07:51 +0000
Received: by outflank-mailman (input) for mailman id 1167130;
 Thu, 20 Nov 2025 12:07: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=ChS/=54=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vM3S2-0005Sf-Vj
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 12:07:51 +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 88742ea2-c609-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 13:07:50 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH0PR03MB5955.namprd03.prod.outlook.com (2603:10b6:610:e2::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Thu, 20 Nov
 2025 12:07:46 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.011; Thu, 20 Nov 2025
 12:07:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 88742ea2-c609-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PJ8zaSfgMDzWUn4srr52zoGVXkfbM5+fdG1YZ2EH0fjRkGc+7xtuSVDMB7G4dulKFCJ0R4ypDtgtyyqmmVg571O4OcBeJeRsSVfpAcAf3jKh4t4nby8lTv86pO0tEbbblBhb+EguvmFTGnWNzfjxGlybXD4XfJfp3N9Zhn0njIdikKgu9UWKJVdBcb51bK1ZvdObTwxXTA7CDFhcdYbuppXPUdB6Pa6IXKCdxsqvQ4kn46hrsckaVMhzcDq42XhRn42kB5GUJtVDAYQ5r8wv84fENINUlCY9gyAjH1zTDoloEKf3fZdIx3JC7QIunpzPpVEmG8l0VamXfL6FqRQeaA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1Yk4MQuWf2HsEp0T0R8SyJFKiiYK/ggqbJo83GsPQy8=;
 b=thezSZPYqWrzHETlc7s71yBbxLdgtRUWLHKQitFIizZeqDu++k6qpxPTtN7EGmxmBOtrkuSxlDN8XyUsuWbDLR38MqAbTmCBQAV9Yufl9tGofPRdntbk1aLTrLJ5is7d+rkNur+CS+DNmU19Sn97O5uHudBVK5/XkYeplm+Xk98NGtQ5rtd6OOtxgYuHcBYMve7aMERWeXldTS0c916/BGa83BC6C4usYSt6ALpFCpk/yyC3FUCVo7u2CWbYshFctQs0+3VdZRX6eG0Q341WeaMX0ZkaLeOJWcjdnQlxd5Db8PI9CrE35HFYRLcBzO/7txxgskK4hGKyY038m0+RlA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1Yk4MQuWf2HsEp0T0R8SyJFKiiYK/ggqbJo83GsPQy8=;
 b=YwTpo2qHh/MOeixicIO5KSoLkgVdfIeqkAgIewwvghthP/52WLj1BPHeRZi8EOwk2ThIiJ0T1jx/Zhs1dD0UQxolQminwdvJcmvg0MasVirG5DgPBimeKuBLMXwcwroe20kME9qyRncd9UBjeJQeK4Htzh5ljeqPv+DaNfsC3SM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <332c3ec7-cd91-474b-ac03-235a4a30d4f5@citrix.com>
Date: Thu, 20 Nov 2025 12:07:42 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/4] x86/IRQ: direct-APIC-vector setting is now init-only
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: <fbc9a2f8-170a-4645-8836-c90c42ad726f@suse.com>
 <3d412bdf-e053-44f2-b51a-300f9cb3e775@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <3d412bdf-e053-44f2-b51a-300f9cb3e775@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0403.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:f::31) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH0PR03MB5955:EE_
X-MS-Office365-Filtering-Correlation-Id: d1264521-7ba1-458c-df9a-08de282d6a7a
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?MGxqMzhNeXdrVEFRUFZmM2ZmOUI1MzEyZXlOWENXZkowS3NrMnEzUFRtQzhB?=
 =?utf-8?B?SFEySytaaVMxUHBGaXRBY1pEQjUyT1g4c2lQUlpDaDd4U0VPcmU0MVZPam96?=
 =?utf-8?B?cjlKZks1TFRDWjZHYmxqUVIyN0tSR3R2UkN6YlNQZHJrbW9rNmozZHhiSDZ5?=
 =?utf-8?B?QUxJLzA5czFXOVZhNmlaMG13Ykx2VDkyRkM1SnlabWdxVHlDRWpuMDlHZjVS?=
 =?utf-8?B?QmNCREU0QUNpUU1sTitER2NmaEg2K2tVOWIyVlcrOHh5MFp2RE9PRjdBYzcx?=
 =?utf-8?B?RUQ4WmJGbXpMS2hKV043UHpETjhhUlBJbm1SYVg4Z1ZIaS9OcHEvR2Y1Q01i?=
 =?utf-8?B?QnlPS0JUZWNjekJuVjFJOENCald4UWp4SWlSeFVBb0laQXhNYmRBSjA1OWFt?=
 =?utf-8?B?QVBDbGtBcWFvTzRBaGJNYitBR2xSMUlLbnZvSXFuNUZ6MjcvalE2eXdJdnR6?=
 =?utf-8?B?S21JeGY1a2FuNC8valorQTZoRmFQV3ZwVHJadTVUanJyTGlMVFdJT0tna3N3?=
 =?utf-8?B?dzhHVVNZUTBuaDBsaE5mVjJBR2FSdW1MWFJORVFqaGtPK3lXaG1KQ2ZESEs3?=
 =?utf-8?B?YlNxT2ZDc05kZWRUbUdDelFiV2tHYnlEcFU3dWRWNXJOdEhyQ0ZQc0RBYllQ?=
 =?utf-8?B?bWZFUzNML0hSaEpHYzlpYS8zVVphdmhRNTZlcDVNWG0yanV0QXZ0YjZxTUJm?=
 =?utf-8?B?czBmbTZBeHZMMitPMGtuYzMyUnVvcU1abGlINlBZeU0zdkJ4Wmo1Q2pkSFV1?=
 =?utf-8?B?QUtaamFJeGg1aUlQSXo4R0pBemVVYzc3UFJLeHlReEh6YTRVaUVGa09VVEhs?=
 =?utf-8?B?dlJibVdkcnVhdGxqWmdhejlRS0hSN3E2bk9IL09aUDM2cXRXSnYwWkZBSW5U?=
 =?utf-8?B?NjYwRDJyNXpuT1E0YnE3OHUzWEVmQ1ZjK2NodEVFb0VNRnRuOWpSakZxOUQ2?=
 =?utf-8?B?SG5NQjN2K0dEeXc2NG5OOHVnMk1Rb1FHdFROUlFia3BqdVVIb0NpRmJaRmpW?=
 =?utf-8?B?QVlGV1A5WWJ6S2FGTVBtdFJNTmYwYmd2ZUdCVUpyWmJsQ09SS2ovZkw1YnZj?=
 =?utf-8?B?UmlSTE5nVllFcll6WCtzVUtLNDRxZDV6a1ByMkg2YU9zb1FFdWt1VmFWQW9W?=
 =?utf-8?B?bncrTUNwNHVKaHhBU0YvR014MlN2a0hQaVE0L04yMGNXd0lReTJ5ckNFMWpY?=
 =?utf-8?B?cjRyaEJsSHZ1dStGbG96RHIrSzVLc1hRZEY1S0l3KytWV3ZJTWlTcGx3RnBV?=
 =?utf-8?B?cEtta1pyY2E3TjViYXFWT3BLVW5PTEdwVlRHbDZnMVgyb1o1OUx1d2phZ01w?=
 =?utf-8?B?OUNjT2NhMVZwNkRqZk5NMmFiWlNyMXF4UDhiQ2FXMWJNWUlUakVzR3d6WWRn?=
 =?utf-8?B?UGpBWk9SV0lYSmIxMUsvSVI2bnNSNEJzWlBtR2pub3dpclcxTDdVbGtGQ1JN?=
 =?utf-8?B?MUpuUlFOVVNLQ3FCVVo0OS83SVJkSFVoQmhYTXZWdVE3bm9MNVU2NnZJelFu?=
 =?utf-8?B?SU4ySTV0QVRDWHdCMlhkMXhUZmZRL2xtSUxwRC9QRmRvdElqektlVDJhZzFN?=
 =?utf-8?B?UnpWM1d6SkpjM1J0ZnVNdWtLNWtwbjh3LzZETk5kUGk1K1BTWS83RTdIZnVE?=
 =?utf-8?B?MWhUMVhqKzdnclduRnlMTm9UMFYySlJuZmFyOS83WlZDMk85dkh6amYrQWI4?=
 =?utf-8?B?TzFzTFhEZ2owTmFNWmxJMjhZd3pPejVKenBBUHNTdGcyYnAyY212cG5SUmg0?=
 =?utf-8?B?QUpSOWVLMkJXemdEdHIxNGFYZmU5NFp3YURodlBQMDhhNmE0c3lCTnJQUUFz?=
 =?utf-8?B?cXgvdFpIUUdrSTg2RjQ0dEhSejZZWldzYnJ1SGNqd0lZcmRCKzJaUWxscFI3?=
 =?utf-8?B?S29hQmVJT0FvV1g0NHMxWmM5ejN4RXoyK0pYYkg3cUppUWNYbVlnRnlOZ0s5?=
 =?utf-8?Q?QPWj/k7gbjTBtelDvOQ57ZU2l07GVdww?=
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?dzhNS0w3MXA4YWNvUFVjVm9DejBuTy9KTVdZNHp3eDdHRVJ6eEQrWEJhNlE3?=
 =?utf-8?B?WVl2Nm5iZlJnZ0JlcWtralBqaW9GVVNYUE1jMzlBV1pLOFFpS2dpeStwNkdB?=
 =?utf-8?B?VnVaZkVhQUdQYnNmY3JiblhwOURTVTcyQjlDLzhkRjgxL2VGVTNXYTI2YTFE?=
 =?utf-8?B?Y25yellBbTFMd09IbGV4Q29ER0Z6VjJPWWVXdDBramxJTFhVb0ZvSEZ4ODZB?=
 =?utf-8?B?RDc1WmplTXdwQTNQWWI1Y0xScG8rLzliR0s2cmZVc2Z0V2VZNDliVGExL3B5?=
 =?utf-8?B?Tk5lWmltVm1iSHFrOEwwczZpN0ZZalgrdEZBVGNKYS9HNExKckh3MGlHVnQ3?=
 =?utf-8?B?K3M2bDBGdENkNHUzdEdHd2xUTjhNdzhZUEpPSHNKWkh4KzBBLzBsNDZ0VFQ2?=
 =?utf-8?B?b0tpMC9KbzhrOFlTenQ2WHR6VDIvbTQ0RllXMFRvMStMZVg3VzVSa2hGZ2pN?=
 =?utf-8?B?UktXVmJrV0h3djdsTFJCMW9lS3krcCtnZmN1MURpakdZL1B2SUpSbSt3emEr?=
 =?utf-8?B?aENZZ2YrVUtGdi91ODhER1JXV3ZFOWZ1WmRXaEhFZ2ViMzAwYWhCTG1jb2hn?=
 =?utf-8?B?SGY3ZWZqSmlZS1NHSXpEeWJLcTV2ODdJdW5mbXhUSnRHeitUSlU0eGsvUHg3?=
 =?utf-8?B?NFBsV28xd3c2Y3FQT3I3VzdqSlBUSXV2M00vR2tCY1FLNmhJNC94MHcvcE1B?=
 =?utf-8?B?cm1HV2JyTzl2ZW1MeHFzSkJuL0dMT1F2ZWpKTTlrc1ZlTC9RYVlQYzhEdlRB?=
 =?utf-8?B?RldmNnFGT25kSmExcUpFdjMzc1VaS0NaTVZLajlGa3VEL2NCc2RZY05Vb3Z0?=
 =?utf-8?B?aXRDTjFmVXR2TGp2KzY1Nkx5L0c2NzB3S3JpWkVuK3pGdk5TRlJTSXFuMkdZ?=
 =?utf-8?B?TWxzN3lvenZoZ1YxUGhYbjgvckc3TGkwNjcrTm5DV21JcEMvYUlSckFDQmFv?=
 =?utf-8?B?YVZIVG5ldTN0UFV4SFEvaHN1UDhsakFHNXJJaTd3ZWRMSUtCeVo2UWRPYWI1?=
 =?utf-8?B?LzZOREVvcFlGMjJHSmFtMzF5TE10VlYzTjU4OHdMNVN4cE90YmVTWlVNaGgw?=
 =?utf-8?B?alAvYXNyWlNJRG9jSFAvWUJ5ajNnUnh2cmJSWWFvTy8xaXdhZnNNTWlMN2p0?=
 =?utf-8?B?UjJHTXBBbk44QUlBZUdSN1Z0QjRjVEZZbjRVeERQb3Urc2hOb2FESjZ5eGFV?=
 =?utf-8?B?UCtlMlM2eVN1dytsT2NNKzE3RVlob2d4dVFram9FcHlCTWNsL0trTHlaZlE2?=
 =?utf-8?B?UjZFQmlrWExNUlFIazExQ01nNjNJOUR0cGFSUzIxZTkwemtLK2R0N0xRNzRr?=
 =?utf-8?B?Wjh3T0xNU1I0OVA4YzRBMWxpSGpGQnBmZk9PMFpqTnBRUjVIOEFCeVFvT0dK?=
 =?utf-8?B?S0dwSU1VY053TEFLYituOE5zMTE2ZFh1Z1FSY3lOYjBrUDNTNTUxeHRDNDZv?=
 =?utf-8?B?L0xVT3QzYllybjR3cVJEYjAxNFdJVmxLd0FyNm5qM0FUSVBSZmZDYTY1NG1I?=
 =?utf-8?B?eGYwMXBaTzM4cUpQc3FvSE43UXpFT1dBQWZzRDZ4TUQrc2JMbEl6TXBITFJu?=
 =?utf-8?B?ODFMQTJJNERUaFV2OXhLaXk3ZC9DNnE4c2VWZXl5eWc3K0N0L2hCbWlmUkxu?=
 =?utf-8?B?emdkZUoraHd1UnpWNjQzdFJJREJLbFU3NkNiSHg1dzZKVDlPQWk4VDZDVE1l?=
 =?utf-8?B?VHBUSzJHSTM0c3Z2SXE2UkNPblZHdG9ucXZ1NkpGQ1pncUloeFFoNnllWDZO?=
 =?utf-8?B?OWIzRjdqa1J4elBjTHdmR250WVBiYXpSTW9MTGRUSHV0K0dVS2hFVzhvZE1V?=
 =?utf-8?B?Yi9JQ2puVWxsTzR3QjZrdUJnekVJcUxqWldiOUJTTklDK1dKTDM1bkNRRE4y?=
 =?utf-8?B?NGxWamJ5QU43RnFFOUQzN1UzbjFocUxnUWN2YjFobTMvWXVrUU1KRTJQd1lk?=
 =?utf-8?B?OFV1b3lXeUNBK0N4Q3drcDcwckNJTXdIWk9kcXNYS295NFdiZTV0ZlVSdXd2?=
 =?utf-8?B?UHNxUEhTL3F3eHNOYlEwNGc4YzVsbFBNWUVDWmQyNlg5aDVaZDA4dUtDOWE5?=
 =?utf-8?B?c3RsQW1SZGt5Q2RpdHFKcmVMOW9HY1hEK0FaOXRweW9sY2NTZXFUazM1dDdm?=
 =?utf-8?B?OHlja3hGUWlMU1Z1eWpPZTFRdEZhRlhmUWlJUkljRlVIdVRCUHNOaWx2TFVM?=
 =?utf-8?B?bHc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d1264521-7ba1-458c-df9a-08de282d6a7a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 12:07:45.9819
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9n6G0PCx/Ms7IYVBL9YbSdsJdwGZYzYvOm8RK7NU3ftkvJYQyfhpyEPPPX/awc7OyFs2JuKb0iMdg4xhCiPnaraTZBFrmLgviX+w1fvo+L4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB5955

On 19/11/2025 10:50 am, Jan Beulich wrote:
> With all callers of alloc_direct_apic_vector() now being limited to BSP
> setup, it and its helpers (whose other callers have already been init-
> only) can become __init. As a result data items can be adjusted, too.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Question is whether with this the "if (*vector == 0)" in
> alloc_direct_apic_vector() is of much use anymore.
>
> --- a/xen/arch/x86/irq.c
> +++ b/xen/arch/x86/irq.c
> @@ -970,22 +970,22 @@ void pirq_set_affinity(struct domain *d,
>  DEFINE_PER_CPU(unsigned int, irq_count);
>  static DEFINE_PER_CPU(bool, check_eoi_deferral);
>  
> -uint8_t alloc_hipriority_vector(void)
> +uint8_t __init alloc_hipriority_vector(void)
>  {
> -    static uint8_t next = FIRST_HIPRIORITY_VECTOR;
> +    static uint8_t __initdata next = FIRST_HIPRIORITY_VECTOR;
>      BUG_ON(next < FIRST_HIPRIORITY_VECTOR);
>      BUG_ON(next > LAST_HIPRIORITY_VECTOR);
>      return next++;
>  }
>  
> -static void (*direct_apic_vector[X86_IDT_VECTORS])(void);
> -void set_direct_apic_vector(uint8_t vector, void (*handler)(void))
> +static void (*__ro_after_init direct_apic_vector[X86_IDT_VECTORS])(void);
> +void __init set_direct_apic_vector(uint8_t vector, void (*handler)(void))
>  {
>      BUG_ON(direct_apic_vector[vector] != NULL);
>      direct_apic_vector[vector] = handler;
>  }
>  
> -void alloc_direct_apic_vector(uint8_t *vector, void (*handler)(void))
> +void __init alloc_direct_apic_vector(uint8_t *vector, void (*handler)(void))
>  {
>      static DEFINE_SPINLOCK(lock);
>  
>

This function, being __init now, cannot possibly need the spinlock.

To your question checking vector for 0, that always wrong in my opinion,
stemming from this being a bad API.

It should become:

diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
index bb3c9f9e5234..9ae0bece1af7 100644
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -161,7 +161,7 @@ static void intel_init_thermal(const struct cpuinfo_x86 *c, bool bsp)
Â Â Â Â  }
Â 
Â Â Â Â  if ( bsp )
-Â Â Â Â Â Â Â  alloc_direct_apic_vector(&thermal_apic_vector, intel_thermal_interrupt);
+Â Â Â Â Â Â Â  thermal_apic_vector = alloc_direct_apic_vector(intel_thermal_interrupt);
Â 
Â Â Â Â  /* The temperature transition interrupt handler setup */
Â Â Â Â  val = thermal_apic_vector;Â Â Â  /* our delivery vector */
@@ -689,7 +689,7 @@ static void intel_init_cmci(struct cpuinfo_x86 *c, bool bsp)
Â Â Â Â  }
Â 
Â Â Â Â  if ( bsp )
-Â Â Â Â Â Â Â  alloc_direct_apic_vector(&cmci_apic_vector, cmci_interrupt);
+Â Â Â Â Â Â Â  cmci_apic_vector = alloc_direct_apic_vector(cmci_interrupt);
Â 
Â Â Â Â  apic = cmci_apic_vector;
Â Â Â Â  apic |= (APIC_DM_FIXED | APIC_LVT_MASKED);
diff --git a/xen/arch/x86/guest/xen/xen.c b/xen/arch/x86/guest/xen/xen.c
index 640872efdd2a..a473296ba94f 100644
--- a/xen/arch/x86/guest/xen/xen.c
+++ b/xen/arch/x86/guest/xen/xen.c
@@ -289,7 +289,7 @@ static void __init cf_check setup(void)
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  XEN_LEGACY_MAX_VCPUS);
Â Â Â Â  }
Â 
-Â Â Â  alloc_direct_apic_vector(&evtchn_upcall_vector, xen_evtchn_upcall);
+Â Â Â  evtchn_upcall_vector = alloc_direct_apic_vector(xen_evtchn_upcall);
Â 
Â Â Â Â  BUG_ON(init_evtchn());
Â }
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index e2b5077654ef..0919edd73312 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -3118,10 +3118,10 @@ const struct hvm_function_table * __init start_vmx(void)
Â 
Â Â Â Â  if ( cpu_has_vmx_posted_intr_processing )
Â Â Â Â  {
-Â Â Â Â Â Â Â  alloc_direct_apic_vector(&posted_intr_vector, pi_notification_interrupt);
+Â Â Â Â Â Â Â  posted_intr_vector = alloc_direct_apic_vector(pi_notification_interrupt);
Â Â Â Â Â Â Â Â  if ( iommu_intpost )
Â Â Â Â Â Â Â Â  {
-Â Â Â Â Â Â Â Â Â Â Â  alloc_direct_apic_vector(&pi_wakeup_vector, pi_wakeup_interrupt);
+Â Â Â Â Â Â Â Â Â Â Â  pi_wakeup_vector = alloc_direct_apic_vector(pi_wakeup_interrupt);
Â 
Â Â Â Â Â Â Â Â Â Â Â Â  vmx_function_table.pi_update_irte = vmx_pi_update_irte;
Â Â Â Â Â Â Â Â  }
diff --git a/xen/arch/x86/include/asm/irq.h b/xen/arch/x86/include/asm/irq.h
index 7315150b66b4..0cf47a883722 100644
--- a/xen/arch/x86/include/asm/irq.h
+++ b/xen/arch/x86/include/asm/irq.h
@@ -119,7 +119,7 @@ uint8_t alloc_hipriority_vector(void);
Â void free_lopriority_vector(uint8_t vector);
Â 
Â void set_direct_apic_vector(uint8_t vector, void (*handler)(void));
-void alloc_direct_apic_vector(uint8_t *vector, void (*handler)(void));
+uint8_t alloc_direct_apic_vector(void (*handler)(void));
Â 
Â void do_IRQ(struct cpu_user_regs *regs);
Â 
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index c740035927c2..f50b5b5d5037 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -985,16 +985,13 @@ void __init set_direct_apic_vector(uint8_t vector, void (*handler)(void))
Â Â Â Â  direct_apic_vector[vector] = handler;
Â }
Â 
-void __init alloc_direct_apic_vector(uint8_t *vector, void (*handler)(void))
+uint8_t __init alloc_direct_apic_vector(void (*handler)(void))
Â {
-Â Â Â  static DEFINE_SPINLOCK(lock);
+Â Â Â  uint8_t vec = alloc_hipriority_vector();
Â 
-Â Â Â  spin_lock(&lock);
-Â Â Â  if (*vector == 0) {
-Â Â Â Â Â Â Â  *vector = alloc_hipriority_vector();
-Â Â Â Â Â Â Â  set_direct_apic_vector(*vector, handler);
-Â Â Â  }
-Â Â Â  spin_unlock(&lock);
+Â Â Â  set_direct_apic_vector(vec, handler);
+
+Â Â Â  return vec;
Â }
Â 
Â /* This could free any vectors, but is needed only for low-prio ones. */


which makes it a far more normal looking API, improves code generation,
and gets rid of the pointless lock.

Feel free to fold this in, or I can submit it separately, but I think
both parts want to go in together.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 12:08:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 12:08:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167141.1493501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM3T5-0005xt-SD; Thu, 20 Nov 2025 12:08:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167141.1493501; Thu, 20 Nov 2025 12:08: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 1vM3T5-0005xm-On; Thu, 20 Nov 2025 12:08:55 +0000
Received: by outflank-mailman (input) for mailman id 1167141;
 Thu, 20 Nov 2025 12:08: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=nz19=54=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vM3T4-0005kL-O6
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 12:08:54 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ae2f2f13-c609-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 13:08:52 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-64074f01a6eso1332143a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 04:08: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
 4fb4d7f45d1cf-64536460ea9sm2134127a12.35.2025.11.20.04.08.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 04:08: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: ae2f2f13-c609-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763640532; x=1764245332; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6HFZ4cWrExzYCC8gjGfgz7UHmSxWpqHByThC9z7gNlA=;
        b=QXRCAsXP8gPM/iXOt+bP0HSi2OJt0k7VUsGexJ+7ZAEyXoWp7ATDAPs+Tqu2Jo/P7a
         Ms5Pr2nySoAy0glcfDyC4hPakreh47KvioOkcdRJNJphMld7PExCWIoDgrjwiT4L2zDO
         s0OuXY+N2XbuCAjGAkgnJMQ+2jeE6kNBf5KrBbYISzbrY8K13Fw5jtTk/c7l9b8SDhOZ
         pA5DYa/zmcRR1QglPH3wtaoA9BaL3VbmFKCdInvEfHcQEJXQtfslEwpgn3arcKKOos6a
         XNkdnN3b/7Wkn/ujbuXXpPoiU0BjKA9kxCkTSIGLFUWkPHXPaku+Z/JhabpqdUUgqYJ1
         v5Gg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763640532; x=1764245332;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6HFZ4cWrExzYCC8gjGfgz7UHmSxWpqHByThC9z7gNlA=;
        b=VzXlKqtd3t2QwctBjA05ENTW99WBU5weFm3J4vsv5Wh1v9sMEiHnMeAsr9nPvhfhZq
         2BMNS52/LuqGPa2ZGyaG6z62GAaa6z4D5upEpoTqx3ZxEUcD4pDmUNeCmNqqbzdoD7Vf
         iFcIZMrv38qe15YWgek/xoX9WyMML8yY198/5W95L9B7bPc9qu7pQelPHAjwrTt5aaUv
         rWLdB5Lc3s0XHpB2tHFQPIFbrIOIJFepk1ablPFhoTWpzbfNb1vKbAlgpNA6uRzdT2n5
         rnfg6VJ57CUN9RzS2Lh7pBi2QSXfR+68EyKpMqkyD1+LCP8X2PbmpaOtuWySA1XaCGs1
         5LaA==
X-Forwarded-Encrypted: i=1; AJvYcCXjmjmCt/kt1TAjJIHzcGdsPMP4e6RcwC/g4NB+LCjrR3zzA1aCSLm8jDcBALmam8s3Po3ps2lyYNQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYULTAEC/a9Ajl64DF2wkSSE8l1N8o+tS6mYSQJCNuVu8CG3kT
	XGAt4Jo2nWFKckNElqGoqvZ2Lhpore4KUmDfq/mnOz5X1Kp2xLirnxWNgtpNuPSGKQ==
X-Gm-Gg: ASbGncufmgRNNiZcwz5Yp7QgupXsI5JPZHfeM5JWYEsuV2fA+Us3iC3IjgmcjAxNjgZ
	/7lcvLpvbMvhF+0EZg7BgXJIwo4V4NajotsuJ24MN01K9FZFZPweTO8LSMIeBmkkllkXr2E8eup
	qzO9n6BnTJB3AVLJNwFc5VLcfJZ6o08EPVfPAR4q4WSRev5tE1tZe0TBvs5CJVDbMaeRWKXlon/
	baZvC3jJMGXq0n16lRc9fKeAYPueqwo1jdl1r0ux/TDH8sBgP85wMG4s3kR74rbvjLHjdqv7kR8
	3CEWBBVS7yDAJ2P0/bbZrwOw6uRgSPDWR4BmjLPmgsj+it0C5H05Lv1xqPt9Z48jx+/yk49/19A
	TAr+IUZFbuUjLEXiZ8xjPg1ZcvWeQ2ipjgu9er9ThrJfg0Avc7bTGbb1zvTZzWDGdhe3sCPEmxq
	RbPQs+nUO581Jj30t1y0Fn29M+RiJJhhTRaKLkzK8n90Go8Z7Mq2k1Z60/5vF+X6lG4WuN4sBYm
	ieFzNbg9OhnDw==
X-Google-Smtp-Source: AGHT+IG5IpfwEJrL/fj6jnrhVfqCF+5PoTm+3QAWTlBDLt99Rkdrk3H5b5+8pHuRh3tYY8Zod/ZzgA==
X-Received: by 2002:a05:6402:1d4c:b0:643:18db:1d82 with SMTP id 4fb4d7f45d1cf-645363e48e5mr2824333a12.11.1763640529791;
        Thu, 20 Nov 2025 04:08:49 -0800 (PST)
Message-ID: <a61f67ce-8568-416b-9e89-aa22d794e886@suse.com>
Date: Thu, 20 Nov 2025 13:08:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/4] x86/guest: move allocation of Xen upcall vector to
 init 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: <fbc9a2f8-170a-4645-8836-c90c42ad726f@suse.com>
 <5ccf9000-9847-40de-838e-cb181633b098@suse.com>
 <943e462f-d948-4f72-8d4c-626febca5b32@citrix.com>
 <4a266547-b058-49c0-8c45-7a80f8ada3b7@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: <4a266547-b058-49c0-8c45-7a80f8ada3b7@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.11.2025 12:07, Andrew Cooper wrote:
> On 20/11/2025 11:01 am, Andrew Cooper wrote:
>> On 19/11/2025 10:50 am, Jan Beulich wrote:
>>> There's no need to do this every time init_evtchn() is called. Just do it
>>> once when setting up CPU0. Drop the assertion as well, as
>>> alloc_hipriority_vector() (called by alloc_direct_apic_vector()) uses more
>>> restrictive BUG_ON() anyway. Then evtchn_upcall_vector can also validly
>>> become ro-after-init, just that it needs to move out of init_evtchn().
>>>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>
>>> --- a/xen/arch/x86/guest/xen/xen.c
>>> +++ b/xen/arch/x86/guest/xen/xen.c
>>> @@ -233,16 +233,12 @@ static void cf_check xen_evtchn_upcall(v
>>>      ack_APIC_irq();
>>>  }
>>>  
>>> +static uint8_t __ro_after_init evtchn_upcall_vector;
>>> +
>>>  static int init_evtchn(void)
>>>  {
>>> -    static uint8_t evtchn_upcall_vector;
>>>      int rc;
>>>  
>>> -    if ( !evtchn_upcall_vector )
>>> -        alloc_direct_apic_vector(&evtchn_upcall_vector, xen_evtchn_upcall);
>>> -
>>> -    ASSERT(evtchn_upcall_vector);
>>> -
>>>      rc = xen_hypercall_set_evtchn_upcall_vector(this_cpu(vcpu_id),
>>>                                                  evtchn_upcall_vector);
>>>      if ( rc )
>>> @@ -293,6 +289,8 @@ static void __init cf_check setup(void)
>>>                 XEN_LEGACY_MAX_VCPUS);
>>>      }
>>>  
>>> +    alloc_direct_apic_vector(&evtchn_upcall_vector, xen_evtchn_upcall);
>>> +
>>>      BUG_ON(init_evtchn());
>>>  }
>>>  
>>>
>> This patch is fine, but it would be nicer to split init_evtchn() into
>> bsp_init_evtchn() and percpu_init_evtchn().
>>
>> Just out of context in init_evtchn(), there's a check for CPU0 that also
>> ought to move into bsp_init_evtchn() (and therefore into __init), at
>> which point the percpu simplifies to a single hypercall, and we keep
>> subsystem specifics out of setup().
> 
> No, scratch that.Â  HVM_PARAM_CALLBACK_IRQ is not in the list of HVM
> Params that migration moves on migrate (see write_hvm_params() in
> xg_sr_save_x86_hvm.c).
> 
> Everything is awful.
> 
> Could you include a comment such as /* HVM_PARAM_CALLBACK_IRQ is not
> moved on migrate, so has to be set up again on resume. */ to make it
> clear why that piece of logic needs to stay in a non-init function?

It's pretty much unrelated to the change here, but yes, sure, I can add
such a comment while touching the function.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 12:11:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 12:11:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167156.1493511 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM3VD-0007Xf-BG; Thu, 20 Nov 2025 12:11:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167156.1493511; Thu, 20 Nov 2025 12: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 1vM3VD-0007XY-8V; Thu, 20 Nov 2025 12:11:07 +0000
Received: by outflank-mailman (input) for mailman id 1167156;
 Thu, 20 Nov 2025 12:11:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nz19=54=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vM3VB-0007XS-JN
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 12:11:05 +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 fc1d91a0-c609-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 13:11:03 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b737c6c13e1so150552466b.3
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 04: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
 a640c23a62f3a-b7655051625sm194625566b.65.2025.11.20.04.11.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 04: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: fc1d91a0-c609-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763640663; x=1764245463; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zmIVRrPfbg41gA+a6ffxp9TdPPfgOWMvBkwtwAqD0sE=;
        b=LYuVelq2KVBczLC40DPSrvhq6BqzoRa3DtSGpCwz+wn2wNRVeNKKx4PJFJ6kxfvdkc
         86YFUk4zLsxvmhIfMs07sORHo7H1kdnGXaquwGGQQKDVOAxaiT1I9ExWvuWDlueEnI6n
         4ORhxS7Z7e4q2NKf5sRdnXpfv7+CZBepW7KWQ87eapvb9gE8Gzr1IzLRRe3T1WiH59p+
         h4L1+/ooAt89YJWs+KYdPheMlUMTGnvgoIuj3gTdQM/fPDQ6omRM/uLtn8DDToDmDtau
         3d5aKAce1/Nsd07PsLJA8RepfQg8kS+axZC69FQrLTu5/5HLydVhTv5aAzj5/dCjFwzP
         Z6SQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763640663; x=1764245463;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zmIVRrPfbg41gA+a6ffxp9TdPPfgOWMvBkwtwAqD0sE=;
        b=VhtZw27BGmf7DUopwi0qouEJSooOqfzkgonIfr+72XIOW1w2DMVZEBynq6sEdJJ3fG
         7gYPK3zIcTq9qC23eJEwC13lr6uvUTKlHvl5YDEDDoV1PydealKI6JwwRSPledqmMnFU
         qTaRvv/HSs9hlV4qMAVNN2Q5tIN/goYP1yOylwMThcOVXFyMC8Z15K00Rb29qEgS6a8Z
         P5kJdjcVfbwW7FGUdM/sNaTfwgyYlg5goafz8qoVQ8SZRJLjP0nRFqt4D3+FYhqk07Q9
         CynI1+jp5rYr5JO32l4K2xm/3zEHgUC3h20+E9ZkTu3BOCxPLJehLUkn1WePNzo9QwIR
         zYOw==
X-Forwarded-Encrypted: i=1; AJvYcCX+tUCYwMhSqMLFdE2mDYfg1NnSr24PPK2m6jhupN+Y/vhmGgnatEPZ70NybRczW6y1oJs007M1swI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxtnbdaMgOBb92G3bwLcmKiQuD/BxocR93NpKMGx7Lgtwg/pE6D
	iv6Wn9sa1hogdbj7bqIdewdrbon/0YW+DUK586gw6WherS2TAoBWAGll0vtp2KNvTg==
X-Gm-Gg: ASbGncszmeiI/1y9k226xcWf0ku1HZKeO6DEvxPg9cUMoBhCbXfSEm2wNny1RuSARGk
	xEGcanwf9nxNBdVOjy7ZHTcXIF+22+FwNYm+faViaR43djUESThq4I1jD/MeYxDWfEPz7kONmAX
	NHT7CbyYSEaVhZa4lv2u6IrWhTY6miI0Kh2V06WRxoa4KuBgqA38gWJL9hRRpHZYRQBohnvdrnX
	VGdKyteTAplRpXr0z6y/+QYrtpOWwblYms1CpW2k2HIkB6NCDW3Wy09fcYWJobgyoVSQBhORreS
	FL0Pldx1P10K7oKAkaQHf7ktdKG9f1kkezGmUezp/kX6rLH6y4czmZCRUS5rFfg20OkaZ+WeUqa
	wCxncx/Pz+gMMUl8r4XY94ZXOc/lyWDckbeP+LiL/MoCiEXENsQ2++0NbK4q/96l+JKOXDYqEOH
	EP+zm0awgAL6ZsQGAbC5ph2NYzlR7zAjsMU3M9ECP43wGcH+2FYBhRfz1TwzxuhJCbfcnLqaxx1
	ykyIgp+O0+XaQ==
X-Google-Smtp-Source: AGHT+IGfyA6JyNOPguw3sQbMfZXScw8QvzJiY9ARppOrjQeeXKY+1EdH/RZluC/4pgggG8bq2slLTg==
X-Received: by 2002:a17:907:94d1:b0:b73:4aa5:35e5 with SMTP id a640c23a62f3a-b7654d8c128mr370197766b.7.1763640662970;
        Thu, 20 Nov 2025 04:11:02 -0800 (PST)
Message-ID: <5a476cc5-0095-4783-bde9-c84f24740372@suse.com>
Date: Thu, 20 Nov 2025 13:11:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] x86/MCE: restrict allocation of thermal and CMCI
 vector to BSP
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: <fbc9a2f8-170a-4645-8836-c90c42ad726f@suse.com>
 <638d0954-e889-41ee-b277-282f83170c69@suse.com>
 <ed2f44ce-b28d-482f-b6bb-5ef40149f2b2@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: <ed2f44ce-b28d-482f-b6bb-5ef40149f2b2@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.11.2025 12:51, Andrew Cooper wrote:
> On 19/11/2025 10:50 am, Jan Beulich wrote:
>> --- a/xen/arch/x86/cpu/mcheck/mce.c
>> +++ b/xen/arch/x86/cpu/mcheck/mce.c
>> @@ -110,13 +110,13 @@ static void __init mcheck_intel_therm_in
>>  }
>>  
>>  /* P4/Xeon Thermal regulation detect and init */
>> -static void intel_init_thermal(struct cpuinfo_x86 *c)
>> +static void intel_init_thermal(const struct cpuinfo_x86 *c, bool bsp)
>>  {
>>      uint64_t msr_content;
>>      uint32_t val;
>>      int tm2 = 0;
>>      unsigned int cpu = smp_processor_id();
>> -    static uint8_t thermal_apic_vector;
>> +    static uint8_t __ro_after_init thermal_apic_vector;
>>  
>>      if ( !intel_thermal_supported(c) )
>>          return; /* -ENODEV */
>> @@ -160,7 +160,8 @@ static void intel_init_thermal(struct cp
>>          return; /* -EBUSY */
>>      }
>>  
>> -    alloc_direct_apic_vector(&thermal_apic_vector, intel_thermal_interrupt);
>> +    if ( bsp )
>> +        alloc_direct_apic_vector(&thermal_apic_vector, intel_thermal_interrupt);
> 
> We really don't want both c and bsp passed in.Â  That can only go wrong.
> 
> Furthermore, this function has 2 other examples generating bsp locally.
> 
> The function is in desperate need of cleanup (MSRs, variable and
> constant names), but right now this makes it worse.
> 
> Please either use c == &boot_cpu_data, and I'll do some cleanup later,
> or generate bsp = c == &boot_cpu_data and fix up all users in the function.

No, throughout mce/ this won't work as long as acpi/power.c:enter_state() has

    mcheck_init(&boot_cpu_data, false);

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 12:19:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 12:19:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167173.1493521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM3dW-0000EH-4c; Thu, 20 Nov 2025 12:19:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167173.1493521; Thu, 20 Nov 2025 12:19:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM3dW-0000EA-1l; Thu, 20 Nov 2025 12:19:42 +0000
Received: by outflank-mailman (input) for mailman id 1167173;
 Thu, 20 Nov 2025 12:19: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=nz19=54=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vM3dU-0000E4-Kr
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 12:19:40 +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 2e69f3c7-c60b-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 13:19:37 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-b7370698a8eso103056466b.0
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 04:19: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
 a640c23a62f3a-b7654d502cfsm193801866b.19.2025.11.20.04.19.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 04:19: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: 2e69f3c7-c60b-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763641177; x=1764245977; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=C9myL99Uo2Qoxrz9etA5ylRZ+iOvN0T4AJCeJfo17ZQ=;
        b=ePN+54LhKJe9Vo2+R74cXscSPaA2NvQCkrVcRde6yJU1I+MYEuI7wyqQ3ib69m3ttN
         XkNkY1EGUzhUcaChCpUeHGIXdrzyZY2We5qoLYTTjEjNxwOnXfTm5NH1PC7NrTHIjJAH
         eMFdzXVcPJrLINheGTF6VUkc6oDqdIoppU/hsAWnGbt4bUaCYIiz+9IBW1uDfD2TfEQP
         8WDjjEabkwEbqT3qHsH9DuMG8n4+poVAx33pTxhaCbSziwOhq7eoVNOmS9ngaAPoNb84
         XaodBnzF8D9jeHR43WkMccMf6rHECfUHxYvMBXqHBFTO3u/DQyJLixt3K+xWsuT55hl1
         C48w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763641177; x=1764245977;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=C9myL99Uo2Qoxrz9etA5ylRZ+iOvN0T4AJCeJfo17ZQ=;
        b=SmlVbWz7z9hXKX0Qjiag25TSHdW2WL74oRFFAH2uKO/qpJAGLkOM9HVFWj6d+LIJIv
         LszLBbrS3hdGrZBXIThvlkLzdrm24fjczjTWuPI+6IZHoKoG+4KWf8sBrK9FEvflzyLp
         QFGEkwuk0LOgbpr9naeF4VpmZXs0YPMyPakWId5YrOHkmLHf+XFmAc9l5g4yNCMzxgP9
         1/BG/KzK56ZjNRg5eIfzFZ98xcko/N6e1eWgTqqmF63hmYGxZci1zHIPLsEBwFZZInNX
         du5wOUsOJ+2BbaUbCx0gqHsyX8fk4XnY1QrhALMq3S2kh1eKyOzMxFTqNedacENu/t3C
         hqFQ==
X-Forwarded-Encrypted: i=1; AJvYcCVyszP1eY4axFmZbFuEPoQ8r2L6G0owyRFKny7rceHCZZjcgEzd7GlUTPvjoa32LyyWcrGcoTydt+A=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy9XJ6TkYLvVvgkkR6hsoTRc4Le+btkrEuykHJ67cQTlrJha4a8
	j3Utv41Q1vU/66eEZ7XEGRISp4ZiLhRg2U6VFJlNwhb7Dzd2Ci54EKdeQ1Mz0tjAytaUWaK3TGU
	OxMI=
X-Gm-Gg: ASbGncv2UJjKmvVZdFDgZyoLK8FwASMmfSWmUO0oXGxyYc2Y6KtZ0n0PtruSNT7Ipt9
	Z7AiKfVJrGqL6uUKMHFTNEN/Mz+jlg6cnwNFSfWynEt9GPLRhDU0sl1eeUcSsBrrJQw7CdtewiS
	nRNNpXtrhUdDL6iiD0pb4F0tfjJz1bXCi32e6dqIo9xlKq+dVJgklZtWyFBbAKY7JkjishF1QfU
	HBzqja/ccsg0lEesjxkuTcnb0grb93UsncPZjg+IcHmLMEH9g3RH4FEAs/aOXVbCuQg6w/Xy/Nk
	Ss7FQ3ei4afzte8zUCZ30rL1FaTZj3Z5jNMb6Pwhslkb7ZroqVyrrig/gYByL1eQgAv0Z9Ws+3L
	u/xuzVzVbmKopRgeCQlC2H5YeuuqY1MEyGVt2B/wbet26YP7nBWZxnZln55qyCgxgA4lrta1vaL
	zOzoJfk/tWCt9RWonlcOJhrmLhQYjHpJHcUkmc99Oubdy9DDRgrCEH+pRYL1ND7oz0eBGavGNXh
	Q8=
X-Google-Smtp-Source: AGHT+IGghDJGIPS+CXLUgFpgDf034j/lrQZU5N/wovLUbSOcwdvZwZTuxnDB1Th7hCOY56Bf4mVz+A==
X-Received: by 2002:a17:907:969e:b0:b73:6998:7bcd with SMTP id a640c23a62f3a-b76554bc3f1mr282351966b.23.1763641176838;
        Thu, 20 Nov 2025 04:19:36 -0800 (PST)
Message-ID: <3073c3be-be90-4f28-bddd-b3e541bb2a77@suse.com>
Date: Thu, 20 Nov 2025 13:19:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 01/12] x86/apic: remove cpu_mask_to_apicid hook
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120090637.25087-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: <20251120090637.25087-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.11.2025 10:06, Roger Pau Monne wrote:
> All implementations use the same hook.  No functional change intended.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
(even more so that I had effectively the same patch, just dealing with the other
hook at the same time)


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 12:24:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 12:24:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167184.1493531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM3i1-0002In-Iw; Thu, 20 Nov 2025 12:24:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167184.1493531; Thu, 20 Nov 2025 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 1vM3i1-0002Ig-Fp; Thu, 20 Nov 2025 12:24:21 +0000
Received: by outflank-mailman (input) for mailman id 1167184;
 Thu, 20 Nov 2025 12:24:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ChS/=54=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vM3i0-0002Ia-Bo
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 12:24:20 +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 d34e4c8d-c60b-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 13:24:15 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BLAPR03MB5553.namprd03.prod.outlook.com (2603:10b6:208:285::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Thu, 20 Nov
 2025 12:24:11 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.011; Thu, 20 Nov 2025
 12:24: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: d34e4c8d-c60b-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BZDs8G7aK4XcZ7+lDdQ64sciPiPlGOfzA/ga3CVpf1Opo5eMQYklmrBsyaVHvMFdz0gV4SLUMeR0jZoHakVTmVNByD8bjbroKjQGhFfvKdx6uwFT6BS642YFO6AYdljeBGVeC7QcBX5POdhCxPEftEqQeACI3+fzkr33Z4elYqwpTgYlsALJF2oFXQW3ZvvBDLTstoAZdgTU6ummXxgXaz0br/NH3x0peN8egCuiSFhs7nekhHz8+At/FaIfTlLTUXEZYSAXJNvIuViRMFhbhLAks4yCiY+VP20I38xhFYlyff2K0S+nvGr2IZpX+jLfGrs/ngrypQBkbw8iOns2dA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eo1ykrn7JrEKB40ajUpj9V6VOtMjz+rZn5wHdumEIyU=;
 b=dHESElhj10ajE8rpBLK6n6hvpVeJNFRKSmwpdbccTHiVoT0KPm6Gs2Ct/i5DuL83sGGo5t+ChYxS1BWAiUpygwr0nodOY3JOJoO6z1ZjC7KvQxcYjphCXAEJEUiOt4DQkZwg5QfFAaFrn0BrsVMIe6iiq/vm86FPeJpuACAiNrkI/9x3NK3NcVqwKh3yBSpay72xS5ZukwTvEvH8kT67LAA9GbQuNby8393lRPPDaMBjJfa+U0EhUjN5ptH0ynKA1aVRmSfmaV5fbkg8UU1luZSas2AVDn/xeJp/RrpOKtEmlq9u+ucJL2H8aki5o5IzGYqqdmMg44q+JvCiJA1dMQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eo1ykrn7JrEKB40ajUpj9V6VOtMjz+rZn5wHdumEIyU=;
 b=vVy3WRopnQuPBDaQh5ZhgtpjrUXdN64RvPWZ3hkXoK+iB+R8WjsJhlAb7S07qAnMU4sPfPXnMCq5eEUcDgzdUUCzN+vsP39s+tVIargbfFkR6A+sZl4fadjsEowPdu7a+vUqKMU8AEeihhBzavZwscyZJjTL/rxc2FAeqo9R7fI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <f491eb9c-7822-4637-95a3-bcd994b20dea@citrix.com>
Date: Thu, 20 Nov 2025 12:24:08 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] x86/vPMU: don't statically reserve the interrupt
 vector
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: <fbc9a2f8-170a-4645-8836-c90c42ad726f@suse.com>
 <06f2081b-64e0-47f5-b66a-26363979cfdb@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <06f2081b-64e0-47f5-b66a-26363979cfdb@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P123CA0047.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600::35)
 To CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BLAPR03MB5553:EE_
X-MS-Office365-Filtering-Correlation-Id: 0dc0084c-d8dd-479b-d2cd-08de282fb5db
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?RHpjL1NycXJlN1czZGFtSkx5cU5nMUUyUE9WL29WR3F6aGZKMytmTXcvOFh0?=
 =?utf-8?B?c3VRMmdGWEtMZDQrWURueVgvVjlyZkNseFpkRzhUQVNKMkJTd2xhZStrUVYw?=
 =?utf-8?B?c01mU2Y0dlpscGxvZjhGaHRBbDd0VjQxRHNGcWlEdFQzSlovUC9Lb1M0TTUy?=
 =?utf-8?B?V1EvT2lDOFU3TkpGR2VCRFFmV2xCK3FNbStyWEZaa2x5UE1GUStLaUl6UzNn?=
 =?utf-8?B?R1NBVXlCVTNkK3YzNTJWRU96a1MyL1lzeDhJeUVHTzdqNHRGT3JzZTBYemUv?=
 =?utf-8?B?anpXRG9Xc1V3cUx1UHYrVEJVcGlnejQ0Z2RySnRsNVNDVTVSNEpudU5RcXQ1?=
 =?utf-8?B?TUVrSUtyUkxUOXkwWDUrZXpEYmxxWWpleXBBb1FhQmxHUjZ6eHI2cmJIMmpm?=
 =?utf-8?B?YmNXNlIxUkdpTmVPV1RvNUQ5YXRVR3ZRSFJXcXIyR2d4aU1DRTJ1cmYvNHdo?=
 =?utf-8?B?OFlpaTJNMDNNd2NYZnJadzRNN05kaHRjdWU3WERkNktVbFgyK2NRYkRZMDYv?=
 =?utf-8?B?dHJoMnRHdlVOQ0Ftc1RCWDRaNUhacXVhS1JOSUFCT056VkY0dHVBL0luYTdt?=
 =?utf-8?B?NEJwVXhoOU42L295V2VXLzdlOXFjMndtK1ZHWk1pbHBvY1NqQ2d3dHJVeHBD?=
 =?utf-8?B?VUpKVEdWM2gxV2Q2QnEwdzY3MGtIMmF3RTdZMS8yTWc5c3BIR0RtclI3bi84?=
 =?utf-8?B?b21DT3NUSWQ5OHFSN3pJMGJicVkzQ0o3LzhpVXBBcVp6V3hzZG9KbEZUemc3?=
 =?utf-8?B?Zm5uSEd5VlJNYjZxSUdzM2hsdkZMOU1PcEwyR0t2VmMreitFRlhtYmVodkhQ?=
 =?utf-8?B?bzhHOVBNeVlra3RyaFBLNE9DL0d6T1A2NGJ1RzNkc2FlcTdnR3Ewb3RGZmNO?=
 =?utf-8?B?ZW8rT3FRNFVvMGpWRTV3M1RTRmZLSXVVRUVLNGQyM3h6Tk1DUGV0SExTaEdC?=
 =?utf-8?B?em5zOEhxMjMwdlhkRDVqWG9uYVgvbXl1K3g4c2owRGs4cXEzc2ZiQkw5cGVk?=
 =?utf-8?B?STVtajhvVmFkbGtxanhxK1VwSWhoczIxZnE3dmYwQTcrcGFXbkd1NldlQSs1?=
 =?utf-8?B?TGJwWWRveDM1UGkvY3E5Mk5ObHZXZHRGR0xtR0dxQUFRcHoyNGp3b0dyaGtW?=
 =?utf-8?B?WGNRVWNITGxRb2JGR0tOSjlIRlVQbHNmZ2o3M2VSSUxuOExZY3M4RzErYXhM?=
 =?utf-8?B?N2s4YzYwMXNVaStBb1RGNk1ZNnZUTW84UDY4Q0hMcEJuQkh2V2xNdUg0bDB6?=
 =?utf-8?B?cTN4VXVMNlRadVBQMVFCb1JoRGVvYndlWTZkdzNzTU94bFkrVmNwRG0xSzJC?=
 =?utf-8?B?VDVPbk5WOVZkRGZpKytCVUJTMGxGMTJ3QXRPMkt0SWhqVjFVT0V1Z3BaZmNF?=
 =?utf-8?B?YmJUNW9DSTVySnNlU2xDZitiRlFXdmJyVUVPVllHWW9EN2ZzTndwQUJwTXk2?=
 =?utf-8?B?TFJteXBwcGI1YVVsR2VYN3BmcG44MDhhSDNEekZCbEdqeTdoVldyYUxKeGRR?=
 =?utf-8?B?NzdaL2dkY1J2RStwcW9uM0dNbXVNOURxRVJqWGVnVWl5NnZmM01XY0JzYW1W?=
 =?utf-8?B?NHFZUlRUcURjcnlCc0E1VkpiajcwdjdXbktMVCt1S1BmWHlXdGIwMWgxbGxp?=
 =?utf-8?B?NnNKR1YzVGNpTFV4c21QaWp1UG80bXpzSEIwYThzWmRiZHVYamdvRUpuOGVP?=
 =?utf-8?B?RE9XUGdqMExIN25HZUs3ODFkSC9Pd1Q2SG5HQThEUElDOFd5eUIrSGJNYmRN?=
 =?utf-8?B?OVZXMURySmZmZGwvbDg0Wk9SNmxQbkFxSC9qcVgzU0JqcEVDeWxPOHUrT1Rq?=
 =?utf-8?B?RUJjL3ZYODdMSEw3czVFQ1VsdnlSWll4eUFmOU4wMm9xVEdJcGYxZ0gzQ1pJ?=
 =?utf-8?B?U1NTOVpzM1BqOWMxd3lFM3BJN2EzcHZzYS8wOFFENW5lZ0FaN0JDc2RLQlBQ?=
 =?utf-8?Q?8gjCfom8KPVR7L1zY7Q2A7rXmXXN4//e?=
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?ZHo3NkdIbTFTdEtxcmF2VEdGNUZBVW5vdWRYT1IvQUxGL0piNFIwUnM5YVZU?=
 =?utf-8?B?S3crQ2hGdTgybU5MSGw1UmNwYUdQZTBOMmJnRFliQW9UTkcveEY5dU8yeE9h?=
 =?utf-8?B?RE5GS1VPd3NmSytLNVVBb3V1Q2Qza254M2Rya3o1ckF3aDNQdVUwYnZBbmla?=
 =?utf-8?B?YTBVT0ZkZHMrdnh5bWpBRjlNTi83Ym44YkM2ajBPbjBHcU9qVEsyNDY1bGpX?=
 =?utf-8?B?U3FwOHQ5dnE4dmwxUzVVNzVWeVpDalhnZFlsR2IzRk9ucTNTNmJZU0o0OENS?=
 =?utf-8?B?THp3SUIwVjJ4bjk0QkExeUtJRTlJSFZsVlZoZEdUWnpKb1F2S3pETmNQbGdi?=
 =?utf-8?B?TTg4Z1NYd1RPS3ZQT0xGcEFiQmZ3UHV6Q3pOVlVlR3pNSFV3MnR1UE5CUHda?=
 =?utf-8?B?ZVB0eEJPYkJnOWtwZ1dOalZPdDdPSVJ5TGtvY3B6MGg3YWdqUGVnUm5XcTB5?=
 =?utf-8?B?aDc5TGpKWEJOV1gzVHpORnV5UWhTNnprNHY0aEVtYWIwVlZ2V2pvQVY2czhU?=
 =?utf-8?B?YnBDLzA2KzEyQWRzVnZjYlZLak1KdmJaUU1xanAxOG9EUTAyWDRyeDlGdXhz?=
 =?utf-8?B?V0VrR0dSWU56VnNxd0FSNnRqMzg1VzFBSzVIL1dXdXRkNHFGZS9BdnRrUUR1?=
 =?utf-8?B?eU5aUXUxQzhHWVA1eU9CU3Q1Y1ZyQ3VyWFZ4UkNsQWRHRi9ka1h4eXlxdWMx?=
 =?utf-8?B?V1l1OFA0VXp3TFVGdFdSR0NWWFhuMTVlSXE2dW9zWXQzZ2U2YVlTR1lhYUZQ?=
 =?utf-8?B?emJ0Q1RMNXRuMm52aTVTYTJFOVlEZnpWTTYzYjlNV0h4R2xIVWZSUDBsYjN2?=
 =?utf-8?B?YktLRkM5czYwT3FUeTFaTW16OWxycC8yYWp2ZjlJa3Q5NFhDbDBQWGRIM1Jm?=
 =?utf-8?B?MC9mV2w1d09qNlJCNFM3N0drUEJsTXdibStMMWovTkl4all1UzRVakFCbDZv?=
 =?utf-8?B?bDExaUhWYUtrRTRmaXFVTGRVWnZsQVJQaXdiY3lEdFlTdWluWUVmODJaWVR3?=
 =?utf-8?B?bXVUdm8xd0JtaUN5WkJCMy9vay8zVVIyekxaQ1RyTVFKVTdMeVZ1V3hrWG9x?=
 =?utf-8?B?RG1EcE1SaDA5MCtpSkVOV0hDYkxXTGd6T2xNOWpEL2JoOTNOUGxuU2tWNzIz?=
 =?utf-8?B?VlpJTTVOdE44aWhzdXRXeFJlZk1weVVPQURnai91R3FYdW1GVE1rYzZmQW56?=
 =?utf-8?B?WUlFWnNCOHFoTHZQRFI4ZlIwWXpYVFdmQWNtbk5WTWtNZWpRQ2loTXEvbmR0?=
 =?utf-8?B?WDBNTkNNbE9MdkVzamZMTlhMejZURjZ3T0htUkxCNkhOVEpEK2FvcFpvdjJj?=
 =?utf-8?B?RWthUW9Da3ZLV1ZTeFNkNkZuUUw4bitZYksyZjY0M1hCWnI2aTNMUHhtVjZN?=
 =?utf-8?B?SUFJeUlCTzc0bmZWRm9qVUZxMHlrNG4wUldUdVg1RXU2TWp2TVFJYjdOT1Z2?=
 =?utf-8?B?ZVFMWC80VHp1RVNDc2trdEdLUWYwU2FiSFFKdEhyNHNnRERFQ0ZydDNDbWVM?=
 =?utf-8?B?bkRvcnM1VU43QXVCRFNVaGF1dlJwTUhyVGE1ZEdGaGtnQ3p5RDRsYkdIVjgw?=
 =?utf-8?B?cGJGV2Y5ZUZrZXNiR0IyZjI2ZkdWLyt1UUk2Nnpxbml1OGhzNUJYSmpFdFQz?=
 =?utf-8?B?QTBCeHY3dzRRQll1TktGYzhRUUd1TmFDMEtUck4wWk1sNWJvMTRTV1NHNi82?=
 =?utf-8?B?bmdoRlh2SXRmREExN1J5OVBPWGNyRzUxTGdDYk9yWHFSZHFJeGtSTlZNNTBp?=
 =?utf-8?B?WUxzZXVBTVNLMk5WeGNNN21jblZBYjdJOVZ4MFJkQ0Z6U0lkaHhDdWEwaDhO?=
 =?utf-8?B?Y0dudGpDUlFaeFV2SjlTdDZNQTdHRDNISXV4YkZ0TkJza0dSeE1iaE5Cc1BG?=
 =?utf-8?B?M0JLZGhDZDE1KzNmMlkvczU2TzhqOGo3ZG96cCtpMk9pUkRkL290NWcwUnpQ?=
 =?utf-8?B?RUVKMSs4dSs5ZUhxWkw3blVjemlIZmc0aXovWjJocW1DbnIvMTl3L1Mxc2xG?=
 =?utf-8?B?REdXeGhGSGtqVWdDYXBJWjkzTnNkYzdXUTB4TXNqUnlERHRCTktaaGt0bWc2?=
 =?utf-8?B?STh6azNaM1g3MWUxYVFIUlRxUVJYeWRIaFRkWXBCYzZIK3dhWVgwTjFXZUds?=
 =?utf-8?B?MmNxYzdZcW9HTzJYZkREakdmdFRzcVFjaTQzOFVXUk05QUk0dVQxVlBROHVN?=
 =?utf-8?B?ZFE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0dc0084c-d8dd-479b-d2cd-08de282fb5db
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 12:24:11.4404
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: FaKGbYnCrN+GrfQ9MJVzBaXe1wI1enPLFPjRZA8iKJMUOQ79jvFOkgwfedgB1vrNMT99n42xKiVh3XEx+vagQdimpqVtFRB/JPipCiTouws=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR03MB5553

On 19/11/2025 10:51 am, Jan Beulich wrote:
> Move the setup to vPMU code, doing the allocation of a vector only when
> one is actually going to be needed. With that the handler function also
> doesn't need to be split across two places anymore.
>
> Add the freed up vector to the dynamically allocatable range.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> In case down the road we also want to have a build mode with vPMU code
> excluded, this may also simplify things a little there.
>
> --- a/xen/arch/x86/apic.c
> +++ b/xen/arch/x86/apic.c
> @@ -1313,16 +1313,6 @@ static void cf_check error_interrupt(voi
>             entries[3], entries[2], entries[1], entries[0]);
>  }
>  
> -/*
> - * This interrupt handles performance counters interrupt
> - */
> -
> -static void cf_check pmu_interrupt(void)
> -{
> -    ack_APIC_irq();
> -    vpmu_do_interrupt();
> -}
> -

I know you're only moving this, but it's likely-buggy before and after.Â 
ack_APIC_irq() needs to be last, and Xen's habit for acking early is why
we have reentrancy problems.

I think there wants to be a patch ahead of this one swapping the order
so the ack is at the end, so that this patch can retain that property
when merging the functions.

Or, if you're absolutely certain it doesn't need backporting as a
bugfix, then merging into this patch is probably ok as long as it's
called out clearly in the commit message.

> --- a/xen/arch/x86/cpu/vpmu.c
> +++ b/xen/arch/x86/cpu/vpmu.c
> @@ -369,7 +373,7 @@ void vpmu_save(struct vcpu *v)
>  
>      vpmu_reset(vpmu, VPMU_CONTEXT_SAVE);
>  
> -    apic_write(APIC_LVTPC, PMU_APIC_VECTOR | APIC_LVT_MASKED);
> +    apic_write(APIC_LVTPC, pmu_apic_vector | APIC_LVT_MASKED);
>  }
>  
>  int vpmu_load(struct vcpu *v, bool from_guest)
> @@ -432,7 +436,7 @@ static int vpmu_arch_initialise(struct v
>          return ret;
>      }
>  
> -    vpmu->hw_lapic_lvtpc = PMU_APIC_VECTOR | APIC_LVT_MASKED;
> +    vpmu->hw_lapic_lvtpc = pmu_apic_vector | APIC_LVT_MASKED;

Taking a step back, I'm confused as to why we have pmu_apic_vector at all.

LVTPC needs programming with NMIs in order to provide coherent information.

I think this might go a long way to explaining some of the complaints
we've had in the past about junk showing up.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 12:25:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 12:25:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167195.1493540 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM3iy-0002ov-RY; Thu, 20 Nov 2025 12:25:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167195.1493540; Thu, 20 Nov 2025 12:25: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 1vM3iy-0002oo-OW; Thu, 20 Nov 2025 12:25:20 +0000
Received: by outflank-mailman (input) for mailman id 1167195;
 Thu, 20 Nov 2025 12:25: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=nz19=54=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vM3iw-0002nw-Vw
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 12:25:18 +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 f8a38561-c60b-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 13:25:16 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b7277324054so127617066b.0
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 04:25: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
 a640c23a62f3a-b7655050c53sm194981566b.68.2025.11.20.04.25.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 04:25: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: f8a38561-c60b-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763641516; x=1764246316; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QPO9vkpsn26QqrgUccKXI6USem8UZhExoS4Wdn4E6KM=;
        b=fHqhG3I8WZQkPEZ05a6uTeVFmddY8xu4IQLrlnhEqcLJIxJB5vDslTDh59U/a2uNGB
         wYmnKzbvc2bAfqMvJz8rsuZGJx1UyY4xehGp9ciPGekdYsEm6itD9iFPNiU7iMSOF0gF
         2xNCOHaTPnnkc+mH49Je6EErNHlYA9qGSoxZO6WzAZe0npNjLUQmh/tZN8ixh2lgOWFE
         oFOUaAfXmz1uPkxV9/69c2EWlQdFiB3oJiwahJ4rHAEQBRQaniS7fvrmq51z9hBv0iV6
         RX7w3e+x74s3SwRn5P7mjYmxaOnVMyXjGo5AGmlrE2jM58Sn3yqa9pL6HkJyCfbmR98q
         5U8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763641516; x=1764246316;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QPO9vkpsn26QqrgUccKXI6USem8UZhExoS4Wdn4E6KM=;
        b=HQ1LsuHWmK8tVKRmsDlNdb/O+yUyATCP1IOgdSpO18wLmbL/rOJkb8K4TeVDXE0WF+
         2ieRftljsggQoYMTw6o25SPjjpHMoj9Qy5olTD0ziTkQ8BVGluwhat1pJ+0o07TCQeo8
         gGqfYhXjk8pkL7ES3C6dvyMyDAGEhzFxB6XKdjFH5kHD8lnxKzBV24A15S03h7dNgoZQ
         miNvEVIEVNVdCoF7WIgvQHeo7RQ7KkMFri1j/FGBGvMo8mjuTeCgel7dYy8+ncOhlwOZ
         Ncr8gcn2guBxbaN/PVEqFimq6zoG9ZuoDnxZmbewDIkZuHHFXQiEM5Km1fWK4vndt3p1
         6Uwg==
X-Forwarded-Encrypted: i=1; AJvYcCV12MEEDH7GN98FyTlZS6nGvMfM8f+ptZhsiIHadu94cRKpSGGdKp9uyCvXFPKY3dMLV9FniNgfG6A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzSKKUmcK8rLk+03hrfKFcgAJaYPu8sdXhjGPy/Gaoin/flMZCU
	sxi4iskEuauUf6/+J4yHPCmEJpIcAd2qx/eUJRmb7g6eEvssexffmXbckOpq8c3nOw==
X-Gm-Gg: ASbGncs8bM98yG1N278BNSd1pgHWI8bte9jcQCn/ISV0H67Sp/aXH5Z584Q6un1qEs1
	7sT0VU6M6S39aGiuRJOcEjfCcpzLLLijTca0s9YOtQMVmA8cfoF4OadCNI22g2z40a5savmtfF6
	PEZLyXN5BwahhcMH2msTVvU8Z8UGEUYK075PZAOFeu8k/z2pGWxI1Z8K1jlU27nUQVHfycqRb+n
	IlggCBykhZRS9THBkjhQCz+RNQNZ6ftMMnbtDaTX1xtERIF1p16jvVu4XpWRzO8VesO8BYkpZTu
	FZfzK8Wzh35/ONHnOC0yeBVzpElA0t4jiBItICuptc0tjoF1bWP4EVSgmLJCPkD8q6Zn/X9qldj
	x9ztSpYIjRFwMDyLkr7qAuPkLhCASmUZ3J3DjRJR5uqGUrAd3YPclWRZHonK1q1pqBsM2D1e6r6
	3ED1s72Tcuzoj1uyha0jtYFu3khVz2EXTkDUYGd8W5OAVDiId+k0qHE2E3ks2aJTjMGUImBIag6
	o4=
X-Google-Smtp-Source: AGHT+IEtyL7LX2hQrR1hJ+2Djfl81yvixxfpvTh8cFQ1aUk0J8eVzUDMQhZaugfFXw/eg4v20F3NTw==
X-Received: by 2002:a17:907:1c0f:b0:b73:8cea:62bb with SMTP id a640c23a62f3a-b76553ef5a6mr303764466b.31.1763641516247;
        Thu, 20 Nov 2025 04:25:16 -0800 (PST)
Message-ID: <97b32a81-27d8-4af4-9edd-127b431a9f53@suse.com>
Date: Thu, 20 Nov 2025 13:25:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/12] x86/apic: remove vector_allocation_cpumask hook
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120090637.25087-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: <20251120090637.25087-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.11.2025 10:06, Roger Pau Monne wrote:
> All implementations use the same hook which is a wrapper around
> cpumask_of(cpu).  Adjust callers to no longer use such dummy mask with a
> single CPU set, as the CPU is already known to the caller.  This removes a
> pair of usages of for_each_cpu().
> 
> No functional change intended.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
with one possible adjustment:

> @@ -688,12 +683,12 @@ next:
>                  release_old_vec(desc);
>          }
>  
> -        trace_irq_mask(TRC_HW_IRQ_ASSIGN_VECTOR, irq, vector, vec_mask);
> +        trace_irq_mask(TRC_HW_IRQ_ASSIGN_VECTOR, irq, vector, cpumask_of(cpu));
>  
> -        for_each_cpu(new_cpu, vec_mask)
> -            per_cpu(vector_irq, new_cpu)[vector] = irq;
> +        per_cpu(vector_irq, cpu)[vector] = irq;
>          desc->arch.vector = vector;
> -        cpumask_copy(desc->arch.cpu_mask, vec_mask);
> +        cpumask_clear(desc->arch.cpu_mask);
> +        cpumask_set_cpu(cpu, desc->arch.cpu_mask);

This being a LOCKed operation, might we better use

        cpumask_copy(desc->arch.cpu_mask, cpumask_of(cpu));

here? Otoh I expect this to go away later in the series anyway, so possibly not
a big deal.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 12:26:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 12:26:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167209.1493552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM3jn-0003OA-88; Thu, 20 Nov 2025 12:26:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167209.1493552; Thu, 20 Nov 2025 12:26: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 1vM3jn-0003O3-3m; Thu, 20 Nov 2025 12:26:11 +0000
Received: by outflank-mailman (input) for mailman id 1167209;
 Thu, 20 Nov 2025 12:26: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=ChS/=54=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vM3jl-0003Nr-SR
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 12:26: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 1735a337-c60c-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 13:26:09 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BLAPR03MB5553.namprd03.prod.outlook.com (2603:10b6:208:285::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Thu, 20 Nov
 2025 12:26:06 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.011; Thu, 20 Nov 2025
 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: 1735a337-c60c-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dyrXJWMwjFFn4sWRimWuIZbQZ+37nF1Z4Ggwbm4mkiC9UmHxLxo17epudnoxeCs46Dg+iDfsSjmpwX/0h8+5yDcS7kR04mcF+R5VrnJjUbSa55o5s5eGHuRi6+hH9IhV90kO3fuf2K2jEayvL2zIz0FTqMG9lPgu47jpHdmIwZrNHb7rKg6Ifzo4ABXp4b4umtp/WUinyAhBRQvpYpRdoI4M6XlQ+p6RNai+PQK1ZkLcrnI/lN3bS/RY9zq4/61nVFoRAgfEpOJgw4FwBJJ4MV9FwSTLuqoNpYCEp5ZaulE/SPP1bYJ20v7hONg4srorzM4iRnekeIpq9//1TxxUKA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7/rRoJDtqXaWbSL/VMSXbtHd7oOQffvpyJobCfiu7xQ=;
 b=BeftVSDvMWZqPAz5KzEw43ByKI8xN6ZKLrq/j3ztnYbPAvbCPAnHOV78GHyogJWCItjOr4A5bZVgE9R+XikfH4jWapsQHbRSWE+MkVlyGP7oAFhaxJVVX6qnnyC8MYdUn7NpP4plbe0X7lfE7agkizRllAi57LdHgzG/jUY3a0w3ezslYT5D4pRQm7nGR3wKkOSB73vLHj2AgkUjjT17LIQW5SNSzWjTm0L8+Z/BJ1HpvhKgEFffPMJa8f4EXesRPXCI+YhCUvzLeLGDyHrr4LvA5NCEbRkqERE/JkzQZLsdnuhgPDN6EWMAHXQ7OpS4pJvGSvfPlD02cQBSdZlQYA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7/rRoJDtqXaWbSL/VMSXbtHd7oOQffvpyJobCfiu7xQ=;
 b=ndJrCtLJdFfbIkLxtEgyjJwz0P4bMh4uDiNXVp3iRrMcb6EmeLCRAoem4OXqAswTkMtJDu82dkuN/occNO8WAWGVYzYtt2rgERfkqeHeI4uW/AG89yEeG+583L1URlzseE+bF2j7AN+lNGBVI2hqWgNjrVSi/fag2R/jaRnXPBQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <c0930b51-5e57-49a5-95e9-649b581a38e1@citrix.com>
Date: Thu, 20 Nov 2025 12:25:56 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 01/12] x86/apic: remove cpu_mask_to_apicid hook
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120090637.25087-2-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251120090637.25087-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P123CA0043.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600::31)
 To CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BLAPR03MB5553:EE_
X-MS-Office365-Filtering-Correlation-Id: ac06cf6d-d1b0-4d76-4102-08de282ff64a
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?RDBFMFFRT2xlTGgxVGY5OE4xeTFReDZLVzdRbUFMQngrZ01JVExtZGpKWTBn?=
 =?utf-8?B?ayttQzZTT3R5Mlk3NEcxUjZTQ2I2SlpNOXlDWnJIZWRVbUJNSTAyZ3NGVnB1?=
 =?utf-8?B?bk5LMFdBL05zYXZKYnk3ajlCQVR2dFRqeXI4cStpcjNRTTQ4VTZzeE9LYmRT?=
 =?utf-8?B?NHJRZGozQWpZRmMyOTB2dlkrb09Ga1ZLWXBtYkJydUdVQWhHZnBvdUVpcHNY?=
 =?utf-8?B?MEtRZ0syU2Y0cjRDaElvTUhCZUFBQU9JR2Q0b1VtMGJMcE10TDFpaHpEcVk4?=
 =?utf-8?B?ZnNhRG5VWGVKb3kyT0pQNmpxdE02RTNqUCtlWUFGeDdXWG55L1JCdHBEb3ZI?=
 =?utf-8?B?NDZHcDc4aTV2K0V2YytxR21hOUdLOHhSMnlnRTAzU21vZWlqVzF3Tjc3VVRJ?=
 =?utf-8?B?RHBGRERiS3B5R0J6eHNPSFRwUjhYMjYrZ1VlQlJHNTd2Y2lLTzdmMkc0ekxl?=
 =?utf-8?B?QnJ1S2ZFOFpvR1lFdWRyNkVoQUZ4NVhSWUhIb1pldk9kUW5YRGdZTWxqVG42?=
 =?utf-8?B?dFI2YmtnTVZqbVBsaGZ4S1NqQ2w5eklzeUh1UkRoaHNFRTFoNHM3Rnl6WVBR?=
 =?utf-8?B?eVNkejdlNFljd05MUFNUNWV0NFd6amE0Tkl4SHFXaHBQTWdNNUVDTk10ci9N?=
 =?utf-8?B?Nkd6M0xqWTcxa3hBeVNsNk9iRmR5dmNiUGJ5cEpJS1dybTNnUjNMaEFOL3Jz?=
 =?utf-8?B?QXhPcngrZWVlaVl6elJsaVIwbEpQcDVRVCtmdG9TV0RDcTEvQnZaNmt2V0hR?=
 =?utf-8?B?aFE2ODROUnA2eG00aW0vZmt1L3krTlRrNTFFNGExUWRNb3JJZUlIMHFIZ2lZ?=
 =?utf-8?B?ZXc3MDJJUzdiZjZpMVkxcnpoaVBQd2c2TGlJRzVoTW1va0Q2akZOZzdwelY4?=
 =?utf-8?B?eEszcVNpMUVXdU9XT3FCVmFmZTg3MFoxMVZoVUJ3YU83NHY0WXRoZHBmL3dY?=
 =?utf-8?B?MVVPYW5pWGdGc0REZHdtSG9BcGdXT2R2UWovejBVbnhNL05sQjVPQkhTNkhk?=
 =?utf-8?B?VE5wUzdBcXFJZ0xVc1BTMDZZckxYekE2QzFtb0pvMUc1RnJqQjVIMG44dkFl?=
 =?utf-8?B?TitGZVFKanJBZXdXekFPUW5OdDJOd3FhZFJ2ZTZJbzMxK0hHTnFDcjAzN1ZZ?=
 =?utf-8?B?MDQvdFR2R3BwUDJUdENvWlBSUVNwYlhUelI2eVovYlpSVmVwY1o3dklTbnZ4?=
 =?utf-8?B?WXNWUE1QaFgrNm01L2pUS3F6elpIMXlmM1lrS1lFeGkrMlhid1puN08rRG5F?=
 =?utf-8?B?UThuOWdMdVowWjYxTlAwUzJnY01TMG1CUGV1VTkwbXNUTFpObzJtcDA4MDdV?=
 =?utf-8?B?eEdDaGhoMHFHK2FxTlpNbm84aWJxZ2VrZnBHaEFrTnRQM0NqV1ZraWxSeFA2?=
 =?utf-8?B?TmRKMzREL1kwSFdYV1JKVTh1cWRyR3hmYTRXZ0JudHhJMk9oQ2FtKzZ2Nkg1?=
 =?utf-8?B?SlNna3MwU1pZTVZTVmNwL3I0T1AxbERSVG9NN0tuSjNUdlVDbDU2V0hmaTRj?=
 =?utf-8?B?cGNJMHYvNW84K1hDWVp4NXJ0M3FuN3ZCNE9PbzExZ1NXVC9qWGVUb015TUx3?=
 =?utf-8?B?Y1lORjZ5RDlRbitDV2t6V1FPc0dXSnI4TWs2WWI5U25FMWxDcmdxdEFHN3pT?=
 =?utf-8?B?V3JGblJtY3N1RUYvYVlHeXpzVlFFcGw1Y2ZzU2hqVjRMMlJnNFFuRWhlaEFV?=
 =?utf-8?B?b3phTy9keEFyb3FpWitTVXRRR0F3emt2aXRlM3V5UUZKZTdHbWRZQWltVnlY?=
 =?utf-8?B?TU5IWk5yd0l2c1Avb1BOYlBSYnFaSnp3TEVRZEo3Q0p6a0U1QlpUb1VVSXg5?=
 =?utf-8?B?dHpoM21SZi8yMWFlRHBjeldyODFrSVFqdEErNmZIMDdGSlpVb2tUaG5tcExN?=
 =?utf-8?B?a2UrTkNuNnRDRVdJQXo2QUZ3YU9nU2d0TDhHaDhGbUFNVlcxdW4vcWxlakFj?=
 =?utf-8?Q?EzIKDUY8xJgaHCuHEJcExPD9ap9TAQSc?=
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?NEdPZUJVeDlUdjRUMk1FaHJqYUIvRVM0QSt4MTRnaW5nR0VTRXFjLzFNazZM?=
 =?utf-8?B?ak9GN1lWcjJGbFZzMFdmWjVSN3FvNzJkYUNkMW93MnhqbUg4VlhDN1V1RkxK?=
 =?utf-8?B?aFl2ZmhJRkp4bWJxU1NnTmVKL29Vd0NXdnNobi9ic3lzK245clBvM2JOZXAv?=
 =?utf-8?B?c3EydCtjNzRVQzh4WnFqRFV6a0w1RXNaNUNodU82SFFUbm1XRXpmMnVCSHEy?=
 =?utf-8?B?VlpSZ0w5YU1CVm1OSGo1bi9iVlQ0dFFLZmtub2xxZHRESmlyTlIxMTI5aEZQ?=
 =?utf-8?B?UHcwczZCQ3k1RWU5cnlzWnBWWnZTVVdXRHlTdlgvZlV0aG1JY3FtTjZzVGJh?=
 =?utf-8?B?bzZPRUxFYjN0eFRBMEpsYk9DYmJFSWJpSUxIcHdRbVlacVRCUWgvQ0pGSHFC?=
 =?utf-8?B?YlVXMzRJd0FyOTFFZkNNNFFLSlZIdDNuajV2NGduVGtrM3JyUXNtK2VHdHQ0?=
 =?utf-8?B?R1lmMHorVzZVV1FxZVhtUldmSEszWEJweWtoSHZxb0RWS3BKUWxwOVQ4Wlcy?=
 =?utf-8?B?UzA5ZmFrMHEvald5SUpDRlVnR0NFVmNTZHNDVk5FU1lNWWZnR0FTWWdjOHcy?=
 =?utf-8?B?V0VwMHNJVXdpOWp6dGlZR1JJT2phd0lJL29CdHVUaDhPcnpZbFpPb01IcHdO?=
 =?utf-8?B?MWVpRDFHZkIvSlN2OW5UTDZUUkEvd1Izelh5ekM2MDFSRFdVWDJ5WTJRWDN4?=
 =?utf-8?B?SmpDMDllZ2xGQlJ2aXJDcXFKamkxUFJuOTV0aGgwYy9oWE9ScU1uUjROMzRZ?=
 =?utf-8?B?Q3B3TlpoVjlZRW93TG1pQ1N4ZEpLdVR3YllFbHdmM3dSaVdoZnF1eHJhem1S?=
 =?utf-8?B?OG1JeGFseE9lb3FVWVNCcDFsUkNUaVN5OXhFNjVWbElWVi81M1dFMWZncFlF?=
 =?utf-8?B?T1ZQVjRxV1lOeTdpVE5VeFkrTlF0d1VtVnJLbmVZREdiVXBwVldyNmhUZWtp?=
 =?utf-8?B?WmovTWhNd1pjdFBkR3J1VGdLTzEySUlrZE1Vc0JGVWwrRnNrcGJHL1NTaGlD?=
 =?utf-8?B?QXpZNlJUa2xOUzRERU4xSzZWU2kreTAyemU5Y0JCK1d4ME5BZDROTkpub29w?=
 =?utf-8?B?T0N4cTNzMHIrbTRlSEpLa0NxMjQrSlhqQmVvQUl2TEtPSm1zTGdKNUd1dTR4?=
 =?utf-8?B?cFBLb1l6ZWpKZnBSNVRheUpsZWNHbXY4MEx2Yy90SEVBWjU2UmFsdlM5YVNl?=
 =?utf-8?B?TjZZWWZ0N1c1TWJ1YmhXVGpSazJkRUwrOWQwUkxqMDFmaFNHZW1sMTVxUUhH?=
 =?utf-8?B?bU9Qc1A2MXNIeW9wbXhOSFNqNkRuL1VBR1BtYUJYem5XUkt4c2VZWUtJaUho?=
 =?utf-8?B?a3ZyUnVWZzZNeUg5VVgwaVRTazFSMmFxc1N2cUUrSVRXMFkzUkZjQ0R2d3Q1?=
 =?utf-8?B?Sk9TMEJGOE1wU1FFcGJSalc0eHU2TEhBL0lMVzdoTXBSb290K1RIM1VHTlNG?=
 =?utf-8?B?WWdzZDR0TUExZVlDaDFSQ1dZb3Z5Z2gxejFQL1VNdVFWVkRiNEFPaVVsY21H?=
 =?utf-8?B?M1dJczBBK3g5ZFFGUCt5RFRhanEwcDN5dmVqcFFZa21sV3ZkdDV1MGdVYXhp?=
 =?utf-8?B?ZW0rNXlkeTNnSW53bnRocWY5VnM0VlVlemNwQmtHYUczVFBMUmJuS3Z4ZDVF?=
 =?utf-8?B?TUwwQTUyTVJDb1R5MExydTFYZW5MVzdkMkhQRERuN3R2UC9MeXVPNW9JNDdK?=
 =?utf-8?B?eUt2b2hjR3kvbncwa1JSZ1FUU20xdkFUUndpOXIvTU54eVY4SXZoTnh4bVBu?=
 =?utf-8?B?eE5IWGpuUmpXTEVnTitUS21zVGhRd2NCcG1aMmRRYWFMUDkvQXlUaW40ZEY5?=
 =?utf-8?B?K05WVUNlNEl1S1ZIUGNXcUhhVlIxZ3FMS2FYbTRZck9OODJFemlBUnI0Y2hJ?=
 =?utf-8?B?S2ppS0lXOW1PcVhCQ2wvcjJPNnQycVVzcW8rSG1HbEJ0blpvanRTMTBwWmtY?=
 =?utf-8?B?eVhzVVpwanIwSmhTK2xOVjNRaHlKM2cwODNCK2dLbm5vb2YwUkNVN2VnTmd1?=
 =?utf-8?B?YlZTQ2xMZGtMQ0FTU0JjZWNpeFRxbUt5VjBtalQyUEhSaGcvTi9RNThGc3l0?=
 =?utf-8?B?bkhDSVRMOGtNbDVzQUVZTWNVcVpsOVRyWDVXOXR3SE8vVEdCRWs0L3lJTnNk?=
 =?utf-8?B?RmxZdXVTYjA1bTBZZ2FFMmVTOXhlMDZ5RGtDMmswdjJ6aUx6WHJ5RmxzNEsz?=
 =?utf-8?B?ZFE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ac06cf6d-d1b0-4d76-4102-08de282ff64a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 12:25:59.5733
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UnAmhe/bxlkVgaTNHstav7LUNrzkZX8chaLZP9DFo3dSY5vI3j53K0sCx/XXM4G39dUi2VQ5rdXB4UUr1GUzRHFi45NBGw2k+Gs3DxGFZpQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR03MB5553

On 20/11/2025 9:06 am, Roger Pau Monne wrote:
> All implementations use the same hook.  No functional change intended.
>
> 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 Nov 20 12:30:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 12:30:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167228.1493560 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM3no-0004wv-Ml; Thu, 20 Nov 2025 12:30:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167228.1493560; Thu, 20 Nov 2025 12:30:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM3no-0004wo-Jg; Thu, 20 Nov 2025 12:30:20 +0000
Received: by outflank-mailman (input) for mailman id 1167228;
 Thu, 20 Nov 2025 12:30: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=ChS/=54=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vM3nn-0004wU-7v
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 12:30: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 abc85bec-c60c-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 13:30:18 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH7PR03MB7416.namprd03.prod.outlook.com (2603:10b6:510:2f2::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Thu, 20 Nov
 2025 12:30:13 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.011; Thu, 20 Nov 2025
 12:30: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: abc85bec-c60c-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ka+yE0vI1LbEhJGZ1RWMY7QwW7fVzC3scssh/sIMHSFkD5apAoxrI5QqNtk7BPH2w+27FguCAPlMju19qjJ9YEyk59QO39KCvDcNXHAfIDQIC0dFTXAzx7zTq9XZfuYy4++yZhIIpFuxWoOxj4cwkGZ5hg7FZdQ5jb9nik69wnSU+LqBPePz0GXh4V/oPZj+tETwrapx7Qe+PgXPRQIC3M8J7YZ8Zf4mnu2E+2VGiv2/iDt3GoYogeGTat4hdETmi9WXAC5QVbXH9izJ8VVr3d18aE5H9z/qMaPBplhwfDlCL2cVpFtu7cExvTBVXRHyR8KFzyo3g3U6I+Mk5hY2Jg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3Shx31ILeRVrewlhJ7mK1VRZ7Ik6JKaRuQFmH0HypEs=;
 b=MDkG25UYk0z1n/z4N9DOkggezO8ld+n9Q0xY4aWudnFngxU6URm9XiCqB/fCfZFYlJuXHpaRPWU3TLc5prhMMRkVBMqQMAzPsqALlTpyfmaQd/1k2dTUf4r8TXDgUfv9k0M353vDSd8CInuEKn3xFZZH0f0GLha80QA6RyW/PKdlh83RG4fLMcWHKNb+T8kxx3S9u+P/YkbhHOVcPfoi1QezLlTOeKuCNehejtLiUFrIG6t6pab5M5kMVygqj8F2WwpiEa3TE9EyXZ44TFYNvotBnEULPl05V4m0iEsB1zNaiph4+uQl7iymeIPZ4S4XSU/atIqOsOeyIKsQrwu2Xw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3Shx31ILeRVrewlhJ7mK1VRZ7Ik6JKaRuQFmH0HypEs=;
 b=xvUqNYrAB4twtCgYUrr+wObKiaJ7Y3ciWhvJ22Ea95dZi39m+h76XebruaS3wXC/eKLwRGqkzxiPAnxyw4eh+BLJyzYP2OyRCR+OelwOl/RSY2oR87EDoiJbO+ph05YeCJ0dN7RQ9XGnzMfL4nbcD+wOA2VP5vkRRDYcbRCW2CU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <73717441-ae18-4e1e-95c4-3186310b93df@citrix.com>
Date: Thu, 20 Nov 2025 12:30:10 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/12] x86/apic: remove vector_allocation_cpumask hook
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120090637.25087-3-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251120090637.25087-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0497.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:13a::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_|PH7PR03MB7416:EE_
X-MS-Office365-Filtering-Correlation-Id: d17e04d3-a29d-4157-104f-08de28308da7
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?Q0Q3bjByQUFId1pqM3lXaFhtRkhOTWNUelQ3bXN6aE5GdFllNkdjcHAxcTRh?=
 =?utf-8?B?aGRHc2JCUGRjeUFPZnhYRDIvOG9va3lSeW5xQTE1TEc1ajhiUGtzSG52eUl1?=
 =?utf-8?B?RWlLK1J2Y0hmaGlSbnhpRHdVSUFpdnR6U1ZRaDVoSkZhTUlub0Z5dk1BVWlj?=
 =?utf-8?B?a0J2UlhvVEpPR1pGNlJsRWN1dEJWcVJINDFsYVV0VjByS3pIdHZIdEttOS9F?=
 =?utf-8?B?UkpxN2w3ZEZUL2hXVnpYc2IzaEFrVTJFZlAvbGR0emFlekh1YTdxZnNuTENL?=
 =?utf-8?B?YW9VUDZxUUwzSWlSOTUxQWEwVHVuajh0d0ZUL1ZEbWt0UVFSYVNoU2ZhUnNu?=
 =?utf-8?B?eFlmbTlaZWlGZDRVSk1TZ1ZycGYwRE0rdXZKeDlYYVZKOWZpVmxzWXFVZXo5?=
 =?utf-8?B?T2dUOStKdHFJRVZGbUQ5bE1Zd01ncFhaUTcwQ2pvaDFzVFZHVUhOUGQzZ0I0?=
 =?utf-8?B?Q0JWajhOdVlYaUlrZVhKVmc3SzIvOEFlRjd4UE4yUG5kV3dCVGhxVzAxQnU1?=
 =?utf-8?B?cjVnRVp2Y0lIZ2F3Y0lMT0UwWVA4bDkrdEVsdTJhNnpOSGllY21zMjhpK3Uz?=
 =?utf-8?B?REtXN21UaGd6M0xaUzVXZXFZYXhabXkrMHRaNmRuK0EwSUJnMlZVV1dQcHhQ?=
 =?utf-8?B?bVN4R3lQNEFtNGFaVVlRUlVGUm4yS3R3NDZidWJUdGVzbnppUEVnbm1NdmMy?=
 =?utf-8?B?cUQrQytJd0NvVzNvbFJzenZKcnZjTm8xbkVReGFaWXpGaHZua2EzZjJTVXlW?=
 =?utf-8?B?Nk9KQWczVFpLblN5U3RsT1M0RnpSM0wzdDdiR2R5SnNLMDJYZXUveUg0dkFF?=
 =?utf-8?B?Sk1ocUZ1SlpyMFlmdzZtcEQrWlVVN0FXbi9xcVdwZEZMUU5kb3Y2T2dySDUy?=
 =?utf-8?B?ZzFFOVFINFJHdnphN1J4Q0UyMEN0QXRWZ0J1U3M3Q3FURlg3VU5tUTNIdWhH?=
 =?utf-8?B?eHlsREc3NDNFdm9GelNpbXArcDJFQ0grNFN2c2ZOUENhZDdjLzh4R2xjTmZP?=
 =?utf-8?B?NkoyaEhGMkFDOHV2ZVdRLzFWQ2hwK2wrQ1dSUXNQNENDOGhIbnNEOCtxbGVa?=
 =?utf-8?B?TGRHZjlUTndkK0tmVlRGWkNFaExLV2xxcGhNRWpua2svYWF2VXlIY0hIQ0l3?=
 =?utf-8?B?TTRjQnVpU3dFNEc4bDZmUThGcmdYRWRkWWZ0bFdreW1URXhDN01sZmdzVHQx?=
 =?utf-8?B?S0F1TEZraFJ4aDJqNW9yUmpRQmI1eTR5N2VHOEN6QjNseVNWSGtRNmNSbEE4?=
 =?utf-8?B?bmNJVXhNSnl0VmJvVXMxcWo3b1hOQlVjMUl5aWwzNWlEQTNhdnVIMTJjbVlD?=
 =?utf-8?B?dG5ER203RzV2UkxHV21RSktlMnNCVFdCc2Vpc1JBZ3diRXdNdnRRYVhQTXdH?=
 =?utf-8?B?Vy94aFJoVHlqRUhiV2c2Qm50OGhISEhNbmxhZnZoMmkyS3VXcktVVWVIYlVr?=
 =?utf-8?B?UU94TUcyNW1NL3M0WHFmV1kwVTV1TE9KaVJidmVKNFM0Ylk0eWJSWW5KVkUy?=
 =?utf-8?B?bDYxNTliRnJFWVBUblptR0lYWTBwUDJmY3NBTXA3K01iaW9PZ1dGTHk0OWlK?=
 =?utf-8?B?ckdSLzJWTEE2clA4cXJuejRTa2lrbHVhcWNKc2RzcDRLMEhGWWhSUDRzeHJp?=
 =?utf-8?B?MlcweHlVOWNYTmpLaWZtTEFFVEpjK2ZKNlhjSi9iSXpQN0hueEx2N1piQTNV?=
 =?utf-8?B?TmRQdmIyejV0Yk9TK2FlcHg2QnoxaXZnU0p5WVR3ZjROcmF0bzVVSWxXL0Yx?=
 =?utf-8?B?VWNpM29Va3VjaGEybGZrSzZDalZxdGJJMkNsSit0RXZ6QVpZSmoxZFZ6eGw2?=
 =?utf-8?B?T2tOUnhRVDQ5SlQ2YktHK0QxdXpXb00rMnFVM0kxTHFhRU54MkRYNVdLWWVF?=
 =?utf-8?B?a0xQVzYyUlVJOFZvMUoycnEyNWFlRDhOajdPYWdSSFo5V2hhWWFMRnBwNGZP?=
 =?utf-8?Q?w7k3EJtBSXQb4OmniZ7VrGJycLAZT8V2?=
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?M2VSa3JmVVVKa2JqV2t5dXJJRk9sMFUxSGlqNDFLU05nSmJPblZIVysvUTRS?=
 =?utf-8?B?ZTYzUnJhakdpZllsNU5NR01kSkVseU1WRzd2SnljNkR6T2phUmxhdkZKRm9o?=
 =?utf-8?B?M3gvR2Q3alMwZHBhM3ZhSk9OWmZRaGQ3UHZLRmZ2bTA0RU5PVHh3VWJpRGlW?=
 =?utf-8?B?SjZoV0tzS3JFdzJ2NitvYTAxQkdTVVk2TWNtR1pLQ1NwcWMyRFRJc25vNjFw?=
 =?utf-8?B?TkY1V3ZKZWIzRUtoU3p3SExYdVlENE1hQUtjVFcwbjdCOVlvVlVYMGU4bHho?=
 =?utf-8?B?Lyt6bHBoL1lJaVBYajd5Yk5kNE9SZXd2M0NkL0Z0OEswTlJtTjdxTVBSTDdC?=
 =?utf-8?B?V3dLUmFVaEpmV3J2bVluUFF1Nm5LYmt4S0kyYVlkQXc0c2dQY0I0bmhYUHRu?=
 =?utf-8?B?R0tqeEg5c3FQaWtQZHdpdUFKMDkvSnMzWEJoMkdmRTFJdnVzSXFMV3FtSURk?=
 =?utf-8?B?ZVdNSGJuYVUvZGJCRFRaTXk1NFVlV2JjeGhuWFFFSER5RDJxTHdoL0R0cjNB?=
 =?utf-8?B?RFpsREdaZnByVjl5cnZtU0dRU2EzWkR2TWhCQUdpQS9RTEVSVXAvQlVYK3Fo?=
 =?utf-8?B?RnYrVXFJWVhEV0RJdVI0cXpnalVQVCt1UmFvWkl6ZnhpZ2V5ZFpjZm5TZUhJ?=
 =?utf-8?B?aTd6elBMYVBCK2J0bjhXQUFoWU13dWZZMUFRU3Z6WHF5YTZLZlp5Rndzc1JS?=
 =?utf-8?B?WUdUWXJPNzVObFVhdHRqWDZXZkxRdE1vRDVnRjk3L0Q5Qm9yVHJITjROanZZ?=
 =?utf-8?B?SGd3YzNaWFlrRmpWSWJaOTRHN2psRFhlNVlZbzRGa2pxbWk5VlZ3NitQK3lL?=
 =?utf-8?B?Ny9BWEtla2JLbDFQa01RSUNhYXczdEFvYnlsTno1YVB4bFJXcHF5alZkZ3dh?=
 =?utf-8?B?bTBkS2hldW1qY3lQaHhwcXE4NFY0ZWJuK05QcnhZZnYvdlF6WVlveWpPVm5R?=
 =?utf-8?B?OUhyenEwVjRJME9XQ3A5R0piTVBpN0liS3hLdUhkNGFjRnhLNUE5aDdnZE5Y?=
 =?utf-8?B?dWZ1bS83QkVNZjBSUWN2clVMY2lqKzREYjlWMjkrM3RWTHk1L1FVVi8zN0dV?=
 =?utf-8?B?R01EQ3pCd1NEbzJmQy85TkZDM2FzelgyY1hFSitISDc0Vy93Qk1Ja3ZiaUFT?=
 =?utf-8?B?QVhCbTdCTmo0ZG93RDNzRWUxdlczTzE0UURDQnVMdExmRU13R1RISGdRUHgz?=
 =?utf-8?B?UlZiUnZCWVJYamRxMXZFL2xsK2JjSk1WT3pCelRGRFhlM2QzQmRIUDRvQ1pL?=
 =?utf-8?B?akk2R3BIK2grTzJDNEhDYTk3TE1qb21sTFNTd0tqRUk4dXQyR3NQYkdmYUtY?=
 =?utf-8?B?NU0vUCtSMG8wbkNodmV4THdxUVp0V291Nmp4VFNVTEUyOWtKTjN0TTlwMGdK?=
 =?utf-8?B?S2ZkL2ZkV3JEU0ZUN2Z6Y0ltb0pWL0Zua09NdlFDUDBVa0FsOVJ2RXhBSFl1?=
 =?utf-8?B?eUI4dEdMSUxUZDFtNE53Rm5oS3EwYmg3VzFEeWczYmxSTExGZjZuZlMyM1Vk?=
 =?utf-8?B?b3RvWTl4QmtLWk41NnlXR0NWVkl3Ny9HU0hZdEpqZWdIRzhNTVJSZFlNVlFn?=
 =?utf-8?B?SFAyNVdVb1ppaXptcFVzZkZ4VVRaM2VRdFlESEF0MW9RNFE1aFIyb0VpbjBa?=
 =?utf-8?B?eURtOG52RS95cHdsR0VCQy8xSWt4bkJxbzBVeGVXWmVheG9OMTc0WGpBNXln?=
 =?utf-8?B?U3BaeGl1U3FIMnZNZHV1Mk1lMXdNSTFCQ2dnKzV2cnVkQkVKQWlVcnJNOEFH?=
 =?utf-8?B?eFJGYzJvbEoya1J1SDJ1OGc4d1VGSlFmRkthUTluNTJFeVFGUDY5MG9nTUYw?=
 =?utf-8?B?R21GQ2gyVWJ1VlF5UUtWOU5xQUJldkpORjVkNTFXUXJPZ1NPY2lzdFc2NGFr?=
 =?utf-8?B?Sk9QbTBRL2pBODFmK0QzVW1GVXZPMk9yYUFPdUJ6VFViRXNKK1VtWGFJZ2Vt?=
 =?utf-8?B?ZGo5bVp0NjFKd1VzQk5iU0ZZTFRqUitBSWtRU3lmSldCVDFDZlV4UEUxWjZM?=
 =?utf-8?B?NFdubzdWaTA1Z2RQQngvOUpEQVhESHZqdko3bTNXS3NXRjdWaStwMGRWTjNv?=
 =?utf-8?B?bDNIMFIxeWl3bVdjWHRSaldaWHRhTWUwbjNoMWwzS0w2TnB3eDNYRW1HMXZz?=
 =?utf-8?B?dXROTDJUMnF1VERwVlc5UWZhZEVKNXBJZG9md2haa0Q4OEVERGN4NGVBWjhN?=
 =?utf-8?B?UEE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d17e04d3-a29d-4157-104f-08de28308da7
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 12:30:13.4880
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: WfpvIGGDD+ZRtdZkByV8I5I5WMoRBgUWABQpufSHAif9JQo2LRMj2oYIDjCcd4mfExuraYiwBGxnt6wTxxXdKac20tAkfYcWpw+qlc2m9IE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB7416

On 20/11/2025 9:06 am, Roger Pau Monne wrote:
> All implementations use the same hook which is a wrapper around
> cpumask_of(cpu).  Adjust callers to no longer use such dummy mask with a
> single CPU set, as the CPU is already known to the caller.  This removes a
> pair of usages of for_each_cpu().
>
> No functional change intended.
>
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>, with one suggestion.

> diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
> index 80f7417d2103..7009a3c6d0dd 100644
> --- a/xen/arch/x86/irq.c
> +++ b/xen/arch/x86/irq.c
> @@ -650,13 +646,12 @@ next:
>              && test_bit(vector, irq_used_vectors) )
>              goto next;
>  
> -        if ( cpumask_test_cpu(0, vec_mask) &&
> +        if ( !cpu &&
>               vector >= FIRST_LEGACY_VECTOR && vector <= LAST_LEGACY_VECTOR )
>              goto next;
>  
> -        for_each_cpu(new_cpu, vec_mask)
> -            if (per_cpu(vector_irq, new_cpu)[vector] >= 0)
> -                goto next;
> +        if ( per_cpu(vector_irq, cpu)[vector] >= 0 )
> +            goto next;

Please can we have a blank line here for legibility.

>          /* Found one! */
>          current_vector = vector;
>          current_offset = offset;
> @@ -688,12 +683,12 @@ next:
>                  release_old_vec(desc);
>          }
>  
> -        trace_irq_mask(TRC_HW_IRQ_ASSIGN_VECTOR, irq, vector, vec_mask);
> +        trace_irq_mask(TRC_HW_IRQ_ASSIGN_VECTOR, irq, vector, cpumask_of(cpu));

This highlights that there's a problem with tracing on large systems,
not that there's anything we can really do about it.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 12:31:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 12:31:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167239.1493570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM3pC-0005VL-0G; Thu, 20 Nov 2025 12:31:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167239.1493570; Thu, 20 Nov 2025 12: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 1vM3pB-0005VE-TD; Thu, 20 Nov 2025 12:31:45 +0000
Received: by outflank-mailman (input) for mailman id 1167239;
 Thu, 20 Nov 2025 12:31: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=nz19=54=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vM3pA-0005V6-Mb
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 12:31:44 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id df366165-c60c-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 13:31:43 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b75c7cb722aso116364166b.1
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 04:31: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
 a640c23a62f3a-b7654cdd5e0sm211308266b.1.2025.11.20.04.31.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 04:31: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: df366165-c60c-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763641903; x=1764246703; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iUJNvtSs1ArzqqmSIRBjdE4Eji3ImF/s8WfukGe1JS4=;
        b=Z2NpH4wCbo17FvUUqPZkSW+lu0obj8jMsxPQk+u/bHH4Fp3GN/l2CjpKv0v6KwxJtf
         8E1BY+yrB8i501WISQ9bSganluVMD6pM0cuacxEaPseu7kX8Y9cmCbZRVx+/v8PGZEaW
         KcOiZIh0ZTlkSh5SI6E7S+HkLdvcSEwYCam56pFSEh45/lJ5dHsVtvO3ez2hHYMmc2e/
         YCMaVSgbbcFvA7YzYA2iqWVG8X+kzqkR97+oXCkGJ0Uc+McjmC3n/JfwcVL5zr5E0rmj
         aUd4ImDCw+6cz4CF9LTvimohxadqPeeDfdWtxzGpBD7KyawNgyndRadCnmRg1f6Czdky
         +E7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763641903; x=1764246703;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iUJNvtSs1ArzqqmSIRBjdE4Eji3ImF/s8WfukGe1JS4=;
        b=Ug8gw5pZQfH1M3YcW02DNt2hPxsxr9ssLtM6LKNbVA2hEcprxt4s7tv/G4EASzv7+T
         5UOwNerTnpyKldwLDuyLabgi9mX31wZr6gxFrn/POUguysQC9mLYIWWS4gdiBEaEh8oa
         DHMTb/4TivJ34ApCj8POgtQlFmloIV6K8VXLSyTb1Ejl52uebGiAZV/jGUfwIiKJTyzK
         nTW0TOLIL5yywjOqhPY1zugafigcCQS9z1q4S+tcpQQICzC/C3Y40aw9p20ES/kYX9Mw
         5dMkSU9iQ5RTpPEsi2bHlVY81jT/6fPKWsVPT7jIOW59VX0gHwb2v+guosnLdPTXMb6B
         hn2Q==
X-Forwarded-Encrypted: i=1; AJvYcCVcdxzjXlX6ttRujw7YgzsZqqWp1lIkhAYfx2uJDXRRIIiN0mlO/J2/5TQDZTAcxdR1rbpJaaW8hOE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxedt5msXiEQXbotv5nsd1dkTascuyH1U8GY9gAnSJEqMouTyRO
	TDEXkrYHe5O+pTDTp4x2Q125t33sYiLciBZ4jJEvzcWPhXapXdgojujwjtE2/UYdCA==
X-Gm-Gg: ASbGnctnSaz4Ywcje+9qXWe2078KH93Kym6h0RTsltr2/a7Vs29uYSDkdG4rs2yY07g
	WDCbqJAnw5/LdReRcf3RqQPnQ0AokmDAParSRLCbGlQfbgMgc8rci5RRexPuTlm4EfE+g6otgT9
	0tmebOeAEakypNtSqsM58rhFVhcQtetFHFdXQ1bLpu8/CuX2sV5GH310avgp5nxZPgbXVmprItK
	I/+1JJXDNskLgLSdeGjt4sBO/viHWDsE7Br0JY2myaP2Gxltse13JYy/MuZPJXra4BZ8iMP2u3k
	8mOs7O3WK4Z7giDWkRVp55uMtbJY0ufJHT5/+bTp3gOBt1dJFIRX3nsPKDkPm1pxJaQVxoq8wWn
	KDu5RMjPIyEk4S+IT3OV3w4/wpc92Gh+Fd+e7WPkOiQ2qjW0sIMc852ocWy//uOYdOh0kCpM3s2
	XqWLCzwWpIJRELNXVmr6oslsgxcXysyz0UDwhwpTU5/QoXKSLsmi8g+kqw2DBXXRGawaBGwRA3Q
	cS6M0+f4thS/w==
X-Google-Smtp-Source: AGHT+IF0TMS7zrzBuCH2WOENvRPyABjyK7paL2o17cflsp9vX8gTp2YuxKyrACEP0hXjQhoeEmRI7g==
X-Received: by 2002:a17:907:60cb:b0:b73:8c6e:cf6f with SMTP id a640c23a62f3a-b76553f9a58mr280242466b.32.1763641902964;
        Thu, 20 Nov 2025 04:31:42 -0800 (PST)
Message-ID: <bde84a94-77af-4fec-9075-a709323abdc4@suse.com>
Date: Thu, 20 Nov 2025 13:31:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] x86/vPMU: don't statically reserve the interrupt
 vector
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: <fbc9a2f8-170a-4645-8836-c90c42ad726f@suse.com>
 <06f2081b-64e0-47f5-b66a-26363979cfdb@suse.com>
 <f491eb9c-7822-4637-95a3-bcd994b20dea@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: <f491eb9c-7822-4637-95a3-bcd994b20dea@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.11.2025 13:24, Andrew Cooper wrote:
> On 19/11/2025 10:51 am, Jan Beulich wrote:
>> --- a/xen/arch/x86/apic.c
>> +++ b/xen/arch/x86/apic.c
>> @@ -1313,16 +1313,6 @@ static void cf_check error_interrupt(voi
>>             entries[3], entries[2], entries[1], entries[0]);
>>  }
>>  
>> -/*
>> - * This interrupt handles performance counters interrupt
>> - */
>> -
>> -static void cf_check pmu_interrupt(void)
>> -{
>> -    ack_APIC_irq();
>> -    vpmu_do_interrupt();
>> -}
>> -
> 
> I know you're only moving this, but it's likely-buggy before and after.Â 
> ack_APIC_irq() needs to be last, and Xen's habit for acking early is why
> we have reentrancy problems.

I was wondering, but was vaguely (but apparently wrongly) remembering that
the PMU interrupt is self-disabling (i.e. requires re-enabling before it
can fire again). Should have checked vpmu_do_interrupt() a little more
closely, where from the various plain "return" it's pretty clear that isn't
the case.

> I think there wants to be a patch ahead of this one swapping the order
> so the ack is at the end, so that this patch can retain that property
> when merging the functions.
> 
> Or, if you're absolutely certain it doesn't need backporting as a
> bugfix, then merging into this patch is probably ok as long as it's
> called out clearly in the commit message.

No, I'll make this a separate, prereq patch.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 12:39:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 12:39:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167265.1493617 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM3wY-00074r-5R; Thu, 20 Nov 2025 12:39:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167265.1493617; Thu, 20 Nov 2025 12:39: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 1vM3wY-00074k-2U; Thu, 20 Nov 2025 12:39:22 +0000
Received: by outflank-mailman (input) for mailman id 1167265;
 Thu, 20 Nov 2025 12:39: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=ChS/=54=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vM3wX-00074e-MC
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 12:39:21 +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 eefc0577-c60d-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 13:39:20 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ2PR03MB7425.namprd03.prod.outlook.com (2603:10b6:a03:55d::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 12:39:17 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.011; Thu, 20 Nov 2025
 12: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: eefc0577-c60d-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UK/zYpupBo8fFLv+gq4trKNDEr8ZiSF+BQhq6zn3n9N707a3sXQesTjM+OL0G1caW6YjhNyCateK2LR/1+YA9PgymmFd1v7ZyJvlZZ1FhDrKGO+jfK3h220ifQCpOOCBOXIBQgFFShejhE9CKX7LK8KfbGmpVwkdzLaHT9Nc/oRRQxh1vYT/JGt1WKOSDDqdhnvk5poM3lLrMOXls+gK+xUCHcAFD09od9ha++FoLvIpmSX/KOnLsa5ujB45Aj7bRI4FuhB8/LlxyaNbHEv2VscbGjZRBhDcfnjxLHLuf6n59asK8SEGEEJa1EkIY3ZlDft1oxO0tpvTEV+l+lCbDw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HdLwMcnhlrjFVcov0EOJ9YlhH98/3pPHZO9quUEfe1Q=;
 b=LMQBjeLyfkFHjJc80p7UWFPnaX7Pz3BveReKst+BrO6jDyweU7h4FvE/tkNgOT303Ct5Q7pI1/Ayw7cNfEuHCk5BS8es29E/ArfULfylN8T0XBea0Y6ZaFS1LFKmsQNNQMoK9yMCYekUA6Q4MAk/MCUR8HKwk3FW945CPUrW0bouWJKJLls2MC0OkZ5GdlCcTTY09t+ENC3I9Zmq+ltNmG7/TzVb3XzNXMdMCtDPP2kMV2Piqwfu44zTnVdOIJHZ0OzpNPesoTFH1Mg7Y3hvITp8AEKZKEwsmUDrbnUshuQVkAHF5ubScrcVElzl4It5hqL2AlkjJi/LxfDIrfdT4g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HdLwMcnhlrjFVcov0EOJ9YlhH98/3pPHZO9quUEfe1Q=;
 b=WQito1LEY5EkJ4LQBGuJuQZf2xLfpG+77MEJfy39GxRe5alD4CofBpOyTz8DJPBtBOZsVHygueBa2G3W0F0bz1cQV380LdcOnb3QxIaqilq+/xtUdHkmiHqeU/yTCdhklqNquekM2odiPqBStzWlZw20uqI5nXE4Y1KU12qRxKQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <01830e1a-9e6e-428e-b6b0-0360d5519d43@citrix.com>
Date: Thu, 20 Nov 2025 12:39:14 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] x86/vPMU: don't statically reserve the interrupt
 vector
To: Jan Beulich <jbeulich@suse.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: <fbc9a2f8-170a-4645-8836-c90c42ad726f@suse.com>
 <06f2081b-64e0-47f5-b66a-26363979cfdb@suse.com>
 <f491eb9c-7822-4637-95a3-bcd994b20dea@citrix.com>
 <bde84a94-77af-4fec-9075-a709323abdc4@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <bde84a94-77af-4fec-9075-a709323abdc4@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO6P123CA0012.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:338::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_|SJ2PR03MB7425:EE_
X-MS-Office365-Filtering-Correlation-Id: aa93a1f6-c542-4824-39b9-08de2831d190
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?MlVZc2M4cFF2UnN5NWJYeWh2eXpIQmx2VTRJUW5rK01ieXJoa1RWZ0xhVDk4?=
 =?utf-8?B?NTM5VzFqWTNqa0lQK2daWFdsS1BnZThEaTlnamp4WEVYVlB0bTZ0cVRwODNq?=
 =?utf-8?B?aGkxMVVGM1g0bHFPV1p2OVRLY2FlUzcwb3FqdkZieXcvbzJtcXdnQ0d3UDVJ?=
 =?utf-8?B?NDFFSUxlUGxTbm5lQTU3ZjdRY1pBZ0RsNk92bE5QdkYwRElsNVk2NDJ1MEwv?=
 =?utf-8?B?c2JVWFIzUC93NzczVTg2cWpJZFgrZlpZRkx1dUhJRVJndVQ2R2hrRjBKY2o0?=
 =?utf-8?B?aE9uTElsaFErdWZIUnhIK050Q2xNbGowc2hJWUd4VnA2Q0NVS0dMQ1J5VXFl?=
 =?utf-8?B?TTVOWU16QlBYRmxWbnlKRzEyS0ZjMkw1dGxKR1pnc0FFU3lBOXlSRm5CODJz?=
 =?utf-8?B?Rm9OTTJqeGFuWFZNZkM0cVdnekE3bFl2K3U5ZGVDYVVtT3RkREl3UE9jWjF6?=
 =?utf-8?B?a1lOSDdmVDBLMjgwaFlndkMzYmpYWDNlRFViQkNJUWhTdHpMNGpUN0xNYmlO?=
 =?utf-8?B?b1ZTVWxaSjl1Z1hGY1FocCtWdERNNk03VkwzSXpvMHp2NXFmSVJqUE40VVJv?=
 =?utf-8?B?cXFPd1lmSUtKNTF6T1g1MmNYTk5mWDdlbmw2Tmpaci9LTS9zODBRbENtVHBD?=
 =?utf-8?B?N2dYRElHZU0yaVhmUDhIVXpYQmJyelFhb0xEanUzM1p4NEI3N0NwWDBtR3Q2?=
 =?utf-8?B?NlFYNDlBb2lNb3BVRXFrY3VYTmZQc1VMbGduMnYzWmZMWkw4WEkrLzY5dDRP?=
 =?utf-8?B?MXBWTUNOTE4rNitISVNrajIzMnh4Tmd3Y0hFcEtOcjdmTUhkUXFaQ1JsRFpC?=
 =?utf-8?B?Q285SEhSaTVBazhzMEV3Q0QvVFA4Y1RQUlg4VGJlMnllTkNQandPUzNnUC9p?=
 =?utf-8?B?VisxL2I0UERMUVNValhJR0pnZVB4cStmR1k2QlpRWlJjRE5aZldPYnNnRWV5?=
 =?utf-8?B?UEhZT0wxSEdSNHN0ZWtLMVFQTkpkTndXL3RXUGNUdVlVclRVblBEY3ZsU1dz?=
 =?utf-8?B?ejZ1Y2w0enN0aGJsMlpuaTk4TjBjK3pMVmpkQXQ5SUtJUmNBVlI1dnFxTlhB?=
 =?utf-8?B?dytJcUp1UG0rdko4MkROaXdibUllRHVKNTM3SmdtcWNhMVp0emRoQ0ZYRE5z?=
 =?utf-8?B?SWgwVmttZXRPSWRUK1JSSzRSa1YybFd0Q3dTazc3NFdZOHNXWWNvM0duT0hx?=
 =?utf-8?B?amxYcSsyajltdmRKTTQwWWE5WjdvVE1QV3JWODJQKzBCNVdTek1YSFhYL25u?=
 =?utf-8?B?emtMcWd3UWQ4M3lITWRRQ2J0ZFhYcnltSXFHemY0MkRGQURVb0N2YmM4UFY4?=
 =?utf-8?B?RStKQVdKSDd2dTcyeFJwczNPOWJudUtXNW1TT094ejliRVQvNm1IZ0tZVHZH?=
 =?utf-8?B?NkZjdlEzb055TDh2TEdOZmdYdHBJV3o4clhJNmtQSUo4N0F0N3JjTnBCTDVp?=
 =?utf-8?B?eWxnL3RhSllFcXFIeWczdllSNlJwdE14YlVJQnBibTJKOC9iaUpYK1VXQmJT?=
 =?utf-8?B?K1UrYW9nTDRVTVVOd0pvTkRKMUxGSkFtU0ZNM3NkZE9MbzJhS20wTUJOaHJh?=
 =?utf-8?B?NnZxc3FtOGJUZEcweXpGVXExb29jSFpTNjkrSnBMQ0UrQ3cyaUUvR2VMVUFB?=
 =?utf-8?B?NG9Hc2cvQlZUMy9JdjNqbDJyT2pGd092Rm5CQTVuZGRrWDhQU1IyOUViTTlF?=
 =?utf-8?B?eUJ6blFDVWdZU21hYkxJSFRGdFZyZHlBSEYzVHVLOTFaKzVQem1OT1RZcjFF?=
 =?utf-8?B?dFl2TXRHdUszL1VPZms1TCtISVZqSG1VMWFJNC83anV5NFhNbjdKMTZSSnZH?=
 =?utf-8?B?c0xTMWNqeVlSaUNCcS9YR1QyOEhCcmk4S3IrdGxxYTRnSlg1M28wZTdEVnZi?=
 =?utf-8?B?djQ5b3dwLzJIUnpvL2N2TFRPVFJYaEhZbHdIaTYySXZMNzBXaUxMR244THkw?=
 =?utf-8?Q?rCsjiqd20hIeaWvMQy6SuC7Q5ZHgQ0eV?=
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?WFRDMlBnaGxBd0RjWmRTamZRdTg3cU1ETVp6elZpQTkvdU1wM1dxbEtrSnM3?=
 =?utf-8?B?Z0djMG1UcVBNb2JaSm83elk1alZ4ck9QYmNVQVRrVzNldnhTMlFhcENZc2hG?=
 =?utf-8?B?MzBRcVd3aXpuYkRXK3RwdCtpV0toSzlQdFdJSFNNVFB1aHhNZFNkNEJ1bXBQ?=
 =?utf-8?B?b3F3cnU3bDg1ZWxWQ1Y4OVNnQ2xvSTFZRGtjb1IrbndPTXVmZXR1Y0Q0Vi84?=
 =?utf-8?B?bmNYaS83SVpuOE80MjJ1eHB2MHZZNGNzYkVtaDBqU0EwZ0s2NERGV1B0WGFz?=
 =?utf-8?B?NHdueURGMnJySUs0ajgwY3E0NGlzaWp4VzVmekJja1BGMkVDek9jZVhaNDU5?=
 =?utf-8?B?MGl5Nno0bEY2aHFmaWRLKzhNMkJ2dTY4dGx1aWNCODNBOHRXbWFCN1hXU2Er?=
 =?utf-8?B?RHBJZ3M2ejVseFFvckxaZStqWDI0Qjhvd3JTMlQ0MWUycGZuTzlVUFR2NjhE?=
 =?utf-8?B?TmJURERhZWRXb05BcFc0VG4yRXhDbG1JRTdvZ1RWZG0yR05leEdaQmYxbW85?=
 =?utf-8?B?RDd4YTRhVWZiSlJsSWpueHcwVGh1Qk1PNzY3TTVoVFgwbWRDTnhiYittOGlV?=
 =?utf-8?B?TmFWYkFZRzFBcW04dzM0Z3RqRGZIb0VkclA2azlWckxTVnVsRExtNVhqNmVQ?=
 =?utf-8?B?TkJEN1pmYUhUZHRpMGJoUzdxNGRWUktCVGFaaElMUnRoa0p0ZGtxUWx2TEhP?=
 =?utf-8?B?Y2prcE9oRHh6TUp3My9XZ3cxWTFlaGl1ai9tMGZ1QThRU25WQXA1Umsvb24w?=
 =?utf-8?B?WVpTdmVhZUlrWUZ2cWNBeDhPY2I4UkpkUmd3UkNwSENERjQ2THVMYkpWQkdO?=
 =?utf-8?B?dUZoWXkwQ0ptSHF4aERJL1NxLzducDZpTG9CZzladTFMWm5FNmIzMWdMNWI0?=
 =?utf-8?B?SDhCVFo0SVpxRThiRGtrVndvZlBTRGY3bjdlSDZ4WGg1cGt2SEczc3MvdzQ4?=
 =?utf-8?B?WjVoQkNPazNLS2RXTTA5UTJ0SUNIdUlIbWl6b2lpbkJwNGUxUGVIeklCVWdr?=
 =?utf-8?B?OE41MktRU0ZBSXo4b3Rvakl2MXlGTjdsVTYzZlI2dVRicDRzamFpbE4wTXNx?=
 =?utf-8?B?UG8vU3lCTzB4VWlPSG05bWRrS2IxSkM3bXE1MDlxemw3Vmo5SzZhVzR5emlX?=
 =?utf-8?B?V1JJRVJBMjU5d0tMM0VzNTRFTks1U25hZDdUSW1DZ3M3M09lQmkvNHhCOWFh?=
 =?utf-8?B?VE83ckROeWZucUxwYXJObS9OUEZyMjR6MG9lSmRuYWhjVmkxd1ZZTjB5T05F?=
 =?utf-8?B?WjFJQkJURjljTkpJYmlRKzdzT1pWa2g1M1dqemdDdUt3T0ZNVGxnbXpYNjBt?=
 =?utf-8?B?dGZhdnhFZEtDMitURHdEMUFDYnRkelZ0L2k3U0x5S1NpYlROR0RnQVc5WWkx?=
 =?utf-8?B?Q1ZnY0wvRW4zNG1QOUc4S3Jac1hJRlFjMExLczBZLytMdnRyNGdCVG9BNzNr?=
 =?utf-8?B?VzZkTUplcHJRTWRyVHBVQzhFZ2RqOERwRGxxc2VxN2VEdXM5Q1hkaEhjMXZF?=
 =?utf-8?B?Q1h1WVdGeW5WQ1FGNGhEQjlhM214em1SdExnSFN4T242MnZZZUxBY2xmeC90?=
 =?utf-8?B?RFEzNDZPQnRqVnZGZ3cvdmk1dU5BYkhnMlJKbUNjWG0yZUpUWS9XSkdBUDNo?=
 =?utf-8?B?d2llMW90RWtmd3F3T0ZnMDd3ODVnZzNiVU83dEhyTlQxczNyYVBtT2dqZXdS?=
 =?utf-8?B?bVRRalBraWFtUW1jSHA5QUh6a0MxOGREdFYvZVVnbHhtemRRc3E1eEovdnJS?=
 =?utf-8?B?SDduMTc3R2VVaFN4d0E1QkdjTGw4UjJOMVRHaytUbCtDc0puRVd6TkR4eXNu?=
 =?utf-8?B?ekljMG41TExsQzBwSTQwcHBGL1l2M3c2WjJZc0JaczM3WTF1bDVaU0F4NS9m?=
 =?utf-8?B?dmJGRjFFLzdmcHVOV1VtbllVYWZwN3ozVEtKaDBSNjJZMXNOOEFiLzBRT0dT?=
 =?utf-8?B?ZDhGQXgyM2R5YVVQNCtFTTBNQjZ6MUNlS1lxQzlPalZVRVRzN1FvSldyMDY4?=
 =?utf-8?B?ZU1FOEErTWFiZExkSVBTNG1lVzIreXRndUMyYlQ4VkxJMFVxd0lQVUNNZDJM?=
 =?utf-8?B?azNHUEhiVHMrWnJQdDlnR1EzS2tyTVJOSjMyZDZzZXYwalMyRWowdVZjZjJz?=
 =?utf-8?B?WC9GOFZDVVE1eHNWcVJ3T1QyQit5amdEZ3EwTEJIa2VWcnRyL0ltK2VmQ2Jw?=
 =?utf-8?B?S0E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: aa93a1f6-c542-4824-39b9-08de2831d190
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 12:39:16.9222
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: J9C1vkmUOgdZ+w+L/KHUe7YtS602z/JR0Ym6sLp6pY4IibLFk/ahcnUsY9FTlzW7/cx9W46sCWzd/QtsFxOq2/WD0AVnTovWLSqLR/RC6/c=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7425

On 20/11/2025 12:31 pm, Jan Beulich wrote:
> On 20.11.2025 13:24, Andrew Cooper wrote:
>> On 19/11/2025 10:51 am, Jan Beulich wrote:
>>> --- a/xen/arch/x86/apic.c
>>> +++ b/xen/arch/x86/apic.c
>>> @@ -1313,16 +1313,6 @@ static void cf_check error_interrupt(voi
>>>             entries[3], entries[2], entries[1], entries[0]);
>>>  }
>>>  
>>> -/*
>>> - * This interrupt handles performance counters interrupt
>>> - */
>>> -
>>> -static void cf_check pmu_interrupt(void)
>>> -{
>>> -    ack_APIC_irq();
>>> -    vpmu_do_interrupt();
>>> -}
>>> -
>> I know you're only moving this, but it's likely-buggy before and after.Â 
>> ack_APIC_irq() needs to be last, and Xen's habit for acking early is why
>> we have reentrancy problems.
> I was wondering, but was vaguely (but apparently wrongly) remembering that
> the PMU interrupt is self-disabling (i.e. requires re-enabling before it
> can fire again). Should have checked vpmu_do_interrupt() a little more
> closely, where from the various plain "return" it's pretty clear that isn't
> the case.

It can be configured to be self-disabling.Â 
IA32_DEBUGCTL.Freeze_PerfMon_On_PMI, and variations on this theme
depending on the arch perfmon revision.

I'm not aware of AMD having a similar capability.

>
>> I think there wants to be a patch ahead of this one swapping the order
>> so the ack is at the end, so that this patch can retain that property
>> when merging the functions.
>>
>> Or, if you're absolutely certain it doesn't need backporting as a
>> bugfix, then merging into this patch is probably ok as long as it's
>> called out clearly in the commit message.
> No, I'll make this a separate, prereq patch.

Ok, and with this rebased on top, Acked-by: Andrew Cooper
<andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 12:39:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 12:39:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167269.1493626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM3ww-0007Qw-CH; Thu, 20 Nov 2025 12:39:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167269.1493626; Thu, 20 Nov 2025 12: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 1vM3ww-0007Qp-9f; Thu, 20 Nov 2025 12:39:46 +0000
Received: by outflank-mailman (input) for mailman id 1167269;
 Thu, 20 Nov 2025 12: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=ChS/=54=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vM3wu-0007PA-Tk
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 12:39: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 fa6501c8-c60d-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 13:39:39 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ2PR03MB7425.namprd03.prod.outlook.com (2603:10b6:a03:55d::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 12:39:36 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.011; Thu, 20 Nov 2025
 12:39:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fa6501c8-c60d-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=u0QJbtAa8f067kgVwFxhuXl+HWtwp4vQL3jUeBPiQHxvGleqxeNrXR0zOfVE3nzWtdyogP8sSLX7Hh5h8oBOVQc8Hy0wOMmSriEkGglAI5cci6SHsr9oN4mlFydgBooQntSWeZH0MskKYx6EQocriHaydHvUwWpUQ7QWa1joI0cfvMFGB7C+L4iQ7DTQOiBoGUSszb7pqiwlQ2ac1Rx6+e/Qx0vHE4iwhB2X/tCbYjU8wN+1XZYmLzU/U/zuaFaSRk15sLdXtat45rSyjIPKy03h4VaE/t/xNePYjBZqBFBfSPF3nVcZJoUxXqhRGxKJm7LNC2ADJ5ezEwGnS0mxpw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7Srutxsdx2f8EKcXh8GNTt8QRn2AlV0I9d6MyitlYKI=;
 b=l5QTGHkJBHC4jn74x5vNq4viQy+TbiVHi2K6G/zce/oAiKb2B+IfEDooajCfEnWq5zhR0tLpF8j6SzlhFnXZ3C/uOi8mF8KIaHmCEKHe3D4u/t6CSvYPwZ3ULGB5aWYU9SQXWWutVxbo/Lz46RuV0ZuxzkmQtd3vCd2I+CU1NjoYJHM0+mQS91zt7hsxAZ9p7OoINdUAoG+W2/hgFpX+QwynYdErEwQi7C17pACvbN5WVb85ULLlUNIJo94qJVxyOaiub/+Ruc1Y1VRBv6an2O9FcIA0lUhseNJgocKxLX9JEHc/fcFjq94uZqR8iM3qpVP1iEr/X7fpBZ/kqv5brQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7Srutxsdx2f8EKcXh8GNTt8QRn2AlV0I9d6MyitlYKI=;
 b=s4jy3MHTCdJzNd9FrxPj+hTqqn0cimXbxpTIqvjJlI98naBqjnw12VCuk0OllfeInpRv71Vv3z87Gl9e2VputA9J6nA1T/Ibo+nShCzKvvx5Hmq+kl3/D4DTYu/vCC3uxoCi0yvLJzgONGRPRQnz3SGqJjzWIIuRLudNE+jL7ig=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <3c520a2a-88fc-4da0-8fff-d9ae6f4ed7ec@citrix.com>
Date: Thu, 20 Nov 2025 12:39:33 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 03/12] x86/irq: introduce local irq_desc
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120090637.25087-4-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251120090637.25087-4-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO6P123CA0015.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:338::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_|SJ2PR03MB7425:EE_
X-MS-Office365-Filtering-Correlation-Id: 4e297dd4-a9d4-4732-814d-08de2831dd06
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?ZkpodUFBTzYwaTJqOHliVi82bU1XY0xUZ2ttVXc2TndId2dwM1NGSHZaS0xC?=
 =?utf-8?B?eHhjb2hYV1l1UVMzSmd5elFFcDhGV2MzT0kwcmExY3ZwTWFqZzVBcmVpUzVN?=
 =?utf-8?B?V0pXbDRsa3Jtb3kwdE0rRHoyVGF5eEJuRS85VWVld3RmZDJheitXaGdqWjNU?=
 =?utf-8?B?dWJKWnhRRlB2WDB0azN4ZHZtY2VLRE1qUTE5NlRhcld4ZnNBNVdXeU9hK2R3?=
 =?utf-8?B?NjYxTnNxRGNaMzROQVRaN3pzWmxtWkVrTXVDVFBMbzRWT2RNRTUxdFpRTHJu?=
 =?utf-8?B?TENiWHZjbnQ2SlZFQlkzQTYzcGJJMU1GdGoyTlo1eFR3ejltYnYxM05OMGtt?=
 =?utf-8?B?M3FIMWdyQndUSkREZ0ppSEFkaWVvRGxqNEVOMHQzY1Z0L0dzaVpudlVKQmEr?=
 =?utf-8?B?RlBtVnF0UXNUNWFmUDNHYXBFL1VuTENYemFMZUxWeGNVZjc4UG14QjdCTE1N?=
 =?utf-8?B?YUN3N25XRGFsZDNpTFVWeE43R3N0MCtsV3BHYkUrRXEyN3BvK0cwY3BFS1RD?=
 =?utf-8?B?UnM4R3k4WTV3RUh1bnhXZlpXaWZPb0QyK21pTEJiTjN0QlhWUmlnOUFSL2lE?=
 =?utf-8?B?NFpVVUxKbk9SNDU5K09yblRGVmRzSmEvVVdwbGxxVmt3WTk2eDl0ajZpMk8w?=
 =?utf-8?B?QWY0REYrUTd3S3Awb3BGbFRmYjE1SmhqUmtaYis0WExwOHd6QlAwTHZhZytR?=
 =?utf-8?B?b3BYMmxod0RKaVZLWE1welphbEt4NFl1L1ZXVCtmd1d6bUlTV0RBVmFQYzZR?=
 =?utf-8?B?b2dHc0lHTlVRbXN4WVI4RjRFTlViUUFSMi9INkVCL3lIS2VXQ2VYcmVuWFkv?=
 =?utf-8?B?WlBtdXpCT0N3TUdpWTE2d1FJa0h0VVllQjRYcnpLMmVyUTA5WXNNR2FCWUdI?=
 =?utf-8?B?V3R6Q1NRcTZKQ3Fid3ozZGV1ajRuczhJWTVvUGtXUGpvS0M5Q2RZTE4vYXlW?=
 =?utf-8?B?K3VmdGUwL1dxclRkU1RRUGM0blRsQ3JPNE9iRHljdUVNWENFL3hWdmtvTFBT?=
 =?utf-8?B?ampaNDV1V0hXSTROT3FpNkU3Q2lubHU1VjVGL3ZIcWJSZ1RFZERVT2pkOTZu?=
 =?utf-8?B?V3ptQzUxdjVRclNnSEI4WG5CV3hJWWZUd3l0d0lXajRyMTZmN0JRckpubUU4?=
 =?utf-8?B?OEphV0o0ZmdRZFFrUFM4QTFEd3dtS0dlUkV4aWZwVVBCK2JpbTkrOWJQVDJn?=
 =?utf-8?B?Zjc5NDJ6SXo0UUFDVUNXVjNJN3IxeXRYRkZQZW5pRFZnOUtFekRVNWpoM0Nk?=
 =?utf-8?B?WmIwYU1hMnFvUXV5ZW1zUG9uZnY0VUhCcWxmbWp5dUw3L1lLRW9qZXBNMjNT?=
 =?utf-8?B?eGw4cDlJdE82elU2ZUpwVlV1STU1Rm0wdDlBVW5yV01BRGNYci92ZjBPVGc0?=
 =?utf-8?B?UTRwamdHSGMydi9ZMXpYOXpMZEdpTS9GMWV0UUlZRm9xVkVWbFg5Rk8wN2Zv?=
 =?utf-8?B?VnRJa3E2SVU3bFR2WnJwcFRRUmkremZXSmtiMjVoSkFkV0Y3V01UbiszOFJF?=
 =?utf-8?B?UEdhZlpobEprMGV2Qm1RWjhFeDNuZ0hMQ1VTZVVVWVdCZFJTV3h1Yng5QWpp?=
 =?utf-8?B?STg2dUdBdmc1dEE3dHFxS0lCNzh1b1ZMYVgxTU44cGdLd0daVkJ0ZlpZU2l6?=
 =?utf-8?B?Z3lHeFFEVEZKRVNHRjZtWVpSNHZCb1ZWaDJwRDVFM1p4dDVjNjZ4NDNNUUpB?=
 =?utf-8?B?cks0OGpYUVFUYXVmNlI0eGxKQUN5eHptVU02VnlpeUNIZHl5T3hYRFpucVdw?=
 =?utf-8?B?bFQyOWRheU5ITksrZ2lHVmE4VnQ2UGNtYlBWZFBOZjFhNFlLeUYwTFBkQnAx?=
 =?utf-8?B?SzVvaXFIQ1BobGJRZTJjRTcrT1E3aStLekNrbU9tYnF3RnNGN1VSZTlTVXNj?=
 =?utf-8?B?OTJRMVlBV3JiOWVDVGg3Wk5odmovSENRbTBnTmJWaUpYbjl4Q0NzZjdxZmFk?=
 =?utf-8?Q?PJRABoRRikSpA5VGWK4cuXiVweJsIr/c?=
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?bkFlNGEvYVFrVm91by8xVDVTY0c0SW1haGxRK05IU2RzSE0vdi9TL2NQV3FL?=
 =?utf-8?B?K0xwcndxNTF2eDgvT0JzNjdLd0d6eEJXZElicms3TldRMjFXM0ZaU0FRVHRE?=
 =?utf-8?B?RlpiWFBhenRCUFR2aUJDTFRVVzdjcEJ2SndWWjVGbGxxMzlVSHBGVFpPMWhI?=
 =?utf-8?B?RGdJdUh5TERwZW5JaEt4NVlmbTM2OWk3R0wyVEdBRFNUUXJ0MEM4WUR1bWpK?=
 =?utf-8?B?UjlLbG4rZzd2Q1h5eWc3SVlyTnhRUXlWSlJ4emNhYkdESzNnYzh3RUYzMTFl?=
 =?utf-8?B?bWFxcEwzUHJRN3g0R1JxUHIydnpIUVZVZmZxWEd6anZvWlpvcnZCVjYxNlpi?=
 =?utf-8?B?NEo3R0dobkFGSDRSa1FWOHpwek1rWWo1MGFLVlg3MVlkb3FrSTJZQkZwbUJY?=
 =?utf-8?B?bVh0cmZTNDRDSVl2RTZCUmNiWU5jY3hJVW1DalFlcU5kbGJCWjcrMmkxcnpa?=
 =?utf-8?B?MWZyWTE1TlNyTm1zN2RUYzU1ZzdFYjVJVzIrTzVLeVZIeXhSWXBOdUVkbFoy?=
 =?utf-8?B?ZGh3Qys3QjVjejNEQmc4bTV6bTkwOHB2T3VnRTIyYmpFSXVkNU4zMXFKQktC?=
 =?utf-8?B?SFlibUN4UWhYdHZNTnUrSVRGUVl2bTR5Wi9QSi91bERmTmJ6aHVZUlM4QXpO?=
 =?utf-8?B?UjFZWnFkZWVtaG1hMjdKazNtVjRlUDlYVnA0VkJZRW1CZTNaK1Z2MUE3L0VC?=
 =?utf-8?B?ZmJJSitWSkdSWmhpV05BK2kxbVNrODZEMFlkVE5DNFgwMHZuY3p2U2tZUXJm?=
 =?utf-8?B?emJhKzlRK3orcGhTa2JWQlRBeEdjSDlLVVZzOTZNTllOOGRGK1JEU3BuNEpj?=
 =?utf-8?B?amVDWnh4MlI0T3hJOU9zTDhWd2ozR3lNZlpkVGl5N2hHMkFGNmh0eEsrUkty?=
 =?utf-8?B?cVJJN3dGeDdCcGlJeHhCQ3VWZ2RvaWtxY1o1TGdSZTBTcGtRSlpwVVg3bkNs?=
 =?utf-8?B?a3EzK3JERTdQYXphUGpoMUdmbG1NTjRoMVdaQ0ovNXVTb015RnU0d0haaERZ?=
 =?utf-8?B?L21ady9xOGJwVmtjWmVSY1h1OS84a2MxRUZtL2Z6elV5VXJHeEMzNG4zSXV1?=
 =?utf-8?B?NU9URndBamQ3d1RvRldncUlOdGc2U0R6bi9HR04waSt3QlpzRTBsbllJTzd5?=
 =?utf-8?B?OTg4YW9ZNDE4WTdxNVJEN0R3d2JwL0R1OFlIR29JWGxkeGFlVmFlOTE2MnNn?=
 =?utf-8?B?REZLaTFEV3YwSTZTNEdhbXFnb0tnZEJVUGk4MFJqcEZQeGhBV2kwN2R4Q2pI?=
 =?utf-8?B?Zm5ScE81TEFMdVVxR2RsbXRNYnZpS2NCaHc4SHVBcytsc3FndzZGbmlwOC9O?=
 =?utf-8?B?MWgwcW42TjdIR1hQSUNpdTd1dGJjbW5EWVlJRXJxc202NG1qZTF0azNCdUp3?=
 =?utf-8?B?ME90WVZBOFNoRXdnU3pTZnlTeGIvUlA2di91R25mWWZwVHVEeGxXSDhKY2dk?=
 =?utf-8?B?Qms3UnF1NHVqMnVnRkwrSjVteXhmLzFqRXlDYVo1UDBxdCtKdmtGcXFQbU5j?=
 =?utf-8?B?N1pUNlNGckJNNUlFbHNNWi8yVExRK1RXWHl4TFZPMUFLZjZHNkw2czFTcVhE?=
 =?utf-8?B?dUo4ckdNQnZBUldLeXhkYlpjVE1uZGlYMmg1T2NMdGozTkNFK1NlMTMyQXpu?=
 =?utf-8?B?YThFTzN1MmF6S0VFOG90NjFMa0t3dGE0d3FKS3JxTmNHSU5tR2d1TnFFYURG?=
 =?utf-8?B?eEV5MVpXVXU1Wjl0NFFaWjhiYStzYXNJTGFGV09LVHYrT2FHSWM4MkZvNkcr?=
 =?utf-8?B?QjVMa04yQk8zdWRYL0xkUVNMdzE1NjdLalFnWU43ck16OGoxaEVjOG5DTjk4?=
 =?utf-8?B?VzhRSDVWT3hGUFFkZ1FybFZHUHR5ZkZBZjFIMTdWaVcvdHBwUzBUYkhnQ3FO?=
 =?utf-8?B?VmRxbm5qZTVSL3FKTUwvZkV2QkxwTWVWMlZpSHBxbmpzOHJzUTN5aW9MUG9a?=
 =?utf-8?B?ZGNQbTNXM0s4RjY1L2JaZlpaZGdBclZudGJoL3RBM05iYnRqenJnY3pHeE5w?=
 =?utf-8?B?bzBnUGVqZ0ZNa2ZtM3dwSHc5NThKYSs4dWtKWndkREtWTnVhV3lmeEd5djFW?=
 =?utf-8?B?elM1ODlRTGt1ZU9sUHVVYjJ3NXN6UzlSYlBkVjFWQ2lwTWduazllRzdHa2Iv?=
 =?utf-8?B?VTI5ZUpHeUgwMzc5VVFZWFVTd2xicUNzOHd4S2x6bUhtYnZiejVJcmJvL2Rp?=
 =?utf-8?B?Umc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4e297dd4-a9d4-4732-814d-08de2831dd06
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 12:39:36.1869
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ZyIZ4ufgmgzTMCTlLqdiAzC/TZNVgzu2rsrVLWqA/vlzx4oRR2v+k/iJm1Y2MOvCc1ZtL0IvnERfo70FSDGQNx9SkxxgCDtjbghZ7Jbs+3E=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7425

On 20/11/2025 9:06 am, Roger Pau Monne wrote:
> Avoid duplicated calls to irq_to_desc() by storing the result in a local
> variable.  No functional change.
>
> 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 Nov 20 12:43:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 12:43:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167288.1493636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM40c-0000nN-SP; Thu, 20 Nov 2025 12:43:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167288.1493636; Thu, 20 Nov 2025 12:43: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 1vM40c-0000nG-PC; Thu, 20 Nov 2025 12:43:34 +0000
Received: by outflank-mailman (input) for mailman id 1167288;
 Thu, 20 Nov 2025 12:43: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=nz19=54=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vM40c-0000nA-0j
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 12:43:34 +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 85adb3d2-c60e-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 13:43:32 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b7633027cb2so159599766b.1
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 04: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
 a640c23a62f3a-b7654cdac18sm195688266b.11.2025.11.20.04.43.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 04: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: 85adb3d2-c60e-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763642612; x=1764247412; 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=Zt/fzjuKQABw343K3VFpJ0PIKoNfi31skzZIIaiGQ3c=;
        b=hA7KZOr1hihwtSspaP5GJ/Pz+XpS/iUHufHMW0qgxPKpTzBc0hEEKfMM8tuupcWmxc
         TqIsqB5xi8JRA56WhL5yjpPAvX/GvdLII7+9dVEi65qoFRLMcB+iqaI4M38t2HFxlvIf
         w4zgvQUG9i5mJjgXJR4Gm4V3Vb03tQ+6QiHPz1R0p4Yz2P2kk//BK3+KhEPCE2Ho6Vqx
         o5boQ4zIQRcbPz5SD9dQInjVePRfYO5t1xYSNo15eJ6K+0BPm3mzW7UvKiopHL/xW84h
         bnMg8DbCRgzI3Hnq8iY8lXQNFL2nF69eYozssOpKUvYrAcVfptXtQbzBiUtp0jcUzb2n
         tFAw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763642612; x=1764247412;
        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=Zt/fzjuKQABw343K3VFpJ0PIKoNfi31skzZIIaiGQ3c=;
        b=p1ZSioaxR+HTjxZ1AyJ2lVqOq/96UVFwpB863iEeUCb/hKH31ryyY/S5VyeYYw/PGD
         K9VV5rGIBCorbAPWQb1Dlh0pxWNfMqgEM4JYwZGEDJbr30NUSqFFbd/rhnPCv7+glSK2
         bNmXgPZnYIhDrEeU8bdlosn/8DlhL/oG2a+v85V/hEWN/Oe2cn+ft4SrJlsaqJGcdZTy
         QRr/Tv9CVHCF9MkJkAeDJa696iV6NvUGubxzJKNzjeyAnMOXhUEhoeUxD4K8Ghq18luO
         q7Zae8RbNw9AD/QxLE/poOUosTzHK8IthyxvSehDip/beDlhV1mdsp5lK51m0yl6nfxw
         SwSw==
X-Gm-Message-State: AOJu0YzXMoOQ+8g/XiCfCqLNlGUT2sUW1WceekOM97W9hChC6vLZ+zP/
	uOiMxqFMBFJfMCyXvRG+Xv34VwjOIFsW+AeO8KVNXTB22xxmCoUiw0KF9xEKAm3oHPMPVnkhAde
	bbYQ=
X-Gm-Gg: ASbGnct1kATKkDBbYl6kS9BA9NhHZTPvfiIrDI32EfbVTma168TYPYmTtoGj6GfeQVA
	lA5ZqT5EHroyFhrLMxTOcuYxBZ13yQAH1m+Li7ay54siqAc04+8zL4MfystmwdOSgRtLzhSkUdw
	0BVNQxvuQegS5BQWfwP8zl0K+GqVa22v0sHq2sIAB35jclohoLE2a7puZ1QpI6SgwyYPYEZdEXp
	zlcb3TOYuRH1c6AuicUkJSKRx+sNUy2qt0NUjveJzbky0sTIMUmybNXpQrGyHGjYJ0qSRR/rx2E
	XhHw4r+6nsDqv/K1EmCsj/4wva1hO2h4GZzA4qJtUVUoc3E0yX519y9Zhoznp5muv4Hl3e2IsWV
	yxogjASfleOrYRjnMQKLK+BQKy7WEFjjSjoJVId4UbRZbnHPyg3WcpqNURVs1gn8SPUFJFiUIoi
	7oKMV3Ua65v+7UaeKnrc0yG4qAhdqNTVwBDkxNFrJn3MC0cc400YvHKMRImd+c0xiHveWkyNpA4
	p4=
X-Google-Smtp-Source: AGHT+IG9w1gqtxPyjeJW1LLxsyZ1bKy1W4iF9XlCcfTp2jpvmazZ6g6Q4WHrWolOu0DZ53j0phIKOg==
X-Received: by 2002:a17:907:7213:b0:b70:be84:5186 with SMTP id a640c23a62f3a-b765560d05dmr295111266b.44.1763642611702;
        Thu, 20 Nov 2025 04:43:31 -0800 (PST)
Message-ID: <9ad4e324-575c-4146-a494-82720faaafe8@suse.com>
Date: Thu, 20 Nov 2025 13:43:29 +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] x86emul/test: correct compiler checking and avoid it when
 merely cleaning
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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 error messages that the compiler may emit can be confusing.

The check was also the wrong way round in case multiple make targets are
specified: We want to do the check whenever targets other than the running
and cleaning ones are specified.

Fixes: 05f4cc219235 ("x86emul: suppress default test harness build with incapable compiler")
Fixes: d5997399b7ad ("x86emul: suppress "not built" warning for test harness'es run targets")
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/tools/tests/x86_emulator/Makefile
+++ b/tools/tests/x86_emulator/Makefile
@@ -98,7 +98,7 @@ avx512bw-opmask-vecs := 4 8
 # partially even with older compilers.
 TARGET-y := $(TARGET)
 
-ifeq ($(filter run%,$(MAKECMDGOALS)),)
+ifneq ($(filter-out run% clean% distclean,$(MAKECMDGOALS)),)
 
 define isa-check-cc
 TARGET-$(shell echo 'int i;' | $(CC) -x c -c -o /dev/null -m$(1) - || echo y) :=


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 12:44:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 12:44:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167301.1493646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM41P-0001Rg-7Q; Thu, 20 Nov 2025 12:44:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167301.1493646; Thu, 20 Nov 2025 12:44:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM41P-0001RZ-4R; Thu, 20 Nov 2025 12:44:23 +0000
Received: by outflank-mailman (input) for mailman id 1167301;
 Thu, 20 Nov 2025 12:44: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=ChS/=54=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vM41O-0001Oy-0E
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 12:44:22 +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 a1a0e836-c60e-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 13:44:20 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH2PR03MB5191.namprd03.prod.outlook.com (2603:10b6:610:93::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Thu, 20 Nov
 2025 12:44:15 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.011; Thu, 20 Nov 2025
 12: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: a1a0e836-c60e-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ijaF20pVTFgT7Xzyc5KTR59APePpIFDzeCwi6gzIEYjz1IqJY05zvDI/OoLcjmblYXJOyUMHMiWw/dvRrft6rULlh9qW/DncbvSTDz49ngR/zPJLQSPINNt7gYTIr+Rw5X0bpQV6EOb1pwiyETlpoU5odJgbtcS/ebSOGuUsP9AaN56N2VvimZvAdVtahugLtTbCnw83SwN4ZhxQ9Jv6tGPwqx5MuCDLJkY63o9ay4x+Qmi2DpSDVFnUZGHaaR3cMZibSdjP3faXCmin5ledQc4hKY3fjZn5uPl+AHjRPH+hbDic0Euus2RNlxxVHGvzGMOk8/J11bRYINZzmS9FCA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+YGIHoR8/gL3mIhoVY22JGFktR3EqorKH3gTHLtPTCE=;
 b=yJkr+V4X9sPFhN/97TMCo8q35/ejqFvWOSlLDcViiqcwkamgEPh/9lyBrRnCr48HKio0E+fz2LGwX479fhMj9r/d28NPDiYgTagElS7iWD+SsGMepvBhcLAGqm5y9T9Nb078K/gxBFL+E+59c17pOJUL/cA7+S9VT4StsYZGLQG31Y/AvdkIw7LzMxzyU9LimT+ng2mYy0mkYu1jPoQeDm5YU00vcox+NV6BBND2V1pyaY8JjYU2s52yPXdmSIo83o2EM3mQn6URvGfPFY7oMliLMeM1+ZLi1gqLSfpDYON20ddJmU5UwLxiR+dXDhmNqW6Oa+Ya58TE6ajYPrgKAw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+YGIHoR8/gL3mIhoVY22JGFktR3EqorKH3gTHLtPTCE=;
 b=yHWX1h74cgVVwrKVGRQ3DKSjuliGzMGCd7XYhS/kqGzQqpyM0pjATb6DxZEd7tulOwYNIM8QmiF2r4WP40WHDxj8HWrO73udOdCkKLt60SxJCBm8vzWvPrpTbHs4hEm5vN5BgjSJnuanoh1hM+foP9BXfl7Wp3hAyxjt+bT3lCI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <03d43589-2427-4966-af5a-05725a64e8cb@citrix.com>
Date: Thu, 20 Nov 2025 12:44:12 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86emul/test: correct compiler checking and avoid it when
 merely cleaning
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: <9ad4e324-575c-4146-a494-82720faaafe8@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <9ad4e324-575c-4146-a494-82720faaafe8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P123CA0027.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600::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_|CH2PR03MB5191:EE_
X-MS-Office365-Filtering-Correlation-Id: fc708ec2-2cd4-4aaa-0eec-08de2832838a
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?OGp3bHVCdkNJVXZHUkpZeWQ1eEZ0MkpXZjRUTFJJNXAvWE4vd3FjQzlNUmM4?=
 =?utf-8?B?Yk1wUWZYejhXTURJZkJSWGJ6UllqR2t1QitoN21vNkQ4Zm5SQzlQUHBndE11?=
 =?utf-8?B?MVFxbVhVV2pjbHBXeWNINWErdnB6K3ZoZXY5cGpnZjdwVnBkRUxvenRScG5C?=
 =?utf-8?B?Z28rU2NQd29sdDNjQUpZWTc0NFBXMFlaSktIZjNUbVlRUU1PVFdUU3N4N3hn?=
 =?utf-8?B?VFdpaTMxRmhMWGZGdTl2citYT2w1QTAwbmtyMDBGMm9URGdjWEtuV0JkejZX?=
 =?utf-8?B?N2ZJWFIzdVl4b080WWliS0NCOW0wSU85MlluWVJxMFRzYkFkOVpid3dLajVx?=
 =?utf-8?B?NC8zQ1BzeXQwb2VuYnpUUmtmZnpPVlIxeGhaaWtQNHRNdzdWVEhCbnBuOS9n?=
 =?utf-8?B?YVhXc2dsNmlMSDZMQmNaQmdaWTBnL1ZOdCtGY3ZOdzVkeG0xN0FhQ0dPTXRL?=
 =?utf-8?B?UzdpZ0RNakx6ODZtYUdkc3phdGQ2YU4rR0F5TWV3NWtSL1pHVHJ6RExhOU1M?=
 =?utf-8?B?aEVZR2FQQzBySEs0SUdsUlJLNmMzeDl1OHpTMmUzSEJZSmpSVDlqTmRhMUsv?=
 =?utf-8?B?WE1pSUN0Q3hHZGJCcnZ4QnoraFpqalNxS0RzZUVyTVMxb0ZEcWlwM0xNOVc0?=
 =?utf-8?B?aW9IOFZhaUdZS1VPWk9uZ3VQL1V4cjIyblZwc2lvc3FuZ0lsNWNnRGxGVU5W?=
 =?utf-8?B?Z2xMWHRtMUdqcUdyUnE4Yk9EQjE4OCtaS2lJbktBSUsrdUNNWGZEV2R1b3VB?=
 =?utf-8?B?RjV0K0RBNGlCOHdOWFJZc1FraGMrYWM3TThxVHlzdGtzVzVMUjJnOWw3N3I3?=
 =?utf-8?B?WkFaQkk3TG5JTDVVNVRydG9JaTkreTNhVDk1SnMrTVI2M0dSTlZMVkltV2F4?=
 =?utf-8?B?Z0VBTEsrWkNoaG4xUzdGbFJIajRYZW45NmxKL0hveEt4YUY3dlZjSW56aXJ5?=
 =?utf-8?B?QTdzcnFGUmtvcGE3eXJ1RTgvVGdUdnhtMFVrYVhjd1V6UUJrMFhNbmJYQ1Jr?=
 =?utf-8?B?UnY2TmxoV0RpRkFwQmRRMW9tZ3MwOUZITlRWRDh1NUhTc3ZuOUdxWlpHczEr?=
 =?utf-8?B?dTI1dVFIcXYraXd3UHh1aE0wWDlJMHk0eDRDeVBDSEZmSHptc1lKYm10Wksw?=
 =?utf-8?B?UVErVTRmVUNCdHplSncyMm1ZMFprdGJ2RkhGa3paczErMnRvckQyNWpzckZ3?=
 =?utf-8?B?VzBudlVRSjlGb050WEw3YWJpSzZWZ1FHWWJ3RldBV0gybVhCbVM1UlZPVnpm?=
 =?utf-8?B?c0x6RlpKbCtRZ1I3d3l2SzZra1FvcWJha1Q1c2NsdUVwdWt5a09GUFhpY296?=
 =?utf-8?B?czRsQ3hPdGhwc0VTRGZyOEsvZU1mWktNeXBkKytQSk5URGVYNWc5QUI1V3hY?=
 =?utf-8?B?OU5zN213bVkzeXA5YjFVdkxCVFBjTlZHWmlKK2FQd0VZcktTUE1yRmZUckRj?=
 =?utf-8?B?b1d5NndDTHlRNGhzL0cxUWtENWxobTNHM0tKemU1MG5RY1JTZXdQaW00M0Zm?=
 =?utf-8?B?OURQOSt0TEZtaVJKR044UkU0Z0NxRlpsOEFHVnVjdGtzRjBjL2FQdFhUYW85?=
 =?utf-8?B?Qi90b3NpYkJUYzVlM25GYjhDRnZWZUFYbW5EaHM4Zit6OFlSSnRMY3FXMEE4?=
 =?utf-8?B?WE9TVzZjZFFYSzFrTXJKS3Ywd2xDNEwreUxBSml0MlVpNTZvWGhFZjBCaFkw?=
 =?utf-8?B?MWE4MG5ySFZoQXFHRUFncTNWajQ1ck9ObzJRVlQwdlRtOEhoWkwzTHpHL3ZX?=
 =?utf-8?B?clJqTGFkanlCS2V3dUNRcFJYUG9Zb3RIYTJZZVRNSUcxaS8zTEJrekJzbEph?=
 =?utf-8?B?WnM1ZWVJNmQ3QlRndDRCMjBzcUh1aXVyZTRnUitZT2Jpd0ZLUGZoU3RmQmMz?=
 =?utf-8?B?RWxCWmVLOTlKcTNWRVJacGswamFXTkorTmdScmdUMVlKQ1BFSG16NVgxRldF?=
 =?utf-8?Q?XMunis6ZeLRuiWAVIbkVpeFoB/GPtZ+F?=
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?VWViTHplYUlsbTRHNHZMdkRSR2MrOHg5aUkzcGRnV0JjSnFUYnVGWnIwVTd5?=
 =?utf-8?B?TWRvczVLRG1MSDVmcFJ3d2VPUmdaMHg1NmVzK0NqTTRFRS95WEhMdmNqUi9G?=
 =?utf-8?B?WWZ1WnRSdFgrbTQ4UXZYeW95L2hhVHBZby9KYVNrVWJaNmhHUVZQak5NUld6?=
 =?utf-8?B?endtenJDeUxtZUovWlZiSkVXbkorNDdkVWJRRFZndTg4ZmF3SkZNbFJuVVdq?=
 =?utf-8?B?K3E0ZkEvS0dHdXF3WGc4T3BZN05SaEtEOEwyTzdsVkVIbFQ4OTlDUXhtek1E?=
 =?utf-8?B?WENzSmJ0Slk4aHJ5WWhZUFhUVk5zMno5ZXh5eERVMnNXMDFRSTR2Q0lRY3Z3?=
 =?utf-8?B?OEgvNU9DdEF5clhuTEx0RGt4Z2tSN0RvS25oRXRUbkErVHJsTG1TK0pZcGxH?=
 =?utf-8?B?WXY4UFh6QkFLYWlMZXBVeFV2S0pJY3luVDg5c01qelJhaWd5L1FzdWVuMkMr?=
 =?utf-8?B?azAwSXUyc25OR1RFV3Z3VlFjZnJFRXg3bTlwTFRpWnBxeGVYQ1lsUEl4QlJK?=
 =?utf-8?B?TnhrMVBzZTUxY05wTVFiWUUxRjFIbjhsYUp1Q0JidkNuUWppeFNPVVJkOERG?=
 =?utf-8?B?MVlZcjk0bnF5dzRDWXRIT2drWnBpL2NqVUVBYU9GWmlZZ1l0VFM1cHovZnBH?=
 =?utf-8?B?M2s0VlVVWUwwcE81T1RSM3VrbGFMOWxMSnlnRGVjQU5ONmNWZzlmWGowMnUz?=
 =?utf-8?B?TExTK0o0VGtiVkw5ZTA3RSs3eHR4N2xPdi95SWpDZDlKWGEyeXFwWDVHNzZK?=
 =?utf-8?B?OGpuV2FHWXVkQmdLN2VqYTFPcVhsclEycWlvRFlydURFV1l6TFg4T0ErNmM0?=
 =?utf-8?B?L1pJNEl4dTJHUE5Fc1pHdWl6KzVlaDlxWGJuazlTYnhVMFRZYmtJTlJ3b1cr?=
 =?utf-8?B?c1ZaL2NvRDZRcDJ2S2xJU0REVkkvMFd1bytGSktYWE1iUEgvWEM0c1puaTRI?=
 =?utf-8?B?TERlaksrK2QrQjYrTlBqRVFCbHM3dEdwYWhUSElIbC91SVJOcEJYSXFQcE53?=
 =?utf-8?B?Y3EvTVpSVklheGttQnpBZ2xzVXI0MzEzUG4yNHhFQ21aOGgxU1UzK0NabEdH?=
 =?utf-8?B?UGdGSUx0cGtrcTkvOTdpZnlQTFJ1R0pKaktsYlhGQ0NlNzNsNCtGaWpPZEtx?=
 =?utf-8?B?RWRHS2NRRXBONTQ0aVNMME9xUHhDYklESllhbS84dGR6OCtEU2F3R042RXBO?=
 =?utf-8?B?cU5jVU9KYlBZcGpINkphSGN0N0ZvZnVSQ3Z0UnZIWHN1MUR5bllQUHRLaEd4?=
 =?utf-8?B?SzA1M0dMMzFlSHJMM2NMM1pFVXk2a1FoRjZBRGRDVzNXbXdvZ2JhUUlKbStx?=
 =?utf-8?B?bE1LNmhXa2p6cHFpQk4vY1BWdVk3OUhtRE1PcERmSWMyR2hFdDVmbURyL29Y?=
 =?utf-8?B?K0pYbjhHQTU0VndXMGxyQnJvWjIyMU5pRzNEcVpOdlNwYXNpbzhJdG8rZjdw?=
 =?utf-8?B?YzlzdWhIdDA2TjNvZXRCNTBNZWIyZFlueVVUZUNvUGNWZmtIWGNUd2E4NmpN?=
 =?utf-8?B?S21IbXVVbFRxMnExNm1NeERtNlVVTkNnaDJ6SXFqdTBnQXl5aGVZQ3VnWW1Q?=
 =?utf-8?B?aVRxRmd3a0ZvRUtjbDFraDgzNnVneTk1UFJDMkZMNUlyT05MZENUK2VlOE1U?=
 =?utf-8?B?SDBSYzZLVU5WcmVWVG5mbzgxVU9vZzNGWWI2TStEUVBIdjZSeW1WNTgzTUlr?=
 =?utf-8?B?aWF3eFI5R2xkRHlNaXdwcEhMbkVpMHNrdEk1eDdteVZrQldqRzdWN1RRbC9C?=
 =?utf-8?B?T2NUWDF6V28vV0ZXSTc5dzUrclV5RUR2WFlNVDdvOFZtclRqK2tFdHNSdnpU?=
 =?utf-8?B?VmpRWEd6STlZVnFWWUtoK285UzFIR2dLNzR1V29rbGxxTUxIOVUrKzN5R3NG?=
 =?utf-8?B?NERoWXZkam43TlF5eFJ1VHhVNHdSVjJpSm1vMmJUc0V2dWEwK0hiWSt5elJm?=
 =?utf-8?B?S211aTZYMTNDWHBqMWduQUszZVVxckJHdjYwZERjK2dRK0V3cmdWN3V1UGxN?=
 =?utf-8?B?Tmc3MUtJWjFGVHJUa0pkRDNmcXM5L1RaZENib1J6WXdUL1hKM2hXa2kwRVhG?=
 =?utf-8?B?eGZMbUdQUldvREo0bUlHRnJNQXJTUko4NlFOQmJUbmlaUXo2bmpubEFrek95?=
 =?utf-8?B?RER1am1Sb1F1aVZQRWxxMW5udTNqdHdPakxmOEo1MnBUNEl5cFQ2eHVNMlpQ?=
 =?utf-8?B?ZVE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fc708ec2-2cd4-4aaa-0eec-08de2832838a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 12:44:15.5553
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6GHHNPq9924mHudKwbeLqlBIW/MdF5TmebMlZuk2dDWYaNWHZI2r4neObbA8Dk5zFre7QnNbuPHKjcxM1URFudnkGV1y9HQpUkWgm9yscg0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5191

On 20/11/2025 12:43 pm, Jan Beulich wrote:
> The error messages that the compiler may emit can be confusing.
>
> The check was also the wrong way round in case multiple make targets are
> specified: We want to do the check whenever targets other than the running
> and cleaning ones are specified.
>
> Fixes: 05f4cc219235 ("x86emul: suppress default test harness build with incapable compiler")
> Fixes: d5997399b7ad ("x86emul: suppress "not built" warning for test harness'es run targets")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 12:45:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 12:45:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167313.1493657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM42a-0001zx-G3; Thu, 20 Nov 2025 12:45:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167313.1493657; Thu, 20 Nov 2025 12: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 1vM42a-0001zq-DQ; Thu, 20 Nov 2025 12:45:36 +0000
Received: by outflank-mailman (input) for mailman id 1167313;
 Thu, 20 Nov 2025 12:45: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=ChS/=54=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vM42Y-0001zk-EB
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 12:45:34 +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 ccfe0732-c60e-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 13:45:32 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MN2PR03MB5101.namprd03.prod.outlook.com (2603:10b6:208:1b0::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Thu, 20 Nov
 2025 12:45:28 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.011; Thu, 20 Nov 2025
 12:45: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: ccfe0732-c60e-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HlBf+Bja0wUWE1ZpgYBbU4cHDK0W0K5004vyDM+BXM4bJM/a26Ok4M3y/a77pwi3FkSsdhdNjupCsKv9612pHuD2Wo8PNnWg94vvTN9XRubattrAWXGvijbYS5WMXVNaQyvEpDAoJepkXGfGtx4FWS7vuGSQ/RnETJHURBZ914n+w6UgoSZjnYqZ+TL9/MKavndBM8qbxjFiKMfUd12ieZpDYii+R+i+GK1qoElqG4kB6lZpUhaJXdULmW7dku9lm1V3lsjn+AZw4VJ5fKlc4p78O+a8OgQrbWIC6FVBz1ldeNf+mtrNkrt09xAPJrEtVJQ6l7aVLf7flsLfdqXTvA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=26v5mxZKMhTItQOGAvGMG23lGtkJEsyCd+MqOp77gpM=;
 b=Odm8uF9K1fYtYveOYXTkuiU06FEtQOKE4pv7HzaAYkCRaGneOxONVLidf6zYBZY6yIHean9z9ERgsavwZ5BZsLaGzxDsvZPMcMs8eszyIYCAing3JnWNKuKCs8eMC2sd4X7xV6mfkIYMwibuoaWhZSmPX7z1zuCeX1O1UPLd3IjNXwGphF2KnNYZbfIxKsakaX//yZnV9KI1PemVyX1kllFpqJu82B/0UKIZIgtyYUN7zuyn58mHBNUFUNRhQfYjO/Fs+zRyANwVr1jIDiSuH9LyIopOzlPLyjoksX6wUhjBscNK9wXGFp3sxFux8ZIXB3kepmCFTYDe51TFGepCIg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=26v5mxZKMhTItQOGAvGMG23lGtkJEsyCd+MqOp77gpM=;
 b=F4kvHZ/+CW47KJUA4D742o43hBNPJxSw639dVKpuUFMslHQEGPCtUVkJul27htyjywUZwCZLQbmxJD/xkGaVEY7AuxZMGCGA2QpefrbHimyZsUFt2Nb0B4Waie4BB6WpE4qXTZHtKCEzXiDfF9PSIHF2nDDVAu1Er2ADRXMg8lg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <7ba08f24-1803-4fd8-95b5-1587045d50f4@citrix.com>
Date: Thu, 20 Nov 2025 12:45:25 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 04/12] x86/irq: set accurate cpu_mask for high priority
 vectors used by external interrupts
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120090637.25087-5-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251120090637.25087-5-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P123CA0039.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600::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_|MN2PR03MB5101:EE_
X-MS-Office365-Filtering-Correlation-Id: 0fd8b81f-a92d-4ef0-059c-08de2832af15
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?eGRGbGZyWnpFTFRRRWg0R0JBOHdwUkliNmZocUtSa0ZtT3RBdm5OMjlXZlJl?=
 =?utf-8?B?TlBKclBIUGkraWlCb016eGVWcDhMYUtxUWFUSHo0Z3lKUnhCKzFvNDVnaWNJ?=
 =?utf-8?B?NkJvZjYxTjdUTlp3MVNMWkFLK0ZTVUNpS0c0ckVFaVdzbHlkRGQxeDdnbEM2?=
 =?utf-8?B?aGdRKzFsZ283MTdiYTZjYXgyeGlxU29VcHJUeXFsLzdLbjMyY1doWFJ1STZU?=
 =?utf-8?B?Y282SEgrcFRsWGhveVJ4UGJxYTFnVjFBemhIbU9OUnFVMEQ3UUI3dVc1RmxN?=
 =?utf-8?B?MVMwNW1raHU0QjVML1p4bG0yUkw3Z0ozNjdpMXVHTHZQMEVxb05zd09wU001?=
 =?utf-8?B?SVZLc1pvWGkxc3UyNUlxTnRRRVpabmNmOW9EZTRyZHFrYU4yYis1bFBSUG5i?=
 =?utf-8?B?SlkrTDJWNEZPMXBXNXdEQ2dKaUNRMzlseC9pa2ovZHd1YnlRY3V4MlJoUW9v?=
 =?utf-8?B?aTlTdHR1YWpXYytqVnErd3ovU3RZOWtBU2luMUNtaFRaL1N3NnlabWdVcFZD?=
 =?utf-8?B?aUU3U29MNldIa2RsZVRrNmhteEVORzN1MzBETm5Va2pXNDlRa1hEUk10SmVN?=
 =?utf-8?B?QmJrZ09kS0JoUVhQVmhGZmlSWDB5QUVReW9heU1RVEw0amI4eE1sS3VHM2JY?=
 =?utf-8?B?WjhiUHZSWnlKRFhIWVN6K0Vic0FOYkNMY1hSdi9DajJhTC8rUnRVSjJrRHBY?=
 =?utf-8?B?UjRVcjRnUEtoK1lPVGdwQVVPenMyTGltNnQ3eitYdzhNWmVmdnZDY3hHTGNU?=
 =?utf-8?B?VFFubk1KbU8yUlQ2djZUdDhXYVZvOE1HTjRPNThOQzNMcEtEMnk5YVFRcStE?=
 =?utf-8?B?Z2RJeG8vZmRObW5Ma01SMmhnN0diTE1UTDcwMWFkeVdtTzliWjVXZTJlWjBN?=
 =?utf-8?B?MmwyVmtUSU0wT2dqcDduWFA5dEU5UjAxYjVScVFLckt5MXFUWHNmOUZnYjJz?=
 =?utf-8?B?MTBjQ1VBY2Fud1ErTlhPR3dYRHhybk56bGpXQzAxUFc5STJzWWtnRVdpZkxt?=
 =?utf-8?B?ZVZna1FRMUZCclZqTkt0b3JtUkFoOEdwaUhQY3I4SnFVYnBudGlNaUFOaHdE?=
 =?utf-8?B?S2xQMXdVdEtxNy9JWWxjR3BwQW1jSlF4djZBaTFnQjFSaDBrNjFZbzN4WkVI?=
 =?utf-8?B?MDlwcy9CYnM4Rm1vOWlsNUVDUTYzTkJkK2xNSmZaSjFsMVdrMXYwOFFvN2h5?=
 =?utf-8?B?T0V1NGxRVldHb0JRVkZoOENlUy9XcnFaQmJPb0lGMDdsamp5MEYrdFBDUW1I?=
 =?utf-8?B?UGdIYjVXMEJiU3piQWYrRXN2R3FnbHdoYVh1bGlDcjN1N3pqNENOdXFKaUx0?=
 =?utf-8?B?TXY4cnp3OW1rYllRY0FqZFZHVHNrS0J5am1VRmY3bnJwdERIbFBBaGJyMC9V?=
 =?utf-8?B?OHMremppeTJGRTR3UjdkdmZhTXhyOG1Db2pjci95d21kaUI4c2NRQUUvOElr?=
 =?utf-8?B?ZWlhblZIUHd6WmdlUDNpU2kzWnFucHIvNjhnMUtab1ZXNUp4TkZ1V3dwQktz?=
 =?utf-8?B?RXJrR1REZlZqdWg3RGxURmJkVUJWTWljdmFFUU8zMkVCWFQ1dFA4dkhiT3Fw?=
 =?utf-8?B?aW8yYXViVDV6VnlmcDVGMmRPRTBGVHFSeHlJOUo5NjdQOXBkT3NNK0Z1dlhr?=
 =?utf-8?B?c2xudElmYnJVVzdnTnQ2bWlxbFVxY1FwMUR3UDVZQXFRMUg4b1loM3VBMnBq?=
 =?utf-8?B?RHl6OWR2RDRIVXRuOXhnVnVMcFh6dUpMVjdBRWhqUlhLYjFTVzljaFluRVE4?=
 =?utf-8?B?QzUvK0JqdER3bHFvNnZQVTJyZnlQQ0dwNWxCSCt0NWxlMFRTa2tVbVZ2ZnBn?=
 =?utf-8?B?bmZhQ3RjNE5WRW53cnZRbWFUWEM5MWI3ZjIzdEQ2ZklVRFdMRGtvTkpseW1T?=
 =?utf-8?B?L05mQlRsVHY3alNjMzVCMDBFdVV2aTNlbW00OWlWRWxqQytWcjVVdFF0R09a?=
 =?utf-8?Q?J+SGk5wFMGs6AmK64bXdd8i9h+aCLCdd?=
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?NmJBVWRwU3JkTDBlaUJGeTliaWhsOVdTR2g4dHV1TFJPTnAvR3lLdno3NnZQ?=
 =?utf-8?B?NmY0YWR1N05XNjNmNHNESUN5dnE0QU9sWHpiUDA5VnVwMXQxUmc4Q0VOZW0x?=
 =?utf-8?B?ZjNUdXNKbVB5bnJCZUZDTi9aU3d6N0c1ejBQWkRnUVdoSmRDY21vWlAva2Zx?=
 =?utf-8?B?TWZxS0FFT1pEQnJCZERsbENBRlplQkJDeDlOUEt4anl1WUdHS0lFYXJwMTZ6?=
 =?utf-8?B?YVRmUUN0SnoyK3cwc2JNOU9zK20wSFZXRURORi9kSmxqNDUxZGQvNkYwWExu?=
 =?utf-8?B?N3d2SnpKcVZ4UVBrMlgrSTJvMktBam5jbnBOY0dpeFZMYmNEdWxlanlOUzFo?=
 =?utf-8?B?SUtvdncxd2N0aXBqZFR4MEZiRVBvWWUxeUJvY1RyL0NVTjB4RXMzUjFhZ0l2?=
 =?utf-8?B?SnoyOWJLQmUwYVliVXQ1RTN0Zi9YNlhjMTlWQjJIcXZPQ0pkQzVOeFBOdW85?=
 =?utf-8?B?cHRLOVVQdXlmSDd6UCtVV2Mrem1tMkxLcndDMUNnSUZHOFlONkkzaVVuSVZQ?=
 =?utf-8?B?dWE4cnZtYk12OU5rbHd4UDlrKzNGU1h4ZUNpZm8wVXA3dnpBWFZQM1lxRXdH?=
 =?utf-8?B?N0dJNmVRMkR0UkRTaVo1M1drTVUyVTlxMEpKTGQ2V0xsV3A0VzJaV2tvQk1D?=
 =?utf-8?B?bndCWm5vVC9ONTNCaVAvbVRSdkowbmQ5bzh5U25ITFFnVlV3enpKbG1EbFNo?=
 =?utf-8?B?N2RmRXRRZlBSZlpuUDdCR0lFZ2tERklOUEJGMzhmVldoQjF2YTBGeFpScFFo?=
 =?utf-8?B?aVE1RnZ5YUhkRGZCVDl3Yk8vejl1a2s1SURJb0xSUFpUVCs5NTd6T1p6cnVP?=
 =?utf-8?B?TkRHdlFscmw1bEMxaitHanArYklsWHJPKzFnRkZlT1JvbDR0Q2dPZkp5TGoz?=
 =?utf-8?B?c0JlVXoyaG5lVEJNeVh5eklTZlpSSXBiSjNyaFM0OXFYMVVXbEVoVm9ZY0Er?=
 =?utf-8?B?WnEyNHlJa2dEVjFuSTd6NmEyQWJmVG51M04xczZudEtXWFNXSFNybDlvUW4y?=
 =?utf-8?B?dzdzUXVkaWh2MUtOc3dGaW9IVnN0V2cwWHhRNGZGWHRFRHE5MmoyZ09ObjR1?=
 =?utf-8?B?dTJ4Z2JYeXFjZ3F2c3JCcG5qRDFFYldDR0d1NnZtaWl4UHAvc2t0dmhMaE1p?=
 =?utf-8?B?bHpGRTBJY3U4bzlHOGxKM0dweUd0MDBnNDMrS2hQR21JNlB0N3FNTXl0N0Vw?=
 =?utf-8?B?bEJPbWVSeTZBaHIzdUUySDRpUE5najhIVE45NnhwaDFqMHlWTmh5eU54c0Ir?=
 =?utf-8?B?MmU2SmxwbmRLVGI4VkhoN2E3ck55c3RLbkhpaStraE5ycC9oUGpnYzM3WnJ0?=
 =?utf-8?B?OThaNFQ5bld3ZDlTNk5HeFAzRE1KejQ3ZStNQ1E4bFc2NHpKSFlZTmMrbUgv?=
 =?utf-8?B?NXNvSXpZM1gwMC9NQ3pyTEJTM3pNcUM1cm1XNFZQRjdvSGVRdTdUaW1VMmJ2?=
 =?utf-8?B?b3h2RnFmZ1hRalZCdkNaSlo5T0djWjV0QU51ajYyNFUrZW1xNTNhZHROeHZX?=
 =?utf-8?B?T0lmYlBHdWVWbzVTZ3NBMGFBUDdZc3o2eUJYSFh0ekthRXBqWWxrZVI1RC9a?=
 =?utf-8?B?aEt2NEZ2c2JSUFF1UkRkc1lBOUNTMWxPNzBOanV3dkRPSGtDZ20rOHVMdWly?=
 =?utf-8?B?Ly9sZENiMzJhU3JDQit0SWxHQ3ZQb3NZc1d0bU8zN2E1WVhPU3k3NlJVWDdE?=
 =?utf-8?B?Q0RvY0JIOWRCZkhqMUtrNitVc0pnVUI1T0x4YktzczRMWnM0cHpmbnJKR1dO?=
 =?utf-8?B?SDRJSDVsd3pKQ2QzU2c2TkE4R2o1WlNHM1Y5akpVTWFPZ0hmNUlSSEhFakpR?=
 =?utf-8?B?aGcrVXVHZ0wyaU52WXFtWjl5QkRBakJmTnl6bDJLUEZyRUVGOEU4aUc5YSti?=
 =?utf-8?B?dVNFTnl1YjlReUpvb0l3RVMzYWtWTnpqclFGa2NFT1BkWUZpTWRwMjJiM2h0?=
 =?utf-8?B?VVVUZldHU3ArRDNDOFp1NzhFV1VUTFFJTHZ1RC92UE1mckF1TDNablFub1BL?=
 =?utf-8?B?eC9EYjhGZUZwb1FRTjBwT2xJM3g3N3R2MmVRLzBZczRKVUkxNm1zS0llR29L?=
 =?utf-8?B?bDljOEpCOEc2L21wOURHSDY0MEMvQWpSUmdKS3MwbDRVRzNuZ1JVSWg4VmVO?=
 =?utf-8?B?SiszcHBTVjhzdDhqRjNGemNneWFUQnpFV0dwMzFFSHJiSzBQQjFNcVp4Vksz?=
 =?utf-8?B?TlE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0fd8b81f-a92d-4ef0-059c-08de2832af15
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 12:45:28.5493
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 4bHiQC3KNkNwkzZBkixd8R1VAEPWm5Jw1qaMmrgbc6K0bk9iuP/egGxn13S4e7l2BZjx9yLFnT73Z+TpLOERXA7semUpR8k9Mf69i+a47D8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5101

On 20/11/2025 9:06 am, Roger Pau Monne wrote:
> Setting the irq descriptor target CPU mask of high priority interrupts to
> contain all online CPUs is not accurate.  External interrupts are
> exclusively delivered using physical destination mode, and hence can only
> target a single CPU.  Setting the descriptor CPU mask to contain all online
> CPUs makes it impossible for Xen to figure out which CPU the interrupt is
> really targeting.
>
> Instead handle high priority vectors used by external interrupts similarly
> to normal vectors, keeping the target CPU mask accurate.  Introduce
> specific code in _assign_irq_vector() to deal with moving high priority
> vectors across CPUs, this is needed at least for fixup_irqs() to be able to
> evacuate those if the target CPU goes offline.
>
> Fixes: fc0c3fa2ad5c ("x86/IO-APIC: fix setup of Xen internally used IRQs (take 2)")
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Which external interrupts do we have like this?

Looking at Jan's series, the VMX Posted Interrupt vector is like this,
but I can't see a case of getting a high priority vector, and
fixup_irqs() being a legitimate thing to do.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 12:54:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 12:54:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167329.1493668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM4As-0004fF-AG; Thu, 20 Nov 2025 12:54:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167329.1493668; Thu, 20 Nov 2025 12: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 1vM4As-0004f8-6G; Thu, 20 Nov 2025 12:54:10 +0000
Received: by outflank-mailman (input) for mailman id 1167329;
 Thu, 20 Nov 2025 12:54: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=nz19=54=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vM4Ar-0004f2-NY
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 12:54:09 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 00a1312e-c610-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 13:54:08 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b713c7096f9so144047766b.3
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 04:54: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
 a640c23a62f3a-b7654cdd659sm202770566b.7.2025.11.20.04.53.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 04:53: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: 00a1312e-c610-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763643247; x=1764248047; 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=u4EBvQIsM4ePlu++RJfaIu+MMD8kiVfOD4X7k7WYkZg=;
        b=L9tGpBfdnvUydGVfv7WHHY69+5d+Edcfzx4zjnOjhrjOcjGTFscamc79xqlkZJplHy
         GspnTHtjKf3llkq5nWWwvuqxPkRbX4pVwU9H4mCL4VryPb02N7cKnc420SURO0WD4lDw
         qtYnEAtv6bODk2nqbsGg/FGblhaEaMgR6kg8T9vBTqbi13cFI3V0T/lVdfBRnbH8Tnlj
         6ExVslOulGW/5NPxNaOHjF25k7V+CKmRveXqW4C8pIt+OpD/FJcx9TD2JghPjvea6a9v
         zDZlYX7eex93aQsazCmLFzSmc5jkdJE04f4Iv3Q+K05mdGW/3fCX38CJS+A/on0w6prm
         Ek7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763643247; x=1764248047;
        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=u4EBvQIsM4ePlu++RJfaIu+MMD8kiVfOD4X7k7WYkZg=;
        b=veSdvJOv+0Y9P3tROvQtusdOlsQdl4fmfyBdObhO+8LsekXL4fncLJ6BOXLCMiHMeF
         nRSmk9CPS48F2Cs1GRbl6kxz+mp6kw/kInCPsVf92go5pJy76YlYv6HZQpqakhizqkS0
         s+yWN5gbiceR9eJCeNqQ0jvSbyjjxzHy0vWFdD6j9IRykfzfdJShzylnn0p1ZXqzNoII
         SX31Nf0XtpK6GBKF7YFD3jfzlFzuGZwPQokGIk6Fo+fc+Y+4ippaIq4UbosUg9IObYCv
         aHaXjkppf+BsZVCgFcAOBrnZetpVi1YChuyBlWELY/Hjr4+UmvcborZ/kCyC2mcw2h0J
         K/AA==
X-Forwarded-Encrypted: i=1; AJvYcCVZW975+xGizjR7sAO9wF3wGy7OgYK/ivakurTSTiDuK2vB518sqSFyAuZtUY/0yeP+PrD+fX3B1kg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYcTijG09qgDk6DMyuqVUKycSE/w11K3zeoIV1xFfM3SWaUiFE
	Xe5WrerLb+yVw828hUf43FQ0fDjnr0DklwmWTzWB+AOBY01o9OhpwXwDZ82n06G4Ug==
X-Gm-Gg: ASbGncuvHsyDh6gGIOIQHZWLKLm+CQYDjCF5s7TILeCc7Hl73RMveB0+0bqrwdb4nWc
	rF4N/9e7oeb//PjydcUOLW6lD4fDVKmW5Y12Ic0FfjbkeypoM0033efYk33UXFyXxT3GYamBIr7
	kjCfUP++HY05VFmVpv3Bw1K5UShZAPhvJ5mpxifbkygTg5b8xDQ3bWv8Ao8NacL0pN0ODaXejGi
	1bA4yUaOfpiAXQdLxWf8jv1eHT5hL03v6K2sXq3Cqt0fMJgPNMX20MZ8uwVBDxVH4Pg3UZitiRZ
	aTkg2KcbGwBXwN7qrR9HaMt4rCfnIKc+ah51gkknVA1RaHQySKMKoDDplSW3XaUBuxbBCSF83fo
	J+JfY7jUyCktZjfB9fsqV6FFEkKpedjvyCk+Ao9JnepX4cQf5wZoyAAnGzM7YlmwYY4+UMX2mry
	ER4rV0WMUT6fLvH4QwS0OUbZVuVa/gQmsebixh2andTeqsZ4URxZH5ZpfQXXRpwSoShx0oqpsgA
	3Q=
X-Google-Smtp-Source: AGHT+IGfogYio77b4c94stLuyGY/3yq5h2hr8Hqhc0OtnzrRUAT8O1rIUyyMtHraw8kfBmuCiKqfTQ==
X-Received: by 2002:a17:907:d26:b0:b73:758c:c96f with SMTP id a640c23a62f3a-b7654f716fbmr344983766b.52.1763643234029;
        Thu, 20 Nov 2025 04:53:54 -0800 (PST)
Message-ID: <90a1978b-460f-4d89-b9ec-ab4238780f12@suse.com>
Date: Thu, 20 Nov 2025 13:53:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 04/12] x86/irq: set accurate cpu_mask for high priority
 vectors used by external interrupts
To: Andrew Cooper <andrew.cooper3@citrix.com>
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120090637.25087-5-roger.pau@citrix.com>
 <7ba08f24-1803-4fd8-95b5-1587045d50f4@citrix.com>
Content-Language: en-US
Cc: Roger Pau Monne <roger.pau@citrix.com>, 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: <7ba08f24-1803-4fd8-95b5-1587045d50f4@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.11.2025 13:45, Andrew Cooper wrote:
> On 20/11/2025 9:06 am, Roger Pau Monne wrote:
>> Setting the irq descriptor target CPU mask of high priority interrupts to
>> contain all online CPUs is not accurate.  External interrupts are
>> exclusively delivered using physical destination mode, and hence can only
>> target a single CPU.  Setting the descriptor CPU mask to contain all online
>> CPUs makes it impossible for Xen to figure out which CPU the interrupt is
>> really targeting.
>>
>> Instead handle high priority vectors used by external interrupts similarly
>> to normal vectors, keeping the target CPU mask accurate.  Introduce
>> specific code in _assign_irq_vector() to deal with moving high priority
>> vectors across CPUs, this is needed at least for fixup_irqs() to be able to
>> evacuate those if the target CPU goes offline.
>>
>> Fixes: fc0c3fa2ad5c ("x86/IO-APIC: fix setup of Xen internally used IRQs (take 2)")
>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> Which external interrupts do we have like this?
> 
> Looking at Jan's series, the VMX Posted Interrupt vector is like this,
> but I can't see a case of getting a high priority vector, and
> fixup_irqs() being a legitimate thing to do.

The serial IRQ is hiprio and wants to be subject to moving around.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 12:55:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 12:55:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167344.1493676 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM4C2-0005Fl-LP; Thu, 20 Nov 2025 12:55:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167344.1493676; Thu, 20 Nov 2025 12:55: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 1vM4C2-0005Fe-Ij; Thu, 20 Nov 2025 12:55:22 +0000
Received: by outflank-mailman (input) for mailman id 1167344;
 Thu, 20 Nov 2025 12:55:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pFer=54=eik.bme.hu=balaton@srs-se1.protection.inumbo.net>)
 id 1vM4C2-0005FV-11
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 12:55:22 +0000
Received: from zero.eik.bme.hu (zero.eik.bme.hu [152.66.115.2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 293c4d61-c610-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 13:55:16 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by zero.eik.bme.hu (Postfix) with ESMTP id 851795969FB;
 Thu, 20 Nov 2025 13:55:15 +0100 (CET)
Received: from zero.eik.bme.hu ([127.0.0.1])
 by localhost (zero.eik.bme.hu [127.0.0.1]) (amavis, port 10028) with ESMTP
 id UFymzwfFm40x; Thu, 20 Nov 2025 13:55:13 +0100 (CET)
Received: by zero.eik.bme.hu (Postfix, from userid 432)
 id 6C8115969F7; Thu, 20 Nov 2025 13:55:13 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by zero.eik.bme.hu (Postfix) with ESMTP id 695685969FC;
 Thu, 20 Nov 2025 13:55: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: 293c4d61-c610-11f0-980a-7dc792cee155
X-Virus-Scanned: amavis at eik.bme.hu
Date: Thu, 20 Nov 2025 13:55:13 +0100 (CET)
From: BALATON Zoltan <balaton@eik.bme.hu>
To: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
cc: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org, 
    kwolf@redhat.com, hreitz@redhat.com, mst@redhat.com, imammedo@redhat.com, 
    anisinha@redhat.com, gengdongjiu1@gmail.com, peter.maydell@linaro.org, 
    alistair@alistair23.me, edgar.iglesias@gmail.com, npiggin@gmail.com, 
    harshpb@linux.ibm.com, palmer@dabbelt.com, liwei1518@gmail.com, 
    zhiwei_liu@linux.alibaba.com, sstabellini@kernel.org, 
    anthony@xenproject.org, paul@xen.org, berrange@redhat.com, 
    peterx@redhat.com, farosas@suse.de, eblake@redhat.com, 
    vsementsov@yandex-team.ru, eduardo@habkost.net, marcel.apfelbaum@gmail.com, 
    philmd@linaro.org, wangyanan55@huawei.com, zhao1.liu@intel.com, 
    qemu-block@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, 
    qemu-riscv@nongnu.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH 1/5] hw/core/loader: Make load_elf_hdr() return bool,
 simplify caller
In-Reply-To: <4fb0a736-4450-47c0-9f9e-6cb86a3b28ea@ventanamicro.com>
Message-ID: <072c1f11-1bb4-6f19-f847-e4ba07c148c3@eik.bme.hu>
References: <20251119130855.105479-1-armbru@redhat.com> <20251119130855.105479-2-armbru@redhat.com> <4fb0a736-4450-47c0-9f9e-6cb86a3b28ea@ventanamicro.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII; format=flowed

On Thu, 20 Nov 2025, Daniel Henrique Barboza wrote:
> On 11/19/25 10:08 AM, Markus Armbruster wrote:
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>> ---
>
> Nice cleanup
>
>
> Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
>
>>   include/hw/loader.h |  4 +++-
>>   hw/arm/boot.c       |  6 +-----
>>   hw/core/loader.c    |  8 ++++++--
>>   hw/riscv/spike.c    | 10 +---------
>>   4 files changed, 11 insertions(+), 17 deletions(-)
>> 
>> diff --git a/include/hw/loader.h b/include/hw/loader.h
>> index d035e72748..6f91703503 100644
>> --- a/include/hw/loader.h
>> +++ b/include/hw/loader.h
>> @@ -188,8 +188,10 @@ ssize_t load_elf(const char *filename,
>>    *
>>    * Inspect an ELF file's header. Read its full header contents into a
>>    * buffer and/or determine if the ELF is 64bit.
>> + *
>> + * Returns true on success, false on failure.
>>    */
>> -void load_elf_hdr(const char *filename, void *hdr, bool *is64, Error 
>> **errp);
>> +bool load_elf_hdr(const char *filename, void *hdr, bool *is64, Error 
>> **errp);
>>     ssize_t load_aout(const char *filename, hwaddr addr, int max_sz,
>>                     bool big_endian, hwaddr target_page_size);
>> diff --git a/hw/arm/boot.c b/hw/arm/boot.c
>> index b91660208f..06b303aab8 100644
>> --- a/hw/arm/boot.c
>> +++ b/hw/arm/boot.c
>> @@ -766,16 +766,12 @@ static ssize_t arm_load_elf(struct arm_boot_info 
>> *info, uint64_t *pentry,
>>       int data_swab = 0;
>>       int elf_data_order;
>>       ssize_t ret;
>> -    Error *err = NULL;
>>   -
>> -    load_elf_hdr(info->kernel_filename, &elf_header, &elf_is64, &err);
>> -    if (err) {
>> +    if (!load_elf_hdr(info->kernel_filename, &elf_header, &elf_is64, 
>> NULL)) {
>>           /*
>>            * If the file is not an ELF file we silently return.
>>            * The caller will fall back to try other formats.
>>            */
>> -        error_free(err);
>>           return -1;
>>       }
>>   diff --git a/hw/core/loader.c b/hw/core/loader.c
>> index 590c5b02aa..10687fe1c8 100644
>> --- a/hw/core/loader.c
>> +++ b/hw/core/loader.c
>> @@ -364,8 +364,9 @@ const char *load_elf_strerror(ssize_t error)
>>       }
>>   }
>>   -void load_elf_hdr(const char *filename, void *hdr, bool *is64, Error 
>> **errp)
>> +bool load_elf_hdr(const char *filename, void *hdr, bool *is64, Error 
>> **errp)
>>   {
>> +    bool ok = false;
>>       int fd;
>>       uint8_t e_ident_local[EI_NIDENT];
>>       uint8_t *e_ident;
>> @@ -380,7 +381,7 @@ void load_elf_hdr(const char *filename, void *hdr, bool 
>> *is64, Error **errp)
>>       fd = open(filename, O_RDONLY | O_BINARY);
>>       if (fd < 0) {
>>           error_setg_errno(errp, errno, "Failed to open file: %s", 
>> filename);
>> -        return;
>> +        return false;
>>       }
>>       if (read(fd, hdr, EI_NIDENT) != EI_NIDENT) {
>>           error_setg_errno(errp, errno, "Failed to read file: %s", 
>> filename);
>> @@ -415,8 +416,11 @@ void load_elf_hdr(const char *filename, void *hdr, 
>> bool *is64, Error **errp)
>>           off += br;
>>       }
>>   +    ok = true;
>> +
>>   fail:
>>       close(fd);
>> +    return ok;
>>   }
>>     /* return < 0 if error, otherwise the number of bytes loaded in memory 
>> */
>> diff --git a/hw/riscv/spike.c b/hw/riscv/spike.c
>> index b0bab3fe00..8531e1d121 100644
>> --- a/hw/riscv/spike.c
>> +++ b/hw/riscv/spike.c
>> @@ -180,15 +180,7 @@ static void create_fdt(SpikeState *s, const 
>> MemMapEntry *memmap,
>>     static bool spike_test_elf_image(char *filename)
>>   {
>> -    Error *err = NULL;
>> -
>> -    load_elf_hdr(filename, NULL, NULL, &err);
>> -    if (err) {
>> -        error_free(err);
>> -        return false;
>> -    } else {
>> -        return true;
>> -    }
>> +    return load_elf_hdr(filename, NULL, NULL, NULL);

Does it worth to keep this function or could just be inlined at the two 
callers now that it's equivalent with load_elf_hdr?

Regards,
BALATON Zoltan


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 13:06:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 13:06:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167362.1493688 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM4N3-0007TZ-MM; Thu, 20 Nov 2025 13:06:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167362.1493688; Thu, 20 Nov 2025 13:06:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM4N3-0007TS-Hm; Thu, 20 Nov 2025 13:06:45 +0000
Received: by outflank-mailman (input) for mailman id 1167362;
 Thu, 20 Nov 2025 13: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=nz19=54=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vM4N2-0007TK-5b
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 13:06:44 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c1d78e89-c611-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 14:06:41 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b735b7326e5so350736466b.0
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 05:06: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
 4fb4d7f45d1cf-64536459d92sm2028104a12.31.2025.11.20.05.06.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 05:06: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: c1d78e89-c611-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763644001; x=1764248801; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qmRHCksAzQmDG4Ob5SdQvA3rI7T33SaUr2RCq6O7G6A=;
        b=DVXESA97RAejiQXyTFniSHTfZFbxZrV2lDpvTnzJqjPdJ+7aIihVyW247LNnLKHevO
         3rbV4Bau62rtIAKllygNSszV97shk++g5z53UkMMuPE+b8+th7C8O+/fSV2bGUTzT0t3
         x8pq1Zcim4n5VJYNaNmtPVFGlq1SXzNE/r+DgHbjvjS9owQGQCEnMr8Fe66RmsjySONf
         jUJ9HY8vfwKWglMli19WLCRWkiMqKZNv2f/1bGdhka+aALbXtMBvLQWkY9SpVVXGUedZ
         nKyEcqTRfDnDO/ZbaV6vFMlVrn8fBo1yVmYtSU2ai+NFWE278mCi9GHh1wXE85jGNooU
         G6lA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763644001; x=1764248801;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qmRHCksAzQmDG4Ob5SdQvA3rI7T33SaUr2RCq6O7G6A=;
        b=VVOahrrld+kzVL2/otLCnMmcOIjO+mA1Hd8O8YDDVDQ3JdHw/kvM1+VrkqoPCUijpr
         XM8h/mIMwX/I3JD0xmd7SRNV9MWqKbxIsnewNl7+8QX69RNdycmocqDbTQMgTltAv2a3
         Vi2k9s3NonBLd9L5utsz1NZMIZ/OoN4b/7cnCc6Eoyi4GsZQ1w4sdt7G9wU/wjR+ae9E
         AOq9uzVro+U/zr4UG95NjkFccax9nhZnmtUgxI+aqaXp/VKrSID53cEcRy/atI+Y9IV+
         UNtflU4URhkS5O0R/VZ2d2xUXeQxXU+clNHqNNk6plGlrfo1/olxii0tqorzuv0Mwa59
         yhLw==
X-Forwarded-Encrypted: i=1; AJvYcCWKZqpQGZOVFimGyZdQ6FkZJnhFg3HNoLrL9s3cCt3Ts/BFqLL+7uIY6KMv7Zee927AhspXnl9crzY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyAwnL8TYR5s5aj76LSrebeE8F0DP9TV4d4wRBH+OFTfVrUeAH2
	1xymvYjfWTVKfinigSoioL9t+Jfo+bv1DoXdm2UEJhueyRqsF20KPwtYTUt5vioPaw==
X-Gm-Gg: ASbGnct8lIyDeAM3FDP5qR4nGoaHTRda03bOB7IfQ2hNOZkVzBy+uyIoNvH7T94ot8F
	0Dky//WIsHmAoBlo2mKdfTH6D1A1gx+RZMTzGWxH0gYjIArZObnmA/YhrNxfSm3pieK1q1O6g3o
	rzgEmsp8e0fwZRU8BWpz7IuXzHDqXOfTzwUGDEU+4eeVzuSusKrHnJvGjyEkBPtJF4sgn89eGnO
	H6qYF7g3e6lMAeAnJPQ68e1uRzRZ/NzNfx3bvXtBcVQE0Cl5ZGCAFRUx5dwSEGzCQcTpMr676XY
	Bbtm7Ad3v/yaHYI3BP7W8UpOabxNakKX1vwAsIvAopwnIMelP7yuf3I6d6aZqmjNMrkVcWMbbtZ
	iKTRb7phUCHiRNboR3ztOFYLc1mo342M+kBi8ybHruTAP/QERxzmQwjST+ufAMrk1j6kjrKK/E3
	jRASZaKJqfAd/Db+6PEDeZ60Yo1Njq5MXsduGaZeTRn60EE317hmD/Kt/k1yNDks3M3ic2gS6mD
	FU=
X-Google-Smtp-Source: AGHT+IGW5izs1QbxQ5CnXpixBXiK0BpEwZjjuU2rTQcyfef9/nbTJSWVqMK3KqMfPIri49SuMLhFIg==
X-Received: by 2002:a17:907:3da4:b0:b70:aebe:2ef7 with SMTP id a640c23a62f3a-b765728545fmr285045566b.14.1763644001309;
        Thu, 20 Nov 2025 05:06:41 -0800 (PST)
Message-ID: <3491d3ee-08b8-4678-9f18-5a4daa972e02@suse.com>
Date: Thu, 20 Nov 2025 14:06:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 04/12] x86/irq: set accurate cpu_mask for high priority
 vectors used by external interrupts
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120090637.25087-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: <20251120090637.25087-5-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.11.2025 10:06, Roger Pau Monne wrote:
> Setting the irq descriptor target CPU mask of high priority interrupts to
> contain all online CPUs is not accurate.  External interrupts are
> exclusively delivered using physical destination mode, and hence can only
> target a single CPU.  Setting the descriptor CPU mask to contain all online
> CPUs makes it impossible for Xen to figure out which CPU the interrupt is
> really targeting.
> 
> Instead handle high priority vectors used by external interrupts similarly
> to normal vectors, keeping the target CPU mask accurate.  Introduce
> specific code in _assign_irq_vector() to deal with moving high priority
> vectors across CPUs, this is needed at least for fixup_irqs() to be able to
> evacuate those if the target CPU goes offline.
> 
> Fixes: fc0c3fa2ad5c ("x86/IO-APIC: fix setup of Xen internally used IRQs (take 2)")
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
with one further request:

> @@ -756,12 +770,10 @@ void setup_vector_irq(unsigned int cpu)
>          if ( !irq_desc_initialized(desc) )
>              continue;
>          vector = irq_to_vector(irq);
> -        if ( vector >= FIRST_HIPRIORITY_VECTOR &&
> -             vector <= LAST_HIPRIORITY_VECTOR )
> -            cpumask_set_cpu(cpu, desc->arch.cpu_mask);
> -        else if ( !cpumask_test_cpu(cpu, desc->arch.cpu_mask) )
> -            continue;
> -        per_cpu(vector_irq, cpu)[vector] = irq;
> +        if ( (vector >= FIRST_HIPRIORITY_VECTOR &&
> +              vector <= LAST_HIPRIORITY_VECTOR) ||
> +             cpumask_test_cpu(cpu, desc->arch.cpu_mask) )
> +            per_cpu(vector_irq, cpu)[vector] = irq;

Going beyond desc->arch.cpu_mask for hiprio vectors may deserve a comment here. When
the vector is global, this is necessary. But for e.g. the serial IRQ (which still
moves, but isn't bound to multiple CPUs, the more normal way of respecting
desc->arch.cpu_mask would be sufficient. It is merely (largely) benign if we set
vector_irq[] also for other CPUs. "Largely" because strictly speaking if that vector
triggered on the wrong CPU for whatever reason, we rather shouldn't treat it as a
legitimate interrupt.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 13:18:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 13:18:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167376.1493697 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM4Yg-0001BQ-KG; Thu, 20 Nov 2025 13:18:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167376.1493697; Thu, 20 Nov 2025 13:18:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM4Yg-0001BJ-Hi; Thu, 20 Nov 2025 13:18:46 +0000
Received: by outflank-mailman (input) for mailman id 1167376;
 Thu, 20 Nov 2025 13:18: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=ChS/=54=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vM4Ye-0001BB-NK
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 13:18:44 +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 6fa4bdc0-c613-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 14:18:43 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS4PR03MB8469.namprd03.prod.outlook.com (2603:10b6:8:326::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Thu, 20 Nov
 2025 13:18:40 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.011; Thu, 20 Nov 2025
 13:18: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: 6fa4bdc0-c613-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Nt5sydJTs4GIJPkRxcqyLKcnzizO2wvg/zW2n23kG0lzRpQSLm8jwv/XKQ3doWWb9CQUFCLZ9ByYf0vPZM5DDV9oFioEReTXyVm2fpQ2u0+p2O36Z2/CNIkwfd41wb05IDOJUizoQlTE/kC+1Uy7wSi7KJBX+snPIQN+OAL/Am+FKTlRu7uXOpxsC8Jwz0hM+95ULZwymu1hevpbzXXZNh2iyIkJ9FoqMfy3/pbwpA/bm2ZZjjKWpeo+NYkSeF2mrJNCvFAU0wpv3K7+/TZjvL1v+ltwJrHhpUFHwYci+ip75I1Qz+Hbv4Y6iT2zP5RRG3KxIJigzBq+DCSn9J1CBA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=w4YEl5xlgH+6YN2sXhH8yU5Z6joaCrykrDsffQPSWiI=;
 b=NttjVOknH8htTBuvypGsKXIaU062EWtWW9nbDWv3cWzUHH/1C5z5drlFs9lZelimfEcWpuC6cLTDT/cvpSCEm7QABZ76GdsHilfV0N9Rlvicv8Ct2AX8zcYj0cLTbnNEpcvbd1wxpLOLpdal8eFDhnIIOFeXSh+fbWSQmBY3bWMKyKSPpdNeRoWBTicYKf6GmyEpVgxsagFxZ02QnQZwsEhpzAyQG9Dx5c44OqtmzPXYpGiepbeTUMHrjzAj/DPXHgIKLKT+WZo1DlTFvL8SxZPbwZlWxCXhJly6VvwvGS3+x4Bz30pEBnFsu//dEVfNAv3rjw4bX5vxyi8aC8Z/SQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=w4YEl5xlgH+6YN2sXhH8yU5Z6joaCrykrDsffQPSWiI=;
 b=X/hEDJchFCiQ9TQwHwsayEPyF3QJa7pWrUpg6oR1WFufaNJytRIbTMb1sod8QDlFw8im4GRdDIQLZXThqbboqdWlMyM37IOVLDCTNhnmPwRi/vKySGARj01HWfyVOct83ijievTubGV04yxkNvU2+D6zkR0VmRCrSG8w6Bo+g8c=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <63a4f416-f475-4b6b-8f44-db570b7a75d9@citrix.com>
Date: Thu, 20 Nov 2025 13:18:37 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 05/12] x86/io-apic: purge usage of logical mode
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120090637.25087-6-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251120090637.25087-6-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0206.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a5::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_|DS4PR03MB8469:EE_
X-MS-Office365-Filtering-Correlation-Id: 33de4339-b9db-4660-cf1b-08de2837527a
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?YlhmcWdaK2wxM1pmVmpjbGo1NkhhWE5BcDM3SGpXYTRuN1pkUWVMRFZVdEtn?=
 =?utf-8?B?dXdmcE1nZ1VMR0xaRnp0ZmFQd0hPek5Mc0c4VzZtbHlTeG1MY3hmbGo5OE01?=
 =?utf-8?B?UTRwV29vV2VqaGNQSTFHdlB5M01pZ2w5ZnJWSVViRGpybk03b3M1R3FiUU9i?=
 =?utf-8?B?SU4yOFV5RVVNenkzOTRuRHZWaDdlekg4cnoxWnhOQXgwemtQaTBnZmxyTTAv?=
 =?utf-8?B?S2NTdTllb1pHT3pPSUlVclArVVh6eFRzZTc5bEZmWGp1bDVBR2hOM2Z4RkZr?=
 =?utf-8?B?TW4xVCtPZlVJK2N4VldJTEtVN1JMT3NBYnNyUGhtYjg3aDNWdFg5aiszN2Zp?=
 =?utf-8?B?MGdLZHhsVnhpdnNVNzBqNS95WTBvejIzUHgyMVc2SFpiTzdHS04rZ3UvSDYz?=
 =?utf-8?B?NkhSSUF3RXJqTjJaSWJUUjBRcWZyZUNjcmtkL2hsWENlRUdzenZMd1JwMjk3?=
 =?utf-8?B?dk5LalJIdFNycmI5MEt0ckNENGl3OTNKY0RLMGtWRTQwamNsV1lYdlhRTWRz?=
 =?utf-8?B?TFRoQzJibklhK0FuWHQ2ZjhCRUQ5Uy80dVUvMnlHV2Q3TElGdlBTWTY5WitK?=
 =?utf-8?B?cEkvcE1XQ1dGREJtaGN3SmR6MGxkQXFTVWs2Q0ZRbDNhVUVsTDZOSmhyT2pN?=
 =?utf-8?B?UjhmNWdjOVh4SnRSRlhWZlNSUWRuYW5tSGVwTkJyS01kSVhBMU4yRnorTWxB?=
 =?utf-8?B?eGhaNmltcldlVkZ3bml2ZmtzT3dCcmhJSW5YdDVRS0ZEZWhVaVhlUlBnQmo1?=
 =?utf-8?B?OUtyZ1hweUk3NGFsQ1BGd1J3S1ZuMXdWZEszeGgxSzhWQTFTTlFTNnIyYloz?=
 =?utf-8?B?Q0VKZURwUTlvL3VWTXZrSGI4dVVHRmpIYm5jeThjYlM2LzdxU3RzWENETkZ2?=
 =?utf-8?B?VEpLWS83OFVMY3pjY2JReVN3eDdsMkk0Z1llNTJCbVpXL2tFNVdvWnZZVlRR?=
 =?utf-8?B?UjIvSDA5dDlnZng3WmZDMis0S3hvWThSeFdXbFVaWkIyNWFNeXNwbmRMU2Jh?=
 =?utf-8?B?NXpqcW95QncyZXBiSXlpdXlVWTF3WWZwdXJINkpMcHdvNmRaRDRHMEx5bHlj?=
 =?utf-8?B?SWtjaHBQeDliUlE0V3BzYlhxRjJPcko2MWlWL0pRVU5za1BrME5QN2hDeGFa?=
 =?utf-8?B?bnJtYjVHU0hCcUZJKzRBM213U3NINEpoakVGeEJZWmVuVUt0c2ZJelJjNUhO?=
 =?utf-8?B?Z2J4ZHZYcVRPeG5CMGVzcVZNVjdoMUlPK0NIcUZnTTllVmJJWFBvVTZIRkdU?=
 =?utf-8?B?R1NiN2FEeGZFY2F6WEpzcGV2ZkZOU2lJUnJ1TUsrbEtDeFozVVAyY1M5Ris5?=
 =?utf-8?B?SlVKQlpMZW9vVVFqbFN3bkM2Ni9JWTl5R2pCYUNlODJmU1Vra1V3TUFZNVZS?=
 =?utf-8?B?U00vZC9xV05hZ2xYZjJaSjlIUkVZTm1MMVJCazRjNFQ0bmtNaE5MRkkxN1ZY?=
 =?utf-8?B?MjA3ektCRmwrMEJJZldBUmhrTW5zYlAxaENQZ0ZVS2M0cUF2NllzTHE1VENo?=
 =?utf-8?B?bnlIR2J4MU8zYXdEZmlHVjM3RE9hbDlnTWFZaFl4bXYyZ0VWdzFiZ0lTempm?=
 =?utf-8?B?SWRVY0JlSjdpT2dJZ0ErRkZTdjBVaklJUHQreTBIOW4rak5HVzBFa2ZLaUFF?=
 =?utf-8?B?T24zVWdGelQ4Z3l0UVFIUk1vbGVrd3ZTOVdrQWxqK0k4MzFWMkp1ajkrbFk2?=
 =?utf-8?B?Y3lXMytDd0N1ZGtQWXBNMTN3cENYUi9INithNElmUXdJOE0ySC9QbGlIVjJ5?=
 =?utf-8?B?RDRQYTdPRmQ4YVNTSk5kWUhaT2NGREZiOEdza09pTlhmVGJIcXNsUm1UdEox?=
 =?utf-8?B?ZmpjQkFId21pUVBydUQzUTJ5c0lIOWJJUW0wS3lyU3NGYzJEQVdsUnd3SW91?=
 =?utf-8?B?b0ZTZDkxOVVDQVROSy85cVEzWXVVMG9PWVZyeU5tOGZYYlhONWZGZjQ3K2RP?=
 =?utf-8?Q?y0sxqh/3H63iBLXMts9OAkfaNz5VA3lY?=
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?LzlYOE0vd1R5bkxjWk9OblZNSFZVbC83NXFqaGVCcGtvM3l2OXZxUUVBUFU3?=
 =?utf-8?B?dlArVGJ5SWhRSGRrc0hxM3BYVDd6Tzhud3pjQWVycDRkVXFtL1BFV3NVQWdy?=
 =?utf-8?B?OUo0YnpyQ05HRFVWSjZVTWg3L01BcEljYTBvWjFWRXFTY25VdDg5czU1OElm?=
 =?utf-8?B?MHEvRE56OVJib1VXSkQwRGsyMFY4WWRVb1RvS1FnaGh5WDlBREJVaHRXelFB?=
 =?utf-8?B?OGVlVmhROWFFeG01d2xWMTFuYnlXRnNFa2l3OW1Ia296SDUwVTBkbTFlWjM0?=
 =?utf-8?B?bnNpVzExMWNIcmFXMjF6anBTZVRUTDRlTk03amp2TXRLRjZ5OVJrV2RkR3py?=
 =?utf-8?B?clNnQTFBanUzSzBFbUtVZURKeHpiUURtVWhuTmFYeGdWaFZ4YUFsTXg3VmJX?=
 =?utf-8?B?aTJzKzZmRW1iSTJmN21CY1pTVFZCYWwvWXN1WGNTYmdxcmNXaGxYLy9WSlM3?=
 =?utf-8?B?bDlsWm5oL1EvV2IyYy9vTmVoU0xBMWQxNzFieWN6dkpobk9tVFRTcDVEdi8v?=
 =?utf-8?B?d3JDem9XemwrTEVmZnAzTitXM2Vtd3Jlb3pYeFg1RUlVNGJaU2JqTW1DWlow?=
 =?utf-8?B?bVQveXpDOXYxb21QYXRUaTVta1ZBNU9Oa1loRDhCcDhoUkhPaklBREYzaUFL?=
 =?utf-8?B?R1g0SExZcGdoc0dkc01GQnNzYzgwRDZMNTVVd2ZNVXZZbjJWMnZxTEtvTldN?=
 =?utf-8?B?R2VXbnJVTU52NFo0N09XbU5VQXFGQ3E0Qm1GR2RkbEtBUmNzbFJMZDRHeUtY?=
 =?utf-8?B?aTE3NTlFRFFSNGYyZnEvM25uOXh0RGpCSENwdHQxTzJMQTNndGRoc215VWVH?=
 =?utf-8?B?eHVZenpCcGJyRi8ybGNKRmJjMXRjdzRpcU9nRHV5a3RzWmVEalJhdjBYTXRK?=
 =?utf-8?B?U3F4bnpicjByVG9BaGk2MThhOGlxQktkT3dkOW5PTG10NjFsTkZac3pBZXNs?=
 =?utf-8?B?bmQ3azlJcFQyWDlIbmxmZlpvdURCNDgzeXlDOVA0SGtEdFprajFVejRSM0hM?=
 =?utf-8?B?VHBhMy9HQWRpczdGQUZ1azUrWUNjRVc1NVZWeW14K1dBZ1pCOEM4cEI5OWNj?=
 =?utf-8?B?RWprNXl4OWFHcXBkYVFHY3FRZHJ2bHFxdnFRZy8rOGdUUFpFL3ZRNkowOGhS?=
 =?utf-8?B?THlqVG1id1NYcllTSWNsRlFrMTVwOG11RmNUK280b0JMY3NYMlJlNGVUZEpv?=
 =?utf-8?B?WkdGYjVzeFBydUszbkxiWHlYRFBCYzBzRCtZMDh4ZEM2WTcya3BVeWNoYnZm?=
 =?utf-8?B?YThrQWFOaDlHeEJCSWlZdXdESy9SdDdnWWxhY05sdEUxSmxMemFSeWRDTFY5?=
 =?utf-8?B?ZTFqNVpaOFFjc1VYZ3FRQnBNUUxzK3VkckMraUlTTWt4ck1ocGxGYkgvWmZp?=
 =?utf-8?B?anF2RWdtSE04YVNRVmU5dnY1VHZWcnIvSkgzTGphMkpRWFkzTlJ2TU9sdlo1?=
 =?utf-8?B?NUZoaDIwa2wvVnZrc0hTWC9XQ0gyRFJLYTZQTVhHRXRueGRBY2E2THhDUzNP?=
 =?utf-8?B?RjhMNDBya0lESUZvcTJTRy9iclVYMHRHcFY1cWxiekNuUUVHTm5iTnV6eTRG?=
 =?utf-8?B?a2pLK2lKSDRobzExclVPMTZJc1FaZ1hudUNqZ3VRbVRMRjB1Smc3RHRpMGZt?=
 =?utf-8?B?OGFpSE1JaWYrRUdTaEhxbkVFUi9VQmtiT252Mm1HRjd1a2xNdjludkMyVVN1?=
 =?utf-8?B?WXliL0lKOEQ3ZmZUSXVBOU96WXk0Z1hoUm50VElWZmxIRmdRZjQ2QzFocUhk?=
 =?utf-8?B?bmJXYklRaVhYZ1phODVsR3FLNXowSDRYSjB5MEgxK2RQOENSMXlVWVhNWmFF?=
 =?utf-8?B?Z0xpQ0ZXTksxOHZ3SHRFeEhGM3RxZUF4UkE5ZU9TQXkrVnF1SWM2VkhyNTRm?=
 =?utf-8?B?RkV0SUZoazk5dVd0dWcyMHZtcXNnem5SN29LY1NQT3h4K3pOWm9qS2hXZTda?=
 =?utf-8?B?OVlwZ2NmVmFRNjJoblN5MWw0SmlncExIL3NUa3dBaDZ2VVpES3B1T3dTa1Uy?=
 =?utf-8?B?Y2xTME1QOE13dm1jZG5jcUFPN1c2Rk1zd0prdVM4UC9yejAyWkQ5RkZjU1dy?=
 =?utf-8?B?aVpsWXljUk1uQ1UxSGZKZ3dFMXV6RG9FSmJXQmsrOWhKWWt5aGJnMms4QzYz?=
 =?utf-8?B?VGhuNTBSUmVhZ2s3cXhMdkpHRkN6cGk3WW9kMG54T3dvdzdSRURKT0U5SWl6?=
 =?utf-8?B?bXc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 33de4339-b9db-4660-cf1b-08de2837527a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 13:18:40.5940
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: C3fPNHk/1oxKTfMcdZJjDTK1T1NO25lObsCarqt+FCurpBkY9pHpaY7I+eFr9IwCj0Fmq/Qvl4bKcRvUjElCJDpQ06YSS/EbLJ87tP3jH74=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR03MB8469

On 20/11/2025 9:06 am, Roger Pau Monne wrote:
> The IO-APIC RTEs are unconditionally programmed with physical destination
> mode, and hence the field to set in the RTE is always physical_dest.
>
> Remove the mode parameter from SET_DEST() and take the opportunity to
> convert it into a function, there's no need for it to be a macro.
>
> This is a benign fix, because due to the endianness of x86 the start of the
> physical_dest and logical_dest fields on the RTE overlap.

RTEs do not have overlapping fields; it's Xen's abstraction of the
IO-APIC which is buggy.

For starters, Xen's IO_APIC_route_entry still only has a 4-bit
physical_dest field which hasn't been true since the Pentium 4 days.Â 
This might explain some of the interrupt bugs we see.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 13:45:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 13:45:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167396.1493713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM4yG-0006PQ-O1; Thu, 20 Nov 2025 13:45:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167396.1493713; Thu, 20 Nov 2025 13:45:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM4yG-0006PJ-Ks; Thu, 20 Nov 2025 13:45:12 +0000
Received: by outflank-mailman (input) for mailman id 1167396;
 Thu, 20 Nov 2025 13:45:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WvbT=54=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vM4yE-0006PD-SS
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 13:45:10 +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 1e307e73-c617-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 14:45:05 +0100 (CET)
Received: from SA1P222CA0191.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c4::24)
 by PH7PR12MB7988.namprd12.prod.outlook.com (2603:10b6:510:26a::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 13:45:00 +0000
Received: from SN1PEPF0002636E.namprd02.prod.outlook.com
 (2603:10b6:806:3c4:cafe::3) by SA1P222CA0191.outlook.office365.com
 (2603:10b6:806:3c4::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.11 via Frontend Transport; Thu,
 20 Nov 2025 13:44:58 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SN1PEPF0002636E.mail.protection.outlook.com (10.167.241.139) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9320.13 via Frontend Transport; Thu, 20 Nov 2025 13:44:58 +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, 20 Nov
 2025 05:44:57 -0800
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, 20 Nov
 2025 05:44:57 -0800
Received: from [172.27.232.218] (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, 20 Nov 2025 05:44: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: 1e307e73-c617-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rSJdiiAiulmM8fTpNYOWyC/NrH7apQwgTACBNQ0KvAPZcyntC/j2YkEaC8zZjYgLnscW+Hyt1zCM/jigl0ZY6c21rFgYDmZZ3KYHiEH56V4NFFoJxBrwiagCSJ4+lV1QnKNzselNcuWoqSZKmOvRnK1bv0GCvlmE2IZs7Ymdm6yTIGnAb5d6iy9TYSzgh1Mni1XvHV/z1F6nBLsBgwAyYAxl2Zr6C7HDeQgqSEZh0PHB/TQ6fEQMxgDSJUmGGKTnAHBKG88cPw0RS5Y7t37T0IqiUH5dvP9Us0iD+1oIoAH0kEWjpTiN+W8CqVQWZjZTbq09hpfH2Ufbt3EShMdYYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kg2qsvqjIZG+K9TLdEaJarAOhIt3DN9fCLRMm3QZOWs=;
 b=iiQAqC0Ocy/718IW74i/UUD5hpvCUgm2Y1m8rrRpT2IzLhhMAgXAfLqnO+56jMG4VrkmRX1Jt9QlCWL9v3aRxhes2tEY6Z9Lm5MSxNZOfd+f1LBmL1UNc6KCAtXlj4KYQ37317+SBZbt9nkLMdzDG95YaJX/LOAAuxuWex6HjIRPwQ+0qVkJM0bk9OMHeIIAwsT6YSh8C7HNB2hMRbWmgRACpkInttlTbn5rFmCjTdv2dibnJxf6SLqh1VpHDmJlQxIwEx91T8b8M+KcOmu2c+rxoJM2SmjW2pBvAQYJX/DtJ02Ij7vZ509+u8ACnbxUFOwFTTxygeRcGVOuhGH8Hw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kg2qsvqjIZG+K9TLdEaJarAOhIt3DN9fCLRMm3QZOWs=;
 b=XSwNuFAOlsHs5QIX2cfQOkaQaNZCBok3RlSKjPJcUiHfUJU7ABfbVwHPTBbyUuQ6ROz/PoC9EpfCsIHHN1J6g9lscJxWlW6FLzjq60mLwfc2P5JFo45lENVtQhq/tFsAkLbZdFh+ocUY/882ClsLfAYHVvbOvgnqhj+KtozFyI4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <c9358f1c-14bb-47df-95d4-01dfdad01c34@amd.com>
Date: Thu, 20 Nov 2025 08:44:57 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v8] x86: make Viridian support optional
To: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>
CC: Sergiy Kibrik <Sergiy_Kibrik@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Paul Durrant <paul@xen.org>, Alejandro Vallejo
	<alejandro.garciavallejo@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
References: <20251119193215.1012108-1-grygorii_strashko@epam.com>
 <dc779808-a46d-4b71-8cde-6239b4a68819@suse.com>
 <e79baedf-c619-461a-81e2-eb7eeafa648d@epam.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <e79baedf-c619-461a-81e2-eb7eeafa648d@epam.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF0002636E:EE_|PH7PR12MB7988:EE_
X-MS-Office365-Filtering-Correlation-Id: c08b41d3-c519-499d-51d0-08de283afec5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RXFENHUrUlU0Q0NEcWk1U0djekh2Z1pkMXVlU0czbWVpdm8vOFRJaEJCY1hp?=
 =?utf-8?B?TzNhSi9WQVc5ZzB5TG5UY2dFeWJKUmhtbVNGRWw5b3VuRmFEdWR0ZGpiZHll?=
 =?utf-8?B?Ulc2TVJHVndKK0lNWGhFYkIrMTJZQ0wxbmJsbXROeGpjV3dwaDlVWDJGK2Zs?=
 =?utf-8?B?bDFYT1gwcnNuMExjem96NkU1RGFJYW54WGd3cHhML0pIV0RWUTNGcnZEaFNq?=
 =?utf-8?B?dXdYYURkVGpOVGtzK1Z2YkQ1UTNDUXFDQVR0aWFKTU9EbG9vVzE5Smh4Ni9y?=
 =?utf-8?B?dkRCSFZFdk5nVUZoN1ltV1lxa2U3YUVza1FDeVlQSnYxTkhob0ZQNWo3dnRr?=
 =?utf-8?B?UDhSSk85cGpSak9JT0pkZDBVNDBnTWlxSHRzL1VEWEhwWHRwbXJEOEVLaHhD?=
 =?utf-8?B?a3pDOERLaUExbFY4KzM3VExaQmIrbXBrQmRPM0RkMjgwdVVHbFQvaXFwMTVC?=
 =?utf-8?B?aDN1bWJxeDQ3SlExK1hPb1RMYlZocnBDVm1qWXN3YWVpZWZMWFl1WXdIMmZm?=
 =?utf-8?B?MzhLdHYyMmlUZFVCekdZK20xM3FpTytTeXZaQjVIVXpwMXltQjk4dW5zcGZW?=
 =?utf-8?B?UTNUV3dOUGxkZkNIWEE0UUZRYjJkcVk3ay9tV2FJMXYySEtxVzlhVVkxWDc2?=
 =?utf-8?B?NnBvV2lGTDQyMSt5K2s1VWJSMWdqZ0gzT09IbGZmL0xUWWR5cW1RaVlSYVZI?=
 =?utf-8?B?VEFaNC80OEdRUkVtWTZua1pmUHYyQW1ESmNCSWxpVGhwTVAyVXJIakoxaXRq?=
 =?utf-8?B?N2kzRWVsL1VJZ2xOS3BCRm05UlJTamV3dkpLVDdVMWRCQWk1cGZmMHIvMHQ2?=
 =?utf-8?B?bGRBNUdEZURnSEEwVENzRmJrVkVUdFlGQTd1WnZES1ZlajE0amc2TkR0Z2N3?=
 =?utf-8?B?N3lzTXRpN212MGVMV3FXWTRnMHBoay9zL0xaQStpeG5ZWkpSWlhZZTlnTXBL?=
 =?utf-8?B?alJUcDVEK3JYY002L203OU55dFUwWE5MZmVnRzN6VVdYRi9HVnlJWDVXUjRl?=
 =?utf-8?B?WW1WNU13YmNlYXA3bEUvT012SnBMZzJFRDFwY05BZkVjcEhPSlhKWWx4RHY3?=
 =?utf-8?B?WjVBVlB5OVFDNUc1ZkUwYWNHOE1yV1ZESE5zWXRjeDd4QmJwV0NwTkhhVVp2?=
 =?utf-8?B?T0NNMmQybkpTV0N6NC81Q21YbVAyVTRQd0RhaXdNZ3FGUWIreWVkV09WY0h1?=
 =?utf-8?B?SGxkWnV1UXZvVmtETnRXdGlrTmc3eEhNbFBLMDloT2FUMUlRbzlxd0xWNUdN?=
 =?utf-8?B?dHZsZDNOM25GODIrdUFwQllhSi9QYWVTU3ZRMDJ4emYvV1VPbjhWQ1RFY1Bu?=
 =?utf-8?B?UjdCY1A3MWx4YU9pcGs0TGo2ZXZVWnN0bEFvNDVwQUZRR1EwSTJ4MklKU1J4?=
 =?utf-8?B?M3NxU3h3YjVKdEY5L0wzMVJnbHV0bDZoYUpOd2RsSktaa09ISkJsSWJoZDV3?=
 =?utf-8?B?cnAvUnBPRmZHL0dQK0xLVksvSFphYnJDb2NSM0F4VFBxTVpLVTlYNzdBMGd4?=
 =?utf-8?B?UThtTG5xWEhrTzEwUjl4cFJ6SndXZHh5VkgzSXREMnFqeHB2UTFqZ2FCSVp2?=
 =?utf-8?B?aGprWVZUSWdkMHhvTHl4L21lSFlQZDJtNTRBejdyYkhLYktmak9FbTY3K0Nk?=
 =?utf-8?B?cHpIZ0M1ZzhEOFNyVkxsVE5VcnJmblVIb2FqU1Q1NjB0c2Z6WnAzaGM3VnJF?=
 =?utf-8?B?ZFdqV0p3ZXF0RlNPMk4zL3BYc0RqMTdUanpyaEEvdWladzJCckV4T1BaUXND?=
 =?utf-8?B?NFRydjFHOXNVTGl3SFEwenlsY09QUFN3a2hWa3UvQWRmbW5oU2V0b2xLZ28w?=
 =?utf-8?B?U3VLOGduSEJMYjRIWnF1YzdXSzVIOTJvNXo3T040eWFsOERzVUVOSldVZDl1?=
 =?utf-8?B?akVQOFUveHFid2dQcE9ES250MytLOExicy8zSjVORlJWQ0NXRDlMNUZzdCtG?=
 =?utf-8?B?OE9zQ2xXR1JMTFdOUDBqYWFhZ0x3S2xMZDgvNDlYeDFza3hEV3l1NnZZZm5M?=
 =?utf-8?B?WTdBZFdJOXBCTC9CQ1JIa0NweU5UdTRkZkd0NVpqczJnTGdrbWwvZXVKUjZV?=
 =?utf-8?B?dVZqUEp6dTdnZlRjUzVIK0IvK3lrTGJ3NlNXNG9tYUwvNkVaQWZ5Y3hQN1hs?=
 =?utf-8?Q?bIwY=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)(1800799024)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 13:44:58.0130
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c08b41d3-c519-499d-51d0-08de283afec5
X-MS-Exchange-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:
	SN1PEPF0002636E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7988

On 2025-11-20 05:42, Grygorii Strashko wrote:
> Hi Jan,
> 
> On 20.11.25 10:50, Jan Beulich wrote:
>> (adding v8 tag to subject)
>>
>> On 19.11.2025 20:32, Grygorii Strashko wrote:
>>> From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
>>>
>>> Add config option VIRIDIAN that covers viridian code within HVM.
>>> Calls to viridian functions guarded by is_viridian_domain() and 
>>> related macros.
>>> Having this option may be beneficial by reducing code footprint for 
>>> systems
>>> that are not using Hyper-V.
>>>
>>> [grygorii_strashko@epam.com: fixed NULL pointer deref in
>>> viridian_save_domain_ctxt(); stub viridian_vcpu/domain_init/deinit()]
>>> Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
>>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
>>
>> As before - this R-b likely would need dropping, ...
>>
>>> ---
>>> changes in v8:
>>> - drop checks from viridian_load_vcpu/domain_ctxt()
>>> - drop check "value != 0" in HVM_PARAM_VIRIDIAN handler, laways return
>>> Â Â  -ENODEV for VIRIDIAN=n
>>
>> ... when more than just cosmetic changes are made. Jason, please can you
>> indicate whether it's fine to retain?

Yes.

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 13:59:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 13:59:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167413.1493725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM5CH-0008Ve-2D; Thu, 20 Nov 2025 13:59:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167413.1493725; Thu, 20 Nov 2025 13:59: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 1vM5CG-0008VX-Vl; Thu, 20 Nov 2025 13:59:40 +0000
Received: by outflank-mailman (input) for mailman id 1167413;
 Thu, 20 Nov 2025 13:59: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=Eeu9=54=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vM5CG-0008VL-5Y
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 13:59:40 +0000
Received: from mail-yw1-x1129.google.com (mail-yw1-x1129.google.com
 [2607:f8b0:4864:20::1129])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 26739614-c619-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 14:59:37 +0100 (CET)
Received: by mail-yw1-x1129.google.com with SMTP id
 00721157ae682-78802ac22abso9878537b3.3
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 05:59: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: 26739614-c619-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763647176; x=1764251976; 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=Cu8tDr/sTqgaI4RP7K7LOTF8umLiwVvgTb4uqyemA5E=;
        b=kvHzGYhNb+Y+BK/NEIjLvVnzcUANpY8fS7QEWsEXnmcYV9BIBv34/XBpvOKPLMbArl
         zkldIQVOs57+paz6rMRh5XVGptKSIe8m7rfhR9NZjCju98XMqaBTh+9m2AgTXLHxpof7
         ub8pLdrH0i1e9cpG43jE84KoCJpnzTn3QZQfdUf0eD7OxB3sZnW21AnSpgGu1JrUmXaC
         qZYwRzBbxA5ryHvWqmYv/0OMBNzUikwmpr7r84qvR/5qGuc66vD0Y1GZTbHpNDxZGF+Z
         sa7KWI+x8BmY0FEAvPbNo6a3Yf3ZOhdlSi2vw/OcQ8fqJ9jaUQMopz3ByZxHZV4XZ49k
         9Lww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763647176; x=1764251976;
        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=Cu8tDr/sTqgaI4RP7K7LOTF8umLiwVvgTb4uqyemA5E=;
        b=EQmBK/9rajhGAdBZTnR4V+KlY0W05O1Pv6R78XQ4d85G8xQ5DSpnMZZJ3qrPmvSrfO
         Rh5iCm/sit20xWIKC/w/im0ldrv1PMTLUXW42jwQ6cRi/RyRMvUj4DGmu3VxLWvYt3bT
         PGZ5LHTidaPHEtgaOQJZzAJWHkn9WI8ZlUjmtBTmvRPRMH7xlHeGb+WOj4sEacmpWRie
         e3XMGAVBblAfFC7ZfiS84D/IwVcN0INwDnysKyIHhNDS7mJpiQa3ZG0P/HbxidNhxCbr
         HWRJsfdWB/zzusJm5fnTupjPhnf8wl8ASBKMXKHvmoUMqmia5Db02fpUxr3Q0c42+uEN
         TqDA==
X-Forwarded-Encrypted: i=1; AJvYcCX0Hn7c7xbqfsP9llAjXC572GJQL5H+03ulr+eR/bIpDsIT3zEFYVtHy/B8i9Unk5eXHIMcnL8KYvg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywc47TI5kXSxDPqJ4rrMPkJXmhWf6mt34yKybo947bvp7xIc3s+
	8FV7FL8wwzqgMYrgI9+vv+jBikNmKudQmMfuZwstvqurAqgSNUsoIAs0sla3F4XmXiOUAZT1NhH
	+CeJA2CCvIaVxqVTpAmIFP9VszUrIxL8=
X-Gm-Gg: ASbGncucSuS4dtVlXjIsmdp/BhEnjMuhn7JRzyIDOThO1L3dKPnnLKBVWX7zd2xM41g
	AwESIGOHxwS2VbmvxLlh+4RW0unMkJcmPt59BmAtflUboNlZkNlhOibIAmmIJk2hhhJ/AeYDMvx
	QHY5rKdl0egvroZQD42NgeRf6PDCzhjV9ITwNQi6Wxfie5NnOSJA24Z7xXhD0tgQB00UQcWUsnQ
	6V2q9Gy+zpqm9lARx6Ui++trEF3pbWkAS8sXSvZKJDMQ89DT/IWxmCMfx5BBbQRi4cbygU=
X-Google-Smtp-Source: AGHT+IH5rIrK9D71CjDzw1fIDaPwmrFjbnxMtqDQ1sylELXBZvakdyfDitIwK7JcotqXpFFREaeq3dvrcxKMgbsJ3j8=
X-Received: by 2002:a05:690c:6e88:b0:786:72ec:6f6c with SMTP id
 00721157ae682-78a795a2f71mr22297157b3.31.1763647176323; Thu, 20 Nov 2025
 05:59:36 -0800 (PST)
MIME-Version: 1.0
References: <20251113154358.28704-1-frediano.ziglio@citrix.com>
 <6729f3d9-618c-4dcd-93f8-d02ca7cea017@gmail.com> <8f8a769d-95ea-4554-8ee0-d6247f583e37@citrix.com>
 <CAHt6W4eDDm-fNUB7W1Zgj+x-bkK2fxTB50C38T4Uy0_Ofy_cww@mail.gmail.com>
In-Reply-To: <CAHt6W4eDDm-fNUB7W1Zgj+x-bkK2fxTB50C38T4Uy0_Ofy_cww@mail.gmail.com>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Thu, 20 Nov 2025 13:59:24 +0000
X-Gm-Features: AWmQ_bnsirLIoamjNwu5s83Gj_BQo4119w_B6kWjzKg5yxGESsbsiWkCeSTGdW4
Message-ID: <CAHt6W4einkyNX9sV3Ns87fLRaAN+N1b9CM=KVo5kvb1Qk7y=qg@mail.gmail.com>
Subject: Re: [PATCH v8] xen: Strip xen.efi by default
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
	Frediano Ziglio <frediano.ziglio@citrix.com>, xen-devel@lists.xenproject.org, 
	Frediano Ziglio <frediano.ziglio@cloud.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Demi Marie Obenour <demiobenour@gmail.com>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Content-Type: text/plain; charset="UTF-8"

On Sat, 15 Nov 2025 at 06:23, Frediano Ziglio <freddy77@gmail.com> wrote:
>
> On Fri, 14 Nov 2025 at 19:18, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
> >
> > On 14/11/2025 3:40 pm, Oleksii Kurochko wrote:
> > >
> > >
> > > On 11/13/25 4:43 PM, Frediano Ziglio wrote:
> > >> From: Frediano Ziglio <frediano.ziglio@cloud.com>
> > >>
> > >> For xen.gz file we strip all symbols and have an additional
> > >> xen-syms.efi file version with all symbols.
> > >> Make xen.efi more coherent stripping all symbols too.
> > >> xen-syms.efi can be used for debugging.
> > >>
> > >> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> > > Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > >
> > > Thanks.
> >
> > Thanks.  Unfortunately CI says no.
> >
> > Ubuntu's 20.04, 18.04 and 16.04 all fail:
> > https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2159622869
> >
> > From 16.04:
> >
> > 2025-11-14T18:01:51.192964Z 01O strip xen-syms.efi -o xen.efi
> > 2025-11-14T18:01:51.198151Z 01O strip:xen-syms.efi[.init]: relocation count is negative: File truncated
> > 2025-11-14T18:01:51.198166Z 01O strip: xen.efi: Failed to read debug data section
> > 2025-11-14T18:01:51.198169Z 01O strip:xen.efi: error copying private BFD data: File truncated
> > 2025-11-14T18:01:51.198932Z 01O arch/x86/Makefile:207: recipe for target 'xen.efi' failed
> > 2025-11-14T18:01:51.198937Z 01O make[3]: *** [xen.efi] Error 1
> > 2025-11-14T18:01:51.199616Z 01O build.mk:90: recipe for target 'xen' failed
> > 2025-11-14T18:01:51.199619Z 01O make[2]: *** [xen] Error 2
> > 2025-11-14T18:01:51.200402Z 01O Makefile:600: recipe for target 'xen' failed
> > 2025-11-14T18:01:51.200409Z 01O make[1]: *** [xen] Error 2
> >
> >
> > I find it hard to believe that the relocation count is really negative,
> > and given that newer binuitls works, I expect this is a binutils bug.
> >
>
> Unless the message is just misleading I find it hard to have a
> negative number of items in a container.
>
> > Nevertheless, we need some workaround.  Given that the previous
> > behaviour was not to strip, I think we can reuse that for broken toolchains?
> >
>
> Something like that ?
>
> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index a154ffe6b2..c465eb12e2 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -236,7 +236,9 @@ ifeq ($(CONFIG_DEBUG_INFO),y)
>         $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) \
>                 -O elf64-x86-64 $(TARGET)-syms.efi $@.elf
>  endif
> -       $(STRIP) $(TARGET)-syms.efi -o $@
> +       $(STRIP) $(TARGET)-syms.efi -o $@ || { \
> +               LANG=C strip $(TARGET)-syms.efi -o $@ 2>&1 | grep -q \
> +               "relocation count is negative" && mv -f $(TARGET)-syms.efi $@; }
>  ifneq ($(CONFIG_DEBUG_INFO),y)
>         rm -f $(TARGET)-syms.efi
>  endif
>
> It will fall back to not stripping in case that bug is detected. I
> don't know how to test it.
> (the LANG=C is to always force the English message).
>

It looks like this change works better and CI is happy.
It duplicates the linking with -s option if the strip fails.
Yes, it's a hack and almost duplicates the one command above.
What about it?

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index a154ffe6b2..5f5162841e 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -236,7 +236,10 @@ ifeq ($(CONFIG_DEBUG_INFO),y)
        $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) \
                -O elf64-x86-64 $(TARGET)-syms.efi $@.elf
 endif
-       $(STRIP) $(TARGET)-syms.efi -o $@
+       $(STRIP) $(TARGET)-syms.efi -o $@ || \
+       $(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
+             $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
+             $(note_file_option) -s -o $@
 ifneq ($(CONFIG_DEBUG_INFO),y)
        rm -f $(TARGET)-syms.efi
 endif

Frediano


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 14:01:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 14:01:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167424.1493735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM5ER-0001ia-D9; Thu, 20 Nov 2025 14:01:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167424.1493735; Thu, 20 Nov 2025 14: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 1vM5ER-0001iT-Ad; Thu, 20 Nov 2025 14:01:55 +0000
Received: by outflank-mailman (input) for mailman id 1167424;
 Thu, 20 Nov 2025 14:01:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nz19=54=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vM5EQ-0001iN-6Q
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 14:01:54 +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 76c81eb9-c619-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 15:01:51 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-6408f9cb1dcso1331350a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 06:01: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
 4fb4d7f45d1cf-6453642d32csm2154777a12.21.2025.11.20.06.01.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 06:01: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: 76c81eb9-c619-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763647311; x=1764252111; 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=6SIE3casSsd8G+MCJP1r/drOKy4UR4iNlw4KDS2OyH0=;
        b=G5hScSUWexLpsKPVcuqu7Czi/+b3gzxbnMBFDkDvIozVte23oHp0fFKurlyrZPIdlu
         nZhgxR3Y3zk2/r3dI4bNhERsAfacE4m2NVsyj9iK3EQH/0UT0CkhrhbhA7Z18JIhGadc
         07F/pFMfEWFOtBnxWoS9vdF4zumQkq7fb6XhcY+2Pe1HvHcfF5kloJSTqcdZS45UDcAh
         XIcqGae+DTjnkuZxzQAPWHHEZJiECJrC+rLdC+0WZTBDACgc3TBGlvezbXK+bwGJBYWO
         vtnDTwpr1WYRax3wUM9MmhP3QAfB97h4WW61tcE0cBxCuzoYiXzXrgN7cjGXm6odz/TM
         iB9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763647311; x=1764252111;
        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=6SIE3casSsd8G+MCJP1r/drOKy4UR4iNlw4KDS2OyH0=;
        b=n5Ry4B1pZZviRJs/V+RXlMx41s7Sp4igFftDm+/OBh7L62Yns+ciIchpmaOCo7/gPT
         B8m8ctaxR6pUOer9Ux6ASejq4GQLGi6NA9vTenLx+vdD7t3PqFhPRohrCIluszpXehOh
         UoBRFv2ELxReSHwjp+JiuRcX7svSTqfolxDs3UcVY2eeuf+Z6tCnUjf2FEr/5hHd7pe3
         A61s4xkFCWqlDuwfXetMLLtAlYVVU2Nko+ci98mzu090k0Zjrf9vkeCPyVoszk64805j
         gAjVWTrRmQMFOcQdgKKRfIHCmG7puQYwvWjv2P3VqHEL6whcjOjqtrIQnHodA+/AYnGU
         0ywQ==
X-Forwarded-Encrypted: i=1; AJvYcCVgaplEZCCAP3bTTOiv1+Ls7XRTFK4/wAiGZryrQoNSuB3x2J+Gh02zGXkYMV94NqR9oir2O0qxv7g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwwSSrmCq9ncSZ3jrrrlv1sn//hmEvACLKjc8OMak22th0BDDX6
	TtA/RXKnz54zx/W1Om+3McyYK0Gnmt5tPqfP/A7wn0ucCbvqFqNU6n4V6e9FATE7Aw==
X-Gm-Gg: ASbGnctNW6nTLKgrJAgjwxZd3utpzquvXUOznPwKk0WiUYM5eQz8eps9xxdv2XFCsMJ
	vwOGg40c4RbPpcltHcS4Z7L2eaD54q09s/0E8DSDFi5IBc5NRNIM5OYaFJz0EccxS5JX4CZI8RF
	wUNiS8/ZtU6D1233YTbxKsdjtKGVoBIJPtxuJYqlmv7x73aDRp3VTxpu3s6yH1LYg+Px0Sa1bET
	+PNIoExE0pyKI7wvEukCucUFREGUj+OEAL45B90o8md69f7rJGFqQlkYKVhLv2tA6MCyFMNw+xW
	+mCtPTqpATgvntRRiSq10uWHGOtjiNh4qrUk2gYa2j5sy9R2JJFeheP2Gc5z7B4JXkU7qVmmdZe
	pq119V3AgYaslx+xE3rFN5/z4RfXgV5w8BM5DNbsITpSZHtqdWdj3912KCV4xtaPJX3OHj1P6Ti
	Ndtm3Tt/D5TpS9EGNKLnkJkS+xOZEt0O1rPSZ8a9b1YPiPm7d2175VYclZzM/SXR3kFd1GlfiZv
	uY=
X-Google-Smtp-Source: AGHT+IHcURqUqyBMyGD93c4RQuzbKIE0rX3VV4EmiXbH5qgSsH/NgQ8e/g2H6ONuqXPb+QMZyE8SVA==
X-Received: by 2002:a05:6402:3812:b0:641:1f22:fc68 with SMTP id 4fb4d7f45d1cf-6453647b923mr2520217a12.24.1763647311110;
        Thu, 20 Nov 2025 06:01:51 -0800 (PST)
Message-ID: <3dd37b00-2179-43a2-a551-ad95d52780e3@suse.com>
Date: Thu, 20 Nov 2025 15:01:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] x86/vPMU: don't statically reserve the interrupt
 vector
From: Jan Beulich <jbeulich@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <fbc9a2f8-170a-4645-8836-c90c42ad726f@suse.com>
 <06f2081b-64e0-47f5-b66a-26363979cfdb@suse.com>
 <f491eb9c-7822-4637-95a3-bcd994b20dea@citrix.com>
 <bde84a94-77af-4fec-9075-a709323abdc4@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: <bde84a94-77af-4fec-9075-a709323abdc4@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.11.2025 13:31, Jan Beulich wrote:
> On 20.11.2025 13:24, Andrew Cooper wrote:
>> On 19/11/2025 10:51 am, Jan Beulich wrote:
>>> --- a/xen/arch/x86/apic.c
>>> +++ b/xen/arch/x86/apic.c
>>> @@ -1313,16 +1313,6 @@ static void cf_check error_interrupt(voi
>>>             entries[3], entries[2], entries[1], entries[0]);
>>>  }
>>>  
>>> -/*
>>> - * This interrupt handles performance counters interrupt
>>> - */
>>> -
>>> -static void cf_check pmu_interrupt(void)
>>> -{
>>> -    ack_APIC_irq();
>>> -    vpmu_do_interrupt();
>>> -}
>>> -
>>
>> I know you're only moving this, but it's likely-buggy before and after.Â 
>> ack_APIC_irq() needs to be last, and Xen's habit for acking early is why
>> we have reentrancy problems.
> 
> I was wondering, but was vaguely (but apparently wrongly) remembering that
> the PMU interrupt is self-disabling (i.e. requires re-enabling before it
> can fire again). Should have checked vpmu_do_interrupt() a little more
> closely, where from the various plain "return" it's pretty clear that isn't
> the case.
> 
>> I think there wants to be a patch ahead of this one swapping the order
>> so the ack is at the end, so that this patch can retain that property
>> when merging the functions.
>>
>> Or, if you're absolutely certain it doesn't need backporting as a
>> bugfix, then merging into this patch is probably ok as long as it's
>> called out clearly in the commit message.
> 
> No, I'll make this a separate, prereq patch.

It won't really need backporting, though: Direct-APIC-vector handlers are
called with IRQs off, and hence when to ack is benign as long as IRQs aren't
transiently turned on while handling. Nevertheless it probably makes sense
to switch things around, so I'll add that extra patch anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 14:04:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 14:04:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167436.1493745 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM5HK-0002XG-Pq; Thu, 20 Nov 2025 14:04:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167436.1493745; Thu, 20 Nov 2025 14: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 1vM5HK-0002X9-NI; Thu, 20 Nov 2025 14:04:54 +0000
Received: by outflank-mailman (input) for mailman id 1167436;
 Thu, 20 Nov 2025 14: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=nz19=54=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vM5HJ-0002X1-4X
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 14:04:53 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e1e04e78-c619-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 15:04:51 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-b737cd03d46so136937766b.0
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 06:04: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
 a640c23a62f3a-b7654cdabd0sm212662566b.12.2025.11.20.06.04.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 06:04: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: e1e04e78-c619-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763647491; x=1764252291; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LaVScHmpCpLH4nKHmuYOng/4hzi4cORaPRTP66z1juo=;
        b=P4Tx42vP6UCk5/e+72uASxKxR5vNn1EDZm23iqUOs0gz3/85CQWJdpGa9aynWQN8pR
         UCN/0Du7kE3Mo0jgWlTdEeCOlQnPXzZm59TkCGwrolA8wL9ArQ0Z66ZlQJQfzpkINmbv
         CAMENFSKlCaZCAZPYkC284JdP9/Hd2GxkFP7LT/i22NkrvrfGzwIw2aFA8Cfa2dT5gXK
         zx5o0sQZYwJcqWrElakcXJIL3XSx07BTf/PudcxHzNEdttbZmdEWlXKquhqqaQoS8/dp
         bYpdj2/rBdvlNS1P5Uadph+gmgZar+tSfgJZhja4AtmqXvEsi0Qmb//oDc2N8FU/490L
         oEMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763647491; x=1764252291;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LaVScHmpCpLH4nKHmuYOng/4hzi4cORaPRTP66z1juo=;
        b=xKw1uYX0+7F9ZfQFMhuJK3Hr4I5xaRWiE9cM4uQUG8QaD6jh6aoKzEfO3ajSDjvgNu
         6+450z/2VNRM+mjAs3Z0nM0P6rqmGP9EdZPHNXgg2FPTfLJGfvrlLVQMwNnKoKmchf9N
         FqjjkglSm5sKA7hL12EiqmCnbhsgJ2ZKnKr0TaC5A3DA6eyB+Nzl2mWcvbwVOV1bgJmV
         HGGnhu02wkUNwMWzqcvbjATk+/V938tGWSWcUl1FMaB7yAdVzda76GctaZxaF9e0AM6L
         Soyy8+PdWL8MidegrNpMFAczrFAttjm86CwthaSUMyXm5YS0Zb4z0gJVSo0+hVp1DFyM
         fJJA==
X-Forwarded-Encrypted: i=1; AJvYcCWTaV3iOG8UPXU2bxpYuLrYr8Ocfk9L9uex0HPoaboYhTlyd7LDa5tK2XXd6T3k9PVTnPHBM+mpsTI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxTRptqBzf37fEcQnzJ3evupBKlT7uheXigCnxwfNeA4564htUe
	FoRy4lzHkwrOT2cOAoBQY9PNW3dhtU9kjDq4O8bK+rkoLUIqREx6boOvMzcbYoiJww==
X-Gm-Gg: ASbGncvuuXc6G1LcKajhXb3N6a9yIMcNGmD7DrFLquraLNT6ycvFz/YU8cSa/g+5H+n
	+F16U/p+v3QwREwUIG1wB6wWZzhnw9CrDDhu0KKbNT4r+qoVzdIqBLEZwxQ9xcyZKnFVzVeE6Ni
	bQkKFQLBk6tiyrtaCw2alricGp2BntXe1AJNW/uWtOsbNGo9tLKAjCtczy5204Rx+qPbc7qOTNn
	T56kh9Lj344sxkKWdVe/3TmQljmgXJK6+40ehTr7KOQw3GEI/Qm1rEyPxez5em13uAAX0Iq8REl
	YNgpYLPhw/lBaAWwvxJYudp3dNhPeuc1rJEW773jdlZ3IFS/j6NGnvhDWCAFLD+5i5dO2A3xKSH
	HC3dHMZDZeNEnSXLrAzgvpF/e0tmfEgN9hmUlbTIHg906aiN/XK0FJysfVSmvqQwK+XAxf4MvRc
	s9zqfr3p3gwntZeJ9otSU0T73qCnlP/99/5oD51h6auBg7EO9peBnsPvsYXZcWJ14aXnvorZUVX
	JArk4EL/gNzMQ==
X-Google-Smtp-Source: AGHT+IG9QgDPD6HADt40cHT1k2UZNhB0wW72ukiBekDgPSTgP9suSiOC7zr7WaUjcLmH+CA/ymtfNg==
X-Received: by 2002:a17:907:7f8a:b0:b70:af3d:e97b with SMTP id a640c23a62f3a-b7654d5ca86mr367781566b.17.1763647491016;
        Thu, 20 Nov 2025 06:04:51 -0800 (PST)
Message-ID: <1ac3c7ca-89dc-4782-ac97-b6bdcc729a37@suse.com>
Date: Thu, 20 Nov 2025 15:04:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8] xen: Strip xen.efi by default
To: Frediano Ziglio <freddy77@gmail.com>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Frediano Ziglio <frediano.ziglio@citrix.com>,
 xen-devel@lists.xenproject.org, Frediano Ziglio <frediano.ziglio@cloud.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Demi Marie Obenour <demiobenour@gmail.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <20251113154358.28704-1-frediano.ziglio@citrix.com>
 <6729f3d9-618c-4dcd-93f8-d02ca7cea017@gmail.com>
 <8f8a769d-95ea-4554-8ee0-d6247f583e37@citrix.com>
 <CAHt6W4eDDm-fNUB7W1Zgj+x-bkK2fxTB50C38T4Uy0_Ofy_cww@mail.gmail.com>
 <CAHt6W4einkyNX9sV3Ns87fLRaAN+N1b9CM=KVo5kvb1Qk7y=qg@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAHt6W4einkyNX9sV3Ns87fLRaAN+N1b9CM=KVo5kvb1Qk7y=qg@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.11.2025 14:59, Frediano Ziglio wrote:
> On Sat, 15 Nov 2025 at 06:23, Frediano Ziglio <freddy77@gmail.com> wrote:
>>
>> On Fri, 14 Nov 2025 at 19:18, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>>>
>>> On 14/11/2025 3:40 pm, Oleksii Kurochko wrote:
>>>>
>>>>
>>>> On 11/13/25 4:43 PM, Frediano Ziglio wrote:
>>>>> From: Frediano Ziglio <frediano.ziglio@cloud.com>
>>>>>
>>>>> For xen.gz file we strip all symbols and have an additional
>>>>> xen-syms.efi file version with all symbols.
>>>>> Make xen.efi more coherent stripping all symbols too.
>>>>> xen-syms.efi can be used for debugging.
>>>>>
>>>>> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
>>>> Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>
>>>> Thanks.
>>>
>>> Thanks.  Unfortunately CI says no.
>>>
>>> Ubuntu's 20.04, 18.04 and 16.04 all fail:
>>> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2159622869
>>>
>>> From 16.04:
>>>
>>> 2025-11-14T18:01:51.192964Z 01O strip xen-syms.efi -o xen.efi
>>> 2025-11-14T18:01:51.198151Z 01O strip:xen-syms.efi[.init]: relocation count is negative: File truncated
>>> 2025-11-14T18:01:51.198166Z 01O strip: xen.efi: Failed to read debug data section
>>> 2025-11-14T18:01:51.198169Z 01O strip:xen.efi: error copying private BFD data: File truncated
>>> 2025-11-14T18:01:51.198932Z 01O arch/x86/Makefile:207: recipe for target 'xen.efi' failed
>>> 2025-11-14T18:01:51.198937Z 01O make[3]: *** [xen.efi] Error 1
>>> 2025-11-14T18:01:51.199616Z 01O build.mk:90: recipe for target 'xen' failed
>>> 2025-11-14T18:01:51.199619Z 01O make[2]: *** [xen] Error 2
>>> 2025-11-14T18:01:51.200402Z 01O Makefile:600: recipe for target 'xen' failed
>>> 2025-11-14T18:01:51.200409Z 01O make[1]: *** [xen] Error 2
>>>
>>>
>>> I find it hard to believe that the relocation count is really negative,
>>> and given that newer binuitls works, I expect this is a binutils bug.
>>>
>>
>> Unless the message is just misleading I find it hard to have a
>> negative number of items in a container.
>>
>>> Nevertheless, we need some workaround.  Given that the previous
>>> behaviour was not to strip, I think we can reuse that for broken toolchains?
>>>
>>
>> Something like that ?
>>
>> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
>> index a154ffe6b2..c465eb12e2 100644
>> --- a/xen/arch/x86/Makefile
>> +++ b/xen/arch/x86/Makefile
>> @@ -236,7 +236,9 @@ ifeq ($(CONFIG_DEBUG_INFO),y)
>>         $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) \
>>                 -O elf64-x86-64 $(TARGET)-syms.efi $@.elf
>>  endif
>> -       $(STRIP) $(TARGET)-syms.efi -o $@
>> +       $(STRIP) $(TARGET)-syms.efi -o $@ || { \
>> +               LANG=C strip $(TARGET)-syms.efi -o $@ 2>&1 | grep -q \
>> +               "relocation count is negative" && mv -f $(TARGET)-syms.efi $@; }
>>  ifneq ($(CONFIG_DEBUG_INFO),y)
>>         rm -f $(TARGET)-syms.efi
>>  endif
>>
>> It will fall back to not stripping in case that bug is detected. I
>> don't know how to test it.
>> (the LANG=C is to always force the English message).
>>
> 
> It looks like this change works better and CI is happy.
> It duplicates the linking with -s option if the strip fails.
> Yes, it's a hack and almost duplicates the one command above.
> What about it?

As alluded to elsewhere - can't we detect the situation and avoid linking
with debug info included in that case, like we already do for other reasons?
Linking xen.efi is quite a bit slower than linking xen-syms, so the extra
linking pass would better be avoided imo.

Jan

> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -236,7 +236,10 @@ ifeq ($(CONFIG_DEBUG_INFO),y)
>         $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) \
>                 -O elf64-x86-64 $(TARGET)-syms.efi $@.elf
>  endif
> -       $(STRIP) $(TARGET)-syms.efi -o $@
> +       $(STRIP) $(TARGET)-syms.efi -o $@ || \
> +       $(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
> +             $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
> +             $(note_file_option) -s -o $@
>  ifneq ($(CONFIG_DEBUG_INFO),y)
>         rm -f $(TARGET)-syms.efi
>  endif
> 
> Frediano



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 14:05:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 14:05:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167439.1493756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM5Hb-0002pS-0a; Thu, 20 Nov 2025 14:05:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167439.1493756; Thu, 20 Nov 2025 14:05:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM5Ha-0002pL-U4; Thu, 20 Nov 2025 14:05:10 +0000
Received: by outflank-mailman (input) for mailman id 1167439;
 Thu, 20 Nov 2025 14:05: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=RcKq=54=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vM5HZ-0002X1-H6
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 14:05:09 +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 eb0dab89-c619-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 15:05:07 +0100 (CET)
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfout.phl.internal (Postfix) with ESMTP id 83607EC0099;
 Thu, 20 Nov 2025 09:05:06 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-02.internal (MEProxy); Thu, 20 Nov 2025 09:05:06 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 20 Nov 2025 09:05:03 -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: eb0dab89-c619-11f0-9d18-b5c5bf9af7f9
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=1763647506;
	 x=1763733906; bh=k/mWVpw3b9Ob1R7htJDw9+YdKsU9wk+ayb/TswsI7yg=; b=
	DhSlyQYI10KWQbW2cjgDWMQNEdcU8Q55Vu6piDwdQA64bWBosMA5wXtt8egjc3Fr
	+tIeTJBFo+05C5Vg1eTXRDdkGbeZx17WUgsS/p9HSpPccervSyU/oCZDn8l9i3aw
	yO4sx83gFnc/aBkoIkZXVZvG0jc/PA16KxeA0pwMkyqWSL0+6khhJdveWNMzozOR
	rIlxKHz/zG/jjul0oxiFLLllHsfSn5AyzoVPV3ugNh2HTce5jG+L8R2IDeeKLomU
	yCtz+Be8V33Dgg9zPM3AfdEB0SN9R9DF7BP3dQSEWK22V8e5T5LF6vgam1C0LCXi
	NzmzhM3Wj2u6++dbVjHsRA==
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=
	1763647506; x=1763733906; bh=k/mWVpw3b9Ob1R7htJDw9+YdKsU9wk+ayb/
	TswsI7yg=; b=tObY/oeiDAm2CCjgS2YoALdk5KWg2U60d6JtSA9CHl1wksJx7Rt
	XPT7vcTVLGfFBuDz3i6u21lbQ162gAnlSAsOsBgLbiI2kqUDMJ3XyT95TmDReUG7
	XT+Yx2B45Ev26vLEuRpkUjac6McctQbd9gvelpU7czYZPhQgvPq0GcuSJu9dqxtU
	Cj0luPHAQ5NwoABliF1hyb6WL1Cq+fQ7/CpHSkO0Kg+9rK7IfyJP53h5Iq9dd2GY
	KWNOxYwixvROkuqxjT0yUUlIbU28msnB2ParoejasSQLrg6FSoihsHywKYs4eoCp
	UbTmfanEH20APjjAz0bWSH3aOto5vugwlEw==
X-ME-Sender: <xms:ESAfadecJ7dpskffzhSzMWGCM029hDO8o6QqeAUWXDzr8WKSxUH1yA>
    <xme:ESAfae7kwDiZOfYAYccY9I7xN6OhSVplwLTCLoQ61KlFHU5K_cVw83XlaHBQwDh4V
    im2uZb7n-plku5_pynWbRMrBAwp5KFQzR6MoWLwDQssci95dQ>
X-ME-Received: <xmr:ESAfafKarq6A4rZMkJ3YCacd3pBdKuxBjYGyRdb68IEkrzFdlXJBprS5sic0l9_gTP3VeHdSHo4mVrTTCZWcWj_Xxu83r0xsSmo>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvvdejvdejucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepveeujeet
    geelleetudeuvefhtefgffejvedtvdfgieevheetheelgeeuledvjeevnecuffhomhgrih
    hnpehgihhtlhgrsgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhmpdhnsggprhgtphhtthhopedugedpmhhouggvpehsmhhtphhouhhtpdhrtghp
    thhtohepfhhrvgguugihjeejsehgmhgrihhlrdgtohhmpdhrtghpthhtoheprghnughrvg
    ifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopeholhgvkhhsihhi
    rdhkuhhrohgthhhkohesghhmrghilhdrtghomhdprhgtphhtthhopehfrhgvughirghnoh
    driihighhlihhosegtihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqdguvghvvghl
    sehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehfrhgvughirg
    hnohdriihighhlihhosegtlhhouhgurdgtohhmpdhrtghpthhtoheprghnthhhohhnhidr
    phgvrhgrrhgusehvrghtvghsrdhtvggthhdprhgtphhtthhopehmihgthhgrlhdrohhrii
    gvlhesrghmugdrtghomhdprhgtphhtthhopehjsggvuhhlihgthhesshhushgvrdgtohhm
X-ME-Proxy: <xmx:ESAfaYWsJSNNlf8Qu45kjo62__vIeJA3KpZbL03nIuXaeDfzNcxW5A>
    <xmx:ESAfabF6EFANogXLwLcgIwoqNOU81v57yZ9VCBtQ9y8gxnA55lXlqw>
    <xmx:ESAfaX6CiRzISxfKC1iBJGSZVuJcpyW6o4uLTujTVxfvF5zcoDYoeQ>
    <xmx:ESAfaRdXbSR_87uaS6Ul7sjltZaaPH4SIDRY2yK-m9c_Tjz9rgwLjQ>
    <xmx:EiAfaXByFI-uCIfAM1DN8zB8IHMlO--M1pznogvz7jTnKXoJBaw8EChP>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 20 Nov 2025 15:05:00 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Frediano Ziglio <freddy77@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Frediano Ziglio <frediano.ziglio@citrix.com>,
	xen-devel@lists.xenproject.org,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Demi Marie Obenour <demiobenour@gmail.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v8] xen: Strip xen.efi by default
Message-ID: <aR8gDojcDEgrTSMa@mail-itl>
References: <20251113154358.28704-1-frediano.ziglio@citrix.com>
 <6729f3d9-618c-4dcd-93f8-d02ca7cea017@gmail.com>
 <8f8a769d-95ea-4554-8ee0-d6247f583e37@citrix.com>
 <CAHt6W4eDDm-fNUB7W1Zgj+x-bkK2fxTB50C38T4Uy0_Ofy_cww@mail.gmail.com>
 <CAHt6W4einkyNX9sV3Ns87fLRaAN+N1b9CM=KVo5kvb1Qk7y=qg@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="LaGtoKxbxQWxZWD6"
Content-Disposition: inline
In-Reply-To: <CAHt6W4einkyNX9sV3Ns87fLRaAN+N1b9CM=KVo5kvb1Qk7y=qg@mail.gmail.com>


--LaGtoKxbxQWxZWD6
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 20 Nov 2025 15:05:00 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Frediano Ziglio <freddy77@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Frediano Ziglio <frediano.ziglio@citrix.com>,
	xen-devel@lists.xenproject.org,
	Frediano Ziglio <frediano.ziglio@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Demi Marie Obenour <demiobenour@gmail.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v8] xen: Strip xen.efi by default

On Thu, Nov 20, 2025 at 01:59:24PM +0000, Frediano Ziglio wrote:
> On Sat, 15 Nov 2025 at 06:23, Frediano Ziglio <freddy77@gmail.com> wrote:
> >
> > On Fri, 14 Nov 2025 at 19:18, Andrew Cooper <andrew.cooper3@citrix.com>=
 wrote:
> > >
> > > On 14/11/2025 3:40 pm, Oleksii Kurochko wrote:
> > > >
> > > >
> > > > On 11/13/25 4:43 PM, Frediano Ziglio wrote:
> > > >> From: Frediano Ziglio <frediano.ziglio@cloud.com>
> > > >>
> > > >> For xen.gz file we strip all symbols and have an additional
> > > >> xen-syms.efi file version with all symbols.
> > > >> Make xen.efi more coherent stripping all symbols too.
> > > >> xen-syms.efi can be used for debugging.
> > > >>
> > > >> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> > > > Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > > >
> > > > Thanks.
> > >
> > > Thanks.  Unfortunately CI says no.
> > >
> > > Ubuntu's 20.04, 18.04 and 16.04 all fail:
> > > https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/21596=
22869
> > >
> > > From 16.04:
> > >
> > > 2025-11-14T18:01:51.192964Z 01O strip xen-syms.efi -o xen.efi
> > > 2025-11-14T18:01:51.198151Z 01O strip:xen-syms.efi[.init]: relocation=
 count is negative: File truncated
> > > 2025-11-14T18:01:51.198166Z 01O strip: xen.efi: Failed to read debug =
data section
> > > 2025-11-14T18:01:51.198169Z 01O strip:xen.efi: error copying private =
BFD data: File truncated
> > > 2025-11-14T18:01:51.198932Z 01O arch/x86/Makefile:207: recipe for tar=
get 'xen.efi' failed
> > > 2025-11-14T18:01:51.198937Z 01O make[3]: *** [xen.efi] Error 1
> > > 2025-11-14T18:01:51.199616Z 01O build.mk:90: recipe for target 'xen' =
failed
> > > 2025-11-14T18:01:51.199619Z 01O make[2]: *** [xen] Error 2
> > > 2025-11-14T18:01:51.200402Z 01O Makefile:600: recipe for target 'xen'=
 failed
> > > 2025-11-14T18:01:51.200409Z 01O make[1]: *** [xen] Error 2
> > >
> > >
> > > I find it hard to believe that the relocation count is really negativ=
e,
> > > and given that newer binuitls works, I expect this is a binutils bug.
> > >
> >
> > Unless the message is just misleading I find it hard to have a
> > negative number of items in a container.
> >
> > > Nevertheless, we need some workaround.  Given that the previous
> > > behaviour was not to strip, I think we can reuse that for broken tool=
chains?
> > >
> >
> > Something like that ?
> >
> > diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> > index a154ffe6b2..c465eb12e2 100644
> > --- a/xen/arch/x86/Makefile
> > +++ b/xen/arch/x86/Makefile
> > @@ -236,7 +236,9 @@ ifeq ($(CONFIG_DEBUG_INFO),y)
> >         $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY=
) \
> >                 -O elf64-x86-64 $(TARGET)-syms.efi $@.elf
> >  endif
> > -       $(STRIP) $(TARGET)-syms.efi -o $@
> > +       $(STRIP) $(TARGET)-syms.efi -o $@ || { \
> > +               LANG=3DC strip $(TARGET)-syms.efi -o $@ 2>&1 | grep -q \
> > +               "relocation count is negative" && mv -f $(TARGET)-syms.=
efi $@; }
> >  ifneq ($(CONFIG_DEBUG_INFO),y)
> >         rm -f $(TARGET)-syms.efi
> >  endif
> >
> > It will fall back to not stripping in case that bug is detected. I
> > don't know how to test it.
> > (the LANG=3DC is to always force the English message).
> >
>=20
> It looks like this change works better and CI is happy.
> It duplicates the linking with -s option if the strip fails.
> Yes, it's a hack and almost duplicates the one command above.
> What about it?

Is it guaranteed to match xen-syms.efi?

There is an alternative option: based on observation that Ubuntu 16.04
runs out of support in April 2026 - which is before Xen 4.22 release,
maybe we can drop that test from CI already?

> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index a154ffe6b2..5f5162841e 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -236,7 +236,10 @@ ifeq ($(CONFIG_DEBUG_INFO),y)
>         $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY) \
>                 -O elf64-x86-64 $(TARGET)-syms.efi $@.elf
>  endif
> -       $(STRIP) $(TARGET)-syms.efi -o $@
> +       $(STRIP) $(TARGET)-syms.efi -o $@ || \
> +       $(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
> +             $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
> +             $(note_file_option) -s -o $@
>  ifneq ($(CONFIG_DEBUG_INFO),y)
>         rm -f $(TARGET)-syms.efi
>  endif
>=20
> Frediano

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkfIA4ACgkQ24/THMrX
1yzb6gf/cBiaKevvHFFALj+UfnEL7QTTfW4f/3jOQJlJwKU7NZyx7xNaKMwkdIN0
FJUDWNwR+SzYueoG324VlLD3p/bAsxr8SgzQhkbCsWmYYzk6JuEOM4ex1VrpThjW
6xXvir+WTR0vdDQKdgz5D6xr4DbVjCh65z9E0pT/10F3dLVL+SKkBiUpXnkep5fj
7DQyvA/TnCVjgJc/EDjiTvuxsNBIGy6gm+cGiDhVr/Bglm+VhWcUWg0UoBQqh3Ql
xMAIBo8TGUbxTDkhHuP70nXjHExwxX2FEu7Ln/hoOgaYOxXmLS45Cf6ks8BNXPdA
3zcbngxmO5iNFBV+g/JTHWNfPa07Og==
=8eOE
-----END PGP SIGNATURE-----

--LaGtoKxbxQWxZWD6--


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 14:21:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 14:21:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167466.1493768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM5Wm-0006EF-D5; Thu, 20 Nov 2025 14:20:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167466.1493768; Thu, 20 Nov 2025 14:20:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM5Wm-0006E8-AY; Thu, 20 Nov 2025 14:20:52 +0000
Received: by outflank-mailman (input) for mailman id 1167466;
 Thu, 20 Nov 2025 14:20:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ChS/=54=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vM5Wk-0006E2-Ma
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 14:20:50 +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 1c373d44-c61c-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 15:20:49 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV8PR03MB7517.namprd03.prod.outlook.com (2603:10b6:408:185::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 14:20:44 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.011; Thu, 20 Nov 2025
 14:20: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: 1c373d44-c61c-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AC+UB0WzNoaEaTjM6KnD0qzK+F+e2FVUlk63pVHRmXXh1cIGHXX8s2s5fxYx0TWxsWLAtWa5yEsfbwrNqfqJEKrNG+Tntkh67mgd+4CgHV/OIo2sfY/7ra0aQ5DwqLC9AhS93EiuYLbge7SWFCa3WnykVeIr9r27e7aPpjOhS9q/NvrH94CNxlFw9CrCQsAqaooEFZsYzVu2dSJmnKyZKF+6OmQWPrTNl7OpR0EG/DDngfFfg5YYlsEk3DRtKyFlmUXjk2zWUucKrsirsZ3oHsGihF4ZMMOykTk+H3hfxmb+hATM1+tXYTo0ka5fLYBnHWakbYTwXqABRWpoob74Kg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=U+qh2xslrHdg0M0wG/+ANjBRe8V5SUecuxtms024kKk=;
 b=ZJW8UudCRrpX0YhKx1GduCV8kXWWTiRU5N5nNgD8q+H12pPSoQOU5RPFITmRpiJPtkwB1MBFszUHEsYEzvzcNttfDLe4+0ck04ZjSTO3F2UiCP3a9+7YAsfCGi/h1zlQp0fryvvZFzQeKXRSTum4VAz8xr/NzOu05mrNnhvNLFTXMFid+jeVWQmAngvQs+imbei/QYepqRpv16tIMW63B+pSh2naoH68+ektxH4cX2iTOWz3mCRxqQ3vrEuuoYhaJmRIWhIgq3miXknR2Je0GASaJ/3hevberT5zcbVqfKo8piRBAKyvvMMVqx7vmMIj2Eg/I9HCJngQ4SFB+mU26Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=U+qh2xslrHdg0M0wG/+ANjBRe8V5SUecuxtms024kKk=;
 b=CTldnKklvDRpufjgPFVqvdOj2UROXb7LDrAGLCVC04ObhKdb/Fkmq6rJad4jwsvvVMGZpPjgDblkeuadRc11VuX2+SxoZ6QCpH3zYw1BhwYybnok+WYYKVkqlIrhS2aRN8VE+xBJIyERX7viavSIHfalL8je9Dg6h04KMVDMcAE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <4fbffadf-f27a-48da-8c31-af7ce2243225@citrix.com>
Date: Thu, 20 Nov 2025 14:20:41 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: Fix EFI buildid alignment
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20251119191235.863187-1-marmarek@invisiblethingslab.com>
 <ded843d3-465b-419a-9342-cb3a35a2d880@citrix.com> <aR5wA-9cdEO6gG3x@mail-itl>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <aR5wA-9cdEO6gG3x@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0401.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:189::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_|LV8PR03MB7517:EE_
X-MS-Office365-Filtering-Correlation-Id: e6a475bd-a337-444c-33e0-08de283ffe30
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?WTNmQmtvOEE5STZjNUF3WGxRQ1hxWmpLMXljWE9vTlViT2I1MzR6SHF4cnRB?=
 =?utf-8?B?NytTNzV5N3VZWFJkV1JhMDhCeXZ1Rkc5end3dHg0Tm5Idk9pSVU5OEdJRlo2?=
 =?utf-8?B?VlhaV1RaZFM0dmRPVDMvN2VhTzFaaDVIOTRsZEdnZWx4VUp2V1JaQkg3MlJh?=
 =?utf-8?B?cmd5bEJxbW1YRStrVzhwa2JHS3dyRDAzQTNTdTgzQmtXN1ZHQjk1N3JBUlAz?=
 =?utf-8?B?aVdHRnc1YVM4RnBMU0FHcUVIVUV1bTRZM25FZ0Y1ZjBLelVpWERZeStFS0Na?=
 =?utf-8?B?Nno1UWFDalptRHN0bE5pb2ZlLzRzQzJOTGg1V1pJOEY4U3JoZGc1dUpVYmpT?=
 =?utf-8?B?aXZWY1VGRjBUTHNmVi9KLzViQWF3TTBnek9sVGwwQ1pVOVJzODNFZHJjOVp5?=
 =?utf-8?B?M2VWUldtbDNheG82bkVPMkhZYmF1cG9zWkF0NGZNOTFUME9JNXhUYVdydEox?=
 =?utf-8?B?dmJTT0hJRmpQbjRFK2E3Yy9MQkFMNk4zcEJ3MkhqOWRhK1JnUHhYUUc4R3p4?=
 =?utf-8?B?bUtkbDJXczZ4M2V5RDQ4aXdocGM1VG9ISXJQSElSMWlHemVzU2NGZk1ZOUpD?=
 =?utf-8?B?Qng1NlQrNUt3TlZuNmk2RkgwUWNBUW1MK0haZm5GRnNTK2ZOL25OZE4yUWEv?=
 =?utf-8?B?Qm9nVHVoSHJIZHNUUlNreUYzb05wUSt2TW9PVDdTNnFaYS9kS21lMnQ2TllQ?=
 =?utf-8?B?OVY5Z01IN1ZiL1diMWhFZjJ2ZzRhVEJLd1RjODI5RzNpM3BPU210a2VYdFNO?=
 =?utf-8?B?TlRJUVB2WXlEeVkyOWxPZTM2dUhMSXFibVltZFcvSkQyZitoQ1JjZjFSQkJz?=
 =?utf-8?B?bHVPd05tcUU3cStiSWRkMENpdnJDcVBrWUVSQzR4ZWZlOHJPMVVuUEVPMHZE?=
 =?utf-8?B?N1QwRmxZbjVJM0lvdGJHNC9ZUTJEQi9uUW1Rb3NPZkpmbVVhYlFBNG1iYlNq?=
 =?utf-8?B?dFNGYUN2eWNJYVFIaVcwdVlPWFBmK3NyK0YzVk9hMi9BTFBDNVZkdmxZbUdU?=
 =?utf-8?B?TERVV0hEdHZxYk9OWFV2T0J1dmpxR1E0eTBGRTR0bEZ4VWI4S3VCS0ZGb0Zq?=
 =?utf-8?B?UURNU3FTKzhxcWd0eERmdlVIbGZhWXNOb0l4a0ltTWJoWHR4ZTIzL3Vra3Bv?=
 =?utf-8?B?K1BoV3BFQmxwM2d1L3FKNUVLVzRyajhEaGVXRE5pcm05b1BlQmdSTFdocnBF?=
 =?utf-8?B?Wkp2NkVMbkQ3TVRpTWRWTmpMRXZTc29zbjZxWVNmRk0xUkZHTm5ha3hzYW4v?=
 =?utf-8?B?NG5xMGJMUktvT3VDeURjQTIyY1o4REpZTlAwYWRIRTBqNHhpRGttVUZabjQr?=
 =?utf-8?B?MXFybHVyamt6UFhUem5sa01JQ3dEWCtaWktJWmlkN2U4U2FKbTJsMzV4M3p1?=
 =?utf-8?B?TXc1T0xIZDN1c2tGcUU3ZkxTUmQ1VCtnc2xYQWtBTlJadlJaYSs0a0tWdXk1?=
 =?utf-8?B?S3VBZmoveGVKZk9uWTA1U2FkYlgyanlLTUdiaW1kYU9mZWpoR1VQOERNVmM3?=
 =?utf-8?B?bUdCeVgzb2NHN2UxT3FLd0lGWHBwcjlQL2RZbzN2OStHbHYybnQ3SFJianlp?=
 =?utf-8?B?SkQ5TlpzY08vUlJiMW5DRmpKL1hVRFQrRFp4QTMvYkREVGVBNVFROVc0cnJY?=
 =?utf-8?B?QVROYWRNbDN2RUF6MWY4TEg1S3d2UjdPSStCYjZyWGFIME81WE1uazE2Qk0v?=
 =?utf-8?B?SUJDSGpneU1OUHFZNGhOTTlCWExoMDdDQXh3VEtXMlZzT1lwUWNjWTVIOFc0?=
 =?utf-8?B?ekJwK0pHNzRWdXlvT29KbzZpWkdDOVZER01LNFVnbElCekNPYklCbmNWQUdS?=
 =?utf-8?B?N1hVcnhPMzNLRzVGaHJqR3BMWEdRVFdOV2F2dENMMUNkTHZKNFdUcURmZEVJ?=
 =?utf-8?B?ZHQxdHBobndkOHVzWmlBVmp2U3U2WGdxclBqemkrUTRoZGcwcUFVbWNCR1pi?=
 =?utf-8?Q?4zdPM4ssy56MetiI9XMy8WiG5oETvB0P?=
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?cEF2bGl1cDRxREpDM3NUME9VeUNtTXQxZXpSbUZ1ZFVGVThGSzZCREZxekYw?=
 =?utf-8?B?RnAwZmRUWWpXZlFiVHY4K0tROWwwWGhPRlB5d2czcDZHVnhEbG5UR01tTEJv?=
 =?utf-8?B?T1ZPTk8wempFMTNWc21yb1U4R2Ezd1JlV21nQUpZSi8rUkkzZkkxY0liOGp0?=
 =?utf-8?B?anc3bHpYZU1FR1hBaDVIMjBBa2F3Mkx1dEFnL3p0djFxenNHTU5BdmliZ09M?=
 =?utf-8?B?Um04cktIV29mU0NWK29ReFFIakJqay9qVmwwaklQbHZvMHhjZ2hQUEVxT3lw?=
 =?utf-8?B?UDRCMVptNXV1Kzl0RG5vcHFDczhPSWJLcVRuUHdJS0w2dEtVTFNtU213eUgx?=
 =?utf-8?B?N1hHZlVUeWk2TmNLL3FsL2wzT3N1VlBnZytZQUVSTFlHMzFHMWZoVk5kVjJU?=
 =?utf-8?B?aU9idlkza01iNUErQjZKNyt5dkdMQ1NveGE1MDc4anBNZmYraWVzWFMwbkR3?=
 =?utf-8?B?SytaQlZ3NlMwa2g0KzVMQTdaditVWFJ4aXU2YUYwenEwUWd6ZVVvVFYvWW1h?=
 =?utf-8?B?YjdRaWdOSlZHeHZHV08xRWc5WFdQY3kyaTYrZk9hY1k3KzIyMHN2ZWd5K243?=
 =?utf-8?B?Zk1EYUdGUHY1Y1BvMk5ZQ1hMekNHT0VwL1JWTkNndzZyU0Q1Tks4S2FLVGJj?=
 =?utf-8?B?LzZRWDRIcHBpNDdYUjc3WUYvUG8zVThsRFUyTlFUZGtYR3IrVndtUlRpaHpt?=
 =?utf-8?B?U1dEV2VhTTQwa1M3WGdMT0FjanhOR2w2U2RINEVvRHRGZlptdWJiZWV0K1dL?=
 =?utf-8?B?SkhOUmtGV0x4dUhoWG1TQUJmVVNOSmVTVjBrRVlqSmNJVE1kSG0zTGZNVU8r?=
 =?utf-8?B?WEd3K3ZqM05lNTBtTENJYUdVVXhONDZoNno0TDFVb1QzMXdiL3JPeFBadCtr?=
 =?utf-8?B?RXN4REdtK1U3VEVuRk1jaU1nZHR0NVFEbXJFRXAxeExLb3lRNGtKZmtRYzVE?=
 =?utf-8?B?SldSVDIwRm9RejhKNTFxVk9BZXNzSG1XSlBzcHF4TlRzcG5HTnFBN2pYSWdn?=
 =?utf-8?B?Q2w0SzI5V3MvMEVUN3VXTmNFdmdiSU5TcGsxSHNhR25haEpBbGpua2dvSTZM?=
 =?utf-8?B?ME1kWE1DNzFUQnBvejR5dFJjWDVtUEc5WllDNC9CYitGalVFOU10TTB4a0J5?=
 =?utf-8?B?aW1yNkx0b0lCTlZ0ZmtHc2UvYVcvSk1nL1lna1hPM0pHeUxPNHB5NU5lTGcy?=
 =?utf-8?B?dHR0Q1NVSE5ZdGhiMDRRcVdFeG9QUEw4bHRSRmthNDdvUEwxRDRKUzhZL2du?=
 =?utf-8?B?VWl5MGJIMXBSYUFMTi9VS1ovR0liRmpGeGRTU3pxb1hTdDJYOEVNcmx4ejdC?=
 =?utf-8?B?TFJhNHVsY3h5Z3hoa0NtdDBEVzhCY1JiY29lWCsyV3M3cjZzSk5mUWI3NG1M?=
 =?utf-8?B?RG0wMEkrUFAwV3ArdkN4d3R0MWNGV095ejFiZjNUZmdPdk56Uk9MYlpzUVZ0?=
 =?utf-8?B?cjdHZ1pZYWRMRVB4Tm9wZjJ6QXB6R2RJbnE1bmlHNVFGS2FwZHZYbzB1NVpy?=
 =?utf-8?B?QVU4eEQ2NVJZT1VDcTMyQlZXaGd2L1IybVV2QmY3c25mVFNSK2xRbjFjcTZi?=
 =?utf-8?B?bDE3NHVSWEVUN2RmRFg4U1MzZTRrRzlnSjV5VlhkSWNOQndLNHU5T2hMaDlh?=
 =?utf-8?B?VEJVSnkyK3QyM3NsSFdCay9LY2RDVTUyNFRiajNsMnNTOUZ3KzgxSFZMRkNk?=
 =?utf-8?B?RmpxMlB4ZEpLemJCTHBKUFNUeWtQb3dtVmdiUFhSZWhtWHlncStPbFQ1WXNy?=
 =?utf-8?B?S2hKVkhzTHJHNThpSlFMemZNQ2VXcnRYZ3dWNVNYejhsMkh5RytqelZQTnRa?=
 =?utf-8?B?VlpmTFlMc2ZZUmNMbGFPOGtnRVVxM1RRdUNuZzFIZ0FUSXk3amQ5Uk5YOWJT?=
 =?utf-8?B?ZVd4OEQwSnVMcU1CVndzWGw1WUVlZGFLQ1JnaXA2a2RZd1oyMUozN25XYTRo?=
 =?utf-8?B?aGtBWStNQW9NQS9wdXNwT3dWWEFMWGMwZ05SWTVURFdrM09TRWxCVHY5aXhV?=
 =?utf-8?B?QmVDdm1iRnJWL0VIMm5vaVZ1dXd0aEV4UHQ0aXlENlFIVkpFWXFQa2JPd2ll?=
 =?utf-8?B?ejRpZ3NNRmZrL2RpT2Q3RHk2NGVUK3JSK2lXWU9lRldaLzdqUExDTFdBRWdB?=
 =?utf-8?B?dGdxelZjRERhQnhyVjg1bDc2YWttNW9IeTQrS3hsMGdlQ0dCYzZva3k0bUFt?=
 =?utf-8?B?bEE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e6a475bd-a337-444c-33e0-08de283ffe30
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 14:20:44.7476
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: E5mQGrfsRTGK5NCYRnUoBUI6WdGpmhV1xyMxuOjig85tmKhE+0TqSCIwRVCrlJRTbpNEqUijdsLjSVNoKtztL4O9ZEWYSvswUTqgGiqUuyk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR03MB7517

On 20/11/2025 1:33 am, Marek Marczykowski-GÃ³recki wrote:
> On Thu, Nov 20, 2025 at 12:43:57AM +0000, Andrew Cooper wrote:
>> On 19/11/2025 7:12 pm, Marek Marczykowski-GÃ³recki wrote:
>>> Old binutils get confused about .buildid overlapping (in VA space) with
>>> earlier section. That confusion results in weird errors down the road,
>>> like this one:
>>>
>>>     objcopy: xen.efi: Data Directory size (1c) exceeds space left in section (8)
>>>
>>> While the bug is fixed in later binutils version, force alignment of the
>>> buildid to avoid overlapping and make it work with older versions too.
>>> This can be reverted once toolchain base is raised at or above binutils
>>> 2.36.
>>>
>>> Details at:
>>> https://lore.kernel.org/all/3TMd7J2u5gCA8ouIG_Xfcw7s5JKMG06XsDIesEB3Fi9htUJ43Lfl057wXohlpCHcszqoCmicpIlneEDO26ZqT8QfC2Y39VxBuqD3nS1j5Q4=@trmm.net/
>>>
>>> Signed-off-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
>>> Fixes: eee5909e9d1e ("x86/EFI: use less crude a way of generating the build ID")
>> We typically put these tags in the other order.Â  I can fix on commit.
>>
>> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>, although...
>>
>>> ---
>>> While the actual bug apparently is in binutils, the commit mentioned in
>>> Fixes: tag introduced part that triggers that bug.
>>> ---
>>>  xen/arch/x86/xen.lds.S | 2 ++
>>>  1 file changed, 2 insertions(+)
>>>
>>> diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
>>> index 5d02f83a409c..967f9167f757 100644
>>> --- a/xen/arch/x86/xen.lds.S
>>> +++ b/xen/arch/x86/xen.lds.S
>>> @@ -171,6 +171,8 @@ SECTIONS
>>>         __note_gnu_build_id_end = .;
>>>    } PHDR(note) PHDR(text)
>>>  #elif defined(BUILD_ID_EFI)
>>> +  /* Workaround bug in binutils < 2.38 */
>> ... this says 2.38, but the commit message says 2.36.Â  Which one is it?
> 2.36

Thanks.Â  I'll adjust on commit.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 14:27:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 14:27:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167478.1493778 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM5cv-0007JF-15; Thu, 20 Nov 2025 14:27:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167478.1493778; Thu, 20 Nov 2025 14:27: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 1vM5cu-0007J8-Un; Thu, 20 Nov 2025 14:27:12 +0000
Received: by outflank-mailman (input) for mailman id 1167478;
 Thu, 20 Nov 2025 14:27: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=nz19=54=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vM5ct-0007J2-PL
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 14:27:11 +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 ff294266-c61c-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 15:27:09 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b762de65c07so147126866b.2
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 06:27: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
 a640c23a62f3a-b7654fcfd9fsm225001766b.40.2025.11.20.06.27.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 06:27: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: ff294266-c61c-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763648829; x=1764253629; 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=D7L9EFBQ3o6pcH5dSS+PqsTzFIgQtfRVoBAHf5DCryg=;
        b=DmlQ4cEN1F0RwxfMkSeUvoNZDbOg9ZNIYKBHgNzK93AF46d91GJwJV++wHtRPujVFG
         RfZKst8asPpYO6/cdXURlx06C91PcFkzp4Wee0EYXlPoS657YjakHDvnH3+6iLpbqE+V
         X65zBpoVF09Kr+xvW6Si3V4ku+0Ov70ja5k3vJ62laLHFTLmBmVgStUK4nDhSrQq6nB8
         uLGIBgrk588ELe8soltgj2DScFtEqqH97VjGXAWTAzwmhBwc5KpAy92o7XYWfNwI7Pk9
         EJMvTTlYsDseK5tE6dvdJ4kTCOkg0Ta92zAAu2NB7SWVHYl7wCUxfeKEOfxhb4fBHhGg
         DTFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763648829; x=1764253629;
        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=D7L9EFBQ3o6pcH5dSS+PqsTzFIgQtfRVoBAHf5DCryg=;
        b=g3GlSnQu02n86NKGZC32f4dbcQk6dMZN6LnNxyGqvl1hNFPftNNkfwmMOrFRk6lL3N
         7aQFhj9LT+tcqnYFAp47cOqvFyfgsLC6k+TIAbi+26tE1OsqdTrNP1E+4l/6xYbKhWG8
         Fh5/zNCrifyn3zMuWEPazOnBqE8DudhtdRkhAmIavqSTRQGf9f6LQre/6myN5f0IHnZ7
         oL4AMMwIGuGTXxf8qvBsl3WzFe3ZQPI2xlkiaG4PVZRTgUgX43EVq1npik7RQKHmy2R7
         H9AEhJAZdi3g9VrD49UOpaveHsnAnyjksSv5RYCksZ1KHjRS0lWfjdHZ8sBnt9nhjFTV
         Wsgw==
X-Forwarded-Encrypted: i=1; AJvYcCXNijkyYQswof0KLgQ5NERsAjwxqY1m5rIMZhmczoKbOVQeBbqljiUgttiY35zYq7Cy7FC+/TpIzSs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw0nGCAwC92N7/d/RboMA9iEwoDTkFPx6dr4fYXglqH4Rw86fqy
	/lbefu9AxxugyFVCk1HFEEnIJbiw2kYYnUkgxrJyKfSkQUkLY5++mK6USWRlpULc7YQmWqXcMvK
	h6PI=
X-Gm-Gg: ASbGncsjvGeL8tCXIEhKk7ccUl/A0m/gpNTtYt/hPECkRDliCYmkI7rI1oepbdJAaX+
	0apvSM4v5mQVy9bnNJtNflyqhN31B3yvw7m6S1Lp7i96jgi7eDansFAcWg7BPncfzpyRhhkiDH1
	3E9Puld9C3Wv2jrjxATxpONlYgUFkoKdKizVPYrzi77eVKR0xD5EUIqF3nOWGfJJEX+xWBkEGdE
	ZktMEItl000SgGBd3pK3oXcyCQ1kw9PJA+8QBQJxm9Kc9xpEBkHS4b69N5FJfaI0BIugbZPIhS7
	brtGEwkq9dAiMTHVCAQ6wHIVZdur9u66kwEn5D2lNJjUdHzX2bEU02PpKtoWTq2NpTJWUjLns05
	1XiJI6vELu6S/rjarVm046Yx2gZJUt+Jf4ZmxqalgwCxqOKYhvF+Y68xG1RjETwNA1ygXgrN3Xc
	oDzl4CFx41p6Cl5E3V5SJmURZmCYSOkk1C3HrwyOawzxq3E1Kg72fyg46pG9HprLmMLffWeOq2q
	mg=
X-Google-Smtp-Source: AGHT+IGZMKn/CGbMADU0K0ImOp9/OL0dDqjz8f8dP6q6RkmFVXQ7nswXFNTt8xDaF77Tg8w2iiuNpw==
X-Received: by 2002:a17:907:3f1f:b0:b73:467e:47f6 with SMTP id a640c23a62f3a-b7654dd6700mr373990866b.15.1763648828494;
        Thu, 20 Nov 2025 06:27:08 -0800 (PST)
Message-ID: <cd41f345-f5db-4d64-8914-a6984f7fa83e@suse.com>
Date: Thu, 20 Nov 2025 15:27:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 05/12] x86/io-apic: purge usage of logical mode
To: Andrew Cooper <andrew.cooper3@citrix.com>
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120090637.25087-6-roger.pau@citrix.com>
 <63a4f416-f475-4b6b-8f44-db570b7a75d9@citrix.com>
Content-Language: en-US
Cc: Roger Pau Monne <roger.pau@citrix.com>, 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: <63a4f416-f475-4b6b-8f44-db570b7a75d9@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.11.2025 14:18, Andrew Cooper wrote:
> On 20/11/2025 9:06 am, Roger Pau Monne wrote:
>> The IO-APIC RTEs are unconditionally programmed with physical destination
>> mode, and hence the field to set in the RTE is always physical_dest.
>>
>> Remove the mode parameter from SET_DEST() and take the opportunity to
>> convert it into a function, there's no need for it to be a macro.
>>
>> This is a benign fix, because due to the endianness of x86 the start of the
>> physical_dest and logical_dest fields on the RTE overlap.
> 
> RTEs do not have overlapping fields; it's Xen's abstraction of the
> IO-APIC which is buggy.

I wouldn't put it this negatively. In the old days, ...

> For starters, Xen's IO_APIC_route_entry still only has a 4-bit
> physical_dest field which hasn't been true since the Pentium 4 days.Â 
> This might explain some of the interrupt bugs we see.

... as you mention here, the two fields were distinct (and hence overlapping).
In a number of places we passed "logical" to SET_DEST() as the middle argument,
thus covering for the too narrow field width of physical_dest. Dropping that
parameter and always using physical_dest requires that field to be widened,
though (or else we'll end up chopping off the top 4 bits, as we already do in
disable_IO_APIC() and unlock_ExtINT_logic() - both benign as long as the CPU
used always has APIC ID 0, which will at least typically be the case, I think).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 14:31:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 14:31:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167491.1493788 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM5gz-0000Oz-GZ; Thu, 20 Nov 2025 14:31:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167491.1493788; Thu, 20 Nov 2025 14:31:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM5gz-0000Os-E4; Thu, 20 Nov 2025 14:31:25 +0000
Received: by outflank-mailman (input) for mailman id 1167491;
 Thu, 20 Nov 2025 14:31: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=hThX=54=intel.com=zhao1.liu@srs-se1.protection.inumbo.net>)
 id 1vM5gy-0000Om-FK
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 14:31:24 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.21])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 943f43a9-c61d-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 15:31:21 +0100 (CET)
Received: from orviesa010.jf.intel.com ([10.64.159.150])
 by orvoesa113.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 20 Nov 2025 06:31:19 -0800
Received: from liuzhao-optiplex-7080.sh.intel.com (HELO localhost)
 ([10.239.160.39])
 by orviesa010.jf.intel.com with ESMTP; 20 Nov 2025 06:31:10 -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: 943f43a9-c61d-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1763649082; x=1795185082;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=BJQ0ePr3LQV5SiK/Z+mX4/dVwor8ikb3J0AbLLg45uc=;
  b=Rwi4dSJ1VwwCbqgttRbMLi4pP8Z+RxEyHe1oQipl+nVBiZ0Z3Sz2TcJ2
   K0O4PGPRxW8clJWR216ZTWvrsfcUzKLONEw9Ppx7Xllpng+4pwj5fzHWv
   pxU01Xepm/1fRqo1kC9meAF0rS3XeQ2KHe9NpFvow59JW31O6yOdgavin
   CQNQjVCKwS2ESSEDgPMcLnxXsGns9t8I6lkLActyieJAtSQ7MUJFb2AV8
   qRScwq9+hpNR7AjBOMVmtuwl9EJGlWPico8A7EWoujziEtrcKjhrc0+qh
   Oyi2G9tsOQiLwCKYlJ9mS7kywRAcChClhx81wu7+he6ZyhgZYZIT9JuIG
   g==;
X-CSE-ConnectionGUID: 5Xap0oqZS9+NSsxWgFkNbg==
X-CSE-MsgGUID: OELw4eyzSzibKWzM1zXd5Q==
X-IronPort-AV: E=McAfee;i="6800,10657,11619"; a="65651092"
X-IronPort-AV: E=Sophos;i="6.20,213,1758610800"; 
   d="scan'208";a="65651092"
X-CSE-ConnectionGUID: IHUmIxu8STWCMdWRCOkkHQ==
X-CSE-MsgGUID: r9ZK/qnPSHODU6gCYG74XA==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.20,213,1758610800"; 
   d="scan'208";a="190664714"
Date: Thu, 20 Nov 2025 22:53:30 +0800
From: Zhao Liu <zhao1.liu@intel.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, kwolf@redhat.com, hreitz@redhat.com,
	mst@redhat.com, imammedo@redhat.com, anisinha@redhat.com,
	gengdongjiu1@gmail.com, peter.maydell@linaro.org,
	alistair@alistair23.me, edgar.iglesias@gmail.com, npiggin@gmail.com,
	harshpb@linux.ibm.com, palmer@dabbelt.com, liwei1518@gmail.com,
	dbarboza@ventanamicro.com, zhiwei_liu@linux.alibaba.com,
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
	berrange@redhat.com, peterx@redhat.com, farosas@suse.de,
	eblake@redhat.com, vsementsov@yandex-team.ru, eduardo@habkost.net,
	marcel.apfelbaum@gmail.com, philmd@linaro.org,
	wangyanan55@huawei.com, qemu-block@nongnu.org, qemu-arm@nongnu.org,
	qemu-ppc@nongnu.org, qemu-riscv@nongnu.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 1/5] hw/core/loader: Make load_elf_hdr() return bool,
 simplify caller
Message-ID: <aR8rajtQm+kppR87@intel.com>
References: <20251119130855.105479-1-armbru@redhat.com>
 <20251119130855.105479-2-armbru@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20251119130855.105479-2-armbru@redhat.com>

On Wed, Nov 19, 2025 at 02:08:51PM +0100, Markus Armbruster wrote:
> Date: Wed, 19 Nov 2025 14:08:51 +0100
> From: Markus Armbruster <armbru@redhat.com>
> Subject: [PATCH 1/5] hw/core/loader: Make load_elf_hdr() return bool,
>  simplify caller
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  include/hw/loader.h |  4 +++-
>  hw/arm/boot.c       |  6 +-----
>  hw/core/loader.c    |  8 ++++++--
>  hw/riscv/spike.c    | 10 +---------
>  4 files changed, 11 insertions(+), 17 deletions(-)

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 14:32:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 14:32:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167501.1493799 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM5i9-0001Jh-QJ; Thu, 20 Nov 2025 14:32:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167501.1493799; Thu, 20 Nov 2025 14:32:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM5i9-0001Ja-NN; Thu, 20 Nov 2025 14:32:37 +0000
Received: by outflank-mailman (input) for mailman id 1167501;
 Thu, 20 Nov 2025 14: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=Eeu9=54=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vM5i8-0001JR-1u
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 14:32:36 +0000
Received: from mail-yx1-xb12e.google.com (mail-yx1-xb12e.google.com
 [2607:f8b0:4864:20::b12e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c03eeebd-c61d-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 15:32:33 +0100 (CET)
Received: by mail-yx1-xb12e.google.com with SMTP id
 956f58d0204a3-640d790d444so830577d50.0
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 06:32: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: c03eeebd-c61d-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763649152; x=1764253952; 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=iUeOVCMymier3ZfzWBM6RwQI21C5g6DmEkb2f2fRjCI=;
        b=OK0VelfzzNSqvg5WJwvMwM2Jc6/CtI3OkCPAkoqgXRaZV1BaxnaJ3fbYBRoqkBF8KY
         S13HRyeHrm1WfbiD5AfwYkzX/4+6Pa4dCgls8w/nnz5lU3KKmFKwk4+e4FwluUkS2IIp
         ESBpqIJ0nFovs5EtSCj0QavzgNYDveAmK7r3v6v0CDGNhSvojjczI9CnNATVQdb9veDW
         99zNs4ACJyoAOypbfdaSLJRhBZ+hgCClOwT300frLKQk2ZvNr427POJoY6AzJi77zr3r
         86CXxAL+4WvCU/eobqZI2OrqLgrV1lRLf9W636ls7MCyOr839+/3g91Vmxs280JO6y2T
         eb4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763649152; x=1764253952;
        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=iUeOVCMymier3ZfzWBM6RwQI21C5g6DmEkb2f2fRjCI=;
        b=iB4OtP69zfvI3gIUW0mXjbqTc0GoAbXVSRPHcNh8AYhgmJXTrw7xgrH9HXe+ospZEZ
         6yP2oUjswX+kLiRf6/jZuZusTK6pJReITtUQVCUIxUNYQymjDVhLZHCLy9H3SJAXRiXF
         DKuOozA7nG09nnQhGt/ik5JJNukK/tZyDH1YrQ3j9ogTDLb23vSXFMauWGmoN+Uhnqf2
         11+8E4k/ZiSMq0mvoEkMseP1dpFW7Lvt6IS+2cqCb4pxgHSeZndPxVvw8faRNfUpKCA5
         cF83SbK5ycDlZ21VSDcNmcaddVm7CyME3fYK1bxQu9IkZTyhb6czXs86FE4G4qjBFKi5
         /OnQ==
X-Forwarded-Encrypted: i=1; AJvYcCWX0+0iquA/F9cifcMesCfKALxaK/6qh85KJGGan7AhlNXX6cacgJLMNGsfMGebc/d2q6b7FaVR8zM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy1AkNBpaf6Kmdj98GoqqWCxOuvWlMZr0+tViGK3P3bO2V6lZNi
	LLrUwWhmFHZV/tTuZRYL8aP1sspln317z11o9QD7QrzRPMEZEd8FnP2V6AXCViTUbOzZdiEWGHr
	3ZSFHZ0dMl+ywI+L8Eh7Ws4At9YLEbx4=
X-Gm-Gg: ASbGncuuAV9Jew10W5AWwed+DeSKJ1QDC7xXmfxeFCSjCyY9QmZPTm7rGJ/gskizJrz
	pzAKGrpDqiOdSAIuifjsmrc5xBTMe9i0V3PHkW34ktO5yhlRGKa2xmEVdBIqUFLqSfEZFRBSPi2
	7QgGRcPHxz/NUVFAvFWdDaZkyabOjAyWtp8vgH2qLWh8xEmx4+St/j9KXEFV/uUSmRyefzNhgwX
	kcBMnI/tYUO7Sx1PNwcA4BIqgvfFGiEdtv/nt7aTH7LS5rWuvnCeVbgESEm7zgzL9HrEkQ=
X-Google-Smtp-Source: AGHT+IFjzAWGOiKPMoTSO4ZLWdXYMNsmpo3BfIq+eBUy5zf89QeFh0QTH6eAVfvfPZ5ByUF/mrVKghncTp7ksJ8qJlU=
X-Received: by 2002:a05:690e:120b:b0:63e:b41:cebc with SMTP id
 956f58d0204a3-642f7d3468bmr2192445d50.17.1763649152328; Thu, 20 Nov 2025
 06:32:32 -0800 (PST)
MIME-Version: 1.0
References: <20251113154358.28704-1-frediano.ziglio@citrix.com>
 <6729f3d9-618c-4dcd-93f8-d02ca7cea017@gmail.com> <8f8a769d-95ea-4554-8ee0-d6247f583e37@citrix.com>
 <CAHt6W4eDDm-fNUB7W1Zgj+x-bkK2fxTB50C38T4Uy0_Ofy_cww@mail.gmail.com>
 <CAHt6W4einkyNX9sV3Ns87fLRaAN+N1b9CM=KVo5kvb1Qk7y=qg@mail.gmail.com> <aR8gDojcDEgrTSMa@mail-itl>
In-Reply-To: <aR8gDojcDEgrTSMa@mail-itl>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Thu, 20 Nov 2025 14:32:20 +0000
X-Gm-Features: AWmQ_bliXPaXE-1320HlHeOyKCIw4Gz7d6ycZ1IapwIDG9Sjghy0qk5m7JMXE6o
Message-ID: <CAHt6W4dB_FXVJbT1NkD6-Sf2+u+k2W=v1Au2AWOg-OxrmkN1gg@mail.gmail.com>
Subject: Re: [PATCH v8] xen: Strip xen.efi by default
To: =?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, 
	Oleksii Kurochko <oleksii.kurochko@gmail.com>, Frediano Ziglio <frediano.ziglio@citrix.com>, 
	xen-devel@lists.xenproject.org, Frediano Ziglio <frediano.ziglio@cloud.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Demi Marie Obenour <demiobenour@gmail.com>, 
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, 20 Nov 2025 at 14:05, Marek Marczykowski-G=C3=B3recki
<marmarek@invisiblethingslab.com> wrote:
>
> On Thu, Nov 20, 2025 at 01:59:24PM +0000, Frediano Ziglio wrote:
> > On Sat, 15 Nov 2025 at 06:23, Frediano Ziglio <freddy77@gmail.com> wrot=
e:
> > >
> > > On Fri, 14 Nov 2025 at 19:18, Andrew Cooper <andrew.cooper3@citrix.co=
m> wrote:
> > > >
> > > > On 14/11/2025 3:40 pm, Oleksii Kurochko wrote:
> > > > >
> > > > >
> > > > > On 11/13/25 4:43 PM, Frediano Ziglio wrote:
> > > > >> From: Frediano Ziglio <frediano.ziglio@cloud.com>
> > > > >>
> > > > >> For xen.gz file we strip all symbols and have an additional
> > > > >> xen-syms.efi file version with all symbols.
> > > > >> Make xen.efi more coherent stripping all symbols too.
> > > > >> xen-syms.efi can be used for debugging.
> > > > >>
> > > > >> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> > > > > Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > > > >
> > > > > Thanks.
> > > >
> > > > Thanks.  Unfortunately CI says no.
> > > >
> > > > Ubuntu's 20.04, 18.04 and 16.04 all fail:
> > > > https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/215=
9622869
> > > >
> > > > From 16.04:
> > > >
> > > > 2025-11-14T18:01:51.192964Z 01O strip xen-syms.efi -o xen.efi
> > > > 2025-11-14T18:01:51.198151Z 01O strip:xen-syms.efi[.init]: relocati=
on count is negative: File truncated
> > > > 2025-11-14T18:01:51.198166Z 01O strip: xen.efi: Failed to read debu=
g data section
> > > > 2025-11-14T18:01:51.198169Z 01O strip:xen.efi: error copying privat=
e BFD data: File truncated
> > > > 2025-11-14T18:01:51.198932Z 01O arch/x86/Makefile:207: recipe for t=
arget 'xen.efi' failed
> > > > 2025-11-14T18:01:51.198937Z 01O make[3]: *** [xen.efi] Error 1
> > > > 2025-11-14T18:01:51.199616Z 01O build.mk:90: recipe for target 'xen=
' failed
> > > > 2025-11-14T18:01:51.199619Z 01O make[2]: *** [xen] Error 2
> > > > 2025-11-14T18:01:51.200402Z 01O Makefile:600: recipe for target 'xe=
n' failed
> > > > 2025-11-14T18:01:51.200409Z 01O make[1]: *** [xen] Error 2
> > > >
> > > >
> > > > I find it hard to believe that the relocation count is really negat=
ive,
> > > > and given that newer binuitls works, I expect this is a binutils bu=
g.
> > > >
> > >
> > > Unless the message is just misleading I find it hard to have a
> > > negative number of items in a container.
> > >
> > > > Nevertheless, we need some workaround.  Given that the previous
> > > > behaviour was not to strip, I think we can reuse that for broken to=
olchains?
> > > >
> > >
> > > Something like that ?
> > >
> > > diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> > > index a154ffe6b2..c465eb12e2 100644
> > > --- a/xen/arch/x86/Makefile
> > > +++ b/xen/arch/x86/Makefile
> > > @@ -236,7 +236,9 @@ ifeq ($(CONFIG_DEBUG_INFO),y)
> > >         $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCO=
PY) \
> > >                 -O elf64-x86-64 $(TARGET)-syms.efi $@.elf
> > >  endif
> > > -       $(STRIP) $(TARGET)-syms.efi -o $@
> > > +       $(STRIP) $(TARGET)-syms.efi -o $@ || { \
> > > +               LANG=3DC strip $(TARGET)-syms.efi -o $@ 2>&1 | grep -=
q \
> > > +               "relocation count is negative" && mv -f $(TARGET)-sym=
s.efi $@; }
> > >  ifneq ($(CONFIG_DEBUG_INFO),y)
> > >         rm -f $(TARGET)-syms.efi
> > >  endif
> > >
> > > It will fall back to not stripping in case that bug is detected. I
> > > don't know how to test it.
> > > (the LANG=3DC is to always force the English message).
> > >
> >
> > It looks like this change works better and CI is happy.
> > It duplicates the linking with -s option if the strip fails.
> > Yes, it's a hack and almost duplicates the one command above.
> > What about it?
>
> Is it guaranteed to match xen-syms.efi?
>
> There is an alternative option: based on observation that Ubuntu 16.04
> runs out of support in April 2026 - which is before Xen 4.22 release,
> maybe we can drop that test from CI already?
>

That would work too.

Looking a bit more at the logs from
https://gitlab.com/xen-project/people/fziglio/xen/-/jobs/12158955130/viewer
there's something that worries me about.
I added "ls -l" and "objdump -x" of the output file and objdump is
complaining about relocations more or less the same strip was
complaining about:

    RELOCATION RECORDS FOR [.init]:
    objdump: failed to read relocs in: xen-syms.efi
    objdump: error message was: File truncated

not counting some weird relocations:

    reloc 2060 offset    0 [a4b8a4b0] UNKNOWN

    reloc 2294 offset    0 [a4b8a4b0] HIGHADJ (  80)

    reloc 2348 offset    0 [a4b8a4b0] SECTION

    reloc 2372 offset    0 [a4b8a4b0] RESERVED1

    reloc 2730 offset    0 [a4b8a4b0] MIPS_JMPADDR

Maybe the CI now is happy but there's not much point if the produced
files are not working.

> > diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> > index a154ffe6b2..5f5162841e 100644
> > --- a/xen/arch/x86/Makefile
> > +++ b/xen/arch/x86/Makefile
> > @@ -236,7 +236,10 @@ ifeq ($(CONFIG_DEBUG_INFO),y)
> >         $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCOPY=
) \
> >                 -O elf64-x86-64 $(TARGET)-syms.efi $@.elf
> >  endif
> > -       $(STRIP) $(TARGET)-syms.efi -o $@
> > +       $(STRIP) $(TARGET)-syms.efi -o $@ || \
> > +       $(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
> > +             $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y=
) \
> > +             $(note_file_option) -s -o $@
> >  ifneq ($(CONFIG_DEBUG_INFO),y)
> >         rm -f $(TARGET)-syms.efi
> >  endif
> >


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 14:32:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 14:32:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167502.1493810 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM5iH-0001aR-73; Thu, 20 Nov 2025 14:32:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167502.1493810; Thu, 20 Nov 2025 14:32: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 1vM5iH-0001aG-2s; Thu, 20 Nov 2025 14:32:45 +0000
Received: by outflank-mailman (input) for mailman id 1167502;
 Thu, 20 Nov 2025 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=hThX=54=intel.com=zhao1.liu@srs-se1.protection.inumbo.net>)
 id 1vM5iF-0001JR-NN
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 14:32:43 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c48ad1a4-c61d-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 15:32:41 +0100 (CET)
Received: from orviesa002.jf.intel.com ([10.64.159.142])
 by orvoesa107.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 20 Nov 2025 06:32:40 -0800
Received: from liuzhao-optiplex-7080.sh.intel.com (HELO localhost)
 ([10.239.160.39])
 by orviesa002.jf.intel.com with ESMTP; 20 Nov 2025 06:32:32 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c48ad1a4-c61d-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1763649162; x=1795185162;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=8p5BU/PNBU0Ifp6tqvnI7Xm0gUktsLgYRPE5lSj1HzQ=;
  b=UrJvwdQOgi675MgGqyJL5VvKFHiD2y2fEmu6YtWsd1DnW4d3/6FesonE
   ak2Rx7gDznMVLVW+WEsw8VZ5R/birjQVjJW1og4vLQ98+LuwDcs1UWsL+
   PBfpLev5ssOzvqwV26NBXzN4o2NebC1Kuen/jxzkkgYXTcZXGqN1+9vK2
   iIXVwWMjA/YSHg12gA5ipDu6tKGTsgXA7mb/m6SnBc1OcmXJXJ/gCNTps
   75x5GC1XcLDwprns9p+YVrpwUp90L0fRsrziS4VJyeqIXPaa/CLVcrKOz
   7AtOaIPNjmBvtQtvZklM7wPSIpm2qdpLewVhJAd5hUTc7pZ06DfiNJHci
   w==;
X-CSE-ConnectionGUID: AzEovlsdQ4O0t7SNPsyyuA==
X-CSE-MsgGUID: 5Ke+OSKZRS+LbFbs1WzOyA==
X-IronPort-AV: E=McAfee;i="6800,10657,11619"; a="69335892"
X-IronPort-AV: E=Sophos;i="6.20,213,1758610800"; 
   d="scan'208";a="69335892"
X-CSE-ConnectionGUID: zqy/H3FmTvG0yY2xg8n9SA==
X-CSE-MsgGUID: 2boN41jpSnqTQwUO/BTgeg==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.20,213,1758610800"; 
   d="scan'208";a="222027958"
Date: Thu, 20 Nov 2025 22:54:51 +0800
From: Zhao Liu <zhao1.liu@intel.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, kwolf@redhat.com, hreitz@redhat.com,
	mst@redhat.com, imammedo@redhat.com, anisinha@redhat.com,
	gengdongjiu1@gmail.com, peter.maydell@linaro.org,
	alistair@alistair23.me, edgar.iglesias@gmail.com, npiggin@gmail.com,
	harshpb@linux.ibm.com, palmer@dabbelt.com, liwei1518@gmail.com,
	dbarboza@ventanamicro.com, zhiwei_liu@linux.alibaba.com,
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
	berrange@redhat.com, peterx@redhat.com, farosas@suse.de,
	eblake@redhat.com, vsementsov@yandex-team.ru, eduardo@habkost.net,
	marcel.apfelbaum@gmail.com, philmd@linaro.org,
	wangyanan55@huawei.com, qemu-block@nongnu.org, qemu-arm@nongnu.org,
	qemu-ppc@nongnu.org, qemu-riscv@nongnu.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/5] hw/nvram/xlnx-bbram: More idiomatic and simpler
 error reporting
Message-ID: <aR8ruxdVFa/XdQo7@intel.com>
References: <20251119130855.105479-1-armbru@redhat.com>
 <20251119130855.105479-3-armbru@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20251119130855.105479-3-armbru@redhat.com>

On Wed, Nov 19, 2025 at 02:08:52PM +0100, Markus Armbruster wrote:
> Date: Wed, 19 Nov 2025 14:08:52 +0100
> From: Markus Armbruster <armbru@redhat.com>
> Subject: [PATCH 2/5] hw/nvram/xlnx-bbram: More idiomatic and simpler error
>  reporting
> 
> bbram_bdrv_error() interpolates a "detail" string into a template with
> error_setg_errno(), then reports the result with error_report().
> Produces error messages with an unwanted '.':
> 
>     BLK-NAME: BBRAM backstore DETAIL failed.: STERROR
> 
> Replace both calls of bbram_bdrv_error() by straightforward
> error_report(), and drop the function.  This is less code, easier to
> read, and the error message is more greppable.
> 
> Also delete the unwanted '.'.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  hw/nvram/xlnx-bbram.c | 18 ++++--------------
>  1 file changed, 4 insertions(+), 14 deletions(-)

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 14:33:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 14:33:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167526.1493822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM5jB-0002Q4-Fx; Thu, 20 Nov 2025 14:33:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167526.1493822; Thu, 20 Nov 2025 14:33:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM5jB-0002Px-D1; Thu, 20 Nov 2025 14:33:41 +0000
Received: by outflank-mailman (input) for mailman id 1167526;
 Thu, 20 Nov 2025 14:33:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hThX=54=intel.com=zhao1.liu@srs-se1.protection.inumbo.net>)
 id 1vM5jA-0002Pm-G0
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 14:33:40 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.13])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e5cab8f9-c61d-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 15:33:38 +0100 (CET)
Received: from fmviesa007.fm.intel.com ([10.60.135.147])
 by orvoesa105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 20 Nov 2025 06:33:36 -0800
Received: from liuzhao-optiplex-7080.sh.intel.com (HELO localhost)
 ([10.239.160.39])
 by fmviesa007.fm.intel.com with ESMTP; 20 Nov 2025 06:33:28 -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: e5cab8f9-c61d-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1763649219; x=1795185219;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=sQyxYXW7PPbgad6LMRVwa4jqmK6s2KwTJtkRXoZqVk8=;
  b=beQHTH7LO/Y3nK9spZ2K0TfKTXqUZVzlCLUQZgQBFwLtzLGB3iJO5+Kl
   87EdeC9m2IA+LQNXvhoQ7acQBUqcR2bJ0J6R86xpR9JvsleoI5Ua13sPf
   eC925KN1c6/dgXofl9z5Ptbg/X1aAyDZPIIOpA0Yg0HYEdCxpJmNQV7Gj
   lgQmUXaqHE7Me1dRr9MsONxZaEkir1Eg6VQn6//B/BFuNnSnyjn++Qr+0
   j74SP66zdWDl6bs8f5BlBZOTUIZwHl34nWQ/VtELBVtnU8ge21HBUqoon
   gsz3OT3MFtJUvLMF2a5gyMuEs+VHixf7Byecnl5QJqIdE4/VzdN+wfWwT
   w==;
X-CSE-ConnectionGUID: L1V3G54CRmy+yFnF57IMgA==
X-CSE-MsgGUID: l++w+5KcSVi6/Z4DQC1fmw==
X-IronPort-AV: E=McAfee;i="6800,10657,11619"; a="76824888"
X-IronPort-AV: E=Sophos;i="6.20,213,1758610800"; 
   d="scan'208";a="76824888"
X-CSE-ConnectionGUID: iNkqu0PST0O5MuzQO2Nlgw==
X-CSE-MsgGUID: eSoSkmy/QXuBrOhkef7vzg==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.20,213,1758610800"; 
   d="scan'208";a="191058805"
Date: Thu, 20 Nov 2025 22:55:48 +0800
From: Zhao Liu <zhao1.liu@intel.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, kwolf@redhat.com, hreitz@redhat.com,
	mst@redhat.com, imammedo@redhat.com, anisinha@redhat.com,
	gengdongjiu1@gmail.com, peter.maydell@linaro.org,
	alistair@alistair23.me, edgar.iglesias@gmail.com, npiggin@gmail.com,
	harshpb@linux.ibm.com, palmer@dabbelt.com, liwei1518@gmail.com,
	dbarboza@ventanamicro.com, zhiwei_liu@linux.alibaba.com,
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
	berrange@redhat.com, peterx@redhat.com, farosas@suse.de,
	eblake@redhat.com, vsementsov@yandex-team.ru, eduardo@habkost.net,
	marcel.apfelbaum@gmail.com, philmd@linaro.org,
	wangyanan55@huawei.com, qemu-block@nongnu.org, qemu-arm@nongnu.org,
	qemu-ppc@nongnu.org, qemu-riscv@nongnu.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 3/5] nbd/client-connection: Replace error_propagate() by
 assignment
Message-ID: <aR8r9PwcBCqidxUp@intel.com>
References: <20251119130855.105479-1-armbru@redhat.com>
 <20251119130855.105479-4-armbru@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20251119130855.105479-4-armbru@redhat.com>

On Wed, Nov 19, 2025 at 02:08:53PM +0100, Markus Armbruster wrote:
> Date: Wed, 19 Nov 2025 14:08:53 +0100
> From: Markus Armbruster <armbru@redhat.com>
> Subject: [PATCH 3/5] nbd/client-connection: Replace error_propagate() by
>  assignment
> 
> connect_thread_func() sets a variable to null, then error_propagate()s
> an Error * to it.  This is a roundabout way to assign the Error * to
> it, so replace it by just that.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  nbd/client-connection.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 14:34:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 14:34:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167539.1493833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM5k1-0002wT-OU; Thu, 20 Nov 2025 14:34:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167539.1493833; Thu, 20 Nov 2025 14:34:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM5k1-0002wM-LY; Thu, 20 Nov 2025 14:34:33 +0000
Received: by outflank-mailman (input) for mailman id 1167539;
 Thu, 20 Nov 2025 14:34:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hThX=54=intel.com=zhao1.liu@srs-se1.protection.inumbo.net>)
 id 1vM5k0-0002wE-L3
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 14:34:32 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 055de50d-c61e-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 15:34:30 +0100 (CET)
Received: from orviesa002.jf.intel.com ([10.64.159.142])
 by orvoesa107.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 20 Nov 2025 06:34:29 -0800
Received: from liuzhao-optiplex-7080.sh.intel.com (HELO localhost)
 ([10.239.160.39])
 by orviesa002.jf.intel.com with ESMTP; 20 Nov 2025 06:34:15 -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: 055de50d-c61e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1763649271; x=1795185271;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=yPcH1deYy75uCsECvsB0OJbTIL54O9dmOmpsEpMttdo=;
  b=J38W0jd3TzwfAMjpDCQSGKuomGDKdN8C0T/MCyP6cDWWvp0a5IkTvZMx
   80NvcMfFGAUpS1njpWGkffyzijnd/XbN/5mMN+n6VPer7cKHiWrKlhM25
   3wORE5uugqqPQPhVr8P5pmgtNhHxxkZS4YShEaMUP5VvHggZRVM+3KVZ0
   1Ynmbw1SiISbxOJrkrZO1TwG+0j69+X9Lm9g4F/TbYtwRTfGqCXWxcH52
   kRkopr4300ZZ1E1bSg/2xb1ubYwpvVxyzI01qFRlZzCCKKpBNHoe78ErD
   Le9/h/qyO+JX1FfYlgRxyaS71K3a1Wc0H+iZb3EgIxeGFKVVP3mnRXvZX
   g==;
X-CSE-ConnectionGUID: EhaBkU2+Tk+k1VOn4nUBEw==
X-CSE-MsgGUID: bNY4uY+cQ9S/EMPWKfeMLQ==
X-IronPort-AV: E=McAfee;i="6800,10657,11619"; a="69336185"
X-IronPort-AV: E=Sophos;i="6.20,213,1758610800"; 
   d="scan'208";a="69336185"
X-CSE-ConnectionGUID: 0vCE/3psQMyRUX3wO3xbCA==
X-CSE-MsgGUID: urw9h5M8Q0CbV8xchmpPTQ==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.20,213,1758610800"; 
   d="scan'208";a="222028345"
Date: Thu, 20 Nov 2025 22:56:34 +0800
From: Zhao Liu <zhao1.liu@intel.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, kwolf@redhat.com, hreitz@redhat.com,
	mst@redhat.com, imammedo@redhat.com, anisinha@redhat.com,
	gengdongjiu1@gmail.com, peter.maydell@linaro.org,
	alistair@alistair23.me, edgar.iglesias@gmail.com, npiggin@gmail.com,
	harshpb@linux.ibm.com, palmer@dabbelt.com, liwei1518@gmail.com,
	dbarboza@ventanamicro.com, zhiwei_liu@linux.alibaba.com,
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
	berrange@redhat.com, peterx@redhat.com, farosas@suse.de,
	eblake@redhat.com, vsementsov@yandex-team.ru, eduardo@habkost.net,
	marcel.apfelbaum@gmail.com, philmd@linaro.org,
	wangyanan55@huawei.com, qemu-block@nongnu.org, qemu-arm@nongnu.org,
	qemu-ppc@nongnu.org, qemu-riscv@nongnu.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 4/5] error: error_free(NULL) is safe, drop unnecessary
 conditionals
Message-ID: <aR8sIlSfRc93wTSh@intel.com>
References: <20251119130855.105479-1-armbru@redhat.com>
 <20251119130855.105479-5-armbru@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20251119130855.105479-5-armbru@redhat.com>

On Wed, Nov 19, 2025 at 02:08:54PM +0100, Markus Armbruster wrote:
> Date: Wed, 19 Nov 2025 14:08:54 +0100
> From: Markus Armbruster <armbru@redhat.com>
> Subject: [PATCH 4/5] error: error_free(NULL) is safe, drop unnecessary
>  conditionals
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  hw/acpi/pcihp.c             | 4 +---
>  io/channel-websock.c        | 4 +---
>  io/task.c                   | 4 +---
>  migration/migration.c       | 6 ++----
>  tests/unit/test-smp-parse.c | 5 +----
>  5 files changed, 6 insertions(+), 17 deletions(-)

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 14:35:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 14:35:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167552.1493843 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM5kt-0003V2-0Y; Thu, 20 Nov 2025 14:35:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167552.1493843; Thu, 20 Nov 2025 14:35:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM5ks-0003Uv-TQ; Thu, 20 Nov 2025 14:35:26 +0000
Received: by outflank-mailman (input) for mailman id 1167552;
 Thu, 20 Nov 2025 14:35:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hThX=54=intel.com=zhao1.liu@srs-se1.protection.inumbo.net>)
 id 1vM5kr-0003QT-Pf
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 14:35:25 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.17])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 259a6171-c61e-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 15:35:24 +0100 (CET)
Received: from fmviesa008.fm.intel.com ([10.60.135.148])
 by orvoesa109.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 20 Nov 2025 06:35:22 -0800
Received: from liuzhao-optiplex-7080.sh.intel.com (HELO localhost)
 ([10.239.160.39])
 by fmviesa008.fm.intel.com with ESMTP; 20 Nov 2025 06:35:16 -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: 259a6171-c61e-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1763649324; x=1795185324;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=e/JMkSbWMtHvyUA9DUy8ek+fYt4Hi5AVya5FhO0+re8=;
  b=YC8pgyj/th7O+J1aDfrWPkuzssKJYjB2YNR8OjtM7tQbQHBVekBgLPjv
   eOhaIYIMFITL2Hq8bfa2d3cMYOff9npTHnEohvkL+h7xdwAKH/S1AgjAF
   bJQZU261r1KVg7T3D2QeGpB8ZcrASEwkUInyNXkyBZ4V08Pq4n+NbW6r2
   HUci4jnSFKn7PbdpeQFeTTI4ZYxOs1w0WvCjvyLZdZnsjiUP8o0hIECXm
   QP3Nr9FzDL63kLPw1m8qpUXWKGevKrEf7m5eDChzKOxDpTNPze3GXkEgV
   aoaIW7j//AtNZVPuKltR7SiWQn1hf2N1yYHpqOTacJgVmySaylxEIVM0S
   Q==;
X-CSE-ConnectionGUID: 79667ok/Sz+XyPTUP6EzjQ==
X-CSE-MsgGUID: dXnEgEKKQCGwc27otVPj8w==
X-IronPort-AV: E=McAfee;i="6800,10657,11619"; a="65661137"
X-IronPort-AV: E=Sophos;i="6.20,213,1758610800"; 
   d="scan'208";a="65661137"
X-CSE-ConnectionGUID: EqJuRxrkRa246dIOaQUj+Q==
X-CSE-MsgGUID: nowOQ2DKQKSKtR3ilwu7PQ==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.20,213,1758610800"; 
   d="scan'208";a="191634112"
Date: Thu, 20 Nov 2025 22:57:36 +0800
From: Zhao Liu <zhao1.liu@intel.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, kwolf@redhat.com, hreitz@redhat.com,
	mst@redhat.com, imammedo@redhat.com, anisinha@redhat.com,
	gengdongjiu1@gmail.com, peter.maydell@linaro.org,
	alistair@alistair23.me, edgar.iglesias@gmail.com, npiggin@gmail.com,
	harshpb@linux.ibm.com, palmer@dabbelt.com, liwei1518@gmail.com,
	dbarboza@ventanamicro.com, zhiwei_liu@linux.alibaba.com,
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
	berrange@redhat.com, peterx@redhat.com, farosas@suse.de,
	eblake@redhat.com, vsementsov@yandex-team.ru, eduardo@habkost.net,
	marcel.apfelbaum@gmail.com, philmd@linaro.org,
	wangyanan55@huawei.com, qemu-block@nongnu.org, qemu-arm@nongnu.org,
	qemu-ppc@nongnu.org, qemu-riscv@nongnu.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 5/5] error: Consistently name Error * objects err, and
 not errp
Message-ID: <aR8sYFmEauBGe/Ln@intel.com>
References: <20251119130855.105479-1-armbru@redhat.com>
 <20251119130855.105479-6-armbru@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20251119130855.105479-6-armbru@redhat.com>

On Wed, Nov 19, 2025 at 02:08:55PM +0100, Markus Armbruster wrote:
> Date: Wed, 19 Nov 2025 14:08:55 +0100
> From: Markus Armbruster <armbru@redhat.com>
> Subject: [PATCH 5/5] error: Consistently name Error * objects err, and not
>  errp
> 
> This touches code in xen_enable_tpm() that is obviously wrong.  Since
> I don't know how to fix it properly, I'm adding a FIXME there.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  block/crypto.c          |  8 ++++----
>  hw/acpi/ghes.c          |  8 ++++----
>  hw/ppc/spapr.c          | 16 ++++++++--------
>  hw/xen/xen-pvh-common.c | 13 ++++++++++---
>  nbd/common.c            |  6 +++---
>  5 files changed, 29 insertions(+), 22 deletions(-)

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 15:02:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 15:02:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167568.1493853 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM6BC-0000Vx-1h; Thu, 20 Nov 2025 15:02:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167568.1493853; Thu, 20 Nov 2025 15: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 1vM6BB-0000Vq-VN; Thu, 20 Nov 2025 15:02:37 +0000
Received: by outflank-mailman (input) for mailman id 1167568;
 Thu, 20 Nov 2025 15:02:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WvbT=54=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vM6BA-0000UU-P2
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 15:02:36 +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 ef34f3b2-c621-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 16:02:30 +0100 (CET)
Received: from BN1PR12CA0003.namprd12.prod.outlook.com (2603:10b6:408:e1::8)
 by CY1PR12MB9559.namprd12.prod.outlook.com (2603:10b6:930:fd::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 15:02:26 +0000
Received: from BN2PEPF000055E1.namprd21.prod.outlook.com
 (2603:10b6:408:e1:cafe::84) by BN1PR12CA0003.outlook.office365.com
 (2603:10b6:408:e1::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.11 via Frontend Transport; Thu,
 20 Nov 2025 15:02:21 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN2PEPF000055E1.mail.protection.outlook.com (10.167.245.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.1 via Frontend Transport; Thu, 20 Nov 2025 15:02:24 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 20 Nov
 2025 07:02:24 -0800
Received: from amd-BIRMANPLUS.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; Thu, 20 Nov 2025 07:02:22 -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: ef34f3b2-c621-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pAQdPzKWrQAPkxZv6ezu6OimihO5pfvpz3Qu2ww3vK1f7GDGbH/YDdOBh7rivG3diDsDSJRdiq0eO0yA+rJnIN7Dq2l7JEesu5V9yn5CQ5+/yX6PMN7iYhyR2xGDEEnlu/PeqH1hzEGRphLCoGD3Lb18yEWrS6ExJ+lfr17SqExJf1sTMzwuQKECIjL+gvXXRx2Wzp1eGrY6ZIQpDmT9TPWthoy571CfuHfWrcYihj2mnCQut+qhZo4kaGIkgotD+YcWxDUnjArGOi6swDPGFZck0iTRwnZkHyiFO5UGaBYQIloxSMEDDWXznvy4+A+Y5m2HMVLSr0+N5+5CuftyhA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=f2nLiTpDSSUZfehX+bKGX5VdwvyGuO43/9Ugiz6aIg4=;
 b=kD383Ne5WuQq67VPij5lb+DgLjfTQDpE2VVs6J968fjJf7M0DnDR4UwDeRh/HUGJlHENQYao3LMEOP4NgFktU/lrg05NyRM5oFavWBff0FhGWj4DCmPEcAGbm8Dhg/gbNTi6H5IMRSaA6DrdED+jzKIX1f+7s87tiobdamtLrRB68xr6RsWGkftyOJxTXA5xqu26ISrdJr6JHAhydG4ywdLD4/betKTvvU11mjznX22eopVSLUF4hkuh6TA0Fc3lcYtRkVoW0FjG/C/r+9yKmn4L62UCTN8qBLPLNSzdCnSo7LNox12Jy9lqm8xNTXDC/OTFbx47bHlMmmgfMGJSFg==
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=f2nLiTpDSSUZfehX+bKGX5VdwvyGuO43/9Ugiz6aIg4=;
 b=dW+SGoq+0qXFJh7s+pt00p3b5G1WVRbl9mjSC6+jZaS5k1gDYLX70Xa2fzYVUkKcbtDWUGHO0uoBo2D2p8dI3NShdKj6+OgM4W3+Dm/QoLhG1ErPskOqqjA5XS186L/x9klkmSMXK6gBbbtr2Vss8rfGA0VPRR9EsOfhcsrTRo4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>
CC: Yann Sionneau <yann.sionneau@vates.tech>,
	<xen-devel@lists.xenproject.org>, <linux-kernel@vger.kernel.org>, "Jason
 Andryuk" <jason.andryuk@amd.com>
Subject: [PATCH 0/2] xenbus: Fix PV devices in s3/s2idle
Date: Thu, 20 Nov 2025 10:03:37 -0500
Message-ID: <20251120150337.3887-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000055E1:EE_|CY1PR12MB9559:EE_
X-MS-Office365-Filtering-Correlation-Id: 794202f6-a750-40d3-283a-08de2845d047
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?06gyXChjiveeY1KjN0uM8T8AGiCEPqn+EvC9SwQ+OH4obWuYzd1BOhsNZ36o?=
 =?us-ascii?Q?c4it6aa8anmUM+uW/XtCv12gYZqejfE68rDGwbzYUU/yr2WHVnpgp93erg3O?=
 =?us-ascii?Q?aNYsEXwjm+7ScIcBgfyifa3QM4MAASO4BIRTO3YTkXXx7qbKpNx3vtre1nyh?=
 =?us-ascii?Q?ldHGNSH4GhanWuvBCj4aFw1+Nee/Kwn31T8zbz2bsbISvbSlApWOCldHfT8O?=
 =?us-ascii?Q?y+BVbeMxa6Oc3L9B46vFUZKQ4fgmV/2s+6T7rJLLIsmo4C8CxzqbuB//BibU?=
 =?us-ascii?Q?TUh3FIGj3Mjg1+WRR2hPue6zzzXSJcp7yA+0ptOGD03TydaFg7T4gOoul38a?=
 =?us-ascii?Q?up7PSk9M4uqtYUYsb2MBoJgmZIjJWH3cM/8+kbHYTG7ZuL+JtwuTkAX1E/Lf?=
 =?us-ascii?Q?alUZFnDJErpLkerJlwBGh964Z2I7gE3e55w6ENbdq4ceyt403ouDFU+E+iWe?=
 =?us-ascii?Q?+IOTCR3AlSQzuG9eWN9MrooZ1f6LWar2m1CucRJLNqwLWgfrk7LyGHBvsHf4?=
 =?us-ascii?Q?NOvEyTLUyBfztT8Jer5kUdj1xf7d9XEg8R1mN/lDEiSDYw6mhKKrVFDTfA+g?=
 =?us-ascii?Q?hcV7O7KfAAW6/UtKrTvLkZEIOt71yFqzdY8Yq4pMtshpbbqfS3zQ9Gftl5kp?=
 =?us-ascii?Q?wqmM7HuslZNS8PWJdJOnUWkg+EuEmhHgXlRDHTWawo0JHWVLeviYlq7cEGup?=
 =?us-ascii?Q?pQUtbnpHZlGw5w8Ih5Db/mnDzpGG4SzegMj5zfcs1gG++Ed3VrZBUt0uFi+j?=
 =?us-ascii?Q?+oA0V3IRA+/vhyu33OY6V1EmOs6FAGHPIwq9DZVezkLbACZD+aZ19CZ8Ss8d?=
 =?us-ascii?Q?S2kU19FMtGdwU6ArNecQ7q+PysZQ2qDBpzrVMI4zySoGs3Ei2cEPSOzoNK4S?=
 =?us-ascii?Q?kr8/3HC7+xeu69aLqcRai8r3im3613vLdKlnxhOeTPvAI6hCyVjIYeOZdaFz?=
 =?us-ascii?Q?Cubyiac78uOnIxY6hZhL9qtloqGq11lOoRHTnKlctFbwlDcb7NzG2/2Kwtxd?=
 =?us-ascii?Q?lz7sjTWixDKkxntGSeSlwoRab9Nqq54Bqk5JwE6pANPL6fxqk2aEnWtGP6QC?=
 =?us-ascii?Q?3Se4gvPinx7kQOSt5l3lsBPqW3rADqIu5SDPSuk5Xtul7ZVSRNQ6ylJ25ubF?=
 =?us-ascii?Q?w2QxuTp55sSWxS4uWUQoeuZcPUdID/fwxEfCtxKhYiyWK9IAys/NnlRoojHa?=
 =?us-ascii?Q?pIt306rlRJlddKBlvI3MsOqlX5/FQlpLHzUqdL83SA+JW2h5CXb5JzrOgiwB?=
 =?us-ascii?Q?6Rnhb9u93RktwTB9XbN+xCIeYgGvootcUi6uy7PtFwDqSudAQHs2ZjyAtCjl?=
 =?us-ascii?Q?Y3EPFG9jJJSV7mRmUrXn4YexkI3+UCUVNFtaEQFU2Dm8tB86+LAOa+a7kyP7?=
 =?us-ascii?Q?cWanngMk51a34tZyASE/Gvsz6//zlgyKabViArhtSsu3EkUuYajM4/oiBise?=
 =?us-ascii?Q?xRd6HleR8qNEWuB2M/OQLoqHWK9y85+ho+8mQODBJ48TmxziyVFNe+uWP8yS?=
 =?us-ascii?Q?fVNCfoeqqDUdff5IGLZgUJ70FjfcnRfHn0sujyjeim58YQw/coWOOvuvczHw?=
 =?us-ascii?Q?Ch3XHFPHEvkTaWswkvM=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)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 15:02:24.4944
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 794202f6-a750-40d3-283a-08de2845d047
X-MS-Exchange-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:
	BN2PEPF000055E1.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB9559

The first patch fixes the issue, and the second renames some items to
match.

This was tested with s2idle in PVH and HVM guests.  Also xl save/restore
of a PVH guest.

Jason Andryuk (2):
  xenbus: Use .freeze/.thaw to handle xenbus devices
  xenbus: Rename helpers to freeze/thaw/restore

 drivers/xen/xenbus/xenbus.h                |  6 +++---
 drivers/xen/xenbus/xenbus_probe.c          | 22 +++++++++++-----------
 drivers/xen/xenbus/xenbus_probe_frontend.c | 18 ++++++++----------
 3 files changed, 22 insertions(+), 24 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 15:05:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 15:05:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167579.1493863 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM6EC-0001Pu-EA; Thu, 20 Nov 2025 15:05:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167579.1493863; Thu, 20 Nov 2025 15:05:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM6EC-0001Pn-Ba; Thu, 20 Nov 2025 15:05:44 +0000
Received: by outflank-mailman (input) for mailman id 1167579;
 Thu, 20 Nov 2025 15: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=nz19=54=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vM6EB-0001Ph-6F
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 15:05:43 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 610f3683-c622-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 16:05:40 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-64175dfc338so1735251a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 07:05: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
 4fb4d7f45d1cf-6453642d32csm2276106a12.21.2025.11.20.07.05.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 07:05: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: 610f3683-c622-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763651140; x=1764255940; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ByylHfQnPZvGEQHY3X/YavdxzE54LB3esZlhDtkxop8=;
        b=T2pe0v33shn0/0nKPOmoPc4o8Yi0Xlm7pyxjz8yi85coS1BN35CM/XgeYVf7MHG/tf
         YsMz74zOppw0FFxgUI7t2d1TgCfSB8xMDeRHbgnuPU8Iyk011lJtoGuQvgtyv2AGxPmJ
         2va8Cop2lkQs8YGLoIhd4hL68BUJHGps18TqeBX9S0coZOEZvJ2TKELWLNToXL/BX+hO
         /7cOUczD6MnBPOS2YrE/UDg/gmF++/wWDRwDD9iqhFb7KdTeT1TG4fUInno/V1vbDuWK
         lb/e85HXqjOdyDNGHqfrAPEcdouhqFN/duyQPfHdIiswltu/AEeI+5t29UqNeBzJ7vR0
         Mtzg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763651140; x=1764255940;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ByylHfQnPZvGEQHY3X/YavdxzE54LB3esZlhDtkxop8=;
        b=lHSdMKOk9z+WrqDh7cRQU+luGtSCnaY+HXfq6BzrHrFv+MDHVGcy6oYn/gksR8zjSh
         Uu4WQPoiOXDWsEytpa7sSXP9FGBVB1cQe+mLn/bUqXDbIcarMhGe0eKwkDekuF7H9yze
         U0BUG22LeFbbPeqgUIqhcCqMxalyqoS+K7JlsMr+mL6GzPddX6X4Rbovz/ZAyA3mntsU
         kGguv2EXD9Ax1Otj9+A7VzuFwY0B5bYJt2mND3JtmlSGKVnJMnZAdfTWnLx9hf+UweKo
         eeuNnP6WknQSlpEYEUFOE0hUUiJnkszuEgi9AAh1ifcBr2Q7VE2nhACXyNS91y9f2UgY
         uW+A==
X-Forwarded-Encrypted: i=1; AJvYcCXYb4C6/EEUPLk4nKfolzkI6a76ALgWHTM7keXvmjqPZg225gSHENNhs1hXbueO3kltddrYomrwEis=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxl29BUjCH6/t/WZaKym7ksuq3c1rlc7Jw1+6WrAl6xCe+qw7WK
	cYM9XbGja3J907rXDF+l3HKk7sl+yVdpshggvvn+9UxGOAry7cKUMBegryB2+iWyBQ==
X-Gm-Gg: ASbGncvceRLldwas94G/xnyfuqOBC4QlXgfmI/4QzGpG9dB3u5f4JdMNf6n5Qp8Q5kK
	TeIT7o757CitF53sfDzAYtY3AyHbVhzG1592pli6RM4OjE2AkP9fjfItC1eFMPnUmhzB9D8MKg4
	l5rQfZL9yH93otwqCHP7Lh3a9BWzW9x1gjEjfATjz9fHCcZcJwTIJiLwkARVzf0tjt32QwyO4TX
	4APXdE8QdMlcq7XqArLyPl7vf/Edqled6Uze+fG/M7yU4cWS50fxh8ZpR04UTbzbDQI/QGqq54G
	XcYGGlhZA7lvvOFhR/mBNGbDtu9E7fRqjafAd21cNBABdUAcrepb5RNn9FgvD6szjj3m6jCf4Gl
	oEmfgWWdW4K6U3s+UuvORecXilS6Gje6+T4mMnKR+PmvOML98Ka+xvQ4hGiOI+joZvsKb0BPPhE
	GMdIAqOFy9P57fOPdjF18ezxfiMj5zQZlBI8S370RmTn6o1OQhG32VhG53zFjQ7brPdtEYqp4Qv
	IyAa1s/odtFHA==
X-Google-Smtp-Source: AGHT+IFGGYVhdkFxLngxTFOOgzUgeP1CmzYdEg28D8M4laYXpXe2rnGKV9nn1Sd/iTAlLoAI4xIeyg==
X-Received: by 2002:a05:6402:90a:b0:640:c640:98c5 with SMTP id 4fb4d7f45d1cf-645388e3dbcmr2491000a12.34.1763651140179;
        Thu, 20 Nov 2025 07:05:40 -0800 (PST)
Message-ID: <126dc8bb-4f89-4a40-b39a-1b09d78b3eac@suse.com>
Date: Thu, 20 Nov 2025 16:05:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 06/12] x86/i8259: redo workaround for AMD spurious PIC
 interrupts
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120095826.25782-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: <20251120095826.25782-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.11.2025 10:58, Roger Pau Monne wrote:
> --- a/xen/arch/x86/i8259.c
> +++ b/xen/arch/x86/i8259.c
> @@ -407,21 +407,14 @@ void __init init_IRQ(void)
>          per_cpu(vector_irq, cpu)[LEGACY_VECTOR(irq)] = irq;
>  
>          /*
> -         * The interrupt affinity logic never targets interrupts to offline
> -         * CPUs, hence it's safe to use cpumask_all here.
> -         *
>           * Legacy PIC interrupts are only targeted to CPU0, but depending on
>           * the platform they can be distributed to any online CPU in hardware.
> -         * Note this behavior has only been observed on AMD hardware. In order
> -         * to cope install all active legacy vectors on all CPUs.
> -         *
> -         * IO-APIC will change the destination mask if/when taking ownership of
> -         * the interrupt.
> +         * Note this behavior has only been observed on AMD hardware. Set the
> +         * target CPU as expected here, and cope with the possibly spurious
> +         * interrupts in do_IRQ().  This behavior has only been observed
> +         * during AP bringup.
>           */
> -        cpumask_copy(desc->arch.cpu_mask,
> -                     (boot_cpu_data.x86_vendor &
> -                      (X86_VENDOR_AMD | X86_VENDOR_HYGON) ? &cpumask_all
> -                                                          : cpumask_of(cpu)));
> +        cpumask_copy(desc->arch.cpu_mask, cpumask_of(cpu));
>          desc->arch.vector = LEGACY_VECTOR(irq);
>      }

Doesn't this collide with what setup_vector_irq() does (see also patch 04)? If
you don't set all bits here, not all CPUs will have the vector_irq[] slot set
correctly for do_IRQ() to actually be able to associate the vector with the
right IRQ.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 15:38:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 15:38:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167602.1493872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM6jk-0007Bq-TI; Thu, 20 Nov 2025 15:38:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167602.1493872; Thu, 20 Nov 2025 15:38:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM6jk-0007Bj-Qi; Thu, 20 Nov 2025 15:38:20 +0000
Received: by outflank-mailman (input) for mailman id 1167602;
 Thu, 20 Nov 2025 15:38: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=0fq0=54=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vM6ji-0007Bd-HC
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 15:38:18 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eee55119-c626-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 16:38:16 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-b7636c96b9aso146553966b.2
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 07:38:17 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654fd4f4esm230389166b.45.2025.11.20.07.38.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 07:38: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: eee55119-c626-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763653096; x=1764257896; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/EWfI5KFtIxLzK3kuTx1lmLJOL9K/s6Qp2MrSWGTYdE=;
        b=A7ehFuqITW2wrwHmguAziEJFyQX8i2qMJxO8/HEPoG6sa1GMIEOocJff/6fcez6NGN
         V566WMYEOsoC14SCOQR+BYTgtTof9SVl5bqtXEbltzJLWa18YLC31l+5puGMuFth0m0s
         6Vu3dmJWBBfHFsWIEY5CaC6coWyS9U07dSfvSAg1Az9j4i6ljErVmiYmOEs/wvzrn/qW
         apBrj88wJGzCAMYMYU321EMh3FJ8c3WBLXAwi8jHy+UjyoKbz5Mx/yf5lR47amrpxVgG
         rD/kjRoGps9Lk9oFMZ+RRpVV2Axj4tkOr8cYmHsnGtPb+BtVRPLkkqUKghWw1I462DgD
         35bw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763653096; x=1764257896;
        h=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=/EWfI5KFtIxLzK3kuTx1lmLJOL9K/s6Qp2MrSWGTYdE=;
        b=avhUoAoSC+gtk9n1cWuHnXFEcjQ/dsdNVEJKxe0q3Fx3kR1S720KY8JudCNB6Vr2XU
         ZYAGY1xnh+50a385aJEZw4h74krynun0C5LR3VU6jOhqEQlZm+bj+Rm7J9IUZ8+Q97UU
         IaVt0zdz1iXQmEsxopkEDJtlXFqDjPuXvYRu2fhZ+WEWqpBB0ZmyhHHoZDaZBVReMF1w
         eSMFAyl/j0lBaSaeJtdyJzfvYcq/Vb/v0ToDFXbJVjfeydiRpJFoGQanZje2Okp69D0q
         +oo9xGhiLVMtfY+3GNbRKSONdHe4C6YuUEG/83yqa29R3GaWyn57AaBCNA+p4r+f4KYr
         unxw==
X-Forwarded-Encrypted: i=1; AJvYcCV2wsffq3YCtdEyiq+F8fmh8inCw7pD2VCMmXuSAAojpzEt80SETMLDnZleTRPeuPt/yJF41nIf270=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw7xp5pMUaiwrX6XDSGzR3G4h4FWqZrX7ZVgD4f2ddnLYqIMDuA
	Sh0/MCLkUj6DOvambl1MVSaud5lL4x6m3YyTrePq5zDH9jsFHX/yQAG4
X-Gm-Gg: ASbGncsBZBpgjBtxx4Ub959Z8Hh0O4pnw7G/hutwMII3qHKaSMqSpLzx8nb46va0OvO
	GysE3CHa/OpzWO2h68VsMZ153gPVPHI3Ber6vvQeSgVe3NFys3K99Gb4n3HelZJVf88dKBhqKpc
	GhfX2IX5W6SM0hTtQPVg69pXERn8DWtRDx6E/yKjSY0/4D6vfdh41ZjZ07+j620LWxYgcHduSWZ
	20AznTgvob9n+AFHJgSrzavC1biuvIznvtVCECt8fjRURpPsxZuuVeQuKfW+Ut1Tpki7AxCr352
	n+Ss4rb3b11K+pG/bMSXtAG437Byu44Ko68mieTtUN0lWOMthFWs+swwHh7F36wm+hGUYJuNjHt
	iwKXeg+PmxnW4M1P9/9U5PoQ5U7MIrpeD3uvncnv0uR0egSkxQJas8nkFmNOR4GfEIaPbk48k1C
	c5eplbSau6nYqJ8FSOqA4/pZwJXAxNzdipPxabQVFU9ZfRLAB63YBJZSuWCts7c3kZFMM5poI=
X-Google-Smtp-Source: AGHT+IHhJADlTWsNdIhvCH9iJ8mE/nDpuVC7kocY3bEn9WdwWF1j5j2u7nH3synRXEIFHrQ1UHujkw==
X-Received: by 2002:a17:907:3d9e:b0:b73:52c7:fac7 with SMTP id a640c23a62f3a-b76554a67aamr397804666b.57.1763653096072;
        Thu, 20 Nov 2025 07:38:16 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------Vj02mSHy997N6no8B2pnb0vh"
Message-ID: <e2cbb6b9-ab07-4aad-8eb8-f4dd859ac6f6@gmail.com>
Date: Thu, 20 Nov 2025 16:38:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 18/18] xen/riscv: introduce metadata table to store
 P2M type
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <d291d2efe7dcc6ddd3d16677a81c57d755c7ada2.1760974017.git.oleksii.kurochko@gmail.com>
 <6a5a9f4e-1f0e-453f-b1d1-d0e2acf97e2a@suse.com>
 <5d4ec4d9-b4c1-4365-a343-f42b390da165@gmail.com>
 <6f431394-5c08-4974-85ae-4b38f1975289@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <6f431394-5c08-4974-85ae-4b38f1975289@suse.com>

This is a multi-part message in MIME format.
--------------Vj02mSHy997N6no8B2pnb0vh
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/18/25 7:58 AM, Jan Beulich wrote:
> On 17.11.2025 20:51, Oleksii Kurochko wrote:
>> On 11/12/25 12:49 PM, Jan Beulich wrote:
>>> On 20.10.2025 17:58, Oleksii Kurochko wrote:
>>>> +Â Â Â  if ( *md_pg )
>>>> +Â Â Â Â Â Â Â  metadata = __map_domain_page(*md_pg);
>>>> +
>>>> +Â Â Â  if ( t < p2m_first_external )
>>>> +Â Â Â  {
>>>>  Â Â Â Â Â Â Â Â Â  pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>>>>  Â  -Â Â Â  return rc;
>>>> +Â Â Â Â Â Â Â  if ( metadata )
>>>> +Â Â Â Â Â Â Â Â Â Â Â  metadata[ctx->index].pte = p2m_invalid;
>>> Shouldn't this be accompanied with a BUILD_BUG_ON(p2m_invalid), as otherwise
>>> p2m_alloc_page()'s clearing of the page won't have the intended effect?
>> I think that, at least, at the moment we are always explicitly set p2m type and
>> do not rely on that by default 0==p2m_invalid.
> You don't, and ...
>
>> Just to be safe, I will add after "if ( metadata )" suggested
>> BUILD_BUG_ON(p2m_invalid):
>>  Â Â Â Â Â Â Â  if ( metadata )
>>  Â Â Â Â Â Â Â Â Â Â Â  metadata[ctx->index].type = p2m_invalid;
>>  Â Â Â Â Â Â Â  Â Â Â Â Â Â Â  /*
>>  Â Â Â Â Â Â Â Â  * metadata.type is expected to be p2m_invalid (0) after the page is
>>  Â Â Â Â Â Â Â Â  * allocated and zero-initialized in p2m_alloc_page().
>>  Â Â Â Â Â Â Â Â  */
>>  Â Â Â Â Â Â Â  BUILD_BUG_ON(p2m_invalid);
>> ...
> ... this leaves me with the impression that you didn't read my reply correctly.
> p2m_alloc_page() clear the page, thus _implicitly_ setting all entries to
> p2m_invalid. That's where the BUILD_BUG_ON() would want to go (the call site,
> ftaod).

I think I still donâ€™t fully understand what the issue would be if|p2m_invalid| were
ever equal to 1 instead of 0 in the context of a metadata page.

Yes, if|p2m_invalid| were 1, there would be a problem if someone tried to read this
metadata pagebefore it was assigned any type. They would find a value of 0, which
corresponds to a valid type rather than to|p2m_invalid|, as one might expect.
However, Iâ€™m not sure I currently see a scenario in which the metadata page would
be read before being initialized.
But just to be safe when such case will occur I am okay with putting
BUILD_BUG_ON(p2m_invalid) before p2m_alloc_page() in p2m_set_type() function.


>
>>>> +Â Â Â  }
>>>> +Â Â Â  else
>>>> +Â Â Â  {
>>>> +Â Â Â Â Â Â Â  pte->pte |= MASK_INSR(p2m_ext_storage, P2M_TYPE_PTE_BITS_MASK);
>>>> +
>>>> +Â Â Â Â Â Â Â  metadata[ctx->index].pte = t;
>>> If you set t to p2m_ext_storage here, the pte->pte updating could be moved ...
>> 't' shouldn't be passed as 'p2m_ext_storage'.
> Of course not. I said "set", not "pass". I suggested to set t to p2m_ext_storage
> right after the assignment above. I notice though that I missed ...

Now, I see then ...

>
>> For example, in this case we will have that in metadata page we will have type
>> equal to p2m_ext_storage and then in pte->pte will have the type set to
>> p2m_ext_storage, and the we end that we don't have a real type stored somewhere.
>> Even more, metadata.pte shouldn't be used to store p2m_ext_storage, only
>> p2m_invalid and types mentioned in enum p2m_t after p2m_ext_storage.
>>
>>>> +Â Â Â  }
>>> ... here, covering both cases. Overally this may then be easier as
>>>
>>>  Â Â Â Â  if ( t >= p2m_first_external )
>>>  Â Â Â Â Â Â Â Â  metadata[ctx->index].pte = t;
> ... the respective line (and the figure braces which are the needed) here:
>
>          t = p2m_ext_storage;

...Â  (what suggested above) will work.

>
>>>  Â Â Â Â  else if ( metadata )
>>>  Â Â Â Â Â Â Â Â  metadata[ctx->index].pte = p2m_invalid;
>>>
>>>  Â Â Â Â  pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>>>
>>> Then raising the question whether it couldn't still be the real type that's
>>> stored in metadata[] even for t < p2m_first_external. That woiuld further
>>> reduce conditionals.
>> It would be nice, but I think that at the moment we canâ€™t do that. As I explained
>> above, 't' should not normally be passed as p2m_ext_storage.
> Of course not, but how's that relevant to storing the _real_ type in the
> metadata page even when it's one which can also can be stored in the PTE?
> As said, for a frequently used path it may help to reduce the number of
> conditionals here.

IIUC, you are asking whether, if|pte->pte| stores a type|< p2m_ext_storage|,
it would still be possible for|metadata[].pte| to contain anyreal type?
If yes, then the answer is that it could be done, because in the|p2m_get_type() |function the value stored in|pte->pte| is checked first. If it isn't|p2m_ext_storage|,
then|metadata[].pte| will not be checked at all. So technically, it could contain
whatever we want in case when pte.pte's type != p2m_ext_storage.

But will it really reduce an amount of conditions? It seems like we still need one
condition to check of metadata is mapped and one condition to set 't' to p2m_ext_storage:
   if ( metadata )
        metadata[ctx->index].pte = t;
   
   if ( t >= p2m_first_external )
      t = p2m_ext_storage;

   pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);

We can do:
   if ( metadata )
   {
        metadata[ctx->index].pte = t;
        
        if ( t >= p2m_first_external )
             t = p2m_ext_storage;
   }

   pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
It will reduce an amount of conditions if metadata wasn't used/allocated, but I think you
have a different idea, don't you?


>
>>>> +static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
>>>> +
>>>> +/*
>>>> + * Free page table's page and metadata page linked to page table's page.
>>>> + */
>>>> +static void p2m_free_table(struct p2m_domain *p2m, struct page_info *tbl_pg)
>>>> +{
>>>> +Â Â Â  if ( tbl_pg->v.md.pg )
>>>> +Â Â Â Â Â Â Â  p2m_free_page(p2m, tbl_pg->v.md.pg);
>>> To play safe, maybe better also clear tbl_pg->v.md.pg?
>> I thought it would be enough to clear it during allocation in p2m_alloc_page(),
>> since I'm not sure it is critical if md.pg data were somehow leaked and read.
>> But to be safer, we can add this here:
>>  Â Â  clear_and_clean_page(tbl_pg->v.md.pg, p2m->clean_dcache);
> I didn't say clear what tbl_pg->v.md.pg points to, though. I suggested to clear
> the struct field itself.

Won't be enough just tbl_pg->v.md.pg = NULL; ?

Thanks!

~ Oleksii

--------------Vj02mSHy997N6no8B2pnb0vh
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/18/25 7:58 AM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:6f431394-5c08-4974-85ae-4b38f1975289@suse.com">
      <pre wrap="" class="moz-quote-pre">On 17.11.2025 20:51, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 11/12/25 12:49 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 20.10.2025 17:58, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+Â Â Â  if ( *md_pg )
+Â Â Â Â Â Â Â  metadata = __map_domain_page(*md_pg);
+
+Â Â Â  if ( t &lt; p2m_first_external )
+Â Â Â  {
Â Â Â Â Â Â Â Â Â  pte-&gt;pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
Â  -Â Â Â  return rc;
+Â Â Â Â Â Â Â  if ( metadata )
+Â Â Â Â Â Â Â Â Â Â Â  metadata[ctx-&gt;index].pte = p2m_invalid;
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Shouldn't this be accompanied with a BUILD_BUG_ON(p2m_invalid), as otherwise
p2m_alloc_page()'s clearing of the page won't have the intended effect?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
I think that, at least, at the moment we are always explicitly set p2m type and
do not rely on that by default 0==p2m_invalid.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
You don't, and ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Just to be safe, I will add after "if ( metadata )" suggested
BUILD_BUG_ON(p2m_invalid):
Â Â Â Â Â Â Â  if ( metadata )
Â Â Â Â Â Â Â Â Â Â Â  metadata[ctx-&gt;index].type = p2m_invalid;
Â Â Â Â Â Â Â  Â Â Â Â Â Â Â  /*
Â Â Â Â Â Â Â Â  * metadata.type is expected to be p2m_invalid (0) after the page is
Â Â Â Â Â Â Â Â  * allocated and zero-initialized in p2m_alloc_page().
Â Â Â Â Â Â Â Â  */
Â Â Â Â Â Â Â  BUILD_BUG_ON(p2m_invalid);
...
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... this leaves me with the impression that you didn't read my reply correctly.
p2m_alloc_page() clear the page, thus _implicitly_ setting all entries to
p2m_invalid. That's where the BUILD_BUG_ON() would want to go (the call site,
ftaod).</pre>
    </blockquote>
    <pre data-start="60" data-end="208">I think I still donâ€™t fully understand what the issue would be if <code
    data-start="126" data-end="139">p2m_invalid</code> were
ever equal to 1 instead of 0 in the context of a metadata page.</pre>
    <pre data-start="210" data-end="574" data-is-last-node=""
    data-is-only-node="">Yes, if <code data-start="218" data-end="231">p2m_invalid</code> were 1, there would be a problem if someone tried to read this
metadata page <span data-start="309" data-end="317">before</span> it was assigned any type. They would find a value of 0, which
corresponds to a valid type rather than to <code data-start="423"
    data-end="436">p2m_invalid</code>, as one might expect.
However, Iâ€™m not sure I currently see a scenario in which the metadata page would
be read before being initialized.
But just to be safe when such case will occur I am okay with putting
BUILD_BUG_ON(p2m_invalid) before p2m_alloc_page() in p2m_set_type() function.</pre>
    <pre></pre>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:6f431394-5c08-4974-85ae-4b38f1975289@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+Â Â Â  }
+Â Â Â  else
+Â Â Â  {
+Â Â Â Â Â Â Â  pte-&gt;pte |= MASK_INSR(p2m_ext_storage, P2M_TYPE_PTE_BITS_MASK);
+
+Â Â Â Â Â Â Â  metadata[ctx-&gt;index].pte = t;
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">If you set t to p2m_ext_storage here, the pte-&gt;pte updating could be moved ...
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
't' shouldn't be passed as 'p2m_ext_storage'.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Of course not. I said "set", not "pass". I suggested to set t to p2m_ext_storage
right after the assignment above. I notice though that I missed ...</pre>
    </blockquote>
    <pre>Now, I see then ...</pre>
    <blockquote type="cite"
      cite="mid:6f431394-5c08-4974-85ae-4b38f1975289@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">For example, in this case we will have that in metadata page we will have type
equal to p2m_ext_storage and then in pte-&gt;pte will have the type set to
p2m_ext_storage, and the we end that we don't have a real type stored somewhere.
Even more, metadata.pte shouldn't be used to store p2m_ext_storage, only
p2m_invalid and types mentioned in enum p2m_t after p2m_ext_storage.

</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+Â Â Â  }
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">... here, covering both cases. Overally this may then be easier as

Â Â Â Â  if ( t &gt;= p2m_first_external )
Â Â Â Â Â Â Â Â  metadata[ctx-&gt;index].pte = t;
</pre>
        </blockquote>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... the respective line (and the figure braces which are the needed) here:

        t = p2m_ext_storage;</pre>
    </blockquote>
    <pre>...Â  (what suggested above) will work.

</pre>
    <blockquote type="cite"
      cite="mid:6f431394-5c08-4974-85ae-4b38f1975289@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">Â Â Â Â  else if ( metadata )
Â Â Â Â Â Â Â Â  metadata[ctx-&gt;index].pte = p2m_invalid;

Â Â Â Â  pte-&gt;pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);

Then raising the question whether it couldn't still be the real type that's
stored in metadata[] even for t &lt; p2m_first_external. That woiuld further
reduce conditionals.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
It would be nice, but I think that at the moment we canâ€™t do that. As I explained
above, 't' should not normally be passed as p2m_ext_storage.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Of course not, but how's that relevant to storing the _real_ type in the
metadata page even when it's one which can also can be stored in the PTE?
As said, for a frequently used path it may help to reduce the number of
conditionals here.</pre>
    </blockquote>
    <pre data-start="60" data-end="216">IIUC, you are asking whether, if <code
    data-start="93" data-end="103">pte-&gt;pte</code> stores a type <code
    data-start="118" data-end="137">&lt; p2m_ext_storage</code>,
it would still be possible for <code data-start="172" data-end="188">metadata[].pte</code> to contain any <span
    data-start="204" data-end="210" data-is-only-node="">real</span> type?
If yes, then the answer is that it could be done, because in the <code
    data-start="283" data-end="299">p2m_get_type()
</code>function the value stored in <code data-start="331"
    data-end="341">pte-&gt;pte</code> is checked first. If it isn't <code
    data-start="374" data-end="391" data-is-only-node="">p2m_ext_storage</code>,
then <code data-start="398" data-end="414">metadata[].pte</code> will not be checked at all. So technically, it could contain
whatever we want in case when pte.pte's type != p2m_ext_storage.</pre>
    <pre>But will it really reduce an amount of conditions? It seems like we still need one
condition to check of metadata is mapped and one condition to set 't' to p2m_ext_storage:
  if ( metadata )
       metadata[ctx-&gt;index].pte = t;
  
  if ( t &gt;= p2m_first_external )
     t = p2m_ext_storage;

  pte-&gt;pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);

We can do:
  if ( metadata )
  {
       metadata[ctx-&gt;index].pte = t;
       
       if ( t &gt;= p2m_first_external )
            t = p2m_ext_storage;
  }

  pte-&gt;pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
It will reduce an amount of conditions if metadata wasn't used/allocated, but I think you
have a different idea, don't you?


</pre>
    <blockquote type="cite"
      cite="mid:6f431394-5c08-4974-85ae-4b38f1975289@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
+
+/*
+ * Free page table's page and metadata page linked to page table's page.
+ */
+static void p2m_free_table(struct p2m_domain *p2m, struct page_info *tbl_pg)
+{
+Â Â Â  if ( tbl_pg-&gt;v.md.pg )
+Â Â Â Â Â Â Â  p2m_free_page(p2m, tbl_pg-&gt;v.md.pg);
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">To play safe, maybe better also clear tbl_pg-&gt;v.md.pg?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
I thought it would be enough to clear it during allocation in p2m_alloc_page(),
since I'm not sure it is critical if md.pg data were somehow leaked and read.
But to be safer, we can add this here:
Â Â  clear_and_clean_page(tbl_pg-&gt;v.md.pg, p2m-&gt;clean_dcache);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I didn't say clear what tbl_pg-&gt;v.md.pg points to, though. I suggested to clear
the struct field itself.</pre>
    </blockquote>
    <pre>Won't be enough just tbl_pg-&gt;v.md.pg = NULL; ?

Thanks!

~ Oleksii</pre>
  </body>
</html>

--------------Vj02mSHy997N6no8B2pnb0vh--


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 15:47:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 15:47:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167616.1493887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM6sX-0000yN-QA; Thu, 20 Nov 2025 15:47:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167616.1493887; Thu, 20 Nov 2025 15: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 1vM6sX-0000yG-N5; Thu, 20 Nov 2025 15:47:25 +0000
Received: by outflank-mailman (input) for mailman id 1167616;
 Thu, 20 Nov 2025 15:47: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=nz19=54=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vM6sX-0000yA-3n
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 15:47:25 +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 326ed53b-c628-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 16:47:19 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-64166a57f3bso1624724a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 07:47: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
 a640c23a62f3a-b7654d56a70sm234763166b.22.2025.11.20.07.47.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 07:47: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: 326ed53b-c628-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763653639; x=1764258439; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=scMljv+rHG3lTXnc01UIm/PkoYUr6nYZyfEEPjK3hBE=;
        b=GMOT/C3pFx0hlLgFdN7oEFQQW05kt4T7kXFBgp4n1dQq+mSZ1IoIvmwl6/z3PMpwcq
         fwhCGxTpkLgv8k8qEeYb2Clg0mJ4ZqEZZhbIg9RUrS0YaRs6378SVsJZA/UxRyuHIj9I
         EAfhE7fQlfu+hgR3XiTDJJOFanhD60nbsUMJESABpN6hUXepnQ2w1mY97qKv2ZCY/WrH
         3dtgeOazfY87LF+PkM5MELYPaKvGJu9383pFMGubLsr9Ek6DsdLegYMugaZ4VCV4ofb6
         g5De8i7TDx/IhR1WpFZKEVrj2sX9D+v5pxA+k9DbQeZ9aY0hp+C+xFC9Na0CGD3Opi4C
         4dPQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763653639; x=1764258439;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=scMljv+rHG3lTXnc01UIm/PkoYUr6nYZyfEEPjK3hBE=;
        b=q7ToyFApvrNz2hPUJspphFXpQGNY+yht5tcIK4VO199x0F1jxFHjduD77TwyXbrsEO
         /CDL9XnJlTCpkBlpX+UEZ0a6TEORIZItFUgr242kkQ7/Smr+NKnJWegf9kOjY9DVtnwE
         1YgLUFgKlzo8cY9eBOrvFQKyRG4OC6lzRcIb/c/I2yUvfYCFVFngpwLBe03O1oWl2ngv
         NOTJhsxR8QObGnt06/bm5zdQ8SfRpvTjEjnpRREH7C7jn58FhhB7BYGwLNZlqQdvuY2b
         V0oX6xwu+SE+xBa6aExNn53T4MOldPiVPsqTtY2FZoniVc9qig+YsoGPsPcBBMXuJcWR
         PU7A==
X-Forwarded-Encrypted: i=1; AJvYcCUIufKikIV9nI3olGwnVUHTxPRACmrX94dIPlCUIVrb6pwb9e881XREmC1dGc6EZlFwRznOoRyp5mI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyoviLN+ptXrhXOh+EJvyfot7wiJvLgVIGEoCnprEpHn3hNVyy7
	kdtuAul9YhTkoeaCT/zcBruocs5mdEp8SnqW5tIsFr3D/Ay4UyRcTl46WhcwqC4vMQ==
X-Gm-Gg: ASbGncteAIXlxtqJNSJnmkqKd8gZfE0S1P0hVe8+qdoOsZcBk3tk7exBfX8RB+ZkGaU
	kkvy2DJyUxESA8WttetPYbV7mNUxe6ChWGQy5gvAjEkCz6eVrmE+jJeKYKZ5RK0fny3n6wAibi5
	ozncPioD3vtSJPKcCEtHTOnMcHwHWigfBHr+mxZ3e87bJMM8utv3s5Z22wMGi3L4HSBlYsKXwpU
	1YFm0rz7GNGxuBSBV3h3SWrmIFI1TW8mP2o2nd8uVWf4uUTRmJoZS2sn+q82qgL8g1VXi9eFRDv
	1dpWHoqRkgTerTvhKkQktxaaXg8o5FgtzSeA50D8Hsw0KXdyuwQTRfbGXoD0C+M2DRh1KPoxITE
	PGr5w3QCryfEdwfvV4ACnSIAOQWMHbarleLT3mwThiACpVj+LL9b202Bold5O9lHlLjUrCm29Nn
	D0O+OJDpyLr1tqgW5ihqgLH3rt4g5WrBo8gyJRnJNDK7jsI+VR7sB2BOqlpoALebREj97OopRKJ
	xA=
X-Google-Smtp-Source: AGHT+IFu6xsPQxnnmYbw6DdWh3zv8tISqpRT8LkP0xsJafPYd9Z9SyItorNxEgoovdUAn3RxGJSHYg==
X-Received: by 2002:a17:907:7f08:b0:b45:60ad:daf9 with SMTP id a640c23a62f3a-b7654d8d1f2mr391513666b.3.1763653638527;
        Thu, 20 Nov 2025 07:47:18 -0800 (PST)
Message-ID: <b859d5c1-b602-4e61-b667-2701e0f31434@suse.com>
Date: Thu, 20 Nov 2025 16:47:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 18/18] xen/riscv: introduce metadata table to store
 P2M type
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <d291d2efe7dcc6ddd3d16677a81c57d755c7ada2.1760974017.git.oleksii.kurochko@gmail.com>
 <6a5a9f4e-1f0e-453f-b1d1-d0e2acf97e2a@suse.com>
 <5d4ec4d9-b4c1-4365-a343-f42b390da165@gmail.com>
 <6f431394-5c08-4974-85ae-4b38f1975289@suse.com>
 <e2cbb6b9-ab07-4aad-8eb8-f4dd859ac6f6@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: <e2cbb6b9-ab07-4aad-8eb8-f4dd859ac6f6@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.11.2025 16:38, Oleksii Kurochko wrote:
> On 11/18/25 7:58 AM, Jan Beulich wrote:
>> On 17.11.2025 20:51, Oleksii Kurochko wrote:
>>> On 11/12/25 12:49 PM, Jan Beulich wrote:
>>>> On 20.10.2025 17:58, Oleksii Kurochko wrote:
>>>>> +Â Â Â  if ( *md_pg )
>>>>> +Â Â Â Â Â Â Â  metadata = __map_domain_page(*md_pg);
>>>>> +
>>>>> +Â Â Â  if ( t < p2m_first_external )
>>>>> +Â Â Â  {
>>>>>  Â Â Â Â Â Â Â Â Â  pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>>>>>  Â  -Â Â Â  return rc;
>>>>> +Â Â Â Â Â Â Â  if ( metadata )
>>>>> +Â Â Â Â Â Â Â Â Â Â Â  metadata[ctx->index].pte = p2m_invalid;
>>>> Shouldn't this be accompanied with a BUILD_BUG_ON(p2m_invalid), as otherwise
>>>> p2m_alloc_page()'s clearing of the page won't have the intended effect?
>>> I think that, at least, at the moment we are always explicitly set p2m type and
>>> do not rely on that by default 0==p2m_invalid.
>> You don't, and ...
>>
>>> Just to be safe, I will add after "if ( metadata )" suggested
>>> BUILD_BUG_ON(p2m_invalid):
>>>  Â Â Â Â Â Â Â  if ( metadata )
>>>  Â Â Â Â Â Â Â Â Â Â Â  metadata[ctx->index].type = p2m_invalid;
>>>  Â Â Â Â Â Â Â  Â Â Â Â Â Â Â  /*
>>>  Â Â Â Â Â Â Â Â  * metadata.type is expected to be p2m_invalid (0) after the page is
>>>  Â Â Â Â Â Â Â Â  * allocated and zero-initialized in p2m_alloc_page().
>>>  Â Â Â Â Â Â Â Â  */
>>>  Â Â Â Â Â Â Â  BUILD_BUG_ON(p2m_invalid);
>>> ...
>> ... this leaves me with the impression that you didn't read my reply correctly.
>> p2m_alloc_page() clear the page, thus _implicitly_ setting all entries to
>> p2m_invalid. That's where the BUILD_BUG_ON() would want to go (the call site,
>> ftaod).
> 
> I think I still donâ€™t fully understand what the issue would be if|p2m_invalid| were
> ever equal to 1 instead of 0 in the context of a metadata page.
> 
> Yes, if|p2m_invalid| were 1, there would be a problem if someone tried to read this
> metadata pagebefore it was assigned any type. They would find a value of 0, which
> corresponds to a valid type rather than to|p2m_invalid|, as one might expect.
> However, Iâ€™m not sure I currently see a scenario in which the metadata page would
> be read before being initialized.

Are you sure walks can only happen for GFNs that were set up? What you need to
do walks on is under guest control, after all.

> But just to be safe when such case will occur I am okay with putting
> BUILD_BUG_ON(p2m_invalid) before p2m_alloc_page() in p2m_set_type() function.

Thanks.

>>>>> +static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
>>>>> +
>>>>> +/*
>>>>> + * Free page table's page and metadata page linked to page table's page.
>>>>> + */
>>>>> +static void p2m_free_table(struct p2m_domain *p2m, struct page_info *tbl_pg)
>>>>> +{
>>>>> +Â Â Â  if ( tbl_pg->v.md.pg )
>>>>> +Â Â Â Â Â Â Â  p2m_free_page(p2m, tbl_pg->v.md.pg);
>>>> To play safe, maybe better also clear tbl_pg->v.md.pg?
>>> I thought it would be enough to clear it during allocation in p2m_alloc_page(),
>>> since I'm not sure it is critical if md.pg data were somehow leaked and read.
>>> But to be safer, we can add this here:
>>>  Â Â  clear_and_clean_page(tbl_pg->v.md.pg, p2m->clean_dcache);
>> I didn't say clear what tbl_pg->v.md.pg points to, though. I suggested to clear
>> the struct field itself.
> 
> Won't be enough just tbl_pg->v.md.pg = NULL; ?

Exactly that, yes.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 16:02:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 16:02:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167632.1493896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM77R-0004o9-3w; Thu, 20 Nov 2025 16:02:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167632.1493896; Thu, 20 Nov 2025 16:02:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM77R-0004o2-14; Thu, 20 Nov 2025 16:02:49 +0000
Received: by outflank-mailman (input) for mailman id 1167632;
 Thu, 20 Nov 2025 16:02:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=nz19=54=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vM77Q-0004nw-20
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 16:02:48 +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 5ab9ee3f-c62a-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 17:02:46 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-64088c6b309so1857605a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 08:02: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
 4fb4d7f45d1cf-645363c56a4sm2379884a12.15.2025.11.20.08.02.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 08:02: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: 5ab9ee3f-c62a-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763654566; x=1764259366; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=g9L21KdchEvtWYcrwk1vAhkbpl6vGAU/rGymye3VgZc=;
        b=enxjicWXWmexKs1rqO54G8fp6dn6EyRbm2cPW51O8aj87ZbWiHSPgYjddk9wVPKifr
         klysG/STHteX+w5iMk3rnPJv/jr2E0nzHV7Din/ulgWTsNwliHq0x0O0ETgdbWvKfLgE
         uk+YshJs26vRzL+j5gMQGXmCB3+d1MJUrZX5LWnEIwvokYofMvBC5FYhsdHgh82s5p+A
         UJOlxM4yMOBsxs2mkHcg0DN8+q9ZKSGfdSFJFbtssW6oUwjMpG6kGpF/4TcPFRcK9w9H
         oMkv1TW0j/0uzTG+nhiqstswo2XYowIQ30yY24IRKRkdsQZ9oeqzbeUdK/ewXypsR9Cb
         kU6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763654566; x=1764259366;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=g9L21KdchEvtWYcrwk1vAhkbpl6vGAU/rGymye3VgZc=;
        b=m0WgsrXPnL2uEkUTdJI85eeUPv3sW28rmCE9AOkKeMSBtLhEBNJJCgM8AA4ZSrE8YX
         xCiIUn7se8YPa8zR4nRpzo3ozAqdyS92VY2e5cdCH0hRQ8qvP4Jw1Qvk1zX9jOzi+BTN
         ZRw411cnVtOdJX9A7vMNCR8H96BAaUhLN790uJfSTgb6+tkaHdmI69QBLO64yx/O4gEM
         vNM5JqWACqfT0lhrOdyI0nTmMNsHc4CVEQOvLh27xbQMFFlOeFKqyeMysqHlvoQVKFNv
         juOAJddTck5LBw+6oh6Y+AWu7LsbnB/VF21yfVqPlEKmukL024g4oF2EoYNHjE9rFlMw
         bS1g==
X-Forwarded-Encrypted: i=1; AJvYcCWbTdwgFmCU5hV3og4D14MR4LncIIA2IMiv/5fM0x6kbOAkQneJHuhZxkTLSZmG5SzHDHkvPUZaino=@lists.xenproject.org
X-Gm-Message-State: AOJu0YypcrQrlFROpsJ55Ry6yw4ioxOrb4AEvHE1SHSvcH/ZLHwoByEm
	MzIf4cr/lGZcJ8QxMSaXTp0tdMCcC1n5zJPNGJ8ZjQPTSfBTenUaiayYfr45IexIgQ==
X-Gm-Gg: ASbGnctJRU1hnCY1/0HRFPaprel0u0kP7D/2/pTsPdEtBdfDVjxa48JXUxGhTI9856+
	hJbgnz3azqWxirEoX9A8vuh2tZaKa8AzSne8akzdfcG7a6jN2OL2HRePzlF4d4ScxhNQ3GUV5iT
	9wRdG40gF/uh7/uIeRPO0HZ5u4d1XCAkf119UrSQ8KiUAAIt/wy6lWOAxTTMpvMZvbdbXRzMaWM
	m1BAdQ1yOCtBRB6JZjsl9kJizsdu+iw/JCvqXJw1S/iZJlhmZmyb6beeO2A2jjXj8L6SBZb0Gxh
	IrzI5H9Uyf1g3DGF92j0S33GcxFYdmGp8TytiU/IlIMJzOrd2LVBJHf5EUXteuTaT1TGqpMfXBs
	jVa72Yb7jgIym/hFg0m4eG5uwoAEk9VUBg5UqdHShYOydUsGcca4fXRbDPAaNoD6H/wPrKahlub
	X93Zhibd/z6Z64dBHRIBM2Yus/hoF4/DF5Ci/Ca7IS2DrcnoOhVkLesAaTC/OU1x0d9/XmlIk6B
	GezMzvT4lLCsA==
X-Google-Smtp-Source: AGHT+IHgDsCdkeMs1PzwlsB2Jzpb0k83VV0IVKbsx6z6zx/eeU3U4xTaD2fx3ZwkPkEO3tGMcf/qVQ==
X-Received: by 2002:a05:6402:4302:b0:641:8644:f87f with SMTP id 4fb4d7f45d1cf-6453643ceebmr3582291a12.17.1763654565658;
        Thu, 20 Nov 2025 08:02:45 -0800 (PST)
Message-ID: <d439b007-ecc1-4c62-95f0-6fc73d85ce36@suse.com>
Date: Thu, 20 Nov 2025 17:02:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 07/12] x86/io-apic: fix usage of setup_ioapic_dest()
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120095826.25782-1-roger.pau@citrix.com>
 <20251120095826.25782-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: <20251120095826.25782-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.11.2025 10:58, Roger Pau Monne wrote:
> Attempt to clarify the purpose of setup_ioapic_dest(), as the comment ahead
> of it is outdated, and looks to be a verbatim copy from Linux from one of
> the code imports.
> 
> The function serves two purposes: shuffling the interrupts across CPUs
> after SMP bringup or re-assigning all interrupts to CPU#0 if no IRQ
> balancing is set at run time.  However the function won't perform any of
> those functions correctly, as it was unconditionally using
> desc->arch.cpu_mask as the target CPU mask for interrupts (which is the
> current target anyway).
> 
> Fix by adding a new `shuffle` parameter that's used to signal whether the
> function is intended to balance interrupts across CPUs, or to re-assign all
> interrupts to the BSP.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

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

> ---
> I couldn't find a specific Fixes tag to use here, I think this has been
> broken all along.

Perhaps dddd88c891af ("Auto-disable IRQ balancing/affinity on buggy chipsets"),
which is where the 2nd use of the function was introduced?

> --- a/xen/arch/x86/io_apic.c
> +++ b/xen/arch/x86/io_apic.c
> @@ -717,12 +717,14 @@ static int __init find_isa_irq_apic(int irq, int type)
>  static int pin_2_irq(int idx, int apic, int pin);
>  
>  /*
> - * This function currently is only a helper for the i386 smp boot process where 
> - * we need to reprogram the ioredtbls to cater for the cpus which have come online
> - * so mask in all cases should simply be TARGET_CPUS
> + * This function serves two different purposes: shuffling the IO-APIC
> + * interrupts across CPUs after SMP bringup, or re-assigning all interrupts to
> + * the BSP if IRQ balancing is disabled at runtime.  Such functional
> + * distinction is signaled by the `shuffle` parameter.
>   */
> -void /*__init*/ setup_ioapic_dest(void)
> +void setup_ioapic_dest(bool shuffle)
>  {
> +    const cpumask_t *mask = shuffle ? TARGET_CPUS : cpumask_of(0);

Don't we want to aim at getting rid of TARGET_CPUS, which is now only hiding
something invariant? IOW should we perhaps avoid introducing new uses?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 16:53:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 16:53:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167653.1493907 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM7tm-00046e-MZ; Thu, 20 Nov 2025 16:52:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167653.1493907; Thu, 20 Nov 2025 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 1vM7tm-00046X-Ja; Thu, 20 Nov 2025 16:52:46 +0000
Received: by outflank-mailman (input) for mailman id 1167653;
 Thu, 20 Nov 2025 16:52:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0fq0=54=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vM7tl-00046R-Gj
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 16:52:45 +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 54eb8fb0-c631-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 17:52:43 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-b737502f77bso171992666b.2
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 08:52:43 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cdd5bfsm252580166b.9.2025.11.20.08.52.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 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: 54eb8fb0-c631-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763657562; x=1764262362; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8ak40zxKaq3+23GW7CW6VFOeumz59z7LChuu1B8krt4=;
        b=AnXqgNPErGGhmmoNzgpKENKx1T+/GvGtNIqCGbMXKM/HN7PTt4vdZ8qmjxAO9j6nor
         osHnus0YyXl6fIxbJV2H87Wi/FB5IE6Fb3lylGpMLRrOQ5pYXkwllST7LTggo0E8plkl
         qTY/MSEw/bzcTcjY0BSaPzmPzz0J1vXvIpRKhjQE78bStrw4lAJJejuV1HNhzxuJnkRK
         ZW3Xb2ltRUJdW/IAcbKNX1umk8cJBZCXfcBCq2JF3h8P2mU5Tm1iXbfTuw8MCX4aYy3q
         6YU9PtHtg1Q+If3y73H0Z0lRhHYRy2HlqUOiyTb1yTJMwQ25rS+fEaa1XoGmB8mj69i0
         HSRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763657562; x=1764262362;
        h=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=8ak40zxKaq3+23GW7CW6VFOeumz59z7LChuu1B8krt4=;
        b=pK6RdGRzFAwowRxvgUqD+luxLWyjtsVJBvYdiPYTIMAcILx2Axc5N3MZ1Ec811drKl
         huiak7pWUrx2hO0/0PeeadzWYPLugeLtnFjHdiU1p405pfm7FGGOiwY+hMrvSGYL467c
         hlxtMUd3dkcC3L9D2AnZ+XiBsXCc9H2Mgw4EY/SNolCf091UyE36h+p8Q453p6P+Pqls
         Q2bjqtB14p0t3ob1Hm8F5w4AfruP4kY1R77TvIqqTRW93hApU9Tf53oNowC9GCRuH3RR
         cfD/j/pJiz6A1C1H9vbDUv9zorJ7IhAg1H1wtS/UnDCKZWcQ2jQxe6T/cynXYWQkpqgm
         bjGw==
X-Forwarded-Encrypted: i=1; AJvYcCUM8TNmFnKVYqKqJPSWgA3CCkQ85QdHNPGgYn/89a+Pcrxgaojc9m47XZs/+vZa5OPzl1bUCk0rTjs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxbAytLCIz50tVNUa/WzTQqo28vKHlhCQnZdv8huXErs4NoV5C0
	0eqUbjMpBcgca0OL8l3nmC4Jz5CTXE5ZCt+iituLB8h9OyT8qNZX1tpn
X-Gm-Gg: ASbGnctE2OQ6m4DClaqLaNXRQi6ip/wkNsgmvUTlHh9msv0XWNk0n5VqHOiRs5IkOyu
	mEMsKZda1T4V3K9eQEv8I9Rh6MSo86GRmFSsLcCTcJJdEH8YPeN2vmao8bfAJR8qoJ/XTZpI8IY
	gkyaS2O04duJjXCfNbFu/5dxYUMeXKdSWa5gvUEeah8dlpugaWpwGZUnsVkU9bdszYTq1/Ks6Rb
	OJhLvGNwix4jyoBaTaT/vvigG2/ULfy9J80IbuY1YsTWbESiWsnDSjvqXbxHQsVMU2wefkiFt6J
	ERSwf2J08ZOkD70r4Ms16+rGLJUw9vHexHY/bQyM1X3xWEr+z7vTusRCom/xJomM049RQDY2rTB
	o8kgCCu7FhpiqSG0HPnGIFvw/o75T9+UOH8lbvOORyy1bFJz0dGMygUqsBdMt9JcgoGwyrog5QA
	i9mqjaLlSr6B1PrEuEC//rQS2GSonAYPVgVeoMIGA2Cnk4ROQXlc4fY8yLlACP
X-Google-Smtp-Source: AGHT+IHDM7X3OKJ/QPfpblGqFIYbjPgzpwL/8qLuqd6z6N2E5ipRHlB7MNYtZDwNChyJH/mIAHX6xw==
X-Received: by 2002:a17:906:fe47:b0:b73:6b24:14a0 with SMTP id a640c23a62f3a-b7654dd66ecmr421368166b.18.1763657562002;
        Thu, 20 Nov 2025 08:52:42 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------PMK9GPWPHuNX3OjgopwO5bTu"
Message-ID: <3f772780-75af-4d77-96c9-7eb7dc697ff8@gmail.com>
Date: Thu, 20 Nov 2025 17:52:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 18/18] xen/riscv: introduce metadata table to store
 P2M type
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <d291d2efe7dcc6ddd3d16677a81c57d755c7ada2.1760974017.git.oleksii.kurochko@gmail.com>
 <6a5a9f4e-1f0e-453f-b1d1-d0e2acf97e2a@suse.com>
 <5d4ec4d9-b4c1-4365-a343-f42b390da165@gmail.com>
 <6f431394-5c08-4974-85ae-4b38f1975289@suse.com>
 <e2cbb6b9-ab07-4aad-8eb8-f4dd859ac6f6@gmail.com>
 <b859d5c1-b602-4e61-b667-2701e0f31434@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <b859d5c1-b602-4e61-b667-2701e0f31434@suse.com>

This is a multi-part message in MIME format.
--------------PMK9GPWPHuNX3OjgopwO5bTu
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/20/25 4:47 PM, Jan Beulich wrote:
> On 20.11.2025 16:38, Oleksii Kurochko wrote:
>> On 11/18/25 7:58 AM, Jan Beulich wrote:
>>> On 17.11.2025 20:51, Oleksii Kurochko wrote:
>>>> On 11/12/25 12:49 PM, Jan Beulich wrote:
>>>>> On 20.10.2025 17:58, Oleksii Kurochko wrote:
>>>>>> +Â Â Â  if ( *md_pg )
>>>>>> +Â Â Â Â Â Â Â  metadata = __map_domain_page(*md_pg);
>>>>>> +
>>>>>> +Â Â Â  if ( t < p2m_first_external )
>>>>>> +Â Â Â  {
>>>>>>   Â Â Â Â Â Â Â Â Â  pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>>>>>>   Â  -Â Â Â  return rc;
>>>>>> +Â Â Â Â Â Â Â  if ( metadata )
>>>>>> +Â Â Â Â Â Â Â Â Â Â Â  metadata[ctx->index].pte = p2m_invalid;
>>>>> Shouldn't this be accompanied with a BUILD_BUG_ON(p2m_invalid), as otherwise
>>>>> p2m_alloc_page()'s clearing of the page won't have the intended effect?
>>>> I think that, at least, at the moment we are always explicitly set p2m type and
>>>> do not rely on that by default 0==p2m_invalid.
>>> You don't, and ...
>>>
>>>> Just to be safe, I will add after "if ( metadata )" suggested
>>>> BUILD_BUG_ON(p2m_invalid):
>>>>   Â Â Â Â Â Â Â  if ( metadata )
>>>>   Â Â Â Â Â Â Â Â Â Â Â  metadata[ctx->index].type = p2m_invalid;
>>>>   Â Â Â Â Â Â Â  Â Â Â Â Â Â Â  /*
>>>>   Â Â Â Â Â Â Â Â  * metadata.type is expected to be p2m_invalid (0) after the page is
>>>>   Â Â Â Â Â Â Â Â  * allocated and zero-initialized in p2m_alloc_page().
>>>>   Â Â Â Â Â Â Â Â  */
>>>>   Â Â Â Â Â Â Â  BUILD_BUG_ON(p2m_invalid);
>>>> ...
>>> ... this leaves me with the impression that you didn't read my reply correctly.
>>> p2m_alloc_page() clear the page, thus_implicitly_ setting all entries to
>>> p2m_invalid. That's where the BUILD_BUG_ON() would want to go (the call site,
>>> ftaod).
>> I think I still donâ€™t fully understand what the issue would be if|p2m_invalid| were
>> ever equal to 1 instead of 0 in the context of a metadata page.
>>
>> Yes, if|p2m_invalid| were 1, there would be a problem if someone tried to read this
>> metadata pagebefore it was assigned any type. They would find a value of 0, which
>> corresponds to a valid type rather than to|p2m_invalid|, as one might expect.
>> However, Iâ€™m not sure I currently see a scenario in which the metadata page would
>> be read before being initialized.
> Are you sure walks can only happen for GFNs that were set up? What you need to
> do walks on is under guest control, after all.

If a GFN lies within the range[p2m->lowest_mapped_gfn, p2m->max_mapped_gfn], then
|p2m_set_entry()| must already have been called for this GFN. This means that either
- a metadata page has been created and its entry filled with the appropriate type, or
- no metadata page was needed and the type was stored directly in|pte->pte|

For a GFN outside the range(p2m->lowest_mapped_gfn, p2m->max_mapped_gfn),
|p2m_get_entry()| will not even attempt a walk because of the boundary checks:
     static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
                                p2m_type_t *t,
                                unsigned int *page_order)
     ...
         if ( check_outside_boundary(p2m, gfn, p2m->lowest_mapped_gfn, true,
                                     &level) )
             goto out;
     
         if ( check_outside_boundary(p2m, gfn, p2m->max_mapped_gfn, false, &level) )
             goto out;

If I am misunderstanding something and there are other cases where a walk can occur for
GFNs that were never set up, then such GFNs would have neither an allocated metadata
page nor a type stored in|pte->pte|, which looks like we are in trouble.

~ Oleksii

--------------PMK9GPWPHuNX3OjgopwO5bTu
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/20/25 4:47 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:b859d5c1-b602-4e61-b667-2701e0f31434@suse.com">
      <pre class="moz-quote-pre" wrap=""><pre wrap=""
      class="moz-quote-pre">On 20.11.2025 16:38, Oleksii Kurochko wrote:
</pre><blockquote type="cite" style="color: #007cff;"><pre wrap=""
      class="moz-quote-pre">On 11/18/25 7:58 AM, Jan Beulich wrote:
</pre><blockquote type="cite" style="color: #007cff;"><pre wrap=""
      class="moz-quote-pre">On 17.11.2025 20:51, Oleksii Kurochko wrote:
</pre><blockquote type="cite" style="color: #007cff;"><pre wrap=""
      class="moz-quote-pre">On 11/12/25 12:49 PM, Jan Beulich wrote:
</pre><blockquote type="cite" style="color: #007cff;"><pre wrap=""
      class="moz-quote-pre">On 20.10.2025 17:58, Oleksii Kurochko wrote:
</pre><blockquote type="cite" style="color: #007cff;"><pre wrap=""
      class="moz-quote-pre">+Â Â Â  if ( *md_pg )
+Â Â Â Â Â Â Â  metadata = __map_domain_page(*md_pg);
+
+Â Â Â  if ( t &lt; p2m_first_external )
+Â Â Â  {
 Â Â Â Â Â Â Â Â Â  pte-&gt;pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
 Â  -Â Â Â  return rc;
+Â Â Â Â Â Â Â  if ( metadata )
+Â Â Â Â Â Â Â Â Â Â Â  metadata[ctx-&gt;index].pte = p2m_invalid;
</pre></blockquote><pre wrap="" class="moz-quote-pre">Shouldn't this be accompanied with a BUILD_BUG_ON(p2m_invalid), as otherwise
p2m_alloc_page()'s clearing of the page won't have the intended effect?
</pre></blockquote><pre wrap="" class="moz-quote-pre">I think that, at least, at the moment we are always explicitly set p2m type and
do not rely on that by default 0==p2m_invalid.
</pre></blockquote><pre wrap="" class="moz-quote-pre">You don't, and ...

</pre><blockquote type="cite" style="color: #007cff;"><pre wrap=""
      class="moz-quote-pre">Just to be safe, I will add after "if ( metadata )" suggested
BUILD_BUG_ON(p2m_invalid):
 Â Â Â Â Â Â Â  if ( metadata )
 Â Â Â Â Â Â Â Â Â Â Â  metadata[ctx-&gt;index].type = p2m_invalid;
 Â Â Â Â Â Â Â  Â Â Â Â Â Â Â  /*
 Â Â Â Â Â Â Â Â  * metadata.type is expected to be p2m_invalid (0) after the page is
 Â Â Â Â Â Â Â Â  * allocated and zero-initialized in p2m_alloc_page().
 Â Â Â Â Â Â Â Â  */
 Â Â Â Â Â Â Â  BUILD_BUG_ON(p2m_invalid);
...
</pre></blockquote><pre wrap="" class="moz-quote-pre">... this leaves me with the impression that you didn't read my reply correctly.
p2m_alloc_page() clear the page, thus <span class="moz-txt-underscore"><span
      class="moz-txt-tag">_</span>implicitly<span class="moz-txt-tag">_</span></span> setting all entries to
p2m_invalid. That's where the BUILD_BUG_ON() would want to go (the call site,
ftaod).
</pre></blockquote><pre wrap="" class="moz-quote-pre">I think I still donâ€™t fully understand what the issue would be if|p2m_invalid| were
ever equal to 1 instead of 0 in the context of a metadata page.

Yes, if|p2m_invalid| were 1, there would be a problem if someone tried to read this
metadata pagebefore it was assigned any type. They would find a value of 0, which
corresponds to a valid type rather than to|p2m_invalid|, as one might expect.
However, Iâ€™m not sure I currently see a scenario in which the metadata page would
be read before being initialized.
</pre></blockquote><pre wrap="" class="moz-quote-pre">Are you sure walks can only happen for GFNs that were set up? What you need to
do walks on is under guest control, after all.</pre></pre>
    </blockquote>
    <pre data-start="139" data-end="310">If a GFN lies within the range <span
    data-start="170" data-end="219">[p2m-&gt;lowest_mapped_gfn, p2m-&gt;max_mapped_gfn]</span>, then
<code data-start="226" data-end="243">p2m_set_entry()</code> must already have been called for this GFN. This means that either
- a metadata page has been created and its entry filled with the appropriate type, or
- no metadata page was needed and the type was stored directly in <code
    data-start="468" data-end="478">pte-&gt;pte</code></pre>
    <pre data-start="481" data-end="640">For a GFN outside the range <span
    data-start="509" data-end="558">(p2m-&gt;lowest_mapped_gfn, p2m-&gt;max_mapped_gfn)</span>,
<code data-start="562" data-end="579">p2m_get_entry()</code> will not even attempt a walk because of the boundary checks:
    static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
                               p2m_type_t *t,
                               unsigned int *page_order)
    ...
        if ( check_outside_boundary(p2m, gfn, p2m-&gt;lowest_mapped_gfn, true,
                                    &amp;level) )
            goto out;
    
        if ( check_outside_boundary(p2m, gfn, p2m-&gt;max_mapped_gfn, false, &amp;level) )
            goto out;

If I am misunderstanding something and there are other cases where a walk can occur for
GFNs that were never set up, then such GFNs would have neither an allocated metadata
page nor a type stored in <code data-start="1210" data-end="1220">pte-&gt;pte</code>, which looks like we are in trouble.

~ Oleksii

</pre>
  </body>
</html>

--------------PMK9GPWPHuNX3OjgopwO5bTu--


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 17:14:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 17:14:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167665.1493916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM8Et-00077D-Bw; Thu, 20 Nov 2025 17:14:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167665.1493916; Thu, 20 Nov 2025 17:14: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 1vM8Et-000776-9A; Thu, 20 Nov 2025 17:14:35 +0000
Received: by outflank-mailman (input) for mailman id 1167665;
 Thu, 20 Nov 2025 17:14:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ChS/=54=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vM8Er-000770-Sw
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 17:14:33 +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 5e16d17e-c634-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 18:14:28 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA3PR03MB7346.namprd03.prod.outlook.com (2603:10b6:806:382::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Thu, 20 Nov
 2025 17:14:24 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.011; Thu, 20 Nov 2025
 17:14:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e16d17e-c634-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XQDIaA4vG3FqAsrbJVDMdrw5xTAJP9msB2AyaVkpvihpKzrfgAOrqRN7EtPQUbCtBui8BjpyLNjTadpDZ5nIIMJMvlmtGPhv2bSYutDXlVOuDuVcX9DqwjPX8RIm11/pUf5U7sagSEg04vxUTgWC4aod+oH4BME0x85waMcinugifqK6Rmze0DK9tQN1hIWUzE9wtkulsQkucxO98JebWBBaXzUbfiGUWV7qz4/EbKf/yKqzyBJHS8w52/BpkdWHe9yWlohGLzH9FzuqcDQd2wDtU1tFLw6F9NlKTNUumkOtS6nuxWCTvbY4xjcCI+AjxqPOEShIzP8qNvm0+DOBNA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JvVSjr6bAg68fsUxaGLcOH0QHxFdL3rVhud/K9v8h7M=;
 b=BiFw/qLDBnXz3en81q8VQ7iqZX7azS8xEgB6yl24EtzkbPP/JkAR4K3a8eYc6t4WLW9cbQPOrQP5/Dkky/lXsYhJu84J9JRgCsYF0G3uEGLfRg5/yVSBRYBr3ILEYgFj5dMaUbj1foDB4IlybvaD6L4kFedUASW2qNPbg5mAbzb3TmHx6wm7rqCyKx1ZGkfcDG6gz4n1Ck/I5sYp8cKbPoAFTJ9v6G3cUZBF68ZSYCuvYiDuZhvFyLdohczTp+ntgG38/j/loUgHxNnHqqNr962/T1rKJJY1yI8Gqvq4KtKmX/0HV8k6I28S3DZiBmBuLR6ujWI9Rt4zQdf1iwr5Sw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JvVSjr6bAg68fsUxaGLcOH0QHxFdL3rVhud/K9v8h7M=;
 b=fo7X0oXjBc/UDctkoXlqjs9s9zBlVzfYVE2AhZWXZPkkytqjAtm4Ro4Wxmei7Om7JWZV8PQ7TX4VB93nkR0WfBc9b7WpLuMu1T8mJ/gbfTWO0NzTnyp6Vi/miaLhP/ISfW52W23ajFq+MYQXQNwroLh1tM1j6sUynS4V3xoVxug=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <9f23a3fe-c139-4219-ad50-69bf68e68e16@citrix.com>
Date: Thu, 20 Nov 2025 17:14:21 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/4] x86/guest: move allocation of Xen upcall vector to
 init code
To: Jan Beulich <jbeulich@suse.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: <fbc9a2f8-170a-4645-8836-c90c42ad726f@suse.com>
 <5ccf9000-9847-40de-838e-cb181633b098@suse.com>
 <943e462f-d948-4f72-8d4c-626febca5b32@citrix.com>
 <4a266547-b058-49c0-8c45-7a80f8ada3b7@citrix.com>
 <a61f67ce-8568-416b-9e89-aa22d794e886@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <a61f67ce-8568-416b-9e89-aa22d794e886@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0413.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:189::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_|SA3PR03MB7346:EE_
X-MS-Office365-Filtering-Correlation-Id: d8064ec0-b083-4448-4212-08de28584099
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?bnFwT0JWbmdrWERVUjRpR3dWbFpHYmd2ZWx3MXZoRlNEYndpTkNIcGpjMWN2?=
 =?utf-8?B?R3lhWXNVeHptemFYUW52REdrc016NU5wdXVYSjh4NThoZmdBN0FxTnZXQVVK?=
 =?utf-8?B?YU1nMENDK3E0QmxGZ2tGY1lpVmFaT2I2cUt6ZXlVM01zRHd4UHNobkNHRXVN?=
 =?utf-8?B?WVZaenBsNFBmY0NLZlcyVmFxOGJJUTBydHFMREZZNE1LYWo0QitkdW5xbkp5?=
 =?utf-8?B?bVJZVElucmZYRkQvOUJUekU2MERsK1ZYY1daNkhObUgwbUtiMVYyai9JbCtJ?=
 =?utf-8?B?ODZqV3pkMnNEejZxVjJZSFljQ2U0QStoRFplbHFDamR6WlR3dmhPNUpsRnA3?=
 =?utf-8?B?YUppMS9HTVpJOHR0UktXQ0g1NTNDaVNYaWJ2aTlDbCtOamQxODRDZGZxQVNS?=
 =?utf-8?B?ejlkckxJaUl0bTNBOUNuS3BTWXRyd2xOMmhGa1ZBTU0xMHk3OU9LR3FwT3ZQ?=
 =?utf-8?B?a0txa282YWtucjJCS28rRE83Y1pPU1NNeVB5Slk5ell0aGYxL2QzZGsxeE8y?=
 =?utf-8?B?bG5RUnF2NXpMMktaYWVBeU5TcHhBdk4zK1FpVEFadEFoaFVxSVF4d0ZQU1dm?=
 =?utf-8?B?UEdkZGova1IwK3hPZXRPWUxWQUY4dXhFdFpuNUpvWnp4RElac3cvalIrRFd4?=
 =?utf-8?B?SlY3OTZ3SHB0dXFIeWcweGxRMUpCeTlQSlBNaGtUa2xIMWd5Q2w1dm5nMnE1?=
 =?utf-8?B?a1FlRHJ6QjBEUFdISDFCS3pNclVpeEF3SnpjaHZFRGlHN2sveFFXK3pGSFpn?=
 =?utf-8?B?aS9WcGxHK0p2OW01SEpSOGhRUDU3TllEdjF3aXZQTXlBQm5XKzIrcHpjMmI0?=
 =?utf-8?B?WHZzUGltZU5LN1JFMFIxYVhwYy95OXVxeVo2Z2ZGY2tkalVtcUxZbDNEbmVz?=
 =?utf-8?B?NHptU3pvaEVZSlFvc1BtM1g0MllnMjllTXVMYXlMcTFqRGhiOVRJWDFjc1p1?=
 =?utf-8?B?Ti9oZ09MbWJWYzRYY2d0TEZlcVFaMzdyODQ3UE8ranliUnQ2YWxvSSt3WVFy?=
 =?utf-8?B?ZmhLb25BMEp2dGpodXF4WGZiNlRuQWVVeExCeStISEt6L2c2RGZwa01LYVps?=
 =?utf-8?B?Znd6aW4yTzdhUVpWaGhJUUxwbWZUanlmZFdrVXVwaVI4V0k2NkNYblJuRnpL?=
 =?utf-8?B?Q0ZoLzZDRFNwNW5YdGEvZDZrc3RHcFM5YU4zSXJzZDZoMGZUdXJsR3R4aVVI?=
 =?utf-8?B?eC91QUo2Vll4RnFoS25FQW56TlI0VXFXRFVOa3JPSGNwMFhvb3pndnVlclFh?=
 =?utf-8?B?N0ZrTXJ0NE8vd3pSWmVRbmY0ZHdOQjc5bzZYcjQ0aUNSY0kyR1lHeGpSU2Nh?=
 =?utf-8?B?a09VQnZuRldxWUp0RFphbnNwTDhZQzk2ZWpXdXVlR2NlMWtkSVZMb0tXeENB?=
 =?utf-8?B?azAxZjZGSy96U0IxY3orYmZtNy82cUFaaVlSYk11bWp5T0ZpSkk1YjRFa0JU?=
 =?utf-8?B?YXU1QXlmblBjMjZ6VFU1dGlPekUya2t6ZHIzZTI3ODlPKytuaUZsYnRWM3lZ?=
 =?utf-8?B?eG5YbS9JaWIzb0Q4ZStXQ2VLcmJMRm4ybjUzUVg4NmZKdjVGY2hkdXlNbzlh?=
 =?utf-8?B?RUlveDZsSm9WRGJsMnRLUlc2Y2hGd3RCUDRkZlJMV1l4ZnV1S2lhcWJIMnFr?=
 =?utf-8?B?Y3IvVnpXNkpKVkgxUWxiR0J0VDJYRGhJeDNiLzNkeExWa25VY2FpSFc3d2xn?=
 =?utf-8?B?TzgyNW4vNlNFTUJhRDJIN0ErdzlmaXQvc1JISnYyaDZ1eTNaQ2JUd0FINlJK?=
 =?utf-8?B?YmQ3aEQwa2t4VlYrMkxuOHRjZTErSUxxRzExUU4zL0l6RmpBOEVIY1B5YzFK?=
 =?utf-8?B?SndyVGZLTHRwcC9WQm16U0k3UWdIa0wwWEc1d1lnc1J5VWh4VElhUlhvazF1?=
 =?utf-8?B?SURKNXNwdm05aTB4SlZvdTBQTVBiZzdERlVQUXZONjZuTzNzOHJ3NkM0bVVw?=
 =?utf-8?Q?JSZQPQ9QVkUWUFQijK4UVWlQG/yt1PJe?=
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?bTFuMjlXQUxrRGRFZ3g1b1BZTVNGQkVSbjIwKytHVzdMRXM5NmhIQnJhdG9Y?=
 =?utf-8?B?NzdpeFdPbWNmQVVnUytjY1hTMDAwRmxJNVBtNExrQU9hdk1VOWhWZDVJWS8z?=
 =?utf-8?B?bDV4ckdZbU9LM21TS3UyQWdsbGlWcTNvYWhoYnk3UjVNdlFMMU1xRjRzdDM1?=
 =?utf-8?B?b0Y5YnRFdnRsb2VHVHF1eWlnQXBuVUVwWjFqajUxL1lySmtTQ0UvVDJ1SzVJ?=
 =?utf-8?B?ek9UcGs4VnpxN3JrSXM3cVhJQkliUjVUVFJUektEa1JLWXVQNGFKbmxWZ2t2?=
 =?utf-8?B?MjFIVWg3MEw4TTZZRXVSL2JaSUI3VWFqSlV5VWNzbnpHZmQ1UVQ0WHNCbGRt?=
 =?utf-8?B?eU9kdnJ5VEpSVDUwZlU5VjBEWmJtVEQwcWNmSi9QT2FMeUpucGpEaG4zM1Mr?=
 =?utf-8?B?aVAwWkNjcEo5UjVITFdsZU1CenYyL2xYNDZtbXN3Q0pSVVBFeVZzNVRHTmZ1?=
 =?utf-8?B?NzcyUUhzelkvYlJBL0VMbXJYaks0bUdWN1FjVEhaWjM1WE05Tk1xYWM2Umc0?=
 =?utf-8?B?Y0xjRkxSanp1S3lHQWtaeGVXeGhDZnJYaXMvWjh5KzQ1YUlYN2FlRVFDM0dE?=
 =?utf-8?B?T1NUMWRWUjAvZGJwUTRSR0hlYTRFVTJYRkZDS2lBcDRiakYydHorVGNDZGpM?=
 =?utf-8?B?SG9wWjJtSG9KaEpMYUhhaHJGcCtDR3YzSmtnU2tGZ0Z5K2VEeXhMdnRPUVNm?=
 =?utf-8?B?UGFkMFR0dW9XbnhERjNzQXhWT0o3WmdqV2drQkZ5TnZoTEQrTW1CaU54VkJK?=
 =?utf-8?B?a0poWWxVUjNMb2lpTm16cXVVM3hOV2Z2eXljWU9uQlh1WGlSdithRDEzZnd3?=
 =?utf-8?B?VTNCYTdZcFFXRUxhT1hBdWRLVW5WNWhTLytoVXBKbHI2SDVuQkV2N3I5cEs4?=
 =?utf-8?B?MUJlaldtZFpRdDM1bkx5OURQRDE2OW9zTHpDMlp0NWpMV0hpakVaV1hsOHNI?=
 =?utf-8?B?UjB6VXI4dGs0MUhKRSsxWGFLSm53UWtFZGRtbFJYVTZVeFdGUDNIZCtSeGZk?=
 =?utf-8?B?bWprSStvU20rV3FrdzdZeCtTYnhEVUpLTjJ5KzRtT0p5VzBGNkRxeXkwWUIy?=
 =?utf-8?B?YnkzYnRpVFFEcERNOWp5NnZaQnl4UTV0aGJ4dGRZMnh0SXJvVW84VVNHdi9H?=
 =?utf-8?B?S25lSDFMbGlNb3FtdkdIY3dFNVFtcnFQV3liNUYrWGdHT0FUbnFtMzlyTVBK?=
 =?utf-8?B?T2lOTzZmTS9wclk0SFRBaUxGWXdrdXRwcmJrbU1EMi9mM0RaV3gvU0FDclpU?=
 =?utf-8?B?V09QRHR6QUJGT2k2cktZT1JaUzgvL3RrdzZ5ek5kK0daMi8vaC9adUw5VHk4?=
 =?utf-8?B?S3BmUG4wbE5qaFhaOEQwTzZjYThKNG83eW9mSHZGanV5dlBUL0p2amxIYkhs?=
 =?utf-8?B?azNBTVJIUFZzUER6bHZ6UWpJQStjNlRUb3J5cmIrVWNmZmgwZEpoTzNiYVpY?=
 =?utf-8?B?TVpNZkZuZjVuSzcyNzYzKy82dXRtTTloNnVoTWJ4L3hmbTdkd0llRDVEbllV?=
 =?utf-8?B?cVg0eHhUOGk4b3EwSk5lQVhoSkdYMkQ4ZnZBUDRWVGV2eWt4Q29zekxqMSt6?=
 =?utf-8?B?ZlM1UHJ0TElDa2t2K1VaZ1pZNGpMZEhJRUZsL0pJd1lRYkJtTEJqTEJpRUhX?=
 =?utf-8?B?YWNuQnRLWmg2ZnRIWlRwZ29zUk9QQUY4NXlIRkt0eDNlVllUMnFrdTlkTGVk?=
 =?utf-8?B?bVpGMTZmdlZWeCtiVVovVWVsN0pCMTg3MzUxb3h2b0JFY2hnM01WK0EzWFJi?=
 =?utf-8?B?Ymh2RTBzRGtmeVFLTndLWW5nSGVTdlh3a3ZzWUhSZWZiQkVEWUxZanRTM3Zo?=
 =?utf-8?B?RnhtcnQ4anJWV3BueXl4bkJtaGlaZ204NVBSclYzTElhcTduRVFVNTBtNEw4?=
 =?utf-8?B?bFVNc2JYOE4wQ2VMK3d2SHFEeGM3V3pveG11eVN4ek5aUTNMOHFnQWFlTTNL?=
 =?utf-8?B?MFJXOW96TGc1WC9hNkwxSllialY3WERDSi9MSTQyWlU2Y2RNQVZPaWJ5b1ZJ?=
 =?utf-8?B?LzlMeEM4UDhrbUlLRG55S2Y0bUVqQ0MrUkF3OWgwcFZEb0swdUcxaVpodENl?=
 =?utf-8?B?TURXUmRmNlBLU0UxdzVQcEhERDVOYngyemNmbmhaQUZ0d1Q3aXQwYmhIVVM0?=
 =?utf-8?B?K1dER3ZWTmNCbTdTNk5kWjZWYVZqYkY1UVVpRm9xMmVwQkZtVDN3RXE0eTNw?=
 =?utf-8?B?Y3c9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d8064ec0-b083-4448-4212-08de28584099
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 17:14:24.0790
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OAGJurjUN98LSgBTz+xWScd0NECQAAByN54CFeUg7VcI09l5g4zo5b37Vx6HnfbqsOlY2hgNTm0PYGC4OyvFT3JJzmZWmqQIQ+gwJ1iuGN0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR03MB7346

On 20/11/2025 12:08 pm, Jan Beulich wrote:
> On 20.11.2025 12:07, Andrew Cooper wrote:
>> On 20/11/2025 11:01 am, Andrew Cooper wrote:
>>> On 19/11/2025 10:50 am, Jan Beulich wrote:
>>>> There's no need to do this every time init_evtchn() is called. Just do it
>>>> once when setting up CPU0. Drop the assertion as well, as
>>>> alloc_hipriority_vector() (called by alloc_direct_apic_vector()) uses more
>>>> restrictive BUG_ON() anyway. Then evtchn_upcall_vector can also validly
>>>> become ro-after-init, just that it needs to move out of init_evtchn().
>>>>
>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>>
>>>> --- a/xen/arch/x86/guest/xen/xen.c
>>>> +++ b/xen/arch/x86/guest/xen/xen.c
>>>> @@ -233,16 +233,12 @@ static void cf_check xen_evtchn_upcall(v
>>>>      ack_APIC_irq();
>>>>  }
>>>>  
>>>> +static uint8_t __ro_after_init evtchn_upcall_vector;
>>>> +
>>>>  static int init_evtchn(void)
>>>>  {
>>>> -    static uint8_t evtchn_upcall_vector;
>>>>      int rc;
>>>>  
>>>> -    if ( !evtchn_upcall_vector )
>>>> -        alloc_direct_apic_vector(&evtchn_upcall_vector, xen_evtchn_upcall);
>>>> -
>>>> -    ASSERT(evtchn_upcall_vector);
>>>> -
>>>>      rc = xen_hypercall_set_evtchn_upcall_vector(this_cpu(vcpu_id),
>>>>                                                  evtchn_upcall_vector);
>>>>      if ( rc )
>>>> @@ -293,6 +289,8 @@ static void __init cf_check setup(void)
>>>>                 XEN_LEGACY_MAX_VCPUS);
>>>>      }
>>>>  
>>>> +    alloc_direct_apic_vector(&evtchn_upcall_vector, xen_evtchn_upcall);
>>>> +
>>>>      BUG_ON(init_evtchn());
>>>>  }
>>>>  
>>>>
>>> This patch is fine, but it would be nicer to split init_evtchn() into
>>> bsp_init_evtchn() and percpu_init_evtchn().
>>>
>>> Just out of context in init_evtchn(), there's a check for CPU0 that also
>>> ought to move into bsp_init_evtchn() (and therefore into __init), at
>>> which point the percpu simplifies to a single hypercall, and we keep
>>> subsystem specifics out of setup().
>> No, scratch that.Â  HVM_PARAM_CALLBACK_IRQ is not in the list of HVM
>> Params that migration moves on migrate (see write_hvm_params() in
>> xg_sr_save_x86_hvm.c).
>>
>> Everything is awful.
>>
>> Could you include a comment such as /* HVM_PARAM_CALLBACK_IRQ is not
>> moved on migrate, so has to be set up again on resume. */ to make it
>> clear why that piece of logic needs to stay in a non-init function?
> It's pretty much unrelated to the change here, but yes, sure, I can add
> such a comment while touching the function.

Yes please.Â  It's relevant to judging which code should move out of
init_evtchn().

With that done, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 17:26:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 17:26:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167688.1493926 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM8Ps-0000a4-FT; Thu, 20 Nov 2025 17:25:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167688.1493926; Thu, 20 Nov 2025 17:25:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM8Ps-0000Zx-CX; Thu, 20 Nov 2025 17:25:56 +0000
Received: by outflank-mailman (input) for mailman id 1167688;
 Thu, 20 Nov 2025 17:25:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ChS/=54=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vM8Pr-0000Zr-40
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 17:25:55 +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 f5c756e2-c635-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 18:25:50 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA1PR03MB6561.namprd03.prod.outlook.com (2603:10b6:806:1c8::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Thu, 20 Nov
 2025 17:25:46 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.011; Thu, 20 Nov 2025
 17:25:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f5c756e2-c635-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iTXbkG622osHGjre9W2cerNsYZHuOwFZpPUOr+FQv1GIGsCo3EFGTV8ts0O36/ckcLOTt3gO+HErzRLgDpDfmiv0TqOhA3sd19ScIUQ4ZaPIxqSnCp6q4q9+maCbgRC+0/G9Fw+de5dvzphHu2LD8oDOmDqJgsLTbk5gMqL1OGH5ZQ4j5Tu1PoJo3R5r9pXvLdZRRxSPVgnzwLdc0J5KkuOhtVkvyNhPCjITnJc+ZENSnojVPaZQbTETIJUeuG80iKVLdS7kLksKi35sjT24uYV6b/jEs4cWREQm+jUy0oeIpjY8UawmvZKT7n/p5EWBWoRAkCSsGnqxZ3OeCdbzLA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kuzQ96nhcsDbqClxo6BgU2ke70aFBZ5VK6VHGKXUP6g=;
 b=ErBXuyTACY/wSpt0azg6BJNx19qZb7W+NWMKx3mBzrLJU3MgM89VMM7L7LVs1HickIt025CeJ3T2NROSeWL+j2uDGLQzcfrr0Kygr+o9GVf7vAzyKWgbFA8wujV8lyqxH6EwwUG1flgxkC7B+arahc919hhQH9nPAlQ0l9Yg0bKTmXzoORHoywbW8heBLxJ8ch+CoOf4ZmRXZh1OJFjFmz7Jvy/dYM4aix69iqbi3ZNSd8TGnBShUSF1+UTmerATPYWo5y2KQyMLN1v7Qck8xx4T8VNd+jjdAvu46d1t+AbXcjaEOrrBUZYfeMaCp9EkkkAqbKjgrPjKdXgB0l5OxA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kuzQ96nhcsDbqClxo6BgU2ke70aFBZ5VK6VHGKXUP6g=;
 b=ImOYZBj3MA5AwUO6mI71WnhOg8KRe9oe3K49v//F4c37X3eEncADtp/VoqrbJv7cerMl2JanA+G02EBr1MgAXM64nq0rfVrfeEGqsIf+OsKnp691WmMFR8rVCHceUUtaJCXL4b6K6gvxLZx9rZGKnY5VAMG6fd5EHGFXr0a8yM8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <8c55d065-c663-40ac-a2c5-f4c7d85971a1@citrix.com>
Date: Thu, 20 Nov 2025 17:25:43 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] x86/MCE: restrict allocation of thermal and CMCI
 vector to BSP
To: Jan Beulich <jbeulich@suse.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: <fbc9a2f8-170a-4645-8836-c90c42ad726f@suse.com>
 <638d0954-e889-41ee-b277-282f83170c69@suse.com>
 <ed2f44ce-b28d-482f-b6bb-5ef40149f2b2@citrix.com>
 <5a476cc5-0095-4783-bde9-c84f24740372@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <5a476cc5-0095-4783-bde9-c84f24740372@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P123CA0031.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600::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_|SA1PR03MB6561:EE_
X-MS-Office365-Filtering-Correlation-Id: c0ce761f-f1b8-4b16-e5aa-08de2859d745
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?OVo0aWExNU5Zbi9Nb3BwSUJOd3FwVjhuSVgrbTRXS2VRUUJzV1dNZGwrZzBL?=
 =?utf-8?B?WExrMStSNUlRUXFMNU9veVIvcUZQbFA3bTJVUy9FcjdXVGFmdkZJeHpvQWc3?=
 =?utf-8?B?WG9GaTAzZmlCMmw5Z1p2N3J5eVFxVmwwUzl3R0t1TzZzRHN0NnhvK0dydVpw?=
 =?utf-8?B?QUVSOGdBN2RUSC8xZkhMVkdxa3N5WVQ4czczQVByVlAvbGZ1Rk9oU2tNWWhR?=
 =?utf-8?B?eVJKNFIrbXVUbXBmNE9vVlZQRkNjU2NuSWVjY2xJL1hTSWh6YW5sOWdvYXQ2?=
 =?utf-8?B?NHRydmdzZ1RSMzVKTTZuMzh3Y0Fkb05GOU9QOEJFWU4zcGlQbTczd3hiUmJq?=
 =?utf-8?B?TEtWRHRHUmszaW9lUUxCNEpjWGRNNEVhc1lOWUt6OVJFNEJaZDlKemFBa1hT?=
 =?utf-8?B?RUZUcG9YQlJxVVh3d1B3c3pMSFdYY3U1Tm9iTHlUcFlRREZsLzZ5Nk1kTHZ2?=
 =?utf-8?B?OHNmbU9TbWRnR05jY0dCbk5Db1l1QWtnRnhReXNQWHlrVzNqcFEzVU5FWFVD?=
 =?utf-8?B?ZmhzSFkxSXFsdDkxcWJFb1hnZUFNMzdkcWYzbDh2V2FiZWxLU1lhZUkwaXFP?=
 =?utf-8?B?d1dhMnBSTExDZExPc21XWFFuK1MyeWFxaG9EMnlER3B4cEtPQmlyVmF3WW13?=
 =?utf-8?B?RTlSbjBLVjNsalAvbDlRSG51UFkxUlZVQk5oRFAwT1Nldjh1U2JGaHlhRGRr?=
 =?utf-8?B?M0tOTkVGUVNPbGRlN05xTE13eWJha2JlbUpveXhMbUhSMDQ3R3N0TDV2a3dB?=
 =?utf-8?B?NEpJS0ZWeU5Cd0lJR25vZ2w4V0N3RkZUUjJIalYrNlVYMHRPMy9XekhaSWNO?=
 =?utf-8?B?bXFRYUM4azRtM1B1RVhQTzZGblRnNnZGZlpFWlhaRmNDR3dVWVhOaU1CRUwy?=
 =?utf-8?B?YTJsWW1ld01TTlR3SHozZnlpSittSmw2NVRBam50djZkNksvd2svcGQ3ekk4?=
 =?utf-8?B?SXhISjNURTRxTkE1MElyUlZSVGhGYzBER3JnYXJ6L2V2TjFBMExSUldXOTRl?=
 =?utf-8?B?d1dISHk1eHJzdVdiRjl3eWJRNUFxQWFWZDZLTVdPcVdXKzNqT0RrRXNlenNo?=
 =?utf-8?B?ZFh0MnpZcHhzVUxYSnczQWo3WEpNZzNaNkd0VGlKVGZRK0owekp3Mm5sQmU3?=
 =?utf-8?B?d1RKeDV3aWdjck9iU0FaZStmUG12am9KckdjbnluK0k5bTNMRkhrVDR1WHdQ?=
 =?utf-8?B?YTRCcFRuZDFPUEhvK3AyZ3k2QitRaUlrTnVaZjl5SENGME5OVFVoczlkRHZG?=
 =?utf-8?B?MURiZEExZnVOM0lDSFlEQzl5VVo4dGZaaFdQMzJLWFFZZ1MyVG5YMXdtM2Nr?=
 =?utf-8?B?MktyNkhKeldoRVQ2REplcnVCQWFmbHhoN3I4eitzR1Q3YWp3MWxQekNYZTZM?=
 =?utf-8?B?VDQ5b2o2M1dsVmVtKzNyNUIyMlJlRklEUmFydVB2MHZMNGI0TUp0ZHE3NDdn?=
 =?utf-8?B?emh5V0dWSnNlODcyQW4zMDA4MXBYbXdqZ003Tyt3N0JCNzhWWVJhd1lGWGhh?=
 =?utf-8?B?YjJXQ01mbE15V3MyTGdIdktodEJHbS9jaE5YcWFTS2xpazNGTnllTG5CUU5M?=
 =?utf-8?B?enNzSEVCaUpBSmRCM0RyekZ4bXppRlNNeTlENVN0MmJMVzhFQ1dHY1ZNR1hk?=
 =?utf-8?B?WEt0TEtoTm9PTFV0WEpKSTUzTG5OaWt0bFBwMVNENW8yNHloY21HclFtUi9x?=
 =?utf-8?B?V0VNbTZaTU02QzhDankyU05QM3VqSERpc1I2eGtRMU9NS0pnL2NDTG9LSDFC?=
 =?utf-8?B?b3VVNUVjMVBqVlZUN2MvYzhpNGEraElMbGVhZFhkdHd0UGhJWkJxWHZVSlla?=
 =?utf-8?B?aXJOUTlKbGt5RURPZlVaZGxGYm1jeGVqZGVCNVErTEhHNDlpMFRBUEc4S3RN?=
 =?utf-8?B?Y1N6YUQrV2UrRm1ZaXByOGxPekVMOWFwdTZzNUJETGVLTmJQU1ViZ3AweFdU?=
 =?utf-8?Q?f14BKlUL0faAVZcJbys30wNPrmVKHGCE?=
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?ZkRxdFpoVXFQSHZ0SGMrd0U0NEZCRlVKRGZCM1hsTzJrSjd2Z1N6MzIxcVMz?=
 =?utf-8?B?c2taNWRqaWhGQkdoZ2xsN29wZjA0YlJoUkhXcjRXYkovN2JVNHdMQTlvbHhK?=
 =?utf-8?B?S0xxK3phWUk4b3ptZnZKOFg0a2FPdGZrbGJsZFNPRCtYL04vR0x4WElQaHdC?=
 =?utf-8?B?R1dGZTk0aHo4R0l3S1JUUTVGN2hVZXZXTTRETHR3eWk5SmtMMEYyak9NOFZG?=
 =?utf-8?B?c1pFRGc3eE0zOXl0MjJEOUU1Mm9FRXJYRzNjY1BKdjhvazcwemhPcEs2MFpS?=
 =?utf-8?B?cjgvRHp5Ky9KdHRQbUxGVm1OUlhOWCs3c3JTMFdEbW5xN2xMOU55cDNmT3VU?=
 =?utf-8?B?dVRpMWRhL2x6b0U1WGJkMnZwS2orS3k2bEdNVGs4ZFN0bGVyMlpiR1A2MFc2?=
 =?utf-8?B?d2hYUVMwZE93SEt5NVRLZlZxU1BlaTZTcFBOWUNlMDc4bTVvRGpSd3dqb0NM?=
 =?utf-8?B?cUYzN0RZM0VRZHdteXVweVcrREcvNXhQSmU5TWZrOHdSdmNVNHZBdzVjYjhB?=
 =?utf-8?B?SXZaVTBjUzJhTnM2cldUc1dXWlFEbjFiVEg4ODdRQ0E2YlNhKzdscjUwZDU0?=
 =?utf-8?B?UXNOUi9FeTVDQW1CYVN4QytBclpxbm9EVGVQMFMwNDQrQmRxMmw5RU5yZlhV?=
 =?utf-8?B?ZStHaDFXaWJSWjM2dm4rR1FCU3JRY0JuVmxUa0p1LzJsb1RrOW1mNUNVMXhZ?=
 =?utf-8?B?a3djMDM0Mm5qekNqMHRvd1ZvUWozRmFzQkk1dENlNFNaMm1TM3AxcGUrWE5q?=
 =?utf-8?B?T1NtNWcrYzBORWdlN093M3NMbzhSa1VWMWNxK3lHL0JGSGxLR3l5Mmw3SzhL?=
 =?utf-8?B?dnlRU2dBcUFKUmJSV0o1L0ZXenhMdjY2S3hmcW9BdmlSZnRwRXRkQSt6RCtW?=
 =?utf-8?B?Q2xHTWFmUlpPb2ZRd1BYRm52TS9pUVNpUVV2M3VMNGh4dVlGZ09wbE9JMWVQ?=
 =?utf-8?B?RHRuQ1J5TFJEYWFiK21lODRDdjBqdGphMnV2cWhMZXNUVGNCN2cxczg0WkRF?=
 =?utf-8?B?T2EwTWR0UHZrUjhKRmErTGpxSXJvSXVIajhjL2dibm1RMVM3S0xlL3RHVmFa?=
 =?utf-8?B?UjFHeWlsTVFJQWVBMjR0NkhPTUd2QlFFeFl0UGg3bkQ1QjZpOWVPOXdFU3Fv?=
 =?utf-8?B?U2FJQTZwSHhyMmxWYWZIVkhqamxucFdtMUh3OU05RkNOZjdrZXFJRGc4N041?=
 =?utf-8?B?UTJXRGt3aitlOEZoRTJjTHZmb0hXMGVvbEVJR2ZvY2FwQjBpQkwyUjNidlNp?=
 =?utf-8?B?ZlRnc3VVbW9CUW1ZOTJtdUNxNE5wLzJ1eWJ5S0t1RU0rTE1pbTNOblBBWVRO?=
 =?utf-8?B?SDBpeUpLTmgwOTZzK0o0eUNkTS95UXg3VjVjOFdpOERNWXB4N0k4K0NzVHNi?=
 =?utf-8?B?NkN0TUFTSXdYNDk3ckc2MWk0cEwzK1VxWDREWWZRdlJQdXB2d0tNVGpaWXQr?=
 =?utf-8?B?K1dKTVQxUmNRWnd5aGxJdFUzMkxla0xDbS9oRnFLMmwvbHRsTHh1R1Y1SlNI?=
 =?utf-8?B?SWo3MGZYeUhnaG4vTWloaDI4a2xmS3dHdFBROFl3d0pKZlY5UCszdFBXODcz?=
 =?utf-8?B?MXRjQWR1U3ExeS80VnNIUWFTMGkzcnU1c3lGQWJNYU5pV29Rd0VyMi9CeEw5?=
 =?utf-8?B?a3NaZTB0dGxYTjNSVFdUekpqR3FpSnpIeEZsR096NW4wK2J2MWNNRmExdmV1?=
 =?utf-8?B?ejdxYW5zczY5SDVxYStjRTNyNE45Wlp4cWRjZUZvVUpURm9tcDRxZGxFN0VO?=
 =?utf-8?B?TEE5THdrQVpST2RVU1lDZGhHVlNUOHM2bUQ5WG5hZWFTMlJPMEtyOVh6alVx?=
 =?utf-8?B?c0M0OVR5YWVPb21GdlFSMTlwSU1CZHhIQlVUaW1HVTFjMTVRNTR6VlFHanJN?=
 =?utf-8?B?ZDNjeFM2TTlrcGJSbTZwVjMvOE9zY0RiN3lOeUZVZk9zbk5nY2RBeFU3Tnpr?=
 =?utf-8?B?RHNIM3FRZ2hXRWhkWW8yRnpWdmQzaDF1RXV1YzdpV0ZSVzBidEF0dXg3S28r?=
 =?utf-8?B?RTYwQ0NhNTFEUFQ4c2tXWE8zRUVickppeXFIRysrVVpSVEg1K09SeERwRkpP?=
 =?utf-8?B?N2V3WWhkTjlyM2VqSEJPbGcxVTBNNW5DTG4rQnRPbVRua1p0RmhEU08zUHNk?=
 =?utf-8?B?SGl3NzJwNXRDanBiMDl4UFhTUVRLTFVQbU1EZDUvVmpuOER0c1BUQTc0UzlY?=
 =?utf-8?B?WEE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c0ce761f-f1b8-4b16-e5aa-08de2859d745
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 17:25:46.3589
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: AgLiGbvsIjcN59FkonjDI/pt1ylmFOWXWp9z/SwSG9B31bhVUiWYQOoFcuC2o75m7GegPWtiBRKwG1k7GCJ4MREuezSbm9474O5SZnF/zkQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6561

On 20/11/2025 12:11 pm, Jan Beulich wrote:
> On 20.11.2025 12:51, Andrew Cooper wrote:
>> On 19/11/2025 10:50 am, Jan Beulich wrote:
>>> --- a/xen/arch/x86/cpu/mcheck/mce.c
>>> +++ b/xen/arch/x86/cpu/mcheck/mce.c
>>> @@ -110,13 +110,13 @@ static void __init mcheck_intel_therm_in
>>>  }
>>>  
>>>  /* P4/Xeon Thermal regulation detect and init */
>>> -static void intel_init_thermal(struct cpuinfo_x86 *c)
>>> +static void intel_init_thermal(const struct cpuinfo_x86 *c, bool bsp)
>>>  {
>>>      uint64_t msr_content;
>>>      uint32_t val;
>>>      int tm2 = 0;
>>>      unsigned int cpu = smp_processor_id();
>>> -    static uint8_t thermal_apic_vector;
>>> +    static uint8_t __ro_after_init thermal_apic_vector;
>>>  
>>>      if ( !intel_thermal_supported(c) )
>>>          return; /* -ENODEV */
>>> @@ -160,7 +160,8 @@ static void intel_init_thermal(struct cp
>>>          return; /* -EBUSY */
>>>      }
>>>  
>>> -    alloc_direct_apic_vector(&thermal_apic_vector, intel_thermal_interrupt);
>>> +    if ( bsp )
>>> +        alloc_direct_apic_vector(&thermal_apic_vector, intel_thermal_interrupt);
>> We really don't want both c and bsp passed in.Â  That can only go wrong.
>>
>> Furthermore, this function has 2 other examples generating bsp locally.
>>
>> The function is in desperate need of cleanup (MSRs, variable and
>> constant names), but right now this makes it worse.
>>
>> Please either use c == &boot_cpu_data, and I'll do some cleanup later,
>> or generate bsp = c == &boot_cpu_data and fix up all users in the function.
> No, throughout mce/ this won't work as long as acpi/power.c:enter_state() has
>
>     mcheck_init(&boot_cpu_data, false);

How's not not already broken then?Â  As said, intel_init_thermal() is
already using c == &boot_cpu_data.

This patch introduces a conflicting idea of bsp in this function, and
that's what I really want to avoid.

This looks like it wants splitting properly as {bsp,percpu}_init_$FOO()
like we have elsewhere.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 18:31:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 18:31:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167711.1493937 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vM9Qr-0001Oh-37; Thu, 20 Nov 2025 18:31:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167711.1493937; Thu, 20 Nov 2025 18:31: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 1vM9Qr-0001Oa-0H; Thu, 20 Nov 2025 18:31:01 +0000
Received: by outflank-mailman (input) for mailman id 1167711;
 Thu, 20 Nov 2025 18:30: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=ChS/=54=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vM9Qp-0001OR-80
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 18:30:59 +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 0d662361-c63f-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 19:30:58 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY5PR03MB5316.namprd03.prod.outlook.com (2603:10b6:a03:220::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Thu, 20 Nov
 2025 18:30:53 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.011; Thu, 20 Nov 2025
 18:30: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: 0d662361-c63f-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aLnTWkVkAfrlT4ONx75bEKaLlVXqYm2kNp9r3BttY8PNNfqwkjC1V3/ALmWvuy89LvzXO/n/adlmXb2yD2JXdJwR7n7KNIXWDgYSWGsbu62bLiBgtXwSwkBEraFA0dz7U81RHJT3SpVVPCJRVB2szN3GlKzlbpzkp7MdS7qehYAFgWgEZ0HVz7X3QaeleP2HKevrg5EqhU/NWHvR7eikR4xglsy6jgc1t9xmUhTzLmZt5Pi8VmjrVJnbjuuPwoo3CQai+cFJ9CizuG6TiA1F5sBEeNjjt20oCO4ZJSErwGStipTcnw9VxP5Bt0J2S2wyhPwzMjJJJa5BC8li6cmE5w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cBxSC6UCsEsioV2QWg0TKmfWGZelgz0jipyCXdGpmas=;
 b=lDvBwsbGb0Q+izIpAb8rUCL+PIy5ylxzOBD1blJK0HdWOfruv78X+Gg+xxYOAPnHyfoE1gU6Lmn2ALhnWGudbmycebe9TL38Vz9FUKa9AVJkEn5uFxjpZESXtBiB0ZQr5Ky70jeoswOwF6EjNUrfFxdrqSdnJVbCF4Vmbq7Z7Q7U8LSvSAa4b63JO8x7fMlUIvep7Pbo9Adj9L7EDY7aKFrHIjSJad02GYG0X9R9EN9p1r+ZKvB7jeDDrMU1Yqz0wNM50beZYdroN8GcxH34fj3d+SsVEzvpWih1Vcj6j3cmt13ZdpMFv/We1drI0uHwBIbwPhlLouyt8meUI7A2fQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cBxSC6UCsEsioV2QWg0TKmfWGZelgz0jipyCXdGpmas=;
 b=R0UE68f/euyWU7OqvSrJNSgEJ6LSGxq4l/ujB8CmdujXYzshGZZgvX3WvUEXIv4vmL/wGop04a6sIpP2YknMYvpcm/koXd95VInZNtRr6CJguB93eTmyStXRpdXfQBnBq54oH+MFHxhdWT4hPFqjsv7Bif+FfQRyRp2HCkoasWQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <2ca642c5-3fcb-4a35-8500-ed40e540b300@citrix.com>
Date: Thu, 20 Nov 2025 18:30:50 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 05/12] x86/io-apic: purge usage of logical mode
To: Jan Beulich <jbeulich@suse.com>
Cc: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120090637.25087-6-roger.pau@citrix.com>
 <63a4f416-f475-4b6b-8f44-db570b7a75d9@citrix.com>
 <cd41f345-f5db-4d64-8914-a6984f7fa83e@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <cd41f345-f5db-4d64-8914-a6984f7fa83e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0309.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:391::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_|BY5PR03MB5316:EE_
X-MS-Office365-Filtering-Correlation-Id: ccd18a3c-95cc-4f04-f265-08de2862efea
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?a0tZVktybTBVOWFHYWJDSCtuMjNRdUxKOFlJSVlxaGZCbFRwU0Y5RGp2Y3Jq?=
 =?utf-8?B?TldGbUFjdFlCUjlCVDRVZjF5b0VOMzdLZHRCVUgwV2x1bGtuZXlOUVNVdyto?=
 =?utf-8?B?SXZJMlNMRDJlK05HdG1yS3hOWUtWcmtIa2ViaTB3UVd6Y0YrSW80cDNiMGov?=
 =?utf-8?B?cVpmZmM4bmtmZDRHMGZ5QVpFWTVwZktRcTFqOUhmNEo4ZkJyb3ltczNtcWZL?=
 =?utf-8?B?eThMYTQyYUZBeXl5Tnorem1pd285VC9OakphYTZ0UW8yUGZjQ1FmRlI4KytC?=
 =?utf-8?B?K2VJT0h5QVFqOUlsT1NhRzRSR0pjbTFxK0VCaWMyZ1d0OXFMS3QvZmF5VTkv?=
 =?utf-8?B?T3puZ3VpcGFPWGlER0V5TWozandXWlU5TFJJK1hCc3Z2UEdFSnhGNUlUSmZs?=
 =?utf-8?B?YW9od3NNaWlGOVMyOVVnUTFRUjQzeGhsM1dTaVlTaERhb3BNQ01QMzNRMHB2?=
 =?utf-8?B?TlppUkJxQTBjTmlvSC90TW5URkRFdWl3aEg2VzRzaEpWOFRPTEZVME5kSTM2?=
 =?utf-8?B?b0tnYjFmQ2tQMWduOWQ3aEx2MzJIeVMrY1ZSakFaOHNTUmt1RGhUbHZ0N0Qv?=
 =?utf-8?B?Q2R2a1k1ME40LzgzR1NWbWR1RkFVYW9FN3l4Z1NoWFNGcms5SXNLMVNPT2JX?=
 =?utf-8?B?cTFUL0NHQlBjZHJZZDZHQTk4R2FHYUJYK1Z3dTBkemc0V1BmV1c2TzR4NHcv?=
 =?utf-8?B?ZkhXZ05PQ3ZhdWloUUVTc0J3dmhKNExQdHJKVWhTZ3B6OFR1cFhZbEFKbld4?=
 =?utf-8?B?QmRwaEJMeTVBYmRGbmZTaXFEVnk1eU9sQVJ2ZnB5T3VFbE5HZ2Rkd1dITjdq?=
 =?utf-8?B?WTdDd2JhckNDekpTcmVYeUltTWFob1ZOeHp3NG9LQWVrUk5aNFBLVnEvRWls?=
 =?utf-8?B?SE9qQU9VK0YyOFFHL0tsUmpVTVN5em5yaVRSa3ViUUtpc3Z4K3dHbkxPa091?=
 =?utf-8?B?VUlxYlVWVVNsSlRkZEgwcFVPTTRDRzN4NEZhOTVnT09YNmozb216SzlRcmJ6?=
 =?utf-8?B?NjliOU1aanh6M2VuRDFIREtTSWlSOG1xZXdzNEZTUU1kRmJHa1ByR2oxVG1z?=
 =?utf-8?B?bU43Skx3SVRpT2FtMGE2M2NhL2gwS0VUVWdOZWV4cjdUVDJpV3RoWXNHMWdq?=
 =?utf-8?B?ajcxcmtjZ2RRVFJQejJuS2lEYXFFQjNXQnBLS3VWd0daVU5hdmdEKzZwUlpq?=
 =?utf-8?B?cW5Gc2FLM2MzZkFyWTB4NUZjbXFSeDlXeG9ESUZZWG1QT1RSRVdiNlg5Qm5B?=
 =?utf-8?B?M2xhWDB4RG5hVTRPelIzM1Nocmw2NnZXRkg2ZE92YkVwc2gzZmtKUS9JaUU3?=
 =?utf-8?B?RmEvWFE3QWhad00yWnVod1lKNW5QMWpLVlZNajMzUW91ZFU4N1gyZktlNldY?=
 =?utf-8?B?TjNPbWxPc3IwQ1BLTHFpdHlyRThZbVdoMlFrTzEyQWIzaHBUSnRvTHBHNHhj?=
 =?utf-8?B?OUF2WXQ4VHNqTzUvTTNNWlhKWENyRU1OekNlVDhSOFNyQWVyNW93cG50aFd3?=
 =?utf-8?B?aFI0cTQ3LzM2OVFIaDBSb0RHWkE3b09pdGVOeHpVK1o3YnEzZEVVNkNhTTJK?=
 =?utf-8?B?TjlIU2NSYmNMT0tXeFBVditEM0xJMjNhc3hxYjVEZ1RxMHBuTXdvTHJlS1da?=
 =?utf-8?B?c29lTVNJbWpDaEp0WUlMUXJncTcrMmk1OHZqSFI4T3ZOaW9yNnBnRjJTakZS?=
 =?utf-8?B?LzF6dEViMC8wZFIwYVNCVlFmNVlKcy9EZnFqV1lrUUtURzFtM2I3TVdrZDVP?=
 =?utf-8?B?Mjk5QjIwZkJiWkxXWkE1Ujc1a05NOVdQUjAxa3A1MU5idTZiRU55U1YycVJ0?=
 =?utf-8?B?Z1EwelJUM3psS1BKTVVuRldmOUlmOHc4QjNQRHlwbTVOMmRXcmZGS3V4aEth?=
 =?utf-8?B?eVNTcWNrZWRRV3FMSm9IcUs3bmFMcE1BNTd0bEZFSkxROXdQOVJORGpFeGo4?=
 =?utf-8?Q?V6Mklhz5mkD9LMuRqesR8dX98KMKfl9H?=
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?N3BiU2JXTmlwWExxOVV3OEtVYWlnN0VOaFY2NWwzMFgxbkg2dDdFL3pjU25J?=
 =?utf-8?B?a1lkeVJFQnp2QjZCVmJIdk5zMjd2cG1weWlnN2VXaSs5WC9pY2wzMGdaaUwx?=
 =?utf-8?B?a1lYM0dHeFkycWRrZDlaeXRYQ1Y5bnEzMUlHZXJyVTVuOXErUThVeTFIb0x6?=
 =?utf-8?B?Yy94RlY5MkM0MFhJQXh4VFBEajI4QWtVMm1kb2V6VFJUaVRKeFpCUzBaSERO?=
 =?utf-8?B?em9tOUl0d09EOHUrMFEvaTJhMWw2UThCRThKMTZoMjdXNTRmdEppNDJBa0VE?=
 =?utf-8?B?UHpEQ3o4L1hLSkd1MWNMRkNkUE1vZm9JSGVrUW9haTJKNnRBS1BuaDhTR3Nt?=
 =?utf-8?B?dEZyUG9yUXo2Rkh2d2tOaEM2SUZRQ0h5bU8wajdGUFNBd1lYczdzZGU4RDhR?=
 =?utf-8?B?eTZHejJSeEtkVnZjRm1uSWI1UHc5c0ZKblNEYmlCSXVVcUQvQlpDU28xOHVx?=
 =?utf-8?B?WUY1UnhPMWFzZGFBelhMMlJqRkkvQlBJbGwxbXVNd0doc2ZPcTF0ZkYwUTRr?=
 =?utf-8?B?UG4yWVExalUyaGtud1FLWkt4dWhsdUNJY3BTUXY5ZlR3c3laMWV0Rm9jRWww?=
 =?utf-8?B?TlFNTlZUNUFiQnhDZU1UVnN3YksyNWErMzJsbFR3UkhOcXYweloyb0xLRFpE?=
 =?utf-8?B?VFR5WVpJKzdsd1RnTjUxVWhHMUsxekJpUTIvVlkyaTV3UTNGMGNJMklZRnMx?=
 =?utf-8?B?MHlaUUlhdXZDTWFzc3lHRkFmaWQ2d3ZmSmp4L1JoK293cnJ0bnhYOXJLVVRB?=
 =?utf-8?B?QklmQUNDemIyb1BteWhXNWdweThRZlVza1lFN051SnZpS2lSR0tJOGtjNEpn?=
 =?utf-8?B?QXdQdVNUdTVNS2l4b1JLeWJQUUpQNUtJZjB4WlZGRy9sR043aEsyOFZxWTVY?=
 =?utf-8?B?N3dXZ1hrVUlVZk05QTcyU1QvOTJHUjBiZHJTbGE4ZHJzbHBBQVpJZXVUTHZu?=
 =?utf-8?B?VU9TOG1HTmQreUlFTWU0Q3ZJSDdLSjVEYkgwT012VUNMRUVVN2ZNdDBiVElT?=
 =?utf-8?B?Ujl4VXBaMVdyTnJvTTVVc2pYNFlOdUdtWkliQnNOa2VFcFlVN0wyK1pObmh6?=
 =?utf-8?B?eGtNS0dVU1ErQWtreFRvWXNXMGtncm5zYkRWaWwxelhhMDRUSEVrVDNwOGRZ?=
 =?utf-8?B?ZUlGZDFBV1J4aW5JR1hEQi9POUNMU0JBc1N3VTA3RWx0OGRVWmJsUFBLdmlQ?=
 =?utf-8?B?NjBlU0hXb0NjdVk0K3pOVWo2Z0luekZDSGNqbWZoZk1tb21XaUlyS2pUb3lx?=
 =?utf-8?B?Z24xS2RjOUpjcGFwcXFBbFEyTnlaNVNLYU55OGFhanY2ZjhkbFBtR1RYaFI0?=
 =?utf-8?B?SjRQWUlUSURTRUdDNmxZK2VSY0pmenJIOGVrdVJoZEtRdjVLbFQ4WlBRdzgv?=
 =?utf-8?B?LzBRMzNYWlpUQkZpOEJTT3ZKcUFsTk4wSW1xWUxDalZLUjdpSG1uTzlJa2dP?=
 =?utf-8?B?eUV4VFByc1d0OXRDMU1aa3cySnlHcnlRMmltalcreWhCY0FpYzFGMUFwbDVO?=
 =?utf-8?B?TnNzSTdmS01zZlkrZUY1UkxqWGhmTXc2aUo5Z3Y1eUUvWVIrbU9rRFNJRklE?=
 =?utf-8?B?U3U4ZzNzdlQwcDAxdGk4aUs1eHRKK0RacW9QOUsraFMzZ0NSS3IxRm1CK0JT?=
 =?utf-8?B?VnhjOG5lN0JBbEwveitEUjJrZkNmcEF3d2VUckw2MHA1ZGQ0SmFSZmhsb0FE?=
 =?utf-8?B?UUFQQ3ZNdXdQcGNWa0xrVzdIT0lmTDhVaDVZMFVxV1lxcS9EYlg5cGkzcG1H?=
 =?utf-8?B?MXR1c2p6QnZMQWkyVnd3Y21wdytkMWU1MEtZSXk0dHRkTTZpS0dicXdGNlFj?=
 =?utf-8?B?aGN0cGhad09HUE9vd1hIZnZlY0hnRENuTHZNU0JZOVJ5VG9nUGxaYWtmbjFp?=
 =?utf-8?B?dkVWVkI4UytYOHNsOUFpcXhWWEFKMVJHZEpUdGhVUm9rOVpzQTBPSHdJVzFu?=
 =?utf-8?B?VGZoZkF6VXZBTjVDMDh5NkZ1NHFmcmVtaExJRU1OK0I0VDNkejRtK0U5Slkx?=
 =?utf-8?B?emtJbG81UUhXL1F4VlZJTmttTlJDZVhCdVhWdTZyWHROa01MZ0I1THNaYzFu?=
 =?utf-8?B?dXViOUpIdnFjS3ZWSEtKemNaZE1PZEs1TnlzbEEvZ2dYWGpKbzVNR3VIenF3?=
 =?utf-8?B?RFkydEV6MWgvQUlCSnVnZTVjY2RPVFFzeFpxQi9tcVZaOE1jM2hqcHp4d0xT?=
 =?utf-8?B?RHc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ccd18a3c-95cc-4f04-f265-08de2862efea
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2025 18:30:53.2302
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cjvnw/gqT0M2cmCbUeOB8SRTnTnC1lsfK8W0hvGxE39cAZBlpEPcXRDcfHhoVraemBG6DoGIIU/N/6eIfvgyHptR9VwV45FlPpCsawcz6ag=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5316

On 20/11/2025 2:27 pm, Jan Beulich wrote:
> On 20.11.2025 14:18, Andrew Cooper wrote:
>> On 20/11/2025 9:06 am, Roger Pau Monne wrote:
>>> The IO-APIC RTEs are unconditionally programmed with physical destination
>>> mode, and hence the field to set in the RTE is always physical_dest.
>>>
>>> Remove the mode parameter from SET_DEST() and take the opportunity to
>>> convert it into a function, there's no need for it to be a macro.
>>>
>>> This is a benign fix, because due to the endianness of x86 the start of the
>>> physical_dest and logical_dest fields on the RTE overlap.
>> RTEs do not have overlapping fields; it's Xen's abstraction of the
>> IO-APIC which is buggy.
> I wouldn't put it this negatively. In the old days, ...
>
>> For starters, Xen's IO_APIC_route_entry still only has a 4-bit
>> physical_dest field which hasn't been true since the Pentium 4 days.Â 
>> This might explain some of the interrupt bugs we see.
> ... as you mention here, the two fields were distinct (and hence overlapping).

Since when?

Even in the oldest manuals I can find, it's a single field called
destination, and who's contents is interpreted differently depending on
the logical mode bit.

>From a hardware point of view, there will either be 4 or 8 bits of
storage, and it will have nothing to do with the lower bits.

> In a number of places we passed "logical" to SET_DEST() as the middle argument,
> thus covering for the too narrow field width of physical_dest. Dropping that
> parameter and always using physical_dest requires that field to be widened,
> though (or else we'll end up chopping off the top 4 bits, as we already do in
> disable_IO_APIC() and unlock_ExtINT_logic() - both benign as long as the CPU
> used always has APIC ID 0, which will at least typically be the case, I think).

Latent or not, it's still in need of fixing.

It looks like the code Xen inherited was added to Linux in e1d919786
(Jan 2008, even then only x86_32) and deleted by d83e94acd957 (August 2008).

It looks like we're 17 years late undoing this...

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:13:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:13:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167724.1493947 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMA5j-0006nK-5B; Thu, 20 Nov 2025 19:13:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167724.1493947; Thu, 20 Nov 2025 19: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 1vMA5j-0006nD-2E; Thu, 20 Nov 2025 19:13:15 +0000
Received: by outflank-mailman (input) for mailman id 1167724;
 Thu, 20 Nov 2025 19:13: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=r49+=54=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMA5h-0006n7-46
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:13: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 f2e0eb95-c644-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 20:13:09 +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-616-FjAiVakzPqqK6eg0tFZr0Q-1; Thu,
 20 Nov 2025 14:13:03 -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 CF1531800370; Thu, 20 Nov 2025 19:12:58 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 9A99730044DC; Thu, 20 Nov 2025 19:12:56 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 214AA21E6A27; Thu, 20 Nov 2025 20:12:54 +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: f2e0eb95-c644-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763665988;
	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=jlhMzPTHuX4cLpmrLyGntMkPW4ErwgtosCfiUCW5AfA=;
	b=F1nCmebA+9OheAbQqnWMAVA73WRPBFfGA2+xaBb9qSZaZHW+B6Ss25Cr4qgbo5u/nr3ki8
	vDC94+VjtmfGmZazKhr63O9a9lFXhxpCYXGtxsFtzD5/sc1NuqMdERkuJOjgeuYVdIIEC9
	t7vR+gTSX2CBbbND82BfuDKdQb6KKVQ=
X-MC-Unique: FjAiVakzPqqK6eg0tFZr0Q-1
X-Mimecast-MFC-AGG-ID: FjAiVakzPqqK6eg0tFZr0Q_1763665980
From: Markus Armbruster <armbru@redhat.com>
To: BALATON Zoltan <balaton@eik.bme.hu>
Cc: Daniel Henrique Barboza <dbarboza@ventanamicro.com>,
  qemu-devel@nongnu.org,  kwolf@redhat.com,  hreitz@redhat.com,
  mst@redhat.com,  imammedo@redhat.com,  anisinha@redhat.com,
  gengdongjiu1@gmail.com,  peter.maydell@linaro.org,
  alistair@alistair23.me,  edgar.iglesias@gmail.com,  npiggin@gmail.com,
  harshpb@linux.ibm.com,  palmer@dabbelt.com,  liwei1518@gmail.com,
  zhiwei_liu@linux.alibaba.com,  sstabellini@kernel.org,
  anthony@xenproject.org,  paul@xen.org,  berrange@redhat.com,
  peterx@redhat.com,  farosas@suse.de,  eblake@redhat.com,
  vsementsov@yandex-team.ru,  eduardo@habkost.net,
  marcel.apfelbaum@gmail.com,  philmd@linaro.org,  wangyanan55@huawei.com,
  zhao1.liu@intel.com,  qemu-block@nongnu.org,  qemu-arm@nongnu.org,
  qemu-ppc@nongnu.org,  qemu-riscv@nongnu.org,
  xen-devel@lists.xenproject.org
Subject: Re: [PATCH 1/5] hw/core/loader: Make load_elf_hdr() return bool,
 simplify caller
In-Reply-To: <072c1f11-1bb4-6f19-f847-e4ba07c148c3@eik.bme.hu> (BALATON
	Zoltan's message of "Thu, 20 Nov 2025 13:55:13 +0100 (CET)")
References: <20251119130855.105479-1-armbru@redhat.com>
	<20251119130855.105479-2-armbru@redhat.com>
	<4fb0a736-4450-47c0-9f9e-6cb86a3b28ea@ventanamicro.com>
	<072c1f11-1bb4-6f19-f847-e4ba07c148c3@eik.bme.hu>
Date: Thu, 20 Nov 2025 20:12:54 +0100
Message-ID: <873468tt55.fsf@pond.sub.org>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4

BALATON Zoltan <balaton@eik.bme.hu> writes:

> On Thu, 20 Nov 2025, Daniel Henrique Barboza wrote:
>> On 11/19/25 10:08 AM, Markus Armbruster wrote:
>>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>>> ---
>>
>> Nice cleanup
>>
>>
>> Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>

[...]

>>> diff --git a/hw/riscv/spike.c b/hw/riscv/spike.c
>>> index b0bab3fe00..8531e1d121 100644
>>> --- a/hw/riscv/spike.c
>>> +++ b/hw/riscv/spike.c
>>> @@ -180,15 +180,7 @@ static void create_fdt(SpikeState *s, const 
>>> MemMapEntry *memmap,
>>>     static bool spike_test_elf_image(char *filename)
>>>   {
>>> -    Error *err = NULL;
>>> -
>>> -    load_elf_hdr(filename, NULL, NULL, &err);
>>> -    if (err) {
>>> -        error_free(err);
>>> -        return false;
>>> -    } else {
>>> -        return true;
>>> -    }
>>> +    return load_elf_hdr(filename, NULL, NULL, NULL);
>
> Does it worth to keep this function or could just be inlined at the two 
> callers now that it's equivalent with load_elf_hdr?

Palmer, Alistair, Daniel, got a preference?



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:13:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:13:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167736.1493957 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMA6N-0007Jf-H8; Thu, 20 Nov 2025 19:13:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167736.1493957; Thu, 20 Nov 2025 19:13:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMA6N-0007JY-Du; Thu, 20 Nov 2025 19:13:55 +0000
Received: by outflank-mailman (input) for mailman id 1167736;
 Thu, 20 Nov 2025 19:13:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=r49+=54=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMA6L-000753-MP
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:13:53 +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 0c239c3e-c645-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 20:13:51 +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-567-2sTwlhUGNZObweGKQdVHUQ-1; Thu,
 20 Nov 2025 14:13:48 -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-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 9C6C319560A1; Thu, 20 Nov 2025 19:13:43 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 7CAC730044DB; Thu, 20 Nov 2025 19:13:41 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 50C8F21E66EF; Thu, 20 Nov 2025 20:13: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: 0c239c3e-c645-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763666030;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=umeOgmRBAWLAHxdfid+WkX0aqDhcSVhY+M4Sagb57i8=;
	b=H/hfm1I2bU/CqiYpSSkYO+fJDOTaKOWCp+ZVq7JwR2RMu91S2IiowOOuQdnfq3GomfQyg2
	PHrRXipbhbtaLFF/1jnTQaHXZIMXEqqnfwl4XZY6YNakBZKn4l5IKRWcyiZ32MTJrfPSkj
	HVTAIcuG89RfMPFBs+bhX5vwRHBwz9c=
X-MC-Unique: 2sTwlhUGNZObweGKQdVHUQ-1
X-Mimecast-MFC-AGG-ID: 2sTwlhUGNZObweGKQdVHUQ_1763666024
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	pizhenwei@bytedance.com,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH 03/14] tap-solaris: Use error_setg_file_open() for better error messages
Date: Thu, 20 Nov 2025 20:13:28 +0100
Message-ID: <20251120191339.756429-4-armbru@redhat.com>
In-Reply-To: <20251120191339.756429-1-armbru@redhat.com>
References: <20251120191339.756429-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4

Error messages change from

    Can't open /dev/ip (actually /dev/udp)
    Can't open /dev/tap
    Can't open /dev/tap (2)

to

    Could not open '/dev/udp': REASON
    Could not open '/dev/tap': REASON

where REASON is the value of strerror(errno).

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 net/tap-solaris.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/tap-solaris.c b/net/tap-solaris.c
index 75397e6c54..faf7922ea8 100644
--- a/net/tap-solaris.c
+++ b/net/tap-solaris.c
@@ -87,13 +87,13 @@ static int tap_alloc(char *dev, size_t dev_size, Error **errp)
 
     ip_fd = RETRY_ON_EINTR(open("/dev/udp", O_RDWR, 0));
     if (ip_fd < 0) {
-        error_setg(errp, "Can't open /dev/ip (actually /dev/udp)");
+        error_setg_file_open(errp, errno, "/dev/udp");
         return -1;
     }
 
     tap_fd = RETRY_ON_EINTR(open("/dev/tap", O_RDWR, 0));
     if (tap_fd < 0) {
-        error_setg(errp, "Can't open /dev/tap");
+        error_setg_file_open(errp, errno, "/dev/tap");
         return -1;
     }
 
@@ -107,7 +107,7 @@ static int tap_alloc(char *dev, size_t dev_size, Error **errp)
 
     if_fd = RETRY_ON_EINTR(open("/dev/tap", O_RDWR, 0));
     if (if_fd < 0) {
-        error_setg(errp, "Can't open /dev/tap (2)");
+        error_setg_file_open(errp, errno, "/dev/tap");
         return -1;
     }
     if(ioctl(if_fd, I_PUSH, "ip") < 0){
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:13:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:13:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167738.1493966 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMA6O-0007Xp-Nk; Thu, 20 Nov 2025 19:13:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167738.1493966; Thu, 20 Nov 2025 19: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 1vMA6O-0007Xi-KT; Thu, 20 Nov 2025 19:13:56 +0000
Received: by outflank-mailman (input) for mailman id 1167738;
 Thu, 20 Nov 2025 19:13: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=r49+=54=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMA6O-000753-58
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:13:56 +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 0dec2c91-c645-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 20:13:54 +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-7Iq_K6oTO5mz-isRrtZO_Q-1; Thu,
 20 Nov 2025 14:13:49 -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 7BF861956053; Thu, 20 Nov 2025 19:13:43 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 9A8CB30044E7; Thu, 20 Nov 2025 19:13:41 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 45CE821E6935; Thu, 20 Nov 2025 20:13: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: 0dec2c91-c645-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763666033;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=fcIBzXudHPYvY6QmF4OmsaPzhsA+4LiQymdChLvcMTo=;
	b=Fk6KZ67z06M2kD2DP998B41H+hWQPwAp1IQ/v8lk6vDEslXLbq1+LxmerJqDHxpzgeQE0D
	OyFARJKmBnMr0Nxe++HHyoUNH5xOfvgHeWOx0iwS58/cN7Mm0wN4hnBsJtxIoS+PMxXjHv
	iXG7rwY2JkutCoaVp3msaIHaKB4NpLY=
X-MC-Unique: 7Iq_K6oTO5mz-isRrtZO_Q-1
X-Mimecast-MFC-AGG-ID: 7Iq_K6oTO5mz-isRrtZO_Q_1763666024
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	pizhenwei@bytedance.com,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH 01/14] error: Strip trailing '\n' from error string arguments (again)
Date: Thu, 20 Nov 2025 20:13:26 +0100
Message-ID: <20251120191339.756429-2-armbru@redhat.com>
In-Reply-To: <20251120191339.756429-1-armbru@redhat.com>
References: <20251120191339.756429-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4

Tracked down with scripts/coccinelle/err-bad-newline.cocci.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 hw/audio/es1370.c | 2 +-
 ui/gtk.c          | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/audio/es1370.c b/hw/audio/es1370.c
index 9873ffadab..566f93f1ea 100644
--- a/hw/audio/es1370.c
+++ b/hw/audio/es1370.c
@@ -228,7 +228,7 @@ static void print_sctl(uint32_t val)
 #undef a
         error_report("es1370: "
                 "%s p2_end_inc %d, p2_st_inc %d,"
-                " r1_fmt %s, p2_fmt %s, p1_fmt %s\n",
+                " r1_fmt %s, p2_fmt %s, p1_fmt %s",
                 buf,
                 (val & SCTRL_P2ENDINC) >> SCTRL_SH_P2ENDINC,
                 (val & SCTRL_P2STINC) >> SCTRL_SH_P2STINC,
diff --git a/ui/gtk.c b/ui/gtk.c
index 48571bedbf..e83a366625 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -1197,7 +1197,7 @@ static gboolean gd_touch_event(GtkWidget *widget, GdkEventTouch *touch,
         type = INPUT_MULTI_TOUCH_TYPE_END;
         break;
     default:
-        warn_report("gtk: unexpected touch event type\n");
+        warn_report("gtk: unexpected touch event type");
         return FALSE;
     }
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:13:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:13:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167739.1493977 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMA6P-0007mU-UF; Thu, 20 Nov 2025 19:13:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167739.1493977; Thu, 20 Nov 2025 19:13: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 1vMA6P-0007mK-RG; Thu, 20 Nov 2025 19:13:57 +0000
Received: by outflank-mailman (input) for mailman id 1167739;
 Thu, 20 Nov 2025 19:13: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=r49+=54=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMA6O-000753-ML
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:13:56 +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 0e42a204-c645-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 20:13:55 +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-399-AavvAK_sPLGzx3xXYBncyQ-1; Thu,
 20 Nov 2025 14:13:48 -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 72F7B19541AF; Thu, 20 Nov 2025 19:13:43 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 8119818004D8; Thu, 20 Nov 2025 19:13:41 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 5665A21E66F8; Thu, 20 Nov 2025 20:13: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: 0e42a204-c645-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763666034;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=sx8qN/rQg9K32+B1nXrTKMNVKMJAAYsg2jr2Y0IDjq8=;
	b=DFOVozpAYzD+t0FujRAcOCAfPewNE2e5it49JKz0kujGIOnyQkIErJbTP5vnujkNf5ckDw
	6aZBJv6sO/PJDqHr6wJr3Ws4cfw7wVKw25xrVJbPfg0bXTnTxbHl9irVo2we1P5JXcPSAa
	5pQGn2iQ7A5Njm+6yz7XgUaJNpF2tc8=
X-MC-Unique: AavvAK_sPLGzx3xXYBncyQ-1
X-Mimecast-MFC-AGG-ID: AavvAK_sPLGzx3xXYBncyQ_1763666024
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	pizhenwei@bytedance.com,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH 04/14] qga: Use error_setg_file_open() for better error messages
Date: Thu, 20 Nov 2025 20:13:29 +0100
Message-ID: <20251120191339.756429-5-armbru@redhat.com>
In-Reply-To: <20251120191339.756429-1-armbru@redhat.com>
References: <20251120191339.756429-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93

Error messages change from

    open("FNAME"): REASON

to

    Could not open 'FNAME': REASON

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 qga/commands-linux.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/qga/commands-linux.c b/qga/commands-linux.c
index 4a09ddc760..5cf76ca2d9 100644
--- a/qga/commands-linux.c
+++ b/qga/commands-linux.c
@@ -1502,14 +1502,15 @@ static void transfer_vcpu(GuestLogicalProcessor *vcpu, bool sys2vcpu,
 
     dirfd = open(dirpath, O_RDONLY | O_DIRECTORY);
     if (dirfd == -1) {
-        error_setg_errno(errp, errno, "open(\"%s\")", dirpath);
+        error_setg_file_open(errp, errno, dirpath);
         return;
     }
 
     fd = openat(dirfd, fn, sys2vcpu ? O_RDONLY : O_RDWR);
     if (fd == -1) {
         if (errno != ENOENT) {
-            error_setg_errno(errp, errno, "open(\"%s/%s\")", dirpath, fn);
+            error_setg_errno(errp, errno, "could not open %s/%s",
+                             dirpath, fn);
         } else if (sys2vcpu) {
             vcpu->online = true;
             vcpu->can_offline = false;
@@ -1711,7 +1712,7 @@ static void transfer_memory_block(GuestMemoryBlock *mem_blk, bool sys2memblk,
     dirfd = open(dirpath, O_RDONLY | O_DIRECTORY);
     if (dirfd == -1) {
         if (sys2memblk) {
-            error_setg_errno(errp, errno, "open(\"%s\")", dirpath);
+            error_setg_file_open(errp, errno, dirpath);
         } else {
             if (errno == ENOENT) {
                 result->response = GUEST_MEMORY_BLOCK_RESPONSE_TYPE_NOT_FOUND;
@@ -1936,7 +1937,7 @@ static GuestDiskStatsInfoList *guest_get_diskstats(Error **errp)
 
     fp = fopen(diskstats, "r");
     if (fp  == NULL) {
-        error_setg_errno(errp, errno, "open(\"%s\")", diskstats);
+        error_setg_file_open(errp, errno, diskstats);
         return NULL;
     }
 
@@ -2047,7 +2048,7 @@ GuestCpuStatsList *qmp_guest_get_cpustats(Error **errp)
 
     fp = fopen(cpustats, "r");
     if (fp  == NULL) {
-        error_setg_errno(errp, errno, "open(\"%s\")", cpustats);
+        error_setg_file_open(errp, errno, cpustats);
         return NULL;
     }
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:13:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:13:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167740.1493981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMA6Q-0007pV-8l; Thu, 20 Nov 2025 19:13:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167740.1493981; Thu, 20 Nov 2025 19: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 1vMA6Q-0007ov-1y; Thu, 20 Nov 2025 19:13:58 +0000
Received: by outflank-mailman (input) for mailman id 1167740;
 Thu, 20 Nov 2025 19:13: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=r49+=54=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMA6P-0006n7-3h
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:13:57 +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 0ec30d36-c645-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 20:13:56 +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-657-jEDqh1RKOraiJsp9TZW5JQ-1; Thu,
 20 Nov 2025 14:13: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-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id CAA1218002D0; Thu, 20 Nov 2025 19:13:46 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 1D23C1801747; Thu, 20 Nov 2025 19:13:46 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 768B121E65DF; Thu, 20 Nov 2025 20:13: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: 0ec30d36-c645-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763666035;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=ECBnpLLCj16fpj21fI+h9tBul9riCpuU3pZvsycdoc0=;
	b=GhIcUS9Ksoq7tPOnt3raW5KN7LB0CKRsfT9yvMG5cNBhVr6SZXj4H5pnkfcNF2ZOQsp6Iw
	XvsjCQgMes8QIIJz2rSPjNEL1LnIFPm6ieP1sltkfmCh7x1S5Xgrp9mMgNT5bxlS13h4JE
	Kx0o5N+QiZnVNeXOEQn9kHiwigCA14c=
X-MC-Unique: jEDqh1RKOraiJsp9TZW5JQ-1
X-Mimecast-MFC-AGG-ID: jEDqh1RKOraiJsp9TZW5JQ_1763666027
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	pizhenwei@bytedance.com,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH 10/14] net/slirp: Improve file open error message
Date: Thu, 20 Nov 2025 20:13:35 +0100
Message-ID: <20251120191339.756429-11-armbru@redhat.com>
In-Reply-To: <20251120191339.756429-1-armbru@redhat.com>
References: <20251120191339.756429-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111

This error reports failure to create a temporary file, and
error_setg_file_open() would probably be too terse, so merely switch
to error_setg_errno() to add errno information.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 net/slirp.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/net/slirp.c b/net/slirp.c
index 120eef6122..5996fec512 100644
--- a/net/slirp.c
+++ b/net/slirp.c
@@ -1034,8 +1034,10 @@ static int slirp_smb(SlirpState* s, const char *exported_dir,
 
     f = fopen(smb_conf, "w");
     if (!f) {
+        int eno = errno;
+
         slirp_smb_cleanup(s);
-        error_setg(errp,
+        error_setg_errno(errp, eno,
                    "Could not create samba server configuration file '%s'",
                     smb_conf);
         g_free(smb_conf);
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:13:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:13:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167741.1493988 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMA6Q-0007u9-IV; Thu, 20 Nov 2025 19:13:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167741.1493988; Thu, 20 Nov 2025 19: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 1vMA6Q-0007sK-AR; Thu, 20 Nov 2025 19:13:58 +0000
Received: by outflank-mailman (input) for mailman id 1167741;
 Thu, 20 Nov 2025 19: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=r49+=54=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMA6P-000753-5E
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:13:57 +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 0e725311-c645-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 20:13:55 +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-471-QWJXJjopMraUZ211FtOGkg-1; Thu,
 20 Nov 2025 14:13:48 -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 6D9F619560A2; Thu, 20 Nov 2025 19:13:43 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id B20DA1940E82; Thu, 20 Nov 2025 19:13:41 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 4AFF521E6741; Thu, 20 Nov 2025 20:13: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: 0e725311-c645-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763666034;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=4lLXR0s+PhRAM8v+Y3wk6pvI0Xo8xxxorF5WwAF7BFI=;
	b=O6Ti5BmS8//3F6hcn9F/Syl0zGBvxbQTZhbQ0D05StDIccwlkH8ShFBPPmMVAwMfCQyEah
	7drqztM9qO9EQQPigNhYnqmKZsbg5qjZwnIJnh5u/uR74DFgci2Yt/XhvYcQoB0lRJOrhi
	N+jUOpMhvBoAVrkc37B2hJdjLuvf2eY=
X-MC-Unique: QWJXJjopMraUZ211FtOGkg-1
X-Mimecast-MFC-AGG-ID: QWJXJjopMraUZ211FtOGkg_1763666024
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	pizhenwei@bytedance.com,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH 02/14] hw/usb: Use error_setg_file_open() for a better error message
Date: Thu, 20 Nov 2025 20:13:27 +0100
Message-ID: <20251120191339.756429-3-armbru@redhat.com>
In-Reply-To: <20251120191339.756429-1-armbru@redhat.com>
References: <20251120191339.756429-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17

The error message changes from

    open FILENAME failed

to

    Could not open 'FILENAME': REASON

where REASON is the value of strerror(errno).

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 hw/usb/bus.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/usb/bus.c b/hw/usb/bus.c
index 8dd2ce415e..47d42ca3c1 100644
--- a/hw/usb/bus.c
+++ b/hw/usb/bus.c
@@ -262,7 +262,7 @@ static void usb_qdev_realize(DeviceState *qdev, Error **errp)
         int fd = qemu_open_old(dev->pcap_filename,
                                O_CREAT | O_WRONLY | O_TRUNC | O_BINARY, 0666);
         if (fd < 0) {
-            error_setg(errp, "open %s failed", dev->pcap_filename);
+            error_setg_file_open(errp, errno, dev->pcap_filename);
             usb_qdev_unrealize(qdev);
             return;
         }
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:14:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:14:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167742.1494005 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMA6R-0008Mr-U6; Thu, 20 Nov 2025 19:13:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167742.1494005; Thu, 20 Nov 2025 19:13:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMA6R-0008MI-OA; Thu, 20 Nov 2025 19:13:59 +0000
Received: by outflank-mailman (input) for mailman id 1167742;
 Thu, 20 Nov 2025 19:13: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=r49+=54=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMA6Q-0006n7-3u
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:13: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 0efa343d-c645-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 20:13:56 +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-562-HrIvBS7YNXey3loTidWDQQ-1; Thu,
 20 Nov 2025 14:13:52 -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-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id E64191955F22; Thu, 20 Nov 2025 19:13:46 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id D9DA31940E88; Thu, 20 Nov 2025 19:13:45 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 717FA21E65DC; Thu, 20 Nov 2025 20:13: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: 0efa343d-c645-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763666035;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=CbU8I1LM6zZzOVsePXRVxUmmgivtAGdqM7VPg9VNZ8o=;
	b=YDZsSKb6YuoYhut9pujKDFZiQcUxSTD4lTdTZCZRnFanUoxOfyCeivDlg/+e4hWd5HD5qI
	fUfk55e2hcUuxIkh5+1OMDNwmZfF+YYUhUNd+Kgz13ixbCkYuJscot6FOZmAmO9EJCX2+J
	j7tAQ+MSkWhNUtOHKfa8C0WPsvQjLhU=
X-MC-Unique: HrIvBS7YNXey3loTidWDQQ-1
X-Mimecast-MFC-AGG-ID: HrIvBS7YNXey3loTidWDQQ_1763666027
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	pizhenwei@bytedance.com,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH 09/14] error: Use error_setg_file_open() for simplicity and consistency
Date: Thu, 20 Nov 2025 20:13:34 +0100
Message-ID: <20251120191339.756429-10-armbru@redhat.com>
In-Reply-To: <20251120191339.756429-1-armbru@redhat.com>
References: <20251120191339.756429-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17

Replace

    error_setg_errno(errp, errno, MSG, FNAME);

by

    error_setg_file_open(errp, errno, FNAME);

where MSG is "Could not open '%s'" or similar.

Also replace equivalent uses of error_setg().

A few messages lose prefixes ("net dump: ", "SEV: ", __func__ ": ").
We could put them back with error_prepend().  Not worth the bother.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 hw/9pfs/9p-local.c        | 2 +-
 hw/acpi/core.c            | 2 +-
 hw/core/loader.c          | 2 +-
 hw/pci-host/xen_igd_pt.c  | 2 +-
 monitor/hmp-cmds-target.c | 2 +-
 net/dump.c                | 2 +-
 net/tap-bsd.c             | 6 +++---
 net/tap-linux.c           | 2 +-
 target/i386/sev.c         | 6 ++----
 ui/ui-qmp-cmds.c          | 3 +--
 util/vfio-helpers.c       | 5 ++---
 11 files changed, 15 insertions(+), 19 deletions(-)

diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c
index 31e216227c..376b377698 100644
--- a/hw/9pfs/9p-local.c
+++ b/hw/9pfs/9p-local.c
@@ -1456,7 +1456,7 @@ static int local_init(FsContext *ctx, Error **errp)
 
     data->mountfd = open(ctx->fs_root, O_DIRECTORY | O_RDONLY);
     if (data->mountfd == -1) {
-        error_setg_errno(errp, errno, "failed to open '%s'", ctx->fs_root);
+        error_setg_file_open(errp, errno, ctx->fs_root);
         goto err;
     }
 
diff --git a/hw/acpi/core.c b/hw/acpi/core.c
index ff16582803..d2677332af 100644
--- a/hw/acpi/core.c
+++ b/hw/acpi/core.c
@@ -277,7 +277,7 @@ void acpi_table_add(const QemuOpts *opts, Error **errp)
         int fd = open(*cur, O_RDONLY | O_BINARY);
 
         if (fd < 0) {
-            error_setg(errp, "can't open file %s: %s", *cur, strerror(errno));
+            error_setg_file_open(errp, errno, *cur);
             goto out;
         }
 
diff --git a/hw/core/loader.c b/hw/core/loader.c
index 590c5b02aa..b56e5eb2f5 100644
--- a/hw/core/loader.c
+++ b/hw/core/loader.c
@@ -379,7 +379,7 @@ void load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp)
 
     fd = open(filename, O_RDONLY | O_BINARY);
     if (fd < 0) {
-        error_setg_errno(errp, errno, "Failed to open file: %s", filename);
+        error_setg_file_open(errp, errno, filename);
         return;
     }
     if (read(fd, hdr, EI_NIDENT) != EI_NIDENT) {
diff --git a/hw/pci-host/xen_igd_pt.c b/hw/pci-host/xen_igd_pt.c
index 5dd17ef236..f6016f2cd5 100644
--- a/hw/pci-host/xen_igd_pt.c
+++ b/hw/pci-host/xen_igd_pt.c
@@ -55,7 +55,7 @@ static void host_pci_config_read(int pos, int len, uint32_t *val, Error **errp)
 
     config_fd = open(path, O_RDWR);
     if (config_fd < 0) {
-        error_setg_errno(errp, errno, "Failed to open: %s", path);
+        error_setg_file_open(errp, errno, path);
         goto out;
     }
 
diff --git a/monitor/hmp-cmds-target.c b/monitor/hmp-cmds-target.c
index e982061146..ad4ed2167d 100644
--- a/monitor/hmp-cmds-target.c
+++ b/monitor/hmp-cmds-target.c
@@ -331,7 +331,7 @@ static uint64_t vtop(void *ptr, Error **errp)
 
     fd = open("/proc/self/pagemap", O_RDONLY);
     if (fd == -1) {
-        error_setg_errno(errp, errno, "Cannot open /proc/self/pagemap");
+        error_setg_file_open(errp, errno, "/proc/self/pagemap");
         return -1;
     }
 
diff --git a/net/dump.c b/net/dump.c
index 581234b775..0c39f09892 100644
--- a/net/dump.c
+++ b/net/dump.c
@@ -111,7 +111,7 @@ static int net_dump_state_init(DumpState *s, const char *filename,
 
     fd = open(filename, O_CREAT | O_TRUNC | O_WRONLY | O_BINARY, 0644);
     if (fd < 0) {
-        error_setg_errno(errp, errno, "net dump: can't open %s", filename);
+        error_setg_file_open(errp, errno, filename);
         return -1;
     }
 
diff --git a/net/tap-bsd.c b/net/tap-bsd.c
index bbf84d1828..3fd300d46f 100644
--- a/net/tap-bsd.c
+++ b/net/tap-bsd.c
@@ -68,7 +68,7 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr,
         }
     }
     if (fd < 0) {
-        error_setg_errno(errp, errno, "could not open %s", dname);
+        error_setg_file_open(errp, errno, dname);
         return -1;
     }
 
@@ -118,7 +118,7 @@ static int tap_open_clone(char *ifname, int ifname_size, Error **errp)
 
     fd = RETRY_ON_EINTR(open(PATH_NET_TAP, O_RDWR));
     if (fd < 0) {
-        error_setg_errno(errp, errno, "could not open %s", PATH_NET_TAP);
+        error_setg_file_open(errp, errno, PATH_NET_TAP);
         return -1;
     }
 
@@ -166,7 +166,7 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr,
         snprintf(dname, sizeof dname, "/dev/%s", ifname);
         fd = RETRY_ON_EINTR(open(dname, O_RDWR));
         if (fd < 0 && errno != ENOENT) {
-            error_setg_errno(errp, errno, "could not open %s", dname);
+            error_setg_file_open(errp, errno, dname);
             return -1;
         }
     }
diff --git a/net/tap-linux.c b/net/tap-linux.c
index 2a90b58467..909c4f1fcf 100644
--- a/net/tap-linux.c
+++ b/net/tap-linux.c
@@ -57,7 +57,7 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr,
     if (fd < 0) {
         fd = RETRY_ON_EINTR(open(PATH_NET_TUN, O_RDWR));
         if (fd < 0) {
-            error_setg_errno(errp, errno, "could not open %s", PATH_NET_TUN);
+            error_setg_file_open(errp, errno, PATH_NET_TUN);
             return -1;
         }
     }
diff --git a/target/i386/sev.c b/target/i386/sev.c
index fd2dada013..8660ecd9e4 100644
--- a/target/i386/sev.c
+++ b/target/i386/sev.c
@@ -891,8 +891,7 @@ static SevCapability *sev_get_capabilities(Error **errp)
 
     fd = open(sev_device, O_RDWR);
     if (fd < 0) {
-        error_setg_errno(errp, errno, "SEV: Failed to open %s",
-                         sev_device);
+        error_setg_file_open(errp, errno, sev_device);
         g_free(sev_device);
         return NULL;
     }
@@ -1819,8 +1818,7 @@ static int sev_common_kvm_init(ConfidentialGuestSupport *cgs, Error **errp)
     devname = object_property_get_str(OBJECT(sev_common), "sev-device", NULL);
     sev_common->sev_fd = open(devname, O_RDWR);
     if (sev_common->sev_fd < 0) {
-        error_setg(errp, "%s: Failed to open %s '%s'", __func__,
-                   devname, strerror(errno));
+        error_setg_file_open(errp, errno, devname);
         g_free(devname);
         return -1;
     }
diff --git a/ui/ui-qmp-cmds.c b/ui/ui-qmp-cmds.c
index 74fa6c6ec5..d927121676 100644
--- a/ui/ui-qmp-cmds.c
+++ b/ui/ui-qmp-cmds.c
@@ -371,8 +371,7 @@ qmp_screendump(const char *filename, const char *device,
 
     fd = qemu_open_old(filename, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0666);
     if (fd == -1) {
-        error_setg(errp, "failed to open file '%s': %s", filename,
-                   strerror(errno));
+        error_setg_file_open(errp, errno, filename);
         return;
     }
 
diff --git a/util/vfio-helpers.c b/util/vfio-helpers.c
index fdff042ab4..8b1b2e2f05 100644
--- a/util/vfio-helpers.c
+++ b/util/vfio-helpers.c
@@ -309,7 +309,7 @@ static int qemu_vfio_init_pci(QEMUVFIOState *s, const char *device,
     s->container = open("/dev/vfio/vfio", O_RDWR);
 
     if (s->container == -1) {
-        error_setg_errno(errp, errno, "Failed to open /dev/vfio/vfio");
+        error_setg_file_open(errp, errno, "/dev/vfio/vfio");
         return -errno;
     }
     if (ioctl(s->container, VFIO_GET_API_VERSION) != VFIO_API_VERSION) {
@@ -333,8 +333,7 @@ static int qemu_vfio_init_pci(QEMUVFIOState *s, const char *device,
 
     s->group = open(group_file, O_RDWR);
     if (s->group == -1) {
-        error_setg_errno(errp, errno, "Failed to open VFIO group file: %s",
-                         group_file);
+        error_setg_file_open(errp, errno, group_file);
         g_free(group_file);
         ret = -errno;
         goto fail_container;
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:14:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:14:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167743.1494010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMA6S-0008Rr-E7; Thu, 20 Nov 2025 19:14:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167743.1494010; Thu, 20 Nov 2025 19:14: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 1vMA6S-0008PS-0K; Thu, 20 Nov 2025 19:14:00 +0000
Received: by outflank-mailman (input) for mailman id 1167743;
 Thu, 20 Nov 2025 19:13:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=r49+=54=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMA6Q-000753-5c
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:13:58 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0ebecc77-c645-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 20:13:56 +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-450-gSO2B6tkNASi5AxKkflOCA-1; Thu,
 20 Nov 2025 14:13:52 -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 EB4CF1955F28; Thu, 20 Nov 2025 19:13:46 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 09C651955F66; Thu, 20 Nov 2025 19:13:46 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 612BE21E66B9; Thu, 20 Nov 2025 20:13: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: 0ebecc77-c645-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763666034;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=/xtGdog7VgzIfQmeSQKWrv+vlf3j6c1d+FLveMONGz8=;
	b=eF7MNuYVsc6Kqn0C2W34Hb+ERuriEsu0RA/F6WrwIJwK2oJ/SsCkkjwWxmFasFnlVKe3Ks
	bO1ydtrVlkK2qHYcUQqmVRHDqQO8XxNI5oUHo9eVE0XyQKFQCy+KX8pDDQWx2nxgM8opSq
	r/nrVEvVB9G3p0mTlnDAx/HmzNKcwAM=
X-MC-Unique: gSO2B6tkNASi5AxKkflOCA-1
X-Mimecast-MFC-AGG-ID: gSO2B6tkNASi5AxKkflOCA_1763666027
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	pizhenwei@bytedance.com,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH 06/14] hw/virtio: Use error_setg_file_open() for a better error message
Date: Thu, 20 Nov 2025 20:13:31 +0100
Message-ID: <20251120191339.756429-7-armbru@redhat.com>
In-Reply-To: <20251120191339.756429-1-armbru@redhat.com>
References: <20251120191339.756429-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12

The error message changes from

    vhost-vsock: failed to open vhost device: REASON

to

    Could not open '/dev/vhost-vsock': REASON

I think the exact file name is more useful to know than the file's
purpose.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 hw/virtio/vhost-vsock.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/hw/virtio/vhost-vsock.c b/hw/virtio/vhost-vsock.c
index 107d88babe..7940b60d8a 100644
--- a/hw/virtio/vhost-vsock.c
+++ b/hw/virtio/vhost-vsock.c
@@ -153,8 +153,7 @@ static void vhost_vsock_device_realize(DeviceState *dev, Error **errp)
     } else {
         vhostfd = open("/dev/vhost-vsock", O_RDWR);
         if (vhostfd < 0) {
-            error_setg_errno(errp, errno,
-                             "vhost-vsock: failed to open vhost device");
+            error_setg_file_open(errp, errno, "/dev/vhost-vsock");
             return;
         }
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:14:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:14:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167744.1494017 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMA6S-0000Ah-W9; Thu, 20 Nov 2025 19:14:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167744.1494017; Thu, 20 Nov 2025 19:14: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 1vMA6S-00008c-LT; Thu, 20 Nov 2025 19:14:00 +0000
Received: by outflank-mailman (input) for mailman id 1167744;
 Thu, 20 Nov 2025 19:13: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=r49+=54=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMA6R-0006n7-Cl
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:13:59 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 10513476-c645-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 20:13:58 +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-93-m10SDGhuPzaFE5VhiICI4w-1; Thu,
 20 Nov 2025 14:13:53 -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 4DEFC1800650; Thu, 20 Nov 2025 19:13:47 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id EB2471955F67; Thu, 20 Nov 2025 19:13:45 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 6C27521E65DA; Thu, 20 Nov 2025 20:13: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: 10513476-c645-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763666037;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=s+f/YPMyhiw0MODLrT/W+QVnkFDpo2Q2VNPNda433v0=;
	b=epT6d98VlrmCWnXJprpJ/aArsiaAKhaNh789m/ge+38H/a+r4Tpcak8ESaqxR0mwasruB1
	GE5Op6q3JJhLZgspFjDJaRV70nJmz1op8OnjvH7la1bpXR9/wQjeaOQSqfu39rVPR0LzSH
	nqZ5K7PYK0oVv/NkWhz+zBju9pV1ksU=
X-MC-Unique: m10SDGhuPzaFE5VhiICI4w-1
X-Mimecast-MFC-AGG-ID: m10SDGhuPzaFE5VhiICI4w_1763666027
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	pizhenwei@bytedance.com,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH 08/14] blkdebug: Use error_setg_file_open() for a better error message
Date: Thu, 20 Nov 2025 20:13:33 +0100
Message-ID: <20251120191339.756429-9-armbru@redhat.com>
In-Reply-To: <20251120191339.756429-1-armbru@redhat.com>
References: <20251120191339.756429-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12

The error message changes from

    Could not read blkdebug config file: REASON

to

    Could not open 'FNAME': REASON

I think the exact file name is more useful to know than the file's
purpose.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 block/blkdebug.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/block/blkdebug.c b/block/blkdebug.c
index c54aee0c84..8a4a8cb85e 100644
--- a/block/blkdebug.c
+++ b/block/blkdebug.c
@@ -288,7 +288,7 @@ static int read_config(BDRVBlkdebugState *s, const char *filename,
     if (filename) {
         f = fopen(filename, "r");
         if (f == NULL) {
-            error_setg_errno(errp, errno, "Could not read blkdebug config file");
+            error_setg_file_open(errp, errno, filename);
             return -errno;
         }
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:14:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:14:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167745.1494021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMA6T-0000Hv-AA; Thu, 20 Nov 2025 19:14:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167745.1494021; Thu, 20 Nov 2025 19: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 1vMA6T-0000FL-0H; Thu, 20 Nov 2025 19:14:01 +0000
Received: by outflank-mailman (input) for mailman id 1167745;
 Thu, 20 Nov 2025 19:13: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=r49+=54=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMA6R-000753-Gp
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:13:59 +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 0ff802d2-c645-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 20:13:58 +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-53-Sn9f2AgJO2O1Hmg4rwq_2Q-1; Thu,
 20 Nov 2025 14:13:52 -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-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id D46EC1954B0C; Thu, 20 Nov 2025 19:13:46 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 17EDA30044E7; Thu, 20 Nov 2025 19:13:46 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 66E4C21E660B; Thu, 20 Nov 2025 20:13: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: 0ff802d2-c645-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763666036;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=i91/aRc2V0WW39WS58hSriJ7oXz4L2KTH569rGq9FSU=;
	b=HTPmhg32lLG8j2vGjGjAUjgLbyXHJmzLEq/BsEax//9FgvLx0lQTdegY3QudONyyggxDO+
	q01UnVphqwfSWKsZUJK9wWAChPcBTyBkOJ3CMGafXvXxQHPP5FK7oqIA2M7JiDvs6n/qcP
	/UGrQEiJ3TBWxHRmyN3RFG2wc3VvaoA=
X-MC-Unique: Sn9f2AgJO2O1Hmg4rwq_2Q-1
X-Mimecast-MFC-AGG-ID: Sn9f2AgJO2O1Hmg4rwq_2Q_1763666027
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	pizhenwei@bytedance.com,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH 07/14] net/tap: Use error_setg_file_open() for a better error message
Date: Thu, 20 Nov 2025 20:13:32 +0100
Message-ID: <20251120191339.756429-8-armbru@redhat.com>
In-Reply-To: <20251120191339.756429-1-armbru@redhat.com>
References: <20251120191339.756429-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4

The error message changes from

    tap: open vhost char device failed

to

    Could not open '/dev/vhost-net': REASON

I think the exact file name is more useful to know than the file's
purpose.

We could put back the "tap: " prefix with error_prepend().  Not
worth the bother.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 net/tap.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/net/tap.c b/net/tap.c
index abe3b2d036..bfba3fd7a7 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -747,8 +747,7 @@ static void net_init_tap_one(const NetdevTapOptions *tap, NetClientState *peer,
         } else {
             vhostfd = open("/dev/vhost-net", O_RDWR);
             if (vhostfd < 0) {
-                error_setg_errno(errp, errno,
-                                 "tap: open vhost char device failed");
+                error_setg_file_open(errp, errno, "/dev/vhost-net");
                 goto failed;
             }
             if (!qemu_set_blocking(vhostfd, false, errp)) {
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:14:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:14:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167746.1494030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMA6U-0000Pg-7P; Thu, 20 Nov 2025 19:14:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167746.1494030; Thu, 20 Nov 2025 19:14:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMA6T-0000My-J5; Thu, 20 Nov 2025 19:14:01 +0000
Received: by outflank-mailman (input) for mailman id 1167746;
 Thu, 20 Nov 2025 19:14: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=r49+=54=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMA6S-0006n7-4J
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:14: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 107c47c7-c645-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 20:13:59 +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-564-LvjNWB7rPgenSYGmtZdSaA-1; Thu,
 20 Nov 2025 14:13:52 -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 B5935195607A; Thu, 20 Nov 2025 19:13:46 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id EFDEB1956045; Thu, 20 Nov 2025 19:13:45 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 5BDDA21E66A9; Thu, 20 Nov 2025 20:13: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: 107c47c7-c645-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763666038;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=qZGp8vuRR8VrNmTSQmIzBXvqSkRg69sI4h/KDVaUFuE=;
	b=R+0i2IIDLC+vLtIZvtgSPKvt0c+tMcA/o40HYpIfFRkdJgeYqC2QGg2XXB22ed1Yx/sROP
	rwwCmgGbsZK+ZOZHJFtY5Vr9BmE0s4X6KtdgG0+xrovlS0YyEdxfiv2SqEx6j7ONI4tL+d
	i7hhSbHkGb0kKjRz//+fI3CwgrfkeGA=
X-MC-Unique: LvjNWB7rPgenSYGmtZdSaA-1
X-Mimecast-MFC-AGG-ID: LvjNWB7rPgenSYGmtZdSaA_1763666027
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	pizhenwei@bytedance.com,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH 05/14] hw/scsi: Use error_setg_file_open() for a better error message
Date: Thu, 20 Nov 2025 20:13:30 +0100
Message-ID: <20251120191339.756429-6-armbru@redhat.com>
In-Reply-To: <20251120191339.756429-1-armbru@redhat.com>
References: <20251120191339.756429-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12

The error message changes from

    vhost-scsi: open vhost char device failed: REASON

to

    Could not open '/dev/vhost-scsi': REASON

I think the exact file name is more useful to know than the file's
purpose.

We could put back the "vhost-scsi: " prefix with error_prepend().  Not
worth the bother.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 hw/scsi/vhost-scsi.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/hw/scsi/vhost-scsi.c b/hw/scsi/vhost-scsi.c
index cdf405b0f8..239138c931 100644
--- a/hw/scsi/vhost-scsi.c
+++ b/hw/scsi/vhost-scsi.c
@@ -245,8 +245,7 @@ static void vhost_scsi_realize(DeviceState *dev, Error **errp)
     } else {
         vhostfd = open("/dev/vhost-scsi", O_RDWR);
         if (vhostfd < 0) {
-            error_setg(errp, "vhost-scsi: open vhost char device failed: %s",
-                       strerror(errno));
+            error_setg_file_open(errp, errno, "/dev/vhost-scsi");
             return;
         }
     }
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:14:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:14:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167747.1494042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMA6V-0000qM-9h; Thu, 20 Nov 2025 19:14:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167747.1494042; Thu, 20 Nov 2025 19: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 1vMA6V-0000oi-02; Thu, 20 Nov 2025 19:14:03 +0000
Received: by outflank-mailman (input) for mailman id 1167747;
 Thu, 20 Nov 2025 19:14: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=r49+=54=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMA6T-0006n7-4Z
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:14:01 +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 10f7248d-c645-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 20:13:59 +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-93-iySZlwm6OJmUkQ0lwyN3lQ-1; Thu,
 20 Nov 2025 14:13:52 -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-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 3959119541B7; Thu, 20 Nov 2025 19:13:47 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 0E7FC30044DC; Thu, 20 Nov 2025 19:13:46 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 7C2AC21EC342; Thu, 20 Nov 2025 20:13: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: 10f7248d-c645-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763666038;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=soW/vm0NHCNPgcsyRi5OtCaeONXu9V10ir+xDvlwHbA=;
	b=QqqN1mPEE/359ZBRSeEPhDMzKhqFFtc28WEEP/UEYzbvOiaYRLvFXd4CZio1sgvbz6J5T+
	UZ7NecGRqejCA4pKcQ/gwjJz91Yn7Gi7zz/DKxMaFcWgjHwt5W1rxyFR65rOmVJ/88K/fH
	1dbEfQBTSTP1LKzTmMeaGl/yaUBlmBM=
X-MC-Unique: iySZlwm6OJmUkQ0lwyN3lQ-1
X-Mimecast-MFC-AGG-ID: iySZlwm6OJmUkQ0lwyN3lQ_1763666027
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	pizhenwei@bytedance.com,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH 11/14] error: Use error_setg_errno() to improve error messages
Date: Thu, 20 Nov 2025 20:13:36 +0100
Message-ID: <20251120191339.756429-12-armbru@redhat.com>
In-Reply-To: <20251120191339.756429-1-armbru@redhat.com>
References: <20251120191339.756429-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4

A few error messages show numeric errno codes.  Use error_setg_errno()
to show human-readable text instead.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 backends/cryptodev-lkcf.c   |  2 +-
 hw/ppc/spapr.c              |  6 +++---
 hw/vfio/migration-multifd.c |  5 +++--
 migration/rdma.c            |  3 +--
 net/l2tpv3.c                |  6 ++----
 target/riscv/kvm/kvm-cpu.c  | 11 ++++++-----
 6 files changed, 16 insertions(+), 17 deletions(-)

diff --git a/backends/cryptodev-lkcf.c b/backends/cryptodev-lkcf.c
index 97a8a8812c..40c7bd3c5a 100644
--- a/backends/cryptodev-lkcf.c
+++ b/backends/cryptodev-lkcf.c
@@ -218,7 +218,7 @@ static void cryptodev_lkcf_init(CryptoDevBackend *backend, Error **errp)
     }
     lkcf->eventfd = eventfd(0, 0);
     if (lkcf->eventfd < 0) {
-        error_setg(errp, "Failed to create eventfd: %d", errno);
+        error_setg_errno(errp, errno, "Failed to create eventfd");
         return;
     }
 
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 99b843ba2f..cdab822c88 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -2699,9 +2699,9 @@ static void spapr_set_vsmt_mode(SpaprMachineState *spapr, Error **errp)
         ret = kvmppc_set_smt_threads(spapr->vsmt);
         if (ret) {
             /* Looks like KVM isn't able to change VSMT mode */
-            error_setg(&local_err,
-                       "Failed to set KVM's VSMT mode to %d (errno %d)",
-                       spapr->vsmt, ret);
+            error_setg_errno(&local_err, -ret,
+                             "Failed to set KVM's VSMT mode to %d",
+                             spapr->vsmt);
             /* We can live with that if the default one is big enough
              * for the number of threads, and a submultiple of the one
              * we want.  In this case we'll waste some vcpu ids, but
diff --git a/hw/vfio/migration-multifd.c b/hw/vfio/migration-multifd.c
index e4785031a7..4a855f4e12 100644
--- a/hw/vfio/migration-multifd.c
+++ b/hw/vfio/migration-multifd.c
@@ -725,8 +725,9 @@ vfio_multifd_save_complete_precopy_thread(SaveCompletePrecopyThreadData *d,
         data_size = read(migration->data_fd, &packet->data,
                          migration->data_buffer_size);
         if (data_size < 0) {
-            error_setg(errp, "%s: reading state buffer %" PRIu32 " failed: %d",
-                       vbasedev->name, idx, errno);
+            error_setg_errno(errp, errno,
+                             "%s: reading state buffer %" PRIu32 " failed",
+                             vbasedev->name, idx);
             goto thread_exit;
         } else if (data_size == 0) {
             break;
diff --git a/migration/rdma.c b/migration/rdma.c
index 337b415889..ef4885ef5f 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -2349,8 +2349,7 @@ static int qemu_get_cm_event_timeout(RDMAContext *rdma,
         error_setg(errp, "RDMA ERROR: poll cm event timeout");
         return -1;
     } else if (ret < 0) {
-        error_setg(errp, "RDMA ERROR: failed to poll cm event, errno=%i",
-                   errno);
+        error_setg_errno(errp, "RDMA ERROR: failed to poll cm event");
         return -1;
     } else if (poll_fd.revents & POLLIN) {
         if (rdma_get_cm_event(rdma->channel, cm_event) < 0) {
diff --git a/net/l2tpv3.c b/net/l2tpv3.c
index cdfc641aa6..3044fa4608 100644
--- a/net/l2tpv3.c
+++ b/net/l2tpv3.c
@@ -639,13 +639,11 @@ int net_init_l2tpv3(const Netdev *netdev,
     }
     fd = socket(result->ai_family, result->ai_socktype, result->ai_protocol);
     if (fd == -1) {
-        fd = -errno;
-        error_setg(errp, "socket creation failed, errno = %d",
-                   -fd);
+        error_setg_errno(errp, errno, "socket creation failed");
         goto outerr;
     }
     if (bind(fd, (struct sockaddr *) result->ai_addr, result->ai_addrlen)) {
-        error_setg(errp, "could not bind socket err=%i", errno);
+        error_setg_errno(errp, errno, "could not bind socket");
         goto outerr;
     }
     if (!qemu_set_blocking(fd, false, errp)) {
diff --git a/target/riscv/kvm/kvm-cpu.c b/target/riscv/kvm/kvm-cpu.c
index 47e672c7aa..c73f1cd5cf 100644
--- a/target/riscv/kvm/kvm-cpu.c
+++ b/target/riscv/kvm/kvm-cpu.c
@@ -1996,8 +1996,8 @@ static bool kvm_cpu_realize(CPUState *cs, Error **errp)
     if (riscv_has_ext(&cpu->env, RVV)) {
         ret = prctl(PR_RISCV_V_SET_CONTROL, PR_RISCV_V_VSTATE_CTRL_ON);
         if (ret) {
-            error_setg(errp, "Error in prctl PR_RISCV_V_SET_CONTROL, code: %s",
-                       strerrorname_np(errno));
+            error_setg_errno(errp, errno,
+                             "Error in prctl PR_RISCV_V_SET_CONTROL");
             return false;
         }
     }
@@ -2032,7 +2032,8 @@ void riscv_kvm_cpu_finalize_features(RISCVCPU *cpu, Error **errp)
         reg.addr = (uint64_t)&val;
         ret = ioctl(kvmcpu.cpufd, KVM_GET_ONE_REG, &reg);
         if (ret != 0) {
-            error_setg(errp, "Unable to read cbom_blocksize, error %d", errno);
+            error_setg(errp, errno,
+                       "Unable to read cbom_blocksize");
             return;
         }
 
@@ -2051,7 +2052,7 @@ void riscv_kvm_cpu_finalize_features(RISCVCPU *cpu, Error **errp)
         reg.addr = (uint64_t)&val;
         ret = ioctl(kvmcpu.cpufd, KVM_GET_ONE_REG, &reg);
         if (ret != 0) {
-            error_setg(errp, "Unable to read cboz_blocksize, error %d", errno);
+            error_setg_errno(errp, errno, "Unable to read cboz_blocksize");
             return;
         }
 
@@ -2073,7 +2074,7 @@ void riscv_kvm_cpu_finalize_features(RISCVCPU *cpu, Error **errp)
         reg.addr = (uint64_t)&val;
         ret = ioctl(kvmcpu.cpufd, KVM_GET_ONE_REG, &reg);
         if (ret != 0) {
-            error_setg(errp, "Unable to read vlenb register, error %d", errno);
+            error_setg_errno(errp, errno, "Unable to read vlenb register");
             return;
         }
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:14:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:14:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167748.1494053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMA6W-00018b-JZ; Thu, 20 Nov 2025 19:14:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167748.1494053; Thu, 20 Nov 2025 19:14:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMA6W-00015B-6i; Thu, 20 Nov 2025 19:14:04 +0000
Received: by outflank-mailman (input) for mailman id 1167748;
 Thu, 20 Nov 2025 19:14: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=r49+=54=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMA6U-0006n7-4o
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:14:02 +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 10ef0766-c645-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 20:13:59 +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-182-ME6oTu6fO--Wx6qmpcJOoA-1; Thu,
 20 Nov 2025 14:13:53 -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-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id A4FD119560AD; Thu, 20 Nov 2025 19:13:43 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 95B8C30044DC; Thu, 20 Nov 2025 19:13:41 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 40B4921E6A27; Thu, 20 Nov 2025 20:13: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: 10ef0766-c645-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763666038;
	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=8GWkD4F3bUuv8Q1P0X31rBekH0EimGqSmOdrumSZaFU=;
	b=SjNrM7ByFKDgbHPpKoGEnEeY/IXXjEr1hsGRWpzp9dHN342zy6u3T16WqInL8TWNQLXHkJ
	glQIzQcbfnYKgH6fyjVaRwmrPSVXXHCIUrvVy+GZWVrZcV3wk812uJqplxJAiM03zOvJbH
	XXrBDwHjuAAHApDZIsJhhOHSLRMw97s=
X-MC-Unique: ME6oTu6fO--Wx6qmpcJOoA-1
X-Mimecast-MFC-AGG-ID: ME6oTu6fO--Wx6qmpcJOoA_1763666024
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	pizhenwei@bytedance.com,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH 00/14] Error message improvements
Date: Thu, 20 Nov 2025 20:13:25 +0100
Message-ID: <20251120191339.756429-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4

Markus Armbruster (14):
  error: Strip trailing '\n' from error string arguments (again)
  hw/usb: Use error_setg_file_open() for a better error message
  tap-solaris: Use error_setg_file_open() for better error messages
  qga: Use error_setg_file_open() for better error messages
  hw/scsi: Use error_setg_file_open() for a better error message
  hw/virtio: Use error_setg_file_open() for a better error message
  net/tap: Use error_setg_file_open() for a better error message
  blkdebug: Use error_setg_file_open() for a better error message
  error: Use error_setg_file_open() for simplicity and consistency
  net/slirp: Improve file open error message
  error: Use error_setg_errno() to improve error messages
  error: Use error_setg_errno() for simplicity and consistency
  qga/commands-win32: Use error_setg_win32() for better error messages
  block/file-win32: Improve an error message

 backends/cryptodev-lkcf.c   |  2 +-
 backends/spdm-socket.c      |  4 ++--
 backends/tpm/tpm_emulator.c | 13 +++++--------
 block/blkdebug.c            |  2 +-
 block/file-win32.c          |  2 +-
 hw/9pfs/9p-local.c          |  2 +-
 hw/9pfs/9p.c                |  3 +--
 hw/acpi/core.c              |  5 ++---
 hw/audio/es1370.c           |  2 +-
 hw/core/loader.c            |  2 +-
 hw/intc/openpic_kvm.c       |  3 +--
 hw/intc/xics_kvm.c          |  5 +++--
 hw/pci-host/xen_igd_pt.c    |  2 +-
 hw/ppc/spapr.c              |  6 +++---
 hw/remote/vfio-user-obj.c   | 18 +++++++++---------
 hw/scsi/vhost-scsi.c        |  3 +--
 hw/sensor/emc141x.c         |  4 ++--
 hw/sensor/tmp421.c          |  4 ++--
 hw/smbios/smbios.c          |  4 ++--
 hw/usb/bus.c                |  2 +-
 hw/vfio/migration-multifd.c |  5 +++--
 hw/virtio/vdpa-dev.c        |  4 ++--
 hw/virtio/vhost-vsock.c     |  3 +--
 migration/postcopy-ram.c    | 10 +++++-----
 migration/rdma.c            |  3 +--
 monitor/hmp-cmds-target.c   |  2 +-
 net/dump.c                  |  2 +-
 net/l2tpv3.c                |  6 ++----
 net/slirp.c                 |  9 ++++++---
 net/tap-bsd.c               |  6 +++---
 net/tap-linux.c             |  2 +-
 net/tap-solaris.c           |  6 +++---
 net/tap.c                   |  3 +--
 qga/commands-linux.c        | 11 ++++++-----
 qga/commands-posix-ssh.c    | 23 +++++++++++++----------
 qga/commands-win32.c        | 16 ++++++++--------
 system/vl.c                 |  2 +-
 target/i386/sev.c           |  6 ++----
 target/ppc/kvm.c            |  5 ++---
 target/riscv/kvm/kvm-cpu.c  | 11 ++++++-----
 ui/gtk.c                    |  2 +-
 ui/ui-qmp-cmds.c            |  3 +--
 util/vfio-helpers.c         |  5 ++---
 43 files changed, 113 insertions(+), 120 deletions(-)

-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:22:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:22:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167847.1494076 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMAEE-0006K7-Ay; Thu, 20 Nov 2025 19:22:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167847.1494076; Thu, 20 Nov 2025 19:22: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 1vMAEE-0006K0-7s; Thu, 20 Nov 2025 19:22:02 +0000
Received: by outflank-mailman (input) for mailman id 1167847;
 Thu, 20 Nov 2025 19:22: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=r49+=54=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMA6W-000753-2o
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:14:04 +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 1284e8f3-c645-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 20:14:02 +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-203-b5T3lBd2OV2uCxy3edrDZw-1; Thu,
 20 Nov 2025 14:13:55 -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 66F73195422D; Thu, 20 Nov 2025 19:13:46 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id D535A1800984; Thu, 20 Nov 2025 19:13:45 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 87A9C21EC344; Thu, 20 Nov 2025 20:13: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: 1284e8f3-c645-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763666041;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=tDP8FM9QFpX4om5r6DeJVNNuFVvQYDlKs2mHtRlqAfQ=;
	b=bhL5jXuE7BzqC+kaQcGXbmf3+wuGd+buT1SjP4uXi96+XARZ0qk7VGi4w2/g3TV4nTco/B
	3zCtXq4e/IaRz8sjp2Mn6kB8MdIqlRAjlrrnPzLZ+fMofgJBBlyUGNTsBfP63lag8yw1Bq
	ZbFHV1VP9NGHBYDA1Ty+8RXs3ghflSk=
X-MC-Unique: b5T3lBd2OV2uCxy3edrDZw-1
X-Mimecast-MFC-AGG-ID: b5T3lBd2OV2uCxy3edrDZw_1763666026
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	pizhenwei@bytedance.com,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH 13/14] qga/commands-win32: Use error_setg_win32() for better error messages
Date: Thu, 20 Nov 2025 20:13:38 +0100
Message-ID: <20251120191339.756429-14-armbru@redhat.com>
In-Reply-To: <20251120191339.756429-1-armbru@redhat.com>
References: <20251120191339.756429-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111

We include numeric GetLastError() codes in error messages in a few
places, like this:

    error_setg(errp, "GRIPE: %d", (int)GetLastError());

Show text instead, like this:

    error_setg_win32(errp, GetLastError(), "GRIPE");

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 qga/commands-win32.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/qga/commands-win32.c b/qga/commands-win32.c
index acc2c11589..0fd0c966e4 100644
--- a/qga/commands-win32.c
+++ b/qga/commands-win32.c
@@ -1798,8 +1798,8 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp)
     tf.dwHighDateTime = (DWORD) (time >> 32);
 
     if (!FileTimeToSystemTime(&tf, &ts)) {
-        error_setg(errp, "Failed to convert system time %d",
-                   (int)GetLastError());
+        error_setg_win32(errp, GetLastError(),
+                         "Failed to convert system time");
         return;
     }
 
@@ -1810,7 +1810,8 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp)
     }
 
     if (!SetSystemTime(&ts)) {
-        error_setg(errp, "Failed to set time to guest: %d", (int)GetLastError());
+        error_setg_win32(errp, GetLastError(),
+                         "Failed to set time to guest");
         return;
     }
 }
@@ -1834,13 +1835,12 @@ GuestLogicalProcessorList *qmp_guest_get_vcpus(Error **errp)
         (length > sizeof(SYSTEM_LOGICAL_PROCESSOR_INFORMATION))) {
         ptr = pslpi = g_malloc0(length);
         if (GetLogicalProcessorInformation(pslpi, &length) == FALSE) {
-            error_setg(&local_err, "Failed to get processor information: %d",
-                       (int)GetLastError());
+            error_setg_win32(&local_err, GetLastError(),
+                             "Failed to get processor information");
         }
     } else {
-        error_setg(&local_err,
-                   "Failed to get processor information buffer length: %d",
-                   (int)GetLastError());
+        error_setg_win32(&local_err, GetLastError(),
+                         "Failed to get processor information buffer length");
     }
 
     while ((local_err == NULL) && (length > 0)) {
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:22:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:22:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167848.1494082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMAEE-0006N8-JJ; Thu, 20 Nov 2025 19:22:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167848.1494082; Thu, 20 Nov 2025 19:22: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 1vMAEE-0006MP-DU; Thu, 20 Nov 2025 19:22:02 +0000
Received: by outflank-mailman (input) for mailman id 1167848;
 Thu, 20 Nov 2025 19:22:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=r49+=54=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMA6T-000753-MG
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:14:01 +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 1130081f-c645-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 20:14:00 +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-55-M7p59jwPOHWlO-WKfumvYQ-1; Thu,
 20 Nov 2025 14:13:54 -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 3A8F11955F17; Thu, 20 Nov 2025 19:13:47 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id DEF1F18009BC; Thu, 20 Nov 2025 19:13:45 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 8D09221EC346; Thu, 20 Nov 2025 20:13: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: 1130081f-c645-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763666039;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=oeDPJTEK/mbRoQ9G1reQyHyjo6pRRwMOwFAV76+b8w0=;
	b=b1RfnMNVvaH3jT10/mH5WyO4TlX7ZeKtohDpUFGpum6IJn3NM1MZMrJIKTKR0vVgfYUhH/
	Q41XMV3qobQYK1OXg1ywDxdSShtLJZmUX2G2fBbSi+cjUewShSHKfcOOA8/jWw//iB/u7s
	qqOhi3YHwE9PR13Q+fZDly7fEbaZGb8=
X-MC-Unique: M7p59jwPOHWlO-WKfumvYQ-1
X-Mimecast-MFC-AGG-ID: M7p59jwPOHWlO-WKfumvYQ_1763666027
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	pizhenwei@bytedance.com,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH 14/14] block/file-win32: Improve an error message
Date: Thu, 20 Nov 2025 20:13:39 +0100
Message-ID: <20251120191339.756429-15-armbru@redhat.com>
In-Reply-To: <20251120191339.756429-1-armbru@redhat.com>
References: <20251120191339.756429-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111

Two out of three calls of CreateFile() use error_setg_win32() to
report errors.  The third uses error_setg_errno(), mapping
ERROR_ACCESS_DENIED to EACCES, and everything else to EINVAL, throwing
away detail.  Switch it to error_setg_win32().

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 block/file-win32.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/block/file-win32.c b/block/file-win32.c
index 0efb609e1d..78961837c8 100644
--- a/block/file-win32.c
+++ b/block/file-win32.c
@@ -904,7 +904,7 @@ static int hdev_open(BlockDriverState *bs, QDict *options, int flags,
         } else {
             ret = -EINVAL;
         }
-        error_setg_errno(errp, -ret, "Could not open device");
+        error_setg_win32(errp, err, "Could not open device");
         goto done;
     }
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:24:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:24:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167907.1494097 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMAGI-0007lk-Rk; Thu, 20 Nov 2025 19:24:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167907.1494097; Thu, 20 Nov 2025 19:24: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 1vMAGI-0007ld-Nx; Thu, 20 Nov 2025 19:24:10 +0000
Received: by outflank-mailman (input) for mailman id 1167907;
 Thu, 20 Nov 2025 19:24: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=r49+=54=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMA6S-000753-5p
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:14:00 +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 0fc3eb2c-c645-11f0-980a-7dc792cee155;
 Thu, 20 Nov 2025 20:13:57 +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-83-J6hM45PeOo661bvAk_cuNQ-1; Thu,
 20 Nov 2025 14:13:51 -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 05CB619560B5; Thu, 20 Nov 2025 19:13:47 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 17C481800367; Thu, 20 Nov 2025 19:13:46 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 81E4721E676A; Thu, 20 Nov 2025 20:13: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: 0fc3eb2c-c645-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763666036;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=occdM5eBAj+zWClkX7GJ/OwalRPeqJUR+AsS2WFfgtU=;
	b=YX84qBEDrj4zCu2LQCLfW/QJOD5D+qt2lmOM44EffisTTBGk6ct8pNTs7NwAQID5RueHEZ
	Ujw8eegjo2PGzd0Y2odgBRdYsAJw2VowJddO+H2Ia2SQjXWO56CJg9tpsmJqGKfkmj3D07
	6tc0pFX/qWqC6lxzK88XJ0tMmtNvnPQ=
X-MC-Unique: J6hM45PeOo661bvAk_cuNQ-1
X-Mimecast-MFC-AGG-ID: J6hM45PeOo661bvAk_cuNQ_1763666027
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	pizhenwei@bytedance.com,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH 12/14] error: Use error_setg_errno() for simplicity and consistency
Date: Thu, 20 Nov 2025 20:13:37 +0100
Message-ID: <20251120191339.756429-13-armbru@redhat.com>
In-Reply-To: <20251120191339.756429-1-armbru@redhat.com>
References: <20251120191339.756429-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93

Use error_setg_errno() instead of passing the value of strerror() or
g_strerror() to error_setg().

The separator between the error message proper and the value of
strerror() changes from " : ", "", " - ", "- " to ": " in places.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 backends/spdm-socket.c      |  4 ++--
 backends/tpm/tpm_emulator.c | 13 +++++--------
 hw/9pfs/9p.c                |  3 +--
 hw/acpi/core.c              |  3 +--
 hw/intc/openpic_kvm.c       |  3 +--
 hw/intc/xics_kvm.c          |  5 +++--
 hw/remote/vfio-user-obj.c   | 18 +++++++++---------
 hw/sensor/emc141x.c         |  4 ++--
 hw/sensor/tmp421.c          |  4 ++--
 hw/smbios/smbios.c          |  4 ++--
 hw/virtio/vdpa-dev.c        |  4 ++--
 migration/postcopy-ram.c    | 10 +++++-----
 migration/rdma.c            |  2 +-
 net/slirp.c                 |  5 +++--
 qga/commands-posix-ssh.c    | 23 +++++++++++++----------
 system/vl.c                 |  2 +-
 target/ppc/kvm.c            |  5 ++---
 17 files changed, 55 insertions(+), 57 deletions(-)

diff --git a/backends/spdm-socket.c b/backends/spdm-socket.c
index 6d8f02d3b9..a12bc47f77 100644
--- a/backends/spdm-socket.c
+++ b/backends/spdm-socket.c
@@ -167,7 +167,7 @@ int spdm_socket_connect(uint16_t port, Error **errp)
 
     client_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
     if (client_socket < 0) {
-        error_setg(errp, "cannot create socket: %s", strerror(errno));
+        error_setg_errno(errp, errno, "cannot create socket");
         return -1;
     }
 
@@ -179,7 +179,7 @@ int spdm_socket_connect(uint16_t port, Error **errp)
 
     if (connect(client_socket, (struct sockaddr *)&server_addr,
                 sizeof(server_addr)) < 0) {
-        error_setg(errp, "cannot connect: %s", strerror(errno));
+        error_setg_errno(errp, errno, "cannot connect");
         close(client_socket);
         return -1;
     }
diff --git a/backends/tpm/tpm_emulator.c b/backends/tpm/tpm_emulator.c
index f10b9074fb..f52cb4d435 100644
--- a/backends/tpm/tpm_emulator.c
+++ b/backends/tpm/tpm_emulator.c
@@ -225,8 +225,7 @@ static int tpm_emulator_set_locality(TPMEmulator *tpm_emu, uint8_t locty_number,
     if (tpm_emulator_ctrlcmd(tpm_emu, CMD_SET_LOCALITY, &loc,
                              sizeof(loc), sizeof(loc.u.resp.tpm_result),
                              sizeof(loc)) < 0) {
-        error_setg(errp, "tpm-emulator: could not set locality : %s",
-                   strerror(errno));
+        error_setg_errno(errp, errno, "tpm-emulator: could not set locality");
         return -1;
     }
 
@@ -315,8 +314,7 @@ static int tpm_emulator_stop_tpm(TPMBackend *tb, Error **errp)
 
     if (tpm_emulator_ctrlcmd(tpm_emu, CMD_STOP, &res, 0,
                              sizeof(ptm_res), sizeof(res)) < 0) {
-        error_setg(errp, "tpm-emulator: Could not stop TPM: %s",
-                   strerror(errno));
+        error_setg_errno(errp, errno, "tpm-emulator: Could not stop TPM");
         return -1;
     }
 
@@ -377,8 +375,8 @@ static int tpm_emulator_set_buffer_size(TPMBackend *tb,
     if (tpm_emulator_ctrlcmd(tpm_emu, CMD_SET_BUFFERSIZE, &psbs,
                              sizeof(psbs.u.req), sizeof(psbs.u.resp.tpm_result),
                              sizeof(psbs.u.resp)) < 0) {
-        error_setg(errp, "tpm-emulator: Could not set buffer size: %s",
-                   strerror(errno));
+        error_setg_errno(errp, errno,
+                         "tpm-emulator: Could not set buffer size");
         return -1;
     }
 
@@ -426,8 +424,7 @@ static int tpm_emulator_startup_tpm_resume(TPMBackend *tb, size_t buffersize,
     if (tpm_emulator_ctrlcmd(tpm_emu, CMD_INIT, &init, sizeof(init),
                              sizeof(init.u.resp.tpm_result),
                              sizeof(init)) < 0) {
-        error_setg(errp, "tpm-emulator: could not send INIT: %s",
-                   strerror(errno));
+        error_setg_errno(errp, errno, "tpm-emulator: could not send INIT");
         goto err_exit;
     }
 
diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
index bc4a016ee3..6fbe604ce8 100644
--- a/hw/9pfs/9p.c
+++ b/hw/9pfs/9p.c
@@ -4345,8 +4345,7 @@ int v9fs_device_realize_common(V9fsState *s, const V9fsTransport *t,
      * use co-routines here.
      */
     if (s->ops->name_to_path(&s->ctx, NULL, "/", &path) < 0) {
-        error_setg(errp,
-                   "error in converting name to path %s", strerror(errno));
+        error_setg_errno(errp, errno, "error in converting name to path");
         goto out;
     }
     if (s->ops->lstat(&s->ctx, &path, &stat)) {
diff --git a/hw/acpi/core.c b/hw/acpi/core.c
index d2677332af..82974eb257 100644
--- a/hw/acpi/core.c
+++ b/hw/acpi/core.c
@@ -293,8 +293,7 @@ void acpi_table_add(const QemuOpts *opts, Error **errp)
                 memcpy(blob + bloblen, data, r);
                 bloblen += r;
             } else if (errno != EINTR) {
-                error_setg(errp, "can't read file %s: %s", *cur,
-                           strerror(errno));
+                error_setg_errno(errp, errno, "can't read file %s", *cur);
                 close(fd);
                 goto out;
             }
diff --git a/hw/intc/openpic_kvm.c b/hw/intc/openpic_kvm.c
index 673ea9ca05..0c11bbc963 100644
--- a/hw/intc/openpic_kvm.c
+++ b/hw/intc/openpic_kvm.c
@@ -223,8 +223,7 @@ static void kvm_openpic_realize(DeviceState *dev, Error **errp)
     cd.type = kvm_openpic_model;
     ret = kvm_vm_ioctl(s, KVM_CREATE_DEVICE, &cd);
     if (ret < 0) {
-        error_setg(errp, "Can't create device %d: %s",
-                   cd.type, strerror(errno));
+        error_setg_errno(errp, errno, "Can't create device %d", cd.type);
         return;
     }
     opp->fd = cd.fd;
diff --git a/hw/intc/xics_kvm.c b/hw/intc/xics_kvm.c
index ee72969f5f..61f66d1019 100644
--- a/hw/intc/xics_kvm.c
+++ b/hw/intc/xics_kvm.c
@@ -165,8 +165,9 @@ void icp_kvm_realize(DeviceState *dev, Error **errp)
     if (ret < 0) {
         Error *local_err = NULL;
 
-        error_setg(&local_err, "Unable to connect CPU%ld to kernel XICS: %s",
-                   vcpu_id, strerror(errno));
+        error_setg_errno(&local_err, errno,
+                         "Unable to connect CPU%ld to kernel XICS",
+                         vcpu_id);
         if (errno == ENOSPC) {
             error_append_hint(&local_err, "Try -smp maxcpus=N with N < %u\n",
                               MACHINE(qdev_get_machine())->smp.max_cpus);
diff --git a/hw/remote/vfio-user-obj.c b/hw/remote/vfio-user-obj.c
index 216b4876e2..9ab02b7abc 100644
--- a/hw/remote/vfio-user-obj.c
+++ b/hw/remote/vfio-user-obj.c
@@ -751,7 +751,7 @@ static void vfu_object_init_ctx(VfuObject *o, Error **errp)
                                 LIBVFIO_USER_FLAG_ATTACH_NB,
                                 o, VFU_DEV_TYPE_PCI);
     if (o->vfu_ctx == NULL) {
-        error_setg(errp, "vfu: Failed to create context - %s", strerror(errno));
+        error_setg_errno(errp, errno, "vfu: Failed to create context");
         return;
     }
 
@@ -776,9 +776,9 @@ static void vfu_object_init_ctx(VfuObject *o, Error **errp)
 
     ret = vfu_pci_init(o->vfu_ctx, pci_type, PCI_HEADER_TYPE_NORMAL, 0);
     if (ret < 0) {
-        error_setg(errp,
-                   "vfu: Failed to attach PCI device %s to context - %s",
-                   o->device, strerror(errno));
+        error_setg_errno(errp, errno,
+                         "vfu: Failed to attach PCI device %s to context",
+                         o->device);
         goto fail;
     }
 
@@ -792,9 +792,9 @@ static void vfu_object_init_ctx(VfuObject *o, Error **errp)
                            VFU_REGION_FLAG_RW | VFU_REGION_FLAG_ALWAYS_CB,
                            NULL, 0, -1, 0);
     if (ret < 0) {
-        error_setg(errp,
-                   "vfu: Failed to setup config space handlers for %s- %s",
-                   o->device, strerror(errno));
+        error_setg_errno(errp,
+                         "vfu: Failed to setup config space handlers for %s",
+                         o->device);
         goto fail;
     }
 
@@ -822,8 +822,8 @@ static void vfu_object_init_ctx(VfuObject *o, Error **errp)
 
     ret = vfu_realize_ctx(o->vfu_ctx);
     if (ret < 0) {
-        error_setg(errp, "vfu: Failed to realize device %s- %s",
-                   o->device, strerror(errno));
+        error_setg_errno(errp, "vfu: Failed to realize device %s",
+                         o->device);
         goto fail;
     }
 
diff --git a/hw/sensor/emc141x.c b/hw/sensor/emc141x.c
index 7b2ce383a1..a51fc44395 100644
--- a/hw/sensor/emc141x.c
+++ b/hw/sensor/emc141x.c
@@ -59,7 +59,7 @@ static void emc141x_get_temperature(Object *obj, Visitor *v, const char *name,
     unsigned tempid;
 
     if (sscanf(name, "temperature%u", &tempid) != 1) {
-        error_setg(errp, "error reading %s: %s", name, g_strerror(errno));
+        error_setg_errno(errp, errno, "error reading %s", name);
         return;
     }
 
@@ -86,7 +86,7 @@ static void emc141x_set_temperature(Object *obj, Visitor *v, const char *name,
     }
 
     if (sscanf(name, "temperature%u", &tempid) != 1) {
-        error_setg(errp, "error reading %s: %s", name, g_strerror(errno));
+        error_setg_errno(errp, errno, "error reading %s", name);
         return;
     }
 
diff --git a/hw/sensor/tmp421.c b/hw/sensor/tmp421.c
index 3421c44086..127edd0ba5 100644
--- a/hw/sensor/tmp421.c
+++ b/hw/sensor/tmp421.c
@@ -117,7 +117,7 @@ static void tmp421_get_temperature(Object *obj, Visitor *v, const char *name,
     int tempid;
 
     if (sscanf(name, "temperature%d", &tempid) != 1) {
-        error_setg(errp, "error reading %s: %s", name, g_strerror(errno));
+        error_setg_errno(errp, errno, "error reading %s", name);
         return;
     }
 
@@ -154,7 +154,7 @@ static void tmp421_set_temperature(Object *obj, Visitor *v, const char *name,
     }
 
     if (sscanf(name, "temperature%d", &tempid) != 1) {
-        error_setg(errp, "error reading %s: %s", name, g_strerror(errno));
+        error_setg_errno(errp, errno, "error reading %s", name);
         return;
     }
 
diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c
index 7558b2ad83..b228f9eb85 100644
--- a/hw/smbios/smbios.c
+++ b/hw/smbios/smbios.c
@@ -1281,8 +1281,8 @@ static int save_opt_one(void *opaque,
                 break;
             }
             if (ret < 0) {
-                error_setg(errp, "Unable to read from %s: %s",
-                           value, strerror(errno));
+                error_setg_errno(errp, errno, "Unable to read from %s",
+                                 value);
                 qemu_close(fd);
                 return -1;
             }
diff --git a/hw/virtio/vdpa-dev.c b/hw/virtio/vdpa-dev.c
index 4a7b970976..f97d576171 100644
--- a/hw/virtio/vdpa-dev.c
+++ b/hw/virtio/vdpa-dev.c
@@ -41,8 +41,8 @@ vhost_vdpa_device_get_u32(int fd, unsigned long int cmd, Error **errp)
     uint32_t val = (uint32_t)-1;
 
     if (ioctl(fd, cmd, &val) < 0) {
-        error_setg(errp, "vhost-vdpa-device: cmd 0x%lx failed: %s",
-                   cmd, strerror(errno));
+        error_setg_errno(errp, errno, "vhost-vdpa-device: cmd 0x%lx failed",
+                         cmd);
     }
 
     return val;
diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c
index 3f98dcb6fd..5454372ac6 100644
--- a/migration/postcopy-ram.c
+++ b/migration/postcopy-ram.c
@@ -582,7 +582,7 @@ bool postcopy_ram_supported_by_host(MigrationIncomingState *mis, Error **errp)
 
     ufd = uffd_open(O_CLOEXEC);
     if (ufd == -1) {
-        error_setg(errp, "Userfaultfd not available: %s", strerror(errno));
+        error_setg_errno(errp, errno, "Userfaultfd not available");
         goto out;
     }
 
@@ -620,7 +620,7 @@ bool postcopy_ram_supported_by_host(MigrationIncomingState *mis, Error **errp)
      * it was enabled.
      */
     if (munlockall()) {
-        error_setg(errp, "munlockall() failed: %s", strerror(errno));
+        error_setg_errno(errp, errno, "munlockall() failed");
         goto out;
     }
 
@@ -632,7 +632,7 @@ bool postcopy_ram_supported_by_host(MigrationIncomingState *mis, Error **errp)
     testarea = mmap(NULL, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE |
                                     MAP_ANONYMOUS, -1, 0);
     if (testarea == MAP_FAILED) {
-        error_setg(errp, "Failed to map test area: %s", strerror(errno));
+        error_setg_errno(errp, errno, "Failed to map test area");
         goto out;
     }
     g_assert(QEMU_PTR_IS_ALIGNED(testarea, pagesize));
@@ -642,14 +642,14 @@ bool postcopy_ram_supported_by_host(MigrationIncomingState *mis, Error **errp)
     reg_struct.mode = UFFDIO_REGISTER_MODE_MISSING;
 
     if (ioctl(ufd, UFFDIO_REGISTER, &reg_struct)) {
-        error_setg(errp, "UFFDIO_REGISTER failed: %s", strerror(errno));
+        error_setg_errno(errp, errno, "UFFDIO_REGISTER failed");
         goto out;
     }
 
     range_struct.start = (uintptr_t)testarea;
     range_struct.len = pagesize;
     if (ioctl(ufd, UFFDIO_UNREGISTER, &range_struct)) {
-        error_setg(errp, "UFFDIO_UNREGISTER failed: %s", strerror(errno));
+        error_setg_errno(errp, errno, "UFFDIO_UNREGISTER failed");
         goto out;
     }
 
diff --git a/migration/rdma.c b/migration/rdma.c
index ef4885ef5f..9e301cf917 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -2349,7 +2349,7 @@ static int qemu_get_cm_event_timeout(RDMAContext *rdma,
         error_setg(errp, "RDMA ERROR: poll cm event timeout");
         return -1;
     } else if (ret < 0) {
-        error_setg_errno(errp, "RDMA ERROR: failed to poll cm event");
+        error_setg_errno(errp, errno, "RDMA ERROR: failed to poll cm event");
         return -1;
     } else if (poll_fd.revents & POLLIN) {
         if (rdma_get_cm_event(rdma->channel, cm_event) < 0) {
diff --git a/net/slirp.c b/net/slirp.c
index 5996fec512..04925f3318 100644
--- a/net/slirp.c
+++ b/net/slirp.c
@@ -1020,8 +1020,9 @@ static int slirp_smb(SlirpState* s, const char *exported_dir,
     }
 
     if (access(exported_dir, R_OK | X_OK)) {
-        error_setg(errp, "Error accessing shared directory '%s': %s",
-                   exported_dir, strerror(errno));
+        error_setg_errno(errp, errno,
+                         "Error accessing shared directory '%s'",
+                         exported_dir);
         return -1;
     }
 
diff --git a/qga/commands-posix-ssh.c b/qga/commands-posix-ssh.c
index 246171d323..661972e34e 100644
--- a/qga/commands-posix-ssh.c
+++ b/qga/commands-posix-ssh.c
@@ -61,20 +61,22 @@ mkdir_for_user(const char *path, const struct passwd *p,
                mode_t mode, Error **errp)
 {
     if (g_mkdir(path, mode) == -1) {
-        error_setg(errp, "failed to create directory '%s': %s",
-                   path, g_strerror(errno));
+        error_setg_errno(errp, errno, "failed to create directory '%s'",
+                         path);
         return false;
     }
 
     if (chown(path, p->pw_uid, p->pw_gid) == -1) {
-        error_setg(errp, "failed to set ownership of directory '%s': %s",
-                   path, g_strerror(errno));
+        error_setg_errno(errp, errno,
+                         "failed to set ownership of directory '%s'",
+                         path);
         return false;
     }
 
     if (chmod(path, mode) == -1) {
-        error_setg(errp, "failed to set permissions of directory '%s': %s",
-                   path, g_strerror(errno));
+        error_setg_errno(errp, errno,
+                         "failed to set permissions of directory '%s'",
+                         path);
         return false;
     }
 
@@ -95,14 +97,15 @@ write_authkeys(const char *path, const GStrv keys,
     }
 
     if (chown(path, p->pw_uid, p->pw_gid) == -1) {
-        error_setg(errp, "failed to set ownership of directory '%s': %s",
-                   path, g_strerror(errno));
+        error_setg_errno(errp, errno,
+                         "failed to set ownership of directory '%s'",
+                         path);
         return false;
     }
 
     if (chmod(path, 0600) == -1) {
-        error_setg(errp, "failed to set permissions of '%s': %s",
-                   path, g_strerror(errno));
+        error_setg_errno(errp, errno, "failed to set permissions of '%s'",
+                         path);
         return false;
     }
 
diff --git a/system/vl.c b/system/vl.c
index 5091fe52d9..2ef5b4b3b2 100644
--- a/system/vl.c
+++ b/system/vl.c
@@ -619,7 +619,7 @@ static int parse_add_fd(void *opaque, QemuOpts *opts, Error **errp)
     }
 #endif
     if (dupfd == -1) {
-        error_setg(errp, "error duplicating fd: %s", strerror(errno));
+        error_setg_errno(errp, errno, "error duplicating fd");
         return -1;
     }
 
diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
index 43124bf1c7..3501b5d546 100644
--- a/target/ppc/kvm.c
+++ b/target/ppc/kvm.c
@@ -2699,9 +2699,8 @@ int kvmppc_get_htab_fd(bool write, uint64_t index, Error **errp)
 
     ret = kvm_vm_ioctl(kvm_state, KVM_PPC_GET_HTAB_FD, &s);
     if (ret < 0) {
-        error_setg(errp, "Unable to open fd for %s HPT %s KVM: %s",
-                   write ? "writing" : "reading", write ? "to" : "from",
-                   strerror(errno));
+        error_setg_errno(errp, errno, "Unable to open fd for %s HPT %s KVM",
+                   write ? "writing" : "reading", write ? "to" : "from");
         return -errno;
     }
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:33:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:33:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167942.1494110 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMAPD-0001lI-V0; Thu, 20 Nov 2025 19:33:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167942.1494110; Thu, 20 Nov 2025 19:33:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMAPD-0001kh-Rp; Thu, 20 Nov 2025 19:33:23 +0000
Received: by outflank-mailman (input) for mailman id 1167942;
 Thu, 20 Nov 2025 19:33:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=zJ8u=54=gmail.com=nicola.vetrini@bugseng.com>)
 id 1vMAPC-0001hr-QQ
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:33:22 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c65e2080-c647-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 20:33:22 +0100 (CET)
Received: from nico-ideapad (93-44-185-120.ip98.fastwebnet.it [93.44.185.120])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id 18C6D4EEBF05;
 Thu, 20 Nov 2025 20:33:20 +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: c65e2080-c647-11f0-9d18-b5c5bf9af7f9
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=93.44.185.120
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1763667202;
	b=QBOJn5COohY6EVdf9TchCvbCtKP6qVM60HetoIS12UZ2YiHx+Jg13HaiuQe46Q/L2KVS
	 AZXcG7YFyYhKzWyLqV3FQk1DKF74EsbSPaOAOCSLQ10GN0MbFfrb6IqayMAWZb1Z1lIFD
	 XNpvb2A2+jr908oA6x1nQVaZ0Fc/FwfIUSPxed67PdPs5ESyHobds7QST8MmAJwRVgErg
	 /Tp2ApV7JLIPRL7i+/WkNuuBOxlLhp2nsabLQdHSvB1KIFUpLjsKi1gbVMU4dCKaJYuEo
	 JxmEz06rCFO8c/x06Cb0/KCF+Y3pDfMO2bcnzZy21dVrPboXWa1heClJD7me482G5A47p
	 2uClJ9SRvCL+kSpM/gSQutfkoRJhPC6Y6yqKZTyvEPfabwEBEpcP31av5PqggULM/ug0Y
	 HYLp34H8gF6oJbxli9d35cq/jYXQNvF2D11mBcjHdK2rNSeVfxo9YLiEjZYHPHrxB7ewT
	 JGrYb1MgMz45n9+/yERN2PvNsXXIpufsFixBQ/+rOKe0V7bXRsamwdsGlZ+PxtEjTEMKc
	 FFN9pVRppAEbFpx8tM2RhP188InEuuAoKATgQ/Fv1tkWxPQyqzmA8hUu2Rrosrm8Ls10D
	 ZgdhtRteKAT/m8KcPUaHrF/gLJBOuFibYm4lvSnNQ+0idrE2J3j68uhjm9a21pg=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1763667202;
	h=From:To:Cc:Subject:Date:Message-ID:X-Mailer:In-Reply-To:References:
	 MIME-Version:Content-Transfer-Encoding;
	bh=xleBcpqxr79kzkE5NhaulXEzW9GO9ArZ3q/6z7TZImA=;
	b=BiXb7B7hIrXv+fEis3uOor5bjbh/78aJwbAfgGw8CQYi++IDePbbYU2U9fMD3VfxcFyv
	 8I2G2QNexryiCccfylQY1Oh0RaWps8EFfytMC0NRWOAmOUepWI7jbPl2tA//fWRMwCDyJ
	 iqZTwogZGLZE9y7PiRkhPSd03QlLsoV/EfDSwoquYjM6yvBaCN2vlPVEWPjl3rWJtMV6y
	 yQ5DZXStmvwtsaDSyP98Hazy9teZDdcTysosGhrEMCfZXo0jEiA4uyQMUmjcCE2+9gVgu
	 yjwVidD5S5PnrLHhv4+GpnVY4Ovzlns04pxekeohq0+888bUFznz930BycK5rPobPitlh
	 Z+ZQ5+Ou4yckW3Dpn/TMuGn9PcyBI4tROJiKNoxYR7QiuW527EQaJwobGdC9cbK6dWqJr
	 qEykfm+bHCaOQZqgQbdMO6/2hrRf5VTdm6Hhl1jYi5nBzcYv1eFPeAY0vtomxcQTNC+ky
	 6vlmZcuLAqb9YwUXzkHXDdEdF/KxD3buEBTdB6aBEiwFe2RwDChqWZqcK2q5L5nGnpJNs
	 3bBqBSb/HLEm3c0JAlbRTj8QhAuJKPIbtAMejvSLBjGe8LML/6LWzEwxPPwLe/5n1sezT
	 PQw9Fq4OBgVrABgVZLGhxtmRxk8UKan63ix9cPbpYXFicnECCcz3MUXzMytYhus=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=93.44.185.120
From: Nicola Vetrini <nicola.vetrini@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	jbeulich@suse.com,
	sstabellini@kernel.org,
	Nicola Vetrini <nicola.vetrini@gmail.com>,
	Dario Faggioli <dfaggioli@suse.com>,
	Juergen Gross <jgross@suse.com>,
	George Dunlap <gwd@xenproject.org>
Subject: [PATCH 2/4] xen/sched: address violation of MISRA C Rule 16.3
Date: Thu, 20 Nov 2025 20:32:54 +0100
Message-ID: <60e3bd1ba6ab3bc47d3a95ddf1e3e7ef71db5f3d.1763642993.git.nicola.vetrini@gmail.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1763642993.git.nicola.vetrini@gmail.com>
References: <cover.1763642993.git.nicola.vetrini@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The rule states: An unconditional `break' statement shall terminate
every switch-clause.

Use the `fallthrough' pseudo-keyword for which an ECLAIR deviation
is already in place.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>
---
 xen/common/sched/credit.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/common/sched/credit.c b/xen/common/sched/credit.c
index 6dcf6b2c8b..e9a91d11c3 100644
--- a/xen/common/sched/credit.c
+++ b/xen/common/sched/credit.c
@@ -1288,7 +1288,7 @@ csched_sys_cntl(const struct scheduler *ops,
         prv->unit_migr_delay = MICROSECS(params->vcpu_migr_delay_us);
         spin_unlock_irqrestore(&prv->lock, flags);
 
-        /* FALLTHRU */
+        fallthrough;
     case XEN_SYSCTL_SCHEDOP_getinfo:
         params->tslice_ms = prv->tslice / MILLISECS(1);
         params->ratelimit_us = prv->ratelimit / MICROSECS(1);
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:33:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:33:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167941.1494106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMAPD-0001jK-Ny; Thu, 20 Nov 2025 19:33:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167941.1494106; Thu, 20 Nov 2025 19:33:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMAPD-0001jD-LT; Thu, 20 Nov 2025 19:33:23 +0000
Received: by outflank-mailman (input) for mailman id 1167941;
 Thu, 20 Nov 2025 19:33:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=zJ8u=54=gmail.com=nicola.vetrini@bugseng.com>)
 id 1vMAPC-0001hr-DB
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:33:22 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c54610f4-c647-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 20:33:20 +0100 (CET)
Received: from nico-ideapad (93-44-185-120.ip98.fastwebnet.it [93.44.185.120])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id 24AF14EEBF03;
 Thu, 20 Nov 2025 20:33: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: c54610f4-c647-11f0-9d18-b5c5bf9af7f9
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=93.44.185.120
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1763667199;
	b=eZGyJfNrjotM20Ekmp2e5goKn2B+BUe6bDXMYAzVvlpC6xO5yNhu2+R/QDf8RngAO847
	 BeHf8ZTOUMrqOIwQcFGkaLQIL1teKzd0hzIYT3aiEBB3P1j3FIQ/tSjzoLMhqfAl3zXg9
	 waOy0eH6jLGJZ6ZePKzV1/2e8PuLGKC/Hp45USCuygCyElDBrES/3IpEn/qqjgrKwQH0H
	 UEAo2K7biJkPwxtqKTfrD4gsu41d6Jh7ltZtbZdO0UmoHt1G9pSFtbdlKH0r0wYAZVZgY
	 X/uz+DajDKy6osNg0TTPL84lH3UJVp9SDGO/9RDIo3Nteg5QpnX8doGeNgLbM7XdQ+WNw
	 rHG0Mdl/MEu5KJl2/pZJXvPbqbgi3yVQ+KW+/YcqffD8HwKqkluv2PYtTxewBuHZtXXG/
	 FO5B+ZX2zg52Gl2JEsTvzV/pwQjzQ5rnilDUflpO9bUxkXxAfNcrnwra2LOE1bSKKzinw
	 gLirCcIb/RscrfhY2rNyX1k8FD9yXlDNnBCZbKoziGQULPgfu+Q+MQxKilB0W9RP9Iu8x
	 bNkD4u2/WiksxJHIYzRqeQZ6yvo0ZlSU6o+Jzkc1jJr9GRMiYAkp5gZTuDSth3LrVxFuh
	 CO4i+xM8VQtp+2lTi+sISnlJIBKxDEovjnbWJ3r74ucoTS4ZJPK9dy0a6xaCaxA=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1763667199;
	h=From:To:Cc:Subject:Date:Message-ID:X-Mailer:MIME-Version:
	 Content-Transfer-Encoding;
	bh=tul1PLLv4bxQXVkoHXhHpDiMgJ42zNl+zsNCk3BcmZY=;
	b=gjGKQA+jy1CDP7bwrbEcmEWEY/ZZofe7tkhLrjAcvr4INPw8sGRGGABDCKJhfrVY+fjO
	 B2DSIvL4sgs3xfg51C7fi76Q6IRp4e/H/n8sbrXh2LjVDCDvRQ3sAOe2YWNXjH0u4olCa
	 1QtUE5BWTVnjABKplSRovk0dG5EcNmMe+XjgL1wDPiqvIBdepiEWkDRCzl5vsoCHybavq
	 qe13ALtV+hR43Ady14NGdp77CnfIr8mSuiW9gknhE5YxNooHhrUsxKw/Sl/da+iX2gtkd
	 +VDYedwlYQb39jfh3Jzy1ppsGiLtRNYpL4YVdvMRRgl26sOOuhCASeUQKA8XM2fqqEYJD
	 7tWUN+G36RJxrdV9sYTURbAVMN98fg88wq6UdoOQoEoEMpALuJFKY5B5tkKNdSYKOhzLj
	 SY3+74KxmxV7IsuKLgF9N0ux7bKOZmhjv0QopxaJJTmiM4VTCPriTAkuZQ8QQ9zChnc0D
	 8Gtt7g1XFTIjnjIxC6LIR4SnaxrM3Y6IsocnKDvs2fEuBV2wJ4CNQgZQDJbtQLdbrWMJZ
	 1+5j7qAuDrNcTiU0aWrr5pIgOFoWRHnYCSplsiBD1i/b7cV/HGmETiZAeUhH4WizPe6T/
	 PRQ3W+TIOz22i21/aDJJlDgpAauvwn5p3ypNeQ2G0XXxzzxeN2RgEfMBGrlz06Q=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=93.44.185.120
From: Nicola Vetrini <nicola.vetrini@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	jbeulich@suse.com,
	sstabellini@kernel.org,
	Nicola Vetrini <nicola.vetrini@gmail.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Dario Faggioli <dfaggioli@suse.com>,
	Juergen Gross <jgross@suse.com>,
	George Dunlap <gwd@xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 0/4] Misc MISRA fixes for default Xen build configurations
Date: Thu, 20 Nov 2025 20:32:52 +0100
Message-ID: <cover.1763642993.git.nicola.vetrini@gmail.com>
X-Mailer: git-send-email 2.51.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This series addresses some of the violations found by widening the scope of
application of MISRA checking to default builds of Xen for both ARM64 and x86_64.

While it has been tested on top of a patch yet to be applied (but with
the necessary R-by [1]) these fixes can go in independently of that.

As evidenced by the CI pipeline below, there are a number of regressions on
guidelines that were clean on the restricted scope but are not in the wider one;
the patches in this series address a subset of those.

CI pipeline: https://gitlab.com/xen-project/people/bugseng/xen/-/pipelines/2156782159

[1] https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2511031448530.495094@ubuntu-linux-20-04-desktop/

Nicola Vetrini (4):
  xen/xsm: address violations of MISRA C rules 8.3 and 7.2
  xen/sched: address violation of MISRA C Rule 16.3
  xen/param: address violation of MISRA C Rule 20.7
  xen/param: address violation of MISRA C Rule 8.2

 xen/common/sched/credit.c | 2 +-
 xen/include/xen/param.h   | 6 +++---
 xen/include/xsm/xsm.h     | 6 +++---
 3 files changed, 7 insertions(+), 7 deletions(-)

-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:33:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:33:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167944.1494137 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMAPH-0002QD-BN; Thu, 20 Nov 2025 19:33:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167944.1494137; Thu, 20 Nov 2025 19:33:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMAPH-0002Q4-8K; Thu, 20 Nov 2025 19:33:27 +0000
Received: by outflank-mailman (input) for mailman id 1167944;
 Thu, 20 Nov 2025 19:33:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=zJ8u=54=gmail.com=nicola.vetrini@bugseng.com>)
 id 1vMAPF-0001hr-Eu
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:33:25 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c7f230a1-c647-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 20:33:24 +0100 (CET)
Received: from nico-ideapad (93-44-185-120.ip98.fastwebnet.it [93.44.185.120])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id A164B4EEBF07;
 Thu, 20 Nov 2025 20:33:23 +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: c7f230a1-c647-11f0-9d18-b5c5bf9af7f9
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=93.44.185.120
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1763667204;
	b=aLFB7evADIquXxgGDFc320N1zTWObCfTB7aSi+lUnGsfQd+SaDp18Y6vbBVRxtqRC2u2
	 GQo0j66pWqcnq2nANFuI1kBNEJ6LbhBwOPMdAzLa27oLi58TG5RIWmEVq4VmKD6ovG0nr
	 Wtbh+ad5NsNcJwzA1teM7TCEDjgSWAHSyZzVZZg4vKBlhyW7f+PsqxpNMf7xR8+E0H/jR
	 BMi3naKJBrPbsfyo+BLyW5nTfojY4Fzykag3LtVKJAjEZvzuPJlC70WMoAppk18RJCQE8
	 HZyiCf+ommjxFJQvvDbkvO55bT1dKl0nAbSc8pgObBOItcR1qB5HCUanIB/scbYw/3kl+
	 lbAnFa/uPQclzfXXazBaXFSEV1XlYyk7WIgN+hdO52Pj4HIgDG/6rs8B09TIj9yv1Eiix
	 OBYmJ39F8CltupKpxvxn0k5Fxb9yHzxngygGQqfvkTfClAHxubp05NFaAbVqGt0HBIf0Y
	 2gFwJwHgluX1tHWw7sTz+2KnIUwzSbNWI8x5x/Ywp6iTbCzr/ug6x2LK6wv+r/aUt5+q3
	 lvejVYMILxGmfoMGTc9zLAkKn5YsrWYKe7Jl1ybOle9wywjI2ej2nq1avKdhJ+dOmcQ0w
	 9D04TpLBK1p1iBls59JKZdw2WChzR5yUKD27PNSoX3wqQNyYpeKvWyvN9tkJM6Q=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1763667204;
	h=From:To:Cc:Subject:Date:Message-ID:X-Mailer:In-Reply-To:References:
	 MIME-Version:Content-Transfer-Encoding;
	bh=1QuMs1/9Gq1gFIiBb+i2lk9Yrl5XzVkDzoTNLAZZEJ0=;
	b=Hlyjvb/w6XumCYs1XVcDJCWR+enCCdwJe7ny51H4XAFCM+/4CbiFazH1U9OD8YzWOTdL
	 sE0i4AfdMg6uOObOZ2uL15meuLcJb/vubyQfovJLoZksg0/C4kYnbAj8UEq4l7t3QzC6N
	 b0CPWIFgoEAQwqwj7wjrDVn/3wnQfXjs9C7ABJz75yKsWbkYG72WUBMCur3L61TpFEMii
	 3jf+PNRI0Gz8uK18EUBE5N1PZX/D3uXaONx31f5nLh5ZDuUiEJG2HNVIAR0xk+z2Sm6Sj
	 yy1zV+xLv/8bCH//t8uY5nTsPlSa5LRL+7r1JZMIu8afQZeQmd2h2kP95YfTeg++v8gPK
	 QCiSPKDQf7ccnbXY3JOXy1VAHaDOP7mlwYBcLxaEFCvO9Np/APvn9CFRvm0jzoDDP4m7g
	 pKszEu1Al6ZhElN1fodEPCrz2LQepH5GoZqHVmKth+4opLlEs+Fsok2LWQm8JEpKNNd+c
	 zQ/2TBJFaUGDk357JdbqZHFq1IaecOJUbh2wmtYAMkl+wihFXmTKojdef7dlPKZe87cjn
	 sZ3uak3Wjx4xQtC2piBcdSuqe43xy0ITQDVlfY6Jn3F/23lziLXt+JL/Rk1WMGhmP2Qic
	 sgAWl63XgBtLf/Ql2r8KhILAHjayihIisOlJLjZsR3ePte5F9xoujBJIGp6bKx8=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=93.44.185.120
From: Nicola Vetrini <nicola.vetrini@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	jbeulich@suse.com,
	sstabellini@kernel.org,
	Nicola Vetrini <nicola.vetrini@gmail.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 4/4] xen/param: address violation of MISRA C Rule 8.2
Date: Thu, 20 Nov 2025 20:32:56 +0100
Message-ID: <b51830acf5274dfac6a3b2b6864be775180ee673.1763642993.git.nicola.vetrini@gmail.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1763642993.git.nicola.vetrini@gmail.com>
References: <cover.1763642993.git.nicola.vetrini@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

add missing parameter name in function pointer member declaration.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>
---
 xen/include/xen/param.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/include/xen/param.h b/xen/include/xen/param.h
index f5a2189400..3b6f134b07 100644
--- a/xen/include/xen/param.h
+++ b/xen/include/xen/param.h
@@ -90,7 +90,7 @@ extern const struct kernel_param __setup_start[], __setup_end[];
 struct param_hypfs {
     struct hypfs_entry_leaf hypfs;
     void (*init_leaf)(struct param_hypfs *par);
-    int (*func)(const char *);
+    int (*func)(const char *s);
 };
 
 extern struct param_hypfs __paramhypfs_start[], __paramhypfs_end[];
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:33:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:33:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167943.1494127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMAPG-0002Ak-4E; Thu, 20 Nov 2025 19:33:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167943.1494127; Thu, 20 Nov 2025 19:33:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMAPG-0002Ad-1G; Thu, 20 Nov 2025 19:33:26 +0000
Received: by outflank-mailman (input) for mailman id 1167943;
 Thu, 20 Nov 2025 19:33: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=zJ8u=54=gmail.com=nicola.vetrini@bugseng.com>)
 id 1vMAPE-0001hr-4p
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:33:24 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c726cf6b-c647-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 20:33:23 +0100 (CET)
Received: from nico-ideapad (93-44-185-120.ip98.fastwebnet.it [93.44.185.120])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id 50B454EEBF06;
 Thu, 20 Nov 2025 20:33: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: c726cf6b-c647-11f0-9d18-b5c5bf9af7f9
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=93.44.185.120
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1763667203;
	b=GrDXwHjA3XSgMz0xYcqYjAuYcdFmjFi+pkddUjx+bblxNBA5qPsyeUq5fkRStd6/a0oL
	 lgpXoNA2HCyWMlTacHLDNMDmSDU4pGrpPkNk78DFYspd7sqrNjS/jydy5Zkpyf/TErwW3
	 sOSXU24rpTK3s7jykz1+U9QJ8PiFJysElb/h/Lz6YkNQjzXLBEBGAjwxI+7/ioBQM0qly
	 RzmxNI9Ecgywl4Tm431GnM8l3PzRfs2OLm/RUB2HzGP4lr+1UKLGouGIIth8wYFp9/QC3
	 b+iCbIxsUmJIF3uMCfOTl0l9E4YjFwxSTNJ/4Q3RXZIBdyTI8Sybg1NMJ28yiPSstFcIq
	 InbOhk1kdC0f1I/eAAe0G4sssikXU/CVQvHTSWbUd/g0RzB50FkTZKM42iR+ir7cZ4jLh
	 nIMkoiBeZ8DTRUAA1cGuqqpQyZ9z+o03igm/Iaq1kbX4/PbTaGeQ44/JdEjv4bR/+6Qka
	 iiFpQpw93QTdCZXaVOW9Dc+djqdULba2/ob7LLsEsdNU1hyGKQD0cRv3U/tbJluOnzqIi
	 TU9XITGu0sKI7cL5pQ5EUN8LoQdU9OtYaNue3mqgycRVTBGZmPnCbo99rNMZxRSkvN8Ih
	 oiqP9VeOtXNIibPC2EEjEn2kczNmroXwdS1OnCC9yg5sex0jF+RjeorcrTSlWX0=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1763667203;
	h=From:To:Cc:Subject:Date:Message-ID:X-Mailer:In-Reply-To:References:
	 MIME-Version:Content-Transfer-Encoding;
	bh=p+U0aUwybu1dMebZr+nA1KTxVn7l5e18ZGuPyuhBnFA=;
	b=pPECHZBWjbPJigRcydEutV7RYj4MEDnh2ERiWqzWS0w0R4l9TreD8y2/2iVddA6Mphs9
	 DsV5cLk+JL7r7Eny5jT2IgmMGZuxnOx7cAplIjyolFYf7xCvKda5JBWc68hRhcjqJ4xwe
	 vL4EDdzTRuphnDSBYfoMOjooaumNQ/jaKx/sC/rG6b85qmTzWaDciKLONGd8wmMpc8X95
	 JT3XFxcGzGDYT7/0FMp+l1Cy+uDCrMdNWLpOHwwpwNRpwy0tVN7H/OttCx2gpVrsCbw9w
	 9ANAKRrBF+YIe/bIdeWbmm07XL3913iGOiQVzUrg9KYShBVh0iX/B3W90VQGML29nBvhy
	 xLBnGpw05wVBcz89WdheVPUvgiNJxPSQ8N/1rXY1EgCF3n6dftPpGImwZ/vXYx2/Q/CRq
	 tiap80D93zrVinPOr8TfUuV4gIExh2Y7T7WavwA36v7g5QUDfIY/qHaRD1K08ShhuBzyQ
	 UhpJX4H4USCA6C74Qs1Eez7nhwPNQ7dj8rIk7pkxZMmN4qBOFhCsqovcHKSBQ8wpdGzej
	 dyt/I+EaHW5qSDS1sS2CqAhlzRxSvcQDt1v7vN5Ing5d4/Jb5U4WmgrTaxwk5yOKcMCyn
	 /PyYGFNuBTHZN0Fljh+UV0kdv6R2gnh68LsKrnvvKATCcirY+Jx4G8Ag7/mu1/Y=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=93.44.185.120
From: Nicola Vetrini <nicola.vetrini@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	jbeulich@suse.com,
	sstabellini@kernel.org,
	Nicola Vetrini <nicola.vetrini@gmail.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 3/4] xen/param: address violation of MISRA C Rule 20.7
Date: Thu, 20 Nov 2025 20:32:55 +0100
Message-ID: <bbbe135e699e8589c36555f02e208edff64ef76c.1763642993.git.nicola.vetrini@gmail.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1763642993.git.nicola.vetrini@gmail.com>
References: <cover.1763642993.git.nicola.vetrini@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The rule states: Expressions resulting from the expansion of
macro parameters shall be enclosed in parentheses.

Add parentheses in the defition of `custom_runtime_var_sz' to
address the violations.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>
---
 xen/include/xen/param.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/include/xen/param.h b/xen/include/xen/param.h
index 1bdbab34ab..f5a2189400 100644
--- a/xen/include/xen/param.h
+++ b/xen/include/xen/param.h
@@ -102,8 +102,8 @@ extern struct param_hypfs __paramhypfs_start[], __paramhypfs_end[];
 
 #define custom_runtime_set_var_sz(parfs, var, sz) \
     { \
-        (parfs)->hypfs.u.content = var; \
-        (parfs)->hypfs.e.max_size = sz; \
+        (parfs)->hypfs.u.content = (var); \
+        (parfs)->hypfs.e.max_size = (sz); \
         (parfs)->hypfs.e.size = strlen(var) + 1; \
     }
 #define custom_runtime_set_var(parfs, var) \
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 19:33:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 19:33:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1167950.1494147 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMAPP-0002sC-J8; Thu, 20 Nov 2025 19:33:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1167950.1494147; Thu, 20 Nov 2025 19:33: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 1vMAPP-0002s5-Fw; Thu, 20 Nov 2025 19:33:35 +0000
Received: by outflank-mailman (input) for mailman id 1167950;
 Thu, 20 Nov 2025 19:33:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=zJ8u=54=gmail.com=nicola.vetrini@bugseng.com>)
 id 1vMAPP-0001hr-2m
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 19:33:35 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c5939117-c647-11f0-9d18-b5c5bf9af7f9;
 Thu, 20 Nov 2025 20:33:21 +0100 (CET)
Received: from nico-ideapad (93-44-185-120.ip98.fastwebnet.it [93.44.185.120])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id EE47C4EEBF04;
 Thu, 20 Nov 2025 20:33:19 +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: c5939117-c647-11f0-9d18-b5c5bf9af7f9
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=93.44.185.120
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1763667200;
	b=diiJIiaSEkuwROJh8Q16QpWkxnrwTGlQU7ooPmK5f/qfWu0vqTyIwpnAMBQCzJnQKwo1
	 5RGCfmF1Y23rTezojMMCgdWL881zO5AkxThUg9up+r02zyjfVUCA1qXyFtxMl4DP/jFty
	 3dazAmHG1ETtKzGWGd/uN3RbusC0mzQySyqZOKd77faxwym5S88PLoKj9oaSuY4JrEI7E
	 ArQEEbuaUMh6Gt2kTR9XjFXarfy8PTIm/MK1S4VPtX5itTZn5AhgAgKmhaGl7QtqrECml
	 8h21FKy6cBtLpfqf0yokTWxwbypJMFw2hxl3EG8yglD73rxhtw1i1Idr9lM74dWymrmLc
	 yFYDOhofgju/CCtBFmoX9Z1u5ERbNGuvldUrt6ChHTahrg/W1+b70dAb7HMgA6/CcVz93
	 Vkq+wCi+0sU1gocrOY0Og2ui0/Y6u0lKJ5evwIM7Mk6TwRmIN5izl26NdV1Syr3qmSPOv
	 VYgfMz6KqF2/TNF0pm22pFsjrvnzlyO4+AwmLXEgEfhyP5j2u+RrTAlBIL44+/HNXEK+B
	 vSIBY6f90D1YpDd8S2z20KD+tvUUu2J0G0xTcx+OzK5yKAjwnrdVjqJ3Se35DD3LF6MUo
	 g4KddEGNueximp0LnmOPhUsJ2qwnPGnHjtD2RBGx7YSHnCeXL+5foUj5WzYPttc=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1763667200;
	h=From:To:Cc:Subject:Date:Message-ID:X-Mailer:In-Reply-To:References:
	 MIME-Version:Content-Transfer-Encoding;
	bh=HbV4xVp4zeLN5tj4auSxhS6CmQsw7OBVUF0eevyQ0mE=;
	b=sOsZgLDvUY7MDvaUvF4vFUuqN3DogaUWnnPQ6cBp5rL5LZkRCNH3QAzvUWvWN4GB5FSe
	 4lZwF21XlKcO7HKnwGbZVKjyPNr9FXig3JzJuvcfm/Gry2j96rNM8j4VNFeyTtabIy059
	 N2Kht3j7Mtq5VGDmS/h3E5VsaQ2HnCzHt5YBwphihrhNUc/XTKl9/6rVmLnmbJUUB9XVD
	 6CzUSVj7k5a0rSGlR/28zdvMTkhUcJeYOPGpzo58up5Vo8wlyjXwGy8cVLn5QYbu53cBP
	 DSSkhVmHoH5XJI2Fgo2dhxISTAg5ohdhlYfIYY9GvWe2i32ildQYMCyTHbNUftL4FklLe
	 njZgBKhu3Nfc46f56gTWfV79S7Q4qStSUTMgqGLpe/4ZNJhZYdSkwT+GdfMeHbQnqQ9K9
	 0vGf93oQ3S1SbBImcNpf9tg6z7XrjgsX1IShs+GIa7f9WtQjz3yLjOYpvaMu72p9g+dbx
	 OdIRtuKJZjnNzuH++Vuh62TYjchgyUyJk0c0MWHKbQMgY+Jt/9kKUph3KiX8f0zJOJWGS
	 VMwPtkWyoiJgjSiDzEyIu4bCbhO90zpjGMyhj5IBBBJn8RpRCsFl5ZRJsH7TnZY2WakzW
	 exxfCmJePBmpR9CHOiCCPNrXgEsLlQCK0Kt6R3iU87XmlUfpdD+agB0s/e62Lg0=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=93.44.185.120
From: Nicola Vetrini <nicola.vetrini@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	jbeulich@suse.com,
	sstabellini@kernel.org,
	Nicola Vetrini <nicola.vetrini@gmail.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH 1/4] xen/xsm: address violations of MISRA C rules 8.3 and 7.2
Date: Thu, 20 Nov 2025 20:32:53 +0100
Message-ID: <e59c8b5c1240417d7f55d9ec16378fb180cd63a9.1763642993.git.nicola.vetrini@gmail.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1763642993.git.nicola.vetrini@gmail.com>
References: <cover.1763642993.git.nicola.vetrini@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Rule 8.3 states: Function types shall be in prototype form
with named parameters.

add parameter to 'has_xsm_magic' to make it consistent with the
definition.

Rule 7.2 states: A `u' or `U' suffix shall be applied to all
integer constants that are represented in an unsigned type.

add missing `U' to both #define for `XSM_MAGIC` for consistency.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>
---
 xen/include/xsm/xsm.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 9a23d2827c..074d61cd45 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -22,9 +22,9 @@
 typedef uint32_t xsm_magic_t;
 
 #ifdef CONFIG_XSM_FLASK
-#define XSM_MAGIC 0xf97cff8c
+#define XSM_MAGIC 0xf97cff8cU
 #else
-#define XSM_MAGIC 0x0
+#define XSM_MAGIC 0x0U
 #endif
 
 /*
@@ -815,7 +815,7 @@ int xsm_multiboot_policy_init(
  */
 int xsm_dt_init(void);
 int xsm_dt_policy_init(void **policy_buffer, size_t *policy_size);
-bool has_xsm_magic(paddr_t);
+bool has_xsm_magic(paddr_t start);
 #endif
 
 void xsm_fixup_ops(struct xsm_ops *ops);
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 20 23:57:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 20 Nov 2025 23:57:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168030.1494157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMEWm-0004wU-Eo; Thu, 20 Nov 2025 23:57:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168030.1494157; Thu, 20 Nov 2025 23:57: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 1vMEWm-0004wN-AW; Thu, 20 Nov 2025 23:57:28 +0000
Received: by outflank-mailman (input) for mailman id 1168030;
 Thu, 20 Nov 2025 23:57: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=Gr2H=54=treblig.org=dg@srs-se1.protection.inumbo.net>)
 id 1vMEWk-0004wH-LN
 for xen-devel@lists.xenproject.org; Thu, 20 Nov 2025 23:57:26 +0000
Received: from mx.treblig.org (mx.treblig.org [2a00:1098:5b::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a848ed4d-c66c-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 00:57:24 +0100 (CET)
Received: from dg by mx.treblig.org with local (Exim 4.98.2)
 (envelope-from <dg@treblig.org>) id 1vMEWX-00000005cYr-0ztq;
 Thu, 20 Nov 2025 23:57: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: a848ed4d-c66c-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=treblig.org
	; s=bytemarkmx; h=Content-Type:MIME-Version:Message-ID:Subject:From:Date:From
	:Subject; bh=yLx8/kW/v6qUU6G/CxjaSljuRBbP90sLxOMR5Nm0pKA=; b=M+mrJZyL7werI5IY
	QaTeVA66JNcc6UmKX+IWfgWcCWSuWyHR7woCz+nK9VH5X6DShYGi0MnnpKdk9R3hWP01DVM9pwSO+
	0mHysCZkXmXtBm6gneQIoDYy329cHrq4QWGf+FTXK+uautA8L/u+kRXnHzpnKt8s9QlXtYFuaryRY
	wSIAGNeeevUTUeh/kN6c9EILJCGBnAqKriOxG+2PqaiaQF12+cH853scKM7WMr9MfwqCtDgaZNVtO
	gXnSKivBzAdvYq5xjXyQrtWf62qjquyoFcKQ+Ozoj8NzsmVeiTGM8WAQHu/FUVhGAqjlsbDzc600R
	s+g1gljwzFbH36fTkA==;
Date: Thu, 20 Nov 2025 23:57:13 +0000
From: "Dr. David Alan Gilbert" <dave@treblig.org>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, arei.gonglei@huawei.com, pizhenwei@bytedance.com,
	alistair.francis@wdc.com, stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com, hreitz@redhat.com, sw@weilnetz.de,
	qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
	imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
	shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
	edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com,
	jag.raman@oracle.com, sgarzare@redhat.com, pbonzini@redhat.com,
	fam@euphon.net, philmd@linaro.org, alex@shazbot.org, clg@redhat.com,
	peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
	jasowang@redhat.com, samuel.thibault@ens-lyon.org,
	michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
	mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
	liwei1518@gmail.com, dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
	qemu-block@nongnu.org, qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org, kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: Re: [PATCH 09/14] error: Use error_setg_file_open() for simplicity
 and consistency
Message-ID: <aR-q2YeegIEPmk2R@gallifrey>
References: <20251120191339.756429-1-armbru@redhat.com>
 <20251120191339.756429-10-armbru@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
In-Reply-To: <20251120191339.756429-10-armbru@redhat.com>
X-Chocolate: 70 percent or better cocoa solids preferably
X-Operating-System: Linux/6.12.48+deb13-amd64 (x86_64)
X-Uptime: 23:56:31 up 24 days, 23:32,  2 users,  load average: 0.00, 0.01,
 0.00
User-Agent: Mutt/2.2.13 (2024-03-09)

* Markus Armbruster (armbru@redhat.com) wrote:
> Replace
> 
>     error_setg_errno(errp, errno, MSG, FNAME);
> 
> by
> 
>     error_setg_file_open(errp, errno, FNAME);
> 
> where MSG is "Could not open '%s'" or similar.
> 
> Also replace equivalent uses of error_setg().
> 
> A few messages lose prefixes ("net dump: ", "SEV: ", __func__ ": ").
> We could put them back with error_prepend().  Not worth the bother.

Yeh, I guess you could just do it with another macro using
the same internal function just with string concatenation.

> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org>

> ---
>  hw/9pfs/9p-local.c        | 2 +-
>  hw/acpi/core.c            | 2 +-
>  hw/core/loader.c          | 2 +-
>  hw/pci-host/xen_igd_pt.c  | 2 +-
>  monitor/hmp-cmds-target.c | 2 +-
>  net/dump.c                | 2 +-
>  net/tap-bsd.c             | 6 +++---
>  net/tap-linux.c           | 2 +-
>  target/i386/sev.c         | 6 ++----
>  ui/ui-qmp-cmds.c          | 3 +--
>  util/vfio-helpers.c       | 5 ++---
>  11 files changed, 15 insertions(+), 19 deletions(-)
> 
> diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c
> index 31e216227c..376b377698 100644
> --- a/hw/9pfs/9p-local.c
> +++ b/hw/9pfs/9p-local.c
> @@ -1456,7 +1456,7 @@ static int local_init(FsContext *ctx, Error **errp)
>  
>      data->mountfd = open(ctx->fs_root, O_DIRECTORY | O_RDONLY);
>      if (data->mountfd == -1) {
> -        error_setg_errno(errp, errno, "failed to open '%s'", ctx->fs_root);
> +        error_setg_file_open(errp, errno, ctx->fs_root);
>          goto err;
>      }
>  
> diff --git a/hw/acpi/core.c b/hw/acpi/core.c
> index ff16582803..d2677332af 100644
> --- a/hw/acpi/core.c
> +++ b/hw/acpi/core.c
> @@ -277,7 +277,7 @@ void acpi_table_add(const QemuOpts *opts, Error **errp)
>          int fd = open(*cur, O_RDONLY | O_BINARY);
>  
>          if (fd < 0) {
> -            error_setg(errp, "can't open file %s: %s", *cur, strerror(errno));
> +            error_setg_file_open(errp, errno, *cur);
>              goto out;
>          }
>  
> diff --git a/hw/core/loader.c b/hw/core/loader.c
> index 590c5b02aa..b56e5eb2f5 100644
> --- a/hw/core/loader.c
> +++ b/hw/core/loader.c
> @@ -379,7 +379,7 @@ void load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp)
>  
>      fd = open(filename, O_RDONLY | O_BINARY);
>      if (fd < 0) {
> -        error_setg_errno(errp, errno, "Failed to open file: %s", filename);
> +        error_setg_file_open(errp, errno, filename);
>          return;
>      }
>      if (read(fd, hdr, EI_NIDENT) != EI_NIDENT) {
> diff --git a/hw/pci-host/xen_igd_pt.c b/hw/pci-host/xen_igd_pt.c
> index 5dd17ef236..f6016f2cd5 100644
> --- a/hw/pci-host/xen_igd_pt.c
> +++ b/hw/pci-host/xen_igd_pt.c
> @@ -55,7 +55,7 @@ static void host_pci_config_read(int pos, int len, uint32_t *val, Error **errp)
>  
>      config_fd = open(path, O_RDWR);
>      if (config_fd < 0) {
> -        error_setg_errno(errp, errno, "Failed to open: %s", path);
> +        error_setg_file_open(errp, errno, path);
>          goto out;
>      }
>  
> diff --git a/monitor/hmp-cmds-target.c b/monitor/hmp-cmds-target.c
> index e982061146..ad4ed2167d 100644
> --- a/monitor/hmp-cmds-target.c
> +++ b/monitor/hmp-cmds-target.c
> @@ -331,7 +331,7 @@ static uint64_t vtop(void *ptr, Error **errp)
>  
>      fd = open("/proc/self/pagemap", O_RDONLY);
>      if (fd == -1) {
> -        error_setg_errno(errp, errno, "Cannot open /proc/self/pagemap");
> +        error_setg_file_open(errp, errno, "/proc/self/pagemap");
>          return -1;
>      }
>  
> diff --git a/net/dump.c b/net/dump.c
> index 581234b775..0c39f09892 100644
> --- a/net/dump.c
> +++ b/net/dump.c
> @@ -111,7 +111,7 @@ static int net_dump_state_init(DumpState *s, const char *filename,
>  
>      fd = open(filename, O_CREAT | O_TRUNC | O_WRONLY | O_BINARY, 0644);
>      if (fd < 0) {
> -        error_setg_errno(errp, errno, "net dump: can't open %s", filename);
> +        error_setg_file_open(errp, errno, filename);
>          return -1;
>      }
>  
> diff --git a/net/tap-bsd.c b/net/tap-bsd.c
> index bbf84d1828..3fd300d46f 100644
> --- a/net/tap-bsd.c
> +++ b/net/tap-bsd.c
> @@ -68,7 +68,7 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr,
>          }
>      }
>      if (fd < 0) {
> -        error_setg_errno(errp, errno, "could not open %s", dname);
> +        error_setg_file_open(errp, errno, dname);
>          return -1;
>      }
>  
> @@ -118,7 +118,7 @@ static int tap_open_clone(char *ifname, int ifname_size, Error **errp)
>  
>      fd = RETRY_ON_EINTR(open(PATH_NET_TAP, O_RDWR));
>      if (fd < 0) {
> -        error_setg_errno(errp, errno, "could not open %s", PATH_NET_TAP);
> +        error_setg_file_open(errp, errno, PATH_NET_TAP);
>          return -1;
>      }
>  
> @@ -166,7 +166,7 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr,
>          snprintf(dname, sizeof dname, "/dev/%s", ifname);
>          fd = RETRY_ON_EINTR(open(dname, O_RDWR));
>          if (fd < 0 && errno != ENOENT) {
> -            error_setg_errno(errp, errno, "could not open %s", dname);
> +            error_setg_file_open(errp, errno, dname);
>              return -1;
>          }
>      }
> diff --git a/net/tap-linux.c b/net/tap-linux.c
> index 2a90b58467..909c4f1fcf 100644
> --- a/net/tap-linux.c
> +++ b/net/tap-linux.c
> @@ -57,7 +57,7 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr,
>      if (fd < 0) {
>          fd = RETRY_ON_EINTR(open(PATH_NET_TUN, O_RDWR));
>          if (fd < 0) {
> -            error_setg_errno(errp, errno, "could not open %s", PATH_NET_TUN);
> +            error_setg_file_open(errp, errno, PATH_NET_TUN);
>              return -1;
>          }
>      }
> diff --git a/target/i386/sev.c b/target/i386/sev.c
> index fd2dada013..8660ecd9e4 100644
> --- a/target/i386/sev.c
> +++ b/target/i386/sev.c
> @@ -891,8 +891,7 @@ static SevCapability *sev_get_capabilities(Error **errp)
>  
>      fd = open(sev_device, O_RDWR);
>      if (fd < 0) {
> -        error_setg_errno(errp, errno, "SEV: Failed to open %s",
> -                         sev_device);
> +        error_setg_file_open(errp, errno, sev_device);
>          g_free(sev_device);
>          return NULL;
>      }
> @@ -1819,8 +1818,7 @@ static int sev_common_kvm_init(ConfidentialGuestSupport *cgs, Error **errp)
>      devname = object_property_get_str(OBJECT(sev_common), "sev-device", NULL);
>      sev_common->sev_fd = open(devname, O_RDWR);
>      if (sev_common->sev_fd < 0) {
> -        error_setg(errp, "%s: Failed to open %s '%s'", __func__,
> -                   devname, strerror(errno));
> +        error_setg_file_open(errp, errno, devname);
>          g_free(devname);
>          return -1;
>      }
> diff --git a/ui/ui-qmp-cmds.c b/ui/ui-qmp-cmds.c
> index 74fa6c6ec5..d927121676 100644
> --- a/ui/ui-qmp-cmds.c
> +++ b/ui/ui-qmp-cmds.c
> @@ -371,8 +371,7 @@ qmp_screendump(const char *filename, const char *device,
>  
>      fd = qemu_open_old(filename, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0666);
>      if (fd == -1) {
> -        error_setg(errp, "failed to open file '%s': %s", filename,
> -                   strerror(errno));
> +        error_setg_file_open(errp, errno, filename);
>          return;
>      }
>  
> diff --git a/util/vfio-helpers.c b/util/vfio-helpers.c
> index fdff042ab4..8b1b2e2f05 100644
> --- a/util/vfio-helpers.c
> +++ b/util/vfio-helpers.c
> @@ -309,7 +309,7 @@ static int qemu_vfio_init_pci(QEMUVFIOState *s, const char *device,
>      s->container = open("/dev/vfio/vfio", O_RDWR);
>  
>      if (s->container == -1) {
> -        error_setg_errno(errp, errno, "Failed to open /dev/vfio/vfio");
> +        error_setg_file_open(errp, errno, "/dev/vfio/vfio");
>          return -errno;
>      }
>      if (ioctl(s->container, VFIO_GET_API_VERSION) != VFIO_API_VERSION) {
> @@ -333,8 +333,7 @@ static int qemu_vfio_init_pci(QEMUVFIOState *s, const char *device,
>  
>      s->group = open(group_file, O_RDWR);
>      if (s->group == -1) {
> -        error_setg_errno(errp, errno, "Failed to open VFIO group file: %s",
> -                         group_file);
> +        error_setg_file_open(errp, errno, group_file);
>          g_free(group_file);
>          ret = -errno;
>          goto fail_container;
> -- 
> 2.49.0
> 
-- 
 -----Open up your eyes, open up your mind, open up your code -------   
/ Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \ 
\        dave @ treblig.org |                               | In Hex /
 \ _________________________|_____ http://www.treblig.org   |_______/


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 00:10:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 00:10:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168048.1494167 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMEjQ-0008HO-K6; Fri, 21 Nov 2025 00:10:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168048.1494167; Fri, 21 Nov 2025 00:10:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMEjQ-0008HH-Gw; Fri, 21 Nov 2025 00:10:32 +0000
Received: by outflank-mailman (input) for mailman id 1168048;
 Fri, 21 Nov 2025 00:10: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=ZKoZ=55=treblig.org=dg@srs-se1.protection.inumbo.net>)
 id 1vMEjO-0008HB-Uj
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 00:10:30 +0000
Received: from mx.treblig.org (mx.treblig.org [2a00:1098:5b::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 783dbe68-c66e-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 01:10:23 +0100 (CET)
Received: from dg by mx.treblig.org with local (Exim 4.98.2)
 (envelope-from <dg@treblig.org>) id 1vMEj7-00000005csx-0Lk8;
 Fri, 21 Nov 2025 00:10: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: 783dbe68-c66e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=treblig.org
	; s=bytemarkmx; h=Content-Type:MIME-Version:Message-ID:Subject:From:Date:From
	:Subject; bh=4YAcbiarbzQHvhEzZ63n6RkH46R+BEUGak5gqn7DS+0=; b=ilbUYMN0rKRC6nJC
	AjVUwVMVW7944N9SN4N3h+IDCtzr87WMNXUIjULXle6L7f2jIHRXFfSFJOhAvPsDh+Z0MgdXaqFzH
	xtlyavuW6OwPf2BO03CsvX0Ryu0GPXNoJeLboZkxtZVm6GJSOHN/CzhKQQpMqsdK6HpavN34jWfZZ
	Kt1+prB3CLGVGdrqi5ZXeOePqoNkHL74MhrVFb1qWAECOoiXvaAqik3S9zDCGG3ogy18MMD4PBfRk
	VNgLVDGImyGZWGiBa95qzFc+pyTfzMMKtajdwOWnCMLk2vMLrIgLH4H3PxDBorM9KvZw7GDP0Hojb
	9PgYJe97XoKoacFcHw==;
Date: Fri, 21 Nov 2025 00:10:13 +0000
From: "Dr. David Alan Gilbert" <dave@treblig.org>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, arei.gonglei@huawei.com, pizhenwei@bytedance.com,
	alistair.francis@wdc.com, stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com, hreitz@redhat.com, sw@weilnetz.de,
	qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
	imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
	shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
	edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com,
	jag.raman@oracle.com, sgarzare@redhat.com, pbonzini@redhat.com,
	fam@euphon.net, philmd@linaro.org, alex@shazbot.org, clg@redhat.com,
	peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
	jasowang@redhat.com, samuel.thibault@ens-lyon.org,
	michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
	mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
	liwei1518@gmail.com, dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
	qemu-block@nongnu.org, qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org, kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: Re: [PATCH 11/14] error: Use error_setg_errno() to improve error
 messages
Message-ID: <aR-t5SzR2AdqlJtq@gallifrey>
References: <20251120191339.756429-1-armbru@redhat.com>
 <20251120191339.756429-12-armbru@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
In-Reply-To: <20251120191339.756429-12-armbru@redhat.com>
X-Chocolate: 70 percent or better cocoa solids preferably
X-Operating-System: Linux/6.12.48+deb13-amd64 (x86_64)
X-Uptime: 00:09:12 up 24 days, 23:45,  2 users,  load average: 0.03, 0.03,
 0.00
User-Agent: Mutt/2.2.13 (2024-03-09)

* Markus Armbruster (armbru@redhat.com) wrote:
> A few error messages show numeric errno codes.  Use error_setg_errno()
> to show human-readable text instead.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

...

> diff --git a/migration/rdma.c b/migration/rdma.c
> index 337b415889..ef4885ef5f 100644
> --- a/migration/rdma.c
> +++ b/migration/rdma.c
> @@ -2349,8 +2349,7 @@ static int qemu_get_cm_event_timeout(RDMAContext *rdma,
>          error_setg(errp, "RDMA ERROR: poll cm event timeout");
>          return -1;
>      } else if (ret < 0) {
> -        error_setg(errp, "RDMA ERROR: failed to poll cm event, errno=%i",
> -                   errno);
> +        error_setg_errno(errp, "RDMA ERROR: failed to poll cm event");

Hasn't that lost the errno ?

Dave

-- 
 -----Open up your eyes, open up your mind, open up your code -------   
/ Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \ 
\        dave @ treblig.org |                               | In Hex /
 \ _________________________|_____ http://www.treblig.org   |_______/


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 00:15:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 00:15:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168060.1494177 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMEoC-0000YW-49; Fri, 21 Nov 2025 00:15:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168060.1494177; Fri, 21 Nov 2025 00:15: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 1vMEoC-0000YP-16; Fri, 21 Nov 2025 00:15:28 +0000
Received: by outflank-mailman (input) for mailman id 1168060;
 Fri, 21 Nov 2025 00:15: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=ZKoZ=55=treblig.org=dg@srs-se1.protection.inumbo.net>)
 id 1vMEoB-0000YJ-23
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 00:15:27 +0000
Received: from mx.treblig.org (mx.treblig.org [2a00:1098:5b::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2b0d3b9d-c66f-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 01:15:21 +0100 (CET)
Received: from dg by mx.treblig.org with local (Exim 4.98.2)
 (envelope-from <dg@treblig.org>) id 1vMEnz-00000005cvd-0YBm;
 Fri, 21 Nov 2025 00:15: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: 2b0d3b9d-c66f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=treblig.org
	; s=bytemarkmx; h=Content-Type:MIME-Version:Message-ID:Subject:From:Date:From
	:Subject; bh=amKb911rYLxhP+db/dvSJFXgaACJD9GturT1fn3TAQA=; b=SjPx7AiS/6BZyg4j
	MH4JVdiVd9Vms2EKybj2d/SOA5XqLw3oAkKAfIyNDhkriEGkcNDq95jAkCBdpX+KQlRsBifYkpHVv
	1jHJsFp+UGFxM28lj4+K28Zw+q2fVgxgwf/U7VhA1j7fEYYxQ5FScSJLYBHuh25l/Pr7P3frXnwZ9
	Pj7WsIGxXCD5F+WBjimIjZ4q1CKhE1QSfQWTWvs1BAc9ghtfjdke9qfbdimoSfnS1LZj22sJ/zco7
	qCMMyGQn935klyclHkB+JbfZbyQPW/mBA1uuxu6UJNqxH+8tqzZM6AQCiO8j8r0pELAn/Rn1Gzo5D
	SwSU8jh7iDKrCjw5hw==;
Date: Fri, 21 Nov 2025 00:15:15 +0000
From: "Dr. David Alan Gilbert" <dave@treblig.org>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, arei.gonglei@huawei.com, pizhenwei@bytedance.com,
	alistair.francis@wdc.com, stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com, hreitz@redhat.com, sw@weilnetz.de,
	qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
	imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
	shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
	edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com,
	jag.raman@oracle.com, sgarzare@redhat.com, pbonzini@redhat.com,
	fam@euphon.net, philmd@linaro.org, alex@shazbot.org, clg@redhat.com,
	peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
	jasowang@redhat.com, samuel.thibault@ens-lyon.org,
	michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
	mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
	liwei1518@gmail.com, dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
	qemu-block@nongnu.org, qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org, kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: Re: [PATCH 12/14] error: Use error_setg_errno() for simplicity and
 consistency
Message-ID: <aR-vExiomEe9jUNN@gallifrey>
References: <20251120191339.756429-1-armbru@redhat.com>
 <20251120191339.756429-13-armbru@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
In-Reply-To: <20251120191339.756429-13-armbru@redhat.com>
X-Chocolate: 70 percent or better cocoa solids preferably
X-Operating-System: Linux/6.12.48+deb13-amd64 (x86_64)
X-Uptime: 00:14:43 up 24 days, 23:50,  2 users,  load average: 0.06, 0.02,
 0.00
User-Agent: Mutt/2.2.13 (2024-03-09)

* Markus Armbruster (armbru@redhat.com) wrote:
> Use error_setg_errno() instead of passing the value of strerror() or
> g_strerror() to error_setg().
> 
> The separator between the error message proper and the value of
> strerror() changes from " : ", "", " - ", "- " to ": " in places.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

> @@ -792,9 +792,9 @@ static void vfu_object_init_ctx(VfuObject *o, Error **errp)
>                             VFU_REGION_FLAG_RW | VFU_REGION_FLAG_ALWAYS_CB,
>                             NULL, 0, -1, 0);
>      if (ret < 0) {
> -        error_setg(errp,
> -                   "vfu: Failed to setup config space handlers for %s- %s",
> -                   o->device, strerror(errno));
> +        error_setg_errno(errp,
> +                         "vfu: Failed to setup config space handlers for %s",
> +                         o->device);

missing errno.

>          goto fail;
>      }
>  
> @@ -822,8 +822,8 @@ static void vfu_object_init_ctx(VfuObject *o, Error **errp)
>  
>      ret = vfu_realize_ctx(o->vfu_ctx);
>      if (ret < 0) {
> -        error_setg(errp, "vfu: Failed to realize device %s- %s",
> -                   o->device, strerror(errno));
> +        error_setg_errno(errp, "vfu: Failed to realize device %s",
> +                         o->device);

missing errno.

Dave

>          goto fail;
>      }
>  
> diff --git a/hw/sensor/emc141x.c b/hw/sensor/emc141x.c
> index 7b2ce383a1..a51fc44395 100644
> --- a/hw/sensor/emc141x.c
> +++ b/hw/sensor/emc141x.c
> @@ -59,7 +59,7 @@ static void emc141x_get_temperature(Object *obj, Visitor *v, const char *name,
>      unsigned tempid;
>  
>      if (sscanf(name, "temperature%u", &tempid) != 1) {
> -        error_setg(errp, "error reading %s: %s", name, g_strerror(errno));
> +        error_setg_errno(errp, errno, "error reading %s", name);
>          return;
>      }
>  
> @@ -86,7 +86,7 @@ static void emc141x_set_temperature(Object *obj, Visitor *v, const char *name,
>      }
>  
>      if (sscanf(name, "temperature%u", &tempid) != 1) {
> -        error_setg(errp, "error reading %s: %s", name, g_strerror(errno));
> +        error_setg_errno(errp, errno, "error reading %s", name);
>          return;
>      }
>  
> diff --git a/hw/sensor/tmp421.c b/hw/sensor/tmp421.c
> index 3421c44086..127edd0ba5 100644
> --- a/hw/sensor/tmp421.c
> +++ b/hw/sensor/tmp421.c
> @@ -117,7 +117,7 @@ static void tmp421_get_temperature(Object *obj, Visitor *v, const char *name,
>      int tempid;
>  
>      if (sscanf(name, "temperature%d", &tempid) != 1) {
> -        error_setg(errp, "error reading %s: %s", name, g_strerror(errno));
> +        error_setg_errno(errp, errno, "error reading %s", name);
>          return;
>      }
>  
> @@ -154,7 +154,7 @@ static void tmp421_set_temperature(Object *obj, Visitor *v, const char *name,
>      }
>  
>      if (sscanf(name, "temperature%d", &tempid) != 1) {
> -        error_setg(errp, "error reading %s: %s", name, g_strerror(errno));
> +        error_setg_errno(errp, errno, "error reading %s", name);
>          return;
>      }
>  
> diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c
> index 7558b2ad83..b228f9eb85 100644
> --- a/hw/smbios/smbios.c
> +++ b/hw/smbios/smbios.c
> @@ -1281,8 +1281,8 @@ static int save_opt_one(void *opaque,
>                  break;
>              }
>              if (ret < 0) {
> -                error_setg(errp, "Unable to read from %s: %s",
> -                           value, strerror(errno));
> +                error_setg_errno(errp, errno, "Unable to read from %s",
> +                                 value);
>                  qemu_close(fd);
>                  return -1;
>              }
> diff --git a/hw/virtio/vdpa-dev.c b/hw/virtio/vdpa-dev.c
> index 4a7b970976..f97d576171 100644
> --- a/hw/virtio/vdpa-dev.c
> +++ b/hw/virtio/vdpa-dev.c
> @@ -41,8 +41,8 @@ vhost_vdpa_device_get_u32(int fd, unsigned long int cmd, Error **errp)
>      uint32_t val = (uint32_t)-1;
>  
>      if (ioctl(fd, cmd, &val) < 0) {
> -        error_setg(errp, "vhost-vdpa-device: cmd 0x%lx failed: %s",
> -                   cmd, strerror(errno));
> +        error_setg_errno(errp, errno, "vhost-vdpa-device: cmd 0x%lx failed",
> +                         cmd);
>      }
>  
>      return val;
> diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c
> index 3f98dcb6fd..5454372ac6 100644
> --- a/migration/postcopy-ram.c
> +++ b/migration/postcopy-ram.c
> @@ -582,7 +582,7 @@ bool postcopy_ram_supported_by_host(MigrationIncomingState *mis, Error **errp)
>  
>      ufd = uffd_open(O_CLOEXEC);
>      if (ufd == -1) {
> -        error_setg(errp, "Userfaultfd not available: %s", strerror(errno));
> +        error_setg_errno(errp, errno, "Userfaultfd not available");
>          goto out;
>      }
>  
> @@ -620,7 +620,7 @@ bool postcopy_ram_supported_by_host(MigrationIncomingState *mis, Error **errp)
>       * it was enabled.
>       */
>      if (munlockall()) {
> -        error_setg(errp, "munlockall() failed: %s", strerror(errno));
> +        error_setg_errno(errp, errno, "munlockall() failed");
>          goto out;
>      }
>  
> @@ -632,7 +632,7 @@ bool postcopy_ram_supported_by_host(MigrationIncomingState *mis, Error **errp)
>      testarea = mmap(NULL, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE |
>                                      MAP_ANONYMOUS, -1, 0);
>      if (testarea == MAP_FAILED) {
> -        error_setg(errp, "Failed to map test area: %s", strerror(errno));
> +        error_setg_errno(errp, errno, "Failed to map test area");
>          goto out;
>      }
>      g_assert(QEMU_PTR_IS_ALIGNED(testarea, pagesize));
> @@ -642,14 +642,14 @@ bool postcopy_ram_supported_by_host(MigrationIncomingState *mis, Error **errp)
>      reg_struct.mode = UFFDIO_REGISTER_MODE_MISSING;
>  
>      if (ioctl(ufd, UFFDIO_REGISTER, &reg_struct)) {
> -        error_setg(errp, "UFFDIO_REGISTER failed: %s", strerror(errno));
> +        error_setg_errno(errp, errno, "UFFDIO_REGISTER failed");
>          goto out;
>      }
>  
>      range_struct.start = (uintptr_t)testarea;
>      range_struct.len = pagesize;
>      if (ioctl(ufd, UFFDIO_UNREGISTER, &range_struct)) {
> -        error_setg(errp, "UFFDIO_UNREGISTER failed: %s", strerror(errno));
> +        error_setg_errno(errp, errno, "UFFDIO_UNREGISTER failed");
>          goto out;
>      }
>  
> diff --git a/migration/rdma.c b/migration/rdma.c
> index ef4885ef5f..9e301cf917 100644
> --- a/migration/rdma.c
> +++ b/migration/rdma.c
> @@ -2349,7 +2349,7 @@ static int qemu_get_cm_event_timeout(RDMAContext *rdma,
>          error_setg(errp, "RDMA ERROR: poll cm event timeout");
>          return -1;
>      } else if (ret < 0) {
> -        error_setg_errno(errp, "RDMA ERROR: failed to poll cm event");
> +        error_setg_errno(errp, errno, "RDMA ERROR: failed to poll cm event");
>          return -1;
>      } else if (poll_fd.revents & POLLIN) {
>          if (rdma_get_cm_event(rdma->channel, cm_event) < 0) {
> diff --git a/net/slirp.c b/net/slirp.c
> index 5996fec512..04925f3318 100644
> --- a/net/slirp.c
> +++ b/net/slirp.c
> @@ -1020,8 +1020,9 @@ static int slirp_smb(SlirpState* s, const char *exported_dir,
>      }
>  
>      if (access(exported_dir, R_OK | X_OK)) {
> -        error_setg(errp, "Error accessing shared directory '%s': %s",
> -                   exported_dir, strerror(errno));
> +        error_setg_errno(errp, errno,
> +                         "Error accessing shared directory '%s'",
> +                         exported_dir);
>          return -1;
>      }
>  
> diff --git a/qga/commands-posix-ssh.c b/qga/commands-posix-ssh.c
> index 246171d323..661972e34e 100644
> --- a/qga/commands-posix-ssh.c
> +++ b/qga/commands-posix-ssh.c
> @@ -61,20 +61,22 @@ mkdir_for_user(const char *path, const struct passwd *p,
>                 mode_t mode, Error **errp)
>  {
>      if (g_mkdir(path, mode) == -1) {
> -        error_setg(errp, "failed to create directory '%s': %s",
> -                   path, g_strerror(errno));
> +        error_setg_errno(errp, errno, "failed to create directory '%s'",
> +                         path);
>          return false;
>      }
>  
>      if (chown(path, p->pw_uid, p->pw_gid) == -1) {
> -        error_setg(errp, "failed to set ownership of directory '%s': %s",
> -                   path, g_strerror(errno));
> +        error_setg_errno(errp, errno,
> +                         "failed to set ownership of directory '%s'",
> +                         path);
>          return false;
>      }
>  
>      if (chmod(path, mode) == -1) {
> -        error_setg(errp, "failed to set permissions of directory '%s': %s",
> -                   path, g_strerror(errno));
> +        error_setg_errno(errp, errno,
> +                         "failed to set permissions of directory '%s'",
> +                         path);
>          return false;
>      }
>  
> @@ -95,14 +97,15 @@ write_authkeys(const char *path, const GStrv keys,
>      }
>  
>      if (chown(path, p->pw_uid, p->pw_gid) == -1) {
> -        error_setg(errp, "failed to set ownership of directory '%s': %s",
> -                   path, g_strerror(errno));
> +        error_setg_errno(errp, errno,
> +                         "failed to set ownership of directory '%s'",
> +                         path);
>          return false;
>      }
>  
>      if (chmod(path, 0600) == -1) {
> -        error_setg(errp, "failed to set permissions of '%s': %s",
> -                   path, g_strerror(errno));
> +        error_setg_errno(errp, errno, "failed to set permissions of '%s'",
> +                         path);
>          return false;
>      }
>  
> diff --git a/system/vl.c b/system/vl.c
> index 5091fe52d9..2ef5b4b3b2 100644
> --- a/system/vl.c
> +++ b/system/vl.c
> @@ -619,7 +619,7 @@ static int parse_add_fd(void *opaque, QemuOpts *opts, Error **errp)
>      }
>  #endif
>      if (dupfd == -1) {
> -        error_setg(errp, "error duplicating fd: %s", strerror(errno));
> +        error_setg_errno(errp, errno, "error duplicating fd");
>          return -1;
>      }
>  
> diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
> index 43124bf1c7..3501b5d546 100644
> --- a/target/ppc/kvm.c
> +++ b/target/ppc/kvm.c
> @@ -2699,9 +2699,8 @@ int kvmppc_get_htab_fd(bool write, uint64_t index, Error **errp)
>  
>      ret = kvm_vm_ioctl(kvm_state, KVM_PPC_GET_HTAB_FD, &s);
>      if (ret < 0) {
> -        error_setg(errp, "Unable to open fd for %s HPT %s KVM: %s",
> -                   write ? "writing" : "reading", write ? "to" : "from",
> -                   strerror(errno));
> +        error_setg_errno(errp, errno, "Unable to open fd for %s HPT %s KVM",
> +                   write ? "writing" : "reading", write ? "to" : "from");
>          return -errno;
>      }
>  
> -- 
> 2.49.0
> 
-- 
 -----Open up your eyes, open up your mind, open up your code -------   
/ Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \ 
\        dave @ treblig.org |                               | In Hex /
 \ _________________________|_____ http://www.treblig.org   |_______/


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 00:24:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 00:24:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168074.1494187 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMEwo-0002Fq-Th; Fri, 21 Nov 2025 00:24:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168074.1494187; Fri, 21 Nov 2025 00:24:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMEwo-0002Fj-Ql; Fri, 21 Nov 2025 00:24:22 +0000
Received: by outflank-mailman (input) for mailman id 1168074;
 Fri, 21 Nov 2025 00:24:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ZKoZ=55=treblig.org=dg@srs-se1.protection.inumbo.net>)
 id 1vMEwo-0002FZ-3E
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 00:24:22 +0000
Received: from mx.treblig.org (mx.treblig.org [2a00:1098:5b::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 67885fdd-c670-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 01:24:12 +0100 (CET)
Received: from dg by mx.treblig.org with local (Exim 4.98.2)
 (envelope-from <dg@treblig.org>) id 1vMEwY-00000005d06-2W0z;
 Fri, 21 Nov 2025 00:24: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: 67885fdd-c670-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=treblig.org
	; s=bytemarkmx; h=Content-Type:MIME-Version:Message-ID:Subject:From:Date:From
	:Subject; bh=KXXaKr3PtFYh8nhHwgchIQAJ3u9wYBNIFydgNDU6Wo4=; b=eynA8kSmvhNEEgT9
	y0JKtg7iv1DeFQTCEwqE9seSwcVA1Xi7+YLa4mjuKStD0NXdu5S7jQHRij5Rtl9JTltmG+TsTC9Qx
	lOfNhVdI53+2SguooVed7NpK4gfR+2vbhtKFwSkttQDsraFmllf8Mt/0vctal58hWk1BxvQyIuHeu
	yCB3kkv3ZI/sZzZy5wcSXhbCuEAwhWxv94eXCJZ1AjXbelxxGWUGT0Ws5Eu3/gJ8ZSKS1ivDgyD9k
	L2BibqN6dzoj/ed6KSGgmPDpg4ESeaqhl/QfEgTk1Lxhf5r5xJzPuFDmoYjnS5h7I+ddk+xbmKbfj
	WwRB4DRNuEnYvwwalw==;
Date: Fri, 21 Nov 2025 00:24:06 +0000
From: "Dr. David Alan Gilbert" <dave@treblig.org>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, arei.gonglei@huawei.com, pizhenwei@bytedance.com,
	alistair.francis@wdc.com, stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com, hreitz@redhat.com, sw@weilnetz.de,
	qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
	imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
	shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
	edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com,
	jag.raman@oracle.com, sgarzare@redhat.com, pbonzini@redhat.com,
	fam@euphon.net, philmd@linaro.org, alex@shazbot.org, clg@redhat.com,
	peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
	jasowang@redhat.com, samuel.thibault@ens-lyon.org,
	michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
	mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
	liwei1518@gmail.com, dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
	qemu-block@nongnu.org, qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org, kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: Re: [PATCH 03/14] tap-solaris: Use error_setg_file_open() for better
 error messages
Message-ID: <aR-xJgDErvQaN600@gallifrey>
References: <20251120191339.756429-1-armbru@redhat.com>
 <20251120191339.756429-4-armbru@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
In-Reply-To: <20251120191339.756429-4-armbru@redhat.com>
X-Chocolate: 70 percent or better cocoa solids preferably
X-Operating-System: Linux/6.12.48+deb13-amd64 (x86_64)
X-Uptime: 00:23:09 up 24 days, 23:59,  2 users,  load average: 0.00, 0.00,
 0.00
User-Agent: Mutt/2.2.13 (2024-03-09)

* Markus Armbruster (armbru@redhat.com) wrote:
> Error messages change from
> 
>     Can't open /dev/ip (actually /dev/udp)
>     Can't open /dev/tap
>     Can't open /dev/tap (2)
> 
> to
> 
>     Could not open '/dev/udp': REASON
>     Could not open '/dev/tap': REASON
> 
> where REASON is the value of strerror(errno).

I guess the new macro has a __LINE__ so the (2) is redundant.

> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org>

> ---
>  net/tap-solaris.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/net/tap-solaris.c b/net/tap-solaris.c
> index 75397e6c54..faf7922ea8 100644
> --- a/net/tap-solaris.c
> +++ b/net/tap-solaris.c
> @@ -87,13 +87,13 @@ static int tap_alloc(char *dev, size_t dev_size, Error **errp)
>  
>      ip_fd = RETRY_ON_EINTR(open("/dev/udp", O_RDWR, 0));
>      if (ip_fd < 0) {
> -        error_setg(errp, "Can't open /dev/ip (actually /dev/udp)");
> +        error_setg_file_open(errp, errno, "/dev/udp");
>          return -1;
>      }
>  
>      tap_fd = RETRY_ON_EINTR(open("/dev/tap", O_RDWR, 0));
>      if (tap_fd < 0) {
> -        error_setg(errp, "Can't open /dev/tap");
> +        error_setg_file_open(errp, errno, "/dev/tap");
>          return -1;
>      }
>  
> @@ -107,7 +107,7 @@ static int tap_alloc(char *dev, size_t dev_size, Error **errp)
>  
>      if_fd = RETRY_ON_EINTR(open("/dev/tap", O_RDWR, 0));
>      if (if_fd < 0) {
> -        error_setg(errp, "Can't open /dev/tap (2)");
> +        error_setg_file_open(errp, errno, "/dev/tap");
>          return -1;
>      }
>      if(ioctl(if_fd, I_PUSH, "ip") < 0){
> -- 
> 2.49.0
> 
-- 
 -----Open up your eyes, open up your mind, open up your code -------   
/ Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \ 
\        dave @ treblig.org |                               | In Hex /
 \ _________________________|_____ http://www.treblig.org   |_______/


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 00:43:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 00:43:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168088.1494196 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMFF0-0005Is-9b; Fri, 21 Nov 2025 00:43:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168088.1494196; Fri, 21 Nov 2025 00: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 1vMFF0-0005Il-76; Fri, 21 Nov 2025 00:43:10 +0000
Received: by outflank-mailman (input) for mailman id 1168088;
 Fri, 21 Nov 2025 00:43: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=ZKoZ=55=treblig.org=dg@srs-se1.protection.inumbo.net>)
 id 1vMFEz-0005If-EE
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 00:43:09 +0000
Received: from mx.treblig.org (mx.treblig.org [2a00:1098:5b::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0848aa04-c673-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 01:43:01 +0100 (CET)
Received: from dg by mx.treblig.org with local (Exim 4.98.2)
 (envelope-from <dg@treblig.org>) id 1vMFEi-00000005d8M-37pF;
 Fri, 21 Nov 2025 00:42: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: 0848aa04-c673-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=treblig.org
	; s=bytemarkmx; h=Content-Type:MIME-Version:Message-ID:Subject:From:Date:From
	:Subject; bh=2lQMqxTn4BDPqEuJHUsXNxZ6n7/HofNAtadPoRD5+7A=; b=Qf7O3sUMLMEvDppF
	qQS46KXVaYPyHAaU1CV6kQ3Zac1Bsl979tFpEKhucfRVImUbbRbQAkvH/J6e1RkwbIJ9ER9wzz6QN
	RH8AcCtZaVM3MsUhggZi8wPrN5NFCfg0uNr7O160etRomxsSa0Jh4M+pvJIiG63p3ncXU94kqOzWr
	jXgZWgi/P/gswYRUiVLOtFw1NDiXKw1dgi42YCoknL0Gp2dYCm6LqmlqsV+qycQ6UsUfNDqp1LmBX
	pkhtExl893Wi0Ca9f3caRkQI/N2V6wf2WvNWVwxV9VtNbVMCeGGp26Nsw/jhOgF1sZTbaeYLH0Stz
	GqEA+p/C4lktH6mnRg==;
Date: Fri, 21 Nov 2025 00:42:52 +0000
From: "Dr. David Alan Gilbert" <dave@treblig.org>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, arei.gonglei@huawei.com,
	alistair.francis@wdc.com, stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com, hreitz@redhat.com, sw@weilnetz.de,
	qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
	imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
	shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
	edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com,
	jag.raman@oracle.com, sgarzare@redhat.com, pbonzini@redhat.com,
	fam@euphon.net, philmd@linaro.org, alex@shazbot.org, clg@redhat.com,
	peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
	jasowang@redhat.com, samuel.thibault@ens-lyon.org,
	michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
	mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
	liwei1518@gmail.com, dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
	qemu-block@nongnu.org, qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org, kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: Re: [PATCH 02/14] hw/usb: Use error_setg_file_open() for a better
 error message
Message-ID: <aR-1jGX4Ck0f69zG@gallifrey>
References: <20251120191339.756429-1-armbru@redhat.com>
 <20251120191339.756429-3-armbru@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
In-Reply-To: <20251120191339.756429-3-armbru@redhat.com>
X-Chocolate: 70 percent or better cocoa solids preferably
X-Operating-System: Linux/6.12.48+deb13-amd64 (x86_64)
X-Uptime: 00:41:22 up 25 days, 17 min,  2 users,  load average: 0.01, 0.02,
 0.00
User-Agent: Mutt/2.2.13 (2024-03-09)

* Markus Armbruster (armbru@redhat.com) wrote:
> The error message changes from
> 
>     open FILENAME failed
> 
> to
> 
>     Could not open 'FILENAME': REASON
> 
> where REASON is the value of strerror(errno).
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  hw/usb/bus.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/hw/usb/bus.c b/hw/usb/bus.c
> index 8dd2ce415e..47d42ca3c1 100644
> --- a/hw/usb/bus.c
> +++ b/hw/usb/bus.c
> @@ -262,7 +262,7 @@ static void usb_qdev_realize(DeviceState *qdev, Error **errp)
>          int fd = qemu_open_old(dev->pcap_filename,
>                                 O_CREAT | O_WRONLY | O_TRUNC | O_BINARY, 0666);
>          if (fd < 0) {
> -            error_setg(errp, "open %s failed", dev->pcap_filename);
> +            error_setg_file_open(errp, errno, dev->pcap_filename);

Wouldn't it be easier to flip it to use qemu_open() ?

Dave

>              usb_qdev_unrealize(qdev);
>              return;
>          }
> -- 
> 2.49.0
> 
-- 
 -----Open up your eyes, open up your mind, open up your code -------   
/ Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \ 
\        dave @ treblig.org |                               | In Hex /
 \ _________________________|_____ http://www.treblig.org   |_______/


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 01:13:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 01:13:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168106.1494207 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMFi3-0000ZV-Ix; Fri, 21 Nov 2025 01:13:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168106.1494207; Fri, 21 Nov 2025 01: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 1vMFi3-0000ZO-Fp; Fri, 21 Nov 2025 01:13:11 +0000
Received: by outflank-mailman (input) for mailman id 1168106;
 Fri, 21 Nov 2025 01: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=ZKoZ=55=treblig.org=dg@srs-se1.protection.inumbo.net>)
 id 1vMFi2-0000ZF-8u
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 01:13:10 +0000
Received: from mx.treblig.org (mx.treblig.org [2a00:1098:5b::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3cef864f-c677-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 02:13:08 +0100 (CET)
Received: from dg by mx.treblig.org with local (Exim 4.98.2)
 (envelope-from <dg@treblig.org>) id 1vMFho-00000005dQh-2cmY;
 Fri, 21 Nov 2025 01:12: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: 3cef864f-c677-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=treblig.org
	; s=bytemarkmx; h=Content-Type:MIME-Version:Message-ID:Subject:From:Date:From
	:Subject; bh=YkcAcM/gBGVrQp+f5sFqb9ygI3lzdlKVWJYNwKoWEWE=; b=TDvy2bE0sCbJMqGR
	6RV+TyLxwmEy+Oyz30kcyWScsmg3kqZ1HYnqmwprl/rnCKams9bOEB3LSH/Akpbrnr2ofs5v/uTGc
	f0Z0rlwOKV6joh0Vy5iuxorodHfXNgMpxdHeZDI5xWGczg0ZiQsLtgLha2rXKgKzRkhOV0q5xRGhu
	QZuUe+F78WpyiyrINkBBn2cMqAlvDfIXl8bTd1oe9wfcjUydY4ZygIcYfKWaaWIJhTOummUCQmzIu
	QFgZ0e7UwZRMbOeB/ohDktlQEp86CO54OhmBDBe3IDmwPu7wcBXoJlpUSJAz3GsGpDs3GGQ7Lw9o1
	EStADm8tf/LhZjsDoQ==;
Date: Fri, 21 Nov 2025 01:12:56 +0000
From: "Dr. David Alan Gilbert" <dave@treblig.org>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, arei.gonglei@huawei.com, pizhenwei@bytedance.com,
	alistair.francis@wdc.com, stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com, hreitz@redhat.com, sw@weilnetz.de,
	qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
	imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
	shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
	edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com,
	jag.raman@oracle.com, sgarzare@redhat.com, pbonzini@redhat.com,
	fam@euphon.net, philmd@linaro.org, alex@shazbot.org, clg@redhat.com,
	peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
	jasowang@redhat.com, samuel.thibault@ens-lyon.org,
	michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
	mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
	liwei1518@gmail.com, dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
	qemu-block@nongnu.org, qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org, kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: Re: [PATCH 04/14] qga: Use error_setg_file_open() for better error
 messages
Message-ID: <aR-8mOKG-rYkjyjh@gallifrey>
References: <20251120191339.756429-1-armbru@redhat.com>
 <20251120191339.756429-5-armbru@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
In-Reply-To: <20251120191339.756429-5-armbru@redhat.com>
X-Chocolate: 70 percent or better cocoa solids preferably
X-Operating-System: Linux/6.12.48+deb13-amd64 (x86_64)
X-Uptime: 01:12:53 up 25 days, 49 min,  2 users,  load average: 0.02, 0.01,
 0.00
User-Agent: Mutt/2.2.13 (2024-03-09)

* Markus Armbruster (armbru@redhat.com) wrote:
> Error messages change from
> 
>     open("FNAME"): REASON
> 
> to
> 
>     Could not open 'FNAME': REASON
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org>

> ---
>  qga/commands-linux.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/qga/commands-linux.c b/qga/commands-linux.c
> index 4a09ddc760..5cf76ca2d9 100644
> --- a/qga/commands-linux.c
> +++ b/qga/commands-linux.c
> @@ -1502,14 +1502,15 @@ static void transfer_vcpu(GuestLogicalProcessor *vcpu, bool sys2vcpu,
>  
>      dirfd = open(dirpath, O_RDONLY | O_DIRECTORY);
>      if (dirfd == -1) {
> -        error_setg_errno(errp, errno, "open(\"%s\")", dirpath);
> +        error_setg_file_open(errp, errno, dirpath);
>          return;
>      }
>  
>      fd = openat(dirfd, fn, sys2vcpu ? O_RDONLY : O_RDWR);
>      if (fd == -1) {
>          if (errno != ENOENT) {
> -            error_setg_errno(errp, errno, "open(\"%s/%s\")", dirpath, fn);
> +            error_setg_errno(errp, errno, "could not open %s/%s",
> +                             dirpath, fn);
>          } else if (sys2vcpu) {
>              vcpu->online = true;
>              vcpu->can_offline = false;
> @@ -1711,7 +1712,7 @@ static void transfer_memory_block(GuestMemoryBlock *mem_blk, bool sys2memblk,
>      dirfd = open(dirpath, O_RDONLY | O_DIRECTORY);
>      if (dirfd == -1) {
>          if (sys2memblk) {
> -            error_setg_errno(errp, errno, "open(\"%s\")", dirpath);
> +            error_setg_file_open(errp, errno, dirpath);
>          } else {
>              if (errno == ENOENT) {
>                  result->response = GUEST_MEMORY_BLOCK_RESPONSE_TYPE_NOT_FOUND;
> @@ -1936,7 +1937,7 @@ static GuestDiskStatsInfoList *guest_get_diskstats(Error **errp)
>  
>      fp = fopen(diskstats, "r");
>      if (fp  == NULL) {
> -        error_setg_errno(errp, errno, "open(\"%s\")", diskstats);
> +        error_setg_file_open(errp, errno, diskstats);
>          return NULL;
>      }
>  
> @@ -2047,7 +2048,7 @@ GuestCpuStatsList *qmp_guest_get_cpustats(Error **errp)
>  
>      fp = fopen(cpustats, "r");
>      if (fp  == NULL) {
> -        error_setg_errno(errp, errno, "open(\"%s\")", cpustats);
> +        error_setg_file_open(errp, errno, cpustats);
>          return NULL;
>      }
>  
> -- 
> 2.49.0
> 
-- 
 -----Open up your eyes, open up your mind, open up your code -------   
/ Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \ 
\        dave @ treblig.org |                               | In Hex /
 \ _________________________|_____ http://www.treblig.org   |_______/


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 02:05:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 02:05:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168121.1494217 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMGWa-0007u6-2H; Fri, 21 Nov 2025 02:05:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168121.1494217; Fri, 21 Nov 2025 02:05: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 1vMGWZ-0007tz-Uq; Fri, 21 Nov 2025 02:05:23 +0000
Received: by outflank-mailman (input) for mailman id 1168121;
 Fri, 21 Nov 2025 02:05: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=ZKoZ=55=treblig.org=dg@srs-se1.protection.inumbo.net>)
 id 1vMGWY-0007tr-O2
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 02:05:22 +0000
Received: from mx.treblig.org (mx.treblig.org [2a00:1098:5b::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 84a2cfd3-c67e-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 03:05:15 +0100 (CET)
Received: from dg by mx.treblig.org with local (Exim 4.98.2)
 (envelope-from <dg@treblig.org>) id 1vMGWK-00000005dm0-1euI;
 Fri, 21 Nov 2025 02:05:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 84a2cfd3-c67e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=treblig.org
	; s=bytemarkmx; h=Content-Type:MIME-Version:Message-ID:Subject:From:Date:From
	:Subject; bh=Pm4UnpdimlqsbJ4K376o2cJfR1Zky2oPXK2MjIcdLJY=; b=MA2Q9aKaMU1Z17SE
	Jy1K/s9Q2Ui7G0xXYte5iIj7lkeCCWTJlcqzv2legK6cK609mCL7Ok7MYB1Lz09b8y/q2DsX+rTkF
	dHQXIKiI19wjB8DeTNjb+SbaH1zrFUPh1PXNw3GBoZuS9yY8BFPdgr5tJ1U3ixF7i/Tw2tOaxN9si
	FqQmU2Y42S7qsAHDLSwELMBJ2q6MmsOkXA0fdPwwIMASdNHyaT+h0dhMD8C/EGSPU1GHxbITV4cc/
	H3fbq4sEwhBgq4DlXvgpywHAmKtRp6LN3o9vEhODJxZPAg3ASOTdQk06a6GlBHAfIR0sW0jAF8CcS
	ZsEY1K7sjBBktQyQPg==;
Date: Fri, 21 Nov 2025 02:05:08 +0000
From: "Dr. David Alan Gilbert" <dave@treblig.org>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, arei.gonglei@huawei.com,
	alistair.francis@wdc.com, stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com, hreitz@redhat.com, sw@weilnetz.de,
	qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
	imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
	shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
	edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com,
	jag.raman@oracle.com, sgarzare@redhat.com, pbonzini@redhat.com,
	fam@euphon.net, philmd@linaro.org, alex@shazbot.org, clg@redhat.com,
	peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
	jasowang@redhat.com, samuel.thibault@ens-lyon.org,
	michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
	mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
	liwei1518@gmail.com, dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
	qemu-block@nongnu.org, qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org, kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: Re: [PATCH 05/14] hw/scsi: Use error_setg_file_open() for a better
 error message
Message-ID: <aR_I1POkMYcdb1LJ@gallifrey>
References: <20251120191339.756429-1-armbru@redhat.com>
 <20251120191339.756429-6-armbru@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
In-Reply-To: <20251120191339.756429-6-armbru@redhat.com>
X-Chocolate: 70 percent or better cocoa solids preferably
X-Operating-System: Linux/6.12.48+deb13-amd64 (x86_64)
X-Uptime: 02:04:59 up 25 days,  1:41,  2 users,  load average: 0.04, 0.04,
 0.00
User-Agent: Mutt/2.2.13 (2024-03-09)

* Markus Armbruster (armbru@redhat.com) wrote:
> The error message changes from
> 
>     vhost-scsi: open vhost char device failed: REASON
> 
> to
> 
>     Could not open '/dev/vhost-scsi': REASON
> 
> I think the exact file name is more useful to know than the file's
> purpose.
> 
> We could put back the "vhost-scsi: " prefix with error_prepend().  Not
> worth the bother.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org>

> ---
>  hw/scsi/vhost-scsi.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/hw/scsi/vhost-scsi.c b/hw/scsi/vhost-scsi.c
> index cdf405b0f8..239138c931 100644
> --- a/hw/scsi/vhost-scsi.c
> +++ b/hw/scsi/vhost-scsi.c
> @@ -245,8 +245,7 @@ static void vhost_scsi_realize(DeviceState *dev, Error **errp)
>      } else {
>          vhostfd = open("/dev/vhost-scsi", O_RDWR);
>          if (vhostfd < 0) {
> -            error_setg(errp, "vhost-scsi: open vhost char device failed: %s",
> -                       strerror(errno));
> +            error_setg_file_open(errp, errno, "/dev/vhost-scsi");
>              return;
>          }
>      }
> -- 
> 2.49.0
> 
-- 
 -----Open up your eyes, open up your mind, open up your code -------   
/ Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \ 
\        dave @ treblig.org |                               | In Hex /
 \ _________________________|_____ http://www.treblig.org   |_______/


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 05:29:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 05:29:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168143.1494228 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMJhN-0006kv-Tw; Fri, 21 Nov 2025 05:28:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168143.1494228; Fri, 21 Nov 2025 05:28:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMJhN-0006ko-Pd; Fri, 21 Nov 2025 05:28:45 +0000
Received: by outflank-mailman (input) for mailman id 1168143;
 Fri, 21 Nov 2025 05:28: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=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMJhM-0006ki-AY
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 05:28:44 +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 ea4f7eb9-c69a-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 06:28:31 +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-387-m_eSFKIbNuOvbL9nfv2Tzg-1; Fri,
 21 Nov 2025 00:28:26 -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 5C049180049F; Fri, 21 Nov 2025 05:28:20 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 58D431940E82; Fri, 21 Nov 2025 05:28:17 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id DF74721E6A27; Fri, 21 Nov 2025 06:28:14 +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: ea4f7eb9-c69a-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763702910;
	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=BEd9KlDvB7GskRmSaCjimoNXVvT4vORaDdSrmiFotWU=;
	b=M4F3qqlqt1BYZrpWb+2tq0StDy4E1jqayehDr5lTVhVt8OUcjzlLU5j9+neKyRGfWsijEG
	8CQHEo8HdRSR6wXb+dI/nTIeRLJh4iR5bkAsPr1dxSIR8aHgKKbKOkfHEzI0fI55YP/CJX
	s2GSw8nwSWXPxFreNtlBB2GkXuCrMUU=
X-MC-Unique: m_eSFKIbNuOvbL9nfv2Tzg-1
X-Mimecast-MFC-AGG-ID: m_eSFKIbNuOvbL9nfv2Tzg_1763702902
From: Markus Armbruster <armbru@redhat.com>
To: "Dr. David Alan Gilbert" <dave@treblig.org>
Cc: qemu-devel@nongnu.org,  arei.gonglei@huawei.com,
  alistair.francis@wdc.com,  stefanb@linux.vnet.ibm.com,  kwolf@redhat.com,
  hreitz@redhat.com,  sw@weilnetz.de,  qemu_oss@crudebyte.com,
  groug@kaod.org,  mst@redhat.com,  imammedo@redhat.com,
  anisinha@redhat.com,  kraxel@redhat.com,  shentey@gmail.com,
  npiggin@gmail.com,  harshpb@linux.ibm.com,  sstabellini@kernel.org,
  anthony@xenproject.org,  paul@xen.org,  edgar.iglesias@gmail.com,
  elena.ufimtseva@oracle.com,  jag.raman@oracle.com,  sgarzare@redhat.com,
  pbonzini@redhat.com,  fam@euphon.net,  philmd@linaro.org,
  alex@shazbot.org,  clg@redhat.com,  peterx@redhat.com,  farosas@suse.de,
  lizhijian@fujitsu.com,  jasowang@redhat.com,
  samuel.thibault@ens-lyon.org,  michael.roth@amd.com,
  kkostiuk@redhat.com,  zhao1.liu@intel.com,  mtosatti@redhat.com,
  rathc@linux.ibm.com,  palmer@dabbelt.com,  liwei1518@gmail.com,
  dbarboza@ventanamicro.com,  zhiwei_liu@linux.alibaba.com,
  marcandre.lureau@redhat.com,  qemu-block@nongnu.org,
  qemu-ppc@nongnu.org,  xen-devel@lists.xenproject.org,
  kvm@vger.kernel.org,  qemu-riscv@nongnu.org
Subject: Re: [PATCH 02/14] hw/usb: Use error_setg_file_open() for a better
 error message
In-Reply-To: <aR-1jGX4Ck0f69zG@gallifrey> (David Alan Gilbert's message of
	"Fri, 21 Nov 2025 00:42:52 +0000")
References: <20251120191339.756429-1-armbru@redhat.com>
	<20251120191339.756429-3-armbru@redhat.com>
	<aR-1jGX4Ck0f69zG@gallifrey>
Date: Fri, 21 Nov 2025 06:28:14 +0100
Message-ID: <873468rm35.fsf@pond.sub.org>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17

"Dr. David Alan Gilbert" <dave@treblig.org> writes:

> * Markus Armbruster (armbru@redhat.com) wrote:
>> The error message changes from
>> 
>>     open FILENAME failed
>> 
>> to
>> 
>>     Could not open 'FILENAME': REASON
>> 
>> where REASON is the value of strerror(errno).
>> 
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>> ---
>>  hw/usb/bus.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/hw/usb/bus.c b/hw/usb/bus.c
>> index 8dd2ce415e..47d42ca3c1 100644
>> --- a/hw/usb/bus.c
>> +++ b/hw/usb/bus.c
>> @@ -262,7 +262,7 @@ static void usb_qdev_realize(DeviceState *qdev, Error **errp)
>>          int fd = qemu_open_old(dev->pcap_filename,
>>                                 O_CREAT | O_WRONLY | O_TRUNC | O_BINARY, 0666);
>>          if (fd < 0) {
>> -            error_setg(errp, "open %s failed", dev->pcap_filename);
>> +            error_setg_file_open(errp, errno, dev->pcap_filename);
>
> Wouldn't it be easier to flip it to use qemu_open() ?

Mechanical change; I missed the obvious :)

I'll give it a try, along with the call in ui/ui-qmp-cmd.c [PATCH 09].
Thanks!

>
> Dave
>
>>              usb_qdev_unrealize(qdev);
>>              return;
>>          }
>> -- 
>> 2.49.0
>> 



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 05:35:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 05:35:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168155.1494238 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMJnn-0008Mq-Ia; Fri, 21 Nov 2025 05:35:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168155.1494238; Fri, 21 Nov 2025 05: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 1vMJnn-0008Mj-EM; Fri, 21 Nov 2025 05:35:23 +0000
Received: by outflank-mailman (input) for mailman id 1168155;
 Fri, 21 Nov 2025 05: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=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMJnl-0008Md-O1
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 05:35:21 +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 dd637c77-c69b-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 06:35:19 +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-447-YELbPn2YM7-MEnuiDffihA-1; Fri,
 21 Nov 2025 00:35: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-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id BD5B11956060; Fri, 21 Nov 2025 05:35:07 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 810F430044DB; Fri, 21 Nov 2025 05:35:05 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 0CA9D21E6A27; Fri, 21 Nov 2025 06:35: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: dd637c77-c69b-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763703318;
	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=GjNOwtR9Z6IKyvsldJuL+qO2CUUAzUivSxONBT+whyk=;
	b=G4yoqeoHNbpHXLTpjXDBvZ31aEbe7/dvy81kvVUjasNWFG1kj2y5dNpa2q4tB+WxaPH7Us
	dRsAoEhm8S93zkF1mr2OQlu8FU0KVpVfjEVFw+9+1/Fg4YEYgGRoVpElt3Mqrfg+g7c/ey
	LNuIIcykQGo58fB8o1bFiE3D2FEToKA=
X-MC-Unique: YELbPn2YM7-MEnuiDffihA-1
X-Mimecast-MFC-AGG-ID: YELbPn2YM7-MEnuiDffihA_1763703309
From: Markus Armbruster <armbru@redhat.com>
To: "Dr. David Alan Gilbert" <dave@treblig.org>
Cc: qemu-devel@nongnu.org,  arei.gonglei@huawei.com,
  pizhenwei@bytedance.com,  alistair.francis@wdc.com,
  stefanb@linux.vnet.ibm.com,  kwolf@redhat.com,  hreitz@redhat.com,
  sw@weilnetz.de,  qemu_oss@crudebyte.com,  groug@kaod.org,
  mst@redhat.com,  imammedo@redhat.com,  anisinha@redhat.com,
  kraxel@redhat.com,  shentey@gmail.com,  npiggin@gmail.com,
  harshpb@linux.ibm.com,  sstabellini@kernel.org,  anthony@xenproject.org,
  paul@xen.org,  edgar.iglesias@gmail.com,  elena.ufimtseva@oracle.com,
  jag.raman@oracle.com,  sgarzare@redhat.com,  pbonzini@redhat.com,
  fam@euphon.net,  philmd@linaro.org,  alex@shazbot.org,  clg@redhat.com,
  peterx@redhat.com,  farosas@suse.de,  lizhijian@fujitsu.com,
  jasowang@redhat.com,  samuel.thibault@ens-lyon.org,
  michael.roth@amd.com,  kkostiuk@redhat.com,  zhao1.liu@intel.com,
  mtosatti@redhat.com,  rathc@linux.ibm.com,  palmer@dabbelt.com,
  liwei1518@gmail.com,  dbarboza@ventanamicro.com,
  zhiwei_liu@linux.alibaba.com,  marcandre.lureau@redhat.com,
  qemu-block@nongnu.org,  qemu-ppc@nongnu.org,
  xen-devel@lists.xenproject.org,  kvm@vger.kernel.org,
  qemu-riscv@nongnu.org
Subject: Re: [PATCH 03/14] tap-solaris: Use error_setg_file_open() for
 better error messages
In-Reply-To: <aR-xJgDErvQaN600@gallifrey> (David Alan Gilbert's message of
	"Fri, 21 Nov 2025 00:24:06 +0000")
References: <20251120191339.756429-1-armbru@redhat.com>
	<20251120191339.756429-4-armbru@redhat.com>
	<aR-xJgDErvQaN600@gallifrey>
Date: Fri, 21 Nov 2025 06:35:03 +0100
Message-ID: <87wm3kq77c.fsf@pond.sub.org>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4

"Dr. David Alan Gilbert" <dave@treblig.org> writes:

> * Markus Armbruster (armbru@redhat.com) wrote:
>> Error messages change from
>> 
>>     Can't open /dev/ip (actually /dev/udp)
>>     Can't open /dev/tap
>>     Can't open /dev/tap (2)
>> 
>> to
>> 
>>     Could not open '/dev/udp': REASON
>>     Could not open '/dev/tap': REASON
>> 
>> where REASON is the value of strerror(errno).
>
> I guess the new macro has a __LINE__ so the (2) is redundant.

It does capture __FILE__, __LINE__, and __func__, but they're only
printed for &error_abort.

How likely is it that the first open of /dev/tap succeeds, and the
second fails?

Do users users then need to know that the second failed?  If yes, then
" (2)" is a terrible way to tell them.

>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>
> Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org>

Thanks!



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 05:45:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 05:45:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168167.1494247 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMJxV-0001cy-Dm; Fri, 21 Nov 2025 05:45:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168167.1494247; Fri, 21 Nov 2025 05:45: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 1vMJxV-0001cr-A6; Fri, 21 Nov 2025 05:45:25 +0000
Received: by outflank-mailman (input) for mailman id 1168167;
 Fri, 21 Nov 2025 05:45:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMJxT-0001cl-Sm
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 05:45:23 +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 44d56088-c69d-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 06:45:22 +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-556-QWRSdU85PZOwmsuMAg_68Q-1; Fri,
 21 Nov 2025 00:45:17 -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 70BB31956072; Fri, 21 Nov 2025 05:45:11 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id E836F1956045; Fri, 21 Nov 2025 05:45:08 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 7D61821E6A27; Fri, 21 Nov 2025 06:45: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: 44d56088-c69d-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763703921;
	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=M/iAoWDs3TI1i4yv2SFCc8BQMzVF2ZzwOWLNv6dOrLw=;
	b=dPuUiVzcItqEkVc33qcVPiGl9obOZtW5PRCXKQ2bL8/8nsqMC7r1S0/2Y7xwUEK5Ryb1fX
	iNqUmNpr0RrFkBk8Z0KRWwSUMWChHjml79IeRXsbHNq5hPz267FwbFwsjw9mpYrjH7yYSh
	KhOF8MSfCur7uXR82/Wl0zo0wVLO3aM=
X-MC-Unique: QWRSdU85PZOwmsuMAg_68Q-1
X-Mimecast-MFC-AGG-ID: QWRSdU85PZOwmsuMAg_68Q_1763703913
From: Markus Armbruster <armbru@redhat.com>
To: "Dr. David Alan Gilbert" <dave@treblig.org>
Cc: qemu-devel@nongnu.org,  arei.gonglei@huawei.com,
  pizhenwei@bytedance.com,  alistair.francis@wdc.com,
  stefanb@linux.vnet.ibm.com,  kwolf@redhat.com,  hreitz@redhat.com,
  sw@weilnetz.de,  qemu_oss@crudebyte.com,  groug@kaod.org,
  mst@redhat.com,  imammedo@redhat.com,  anisinha@redhat.com,
  kraxel@redhat.com,  shentey@gmail.com,  npiggin@gmail.com,
  harshpb@linux.ibm.com,  sstabellini@kernel.org,  anthony@xenproject.org,
  paul@xen.org,  edgar.iglesias@gmail.com,  elena.ufimtseva@oracle.com,
  jag.raman@oracle.com,  sgarzare@redhat.com,  pbonzini@redhat.com,
  fam@euphon.net,  philmd@linaro.org,  alex@shazbot.org,  clg@redhat.com,
  peterx@redhat.com,  farosas@suse.de,  lizhijian@fujitsu.com,
  jasowang@redhat.com,  samuel.thibault@ens-lyon.org,
  michael.roth@amd.com,  kkostiuk@redhat.com,  zhao1.liu@intel.com,
  mtosatti@redhat.com,  rathc@linux.ibm.com,  palmer@dabbelt.com,
  liwei1518@gmail.com,  dbarboza@ventanamicro.com,
  zhiwei_liu@linux.alibaba.com,  marcandre.lureau@redhat.com,
  qemu-block@nongnu.org,  qemu-ppc@nongnu.org,
  xen-devel@lists.xenproject.org,  kvm@vger.kernel.org,
  qemu-riscv@nongnu.org
Subject: Re: [PATCH 09/14] error: Use error_setg_file_open() for simplicity
 and consistency
In-Reply-To: <aR-q2YeegIEPmk2R@gallifrey> (David Alan Gilbert's message of
	"Thu, 20 Nov 2025 23:57:13 +0000")
References: <20251120191339.756429-1-armbru@redhat.com>
	<20251120191339.756429-10-armbru@redhat.com>
	<aR-q2YeegIEPmk2R@gallifrey>
Date: Fri, 21 Nov 2025 06:45:05 +0100
Message-ID: <87see8q6qm.fsf@pond.sub.org>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12

"Dr. David Alan Gilbert" <dave@treblig.org> writes:

> * Markus Armbruster (armbru@redhat.com) wrote:
>> Replace
>> 
>>     error_setg_errno(errp, errno, MSG, FNAME);
>> 
>> by
>> 
>>     error_setg_file_open(errp, errno, FNAME);
>> 
>> where MSG is "Could not open '%s'" or similar.
>> 
>> Also replace equivalent uses of error_setg().
>> 
>> A few messages lose prefixes ("net dump: ", "SEV: ", __func__ ": ").
>> We could put them back with error_prepend().  Not worth the bother.
>
> Yeh, I guess you could just do it with another macro using
> the same internal function just with string concatenation.

I'm no fan of such prefixes.  A sign of developers not caring enough to
craft a good error message for *users*.  *Especially* in the case of
__func__.

The error messages changes in question are:

    net dump: can't open DUMP-FILE: REASON
    Could not open 'DUMP-FILE': REASON

    SEV: Failed to open SEV-DEVICE: REASON
    Could not open 'SEV-DEVICE': REASON

    sev_common_kvm_init: Failed to open SEV_DEVICE 'REASON'
    Could not open 'SEV-DEVICE': REASON

I think these are all improvements, and the loss of the prefix is fine.

>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>
> Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org>

Thanks!



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 05:46:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 05:46:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168178.1494257 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMJyq-00027y-Mh; Fri, 21 Nov 2025 05:46:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168178.1494257; Fri, 21 Nov 2025 05:46:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMJyq-00027r-JB; Fri, 21 Nov 2025 05:46:48 +0000
Received: by outflank-mailman (input) for mailman id 1168178;
 Fri, 21 Nov 2025 05:46: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=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMJyp-00027h-8q
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 05:46:47 +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 763bd017-c69d-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 06:46:45 +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-265-dw4h8ppxNGOwFwV5lUYlYA-1; Fri,
 21 Nov 2025 00:46:38 -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 DBBCD1956050; Fri, 21 Nov 2025 05:46:32 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.18])
 by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id DF8A430044DC; Fri, 21 Nov 2025 05:46:30 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 6FAF521E6A27; Fri, 21 Nov 2025 06:46:28 +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: 763bd017-c69d-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763704004;
	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=PL3yXLCkMFHCIh38uQXNnEtvLjSg5S3Sh+k5cm/3Mtg=;
	b=WW1LD/V/RH2jcYEKLedhau2+sqd4G03RPfiOJC3Fmbzz73T2NDqduqlIIEwo5Ib/oltYJZ
	wEcxOokDEV7HTSiv5/CBCOnr0Vv/0HXqAop8yF6Wa5A/zu4P0RpwT8LwwtV0OpDCwH8c+5
	Ywusifi1CLI+GJVAPGTVsxmFPN7vBNQ=
X-MC-Unique: dw4h8ppxNGOwFwV5lUYlYA-1
X-Mimecast-MFC-AGG-ID: dw4h8ppxNGOwFwV5lUYlYA_1763703994
From: Markus Armbruster <armbru@redhat.com>
To: "Dr. David Alan Gilbert" <dave@treblig.org>
Cc: qemu-devel@nongnu.org,  arei.gonglei@huawei.com,
  pizhenwei@bytedance.com,  alistair.francis@wdc.com,
  stefanb@linux.vnet.ibm.com,  kwolf@redhat.com,  hreitz@redhat.com,
  sw@weilnetz.de,  qemu_oss@crudebyte.com,  groug@kaod.org,
  mst@redhat.com,  imammedo@redhat.com,  anisinha@redhat.com,
  kraxel@redhat.com,  shentey@gmail.com,  npiggin@gmail.com,
  harshpb@linux.ibm.com,  sstabellini@kernel.org,  anthony@xenproject.org,
  paul@xen.org,  edgar.iglesias@gmail.com,  elena.ufimtseva@oracle.com,
  jag.raman@oracle.com,  sgarzare@redhat.com,  pbonzini@redhat.com,
  fam@euphon.net,  philmd@linaro.org,  alex@shazbot.org,  clg@redhat.com,
  peterx@redhat.com,  farosas@suse.de,  lizhijian@fujitsu.com,
  jasowang@redhat.com,  samuel.thibault@ens-lyon.org,
  michael.roth@amd.com,  kkostiuk@redhat.com,  zhao1.liu@intel.com,
  mtosatti@redhat.com,  rathc@linux.ibm.com,  palmer@dabbelt.com,
  liwei1518@gmail.com,  dbarboza@ventanamicro.com,
  zhiwei_liu@linux.alibaba.com,  marcandre.lureau@redhat.com,
  qemu-block@nongnu.org,  qemu-ppc@nongnu.org,
  xen-devel@lists.xenproject.org,  kvm@vger.kernel.org,
  qemu-riscv@nongnu.org
Subject: Re: [PATCH 11/14] error: Use error_setg_errno() to improve error
 messages
In-Reply-To: <aR-t5SzR2AdqlJtq@gallifrey> (David Alan Gilbert's message of
	"Fri, 21 Nov 2025 00:10:13 +0000")
References: <20251120191339.756429-1-armbru@redhat.com>
	<20251120191339.756429-12-armbru@redhat.com>
	<aR-t5SzR2AdqlJtq@gallifrey>
Date: Fri, 21 Nov 2025 06:46:28 +0100
Message-ID: <87o6owq6ob.fsf@pond.sub.org>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4

"Dr. David Alan Gilbert" <dave@treblig.org> writes:

> * Markus Armbruster (armbru@redhat.com) wrote:
>> A few error messages show numeric errno codes.  Use error_setg_errno()
>> to show human-readable text instead.
>> 
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>
> ...
>
>> diff --git a/migration/rdma.c b/migration/rdma.c
>> index 337b415889..ef4885ef5f 100644
>> --- a/migration/rdma.c
>> +++ b/migration/rdma.c
>> @@ -2349,8 +2349,7 @@ static int qemu_get_cm_event_timeout(RDMAContext *rdma,
>>          error_setg(errp, "RDMA ERROR: poll cm event timeout");
>>          return -1;
>>      } else if (ret < 0) {
>> -        error_setg(errp, "RDMA ERROR: failed to poll cm event, errno=%i",
>> -                   errno);
>> +        error_setg_errno(errp, "RDMA ERROR: failed to poll cm event");
>
> Hasn't that lost the errno ?

Yes.  My build tree must have lost the ability to compile this file.  I
need to fix that.

Thanks!



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 05:58:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 05:58:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168194.1494267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMKAY-00041H-Ot; Fri, 21 Nov 2025 05:58:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168194.1494267; Fri, 21 Nov 2025 05:58: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 1vMKAY-00041A-M0; Fri, 21 Nov 2025 05:58:54 +0000
Received: by outflank-mailman (input) for mailman id 1168194;
 Fri, 21 Nov 2025 05:58: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=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMKAX-000414-Tj
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 05:58:53 +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 257009b1-c69f-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 06:58:48 +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-540-gnVpiT2lMau2bDq3UAQfEg-1; Fri,
 21 Nov 2025 00:58:43 -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 1718F180057A; Fri, 21 Nov 2025 05:58:38 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.3])
 by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id F30B218004A3; Fri, 21 Nov 2025 05:58:35 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 9FDDF21E6A27; Fri, 21 Nov 2025 06:58:33 +0100 (CET)
Resent-To: michael.roth@amd.com, qemu_oss@crudebyte.com, palmer@dabbelt.com,
 samuel.thibault@ens-lyon.org, fam@euphon.net, lizhijian@fujitsu.com,
 edgar.iglesias@gmail.com, liwei1518@gmail.com, npiggin@gmail.com,
 shentey@gmail.com, arei.gonglei@huawei.com, zhao1.liu@intel.com,
 groug@kaod.org, sstabellini@kernel.org, philmd@linaro.org,
 zhiwei_liu@linux.alibaba.com, harshpb@linux.ibm.com, rathc@linux.ibm.com,
 stefanb@linux.vnet.ibm.com, xen-devel@lists.xenproject.org,
 qemu-block@nongnu.org, qemu-devel@nongnu.org, qemu-ppc@nongnu.org,
 qemu-riscv@nongnu.org, elena.ufimtseva@oracle.com, jag.raman@oracle.com,
 alex@shazbot.org, farosas@suse.de, dave@treblig.org,
 dbarboza@ventanamicro.com, kvm@vger.kernel.org, alistair.francis@wdc.com,
 sw@weilnetz.de, paul@xen.org, anthony@xenproject.org
Resent-From: Markus Armbruster <armbru@redhat.com>
Resent-Date: Fri, 21 Nov 2025 06:58:33 +0100
Resent-Message-ID: <87wm3korjq.fsf@pond.sub.org>
Received: from imap.gmail.com ([2a00:1450:400c:c07::6d]:993) by
 dusky.pond.sub.org with IMAP4-SSL getmail6 msgid:11/376136; 21 Nov 2025
 05:55:24 -0000
Received: from blackfin.pond.sub.org
 (p200300d36f125200d4b07119e720e6da.dip0.t-ipconnect.de.
 [2003:d3:6f12:5200:d4b0:7119:e720:e6da])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42cb7fd8e54sm9034202f8f.40.2025.11.20.21.47.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 20 Nov 2025 21:47:19 -0800 (PST)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id E659421E6A27; Fri, 21 Nov 2025 06:47: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: 257009b1-c69f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763704727;
	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:
	 resent-to:resent-from:resent-message-id:in-reply-to:in-reply-to:
	 references:references; bh=KxWPyWlvO0rezo2o1B/UY81NZvVMPhvZc/dOplcdSKY=;
	b=LI8cRzPH4HkOKLEuPSmJDPH6LDRrbHHgwdmPK8fgmIkENwWmHsZaIRekCBnKAYeQK+Sm6D
	5o7NZfzTkjwqkK94etFZo11e9u4w2RVXMCwOexcFpyi9EUjRKGJoFwP+mwgjQWfLmviOxa
	8JTB073GCrNjeV+CJYjMZEDZER3fnPM=
X-MC-Unique: gnVpiT2lMau2bDq3UAQfEg-1
X-Mimecast-MFC-AGG-ID: gnVpiT2lMau2bDq3UAQfEg_1763704719
X-From-Line: armbru@redhat.com Fri Nov 21 06:55:24 2025
From: Markus Armbruster <armbru@redhat.com>
To: "Dr. David Alan Gilbert" <dave@treblig.org>
Cc: qemu-devel@nongnu.org,  arei.gonglei@huawei.com,
  pizhenwei@bytedance.com,  alistair.francis@wdc.com,
  stefanb@linux.vnet.ibm.com,  kwolf@redhat.com,  hreitz@redhat.com,
  sw@weilnetz.de,  qemu_oss@crudebyte.com,  groug@kaod.org,
  mst@redhat.com,  imammedo@redhat.com,  anisinha@redhat.com,
  kraxel@redhat.com,  shentey@gmail.com,  npiggin@gmail.com,
  harshpb@linux.ibm.com,  sstabellini@kernel.org,  anthony@xenproject.org,
  paul@xen.org,  edgar.iglesias@gmail.com,  elena.ufimtseva@oracle.com,
  jag.raman@oracle.com,  sgarzare@redhat.com,  pbonzini@redhat.com,
  fam@euphon.net,  philmd@linaro.org,  alex@shazbot.org,  clg@redhat.com,
  peterx@redhat.com,  farosas@suse.de,  lizhijian@fujitsu.com,
  jasowang@redhat.com,  samuel.thibault@ens-lyon.org,
  michael.roth@amd.com,  kkostiuk@redhat.com,  zhao1.liu@intel.com,
  mtosatti@redhat.com,  rathc@linux.ibm.com,  palmer@dabbelt.com,
  liwei1518@gmail.com,  dbarboza@ventanamicro.com,
  zhiwei_liu@linux.alibaba.com,  marcandre.lureau@redhat.com,
  qemu-block@nongnu.org,  qemu-ppc@nongnu.org,
  xen-devel@lists.xenproject.org,  kvm@vger.kernel.org,
  qemu-riscv@nongnu.org
Subject: Re: [PATCH 12/14] error: Use error_setg_errno() for simplicity and
 consistency
In-Reply-To: <aR-vExiomEe9jUNN@gallifrey> (David Alan Gilbert's message of
	"Fri, 21 Nov 2025 00:15:15 +0000")
References: <20251120191339.756429-1-armbru@redhat.com>
	<20251120191339.756429-13-armbru@redhat.com>
	<aR-vExiomEe9jUNN@gallifrey>
Date: Fri, 21 Nov 2025 06:47:18 +0100
Message-ID: <87jyzkq6mx.fsf@pond.sub.org>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-getmail-retrieved-from-mailbox: [Gmail]/All Mail
X-GMAIL-LABELS: "\\Sent"
X-GMAIL-THRID: 1849337867389441729
X-GMAIL-MSGID: 1849377727029175239
Lines: 45
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93

"Dr. David Alan Gilbert" <dave@treblig.org> writes:

> * Markus Armbruster (armbru@redhat.com) wrote:
>> Use error_setg_errno() instead of passing the value of strerror() or
>> g_strerror() to error_setg().
>> 
>> The separator between the error message proper and the value of
>> strerror() changes from " : ", "", " - ", "- " to ": " in places.
>> 
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>
>> @@ -792,9 +792,9 @@ static void vfu_object_init_ctx(VfuObject *o, Error **errp)
>>                             VFU_REGION_FLAG_RW | VFU_REGION_FLAG_ALWAYS_CB,
>>                             NULL, 0, -1, 0);
>>      if (ret < 0) {
>> -        error_setg(errp,
>> -                   "vfu: Failed to setup config space handlers for %s- %s",
>> -                   o->device, strerror(errno));
>> +        error_setg_errno(errp,
>> +                         "vfu: Failed to setup config space handlers for %s",
>> +                         o->device);
>
> missing errno.

Yes.

>>          goto fail;
>>      }
>>  
>> @@ -822,8 +822,8 @@ static void vfu_object_init_ctx(VfuObject *o, Error **errp)
>>  
>>      ret = vfu_realize_ctx(o->vfu_ctx);
>>      if (ret < 0) {
>> -        error_setg(errp, "vfu: Failed to realize device %s- %s",
>> -                   o->device, strerror(errno));
>> +        error_setg_errno(errp, "vfu: Failed to realize device %s",
>> +                         o->device);
>
> missing errno.

Yes.  Another file my build tree doesn't compile anymore.  Will fix,
thanks!

[...]



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 07:35:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 07:35:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168210.1494276 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMLfv-0008F7-HR; Fri, 21 Nov 2025 07:35:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168210.1494276; Fri, 21 Nov 2025 07: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 1vMLfv-0008F0-En; Fri, 21 Nov 2025 07:35:23 +0000
Received: by outflank-mailman (input) for mailman id 1168210;
 Fri, 21 Nov 2025 07:35:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=8OZ7=55=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vMLfu-0008Eu-5W
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 07:35:22 +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 9fd1eaa9-c6ac-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 08:35:16 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b725ead5800so216306666b.1
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 23:35: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
 a640c23a62f3a-b7654ff3c6asm389626966b.52.2025.11.20.23.35.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 23:35: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: 9fd1eaa9-c6ac-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763710516; x=1764315316; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SizfFWUoPSSHIUjbOQwiYKLCoQqMOtW9aRHbhhux/ko=;
        b=VnRGim3T8h4Fy/E1L25tuMCe+qVj4EVQDmvmENZI46p9V9rWZ05SfEVDgsfofJRJC6
         XNWc+xoTFpJpkCfGoLWh6Y997EeSBz4e8ns/eSucGGfumonFh7qN2gg6tw87VtlX8mQO
         UVNP2W6iHhLBh8tnKQ3Y6bqtQ1oMa3OzJby0djN2UeHh52HWSYcMP66T5d/nGV3iqe/7
         UlZr/5jycM7ah2vV2QQUmzjOuPVF3wt5OuM+W/zZiDfJ234M6+JG9JzN3QZDXXly/NyN
         e8tClS+IibACaqH3VoMgRuee7jqzlOCzVkBZ7i47dtTmzQoSNg0FH5c14jokVmBSt+cY
         Drcg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763710516; x=1764315316;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SizfFWUoPSSHIUjbOQwiYKLCoQqMOtW9aRHbhhux/ko=;
        b=pGZFW5IP4yeit8GCon561lxUqnvvsGbmqG/k6zKPf2iaRnY0wmho6SHehSy1LWnX3I
         pMappDr1to7etM8txsGI8Dm0EgFQWql1ubqrQ2Tmh67m9xYJ8Fv0g/8HteCLCBEaR4tY
         sMpqTJhWAblp53vdUSXT2fCdulmBs6eOHa4pec1F9woQgJQWYlrYgTZPjiLBWRcimM1u
         GTSThye/bOrgGrpLfYkuHYfJN3drrQOel/WnUiu1fH8wN2NAmL8JtrUZk6nXja1BTmPJ
         chmy4FxtVMORmpyEUGohESAdU/9TAD6+E5xo9N/zH/9DY3WNwAv8vTc7snQK7XUiaQUb
         IfJQ==
X-Forwarded-Encrypted: i=1; AJvYcCV7ek7fXm0iPjmU5SSqRcI7ynmB2B7bFrfxEovSPavG9PsIK2aC9q2jqu4dHMPAEInh5vcC1+j7rWM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwCZ8Ttx9z4f4mfjShcxAhSIFVMCHcVAMllbSvCG09B7Schnk91
	LQiSF43UqhBwoi1bapHqdcbk1BtC1D3OqfW8JFNVlTlxFKM29zivbF8a//UjRn4EqQ==
X-Gm-Gg: ASbGncvNO1klIvrsIBGV84p46o7v7slRLzWT39b6t4gYFf6m07CmM6sNZMN/FjzzV/K
	zYYMSe2jpg0w9cex3OvemlmdSC/q4cp5vHPMvrKP30/sZusNhcIUIvSL56PLYOihgnQSTwbtGAP
	oKugPY5VG+wx1TuXaCOHQZsd5aW6aSS3Ccc5B2lojhxjhl/A+HcJcar3sYlzlJbEiyPLz++cPI1
	teCvuUBZBNPlzjr1JlNUFRLSX7SspurHaSwykdxZAQUBpSG92hrnSXXy9C3UcQ7q9sY2v+CtHBL
	d+BYYwkYaj+XuYUOP7tkgWwougHaWxjsHEcw1QzN1nTI8jVznZmlCMGY0PvFIODkZ9rh65yeppx
	lwtaOPBiytVxpxnbz2n5zme9KhQOqu106+YdGb11F5dArHVtFz1Je6DLQxhCoj8JchmsiANsONH
	ZAX664eNJLFeyFSItiu73y9VTGPI/lAet9gIuz02hmHO0ZyOMYaES5U+bGwB2S22TY+VP9hWSsD
	A0=
X-Google-Smtp-Source: AGHT+IEN8YD+sRmuOWYzoYjMLM32lV4XQsOYJxn7FF9wwZSl+JKypw7Z+qyfmpmc7PSAkP/ecaF2qA==
X-Received: by 2002:a17:907:d93:b0:b73:806c:bab2 with SMTP id a640c23a62f3a-b76716d9e43mr109829966b.33.1763710516127;
        Thu, 20 Nov 2025 23:35:16 -0800 (PST)
Message-ID: <a1fc8b4b-735e-4f5d-a015-318b3e1f3550@suse.com>
Date: Fri, 21 Nov 2025 08:35:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 18/18] xen/riscv: introduce metadata table to store
 P2M type
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <d291d2efe7dcc6ddd3d16677a81c57d755c7ada2.1760974017.git.oleksii.kurochko@gmail.com>
 <6a5a9f4e-1f0e-453f-b1d1-d0e2acf97e2a@suse.com>
 <5d4ec4d9-b4c1-4365-a343-f42b390da165@gmail.com>
 <6f431394-5c08-4974-85ae-4b38f1975289@suse.com>
 <e2cbb6b9-ab07-4aad-8eb8-f4dd859ac6f6@gmail.com>
 <b859d5c1-b602-4e61-b667-2701e0f31434@suse.com>
 <3f772780-75af-4d77-96c9-7eb7dc697ff8@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: <3f772780-75af-4d77-96c9-7eb7dc697ff8@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.11.2025 17:52, Oleksii Kurochko wrote:
> 
> On 11/20/25 4:47 PM, Jan Beulich wrote:
>> On 20.11.2025 16:38, Oleksii Kurochko wrote:
>>> On 11/18/25 7:58 AM, Jan Beulich wrote:
>>>> On 17.11.2025 20:51, Oleksii Kurochko wrote:
>>>>> On 11/12/25 12:49 PM, Jan Beulich wrote:
>>>>>> On 20.10.2025 17:58, Oleksii Kurochko wrote:
>>>>>>> +Â Â Â  if ( *md_pg )
>>>>>>> +Â Â Â Â Â Â Â  metadata = __map_domain_page(*md_pg);
>>>>>>> +
>>>>>>> +Â Â Â  if ( t < p2m_first_external )
>>>>>>> +Â Â Â  {
>>>>>>>   Â Â Â Â Â Â Â Â Â  pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>>>>>>>   Â  -Â Â Â  return rc;
>>>>>>> +Â Â Â Â Â Â Â  if ( metadata )
>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â  metadata[ctx->index].pte = p2m_invalid;
>>>>>> Shouldn't this be accompanied with a BUILD_BUG_ON(p2m_invalid), as otherwise
>>>>>> p2m_alloc_page()'s clearing of the page won't have the intended effect?
>>>>> I think that, at least, at the moment we are always explicitly set p2m type and
>>>>> do not rely on that by default 0==p2m_invalid.
>>>> You don't, and ...
>>>>
>>>>> Just to be safe, I will add after "if ( metadata )" suggested
>>>>> BUILD_BUG_ON(p2m_invalid):
>>>>>   Â Â Â Â Â Â Â  if ( metadata )
>>>>>   Â Â Â Â Â Â Â Â Â Â Â  metadata[ctx->index].type = p2m_invalid;
>>>>>   Â Â Â Â Â Â Â  Â Â Â Â Â Â Â  /*
>>>>>   Â Â Â Â Â Â Â Â  * metadata.type is expected to be p2m_invalid (0) after the page is
>>>>>   Â Â Â Â Â Â Â Â  * allocated and zero-initialized in p2m_alloc_page().
>>>>>   Â Â Â Â Â Â Â Â  */
>>>>>   Â Â Â Â Â Â Â  BUILD_BUG_ON(p2m_invalid);
>>>>> ...
>>>> ... this leaves me with the impression that you didn't read my reply correctly.
>>>> p2m_alloc_page() clear the page, thus_implicitly_ setting all entries to
>>>> p2m_invalid. That's where the BUILD_BUG_ON() would want to go (the call site,
>>>> ftaod).
>>> I think I still donâ€™t fully understand what the issue would be if|p2m_invalid| were
>>> ever equal to 1 instead of 0 in the context of a metadata page.
>>>
>>> Yes, if|p2m_invalid| were 1, there would be a problem if someone tried to read this
>>> metadata pagebefore it was assigned any type. They would find a value of 0, which
>>> corresponds to a valid type rather than to|p2m_invalid|, as one might expect.
>>> However, Iâ€™m not sure I currently see a scenario in which the metadata page would
>>> be read before being initialized.
>> Are you sure walks can only happen for GFNs that were set up? What you need to
>> do walks on is under guest control, after all.
> 
> If a GFN lies within the range[p2m->lowest_mapped_gfn, p2m->max_mapped_gfn], then
> |p2m_set_entry()| must already have been called for this GFN.

No. All you know from the pre-condition is that p2m_set_entry() was called for the
lowest and highest GFNs in that range.

Jan

> This means that either
> - a metadata page has been created and its entry filled with the appropriate type, or
> - no metadata page was needed and the type was stored directly in|pte->pte|
> 
> For a GFN outside the range(p2m->lowest_mapped_gfn, p2m->max_mapped_gfn),
> |p2m_get_entry()| will not even attempt a walk because of the boundary checks:
>      static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
>                                 p2m_type_t *t,
>                                 unsigned int *page_order)
>      ...
>          if ( check_outside_boundary(p2m, gfn, p2m->lowest_mapped_gfn, true,
>                                      &level) )
>              goto out;
>      
>          if ( check_outside_boundary(p2m, gfn, p2m->max_mapped_gfn, false, &level) )
>              goto out;
> 
> If I am misunderstanding something and there are other cases where a walk can occur for
> GFNs that were never set up, then such GFNs would have neither an allocated metadata
> page nor a type stored in|pte->pte|, which looks like we are in trouble.
> 
> ~ Oleksii
> 



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 07:37:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 07:37:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168220.1494287 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMLi9-0000KR-T2; Fri, 21 Nov 2025 07:37:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168220.1494287; Fri, 21 Nov 2025 07:37: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 1vMLi9-0000KK-Q6; Fri, 21 Nov 2025 07:37:41 +0000
Received: by outflank-mailman (input) for mailman id 1168220;
 Fri, 21 Nov 2025 07:37: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=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMLi8-0000KE-GG
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 07:37:40 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f3f0d521-c6ac-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 08:37:38 +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-145-4S8p1gJgOD2z9prdQBzToA-1; Fri,
 21 Nov 2025 02:37:32 -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 A617B1956061; Fri, 21 Nov 2025 07:37:26 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.3])
 by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 23A9E1800877; Fri, 21 Nov 2025 07:37:24 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id ADAC221E6A27; Fri, 21 Nov 2025 08:37:21 +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: f3f0d521-c6ac-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763710657;
	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=igDlYyRnPCE7UGrSaq2pRsy2AoYFeSBXmKnGZzjhM+c=;
	b=T/7e/eEoH6tK6Z6PkSNQOrFuKDSOUOWK05pa2NnadVYhMyvmB9x4c455isesYBscibvHeS
	jc52ZOeU39Rt8sFzel/M2NCGK9VOL3CMSD8aOD9YbmIuyaQ6kKDjejKOL8+azH6soNwblv
	U672nkQO1mSd01eygoNRMVPozJaQMX4=
X-MC-Unique: 4S8p1gJgOD2z9prdQBzToA-1
X-Mimecast-MFC-AGG-ID: 4S8p1gJgOD2z9prdQBzToA_1763710648
From: Markus Armbruster <armbru@redhat.com>
To: "Dr. David Alan Gilbert" <dave@treblig.org>
Cc: qemu-devel@nongnu.org,  arei.gonglei@huawei.com,
  pizhenwei@bytedance.com,  alistair.francis@wdc.com,
  stefanb@linux.vnet.ibm.com,  kwolf@redhat.com,  hreitz@redhat.com,
  sw@weilnetz.de,  qemu_oss@crudebyte.com,  groug@kaod.org,
  mst@redhat.com,  imammedo@redhat.com,  anisinha@redhat.com,
  kraxel@redhat.com,  shentey@gmail.com,  npiggin@gmail.com,
  harshpb@linux.ibm.com,  sstabellini@kernel.org,  anthony@xenproject.org,
  paul@xen.org,  edgar.iglesias@gmail.com,  elena.ufimtseva@oracle.com,
  jag.raman@oracle.com,  sgarzare@redhat.com,  pbonzini@redhat.com,
  fam@euphon.net,  philmd@linaro.org,  alex@shazbot.org,  clg@redhat.com,
  peterx@redhat.com,  farosas@suse.de,  lizhijian@fujitsu.com,
  jasowang@redhat.com,  samuel.thibault@ens-lyon.org,
  michael.roth@amd.com,  kkostiuk@redhat.com,  zhao1.liu@intel.com,
  mtosatti@redhat.com,  rathc@linux.ibm.com,  palmer@dabbelt.com,
  liwei1518@gmail.com,  dbarboza@ventanamicro.com,
  zhiwei_liu@linux.alibaba.com,  marcandre.lureau@redhat.com,
  qemu-block@nongnu.org,  qemu-ppc@nongnu.org,
  xen-devel@lists.xenproject.org,  kvm@vger.kernel.org,
  qemu-riscv@nongnu.org
Subject: Re: [PATCH 11/14] error: Use error_setg_errno() to improve error
 messages
In-Reply-To: <87o6owq6ob.fsf@pond.sub.org> (Markus Armbruster's message of
	"Fri, 21 Nov 2025 06:46:28 +0100")
References: <20251120191339.756429-1-armbru@redhat.com>
	<20251120191339.756429-12-armbru@redhat.com>
	<aR-t5SzR2AdqlJtq@gallifrey> <87o6owq6ob.fsf@pond.sub.org>
Date: Fri, 21 Nov 2025 08:37:21 +0100
Message-ID: <87a50fq1ji.fsf@pond.sub.org>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93

Markus Armbruster <armbru@redhat.com> writes:

> "Dr. David Alan Gilbert" <dave@treblig.org> writes:
>
>> * Markus Armbruster (armbru@redhat.com) wrote:
>>> A few error messages show numeric errno codes.  Use error_setg_errno()
>>> to show human-readable text instead.
>>> 
>>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>>
>> ...
>>
>>> diff --git a/migration/rdma.c b/migration/rdma.c
>>> index 337b415889..ef4885ef5f 100644
>>> --- a/migration/rdma.c
>>> +++ b/migration/rdma.c
>>> @@ -2349,8 +2349,7 @@ static int qemu_get_cm_event_timeout(RDMAContext *rdma,
>>>          error_setg(errp, "RDMA ERROR: poll cm event timeout");
>>>          return -1;
>>>      } else if (ret < 0) {
>>> -        error_setg(errp, "RDMA ERROR: failed to poll cm event, errno=%i",
>>> -                   errno);
>>> +        error_setg_errno(errp, "RDMA ERROR: failed to poll cm event");
>>
>> Hasn't that lost the errno ?
>
> Yes.  My build tree must have lost the ability to compile this file.  I
> need to fix that.

Actually a patch splitting accident.  Fixed.

[...]



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 07:38:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 07:38:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168230.1494297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMLim-0000nj-4H; Fri, 21 Nov 2025 07:38:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168230.1494297; Fri, 21 Nov 2025 07:38:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMLim-0000nc-1X; Fri, 21 Nov 2025 07:38:20 +0000
Received: by outflank-mailman (input) for mailman id 1168230;
 Fri, 21 Nov 2025 07:38: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=8OZ7=55=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vMLik-0000KE-ML
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 07:38:18 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0bc7b709-c6ad-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 08:38:17 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-b737502f77bso252822566b.2
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 23:38: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
 a640c23a62f3a-b7654cdd5bfsm401814566b.9.2025.11.20.23.38.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 23:38: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: 0bc7b709-c6ad-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763710697; x=1764315497; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=VFmetNFlofLudyH9TZxlHb/h7PZWyzefI7AKq4pYhvA=;
        b=d+xEwPFPl6mfN0y7aJkWK0norMOK/Zr3/JYDo89nc5j6SzlenKwLr9enhQ5T5CaoSJ
         YNKY9nyx2pknVWNAp4TUs75nGt2TBtWTkG/Y+rLTQfNcGIFXguq3O9D0wVEnE26Ubzlk
         UdzAiQ90+CXzNxiWYYAjsZFoBOAWUX4EEajCC/GcD5qa8kdv3x9PuBd3DdyH0IxO/sNJ
         kRTcrGp9xBPgrCFWTDgixjdqLyyGKa3nxcg9rYMS4S4v64HcOSgSb6nUBsJDdYKJPz2d
         yiMhH4Xm7UQfj2ECzU3OEvQGnuSnKcxUcwOTNR5CFQgIAKEDFf1HWDgwECJpCs28lV1A
         DLFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763710697; x=1764315497;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VFmetNFlofLudyH9TZxlHb/h7PZWyzefI7AKq4pYhvA=;
        b=s1XyQGrrQGn7iXIY8Z5SMYgiiil6vX5nA+YE2//RKNNBItcEU/FqUfFrbAjqPMCg5T
         HhpIeDq4JNrf/XudDhgziEH4MqPWqTPb+XqmAuVuZrFVB6AN9CHdF61d1eE7a2YLZd3v
         jdDayiPyIgAwrrKdw1771iTRsM1fANeWAHhq648F5RiFc2ICTx9gvnUtFPjdd8zn6sIW
         ZvVzqosB4KTRq70BsxcWFPpR2nVGjya/gCt9KtadH3Bo+Tkw8mE02j9NXk6aASAGWTfA
         UKytqdmuQWzFCas1TX2Wj9MZ1W7ipB7FnPjSIzqPdkVx2t3bet3lWHcdjPrNLdlD9gon
         2F4w==
X-Forwarded-Encrypted: i=1; AJvYcCVVilEo+ESWKSmHEuRfUCMSvAHEJB6/RcVXnPxCO6+g0+bitt6WzKr8uiEVkhLgKDGIOFUypQKQ/LI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzJds0Tl35RRirtS0dYie1MzZaRBuG9Jqf3+Xx1mE+lhQoStgrp
	mnIy+vpTQng30G0RhK/feOafR0gPRR9LZJaLeMK1v2s92lrLt4P/KZw/0lwIZTIAKQ==
X-Gm-Gg: ASbGncv+QOdB9NsBkI/9lcUHzPOvQV8cjGyNCJ84wPxp87WUQWSieAq6dV1QOUiuyia
	p9Fv89DBviSfU22/Z3JVit6/NLFvZPgbrQ5lMJVlD14QR1/a+768sxsG9IomurPiO09rqMablLB
	MsjUvfTdSw4RYekKunrJ3DNm6xwqS697nl77fAYKQzDhC6UI7PZ8VomTTCEMOl6xpFtGShAKiXN
	uc86//KYW96RxtD9YOsJ5b8zkrbsMcDJyqUZKus+x8hn3vB/bKochEidqOEY+4nPlU0wLwSbjnG
	wABHgtlVoapSPmqriFX74ryS2IoTlWpJnnZ6lwBlQG1EahjZp1qNzif04xK0UEDJccY84UtdOuV
	eBlBkKAZpLFKJGTL6zLKMOQ1aAkGPKzgTzao1Qa53bQ1Tz3OYPLJL3N2/9PtwNRcJPzXKiIqIjl
	iUdMjnlFWNlIH/ofSjk61LZIwuS3JMDkuESJc+bakjcnktZxSlPFtX6HptduoDoGra2YJiHugsB
	q4=
X-Google-Smtp-Source: AGHT+IEMytwskyFaqeJDlDVPN/l7keiGmF8xZPhZ7zxBNCP1uzwww/zGDrzW/wm5u8yU+LjQ+gVoOw==
X-Received: by 2002:a17:907:8dc3:b0:b4f:e12e:aa24 with SMTP id a640c23a62f3a-b7671591e7cmr101900366b.22.1763710697327;
        Thu, 20 Nov 2025 23:38:17 -0800 (PST)
Message-ID: <9d631a1d-2647-4ee8-975e-0e2025c37359@suse.com>
Date: Fri, 21 Nov 2025 08:38:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 05/12] x86/io-apic: purge usage of logical mode
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120090637.25087-6-roger.pau@citrix.com>
 <63a4f416-f475-4b6b-8f44-db570b7a75d9@citrix.com>
 <cd41f345-f5db-4d64-8914-a6984f7fa83e@suse.com>
 <2ca642c5-3fcb-4a35-8500-ed40e540b300@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: <2ca642c5-3fcb-4a35-8500-ed40e540b300@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.11.2025 19:30, Andrew Cooper wrote:
> On 20/11/2025 2:27 pm, Jan Beulich wrote:
>> On 20.11.2025 14:18, Andrew Cooper wrote:
>>> On 20/11/2025 9:06 am, Roger Pau Monne wrote:
>>>> The IO-APIC RTEs are unconditionally programmed with physical destination
>>>> mode, and hence the field to set in the RTE is always physical_dest.
>>>>
>>>> Remove the mode parameter from SET_DEST() and take the opportunity to
>>>> convert it into a function, there's no need for it to be a macro.
>>>>
>>>> This is a benign fix, because due to the endianness of x86 the start of the
>>>> physical_dest and logical_dest fields on the RTE overlap.
>>> RTEs do not have overlapping fields; it's Xen's abstraction of the
>>> IO-APIC which is buggy.
>> I wouldn't put it this negatively. In the old days, ...
>>
>>> For starters, Xen's IO_APIC_route_entry still only has a 4-bit
>>> physical_dest field which hasn't been true since the Pentium 4 days.Â 
>>> This might explain some of the interrupt bugs we see.
>> ... as you mention here, the two fields were distinct (and hence overlapping).
> 
> Since when?
> 
> Even in the oldest manuals I can find, it's a single field called
> destination, and who's contents is interpreted differently depending on
> the logical mode bit.

And these two different meanings are reflected in the union-ized definition
in Xen. Which I still think is fair to describe as "overlapping". And the
use of a union itself isn't buggy imo; it's some of the code using it which
is.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 07:46:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 07:46:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168253.1494307 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMLqG-0002iX-4U; Fri, 21 Nov 2025 07:46:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168253.1494307; Fri, 21 Nov 2025 07:46:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMLqG-0002iQ-0i; Fri, 21 Nov 2025 07:46:04 +0000
Received: by outflank-mailman (input) for mailman id 1168253;
 Fri, 21 Nov 2025 07:46: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=8OZ7=55=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vMLqF-0002iK-A2
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 07:46:03 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1faa4f88-c6ae-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 08:46:00 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-b73875aa527so272195966b.3
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 23: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
 4fb4d7f45d1cf-645363ac96dsm3875586a12.4.2025.11.20.23.45.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 23: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: 1faa4f88-c6ae-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763711160; x=1764315960; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hSZOBRtcFrMZCu6nnoxhFFBzHIulITb66vgJSNlwRq4=;
        b=a89Ek/5vc7oO4pV7ypwya39vL7IAeZ2zocoYoenxNvptoYXjgHdO5Q8yDY9pSkbZEC
         rLboRvoxsg8RwvEeCrU5E6qrjQNPDXXYS3R5GEmVj/bk4Loi+Q/qTG1/P905iLC9MOvC
         XGezz5wRh45q3PS/1ibaLOSEbV6yYQR8/jqdd+loiDosw5hEWOXPokUl4Xb5Z2FcXorG
         cG8gsDDlVHDCfzeWN5vZ1ol7QSH4XX8nkRbNJC/tJvBRACI1eS07IbsnW/saqOg2MxM+
         D5mEYvyvNwhwEQVU/sgZkBIdV1ArX6GYbNfbb5cu4DvrT9HlUx4TDz0A7TCgLk8ptcgG
         rAzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763711160; x=1764315960;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hSZOBRtcFrMZCu6nnoxhFFBzHIulITb66vgJSNlwRq4=;
        b=Mgr4UCXYBsszdji039qkLEakkQIDdaZ6753AeWcrbV78YzuY+aBpvRWfFumyyeODev
         raxi4ybPJW8UzQqqGN4plgH1n5uo3ZU8XQ723dQoBFAgYI/Puu3JWmNxcOlGa98uHNf4
         qgHR6Ymvc0SGbqqrqwjpoThZCtBpdoPfC6z7C38cSKTomedteYL7p1LmdZjQHn9JzSoo
         dM4S99iV1gH92X6Kan2o5a8CrXumREUiFYO0ZDiAN18GiXaDtwMtmQTnljE5WqZRMYvc
         +lsUa/GknjJFdkq9izW6OJaM/Sk5+TfEwnNRGyvgTg9mi2dlcxqTHv27RsMlkAwkRzt2
         97mw==
X-Forwarded-Encrypted: i=1; AJvYcCVqE1ASnxSHgtkGCddDAJMpx0OW35AIIiRNJopbm8YmsHYkdZfegEk6+3A9wvbjxzERy9svVQwyT48=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwrQNifl93btaRxpSNzVEWadQ7zN6kVbNl046QZOO0zhv5qiN4n
	Zgyyb/QZWGAwzhrPiiB6qZ5h92I81CeuqQxCZ9jBZTbd7nke+0yzFbtig/mVTQhB0w==
X-Gm-Gg: ASbGncsNe9wGekGrIh5+ijc4l30WR0CrrORQPOer4aay4aCOfwwhUws5ok1ec7S2TvR
	xCA6+RLrdzc0XpMNgso9T36T/ff/sMbXLn88rxLmrgbnGlTJ3B6o28wMgjg5Q4kYLVqgbuPLJTD
	rjSu7ZV75D4Ro1x3Mn/GkNFTEzX4jQAK+oXSuVnCvHwRcyjw/P2jqeHtPU5+FjMuZYAf2paTlBj
	T1roNGI2sYCWX+PoeeSPLXXqRUTwxb5yeuiEYQOP8VsGNSLnnMgpaVxEcVTcx1r6s7dT5mXI5lA
	KrA5OWPtKKT7rh6erVH8l7E2nESzSSh6d9IOUAcg73rd/qk2ewTAppZsOec1Ws31iUjJ0Fbq1t6
	f53gXtZExJ/DDdDd0K6y7yFuE2YE8woQ20l6tsP9VTcDU8udLltcrEV6uAi4YaMon1I9Jcwxy0N
	jmI6OL04ns3Yh0DNzZF0ZQn2QbFgVoRmuvQJhZImXxNR4NT3U4GhdkTwTGtl4jIEt1xXAr0rgyv
	ELhCFmBPBQG3A==
X-Google-Smtp-Source: AGHT+IGS0+W4X/RQwYN6nDTJF0QZ+71jgREH4X/mWbbYI/bJlCmQy/VVlc8GRClpxk63g+FOVQEw+w==
X-Received: by 2002:a17:907:3f24:b0:b6d:2c70:4542 with SMTP id a640c23a62f3a-b767170cc75mr120059166b.30.1763711160196;
        Thu, 20 Nov 2025 23:46:00 -0800 (PST)
Message-ID: <7ba92200-6249-457d-b462-e6c6226852b7@suse.com>
Date: Fri, 21 Nov 2025 08:45:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] x86/MCE: restrict allocation of thermal and CMCI
 vector to BSP
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: <fbc9a2f8-170a-4645-8836-c90c42ad726f@suse.com>
 <638d0954-e889-41ee-b277-282f83170c69@suse.com>
 <ed2f44ce-b28d-482f-b6bb-5ef40149f2b2@citrix.com>
 <5a476cc5-0095-4783-bde9-c84f24740372@suse.com>
 <8c55d065-c663-40ac-a2c5-f4c7d85971a1@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: <8c55d065-c663-40ac-a2c5-f4c7d85971a1@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.11.2025 18:25, Andrew Cooper wrote:
> On 20/11/2025 12:11 pm, Jan Beulich wrote:
>> On 20.11.2025 12:51, Andrew Cooper wrote:
>>> On 19/11/2025 10:50 am, Jan Beulich wrote:
>>>> --- a/xen/arch/x86/cpu/mcheck/mce.c
>>>> +++ b/xen/arch/x86/cpu/mcheck/mce.c
>>>> @@ -110,13 +110,13 @@ static void __init mcheck_intel_therm_in
>>>>  }
>>>>  
>>>>  /* P4/Xeon Thermal regulation detect and init */
>>>> -static void intel_init_thermal(struct cpuinfo_x86 *c)
>>>> +static void intel_init_thermal(const struct cpuinfo_x86 *c, bool bsp)
>>>>  {
>>>>      uint64_t msr_content;
>>>>      uint32_t val;
>>>>      int tm2 = 0;
>>>>      unsigned int cpu = smp_processor_id();
>>>> -    static uint8_t thermal_apic_vector;
>>>> +    static uint8_t __ro_after_init thermal_apic_vector;
>>>>  
>>>>      if ( !intel_thermal_supported(c) )
>>>>          return; /* -ENODEV */
>>>> @@ -160,7 +160,8 @@ static void intel_init_thermal(struct cp
>>>>          return; /* -EBUSY */
>>>>      }
>>>>  
>>>> -    alloc_direct_apic_vector(&thermal_apic_vector, intel_thermal_interrupt);
>>>> +    if ( bsp )
>>>> +        alloc_direct_apic_vector(&thermal_apic_vector, intel_thermal_interrupt);
>>> We really don't want both c and bsp passed in.Â  That can only go wrong.
>>>
>>> Furthermore, this function has 2 other examples generating bsp locally.
>>>
>>> The function is in desperate need of cleanup (MSRs, variable and
>>> constant names), but right now this makes it worse.
>>>
>>> Please either use c == &boot_cpu_data, and I'll do some cleanup later,
>>> or generate bsp = c == &boot_cpu_data and fix up all users in the function.
>> No, throughout mce/ this won't work as long as acpi/power.c:enter_state() has
>>
>>     mcheck_init(&boot_cpu_data, false);
> 
> How's not not already broken then?Â  As said, intel_init_thermal() is
> already using c == &boot_cpu_data.

That's two printk()s, so not overly severe a bug. And being fixed by "x86/MCE:
adjust S3 resume handling" posted months ago. There I'm actually putting up
the question whether one of the two could/should stay as is.

> This patch introduces a conflicting idea of bsp in this function, and
> that's what I really want to avoid.
> 
> This looks like it wants splitting properly as {bsp,percpu}_init_$FOO()
> like we have elsewhere.

Without detailed checking, I'm not sure that would properly cover things.
Right now we have three modes: BSP (boot), BSP (resume), and AP.

More importantly, though: This would be more than enough content for another
series, i.e. shouldn't block the work here (which really moves things to a
more consistent state, within cpu/mcheck/, just like that other patch also
aims at doing).

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 07:46:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 07:46:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168245.1494317 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMLr9-0003D5-Db; Fri, 21 Nov 2025 07:46:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168245.1494317; Fri, 21 Nov 2025 07: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 1vMLr9-0003Cy-A3; Fri, 21 Nov 2025 07:46:59 +0000
Received: by outflank-mailman (input) for mailman id 1168245;
 Fri, 21 Nov 2025 07:39: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=iaQO=55=redhat.com=kkostiuk@srs-se1.protection.inumbo.net>)
 id 1vMLkH-0001Ph-Qp
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 07:39:53 +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 43277d44-c6ad-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 08:39:51 +0100 (CET)
Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com
 [209.85.219.72]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-595-_HjfTZ-0M7GoaHdbqsabQw-1; Fri, 21 Nov 2025 02:39:48 -0500
Received: by mail-qv1-f72.google.com with SMTP id
 6a1803df08f44-88237204cc8so22370826d6.2
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 23:39: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: 43277d44-c6ad-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763710790;
	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=nsxb1+ZtH/utbUjrw5MXl9iDkbIwPjjaHwBbbnpvgnE=;
	b=Ku2/P5Vr9zsKs9RsXibepZpY9WRFJt1a6lf4pgNGfBCdnyvSzC7dSMMUR3RL+z2tt7uTum
	MayD/9djtiwyGUIPdmsBfINcIFgnnLXS4RcB9mqKr6eBiW84aFQFCVOyVmoUXp+IU/GWM1
	hIWssqguv8SImD3Dgoy5NjZg5X20IKo=
X-MC-Unique: _HjfTZ-0M7GoaHdbqsabQw-1
X-Mimecast-MFC-AGG-ID: _HjfTZ-0M7GoaHdbqsabQw_1763710788
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763710788; x=1764315588;
        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=nsxb1+ZtH/utbUjrw5MXl9iDkbIwPjjaHwBbbnpvgnE=;
        b=I2twrUD8fnH6aPXJp7UBdn4b7h3A4I5p8ye4y15urVCpqINPEqy34B8cY080381E3G
         ftIC91sMGMijR/Fcehr+ZVUOToViIuqNXtll0UDg4jNqV91PHXW5Qmm09eUEh22lrv2o
         89/ZAK9VGqduAE0Lc+BqzwXssW543SFPy6YxsexmuAiwvtFgSFVtwj4FgVsTXOhEEe7g
         C9hlb3B33WbcOmqOpPnf3xbSMeGKE2TtfJ+wTJIVGvhowkaV+OvAgoWV3Q+DKOWnMSjn
         OVkU53mL2f1qzSUqAh5GKamGb69BGCaz1/2VOFmNbVRIaRVkYdF7o9u70DX7ftpgHfCN
         9hlQ==
X-Forwarded-Encrypted: i=1; AJvYcCXXCkpaIyqPGnYC/JgxMAGt02hBX1/Omvp9pRUW51pGN7c0bdxOs8ZLa9ztr8n4DKHfs2hZy8UBPwA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy1tnARBIKPls8i/eiuKtL8I1sSigs9Kz84ZidioFz+5sBhQGud
	xXt+izM5s7CG+G0sY7oXi5nyTd/HvxrB+eneDWM0qRzP6QWwy5CnZZywO5LNx1OOu+mwiGK6guc
	5ny8qorgn2k7ZJQUkz6ooIoa0nK7Wn7Bw1t0zfhcZOfsTqf2zOo0EW9bibrIcRBFRSvQThz1c2D
	mNM67XkRRfutIwt4/sFEp0walFht26CbfMjnGzo1NUEZ0=
X-Gm-Gg: ASbGnctJINntoz7gpnwb3m9ADWVsplf1Px9yrg/Dk57PLhFv1MwljtTSq+IB8U1y7Qv
	+GbsR1FS3H2R09pNRv0jTdL4uarewxS6dhg3Zww4cS0vTEdHnsuyzWuNAT6o0695QniZUOi6ctR
	4OFxiSyV+GrtUN73N53MN9jo4WEiZ874/zX6sQp1cN5+tEPBKfCnIkb5FnclLPFLZuOKTq
X-Received: by 2002:a05:622a:118c:b0:4eb:a8ba:947b with SMTP id d75a77b69052e-4ee5884991amr17159851cf.24.1763710788159;
        Thu, 20 Nov 2025 23:39:48 -0800 (PST)
X-Google-Smtp-Source: AGHT+IFLyPkFkG3x0S6uI+xdlOI37nnwdMuiwb0nN0Gl6T/QJxCnm5Mh8QiLNWxZMD4XY2VbeYYHMBdVUMjbZObmN1Y=
X-Received: by 2002:a05:622a:118c:b0:4eb:a8ba:947b with SMTP id
 d75a77b69052e-4ee5884991amr17159341cf.24.1763710787702; Thu, 20 Nov 2025
 23:39:47 -0800 (PST)
MIME-Version: 1.0
References: <20251120191339.756429-1-armbru@redhat.com> <20251120191339.756429-5-armbru@redhat.com>
In-Reply-To: <20251120191339.756429-5-armbru@redhat.com>
From: Kostiantyn Kostiuk <kkostiuk@redhat.com>
Date: Fri, 21 Nov 2025 09:39:36 +0200
X-Gm-Features: AWmQ_bkbTDRklsFcwFvNMZRSvPNhhVVXvsEkVWTHdAglGa310j_mRubzsRFOFH4
Message-ID: <CAPMcbCrQvuCf_zqgB7HkQd+VoP3Kha73EwTXjVqKcVEqPFz1Lg@mail.gmail.com>
Subject: Re: [PATCH 04/14] qga: Use error_setg_file_open() for better error messages
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, arei.gonglei@huawei.com, pizhenwei@bytedance.com, 
	alistair.francis@wdc.com, stefanb@linux.vnet.ibm.com, kwolf@redhat.com, 
	hreitz@redhat.com, sw@weilnetz.de, qemu_oss@crudebyte.com, groug@kaod.org, 
	mst@redhat.com, imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com, 
	shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com, 
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org, 
	edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com, jag.raman@oracle.com, 
	sgarzare@redhat.com, pbonzini@redhat.com, fam@euphon.net, philmd@linaro.org, 
	alex@shazbot.org, clg@redhat.com, peterx@redhat.com, farosas@suse.de, 
	lizhijian@fujitsu.com, dave@treblig.org, jasowang@redhat.com, 
	samuel.thibault@ens-lyon.org, michael.roth@amd.com, zhao1.liu@intel.com, 
	mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com, 
	liwei1518@gmail.com, dbarboza@ventanamicro.com, zhiwei_liu@linux.alibaba.com, 
	marcandre.lureau@redhat.com, qemu-block@nongnu.org, qemu-ppc@nongnu.org, 
	xen-devel@lists.xenproject.org, kvm@vger.kernel.org, qemu-riscv@nongnu.org
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: Q2W1UOl6kEsIqrX1WCogbSHNHVBsk96CQ9tTCnwspK8_1763710788
X-Mimecast-Originator: redhat.com
Content-Type: multipart/alternative; boundary="000000000000fce1ef064415ea4e"

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

Reviewed-by: Kostiantyn Kostiuk <kkostiuk@redhat.com>

On Thu, Nov 20, 2025 at 9:13=E2=80=AFPM Markus Armbruster <armbru@redhat.co=
m> wrote:

> Error messages change from
>
>     open("FNAME"): REASON
>
> to
>
>     Could not open 'FNAME': REASON
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  qga/commands-linux.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/qga/commands-linux.c b/qga/commands-linux.c
> index 4a09ddc760..5cf76ca2d9 100644
> --- a/qga/commands-linux.c
> +++ b/qga/commands-linux.c
> @@ -1502,14 +1502,15 @@ static void transfer_vcpu(GuestLogicalProcessor
> *vcpu, bool sys2vcpu,
>
>      dirfd =3D open(dirpath, O_RDONLY | O_DIRECTORY);
>      if (dirfd =3D=3D -1) {
> -        error_setg_errno(errp, errno, "open(\"%s\")", dirpath);
> +        error_setg_file_open(errp, errno, dirpath);
>          return;
>      }
>
>      fd =3D openat(dirfd, fn, sys2vcpu ? O_RDONLY : O_RDWR);
>      if (fd =3D=3D -1) {
>          if (errno !=3D ENOENT) {
> -            error_setg_errno(errp, errno, "open(\"%s/%s\")", dirpath, fn=
);
> +            error_setg_errno(errp, errno, "could not open %s/%s",
> +                             dirpath, fn);
>          } else if (sys2vcpu) {
>              vcpu->online =3D true;
>              vcpu->can_offline =3D false;
> @@ -1711,7 +1712,7 @@ static void transfer_memory_block(GuestMemoryBlock
> *mem_blk, bool sys2memblk,
>      dirfd =3D open(dirpath, O_RDONLY | O_DIRECTORY);
>      if (dirfd =3D=3D -1) {
>          if (sys2memblk) {
> -            error_setg_errno(errp, errno, "open(\"%s\")", dirpath);
> +            error_setg_file_open(errp, errno, dirpath);
>          } else {
>              if (errno =3D=3D ENOENT) {
>                  result->response =3D
> GUEST_MEMORY_BLOCK_RESPONSE_TYPE_NOT_FOUND;
> @@ -1936,7 +1937,7 @@ static GuestDiskStatsInfoList
> *guest_get_diskstats(Error **errp)
>
>      fp =3D fopen(diskstats, "r");
>      if (fp  =3D=3D NULL) {
> -        error_setg_errno(errp, errno, "open(\"%s\")", diskstats);
> +        error_setg_file_open(errp, errno, diskstats);
>          return NULL;
>      }
>
> @@ -2047,7 +2048,7 @@ GuestCpuStatsList *qmp_guest_get_cpustats(Error
> **errp)
>
>      fp =3D fopen(cpustats, "r");
>      if (fp  =3D=3D NULL) {
> -        error_setg_errno(errp, errno, "open(\"%s\")", cpustats);
> +        error_setg_file_open(errp, errno, cpustats);
>          return NULL;
>      }
>
> --
> 2.49.0
>
>

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

<div dir=3D"ltr">Reviewed-by: Kostiantyn Kostiuk &lt;<a href=3D"mailto:kkos=
tiuk@redhat.com" target=3D"_blank">kkostiuk@redhat.com</a>&gt;</div><br><di=
v class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" class=3D"gma=
il_attr">On Thu, Nov 20, 2025 at 9:13=E2=80=AFPM Markus Armbruster &lt;<a h=
ref=3D"mailto:armbru@redhat.com">armbru@redhat.com</a>&gt; wrote:<br></div>=
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left:1px solid rgb(204,204,204);padding-left:1ex">Error messages change fro=
m<br>
<br>
=C2=A0 =C2=A0 open(&quot;FNAME&quot;): REASON<br>
<br>
to<br>
<br>
=C2=A0 =C2=A0 Could not open &#39;FNAME&#39;: REASON<br>
<br>
Signed-off-by: Markus Armbruster &lt;<a href=3D"mailto:armbru@redhat.com" t=
arget=3D"_blank">armbru@redhat.com</a>&gt;<br>
---<br>
=C2=A0qga/commands-linux.c | 11 ++++++-----<br>
=C2=A01 file changed, 6 insertions(+), 5 deletions(-)<br>
<br>
diff --git a/qga/commands-linux.c b/qga/commands-linux.c<br>
index 4a09ddc760..5cf76ca2d9 100644<br>
--- a/qga/commands-linux.c<br>
+++ b/qga/commands-linux.c<br>
@@ -1502,14 +1502,15 @@ static void transfer_vcpu(GuestLogicalProcessor *vc=
pu, bool sys2vcpu,<br>
<br>
=C2=A0 =C2=A0 =C2=A0dirfd =3D open(dirpath, O_RDONLY | O_DIRECTORY);<br>
=C2=A0 =C2=A0 =C2=A0if (dirfd =3D=3D -1) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 error_setg_errno(errp, errno, &quot;open(\&quo=
t;%s\&quot;)&quot;, dirpath);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 error_setg_file_open(errp, errno, dirpath);<br=
>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0fd =3D openat(dirfd, fn, sys2vcpu ? O_RDONLY : O_RDWR);=
<br>
=C2=A0 =C2=A0 =C2=A0if (fd =3D=3D -1) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (errno !=3D ENOENT) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error_setg_errno(errp, errno, &q=
uot;open(\&quot;%s/%s\&quot;)&quot;, dirpath, fn);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error_setg_errno(errp, errno, &q=
uot;could not open %s/%s&quot;,<br>
+=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=A0dirpath, fn);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} else if (sys2vcpu) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0vcpu-&gt;online =3D true;<b=
r>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0vcpu-&gt;can_offline =3D fa=
lse;<br>
@@ -1711,7 +1712,7 @@ static void transfer_memory_block(GuestMemoryBlock *m=
em_blk, bool sys2memblk,<br>
=C2=A0 =C2=A0 =C2=A0dirfd =3D open(dirpath, O_RDONLY | O_DIRECTORY);<br>
=C2=A0 =C2=A0 =C2=A0if (dirfd =3D=3D -1) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (sys2memblk) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error_setg_errno(errp, errno, &q=
uot;open(\&quot;%s\&quot;)&quot;, dirpath);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error_setg_file_open(errp, errno=
, dirpath);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} else {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (errno =3D=3D ENOENT) {<=
br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0result-&gt;re=
sponse =3D GUEST_MEMORY_BLOCK_RESPONSE_TYPE_NOT_FOUND;<br>
@@ -1936,7 +1937,7 @@ static GuestDiskStatsInfoList *guest_get_diskstats(Er=
ror **errp)<br>
<br>
=C2=A0 =C2=A0 =C2=A0fp =3D fopen(diskstats, &quot;r&quot;);<br>
=C2=A0 =C2=A0 =C2=A0if (fp=C2=A0 =3D=3D NULL) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 error_setg_errno(errp, errno, &quot;open(\&quo=
t;%s\&quot;)&quot;, diskstats);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 error_setg_file_open(errp, errno, diskstats);<=
br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
@@ -2047,7 +2048,7 @@ GuestCpuStatsList *qmp_guest_get_cpustats(Error **err=
p)<br>
<br>
=C2=A0 =C2=A0 =C2=A0fp =3D fopen(cpustats, &quot;r&quot;);<br>
=C2=A0 =C2=A0 =C2=A0if (fp=C2=A0 =3D=3D NULL) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 error_setg_errno(errp, errno, &quot;open(\&quo=
t;%s\&quot;)&quot;, cpustats);<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 error_setg_file_open(errp, errno, cpustats);<b=
r>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
-- <br>
2.49.0<br>
<br>
</blockquote></div>

--000000000000fce1ef064415ea4e--



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 07:46:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 07:46:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168251.1494322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMLr9-0003GX-Lb; Fri, 21 Nov 2025 07:46:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168251.1494322; Fri, 21 Nov 2025 07: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 1vMLr9-0003GE-Hp; Fri, 21 Nov 2025 07:46:59 +0000
Received: by outflank-mailman (input) for mailman id 1168251;
 Fri, 21 Nov 2025 07:43:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=iaQO=55=redhat.com=kkostiuk@srs-se1.protection.inumbo.net>)
 id 1vMLnc-0002ep-V0
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 07:43:20 +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 bf1a05bb-c6ad-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 08:43:19 +0100 (CET)
Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com
 [209.85.160.197]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-279-FO5fd91IOaGCRozr1PkAyw-1; Fri, 21 Nov 2025 02:43:16 -0500
Received: by mail-qt1-f197.google.com with SMTP id
 d75a77b69052e-4ed6ff3de05so49599431cf.3
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 23: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: bf1a05bb-c6ad-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763710998;
	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=UaRrR/bSI9ifC9leQ59k3dsXaJNuvD/OvOK7ugPKPuQ=;
	b=GPltHw1dgFf9BLHPWOjuQktCYFUWiXgMTMyQQb9r5rJuMecy1Mlrxm0ADbErYh2NOD1Q5p
	3ZIIoEnISpQ5PeWdvzQHzQGQR1nLuXZYImx2lQyUBRoW/V5W7MAJL11+MBhK8Dy5cw7p8Q
	rdwaiCv0b6Q1KMtnHikHkBpmDlfEEkw=
X-MC-Unique: FO5fd91IOaGCRozr1PkAyw-1
X-Mimecast-MFC-AGG-ID: FO5fd91IOaGCRozr1PkAyw_1763710996
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763710996; x=1764315796;
        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=UaRrR/bSI9ifC9leQ59k3dsXaJNuvD/OvOK7ugPKPuQ=;
        b=ZudeOENtKw34Kx4+n/CaIK/mMz4g1aVX7cJtIA8QIANH1sJ4oPX8PhxQkNLFSXOFmE
         fs6qdwNO5pDI3GfZORX1UQdo42WtzRuYWPHT/pwByCtKLmGxyGiQ4R4hXJAbzDB3FUza
         lxVsPKUWGoScO1xOaewRN2xXdMpUBU2mGkgRtRcRRa6Gp/NgbdDFzz4jgUzThVfIb7w5
         yKccxPYOJo4Og1Rzrat8Z0ypWHjJI4fLMpd9pOyE/WgmCBsl5kkaBtJGTf37TlMSKhfc
         gAUiuELTQ17HBWm0uTwuCdbRqYRmiKLZGflPjjNl8ujv7dOt0Kni0Es/76r1fBbYGpeZ
         MmOg==
X-Forwarded-Encrypted: i=1; AJvYcCWIkc9038ZcG9Y44g8hy9dIwJ801hZh8NpOWc/G5whwiDrux28f3T82TtD4ZTHc7yIItWymK+vrQvc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yya/VL/8M+svFj4Iz6bP7adZ9kAJ4q2kQdAcqE8+l3qVT4Tfh4H
	P33KKRK9V/lSTTDAP/e3Q+vos1aVhIwDFU4h+V/STHo9IDsNjTd+7cR4jqpVdBpoODfLDbwY+mQ
	a8IfgJrGYmQOU9j4W1lwehpwU3BPt56qh4W9SKkVTdFYIJxPSNeYGerq7l6XmuMqFgxutTbkzzV
	m7q/9OMKjkKry9UjTm7hpN/fU9O2Ehp1dIbpRGRONOD9o=
X-Gm-Gg: ASbGncusvUKYqMgDri/wIyJjmUUQi99XEr0QXBPKQ/jbZ3okHRW+ALelswAAMVDeicB
	iDYV/ana7+twqq1jJmcAy5wXeF6ery72SNsOHuX4uYpQvO45wvOaaEk4xpDSuj9sfC1pImJgVkq
	5BFxe//HU7ipokYg4/LMLs7AUN880ZaUTzrmkDEfR8xOGrifpbOG32MP3TVyrAQeQNZc6Y
X-Received: by 2002:a05:622a:199b:b0:4ed:ae38:6592 with SMTP id d75a77b69052e-4ee589409f9mr19048271cf.79.1763710996257;
        Thu, 20 Nov 2025 23:43:16 -0800 (PST)
X-Google-Smtp-Source: AGHT+IETP0cHXZT3TQIN11rmLao5OEegQ9+57ZsItOyprELi91KV6ANui+OB+j0cbxmwyqlkyxoABL6wqmfFCHzvktk=
X-Received: by 2002:a05:622a:199b:b0:4ed:ae38:6592 with SMTP id
 d75a77b69052e-4ee589409f9mr19047861cf.79.1763710995835; Thu, 20 Nov 2025
 23:43:15 -0800 (PST)
MIME-Version: 1.0
References: <20251120191339.756429-1-armbru@redhat.com> <20251120191339.756429-14-armbru@redhat.com>
In-Reply-To: <20251120191339.756429-14-armbru@redhat.com>
From: Kostiantyn Kostiuk <kkostiuk@redhat.com>
Date: Fri, 21 Nov 2025 09:43:04 +0200
X-Gm-Features: AWmQ_bmdKUn6ydK6C5Q1jdfMet69rDLS9kOEgzlcXdE8rv6sRstOoduZH2Z6aYY
Message-ID: <CAPMcbCqzp9BwUvRF1kt1CoeftAL3jiVWoWE_3DyrkBx+dyKabQ@mail.gmail.com>
Subject: Re: [PATCH 13/14] qga/commands-win32: Use error_setg_win32() for
 better error messages
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, arei.gonglei@huawei.com, pizhenwei@bytedance.com, 
	alistair.francis@wdc.com, stefanb@linux.vnet.ibm.com, kwolf@redhat.com, 
	hreitz@redhat.com, sw@weilnetz.de, qemu_oss@crudebyte.com, groug@kaod.org, 
	mst@redhat.com, imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com, 
	shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com, 
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org, 
	edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com, jag.raman@oracle.com, 
	sgarzare@redhat.com, pbonzini@redhat.com, fam@euphon.net, philmd@linaro.org, 
	alex@shazbot.org, clg@redhat.com, peterx@redhat.com, farosas@suse.de, 
	lizhijian@fujitsu.com, dave@treblig.org, jasowang@redhat.com, 
	samuel.thibault@ens-lyon.org, michael.roth@amd.com, zhao1.liu@intel.com, 
	mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com, 
	liwei1518@gmail.com, dbarboza@ventanamicro.com, zhiwei_liu@linux.alibaba.com, 
	marcandre.lureau@redhat.com, qemu-block@nongnu.org, qemu-ppc@nongnu.org, 
	xen-devel@lists.xenproject.org, kvm@vger.kernel.org, qemu-riscv@nongnu.org
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: Pr_SPKQV_tUXlLA10l_zj2DuIfMvS5rRh1wWBlKMvIo_1763710996
X-Mimecast-Originator: redhat.com
Content-Type: multipart/alternative; boundary="00000000000064bbee064415f7a2"

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

Reviewed-by: Kostiantyn Kostiuk <kkostiuk@redhat.com>

On Thu, Nov 20, 2025 at 9:14=E2=80=AFPM Markus Armbruster <armbru@redhat.co=
m> wrote:

> We include numeric GetLastError() codes in error messages in a few
> places, like this:
>
>     error_setg(errp, "GRIPE: %d", (int)GetLastError());
>
> Show text instead, like this:
>
>     error_setg_win32(errp, GetLastError(), "GRIPE");
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  qga/commands-win32.c | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/qga/commands-win32.c b/qga/commands-win32.c
> index acc2c11589..0fd0c966e4 100644
> --- a/qga/commands-win32.c
> +++ b/qga/commands-win32.c
> @@ -1798,8 +1798,8 @@ void qmp_guest_set_time(bool has_time, int64_t
> time_ns, Error **errp)
>      tf.dwHighDateTime =3D (DWORD) (time >> 32);
>
>      if (!FileTimeToSystemTime(&tf, &ts)) {
> -        error_setg(errp, "Failed to convert system time %d",
> -                   (int)GetLastError());
> +        error_setg_win32(errp, GetLastError(),
> +                         "Failed to convert system time");
>          return;
>      }
>
> @@ -1810,7 +1810,8 @@ void qmp_guest_set_time(bool has_time, int64_t
> time_ns, Error **errp)
>      }
>
>      if (!SetSystemTime(&ts)) {
> -        error_setg(errp, "Failed to set time to guest: %d",
> (int)GetLastError());
> +        error_setg_win32(errp, GetLastError(),
> +                         "Failed to set time to guest");
>          return;
>      }
>  }
> @@ -1834,13 +1835,12 @@ GuestLogicalProcessorList
> *qmp_guest_get_vcpus(Error **errp)
>          (length > sizeof(SYSTEM_LOGICAL_PROCESSOR_INFORMATION))) {
>          ptr =3D pslpi =3D g_malloc0(length);
>          if (GetLogicalProcessorInformation(pslpi, &length) =3D=3D FALSE)=
 {
> -            error_setg(&local_err, "Failed to get processor information:
> %d",
> -                       (int)GetLastError());
> +            error_setg_win32(&local_err, GetLastError(),
> +                             "Failed to get processor information");
>          }
>      } else {
> -        error_setg(&local_err,
> -                   "Failed to get processor information buffer length:
> %d",
> -                   (int)GetLastError());
> +        error_setg_win32(&local_err, GetLastError(),
> +                         "Failed to get processor information buffer
> length");
>      }
>
>      while ((local_err =3D=3D NULL) && (length > 0)) {
> --
> 2.49.0
>
>

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

<div dir=3D"ltr">Reviewed-by: Kostiantyn Kostiuk &lt;<a href=3D"mailto:kkos=
tiuk@redhat.com" target=3D"_blank">kkostiuk@redhat.com</a>&gt;</div><br><di=
v class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" class=3D"gma=
il_attr">On Thu, Nov 20, 2025 at 9:14=E2=80=AFPM Markus Armbruster &lt;<a h=
ref=3D"mailto:armbru@redhat.com">armbru@redhat.com</a>&gt; wrote:<br></div>=
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left:1px solid rgb(204,204,204);padding-left:1ex">We include numeric GetLas=
tError() codes in error messages in a few<br>
places, like this:<br>
<br>
=C2=A0 =C2=A0 error_setg(errp, &quot;GRIPE: %d&quot;, (int)GetLastError());=
<br>
<br>
Show text instead, like this:<br>
<br>
=C2=A0 =C2=A0 error_setg_win32(errp, GetLastError(), &quot;GRIPE&quot;);<br=
>
<br>
Signed-off-by: Markus Armbruster &lt;<a href=3D"mailto:armbru@redhat.com" t=
arget=3D"_blank">armbru@redhat.com</a>&gt;<br>
---<br>
=C2=A0qga/commands-win32.c | 16 ++++++++--------<br>
=C2=A01 file changed, 8 insertions(+), 8 deletions(-)<br>
<br>
diff --git a/qga/commands-win32.c b/qga/commands-win32.c<br>
index acc2c11589..0fd0c966e4 100644<br>
--- a/qga/commands-win32.c<br>
+++ b/qga/commands-win32.c<br>
@@ -1798,8 +1798,8 @@ void qmp_guest_set_time(bool has_time, int64_t time_n=
s, Error **errp)<br>
=C2=A0 =C2=A0 =C2=A0tf.dwHighDateTime =3D (DWORD) (time &gt;&gt; 32);<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (!FileTimeToSystemTime(&amp;tf, &amp;ts)) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 error_setg(errp, &quot;Failed to convert syste=
m time %d&quot;,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(int)=
GetLastError());<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 error_setg_win32(errp, GetLastError(),<br>
+=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&quot;Failed to convert system time&quot;);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
@@ -1810,7 +1810,8 @@ void qmp_guest_set_time(bool has_time, int64_t time_n=
s, Error **errp)<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0if (!SetSystemTime(&amp;ts)) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 error_setg(errp, &quot;Failed to set time to g=
uest: %d&quot;, (int)GetLastError());<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 error_setg_win32(errp, GetLastError(),<br>
+=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&quot;Failed to set time to guest&quot;);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0}<br>
@@ -1834,13 +1835,12 @@ GuestLogicalProcessorList *qmp_guest_get_vcpus(Erro=
r **errp)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(length &gt; sizeof(SYSTEM_LOGICAL_PROCES=
SOR_INFORMATION))) {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ptr =3D pslpi =3D g_malloc0(length);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (GetLogicalProcessorInformation(pslpi,=
 &amp;length) =3D=3D FALSE) {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error_setg(&amp;local_err, &quot=
;Failed to get processor information: %d&quot;,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0(int)GetLastError());<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error_setg_win32(&amp;local_err,=
 GetLastError(),<br>
+=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&quot;Failed to get processor information&qu=
ot;);<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0} else {<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 error_setg(&amp;local_err,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&quot=
;Failed to get processor information buffer length: %d&quot;,<br>
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(int)=
GetLastError());<br>
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 error_setg_win32(&amp;local_err, GetLastError(=
),<br>
+=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&quot;Failed to get processor information buffer length&qu=
ot;);<br>
=C2=A0 =C2=A0 =C2=A0}<br>
<br>
=C2=A0 =C2=A0 =C2=A0while ((local_err =3D=3D NULL) &amp;&amp; (length &gt; =
0)) {<br>
-- <br>
2.49.0<br>
<br>
</blockquote></div>

--00000000000064bbee064415f7a2--



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 07:48:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 07:48:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168287.1494336 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMLsn-0004K6-4g; Fri, 21 Nov 2025 07:48:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168287.1494336; Fri, 21 Nov 2025 07:48:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMLsn-0004Jz-22; Fri, 21 Nov 2025 07:48:41 +0000
Received: by outflank-mailman (input) for mailman id 1168287;
 Fri, 21 Nov 2025 07:48: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMLsk-0004J2-Uv
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 07:48:39 +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 7c8ca6ee-c6ae-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 08:48:37 +0100 (CET)
Received: from MW4PR03CA0018.namprd03.prod.outlook.com (2603:10b6:303:8f::23)
 by MW5PR12MB5681.namprd12.prod.outlook.com (2603:10b6:303:19e::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Fri, 21 Nov
 2025 07:48:32 +0000
Received: from CO1PEPF000075F1.namprd03.prod.outlook.com
 (2603:10b6:303:8f:cafe::23) by MW4PR03CA0018.outlook.office365.com
 (2603:10b6:303:8f::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.11 via Frontend Transport; Fri,
 21 Nov 2025 07:48:24 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF000075F1.mail.protection.outlook.com (10.167.249.40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Fri, 21 Nov 2025 07:48:31 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 20 Nov 2025 23:48:27 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7c8ca6ee-c6ae-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PzgBVcFQNK33NTaHi1MCgRJY4c9zTYQsXuib7CZbfk/TCTB3EHcyuogPVMQI8Pkx59/G+n3cXxY3d71cV9Ov/UBVc34DKNtrVaKWRJ5hrnLKqTFYkuDlu9WP+PPxTd1XotRt7KZeshXr8QMWpW2gNZBQCb4D1gQk8UD+lX4WhGakNU2JZMzT3fEEp9XfLdP7Q6wvuV8bCEOSJ8OJW9ClOoxP+63y5rtfgjfc2cD0yExabVcUkQSkUws9S1H+3qlEr3lh1JHqC/kDRb1uG1/73H5ggnt9t/4+sJtg2ZJ0guvic4riGe0iZF/LFGrOYmRiJ0sfSK+ESUGI74PNQamAuQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MIpRUWtsOO2y93Jwaofsg2E6M3iwctm1+4j0xCcGYgs=;
 b=ZtKq1lCqX2K3e5bsyC3iFsM8N1Q/7e8Up+dlH8eD51K7RjgLq+9YUAAc1OcowC1mG2fsY7RptMFnucuq3WkMqtNIfDF2C2GUMFqGyZkomnqMdOQwJ1rUfLcKNhDurn7/J8csVFx94dRwydOt1JDId/Uj1b3iogiiaEB2l/64BYU3bRkhsE8+UfcR4CZTeH+eYqzcfNgNoGE/fyW/VXKDo/As+/46Hrpei9csEjdVFMLMT5j5sgrVgupmouYqhGIdGpLN/X+yMlD9NKg2N/L8cJV115DUSTHsbcQuzEj+Mq3zU/4IgGvGz87A1/RJJI9ytFvZi04QiA6wBUR5NtbT4w==
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=MIpRUWtsOO2y93Jwaofsg2E6M3iwctm1+4j0xCcGYgs=;
 b=vMFFkzTjxrI4ZYxyMNdOmBG6TCgBe9m0Ft03MqickXBmcUkgLTxlBpnfyFlvFaU6K5g8TxcA9CkOUkYa6Ac6GvBE2c2GMHQOKVfS2L8ULGcnvpW207DY9AFci1Q3eSJPWzWfnrYAMPhj+KPjt5X0ENDtezKsgDkYPuagDZ26Ibo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <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>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Tamas K Lengyel <tamas@tklengyel.com>, "Alexandru
 Isaila" <aisaila@bitdefender.com>, Petre Pircalabu
	<ppircalabu@bitdefender.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel
	<michal.orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>
Subject: [PATCH v2 0/7] consolidate vm event subsystem
Date: Fri, 21 Nov 2025 15:47:56 +0800
Message-ID: <20251121074803.312568-1-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CO1PEPF000075F1:EE_|MW5PR12MB5681:EE_
X-MS-Office365-Filtering-Correlation-Id: a00d0514-6b0c-4a12-5326-08de28d25e18
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|7416014|1800799024|376014|82310400026|7053199007|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?NfO8DF7IrZNMzpmdBYJW1E4IyTIkGA7fPWBKfPxbcjnkezYGjJd5xzFfyzi+?=
 =?us-ascii?Q?omhYZQzr0uZHi2ik2DJO6eRbVHNuutJ1OcttDh+t+7LJ7ycq9IXao8sSLo9U?=
 =?us-ascii?Q?QipjeAxkVyXIQP81fjLgGGLf5rDyj3uxht26fdygXkO8LHzWnXHlnWuLbetn?=
 =?us-ascii?Q?1oXTEcIIm8TWV93MAWQW8AP+GP2MeDgRsiGtYvFGzbNbd6q+ZMZOb90buZiC?=
 =?us-ascii?Q?aNMP0FfBPC3Ok0Znd4M0JdNTdh7jeJxV8sInqcwJBxHXu9ObUZcLFcEVxk0b?=
 =?us-ascii?Q?A9v6bFp0ZcWLzQKQxeXfNNfVYOPkDkvx64BzENRc2xqIhmWXzak190rA7MIB?=
 =?us-ascii?Q?Rcu4AHMuckiQ2PRXuzJtCbkQzg1vTsFFFvQgh9r3POE7v1//u3ulGCN1S8JZ?=
 =?us-ascii?Q?6RcSwKZs+lFIly9fs/QFBP0Sf7Yw0+nQfcB3eVPmBDIZuJbsbx7BUPlJoZdW?=
 =?us-ascii?Q?g5gPPTXWbcfF/kUmrq2P0hffb3+/dl2V8VEz11MBvh0MwO9enkqdZFT6GpxB?=
 =?us-ascii?Q?uJOM63nBoXBbiO1XflMYh9cpjkaNgqPMaPNmevbtroMOoEdKZ/J3Ky1jpp3x?=
 =?us-ascii?Q?+M059MZqD1dLxbgt7GU1Z+KO8DVtK5wJilHmZ4VjCLmySl7KaZ6dEzSppHMx?=
 =?us-ascii?Q?VtwCqsadec5i91GeOLyiaj9myPUNyvdqQo2/Aj930a5ZpMvgfdvWtSQFbJ/3?=
 =?us-ascii?Q?dIcLj6risZlN9oaFWbEtlPb1FEUYpmzJ/tmIVANFL5IyrSg0BOSmQwljahSs?=
 =?us-ascii?Q?x1A2WYpSi7kKjlgq4XcSgNrx616g2Y/4rjSr5/V5GhrnRgjVUvNenxHlpRiN?=
 =?us-ascii?Q?xB78NRhAA2tLQlT/N64L7ikW1zVLVBFXuafPJfVldRraxT5zXAexZJqi+IXR?=
 =?us-ascii?Q?y/ZNnEb3rwuk646TCQJ7tmnAxR9D9O69JbQTsT5byo+D9caVxaErUtGwy4Fu?=
 =?us-ascii?Q?9bOEKk21Ebc8ehVcpgOTy5+5O4u8RVlLPfAoP5y/wOOC8lKQre8nSrPWNVNV?=
 =?us-ascii?Q?gSJnu68qU95frYoxdRFPzn+SD4PIueZKA7zy0YGw9RrEaQhiEHeblhVDkgpi?=
 =?us-ascii?Q?RjL//55FX2r6eCnEagng3uQaUKuFnlqhrSiNYXltVPE8gJujZHOeFxaVDz7t?=
 =?us-ascii?Q?PM1tJvY/S4eTiB36HIUhvsSRC/X5QV7Vv0C7yOwTfioCrDZ7bdHBxR2PVbxn?=
 =?us-ascii?Q?JQ+Euv+1dLikZEk+TJJ6gCMxELkjiZBY1w0snQTgPjEN77Tn3FKd2bu/SA8z?=
 =?us-ascii?Q?b0QfmSbH/Hgpf8RsuU3JtNC4MBOA62KII64/gFL/rD0TCFqNnBwNX8vlvvdr?=
 =?us-ascii?Q?G9VJUwUBHc50yL53GGtTCEzFaGRwMCatD809H7RyuB5fXkwXS1XxFq32T3Q6?=
 =?us-ascii?Q?ie+Qo1kDtoNB0IiooWiBEaSlESWlvATIbnCxlk7C/Tz1N/llucsp2x//tc94?=
 =?us-ascii?Q?dFy098C01g+Kvg33K0JXITXW+pk27fGok5YJ5/R5LGwvqGCTc+DUVnDT/1BH?=
 =?us-ascii?Q?CQWuqqxzI7Cu/0o=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)(7416014)(1800799024)(376014)(82310400026)(7053199007)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 07:48:31.8774
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a00d0514-6b0c-4a12-5326-08de28d25e18
X-MS-Exchange-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:
	CO1PEPF000075F1.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR12MB5681

This patch serie originates from "Disable domctl-op via CONFIG_MGMT_HYPERCALLS"
[1], and focuses on consolidating vm event subsystem (i.e. VM_EVENT), and its
derived features, like memory paging, etc.

[1] https://www.mail-archive.com/xen-devel@lists.xenproject.org/msg200843.html

Penny Zheng (7):
  xen/x86: move declaration from mem_access.h to altp2m.h
  xen/xsm: wrap xsm_vm_event_control() with CONFIG_VM_EVENT
  x86/vm_event: introduce vm_event_is_enabled()
  x86/monitor: wrap monitor_op under CONFIG_VM_EVENT
  xen/p2m: move xenmem_access_to_p2m_access() to common p2m.c
  xen/mem_access: wrap memory access when VM_EVENT=n
  xen/vm_event: consolidate CONFIG_VM_EVENT

 xen/arch/x86/Makefile                 |  2 +-
 xen/arch/x86/hvm/Kconfig              |  1 -
 xen/arch/x86/hvm/Makefile             |  4 +-
 xen/arch/x86/hvm/emulate.c            | 67 ++++++++++++------------
 xen/arch/x86/hvm/hvm.c                | 49 +++++++++++++++---
 xen/arch/x86/hvm/svm/intr.c           |  2 +-
 xen/arch/x86/hvm/svm/svm.c            | 54 ++++++++++++--------
 xen/arch/x86/hvm/vmx/intr.c           |  2 +-
 xen/arch/x86/hvm/vmx/vmx.c            | 73 ++++++++++++++++++---------
 xen/arch/x86/include/asm/altp2m.h     | 10 ++++
 xen/arch/x86/include/asm/hvm/hvm.h    | 18 ++++---
 xen/arch/x86/include/asm/mem_access.h | 20 ++++----
 xen/arch/x86/include/asm/monitor.h    |  9 ++++
 xen/arch/x86/include/asm/vm_event.h   |  5 ++
 xen/arch/x86/mm/mem_access.c          | 36 -------------
 xen/arch/x86/mm/mem_sharing.c         |  3 ++
 xen/arch/x86/mm/p2m.c                 | 40 +++++++++++++++
 xen/common/Kconfig                    |  7 +--
 xen/include/xen/mem_access.h          |  5 --
 xen/include/xen/p2m-common.h          |  3 ++
 xen/include/xen/vm_event.h            |  7 +++
 xen/include/xsm/dummy.h               |  2 +-
 xen/include/xsm/xsm.h                 |  4 +-
 xen/xsm/dummy.c                       |  2 +-
 xen/xsm/flask/hooks.c                 |  4 +-
 25 files changed, 270 insertions(+), 159 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 07:48:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 07:48:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168289.1494347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMLsp-0004YU-Dv; Fri, 21 Nov 2025 07:48:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168289.1494347; Fri, 21 Nov 2025 07: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 1vMLsp-0004YL-9Q; Fri, 21 Nov 2025 07:48:43 +0000
Received: by outflank-mailman (input) for mailman id 1168289;
 Fri, 21 Nov 2025 07:48: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMLso-0004J2-RM
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 07:48:42 +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 7fbaa28d-c6ae-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 08:48:41 +0100 (CET)
Received: from MW4PR03CA0025.namprd03.prod.outlook.com (2603:10b6:303:8f::30)
 by SA3PR12MB9090.namprd12.prod.outlook.com (2603:10b6:806:397::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Fri, 21 Nov
 2025 07:48:36 +0000
Received: from CO1PEPF000075F1.namprd03.prod.outlook.com
 (2603:10b6:303:8f:cafe::73) by MW4PR03CA0025.outlook.office365.com
 (2603:10b6:303:8f::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.11 via Frontend Transport; Fri,
 21 Nov 2025 07:48:30 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF000075F1.mail.protection.outlook.com (10.167.249.40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Fri, 21 Nov 2025 07:48:36 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 20 Nov 2025 23:48:34 -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: 7fbaa28d-c6ae-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jDpnBDmob7LF2Lo0F6y2+G+qd/NnCDIJFqCKHDlYONpN6Dbwc3KsfIBtBJgI1EJ19uqVRHC1Hl4Mc/N6UGDoAsZG0QlRlkrL0c5XgrB30Zq05dbN+cqxR/HAv+iIETWLr4QG3jrBRB4aVKsuOGQXVSD+XrZPRoX4gD4I5vPVJ/KS1LEFZIec/HmTcIbqq3/nij5+pcJD/3mp8mfeiuGht4DynLBsafi/zky3pDxACAKx+rdpmi7Ksn3vg8VX1TzT7T+altkzXsG6hkfgv186CASdR09EHPl3cHC1B2lvxq1cdWem93qnZZuynzLKkLGvOUQoSoH1zpy+YA9csX3Qnw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iM1EasxDmaVLEKtogRwBM88i4Ro0GcHMHCOrhVn/OfY=;
 b=OTZa9HwiBZKbr/7qbjmlwIyGv4CoYONAAPSiBLHLKHX6n2Ukzr6J6e6yl+hsMlxEZ7vR00H7wPeAQ4f0zHf7xJpLiS4D3752aDL2KYrWnfG92jfPvpU6QtubcTS0SoTX/2nh1e1D5sr5zIUV9S0DSqbO37wGdQlwnkl1DnbqPEL7q8S9Y63fShLFM122LbbAF9wjj8qtnrv7yGBU5Paj/GR6sqN4ZuZjvl7qVdCozKiIQNIeR1SXaBBiGGOc2pA/VULvpOycOg7+I+oqRZS1t29kw7io0X2vfFf9nq0G8yuAZygE7g7K4WBbE+7cqA7pOIXEgR0+3VxW7RbypKMSYw==
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=iM1EasxDmaVLEKtogRwBM88i4Ro0GcHMHCOrhVn/OfY=;
 b=b8x7gmdyDoTuD+OZGm0Axa0sKuaZTa6u9/IFb20ycUZ4rjmrX8hGBsBsPXJ7Jh4nP8Z+0ERgOISSnjUEPTUZlDSxnW1589s2cDg0ayV7//Ot97FpYJPe2ZfRNoc38OLvoQA2OlN7cwBD+8Kbv5D/AVkvUpLeiKy5WL7oytMXojU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 2/7] xen/xsm: wrap xsm_vm_event_control() with CONFIG_VM_EVENT
Date: Fri, 21 Nov 2025 15:47:58 +0800
Message-ID: <20251121074803.312568-3-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121074803.312568-1-Penny.Zheng@amd.com>
References: <20251121074803.312568-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CO1PEPF000075F1:EE_|SA3PR12MB9090:EE_
X-MS-Office365-Filtering-Correlation-Id: 55f42e25-e323-4556-1dc6-08de28d260dd
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?J9SLH9u7psDLoOgjD9Iukx3xCWYVfVZlAsyf4thFpQGgxAebCNGuZIx35CsS?=
 =?us-ascii?Q?aNUkEyTB/QdXsJkf+FvC7HQegKrYqwTL9/rQcxbYuI5SY77WwMJ+3DIdOfXr?=
 =?us-ascii?Q?ULsv2lwPQ5UPbOO5u+Q4Km1K0+gfaYSAvaVRvmtdw7Pf/TevCYKUlHyYyKif?=
 =?us-ascii?Q?rE7lP0bVjvfEApicwtzQ2nxT+BMiNQEjUgtukuti1Xb0KP8BzoSxn9dnQGIM?=
 =?us-ascii?Q?Hs/BN5pZybxHRMePFkcjKYSkIrMMHlt5euNRckFYp4aSYKkRsAzxSLm2otlu?=
 =?us-ascii?Q?mU8vCTpjhnzm6YMGWI3j8rDaBqY1LJrq9a9rUw68bLc/BPVN2T3sxLcvlHPu?=
 =?us-ascii?Q?LRMqeluOqNyqvtQYkEDMd4Lk5d28PpKofApG2qaiJ0tafeckB7z19u3PJc/E?=
 =?us-ascii?Q?9lD4On3WFvZW9wI59SFLDUncQHrteCHAaNd95ByUZn6JTepZ3ujjLLnH1KVN?=
 =?us-ascii?Q?j63gJhZqgJZbDY8TlsHMMZCEbIxsvsSakEPBJmwoikxQIPyKQz1Rz8KK06EP?=
 =?us-ascii?Q?25ud3xcds2/XWdSRGswgzg9+IEvXB+r8b/sZGQV4VSBrWyclKoHSKnfzwu7E?=
 =?us-ascii?Q?iN8z98/laDWrbpxMw1Y2HWdPi1r95Ad927crjC5JJWoZfydjmNnLjnzw3SJt?=
 =?us-ascii?Q?AcDEUu6J41Bz8IV3TiM94i5IhfmCLYA+TxRTQB6NghDJ3YBncI04OnZAjWL/?=
 =?us-ascii?Q?0EqERf/N6XmnBeBGY0IKC2WMctas+jSmBLw+0qKif8FFDLtgPUX9Bt08bZ/8?=
 =?us-ascii?Q?X/ku8CGYCTtzvWGj99lKLGOmiAd1aioXkAjI03zNRb3BIlfciegoOC0KJeeO?=
 =?us-ascii?Q?H2vzw31+rYmSnYla6PqHa+k2OlADCE6076JH7wq+RP6bLdjMFQoo3Hl2v9ma?=
 =?us-ascii?Q?aZQqhC6POV9cca0fViSnnoaJp5l/eH2+EkLEJxRtMimzDxrtnBdNFBxvRqmH?=
 =?us-ascii?Q?8jplwf2y1mD2FCCvoLV2vwHCeTTwgk8w3vTBhdmbv/xK1QSyH8oZTck2tbHj?=
 =?us-ascii?Q?fWo5oNGmdU1eSRecLLAzOoQ/bewSAqvJ9qIHPsnRlz5YFiM1lYpG8pfYFEyn?=
 =?us-ascii?Q?g3mTKbYYEQFSOroZEvtSrY/a+mtrk4mAeE1YPJjiYgDgmzyzS+N+fueHIEvP?=
 =?us-ascii?Q?BsD7tKVdI86mBCgS3+n3JNo612I7FrPny1FVi63ibcTZjXnb0yLgzLFpm8Uv?=
 =?us-ascii?Q?bLdtFpeME4kBybFxuOJe6nH0dBo6SCndP9GG4N45lXxSZNkqfzmip8KTZrHo?=
 =?us-ascii?Q?1Zmi4IsuuAB1r6BhPuVDmPFpD9Wn6PPLWMM5dUAWVyAf8cIOOf9I4PpVH/WW?=
 =?us-ascii?Q?ruMvOf8sMbalq7Z8hCCjeLP0OVfC+fD+jAfDHY4yos/YUfMbcS1vmnqvkEol?=
 =?us-ascii?Q?9k+fCl98+KmV95ibqh28tjLfZa/Fgd9Ues0Z4y97VsADG3nf6ING/SO2vdIi?=
 =?us-ascii?Q?5Fzuno2YN87FqMtCzKNMXqYBdfpg3/xxisx4mPK8jUl4srTDT4VX1B425EWr?=
 =?us-ascii?Q?1f65y91NCfHqZXXyLkq+Or1NXyJZz2DIMhym2eW/CDc/2PElVWjqbDctyp0/?=
 =?us-ascii?Q?1Qi7nBOLLfcTphzWGxM=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 07:48:36.5207
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 55f42e25-e323-4556-1dc6-08de28d260dd
X-MS-Exchange-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:
	CO1PEPF000075F1.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB9090

Function xsm_vm_event_control() is only invoked under CONFIG_VM_EVENT, so
it shall be wrapped with it, otherwiae it will become unreachable when
VM_EVENT=n and hence violating Misra rule 2.1.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v1 -> v2:
- new commit
---
 xen/include/xsm/dummy.h | 2 +-
 xen/include/xsm/xsm.h   | 4 ++--
 xen/xsm/dummy.c         | 2 +-
 xen/xsm/flask/hooks.c   | 4 ++--
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index 12792c3a43..e801dbcdba 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -640,6 +640,7 @@ static XSM_INLINE int cf_check xsm_hvm_altp2mhvm_op(
     }
 }
 
+#ifdef CONFIG_VM_EVENT
 static XSM_INLINE int cf_check xsm_vm_event_control(
     XSM_DEFAULT_ARG struct domain *d, int mode, int op)
 {
@@ -647,7 +648,6 @@ static XSM_INLINE int cf_check xsm_vm_event_control(
     return xsm_default_action(action, current->domain, d);
 }
 
-#ifdef CONFIG_VM_EVENT
 static XSM_INLINE int cf_check xsm_mem_access(XSM_DEFAULT_ARG struct domain *d)
 {
     XSM_ASSERT_ACTION(XSM_DM_PRIV);
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 9a23d2827c..d9e5c831f3 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -155,9 +155,9 @@ struct xsm_ops {
     int (*hvm_altp2mhvm_op)(struct domain *d, uint64_t mode, uint32_t op);
     int (*get_vnumainfo)(struct domain *d);
 
+#ifdef CONFIG_VM_EVENT
     int (*vm_event_control)(struct domain *d, int mode, int op);
 
-#ifdef CONFIG_VM_EVENT
     int (*mem_access)(struct domain *d);
 #endif
 
@@ -649,13 +649,13 @@ static inline int xsm_get_vnumainfo(xsm_default_t def, struct domain *d)
     return alternative_call(xsm_ops.get_vnumainfo, d);
 }
 
+#ifdef CONFIG_VM_EVENT
 static inline int xsm_vm_event_control(
     xsm_default_t def, struct domain *d, int mode, int op)
 {
     return alternative_call(xsm_ops.vm_event_control, d, mode, op);
 }
 
-#ifdef CONFIG_VM_EVENT
 static inline int xsm_mem_access(xsm_default_t def, struct domain *d)
 {
     return alternative_call(xsm_ops.mem_access, d);
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 8b7e01b506..96dc82ac2e 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -115,9 +115,9 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .remove_from_physmap           = xsm_remove_from_physmap,
     .map_gmfn_foreign              = xsm_map_gmfn_foreign,
 
+#ifdef CONFIG_VM_EVENT
     .vm_event_control              = xsm_vm_event_control,
 
-#ifdef CONFIG_VM_EVENT
     .mem_access                    = xsm_mem_access,
 #endif
 
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index b0308e1b26..9f3915617c 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1365,12 +1365,12 @@ static int cf_check flask_hvm_altp2mhvm_op(struct domain *d, uint64_t mode, uint
     return current_has_perm(d, SECCLASS_HVM, HVM__ALTP2MHVM_OP);
 }
 
+#ifdef CONFIG_VM_EVENT
 static int cf_check flask_vm_event_control(struct domain *d, int mode, int op)
 {
     return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__VM_EVENT);
 }
 
-#ifdef CONFIG_VM_EVENT
 static int cf_check flask_mem_access(struct domain *d)
 {
     return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__MEM_ACCESS);
@@ -1967,9 +1967,9 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .do_xsm_op = do_flask_op,
     .get_vnumainfo = flask_get_vnumainfo,
 
+#ifdef CONFIG_VM_EVENT
     .vm_event_control = flask_vm_event_control,
 
-#ifdef CONFIG_VM_EVENT
     .mem_access = flask_mem_access,
 #endif
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 07:48:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 07:48:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168290.1494357 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMLsr-0004oc-Ls; Fri, 21 Nov 2025 07:48:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168290.1494357; Fri, 21 Nov 2025 07:48:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMLsr-0004oT-Hc; Fri, 21 Nov 2025 07:48:45 +0000
Received: by outflank-mailman (input) for mailman id 1168290;
 Fri, 21 Nov 2025 07:48:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMLsq-0004hA-4v
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 07:48:44 +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 7e4157be-c6ae-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 08:48:41 +0100 (CET)
Received: from MW4PR03CA0027.namprd03.prod.outlook.com (2603:10b6:303:8f::32)
 by MN2PR12MB4407.namprd12.prod.outlook.com (2603:10b6:208:260::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Fri, 21 Nov
 2025 07:48:36 +0000
Received: from CO1PEPF000075F1.namprd03.prod.outlook.com
 (2603:10b6:303:8f:cafe::4c) by MW4PR03CA0027.outlook.office365.com
 (2603:10b6:303:8f::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.11 via Frontend Transport; Fri,
 21 Nov 2025 07:48:32 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF000075F1.mail.protection.outlook.com (10.167.249.40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Fri, 21 Nov 2025 07:48:35 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 20 Nov 2025 23:48:31 -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: 7e4157be-c6ae-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=l9Pc2apTGTzE42f0uqPE7KHBIu/kxHT/F7Kc16cGKkhJFoICbdwR+1VxgD+tTXqwQpGKBnwdGN8GuRHg1dUESX3kjy1FH/Q34Yq5yAfmBO9pmT/d5OEwKDmmVQtN9+7I8YDhg8VN1ffmIP7g6gdkNjNB3xfDedRhpmjcF5CoKkcIoZ45qyNugY5/gQq6Wb3AprcdxtcUpem0RqHiZLu9YToNQooTflj2v7U5/ePchkjbXM+vdy5X40oQ9m8owUZGIKpfjUnTdjjg6YMjPH409/kyyl/CaWz5zxLHWFj285LCksVL3svXsYoZlD2+ZaFUwoJTbtparvBUKRaH2U9jWA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vrxm4Ssb4DNyh7hnIccW9NVrE+CVSNJj7c6CdihhrWg=;
 b=jW+YmBNB/dqV+w3f/KN/XYov+AazsG89PaonHdLEayZGL9k1J9N3SF+3AgJVDvZ6zL6Tm2zK7p37cdc3Ik+Q0FvPsdNNCBmzCHJQweFCPysAkwX73CA+liYNUHSWHWFLjoOIw57q6IterBmGjha9behwuCgtlFWw3hTzFNGdm1VqXQG01KUQJVvYfk7Xvd1MONzt1di8ZFToyuRMxkCXZh7zQXHfTqJqw364aoLm4QOy2S0Gq049KExzktP7goDSjd0fG98senKSJYqSeOh0JsuVw+ZdTQ5SUHYq2Qc2/hstQC4kIDyk3m5ZEKY1a1y2xC6EOUzX/4iBwqj7bawQmg==
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=vrxm4Ssb4DNyh7hnIccW9NVrE+CVSNJj7c6CdihhrWg=;
 b=2v+/cy+F75ERXnflTDW31anBNXl30/AVfy/L0ALzxefvDeF6Q1EQdb2nuBl4Tn00eQpIqa1XclNkAM0msPNGdmX5tTl9VrxWpl4N/xNoGNxtP4xlPmil6XzqD/PdRWsQJ6I4mtCUOFFC3RE9DFYEj2Mz7ITdXj75RJf4MVLziZI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <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>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Tamas K Lengyel <tamas@tklengyel.com>, "Alexandru
 Isaila" <aisaila@bitdefender.com>, Petre Pircalabu
	<ppircalabu@bitdefender.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH v2 1/7] xen/x86: move declaration from mem_access.h to altp2m.h
Date: Fri, 21 Nov 2025 15:47:57 +0800
Message-ID: <20251121074803.312568-2-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121074803.312568-1-Penny.Zheng@amd.com>
References: <20251121074803.312568-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CO1PEPF000075F1:EE_|MN2PR12MB4407:EE_
X-MS-Office365-Filtering-Correlation-Id: 80bbf2ca-c86c-492b-2928-08de28d2603d
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?1zDZeD/uAdChCptJvFLuhYdW45I/uDuMqNQonEygpPxB66OpaY8vPvzprBu5?=
 =?us-ascii?Q?OC77toWBXSZWYoG17DwUi/VStFbvR03s+Y5w9f++Sh30hgxkhKsaqDIpKw6b?=
 =?us-ascii?Q?dgjMNBZhy5O7ybPnrvNZwN7j7rNV375tfOg4QSkkGOLiVfuYhf8PQB4u4SCP?=
 =?us-ascii?Q?mlvjQ5i8HmcNJVN8+YNcBWGixaR5NULfqJEYP1A5iCxkr8ewd2ZosU1Mbb0g?=
 =?us-ascii?Q?t0SyY5m/4BfrEoIe4okRdUM1VA01OllXcwGI2NqIJ9kn9NbIjvCpRQPT2XXt?=
 =?us-ascii?Q?T7AhPgKMMkheoiK1eVmjWv4yfpdzOe8wED6JnV6kQJnS5po72MQ+/qsiE9RG?=
 =?us-ascii?Q?rjcUBbAt3KfovktkdzPoq3IqhS7B3eiF9bC/F1sngxTS/r/htvPR83e6LxG/?=
 =?us-ascii?Q?irOOtxYbf5oy0dPIfKu1qRV8BzmJXbQ8Cwq1wtXgN7KUQHVo4NQFTwpCw4tz?=
 =?us-ascii?Q?Cezku+Ny+5S98mP6JYJ5Isg9E6x2fdtDfnQecDzmcNV8QvbY4jWwt2UG4mAf?=
 =?us-ascii?Q?49Jj71IL50r4brFZYLqgDtlH0B5OsHEca8GlFCtK70j41uzev5A1frpC9bHJ?=
 =?us-ascii?Q?MUtLaL+JYWCCyX+Xc53ljAAFrUo8E+O8mEbw7tPWOEhQA7voEzW6pBC4sDng?=
 =?us-ascii?Q?PJt4OxmcgZHo94iK91GbGFkambgH3+adFfwHWJbib9mlX8uxTqxl8odIqOY9?=
 =?us-ascii?Q?nrtqC+AQqKANick0nngXwrR9jaYVJW13D9wr61ZptVVnd3nyiAwI9mabmHcM?=
 =?us-ascii?Q?gKMOaZbIM1WjBV60Ij/fLquyskYueteyoNEvsjQ9OvBdtc9nPkVlpNw0POFa?=
 =?us-ascii?Q?ZYvQh1uAN3HOmzJF6VKSKyO+CaFLe4QQ859botM6GOq8ANhmGqSpo0AWzJoq?=
 =?us-ascii?Q?wxJHPeax3Ujp3fE36b2R/NuzyZlfV29Yw5ba2uJBijeCgmsu2g87Qha0wQrn?=
 =?us-ascii?Q?hXP7BdrfUKGZewKR6bpyxf/aljdczUzErBXIV0Iq1ihzoJIXhvtfm5FU6Xw/?=
 =?us-ascii?Q?9Wq2cSKbIQ4Nx77eQLXgXAHlHZ83hcdzzvzYbki6txBeQCUPyBfNKRvYPlLh?=
 =?us-ascii?Q?U0FT6o8VV5h656yJrc6b+gi1bKPYF/0IdcDGR2u7QOjolxVjrt1gFLthYim3?=
 =?us-ascii?Q?rqe1V3ccSJObc8ng++oKthKWM5dHhbc9x4T/qZIYnM0hc60GHQMM8Yaj3XRg?=
 =?us-ascii?Q?FlhBWKbmG8Y8PGsBROy7cmMqft9cP8/pZAzFbRLO2iaoVhMMnbj60ntJZzvF?=
 =?us-ascii?Q?SiC4SVHqJBeDlCfB9bYZG49FxH8Mf+MOeuj7WdAyrR0KmDprta32EagpHz2J?=
 =?us-ascii?Q?EojNVPza9mgKnTxPz/GYUnu2hNWFUvgOGrZmFyCfa4axUxokJpXiCyZ4glel?=
 =?us-ascii?Q?XBgrn36eVxC0FR1uOn4b6bi5mKppKznZkNYQUsFs2Q+2RLNKKvdTA4JumGDc?=
 =?us-ascii?Q?tYDq6vs+tSEKL17dPKmxgFdViK8CEPhLvZFL9FTVdebRDD/Py+HrViLjEMs1?=
 =?us-ascii?Q?VmAbimYTBYtxTUzvjCQfTfI3ODR+Va8YLQYZlgQrNcIQxCO3lJIceChYPpL3?=
 =?us-ascii?Q?Oc5ScFOXk5NNTHOPpNc=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 07:48:35.4716
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 80bbf2ca-c86c-492b-2928-08de28d2603d
X-MS-Exchange-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:
	CO1PEPF000075F1.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4407

Memory access and ALTP2M are two seperate features, and each could be
controlled via VM_EVENT or ALTP2M. In order to avoid implicit declaration
when ALTP2M=y and VM_EVENT=n on compiling hvm.o/altp2m.o, we move declaration
of the following functions from <asm/mem_access.h> to <asm/altp2m.h>:
- p2m_set_suppress_ve
- p2m_set_suppress_ve_multi
- p2m_get_suppress_ve
Potential error on altp2m.c also breaks Misra Rule 8.4.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
 xen/arch/x86/include/asm/altp2m.h     | 10 ++++++++++
 xen/arch/x86/include/asm/mem_access.h | 10 ----------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/xen/arch/x86/include/asm/altp2m.h b/xen/arch/x86/include/asm/altp2m.h
index 8ecd74f363..9c1ac3cc26 100644
--- a/xen/arch/x86/include/asm/altp2m.h
+++ b/xen/arch/x86/include/asm/altp2m.h
@@ -46,6 +46,16 @@ void altp2m_vcpu_destroy(struct vcpu *v);
 int altp2m_vcpu_enable_ve(struct vcpu *v, gfn_t gfn);
 void altp2m_vcpu_disable_ve(struct vcpu *v);
 
+int p2m_set_suppress_ve(struct domain *d, gfn_t gfn, bool suppress_ve,
+                        unsigned int altp2m_idx);
+
+struct xen_hvm_altp2m_suppress_ve_multi;
+int p2m_set_suppress_ve_multi(struct domain *d,
+                              struct xen_hvm_altp2m_suppress_ve_multi *sve);
+
+int p2m_get_suppress_ve(struct domain *d, gfn_t gfn, bool *suppress_ve,
+                        unsigned int altp2m_idx);
+
 #else
 
 static inline bool altp2m_is_eptp_valid(const struct domain *d,
diff --git a/xen/arch/x86/include/asm/mem_access.h b/xen/arch/x86/include/asm/mem_access.h
index 1a52a10322..257ed33de1 100644
--- a/xen/arch/x86/include/asm/mem_access.h
+++ b/xen/arch/x86/include/asm/mem_access.h
@@ -34,16 +34,6 @@ bool p2m_mem_access_emulate_check(struct vcpu *v,
 /* Sanity check for mem_access hardware support */
 bool p2m_mem_access_sanity_check(const struct domain *d);
 
-int p2m_set_suppress_ve(struct domain *d, gfn_t gfn, bool suppress_ve,
-                        unsigned int altp2m_idx);
-
-struct xen_hvm_altp2m_suppress_ve_multi;
-int p2m_set_suppress_ve_multi(struct domain *d,
-                              struct xen_hvm_altp2m_suppress_ve_multi *sve);
-
-int p2m_get_suppress_ve(struct domain *d, gfn_t gfn, bool *suppress_ve,
-                        unsigned int altp2m_idx);
-
 #endif /*__ASM_X86_MEM_ACCESS_H__ */
 
 /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 07:48:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 07:48:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168293.1494367 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMLt0-0005CU-18; Fri, 21 Nov 2025 07:48:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168293.1494367; Fri, 21 Nov 2025 07: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 1vMLsz-0005CN-UR; Fri, 21 Nov 2025 07:48:53 +0000
Received: by outflank-mailman (input) for mailman id 1168293;
 Fri, 21 Nov 2025 07:48: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMLsy-0004hA-JR
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 07:48:52 +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 8442ff06-c6ae-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 08:48:50 +0100 (CET)
Received: from MW4PR03CA0001.namprd03.prod.outlook.com (2603:10b6:303:8f::6)
 by DS0PR12MB9447.namprd12.prod.outlook.com (2603:10b6:8:1b4::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov
 2025 07:48:46 +0000
Received: from CO1PEPF000075F1.namprd03.prod.outlook.com
 (2603:10b6:303:8f:cafe::6d) by MW4PR03CA0001.outlook.office365.com
 (2603:10b6:303:8f::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.11 via Frontend Transport; Fri,
 21 Nov 2025 07:48:42 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF000075F1.mail.protection.outlook.com (10.167.249.40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Fri, 21 Nov 2025 07:48:46 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 20 Nov 2025 23:48:42 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8442ff06-c6ae-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jEIbg2WbKFC9efOy8ENuvVuNreaCkYTtlo0+PsknIAB2hUb+QzV523+OWoLbDRnMh76/R0kgaBu7ShFzMqXsOkL2V1sUAVHObk9PA6nfeuCj9HOYO7OMAbzVn6/u5lqoSZ6G7LLaazVtqzSEz1Y/YnKxSu0Lhdqd1hekvcGInHuJc2WCVKJAgUyJVr+pzS/Ed0WfTbM+1+Det/i5gHbxj5wq9whsP+6HYgsAe3lb1TdIUGbXmWCbDvAKWBPA6rgY8QDcL0avi0HI8zwIWK0I95rFe75bego9i3drLbqusCb9E5GNYQglPHGx1u/DTlRqzQFA2b+N1QZ5069Jk2PZLQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UDAbNopACv5O5LpLWh1vQ8zSCmW+KHY5SViKu0W024c=;
 b=hy/UNXOPZc87TFo7Kq6f7KTPDTOMawDSv0vUlXu3GC6hG8jZcjpdxjQmvSUZeeF6xzaHwoBtZqFpsVDySQGr+RIDJfycj5h5coLcwchrw712vt9QdaK6rder/1yYcPN8DJoPvQ86DNh8j5OYk3rWX8CJ+hYRl5lfN3DOCle4TfG0lz0FzRkY7A25N+xn++72hE+1xIkDj5+rI52yJeTxrMF+HqmaE0nrC96kGtwOihvv9wj9nxWNYL1pPyx80AbLUcOyMk7FA6P3RBTed40YERulIpHo96DUBu0AxgdBwosy8xY2tvClSPLA12fnGdlDd5DkfgIqrDiOFsumiPvong==
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=UDAbNopACv5O5LpLWh1vQ8zSCmW+KHY5SViKu0W024c=;
 b=dG9kLTdVG4lnTyJsewaS4skJD6bmJxg7mGN/Ay2ltNImAa6dVDMcXRCbx0mjmhKRY8wrgiF2HmzPQQg0BYerjF7vg62LiQVW9iQ+FvKcs/E/jUVNH6F1cWe+sJghEsBNTKgGnX35/TAEttKZGb8pA2//m6PxeuzAE7gNN1JRuPw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Tamas K Lengyel <tamas@tklengyel.com>, "Alexandru
 Isaila" <aisaila@bitdefender.com>, Petre Pircalabu
	<ppircalabu@bitdefender.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 5/7] xen/p2m: move xenmem_access_to_p2m_access() to common p2m.c
Date: Fri, 21 Nov 2025 15:48:01 +0800
Message-ID: <20251121074803.312568-6-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121074803.312568-1-Penny.Zheng@amd.com>
References: <20251121074803.312568-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CO1PEPF000075F1:EE_|DS0PR12MB9447:EE_
X-MS-Office365-Filtering-Correlation-Id: 440fc3a0-4ac8-40b5-a67b-08de28d2669c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|36860700013|376014|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?IgZ00L6Gl64s/IqaTcXzPfBbUZRHaw94erktVYOleNPhqtzUq/aNMSgoKLsm?=
 =?us-ascii?Q?ZL595al4ST88WZrJUkGMmCJ9vFwRxwnN3pZZD6G7JL6p/NOWr5ZU7Qffn1qS?=
 =?us-ascii?Q?HVWn0fiXa0Vn0Nap4jfud1NxN1uuZ8ogqzxNqhkPSrFa+6n4PcOYxsRNQIMN?=
 =?us-ascii?Q?dcGmWBACNidr+G2mYM8mhNl1JMURieonDUWlCzOE+Ol3dL09tOV1VEqEMKN+?=
 =?us-ascii?Q?tejaT/uOnHWX+rGYnZ/nBy43Q7BPUQB9/RMMeyrYAcyC7pTwOEhwmrWjCyhw?=
 =?us-ascii?Q?ZeBLmcKvxr9AXaUDsgeV1qdy2JA7E8ua0Jf9BH1Se6Zi9I7IWihgedJeYUD9?=
 =?us-ascii?Q?a1XZ9Y6CFgkpouiyWTMOWb7Tdd96tLqZLAT8ISJ/aagCipfX92c7J5nIlvuV?=
 =?us-ascii?Q?nwB8MuWyi67SSsx9VCPtAq+pUczrx8YiNHaNPGoQ9Ux4GSCZY5Af3VL4K8kQ?=
 =?us-ascii?Q?kmgMIaX9MFXdualn8YNYZYKUOLh7jm4P9C0HXp2AG1z+ErPlRVAnM6Gysqg4?=
 =?us-ascii?Q?EbRtpuk3CPUrEbqoyPFtd2VYPA+sX957C2pteHNj1wZjmjAzdt3bhVTObytr?=
 =?us-ascii?Q?BT5G0KO0U449S99gwVt8OGJYsswz67p3NC50TgCtdddnAcNrhsJ99IeqkOmh?=
 =?us-ascii?Q?o/vcBfG1PqthaAfmxO10DcEyz3YP2SpTDDjNRBLweFngzz33Opw7Fqbhe3fH?=
 =?us-ascii?Q?AyPVyYGMniocmwF2Mpu9wIiYoBS98HQdeDuDjR9gFH3KOq6LI9lh8pG5eB6c?=
 =?us-ascii?Q?SyLFNgSIa6ynz4aAxOsZQ6KgbDnsE6XzwWlRzOgQ1fdS6itmau/dI6NnMBiV?=
 =?us-ascii?Q?s7fEjR1S8PaNd1NXWgmFIAad5nLJ2Wpw5xl23FGueK4otWR+2xsn92EeOmbf?=
 =?us-ascii?Q?RWVhSJ2Y3bnFJPboyaAO71pWigezIAo7CArHb8U49/UHUXbgx8i2F1MWT71s?=
 =?us-ascii?Q?WxE5RLuS18pz8trcF1kgo4Nyq7+0TW/AvKQQmalk4uQfar+EV/sXaUKwDI0G?=
 =?us-ascii?Q?/Sfuffj8aGYYTpgksbYuPj3SGqCwXWJX7hKLH5qrFKClbDrsJ0Wj+IxHcl55?=
 =?us-ascii?Q?J47aTdB9cm0134UdTvUnIfzF7WX+w9toLMplICoDc4UaGuQBExfqv2t2+oMu?=
 =?us-ascii?Q?2/BxsG4P0dwFaPj/J1vuZHn/WUXVYxheucilscam53KgAYTjgMGp0EPJXUId?=
 =?us-ascii?Q?TN8rop9A1vN/YjZRtXHFMeWaCxb51aKzO//FL+LCgVOsv9TcXlYdRw3t4E1v?=
 =?us-ascii?Q?t3MplaF8jA6NTeX9bcSG3AR6Wjee9sdgJNkYTAXeCCn7mNOttzndqFGCvNKN?=
 =?us-ascii?Q?zYkEFqkHHL/6V2c11o1N4toJvfxU9smObiVyJJXKps1MpQrj5RPpw4CPjMv3?=
 =?us-ascii?Q?67yr883wlDhyh+dpbFvTlsl8IT/gAs/svwFQ4UoPEZf/TcRXPjR5RbqUo2I+?=
 =?us-ascii?Q?nP8M4D3SjgaITsJe491WvE1cYUnzjUC/YPb7VTQ4nMWP4NfLKPfQlktdmVgU?=
 =?us-ascii?Q?GO37oSNurUfgCcY5NsOsZCos2yKer/+fYMP88BZ76fGHDj0R7q2uGSYHMkJP?=
 =?us-ascii?Q?YgxXv6vfOVWm0hvm58U=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)(7416014)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 07:48:46.1645
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 440fc3a0-4ac8-40b5-a67b-08de28d2669c
X-MS-Exchange-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:
	CO1PEPF000075F1.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB9447

Memory access and ALTP2M are two seperate features, while both depending on
helper xenmem_access_to_p2m_access(). So it betters lives in common p2m.c,
other than mem_access.c which will be compiled out when VM_EVENT=n && ALTP2M=y.
Guard xenmem_access_to_p2m_access() with VM_EVENT || ALTP2M, otherwise it
will become unreachable when both VM_EVENT=n and ALTP2M=n, and hence
violating Misra rule 2.1
We also need to move declaration from mem_access.h to p2m-common.h
An extra blank line is inserted after each case-block to correct coding
style at the same time.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- Guard xenmem_access_to_p2m_access() with VM_EVENT || ALTP2M
- Move declaration from mem_access.h to p2m-common.h
- refine commit message
---
 xen/arch/x86/mm/mem_access.c | 36 --------------------------------
 xen/arch/x86/mm/p2m.c        | 40 ++++++++++++++++++++++++++++++++++++
 xen/include/xen/mem_access.h |  5 -----
 xen/include/xen/p2m-common.h |  3 +++
 4 files changed, 43 insertions(+), 41 deletions(-)

diff --git a/xen/arch/x86/mm/mem_access.c b/xen/arch/x86/mm/mem_access.c
index e6b609064c..e55e53f44c 100644
--- a/xen/arch/x86/mm/mem_access.c
+++ b/xen/arch/x86/mm/mem_access.c
@@ -298,42 +298,6 @@ static int set_mem_access(struct domain *d, struct p2m_domain *p2m,
     return rc;
 }
 
-bool xenmem_access_to_p2m_access(const struct p2m_domain *p2m,
-                                 xenmem_access_t xaccess,
-                                 p2m_access_t *paccess)
-{
-    static const p2m_access_t memaccess[] = {
-#define ACCESS(ac) [XENMEM_access_##ac] = p2m_access_##ac
-        ACCESS(n),
-        ACCESS(r),
-        ACCESS(w),
-        ACCESS(rw),
-        ACCESS(x),
-        ACCESS(rx),
-        ACCESS(wx),
-        ACCESS(rwx),
-        ACCESS(rx2rw),
-        ACCESS(n2rwx),
-        ACCESS(r_pw),
-#undef ACCESS
-    };
-
-    switch ( xaccess )
-    {
-    case 0 ... ARRAY_SIZE(memaccess) - 1:
-        xaccess = array_index_nospec(xaccess, ARRAY_SIZE(memaccess));
-        *paccess = memaccess[xaccess];
-        break;
-    case XENMEM_access_default:
-        *paccess = p2m->default_access;
-        break;
-    default:
-        return false;
-    }
-
-    return true;
-}
-
 /*
  * Set access type for a region of gfns.
  * If gfn == INVALID_GFN, sets the default access type.
diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c
index e2a00a0efd..2763f9a6be 100644
--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
@@ -2189,6 +2189,46 @@ void p2m_log_dirty_range(struct domain *d, unsigned long begin_pfn,
     guest_flush_tlb_mask(d, d->dirty_cpumask);
 }
 
+#if defined(CONFIG_VM_EVENT) || defined(CONFIG_ALTP2M)
+bool xenmem_access_to_p2m_access(const struct p2m_domain *p2m,
+                                 xenmem_access_t xaccess,
+                                 p2m_access_t *paccess)
+{
+    static const p2m_access_t memaccess[] = {
+#define ACCESS(ac) [XENMEM_access_##ac] = p2m_access_##ac
+        ACCESS(n),
+        ACCESS(r),
+        ACCESS(w),
+        ACCESS(rw),
+        ACCESS(x),
+        ACCESS(rx),
+        ACCESS(wx),
+        ACCESS(rwx),
+        ACCESS(rx2rw),
+        ACCESS(n2rwx),
+        ACCESS(r_pw),
+#undef ACCESS
+    };
+
+    switch ( xaccess )
+    {
+    case 0 ... ARRAY_SIZE(memaccess) - 1:
+        xaccess = array_index_nospec(xaccess, ARRAY_SIZE(memaccess));
+        *paccess = memaccess[xaccess];
+        break;
+
+    case XENMEM_access_default:
+        *paccess = p2m->default_access;
+        break;
+
+    default:
+        return false;
+    }
+
+    return true;
+}
+#endif /* VM_EVENT || ALTP2M */
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/include/xen/mem_access.h b/xen/include/xen/mem_access.h
index 4de651038d..8e7d9ea2e3 100644
--- a/xen/include/xen/mem_access.h
+++ b/xen/include/xen/mem_access.h
@@ -73,11 +73,6 @@ typedef enum {
     /* NOTE: Assumed to be only 4 bits right now on x86. */
 } p2m_access_t;
 
-struct p2m_domain;
-bool xenmem_access_to_p2m_access(const struct p2m_domain *p2m,
-                                 xenmem_access_t xaccess,
-                                 p2m_access_t *paccess);
-
 /*
  * Set access type for a region of gfns.
  * If gfn == INVALID_GFN, sets the default access type.
diff --git a/xen/include/xen/p2m-common.h b/xen/include/xen/p2m-common.h
index f0bd9a6b98..bd4169caee 100644
--- a/xen/include/xen/p2m-common.h
+++ b/xen/include/xen/p2m-common.h
@@ -43,5 +43,8 @@ int __must_check check_get_page_from_gfn(struct domain *d, gfn_t gfn,
                                          bool readonly, p2m_type_t *p2mt_p,
                                          struct page_info **page_p);
 
+bool xenmem_access_to_p2m_access(const struct p2m_domain *p2m,
+                                 xenmem_access_t xaccess,
+                                 p2m_access_t *paccess);
 
 #endif /* _XEN_P2M_COMMON_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 07:48:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 07:48:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168295.1494377 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMLt1-0005Ry-AH; Fri, 21 Nov 2025 07:48:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168295.1494377; Fri, 21 Nov 2025 07:48:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMLt1-0005RV-50; Fri, 21 Nov 2025 07:48:55 +0000
Received: by outflank-mailman (input) for mailman id 1168295;
 Fri, 21 Nov 2025 07:48: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMLsz-0004J2-UO
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 07:48:54 +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 857080ff-c6ae-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 08:48:52 +0100 (CET)
Received: from MW4PR03CA0003.namprd03.prod.outlook.com (2603:10b6:303:8f::8)
 by DM4PR12MB6568.namprd12.prod.outlook.com (2603:10b6:8:8f::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.12; Fri, 21 Nov
 2025 07:48:43 +0000
Received: from CO1PEPF000075F1.namprd03.prod.outlook.com
 (2603:10b6:303:8f:cafe::96) by MW4PR03CA0003.outlook.office365.com
 (2603:10b6:303:8f::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.11 via Frontend Transport; Fri,
 21 Nov 2025 07:48:25 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF000075F1.mail.protection.outlook.com (10.167.249.40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Fri, 21 Nov 2025 07:48:42 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 20 Nov 2025 23:48:39 -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: 857080ff-c6ae-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ggke7/85Xt9z98hE1Sy6QnaJ3iQ1kVkieZkS9Y8DRNB/cxNZoV9iJVws8qQo0TSeROnuFbF1svAvH4VOreZa+IIKBY+2uBfjeyi2RB6JpzEUwJFDar2bF1xdN60viZ9DcaY6QdP1SEA3dlG3SUqjMT8dl6zWZIKzfyUBV6Qvc091ceVW7vGW11RoUohKzgCCOILsfyvm/eJ2kaxDEeYNyYiO0CyMSQgNKNymy9LaCMtHeTNDBrYzt588vlJuD/bfx96/5A4DLIrxi3VDuKbET3pqjddMaOYZmQVnohsfLpLMQH68JZN8jyySMXiRlMrUohV7x543MO1XDN3CdSUcOg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=K4LvTd6kW2t3yqi/HCtygHWHtFUbYeEEurKMnhPvWLA=;
 b=lDc6SCs2OqJ7aHktNja95uld0Q5kwQvclcqc++4hcXNtgKyBgePHoHb6EM6LJqC76fDwHfZpEIMUahRote3Vaa6lYNJB+znGnVfkUw1bfsckts3RIN7ntF3jaTj/Z3UlPZO8OkL8xhR4k/z65pkjBy1xWiPrm88Y2kyk6ELAHl554l95/5xIxL0nUEcM6SVL+wU2g/DXjB86SlqAoZQtVggkV3v9dvzXOMewBhZlXRreDInMN3MOJC5FImp4sOvfYPfrgro1TiDcPzk6+d08vfvi+NNY4szHDqRmXAbRUQ16CYtrbivsjnLxsm6e/zrBR7+JJGaRjXKJEkyakWNkYw==
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=K4LvTd6kW2t3yqi/HCtygHWHtFUbYeEEurKMnhPvWLA=;
 b=nz10ZbQvJ2gb5qNXWJif/tz+vvJDBCOAmnE4k11nebhO2cz0XyqTmB0kUj/REdN0MbwNypVMpTGw6bt6vF3W97wNCUq5Iqd1bwYeTxRkE6MarW1wt0gW3NgsfyXLU2tqr0V346Wxw7IpKLQqhQ5k4AubgDmxzCKquNh4oZNrfO8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <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>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>, "Tamas K
 Lengyel" <tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>,
	Petre Pircalabu <ppircalabu@bitdefender.com>
Subject: [PATCH v2 4/7] x86/monitor: wrap monitor_op under CONFIG_VM_EVENT
Date: Fri, 21 Nov 2025 15:48:00 +0800
Message-ID: <20251121074803.312568-5-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121074803.312568-1-Penny.Zheng@amd.com>
References: <20251121074803.312568-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CO1PEPF000075F1:EE_|DM4PR12MB6568:EE_
X-MS-Office365-Filtering-Correlation-Id: 98fe33b7-f42c-4aea-8acc-08de28d26495
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?LhkFzevuC4DukLUpy7AAZeKsMcX46PXau3F1KhyAyhSuDuh5FeITZyaRu80a?=
 =?us-ascii?Q?kXSVASAa9Mz/+x7ov3mRaDjn1lo/O+XGt4uS5WbG2YLjXHN03rFbBVq6GYsC?=
 =?us-ascii?Q?+M93uCwSyLP4uE7XdDNpM8t/Wje3xWADuQjwLdsUcW9L0/k3Uak+tQaLAQJu?=
 =?us-ascii?Q?oUUQX5URsc9AJLEegww/oEspC9397ujWLNuiRKLqrRXEt3UKZ9fgZzR8D8HD?=
 =?us-ascii?Q?puCg6jp/wn7ibKUjhkTKBC6+vsQ4aaEk9v1O0hytVrPCmzhH8Dkpn+0r+3j4?=
 =?us-ascii?Q?ISLlRpNfOhOx9NbHAUA59BBwA6rUw+2qVIFpjl5AIWOIfZsYkCdXRUm2e/n0?=
 =?us-ascii?Q?uZFpVQrs3HeSCWWCn995DhUQq3FGnAEOP7WQJRw8CGwRh81S3DZtripNF/F2?=
 =?us-ascii?Q?mGvmm3lrTgmze+kOGztiYJoObA8EDQwS1bFSltoMRv3h0wyPGRko273CYyOG?=
 =?us-ascii?Q?zdVbjha+diNQo0mQq/RTotUbUnlshizYagdUG8Ix1tT4ZJ1cvSeLwQSGSbQ9?=
 =?us-ascii?Q?8QM7oD3x9jjMCS0wzEMmaZbmF/GREda+e5dHysQwk9iNOUzxf4RduuhDI8P/?=
 =?us-ascii?Q?yPlwtUI3nQOgGXNsFr6cptfu4MrCA8LI6fs5MIbu1rhRg/f0lyup+Y52m6Lq?=
 =?us-ascii?Q?42zgv8Y3Ed9kom32c/EPrL2EU1Oz6zjQNaby0S14DDlBdW9HeO9DvFwTjznk?=
 =?us-ascii?Q?Rw91cQPzorBoC5B0PKcaz2pdip57t+QqlOQLSuZS7phjJEHVZff5X315vXfn?=
 =?us-ascii?Q?GrhtTfDMT9HqPiz3ArpZXqjfR1PRrCzliLtFjhs6uRywVZYuZAuQuFl0KleL?=
 =?us-ascii?Q?AluIJx/ZtTFJs2tFCwXAw/jfySBvr1n3CQ1S3rH0RvIsjOloCGmDcEipaRc8?=
 =?us-ascii?Q?+BqhcBmk5UWwUgKDEYhbhx+cO9PbSkI+T9nb4WLHHaoWnEg73V3g1oH64fkd?=
 =?us-ascii?Q?N7UnnYbiijFw5nntFAZ/VvB8NHAp1Jn4bKxQBB9jP9lLmkTPbWhOIfgaAoLx?=
 =?us-ascii?Q?Kpid+NMno2K5fyUFJp3shVAFVfnX/u7Jc7RGAEQXTSYY2Gl0kwOygkpxaovC?=
 =?us-ascii?Q?pT5sgUvS1veinpbzOH4lLHgIoZLTlvCFAmHZkTTBuwH/0+itGhcuHLe/vKTV?=
 =?us-ascii?Q?FNWEyjy0HLp/095lWvZE24IcS8M0V7+HnXf7Uw4ppXZ0Gbl1n63+nSQochE5?=
 =?us-ascii?Q?i/H84XX9aMKH4ibd7LJYJhimQmmVMc5QDQNe7/aD7UuXpP6arvy6jZma04+A?=
 =?us-ascii?Q?YWg24CZ+MFQZq45RmBYGx9gAKWwcIYE7FFHFGSFy3QBC+lJqQGaxZ6VODkJk?=
 =?us-ascii?Q?/MV9Kwm0p9LBgE32vOsZMC24dyzCnhhhBwJjjPA6JU99wGJkv0PBXBoX8V2c?=
 =?us-ascii?Q?SYOlww8Qrf/Zcx3xtzIKrx4SqNey8QDxlWQ8URXpmgeRt9hIdRXMCMczfsLa?=
 =?us-ascii?Q?O4DgKFztwzOg+pm4vq+6sHHyoHtxU+fh7rm+LRcjZLQseOTwox2b1S005xFl?=
 =?us-ascii?Q?BtBZhvUee/7qR06v7aNCuK5eDHe5Uy53LSbyHehx7GUnnG3OvUMdsEj+irw8?=
 =?us-ascii?Q?6pl3bS+2fsG5QVdgnMg=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 07:48:42.7623
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 98fe33b7-f42c-4aea-8acc-08de28d26495
X-MS-Exchange-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:
	CO1PEPF000075F1.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6568

Feature monitor_op is based on vm event subsystem, so monitor.o shall be
wrapped under CONFIG_VM_EVENT.
The following functions are only invoked by monitor-op, so they all shall be
wrapped with CONFIG_VM_EVENT (otherwise they will become unreachable and
violate Misra rule 2.1 when VM_EVENT=n):
- hvm_enable_msr_interception
  - hvm_function_table.enable_msr_interception
- hvm_has_set_descriptor_access_existing
  - hvm_function_table.set_descriptor_access_existi
- arch_monitor_get_capabilities
Function monitored_msr() still needs a stub to pass compilation when
VM_EVENT=n.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
 xen/arch/x86/hvm/Makefile          |  2 +-
 xen/arch/x86/hvm/svm/svm.c         |  8 +++++++-
 xen/arch/x86/hvm/vmx/vmx.c         | 10 ++++++++++
 xen/arch/x86/include/asm/hvm/hvm.h | 18 +++++++++++-------
 xen/arch/x86/include/asm/monitor.h |  9 +++++++++
 5 files changed, 38 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 6ec2c8f2db..50e0b6e63b 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -16,7 +16,7 @@ obj-y += io.o
 obj-y += ioreq.o
 obj-y += irq.o
 obj-y += mmio.o
-obj-y += monitor.o
+obj-$(CONFIG_VM_EVENT) += monitor.o
 obj-y += mtrr.o
 obj-y += nestedhvm.o
 obj-y += pmtimer.o
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index e9d39f59a9..ce4fbbe488 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -299,6 +299,7 @@ void svm_intercept_msr(struct vcpu *v, uint32_t msr, int flags)
         __clear_bit(msr * 2 + 1, msr_bit);
 }
 
+#ifdef CONFIG_VM_EVENT
 static void cf_check svm_enable_msr_interception(struct domain *d, uint32_t msr)
 {
     struct vcpu *v;
@@ -306,6 +307,7 @@ static void cf_check svm_enable_msr_interception(struct domain *d, uint32_t msr)
     for_each_vcpu ( d, v )
         svm_intercept_msr(v, msr, MSR_INTERCEPT_WRITE);
 }
+#endif /* CONFIG_VM_EVENT */
 
 static void svm_save_dr(struct vcpu *v)
 {
@@ -826,6 +828,7 @@ static void cf_check svm_set_rdtsc_exiting(struct vcpu *v, bool enable)
     vmcb_set_general2_intercepts(vmcb, general2_intercepts);
 }
 
+#ifdef CONFIG_VM_EVENT
 static void cf_check svm_set_descriptor_access_exiting(
     struct vcpu *v, bool enable)
 {
@@ -843,6 +846,7 @@ static void cf_check svm_set_descriptor_access_exiting(
 
     vmcb_set_general1_intercepts(vmcb, general1_intercepts);
 }
+#endif /* CONFIG_VM_EVENT */
 
 static unsigned int cf_check svm_get_insn_bytes(struct vcpu *v, uint8_t *buf)
 {
@@ -2457,9 +2461,11 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
     .fpu_dirty_intercept  = svm_fpu_dirty_intercept,
     .msr_read_intercept   = svm_msr_read_intercept,
     .msr_write_intercept  = svm_msr_write_intercept,
+#ifdef CONFIG_VM_EVENT
     .enable_msr_interception = svm_enable_msr_interception,
-    .set_rdtsc_exiting    = svm_set_rdtsc_exiting,
     .set_descriptor_access_exiting = svm_set_descriptor_access_exiting,
+#endif
+    .set_rdtsc_exiting    = svm_set_rdtsc_exiting,
     .get_insn_bytes       = svm_get_insn_bytes,
 
     .nhvm_vcpu_initialise = nsvm_vcpu_initialise,
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 3ca18302e5..75e0ea8d52 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -1583,6 +1583,7 @@ static void cf_check vmx_set_rdtsc_exiting(struct vcpu *v, bool enable)
     vmx_vmcs_exit(v);
 }
 
+#ifdef CONFIG_VM_EVENT
 static void cf_check vmx_set_descriptor_access_exiting(
     struct vcpu *v, bool enable)
 {
@@ -1597,6 +1598,7 @@ static void cf_check vmx_set_descriptor_access_exiting(
     vmx_update_secondary_exec_control(v);
     vmx_vmcs_exit(v);
 }
+#endif /* CONFIG_VM_EVENT */
 
 static void cf_check vmx_init_hypercall_page(void *p)
 {
@@ -2476,6 +2478,7 @@ static void cf_check vmx_handle_eoi(uint8_t vector, int isr)
         printk_once(XENLOG_WARNING "EOI for %02x but SVI=%02x\n", vector, old_svi);
 }
 
+#ifdef CONFIG_VM_EVENT
 static void cf_check vmx_enable_msr_interception(struct domain *d, uint32_t msr)
 {
     struct vcpu *v;
@@ -2483,6 +2486,7 @@ static void cf_check vmx_enable_msr_interception(struct domain *d, uint32_t msr)
     for_each_vcpu ( d, v )
         vmx_set_msr_intercept(v, msr, VMX_MSR_W);
 }
+#endif /* CONFIG_VM_EVENT */
 
 #ifdef CONFIG_ALTP2M
 
@@ -2934,7 +2938,9 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
     .nhvm_domain_relinquish_resources = nvmx_domain_relinquish_resources,
     .update_vlapic_mode = vmx_vlapic_msr_changed,
     .nhvm_hap_walk_L1_p2m = nvmx_hap_walk_L1_p2m,
+#ifdef CONFIG_VM_EVENT
     .enable_msr_interception = vmx_enable_msr_interception,
+#endif
 #ifdef CONFIG_ALTP2M
     .altp2m_vcpu_update_p2m = vmx_vcpu_update_eptp,
     .altp2m_vcpu_update_vmfunc_ve = vmx_vcpu_update_vmfunc_ve,
@@ -3142,9 +3148,11 @@ const struct hvm_function_table * __init start_vmx(void)
 
     vmx_function_table.caps.singlestep = cpu_has_monitor_trap_flag;
 
+#ifdef CONFIG_VM_EVENT
     if ( cpu_has_vmx_dt_exiting )
         vmx_function_table.set_descriptor_access_exiting =
             vmx_set_descriptor_access_exiting;
+#endif
 
     /*
      * Do not enable EPT when (!cpu_has_vmx_pat), to prevent security hole
@@ -3215,8 +3223,10 @@ void __init vmx_fill_funcs(void)
     if ( !cpu_has_xen_ibt )
         return;
 
+#ifdef CONFIG_VM_EVENT
     vmx_function_table.set_descriptor_access_exiting =
         vmx_set_descriptor_access_exiting;
+#endif
 
     vmx_function_table.update_eoi_exit_bitmap = vmx_update_eoi_exit_bitmap;
     vmx_function_table.process_isr            = vmx_process_isr;
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index 56ad63dc57..a513f47b7a 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -192,7 +192,11 @@ struct hvm_function_table {
     void (*handle_cd)(struct vcpu *v, unsigned long value);
     void (*set_info_guest)(struct vcpu *v);
     void (*set_rdtsc_exiting)(struct vcpu *v, bool enable);
+
+#ifdef CONFIG_VM_EVENT
     void (*set_descriptor_access_exiting)(struct vcpu *v, bool enable);
+    void (*enable_msr_interception)(struct domain *d, uint32_t msr);
+#endif
 
     /* Nested HVM */
     int (*nhvm_vcpu_initialise)(struct vcpu *v);
@@ -224,8 +228,6 @@ struct hvm_function_table {
                                 paddr_t *L1_gpa, unsigned int *page_order,
                                 uint8_t *p2m_acc, struct npfec npfec);
 
-    void (*enable_msr_interception)(struct domain *d, uint32_t msr);
-
 #ifdef CONFIG_ALTP2M
     /* Alternate p2m */
     void (*altp2m_vcpu_update_p2m)(struct vcpu *v);
@@ -435,11 +437,18 @@ static inline bool using_svm(void)
 
 #define hvm_long_mode_active(v) (!!((v)->arch.hvm.guest_efer & EFER_LMA))
 
+#ifdef CONFIG_VM_EVENT
 static inline bool hvm_has_set_descriptor_access_exiting(void)
 {
     return hvm_funcs.set_descriptor_access_exiting;
 }
 
+static inline void hvm_enable_msr_interception(struct domain *d, uint32_t msr)
+{
+    alternative_vcall(hvm_funcs.enable_msr_interception, d, msr);
+}
+#endif /* CONFIG_VM_EVENT */
+
 static inline void hvm_domain_creation_finished(struct domain *d)
 {
     if ( hvm_funcs.domain_creation_finished )
@@ -681,11 +690,6 @@ static inline int nhvm_hap_walk_L1_p2m(
         v, L2_gpa, L1_gpa, page_order, p2m_acc, npfec);
 }
 
-static inline void hvm_enable_msr_interception(struct domain *d, uint32_t msr)
-{
-    alternative_vcall(hvm_funcs.enable_msr_interception, d, msr);
-}
-
 static inline bool hvm_is_singlestep_supported(void)
 {
     return hvm_funcs.caps.singlestep;
diff --git a/xen/arch/x86/include/asm/monitor.h b/xen/arch/x86/include/asm/monitor.h
index 3c64d8258f..9249324fd0 100644
--- a/xen/arch/x86/include/asm/monitor.h
+++ b/xen/arch/x86/include/asm/monitor.h
@@ -71,6 +71,7 @@ int arch_monitor_domctl_op(struct domain *d, struct xen_domctl_monitor_op *mop)
     return rc;
 }
 
+#ifdef CONFIG_VM_EVENT
 static inline uint32_t arch_monitor_get_capabilities(struct domain *d)
 {
     uint32_t capabilities = 0;
@@ -102,6 +103,7 @@ static inline uint32_t arch_monitor_get_capabilities(struct domain *d)
 
     return capabilities;
 }
+#endif /* CONFIG_VM_EVENT */
 
 int arch_monitor_domctl_event(struct domain *d,
                               struct xen_domctl_monitor_op *mop);
@@ -123,7 +125,14 @@ static inline void arch_monitor_cleanup_domain(struct domain *d) {}
 
 #endif
 
+#ifdef CONFIG_VM_EVENT
 bool monitored_msr(const struct domain *d, u32 msr);
+#else
+static inline bool monitored_msr(const struct domain *d, u32 msr)
+{
+    return false;
+}
+#endif
 bool monitored_msr_onchangeonly(const struct domain *d, u32 msr);
 
 #endif /* __ASM_X86_MONITOR_H__ */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 07:48:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 07:48:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168299.1494387 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMLt3-0005kd-N4; Fri, 21 Nov 2025 07:48:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168299.1494387; Fri, 21 Nov 2025 07: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 1vMLt3-0005kK-J3; Fri, 21 Nov 2025 07:48:57 +0000
Received: by outflank-mailman (input) for mailman id 1168299;
 Fri, 21 Nov 2025 07:48: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMLt2-0004J2-V4
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 07:48:56 +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 8786f71e-c6ae-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 08:48:55 +0100 (CET)
Received: from MW4PR04CA0359.namprd04.prod.outlook.com (2603:10b6:303:8a::34)
 by MN2PR12MB4469.namprd12.prod.outlook.com (2603:10b6:208:268::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.12; Fri, 21 Nov
 2025 07:48:50 +0000
Received: from CO1PEPF000075F2.namprd03.prod.outlook.com
 (2603:10b6:303:8a:cafe::e4) by MW4PR04CA0359.outlook.office365.com
 (2603:10b6:303:8a::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.12 via Frontend Transport; Fri,
 21 Nov 2025 07:48:41 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF000075F2.mail.protection.outlook.com (10.167.249.41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Fri, 21 Nov 2025 07:48:48 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 20 Nov 2025 23:48:45 -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: 8786f71e-c6ae-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LMxve1N23XJzOYtzYvnJO+kdhe/KqPBOlpr2nfG6V5KN8TTKpvabztpkU5f1kljchpPDJANZbMn29Yjf6xHw2hvoAwlcH9mSGYLiTsl8JUP4fH2HMAneVrQU+6sAJszL3dB1Ee7poRi7LPkxx7ya/rU6n1WE+N/lseRI5GLvaUOsZd/3G848JMVjxoo7lIFdLrY4ySK1FcQ/FGdwsARIpxfAoRqL7wbF4DcvwdRi8xzAmH4mwFWpnQScLblMdN8NObKqhJDyFxDsDe35Ie5RAQqAUKbFRGLYBuwJPU7rc8E8PP5xMzlWy+PA9adQHu7rRWx7heFRCBSZzjv685qdCQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qUuzBE9RcMMeytLn2CbJEvmAPRA65e3Hsh1y4X3/Y4k=;
 b=sSyaMxu2cUhamk9LTmdXLSttpkDew7Nskf9gbZolVFZL9VhiSRN3DyUtfQVgykx3c5sHm364lvTBVJ/m4Pzq4UFDlPmhOq/cHpP92zbEw//xgZRCj8GmupWT8SZfXc0bJ4ynYXU42oNTrd4x04YLVR0teFkYd2Tdd41pk9kNayyYDU6kkQ2QL2+0nC7V53XDPEzvbzKaGJwnquI02eSQFMGYqf7YfXJsoyyz4+/zWI2WtFKWXfEZ/iMfxwZs+SIT3gliYWNy3ungCRxBaJBYSl+cvH8+prwad9dUWPRHCYnQ3NpCaP/CXLVpEsXP+CL1OO8L3CxsTFWEOoQ/KekH+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=qUuzBE9RcMMeytLn2CbJEvmAPRA65e3Hsh1y4X3/Y4k=;
 b=tJf0NE6QXYc7dtPpx3BM07r6Q0vfG0F9+Dium3yOethmaVkd7dnncPkkI61SOcOYcIg5XaC3/sOIP89kmfWh02BJi87UOUH2T2pZAeavyPGmHbHe7QTHSoc6lbFOh8WFgM2i9FrAoGS67Juz3lv17CbYvrGBI5anKyO7H5cF7ZU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <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>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Tamas K Lengyel <tamas@tklengyel.com>, "Alexandru
 Isaila" <aisaila@bitdefender.com>, Petre Pircalabu
	<ppircalabu@bitdefender.com>
Subject: [PATCH v2 6/7] xen/mem_access: wrap memory access when VM_EVENT=n
Date: Fri, 21 Nov 2025 15:48:02 +0800
Message-ID: <20251121074803.312568-7-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121074803.312568-1-Penny.Zheng@amd.com>
References: <20251121074803.312568-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CO1PEPF000075F2:EE_|MN2PR12MB4469:EE_
X-MS-Office365-Filtering-Correlation-Id: 56a6dc22-2692-4375-7ab5-08de28d2683c
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?o9on+oajL6VnK8uaHFH+Z0H1C3Hu6lhKqV2stvvJ0zzUXVVCgqqsAsc0hNQB?=
 =?us-ascii?Q?WA+fSph9JYchShwSNH90Cnxq+bKY112xnkOXGRDDxYI+XmHr2HCucbKyf5ih?=
 =?us-ascii?Q?ibt0eo/hGmRCnbD9kF5RgFj3iMN4bsk7MdquPn2N9l6SqF7B9uHcnkEVt558?=
 =?us-ascii?Q?Jy0hABcfKPIR/GxdP/8+cGi1JSaLOZ57jq/lTIWyUPBfDFkJDFXLqJtyLCjt?=
 =?us-ascii?Q?Csn6sjWMQxdNd29Z2zF86aKTKzORE860LwFW+j1wl/TJQrZ9A+9znRqRU+fY?=
 =?us-ascii?Q?7eaFwgblSFJNhqnoV1daoZbZe20ZuXjx7uVX+U7fMYZTPq4/s2ELm0JiW+0L?=
 =?us-ascii?Q?TOEmVdUz/tfWYO+jMZ0cCpo/qIEQgGAcpPZgqGLewgnJ2pnbnQb6OJDbh3Sp?=
 =?us-ascii?Q?rhAzu5tSufSN6tpOVTv0OH1rVZ8qX72a5Du5oWF6oL6dgPXBFYTJ4uPhDO9x?=
 =?us-ascii?Q?tbc6kkAduZV3HX3/aBHjjQfSfy9YxLjh8O43hnoPmrDuVOpqHGsGzDnoQr5Z?=
 =?us-ascii?Q?zzue7y2ljB3jRcINlQdsrUv0h8wQygJ5ztWLXEfumHovcYhBLWF6c7c8FT3M?=
 =?us-ascii?Q?KsbYGgC/KUwFnsEwLvLYDFnIMf0QcClAI6OrMWbkuXfn7+lmLK2tLYQ3G/an?=
 =?us-ascii?Q?Ae2rUqdnWcRdXOxw4QX3aFY2wlk6rpQsMNAJzNlxRpzdXKMoGQjAnr/O2bKn?=
 =?us-ascii?Q?3vZguj+YnS8pLsPYwIfJY83+EcSM86TenAb2ZgX8Sg/c77BEB/kdaXMmI4Ba?=
 =?us-ascii?Q?yDktMm7DNdmkS+HggpRVx2uetCqyofnmV+lzhmJ4vrQahjjKGbmp0klSty0d?=
 =?us-ascii?Q?bhzlNvV2eVRXCICFqVB31p+W6BWJfNwBvmme6LTAe6POrkjHXVIpf068ojRs?=
 =?us-ascii?Q?WnyoIIbArImO5vDcFPkrJzJfH5GJTD/bTekrb5Tcza4R+ArkbFIvgush2Tz8?=
 =?us-ascii?Q?n2/vhMoZvPvUWXIAaHlZ63H6Le7R5D02nFNFYk5aBTRaKEoU7UdF2veDBqM9?=
 =?us-ascii?Q?NfobTwISj+kto2fURstawfLP8brVn4GXKCEEMY9uVL87908EkhhbcBijNrpI?=
 =?us-ascii?Q?pKxJY2yYJVbsoe5XPt6G1Rbd4GB1MQfUdk+hp/qeatVqz4eppOcK2cVLfe/F?=
 =?us-ascii?Q?qcDVlPrQRYVTHGHbTZIm+f7LzlDPBL7rbLJU/52RA+H7ox49w7TeuGAxikaP?=
 =?us-ascii?Q?JTpQ5OcChgW5tKIpRgA13D3rWkMUAzfrg/0V6FmEoBzTw43v7XQbsqDu2zic?=
 =?us-ascii?Q?HOPi3l74oLz4Cgtfr6lfyj+e63HlcJQ9GeZV+rD/mpiud+PT0p8HckCjU62C?=
 =?us-ascii?Q?MN/3GqqvGQhXKq0wdAWM2OKvGLZU8bugsQY0o5q/aOFJfpM0lEPXQA9G6wtL?=
 =?us-ascii?Q?tgsD/CuaKuHLoLhUY/+R6lX9Ap5GqfZvw+ujny+5vkVF5GcQ5dbjqodUrTGR?=
 =?us-ascii?Q?XGnRpSzf5nMEtlWGoZAlQOqud12Ezqne5rtM6BCUVOD7bf3VKedFvTH6jq5r?=
 =?us-ascii?Q?jxOpNCh1naXXYJ5JQid1JG16xXlvBNNVv0JiXEuSUAPujpLVV08ztq/jmJoM?=
 =?us-ascii?Q?KfO1L9PPQ4HVrNzZKG0=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 07:48:48.8878
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 56a6dc22-2692-4375-7ab5-08de28d2683c
X-MS-Exchange-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:
	CO1PEPF000075F2.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4469

Feature memory access is based on vm event subsystem, and it could be disabled
in the future. So a few switch-blocks in do_altp2m_op() need
vm_event_is_enabled() condition check to pass compilation when ALTP2M=y and
VM_EVENT=n(, hence MEM_ACCESS=n), like HVMOP_altp2m_set_mem_access, etc.
Function p2m_mem_access_check() still needs stub when VM_EVENT=n to
pass compilation.
Although local variable "req_ptr" still remains NULL throughout its lifetime,
with the change of NULL assignment, we will face runtime undefined error only
when CONFIG_USBAN is on. So we strengthen the condition check via adding
vm_event_is_enabled() for the special case.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- a comment next to the excessive condition
- use vm_event_is_enabled() instead
- avoid heavy churn by using the inverted condition plus break
---
 xen/arch/x86/hvm/hvm.c                | 24 +++++++++++++++++++++++-
 xen/arch/x86/include/asm/mem_access.h | 10 ++++++++++
 2 files changed, 33 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index aa14101241..0103f5c6ba 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -2080,7 +2080,11 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
 #endif
     }
 
-    if ( req_ptr )
+    /*
+     * Excessive condition is to avoid runtime undefined error only
+     * when CONFIG_USBAN=y
+     */
+    if ( req_ptr && vm_event_is_enabled(curr) )
     {
         if ( monitor_traps(curr, sync, req_ptr) < 0 )
             rc = 0;
@@ -4802,6 +4806,12 @@ static int do_altp2m_op(
         break;
 
     case HVMOP_altp2m_set_mem_access:
+        if ( !vm_event_is_enabled(current) )
+        {
+            rc = -EOPNOTSUPP;
+            break;
+        }
+
         if ( a.u.mem_access.pad )
             rc = -EINVAL;
         else
@@ -4811,6 +4821,12 @@ static int do_altp2m_op(
         break;
 
     case HVMOP_altp2m_set_mem_access_multi:
+        if ( !vm_event_is_enabled(current) )
+        {
+            rc = -EOPNOTSUPP;
+            break;
+        }
+
         if ( a.u.set_mem_access_multi.pad ||
              a.u.set_mem_access_multi.opaque > a.u.set_mem_access_multi.nr )
         {
@@ -4842,6 +4858,12 @@ static int do_altp2m_op(
         break;
 
     case HVMOP_altp2m_get_mem_access:
+        if ( !vm_event_is_enabled(current) )
+        {
+            rc = -EOPNOTSUPP;
+            break;
+        }
+
         if ( a.u.mem_access.pad )
             rc = -EINVAL;
         else
diff --git a/xen/arch/x86/include/asm/mem_access.h b/xen/arch/x86/include/asm/mem_access.h
index 257ed33de1..790bed81e8 100644
--- a/xen/arch/x86/include/asm/mem_access.h
+++ b/xen/arch/x86/include/asm/mem_access.h
@@ -14,6 +14,7 @@
 #ifndef __ASM_X86_MEM_ACCESS_H__
 #define __ASM_X86_MEM_ACCESS_H__
 
+#ifdef CONFIG_VM_EVENT
 /*
  * Setup vm_event request based on the access (gla is -1ull if not available).
  * Handles the rw2rx conversion. Boolean return value indicates if event type
@@ -25,6 +26,15 @@
 bool p2m_mem_access_check(paddr_t gpa, unsigned long gla,
                           struct npfec npfec,
                           struct vm_event_st **req_ptr);
+#else
+static inline bool p2m_mem_access_check(paddr_t gpa, unsigned long gla,
+                                        struct npfec npfec,
+                                        struct vm_event_st **req_ptr)
+{
+    *req_ptr = NULL;
+    return false;
+}
+#endif /* CONFIG_VM_EVENT */
 
 /* Check for emulation and mark vcpu for skipping one instruction
  * upon rescheduling if required. */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 07:49:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 07:49:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168303.1494397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMLt8-0006Ex-Uv; Fri, 21 Nov 2025 07:49:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168303.1494397; Fri, 21 Nov 2025 07:49:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMLt8-0006Ei-Rd; Fri, 21 Nov 2025 07:49:02 +0000
Received: by outflank-mailman (input) for mailman id 1168303;
 Fri, 21 Nov 2025 07:49:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMLt7-0004hA-UR
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 07:49:02 +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 89dc8752-c6ae-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 08:48:59 +0100 (CET)
Received: from SJ0PR03CA0086.namprd03.prod.outlook.com (2603:10b6:a03:331::31)
 by PH7PR12MB6787.namprd12.prod.outlook.com (2603:10b6:510:1ad::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.21; Fri, 21 Nov
 2025 07:48:53 +0000
Received: from CO1PEPF000075F0.namprd03.prod.outlook.com
 (2603:10b6:a03:331:cafe::7) by SJ0PR03CA0086.outlook.office365.com
 (2603:10b6:a03:331::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.10 via Frontend Transport; Fri,
 21 Nov 2025 07:48:49 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF000075F0.mail.protection.outlook.com (10.167.249.39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Fri, 21 Nov 2025 07:48:53 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 20 Nov 2025 23:48:48 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 89dc8752-c6ae-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sWkYs0UVqVu2mz/5DclA9eYy6o5G7TTfP59tXhsktvPVwnk5cXsBYD7551mnVLP9yYpznyKYZVnw3Y4T351lcQLFqT1kDN7qQtm9ZvHfD22P/8AMkjCSfFA0cNW9BxTM1jtOkOLJ6K4kPmv7sbGEryise7c54cLEOu1IowsBFASXWVdu5jqUWFmPcfDP2yWiU+wd94D5x05zCoa3QVxpb+fPqwEk5p0MnmUYxVhqxgF3gQkSPD1/EQveo53ZVwvLi5zK0x9bQNIyD30zZYKzJCD/GoOxMhFfQ8MwtbmXOJrgY1ldafUYpn1YTZcgxmvf2t3xUQxLGCjMVvJ4se9Ekw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NBhj9JaATXl8b6nI+SV8v93BChTELw2B1eNiGpwtWHM=;
 b=djLwRxUF3v3apFofUvslP6A3aVe/8JKc0VbQsWvvuNtKP8rhAX5qBtsMM90p1DzNyTMeXMojnGjrDw1XmqvCOL5qITK6pyd3tcUHqnx09Wj8G9FUOwolgCNK3U0Tv81X+87nx8HPO1Cv50p6bRKVMvhLTOXOJocs8lgwhxodpNSiaGvVEh7t95RlxF0KcyV9MkbawsGZ21XjxLg77OkokY9KJiD5xviFymdiyWQiSEDbPIl+g0StbCMsV8aasMBn8JDwqFshF8wa+FQAmHZcoL0yjJjVa1WZxQ63ilTr+ZHt+gEfvR4GCxOkNyFSDge5KAvDPg+zDK34kZSp6aRlog==
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=NBhj9JaATXl8b6nI+SV8v93BChTELw2B1eNiGpwtWHM=;
 b=PcsQoS2a2Nb0v5567+0EYXL/z4Ti/cbe+uIE6lKnc9IppPqQaDYQqe2Aw+dlBu5qRpWBRIoz23UsFS1Kjvk/B9U+jIvjKa/LMJR/YkTyOJzrWgLiDrKkg9DQ+IuTAmf4FWhbooPdESKWnSa8CDI8UDPfFMCV1EAefsqPwoC+tAA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <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>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Tamas K Lengyel <tamas@tklengyel.com>,
	Alexandru Isaila <aisaila@bitdefender.com>, Petre Pircalabu
	<ppircalabu@bitdefender.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH v2 7/7] xen/vm_event: consolidate CONFIG_VM_EVENT
Date: Fri, 21 Nov 2025 15:48:03 +0800
Message-ID: <20251121074803.312568-8-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121074803.312568-1-Penny.Zheng@amd.com>
References: <20251121074803.312568-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CO1PEPF000075F0:EE_|PH7PR12MB6787:EE_
X-MS-Office365-Filtering-Correlation-Id: ef8571c2-e384-4809-a252-08de28d26ab0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|7416014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?EA5zg29ZeJkC8JlzEU4Ar5kwwdLvZmJyAJSPidrMGY9SR2c3sCezUSvZfkAK?=
 =?us-ascii?Q?Opdmjj2VnCMnvpdZVLc3O5R4bNFxVeplF8Vc/F3IE019a+Mx9/Q8joq4IAef?=
 =?us-ascii?Q?xbRk/Y7E+MvdgQkRPCDYtimD7k9LfaZzxtFVnnawC2V7UKvbNNuHRrpsro/1?=
 =?us-ascii?Q?RR+3GLYKLujUKsQBts+ELV0D5etSzTA4cQQOOH6euE2gLY6ldGFDzmXm+ZVX?=
 =?us-ascii?Q?s7A31MU6zv4/30n0HiHdXm0lAxCA+xHFv2H18KsPuLZWJAbXqx3xN9QfVVGV?=
 =?us-ascii?Q?i7251UEttMenulq94ROW9A8cVdERMWahwToo4jO5syWolDOPeTGYfIBknsQ0?=
 =?us-ascii?Q?vjqnarZacpCNgy1Tipg0WrfV6VG00YFrzXS8EFWbKvJrG1oC6Pj2Q+tio21K?=
 =?us-ascii?Q?cNcQFav7fEmg0X1pN/g5IrDaVeMQXnY5q5xoOgD5bTTdg6meerpbGlnNotoK?=
 =?us-ascii?Q?DrnAxgQFAi84fUx6ioeMmelvLcf1yjuNFMoz2d4YHJbrfrgWyHPVcFV5QvWV?=
 =?us-ascii?Q?OG3rOi8zF7VEzXjhyUmHjrpDuCVudqbycBj7r3aYY1SyIJLtWQAS+VJF96Av?=
 =?us-ascii?Q?K6pbtLJ9wo3XTmIwihhfPaSBp0XhJ+0SngShxsddsnGQJfZrwUQH1u0PcD0F?=
 =?us-ascii?Q?rNipcWxbEGQE7Yymp4bw90VehE6tGqat77vcWEWNg6L3Fz3PkFsg9z47VSFl?=
 =?us-ascii?Q?kJ/0U2jgnXn8rAhAfW3GZpyCqgZTrhS6buzFH978MOggvXb0PmKQ/pJpktab?=
 =?us-ascii?Q?jsiYphq6Svp6LHPkk+QCF+f9Uw00Mer5Tel9lp4eb8XLEGtJ067EhylunHSD?=
 =?us-ascii?Q?2J8URKTO4w43SlRbzeHJzaDRKxvK1y59XRZPlG8vXzCIIhJmrL76vXt38AkZ?=
 =?us-ascii?Q?h8jsz1ahBgeIRbM5F6vF0v6m0J6YqqyLXcTT9DHVYSBYTTiLib98BYyy+6GC?=
 =?us-ascii?Q?KJbehlFVDaEAkol/NIwkrGwvpLTE2iFTWSuAQQ33vQB1SKIFZdYK+H4SL893?=
 =?us-ascii?Q?aYM8Lv9VFvcs/IbRNrCBDZW/KE2rU/r6L+ORJON9eQYUj1fxFXfQIe4JndZz?=
 =?us-ascii?Q?fbcwz7w0jN/dwuosbs39esmxdZz/JAboY5fwhgwYDUUu5qQfo7BnBJ8gxGR1?=
 =?us-ascii?Q?Wm6W/cEYWhe4Q9wOywkB8zq7F4L5b2J5nL0vpGKvZ2cjBr6a2mnT9EQaOsYZ?=
 =?us-ascii?Q?l/8hToSm5nBvybzNtqnz76rvc99//l6dDGIybIkjwXpnpwXGVFoE9fvuNob6?=
 =?us-ascii?Q?tMc12evhY1hj7HdgHP+1NpPFfg4gp1SGzDibUXAdAR0BUmjgFbdlUndRzFs+?=
 =?us-ascii?Q?CS38UTufNwRxq9dZ89tZQfK21VPmga49REqj/+PO3NmM8suo0BAmHZYpQnSQ?=
 =?us-ascii?Q?DRx4BNNk3MvZv/op/T5ZgtU0S+f/5jcJEtt7+hOj5xN29zWdZrJeo4i1sngv?=
 =?us-ascii?Q?VrDVjClcZD1G6JrKaROas208zvBTH9a/T/mfGfjZsSBaVbQNVGSBSENaVdvp?=
 =?us-ascii?Q?4kfdXG1htWaerfwkIVUWVdceYaJa1sd7r5qIdPHFmSWIOtxwpN9OOpwyX7V7?=
 =?us-ascii?Q?iQQUnCqdOut/VqHI/aY=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)(7416014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 07:48:53.0058
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ef8571c2-e384-4809-a252-08de28d26ab0
X-MS-Exchange-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:
	CO1PEPF000075F0.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6787

File hvm/vm_event.c and x86/vm_event.c are the extend to vm_event handling
routines, and its compilation shall be guarded by CONFIG_VM_EVENT too.

Although CONFIG_VM_EVENT is right now forcibly enabled on x86 via
MEM_ACCESS_ALWAYS_ON, we could disable it through disabling
CONFIG_MGMT_HYPERCALLS later. So we remove MEM_ACCESS_ALWAYS_ON and
make VM_EVENT=y on default only on x86 to retain the same.

The following functions are developed on the basis of vm event framework, or
only invoked by vm_event.c, so they all shall be wrapped with CONFIG_VM_EVENT
(otherwise they will become unreachable and
violate Misra rule 2.1 when VM_EVENT=n):
- hvm_toggle_singlestep
- hvm_fast_singlestep
- hvm_emulate_one_vm_event
    - hvmemul_write{,cmpxchg,rep_ins,rep_outs,rep_movs,rep_stos,read_io,write_io}_discard
And Function vm_event_check_ring() needs stub to pass compilation when
VM_EVENT=n.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
As the last commit, plz commited either in the last, or shall be commited
together with prereq commit 6435bdf209, dcef13c65e, 648fdf2bdf, 5ca05aad31,
and 48587d9448
---
 xen/arch/x86/Makefile      |  2 +-
 xen/arch/x86/hvm/Kconfig   |  1 -
 xen/arch/x86/hvm/Makefile  |  2 +-
 xen/arch/x86/hvm/emulate.c | 58 ++++++++++++++++++++------------------
 xen/arch/x86/hvm/hvm.c     |  2 ++
 xen/common/Kconfig         |  7 ++---
 xen/include/xen/vm_event.h |  7 +++++
 7 files changed, 44 insertions(+), 35 deletions(-)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 407571c510..f71ca9f18b 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -75,7 +75,7 @@ obj-y += usercopy.o
 obj-y += x86_emulate.o
 obj-$(CONFIG_TBOOT) += tboot.o
 obj-y += hpet.o
-obj-y += vm_event.o
+obj-$(CONFIG_VM_EVENT) += vm_event.o
 obj-y += xstate.o
 
 ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index c323d767e7..31859deb97 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -4,7 +4,6 @@ menuconfig HVM
 	default !PV_SHIM
 	select COMPAT
 	select IOREQ_SERVER
-	select MEM_ACCESS_ALWAYS_ON
 	help
 	  Interfaces to support HVM domains.  HVM domains require hardware
 	  virtualisation extensions (e.g. Intel VT-x, AMD SVM), but can boot
diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 50e0b6e63b..952db00dd7 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -26,7 +26,7 @@ obj-y += save.o
 obj-y += stdvga.o
 obj-y += vioapic.o
 obj-y += vlapic.o
-obj-y += vm_event.o
+obj-$(CONFIG_VM_EVENT) += vm_event.o
 obj-y += vmsi.o
 obj-y += vpic.o
 obj-y += vpt.o
diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index fe75b0516d..d56ef02baf 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -1615,6 +1615,7 @@ static int cf_check hvmemul_blk(
     return rc;
 }
 
+#ifdef CONFIG_VM_EVENT
 static int cf_check hvmemul_write_discard(
     enum x86_segment seg,
     unsigned long offset,
@@ -1717,6 +1718,7 @@ static int cf_check hvmemul_cache_op_discard(
 {
     return X86EMUL_OKAY;
 }
+#endif /* CONFIG_VM_EVENT */
 
 static int cf_check hvmemul_cmpxchg(
     enum x86_segment seg,
@@ -2750,33 +2752,6 @@ static const struct x86_emulate_ops hvm_emulate_ops = {
     .vmfunc        = hvmemul_vmfunc,
 };
 
-static const struct x86_emulate_ops hvm_emulate_ops_no_write = {
-    .read          = hvmemul_read,
-    .insn_fetch    = hvmemul_insn_fetch,
-    .write         = hvmemul_write_discard,
-    .cmpxchg       = hvmemul_cmpxchg_discard,
-    .rep_ins       = hvmemul_rep_ins_discard,
-    .rep_outs      = hvmemul_rep_outs_discard,
-    .rep_movs      = hvmemul_rep_movs_discard,
-    .rep_stos      = hvmemul_rep_stos_discard,
-    .read_segment  = hvmemul_read_segment,
-    .write_segment = hvmemul_write_segment,
-    .read_io       = hvmemul_read_io_discard,
-    .write_io      = hvmemul_write_io_discard,
-    .read_cr       = hvmemul_read_cr,
-    .write_cr      = hvmemul_write_cr,
-    .read_xcr      = hvmemul_read_xcr,
-    .write_xcr     = hvmemul_write_xcr,
-    .read_msr      = hvmemul_read_msr,
-    .write_msr     = hvmemul_write_msr_discard,
-    .cache_op      = hvmemul_cache_op_discard,
-    .tlb_op        = hvmemul_tlb_op,
-    .cpuid         = x86emul_cpuid,
-    .get_fpu       = hvmemul_get_fpu,
-    .put_fpu       = hvmemul_put_fpu,
-    .vmfunc        = hvmemul_vmfunc,
-};
-
 /*
  * Note that passing VIO_no_completion into this function serves as kind
  * of (but not fully) an "auto select completion" indicator.  When there's
@@ -2887,6 +2862,34 @@ int hvm_emulate_one(
     return _hvm_emulate_one(hvmemul_ctxt, &hvm_emulate_ops, completion);
 }
 
+#ifdef CONFIG_VM_EVENT
+static const struct x86_emulate_ops hvm_emulate_ops_no_write = {
+    .read          = hvmemul_read,
+    .insn_fetch    = hvmemul_insn_fetch,
+    .write         = hvmemul_write_discard,
+    .cmpxchg       = hvmemul_cmpxchg_discard,
+    .rep_ins       = hvmemul_rep_ins_discard,
+    .rep_outs      = hvmemul_rep_outs_discard,
+    .rep_movs      = hvmemul_rep_movs_discard,
+    .rep_stos      = hvmemul_rep_stos_discard,
+    .read_segment  = hvmemul_read_segment,
+    .write_segment = hvmemul_write_segment,
+    .read_io       = hvmemul_read_io_discard,
+    .write_io      = hvmemul_write_io_discard,
+    .read_cr       = hvmemul_read_cr,
+    .write_cr      = hvmemul_write_cr,
+    .read_xcr      = hvmemul_read_xcr,
+    .write_xcr     = hvmemul_write_xcr,
+    .read_msr      = hvmemul_read_msr,
+    .write_msr     = hvmemul_write_msr_discard,
+    .cache_op      = hvmemul_cache_op_discard,
+    .tlb_op        = hvmemul_tlb_op,
+    .cpuid         = x86emul_cpuid,
+    .get_fpu       = hvmemul_get_fpu,
+    .put_fpu       = hvmemul_put_fpu,
+    .vmfunc        = hvmemul_vmfunc,
+};
+
 void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
     unsigned int errcode)
 {
@@ -2949,6 +2952,7 @@ void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
 
     hvm_emulate_writeback(&ctx);
 }
+#endif /* CONFIG_VM_EVENT */
 
 void hvm_emulate_init_once(
     struct hvm_emulate_ctxt *hvmemul_ctxt,
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 0103f5c6ba..77cf541e26 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -5246,6 +5246,7 @@ int hvm_debug_op(struct vcpu *v, int32_t op)
     return rc;
 }
 
+#ifdef CONFIG_VM_EVENT
 void hvm_toggle_singlestep(struct vcpu *v)
 {
     ASSERT(atomic_read(&v->pause_count));
@@ -5272,6 +5273,7 @@ void hvm_fast_singlestep(struct vcpu *v, uint16_t p2midx)
     v->arch.hvm.fast_single_step.p2midx = p2midx;
 }
 #endif
+#endif /* CONFIG_VM_EVENT */
 
 /*
  * Segment caches in VMCB/VMCS are inconsistent about which bits are checked,
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 401d5046f6..218ac3d549 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -173,13 +173,10 @@ config HAS_VMAP
 config LIBFDT
 	bool
 
-config MEM_ACCESS_ALWAYS_ON
-	bool
-
 config VM_EVENT
-	def_bool MEM_ACCESS_ALWAYS_ON
-	prompt "Memory Access and VM events" if !MEM_ACCESS_ALWAYS_ON
+	bool "Memory Access and VM events"
 	depends on HVM
+	default X86
 	help
 
 	  Framework to configure memory access types for guests and receive
diff --git a/xen/include/xen/vm_event.h b/xen/include/xen/vm_event.h
index 27d0c74216..1b76ce632e 100644
--- a/xen/include/xen/vm_event.h
+++ b/xen/include/xen/vm_event.h
@@ -51,7 +51,14 @@ struct vm_event_domain
 };
 
 /* Returns whether a ring has been set up */
+#ifdef CONFIG_VM_EVENT
 bool vm_event_check_ring(struct vm_event_domain *ved);
+#else
+static inline bool vm_event_check_ring(struct vm_event_domain *ved)
+{
+    return false;
+}
+#endif /* CONFIG_VM_EVENT */
 
 /* Returns 0 on success, -ENOSYS if there is no ring, -EBUSY if there is no
  * available space and the caller is a foreign domain. If the guest itself
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 07:53:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 07:53:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168374.1494407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMLwq-00013N-F3; Fri, 21 Nov 2025 07:52:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168374.1494407; Fri, 21 Nov 2025 07: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 1vMLwq-00013G-C2; Fri, 21 Nov 2025 07:52:52 +0000
Received: by outflank-mailman (input) for mailman id 1168374;
 Fri, 21 Nov 2025 07:52: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=8OZ7=55=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vMLwo-00013A-SP
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 07:52:50 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 12bf1e15-c6af-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 08:52:48 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-640bd9039fbso2872541a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 20 Nov 2025 23:52: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
 4fb4d7f45d1cf-6453642d3e1sm3839441a12.18.2025.11.20.23.52.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 20 Nov 2025 23: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: 12bf1e15-c6af-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763711568; x=1764316368; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=axrZqBV3mKXmnVWG7OkKDfFPGKjg63rVz6AGDybPm5M=;
        b=Ki+Y7AIA5FbV8MN+LuSoN1EqbtVES4aXwaE/8vhrZzX/7ce9oh+6OJdpDYAaeSd8fr
         62Y/VeGhBD25JDTFQK+9tu5l9mVBwfIdaX24YAn8TDIXoqYnAvWFSIRQKVyFA7+jymzv
         7/esreJC2nmqefC4LTPZCsLbzzZDufxGNUkQdt/BVaHRqmZQpBxdZ18Yb44vQ1ew34E8
         E8Ph1PjrcZEpZBCxD3FkIaFBIJySi85qulKPPjmfUXjKY410qL0/VDJ/oss8LeewCVJF
         QHPjewE5F4hZTUbMc7JEd4sPJ66uSla0TP/7Gc6f5qNGvTvFN5hntXmx8/4aWYQNK+Qg
         lHMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763711568; x=1764316368;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=axrZqBV3mKXmnVWG7OkKDfFPGKjg63rVz6AGDybPm5M=;
        b=NATx0jZqlgFFOXPUKU1qBB0s+vW8lA2xS7pGz5H1tTpvQNYeFdsYX2nRRtUsCQ52kl
         a2nt644qOoN99tplcNBQLUiH/DyQQItFX5QcxBStOwnx4l2cU1taXp5SCsdCkaNNJX7b
         giP+7minAIqLdO5n6B2sZGfmqqahk5fdV4iWgY7ZIFWNmWvT8IGyX3EBNFBxPqfsMvQW
         IiMsSfhhb6Zk/L9r3KCFdekJqns3P+kD885P2meZbTuus32Zv9NCgRmAwsPNEPJj5k/l
         vi901EoFa9M7WwEAlpMj0U9T9/Qbz0g8x4i/3Y0zHM9g/s5ZHGwQc9Tbv1e67+nkfJCx
         w0mg==
X-Forwarded-Encrypted: i=1; AJvYcCXsORYGkQzLW/hjOtJaP1V3bvOknL26qirV5TZd4DXUUoiPaTSQQx9k/YLfF3hg4y1Me/nihG4aXRk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZtX15zz0ZuT63Riot1cw8nU37KDEvecb7HZiWiIGsG1ROzMIp
	gBDfla0BIfJQsvFge0H/8HB5hLDbsVX+iDAWL8ifyGpYSMS6uoGk4GyxOlA1QHf45Q==
X-Gm-Gg: ASbGncu3e7KLPR0mfN/dIznOX7DzmEYPtRLeCs+0Zqccr1kvQ9DxFEgmN81T8cGAr0T
	tvpPKR326BKYKh4YWJm2tDgzuA/esv2hGeNcLYHkYXMg9+uKLGyBYt/jwgmm8bkDnw4MaPUj+2a
	5i3vtxYI7TNpcSO0eQhgcIpfriHvLGQ6PPxYox5hKHroVFqDwxEBf5lT87hMK2q5Y7BhcvXpxMX
	2PDmZ8RsE7MPWswmY2Mm6MPwA6ArwgAh9qZYfu5t54wYNHJeZlFy2axrTvXrcimAPt9XJkRGFlF
	rKocruNAhpYoQszmzSYmFfZzK8fThEvWvnU4941upFQBh4ztW+fftQML6ZVScxVweCCPZtVP60h
	FxX9yMRZPA6gB06P5wBA9A0l12i3Rp2XZc5MovUrkAg3e204H0Rrno/xnf46wEFKt1UkTd8Hx8T
	7OH6MgOvt5OC52scskzUTFrCYaqVQt8BPIA/D9Jx4DjBwis4661FtzlCK89mi39+qpMAm/gYvnD
	mM=
X-Google-Smtp-Source: AGHT+IEUazq+4UEnov9tO0s3PKNVbCmPEaIkIr/XM//dIafxPiubfB8Yq/bLH76W5CTSPPRNi+bl5g==
X-Received: by 2002:a05:6402:254d:b0:643:1659:758a with SMTP id 4fb4d7f45d1cf-64554677268mr1279770a12.28.1763711567999;
        Thu, 20 Nov 2025 23:52:47 -0800 (PST)
Message-ID: <04570040-beee-4150-907a-20ffacfda689@suse.com>
Date: Fri, 21 Nov 2025 08:52:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/7] xen/xsm: wrap xsm_vm_event_control() with
 CONFIG_VM_EVENT
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251121074803.312568-1-Penny.Zheng@amd.com>
 <20251121074803.312568-3-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251121074803.312568-3-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2025 08:47, Penny Zheng wrote:
> Function xsm_vm_event_control() is only invoked under CONFIG_VM_EVENT, so
> it shall be wrapped with it, otherwiae it will become unreachable when
> VM_EVENT=n and hence violating Misra rule 2.1.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> ---
> v1 -> v2:
> - new commit

In which case - where's the R-b coming from?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 08:11:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 08:11:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168402.1494416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMMES-00052X-6C; Fri, 21 Nov 2025 08:11:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168402.1494416; Fri, 21 Nov 2025 08: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 1vMMES-00052Q-3B; Fri, 21 Nov 2025 08:11:04 +0000
Received: by outflank-mailman (input) for mailman id 1168402;
 Fri, 21 Nov 2025 08:11:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rfdr=55=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vMMEQ-00052K-98
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 08:11:02 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9d798709-c6b1-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 09:11:00 +0100 (CET)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-5957753e0efso1762161e87.1
 for <xen-devel@lists.xenproject.org>; Fri, 21 Nov 2025 00:11: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: 9d798709-c6b1-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763712660; x=1764317460; 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=bDI502NeGSM3bNc6E0vlRG07doDTXfl1100MZKBUhW8=;
        b=AVFBgn5tPQI7P3aao9wu75pPLu7eNqWv+JxiC/PZCGSgEdlCcSDyxllT4WYqLbnu6w
         IuIRm4xX+OrqdBT9UktFZaCweZ+3Rkowyh//M5fl2YUWvjEyWkVCHZlqTV7ubIv9Kw9m
         5sZ1CziTnWhkHZn0+qNXt8NizTOYFSmvy0Wc9soIcFW5TXuTs2+B8DtNszokpUsz46wB
         8l3H5pxdhITw4tWaW2+kWdmR/FDh362/UDNxfGYaU46U3m8JWbLHXPXUECF/cR5+rsN7
         juNw3/ZCjBsBtsAgYHN/FOepgN1C9tvAk2+gVkS80F5jUq+fmLcJzdFxd9papePN17g5
         e+lw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763712660; x=1764317460;
        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=bDI502NeGSM3bNc6E0vlRG07doDTXfl1100MZKBUhW8=;
        b=ASdFyy4TCKqAUwQHPPSWH+TjnuhFKojlmWviXq40e5rbJp/kmx3Emo7wuOweexPFk+
         z7NfKlTpoVwlLQS4StE11SDthnn2ShOKIR4ndmh2MAgN9eSUiEJRyobmoiYnhSodzrCz
         f9kYW+0Ek0kX02M8upyc3hxeVVuxyYTCPVe31pdqUzKtL1wmQzaTJPAYTIn9vjZKNKat
         B6/s0JjqF4V5zDvCJuxtqhCrqkVjMnNf5dXWNKOjI+X32UULCHx1OmLD4VyA0ueTg/j9
         OplVB9yz9JbSTmptXMMkN625oHAUgU0Q2C8+Y0706qfB2Nug/J6pfBfH7+NIorIM+G0o
         uONQ==
X-Gm-Message-State: AOJu0YwwoQWEhE53WyawoErP2fynqWikGIScjQfcngT4mEFPb+Elgyrs
	Rq/D0KN9qL7/w2JOmvv5566NNd43NAwCR6OwUkD9IwMzfWy0zFcYdI7vzLEBlt+9MbOUoteciv8
	mmWf6wsYNnM/nXBjE2etvcasFF+C0lQBxhyf1vIk=
X-Gm-Gg: ASbGncsIoKludSoPogV0/PXGp4cUAqCQNRqercySabpMPA09R42FvXmK5UkCV5GmF8D
	T4YW9QZeaqZ6VRVQJf6RW35pHXs7SCXF/vE4MSfva8kbAmWnnKST445MXGO49XtRAvaY3es1ONZ
	JBUhU5ONieVhDqRTgqwy0SiUae3kmKVnrOhsliH9+BZP2WhcHI9FgFYAWj8o4rqnDl+dXrOeSQu
	0+rfVhOrAlZ5AYLw5FL7DHhViF7sYuAvDacrKYt3ivBBe3B1niSUqixCo5tTYfcRQwGkxw=
X-Google-Smtp-Source: AGHT+IELUkdA+82lDS7w1J1rEZBqOXf2ibAQLzbicJclvPK3vWm0ltpzABiqyegRA4nCUMXEGhPOc25FnFnUq+apxdc=
X-Received: by 2002:a05:6512:3ba2:b0:594:28f6:b065 with SMTP id
 2adb3069b0e04-596a3ebe090mr560741e87.17.1763712659345; Fri, 21 Nov 2025
 00:10:59 -0800 (PST)
MIME-Version: 1.0
References: <cover.1756763487.git.mykola_kvach@epam.com> <781c8e1b3a4d9b269bfde125072a84baae3f9bb3.1756763487.git.mykola_kvach@epam.com>
 <0ac3217d-f3d6-4bac-ac27-0afa6775f03c@xen.org>
In-Reply-To: <0ac3217d-f3d6-4bac-ac27-0afa6775f03c@xen.org>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 21 Nov 2025 10:10:47 +0200
X-Gm-Features: AWmQ_bmQ3WWy1p0oFaseFppTULGrykdIclkP_r4_oYM0IXe8jFpNBZSlpXcMUmc
Message-ID: <CAGeoDV_ATk0kEpSZ6xhvncn8+19QqsQx4TMu_WQg2j5j7=Hhyg@mail.gmail.com>
Subject: Re: [PATCH v6 01/13] xen/arm: Add suspend and resume timer helpers
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, 
	Mirela Simonovic <mirela.simonovic@aggios.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Saeed Nowshadi <saeed.nowshadi@xilinx.com>, 
	Mykola Kvach <mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Julien,

Thanks for your review and for the time spent on this series.

On Sat, Sep 13, 2025 at 2:04=E2=80=AFAM Julien Grall <julien@xen.org> wrote=
:
>
> Hi Mykola,
>
> On 01/09/2025 23:10, Mykola Kvach wrote:
> > From: Mirela Simonovic <mirela.simonovic@aggios.com>
> >
> > Timer interrupts must be disabled while the system is suspended to prev=
ent
> > spurious wake-ups.
>
> Yet, you don't seem to disable the virtual interrupt. Can you explain why=
?

Thanks for the question =E2=80=94 looks like I missed calling this out.

The virtual timer is already disabled on vCPU context switch. During the
suspend flow, ctxt_switch_from() calls virt_timer_save(), which clears
CNTV_CTL_EL0.ENABLE and preserves the timer state in
vcpu->arch.virt_timer. Therefore there is no live virtual timer interrupt
source by the time time_suspend() executes.

Also, the context switch happens before the suspend tasklet is invoked,
and time_suspend() is called from that tasklet.

>
> > Suspending the timers involves disabling both the EL1
> > physical timer and the EL2 hypervisor timer.
> I know this is what Arm is naming the timers. But I would rather s/EL1//
> and s/EL2// because the physical timer is also accessible from EL0.

Thanks, makes sense. I'll drop the EL1/EL2 wording and refer to them as
physical timer and hypervisor timer.

>
> Note that Xen doesn't use or expose the physical timer. So it should
> always be disabled at the point "time_suspend()" is called. I am still
> ok to disable it just in case though.

Right, Xen doesn't rely on CNTP, so it should already be disabled by
the time we reach time_suspend().

>
> > Resuming consists of raising
> > the TIMER_SOFTIRQ, which prompts the generic timer code to reprogram th=
e
> > EL2 timer as needed. Re-enabling of the EL1 timer is left to the entity
> > that uses it.
> >
> > Introduce a new helper, disable_physical_timers, to encapsulate disabli=
ng
> > of the physical timers.
> >
> > Signed-off-by: Mirela Simonovic <mirela.simonovic@aggios.com>
> > Signed-off-by: Saeed Nowshadi <saeed.nowshadi@xilinx.com>
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > Changes in V4:
> >    - Rephrased comment and commit message for better clarity
> >    - Created separate function for disabling physical timers
> >
> > Changes in V3:
> >    - time_suspend and time_resume are now conditionally compiled
> >      under CONFIG_SYSTEM_SUSPEND
> > ---
> >   xen/arch/arm/include/asm/time.h |  5 +++++
> >   xen/arch/arm/time.c             | 38 +++++++++++++++++++++++++++-----=
-
> >   2 files changed, 37 insertions(+), 6 deletions(-)
> >
> > diff --git a/xen/arch/arm/include/asm/time.h b/xen/arch/arm/include/asm=
/time.h
> > index 49ad8c1a6d..f4fd0c6af5 100644
> > --- a/xen/arch/arm/include/asm/time.h
> > +++ b/xen/arch/arm/include/asm/time.h
> > @@ -108,6 +108,11 @@ void preinit_xen_time(void);
> >
> >   void force_update_vcpu_system_time(struct vcpu *v);
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +void time_suspend(void);
> > +void time_resume(void);
> > +#endif /* CONFIG_SYSTEM_SUSPEND */
> > +
> >   #endif /* __ARM_TIME_H__ */
> >   /*
> >    * Local variables:
> > diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
> > index e74d30d258..ad984fdfdd 100644
> > --- a/xen/arch/arm/time.c
> > +++ b/xen/arch/arm/time.c
> > @@ -303,6 +303,14 @@ static void check_timer_irq_cfg(unsigned int irq, =
const char *which)
> >              "WARNING: %s-timer IRQ%u is not level triggered.\n", which=
, irq);
> >   }
> >
> > +/* Disable physical timers for EL1 and EL2 on the current CPU */
>
> The name of the times are "physical timer" and "hypervisor timer".

Ack

>
> > +static inline void disable_physical_timers(void)
>
> "Physical is a bit misleading" in this context. All the 3 timers
> (virtual, physical, hypervisor) are physical timers. My preference would
> be to name this function disable_timers() (assuming you also need to
> disable the virtual timer).

As explained above, CNTV is already disabled before suspend, so the helper
only targets CNTP/CNTHP. Renamed it to disable_phys_hyp_timers() accordingl=
y.

>
> > +{
> > +    WRITE_SYSREG(0, CNTP_CTL_EL0);    /* Physical timer disabled */
> > +    WRITE_SYSREG(0, CNTHP_CTL_EL2);   /* Hypervisor's timer disabled *=
/
> > +    isb();
> > +}
> > +
> >   /* Set up the timer interrupt on this CPU */
> >   void init_timer_interrupt(void)
> >   {
> > @@ -310,9 +318,7 @@ void init_timer_interrupt(void)
> >       WRITE_SYSREG64(0, CNTVOFF_EL2);     /* No VM-specific offset */
> >       /* Do not let the VMs program the physical timer, only read the p=
hysical counter */
> >       WRITE_SYSREG(CNTHCTL_EL2_EL1PCTEN, CNTHCTL_EL2);
> > -    WRITE_SYSREG(0, CNTP_CTL_EL0);    /* Physical timer disabled */
> > -    WRITE_SYSREG(0, CNTHP_CTL_EL2);   /* Hypervisor's timer disabled *=
/
> > -    isb();
> > +    disable_physical_timers();
> >
> >       request_irq(timer_irq[TIMER_HYP_PPI], 0, htimer_interrupt,
> >                   "hyptimer", NULL);
> > @@ -330,9 +336,7 @@ void init_timer_interrupt(void)
> >    */
> >   static void deinit_timer_interrupt(void)
> >   {
> > -    WRITE_SYSREG(0, CNTP_CTL_EL0);    /* Disable physical timer */
> > -    WRITE_SYSREG(0, CNTHP_CTL_EL2);   /* Disable hypervisor's timer */
> > -    isb();
> > +    disable_physical_timers();
> >
> >       release_irq(timer_irq[TIMER_HYP_PPI], NULL);
> >       release_irq(timer_irq[TIMER_VIRT_PPI], NULL);
> > @@ -372,6 +376,28 @@ void domain_set_time_offset(struct domain *d, int6=
4_t time_offset_seconds)
> >       /* XXX update guest visible wallclock time */
> >   }
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +
> > +void time_suspend(void)
> > +{
> > +    disable_physical_timers();
> > +}
> > +
> > +void time_resume(void)
> > +{
> > +    /*
> > +     * Raising the timer softirq triggers generic code to call reprogr=
am_timer
> > +     * with the correct timeout (not known here).
> > +     *
> > +     * No further action is needed to restore timekeeping after power =
down,
> > +     * since the system counter is unaffected. See ARM DDI 0487 L.a, D=
12.1.2
> > +     * "The system counter must be implemented in an always-on power d=
omain."
> > +     */
> > +    raise_softirq(TIMER_SOFTIRQ);
>
> I think we should add a comment about the physical timer.

I'll add a comment in time_resume() clarifying that the physical timer rema=
ins
disabled in Xen, while the virtual timer is restored per-vCPU on
context restore.

>
> > +}
> > +
> > +#endif /* CONFIG_SYSTEM_SUSPEND */
> > +
> >   static int cpu_time_callback(struct notifier_block *nfb,
> >                                unsigned long action,
> >                                void *hcpu)Cheers,
>
> --
> Julien Grall
>

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 08:29:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 08:29:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168415.1494426 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMMW1-0007cl-Ga; Fri, 21 Nov 2025 08:29:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168415.1494426; Fri, 21 Nov 2025 08:29:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMMW1-0007ce-Dv; Fri, 21 Nov 2025 08:29:13 +0000
Received: by outflank-mailman (input) for mailman id 1168415;
 Fri, 21 Nov 2025 08:29:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QF7N=55=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vMMW0-0007cY-25
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 08:29:12 +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 2729e5d3-c6b4-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 09:29:11 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH0PR03MB6068.namprd03.prod.outlook.com (2603:10b6:610:bf::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Fri, 21 Nov
 2025 08:29: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%5]) with mapi id 15.20.9343.011; Fri, 21 Nov 2025
 08:29: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: 2729e5d3-c6b4-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=w3aoGCuUw2QBkgZib9EGPV6JhwoUWpn+Xu9qkoaH90pu3+4CRVq2pahK++Rgebe11BgCd/u0Tpd+pOueJH4BQWMrzsleDqGwg0/EYeTtpu1Z970t6UfUERR54ZUhWVyEKu3OZC/PrtN7IAd5ByHKukFF66t+x08XGizH1TVmRz7cv6/1gOvWWSLtdVzU1ZmkGRYYpFXT5ITF7wtIiiaTXk9U1GB0mE2OUFvUjBjQZ7mOi0T4xCKvsCwsxpzMAcV7AY/fQnnWK37OHiEMywaq2Ym8QHNbJ/4cNKbEIM3x3qaFUPRxTo+2O7zuezrxbw9BLR2wf246lxk/RLGt6LqI5A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=m3+FLy3ZaFZ+1WFf3VTb4XnajdGp2/5/++y2cxypV9Q=;
 b=N52VDWI9lLgaGB5kBvtpSz14nJBBZ28owM9Pyf8K5RYAI5inK0x3zbbI6LJfVeHL6NlkCl+LYZ8oGsxN1VSOQifUx+avLUB0B6uhHMuf7TlqNy9HecXSyc7LW3m8rSr7KYP6Ro9mRGexLu3PzkZVwQLSm8wurBWMPdBVpz7mL7dl3h5izZICjbzc+Vi+y6O6l5rIzp5MnFQcn1vvWGnqTPNKyA9AW1XkIsOQrkrEdIhcMuA4XHfy6T4aygUqypZD2UuNb1jdsLRcMbfqN9cVi2zXm8bURqCkaKsow6fK+gNZNdnTue1HZoPZnOuF3e/dyXxcrI9odD66t6glxVKkpw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=m3+FLy3ZaFZ+1WFf3VTb4XnajdGp2/5/++y2cxypV9Q=;
 b=THgLxGhMzMTIDkIYN6qeOhWU/1Ekih7NxwEFliOragjDRJY3Lyd6rLtHRdCOVsgjdp4wMbO/aQJtWKvk93K5IzbwZl1LuMrpogeSQBYm9z0IdPgf8OR9av11ZCM4XF6OUuzshEqkZxNKKArO36FEMwzoY9fGHX8fLiSz3pLVN1w=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 21 Nov 2025 09:29:04 +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
Subject: Re: [PATCH 04/12] x86/irq: set accurate cpu_mask for high priority
 vectors used by external interrupts
Message-ID: <aSAi0IyDBKhqND3W@Mac.lan>
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120090637.25087-5-roger.pau@citrix.com>
 <3491d3ee-08b8-4678-9f18-5a4daa972e02@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3491d3ee-08b8-4678-9f18-5a4daa972e02@suse.com>
X-ClientProxiedBy: PAZP264CA0011.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:21::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_|CH0PR03MB6068:EE_
X-MS-Office365-Filtering-Correlation-Id: bb387e35-1dcc-4d15-5de4-08de28d80a25
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?UmVDUnVJekJGL2N6eWdTd2ZiWExjS0FLUzc1bGFkeEJYMFozWHJZT1cwUzNN?=
 =?utf-8?B?RU94bW02YjFOVG91L1p0SzBVL3pxSlNKMXRVZk1XZHkzcURqL0JXSUE3YjE2?=
 =?utf-8?B?Rk9JbUpBTGNjdllWU2JMTGsrbWZzSnJVRTlRc29RMEJ2SU1SWXo4MmF0WTNX?=
 =?utf-8?B?alJjNkg1Y3lINE9NN25CQ3I2T2lSNFFlUWh3a254V1Boc0tVZWF4bkthV1VV?=
 =?utf-8?B?OGpQWDBCeDRuY1Q4dFRVWTJoWWoxR2dhSnAySUxKblVEdk5xbXpCdGMxM0dG?=
 =?utf-8?B?ZmhheGZxY1N6cjNETksrbUwrV2o3OG5xUjdxSTEwTWNBYmFNN0RTSnYvekdG?=
 =?utf-8?B?dnU2OGxvTkJpc2d0dTU2ZDNFSkg2b2ZkV2ZzUjNnY1JiWEVtMm1HYXl0NnJH?=
 =?utf-8?B?NFV4YjVqKzhmbGs3YXdqTU50aE85V0ZpbXppNHhhYUFvYitaSy81aFN1TUpG?=
 =?utf-8?B?NktTNXRFWVE5MlBWNSt5UGFHQkdxTnlpTDFOeWswTUgxcitjWmRqWUkwTk1n?=
 =?utf-8?B?ZTU3eERpOUl1VURDUXZwTWVXMmNpbDVROUdocldZVXlZTFlWbEh6cUVjUWNy?=
 =?utf-8?B?Y0tyMHFSSm9XNFRtem1pRTRkN1VtYXR4dDltWTZyMUdqSThLM2pVZTQwSzFP?=
 =?utf-8?B?SFhVM0Y5NmcvRTNTakFnL0s0ZitDVDN5YW01UkFrdU1MS1JkL2RhcC9FN08w?=
 =?utf-8?B?cUNNQnUrQWl3VU1NWjdFSTdPYmluWGpTRWNlS3ZieGhneVZuMzJJTmk0QXIv?=
 =?utf-8?B?NFZhUGk0U0RROUVsSUY4ZGpyYmFueXV0eDV2TjI5VDZaN1dqelFTb0M0YXJ0?=
 =?utf-8?B?QUZKdmZsZjRKaVRjWG9rd2lScjVUZ29vZVFVcG1XT1RrdnVoeDBKejRacjlw?=
 =?utf-8?B?VUlTKzRWdjRsSlliYjlIek9kT0FVYmhNN1Jaa0ljSjdVdTlrdnhmU2JOTmFq?=
 =?utf-8?B?OWhoZTA5VysrOXU3VkJVSHhtcENCWmUyNjA5SDFTTmU0WkpzaldUZXcxeTZC?=
 =?utf-8?B?Y1ZjSXpEQ1MzQzFCVkJPU2RVdmVqVGk2RCs3VHhhdXIzaFBvVDBETkpLT0NN?=
 =?utf-8?B?UzYzYzhiQmQzSjA1SnpkT3hka1lIL1dldkJ2RUo5Z1A2Um56YUN4QlFheHNH?=
 =?utf-8?B?SEp3TEhnWmZiMy9RajFUUkE3Wnl4RFdDZ0ltY2w2SFVMZzROUnVySlk3bis5?=
 =?utf-8?B?RC9OdlZSNGs3Z2JnNjZLVmpQT0hKTjJHSW0wSjRZMTVRVzlISUphdVJheWVu?=
 =?utf-8?B?N3BVN0VHdjlMT3JNRkJhUitpeUU2Si9ySm9rUlRiSm1ZNm9vVHMyS0ZmQ1FX?=
 =?utf-8?B?bVI0MUFnQWp5dVdDQjhTTEpkb3VDTVZlbDJhM0RpWktZZXpSSkEzNzFxcjBW?=
 =?utf-8?B?M3Jsa1hHT2dObWtEeHJGL3ZMcFNxK1htaDNSS09oRTE0QVUwWDFOczkzUFVL?=
 =?utf-8?B?c1BSZUVhNUZKRnZMQXRXanpCRXl1V2hNM00yUHNwUlgrSFEveVlYT0tYMXhU?=
 =?utf-8?B?d1Fmd1FMS1hoWENDL0ZQTlFiMlhlNDFjSVRkYjJpNXNuK3d0ZXJPQytmMHhs?=
 =?utf-8?B?cVFYUVZlTjRXMmNBU25aelJkRW1HRGU4SVdXMHVIdG9uZlNTTy9UdlJ6cllj?=
 =?utf-8?B?SWlucXBQZ0kreHR4YkJTZ01ZK0xNN3JVWlQrRjRDbnhGTVM4NjRxK0xrdDF2?=
 =?utf-8?B?MXZzaXkwbERCMnVhOUlYdkd3cjhUWW9ZOWc4eWhpN3g1RGZQNHJjYVBkYWFG?=
 =?utf-8?B?T25sQlBrckpqa1R2RXp4bW5DcXhmS09NUHI4dGlhcWFNZENCUkRHTmZibDJH?=
 =?utf-8?B?bXFqQlEyRCtvZENqK0VFYWZ4WlVSQ2cvZXg0bGwrSTdvOG1qTVI1T3RDTGw0?=
 =?utf-8?B?RmJRWU5SVzVqWHN2Zkl6c0ZoM09pL1d4K2ZUblBreGRNQlhnbVUrMHVuaXQx?=
 =?utf-8?Q?IewRBDu7fePR+nMWVfJfkIA5+zVxSMv2?=
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?VXhncDdXVzFQSzFSZmZqdGxxMDhFbk8rcHo2Zko1QW42eCtvMWJLNENsOVBR?=
 =?utf-8?B?cWtLbEQyZ3BQM3BBdExMTktZZUFBRVIyTVR2Rytkcll5aG1QNngyZjZsQkYw?=
 =?utf-8?B?OXc4enRlaTZOUDhhOU5OY0o3eVlqUzd1NEYzMVdPeEZ4WHliSGFDMHpKNlZT?=
 =?utf-8?B?OU9LVkt4dlNHREtpZVVwL1Nwcjh4U0xLZE12anliUmM5VUZ4aDdGMlFIMjE2?=
 =?utf-8?B?TEFRdHArSThhQmtodVVxQlhyYkFYdnBKOGVYZXpMZ0xWd3plMndSazB5cG1I?=
 =?utf-8?B?M0VBRU9iUFUvWHJkcXVVdnVSMWxLaTNwaXlIYjc0TmtNZk9rRDVaU25hU2xM?=
 =?utf-8?B?dGRQWVU1Ukd6Z2EvL2ZNbXVNSGtGOG1IVjVoOEhnSEtVc1REMzVscHM3aThR?=
 =?utf-8?B?Z01XOTdwWW1vTjRlYkZyb3MxSUphRVRzdkZBdkQ2TE96Uk11YU9hTktRaTFL?=
 =?utf-8?B?UU9xRHIrTG9hWFg5TDYyclFTTHY4S1p4VzV1cExaYllPaXpWWHlHMzVWbzJi?=
 =?utf-8?B?aVNtbTl0SGx3MFVwYTFLVm1QbTFvcFJtUFRacGlOU3BUNlRmc2xxams1TXhs?=
 =?utf-8?B?V2NVQnBRdlFsSmdNK1ZlWWNrQ1craW4rWXlDc1d5NUw0OWFSNDNFY1hyUlpX?=
 =?utf-8?B?TVZicTZIaVJHWnlrUDM4bmxpcXc1aDVFMzZWbC81TURWNXgrSlpSNEJqbE03?=
 =?utf-8?B?Qmk4T0lVQ1AyRFkySk00MGhiZDRqL2xIUHhGZ05ucUtpZ0JZbXBEUEJlNCt0?=
 =?utf-8?B?cmZ3RHJDa1QwUU1BbVM4ZFRBUlQ5OFNuZzY5a0hkMFNTVldBaHhGWjM1Qk5y?=
 =?utf-8?B?OXdZTHN3bGdPUU9kWHpxSFZwSDRoeTFZQWZ4enhxRnpPTmgwdTVONjlFVkRJ?=
 =?utf-8?B?dkVMQk5kWTJvamg3Ty92eUE5OU44NE1oL0ExTjZvK3JBRWhQZUdLY00yK3pw?=
 =?utf-8?B?VXJ2VkFRL1kvWHVFbXNmZzFZYVNJSmFkMzdiTERsMVozckptME42cXhPRlhq?=
 =?utf-8?B?SUptNlhCd3d3Q2NMM3dvUGFYaFV3R1J0M1BPbGxSRENxYlJYZHdCU01wK3Zu?=
 =?utf-8?B?STltd3l6TDlFOXZyQlpka1QxN29xdHVqdlc5akVWVzIxbllBRkJHTnUvb0pz?=
 =?utf-8?B?SGIwY2dhUHBNanNZdlQwWk5CVk5IZzBvQmJwWjB5WU1xRmFQOWhLUm1oVk5a?=
 =?utf-8?B?RjRiUmc0VVBWcEZBcnY0NEdUYXlqVHlkaTU4RW8xU2trZXd0aFdwSWtRREc0?=
 =?utf-8?B?bVZ1eGt2QUFscDJXTHN0ZC96VEtJN2tkZDljVDBWRmVLR0F6eEREMTJ2K240?=
 =?utf-8?B?aENPWmZ1R3pOZ1hpalRlWDhROTZlVE9wZWxvREphL3VGQlRlaGJiQUI0amxt?=
 =?utf-8?B?QUdpQ3ZRVG9zZHMxSnAyYXVGY0s5NGdBRVBPMTFCZ1lQejlpSFFzU2xEditX?=
 =?utf-8?B?M1FPQnB1Nk1WZFU3bzhpZlFpTE1jNHcyb3p6U1o3eEdTTkFmOWwxeTM0QVQ1?=
 =?utf-8?B?Yjg5TSs1dU1ScU14THJKOU5qSnNJVHdpbWdkcVFHRFdvU2NnT1p5N1BsQkp1?=
 =?utf-8?B?Q0gzOVh6WXRseVp5c2l1Y0R0TlVYa3VBdGhyaTd2QU8xSHcza2xsVE1uUTVw?=
 =?utf-8?B?YXBKMEpKL3pDWjlpaXQ1UlJnNllhbkdJaHRLejRpODlmbGFjVWVoZUZYZEV5?=
 =?utf-8?B?dVh3MDdhSzI4V2RxWkp5Zk5vdThHOTdMUlQzYmdINlNDeHFXaFV3RXJhdHJL?=
 =?utf-8?B?NGErWnVsTkRjdTRIald3YVFzeGFlQ1pWSi9mTWNIM2htZkZGdE5IdFcxUEx2?=
 =?utf-8?B?c3QrSDRhVnhqQlRpcDQwek5TaVY1a1pyTGhJMzdwNWMrMjNGbjNmb1BLbVNM?=
 =?utf-8?B?dGZqSUxIbk84WlpiWXBUODh0UnBMVWFYUDB2a1d0NHlpa2JJMGs2Ui90ajVK?=
 =?utf-8?B?M21TODZXU2lSSVFVMkhGLzdRVzFwekJieGV5ZStITGtVc2Y2Mjc3ZlBaRE83?=
 =?utf-8?B?cFl0Y3E4Zkc1ZmRSblNkQTMwR2VSTlhXc2hZK2N0Qk9EMWxXL1ZKK243R0FK?=
 =?utf-8?B?TWgwWDdXTmdzeE1Bc0tJbksyRjlZd3BHMVM2VWhWbHNSNWx2WXpMQ3JyRFA2?=
 =?utf-8?Q?fHQNkDtK9BlvLeQkwSPf6Sv4V?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bb387e35-1dcc-4d15-5de4-08de28d80a25
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 08:29:08.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: qTX6Va5w+cxipvK4CA8n6W2KosRVanGdmSeaz4LsrQ8+qAPoW8LPIREpbyD3SIm0v/MH/zkvf2AKvZnCoJwcbQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB6068

On Thu, Nov 20, 2025 at 02:06:39PM +0100, Jan Beulich wrote:
> On 20.11.2025 10:06, Roger Pau Monne wrote:
> > Setting the irq descriptor target CPU mask of high priority interrupts to
> > contain all online CPUs is not accurate.  External interrupts are
> > exclusively delivered using physical destination mode, and hence can only
> > target a single CPU.  Setting the descriptor CPU mask to contain all online
> > CPUs makes it impossible for Xen to figure out which CPU the interrupt is
> > really targeting.
> > 
> > Instead handle high priority vectors used by external interrupts similarly
> > to normal vectors, keeping the target CPU mask accurate.  Introduce
> > specific code in _assign_irq_vector() to deal with moving high priority
> > vectors across CPUs, this is needed at least for fixup_irqs() to be able to
> > evacuate those if the target CPU goes offline.
> > 
> > Fixes: fc0c3fa2ad5c ("x86/IO-APIC: fix setup of Xen internally used IRQs (take 2)")
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> with one further request:
> 
> > @@ -756,12 +770,10 @@ void setup_vector_irq(unsigned int cpu)
> >          if ( !irq_desc_initialized(desc) )
> >              continue;
> >          vector = irq_to_vector(irq);
> > -        if ( vector >= FIRST_HIPRIORITY_VECTOR &&
> > -             vector <= LAST_HIPRIORITY_VECTOR )
> > -            cpumask_set_cpu(cpu, desc->arch.cpu_mask);
> > -        else if ( !cpumask_test_cpu(cpu, desc->arch.cpu_mask) )
> > -            continue;
> > -        per_cpu(vector_irq, cpu)[vector] = irq;
> > +        if ( (vector >= FIRST_HIPRIORITY_VECTOR &&
> > +              vector <= LAST_HIPRIORITY_VECTOR) ||
> > +             cpumask_test_cpu(cpu, desc->arch.cpu_mask) )
> > +            per_cpu(vector_irq, cpu)[vector] = irq;
> 
> Going beyond desc->arch.cpu_mask for hiprio vectors may deserve a comment here. When
> the vector is global, this is necessary. But for e.g. the serial IRQ (which still
> moves, but isn't bound to multiple CPUs, the more normal way of respecting
> desc->arch.cpu_mask would be sufficient.

Note that hiprio vectors are handled specially in _assign_irq_vector()
and the logic to set per_cpu(vector_irq, cpu)[vector] is
short-circuited assuming that hiprio vectors are already setup on all
CPUs.

> It is merely (largely) benign if we set
> vector_irq[] also for other CPUs. "Largely" because strictly speaking if that vector
> triggered on the wrong CPU for whatever reason, we rather shouldn't treat it as a
> legitimate interrupt.

I see, yes, we could handle hiprio vectors more like normal ones and
do a bit more work in _assign_irq_vector() to also set the
vector_irq[]Â array at bind time, but then we would need the cleanup
logic as the interrupt migrates, which is a bit of overhead when we
know the vector won't be re-used for anything else.

What about I add the following comment:

        if ( cpumask_test_cpu(cpu, desc->arch.cpu_mask) ||
             /*
              * High-priority vectors are reserved on all CPUs.  Set
              * the vector to IRQ assignment on all CPUs, even if the
              * interrupt is not targeting this CPU.  That makes
              * shuffling those interrupts around CPUs easier.
              */
             (vector >= FIRST_HIPRIORITY_VECTOR &&
              vector <= LAST_HIPRIORITY_VECTOR) )
            per_cpu(vector_irq, cpu)[vector] = irq;

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 08:35:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 08:35:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168427.1494436 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMMc6-0001B8-3g; Fri, 21 Nov 2025 08:35:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168427.1494436; Fri, 21 Nov 2025 08:35:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMMc6-0001B1-1B; Fri, 21 Nov 2025 08:35:30 +0000
Received: by outflank-mailman (input) for mailman id 1168427;
 Fri, 21 Nov 2025 08:35: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=QF7N=55=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vMMc5-0001At-23
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 08:35:29 +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 0454c7b2-c6b5-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 09:35:22 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BN9PR03MB5961.namprd03.prod.outlook.com (2603:10b6:408:132::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.14; Fri, 21 Nov
 2025 08:35: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%5]) with mapi id 15.20.9343.011; Fri, 21 Nov 2025
 08:35:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0454c7b2-c6b5-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sakXfkdhlWpibuLAeVw4gU/QFqcDCOv0LZIhgEdDuHIwTmObO2CpekUet01QCP+S68XQSayyfqMneJjX/2OvvpqOhYI9JS1z70iFRaiXM4m2wWvYDxqXmpFJDXG6h9Yq2AbvlsfyMNyaYXRhDx8WOumZFNxW45eEOdXPY1TTUxPenDt5+pQQ5LTOcTDok7qEQjo6qObyCo49YAmegSXOmPLOfNZ04O22aDXWZeqvMGCxlS5vki80vH78bgtDSKFnrspG79dUpsAijIlpXTWQVxReKpGF0j46PExT6/+HGyfGd0oKaf7SJyRhyRgfaULKSAd+dceo+37GXen55aqWcg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VrB1rjPRspIo44Td7iiOaT+uC2b5eHdGVTpyfXNCtoc=;
 b=Bpnjb6lySXfISNfPNC+jTMXqSwbmeMJYXeaM8HPlH5fD3Owht8sdAgy0HdQjMiebDKN9G3aR8NG86ijnJlp6Fx6J4EfjMuEcXiQgmG/k30MONSXZ0sEWgZowOOU3sanDJe80+qEXjUqsLXsGtD/tO8WqTcH0hYG2E0oORoMyVeWQPnUuvFjHKfRZtAeNQJDxlbtZKdOtyzL7df2lquyvOj5TMunu+se3WCM3/6L6XA2t7ZnlBpA1qF+8mK7SsYPG+yIRyQafinYyp6uXDiWfOgvRpyueONPa0StZeakOewx02yJa5OSrxsAU8KjVtEjQ7JbDtSGoo1CD0KkpegDv9A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VrB1rjPRspIo44Td7iiOaT+uC2b5eHdGVTpyfXNCtoc=;
 b=Clxs/6uHZJDgvZUkr6rtbb3vCazFQC5lFccUTyiwvHfGNnJuiZjB9VMzOvzECa71RlXPa6ce/TRaDycm1Hnisp8tB4DG3krRmHAu5kOfqApfB9+d3X6GRlBvwKNC2Zzb8CFHHPVeSD4au0QOrVbT08b5sNla+uJXx8vWlDlto5U=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 21 Nov 2025 09:35:16 +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
Subject: Re: [PATCH 06/12] x86/i8259: redo workaround for AMD spurious PIC
 interrupts
Message-ID: <aSAkROL4OqcZ8AAX@Mac.lan>
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120095826.25782-1-roger.pau@citrix.com>
 <126dc8bb-4f89-4a40-b39a-1b09d78b3eac@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <126dc8bb-4f89-4a40-b39a-1b09d78b3eac@suse.com>
X-ClientProxiedBy: MN0P223CA0024.NAMP223.PROD.OUTLOOK.COM
 (2603:10b6:208:52b::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_|BN9PR03MB5961:EE_
X-MS-Office365-Filtering-Correlation-Id: ab295cfa-4795-4de4-1183-08de28d8e72d
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?MjR3SXRpcHRTMU5pbko0c21aRTlMMlhIaFBXR0UvUnVRb0tscHpwZm8vOTFM?=
 =?utf-8?B?TDgrVERYc2NYV29CL2tWTlg2RnVITHpGb0JwMklYMzlndnc2N0FsaS91allO?=
 =?utf-8?B?YXdPWlRDcUwwajl5OG5FTEVwdUhlY1VQNEcxTGZ3b3VXS20yYWtGMmQ1RVRl?=
 =?utf-8?B?K3ZjcFJEWER0VnZNRHkzUUkyTHludmVGT1dpVXhKbFowaUpqTERXbFlZNjlO?=
 =?utf-8?B?NG84cy8rVnhwYjdvNGZyWHd3V0NXT0JEMk1MOUZIa0toVmUxL0dQem1GcWtn?=
 =?utf-8?B?WmNxV083a3BvSFo0YmRFS2VvN0ZCMzBEcjJuSGg5YjMzVVVSc3ZuSU1STG9s?=
 =?utf-8?B?cHBwcnJ0THlZeUswb1p6aFVEd0hrblJoQUxKY1VYY2JzVm02YnZpN0hXQXF3?=
 =?utf-8?B?SXgxazJzN1RleThZSVh5RXVOemlvN1kwV1ozT3FHMWJ2UUEvUW1ZTWI3K2x4?=
 =?utf-8?B?eDR2eXpVaGJQVkFDMWszL1hnaHRLeWswdXJXbXdpUWhSWHVjV1lrU3g1ajRr?=
 =?utf-8?B?Q1lBVW9OSlVwN3lxb3JIMEJncWdYZytxUXV5MGRXZTFPSWRPZk1vL1pHYjhl?=
 =?utf-8?B?RmtHWGZ6b2hHTWVGZktXa2hnanJ1dTJaZVdmdFlQL3BaTU1URStKc3hUbGIz?=
 =?utf-8?B?SHFnYmsrdFQrRDZITVRORHQzb2p1RDZRNmkxRWJHWHFuZ3BrSHlUS1JQSFBT?=
 =?utf-8?B?bHJqU3Y2OXM5L3pWUFN1Y1g4ME1odVhJVG9lRk42eDRma09pMU1wdTJYLzYw?=
 =?utf-8?B?TzI3cmwxRWYzVFVYWGMxaVBiK2grcGY1RWdhbkkxOVFxVStaSDhtMy9JS0NJ?=
 =?utf-8?B?NGhYMnV4NHp6ZUhBaFZxOHY1NnExSmoxbktqVHlHSUtQOEwySHpRLy9xeWZ6?=
 =?utf-8?B?UG04andYMWhVUjRtdForY3RVelpwdk91dDVKVE1FUmp5N1kwUTZGUnBWbnl6?=
 =?utf-8?B?TW9Pc21BUlZpS1RpUk5uL0xOYTlqeXQyVmtNSUptT0VmYldWTUh1c0dkZWJQ?=
 =?utf-8?B?VTRtTHFWYVM1b08rbmJ2Y211aXJWWXZLaG9LRmwyaU92OTFwT1VGRVFnWktD?=
 =?utf-8?B?d2M0R2huWks4UGl1UFlOdUVTSmcvQS96NHdBYzZWRzNXYUJid2w4VnRSeWVV?=
 =?utf-8?B?eWpFWEVJOExPTlNVTEhNS29DV2R5TEZVWGc4RS9mY2I3Q0ZQVmw2eUFYaXc2?=
 =?utf-8?B?WTQ5clpoK3l6QUY3QStNRDB3SmxtYllaNmxrNHRodE9aQk5EdlNIQUVsRDJG?=
 =?utf-8?B?clBzWlNIQkVYVEUrWUZ2dzlvS3JuY044RHBzMm9NdEUrWlJvTVNCT2oyN0ZD?=
 =?utf-8?B?ajBsS1RpMWtKVkdtWC9VL3g4WE0xZ1NqVjZZdHNabWlwUWhsRFpydGttdmty?=
 =?utf-8?B?SFBFL08yZGp2eUdPeGJvVWlNQlkwckwvTkdTTmdHYzZFVVk5cjI4RWJGOFVm?=
 =?utf-8?B?d1lvWHkvTUR2ajVISGt1bzRoaURmSjFhemo1UG84TUdlUW9YbmlzZlg4QmZS?=
 =?utf-8?B?UUs1VFBSMTdEM0xjSitKaVNqNzJKaU45MVgrWkJpTVJRUVRTVFk0eE96NER5?=
 =?utf-8?B?eE51THJoUlppbEREcS9uZldheUJMVW1JQjdKbjdwSVJxTEorQ2dUa3hWNC84?=
 =?utf-8?B?bEhvMktvbHpoTDBvTVgrZ1pEQ0F5aFFPMlpRKzljNzhwdVNZZmMvcDd2L2FT?=
 =?utf-8?B?d2dPcGNXWWxyUmtEV25BSGNTbzNVOWNBekRTMnpjMjRJUU1mZDhhK0JpWmw1?=
 =?utf-8?B?RUtnWVV5MzY3RmpLSGxpU0RhOUVZeE03NTkrVGdIbUE2SlJpUDhVZld2SENp?=
 =?utf-8?B?ajJEb0VaS3dmTnBRUm83c2dEaWFUL1A3YUllSU8xSkdqOUVqeVRoTm5CNEZM?=
 =?utf-8?B?WDc4ckVOVVFHQ0p0Z1ZkRjRSbjdmRmx5T2N5eWl5WXFCVkloZHozeDI0d2xa?=
 =?utf-8?Q?FLAJ7gHOrGOgJK3C/ZQPDbBEHaM8Mgtn?=
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?QnAvTGwzcmhDdjQydlFhanR5QndqVnFISkc4VEl5SFZENFJTUnhLQk9keDBm?=
 =?utf-8?B?UlBXNG9uTkV1ZnJKSTZTMkx5VFpJalUwRzNOelI0UmVMVGYyT1RvTG04NjVT?=
 =?utf-8?B?LzlLL2pDVTVOVFRZZnNONG56eUJ3TlpTQ3FqdVNNYWlMOFNzK2pnY095c2lZ?=
 =?utf-8?B?QmNXMUxNSFpOb2lDTkwwaHYybnZlOWg4YlFUQ3hwZWNxaG1ETkJvZnQyQmV2?=
 =?utf-8?B?cWhJVjhoQlptMDVSQnNDTmpCVHVUWEpVNjJDNXNwWTF5bFcwSTdtUGhxbndp?=
 =?utf-8?B?L0FkT2dyQVRwSWZ6TTBxbGdUR01mTGRGWUVCc2lrVytRMEkyZlVwMlBZRGNl?=
 =?utf-8?B?dnMxZG9Jcm4zN3BJZ3ZNOC8zeGtyR3lVQmRZa2hBUGtTSzF5VVNQNzhQeGg5?=
 =?utf-8?B?VCtlWmQxR1BWS3E3U2FGM1BodllEalpSbU5makljWGNHM2lJd1ZqZit0Y3Nj?=
 =?utf-8?B?RWFYSmRtTmFCNDlqaHhiNWJkdmNhQ3RVWTdGMDY4YnpGQjBMYkIxalh4MEN2?=
 =?utf-8?B?WWJ6dTlvUjZDRDJxeHRxZ1djeGZKOWJ3L09KT1psSXg4OXFMazdDb3hrNHVR?=
 =?utf-8?B?aHFFMzV5SloyRDlObUlzenFwY2RSMnhQZ3dqam1vY0hDY3BSUXdOVkZJa1NF?=
 =?utf-8?B?emQxNXppdGhzYUdvSzFBN2hTM01EUy9OWmgvOGwwajdyV2g4RHFHQnNOcFcr?=
 =?utf-8?B?cU5YeE5qKzZxRGJqY2NkKzV3a0VBaFhQK1pRNWp0RE9WdUtscDBrRmJ2TFlS?=
 =?utf-8?B?Tlp5bU95SEhGUWp1dThxYVp1YnE1bmpvN2NESFJyOXlONjU5ZmgydHEwalNJ?=
 =?utf-8?B?RmRBSUZ3ZDNNZE9HL3N6dlc1MTVteDdlQlFKZGNOT1dianVubUxBNkt5emZ4?=
 =?utf-8?B?UlR0anJsWit2NXFQUnZCWDRINzBNYkJhK3VOVk5IbEljNUhwNXNPQmdWck1X?=
 =?utf-8?B?R1Y0eit4VnlCZFhXTEl2a2xyUkNWUXBkVTZIV1Naek1XNzlTNnBKNHJWbjQ3?=
 =?utf-8?B?WXlJN05acUszQ3IzMHc0ZVBOdXRhUVlYcDR3ZldPY1ZQQ1ZiUDh2ZHNFYlJo?=
 =?utf-8?B?S2pCWlpZRFJuN2tGZFhmTVY5M09XejZoVWlIMzJITUdaeEFpTW9DQnR5SnRm?=
 =?utf-8?B?bUg1ZHFkbEZEQTVaSVlzaFFENWE3MVZRTU03WTVMeXBJRDkrQnhDV2hyMFNo?=
 =?utf-8?B?Z2tXR05ESTNpeDVyUXhVK096ZGxkTmRaQm9ySzFkZUVKZll5VmhiL2pQckxR?=
 =?utf-8?B?K0l3UGxDeEF1eStFUU5mQ3V4VWhCMkRXOFRsUWphdzhUbi9pc0JLaHZCcS9z?=
 =?utf-8?B?N3ZnNnV0TmVIWXBSTnhwQUdPNlV1Y2lZRDRta3U4ZVpnSkZmbzBGNDdQZjFG?=
 =?utf-8?B?Y3FvblNueWVBNnVFMlBxUGZ0RVNweE53RHVzT3AwVE1ZY0R5YXFGWUt0WlFm?=
 =?utf-8?B?aXdKNXp4QlQ4RjZDSXlsVzBKS1k0VWJsMWJRZzN3cTJ4MjhaZmhuNkdoMEh6?=
 =?utf-8?B?dnNBUmoyZFQ1QlQ4OFNQcHJJZ0plYUtUMTBhc2xXMGNIeElUWGhEaTVNZGxB?=
 =?utf-8?B?My8rcW5yTVNCWTJkRFZubEU4RXRNSjlPZi81SUc5TGpCa0QyOWc4N1U3akps?=
 =?utf-8?B?VHVMNWJUS1p5VDZUcDVrS0VtcjF3aVFYdUFaN24xdHZndTFjbzdhak5sZVhv?=
 =?utf-8?B?Q0dDYlk2ajdta1huZnV4U1pnWTQzWWlkdDYwMjNYRUwyeDRpaHNadjlvVlZ0?=
 =?utf-8?B?RDY1U1hOOHNpdmZ0SjM2RDA5bWdqanEzOEIrVlJUK3BJKzJBWlp3Vy9TbzRa?=
 =?utf-8?B?S2lmak0rSTNiNzJUS0JHWnN5ZG9tZ3g0MjFTSDNXZk01MDRBMEFaWXkrd2ZD?=
 =?utf-8?B?Q1hpU21VZEw1bWVTeFZ5eXlMUVpMdmI2R2kxclQ3SG83M0FQVklDSzdkN3pY?=
 =?utf-8?B?RERhUFoza1VIZ25PUnVyN3BwNkRIUkZwMmR1dkVxeDd0VGozWWwzRFErQXND?=
 =?utf-8?B?YWJPbFNIZFhGdnhhdVM3N1owWDdrcW0xSW45dVBNVkd5UVhLVmI5Zzc3MXo1?=
 =?utf-8?B?R0tOTFVDMjFydmFPWUVVeGpBNDZWeWZvdnE3ZU5qVXhWSG1GWG5kU1lib3Yx?=
 =?utf-8?Q?JRqasvFQFZH2qUC2xVDGSn8ye?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ab295cfa-4795-4de4-1183-08de28d8e72d
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 08:35:19.1958
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Gr+J1+yIGQFJ52Ss2X+toD6xwOETyTm2LztW3Lwdzg3/UEVafuqMuePQRD4MbUrIIQelDjd3SrUvOA9fynsnGg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR03MB5961

On Thu, Nov 20, 2025 at 04:05:38PM +0100, Jan Beulich wrote:
> On 20.11.2025 10:58, Roger Pau Monne wrote:
> > --- a/xen/arch/x86/i8259.c
> > +++ b/xen/arch/x86/i8259.c
> > @@ -407,21 +407,14 @@ void __init init_IRQ(void)
> >          per_cpu(vector_irq, cpu)[LEGACY_VECTOR(irq)] = irq;
> >  
> >          /*
> > -         * The interrupt affinity logic never targets interrupts to offline
> > -         * CPUs, hence it's safe to use cpumask_all here.
> > -         *
> >           * Legacy PIC interrupts are only targeted to CPU0, but depending on
> >           * the platform they can be distributed to any online CPU in hardware.
> > -         * Note this behavior has only been observed on AMD hardware. In order
> > -         * to cope install all active legacy vectors on all CPUs.
> > -         *
> > -         * IO-APIC will change the destination mask if/when taking ownership of
> > -         * the interrupt.
> > +         * Note this behavior has only been observed on AMD hardware. Set the
> > +         * target CPU as expected here, and cope with the possibly spurious
> > +         * interrupts in do_IRQ().  This behavior has only been observed
> > +         * during AP bringup.
> >           */
> > -        cpumask_copy(desc->arch.cpu_mask,
> > -                     (boot_cpu_data.x86_vendor &
> > -                      (X86_VENDOR_AMD | X86_VENDOR_HYGON) ? &cpumask_all
> > -                                                          : cpumask_of(cpu)));
> > +        cpumask_copy(desc->arch.cpu_mask, cpumask_of(cpu));
> >          desc->arch.vector = LEGACY_VECTOR(irq);
> >      }
> 
> Doesn't this collide with what setup_vector_irq() does (see also patch 04)? If
> you don't set all bits here, not all CPUs will have the vector_irq[] slot set
> correctly for do_IRQ() to actually be able to associate the vector with the
> right IRQ.

For the AMD workaround I've only ever saw the spurious vector
triggering on CPUs different than the BSP at bringup, I don't think we
strictly need to bind all legacy vectors on all possible CPUs.  Well
behaved PIC interrupts will only target the BSP, and that's properly
setup.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 08:47:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 08:47:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168442.1494447 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMMnm-0003Gf-6s; Fri, 21 Nov 2025 08:47:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168442.1494447; Fri, 21 Nov 2025 08:47: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 1vMMnm-0003GY-3p; Fri, 21 Nov 2025 08:47:34 +0000
Received: by outflank-mailman (input) for mailman id 1168442;
 Fri, 21 Nov 2025 08:47: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMMnl-0003GS-9a
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 08:47:33 +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 b663549b-c6b6-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 09:47:30 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 IA1PR12MB8240.namprd12.prod.outlook.com (2603:10b6:208:3f2::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Fri, 21 Nov
 2025 08:47:26 +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.9343.011; Fri, 21 Nov 2025
 08:47: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: b663549b-c6b6-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JOqGXKu9cBriFRXRrQh2eYl+dAbf7/EdWS/r/SCtAzKmaznQq53ZduM2iNmEUvQaAg4j2c3VElHfujuM4+S4cqTN61HY33yH0cYfU3LKQkrN8tA07sIZLFUFUY1qB04Gj0i2TuhkwPi4X2485cYcwD1EU0IaAJRr8rZPOThypKlAu5iRPkWx/f/7ac6bzOBiXVD5YtRi2inXJEu+j75MdaWzJS70plnzhxJt4hzRhehI1lktqMr7ZXpUVnNMv71J5pMfu5EW98HDceMU4wZAmb6I+pmS9rk4O0myaJdq1aYRZEd+O4irFPWTEljs6Hfh3cJMXrZI97t2DxNnynhYdg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lv3sdbdcPaHTYYZ9qFrZbVCpw+canb6m9/XDHG/H/pA=;
 b=bSQJ9V99Mwz3HE+TQ1onQyo2WCPGAZZCNy5jsJnt8PEp+F3/tuxJHwzYgTFs/955f0OnWMMKNrSFSb2EFIcA3uv1kxfxyEs6hAdtC8htm6g9IzMiadrJ12Kx4CXoNv2HDkCaIVUwaF221BjWPDJFq/7SE6tviaRps1gCxTFKECSCxtPhnG1CYV72qcEvnGDGIeknMeg7yLpYssH84fIM8+WcRQ8gCDa9N4j/rcpttgGmf0COmJ56L8XnVD/Qs/igg8TP2PXM0H8RmgytiMyVlxJ5M8vpv2FJdTS+vhIzNs0zXDTzHhgNgJrdsmiH/PnxT8BYuZ5/NUW72pihrq5piw==
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=lv3sdbdcPaHTYYZ9qFrZbVCpw+canb6m9/XDHG/H/pA=;
 b=XuhDDzSDZfp/0C3QZzdngXXa6NiP2adCfjfheCQHgTTGiOWW5Zdn2jCjk8eemHhxxHC5Dk2RKj0lu/7XwQWifSE22t6PBbdJoV2ClsjMpkFfbGusrFy6e6mqXtL1PBpzi472K2gtVjaISH7IgTDQ14QDHhkwCzpC9x1Bp2sq/qA=
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>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v2 2/7] xen/xsm: wrap xsm_vm_event_control() with
 CONFIG_VM_EVENT
Thread-Topic: [PATCH v2 2/7] xen/xsm: wrap xsm_vm_event_control() with
 CONFIG_VM_EVENT
Thread-Index: AQHcWrs/qm1DByfUmEiEsQ0KFVhiiLT8wi8AgAAOyqA=
Date: Fri, 21 Nov 2025 08:47:26 +0000
Message-ID:
 <DM4PR12MB8451E73C42835C4F4EE6D65BE1D5A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251121074803.312568-1-Penny.Zheng@amd.com>
 <20251121074803.312568-3-Penny.Zheng@amd.com>
 <04570040-beee-4150-907a-20ffacfda689@suse.com>
In-Reply-To: <04570040-beee-4150-907a-20ffacfda689@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-11-21T08:47:19.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|IA1PR12MB8240:EE_
x-ms-office365-filtering-correlation-id: d26771ad-78e6-48ec-b87d-08de28da98f4
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:
 =?utf-8?B?Zng1V3JvbSs3RkJFWDNzaWRSdmlaYm9Ub1lmTWpPMXR5NkxoNFlJYmlaTWMw?=
 =?utf-8?B?WWdDdVFldXdGZHhQMmpNUmxScG0yaVpNelFEWVNnSnRRZHIwN0R6Qkd4M0Qy?=
 =?utf-8?B?US9qTTQ2UjdHemdtQ1RDVFQ4L2Nic3UyUDB6ak56UlNhRWVBd3NocWFFU25O?=
 =?utf-8?B?V2JrQnJjcGpSZUdZbXBYOXR5K2RkU2VXMWp5cDlrQTIzU3k3VzBVd0N3UmFU?=
 =?utf-8?B?aEt0K3dWck5ncGM0elV4Nzd0ZEZuUGVCSnlpeHdBUW95dWczTUE5azBKZWdo?=
 =?utf-8?B?SEpKU2JBOE1Bb2JhclRwLzJ5TGNWbC9lcWlVMFI0SHBmUks3Vno4VXlyZStC?=
 =?utf-8?B?d0Fsa1BzandJbG9HcFlkRVg2bDRCYzJERWF5ZitpTmZsUUtkaExMUWZ6NmUy?=
 =?utf-8?B?ZkdxTDNncGdtV3p2emNMNlp0dW5zSFFZZFJzM1Y3c2xsdXJSU0xqclVKL3FR?=
 =?utf-8?B?WHB0RTFOR1Jkdkp4dFdaMGd1TE9tdWVPdE5xZW9Vd3RBcS9MdStBLzRRTEsr?=
 =?utf-8?B?aDMwQm9GMkcwemc2aHZpOUIrb1FyTnhDalQveXV0ZERPQlREK2YyOVRmNVF2?=
 =?utf-8?B?aUxwRTFEcXRVNGp5bUFmQXJnNjdaSUJWS1dJRHcwNnVXaklCcVdwM2pCRXRm?=
 =?utf-8?B?dUo1S0FmeFc5RzFRY09xa1lwTmpWR0xJUXpjVENaa2RycHRvUmxaRUpkVGQv?=
 =?utf-8?B?Mlh2ZkJBWWdnME1ONCtKRVlDQ1NFYWlmUnZFZGJMZXp4SnJCSlNRMW1xUDBZ?=
 =?utf-8?B?RnlOVWV2S1M4eDJkeENpdGFBTlpmL1FsUG1TMlBhQks1Zm1HWDVVcE5vVk04?=
 =?utf-8?B?c0RVMTBNRjZpbDRtc3NPM0NWbCsya2VSbE9xOUw0bWRqT1RhMUo0SFRIZGdO?=
 =?utf-8?B?Q1U3MTRjQi80amF5RnlDMkRXaGpKdHdoTkVtVlFlSHV2cVg4REhha3d2cVNK?=
 =?utf-8?B?aWdoNnhYdXlWUlRmZUV5QWxpMzdVOXRlSW5VcDhhQkVYeXY4b3hKVzNrM2lI?=
 =?utf-8?B?MzRudXgxczFkUTlmV0FIVWhsRlk4aHlMaFhWbERad0JycDh6K2l4U2U4K2V6?=
 =?utf-8?B?QWpIUllINkJWZG5JWVNvOWxJNUlBUU11d3pUTjNyeEx6T1FBdkI1QU4xdHdz?=
 =?utf-8?B?RGZSZkt4d0NoTldFYWlza080UllkTVVHcHM0V2xYbkh0VllmaWtRQjEvVFBs?=
 =?utf-8?B?QnNlbFdFeDU0Y0NvVy9wVE1FOUdrenY5R2xSdlg5akdnSVFDL0Y3TkQzT0pa?=
 =?utf-8?B?a0dNMytJbnhBSUI0MjZQMG0vMzJGU2VMaXMxbFh0NEJKU0crTDl6UkIweU5h?=
 =?utf-8?B?L2U3eVRxc2xhdzVxZWJJZVoyaWhFOVZCU0NSMjZKcGtub20zNmFVcUl4Ri9D?=
 =?utf-8?B?NzBVSCtpZU44OXVpcVpFbjV2M3Z4UXdtZldORkNrTG9lL04wSWo2ZDBNTmxF?=
 =?utf-8?B?UVVrYmI1TThCK1lpTmZRZjVob3lQanhMS3RIWFd3STlCd1MyaWNqOHhaTnJC?=
 =?utf-8?B?TXoxMWNrQlV4VndVYlNZL2x0dFRhZ1M2RGZHN0FvWTNSMHNWTU02M1EvMWRM?=
 =?utf-8?B?YURUY3EzcERraFkrNHJpTmFYaUZUcmZ6NHZJV0lNYkQ1aEx4TDNFY2xMdldR?=
 =?utf-8?B?eVF0dGJ2MkVKM3lKM2FNRWRLbzczUVZVVHFRYmVwQmZMVktHVE92eDJEckZk?=
 =?utf-8?B?Slk0dWtEQXZsK3Z2VU1ETlA3aDYyclIyT2FIVU9TaDQzMlViVmNMUzhnVmpX?=
 =?utf-8?B?Vzg4dW1EaVYydEE0dDU3M1dNc2EyaktCUDl1aFUxSUhwVjk5Q1pia0t5eHZQ?=
 =?utf-8?B?ZzFxUTk2NHBMajk5NVRVZjhiUm5xODZLYzg4V3F4bHZXbFY4RStvK0Q4aUtJ?=
 =?utf-8?B?MzFXaDFnUk9lVFNYbGllVCszWXgzZnd1SzZjTDFIT2ROemlGdEc1SmhFU1hr?=
 =?utf-8?B?bXpUSXZXZ1hiWnZWcjdHVXplMWl2MC80M0R6ZVA1MTRsWW80OWtKMG5GZHg5?=
 =?utf-8?B?c3BNMGpyKzBMZnVXYkZYU3JTdzRGT05ZNGFEd21yOXRSOWRqVVFJNkNxSFFx?=
 =?utf-8?Q?MEUMIG?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?dS9Sb0piL05vd1BlbVhjbHpnVEdRMnpoN3JjaDZuSnFZTSs0ci9iV2EwYnhF?=
 =?utf-8?B?eVZ2ckoxcDR2YjA1dC9BdGlhOUI3QVR3ZVNLeHQ3dVZ2Z3lTaGxYdlZPemt0?=
 =?utf-8?B?aEtXbEtraDZTZXUvRFB0NFV6VHRDdGNCcGdpTGVQZnJNWDdyS2wycURjYnds?=
 =?utf-8?B?LzFMZ0gzSzMydFUwbk1ZVzRPa2JxMXFNT0ROaXQ4bnUyb3lXR3NmNUJHZUw2?=
 =?utf-8?B?cWxOY3EzUC8rT1owSjBYT0toYnUzU04zdGlQRUQxTVJtNFRMNHdoWjJkQkRZ?=
 =?utf-8?B?Q2FBeTV4SEdsMWZucGRJV2tpaWJ2MS9mRnVKY2FWS3J1KzI2MXhXTWVSdjdF?=
 =?utf-8?B?ci9peTB3SzdUNjNEa0lFWGJ1RHpmVC9Gb09WRFg5aldlNUIzRUd1b2tSUzU2?=
 =?utf-8?B?bkdtTjlXSDlUUXNYY0tOWHhKM0ovb3BFSktseFBUVjc5NGRwa0Q5QmJjaDN1?=
 =?utf-8?B?S0hPcXBlSjB0VlVxMEEwaUI3MzRDRURyU2ZsTjVjWFpEVmd5TEV1ejQrN1JV?=
 =?utf-8?B?Q3lJVnQwQVE0QXY5bVgwU052Tmg2OHYzRUFQeEIwaFhncmx5THFEWndBVHlT?=
 =?utf-8?B?WDQwWERWVUVtQ1NwLzJKSFA1RzdjSVg3WG4wU0FGRC9GUzgzR0xOeDlSdVdw?=
 =?utf-8?B?V1dJT1o0YTgwcklQNUFDWFZvYUxSbmUwQ1Qza3BSb2dCdU5NYzhXa0NqclYw?=
 =?utf-8?B?SkRvVlZjcmh5R3FlcDFWSDJOQytGM3pGaS9GYzBUWjF3aGNrOE5jRHU4K0Vz?=
 =?utf-8?B?S1BPQXJraGdjMnVFV0J4UytNSkJUVisrTUIxRlVPOWV6aGNCYlM2ZUdUQk5m?=
 =?utf-8?B?ZXljdVJHdUovWUszS253ay9HMWswZTFnQkFlT3BSNi9kalZuQisyckFGby9m?=
 =?utf-8?B?d0RXbFFNNGFyakk1REdEQ3g1dWxWYmhrV3JvS3FYdGFtK3F1cGtVdG1rMXVn?=
 =?utf-8?B?NGVGVFVzSlNQV081Uk5pelUvbnRSVUNoWDhSNTFWbE9aZzI0UUZTelh4UjV1?=
 =?utf-8?B?UXkxSzVBVi9ReEQ2TzNYSS9sZWF3VWwydkFSV2Y0WFdONkpzNk8vakhaU0JR?=
 =?utf-8?B?QVdiNmhxZk00MUNSRnhGekI4VXhBaSt3RmYyRFkwTFpHelJCRDlZayswZHhB?=
 =?utf-8?B?cTJGbE9mam96NFRaY3ZqYTFMd3JHR25QWGFKUjZPNm9LeitERWV4MHV6c3Bu?=
 =?utf-8?B?RDN2NDRGWGNSMUpLdENTUUhNd3p6ZFk3ZkdQakZpSzRlWHUwVEIxUklGbzVT?=
 =?utf-8?B?ZmNHVDlyZ3hCY0hlb1hjQXFXejVMNE1vS1FvSUdjbG1Xd0ErWEczcUpsVUFQ?=
 =?utf-8?B?cXdReVlNcFlhRjNxV1VteEEycTRzbDdaejJhR2tRRGJNTW0xZlpvUXhXUVBo?=
 =?utf-8?B?WUVJWFdxL0RPV2RySUFQZytENXNwdnJlcERObmxOZmJwSjJvWlRjR0NCeVlZ?=
 =?utf-8?B?R3BZN0VSTzM0TmlLV2tMTjd2RHBNNUxVb2xjbHIybW9OU1Q2VUR5WDVqemtq?=
 =?utf-8?B?aUZrZWFER2UxblUzT3pNM21kQXpyZEtBaG5aV2ZYMGhva2ZnU1RLaW5rZVUv?=
 =?utf-8?B?SUs3WHNjemhaYmtlV0JQMktsM3BDWlFhdXF5QXBDQWZtMWljUitPWUx5K2JL?=
 =?utf-8?B?ZlNteGxDM05yN3I5VGN2NDhuWGJ3S0JPeXlKcytjNUovMW5IWk5OM0Z6T29m?=
 =?utf-8?B?U1F3VW1aQzIzZ2tFQWc3ZHRLalkrRE5MK0JPRkUvcWVxUS85NVFmckQyUXIr?=
 =?utf-8?B?WjRRamwzc3NUZmlOMXJPSkE2LzZZWkVsNHpJUm5iVVZNUW5udnpSVVNqV2k5?=
 =?utf-8?B?dW1QMGp6S1crd0xUeU5MWjI1TGhGRmpFdkJZTXo0NjZHUnA4aXlEQ01rTkJL?=
 =?utf-8?B?WkhyeGQrSS9wZXBScFNqVk9XRHJMaTUwaWJkRWNxNVpBRVV4dkRrOVk3WFVU?=
 =?utf-8?B?NUZuYmo5bE9LekcxT1NHMi8veVFRUFJJd2p3cVZ6K2ZkaThTZmZUcGEzUFRN?=
 =?utf-8?B?eGNuekpsaFY4alFRbkwvSS9DOVJIM2crckh6ZUh6TEFJeGhsYXFaMXhZeEVn?=
 =?utf-8?B?Yi9LTjdCekZWWmRzMEdCQWpUQU1jMDJiRzVncThuSURZQmNoVWZWbnp4SzV6?=
 =?utf-8?Q?GQ8k=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d26771ad-78e6-48ec-b87d-08de28da98f4
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Nov 2025 08:47:26.6967
 (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: b7B8dwcZADTIP8bIc7r3wvtz4AcZZ32AuAgYwLbDKOocSU8bx1SpSpu1aHf1A5p3D7ZNKivsmDJlHIJ4KbZDzQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8240

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IEZyaWRheSwgTm92ZW1iZXIgMjEsIDIw
MjUgMzo1MyBQTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiBD
YzogSHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBncnlnb3JpaV9zdHJhc2hrb0BlcGFt
LmNvbTsgRGFuaWVsIFAuDQo+IFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPjsg
U3RlZmFubyBTdGFiZWxsaW5pDQo+IDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPjsgeGVuLWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjIgMi83XSB4ZW4v
eHNtOiB3cmFwIHhzbV92bV9ldmVudF9jb250cm9sKCkgd2l0aA0KPiBDT05GSUdfVk1fRVZFTlQN
Cj4NCj4gT24gMjEuMTEuMjAyNSAwODo0NywgUGVubnkgWmhlbmcgd3JvdGU6DQo+ID4gRnVuY3Rp
b24geHNtX3ZtX2V2ZW50X2NvbnRyb2woKSBpcyBvbmx5IGludm9rZWQgdW5kZXIgQ09ORklHX1ZN
X0VWRU5ULA0KPiA+IHNvIGl0IHNoYWxsIGJlIHdyYXBwZWQgd2l0aCBpdCwgb3RoZXJ3aWFlIGl0
IHdpbGwgYmVjb21lIHVucmVhY2hhYmxlDQo+ID4gd2hlbiBWTV9FVkVOVD1uIGFuZCBoZW5jZSB2
aW9sYXRpbmcgTWlzcmEgcnVsZSAyLjEuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBQZW5ueSBa
aGVuZyA8UGVubnkuWmhlbmdAYW1kLmNvbT4NCj4gPiBSZXZpZXdlZC1ieTogU3RlZmFubyBTdGFi
ZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPg0KPiA+IC0tLQ0KPiA+IHYxIC0+IHYyOg0K
PiA+IC0gbmV3IGNvbW1pdA0KPg0KPiBJbiB3aGljaCBjYXNlIC0gd2hlcmUncyB0aGUgUi1iIGNv
bWluZyBmcm9tPw0KPg0KDQpBaCwgc29ycnksIEkgbWF5IHNlbmQgdGhlIHdyb25nIGRldiB2ZXJz
aW9uLiBJJ2xsIGltbWVkaWF0ZWx5IHVwZGF0ZSB2My4gUGx6IGlnbm9yZSB2Mi4gQW5kIEknbGwg
ZXhwbGFpbiBpbiB0aGUgY292ZXIgbGV0dGVyLg0KDQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 09:16:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 09:16:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168460.1494458 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMNFs-0007f0-Bj; Fri, 21 Nov 2025 09:16:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168460.1494458; Fri, 21 Nov 2025 09:16:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMNFs-0007et-7f; Fri, 21 Nov 2025 09:16:36 +0000
Received: by outflank-mailman (input) for mailman id 1168460;
 Fri, 21 Nov 2025 09:16: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMNFr-0007en-1d
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 09:16:35 +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 c5155ab0-c6ba-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 10:16:32 +0100 (CET)
Received: from CH0PR03CA0060.namprd03.prod.outlook.com (2603:10b6:610:b3::35)
 by CY5PR12MB6645.namprd12.prod.outlook.com (2603:10b6:930:42::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov
 2025 09:16:26 +0000
Received: from DS2PEPF00003447.namprd04.prod.outlook.com
 (2603:10b6:610:b3:cafe::95) by CH0PR03CA0060.outlook.office365.com
 (2603:10b6:610:b3::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.10 via Frontend Transport; Fri,
 21 Nov 2025 09:16:26 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS2PEPF00003447.mail.protection.outlook.com (10.167.17.74) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Fri, 21 Nov 2025 09:16:25 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 01:16:21 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c5155ab0-c6ba-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WtcvaWyRDLip0XFgWlju6tUjv1XtayEVhFzJS0w0VF441n963Jx8OsCOvk/VVkZz1Nq42LZcQER6/WWVPizAABU5IbFAeUtYr+bJBxIC9miKN314WHoEHJbtqLQMM5/tKFLKlID/hYrZY5Hp6YzQmETycIGiOAuU2aSayF/nKuYf8R0mCYX3KLlFvmKLZBO+9ZOH4ux/BZnKVDQ6aRLo32jaFO9TnDKaErOITfiMlJ1rMm12lY5tbm6rCsWnSp3XU7AVVJqEWRP1w9pjI39cUQh6iSKnOK3SGdaPthg7NXeVrnM6k8GWcWJk8y2eBOsIPHIDlxNcwutF6BIcvPUklQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0DSx+HHx9tvNCK9DIqy8VDRIKiE5Q9s4OQdG8SXk6GM=;
 b=gwcyRzSDtDEiD5akkTqQUc4vgzxUNoNLK7Tqp13atvImv2TBPTWamOZ8Xgn7T17Pg9fx3aRBhfGbn8VXpFvxZ/Lfie1usb9p7GHi5vtoo/42DUcy7obqCk7DXbq+zdmfMvEqn5Q1yupXWv4YjmPovH+a/5j70l3/kPPFarxyNpWVFuelMFlklbP8cEIzi2IxFdZQ7ST7b0yBxvaP2jyXGW9cfXVk/W0gce6ID9DZhPiOM5gAWpszBy2+LYjHZ4nemwWgBg2W1ZxOdu2Qtq6C3AP7ZY8XHzx+zu8lISqEiW35Alqzk0CAGd6L2IgaYyyrEPyzcZ5V1N9MPSWPO5OKKA==
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=0DSx+HHx9tvNCK9DIqy8VDRIKiE5Q9s4OQdG8SXk6GM=;
 b=ZGAwB/Sp7/UxGcc09yXoR2LOfveqeoM0TPpLy5lv8kikNNq0QBBv12Ha0MAVeZQsg1CWW/UGWO5HF6XdoUn8XE2IGwb6bKqunr0nHt9pej9sQXq6vVyYGA6rccwPLIWD29ToxA76tJa1iYHnr3UETsFxDM+EWSHnwNX7fOrUBuU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <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>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Tamas K Lengyel <tamas@tklengyel.com>, "Alexandru
 Isaila" <aisaila@bitdefender.com>, Petre Pircalabu
	<ppircalabu@bitdefender.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Jason Andryuk <jason.andryuk@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel
	<michal.orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano Stabellini
	<sstabellini@kernel.org>
Subject: [PATCH v3 0/7] consolidate vm event subsystem
Date: Fri, 21 Nov 2025 17:15:47 +0800
Message-ID: <20251121091554.1003315-1-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: DS2PEPF00003447:EE_|CY5PR12MB6645:EE_
X-MS-Office365-Filtering-Correlation-Id: 8af54ede-5ccc-4889-9c85-08de28dea5a4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|7416014|82310400026|1800799024|7053199007|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?+276i4dtaZ32jlWzKEjeHAIzojA3pK6zyQdauqiD13txJzVmlw6nQroXICbC?=
 =?us-ascii?Q?4xA/Q7dbmLomegvG8G9QC1lKGkiptQGsL6qj9fsM8SBUJ5tCwhpU4brWGvYD?=
 =?us-ascii?Q?VRSKEgw5BtyWLJ9NoOVSOLHLL3+PwLpZlfToIDnbkh90XgUTIPw3nSC96uU4?=
 =?us-ascii?Q?etCrm1XXubFNwz7r373yG6C8S3DkV7yaatCZfV/s/xK6nPDLGh7goneUF4aJ?=
 =?us-ascii?Q?HJUqpOewuOdvjvgpH1gWSZy9EAGhWgFUhILhvdN5Jh8N60Gyg2W3pivhonnS?=
 =?us-ascii?Q?b278zTv70MFwGd6EfsJCsNifmQYJkXJ9jI4wJFHsie86LJlfRWrOprchRnhf?=
 =?us-ascii?Q?EuUXrxVpJQlZvArWhbNjpUr6nyuFqNGD4FEEsEJhaL/99WM6fcN6/qtzrz4P?=
 =?us-ascii?Q?d6cCr3CYzNcsC6XITubyI9xmol3M9SN477VIAJOKvMIWilngixn4b5x1JOaW?=
 =?us-ascii?Q?mqfvuF0h3+OsJvo87agI7E7tb0twJQ+6En5yWtRla1PDdHhOj2nCf3NIKoX8?=
 =?us-ascii?Q?8CNH+Nk0ly7JlN/hdakVvahBjatuOnWRluErz1Y3U7B41tpoQMjQhKqewqoh?=
 =?us-ascii?Q?+OLKiwOcbbbf7+1dW1Rg2cAsyRLJFgSNUY4dHghUQg7JGT/hyXfccJlIEErQ?=
 =?us-ascii?Q?BFatzYTIMiVpbXhuC3o+7CFms1fRKCP4pkDDcl0NmgF93coW2SSRThfxnL+8?=
 =?us-ascii?Q?uaX0O29nxDOA+Vmdg/PISFclR96scYIEgPBSudPZKpszBUq/92zuMWO2/mBz?=
 =?us-ascii?Q?0wjX9/esQhZ1LhJDbQ3zewkVokZFgQA92ZZt94wAUWISZ2yOXSge6B35sOwA?=
 =?us-ascii?Q?MXSpFpPqVO7MAIdTrjarTvbmx4GfAB2la3BnlswNzzYL1yGrtXI6gvltLmwh?=
 =?us-ascii?Q?isftJWR04xzJ5j3EDHKygX8Ez3pZDjOKiofTcw9WKizGX/wgCy09XRxoc10g?=
 =?us-ascii?Q?WokdFOG4EAhT4WYfadoW0b7LJy8/IihRXnTPMbDgDLBUQ7ukT2dRM58ZCMyP?=
 =?us-ascii?Q?W8Z1wTT0Awgl/HmPqHlcHT7aufeKiu/maEg7xlg2sTz3aHRcwzRlsBEB0Tj4?=
 =?us-ascii?Q?+HtcE/obr9l+Tu5AIOx3VwHEiVRfAtv541eg2NVmjViWLvltsJN1fa2rayum?=
 =?us-ascii?Q?LGOstu62qzFIn0NBNcDiMFU5DVdI6E/8atLzlZcPBMOs6aOdSzjq6FC06Nfa?=
 =?us-ascii?Q?V+w+DcDp0oA5H0eK6jErBupnW/jDzhV6Ge3UZthHXyngibngoGf2YvT9SpRk?=
 =?us-ascii?Q?fXF4OJ1Ss5OEQQcOFDPcHMbLVL142DM1WfpamMnA5bOSAAg/LAXB7buxTFx8?=
 =?us-ascii?Q?DJrRja5PYy5rHv//wXRVPps768S+JQxWWV82PzXXZC79KAOezPHPDeBtWgBn?=
 =?us-ascii?Q?aheCe97x3UWqZ2S9vGoeg1SJnf2VxijPoGBPhDkufJqOoS928g4B9pyojAMU?=
 =?us-ascii?Q?aIhR1NTH8zYeywDjK/YdA4uf64eyK7crjg3O9VKpzGofBunD4UeXsC5Uy9JU?=
 =?us-ascii?Q?Tsfjrt4qlrRNaHU=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)(7416014)(82310400026)(1800799024)(7053199007)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 09:16:25.9336
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8af54ede-5ccc-4889-9c85-08de28dea5a4
X-MS-Exchange-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:
	DS2PEPF00003447.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6645

This patch serie originates from "Disable domctl-op via CONFIG_MGMT_HYPERCALLS"
[1], and focuses on consolidating vm event subsystem (i.e. VM_EVENT), and its
derived features, like memory paging, etc.

[1] https://www.mail-archive.com/xen-devel@lists.xenproject.org/msg200843.html
---
Plz ignore v2 version, as I accidently sent the weong dev version.

Penny Zheng (7):
  xen/x86: move declaration from mem_access.h to altp2m.h
  xen/xsm: wrap xsm_vm_event_control() with CONFIG_VM_EVENT
  x86/vm_event: introduce vm_event_is_enabled()
  x86/monitor: wrap monitor_op under CONFIG_VM_EVENT
  xen/p2m: move xenmem_access_to_p2m_access() to common p2m.c
  xen/mem_access: wrap memory access when VM_EVENT=n
  xen/vm_event: consolidate CONFIG_VM_EVENT

 xen/arch/x86/Makefile                 |  2 +-
 xen/arch/x86/hvm/Kconfig              |  1 -
 xen/arch/x86/hvm/Makefile             |  4 +-
 xen/arch/x86/hvm/emulate.c            | 67 ++++++++++++------------
 xen/arch/x86/hvm/hvm.c                | 50 +++++++++++++++---
 xen/arch/x86/hvm/svm/intr.c           |  2 +-
 xen/arch/x86/hvm/svm/svm.c            | 54 ++++++++++++--------
 xen/arch/x86/hvm/vmx/intr.c           |  2 +-
 xen/arch/x86/hvm/vmx/vmx.c            | 73 ++++++++++++++++++---------
 xen/arch/x86/include/asm/altp2m.h     | 10 ++++
 xen/arch/x86/include/asm/hvm/hvm.h    | 18 ++++---
 xen/arch/x86/include/asm/mem_access.h | 20 ++++----
 xen/arch/x86/include/asm/monitor.h    |  9 ++++
 xen/arch/x86/include/asm/vm_event.h   |  5 ++
 xen/arch/x86/mm/mem_access.c          | 36 -------------
 xen/arch/x86/mm/mem_sharing.c         |  3 ++
 xen/arch/x86/mm/p2m.c                 | 40 +++++++++++++++
 xen/common/Kconfig                    |  7 +--
 xen/include/xen/mem_access.h          |  5 --
 xen/include/xen/p2m-common.h          |  3 ++
 xen/include/xen/vm_event.h            |  7 +++
 xen/include/xsm/dummy.h               |  2 +-
 xen/include/xsm/xsm.h                 |  4 +-
 xen/xsm/dummy.c                       |  2 +-
 xen/xsm/flask/hooks.c                 |  4 +-
 25 files changed, 271 insertions(+), 159 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 09:16:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 09:16:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168462.1494473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMNFv-0007yX-W3; Fri, 21 Nov 2025 09:16:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168462.1494473; Fri, 21 Nov 2025 09:16: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 1vMNFv-0007xD-Qw; Fri, 21 Nov 2025 09:16:39 +0000
Received: by outflank-mailman (input) for mailman id 1168462;
 Fri, 21 Nov 2025 09:16: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMNFu-0007sJ-N3
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 09:16: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 c773250b-c6ba-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 10:16:36 +0100 (CET)
Received: from CH5P220CA0023.NAMP220.PROD.OUTLOOK.COM (2603:10b6:610:1ef::20)
 by CY3PR12MB9654.namprd12.prod.outlook.com (2603:10b6:930:ff::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov
 2025 09:16:29 +0000
Received: from DS2PEPF00003445.namprd04.prod.outlook.com
 (2603:10b6:610:1ef:cafe::1b) by CH5P220CA0023.outlook.office365.com
 (2603:10b6:610:1ef::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.14 via Frontend Transport; Fri,
 21 Nov 2025 09:16:27 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS2PEPF00003445.mail.protection.outlook.com (10.167.17.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Fri, 21 Nov 2025 09:16:28 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 01:16:25 -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: c773250b-c6ba-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lXuicZn20cwROm06hGiu9icp+GJ+KwcHpOK3IwV75MoP97cXBKPwXRqeonJocVytmflSQQUAtIRZZ772g1K3HLKuiioALzypBnLxCH+gPuLb5lTF9gCKl8a9R83Nv9GaZhSg7FkqiOKs+K7CklITukGcf/t74RRKDfufUZM9pqooOTK/hp4VwdSxvfReDEdKdmmldLofJwgfVoUKrZfd0E8mBSI6k6goSAc5Y4D8iBhYnlXTR0Q0453Ft08PsRnDACxmC8w39OeKYoLQLDKbl21Xql+SDN1XQRrOwOAQnRgUOfcKcvq3qUaroSx8UDylHp+SXw3gGsbsjUIyzyxOkg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vrxm4Ssb4DNyh7hnIccW9NVrE+CVSNJj7c6CdihhrWg=;
 b=QlvuPnbtFC6oj2GvAHaG/Ki6hktGQ+lvZetMHC27U8ju6ObqR8pOaLyViBGR9fO/V2G3Uhnmpdlstig+qKy4q0oLIPCQW5NsrUIbRCaV+4viim2Ce+eg6A7YZZ1CwEXidbr2HAjUTtveJYaisr05aTv4BtazFQyKZQnLa279I3GC/RWDQX99BXN/nVj0ew9sM5gmmBI6HBQoshWELJ+6EzvERGhSlgW+R/Mkxzspzh23cu2XT/aqbvQ9nz9sJ4/zP2DpgTNUOR7snMnQvTRa/TKJgK3UZukXJbkytIPpdX1xwhCQ6kNiHWVXwsKMpr403kNoV9UJa9lAVcmWOVB2AA==
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=vrxm4Ssb4DNyh7hnIccW9NVrE+CVSNJj7c6CdihhrWg=;
 b=nCY/RHZQ+9u1dSfr/nBAMStXK9RySpo2g2LfP6ysl/7x9OKQFoCQzH3eA95MD/aLeSHeS61Mj5tBO1Cqy7fnq8R+UaVi9PVMrIw8YBABZE99diVBqolfMathigc6DVf5n2UfZzahaORgclztJftCAQSMU1fItYRJq/NHHCw8R1I=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <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>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Tamas K Lengyel <tamas@tklengyel.com>, "Alexandru
 Isaila" <aisaila@bitdefender.com>, Petre Pircalabu
	<ppircalabu@bitdefender.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH v3 1/7] xen/x86: move declaration from mem_access.h to altp2m.h
Date: Fri, 21 Nov 2025 17:15:48 +0800
Message-ID: <20251121091554.1003315-2-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121091554.1003315-1-Penny.Zheng@amd.com>
References: <20251121091554.1003315-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF00003445:EE_|CY3PR12MB9654:EE_
X-MS-Office365-Filtering-Correlation-Id: a9675beb-fe93-4c99-6e5a-08de28dea76d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?lBMHq4zw7R0lwJ82glo7SUKm1lOTFA0w7VjcqDCksNW6XIP4uczK9/dao3a8?=
 =?us-ascii?Q?iOZVLdzDETqNqLNbcN6zhi8x/D8C90b53AmI/TU0eaqDmCRiNHn1wgNWiSew?=
 =?us-ascii?Q?nFZ45Oq7e+gyWmbUrlRGdIbr+9bAXhFLP9jZkhXDEvGuqhwVrQtqyobTcoW9?=
 =?us-ascii?Q?UNhxJx8gX1zr2W57yLv67W2tsMkSv4TpLXW79gLBy7gfXn2VJg5BV8KD0RPj?=
 =?us-ascii?Q?20AAT7LOhZMsYKQi503SR24XfO6gIbmdC5PJH2dc+cztToj7Csay5LFYhQcD?=
 =?us-ascii?Q?wtWkz5atYUZ6Twzuts2YkJO0WF5lkZlc6j0Zg7QnID6OvO3Q2F6oHcNkJwp0?=
 =?us-ascii?Q?nzBKWA47hbABuBHmKMhGByxN0ieKdrJq6jUZb+lL3HlJWVv1+fn5zm06u+xS?=
 =?us-ascii?Q?Biekr2xy1nXPiyT7+sAR3HSxkl30xawuM8rNZIEN7oDQUXBHLBa5pkTKApHs?=
 =?us-ascii?Q?RoJwbdjEZCUjxiHYYYADgFaIdmEj9HhaK1qatrRaPoiO0tL+PqCdZJgn9DJW?=
 =?us-ascii?Q?hlfofA09maSbvluMi1o9mpjE2/1AqvSPW2vt+7WSjh6tXeUoX+KOX07zOpSp?=
 =?us-ascii?Q?GZo44YfvRJAwkjaFxxYGTNJdkaOVU1xFNjhfdaHNqfqBXi3CtkPbXExSFBO1?=
 =?us-ascii?Q?GBODKmXAEX3wITHn8CfG63bGaS5LXcZ7JU+9XcS7W8xkLA92vX+T+FuYTkvA?=
 =?us-ascii?Q?4x/WmEDSV/K2obTV9pwIkdPi7mSHebMOR84/DAI7PaEwynUTYIQSVw049Qij?=
 =?us-ascii?Q?KatX0lfskDiUMrXQiLQci22VensUQ7NFqhkO0EqGf/k422OcaVhLIOnyxQq6?=
 =?us-ascii?Q?4iX4qQoKP/Lpoi+B0F3NR+pDDUuF7/rqyBnJypCj5sLgEZnxKHFM2CcRBQLt?=
 =?us-ascii?Q?sJNadLA8I2N9Tgk7ymv0EZnr81T3uSj0IbVLTtb8KmLbKPBiXxcFjbFvTpHB?=
 =?us-ascii?Q?0w7bsQmLCfWGR4KXtg+hxWrbOHs2HeX/sQahaDYeSxijGnpzlltvlBuUDJ2D?=
 =?us-ascii?Q?RYunrIjv5j0jxY2U5gApIHuTSRymMeoKMIGiitD8tADdRjEGnw2sBA24oAXx?=
 =?us-ascii?Q?Nkzz3nsG+nhK8MX+mQ2SiDMXN6WntU7MRuLeUEMhNR4g0dJxi4ig8g/84ufK?=
 =?us-ascii?Q?ShuBQmnOVj4L+4eRM+3oRGtSY59m7JldpnvyHcBIKanGaBU8Lp8YyfxlAQah?=
 =?us-ascii?Q?Ui5ivFsymWg4DdizIB7hePFeHEOqQcxQ6/omZCNBdfNbd83Q0j2l904MsTLZ?=
 =?us-ascii?Q?IylhOECVcbA0yuaanoEI11nTPxS+DSIQdjaew1iuwHf+vrlvDxR3DJG56UzK?=
 =?us-ascii?Q?hvRCJkvlec+i2FNRClK3ux18CoEwX+Yc1Q9Y0wjTH/NPon9hhGw6i23hh5iE?=
 =?us-ascii?Q?eXzGkHLSWu+TqtTj8kK92fpc8vvrcKNra8vy7QsWABatZ21iMt+4wdW2RoqM?=
 =?us-ascii?Q?wajFvh/tu0BSyzLurWu1AAzbFZF0HeIsguibxXT4nNPfn1kb3uxigc9+Lcey?=
 =?us-ascii?Q?3l45+SxXyENnaDHyMeX7i2ruMLlVmr5TyvyC+h1G0s/eJbq3+zFHLOo3szfI?=
 =?us-ascii?Q?lPZMn34v5gwP505L1YQ=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)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 09:16:28.9211
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a9675beb-fe93-4c99-6e5a-08de28dea76d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS2PEPF00003445.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY3PR12MB9654

Memory access and ALTP2M are two seperate features, and each could be
controlled via VM_EVENT or ALTP2M. In order to avoid implicit declaration
when ALTP2M=y and VM_EVENT=n on compiling hvm.o/altp2m.o, we move declaration
of the following functions from <asm/mem_access.h> to <asm/altp2m.h>:
- p2m_set_suppress_ve
- p2m_set_suppress_ve_multi
- p2m_get_suppress_ve
Potential error on altp2m.c also breaks Misra Rule 8.4.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
 xen/arch/x86/include/asm/altp2m.h     | 10 ++++++++++
 xen/arch/x86/include/asm/mem_access.h | 10 ----------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/xen/arch/x86/include/asm/altp2m.h b/xen/arch/x86/include/asm/altp2m.h
index 8ecd74f363..9c1ac3cc26 100644
--- a/xen/arch/x86/include/asm/altp2m.h
+++ b/xen/arch/x86/include/asm/altp2m.h
@@ -46,6 +46,16 @@ void altp2m_vcpu_destroy(struct vcpu *v);
 int altp2m_vcpu_enable_ve(struct vcpu *v, gfn_t gfn);
 void altp2m_vcpu_disable_ve(struct vcpu *v);
 
+int p2m_set_suppress_ve(struct domain *d, gfn_t gfn, bool suppress_ve,
+                        unsigned int altp2m_idx);
+
+struct xen_hvm_altp2m_suppress_ve_multi;
+int p2m_set_suppress_ve_multi(struct domain *d,
+                              struct xen_hvm_altp2m_suppress_ve_multi *sve);
+
+int p2m_get_suppress_ve(struct domain *d, gfn_t gfn, bool *suppress_ve,
+                        unsigned int altp2m_idx);
+
 #else
 
 static inline bool altp2m_is_eptp_valid(const struct domain *d,
diff --git a/xen/arch/x86/include/asm/mem_access.h b/xen/arch/x86/include/asm/mem_access.h
index 1a52a10322..257ed33de1 100644
--- a/xen/arch/x86/include/asm/mem_access.h
+++ b/xen/arch/x86/include/asm/mem_access.h
@@ -34,16 +34,6 @@ bool p2m_mem_access_emulate_check(struct vcpu *v,
 /* Sanity check for mem_access hardware support */
 bool p2m_mem_access_sanity_check(const struct domain *d);
 
-int p2m_set_suppress_ve(struct domain *d, gfn_t gfn, bool suppress_ve,
-                        unsigned int altp2m_idx);
-
-struct xen_hvm_altp2m_suppress_ve_multi;
-int p2m_set_suppress_ve_multi(struct domain *d,
-                              struct xen_hvm_altp2m_suppress_ve_multi *sve);
-
-int p2m_get_suppress_ve(struct domain *d, gfn_t gfn, bool *suppress_ve,
-                        unsigned int altp2m_idx);
-
 #endif /*__ASM_X86_MEM_ACCESS_H__ */
 
 /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 09:16:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 09:16:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168461.1494467 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMNFv-0007su-I3; Fri, 21 Nov 2025 09:16:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168461.1494467; Fri, 21 Nov 2025 09:16: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 1vMNFv-0007sn-Eb; Fri, 21 Nov 2025 09:16:39 +0000
Received: by outflank-mailman (input) for mailman id 1168461;
 Fri, 21 Nov 2025 09:16: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMNFu-0007sJ-2W
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 09:16:38 +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 c6bc7344-c6ba-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 10:16:36 +0100 (CET)
Received: from CH5P220CA0001.NAMP220.PROD.OUTLOOK.COM (2603:10b6:610:1ef::7)
 by SJ5PPFA5F0E981D.namprd12.prod.outlook.com (2603:10b6:a0f:fc02::99d) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Fri, 21 Nov
 2025 09:16:31 +0000
Received: from DS2PEPF00003445.namprd04.prod.outlook.com
 (2603:10b6:610:1ef:cafe::b5) by CH5P220CA0001.outlook.office365.com
 (2603:10b6:610:1ef::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.12 via Frontend Transport; Fri,
 21 Nov 2025 09:16:29 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS2PEPF00003445.mail.protection.outlook.com (10.167.17.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Fri, 21 Nov 2025 09:16:30 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 01:16:28 -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: c6bc7344-c6ba-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=i74ImbfUFrDae8HiMDDKQ5RdhsmSUdOm6CjQpJgGON4fti7e12VTNiP1KurXqCJqc2QAKxUZ7rJTFjOm8YSJJ3Vh5xFsmjxaCd7/gy7iVWwq+kyi/wOtAg19mpHyYbUkhquecqkcv3wq1IxK++86YNUQtUUyAwtmdsQ/uophSqxkKnYCGvH5AmPneN3oBNTc3uA3OTaJmENKjwNyVZALwvcVO0wunKOqVV2bht1RftHW629XUxjeiLqUDxy7K+iEu4lwm4AbmZ32jBDkBXAPRn5qjqSg04t4/bBb48qEaSB7wrGoVYmkX1IuLB7MITc+WoEzV8jPOmBqzT8dASNyDA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=M55NVdiPFs+EjZRblVeJtPpm5AeHmt05murvZXdVUI4=;
 b=AqxMTKEkoAqipXqvi5NBI90XKTYPDoa4nbgDBPGIBrMpOZXrmxxWOKw82XieQ4gzaLxzXC1vjFnt8yfmO/urqB1ev4cS06SdHAMyP5gOloHJ6HZC8MEWpD0SUBfN2Dg01e0XPa6C7JePPkaEJmUHxqeBTGgF8lCOREg1SFMWkkyZhnNRt+fRL9jkD4jAMppeSefWqYgLA7zQCiuB3k49ZMwKneoxc1LzOSem+lekk3bN7rQ8Q3hKwAV1rr7gMzmyQL7KGCuv055G3A+L5VJ2rMHDHy0usC6P+Z8REw/2OBirwvcRssJtgbWCB1nqp6V4XGSLs2LPJwkQJVN2y5ZFxQ==
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=M55NVdiPFs+EjZRblVeJtPpm5AeHmt05murvZXdVUI4=;
 b=YQdQCjIbhd6IrkVVL4WXREA4rEK1BniAHjjRFYcrYwLB+Qe8cc5fsfpqIfIw9ZbxHXFzHHxKMOfo52euaHDHvfZOFEaQQ0J3pSZfiR/HcWz3Liewk8mtY8FsaEe7cyUr1nXhOw3haqvgY+Svk4z4dMrxoq82dvfN4Q6Dtkp9DJs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v3 2/7] xen/xsm: wrap xsm_vm_event_control() with CONFIG_VM_EVENT
Date: Fri, 21 Nov 2025 17:15:49 +0800
Message-ID: <20251121091554.1003315-3-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121091554.1003315-1-Penny.Zheng@amd.com>
References: <20251121091554.1003315-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF00003445:EE_|SJ5PPFA5F0E981D:EE_
X-MS-Office365-Filtering-Correlation-Id: 930e84bd-c470-4d06-e0f5-08de28dea87c
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?nNxuwRtiy8abW9M1dsG7KkWGF3/VvkjVSGXW4lrsaxH3IsYYyY/2MHSF8W6L?=
 =?us-ascii?Q?9BcTmkNABz3iNgna5K+mQ6bMJWTuD+PuwbREYE1x3Fiuihf5R4X8Qi+CFG8r?=
 =?us-ascii?Q?/rFV3FdpO3mK2fL1i5VJGW5agmKnsNw/gNUYrA3vFnSUoKFEoVt5yvxI/bCC?=
 =?us-ascii?Q?q+eJaAK0lbilwns4Wc+2b6BLqBELBLKWUqS6O7dZtMUerLVQtZ2l37bCIEti?=
 =?us-ascii?Q?meWhi3TdAzHIcrE7Ca4lHtWMQyk0tdhU/FfvLEdqHs1AJkyvHCoWpd4gYChF?=
 =?us-ascii?Q?3GFT1+DuBNfvUYMR5z6FVMWZo+7UPBf5vM5Zv2Hb/wbaZa0B/FLBzyFxWigd?=
 =?us-ascii?Q?sFqmocrHHeCL8HeT56KjZrY9DuHS6sTUqxvEdgMyFxpso1PuNGOFDrGIR8mh?=
 =?us-ascii?Q?Ybj5KFnpdVxFw9HUQzDWupUtFHtLhs2rA+SmUaZRP32+2PdgVv9nc1t15Uh7?=
 =?us-ascii?Q?tEse66agGp3Iv8Wy84NSDIauP5wSUqGjii27TGYeFj/LCRSMPHdz4bQKORll?=
 =?us-ascii?Q?kYzSj3Ek88UfKZYXx4C8SbB2I9PTRUDRZaZszM/FaqXOv6uhZSFry3lEp9hJ?=
 =?us-ascii?Q?HMGnmAXDBQlf4Y5kn3O/268KsstmHSNflN0wG/uCY14t2AYWZAsiTCe5RUKA?=
 =?us-ascii?Q?I8hccIfA0wXw1QsKX+Wj/QJWZNmaNOlVqrwbJntojFSeyFQl5vcby1xSvKUz?=
 =?us-ascii?Q?sbGhf6gNUFgFjucND1zjYnDyrwHzxKq9ZSlKm8d/b9Wmkgms9ya2ie8mAgw3?=
 =?us-ascii?Q?f4lXD2ge4mRZJxPt5gyrHF1cVYp9+Q8ewv7LF+OCbVtNvnm2iXXQDBZdm3F2?=
 =?us-ascii?Q?4YUVydAq1WVgZFhwzblIiZJgbPoDfiTpwvxstoKU3WQGApxl8RhuccUKYVat?=
 =?us-ascii?Q?Wh+H9DzT7POtmWJN/sd4Au9Zq890hUTEmVYKFswIEHoZwUpbjec5EhFtKgny?=
 =?us-ascii?Q?nnwx/LdXSf5doBqjMg+2KI4hE+kRguTq+vJHrWWAmfSexoAjp0WAf/HxD04z?=
 =?us-ascii?Q?yn5kv0Y0uHJASY8EhH16iXeCaiKWqTTzDyx2UhxO4KylboRAC+qHfeKsnOs3?=
 =?us-ascii?Q?MfPTkB0+H0nftvRNaQv9kd0ju/EeUKPY/GYwc99jiBLsyLLKALZqtZ4M3CjD?=
 =?us-ascii?Q?EFxs12h9qK/isoDYP9dFDfDxsSfjipD8Lxe+KBNQjJkExfMcL7hImMnPsXsV?=
 =?us-ascii?Q?tQqO0ueYCzkkNE0XWl3kB5Z4jb9JpILNPGn297K0iFiYRB2PeRdj0oT21tL9?=
 =?us-ascii?Q?BaQuOO/itdjEDJvZ+EPcBpQY8Omq+ZlEnuusO/6Fb8kYXoUtylG7/9NKndpr?=
 =?us-ascii?Q?ge7gddwqlOArW02o6yLegowUK9ZRDWHNHXb4GtdHFKlwMzEputuwK2PJwNYc?=
 =?us-ascii?Q?ImINp0/SBRP1zC7avS7NsYWZHFrZr/G+gyfTBfUSGpxlo521l0PuAjPFvulu?=
 =?us-ascii?Q?SHgpXJmcW++s2RHJkNw8V/dew45lYqzV+FRWmHOFQa3IOIqxTb459crwBaPS?=
 =?us-ascii?Q?4pdIz7Dkac+q+7TFPvuOnzcEj1HhHQNiSD037BT6A2I/Sdk03bg03hLATkCd?=
 =?us-ascii?Q?ms5FfLORV9VnN/2HAxE=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 09:16:30.7003
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 930e84bd-c470-4d06-e0f5-08de28dea87c
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS2PEPF00003445.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFA5F0E981D

Function xsm_vm_event_control() is only invoked under CONFIG_VM_EVENT, so
it shall be wrapped with it, otherwiae it will become unreachable when
VM_EVENT=n and hence violating Misra rule 2.1.

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

diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index 12792c3a43..e801dbcdba 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -640,6 +640,7 @@ static XSM_INLINE int cf_check xsm_hvm_altp2mhvm_op(
     }
 }
 
+#ifdef CONFIG_VM_EVENT
 static XSM_INLINE int cf_check xsm_vm_event_control(
     XSM_DEFAULT_ARG struct domain *d, int mode, int op)
 {
@@ -647,7 +648,6 @@ static XSM_INLINE int cf_check xsm_vm_event_control(
     return xsm_default_action(action, current->domain, d);
 }
 
-#ifdef CONFIG_VM_EVENT
 static XSM_INLINE int cf_check xsm_mem_access(XSM_DEFAULT_ARG struct domain *d)
 {
     XSM_ASSERT_ACTION(XSM_DM_PRIV);
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 9a23d2827c..d9e5c831f3 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -155,9 +155,9 @@ struct xsm_ops {
     int (*hvm_altp2mhvm_op)(struct domain *d, uint64_t mode, uint32_t op);
     int (*get_vnumainfo)(struct domain *d);
 
+#ifdef CONFIG_VM_EVENT
     int (*vm_event_control)(struct domain *d, int mode, int op);
 
-#ifdef CONFIG_VM_EVENT
     int (*mem_access)(struct domain *d);
 #endif
 
@@ -649,13 +649,13 @@ static inline int xsm_get_vnumainfo(xsm_default_t def, struct domain *d)
     return alternative_call(xsm_ops.get_vnumainfo, d);
 }
 
+#ifdef CONFIG_VM_EVENT
 static inline int xsm_vm_event_control(
     xsm_default_t def, struct domain *d, int mode, int op)
 {
     return alternative_call(xsm_ops.vm_event_control, d, mode, op);
 }
 
-#ifdef CONFIG_VM_EVENT
 static inline int xsm_mem_access(xsm_default_t def, struct domain *d)
 {
     return alternative_call(xsm_ops.mem_access, d);
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 8b7e01b506..96dc82ac2e 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -115,9 +115,9 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .remove_from_physmap           = xsm_remove_from_physmap,
     .map_gmfn_foreign              = xsm_map_gmfn_foreign,
 
+#ifdef CONFIG_VM_EVENT
     .vm_event_control              = xsm_vm_event_control,
 
-#ifdef CONFIG_VM_EVENT
     .mem_access                    = xsm_mem_access,
 #endif
 
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index b0308e1b26..9f3915617c 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1365,12 +1365,12 @@ static int cf_check flask_hvm_altp2mhvm_op(struct domain *d, uint64_t mode, uint
     return current_has_perm(d, SECCLASS_HVM, HVM__ALTP2MHVM_OP);
 }
 
+#ifdef CONFIG_VM_EVENT
 static int cf_check flask_vm_event_control(struct domain *d, int mode, int op)
 {
     return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__VM_EVENT);
 }
 
-#ifdef CONFIG_VM_EVENT
 static int cf_check flask_mem_access(struct domain *d)
 {
     return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__MEM_ACCESS);
@@ -1967,9 +1967,9 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .do_xsm_op = do_flask_op,
     .get_vnumainfo = flask_get_vnumainfo,
 
+#ifdef CONFIG_VM_EVENT
     .vm_event_control = flask_vm_event_control,
 
-#ifdef CONFIG_VM_EVENT
     .mem_access = flask_mem_access,
 #endif
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 09:16:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 09:16:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168463.1494487 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMNG1-0008PM-7P; Fri, 21 Nov 2025 09:16:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168463.1494487; Fri, 21 Nov 2025 09: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 1vMNG1-0008PF-3u; Fri, 21 Nov 2025 09:16:45 +0000
Received: by outflank-mailman (input) for mailman id 1168463;
 Fri, 21 Nov 2025 09:16: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMNFz-0007sJ-TL
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 09:16: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 ca769b3f-c6ba-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 10:16:42 +0100 (CET)
Received: from CH0PR03CA0053.namprd03.prod.outlook.com (2603:10b6:610:b3::28)
 by DS7PR12MB5863.namprd12.prod.outlook.com (2603:10b6:8:7a::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Fri, 21 Nov
 2025 09:16:36 +0000
Received: from DS2PEPF00003447.namprd04.prod.outlook.com
 (2603:10b6:610:b3:cafe::30) by CH0PR03CA0053.outlook.office365.com
 (2603:10b6:610:b3::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.11 via Frontend Transport; Fri,
 21 Nov 2025 09:16:24 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS2PEPF00003447.mail.protection.outlook.com (10.167.17.74) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Fri, 21 Nov 2025 09:16:36 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 01:16:33 -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: ca769b3f-c6ba-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=URiExy++3xI81okqPzDOUpEHZI7F+TrGt709QNVdZIx6hYi+ww+GNcxv3M39UQDqo3NYkTXCaXcSA6dcPfcYfjz2pYF95Ecw4lv1wUOC7vDMSRszLRwO7/LHtexRRCdUZIsL1ZdW7BghfR+EIMY1mggchF3+CGclyyCaYll/NeRk2vTQ1Rbc/dr27z0TQQaAL5O+5GBl04duM0b67ySyxWjsQuSMYEuOhBdoNOKk19TtA3pCpttd1lpP610/2X+eQZuxAUvh6CCqdD4SoaNlkZ6hUpipO71GOcqFUBhHuZ/YIcFq/aq7LVDbAfBinKkyR/B5uKk92TfuhMesPtu14A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=K4LvTd6kW2t3yqi/HCtygHWHtFUbYeEEurKMnhPvWLA=;
 b=Wl3Ub7HyzINWyrSkTHE5dgow9JugqZyQf/4grFDWdiOLBONq10ij4FxcEAlH4p8HbbJ/th8NOWb66mUkJnO3IwiC7k5lxBn4V9Bfp9PR2+YacW2G9ci1+fnr/7/PG1yWrQyBohNGTIsO7TiTiXUXGhV6wkbjXVsvizL02JdtH75Omj9H6Z9Sx/ngy1+aDPGR3i2HQRiq3OjNSxlVX8HRvb/SXSVDS0tSOSVcs8vJISIDCSJUmc60qIsutyhrIEA9Uswi+pWrrJeU7Ll9XTuC3tGN3GGKfbEMfj5Mie1KARYkV89K5o6/180NFfc9SxqMk6KEMidjzjfg4Yn46rdq1g==
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=K4LvTd6kW2t3yqi/HCtygHWHtFUbYeEEurKMnhPvWLA=;
 b=TEZle0Ay8AU0hRE/ecGrxfm9wffXrSRiz06zD3eNKn/nacw+FhoJaHPkGWTzS1XOdoIq/ysp4F6ZzztICTbANdbpK48giNn67JL4PhhvB6qXzaqjrjSyA8ArfdxTMj2F9IA6/DK63zrK8wu8eZrZktDjEAnTBuYUiWq0mssDmyc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <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>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>, "Tamas K
 Lengyel" <tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>,
	Petre Pircalabu <ppircalabu@bitdefender.com>
Subject: [PATCH v3 4/7] x86/monitor: wrap monitor_op under CONFIG_VM_EVENT
Date: Fri, 21 Nov 2025 17:15:51 +0800
Message-ID: <20251121091554.1003315-5-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121091554.1003315-1-Penny.Zheng@amd.com>
References: <20251121091554.1003315-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF00003447:EE_|DS7PR12MB5863:EE_
X-MS-Office365-Filtering-Correlation-Id: 93f8629c-dfcf-4fbd-54f2-08de28deabc4
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?y31gPR/uHkhSXxWDQyFEPBNHjFatrpbMyC34NjqR+vJARlXZ2DVwOpJ31zcT?=
 =?us-ascii?Q?/fR4HayekhFM/ilfu9c7JCBcG35skSK9X8MXUgXf11QqoQyvZ83V+8fPk2l8?=
 =?us-ascii?Q?q5SPWzHq6L0wY8DrfSOsgIanX7lZmZtWQRx4KYJyHD4eldvTTmtgCBRbRMY4?=
 =?us-ascii?Q?gWP+yguqs5pH4A3Myb6iadJ/qFmv1XUoYasR9gQy2Loih1I3L0y7c+7AfPLw?=
 =?us-ascii?Q?dzGDgI3C3d+XvkXSSqli7NQcwS9OVU9GKlCKW0y5tyBawL5ygoxzZIPTH7h3?=
 =?us-ascii?Q?tDS7mbzZSGgDhhoTDc+oVxge9zmoimxfDNmnw9TGxvGEFrLfxsuzBGJJtgsm?=
 =?us-ascii?Q?YlF9iHXSi8zSPVa4CsMOMuxDPEhunjDnAOK7Cpo/skMvNq31rE9TN2PUH+Rw?=
 =?us-ascii?Q?ZMscgj1rI1JkV7Y/Djoj4YgTphfxalsmJo27ixcAPOPgN/6Y0e5T3RexyuKi?=
 =?us-ascii?Q?0FX7wyNpjAxYKoVISea7QRlgwi4cm+8XzjwuIHQPX8tfx2OyQmYONp/RnSwb?=
 =?us-ascii?Q?MT+UiAILx2CdT6QhqFkteeddnPjUjTYsgkOKASC9E70DILjPDrKj2w7OIrNs?=
 =?us-ascii?Q?TPvU+bGzs5REz8EZY7YJFKV0/O8x/qZ1d12r2SPWkQTRg5hWQT96Yt+0Q5bz?=
 =?us-ascii?Q?4XgnyWH4k+rTYLe0nPsS7laga0gEvlnR65y3iPI7qv0ZXCAEdc8UUPv55xXM?=
 =?us-ascii?Q?dQ+W9a0euDjd+wWIm6d/Q05FHkwCOGh+dBVkxhbHLkqi0lAP2KRsyk6LQ7QN?=
 =?us-ascii?Q?YDxni+1p4+SXl5dnLGtjFDHCVxjb67bdPQrDmbCmSP+3/XY0Y93qOr16hh10?=
 =?us-ascii?Q?V3N+MPYXhbtJ9C9dTXVg69mu6K9CeS0Qj+Qg5s/3GHNZii/XSMz2wdgTVSSg?=
 =?us-ascii?Q?K3IW6nieWTKV2xwSGUXmS9pghk3to6HaSV22Y8y+0ZVKGzCLfYwbQFKi8g+V?=
 =?us-ascii?Q?XhW4ndH7L+CUhi7vgbH3n3swPcxjwxoy924sCNRkEcBQ2ljdy2MoMsd+9HN8?=
 =?us-ascii?Q?RLL4+yUXp3oJJ2y1MF3HJLnOJvaEaHvOp2yI+uacbTpxs9maKR1YTTmi9WdG?=
 =?us-ascii?Q?6En9rzs6f/XuuVnG3l8/ZSbzASvafxofnyPIfIaUcE+QN5Lak/OsBEFsvofa?=
 =?us-ascii?Q?rrsRvm0lHbTsRvO8MqKzuIuztpm6tKu43AQGxq9RF5iIfSwXCvT6bAY5ojDQ?=
 =?us-ascii?Q?U8g59a272/h5bzMxzlyJ0uTGXKTMpird42BYcAYS2i1uhmp8ZU/drjP3D3O7?=
 =?us-ascii?Q?c4baVo0bEhJ5C57YBDhezkvgcv1kcxGU9m3gtw7yn3MZ0hE0PbnVmYw4kcSS?=
 =?us-ascii?Q?3vmSw9Wbp0WjxliQvtVGN+G1C4IWrHjJi+iIny1YsLpzXEKMxKCMD7p8EZfH?=
 =?us-ascii?Q?wKcygM9mi82E3YotpbgxNY84zLKiwSa+GxDFOhgmBLyPP+elzaKaKxFlyNV1?=
 =?us-ascii?Q?V21pm3J1Qx8eVew31JhmNcB7OHp2szTR5XQTsK1hBKKEiGuBNP+Te4dbMI36?=
 =?us-ascii?Q?JK7oMXXAr9QQBjXhtC3YvQKhor7i9jb3NU+AcyJ+glE+bVZSitqZdIwINmRj?=
 =?us-ascii?Q?MIQvO49KL49Geu6vBog=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 09:16:36.2085
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 93f8629c-dfcf-4fbd-54f2-08de28deabc4
X-MS-Exchange-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:
	DS2PEPF00003447.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5863

Feature monitor_op is based on vm event subsystem, so monitor.o shall be
wrapped under CONFIG_VM_EVENT.
The following functions are only invoked by monitor-op, so they all shall be
wrapped with CONFIG_VM_EVENT (otherwise they will become unreachable and
violate Misra rule 2.1 when VM_EVENT=n):
- hvm_enable_msr_interception
  - hvm_function_table.enable_msr_interception
- hvm_has_set_descriptor_access_existing
  - hvm_function_table.set_descriptor_access_existi
- arch_monitor_get_capabilities
Function monitored_msr() still needs a stub to pass compilation when
VM_EVENT=n.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
 xen/arch/x86/hvm/Makefile          |  2 +-
 xen/arch/x86/hvm/svm/svm.c         |  8 +++++++-
 xen/arch/x86/hvm/vmx/vmx.c         | 10 ++++++++++
 xen/arch/x86/include/asm/hvm/hvm.h | 18 +++++++++++-------
 xen/arch/x86/include/asm/monitor.h |  9 +++++++++
 5 files changed, 38 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 6ec2c8f2db..50e0b6e63b 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -16,7 +16,7 @@ obj-y += io.o
 obj-y += ioreq.o
 obj-y += irq.o
 obj-y += mmio.o
-obj-y += monitor.o
+obj-$(CONFIG_VM_EVENT) += monitor.o
 obj-y += mtrr.o
 obj-y += nestedhvm.o
 obj-y += pmtimer.o
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index e9d39f59a9..ce4fbbe488 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -299,6 +299,7 @@ void svm_intercept_msr(struct vcpu *v, uint32_t msr, int flags)
         __clear_bit(msr * 2 + 1, msr_bit);
 }
 
+#ifdef CONFIG_VM_EVENT
 static void cf_check svm_enable_msr_interception(struct domain *d, uint32_t msr)
 {
     struct vcpu *v;
@@ -306,6 +307,7 @@ static void cf_check svm_enable_msr_interception(struct domain *d, uint32_t msr)
     for_each_vcpu ( d, v )
         svm_intercept_msr(v, msr, MSR_INTERCEPT_WRITE);
 }
+#endif /* CONFIG_VM_EVENT */
 
 static void svm_save_dr(struct vcpu *v)
 {
@@ -826,6 +828,7 @@ static void cf_check svm_set_rdtsc_exiting(struct vcpu *v, bool enable)
     vmcb_set_general2_intercepts(vmcb, general2_intercepts);
 }
 
+#ifdef CONFIG_VM_EVENT
 static void cf_check svm_set_descriptor_access_exiting(
     struct vcpu *v, bool enable)
 {
@@ -843,6 +846,7 @@ static void cf_check svm_set_descriptor_access_exiting(
 
     vmcb_set_general1_intercepts(vmcb, general1_intercepts);
 }
+#endif /* CONFIG_VM_EVENT */
 
 static unsigned int cf_check svm_get_insn_bytes(struct vcpu *v, uint8_t *buf)
 {
@@ -2457,9 +2461,11 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
     .fpu_dirty_intercept  = svm_fpu_dirty_intercept,
     .msr_read_intercept   = svm_msr_read_intercept,
     .msr_write_intercept  = svm_msr_write_intercept,
+#ifdef CONFIG_VM_EVENT
     .enable_msr_interception = svm_enable_msr_interception,
-    .set_rdtsc_exiting    = svm_set_rdtsc_exiting,
     .set_descriptor_access_exiting = svm_set_descriptor_access_exiting,
+#endif
+    .set_rdtsc_exiting    = svm_set_rdtsc_exiting,
     .get_insn_bytes       = svm_get_insn_bytes,
 
     .nhvm_vcpu_initialise = nsvm_vcpu_initialise,
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 3ca18302e5..75e0ea8d52 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -1583,6 +1583,7 @@ static void cf_check vmx_set_rdtsc_exiting(struct vcpu *v, bool enable)
     vmx_vmcs_exit(v);
 }
 
+#ifdef CONFIG_VM_EVENT
 static void cf_check vmx_set_descriptor_access_exiting(
     struct vcpu *v, bool enable)
 {
@@ -1597,6 +1598,7 @@ static void cf_check vmx_set_descriptor_access_exiting(
     vmx_update_secondary_exec_control(v);
     vmx_vmcs_exit(v);
 }
+#endif /* CONFIG_VM_EVENT */
 
 static void cf_check vmx_init_hypercall_page(void *p)
 {
@@ -2476,6 +2478,7 @@ static void cf_check vmx_handle_eoi(uint8_t vector, int isr)
         printk_once(XENLOG_WARNING "EOI for %02x but SVI=%02x\n", vector, old_svi);
 }
 
+#ifdef CONFIG_VM_EVENT
 static void cf_check vmx_enable_msr_interception(struct domain *d, uint32_t msr)
 {
     struct vcpu *v;
@@ -2483,6 +2486,7 @@ static void cf_check vmx_enable_msr_interception(struct domain *d, uint32_t msr)
     for_each_vcpu ( d, v )
         vmx_set_msr_intercept(v, msr, VMX_MSR_W);
 }
+#endif /* CONFIG_VM_EVENT */
 
 #ifdef CONFIG_ALTP2M
 
@@ -2934,7 +2938,9 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
     .nhvm_domain_relinquish_resources = nvmx_domain_relinquish_resources,
     .update_vlapic_mode = vmx_vlapic_msr_changed,
     .nhvm_hap_walk_L1_p2m = nvmx_hap_walk_L1_p2m,
+#ifdef CONFIG_VM_EVENT
     .enable_msr_interception = vmx_enable_msr_interception,
+#endif
 #ifdef CONFIG_ALTP2M
     .altp2m_vcpu_update_p2m = vmx_vcpu_update_eptp,
     .altp2m_vcpu_update_vmfunc_ve = vmx_vcpu_update_vmfunc_ve,
@@ -3142,9 +3148,11 @@ const struct hvm_function_table * __init start_vmx(void)
 
     vmx_function_table.caps.singlestep = cpu_has_monitor_trap_flag;
 
+#ifdef CONFIG_VM_EVENT
     if ( cpu_has_vmx_dt_exiting )
         vmx_function_table.set_descriptor_access_exiting =
             vmx_set_descriptor_access_exiting;
+#endif
 
     /*
      * Do not enable EPT when (!cpu_has_vmx_pat), to prevent security hole
@@ -3215,8 +3223,10 @@ void __init vmx_fill_funcs(void)
     if ( !cpu_has_xen_ibt )
         return;
 
+#ifdef CONFIG_VM_EVENT
     vmx_function_table.set_descriptor_access_exiting =
         vmx_set_descriptor_access_exiting;
+#endif
 
     vmx_function_table.update_eoi_exit_bitmap = vmx_update_eoi_exit_bitmap;
     vmx_function_table.process_isr            = vmx_process_isr;
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index 56ad63dc57..a513f47b7a 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -192,7 +192,11 @@ struct hvm_function_table {
     void (*handle_cd)(struct vcpu *v, unsigned long value);
     void (*set_info_guest)(struct vcpu *v);
     void (*set_rdtsc_exiting)(struct vcpu *v, bool enable);
+
+#ifdef CONFIG_VM_EVENT
     void (*set_descriptor_access_exiting)(struct vcpu *v, bool enable);
+    void (*enable_msr_interception)(struct domain *d, uint32_t msr);
+#endif
 
     /* Nested HVM */
     int (*nhvm_vcpu_initialise)(struct vcpu *v);
@@ -224,8 +228,6 @@ struct hvm_function_table {
                                 paddr_t *L1_gpa, unsigned int *page_order,
                                 uint8_t *p2m_acc, struct npfec npfec);
 
-    void (*enable_msr_interception)(struct domain *d, uint32_t msr);
-
 #ifdef CONFIG_ALTP2M
     /* Alternate p2m */
     void (*altp2m_vcpu_update_p2m)(struct vcpu *v);
@@ -435,11 +437,18 @@ static inline bool using_svm(void)
 
 #define hvm_long_mode_active(v) (!!((v)->arch.hvm.guest_efer & EFER_LMA))
 
+#ifdef CONFIG_VM_EVENT
 static inline bool hvm_has_set_descriptor_access_exiting(void)
 {
     return hvm_funcs.set_descriptor_access_exiting;
 }
 
+static inline void hvm_enable_msr_interception(struct domain *d, uint32_t msr)
+{
+    alternative_vcall(hvm_funcs.enable_msr_interception, d, msr);
+}
+#endif /* CONFIG_VM_EVENT */
+
 static inline void hvm_domain_creation_finished(struct domain *d)
 {
     if ( hvm_funcs.domain_creation_finished )
@@ -681,11 +690,6 @@ static inline int nhvm_hap_walk_L1_p2m(
         v, L2_gpa, L1_gpa, page_order, p2m_acc, npfec);
 }
 
-static inline void hvm_enable_msr_interception(struct domain *d, uint32_t msr)
-{
-    alternative_vcall(hvm_funcs.enable_msr_interception, d, msr);
-}
-
 static inline bool hvm_is_singlestep_supported(void)
 {
     return hvm_funcs.caps.singlestep;
diff --git a/xen/arch/x86/include/asm/monitor.h b/xen/arch/x86/include/asm/monitor.h
index 3c64d8258f..9249324fd0 100644
--- a/xen/arch/x86/include/asm/monitor.h
+++ b/xen/arch/x86/include/asm/monitor.h
@@ -71,6 +71,7 @@ int arch_monitor_domctl_op(struct domain *d, struct xen_domctl_monitor_op *mop)
     return rc;
 }
 
+#ifdef CONFIG_VM_EVENT
 static inline uint32_t arch_monitor_get_capabilities(struct domain *d)
 {
     uint32_t capabilities = 0;
@@ -102,6 +103,7 @@ static inline uint32_t arch_monitor_get_capabilities(struct domain *d)
 
     return capabilities;
 }
+#endif /* CONFIG_VM_EVENT */
 
 int arch_monitor_domctl_event(struct domain *d,
                               struct xen_domctl_monitor_op *mop);
@@ -123,7 +125,14 @@ static inline void arch_monitor_cleanup_domain(struct domain *d) {}
 
 #endif
 
+#ifdef CONFIG_VM_EVENT
 bool monitored_msr(const struct domain *d, u32 msr);
+#else
+static inline bool monitored_msr(const struct domain *d, u32 msr)
+{
+    return false;
+}
+#endif
 bool monitored_msr_onchangeonly(const struct domain *d, u32 msr);
 
 #endif /* __ASM_X86_MONITOR_H__ */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 09:16:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 09:16:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168464.1494496 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMNG3-0000FN-GP; Fri, 21 Nov 2025 09:16:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168464.1494496; Fri, 21 Nov 2025 09: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 1vMNG3-0000FE-D9; Fri, 21 Nov 2025 09:16:47 +0000
Received: by outflank-mailman (input) for mailman id 1168464;
 Fri, 21 Nov 2025 09: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMNG2-0007sJ-Gf
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 09:16:46 +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 cc849ea2-c6ba-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 10:16:45 +0100 (CET)
Received: from CH0PR03CA0049.namprd03.prod.outlook.com (2603:10b6:610:b3::24)
 by DS7PR12MB5838.namprd12.prod.outlook.com (2603:10b6:8:79::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov
 2025 09:16:40 +0000
Received: from DS2PEPF00003447.namprd04.prod.outlook.com
 (2603:10b6:610:b3:cafe::39) by CH0PR03CA0049.outlook.office365.com
 (2603:10b6:610:b3::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.10 via Frontend Transport; Fri,
 21 Nov 2025 09:16:39 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS2PEPF00003447.mail.protection.outlook.com (10.167.17.74) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Fri, 21 Nov 2025 09:16:39 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 01:16:36 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cc849ea2-c6ba-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Dl7hFsWUV7WLkLnrkU7Pd9zpMgO78HSwo+QpWiVA9WoW1ltOLDRj9mWJmTonZhE/YQK912Smxcm0mdkSwT2FgXf7Z9q6bqCHL3up3UUkRzfofNcz28MUk/K0jW3oX//+oVICmMXIcrsS9o2JySgfUrJkcT46n0FG8Fg9EV8xXSUdbBs78NHszw2Pfq71ruiZF4V5mAm5zFCtQwrYqfY7U5CKsp7eeRmb1QhYW1M7TzAYw+AMK4NnR96DS/JJXSFqOCpaFoy2xSJ+PBuR2PDGWL5RI0OqHfnzbf7zQQxzAhQGLCxHYDQmggzSPJqmhMve7DT8WFjOwkDlf7QbJDYjKQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ypce8qKw6FYSDsYUV6gS5jLplfGibwksQtnlPdu1gTw=;
 b=UgrQnL+HrfmY1ql/vkAuNsAtJNMfXjt+4L7Xm/Kcm+c04nc+bVSKJyeHfiSYZbQG2+xbUm73mHY17EFdbwCcsRooIC5Ua7YY7EhhPGt+ZesdUH337nYuT4lMpvSh7BCI7BwJ/klFRP+7w91ladiomv7YM8X/bRsvotmknyA9x4gqZJCajS2aDl0qi04u9pAMh4FHzPYhgC8BjOh//h4+RaXSAY8jioScZCPsvULqV4fukahbllUiubGE+yQkBHoDvI4eGwUeD8iqJ/Is0CkZu/qEbHfPFRhWKd4wlt2LeXPAv+SH1SHVHB5b/+amyD9PS/N662zI6U3quyj6iZ+rlw==
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=Ypce8qKw6FYSDsYUV6gS5jLplfGibwksQtnlPdu1gTw=;
 b=jWkscUkU4OlYiypUqoctOY2cByAOeh3gFS5uJbFuX4Jwgi6+BuNXGr4RKbvFKbYR48f46OVEpgvmhpfBZVW3hfMlxIf4DCTescFss148RlpidpTB4BqyDBMpMj0cf8mxFZ3KL1AhZhMyzZFOlV/rLGLEWHWzhbfAKG6dEaVYT5k=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Tamas K Lengyel <tamas@tklengyel.com>, "Alexandru
 Isaila" <aisaila@bitdefender.com>, Petre Pircalabu
	<ppircalabu@bitdefender.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 v3 5/7] xen/p2m: move xenmem_access_to_p2m_access() to common p2m.c
Date: Fri, 21 Nov 2025 17:15:52 +0800
Message-ID: <20251121091554.1003315-6-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121091554.1003315-1-Penny.Zheng@amd.com>
References: <20251121091554.1003315-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF00003447:EE_|DS7PR12MB5838:EE_
X-MS-Office365-Filtering-Correlation-Id: c7600d78-2d57-4b41-f726-08de28deade2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?WryY9AUL8QG35W+yAQbUj17kWM/cpMGJUUsLyuCQH1UnsfJHByyjdcbP7Bks?=
 =?us-ascii?Q?SXj8OkLYTPL8xlvo52Vst+vN11RcfUGucwubPZdG1rjST34Gj3Eh6zbdkQtS?=
 =?us-ascii?Q?uUjHd27ePs8iVpDazMIWirP3BuYdMqfDrrij2WfHiwWI6Ww1T6kv8OmMIGo9?=
 =?us-ascii?Q?whM4KrNWYT74BC1XAct/MiSlAVtKmkOK/8YgKqfk5duGcSvO+QbWt+aruzar?=
 =?us-ascii?Q?rsfEw51AxM82DFLrK/ZOuwB25GL3KBzwYQuSe0Cwlwr43owuMYzuVgjWTRrg?=
 =?us-ascii?Q?PICvX+Q7btQmib0f9DRqXqL2Q6If/zi/YiAuuHmdeGMmqeCf0Anw6jc0HZfa?=
 =?us-ascii?Q?eP6a9pIMKFXNNixmomBQiF0VeVYwst2KThOFDlqjsSe0woj5TEzo7itdgBfV?=
 =?us-ascii?Q?mZ6l0cSmSPxnHTKOvyJN4o9A76b5MsYVq1FuCvylVLvRghrm9aa+Ws4b5FY6?=
 =?us-ascii?Q?IzAQ0LHrfgBg2lZZLXAjfgmCsQpuvQeVeBXOjWkavzAP9wsKD6snNuB45Azj?=
 =?us-ascii?Q?vyrw+vtlH4j3EKYyDrBHhh/ZBr0IfDyRsDSImh8HPxdud1RltGzUdxl+chDR?=
 =?us-ascii?Q?qUa+Das3BVbM+Rofm0PWlDG6T48woB9GkClXcFqXtUzbkeH6kN7m5eFSB7R/?=
 =?us-ascii?Q?QS/6rmF735zTvy79uU2UpvIjumke+1TdRUdLUnCrMuAzS0vHO+hgGEsj0s4C?=
 =?us-ascii?Q?fMV2Q47n4tPdKmQb8Kia8Y0F1i2XIEEH3rr/7GHYC3LThVXiTb/PF2G2JNqm?=
 =?us-ascii?Q?k3Lp2LB4cGUrigxaCExFq4gBXXnjSMRAQez+q2nMtriAFw9Tz87bRYa2yt4k?=
 =?us-ascii?Q?GWvILNz6eL6Lot1nsNl/8JHjHt1p/BnRpj6sSHN5v8qY4WOb2Ga3yEDjb4qd?=
 =?us-ascii?Q?YXA8+zKfZdUvENw3Q2Dnc/uyDkQDwLiRDyYZ4ra55O6HPTpSfDU0pFiOiN8Z?=
 =?us-ascii?Q?sqYeWSOtebkWYj7UITee6xtTzLdpLLoZZVhrcDs8y14V4TT0M+WUsTi3ZkZ0?=
 =?us-ascii?Q?/jmqzGRGCJaB983rgYT6v5SE1xqaxeRO3pwsxX8UKioNNIBSvLWDuYZYOTcf?=
 =?us-ascii?Q?wb7CCpu7JsusaKJsE6XGeQaydy2GgQ7qlXvCkRR7OmnRnk5bnch/w/Yf+tq9?=
 =?us-ascii?Q?Xm41GVW3uQQjKK5s348wWxpUDe4oXHrsL3gBvtWVqO9vFJbWi+5G07WneckH?=
 =?us-ascii?Q?ITXn4N6cSoQcs31V7VCpW3s6fdYXBPPMdJ1ht7RV9Bw72sNZlt0c00dmGzM0?=
 =?us-ascii?Q?bA5YOY5ak1uHZYhil2JhaKuGSOwcZFlP2Dq5D4D1cffVXVJlfEf/XUy/UXav?=
 =?us-ascii?Q?twGWUFD9U5sI9CwAFpttyiiHThgMB6zIf/0TS0zQ8pisAj593S25mmP6HyRl?=
 =?us-ascii?Q?OiDNZjmgMjJDQUd/nLSgSE1YRlw2P3SKQ203GZqDsrZqkIZSl+bN9y1Nu1y7?=
 =?us-ascii?Q?EGx8ry4oNfusbf+BB7BDNR9Czhn3QsWpXrr27aMTSy8R16JqRArcbqT1xeF6?=
 =?us-ascii?Q?seqFJ/HXFnTVdUGWsqwGMMfHLmmPUKBdqJb+agJXYq6hjeyXhuaZLAvLeexy?=
 =?us-ascii?Q?fBCRgtQfxQeHCqo5FSg=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)(7416014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 09:16:39.7629
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c7600d78-2d57-4b41-f726-08de28deade2
X-MS-Exchange-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:
	DS2PEPF00003447.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5838

Memory access and ALTP2M are two seperate features, while both depending on
helper xenmem_access_to_p2m_access(). So it betters lives in common p2m.c,
other than mem_access.c which will be compiled out when VM_EVENT=n && ALTP2M=y.
Guard xenmem_access_to_p2m_access() with VM_EVENT || ALTP2M, otherwise it
will become unreachable when both VM_EVENT=n and ALTP2M=n, and hence
violating Misra rule 2.1
We also need to move declaration from mem_access.h to p2m-common.h
An extra blank line is inserted after each case-block to correct coding
style at the same time.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v3:
- Guard xenmem_access_to_p2m_access() with VM_EVENT || ALTP2M
- Move declaration from mem_access.h to p2m-common.h
- refine commit message
---
 xen/arch/x86/mm/mem_access.c | 36 --------------------------------
 xen/arch/x86/mm/p2m.c        | 40 ++++++++++++++++++++++++++++++++++++
 xen/include/xen/mem_access.h |  5 -----
 xen/include/xen/p2m-common.h |  3 +++
 4 files changed, 43 insertions(+), 41 deletions(-)

diff --git a/xen/arch/x86/mm/mem_access.c b/xen/arch/x86/mm/mem_access.c
index e6b609064c..e55e53f44c 100644
--- a/xen/arch/x86/mm/mem_access.c
+++ b/xen/arch/x86/mm/mem_access.c
@@ -298,42 +298,6 @@ static int set_mem_access(struct domain *d, struct p2m_domain *p2m,
     return rc;
 }
 
-bool xenmem_access_to_p2m_access(const struct p2m_domain *p2m,
-                                 xenmem_access_t xaccess,
-                                 p2m_access_t *paccess)
-{
-    static const p2m_access_t memaccess[] = {
-#define ACCESS(ac) [XENMEM_access_##ac] = p2m_access_##ac
-        ACCESS(n),
-        ACCESS(r),
-        ACCESS(w),
-        ACCESS(rw),
-        ACCESS(x),
-        ACCESS(rx),
-        ACCESS(wx),
-        ACCESS(rwx),
-        ACCESS(rx2rw),
-        ACCESS(n2rwx),
-        ACCESS(r_pw),
-#undef ACCESS
-    };
-
-    switch ( xaccess )
-    {
-    case 0 ... ARRAY_SIZE(memaccess) - 1:
-        xaccess = array_index_nospec(xaccess, ARRAY_SIZE(memaccess));
-        *paccess = memaccess[xaccess];
-        break;
-    case XENMEM_access_default:
-        *paccess = p2m->default_access;
-        break;
-    default:
-        return false;
-    }
-
-    return true;
-}
-
 /*
  * Set access type for a region of gfns.
  * If gfn == INVALID_GFN, sets the default access type.
diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c
index e2a00a0efd..2763f9a6be 100644
--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
@@ -2189,6 +2189,46 @@ void p2m_log_dirty_range(struct domain *d, unsigned long begin_pfn,
     guest_flush_tlb_mask(d, d->dirty_cpumask);
 }
 
+#if defined(CONFIG_VM_EVENT) || defined(CONFIG_ALTP2M)
+bool xenmem_access_to_p2m_access(const struct p2m_domain *p2m,
+                                 xenmem_access_t xaccess,
+                                 p2m_access_t *paccess)
+{
+    static const p2m_access_t memaccess[] = {
+#define ACCESS(ac) [XENMEM_access_##ac] = p2m_access_##ac
+        ACCESS(n),
+        ACCESS(r),
+        ACCESS(w),
+        ACCESS(rw),
+        ACCESS(x),
+        ACCESS(rx),
+        ACCESS(wx),
+        ACCESS(rwx),
+        ACCESS(rx2rw),
+        ACCESS(n2rwx),
+        ACCESS(r_pw),
+#undef ACCESS
+    };
+
+    switch ( xaccess )
+    {
+    case 0 ... ARRAY_SIZE(memaccess) - 1:
+        xaccess = array_index_nospec(xaccess, ARRAY_SIZE(memaccess));
+        *paccess = memaccess[xaccess];
+        break;
+
+    case XENMEM_access_default:
+        *paccess = p2m->default_access;
+        break;
+
+    default:
+        return false;
+    }
+
+    return true;
+}
+#endif /* VM_EVENT || ALTP2M */
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/include/xen/mem_access.h b/xen/include/xen/mem_access.h
index 4de651038d..8e7d9ea2e3 100644
--- a/xen/include/xen/mem_access.h
+++ b/xen/include/xen/mem_access.h
@@ -73,11 +73,6 @@ typedef enum {
     /* NOTE: Assumed to be only 4 bits right now on x86. */
 } p2m_access_t;
 
-struct p2m_domain;
-bool xenmem_access_to_p2m_access(const struct p2m_domain *p2m,
-                                 xenmem_access_t xaccess,
-                                 p2m_access_t *paccess);
-
 /*
  * Set access type for a region of gfns.
  * If gfn == INVALID_GFN, sets the default access type.
diff --git a/xen/include/xen/p2m-common.h b/xen/include/xen/p2m-common.h
index f0bd9a6b98..bd4169caee 100644
--- a/xen/include/xen/p2m-common.h
+++ b/xen/include/xen/p2m-common.h
@@ -43,5 +43,8 @@ int __must_check check_get_page_from_gfn(struct domain *d, gfn_t gfn,
                                          bool readonly, p2m_type_t *p2mt_p,
                                          struct page_info **page_p);
 
+bool xenmem_access_to_p2m_access(const struct p2m_domain *p2m,
+                                 xenmem_access_t xaccess,
+                                 p2m_access_t *paccess);
 
 #endif /* _XEN_P2M_COMMON_H */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 09:16:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 09:16:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168466.1494507 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMNG5-0000Xt-Rj; Fri, 21 Nov 2025 09:16:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168466.1494507; Fri, 21 Nov 2025 09:16:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMNG5-0000XW-OJ; Fri, 21 Nov 2025 09:16:49 +0000
Received: by outflank-mailman (input) for mailman id 1168466;
 Fri, 21 Nov 2025 09:16: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMNG4-0007sJ-9L
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 09:16:48 +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 ce0976d3-c6ba-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 10:16:47 +0100 (CET)
Received: from CH5P220CA0008.NAMP220.PROD.OUTLOOK.COM (2603:10b6:610:1ef::12)
 by SJ5PPF6785369A4.namprd12.prod.outlook.com
 (2603:10b6:a0f:fc02::997) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.12; Fri, 21 Nov
 2025 09:16:42 +0000
Received: from DS2PEPF00003445.namprd04.prod.outlook.com
 (2603:10b6:610:1ef:cafe::a) by CH5P220CA0008.outlook.office365.com
 (2603:10b6:610:1ef::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.12 via Frontend Transport; Fri,
 21 Nov 2025 09:16:41 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS2PEPF00003445.mail.protection.outlook.com (10.167.17.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Fri, 21 Nov 2025 09:16:42 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 01:16:39 -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: ce0976d3-c6ba-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=exq8mdcRsTcLz2nsCRT6sujhhUTKZSmggTup3/jtd7vyZjX13Tk3kbyGh4X1q4MDWw6Fu2PQGgWRFeB2ly0uj0WFdkP/8T1JOyCjqDIamKpkz7NKz5N9P9Jel4mD3Ml6CukkVnqUm/MmRvMIimkqT3kJue8HgEzPw4jJlCgICvxBGWp6h0hBJp10zuR/RlbwtQTNZ+XuD1mhxJNtY7K4IGSptxvTT3P7J13WwdYB+2maSsFG5sUzM55I3P7QJGcOM/loO2+mEa+k1AmXVgwszj3s8Zpy7bplEiUQp4Krpux743zJhfHXg7GNXl4Jz8Mi3TRIIJNntFvDkiRZ9kmwTw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HCVQJg06GbuowpJlRPy/MRkQzeiJ2cZeKMM/16EVIsU=;
 b=niNfYW3fMThwZNVeeo0AUpRCC0WtayUN5CTxRdprNdqAFFXKb/dL91bc5SBVKGHoV+0iFJu0oMvXVJcv7P+LEGTObm7P0LCp4axbQ/BHFSjdkgEFesy1o8MpdfAUG5NpRnlMQo/+TEMoIGVZ4WqRyaZO+eF8FjiTBE/Q7boAIr48EHX0HH/LS4CY4JZzFDsOveYQ2u9kUMtLQc8h9+CkItaj18/oX/9eL7HFXiEMay+8RC4iKmbKhFlN0EhNmyg6uRhdzewCi/lzkGa+mBnHXV/3ET5yax0NTjXJlQdOd+Mj7qM+Lh5777uzPgK2CdISpSI+feI7QF1BkBignz0u3w==
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=HCVQJg06GbuowpJlRPy/MRkQzeiJ2cZeKMM/16EVIsU=;
 b=fMD1AK/dlCM7Euzpedd7n1w2Dx6pNK9wrmf33RaXMPlWu+aVgPkVF+2gAk90ZbEoRcFJAonif3PAa2dn6WEBDlY61dyQdYTNsbn1AflwjYcZobxjyAzLcgyLv5EHzumqcMuw5zEZZ9qh/zygOPM2DQum0zSQU7gK/XpmVy6BV6A=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <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>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Tamas K Lengyel <tamas@tklengyel.com>, "Alexandru
 Isaila" <aisaila@bitdefender.com>, Petre Pircalabu
	<ppircalabu@bitdefender.com>
Subject: [PATCH v3 6/7] xen/mem_access: wrap memory access when VM_EVENT=n
Date: Fri, 21 Nov 2025 17:15:53 +0800
Message-ID: <20251121091554.1003315-7-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121091554.1003315-1-Penny.Zheng@amd.com>
References: <20251121091554.1003315-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF00003445:EE_|SJ5PPF6785369A4:EE_
X-MS-Office365-Filtering-Correlation-Id: 76279ca3-9a37-4e95-68b2-08de28deaf81
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?zMC2aX2fmYaMHSAGx3mIsFkZgWBuctKWo31pitDQkdNnIZmQ1wcjzSbHSbuL?=
 =?us-ascii?Q?aHAWlNqn8L88RhBuu9cDYjwNr+tzhDtRIPEMhlw4eGOhTYAWH6Es4qYfo9mN?=
 =?us-ascii?Q?YzF5OnkrPxT/AlGwdVTp46qYRsce56QsudOLNMuwzJGtkQwYVr+2RYpMCYYQ?=
 =?us-ascii?Q?kxZuxXxN/ORLu1iVM8pq7p8GSl6YI/bRV37LCqse9PA/UlVp+76ra+NW6hwZ?=
 =?us-ascii?Q?vK43WRQlpSLn1l4kW//p6mZA42JucAm/Nmz4SFavy7i286qPS6a2RUivO0pi?=
 =?us-ascii?Q?ZV7ReNDESd5aycI1cOHZm/n0qNE6oLGTJN/J4SzzIXj23Q4vAoH1NZekYGc7?=
 =?us-ascii?Q?knKewGnZA4/pk2oMXKaMEm5PWWJYLp5aIrOIdGtCUmQNVu8YxK8n5YfbsBZ7?=
 =?us-ascii?Q?982pNwJw08+g3SBwOU3Gmv1BoRB5EaNOEaNfs5jhPMwP+AgLC0BXw/H6Tb+p?=
 =?us-ascii?Q?T6oQ41fn31A/S/RgihHw42xAOkHTB5xOLGP71VDQzvqmDLOOvBXfwP5VWGrf?=
 =?us-ascii?Q?KR1JLMv+paBZtWiA354SCS8QmaXJ2AW5PL3JAQm3AGY4nlKR0+D+ieXTOlrv?=
 =?us-ascii?Q?EfdpkDggeAg2YslVif6UUUiYEjnVkkdbjqMNIIBUyBAaVm23HJfG3D1lld9n?=
 =?us-ascii?Q?rNqj18Wo6GqE1stKCuS91Jcq39dkOgbwd6XNCQDJCY0OQ+Uf9Ibs4kG7++e2?=
 =?us-ascii?Q?5KTub6yNIivPfI2ekMT5Y9lY9VxmlCnhHKuuueUOGQkWN4QHdCbqdiJlxuAX?=
 =?us-ascii?Q?sG1DnD7xqlNSQR+zM2N+oSr78FL0jB7QEwmF7ssR3N1bEDkBVCO7rSGFXeRm?=
 =?us-ascii?Q?8WV1LyAE+UxEWOlkt35Ew6pNtZyn2q89RZ+o0ETsT1oJ2VaJBkJnCdrlN1Fn?=
 =?us-ascii?Q?vGR6b+jdm1X1uQdGYXkh5XjTg7U3bJ6/5iO/8bfcMqFWf8xit7w1hQ+2Zc1C?=
 =?us-ascii?Q?Qooj+kiGB4AJpby8pzgGWDS8nsVovoUkwMchCcDyN3MnA4AX/KOe61Hb7JE7?=
 =?us-ascii?Q?7gOWBNZESUC227bmVA2jzLempzBGg+UqVMbhy/DT6lORnbBLbxHGy3WsZQbr?=
 =?us-ascii?Q?TOmqk9bB5rGVH+j54yyZlzKHVJxx1U5AcVwPepQOrbc/O5PksbyX4YhAPv2n?=
 =?us-ascii?Q?R3a2cOTzGS+YIsjL2hp1PAnNvenVPJLaBlHk6g3JjpU/bcPgnnU/VH3Mm+nX?=
 =?us-ascii?Q?tjOSuQAqksF1t0ewCTdKXjljTR/pFob500cUiww60/NJcwzrBvbN0YNLUj1V?=
 =?us-ascii?Q?I3DsPyXtwNh6qUjO138D795wxKDr7sCdleX0k25tdstuCsCs6VDNBobM1rkA?=
 =?us-ascii?Q?tOowv6c2YWqCbvEf58/4ClEmFTchHCTSXHJAD4QxQytcQE5D47mDOcx5H+jt?=
 =?us-ascii?Q?E/EfEsJn9FBdkjvtoMBJD46z1uIe5KymoDKU+MS4SbERYRghP10TAoO08iYT?=
 =?us-ascii?Q?AuBUUWEFnEIvcjZiIEc63lU5Zh6maIuusN7WyaoePEn6upklDl49aLcqJBU8?=
 =?us-ascii?Q?Ba3FN6CwO3vln/+kbiLxvT6ujCSIopWLSkW502j81tFSnSRAdj++pQ0Ju90u?=
 =?us-ascii?Q?yPTda5exxsLlythXQro=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 09:16:42.4735
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 76279ca3-9a37-4e95-68b2-08de28deaf81
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS2PEPF00003445.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF6785369A4

Feature memory access is based on vm event subsystem, and it could be disabled
in the future. So a few switch-blocks in do_altp2m_op() need
vm_event_is_enabled() condition check to pass compilation when ALTP2M=y and
VM_EVENT=n(, hence MEM_ACCESS=n), like HVMOP_altp2m_set_mem_access, etc.
Function p2m_mem_access_check() still needs stub when VM_EVENT=n to
pass compilation.
Although local variable "req_ptr" still remains NULL throughout its lifetime,
with the change of NULL assignment, we will face runtime undefined error only
when CONFIG_USBAN is on. So we strengthen the condition check via adding
vm_event_is_enabled() for the special case.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v3:
- a comment next to the excessive condition
- use vm_event_is_enabled() instead
- avoid heavy churn by using the inverted condition plus break
---
 xen/arch/x86/hvm/hvm.c                | 25 ++++++++++++++++++++++++-
 xen/arch/x86/include/asm/mem_access.h | 10 ++++++++++
 2 files changed, 34 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index aa14101241..8509b53585 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -52,6 +52,7 @@
 #include <asm/i387.h>
 #include <asm/mc146818rtc.h>
 #include <asm/mce.h>
+#include <asm/mem_access.h>
 #include <asm/monitor.h>
 #include <asm/msr.h>
 #include <asm/mtrr.h>
@@ -2080,7 +2081,11 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
 #endif
     }
 
-    if ( req_ptr )
+    /*
+     * Excessive condition is to avoid runtime undefined error only
+     * when CONFIG_USBAN=y
+     */
+    if ( req_ptr && vm_event_is_enabled(curr) )
     {
         if ( monitor_traps(curr, sync, req_ptr) < 0 )
             rc = 0;
@@ -4802,6 +4807,12 @@ static int do_altp2m_op(
         break;
 
     case HVMOP_altp2m_set_mem_access:
+        if ( !vm_event_is_enabled(current) )
+        {
+            rc = -EOPNOTSUPP;
+            break;
+        }
+
         if ( a.u.mem_access.pad )
             rc = -EINVAL;
         else
@@ -4811,6 +4822,12 @@ static int do_altp2m_op(
         break;
 
     case HVMOP_altp2m_set_mem_access_multi:
+        if ( !vm_event_is_enabled(current) )
+        {
+            rc = -EOPNOTSUPP;
+            break;
+        }
+
         if ( a.u.set_mem_access_multi.pad ||
              a.u.set_mem_access_multi.opaque > a.u.set_mem_access_multi.nr )
         {
@@ -4842,6 +4859,12 @@ static int do_altp2m_op(
         break;
 
     case HVMOP_altp2m_get_mem_access:
+        if ( !vm_event_is_enabled(current) )
+        {
+            rc = -EOPNOTSUPP;
+            break;
+        }
+
         if ( a.u.mem_access.pad )
             rc = -EINVAL;
         else
diff --git a/xen/arch/x86/include/asm/mem_access.h b/xen/arch/x86/include/asm/mem_access.h
index 257ed33de1..790bed81e8 100644
--- a/xen/arch/x86/include/asm/mem_access.h
+++ b/xen/arch/x86/include/asm/mem_access.h
@@ -14,6 +14,7 @@
 #ifndef __ASM_X86_MEM_ACCESS_H__
 #define __ASM_X86_MEM_ACCESS_H__
 
+#ifdef CONFIG_VM_EVENT
 /*
  * Setup vm_event request based on the access (gla is -1ull if not available).
  * Handles the rw2rx conversion. Boolean return value indicates if event type
@@ -25,6 +26,15 @@
 bool p2m_mem_access_check(paddr_t gpa, unsigned long gla,
                           struct npfec npfec,
                           struct vm_event_st **req_ptr);
+#else
+static inline bool p2m_mem_access_check(paddr_t gpa, unsigned long gla,
+                                        struct npfec npfec,
+                                        struct vm_event_st **req_ptr)
+{
+    *req_ptr = NULL;
+    return false;
+}
+#endif /* CONFIG_VM_EVENT */
 
 /* Check for emulation and mark vcpu for skipping one instruction
  * upon rescheduling if required. */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 09:21:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 09:21:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168522.1494517 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMNKe-0003Q7-Au; Fri, 21 Nov 2025 09:21:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168522.1494517; Fri, 21 Nov 2025 09: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 1vMNKe-0003Q0-89; Fri, 21 Nov 2025 09:21:32 +0000
Received: by outflank-mailman (input) for mailman id 1168522;
 Fri, 21 Nov 2025 09:21: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMNGE-0007sJ-8J
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 09:16:58 +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 d380614a-c6ba-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 10:16:57 +0100 (CET)
Received: from DSZP220CA0003.NAMP220.PROD.OUTLOOK.COM (2603:10b6:5:280::13) by
 CH1PR12MB9672.namprd12.prod.outlook.com (2603:10b6:610:2b0::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov
 2025 09:16:46 +0000
Received: from DS2PEPF00003446.namprd04.prod.outlook.com
 (2603:10b6:5:280:cafe::5e) by DSZP220CA0003.outlook.office365.com
 (2603:10b6:5:280::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.14 via Frontend Transport; Fri,
 21 Nov 2025 09:16:52 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS2PEPF00003446.mail.protection.outlook.com (10.167.17.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Fri, 21 Nov 2025 09:16:46 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 01:16:42 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d380614a-c6ba-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ird+R+Bsx6aaZugbtaoWFwnij4OGf/gVqFGUZIlziiHH6yuwoj27kWmSAgjqRtVSKHwjTUhGBSD3hOMsPloaytfLVPeB/JZyVOJOct/vZu3PSVzO8GrzGXo2tNOcWBZbKPQwQJrm89EhU8KYySL0IBLrnFD987JdQB2bIaWg1ncXeKrA/sQFXgdKu1AVM79dE3hKmc0533bf3+0H4e7miJBpVPcMDLCNalQq5pCLC58q/typcKAy8XnG9K2mv4OqddQAEpLOOEuPD70W9tmqaFPCffBAhsYmjioeO/Xhwptp5cWhtszw4oOP9plU2cwy/9M8Rq0oRaCmi6lt1LtW6g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dpxyTqyVm+vodOKO0BCKTxk0VoM8dxl5zHnLolJeEss=;
 b=Otx8Fjc5+gb6/ZsETXxtp9xUAvgmJ25hav8F9FTopG2v26Zl/Ka/P96KMjCfKfURhqh5IvZqZ82vQSqbOA4P5Z9P+fEHkQj3ZIq/X5HxIbGnDcZArGUNHu8VKm91NUNyiJl3nVc+a2yZAvH1GBDs43jXlCg/a0Uz0fALQk8Mxq1/P4gE6npr0epIihYRY11d5eW7aqWFzqOk6wCy0KJttsdamerzbt9EKWRdOLFHZVqEeC9MGrfENiGifwO6pWAoJIElqj8ivdei8/Ikf714EESD+jPzD/eBzzNokh/UFIVkALAd7WVvjjJ4/ZmpoZ63wcyS4DC8csWqmSo2AI1HQQ==
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=dpxyTqyVm+vodOKO0BCKTxk0VoM8dxl5zHnLolJeEss=;
 b=k9gJvJH23iO/0+TsDhWyMqA4qkx5+XdFuITutrlDAEhwawI0asZEFnsOYIpeHKMisTdWCE1aO/xfEVF31eC88p3yUq00d/rueBDoaQbxxwiS4sr1MxTKEfwjZ7/KfzVodCE7/dOn1Sa1D+BtvGmwMpp0ZfFaOgiYqQiA4TV6N1Y=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <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>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Tamas K Lengyel <tamas@tklengyel.com>,
	Alexandru Isaila <aisaila@bitdefender.com>, Petre Pircalabu
	<ppircalabu@bitdefender.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH v3 7/7] xen/vm_event: consolidate CONFIG_VM_EVENT
Date: Fri, 21 Nov 2025 17:15:54 +0800
Message-ID: <20251121091554.1003315-8-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121091554.1003315-1-Penny.Zheng@amd.com>
References: <20251121091554.1003315-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF00003446:EE_|CH1PR12MB9672:EE_
X-MS-Office365-Filtering-Correlation-Id: 1fb0d3f0-e3f8-4bbd-2a67-08de28deb1b7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|7416014|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?eGa8vqpUX6Q8HggOX/9RnI8B5SIzNcX1ryeliezTvT+zc7c0kz1CLNWviw56?=
 =?us-ascii?Q?86mVLgWcgLk6iz1nTLXmu+cbqiEmhzJUwA55KiYQ25gX6iM8bzMvRw+qYPXG?=
 =?us-ascii?Q?8/dgNjokZ1n9gG8SIFuAp5JXQX/Uj6Ys4pKq0yyLKHbOCWXmabPBR2+Sx25f?=
 =?us-ascii?Q?djy1eI3De/nQmzj+NNe/IGAnGnjdq8AATHlCrbqnIPbW/f+INwVuwZVvTSLb?=
 =?us-ascii?Q?lDK8R6ITSdPTKqvbbbCVw5Yz5g9Cg9yh147i5M5ErN3hGNz803UcQvQEk5hj?=
 =?us-ascii?Q?rq/YARk34B9KD0XoDB0yL6YBxXMPCRhr0L/YveWb/2u/Oi7/wFlaTsS+QGHq?=
 =?us-ascii?Q?Zv8grRQniSAJx0o7ircK5fPttE224qrSXZmeAkk9s8Dy4NAMN4t30AnSIMBe?=
 =?us-ascii?Q?wPGollnG1DOY01D8MIG4+8KBEKzZ7vMLBaR28UIw/dcAk8I/dhMVQ3xYIMou?=
 =?us-ascii?Q?pap7HvjswDvswnAZaxnd9abKqpniXVn+sS7qbqNKOpX29rp2tCzMQGitz4Vd?=
 =?us-ascii?Q?reIFosqibBOn51XBQj4tPsrjHeYCDUx5A5dUYNMPjas/SUgkIc0GDbcpU8xh?=
 =?us-ascii?Q?ATZ0aWxCHsvZJ8AUIDslJSB8KOb725d51AreehTzq8S99iUjhAAEfvJLH8+Z?=
 =?us-ascii?Q?IozqklNfq/HLQvdZ22qTcY5Ijn+EshLA46W/AU99LRrS5eafyELuiT6ntUof?=
 =?us-ascii?Q?IjeDxDeASv8f3rntmxWeSCxQ8yQ3FIE7/DXQBCEHpffmX/d0NkORIPTv9oEP?=
 =?us-ascii?Q?rzyVF0hxsouTxadsUG50c/hxt32Xhte0lMjbACS7N8XBu7TvCsLzG80Ek/iN?=
 =?us-ascii?Q?5zByMJsQGIDnwlcXp73hegS7UDjNpywWUiyZxXjc1pKb1ZOxGyyzr1qe/36T?=
 =?us-ascii?Q?yjNSA10bEDtOY2FqyIkE2in9SK66V6bUHCK+ytIzGfirDapiRD+TJxB8y+O+?=
 =?us-ascii?Q?rpJEDqBbTqEdSIIpo5M7c4WG1vUfOVy+oqzWddM9fPLVkDoICTuRxt0AwyC7?=
 =?us-ascii?Q?zy2V8Xyc/7nqeKVtrZ2rJpF6QAylfjRBCjVaP1WGEUteBZhUf2m047bfO4+v?=
 =?us-ascii?Q?9Rf5N3/sPawfDtH7q4DwzXTfRCO8f1F4j/T9jre7SOLZy0fCAsw0rWdkhZVW?=
 =?us-ascii?Q?XaJkKZQyPrYdZbe6znb4OlynvL8GNmCkZuu48ptCWcVCg8l1aRF3eSzyZXYW?=
 =?us-ascii?Q?ozb1Ikt7o38IEg5lSGrV4aP2tBM3srjdRtB2k0hXmp0pxFOI0wfkRe6QvOUZ?=
 =?us-ascii?Q?rFoStDplIHPF1bsdlkpcqOTtHiJ8AvRFW9ABb8jl5UEhoD/ib1+/MhSN4Rkq?=
 =?us-ascii?Q?8FhIN+dsaCuo8ENY39pVPvWpdB8OuHTuHtem40Jmz83JLyw3Uk4dss7fBhn9?=
 =?us-ascii?Q?e8hEQEtkH5S0HVLBO2UgNvqKJ7SfInwSp+H2xjmlPdoY3+vofx3q7/lcN65v?=
 =?us-ascii?Q?f/N70EiQE+LlpaMGRcrwWp9BtTxWPKx/57C8l4LIE+qwSASzQh8tGk2jZAka?=
 =?us-ascii?Q?Hb/HyHajgt9Zsuk4YN9itg4k8xEcF1Q6U2qc7dlgPmpOFdmDvJVjvILznSZv?=
 =?us-ascii?Q?5a1V7faokeBhmm5wqsE=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)(7416014)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 09:16:46.1807
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1fb0d3f0-e3f8-4bbd-2a67-08de28deb1b7
X-MS-Exchange-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:
	DS2PEPF00003446.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PR12MB9672

File hvm/vm_event.c and x86/vm_event.c are the extend to vm_event handling
routines, and its compilation shall be guarded by CONFIG_VM_EVENT too.

Although CONFIG_VM_EVENT is right now forcibly enabled on x86 via
MEM_ACCESS_ALWAYS_ON, we could disable it through disabling
CONFIG_MGMT_HYPERCALLS later. So we remove MEM_ACCESS_ALWAYS_ON and
make VM_EVENT=y on default only on x86 to retain the same.

The following functions are developed on the basis of vm event framework, or
only invoked by vm_event.c, so they all shall be wrapped with CONFIG_VM_EVENT
(otherwise they will become unreachable and
violate Misra rule 2.1 when VM_EVENT=n):
- hvm_toggle_singlestep
- hvm_fast_singlestep
- hvm_emulate_one_vm_event
    - hvmemul_write{,cmpxchg,rep_ins,rep_outs,rep_movs,rep_stos,read_io,write_io}_discard
And Function vm_event_check_ring() needs stub to pass compilation when
VM_EVENT=n.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
As the last commit, plz be commited either in the last, or shall be commited
together with prereq commit 55d5245f85, 2edfe59bc1, 316aac242d, 690b46c23d,
and 0bbd6cebfd
---
 xen/arch/x86/Makefile      |  2 +-
 xen/arch/x86/hvm/Kconfig   |  1 -
 xen/arch/x86/hvm/Makefile  |  2 +-
 xen/arch/x86/hvm/emulate.c | 58 ++++++++++++++++++++------------------
 xen/arch/x86/hvm/hvm.c     |  2 ++
 xen/common/Kconfig         |  7 ++---
 xen/include/xen/vm_event.h |  7 +++++
 7 files changed, 44 insertions(+), 35 deletions(-)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 407571c510..f71ca9f18b 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -75,7 +75,7 @@ obj-y += usercopy.o
 obj-y += x86_emulate.o
 obj-$(CONFIG_TBOOT) += tboot.o
 obj-y += hpet.o
-obj-y += vm_event.o
+obj-$(CONFIG_VM_EVENT) += vm_event.o
 obj-y += xstate.o
 
 ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index c323d767e7..31859deb97 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -4,7 +4,6 @@ menuconfig HVM
 	default !PV_SHIM
 	select COMPAT
 	select IOREQ_SERVER
-	select MEM_ACCESS_ALWAYS_ON
 	help
 	  Interfaces to support HVM domains.  HVM domains require hardware
 	  virtualisation extensions (e.g. Intel VT-x, AMD SVM), but can boot
diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 50e0b6e63b..952db00dd7 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -26,7 +26,7 @@ obj-y += save.o
 obj-y += stdvga.o
 obj-y += vioapic.o
 obj-y += vlapic.o
-obj-y += vm_event.o
+obj-$(CONFIG_VM_EVENT) += vm_event.o
 obj-y += vmsi.o
 obj-y += vpic.o
 obj-y += vpt.o
diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
index fe75b0516d..d56ef02baf 100644
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -1615,6 +1615,7 @@ static int cf_check hvmemul_blk(
     return rc;
 }
 
+#ifdef CONFIG_VM_EVENT
 static int cf_check hvmemul_write_discard(
     enum x86_segment seg,
     unsigned long offset,
@@ -1717,6 +1718,7 @@ static int cf_check hvmemul_cache_op_discard(
 {
     return X86EMUL_OKAY;
 }
+#endif /* CONFIG_VM_EVENT */
 
 static int cf_check hvmemul_cmpxchg(
     enum x86_segment seg,
@@ -2750,33 +2752,6 @@ static const struct x86_emulate_ops hvm_emulate_ops = {
     .vmfunc        = hvmemul_vmfunc,
 };
 
-static const struct x86_emulate_ops hvm_emulate_ops_no_write = {
-    .read          = hvmemul_read,
-    .insn_fetch    = hvmemul_insn_fetch,
-    .write         = hvmemul_write_discard,
-    .cmpxchg       = hvmemul_cmpxchg_discard,
-    .rep_ins       = hvmemul_rep_ins_discard,
-    .rep_outs      = hvmemul_rep_outs_discard,
-    .rep_movs      = hvmemul_rep_movs_discard,
-    .rep_stos      = hvmemul_rep_stos_discard,
-    .read_segment  = hvmemul_read_segment,
-    .write_segment = hvmemul_write_segment,
-    .read_io       = hvmemul_read_io_discard,
-    .write_io      = hvmemul_write_io_discard,
-    .read_cr       = hvmemul_read_cr,
-    .write_cr      = hvmemul_write_cr,
-    .read_xcr      = hvmemul_read_xcr,
-    .write_xcr     = hvmemul_write_xcr,
-    .read_msr      = hvmemul_read_msr,
-    .write_msr     = hvmemul_write_msr_discard,
-    .cache_op      = hvmemul_cache_op_discard,
-    .tlb_op        = hvmemul_tlb_op,
-    .cpuid         = x86emul_cpuid,
-    .get_fpu       = hvmemul_get_fpu,
-    .put_fpu       = hvmemul_put_fpu,
-    .vmfunc        = hvmemul_vmfunc,
-};
-
 /*
  * Note that passing VIO_no_completion into this function serves as kind
  * of (but not fully) an "auto select completion" indicator.  When there's
@@ -2887,6 +2862,34 @@ int hvm_emulate_one(
     return _hvm_emulate_one(hvmemul_ctxt, &hvm_emulate_ops, completion);
 }
 
+#ifdef CONFIG_VM_EVENT
+static const struct x86_emulate_ops hvm_emulate_ops_no_write = {
+    .read          = hvmemul_read,
+    .insn_fetch    = hvmemul_insn_fetch,
+    .write         = hvmemul_write_discard,
+    .cmpxchg       = hvmemul_cmpxchg_discard,
+    .rep_ins       = hvmemul_rep_ins_discard,
+    .rep_outs      = hvmemul_rep_outs_discard,
+    .rep_movs      = hvmemul_rep_movs_discard,
+    .rep_stos      = hvmemul_rep_stos_discard,
+    .read_segment  = hvmemul_read_segment,
+    .write_segment = hvmemul_write_segment,
+    .read_io       = hvmemul_read_io_discard,
+    .write_io      = hvmemul_write_io_discard,
+    .read_cr       = hvmemul_read_cr,
+    .write_cr      = hvmemul_write_cr,
+    .read_xcr      = hvmemul_read_xcr,
+    .write_xcr     = hvmemul_write_xcr,
+    .read_msr      = hvmemul_read_msr,
+    .write_msr     = hvmemul_write_msr_discard,
+    .cache_op      = hvmemul_cache_op_discard,
+    .tlb_op        = hvmemul_tlb_op,
+    .cpuid         = x86emul_cpuid,
+    .get_fpu       = hvmemul_get_fpu,
+    .put_fpu       = hvmemul_put_fpu,
+    .vmfunc        = hvmemul_vmfunc,
+};
+
 void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
     unsigned int errcode)
 {
@@ -2949,6 +2952,7 @@ void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
 
     hvm_emulate_writeback(&ctx);
 }
+#endif /* CONFIG_VM_EVENT */
 
 void hvm_emulate_init_once(
     struct hvm_emulate_ctxt *hvmemul_ctxt,
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 8509b53585..d03f563d76 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -5247,6 +5247,7 @@ int hvm_debug_op(struct vcpu *v, int32_t op)
     return rc;
 }
 
+#ifdef CONFIG_VM_EVENT
 void hvm_toggle_singlestep(struct vcpu *v)
 {
     ASSERT(atomic_read(&v->pause_count));
@@ -5273,6 +5274,7 @@ void hvm_fast_singlestep(struct vcpu *v, uint16_t p2midx)
     v->arch.hvm.fast_single_step.p2midx = p2midx;
 }
 #endif
+#endif /* CONFIG_VM_EVENT */
 
 /*
  * Segment caches in VMCB/VMCS are inconsistent about which bits are checked,
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 401d5046f6..218ac3d549 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -173,13 +173,10 @@ config HAS_VMAP
 config LIBFDT
 	bool
 
-config MEM_ACCESS_ALWAYS_ON
-	bool
-
 config VM_EVENT
-	def_bool MEM_ACCESS_ALWAYS_ON
-	prompt "Memory Access and VM events" if !MEM_ACCESS_ALWAYS_ON
+	bool "Memory Access and VM events"
 	depends on HVM
+	default X86
 	help
 
 	  Framework to configure memory access types for guests and receive
diff --git a/xen/include/xen/vm_event.h b/xen/include/xen/vm_event.h
index 27d0c74216..1b76ce632e 100644
--- a/xen/include/xen/vm_event.h
+++ b/xen/include/xen/vm_event.h
@@ -51,7 +51,14 @@ struct vm_event_domain
 };
 
 /* Returns whether a ring has been set up */
+#ifdef CONFIG_VM_EVENT
 bool vm_event_check_ring(struct vm_event_domain *ved);
+#else
+static inline bool vm_event_check_ring(struct vm_event_domain *ved)
+{
+    return false;
+}
+#endif /* CONFIG_VM_EVENT */
 
 /* Returns 0 on success, -ENOSYS if there is no ring, -EBUSY if there is no
  * available space and the caller is a foreign domain. If the guest itself
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 09:38:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 09:38:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168550.1494526 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMNaa-0005gq-L7; Fri, 21 Nov 2025 09:38:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168550.1494526; Fri, 21 Nov 2025 09: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 1vMNaa-0005gj-IC; Fri, 21 Nov 2025 09:38:00 +0000
Received: by outflank-mailman (input) for mailman id 1168550;
 Fri, 21 Nov 2025 09:37: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=hfPM=55=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vMNaZ-0005gR-73
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 09:37:59 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c1dd722a-c6bd-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 10:37:55 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b72bf7e703fso297354366b.2
 for <xen-devel@lists.xenproject.org>; Fri, 21 Nov 2025 01:37:55 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654fd4e51sm415577766b.42.2025.11.21.01.37.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 21 Nov 2025 01:37: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: c1dd722a-c6bd-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763717875; x=1764322675; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Z4WLGDTdYpE0UpvRqdAbbIpa6f/gZL1niV3eIf2Peig=;
        b=hcA+cFv+SXpqjGreZDaSCAyRnHNO+CX25KAOXuPL3kthEVi0h1NusoAN5+0kSr09YN
         6gfmtezLYycnyIFh/WAG9zJwSBPVbpVRJK86L8dPKfje+zOynwQIWEAeKh//szVCtPLR
         OB2wa5g9drs8k0MG1qMeIwgl8NaGi4GYZjQB5kdwtBJvlErCthu/t30y4Sn0px3VEUjO
         ixNcNNSOEIaydjgaPL5n95F4T7aJUpDyTKNx/ezlzIWCBlOubtCeKujjwNDfl9XDJ+dt
         99KmkiRduFcB9lTPtcIIbBKK/eYnITnmdeEDStSlXQ8YG2x64a9cTETSYc57mhXwH3cU
         B5Xw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763717875; x=1764322675;
        h=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=Z4WLGDTdYpE0UpvRqdAbbIpa6f/gZL1niV3eIf2Peig=;
        b=kqHihLPNkIs2JPjdiyDwN2xgLY1UHE+2vi91FC8g7h1VXcLVYPMHFLnqEo2x8i4l04
         bbJcE/WHhEdXFTfyywrf3qlFGh8q1sa5HD0ZHnIfWiBdLmFgCHZiKuQGJFHlDkjek0f0
         WrU5P5zuQly6ZHtO12lr8TvxwZt5CYi8dCiEjZLWRoC/zB+HOt9aHa5gLZO7v5ZQR25R
         WxPho/wkF31mmvezXRcdw/KLNLuB8T2nHU/10ZS1ubz8T59MFIM82t1VWSejbJuY82LG
         Ertd1Iyq8JMKwxutfp7GGU2JXdKiFktrNF6oxt12sr1lijQTiMaNYK+/1C3/MDTo00l4
         kCFQ==
X-Forwarded-Encrypted: i=1; AJvYcCUdODXX8FE9Dt8oDg40kMmaGMispLv1yCD6k13M0sJurQYyjj/r5PnaithUVOhWshDcxYUWFZvFbuU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwnjVCy3k+Dt73ccS/qzP8/WjUBDi8q+1lkeNIdREb2uFcghozt
	+MDr+h9701KYepok4TuO1SD8ozvJls8rhj6cRxxk8SC4181O78mEqu56
X-Gm-Gg: ASbGncu2KbgcCOqwL7GsDA0IC3tTAVwN1XaPEYW6wG4DXOQy3VeX4CDDQfOqcUzC3Rt
	CZgQpx5EGr+32kV/IVuWrGt3Eud9uG0cnQ2a4BVzsem7s5Ob1ujWRr+AkuoihPQymLjfQp+2JyV
	X/FRENb1hzrGHsBIVab0HQxVHMXMEe+9sPiguWk+KM45sXMfzee71vRAdVL7vqNWZVTE8ick7PD
	TEG+LqPx46WAtD6eArgerbV+ILzRStWr624bj31dvHk7OHYjqoRCdhAzvloe7uG1XJcQ/X+QhDq
	gkwroartIhqgtf6Zx9RSZwPm4nTWUFO9T9RJMfGRxc39Vz+zgdv9nd7w7vpIiMQXhMRqjtSArJ+
	xkpkvFzn/0EbhMeM6ffjDdots7Fp/7cQ18tMqfLYTXkwNGwQjJ8pq9JvyULm4RXXmyXCh15Cx8r
	bnxeegNcpY2LsyVYsPX9MShVJHRsq/jcaNePBajv3ki9B9tkCzxaa2TAeqxEhX6gpbzRNouIs=
X-Google-Smtp-Source: AGHT+IEFbW7Jvrh2e3aX0n67UOKKJauX+PSq7yPIUp/uX2xuPXTV1RrN8kx1coXrYbTFvrUkRe6RZA==
X-Received: by 2002:a17:907:e8c:b0:b72:eaba:aac2 with SMTP id a640c23a62f3a-b767173c3f7mr164808366b.26.1763717874465;
        Fri, 21 Nov 2025 01:37:54 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------8XlkmW7sZwONcM6khLj70fBq"
Message-ID: <60fc80c8-0f7b-41e4-8e38-e7ca915ec9bf@gmail.com>
Date: Fri, 21 Nov 2025 10:37:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [for 4.22 v5 18/18] xen/riscv: introduce metadata table to store
 P2M type
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1760974017.git.oleksii.kurochko@gmail.com>
 <d291d2efe7dcc6ddd3d16677a81c57d755c7ada2.1760974017.git.oleksii.kurochko@gmail.com>
 <6a5a9f4e-1f0e-453f-b1d1-d0e2acf97e2a@suse.com>
 <5d4ec4d9-b4c1-4365-a343-f42b390da165@gmail.com>
 <6f431394-5c08-4974-85ae-4b38f1975289@suse.com>
 <e2cbb6b9-ab07-4aad-8eb8-f4dd859ac6f6@gmail.com>
 <b859d5c1-b602-4e61-b667-2701e0f31434@suse.com>
 <3f772780-75af-4d77-96c9-7eb7dc697ff8@gmail.com>
 <a1fc8b4b-735e-4f5d-a015-318b3e1f3550@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <a1fc8b4b-735e-4f5d-a015-318b3e1f3550@suse.com>

This is a multi-part message in MIME format.
--------------8XlkmW7sZwONcM6khLj70fBq
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/21/25 8:35 AM, Jan Beulich wrote:
> On 20.11.2025 17:52, Oleksii Kurochko wrote:
>> On 11/20/25 4:47 PM, Jan Beulich wrote:
>>> On 20.11.2025 16:38, Oleksii Kurochko wrote:
>>>> On 11/18/25 7:58 AM, Jan Beulich wrote:
>>>>> On 17.11.2025 20:51, Oleksii Kurochko wrote:
>>>>>> On 11/12/25 12:49 PM, Jan Beulich wrote:
>>>>>>> On 20.10.2025 17:58, Oleksii Kurochko wrote:
>>>>>>>> +Â Â Â  if ( *md_pg )
>>>>>>>> +Â Â Â Â Â Â Â  metadata = __map_domain_page(*md_pg);
>>>>>>>> +
>>>>>>>> +Â Â Â  if ( t < p2m_first_external )
>>>>>>>> +Â Â Â  {
>>>>>>>>    Â Â Â Â Â Â Â Â Â  pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>>>>>>>>    Â  -Â Â Â  return rc;
>>>>>>>> +Â Â Â Â Â Â Â  if ( metadata )
>>>>>>>> +Â Â Â Â Â Â Â Â Â Â Â  metadata[ctx->index].pte = p2m_invalid;
>>>>>>> Shouldn't this be accompanied with a BUILD_BUG_ON(p2m_invalid), as otherwise
>>>>>>> p2m_alloc_page()'s clearing of the page won't have the intended effect?
>>>>>> I think that, at least, at the moment we are always explicitly set p2m type and
>>>>>> do not rely on that by default 0==p2m_invalid.
>>>>> You don't, and ...
>>>>>
>>>>>> Just to be safe, I will add after "if ( metadata )" suggested
>>>>>> BUILD_BUG_ON(p2m_invalid):
>>>>>>    Â Â Â Â Â Â Â  if ( metadata )
>>>>>>    Â Â Â Â Â Â Â Â Â Â Â  metadata[ctx->index].type = p2m_invalid;
>>>>>>    Â Â Â Â Â Â Â  Â Â Â Â Â Â Â  /*
>>>>>>    Â Â Â Â Â Â Â Â  * metadata.type is expected to be p2m_invalid (0) after the page is
>>>>>>    Â Â Â Â Â Â Â Â  * allocated and zero-initialized in p2m_alloc_page().
>>>>>>    Â Â Â Â Â Â Â Â  */
>>>>>>    Â Â Â Â Â Â Â  BUILD_BUG_ON(p2m_invalid);
>>>>>> ...
>>>>> ... this leaves me with the impression that you didn't read my reply correctly.
>>>>> p2m_alloc_page() clear the page, thus_implicitly_ setting all entries to
>>>>> p2m_invalid. That's where the BUILD_BUG_ON() would want to go (the call site,
>>>>> ftaod).
>>>> I think I still donâ€™t fully understand what the issue would be if|p2m_invalid| were
>>>> ever equal to 1 instead of 0 in the context of a metadata page.
>>>>
>>>> Yes, if|p2m_invalid| were 1, there would be a problem if someone tried to read this
>>>> metadata pagebefore it was assigned any type. They would find a value of 0, which
>>>> corresponds to a valid type rather than to|p2m_invalid|, as one might expect.
>>>> However, Iâ€™m not sure I currently see a scenario in which the metadata page would
>>>> be read before being initialized.
>>> Are you sure walks can only happen for GFNs that were set up? What you need to
>>> do walks on is under guest control, after all.
>> If a GFN lies within the range[p2m->lowest_mapped_gfn, p2m->max_mapped_gfn], then
>> |p2m_set_entry()| must already have been called for this GFN.
> No. All you know from the pre-condition is that p2m_set_entry() was called for the
> lowest and highest GFNs in that range.
>
Oh, right. There could still be some GFNs inside the range for which|p2m_set_entry()| has
not yet been called. Then it probably makes sense to add a|BUILD_BUG_ON| here as well, before
"if ( type == p2m_ext_storage )":

     static p2m_type_t p2m_get_type(const pte_t pte, const struct p2m_pte_ctx *ctx)
     {
         p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
     
         if ( type == p2m_ext_storage )
         {
             const pte_t *md = __map_domain_page(ctx->pt_page->v.md.pg);
     
             type = md[ctx->index].pte;
     
             unmap_domain_page(md);
         }
     
         return type;
     }

I would expect that if|p2m_set_entry()| has not been called for a GFN, then|p2m_get_entry()|
(|p2m_get_type()| will be called somewhere inside|p2m_get_entry()|, for example) should return
the|p2m_invalid| type. I think we want to have the same check (as the one before the call to
|p2m_alloc_page()|), placed before the condition:
   BUILD_BUG_ON(p2m_invalid);

~ Oleksii

>
>> This means that either
>> - a metadata page has been created and its entry filled with the appropriate type, or
>> - no metadata page was needed and the type was stored directly in|pte->pte|
>>
>> For a GFN outside the range(p2m->lowest_mapped_gfn, p2m->max_mapped_gfn),
>> |p2m_get_entry()| will not even attempt a walk because of the boundary checks:
>>       static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
>>                                  p2m_type_t *t,
>>                                  unsigned int *page_order)
>>       ...
>>           if ( check_outside_boundary(p2m, gfn, p2m->lowest_mapped_gfn, true,
>>                                       &level) )
>>               goto out;
>>       
>>           if ( check_outside_boundary(p2m, gfn, p2m->max_mapped_gfn, false, &level) )
>>               goto out;
>>
>> If I am misunderstanding something and there are other cases where a walk can occur for
>> GFNs that were never set up, then such GFNs would have neither an allocated metadata
>> page nor a type stored in|pte->pte|, which looks like we are in trouble.
>>
>> ~ Oleksii
>>
--------------8XlkmW7sZwONcM6khLj70fBq
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/21/25 8:35 AM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:a1fc8b4b-735e-4f5d-a015-318b3e1f3550@suse.com">
      <pre wrap="" class="moz-quote-pre">On 20.11.2025 17:52, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
On 11/20/25 4:47 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 20.11.2025 16:38, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">On 11/18/25 7:58 AM, Jan Beulich wrote:
</pre>
            <blockquote type="cite">
              <pre wrap="" class="moz-quote-pre">On 17.11.2025 20:51, Oleksii Kurochko wrote:
</pre>
              <blockquote type="cite">
                <pre wrap="" class="moz-quote-pre">On 11/12/25 12:49 PM, Jan Beulich wrote:
</pre>
                <blockquote type="cite">
                  <pre wrap="" class="moz-quote-pre">On 20.10.2025 17:58, Oleksii Kurochko wrote:
</pre>
                  <blockquote type="cite">
                    <pre wrap="" class="moz-quote-pre">+Â Â Â  if ( *md_pg )
+Â Â Â Â Â Â Â  metadata = __map_domain_page(*md_pg);
+
+Â Â Â  if ( t &lt; p2m_first_external )
+Â Â Â  {
  Â Â Â Â Â Â Â Â Â  pte-&gt;pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
  Â  -Â Â Â  return rc;
+Â Â Â Â Â Â Â  if ( metadata )
+Â Â Â Â Â Â Â Â Â Â Â  metadata[ctx-&gt;index].pte = p2m_invalid;
</pre>
                  </blockquote>
                  <pre wrap="" class="moz-quote-pre">Shouldn't this be accompanied with a BUILD_BUG_ON(p2m_invalid), as otherwise
p2m_alloc_page()'s clearing of the page won't have the intended effect?
</pre>
                </blockquote>
                <pre wrap="" class="moz-quote-pre">I think that, at least, at the moment we are always explicitly set p2m type and
do not rely on that by default 0==p2m_invalid.
</pre>
              </blockquote>
              <pre wrap="" class="moz-quote-pre">You don't, and ...

</pre>
              <blockquote type="cite">
                <pre wrap="" class="moz-quote-pre">Just to be safe, I will add after "if ( metadata )" suggested
BUILD_BUG_ON(p2m_invalid):
  Â Â Â Â Â Â Â  if ( metadata )
  Â Â Â Â Â Â Â Â Â Â Â  metadata[ctx-&gt;index].type = p2m_invalid;
  Â Â Â Â Â Â Â  Â Â Â Â Â Â Â  /*
  Â Â Â Â Â Â Â Â  * metadata.type is expected to be p2m_invalid (0) after the page is
  Â Â Â Â Â Â Â Â  * allocated and zero-initialized in p2m_alloc_page().
  Â Â Â Â Â Â Â Â  */
  Â Â Â Â Â Â Â  BUILD_BUG_ON(p2m_invalid);
...
</pre>
              </blockquote>
              <pre wrap="" class="moz-quote-pre">... this leaves me with the impression that you didn't read my reply correctly.
p2m_alloc_page() clear the page, thus_implicitly_ setting all entries to
p2m_invalid. That's where the BUILD_BUG_ON() would want to go (the call site,
ftaod).
</pre>
            </blockquote>
            <pre wrap="" class="moz-quote-pre">I think I still donâ€™t fully understand what the issue would be if|p2m_invalid| were
ever equal to 1 instead of 0 in the context of a metadata page.

Yes, if|p2m_invalid| were 1, there would be a problem if someone tried to read this
metadata pagebefore it was assigned any type. They would find a value of 0, which
corresponds to a valid type rather than to|p2m_invalid|, as one might expect.
However, Iâ€™m not sure I currently see a scenario in which the metadata page would
be read before being initialized.
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Are you sure walks can only happen for GFNs that were set up? What you need to
do walks on is under guest control, after all.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
If a GFN lies within the range[p2m-&gt;lowest_mapped_gfn, p2m-&gt;max_mapped_gfn], then
|p2m_set_entry()| must already have been called for this GFN.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
No. All you know from the pre-condition is that p2m_set_entry() was called for the
lowest and highest GFNs in that range.

</pre>
    </blockquote>
    <pre>Oh, right. There could still be some GFNs inside the range for which <code
    data-start="205" data-end="222">p2m_set_entry()</code> has
not yet been called. Then it probably makes sense to add a <code
    data-start="286" data-end="300">BUILD_BUG_ON</code> here as well, before
"if ( type == p2m_ext_storage )":

    static p2m_type_t p2m_get_type(const pte_t pte, const struct p2m_pte_ctx *ctx)
    {
        p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
    
        if ( type == p2m_ext_storage )
        {
            const pte_t *md = __map_domain_page(ctx-&gt;pt_page-&gt;v.md.pg);
    
            type = md[ctx-&gt;index].pte;
    
            unmap_domain_page(md);
        }
    
        return type;
    }

I would expect that if <code data-start="749" data-end="766">p2m_set_entry()</code> has not been called for a GFN, then <code
    data-start="803" data-end="820">p2m_get_entry()</code>
(<code data-start="824" data-end="840">p2m_get_type()</code> will be called somewhere inside <code
    data-start="873" data-end="890">p2m_get_entry()</code>, for example) should return
the <code data-start="912" data-end="925">p2m_invalid</code> type. I think we want to have the same check (as the one before the call to
<code data-start="1004" data-end="1022">p2m_alloc_page()</code>), placed before the condition:
  BUILD_BUG_ON(p2m_invalid);

~ Oleksii</pre>
    <blockquote type="cite"
      cite="mid:a1fc8b4b-735e-4f5d-a015-318b3e1f3550@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">This means that either
- a metadata page has been created and its entry filled with the appropriate type, or
- no metadata page was needed and the type was stored directly in|pte-&gt;pte|

For a GFN outside the range(p2m-&gt;lowest_mapped_gfn, p2m-&gt;max_mapped_gfn),
|p2m_get_entry()| will not even attempt a walk because of the boundary checks:
     static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
                                p2m_type_t *t,
                                unsigned int *page_order)
     ...
         if ( check_outside_boundary(p2m, gfn, p2m-&gt;lowest_mapped_gfn, true,
                                     &amp;level) )
             goto out;
     
         if ( check_outside_boundary(p2m, gfn, p2m-&gt;max_mapped_gfn, false, &amp;level) )
             goto out;

If I am misunderstanding something and there are other cases where a walk can occur for
GFNs that were never set up, then such GFNs would have neither an allocated metadata
page nor a type stored in|pte-&gt;pte|, which looks like we are in trouble.

~ Oleksii

</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
</pre>
    </blockquote>
  </body>
</html>

--------------8XlkmW7sZwONcM6khLj70fBq--


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 10:58:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 10:58:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168576.1494567 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOqm-0008Ei-3W; Fri, 21 Nov 2025 10:58:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168576.1494567; Fri, 21 Nov 2025 10:58:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOql-0008EZ-VR; Fri, 21 Nov 2025 10:58:47 +0000
Received: by outflank-mailman (input) for mailman id 1168576;
 Fri, 21 Nov 2025 10:58: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOqj-0007TB-Qo
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:58:45 +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 0b8ffc12-c6c9-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 11:58:44 +0100 (CET)
Received: from SN7PR04CA0228.namprd04.prod.outlook.com (2603:10b6:806:127::23)
 by DS4PR12MB9636.namprd12.prod.outlook.com (2603:10b6:8:27f::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Fri, 21 Nov
 2025 10:58:39 +0000
Received: from SA2PEPF000015CA.namprd03.prod.outlook.com
 (2603:10b6:806:127:cafe::d4) by SN7PR04CA0228.outlook.office365.com
 (2603:10b6:806:127::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.14 via Frontend Transport; Fri,
 21 Nov 2025 10:58:29 +0000
Received: from satlexmb07.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.9343.9 via Frontend Transport; Fri, 21 Nov 2025 10:58:39 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:58:36 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b8ffc12-c6c9-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pQWVm40qOSqP04seDr8qD7v74i4qpSI7Xuh/2LYMN5LAu4j1gwrcdhwpQ6yXW/ih6hddWGARJWDj3mHZio50NDbBnMJMvGhQINjGuIMet8wt5U+8zND6zVcMaMqV0GzHoc01LDTKwMiVkwwaCUDB98Sk+rowKsETR4rs+ZVJWKS+IGUBOYycNJ/B4viG2aqF2VsgITPTH5MnbvfYBCksAq50p6Fowh1eF3oDnb6sUX8POaSZJfU6o9ehL2ylKvnZG4Eo79QgmtD7pMD5Ew5lDcnvfNpg+5h2G111KNTRsR/AHZtEz/1e+3sd/KDnBPBtXyYcaW644yjk+R/iHM9T1A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZUWB4zPTieGXMsEwDqzbhQ3g9us99jKBTg1eSov6L+s=;
 b=bCWE0SmlejQMc5FyQvFvYxngru+c42JvEDi7x5iySUqTurlZY96JBkn3pjsTCAHRCp6jxX/6NTerVK/CQJagRyeVfrL0gU8DDHbQVTRx/pGs3J+Rid+ERDy3oNm50VzGEa/N5i+N65d8/G9UClO7KJ725OKB0yrC07DFvppjiNymtsM8vDXx8/eLKUEWv0lL3GHpx8J+DsPFjCX1RStJ25wJdtqYrGxfaMppZdZJJuoP4xmtO5kUw8TebO2erK+CTNUrnYwVQCiLCWYETWUMnIa+wZjzFaMl7xtJfDo6czmXcrpYyxdNxkaEJWd21d0w3WQUML7BaUAYWm/6OLED8g==
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=ZUWB4zPTieGXMsEwDqzbhQ3g9us99jKBTg1eSov6L+s=;
 b=woHAR3NBeU7tqJ77Q7xUSwkm9EZUkUUkTHtLdAXGV930Zv5xbZYAenupvjz+JQ5ZEHcvAv1H1HMbKSR2uVyhvVueMicCiOpFmBeanNzhaQi+SSH5kZvY3KZztH/5jNnHxx7oXonU419DPBBc5nJu6gnC7F0xTTuBAzyxZ4gYqJg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: [PATCH v4 04/24] xen/domctl: make MGMT_HYPERCALLS transiently def_bool
Date: Fri, 21 Nov 2025 18:57:41 +0800
Message-ID: <20251121105801.1251262-5-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SA2PEPF000015CA:EE_|DS4PR12MB9636:EE_
X-MS-Office365-Filtering-Correlation-Id: d3fdd5d0-8106-43be-8602-08de28eced93
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?lZ0czf+WaEJi/nhfjGX16L9r+ij3DufI92QDU7psfxXyoklq6ko7L3MwSedF?=
 =?us-ascii?Q?9/N6Zvn9asbCBPHl8K6UL2ISCQMW8vaphcbqfC6CURdH047wdA262VFol7pU?=
 =?us-ascii?Q?pzboxjQTZHJMMD+cOpNEkmgjJwk5yoZDaqUM+cPNcCTAxZwPECpKCmJg8zE1?=
 =?us-ascii?Q?ivb+Id6h4PUHGrhJINGb79xNeb8HFuL6Tx5n3sYqY4zz1cybIMxRDIiEV8/B?=
 =?us-ascii?Q?jju+5yk/IBlrMdoP0wUd6elhLIKOp/Gbpbijn3rMvYE3X0AHAhPqZl83hAu0?=
 =?us-ascii?Q?/t6NCsbP4piMJUtq0yJiiF6uJpJTUbH+CNgWZR8hdL/yOgSF4l4hPIXoAcI8?=
 =?us-ascii?Q?+0Ad4+fTH2QiTvwBxJM3CLUaij7PQb3AXOMPGdEh8A5Zu6s+TdOXe33sf73O?=
 =?us-ascii?Q?3td/wS6Y8c+pSpo/zRIyLtjJ6iz83ePPTxtJplQNnLMl9xHfkWoZYbEGpFr+?=
 =?us-ascii?Q?ae8S+9Ix2Q8tRVRsuUb3gl6a4+1EQ8SDJBCe6sQaKXShBLnu+6iooTDblDRl?=
 =?us-ascii?Q?q5u5cO7c6+SE4noXHsyoEDn4CXkd7i6Hn+kPzspgY0AOWMsZZAZewA4Vak6R?=
 =?us-ascii?Q?5c7RKf9pW9eRgUrccuzQK3H/zELWFLWZg6YMq8WcPDRtjkWluBlzr9b3IfKV?=
 =?us-ascii?Q?HY3d2k32lfDePhiNAiNLVlLbIemAi9YTrD6hKMmKWC1jaqKudsJY2t/W6Tev?=
 =?us-ascii?Q?Elgam03wmxDnfZY0e8dfx/+UHGDVu25oymxBJYmQG+hRDOf9C6O/NE73PxPY?=
 =?us-ascii?Q?rG5IpDRg99kJMLQs5Ispq1vTSDlpElNCmw0TYSCTJ0CMnZ6+EH3bu5/amDuy?=
 =?us-ascii?Q?lDwqzrP5ZA/V1Woi+qdKjlTA0kqetYHhR0Iicbz0wayeIm6Tw6ZeqfT7KxFL?=
 =?us-ascii?Q?gQhO1pryxrHTq49MrA8e0CcAEuBGsYuT2vtFtBLygU3HFQiQjVqklnWhMNyx?=
 =?us-ascii?Q?E4iPAm4xqxVuAZRsX5gV70DcBHnJFJ5UbpHsCKDCrypyyrNXgGU4OVUDeHh3?=
 =?us-ascii?Q?wzhyoZZ+q8odfSz+RAipMTI57LdYssfz5vUe0XZDuViP3EC2yavzw1nTd4ZF?=
 =?us-ascii?Q?CLIBbrkLhdzMOACIQ2N/YNzW56xh5zJpBaKKowSDUc9J0PbmCEuI4d4SuwK8?=
 =?us-ascii?Q?vXsqWT0LKGwwBWR02BBrAN7nC8umPWtN6TcSyc4OVZj+9GLsl/PrDbDoCZak?=
 =?us-ascii?Q?znsZ+6cz2Aapd0ogsDjkCFkKmaLAI+3xZDZFVo78SNrvEK9gFGpo72H0HPr6?=
 =?us-ascii?Q?+54bNGqTI4oRIP8kF1c0RDQ8McoAeAs9x5W53FhG+oooLeiAXyG+DGqpr4gl?=
 =?us-ascii?Q?pLAfYAM02uW9fWtTXMlv2VAB3feWxjkIhd3AhJYS2O45JfhBlAnnnc9UhUYj?=
 =?us-ascii?Q?R2yVs+aAoR9TipjNgQrRvCoGThwXWHoSpNgqh7mg194alDBC6AqNSTaK6LK2?=
 =?us-ascii?Q?VE22fOhqT+z6Q3jRpGDAAoP4WYRCuCFMNv8F5bJlfNK8kp7zUDxcRJfyT9En?=
 =?us-ascii?Q?zqzq8vNPMmr6eeUomenvESkpnoNUkkWCTpIsdduqZ1Yq9brk5PZZrY0VOvNr?=
 =?us-ascii?Q?twPPT2ePuKt8w/zNXaA=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:58:39.5737
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d3fdd5d0-8106-43be-8602-08de28eced93
X-MS-Exchange-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:
	SA2PEPF000015CA.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9636

In order to asist in reviewing/developing disabling domctl-op patch serie,
we will transiently make MGMT_HYPERCALLS def_bool. And it will become
optional at the last of domctl-op patch serie, where common/domctl.o's
building as a whole becomes dependent upon that setting.

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

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 6709c3c95c..aef29e0174 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -654,7 +654,7 @@ menu "Supported hypercall interfaces"
 config MGMT_HYPERCALLS
 	bool "Enable privileged hypercalls for system management"
 	depends on !PV_SHIM_EXCLUSIVE
-	default y
+	def_bool y
 	help
 	  This option shall only be disabled on some dom0less systems, or
 	  PV shim on x86, to reduce Xen footprint via managing unnessary
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 10:58:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 10:58:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168577.1494570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOqm-0008Gs-Ba; Fri, 21 Nov 2025 10:58:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168577.1494570; Fri, 21 Nov 2025 10:58:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOqm-0008GL-70; Fri, 21 Nov 2025 10:58:48 +0000
Received: by outflank-mailman (input) for mailman id 1168577;
 Fri, 21 Nov 2025 10: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOql-0007TB-Bj
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:58:47 +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 0d245109-c6c9-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 11:58:46 +0100 (CET)
Received: from SN6PR08CA0014.namprd08.prod.outlook.com (2603:10b6:805:66::27)
 by SA0PR12MB4477.namprd12.prod.outlook.com (2603:10b6:806:92::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Fri, 21 Nov
 2025 10:58:42 +0000
Received: from SA2PEPF000015C7.namprd03.prod.outlook.com
 (2603:10b6:805:66:cafe::66) by SN6PR08CA0014.outlook.office365.com
 (2603:10b6:805:66::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.11 via Frontend Transport; Fri,
 21 Nov 2025 10:58:41 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF000015C7.mail.protection.outlook.com (10.167.241.197) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Fri, 21 Nov 2025 10:58:42 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:58:39 -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: 0d245109-c6c9-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CrGpHlBhCtPXNVvP9OkJ6R5FwDyTcnJC0rnY+LPa/6W9c9NMWifymjJaY1CQT6bWSHUgyXQoWhZyRa11Cgy7tnlRObiWn1e9WWzGo74byobrSH6hLbngryOr/z3fWjvlZ35veCcvh76aI1dwt+CTnWwgT70fxcKQn3CtZzzKRFAFwjwIDxs4NsDaF1cliUWIFPj5SqTsT62Ewth4QVmHI4/7ZfjzMPj10fl/dy0lTnnzsUxSX3+FbhXEYK0nhE3FsX0dLxHx9sfVX3AOduigBAhVKP2dc5feC3zSHo4v3O5qqgS4RnoNotUY1Egzoe8zQlgtnnxva6UkAJ8PSo8yww==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3GQVuXC7B0B8twCs+l8AJnzRTVvVzhnihKsh/9HGxZY=;
 b=lYPGRVfVADuAEUyqq4/Gv8LZxKy4o1V4IXtpda5WTbI/vNS4hSYdMVgpOzqhHlU7Mmxi2q+7sZ7IbUx856qGwr6Z4Cl81JSX+SCWS4jWK0DUs4QtrL9ulzSPao7xIZ0eqIcKPyKUnfUcH7khlUMztq3D2ldSSiXNAmaEMdyezXMutnzEs/F1l7upFBdwt5zxVuwYgihx256XlU87AldqJMLJuEGQ2dZejwwHir4owK63aN+sVqAUh8cKz4YalBQ4roZ9xCXv8nQk3saYuox3Zw8e0fZIdhcWYpeDpovtyJfXYLMdbzx5Rl+tBQNDD6L/OInGuFqwyPICnukRN+DMLQ==
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=3GQVuXC7B0B8twCs+l8AJnzRTVvVzhnihKsh/9HGxZY=;
 b=TZAqM3l0ums4CHyQ0lFep/Gsgw8eIriQerhc+wrLDiu7g/S4gsT13KmKNmKJTNyZfm2v9acstoFanS2fmyGhAw1Mtg2Ji2jlyv14pFhGpGwz8zUKammZuaZciYtniRka0fbWAACL+e4yzG7XmHIPDYoTBexKWyR/WIIlkZ0CT+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
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: [PATCH v4 05/24] xen/vm_event: make VM_EVENT depend on CONFIG_MGMT_HYPERCALLS
Date: Fri, 21 Nov 2025 18:57:42 +0800
Message-ID: <20251121105801.1251262-6-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SA2PEPF000015C7:EE_|SA0PR12MB4477:EE_
X-MS-Office365-Filtering-Correlation-Id: 8dda5add-e648-4090-a2a7-08de28ecef57
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?lDKWyzcumBISSbZXx4qRmxDT/eBMiOSn9O344CCSRPja82YIE51t9owWHJrn?=
 =?us-ascii?Q?ptzdgrbNfuhWMx1GEuu004xetwjh9HTohNIRt3jLP5ZCKwdMgMfZlKpJovC4?=
 =?us-ascii?Q?61ENClFwxBCxITCEEfROAhn7Mjfzq7R0XiAnZq5OikHrWWfdJNPqttrSNTMg?=
 =?us-ascii?Q?GgTApr3dSKMKT+TWDnDS6Yxr/7RaqI5SpcME+UCJsOZFaLqMZcJXK8BeuDQM?=
 =?us-ascii?Q?Gus4BmlNHrqyh2zYckDzLjaoKRsLGZMr0fvsuJyitEXKl/Et57LMMbIabE7B?=
 =?us-ascii?Q?n06Xe4ED/UlL+Bt6XqK3C3iHnjLOXBL0sRXep1Qvg2j3wLa0+j/cIA3AReCR?=
 =?us-ascii?Q?rKWuP0/1wKKejM6gWIIVQ9821gqEIXRjzjw3SdOKn61PU/0pN2lmEMBFK+AZ?=
 =?us-ascii?Q?ysJsv1HMBdMruNdxDnNzJ+LzJ/V/F1nANu8PiwPrTRPL3AEwl6E7844V4uu3?=
 =?us-ascii?Q?GPyUpXhn8jJ9XcKKxmWgLhphkOrJirDinVRpzzvQDeIkKH8rCbmLaUHNaOo7?=
 =?us-ascii?Q?WIWeRF8IAdn7B+aUz4WW2XJeYtKQRSEO+KDaMG4RKh9eVKFAx6Ezgrz+/nJO?=
 =?us-ascii?Q?+UovQLwE0KTwGPuumlEcdKVZwAAs30kNXCjLQHVEhmcTCvpctgu608PKEYcG?=
 =?us-ascii?Q?Gvcdejl3xTHp32a1IFsJbz+AnPCm70JGcbZ+lHNr4dTMK5x8O3ek+xiw7cfd?=
 =?us-ascii?Q?pjZqNf1IRJdOCvh5tO/yfmB3CruwpUKX7ZJ4oySuuI/EisYFPeK3PlLwiO16?=
 =?us-ascii?Q?tJ4Ruzfm9BUiKqYn4KjRitc8r4Qq6JfW2CMZzKrh7dyWh8aKf0S9uOhJ6f+z?=
 =?us-ascii?Q?CdeEyO7W6Ed/jUHkQeOzj/6fqLbjIg3uXbT+jUuZQiAJYol05uYqExSCKCF/?=
 =?us-ascii?Q?ICjvZDsuX3Ez7b1OVTMgiIXNQ83iYSy1r3sDXQq0PbVrO/NEnoTXJXx4Dyhr?=
 =?us-ascii?Q?xH40I5NP8wHvcMgCZVlDvnKu5Ant03SxVeWzWWmn3VIknXeHk69mobWkBO3S?=
 =?us-ascii?Q?mwiwpwfqtldHcFC4gptBGIZW7JKS0L75sf4+tN9XfZ3Bhv2J2VDrC9zzoY5r?=
 =?us-ascii?Q?ycWA8OZqeXEDKHnb1zswbVHX6xc+w6SfRwVMusMLjP+VvpeNV/oGisGBn/fY?=
 =?us-ascii?Q?rlH2LoTjNkU4l04rdLhYvtDMYhWxr1+nKDpEQjtj7WdXGmMMS2AchxZm4hbK?=
 =?us-ascii?Q?GV2muabyMi5tpoRW+qlHGRCNFck8zz+ja8gOE3b/gJjJTmr5SqiOm7Pdv9i7?=
 =?us-ascii?Q?nzo9HyCKa0B841X8j441iL6KXBTRvWZOpsyWlAVrhW73peFIHGB/hx2iWsXR?=
 =?us-ascii?Q?NJmpwhB+pZjD45ys6TNoWRrv/JllbdBIEWyD92v/6UTaHz1zlpiMCNKhH5rn?=
 =?us-ascii?Q?opKEtjPhs+/whRx3OHkD/8MgNjZj5XPx50wRr5LsqrMBhayExbPFmFQAYbQN?=
 =?us-ascii?Q?IxCbshPQFx2noObmyny10MHtBdKOxXm8LbyAOM2q5w4VEzh8LkBmkSEBmyt8?=
 =?us-ascii?Q?Y05z69HYaN4dz9ynE8MqSKGg3+jE6tRtr/blTRGZMKYoK3eYmiEg8okJHPEO?=
 =?us-ascii?Q?TWn+x6n1kDSx0kqWwTw=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:58:42.5344
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8dda5add-e648-4090-a2a7-08de28ecef57
X-MS-Exchange-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:
	SA2PEPF000015C7.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4477

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

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
v1 -> v2:
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
---
 xen/common/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index aef29e0174..973b8e26bd 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -175,7 +175,7 @@ config LIBFDT
 
 config VM_EVENT
 	bool "Memory Access and VM events"
-	depends on HVM
+	depends on HVM && MGMT_HYPERCALLS
 	default X86
 	help
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 10:58:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 10:58:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168574.1494557 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOqj-0007z1-M0; Fri, 21 Nov 2025 10:58:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168574.1494557; Fri, 21 Nov 2025 10:58: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 1vMOqj-0007yq-JL; Fri, 21 Nov 2025 10:58:45 +0000
Received: by outflank-mailman (input) for mailman id 1168574;
 Fri, 21 Nov 2025 10:58: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOqh-0007TB-Qg
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:58: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 0973cfbf-c6c9-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 11:58:42 +0100 (CET)
Received: from SN7PR04CA0002.namprd04.prod.outlook.com (2603:10b6:806:f2::7)
 by DM4PR12MB6495.namprd12.prod.outlook.com (2603:10b6:8:bc::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov
 2025 10:58:31 +0000
Received: from SA2PEPF000015CC.namprd03.prod.outlook.com
 (2603:10b6:806:f2:cafe::80) by SN7PR04CA0002.outlook.office365.com
 (2603:10b6:806:f2::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.12 via Frontend Transport; Fri,
 21 Nov 2025 10:58:31 +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.9343.9 via Frontend Transport; Fri, 21 Nov 2025 10:58:30 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:58:28 -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: 0973cfbf-c6c9-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rtVbDNiIPWKH3o1u3UwwgLUfiSoAS8p/K70GL1vfzftMcGzZtpkoCufQVWjk0Cna7VRFS1/z+rvZfaClOPOIYM8AlCfw6FfNPRt1oxZpUEaV1a5B65adsLOfPDhFHTtjmpl2e30bWsOa6UIjG83hq/abegngfCOP8J7J746pOx82B4uNJedND6TWFCP3m+q+65svBCHJ2RQjn090P/BS137QPn2fwuy3SAIJOgLLcMvDuxD5W20LOSsyNHKJHVpyC1vO9uI4GzQEUDimhWTbM212ps4pp8eXOjv4kcprMhZ1MpUUOaGnRRaomGNWIStNX6uaunmqwtH38Z5ms2yM6Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/qN6QOTfDkP9ovx5v9FOHYWiIbKZEtnqTSmaa7qbMxI=;
 b=gUFGIMy4bsePrl2QZWPz+JA1XswnkklHudq6chtoydamUaN24wdxnh1eYTPRHzqBV8HtLoDnR9VZUA36CYNxEZZduQLdTPrwHd0Tl2lhh/m8rWqEih/9S7mybxP7jkBorb3pUa8Vk+q8K3SvIqk75WCQaofOmw7bybfLl5b8IjEUSHt6rx9gSTKqWlNFN+5EWwRiKyjVvEpM3oAR1swzSzsiIZiLCn/6UXHaGEvtg7VnvoJtIObzG/+OwDEuGqH2lhV7JTPmX0/KvcybH152xnmMVLj9y+937eImU9at5yNxhTiNxXpgOCYKdrvsCcCTvYGcZTr0eSmxwaVGB3ywFQ==
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=/qN6QOTfDkP9ovx5v9FOHYWiIbKZEtnqTSmaa7qbMxI=;
 b=GGLgwfgVSylCWW2EAJ68HYKb1ytbvCAb3HPaTiMVuC/WQB08JNqCQi5mUTS4oJaG1o2G+aUjfHgiaFv+KexHp/8d3JWS/QlnZMrFogm9BRIZDFBsTPuML7Fx844fAnwHbb+71qA/2uRZRZQQNLZRiiezmNtTroIBSTiHrcMYHgw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <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>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Juergen
 Gross" <jgross@suse.com>
Subject: [PATCH v4 02/24] xen: consolidate cpuid library
Date: Fri, 21 Nov 2025 18:57:39 +0800
Message-ID: <20251121105801.1251262-3-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SA2PEPF000015CC:EE_|DM4PR12MB6495:EE_
X-MS-Office365-Filtering-Correlation-Id: c6925e70-7175-4225-76ab-08de28ece877
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?ENjvpS0SGpP6HAHS5E+Dj484FqS0q/ys+9leSe9fDSrzRBUj8LBHzbi/ZEyy?=
 =?us-ascii?Q?Bi5V/GwPcaspapcNZuseF8i6uG+2b3szHHF40myooQNEqKgBNgo6kp7Be3V3?=
 =?us-ascii?Q?+5A88pWccmR49HnpA7xv+f4w+m6DGNp2cObgj5xUv6NerLoHeTF/3HfjWX9p?=
 =?us-ascii?Q?RO808yJeJA0B3YKn7BgmesgzyO+dPwN/ly9khVWX8Np4jrMl+3XUKy53DL/f?=
 =?us-ascii?Q?dA5HtK4kenKY3tEhVCvH4Zo9dB/2lGgU2sTzNyebhfQJ+IReHaHuoQoXTohM?=
 =?us-ascii?Q?AuA1ymghmgzlmTN1Mt6nEUX8yMQo/cpl7+PshF7c69+TnIpy4pavv1LlnUhj?=
 =?us-ascii?Q?xXP3YvCTnMZdtsYLiP1D+V4TYD2JQIsKM4Be4cNohzD4OGeyIK7bPbcXyKAy?=
 =?us-ascii?Q?oh5xhA6Jscc6vCs4VTq1akIFAGtPhpbIsYk35JgdoTEIV7bnG1NTyGgS4zB6?=
 =?us-ascii?Q?V/7MtKdVrZTOIC0jqce4ePkIeI+iHSor3UmFA2sowIrhy/uT1yBY4oKHQDDy?=
 =?us-ascii?Q?kowaJBLyjw2Blm6n4WVA9Vih1rTFdN3fRD12lT4CFimRr4bRCKrBd2mcAfXL?=
 =?us-ascii?Q?U1+zTFwoOIJihH/tmNZXrsGEiqdEkHH8plQdjARwEeOPtqsqHJzfVEP5+1e3?=
 =?us-ascii?Q?z361tw3OwLir0o8pVzO3miUnfYgk9NBI8XsrMp8y4iRwQHxN9PTVHTjBcGzP?=
 =?us-ascii?Q?NXUv4hvNx0qCGknUpMujDMPqtgNPo6Zy1JS+zaZp7hG9QXX0RMiS5Ja+AANJ?=
 =?us-ascii?Q?8wONhRly6b2nOohDdAchuv/Jp6cSpLaUbFg9gwBPpGFMQIlf/Onrf0xxWPK1?=
 =?us-ascii?Q?PFeYH7IQn8rM2pW61azMruXxhDoj84eknX0bviftya4rou0aOGWrxcvY+Rj3?=
 =?us-ascii?Q?9CW0A9TMHJF7gpMqUqDAFcLyUnK/8BeDBBQ6AQRrxSf7CIrGgej41CI3xPWP?=
 =?us-ascii?Q?2KJD82P4N1bmQ6yuaJq2v3VOQl1zgx+dO0XJwJEWYpltcs0qM3fv6uiTWwEr?=
 =?us-ascii?Q?7/eVlfmITSXJ4nazotTFxGslsEIE5TdhJRiffr6+bJG0mlRU6rSID2o1Okwk?=
 =?us-ascii?Q?+eG0QSLCLEoAnDLaLXcjQO924b+KR8JN/9ckxe4X8M7THt74ciUuktnoezNL?=
 =?us-ascii?Q?wEHwVDxrywZntGbMvyNa+dYDMC6+CYsMaQ6nYJ6nLcYPlLnLdUqo+ZITPVrS?=
 =?us-ascii?Q?HCQE/pEUsKP1FORwaFtyWiGWcJg+aiAYDSxrddFjnQWXWgqtkLw/sA3F6LGa?=
 =?us-ascii?Q?Gnxuz93uujN9umWwYxdihggPSqaRVbSLwSMqiHHn9FYmJkR/NxIA85Sj+8Nm?=
 =?us-ascii?Q?/dORgnYc0EImX6Ih1iekQXlN3bn8LMC8OTR1uZQA0BDczndYVZqdbTZchHVw?=
 =?us-ascii?Q?/P9q/rXfAIX9274YuMs+t3bpakdO0OtKPDmVpC/AyrONgqVhdZqcWjbdX8M7?=
 =?us-ascii?Q?SgfZFYGn5osBaABlqEUzF3YIo5pJElXd9ejMkwuaOl93aXZf844wZSHHtKKx?=
 =?us-ascii?Q?yyJ8Zav9+LvQ0IhXa3CjqwQowc+TVvIRWnawgtoehQQTe8/rl46X4C+PZgb0?=
 =?us-ascii?Q?VYExlq/QREqX6dQfxLo=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:58:30.9989
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c6925e70-7175-4225-76ab-08de28ece877
X-MS-Exchange-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: DM4PR12MB6495

There are some cpuid library functions only referenced in
XEN_DOMCTL_get{,set}_cpu_policy-case, and shall be wrapped with
CONFIG_MGMT_HYPERCALLS later, otherwise they will become unreachable when
MGMT_HYPERCALLS=n, and hence violate Misra 2.1
- x86_cpu_policy_clear_out_of_range_leaves
  - zero_leaves
- x86_cpuid_copy_to_buffer
  - copy_leaf_to_buffer
- x86_cpuid_copy_from_buffer
We seperate these functions by moving other functions to a new file named
cpuid-generic.c, and modify related Makefile-s to retain same behavior.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- new commit
---
 tools/fuzz/cpu-policy/Makefile               |   2 +-
 tools/fuzz/x86_instruction_emulator/Makefile |  10 +-
 tools/libs/guest/Makefile.common             |   2 +-
 tools/tests/cpu-policy/Makefile              |   2 +-
 tools/tests/x86_emulator/Makefile            |   2 +-
 xen/lib/x86/Makefile                         |   1 +
 xen/lib/x86/cpuid-generic.c                  | 273 +++++++++++++++++++
 xen/lib/x86/cpuid.c                          | 260 ------------------
 8 files changed, 283 insertions(+), 269 deletions(-)
 create mode 100644 xen/lib/x86/cpuid-generic.c

diff --git a/tools/fuzz/cpu-policy/Makefile b/tools/fuzz/cpu-policy/Makefile
index 6e7743e0aa..9d4627887b 100644
--- a/tools/fuzz/cpu-policy/Makefile
+++ b/tools/fuzz/cpu-policy/Makefile
@@ -22,7 +22,7 @@ CFLAGS += $(APPEND_CFLAGS) -Og
 
 vpath %.c ../../../xen/lib/x86
 
-afl-policy-fuzzer: afl-policy-fuzzer.o msr.o cpuid.o
+afl-policy-fuzzer: afl-policy-fuzzer.o msr.o cpuid.o cpuid-generic.o
 	$(CC) $(CFLAGS) $^ -o $@
 
 -include $(DEPS_INCLUDE)
diff --git a/tools/fuzz/x86_instruction_emulator/Makefile b/tools/fuzz/x86_instruction_emulator/Makefile
index 459743f4d9..6e2363a06b 100644
--- a/tools/fuzz/x86_instruction_emulator/Makefile
+++ b/tools/fuzz/x86_instruction_emulator/Makefile
@@ -25,7 +25,7 @@ x86_emulate/%.h: x86_emulate ;
 	ln -nsf $< $@
 
 CFLAGS += $(CFLAGS_xeninclude) -D__XEN_TOOLS__ -iquote .
-cpuid.o: CFLAGS += -iquote $(XEN_ROOT)/xen/lib/x86
+cpuid.o cpuid-generic.o: CFLAGS += -iquote $(XEN_ROOT)/xen/lib/x86
 
 GCOV_FLAGS := --coverage
 %-cov.o: %.c
@@ -49,16 +49,16 @@ $(filter x86_emulate/%.o,$(OBJS)): x86_emulate/%.o: x86_emulate/%.c $(private.h)
 $(patsubst %.o,%-cov.o,$(filter x86_emulate/%.o,$(OBJS))): x86_emulate/%-cov.o: x86_emulate/%.c $(private.h)
 	$(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_$*.o) $(GCOV_FLAGS) -c -o $@ $< $(APPEND_CFLAGS)
 
-x86-insn-fuzzer.a: $(OBJS) cpuid.o
+x86-insn-fuzzer.a: $(OBJS) cpuid.o cpuid-generic.o
 	$(AR) rc $@ $^
 
-afl-harness: afl-harness.o $(OBJS) cpuid.o wrappers.o
+afl-harness: afl-harness.o $(OBJS) cpuid.o cpuid-generic.o wrappers.o
 	$(CC) $(CFLAGS) $(addprefix -Wl$(comma)--wrap=,$(WRAPPED)) $^ -o $@
 
-afl-harness-cov: afl-harness-cov.o $(patsubst %.o,%-cov.o,$(OBJS)) cpuid.o wrappers.o
+afl-harness-cov: afl-harness-cov.o $(patsubst %.o,%-cov.o,$(OBJS)) cpuid.o cpuid-generic.o wrappers.o
 	$(CC) $(CFLAGS) $(GCOV_FLAGS) $(addprefix -Wl$(comma)--wrap=,$(WRAPPED)) $^ -o $@
 
-libfuzzer-harness: $(OBJS) cpuid.o wrappers.o
+libfuzzer-harness: $(OBJS) cpuid.o cpuid-generic.o wrappers.o
 	$(CC) $(CFLAGS) $(LIB_FUZZING_ENGINE) -fsanitize=fuzzer $(addprefix -Wl$(comma)--wrap=,$(WRAPPED)) $^ -o $@
 
 # Common targets
diff --git a/tools/libs/guest/Makefile.common b/tools/libs/guest/Makefile.common
index a026a2f662..da3c21e67e 100644
--- a/tools/libs/guest/Makefile.common
+++ b/tools/libs/guest/Makefile.common
@@ -35,7 +35,7 @@ OBJS-y += $(LIBELF_OBJS)
 ifeq ($(CONFIG_X86),y) # Add libx86 to the build
 vpath %.c ../../../xen/lib/x86
 
-OBJS-y                 += cpuid.o msr.o policy.o
+OBJS-y                 += cpuid.o cpuid-generic.o msr.o policy.o
 endif
 
 # new domain builder
diff --git a/tools/tests/cpu-policy/Makefile b/tools/tests/cpu-policy/Makefile
index 24f87e2eca..2f946b8a5e 100644
--- a/tools/tests/cpu-policy/Makefile
+++ b/tools/tests/cpu-policy/Makefile
@@ -46,7 +46,7 @@ vpath %.c ../../../xen/lib/x86
 
 %.o: Makefile
 
-test-cpu-policy: test-cpu-policy.o msr.o cpuid.o policy.o
+test-cpu-policy: test-cpu-policy.o msr.o cpuid.o cpuid-generic.o policy.o
 	$(CC) $^ -o $@ $(LDFLAGS)
 
 -include $(DEPS_INCLUDE)
diff --git a/tools/tests/x86_emulator/Makefile b/tools/tests/x86_emulator/Makefile
index fefa29a06c..eb79abd5b4 100644
--- a/tools/tests/x86_emulator/Makefile
+++ b/tools/tests/x86_emulator/Makefile
@@ -248,7 +248,7 @@ xop.h avx512f.h avx512fp16.h: simd-fma.c
 
 endif # 32-bit override
 
-OBJS := x86-emulate.o cpuid.o test_x86_emulator.o evex-disp8.o predicates.o wrappers.o
+OBJS := x86-emulate.o cpuid.o cpuid-generic.o test_x86_emulator.o evex-disp8.o predicates.o wrappers.o
 OBJS += x86_emulate/0f01.o x86_emulate/0fae.o x86_emulate/0fc7.o
 OBJS += x86_emulate/blk.o x86_emulate/decode.o x86_emulate/fpu.o x86_emulate/util.o
 
diff --git a/xen/lib/x86/Makefile b/xen/lib/x86/Makefile
index 780ea05db1..ac6d4369f3 100644
--- a/xen/lib/x86/Makefile
+++ b/xen/lib/x86/Makefile
@@ -1,3 +1,4 @@
 obj-y += cpuid.o
+obj-y += cpuid-generic.o
 obj-y += msr.o
 obj-y += policy.o
diff --git a/xen/lib/x86/cpuid-generic.c b/xen/lib/x86/cpuid-generic.c
new file mode 100644
index 0000000000..465bdee35a
--- /dev/null
+++ b/xen/lib/x86/cpuid-generic.c
@@ -0,0 +1,273 @@
+#include "private.h"
+
+#include <xen/lib/x86/cpu-policy.h>
+
+unsigned int x86_cpuid_lookup_vendor(uint32_t ebx, uint32_t ecx, uint32_t edx)
+{
+    switch ( ebx )
+    {
+    case X86_VENDOR_INTEL_EBX:
+        if ( ecx == X86_VENDOR_INTEL_ECX &&
+             edx == X86_VENDOR_INTEL_EDX )
+            return X86_VENDOR_INTEL;
+        break;
+
+    case X86_VENDOR_AMD_EBX:
+        if ( ecx == X86_VENDOR_AMD_ECX &&
+             edx == X86_VENDOR_AMD_EDX )
+            return X86_VENDOR_AMD;
+        break;
+
+    case X86_VENDOR_CENTAUR_EBX:
+        if ( ecx == X86_VENDOR_CENTAUR_ECX &&
+             edx == X86_VENDOR_CENTAUR_EDX )
+            return X86_VENDOR_CENTAUR;
+        break;
+
+    case X86_VENDOR_SHANGHAI_EBX:
+        if ( ecx == X86_VENDOR_SHANGHAI_ECX &&
+             edx == X86_VENDOR_SHANGHAI_EDX )
+            return X86_VENDOR_SHANGHAI;
+        break;
+
+    case X86_VENDOR_HYGON_EBX:
+        if ( ecx == X86_VENDOR_HYGON_ECX &&
+             edx == X86_VENDOR_HYGON_EDX )
+            return X86_VENDOR_HYGON;
+        break;
+    }
+
+    return X86_VENDOR_UNKNOWN;
+}
+
+const char *x86_cpuid_vendor_to_str(unsigned int vendor)
+{
+    switch ( vendor )
+    {
+    case X86_VENDOR_INTEL:    return "Intel";
+    case X86_VENDOR_AMD:      return "AMD";
+    case X86_VENDOR_CENTAUR:  return "Centaur";
+    case X86_VENDOR_SHANGHAI: return "Shanghai";
+    case X86_VENDOR_HYGON:    return "Hygon";
+    default:                  return "Unknown";
+    }
+}
+
+void x86_cpu_policy_to_featureset(
+    const struct cpu_policy *p, uint32_t fs[FEATURESET_NR_ENTRIES])
+{
+    fs[FEATURESET_1d]        = p->basic._1d;
+    fs[FEATURESET_1c]        = p->basic._1c;
+    fs[FEATURESET_e1d]       = p->extd.e1d;
+    fs[FEATURESET_e1c]       = p->extd.e1c;
+    fs[FEATURESET_Da1]       = p->xstate.Da1;
+    fs[FEATURESET_7b0]       = p->feat._7b0;
+    fs[FEATURESET_7c0]       = p->feat._7c0;
+    fs[FEATURESET_e7d]       = p->extd.e7d;
+    fs[FEATURESET_e8b]       = p->extd.e8b;
+    fs[FEATURESET_7d0]       = p->feat._7d0;
+    fs[FEATURESET_7a1]       = p->feat._7a1;
+    fs[FEATURESET_e21a]      = p->extd.e21a;
+    fs[FEATURESET_7b1]       = p->feat._7b1;
+    fs[FEATURESET_7d2]       = p->feat._7d2;
+    fs[FEATURESET_7c1]       = p->feat._7c1;
+    fs[FEATURESET_7d1]       = p->feat._7d1;
+    fs[FEATURESET_m10Al]     = p->arch_caps.lo;
+    fs[FEATURESET_m10Ah]     = p->arch_caps.hi;
+    fs[FEATURESET_e21c]      = p->extd.e21c;
+}
+
+void x86_cpu_featureset_to_policy(
+    const uint32_t fs[FEATURESET_NR_ENTRIES], struct cpu_policy *p)
+{
+    p->basic._1d             = fs[FEATURESET_1d];
+    p->basic._1c             = fs[FEATURESET_1c];
+    p->extd.e1d              = fs[FEATURESET_e1d];
+    p->extd.e1c              = fs[FEATURESET_e1c];
+    p->xstate.Da1            = fs[FEATURESET_Da1];
+    p->feat._7b0             = fs[FEATURESET_7b0];
+    p->feat._7c0             = fs[FEATURESET_7c0];
+    p->extd.e7d              = fs[FEATURESET_e7d];
+    p->extd.e8b              = fs[FEATURESET_e8b];
+    p->feat._7d0             = fs[FEATURESET_7d0];
+    p->feat._7a1             = fs[FEATURESET_7a1];
+    p->extd.e21a             = fs[FEATURESET_e21a];
+    p->feat._7b1             = fs[FEATURESET_7b1];
+    p->feat._7d2             = fs[FEATURESET_7d2];
+    p->feat._7c1             = fs[FEATURESET_7c1];
+    p->feat._7d1             = fs[FEATURESET_7d1];
+    p->arch_caps.lo          = fs[FEATURESET_m10Al];
+    p->arch_caps.hi          = fs[FEATURESET_m10Ah];
+    p->extd.e21c             = fs[FEATURESET_e21c];
+}
+
+void x86_cpu_policy_recalc_synth(struct cpu_policy *p)
+{
+    p->x86_vendor = x86_cpuid_lookup_vendor(
+        p->basic.vendor_ebx, p->basic.vendor_ecx, p->basic.vendor_edx);
+}
+
+void x86_cpu_policy_fill_native(struct cpu_policy *p)
+{
+    unsigned int i;
+
+    cpuid_leaf(0, &p->basic.raw[0]);
+    for ( i = 1; i <= MIN(p->basic.max_leaf,
+                          ARRAY_SIZE(p->basic.raw) - 1); ++i )
+    {
+        switch ( i )
+        {
+        case 0x4: case 0x7: case 0xb: case 0xd:
+            /* Multi-invocation leaves.  Deferred. */
+            continue;
+        }
+
+        cpuid_leaf(i, &p->basic.raw[i]);
+    }
+
+    if ( p->basic.max_leaf >= 4 )
+    {
+        for ( i = 0; i < ARRAY_SIZE(p->cache.raw); ++i )
+        {
+            union {
+                struct cpuid_leaf l;
+                struct cpuid_cache_leaf c;
+            } u;
+
+            cpuid_count_leaf(4, i, &u.l);
+
+            if ( u.c.type == 0 )
+                break;
+
+            p->cache.subleaf[i] = u.c;
+        }
+
+        /*
+         * The choice of CPUID_GUEST_NR_CACHE is arbitrary.  It is expected
+         * that it will eventually need increasing for future hardware.
+         */
+#ifdef __XEN__
+        if ( i == ARRAY_SIZE(p->cache.raw) )
+            printk(XENLOG_WARNING
+                   "CPUID: Insufficient Leaf 4 space for this hardware\n");
+#endif
+    }
+
+    if ( p->basic.max_leaf >= 7 )
+    {
+        cpuid_count_leaf(7, 0, &p->feat.raw[0]);
+
+        for ( i = 1; i <= MIN(p->feat.max_subleaf,
+                              ARRAY_SIZE(p->feat.raw) - 1); ++i )
+            cpuid_count_leaf(7, i, &p->feat.raw[i]);
+    }
+
+    if ( p->basic.max_leaf >= 0xb )
+    {
+        union {
+            struct cpuid_leaf l;
+            struct cpuid_topo_leaf t;
+        } u;
+
+        for ( i = 0; i < ARRAY_SIZE(p->topo.raw); ++i )
+        {
+            cpuid_count_leaf(0xb, i, &u.l);
+
+            if ( u.t.type == 0 )
+                break;
+
+            p->topo.subleaf[i] = u.t;
+        }
+
+        /*
+         * The choice of CPUID_GUEST_NR_TOPO is per the manual.  It may need
+         * to grow for future hardware.
+         */
+#ifdef __XEN__
+        if ( i == ARRAY_SIZE(p->topo.raw) &&
+             (cpuid_count_leaf(0xb, i, &u.l), u.t.type != 0) )
+            printk(XENLOG_WARNING
+                   "CPUID: Insufficient Leaf 0xb space for this hardware\n");
+#endif
+    }
+
+    if ( p->basic.max_leaf >= 0xd )
+    {
+        uint64_t xstates;
+
+        cpuid_count_leaf(0xd, 0, &p->xstate.raw[0]);
+        cpuid_count_leaf(0xd, 1, &p->xstate.raw[1]);
+
+        xstates = cpu_policy_xstates(p);
+
+        /* This logic will probably need adjusting when XCR0[63] gets used. */
+        BUILD_BUG_ON(ARRAY_SIZE(p->xstate.raw) > 63);
+
+        for ( i = 2; i < min_t(unsigned int, 63,
+                               ARRAY_SIZE(p->xstate.raw)); ++i )
+        {
+            if ( xstates & (1ULL << i) )
+                cpuid_count_leaf(0xd, i, &p->xstate.raw[i]);
+        }
+    }
+
+    /* Extended leaves. */
+    cpuid_leaf(0x80000000U, &p->extd.raw[0]);
+    for ( i = 1; i <= MIN(p->extd.max_leaf & 0xffffU,
+                          ARRAY_SIZE(p->extd.raw) - 1); ++i )
+        cpuid_leaf(0x80000000U + i, &p->extd.raw[i]);
+
+    /* Don't report leaves from possible lower level hypervisor, for now. */
+    p->hv_limit = 0;
+    p->hv2_limit = 0;
+
+#ifdef __XEN__
+    /* TODO MSR_PLATFORM_INFO */
+
+    if ( p->feat.arch_caps )
+        rdmsrl(MSR_ARCH_CAPABILITIES, p->arch_caps.raw);
+#endif
+
+    x86_cpu_policy_recalc_synth(p);
+}
+
+const uint32_t *x86_cpu_policy_lookup_deep_deps(uint32_t feature)
+{
+    static const uint32_t deep_features[] = INIT_DEEP_FEATURES;
+    static const struct {
+        uint32_t feature;
+        uint32_t fs[FEATURESET_NR_ENTRIES];
+    } deep_deps[] = INIT_DEEP_DEPS;
+    unsigned int start = 0, end = ARRAY_SIZE(deep_deps);
+
+    BUILD_BUG_ON(ARRAY_SIZE(deep_deps) != NR_DEEP_DEPS);
+
+    /* Fast early exit. */
+    if ( !test_bit(feature, deep_features) )
+        return NULL;
+
+    /* deep_deps[] is sorted.  Perform a binary search. */
+    while ( start < end )
+    {
+        unsigned int mid = start + ((end - start) / 2);
+
+        if ( deep_deps[mid].feature > feature )
+            end = mid;
+        else if ( deep_deps[mid].feature < feature )
+            start = mid + 1;
+        else
+            return deep_deps[mid].fs;
+    }
+
+    return NULL;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/lib/x86/cpuid.c b/xen/lib/x86/cpuid.c
index 6298d051f2..5de1e2ca74 100644
--- a/xen/lib/x86/cpuid.c
+++ b/xen/lib/x86/cpuid.c
@@ -9,235 +9,6 @@ static void zero_leaves(struct cpuid_leaf *l,
         memset(&l[first], 0, sizeof(*l) * (last - first + 1));
 }
 
-unsigned int x86_cpuid_lookup_vendor(uint32_t ebx, uint32_t ecx, uint32_t edx)
-{
-    switch ( ebx )
-    {
-    case X86_VENDOR_INTEL_EBX:
-        if ( ecx == X86_VENDOR_INTEL_ECX &&
-             edx == X86_VENDOR_INTEL_EDX )
-            return X86_VENDOR_INTEL;
-        break;
-
-    case X86_VENDOR_AMD_EBX:
-        if ( ecx == X86_VENDOR_AMD_ECX &&
-             edx == X86_VENDOR_AMD_EDX )
-            return X86_VENDOR_AMD;
-        break;
-
-    case X86_VENDOR_CENTAUR_EBX:
-        if ( ecx == X86_VENDOR_CENTAUR_ECX &&
-             edx == X86_VENDOR_CENTAUR_EDX )
-            return X86_VENDOR_CENTAUR;
-        break;
-
-    case X86_VENDOR_SHANGHAI_EBX:
-        if ( ecx == X86_VENDOR_SHANGHAI_ECX &&
-             edx == X86_VENDOR_SHANGHAI_EDX )
-            return X86_VENDOR_SHANGHAI;
-        break;
-
-    case X86_VENDOR_HYGON_EBX:
-        if ( ecx == X86_VENDOR_HYGON_ECX &&
-             edx == X86_VENDOR_HYGON_EDX )
-            return X86_VENDOR_HYGON;
-        break;
-    }
-
-    return X86_VENDOR_UNKNOWN;
-}
-
-const char *x86_cpuid_vendor_to_str(unsigned int vendor)
-{
-    switch ( vendor )
-    {
-    case X86_VENDOR_INTEL:    return "Intel";
-    case X86_VENDOR_AMD:      return "AMD";
-    case X86_VENDOR_CENTAUR:  return "Centaur";
-    case X86_VENDOR_SHANGHAI: return "Shanghai";
-    case X86_VENDOR_HYGON:    return "Hygon";
-    default:                  return "Unknown";
-    }
-}
-
-void x86_cpu_policy_to_featureset(
-    const struct cpu_policy *p, uint32_t fs[FEATURESET_NR_ENTRIES])
-{
-    fs[FEATURESET_1d]        = p->basic._1d;
-    fs[FEATURESET_1c]        = p->basic._1c;
-    fs[FEATURESET_e1d]       = p->extd.e1d;
-    fs[FEATURESET_e1c]       = p->extd.e1c;
-    fs[FEATURESET_Da1]       = p->xstate.Da1;
-    fs[FEATURESET_7b0]       = p->feat._7b0;
-    fs[FEATURESET_7c0]       = p->feat._7c0;
-    fs[FEATURESET_e7d]       = p->extd.e7d;
-    fs[FEATURESET_e8b]       = p->extd.e8b;
-    fs[FEATURESET_7d0]       = p->feat._7d0;
-    fs[FEATURESET_7a1]       = p->feat._7a1;
-    fs[FEATURESET_e21a]      = p->extd.e21a;
-    fs[FEATURESET_7b1]       = p->feat._7b1;
-    fs[FEATURESET_7d2]       = p->feat._7d2;
-    fs[FEATURESET_7c1]       = p->feat._7c1;
-    fs[FEATURESET_7d1]       = p->feat._7d1;
-    fs[FEATURESET_m10Al]     = p->arch_caps.lo;
-    fs[FEATURESET_m10Ah]     = p->arch_caps.hi;
-    fs[FEATURESET_e21c]      = p->extd.e21c;
-}
-
-void x86_cpu_featureset_to_policy(
-    const uint32_t fs[FEATURESET_NR_ENTRIES], struct cpu_policy *p)
-{
-    p->basic._1d             = fs[FEATURESET_1d];
-    p->basic._1c             = fs[FEATURESET_1c];
-    p->extd.e1d              = fs[FEATURESET_e1d];
-    p->extd.e1c              = fs[FEATURESET_e1c];
-    p->xstate.Da1            = fs[FEATURESET_Da1];
-    p->feat._7b0             = fs[FEATURESET_7b0];
-    p->feat._7c0             = fs[FEATURESET_7c0];
-    p->extd.e7d              = fs[FEATURESET_e7d];
-    p->extd.e8b              = fs[FEATURESET_e8b];
-    p->feat._7d0             = fs[FEATURESET_7d0];
-    p->feat._7a1             = fs[FEATURESET_7a1];
-    p->extd.e21a             = fs[FEATURESET_e21a];
-    p->feat._7b1             = fs[FEATURESET_7b1];
-    p->feat._7d2             = fs[FEATURESET_7d2];
-    p->feat._7c1             = fs[FEATURESET_7c1];
-    p->feat._7d1             = fs[FEATURESET_7d1];
-    p->arch_caps.lo          = fs[FEATURESET_m10Al];
-    p->arch_caps.hi          = fs[FEATURESET_m10Ah];
-    p->extd.e21c             = fs[FEATURESET_e21c];
-}
-
-void x86_cpu_policy_recalc_synth(struct cpu_policy *p)
-{
-    p->x86_vendor = x86_cpuid_lookup_vendor(
-        p->basic.vendor_ebx, p->basic.vendor_ecx, p->basic.vendor_edx);
-}
-
-void x86_cpu_policy_fill_native(struct cpu_policy *p)
-{
-    unsigned int i;
-
-    cpuid_leaf(0, &p->basic.raw[0]);
-    for ( i = 1; i <= MIN(p->basic.max_leaf,
-                          ARRAY_SIZE(p->basic.raw) - 1); ++i )
-    {
-        switch ( i )
-        {
-        case 0x4: case 0x7: case 0xb: case 0xd:
-            /* Multi-invocation leaves.  Deferred. */
-            continue;
-        }
-
-        cpuid_leaf(i, &p->basic.raw[i]);
-    }
-
-    if ( p->basic.max_leaf >= 4 )
-    {
-        for ( i = 0; i < ARRAY_SIZE(p->cache.raw); ++i )
-        {
-            union {
-                struct cpuid_leaf l;
-                struct cpuid_cache_leaf c;
-            } u;
-
-            cpuid_count_leaf(4, i, &u.l);
-
-            if ( u.c.type == 0 )
-                break;
-
-            p->cache.subleaf[i] = u.c;
-        }
-
-        /*
-         * The choice of CPUID_GUEST_NR_CACHE is arbitrary.  It is expected
-         * that it will eventually need increasing for future hardware.
-         */
-#ifdef __XEN__
-        if ( i == ARRAY_SIZE(p->cache.raw) )
-            printk(XENLOG_WARNING
-                   "CPUID: Insufficient Leaf 4 space for this hardware\n");
-#endif
-    }
-
-    if ( p->basic.max_leaf >= 7 )
-    {
-        cpuid_count_leaf(7, 0, &p->feat.raw[0]);
-
-        for ( i = 1; i <= MIN(p->feat.max_subleaf,
-                              ARRAY_SIZE(p->feat.raw) - 1); ++i )
-            cpuid_count_leaf(7, i, &p->feat.raw[i]);
-    }
-
-    if ( p->basic.max_leaf >= 0xb )
-    {
-        union {
-            struct cpuid_leaf l;
-            struct cpuid_topo_leaf t;
-        } u;
-
-        for ( i = 0; i < ARRAY_SIZE(p->topo.raw); ++i )
-        {
-            cpuid_count_leaf(0xb, i, &u.l);
-
-            if ( u.t.type == 0 )
-                break;
-
-            p->topo.subleaf[i] = u.t;
-        }
-
-        /*
-         * The choice of CPUID_GUEST_NR_TOPO is per the manual.  It may need
-         * to grow for future hardware.
-         */
-#ifdef __XEN__
-        if ( i == ARRAY_SIZE(p->topo.raw) &&
-             (cpuid_count_leaf(0xb, i, &u.l), u.t.type != 0) )
-            printk(XENLOG_WARNING
-                   "CPUID: Insufficient Leaf 0xb space for this hardware\n");
-#endif
-    }
-
-    if ( p->basic.max_leaf >= 0xd )
-    {
-        uint64_t xstates;
-
-        cpuid_count_leaf(0xd, 0, &p->xstate.raw[0]);
-        cpuid_count_leaf(0xd, 1, &p->xstate.raw[1]);
-
-        xstates = cpu_policy_xstates(p);
-
-        /* This logic will probably need adjusting when XCR0[63] gets used. */
-        BUILD_BUG_ON(ARRAY_SIZE(p->xstate.raw) > 63);
-
-        for ( i = 2; i < min_t(unsigned int, 63,
-                               ARRAY_SIZE(p->xstate.raw)); ++i )
-        {
-            if ( xstates & (1ULL << i) )
-                cpuid_count_leaf(0xd, i, &p->xstate.raw[i]);
-        }
-    }
-
-    /* Extended leaves. */
-    cpuid_leaf(0x80000000U, &p->extd.raw[0]);
-    for ( i = 1; i <= MIN(p->extd.max_leaf & 0xffffU,
-                          ARRAY_SIZE(p->extd.raw) - 1); ++i )
-        cpuid_leaf(0x80000000U + i, &p->extd.raw[i]);
-
-    /* Don't report leaves from possible lower level hypervisor, for now. */
-    p->hv_limit = 0;
-    p->hv2_limit = 0;
-
-#ifdef __XEN__
-    /* TODO MSR_PLATFORM_INFO */
-
-    if ( p->feat.arch_caps )
-        rdmsrl(MSR_ARCH_CAPABILITIES, p->arch_caps.raw);
-#endif
-
-    x86_cpu_policy_recalc_synth(p);
-}
-
 void x86_cpu_policy_clear_out_of_range_leaves(struct cpu_policy *p)
 {
     unsigned int i;
@@ -291,37 +62,6 @@ void x86_cpu_policy_clear_out_of_range_leaves(struct cpu_policy *p)
                 ARRAY_SIZE(p->extd.raw) - 1);
 }
 
-const uint32_t *x86_cpu_policy_lookup_deep_deps(uint32_t feature)
-{
-    static const uint32_t deep_features[] = INIT_DEEP_FEATURES;
-    static const struct {
-        uint32_t feature;
-        uint32_t fs[FEATURESET_NR_ENTRIES];
-    } deep_deps[] = INIT_DEEP_DEPS;
-    unsigned int start = 0, end = ARRAY_SIZE(deep_deps);
-
-    BUILD_BUG_ON(ARRAY_SIZE(deep_deps) != NR_DEEP_DEPS);
-
-    /* Fast early exit. */
-    if ( !test_bit(feature, deep_features) )
-        return NULL;
-
-    /* deep_deps[] is sorted.  Perform a binary search. */
-    while ( start < end )
-    {
-        unsigned int mid = start + ((end - start) / 2);
-
-        if ( deep_deps[mid].feature > feature )
-            end = mid;
-        else if ( deep_deps[mid].feature < feature )
-            start = mid + 1;
-        else
-            return deep_deps[mid].fs;
-    }
-
-    return NULL;
-}
-
 /*
  * Copy a single cpuid_leaf into a provided xen_cpuid_leaf_t buffer,
  * performing boundary checking against the buffer size.
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 10:58:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 10:58:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168573.1494547 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOqa-0007hI-FX; Fri, 21 Nov 2025 10:58:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168573.1494547; Fri, 21 Nov 2025 10: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 1vMOqa-0007hB-CN; Fri, 21 Nov 2025 10:58:36 +0000
Received: by outflank-mailman (input) for mailman id 1168573;
 Fri, 21 Nov 2025 10:58: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOqY-0007TB-UX
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:58:34 +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 05e0d14a-c6c9-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 11:58:34 +0100 (CET)
Received: from SN6PR08CA0003.namprd08.prod.outlook.com (2603:10b6:805:66::16)
 by BL4PR12MB9477.namprd12.prod.outlook.com (2603:10b6:208:58d::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Fri, 21 Nov
 2025 10:58:29 +0000
Received: from SA2PEPF000015C7.namprd03.prod.outlook.com
 (2603:10b6:805:66:cafe::d6) by SN6PR08CA0003.outlook.office365.com
 (2603:10b6:805:66::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.11 via Frontend Transport; Fri,
 21 Nov 2025 10:58:27 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF000015C7.mail.protection.outlook.com (10.167.241.197) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Fri, 21 Nov 2025 10:58:28 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:58:24 -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: 05e0d14a-c6c9-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=s8eAMa3A/DM8/2a/mFH2Tun8BemMcv5S8g7SnlUwdBpQ1VCnNyXDovA5cDo0VPgUTZWnyLxcKRccADLiToU6Tyghz4+Zp7HyhV42eGV4c9o3nEo26KVdKVRJHIJpezFGLqRO26MxAiHRRByPrHsw3KrG1QC4LizHKXh5n9uAoUSlm9blt3tZuI1TiGOsNaerMCIvedQ07YK7qWw+OeBC73P2wHCI/7PcdO1zRkgjxqHd5Pg1xlkLPf15iH/jOg140G3tDrAq3OsAKA+MsRfbuxO+dGzCYySLFFNgpaYBHDVKHPGCH+08RIHHZZENT+1/XCf37cU1+cC+KAkcDNQfhg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fBzLiVF0LcwUzOwUxdhWXxnzaOdeFBAaIqk1xLrzlSc=;
 b=A45K6U/L3CBdDgO8l4TqJdU8AumVZMPromSzcbkEOd1NmErMRli2NUeIYF4UJjwdoXy84PN37/3lSgXTYD/66sbDlpAtsYdhTdvjqVeVj3PAvPEN6Y+Pbrjox05UmyES/q3KYOfR+bA9obv/GN8AA5qXrS3IA0VjD3Z4EL8svcF1Fur3wf2GPLdFSEngVXgnCzulf0Uad2rhpBYQMUCwu7zZQ3DN5iQoGxFH4/FmR410HN1PuYgJItF57VJufRujWc6hD9yXskOivH/4rylRBkdaHVgxcYKuIZoOwVPKal1whI5pr0z12Oq3W16H6vERm270SVM+alzbwd6rmPmvjg==
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=fBzLiVF0LcwUzOwUxdhWXxnzaOdeFBAaIqk1xLrzlSc=;
 b=FhREJAoAUkE+1BPW0RaiUGD233oivWc28nmbY1wMKGJwiRrDsdyBWNa7vfQ5TwK+kIgOneAPhDeUs4I0tDPPTLJA7dy7ZW4MTpBQ1wj1obl6jCP58kM+X2wnzQSYLPacCrk3n5pmCEjA5PfVeadGtjprlbI+HAo3aX9upI1VuOI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Daniel De Graaf <dgdegra@tycho.nsa.gov>
Subject: [PATCH v4 01/24] xen/xsm: remove redundant xsm_iomem_mapping()
Date: Fri, 21 Nov 2025 18:57:38 +0800
Message-ID: <20251121105801.1251262-2-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SA2PEPF000015C7:EE_|BL4PR12MB9477:EE_
X-MS-Office365-Filtering-Correlation-Id: 33d183ea-3829-4c9e-8e37-08de28ece6d1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|7416014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?hBFfxkA7eNxxTgWk3KaCuyQS/CH088vmSOMW4QB4iPAPTyQNM9mbOFSa4nr8?=
 =?us-ascii?Q?4brLl7Md/PZ50YnUHHoh1oRYDc8DXcGSM4376vbrmMeC4+UtpVcAr+EgleSe?=
 =?us-ascii?Q?DHmj1GZJ7aO1Bw/tOtksowA9e7+4pvLxVQugQxPLH9dtUJ4+TmW1pvDBonJR?=
 =?us-ascii?Q?SRN7iGMmb6kWEyYn8cszpPl05TLZW4wnZNVIQJa89NuFcl5nqAs9bKX4qQVB?=
 =?us-ascii?Q?Z71NdLt1kSxzxeYSYFCs+K3uVZzfjOVbcIVjoDNRlZgHOtor28eZQdHaI0R1?=
 =?us-ascii?Q?8BgHo0askabD2lh+cfrsAGwbzaggLlfis4SqyVLr2Du5flJ86OGdELFnr4k7?=
 =?us-ascii?Q?VIIb92aZrxtGTWgUj9ajbhG7C98eux/A7YzPKO+/84YRCeokv0QcOjJJx/0x?=
 =?us-ascii?Q?TWUcu9G0ng7XAynfy3VuNxJzJ6Zu4tCjN6EkdXQhlDOiAFXLgIhN2271GXbd?=
 =?us-ascii?Q?z+Chof8OJg2m1lSsmdsrjfs/wzNbneN2/qmF/Q8YGBA5d80nMGgk0NBtJ+Dt?=
 =?us-ascii?Q?ruGOCIwJTMr7Ix9mLx8RQJxQJki8+igOhp3jWfDXg+a6SoNAWWTpqmQZ7WNi?=
 =?us-ascii?Q?DPa3xQQiKV/ti8jMZvwuhsjvOxXJjPJLDUEfjYNZrwO/5S38nnVB/VRt1REf?=
 =?us-ascii?Q?DTDUQFuE4c6jfBSUreEzl5wTfpgcFFiLj/l3sIIyE3ji+Z/gfvYS7VSChyJi?=
 =?us-ascii?Q?QJeVQJyDs0KqtvYmQh/gDpUs0CNHGFXXYde5AIItFQ0UyguHf1rCy6RNuolc?=
 =?us-ascii?Q?a0z8+hFjmBU+kKpZ6rPrWhBR9TUMh/EVJBX1CJnni/t2EvGQgPHm1ltwSbUT?=
 =?us-ascii?Q?5Db4ZjAuwr0IvVFjzmVz+yImUSdkvKe7Etxon61Z2pCU2b0EjBCg/DIX0R79?=
 =?us-ascii?Q?SEbjwAbgLH0bc24b0IwuWIbiQihVqVmUg80qD7bnTo3rZoWWs7SRLNNTpkbl?=
 =?us-ascii?Q?DaC7DJkchRJ8DAY61SLQLUOKDcTlavQcXQQiMNRoYuuwBLb065eeeRRb7+hY?=
 =?us-ascii?Q?4WxCntqMx4NcPp2HjTUs5IWP84/R2nL7Dcp81OGUSry01csjy/BaRaBvFtSu?=
 =?us-ascii?Q?ctZPBOw++tRaBc8+ZTLHTP/CnCq/UtbFdryLwJJ20theb92R9mI3PUukhnMe?=
 =?us-ascii?Q?2iQLuunMIaLG6wmOZ78iM0VRQHmITBw8pyJW/QMg1qruXTwf9fv1K9pFbcqA?=
 =?us-ascii?Q?0ZOwbLhx3IU9gbqdt2AcKV1gLqYEm448xdauy2sfPLydDhsTs+psySzkdrPy?=
 =?us-ascii?Q?mnNScgEpN/72KI6ETU1ajOTKjRihjfUt8a0Ujc+eqBj5J7nVXnJviEwCFesg?=
 =?us-ascii?Q?Em4pvfBIAB6HxDthk4x2aQDj3j1vlXS4BbFwaflz49qM+M/24xjTGJnAQsJP?=
 =?us-ascii?Q?t4MGDwIFaVA5cuXSLWsdjju+dtFNvVPqsoNrnG7DWjTCQZ8LwzvDhPPrViYl?=
 =?us-ascii?Q?0DiMGmBiIS+tl0KDReJrxJGdJHdNmsLmCHaT+hy7MeK8lsysjQqwupGkd/vR?=
 =?us-ascii?Q?mav/babQupIr8KNgrjxCNieBAFfyr07RvrjHk3XUQ4l9bBDpSf4yPszcWcNN?=
 =?us-ascii?Q?xXHHrWaUunZcbwTPzM0=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)(7416014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:58:28.2339
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 33d183ea-3829-4c9e-8e37-08de28ece6d1
X-MS-Exchange-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:
	SA2PEPF000015C7.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL4PR12MB9477

Function xsm_iomem_mapping() seems redundant, and in flask policy, it just
directly calls xsm_iomem_permission().
Remove it and use xsm_iomem_permission() instead, with the benefit of a
cf_check disappearing too.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>
---
v2 -> v3:
- new commit
---
 xen/common/domctl.c       | 2 +-
 xen/drivers/vpci/header.c | 2 +-
 xen/include/xsm/dummy.h   | 7 -------
 xen/include/xsm/xsm.h     | 8 --------
 xen/xsm/dummy.c           | 1 -
 xen/xsm/flask/hooks.c     | 6 ------
 6 files changed, 2 insertions(+), 24 deletions(-)

diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 29a7726d32..86da0086de 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -707,7 +707,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
              !iomem_access_permitted(d, mfn, mfn_end) )
             break;
 
-        ret = xsm_iomem_mapping(XSM_HOOK, d, mfn, mfn_end, add);
+        ret = xsm_iomem_permission(XSM_HOOK, d, mfn, mfn_end, add);
         if ( ret )
             break;
 
diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 469f497744..1ff6c63f4d 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -67,7 +67,7 @@ static int cf_check map_range(
             return -EPERM;
         }
 
-        rc = xsm_iomem_mapping(XSM_HOOK, map->d, map_mfn, m_end, map->map);
+        rc = xsm_iomem_permission(XSM_HOOK, map->d, map_mfn, m_end, map->map);
         if ( rc )
         {
             printk(XENLOG_G_WARNING
diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index e801dbcdba..e4e1c680c8 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -570,13 +570,6 @@ static XSM_INLINE int cf_check xsm_iomem_permission(
     return xsm_default_action(action, current->domain, d);
 }
 
-static XSM_INLINE int cf_check xsm_iomem_mapping(
-    XSM_DEFAULT_ARG struct domain *d, uint64_t s, uint64_t e, uint8_t allow)
-{
-    XSM_ASSERT_ACTION(XSM_HOOK);
-    return xsm_default_action(action, current->domain, d);
-}
-
 static XSM_INLINE int cf_check xsm_pci_config_permission(
     XSM_DEFAULT_ARG struct domain *d, uint32_t machine_bdf, uint16_t start,
     uint16_t end, uint8_t access)
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index d9e5c831f3..1d72431d32 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -116,8 +116,6 @@ struct xsm_ops {
     int (*irq_permission)(struct domain *d, int pirq, uint8_t allow);
     int (*iomem_permission)(struct domain *d, uint64_t s, uint64_t e,
                             uint8_t allow);
-    int (*iomem_mapping)(struct domain *d, uint64_t s, uint64_t e,
-                         uint8_t allow);
     int (*pci_config_permission)(struct domain *d, uint32_t machine_bdf,
                                  uint16_t start, uint16_t end, uint8_t access);
 
@@ -517,12 +515,6 @@ static inline int xsm_iomem_permission(
     return alternative_call(xsm_ops.iomem_permission, d, s, e, allow);
 }
 
-static inline int xsm_iomem_mapping(
-    xsm_default_t def, struct domain *d, uint64_t s, uint64_t e, uint8_t allow)
-{
-    return alternative_call(xsm_ops.iomem_mapping, d, s, e, allow);
-}
-
 static inline int xsm_pci_config_permission(
     xsm_default_t def, struct domain *d, uint32_t machine_bdf, uint16_t start,
     uint16_t end, uint8_t access)
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 96dc82ac2e..b7b65a7122 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -75,7 +75,6 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .unbind_pt_irq                 = xsm_unbind_pt_irq,
     .irq_permission                = xsm_irq_permission,
     .iomem_permission              = xsm_iomem_permission,
-    .iomem_mapping                 = xsm_iomem_mapping,
     .pci_config_permission         = xsm_pci_config_permission,
     .get_vnumainfo                 = xsm_get_vnumainfo,
 
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 9f3915617c..89e790b774 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1167,11 +1167,6 @@ static int cf_check flask_iomem_permission(
     return security_iterate_iomem_sids(start, end, _iomem_has_perm, &data);
 }
 
-static int cf_check flask_iomem_mapping(struct domain *d, uint64_t start, uint64_t end, uint8_t access)
-{
-    return flask_iomem_permission(d, start, end, access);
-}
-
 static int cf_check flask_pci_config_permission(
     struct domain *d, uint32_t machine_bdf, uint16_t start, uint16_t end,
     uint8_t access)
@@ -1945,7 +1940,6 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .unbind_pt_irq = flask_unbind_pt_irq,
     .irq_permission = flask_irq_permission,
     .iomem_permission = flask_iomem_permission,
-    .iomem_mapping = flask_iomem_mapping,
     .pci_config_permission = flask_pci_config_permission,
 
     .resource_plug_core = flask_resource_plug_core,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 10:58:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 10:58:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168572.1494537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOqZ-0007TT-9D; Fri, 21 Nov 2025 10:58:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168572.1494537; Fri, 21 Nov 2025 10:58:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOqZ-0007TM-5S; Fri, 21 Nov 2025 10:58:35 +0000
Received: by outflank-mailman (input) for mailman id 1168572;
 Fri, 21 Nov 2025 10:58:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOqX-0007TB-CZ
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:58:33 +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 034ccf21-c6c9-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 11:58:30 +0100 (CET)
Received: from SN7PR04CA0005.namprd04.prod.outlook.com (2603:10b6:806:f2::10)
 by IA1PR12MB8190.namprd12.prod.outlook.com (2603:10b6:208:3f2::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov
 2025 10:58:25 +0000
Received: from SA2PEPF000015CC.namprd03.prod.outlook.com
 (2603:10b6:806:f2:cafe::2) by SN7PR04CA0005.outlook.office365.com
 (2603:10b6:806:f2::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.14 via Frontend Transport; Fri,
 21 Nov 2025 10:58:22 +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.9343.9 via Frontend Transport; Fri, 21 Nov 2025 10:58:24 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:58:18 -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: 034ccf21-c6c9-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gtJUTDKk8SepobQ1k2Kw+kGIdij+L4EoK5WS1PgvWNaL/0r6Lb5B4Yr+BVkfSiQw/nZ3+3CpDNMmuV/A6xNU3yVE7wgzokAztTHgE/gqOb4z4Or8TBthzRGn+2sT0IPe5woI3r1BSyhmKmTLZP1LyI+HX8AQeD9pwM5/m5Qq7QPWP52xNIP7GgUYmCDe468XMTfdAHrmVD0Zrhmzokx5QOc9YAduJETo/iQRIHR7T4dvIezEZb1/CrSvCrr67PgAewTqN/ZTK4ECJRTcikBIQ1sEuWFgLDfUd82Nec0vXIlylofTLgDNChXYIcTYVyfF40CiOVxms45j8qdzztTnjw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=N/ICZEYJIc/nVeFvpt8PzQMJ9pR5CWGfMKwhk5DYjg4=;
 b=u1ht+PUYjSyNo/t1MxuuisDHTUU5czsx2dOQ5OcgxouB3K0/AHdDyUrr07sRnUIZJoYrzUiCCaNWTTmGpGNQFwVGn4adZ1AydJd5C6MJCPAqcvchpb1u4HaFbz5Z0rgrspq2xusEdJaGPFCz1xXP28ag7rCSsQ3QAygm2+j32KaEiG57Fiy32kPOMNnKTB+fXBYkS0VcNgQ3s+/f4lTIzWrw8spM5lxShKYHALKvWi3LF6bS2j/WOSLxmEtUifthc2V4JwH8c4agYRguCobkJnVjXRXyfYoSon15sppVZN92SAPaTOQp/7aoeSPTjXUpKuUIGVRd1R9YS/re3X0H8Q==
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=N/ICZEYJIc/nVeFvpt8PzQMJ9pR5CWGfMKwhk5DYjg4=;
 b=U9DtWUNZ+p4YgvaL51IyF659nsuoqlvDKBPJQAUuic3rYOMGujjRb0EwSKd++7YTNhs0M6GopLoZLlG/spZB459SaT3USBErwH1zKS3wYH8CrjWb4UxUicodj7anAdJoJJvLeXFHjj3jLSpC8GgB2FsIrYlnYwDiz3vyhkORyIE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>, <xen-devel@dornerworks.com>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Daniel De Graaf <dgdegra@tycho.nsa.gov>,
	Juergen Gross <jgross@suse.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, "Connor
 Davis" <connojdavis@gmail.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Nathan Studer <nathan.studer@dornerworks.com>,
	Stewart Hildebrand <stewart@stew.dk>, Dario Faggioli <dfaggioli@suse.com>,
	George Dunlap <gwd@xenproject.org>, Timothy Pearson
	<tpearson@raptorengineering.com>, "Meng Xu" <mengxu@cis.upenn.edu>, Jason
 Andryuk <jason.andryuk@amd.com>, Rahul Singh <rahul.singh@arm.com>
Subject: [PATCH v4 00/24] Disable domctl-op via CONFIG_MGMT_HYPERCALLS
Date: Fri, 21 Nov 2025 18:57:37 +0800
Message-ID: <20251121105801.1251262-1-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SA2PEPF000015CC:EE_|IA1PR12MB8190:EE_
X-MS-Office365-Filtering-Correlation-Id: e343590e-1de5-4d0e-1541-08de28ece4bb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|7416014|82310400026|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?ke7Gmthyo6ow8Q4JznIIYj/nNmhpq3JenJ+b/rhqC0/wdQrSlJAF86GgkqhO?=
 =?us-ascii?Q?8H7Ch3EpAxPAdxPHNnRNuZ6ylxDbvJWbjpU1PAd4pr2sWpAge7tbRuSeZbkF?=
 =?us-ascii?Q?SfIKKX5p2WcxKF73q8+z83gE/hvMRv1MFiYBOPkkgAJPhURd9mWFJvw+mrad?=
 =?us-ascii?Q?IkGaFVelP48X/ybhM9ovGWYWVlqgPuxj2ObmZdjuRYKsgZSi2W8JCxcIURNR?=
 =?us-ascii?Q?o6qKQHK+NTfk4tOi5BRLAALLKaFG2danSYzhuwa4DEaAEtHfIg9scnwcTPED?=
 =?us-ascii?Q?KwZDGuHmc38RYbIKpE8NyhSJSRS29yuwr7hQH695HP5V4Y00/H0ggtZLmn3g?=
 =?us-ascii?Q?0M8aKDR9m9h7XYdK4qXFy/sMsjEZrfWNAaB8wvBRjddLAOHcWGVXfk4xExtE?=
 =?us-ascii?Q?6qxL9SoOo4p69LdW1MlzUVccsU249m+UPj8bZciLV8nuunaIvpDNxNh+r+fh?=
 =?us-ascii?Q?3yeXvKrUsS3pZN3A2AlptBMEDBszyJIbJQ+1ljP9wBEG+jQb9gJsPXjCZdgK?=
 =?us-ascii?Q?21QhVnitnzIFNrk11qmcxKJ2Lh5gMDl1sVPi5Nldx0yxzDSCEkv2AlJw2b+e?=
 =?us-ascii?Q?CT++rrDmNuSNq3EXMHU5BcD4Eo6DRmTPyqVHrUjywYHokJ5oDHIZUBmoiMuy?=
 =?us-ascii?Q?+X/eEKqBcbKfbDa+Ov/Cc+iUTK01xVQmScSExnTncQxsoTH4CAie3N1HbNf3?=
 =?us-ascii?Q?Lsj062fUxp0xmCUIrOIHkMynNgeEBXFB1Ojvl+Cdzqa0msMBRR8kl5UnWDP5?=
 =?us-ascii?Q?mJPo5xCHJa24ekgefEB+Ga4f+xFYtsLECT0gyONZUPI4X17Itl53e63sFXJS?=
 =?us-ascii?Q?GpZZc7gx6On33f+ri8GEqnRGcTNAKkaq/jo5soS8/YOKAH9+qTHngKH6h3YN?=
 =?us-ascii?Q?xfTQN3z4gOBLe3k6TOJDH5sBNEs5/6uGFPyvPnTBoNaanTHPklnqkKR0BA5K?=
 =?us-ascii?Q?7Enr3/GRa4lkOrOjDRRqj1NYcF1yUNT4LAuN0Ue46WP0Q/mBiF8xKIT8oJ4K?=
 =?us-ascii?Q?taugGqf+J0ijTIb61iwQx/I+FJguu0bXuJGIOdRvxkQzzpwfuZHpq5nap3Ck?=
 =?us-ascii?Q?+c968ZpfWCdvm/lHdN+bcgnb2aKT9m006GstB9K3kr7NsI0gkMxH/mLiP4Ow?=
 =?us-ascii?Q?QiFMs65b1zT8Q4cpswHy+fhVOOBxgzyjfcFjf59crtkwNN66Y26PwWCu392d?=
 =?us-ascii?Q?GdXmXDv/aGpppA4aFcuQHbgpoidwtf48PwDOJ09Q0zPyrzP2mmr3bRm7Gegm?=
 =?us-ascii?Q?bVg7lorD1x7w27UZYEVscpmwm2C/babLxRj5eUNcgHAp6UW/tIyqca/PMZ2Q?=
 =?us-ascii?Q?/lNkmDHyekmU3HtMfC55XTPGvtHeDIOk/fdnpS3+Nhs9xSQVwWUxllri7EYF?=
 =?us-ascii?Q?yCPGtpaY3T9fODwkXKss/HCALA2pibryvP7QrZsa9+MWadtN02KDx2mVRJ3g?=
 =?us-ascii?Q?XDuuLHfHh0H99UX4uLQGSEloFprXc9IPlrK6bCAPzEq9RGQs2gG9R9vXfrdV?=
 =?us-ascii?Q?PxjoVow3gbxtj5Urq7mZCbOKvX22GG7srG4teg+TSUj5ya6qDqDEekgrcISa?=
 =?us-ascii?Q?rJ1uMdq1SqtTnIAxEkQo/wfCylpXCTqRxEL69R97?=
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)(7416014)(82310400026)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:58:24.7355
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e343590e-1de5-4d0e-1541-08de28ece4bb
X-MS-Exchange-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: IA1PR12MB8190

It can be beneficial for some dom0less systems to further reduce Xen footprint
via disabling some hypercalls handling code, which may not to be used &
required in such systems.
We are introducing a new single Kconfig CONFIG_MGMT_HYPERCALLS to manage
such hypercalls.

We are trying to disable hypercalls in the following aspects:
- sysctl
- domctl
- hvm
- physdev
- platform
This patch serie is only focusing on domctl-op. Different aspects will be
covered in different patch serie.

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

It is derived from Stefano Stabellini's commit "xen: introduce kconfig options
to disable hypercalls"(
https://lore.kernel.org/xen-devel/20241219092917.3006174-1-Sergiy_Kibrik@epam.com)
---
This patch serie is based on two patch serie, one is
"[XEN][PATCH v4] xen: make VMTRACE support optional" and "
[PATCH v3 0/7] consolidate vm event subsystem"
---
Penny Zheng (24):
  xen/xsm: remove redundant xsm_iomem_mapping()
  xen: consolidate cpuid library
  xen/sysctl: replace CONFIG_SYSCTL with CONFIG_MGMT_HYPERCALLS
  xen/domctl: make MGMT_HYPERCALLS transiently def_bool
  xen/vm_event: make VM_EVENT depend on CONFIG_MGMT_HYPERCALLS
  xen/domctl: consolidate domain.c with MGMT_HYPERCALLS
  xen/mem_sharing: make memory sharing depend on MGMT_HYPERCALLS
  xen/domctl: wrap domain_kill() with CONFIG_MGMT_HYPERCALLS
  xen/domctl: wrap vcpu_affinity_domctl() with CONFIG_MGMT_HYPERCALLS
  xen/domctl: wrap sched_adjust() with CONFIG_MGMT_HYPERCALLS
  xen/domctl: wrap xsm_irq_permission with CONFIG_MGMT_HYPERCALLS
  xen/domctl: wrap arch-specific domain_set_time_offset() with
    CONFIG_MGMT_HYPERCALLS
  xen/domctl: wrap xsm_set_target() with CONFIG_MGMT_HYPERCALLS
  xen/domctl: wrap pci-subset iommu-related domctl op with
    CONFIG_MGMT_HYPERCALLS
  xen/domctl: wrap device-tree-subset iommu-related domctl op with
    CONFIG_MGMT_HYPERCALLS
  xen/domctl: wrap iommu-related domctl op with CONFIG_MGMT_HYPERCALLS
  xen/domctl: wrap arch_{get,set}_paging_mempool_size() with
    CONFIG_MGMT_HYPERCALLS
  xen/domctl: make CONFIG_X86_PSR depend on CONFIG_MGMT_HYPERCALLS
  xen/domctl: wrap hvm_save{,load} with CONFIG_MGMT_HYPERCALLS
  xen/x86: wrap x86-specific domctl-op with CONFIG_MGMT_HYPERCALLS
  xen/arm: wrap arm-specific domctl-op with CONFIG_MGMT_HYPERCALLS
  xen/domctl: domctl_lock synchronization only when MGMT_HYPERCALLS=y
  xen/domctl: wrap common/domctl.c with CONFIG_MGMT_HYPERCALLS
  xen: move MGMT_HYPERCALLS out of PV_SHIM_EXCLUSIVE

 tools/fuzz/cpu-policy/Makefile               |   2 +-
 tools/fuzz/x86_instruction_emulator/Makefile |  10 +-
 tools/libs/guest/Makefile.common             |   2 +-
 tools/tests/cpu-policy/Makefile              |   2 +-
 tools/tests/x86_emulator/Makefile            |   2 +-
 xen/Kconfig.debug                            |   3 +-
 xen/arch/arm/Kconfig                         |   2 +-
 xen/arch/arm/Makefile                        |   4 +-
 xen/arch/arm/arm32/Makefile                  |   2 +-
 xen/arch/arm/arm64/Makefile                  |   2 +-
 xen/arch/arm/domain.c                        |   3 +
 xen/arch/arm/include/asm/tee/tee.h           |   2 +
 xen/arch/arm/mmu/p2m.c                       |   8 +
 xen/arch/arm/mpu/p2m.c                       |   2 +
 xen/arch/arm/tee/ffa.c                       |   4 +
 xen/arch/arm/tee/optee.c                     |   4 +
 xen/arch/arm/tee/tee.c                       |   2 +
 xen/arch/arm/time.c                          |   2 +
 xen/arch/ppc/stubs.c                         |   2 +
 xen/arch/riscv/stubs.c                       |   8 +-
 xen/arch/x86/Kconfig                         |   3 +-
 xen/arch/x86/Makefile                        |   4 +-
 xen/arch/x86/configs/pvshim_defconfig        |   2 +-
 xen/arch/x86/domain.c                        |   2 +
 xen/arch/x86/emul-i8254.c                    |   2 +
 xen/arch/x86/hvm/Kconfig                     |   3 +-
 xen/arch/x86/hvm/hvm.c                       |   7 +-
 xen/arch/x86/hvm/pmtimer.c                   |   2 +
 xen/arch/x86/hvm/save.c                      | 154 +++++------
 xen/arch/x86/include/asm/p2m.h               |   2 +-
 xen/arch/x86/include/asm/paging.h            |   2 +-
 xen/arch/x86/mm/p2m-pod.c                    |   2 +
 xen/arch/x86/mm/p2m.c                        |   2 +
 xen/arch/x86/mm/paging.c                     |   4 +
 xen/arch/x86/psr.c                           |  18 --
 xen/arch/x86/time.c                          |   2 +
 xen/common/Kconfig                           |  28 +-
 xen/common/Makefile                          |   7 +-
 xen/common/device-tree/device-tree.c         |   2 +
 xen/common/domain.c                          | 116 ++++----
 xen/common/domctl.c                          |   2 +-
 xen/common/page_alloc.c                      |   8 +-
 xen/common/perfc.c                           |   4 +-
 xen/common/sched/arinc653.c                  |  11 +-
 xen/common/sched/core.c                      |   8 +-
 xen/common/sched/cpupool.c                   |  16 +-
 xen/common/sched/credit.c                    |  10 +-
 xen/common/sched/credit2.c                   |  10 +-
 xen/common/sched/private.h                   |  10 +-
 xen/common/sched/rt.c                        |   4 +
 xen/common/spinlock.c                        |   4 +-
 xen/drivers/char/console.c                   |   4 +-
 xen/drivers/passthrough/amd/pci_amd_iommu.c  |  20 +-
 xen/drivers/passthrough/arm/ipmmu-vmsa.c     |  26 +-
 xen/drivers/passthrough/arm/smmu-v3.c        |   4 +
 xen/drivers/passthrough/arm/smmu.c           |  55 ++--
 xen/drivers/passthrough/device_tree.c        | 108 ++++----
 xen/drivers/passthrough/iommu.c              |   2 +
 xen/drivers/passthrough/pci.c                |  52 ++--
 xen/drivers/passthrough/vtd/iommu.c          |   6 +-
 xen/drivers/vpci/header.c                    |   2 +-
 xen/include/hypercall-defs.c                 |  14 +-
 xen/include/xen/domain.h                     |   4 -
 xen/include/xsm/dummy.h                      |  29 +-
 xen/include/xsm/xsm.h                        |  60 ++--
 xen/lib/x86/Makefile                         |   7 +-
 xen/lib/x86/cpuid-generic.c                  | 273 +++++++++++++++++++
 xen/lib/x86/cpuid.c                          | 260 ------------------
 xen/xsm/dummy.c                              |  21 +-
 xen/xsm/flask/hooks.c                        |  54 ++--
 70 files changed, 812 insertions(+), 708 deletions(-)
 create mode 100644 xen/lib/x86/cpuid-generic.c

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 10:58:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 10:58:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168580.1494587 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOqp-0000Ky-Jr; Fri, 21 Nov 2025 10:58:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168580.1494587; Fri, 21 Nov 2025 10:58: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 1vMOqp-0000Kr-GJ; Fri, 21 Nov 2025 10:58:51 +0000
Received: by outflank-mailman (input) for mailman id 1168580;
 Fri, 21 Nov 2025 10:58: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOqo-0008Dv-Ef
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:58:50 +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 0d83e49b-c6c9-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 11:58:47 +0100 (CET)
Received: from SN7PR04CA0214.namprd04.prod.outlook.com (2603:10b6:806:127::9)
 by PH7PR12MB5878.namprd12.prod.outlook.com (2603:10b6:510:1d6::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov
 2025 10:58:37 +0000
Received: from SA2PEPF000015CA.namprd03.prod.outlook.com
 (2603:10b6:806:127:cafe::40) by SN7PR04CA0214.outlook.office365.com
 (2603:10b6:806:127::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.12 via Frontend Transport; Fri,
 21 Nov 2025 10:58:28 +0000
Received: from satlexmb07.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.9343.9 via Frontend Transport; Fri, 21 Nov 2025 10:58:36 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02: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: 0d83e49b-c6c9-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RdkZb3ClXkv+kb5h7/Fanr9d3VCJdrOASG8zjvfcwQLXPn038PwlPhVXG5bBRoGBBGFGGSj2zAVQDAJJ8t4auablHfjlO6tFEmclP5Bho48QUR52GXYN7w9wAIMCcDTkqaX1wakqljdSnpByEHZuEyCRU5m2HQhj4tGSadi1wY8RR0pvNXimht1+6kSfwNIPQj54cEUjFpYXAsNxOEmxq0IjTnWjs7qFbBWPG62EkPFKzfSofd97wVMMm3y899oHONycijNJAm23TfD8STWq7owwq37BkyJbpONy9NPnDNV0zEsfLbTqKSmDV5FcGBNl7jUQyativzUuaU2Om9E+xg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kUCDwf6m9s3EcL9ImUik1eDJPyQ22v+t+7I6d4R0DDM=;
 b=IB+VwBwIYiT/qf1aBeSwLnleVobKWralOI6Vjg+QdgispOWvDQV8aA+TTdQOedRO4fzl8zB11iPoqOyDnMeMGV1OS36JGX27EU1SmTYI5Lu7K2YHHeVBTnm1PVzXRBAWWsviBL0JThh7TPKB88fGcEE162aCV77Pr7vxpoH/h4Xw+zsN8QyKTM8/vWJcRNL0JE/YZpgBrXRbEHVzJuW3F6ryskuRQ8afdVdZ+QGmn1OFI9BlnfWYTqdHq+sT9JkoSKU6rFbNv7U9wWp3d1v2tqlSg+CYlWETTmjCjKNSOjvZvLbKEaQnLmp+wbOcQFxsY4BelK8EIbAUKb8ZWzyGAA==
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=kUCDwf6m9s3EcL9ImUik1eDJPyQ22v+t+7I6d4R0DDM=;
 b=5AKK1qz6hUcLcEzS/os+iNUWJxzWR3+ddHrTTtwUakHvUUHT22WEhZ5cdK1g+tSi/5xsvwbcMLu3/FUtf1YHArqfFyXu0xdMMsUAit2gSMopTOyYaObtjmurlbUu6s40efMY5WS5j3wMsmRPKU+seuqvW9urBe/T6H/p6QDu4bI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>, <xen-devel@dornerworks.com>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>, Nathan Studer
	<nathan.studer@dornerworks.com>, Stewart Hildebrand <stewart@stew.dk>, "Dario
 Faggioli" <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George
 Dunlap <gwd@xenproject.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Alistair Francis <alistair.francis@wdc.com>
Subject: [PATCH v4 03/24] xen/sysctl: replace CONFIG_SYSCTL with CONFIG_MGMT_HYPERCALLS
Date: Fri, 21 Nov 2025 18:57:40 +0800
Message-ID: <20251121105801.1251262-4-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SA2PEPF000015CA:EE_|PH7PR12MB5878:EE_
X-MS-Office365-Filtering-Correlation-Id: 53d3b036-7fae-4e4a-5569-08de28ecebb2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|7416014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?sbDiPq/Q449JtTTipMj1gbjvTN8HeZZC7ubR5pAb8NgVUL+0v/dvSW8+mBKX?=
 =?us-ascii?Q?kb26eLrpzm5rgimwUD2ICl9cb4apH1NMaUb7sNPBcLrEEbWl5qa9nH3NGLeO?=
 =?us-ascii?Q?S+7l78zxij/TWu+K5MwESk0X8+TAQeU9+5qKmp4zDDAco25+KXt9n+369XaU?=
 =?us-ascii?Q?416v8piTWabSFEeiXqHK0GnrtX55jYyop4vM8DR0m2mHe3Z1orTIf5SqOQSO?=
 =?us-ascii?Q?KbbFO4KseLT1pY12wrST9tWlqc0i78daoIVzMQYsqlgIPOehlwE85qNuQxWl?=
 =?us-ascii?Q?RXWrjAodDNbZMkH2qbc/UDYfWXCiHvEcdmr8f5WXS9uRDNtlpDUavC7QxMLF?=
 =?us-ascii?Q?07wYWy0FV+aYOTC4FKrW71saemFQYF4CQGJLrE5lBSmEFX8m99Nz3Agiqpk+?=
 =?us-ascii?Q?wxZj0gqbYB6Zk76L1UD2rOp6jRTbhMijz9sddc0wvHhC/Tt1iG36EZAZKDPT?=
 =?us-ascii?Q?qY4U12A8cM4L4He8GCcuU0V0UA1hhvYVCt96DbR2zIOwDhm08PZj/npBDpgD?=
 =?us-ascii?Q?KDJAgXkZaSJqD1Cxuwk8Gs6OQAumkTx1Sq9tySqVlwWy8Mai4SBBtTJrgG4k?=
 =?us-ascii?Q?s7NkNzgJQvgwwYBLnZ2Hvz7/PQESxG33dxb6S7hjBrat5uI4QubzOM6hxKSn?=
 =?us-ascii?Q?QgjzyabdhswgdLp+F96M4zLGngB0iJLOIBHR6Uh1v1LDz4IEe8BWuX2MhmDX?=
 =?us-ascii?Q?wlEyRdyicYT3OypsmqmnpKI0l2biQNQDeUUbmXEBRO7g8/xqWNVHDIwabcBD?=
 =?us-ascii?Q?TuA/47pWtfyhWvF7YGRDdbs3uzGRlLk7L9XQaks7FBSTP22oa7z226BsxxZy?=
 =?us-ascii?Q?vNwgsuQu4idMSfS5gc7y08WmkIXTGiEyq6jVoWlC5oQfmRv2dh6vwrmmX2Xo?=
 =?us-ascii?Q?RCN0fz1PJ9KyrtJeG8i7alrEkHHqqqPWy0A9CIQxq3GzArHvUZv4+evgk80D?=
 =?us-ascii?Q?8PFglshWNoxg9bAUT0eeBH+vhs64Swa5jnRBlksBNLrsArBwqZUc3u1Ek9Yw?=
 =?us-ascii?Q?c+LmUtPBd7I9OZlQ4dKQBZm/oWM/6QsC95ByY+D8e0H+gj74Rf5RF3wmFaOv?=
 =?us-ascii?Q?D5whLG2t060f4hh5O9jTdGLioWZfnt1HVVCvogEAZR4vuLxjB7S2cC5C8RCq?=
 =?us-ascii?Q?r6r7sYvfMmtM2E77CH5cf4F/YlvQmweroKw+1IkKccPQoQ562Y85WlcgKkIQ?=
 =?us-ascii?Q?mcQXCNvn8qx45CVLKSu98ZYz/qaPaUxIT4wSUEyCc0TTaozr/5Lp8gAACC+K?=
 =?us-ascii?Q?dLoGDro/2cky2lf4T7UNShnVfCojCa5erEIAvdM0OQBQeBQ640ImD/cVB3VC?=
 =?us-ascii?Q?TGEanULQIjGBy3lk4lcDBXnOD23RfxZ0MODlLdIGY2UdLDKmdFI94swa/+NN?=
 =?us-ascii?Q?hWC0mx6Tt3tSaofVfswMnI87IuidX4cWebTLLZqhTLfrUrXWMVpdEccjfbLm?=
 =?us-ascii?Q?b3QNp3XnXezdYy+RUcqIMvdD882aIDfpy+jedgKNsSN/hzF9vPnOwXzC5x3/?=
 =?us-ascii?Q?sQZrcnHXr4XdGP3YIJOgsAenCrYjKUMX5Yt7hucL3WCWkKKnxRHmgCUICeTA?=
 =?us-ascii?Q?MPwKts0Jlj81w5PSMGM=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)(7416014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:58:36.4085
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 53d3b036-7fae-4e4a-5569-08de28ecebb2
X-MS-Exchange-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:
	SA2PEPF000015CA.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5878

Rename all the CONFIG_SYSCTL into CONFIG_MGMT_HYPERCALLS to help provide a
single option to manage all unnecessary hypercalls, including
sysctl, domctl, etc, in dom0less system and PV shim mode, which could also
make it easier to support randconfigs.
While doing the replacement, we fix some bugs on xsm system:
- wrap the whole xsm function to avoid bringing unreachable codes when
MGMT_DOMCTL=n
- add missing wrapping in include/xsm/dummy.h

Suggested-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Reviewed-by: Juergen Gross <jgross@suse.com>
Acked-by: Stewart Hildebrand <stewart@stew.dk> #ARINC 653
Acked-by: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>
---
v2 -> v3:
- wrap the whole xsm function
- add missing wrapping in include/xsm/dummy.h
- refine kconfig description
---
 xen/Kconfig.debug                     |  2 +-
 xen/arch/arm/Makefile                 |  2 +-
 xen/arch/riscv/stubs.c                |  4 ++--
 xen/arch/x86/Makefile                 |  2 +-
 xen/arch/x86/configs/pvshim_defconfig |  2 +-
 xen/arch/x86/psr.c                    | 26 +++++++++++++-------------
 xen/common/Kconfig                    | 15 ++++++++-------
 xen/common/Makefile                   |  2 +-
 xen/common/page_alloc.c               |  8 ++++----
 xen/common/perfc.c                    |  4 ++--
 xen/common/sched/arinc653.c           | 10 +++++-----
 xen/common/sched/core.c               |  6 +++---
 xen/common/sched/cpupool.c            | 16 ++++++++--------
 xen/common/sched/credit.c             |  6 +++---
 xen/common/sched/credit2.c            |  6 +++---
 xen/common/sched/private.h            |  4 ++--
 xen/common/spinlock.c                 |  4 ++--
 xen/drivers/char/console.c            |  4 ++--
 xen/include/hypercall-defs.c          |  4 ++--
 xen/include/xsm/dummy.h               |  6 ++++++
 xen/include/xsm/xsm.h                 | 24 +++++++++---------------
 xen/xsm/dummy.c                       |  6 +++---
 xen/xsm/flask/hooks.c                 | 22 +++++++++++-----------
 23 files changed, 93 insertions(+), 92 deletions(-)

diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index d900d926c5..a69615cd63 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -37,7 +37,7 @@ config SELF_TESTS
 
 config COVERAGE
 	bool "Code coverage support"
-	depends on SYSCTL && !LIVEPATCH
+	depends on MGMT_HYPERCALLS && !LIVEPATCH
 	select SUPPRESS_DUPLICATE_SYMBOL_WARNINGS if !ENFORCE_UNIQUE_SYMBOLS
 	help
 	  Enable code coverage support.
diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 7e88ddd3d7..2aff1a1630 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -51,7 +51,7 @@ obj-y += setup.o
 obj-y += shutdown.o
 obj-y += smp.o
 obj-y += smpboot.o
-obj-$(CONFIG_SYSCTL) += sysctl.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += sysctl.o
 obj-y += time.o
 obj-y += traps.o
 obj-y += vcpreg.o
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 340ed3cd6c..37b4346d3f 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -277,7 +277,7 @@ unsigned long raw_copy_from_guest(void *to, const void __user *from,
     BUG_ON("unimplemented");
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 /* sysctl.c */
 
 long arch_do_sysctl(struct xen_sysctl *sysctl,
@@ -290,7 +290,7 @@ void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
 {
     BUG_ON("unimplemented");
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /* p2m.c */
 
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index f71ca9f18b..d21fdd49df 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -66,7 +66,7 @@ obj-y += smpboot.o
 obj-y += spec_ctrl.o
 obj-y += srat.o
 obj-y += string.o
-obj-$(CONFIG_SYSCTL) += sysctl.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += sysctl.o
 obj-y += time.o
 obj-y += traps-setup.o
 obj-y += traps.o
diff --git a/xen/arch/x86/configs/pvshim_defconfig b/xen/arch/x86/configs/pvshim_defconfig
index 24f4e4857d..d1db94df78 100644
--- a/xen/arch/x86/configs/pvshim_defconfig
+++ b/xen/arch/x86/configs/pvshim_defconfig
@@ -25,4 +25,4 @@ CONFIG_PDX_NONE=y
 # CONFIG_INTEL_IOMMU is not set
 # CONFIG_DEBUG is not set
 # CONFIG_GDBSX is not set
-# CONFIG_SYSCTL is not set
+# CONFIG_MGMT_HYPERCALLS is not set
diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c
index cce7020868..80ce5804b4 100644
--- a/xen/arch/x86/psr.c
+++ b/xen/arch/x86/psr.c
@@ -135,7 +135,7 @@ static const struct feat_props {
      */
     enum psr_type alt_type;
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     /* get_feat_info is used to return feature HW info through sysctl. */
     bool (*get_feat_info)(const struct feat_node *feat,
                           uint32_t data[], unsigned int array_len);
@@ -422,7 +422,7 @@ static bool mba_init_feature(const struct cpuid_leaf *regs,
     return true;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static bool cf_check cat_get_feat_info(
     const struct feat_node *feat, uint32_t data[], unsigned int array_len)
 {
@@ -435,7 +435,7 @@ static bool cf_check cat_get_feat_info(
 
     return true;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /* L3 CAT props */
 static void cf_check l3_cat_write_msr(
@@ -448,14 +448,14 @@ static const struct feat_props l3_cat_props = {
     .cos_num = 1,
     .type[0] = PSR_TYPE_L3_CBM,
     .alt_type = PSR_TYPE_UNKNOWN,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .get_feat_info = cat_get_feat_info,
 #endif
     .write_msr = l3_cat_write_msr,
     .sanitize = cat_check_cbm,
 };
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 /* L3 CDP props */
 static bool cf_check l3_cdp_get_feat_info(
     const struct feat_node *feat, uint32_t data[], uint32_t array_len)
@@ -467,7 +467,7 @@ static bool cf_check l3_cdp_get_feat_info(
 
     return true;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static void cf_check l3_cdp_write_msr(
     unsigned int cos, uint32_t val, enum psr_type type)
@@ -483,7 +483,7 @@ static const struct feat_props l3_cdp_props = {
     .type[0] = PSR_TYPE_L3_DATA,
     .type[1] = PSR_TYPE_L3_CODE,
     .alt_type = PSR_TYPE_L3_CBM,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .get_feat_info = l3_cdp_get_feat_info,
 #endif
     .write_msr = l3_cdp_write_msr,
@@ -501,14 +501,14 @@ static const struct feat_props l2_cat_props = {
     .cos_num = 1,
     .type[0] = PSR_TYPE_L2_CBM,
     .alt_type = PSR_TYPE_UNKNOWN,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .get_feat_info = cat_get_feat_info,
 #endif
     .write_msr = l2_cat_write_msr,
     .sanitize = cat_check_cbm,
 };
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 /* MBA props */
 static bool cf_check mba_get_feat_info(
     const struct feat_node *feat, uint32_t data[], unsigned int array_len)
@@ -523,7 +523,7 @@ static bool cf_check mba_get_feat_info(
 
     return true;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static void cf_check mba_write_msr(
     unsigned int cos, uint32_t val, enum psr_type type)
@@ -561,7 +561,7 @@ static const struct feat_props mba_props = {
     .cos_num = 1,
     .type[0] = PSR_TYPE_MBA_THRTL,
     .alt_type = PSR_TYPE_UNKNOWN,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .get_feat_info = mba_get_feat_info,
 #endif
     .write_msr = mba_write_msr,
@@ -826,7 +826,7 @@ static struct psr_socket_info *get_socket_info(unsigned int socket)
     return socket_info + socket;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 int psr_get_info(unsigned int socket, enum psr_type type,
                  uint32_t data[], unsigned int array_len)
 {
@@ -858,7 +858,7 @@ int psr_get_info(unsigned int socket, enum psr_type type,
 
     return -EINVAL;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 int psr_get_val(struct domain *d, unsigned int socket,
                 uint32_t *val, enum psr_type type)
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 218ac3d549..6709c3c95c 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -508,7 +508,7 @@ config CRYPTO
 config LIVEPATCH
 	bool "Live patching support"
 	default X86
-	depends on "$(XEN_HAS_BUILD_ID)" = "y" && SYSCTL && HAS_VMAP
+	depends on "$(XEN_HAS_BUILD_ID)" = "y" && MGMT_HYPERCALLS && HAS_VMAP
 	select CC_SPLIT_SECTIONS
 	help
 	  Allows a running Xen hypervisor to be dynamically patched using
@@ -600,7 +600,7 @@ config DTB_FILE
 config TRACEBUFFER
 	bool "Enable tracing infrastructure" if EXPERT
 	default y
-	depends on SYSCTL
+	depends on MGMT_HYPERCALLS
 	help
 	  Enable tracing infrastructure and pre-defined tracepoints within Xen.
 	  This will allow live information about Xen's execution and performance
@@ -651,19 +651,20 @@ config SYSTEM_SUSPEND
 menu "Supported hypercall interfaces"
 	visible if EXPERT
 
-config SYSCTL
-	bool "Enable sysctl hypercall"
+config MGMT_HYPERCALLS
+	bool "Enable privileged hypercalls for system management"
 	depends on !PV_SHIM_EXCLUSIVE
 	default y
 	help
 	  This option shall only be disabled on some dom0less systems, or
-	  PV shim on x86, to reduce Xen footprint.
+	  PV shim on x86, to reduce Xen footprint via managing unnessary
+	  hypercalls, like sysctl, etc.
 
 endmenu
 
 config PM_OP
 	bool "Enable Performance Management Operation"
-	depends on ACPI && HAS_CPUFREQ && SYSCTL
+	depends on ACPI && HAS_CPUFREQ && MGMT_HYPERCALLS
 	default y
 	help
 	  This option shall enable userspace performance management control
@@ -671,7 +672,7 @@ config PM_OP
 
 config PM_STATS
 	bool "Enable Performance Management Statistics"
-	depends on ACPI && HAS_CPUFREQ && SYSCTL
+	depends on ACPI && HAS_CPUFREQ && MGMT_HYPERCALLS
 	default y
 	help
 	  Enable collection of performance management statistics to aid in
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 0c7d0f5d46..7c32fbd9f1 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -51,7 +51,7 @@ obj-y += spinlock.o
 obj-$(CONFIG_STACK_PROTECTOR) += stack-protector.o
 obj-y += stop_machine.o
 obj-y += symbols.o
-obj-$(CONFIG_SYSCTL) += sysctl.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += sysctl.o
 obj-y += tasklet.o
 obj-y += time.o
 obj-y += timer.o
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 1f67b88a89..26615d1e97 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -602,7 +602,7 @@ out:
     return ret;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 void get_outstanding_claims(uint64_t *free_pages, uint64_t *outstanding_pages)
 {
     spin_lock(&heap_lock);
@@ -610,7 +610,7 @@ void get_outstanding_claims(uint64_t *free_pages, uint64_t *outstanding_pages)
     *free_pages = avail_heap_pages(MEMZONE_XEN + 1, NR_ZONES - 1, -1);
     spin_unlock(&heap_lock);
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static bool __read_mostly first_node_initialised;
 #ifndef CONFIG_SEPARATE_XENHEAP
@@ -1788,7 +1788,7 @@ int offline_page(mfn_t mfn, int broken, uint32_t *status)
     return 0;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 /*
  * Online the memory.
  *   The caller should make sure end_pfn <= max_page,
@@ -1873,7 +1873,7 @@ int query_page_offline(mfn_t mfn, uint32_t *status)
 
     return 0;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /*
  * This function should only be called with valid pages from the same NUMA
diff --git a/xen/common/perfc.c b/xen/common/perfc.c
index 0f3b89af2c..97a94ef1fc 100644
--- a/xen/common/perfc.c
+++ b/xen/common/perfc.c
@@ -149,7 +149,7 @@ void cf_check perfc_reset(unsigned char key)
     }
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static struct xen_sysctl_perfc_desc perfc_d[NR_PERFCTRS];
 static xen_sysctl_perfc_val_t *perfc_vals;
 static unsigned int      perfc_nbr_vals;
@@ -266,7 +266,7 @@ int perfc_control(struct xen_sysctl_perfc_op *pc)
 
     return rc;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /*
  * Local variables:
diff --git a/xen/common/sched/arinc653.c b/xen/common/sched/arinc653.c
index 8a4f4259d8..7d6c40d800 100644
--- a/xen/common/sched/arinc653.c
+++ b/xen/common/sched/arinc653.c
@@ -220,7 +220,7 @@ static void update_schedule_units(const struct scheduler *ops)
                       SCHED_PRIV(ops)->schedule[i].unit_id);
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 /**
  * This function is called by the adjust_global scheduler hook to put
  * in place a new ARINC653 schedule.
@@ -335,7 +335,7 @@ arinc653_sched_get(
 
     return 0;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /**************************************************************************
  * Scheduler callback functions                                           *
@@ -661,7 +661,7 @@ a653_switch_sched(struct scheduler *new_ops, unsigned int cpu,
     return &sr->_lock;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 /**
  * Xen scheduler callback function to perform a global (not domain-specific)
  * adjustment. It is used by the ARINC 653 scheduler to put in place a new
@@ -701,7 +701,7 @@ a653sched_adjust_global(const struct scheduler *ops,
 
     return rc;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /**
  * This structure defines our scheduler for Xen.
@@ -736,7 +736,7 @@ static const struct scheduler sched_arinc653_def = {
     .switch_sched   = a653_switch_sched,
 
     .adjust         = NULL,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .adjust_global  = a653sched_adjust_global,
 #endif
 
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index ec2448cfa1..88150432c3 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -2064,7 +2064,7 @@ long do_set_timer_op(s_time_t timeout)
     return 0;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 /* scheduler_id - fetch ID of current scheduler */
 int scheduler_id(void)
 {
@@ -2107,7 +2107,7 @@ long sched_adjust(struct domain *d, struct xen_domctl_scheduler_op *op)
     return ret;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 long sched_adjust_global(struct xen_sysctl_scheduler_op *op)
 {
     struct cpupool *pool;
@@ -2136,7 +2136,7 @@ long sched_adjust_global(struct xen_sysctl_scheduler_op *op)
 
     return rc;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static void vcpu_periodic_timer_work_locked(struct vcpu *v)
 {
diff --git a/xen/common/sched/cpupool.c b/xen/common/sched/cpupool.c
index f5459c2779..51ba3cb43d 100644
--- a/xen/common/sched/cpupool.c
+++ b/xen/common/sched/cpupool.c
@@ -241,12 +241,12 @@ struct cpupool *cpupool_get_by_id(unsigned int poolid)
     return __cpupool_get_by_id(poolid, true);
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static struct cpupool *cpupool_get_next_by_id(unsigned int poolid)
 {
     return __cpupool_get_by_id(poolid, false);
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 void cpupool_put(struct cpupool *pool)
 {
@@ -354,7 +354,7 @@ static struct cpupool *cpupool_create(unsigned int poolid,
 
     return ERR_PTR(ret);
 }
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 /*
  * destroys the given cpupool
  * returns 0 on success, 1 else
@@ -382,7 +382,7 @@ static int cpupool_destroy(struct cpupool *c)
     debugtrace_printk("cpupool_destroy(pool=%u)\n", c->cpupool_id);
     return 0;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /*
  * Move domain to another cpupool
@@ -572,7 +572,7 @@ static int cpupool_unassign_cpu_start(struct cpupool *c, unsigned int cpu)
     return ret;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static long cf_check cpupool_unassign_cpu_helper(void *info)
 {
     struct cpupool *c = info;
@@ -638,7 +638,7 @@ static int cpupool_unassign_cpu(struct cpupool *c, unsigned int cpu)
     }
     return continue_hypercall_on_cpu(work_cpu, cpupool_unassign_cpu_helper, c);
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /*
  * add a new domain to a cpupool
@@ -816,7 +816,7 @@ static void cpupool_cpu_remove_forced(unsigned int cpu)
     rcu_read_unlock(&sched_res_rculock);
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 /*
  * do cpupool related sysctl operations
  */
@@ -982,7 +982,7 @@ int cpupool_do_sysctl(struct xen_sysctl_cpupool_op *op)
 
     return ret;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 unsigned int cpupool_get_id(const struct domain *d)
 {
diff --git a/xen/common/sched/credit.c b/xen/common/sched/credit.c
index 6dcf6b2c8b..0cbec2a9c0 100644
--- a/xen/common/sched/credit.c
+++ b/xen/common/sched/credit.c
@@ -1256,7 +1256,7 @@ __csched_set_tslice(struct csched_private *prv, unsigned int timeslice_ms)
     prv->credit = prv->credits_per_tslice * prv->ncpus;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check
 csched_sys_cntl(const struct scheduler *ops,
                         struct xen_sysctl_scheduler_op *sc)
@@ -1299,7 +1299,7 @@ csched_sys_cntl(const struct scheduler *ops,
     out:
     return rc;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static void *cf_check
 csched_alloc_domdata(const struct scheduler *ops, struct domain *dom)
@@ -2290,7 +2290,7 @@ static const struct scheduler sched_credit_def = {
 
     .adjust         = csched_dom_cntl,
     .adjust_affinity= csched_aff_cntl,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .adjust_global  = csched_sys_cntl,
 #endif
 
diff --git a/xen/common/sched/credit2.c b/xen/common/sched/credit2.c
index 75316d42b7..307e63ebd8 100644
--- a/xen/common/sched/credit2.c
+++ b/xen/common/sched/credit2.c
@@ -3131,7 +3131,7 @@ csched2_aff_cntl(const struct scheduler *ops, struct sched_unit *unit,
         __clear_bit(__CSFLAG_pinned, &svc->flags);
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check csched2_sys_cntl(
     const struct scheduler *ops, struct xen_sysctl_scheduler_op *sc)
 {
@@ -3163,7 +3163,7 @@ static int cf_check csched2_sys_cntl(
 
     return 0;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static void *cf_check
 csched2_alloc_domdata(const struct scheduler *ops, struct domain *dom)
@@ -4248,7 +4248,7 @@ static const struct scheduler sched_credit2_def = {
 
     .adjust         = csched2_dom_cntl,
     .adjust_affinity= csched2_aff_cntl,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .adjust_global  = csched2_sys_cntl,
 #endif
 
diff --git a/xen/common/sched/private.h b/xen/common/sched/private.h
index d6884550cd..b7ff67200b 100644
--- a/xen/common/sched/private.h
+++ b/xen/common/sched/private.h
@@ -356,7 +356,7 @@ struct scheduler {
                                     struct sched_unit *unit,
                                     const struct cpumask *hard,
                                     const struct cpumask *soft);
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     int          (*adjust_global)  (const struct scheduler *ops,
                                     struct xen_sysctl_scheduler_op *sc);
 #endif
@@ -512,7 +512,7 @@ static inline int sched_adjust_dom(const struct scheduler *s, struct domain *d,
     return s->adjust ? s->adjust(s, d, op) : 0;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int sched_adjust_cpupool(const struct scheduler *s,
                                        struct xen_sysctl_scheduler_op *op)
 {
diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
index 0389293b09..9d08159615 100644
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -690,7 +690,7 @@ void cf_check spinlock_profile_reset(unsigned char key)
     spinlock_profile_iterate(spinlock_profile_reset_elem, NULL);
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 typedef struct {
     struct xen_sysctl_lockprof_op *pc;
     int                      rc;
@@ -750,7 +750,7 @@ int spinlock_profile_control(struct xen_sysctl_lockprof_op *pc)
 
     return rc;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 void _lock_profile_register_struct(
     int32_t type, struct lock_profile_qhead *qhead, int32_t idx)
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 9bd5b4825d..c38b58d5fc 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -371,7 +371,7 @@ static void conring_puts(const char *str, size_t len)
         conringc = conringp - conring_size;
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 long read_console_ring(struct xen_sysctl_readconsole *op)
 {
     XEN_GUEST_HANDLE_PARAM(char) str;
@@ -414,7 +414,7 @@ long read_console_ring(struct xen_sysctl_readconsole *op)
 
     return 0;
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 
 /*
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index cef08eeec1..4840de805b 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -194,7 +194,7 @@ kexec_op(unsigned long op, void *uarg)
 #ifdef CONFIG_IOREQ_SERVER
 dm_op(domid_t domid, unsigned int nr_bufs, xen_dm_op_buf_t *bufs)
 #endif
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 sysctl(xen_sysctl_t *u_sysctl)
 #endif
 #if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
@@ -277,7 +277,7 @@ physdev_op                         compat   do       hvm      hvm      do_arm
 #ifdef CONFIG_HVM
 hvm_op                             do       do       do       do       do
 #endif
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 sysctl                             do       do       do       do       do
 #endif
 #ifndef CONFIG_PV_SHIM_EXCLUSIVE
diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index e4e1c680c8..9b1d31b6ec 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -148,11 +148,13 @@ static XSM_INLINE int cf_check xsm_domctl_scheduler_op(
     return xsm_default_action(action, current->domain, d);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static XSM_INLINE int cf_check xsm_sysctl_scheduler_op(XSM_DEFAULT_ARG int cmd)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, NULL);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static XSM_INLINE int cf_check xsm_set_target(
     XSM_DEFAULT_ARG struct domain *d, struct domain *e)
@@ -180,6 +182,7 @@ static XSM_INLINE int cf_check xsm_domctl(
     }
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static XSM_INLINE int cf_check xsm_sysctl(XSM_DEFAULT_ARG int cmd)
 {
     XSM_ASSERT_ACTION(XSM_PRIV);
@@ -191,6 +194,7 @@ static XSM_INLINE int cf_check xsm_readconsole(XSM_DEFAULT_ARG uint32_t clear)
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, NULL);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static XSM_INLINE int cf_check xsm_alloc_security_domain(struct domain *d)
 {
@@ -485,11 +489,13 @@ static XSM_INLINE int cf_check xsm_resource_setup_misc(XSM_DEFAULT_VOID)
     return xsm_default_action(action, current->domain, NULL);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static XSM_INLINE int cf_check xsm_page_offline(XSM_DEFAULT_ARG uint32_t cmd)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, NULL);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static XSM_INLINE int cf_check xsm_hypfs_op(XSM_DEFAULT_VOID)
 {
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 1d72431d32..4c6e0dc0f9 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -57,13 +57,15 @@ struct xsm_ops {
     int (*domain_create)(struct domain *d, uint32_t ssidref);
     int (*getdomaininfo)(struct domain *d);
     int (*domctl_scheduler_op)(struct domain *d, int op);
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     int (*sysctl_scheduler_op)(int op);
 #endif
     int (*set_target)(struct domain *d, struct domain *e);
     int (*domctl)(struct domain *d, unsigned int cmd, uint32_t ssidref);
+#ifdef CONFIG_MGMT_HYPERCALLS
     int (*sysctl)(int cmd);
     int (*readconsole)(uint32_t clear);
+#endif
 
     int (*evtchn_unbound)(struct domain *d, struct evtchn *chn, domid_t id2);
     int (*evtchn_interdomain)(struct domain *d1, struct evtchn *chn1,
@@ -138,7 +140,7 @@ struct xsm_ops {
     int (*resource_setup_gsi)(int gsi);
     int (*resource_setup_misc)(void);
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     int (*page_offline)(uint32_t cmd);
 #endif
     int (*hypfs_op)(void);
@@ -244,7 +246,7 @@ static inline int xsm_domctl_scheduler_op(
     return alternative_call(xsm_ops.domctl_scheduler_op, d, cmd);
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int xsm_sysctl_scheduler_op(xsm_default_t def, int cmd)
 {
     return alternative_call(xsm_ops.sysctl_scheduler_op, cmd);
@@ -263,23 +265,17 @@ static inline int xsm_domctl(xsm_default_t def, struct domain *d,
     return alternative_call(xsm_ops.domctl, d, cmd, ssidref);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int xsm_sysctl(xsm_default_t def, int cmd)
 {
-#ifdef CONFIG_SYSCTL
     return alternative_call(xsm_ops.sysctl, cmd);
-#else
-    return -EOPNOTSUPP;
-#endif
 }
 
 static inline int xsm_readconsole(xsm_default_t def, uint32_t clear)
 {
-#ifdef CONFIG_SYSCTL
     return alternative_call(xsm_ops.readconsole, clear);
-#else
-    return -EOPNOTSUPP;
-#endif
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static inline int xsm_evtchn_unbound(
     xsm_default_t def, struct domain *d1, struct evtchn *chn, domid_t id2)
@@ -593,14 +589,12 @@ static inline int xsm_resource_setup_misc(xsm_default_t def)
     return alternative_call(xsm_ops.resource_setup_misc);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int xsm_page_offline(xsm_default_t def, uint32_t cmd)
 {
-#ifdef CONFIG_SYSCTL
     return alternative_call(xsm_ops.page_offline, cmd);
-#else
-    return -EOPNOTSUPP;
-#endif
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static inline int xsm_hypfs_op(xsm_default_t def)
 {
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index b7b65a7122..dbe363f0de 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -19,12 +19,12 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .domain_create                 = xsm_domain_create,
     .getdomaininfo                 = xsm_getdomaininfo,
     .domctl_scheduler_op           = xsm_domctl_scheduler_op,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .sysctl_scheduler_op           = xsm_sysctl_scheduler_op,
 #endif
     .set_target                    = xsm_set_target,
     .domctl                        = xsm_domctl,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .sysctl                        = xsm_sysctl,
     .readconsole                   = xsm_readconsole,
 #endif
@@ -97,7 +97,7 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .resource_setup_gsi            = xsm_resource_setup_gsi,
     .resource_setup_misc           = xsm_resource_setup_misc,
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .page_offline                  = xsm_page_offline,
 #endif
     .hypfs_op                      = xsm_hypfs_op,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 89e790b774..d0fd057db5 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -626,7 +626,7 @@ static int cf_check flask_domctl_scheduler_op(struct domain *d, int op)
     }
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check flask_sysctl_scheduler_op(int op)
 {
     switch ( op )
@@ -641,7 +641,7 @@ static int cf_check flask_sysctl_scheduler_op(int op)
         return avc_unknown_permission("sysctl_scheduler_op", op);
     }
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static int cf_check flask_set_target(struct domain *d, struct domain *t)
 {
@@ -858,7 +858,7 @@ static int cf_check flask_domctl(struct domain *d, unsigned int cmd,
     }
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check flask_sysctl(int cmd)
 {
     switch ( cmd )
@@ -946,7 +946,7 @@ static int cf_check flask_readconsole(uint32_t clear)
 
     return domain_has_xen(current->domain, perms);
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static inline uint32_t resource_to_perm(uint8_t access)
 {
@@ -1203,12 +1203,12 @@ static int cf_check flask_resource_unplug_core(void)
     return avc_current_has_perm(SECINITSID_DOMXEN, SECCLASS_RESOURCE, RESOURCE__UNPLUG, NULL);
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int flask_resource_use_core(void)
 {
     return avc_current_has_perm(SECINITSID_DOMXEN, SECCLASS_RESOURCE, RESOURCE__USE, NULL);
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static int cf_check flask_resource_plug_pci(uint32_t machine_bdf)
 {
@@ -1273,7 +1273,7 @@ static int cf_check flask_resource_setup_misc(void)
     return avc_current_has_perm(SECINITSID_XEN, SECCLASS_RESOURCE, RESOURCE__SETUP, NULL);
 }
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int cf_check flask_page_offline(uint32_t cmd)
 {
     switch ( cmd )
@@ -1288,7 +1288,7 @@ static inline int cf_check flask_page_offline(uint32_t cmd)
         return avc_unknown_permission("page_offline", cmd);
     }
 }
-#endif /* CONFIG_SYSCTL */
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static inline int cf_check flask_hypfs_op(void)
 {
@@ -1884,12 +1884,12 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .domain_create = flask_domain_create,
     .getdomaininfo = flask_getdomaininfo,
     .domctl_scheduler_op = flask_domctl_scheduler_op,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .sysctl_scheduler_op = flask_sysctl_scheduler_op,
 #endif
     .set_target = flask_set_target,
     .domctl = flask_domctl,
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .sysctl = flask_sysctl,
     .readconsole = flask_readconsole,
 #endif
@@ -1950,7 +1950,7 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .resource_setup_gsi = flask_resource_setup_gsi,
     .resource_setup_misc = flask_resource_setup_misc,
 
-#ifdef CONFIG_SYSCTL
+#ifdef CONFIG_MGMT_HYPERCALLS
     .page_offline = flask_page_offline,
 #endif
     .hypfs_op = flask_hypfs_op,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 10:58:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 10:58:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168581.1494597 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOqs-0000f6-10; Fri, 21 Nov 2025 10:58:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168581.1494597; Fri, 21 Nov 2025 10: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 1vMOqr-0000ex-TB; Fri, 21 Nov 2025 10:58:53 +0000
Received: by outflank-mailman (input) for mailman id 1168581;
 Fri, 21 Nov 2025 10: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOqq-0007TB-0L
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10: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 0fb1e2fa-c6c9-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 11:58:51 +0100 (CET)
Received: from SA9PR03CA0027.namprd03.prod.outlook.com (2603:10b6:806:20::32)
 by MW3PR12MB4492.namprd12.prod.outlook.com (2603:10b6:303:57::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.12; Fri, 21 Nov
 2025 10:58:46 +0000
Received: from SA2PEPF000015CD.namprd03.prod.outlook.com
 (2603:10b6:806:20:cafe::8e) by SA9PR03CA0027.outlook.office365.com
 (2603:10b6:806:20::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.14 via Frontend Transport; Fri,
 21 Nov 2025 10:58:43 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF000015CD.mail.protection.outlook.com (10.167.241.203) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Fri, 21 Nov 2025 10:58:45 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:58:42 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0fb1e2fa-c6c9-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nr4I0SUGm+PIpXxucBhOrlwRKHcEbUermOaMdC9SCVKLY6ghjctC5D5Wy/DVIRvQtzUMGz7rRzvJgso8cJ40b/zPO1sw1xLBwHO5IR2UwBh9ATdEhpma3/kz/7wCc+on8MLU7xHgu4vy8QB5LArzsJx+11kN03SkaKzm7UTK27iiW8DQX+Sf0r98uXtUqzcnKf5Rl1uvDLA346iN6eTDORGHTM6kDWvIKQhYPcS9gQfB85nnB9NHnxgznJLFd4DQ7e7OuRJN+5i4G50wRpu+XBjbLaYGfmsG57hWjl6NsHlaO1y2h7phwL7QeAZp7xaajXr934AP/WjzGuPtjYHzow==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=igofeiLvOI2W8jum6hpl+MDDJaVYQ3ySBjvbKhyR/NY=;
 b=DpbZ2Xa5pE4Nmod+8kCkVAXSXAkO8hA6s4uglFeuCCc5OhuJARW8gKMn2RUIDAx8G1NRLfqKPDCqrh1nKhuDziGU5AAPe4/qycqtnDkBbCTSImJXbnpxzvq9/943t3FHtfkJiaiMWNO33+RpE5XN8f0a47eY8efpR0ZLYxR3cnef6ahaLRMfmP5Qk60VHyhegGXiYunAxhAZkEYbbdpdg7Jkpeo5M1/3CBZ+ZyjULT1cws2NG6cIPb1AbilSte54XbEvnNwGwejpau9rFGsrgMDJbtCJ+XRV4XP72NZh+Q7EFrwHEGs5BjYfX/Dd4k3tIhW2mDI8r1tuxx25iJwTmg==
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=igofeiLvOI2W8jum6hpl+MDDJaVYQ3ySBjvbKhyR/NY=;
 b=l4yyS4DAG5qrb7wGzugdk0xeciDC2GfyQEkjqdzJc7M5LWgdfER8dQ0WBiZjD1UH7HNHqHfKq2IB2X2sEVW4UClBPTL+C/Y/uyu0aO1WcxoukJwR/Hfit3d9Ex8uYk89tTihOJAcGXq3ge6RLUIXr8O2GAzPCQLZG7d9hHCgEBA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: [PATCH v4 06/24] xen/domctl: consolidate domain.c with MGMT_HYPERCALLS
Date: Fri, 21 Nov 2025 18:57:43 +0800
Message-ID: <20251121105801.1251262-7-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SA2PEPF000015CD:EE_|MW3PR12MB4492:EE_
X-MS-Office365-Filtering-Correlation-Id: 2a29c23d-3e30-4776-1af7-08de28ecf10e
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?1fg78zdKCoPnFHRLh7/gsnqC5xeBA8BaBZIvoOPLpjZeniQQdd7RMC9R/IBG?=
 =?us-ascii?Q?vbFW+d3pWFRfbqdgWvcdbImBeze0Nsmn1KFnKSiaCADdO2E1RBfTKp1000M/?=
 =?us-ascii?Q?GiiLBZU0Q2fVEEoGitPdUPaY7iJXNTmzJdMm1dw+VzfpfG3K7+zmGn82Z+VW?=
 =?us-ascii?Q?y8ksCXm5E8szdgatUTLL9yZLbyq2uiPa0l1XOqiFEHCcohzXnL10hl7cqojR?=
 =?us-ascii?Q?pMyy5v1D5LNPqmeW+rObLeYApsrev6yxC+lWGrjs8YRVDAr9UaorijlMQ02e?=
 =?us-ascii?Q?Q8zOuY0RE7Mq9xNpim1ulO4fn6E+Eu2DXmvZayX9leubvBojpnf7cGrM35oF?=
 =?us-ascii?Q?3Y3x5tZ8tK08J/8s8LH0WqiiZm+WQl5RuDoDTdlrPhELc/2A0HL58Vl0X0bb?=
 =?us-ascii?Q?4y+KxocKowREm025AwuvY8wIEnFDVtCLqlaleoz01x//z74BOKrWq6n+TZ1R?=
 =?us-ascii?Q?bh6VGuHJRxuUyWz/GRYuIGCBl19/dgVQEW1jRtKbNiASMXiZSSrosnTYGbNF?=
 =?us-ascii?Q?n/6Tkfd3CI/WQ0Jeu1x/G27uZJWo9SLtxHKlR4G+V2dgGX0O+ThT1P91RvhY?=
 =?us-ascii?Q?PgQYOpe3TA3ox0qt9pkxg0zrzZls1tWJmO0bo+FB3u8wl5OQcuzO3TFs3RAi?=
 =?us-ascii?Q?j5bP3oM3BGdYvGhe904cSjIKJa/6jqjqvPZjfkxZo01Ms75YcaL7ICsa0nJy?=
 =?us-ascii?Q?Q1vZT82v1THVSK/LxVxS4T+eWR6vQCkYm78xKvMW13oKLPlV40c/M50LucA/?=
 =?us-ascii?Q?1hkR4QaHu8iJA/SsQu/2gJskB8gBqvFmkx91W/rv6PXYmIY4MJk0frsUKKqo?=
 =?us-ascii?Q?qhzMjxpdC5vGfXRASsejNXhF5mYsqNltXtAkoSkuiYL1FPYOmyW7lFjXBZ1q?=
 =?us-ascii?Q?l0z6ltdiyyhWZGPtqd8s0HJ1WZYkXRVZSUbTBC4TL7x6em30ZeT8W4JOiGWf?=
 =?us-ascii?Q?owZHB5i97tBoyCPMuHIDZAIY5Zal/6IYzJwmWJ/Q5yFyy2CIRmm436G2AJSp?=
 =?us-ascii?Q?2WElimyNwXKV+qXCuR/9XYjh34AIrD0rVuyvj2cB/HZX/nUI0WFDYSaKyc3C?=
 =?us-ascii?Q?pF8pj9/q+dMDd+6vLg+DPj3reYxCONHCBWW/W1bm8S+lUFv2Pw4Rgz8OYJ7k?=
 =?us-ascii?Q?KA4vyVGPURbF83jc/RdnYmcXSr+5BPFlZxCg4YRpfoExoM7zkqoJKJsznmBA?=
 =?us-ascii?Q?VeR5dgg+5XQKcITrYHAhex/IkFjvjNODEozwJXjEIRlg+4XZEyD8rBAYgYUE?=
 =?us-ascii?Q?przvyoatIl8Fs1W6bL3XKEh92mrDzCz8lovyf4fqBPYeDG3prZKDDX9kpchd?=
 =?us-ascii?Q?smGjVf+ufnpI42Ardm0Emvl4XpFJjHsDj/a1d0CntSSiAZNFjiG9kf8Xi0aG?=
 =?us-ascii?Q?w6oujdjvp1dsZiGoydtzH93lUpn4uI7dK8S1id/uBBfwm7okpDvbubJoZ0OS?=
 =?us-ascii?Q?Qlld28xt/bKAEHWKSk/rexEGxkK0rzSGvRWx63yuw21ciWn4xZ6rORD+MGvd?=
 =?us-ascii?Q?wVGLaZIEfSAJ50nSbNv3F8z3RTdmwmw2TosTj8YaLB8xpC5KVz7PevXDHs+a?=
 =?us-ascii?Q?EqtEcTbOKmtEGZTb7cg=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:58:45.4114
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2a29c23d-3e30-4776-1af7-08de28ecf10e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015CD.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR12MB4492

The following functions, scattered in common/domain.c, and are only referenced
and responsible for domctl-op:
- domain_pause_by_systemcontroller
- domain_resume
- domain_set_node_affinity
So they shall be wrapped with CONFIG_MGMT_HYPERCALLS. Otherwise it will
become unreachable codes when MGMT_HYPERCALLS=n, and hence violating Misra
rule 2.1.
Move them together to avoid scattering #ifdef.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 - v4:
- combine commit "xen/domctl: wrap domain_pause_by_systemcontroller() with MGMT_HYPERCALLS",
"xen/domctl: wrap domain_resume() with CONFIG_MGMT_HYPERCALLS", and
"xen/domctl: wrap domain_set_node_affinity() with CONFIG_MGMT_HYPERCALLS"
---
 xen/common/domain.c | 114 ++++++++++++++++++++++----------------------
 1 file changed, 58 insertions(+), 56 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 6935b7d5e8..c6b0f931dc 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1115,35 +1115,6 @@ void __init setup_system_domains(void)
 #endif
 }
 
-int domain_set_node_affinity(struct domain *d, const nodemask_t *affinity)
-{
-    /* Being disjoint with the system is just wrong. */
-    if ( !nodes_intersects(*affinity, node_online_map) )
-        return -EINVAL;
-
-    spin_lock(&d->node_affinity_lock);
-
-    /*
-     * Being/becoming explicitly affine to all nodes is not particularly
-     * useful. Let's take it as the `reset node affinity` command.
-     */
-    if ( nodes_full(*affinity) )
-    {
-        d->auto_node_affinity = 1;
-        goto out;
-    }
-
-    d->auto_node_affinity = 0;
-    d->node_affinity = *affinity;
-
-out:
-    spin_unlock(&d->node_affinity_lock);
-
-    domain_update_node_affinity(d);
-
-    return 0;
-}
-
 /* rcu_read_lock(&domlist_read_lock) must be held. */
 static struct domain *domid_to_domain(domid_t dom)
 {
@@ -1361,33 +1332,6 @@ int domain_shutdown(struct domain *d, u8 reason)
     return 0;
 }
 
-void domain_resume(struct domain *d)
-{
-    struct vcpu *v;
-
-    /*
-     * Some code paths assume that shutdown status does not get reset under
-     * their feet (e.g., some assertions make this assumption).
-     */
-    domain_pause(d);
-
-    spin_lock(&d->shutdown_lock);
-
-    d->is_shutting_down = d->is_shut_down = 0;
-    d->shutdown_code = SHUTDOWN_CODE_INVALID;
-
-    for_each_vcpu ( d, v )
-    {
-        if ( v->paused_for_shutdown )
-            vcpu_unpause(v);
-        v->paused_for_shutdown = 0;
-    }
-
-    spin_unlock(&d->shutdown_lock);
-
-    domain_unpause(d);
-}
-
 int vcpu_start_shutdown_deferral(struct vcpu *v)
 {
     if ( v->defer_shutdown )
@@ -1616,10 +1560,68 @@ static int _domain_pause_by_systemcontroller(struct domain *d, bool sync)
     return 0;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
+int domain_set_node_affinity(struct domain *d, const nodemask_t *affinity)
+{
+    /* Being disjoint with the system is just wrong. */
+    if ( !nodes_intersects(*affinity, node_online_map) )
+        return -EINVAL;
+
+    spin_lock(&d->node_affinity_lock);
+
+    /*
+     * Being/becoming explicitly affine to all nodes is not particularly
+     * useful. Let's take it as the `reset node affinity` command.
+     */
+    if ( nodes_full(*affinity) )
+    {
+        d->auto_node_affinity = 1;
+        goto out;
+    }
+
+    d->auto_node_affinity = 0;
+    d->node_affinity = *affinity;
+
+out:
+    spin_unlock(&d->node_affinity_lock);
+
+    domain_update_node_affinity(d);
+
+    return 0;
+}
+
+void domain_resume(struct domain *d)
+{
+    struct vcpu *v;
+
+    /*
+     * Some code paths assume that shutdown status does not get reset under
+     * their feet (e.g., some assertions make this assumption).
+     */
+    domain_pause(d);
+
+    spin_lock(&d->shutdown_lock);
+
+    d->is_shutting_down = d->is_shut_down = 0;
+    d->shutdown_code = SHUTDOWN_CODE_INVALID;
+
+    for_each_vcpu ( d, v )
+    {
+        if ( v->paused_for_shutdown )
+            vcpu_unpause(v);
+        v->paused_for_shutdown = 0;
+    }
+
+    spin_unlock(&d->shutdown_lock);
+
+    domain_unpause(d);
+}
+
 int domain_pause_by_systemcontroller(struct domain *d)
 {
     return _domain_pause_by_systemcontroller(d, true /* sync */);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 int domain_pause_by_systemcontroller_nosync(struct domain *d)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 10:58:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 10:58:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168582.1494601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOqs-0000ia-GG; Fri, 21 Nov 2025 10:58:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168582.1494601; Fri, 21 Nov 2025 10:58: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 1vMOqs-0000hl-66; Fri, 21 Nov 2025 10:58:54 +0000
Received: by outflank-mailman (input) for mailman id 1168582;
 Fri, 21 Nov 2025 10:58: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOqr-0007TB-0e
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:58:53 +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 0fd5d176-c6c9-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 11:58:51 +0100 (CET)
Received: from SN7PR04CA0015.namprd04.prod.outlook.com (2603:10b6:806:f2::20)
 by CH3PR12MB8404.namprd12.prod.outlook.com (2603:10b6:610:12d::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Fri, 21 Nov
 2025 10:58:47 +0000
Received: from SA2PEPF000015CC.namprd03.prod.outlook.com
 (2603:10b6:806:f2:cafe::9) by SN7PR04CA0015.outlook.office365.com
 (2603:10b6:806:f2::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.12 via Frontend Transport; Fri,
 21 Nov 2025 10:58:38 +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.9343.9 via Frontend Transport; Fri, 21 Nov 2025 10:58:47 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:58:45 -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: 0fd5d176-c6c9-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pmQ1rt+lENMv7gdHWZ0GU3ZA4fOfFxHXSpX8JwdTXlfXK0cbBAACPQ3KdkvBDf8u17fgYin5ryqy+N+r/Qmd0lEK1wy01KTe37VMZNIdz/V4xZX0Avr9qjeNH5anYvzr2HV6xoqQW1JoMNoMqHoJqybqjw5ep8SnD9e17Z/vf1Qj+gVQlcFveYpfWx/EouhpoPCxBwYmIOsWnv+sjesJaBQf3psdSz6PlpcZA0fhJRQonoDyiktU0zjQoH6m1CzH7cNCyRUhGpkQKFDLROph/LHjmhnbmsNqHnEDacS0ua7umyZ2bg9dpA37y8lDpq66/TxxxW9kiI5e5A33kXp7Yg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lJQa97U8fCuAP/uXruekBreFwPtbzuy9JqoPuZ3dpZQ=;
 b=QwxVp4kAsmq00Hnf9/vF2qrH23n+Lx40XsvD+S6ZNe0UORJHkrUZHUL4ba4U/7F/8jIqYWlROp5uDOP1I0afZQlDCqEdEHi+6mEruiZc8PkZ8gCLl7mg9nvE+G8jz1bljlv8tdVOqhEasN0vyYN7d8OiCyVBd6qi/lSNR/ATlhCwh5n2bbWY/TI+Q9ZMJzYSe1CLzOxxfhWIT4W3tv9DDX1G3m+Fw1Y8EIyyZPegXip6uAkYarYWviRO/hj3u7aKlfez3i1A8DHhEs81yGNWZzNWd/3M4Ng9M2M25yBKwuZsielWujwa5lbIuJ9pncmf/vEbSPVsGQgtBtYH2ET6Yg==
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=lJQa97U8fCuAP/uXruekBreFwPtbzuy9JqoPuZ3dpZQ=;
 b=d4zkzIJq8N03DggK5o8HlFDHOo7MI8+tEgmB3+kmOVwrIYNmWHACI6OSOcvirxUk/8M+xWy7i/XxmMEIaBUz4hSU7zZSXr6ZsziRa2wolbG+AKWtnvrypDg83XFS1/1djEe9xeDaNHQdnqqakCcyEW3q14KQtFG6OcyxWTW54cU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <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>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v4 07/24] xen/mem_sharing: make memory sharing depend on MGMT_HYPERCALLS
Date: Fri, 21 Nov 2025 18:57:44 +0800
Message-ID: <20251121105801.1251262-8-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SA2PEPF000015CC:EE_|CH3PR12MB8404:EE_
X-MS-Office365-Filtering-Correlation-Id: d0e54b4b-31a3-4dee-b37d-08de28ecf258
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?/99LccyDKjT7hDg1mNae94XqBonr2M/Tpg0A7VtQcaWeTmoGzEjG3KkT1ed7?=
 =?us-ascii?Q?AvHFDZ0PAojBZG2BgttZfxyIdNUKxRsWAX2gerHAzYpCjQEsjtx9tm6a/C2J?=
 =?us-ascii?Q?zxPwjAaT9Avt1DGJwbUy6z/+3d8yAm6/3wuTWHl+11K6XSIjz3UptnR2mqZo?=
 =?us-ascii?Q?rTieeyoiDXUceumXlA1F6lIM5Q7y3G9f0fZIglDdhi9X6MiWD/aMz6wOuydi?=
 =?us-ascii?Q?roxpNeoSCL8DNUzjDmDIdggRuh/WghJkCkK90IjpaNY1T0LaH5gV/COJtCJb?=
 =?us-ascii?Q?TC6CGyzKF7hDQj81Lbl5Q0Rpr9Y5sq7IQLHgA4cn9lFqRcwNHl/yeLje2gV7?=
 =?us-ascii?Q?wRSlS/tTGYouZUJ1j1ElFWKXfswE6iC1AhJZpO7BCv6Qz4zYZlf7rkYnHtLn?=
 =?us-ascii?Q?JlJJraOVIgyjaE6sCaE8yKNZLWaGudL9QAHei++UbXoGSPX7vM8IbSJLNLhX?=
 =?us-ascii?Q?PWi955xGDEgAnCcBNMsqU2zT5wRGW+zk7uT3VjSjnv1p25h/QHbh6PebW90L?=
 =?us-ascii?Q?8utsNe8xKa7RcjPuznznAQEu5DYXdknnDCfCPdNzd5XpcHzdARikgALei98N?=
 =?us-ascii?Q?yDJ++KYO2cVULTvfklyT8pEL/4mpF/0A193PdE+5DTmtP1T9b+jgdGxEJkdw?=
 =?us-ascii?Q?eRUSnUhnAU566npgXiBmcBwRzIpmLzLSM2G8yhcW2OB364z+BAfVPeKGHFve?=
 =?us-ascii?Q?m7v6jqeEaW6KIX14wcM/k8TGIqyrzbW2X9H4M5HJeRN6zYSng2bGQ8ycEKDa?=
 =?us-ascii?Q?SI9+lkuOAYiL0byn3oTkFarv4u9Wl5MkvcP6Z2nBANnQvz9uC/YQg4in7pS6?=
 =?us-ascii?Q?hT3rvv/CjtbXTlQ5/FITSgD4Zao2X4o8cAdo7XZEKMZQwWfPwTzEqVdGawcP?=
 =?us-ascii?Q?1qT12qhR8kV1UFXQt5RvZaDanI4C0HPMfL+zGLalZ4Bf7lI8DZCM/bnmv2lr?=
 =?us-ascii?Q?k6xzSotC+eHA+nat/u33XaWrx2MF6CT7qiHYvM9mppHFD8GZCQ2V5nvBE7fz?=
 =?us-ascii?Q?yZa0I9+uYD6kiGjdYLY5EgZxhyCLtpaK0rduliMUBzEZBsnB2K6l8y3LnwKQ?=
 =?us-ascii?Q?dfqKN/JtChwrO61eJDsPko8b4h1CL43DgYHaibTl2rjFYa1zDtBDQp8Beq2g?=
 =?us-ascii?Q?M9L5aPuepbEgZ25/SAgdWpwV7ss/pCk+migef/0LRhryC6gmKRb/8252IOuN?=
 =?us-ascii?Q?e4E87Pr+d8R7JbzdGUtvr6EAVZEGgI/YMSbb4qHi7MXUshagEbsYwvKMgmXx?=
 =?us-ascii?Q?tveoaNCtyInMdvi8nFTWpnektvO3FuJgn/YKuNE/KO647VKUVlRSDJjYynwu?=
 =?us-ascii?Q?2lLnDrWyMa0eu31Ban4evwwW23HMKQbVGS1o4NY1Bqp193zuEuOjLuy9m6Ii?=
 =?us-ascii?Q?8Yuoqf9Qt6YBQ7m2BVK8HnJYx7LqfnyCg4y5BIcWghOzAbn98W0Ozb6dVUBd?=
 =?us-ascii?Q?PH0jmeQmKJk3Lnxn5Gj75lJhGfTnqfijyx5JwmsHVT3FvgAN2G+WEaFgaOMO?=
 =?us-ascii?Q?d4PCnLf+VOSG3Nr8dheNCWq4HPYhhHgsy0vYm/Diy/IMXIeaSMmZiqqSknoD?=
 =?us-ascii?Q?D4kif4gLR4n0OpgvyFQ=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:58:47.5757
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d0e54b4b-31a3-4dee-b37d-08de28ecf258
X-MS-Exchange-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: CH3PR12MB8404

The enabling bit (d->arch.hvm.mem_sharing.enabled) for memory sharing could
only be enabled via domctl-op, so we shall make memory sharing feature
depend on MGMT_HYPERCALLS.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- new commit
---
 xen/arch/x86/hvm/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index 62dfb1b6f1..d540c0ebf3 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -81,5 +81,6 @@ config MEM_PAGING
 config MEM_SHARING
 	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
 	depends on INTEL_VMX
+	depends on MGMT_HYPERCALLS
 
 endif
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 10:59:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 10:59:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168593.1494617 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOqz-0001Vc-RG; Fri, 21 Nov 2025 10:59:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168593.1494617; Fri, 21 Nov 2025 10:59:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOqz-0001VN-Lm; Fri, 21 Nov 2025 10:59:01 +0000
Received: by outflank-mailman (input) for mailman id 1168593;
 Fri, 21 Nov 2025 10:59:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOqy-0008Dv-GV
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:59:00 +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 13b3aa70-c6c9-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 11:58:57 +0100 (CET)
Received: from PH8PR22CA0009.namprd22.prod.outlook.com (2603:10b6:510:2d1::25)
 by DS0PR12MB8416.namprd12.prod.outlook.com (2603:10b6:8:ff::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov
 2025 10:58:52 +0000
Received: from SA2PEPF000015C9.namprd03.prod.outlook.com
 (2603:10b6:510:2d1:cafe::b8) by PH8PR22CA0009.outlook.office365.com
 (2603:10b6:510:2d1::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.12 via Frontend Transport; Fri,
 21 Nov 2025 10:58:50 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF000015C9.mail.protection.outlook.com (10.167.241.199) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Fri, 21 Nov 2025 10:58:51 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:58: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: 13b3aa70-c6c9-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fnRs17zHX/kRzDu/wQ2cCk5wEKKuVkRDQ55ER7jp1WLUyWF/47vV5KWGaFUo62hMlYknloSOFTzWvvJ9B74917lZpx8M+PRWWZm0bu+POxOthesgvCQB3fdWxUMMyjr4tCV0h6q5Sdtau3oUwURWLWlUEjsv0WfbLjsKp9IEJMacNVT0Wm0wTY83hakGUHIJsI76aI9uxD29VLA8yrwpbKgnrk/7MD/nESidQvLxulACCIhVLNowJ3Pfmut+vHDF96H1H1a0WDxcA1Yqob0CwbTHUfwkCS+njVnXuYNyOnKRbSZFwvvdiOp4VoAXh6Uulpvrefs4tjnBG69NoitRcA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ltg8NEd19K9zNxJWI1ScsZ54nXB2wMydfRY2hEDjijY=;
 b=v3sSCvIjz5/uw6c5QRFCftgcXRAABP70QfwAv4OquHCKiTLLEx3zpXJXvcPcqhxxV0/Gb+ucaFgfXAp5TY2vQl9zk6q9tE0pd29Bm84TO0w8H8iSw0QST5KUKgRwgab6UEQ6xzDOezW1FWXlUhkb8yGzZE2FWtwJX0LgpWsIXwCOWU2F+bKLIfzKwJ9SyjHWuI1fYSmeisL7GYB2yDPkGoAUjOaLKy6UApX9l/BYJGjGKIbRdz3dQtOonA6QXmKH4G6Y3sD9r0ja18enfoxHHVcxg18svwM7PmGLigty29C5ng13p0yppCyl/sxHPzGjYBW9WSYEcZF4bORAfdc1VA==
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=ltg8NEd19K9zNxJWI1ScsZ54nXB2wMydfRY2hEDjijY=;
 b=gMzby3sZHYBfl7la3998BaxPf4ilakhfS3Wmt8AHkjw9tzBKs4MwpnWEsc/hp11FwoZbbI9qe1BHhGbegp8p916oMAZ0pDQcDN5U9rEyQH0Ja3ggVMwdIjOdcAhL9CWMXnuQ1S4UAHqPTcLaPsPAwcUa8eE7mSQY45qRPGmJ+nM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Michal
 Orzel" <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, "Connor
 Davis" <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v4 08/24] xen/domctl: wrap domain_kill() with CONFIG_MGMT_HYPERCALLS
Date: Fri, 21 Nov 2025 18:57:45 +0800
Message-ID: <20251121105801.1251262-9-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SA2PEPF000015C9:EE_|DS0PR12MB8416:EE_
X-MS-Office365-Filtering-Correlation-Id: 9d4d8650-655a-4907-0f4b-08de28ecf4f3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|36860700013|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?BdyO40/hMnyNxsSp2gzGDwjAV9UxeLM+oRVUNzSPV/npYwlq0Ke9NDHLfct2?=
 =?us-ascii?Q?dQGHhFAOokP6wEp3881rbZoXXIOAw36Y0XG7k4S0ClIzpONg1QQ+/Ad5WHvV?=
 =?us-ascii?Q?AbYISagU7SoJ+9x3CXjpkkeAJ5SP8weqEXvDNWLV21zbgAnnL74UtKkUfFPz?=
 =?us-ascii?Q?+jQvWhvvwaMhyoV0+xDDETyN2hXPt8zYi7KuFkpfAWbXml/tRg6jL9JKCpdP?=
 =?us-ascii?Q?t03iwiSxiCJJazHI3aos5avEofq+QKR7n3eWhSWEtaNtJRJMLga6G3GzuKMP?=
 =?us-ascii?Q?YvTcZHqUfoe0JsBNRFQuWmRv6KaEdnSZmShJT84GbXbJdRvb3eWWPTeQD74i?=
 =?us-ascii?Q?XIu95HS2ADuJmguQRDcaoefcgrcbacxEr5cACtaBJM3mwyTr/crIBBo5b7s7?=
 =?us-ascii?Q?2ElzUVW8Aspli5kEueepMLagNwi6/W9h2BPHCU6swBFYBUeTm89V5gTZziLy?=
 =?us-ascii?Q?tbY5rj+BCXik9O1q4grwNcpZ1SKbS9iCX0oVuA8KKyQ3COzC8CZdtxjHZml6?=
 =?us-ascii?Q?hNp8lyd7sX3ixHGly73BVczWyTyzL9QN4ATjiNaKUvSe712V20SAX6YrXNRH?=
 =?us-ascii?Q?IljL0ynhRuKwG+7EOJMlB144spF7hsuOIkUoCQBp2ukBUXUYXtnU+Daen3Hi?=
 =?us-ascii?Q?kzHUQ6l4dwA7cq5zi0AbhewlY+bHkYCdKHVp5/WCmfwqmGLFEhmthZ6KqXpO?=
 =?us-ascii?Q?YfBxYYHX6GOOJqs5CKhc2Rxaz1kvrW5azp85sWxjWz0a8U/3WIzVWgZoPZn5?=
 =?us-ascii?Q?5Q+iFwVMmYlkdsr1ZC2iSeJ/Kpbg5kkQNq59JkbT3SfPbaD3sgUQSpG1eyRq?=
 =?us-ascii?Q?AUZZ4W7X/ax/PRivBqukTqfyjLkt60xY7hXqbzsOm5nSSknidzb0LffY38TS?=
 =?us-ascii?Q?775BPwELxkPGCW+Ns9kf9sBcJAL08qUWKGRXGGDawqsSS7gEfgHfkj/VsT9u?=
 =?us-ascii?Q?h7Klrt5Y67g/NMmprLY7Wf+svvoCvi+rG2XB65YaTRV8NTaZ6bdHssFTrvXb?=
 =?us-ascii?Q?znnbVMx5NT5zs2XRB9tYFcdcpbQ3IDypU+Q4eY1YCE23eASdkM6CRDUTgvR3?=
 =?us-ascii?Q?JIEF2/79UgzSJbyAOWtSnXHtmNpAcBG/F7W4N8/IaieTpB6i/uGQ5rNH1ZLE?=
 =?us-ascii?Q?HJGMlJHA7kJE2ghzWsbN5Fc+DMOrQgc33wrbM7+fLOa+mkppnQ0yYt5InBse?=
 =?us-ascii?Q?B7z459i9jUwjGsUpZX/Ov+E5VezIYXVZ1fGuf2DSUnSTPhoflGjmryUbYf5/?=
 =?us-ascii?Q?cpl6K0mb+YEDITpgO71VWS6nWhC7pfkcHLaLxpgO+UglrZJbcj91ZB90NhNz?=
 =?us-ascii?Q?iRLTVhzHe6dAJNCI2C7TBWLfFmKYDM6Xvg/hTNDmbLR5TkQs+jTYE/SocFAe?=
 =?us-ascii?Q?r4tGFfznoiTbTmlLXpEAnzjExHRFITM+vhFbNN8ThMO9kgd5su1oYdRVvmMw?=
 =?us-ascii?Q?1VW0PqiFjY6rv42Z1OeVFI6s8yCgCXYKfXTv0/cuTFyGmRBYQ+oghQvv3//n?=
 =?us-ascii?Q?WCoeKLe5fHTEkQcwp72JXlRanDdLIXRfxnuDYOdNsMOfJwAZs0s7HIAJsZOA?=
 =?us-ascii?Q?/cLKChDlvnYwB2z3Ec0=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)(7416014)(376014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:58:51.9449
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9d4d8650-655a-4907-0f4b-08de28ecf4f3
X-MS-Exchange-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:
	SA2PEPF000015C9.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8416

Function domain_kill() is responsible for killing domain and relinquish
domain-held resources. and it is only invoked under
XEN_DOMCTL_destroydomain-case. So it shall be wrapped with
CONFIG_MGMT_HYPERCALLS.
Tracking its calling chain, the following functions could also be wrapped with
CONFIG_MGMT_HYPERCALLS:
- domain_relinquish_resource
  - pci_release_device
  - paging_teardown
    - p2m_pod_empty_cache
  - relinquish_memory
  - pit_deinit
  - iommu_release_dt_devices
  - tee_relinquish_resources
    - ffa_relinquish_resources/optee_relinquish_resources
  - relinquish_p2m_mapping
  - p2m_clear_root_pages
Otherwise all these functions will become unreachable codes when
MGMT_HYPERCALLS=n, and hence violating Misra rule 2.1.
The reason why {arch_}domain_teardown() is not wrapped is that it is also used
on the failure path of domain_create(). And the exclusion of
paging_final_teardown() is blocked by domain_destroy(), which will be
triggered when d->refcnt equals zero.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v1 -> v2:
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
- wrap XEN_DOMCTL_destroydomain-case transiently
---
v2 -> v3:
- add back stub wrapping in ppc/riscv
- address "violating Misra rule 2.1" in commit message
- remove transient wrapping around XEN_DOMCTL_destroydomain-case
---
v3 -> v4:
- remove diff in mem_sharing.c
- add description for some functions to aid review
---
 xen/arch/arm/domain.c                 | 3 +++
 xen/arch/arm/include/asm/tee/tee.h    | 2 ++
 xen/arch/arm/mmu/p2m.c                | 4 ++++
 xen/arch/arm/mpu/p2m.c                | 2 ++
 xen/arch/arm/tee/ffa.c                | 4 ++++
 xen/arch/arm/tee/optee.c              | 4 ++++
 xen/arch/arm/tee/tee.c                | 2 ++
 xen/arch/ppc/stubs.c                  | 2 ++
 xen/arch/riscv/stubs.c                | 2 ++
 xen/arch/x86/domain.c                 | 2 ++
 xen/arch/x86/emul-i8254.c             | 2 ++
 xen/arch/x86/mm/p2m-pod.c             | 2 ++
 xen/arch/x86/mm/p2m.c                 | 2 ++
 xen/arch/x86/mm/paging.c              | 2 ++
 xen/common/domain.c                   | 2 ++
 xen/drivers/passthrough/device_tree.c | 2 ++
 xen/drivers/passthrough/pci.c         | 2 ++
 17 files changed, 41 insertions(+)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index ab78444335..e1fa76e1e8 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -988,6 +988,7 @@ int arch_vcpu_reset(struct vcpu *v)
     return 0;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int relinquish_memory(struct domain *d, struct page_list_head *list)
 {
     struct page_info *page, *tmp;
@@ -1139,6 +1140,8 @@ int domain_relinquish_resources(struct domain *d)
 
 #undef PROGRESS
 
+#endif /* CONFIG_MGMT_HYPERCALLS */
+
 void arch_dump_domain_info(struct domain *d)
 {
     p2m_dump_info(d);
diff --git a/xen/arch/arm/include/asm/tee/tee.h b/xen/arch/arm/include/asm/tee/tee.h
index 15d664e28d..f4187c5dc3 100644
--- a/xen/arch/arm/include/asm/tee/tee.h
+++ b/xen/arch/arm/include/asm/tee/tee.h
@@ -40,12 +40,14 @@ struct tee_mediator_ops {
     int (*domain_teardown)(struct domain *d);
     void (*free_domain_ctx)(struct domain *d);
 
+#ifdef CONFIG_MGMT_HYPERCALLS
     /*
      * Called during domain destruction to relinquish resources used
      * by mediator itself. This function can return -ERESTART to indicate
      * that it does not finished work and should be called again.
      */
     int (*relinquish_resources)(struct domain *d);
+#endif
 
     /* Handle SMCCC call for current domain. */
     bool (*handle_call)(struct cpu_user_regs *regs);
diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
index 51abf3504f..30d6071e91 100644
--- a/xen/arch/arm/mmu/p2m.c
+++ b/xen/arch/arm/mmu/p2m.c
@@ -1243,6 +1243,7 @@ static void p2m_invalidate_table(struct p2m_domain *p2m, mfn_t mfn)
     p2m->need_flush = true;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 /*
  * The domain will not be scheduled anymore, so in theory we should
  * not need to flush the TLBs. Do it for safety purpose.
@@ -1262,6 +1263,7 @@ void p2m_clear_root_pages(struct p2m_domain *p2m)
 
     p2m_write_unlock(p2m);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /*
  * Invalidate all entries in the root page-tables. This is
@@ -1556,6 +1558,7 @@ int p2m_init(struct domain *d)
     return 0;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 /*
  * The function will go through the p2m and remove page reference when it
  * is required. The mapping will be removed from the p2m.
@@ -1626,6 +1629,7 @@ int relinquish_p2m_mapping(struct domain *d)
 
     return rc;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /*
  * Clean & invalidate RAM associated to the guest vCPU.
diff --git a/xen/arch/arm/mpu/p2m.c b/xen/arch/arm/mpu/p2m.c
index f7fb58ab6a..c44297a9e3 100644
--- a/xen/arch/arm/mpu/p2m.c
+++ b/xen/arch/arm/mpu/p2m.c
@@ -57,10 +57,12 @@ bool p2m_resolve_translation_fault(struct domain *d, gfn_t gfn)
 
 void p2m_flush_vm(struct vcpu *v) {}
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int relinquish_p2m_mapping(struct domain *d)
 {
     return 0;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 void p2m_domain_creation_finished(struct domain *d) {}
 
diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 1d0239cf69..f9ba9b60bf 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -469,10 +469,12 @@ static void ffa_free_domain_ctx(struct domain *d)
     XFREE(d->arch.tee);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int ffa_relinquish_resources(struct domain *d)
 {
     return 0;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static void ffa_init_secondary(void)
 {
@@ -623,7 +625,9 @@ static const struct tee_mediator_ops ffa_ops =
     .domain_init = ffa_domain_init,
     .domain_teardown = ffa_domain_teardown,
     .free_domain_ctx = ffa_free_domain_ctx,
+#ifdef CONFIG_MGMT_HYPERCALLS
     .relinquish_resources = ffa_relinquish_resources,
+#endif
     .handle_call = ffa_handle_call,
 };
 
diff --git a/xen/arch/arm/tee/optee.c b/xen/arch/arm/tee/optee.c
index 5151bd90ed..1ed0fd231d 100644
--- a/xen/arch/arm/tee/optee.c
+++ b/xen/arch/arm/tee/optee.c
@@ -632,6 +632,7 @@ static void free_optee_shm_buf_pg_list(struct optee_domain *ctx,
                  cookie);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int optee_relinquish_resources(struct domain *d)
 {
     struct arm_smccc_res resp;
@@ -693,6 +694,7 @@ static int optee_relinquish_resources(struct domain *d)
 
     return 0;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 #define PAGELIST_ENTRIES_PER_PAGE                       \
     ((OPTEE_MSG_NONCONTIG_PAGE_SIZE / sizeof(u64)) - 1)
@@ -1727,7 +1729,9 @@ static const struct tee_mediator_ops optee_ops =
     .probe = optee_probe,
     .domain_init = optee_domain_init,
     .domain_teardown = optee_domain_teardown,
+#ifdef CONFIG_MGMT_HYPERCALLS
     .relinquish_resources = optee_relinquish_resources,
+#endif
     .handle_call = optee_handle_call,
 };
 
diff --git a/xen/arch/arm/tee/tee.c b/xen/arch/arm/tee/tee.c
index 8501443c8e..a8e160700f 100644
--- a/xen/arch/arm/tee/tee.c
+++ b/xen/arch/arm/tee/tee.c
@@ -65,6 +65,7 @@ int tee_domain_teardown(struct domain *d)
     return cur_mediator->ops->domain_teardown(d);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int tee_relinquish_resources(struct domain *d)
 {
     if ( !cur_mediator )
@@ -72,6 +73,7 @@ int tee_relinquish_resources(struct domain *d)
 
     return cur_mediator->ops->relinquish_resources(d);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 uint16_t tee_get_type(void)
 {
diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index 75ebcae5e2..e70e1a12cb 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -234,10 +234,12 @@ int arch_vcpu_reset(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int domain_relinquish_resources(struct domain *d)
 {
     BUG_ON("unimplemented");
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 void arch_dump_domain_info(struct domain *d)
 {
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 37b4346d3f..42bac26aa7 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -208,10 +208,12 @@ int arch_vcpu_reset(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int domain_relinquish_resources(struct domain *d)
 {
     BUG_ON("unimplemented");
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 void arch_dump_domain_info(struct domain *d)
 {
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 3a21e035f4..fff5cf7238 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -2305,6 +2305,7 @@ void sync_vcpu_execstate(struct vcpu *v)
            read_atomic(&v->dirty_cpu) != dirty_cpu);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int relinquish_memory(
     struct domain *d, struct page_list_head *list, unsigned long type)
 {
@@ -2629,6 +2630,7 @@ int domain_relinquish_resources(struct domain *d)
 
     return 0;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 void arch_dump_domain_info(struct domain *d)
 {
diff --git a/xen/arch/x86/emul-i8254.c b/xen/arch/x86/emul-i8254.c
index 144aa168a3..f106ab794c 100644
--- a/xen/arch/x86/emul-i8254.c
+++ b/xen/arch/x86/emul-i8254.c
@@ -651,6 +651,7 @@ void pit_init(struct domain *d)
     pit_reset(d);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 void pit_deinit(struct domain *d)
 {
     PITState *pit = domain_vpit(d);
@@ -664,6 +665,7 @@ void pit_deinit(struct domain *d)
         destroy_periodic_time(&pit->pt0);
     }
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /*
  * Local variables:
diff --git a/xen/arch/x86/mm/p2m-pod.c b/xen/arch/x86/mm/p2m-pod.c
index 05633fe2ac..4e915808f4 100644
--- a/xen/arch/x86/mm/p2m-pod.c
+++ b/xen/arch/x86/mm/p2m-pod.c
@@ -366,6 +366,7 @@ void p2m_pod_get_mem_target(const struct domain *d, xen_pod_target_t *target)
     pod_unlock(p2m);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int p2m_pod_empty_cache(struct domain *d)
 {
     struct p2m_domain *p2m = p2m_get_hostp2m(d);
@@ -409,6 +410,7 @@ int p2m_pod_empty_cache(struct domain *d)
     unlock_page_alloc(p2m);
     return p2m->pod.count ? -ERESTART : 0;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 int
 p2m_pod_offline_or_broken_hit(struct page_info *p)
diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c
index 2763f9a6be..a5db8e6d4a 100644
--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
@@ -2097,6 +2097,7 @@ int xenmem_add_to_physmap_one(
     return rc;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 /*
  * Remove foreign mappings from the p2m, as that drops the page reference taken
  * when mapped.
@@ -2160,6 +2161,7 @@ int relinquish_p2m_mapping(struct domain *d)
 
     return rc;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 void p2m_log_dirty_range(struct domain *d, unsigned long begin_pfn,
                          unsigned long nr, uint8_t *dirty_bitmap)
diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
index 65455a6867..116389d4e9 100644
--- a/xen/arch/x86/mm/paging.c
+++ b/xen/arch/x86/mm/paging.c
@@ -768,6 +768,7 @@ void paging_vcpu_teardown(struct vcpu *v)
         shadow_vcpu_teardown(v);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 /* Call when destroying a domain */
 int paging_teardown(struct domain *d)
 {
@@ -794,6 +795,7 @@ int paging_teardown(struct domain *d)
 
     return rc;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /* Call once all of the references to the domain have gone away */
 void paging_final_teardown(struct domain *d)
diff --git a/xen/common/domain.c b/xen/common/domain.c
index c6b0f931dc..e8a5c30557 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1211,6 +1211,7 @@ int rcu_lock_live_remote_domain_by_id(domid_t dom, struct domain **d)
     return 0;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int domain_kill(struct domain *d)
 {
     int rc = 0;
@@ -1261,6 +1262,7 @@ int domain_kill(struct domain *d)
 
     return rc;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 
 void __domain_crash(struct domain *d)
diff --git a/xen/drivers/passthrough/device_tree.c b/xen/drivers/passthrough/device_tree.c
index f5850a2607..015ffa15d4 100644
--- a/xen/drivers/passthrough/device_tree.c
+++ b/xen/drivers/passthrough/device_tree.c
@@ -108,6 +108,7 @@ int iommu_dt_domain_init(struct domain *d)
     return 0;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int iommu_release_dt_devices(struct domain *d)
 {
     const struct domain_iommu *hd = dom_iommu(d);
@@ -136,6 +137,7 @@ int iommu_release_dt_devices(struct domain *d)
 
     return 0;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static int iommu_dt_xlate(struct device *dev,
                           const struct dt_phandle_args *iommu_spec,
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 52c22fa50c..422e45f5a6 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -946,6 +946,7 @@ static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
     return ret;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int pci_release_devices(struct domain *d)
 {
     int combined_ret;
@@ -1004,6 +1005,7 @@ int pci_release_devices(struct domain *d)
 
     return combined_ret;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 #define PCI_CLASS_BRIDGE_HOST    0x0600
 #define PCI_CLASS_BRIDGE_PCI     0x0604
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 10:59:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 10:59:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168606.1494627 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOr7-0002Kf-Bj; Fri, 21 Nov 2025 10:59:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168606.1494627; Fri, 21 Nov 2025 10: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 1vMOr7-0002Jb-6U; Fri, 21 Nov 2025 10:59:09 +0000
Received: by outflank-mailman (input) for mailman id 1168606;
 Fri, 21 Nov 2025 10:59: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOr5-0008Dv-Cg
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:59:07 +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 187aa613-c6c9-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 11:59:05 +0100 (CET)
Received: from CH2PR14CA0014.namprd14.prod.outlook.com (2603:10b6:610:60::24)
 by MW4PR12MB7142.namprd12.prod.outlook.com (2603:10b6:303:220::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov
 2025 10:58:58 +0000
Received: from CH3PEPF00000014.namprd21.prod.outlook.com
 (2603:10b6:610:60:cafe::da) by CH2PR14CA0014.outlook.office365.com
 (2603:10b6:610:60::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.11 via Frontend Transport; Fri,
 21 Nov 2025 10:58:53 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF00000014.mail.protection.outlook.com (10.167.244.119) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.1 via Frontend Transport; Fri, 21 Nov 2025 10:58:57 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:58:53 -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: 187aa613-c6c9-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ft9+9JuvplachEXk7C7SqGSu9flEKZXtRKKYz0MNR8FnssZkrw02oobYXT1g9JZ63F5OPOFjgzhWA8XfGLRV6aGE4ppjRwvez/eyDshn+B6i+CfetoCj/vLwonbpeXUBDpitSVMdC2gBKYjyg5qOLTDKBqCO/7yP9uLMTK7uldv+UCdn9tucVrH62YljdhyIMfgjTJX7Oz/av3g8JzHMzzGiN5yka6xgtsjcggU7FBCpbnNWmOmrOEnsrTJn8QrrCYmHayK2uNr3aWxutb8VPWyIGXRT3WfByLxDEz+96znrEDijbI9ziuubzVXVRNJMZLBcM9wIceiSGz6YhrVAag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1SGeGKilNkPW5Ffxzg5kKaE0E0FbCgqcHjey+FbgZYY=;
 b=kA55KhXFhZFPKI3qaZAo0/feqyoB4Go/ERj4A1CqzJdSRuLTwXKxn+T69SJf3phXQl6lLUhUw/2TGZ4aMS5o3LVI2I+Aqg7/FNyKSOeAqkZIoF43zqFAl4CNBJ1gNq35esfDD6WoipJDHz3DboiguCzaAXMFHG10DEc3OVtxtGsUw+AEl3fdmmXDnmPW4SLCzSeJjtcuEyzlrS2BJqVYjC4Ra83uwOxTza3qZ+85tqsh5fWBNA+sTHadouxNQCCLqtgy7/x+7qjktvvNkh5iBTt4q6rUTD9G+e9o0eSJOdqrbTKsb/dRkXacq0ujB4I4/IzdtYaV+ymcF9E2TDlm9g==
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=1SGeGKilNkPW5Ffxzg5kKaE0E0FbCgqcHjey+FbgZYY=;
 b=mSCgesVEyMBg/bkHQy6J+Xm2NDl4VBM0qGmOakGA4F6ZPWm7iCPwKoHQEk6ryrPTunH49JVkVFQMuI2z0Jdw+8cbt41/gAC8l9XRvuc15tL3zYe/Bx2lBZLYRhlsnANAfIP13AKhE5MEG3wjSrMSYdjyhvAtNCqtOBCSy0OKc6Y=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>, <xen-devel@dornerworks.com>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Nathan Studer <nathan.studer@dornerworks.com>,
	"Stewart Hildebrand" <stewart@stew.dk>, Dario Faggioli <dfaggioli@suse.com>,
	"Juergen Gross" <jgross@suse.com>, George Dunlap <gwd@xenproject.org>, Meng
 Xu <mengxu@cis.upenn.edu>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 10/24] xen/domctl: wrap sched_adjust() with CONFIG_MGMT_HYPERCALLS
Date: Fri, 21 Nov 2025 18:57:47 +0800
Message-ID: <20251121105801.1251262-11-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH3PEPF00000014:EE_|MW4PR12MB7142:EE_
X-MS-Office365-Filtering-Correlation-Id: bb10e3ad-1f2a-4dbd-cb37-08de28ecf818
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|7416014|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?pjh4VyIiI/vYMBC9HL13AGiMOWyclR1JlNBG6lzn4snbN/c6rDBaZZIdTMsn?=
 =?us-ascii?Q?D9tTQxCCJ6fpSRsthf9iDKrI5XAHCEvtsHxTWLgBEKp9utFW5uf2tIUySc8p?=
 =?us-ascii?Q?4G12oDI4KCwDs7JpHOj8yM1ruk9pl/1x5IHawOMECs23Y+cVoCdYh6Z8Iakd?=
 =?us-ascii?Q?HMc5z0vbmV+Y/Cu794ChoxhK1JSq0xAFcSvF86fnkxEbmqMnluLUoRUK4wmZ?=
 =?us-ascii?Q?pmfm4ye8q7q7v6KbI9MCiQ75KTJJ4JrAKA2yHp5lVZdS738SzbHZwvCVPu8A?=
 =?us-ascii?Q?ZEM3+8FdEdDDejNXIHe03wG+ZpUdTEqjtMJ+xyZyEFSP4ePsehvVnK1NGugv?=
 =?us-ascii?Q?uR8PD1ODoEOmFMYP2MmJReM0nraxnUNNKljhuLMTew2F/3vfN9cxoEbHkNFv?=
 =?us-ascii?Q?nOWmvG7SVqISiKthvTYpxTd+qZG3MtfQWu3K2Tyw3Wvk+285FbT5RQLsYS5F?=
 =?us-ascii?Q?m8PnLVLG1YEilGYFF5rOE5sK5ApXenOVe3uRDTz/CQ7KlO9einBlEf3kEL12?=
 =?us-ascii?Q?W29ahcRaFmD2m9WBTL5Nd95KVwJCJiGBRpdVubJI0Q8OL3/lwWNBPoUn6XMc?=
 =?us-ascii?Q?ISBHN68yuqnzNwAwPtlpWzQIkwoCPpwbxFr0ucg0899B4b7gz7K9SwJQRahk?=
 =?us-ascii?Q?CzM6H/mbsg54LQ1p7HB3s5/AZTn6Ko8kGDlSLGYyl5+C6D0eK1s2wZmJa6Vr?=
 =?us-ascii?Q?t6FbhkgLflpG5YjG8Ycbn4zA1HbE6F72UclWtbCyFbWxcA3S9e6eXSczy/RI?=
 =?us-ascii?Q?FXU84le7rIVGzwPry+hwE+9gKvovnb5C/CmUv9PrF4Jyh1lGfx0R00vZE29t?=
 =?us-ascii?Q?WOPJx2lt8h5+cWbP+R1tydqUV4VstSvvaC+HsPfkEm8Maza+xIUBi2Of17vq?=
 =?us-ascii?Q?/awwVr8wQkcfUOWmzS3fYyxqDgrIy1L28YSpcAs9i15UdqpytVsnG9MfJW5w?=
 =?us-ascii?Q?tMoAxeHagWjIsTpGBW0cVBp9ou3B9hHLSyTfhGapCRc4WOKyZKya9hyLiG4D?=
 =?us-ascii?Q?zrmERBJNXnjXTdB3YQNKw0cSZZg9VVPC9QHrFDYPMBafbxgW7IM68aH2+cep?=
 =?us-ascii?Q?h5DREVLo1I3xMoNMXrMhbWC6qNTwHfIr7XCfjVIEQqv5UHQ3GFJeKBY9dGoJ?=
 =?us-ascii?Q?hNHE/5cNLzBd3lxtPGGCoVh9PH8wCGFp3zB8bom4Khxv4ciZH22Qr4hr1Rle?=
 =?us-ascii?Q?ZXxK+TA8QhF8Dnsoyxg8zJn8yII20NZX5+rF4yA1uX6RJHxlvCzEgKFLa6u4?=
 =?us-ascii?Q?ru3RGfv8mdO3EmjDyj8b8AnX+P9mJLUyIhp1aOir/m8o0p6ykli5SOZBg3wM?=
 =?us-ascii?Q?8ha+ynOBx83oFzyHP/ZBYdjX2ti0s45sW4hFe1uvYlnrxBQwOqd2c2yXQv/3?=
 =?us-ascii?Q?GEVPwNgz9eGHhIXeTdOORy2HlhFJO3JmekU1/Srrut3SQApVmAOFOB+MK9NX?=
 =?us-ascii?Q?uo+OFaXQS5j3+pva0SU2FvN69JGF++5X6UkqEcFHzzEyqyYOz/GAIrl6wn1J?=
 =?us-ascii?Q?iVGEsJ7tmnHzmTdoCwDxpHBzNkFTB+5CzMyZsHeeXKklKbkEjoyjZACYO0Au?=
 =?us-ascii?Q?pyOZ5CQvrVoPFOI+knU=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)(7416014)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:58:57.2429
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bb10e3ad-1f2a-4dbd-cb37-08de28ecf818
X-MS-Exchange-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:
	CH3PEPF00000014.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7142

Function sched_adjust() is responsible for XEN_DOMCTL_scheduler_op domctl-op,
so it could be wrapped with CONFIG_MGMT_HYPERCALLS.
Tracing its calling chain, the following functions shall be wrapped with
CONFIG_MGMT_HYPERCALLS too:
- sched_adjust_dom()
- scheduler-specific .adjust() callback
- xsm_sysctl_scheduler_op()
Otherwise all these functions will become unreachable when MGMT_HYPERCALLS=n,
and hence violating Misra rule 2.1.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Reviewed-by: Juergen Gross <jgross@suse.com>
---
v1 -> v2:
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
- wrap XEN_DOMCTL_scheduler_op-case transiently
---
v2 -> v3
- add missing wrapping in xsm/dummy.h
- move and get away with just a single #ifdef
- address "violating Misra rule 2.1" in commit message
- remove transient wrapping around XEN_DOMCTL_scheduler_op-case
---
 xen/common/sched/arinc653.c | 1 -
 xen/common/sched/core.c     | 2 --
 xen/common/sched/credit.c   | 4 +++-
 xen/common/sched/credit2.c  | 4 +++-
 xen/common/sched/private.h  | 8 ++++----
 xen/common/sched/rt.c       | 4 ++++
 xen/include/xsm/dummy.h     | 2 ++
 xen/include/xsm/xsm.h       | 4 ++--
 xen/xsm/dummy.c             | 2 +-
 xen/xsm/flask/hooks.c       | 4 ++--
 10 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/xen/common/sched/arinc653.c b/xen/common/sched/arinc653.c
index 7d6c40d800..5a6f8c8642 100644
--- a/xen/common/sched/arinc653.c
+++ b/xen/common/sched/arinc653.c
@@ -735,7 +735,6 @@ static const struct scheduler sched_arinc653_def = {
 
     .switch_sched   = a653_switch_sched,
 
-    .adjust         = NULL,
 #ifdef CONFIG_MGMT_HYPERCALLS
     .adjust_global  = a653sched_adjust_global,
 #endif
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 83e34e7c05..0943cb1e97 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -2072,7 +2072,6 @@ int scheduler_id(void)
 {
     return operations.sched_id;
 }
-#endif
 
 /* Adjust scheduling parameter for a given domain. */
 long sched_adjust(struct domain *d, struct xen_domctl_scheduler_op *op)
@@ -2109,7 +2108,6 @@ long sched_adjust(struct domain *d, struct xen_domctl_scheduler_op *op)
     return ret;
 }
 
-#ifdef CONFIG_MGMT_HYPERCALLS
 long sched_adjust_global(struct xen_sysctl_scheduler_op *op)
 {
     struct cpupool *pool;
diff --git a/xen/common/sched/credit.c b/xen/common/sched/credit.c
index 0cbec2a9c0..ed3241bec8 100644
--- a/xen/common/sched/credit.c
+++ b/xen/common/sched/credit.c
@@ -1183,6 +1183,7 @@ csched_unit_yield(const struct scheduler *ops, struct sched_unit *unit)
     set_bit(CSCHED_FLAG_UNIT_YIELD, &svc->flags);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check
 csched_dom_cntl(
     const struct scheduler *ops,
@@ -1227,6 +1228,7 @@ csched_dom_cntl(
 
     return rc;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static void cf_check
 csched_aff_cntl(const struct scheduler *ops, struct sched_unit *unit,
@@ -2288,9 +2290,9 @@ static const struct scheduler sched_credit_def = {
     .wake           = csched_unit_wake,
     .yield          = csched_unit_yield,
 
-    .adjust         = csched_dom_cntl,
     .adjust_affinity= csched_aff_cntl,
 #ifdef CONFIG_MGMT_HYPERCALLS
+    .adjust         = csched_dom_cntl,
     .adjust_global  = csched_sys_cntl,
 #endif
 
diff --git a/xen/common/sched/credit2.c b/xen/common/sched/credit2.c
index 307e63ebd8..b73dd3c548 100644
--- a/xen/common/sched/credit2.c
+++ b/xen/common/sched/credit2.c
@@ -2909,6 +2909,7 @@ static void cf_check csched2_unit_migrate(
         sched_set_res(unit, get_sched_res(new_cpu));
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check
 csched2_dom_cntl(
     const struct scheduler *ops,
@@ -3114,6 +3115,7 @@ csched2_dom_cntl(
 
     return rc;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static void cf_check
 csched2_aff_cntl(const struct scheduler *ops, struct sched_unit *unit,
@@ -4246,9 +4248,9 @@ static const struct scheduler sched_credit2_def = {
     .wake           = csched2_unit_wake,
     .yield          = csched2_unit_yield,
 
-    .adjust         = csched2_dom_cntl,
     .adjust_affinity= csched2_aff_cntl,
 #ifdef CONFIG_MGMT_HYPERCALLS
+    .adjust         = csched2_dom_cntl,
     .adjust_global  = csched2_sys_cntl,
 #endif
 
diff --git a/xen/common/sched/private.h b/xen/common/sched/private.h
index b7ff67200b..3b35002c5d 100644
--- a/xen/common/sched/private.h
+++ b/xen/common/sched/private.h
@@ -349,14 +349,14 @@ struct scheduler {
     void         (*migrate)        (const struct scheduler *ops,
                                     struct sched_unit *unit,
                                     unsigned int new_cpu);
-    int          (*adjust)         (const struct scheduler *ops,
-                                    struct domain *d,
-                                    struct xen_domctl_scheduler_op *op);
     void         (*adjust_affinity)(const struct scheduler *ops,
                                     struct sched_unit *unit,
                                     const struct cpumask *hard,
                                     const struct cpumask *soft);
 #ifdef CONFIG_MGMT_HYPERCALLS
+    int          (*adjust)         (const struct scheduler *ops,
+                                    struct domain *d,
+                                    struct xen_domctl_scheduler_op *op);
     int          (*adjust_global)  (const struct scheduler *ops,
                                     struct xen_sysctl_scheduler_op *sc);
 #endif
@@ -506,13 +506,13 @@ static inline void sched_adjust_affinity(const struct scheduler *s,
         s->adjust_affinity(s, unit, hard, soft);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int sched_adjust_dom(const struct scheduler *s, struct domain *d,
                                    struct xen_domctl_scheduler_op *op)
 {
     return s->adjust ? s->adjust(s, d, op) : 0;
 }
 
-#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int sched_adjust_cpupool(const struct scheduler *s,
                                        struct xen_sysctl_scheduler_op *op)
 {
diff --git a/xen/common/sched/rt.c b/xen/common/sched/rt.c
index 7b1f64a779..a42040b259 100644
--- a/xen/common/sched/rt.c
+++ b/xen/common/sched/rt.c
@@ -1362,6 +1362,7 @@ out:
     unit_schedule_unlock_irq(lock, unit);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 /*
  * set/get each unit info of each domain
  */
@@ -1471,6 +1472,7 @@ rt_dom_cntl(
 
     return rc;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /*
  * The replenishment timer handler picks units
@@ -1572,7 +1574,9 @@ static const struct scheduler sched_rtds_def = {
     .insert_unit    = rt_unit_insert,
     .remove_unit    = rt_unit_remove,
 
+#ifdef CONFIG_MGMT_HYPERCALLS
     .adjust         = rt_dom_cntl,
+#endif
 
     .pick_resource  = rt_res_pick,
     .do_schedule    = rt_schedule,
diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index 9b1d31b6ec..5810a18087 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -141,12 +141,14 @@ static XSM_INLINE int cf_check xsm_getdomaininfo(
     return xsm_default_action(action, current->domain, d);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static XSM_INLINE int cf_check xsm_domctl_scheduler_op(
     XSM_DEFAULT_ARG struct domain *d, int cmd)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 #ifdef CONFIG_MGMT_HYPERCALLS
 static XSM_INLINE int cf_check xsm_sysctl_scheduler_op(XSM_DEFAULT_ARG int cmd)
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 4c6e0dc0f9..9dd485646a 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -56,8 +56,8 @@ struct xsm_ops {
                                 struct xen_domctl_getdomaininfo *info);
     int (*domain_create)(struct domain *d, uint32_t ssidref);
     int (*getdomaininfo)(struct domain *d);
-    int (*domctl_scheduler_op)(struct domain *d, int op);
 #ifdef CONFIG_MGMT_HYPERCALLS
+    int (*domctl_scheduler_op)(struct domain *d, int op);
     int (*sysctl_scheduler_op)(int op);
 #endif
     int (*set_target)(struct domain *d, struct domain *e);
@@ -240,13 +240,13 @@ static inline int xsm_get_domain_state(xsm_default_t def, struct domain *d)
     return alternative_call(xsm_ops.get_domain_state, d);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int xsm_domctl_scheduler_op(
     xsm_default_t def, struct domain *d, int cmd)
 {
     return alternative_call(xsm_ops.domctl_scheduler_op, d, cmd);
 }
 
-#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int xsm_sysctl_scheduler_op(xsm_default_t def, int cmd)
 {
     return alternative_call(xsm_ops.sysctl_scheduler_op, cmd);
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index dbe363f0de..724b2a2653 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -18,8 +18,8 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .security_domaininfo           = xsm_security_domaininfo,
     .domain_create                 = xsm_domain_create,
     .getdomaininfo                 = xsm_getdomaininfo,
-    .domctl_scheduler_op           = xsm_domctl_scheduler_op,
 #ifdef CONFIG_MGMT_HYPERCALLS
+    .domctl_scheduler_op           = xsm_domctl_scheduler_op,
     .sysctl_scheduler_op           = xsm_sysctl_scheduler_op,
 #endif
     .set_target                    = xsm_set_target,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index d0fd057db5..839a4cf9e6 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -609,6 +609,7 @@ static int cf_check flask_getdomaininfo(struct domain *d)
     return current_has_perm(d, SECCLASS_DOMAIN, DOMAIN__GETDOMAININFO);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check flask_domctl_scheduler_op(struct domain *d, int op)
 {
     switch ( op )
@@ -626,7 +627,6 @@ static int cf_check flask_domctl_scheduler_op(struct domain *d, int op)
     }
 }
 
-#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check flask_sysctl_scheduler_op(int op)
 {
     switch ( op )
@@ -1883,8 +1883,8 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .security_domaininfo = flask_security_domaininfo,
     .domain_create = flask_domain_create,
     .getdomaininfo = flask_getdomaininfo,
-    .domctl_scheduler_op = flask_domctl_scheduler_op,
 #ifdef CONFIG_MGMT_HYPERCALLS
+    .domctl_scheduler_op = flask_domctl_scheduler_op,
     .sysctl_scheduler_op = flask_sysctl_scheduler_op,
 #endif
     .set_target = flask_set_target,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 11:01:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 11:01:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168650.1494641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtM-0005JD-0V; Fri, 21 Nov 2025 11:01:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168650.1494641; Fri, 21 Nov 2025 11:01: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 1vMOtL-0005Ik-Rh; Fri, 21 Nov 2025 11:01:27 +0000
Received: by outflank-mailman (input) for mailman id 1168650;
 Fri, 21 Nov 2025 11: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOr8-0008Dv-Ue
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:59:10 +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 1a18df56-c6c9-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 11:59:08 +0100 (CET)
Received: from CH2PR05CA0060.namprd05.prod.outlook.com (2603:10b6:610:38::37)
 by BY5PR12MB4068.namprd12.prod.outlook.com (2603:10b6:a03:203::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Fri, 21 Nov
 2025 10:59:00 +0000
Received: from CH3PEPF00000013.namprd21.prod.outlook.com
 (2603:10b6:610:38:cafe::95) by CH2PR05CA0060.outlook.office365.com
 (2603:10b6:610:38::37) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.4 via Frontend Transport; Fri,
 21 Nov 2025 10:59:00 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF00000013.mail.protection.outlook.com (10.167.244.118) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.1 via Frontend Transport; Fri, 21 Nov 2025 10:58:59 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:58:57 -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: 1a18df56-c6c9-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=g6Ya6gqkbROa3OowkVc9Uc8fAqW3wRooUNxeWtLbOj9JJwAlT2gbJ3pr+U4guVJyNK3qLIgRfUdk/+oWXaY/yficpRBI/VGv5qLxM/BpfwR5L1qU8sdcl2FJWqbr2Zr9sQ7l6zG+gD2HPJmD1/+jJfogZ/lRq+61oN09FCKBw/4Xkv94fRmF88Mh60gZUJl+bXFRZUlCvRKK/tVgeErQwMg8ZnhSHmQCsYt6ha4NgGRVOz8cTbsfIl79zSWDJHEEOmikaqZvKUcHIXM/Xc3/TrfJagE+GEygAnQiTdOxy0fgnYrDVNEnaZ70J2ArIC5cqhlPuv6WeGm6wGTaYaPmJQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=S9x7Xa5KkUvXjjgvJRgz/0aHtQ5ZefYKpd00CZcZ/TA=;
 b=emEPVFs4W8TvfJeMQ9ww54/vz6nOs8p/xSZ5b1cx5ggA0V0i4tJwc+F8zDy+XLKZXrdttUBqd/VhLZUZOm1oIJbj9TMldnCu/aVqKTEJsnlfu6Qb47QrgBzfxkcVU2XDQrUMTAEHTt4iPV+rphN0z1+m+C7zUqY3QbydobV/iNsOeU4YdT+VGELMUTTRTKjSQWnuIt5XkZtupJRxsL0PLL8aqkDPom2K+CwylYBfHRTAwktcHYdmr/395VRdNp0A50yCeB/L1laVbMgqPPo47kN/NWuqcoSBKjqYFhyZ7I9VV6X81QEBNrabXhtp7h3XaGYxAkRa53R9JOscuCzUjg==
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=S9x7Xa5KkUvXjjgvJRgz/0aHtQ5ZefYKpd00CZcZ/TA=;
 b=Pa6QS+yiDRFBx/RIkAXXL1oMXAVaJqvThezPf7xt3nZSVszhhy7cJ4G4sDYdJDL1Gen0nAYP2SzuQhBzHCDPk3/MG7c1l/nFA8LFJi4oawHOVtj2YAiofh61qQ//827elzlx83809hWezD0I340D0HaVkvVadRvXdPZN10rePiQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v4 11/24] xen/domctl: wrap xsm_irq_permission with CONFIG_MGMT_HYPERCALLS
Date: Fri, 21 Nov 2025 18:57:48 +0800
Message-ID: <20251121105801.1251262-12-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH3PEPF00000013:EE_|BY5PR12MB4068:EE_
X-MS-Office365-Filtering-Correlation-Id: 5540983f-01b0-4517-43d2-08de28ecf9ba
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?fCIE6AuomiK/6XF/ME93ynVGvwinL5LurQwuR/JKZJFgr5LUp6ZhKIDWBXBC?=
 =?us-ascii?Q?j11jN8FdZWMc3DTmTSffaUSoA5GuGAh5ayJX6Wpl6lpvDaBwc+dMw+7zgRA3?=
 =?us-ascii?Q?6kEIFyI0510r3A93rF4bnfSLAD0gjq7To8W11GB31X5DORfGNBJEib9k/Wgj?=
 =?us-ascii?Q?nQz4YtsHeGFvbwywnKZ2KTnGoEWghmkWwUtxPO9ztrVA21++WzzffMdPhatl?=
 =?us-ascii?Q?TGSA9nf7OEIHihO9YPZGvx05h82LZMRhDJvI1p9G3PMs93Mmj6/imUBmY7Eb?=
 =?us-ascii?Q?aqNCI4wKycXKcUVmEaBfMFtEL38ZpKqVSTLui4bb6aRx9uQgVFONhiVjFDqu?=
 =?us-ascii?Q?u4uqbJBmoZ/8Wnk5wErWhUQGjqX7m9lOQ74+/fS7r0i1H6nfiJIzHWT8Bteo?=
 =?us-ascii?Q?uQk3gPpLKU2REjzjfP+Mw0D79HxRo9FndaTB+nNjhTlYIe/6nxH9uZqxCkka?=
 =?us-ascii?Q?yV3ryHxkMFjYLg+agZqmKRU02UnW94u59xu08qKVvLt1g3fL0cGlyOA2TgqR?=
 =?us-ascii?Q?pcEf2x3fitTWjqF46k8gI5h7vkKFERtD5B/desvaJG7CwW/zAI7N2HoLW9wH?=
 =?us-ascii?Q?0PrU+5tyTzbRmwyd2cIoOci13ABUB8nU5bw4CpXLg4pcjFrPjkWcpIXbeqsL?=
 =?us-ascii?Q?r6KY+wzFNdcQyfWCGpcWaFD/2f2y8paypmQI37IJdQ0nf6T8KrYMkp68Rp5m?=
 =?us-ascii?Q?7SspG31hNcQCwT8LOYdyzVwkcbuQXdBqm/HIGtCs6ICMuPMgjzJPVPzUooO9?=
 =?us-ascii?Q?ZdCiReyP+wVb+MruXzJ9wK2074iJ2v54zXfUNzDQxpEoHuxg7zLPZjs3g8dk?=
 =?us-ascii?Q?9Tk8w/ov8QrwDB8pN/HpzLhTvvPOFCA2kC+FFdiw58hnDT6F9sCRzB7DhEWD?=
 =?us-ascii?Q?dcdm5axL5Tt+qUEQqA4ofdhGkvBdv5q7c8yMg2vKt1TF+aC/HAqA/rebZU5d?=
 =?us-ascii?Q?nw3toFafDczPe6SQM/CE1JLoDPZYxylIL6y5Fo2CHgvmykhs2TSNWD+y4KG8?=
 =?us-ascii?Q?mmY/7egpbEu01UeFJ3bO06thrZGzh/Ul1EQO67ehUDWlchHSCDrk83m5m/lg?=
 =?us-ascii?Q?Meoc4e5OIbEP6NdWzKmRNBRswTb384tpwbgiDfPJ6LwkxOcZ9OAv8YFUtU7j?=
 =?us-ascii?Q?Gl4+RmZ7YiIQ4ZTONX2Shm705nhVsnr8VUc+f8LDWGSiCDlNxe1/DNgokBA2?=
 =?us-ascii?Q?+52wtsvlEyJE5B9qBvd+4v+LRth9ENJltfJfVbiPeQ0qSHecEyo0E7rQXE8p?=
 =?us-ascii?Q?0NBspduwAgtGrDVueeNwbh3j5E7uuMipMcdJADHJntmxjwSkAHv4lbsI3b8G?=
 =?us-ascii?Q?3DvangdNJwQsdyQHt+YvjPXyFXp+8DIxoksnuJ5OxAp/gjbovLdyIMl0DVtg?=
 =?us-ascii?Q?JOVMFORV7zOaEdQ0vAAf7tkZmKN/OembqkfY5gfUqvxfNZ6hcBAyleu5a1Wv?=
 =?us-ascii?Q?Lfm659m0Nt0v6eRmUKB97Ou65ZP8Lz0xtjF5UARXHoUco7cOZdHtON/iWWqx?=
 =?us-ascii?Q?LwKo3KZhuZm8SFTQzb2HM0D8zxAYAv4j4nt7WjR9iQjhJ7KNLm64I3wsyYGH?=
 =?us-ascii?Q?gss+c1seWvUZ6t9QCOQ=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:ErrorRetry;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:58:59.9981
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5540983f-01b0-4517-43d2-08de28ecf9ba
X-MS-Exchange-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:
	CH3PEPF00000013.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4068

Function xsm_irq_permission() is invoked only under
XEN_DOMCTL_irq_permission domctl-op, and shall be wrapped with
CONFIG_MGMT_HYPERCALLS. Otherwise it will become unreanchable when
MGMT_HYPERCALLS=n, 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"
---
v2 -> v3
- add missing wrapping in xsm/dummy.h
- adapt to the commit of "remove redundant xsm_iomem_mapping()"
- address "violating Misra rule 2.1" in commit message
---
 xen/include/xsm/dummy.h | 2 ++
 xen/include/xsm/xsm.h   | 4 ++++
 xen/xsm/dummy.c         | 2 ++
 xen/xsm/flask/hooks.c   | 4 ++++
 4 files changed, 12 insertions(+)

diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index 5810a18087..a5deb8a975 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -564,12 +564,14 @@ static XSM_INLINE int cf_check xsm_unmap_domain_irq(
     return xsm_default_action(action, current->domain, d);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static XSM_INLINE int cf_check xsm_irq_permission(
     XSM_DEFAULT_ARG struct domain *d, int pirq, uint8_t allow)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
+#endif
 
 static XSM_INLINE int cf_check xsm_iomem_permission(
     XSM_DEFAULT_ARG struct domain *d, uint64_t s, uint64_t e, uint8_t allow)
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 9dd485646a..ee43002fdb 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -115,7 +115,9 @@ struct xsm_ops {
     int (*unmap_domain_irq)(struct domain *d, int irq, const void *data);
     int (*bind_pt_irq)(struct domain *d, struct xen_domctl_bind_pt_irq *bind);
     int (*unbind_pt_irq)(struct domain *d, struct xen_domctl_bind_pt_irq *bind);
+#ifdef CONFIG_MGMT_HYPERCALLS
     int (*irq_permission)(struct domain *d, int pirq, uint8_t allow);
+#endif
     int (*iomem_permission)(struct domain *d, uint64_t s, uint64_t e,
                             uint8_t allow);
     int (*pci_config_permission)(struct domain *d, uint32_t machine_bdf,
@@ -499,11 +501,13 @@ static inline int xsm_unbind_pt_irq(
     return alternative_call(xsm_ops.unbind_pt_irq, d, bind);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int xsm_irq_permission(
     xsm_default_t def, struct domain *d, int pirq, uint8_t allow)
 {
     return alternative_call(xsm_ops.irq_permission, d, pirq, allow);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static inline int xsm_iomem_permission(
     xsm_default_t def, struct domain *d, uint64_t s, uint64_t e, uint8_t allow)
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 724b2a2653..7cf00ce37e 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -73,7 +73,9 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .unmap_domain_irq              = xsm_unmap_domain_irq,
     .bind_pt_irq                   = xsm_bind_pt_irq,
     .unbind_pt_irq                 = xsm_unbind_pt_irq,
+#ifdef CONFIG_MGMT_HYPERCALLS
     .irq_permission                = xsm_irq_permission,
+#endif
     .iomem_permission              = xsm_iomem_permission,
     .pci_config_permission         = xsm_pci_config_permission,
     .get_vnumainfo                 = xsm_get_vnumainfo,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 839a4cf9e6..ca07585450 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1111,12 +1111,14 @@ static int cf_check flask_unbind_pt_irq(
     return current_has_perm(d, SECCLASS_RESOURCE, RESOURCE__REMOVE);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check flask_irq_permission(
     struct domain *d, int pirq, uint8_t access)
 {
     /* the PIRQ number is not useful; real IRQ is checked during mapping */
     return current_has_perm(d, SECCLASS_RESOURCE, resource_to_perm(access));
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 struct iomem_has_perm_data {
     uint32_t ssid;
@@ -1938,7 +1940,9 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .unmap_domain_irq = flask_unmap_domain_irq,
     .bind_pt_irq = flask_bind_pt_irq,
     .unbind_pt_irq = flask_unbind_pt_irq,
+#ifdef CONFIG_MGMT_HYPERCALLS
     .irq_permission = flask_irq_permission,
+#endif
     .iomem_permission = flask_iomem_permission,
     .pci_config_permission = flask_pci_config_permission,
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 11:01:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 11:01:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168649.1494636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtL-0005HG-NZ; Fri, 21 Nov 2025 11:01:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168649.1494636; Fri, 21 Nov 2025 11:01: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 1vMOtL-0005H9-Kg; Fri, 21 Nov 2025 11:01:27 +0000
Received: by outflank-mailman (input) for mailman id 1168649;
 Fri, 21 Nov 2025 11: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOrc-0008Dv-Hu
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:59:40 +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 2bcd37fc-c6c9-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 11:59:38 +0100 (CET)
Received: from CH2PR07CA0038.namprd07.prod.outlook.com (2603:10b6:610:5b::12)
 by DS7PR12MB8418.namprd12.prod.outlook.com (2603:10b6:8:e9::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov
 2025 10:59:33 +0000
Received: from CH3PEPF00000011.namprd21.prod.outlook.com
 (2603:10b6:610:5b:cafe::8) by CH2PR07CA0038.outlook.office365.com
 (2603:10b6:610:5b::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.11 via Frontend Transport; Fri,
 21 Nov 2025 10:59:29 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF00000011.mail.protection.outlook.com (10.167.244.116) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.1 via Frontend Transport; Fri, 21 Nov 2025 10:59:33 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:59: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: 2bcd37fc-c6c9-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Y795LHqaRSkPETI0WU1hZJvzWj9hi6uvR6B3XZmSLsVw8kUioNCtCBUBzTVuA4t+my7F7f3TX1PiIpvNM8hx+DljU5s15NK7OP/PKtMcydw5RTNG0S4hHYGZGQjegZeRZN0fYO/GEMaUynjX8ezir1HqqwmVthKSE+J3CAEEHOCVkhhPU0Y4Zb5fIknWwnEonv+SFCSMXsw+djh5mFNOHfqM4FDMdUiOfqHbe5yTIJT2QdWzRa91JlKX2rm3A1bGfbB3zKbsiyv0WeQ+vqhBh+BSJ0KaCSi2TFA7WUjT00xWuaaNnP+IJTHl7At1VJRlCdo8gmh9OXCPm6+E+8m2iQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZHVEQoOxexn5927jgQl87XVwlTFpequA1CFs0WVDAOc=;
 b=T9Y9cUQSSOorL3qysJ5IkttF68oK8RMtbW/toLJzV1YmWCm+yOOOw2h3PFp4pYyS8+VHHjymFN6DfqJ58cHboET95Ai51Uph+PqXWgHTfn/JNZqyYBMY7xXZ7I6v6NFwyyDYdiBVCfT7jBb6RZecuiB0uk00FgG5StVDtOyEbmzYKwLt+GFB4sqflN7BGBUz7kHz2I8tDznJeNtS9j3Kqd9iljKmLN9zaPjKr1i++iiLwWB6EIH4NJrMYVTYRDbtIUiofKE8cVOqu+G55DK3bxvm1UdpwmO6b9BtXR1y9/qZNE0/oc9/9rgGAX1ewrI79nId6zniKX5BxIkWlGBeaA==
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=ZHVEQoOxexn5927jgQl87XVwlTFpequA1CFs0WVDAOc=;
 b=DlIeTma2LAtE46q5xigZlQsKxMVwGSuP6Mb1NPYeL78qF/qiZ1ztOdJ97/TM1PTWGKrQDfwerMEdwBBTy8feL5i3k6+uGuVqu/XUnTfE2DIrWu/tSWRhXzLWImmKFNBTwHG95niUzEb+S+n5QEdh3jmoLSIzaJBTPMs2PJTBMdI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <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>, =?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 v4 24/24] xen: move MGMT_HYPERCALLS out of PV_SHIM_EXCLUSIVE
Date: Fri, 21 Nov 2025 18:58:01 +0800
Message-ID: <20251121105801.1251262-25-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH3PEPF00000011:EE_|DS7PR12MB8418:EE_
X-MS-Office365-Filtering-Correlation-Id: dec71a68-9a2d-4a12-8258-08de28ed0dc3
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?TZ37Ry7dX1DGGGt8mVRegDLWQUKgwUs0uVXD3XBqutNJ8lRsLOmgo8cKzK3b?=
 =?us-ascii?Q?45N2vaZ5BOpuN9y4SOeQunL7sDX4cuOt/UJsRSfwjhQHzJNjiiiONatpQu9U?=
 =?us-ascii?Q?8J37M7zfOw5ycdmeiMzod4fh2AkZfi0Onm+p6p1rvg5cTsdV1k9k7K9obgqf?=
 =?us-ascii?Q?uYVg2CaMbL2dctvvpMdxUB9TA/ifc6AXggykhTeaOmcJI+MQsS+jRu9hF8Kf?=
 =?us-ascii?Q?zUkofgdr5hGu4jHMhi5EVZPNtyHz0QmEZsGrVa8bZm5Qp8DeNz0z0WKT0laj?=
 =?us-ascii?Q?8cDFcAILS5LWjpVWsU77Zkmi/XxYP5JAW1YZ3EQCOURFLIEOWMfOYrwyWb9j?=
 =?us-ascii?Q?7L7+0I08nDnaCJiUJ+UALEFiMsX2t+NofwOkw+ewM2DBA9wdahzwne1pipMZ?=
 =?us-ascii?Q?A1/I3SRPQ5GOBKvBWVhgZvCLGnprNnWrxTKk41YKfjX5a9eTtJB5rGHddw87?=
 =?us-ascii?Q?Upxu8fdjYW6svrkuCqUg9xK0Yk/X8TyLuLRrplPuIqQMn9KicZsdijBjvrNN?=
 =?us-ascii?Q?dt3u/QcbasOKs0L7FAyQXXnaEkcfcxvteSuaQjAkDvHrA1DJYVv+ogim/8/9?=
 =?us-ascii?Q?wMEJz/XH9sUNVzHAK7Xx/gZ5vD4LgzlWkirnJ6dI97eWBZ8+L6ID5U+9zqHO?=
 =?us-ascii?Q?XW/ZuFu2Le1DJ0A1cAdnc7Ev5OvoSm4heAljm2UGuTiaJ9X1aUIt1MEP98/o?=
 =?us-ascii?Q?Z/Y9JDxxJhgMdiByVArjTEBcPyKoy/Lh6loujUKwMmCUuXJBy4GfCBEmlG4P?=
 =?us-ascii?Q?Q/qNVpZFKDZY9GRNAQQaGrOhQISvi3hdSUz1DNLdstlEegla0LPITniY/+g3?=
 =?us-ascii?Q?mNwatBT8gcZNU/+wxmWsRbIE8g1LpHXiOp4pnW1lfOy+epu1DSDoI3osyzR6?=
 =?us-ascii?Q?dzf87BdS07iezX9zH1XGag7in8844ujFo7/THa7x8cOI6sFAD5SQF/BOd9Ja?=
 =?us-ascii?Q?Y5WVxCJBhQeYZy/YFtRJXBCaIhD6iev/hfildIZ3TWxsmK1PGjqXBUyLrH4U?=
 =?us-ascii?Q?uhZJZMznt+jVVGosQGbrVKr/LVblzvi/Fcu7Z1wWY1DbQ6nVf61xXSIzkv9j?=
 =?us-ascii?Q?IGNr1sLVeuwbIAQZbBDoRkYltDGAdVMgknz7M1hwMw0C2HbP322LY//cGyJS?=
 =?us-ascii?Q?NJR5qIXOqkjw1UhN2mNZUQuoMnM18rwxy3LtrYClJxftDU62gShGp7Yc801C?=
 =?us-ascii?Q?q5FF5WfFuoQk1dmTFOe0M1e1g+bcYEdQIM135InS8JudSEcY2A4GKXSgdqna?=
 =?us-ascii?Q?lZb07nb0JC+HzqFbTUGLiu3y+qmlKWe4TGBvH+Dqn4csrP7QlPPpbRm0mSke?=
 =?us-ascii?Q?MnPnxwMe9CIlNBm6qSnJU1RtamP/7V5Q5AR/PN+o5Z8jSBJ8TgpPhz9dyF0D?=
 =?us-ascii?Q?ZsADIQHOaQI7ccH4oaiFvtZN4g7DBUyAxLAZDy705zUbJJOZSHdUTU5cRBoj?=
 =?us-ascii?Q?jXuRePiGPnI1oHQqmKQ0NsY7oaUvt3dBMG4LaToi9wF8Vx9NH3e+zZFe8N2w?=
 =?us-ascii?Q?3KaAyfXfQbgBit3y21+nR6t0Sd8oLKOBENDs3NFEHRr+VcrOCTwdRIEc2Qnn?=
 =?us-ascii?Q?SyIN9wIMKQKTwZa3/WE=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:59:33.5922
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dec71a68-9a2d-4a12-8258-08de28ed0dc3
X-MS-Exchange-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:
	CH3PEPF00000011.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8418

As we're aiming at moving away from PV_SHIM_EXCLUSIVE=y, we are
moving MGMT_HYPERCALLS out of it.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- new commit
---
 xen/arch/x86/Makefile             |  2 +-
 xen/arch/x86/hvm/Kconfig          |  1 -
 xen/arch/x86/include/asm/paging.h |  2 +-
 xen/common/Kconfig                |  1 -
 xen/common/Makefile               |  5 +----
 xen/include/hypercall-defs.c      | 10 ++--------
 xen/include/xen/domain.h          |  4 ----
 7 files changed, 5 insertions(+), 20 deletions(-)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 006a6e56d3..3aea179838 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -30,6 +30,7 @@ obj-bin-y += dmi_scan.init.o
 obj-y += domain.o
 obj-bin-y += dom0_build.init.o
 obj-y += domain_page.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
 obj-y += e820.o
 obj-y += emul-i8254.o
 obj-y += extable.o
@@ -79,7 +80,6 @@ obj-$(CONFIG_VM_EVENT) += vm_event.o
 obj-y += xstate.o
 
 ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
-obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
 obj-y += platform_hypercall.o
 obj-$(CONFIG_COMPAT) += x86_64/platform_hypercall.o
 endif
diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index 52b22e5d17..3351afc5a1 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -1,6 +1,5 @@
 menuconfig HVM
 	bool "HVM support"
-	depends on !PV_SHIM_EXCLUSIVE
 	default !PV_SHIM
 	select COMPAT
 	select IOREQ_SERVER
diff --git a/xen/arch/x86/include/asm/paging.h b/xen/arch/x86/include/asm/paging.h
index ba5ba7324e..db3e5b8f31 100644
--- a/xen/arch/x86/include/asm/paging.h
+++ b/xen/arch/x86/include/asm/paging.h
@@ -55,7 +55,7 @@
 #define PG_translate   0
 #define PG_external    0
 #endif
-#if defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE) && defined(CONFIG_MGMT_HYPERCALLS)
+#if defined(CONFIG_PAGING) && defined(CONFIG_MGMT_HYPERCALLS)
 /* Enable log dirty mode */
 #define PG_log_dirty   (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)
 #else
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 5aecb88680..d396ac94ab 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -653,7 +653,6 @@ menu "Supported hypercall interfaces"
 
 config MGMT_HYPERCALLS
 	bool "Enable privileged hypercalls for system management"
-	depends on !PV_SHIM_EXCLUSIVE
 	help
 	  Management hypercalls provide the means for dom0 to manage the
 	  overall Xen system and other domains, including sysctl, domctl, etc.
diff --git a/xen/common/Makefile b/xen/common/Makefile
index e0afc89591..45c0bda000 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) += device.o
 obj-$(CONFIG_DEVICE_TREE_PARSE) += device-tree/
 obj-$(CONFIG_IOREQ_SERVER) += dm.o
 obj-y += domain.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
 obj-y += domid.o
 obj-y += event_2l.o
 obj-y += event_channel.o
@@ -70,10 +71,6 @@ obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo un
 
 obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o memory.o multicall.o xlat.o)
 
-ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
-obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
-endif
-
 extra-y := symbols-dummy.o
 
 obj-$(CONFIG_COVERAGE) += coverage/
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index 5343fd7a6f..ae56383bf7 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -196,13 +196,11 @@ dm_op(domid_t domid, unsigned int nr_bufs, xen_dm_op_buf_t *bufs)
 #endif
 #ifdef CONFIG_MGMT_HYPERCALLS
 sysctl(xen_sysctl_t *u_sysctl)
-#if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
+#if defined(CONFIG_X86) && defined(CONFIG_PAGING)
 paging_domctl_cont(xen_domctl_t *u_domctl)
 #endif
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl(xen_domctl_t *u_domctl)
 #endif
-#endif
 #ifndef CONFIG_PV_SHIM_EXCLUSIVE
 platform_op(xen_platform_op_t *u_xenpf_op)
 #endif
@@ -281,10 +279,8 @@ hvm_op                             do       do       do       do       do
 #endif
 #ifdef CONFIG_MGMT_HYPERCALLS
 sysctl                             do       do       do       do       do
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl                             do       do       do       do       do
 #endif
-#endif
 #ifdef CONFIG_KEXEC
 kexec_op                           compat   do       -        -        -
 #endif
@@ -300,10 +296,8 @@ 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)
-#ifdef CONFIG_MGMT_HYPERCALLS
+#if defined(CONFIG_X86) && defined(CONFIG_PAGING) && defined(CONFIG_MGMT_HYPERCALLS)
 paging_domctl_cont                 do       do       do       do       -
 #endif
-#endif
 
 #endif /* !CPPCHECK */
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index aa86a9f460..6d8cb9690c 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -185,11 +185,7 @@ struct vnuma_info {
     struct xen_vmemrange *vmemrange;
 };
 
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 void vnuma_destroy(struct vnuma_info *vnuma);
-#else
-static inline void vnuma_destroy(struct vnuma_info *vnuma) { ASSERT(!vnuma); }
-#endif
 
 #ifdef CONFIG_VMTRACE
 extern bool vmtrace_available;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 11:01:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 11:01:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168651.1494647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtM-0005Mt-BD; Fri, 21 Nov 2025 11:01:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168651.1494647; Fri, 21 Nov 2025 11:01:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtM-0005KX-1a; Fri, 21 Nov 2025 11:01:28 +0000
Received: by outflank-mailman (input) for mailman id 1168651;
 Fri, 21 Nov 2025 11: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOrY-0008Dv-Aa
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:59:36 +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 29909f48-c6c9-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 11:59:34 +0100 (CET)
Received: from CH5PR02CA0003.namprd02.prod.outlook.com (2603:10b6:610:1ed::23)
 by SJ2PR12MB9085.namprd12.prod.outlook.com (2603:10b6:a03:564::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov
 2025 10:59:30 +0000
Received: from CH3PEPF00000017.namprd21.prod.outlook.com
 (2603:10b6:610:1ed:cafe::f4) by CH5PR02CA0003.outlook.office365.com
 (2603:10b6:610:1ed::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.12 via Frontend Transport; Fri,
 21 Nov 2025 10:59:28 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF00000017.mail.protection.outlook.com (10.167.244.122) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.1 via Frontend Transport; Fri, 21 Nov 2025 10:59:30 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:59:27 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 29909f48-c6c9-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WPXENksRSRExohJNkJTf8jM2l7XMkXmnh4dcViUZcv0lrt7C7YWvaDi9GppbM1t4jJ0l85PmL8C2v3gHowekTW3+q/FkvFhvF3S7B/uBahBGo5PdvhSV+sM2v8wASNt+MMIb7SjnRtVdTWqzxzbjUxC2xULOGOF9x5DvM37crs8Y/2CKo4rAPmAwwfWLx1lo0hd9TCI5yFfGTmVaJTMvJP64TgtSjX5cUCMLZhasib8nKSot3Z/GV3LW7/W42SXj5JxJl/mV2iQCztM24tPjjDRAUvKzZ7WnoKAR23TgDFigyV+eMc4qO/xMcCbI1/M8cgjaB4nwIjDmPbuCZUMHyw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VGsKqP94ALXNQ4bxTHNd4P70wKk3fIYwcVEXDRmLYiU=;
 b=fxiYeParN6pKl2epNx+GwvRWi54ixznpOSrlD4B+RiuuCturhUgdaCX2SUvCWOhMihnGqVhTGsgI3iIfjBaAihzGyhvUsYe5qUEKfjPN2j0hwifNmDkhHEmOj/KHPoh7NoIbF+E+hktLNNKiWt3diILx53hxX7HrkIHnDcqea46tJvXwIutP8Qlkz9fSl91EzVorx7+8SjsynraaUm9z4tZ+WP7VF/nBM4gg1dhZxrE2g8OgPUxHgHkPVK8CJo+rqrH1SlCL0Dj4ciXPKIkoID/kyZwY8K8Sn+juqx0Gra9GCH7csLpKB5nUiW9M/Kul/9wWDkCwy29wNimnpD5ouw==
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=VGsKqP94ALXNQ4bxTHNd4P70wKk3fIYwcVEXDRmLYiU=;
 b=hNC1bhduSr0Pk5UojnMwZFzW31N5urIhGVIPg3A/H5Mx4ooG0ycfEyZaWbXwKDaTvp1VWI9yBSqGJ34xEs5suZ2aTAaHyZhk1iCyxiobvSB3rl2syUkZI74ErbXHIc+egTFbR0oi5YrWnPRpXinSGEm3UT37FdeFPU76+cJ4imw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>
Subject: [PATCH v4 23/24] xen/domctl: wrap common/domctl.c with CONFIG_MGMT_HYPERCALLS
Date: Fri, 21 Nov 2025 18:58:00 +0800
Message-ID: <20251121105801.1251262-24-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH3PEPF00000017:EE_|SJ2PR12MB9085:EE_
X-MS-Office365-Filtering-Correlation-Id: d55b4dd0-e5e6-48c4-3455-08de28ed0bbf
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?MbE08qhbdUhwvHxi8Tvl0MmgzHw7Fjsoqz5zoMNQjVTHCkfW03pYsBKtaSYt?=
 =?us-ascii?Q?AQbNBiOmJI4BJVob9d9cMXW6yJ+tz6VGndKNW/4Q4m5x18ve4NjKmhchqAlf?=
 =?us-ascii?Q?zKqODKFa8ImoL54psgT0akADFz32yptHNg7zlokF2fOnOy34M/f2GmvRArmY?=
 =?us-ascii?Q?H0FaAmzeI1jNJ6ihkgS4DrI+Y+4NBAhVUB24pwJLABMntybr154HCluqhe/K?=
 =?us-ascii?Q?/4LGuOVedzPi7zfoA2LoWw5RrbQsNU9NsribVImOexwavTFIrCMTLspr0xzR?=
 =?us-ascii?Q?1W++ccDkiWyw2QidvJEMvXx9RyuLNY/eUHdjOUhe7PoKPitt7Jl3W94+vIp3?=
 =?us-ascii?Q?8MQbQzj37iA44XIyNrRn3Dasu88rMTO6+YNYMVWWnhoZUyT8CjnEYbjVJNX1?=
 =?us-ascii?Q?27/QwW7X3hKw1BYV+Oo5Qnw4SBVrzvXEE8vIB+P4gn9GYKyDX1zaPyHqcLGs?=
 =?us-ascii?Q?TGGVbmXvsIHQepAUHQcfB5qqA5HYNjFok+2IJ0WlbV1viluJTNKp8XXMnc7W?=
 =?us-ascii?Q?yo3QeeXVKp5WDXdmG3gKwdgqt85UwaEHOtu0VDPeTBYbmt4RKZVj3VgU37zK?=
 =?us-ascii?Q?7QTUObIfQbx4/HGqsOmdpcbNU6xOmOTHYDIoRg0pCEnW9t8w2Yfttss6INrW?=
 =?us-ascii?Q?APvBCxJnwXnl78hLE+dHJ4ROSNuRoU5C5HR5cWRg+N7FewSMaDVOwT3NCGgq?=
 =?us-ascii?Q?cw4J1CezlCU+SQUFv6eHbkf02BWxWJ7rIm5g+4gYXb+GDg5OZjd8icEiN6+k?=
 =?us-ascii?Q?kLUSuGIpHMJnNtzV0G2Xq6n7soenuMhEyNn/leYmd6chBMRXCNjcn+P6FyDa?=
 =?us-ascii?Q?kqPWg5ZoNy+6bCTaIxyXmfbng0Xg0D5E0h5pL0KBDlw2EvJHLxxExMtM71Sj?=
 =?us-ascii?Q?WBuMUxvBP8xFHOwjNJd/cH+Rc6HsOp467EXoPGHc4H14Egjkhk/eMQTmH4vM?=
 =?us-ascii?Q?WGYS01/GootABBga5fzQ0bv4XHN2ac7qz7OGwAcFTsqN07DAEyCUseuWq4Yi?=
 =?us-ascii?Q?98s/wMKUBh619S3Ng/LrG8S2DXLDwafpx38GJvaW0Xmg36HW7AB48dYwadaR?=
 =?us-ascii?Q?hGei8n6k58OVH1/+RTSPx5ukoDjH21U695s/xA03nVEVHEV4pht2wd5yrJ2M?=
 =?us-ascii?Q?VwqkAa4wWJ6QuexqUwKOldpGYHOoUGJpM/kbjinYzDX7asTTgoz73w5bFku9?=
 =?us-ascii?Q?QgLP/nA6sH/gZ65dp9S7zRIfkxiQebqK7/RXgLrp4cQPmgam/xh0cdMNDfjQ?=
 =?us-ascii?Q?BTlzKHDkJeUd4i064iq8pv9HCXu1153aGLQnw55tBBpiXy9OaVd1hdo2Em13?=
 =?us-ascii?Q?PUMCDY83VhVFo5CRqnHuhRCf3OS0KLAbh2nMsDFEOGz2CZeqzrp/2y+P4kae?=
 =?us-ascii?Q?f/XiCnPPYzTbG8NYRq6eJsFbzGL+1n2830csnKbU8f/PFFdTbKDsc7nLCtWC?=
 =?us-ascii?Q?95Yc9wzRaJlk5bDRLJrI/CJPxMj68YV9JwYRPjZtSFhYjgTvl8NaYlnTPwgh?=
 =?us-ascii?Q?JVUI40dziGhyg5q4STVAn3vr2OglYsMSjI9mcQGvltQccZGzEJJQJ02jVTNr?=
 =?us-ascii?Q?H+9VfQ9GdProqDsMjOM=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:59:30.2334
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d55b4dd0-e5e6-48c4-3455-08de28ed0bbf
X-MS-Exchange-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:
	CH3PEPF00000017.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9085

Wrap domctl hypercall def and domctl.o with CONFIG_MGMT_HYPERCALLS.
Make CONFIG_MGMT_HYPERCALLS optional and expand help message

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- remove stub in common/domctl.c
- combine the original commit of "xen/domctl: provide stub for
 domctl_lock_{acquire,release}"
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
---
v2 -> v3:
- add pitfall warnning in Kconfig help
---
v3 -> v4:
- refine help message
---
 xen/common/Kconfig           | 14 ++++++++++----
 xen/common/Makefile          |  2 +-
 xen/include/hypercall-defs.c |  6 ++++--
 3 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 973b8e26bd..5aecb88680 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -654,11 +654,17 @@ menu "Supported hypercall interfaces"
 config MGMT_HYPERCALLS
 	bool "Enable privileged hypercalls for system management"
 	depends on !PV_SHIM_EXCLUSIVE
-	def_bool y
 	help
-	  This option shall only be disabled on some dom0less systems, or
-	  PV shim on x86, to reduce Xen footprint via managing unnessary
-	  hypercalls, like sysctl, etc.
+	  Management hypercalls provide the means for dom0 to manage the
+	  overall Xen system and other domains, including sysctl, domctl, etc.
+	  In a dom0less or pv-shim build, they can be omitted to cut down
+	  on the Xen binary's size. However, this comes at the loss of
+	  significant runtime functionality.
+	  So be cautious to disable it, as admins will face missing a few basic
+	  hypercalls like listdomains, getdomaininfo, etc, hence leading to
+	  have an impact on device-passthrough and DM.
+
+	  Unless you know what you are doing, you should enable this.
 
 endmenu
 
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 7c32fbd9f1..e0afc89591 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -71,7 +71,7 @@ obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo un
 obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o memory.o multicall.o xlat.o)
 
 ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
-obj-y += domctl.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
 endif
 
 extra-y := symbols-dummy.o
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index 38b21dccbd..5343fd7a6f 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -199,9 +199,11 @@ sysctl(xen_sysctl_t *u_sysctl)
 #if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
 paging_domctl_cont(xen_domctl_t *u_domctl)
 #endif
-#endif
 #ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl(xen_domctl_t *u_domctl)
+#endif
+#endif
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 platform_op(xen_platform_op_t *u_xenpf_op)
 #endif
 #ifdef CONFIG_HVM
@@ -279,10 +281,10 @@ hvm_op                             do       do       do       do       do
 #endif
 #ifdef CONFIG_MGMT_HYPERCALLS
 sysctl                             do       do       do       do       do
-#endif
 #ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl                             do       do       do       do       do
 #endif
+#endif
 #ifdef CONFIG_KEXEC
 kexec_op                           compat   do       -        -        -
 #endif
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 11:01:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 11:01:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168654.1494666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtN-0005rZ-Mt; Fri, 21 Nov 2025 11:01:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168654.1494666; Fri, 21 Nov 2025 11: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 1vMOtN-0005px-GT; Fri, 21 Nov 2025 11:01:29 +0000
Received: by outflank-mailman (input) for mailman id 1168654;
 Fri, 21 Nov 2025 11:01: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOrI-0007TB-IA
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:59:20 +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 1f0224e5-c6c9-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 11:59:16 +0100 (CET)
Received: from CH0PR13CA0015.namprd13.prod.outlook.com (2603:10b6:610:b1::20)
 by SA3PR12MB9226.namprd12.prod.outlook.com (2603:10b6:806:396::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov
 2025 10:59:10 +0000
Received: from CH3PEPF00000015.namprd21.prod.outlook.com
 (2603:10b6:610:b1:cafe::a3) by CH0PR13CA0015.outlook.office365.com
 (2603:10b6:610:b1::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.4 via Frontend Transport; Fri,
 21 Nov 2025 10:59:10 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF00000015.mail.protection.outlook.com (10.167.244.120) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.1 via Frontend Transport; Fri, 21 Nov 2025 10:59:10 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:59:07 -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: 1f0224e5-c6c9-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=o47vB8NEwJFlr65tBURN74Y+SXnmJUsnvvQBmePHwtuVgbiLEcw08gLgDhbGcAf7t8q0b1Gzob1LmDk6jlAwhkdnegrEmPsppfuVhe5UyFKX0bypGZoWUC4JAjsP9mCadBQhgDuWnPttMKgXkA0+T/Ft9rac663ydk7KhRwAtClWMfMlPb0oh77yS5nhybJMR9mAWptSbFbbL21U4guokbXOUKf4A9z8vio0TPYY7wOhnM+uR/NABJZwEh6omFhRuoOOfDOOxZfJ7xaqnj1PrrgSu9+dZe6k7o5jDX+6xr4uDEU/0ALPNu8tdNl+qBFRYOaFEfQT/E2RlugOaijUJQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qPiKSRzmKmBy67WRs8uqmzP5qkra7BuAXLqSmIOjGg4=;
 b=rR/ZkihojgxO+33hjQ4Pr1b469mSQ0lzcuktr/P+SaqPQ75TZQK0logYoM3Ey600JnXRAuIUnk58yOaEzUOue4OhUkNQrYyU3MBbu6p5RBGumv/lYIBU19rBbTi1KTG6wP+p4tt3AKxFwsCJCL33zolw5KE+1IG2bt984IWnDMl12fS2DZGsQ8CDlfXDC9i+Pyc/8Zks+zg/gdGgCWRewK/6ENBeNLbqZMBXXDqnPQN9o3G4WvFAEefC7so/wntUUww0IG0wsjR2lhCPZrNuaKcSF5k4SM1r0XEWVY/eCjeodHA0YDn8dDY6rfO6W5AYMbbSNwpxNdSNSVkXoB5FXg==
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=qPiKSRzmKmBy67WRs8uqmzP5qkra7BuAXLqSmIOjGg4=;
 b=xINDEfD0VKS+XeUjdNn9W3qzBydl5Iv//NIgUpwgxmX9JXsGb6iwPFuZ2t9stI3eiQTE5gl9fDZ8VzE3qyBAVz9pJJuXFaDU3VtY2XIFKV/8nO3LWG8A4rf2//Hgt9UxwzfDDg5mfL5KdQgK4dmLYpObTdv1xR90+NpcgdKg2fA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Michal
 Orzel" <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Rahul Singh <rahul.singh@arm.com>, "Daniel P.
 Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v4 15/24] xen/domctl: wrap device-tree-subset iommu-related domctl op with CONFIG_MGMT_HYPERCALLS
Date: Fri, 21 Nov 2025 18:57:52 +0800
Message-ID: <20251121105801.1251262-16-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH3PEPF00000015:EE_|SA3PR12MB9226:EE_
X-MS-Office365-Filtering-Correlation-Id: efed9477-9661-4776-854d-08de28ecffb4
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?iNG9xUTsa0EZffnmrsjxfJhV5pR5iCFYJ5b7PeNx4Av92uZ9dW10Mjc8l9A8?=
 =?us-ascii?Q?Wektmk4Sa2quNsDG0J7WeZ/bk7JBb2B0vUM2tTpVXJD7R0cW3WgKgoktTdQH?=
 =?us-ascii?Q?0eB8/f1cPYg1FEvCVKgRcgVRTNPA4GflsFfN6UA2RVEdPUQzPgOWuMZ2FQqE?=
 =?us-ascii?Q?7EvEuoDEd+fIFtiDxYeLpt0sEP6Bu0xIZMYA2J+skmQj4baQTTjcjydOKRFC?=
 =?us-ascii?Q?rB9mR5cR40IiOBTiQNLfP4gXvQNbai2G/3pzIXwn5ljRJO6LI89oG89dceLk?=
 =?us-ascii?Q?vpjvtd6Cr+86sP7EA7ya8dWhzCzi+3FKgV9KWSDUqS/1kzxNq98GZNnPKFoS?=
 =?us-ascii?Q?sT3hicBwBwdzm3JZY5cXsXqx8OymAvJJnOjBKvQFwIHD09M9ex5NadW7uoaD?=
 =?us-ascii?Q?tAXjy35ZzMUHkzNFfKi1KvcnVxBp42L0BIzpT/rM3VOGJa4Xpj0+hVxAxgmI?=
 =?us-ascii?Q?jeRYWgSZAlTb6onoefXzlsIau4Wv+YTVOlRpvm/0pvwDpMI6oMNOAY/xSOiG?=
 =?us-ascii?Q?5X5dvCAKy1nH8DQGhzgAOWHDsHgt8B517UNdQ4y6Rw1nuWDoF2iThXOcpamj?=
 =?us-ascii?Q?PugTk6bVhc1Xf6tL5ya8Jw4oEFgDC5j9btbe+laNEewkrRzO82h60FkkPugO?=
 =?us-ascii?Q?i6Ekh3eh5JtUzcKzZ5reNOMa/tVWHZcR3+e7haL11rd5It7dfuWqOyh0RL3e?=
 =?us-ascii?Q?MyGv3azGq/MgkM3jurUZbimz9GM2ydEEZSxdbvB5BrV5Gx3YeobgvyTAlgKf?=
 =?us-ascii?Q?yKoiL78ptzriBGd9jJjfK7tXxxbMCzjs9Cz0nsqVI4qrWXbGlt1uoU3fCsG1?=
 =?us-ascii?Q?aplfuc3DKEbGbyDVwqqKpjvkSX2BlPgpyOmr4t/4AKwaqGcFeXk6wkhDTKxh?=
 =?us-ascii?Q?A0drjvteLvUnSPrXt31P6cNM+aC79yv1VXWZXFVenafI3C/HtbAmmRPxR40e?=
 =?us-ascii?Q?Ocxjjle5gpnG7praeS3aX11J9LZx0ZrExAEA+wmXI8LGw3wDpQ+qihTqzvvB?=
 =?us-ascii?Q?Hi/cRzBBbxzSMO921UpYsZWt2K15hYhChiyLFjbO4/GXDZQMg3hrSC4jrY/A?=
 =?us-ascii?Q?9UTcAoj3QkT6zDTBj7ufsrpTmbIbQVepYbZ27beqkyky5dBSCHfENd56GHn1?=
 =?us-ascii?Q?tFRDJI9z8sHfGdwZt1RbH5YZknmIDCtL7jc0ZXOukPRiHAiZpGdc64qA8P9/?=
 =?us-ascii?Q?9uJ4g7IDGVsD9AnQz/PUjUrBKvSAlEjLxC5X52NX8nNZbbAPWEUZ1CdfaSDF?=
 =?us-ascii?Q?36dEbtTcRrJmcQtfnCB08PUqNxM4cfvzKBhOsvKqjbpnHmCyQHkVPUYkDH50?=
 =?us-ascii?Q?Fbgp0ZtS5wKpz7DNtg7ZB6VRZnyZECC72hWxj3DjsjK6fbz3QODTr5OPC4Zl?=
 =?us-ascii?Q?V8FzChtcmu54i9utTwO3RfDIs0FuVyINRHcv+gabPC+Yd32CL258Ko2n4lt+?=
 =?us-ascii?Q?jovccAZh5p3+iXp6Y1tMu1tZW6dzfIFHh24gy9o5VBOmQviQgicMNGrf78d1?=
 =?us-ascii?Q?QZsW8q7epHFpbDSPHWnlzKdPXzvM0EEMMLQ57W4GCHFiWN4pG3lg9Iq4p0Cr?=
 =?us-ascii?Q?u+PEDAyTQ5YNDz9PB5g=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:59:10.0312
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: efed9477-9661-4776-854d-08de28ecffb4
X-MS-Exchange-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:
	CH3PEPF00000015.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB9226

Function iommu_do_dt_domctl() is the main entry for all device-tree-subset
iommu-related 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:
- make PCI_PASSTHROUGH depend on MGMT_HYPERCALLS
- iommu_do_dt_domctl
  - xsm_assign_dtdevice
  - xsm_deassign_dtdevice
  - iommu_deassign_dt_device
    - arm_smmu_reassign_dev
      - arm_smmu_deassign_dev
        - arm_smmu_detach_dev
          - arm_smmu_domain_remove_master
    - ipmmu_reassign_device
      - ipmmu_deassign_device
        - ipmmu_detach_device
  - iommu_remove_dt_device
    - iommu_dt_device_is_assigned_locked
  - dt_find_node_by_gpath
Otherwise all the functions will become unreachable when MGMT_HYPERCALLS=n,
and hence violating Misra rule 2.1
Move codes closer to avoid scattering #ifdef

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4
- split into PCI related subset and DT subset
- Move codes closer to avoid scattering #ifdef
---
 xen/arch/arm/Kconfig                     |   2 +-
 xen/common/device-tree/device-tree.c     |   2 +
 xen/drivers/passthrough/arm/ipmmu-vmsa.c |  26 +++---
 xen/drivers/passthrough/arm/smmu-v3.c    |   4 +
 xen/drivers/passthrough/arm/smmu.c       |  55 ++++++------
 xen/drivers/passthrough/device_tree.c    | 108 ++++++++++++-----------
 xen/include/xsm/dummy.h                  |   6 +-
 xen/include/xsm/xsm.h                    |  12 +--
 xen/xsm/dummy.c                          |   6 +-
 xen/xsm/flask/hooks.c                    |  12 +--
 10 files changed, 126 insertions(+), 107 deletions(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index cf6af68299..5a5d7810c8 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -270,7 +270,7 @@ source "arch/arm/firmware/Kconfig"
 
 config PCI_PASSTHROUGH
 	bool "PCI passthrough" if EXPERT
-	depends on ARM_64 && HAS_PASSTHROUGH
+	depends on ARM_64 && HAS_PASSTHROUGH && MGMT_HYPERCALLS
 	help
 	  This option enables PCI device passthrough
 
diff --git a/xen/common/device-tree/device-tree.c b/xen/common/device-tree/device-tree.c
index 0b5375f151..70bd8e7da5 100644
--- a/xen/common/device-tree/device-tree.c
+++ b/xen/common/device-tree/device-tree.c
@@ -371,6 +371,7 @@ struct dt_device_node *dt_find_node_by_path_from(struct dt_device_node *from,
     return np;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int dt_find_node_by_gpath(XEN_GUEST_HANDLE(char) u_path, uint32_t u_plen,
                           struct dt_device_node **node)
 {
@@ -386,6 +387,7 @@ int dt_find_node_by_gpath(XEN_GUEST_HANDLE(char) u_path, uint32_t u_plen,
 
     return (*node == NULL) ? -ESRCH : 0;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 struct dt_device_node *dt_find_node_by_alias(const char *alias)
 {
diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index ea9fa9ddf3..b1fc14bc32 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -739,16 +739,6 @@ static int ipmmu_attach_device(struct ipmmu_vmsa_domain *domain,
     return 0;
 }
 
-static void ipmmu_detach_device(struct ipmmu_vmsa_domain *domain,
-                                struct device *dev)
-{
-    struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
-    unsigned int i;
-
-    for ( i = 0; i < fwspec->num_ids; ++i )
-        ipmmu_utlb_disable(domain, fwspec->ids[i]);
-}
-
 static int ipmmu_init_platform_device(struct device *dev,
                                       const struct dt_phandle_args *args)
 {
@@ -1138,7 +1128,9 @@ static void ipmmu_free_root_domain(struct ipmmu_vmsa_domain *domain)
     xfree(domain);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int ipmmu_deassign_device(struct domain *d, struct device *dev);
+#endif
 
 static int ipmmu_assign_device(struct domain *d, u8 devfn, struct device *dev,
                                uint32_t flag)
@@ -1254,6 +1246,17 @@ out:
     return ret;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
+static void ipmmu_detach_device(struct ipmmu_vmsa_domain *domain,
+                                struct device *dev)
+{
+    struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev);
+    unsigned int i;
+
+    for ( i = 0; i < fwspec->num_ids; ++i )
+        ipmmu_utlb_disable(domain, fwspec->ids[i]);
+}
+
 static int ipmmu_deassign_device(struct domain *d, struct device *dev)
 {
     struct ipmmu_vmsa_xen_domain *xen_domain = dom_iommu(d)->arch.priv;
@@ -1309,6 +1312,7 @@ static int ipmmu_reassign_device(struct domain *s, struct domain *t,
 
     return 0;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static int ipmmu_dt_xlate(struct device *dev,
                           const struct dt_phandle_args *spec)
@@ -1487,7 +1491,9 @@ static const struct iommu_ops ipmmu_iommu_ops =
     .teardown        = ipmmu_iommu_domain_teardown,
     .iotlb_flush     = ipmmu_iotlb_flush,
     .assign_device   = ipmmu_assign_device,
+#ifdef CONFIG_MGMT_HYPERCALLS
     .reassign_device = ipmmu_reassign_device,
+#endif
     .map_page        = arm_iommu_map_page,
     .unmap_page      = arm_iommu_unmap_page,
     .dt_xlate        = ipmmu_dt_xlate,
diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
index bf153227db..22def57b03 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -2759,6 +2759,7 @@ out:
 	return ret;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn, struct device *dev)
 {
 	struct iommu_domain *io_domain = arm_smmu_get_domain(d, dev);
@@ -2826,6 +2827,7 @@ static int arm_smmu_reassign_dev(struct domain *s, struct domain *t,
 
 	return 0;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static int arm_smmu_iommu_xen_domain_init(struct domain *d)
 {
@@ -2862,7 +2864,9 @@ static const struct iommu_ops arm_smmu_iommu_ops = {
 	.teardown		= arm_smmu_iommu_xen_domain_teardown,
 	.iotlb_flush		= arm_smmu_iotlb_flush,
 	.assign_device		= arm_smmu_assign_dev,
+#ifdef CONFIG_MGMT_HYPERCALLS
 	.reassign_device	= arm_smmu_reassign_dev,
+#endif
 	.map_page		= arm_iommu_map_page,
 	.unmap_page		= arm_iommu_unmap_page,
 	.dt_xlate		= arm_smmu_dt_xlate,
diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/arm/smmu.c
index 22d306d0cb..a75ec08633 100644
--- a/xen/drivers/passthrough/arm/smmu.c
+++ b/xen/drivers/passthrough/arm/smmu.c
@@ -894,8 +894,10 @@ static int register_smmu_master(struct arm_smmu_device *smmu,
 /* Forward declaration */
 static int arm_smmu_assign_dev(struct domain *d, u8 devfn,
 			       struct device *dev, u32 flag);
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn,
 				 struct device *dev);
+#endif
 
 /*
  * The driver which supports generic IOMMU DT bindings must have this
@@ -1699,21 +1701,6 @@ static int arm_smmu_domain_add_master(struct arm_smmu_domain *smmu_domain,
 	return 0;
 }
 
-static void arm_smmu_domain_remove_master(
-				const struct arm_smmu_domain *smmu_domain,
-				struct arm_smmu_master_cfg *cfg)
-{
-	uint32_t i, idx;
-	struct arm_smmu_device *smmu = smmu_domain->smmu;
-	struct arm_smmu_s2cr *s2cr = smmu->s2crs;
-	const struct iommu_fwspec *fwspec = arm_smmu_get_fwspec(cfg);
-
-	for_each_cfg_sme(cfg, i, idx, fwspec->num_ids) {
-		s2cr[idx] = s2cr_init_val;
-		arm_smmu_write_s2cr(smmu, idx);
-	}
-}
-
 static int arm_smmu_attach_dev(struct iommu_domain *domain, struct device *dev)
 {
 	int ret;
@@ -1761,16 +1748,6 @@ static int arm_smmu_attach_dev(struct iommu_domain *domain, struct device *dev)
 	return arm_smmu_domain_add_master(smmu_domain, cfg);
 }
 
-static void arm_smmu_detach_dev(struct iommu_domain *domain, struct device *dev)
-{
-	struct arm_smmu_domain *smmu_domain = domain->priv;
-	struct arm_smmu_master_cfg *cfg = find_smmu_master_cfg(dev);
-
-	if (cfg)
-		arm_smmu_domain_remove_master(smmu_domain, cfg);
-
-}
-
 #if 0 /*
        * Xen: The page table is shared with the processor, therefore
        * helpers to implement separate is not necessary.
@@ -2849,6 +2826,31 @@ out:
 	return ret;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
+static void arm_smmu_domain_remove_master(
+                                const struct arm_smmu_domain *smmu_domain,
+                                struct arm_smmu_master_cfg *cfg)
+{
+        uint32_t i, idx;
+        struct arm_smmu_device *smmu = smmu_domain->smmu;
+        struct arm_smmu_s2cr *s2cr = smmu->s2crs;
+        const struct iommu_fwspec *fwspec = arm_smmu_get_fwspec(cfg);
+
+        for_each_cfg_sme(cfg, i, idx, fwspec->num_ids) {
+                s2cr[idx] = s2cr_init_val;
+                arm_smmu_write_s2cr(smmu, idx);
+        }
+}
+
+static void arm_smmu_detach_dev(struct iommu_domain *domain, struct device *dev)
+{
+        struct arm_smmu_domain *smmu_domain = domain->priv;
+        struct arm_smmu_master_cfg *cfg = find_smmu_master_cfg(dev);
+
+        if (cfg)
+                arm_smmu_domain_remove_master(smmu_domain, cfg);
+
+}
 static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn,
 				 struct device *dev)
 {
@@ -2918,6 +2920,7 @@ static int arm_smmu_reassign_dev(struct domain *s, struct domain *t,
 
 	return 0;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static int arm_smmu_iommu_domain_init(struct domain *d)
 {
@@ -2956,7 +2959,9 @@ static const struct iommu_ops arm_smmu_iommu_ops = {
     .teardown = arm_smmu_iommu_domain_teardown,
     .iotlb_flush = arm_smmu_iotlb_flush,
     .assign_device = arm_smmu_assign_dev,
+#ifdef CONFIG_MGMT_HYPERCALLS
     .reassign_device = arm_smmu_reassign_dev,
+#endif
     .map_page = arm_iommu_map_page,
     .unmap_page = arm_iommu_unmap_page,
     .dt_xlate = arm_smmu_dt_xlate_generic,
diff --git a/xen/drivers/passthrough/device_tree.c b/xen/drivers/passthrough/device_tree.c
index 015ffa15d4..72c38355eb 100644
--- a/xen/drivers/passthrough/device_tree.c
+++ b/xen/drivers/passthrough/device_tree.c
@@ -59,6 +59,14 @@ fail:
     return rc;
 }
 
+int iommu_dt_domain_init(struct domain *d)
+{
+    INIT_LIST_HEAD(&dom_iommu(d)->dt_devices);
+
+    return 0;
+}
+
+#ifdef CONFIG_MGMT_HYPERCALLS
 int iommu_deassign_dt_device(struct domain *d, struct dt_device_node *dev)
 {
     const struct domain_iommu *hd = dom_iommu(d);
@@ -101,14 +109,6 @@ static bool iommu_dt_device_is_assigned_locked(const struct dt_device_node *dev)
     return assigned;
 }
 
-int iommu_dt_domain_init(struct domain *d)
-{
-    INIT_LIST_HEAD(&dom_iommu(d)->dt_devices);
-
-    return 0;
-}
-
-#ifdef CONFIG_MGMT_HYPERCALLS
 int iommu_release_dt_devices(struct domain *d)
 {
     const struct domain_iommu *hd = dom_iommu(d);
@@ -212,51 +212,6 @@ int iommu_add_dt_pci_sideband_ids(struct pci_dev *pdev)
 }
 #endif /* CONFIG_HAS_PCI */
 
-int iommu_remove_dt_device(struct dt_device_node *np)
-{
-    const struct iommu_ops *ops = iommu_get_ops();
-    struct device *dev = dt_to_dev(np);
-    int rc;
-
-    ASSERT(rw_is_locked(&dt_host_lock));
-
-    if ( !iommu_enabled )
-        return 1;
-
-    if ( !ops )
-        return -EOPNOTSUPP;
-
-    spin_lock(&dtdevs_lock);
-
-    if ( iommu_dt_device_is_assigned_locked(np) )
-    {
-        rc = -EBUSY;
-        goto fail;
-    }
-
-    if ( !ops->remove_device )
-    {
-        rc = -EOPNOTSUPP;
-        goto fail;
-    }
-
-    /*
-     * De-register the device from the IOMMU driver.
-     * The driver is responsible for removing is_protected flag.
-     */
-    rc = ops->remove_device(0, dev);
-
-    if ( !rc )
-    {
-        ASSERT(!dt_device_is_protected(np));
-        iommu_fwspec_free(dev);
-    }
-
- fail:
-    spin_unlock(&dtdevs_lock);
-    return rc;
-}
-
 int iommu_add_dt_device(struct dt_device_node *np)
 {
     const struct iommu_ops *ops = iommu_get_ops();
@@ -320,6 +275,52 @@ int iommu_add_dt_device(struct dt_device_node *np)
     return rc;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
+int iommu_remove_dt_device(struct dt_device_node *np)
+{
+    const struct iommu_ops *ops = iommu_get_ops();
+    struct device *dev = dt_to_dev(np);
+    int rc;
+
+    ASSERT(rw_is_locked(&dt_host_lock));
+
+    if ( !iommu_enabled )
+        return 1;
+
+    if ( !ops )
+        return -EOPNOTSUPP;
+
+    spin_lock(&dtdevs_lock);
+
+    if ( iommu_dt_device_is_assigned_locked(np) )
+    {
+        rc = -EBUSY;
+        goto fail;
+    }
+
+    if ( !ops->remove_device )
+    {
+        rc = -EOPNOTSUPP;
+        goto fail;
+    }
+
+    /*
+     * De-register the device from the IOMMU driver.
+     * The driver is responsible for removing is_protected flag.
+     */
+    rc = ops->remove_device(0, dev);
+
+    if ( !rc )
+    {
+        ASSERT(!dt_device_is_protected(np));
+        iommu_fwspec_free(dev);
+    }
+
+ fail:
+    spin_unlock(&dtdevs_lock);
+    return rc;
+}
+
 int iommu_do_dt_domctl(struct xen_domctl *domctl, struct domain *d,
                        XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
 {
@@ -431,3 +432,4 @@ int iommu_do_dt_domctl(struct xen_domctl *domctl, struct domain *d,
 
     return ret;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index 83972d36b7..fba0de9d4b 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -431,9 +431,8 @@ static XSM_INLINE int cf_check xsm_deassign_device(
 }
 
 #endif /* CONFIG_HAS_PCI */
-#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
+#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY
 static XSM_INLINE int cf_check xsm_assign_dtdevice(
     XSM_DEFAULT_ARG struct domain *d, const char *dtpath)
 {
@@ -448,7 +447,8 @@ static XSM_INLINE int cf_check xsm_deassign_dtdevice(
     return xsm_default_action(action, current->domain, d);
 }
 
-#endif /* HAS_PASSTHROUGH && HAS_DEVICE_TREE_DISCOVERY */
+#endif /* CONFIG_HAS_DEVICE_TREE_DISCOVERY */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
 static XSM_INLINE int cf_check xsm_resource_plug_core(XSM_DEFAULT_VOID)
 {
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index f2e92645ef..3bef1ec8ad 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -129,12 +129,12 @@ struct xsm_ops {
     int (*assign_device)(struct domain *d, uint32_t machine_bdf);
     int (*deassign_device)(struct domain *d, uint32_t machine_bdf);
 #endif /* CONFIG_HAS_PCI */
-#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
+#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY
     int (*assign_dtdevice)(struct domain *d, const char *dtpath);
     int (*deassign_dtdevice)(struct domain *d, const char *dtpath);
-#endif
+#endif /* CONFIG_HAS_DEVICE_TREE_DISCOVERY */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
     int (*resource_plug_core)(void);
     int (*resource_unplug_core)(void);
@@ -545,9 +545,8 @@ static inline int xsm_deassign_device(
     return alternative_call(xsm_ops.deassign_device, d, machine_bdf);
 }
 #endif /* CONFIG_HAS_PCI */
-#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
+#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY
 static inline int xsm_assign_dtdevice(
     xsm_default_t def, struct domain *d, const char *dtpath)
 {
@@ -560,7 +559,8 @@ static inline int xsm_deassign_dtdevice(
     return alternative_call(xsm_ops.deassign_dtdevice, d, dtpath);
 }
 
-#endif /* HAS_PASSTHROUGH && HAS_DEVICE_TREE_DISCOVERY */
+#endif /* CONFIG_HAS_DEVICE_TREE_DISCOVERY */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
 static inline int xsm_resource_plug_pci(xsm_default_t def, uint32_t machine_bdf)
 {
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 0026a0963b..f624e90992 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -86,12 +86,12 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .assign_device                 = xsm_assign_device,
     .deassign_device               = xsm_deassign_device,
 #endif /* CONFIG_HAS_PCI */
-#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
+#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY
     .assign_dtdevice               = xsm_assign_dtdevice,
     .deassign_dtdevice             = xsm_deassign_dtdevice,
-#endif
+#endif /* CONFIG_HAS_DEVICE_TREE_DISCOVERY */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
     .resource_plug_core            = xsm_resource_plug_core,
     .resource_unplug_core          = xsm_resource_unplug_core,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 805a9a528e..4e67bc214a 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1461,9 +1461,8 @@ static int cf_check flask_deassign_device(
     return avc_current_has_perm(rsid, SECCLASS_RESOURCE, RESOURCE__REMOVE_DEVICE, NULL);
 }
 #endif /* CONFIG_HAS_PCI */
-#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
+#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY
 static int flask_test_assign_dtdevice(const char *dtpath)
 {
     uint32_t rsid;
@@ -1524,7 +1523,8 @@ static int cf_check flask_deassign_dtdevice(
     return avc_current_has_perm(rsid, SECCLASS_RESOURCE, RESOURCE__REMOVE_DEVICE,
                                 NULL);
 }
-#endif /* HAS_PASSTHROUGH && HAS_DEVICE_TREE_DISCOVERY */
+#endif /* CONFIG_HAS_DEVICE_TREE_DISCOVERY */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
 static int cf_check flask_platform_op(uint32_t op)
 {
@@ -1995,12 +1995,12 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .assign_device = flask_assign_device,
     .deassign_device = flask_deassign_device,
 #endif /* CONFIG_HAS_PCI */
-#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
+#ifdef CONFIG_HAS_DEVICE_TREE_DISCOVERY
     .assign_dtdevice = flask_assign_dtdevice,
     .deassign_dtdevice = flask_deassign_dtdevice,
-#endif
+#endif /* CONFIG_HAS_DEVICE_TREE_DISCOVERY */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
     .platform_op = flask_platform_op,
 #ifdef CONFIG_X86
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 11:01:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 11:01:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168657.1494671 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtO-00060T-CQ; Fri, 21 Nov 2025 11:01:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168657.1494671; Fri, 21 Nov 2025 11:01: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 1vMOtO-0005zX-5e; Fri, 21 Nov 2025 11:01:30 +0000
Received: by outflank-mailman (input) for mailman id 1168657;
 Fri, 21 Nov 2025 11:01:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOrV-0007TB-KM
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:59:33 +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 27952b1b-c6c9-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 11:59:31 +0100 (CET)
Received: from CH2PR05CA0052.namprd05.prod.outlook.com (2603:10b6:610:38::29)
 by CH2PR12MB4039.namprd12.prod.outlook.com (2603:10b6:610:a8::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.12; Fri, 21 Nov
 2025 10:59:25 +0000
Received: from CH3PEPF00000013.namprd21.prod.outlook.com
 (2603:10b6:610:38:cafe::f4) by CH2PR05CA0052.outlook.office365.com
 (2603:10b6:610:38::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.5 via Frontend Transport; Fri,
 21 Nov 2025 10:59:24 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF00000013.mail.protection.outlook.com (10.167.244.118) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.1 via Frontend Transport; Fri, 21 Nov 2025 10:59:25 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:59:22 -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: 27952b1b-c6c9-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=S7GrE8FJe99xLbm+R71hcFOTciEGLT/wRsXTXslT39Xx3BwionQhvOWPK5f+Q1J+ZMjAXBoIUtmbfS4ZywGJB1oC1FQ3lY1jNL7HD2n2sAUE0Qkkzg+borfmRsv5f8hy+j7EEHvCoUElbPnQj71RzISY8Doos4BVbaSkzlZM5lx5l3+tVCz9qsx+oBUm1WJ5B79KTSJq+AvtB7KvWgrIRBKHMJ2KGQjT0+XKlJOtCOlBZWaAYyjrsvXwdYJmgqN92pabH9p6DT3+lBAaX/9QHIeH6Jt5u8uTqWjgVgMp7SgMscTlzbIVMesyBJGh0BjZCFlNt9kOKuqMaTuTwJnBZQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/3CdRgNX28aRLgpd7ra/As+vBGn4QaDTgU87mycvl5g=;
 b=tOEZvQg2YoE/LXN4F8i5P6POz03ctMbMxwiOym74gZnXMK9RQDPCs4It+loljZWX8BULkJUcBrXRAj0hl6EEw+ihGFBNFHpKja66VurL6TCNhhg6wCW6XF3hMJGlRv7VHv3HDcx+S9529V7l+2bh2uVNcxtMtAoOIVK6MR5ENCI93Ph/uWai2Ri4tWDk5cq2zp3S5+qHbClw7Ik/d9biIpTa3uWjvuV2l6+TK4Qjx5wJtOnaMRyzGWjMTjRP23hiyUw2b53C8utHE+46lWVeTbxj2SSCpE8gPhfuAPVet6rQIMyHK+F1rnlVZtsMuUItPhuQfLUBWlcksP/ngStHCQ==
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=/3CdRgNX28aRLgpd7ra/As+vBGn4QaDTgU87mycvl5g=;
 b=0oMpPadpLGyBjXzhIf0id+aWBwVgaH/bCtt4jQMNd3AseoeYv+G7dwYp3hO2XGYeKOnFju1shZFc63PZHELNA/isT5ZVidtcRW16Kk/Nq2FR80O7j/a8yT+jr99c/JOryHEeFBDifmTKt45qufnQUnGH7BEZKtNehpt2slCV2po=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Michal
 Orzel" <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v4 21/24] xen/arm: wrap arm-specific domctl-op with CONFIG_MGMT_HYPERCALLS
Date: Fri, 21 Nov 2025 18:57:58 +0800
Message-ID: <20251121105801.1251262-22-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH3PEPF00000013:EE_|CH2PR12MB4039:EE_
X-MS-Office365-Filtering-Correlation-Id: 91530662-0d94-4da3-69a4-08de28ed08e0
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?wQDsyskaD56dipD8ZswasXFyTR+fJp9DnigAiHQMatypDySz1vja4iXhELiO?=
 =?us-ascii?Q?jex5CyEwb0UE1hw8YweIuh/NgxA7SXBCRdsnB3uNhIXaejnI8kyuPPGPs3BS?=
 =?us-ascii?Q?9mVvu8WXeiGFG60ZJriMiNGkocoQgmJCpHOU1YPnzk7wAbuNy1QSbUjP8sui?=
 =?us-ascii?Q?GE64xGroIytSBhvCV+S4ZboEzmzpbwcjUGoov5dtMtIsDeWiR91xKGOX/vOu?=
 =?us-ascii?Q?zkGcuV/PyGyzVXbJl0BxNhucAfkijgya/HCtiyD05Pq0xsJExEpkZnuku1fP?=
 =?us-ascii?Q?su4B9+4TdFby8gnd2ub78FucC9WAcYu0s+9+Bn3JEQ0gSF/0oGZgu7nSF+1u?=
 =?us-ascii?Q?3q3cnFKtcW6OfdXNAR25NwV+wQTxQyvLu+BStUi8VVthQ1+lMoNvzRA2DyYa?=
 =?us-ascii?Q?tO8suyfIHGusXV37AOyJh89rzcFCfyHamC8CQ8yA4C1m44p/LEL0i4IKgRsg?=
 =?us-ascii?Q?vplOhPTsI0hw9G8JRrH+/ZFy5mJCGwH8W4H+Q+ck+1IOz47zL8LhzIETVSCz?=
 =?us-ascii?Q?tUMhMU7ugmIRCCtxc7MAfjgp7b6Vno/EKx+x7lMQAp81TCJergimMmvd0Quk?=
 =?us-ascii?Q?q0PBE0ieHmZwZ7stUITKSMhTmLLFr856G+bVEBMySrhx1R3WbmasFCXUCdlL?=
 =?us-ascii?Q?lbFsYeXCkqXdev7ZZSAJGN6YI1bqo7RPEcfMDAPKP5ZcRlS6OlOHn7JUKTFU?=
 =?us-ascii?Q?S/nyITc5JZJcHGPNYwl7wmk9YDU9EG6OinkyzABQTOJ7zala5KLBl9TkvZ1F?=
 =?us-ascii?Q?u1rgIaIHCNYghc0AsUy/cWTtij46m5XiNhrvI0I8SyBnNChnABvuwvRb30XV?=
 =?us-ascii?Q?qfeuwipGvq3pVZXo++4AMUNjrMhcME8blPO4SNXUaT2n9MGzMOfhCiPlAGvJ?=
 =?us-ascii?Q?SgxJY8QvA7EQVA/j6WcIMWwuqSgnRDgJf9jcmf2DWPn1DuHNgyUIZjqxrLKm?=
 =?us-ascii?Q?CWAenJMXYYdF4EfGbFPyoDRT4mw2/OSMJ+YqeEUBSINgJtu3zb/NcnRwiQb8?=
 =?us-ascii?Q?9BJFLkhNzykmfETr/fntRT26ipLDxRJyUajf9DzY6dao6yx2KXYRwa11QLRc?=
 =?us-ascii?Q?EeYlYaopjbraqzuzhfXRyTFqG1zoRCJSosg/lz6KoNjYjyqbUTIXbN1Ducc4?=
 =?us-ascii?Q?j4XHoFrUWjUg+FxEqjWbN0TzWFdUoEUzjMC1ZntRCZr4KkDtWkinWbvlns/u?=
 =?us-ascii?Q?NqyIg2paoxUheKsj7cUhI8JE604pNdnrCmiQlxSJIvisVze15NhQHq7K7YKM?=
 =?us-ascii?Q?CMb96rPJcddv+Op2+iJ7rnt8o1w+tAgeRGRkdEjPFf2Sn+1YezBcasLEQhKH?=
 =?us-ascii?Q?9NEaB4qwfZbx4klVKxka1QOwafINy4DwKN5m1X94UijeY+QFLVidmmRpPrcJ?=
 =?us-ascii?Q?JgURl9CSw8ytZnoPllLZ8ct9F1U5Sr00DQ+K+GLxQxCMhCiAjOX0UKm5etNS?=
 =?us-ascii?Q?qieYFZyflnGh8zpJU2h9pcjDCuCQ6CJ7+3Jj1pZw2l8rynsbzPyvfhMph9Py?=
 =?us-ascii?Q?9Zt6LFogHHMKNkaEIj/rxg8frgZ5araPjNATNGSFLjHTfoBbxEa0qDpPFHRZ?=
 =?us-ascii?Q?SP9D8AaiVWWRYk48ccU=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:59:25.4193
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 91530662-0d94-4da3-69a4-08de28ed08e0
X-MS-Exchange-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:
	CH3PEPF00000013.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4039

Function arch_do_domctl() is responsible for arch-specific domctl-op,
and shall be wrapped with CONFIG_MGMT_HYPERCALLS
Guard arm-specific domctl.o compilation with CONFIG_MGMT_HYPERCALLS. Otherwise
the whole file will become unreachable when MGMT_HYPERCALLS=n, and hence
violating Misra Rule 2.1.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- split arch-specific domctl-op into x86 and arm
---
 xen/arch/arm/Makefile       | 2 +-
 xen/arch/arm/arm32/Makefile | 2 +-
 xen/arch/arm/arm64/Makefile | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 2aff1a1630..2f4593f5eb 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -20,7 +20,7 @@ obj-$(CONFIG_IOREQ_SERVER) += dm.o
 obj-$(CONFIG_DOM0LESS_BOOT) += dom0less-build.init.o
 obj-y += domain.o
 obj-y += domain_build.init.o
-obj-y += domctl.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
 obj-y += efi/
 obj-y += gic.o
diff --git a/xen/arch/arm/arm32/Makefile b/xen/arch/arm/arm32/Makefile
index 531168f58a..f8cbf14211 100644
--- a/xen/arch/arm/arm32/Makefile
+++ b/xen/arch/arm/arm32/Makefile
@@ -4,7 +4,7 @@ obj-$(CONFIG_MPU) += mpu/
 
 obj-y += cache.o
 obj-$(CONFIG_EARLY_PRINTK) += debug.o
-obj-y += domctl.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
 obj-y += domain.o
 obj-y += entry.o
 obj-y += head.o
diff --git a/xen/arch/arm/arm64/Makefile b/xen/arch/arm/arm64/Makefile
index 6491c5350b..6b77a15abe 100644
--- a/xen/arch/arm/arm64/Makefile
+++ b/xen/arch/arm/arm64/Makefile
@@ -6,7 +6,7 @@ obj-y += cache.o
 obj-y += cpufeature.o
 obj-$(CONFIG_HARDEN_BRANCH_PREDICTOR) += bpi.o
 obj-$(CONFIG_EARLY_PRINTK) += debug.o
-obj-y += domctl.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
 obj-y += domain.o
 obj-y += entry.o
 obj-y += head.o
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 11:01:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 11:01:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168658.1494679 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtO-0006AI-Vz; Fri, 21 Nov 2025 11:01:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168658.1494679; Fri, 21 Nov 2025 11:01: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 1vMOtO-00068c-LW; Fri, 21 Nov 2025 11:01:30 +0000
Received: by outflank-mailman (input) for mailman id 1168658;
 Fri, 21 Nov 2025 11:01:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOrS-0007TB-Ji
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:59:30 +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 23875a94-c6c9-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 11:59:24 +0100 (CET)
Received: from CH0PR03CA0001.namprd03.prod.outlook.com (2603:10b6:610:b0::6)
 by DM4PR12MB8497.namprd12.prod.outlook.com (2603:10b6:8:180::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Fri, 21 Nov
 2025 10:59:19 +0000
Received: from CH3PEPF00000012.namprd21.prod.outlook.com
 (2603:10b6:610:b0:cafe::70) by CH0PR03CA0001.outlook.office365.com
 (2603:10b6:610:b0::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.11 via Frontend Transport; Fri,
 21 Nov 2025 10:59:01 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF00000012.mail.protection.outlook.com (10.167.244.117) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.1 via Frontend Transport; Fri, 21 Nov 2025 10:59:19 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:59:17 -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: 23875a94-c6c9-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DE/GvEVAomOLSoMfTYKC27hUuGCaQBkEJHlj+fdlgsVtP7vJKldSKYqsffwbBjL/or61XOi8KRq0pFbwih6xfIC/z3p3/HmNyGHDRjD6AHG2D8l+tQkNTfDe55RavQu0ICScTBP8AsYHA8K3myWAQDGtzkgDAJC2flPw165ETm4mwH4qmw/8pOEiARMqYM94Q2JKx3Oqc/mGkAbtb6y5Ib6Z84QLkdlwnlfMjN0NhK0dp6tfi7fptd7g2SN1kzkCPpEb/Pvzq6JjgLBSuVx3eWyzZ9S543kSIiYk+QUr0k/EASLxl17bLwBIaPzAZb9GsT3bFlSxllU3dOQ27ykaVg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9AVFT4eS0mHEUY/gIiu2cmU6pnbgN+Dcl6qdu2LcxPk=;
 b=FLM3K2ZSEOJ2jXtUEp9UdQTNGpnba8xVsBWeY4vbFP2sFAmNqHgJLGHYO5XORBu2dwLfhUth4jxNM399NwkzRNsHdbWTMGiOpPHoRnJE2yWLDivCRUyTHjfOhTiObQBo5BqkhsjbIv2i4jZlbe8cdS4VQCouzPZPvWNebDk8WTUVx378YWIUCIulVzWnyufmOsHRZyiwE/aPUHA6aB/n1ZeGp+qi3H/u1Vq2tSW5hGUNaQ45BH0/Cw0CSxrK9SZq6wXFpCjY41gblJXAY4DnfJqiIM3QYb0Rc/twj8likbBoAGJ4Wlr0sHvLO6WQE4yDYlliba3GNO5lcCjSs6I0Rw==
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=9AVFT4eS0mHEUY/gIiu2cmU6pnbgN+Dcl6qdu2LcxPk=;
 b=2TbU2ES0qHSSSIZXCF0zE6D9/mJoq8ppVlnmC+KEax+h2SNwkNMvqGYjAXqQT7K+WbN06nXNf7+yrvCC16RS2UMdAFnz/+Gop4Bvgm6XHjFZ7WpYf+JdOD8fLhe8GxUPPPgMoakSqkJZ/zWjXe4bVuKt6BBrfdrawW7i4flMFjQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <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>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v4 19/24] xen/domctl: wrap hvm_save{,load} with CONFIG_MGMT_HYPERCALLS
Date: Fri, 21 Nov 2025 18:57:56 +0800
Message-ID: <20251121105801.1251262-20-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH3PEPF00000012:EE_|DM4PR12MB8497:EE_
X-MS-Office365-Filtering-Correlation-Id: 20ddb52b-35a3-44ef-3366-08de28ed0582
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?oOn7F0RaV8lxggaGT977v/4D/2IsZtf9Jl8xkvelFZYxlvRHAxHj6wqvYara?=
 =?us-ascii?Q?kTWNRGTUxDi3EtZZkGf8gnugU+svHk2duB2MAmg9DzJM+1oQcIY7zqQWosgw?=
 =?us-ascii?Q?dFjzjdDhdGW6TxHWMLko42Dmd+kvtu1M1v/F3pO+NFjbZNBIAX2tdXf9ywDJ?=
 =?us-ascii?Q?/zFBjg1FKwou/9jX35kZUD/FNE6q/5BgFg8natRX1HWQD6cwficyStEI+Q4Z?=
 =?us-ascii?Q?2yTQyV4eaj+IkNpZfYngWYHhb3hPnahFY59iq4d0qmVAmcTl1USdNfQAQkAv?=
 =?us-ascii?Q?eeNXL/yFBAxyj1lYWlBQ4u56YY35a7Weg+kSw5Ed9O0Cf1LLS0oLHITCg1E+?=
 =?us-ascii?Q?7EJT9+0OiknKR67OgxNKqROmae5WuyIBoGwTg0ARte8ts1AdvYFkh0SDe3aY?=
 =?us-ascii?Q?Tbv88v+h62OQ8CAZ+G1pFzZ+MQAameSukRAeXNpAFgnXTIo7EPYLhjoUYnJh?=
 =?us-ascii?Q?Wa20Ll6mz8pgmKzOwUnRMb6U1q/EUKZE6iTNd228F/x9e42IoVhIAin+k+oW?=
 =?us-ascii?Q?SPetCuYBlVl+/cW+ET3JBSfMn5w4/ETLDv6ukxW8dwiOX6e2hC4B6jcN+3/K?=
 =?us-ascii?Q?SHSWyx2AJCyZkjw5zbyaiuXrCxRuBUOH415GJ6AnK3EoiQBf5VzhaO5TQQRf?=
 =?us-ascii?Q?frmheGbM3xPRRoTipigpnvoBAwenZs1GLfySU6cNjisu6A4NAMEx3ISaLgxF?=
 =?us-ascii?Q?tHJVwCG7HOBel/t/YSuYFXytRYa2tyvdVO4IJYOreF4L/jX+CcDMPRSnp7tR?=
 =?us-ascii?Q?T3gQCBKYhyAdp/M5nkHFMrJNGHieMm/d2yVrYlcElWd+aGQOl7OpDQbW9VdE?=
 =?us-ascii?Q?kVmMTeuAzeJBVQFNCfzMgfL49vDJfolxc61dapU424G9474nY+2ADv+zZujR?=
 =?us-ascii?Q?XNeb/fxpSM6BbQsLl+nlzMtNw0sCBvLs6bhu/0RL8O0TZtCvZ+dlFba1B8oR?=
 =?us-ascii?Q?dNZtmbLoYlB6fBfCagTVEbw+EMtCrot91iDibPYi8d9VK/jIfSk/Wdsw13+g?=
 =?us-ascii?Q?Je9WLZkDFTD6WJyMsgpICkx2A1OL12m4Z66bNJ2Va29s2iKY3ipI7T293UQD?=
 =?us-ascii?Q?UHDcC+1PrmrDT7z2lshTPWFtqlHDCByTROeVaP5tk0og71dTX0P5al9EwKX3?=
 =?us-ascii?Q?O/rXvQEwsQEjrO+sma0rAVCVX5T7PqMKACtFsL0WbDANXiux6PESlfg2DsZQ?=
 =?us-ascii?Q?QYpdvISKvGlPBzw7jI2Fu6RhN8SjVHeqLGWMOorHdCKpqpt+1dCniuzMPlqq?=
 =?us-ascii?Q?JBlSHreSp7r6GOQ7yedUN56abtxGSDzLZT8ekgeRxDug2ovX1FNj0/DTHrEy?=
 =?us-ascii?Q?Vg5t+gj8450xUr1JKFxuPhpJaiIr6GVOo7UgLVC4absrtt+T0xHkzgS8wEmw?=
 =?us-ascii?Q?ZhEs4oPkFsG5eT4OLq8tZg3FL2FjxPyHTpDwfcpFbgQXnZ4oQ3OhH7+J7ufY?=
 =?us-ascii?Q?hyb9R7yXZljFQlkwYB4mpD6Upd9BvFyN0KRJUT8hMAUXSKPZUfKeUZlQw4h4?=
 =?us-ascii?Q?DI6PZ2gX5kcyu/cnBU1Ov31s4Rl9f5W8B8agwWIZPWLwZoh8BfSWXSwm6uJI?=
 =?us-ascii?Q?J6y6DKjb2BwuorUlmhM=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:59:19.7413
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 20ddb52b-35a3-44ef-3366-08de28ed0582
X-MS-Exchange-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:
	CH3PEPF00000012.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB8497

The following functions have been referenced in places which is either guarded
with CONFIG_MGMT_HYPERCALLS or CONFIG_MEM_SHARING:
- arch_hvm_save
- arch_hvm_check
- arch_hvm_load
- hvm_save_size
- hvm_save
- hvm_load
While CONFIG_MEM_SHARING is also dependent on CONFIG_MGMT_HYPERCALLS.
So they shall be wrapped under MGMT_HYPERCALLS, otherwise they will become
unreachable codes when MGMT_HYPERCALLS=n, and hence violating Misra rule 2.1.
We move arch_hvm_save(), arch_hvm_check(), arch_hvm_load() and hvm_save_size()
nearer to the left functions, to avoid scattered #ifdef-wrapping.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4
- new commit
---
 xen/arch/x86/hvm/save.c | 154 ++++++++++++++++++++--------------------
 1 file changed, 78 insertions(+), 76 deletions(-)

diff --git a/xen/arch/x86/hvm/save.c b/xen/arch/x86/hvm/save.c
index 8ab6405706..5e99dd5998 100644
--- a/xen/arch/x86/hvm/save.c
+++ b/xen/arch/x86/hvm/save.c
@@ -15,62 +15,6 @@
 
 #include <public/hvm/save.h>
 
-static void arch_hvm_save(struct domain *d, struct hvm_save_header *hdr)
-{
-    uint32_t eax, ebx, ecx, edx;
-
-    /* Save some CPUID bits */
-    cpuid(1, &eax, &ebx, &ecx, &edx);
-    hdr->cpuid = eax;
-
-    /* Save guest's preferred TSC. */
-    hdr->gtsc_khz = d->arch.tsc_khz;
-
-    /* Time when saving started */
-    d->arch.hvm.sync_tsc = rdtsc();
-}
-
-static int arch_hvm_check(const struct domain *d,
-                          const struct hvm_save_header *hdr)
-{
-    uint32_t eax, ebx, ecx, edx;
-
-    if ( hdr->magic != HVM_FILE_MAGIC )
-    {
-        printk(XENLOG_G_ERR "HVM%d restore: bad magic number %#"PRIx32"\n",
-               d->domain_id, hdr->magic);
-        return -EINVAL;
-    }
-
-    if ( hdr->version != HVM_FILE_VERSION )
-    {
-        printk(XENLOG_G_ERR "HVM%d restore: unsupported version %u\n",
-               d->domain_id, hdr->version);
-        return -EINVAL;
-    }
-
-    cpuid(1, &eax, &ebx, &ecx, &edx);
-    /* CPUs ought to match but with feature-masking they might not */
-    if ( (hdr->cpuid & ~0x0fUL) != (eax & ~0x0fUL) )
-        printk(XENLOG_G_INFO "HVM%d restore: VM saved on one CPU "
-               "(%#"PRIx32") and restored on another (%#"PRIx32").\n",
-               d->domain_id, hdr->cpuid, eax);
-
-    return 0;
-}
-
-static void arch_hvm_load(struct domain *d, const struct hvm_save_header *hdr)
-{
-    /* Restore guest's preferred TSC frequency. */
-    if ( hdr->gtsc_khz )
-        d->arch.tsc_khz = hdr->gtsc_khz;
-    if ( d->arch.vtsc )
-        hvm_set_rdtsc_exiting(d, 1);
-
-    /* Time when restore started  */
-    d->arch.hvm.sync_tsc = rdtsc();
-}
-
 /* List of handlers for various HVM save and restore types */
 static struct {
     hvm_save_handler save;
@@ -101,26 +45,6 @@ void __init hvm_register_savevm(uint16_t typecode,
     hvm_sr_handlers[typecode].kind = kind;
 }
 
-size_t hvm_save_size(struct domain *d)
-{
-    struct vcpu *v;
-    size_t sz;
-    int i;
-
-    /* Basic overhead for header and footer */
-    sz = (2 * sizeof (struct hvm_save_descriptor)) + HVM_SAVE_LENGTH(HEADER);
-
-    /* Plus space for each thing we will be saving */
-    for ( i = 0; i <= HVM_SAVE_CODE_MAX; i++ )
-        if ( hvm_sr_handlers[i].kind == HVMSR_PER_VCPU )
-            for_each_vcpu(d, v)
-                sz += hvm_sr_handlers[i].size;
-        else
-            sz += hvm_sr_handlers[i].size;
-
-    return sz;
-}
-
 /*
  * Extract a single instance of a save record, by marshalling all records of
  * that type and copying out the one we need.
@@ -196,6 +120,83 @@ int hvm_save_one(struct domain *d, unsigned int typecode, unsigned int instance,
     return rv;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
+static void arch_hvm_save(struct domain *d, struct hvm_save_header *hdr)
+{
+    uint32_t eax, ebx, ecx, edx;
+
+    /* Save some CPUID bits */
+    cpuid(1, &eax, &ebx, &ecx, &edx);
+    hdr->cpuid = eax;
+
+    /* Save guest's preferred TSC. */
+    hdr->gtsc_khz = d->arch.tsc_khz;
+
+    /* Time when saving started */
+    d->arch.hvm.sync_tsc = rdtsc();
+}
+
+static int arch_hvm_check(const struct domain *d,
+                          const struct hvm_save_header *hdr)
+{
+    uint32_t eax, ebx, ecx, edx;
+
+    if ( hdr->magic != HVM_FILE_MAGIC )
+    {
+        printk(XENLOG_G_ERR "HVM%d restore: bad magic number %#"PRIx32"\n",
+               d->domain_id, hdr->magic);
+        return -EINVAL;
+    }
+
+    if ( hdr->version != HVM_FILE_VERSION )
+    {
+        printk(XENLOG_G_ERR "HVM%d restore: unsupported version %u\n",
+               d->domain_id, hdr->version);
+        return -EINVAL;
+    }
+
+    cpuid(1, &eax, &ebx, &ecx, &edx);
+    /* CPUs ought to match but with feature-masking they might not */
+    if ( (hdr->cpuid & ~0x0fUL) != (eax & ~0x0fUL) )
+        printk(XENLOG_G_INFO "HVM%d restore: VM saved on one CPU "
+               "(%#"PRIx32") and restored on another (%#"PRIx32").\n",
+               d->domain_id, hdr->cpuid, eax);
+
+    return 0;
+}
+
+static void arch_hvm_load(struct domain *d, const struct hvm_save_header *hdr)
+{
+    /* Restore guest's preferred TSC frequency. */
+    if ( hdr->gtsc_khz )
+        d->arch.tsc_khz = hdr->gtsc_khz;
+    if ( d->arch.vtsc )
+        hvm_set_rdtsc_exiting(d, 1);
+
+    /* Time when restore started  */
+    d->arch.hvm.sync_tsc = rdtsc();
+}
+
+size_t hvm_save_size(struct domain *d)
+{
+    struct vcpu *v;
+    size_t sz;
+    unsigned int i;
+
+    /* Basic overhead for header and footer */
+    sz = (2 * sizeof (struct hvm_save_descriptor)) + HVM_SAVE_LENGTH(HEADER);
+
+    /* Plus space for each thing we will be saving */
+    for ( i = 0; i <= HVM_SAVE_CODE_MAX; i++ )
+        if ( hvm_sr_handlers[i].kind == HVMSR_PER_VCPU )
+            for_each_vcpu(d, v)
+                sz += hvm_sr_handlers[i].size;
+        else
+            sz += hvm_sr_handlers[i].size;
+
+    return sz;
+}
+
 int hvm_save(struct domain *d, hvm_domain_context_t *h)
 {
     char *c;
@@ -390,6 +391,7 @@ int hvm_load(struct domain *d, bool real, hvm_domain_context_t *h)
 
     /* Not reached */
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 int _hvm_init_entry(struct hvm_domain_context *h, uint16_t tc, uint16_t inst,
                     uint32_t len)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 11:01:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 11:01:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168659.1494684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtP-0006G0-A7; Fri, 21 Nov 2025 11:01:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168659.1494684; Fri, 21 Nov 2025 11: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 1vMOtP-0006Db-1A; Fri, 21 Nov 2025 11:01:31 +0000
Received: by outflank-mailman (input) for mailman id 1168659;
 Fri, 21 Nov 2025 11:01: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOr9-0008Dv-JO
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:59:11 +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 1b352ecd-c6c9-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 11:59:09 +0100 (CET)
Received: from CH2PR05CA0068.namprd05.prod.outlook.com (2603:10b6:610:38::45)
 by MN2PR12MB4301.namprd12.prod.outlook.com (2603:10b6:208:1d4::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.12; Fri, 21 Nov
 2025 10:59:05 +0000
Received: from CH3PEPF00000013.namprd21.prod.outlook.com
 (2603:10b6:610:38:cafe::ce) by CH2PR05CA0068.outlook.office365.com
 (2603:10b6:610:38::45) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.5 via Frontend Transport; Fri,
 21 Nov 2025 10:59:02 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF00000013.mail.protection.outlook.com (10.167.244.118) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.1 via Frontend Transport; Fri, 21 Nov 2025 10:59:04 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:59:02 -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: 1b352ecd-c6c9-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XBoGBM9kmhycAJ/P/h0v0rhxfilNO83Myy1b1yJnrNMptvt443X6MlVY4lnZ/ka6DY2HR4FzfU5smJFyZqxkIJ3fz5Lr8rpBa60hu+ZHYKdfS/l4wI8JYu0UoiXwhgdd7P2wUHRd0SAUZliATLOaMlAhYa7SkQp8cd3YrGux8R2rdockRGZdrFUKvFBNTaKfuLcdEDbgACs0+YrxW+FxZulWNS88pyP1qVKvFFJ5CNJjVxWpBZD89pIoQO7x+W2qkArgCrDfnbkv8D6RP17TEzLYAGWXmMu47hPtxpMXHs59xKdwahvVbd/SpMvEEfSwY+Yn9Yux+Vi67TFhD2kZVA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wwm19MfQLFYMEaHpF+50GvvhGNeqkRUXQdYfCrb3X5E=;
 b=k8JjviAMDf4gx5CWBRnFDV8dRck5gxZwVYYV0wPSAatZCeVYn7pfd+AXLvibMPyLn8Gs2yGGYnSbNz/qACQXO12o8K/Dc/6AaLWx4T7+y26STQHXBlk+bWp+Um8/a0O4qwdY5MH6wU7reaD3wDBInm4RPzqZK3jyEUt98f882ashUFsIslJJ7E6Y3jp+oijM0jEOoQzkNfU3EwxVp1G7Nae/O6T46u3umUZaR0vocxqucpgSmdIIjatarIKVXAyFnhDPcrYSDMqDoIetAqKDuIrglCWy17B5Sbjqke91SLx+QL8glw4Jp1f//fczhP44wK4w8ZseAdp75n0DeudZHQ==
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=wwm19MfQLFYMEaHpF+50GvvhGNeqkRUXQdYfCrb3X5E=;
 b=FLT8O90nGGVtn7XYlH9JCiz+LfUZU6A+LcSn0Mbqbz5XEhzTPL48uU65EGUe/CqOqIVMJDV3BOQvf0DLCWToDoMWRxYf/avv+7xaNisi6He17I2ZddL3IbwbZcMnvJNi/XEh4xhu+2NNN6KnME8qVMd68Ko8vQkXw/RvnG+IBIE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v4 13/24] xen/domctl: wrap xsm_set_target() with CONFIG_MGMT_HYPERCALLS
Date: Fri, 21 Nov 2025 18:57:50 +0800
Message-ID: <20251121105801.1251262-14-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH3PEPF00000013:EE_|MN2PR12MB4301:EE_
X-MS-Office365-Filtering-Correlation-Id: 536e7e46-c303-4df3-258b-08de28ecfcae
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?08YJzvRQ6DZaXTYa5PH97VDH9+1ic6fnf97OwLE84gAEXEY2ppY5T2wkyC0v?=
 =?us-ascii?Q?jF7QSqbdfXtNupBeAktzEbfH0yaFcKzz0Mm3hJdIp3SXUV17bM7lqhJO17t1?=
 =?us-ascii?Q?HhV0ehj9SOwcyQijaTsphwQijfbiIeBzfpjUuzOVc9mMUMPjCfTNz/oo3fRL?=
 =?us-ascii?Q?SpznNuyOnUo5MQlgh86lp5V58RQq9oAAJifhXPRsJ4IgPzXO0DZBj1OsCZBg?=
 =?us-ascii?Q?6RUxLJox7TpZFceiza7dHp3k/FOABRxxCvtm0SUc9/AiuJyQ0atM+jMUKqnI?=
 =?us-ascii?Q?yl8++vL7lp3pM+Y4wHpzQz5j+yB8BWc/wYEJKfC58Hjwhm8ui0KiGUYGmuc/?=
 =?us-ascii?Q?tbnzjFahXoNF6Te+Woj3l8UYwsAB1/q+XhcjMvVRUcQu/kex/Zn4TFecxbxF?=
 =?us-ascii?Q?OEMOx95QwZ8+8UBAa9yw1mlDZKdWtOFN8BA/3YwKLrV8UE2y9Tsr2PaS0ERo?=
 =?us-ascii?Q?A/SyRJeUdry4cx0JM6b3aL1Va3beVOQgcT3biw9uxJSgnAxu2KmYxZfEEt/y?=
 =?us-ascii?Q?eIpuEz2xKt9XfDk31NpDQ6TIiigJnKIvUDc018/uh4pFDhUoHHIxOl/rVSWI?=
 =?us-ascii?Q?QV9RBoZwJK/QlUQqYuf25aHhaBwOe3to50QqXmbobMeOMarFJzzsfRk+fSyj?=
 =?us-ascii?Q?oU74CVXuEytujp8ycxPF5gyqjjWI4mEBwJS+0jWOgLajfKYr0VVGPRZjTzSa?=
 =?us-ascii?Q?zEqIsfDiEy5dQF/CklKidY58pQZJ77LWs/I5+urZdHa1N7ujcHtzoWKBZK5m?=
 =?us-ascii?Q?mO4eYC6m73k2/9gnTzeJPjIwQNikAyK8oL5eJ++VvOVzpGMYMFDehAHxQs1N?=
 =?us-ascii?Q?ro1skVaMwzswDqaDOLNxdGLvcZZzl111imwQ7D956UoD6JlTvldXMfhy7ngc?=
 =?us-ascii?Q?+dgCaWUMHdHyXz1/VYiCZIMi/jHIjBFxtHTTXd9DVlfFByx5MLO/pZwNhjmb?=
 =?us-ascii?Q?FHr2tWJaQL1gYgDYRSx58HLfPF3lFezAydVFxsVqHg3dW+GvbtlCR5TWsgpJ?=
 =?us-ascii?Q?Dwc93LSo4FqLX7CzhDJSE8VPMDSuYQtrWR68q/+JqxsTRYMeY9HRh7n5/0ny?=
 =?us-ascii?Q?WBWVI7b/1HsQSF1f/hJi64FhUre/uc95BMf0DcL7mzN4Jl73s84IrnWtPh6e?=
 =?us-ascii?Q?IfFku2BMPrG52EEURPJdF8U/TySoYJyh8JEVewNXETu9EbQ00iUyqVyEE+Em?=
 =?us-ascii?Q?P3r4b39Ckqls11IWGFR8qkMdBCfBt6ElaR4NmK4k7YIc4i28HNGrWpCICWVD?=
 =?us-ascii?Q?dj7OfNb0h/tarW4W2GCbiY1iFGN928oL/iPdAmgphC1EwejgCnSHdf4R6uDb?=
 =?us-ascii?Q?f4fTsOwEWtDrX35PhFeTNSoxiFrh47z0bwRcJAgg3/5ckL5EfdDFjO9+8aLV?=
 =?us-ascii?Q?WK6QNjng877amkm7LpYKk8QGqoCw/u2d0zFbyxW32OfchmtZLeX8eubVP+uf?=
 =?us-ascii?Q?vjsHM1hSwSVTpRpq1oeEjTjUAX17tfwvJTu1JrINmofVr8PA4rBJf3Z6w1nB?=
 =?us-ascii?Q?ISBetj7eLQ5c4fgnTRNbok1PpyQshC25LdfnH9K7QhP4AZtr7QV70H62iA2E?=
 =?us-ascii?Q?WXr+d3veFvp5hy1dp8E=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:59:04.9528
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 536e7e46-c303-4df3-258b-08de28ecfcae
X-MS-Exchange-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:
	CH3PEPF00000013.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4301

Function xsm_set_target() is only invoked under XEN_DOMCTL_set_target
domctl-op, and shall be wrapped with CONFIG_MGMT_HYPERCALLS. Otherwise
it will become unreachable codes when MGMT_HYPERCALLS=n, and hence violating
Misra 2.1.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
---
v2 -> v3
- wrap the whole inline function xsm_set_target()
- add missing wrapping in xsm/dummy.h
- address "violating Misra rule 2.1" in commit message
---
 xen/include/xsm/dummy.h | 2 ++
 xen/include/xsm/xsm.h   | 4 +++-
 xen/xsm/dummy.c         | 2 +-
 xen/xsm/flask/hooks.c   | 4 ++--
 4 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index a5deb8a975..a598d74f1f 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -158,12 +158,14 @@ static XSM_INLINE int cf_check xsm_sysctl_scheduler_op(XSM_DEFAULT_ARG int cmd)
 }
 #endif /* CONFIG_MGMT_HYPERCALLS */
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static XSM_INLINE int cf_check xsm_set_target(
     XSM_DEFAULT_ARG struct domain *d, struct domain *e)
 {
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, NULL);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static XSM_INLINE int cf_check xsm_domctl(
     XSM_DEFAULT_ARG struct domain *d, unsigned int cmd, uint32_t ssidref)
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index ee43002fdb..154a4b8a92 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -59,8 +59,8 @@ struct xsm_ops {
 #ifdef CONFIG_MGMT_HYPERCALLS
     int (*domctl_scheduler_op)(struct domain *d, int op);
     int (*sysctl_scheduler_op)(int op);
-#endif
     int (*set_target)(struct domain *d, struct domain *e);
+#endif
     int (*domctl)(struct domain *d, unsigned int cmd, uint32_t ssidref);
 #ifdef CONFIG_MGMT_HYPERCALLS
     int (*sysctl)(int cmd);
@@ -255,11 +255,13 @@ static inline int xsm_sysctl_scheduler_op(xsm_default_t def, int cmd)
 }
 #endif
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static inline int xsm_set_target(
     xsm_default_t def, struct domain *d, struct domain *e)
 {
     return alternative_call(xsm_ops.set_target, d, e);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static inline int xsm_domctl(xsm_default_t def, struct domain *d,
                              unsigned int cmd, uint32_t ssidref)
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 7cf00ce37e..9774bb3bdb 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -21,8 +21,8 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
 #ifdef CONFIG_MGMT_HYPERCALLS
     .domctl_scheduler_op           = xsm_domctl_scheduler_op,
     .sysctl_scheduler_op           = xsm_sysctl_scheduler_op,
-#endif
     .set_target                    = xsm_set_target,
+#endif
     .domctl                        = xsm_domctl,
 #ifdef CONFIG_MGMT_HYPERCALLS
     .sysctl                        = xsm_sysctl,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index ca07585450..9b63c516e6 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -641,7 +641,6 @@ static int cf_check flask_sysctl_scheduler_op(int op)
         return avc_unknown_permission("sysctl_scheduler_op", op);
     }
 }
-#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static int cf_check flask_set_target(struct domain *d, struct domain *t)
 {
@@ -666,6 +665,7 @@ static int cf_check flask_set_target(struct domain *d, struct domain *t)
                                  &dsec->target_sid);
     return rc;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static int cf_check flask_domctl(struct domain *d, unsigned int cmd,
                                  uint32_t ssidref)
@@ -1888,8 +1888,8 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
 #ifdef CONFIG_MGMT_HYPERCALLS
     .domctl_scheduler_op = flask_domctl_scheduler_op,
     .sysctl_scheduler_op = flask_sysctl_scheduler_op,
-#endif
     .set_target = flask_set_target,
+#endif
     .domctl = flask_domctl,
 #ifdef CONFIG_MGMT_HYPERCALLS
     .sysctl = flask_sysctl,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 11:01:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 11:01:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168662.1494692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtQ-0006UC-1E; Fri, 21 Nov 2025 11:01:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168662.1494692; Fri, 21 Nov 2025 11: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 1vMOtP-0006R9-Nu; Fri, 21 Nov 2025 11:01:31 +0000
Received: by outflank-mailman (input) for mailman id 1168662;
 Fri, 21 Nov 2025 11:01: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOrK-0007TB-IU
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:59:22 +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 1f082ff8-c6c9-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 11:59:17 +0100 (CET)
Received: from CH0PR03CA0016.namprd03.prod.outlook.com (2603:10b6:610:b0::21)
 by SA3PR12MB9159.namprd12.prod.outlook.com (2603:10b6:806:3a0::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov
 2025 10:59:12 +0000
Received: from CH3PEPF00000012.namprd21.prod.outlook.com
 (2603:10b6:610:b0:cafe::51) by CH0PR03CA0016.outlook.office365.com
 (2603:10b6:610:b0::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.11 via Frontend Transport; Fri,
 21 Nov 2025 10:59:10 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF00000012.mail.protection.outlook.com (10.167.244.117) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.1 via Frontend Transport; Fri, 21 Nov 2025 10:59:11 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:59:10 -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: 1f082ff8-c6c9-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mP6UxM53kXBQFRzYC4irbUBA1QpxR5acj3Xd9sD6qYmem7bw47e0ntI9VhnrcIHZQ8gUp5Mv5RAbs607F1pmqvU4P8kwIXGJ4UwZ+ypKJXY7VMLge51ffUrdBrCPaOswCYpEc4b6nYbp+9ZNwHH7s0+too+aAoY/6ehypzVTc9uiY18oqMSVFfFAOYBgN+6GAbTxNm5G8DXSxGsKdbtPzRMUernmcavTVyp19C6ncSoSG8/JvHrzgIISdxfODtOOjSNI+Ix9w8fmbeivpM9ji7QtXVnRLrm/rUFmdZNacz3ue/2NzlKHY0sw5MDp18MfCc3Mpop8xALn6a6kBOT/CQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xNMzRlErBQ12Vn+6GkVpQ076LkBKAM8h0jxV4hHbrGg=;
 b=gR5A+EXMxJpzoue0zSwlvhDOqHwNXAX6ekPEs8f76K+fwSC6pM/W7KSOEVbonVI40HwkiOQGcOudG3Z6XLsUxKiCGBoEeJJck388hMlkIOmW80TRuzgYcbumT6SDpJ4Xo/BvFfh6YikknqeL53+NQNOgpD43XWFSFRPoKAFgxwJEw309mzpcxaEMhMxPLmu1UzlnKWS+wHBPOVg7DjApkFc+fOSocTEHqJmHkD9iWO6uapBbgX1RKOlWfQ0wBnZWaxLLbHbwy3pCP2nYYXaIv5QRcZK6xM1zX/hkO1O0Yt1Q+V+9XWm6FtfMEUJoesVvN0RBpGcIAQReoiHVZT1Mjw==
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=xNMzRlErBQ12Vn+6GkVpQ076LkBKAM8h0jxV4hHbrGg=;
 b=S+OcfJN+8JcIN0yBmlRamMtPDjEkjaryu+ouz8jY1/xU4EOFKICXjYEXk6GmeBOeiD5+sa18+g2vqT2BQXdpo4M4WiHjYKTzsgGrCEvsXEfpeNty1mNBB6aOioeKDYsiXtcO+Fko3fVkeSfWFsUL792vpHrvqaHY7Zfy+98jHA0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v4 16/24] xen/domctl: wrap iommu-related domctl op with CONFIG_MGMT_HYPERCALLS
Date: Fri, 21 Nov 2025 18:57:53 +0800
Message-ID: <20251121105801.1251262-17-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH3PEPF00000012:EE_|SA3PR12MB9159:EE_
X-MS-Office365-Filtering-Correlation-Id: adc24ce5-6a61-4833-cb75-08de28ed00e0
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?tEwCc5uFCZdnqENDScLlK7Ub9mqOlZszBiePqtHyf4qt22Blr1c3Qr9iMsDV?=
 =?us-ascii?Q?NNOHVllZifLKnC/+FdSHlHAQfeonatxopbIr+eXKaTRB5O8WSPGmISxHJNEX?=
 =?us-ascii?Q?HyILqsjvFC1ZzAylTBDsHkfnhY+rEtj7EIDKwZgUaDfxPEonX6Q7dPZNqtkp?=
 =?us-ascii?Q?eJTPcoag4WO0mfcsYKXO7EW65w0g2kYcz46ooGJ1XTw9bya0xsA2XrmicSpN?=
 =?us-ascii?Q?ziLyYHKjcR8K3wOn8pS6/dxbRF3Tl/h1dmjOvV39TUUYr07DLQsMVo8n2p82?=
 =?us-ascii?Q?2N+V7h/F9+etB1m0LvI4c2/TLin6DNJXfsJjO23zF03H+6DY1j2qggG/qt2K?=
 =?us-ascii?Q?WLJsON3HNkfpS/N2qjT2Z6gkvmhbi2b+sQWRq5WdsnULdpVHqfYXSwDe8hme?=
 =?us-ascii?Q?35siiomI7lRgY2aYK9l/HfiEpyq6HOil+N87HOZZbStyzmdjc0/7IwEF0Y3z?=
 =?us-ascii?Q?1Hfd8agWcFEOR6r8A7rzYojOYkpujdGe3f0o+K80Rb1/iV3Mjw8CeiihXJfV?=
 =?us-ascii?Q?Vve2osvjcw8DHT/cZDoUcxoBDMMVn2jkrzbj0FG4ringLOI/xSH7E1lsYyy7?=
 =?us-ascii?Q?ElJzNIrnlRO/RPjH3N/3TjeuWhANFbBRqc05s7YtvnGXOHcaw/Lc131B5otb?=
 =?us-ascii?Q?YYhwYhpbKfcub53eNMEQAcTPRHJdCOn6oICDd98InBUTPhQHBzX3aTUwRtLj?=
 =?us-ascii?Q?cnmj5oN7CiP/TBx9ng/O6XV//XiphpnVZTlCGIqpR/kVJO+vrEBsFWqh5Kbk?=
 =?us-ascii?Q?LUeeuqy8kX23mtwco30OD3AV9ru1o54r991EL/GKHBTxSCWWYHfLfJSMStkt?=
 =?us-ascii?Q?8BOjxwd4fKcq7MkQiQeLIQH2lfuK94zPzZcbnh4L4xEHw79eu8Lk3zkfNrXW?=
 =?us-ascii?Q?/iMc3KH4J8tr+TXVKtAT7EP4OjOub4AfnhFSGp+EZds89yirBmM39JttM2Tj?=
 =?us-ascii?Q?qrkhaueUvKKvSiN5IeJe9eEcTvM32wg5h6MItPERCODCX7UnWRGYpy8PKL2D?=
 =?us-ascii?Q?fYAqjC3ol7JyPbtKr9Q2rfLCZlhHdj0V3756ZJUkGv9/uA0tDd94m7+cPal1?=
 =?us-ascii?Q?D5Tlax+TP61BdCvXkepYDI5YUAsYAiFH/KHQFktvpv7EsGFnl8lEVpcz32cj?=
 =?us-ascii?Q?NiPelogXC+MiloaNGzLEkwFnb8Cn0zp2OZ/d6gUgilquwmaYZlPON4Q0KbZg?=
 =?us-ascii?Q?509DbFogZy06vDTY73ztvBL/y6CCCH/r/Z1nrfk7Bp27+EOZrJDYVU3suRxO?=
 =?us-ascii?Q?99TO9p+aqZextUTr3YfMpNrA4SHwSk7ayir/2qIpAvC/jwRX47NFJD/A4xhI?=
 =?us-ascii?Q?BWSVYw5T7oHBeJLZiA+s9/UOpdATyI2C8FIi3Wv/FO9zeOfBeQIJxV22Bj6m?=
 =?us-ascii?Q?22A+tjjpwrTGh7gObL9BUOATZxlaQRC625GfYDajeF00bd56m2500+KVPE/D?=
 =?us-ascii?Q?EBWKnTaY9BB766i+7Z3gR2acR4eS+W14mbkjeScdJUgsx9TgqMhm35+/U3im?=
 =?us-ascii?Q?bpRuqxC3e/2pSh9OKdlWe5L3cNUVqb9CjAT8FWVDbi/2kPCjFQCAH6X3ivAE?=
 =?us-ascii?Q?uhlM0SUkxtbrfX/I4qI=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:59:11.9970
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: adc24ce5-6a61-4833-cb75-08de28ed00e0
X-MS-Exchange-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:
	CH3PEPF00000012.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB9159

Function iommu_do_domctl() is the main entry for all iommu-related domctl-op,
and shall be wrapped with CONFIG_MGMT_HYPERCALLS.
Otherwise it will become unreachable when MGMT_HYPERCALLS=n, and hence
violating Misra rule 2.1

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- new commit
---
Commit "xen/domctl: wrap pci-subset iommu-related domctl op with
CONFIG_MGMT_HYPERCALLS" and "xen/domctl: wrap device-tree-subset iommu-related
domctl op with CONFIG_MGMT_HYPERCALLS" are the prereq commit.
---
 xen/drivers/passthrough/iommu.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
index c9425d6971..8812e38174 100644
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -625,6 +625,7 @@ void iommu_resume(void)
         iommu_vcall(iommu_get_ops(), resume);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int iommu_do_domctl(
     struct xen_domctl *domctl, struct domain *d,
     XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
@@ -645,6 +646,7 @@ int iommu_do_domctl(
 
     return ret;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */1
 
 void iommu_crash_shutdown(void)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 11:01:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 11:01:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168671.1494716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtT-0007SM-FS; Fri, 21 Nov 2025 11:01:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168671.1494716; Fri, 21 Nov 2025 11:01:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtT-0007Rx-C7; Fri, 21 Nov 2025 11:01:35 +0000
Received: by outflank-mailman (input) for mailman id 1168671;
 Fri, 21 Nov 2025 11:01: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOrN-0008Dv-Pp
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:59:25 +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 22466583-c6c9-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 11:59:23 +0100 (CET)
Received: from CH0PR13CA0008.namprd13.prod.outlook.com (2603:10b6:610:b1::13)
 by CY5PR12MB6645.namprd12.prod.outlook.com (2603:10b6:930:42::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov
 2025 10:59:17 +0000
Received: from CH3PEPF00000015.namprd21.prod.outlook.com
 (2603:10b6:610:b1:cafe::1b) by CH0PR13CA0008.outlook.office365.com
 (2603:10b6:610:b1::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.4 via Frontend Transport; Fri,
 21 Nov 2025 10:59:17 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF00000015.mail.protection.outlook.com (10.167.244.120) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.1 via Frontend Transport; Fri, 21 Nov 2025 10:59:17 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:59:15 -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: 22466583-c6c9-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nkCbCIX2JSHTC0qFgslGT1yCz9+FZvGDqVkH4celR4Le7V3MtKVuC7Yw40NLzJ3BR7bg4hZegtBZM2l9RgyS0aqUBBAmD3f11v/m81X/wl+V+czQA51E7C8WyctZ/uOuY7JCChKEuIc1rbcp1bHyWmKhDXoDsnWB1wAFH16Wy/tiYnjcfsBRUhaoHRxzb4jn9LwXVZZX9duqGz4YmMjbjSpWPkqnFChSXBytXb6VZxHMJUurDe5ReXQB3vAOlSjPnKW2AAIEt5MGJhnC6SO8ADq2yuQ3rdGN9s7kFdosJcV5jIeEgqY4anBPVlcSXff+dHKXMZX+It/4d8Z2kkDbcA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bok7u4Xk+jAmguRQIjJccc8H+q65eQAsNIZzfh2MqlE=;
 b=hjIrAUnmKTfgGZGb4fLX513VZWTHa2RYbMiWWwGsdRrLHqlb2oDBRpYu5xbwNBd14fndoZVfkm0tlyFz1gtkSnISnZAy5sB/csEamQzAdUvsmxSOKvzG70Gsj9jnagJ3wzFYr/6zy2xUvT115vlvJqt/SFRgUpIjvWbqmrAhl6rNz19XSI/sSk1y4GscXH52dCor/RDBQFzerhi2VAkrLqMB/O1dDeAj2QNRyRLeGigsjzjD6HCTk+FaFfjS/3XJMJ9F9USSQUFyhQibSIOra8XQKsdCHufLTfguXBkYHeSS8JVJGAjuo7qI3oA61tjqqHnGXf/hFTqUDiErw42TDQ==
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=bok7u4Xk+jAmguRQIjJccc8H+q65eQAsNIZzfh2MqlE=;
 b=N6KaD++mA6MdxZFClLVvvy6Go+cPRAcWhplY6Ih0SnsW9UofK+AGJPx6h9LfvxDXJHDKKHGOGX9Fkdr5INXJ7+6gEpYpbHfpRNkrCqfatuzqJg9tAesqnj6H770o7CM3/oQeBBg1GxP0aBx8F9rK0s0huu61ybqpeZQnBEkxXHk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <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>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 18/24] xen/domctl: make CONFIG_X86_PSR depend on CONFIG_MGMT_HYPERCALLS
Date: Fri, 21 Nov 2025 18:57:55 +0800
Message-ID: <20251121105801.1251262-19-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH3PEPF00000015:EE_|CY5PR12MB6645:EE_
X-MS-Office365-Filtering-Correlation-Id: f530720f-1606-4d31-0141-08de28ed0437
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?90bMlelL283CidhHjedQ5xMwk11EtBNdvE5uTplqvuYWkW2PhYVNVcfdE+oo?=
 =?us-ascii?Q?IespSUyKVSJRxpe87ajzIx4hisJZmtSRReu1LhmOZfnW4YdA5oVhL5TezymT?=
 =?us-ascii?Q?28joA4TftmAOxJeQkO0YRaOYBxkjHLHs9iv8ubjaHlv9Quv8Ks2OzXx4WGe9?=
 =?us-ascii?Q?+Dd6W0eT5IydQS573S07PLpRNGR36pEWD35hN7+/8QFEAexb5lUcGgSN+t5Z?=
 =?us-ascii?Q?QVKZwbuNwvSnl/fdifLq/DZVGApeX2/L6kly5/5u9EDXqIlzY1x3utRaVxIN?=
 =?us-ascii?Q?9m/9fwJTsFOXBNHSn8YPMmavmt/ldu/BNbTNSiMzF9HcASgdcAqeAStJU8xT?=
 =?us-ascii?Q?ibdSIMrNEP5Ep7manFYIbPQmZDp3uGG/dNktzpZKd+sNt5fHVapo7Z28Dezj?=
 =?us-ascii?Q?OvH9mdp99k+c32zj8dQJYcIhAcZCtmGeBtNoo28OEn5AgFhp/1AyA1YBUCuq?=
 =?us-ascii?Q?ULy7QWq/3B6slCV6oQmetqP4KpMesMNrTlaHyNj9zaVohHXTKpJ7a2KeUIUM?=
 =?us-ascii?Q?cCuZMCu0wKAjsX9Z0hUfxGaduVZKBUPw4PGsDcwB//A6AbzshFKtp+7Eq7TL?=
 =?us-ascii?Q?CSPJEnqkqMIA1oes43Om5wOelUtfzNWiafY5Fmh89pF9uZByh4XDjuDv+tb/?=
 =?us-ascii?Q?e6dN4IP7TyTwCNGqDuYa3LZlF8ZsclQNI+zyo8UF5Mvb491M+MTRnl2kXtid?=
 =?us-ascii?Q?5+/wDvA0iDoVu6wvslIY+4qpIsVSmYZCQTiyYyxKaQC1C2pxmAVfA4/iNocr?=
 =?us-ascii?Q?KtFrz1JxWnBXn2mJRl6Htc1JJ2RVTgiYqKey1GdKTMTZrtorWIiyCGlH55dD?=
 =?us-ascii?Q?aLpr3AXuXSCo5xjMqDUM+Fobh44XzDHgV0Kdqai30sl3IgY/qxC/QzjwTTq0?=
 =?us-ascii?Q?viEk2le0oiiLjGDFnj29XklR2gyrHKjSimEiBm1Fp0Me/dQd4PW5Ia+j2Hox?=
 =?us-ascii?Q?Ae+stMbTSwmpU89o2mz/C9KalnIo90pJzn6cW14JtvIDsdSG2wmvLr4vKxT/?=
 =?us-ascii?Q?loR58yL3ZerYcjqJg48qm/TpSzL0xPtRv5EOz3dD87n9TxTQR/lTnbwvR17u?=
 =?us-ascii?Q?9HPHT7Pig1PJIMsBfQwREAMAQb04GOo6bN5VjRoo9N3LblSBW3q85R+EWRJ3?=
 =?us-ascii?Q?HlMdAFiy0VN75ZStnYJE4H+NaWubkKBi5PNrPI7s71oYkDwN2CLWY6A646vW?=
 =?us-ascii?Q?p3fa331UEpJWILCXyUOjCWDg/woRPthI29YbfkvSstFtbRDUeKUPt3ynG2co?=
 =?us-ascii?Q?GXKYRppacNINSL3sU95HaSBZ7dT/lOw2LXUXdYopg69/UZJvOn6BeJYgE4wL?=
 =?us-ascii?Q?9UoLwwvtNG+dDT4xM2a0klmuXoihnrRuDylgLAFyaj5XI7LyIQ1SAy/+umTp?=
 =?us-ascii?Q?9hP82/0HJaHC/CzDlIcGoTQjksYZU8cLSyYQhKAFmM7IoGCkLV/VLbN853Xy?=
 =?us-ascii?Q?HoRWUdCxvhE0p5qyNRYomRnONpcrepy3wzdoQVOvLcbz7J222uWgytcOwSU7?=
 =?us-ascii?Q?Yf6hWMF+k1UvjQGUWunwKVOo3DrYS/9gpPPCwao9fbUjTado9a8RGR83jXyQ?=
 =?us-ascii?Q?O6d7Ec/eg39sZUR+aeE=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)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:59:17.5682
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f530720f-1606-4d31-0141-08de28ed0437
X-MS-Exchange-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:
	CH3PEPF00000015.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6645

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

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
v1 -> v2:
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
---
 xen/arch/x86/Kconfig |  1 +
 xen/arch/x86/psr.c   | 18 ------------------
 2 files changed, 1 insertion(+), 18 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index c808c989fc..8368c6ecf0 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -191,6 +191,7 @@ config TBOOT
 config X86_PSR
 	bool "Platform Shared Resource support" if EXPERT
 	default INTEL
+	depends on MGMT_HYPERCALLS
 	help
 	  Support of Platform Shared Resource technology, which is basis for
 	  monitoring and control of resources like cache and memory bandwidth.
diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c
index 80ce5804b4..4f2c2d0042 100644
--- a/xen/arch/x86/psr.c
+++ b/xen/arch/x86/psr.c
@@ -135,11 +135,9 @@ static const struct feat_props {
      */
     enum psr_type alt_type;
 
-#ifdef CONFIG_MGMT_HYPERCALLS
     /* get_feat_info is used to return feature HW info through sysctl. */
     bool (*get_feat_info)(const struct feat_node *feat,
                           uint32_t data[], unsigned int array_len);
-#endif
 
     /* write_msr is used to write out feature MSR register. */
     void (*write_msr)(unsigned int cos, uint32_t val, enum psr_type type);
@@ -422,7 +420,6 @@ static bool mba_init_feature(const struct cpuid_leaf *regs,
     return true;
 }
 
-#ifdef CONFIG_MGMT_HYPERCALLS
 static bool cf_check cat_get_feat_info(
     const struct feat_node *feat, uint32_t data[], unsigned int array_len)
 {
@@ -435,7 +432,6 @@ static bool cf_check cat_get_feat_info(
 
     return true;
 }
-#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /* L3 CAT props */
 static void cf_check l3_cat_write_msr(
@@ -448,14 +444,11 @@ static const struct feat_props l3_cat_props = {
     .cos_num = 1,
     .type[0] = PSR_TYPE_L3_CBM,
     .alt_type = PSR_TYPE_UNKNOWN,
-#ifdef CONFIG_MGMT_HYPERCALLS
     .get_feat_info = cat_get_feat_info,
-#endif
     .write_msr = l3_cat_write_msr,
     .sanitize = cat_check_cbm,
 };
 
-#ifdef CONFIG_MGMT_HYPERCALLS
 /* L3 CDP props */
 static bool cf_check l3_cdp_get_feat_info(
     const struct feat_node *feat, uint32_t data[], uint32_t array_len)
@@ -467,7 +460,6 @@ static bool cf_check l3_cdp_get_feat_info(
 
     return true;
 }
-#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static void cf_check l3_cdp_write_msr(
     unsigned int cos, uint32_t val, enum psr_type type)
@@ -483,9 +475,7 @@ static const struct feat_props l3_cdp_props = {
     .type[0] = PSR_TYPE_L3_DATA,
     .type[1] = PSR_TYPE_L3_CODE,
     .alt_type = PSR_TYPE_L3_CBM,
-#ifdef CONFIG_MGMT_HYPERCALLS
     .get_feat_info = l3_cdp_get_feat_info,
-#endif
     .write_msr = l3_cdp_write_msr,
     .sanitize = cat_check_cbm,
 };
@@ -501,14 +491,11 @@ static const struct feat_props l2_cat_props = {
     .cos_num = 1,
     .type[0] = PSR_TYPE_L2_CBM,
     .alt_type = PSR_TYPE_UNKNOWN,
-#ifdef CONFIG_MGMT_HYPERCALLS
     .get_feat_info = cat_get_feat_info,
-#endif
     .write_msr = l2_cat_write_msr,
     .sanitize = cat_check_cbm,
 };
 
-#ifdef CONFIG_MGMT_HYPERCALLS
 /* MBA props */
 static bool cf_check mba_get_feat_info(
     const struct feat_node *feat, uint32_t data[], unsigned int array_len)
@@ -523,7 +510,6 @@ static bool cf_check mba_get_feat_info(
 
     return true;
 }
-#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static void cf_check mba_write_msr(
     unsigned int cos, uint32_t val, enum psr_type type)
@@ -561,9 +547,7 @@ static const struct feat_props mba_props = {
     .cos_num = 1,
     .type[0] = PSR_TYPE_MBA_THRTL,
     .alt_type = PSR_TYPE_UNKNOWN,
-#ifdef CONFIG_MGMT_HYPERCALLS
     .get_feat_info = mba_get_feat_info,
-#endif
     .write_msr = mba_write_msr,
     .sanitize = mba_sanitize_thrtl,
 };
@@ -826,7 +810,6 @@ static struct psr_socket_info *get_socket_info(unsigned int socket)
     return socket_info + socket;
 }
 
-#ifdef CONFIG_MGMT_HYPERCALLS
 int psr_get_info(unsigned int socket, enum psr_type type,
                  uint32_t data[], unsigned int array_len)
 {
@@ -858,7 +841,6 @@ int psr_get_info(unsigned int socket, enum psr_type type,
 
     return -EINVAL;
 }
-#endif /* CONFIG_MGMT_HYPERCALLS */
 
 int psr_get_val(struct domain *d, unsigned int socket,
                 uint32_t *val, enum psr_type type)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 11:01:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 11:01:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168684.1494727 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtX-0008A6-V6; Fri, 21 Nov 2025 11:01:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168684.1494727; Fri, 21 Nov 2025 11:01:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtX-00088u-O2; Fri, 21 Nov 2025 11:01:39 +0000
Received: by outflank-mailman (input) for mailman id 1168684;
 Fri, 21 Nov 2025 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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOrR-0007TB-Jh
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:59:29 +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 22727fbd-c6c9-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 11:59:22 +0100 (CET)
Received: from CH0PR03CA0382.namprd03.prod.outlook.com (2603:10b6:610:119::35)
 by DS0PR12MB6487.namprd12.prod.outlook.com (2603:10b6:8:c4::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov
 2025 10:59:15 +0000
Received: from CH3PEPF00000016.namprd21.prod.outlook.com
 (2603:10b6:610:119:cafe::a9) by CH0PR03CA0382.outlook.office365.com
 (2603:10b6:610:119::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.14 via Frontend Transport; Fri,
 21 Nov 2025 10:58:53 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF00000016.mail.protection.outlook.com (10.167.244.121) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.1 via Frontend Transport; Fri, 21 Nov 2025 10:59:15 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:59:12 -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: 22727fbd-c6c9-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QiR7UdL87DpLLqjDIlj0eYeyBk4wbzXPqGAnRxMeWehqEzWcilEX5rQKEJyyYCa9qGh/HGhrJ+E203f1+tXRAAkBVuuvaiHO89179Qd2VrWSJFeHAuhlrZmzgnU3ygtFyR7MydDTX6vExyew4g5ukdaahZ3VqTCSQf2h93aTaokTOmcS6a6cNq7S6GfRXZrADwtZp9q6J1AzG5aqu2AfxiRjRvkpRZaQEckqdT8qOelvHp2caSyiRHJyjwZ6Sw6tLH/WMrhrKLtHSM0l358AMd9W4OeyS/7prAOUL8QJVYv3FJHm9SEr3ydSUm7VezEyO/uOLjWQMh2Tj83cv6WdWw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KWivIiaybYPw5jJB/DQbmVNl+SgpVQga3F7RYOvVWbg=;
 b=sb9G+O9V90no3sYy/cmOTHbRJjmD75kcT3A5UEFPCCE7CeUe6x0Xarb8jeMLleo4ONmtwA5pPYZ6vg9MnTns/kz0zVZfbjTbA4zxxzCGJHvHaIcHHJjPckkgWP9ZSb1kxL5Rh8abGTTWbb90zPX4JYXb2CviLIxh+DfSCN73LmogJmelwv4ZsWh+Rs63oVuRzymi/jJWFSPey/9DtBt27tWqx+aDvx7vwkBoJozEU9pZ0zWSAmoAgMGwwvD4j7G0fJts+zxsbgImc7h6rbUAZL2es44fWHlZP6KgPDVAk3yTr0h2BetTR5xo1EuuJ4LeuK/R3jmbrVIE3aNorrsWJg==
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=KWivIiaybYPw5jJB/DQbmVNl+SgpVQga3F7RYOvVWbg=;
 b=M80YngrVB4ImGTAok0mmHXaBgyIAdIwZcZ8HBDOdGXUxz8xgby5z7Zb6+QkjVZvc2wSmC/jbE3fgDhd0ic45wP34dSdz/5zeDopWk6K3sXkxEyIyjzTo5q0PnZGhDb7sqShSqCwTXIEcdL/qTaoBNP7ccqMoODNlo27G9S481Kc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Michal
 Orzel" <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v4 17/24] xen/domctl: wrap arch_{get,set}_paging_mempool_size() with CONFIG_MGMT_HYPERCALLS
Date: Fri, 21 Nov 2025 18:57:54 +0800
Message-ID: <20251121105801.1251262-18-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH3PEPF00000016:EE_|DS0PR12MB6487:EE_
X-MS-Office365-Filtering-Correlation-Id: bd779b61-3f18-4f62-5b27-08de28ed02ad
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?Zao6KP4KfrJiFlJupVkHjspoYYLYKsvzMspS9MiqBrY+pKgd3nmNSzQptvif?=
 =?us-ascii?Q?D4YiEgSS2qefu8vdvTiA/dXf0TuIvAgD2iJdVkQ/1dAlSXoLgVqx/6IB5UpW?=
 =?us-ascii?Q?M9DDTbssbFK6xEh8UPdunsr0B9Ol4NwgP1sOs/XNNhYnV8Mp7g7cpyIkhbQy?=
 =?us-ascii?Q?Sz9s9u+xo/mKlbcpEfzgCf3tzIgCpRY9VJ+F3siVLPggep2sSApcpP/UR/bP?=
 =?us-ascii?Q?K9fJnA4dj3uVhrjfi2+x8mtugcfbpOGxQqWaGBT17CaiBLacse4IGWIC8Efa?=
 =?us-ascii?Q?qHgJvQJi60kVOkEVAer+ZZ/ukD5GDyOM3w2XvvehNtmX0LI8mjeBuGqSDDBu?=
 =?us-ascii?Q?vfAke2ea++3mL6A0LsTKkm9N0TeBMf4X+zw0AmwhDU04p5rFgHUTPOX4cywC?=
 =?us-ascii?Q?Ycx+Uyh3SNCuLrulTX0hHmQoZZkJrR3vpuNdb7JQ8gf2EpZRXUs1KJnrnq6l?=
 =?us-ascii?Q?sni8h2WuehcduljNzZDe5FOhR2xcMjKv0IXKPbL2WTeLdCGZUViFooRT/9m6?=
 =?us-ascii?Q?kW7C+hIaipHo8+8Gc/u+DRmPHOtQO9dUxyc52JtzqwiyCje88wQI7zV2bjFG?=
 =?us-ascii?Q?OuJKQw2HffDjhiFjYba5IRTyU+tvlN+Ror1Tux/RfNIAc+qSpdJqRUyFurCA?=
 =?us-ascii?Q?4+CLs5HhAI4MLlUrQaECxS/UQtcDI8XUAGgNuEBMtAC6Xz+RSlbBkqDjWwuI?=
 =?us-ascii?Q?8ptTb94Ne8J2CLR3rm3Oydfeub46Pb2m1nhP+ou52YJUEo/iu9qGZefWEbhA?=
 =?us-ascii?Q?dG8rfhQBbfu9UFsolfSFymyoMaWBw8fr51RP6pYjyIADf7X51O/yEnTNJwHT?=
 =?us-ascii?Q?84bx4AkDi9sEW69JM6M2IYLxSA2wS1h3jeM00Jgcy5S61LSvu+RMIowJ/MCE?=
 =?us-ascii?Q?zTuqotUp3PSeKqn08c5Kw2ots3S8yfxHYBGcwpUD8aZWuo7Zpg/Zf4K1kwcU?=
 =?us-ascii?Q?PYapL5Rsg5P1tNOKNmUIydVhMOUd/qmCJbUXGy4eaRgiemsdiv+pTKeKDcCz?=
 =?us-ascii?Q?fW94my4PJgaIkiu9H0zSlJ+PFGZYBZadxI4tD3EAI7I99pLi0GUQXIugM8iV?=
 =?us-ascii?Q?KsPclzpgh7N6I5DZq5JHABvDpm6Wqed8AJU0+CMoK2Shj/8xPiKO8VT/+/vd?=
 =?us-ascii?Q?oQROQEzMJ/Xv9aVoLSFQl8M7aaEzhKsZOly2gx84/u1d8uhqtFgd2jp9dJm2?=
 =?us-ascii?Q?W1z6Y6g7FE6X015bMK00ccNJcYYW73M+kiCwn/UQteOnHLeuk4zMlBBb6ZiK?=
 =?us-ascii?Q?JxrXpOzVeG79V499NqKlg94+MgXMZx4bjGr3Ap+PmamfL8uwmzsJ5vCXskQq?=
 =?us-ascii?Q?zuvB+fAnlTkezVvadmLK0vi/ysVSgeWcIt+KoWSazjBKEDy113yDxRXWRMNW?=
 =?us-ascii?Q?05tBD7A0dpRNlEem6rbqfO++yQXAYz1TyOA47FvQXzxiXW9sGpzn6V5jDGBz?=
 =?us-ascii?Q?WfRmP+nnSv2CeFLj9aNmsHC0LRc6ejB87kPVG78dFnEnws4WSOMr+u7qiMXv?=
 =?us-ascii?Q?HdwkMijfGNsGi+hs9lexCtxApCbHQQEL2dVS+Wa1bYwC1n+W+70jv+ebVyWb?=
 =?us-ascii?Q?cWM8rx+o9uvpBZPnbwc=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:59:15.0156
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bd779b61-3f18-4f62-5b27-08de28ed02ad
X-MS-Exchange-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:
	CH3PEPF00000016.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6487

Arch-specific arch_{get,set}_paging_mempool_size() is responsible for
XEN_DOMCTL_{get,set}_paging_mempool_size domctl-op, and shall be wrapped
with CONFIG_MGMT_HYPERCALLS. Otherwise it will become unreachable codes when
MGMT_HYPERCALLS=n, and hence violating Misra 2.1.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com> # x86
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v1 -> v2:
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
- wrap XEN_DOMCTL_{get,set}_paging_mempool_size-case transiently
---
v2 -> v3
- address "violating Misra rule 2.1" in commit message
- remove transient wrapping around XEN_DOMCTL_{get,set}_paging_mempool_size-case
---
 xen/arch/arm/mmu/p2m.c   | 4 ++++
 xen/arch/x86/mm/paging.c | 2 ++
 2 files changed, 6 insertions(+)

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



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 11:01:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 11:01:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168685.1494732 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtY-0008Eb-Ip; Fri, 21 Nov 2025 11:01:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168685.1494732; Fri, 21 Nov 2025 11:01: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 1vMOtY-0008Di-7Z; Fri, 21 Nov 2025 11:01:40 +0000
Received: by outflank-mailman (input) for mailman id 1168685;
 Fri, 21 Nov 2025 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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOrQ-0007TB-Mc
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:59: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 212e5862-c6c9-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 11:59:20 +0100 (CET)
Received: from CH2PR05CA0060.namprd05.prod.outlook.com (2603:10b6:610:38::37)
 by SJ2PR12MB9191.namprd12.prod.outlook.com (2603:10b6:a03:55a::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Fri, 21 Nov
 2025 10:59:04 +0000
Received: from CH3PEPF00000013.namprd21.prod.outlook.com
 (2603:10b6:610:38:cafe::57) by CH2PR05CA0060.outlook.office365.com
 (2603:10b6:610:38::37) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.4 via Frontend Transport; Fri,
 21 Nov 2025 10:59:04 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF00000013.mail.protection.outlook.com (10.167.244.118) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.1 via Frontend Transport; Fri, 21 Nov 2025 10:59:03 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:58:59 -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: 212e5862-c6c9-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Eno/fBYc+iGKUmo7leJPLHZpMQMcCQNnU/ZA5H7n+/WsJzUqcv7d5KCfuJhSJBRi5iHlA5pdu+OrKONYj934gKev/t/6ttZx7Z/b8vQ8eydjDmEJTGS40hhJ3JHYm8oYVgUvyLE3jpgojMryw+ffoI9iXRjNmtNNim5ZrThqaSR4QmfDYXRDF05ZDljzVG5ZwcFkQRyFthTV9U8dkb0oNAQ+CyH3owZItIoq3Af/9n5vZTA+xKFRPHBtl1no/l+M/V2/bjwWtGUBQf9JGDKtQSlbwdfN4hWdqEN2rMglAIgKK8oAE8UG0k0rSzEIlOqaqqTAgYjp4Jb2AB1MLcrmnA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=J3UFs5sCDheraCgj0VMwmwGxoRmq66F8fjZzyOxlM6M=;
 b=HCcCS1HiMzeYggwnFuV6wWq+/R7m16MZvPxGLy8ZRN9Uco0JiqqVLP0vSL42Qq0oqhz3TFs+ybGAfF6gRX1hSldcpJZ/8wFc/kpL3j4oJp3SwNexJOyJ+hfLz6LHwmYcc00ykJhDVXzWCrQoWLPBvzfg9PUmwRhOYRPswoTroTccB8u2JQxFisA92ay4LKVJ5PqAU4mEC9lJ1ArzVge4nowhvupv0KA2p1o/a54kgjlDCeyJ8ekXPybfArGC/zyqn+ei6QkTKrUHCz1ydqSeOsxEGQfoCJdtAuhEncpQ6FGSg5zS5dsPKsw/JGYSDg5blLzYqiEPPw5/mIeRf3DWHg==
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=J3UFs5sCDheraCgj0VMwmwGxoRmq66F8fjZzyOxlM6M=;
 b=KadVtFv07EgKo1bOv8HPDBCSTxtIeu6qS6VfUuF/vBW6O5B0DZZSJKjnM+CvB6OfpIgYrItQn7lYkhZW9st2qN6KfJpXS4mCOktAC3JeCQG2C+0G4kQP+cgzUCE5NAm5oHrl7PlB4p8hC8R9Gygq2V6wv2Yt2bIbseHSuE+/Qz8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Michal
 Orzel" <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>,
	"Oleksii Kurochko" <oleksii.kurochko@gmail.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v4 12/24] xen/domctl: wrap arch-specific domain_set_time_offset() with CONFIG_MGMT_HYPERCALLS
Date: Fri, 21 Nov 2025 18:57:49 +0800
Message-ID: <20251121105801.1251262-13-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH3PEPF00000013:EE_|SJ2PR12MB9191:EE_
X-MS-Office365-Filtering-Correlation-Id: 844d5909-5abc-49f4-05f3-08de28ecfbf4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|36860700013|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?UsgNclqnHkocyuiQULa40XQ+Sbul8Dilo8yj/i10sN//rhohEvY3snhtXtaT?=
 =?us-ascii?Q?WRiHyNVeVBfGFMvL1ZeFkwoCm9T9Tp0dWA9IqxxNErZ+40loTQO1y/inmJSh?=
 =?us-ascii?Q?eN6OFeq0eGW0ApvuTwPZHm6GiqbEGR4VbFd17N9/DdSlzhJke4/PebHqHBby?=
 =?us-ascii?Q?M83ovemdYHvM+4hlKcjITB+OHRBi2b35iDXz0MD2Vip7yuBwlSMtpqFo37Dp?=
 =?us-ascii?Q?SVwXZnISu6rbvBpcbsYMMD1Rnh5OD4JNd5wDgBE2BrbEY0hi+IkG/dXHHCFb?=
 =?us-ascii?Q?MmBCeMMFY2NauKU8RzwO/xuPPlyJu0gwfOGumVJN4/9/bsz4P5IlQ8XQ56Xp?=
 =?us-ascii?Q?64Rwn9Qdna50l75Y2E/Ekp6G/q4TFOWxALs+v4Ocw5rTzGL20t8ZlSd0UuTI?=
 =?us-ascii?Q?wKozgyGc8ir+NxmhWlBNNNxsG11bP341CFe9dqPGMFebfhcABEbk+XB/BVWr?=
 =?us-ascii?Q?lMCMzZfXYFNtPetzeOYWv34/SX4pHc/KsjZsrUQBlPJthkrLibBJqfyg6xmS?=
 =?us-ascii?Q?qiLrJwXvA4x0Va5DbSFViQB6JIfKA0nXbZ+DJBQGVZTdnpoByClGavfVAH+U?=
 =?us-ascii?Q?dnJ0aS4NiRTiF+r3TCfoareOp7DIbmNmVN+/b/c4nctXhtR1MhPqX865ap4O?=
 =?us-ascii?Q?+zKisQeDrvmVv/8Y7PB7BhyK8V8xyraRr6ENt6NMgY+H8fEX9hoYJG0WogaF?=
 =?us-ascii?Q?7yDox2m7/ZDFw/dnVaQ5Trg5wuVhioKBr2iK0DR/JCYNOhKD0fMj6iTq1v9r?=
 =?us-ascii?Q?QqfEviLe12S7p816lPQVWWk+M2I+IPSzj9tiswWKFEPKBA1Do1dkPph5+QWL?=
 =?us-ascii?Q?warLALIBtkWYpA8E/VJYJasGePgA2Z5Z0zeQlx+/0HZH0e3Ai89CcnlZ4IOP?=
 =?us-ascii?Q?+chTzsQbgBZMztPGAc0tIiXA8P0WzMM0Ns2BbUxxS3uKmIY1MFyLXpNTVvTI?=
 =?us-ascii?Q?JW/X9ipXIQX8i+5bSyXPMbs4HtQ6+ZlPRtS3g7f78TTZp4HyaDzppP1Wew5z?=
 =?us-ascii?Q?xb2peddHl9dg/UkntCZTkJoHqztlEMzqwiHdLx9ugQZDNOPeYNhMkBbOy4hm?=
 =?us-ascii?Q?Rq8epYrmHGhHSLJ4JVaBzVu1uONAchvuq+ZwX+GABR6KLJDCzpheNRk6YYGe?=
 =?us-ascii?Q?SKNNiS38dm/QqAUhDMxtSP8DpvgpuMXTfapCXgdfKLIBu82t3UZQroaGSurm?=
 =?us-ascii?Q?FH17kJSmvHml4iCliFF5LKt0T9m7MjJHgeOntlPhH1QDMphE38c3hZgOaEEj?=
 =?us-ascii?Q?jAX43i/84WmT/LZZMgtE1Gk6erwWUqtfgVJgWsGIInX9+EmDXJgiEIfyVade?=
 =?us-ascii?Q?rI/5qltkQWtgahfe6ePptTQv/8jKOZE7eBnToNZAzvRTZxpQksyHR7d5f8Z7?=
 =?us-ascii?Q?roJI737cRyU+DaDAjK2XG8poeQfXmYDUmKKncX3sTOyyVYPiIF04t7LefLrJ?=
 =?us-ascii?Q?ZGpnyYkqIj2J+9DGp4l3HkaqHR8RvMzsOBzFa1g8njzM5bawLQAAPX5kldss?=
 =?us-ascii?Q?GKa1StVVqynzeYI3OwqnGKCxQdQvjj1IXGhGoowrP8cqwyrrqd2laUV26inF?=
 =?us-ascii?Q?JFx3ACQ94BT6LLe4Y1A=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)(7416014)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:59:03.7093
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 844d5909-5abc-49f4-05f3-08de28ecfbf4
X-MS-Exchange-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:
	CH3PEPF00000013.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9191

Arch-specific domain_set_time_offset() is responisble for
XEN_DOMCTL_settimeoffset domctl-op, and shall be wrapped with
CONFIG_MGMT_HYPERCALLS. Otherwise it will become unreachable when
MGMT_HYPERCALLS=n, and hence violating Misra rule 2.1.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Acked-by: Jan Beulich <jbeulich@suse.com> # x86
---
v1 -> v2:
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
- wrap XEN_DOMCTL_settimeoffset-case transiently
---
v2 -> v3:
- add back stub wrapping for riscv
- address "violating Misra rule 2.1" in commit message
- remove transient wrapping around XEN_DOMCTL_settimeoffset-case
---
 xen/arch/arm/time.c    | 2 ++
 xen/arch/riscv/stubs.c | 2 ++
 xen/arch/x86/time.c    | 2 ++
 3 files changed, 6 insertions(+)

diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
index 3710eab109..a40b233f9d 100644
--- a/xen/arch/arm/time.c
+++ b/xen/arch/arm/time.c
@@ -378,12 +378,14 @@ void force_update_vcpu_system_time(struct vcpu *v)
     update_vcpu_system_time(v);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds)
 {
     d->time_offset.seconds = time_offset_seconds;
     d->time_offset.set = true;
     /* XXX update guest visible wallclock time */
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static int cpu_time_callback(struct notifier_block *nfb,
                              unsigned long action,
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 42bac26aa7..b414a85177 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -31,10 +31,12 @@ void send_timer_event(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds)
 {
     BUG_ON("unimplemented");
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /* domctl.c */
 
diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c
index ece9ae0b34..8ba2dd9395 100644
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -1841,6 +1841,7 @@ static void update_domain_rtc(void)
     rcu_read_unlock(&domlist_read_lock);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds)
 {
     d->time_offset.seconds = time_offset_seconds;
@@ -1849,6 +1850,7 @@ void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds)
         rtc_update_clock(d);
     update_domain_wallclock_time(d);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 int cpu_frequency_change(u64 freq)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 11:01:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 11:01:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168689.1494736 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtZ-0008Mh-8U; Fri, 21 Nov 2025 11:01:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168689.1494736; Fri, 21 Nov 2025 11: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 1vMOtY-0008Kj-VM; Fri, 21 Nov 2025 11:01:40 +0000
Received: by outflank-mailman (input) for mailman id 1168689;
 Fri, 21 Nov 2025 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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOrW-0007TB-Kh
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:59:34 +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 28ee51c7-c6c9-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 11:59:32 +0100 (CET)
Received: from CH2PR14CA0001.namprd14.prod.outlook.com (2603:10b6:610:60::11)
 by DS7PR12MB6023.namprd12.prod.outlook.com (2603:10b6:8:85::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.11; Fri, 21 Nov 2025 10:59:27 +0000
Received: from CH3PEPF00000014.namprd21.prod.outlook.com
 (2603:10b6:610:60:cafe::bf) by CH2PR14CA0001.outlook.office365.com
 (2603:10b6:610:60::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.12 via Frontend Transport; Fri,
 21 Nov 2025 10:59:27 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF00000014.mail.protection.outlook.com (10.167.244.119) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.1 via Frontend Transport; Fri, 21 Nov 2025 10:59:27 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:59:25 -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: 28ee51c7-c6c9-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=X/Dc5AUUoxY1rqC0Dv4KynBxYJutBlyR9I0r+lu3JJymWtr7k/c29c3IShSDccw2zyT/YLX73MfT2v3Ko4FBP1KEHEdMQrSG7OxvITzKNf8rq4ogNCv+lwRx5pvirUXweRy99shzjQH4HlVzT2h40QyHGbNuMsvmBLzGo2dzwvqvtetjPbpLhjJWux0vTdw48vNFU99NFcjxz3YJTVHIcLee+WvA+va6vkI+Py+zmpk+dJCLQZTk42gFmdVIFskDgTY+G7QCK4crvMvF9b+sYgPQb5WQ7mmWtHSSUDTnDRfYHIwYFrPYKHqcc+wErHu+jX69VvJVVG4ldYjR+t2cRA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fD9kW6Mt2h6oTqu5hKCaJHPDlQEFB90rWIR9p7g5wLU=;
 b=BnFl7d34GzvCEU2K/Sznq1ynbAKS881m2VEe26xn4eDeJhT7oseN3gFDDvUAfK9uIZU2oeGWVSsvIq5adhGy2R2i437lyLv4d3nTVckJst6LT5qTYr0SihxlNLIGxaLa1guTnCa8PE3ZmKHzgxDRwhqSlyRyHaIJuEs3eR07iW5E3mjOj+7A3HUQfm68T6kNZC0AQvEFxeu+Oq4nwExSOHeimbfnz5+TGkZ1QfFvMSt/PrxGTM7g3KqC8/zHt5rCxs3p/asM5wNKpUxVcWmDDow6VS3kUMAfeH7KTW684Cy6xTGwG6EESRKu7hR5UCYoTZuSFmpRLGzlQQxNT7ZQ1w==
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=fD9kW6Mt2h6oTqu5hKCaJHPDlQEFB90rWIR9p7g5wLU=;
 b=EQp7vPiNVQ74DkQJ2TPy/99tmc935updLG4dedUfdi0ZlBW8XezY2q33tmmuz69+4TB/Z2UTfwYb37aA5g4IeYvhFpe7TbPwk6vZKYzX4TzemkNYK3eCYhRffsosEfB/sDmcgenHLMALPWwlBI4EdF1p2CB41AJaCaTPoF+kxtQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <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>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v4 22/24] xen/domctl: domctl_lock synchronization only when MGMT_HYPERCALLS=y
Date: Fri, 21 Nov 2025 18:57:59 +0800
Message-ID: <20251121105801.1251262-23-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH3PEPF00000014:EE_|DS7PR12MB6023:EE_
X-MS-Office365-Filtering-Correlation-Id: eeaa6272-e1aa-44a8-c775-08de28ed0a17
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?ozAS7wfXu9zG929pj/IzXpXjKzp1BlouDCfPqBZYf1M+5lDLZwEryWWx5OKX?=
 =?us-ascii?Q?Y0fNawyncPkZ/FX3pp17TRgvS65X2uxIIHMDw/oK6apqIe+iiDDdSNvafcIO?=
 =?us-ascii?Q?TSNTCBoL/cijyADL6FdR7egg4/cq57OTJfW5dAuTe0wEc/egRFC5KK8S3Vli?=
 =?us-ascii?Q?Rkayv96jbIyB1uGYhPsIQ7awlWzqlwpY1I+1Mw0qKh5kPrWydcxFbIKggvta?=
 =?us-ascii?Q?fZAQnKSPrYTNvilYLMCHQFwaqmB6/kaRE+gg35SaXtjk4dhx4HtvcvVv70Zd?=
 =?us-ascii?Q?vZODkbAgMZ8APdbv6Caa9IRLwQHb7aPsOUaBCo1uGYyj8T8Y4+qx3AoZfBSe?=
 =?us-ascii?Q?wXt7LkkHDY0tjyX+S73WTHWiR8PWCSLR5el1f+sCUYs19gHD5K44RFR21AkX?=
 =?us-ascii?Q?jaRAjS5Vo9t+HlqRyjRWA4g6w00PkA7ZfLvAVfDCHa++woISlyF4oR/bIP6o?=
 =?us-ascii?Q?yJeeKjPf5bAUAmh92vlteA8vdi/bkQjLG+hxltIJAa5kpRuSMthen1XkwRz4?=
 =?us-ascii?Q?8Lwk2czVEvGWz6fZE0b7lFm0lBPnvUPTzUxX1SxZA/xcZUR9Ay5wneNleMgd?=
 =?us-ascii?Q?LTt1A9EpY/OzZeJDn5/+6nwBjyccCMpQxdP71FVed4n4gffipNuoBYkRDHP/?=
 =?us-ascii?Q?JzgdusFlYcLrKHfqpEnoU28RryfhvUW1laK7ah8KbabPXanf9vXk4COXc5xf?=
 =?us-ascii?Q?x1i21t3+fkQTZsvIxJ6ArIxDXNn3JXjHfG1q5LKC2ESLN/JdVp4Ld9FDPX6B?=
 =?us-ascii?Q?JNMas03IG+N02ZZG+iq/FnPo+gZJtQPjzX762ZYsJNnnn2m0ChPkO1oIdxNL?=
 =?us-ascii?Q?cZjLMRltYuQI5CYy+x0njxWWmFP8Xn1I+2RXBz4y2D2j8Hg43ehx2MyWhJob?=
 =?us-ascii?Q?F40YGbo9ZbFNlWpP5eiopGnwajPnQFZKgVjAZ89cNDXlY3Q/b/HE7+MctK4I?=
 =?us-ascii?Q?PwkaLhVJZf9BdXN5Vh/NlNdZFw6j5SYgXybPXzmoyUg3JyYU48aObSGPCfxT?=
 =?us-ascii?Q?2PB70xidtflOWsP4tUlF38oW0+FjGeUjQNmr+6d7auLKqEzIbNml1e2jncdy?=
 =?us-ascii?Q?ZeS0LHf7IczrM6+exDJI1muBRvYHFx3sHT5v+NlhSG1T7pP7y41UHNY8eFzt?=
 =?us-ascii?Q?nE4ytm+PRyDB44KVUYM9tUQsxEqTtD7TQNs1RqWDUd1SCgy6xnrJy5t8YyWl?=
 =?us-ascii?Q?GQ8XnPnSaP+ELOA9hSQCS7m72O41SphEQp4+qZoIzBJuj8541r/C6THQsucA?=
 =?us-ascii?Q?godVtDj5I/iVRcj1VxCAXfohPb/Va9q4q1+D6BBuZp7wChwtwt8zaZSkW52s?=
 =?us-ascii?Q?cPO++fAh/QapOSzyydweTQQqjBQb8hyP06q6LstrJ8eUwSoWKfzCeC0FKOy2?=
 =?us-ascii?Q?9tiRJOhgiM1u2mJyY0Dn0FuRAPCS19YRIQQ4yqfKxMmCSnjP/gIZzGk3R417?=
 =?us-ascii?Q?wG0xolr18XbXSKKATcmUDBnaQ3N0RCC/qwy8GU+j3Zo1uRR5pv58563lQJlA?=
 =?us-ascii?Q?GI5fYYDZdmhgrBqZm3Wv0Eh3vz/m2eQDOqYfk5GuJmiSY3xcMIN93vBCR8WE?=
 =?us-ascii?Q?SPiiLJnAwETLRNU4dVc=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:59:27.4346
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: eeaa6272-e1aa-44a8-c775-08de28ed0a17
X-MS-Exchange-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:
	CH3PEPF00000014.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6023

Helper domctl_lock_{acquire,release} is domctl_lock, which HVM_PARAM_IDENT_PT
uses to ensure synchronization on potential domctl-op altering guest state.
So it is only needed when MGMT_HYPERCALLS=y.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- new commit
---
 xen/arch/x86/hvm/hvm.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index b03f7dfcf6..8afd0d9d7d 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -4268,7 +4268,7 @@ static int hvm_set_param(struct domain *d, uint32_t index, uint64_t value)
          * the domctl_lock.
          */
         rc = -ERESTART;
-        if ( !domctl_lock_acquire() )
+        if ( IS_ENABLED(CONFIG_MGMT_HYPERCALLS) && !domctl_lock_acquire() )
             break;
 
         rc = 0;
@@ -4278,7 +4278,8 @@ static int hvm_set_param(struct domain *d, uint32_t index, uint64_t value)
             paging_update_cr3(v, false);
         domain_unpause(d);
 
-        domctl_lock_release();
+        if ( IS_ENABLED(CONFIG_MGMT_HYPERCALLS) )
+            domctl_lock_release();
         break;
     case HVM_PARAM_DM_DOMAIN:
         /* The only value this should ever be set to is DOMID_SELF */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 11:01:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 11:01:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168695.1494743 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOta-00005Z-Ay; Fri, 21 Nov 2025 11:01:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168695.1494743; Fri, 21 Nov 2025 11:01:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtZ-0008Uf-Vg; Fri, 21 Nov 2025 11:01:41 +0000
Received: by outflank-mailman (input) for mailman id 1168695;
 Fri, 21 Nov 2025 11: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=m3Zd=55=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vMOrg-0008Dv-Fq
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:59:44 +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 2ebd016b-c6c9-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 11:59:42 +0100 (CET)
Received: from DB7PR03MB4603.eurprd03.prod.outlook.com (2603:10a6:10:18::24)
 by AM9PR03MB7202.eurprd03.prod.outlook.com (2603:10a6:20b:268::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Fri, 21 Nov
 2025 10:59:40 +0000
Received: from DB7PR03MB4603.eurprd03.prod.outlook.com
 ([fe80::7eb2:6a9b:fddb:6365]) by DB7PR03MB4603.eurprd03.prod.outlook.com
 ([fe80::7eb2:6a9b:fddb:6365%5]) with mapi id 15.20.9343.011; Fri, 21 Nov 2025
 10:59: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: 2ebd016b-c6c9-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ekG4XZGGWmL+SzsevWPGCrXkCmKvPeBYZ6ag9H0O29BXh1oeswnPRsmjIgWNtSjua68U6UE38BQuglL9jIOhpYh8Q78fH9M6zoaaXqQVg3GrIIt7gbdyMVqMLbjcB2AY4Siwd+yf3erIBRMDxomwht6HI7ghzRBuQGkmg5TxVG6ISAo8DyUDbgWEaq6vYF7tZEXl6e+pBSlJuz0SJ+NLfPeKHnLBlc3g8l9sO6D63FF25F24XLjDwTpZgBsTc/oJvOejq7/FWOR5PoXuUdym36v7ZDrXj8w6KPWGL5whQ+ripaLUSlEZUIjM42ylTpuwGL3VM1VBaqNWwfyq5SqRCA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Z4tC2GMrtJkMNkvOMYxL61qeZ8+Dt2rgTa8JqEiYuDo=;
 b=o99xzyp4Jtk9tt/HO6PVsGA5QlC9GMbbJpRLEvdhqxY1+Mmh5iNvYQuCmnKSs7ES8oqff5fE9E0rnZXroVP4GaUFzd9nz3Gj22d+guwgyhdSgVjn2qRx2oVwfubE1Gh2Ep3Obt+sSEjYdXBF6+R7bBbylSG9DrDfllX/Wzk9bagonDWkyI/MHJzEvgkx3VT8HHtXYnJrEh1ZCOe3h8ZEv+8rSkHx6bfe7MJ2gq1BdRIIk1SsbgG/mhPnJJyqe3KTeNGABlkT0NIxsZUBWY5nklQaT7fdqbbPQqhob9be8uvzOcKbw2iUG0tGk0hUghiDcht9z0vTDEQummbx0iAtsw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Z4tC2GMrtJkMNkvOMYxL61qeZ8+Dt2rgTa8JqEiYuDo=;
 b=uelRtXzvuaSBEjL4oJSm2k4C3oO4yadJkK6aLtpyg1hwtBNylO+cYGvSXJE0vikfW8fFCdXq+HcQ7gRKhD56CQIM6dra8hu/GQF/mRWuxt/OG73z3yJ4Tih0L5dMjQotGpnQOcDxW8BXVPobnTCZYT3x+WSOHfiGrSu8VadjHlX1KjSpH2CWZjwPiTC4NXu+3KwCobatpXvuqYaKESVt2ApwHYvzaxQsjqOkqo1YiCgqvugKGnkI6FboidGp2hPNI2NECIDVDaJ5wpBqsC2yE1AFzLXPjXYD07ffM+FmxyN0p7V7UtqvQrXUg+h6oMMo0NiJAZ5GXfGF3GlQGWvVzQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <aec6b5a2-4e53-411c-be2d-9bdb27d883aa@epam.com>
Date: Fri, 21 Nov 2025 12:59:38 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] common/libfdt: optimize usage
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>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251114180130.346755-1-grygorii_strashko@epam.com>
 <0557029f-5946-4ee1-a622-842e2698a6c8@suse.com>
 <991e0324-98af-4264-a527-703c72439780@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <991e0324-98af-4264-a527-703c72439780@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0374.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:f8::6) To DB7PR03MB4603.eurprd03.prod.outlook.com
 (2603:10a6:10:18::24)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DB7PR03MB4603:EE_|AM9PR03MB7202:EE_
X-MS-Office365-Filtering-Correlation-Id: d96f653e-8bd0-4fff-254d-08de28ed117d
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?aXY5b0kzSk5rNDFhTUdNa1paL2w5TkRmb2ZYVXdyNEZ0K1VUeVNhcHdFV1dG?=
 =?utf-8?B?aURmaFVsdWszWGJjT2M2ZHQrUERCQ25jc3RQT0Fha255bGxNTUpmTmN4WHpl?=
 =?utf-8?B?bDExK21ONHNNY1RXQ2lRQ25YUFNKSFpDemdBQVVZWnF0VHNaRWVQaFpRa3RK?=
 =?utf-8?B?TjF5YWs4bnIrbEJDM3J6d0JmQnlheVJLcnZVYlNkOHd4bWtDZXVKMHlqRGMr?=
 =?utf-8?B?Wld5aGtscksvSEQ4NDNqakEvN2JwQXh5V2g3T2R1c0FLWndlZXpYaHFzWXZF?=
 =?utf-8?B?bzZoeGs3V2gxeEFiaXFkVGdaYTEvQmpxRCt1TUlyVmFjbVduNWVzZExrNHJC?=
 =?utf-8?B?dXZ0UHBmay8wT1NoTUVlOTdBUmphclBSbElLTzZSeXY3eTR1SzNtUVhERGdY?=
 =?utf-8?B?VjhyL2tmOUFjUUJJMThJWi9Sa1RsL1h0c25ROWtZd2xhUVpZWTJsVkZmT2Ur?=
 =?utf-8?B?MkNzY3QvRTh1aFhhY1NOdDI3MVdVclQ2T0lhbWZ4Y01RTGpuZ0ZWN2MyRnVi?=
 =?utf-8?B?L25hcEpPNnVMUk5FdHJnUTZEWE1NcTRnM25SSzMwTUFLdGovYVpVSU5SeFpv?=
 =?utf-8?B?OGJqTkhQUmxCdi9iU1JRZk1XTTBldTZHNjdxWnU2bVlnckRpeUpoU0hUSFZ3?=
 =?utf-8?B?WUZJdHp3REdOQmJWL2hoaFhJZTZyZldyNUhTenJKWDhTcVo5L1NvUWhlRmF4?=
 =?utf-8?B?ZU9TMGxUcXlUNXF0dWxrdmdmMXl4TW9FejVGYmZPTGlsTGlsUDgwTXVpM3NQ?=
 =?utf-8?B?NHV6QWgrZFZuODk5ZU5OZEEySERPNEZKSDZsczg4Tnl0MlhoL2dCV0k1dVQr?=
 =?utf-8?B?aWptS0RKNVZtMnlHSzh1RFUvKzd1R3g5ZW9HTmFWMGhrc0xMNE92ZlZXL242?=
 =?utf-8?B?dk9PR1pESGx2TWJVUWR1WUNrdjQ4cjg2MTRzQ1pBam9wSTlQVy9nVkpETDd0?=
 =?utf-8?B?bnNKblorVTgzczZjRStRZ1J3ekhHWnBrazB2cytRZ24wQ1gvUDZkRUF6MXF3?=
 =?utf-8?B?NVUxYUtIK2JBbmRNU3k4ZWpzQjFPckppQStxUS9zZmM5emI0UHljTm8xb1R5?=
 =?utf-8?B?cmd6VmpJSHR2THM2aE5aS1dJcUNoWlNaZFMva2x0WlZPdmFZeDFFdHM0cUdj?=
 =?utf-8?B?WG5JQS82Qk1JcTJqUEx6ak5jYmluSmxwWCt0NFM5aGdFdVNFSUM5czYxcUE5?=
 =?utf-8?B?QWlpWXFuUXprOGFhM2JmUW5WeklaVDBWdVp2dUE4QW1DbitWcXFjL254SDRO?=
 =?utf-8?B?alJ3K2pzemNYQjl6eklzTXFpQmNld3BlaDlCMmpOOWNQTlZBdTJsSTRHOHFG?=
 =?utf-8?B?MzMxTkoyVy9OeUMzbURZWEVZdmxsUzc1ZmdVbWhGdVZDVVNJTDZRbG1PQXRx?=
 =?utf-8?B?MTNoWjFaL2J1SDhoYVU1QktzTDFHZ2RDekM3SjgrQXoxTyt1WEthU0s1ckZE?=
 =?utf-8?B?NmttZldBR2pnVys1NmJGTjJwRGpma3J5cERwZVpqeGZjM2w4czhtSHdsRlEy?=
 =?utf-8?B?cDBxRzgwOFBrNkRDTk0wNi9NYkphUEE4Mjh5ODhRVjNOL3BRZm1ncStTN1Qr?=
 =?utf-8?B?SGd0bTBkOGk4TXRjbUl3bHY0M2xzckJYREJYZzMxZjIranBuR1Izd2EwSFRy?=
 =?utf-8?B?U1N3a3NUdWRrLys1UXM1TGZaYndDL3FvMmtJYkdINXJYTnp1d3c5dUFQYkht?=
 =?utf-8?B?NkVmUnJvYmhoNExyU0s5dHRMcHpqVFB0anZUeFEwTmdiQzRvclUxWXdyeXJK?=
 =?utf-8?B?RFppSGRaZ093OFpKTGJHejRuVk5YL0pkT1VwWkV3SmFZOU5acTRoOUtGcnUx?=
 =?utf-8?B?dUxRYXF5SHMvSmhaa1BYSGJmZ3ZEaHRyeWRjaGFHa3pieFMxWnZOVWdxWm54?=
 =?utf-8?B?dWRva250QU10OVJQMks2MEJNZ3VxOVdadGpYeERRdWhPMUhoc3BDNlNpZlIy?=
 =?utf-8?Q?We6cqpv1W7RxuORxLPzms45lgfIxKBMf?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR03MB4603.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eGtJWmkxMHJsYkFuNHZ1TDBzODdic1pQWXE0MHVNTDBWZlQzUEFJck1RYUhm?=
 =?utf-8?B?UzJ5QUtyZHcrOFY4SWt6WW5PQmN3V2s2Wm1YcE02bmRhYTJPdkpScHJ3dHlE?=
 =?utf-8?B?blpiNmFneUlQeVlNZFRUS3l5SFlUM1VXb2NKTnEraEZsZzFuK21JajR6RjNC?=
 =?utf-8?B?OXZlUy9TQ1ZmdHpFSDJmVCsxd1U5cmFNNmx0QzUrWVRmTWxKMnpoZDd3U3Ji?=
 =?utf-8?B?T1lhc2VLdXZGN2Y0OEtLRXdpZE5kYTRDRUdYa1FLR0ZUdm5aME5jTGlHMm83?=
 =?utf-8?B?QnBsRktkamQ2cVJaNy9oY2krU1VTV3lJTk1VSmduMWpvZUNkYTd0NTVkRHR6?=
 =?utf-8?B?T3FyUFpITVQ2VDhxOERLRjlsS2FZbGtjNFNjdC9rS053Q2pQOFRNWkVrK0FU?=
 =?utf-8?B?aWFGeHROK05ZVFpGMHhDeVZMUFlPSHZpN3NabDNLVXdtMTlBRG15U1NlbjlY?=
 =?utf-8?B?bWZzYlpnajNOVzFBQmFOUWc4TTFsMWRXSEFZaTVQWVViL2NWNGVQd2FzRk9x?=
 =?utf-8?B?alFmSE9QQ1hGQUc4SlJNSEVNbzJpMnM3V3JnUFpDQk5lVjZZOWQzMlBCcWwz?=
 =?utf-8?B?RGNKZExCUnBoVVJzQTlLZE9kRHZ2QzVVcDgwaUowM2FYbTUyVEdrYmUwSkI3?=
 =?utf-8?B?ZUoxc1lJa0RDT1JTSWphUjV1aDdoZnRDVlNFOXFLQzNqQU90ODFIaVF4Y0pw?=
 =?utf-8?B?NjdLTXZ3WHJ6a2gwUFNsK1BMQnRIdHY3bFVhaWtibkIrRjBFNWp5QkRmdC8r?=
 =?utf-8?B?ZEx3MVBXSlNXcHZYYjJXV2xhVlc5OG16cit3MUl5eW5zcE5PUVJXMENublJP?=
 =?utf-8?B?QVk2SFRKSU5udnR3dnlXRnQxQ3ZUeC96UUw3bzhHUHpJWW5OYWk2ZVFFRlln?=
 =?utf-8?B?QmlmOTc3R01ML1F4NitXUlVhRjNOMEI1MjI2UnBLN3ZqcnNhV1AwR3dUTzN2?=
 =?utf-8?B?THg0Z3p1R09BOW4wV1ZoakloNVE0Yy9KTm1oV1BDT2RTRFhBY2FTcVZEM3ZQ?=
 =?utf-8?B?MlpIcHJnS1JsRks2T1MwV2NVakJ0WXNTSTRKUFM2MWwwOEdkblFSemR2SkFB?=
 =?utf-8?B?Z0J4UWZBVWU1aysvbjVPR2RaRTUxZDhEb24vUGZHV0ZWMXh0TklkS3pGN2tt?=
 =?utf-8?B?QWROMTVaNkJmd3pidnR4ZGxmK213VmwvTDAxQlhoV0UzMEJKK3VzV0czUlVn?=
 =?utf-8?B?R3JZVXJBMFZYMm51bm8zVTAwcjdHcXdWei9wOVQ1VlNja1RLZkxBckVHbEZE?=
 =?utf-8?B?U2VvOFJkM3phRTdDVURrSnFZbXpDVzNPNXgyc29EWFFJV1ZqU0wvb3BORGli?=
 =?utf-8?B?R3FRczdUQmRhUSttcGJ6L1VZSXhaVm45c2dzNlhLakcrZUNIMkkxTkFOR1dp?=
 =?utf-8?B?UmZkd2FSakhjRFFONEM5MkZtbWlsMGxTRWZIQXJmZTNjU1NTM3FBaEpnOUZm?=
 =?utf-8?B?NjQ5WFhOTTNGSHR1NHc5Ujh1K2x3eXNXNWtQZXJCMWI3ZGdITERRekJyaTNU?=
 =?utf-8?B?cjRwbk9RTUpkbXYrV25BL0c0QXBWL2NMTFVMMWZGbVlkS1FicFhWREtXRGUw?=
 =?utf-8?B?RUNmbHdpbUtvK0syU0JvTzc2L3R5NEl5MGJwS1JaM05xaGlFVklUV3A3V2xp?=
 =?utf-8?B?YVRHRnBOTm43SE51aEozYUpCeWNDaVdCQ3JIV0V6K2w2OXA5VlkwV1VzNkxn?=
 =?utf-8?B?QjN2ZE5taW5ONGVUbVBKMTU0RXZLR2hGU0FHdENlakNOa0R1NzBjZHRURVN0?=
 =?utf-8?B?RDRYSkhmUXgzVC9zRkxlK29KcUxIdmRONzhITTZqYjNLZmF5UTUwcTVKQlVl?=
 =?utf-8?B?UGI0UGFGMEtiOHFOWG41N1lzU1lDdEZwZmJ6ZGRoVTlHOUZ5akloRHYvWG80?=
 =?utf-8?B?VEltMDRFQW1md2FzVDdFUUFPckpFVWRhMzZpa09vVGgrWTluTkRZU3ZPOTRm?=
 =?utf-8?B?di91WVFPbEdYd3MzYVBWR3FNZ2dmQVZSS0dqT1VyMjJVVVBIMXM4alI2N0c1?=
 =?utf-8?B?bkFNUzdXMXFKTDdTUVhuMFBJejBxcUVlWnVzR1p2cjlrMjltaVJOTENZeGdj?=
 =?utf-8?B?cHdCQUFVUFNUUmE3TE9VamcySi9RVUNyZUMyN2YyN3MzdEw4ME5tbkNzeTc3?=
 =?utf-8?B?VGNuVUxzWjhOSTI0TlFSZHptdnVNTldkMlF1Ni9rQnF4SHplbmtGbUNjRWUw?=
 =?utf-8?B?eWc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d96f653e-8bd0-4fff-254d-08de28ed117d
X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4603.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:59:40.0313
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Cv19yZohzPWaM2MyTcssYU0Ep6UPxP6IFJh6j8Mklmye4kfT7dhq7vUWZEA/U7ZXto6v+wqpVJCZL3NzcT0pmf/Nk5/KlOiKZUXvEcRgIYI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7202



On 17.11.25 11:34, Jan Beulich wrote:
> On 17.11.2025 10:31, Jan Beulich wrote:
>> On 14.11.2025 19:01, Grygorii Strashko wrote:
>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>
>>> Now all libfdt features are built-it unconditionally, but...
>>>
>>> X86: The libfdt is used on x86 only to parse Hyperlaunch/dom0less Xen
>>> nodes, so full libfdt is not needed in this case and minimal, RO
>>> configuration can be used.
>>>
>>> ARM - situation is more complicated:
>>> 1) ARM reads Host DT (fdt.c RO)
>>> 2) ARM reads passthrough DT (RO)
>>> 3) ARM generates dom0/hwdom DT from Host DT (there is a mix of WIP and SW APIs)
>>> 4) ARM generates domU DT (there is a mix of WIP and SW APIs)
>>> 4) With EFI enabled - ARM needs RW API and fdt_empty_tree
>>> 5) With CONFIG_OVERLAY_DTB - ARM needs RW and fdt_overlay API
>>
>> This goes too far, imo.
> 
> The more that, unless OVERLAY_DTB=y, all code and data moves to .init.*. Is
> coverage in in .init.* really of as much concern as runtime code/data?

It is less priority, but still is. Any way it is unnecessary build units (build time) and
increased binary size.


Actually, I see interesting behavior - when build with CONFIG_CC_SPLIT_SECTIONS=y (CONFIG_LIVEPATCH=y)
the libfdt code is not moved in ".init"

0xa000027aa10 T fdt_ro_probe_

0xa00002c0000 T __init_begin
  

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 11:01:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 11:01:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168700.1494751 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtc-0000Q7-L1; Fri, 21 Nov 2025 11:01:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168700.1494751; Fri, 21 Nov 2025 11: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 1vMOtb-0000O1-MH; Fri, 21 Nov 2025 11:01:43 +0000
Received: by outflank-mailman (input) for mailman id 1168700;
 Fri, 21 Nov 2025 11:01: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=m3Zd=55=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vMOtZ-0007WW-97
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 11:01:41 +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 7494813d-c6c9-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 12:01:39 +0100 (CET)
Received: from DB7PR03MB4603.eurprd03.prod.outlook.com (2603:10a6:10:18::24)
 by AM9PR03MB7202.eurprd03.prod.outlook.com (2603:10a6:20b:268::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Fri, 21 Nov
 2025 11:01:32 +0000
Received: from DB7PR03MB4603.eurprd03.prod.outlook.com
 ([fe80::7eb2:6a9b:fddb:6365]) by DB7PR03MB4603.eurprd03.prod.outlook.com
 ([fe80::7eb2:6a9b:fddb:6365%5]) with mapi id 15.20.9343.011; Fri, 21 Nov 2025
 11: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: 7494813d-c6c9-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QTSuSg2P8CAwpBb/OR8+SY8qDLm3t+IGVtHnMrSoAv5097TeLUbt9tXQfYy3qrhM49D3zK1Ad/GKwZE8i02J9H9+Bh5iQSUd6X1C+Xb0/CxzVTdwN3zKiGNRwPGEj+56y84bECJzDAWyoqojDjljkivBUvAabh9zjA1WnFmZM7CSZ6b8b/+Mx/bI6D06/IYtc3jqYwtwWlQpxODSzJDsHM0h68KF9+wwuiuMgZKjARqp3P2+DtkgxvlrVzxdxcYgsqCUXX7sthyW7eORyYig+uL3WbA524yxXkDqeWXdB791otHpGgQ0K7foZ70z2t2Cx25yW80g8W5ZlKnc0CdJZg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EmRlqcGH22KKQvpxue7mNt1tP0dZp3+DarMN7yF1FgI=;
 b=LHylaJICnWvMDEkPyVtJCXc7QgYv1lNBaljBjMuaZAKO3+w/TR7gwZZ1RS+u6A9zus2VWSpC74c/9oE30fRWiTbAwm4BEXmlsudiDBQ0rwfKRXbMAFKaKJaJW56F3CfUi0VcF9tUIh5CS1ByRhEryPxTjGrZwUOl14+MbNyv2kSB1YQCnG5haZB9+U/rJjV4hYhhazEFeziN8DK+SsbFbUnzie9wXDtKAcZ408Ax8RcNQ6veZ+9wyhnfMaRgGr5kz/1bJ6YdDUzDKM3zFdCTJAsOlfHq0IXMI8KYStcBLzRDi22f7WzTfAQHuaaATxbr+X/g1okWDQmYBpuYebfbgw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EmRlqcGH22KKQvpxue7mNt1tP0dZp3+DarMN7yF1FgI=;
 b=kRQSU+iNs1Z88jNenoUpnRQJdb8vgUueYtNSBLlPoTQDKtOig4jPm1nIClUDsHLwKycdxpkT33pNMv6Yo8jPA6c/xr1+uHnCJMh3zVRTNCEdsc4dfMykZWx7HY2HnNJIJ73iVYwLNCXZA3dIfAB2WG1sMy8L8RBSk8Ywy4Ujf8OZ7gPkLOOlQBHmurRfzwuhqa8LZYYhEcKu7rr7llxFtdb2tj88khF7c6ESRQ/cbbH90JfPzuPsBbShoMH5nyNk/2h2iZ3xwICw5AsAqx+ka9xvcR0unBWquFPNcfy9G+5N53Ih2KR+q/ji6yRSOlHjwxY8r+8m1HCh7su4w5/aGw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <c2ffb95c-209e-437c-9a6a-a0f5563e24be@epam.com>
Date: Fri, 21 Nov 2025 13:01:31 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] common/libfdt: optimize usage
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <20251114180130.346755-1-grygorii_strashko@epam.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20251114180130.346755-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0366.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:f8::13) To DB7PR03MB4603.eurprd03.prod.outlook.com
 (2603:10a6:10:18::24)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DB7PR03MB4603:EE_|AM9PR03MB7202:EE_
X-MS-Office365-Filtering-Correlation-Id: 6d4129d5-48e5-4d98-787a-08de28ed54c5
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?QXR4amVqZVlpc1U2UFhxcFJpcHluVDFOaUErc2lDRVZnT2dNNDdTenhGb2dp?=
 =?utf-8?B?T0NVcDNwYnU3eHo0RXBFeDF0L2Nka1p6UnNwM0JUaEZMYkxqbEw2UjByTEdX?=
 =?utf-8?B?V3Z6cTBGTllUU0NUanVYNklGdEhuWGtUeHZzVVB1N2Q4MFR6dUo4eFhTT2hU?=
 =?utf-8?B?bk9XUk5Bb3RxcDMrcFNoQkpFcmI2bDVrMmsxc2NvbGpJUEZ1OTdnajlzZVVV?=
 =?utf-8?B?MDkwbVhrZWNoU0dFWExQaG03Y24rRGVtajFCSTNUU2hCRXY2R1BXTzIxYTFJ?=
 =?utf-8?B?R1crRVV2SitFMUxzaUFodlZvQi84ZnRQWDBNZ084RmtmakNOT1JWVkVXQktl?=
 =?utf-8?B?eHRUWHQremR0VFdKdnFIT3lORCtSUnBBZmFVa0EwMVRTdVFDY3RuT3lBQW5D?=
 =?utf-8?B?UEdTcEZFSlg5N0RDMnBIUHUwZit0WUxIS1U5Z2lzYWp2czZRK1FBdjhvSGUy?=
 =?utf-8?B?SkdZMGpuNWxZVytZK3NhMzFkVXM2ZTJtMnVuc3VRUEx4SFhuRHhseVdoSzRa?=
 =?utf-8?B?NEhzN3l5dXhIbzdIcEVHQjU3OVJuNmJvUks4V3NycWdPMi9MOTV6cEtBS09G?=
 =?utf-8?B?TzBWRVlPbHU4YzhiZE5NSzdRZGZCN3pJTXBNMUI0TGNIQVRRKzJ4NGczc0hO?=
 =?utf-8?B?K1lYY0dlZU80WkhqOUNTTjVUM21QL2xyS2pGa3JvTk1vQ2I4QkJYVk9GZ2t6?=
 =?utf-8?B?dlFCT2FWTG5CT0QvNXRqOVRZUU9LTWh3Uis4bmU5bWh4MnRIT3dlWFI2Zy9s?=
 =?utf-8?B?NFlUL01jOGo4TkF6NXFKUm9ZMlY2TlNDd1FlWWFCWXNtTXBHT3MwaERNbk16?=
 =?utf-8?B?U2tPUk9hY0JOUVJJcFVGQUVxaWxZNy9zZFNlNnRVN3dMMDdHREJiSlo0Q3FG?=
 =?utf-8?B?UTQ3L3huNHp6VkRzcDd6aVV5YzhpcjF0ZnRJWFRwT1hOL0d4UGd6UXlYUDZt?=
 =?utf-8?B?Y0NFNTBQS2w1VlBVRUE2djFQdEhFbkY2UGJ3RTJEY1ZVUDlFSGF2Q2tlZkQ5?=
 =?utf-8?B?RGl3UGZydzRnY3ZhNEI3Vy9qc0FmQTcxMlFsNUV3emltc0o0eE1nUmQrSFBQ?=
 =?utf-8?B?WEFScGZiY2VqUVI0TCtWQStrL0xsYUxUZEprbTJaUkRXM3k3UGRNTVk1L1NC?=
 =?utf-8?B?UEV1MkpXSXZmVDdXR3NCVDFrZVRqL1QwdE03aVRjWmYxMHFRSU9PRzRvUVY3?=
 =?utf-8?B?S1NPQnNzUXFiTTFTSldVcWlBL1UxZXZ5TzR1VHJOVjZwbkNVYXRueXlvMy90?=
 =?utf-8?B?bDVpYWxLNWE0Z3lpTktDTURkWEVSbTc3ZFRjZk1XV2dXOGlTalpvcHNBZERX?=
 =?utf-8?B?Q21zWFVhUWo0ZW81WTNtOXF1OWVvWkJ0N0JWZ3NmdVM1SU55dUtiR3R5S2pE?=
 =?utf-8?B?RGNTWGxtekZEYzNqcWJsRDdMVXR5S3NSUldlS1hkQ1dheVErUGlTMG5zemVP?=
 =?utf-8?B?OUFaYXN2VFZ4MHI5M0hXSlY5TkFmbnRLUWh5eVBpU1pObCtJTXZsRENMYU1w?=
 =?utf-8?B?MGN0SlpDZEoxT3Jtbzkzd3JERlBZeU9BZEJKM0V3TEFFeXVVcEdjMDQrUVhX?=
 =?utf-8?B?R0hLMkltNk1OdGRCVGRvN2doM0ZpQUdvc3ZsV3dWeTFhdmJyeXZQK1kyMmpn?=
 =?utf-8?B?ZlZNUU9mb2Y0TmpzTHMzWi9sdU1SY3JFK2F3djFjc0VTdDVKMXRFbnR3VkFZ?=
 =?utf-8?B?S1VIQnE2WXlsK3lmd0N3TkJiQjgrRzBlNStNRHZSMUp3dU1KRHBwN1diZWNj?=
 =?utf-8?B?VXg1UXE3eHZ0RzFOY1BrMmIxREZjZi90UkhKc3AwS0pmZ1pPWC9Ca2dRUXo2?=
 =?utf-8?B?WjFXNi8wTmx0eTFjWUJZRmE1QU51YThFakM5Y1VieFNTdkphWU9KTGd1eHZB?=
 =?utf-8?B?OG5yYzdzNERpbmhpK1BybUNwd3drMlhNSnZDdm1mcytpeXd4Ry9QaGQ3VmVa?=
 =?utf-8?Q?4GP4DKXF3lK9JXAfCWM6vTsNfwS6XkgT?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR03MB4603.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QTFLMDNOVHVTSnlxbGYyOTk4KzF3T1g3Wm5OaXpJTXZLdThDUlB4RDMxTWNN?=
 =?utf-8?B?MEJGN1FlQ0hHckNIMDJjQ0Q4TzVzM1g0VkdweGZUNXF3SHBmaklsTlVJa3I0?=
 =?utf-8?B?MkI0UDlCZnJLYlU2eUh5YjZ1MkNya3c1cTZEa1hNNVR0ZmdjUTZ4ZlNRVm1j?=
 =?utf-8?B?T2dPQXQ3dXEyZnUyOTcxOE9lWU56OFJ4R01hOTR0eEpMRFJib3N3MmNtNGw5?=
 =?utf-8?B?cjk4dmh4MWMvaEwxTG1LWE9UTEZmMFc2WkhSc296ZGlGWFVRYk9zRE5IbE9x?=
 =?utf-8?B?dEw2V3NqeUdZU1pnaDdxYjJtMktVSEhHOXRyNUtYZnlWQS9HR0huY0JFYTJL?=
 =?utf-8?B?eEVFdUQ5U0tvdzg5ZTF5NDV2bkxqZ3lYZTM5eTV3TnFHREZqbWFMMjJnb3Bx?=
 =?utf-8?B?ckFpbXFoYWx1djNvaWxRNm5vSnRMbW4ydi9xTzU1UGdUV2JZWjR5S0JPaVEz?=
 =?utf-8?B?R09pMVdQdk5iMlhQMDViNWZWck40aG1VQitrTUlKaFJvT1F2aWMwbitja0Fk?=
 =?utf-8?B?M281SjIwR1NIdXEwUExLekNwRWt3a0p3RlVNbW4zbVdMUE9YNVBnOTcwNG5z?=
 =?utf-8?B?dXlRVnNrUEtpeDlhaUlKd3RlTE9kK2ZYeU5tazRwNHBlUXVGYkhHQVYxL1hz?=
 =?utf-8?B?NDhHM1N4QjdMdDRMdnlRNE5FazVOTnVhU1gyajFMWEl2WWRhdEtyTTNTc29B?=
 =?utf-8?B?dVZNZnQvTHlpZ1hieUo2bHE2SmJadlZyTFFSTG5YRDBRNTJraXNCSkxIY1k4?=
 =?utf-8?B?NFZ4ZUlQRGVVbE1vbUtlYStxeVhUcFNGekE2M1VwaUM3c2hlZVd3TjJPT1hK?=
 =?utf-8?B?RVpMT0RQOVI2bUtwSHMxMFIzQzNKYURiem5EbVRKZFJ3RWpzZmZQR1J3VE5H?=
 =?utf-8?B?OGljcy9XTHB4RG1RSklmU083ZUdBRXVNRDZBaGJtQmhIa3BwSE1vZllXcUQ5?=
 =?utf-8?B?a0lvL1FEbUR0VVhGT2h3dk1tbDI2QVNwdzY5a2hpa21UNG9QbjRPMHJsV1Vy?=
 =?utf-8?B?VXFPNWdZUDRjMVlBK0tMNUJuaGZ2dGJIVWN4S3VCYkpqaDZnajRsT3hTYnNC?=
 =?utf-8?B?R1kxT3lZbXl2MGh6RDdZTm9uTHh4UVRoMU9iTE5nSDZPa1NJWjZiNVBVc0k0?=
 =?utf-8?B?V2N0VGNKRWkwc3ZvaStIc3VnNVB1NEZ1ZDVQejUyOUxLVWJHakNicnNQeDBZ?=
 =?utf-8?B?SmlEckswUEE1OVAzUDFKb293N3hlYW5ySDB5THNTSnpjRGtOWVZIZ1lJKzQw?=
 =?utf-8?B?cStIeFM0OGdrdXptVGF1RU9NUE9YdGg0eTJ6SjZhVFhYbUlTWEFLLzFUbmRi?=
 =?utf-8?B?empmbVhpcVBaSlpkVWJxS3NpYVFSOXVocHNhM2RlZnBmeGQwQTZpNFJpVlpt?=
 =?utf-8?B?SnRHbkdlejgwMHlSWEtVbHlxVFZDck9LQTVSZVdHeENmbUZkd2xlZ2s5ajlF?=
 =?utf-8?B?YVU0cytPeDRvc3g5K0x2cEI4YnBGWXU4eXBFL2t4c3ZLOWI1ZE10QklZemlD?=
 =?utf-8?B?MDhYcE10c2xzOU44a3lrL3p2QlcyTmxCc0hIL2lIRlhzOU5yMUl5SzdiSlA3?=
 =?utf-8?B?MVllK2Nkdk5JaE4yc21HYTVZLzRqK3BsNi83Z3Q4ckhLWSt5cTFnc1AwQzgy?=
 =?utf-8?B?aHJLNWZQOTZhVUhTanRVMWZTR3JYdnF1NjJoR3p3dlVqV1RGWUVUTndRTnhW?=
 =?utf-8?B?d3hKUHlsQk9iSFdHRUFqQWVsWFdqRWVGRm1QeWFzWDFsUDFwQW9oZWxGVncy?=
 =?utf-8?B?R2MvWXdYWWV5U09LZ1F2VmxUdFk2QjlZeXkxeC8wb05WN0EzYnZickxtWkpK?=
 =?utf-8?B?R2FMMTBHcklQMlZHdGhRS2ZqUFFNL3IwaHFYNnNVT1BNYTBRR2ZGcnRCU0lK?=
 =?utf-8?B?MEkvOURubjhBdkRLR01hVS96azFYT3pNcjNwT1hXVExuM3JnRllCNHFUa0JI?=
 =?utf-8?B?NjY1bk5KbXVoUjlCQXFBRzl6WGVQbk1NS1piY1dMY0xWY2JUNkZicWFGWmJZ?=
 =?utf-8?B?RnpBRm44bmNxOUJaenhwZVJSNU9ScHp6L2hVZW9IOTVqbVc2eENmeGN6YnVD?=
 =?utf-8?B?aGNsSThiK2ErZnlYb1Q2VUpSZUR6Ulg0Ynl1bU1WazAzcS9HQmtCUnZrbHBi?=
 =?utf-8?B?bmNEWDgxd2UveGNHZVRBdklHeVIvUjlhTVNjT1hmV3kxMGt2SDNieFB4bEJ5?=
 =?utf-8?B?TkE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6d4129d5-48e5-4d98-787a-08de28ed54c5
X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4603.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 11:01:32.8803
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: tfHu7/tThmCnS2/wRVKMTl9TjGEVLSwJyZNaIuodX/Za8XPp3/dUNM02XdJY6zzhnsFRsolePnNtda2z2TM4xymt8lKFg66S9IEdtpegk+c=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7202

Hi

On 14.11.25 20:01, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Now all libfdt features are built-it unconditionally, but...
> 
> X86: The libfdt is used on x86 only to parse Hyperlaunch/dom0less Xen
> nodes, so full libfdt is not needed in this case and minimal, RO
> configuration can be used.
> 
> ARM - situation is more complicated:
> 1) ARM reads Host DT (fdt.c RO)
> 2) ARM reads passthrough DT (RO)
> 3) ARM generates dom0/hwdom DT from Host DT (there is a mix of WIP and SW APIs)
> 4) ARM generates domU DT (there is a mix of WIP and SW APIs)
> 4) With EFI enabled - ARM needs RW API and fdt_empty_tree
> 5) With CONFIG_OVERLAY_DTB - ARM needs RW and fdt_overlay API
> 
> Hence, add possibility for optimizing libfdt usage by introducing separate
> Kconfig options for each libfdt feature and select them where needed.
> 
> Following libfdt modules are not used after this change:
>   Makefile.libfdt
>   fdt_addresses.c
>   fdt_strerror.c
>   fdt_check.c
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
> Not sure about using DOMAIN_BUILD_HELPERS for selecting
> LIBFDT features, as DOMAIN_BUILD_HELPERS doesn't exactly
> says that domain's DT will be generated when selected.
> 
>   xen/arch/arm/Kconfig       |  4 ++++
>   xen/common/Kconfig         |  4 ++++
>   xen/common/libfdt/Kconfig  | 14 ++++++++++++++
>   xen/common/libfdt/Makefile | 12 +++++++++---
>   4 files changed, 31 insertions(+), 3 deletions(-)
>   create mode 100644 xen/common/libfdt/Kconfig
> 

Before continue Kconfig related discussion...

I've been thinking what if we use libfdt as a library (.a)?
We'd get the same result as linker can do optimization basing
on obj granularity while linking with library (.a).

OK. I've started experimenting - obvious choice is to use "lib-y" and
build system will do the rest. But in this case we'll lose ".init" and
libfdt will be built-in.

I've tried to preserve exiting behavior when libfdt is moved in ".init", but,
honestly got lost a bit in Xen build system.

Below diff is what I've came up with - probably no exactly right.

Does it make sense?

diff --git a/xen/Makefile b/xen/Makefile
index a4d53526bd0b..3fb77ab19853 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -464,6 +464,7 @@ ALL_OBJS-y                += arch/$(SRCARCH)/built_in.o
  ALL_OBJS-$(CONFIG_CRYPTO) += crypto/built_in.o
  
  ALL_LIBS-y                := lib/lib.a
+ALL_LIBS-$(CONFIG_LIBFDT) += common/libfdt/libfdt.a
  
  include $(srctree)/arch/$(SRCARCH)/arch.mk
  
  $(obj-y) $(obj-bin-y) $(extra-y) $(lib-y): _c_flags += $(cov-cflags-y)

diff --git a/xen/common/libfdt/Makefile b/xen/common/libfdt/Makefile
index 6ce679f98f47..e315252c88eb 100644
--- a/xen/common/libfdt/Makefile
+++ b/xen/common/libfdt/Makefile
@@ -1,21 +1,28 @@
-include $(src)/Makefile.libfdt
  
  SECTIONS := text data $(SPECIAL_DATA_SECTIONS)
  
+obj-libfdt-y := fdt.o fdt_ro.o
+obj-libfdt-y += fdt_wip.o
+obj-libfdt-y += fdt_sw.o
+obj-libfdt-y += fdt_rw.o
+obj-libfdt-y += fdt_empty_tree.o
+obj-libfdt-y += fdt_overlay.o
+
  # For CONFIG_OVERLAY_DTB, libfdt functionalities will be needed during runtime.
  ifneq ($(CONFIG_OVERLAY_DTB),y)
  OBJCOPYFLAGS := $(foreach s,$(SECTIONS),--rename-section .$(s)=.init.$(s))
-nocov-y += libfdt.o
+nocov-y += $(obj-libfdt-y)
  endif
  
-obj-y += libfdt.o
-
  CFLAGS-y += -I$(srctree)/include/xen/libfdt/
  
-$(obj)/libfdt.o: $(obj)/libfdt-temp.o FORCE
-       $(call if_changed,objcopy)
+#lib-y += $(obj-libfdt-y)
  
-$(obj)/libfdt-temp.o: $(addprefix $(obj)/,$(LIBFDT_OBJS)) FORCE
-       $(call if_changed,ld)
+$(obj)/libfdt-temp.a: $(addprefix $(obj)/,$(obj-libfdt-y)) FORCE
+       $(call if_changed,ar)
+
+$(obj)/libfdt.a: $(obj)/libfdt-temp.a FORCE
+       $(call if_changed,objcopy)
  
-targets += libfdt-temp.o $(LIBFDT_OBJS)
+extra-y += libfdt.a $(obj-libfdt-y)
+targets += libfdt-temp.a $(obj-libfdt-y)

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 11:01:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 11:01:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168718.1494770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtg-0001IB-MS; Fri, 21 Nov 2025 11:01:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168718.1494770; Fri, 21 Nov 2025 11: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 1vMOtg-0001Ej-1i; Fri, 21 Nov 2025 11:01:48 +0000
Received: by outflank-mailman (input) for mailman id 1168718;
 Fri, 21 Nov 2025 11:01: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOrU-0007TB-KL
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:59:32 +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 25bafe3b-c6c9-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 11:59:28 +0100 (CET)
Received: from CH2PR07CA0037.namprd07.prod.outlook.com (2603:10b6:610:5b::11)
 by MW6PR12MB8757.namprd12.prod.outlook.com (2603:10b6:303:239::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.22; Fri, 21 Nov
 2025 10:59:23 +0000
Received: from CH3PEPF00000011.namprd21.prod.outlook.com
 (2603:10b6:610:5b:cafe::8) by CH2PR07CA0037.outlook.office365.com
 (2603:10b6:610:5b::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.11 via Frontend Transport; Fri,
 21 Nov 2025 10:59:12 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF00000011.mail.protection.outlook.com (10.167.244.116) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.1 via Frontend Transport; Fri, 21 Nov 2025 10:59:22 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:59:19 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 25bafe3b-c6c9-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=a+OhLO9QQuXwusL1S/as/zdw5Hd48CY1mOfWhzyOlt1tVwGaLIB7HJPlSLHz5KExvtsZmT4kmi0aeo+frBCE9fIPPSvYxG60ZnIeBRYaFiwpPDbCuL894LY4CCsLMKFlbJXEZ4JeQABd1oQIyyCCvfxx7WrqdUvGGZIPTC2CAXH34+vkmlC452ZFLTDTWhxQRMyUvN9mcNC02nzdXaPTZJ9vk3oaw7UrxDKluZUdWQSbqeSZ+gWpbCAq5kDkXU58i8Q9o88hFzM89CdhgjCsA/Eihi/yIrIr4ZZYMoRL194f3vlzOacORCyRoObQJF3LRY+2JvcBiZINB4HJ6KrsJQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jXCICJruve1evaLcc0VBzB4csGxFXhFrGDVb16+CJEc=;
 b=v0hfNg6AIFbNgVXLFNEwK+EvhHH/N8CEAtYn+rP6EU5NFWyc2U0/oSGp2eehABcO+5OFQ6AUTTYwEhUx56r5Yv8chCpoDLnNRbUIxWhYiRFg+MbpYeRfwwf1k08jOvIFjULGjt+fu9fPhO2arsxSLUlxm57y7OYuKZMNh0hJBC5qppjlX/KvGWS4jY0r9ZCp+MjLvDGh22TMPi9dtkvpQDTwqJm8QMof09XHRqvDL0YH4vdWp0IZ3825unIZ8lyePvGHevkxnaizaLVF1cPYXdndb/SQ/AkabmJkOON5Rl/FMCxX6ytpSv9q0lH00Bxp85RR1/F54/+fvdyHdVKixg==
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=jXCICJruve1evaLcc0VBzB4csGxFXhFrGDVb16+CJEc=;
 b=CYRhRILUCU5MwbhTac81LME/GL3BlMEa0CmSq8M/sd3RuxZo9mJAgRCKOtj+J4qk9Rw5gmniu00MOWrPO8G6D2KPixPgx8UR06Qv6AmhYKR+naJy3093u7T25WIUPdRh/Bh0rkbWnsvGcc+6bS/AsjEozO0ikYxtKR3JyWhI2tQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Stefano
 Stabellini" <sstabellini@kernel.org>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
Subject: [PATCH v4 20/24] xen/x86: wrap x86-specific domctl-op with CONFIG_MGMT_HYPERCALLS
Date: Fri, 21 Nov 2025 18:57:57 +0800
Message-ID: <20251121105801.1251262-21-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH3PEPF00000011:EE_|MW6PR12MB8757:EE_
X-MS-Office365-Filtering-Correlation-Id: afd61635-e19b-42d2-226f-08de28ed075a
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?doufl69hO38xm4Bh6VM12MwiSdOntTO7wbxzhHQtW/+qKiN6AXCpw7Xr9mma?=
 =?us-ascii?Q?i8bvl2gtX3XbpZkbWRfv7tRhvdRMystuVTp17wMlO7UTrrM6qiikRgArUh0I?=
 =?us-ascii?Q?M0+LtsRzYZ5Mkrx9FoZvdUj8h6pc8Lolk4dkh931KqeT9s995rrdPpQVYMtj?=
 =?us-ascii?Q?bzS473LSdmyAgLcK8gGSWNkfq6qhUbHVo0H4k+VXt6xD0+g90aZW/NRvjwrE?=
 =?us-ascii?Q?omX/yik0G7Qv/M3lDrNOaBJYuNN5CvrXZUMQyLQ0zJ4XRIMDjm1ShamyBPYZ?=
 =?us-ascii?Q?rJeoC6miuSZLNlopCt4BZkMGyNHPZksyEOhgVrydacFxt2HHF03MQdVaNmxn?=
 =?us-ascii?Q?/ZHiuHfMZkwH19NdLvRpshr+8WC2WeQHQPLaueZ0F9P/I4Bhi3JyCEUlAKD/?=
 =?us-ascii?Q?3XCni3zCrsgJwA3sR5PXjB+9Eiclux+FO1BymJxckeMoohvQwmu0Qh4v+MsX?=
 =?us-ascii?Q?KZKY6zIh3lQNecUX12eoW90Q3O7BSo9Q4fIYzUFyVZYi5NnFTh6ghFkddQ1Z?=
 =?us-ascii?Q?cLPqn0itQcU/9edlomnYYX9cVHxKUwOEtepWeJArsHBGXrji+oJAoFL5y1Xe?=
 =?us-ascii?Q?M9LmvZUyWRUCgjc078fAgqKL9LXAlDlcXjvJ8sqGbcbWfbB7vq2VnoHQ/t3R?=
 =?us-ascii?Q?J26dpmy4YX/CxsQlwLyFSSlKlJDWLzsyxlyVN0nKGm27w4u0CG0WachEVF6d?=
 =?us-ascii?Q?BlJca/RYD1LmY0M5vEiDKEDx489knXoVIGok99XuqOpN+6SUdedzTX6ZP83e?=
 =?us-ascii?Q?Rg9nc77JzOYIdRj1qnwbKG3tOd4iQAJgCyuwX9xRxpaV+2/58H561qklNna+?=
 =?us-ascii?Q?jWyMaXp5PMr62//87E1XCITNPacWZTjxPfT4u20M0XHNg0wG1CX9Q2HmxAq9?=
 =?us-ascii?Q?z+eZJ3ooNvuyNEgc16rusQpGhlIpiqTvXaZxutTUPwPm0LpxVgUra42wiRIa?=
 =?us-ascii?Q?RR7Ijinlfb7Lm4949ovGX+K5ls3c2ndthl+SATHvbYyBSkZ6E6vx1Els3gAW?=
 =?us-ascii?Q?FUdgrsJxvgK/XboyxgCJfP1T8FgDSaprtjJ+yVrYLkGdKLfb1hnRh+QzTQnZ?=
 =?us-ascii?Q?pCtdH29w8Fium0HCrbqPxUbH+wY8EuKjakTLo6CpIzQKkk0K4qZRs1+n1lIn?=
 =?us-ascii?Q?jgcCSHAfrdJaX92ym7wbnEbYH97Vz8Z9RtdGgCvad9nnk6LEDyKYwL8pA3ch?=
 =?us-ascii?Q?YJ2xC2oyNyILWSuD8wxEyS+hdqDvPKppItCWr1ZyVpAU9Vei/fJEDgCoR5MI?=
 =?us-ascii?Q?nc7m7ePbwSBiT9y0jUEx1XYOMAdvPPoqa7qhcgachjB6gesMnvEylJsKE9bJ?=
 =?us-ascii?Q?/VvVxFKUyuJ0XQRlkPRuqBt4xNWOLdKImxpK/s7SNgTg7cZ1jAhob/IlquD8?=
 =?us-ascii?Q?F0Df+gVndQL4BUugQ4Hh1+vWKEdRj2XQ5aG4/nl3DjhRG2rm8uBGhbQa59mP?=
 =?us-ascii?Q?ioGmlSgm8x5JFlixmLMqca4G9m7yUUd60yitN502fgVIHPcJdzLzGJ3T80yw?=
 =?us-ascii?Q?eXvHWyxMBR1d9TkH6w2YpdoRBSlADjycE64YIrUsHSEBPhLxPDgyN0+OnY2G?=
 =?us-ascii?Q?LMgc76G5M7JGL80UWTg=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)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:59:22.8350
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: afd61635-e19b-42d2-226f-08de28ed075a
X-MS-Exchange-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:
	CH3PEPF00000011.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8757

Function arch_do_domctl() is responsible for arch-specific domctl-op,
and shall be wrapped with CONFIG_MGMT_HYPERCALLS
We focus on x86 implementation here only. Tracking its calling chain and the
following functions shall be wrapped with CONFIG_MGMT_HYPERCALLS too.
Otherwise they will all become unreachable when MGMT_HYPERCALLS=n, and hence
violating Misra Rule 2.1.
- hvm_acpi_power_button
- hvm_acpi_sleep_button
- hvm_debug_op
- make P2M_AUDIT depend on CONFIG_MGMT_HYPERCALLS
- make PG_log_dirty depend on CONFIG_MGMT_HYPERCALLS
- make cpuid.o/policy.o/msr.o depend on CONFIG_MGMT_HYPERCALLS
- make HAS_SOFT_RESET depend on CONFIG_MGMT_HYPERCALLS
- make VMTRACE depend on CONFIG_MGMT_HYPERCALLS
- paging_domctl_cont
We put the guardian in Makefile for the arch-specific domctl.o compilation.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- split out xsm parts
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
- wrap default-case and arch_get_domain_info() transiently
---
v2 -> v3:
- add missing guardian in arm/Makefile
- cover RTIT_CTL{,STATUS}_MASK #define-s
- add missing guardian for .vmtrace_output_position
- guard the whole static inline function
- address "violating Misra rule 2.1" in commit message
- remove transient wrapping around default-case and arch_get_domain_info()
---
v3 -> v4:
- make HAS_SOFT_RESET depend on CONFIG_MGMT_HYPERCALLS
- make VMTRACE depend on CONFIG_MGMT_HYPERCALLS
- seperate depends on condition for future convenience
- split arch-specific domctl-op into x86 and arm
---
 xen/Kconfig.debug                 | 1 +
 xen/arch/x86/Kconfig              | 2 +-
 xen/arch/x86/Makefile             | 2 +-
 xen/arch/x86/hvm/Kconfig          | 1 +
 xen/arch/x86/hvm/hvm.c            | 2 ++
 xen/arch/x86/hvm/pmtimer.c        | 2 ++
 xen/arch/x86/include/asm/p2m.h    | 2 +-
 xen/arch/x86/include/asm/paging.h | 2 +-
 xen/include/hypercall-defs.c      | 4 +++-
 xen/lib/x86/Makefile              | 6 +++---
 10 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
index a69615cd63..c078c6bf2e 100644
--- a/xen/Kconfig.debug
+++ b/xen/Kconfig.debug
@@ -15,6 +15,7 @@ if DEBUG || EXPERT
 
 config GDBSX
 	bool "Guest debugging with gdbsx"
+	depends on MGMT_HYPERCALLS
 	depends on X86
 	default y
 	help
diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 8368c6ecf0..d49681beed 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -29,7 +29,7 @@ config X86
 	select HAS_PCI_MSI
 	select HAS_PIRQ
 	select HAS_SCHED_GRANULARITY
-	imply HAS_SOFT_RESET
+	select HAS_SOFT_RESET if MGMT_HYPERCALLS
 	select HAS_UBSAN
 	select HAS_VMAP
 	select HAS_VPCI if HVM
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index d21fdd49df..006a6e56d3 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -79,7 +79,7 @@ obj-$(CONFIG_VM_EVENT) += vm_event.o
 obj-y += xstate.o
 
 ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
-obj-y += domctl.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
 obj-y += platform_hypercall.o
 obj-$(CONFIG_COMPAT) += x86_64/platform_hypercall.o
 endif
diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index d540c0ebf3..52b22e5d17 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -37,6 +37,7 @@ config INTEL_VMX
 config VMTRACE
 	bool "HW VM tracing support"
 	depends on INTEL_VMX
+	depends on MGMT_HYPERCALLS
 	default y
 	help
 	  Enables HW VM tracing support which allows to configure HW processor
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index d03f563d76..b03f7dfcf6 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -5204,6 +5204,7 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
     return rc;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 int hvm_debug_op(struct vcpu *v, int32_t op)
 {
     int rc = 0;
@@ -5246,6 +5247,7 @@ int hvm_debug_op(struct vcpu *v, int32_t op)
 
     return rc;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 #ifdef CONFIG_VM_EVENT
 void hvm_toggle_singlestep(struct vcpu *v)
diff --git a/xen/arch/x86/hvm/pmtimer.c b/xen/arch/x86/hvm/pmtimer.c
index 87a7a01c9f..f080f7561d 100644
--- a/xen/arch/x86/hvm/pmtimer.c
+++ b/xen/arch/x86/hvm/pmtimer.c
@@ -56,6 +56,7 @@ static void pmt_update_sci(PMTState *s)
         hvm_isa_irq_deassert(s->vcpu->domain, SCI_IRQ);
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 void hvm_acpi_power_button(struct domain *d)
 {
     PMTState *s = &d->arch.hvm.pl_time->vpmt;
@@ -81,6 +82,7 @@ void hvm_acpi_sleep_button(struct domain *d)
     pmt_update_sci(s);
     spin_unlock(&s->lock);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 /* Set the correct value in the timer, accounting for time elapsed
  * since the last time we did that. */
diff --git a/xen/arch/x86/include/asm/p2m.h b/xen/arch/x86/include/asm/p2m.h
index 9016e88411..3574e2eecd 100644
--- a/xen/arch/x86/include/asm/p2m.h
+++ b/xen/arch/x86/include/asm/p2m.h
@@ -20,7 +20,7 @@
 #include <asm/page.h>    /* for pagetable_t */
 
 /* Debugging and auditing of the P2M code? */
-#if !defined(NDEBUG) && defined(CONFIG_HVM)
+#if !defined(NDEBUG) && defined(CONFIG_HVM) && defined(CONFIG_MGMT_HYPERCALLS)
 #define P2M_AUDIT     1
 #else
 #define P2M_AUDIT     0
diff --git a/xen/arch/x86/include/asm/paging.h b/xen/arch/x86/include/asm/paging.h
index 0c06b0a7a8..ba5ba7324e 100644
--- a/xen/arch/x86/include/asm/paging.h
+++ b/xen/arch/x86/include/asm/paging.h
@@ -55,7 +55,7 @@
 #define PG_translate   0
 #define PG_external    0
 #endif
-#if defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
+#if defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE) && defined(CONFIG_MGMT_HYPERCALLS)
 /* Enable log dirty mode */
 #define PG_log_dirty   (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)
 #else
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index 4840de805b..38b21dccbd 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -196,10 +196,10 @@ dm_op(domid_t domid, unsigned int nr_bufs, xen_dm_op_buf_t *bufs)
 #endif
 #ifdef CONFIG_MGMT_HYPERCALLS
 sysctl(xen_sysctl_t *u_sysctl)
-#endif
 #if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
 paging_domctl_cont(xen_domctl_t *u_domctl)
 #endif
+#endif
 #ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl(xen_domctl_t *u_domctl)
 platform_op(xen_platform_op_t *u_xenpf_op)
@@ -299,7 +299,9 @@ hypfs_op                           do       do       do       do       do
 #endif
 mca                                do       do       -        -        -
 #if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
+#ifdef CONFIG_MGMT_HYPERCALLS
 paging_domctl_cont                 do       do       do       do       -
 #endif
+#endif
 
 #endif /* !CPPCHECK */
diff --git a/xen/lib/x86/Makefile b/xen/lib/x86/Makefile
index ac6d4369f3..124af43ea0 100644
--- a/xen/lib/x86/Makefile
+++ b/xen/lib/x86/Makefile
@@ -1,4 +1,4 @@
-obj-y += cpuid.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += cpuid.o
 obj-y += cpuid-generic.o
-obj-y += msr.o
-obj-y += policy.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += msr.o
+obj-$(CONFIG_MGMT_HYPERCALLS) += policy.o
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 11:01:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 11:01:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168734.1494785 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtk-0002CB-MJ; Fri, 21 Nov 2025 11:01:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168734.1494785; Fri, 21 Nov 2025 11:01: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 1vMOtk-00029z-B0; Fri, 21 Nov 2025 11:01:52 +0000
Received: by outflank-mailman (input) for mailman id 1168734;
 Fri, 21 Nov 2025 11:01: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=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOqx-0007TB-Cn
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:58: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 149fe4eb-c6c9-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 11:58:58 +0100 (CET)
Received: from PH8PR22CA0013.namprd22.prod.outlook.com (2603:10b6:510:2d1::11)
 by SJ0PR12MB6990.namprd12.prod.outlook.com (2603:10b6:a03:449::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov
 2025 10:58:54 +0000
Received: from SA2PEPF000015C9.namprd03.prod.outlook.com
 (2603:10b6:510:2d1:cafe::6b) by PH8PR22CA0013.outlook.office365.com
 (2603:10b6:510:2d1::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.12 via Frontend Transport; Fri,
 21 Nov 2025 10:58:53 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF000015C9.mail.protection.outlook.com (10.167.241.199) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.9 via Frontend Transport; Fri, 21 Nov 2025 10:58:53 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:58: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: 149fe4eb-c6c9-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ke9yDmteeYhVKq/N6zQDOQkMwa/lKkcNa3u8t2t8LYuNdoqSDMiX2DcU6vsMUkkwFY8H4eu28kQjb9Xxd+M9w1l5vwS/EZXXDFy7RxZ/OvUqNToRdTSWWu4Q/rfurput33a5y8Lex84ORz6OaxbdhH6GP4Lsi9TugEKR2GFBsVd1feDsu27y6jx/h5m8nQ+O+2XHp5yhh5Dtnf8TG2Jm+sxtlh/5XXTFpuT3fTjaqCJQvZ6PtDUObe1FqcsSzcf7L4UAb3kq6KRpkffEZNSCoZiLJxYayM7gkh0FvE4jMNdcuVFIdDkIjlojgkET3nyWGX4xHa83ECaIImLsnOR4kQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ujDe1zt9QHrXlG7ZNmi2RWPU8HuKyDN6Q+EP1SD7HV8=;
 b=A90AZw0ITXUe5iH1c/cvR9CsOtGrqzefMgDb8VFVsBN0nHswsW1CNGDS5ARkl0ATbNxSdaJuQggeH4n6x+B2Q0J+lP9VHEs3Jclq4LAV1lrUvFOZjnpUwtfegx2+2Zy/vZIG7IgXhBsGuOAk/EeLdG6fCSTxxwQiVutWr7JU78KqFw4mXZqMiw7TUcGaxxO5SKXK0q3jy/js0DnZUBeWAU2ARoKvurS7zmykvCVuqbjH/0ZzasxjE8pD0CCrbwn1zNr7T5HSJDc/EXEwyvuyfYYfFKjd2A0pWy1g3Nz8cXGyFEPqm4PJMnIF/uP+7dbW0sRvkvFJUp2qurQTo80GMg==
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=ujDe1zt9QHrXlG7ZNmi2RWPU8HuKyDN6Q+EP1SD7HV8=;
 b=e6gynIt5oRGe7GI4kszttLt9EKM/QkK2m4XDH0TB5o9AMVCIzD78gj8+I9jq5fcv6WYMa0yxsBrscAxxKtu3JAgdxBKyoEMbPi/POp6etdC2YZZu/01a7zhu8TTf1J8JRQypfO2KhArmOIDVjqohj3UWgw407OrhMeKrEtINntk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, <grygorii_strashko@epam.com>, Penny Zheng
	<Penny.Zheng@amd.com>, Dario Faggioli <dfaggioli@suse.com>, Juergen Gross
	<jgross@suse.com>, George Dunlap <gwd@xenproject.org>
Subject: [PATCH v4 09/24] xen/domctl: wrap vcpu_affinity_domctl() with CONFIG_MGMT_HYPERCALLS
Date: Fri, 21 Nov 2025 18:57:46 +0800
Message-ID: <20251121105801.1251262-10-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: SA2PEPF000015C9:EE_|SJ0PR12MB6990:EE_
X-MS-Office365-Filtering-Correlation-Id: 2f3fbe06-c867-409a-410a-08de28ecf611
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?oOxYw/VkdIQeDfwrW3v/OP4NAbJyQ9bfO1Pj23dG/ul6HbbfH7MDzaMAKwM5?=
 =?us-ascii?Q?GwwyM4R7dY+t/VkFtBKAtKEbAofbaduoxscTnTpmmUT0uCL9LYi3n/cu7ZfZ?=
 =?us-ascii?Q?2FoxBLEW6S+NHsbFiJg2ePfSwABK1banYrFJs2Cn4zCYtLCm4dOh4oZRpXNn?=
 =?us-ascii?Q?xGqMOjSrD3tU2oV2Awn8reOh+/AfAn1MDbs6KoqHER/CRg5nl7zoHRgGOHmr?=
 =?us-ascii?Q?g300TgNcPpAZzr27MzgcecUoLcbXDkCepBxKyBNHMuOBlUnQWt0JKpNOnbar?=
 =?us-ascii?Q?83FMBMdo6K7eskUT02gaK/2wQvaHhxepVdduoudrezryVM7RDciIi6i2DAjK?=
 =?us-ascii?Q?RKMVp4HOwFZgkxr0qJGZOXJS9DvMCbBCLMFJ4sbAignuQuM0NK2PM7mJf3lY?=
 =?us-ascii?Q?y7S5JH/RpQJXF8/V4bmjZqwPxIg6xoDUtINS8MljIWNW8VBfb8zviSgZHpJk?=
 =?us-ascii?Q?mxf1yuJnUIbO0Nx1BJiquxKUh/w3InbQuUSchog8aTxQqASImf56Bz2TqahE?=
 =?us-ascii?Q?mAU7mJuAzdjMOskLXSVJWQAq3BZpFQHl2kpbO7H8DTSP+j/oO/3i/WH3X6A7?=
 =?us-ascii?Q?z571p7UiABhRhuSJWqXfae+fJfVXFq0ZHIeUNl6nYYqOgsfdO43WC6HJwnp1?=
 =?us-ascii?Q?MmQi6nZ8imO/Edl2NhFE/gQDxX/QH9HXKjiKtmrGcjnKwice31zB2tZw3xLj?=
 =?us-ascii?Q?NCFv6l/VDBLD2b7J4YM4iTajcnRngX5CSyb/Z41pcYWqjUxBo7n/EpARmljd?=
 =?us-ascii?Q?4mlDZoTD7nf0LFu0yyGLhDwqE+DzQ6bWLseT4FBaOy1T4gno39TdTLIxkGn7?=
 =?us-ascii?Q?2DFsXWxBxWhzmME5KknJUOvbBNcR7BMTjauVX5Oe8d+P5u3wcADgg4UDg5CQ?=
 =?us-ascii?Q?lmo50JAgOQxJmra0lmibFxQrYbdoWtbJAy88MJ5/YPsM+mTnkTxrYVL1ElvH?=
 =?us-ascii?Q?zdroxmwpftN+OBJKDzcFzJ51i83cBgA/bKeD/SiPuDnttzIhaOUV5K/I6DrU?=
 =?us-ascii?Q?j422eGtGYtaEExbJsxzE6mViwrPNMGeBIYP1dp3X5rcdgtcCli+1Uce6DUfY?=
 =?us-ascii?Q?S49VGtGEAekFWGEAl820izFyuuv19WFfrH51vO/s/jv6u8uRX8AVi6vY4COx?=
 =?us-ascii?Q?xNxJhHTmKwgcaveQfuOB+9kdVGZYDTV2p3uJ8PjhdJp3o+gJOs9ex+hlQ3jj?=
 =?us-ascii?Q?VjRdQL2c9oIVPCfqDc8jdZmhAChtrw53wbcYvFhgCWgp7UxaZMFibd2JeZko?=
 =?us-ascii?Q?W2WiIe6wFat5M6UubrddrQMYzWYzOkO4Ag/ZMNKCqX1395vwqf1y3WLPP1R2?=
 =?us-ascii?Q?jaOmQyutEuYkO3h9UcG9Tj9t0pmKtcxHvnghzmpKjWRu3NrV7ZK8KjYda3cY?=
 =?us-ascii?Q?tgZb/yNMbfB8dlgWxCz8LsBucOATLdrCPHSNSbCrXcJ0Uq7v7IRn5ptpFJB0?=
 =?us-ascii?Q?KxuFslSWr72z77h3fi8MvCD9k/NsBU6gLfRScmSEB2IdjFZRz/ivjRCpBWdd?=
 =?us-ascii?Q?X8oDXTdKfx5c7Wrr7QajHtYV23bYdaUGEiPEde+iUaV1Qmc2nJ3lBMf2UGkn?=
 =?us-ascii?Q?dnm2hqAli1T1Wcj6YSs=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)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:58:53.8224
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2f3fbe06-c867-409a-410a-08de28ecf611
X-MS-Exchange-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:
	SA2PEPF000015C9.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6990

Function vcpu_affinity_domctl() is responsible for
XEN_DOMCTL_{getvcpuaffinity,setvcpuaffinity} domctl-op, and shall be
wrapped with CONFIG_MGMT_HYPERCALLS. Otherwise it will become unreachable
codes when MGMT_HYPERCALLS=n, and hence violating Misra rule 2.1.
Tracking its calling chain, vcpuaffinity_params_invalid() also needs
wrapping too

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
- wrap XEN_DOMCTL_{getvcpuaffinity,setvcpuaffinity}-case transiently
---
v2 -> v3:
- adapt to changes of "remove vcpu_set_soft_affinity()"
- address "violating Misra rule 2.1" in commit message
- remove transient wrapping around XEN_DOMCTL_{getvcpuaffinity,setvcpuaffinity}-case
---
v3 -> v4
- wrap vcpuaffinity_params_invalid()
---
 xen/common/sched/core.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 88150432c3..83e34e7c05 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -1678,6 +1678,7 @@ int vcpu_temporary_affinity(struct vcpu *v, unsigned int cpu, uint8_t reason)
     return ret;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static inline
 int vcpuaffinity_params_invalid(const struct xen_domctl_vcpuaffinity *vcpuaff)
 {
@@ -1798,6 +1799,7 @@ int vcpu_affinity_domctl(struct domain *d, uint32_t cmd,
 
     return ret;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 bool alloc_affinity_masks(struct affinity_masks *affinity)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 11:01:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 11:01:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168745.1494794 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtm-0002YW-8w; Fri, 21 Nov 2025 11:01:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168745.1494794; Fri, 21 Nov 2025 11:01:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMOtm-0002Xs-25; Fri, 21 Nov 2025 11:01:54 +0000
Received: by outflank-mailman (input) for mailman id 1168745;
 Fri, 21 Nov 2025 11:01:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1uM0=55=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vMOrG-0008Dv-NV
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 10:59: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 1e989f91-c6c9-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 11:59:16 +0100 (CET)
Received: from CH2PR05CA0064.namprd05.prod.outlook.com (2603:10b6:610:38::41)
 by IA1PR12MB7733.namprd12.prod.outlook.com (2603:10b6:208:423::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov
 2025 10:59:08 +0000
Received: from CH3PEPF00000013.namprd21.prod.outlook.com
 (2603:10b6:610:38:cafe::a6) by CH2PR05CA0064.outlook.office365.com
 (2603:10b6:610:38::41) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.5 via Frontend Transport; Fri,
 21 Nov 2025 10:59:08 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF00000013.mail.protection.outlook.com (10.167.244.118) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.1 via Frontend Transport; Fri, 21 Nov 2025 10:59:08 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Fri, 21 Nov 2025 02:59:04 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1e989f91-c6c9-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=f3WhPly/4tgtOFxUGktLr4fUWRYTCk/Zrwii70ataigmmnmqIpqehT8infA+kUPFWahtJ2hn70lQo8aUAuvLyamjTS0yfLk/e2pDnFCb2PXmpjvClX7rooO3fJsO+q4d2tW4vC7XQyLQpAK7aQ7XxlV2DVTkR46a7QBJ4nd+bI56blWsBQdBqwtB2WP+TkiHorKo3ImElw67wbPOm+xHOZo7TYBkuXwm4S6B7nNWcZ6b7EW+fZSRRobOvmRQQIMlPW3fkD53vHLHzao2GW8E6D72JoctSnXma36doBsDUhIljMQevKljLIzr977J0TKniaa9liI8BFG0n9zG36En4A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KAc5h4CIkrhPqQT7QktYcMBymNFGJFkm0bXneImigWw=;
 b=iT/cNiDuFJ1ZmwR3x+XAm6OJOAzZBm6u7A17c0O4sYPyPC1jacLRmXvRL7XdMusDvjo6dYJEgPVNThHu09tsoIob8+tzsu9WgHglv+sF1jinpvai+5u+gGcZvDNAKL2ZuUq0u+c90J6tgktVLof5vWCG/Xv+FmWzV4ayS6nBUHk76e/8Ulrxb/rF5pxh65emOk7E0EjXnuTtkpyF0+V6V0oaOVGxP3jvmFsWZYUy7yY1lVt+9d6PFhnFYGrW0IwEaJBDmBAUx/OCLrV6Ay3UOlpJDkkMymNCa/3589bLFHw8D+uwZXQYCiAWxyNWjMSfuH4N20KjL9wA/xEehDiKzw==
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=KAc5h4CIkrhPqQT7QktYcMBymNFGJFkm0bXneImigWw=;
 b=OO6js5ezkLRT/5WLUScSG6HUf/vdpfZCOwlCxFjQxjsEXNCKnHOI8/C2Ej5mOQ5fj2SB2spIJU3dBHFmu/e1HruZNN89FzA4SMonqAWpO5TQ21d0ZFTbeLvibB8Wrsm/YKDeYX8O0tSsqxKAwXerG2vfospVDBa1WXxLsM/z+zM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <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>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>, "Daniel P.
 Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v4 14/24] xen/domctl: wrap pci-subset iommu-related domctl op with CONFIG_MGMT_HYPERCALLS
Date: Fri, 21 Nov 2025 18:57:51 +0800
Message-ID: <20251121105801.1251262-15-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: 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: CH3PEPF00000013:EE_|IA1PR12MB7733:EE_
X-MS-Office365-Filtering-Correlation-Id: 243b221e-ea13-4f42-f8f2-08de28ecfecf
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?94gn5mwcD3ZwtHmccBqLdAvHsKoMA+JvXr4AqrZXx9+2EQCbiscpTw6L8jeU?=
 =?us-ascii?Q?bC+FEXTNFLxbCPnniYFQRTu3FENu9jNIAlqVjjRiQ3r8fcNR2tVoXWo9Il/I?=
 =?us-ascii?Q?JgVxZvT7p9xqOtzEdZgpo5BGjEH3FQlVlsT/9PErriIm4p7VwUKlbazz1Otb?=
 =?us-ascii?Q?GoYm6AgRHxf8goSTkoODWqBg3yzOyH6ADVgiB8Qt0Y1IbH3rRHjrlaTycHk8?=
 =?us-ascii?Q?FHhZhkLjF2qmedyG8n+8ylRP9NTJZgL7RumNWrC6W1m5UsGRw3za3dYM4L4k?=
 =?us-ascii?Q?GA+vhgE8o8kn/MEr16lrPZSySlxZNTHhlX089PBdZmxUWK0KAOHkqEs/3l/l?=
 =?us-ascii?Q?bjSxfj0zFGzwz6Yy661nc1HMeQNkFERqVd3QxZsaK3sVcA3SyOIGjiWJlq6G?=
 =?us-ascii?Q?la2jhv6lZgoW0WMAjhMwucJuGYNsqWp+l2ZpZTu3dUw5d1vaCxuqcO617Lg0?=
 =?us-ascii?Q?koBwAoA6K1h/LyC2DpIVFxmj4nQGQctAeqpFInZ22kfC6vTybdROzOSIXqjY?=
 =?us-ascii?Q?P4B8h1hZt5ZbUB+yf0yniSiW+JZeuWGktAQ25YyX4y0sFpmahEFl18OxyyNI?=
 =?us-ascii?Q?g9E3JVCP8UsPkl9Ulq2pUHOEjckdYXfWwCMZcxi0RrdbkFm69qQIwAxB98wV?=
 =?us-ascii?Q?Xc4JO8FG4wi/n/LU4EQKG+1uQyKtd2U5yiWbbLIKoBXfTiZSDDxwXYXJFIu7?=
 =?us-ascii?Q?gtJJZJivvf/n5E197uRoEgq9tUcc5NE5cpimpVMc7pqKTCAklQbUUwEmAeMP?=
 =?us-ascii?Q?zJcOd3iCloWvm0U8PBITVOpLlG1qPM14WdL5NrbaFdWFofw7UJxQqE10kIMU?=
 =?us-ascii?Q?29C+nFyrv76LubDY0domcrEfHOdpIuSilcg4R2IdHoKaVCcPvea4uGzQNZ4y?=
 =?us-ascii?Q?Voje91wJ+FQ6TXPKUAWTSsF1UGFA5Gpu3WKKtyMypoa5wX23jSZ6IrNEliv+?=
 =?us-ascii?Q?GWy2ylHt1hyJ+2gxpOX5JbzX1KcsoPxsurWTlsv3J4yEJ8Icp/tPX16OQ5FI?=
 =?us-ascii?Q?mBbGerx8XDu+vb6rVE9IM6R/RpjJ3i64nmgmJM4vrGiS1zB0ihmNTuraYuan?=
 =?us-ascii?Q?W+5M4j0i4vWuss5p+BSDF/N9nVqqhUCKDNf85LzZKovzSyCiE8SrDovaAtdX?=
 =?us-ascii?Q?Crs8Nh+iIxbr3zz/pVK9BENixR/EFscCUqSxzNuDU5NQ/SWm0z9kJvVDtBha?=
 =?us-ascii?Q?KeYDSOX57n5zfVatXH9LUrZGHoq55VEL0yR0XuCdGshHHUigU8D1cELk08yq?=
 =?us-ascii?Q?7vPL5azLo8tQnmbTDCTmqiX4F7mx5d0ZZpzGK/f6wOd6lONPJjiEy88pUYCa?=
 =?us-ascii?Q?a4emY4yJHZNOn3IjrtBLMGHYk5eiYr1szvM36JhhNUqB7rsmZxDuhvkG0W3l?=
 =?us-ascii?Q?FPWWrqaIfDQp2Raty2QrZBkRPlv/mEk6mqFQRHKwtNvleLcCmXixcOjdGUaf?=
 =?us-ascii?Q?t9LdLee+uwzrvYDoO8ObWJqTlxW5IGbb4wWrIBiMRyHPLTGFr074C31BGZw6?=
 =?us-ascii?Q?SqCUyQ7f9EqTrjmP9hsroNClBGYjNBysTH2gDCs0XIMoJ9XxhjReBAW6Gben?=
 =?us-ascii?Q?4gB4MfR42xjtzOavpo8=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)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 10:59:08.5076
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 243b221e-ea13-4f42-f8f2-08de28ecfecf
X-MS-Exchange-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:
	CH3PEPF00000013.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7733

Function iommu_do_pci_domctl() is the main entry for pci-subset
iommu-related 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=n,
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_group}-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 = 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 = dom_iommu(d);
@@ -698,13 +707,6 @@ static 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 = PCI_BDF(bus, devfn);
-
-    return (bdf < ivrs_bdf_entries) ? get_dma_requestor_id(seg, bdf) : bdf;
-}
-
 #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 = {
     .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
     .enable_x2apic = iov_enable_xt,
     .update_ire_from_apic = amd_iommu_ioapic_update_ire,
     .update_ire_from_msi = amd_iommu_msi_msg_update_ire,
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 422e45f5a6..8ab229bfe7 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -878,6 +878,7 @@ int pci_remove_device(u16 seg, u8 bus, u8 devfn)
     return ret;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 /* Caller should hold the pcidevs_lock */
 static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
                            uint8_t devfn)
@@ -946,7 +947,6 @@ static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
     return ret;
 }
 
-#ifdef CONFIG_MGMT_HYPERCALLS
 int pci_release_devices(struct domain *d)
 {
     int combined_ret;
@@ -1484,6 +1484,7 @@ static int iommu_remove_device(struct pci_dev *pdev)
     return iommu_call(hd->platform_ops, remove_device, devfn, pci_to_dev(pdev));
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int device_assigned(u16 seg, u8 bus, u8 devfn)
 {
     struct pci_dev *pdev;
@@ -1648,30 +1649,6 @@ static int iommu_get_device_group(
     return i;
 }
 
-void iommu_dev_iotlb_flush_timeout(struct domain *d, struct pci_dev *pdev)
-{
-    pcidevs_lock();
-
-    disable_ats_device(pdev);
-
-    ASSERT(pdev->domain);
-    if ( d != pdev->domain )
-    {
-        pcidevs_unlock();
-        return;
-    }
-
-    pdev->broken = true;
-
-    if ( !d->is_shutting_down && printk_ratelimit() )
-        printk(XENLOG_ERR "dom%d: ATS device %pp flush failed\n",
-               d->domain_id, &pdev->sbdf);
-    if ( !is_hardware_domain(d) )
-        domain_crash(d);
-
-    pcidevs_unlock();
-}
-
 int iommu_do_pci_domctl(
     struct xen_domctl *domctl, struct domain *d,
     XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
@@ -1805,6 +1782,31 @@ int iommu_do_pci_domctl(
 
     return ret;
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
+
+void iommu_dev_iotlb_flush_timeout(struct domain *d, struct pci_dev *pdev)
+{
+    pcidevs_lock();
+
+    disable_ats_device(pdev);
+
+    ASSERT(pdev->domain);
+    if ( d != pdev->domain )
+    {
+        pcidevs_unlock();
+        return;
+    }
+
+    pdev->broken = true;
+
+    if ( !d->is_shutting_down && printk_ratelimit() )
+        printk(XENLOG_ERR "dom%d: ATS device %pp flush failed\n",
+               d->domain_id, &pdev->sbdf);
+    if ( !is_hardware_domain(d) )
+        domain_crash(d);
+
+    pcidevs_unlock();
+}
 
 struct segment_iter {
     int (*handler)(struct pci_dev *pdev, void *arg);
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index 90f36ac22b..ad2e657bca 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -2742,6 +2742,7 @@ static int __init cf_check vtd_setup(void)
     return ret;
 }
 
+#ifdef CONFIG_MGMT_HYPERCALLS
 static int cf_check reassign_device_ownership(
     struct domain *source,
     struct domain *target,
@@ -2937,6 +2938,7 @@ static int cf_check intel_iommu_group_id(u16 seg, u8 bus, u8 devfn)
 
     return PCI_BDF(bus, devfn);
 }
+#endif /* CONFIG_MGMT_HYPERCALLS */
 
 static int __must_check cf_check vtd_suspend(void)
 {
@@ -3245,14 +3247,16 @@ static const struct iommu_ops __initconst_cf_clobber vtd_ops = {
     .add_device = intel_iommu_add_device,
     .enable_device = intel_iommu_enable_device,
     .remove_device = intel_iommu_remove_device,
-    .assign_device  = intel_iommu_assign_device,
     .teardown = iommu_domain_teardown,
     .clear_root_pgtable = iommu_clear_root_pgtable,
     .map_page = intel_iommu_map_page,
     .unmap_page = intel_iommu_unmap_page,
     .lookup_page = intel_iommu_lookup_page,
+#ifdef CONFIG_MGMT_HYPERCALLS
+    .assign_device  = intel_iommu_assign_device,
     .reassign_device = reassign_device_ownership,
     .get_device_group_id = intel_iommu_group_id,
+#endif
     .enable_x2apic = intel_iommu_enable_eim,
     .disable_x2apic = intel_iommu_disable_eim,
     .update_ire_from_apic = io_apic_write_remap_rte,
diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index a598d74f1f..83972d36b7 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -407,7 +407,8 @@ static XSM_INLINE int cf_check xsm_get_vnumainfo(
     return xsm_default_action(action, current->domain, d);
 }
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_MGMT_HYPERCALLS)
+#ifdef CONFIG_HAS_PCI
 static XSM_INLINE int cf_check xsm_get_device_group(
     XSM_DEFAULT_ARG uint32_t machine_bdf)
 {
@@ -429,7 +430,8 @@ static XSM_INLINE int cf_check xsm_deassign_device(
     return xsm_default_action(action, current->domain, d);
 }
 
-#endif /* HAS_PASSTHROUGH && HAS_PCI */
+#endif /* CONFIG_HAS_PCI */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
 static XSM_INLINE int cf_check xsm_assign_dtdevice(
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 154a4b8a92..f2e92645ef 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -123,11 +123,13 @@ struct xsm_ops {
     int (*pci_config_permission)(struct domain *d, uint32_t machine_bdf,
                                  uint16_t start, uint16_t end, uint8_t access);
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_MGMT_HYPERCALLS)
+#ifdef CONFIG_HAS_PCI
     int (*get_device_group)(uint32_t machine_bdf);
     int (*assign_device)(struct domain *d, uint32_t machine_bdf);
     int (*deassign_device)(struct domain *d, uint32_t machine_bdf);
-#endif
+#endif /* CONFIG_HAS_PCI */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
     int (*assign_dtdevice)(struct domain *d, const char *dtpath);
@@ -524,7 +526,8 @@ static inline int xsm_pci_config_permission(
     return alternative_call(xsm_ops.pci_config_permission, d, machine_bdf, start, end, access);
 }
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_MGMT_HYPERCALLS)
+#ifdef CONFIG_HAS_PCI
 static inline int xsm_get_device_group(xsm_default_t def, uint32_t machine_bdf)
 {
     return alternative_call(xsm_ops.get_device_group, machine_bdf);
@@ -541,7 +544,8 @@ static inline int xsm_deassign_device(
 {
     return alternative_call(xsm_ops.deassign_device, d, machine_bdf);
 }
-#endif /* HAS_PASSTHROUGH && HAS_PCI) */
+#endif /* CONFIG_HAS_PCI */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
 static inline int xsm_assign_dtdevice(
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 9774bb3bdb..0026a0963b 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 = {
     .pci_config_permission         = xsm_pci_config_permission,
     .get_vnumainfo                 = xsm_get_vnumainfo,
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_MGMT_HYPERCALLS)
+#ifdef CONFIG_HAS_PCI
     .get_device_group              = xsm_get_device_group,
     .assign_device                 = xsm_assign_device,
     .deassign_device               = xsm_deassign_device,
-#endif
+#endif /* CONFIG_HAS_PCI */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
     .assign_dtdevice               = xsm_assign_dtdevice,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 9b63c516e6..805a9a528e 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1388,7 +1388,8 @@ static int cf_check flask_mem_sharing(struct domain *d)
 }
 #endif
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_MGMT_HYPERCALLS)
+#ifdef CONFIG_HAS_PCI
 static int cf_check flask_get_device_group(uint32_t machine_bdf)
 {
     uint32_t rsid;
@@ -1459,7 +1460,8 @@ static int cf_check flask_deassign_device(
 
     return avc_current_has_perm(rsid, SECCLASS_RESOURCE, RESOURCE__REMOVE_DEVICE, NULL);
 }
-#endif /* HAS_PASSTHROUGH && HAS_PCI */
+#endif /* CONFIG_HAS_PCI */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
 static int flask_test_assign_dtdevice(const char *dtpath)
@@ -1987,11 +1989,13 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .remove_from_physmap = flask_remove_from_physmap,
     .map_gmfn_foreign = flask_map_gmfn_foreign,
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_MGMT_HYPERCALLS)
+#ifdef CONFIG_HAS_PCI
     .get_device_group = flask_get_device_group,
     .assign_device = flask_assign_device,
     .deassign_device = flask_deassign_device,
-#endif
+#endif /* CONFIG_HAS_PCI */
+#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
 
 #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
     .assign_dtdevice = flask_assign_dtdevice,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 11:28:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 11:28:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168941.1494807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMPJY-0003uw-Hn; Fri, 21 Nov 2025 11:28:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168941.1494807; Fri, 21 Nov 2025 11:28: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 1vMPJY-0003up-F7; Fri, 21 Nov 2025 11:28:32 +0000
Received: by outflank-mailman (input) for mailman id 1168941;
 Fri, 21 Nov 2025 11:28: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=8OZ7=55=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vMPJY-0003uj-0r
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 11:28:32 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 32436bac-c6cd-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 12:28:26 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b7277324204so323720666b.0
 for <xen-devel@lists.xenproject.org>; Fri, 21 Nov 2025 03:28: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
 a640c23a62f3a-b7654cdd5bfsm446433566b.9.2025.11.21.03.28.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 21 Nov 2025 03:28: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: 32436bac-c6cd-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763724506; x=1764329306; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Yv0Zi5VDAkxyY9bqOBHFYBj7GdsVi+U+4pjwljfGEWU=;
        b=WtWkjCA6XcRyxfeuF+WR/xw/t5sOG6Cqipx6i/E2VZzm6jJcza4dIkWTuOkBFGWNCL
         SyjI80c2dsxRnWEOAxdiIpCnf14h3j4bbaToYCsWnBfg7+GCu3MR/CTCNYM4tgKWQxiR
         ru+L2NIF+XBwuCrtcpbemP/JECTxPyfl9qyW7tw/I9iRqaKV5kKAO8ULXORKbbjd9tPY
         FOeAzjwuXonk6R68DZHuxsmkABabalaFFErcq9OSR6rbDfyGGd7y6eHRsNM39kH/aaFb
         eORAtgBRmLlFOAwZamUKV7r4r66Sqj4na0+ry8DJQa3LeJR9D8L+pLlDBtwx9rnS8V10
         WB/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763724506; x=1764329306;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Yv0Zi5VDAkxyY9bqOBHFYBj7GdsVi+U+4pjwljfGEWU=;
        b=v9PFNUnWMpeeOE+EnvjJlVmRoomXyArrjlmcx29wl+TxHOPBjr/45n48wYKypZidi7
         J3hrH2xhVtbw23dF5eRy/uVBS8STo/ESTUsXTMQ12Fc2Yc9c5d0r+Pg06XDnibQ+ntRH
         84GeKBEoqEexrSgLkH7+8rqfS4C4XffRLHVVRChH6yGgL0MqXDzQBHcDCFNY8ogzkZ7Z
         z+3teSZKX1pg5kooMoncOtJgLoEN3J8t0mSDUmQgMDyfMKkAQYhAvepgg7ZmVZwrP2gS
         QI1DOuHIAVDxJrcfa4gpZx+NRRnrfTt5P4dulcsmUVJWycpgcJOLp3R00LB4hZe6tfDp
         6Qtg==
X-Forwarded-Encrypted: i=1; AJvYcCXSzwkVYTB9Blf15NCEFMh0Pb/V/lXluIpx/p+2oBf8szDiSg5OiJE5VfHkqrp0ktE7JhonBqGbWGc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzrUiU7dd1FMqVsSVVfhFpf8D3bcU1CBmnPaEklfTgIvCE2Rwb0
	3ifMNOE06iJOxPdfi4v+PyG7BzXJQu82zsVG+GAjNLpqaa6G9J7Ln+aLQXDJ6iIHjQ==
X-Gm-Gg: ASbGncsEYytRD+nKRaHk37EbPkkd8oDRppu5g6AMNYV1NfiHsJmhcccyPywpoNZGZ+5
	H0OkEzEXcp1U0aBAq8psyUGPBJ7yluiheer/0hEOm9AWFC66gy1D+2H7s3AAuvp0ZBl4G+eXBGv
	FKD74ywuFRekH3MFFxE8lq26R3v5s4BAwzeB0cDDXodCF+CccWoHOGWqxbIQkGC2RPHN8uvffDt
	eSKw1jKcehvRxOPl1nuMCrTSd8/m+cOl9pvT8PgZMb49ARh2mnBG8GaLxyBk/aO/KITmyZHzacw
	3ItJdoY90dmUgkVo6I90NThK9F7k8RjNbOuKsEnuzeXr8qN/pykfqZoUBLSmY78vxPMcMGnv1V5
	PQwMaAwlnLr+ro3du8CjHDgIOToeMy8aRvKApynzoktlsPSwmIHgWhdvoIEckXfX8T5ubFx2MuH
	JlNGyTbrzzqqNglJZbuPJXblhsrANNY4iYf5uztNmO1XqwiuNv2cnlp906lLq3SOquSean/WM5b
	x8=
X-Google-Smtp-Source: AGHT+IHQpQ8fvv02sw8njUq/w+Gu1igspsL9LtkVxefgDnhUfgttTtgPvw0qBtXKuHPfsjapeURYAA==
X-Received: by 2002:a17:907:d28:b0:b73:5131:c45b with SMTP id a640c23a62f3a-b767156938dmr216381166b.22.1763724505708;
        Fri, 21 Nov 2025 03:28:25 -0800 (PST)
Message-ID: <05c8001a-d581-46e9-b261-a1ffbb03fd4e@suse.com>
Date: Fri, 21 Nov 2025 12:28:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] common/libfdt: optimize usage
To: Grygorii Strashko <grygorii_strashko@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>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251114180130.346755-1-grygorii_strashko@epam.com>
 <0557029f-5946-4ee1-a622-842e2698a6c8@suse.com>
 <991e0324-98af-4264-a527-703c72439780@suse.com>
 <aec6b5a2-4e53-411c-be2d-9bdb27d883aa@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: <aec6b5a2-4e53-411c-be2d-9bdb27d883aa@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2025 11:59, Grygorii Strashko wrote:
> 
> 
> On 17.11.25 11:34, Jan Beulich wrote:
>> On 17.11.2025 10:31, Jan Beulich wrote:
>>> On 14.11.2025 19:01, Grygorii Strashko wrote:
>>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>
>>>> Now all libfdt features are built-it unconditionally, but...
>>>>
>>>> X86: The libfdt is used on x86 only to parse Hyperlaunch/dom0less Xen
>>>> nodes, so full libfdt is not needed in this case and minimal, RO
>>>> configuration can be used.
>>>>
>>>> ARM - situation is more complicated:
>>>> 1) ARM reads Host DT (fdt.c RO)
>>>> 2) ARM reads passthrough DT (RO)
>>>> 3) ARM generates dom0/hwdom DT from Host DT (there is a mix of WIP and SW APIs)
>>>> 4) ARM generates domU DT (there is a mix of WIP and SW APIs)
>>>> 4) With EFI enabled - ARM needs RW API and fdt_empty_tree
>>>> 5) With CONFIG_OVERLAY_DTB - ARM needs RW and fdt_overlay API
>>>
>>> This goes too far, imo.
>>
>> The more that, unless OVERLAY_DTB=y, all code and data moves to .init.*. Is
>> coverage in in .init.* really of as much concern as runtime code/data?
> 
> It is less priority, but still is. Any way it is unnecessary build units (build time) and
> increased binary size.
> 
> 
> Actually, I see interesting behavior - when build with CONFIG_CC_SPLIT_SECTIONS=y (CONFIG_LIVEPATCH=y)
> the libfdt code is not moved in ".init"
> 
> 0xa000027aa10 T fdt_ro_probe_
> 
> 0xa00002c0000 T __init_begin

Hmm, that's a bug, resulting from libfdt/ not using the usual machinery to do the
conversion.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 11:43:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 11:43:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168953.1494816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMPXR-0000Vi-Mw; Fri, 21 Nov 2025 11:42:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168953.1494816; Fri, 21 Nov 2025 11:42: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 1vMPXR-0000Vb-KM; Fri, 21 Nov 2025 11:42:53 +0000
Received: by outflank-mailman (input) for mailman id 1168953;
 Fri, 21 Nov 2025 11:42: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=8OZ7=55=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vMPXQ-0000UA-K7
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 11:42:52 +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 354eebb8-c6cf-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 12:42:50 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b7291af7190so281401366b.3
 for <xen-devel@lists.xenproject.org>; Fri, 21 Nov 2025 03:42: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
 a640c23a62f3a-b76550191c8sm426985766b.54.2025.11.21.03.42.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 21 Nov 2025 03:42: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: 354eebb8-c6cf-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763725370; x=1764330170; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KdXXoWseEDig4ZDDHv3JHnlRXdfmc7Rr3lXYqSG+944=;
        b=Kotfp8BQDdoJPieNd7jz/oTqx4UKcLrbi4nbdzMRXQ/G5pb3nkB5VEKtxi7LI8uFyQ
         gAZZiEyjr1NmtSVwBdit/HzWUxkZk4AC0Fa8epIR//ZCCP00f3Eo1OTCAotYFjVCPaP7
         ejdudY8wAQ7jVQU/erm5krD83Bahby1jxZRCfZ7a3nYao0GrG00B3LknJjgo5bAwer9l
         o7YRCZ1QOZo1UK1DwPefcOE7FjnZ9K5+mtIxog+sCrcq7o3JRSQU75wTfI4s4Dj2R3Ui
         8Si5t/s6Vx9zMpFN+fEZFalbu6LQGmlxKo2I94UOorGdX1OKMVith1dl1ptpxXc78F3Z
         zCFA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763725370; x=1764330170;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KdXXoWseEDig4ZDDHv3JHnlRXdfmc7Rr3lXYqSG+944=;
        b=ojAP30gg/cbM90cG9Hm7MY33wFp1TKxK19B1OS+nv8lkA+09i84b1RP3eh0FMwqwQD
         mgLrloG93q5NJEu4urqXPdV1q+1gkDPYiJGEabgLC5sOOgnHgdSGnhlQOVKRkUlLc6wp
         I1qmmsQ1DvAQuYr+GM8uv125Trd5Xichw+tqvg6pIqF48J1c3QgowAvH5Lx6ucgLjX/p
         SJZO0Fj9EBZoQoHiTBlgXOKzpDbloSurf0dbnUh5TRXytYYaKvvuTRnfNejBOIpfd5Eg
         R96u+zciaX4LmkbO21bvXyJ1fffq919v+aus8LD3HxhapBfjGGHTE9r8BORqVIje9ztr
         HKXg==
X-Forwarded-Encrypted: i=1; AJvYcCUL6244uVLTMLTWZKmFPdoRo5N02Zzu4+GfJhC1hDJPp7SRVtFyLPsNz8oZsxiM1WaDeN4Jqwbj0kE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz5cQ/2AfgAf6j7ieVu4+1CXtJGNcxADTm8CqVhT8x56+MF/Awe
	CTiZHZCGsDidKlJenIf3kFP9Z7q6HM/ABak8ZMp+SGD6j/CwLLNgIiy9NOiC6csfgw==
X-Gm-Gg: ASbGncuKodhhO0B5qRAoGukrhqMTiRg00EwgU8O6VrOg1gTNHZMhJjeFQDxEaF+JGTm
	7P37Wj635EWygNPN1NE61JzJsyIhx1LwODT66kBL7s/4pNkCD0567ckg94FqimZg3zCcnvnCGbV
	L/mPFYszmQSRTSje6Q4cCWkHUB1VgSb6ILu2ref6w8HNcSpZ42hmIGbcoCn49cEV2qRW+S+hRcJ
	aggKApIrxA5TzKrcrEFcsIqsDb66t72JenXH6UK17knQIxZiNOk052ouPo2+d74g5mfcr6Q5H0A
	16G3gfEY2gcggSN+ieFTs7oV0SkoxDriRAz0kelXTqzyC+o7/JBW1CSPEh2O07po0WuSuafuolO
	BrzzytflYe/wqf5NUmTu2zIzcdkEccZb/Dle5wlRnohtaaExraURKoWQndpJPKQ6x/9cIIa2bYD
	lUbqaFFyoDl5FAVgI4noudNmzi90Kno+7zhgRvFgWbGoyen5ZBw0w4lr/uXlkiN6F5jeB2BZHKk
	xQ=
X-Google-Smtp-Source: AGHT+IGpgSjussI3Iz/RwAKhE/DE602cMNVX4TttGF16NR+YSGqZLbeAQHuW06gWLnlLeAu/lFI/AQ==
X-Received: by 2002:a17:906:fd85:b0:b73:80de:e6b2 with SMTP id a640c23a62f3a-b76716955bfmr217385766b.31.1763725360268;
        Fri, 21 Nov 2025 03:42:40 -0800 (PST)
Message-ID: <173c8387-9f4d-4c6a-a930-d11c25b42f91@suse.com>
Date: Fri, 21 Nov 2025 12:42:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/24] xen/xsm: remove redundant xsm_iomem_mapping()
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@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>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-2-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251121105801.1251262-2-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2025 11:57, Penny Zheng wrote:
> Function xsm_iomem_mapping() seems redundant, and in flask policy, it just
> directly calls xsm_iomem_permission().
> Remove it and use xsm_iomem_permission() instead, with the benefit of a
> cf_check disappearing too.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>

Any reason for this Cc?

> ---
> v2 -> v3:
> - new commit

So in v4 you dropped the Suggested-by: but kept the code as is. I would have
expected it the other way around, in the absence of Daniel having voiced any
opinion.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 11:49:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 11:49:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168967.1494826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMPdc-0001qW-98; Fri, 21 Nov 2025 11:49:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168967.1494826; Fri, 21 Nov 2025 11: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 1vMPdc-0001qP-6L; Fri, 21 Nov 2025 11:49:16 +0000
Received: by outflank-mailman (input) for mailman id 1168967;
 Fri, 21 Nov 2025 11:49:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=8OZ7=55=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vMPdb-0001qJ-CM
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 11:49:15 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1a019832-c6d0-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 12:49:14 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-64074f01a6eso3400849a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 21 Nov 2025 03:49: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
 4fb4d7f45d1cf-64536443337sm4336025a12.23.2025.11.21.03.49.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 21 Nov 2025 03:49: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: 1a019832-c6d0-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763725753; x=1764330553; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9/IcYANTiMhNXitch/PVW3L5hiFdwMMfHBLpa1i2++s=;
        b=LjqeNJPSea0XML0mouRl3smodRTIXqVq+OlXliyP4R4bSgg1d4fVpzf6qykTFEqRBC
         pbmTMt4Nq9v3Eel69v+KL/FgEQS6SDyu40f4XmPmmFsWRUDw0bZ8+MMyvpUJKpFsvqT7
         +6WUnqewO3Gh7pWeK2IoL0/Px9v5Ut4ajozclknCbOjcxcdAaqmPxiD+4IQmIZLlGnz3
         dp2lES+mnezs5w+22LpOkgko74SS8R3kOy7FA9P9sGgcHdgTBIjVqSGZsNIw0pFd2hGS
         Jo439xriv99lHGFl/i8fpx8B5jS3KjqUPS8G/0LpGPOd59ap6RmHl+001Ju7HIXwO87O
         B6Ug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763725753; x=1764330553;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9/IcYANTiMhNXitch/PVW3L5hiFdwMMfHBLpa1i2++s=;
        b=ioEJQwjv/0guyAXrwb2liq//HP0aofWZH64EShYexJumocT8MsDctWHv6LqjYJCAWJ
         AmLk9eSRCCDDDBoo34fRnGW7hTBFrmXPoEZWGdn+RBZVHKB01hm6CDG4POPToK79K3ET
         5GKgeM1b0PohcaiIUkiA4mg+tyNl47zq1NIWNdVrUbKGDybGtAwpT5ov5opc3EnIeZQu
         Q4uFFLVFK9HQ5R0ntB44TkrfbROGpEGRPgZuA2jaskDqTWrdT7LNHyWr1ZabS0+C1Qn0
         DAmCL4Mx6BVyWveCbF4glj63Ky9rK3haBrCJlzt1v/QlEfM+fSsVDJUqaw6NtLXxyvup
         7kIg==
X-Forwarded-Encrypted: i=1; AJvYcCW7RKlK8gXlT6ctLHw3gfUH/Nqt2qXLO9Y4Kchs/JJnfBZCwb1JtujbYBEacb0Jqannshd9rJOnlvc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxLvpyXmpZsyWxVD2fiF+o1888Zvhtm+vhr5gUMeJ5J+YTCUaGT
	oEEyzArxxdLPmgJ22wImIlR/gFu6clN9Bq9Qx3l2CDFm5vtpbkrxqk7x3IilIrdfAA==
X-Gm-Gg: ASbGnctPtomVvbWxBLmCv0k/9I7Dg7ww9LmsGIc/I/vhD4rfVGUw23O0gs2A2kWBCnR
	7DCF5aNk3MDPoX/2RiiNF3zIGcfoaQVGkCFxSCZrwQRly0GrkwnwkuDGfawV9lLhL4kpjIombVQ
	PNgVeQ18/kOmRxw6k/5fgzCQHUyTcNbeqKc3+Uf0a8I0qZMFKm2HcbOqxLTPaRPgb01pbXqrAxf
	cdguZzciq1Psqeupu0QNdTFcIhukkYjYIw6+JSnOGhBAzwAMdQMWJUBGqxNNnF8a8ZnsQLqqm1x
	AvxAInaoMUk2yJYSzeKQRk4ecvLlnwKiXw7KGpxkt4mQGrsrxkQkpHgOl1TDp8Kyi616cJh/y2L
	xnMg0UzSnivolT7KKc/sKc+cGGfVn9DU/Kx1aevALXoeofpFmRLICGx1Z81siOyKfjzWfUKr8v0
	ijg510/h2+yyFtsdubFITWiRAp4+++wgbBH/8i4NoRUnviPqcqhsQKmZUWBe/F5yG7nvLxT6ELO
	Vqq1VpaJNAMpw==
X-Google-Smtp-Source: AGHT+IHiC4Sq3TVdAim0q2RS6+8uJ8jzxYuJq74oMFQjCjmjWwOzqC9l4nNY6u4thoUrAblgw7owRA==
X-Received: by 2002:a05:6402:51d0:b0:643:804a:fb5e with SMTP id 4fb4d7f45d1cf-64555cd9f23mr1374179a12.21.1763725753273;
        Fri, 21 Nov 2025 03:49:13 -0800 (PST)
Message-ID: <aa11b978-a2ab-4a1e-b9c8-04198fe94a49@suse.com>
Date: Fri, 21 Nov 2025 12:49:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 04/24] xen/domctl: make MGMT_HYPERCALLS transiently
 def_bool
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@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: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-5-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251121105801.1251262-5-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2025 11:57, Penny Zheng wrote:
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -654,7 +654,7 @@ menu "Supported hypercall interfaces"
>  config MGMT_HYPERCALLS
>  	bool "Enable privileged hypercalls for system management"
>  	depends on !PV_SHIM_EXCLUSIVE
> -	default y
> +	def_bool y
>  	help
>  	  This option shall only be disabled on some dom0less systems, or
>  	  PV shim on x86, to reduce Xen footprint via managing unnessary

This is a no-op change, as "def_bool y" means nothing else than "bool" plus
"default y". As long as the prompt is there, people can turn it off manually.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 12:15:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 12:15:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168989.1494865 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2T-0001Uq-Av; Fri, 21 Nov 2025 12:14:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168989.1494865; Fri, 21 Nov 2025 12:14:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2T-0001TA-5n; Fri, 21 Nov 2025 12:14:57 +0000
Received: by outflank-mailman (input) for mailman id 1168989;
 Fri, 21 Nov 2025 12:14: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=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMQ2R-000110-S5
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 12:14:55 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id af432956-c6d3-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 13:14:53 +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-575-Dq2pCknkP6KXf0MRWBD_yw-1; Fri,
 21 Nov 2025 07:14:48 -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 4FD4B1800650; Fri, 21 Nov 2025 12:14:43 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.3])
 by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 19398180049F; Fri, 21 Nov 2025 12:14:41 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 835E221E6935; Fri, 21 Nov 2025 13:14:38 +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: af432956-c6d3-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763727292;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=fcIBzXudHPYvY6QmF4OmsaPzhsA+4LiQymdChLvcMTo=;
	b=MPCKXK/EwX7mp5pl3wknsjcxt7OND1+S1uspCeRZKFVyS1wvTa/CKgYvPQQyCtBP46x7Kz
	iycz3UYp/6eD/09dzH/pfWFAFbwtuNGjk4hAtKjXg0ZeVtUJdZaBE1k4TAKsjARX1NOEC7
	kcps7wO7VMbmPwUdjMtGV7t7vDFV+3w=
X-MC-Unique: Dq2pCknkP6KXf0MRWBD_yw-1
X-Mimecast-MFC-AGG-ID: Dq2pCknkP6KXf0MRWBD_yw_1763727284
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	zhenwei.pi@linux.dev,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH v2 01/15] error: Strip trailing '\n' from error string arguments (again)
Date: Fri, 21 Nov 2025 13:14:24 +0100
Message-ID: <20251121121438.1249498-2-armbru@redhat.com>
In-Reply-To: <20251121121438.1249498-1-armbru@redhat.com>
References: <20251121121438.1249498-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111

Tracked down with scripts/coccinelle/err-bad-newline.cocci.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 hw/audio/es1370.c | 2 +-
 ui/gtk.c          | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/audio/es1370.c b/hw/audio/es1370.c
index 9873ffadab..566f93f1ea 100644
--- a/hw/audio/es1370.c
+++ b/hw/audio/es1370.c
@@ -228,7 +228,7 @@ static void print_sctl(uint32_t val)
 #undef a
         error_report("es1370: "
                 "%s p2_end_inc %d, p2_st_inc %d,"
-                " r1_fmt %s, p2_fmt %s, p1_fmt %s\n",
+                " r1_fmt %s, p2_fmt %s, p1_fmt %s",
                 buf,
                 (val & SCTRL_P2ENDINC) >> SCTRL_SH_P2ENDINC,
                 (val & SCTRL_P2STINC) >> SCTRL_SH_P2STINC,
diff --git a/ui/gtk.c b/ui/gtk.c
index 48571bedbf..e83a366625 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -1197,7 +1197,7 @@ static gboolean gd_touch_event(GtkWidget *widget, GdkEventTouch *touch,
         type = INPUT_MULTI_TOUCH_TYPE_END;
         break;
     default:
-        warn_report("gtk: unexpected touch event type\n");
+        warn_report("gtk: unexpected touch event type");
         return FALSE;
     }
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 12:15:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 12:15:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168996.1494936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2Y-0003Ba-Oq; Fri, 21 Nov 2025 12:15:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168996.1494936; Fri, 21 Nov 2025 12:15: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 1vMQ2Y-000380-D3; Fri, 21 Nov 2025 12:15:02 +0000
Received: by outflank-mailman (input) for mailman id 1168996;
 Fri, 21 Nov 2025 12:15: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=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMQ2W-000110-TE
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 12:15:01 +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 b02f9c84-c6d3-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 13:14:55 +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-120-Sv5pPRFTM0qJToJsn2kRMw-1; Fri,
 21 Nov 2025 07:14:51 -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-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id C02061800447; Fri, 21 Nov 2025 12:14:46 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.3])
 by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id B54FE1956045; Fri, 21 Nov 2025 12:14:45 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id CB99D21EC344; Fri, 21 Nov 2025 13:14:38 +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: b02f9c84-c6d3-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763727294;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=C9+n4YIkHnh2mbMl8vw6pyQd6cuiMoiXUxhhscAry0s=;
	b=OE+VOLIRC8MuTeJv7x8h6vYwOnRbTQ1bpzjQo97YbvoI5/WJtVQnXKGRdG7J2Y+RnuVTKJ
	WKx7BrY35V8wvBySF2WFYXwSVtifSfZa+Ser/+fgXuuSLrNbRYko9zLjUAhhggblhMk3+e
	5OXMFkjolXhBAN1GI0nC02QfM9T4fog=
X-MC-Unique: Sv5pPRFTM0qJToJsn2kRMw-1
X-Mimecast-MFC-AGG-ID: Sv5pPRFTM0qJToJsn2kRMw_1763727287
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	zhenwei.pi@linux.dev,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH v2 13/15] error: Use error_setg_errno() for simplicity and consistency
Date: Fri, 21 Nov 2025 13:14:36 +0100
Message-ID: <20251121121438.1249498-14-armbru@redhat.com>
In-Reply-To: <20251121121438.1249498-1-armbru@redhat.com>
References: <20251121121438.1249498-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12

Use error_setg_errno() instead of passing the value of strerror() or
g_strerror() to error_setg().

The separator between the error message proper and the value of
strerror() changes from " : ", "", " - ", "- " to ": " in places.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 backends/spdm-socket.c      |  4 ++--
 backends/tpm/tpm_emulator.c | 13 +++++--------
 hw/9pfs/9p.c                |  3 +--
 hw/acpi/core.c              |  3 +--
 hw/intc/openpic_kvm.c       |  3 +--
 hw/intc/xics_kvm.c          |  5 +++--
 hw/remote/vfio-user-obj.c   | 18 +++++++++---------
 hw/sensor/emc141x.c         |  4 ++--
 hw/sensor/tmp421.c          |  4 ++--
 hw/smbios/smbios.c          |  4 ++--
 hw/virtio/vdpa-dev.c        |  4 ++--
 migration/postcopy-ram.c    | 10 +++++-----
 net/slirp.c                 |  5 +++--
 qga/commands-posix-ssh.c    | 23 +++++++++++++----------
 system/vl.c                 |  2 +-
 target/ppc/kvm.c            |  5 ++---
 16 files changed, 54 insertions(+), 56 deletions(-)

diff --git a/backends/spdm-socket.c b/backends/spdm-socket.c
index 6d8f02d3b9..a12bc47f77 100644
--- a/backends/spdm-socket.c
+++ b/backends/spdm-socket.c
@@ -167,7 +167,7 @@ int spdm_socket_connect(uint16_t port, Error **errp)
 
     client_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
     if (client_socket < 0) {
-        error_setg(errp, "cannot create socket: %s", strerror(errno));
+        error_setg_errno(errp, errno, "cannot create socket");
         return -1;
     }
 
@@ -179,7 +179,7 @@ int spdm_socket_connect(uint16_t port, Error **errp)
 
     if (connect(client_socket, (struct sockaddr *)&server_addr,
                 sizeof(server_addr)) < 0) {
-        error_setg(errp, "cannot connect: %s", strerror(errno));
+        error_setg_errno(errp, errno, "cannot connect");
         close(client_socket);
         return -1;
     }
diff --git a/backends/tpm/tpm_emulator.c b/backends/tpm/tpm_emulator.c
index f10b9074fb..f52cb4d435 100644
--- a/backends/tpm/tpm_emulator.c
+++ b/backends/tpm/tpm_emulator.c
@@ -225,8 +225,7 @@ static int tpm_emulator_set_locality(TPMEmulator *tpm_emu, uint8_t locty_number,
     if (tpm_emulator_ctrlcmd(tpm_emu, CMD_SET_LOCALITY, &loc,
                              sizeof(loc), sizeof(loc.u.resp.tpm_result),
                              sizeof(loc)) < 0) {
-        error_setg(errp, "tpm-emulator: could not set locality : %s",
-                   strerror(errno));
+        error_setg_errno(errp, errno, "tpm-emulator: could not set locality");
         return -1;
     }
 
@@ -315,8 +314,7 @@ static int tpm_emulator_stop_tpm(TPMBackend *tb, Error **errp)
 
     if (tpm_emulator_ctrlcmd(tpm_emu, CMD_STOP, &res, 0,
                              sizeof(ptm_res), sizeof(res)) < 0) {
-        error_setg(errp, "tpm-emulator: Could not stop TPM: %s",
-                   strerror(errno));
+        error_setg_errno(errp, errno, "tpm-emulator: Could not stop TPM");
         return -1;
     }
 
@@ -377,8 +375,8 @@ static int tpm_emulator_set_buffer_size(TPMBackend *tb,
     if (tpm_emulator_ctrlcmd(tpm_emu, CMD_SET_BUFFERSIZE, &psbs,
                              sizeof(psbs.u.req), sizeof(psbs.u.resp.tpm_result),
                              sizeof(psbs.u.resp)) < 0) {
-        error_setg(errp, "tpm-emulator: Could not set buffer size: %s",
-                   strerror(errno));
+        error_setg_errno(errp, errno,
+                         "tpm-emulator: Could not set buffer size");
         return -1;
     }
 
@@ -426,8 +424,7 @@ static int tpm_emulator_startup_tpm_resume(TPMBackend *tb, size_t buffersize,
     if (tpm_emulator_ctrlcmd(tpm_emu, CMD_INIT, &init, sizeof(init),
                              sizeof(init.u.resp.tpm_result),
                              sizeof(init)) < 0) {
-        error_setg(errp, "tpm-emulator: could not send INIT: %s",
-                   strerror(errno));
+        error_setg_errno(errp, errno, "tpm-emulator: could not send INIT");
         goto err_exit;
     }
 
diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
index bc4a016ee3..6fbe604ce8 100644
--- a/hw/9pfs/9p.c
+++ b/hw/9pfs/9p.c
@@ -4345,8 +4345,7 @@ int v9fs_device_realize_common(V9fsState *s, const V9fsTransport *t,
      * use co-routines here.
      */
     if (s->ops->name_to_path(&s->ctx, NULL, "/", &path) < 0) {
-        error_setg(errp,
-                   "error in converting name to path %s", strerror(errno));
+        error_setg_errno(errp, errno, "error in converting name to path");
         goto out;
     }
     if (s->ops->lstat(&s->ctx, &path, &stat)) {
diff --git a/hw/acpi/core.c b/hw/acpi/core.c
index d2677332af..82974eb257 100644
--- a/hw/acpi/core.c
+++ b/hw/acpi/core.c
@@ -293,8 +293,7 @@ void acpi_table_add(const QemuOpts *opts, Error **errp)
                 memcpy(blob + bloblen, data, r);
                 bloblen += r;
             } else if (errno != EINTR) {
-                error_setg(errp, "can't read file %s: %s", *cur,
-                           strerror(errno));
+                error_setg_errno(errp, errno, "can't read file %s", *cur);
                 close(fd);
                 goto out;
             }
diff --git a/hw/intc/openpic_kvm.c b/hw/intc/openpic_kvm.c
index 673ea9ca05..0c11bbc963 100644
--- a/hw/intc/openpic_kvm.c
+++ b/hw/intc/openpic_kvm.c
@@ -223,8 +223,7 @@ static void kvm_openpic_realize(DeviceState *dev, Error **errp)
     cd.type = kvm_openpic_model;
     ret = kvm_vm_ioctl(s, KVM_CREATE_DEVICE, &cd);
     if (ret < 0) {
-        error_setg(errp, "Can't create device %d: %s",
-                   cd.type, strerror(errno));
+        error_setg_errno(errp, errno, "Can't create device %d", cd.type);
         return;
     }
     opp->fd = cd.fd;
diff --git a/hw/intc/xics_kvm.c b/hw/intc/xics_kvm.c
index ee72969f5f..61f66d1019 100644
--- a/hw/intc/xics_kvm.c
+++ b/hw/intc/xics_kvm.c
@@ -165,8 +165,9 @@ void icp_kvm_realize(DeviceState *dev, Error **errp)
     if (ret < 0) {
         Error *local_err = NULL;
 
-        error_setg(&local_err, "Unable to connect CPU%ld to kernel XICS: %s",
-                   vcpu_id, strerror(errno));
+        error_setg_errno(&local_err, errno,
+                         "Unable to connect CPU%ld to kernel XICS",
+                         vcpu_id);
         if (errno == ENOSPC) {
             error_append_hint(&local_err, "Try -smp maxcpus=N with N < %u\n",
                               MACHINE(qdev_get_machine())->smp.max_cpus);
diff --git a/hw/remote/vfio-user-obj.c b/hw/remote/vfio-user-obj.c
index 216b4876e2..24c0088f63 100644
--- a/hw/remote/vfio-user-obj.c
+++ b/hw/remote/vfio-user-obj.c
@@ -751,7 +751,7 @@ static void vfu_object_init_ctx(VfuObject *o, Error **errp)
                                 LIBVFIO_USER_FLAG_ATTACH_NB,
                                 o, VFU_DEV_TYPE_PCI);
     if (o->vfu_ctx == NULL) {
-        error_setg(errp, "vfu: Failed to create context - %s", strerror(errno));
+        error_setg_errno(errp, errno, "vfu: Failed to create context");
         return;
     }
 
@@ -776,9 +776,9 @@ static void vfu_object_init_ctx(VfuObject *o, Error **errp)
 
     ret = vfu_pci_init(o->vfu_ctx, pci_type, PCI_HEADER_TYPE_NORMAL, 0);
     if (ret < 0) {
-        error_setg(errp,
-                   "vfu: Failed to attach PCI device %s to context - %s",
-                   o->device, strerror(errno));
+        error_setg_errno(errp, errno,
+                         "vfu: Failed to attach PCI device %s to context",
+                         o->device);
         goto fail;
     }
 
@@ -792,9 +792,9 @@ static void vfu_object_init_ctx(VfuObject *o, Error **errp)
                            VFU_REGION_FLAG_RW | VFU_REGION_FLAG_ALWAYS_CB,
                            NULL, 0, -1, 0);
     if (ret < 0) {
-        error_setg(errp,
-                   "vfu: Failed to setup config space handlers for %s- %s",
-                   o->device, strerror(errno));
+        error_setg_errno(errp, errno,
+                         "vfu: Failed to setup config space handlers for %s",
+                         o->device);
         goto fail;
     }
 
@@ -822,8 +822,8 @@ static void vfu_object_init_ctx(VfuObject *o, Error **errp)
 
     ret = vfu_realize_ctx(o->vfu_ctx);
     if (ret < 0) {
-        error_setg(errp, "vfu: Failed to realize device %s- %s",
-                   o->device, strerror(errno));
+        error_setg_errno(errp, errno, "vfu: Failed to realize device %s",
+                         o->device);
         goto fail;
     }
 
diff --git a/hw/sensor/emc141x.c b/hw/sensor/emc141x.c
index 7b2ce383a1..a51fc44395 100644
--- a/hw/sensor/emc141x.c
+++ b/hw/sensor/emc141x.c
@@ -59,7 +59,7 @@ static void emc141x_get_temperature(Object *obj, Visitor *v, const char *name,
     unsigned tempid;
 
     if (sscanf(name, "temperature%u", &tempid) != 1) {
-        error_setg(errp, "error reading %s: %s", name, g_strerror(errno));
+        error_setg_errno(errp, errno, "error reading %s", name);
         return;
     }
 
@@ -86,7 +86,7 @@ static void emc141x_set_temperature(Object *obj, Visitor *v, const char *name,
     }
 
     if (sscanf(name, "temperature%u", &tempid) != 1) {
-        error_setg(errp, "error reading %s: %s", name, g_strerror(errno));
+        error_setg_errno(errp, errno, "error reading %s", name);
         return;
     }
 
diff --git a/hw/sensor/tmp421.c b/hw/sensor/tmp421.c
index 3421c44086..127edd0ba5 100644
--- a/hw/sensor/tmp421.c
+++ b/hw/sensor/tmp421.c
@@ -117,7 +117,7 @@ static void tmp421_get_temperature(Object *obj, Visitor *v, const char *name,
     int tempid;
 
     if (sscanf(name, "temperature%d", &tempid) != 1) {
-        error_setg(errp, "error reading %s: %s", name, g_strerror(errno));
+        error_setg_errno(errp, errno, "error reading %s", name);
         return;
     }
 
@@ -154,7 +154,7 @@ static void tmp421_set_temperature(Object *obj, Visitor *v, const char *name,
     }
 
     if (sscanf(name, "temperature%d", &tempid) != 1) {
-        error_setg(errp, "error reading %s: %s", name, g_strerror(errno));
+        error_setg_errno(errp, errno, "error reading %s", name);
         return;
     }
 
diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c
index 7558b2ad83..b228f9eb85 100644
--- a/hw/smbios/smbios.c
+++ b/hw/smbios/smbios.c
@@ -1281,8 +1281,8 @@ static int save_opt_one(void *opaque,
                 break;
             }
             if (ret < 0) {
-                error_setg(errp, "Unable to read from %s: %s",
-                           value, strerror(errno));
+                error_setg_errno(errp, errno, "Unable to read from %s",
+                                 value);
                 qemu_close(fd);
                 return -1;
             }
diff --git a/hw/virtio/vdpa-dev.c b/hw/virtio/vdpa-dev.c
index 4a7b970976..f97d576171 100644
--- a/hw/virtio/vdpa-dev.c
+++ b/hw/virtio/vdpa-dev.c
@@ -41,8 +41,8 @@ vhost_vdpa_device_get_u32(int fd, unsigned long int cmd, Error **errp)
     uint32_t val = (uint32_t)-1;
 
     if (ioctl(fd, cmd, &val) < 0) {
-        error_setg(errp, "vhost-vdpa-device: cmd 0x%lx failed: %s",
-                   cmd, strerror(errno));
+        error_setg_errno(errp, errno, "vhost-vdpa-device: cmd 0x%lx failed",
+                         cmd);
     }
 
     return val;
diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c
index 3f98dcb6fd..5454372ac6 100644
--- a/migration/postcopy-ram.c
+++ b/migration/postcopy-ram.c
@@ -582,7 +582,7 @@ bool postcopy_ram_supported_by_host(MigrationIncomingState *mis, Error **errp)
 
     ufd = uffd_open(O_CLOEXEC);
     if (ufd == -1) {
-        error_setg(errp, "Userfaultfd not available: %s", strerror(errno));
+        error_setg_errno(errp, errno, "Userfaultfd not available");
         goto out;
     }
 
@@ -620,7 +620,7 @@ bool postcopy_ram_supported_by_host(MigrationIncomingState *mis, Error **errp)
      * it was enabled.
      */
     if (munlockall()) {
-        error_setg(errp, "munlockall() failed: %s", strerror(errno));
+        error_setg_errno(errp, errno, "munlockall() failed");
         goto out;
     }
 
@@ -632,7 +632,7 @@ bool postcopy_ram_supported_by_host(MigrationIncomingState *mis, Error **errp)
     testarea = mmap(NULL, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE |
                                     MAP_ANONYMOUS, -1, 0);
     if (testarea == MAP_FAILED) {
-        error_setg(errp, "Failed to map test area: %s", strerror(errno));
+        error_setg_errno(errp, errno, "Failed to map test area");
         goto out;
     }
     g_assert(QEMU_PTR_IS_ALIGNED(testarea, pagesize));
@@ -642,14 +642,14 @@ bool postcopy_ram_supported_by_host(MigrationIncomingState *mis, Error **errp)
     reg_struct.mode = UFFDIO_REGISTER_MODE_MISSING;
 
     if (ioctl(ufd, UFFDIO_REGISTER, &reg_struct)) {
-        error_setg(errp, "UFFDIO_REGISTER failed: %s", strerror(errno));
+        error_setg_errno(errp, errno, "UFFDIO_REGISTER failed");
         goto out;
     }
 
     range_struct.start = (uintptr_t)testarea;
     range_struct.len = pagesize;
     if (ioctl(ufd, UFFDIO_UNREGISTER, &range_struct)) {
-        error_setg(errp, "UFFDIO_UNREGISTER failed: %s", strerror(errno));
+        error_setg_errno(errp, errno, "UFFDIO_UNREGISTER failed");
         goto out;
     }
 
diff --git a/net/slirp.c b/net/slirp.c
index 5996fec512..04925f3318 100644
--- a/net/slirp.c
+++ b/net/slirp.c
@@ -1020,8 +1020,9 @@ static int slirp_smb(SlirpState* s, const char *exported_dir,
     }
 
     if (access(exported_dir, R_OK | X_OK)) {
-        error_setg(errp, "Error accessing shared directory '%s': %s",
-                   exported_dir, strerror(errno));
+        error_setg_errno(errp, errno,
+                         "Error accessing shared directory '%s'",
+                         exported_dir);
         return -1;
     }
 
diff --git a/qga/commands-posix-ssh.c b/qga/commands-posix-ssh.c
index 246171d323..661972e34e 100644
--- a/qga/commands-posix-ssh.c
+++ b/qga/commands-posix-ssh.c
@@ -61,20 +61,22 @@ mkdir_for_user(const char *path, const struct passwd *p,
                mode_t mode, Error **errp)
 {
     if (g_mkdir(path, mode) == -1) {
-        error_setg(errp, "failed to create directory '%s': %s",
-                   path, g_strerror(errno));
+        error_setg_errno(errp, errno, "failed to create directory '%s'",
+                         path);
         return false;
     }
 
     if (chown(path, p->pw_uid, p->pw_gid) == -1) {
-        error_setg(errp, "failed to set ownership of directory '%s': %s",
-                   path, g_strerror(errno));
+        error_setg_errno(errp, errno,
+                         "failed to set ownership of directory '%s'",
+                         path);
         return false;
     }
 
     if (chmod(path, mode) == -1) {
-        error_setg(errp, "failed to set permissions of directory '%s': %s",
-                   path, g_strerror(errno));
+        error_setg_errno(errp, errno,
+                         "failed to set permissions of directory '%s'",
+                         path);
         return false;
     }
 
@@ -95,14 +97,15 @@ write_authkeys(const char *path, const GStrv keys,
     }
 
     if (chown(path, p->pw_uid, p->pw_gid) == -1) {
-        error_setg(errp, "failed to set ownership of directory '%s': %s",
-                   path, g_strerror(errno));
+        error_setg_errno(errp, errno,
+                         "failed to set ownership of directory '%s'",
+                         path);
         return false;
     }
 
     if (chmod(path, 0600) == -1) {
-        error_setg(errp, "failed to set permissions of '%s': %s",
-                   path, g_strerror(errno));
+        error_setg_errno(errp, errno, "failed to set permissions of '%s'",
+                         path);
         return false;
     }
 
diff --git a/system/vl.c b/system/vl.c
index 5091fe52d9..2ef5b4b3b2 100644
--- a/system/vl.c
+++ b/system/vl.c
@@ -619,7 +619,7 @@ static int parse_add_fd(void *opaque, QemuOpts *opts, Error **errp)
     }
 #endif
     if (dupfd == -1) {
-        error_setg(errp, "error duplicating fd: %s", strerror(errno));
+        error_setg_errno(errp, errno, "error duplicating fd");
         return -1;
     }
 
diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
index 43124bf1c7..3501b5d546 100644
--- a/target/ppc/kvm.c
+++ b/target/ppc/kvm.c
@@ -2699,9 +2699,8 @@ int kvmppc_get_htab_fd(bool write, uint64_t index, Error **errp)
 
     ret = kvm_vm_ioctl(kvm_state, KVM_PPC_GET_HTAB_FD, &s);
     if (ret < 0) {
-        error_setg(errp, "Unable to open fd for %s HPT %s KVM: %s",
-                   write ? "writing" : "reading", write ? "to" : "from",
-                   strerror(errno));
+        error_setg_errno(errp, errno, "Unable to open fd for %s HPT %s KVM",
+                   write ? "writing" : "reading", write ? "to" : "from");
         return -errno;
     }
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 12:15:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 12:15:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168985.1494838 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2R-000119-8r; Fri, 21 Nov 2025 12:14:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168985.1494838; Fri, 21 Nov 2025 12:14:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2R-000112-3l; Fri, 21 Nov 2025 12:14:55 +0000
Received: by outflank-mailman (input) for mailman id 1168985;
 Fri, 21 Nov 2025 12:14:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMQ2Q-00010q-2r
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 12:14:54 +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 ae36e037-c6d3-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 13:14:52 +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-362-mFYJ-q5wMPuQuTz0rIqCBA-1; Fri,
 21 Nov 2025 07:14:49 -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 701F51800358; Fri, 21 Nov 2025 12:14:43 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.3])
 by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id E68AA30044DB; Fri, 21 Nov 2025 12:14:40 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 8F86121E66EF; Fri, 21 Nov 2025 13:14:38 +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: ae36e037-c6d3-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763727290;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=jN2hNANWVWTCu1f5WR+vOsR5aIOIA2pYSQMMfmQp7wI=;
	b=S3sIXXSiK5/HjntMTBeBJ+TsMJoylG2F+7r/BVID6pVtOyj/sqKTN2qEZwAvMl0VU9yusd
	iwOqT6fcvZ+zsMt9mXR6XW0Pevuf+XUhw7c8crj+Bnj/3t45N74QtL4c4fLq8BKvREVBdU
	OqQWq2yOw987DdROfL+V4WtKJZDIj3g=
X-MC-Unique: mFYJ-q5wMPuQuTz0rIqCBA-1
X-Mimecast-MFC-AGG-ID: mFYJ-q5wMPuQuTz0rIqCBA_1763727284
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	zhenwei.pi@linux.dev,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH v2 03/15] ui: Convert to qemu_create() for simplicity and consistency
Date: Fri, 21 Nov 2025 13:14:26 +0100
Message-ID: <20251121121438.1249498-4-armbru@redhat.com>
In-Reply-To: <20251121121438.1249498-1-armbru@redhat.com>
References: <20251121121438.1249498-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4

The error message changes from

    failed to open file 'FILENAME': REASON

to

    Could not create 'FILENAME': REASON

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 ui/ui-qmp-cmds.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/ui/ui-qmp-cmds.c b/ui/ui-qmp-cmds.c
index 74fa6c6ec5..b49b636152 100644
--- a/ui/ui-qmp-cmds.c
+++ b/ui/ui-qmp-cmds.c
@@ -369,10 +369,8 @@ qmp_screendump(const char *filename, const char *device,
     }
     image = pixman_image_ref(surface->image);
 
-    fd = qemu_open_old(filename, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0666);
+    fd = qemu_create(filename, O_WRONLY | O_TRUNC | O_BINARY, 0666, errp);
     if (fd == -1) {
-        error_setg(errp, "failed to open file '%s': %s", filename,
-                   strerror(errno));
         return;
     }
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 12:15:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 12:15:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168993.1494905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2W-0002QM-2O; Fri, 21 Nov 2025 12:15:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168993.1494905; Fri, 21 Nov 2025 12:15:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2V-0002Oy-QY; Fri, 21 Nov 2025 12:14:59 +0000
Received: by outflank-mailman (input) for mailman id 1168993;
 Fri, 21 Nov 2025 12:14: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=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMQ2T-000110-SV
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 12:14:57 +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 ae51edf8-c6d3-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 13:14:52 +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-298-J3mo8o2FOba0ZJnznZes4g-1; Fri,
 21 Nov 2025 07:14:47 -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 6FF25180034A; Fri, 21 Nov 2025 12:14:43 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.3])
 by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 05D4030044DC; Fri, 21 Nov 2025 12:14:41 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 9569B21E66F8; Fri, 21 Nov 2025 13:14:38 +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: ae51edf8-c6d3-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763727291;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=LvfjndzC9yIe2vReLTAtPHT920hAL1fUKXGYa8VIiFA=;
	b=BJJMHGu+w5E4AN7NpeSWwrF3qWHCBJvlkDXH3QtGT90VDyZt9VyhAH4euZzldULzIlyVuv
	tlYGc+KwV06walXr7khFsWIzWQRVM//hLDi+uQsasZA4/PfHRx/e4NIpsB7asDWxNHmFI2
	O5bWi/Q+3HXsyMXhXfxfEv8qYCfmpxk=
X-MC-Unique: J3mo8o2FOba0ZJnznZes4g-1
X-Mimecast-MFC-AGG-ID: J3mo8o2FOba0ZJnznZes4g_1763727284
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	zhenwei.pi@linux.dev,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH v2 04/15] tap-solaris: Use error_setg_file_open() for better error messages
Date: Fri, 21 Nov 2025 13:14:27 +0100
Message-ID: <20251121121438.1249498-5-armbru@redhat.com>
In-Reply-To: <20251121121438.1249498-1-armbru@redhat.com>
References: <20251121121438.1249498-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4

Error messages change from

    Can't open /dev/ip (actually /dev/udp)
    Can't open /dev/tap
    Can't open /dev/tap (2)

to

    Could not open '/dev/udp': REASON
    Could not open '/dev/tap': REASON

where REASON is the value of strerror(errno).

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org>
---
 net/tap-solaris.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/tap-solaris.c b/net/tap-solaris.c
index 75397e6c54..faf7922ea8 100644
--- a/net/tap-solaris.c
+++ b/net/tap-solaris.c
@@ -87,13 +87,13 @@ static int tap_alloc(char *dev, size_t dev_size, Error **errp)
 
     ip_fd = RETRY_ON_EINTR(open("/dev/udp", O_RDWR, 0));
     if (ip_fd < 0) {
-        error_setg(errp, "Can't open /dev/ip (actually /dev/udp)");
+        error_setg_file_open(errp, errno, "/dev/udp");
         return -1;
     }
 
     tap_fd = RETRY_ON_EINTR(open("/dev/tap", O_RDWR, 0));
     if (tap_fd < 0) {
-        error_setg(errp, "Can't open /dev/tap");
+        error_setg_file_open(errp, errno, "/dev/tap");
         return -1;
     }
 
@@ -107,7 +107,7 @@ static int tap_alloc(char *dev, size_t dev_size, Error **errp)
 
     if_fd = RETRY_ON_EINTR(open("/dev/tap", O_RDWR, 0));
     if (if_fd < 0) {
-        error_setg(errp, "Can't open /dev/tap (2)");
+        error_setg_file_open(errp, errno, "/dev/tap");
         return -1;
     }
     if(ioctl(if_fd, I_PUSH, "ip") < 0){
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 12:15:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 12:15:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168986.1494847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2S-0001En-D5; Fri, 21 Nov 2025 12:14:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168986.1494847; Fri, 21 Nov 2025 12:14: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 1vMQ2S-0001Eg-9g; Fri, 21 Nov 2025 12:14:56 +0000
Received: by outflank-mailman (input) for mailman id 1168986;
 Fri, 21 Nov 2025 12:14:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMQ2Q-00010q-Ob
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 12:14:54 +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 af2bfabf-c6d3-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 13:14:53 +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-362--3aJYg8QO7mowt-5VMm9DQ-1; Fri,
 21 Nov 2025 07:14:49 -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-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 384951956059; Fri, 21 Nov 2025 12:14:43 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.3])
 by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id E1C871940E82; Fri, 21 Nov 2025 12:14:40 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 7FBC221E6A27; Fri, 21 Nov 2025 13:14:38 +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: af2bfabf-c6d3-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763727292;
	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=SakLJGJj0LkA1a6qNyCMYZNSthSDHMhyUkRA4qcArBA=;
	b=UpnWJ6btR4JjQpM9mBgRMmuLExnmv/8vuv6EYjkHVk2rqcONArtXjnHxty3Se2HbV4erS8
	7R7WxqDMSEv1h5jxb2KqlzI4RRiQA/OO8lwSEF2uvmSp5/v+vG59NUsI03kINjC2fDVxfo
	oFP0fJxfpCq0PGd3ENBQoU09dyaa0Jk=
X-MC-Unique: -3aJYg8QO7mowt-5VMm9DQ-1
X-Mimecast-MFC-AGG-ID: -3aJYg8QO7mowt-5VMm9DQ_1763727284
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	zhenwei.pi@linux.dev,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH v2 00/15] Error message improvements
Date: Fri, 21 Nov 2025 13:14:23 +0100
Message-ID: <20251121121438.1249498-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17

v2:
* PATCH 02: New, replacing old PATCH 02 [Dave]
* PATCH 03: New, replacing one of old PATCH 09's hunks
* PATCH 12: Fix patch splitting mishap [Dave]
* PATCH 13: Fix lost argument [Dave]

Markus Armbruster (15):
  error: Strip trailing '\n' from error string arguments (again)
  hw/usb: Convert to qemu_create() for a better error message
  ui: Convert to qemu_create() for simplicity and consistency
  tap-solaris: Use error_setg_file_open() for better error messages
  qga: Use error_setg_file_open() for better error messages
  hw/scsi: Use error_setg_file_open() for a better error message
  hw/virtio: Use error_setg_file_open() for a better error message
  net/tap: Use error_setg_file_open() for a better error message
  blkdebug: Use error_setg_file_open() for a better error message
  error: Use error_setg_file_open() for simplicity and consistency
  net/slirp: Improve file open error message
  error: Use error_setg_errno() to improve error messages
  error: Use error_setg_errno() for simplicity and consistency
  qga/commands-win32: Use error_setg_win32() for better error messages
  block/file-win32: Improve an error message

 backends/cryptodev-lkcf.c   |  2 +-
 backends/spdm-socket.c      |  4 ++--
 backends/tpm/tpm_emulator.c | 13 +++++--------
 block/blkdebug.c            |  2 +-
 block/file-win32.c          |  2 +-
 hw/9pfs/9p-local.c          |  2 +-
 hw/9pfs/9p.c                |  3 +--
 hw/acpi/core.c              |  5 ++---
 hw/audio/es1370.c           |  2 +-
 hw/core/loader.c            |  2 +-
 hw/intc/openpic_kvm.c       |  3 +--
 hw/intc/xics_kvm.c          |  5 +++--
 hw/pci-host/xen_igd_pt.c    |  2 +-
 hw/ppc/spapr.c              |  6 +++---
 hw/remote/vfio-user-obj.c   | 18 +++++++++---------
 hw/scsi/vhost-scsi.c        |  3 +--
 hw/sensor/emc141x.c         |  4 ++--
 hw/sensor/tmp421.c          |  4 ++--
 hw/smbios/smbios.c          |  4 ++--
 hw/usb/bus.c                |  5 ++---
 hw/vfio/migration-multifd.c |  5 +++--
 hw/virtio/vdpa-dev.c        |  4 ++--
 hw/virtio/vhost-vsock.c     |  3 +--
 migration/postcopy-ram.c    | 10 +++++-----
 migration/rdma.c            |  3 +--
 monitor/hmp-cmds-target.c   |  2 +-
 net/dump.c                  |  2 +-
 net/l2tpv3.c                |  6 ++----
 net/slirp.c                 |  9 ++++++---
 net/tap-bsd.c               |  6 +++---
 net/tap-linux.c             |  2 +-
 net/tap-solaris.c           |  6 +++---
 net/tap.c                   |  3 +--
 qga/commands-linux.c        | 11 ++++++-----
 qga/commands-posix-ssh.c    | 23 +++++++++++++----------
 qga/commands-win32.c        | 16 ++++++++--------
 system/vl.c                 |  2 +-
 target/i386/sev.c           |  6 ++----
 target/ppc/kvm.c            |  5 ++---
 target/riscv/kvm/kvm-cpu.c  | 11 ++++++-----
 ui/gtk.c                    |  2 +-
 ui/ui-qmp-cmds.c            |  4 +---
 util/vfio-helpers.c         |  5 ++---
 43 files changed, 114 insertions(+), 123 deletions(-)

-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 12:15:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 12:15:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168990.1494887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2U-00025j-PT; Fri, 21 Nov 2025 12:14:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168990.1494887; Fri, 21 Nov 2025 12:14: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 1vMQ2U-00024d-HA; Fri, 21 Nov 2025 12:14:58 +0000
Received: by outflank-mailman (input) for mailman id 1168990;
 Fri, 21 Nov 2025 12:14:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMQ2S-00010q-P7
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 12:14:56 +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 aff15fa7-c6d3-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 13:14:55 +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-159-vWwfEYL1PsCGkLjkk410QQ-1; Fri,
 21 Nov 2025 07:14:51 -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-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id C573E19560A1; Fri, 21 Nov 2025 12:14:46 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.3])
 by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id BA42430044DC; Fri, 21 Nov 2025 12:14:45 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id A9C7321E660B; Fri, 21 Nov 2025 13:14:38 +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: aff15fa7-c6d3-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763727293;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=/xtGdog7VgzIfQmeSQKWrv+vlf3j6c1d+FLveMONGz8=;
	b=ZSkKcqxj2cPAT14EfJLUsQSHA2vqSbd6Poc1rW8ZuTgdha1sDW4qF+dZUOgEjseS0nJxaQ
	lcHrg8L6qb9uTrkHCEQhKGr4rdxVi7KOczIKihKXkQYKHRm6SS23H+i0pUHdGWi7MwXojG
	NP14ih9i8joTjiHIuvdm4+wMav3qEt8=
X-MC-Unique: vWwfEYL1PsCGkLjkk410QQ-1
X-Mimecast-MFC-AGG-ID: vWwfEYL1PsCGkLjkk410QQ_1763727287
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	zhenwei.pi@linux.dev,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH v2 07/15] hw/virtio: Use error_setg_file_open() for a better error message
Date: Fri, 21 Nov 2025 13:14:30 +0100
Message-ID: <20251121121438.1249498-8-armbru@redhat.com>
In-Reply-To: <20251121121438.1249498-1-armbru@redhat.com>
References: <20251121121438.1249498-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4

The error message changes from

    vhost-vsock: failed to open vhost device: REASON

to

    Could not open '/dev/vhost-vsock': REASON

I think the exact file name is more useful to know than the file's
purpose.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 hw/virtio/vhost-vsock.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/hw/virtio/vhost-vsock.c b/hw/virtio/vhost-vsock.c
index 107d88babe..7940b60d8a 100644
--- a/hw/virtio/vhost-vsock.c
+++ b/hw/virtio/vhost-vsock.c
@@ -153,8 +153,7 @@ static void vhost_vsock_device_realize(DeviceState *dev, Error **errp)
     } else {
         vhostfd = open("/dev/vhost-vsock", O_RDWR);
         if (vhostfd < 0) {
-            error_setg_errno(errp, errno,
-                             "vhost-vsock: failed to open vhost device");
+            error_setg_file_open(errp, errno, "/dev/vhost-vsock");
             return;
         }
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 12:15:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 12:15:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168988.1494860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2T-0001Oz-4O; Fri, 21 Nov 2025 12:14:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168988.1494860; Fri, 21 Nov 2025 12:14:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2S-0001O2-SG; Fri, 21 Nov 2025 12:14:56 +0000
Received: by outflank-mailman (input) for mailman id 1168988;
 Fri, 21 Nov 2025 12:14: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=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMQ2R-00010q-Oo
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 12:14:55 +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 affa068d-c6d3-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 13:14:55 +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-116-_q0zrpcsOni3q2XTxVwVng-1; Fri,
 21 Nov 2025 07:14:50 -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 4DA111954B0C; Fri, 21 Nov 2025 12:14:46 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.3])
 by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 92CEC1955F1C; Fri, 21 Nov 2025 12:14:45 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id A194221E66B9; Fri, 21 Nov 2025 13:14:38 +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: affa068d-c6d3-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763727293;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=/QEiTeEFvA8zkWAoBuerCa692vNPnWKWwqHvysdpeIs=;
	b=YZiaEf3kRi4XMVwG4nBx1IejVxooA600NT9jhbsIB/FFx8V6jb5bYdwpggKagxO9bKm95T
	lXIUNkWkFNBs/VB41gyTLC2pg4kEOuV7Hx3hKryY+9dhEmDsf/5nncL/OXI0niwh5tTXW1
	b4fwodZOYw9RC58kPj3ouNf5ImL0xR0=
X-MC-Unique: _q0zrpcsOni3q2XTxVwVng-1
X-Mimecast-MFC-AGG-ID: _q0zrpcsOni3q2XTxVwVng_1763727286
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	zhenwei.pi@linux.dev,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH v2 06/15] hw/scsi: Use error_setg_file_open() for a better error message
Date: Fri, 21 Nov 2025 13:14:29 +0100
Message-ID: <20251121121438.1249498-7-armbru@redhat.com>
In-Reply-To: <20251121121438.1249498-1-armbru@redhat.com>
References: <20251121121438.1249498-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12

The error message changes from

    vhost-scsi: open vhost char device failed: REASON

to

    Could not open '/dev/vhost-scsi': REASON

I think the exact file name is more useful to know than the file's
purpose.

We could put back the "vhost-scsi: " prefix with error_prepend().  Not
worth the bother.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org>
---
 hw/scsi/vhost-scsi.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/hw/scsi/vhost-scsi.c b/hw/scsi/vhost-scsi.c
index cdf405b0f8..239138c931 100644
--- a/hw/scsi/vhost-scsi.c
+++ b/hw/scsi/vhost-scsi.c
@@ -245,8 +245,7 @@ static void vhost_scsi_realize(DeviceState *dev, Error **errp)
     } else {
         vhostfd = open("/dev/vhost-scsi", O_RDWR);
         if (vhostfd < 0) {
-            error_setg(errp, "vhost-scsi: open vhost char device failed: %s",
-                       strerror(errno));
+            error_setg_file_open(errp, errno, "/dev/vhost-scsi");
             return;
         }
     }
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 12:15:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 12:15:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168992.1494898 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2V-0002GH-Jj; Fri, 21 Nov 2025 12:14:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168992.1494898; Fri, 21 Nov 2025 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 1vMQ2V-0002Ek-Bh; Fri, 21 Nov 2025 12:14:59 +0000
Received: by outflank-mailman (input) for mailman id 1168992;
 Fri, 21 Nov 2025 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=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMQ2T-00010q-PQ
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 12:14:57 +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 b0329780-c6d3-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 13:14:55 +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-33-xMZFCiGKODWbluovOjm9cg-1; Fri,
 21 Nov 2025 07:14:50 -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 6738E1956080; Fri, 21 Nov 2025 12:14:46 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.3])
 by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 976641940E8F; Fri, 21 Nov 2025 12:14:45 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 9B3D421E668C; Fri, 21 Nov 2025 13:14:38 +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: b0329780-c6d3-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763727294;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=jq+qsu9NDrfjYMe8jH6z7ShPmZi4eWzdQ6ZA1QbTE4A=;
	b=FH5wVs9IKIKVm0+sta350bxaULryvppnGNMqFMH0BCnEBgSklpuqB3MXk779f+YJ/Eerrm
	tBcHyW/7wHirywgyJFqN7DwPGXULYe6jYKxaFYEbcuSL5g/3aS10Zs4N1WvwxqF1BJe8tH
	yLR+psCf5c3P1ZV4y1DCrJNg5IJQIC4=
X-MC-Unique: xMZFCiGKODWbluovOjm9cg-1
X-Mimecast-MFC-AGG-ID: xMZFCiGKODWbluovOjm9cg_1763727286
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	zhenwei.pi@linux.dev,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH v2 05/15] qga: Use error_setg_file_open() for better error messages
Date: Fri, 21 Nov 2025 13:14:28 +0100
Message-ID: <20251121121438.1249498-6-armbru@redhat.com>
In-Reply-To: <20251121121438.1249498-1-armbru@redhat.com>
References: <20251121121438.1249498-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17

Error messages change from

    open("FNAME"): REASON

to

    Could not open 'FNAME': REASON

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org>
Reviewed-by: Kostiantyn Kostiuk <kkostiuk@redhat.com>
---
 qga/commands-linux.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/qga/commands-linux.c b/qga/commands-linux.c
index 4a09ddc760..5cf76ca2d9 100644
--- a/qga/commands-linux.c
+++ b/qga/commands-linux.c
@@ -1502,14 +1502,15 @@ static void transfer_vcpu(GuestLogicalProcessor *vcpu, bool sys2vcpu,
 
     dirfd = open(dirpath, O_RDONLY | O_DIRECTORY);
     if (dirfd == -1) {
-        error_setg_errno(errp, errno, "open(\"%s\")", dirpath);
+        error_setg_file_open(errp, errno, dirpath);
         return;
     }
 
     fd = openat(dirfd, fn, sys2vcpu ? O_RDONLY : O_RDWR);
     if (fd == -1) {
         if (errno != ENOENT) {
-            error_setg_errno(errp, errno, "open(\"%s/%s\")", dirpath, fn);
+            error_setg_errno(errp, errno, "could not open %s/%s",
+                             dirpath, fn);
         } else if (sys2vcpu) {
             vcpu->online = true;
             vcpu->can_offline = false;
@@ -1711,7 +1712,7 @@ static void transfer_memory_block(GuestMemoryBlock *mem_blk, bool sys2memblk,
     dirfd = open(dirpath, O_RDONLY | O_DIRECTORY);
     if (dirfd == -1) {
         if (sys2memblk) {
-            error_setg_errno(errp, errno, "open(\"%s\")", dirpath);
+            error_setg_file_open(errp, errno, dirpath);
         } else {
             if (errno == ENOENT) {
                 result->response = GUEST_MEMORY_BLOCK_RESPONSE_TYPE_NOT_FOUND;
@@ -1936,7 +1937,7 @@ static GuestDiskStatsInfoList *guest_get_diskstats(Error **errp)
 
     fp = fopen(diskstats, "r");
     if (fp  == NULL) {
-        error_setg_errno(errp, errno, "open(\"%s\")", diskstats);
+        error_setg_file_open(errp, errno, diskstats);
         return NULL;
     }
 
@@ -2047,7 +2048,7 @@ GuestCpuStatsList *qmp_guest_get_cpustats(Error **errp)
 
     fp = fopen(cpustats, "r");
     if (fp  == NULL) {
-        error_setg_errno(errp, errno, "open(\"%s\")", cpustats);
+        error_setg_file_open(errp, errno, cpustats);
         return NULL;
     }
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 12:15:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 12:15:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168987.1494854 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2S-0001I4-Os; Fri, 21 Nov 2025 12:14:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168987.1494854; Fri, 21 Nov 2025 12:14: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 1vMQ2S-0001HN-HF; Fri, 21 Nov 2025 12:14:56 +0000
Received: by outflank-mailman (input) for mailman id 1168987;
 Fri, 21 Nov 2025 12:14: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=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMQ2R-000110-5i
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 12:14:55 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ae9a15c8-c6d3-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 13:14:52 +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-563-_S2sFyzUNkyrsijPiS4IYQ-1; Fri,
 21 Nov 2025 07:14:48 -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 29D471954B11; Fri, 21 Nov 2025 12:14:43 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.3])
 by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 010191940E88; Fri, 21 Nov 2025 12:14:41 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 89C0021E6741; Fri, 21 Nov 2025 13:14:38 +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: ae9a15c8-c6d3-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763727291;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=ntoFJE6ZYqJ4DvoW2xAiFU9EOotBPF/P3xBSz1dTmbg=;
	b=bOlYG1dXNZsSCeE6JNxyx3UPQSobJnD9LKSlFNeuKnGjUnRcNdmlnzvLhTVqDnH21+tMXb
	fcjmzsuUhetXFNBSvulc7bQdArSHrydqK4DKmv6xwCzgqk66puAnUNFbflaovsQbsohvjR
	7j63LBwekxjSa7Q1Yma8fcb73K5/Yk0=
X-MC-Unique: _S2sFyzUNkyrsijPiS4IYQ-1
X-Mimecast-MFC-AGG-ID: _S2sFyzUNkyrsijPiS4IYQ_1763727283
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	zhenwei.pi@linux.dev,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH v2 02/15] hw/usb: Convert to qemu_create() for a better error message
Date: Fri, 21 Nov 2025 13:14:25 +0100
Message-ID: <20251121121438.1249498-3-armbru@redhat.com>
In-Reply-To: <20251121121438.1249498-1-armbru@redhat.com>
References: <20251121121438.1249498-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17

The error message changes from

    open FILENAME failed

to

    Could not create 'FILENAME': REASON

where REASON is the value of strerror(errno).

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 hw/usb/bus.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/hw/usb/bus.c b/hw/usb/bus.c
index 8dd2ce415e..714e33989f 100644
--- a/hw/usb/bus.c
+++ b/hw/usb/bus.c
@@ -259,10 +259,9 @@ static void usb_qdev_realize(DeviceState *qdev, Error **errp)
     }
 
     if (dev->pcap_filename) {
-        int fd = qemu_open_old(dev->pcap_filename,
-                               O_CREAT | O_WRONLY | O_TRUNC | O_BINARY, 0666);
+        int fd = qemu_create(dev->pcap_filename,
+                             O_WRONLY | O_TRUNC | O_BINARY, 0666, errp);
         if (fd < 0) {
-            error_setg(errp, "open %s failed", dev->pcap_filename);
             usb_qdev_unrealize(qdev);
             return;
         }
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 12:15:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 12:15:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168995.1494928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2X-0002yy-Sr; Fri, 21 Nov 2025 12:15:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168995.1494928; Fri, 21 Nov 2025 12: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 1vMQ2X-0002wE-Ji; Fri, 21 Nov 2025 12:15:01 +0000
Received: by outflank-mailman (input) for mailman id 1168995;
 Fri, 21 Nov 2025 12:15: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=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMQ2V-000110-T2
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 12:14:59 +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 b06b9bb8-c6d3-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 13:14:55 +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-63--Cu4SEnVN0iR9hO-VJAOfQ-1; Fri,
 21 Nov 2025 07:14: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-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 9F51C1800343; Fri, 21 Nov 2025 12:14:46 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.3])
 by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id A8D84180047F; Fri, 21 Nov 2025 12:14:45 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id B3F5821E65DC; Fri, 21 Nov 2025 13:14:38 +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: b06b9bb8-c6d3-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763727294;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=s+f/YPMyhiw0MODLrT/W+QVnkFDpo2Q2VNPNda433v0=;
	b=PVndParryEfC7OvUht/Zji1iQ+cQF1lZAIsv3LD7w/cMuaoUmPpSwOvwIKmyuXCwR46wMA
	41pvGNtvAz3+eGWD6Qpoli4LNWUHIItEvU1MtryPdTpIFz5/3ED+Z7Jmcun8zjNsPtv0oN
	YlBoFGpPg+BxJW92behLwJnwHaIXkTg=
X-MC-Unique: -Cu4SEnVN0iR9hO-VJAOfQ-1
X-Mimecast-MFC-AGG-ID: -Cu4SEnVN0iR9hO-VJAOfQ_1763727287
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	zhenwei.pi@linux.dev,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH v2 09/15] blkdebug: Use error_setg_file_open() for a better error message
Date: Fri, 21 Nov 2025 13:14:32 +0100
Message-ID: <20251121121438.1249498-10-armbru@redhat.com>
In-Reply-To: <20251121121438.1249498-1-armbru@redhat.com>
References: <20251121121438.1249498-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111

The error message changes from

    Could not read blkdebug config file: REASON

to

    Could not open 'FNAME': REASON

I think the exact file name is more useful to know than the file's
purpose.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 block/blkdebug.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/block/blkdebug.c b/block/blkdebug.c
index c54aee0c84..8a4a8cb85e 100644
--- a/block/blkdebug.c
+++ b/block/blkdebug.c
@@ -288,7 +288,7 @@ static int read_config(BDRVBlkdebugState *s, const char *filename,
     if (filename) {
         f = fopen(filename, "r");
         if (f == NULL) {
-            error_setg_errno(errp, errno, "Could not read blkdebug config file");
+            error_setg_file_open(errp, errno, filename);
             return -errno;
         }
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 12:15:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 12:15:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168997.1494950 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2a-0003fZ-Ke; Fri, 21 Nov 2025 12:15:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168997.1494950; Fri, 21 Nov 2025 12:15:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2a-0003et-3L; Fri, 21 Nov 2025 12:15:04 +0000
Received: by outflank-mailman (input) for mailman id 1168997;
 Fri, 21 Nov 2025 12:15: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=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMQ2X-000110-TE
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 12:15:01 +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 b1340987-c6d3-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 13:14:57 +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-115-5hh7LVJnPmWjjIuQzCm6LQ-1; Fri,
 21 Nov 2025 07:14:50 -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-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 439A7195605B; Fri, 21 Nov 2025 12:14:46 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.3])
 by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id C40981940E82; Fri, 21 Nov 2025 12:14:45 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id D147221EC346; Fri, 21 Nov 2025 13:14:38 +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: b1340987-c6d3-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763727296;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=tDP8FM9QFpX4om5r6DeJVNNuFVvQYDlKs2mHtRlqAfQ=;
	b=dtHVcEmuUl2gmyXcEaTijqU41XPO1OV4coetW+nLENpqAcJxEXE8jYJzxV2uyPhINwteFr
	LkgTdFzuP3W8vWfAkIcd4RcRDhddHbe0JqF0ZpkQYrP27xuOeVoNMVc0836txHC2cR/uJz
	B7Er7HpCcVGbmblPa3t3d8plCtQohl8=
X-MC-Unique: 5hh7LVJnPmWjjIuQzCm6LQ-1
X-Mimecast-MFC-AGG-ID: 5hh7LVJnPmWjjIuQzCm6LQ_1763727286
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	zhenwei.pi@linux.dev,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH v2 14/15] qga/commands-win32: Use error_setg_win32() for better error messages
Date: Fri, 21 Nov 2025 13:14:37 +0100
Message-ID: <20251121121438.1249498-15-armbru@redhat.com>
In-Reply-To: <20251121121438.1249498-1-armbru@redhat.com>
References: <20251121121438.1249498-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17

We include numeric GetLastError() codes in error messages in a few
places, like this:

    error_setg(errp, "GRIPE: %d", (int)GetLastError());

Show text instead, like this:

    error_setg_win32(errp, GetLastError(), "GRIPE");

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 qga/commands-win32.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/qga/commands-win32.c b/qga/commands-win32.c
index acc2c11589..0fd0c966e4 100644
--- a/qga/commands-win32.c
+++ b/qga/commands-win32.c
@@ -1798,8 +1798,8 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp)
     tf.dwHighDateTime = (DWORD) (time >> 32);
 
     if (!FileTimeToSystemTime(&tf, &ts)) {
-        error_setg(errp, "Failed to convert system time %d",
-                   (int)GetLastError());
+        error_setg_win32(errp, GetLastError(),
+                         "Failed to convert system time");
         return;
     }
 
@@ -1810,7 +1810,8 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp)
     }
 
     if (!SetSystemTime(&ts)) {
-        error_setg(errp, "Failed to set time to guest: %d", (int)GetLastError());
+        error_setg_win32(errp, GetLastError(),
+                         "Failed to set time to guest");
         return;
     }
 }
@@ -1834,13 +1835,12 @@ GuestLogicalProcessorList *qmp_guest_get_vcpus(Error **errp)
         (length > sizeof(SYSTEM_LOGICAL_PROCESSOR_INFORMATION))) {
         ptr = pslpi = g_malloc0(length);
         if (GetLogicalProcessorInformation(pslpi, &length) == FALSE) {
-            error_setg(&local_err, "Failed to get processor information: %d",
-                       (int)GetLastError());
+            error_setg_win32(&local_err, GetLastError(),
+                             "Failed to get processor information");
         }
     } else {
-        error_setg(&local_err,
-                   "Failed to get processor information buffer length: %d",
-                   (int)GetLastError());
+        error_setg_win32(&local_err, GetLastError(),
+                         "Failed to get processor information buffer length");
     }
 
     while ((local_err == NULL) && (length > 0)) {
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 12:15:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 12:15:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168994.1494921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2X-0002tV-G1; Fri, 21 Nov 2025 12:15:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168994.1494921; Fri, 21 Nov 2025 12: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 1vMQ2X-0002rZ-6M; Fri, 21 Nov 2025 12:15:01 +0000
Received: by outflank-mailman (input) for mailman id 1168994;
 Fri, 21 Nov 2025 12: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=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMQ2U-000110-Sn
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 12:14:58 +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 b0168ac4-c6d3-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 13:14:55 +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-115-eLZdZJzFPoW3xPWJ2avQ4w-1; Fri,
 21 Nov 2025 07:14:50 -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 A0933180035D; Fri, 21 Nov 2025 12:14:46 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.3])
 by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id BED60180049F; Fri, 21 Nov 2025 12:14:45 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id B9DF921E65DF; Fri, 21 Nov 2025 13:14:38 +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: b0168ac4-c6d3-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763727294;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=A/wET2xnW++xiuiEha7OnYVBDrnk0DV+OPEHwiPI2RU=;
	b=gnRE6Ly1/iTIK7LT2egJXruwrRmX7ecDOCvvEY0SHIO6S1PFfyIojmean6mUuDez/H9jp7
	fEw4y5lCL/s7ujsJWsSX8jdBgoL4QOn8OHdBGzHe4/oEh1bCIXKhhLyrR9kOgar3e/JyNV
	MJwQmzSWjZQyid/uA2GGmjz67YozYto=
X-MC-Unique: eLZdZJzFPoW3xPWJ2avQ4w-1
X-Mimecast-MFC-AGG-ID: eLZdZJzFPoW3xPWJ2avQ4w_1763727286
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	zhenwei.pi@linux.dev,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH v2 10/15] error: Use error_setg_file_open() for simplicity and consistency
Date: Fri, 21 Nov 2025 13:14:33 +0100
Message-ID: <20251121121438.1249498-11-armbru@redhat.com>
In-Reply-To: <20251121121438.1249498-1-armbru@redhat.com>
References: <20251121121438.1249498-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111

Replace

    error_setg_errno(errp, errno, MSG, FNAME);

by

    error_setg_file_open(errp, errno, FNAME);

where MSG is "Could not open '%s'" or similar.

Also replace equivalent uses of error_setg().

A few messages lose prefixes ("net dump: ", "SEV: ", __func__ ": ").
We could put them back with error_prepend().  Not worth the bother.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org>
---
 hw/9pfs/9p-local.c        | 2 +-
 hw/acpi/core.c            | 2 +-
 hw/core/loader.c          | 2 +-
 hw/pci-host/xen_igd_pt.c  | 2 +-
 monitor/hmp-cmds-target.c | 2 +-
 net/dump.c                | 2 +-
 net/tap-bsd.c             | 6 +++---
 net/tap-linux.c           | 2 +-
 target/i386/sev.c         | 6 ++----
 util/vfio-helpers.c       | 5 ++---
 10 files changed, 14 insertions(+), 17 deletions(-)

diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c
index 31e216227c..376b377698 100644
--- a/hw/9pfs/9p-local.c
+++ b/hw/9pfs/9p-local.c
@@ -1456,7 +1456,7 @@ static int local_init(FsContext *ctx, Error **errp)
 
     data->mountfd = open(ctx->fs_root, O_DIRECTORY | O_RDONLY);
     if (data->mountfd == -1) {
-        error_setg_errno(errp, errno, "failed to open '%s'", ctx->fs_root);
+        error_setg_file_open(errp, errno, ctx->fs_root);
         goto err;
     }
 
diff --git a/hw/acpi/core.c b/hw/acpi/core.c
index ff16582803..d2677332af 100644
--- a/hw/acpi/core.c
+++ b/hw/acpi/core.c
@@ -277,7 +277,7 @@ void acpi_table_add(const QemuOpts *opts, Error **errp)
         int fd = open(*cur, O_RDONLY | O_BINARY);
 
         if (fd < 0) {
-            error_setg(errp, "can't open file %s: %s", *cur, strerror(errno));
+            error_setg_file_open(errp, errno, *cur);
             goto out;
         }
 
diff --git a/hw/core/loader.c b/hw/core/loader.c
index 590c5b02aa..b56e5eb2f5 100644
--- a/hw/core/loader.c
+++ b/hw/core/loader.c
@@ -379,7 +379,7 @@ void load_elf_hdr(const char *filename, void *hdr, bool *is64, Error **errp)
 
     fd = open(filename, O_RDONLY | O_BINARY);
     if (fd < 0) {
-        error_setg_errno(errp, errno, "Failed to open file: %s", filename);
+        error_setg_file_open(errp, errno, filename);
         return;
     }
     if (read(fd, hdr, EI_NIDENT) != EI_NIDENT) {
diff --git a/hw/pci-host/xen_igd_pt.c b/hw/pci-host/xen_igd_pt.c
index 5dd17ef236..f6016f2cd5 100644
--- a/hw/pci-host/xen_igd_pt.c
+++ b/hw/pci-host/xen_igd_pt.c
@@ -55,7 +55,7 @@ static void host_pci_config_read(int pos, int len, uint32_t *val, Error **errp)
 
     config_fd = open(path, O_RDWR);
     if (config_fd < 0) {
-        error_setg_errno(errp, errno, "Failed to open: %s", path);
+        error_setg_file_open(errp, errno, path);
         goto out;
     }
 
diff --git a/monitor/hmp-cmds-target.c b/monitor/hmp-cmds-target.c
index e982061146..ad4ed2167d 100644
--- a/monitor/hmp-cmds-target.c
+++ b/monitor/hmp-cmds-target.c
@@ -331,7 +331,7 @@ static uint64_t vtop(void *ptr, Error **errp)
 
     fd = open("/proc/self/pagemap", O_RDONLY);
     if (fd == -1) {
-        error_setg_errno(errp, errno, "Cannot open /proc/self/pagemap");
+        error_setg_file_open(errp, errno, "/proc/self/pagemap");
         return -1;
     }
 
diff --git a/net/dump.c b/net/dump.c
index 581234b775..0c39f09892 100644
--- a/net/dump.c
+++ b/net/dump.c
@@ -111,7 +111,7 @@ static int net_dump_state_init(DumpState *s, const char *filename,
 
     fd = open(filename, O_CREAT | O_TRUNC | O_WRONLY | O_BINARY, 0644);
     if (fd < 0) {
-        error_setg_errno(errp, errno, "net dump: can't open %s", filename);
+        error_setg_file_open(errp, errno, filename);
         return -1;
     }
 
diff --git a/net/tap-bsd.c b/net/tap-bsd.c
index bbf84d1828..3fd300d46f 100644
--- a/net/tap-bsd.c
+++ b/net/tap-bsd.c
@@ -68,7 +68,7 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr,
         }
     }
     if (fd < 0) {
-        error_setg_errno(errp, errno, "could not open %s", dname);
+        error_setg_file_open(errp, errno, dname);
         return -1;
     }
 
@@ -118,7 +118,7 @@ static int tap_open_clone(char *ifname, int ifname_size, Error **errp)
 
     fd = RETRY_ON_EINTR(open(PATH_NET_TAP, O_RDWR));
     if (fd < 0) {
-        error_setg_errno(errp, errno, "could not open %s", PATH_NET_TAP);
+        error_setg_file_open(errp, errno, PATH_NET_TAP);
         return -1;
     }
 
@@ -166,7 +166,7 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr,
         snprintf(dname, sizeof dname, "/dev/%s", ifname);
         fd = RETRY_ON_EINTR(open(dname, O_RDWR));
         if (fd < 0 && errno != ENOENT) {
-            error_setg_errno(errp, errno, "could not open %s", dname);
+            error_setg_file_open(errp, errno, dname);
             return -1;
         }
     }
diff --git a/net/tap-linux.c b/net/tap-linux.c
index 2a90b58467..909c4f1fcf 100644
--- a/net/tap-linux.c
+++ b/net/tap-linux.c
@@ -57,7 +57,7 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr,
     if (fd < 0) {
         fd = RETRY_ON_EINTR(open(PATH_NET_TUN, O_RDWR));
         if (fd < 0) {
-            error_setg_errno(errp, errno, "could not open %s", PATH_NET_TUN);
+            error_setg_file_open(errp, errno, PATH_NET_TUN);
             return -1;
         }
     }
diff --git a/target/i386/sev.c b/target/i386/sev.c
index fd2dada013..8660ecd9e4 100644
--- a/target/i386/sev.c
+++ b/target/i386/sev.c
@@ -891,8 +891,7 @@ static SevCapability *sev_get_capabilities(Error **errp)
 
     fd = open(sev_device, O_RDWR);
     if (fd < 0) {
-        error_setg_errno(errp, errno, "SEV: Failed to open %s",
-                         sev_device);
+        error_setg_file_open(errp, errno, sev_device);
         g_free(sev_device);
         return NULL;
     }
@@ -1819,8 +1818,7 @@ static int sev_common_kvm_init(ConfidentialGuestSupport *cgs, Error **errp)
     devname = object_property_get_str(OBJECT(sev_common), "sev-device", NULL);
     sev_common->sev_fd = open(devname, O_RDWR);
     if (sev_common->sev_fd < 0) {
-        error_setg(errp, "%s: Failed to open %s '%s'", __func__,
-                   devname, strerror(errno));
+        error_setg_file_open(errp, errno, devname);
         g_free(devname);
         return -1;
     }
diff --git a/util/vfio-helpers.c b/util/vfio-helpers.c
index fdff042ab4..8b1b2e2f05 100644
--- a/util/vfio-helpers.c
+++ b/util/vfio-helpers.c
@@ -309,7 +309,7 @@ static int qemu_vfio_init_pci(QEMUVFIOState *s, const char *device,
     s->container = open("/dev/vfio/vfio", O_RDWR);
 
     if (s->container == -1) {
-        error_setg_errno(errp, errno, "Failed to open /dev/vfio/vfio");
+        error_setg_file_open(errp, errno, "/dev/vfio/vfio");
         return -errno;
     }
     if (ioctl(s->container, VFIO_GET_API_VERSION) != VFIO_API_VERSION) {
@@ -333,8 +333,7 @@ static int qemu_vfio_init_pci(QEMUVFIOState *s, const char *device,
 
     s->group = open(group_file, O_RDWR);
     if (s->group == -1) {
-        error_setg_errno(errp, errno, "Failed to open VFIO group file: %s",
-                         group_file);
+        error_setg_file_open(errp, errno, group_file);
         g_free(group_file);
         ret = -errno;
         goto fail_container;
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 12:15:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 12:15:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168991.1494892 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2V-00029f-68; Fri, 21 Nov 2025 12:14:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168991.1494892; Fri, 21 Nov 2025 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 1vMQ2U-00028Q-SB; Fri, 21 Nov 2025 12:14:58 +0000
Received: by outflank-mailman (input) for mailman id 1168991;
 Fri, 21 Nov 2025 12:14: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=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMQ2S-000110-SW
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 12:14:56 +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 b01e69c9-c6d3-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 13:14:55 +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-402-A-3AMTmXM8abc48Y8X2Neg-1; Fri,
 21 Nov 2025 07:14:50 -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 B7C701801233; Fri, 21 Nov 2025 12:14:46 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.3])
 by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id CA2DF1940E88; Fri, 21 Nov 2025 12:14:45 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id BFCBD21EC342; Fri, 21 Nov 2025 13:14:38 +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: b01e69c9-c6d3-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763727294;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=ECBnpLLCj16fpj21fI+h9tBul9riCpuU3pZvsycdoc0=;
	b=exsoh4z6R6yPlzgIs2BSEuPTxUiwmBhRHF+mRgNRK8H+b6MYo+wsc88PVzXQJpWzvvpQhA
	G4QztL7NT/k/13Sd6HCfudpqTw197UpUMhEHs97TH12Ffam7liQ87yUwE3LFBycvgQ3ACW
	RbA4PXA1OdY4xCV5sEylcUeoLTjwPy8=
X-MC-Unique: A-3AMTmXM8abc48Y8X2Neg-1
X-Mimecast-MFC-AGG-ID: A-3AMTmXM8abc48Y8X2Neg_1763727286
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	zhenwei.pi@linux.dev,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH v2 11/15] net/slirp: Improve file open error message
Date: Fri, 21 Nov 2025 13:14:34 +0100
Message-ID: <20251121121438.1249498-12-armbru@redhat.com>
In-Reply-To: <20251121121438.1249498-1-armbru@redhat.com>
References: <20251121121438.1249498-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17

This error reports failure to create a temporary file, and
error_setg_file_open() would probably be too terse, so merely switch
to error_setg_errno() to add errno information.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 net/slirp.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/net/slirp.c b/net/slirp.c
index 120eef6122..5996fec512 100644
--- a/net/slirp.c
+++ b/net/slirp.c
@@ -1034,8 +1034,10 @@ static int slirp_smb(SlirpState* s, const char *exported_dir,
 
     f = fopen(smb_conf, "w");
     if (!f) {
+        int eno = errno;
+
         slirp_smb_cleanup(s);
-        error_setg(errp,
+        error_setg_errno(errp, eno,
                    "Could not create samba server configuration file '%s'",
                     smb_conf);
         g_free(smb_conf);
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 12:15:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 12:15:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168998.1494956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2b-0003mh-8K; Fri, 21 Nov 2025 12:15:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168998.1494956; Fri, 21 Nov 2025 12:15:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2a-0003jg-Ov; Fri, 21 Nov 2025 12:15:04 +0000
Received: by outflank-mailman (input) for mailman id 1168998;
 Fri, 21 Nov 2025 12:15:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMQ2Y-000110-TQ
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 12:15:02 +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 b1370bcc-c6d3-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 13:14:57 +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-595-u3VMsM-2Mdm2RBLzs-9Q7g-1; Fri,
 21 Nov 2025 07:14:50 -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 8413619560A7; Fri, 21 Nov 2025 12:14:46 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.3])
 by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id D8C2F1940E8C; Fri, 21 Nov 2025 12:14:45 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id AE01A21E65DA; Fri, 21 Nov 2025 13:14:38 +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: b1370bcc-c6d3-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763727296;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=i91/aRc2V0WW39WS58hSriJ7oXz4L2KTH569rGq9FSU=;
	b=F/BGpC398Rwn1t0+Xhjdb97rTaznkjdj9tWOTaZZOUuaWiOkYz7MJEeMQW7eXD9qjRlvaD
	aLGiULecd+E1ZpsnQh+9luKRHhuGT2mShju7uGpSNZuiAmdS9+8M+v2dwTHUr5kXGwlwq+
	EwdDa3ucHFDYu4u9Gu1W5uAm9Qsd3og=
X-MC-Unique: u3VMsM-2Mdm2RBLzs-9Q7g-1
X-Mimecast-MFC-AGG-ID: u3VMsM-2Mdm2RBLzs-9Q7g_1763727286
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	zhenwei.pi@linux.dev,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH v2 08/15] net/tap: Use error_setg_file_open() for a better error message
Date: Fri, 21 Nov 2025 13:14:31 +0100
Message-ID: <20251121121438.1249498-9-armbru@redhat.com>
In-Reply-To: <20251121121438.1249498-1-armbru@redhat.com>
References: <20251121121438.1249498-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17

The error message changes from

    tap: open vhost char device failed

to

    Could not open '/dev/vhost-net': REASON

I think the exact file name is more useful to know than the file's
purpose.

We could put back the "tap: " prefix with error_prepend().  Not
worth the bother.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 net/tap.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/net/tap.c b/net/tap.c
index abe3b2d036..bfba3fd7a7 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -747,8 +747,7 @@ static void net_init_tap_one(const NetdevTapOptions *tap, NetClientState *peer,
         } else {
             vhostfd = open("/dev/vhost-net", O_RDWR);
             if (vhostfd < 0) {
-                error_setg_errno(errp, errno,
-                                 "tap: open vhost char device failed");
+                error_setg_file_open(errp, errno, "/dev/vhost-net");
                 goto failed;
             }
             if (!qemu_set_blocking(vhostfd, false, errp)) {
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 12:15:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 12:15:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1168999.1494964 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ2d-00049P-01; Fri, 21 Nov 2025 12:15:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1168999.1494964; Fri, 21 Nov 2025 12:15: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 1vMQ2c-00045Y-Mn; Fri, 21 Nov 2025 12:15:06 +0000
Received: by outflank-mailman (input) for mailman id 1168999;
 Fri, 21 Nov 2025 12:15: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=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMQ2Z-000110-Tc
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 12:15:03 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b149dc15-c6d3-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 13:14:57 +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-536-KEwxzFw_O_aBSQQYGuDLyQ-1; Fri,
 21 Nov 2025 07:14:50 -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 C1525195609D; Fri, 21 Nov 2025 12:14:46 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.3])
 by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id CDC6A18004D8; Fri, 21 Nov 2025 12:14:45 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id C5B6E21E676A; Fri, 21 Nov 2025 13:14:38 +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: b149dc15-c6d3-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763727296;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=PVQXGNJdcClwDB+2E7ow8Z/C597X2bSbqnOJ1Z7jY2c=;
	b=OKaPwC7W9p+RJO3bbOhb1UhQlXWpNMaGYLocKjUa5QkEAxuUzv2zZCUX3olBhzdmiZGnv9
	Z1qL6/EY4FJxL3DxUG2+5oImKuNQ7dqKC1sj37uJoJLY3g4oXkMENaRBqKKk82xwsHX/J/
	BVzXPzYz8W3jKHQjvlQcMlIpYo7vDjU=
X-MC-Unique: KEwxzFw_O_aBSQQYGuDLyQ-1
X-Mimecast-MFC-AGG-ID: KEwxzFw_O_aBSQQYGuDLyQ_1763727286
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	zhenwei.pi@linux.dev,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH v2 12/15] error: Use error_setg_errno() to improve error messages
Date: Fri, 21 Nov 2025 13:14:35 +0100
Message-ID: <20251121121438.1249498-13-armbru@redhat.com>
In-Reply-To: <20251121121438.1249498-1-armbru@redhat.com>
References: <20251121121438.1249498-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93

A few error messages show numeric errno codes.  Use error_setg_errno()
to show human-readable text instead.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 backends/cryptodev-lkcf.c   |  2 +-
 hw/ppc/spapr.c              |  6 +++---
 hw/vfio/migration-multifd.c |  5 +++--
 migration/rdma.c            |  3 +--
 net/l2tpv3.c                |  6 ++----
 target/riscv/kvm/kvm-cpu.c  | 11 ++++++-----
 6 files changed, 16 insertions(+), 17 deletions(-)

diff --git a/backends/cryptodev-lkcf.c b/backends/cryptodev-lkcf.c
index 97a8a8812c..40c7bd3c5a 100644
--- a/backends/cryptodev-lkcf.c
+++ b/backends/cryptodev-lkcf.c
@@ -218,7 +218,7 @@ static void cryptodev_lkcf_init(CryptoDevBackend *backend, Error **errp)
     }
     lkcf->eventfd = eventfd(0, 0);
     if (lkcf->eventfd < 0) {
-        error_setg(errp, "Failed to create eventfd: %d", errno);
+        error_setg_errno(errp, errno, "Failed to create eventfd");
         return;
     }
 
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 99b843ba2f..cdab822c88 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -2699,9 +2699,9 @@ static void spapr_set_vsmt_mode(SpaprMachineState *spapr, Error **errp)
         ret = kvmppc_set_smt_threads(spapr->vsmt);
         if (ret) {
             /* Looks like KVM isn't able to change VSMT mode */
-            error_setg(&local_err,
-                       "Failed to set KVM's VSMT mode to %d (errno %d)",
-                       spapr->vsmt, ret);
+            error_setg_errno(&local_err, -ret,
+                             "Failed to set KVM's VSMT mode to %d",
+                             spapr->vsmt);
             /* We can live with that if the default one is big enough
              * for the number of threads, and a submultiple of the one
              * we want.  In this case we'll waste some vcpu ids, but
diff --git a/hw/vfio/migration-multifd.c b/hw/vfio/migration-multifd.c
index e4785031a7..4a855f4e12 100644
--- a/hw/vfio/migration-multifd.c
+++ b/hw/vfio/migration-multifd.c
@@ -725,8 +725,9 @@ vfio_multifd_save_complete_precopy_thread(SaveCompletePrecopyThreadData *d,
         data_size = read(migration->data_fd, &packet->data,
                          migration->data_buffer_size);
         if (data_size < 0) {
-            error_setg(errp, "%s: reading state buffer %" PRIu32 " failed: %d",
-                       vbasedev->name, idx, errno);
+            error_setg_errno(errp, errno,
+                             "%s: reading state buffer %" PRIu32 " failed",
+                             vbasedev->name, idx);
             goto thread_exit;
         } else if (data_size == 0) {
             break;
diff --git a/migration/rdma.c b/migration/rdma.c
index 337b415889..9e301cf917 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -2349,8 +2349,7 @@ static int qemu_get_cm_event_timeout(RDMAContext *rdma,
         error_setg(errp, "RDMA ERROR: poll cm event timeout");
         return -1;
     } else if (ret < 0) {
-        error_setg(errp, "RDMA ERROR: failed to poll cm event, errno=%i",
-                   errno);
+        error_setg_errno(errp, errno, "RDMA ERROR: failed to poll cm event");
         return -1;
     } else if (poll_fd.revents & POLLIN) {
         if (rdma_get_cm_event(rdma->channel, cm_event) < 0) {
diff --git a/net/l2tpv3.c b/net/l2tpv3.c
index cdfc641aa6..3044fa4608 100644
--- a/net/l2tpv3.c
+++ b/net/l2tpv3.c
@@ -639,13 +639,11 @@ int net_init_l2tpv3(const Netdev *netdev,
     }
     fd = socket(result->ai_family, result->ai_socktype, result->ai_protocol);
     if (fd == -1) {
-        fd = -errno;
-        error_setg(errp, "socket creation failed, errno = %d",
-                   -fd);
+        error_setg_errno(errp, errno, "socket creation failed");
         goto outerr;
     }
     if (bind(fd, (struct sockaddr *) result->ai_addr, result->ai_addrlen)) {
-        error_setg(errp, "could not bind socket err=%i", errno);
+        error_setg_errno(errp, errno, "could not bind socket");
         goto outerr;
     }
     if (!qemu_set_blocking(fd, false, errp)) {
diff --git a/target/riscv/kvm/kvm-cpu.c b/target/riscv/kvm/kvm-cpu.c
index 47e672c7aa..c73f1cd5cf 100644
--- a/target/riscv/kvm/kvm-cpu.c
+++ b/target/riscv/kvm/kvm-cpu.c
@@ -1996,8 +1996,8 @@ static bool kvm_cpu_realize(CPUState *cs, Error **errp)
     if (riscv_has_ext(&cpu->env, RVV)) {
         ret = prctl(PR_RISCV_V_SET_CONTROL, PR_RISCV_V_VSTATE_CTRL_ON);
         if (ret) {
-            error_setg(errp, "Error in prctl PR_RISCV_V_SET_CONTROL, code: %s",
-                       strerrorname_np(errno));
+            error_setg_errno(errp, errno,
+                             "Error in prctl PR_RISCV_V_SET_CONTROL");
             return false;
         }
     }
@@ -2032,7 +2032,8 @@ void riscv_kvm_cpu_finalize_features(RISCVCPU *cpu, Error **errp)
         reg.addr = (uint64_t)&val;
         ret = ioctl(kvmcpu.cpufd, KVM_GET_ONE_REG, &reg);
         if (ret != 0) {
-            error_setg(errp, "Unable to read cbom_blocksize, error %d", errno);
+            error_setg(errp, errno,
+                       "Unable to read cbom_blocksize");
             return;
         }
 
@@ -2051,7 +2052,7 @@ void riscv_kvm_cpu_finalize_features(RISCVCPU *cpu, Error **errp)
         reg.addr = (uint64_t)&val;
         ret = ioctl(kvmcpu.cpufd, KVM_GET_ONE_REG, &reg);
         if (ret != 0) {
-            error_setg(errp, "Unable to read cboz_blocksize, error %d", errno);
+            error_setg_errno(errp, errno, "Unable to read cboz_blocksize");
             return;
         }
 
@@ -2073,7 +2074,7 @@ void riscv_kvm_cpu_finalize_features(RISCVCPU *cpu, Error **errp)
         reg.addr = (uint64_t)&val;
         ret = ioctl(kvmcpu.cpufd, KVM_GET_ONE_REG, &reg);
         if (ret != 0) {
-            error_setg(errp, "Unable to read vlenb register, error %d", errno);
+            error_setg_errno(errp, errno, "Unable to read vlenb register");
             return;
         }
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 12:22:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 12:22:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1169122.1494987 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMQ9r-0001gE-18; Fri, 21 Nov 2025 12:22:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1169122.1494987; Fri, 21 Nov 2025 12:22: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 1vMQ9q-0001g7-Un; Fri, 21 Nov 2025 12:22:34 +0000
Received: by outflank-mailman (input) for mailman id 1169122;
 Fri, 21 Nov 2025 12:22:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=VODq=55=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMQ2a-000110-Ti
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 12:15:04 +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 b185bbdc-c6d3-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 13:14:57 +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-544-9KVhRz1PNjG4B1qvQhE2_Q-1; Fri,
 21 Nov 2025 07:14:53 -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 F29621956061; Fri, 21 Nov 2025 12:14:48 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.3])
 by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id A221C1800451; Fri, 21 Nov 2025 12:14:48 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id D6F9B21EC348; Fri, 21 Nov 2025 13:14:38 +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: b185bbdc-c6d3-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763727296;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=oeDPJTEK/mbRoQ9G1reQyHyjo6pRRwMOwFAV76+b8w0=;
	b=Spl+zlBQgLZqwMCrUqPceqwgxxnt/Z267qV7KDpVeXPbhgezAsabgg33ydhrPrm/0sXwT2
	P9hND5u2TVUJPwoe2eXywkxeJibM29x5d0/0T6DA+T+hOa4JYfp1Bq7hvcuUjZcCVp7i71
	HqD1qdYNMMzCo4QCIFZUrRC+igcueoM=
X-MC-Unique: 9KVhRz1PNjG4B1qvQhE2_Q-1
X-Mimecast-MFC-AGG-ID: 9KVhRz1PNjG4B1qvQhE2_Q_1763727289
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com,
	zhenwei.pi@linux.dev,
	alistair.francis@wdc.com,
	stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com,
	hreitz@redhat.com,
	sw@weilnetz.de,
	qemu_oss@crudebyte.com,
	groug@kaod.org,
	mst@redhat.com,
	imammedo@redhat.com,
	anisinha@redhat.com,
	kraxel@redhat.com,
	shentey@gmail.com,
	npiggin@gmail.com,
	harshpb@linux.ibm.com,
	sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	edgar.iglesias@gmail.com,
	elena.ufimtseva@oracle.com,
	jag.raman@oracle.com,
	sgarzare@redhat.com,
	pbonzini@redhat.com,
	fam@euphon.net,
	philmd@linaro.org,
	alex@shazbot.org,
	clg@redhat.com,
	peterx@redhat.com,
	farosas@suse.de,
	lizhijian@fujitsu.com,
	dave@treblig.org,
	jasowang@redhat.com,
	samuel.thibault@ens-lyon.org,
	michael.roth@amd.com,
	kkostiuk@redhat.com,
	zhao1.liu@intel.com,
	mtosatti@redhat.com,
	rathc@linux.ibm.com,
	palmer@dabbelt.com,
	liwei1518@gmail.com,
	dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com,
	marcandre.lureau@redhat.com,
	qemu-block@nongnu.org,
	qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: [PATCH v2 15/15] block/file-win32: Improve an error message
Date: Fri, 21 Nov 2025 13:14:38 +0100
Message-ID: <20251121121438.1249498-16-armbru@redhat.com>
In-Reply-To: <20251121121438.1249498-1-armbru@redhat.com>
References: <20251121121438.1249498-1-armbru@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93

Two out of three calls of CreateFile() use error_setg_win32() to
report errors.  The third uses error_setg_errno(), mapping
ERROR_ACCESS_DENIED to EACCES, and everything else to EINVAL, throwing
away detail.  Switch it to error_setg_win32().

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 block/file-win32.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/block/file-win32.c b/block/file-win32.c
index 0efb609e1d..78961837c8 100644
--- a/block/file-win32.c
+++ b/block/file-win32.c
@@ -904,7 +904,7 @@ static int hdev_open(BlockDriverState *bs, QDict *options, int flags,
         } else {
             ret = -EINVAL;
         }
-        error_setg_errno(errp, -ret, "Could not open device");
+        error_setg_win32(errp, err, "Could not open device");
         goto done;
     }
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 13:23:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 13:23:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1169203.1495017 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMR78-0006ll-OM; Fri, 21 Nov 2025 13:23:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1169203.1495017; Fri, 21 Nov 2025 13:23:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMR78-0006lc-Kq; Fri, 21 Nov 2025 13:23:50 +0000
Received: by outflank-mailman (input) for mailman id 1169203;
 Fri, 21 Nov 2025 13:23: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=wmUi=55=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vMR76-0006GA-Uj
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 13:23:48 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de
 [2a07:de40:b251:101:10:150:64:2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4f44fd28-c6dd-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 14:23:47 +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-out2.suse.de (Postfix) with ESMTPS id 74F6D20FF4;
 Fri, 21 Nov 2025 13:23:46 +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 4BC453EA61;
 Fri, 21 Nov 2025 13:23:46 +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 UaHHEOJnIGmrVQAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 21 Nov 2025 13:23: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: 4f44fd28-c6dd-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763731426; 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=CkRKojTRFnPJl1IrQaG507FF4g4A7BM7UpW5MiCRfuo=;
	b=cqbxdF/sDjzBGE+do8eQtg0T0biRoNDx+EkW5K9m5S1AF/oung6veRtkNSIefBR6Yya/aa
	ASYuYkgWkdp+Z/rjNhqRJY2/qcOo0EA2TtsJsa07wsaYLXzskvMe13cwxiKZAl/JZYRZor
	kQpZvpKs8lcpGmxeHk3h7g7fZ8Nz4rc=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b="cqbxdF/s"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763731426; 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=CkRKojTRFnPJl1IrQaG507FF4g4A7BM7UpW5MiCRfuo=;
	b=cqbxdF/sDjzBGE+do8eQtg0T0biRoNDx+EkW5K9m5S1AF/oung6veRtkNSIefBR6Yya/aa
	ASYuYkgWkdp+Z/rjNhqRJY2/qcOo0EA2TtsJsa07wsaYLXzskvMe13cwxiKZAl/JZYRZor
	kQpZvpKs8lcpGmxeHk3h7g7fZ8Nz4rc=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v3 2/4] docs: replace @xxx@ markers at build time
Date: Fri, 21 Nov 2025 14:23:30 +0100
Message-ID: <20251121132332.23514-3-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251121132332.23514-1-jgross@suse.com>
References: <20251121132332.23514-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Queue-Id: 74F6D20FF4
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	ARC_NA(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCVD_COUNT_TWO(0.00)[2];
	MIME_TRACE(0.00)[0:+];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	TO_DN_SOME(0.00)[];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	FROM_HAS_DN(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:mid,suse.com:dkim];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCPT_COUNT_THREE(0.00)[3];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Action: no action
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level: 

Use the apply-build-vars make macro to replace the @xxx@ markers in
*.in files only at build time.

This allows to change the affected document files without having to
run "configure" for making the change effective.

While at it add the generated files to the distclean make target.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- don't rename source files
V3:
- rename IN_FILES to IN_TARGETS (Jan Beulich)
- add only one file to IN_TARGETS per line (Andrew Cooper)
- use $(RM) instead of rm -f (Andrew Cooper)
---
 docs/Makefile     | 11 ++++++++++-
 docs/configure    |  7 +------
 docs/configure.ac |  9 +--------
 3 files changed, 12 insertions(+), 15 deletions(-)

diff --git a/docs/Makefile b/docs/Makefile
index 37776d303c..8e68300e3b 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -8,8 +8,14 @@ DATE		:= $(call date,"+%Y-%m-%d")
 DOC_ARCHES      := arm ppc riscv x86_32 x86_64
 MAN_SECTIONS    := 1 5 7 8
 
+IN_TARGETS := man/xl-disk-configuration.5.pod
+IN_TARGETS += man/xl-network-configuration.5.pod
+IN_TARGETS += man/xl.1.pod
+IN_TARGETS += man/xl.cfg.5.pod
+IN_TARGETS += man/xl.conf.5.pod
+
 # Documentation sources to build
-MAN-SRC-y := $(sort $(basename $(wildcard man/*.pod man/*.pandoc)))
+MAN-SRC-y := $(sort $(basename $(wildcard man/*.pod man/*.pandoc) $(IN_TARGETS)))
 
 RST-SRC-y := $(sort $(filter-out %index.rst,$(shell find * -type f -name '*.rst' -print)))
 
@@ -77,11 +83,14 @@ clean: clean-man-pages
 distclean: clean
 	rm -rf $(XEN_ROOT)/config/Docs.mk config.log config.status config.cache \
 		autom4te.cache
+	$(RM) $(IN_TARGETS)
 
 # Top level install targets
 
 .PHONY: man-pages install-man-pages clean-man-pages uninstall-man-pages
 
+$(foreach file,$(IN_TARGETS),$(eval $(call apply-build-vars,$(file))))
+
 # Metarules for generating manpages.  Run with $(1) substitued for section
 define GENERATE_MANPAGE_RULES
 
diff --git a/docs/configure b/docs/configure
index 98dda3cd0f..8871914dcb 100755
--- a/docs/configure
+++ b/docs/configure
@@ -1794,7 +1794,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
-ac_config_files="$ac_config_files ../config/Docs.mk man/xl.cfg.5.pod man/xl.1.pod man/xl-disk-configuration.5.pod man/xl-network-configuration.5.pod man/xl.conf.5.pod"
+ac_config_files="$ac_config_files ../config/Docs.mk"
 
 
 
@@ -3063,11 +3063,6 @@ for ac_config_target in $ac_config_targets
 do
   case $ac_config_target in
     "../config/Docs.mk") CONFIG_FILES="$CONFIG_FILES ../config/Docs.mk" ;;
-    "man/xl.cfg.5.pod") CONFIG_FILES="$CONFIG_FILES man/xl.cfg.5.pod" ;;
-    "man/xl.1.pod") CONFIG_FILES="$CONFIG_FILES man/xl.1.pod" ;;
-    "man/xl-disk-configuration.5.pod") CONFIG_FILES="$CONFIG_FILES man/xl-disk-configuration.5.pod" ;;
-    "man/xl-network-configuration.5.pod") CONFIG_FILES="$CONFIG_FILES man/xl-network-configuration.5.pod" ;;
-    "man/xl.conf.5.pod") CONFIG_FILES="$CONFIG_FILES man/xl.conf.5.pod" ;;
 
   *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
diff --git a/docs/configure.ac b/docs/configure.ac
index c2e5edd3b3..43dc516056 100644
--- a/docs/configure.ac
+++ b/docs/configure.ac
@@ -5,14 +5,7 @@ AC_PREREQ([2.67])
 AC_INIT([Xen Hypervisor Documentation], m4_esyscmd([../version.sh ../xen/Makefile]),
     [xen-devel@lists.xen.org], [xen], [https://www.xen.org/])
 AC_CONFIG_SRCDIR([misc/xen-command-line.pandoc])
-AC_CONFIG_FILES([
-../config/Docs.mk
-man/xl.cfg.5.pod
-man/xl.1.pod
-man/xl-disk-configuration.5.pod
-man/xl-network-configuration.5.pod
-man/xl.conf.5.pod
-])
+AC_CONFIG_FILES([../config/Docs.mk])
 AC_CONFIG_AUX_DIR([../])
 
 # M4 Macro includes
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 13:23:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 13:23:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1169201.1494996 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMR6y-0006GQ-BM; Fri, 21 Nov 2025 13:23:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1169201.1494996; Fri, 21 Nov 2025 13:23: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 1vMR6y-0006GJ-8N; Fri, 21 Nov 2025 13:23:40 +0000
Received: by outflank-mailman (input) for mailman id 1169201;
 Fri, 21 Nov 2025 13:23:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=wmUi=55=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vMR6x-0006GA-2O
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 13:23:39 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 48ed43b5-c6dd-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 14:23:36 +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-out2.suse.de (Postfix) with ESMTPS id 235F920FEE;
 Fri, 21 Nov 2025 13:23: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 BF7633EA61;
 Fri, 21 Nov 2025 13:23: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 iqI8LdZnIGkQVQAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 21 Nov 2025 13:23: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: 48ed43b5-c6dd-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763731415; 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=wHB0LPd3iol0b1RLK1wvGDRVvXXBhGff1PoGk2nUrqU=;
	b=AiFCygmQ7k9CSH11wOA1oxNwacn7LCEH0Db3iqJpcCJ1v2OS3bmGYaT3dsN8mzxaCuBd0U
	zSR0VNRbz5eAzvmGAG83UndHSpZb3UMABjiI+IqXb5j9DKC/mQ36WZXCjFlkZzia1uKHJj
	KkUU7FUBEzpXVsDlVwlef3TFAWk8uQs=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=AiFCygmQ
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763731415; 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=wHB0LPd3iol0b1RLK1wvGDRVvXXBhGff1PoGk2nUrqU=;
	b=AiFCygmQ7k9CSH11wOA1oxNwacn7LCEH0Db3iqJpcCJ1v2OS3bmGYaT3dsN8mzxaCuBd0U
	zSR0VNRbz5eAzvmGAG83UndHSpZb3UMABjiI+IqXb5j9DKC/mQ36WZXCjFlkZzia1uKHJj
	KkUU7FUBEzpXVsDlVwlef3TFAWk8uQs=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Christian Lindig <christian.lindig@citrix.com>,
	David Scott <dave@recoil.org>
Subject: [PATCH v3 0/4] configure: reduce number of files created
Date: Fri, 21 Nov 2025 14:23:28 +0100
Message-ID: <20251121132332.23514-1-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Queue-Id: 235F920FEE
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	MIME_TRACE(0.00)[0:+];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	TO_DN_SOME(0.00)[];
	FROM_HAS_DN(0.00)[];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	RCPT_COUNT_SEVEN(0.00)[11];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:dkim];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Action: no action
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level: 

Instead of creating lots of files during configure, create those
files (where possible) rather at build time. This reduces the need
to run configure when e.g. changing a man page containing a path
defined by the configure run.

Changes in V2:
- dropped patch 1 as already applied
- no longer rename files to *.src
- don't use pattern rule

Changes in V3:
- addressed comments by Jan and Andrew

Juergen Gross (4):
  build: add make macro for making file from file.in
  docs: replace @xxx@ markers at build time
  config: remove unused paths from config/Paths.mk.in
  tools: replace @xxx@ markers at build time

 .gitignore                     |  1 +
 Config.mk                      | 13 +++++++++++++
 config/Paths.mk.in             |  6 ------
 config/Tools-paths.mk.in       | 10 ++++++++++
 docs/Makefile                  | 11 ++++++++++-
 docs/configure                 |  7 +------
 docs/configure.ac              |  9 +--------
 tools/Rules.mk                 |  4 ++++
 tools/configure                | 21 ++-------------------
 tools/configure.ac             | 19 +------------------
 tools/hotplug/FreeBSD/Makefile | 13 +++++++++++--
 tools/hotplug/Linux/Makefile   | 21 +++++++++++++++++++--
 tools/hotplug/NetBSD/Makefile  | 13 +++++++++++--
 tools/hotplug/common/Makefile  | 10 +++++++++-
 tools/ocaml/libs/xs/Makefile   |  9 +++++++++
 tools/ocaml/xenstored/Makefile | 10 +++++++++-
 16 files changed, 111 insertions(+), 66 deletions(-)
 create mode 100644 config/Tools-paths.mk.in

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 13:23:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 13:23:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1169202.1495006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMR71-0006U4-H9; Fri, 21 Nov 2025 13:23:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1169202.1495006; Fri, 21 Nov 2025 13:23:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMR71-0006Tx-EJ; Fri, 21 Nov 2025 13:23:43 +0000
Received: by outflank-mailman (input) for mailman id 1169202;
 Fri, 21 Nov 2025 13:23: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=wmUi=55=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vMR70-0006Tj-Go
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 13:23:42 +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 4bcfe626-c6dd-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 14:23: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 D963321289;
 Fri, 21 Nov 2025 13:23: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 8BAAC3EA61;
 Fri, 21 Nov 2025 13:23: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 z798INxnIGkkVQAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 21 Nov 2025 13:23:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4bcfe626-c6dd-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763731420; 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=6IHGZClk/KYaiG3r2nLzBNmUn7FuRkkHZ6zOcK9gZrU=;
	b=Iuqc9UN8LcQcX89oU+wk0GG2gsxQRqQocGi5YyIVig8C1RmzHhQvU58mMZRK9VP/XPRZQm
	6PAPoJhVWpkJPKHo76nAZEOyJTfvUSSIa5HdbWmWxOFFNnjrnIwU7qGZdEX28n3jTfHDCS
	TrqoZAP1AlYZznZNCDoxDWykPqshdjM=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763731420; 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=6IHGZClk/KYaiG3r2nLzBNmUn7FuRkkHZ6zOcK9gZrU=;
	b=Iuqc9UN8LcQcX89oU+wk0GG2gsxQRqQocGi5YyIVig8C1RmzHhQvU58mMZRK9VP/XPRZQm
	6PAPoJhVWpkJPKHo76nAZEOyJTfvUSSIa5HdbWmWxOFFNnjrnIwU7qGZdEX28n3jTfHDCS
	TrqoZAP1AlYZznZNCDoxDWykPqshdjM=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@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 1/4] build: add make macro for making file from file.in
Date: Fri, 21 Nov 2025 14:23:29 +0100
Message-ID: <20251121132332.23514-2-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251121132332.23514-1-jgross@suse.com>
References: <20251121132332.23514-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-2.80 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_HAS_DN(0.00)[];
	MIME_TRACE(0.00)[0:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCPT_COUNT_SEVEN(0.00)[9];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	TO_DN_SOME(0.00)[];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -2.80
X-Spam-Level: 

Add a new make macro for creating <file> from <file>.in at build
time. To be used like this:

$(foreach file,$(IN_TARGETS),$(eval $(call apply-build-vars,$(file))))

This can be used instead of the current approach to perform the similar
step for file.in during ./configure.

This will avoid having to run ./configure just because of modifying a
file depending on a variable set by configure.

Prepare to have multiple files as source for the replacement patterns.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- don't use pattern rule, but create explicit dependency in macro,
  don't require to rename source files (Jan Beulich, Andrew Cooper)
V3:
- prepare for $(PATH_FILES) to be extended by other Makefile
- let generated file depend on $(INC_FILES)
---
 Config.mk | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/Config.mk b/Config.mk
index e1556dfbfa..39e8007b9c 100644
--- a/Config.mk
+++ b/Config.mk
@@ -159,6 +159,19 @@ define move-if-changed
 	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
 endef
 
+PATH_FILES := Paths
+INC_FILES = $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
+
+include $(INC_FILES)
+
+BUILD_MAKE_VARS = $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).mk.in))
+
+# Replace @xxx@ markers in $(1).in with $(xxx) variable contents, write to $(1)
+define apply-build-vars
+ $(1): $(1).in $$(INC_FILES)
+	sed $$(foreach v, $$(BUILD_MAKE_VARS), -e 's#@$$(v)@#$$($$(v))#g') <$$< >$$@
+endef
+
 CFLAGS += -fno-strict-aliasing
 
 CFLAGS += -std=gnu99
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 13:23:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 13:23:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1169205.1495026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMR7C-00073K-4M; Fri, 21 Nov 2025 13:23:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1169205.1495026; Fri, 21 Nov 2025 13: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 1vMR7C-00073B-1i; Fri, 21 Nov 2025 13:23:54 +0000
Received: by outflank-mailman (input) for mailman id 1169205;
 Fri, 21 Nov 2025 13:23: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=wmUi=55=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vMR7B-0006Tj-0F
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 13:23:53 +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 5272ce02-c6dd-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 14:23:52 +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 05A6121236;
 Fri, 21 Nov 2025 13:23:52 +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 D7B903EA61;
 Fri, 21 Nov 2025 13:23:51 +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 WXA3M+dnIGnLVQAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 21 Nov 2025 13:23:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5272ce02-c6dd-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763731432; 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=5HfPyk2SmSsnfHk+oKinm7kif7+gloN22+4AVob9AOM=;
	b=a9E+l7BQZo+k+wvJys7spwMmi9feCl9uWjs6V6p2I0vC4z86HyXnJj2Egi3FH39cTiANKH
	DAxfh9iyzB/x9ir8Ms/ELRaWAUuUnyTbnCgehkm+Z49lfekGOmbaMnEUXyXvzHDtJgvULw
	Jk0iI73/jFEvytkpN3RvmqJRqvqU+W0=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763731432; 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=5HfPyk2SmSsnfHk+oKinm7kif7+gloN22+4AVob9AOM=;
	b=a9E+l7BQZo+k+wvJys7spwMmi9feCl9uWjs6V6p2I0vC4z86HyXnJj2Egi3FH39cTiANKH
	DAxfh9iyzB/x9ir8Ms/ELRaWAUuUnyTbnCgehkm+Z49lfekGOmbaMnEUXyXvzHDtJgvULw
	Jk0iI73/jFEvytkpN3RvmqJRqvqU+W0=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v3 3/4] config: remove unused paths from config/Paths.mk.in
Date: Fri, 21 Nov 2025 14:23:31 +0100
Message-ID: <20251121132332.23514-4-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251121132332.23514-1-jgross@suse.com>
References: <20251121132332.23514-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spamd-Result: default: False [-2.80 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	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];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	MIME_TRACE(0.00)[0:+];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	ARC_NA(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCVD_TLS_ALL(0.00)[];
	RCPT_COUNT_THREE(0.00)[3];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:mid]
X-Spam-Flag: NO
X-Spam-Score: -2.80

Some paths in config/Paths.mk.in are used nowhere, so remove them.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V3:
- remove htmldir, too (Andrew Cooper)
---
 config/Paths.mk.in | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/config/Paths.mk.in b/config/Paths.mk.in
index bc42748b7a..6aa392b9f2 100644
--- a/config/Paths.mk.in
+++ b/config/Paths.mk.in
@@ -20,10 +20,6 @@ libexecdir               := @libexecdir@
 datarootdir              := @datarootdir@
 mandir                   := @mandir@
 docdir                   := @docdir@
-dvidir                   := @dvidir@
-htmldir                  := @htmldir@
-pdfdir                   := @pdfdir@
-psdir                    := @psdir@
 includedir               := @includedir@
 localstatedir            := @localstatedir@
 sysconfdir               := @sysconfdir@
@@ -34,8 +30,6 @@ LIBEXEC_LIB              := @LIBEXEC_LIB@
 LIBEXEC_INC              := @LIBEXEC_INC@
 
 SHAREDIR                 := @SHAREDIR@
-MAN1DIR                  := $(mandir)/man1
-MAN8DIR                  := $(mandir)/man8
 
 XEN_RUN_DIR              := @XEN_RUN_DIR@
 XEN_LOG_DIR              := @XEN_LOG_DIR@
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 13:24:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 13:24:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1169214.1495037 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMR7K-0007WR-Da; Fri, 21 Nov 2025 13:24:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1169214.1495037; Fri, 21 Nov 2025 13:24: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 1vMR7K-0007WH-Ae; Fri, 21 Nov 2025 13:24:02 +0000
Received: by outflank-mailman (input) for mailman id 1169214;
 Fri, 21 Nov 2025 13:24: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=wmUi=55=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vMR7J-0006GA-Ie
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 13:24:01 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de
 [2a07:de40:b251:101:10:150:64:2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 56c8081e-c6dd-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 14:23:59 +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-out2.suse.de (Postfix) with ESMTPS id C810520FD7;
 Fri, 21 Nov 2025 13:23:57 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 704D53EA61;
 Fri, 21 Nov 2025 13:23:57 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id Dbm4Ge1nIGnVVQAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 21 Nov 2025 13:23: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: 56c8081e-c6dd-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763731439; 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=mTXx2nXJy3NDD3WyLkj5aeUH5vd0fwILn2bvkWmgeB4=;
	b=l4vcmY4Q6V9zEtXsARQtx6nMiByEU6XAn/EbnJ1fhaomvYNsP2b/VlzWOIqte2RjZ4LmrW
	ggf62tRotAA7qrPxEd+gb6mhZ6Dpzg+e22Lhb84Nt8UCoQNYpPVypmQVpgjPRosyeY+6Qa
	iBNyeEHbq+wfuxEeFv6Vxk2vdCycoh0=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=nKptOczk
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763731437; 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=mTXx2nXJy3NDD3WyLkj5aeUH5vd0fwILn2bvkWmgeB4=;
	b=nKptOczkd76omXXxPpuSnWp//mL0e/RwOC9bAY5FxaNbOZmo/DVMNcESrpm+h1mmrik6e1
	gh2NsC8tzjwgJFBGip1/h5CcveWdDw+6UpaLQ5k2LWwZmTAC2NLWdvm/tJmI84vIh2sKhG
	9P7HBQuSwR55BXGMdGtN4MWkUpdM83U=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Christian Lindig <christian.lindig@citrix.com>,
	David Scott <dave@recoil.org>
Subject: [PATCH v3 4/4] tools: replace @xxx@ markers at build time
Date: Fri, 21 Nov 2025 14:23:32 +0100
Message-ID: <20251121132332.23514-5-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251121132332.23514-1-jgross@suse.com>
References: <20251121132332.23514-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spam-Flag: NO
X-Rspamd-Queue-Id: C810520FD7
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	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];
	MIME_TRACE(0.00)[0:+];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	TO_DN_SOME(0.00)[];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	RCPT_COUNT_SEVEN(0.00)[11];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	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)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo,suse.com:dkim,suse.com:mid,suse.com:email]
X-Spam-Score: -3.01

Use the apply-build-vars make macro to replace the @xxx@ markers in
most *.in files only at build time.

As some of the markers are local to tools/configure, introduce
config/Tools-paths.mk.in and add the related make variables to it.
Add Tools-paths to the PATH_FILES make variable in order to include
the definitions for replacing them in the *.in files.

Add the generated files to the distclean target.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- don't rename source files
V3:
- add Tools-paths to PATH_FILES only in tools/Rules.mk (Jan Beulich)
- rename IN_FILES to IN_TARGETS (Jan Beulich)
- add only one file to IN_TARGETS per line (Andrew Cooper)
- add build target depending on generated files (Andrew Cooper)
- use $(RM) instead of rm -f (Andrew Cooper)
---
 .gitignore                     |  1 +
 config/Tools-paths.mk.in       | 10 ++++++++++
 tools/Rules.mk                 |  4 ++++
 tools/configure                | 21 ++-------------------
 tools/configure.ac             | 19 +------------------
 tools/hotplug/FreeBSD/Makefile | 13 +++++++++++--
 tools/hotplug/Linux/Makefile   | 21 +++++++++++++++++++--
 tools/hotplug/NetBSD/Makefile  | 13 +++++++++++--
 tools/hotplug/common/Makefile  | 10 +++++++++-
 tools/ocaml/libs/xs/Makefile   |  9 +++++++++
 tools/ocaml/xenstored/Makefile | 10 +++++++++-
 11 files changed, 86 insertions(+), 45 deletions(-)
 create mode 100644 config/Tools-paths.mk.in

diff --git a/.gitignore b/.gitignore
index d83427aba8..57d54f676f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,6 +47,7 @@ config.status
 config.cache
 config/Toplevel.mk
 config/Paths.mk
+config/Tools-paths.mk
 
 dist/*
 extras/
diff --git a/config/Tools-paths.mk.in b/config/Tools-paths.mk.in
new file mode 100644
index 0000000000..ac6298e761
--- /dev/null
+++ b/config/Tools-paths.mk.in
@@ -0,0 +1,10 @@
+-include $(XEN_ROOT)/config/Paths.mk
+
+XENSTORED                := @XENSTORED@
+XENSTORED_KVA            := @XENSTORED_KVA@
+XENSTORED_PORT           := @XENSTORED_PORT@
+XEN_RUN_STORED           := @XEN_RUN_STORED@
+
+LINUX_BACKEND_MODULES    := @LINUX_BACKEND_MODULES@
+
+qemu_xen_path            := @qemu_xen_path@
diff --git a/tools/Rules.mk b/tools/Rules.mk
index 725c3c32e9..c3afc836ba 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -11,6 +11,10 @@ XEN_FULLVERSION=$(shell env \
     XEN_VENDORVERSION=$(XEN_VENDORVERSION) \
     $(SHELL) $(XEN_ROOT)/version.sh --full $(XEN_ROOT)/xen/Makefile)
 
+PATH_FILES += Tools-paths
+
+-include $(XEN_ROOT)/config/Tools-paths.mk
+
 export _INSTALL := $(INSTALL)
 INSTALL = $(XEN_ROOT)/tools/cross-install
 
diff --git a/tools/configure b/tools/configure
index 3111f5688c..479c7c9a3c 100755
--- a/tools/configure
+++ b/tools/configure
@@ -2742,7 +2742,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
-ac_config_files="$ac_config_files ../config/Tools.mk hotplug/common/hotplugpath.sh hotplug/FreeBSD/rc.d/xencommons hotplug/FreeBSD/rc.d/xendriverdomain hotplug/Linux/init.d/sysconfig.xencommons hotplug/Linux/init.d/sysconfig.xendomains hotplug/Linux/init.d/xen-watchdog hotplug/Linux/init.d/xencommons hotplug/Linux/init.d/xendomains hotplug/Linux/init.d/xendriverdomain hotplug/Linux/launch-xenstore hotplug/Linux/vif-setup hotplug/Linux/xen-hotplug-common.sh hotplug/Linux/xendomains hotplug/NetBSD/rc.d/xencommons hotplug/NetBSD/rc.d/xendriverdomain ocaml/libs/xs/paths.ml ocaml/xenstored/paths.ml ocaml/xenstored/oxenstored.conf"
+ac_config_files="$ac_config_files ../config/Tools.mk ../config/Tools-paths.mk"
 
 ac_config_headers="$ac_config_headers config.h"
 
@@ -11268,24 +11268,7 @@ for ac_config_target in $ac_config_targets
 do
   case $ac_config_target in
     "../config/Tools.mk") CONFIG_FILES="$CONFIG_FILES ../config/Tools.mk" ;;
-    "hotplug/common/hotplugpath.sh") CONFIG_FILES="$CONFIG_FILES hotplug/common/hotplugpath.sh" ;;
-    "hotplug/FreeBSD/rc.d/xencommons") CONFIG_FILES="$CONFIG_FILES hotplug/FreeBSD/rc.d/xencommons" ;;
-    "hotplug/FreeBSD/rc.d/xendriverdomain") CONFIG_FILES="$CONFIG_FILES hotplug/FreeBSD/rc.d/xendriverdomain" ;;
-    "hotplug/Linux/init.d/sysconfig.xencommons") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/sysconfig.xencommons" ;;
-    "hotplug/Linux/init.d/sysconfig.xendomains") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/sysconfig.xendomains" ;;
-    "hotplug/Linux/init.d/xen-watchdog") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/xen-watchdog" ;;
-    "hotplug/Linux/init.d/xencommons") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/xencommons" ;;
-    "hotplug/Linux/init.d/xendomains") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/xendomains" ;;
-    "hotplug/Linux/init.d/xendriverdomain") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/xendriverdomain" ;;
-    "hotplug/Linux/launch-xenstore") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/launch-xenstore" ;;
-    "hotplug/Linux/vif-setup") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/vif-setup" ;;
-    "hotplug/Linux/xen-hotplug-common.sh") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/xen-hotplug-common.sh" ;;
-    "hotplug/Linux/xendomains") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/xendomains" ;;
-    "hotplug/NetBSD/rc.d/xencommons") CONFIG_FILES="$CONFIG_FILES hotplug/NetBSD/rc.d/xencommons" ;;
-    "hotplug/NetBSD/rc.d/xendriverdomain") CONFIG_FILES="$CONFIG_FILES hotplug/NetBSD/rc.d/xendriverdomain" ;;
-    "ocaml/libs/xs/paths.ml") CONFIG_FILES="$CONFIG_FILES ocaml/libs/xs/paths.ml" ;;
-    "ocaml/xenstored/paths.ml") CONFIG_FILES="$CONFIG_FILES ocaml/xenstored/paths.ml" ;;
-    "ocaml/xenstored/oxenstored.conf") CONFIG_FILES="$CONFIG_FILES ocaml/xenstored/oxenstored.conf" ;;
+    "../config/Tools-paths.mk") CONFIG_FILES="$CONFIG_FILES ../config/Tools-paths.mk" ;;
     "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
     "hotplug/Linux/systemd/proc-xen.mount") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/systemd/proc-xen.mount" ;;
     "hotplug/Linux/systemd/xen-init-dom0.service") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/systemd/xen-init-dom0.service" ;;
diff --git a/tools/configure.ac b/tools/configure.ac
index 285b4ea128..ecd45e782e 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -7,24 +7,7 @@ AC_INIT([Xen Hypervisor Tools], m4_esyscmd([../version.sh ../xen/Makefile]),
 AC_CONFIG_SRCDIR([libs/light/libxl.c])
 AC_CONFIG_FILES([
 ../config/Tools.mk
-hotplug/common/hotplugpath.sh
-hotplug/FreeBSD/rc.d/xencommons
-hotplug/FreeBSD/rc.d/xendriverdomain
-hotplug/Linux/init.d/sysconfig.xencommons
-hotplug/Linux/init.d/sysconfig.xendomains
-hotplug/Linux/init.d/xen-watchdog
-hotplug/Linux/init.d/xencommons
-hotplug/Linux/init.d/xendomains
-hotplug/Linux/init.d/xendriverdomain
-hotplug/Linux/launch-xenstore
-hotplug/Linux/vif-setup
-hotplug/Linux/xen-hotplug-common.sh
-hotplug/Linux/xendomains
-hotplug/NetBSD/rc.d/xencommons
-hotplug/NetBSD/rc.d/xendriverdomain
-ocaml/libs/xs/paths.ml
-ocaml/xenstored/paths.ml
-ocaml/xenstored/oxenstored.conf
+../config/Tools-paths.mk
 ])
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_AUX_DIR([../])
diff --git a/tools/hotplug/FreeBSD/Makefile b/tools/hotplug/FreeBSD/Makefile
index a6552c9884..a7c1c461ef 100644
--- a/tools/hotplug/FreeBSD/Makefile
+++ b/tools/hotplug/FreeBSD/Makefile
@@ -8,9 +8,17 @@ XEN_SCRIPT_DATA :=
 
 XEN_RCD_PROG := rc.d/xencommons rc.d/xendriverdomain
 
+IN_TARGETS := rc.d/xencommons
+IN_TARGETS += rc.d/xendriverdomain
+
 .PHONY: all
 all:
 
+$(foreach file,$(IN_TARGETS),$(eval $(call apply-build-vars,$(file))))
+
+.PHONY: build
+build: $(IN_TARGETS)
+
 .PHONY: install
 install: install-scripts install-rcd
 
@@ -18,7 +26,7 @@ install: install-scripts install-rcd
 uninstall: uninstall-script uninstall-rcd
 
 .PHONY: install-scripts
-install-scripts:
+install-scripts: build
 	$(INSTALL_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR)
 	set -e; for i in $(XEN_SCRIPTS); \
 	   do \
@@ -35,7 +43,7 @@ uninstall-scripts:
 	rm -f $(addprefix $(DESTDIR)$(XEN_SCRIPT_DIR)/, $(XEN_SCRIPT_DATA))
 
 .PHONY: install-rcd
-install-rcd:
+install-rcd: build
 	$(INSTALL_DIR) $(DESTDIR)$(INITD_DIR)
 	set -e; for i in $(XEN_RCD_PROG); \
 	   do \
@@ -51,3 +59,4 @@ clean:
 
 .PHONY: distclean
 distclean: clean
+	$(RM) $(IN_TARGETS)
diff --git a/tools/hotplug/Linux/Makefile b/tools/hotplug/Linux/Makefile
index 9a7b3a3515..b60e39e1cd 100644
--- a/tools/hotplug/Linux/Makefile
+++ b/tools/hotplug/Linux/Makefile
@@ -26,9 +26,25 @@ XEN_SCRIPT_DATA := xen-script-common.sh locking.sh logging.sh
 XEN_SCRIPT_DATA += xen-hotplug-common.sh xen-network-common.sh vif-common.sh
 XEN_SCRIPT_DATA += block-common.sh
 
+IN_TARGETS := launch-xenstore
+IN_TARGETS += vif-setup
+IN_TARGETS += xendomains
+IN_TARGETS += xen-hotplug-common.sh
+IN_TARGETS += init.d/sysconfig.xendomains
+IN_TARGETS += init.d/xen-watchdog
+IN_TARGETS += init.d/xencommons
+IN_TARGETS += init.d/xendomains
+IN_TARGETS += init.d/xendriverdomain
+IN_TARGETS += init.d/sysconfig.xencommons
+
 .PHONY: all
 all: subdirs-all
 
+$(foreach file,$(IN_TARGETS),$(eval $(call apply-build-vars,$(file))))
+
+.PHONY: build
+build: $(IN_TARGETS)
+
 .PHONY: install
 install: install-initd install-scripts subdirs-install
 
@@ -37,7 +53,7 @@ uninstall: uninstall-initd uninstall-scripts subdirs-uninstall
 
 # See docs/misc/distro_mapping.txt for INITD_DIR location
 .PHONY: install-initd
-install-initd:
+install-initd: build
 	$(INSTALL_DIR) $(DESTDIR)$(INITD_DIR)
 	$(INSTALL_DIR) $(DESTDIR)$(SYSCONFIG_DIR)
 	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN)
@@ -60,7 +76,7 @@ uninstall-initd:
 	rm -f $(DESTDIR)$(SYSCONFIG_DIR)/xendomains
 
 .PHONY: install-scripts
-install-scripts:
+install-scripts: build
 	$(INSTALL_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR)
 	set -e; for i in $(XEN_SCRIPTS); \
 	    do \
@@ -81,3 +97,4 @@ clean: subdirs-clean
 
 .PHONY: distclean
 distclean: clean
+	$(RM) $(IN_TARGETS)
diff --git a/tools/hotplug/NetBSD/Makefile b/tools/hotplug/NetBSD/Makefile
index 1cd3db2ccb..8ae788131e 100644
--- a/tools/hotplug/NetBSD/Makefile
+++ b/tools/hotplug/NetBSD/Makefile
@@ -12,9 +12,17 @@ XEN_SCRIPTS += qemu-ifup
 XEN_SCRIPT_DATA :=
 XEN_RCD_PROG := rc.d/xencommons rc.d/xendomains rc.d/xen-watchdog rc.d/xendriverdomain
 
+IN_TARGETS := rc.d/xencommons
+IN_TARGETS += rc.d/xendriverdomain
+
 .PHONY: all
 all:
 
+$(foreach file,$(IN_TARGETS),$(eval $(call apply-build-vars,$(file))))
+
+.PHONY: build
+build: $(IN_TARGETS)
+
 .PHONY: install
 install: install-scripts install-rcd
 
@@ -22,7 +30,7 @@ install: install-scripts install-rcd
 uninstall: uninstall-scripts uninstall-rcd
 
 .PHONY: install-scripts
-install-scripts:
+install-scripts: build
 	$(INSTALL_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR)
 	set -e; for i in $(XEN_SCRIPTS); \
 	   do \
@@ -39,7 +47,7 @@ uninstall-scripts:
 	rm -f $(addprefix $(DESTDIR)$(XEN_SCRIPT_DIR)/, $(XEN_SCRIPT_DATA))
 
 .PHONY: install-rcd
-install-rcd:
+install-rcd: build
 	$(INSTALL_DIR) $(DESTDIR)$(INITD_DIR)
 	set -e; for i in $(XEN_RCD_PROG); \
 	   do \
@@ -57,3 +65,4 @@ clean:
 
 .PHONY: distclean
 distclean: clean
+	$(RM) $(IN_TARGETS)
diff --git a/tools/hotplug/common/Makefile b/tools/hotplug/common/Makefile
index 62afe1019e..3b0b5a0296 100644
--- a/tools/hotplug/common/Makefile
+++ b/tools/hotplug/common/Makefile
@@ -7,8 +7,15 @@ include $(XEN_ROOT)/tools/Rules.mk
 XEN_SCRIPTS :=
 XEN_SCRIPT_DATA := hotplugpath.sh
 
+IN_TARGETS := hotplugpath.sh
+
 .PHONY: all
-all:
+all: build
+
+$(foreach file,$(IN_TARGETS),$(eval $(call apply-build-vars,$(file))))
+
+.PHONY: build
+build: $(IN_TARGETS)
 
 .PHONY: install
 install: install-scripts
@@ -38,3 +45,4 @@ clean:
 
 .PHONY: distclean
 distclean: clean
+	$(RM) $(IN_TARGETS)
diff --git a/tools/ocaml/libs/xs/Makefile b/tools/ocaml/libs/xs/Makefile
index e160e6a711..b0963611fb 100644
--- a/tools/ocaml/libs/xs/Makefile
+++ b/tools/ocaml/libs/xs/Makefile
@@ -8,6 +8,8 @@ OCAMLOPTFLAGS += -for-pack Xenstore
 .NOTPARALLEL:
 # Ocaml is such a PITA!
 
+IN_TARGETS := paths.ml
+
 PREINTF = xsraw.cmi xst.cmi
 PREOBJS = queueop xsraw xst
 PRELIBS = $(foreach obj, $(PREOBJS),$(obj).cmo) $(foreach obj,$(PREOJBS),$(obj).cmx)
@@ -17,6 +19,10 @@ LIBS = xenstore.cma xenstore.cmxa
 
 all: $(PREINTF) $(PRELIBS) $(INTF) $(LIBS) $(PROGRAMS)
 
+$(foreach file,$(IN_TARGETS),$(eval $(call apply-build-vars,$(file))))
+
+$(OBJS): $(IN_TARGETS)
+
 bins: $(PROGRAMS)
 
 libs: $(LIBS)
@@ -43,4 +49,7 @@ install: $(LIBS) META
 uninstall:
 	$(OCAMLFIND) remove -destdir $(OCAMLDESTDIR) xenstore
 
+.PHONY: distclean
+	$(RM) $(IN_TARGETS)
+
 include $(OCAML_TOPLEVEL)/Makefile.rules
diff --git a/tools/ocaml/xenstored/Makefile b/tools/ocaml/xenstored/Makefile
index c333394a34..b3d1a8b8de 100644
--- a/tools/ocaml/xenstored/Makefile
+++ b/tools/ocaml/xenstored/Makefile
@@ -72,6 +72,9 @@ XENSTOREDLIBS = \
 	-ccopt -L -ccopt $(OCAML_TOPLEVEL)/libs/xsd_glue $(OCAML_TOPLEVEL)/libs/xsd_glue/plugin_interface_v1.cmxa \
 	-ccopt -L -ccopt $(XEN_ROOT)/tools/libs/ctrl
 
+IN_TARGETS := paths.ml
+IN_TARGETS += oxenstored.conf
+
 PROGRAMS = oxenstored
 
 oxenstored_LIBS = $(XENSTOREDLIBS)
@@ -83,7 +86,9 @@ oxenstored_OBJS = $(oxenstored_MLSORTED:.ml=)
 
 OCAML_PROGRAM = oxenstored
 
-all: $(INTF) $(LIBS) $(PROGRAMS)
+all: $(IN_TARGETS) $(INTF) $(LIBS) $(PROGRAMS)
+
+$(foreach file,$(IN_TARGETS),$(eval $(call apply-build-vars,$(file))))
 
 bins: $(PROGRAMS)
 
@@ -99,4 +104,7 @@ uninstall:
 	rm -f $(DESTDIR)$(XEN_CONFIG_DIR)/oxenstored.conf
 	rm -f $(DESTDIR)$(sbindir)/oxenstored
 
+distclean:
+	$(RM) $(IN_TARGETS)
+
 include $(OCAML_TOPLEVEL)/Makefile.rules
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 14:11:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 14:11:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1169271.1495046 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMRrS-0007mj-Rf; Fri, 21 Nov 2025 14:11:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1169271.1495046; Fri, 21 Nov 2025 14:11: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 1vMRrS-0007mc-P0; Fri, 21 Nov 2025 14:11:42 +0000
Received: by outflank-mailman (input) for mailman id 1169271;
 Fri, 21 Nov 2025 14:11: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=m3Zd=55=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vMRrR-0007jX-KX
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 14:11:41 +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 ff6ae3c2-c6e3-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 15:11:39 +0100 (CET)
Received: from DB7PR03MB4603.eurprd03.prod.outlook.com (2603:10a6:10:18::24)
 by GVXPR03MB8380.eurprd03.prod.outlook.com (2603:10a6:150:6::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.11; Fri, 21 Nov
 2025 14:11:37 +0000
Received: from DB7PR03MB4603.eurprd03.prod.outlook.com
 ([fe80::7eb2:6a9b:fddb:6365]) by DB7PR03MB4603.eurprd03.prod.outlook.com
 ([fe80::7eb2:6a9b:fddb:6365%5]) with mapi id 15.20.9343.011; Fri, 21 Nov 2025
 14:11: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: ff6ae3c2-c6e3-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VsdDEGCcw8PFfR/ExVGroYrWy4A+CsiGppMqqh0iYnMimhub6wwogQWdbBiY4aToUNg7+/nhOfokELAbsmJJ1wipD/kxTNC/fgrRiSo3qmOPSUYE7T4Z/Wuy4MxkmAQCFSzhlxDXgkmSv8r2CcCbd+pUhwNcHHT2APMFxOospB51rstRmKkG/JkThtcFySRqz21e9HlUB6+mYmAtDO1Ge/S+d4cmyRf9rxtlpPNP+oLVGIyisvWAl9MjRW/0xoar4hsjPHmeYao/W2scAyLIao2E9iwgfdBopwBi/5pT7laKYwdSX2L3suCctEo+421ed948aIpEbigNebY/RDBxig==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Xo+uifZwV/WvF/M351HDnKMCvbufoV7D0uNOQ4gfSa4=;
 b=Z7jFQVlWufaLart7ONnRkLEU1HFNb2Rf0BZEhvkkWzObZ1Cu0DLnSrcvzNtdYJOvE4c0IwcLuvQZLcSNQYsfHbzbLlbtPcq28lTOo744roMufLj5y97YBoS1+vn6pfm9i/fS8oNpJluAskRHRc+JwkjcTol59mvKYTnxUzGMCNDVx9AxvOYbyT4YggHgxvV9Orry5u2uCwqoGEHlVVX/aLQXWdmGLrg8q2BhfGJ9FAF1TMPvrElVn+6wWdtTTKc7PKZ7gZ4TIY02mXMZv1eKlQMU+c9JnTqVJmyFIVEF+5weSnnhzDbwXYq8Bw1QWP2W97Nzjw8Ip+PKG/ydazPtuA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Xo+uifZwV/WvF/M351HDnKMCvbufoV7D0uNOQ4gfSa4=;
 b=aWETciMsMwG+NTW3oXjkat5cvhFbf054TVnMaIWWsEDT/Bfvo0X5veDEniB7vxGUEn2sX6mJ7oXvuTWH9NbdfOIsLpC8n1dKs19I8m8bIl9+vF2KS8LSI8sPBrpTg24ev0MEdczgXbPvfO4Ety3GeWSysGx7MXhwGOBLc16ysqSIECFOozoyzBhUvBWObvOhEBYBfmtA+9YCb2k7NtQm0AGAkO7vyv+S6egZPY5Sv+GMg4gD5bIbKQN/aU2WwzdChbqqjYJHKGjnVLOTp/ojg2FHMRRmhbvL0POaHinPnaqN0KSRDBOvbeaR+kD4h9g3uHOP06pCUU5q6EqHmgqpxg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <19f7b2b5-13c3-434f-9e43-dd218445d6c2@epam.com>
Date: Fri, 21 Nov 2025 16:11:36 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 16/24] xen/domctl: wrap iommu-related domctl op with
 CONFIG_MGMT_HYPERCALLS
To: Penny Zheng <Penny.Zheng@amd.com>, xen-devel@lists.xenproject.org
Cc: ray.huang@amd.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-17-Penny.Zheng@amd.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20251121105801.1251262-17-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0102.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:cb::9) To DB7PR03MB4603.eurprd03.prod.outlook.com
 (2603:10a6:10:18::24)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DB7PR03MB4603:EE_|GVXPR03MB8380:EE_
X-MS-Office365-Filtering-Correlation-Id: be9bdec4-5083-49a0-0461-08de2907e26c
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?RjlEd2xTY0E3QUk5WHVEdFhIWERLK1MwbExuTTJzREsrNnFRZHNyd3ladURw?=
 =?utf-8?B?N1oranFaTHJaWXo2ZEFsdU45aGthSGhYN2hsVWhSRXVwdGEwZEhFTWJUTWxI?=
 =?utf-8?B?VVhWUWtOTDNuMitBYUo1N01yUmpvdXloUHNBNTFUK0ZJMXoyeDFncThnaHM3?=
 =?utf-8?B?WkxobmlvUU9uaGY5cEFOZ0dmOXRITnowWHlIMVZvb0FKZmtERklwWFpNL3FE?=
 =?utf-8?B?SmNmZ1E2bE9BcmFYcGlrQWZEQklPNjJmZGZjTUpjNUZhdFJUTVV4eXZyd1Jz?=
 =?utf-8?B?UjFaUXlOckRFZW1oR2sySUIwOUxONjZLTGF3ZktVSDZhNUdPclRJMGF1TXNj?=
 =?utf-8?B?NDVHbFVYYUIrYXhrZUZoNVVRckxSRjN6a1kzZG9sUW9tVjg3VjFOSU8zcUIy?=
 =?utf-8?B?WndTa2RyV1RFU05ua1hwejJTdjJvT0NBNGRCalRyZHNQU0JsMGdWY0hLVGs4?=
 =?utf-8?B?aWladEZnbmpMS2t2dXphT1RCR1JDNjV6UTRFdW9MTHJ4dkMrUzhCbGF1UEFU?=
 =?utf-8?B?TWJ5Nk93dnJiQkJ3UkpQVzIzQ20wSWZqejdTcFNmZk4zbEhXZ1JuMXV6RXc0?=
 =?utf-8?B?Z3pYSDZSUWdqWmpuL25nL3d0bFRCcldPOUYwUEdnd0xlS3NFTUhFNDFTREJh?=
 =?utf-8?B?Zi9DdE4vVXRMUlAyN05mWHlsMDM2WUxJRTF0LzVvcGpzaVpNRW1XUHl5K0Nk?=
 =?utf-8?B?YnQ4WlprOWNObVhWUVQyNXpYaEZwVzNQL3o2VWU0YkFjczF0OGxGNnVIZElC?=
 =?utf-8?B?SlU2cTZtdkFQWDhWTGQybDA3dEpEcmJEbGFqbkswR29paTZpZEJ4WnF6SHRS?=
 =?utf-8?B?blcwem54VHVmeHAxanR3VGRvM0tzVjJLVlhXK1l1ZEFteGJRUXJ3TEJ3UHVN?=
 =?utf-8?B?NC9PNzZGa1ZoNEJ2ZE1EU0ZiSnpEbkx4VXZmakZZQVhyUXNpRjhVazF3WldP?=
 =?utf-8?B?aEN3UDkxMEVKb2Y4MTA5RGF3TzNrenhhMUlPbHhKbDZ1T1JySmRVUm96Y2tB?=
 =?utf-8?B?Vlp3MDU2YVVld0drd2x6S0pKQngxb01ZSHJld3NUWWRHblp5TC80QlNiVit3?=
 =?utf-8?B?NFM5ckp0ZUxmdHUvYlh3dUlIeXFHQ2lsbGdYd2l0NFRzUWtRcHlJVFNTSzlQ?=
 =?utf-8?B?MkZlS3h4YXlkVEZ5aTV5bXU0d3ZmKzBkN2l0UWg3eHRHZ3dOazJYd3BGRm9s?=
 =?utf-8?B?c3hsb0hyaGFmWWtwVm42dG45VCtnSXRhT1Qybk5zeHU2K3RuRG8xdVpkd3h6?=
 =?utf-8?B?d3JKWTR5dnhsZktJMVlFMEJKb3Q3REJTMkcrQjRDQXRwUGJ4Q3JoZUE3bGMr?=
 =?utf-8?B?VTIraUNDQ2VaZkZVRzk0MGNyblRyZnY5Nms0djVMeDA5TjJxVDFGTUxGb1A0?=
 =?utf-8?B?c3p2QUpMaXdGY2xyQmpJUWpJcTBLcUp4Qkw4eTY4eElEbFdFUlJid0VnQ3dt?=
 =?utf-8?B?a2prcjlyTTJxYlY5cElYMFlwWjZxc3cyUFk3b0F0cHdWRkhLM1htSnpoUHd3?=
 =?utf-8?B?ajlSMHpDTmdCd2lWNi80eTFHRk9oWDhYNEorZTZZaUpYM0RpOWw0WXlnZUNU?=
 =?utf-8?B?YUlraDN6akZ2MDRvcjRZcnJETGxqUzV3TFp5Qm9XcjRmdUdxTzl4aVIrbStT?=
 =?utf-8?B?MHhFK3I1YkZaekhVUURTdlNOcXdNN2hVTnFwR0hqdjkzSDFvZ0h2VVhPUGRk?=
 =?utf-8?B?WHowKzZVeFVHWDNXSEFaZEd2di9YQUszR3RLME5FbmFCMndDRVdFL0ZNN2Js?=
 =?utf-8?B?Um4vRlFrM3p1NW9SOXFRQzJrMGpTVTVxU1dEWW5JVXhLaStQcTMwUmM2WG1k?=
 =?utf-8?B?NmJvRkU2dHRGdGp1ajJENkJXb0U2dTVuU2tYOEZiVDZNMVFXa2p4SnhFVUU0?=
 =?utf-8?B?L2hvMENQZ0E2NnhISExCMTgrYzVzVThOUDI2d2kydlMyK2lnM3IvamJjZXB6?=
 =?utf-8?Q?uhCYtkDS3+OpM7+C3YSwYV52juYdI4hm?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR03MB4603.eurprd03.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?TnZ3STlIbWlKVm5jWXczZTVKWUx6OGpoSVZlYXl4aFZBRml4K0hDUzNLeVI3?=
 =?utf-8?B?QWkxK2ticEh5TUtZMlJlYUlCU3BWaGE0WHBtRndBU21RcWM2eHMyUVhRbCtX?=
 =?utf-8?B?VnRLdjVKb1VxWmdRdlplNGYrWHVrVjE4Z2Q3QWRxM1RCL1hvaFd0YzhtQU95?=
 =?utf-8?B?MDNidmxBWUtIUTRIZXYrWGlYUmpBeGNIUEZGeFRsdlhOaHpoZVoraEJVY0tR?=
 =?utf-8?B?RmdXbkJVcGxSaE0wQ2RQMlZTWEVmRGNMMzRTbVc0NlpFL0F0T2lvK1ZVbkhS?=
 =?utf-8?B?Y3NYbEgvRFAwSUhJUlMzSTZ4Sk9TdmhvdUtsZ09jTFY0cldLaW9NUm84RHkv?=
 =?utf-8?B?dHFOMlN5QTEwbDV4TEZRNnhlSzBXSXdHQ1dRZHFuMGh0UWp1YjJIOWNSUC9k?=
 =?utf-8?B?eldNU2xUUFQzdU9BWVA5YTdqS3BjaDUwOWhrRnZmVEE5cE5vRnJTZzVFTkdy?=
 =?utf-8?B?MDRyUnlqUlFLRlFhU2gwSDM0eEpCNmFQaDFtWUYwdmxwU3hvVWRvaURXUjBW?=
 =?utf-8?B?TWM5TUVmYWtlWDNKU2VXYklDaDIrQzZvTWkxc0NMM05LaVUwQ1NWdUFmWldF?=
 =?utf-8?B?US9JNEtRSzZna2MvY3RXRlBOK0pyNTRlQjZiV3VDekw1THRFOXNvMEFUeDZp?=
 =?utf-8?B?MEcrdmtVL0tkU2dyQXZZcFdLZWNZMmpHR1N3dmd0SXZaa0Q3NzlXTll0VDJE?=
 =?utf-8?B?UU5GTTg5V1AwcjFmRXIwS092SVBvRHlTSEF5Y2Evd2s0ODlsaE1sNnJOc0F3?=
 =?utf-8?B?azlMUy9SbkVZaGh1cHZrSWg1d3AyNy9rVjhMMTh0NTI0eURGd252VWpyM01S?=
 =?utf-8?B?VVQ4ZWpBdk9DSTh3blhXRUk2aEFKd2RPeEtCOUZORnhYQ0pHRktKNUllZFRa?=
 =?utf-8?B?QmZuaFN3NnAzS1JXVzlMSXl2T2I5WExndzY1NXhEbkF2UFFRTUtkRVg5WkRV?=
 =?utf-8?B?cUEvWVBTUENPTVJvNzZ5eGhUSkdMOVR3QWhCeDgwMHR0S2Zuc3NCSlphMHJu?=
 =?utf-8?B?OTFxNXhFSFp3SGJ1N3pFMFRyaE04UjBaZmRQL0gyVStkcTZadEVaaVBOcmZ6?=
 =?utf-8?B?WW5wOVR4cWwzRmFIRXJsaFhjRTFuSXBMTHc0QUZ4OUkrTUIydVVlcHc2ZXRE?=
 =?utf-8?B?OXNtd3NleTA5QjBtdjJ4VVJCNXFVeVpWaGpyT2tBVldQbnI2TlVGZmorMlRZ?=
 =?utf-8?B?cXRMMUZmeDBBUmlXaFRLb1BqMWFHSHZUNDhYQjlpRXZYZ3lBOWx5UnBKcDAz?=
 =?utf-8?B?THRnaTJqT0hRNVJQek51eWdQaWNRN0M4ZGl2YUtja3M1OGQ5WFh0SkN6MWJD?=
 =?utf-8?B?QVJuVU52L0d6QVBmTmFGdldqTWtCUmQ1S1BvQ3p0SHFjdVBwbUJVMm56T0c1?=
 =?utf-8?B?dnduRFRZM3pKTGF2NkdGYmFESWNOZ1dXZWlnSWFNZHNSbzJCWWU2Z25CMzB0?=
 =?utf-8?B?OHduWTF1TDgrbFFRbDBoaVV3ZkpnQXVGWHh0MVBVaXlMNFNHclMxNlV0Ynpu?=
 =?utf-8?B?Znh3YnlMeFdoeXZZMUUvMHoxR1JyMFVVbUtJVFplVk16cm11RThjajI1QmpQ?=
 =?utf-8?B?cEJVbXhCQXF4VXlITTVVZUdLNGF6RzQ4TVBCTzdXOENUeUQvTFJVRzRueGNT?=
 =?utf-8?B?ZWtjYWs1enBORUxIdVBTZ2Z0bk01VkFLUFNjYjBjZzJNQkFrZXNLZ3U5UlI2?=
 =?utf-8?B?K05JSFdDNGt6dHlGQXZkSEoyR2dKRjZjWnVwNFE2R2Fzb2NIZ0grQ0w2VXlw?=
 =?utf-8?B?RjlNbFc1Ylpnb2Z3NEZkbFltVFZGck1hdHRYb1RMRVM5SXBnVjNKQmJVMTZq?=
 =?utf-8?B?bTNPTTJRZDRTUEdLdWMyMDNIN3Y2RTZ5YmkzaXRqUStSZElhTzJvcEJORDVl?=
 =?utf-8?B?Z0RHd0JRaGZabTlMaWRxM0h6ZUVQb2oyVTdCbjdtV08wa2d3R1pwLzEvTnpY?=
 =?utf-8?B?OHdoeG9OOTNhSndUckk3NjJlejdTakhRWGpJbEtBaWRFemd1K3dIQWZwSitl?=
 =?utf-8?B?cXk0KzdwU1dwUThQNkJ3ZkUyblM2T3JaZ0VJbFhrVG5ucEJ5M0lXcmU4TnQ3?=
 =?utf-8?B?YWM1ZnQ5YVhVR3ZhVDhSK3U2SUFIdE5tekU5Rm9DblhtS1d6NmNuTXZHUk9v?=
 =?utf-8?B?YldMK2ZsN1J5NzdMWEZpUlE1YjA0dnY3MWdWK2RtdWgzd1R6NDhwVjJRMktG?=
 =?utf-8?B?NGc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: be9bdec4-5083-49a0-0461-08de2907e26c
X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4603.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 14:11:37.4523
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: VjWPshXLgEeXI1Yc63x2zaTnjJVUO0IGJRGdeE5tStqzDExDMtmY2OF89gFyZoyC4CwoiH9fdKEFdUzeTblREXbVTDIyYywP7J8cqVp8+Sc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB8380



On 21.11.25 12:57, Penny Zheng wrote:
> Function iommu_do_domctl() is the main entry for all iommu-related domctl-op,
> and shall be wrapped with CONFIG_MGMT_HYPERCALLS.
> Otherwise it will become unreachable when MGMT_HYPERCALLS=n, and hence
> violating Misra rule 2.1
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> ---
> v3 -> v4:
> - new commit
> ---
> Commit "xen/domctl: wrap pci-subset iommu-related domctl op with
> CONFIG_MGMT_HYPERCALLS" and "xen/domctl: wrap device-tree-subset iommu-related
> domctl op with CONFIG_MGMT_HYPERCALLS" are the prereq commit.
> ---
>   xen/drivers/passthrough/iommu.c | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
> index c9425d6971..8812e38174 100644
> --- a/xen/drivers/passthrough/iommu.c
> +++ b/xen/drivers/passthrough/iommu.c
> @@ -625,6 +625,7 @@ void iommu_resume(void)
>           iommu_vcall(iommu_get_ops(), resume);
>   }
>   
> +#ifdef CONFIG_MGMT_HYPERCALLS
>   int iommu_do_domctl(
>       struct xen_domctl *domctl, struct domain *d,
>       XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
> @@ -645,6 +646,7 @@ int iommu_do_domctl(
>   
>       return ret;
>   }
> +#endif /* CONFIG_MGMT_HYPERCALLS */1

"/1" type - build fail

>   
>   void iommu_crash_shutdown(void)
>   {

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Fri Nov 21 15:04:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 15:04:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1169297.1495056 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMSfs-00061A-Mk; Fri, 21 Nov 2025 15:03:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1169297.1495056; Fri, 21 Nov 2025 15:03: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 1vMSfs-000613-Jk; Fri, 21 Nov 2025 15:03:48 +0000
Received: by outflank-mailman (input) for mailman id 1169297;
 Fri, 21 Nov 2025 15:03: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=fili=55=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vMSfr-00060x-K7
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 15:03:47 +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 468e65b5-c6eb-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 16:03:46 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 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.9343.12; Fri, 21 Nov
 2025 15:03:41 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.011; Fri, 21 Nov 2025
 15:03: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: 468e65b5-c6eb-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SyqerrGSTmGLU7D9pGSKHuCwkVssYahaQYunWL+MuGoCGN/6FWL30W+x/dy41X+5rhRgOMg5WizTwe58wEv6zuIGakzxdXzWZCboB4/xhYOheb6+IgObIXCJ2ZT/L2DCwCcVmYSH+74QeWpdB80R2UJ2ON/RmIjg+XGdcMAOB00ENfbQbJ9ZIj3Jofs7r7iHFXXG99GIisM2z/CJkzXsVpj/kDdreZWxvhlowpsXygXgcSGxQf1zpj09jvPvOhOtjmq8bAi18UBuG/Q88gQBsFcBxHrzFNdcZTYCdVrMzBoKofEsWTAQvviKz82+WaEkkCTWOknYR2CLKjy7xzxUkA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2fOaz8+DeRIrMeBhKJtCfiKmGwPIvGWTFHxf/4YwmhA=;
 b=Q/1N030Oq/XsBYpEfXwEozzWoWFRAMBp9hUWpPwgddhByTlsqphSDV99yjQ8nzveJVsecDel09mLoY1FI4SzFA/G3k4SgkpRdt7IeN6gX1Kth8azYyRRaTycZyEV08WzdseQv1gdiB32Eevd9DUoilg/gOAKwNFTv2ggdU+XESWRb9uuFObXdsdS9y0Xpn9iusPA4tr69uB6pY+6VIrdmkNdszCoNcOC8qcxN7OKK73Z7GWNwk+rZjegUGB9//pzNSt3ovvtz0Cd3mg/iKlw0bVFRlh2AK5Dj7E0UiiFXnIk/q78UFcX39py5TP3GXctqSqQALXfU0H18DX0N5RoNg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2fOaz8+DeRIrMeBhKJtCfiKmGwPIvGWTFHxf/4YwmhA=;
 b=eW29YcMN6C8cEUgll1QiVz57neVDKSuxbhFCj+o2ieSxz6SD5hZtSLexXGkfSsXsYvvUjIhbPH57YIBwvk4PMIb1VWz7vssMsTPs5TNys73Nu9F40nqnXjeZRSroZaMIj33xa20UuTJ/OB6nB0w1oEe+ZvVpzvY2n+LZYhMCGEo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <4f898adc-323d-4c3a-a780-1acb2c58345d@citrix.com>
Date: Fri, 21 Nov 2025 15:03:38 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251121132332.23514-2-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0018.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:62::30) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH2PR03MB5366:EE_
X-MS-Office365-Filtering-Correlation-Id: 6617731b-394e-48fe-aedc-08de290f2897
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?WGZvc0Fzekc2SGZrcng0S2tINzVIdXQxNlBYR3JDdVNHc2VIVFJoNVRyR3Ey?=
 =?utf-8?B?WkhhYy9wNitlZUtPRk1iQ3ZnVjVTZ093UWE3S1RoNE5oekljYm8rRHM4UnJQ?=
 =?utf-8?B?K1g0QWNCaG1yWVlybVk1bjhoNWFDRWdGOG1WaTdQcWxnNGlyK0NzQ0U2LzRt?=
 =?utf-8?B?NTU2OXlSa051NnJWMUNpeXBZc0QwOTgySFRJQWVyM0pZd3BjMEsxc2xXZWM1?=
 =?utf-8?B?TGxRcm5yazhwQTJGbXdaclBuanNDalltdWw1V1hGQUNVdUIySWJrSUVCdXFx?=
 =?utf-8?B?YklNR3Q1MEx2SllWRHozaEJTL1F1TGlWbitDWStJRlFYd0ExcG9yeU9XZnA0?=
 =?utf-8?B?cnBqNWZWaW5lbnQzK3lpQWRYWlJrcmdhT05EcmVPQnNScFNBNHBWMWh5cEtP?=
 =?utf-8?B?eHlxRVV4eWpKaTVDLyt1cnE5em5EMHJUMTZpdlFheFg0OEZxWDVDTnVJNFpi?=
 =?utf-8?B?Ym4wUlZLT0MwSDNERXd2dzJOTlVUTURLTlZ5S0pvQ3l1d3dxWmw4VXRycnl3?=
 =?utf-8?B?RGczN1pNb1UwMTZWditrcUZRdzRtRWhpT1NRK0IreWl2d3FxaE5BSE1VdEli?=
 =?utf-8?B?ZlpIN3pBRm56cW9sbXFidCswMVhzdEk3THlXd2R0N0RvZENFNVRacjJ2a2lh?=
 =?utf-8?B?bjk5R2ZBUSt1RkRzZTRIQ3drZGw1bWlyd0NXU3RGZmdzVWZjaS9BRHBkaCsw?=
 =?utf-8?B?NVZpdXlCSHNPWk92Skp2cHh1NXpDRldhQ0xaZWZxQ0tKZmdGTGdZcWNITFE5?=
 =?utf-8?B?dGVHTEF3d0lNalBxQ3VFYWNHU28xNm5mWnFjbWVrYXZUVUJNUlJsdWlQcE90?=
 =?utf-8?B?VGFhcC82S0lLMUdYNzB2ZVorY29JOFpEYzdtMGt0TTlpaGc5M1BRbEdNNGM2?=
 =?utf-8?B?SnFjcmZObnJRaFlva0Z3T0swb3RTaVhNYThmakQ3ek5raU04QUZvYUpmdER1?=
 =?utf-8?B?dUlwMkowWU1tNGR5TmpKMGJIYmhxUHBrbGpsMDZ1SktxaG5tMmZ4bGlqdGZX?=
 =?utf-8?B?ajh4MVBtMjEzOGZTbDVTY2ZwZDc5bndUbEIxQUxEMlhPenpzKzNaM2ZTSity?=
 =?utf-8?B?aVY2blBYMS9xclVKeGN3SnYvMXZyMENTb0xzaXpwb0RaNkkycWFaYis2VHU5?=
 =?utf-8?B?U3p0OTNNN0lKekJrQWF2WWFDdHlvWjNpaUhTdU9ZaXpIeTRNakR3QTluNitU?=
 =?utf-8?B?K0hEa1FaOVhqQmVBcC9zcUNuNytDMU9yaGF3SURQVzBYWGd2d0JtZENtYWNm?=
 =?utf-8?B?NWIxZXRQU25ZcHd6QlcvRDVDQkkzQms2WHBqQnAzdVV1U3c5T2hzYzM0RXJs?=
 =?utf-8?B?d3lOZ2E3NnJzKzlpMVN3NzVqdHpQTDNaVUNKa3ZkY0ZOeFdadVAwOVVWMDBQ?=
 =?utf-8?B?QUNRSzVvakFSVm1xVmwrNUZEbU5DUWd2V05ueHhoTThkMGpZMEpQSUJJaVM1?=
 =?utf-8?B?RW1vc05QY2RMMUFWQmcyKy9TZ080UWFuenNmYkF0ZDNCcjRyWXBkZFJZRWFa?=
 =?utf-8?B?KytJYWNVYWxXU2R0bWZkUTFjRHljdlNJWTRCZDgwYU9MNDYweXQ0cEVLVDJm?=
 =?utf-8?B?TUMyS3BJSlFsL0NnYklpUy82SFRPSVdlVVRYTDl2RGdoVE1Na1ViOUduNDJj?=
 =?utf-8?B?T0tHaERvREtoN2c5bCt0dUlDOEd1WlVMMm94NXo5S0pBaTNZKzUycDV0M3lX?=
 =?utf-8?B?MmpUUWd5OWE1Y2IzWnoyeG42ZDFmNXhPN1ZJZzBwcmVwZk1MeThwdFRKbFBP?=
 =?utf-8?B?TkZFSVRQcnVOcDdWU3NsdWI3YTJDSVBGM0dJOFN5TklWU3cwOVhrblZZZU9h?=
 =?utf-8?B?V2RBQ21BZGJ1SnA3ZDl4eitGeEpXWHh1Q3dWZnI4NFE1WUFodXBqakVBSUl3?=
 =?utf-8?B?NkRRV09CSFE0MFgydVIwd3NXU2x5Vll6YWRSaTk1ZGtZM3NKTERYU3g5cExI?=
 =?utf-8?Q?t3bE6nu68NodHCfj08ZvLNJtMbC+6JuS?=
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?VThkZWovZTlqelBhRDFqby9TVzlNVmpwWE1pSnhvWnZ4a3BwUUw0blFYL010?=
 =?utf-8?B?K2JKQUtFekxQK0M1WW9pa2FtU3RYekVuT1V0anI0WHE2UnROUi9Jajdib0NQ?=
 =?utf-8?B?SFFjSTB3MFJVaVV2RSs2U0NvVGtZTVZZa3pYVWFwcExjVnNBQUZwTEZwdXcx?=
 =?utf-8?B?Z2N4cHVjUG1MVTc0TElEOG52VFNSaGRoZnZKOVZpcVFqc20zVU9SUGMxWng3?=
 =?utf-8?B?SDBNbkZObTJweitrKzZQNW5xejB4MXdZeXV6dlNVcXZjTTNyZFF3dzhYLy92?=
 =?utf-8?B?bURJZlh4WEptbllvOW5UK1Jna0dqZWs3QWQ1eExQSHp2ekhFRVNRK2VFK1BW?=
 =?utf-8?B?TmRlbWxvaEErandvSVYzZEpCYTJiWVBDZW1nNC9WNUlkMDEyemFtdGVIQWlm?=
 =?utf-8?B?T1B3QXdFT2VqYlliUG5sV3NuSVJBMXlDZ1QvQUhSRmNERk5qMmplUkM5cVRK?=
 =?utf-8?B?cGxobEpaOXpIWWwvWitSdXZ5RWgyQkhsWGFFMk0wTTZZSmhhL3ZwaUkvTE5V?=
 =?utf-8?B?NWtZWnpQQXA5ajRQc2VyaEhLZmtHbXVvSVYwRDF0cVc2QVZ1azNQZGI3YjRz?=
 =?utf-8?B?SHVqUXJmeXAyTUVTYlNhaFQxaklZam9tTUltRnZNMy9QM1ZsSmJCN1h6YXl5?=
 =?utf-8?B?dmZtYW5jdnJiQWI4V3U0SXYrYVJRdkcwb2k2ejdGY1R2ZjVOSEwwREJhUWZ5?=
 =?utf-8?B?UzlWSkh0K092c3lWMy9WM3hUK3VoL2U5ZERDdmZ2ZHBLc2JpY3N5dlV1d1NC?=
 =?utf-8?B?N3hqdXUzVEdoRHBwUmdteGlrUkNtUCtlODhvbDBIeUFoN1JMTGhpMVd3MVov?=
 =?utf-8?B?emR1azBhNWZ5ZWpuU3hYck5kVDdrMTVoY3dwVUQ5VURkSVArQitBL0RKQUht?=
 =?utf-8?B?RlRISXFlUWc4MDcrSUdYajZGZjZWeWVrSmFmcDRZYXlnaHI1elFFMHYwMFBX?=
 =?utf-8?B?S2UybnV2T2o3MjB3cktyTE5ibWQ3Y2NSN2cweTJ0bFRTY0Z0Z2lFNENtMVNV?=
 =?utf-8?B?YXVXb0FSdi9qeG5oL3BZQW5Hem5FSmdzQmpTR0RDU09QRHVkT2dIdmEzLy83?=
 =?utf-8?B?dXFPcmRoYjltOUxZL1dZaXYyU0p5dkMyY0VjR2o1M3luckJYaHBrcS9QK1cz?=
 =?utf-8?B?Y01DSk9BM3VMUTNhWXZjQ1NFSjNqQ2gyck5QWVI3a2l4YXlPYVBuVWcyZ25F?=
 =?utf-8?B?bDU4Qnd1T0tEM29hemlpamdVTS9ucTFsQm9ZMXNvenJMT2JjTFM3aFpZVys5?=
 =?utf-8?B?aWplb0YrZ2o1K2FyYmY2REZ2K1RLTlBrZXF0TTBkQWlHZXdUTXlRNXRESlA2?=
 =?utf-8?B?R1JRZHYvVjRPSzA4N1FkWnMwMGZTSHI0elZhK083OVR5OC9BR3J0V1JERURs?=
 =?utf-8?B?Z3BIeXlRbkN0VmtkZTdOZ0V5M3pveXpYb2JJbzVXYzc1NHRHOGNrZVNWM25U?=
 =?utf-8?B?MVJ4YUxxRWFEajBwT3lHYmNIOFREMTYrc29maW83bzlTeWdRL3Y5d0lHSGRG?=
 =?utf-8?B?N0oxUndWL25IRnlyV2JNN3ZvNUlQL3NxZ0tTSVhZL09LenQ4QkNNcFAxcEVT?=
 =?utf-8?B?MXA5RUNvS2pCSnBRSE5HOUxjUkFVQjVMUkQxTHZ1Ti9KR0NTK0NDLy84M1Y4?=
 =?utf-8?B?TjhlUFlyLzBXaFF0Ym93dUx0MTNoVnJpYi90U2lhSE1XbVNzYjhZV1dlMjBo?=
 =?utf-8?B?UjRqVFgyZWN1VWlqbXJ5blBhMExSSWVwTkgzeVpQbzAzRHdXelhjKytMVlZG?=
 =?utf-8?B?QW1WL2x6VHMxeHJPbUFVUkhRazMzL3JiZWQxdC81OXlaVTdQWElYSnVOUzMr?=
 =?utf-8?B?NTJIL0VvdFNtQlZOVlF4RWhiVkFkZlNpcmNGUHVDQ2srRWtzM2ZpWnhpNlha?=
 =?utf-8?B?Ui95blBFL1E4a0NrNVNZVWhiaDNIZXVaTUUwdUx6ZlJXV3p1RTk5dnNsbThx?=
 =?utf-8?B?bVpPb2wxanNaU1Vjc0x2QmYvZzJRWU9hZXBncGRzOFBqUHZuclJYU1FVbFpW?=
 =?utf-8?B?UUVTTzFvZWdWNm84bWJqRWJQcU9sSVczdXdCUkhYTzZnaDI4NHp4d0lFWFc3?=
 =?utf-8?B?LzM1UE9lV3FkWHl2TmxaVndSQ0JHYXcxVXBMVml2TEpxdGlTRnBLUnoxandv?=
 =?utf-8?B?bjh2OHFZZDlqUmdXcnpSMU1pdTA0bXRibHcveW5VRWRtUUlpZHh2ZnlpbzFJ?=
 =?utf-8?B?eVE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6617731b-394e-48fe-aedc-08de290f2897
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 15:03:41.7272
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: EsIJYv7Qk/oL5LTfGLHIzjri/PWqvI4CxsEOhVXR+9UakP7lUE7jnzCheCewBpsrJ7HsPQ2tj2PhGXqbAyPEbwHTD/2ox+Np5ZPcQqal6dA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5366

On 21/11/2025 1:23 pm, Juergen Gross wrote:
> Add a new make macro for creating <file> from <file>.in at build
> time. To be used like this:
>
> $(foreach file,$(IN_TARGETS),$(eval $(call apply-build-vars,$(file))))
>
> This can be used instead of the current approach to perform the similar
> step for file.in during ./configure.
>
> This will avoid having to run ./configure just because of modifying a
> file depending on a variable set by configure.
>
> Prepare to have multiple files as source for the replacement patterns.
>
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
> V2:
> - don't use pattern rule, but create explicit dependency in macro,
>   don't require to rename source files (Jan Beulich, Andrew Cooper)
> V3:
> - prepare for $(PATH_FILES) to be extended by other Makefile
> - let generated file depend on $(INC_FILES)
> ---
>  Config.mk | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
>
> diff --git a/Config.mk b/Config.mk
> index e1556dfbfa..39e8007b9c 100644
> --- a/Config.mk
> +++ b/Config.mk
> @@ -159,6 +159,19 @@ define move-if-changed
>  	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
>  endef
>  
> +PATH_FILES := Paths
> +INC_FILES = $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
> +
> +include $(INC_FILES)
> +
> +BUILD_MAKE_VARS = $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).mk.in))

Everything else in the series is looking fine now.Â  But why is
PATH_FILES dropping the .mk extension from the file?

It looks weird for both INC_FILES and BUILD_MAKE_VARS to have to
re-insert it.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 15:11:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 15:11:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1169308.1495067 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMSmn-0007b4-DV; Fri, 21 Nov 2025 15:10:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1169308.1495067; Fri, 21 Nov 2025 15:10: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 1vMSmn-0007ax-94; Fri, 21 Nov 2025 15:10:57 +0000
Received: by outflank-mailman (input) for mailman id 1169308;
 Fri, 21 Nov 2025 15:10:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=wmUi=55=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vMSmm-0007ar-9K
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 15:10: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 41d86e0a-c6ec-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 16:10:47 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-477b5e0323bso17481675e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 21 Nov 2025 07:10:47 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42cb7f34ff3sm12086179f8f.16.2025.11.21.07.10.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 21 Nov 2025 07:10: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: 41d86e0a-c6ec-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763737846; x=1764342646; 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=DPECoFCm4Ht3/cV9B1ezaL1kyMyMLr4fOnQzFvfl1dQ=;
        b=JMso+mdCsvPACUMfPmte8DO4/+dmLi7fe4py+SEz9/mH3FC4bLPhqgdsYRzK+C2ty+
         g55JYu+wwiDysIU9t+kjNvEYRrUZbmNCz/y7gDIhyB/AhBUdYzaeQtkoXcGRC7Y3ugIY
         /jWF/DJ2uiFo0qALxPc73mXWVoB6cVQP8CeWYBlrhCgB/xYKO8dr8epHXOFrVZ0FpPVa
         UUYtm3efXmV9ADsBTxO4uOnoLaaU6cvwuLLsS6sY4LqRDZ3p4OjWuBs2T/VkBxyWieeF
         EhXNZ1LknW0dIV78cax76MFEL6MYfHl0F/Uj7vUHZTPTIkZXzWNfdzUR64Mr2a+SUce+
         I4IQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763737846; x=1764342646;
        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=DPECoFCm4Ht3/cV9B1ezaL1kyMyMLr4fOnQzFvfl1dQ=;
        b=PUZPiiXoqVa/acQKqttKMUyS0Y7GCY7hrh1x7ayc4SEBInoECSds3GMn6iWNrCB8cS
         TerHsRgolm+RjN0FlXEOr5LjzZhG+m7iPmOF7AEuZFZVd4QpW507TfioWfFW1YI9ECht
         yTjBSKs+eykwOLrXaw9VgBQAdfY8uTi8DxyM+56W6yB0cEHNSe9kLcRLA+TOMynwsjMc
         /ZRCNwa5E7mtD4e//i8infQSzLo1f9FP6XLUkmaCvGkQ8lP1fXD0KxYgzXILsgpZIGRV
         dQQ6+j97iUlTBOV5u+TDaGaGWd9Y+2a2lDckw6gcPdhEBZijA6ZQxmspA3BmjedCqUOP
         aD7g==
X-Forwarded-Encrypted: i=1; AJvYcCUjAR6KEsI1C6O3TITQHXiHDa12BOU/dSXbSRdyqTCVmBhohkRn/b+HmjT9rBEn99CYaQAjzf1hh0k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxlBfFuV7Y/38TSM00jO51KIR1Lh+sbprLVP5H4aM4HOyY8XXaT
	l11GMQ8yeT93ov78yrFDasWves1hPw1gTJ6Ny3cClzriRSeBAsfhcruSSYQz1IlpJmc=
X-Gm-Gg: ASbGncvS+ie6yfgJnk/dlsLT4kbrVWHVhNVheauI0Em7kxXCKtXVzNdl3YFvKPJR3Mh
	DlSoXCQ5tKyVLD0qNt+lrm8TPjm/SB7awDm9g/snwZKTJswiwb1SPpPLacV9lmrQJCxnEsaCkzw
	q9t15gAb7Sa0r5+K9h/SdhP4z03SkQsBUt6AmaBOR+w0HlY+Fv0i+9etrTO58gy6n7jxalZ4heh
	PwrR5i/isgxGCo/18v/n9VksaSPxjTwtfqMBOWo4RDxp1EFAs/EOrQSEdb4tzj+FB6stv9Dza+l
	2OBvGRxZju7+CTjGEV3Gx1q4M3CZECOm07/Y2gJ+bg9/xGnoVDKRvVf6NHi3kUzlFVBN//U0HGe
	/qQPGIVCIREJgJth+c260q9MGpeq8Es4edE2EohDbtyZMKMjWnZvS7EIaBzFUatdICaCtf+lNyk
	uSQ7ysA+5wwt96WmfOmaT9W8u6Xd4dwxMKFr5AjfXVAD1DKUQILp2dFVUfXz3GDjlnIA7S27PbK
	wqQaB9VEcDB1I56ggb07fX6HSHICPbZhRRj1PM=
X-Google-Smtp-Source: AGHT+IGc5XlHFTLrdDnsPuGkdb6a7rDvhd0Qg4G2LZYfl3B+fINpcDUWo6Sc0cBkd1Fwy6zydAaj0A==
X-Received: by 2002:a05:600c:5952:b0:477:3fcf:368c with SMTP id 5b1f17b1804b1-477b9ee4fbfmr48544795e9.9.1763737846048;
        Fri, 21 Nov 2025 07:10:46 -0800 (PST)
Message-ID: <201bbc2a-310b-4880-8633-485535762258@suse.com>
Date: Fri, 21 Nov 2025 16:10:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
 <4f898adc-323d-4c3a-a780-1acb2c58345d@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: <4f898adc-323d-4c3a-a780-1acb2c58345d@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------W9GfgIWIp9RmFWR5KBjr4m5I"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------W9GfgIWIp9RmFWR5KBjr4m5I
Content-Type: multipart/mixed; boundary="------------16SeOCdA52QldkIHHRqEL0AC";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Message-ID: <201bbc2a-310b-4880-8633-485535762258@suse.com>
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
 <4f898adc-323d-4c3a-a780-1acb2c58345d@citrix.com>
In-Reply-To: <4f898adc-323d-4c3a-a780-1acb2c58345d@citrix.com>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------16SeOCdA52QldkIHHRqEL0AC
Content-Type: multipart/mixed; boundary="------------Ps416FLVoHbQs0kHrs0ofvJ5"

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

T24gMjEuMTEuMjUgMTY6MDMsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDIxLzExLzIw
MjUgMToyMyBwbSwgSnVlcmdlbiBHcm9zcyB3cm90ZToNCj4+IEFkZCBhIG5ldyBtYWtlIG1h
Y3JvIGZvciBjcmVhdGluZyA8ZmlsZT4gZnJvbSA8ZmlsZT4uaW4gYXQgYnVpbGQNCj4+IHRp
bWUuIFRvIGJlIHVzZWQgbGlrZSB0aGlzOg0KPj4NCj4+ICQoZm9yZWFjaCBmaWxlLCQoSU5f
VEFSR0VUUyksJChldmFsICQoY2FsbCBhcHBseS1idWlsZC12YXJzLCQoZmlsZSkpKSkNCj4+
DQo+PiBUaGlzIGNhbiBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIGN1cnJlbnQgYXBwcm9hY2gg
dG8gcGVyZm9ybSB0aGUgc2ltaWxhcg0KPj4gc3RlcCBmb3IgZmlsZS5pbiBkdXJpbmcgLi9j
b25maWd1cmUuDQo+Pg0KPj4gVGhpcyB3aWxsIGF2b2lkIGhhdmluZyB0byBydW4gLi9jb25m
aWd1cmUganVzdCBiZWNhdXNlIG9mIG1vZGlmeWluZyBhDQo+PiBmaWxlIGRlcGVuZGluZyBv
biBhIHZhcmlhYmxlIHNldCBieSBjb25maWd1cmUuDQo+Pg0KPj4gUHJlcGFyZSB0byBoYXZl
IG11bHRpcGxlIGZpbGVzIGFzIHNvdXJjZSBmb3IgdGhlIHJlcGxhY2VtZW50IHBhdHRlcm5z
Lg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNv
bT4NCj4+IC0tLQ0KPj4gVjI6DQo+PiAtIGRvbid0IHVzZSBwYXR0ZXJuIHJ1bGUsIGJ1dCBj
cmVhdGUgZXhwbGljaXQgZGVwZW5kZW5jeSBpbiBtYWNybywNCj4+ICAgIGRvbid0IHJlcXVp
cmUgdG8gcmVuYW1lIHNvdXJjZSBmaWxlcyAoSmFuIEJldWxpY2gsIEFuZHJldyBDb29wZXIp
DQo+PiBWMzoNCj4+IC0gcHJlcGFyZSBmb3IgJChQQVRIX0ZJTEVTKSB0byBiZSBleHRlbmRl
ZCBieSBvdGhlciBNYWtlZmlsZQ0KPj4gLSBsZXQgZ2VuZXJhdGVkIGZpbGUgZGVwZW5kIG9u
ICQoSU5DX0ZJTEVTKQ0KPj4gLS0tDQo+PiAgIENvbmZpZy5tayB8IDEzICsrKysrKysrKysr
KysNCj4+ICAgMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKykNCj4+DQo+PiBkaWZm
IC0tZ2l0IGEvQ29uZmlnLm1rIGIvQ29uZmlnLm1rDQo+PiBpbmRleCBlMTU1NmRmYmZhLi4z
OWU4MDA3YjljIDEwMDY0NA0KPj4gLS0tIGEvQ29uZmlnLm1rDQo+PiArKysgYi9Db25maWcu
bWsNCj4+IEBAIC0xNTksNiArMTU5LDE5IEBAIGRlZmluZSBtb3ZlLWlmLWNoYW5nZWQNCj4+
ICAgCWlmICEgY21wIC1zICQoMSkgJCgyKTsgdGhlbiBtdiAtZiAkKDEpICQoMik7IGVsc2Ug
cm0gLWYgJCgxKTsgZmkNCj4+ICAgZW5kZWYNCj4+ICAgDQo+PiArUEFUSF9GSUxFUyA6PSBQ
YXRocw0KPj4gK0lOQ19GSUxFUyA9ICQoZm9yZWFjaCBmLCAkKFBBVEhfRklMRVMpLCAkKFhF
Tl9ST09UKS9jb25maWcvJChmKS5taykNCj4+ICsNCj4+ICtpbmNsdWRlICQoSU5DX0ZJTEVT
KQ0KPj4gKw0KPj4gK0JVSUxEX01BS0VfVkFSUyA9ICQoZm9yZWFjaCBmLCAkKFBBVEhfRklM
RVMpLCAkKHNoZWxsIGF3ayAnJCQyID09ICI6PSIgeyBwcmludCAkJDE7IH0nICQoWEVOX1JP
T1QpL2NvbmZpZy8kKGYpLm1rLmluKSkNCj4gDQo+IEV2ZXJ5dGhpbmcgZWxzZSBpbiB0aGUg
c2VyaWVzIGlzIGxvb2tpbmcgZmluZSBub3cuwqAgQnV0IHdoeSBpcw0KPiBQQVRIX0ZJTEVT
IGRyb3BwaW5nIHRoZSAubWsgZXh0ZW5zaW9uIGZyb20gdGhlIGZpbGU/DQo+IA0KPiBJdCBs
b29rcyB3ZWlyZCBmb3IgYm90aCBJTkNfRklMRVMgYW5kIEJVSUxEX01BS0VfVkFSUyB0byBo
YXZlIHRvDQo+IHJlLWluc2VydCBpdC4NCg0KSG1tLCByaWdodC4NCg0KTGV0IG1lIGNoYW5n
ZSB0aGF0Lg0KDQoNCkp1ZXJnZW4NCg==
--------------Ps416FLVoHbQs0kHrs0ofvJ5
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-----

--------------Ps416FLVoHbQs0kHrs0ofvJ5--

--------------16SeOCdA52QldkIHHRqEL0AC--

--------------W9GfgIWIp9RmFWR5KBjr4m5I
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/Ey8FAmkggPQFAwAAAAAACgkQsN6d1ii/Ey8M
RQf/cyuynJCVcCjQ+RgostkspvFKkVOorZvPOtRvRlPBZv79M/RvdJzlY8CaAwhoLifpB2P4wtFe
jRhR9NTEygdu835ldun9S6EWG4RKMcu+PheDYdsQ+4GcR+uDTwx4QbdZgUhra4L4yPr4ESg63WjO
7uiBrXXUFqTDbIwEAhxZEC6WLnRIUUbs6euFxBM943eehdMMPycBSb+dhV4LyGiyFpJuDD3uAJBm
HjhtyoI4VCCPVqamAPhBabh3gWeBH+qr9zXOLUVbHed5BTEkhAiO0s3hfNUcvhVrxVThzHt5u8iT
4RVWJW8RxeCTe5O6ShzEuiE3KNgSZryjnYiXIvBAUA==
=ULGP
-----END PGP SIGNATURE-----

--------------W9GfgIWIp9RmFWR5KBjr4m5I--


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 15:22:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 15:22:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1169321.1495077 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMSyC-0000xR-BE; Fri, 21 Nov 2025 15:22:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1169321.1495077; Fri, 21 Nov 2025 15:22: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 1vMSyC-0000xK-7F; Fri, 21 Nov 2025 15:22:44 +0000
Received: by outflank-mailman (input) for mailman id 1169321;
 Fri, 21 Nov 2025 15:22: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=fili=55=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vMSyB-0000xD-6z
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 15:22:43 +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 e8c69bde-c6ed-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 16:22:37 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS7PR03MB8193.namprd03.prod.outlook.com (2603:10b6:8:263::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov
 2025 15:22:34 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.011; Fri, 21 Nov 2025
 15:22: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: e8c69bde-c6ed-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=T+7xVpUpFC5kpv4H8PS5hT+JvqCc9i3pDgxo8JHPWJdbthp45/NkoHmhnzXB44Qvy1iHvgsLWhvWkkBaS8lEPNzSBXiqPbdITCXcEHsRY64gMQYgbWJ5hRQb7nPP8+prbIPIVwBUzS8jIiF3qI+texidGuK6X4N+vKaVI4we8Kv0frbfbPH0Q5oGQhgrm9XRHJTr8fG4xc1tbzA+/vJREwPX+wYyUMnSBomrxf09xpCLw9dI6KexYBO1XAgbps90BtffnIr5bGSFOQLiCYbqHNchSXm5hhqbrhjvLrehVYdec602TsDPKcC4xGYVJ8qcjQGyNkoaDPjCAQpmSzTGhQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+8hfGA+QCw7Y8Ibbhnp0qO2qGJX94/vS/E8wLkEalwI=;
 b=QsL5EUKcjFl44iEEvK17KiBtmnFI8D1wp5rd72JAeVrzjCXCr20/gDidD3Hna6Obh4CGTt4zp6F7jKbUuO1AohbQ2+ZT0k5Kq4l5b0wkykQSHn9kNW3ltys9/LJo7Xc+TrejAntvhqKkNkRln2W+whXYp4tZG1FgSR/vs+NPLrOxgd9pOQJTFs64kIAHFZYWBXfQnGeKL+A9M35kam45E9zIn3/DPrn+zOuVdNqKOuJlbkV7dLT5f2zKrkpWtLupjGpVx3uZlTsox9A93g6G72XebSUTxvGllazvSjzCSmrSSEz0E2eLS1LD9fuooHmBi+vmDLcHLvjIf1diJZMwRg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+8hfGA+QCw7Y8Ibbhnp0qO2qGJX94/vS/E8wLkEalwI=;
 b=kvkThLZgK0AXKp5SQy+sqGQwCxw9R5bueBDhGoQkhTZFSG+1XklfrDyPfSsu11Xwr0qFQmZFedS/ys2Nck2qGMgyzA5wwoV6G/9fnYvsSv32c045BqI7ZPQ3no4ye9T6D+Si7n7pQPGRLTRr+AE0goTLC9KfVcRLU2UM0a7uveg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <78da6bbd-5fa9-4bbc-ac22-d52a11527c76@citrix.com>
Date: Fri, 21 Nov 2025 15:22:31 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
 <4f898adc-323d-4c3a-a780-1acb2c58345d@citrix.com>
 <201bbc2a-310b-4880-8633-485535762258@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <201bbc2a-310b-4880-8633-485535762258@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0306.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:196::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_|DS7PR03MB8193:EE_
X-MS-Office365-Filtering-Correlation-Id: ae8a091f-671c-411a-87d8-08de2911cbe0
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?Z3VCZlJRWmJHU2pPaEF2b1orZk9wY0Qyd3d3dFhPeUNzeitqajFLaHl1ZTBx?=
 =?utf-8?B?THQzUGZ2YVdpZHVDc2lYME9iTmZhczVEcWd3VHRnK2ZmSmI1SHFFcUNCWUZl?=
 =?utf-8?B?bUZKaFE2YWtjN2xXanBQZnFLaVZpb0QrT05WWlJzQXNXeWZwS1lhdWtodnNn?=
 =?utf-8?B?cDZVa01oL3Y3UTh3QW9sUFpDd1ZjRmxMV1J2SCsrNzRGcldKZ3R4WnllRUJQ?=
 =?utf-8?B?c2pNTURqU09FTmRQMTdXeUJQaWlDUDYrRHU1RjZXOTF4cmFWYmhMMENIc2Vu?=
 =?utf-8?B?L0F1RnltRHE0VzQ4QnYvK21JNHpxSUdBMDFYa3Z1UkszWGt0eFBGVG5QZjAr?=
 =?utf-8?B?Ykd4RjBSUVhqSDNNVkw3TThUSWw5ZFc4dTkvUnhRajhYY3JEZy9LZnpvdjN4?=
 =?utf-8?B?ZnpmRmwxS2NLdFEzMWp4cU9lOU5ReDlKTFdIMEpyNXZRT00rNG9YRWZNMzB4?=
 =?utf-8?B?VWJCWFl2dUJQYmc0Z2tIc2xaY0o3Qy9aWGMyTHlmY1JJMlBCcnVRcVEydHhS?=
 =?utf-8?B?RitNRkZXTEZTRWxWR0hydjZkQ1VLUitZeFd0UzlpaWpwY3J1ODFxSzNrNkhC?=
 =?utf-8?B?bnE0Y2hxbjdwS3NXUGtaMmxzU2Z4WE9nYnlacGFBZlE5bnFtNzZEbmpKOFZ4?=
 =?utf-8?B?eXVpL05mbEl5Qkg3d2xZa3dYb3JSZ1U5eGkxUURWYmxwSHRybk1UNGl6b0NO?=
 =?utf-8?B?Z1VlQ0lhbVNaWFVqZlRZRmZNRHZ5aWRwMTlWanBUU2J1QTJSd2FNV0p2Nnhs?=
 =?utf-8?B?Y1JHSHBIS21xSjl6T3ZZMTlpZE9QTFRWN2Z0OFVCdzl0NGQrYVFlV3FVNGU1?=
 =?utf-8?B?dmhldzR4ZW41M3hFSHM2Zk5SL1RvS215ekc1c1Rtbkk3TnkyOXFVREcxbStF?=
 =?utf-8?B?U1ZGYnpseXZaRUN1NmZONXZCalFzZFlGSlRnRVlQc0N3UU5JUmhnMU9BeGMw?=
 =?utf-8?B?a1NLcjAxTDZDV3o0UVVBM1lDQ05ZNW9xZkxkdTJwZ0wzVmo2a3M4dVRqbVZI?=
 =?utf-8?B?N01Ec3ZlanpUUkE4aXhkYlZJTE93QU9aWlVFU2lJVk9lZ2VqWTRjQkFBYWxU?=
 =?utf-8?B?cUU2Y3Vvc0phNU14Q3BNejdVaG5naUdjcGU0b1ZBc0p6ZW9PdHNFdmlrd3Yx?=
 =?utf-8?B?aXhqV0dLSnhCTEtjRkNxUGFGei81QWI2UnRHbXJKTFpWM2t3UGg0SjNhMHNs?=
 =?utf-8?B?ekJUNTltQlovYWJUZWp4cHBPSFoxc1N1VitFQXA3ekZ1Z2RnRDRqSmJiT1Ro?=
 =?utf-8?B?b091elRvdnA3TEVzdUlGTElNNXM0cHdFRVhQVlNnTzUrRDdsUlhJZ2d1SzVp?=
 =?utf-8?B?RUZkSEZQWkNSNms5YXYrS3lMVVY4TjBrZjEvUEJXalFjTUxGZkJwZTBKdFNi?=
 =?utf-8?B?ZmJtTU1yVjJPRVg4UmlRN1N2Z0xndGdObnhQdXZFYVRHZjd1M0JOdi9xVTJR?=
 =?utf-8?B?RXlTaUVzSkhWdWVZOE5nOXFyVjZiVW5abG8weHhYOGlZc2NKNEIvRWFuU0c0?=
 =?utf-8?B?ZVRkRHA0T1d0L25KUnFZR0cra0c4WGFUUFFnOXhIT0ljNVBxcyswd09IdjNG?=
 =?utf-8?B?M0ZOTER6Q2xWRGhPMy9ZcU8zbDdGZVZpNmNEZ2dmSEhIVm5aUzB6MW1ndFJu?=
 =?utf-8?B?RzhVaUhOWjJqcGF0dDMyY3kzNmZTZjhySzlPSGRReldhV1pic3pVSmthUTB6?=
 =?utf-8?B?ekJxSDZjcVo0T00yNllaUkd0Ukp0dHVCZkpaUXdWMS9BQ3RQWnlnUHFOalgv?=
 =?utf-8?B?NFlLbTFKNHZvTEc1U3IvM0ZmZnpzZjRHSnc4d0NHZmxaeXF4QkpjRW1iWEZZ?=
 =?utf-8?B?bFhueFRxUzFleG11VmhSK0cxaWN3RS9MNCt4eHBjZC9BSWpWZVk2eUphY29Z?=
 =?utf-8?B?bXg5VjF6eCtIb3VaVWZnZk12UFdkU2wxVFpZL1FNbGpIMm4xQyt6aW8ycXFs?=
 =?utf-8?Q?XXavgpeTngV4paSTLoDYJVgf5XzLqeMU?=
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?RHhhM0JaWWRUNjRZQVNzVFZ0MWE1dmpvd0dJWU5CYWdSY3RnZDJ2L0lWNjJs?=
 =?utf-8?B?N3VJRUpWYjl4cGIwWVpzc3U0d0plSEZsa3pSUXFmbTl1eFJLTmhkVFRtYkJY?=
 =?utf-8?B?bEhFUWVuc0FZc3htZHptVHpubU1zZndLbGZLaXY2aXBMQXVnUHJ1N3o2Z1ho?=
 =?utf-8?B?bFRMdWVYZWRydHcrTmRib216dlo5T3FlaDRXSFpyTUdteHlYVWlYOU9EbnZV?=
 =?utf-8?B?K2dPSzYzb2U2YjBXeGtIdUdhK1MrV083d1h1MzZGQVJFc3dEQnZJRUZkVlp4?=
 =?utf-8?B?SldvbFBrdUlJSExBYXFPQ2VFbUM4cURSeVhLOTNxSGZzcklVNFpURXBSZzQy?=
 =?utf-8?B?VFpuZnJsU05YaFVNWVo2VjB5dVlKYXVzNEE2Vk9XV2RJNjZqS29QWUxLM1N5?=
 =?utf-8?B?clBjTHpiK1BiZnZIanpUNGpPSURxVmtCRUhlWGY0cm5tOGhzSm1HL1oxTnYz?=
 =?utf-8?B?QTFLWGI5RHplS0wxTVd6TnZKYWlKd0M5MWV4V3dOMmtlOFlsREFLTTJLK2pk?=
 =?utf-8?B?aFBDZ0FnbzFQa2wrWUR6dzZLVWJYbzE1WHdYK1lkZ1FONzBza0plUXZBQit4?=
 =?utf-8?B?TGl4YU1lMWdhMWpTam1ObGlYTXp1T1hBTHhpcXNLUTVjSWt1aVg4MVRqQU1D?=
 =?utf-8?B?aUhmeHg5ckloaHVYWGgzc1oxZmw1UnBTTm8xZFZZWk1DT2dBc2s0NVB5TEpC?=
 =?utf-8?B?N1BIYnk1VkVSditKRFJ5eGxEWk9Oc0ZBTmJ5ZDFLMGpWeDJFUHN0cmNFaUtC?=
 =?utf-8?B?bm1ZK0FQSHhLcHFVRTQ3VVpXNExIakcyb0tVbDFUUVlybHI5N0RWcjZXakhy?=
 =?utf-8?B?VHFOL00xdUxiQWwyZGt5TVdVRERiaU1xNGxFN1lqaWJLQ2Q3VlhJWUJNVXQ1?=
 =?utf-8?B?UXlNdkpsUVA1UEIxL2VCOWU1cHZlK2twbmRMRnJJWG5nZmZMTVRJTStsbGlq?=
 =?utf-8?B?Q2pCR0RTcmgvYlFiOHgwQ09qZXVvWXIxMGNpZUx5QS9YRmlXWTUrVklQNXla?=
 =?utf-8?B?Ynh0czZOS3pzcGdESHZaTFVuK040Q0sxTm9rMy9VRDhJQnpxN1R5aWRUL2lz?=
 =?utf-8?B?eXY1Vkx5dktWU0lCaGpRNkw1TFRmVXFROS9BeUtBa0R5cmhPQmlDQkg5MUZG?=
 =?utf-8?B?TFBUNVN0UEtSZ25RaGJkeDhyWk9PM2s1TFpuVEJCZXU5Tk5YZVJIbXZJZ3FU?=
 =?utf-8?B?OG9OVFpTbWUySFFtQXJkeHFHazdBejhJUHV1MlNJVEtxRThUQ3RnUk9BQWNw?=
 =?utf-8?B?SXFIMzA1ZVdtRTZ1TFkrVWVCSnp5R2p1cnZGclRwekVJSnRlNEVWZ0ZZYkNE?=
 =?utf-8?B?VE1XdzNsTStKMXpZVmFxdkhFVkpzSWkvVGN2d1NvZ1hLRHBPTCt0MUFSb1dL?=
 =?utf-8?B?eDIyUGFWcnBUb2JnRmNoMlEyVzR5VzVhMUxGWm1DU2M1V3dyTDA5a1BQVXp6?=
 =?utf-8?B?R2RTeC95R3hXdnFESG50eTNlYzhLRmthQlNRN1pZSjlHMXNXUC9Dako5a2pv?=
 =?utf-8?B?YmYrR2JmMnE0SHYxcnRvbE9LU0hoSFhKdGxCR0dmRDZDSXpyaWVLdzZuY1dU?=
 =?utf-8?B?MklrYTBIelVSM0RsRDJVVWt2TVYzbEJMa1RlUjAreDZUem55TkRKMWdWZzFm?=
 =?utf-8?B?QmdtQkZ5ZlBHZHdJcmZWeklSd0o5dWhnVG56bTB4UGNtYW5IOGZ2N2hDTFpX?=
 =?utf-8?B?eGhBQ1hmdnR5WDZMeFFOeHhneUZJaXlIV0lra2ozSkllSzYycDdwY2pYTnJ6?=
 =?utf-8?B?SnlJcWtsSzdyejBRbEI0aXJDNEUrUnMrSm9wdnN6andpTXIxdURrdmkxazY1?=
 =?utf-8?B?Y2NnWGhwYm43TXV4RzlIMUZWSlJ4Y2dpZEdMSTM3R1BjNXhQdElleUhpaGVr?=
 =?utf-8?B?VGIwRXhuUjRuK1psOU5ZeDBwRTNHV2V3WVdNajlkaWJhQjNRSDhtR3lIQlR5?=
 =?utf-8?B?amF2SDFDZVh4WlQwRE4vMHV6R1RES1A4YlJjL0hOUmhUTmJONmJSbjE0ZER3?=
 =?utf-8?B?STNydnd1U0h6eXIrMWNWUnJMbi9Dc0ZhRk1PM2t0YTZZTHlMWnNLMkVvSitn?=
 =?utf-8?B?cGRIYWZQZXYzTlJ3SEZ6S0Vya2tmM25EaUEvVEUvUzlic1FlMlp4U3hyZEUw?=
 =?utf-8?B?c0pxQTRpZUZDYXZqR3NDWEpYVTljbll4U0hQdXJwYTFnTlNZb2RMdjBzLzNw?=
 =?utf-8?B?RUE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ae8a091f-671c-411a-87d8-08de2911cbe0
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 15:22:34.6534
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Ve7cp2RkY11HvDzDKqb8F2wTeEjDZzWI4HBX/ikuPXhiQKukzqUeR8sgaRCW5065CEP5a0rEHUQBFtfaNbAa8UVtZLw/esKUmy6CJ7PcoLw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB8193

On 21/11/2025 3:10 pm, JÃ¼rgen GroÃŸ wrote:
> On 21.11.25 16:03, Andrew Cooper wrote:
>> On 21/11/2025 1:23 pm, Juergen Gross wrote:
>>> Add a new make macro for creating <file> from <file>.in at build
>>> time. To be used like this:
>>>
>>> $(foreach file,$(IN_TARGETS),$(eval $(call apply-build-vars,$(file))))
>>>
>>> This can be used instead of the current approach to perform the similar
>>> step for file.in during ./configure.
>>>
>>> This will avoid having to run ./configure just because of modifying a
>>> file depending on a variable set by configure.
>>>
>>> Prepare to have multiple files as source for the replacement patterns.
>>>
>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>> ---
>>> V2:
>>> - don't use pattern rule, but create explicit dependency in macro,
>>> Â Â  don't require to rename source files (Jan Beulich, Andrew Cooper)
>>> V3:
>>> - prepare for $(PATH_FILES) to be extended by other Makefile
>>> - let generated file depend on $(INC_FILES)
>>> ---
>>> Â  Config.mk | 13 +++++++++++++
>>> Â  1 file changed, 13 insertions(+)
>>>
>>> diff --git a/Config.mk b/Config.mk
>>> index e1556dfbfa..39e8007b9c 100644
>>> --- a/Config.mk
>>> +++ b/Config.mk
>>> @@ -159,6 +159,19 @@ define move-if-changed
>>> Â Â Â Â Â  if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
>>> Â  endef
>>> Â  +PATH_FILES := Paths
>>> +INC_FILES = $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
>>> +
>>> +include $(INC_FILES)
>>> +
>>> +BUILD_MAKE_VARS = $(foreach f, $(PATH_FILES), $(shell awk '$$2 ==
>>> ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).mk.in))
>>
>> Everything else in the series is looking fine now.Â  But why is
>> PATH_FILES dropping the .mk extension from the file?
>>
>> It looks weird for both INC_FILES and BUILD_MAKE_VARS to have to
>> re-insert it.
>
> Hmm, right.
>
> Let me change that.

If it's only that, I could fix up on commit to save another posting.

Whole series, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 15:35:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 15:35:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1169337.1495086 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMTAX-0002qH-Eb; Fri, 21 Nov 2025 15:35:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1169337.1495086; Fri, 21 Nov 2025 15:35:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMTAX-0002qA-C3; Fri, 21 Nov 2025 15:35:29 +0000
Received: by outflank-mailman (input) for mailman id 1169337;
 Fri, 21 Nov 2025 15:35: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=wmUi=55=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vMTAV-0002q4-JV
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 15:35:27 +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 b37065fb-c6ef-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 16:35:26 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b71397df721so398793266b.1
 for <xen-devel@lists.xenproject.org>; Fri, 21 Nov 2025 07:35:26 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654fd4e51sm487196266b.42.2025.11.21.07.35.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 21 Nov 2025 07:35: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: b37065fb-c6ef-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763739325; x=1764344125; 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=yRPae1uWYXZsTBiinPsI++VlxWxa9cG5Un8sTmPuQUo=;
        b=QNx306jOLKo1taYWlHYhxSIQHQJdMUVG5OZqx+Z4GyXLkGrkT008M9CSmCVUes96wQ
         AffY7QQR9/bcW8IYils11id87iJRRegEYKFCf8DZRR0QDZajq7PNNcyW93a8QbxX+6eN
         +Hahc4WzYYRJ+a2pg6bl/lOjYNRP2g8GvDLIscrezTTwRAIkHVmwtmECaUp2hkp4hzkG
         EPt84bUx+n4oeA0N/vR02aXnWAXzjAPnzTgH4AfVx8Rl+tPqRNMo6QOfCunyctgaFW+L
         vxFK7c9MkTIkNU+90jaY7smHjQkEdCm6jHFcdzn7J5O7YRNLIyXvgRcYSni6yqAl/GfO
         uWXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763739325; x=1764344125;
        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=yRPae1uWYXZsTBiinPsI++VlxWxa9cG5Un8sTmPuQUo=;
        b=T4stqq5IqMXrk1aQ9s+64nNgDji4UplpWoyMiPhyDHGAOQ4Qgfxm3u67l9qeNKlxZa
         4WWiq5SDE6uC3vLIMepyv8NQjIdVhqibz81ypGpDK1hsAcZDbDeJ9EmaDklyGO0tgIfp
         +emph3lLZ7i6HCwyRizszUSxPmsDZxtua9N1bdaCxVFc6eu24xKeYP1RmU6psyCflz4h
         HAiRj9bv+xguXXv14nFQxT7ZckmOFUzh21jKLDTVw6AUpfjtY9socuHZxVVpPRT7s2U7
         oZTm7bHIlVFRIpDDPmM5xOtJyL06PwOh2uOAXZxJLKF7K/8u+fpCgZnbE0mOERjJ0f//
         PsIA==
X-Forwarded-Encrypted: i=1; AJvYcCVx154TDIGbNXLa/pnP7Ti7a6D+DLJo50FVr90/xWF2QeHp/I+sTALnZ5dY3Lq/1dnwH3uBnLJWmQw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxjQYZ7pN/iAjcRdzdejeEsjta63DDY/wVoDS/u4Trux11SUrHE
	t4GPfHyM5TnPlSkixDTpZmwlVCx0danPZ4CE+RMeyix1OWsMOKAvNWgEUOpXUM6vHmc=
X-Gm-Gg: ASbGnctvM6VPrqb8fhxDMBZ9Cy/NAzrw2+S8/UxunsZVusBFAnT8ZpR8m221tDwZO9s
	zaQVEoL0M/IHQvDeIRP9vd8F7SCzAbNO/ExrwXjfIeswB6+JfCrhsm+l4unQ/SyGvf2+3n9lkip
	thGFh1EKpudX8ocOyD64aMiJxvfIhiJ9l4E7y1Ri3nAJAydGkDVeuKlevn0EuSxOAdSXSrFj16K
	OIvYvyfo1g3yqGUz7zZXiBBfaIGUbvR7LbBFtUyGlUjT4kVka++dZcvX4m58MfG8j5qZ+IVA7CE
	IlWuI1cztBR6iBP/i8JSmFsMYplesM5RQeZdTLvocRdTcRieOPGawBkfhaCjcbi0dQ7XvpVhPdR
	WbRavXdwzl9Zl3f+cZhjbwcPgfW6XjJB/ntt3v71EEzeHEv9tkw8oaSbdJSqIHxTTlhokmiWzVC
	ozHFF8gSEe23wKD3NLcrgWeqQzbIaDK0PtRxinMGzzFE0buW6cC2uzichDIejpzTmHVsoBUTdOq
	rF2rsK6aFpV4kuznaEPkh9LKyjSjN8GWdO/AJ0eW+GPMP/vhA==
X-Google-Smtp-Source: AGHT+IEwx5Mo1OMtwOnw1HT7Hlq/5FRStqCy0XJFGqA1czWZwHPwa/2qeG+eXKcC5Vx9Ve97R4VncA==
X-Received: by 2002:a17:907:a04:b0:b6d:5363:88a9 with SMTP id a640c23a62f3a-b767154772bmr223954066b.9.1763739325269;
        Fri, 21 Nov 2025 07:35:25 -0800 (PST)
Message-ID: <d1af76b5-3d71-4cf9-b1dc-cc65c2a2869f@suse.com>
Date: Fri, 21 Nov 2025 16:35:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
 <4f898adc-323d-4c3a-a780-1acb2c58345d@citrix.com>
 <201bbc2a-310b-4880-8633-485535762258@suse.com>
 <78da6bbd-5fa9-4bbc-ac22-d52a11527c76@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: <78da6bbd-5fa9-4bbc-ac22-d52a11527c76@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------IhW4rlZdu26VyVHGEjTn1Pm2"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------IhW4rlZdu26VyVHGEjTn1Pm2
Content-Type: multipart/mixed; boundary="------------Gv3yx6d8dIxkOehNTjL30L0Y";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Message-ID: <d1af76b5-3d71-4cf9-b1dc-cc65c2a2869f@suse.com>
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
 <4f898adc-323d-4c3a-a780-1acb2c58345d@citrix.com>
 <201bbc2a-310b-4880-8633-485535762258@suse.com>
 <78da6bbd-5fa9-4bbc-ac22-d52a11527c76@citrix.com>
In-Reply-To: <78da6bbd-5fa9-4bbc-ac22-d52a11527c76@citrix.com>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------Gv3yx6d8dIxkOehNTjL30L0Y
Content-Type: multipart/mixed; boundary="------------hPulBEIF8L9YAeWq3b17I0q8"

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

T24gMjEuMTEuMjUgMTY6MjIsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDIxLzExLzIw
MjUgMzoxMCBwbSwgSsO8cmdlbiBHcm/DnyB3cm90ZToNCj4+IE9uIDIxLjExLjI1IDE2OjAz
LCBBbmRyZXcgQ29vcGVyIHdyb3RlOg0KPj4+IE9uIDIxLzExLzIwMjUgMToyMyBwbSwgSnVl
cmdlbiBHcm9zcyB3cm90ZToNCj4+Pj4gQWRkIGEgbmV3IG1ha2UgbWFjcm8gZm9yIGNyZWF0
aW5nIDxmaWxlPiBmcm9tIDxmaWxlPi5pbiBhdCBidWlsZA0KPj4+PiB0aW1lLiBUbyBiZSB1
c2VkIGxpa2UgdGhpczoNCj4+Pj4NCj4+Pj4gJChmb3JlYWNoIGZpbGUsJChJTl9UQVJHRVRT
KSwkKGV2YWwgJChjYWxsIGFwcGx5LWJ1aWxkLXZhcnMsJChmaWxlKSkpKQ0KPj4+Pg0KPj4+
PiBUaGlzIGNhbiBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIGN1cnJlbnQgYXBwcm9hY2ggdG8g
cGVyZm9ybSB0aGUgc2ltaWxhcg0KPj4+PiBzdGVwIGZvciBmaWxlLmluIGR1cmluZyAuL2Nv
bmZpZ3VyZS4NCj4+Pj4NCj4+Pj4gVGhpcyB3aWxsIGF2b2lkIGhhdmluZyB0byBydW4gLi9j
b25maWd1cmUganVzdCBiZWNhdXNlIG9mIG1vZGlmeWluZyBhDQo+Pj4+IGZpbGUgZGVwZW5k
aW5nIG9uIGEgdmFyaWFibGUgc2V0IGJ5IGNvbmZpZ3VyZS4NCj4+Pj4NCj4+Pj4gUHJlcGFy
ZSB0byBoYXZlIG11bHRpcGxlIGZpbGVzIGFzIHNvdXJjZSBmb3IgdGhlIHJlcGxhY2VtZW50
IHBhdHRlcm5zLg0KPj4+Pg0KPj4+PiBTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxq
Z3Jvc3NAc3VzZS5jb20+DQo+Pj4+IC0tLQ0KPj4+PiBWMjoNCj4+Pj4gLSBkb24ndCB1c2Ug
cGF0dGVybiBydWxlLCBidXQgY3JlYXRlIGV4cGxpY2l0IGRlcGVuZGVuY3kgaW4gbWFjcm8s
DQo+Pj4+ICDCoMKgIGRvbid0IHJlcXVpcmUgdG8gcmVuYW1lIHNvdXJjZSBmaWxlcyAoSmFu
IEJldWxpY2gsIEFuZHJldyBDb29wZXIpDQo+Pj4+IFYzOg0KPj4+PiAtIHByZXBhcmUgZm9y
ICQoUEFUSF9GSUxFUykgdG8gYmUgZXh0ZW5kZWQgYnkgb3RoZXIgTWFrZWZpbGUNCj4+Pj4g
LSBsZXQgZ2VuZXJhdGVkIGZpbGUgZGVwZW5kIG9uICQoSU5DX0ZJTEVTKQ0KPj4+PiAtLS0N
Cj4+Pj4gIMKgIENvbmZpZy5tayB8IDEzICsrKysrKysrKysrKysNCj4+Pj4gIMKgIDEgZmls
ZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspDQo+Pj4+DQo+Pj4+IGRpZmYgLS1naXQgYS9D
b25maWcubWsgYi9Db25maWcubWsNCj4+Pj4gaW5kZXggZTE1NTZkZmJmYS4uMzllODAwN2I5
YyAxMDA2NDQNCj4+Pj4gLS0tIGEvQ29uZmlnLm1rDQo+Pj4+ICsrKyBiL0NvbmZpZy5taw0K
Pj4+PiBAQCAtMTU5LDYgKzE1OSwxOSBAQCBkZWZpbmUgbW92ZS1pZi1jaGFuZ2VkDQo+Pj4+
ICDCoMKgwqDCoMKgIGlmICEgY21wIC1zICQoMSkgJCgyKTsgdGhlbiBtdiAtZiAkKDEpICQo
Mik7IGVsc2Ugcm0gLWYgJCgxKTsgZmkNCj4+Pj4gIMKgIGVuZGVmDQo+Pj4+ICDCoCArUEFU
SF9GSUxFUyA6PSBQYXRocw0KPj4+PiArSU5DX0ZJTEVTID0gJChmb3JlYWNoIGYsICQoUEFU
SF9GSUxFUyksICQoWEVOX1JPT1QpL2NvbmZpZy8kKGYpLm1rKQ0KPj4+PiArDQo+Pj4+ICtp
bmNsdWRlICQoSU5DX0ZJTEVTKQ0KPj4+PiArDQo+Pj4+ICtCVUlMRF9NQUtFX1ZBUlMgPSAk
KGZvcmVhY2ggZiwgJChQQVRIX0ZJTEVTKSwgJChzaGVsbCBhd2sgJyQkMiA9PQ0KPj4+PiAi
Oj0iIHsgcHJpbnQgJCQxOyB9JyAkKFhFTl9ST09UKS9jb25maWcvJChmKS5tay5pbikpDQo+
Pj4NCj4+PiBFdmVyeXRoaW5nIGVsc2UgaW4gdGhlIHNlcmllcyBpcyBsb29raW5nIGZpbmUg
bm93LsKgIEJ1dCB3aHkgaXMNCj4+PiBQQVRIX0ZJTEVTIGRyb3BwaW5nIHRoZSAubWsgZXh0
ZW5zaW9uIGZyb20gdGhlIGZpbGU/DQo+Pj4NCj4+PiBJdCBsb29rcyB3ZWlyZCBmb3IgYm90
aCBJTkNfRklMRVMgYW5kIEJVSUxEX01BS0VfVkFSUyB0byBoYXZlIHRvDQo+Pj4gcmUtaW5z
ZXJ0IGl0Lg0KPj4NCj4+IEhtbSwgcmlnaHQuDQo+Pg0KPj4gTGV0IG1lIGNoYW5nZSB0aGF0
Lg0KPiANCj4gSWYgaXQncyBvbmx5IHRoYXQsIEkgY291bGQgZml4IHVwIG9uIGNvbW1pdCB0
byBzYXZlIGFub3RoZXIgcG9zdGluZy4NCj4gDQo+IFdob2xlIHNlcmllcywgUmV2aWV3ZWQt
Ynk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+DQoNCllvdSBu
ZWVkIHRvIGZpeCB1cCBwYXRjaCA0LCB0b28gKGluIHRvb2xzL1J1bGVzLm1rKS4NCg0KVGhh
bmtzLA0KDQoNCkp1ZXJnZW4NCg==
--------------hPulBEIF8L9YAeWq3b17I0q8
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-----

--------------hPulBEIF8L9YAeWq3b17I0q8--

--------------Gv3yx6d8dIxkOehNTjL30L0Y--

--------------IhW4rlZdu26VyVHGEjTn1Pm2
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/Ey8FAmkghrwFAwAAAAAACgkQsN6d1ii/Ey/w
3Qf/dXvGFVz4ZepyT6FPGVURF9k+EiacVti/b4+AJrwFO4NctQXLkyzU6rvFDZmX+M3NEZDnAsY2
431aQ1jh5B5ewMQdGDWFu9dIHgl3o8t2m967B3dSbjUDvh6epAUYJesA0tqo8USbzhlx1ToBqNBw
5dhCmTDVCS25Syn0gb3R/O/jS4aBhq682D91G8PeoVwoeobsejQuP/HiKQfEyxDRdHN2eYrWY9bD
WW8SDp0z02Z9n4fPc3UyD+hblU0lsscBEZQ8gM+Q2aPhN46LPXTiHOhMRzveSmxw1t59pqeVEAev
I1ZhhmQcvriKOHlRLATn9dt734GeOByxnyAmQwvO1Q==
=I3M8
-----END PGP SIGNATURE-----

--------------IhW4rlZdu26VyVHGEjTn1Pm2--


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 16:13:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 16:13:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1169351.1495097 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMTki-000092-3y; Fri, 21 Nov 2025 16:12:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1169351.1495097; Fri, 21 Nov 2025 16:12: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 1vMTki-00008v-16; Fri, 21 Nov 2025 16:12:52 +0000
Received: by outflank-mailman (input) for mailman id 1169351;
 Fri, 21 Nov 2025 16:12: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=5Phs=55=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vMTkh-00008p-GO
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 16:12:51 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ea8900d2-c6f4-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 17:12:45 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by PA4PR03MB6893.eurprd03.prod.outlook.com
 (2603:10a6:102:eb::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov
 2025 16:12: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%7]) with mapi id 15.20.9343.009; Fri, 21 Nov 2025
 16:12: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: ea8900d2-c6f4-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ROesC2/q/m8RCU1W8EkL5mR/LBvcapiKrR17/T9zFjHSMk/gK0S1o7P2B2l117rlDAPZpkhYk1QBrN1HBMqnmJ0yxg1XLoAf9O9aLfnCjFWm0kiX9UZNr5pPlLDOgoABOR/IQIW0zCsf+JKsIdn/asnHRWb7I4qMgdJJFJQIjqgpzkFUFOGJJ3CtiJXI/7yVf3jwVmTPFokvO4gzT8WocJA80Qm/4yFne1DKKVLKjju+2JDOoZynqKRUoi1zZCwqR2RkDiic/tnYvmf7XBpi4Mzect89wnQzLUkrZIsTwk00e5Qhf1BxXuWwwLY4cxcTXTIqnG5+/9yVkeXrAc05jA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=k23mqt9vGiQn+5NT+svvRsKuhNjONLrhUic2jPaETTQ=;
 b=h3y1MqSI1Z35hWott7pye27uudnZ0idaMqCmjWhwzz7KgQqeRd01mwiyyfQZs3kDLySEPLrU4eGSNJX7qqcyTP+vHDb9LF+GagFnhE6agO21o/8CWjiaG1UKRaZYsCxNkz5d/sRbhbiqY6/6kXKR8dV5KRo7kwLG2uN9Fsm/mXp82Zx/nC/QBrI/JvkOvf26aVTdVvmjxfkjpckbnzI5D5NHxzGJRI7eE/qdL5tDSDfWTidWlZ+qBYplV0ypA0IseySnN9TFs4lU9MhbXmlE73O3cY0dqOoCceC2i9Tf0elNgaF3nsF2n0ATp3nXXZazSWDmPMxGX+BtsfrZhr7vyg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=k23mqt9vGiQn+5NT+svvRsKuhNjONLrhUic2jPaETTQ=;
 b=jnh7hLJWR6/kbeZxhM+w73WMRHuZWTqJF49qSvFlD6OJ/OiXrQa/Zbw/h5uT1Mi6Nx/xot0C01tqwvArZsQ48NqQmfxAaZBUgfVwb5Gdm7VtZLeM3b9pUaFQlTWw+pYCoLfS0+52bHnyFqxnKJxgx98WG/fc19JyFSvBmItV3DORfCblnZIjZMYjAl3jZff3Vd8joOdd+1GEDguelpxoE+Fr1kNp0g/IWL04tPlQtbhZlYjhS3kdbSwwXIV+EvGdlMehAEepPWcd7eGZFiZXp52nR9XD8SG2RAEeDZN6vDlBFlwKm4jmBzTLoru/l6E3UxOyr4RtRgViNW7uLLw6CQ==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	"Alejandro.GarciaVallejo@amd.com" <Alejandro.GarciaVallejo@amd.com>
Subject: Re: [PATCH v4 6/8] arm/sysctl: Implement cpu hotplug ops
Thread-Topic: [PATCH v4 6/8] arm/sysctl: Implement cpu hotplug ops
Thread-Index: AQHcU8JY4MUEJP5v5ECe3RrLj+fwX7TwwqoAgAyZJQA=
Date: Fri, 21 Nov 2025 16:12:42 +0000
Message-ID: <e87dbb8d-0f4c-49a9-bcf7-93667e5ca181@epam.com>
References: <cover.1762939773.git.mykyta_poturai@epam.com>
 <656cb01061f2ec726eb23784d01517a94117618e.1762939773.git.mykyta_poturai@epam.com>
 <a3628426-cc6c-4bfb-892f-895195d5d87d@epam.com>
In-Reply-To: <a3628426-cc6c-4bfb-892f-895195d5d87d@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_|PA4PR03MB6893:EE_
x-ms-office365-filtering-correlation-id: 0494b53f-abbd-4d1f-52b6-08de2918cd29
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?LzNIT3pWT243RWlaaWhkaVFlT0l0QitxWHlINTZLdVZNbnhmaWRkdWlhNjRk?=
 =?utf-8?B?TitVZlVRR1U1aCsrK2J6Y3J3djV1Q20xdU9MZldVMzhVbnM2UG45Q0ZRK1pJ?=
 =?utf-8?B?Mis4ZmwxTlZ2UmhzK014RGVQcUltRlMzNnZSVkpzTFl5MUIxWGFaVzZoUTB1?=
 =?utf-8?B?TFZWWWU3RGFoWjBSK1lVVWRLYlhUV0RJRHJZR2hLSjdKS0E2WXgya0NqSUFE?=
 =?utf-8?B?dmM0azJUbWhaWXduL1ZEWlZmRHpNSjBCdjJIQjg2V24wZWZGbmwzaEw0Q294?=
 =?utf-8?B?OWtNbGpDdVlLS29CejlnYzdUV1M1bGkrc25FTSt5Nk83Z1VyQ0NaMkcvU0Ez?=
 =?utf-8?B?dFF2VjkzMi8rOXdWUHRyYW1TdU9EUUpVUWRoYmprTXdwRno5RitWdFJaZmJ6?=
 =?utf-8?B?R3FDMUdHUVo1bkhTTnNKNGllNzFZTmxQcE5YdmlCUDQrZnVEaDNXQUdFNGdC?=
 =?utf-8?B?dGVwVVNCajZzZ3lpZTlOeG1xbVlZTnhSaTNlTlRWcjQvTXR5d1NJU2MxOWpF?=
 =?utf-8?B?cExRQ3IzV0FTOW0vZjdENzFtSFF6OXJyZjlJTHljdmQrTTExZlkralY0SjJZ?=
 =?utf-8?B?bFBJVS9JVi85N1B0emJzYUNtVGFtQlZqaldMU3oyWjJ6cWFFdkdHdTA5WWdo?=
 =?utf-8?B?eHhhQ25ERzhURDZyZW1hS00wei9MTWx0bnNzeHh3Sk1meno0NjkxV3B4eCsv?=
 =?utf-8?B?MzdEOENjNFVRY1l0RVBGaERlaHVqUTc4OXlkY3JKK3NTYS9JdDRROHVLaW5V?=
 =?utf-8?B?M2I4d0o5YURMeG8rQXVpVFgzK0ZIU2c4SEJLazZJSjdOM1hpSW45SVNDQTE3?=
 =?utf-8?B?NXhtNHJlMUZ5NiswbDhUTGdlUG9YZ05kVVBVN0pCS1E1V0krZzkvMS85Ukl0?=
 =?utf-8?B?VmVXcTZwQ1UybnczUGVhYzFQQmV4WnIzTm5NVU9GaHhVTmwrSjlybjlENXdS?=
 =?utf-8?B?UVpQcFJTRWZMck82UUhCT09aRjdHL2pLNnpOVHVxc280UGhBR0pzYmo2a3RS?=
 =?utf-8?B?c2xkMnRtdWk2V1NBMUFlVlR4UXl5bklKMSsxT2lrSWlpYmYwQkNYTEs4cGYx?=
 =?utf-8?B?elNQN3hUVVA2MkNLL3lGTUpYazNRMWdjVjkvUHpQT3lSZDJ5a3B3YkZVMEUx?=
 =?utf-8?B?bDdEVFR1NUJtMDQySDU0S1hmRnFtVkpTYTR2NTNKUnhaZTZxeXFxNjdKbHFv?=
 =?utf-8?B?QWRsYW9NMTZWN3Zrd3c3bkR5QXp2M3dMd01HNDhFUTZTa2xTcWl3K0hWQ3Jm?=
 =?utf-8?B?OVlHN1dHUDRzcVhBUERrS3p2NnBPRFVVdi90SXBwZkk0MEtqVi83UHZRanUx?=
 =?utf-8?B?eGowUXB4ajU1d1Q1YWhsY3B5d09RRU05MkN0Yy9KeWltTnJuc1dUZ3JoMkx4?=
 =?utf-8?B?WmFQN0Ztb1JZMDFtbDQyREVyampDRGQyOUJnc00raklUYmhacVU5UGdveEI0?=
 =?utf-8?B?RFZJNDlUUEFnb3ZwaHJtZFpTQ2FWSVlGUmlGRXJRcWdaM3NtaXNTNW9ZUXRL?=
 =?utf-8?B?L0xPY1lYbWtZdlVrV3ZjQ1hiR04ySWlkVDhSQk8wTk56M0Vybkh1ZGhKZkJo?=
 =?utf-8?B?bU1hMUZnWHVINDRlaExNejI1eTRFaE1kcHdLOU9wUkY3NGs3MXFBYjVIcjlS?=
 =?utf-8?B?Z21EMnBXSFRnTk5tUDYzUjVRVVY1MmMwSHN6c1FqeDJiUTJSa1d6Q2p5NXJO?=
 =?utf-8?B?Ky9vcXVoNXh2b25IT0laS0FYSnNaNFVxN01iakJDd0xaRUwwT2c3b3J3TytF?=
 =?utf-8?B?dzhsL1l0ODI3eU9GOUNQazByQTlhQXpMMDA5V1pkQmdHUWJwSVovZGtRajBp?=
 =?utf-8?B?QWo0RzYySUkydlUyWm14R2tJRFBQekFid3lMZ3ZvY0ZENTJoK2Y4VUpYSmhj?=
 =?utf-8?B?VWxiSDlzbEt2d0ozUUdhVDQxbE15NVpjK0x1d01RZXFpOWVQdHJmUHhNVTZI?=
 =?utf-8?B?WC83d1k3NkVZK29UVzdjcllmeFQ2R203a3FjWC9yQ21MaWgrQ3k2a0ZpMmQ2?=
 =?utf-8?B?R09pMFBSS2E1eXJCU0NIcUdvcXR4S0ExQ0tYclp2ZCsvbXAwenVKZFE0MzFD?=
 =?utf-8?Q?xkELNx?=
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:
 =?utf-8?B?Y0Y1cHRDRS9Ya1FxdFF4VURKRWNOZ1JPQXY3WE0zWGNVUzFTSW9uNFFoMERk?=
 =?utf-8?B?YWtkVTNpSzNpRURxZHFMN1JZL29jZ1piVmNIcTRNb1BWb3dGUlRwbU10THNy?=
 =?utf-8?B?Q2dsalVUaDV0VkJhM2pZZ3NSN3NMUFhhd2RSUWpmOVlmOFJsR1BKcTZocEVw?=
 =?utf-8?B?UG5rNEdMSkhNZ0dsc0M2TnpYM3p0UzJDbFZ6UVNzeXgvQkJFNWxUS01ZUTZE?=
 =?utf-8?B?bFFBRXVVeC8vM1J0SVNXV3ErWmNCTlhycjYxWG95bGNxeUpPL2srS1Fia1cz?=
 =?utf-8?B?a2duYVhSNktJSUk0NTBWR0xjVXJPL05xUW8yTWxOcjBkRlpCYklIN2w4NlZh?=
 =?utf-8?B?T0xZa05kcmdMZWIrZlhIYXZNcHdldC94ajNheEE1SGtjejlnN25zOFlydDVK?=
 =?utf-8?B?NUttVUtXT2tKTktWeHE4Tm04bFhUQlk2dXlxdlRVb3BrMndkMXFjYXRkcytv?=
 =?utf-8?B?R1l2TjZnZHFTcTVVTW1ReDhmRnBlNzhnV0VoclZIVkpXeGVsSmgxaXpaVmdT?=
 =?utf-8?B?MTh1M0RFYzFFWEc3MjM1S1JJbExQeWpJMGloYXYrb1BBTFF4SVAwWktJRnNT?=
 =?utf-8?B?SmVFWHFVQjU4R09HQ2hNUmJLRkY5YWtYa0pxMHFUc0tmcjU5RGY4ZGhpM2Vw?=
 =?utf-8?B?d3dTY0NLSWJJNldaenZvVUtHdXBGQ0VLVkx5Rlh0QjhzRWllaDM5YXhzOFFU?=
 =?utf-8?B?ckxKUms3RjBRWFQ1dDE2MytmaTZpdGh6WUFoT2Nwc2xBVHdGajhnZ3pkVTRo?=
 =?utf-8?B?bVBFZCtqR3FrQ3lKckxzWEsvUFR1YUIvZDRPWjNOREl5MWxVOVgzYkdIdDlP?=
 =?utf-8?B?bXBrSzgyNDNUYlVWUC9OSDdvc3AvVXJuQ25XdmIyaUZaV09QRUNIZGgya1Ur?=
 =?utf-8?B?WHpSQm43WUV4cm5qa1MrR2NGOGdYOVVFYTFFTWV3WGNrRGtiUlcybnJpejZ6?=
 =?utf-8?B?blBmcjl3ZGFwZ0swWEdYaEFZWVIyZ3grVnhSUWZVSVA5eGlUWXNtZlJyVCtT?=
 =?utf-8?B?aWZlZjNvMkRPYmdaYzByeWs0anpRK1hKVGUzZG9QZkx0YWw4MFF2M1Q5a1hF?=
 =?utf-8?B?Wk9tejhmamdhUFRxeEl6NEltZkUrQ3d5ajZtMHRnbTJhUWxTVHU4Q1RCT2U2?=
 =?utf-8?B?Z1BXUi9oWXFvNC9wOUd1K0FLWTJlVGU4bGtUdWwxQnR3V3lBc0x3bDZSUi85?=
 =?utf-8?B?VlpGcllLNXpJUzFUYWNKR0ZTK0M4azg3UEF1azhubHJ2T21ldEpwYUVDMW1C?=
 =?utf-8?B?SlFSQUlpM2xtSE5wVUpnd213Q21NemkxOHNtMXlGT21iN0xOSjlaek5TU3lY?=
 =?utf-8?B?aFRmVDlqYm1Xa3dPTjNKa21jcm1LYml4TmJhQjZYMDVuZktjUFdwZkpUWWVD?=
 =?utf-8?B?dXlLbTRzUHpNK2RsYXlIUXJ1bk5KYk5icWxXQVh2dVU5bUZwVE5TMmNqUkQ3?=
 =?utf-8?B?YVZPRzhUOWZkd05GOUliVDVsKzJrZWt0cjlmNFBPa0dPUWlQQ09RNTNSWDMz?=
 =?utf-8?B?dEVRaGZwcmphODJSd0k0WE55aXMzMHFJTU44aytBT2oybXYwc0t3OVNITFFC?=
 =?utf-8?B?NE9sdHRCL2VGSGZsL1dxZ0dzbk1PWEQ2ZkU2U1B1TTlrS1Q1UVdUVHV5Zkpq?=
 =?utf-8?B?OUdjSzRiZXZmQjNuKzkvYitwZDNPWGJOOHorM2pYWWRXUVZhaG1sbjliL3RD?=
 =?utf-8?B?YlV2R2F3OFdXUDd3TlVwMVVRTXBMV0VhTDZhKzdHTnNrNEMzTHRpOXlWRlNB?=
 =?utf-8?B?Z0NpVWtjNkYxajdLSVhLVFFXSjhZSnl1dzFGV20vNHB3S3hKRUtCNzFrMnBh?=
 =?utf-8?B?TGljc0x4bkJHT0w4S2VmQ3krVjUxdTF3aGNENlV5a0lhK2Z5bVJ5bDJLM2FX?=
 =?utf-8?B?Tm1TdUVhaW1PU1VFVTVpZms0L3JzVXBKMjArVzF6bU9lQ1lHdjZnZmlaUEJV?=
 =?utf-8?B?dWR0VG9aclpvVnRKdWNhbWRBRzNpQk9OeXpObnVBR25JRkYrSktSZzQxVkd4?=
 =?utf-8?B?L2xUNTQvVS9yMVRmWlZ1enVwVXRMbmZCMkp0a28xdGpkdG5kQnpPT3FSWGtH?=
 =?utf-8?B?SnE2djFNbFZldFdNbjJlNCtkVXhBS2o0QmttQndoRjhYYUE4Q2NyYWE1b0hQ?=
 =?utf-8?B?NWNoZU5DT05YV3VCdHBUT2U3R3dkV0ZTMXdiVDR5TVJwT3Zyb3FUeGEwK0lx?=
 =?utf-8?B?RGc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <43BF5DEBBC787145B2403B6EE970B965@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: 0494b53f-abbd-4d1f-52b6-08de2918cd29
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Nov 2025 16:12:43.0646
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: LgK5z+HeT+QKLuPRsdOiQfPKyLlKOnYlSxr6yLbNMHPf6cz506ua3N3F0rGPO9YI4r4XQjVmiJYLWV1APxAfdQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB6893

T24gMTMuMTEuMjUgMTc6NDksIEdyeWdvcmlpIFN0cmFzaGtvIHdyb3RlOg0KPiANCj4gDQo+IE9u
IDEyLjExLjI1IDEyOjUxLCBNeWt5dGEgUG90dXJhaSB3cm90ZToNCj4+IEltcGxlbWVudCBYRU5f
U1lTQ1RMX0NQVV9IT1RQTFVHX3tPTkxJTkUsT0ZGTElORX0gY2FsbHMgdG8gYWxsb3cgZm9yDQo+
PiBlbmFibGluZy9kaXNhYmxpbmcgQ1BVIGNvcmVzIGluIHJ1bnRpbWUuDQo+Pg0KPj4gRm9yIG5v
dyB0aGlzIG9wZXJhdGlvbnMgb25seSBzdXBwb3J0IEFybTY0LiBGb3IgcHJvcGVyIEFybTMyIHN1
cHBvcnQsDQo+PiB0aGVyZSBuZWVkcyB0byBiZSBhIG1lY2hhbmlzbSB0byBmcmVlIHBlci1jcHUg
cGFnZSB0YWJsZXMsIGFsbG9jYXRlZCBpbg0KPj4gaW5pdF9kb21oZWFwX21hcHBpbmdzLg0KPj4g
QWxzbywgaG90cGx1ZyBpcyBub3Qgc3VwcG9ydGVkIGlmIElUUywgRkZBLCBvciBURUUgaXMgZW5h
YmxlZCwgYXMgdGhleQ0KPj4gdXNlIG5vbi1zdGF0aWMgSVJRIGFjdGlvbnMuDQo+Pg0KPj4gQ3Jl
YXRlIGEgS2NvbmZpZyBvcHRpb24gUlVOVElNRV9DUFVfQ09OVFJPTCB0aGF0IHJlZmxlY3RzIHRo
aXMNCj4+IGNvbnN0cmFpbnRzLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IE15a3l0YSBQb3R1cmFp
IDxteWt5dGFfcG90dXJhaUBlcGFtLmNvbT4NCj4+DQo+PiB2My0+djQ6DQo+PiAqIGRvbid0IHJl
aW1wbGVtZW50IGNwdV91cC9kb3duIGhlbHBlcnMNCj4+ICogYWRkIEtjb25maWcgb3B0aW9uDQo+
PiAqIGZpeHVwIGZvcm1hdHRpbmcNCj4+DQo+PiB2Mi0+djM6DQo+PiAqIG5vIGNoYW5nZXMNCj4+
DQo+PiB2MS0+djI6DQo+PiAqIHJlbW92ZSBTTVQgb3BzDQo+PiAqIHJlbW92ZSBjcHUgPT0gMCBj
aGVja3MNCj4+ICogYWRkIFhTTSBob29rcw0KPj4gKiBvbmx5IGltcGxlbWVudCBmb3IgNjRiaXQg
QXJtDQo+PiAtLS0NCj4+ICAgeGVuL2FyY2gvYXJtL0tjb25maWcgIHwgIDQgKysrKw0KPj4gICB4
ZW4vYXJjaC9hcm0vc3lzY3RsLmMgfCAzMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
Kw0KPj4gICAyIGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKykNCj4+DQo+PiBkaWZmIC0t
Z2l0IGEveGVuL2FyY2gvYXJtL0tjb25maWcgYi94ZW4vYXJjaC9hcm0vS2NvbmZpZw0KPj4gaW5k
ZXggY2Y2YWY2ODI5OS4uOTMxYWU1MTU3NSAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS9L
Y29uZmlnDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vS2NvbmZpZw0KPj4gQEAgLTI3NCw2ICsyNzQs
MTAgQEAgY29uZmlnIFBDSV9QQVNTVEhST1VHSA0KPj4gICAgICAgaGVscA0KPj4gICAgICAgICBU
aGlzIG9wdGlvbiBlbmFibGVzIFBDSSBkZXZpY2UgcGFzc3Rocm91Z2gNCj4+ICtjb25maWcgUlVO
VElNRV9DUFVfQ09OVFJPTA0KPj4gKyAgICBkZWZfYm9vbCB5DQo+PiArICAgIGRlcGVuZHMgb24g
QVJNXzY0ICYmICFURUUgJiYgIUZGQSAmJiAhSEFTX0lUUw0KPj4gKw0KPiANCj4gSGF2aW5nIGl0
IGluIGFyY2ggY29kZSBJIHRoaW5rIHJpZ2h0IGFzIEFyY2ggY2FuIGhhdmUgb3duIGRlcHMNCj4g
KExpbnV4IGRvZXMgaXQgdGhpcyB3YXkpLCBidXQgbmFtZSBoYXMgdG8gYmUgZml4ZWQgYW5kIGRv
Y3VtZW50ZWQgKGRvY3MpLg0KPiANCj4gbWF5IGJlIG1vcmUgY29tbW9uIG5hbWUgSE9UUExVR19D
UFUgKGxpa2UgaW4gbGludXgpPw0KPiBuYW1pbmcgaXMgdXAgdG8geW91Lg0KPiANCg0KSSB3aWxs
IGNoYW5nZSB0aGUgY29uZmlnIG5hbWUgdG8gIkNQVV9IT1RQTFVHIiBpbiB0aGUgbmV4dCB2ZXJz
aW9uIGlmIA0KZXZlcnlvbmUgaXMgb2theSB3aXRoIHRoYXQuDQoNCg0KLS0gDQpNeWt5dGE=


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 17:46:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 17:46:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1169380.1495123 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMVD5-0002gA-PY; Fri, 21 Nov 2025 17:46:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1169380.1495123; Fri, 21 Nov 2025 17: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 1vMVD5-0002g3-Ly; Fri, 21 Nov 2025 17:46:15 +0000
Received: by outflank-mailman (input) for mailman id 1169380;
 Fri, 21 Nov 2025 17:46: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=ZKoZ=55=treblig.org=dg@srs-se1.protection.inumbo.net>)
 id 1vMVD4-0002fx-49
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 17:46:14 +0000
Received: from mx.treblig.org (mx.treblig.org [2a00:1098:5b::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f525e56b-c701-11f0-980a-7dc792cee155;
 Fri, 21 Nov 2025 18:46:09 +0100 (CET)
Received: from dg by mx.treblig.org with local (Exim 4.98.2)
 (envelope-from <dg@treblig.org>) id 1vMVCi-00000005pJs-2dXP;
 Fri, 21 Nov 2025 17:45: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: f525e56b-c701-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=treblig.org
	; s=bytemarkmx; h=Content-Type:MIME-Version:Message-ID:Subject:From:Date:From
	:Subject; bh=xZBmjOGSZoa+2aL5x4woIrYjfLg3sU220QEFMHUTJpM=; b=hlMINAeetPLPFGP9
	DCXVzhiePadQthcnxsCXyVmnW6VwsN1f99YyTIMGXBLFzlLAwQCCfRhohhA8JHQw9WopgvmlZSNe9
	ChraoHtEO7/JtJnq3fVoHZSpK0yD4PJlxvZ3fXI/CMaLqwdygqlojLOxzQicqgvH6rEKIaYV5q+dC
	9fF4budUObNUXPneqDI13Oa2zg4oAEkUQwrwYAbtWiuXFycihblAtcYwuw9rIQQxGhcvtCahj4M19
	h+hB/OQXLls/7hLaOzXx6U9CGb2mAaDDOK7VGfvA3Pz2jzo1yj5RRGthzOR1lOLnIa/nKutnvrU+1
	aFYpkjxx4ViSutOaLw==;
Date: Fri, 21 Nov 2025 17:45:52 +0000
From: "Dr. David Alan Gilbert" <dave@treblig.org>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, arei.gonglei@huawei.com, pizhenwei@bytedance.com,
	alistair.francis@wdc.com, stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com, hreitz@redhat.com, sw@weilnetz.de,
	qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
	imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
	shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
	edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com,
	jag.raman@oracle.com, sgarzare@redhat.com, pbonzini@redhat.com,
	fam@euphon.net, philmd@linaro.org, alex@shazbot.org, clg@redhat.com,
	peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
	jasowang@redhat.com, samuel.thibault@ens-lyon.org,
	michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
	mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
	liwei1518@gmail.com, dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
	qemu-block@nongnu.org, qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org, kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: Re: [PATCH 09/14] error: Use error_setg_file_open() for simplicity
 and consistency
Message-ID: <aSClUIvI2W-PVv6B@gallifrey>
References: <20251120191339.756429-1-armbru@redhat.com>
 <20251120191339.756429-10-armbru@redhat.com>
 <aR-q2YeegIEPmk2R@gallifrey>
 <87see8q6qm.fsf@pond.sub.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
In-Reply-To: <87see8q6qm.fsf@pond.sub.org>
X-Chocolate: 70 percent or better cocoa solids preferably
X-Operating-System: Linux/6.12.48+deb13-amd64 (x86_64)
X-Uptime: 17:44:26 up 25 days, 17:20,  2 users,  load average: 0.00, 0.00,
 0.00
User-Agent: Mutt/2.2.13 (2024-03-09)

* Markus Armbruster (armbru@redhat.com) wrote:
> "Dr. David Alan Gilbert" <dave@treblig.org> writes:
>=20
> > * Markus Armbruster (armbru@redhat.com) wrote:
> >> Replace
> >>=20
> >>     error_setg_errno(errp, errno, MSG, FNAME);
> >>=20
> >> by
> >>=20
> >>     error_setg_file_open(errp, errno, FNAME);
> >>=20
> >> where MSG is "Could not open '%s'" or similar.
> >>=20
> >> Also replace equivalent uses of error_setg().
> >>=20
> >> A few messages lose prefixes ("net dump: ", "SEV: ", __func__ ": ").
> >> We could put them back with error_prepend().  Not worth the bother.
> >
> > Yeh, I guess you could just do it with another macro using
> > the same internal function just with string concatenation.
>=20
> I'm no fan of such prefixes.  A sign of developers not caring enough to
> craft a good error message for *users*.  *Especially* in the case of
> __func__.
>=20
> The error messages changes in question are:
>=20
>     net dump: can't open DUMP-FILE: REASON
>     Could not open 'DUMP-FILE': REASON
>=20
>     SEV: Failed to open SEV-DEVICE: REASON
>     Could not open 'SEV-DEVICE': REASON
>=20
>     sev_common_kvm_init: Failed to open SEV_DEVICE 'REASON'
>     Could not open 'SEV-DEVICE': REASON
>=20
> I think these are all improvements, and the loss of the prefix is fine.

Yeh, although I find the error messages aren't just for users;
they're often for the first dev to see it to guess which other
dev to pass the problem to, so a hint about where it's coming
=66rom can be useful.

Dave

> >> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> >
> > Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org>
>=20
> Thanks!
>=20
--=20
 -----Open up your eyes, open up your mind, open up your code -------  =20
/ Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \=20
\        dave @ treblig.org |                               | In Hex /
 \ _________________________|_____ http://www.treblig.org   |_______/


From xen-devel-bounces@lists.xenproject.org Fri Nov 21 21:09:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 21 Nov 2025 21:09:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1169458.1495149 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMYNT-0000Yw-Gi; Fri, 21 Nov 2025 21:09:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1169458.1495149; Fri, 21 Nov 2025 21:09:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMYNT-0000Yp-E7; Fri, 21 Nov 2025 21:09:11 +0000
Received: by outflank-mailman (input) for mailman id 1169458;
 Fri, 21 Nov 2025 21:09:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EUV2=55=durham.ac.uk=m.a.young@srs-se1.protection.inumbo.net>)
 id 1vMYNS-0000Yj-RK
 for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 21:09:10 +0000
Received: from LO0P265CU003.outbound.protection.outlook.com
 (mail-uksouthazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c205::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 51fac5a5-c71e-11f0-9d18-b5c5bf9af7f9;
 Fri, 21 Nov 2025 22:09:09 +0100 (CET)
Received: from CWLP265MB1875.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:5f::9) by
 CWXP265MB3286.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:d8::5) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.14; Fri, 21 Nov 2025 21:09:05 +0000
Received: from CWLP265MB1875.GBRP265.PROD.OUTLOOK.COM
 ([fe80::2af7:6198:6898:8636]) by CWLP265MB1875.GBRP265.PROD.OUTLOOK.COM
 ([fe80::2af7:6198:6898:8636%5]) with mapi id 15.20.9343.011; Fri, 21 Nov 2025
 21:09: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: 51fac5a5-c71e-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PpRDrdRGoCR4Sq/qFqMh6WdteAke6ohsNmS6t7NaPBPbHKTeifyoXt1TtR8wK4Ug/4g7gCV6tAOY4fO9eUoiwDL11v0fdMg8nbZpto7l7ebHLJnpFX7/8Gk7denhDH+8ss7+g+bRE849jb1pbDWoCvjwWHuPcokuWa874U9TNWU/gG1iSWejvi9MAkzATBPC2BCoGFhfbaIqhUUnxyND3ABOCe6IosMH/vJPklotMtxArr/1/ku0w63KEiH4Musq2CtXeVkCgCyo3Rbix+hpKr7J8iPOI2u822yKjI5Nq8XQS50xaWVcQLtQTTlwG/ZWVHoIJ/Aq2mMTMnQwipk3iA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kv42ZEkgyrPpVrzR/AloL9B9AKQMGqD2iqG3U1yBZO0=;
 b=ZprgkuGgKE/sP4YDJeahPFdDDkatn3kVQAY0OCorZJT4DtTHj9UXXUhSCbcN1vblYtdG28aQTngY3W+U5E+69cSqgPLi8l3t+0Sfl9yZKAmE3K3pJUiu2eXuW2YJZfCiuCE5GLze06wpjH3pjWYuaRaCWBqa4tPikMuga01SARCbtF1//CtIkSoVIgItO4sWZWs8ZOaROlwF6Ma958NJYTM9dGEHrl/gosQ8aE7bbOOMBfojHG8ZzhWzLFRxtdazIcaDHnXtGrghsK7qpcfnb+z2ERt+QJF+u47Ndlr1hcAe1vVXIbPckepxiE3keC2M5crcftP4+OSPH8K371bJYg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=durham.ac.uk; dmarc=pass action=none header.from=durham.ac.uk;
 dkim=pass header.d=durham.ac.uk; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=durham.ac.uk;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kv42ZEkgyrPpVrzR/AloL9B9AKQMGqD2iqG3U1yBZO0=;
 b=Vpo3NokPxIGlURurT9wLIyToswzyjM+SyFhmpc2Wa15Nab0cLe4PIaEcQ/y6JXNkpGwh7X9WkKAbmoQ/1AVwldH+a4IeuvbPQx0XrsL8PRWGdeySILML5hPCRu2ZljXibsVk08nP5gtAX9Si/aHlAajDmu4y6LXZaJubAtC5+hc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=durham.ac.uk;
Date: Fri, 21 Nov 2025 21:09:04 +0000 (GMT)
From: Michael Young <m.a.young@durham.ac.uk>
To: xen-devel@lists.xenproject.org
cc: Anthony PERARD <anthony.perard@vates.tech>, 
    Juergen Gross <jgross@suse.com>
Subject: [XEN PATCH] libxl_nocpuid.c: fix build with json-c
Message-ID: <94ffdeb1-6826-4c3a-a9c1-3ccc8b129a61@durham.ac.uk>
Content-Type: multipart/mixed; boundary="-1463790335-1529782592-1763759344=:3590"
X-ClientProxiedBy: LO4P265CA0252.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:350::18) To CWLP265MB1875.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:400:5f::9)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CWLP265MB1875:EE_|CWXP265MB3286:EE_
X-MS-Office365-Filtering-Correlation-Id: e3985e05-7345-407d-094a-08de294233fa
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|10070799003|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-7?Q?oanR8GjnFerhncff1LC+MhuzSNHWbU2fqmW+7GO37eGFcBMaOWybu4dkU+?=
 =?iso-8859-7?Q?gIF4yMB8drcSvHZAVIviDCbgH9UwsOUDkPxwhh9IyKOT7R46ptLDHdxE5U?=
 =?iso-8859-7?Q?g2E7z2dXnrxqvdSiRchRwMd+lb/5x4mfQlLcaw91BLCBxBUodpDry0byLz?=
 =?iso-8859-7?Q?B97tHwR1ZR+0Kp/rX/LErzXIAhr11Owsyp3x8DIX5RDTcARxhMHBRunTRw?=
 =?iso-8859-7?Q?tqxQe8p4T+J7n5Bew1Kk3HvZJdJ/60ska9IZh+n5Vi0GA2EeMeqGm5voOb?=
 =?iso-8859-7?Q?4akdSTOLyEr7HYFAGCzb4BFSYOZFTPXVkApuRbdhsXBxF9wjB7TB0gvat4?=
 =?iso-8859-7?Q?XNOR/L2H92q2gfxegrLlFmU0mUn1ESQ1lla2MO5JMTpNLc0YJwAl21HQ8g?=
 =?iso-8859-7?Q?BeDHgoDth+Hm2TxNE6VERDldY2EXlym5uRaFLlOYBjtYq9GpbcUm6dMyP3?=
 =?iso-8859-7?Q?XKG2MuSnG7iR+LUXE4GcxdRKOfUr9KB7tTkg/VCeFkrEoG8vPeZBEjZ73m?=
 =?iso-8859-7?Q?b6HfCmuZGMGjQe6mvLqayUMOGHsXTlC9C2+DiRdlhaa7vNNrVRlhI+mwen?=
 =?iso-8859-7?Q?ixWnPMCPH3pyrgBryBfK5avVtL7dhzg3QzxdT7GO+GjdLYQRIrG6i9t3nu?=
 =?iso-8859-7?Q?02nSFISWdLJAjMXHztRj6Wgu2k97ZVX8ByO5QQ8hbG7IOTX4i+AnTGsueS?=
 =?iso-8859-7?Q?GI/cHEVCJ95KfX/SkI9MliD1WcButHgrh8e+p4yMNEHuYTBNJvMx5wDiel?=
 =?iso-8859-7?Q?KSaPJ9l2aH38aHmQydG/rOvXEi2tyrVQYymKC/A05UlIMwloXaSZ06ZIQd?=
 =?iso-8859-7?Q?InuPcOxsdard88Lw8YEt77EX+H9qQxG/vfWE0qTB1d1A0+f1qLbBxfKkGb?=
 =?iso-8859-7?Q?/7q+23Bkf6i1GdyzEaOiqBg2mcL15IBHBgqdThGU4MtYsiBWMvVC0oUhso?=
 =?iso-8859-7?Q?HyOGi7g90CPQcAgaPIlZ/qpbSfKM+0loykmPbgTRPMSxheeOfklDpjVsN7?=
 =?iso-8859-7?Q?G3wlXqhQCp5GRU7grfvP3GY46VFZo8sSvQPcYiD8TbRXDqlIn3x9rt6SU1?=
 =?iso-8859-7?Q?Rw9fA3nlv3UE9+HOPU0kTSlCBpaYyBALUUpJWfLjsmUHM53c4oif/KtK7d?=
 =?iso-8859-7?Q?BgD0J8CvAelcsw24Q2cWAGqQDQAAfvUsv+Gn0/9ttAZ2gxFOZKUgKqP6pZ?=
 =?iso-8859-7?Q?fjl5AuGZfy43V8KAPmNMEeZtBU1K8T0A+sjcVLzLJmNhOhOcQ732pWCT6M?=
 =?iso-8859-7?Q?LR8gGoFd2YFIgbbSKyMvsNr2fnb3fV+XYnVAw9b+2xxS0AhM0mgS6ZB/Gh?=
 =?iso-8859-7?Q?1y0u2IaMvKN7A4Nh/yNU0qR+p7rkLw4K3XrdsnPyl6wiCGfEjNIQ2Agz0+?=
 =?iso-8859-7?Q?pPH6/OQoiMm5CkmdIOvSY5/QITuIkLbQyIXMtQMzsvjTUx7YuFtcusQC2h?=
 =?iso-8859-7?Q?zlKQ5fpjIJiRXPAhDg26pjK7WOcFsJTazoiwNE/A9/EXmRwtLizqp/L4XS?=
 =?iso-8859-7?Q?zV38/q5GcF18KzoGNh+cVb?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CWLP265MB1875.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(366016)(1800799024);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?iso-8859-7?Q?/HTe6In+fWB7Gr8pZIhSNsCOQpjkTyFysIRZT/uYFex23uK3KGTcvHe96q?=
 =?iso-8859-7?Q?Pq/+IrsHp/MjCB8oNPs36WbCNP/XLSTVZpOtm02WzkFhKGCjP+ZdXPs8CZ?=
 =?iso-8859-7?Q?7nPr33E2lV/uKU+7jsMCSyi2dPwOFVT1vtmqJrk//53ERjU71V07kqNF8i?=
 =?iso-8859-7?Q?+y8QCh2W6gW0T8qsjeq46oyKIKA7wf+/DGC9UBusIPZnxJUjxN+eBa3LaS?=
 =?iso-8859-7?Q?4cnjpDt+pxrZVQ+YYknhnfDm/crgAK6Yifsx+fzytJvGeMpX0/jfwwEAVL?=
 =?iso-8859-7?Q?rrkeZ2uVlbLWTOf7kT6WvhMxtBsM9yc7jeH2W1ihV1n89RN8TcOj3U/BCZ?=
 =?iso-8859-7?Q?0V1uHQTLktNZ6RZ0UdNDq1on6D7sEoK6UNr+XT2e1usY4JzIGl86pvgAm7?=
 =?iso-8859-7?Q?mT1xN4ODMxcGHUKzHesQFa9nxx+o9Z16tcWpLjxBQdk+JXtC+eA8fsktnQ?=
 =?iso-8859-7?Q?Z35uojmuFg2nbaxNhBl9LGx8AQk5sv9vDgKcK1r+4IfOoda/LKPRhfJ9A6?=
 =?iso-8859-7?Q?ZVsnddjeKMPnudHtudDb2fClhHJ70FZS2kTd6wkjgUmB7zbWlp255yMBEG?=
 =?iso-8859-7?Q?z8cI9cPjJILvvE/ETsHdDxPb6W75gXQRr/pQ7UMs4nashSQZlbtf7QiXwG?=
 =?iso-8859-7?Q?O8ZVnTMnm1nLgoFcdeQwPG78lFzCTkIFP59YLfaQM1QlgJfzm1mmpkaNhY?=
 =?iso-8859-7?Q?3YcgJqD4h/ofRVexaH1CsOUjsI8RzXAWQFmf3xUGPwKhYpNP62sMq9I2bJ?=
 =?iso-8859-7?Q?UP1IT2TyliNcfR+XPBTsiUiDLQCl9x5oJt4wz0FcZ0+1h1O3rPmxgsjBh5?=
 =?iso-8859-7?Q?RIiTqNYYysDNiaM44ok3zcQPxUAU9Sc9LVrQMm/7Tj6ecOnRuNvOaUSkMG?=
 =?iso-8859-7?Q?UGDen+c6/4qC+poyBJongwXJtzcsFyKwfF06VZYjHTmHd4B2JZkmFtkAK1?=
 =?iso-8859-7?Q?OFFD/59I2NgtXik0f7spN1v6abWWBqEwxfo57K42EBckNl7UYjm3dLkfGM?=
 =?iso-8859-7?Q?68lKI+0XCjcwwc0fe5ifU2CpaxVrT5mMZJKj5MHRdt59JZU3TSPvZn4UZy?=
 =?iso-8859-7?Q?EZmVHGQezYkfDYAyRa1iBQrJ8O0vP/tTJVp1n/WqXJV2nm9a5IReAcEf7U?=
 =?iso-8859-7?Q?VC5PPZqUS4HpVjOY6O/gcgAmQqQ6nsspb2Y4zM1lS6XwVXln2rfvd1eEKY?=
 =?iso-8859-7?Q?uPzOSKdoPgUXySxnH/SZW8YrXmDeZAPNEzWpFejVECZAYujez6/wrQCiyf?=
 =?iso-8859-7?Q?MOr9SABOZNF9WNXgoMhXINdZOzxoNUK0UwqMCfhrEK+sjGim9CrYtXMgB8?=
 =?iso-8859-7?Q?YxEACyBGl1xNNilWWo370Zfts0IxXnolrb2mYOpyP0AqVi+ilhwU60a5p1?=
 =?iso-8859-7?Q?uO3pOkgmE6syRnpKZzBWZ9e3ieo8dxna7FFVt+Y2nyCKbcQR6dShaWTy1r?=
 =?iso-8859-7?Q?WgxHRyagK6A3IQ6TN7N2tXLfwYpbnNs5oYZkJnGQ2IGSQpLb0Am7qRuDfM?=
 =?iso-8859-7?Q?uc8MA4Y1QZY7NBmV7PBD7htIJQTnQGqPXLf02lkbqG+zRoZb1CjquHqLyL?=
 =?iso-8859-7?Q?NP3SnuN7+GvxzEt5aMziaWBUZkkLvOaheiIdOrabOefZuThAUovV5Spvdw?=
 =?iso-8859-7?Q?9xHSjYKoqBATmspoprzvk0cOXpRFADW8gfElYTATSQZ0P7M6Cw0d0rLD+i?=
 =?iso-8859-7?Q?vxj/KKIvCPZKu0CmJMrUenxG9xpePAjAdo0vjn7U?=
X-OriginatorOrg: durham.ac.uk
X-MS-Exchange-CrossTenant-Network-Message-Id: e3985e05-7345-407d-094a-08de294233fa
X-MS-Exchange-CrossTenant-AuthSource: CWLP265MB1875.GBRP265.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 21:09:05.3183
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7250d88b-4b68-4529-be44-d59a2d8a6f94
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Q2Xblg8ptZUZlYBGx6MWo4CVY95w+3xyrP7PEQ/1U7l12Y6XAJfdds40jlBJ1EP229ZNPMkQFP9Wo7HyiM3I3g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CWXP265MB3286

---1463790335-1529782592-1763759344=:3590
Content-Type: text/plain; format=flowed; charset=ISO-8859-7
Content-Transfer-Encoding: 8BIT

The build of xen-4.21.0 with json-c present and yajl not present
is failing with the error

libxl_nocpuid.c:43:1: error: unknown type name ¡yajl_gen_status¢
    43 | yajl_gen_status libxl_cpuid_policy_list_gen_json(yajl_gen hand,
       | ^~~~~~~~~~~~~~~
libxl_nocpuid.c:43:50: error: unknown type name ¡yajl_gen¢
    43 | yajl_gen_status libxl_cpuid_policy_list_gen_json(yajl_gen hand,
       |                                                  ^~~~~~~~
make[6]: *** 
[/builddir/build/BUILD/xen-4.21.0-build/xen-4.21.0/tools/libs/light/../../../tools/Rules.mk:178: libxl_nocpuid.o] Error 1

I tested it with the patch below based on libxl_nocpuid.c which did build.

Signed-off-by: Michael Young <m.a.young@durham.ac.uk>
---
  tools/libs/light/libxl_nocpuid.c | 13 +++++++++++++
  1 file changed, 13 insertions(+)

diff --git a/tools/libs/light/libxl_nocpuid.c 
b/tools/libs/light/libxl_nocpuid.c
index 0630959e76..71ab49ed61 100644
--- a/tools/libs/light/libxl_nocpuid.c
+++ b/tools/libs/light/libxl_nocpuid.c
@@ -40,11 +40,24 @@ int libxl__cpuid_legacy(libxl_ctx *ctx, uint32_t 
domid, bool restore,
      return 0;
  }

+#ifdef HAVE_LIBJSONC
+#ifndef _hidden
+#define _hidden
+#endif
+_hidden int libxl_cpuid_policy_list_gen_jso(json_object **jso_r,
+                                libxl_cpuid_policy_list *pcpuid)
+{
+    return 0;
+}
+#endif
+
+#if defined(HAVE_LIBYAJL)
  yajl_gen_status libxl_cpuid_policy_list_gen_json(yajl_gen hand,
                                  libxl_cpuid_policy_list *pcpuid)
  {
      return 0;
  }
+#endif

  int libxl__cpuid_policy_list_parse_json(libxl__gc *gc,
                                          const libxl__json_object *o,
-- 
2.51.1

---1463790335-1529782592-1763759344=:3590--


From xen-devel-bounces@lists.xenproject.org Sat Nov 22 07:37:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 22 Nov 2025 07:37:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1169592.1495158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMiB4-0005V5-SQ; Sat, 22 Nov 2025 07:37:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1169592.1495158; Sat, 22 Nov 2025 07:37: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 1vMiB4-0005Uy-Ph; Sat, 22 Nov 2025 07:37:02 +0000
Received: by outflank-mailman (input) for mailman id 1169592;
 Sat, 22 Nov 2025 07:37: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=WDKb=56=redhat.com=armbru@srs-se1.protection.inumbo.net>)
 id 1vMiB3-0005Us-KH
 for xen-devel@lists.xenproject.org; Sat, 22 Nov 2025 07:37:01 +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 05fc96cc-c776-11f0-9d18-b5c5bf9af7f9;
 Sat, 22 Nov 2025 08:36:58 +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-403-_NSKGyWnNIq26wjDIyzvQA-1; Sat,
 22 Nov 2025 02:36:51 -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 8F13A195608F; Sat, 22 Nov 2025 07:36:45 +0000 (UTC)
Received: from blackfin.pond.sub.org (unknown [10.45.242.3])
 by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 930D118004D8; Sat, 22 Nov 2025 07:36:42 +0000 (UTC)
Received: by blackfin.pond.sub.org (Postfix, from userid 1000)
 id 1260B21E6A27; Sat, 22 Nov 2025 08:36:40 +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: 05fc96cc-c776-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763797016;
	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=9zaKUM6NERkcDDV6tGqy74CB52tnWy2WHUiDFb7Jfp8=;
	b=Njoorb8B24NKoThbfuSpKVtnoVvfJ6lGPvyAYNTIf2igp6WcTimgvWGroBPvGewVs1Lobx
	I/2UM1zkTMHLa93ZZ1+nCicPIdtR3X0pUFCwis/H8bH5/yiIXSeThOFAWWMVpWikpXiBWE
	ReKpfMLQwGiztObXUaPSL32YccCjqPU=
X-MC-Unique: _NSKGyWnNIq26wjDIyzvQA-1
X-Mimecast-MFC-AGG-ID: _NSKGyWnNIq26wjDIyzvQA_1763797008
From: Markus Armbruster <armbru@redhat.com>
To: "Dr. David Alan Gilbert" <dave@treblig.org>
Cc: qemu-devel@nongnu.org,  arei.gonglei@huawei.com,
  pizhenwei@bytedance.com,  alistair.francis@wdc.com,
  stefanb@linux.vnet.ibm.com,  kwolf@redhat.com,  hreitz@redhat.com,
  sw@weilnetz.de,  qemu_oss@crudebyte.com,  groug@kaod.org,
  mst@redhat.com,  imammedo@redhat.com,  anisinha@redhat.com,
  kraxel@redhat.com,  shentey@gmail.com,  npiggin@gmail.com,
  harshpb@linux.ibm.com,  sstabellini@kernel.org,  anthony@xenproject.org,
  paul@xen.org,  edgar.iglesias@gmail.com,  elena.ufimtseva@oracle.com,
  jag.raman@oracle.com,  sgarzare@redhat.com,  pbonzini@redhat.com,
  fam@euphon.net,  philmd@linaro.org,  alex@shazbot.org,  clg@redhat.com,
  peterx@redhat.com,  farosas@suse.de,  lizhijian@fujitsu.com,
  jasowang@redhat.com,  samuel.thibault@ens-lyon.org,
  michael.roth@amd.com,  kkostiuk@redhat.com,  zhao1.liu@intel.com,
  mtosatti@redhat.com,  rathc@linux.ibm.com,  palmer@dabbelt.com,
  liwei1518@gmail.com,  dbarboza@ventanamicro.com,
  zhiwei_liu@linux.alibaba.com,  marcandre.lureau@redhat.com,
  qemu-block@nongnu.org,  qemu-ppc@nongnu.org,
  xen-devel@lists.xenproject.org,  kvm@vger.kernel.org,
  qemu-riscv@nongnu.org
Subject: Re: [PATCH 09/14] error: Use error_setg_file_open() for simplicity
 and consistency
In-Reply-To: <aSClUIvI2W-PVv6B@gallifrey> (David Alan Gilbert's message of
	"Fri, 21 Nov 2025 17:45:52 +0000")
References: <20251120191339.756429-1-armbru@redhat.com>
	<20251120191339.756429-10-armbru@redhat.com>
	<aR-q2YeegIEPmk2R@gallifrey> <87see8q6qm.fsf@pond.sub.org>
	<aSClUIvI2W-PVv6B@gallifrey>
Date: Sat, 22 Nov 2025 08:36:40 +0100
Message-ID: <87ecpqtt6f.fsf@pond.sub.org>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93

"Dr. David Alan Gilbert" <dave@treblig.org> writes:

> * Markus Armbruster (armbru@redhat.com) wrote:
>> "Dr. David Alan Gilbert" <dave@treblig.org> writes:
>> 
>> > * Markus Armbruster (armbru@redhat.com) wrote:
>> >> Replace
>> >> 
>> >>     error_setg_errno(errp, errno, MSG, FNAME);
>> >> 
>> >> by
>> >> 
>> >>     error_setg_file_open(errp, errno, FNAME);
>> >> 
>> >> where MSG is "Could not open '%s'" or similar.
>> >> 
>> >> Also replace equivalent uses of error_setg().
>> >> 
>> >> A few messages lose prefixes ("net dump: ", "SEV: ", __func__ ": ").
>> >> We could put them back with error_prepend().  Not worth the bother.
>> >
>> > Yeh, I guess you could just do it with another macro using
>> > the same internal function just with string concatenation.
>> 
>> I'm no fan of such prefixes.  A sign of developers not caring enough to
>> craft a good error message for *users*.  *Especially* in the case of
>> __func__.
>> 
>> The error messages changes in question are:
>> 
>>     net dump: can't open DUMP-FILE: REASON
>>     Could not open 'DUMP-FILE': REASON
>> 
>>     SEV: Failed to open SEV-DEVICE: REASON
>>     Could not open 'SEV-DEVICE': REASON
>> 
>>     sev_common_kvm_init: Failed to open SEV_DEVICE 'REASON'
>>     Could not open 'SEV-DEVICE': REASON
>> 
>> I think these are all improvements, and the loss of the prefix is fine.
>
> Yeh, although I find the error messages aren't just for users;
> they're often for the first dev to see it to guess which other
> dev to pass the problem to, so a hint about where it's coming
> from can be useful.

I agree!  But I think an error message must be make sense to users
*first* and help developers second, and once they make sense to users,
they're often good enough for developers.

The common failures I see happen when developers remain caught in the
developer's perspective, and write something that makes sense to *them*.
Strawman form:

    prefix: failed op[: reason]

where "prefix" is a subsystem tag, or even __func__, and "reason" is
strerror() or similar.

To users, this tends to read as

    gobbledygook: techbabble[: reason]

When we care to replace "failed op" (developer's perspective) by
something that actually makes sense to users, "prefix" often becomes
redundant.

The error messages shown above aren't bad to begin with.  "failed to
open FILE", where FILE is something the user specified, should make
sense to the user.  It should also be good enough for developers even
without a prefix: connecting trouble with the DUMP-FILE to dump /
trouble with the SEV-DEVICE to SEV should be straightforward.

[...]



From xen-devel-bounces@lists.xenproject.org Sat Nov 22 11:54:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 22 Nov 2025 11:54:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1169701.1495169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMmBY-0002An-FY; Sat, 22 Nov 2025 11:53:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1169701.1495169; Sat, 22 Nov 2025 11: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 1vMmBY-0002Af-9c; Sat, 22 Nov 2025 11:53:48 +0000
Received: by outflank-mailman (input) for mailman id 1169701;
 Sat, 22 Nov 2025 11:53: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=ZRMo=56=eik.bme.hu=balaton@srs-se1.protection.inumbo.net>)
 id 1vMmBX-0002AZ-2W
 for xen-devel@lists.xenproject.org; Sat, 22 Nov 2025 11:53:47 +0000
Received: from zero.eik.bme.hu (zero.eik.bme.hu [152.66.115.2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e33f4f2f-c799-11f0-980a-7dc792cee155;
 Sat, 22 Nov 2025 12:53:41 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by zero.eik.bme.hu (Postfix) with ESMTP id 911CE5969FB;
 Sat, 22 Nov 2025 12:53:39 +0100 (CET)
Received: from zero.eik.bme.hu ([127.0.0.1])
 by localhost (zero.eik.bme.hu [127.0.0.1]) (amavis, port 10028) with ESMTP
 id zyO5GX3vEdkz; Sat, 22 Nov 2025 12:53:37 +0100 (CET)
Received: by zero.eik.bme.hu (Postfix, from userid 432)
 id 74C9B5969FA; Sat, 22 Nov 2025 12:53:37 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by zero.eik.bme.hu (Postfix) with ESMTP id 70C3A5969F7;
 Sat, 22 Nov 2025 12:53: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: e33f4f2f-c799-11f0-980a-7dc792cee155
X-Virus-Scanned: amavis at eik.bme.hu
Date: Sat, 22 Nov 2025 12:53:37 +0100 (CET)
From: BALATON Zoltan <balaton@eik.bme.hu>
To: Markus Armbruster <armbru@redhat.com>
cc: "Dr. David Alan Gilbert" <dave@treblig.org>, qemu-devel@nongnu.org, 
    arei.gonglei@huawei.com, pizhenwei@bytedance.com, alistair.francis@wdc.com, 
    stefanb@linux.vnet.ibm.com, kwolf@redhat.com, hreitz@redhat.com, 
    sw@weilnetz.de, qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com, 
    imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com, 
    shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com, 
    sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org, 
    edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com, jag.raman@oracle.com, 
    sgarzare@redhat.com, pbonzini@redhat.com, fam@euphon.net, 
    philmd@linaro.org, alex@shazbot.org, clg@redhat.com, peterx@redhat.com, 
    farosas@suse.de, lizhijian@fujitsu.com, jasowang@redhat.com, 
    samuel.thibault@ens-lyon.org, michael.roth@amd.com, kkostiuk@redhat.com, 
    zhao1.liu@intel.com, mtosatti@redhat.com, rathc@linux.ibm.com, 
    palmer@dabbelt.com, liwei1518@gmail.com, dbarboza@ventanamicro.com, 
    zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com, 
    qemu-block@nongnu.org, qemu-ppc@nongnu.org, xen-devel@lists.xenproject.org, 
    kvm@vger.kernel.org, qemu-riscv@nongnu.org
Subject: Re: [PATCH 09/14] error: Use error_setg_file_open() for simplicity
 and consistency
In-Reply-To: <87ecpqtt6f.fsf@pond.sub.org>
Message-ID: <05ef43e5-cc42-8e1c-2619-eb1dea12b02b@eik.bme.hu>
References: <20251120191339.756429-1-armbru@redhat.com> <20251120191339.756429-10-armbru@redhat.com> <aR-q2YeegIEPmk2R@gallifrey> <87see8q6qm.fsf@pond.sub.org> <aSClUIvI2W-PVv6B@gallifrey> <87ecpqtt6f.fsf@pond.sub.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII; format=flowed

On Sat, 22 Nov 2025, Markus Armbruster wrote:
> "Dr. David Alan Gilbert" <dave@treblig.org> writes:
>
>> * Markus Armbruster (armbru@redhat.com) wrote:
>>> "Dr. David Alan Gilbert" <dave@treblig.org> writes:
>>>
>>>> * Markus Armbruster (armbru@redhat.com) wrote:
>>>>> Replace
>>>>>
>>>>>     error_setg_errno(errp, errno, MSG, FNAME);
>>>>>
>>>>> by
>>>>>
>>>>>     error_setg_file_open(errp, errno, FNAME);
>>>>>
>>>>> where MSG is "Could not open '%s'" or similar.
>>>>>
>>>>> Also replace equivalent uses of error_setg().
>>>>>
>>>>> A few messages lose prefixes ("net dump: ", "SEV: ", __func__ ": ").
>>>>> We could put them back with error_prepend().  Not worth the bother.
>>>>
>>>> Yeh, I guess you could just do it with another macro using
>>>> the same internal function just with string concatenation.
>>>
>>> I'm no fan of such prefixes.  A sign of developers not caring enough to
>>> craft a good error message for *users*.  *Especially* in the case of
>>> __func__.
>>>
>>> The error messages changes in question are:
>>>
>>>     net dump: can't open DUMP-FILE: REASON
>>>     Could not open 'DUMP-FILE': REASON
>>>
>>>     SEV: Failed to open SEV-DEVICE: REASON
>>>     Could not open 'SEV-DEVICE': REASON
>>>
>>>     sev_common_kvm_init: Failed to open SEV_DEVICE 'REASON'
>>>     Could not open 'SEV-DEVICE': REASON
>>>
>>> I think these are all improvements, and the loss of the prefix is fine.
>>
>> Yeh, although I find the error messages aren't just for users;
>> they're often for the first dev to see it to guess which other
>> dev to pass the problem to, so a hint about where it's coming
>> from can be useful.
>
> I agree!  But I think an error message must be make sense to users
> *first* and help developers second, and once they make sense to users,
> they're often good enough for developers.
>
> The common failures I see happen when developers remain caught in the
> developer's perspective, and write something that makes sense to *them*.
> Strawman form:
>
>    prefix: failed op[: reason]
>
> where "prefix" is a subsystem tag, or even __func__, and "reason" is
> strerror() or similar.
>
> To users, this tends to read as
>
>    gobbledygook: techbabble[: reason]
>
> When we care to replace "failed op" (developer's perspective) by
> something that actually makes sense to users, "prefix" often becomes
> redundant.
>
> The error messages shown above aren't bad to begin with.  "failed to
> open FILE", where FILE is something the user specified, should make
> sense to the user.  It should also be good enough for developers even
> without a prefix: connecting trouble with the DUMP-FILE to dump /
> trouble with the SEV-DEVICE to SEV should be straightforward.
>
> [...]

I think that

net dump: can't open random-filename: because of some error

shows better where to look for the problem than just

Could not open 'random-filename': because of some error

as the latter does not tell where the file name comes from or what is it. 
It could be added by a management application or added by the users 
randomly without really knowing what they are doing so repeating the 
option or part in the message that the error comes from can help to find 
out where to correct it. Otherwise it might be difficult to guess what 
random-filename is related to if it's not named something you'd expect.

Regards,
BALATON Zoltan


From xen-devel-bounces@lists.xenproject.org Sat Nov 22 13:58:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 22 Nov 2025 13:58:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1169774.1495178 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMo8P-0007sn-14; Sat, 22 Nov 2025 13:58:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1169774.1495178; Sat, 22 Nov 2025 13:58:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vMo8O-0007sg-UU; Sat, 22 Nov 2025 13:58:40 +0000
Received: by outflank-mailman (input) for mailman id 1169774;
 Sat, 22 Nov 2025 13:58:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=1jDc=56=treblig.org=dg@srs-se1.protection.inumbo.net>)
 id 1vMo8O-0007sa-8z
 for xen-devel@lists.xenproject.org; Sat, 22 Nov 2025 13:58:40 +0000
Received: from mx.treblig.org (mx.treblig.org [2a00:1098:5b::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 57b82732-c7ab-11f0-9d18-b5c5bf9af7f9;
 Sat, 22 Nov 2025 14:58:38 +0100 (CET)
Received: from dg by mx.treblig.org with local (Exim 4.98.2)
 (envelope-from <dg@treblig.org>) id 1vMo83-00000005wUV-2FTG;
 Sat, 22 Nov 2025 13:58: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: 57b82732-c7ab-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=treblig.org
	; s=bytemarkmx; h=Content-Type:MIME-Version:Message-ID:Subject:From:Date:From
	:Subject; bh=AEXZEuTJIE85z2nUo6vGRF6C9CDHEnZEtlKMj8CbeT4=; b=boN+E0WV5PWDs4yp
	E5QiNikBwzcKxOr9y3ErKBosKi8VqQlyUK8FcpSwKZRZIklWGivPv0b8RSW0Md0mlLqwACbhBB1vJ
	2xtO1APz5QqCPj2IB1son8z6yI2JWKjc/YisVf8Akz0AYURhVUPEbxbNHOCoqog6ksbOEZ8nbt3AA
	M8nUp+/I6opgxD3kBK/3L9z07BOWIsUllEtVyMmhMVILtJ3RsJeXEUUUC+EDFUwvaSRJ+Fe7/WWD/
	ixd0MwL2lJiyApfAIlZlIVvw0uVu6nd+S9a1CmPOP6ZRlcoooeZB+4RWIRymF57ys85smCTeDjJKH
	Z3Kd2MYnSTr6//8Edg==;
Date: Sat, 22 Nov 2025 13:58:19 +0000
From: "Dr. David Alan Gilbert" <dave@treblig.org>
To: BALATON Zoltan <balaton@eik.bme.hu>
Cc: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org,
	arei.gonglei@huawei.com, pizhenwei@bytedance.com,
	alistair.francis@wdc.com, stefanb@linux.vnet.ibm.com,
	kwolf@redhat.com, hreitz@redhat.com, sw@weilnetz.de,
	qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
	imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
	shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
	edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com,
	jag.raman@oracle.com, sgarzare@redhat.com, pbonzini@redhat.com,
	fam@euphon.net, philmd@linaro.org, alex@shazbot.org, clg@redhat.com,
	peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
	jasowang@redhat.com, samuel.thibault@ens-lyon.org,
	michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
	mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
	liwei1518@gmail.com, dbarboza@ventanamicro.com,
	zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
	qemu-block@nongnu.org, qemu-ppc@nongnu.org,
	xen-devel@lists.xenproject.org, kvm@vger.kernel.org,
	qemu-riscv@nongnu.org
Subject: Re: [PATCH 09/14] error: Use error_setg_file_open() for simplicity
 and consistency
Message-ID: <aSHBez6kYRagEL1K@gallifrey>
References: <20251120191339.756429-1-armbru@redhat.com>
 <20251120191339.756429-10-armbru@redhat.com>
 <aR-q2YeegIEPmk2R@gallifrey>
 <87see8q6qm.fsf@pond.sub.org>
 <aSClUIvI2W-PVv6B@gallifrey>
 <87ecpqtt6f.fsf@pond.sub.org>
 <05ef43e5-cc42-8e1c-2619-eb1dea12b02b@eik.bme.hu>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
In-Reply-To: <05ef43e5-cc42-8e1c-2619-eb1dea12b02b@eik.bme.hu>
X-Chocolate: 70 percent or better cocoa solids preferably
X-Operating-System: Linux/6.12.48+deb13-amd64 (x86_64)
X-Uptime: 13:56:00 up 26 days, 13:32,  2 users,  load average: 0.00, 0.00,
 0.00
User-Agent: Mutt/2.2.13 (2024-03-09)

* BALATON Zoltan (balaton@eik.bme.hu) wrote:
> On Sat, 22 Nov 2025, Markus Armbruster wrote:
> > "Dr. David Alan Gilbert" <dave@treblig.org> writes:
> > 
> > > * Markus Armbruster (armbru@redhat.com) wrote:
> > > > "Dr. David Alan Gilbert" <dave@treblig.org> writes:
> > > > 
> > > > > * Markus Armbruster (armbru@redhat.com) wrote:
> > > > > > Replace
> > > > > > 
> > > > > >     error_setg_errno(errp, errno, MSG, FNAME);
> > > > > > 
> > > > > > by
> > > > > > 
> > > > > >     error_setg_file_open(errp, errno, FNAME);
> > > > > > 
> > > > > > where MSG is "Could not open '%s'" or similar.
> > > > > > 
> > > > > > Also replace equivalent uses of error_setg().
> > > > > > 
> > > > > > A few messages lose prefixes ("net dump: ", "SEV: ", __func__ ": ").
> > > > > > We could put them back with error_prepend().  Not worth the bother.
> > > > > 
> > > > > Yeh, I guess you could just do it with another macro using
> > > > > the same internal function just with string concatenation.
> > > > 
> > > > I'm no fan of such prefixes.  A sign of developers not caring enough to
> > > > craft a good error message for *users*.  *Especially* in the case of
> > > > __func__.
> > > > 
> > > > The error messages changes in question are:
> > > > 
> > > >     net dump: can't open DUMP-FILE: REASON
> > > >     Could not open 'DUMP-FILE': REASON
> > > > 
> > > >     SEV: Failed to open SEV-DEVICE: REASON
> > > >     Could not open 'SEV-DEVICE': REASON
> > > > 
> > > >     sev_common_kvm_init: Failed to open SEV_DEVICE 'REASON'
> > > >     Could not open 'SEV-DEVICE': REASON
> > > > 
> > > > I think these are all improvements, and the loss of the prefix is fine.
> > > 
> > > Yeh, although I find the error messages aren't just for users;
> > > they're often for the first dev to see it to guess which other
> > > dev to pass the problem to, so a hint about where it's coming
> > > from can be useful.
> > 
> > I agree!  But I think an error message must be make sense to users
> > *first* and help developers second, and once they make sense to users,
> > they're often good enough for developers.
> > 
> > The common failures I see happen when developers remain caught in the
> > developer's perspective, and write something that makes sense to *them*.
> > Strawman form:
> > 
> >    prefix: failed op[: reason]
> > 
> > where "prefix" is a subsystem tag, or even __func__, and "reason" is
> > strerror() or similar.
> > 
> > To users, this tends to read as
> > 
> >    gobbledygook: techbabble[: reason]
> > 
> > When we care to replace "failed op" (developer's perspective) by
> > something that actually makes sense to users, "prefix" often becomes
> > redundant.
> > 
> > The error messages shown above aren't bad to begin with.  "failed to
> > open FILE", where FILE is something the user specified, should make
> > sense to the user.  It should also be good enough for developers even
> > without a prefix: connecting trouble with the DUMP-FILE to dump /
> > trouble with the SEV-DEVICE to SEV should be straightforward.
> > 
> > [...]
> 
> I think that
> 
> net dump: can't open random-filename: because of some error
> 
> shows better where to look for the problem than just
> 
> Could not open 'random-filename': because of some error
> 
> as the latter does not tell where the file name comes from or what is it. It
> could be added by a management application or added by the users randomly
> without really knowing what they are doing so repeating the option or part
> in the message that the error comes from can help to find out where to
> correct it. Otherwise it might be difficult to guess what random-filename is
> related to if it's not named something you'd expect.

Yeh agreed.  It very much depends if you think of a 'user' as the person
who typed a qemu command line, or pressed a button on a GUI that triggered
15 levels of abstraction that eventually ran a qemu.

Or for the support person who has a customer saying 'help I've got this error',
and now needs to route it to the network person rather than something else.

Dave

> Regards,
> BALATON Zoltan
-- 
 -----Open up your eyes, open up your mind, open up your code -------   
/ Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \ 
\        dave @ treblig.org |                               | In Hex /
 \ _________________________|_____ http://www.treblig.org   |_______/


From xen-devel-bounces@lists.xenproject.org Sun Nov 23 18:59:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 23 Nov 2025 18:59:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170095.1495189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNFIG-0002Zo-1d; Sun, 23 Nov 2025 18:58:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170095.1495189; Sun, 23 Nov 2025 18: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 1vNFIF-0002Zg-TE; Sun, 23 Nov 2025 18:58:39 +0000
Received: by outflank-mailman (input) for mailman id 1170095;
 Sun, 23 Nov 2025 18: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=M+x5=57=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vNFIE-0002ZX-FK
 for xen-devel@lists.xenproject.org; Sun, 23 Nov 2025 18:58:38 +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 69b4137d-c89e-11f0-980a-7dc792cee155;
 Sun, 23 Nov 2025 19:58:35 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4779aa4f928so30809745e9.1
 for <xen-devel@lists.xenproject.org>; Sun, 23 Nov 2025 10:58: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
 5b1f17b1804b1-477bf3b4eb2sm154328725e9.12.2025.11.23.10.58.33
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Sun, 23 Nov 2025 10:58: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: 69b4137d-c89e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1763924315; x=1764529115; 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=CZs7gYynycdv4EGKIYDGcUMCMGhmj2RagHDsP9q/nKQ=;
        b=wSFl6GYXKs0nqVhybemB2FRXYdbzNqnkgQAj91LfVNUVMpHlrbIf7ahbBHN8n58CTO
         hL6z/8T6N+IIiCtHJzzMmFZYSApP04uZA6xiLQtyeUW9N/sxztGykRWyrDXo/8PZ8ner
         v4JIcgqrerzsR+1j7dyJZVQF7f1TF0VTa45+jRAgp4UP1rJVKErkz3N9yztaZJoZtcOg
         yWto5+cMwF8qIeXKJv5NSQwxef2QflSRPTjNLoscZwp/KDAd3qKL90G5OCPxBbPhx+Pj
         bMSazjwLD751O069myVj8aXrKgrHlXdt3PElt5QihDRteUp/SI7gxRr5bMjiPFnsk16x
         wUwg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763924315; x=1764529115;
        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=CZs7gYynycdv4EGKIYDGcUMCMGhmj2RagHDsP9q/nKQ=;
        b=pEBQ3r6BWpMhBV8QOaagF4r0pTP4lrcptcsk2g9PvDIQJAyjo9Mn/t1UZ39rQ4mTEw
         X6ZUNVC84+BjEla3xUI5m168Pseurwm7gFafkjZeNzmm93dIJ3JwA15qmmD7x5TOarCF
         saUJEGotCdg5TwZ90fNYB8fwk6z+ilMYUC6mY2DbeW8CtwUvHom0112Ee218mLViYWdL
         AGfZ7QiomcpalkJnKJHcUovR+t87UieO3+W1u1rMWyejA7X/DJ3kJkObrKYItgBmJ4+F
         iMG98WITPoIKc0Deg6Dli0YMbFx+dAEeNIgnaDQftTqoPl/PQll/JCSmg4ElhbT2XBis
         H9Uw==
X-Forwarded-Encrypted: i=1; AJvYcCWTgPMMEbUOUJ+G2+ttN+KK9vEGRTlfdFGQrHdEZH2aJrxgBHMIIOJgla5wLksiV5AkHQkcLJW7bl8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxf672AGdY0JpuiicIstV7O5XLzbUlUtOHRpuLtn+VBSLNhIHhh
	YxdZ6eAWuqB8Nelhjr4xN0MYEu/dyOa1kuj5p96Z8oPYoJaiLZfMVqYl0Sebaw9m3j8=
X-Gm-Gg: ASbGncvnWiBqLi+bpmfos/8kcbmMws0vggmwmoXz9AoSWArF1cFxLQW4caJ0F0uQydO
	cZ2SzB/FMDBnxuc06BM2XURQllRKwlnLLhqe4dQd9q8fyx2y2kTsYJmuUGCL41QftFaxs9bsPLh
	WsYw6cZXDRExJT6toiOUCWnLE3gRro/dqZPodq6pBowU879r+xBJzFNiiWY8iDVtQ1rCeojVhwk
	KNoxbLpyI/cFUGY8TOOClx90TzEUDUcqXqNmtPuDr87BhVGpJw5UAUWzNdoDqkF7soM+b+z4lzN
	s1o6VEk5O/ixxV8PgdiZx2Llmauv7QTbX/Sggg6bGLjAoNVG2lZTuTvuuZYlnqZ7oQQjoB28Rnu
	Z8/JNR3TvZwCr5bRctPt0lDFVb55h1NKMAm3q7j4kRmk59Vp9vE9K1pxvoXxroQpjMNYW36jOWo
	GLAiLKHqkTX3D6mdCRMbtwNT25g9dNxkDXPGSQ1m+vSGoWonhQctc0r/f6q4dtP/bnnHyTtAo=
X-Google-Smtp-Source: AGHT+IHzO3TzKM0byiy0d9QAboT5h5wHvIrU67sA5M2DR4+xrurNsc+4Y6ORWQbdadWWIQty08DYhA==
X-Received: by 2002:a05:600c:b93:b0:477:557b:6917 with SMTP id 5b1f17b1804b1-477c01be404mr91728135e9.18.1763924314742;
        Sun, 23 Nov 2025 10:58:34 -0800 (PST)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Paul Durrant <paul@xen.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony@xenproject.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Richard Henderson <richard.henderson@linaro.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Mark Cave-Ayland <mark.caveayland@nutanix.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [PATCH] hw/i386/isapc: Remove dead Xen code
Date: Sun, 23 Nov 2025 19:58:32 +0100
Message-ID: <20251123185832.53802-1-philmd@linaro.org>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

We don't use Xen on the isapc machine: let's remove
pointless code.

Signed-off-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>
---
 hw/i386/isapc.c | 27 ++++-----------------------
 1 file changed, 4 insertions(+), 23 deletions(-)

diff --git a/hw/i386/isapc.c b/hw/i386/isapc.c
index 1ba9ae22cc3..1e13a30c505 100644
--- a/hw/i386/isapc.c
+++ b/hw/i386/isapc.c
@@ -17,8 +17,6 @@
 #include "hw/ide/ide-bus.h"
 #include "system/kvm.h"
 #include "hw/i386/kvm/clock.h"
-#include "hw/xen/xen-x86.h"
-#include "system/xen.h"
 #include "hw/rtc/mc146818rtc.h"
 #include "target/i386/cpu.h"
 
@@ -37,7 +35,6 @@ static void pc_init_isa(MachineState *machine)
     ISABus *isa_bus;
     uint32_t irq;
     GSIState *gsi_state;
-    MemoryRegion *ram_memory;
     DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
     int i;
 
@@ -77,15 +74,9 @@ static void pc_init_isa(MachineState *machine)
     /*
      * There is no RAM split for the isapc machine
      */
-    if (xen_enabled()) {
-        xen_hvm_init_pc(pcms, &ram_memory);
-    } else {
-        ram_memory = machine->ram;
-
-        pcms->max_ram_below_4g = 3.5 * GiB;
-        x86ms->above_4g_mem_size = 0;
-        x86ms->below_4g_mem_size = machine->ram_size;
-    }
+    pcms->max_ram_below_4g = 3.5 * GiB;
+    x86ms->above_4g_mem_size = 0;
+    x86ms->below_4g_mem_size = machine->ram_size;
 
     x86_cpus_init(x86ms, pcmc->default_cpu_version);
 
@@ -94,17 +85,7 @@ static void pc_init_isa(MachineState *machine)
     }
 
     /* allocate ram and load rom/bios */
-    if (!xen_enabled()) {
-        pc_memory_init(pcms, system_memory, system_memory, 0);
-    } else {
-        assert(machine->ram_size == x86ms->below_4g_mem_size +
-                                    x86ms->above_4g_mem_size);
-
-        if (machine->kernel_filename != NULL) {
-            /* For xen HVM direct kernel boot, load linux here */
-            xen_load_linux(pcms);
-        }
-    }
+    pc_memory_init(pcms, system_memory, system_memory, 0);
 
     gsi_state = pc_gsi_create(&x86ms->gsi, false);
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 02:19:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 02:19:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170108.1495199 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNMB0-0005pS-LM; Mon, 24 Nov 2025 02:19:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170108.1495199; Mon, 24 Nov 2025 02: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 1vNMB0-0005pK-Ge; Mon, 24 Nov 2025 02:19:38 +0000
Received: by outflank-mailman (input) for mailman id 1170108;
 Mon, 24 Nov 2025 02: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=Qo8f=6A=gmail.com=samaan.dehghan@srs-se1.protection.inumbo.net>)
 id 1vNMAz-0005pE-El
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 02:19:37 +0000
Received: from mail-qt1-x835.google.com (mail-qt1-x835.google.com
 [2607:f8b0:4864:20::835])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0375b106-c8dc-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 03:19:33 +0100 (CET)
Received: by mail-qt1-x835.google.com with SMTP id
 d75a77b69052e-4ed82e82f0fso38111591cf.1
 for <xen-devel@lists.xenproject.org>; Sun, 23 Nov 2025 18:19:33 -0800 (PST)
Received: from localhost.localdomain
 (host-154-4.mdu.ilcmifre.champaign.il.us.clients.pavlovmedia.net.
 [66.253.154.4]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-4ee48e65e3bsm78070101cf.17.2025.11.23.18.19.29
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Sun, 23 Nov 2025 18:19: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: 0375b106-c8dc-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763950771; x=1764555571; 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=5v9PSuuDVd2uhCbusTELo+qAKTiBx4CMZ2+0sXsOsYI=;
        b=HlMCeiYcivlfPlzqWQEkWZ/eSwC+dHtxYqAV3LVqlWFM/BBKzEBUWWBjDwawFOnzQM
         9W5WrnyjXXfNvhDjRMENIRxjNHF4zYH9qeKAKvVDCao3+q5HNvwotglYRI5s3sJTql4R
         Xp4EQhZoA/MAvbWIb8guunPsMLqAXZ0qkhsMnrviqcIX7iuDmX3CQMXt+uhvnPFuy9t4
         aOOllqMeooy/RQ2DGdIY3A0c/npATiho1lNPekW4OfDBdGPvSsuwi+L9o7UaQ93vgh+w
         XRA/P2o80ax8tLW7T2LRybPJjLA/OYhC8TVHV2uSbFcs++U2NXa0GseOQCSnkqmLMJqK
         mPcw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763950771; x=1764555571;
        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=5v9PSuuDVd2uhCbusTELo+qAKTiBx4CMZ2+0sXsOsYI=;
        b=NNoaP/DWygjGnTwEcU2ZDBRkBT5wgnr2qaulF9pfMDiJsn1I18OKKeBvOB9FJcR3GM
         W6ZnNFb9IHEd9asDZIPq0e3hbU5LV4LKf6tRM4UduYrqQAhMQPyXRf2mZRPWWVX8rlO8
         Ud6OgGs8UfjbRYGpuv7ZXj7fuIpMiIxHUaP2M+03dQphaciKebKF4AQK/Hm18sNRGxD4
         sbX+XUoCSc2hwfalgb1dZMO+zV6gUBKqwgNnsxQWfO/BSTl5c3pp5n3V+b/MftQufaBr
         gxpAzgELy401YIGr1yHxeTg9N9FuBc+sjhTNRiJtT0SmVseWy6wG/kpAGIKDG/qmXlgT
         uzbQ==
X-Gm-Message-State: AOJu0Yw+24qfYTcDkPUyf4HjH7UfEjHD92WOEzVKACbAzNsLN9BiTyyJ
	sVoqmzcKUdsE9je5QUyN24yCpgP75ptjBWFhmTF5+6iKaZ9KU0k+y/mJ0BkbcTg=
X-Gm-Gg: ASbGncsDAIMvybj1xvj3VafVspzGyKJ4bOU1ANyZxRL4jOr2ZXHK9BmDiDZpQ/vROvS
	yOq+eJKknbm/vgI2UK/oI2ZBdNPF6YTw+/dM9Mb6TA4KKAmy3n864Bbi5ZImZ9OehoQ1zPsCHUl
	hmdKVafke5XSnVjFTOVd/hPfH53zdw3Ld4vfD4fQTh0U9kuJsg5sqLcGkK4nW0O6RaX1/R/ko1/
	hj03m5UEcPj5cZ+lFDChlNu3Q4J7MqEf/9VePckx9LflIo8Jldg7oVqDtKO9PbRHwuiu3Pam5xB
	vp79ECFCapNDy7Tq8geUMDZTAL+CSV+QsWjf8M40Vf6WYyA8+EWzYinEDj26Nw5CRohUoRzl0Mk
	dTudMUkZiGMejjJhRIIfFQsQ1ItxTTWV+WU1lNAejfe6YRtB7DOC7qwF/sorFfMdflRA2VlBEmV
	yvR5wl2rIquoLdcwaHSVklq9tSjJm3X4Ha4IH1dOxGG1l5+hrj63wxQ7aFBkMkwrAKsrLNZS4db
	V/wm34YUGoUNUQ+P997Dao3EirRhDtzUPiNE9lihItMdfvzmVj/3pp+E1HGsn0yCONy4KhPDhjl
	2tI=
X-Google-Smtp-Source: AGHT+IGUW6aDHv5iZIFtp+fyhmyvRdWPNnUNfHfWzZCOicOaJSbQZNjsOKBPQVxDOgr+w3NVlsrvHA==
X-Received: by 2002:ac8:5d4e:0:b0:4ec:f001:e186 with SMTP id d75a77b69052e-4ee58935cc0mr149551191cf.62.1763950771468;
        Sun, 23 Nov 2025 18:19:31 -0800 (PST)
From: Saman Dehghan <samaan.dehghan@gmail.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] XEN: enable MC/DC coverage for Clang
Date: Sun, 23 Nov 2025 20:18:44 -0600
Message-ID: <3bb418ae6a36a9ac89c697a417fa0745fa9ac702.1763949990.git.samaan.dehghan@gmail.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Clang >= 18 supports Modified Condition/Decision Coverage (MC/DC).
This patch enables the detection and usage of this feature when
compiling Xen with Clang.

- Update detection logic to check for '-fcoverage-mcdc' when using Clang.
- Update llvm.c to handle the profile format changes (bitmap section)
  required for MC/DC.
- Guard -Wno-error=coverage-too-many-conditions with CONFIG_CC_IS_GCC
  to avoid passing a GCC-only warning option to Clang

Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>
---
 xen/Kconfig                |  2 +-
 xen/Rules.mk               |  1 +
 xen/arch/x86/Makefile      |  4 +++-
 xen/common/coverage/llvm.c | 24 +++++++++++++++++++++++-
 4 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/xen/Kconfig b/xen/Kconfig
index a5e5af3b76..5508993f02 100644
--- a/xen/Kconfig
+++ b/xen/Kconfig
@@ -53,7 +53,7 @@ config CC_HAS_ASM_GOTO_OUTPUT
 
 # Compiler supports -fcondition-coverage aka MC/DC
 config CC_HAS_MCDC
-	def_bool $(cc-option,-fcondition-coverage)
+	def_bool $(cc-option,-fcondition-coverage) || $(cc-option,-fprofile-instr-generate -fcoverage-mapping -fcoverage-mcdc)
 
 # Set code alignment.
 #
diff --git a/xen/Rules.mk b/xen/Rules.mk
index 24f447b957..57ea664f02 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -136,6 +136,7 @@ non-init-objects = $(filter-out %.init.o, $(obj-y) $(obj-bin-y) $(extra-y))
 
 ifeq ($(CONFIG_CC_IS_CLANG),y)
     cov-cflags-$(CONFIG_COVERAGE) := -fprofile-instr-generate -fcoverage-mapping
+    cov-cflags-$(CONFIG_CONDITION_COVERAGE) +=  -fcoverage-mcdc
 else
     cov-cflags-$(CONFIG_COVERAGE) := -fprofile-arcs -ftest-coverage
     cov-cflags-$(CONFIG_CONDITION_COVERAGE) += -fcondition-coverage
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 407571c510..00dfc992b3 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -99,7 +99,9 @@ ifneq ($(CONFIG_HVM),y)
 $(obj)/x86_emulate.o: CFLAGS-y += -Wno-unused-label
 endif
 ifeq ($(CONFIG_CONDITION_COVERAGE),y)
-$(obj)/x86_emulate.o: CFLAGS-y += -Wno-error=coverage-too-many-conditions
+    ifeq ($(CONFIG_CC_IS_GCC),y)
+        $(obj)/x86_emulate.o: CFLAGS-y += -Wno-error=coverage-too-many-conditions
+    endif
 endif
 
 efi-y := $(shell if [ ! -r $(objtree)/include/xen/compile.h -o \
diff --git a/xen/common/coverage/llvm.c b/xen/common/coverage/llvm.c
index 532889c857..a8c7e7e8d2 100644
--- a/xen/common/coverage/llvm.c
+++ b/xen/common/coverage/llvm.c
@@ -120,6 +120,10 @@ extern const char __start___llvm_prf_names[];
 extern const char __stop___llvm_prf_names[];
 extern uint64_t __start___llvm_prf_cnts[];
 extern uint64_t __stop___llvm_prf_cnts[];
+#ifdef CONFIG_CONDITION_COVERAGE
+extern const char __start___llvm_prf_bits[];
+extern const char __stop___llvm_prf_bits[];
+#endif
 
 #define START_DATA      ((const void *)__start___llvm_prf_data)
 #define END_DATA        ((const void *)__stop___llvm_prf_data)
@@ -127,16 +131,25 @@ extern uint64_t __stop___llvm_prf_cnts[];
 #define END_NAMES       ((const void *)__stop___llvm_prf_names)
 #define START_COUNTERS  ((void *)__start___llvm_prf_cnts)
 #define END_COUNTERS    ((void *)__stop___llvm_prf_cnts)
+#define START_BITMAP    ((void *)__start___llvm_prf_bits)
+#define END_BITMAP      ((void *)__stop___llvm_prf_bits)
 
 static void cf_check reset_counters(void)
 {
     memset(START_COUNTERS, 0, END_COUNTERS - START_COUNTERS);
+#ifdef CONFIG_CONDITION_COVERAGE
+    memset(START_BITMAP, 0, END_BITMAP - START_BITMAP);
+#endif
 }
 
 static uint32_t cf_check get_size(void)
 {
-    return ROUNDUP(sizeof(struct llvm_profile_header) + END_DATA - START_DATA +
+    uint32_t size = ROUNDUP(sizeof(struct llvm_profile_header) + END_DATA - START_DATA +
                    END_COUNTERS - START_COUNTERS + END_NAMES - START_NAMES, 8);
+#ifdef CONFIG_CONDITION_COVERAGE
+    size += ROUNDUP(END_BITMAP - START_BITMAP, 8);
+#endif
+    return size;
 }
 
 static int cf_check dump(
@@ -147,11 +160,17 @@ static int cf_check dump(
         .version = LLVM_PROFILE_VERSION,
         .num_data = DIV_ROUND_UP(END_DATA - START_DATA, sizeof(struct llvm_profile_data)),
         .num_counters = DIV_ROUND_UP(END_COUNTERS - START_COUNTERS, sizeof(uint64_t)),
+#if defined(CONFIG_CONDITION_COVERAGE) && LLVM_PROFILE_VERSION >= 9
+        .num_bitmap_bytes = END_BITMAP - START_BITMAP,
+#endif
         .names_size = END_NAMES - START_NAMES,
 #if LLVM_PROFILE_VERSION >= 8
         .counters_delta = START_COUNTERS - START_DATA,
 #else
         .counters_delta = (uintptr_t)START_COUNTERS,
+#endif
+#if defined(CONFIG_CONDITION_COVERAGE) && LLVM_PROFILE_VERSION >= 9
+        .bitmap_delta = START_BITMAP - START_DATA,
 #endif
         .names_delta = (uintptr_t)START_NAMES,
         .value_kind_last = LLVM_PROFILE_NUM_KINDS - 1,
@@ -168,6 +187,9 @@ static int cf_check dump(
     APPEND_TO_BUFFER(&header, sizeof(header));
     APPEND_TO_BUFFER(START_DATA, END_DATA - START_DATA);
     APPEND_TO_BUFFER(START_COUNTERS, END_COUNTERS - START_COUNTERS);
+#if defined(CONFIG_CONDITION_COVERAGE)
+    APPEND_TO_BUFFER(START_BITMAP, END_BITMAP - START_BITMAP);
+#endif
     APPEND_TO_BUFFER(START_NAMES, END_NAMES - START_NAMES);
 #undef APPEND_TO_BUFFER
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 08:37:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 08:37:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170130.1495208 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNS4R-0008Kc-9p; Mon, 24 Nov 2025 08:37:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170130.1495208; Mon, 24 Nov 2025 08:37:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNS4R-0008KV-7K; Mon, 24 Nov 2025 08:37:15 +0000
Received: by outflank-mailman (input) for mailman id 1170130;
 Mon, 24 Nov 2025 08: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNS4P-0008KP-Sz
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 08:37:13 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c4876ee4-c910-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 09:37:10 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4779cb0a33fso38628385e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 00:37: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-42cb7f49a7bsm26614826f8f.19.2025.11.24.00.37.08
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 00:37: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: c4876ee4-c910-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763973429; x=1764578229; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:to:autocrypt:from
         :content-language:references:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yPaPlRztGjiIqx0UO0gKDSinunt8qm514nsD/zgL7hY=;
        b=BolbDPnhHzH/zJm/GHIurvKKguYjjqWXzV1QZyZ7kBAfqc+QEKsd9onvIBv5AbXNkF
         t2uhUSFIh7wzXqotfbo65CvPBrVOupad4TbasPeXWNbnucF2GsTtbGgUOHep2+PgcMUt
         1kf/yz/rMwYUp+yalWabXdkYivTlWiErW1fGSVYqDdvSYZMpFXe3PRJTWcIG+tNCbJSf
         l2IYXyZ7gbkr2AcStbEpyeEaiOGemEp1hqnULRS2ydYC1CPAC3geNOlUmtifw6zKSAIL
         fHG98Pks+t2PSh8lRJSBRTKZtFKsbpmEZfFRuf+YZM929DQNKpf3dVtOiG5+VNdlZpqZ
         16/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763973430; x=1764578230;
        h=content-transfer-encoding:in-reply-to:to:autocrypt:from
         :content-language:references:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yPaPlRztGjiIqx0UO0gKDSinunt8qm514nsD/zgL7hY=;
        b=c5/AT/sBbyKeMGTw1BQL8cioCDHIpuNjLnaN+1HNpcqV+2RWRypHgyN/TG6hPn2769
         ukAxZTQRK7e7LP/QhFlF8m8zCLMXD02W08m9JRNMiqIoDZcYvl4iPcLb28FseWIoaxyK
         aWg2PsOFEkcu6AO8XtKhg7m09O1VinV7vXDoFp3MusCrE9QEN9/JSJ4bKR5QZa0CjoVO
         tyUoYf6CdZPfua796SNNpqWYuhC7vQAEA4rrE66RmyPvjC3Bd5i7T8m2bNQrIfH9RAIn
         kQEEsztzeI/Yspp0SrvCtTqx7HXU2D1dkFFUObxU+t5Hd4ydZLfTzXNQdV/pBmhZFT41
         IGVw==
X-Gm-Message-State: AOJu0YwTEr+KhjGDAcoVKyhaTptzHdtkvn+WbTGu/lHAVm2X0emmK5fE
	2PeUweSFIqEyJ/OKuDLKYArn+LIanyp28ZATgb7hFSs022OkrBr6FAhsknglBOXdOp7AA9QTJH9
	Vnm0=
X-Gm-Gg: ASbGnctypGBF+RrH1Xdh4ZM2SXfCsGZ3DN6IOtIYou+KrZRJdH7YdxbkT/loNmVb2dt
	8SIko3I0HMWqpIPRusBDeyljqiAuUFXFiWke40pZqqCJbDwnCo6qB1MK6FVYHGBlXlBOIs4tyY2
	vk57CVp+ESgr07DywEyQyPVWGXrSaAJHyhPw0RttxU3dAA/fYpLDd2iuUY5zszO0OMDk1E3p5E2
	CZGVIoR2tZN9nT1HVH6FYyEU6p0wFstpDBuHPbLu5++H0MAQcAjP3NNOlym4gVPSBHkx+WvgjGZ
	PhydMH9YQqTHaMZM/8jYjesYTqXbJAvsjRhFlWYorJqEPB1e8PYt6N1gI3G8S8toJG1yqQ8Vwf6
	idlBTRpI8FJVQXXx+36LttgMP6F7Msn0UIEjnE9OJC57ucTIetGk5+fHuvevtygXA8ZvTogIOP4
	cgEcnmHLJjx88Oy+eVgtFj0jslemhdXjIjC73zXOdsbrbKMAZ7GPof61DgIBz66WLlTdeMt3CzD
	A0=
X-Google-Smtp-Source: AGHT+IE3NdWJAztK7S4pe+F5znknsUmfC5Q+euuxXv2N24mM//wq1PrKh51zYZXDlEapc7X6/aYQ3Q==
X-Received: by 2002:a05:600c:4f4d:b0:477:9ce2:a0d8 with SMTP id 5b1f17b1804b1-477c00ef4f9mr125854395e9.0.1763973429550;
        Mon, 24 Nov 2025 00:37:09 -0800 (PST)
Message-ID: <a4c06854-6548-43b3-b17f-fd89c71281a9@suse.com>
Date: Mon, 24 Nov 2025 09:37:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: New Defects reported by Coverity Scan for XenProject
References: <6922db67d5bee_ec6942e9307a67994398e5@prd-scan-dashboard-0.mail>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
In-Reply-To: <6922db67d5bee_ec6942e9307a67994398e5@prd-scan-dashboard-0.mail>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.11.2025 11:01, scan-admin@coverity.com wrote:
> Please find the latest report on new defect(s) introduced to XenProject found with Coverity Scan.
> 
> 1 new defect(s) introduced to XenProject found with Coverity Scan.
> 3 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan.
> 
> New defect(s) Reported-by: Coverity Scan
> Showing 1 of 1 defect(s)
> 
> 
> ** CID 1675028:       Data race undermines locking  (LOCK_EVASION)
> /xen/arch/x86/hvm/vmx/vmx.c: 1502           in shadow_handle_cd()
> 
> 
> _____________________________________________________________________________________________
> *** CID 1675028:         Data race undermines locking  (LOCK_EVASION)
> /xen/arch/x86/hvm/vmx/vmx.c: 1502             in shadow_handle_cd()
> 1496         }
> 1497         else if ( !(value & X86_CR0_CD) &&
> 1498                   (v->arch.hvm.vmx.cache_mode == CACHE_MODE_NO_FILL) )
> 1499         {
> 1500             /* Exit from no fill cache mode. */
> 1501             spin_lock(&d->arch.hvm.vmx.uc_lock);
>>>>     CID 1675028:         Data race undermines locking  (LOCK_EVASION)
>>>>     The thread 1 sets "cache_mode" to a new value. Now the two threads have an inconsistent view of "cache_mode" and updates to fields correlated with "cache_mode" may be lost.
> 1502             v->arch.hvm.vmx.cache_mode = CACHE_MODE_NORMAL;
> 1503     
> 1504             if ( domain_exit_uc_mode(v) )
> 1505                 set_uc_mode(d, false);
> 1506     
> 1507             spin_unlock(&d->arch.hvm.vmx.uc_lock);

This clearly isn't a new one, but merely flagged as such because the code moved.
There look to be at least two aspects. For one, the tool may be irritated by
shadow and HAP modes being handled differently: In the former updates (and
corresponding checks) happen under lock, while in the latter case they don't.
This looks to leverage that no domain-wide checking is necessary, and hence
updates only ever occurring on the running vCPU means updating is race-free
despite being lock-less. (Sadly parameter / variable naming doesn't properly
reflect this "on current" aspect, despite it being pretty important here.)

Further there are vmx_{get,set}_guest_pat(), which inspect the field without
holding the lock. These functions are intended to act on either current or on
paused vCPU-s / domains only, though. Hence no race either due to all updating
being done on current.

Am I overlooking anything, or does this simply need silencing (again) in the
tool?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 09:26:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 09:26:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170141.1495219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNSqF-00067e-TG; Mon, 24 Nov 2025 09:26:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170141.1495219; Mon, 24 Nov 2025 09: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 1vNSqF-00067X-Pr; Mon, 24 Nov 2025 09:26:39 +0000
Received: by outflank-mailman (input) for mailman id 1170141;
 Mon, 24 Nov 2025 09:26: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNSqE-00067R-SL
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 09:26: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 aa876ac9-c917-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 10:26:33 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-477a219dbcaso36887875e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 01:26: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-477bf1e868bsm180497855e9.4.2025.11.24.01.26.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 01:26: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: aa876ac9-c917-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763976393; x=1764581193; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mDjyJRdZ8pZYRtWlWjlBbN7rJy8cfnFU74s+/WsGHo8=;
        b=X2DIUsPCz9SZnVBnAM+9SZGTIRHZIZeFyFYNWL1K5WWqsniB32hrvpdPY1JPC1nYrN
         dW3SHuotqsb9wUTqF8eNE8uFxZjIrCd7oItn4mqPjVPycrBmJqNKOqAyqdXUQob5aBC1
         DIXHa2VudlikyLyhktCtNAJyLEA7UtiHvoRAHwuyqX8ImRWfy2v3F7eRYypoM00EzpCI
         B3bZsyoYxhmf9u477lqq0q5d7PDvdveSL3CasZqV7Fisso0IczAYNJZUo2ZstZPtZBA5
         1N9WYaOtQ+6AQSnvlVmfq7+1HXac29ycvr6dKmCNj/uFClTGSt6Wa3rPOm6zToWvsmdC
         w/qA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763976393; x=1764581193;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mDjyJRdZ8pZYRtWlWjlBbN7rJy8cfnFU74s+/WsGHo8=;
        b=J+XCLsMc9FUjfzFR2p6IGxrPWoVbdulvyvCNYp8M6W6l+767c1zoi9M4mljXcemaBX
         dMVmuiyop+OylcpaQXwoxoUNyp2wZ8RObMwFxifJgfPwgb9FkAzldNqjRrVsnNvfwuIO
         mmMUgmKD6RCg/Cj+KbJeTo2U/os7VrqIKqE7kGcaPLNYT9FFQppolM1T26DxiYaBmktR
         HVk1E1Tkb7qciBw+gANyofyOcMUBoLPw0PCwq5ohKa00A/7y/tcsiDzK39uXv1GLj2iB
         hnZxIn6jlI1D3kO9eIET7drCl6qDG3mJc8C/XN1kYOpAu4R9UB2eIRD6vV7sCxNHd4ob
         4p8Q==
X-Forwarded-Encrypted: i=1; AJvYcCVWoWlIB8YFoFkDryDHBj9cCOHgs3S3uCktbRmey35Pt4tG3Id4iehp5xJCjg4Wy7wHlE+96/+r4xg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxvWZZj3csEQmqZn4QgfuWBLAAGrrfof9jb+rKG7lPjpVfhrw+8
	FxwkiFthfx2peZRoAo1k4B29o2YRtsDco1A8rJXwqhdYbxWl34ED7vZs70v/vdayaksdh7mRMK8
	i11M=
X-Gm-Gg: ASbGncsf2xw2N+ZUtHuPTkhr0iVaQa0+IVnRj5IlXHQUZJfvkHfCQzGcym3ridtigFH
	UCV8+DtHgzt9Ut+ob4fFsFqYcyV5nOCED6jjl14/K7jdxWH8SSAgOR6TlJuiL4SxdDV6krQa6gg
	iR7aXn1BvAeLwwcrHhabegE7Qs15y6Q8dzWhuIZWkUwHxs+CMmXJ8WzCJI8xJnTjnI7JzcNWeN1
	wZBzT6qxAyZeupMMZcXDu9KMEPu5Zx9O80FVwrH1KtNa+ZLr457YmKFYA1fjR9LdOMVqCWjz36o
	wE4VeoxCvS/D+vtKaBdUwYCLWz+AsauNVKsab70T3C5MORIoUPMcDb0nPHZXYuT8TjtoC49su1N
	TkzUxBYVofk/Wfe6WxdtwluwyD7DrJPy859R94qk1BgiFXUXUo2LvliHh2kR4nqcZTEFrT6JYuz
	NUD3i7vASveMAdsZhoHHLFVI1ogGGemvdHeg/inN8UWuQQ9RUrWLAdaSeK/4VaK04XlMJYkG/Lu
	+k=
X-Google-Smtp-Source: AGHT+IFN6q/p2wm/avPQPP+e0G4MFcTx0TCi+HF9pSGKJyKFXPrfklbg5y+WADZlMnkrUBNvLXlNYA==
X-Received: by 2002:a05:600c:1993:b0:477:abea:901c with SMTP id 5b1f17b1804b1-477c0184be0mr104377475e9.11.1763976392506;
        Mon, 24 Nov 2025 01:26:32 -0800 (PST)
Message-ID: <8c8b11c7-ba2c-440c-be2b-86a1ff250e0d@suse.com>
Date: Mon, 24 Nov 2025 10:26:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] libxl_nocpuid.c: fix build with json-c
To: Michael Young <m.a.young@durham.ac.uk>,
 Anthony PERARD <anthony.perard@vates.tech>
Cc: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <94ffdeb1-6826-4c3a-a9c1-3ccc8b129a61@durham.ac.uk>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <94ffdeb1-6826-4c3a-a9c1-3ccc8b129a61@durham.ac.uk>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.11.2025 22:09, Michael Young wrote:
> The build of xen-4.21.0 with json-c present and yajl not present
> is failing with the error
> 
> libxl_nocpuid.c:43:1: error: unknown type name â€˜yajl_gen_statusâ€™
>     43 | yajl_gen_status libxl_cpuid_policy_list_gen_json(yajl_gen hand,
>        | ^~~~~~~~~~~~~~~
> libxl_nocpuid.c:43:50: error: unknown type name â€˜yajl_genâ€™
>     43 | yajl_gen_status libxl_cpuid_policy_list_gen_json(yajl_gen hand,
>        |                                                  ^~~~~~~~
> make[6]: *** 
> [/builddir/build/BUILD/xen-4.21.0-build/xen-4.21.0/tools/libs/light/../../../tools/Rules.mk:178: libxl_nocpuid.o] Error 1
> 
> I tested it with the patch below based on libxl_nocpuid.c which did build.
> 
> Signed-off-by: Michael Young <m.a.young@durham.ac.uk>
> ---
>   tools/libs/light/libxl_nocpuid.c | 13 +++++++++++++
>   1 file changed, 13 insertions(+)
> 
> diff --git a/tools/libs/light/libxl_nocpuid.c 
> b/tools/libs/light/libxl_nocpuid.c
> index 0630959e76..71ab49ed61 100644
> --- a/tools/libs/light/libxl_nocpuid.c
> +++ b/tools/libs/light/libxl_nocpuid.c
> @@ -40,11 +40,24 @@ int libxl__cpuid_legacy(libxl_ctx *ctx, uint32_t 
> domid, bool restore,
>       return 0;
>   }
> 
> +#ifdef HAVE_LIBJSONC
> +#ifndef _hidden
> +#define _hidden
> +#endif

Why would this be needed? libxl_internal provides a definition afaics.

> +_hidden int libxl_cpuid_policy_list_gen_jso(json_object **jso_r,

Nor should the attribute be needed here, as the function declaration ought
to be in scope.

> +                                libxl_cpuid_policy_list *pcpuid)
> +{
> +    return 0;
> +}
> +#endif
> +
> +#if defined(HAVE_LIBYAJL)
>   yajl_gen_status libxl_cpuid_policy_list_gen_json(yajl_gen hand,
>                                   libxl_cpuid_policy_list *pcpuid)
>   {
>       return 0;
>   }
> +#endif

Maybe unrelated to this build fix, I find it hard to believe that returning
0 (presumably meaning "success") here is appropriate without actually doing
anything. In particular for the new function you add, I think upon success
the caller can expect *jso_r to have got assigned a value. However, without
any commentary it's hard to tell whether there's some "agreement" that the
caller has to pre-set its variable (to, say, NULL).

Also why are the libxl_..._jso() all hidden, while their libxl_..._json()
counterparts aren't? And why would non-exported functions have their
declarations live in a non-private header?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 09:41:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 09:41:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170154.1495228 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNT3v-0000SL-4Y; Mon, 24 Nov 2025 09:40:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170154.1495228; Mon, 24 Nov 2025 09:40:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNT3v-0000SE-1w; Mon, 24 Nov 2025 09:40:47 +0000
Received: by outflank-mailman (input) for mailman id 1170154;
 Mon, 24 Nov 2025 09: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNT3u-0000S8-14
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 09:40:46 +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 a4fd85e8-c919-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 10:40:43 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4775ae77516so41275735e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 01:40: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-477bf198a67sm194971805e9.0.2025.11.24.01.40.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 01:40: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: a4fd85e8-c919-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763977242; x=1764582042; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YEIyGuupettzazkKcMo45e+hiEQdetGWlZWEx9ACaOU=;
        b=MOACEUL4lYfz7X0ywJy2ad05fYH1GpfjHSv6lR5/KlOpPRP1y56EDybAh5k9rR67ex
         tke29/HOPv6vjrtjnBAsxJn1pPjzpvfwaKepS/P3vYcqXm5X8exPx6S+Ts1pxKGh3492
         HQbpvN7Dvme+UV/5mAt/P3ijRJyeIx02iQ6eeby9Q0VArsh58tg69V2/rLU49vq/tfNj
         Q29/8DSnX9vgBkBDhiRNUUioCRdaRPn7wwO4utBo7L9xUP15wDv52G6ubPIDeBUBgsEv
         UBO/zfGQC661FwGve9/sTRDfL0GMDV68k4n6YyvygvDtRaM+SfmmggO++nvMF8UEqee6
         Udrw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763977242; x=1764582042;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YEIyGuupettzazkKcMo45e+hiEQdetGWlZWEx9ACaOU=;
        b=Mmh/0Kevi38VCYHY790tOvydwzpBD0nUXsOy+MFB50K6zOGTsWzAlzERmauIpXFjv0
         HaXd9FuQoRtI1woFuOjn88oyYdc/Llli8FpFSP4i/J10UKztpmKtiK0wEc/41uJeKVUZ
         wbk7x8LCiepMRXec/jmjjVDfJEGkT1Vo5bbePapd2Uln4C5gQ4qTTD89WYiiOKq+YQYd
         bxWNkxaY33mPcCwYEjm4p/XfuvvRU//DgLMMlOm39o888KhHId2UPLyEeGCzLZQ7Nvxl
         6Y1mBz0QBquL4era4kZ3A13WuD2VHoRriRshx6jAS8z7xpoT8tWOEvjicQI+oZMlgZXA
         chUQ==
X-Forwarded-Encrypted: i=1; AJvYcCWm9E+GNX7fcFM2uCCV5RC7NbbN7RoTXQ5zpHd/EBa00dzAG5nXawiZy4/lnG/yEWPQoZIFuEjzy+k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxxlqsNnZHgMQE62BAmm2i9zq/1Y07vFFdnoDYiz9bjd4aqxO5E
	jhJTBSZrcl+QJEaz6jjSy1zjdG+XrNcHCF3swsPvxSAalvgmxIBgR6YIui9qhjY3RQ==
X-Gm-Gg: ASbGncsl1godYl/n53Y92rP46veDMUevCCF8p8bnaTZO4UjI5VhUIKTdf1dt3eJCNbi
	q7ONB4uNUerNmvr40Lv+rDxE2go7f8LruUcqbb0is9NGeXfKt4DrD0gYVDy7lo5ES5aGefStEtQ
	sLp12iDgddBgNls5UUz3ZJR+180dkZg9f+ymjB/rvPdYD5mwNvvXfeyObDM5j++bU55DUA96JAl
	mM9+UkSsgbTCzBlUlLjzCaUSudOELNZhRlBxfP7Hpn5sv5zHv5Lii0zJTRD6bPL7ByzAaNwqJ3c
	Zwub+2SayrkvF4sM2RzgVk1miUtbr+Gl4Tb8dOL4iYgZKAo6kq2W8ZNnp7AAPTrYkYF+FJI7gHk
	Ui1FHDh/4BjRFEgaAiwVcw0xcGXmeAUwBkFS+sYd2BkKkiz4Sr4iS4+LfMab3zO5DXMqHwT/5kO
	A5AfsEuTFJYP05MXPivszkjdfbgGNaY13Ot4kJ1kNvqJwTgtP5pNGCEdbOi9ciiWXNhD2Rz2mP4
	Co=
X-Google-Smtp-Source: AGHT+IENTdh99KUSlL9O+6IRnyl08rp+9TcyCmFRJJW4DWuX5ic8Frg8SWddyuZ8B1Hq/+6pJ56REA==
X-Received: by 2002:a05:600c:3b01:b0:477:7c45:87b2 with SMTP id 5b1f17b1804b1-477c111607fmr119243405e9.16.1763977242171;
        Mon, 24 Nov 2025 01:40:42 -0800 (PST)
Message-ID: <f75bd206-47a5-450e-a4ab-920dbc4574b0@suse.com>
Date: Mon, 24 Nov 2025 10:40:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] XEN: enable MC/DC coverage for Clang
To: Saman Dehghan <samaan.dehghan@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <3bb418ae6a36a9ac89c697a417fa0745fa9ac702.1763949990.git.samaan.dehghan@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: <3bb418ae6a36a9ac89c697a417fa0745fa9ac702.1763949990.git.samaan.dehghan@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2025 03:18, Saman Dehghan wrote:
> Clang >= 18 supports Modified Condition/Decision Coverage (MC/DC).
> This patch enables the detection and usage of this feature when
> compiling Xen with Clang.
> 
> - Update detection logic to check for '-fcoverage-mcdc' when using Clang.

You check for ...

> - Update llvm.c to handle the profile format changes (bitmap section)
>   required for MC/DC.
> - Guard -Wno-error=coverage-too-many-conditions with CONFIG_CC_IS_GCC
>   to avoid passing a GCC-only warning option to Clang
> 
> Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>
> ---
>  xen/Kconfig                |  2 +-
>  xen/Rules.mk               |  1 +
>  xen/arch/x86/Makefile      |  4 +++-
>  xen/common/coverage/llvm.c | 24 +++++++++++++++++++++++-
>  4 files changed, 28 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/Kconfig b/xen/Kconfig
> index a5e5af3b76..5508993f02 100644
> --- a/xen/Kconfig
> +++ b/xen/Kconfig
> @@ -53,7 +53,7 @@ config CC_HAS_ASM_GOTO_OUTPUT
>  
>  # Compiler supports -fcondition-coverage aka MC/DC
>  config CC_HAS_MCDC
> -	def_bool $(cc-option,-fcondition-coverage)
> +	def_bool $(cc-option,-fcondition-coverage) || $(cc-option,-fprofile-instr-generate -fcoverage-mapping -fcoverage-mcdc)

... more than that one option here. Presumably because the option alone
wouldn't be liked by the compiler? (May want mentioning in that part of the
description.)

> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -99,7 +99,9 @@ ifneq ($(CONFIG_HVM),y)
>  $(obj)/x86_emulate.o: CFLAGS-y += -Wno-unused-label
>  endif
>  ifeq ($(CONFIG_CONDITION_COVERAGE),y)
> -$(obj)/x86_emulate.o: CFLAGS-y += -Wno-error=coverage-too-many-conditions
> +    ifeq ($(CONFIG_CC_IS_GCC),y)
> +        $(obj)/x86_emulate.o: CFLAGS-y += -Wno-error=coverage-too-many-conditions
> +    endif
>  endif

Please can the two conditionals be combined, like I think we do elsewhere:

ifeq ($(CONFIG_CONDITION_COVERAGE)$(CONFIG_CC_IS_GCC),yy)

or

ifeq ($(CONFIG_CONDITION_COVERAGE)_$(CONFIG_CC_IS_GCC),y_y)

?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 09:43:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 09:43:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170162.1495238 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNT66-00016W-Fu; Mon, 24 Nov 2025 09:43:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170162.1495238; Mon, 24 Nov 2025 09: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 1vNT66-00016P-D9; Mon, 24 Nov 2025 09:43:02 +0000
Received: by outflank-mailman (input) for mailman id 1170162;
 Mon, 24 Nov 2025 09:43: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=fNsn=6A=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vNT64-00016E-IG
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 09:43:00 +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 f57d07a1-c919-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 10:42:58 +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 6A83C220B2;
 Mon, 24 Nov 2025 09:42:56 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id C413E3EA61;
 Mon, 24 Nov 2025 09:42: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 ZutXLp4oJGlpeAAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 24 Nov 2025 09:42: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: f57d07a1-c919-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763977376; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=A5ow2gR7SRrzbwsXPsB6yI+XFTtoV4Lp3zqNxZd9nls=;
	b=A+sGL1dr7l7VmjFaYtu7yyZBJCek1xS229QbJpQRyY0SEaWfHyv2//EQQVdRujsF6rF5wN
	sg7Pf9VAroDESXffx7PYVw+JqzxjV7klIF2/ubCUBv7uK/1e9yLRarAJrga56WxGZvJyPq
	Mppynsla7GTPRm+lYgBhw7nIOqMiGlc=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763977376; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=A5ow2gR7SRrzbwsXPsB6yI+XFTtoV4Lp3zqNxZd9nls=;
	b=A+sGL1dr7l7VmjFaYtu7yyZBJCek1xS229QbJpQRyY0SEaWfHyv2//EQQVdRujsF6rF5wN
	sg7Pf9VAroDESXffx7PYVw+JqzxjV7klIF2/ubCUBv7uK/1e9yLRarAJrga56WxGZvJyPq
	Mppynsla7GTPRm+lYgBhw7nIOqMiGlc=
Message-ID: <dec8ee2c-3a00-4027-b762-aada7bc99bd9@suse.com>
Date: Mon, 24 Nov 2025 10:42:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 00/21] paravirt: cleanup and reorg
To: 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,
 linux-riscv@lists.infradead.org, kvm@vger.kernel.org
Cc: Andy Lutomirski <luto@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
 Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
 Dave Hansen <dave.hansen@linux.intel.com>, "H. Peter Anvin" <hpa@zytor.com>,
 "K. Y. Srinivasan" <kys@microsoft.com>,
 Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
 Dexuan Cui <decui@microsoft.com>, Peter Zijlstra <peterz@infradead.org>,
 Will Deacon <will@kernel.org>, Boqun Feng <boqun.feng@gmail.com>,
 Waiman Long <longman@redhat.com>, Jiri Kosina <jikos@kernel.org>,
 Josh Poimboeuf <jpoimboe@kernel.org>,
 Pawan Gupta <pawan.kumar.gupta@linux.intel.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>, Russell King
 <linux@armlinux.org.uk>, Catalin Marinas <catalin.marinas@arm.com>,
 Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Paul Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>,
 Albert Ou <aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>,
 Juri Lelli <juri.lelli@redhat.com>,
 Vincent Guittot <vincent.guittot@linaro.org>,
 Dietmar Eggemann <dietmar.eggemann@arm.com>,
 Steven Rostedt <rostedt@goodmis.org>, Ben Segall <bsegall@google.com>,
 Mel Gorman <mgorman@suse.de>, Valentin Schneider <vschneid@redhat.com>,
 linux-arm-kernel@lists.infradead.org, Paolo Bonzini <pbonzini@redhat.com>,
 Vitaly Kuznetsov <vkuznets@redhat.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Daniel Lezcano <daniel.lezcano@linaro.org>, Oleg Nesterov <oleg@redhat.com>
References: <20251006074606.1266-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: <20251006074606.1266-1-jgross@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------We5fW6EZMtlKny0A4cau12FQ"
X-Spamd-Result: default: False [-3.70 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SIGNED_PGP(-2.00)[];
	SUSPICIOUS_RECIPS(1.50)[];
	MIME_BASE64_TEXT_BOGUS(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	MIME_BASE64_TEXT(0.10)[];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	FREEMAIL_CC(0.00)[kernel.org,linutronix.de,redhat.com,alien8.de,linux.intel.com,zytor.com,microsoft.com,infradead.org,gmail.com,oracle.com,lists.xenproject.org,broadcom.com,armlinux.org.uk,arm.com,xen0n.name,linux.ibm.com,ellerman.id.au,csgroup.eu,dabbelt.com,eecs.berkeley.edu,ghiti.fr,linaro.org,goodmis.org,google.com,suse.de,lists.infradead.org,epam.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCVD_TLS_ALL(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	ARC_NA(0.00)[];
	HAS_ATTACHMENT(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com];
	TO_DN_SOME(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	R_RATELIMIT(0.00)[to_ip_from(RLfdszjqhz8kzzb9uwpzdm8png)];
	TO_MATCH_ENVRCPT_SOME(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[];
	RCPT_COUNT_GT_50(0.00)[56];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	TAGGED_RCPT(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,imap1.dmz-prg2.suse.org:helo]
X-Spam-Flag: NO
X-Spam-Score: -3.70
X-Spam-Level: 

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------We5fW6EZMtlKny0A4cau12FQ
Content-Type: multipart/mixed; boundary="------------DrSPxjHRDVvfvpOSxXEGqtrJ";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: 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,
 linux-riscv@lists.infradead.org, kvm@vger.kernel.org
Cc: Andy Lutomirski <luto@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
 Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
 Dave Hansen <dave.hansen@linux.intel.com>, "H. Peter Anvin" <hpa@zytor.com>,
 "K. Y. Srinivasan" <kys@microsoft.com>,
 Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
 Dexuan Cui <decui@microsoft.com>, Peter Zijlstra <peterz@infradead.org>,
 Will Deacon <will@kernel.org>, Boqun Feng <boqun.feng@gmail.com>,
 Waiman Long <longman@redhat.com>, Jiri Kosina <jikos@kernel.org>,
 Josh Poimboeuf <jpoimboe@kernel.org>,
 Pawan Gupta <pawan.kumar.gupta@linux.intel.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>, Russell King
 <linux@armlinux.org.uk>, Catalin Marinas <catalin.marinas@arm.com>,
 Huacai Chen <chenhuacai@kernel.org>, WANG Xuerui <kernel@xen0n.name>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Paul Walmsley <pjw@kernel.org>, Palmer Dabbelt <palmer@dabbelt.com>,
 Albert Ou <aou@eecs.berkeley.edu>, Alexandre Ghiti <alex@ghiti.fr>,
 Juri Lelli <juri.lelli@redhat.com>,
 Vincent Guittot <vincent.guittot@linaro.org>,
 Dietmar Eggemann <dietmar.eggemann@arm.com>,
 Steven Rostedt <rostedt@goodmis.org>, Ben Segall <bsegall@google.com>,
 Mel Gorman <mgorman@suse.de>, Valentin Schneider <vschneid@redhat.com>,
 linux-arm-kernel@lists.infradead.org, Paolo Bonzini <pbonzini@redhat.com>,
 Vitaly Kuznetsov <vkuznets@redhat.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Daniel Lezcano <daniel.lezcano@linaro.org>, Oleg Nesterov <oleg@redhat.com>
Message-ID: <dec8ee2c-3a00-4027-b762-aada7bc99bd9@suse.com>
Subject: Re: [PATCH v3 00/21] paravirt: cleanup and reorg
References: <20251006074606.1266-1-jgross@suse.com>
In-Reply-To: <20251006074606.1266-1-jgross@suse.com>

--------------DrSPxjHRDVvfvpOSxXEGqtrJ
Content-Type: multipart/mixed; boundary="------------0mve0WRCUDOgkf9JsJIojBKK"

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

UGluZz8NCg0KSSB0aGluayBhdCBsZWFzdCB0aGUgZmlyc3QgMTIgcGF0Y2hlcyBjYW4ganVz
dCBnbyBpbi4NCg0KVGhlIG90aGVycyBzdGlsbCBsYWNrIHJldmlldy4NCg0KDQpKdWVyZ2Vu
DQoNCk9uIDA2LjEwLjI1IDA5OjQ1LCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPiBTb21lIGNs
ZWFudXBzIGFuZCByZW9yZyBvZiBwYXJhdmlydCBjb2RlIGFuZCBoZWFkZXJzOg0KPiANCj4g
LSBUaGUgZmlyc3QgMiBwYXRjaGVzIHNob3VsZCBiZSBub3QgY29udHJvdmVyc2lhbCBhdCBh
bGwsIGFzIHRoZXkNCj4gICAgcmVtb3ZlIGp1c3Qgc29tZSBubyBsb25nZXIgbmVlZGVkICNp
bmNsdWRlIGFuZCBzdHJ1Y3QgZm9yd2FyZA0KPiAgICBkZWNsYXJhdGlvbnMuDQo+IA0KPiAt
IFRoZSAzcmQgcGF0Y2ggaXMgcmVtb3ZpbmcgQ09ORklHX1BBUkFWSVJUX0RFQlVHLCB3aGlj
aCBJTU8gaGFzDQo+ICAgIG5vIHJlYWwgdmFsdWUsIGFzIGl0IGp1c3QgY2hhbmdlcyBhIGNy
YXNoIHRvIGEgQlVHKCkgKHRoZSBzdGFjaw0KPiAgICB0cmFjZSB3aWxsIGJhc2ljYWxseSBi
ZSB0aGUgc2FtZSkuIEFzIHRoZSBtYWludGFpbmVyIG9mIHRoZSBtYWluDQo+ICAgIHBhcmF2
aXJ0IHVzZXIgKFhlbikgSSBoYXZlIG5ldmVyIHNlZW4gdGhpcyBjcmFzaC9CVUcoKSB0byBo
YXBwZW4uDQo+IA0KPiAtIFRoZSA0dGggcGF0Y2ggaXMganVzdCBhIG1vdmVtZW50IG9mIGNv
ZGUuDQo+IA0KPiAtIEkgZG9uJ3Qga25vdyBmb3Igd2hhdCByZWFzb24gYXNtL3BhcmF2aXJ0
X2FwaV9jbG9jay5oIHdhcyBhZGRlZCwNCj4gICAgYXMgYWxsIGFyY2hzIHN1cHBvcnRpbmcg
aXQgZG8gaXQgZXhhY3RseSBpbiB0aGUgc2FtZSB3YXkuIFBhdGNoDQo+ICAgIDUgaXMgcmVt
b3ZpbmcgaXQuDQo+IA0KPiAtIFBhdGNoZXMgNi0xNCBhcmUgc3RyZWFtbGluaW5nIHRoZSBw
YXJhdmlydCBjbG9jayBpbnRlcmZhY2VzIGJ5DQo+ICAgIHVzaW5nIGEgY29tbW9uIGltcGxl
bWVudGF0aW9uIGFjcm9zcyBhcmNoaXRlY3R1cmVzIHdoZXJlIHBvc3NpYmxlDQo+ICAgIGFu
ZCBieSBtb3ZpbmcgdGhlIHJlbGF0ZWQgY29kZSBpbnRvIGNvbW1vbiBzY2hlZCBjb2RlLCBh
cyB0aGlzIGlzDQo+ICAgIHdoZXJlIGl0IHNob3VsZCBsaXZlLg0KPiANCj4gLSBQYXRjaGVz
IDE1LTIwIGFyZSBtb3JlIGxpa2UgUkZDIG1hdGVyaWFsIHByZXBhcmluZyB0aGUgcGFyYXZp
cnQNCj4gICAgaW5mcmFzdHJ1Y3R1cmUgdG8gc3VwcG9ydCBtdWx0aXBsZSBwdl9vcHMgZnVu
Y3Rpb24gYXJyYXlzLg0KPiAgICBBcyBhIHByZXJlcXVpc2l0ZSBmb3IgdGhhdCBpdCBtYWtl
cyBsaWZlIGluIG9ianRvb2wgbXVjaCBlYXNpZXINCj4gICAgd2l0aCBkcm9wcGluZyB0aGUg
WGVuIHN0YXRpYyBpbml0aWFsaXplcnMgb2YgdGhlIHB2X29wcyBzdWItDQo+ICAgIHN0cnVj
dHVyZXMsIHdoaWNoIGlzIGRvbmUgaW4gcGF0Y2hlcyAxNS0xNy4NCj4gICAgUGF0Y2hlcyAx
OC0yMCBhcmUgZG9pbmcgdGhlIHJlYWwgcHJlcGFyYXRpb25zIGZvciBtdWx0aXBsZSBwdl9v
cHMNCj4gICAgYXJyYXlzIGFuZCB1c2luZyB0aG9zZSBhcnJheXMgaW4gbXVsdGlwbGUgaGVh
ZGVycy4NCj4gDQo+IC0gUGF0Y2ggMjEgaXMgYW4gZXhhbXBsZSBob3cgdGhlIG5ldyBzY2hl
bWUgY2FuIGxvb2sgbGlrZSB1c2luZyB0aGUNCj4gICAgUFYtc3BpbmxvY2tzLg0KPiANCj4g
Q2hhbmdlcyBpbiBWMjoNCj4gLSBuZXcgcGF0Y2hlcyAxMy0xOCBhbmQgMjANCj4gLSBjb21w
bGV0ZSByZXdvcmsgb2YgcGF0Y2ggMjENCj4gDQo+IENoYW5nZXMgaW4gVjM6DQo+IC0gZml4
ZWQgMiBpc3N1ZXMgZGV0ZWN0ZWQgYnkga2VybmVsIHRlc3Qgcm9ib3QNCj4gDQo+IEp1ZXJn
ZW4gR3Jvc3MgKDIxKToNCj4gICAgeDg2L3BhcmF2aXJ0OiBSZW1vdmUgbm90IG5lZWRlZCBp
bmNsdWRlcyBvZiBwYXJhdmlydC5oDQo+ICAgIHg4Ni9wYXJhdmlydDogUmVtb3ZlIHNvbWUg
dW5uZWVkZWQgc3RydWN0IGRlY2xhcmF0aW9ucw0KPiAgICB4ODYvcGFyYXZpcnQ6IFJlbW92
ZSBQQVJBVklSVF9ERUJVRyBjb25maWcgb3B0aW9uDQo+ICAgIHg4Ni9wYXJhdmlydDogTW92
ZSB0aHVuayBtYWNyb3MgdG8gcGFyYXZpcnRfdHlwZXMuaA0KPiAgICBwYXJhdmlydDogUmVt
b3ZlIGFzbS9wYXJhdmlydF9hcGlfY2xvY2suaA0KPiAgICBzY2hlZDogTW92ZSBjbG9jayBy
ZWxhdGVkIHBhcmF2aXJ0IGNvZGUgdG8ga2VybmVsL3NjaGVkDQo+ICAgIGFybS9wYXJhdmly
dDogVXNlIGNvbW1vbiBjb2RlIGZvciBwYXJhdmlydF9zdGVhbF9jbG9jaygpDQo+ICAgIGFy
bTY0L3BhcmF2aXJ0OiBVc2UgY29tbW9uIGNvZGUgZm9yIHBhcmF2aXJ0X3N0ZWFsX2Nsb2Nr
KCkNCj4gICAgbG9vbmdhcmNoL3BhcmF2aXJ0OiBVc2UgY29tbW9uIGNvZGUgZm9yIHBhcmF2
aXJ0X3N0ZWFsX2Nsb2NrKCkNCj4gICAgcmlzY3YvcGFyYXZpcnQ6IFVzZSBjb21tb24gY29k
ZSBmb3IgcGFyYXZpcnRfc3RlYWxfY2xvY2soKQ0KPiAgICB4ODYvcGFyYXZpcnQ6IFVzZSBj
b21tb24gY29kZSBmb3IgcGFyYXZpcnRfc3RlYWxfY2xvY2soKQ0KPiAgICB4ODYvcGFyYXZp
cnQ6IE1vdmUgcGFyYXZpcnRfc2NoZWRfY2xvY2soKSByZWxhdGVkIGNvZGUgaW50byB0c2Mu
Yw0KPiAgICB4ODYvcGFyYXZpcnQ6IEludHJvZHVjZSBuZXcgcGFyYXZpcnQtYmFzZS5oIGhl
YWRlcg0KPiAgICB4ODYvcGFyYXZpcnQ6IE1vdmUgcHZfbmF0aXZlXyooKSBwcm90b3R5cGVz
IHRvIHBhcmF2aXJ0LmMNCj4gICAgeDg2L3hlbjogRHJvcCB4ZW5faXJxX29wcw0KPiAgICB4
ODYveGVuOiBEcm9wIHhlbl9jcHVfb3BzDQo+ICAgIHg4Ni94ZW46IERyb3AgeGVuX21tdV9v
cHMNCj4gICAgb2JqdG9vbDogQWxsb3cgbXVsdGlwbGUgcHZfb3BzIGFycmF5cw0KPiAgICB4
ODYvcGFyYXZpcnQ6IEFsbG93IHB2LWNhbGxzIG91dHNpZGUgcGFyYXZpcnQuaA0KPiAgICB4
ODYvcGFyYXZpcnQ6IFNwZWNpZnkgcHZfb3BzIGFycmF5IGluIHBhcmF2aXJ0IG1hY3Jvcw0K
PiAgICB4ODYvcHZsb2NrczogTW92ZSBwYXJhdmlydCBzcGlubG9jayBmdW5jdGlvbnMgaW50
byBvd24gaGVhZGVyDQo+IA0KPiAgIGFyY2gvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMyArDQo+ICAgYXJjaC9hcm0vS2NvbmZpZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxICsNCj4gICBhcmNoL2FybS9pbmNsdWRlL2FzbS9w
YXJhdmlydC5oICAgICAgICAgICAgICAgfCAgMjIgLS0NCj4gICBhcmNoL2FybS9pbmNsdWRl
L2FzbS9wYXJhdmlydF9hcGlfY2xvY2suaCAgICAgfCAgIDEgLQ0KPiAgIGFyY2gvYXJtL2tl
cm5lbC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAtDQo+ICAgYXJjaC9h
cm0va2VybmVsL3BhcmF2aXJ0LmMgICAgICAgICAgICAgICAgICAgIHwgIDIzIC0tDQo+ICAg
YXJjaC9hcm02NC9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsN
Cj4gICBhcmNoL2FybTY0L2luY2x1ZGUvYXNtL3BhcmF2aXJ0LmggICAgICAgICAgICAgfCAg
MTQgLQ0KPiAgIGFyY2gvYXJtNjQvaW5jbHVkZS9hc20vcGFyYXZpcnRfYXBpX2Nsb2NrLmgg
ICB8ICAgMSAtDQo+ICAgYXJjaC9hcm02NC9rZXJuZWwvcGFyYXZpcnQuYyAgICAgICAgICAg
ICAgICAgIHwgIDExICstDQo+ICAgYXJjaC9sb29uZ2FyY2gvS2NvbmZpZyAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAxICsNCj4gICBhcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9w
YXJhdmlydC5oICAgICAgICAgfCAgMTMgLQ0KPiAgIC4uLi9pbmNsdWRlL2FzbS9wYXJhdmly
dF9hcGlfY2xvY2suaCAgICAgICAgICB8ICAgMSAtDQo+ICAgYXJjaC9sb29uZ2FyY2gva2Vy
bmVsL3BhcmF2aXJ0LmMgICAgICAgICAgICAgIHwgIDEwICstDQo+ICAgYXJjaC9wb3dlcnBj
L2luY2x1ZGUvYXNtL3BhcmF2aXJ0LmggICAgICAgICAgIHwgICAzIC0NCj4gICBhcmNoL3Bv
d2VycGMvaW5jbHVkZS9hc20vcGFyYXZpcnRfYXBpX2Nsb2NrLmggfCAgIDIgLQ0KPiAgIGFy
Y2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9zZXR1cC5jICAgICAgICB8ICAgNCArLQ0K
PiAgIGFyY2gvcmlzY3YvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MSArDQo+ICAgYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wYXJhdmlydC5oICAgICAgICAgICAg
IHwgIDE0IC0NCj4gICBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0X2FwaV9jbG9j
ay5oICAgfCAgIDEgLQ0KPiAgIGFyY2gvcmlzY3Yva2VybmVsL3BhcmF2aXJ0LmMgICAgICAg
ICAgICAgICAgICB8ICAxMSArLQ0KPiAgIGFyY2gveDg2L0tjb25maWcgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgOCArLQ0KPiAgIGFyY2gveDg2L2VudHJ5L2VudHJ5XzY0
LlMgICAgICAgICAgICAgICAgICAgICB8ICAgMSAtDQo+ICAgYXJjaC94ODYvZW50cnkvdnN5
c2NhbGwvdnN5c2NhbGxfNjQuYyAgICAgICAgIHwgICAxIC0NCj4gICBhcmNoL3g4Ni9oeXBl
cnYvaHZfc3BpbmxvY2suYyAgICAgICAgICAgICAgICAgfCAgMTEgKy0NCj4gICBhcmNoL3g4
Ni9pbmNsdWRlL2FzbS9hcGljLmggICAgICAgICAgICAgICAgICAgfCAgIDQgLQ0KPiAgIGFy
Y2gveDg2L2luY2x1ZGUvYXNtL2hpZ2htZW0uaCAgICAgICAgICAgICAgICB8ICAgMSAtDQo+
ICAgYXJjaC94ODYvaW5jbHVkZS9hc20vbXNoeXBlcnYuaCAgICAgICAgICAgICAgIHwgICAx
IC0NCj4gICBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydC1iYXNlLmggICAgICAgICAg
fCAgMjkgKysNCj4gICBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydC1zcGlubG9jay5o
ICAgICAgfCAxNDYgKysrKysrKysNCj4gICBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmly
dC5oICAgICAgICAgICAgICAgfCAzMzEgKysrKystLS0tLS0tLS0tLS0tDQo+ICAgYXJjaC94
ODYvaW5jbHVkZS9hc20vcGFyYXZpcnRfYXBpX2Nsb2NrLmggICAgIHwgICAxIC0NCj4gICBh
cmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oICAgICAgICAgfCAyNjkgKysr
KysrKy0tLS0tLS0NCj4gICBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzMyLmggICAg
ICAgICAgICAgfCAgIDEgLQ0KPiAgIGFyY2gveDg2L2luY2x1ZGUvYXNtL3B0cmFjZS5oICAg
ICAgICAgICAgICAgICB8ICAgMiArLQ0KPiAgIGFyY2gveDg2L2luY2x1ZGUvYXNtL3FzcGlu
bG9jay5oICAgICAgICAgICAgICB8ICA4OSArLS0tLQ0KPiAgIGFyY2gveDg2L2luY2x1ZGUv
YXNtL3NwaW5sb2NrLmggICAgICAgICAgICAgICB8ICAgMSAtDQo+ICAgYXJjaC94ODYvaW5j
bHVkZS9hc20vdGltZXIuaCAgICAgICAgICAgICAgICAgIHwgICAxICsNCj4gICBhcmNoL3g4
Ni9pbmNsdWRlL2FzbS90bGJmbHVzaC5oICAgICAgICAgICAgICAgfCAgIDQgLQ0KPiAgIGFy
Y2gveDg2L2tlcm5lbC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQ0K
PiAgIGFyY2gveDg2L2tlcm5lbC9hcG1fMzIuYyAgICAgICAgICAgICAgICAgICAgICB8ICAg
MSAtDQo+ICAgYXJjaC94ODYva2VybmVsL2NhbGx0aHVua3MuYyAgICAgICAgICAgICAgICAg
IHwgICAxIC0NCj4gICBhcmNoL3g4Ni9rZXJuZWwvY3B1L2J1Z3MuYyAgICAgICAgICAgICAg
ICAgICAgfCAgIDEgLQ0KPiAgIGFyY2gveDg2L2tlcm5lbC9jcHUvdm13YXJlLmMgICAgICAg
ICAgICAgICAgICB8ICAgMSArDQo+ICAgYXJjaC94ODYva2VybmVsL2t2bS5jICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgIDExICstDQo+ICAgYXJjaC94ODYva2VybmVsL2t2bWNsb2Nr
LmMgICAgICAgICAgICAgICAgICAgIHwgICAxICsNCj4gICBhcmNoL3g4Ni9rZXJuZWwvcGFy
YXZpcnQtc3BpbmxvY2tzLmMgICAgICAgICAgfCAgMjYgKy0NCj4gICBhcmNoL3g4Ni9rZXJu
ZWwvcGFyYXZpcnQuYyAgICAgICAgICAgICAgICAgICAgfCAgNDIgKy0tDQo+ICAgYXJjaC94
ODYva2VybmVsL3RzYy5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICstDQo+ICAg
YXJjaC94ODYva2VybmVsL3ZzbXBfNjQuYyAgICAgICAgICAgICAgICAgICAgIHwgICAxIC0N
Cj4gICBhcmNoL3g4Ni9rZXJuZWwveDg2X2luaXQuYyAgICAgICAgICAgICAgICAgICAgfCAg
IDEgLQ0KPiAgIGFyY2gveDg2L2xpYi9jYWNoZS1zbXAuYyAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMSAtDQo+ICAgYXJjaC94ODYvbW0vaW5pdC5jICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxIC0NCj4gICBhcmNoL3g4Ni94ZW4vZW5saWdodGVuX3B2LmMgICAgICAg
ICAgICAgICAgICAgfCAgODIgKystLS0NCj4gICBhcmNoL3g4Ni94ZW4vaXJxLmMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgMjAgKy0NCj4gICBhcmNoL3g4Ni94ZW4vbW11X3B2
LmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMDAgKystLS0tDQo+ICAgYXJjaC94ODYv
eGVuL3NwaW5sb2NrLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDExICstDQo+ICAgYXJj
aC94ODYveGVuL3RpbWUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsNCj4g
ICBkcml2ZXJzL2Nsb2Nrc291cmNlL2h5cGVydl90aW1lci5jICAgICAgICAgICAgfCAgIDIg
Kw0KPiAgIGRyaXZlcnMveGVuL3RpbWUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMiArLQ0KPiAgIGluY2x1ZGUvbGludXgvc2NoZWQvY3B1dGltZS5oICAgICAgICAgICAg
ICAgICB8ICAxOCArDQo+ICAga2VybmVsL3NjaGVkL2NvcmUuYyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICA1ICsNCj4gICBrZXJuZWwvc2NoZWQvY3B1dGltZS5jICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgMTMgKw0KPiAgIGtlcm5lbC9zY2hlZC9zY2hlZC5oICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMyArLQ0KPiAgIHRvb2xzL29ianRvb2wvYXJjaC94
ODYvZGVjb2RlLmMgICAgICAgICAgICAgICB8ICAgOCArLQ0KPiAgIHRvb2xzL29ianRvb2wv
Y2hlY2suYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICA3OCArKysrLQ0KPiAgIHRvb2xz
L29ianRvb2wvaW5jbHVkZS9vYmp0b29sL2NoZWNrLmggICAgICAgICB8ICAgMiArDQo+ICAg
NjcgZmlsZXMgY2hhbmdlZCwgNjU5IGluc2VydGlvbnMoKyksIDgyNyBkZWxldGlvbnMoLSkN
Cj4gICBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vaW5jbHVkZS9hc20vcGFyYXZpcnQu
aA0KPiAgIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9pbmNsdWRlL2FzbS9wYXJhdmly
dF9hcGlfY2xvY2suaA0KPiAgIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9rZXJuZWwv
cGFyYXZpcnQuYw0KPiAgIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybTY0L2luY2x1ZGUv
YXNtL3BhcmF2aXJ0X2FwaV9jbG9jay5oDQo+ICAgZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gv
bG9vbmdhcmNoL2luY2x1ZGUvYXNtL3BhcmF2aXJ0X2FwaV9jbG9jay5oDQo+ICAgZGVsZXRl
IG1vZGUgMTAwNjQ0IGFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9wYXJhdmlydF9hcGlfY2xv
Y2suaA0KPiAgIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3Bh
cmF2aXJ0X2FwaV9jbG9jay5oDQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gveDg2L2lu
Y2x1ZGUvYXNtL3BhcmF2aXJ0LWJhc2UuaA0KPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNo
L3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydC1zcGlubG9jay5oDQo+ICAgZGVsZXRlIG1vZGUg
MTAwNjQ0IGFyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0X2FwaV9jbG9jay5oDQo+IA0K
DQo=
--------------0mve0WRCUDOgkf9JsJIojBKK
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-----

--------------0mve0WRCUDOgkf9JsJIojBKK--

--------------DrSPxjHRDVvfvpOSxXEGqtrJ--

--------------We5fW6EZMtlKny0A4cau12FQ
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/Ey8FAmkkKJ4FAwAAAAAACgkQsN6d1ii/Ey96
XQf/SZ63IJyquodbQLgO7UOlhatNR0JUxtLBGXtzzD9lLJ9MGtRZn78fU/peXEGHNZEA2wJlcKOY
+2AJ32Xsn9JL/9ZmbQyt014ovVTablifIrv8xlTgAgN99kTtFi2NiYD/AF98VCabwNRx+QK9Vo4n
N4Eb1eW7YQFGLSAya7T7u2xWNW41xgedaRvQNEMOvGajK6VExI9lo9cXSp5bS+VKZqQWygNsQjAy
BYg/u1+1sDr7L56331yDxmStB00H20evlCYda5vlv1qP2WpF3CuT+rpLAfQ4Wf1YCS+2ZW6UvLfy
A6h35oFwyf1ohDIh7OysCxTH57L6hrDqciTpulba8Q==
=JJbu
-----END PGP SIGNATURE-----

--------------We5fW6EZMtlKny0A4cau12FQ--


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 10:08:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 10:08:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170177.1495250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNTV6-0004Ke-JI; Mon, 24 Nov 2025 10:08:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170177.1495250; Mon, 24 Nov 2025 10:08: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 1vNTV6-0004KX-FR; Mon, 24 Nov 2025 10:08:52 +0000
Received: by outflank-mailman (input) for mailman id 1170177;
 Mon, 24 Nov 2025 10:08: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNTV5-0004KR-NC
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 10:08:51 +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 9279ffd9-c91d-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 11:08:50 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-477563e28a3so27665765e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 02:08: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-477bf3b4eb2sm186092755e9.12.2025.11.24.02.08.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 02:08: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: 9279ffd9-c91d-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763978929; x=1764583729; 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=9Fs3gD4ZDZl88AOfCN6PkViaymokcZX2oa8oa+/ySW0=;
        b=Cmh6xNe7PNwr4A6vJSG24yXe/RjrxY7MgmNwqqR5OPhO5ur5lqv2jVfoCLW5EtmM5w
         1WM5pt1zenwYTl4bmw56xlWtkiZyDMe0+9xh8DA6HLADrGLbNVUTUkxqQbldfe+xZfyJ
         rfvJJ+R8SpF8st8talJGAVuCTe6toapu75y9lkuPllWibLE93/qhNO4q+kKdGe/0z3oN
         kh6kMQ3pxZiMP/OSMs+sJiilQyW1Qh30nwWX7uCOUT3ExhKsq9ya2nGJ3e/IuGLU1yzw
         r4NzB6XwyIiFruhvZdp8c2lhlPuYGsmfXmyBPr7gVwysnC6PNs/i490eW7trgFma0XGI
         tI6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763978929; x=1764583729;
        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=9Fs3gD4ZDZl88AOfCN6PkViaymokcZX2oa8oa+/ySW0=;
        b=lz0RMZ5fU2WSUi/3NgeNOBfbgyRrpdMnN0XKu7ehus/5OOqLGUEy8uFLIWJOFgwcAW
         mwEuamhLh8DiVuE0J+mBTPykihS7gFj+GRX4zFETsB3x5UmPVFofdpmRVEWLT8IpWkj0
         pvjwIQrzjeZXU4mckV9MP62jRodA3UwohBK8QqBjjluMXtQBCXBvl7O7/XTuH4Orpvi1
         A2lRxNEqZta4xvB+Jas3unWEyUj/PjZE1TqTq2u5yfcAO74Tk+sIJKRcgg+sB9TL1BF6
         rA2sKGn3cDNNs1C/uvfnoeauhT6IqLVL4EtFYnyqG0YCNoDWhVKQm/beds2xSB0nBGEY
         wjVQ==
X-Forwarded-Encrypted: i=1; AJvYcCXFSSupXne0dRs8I9Uqh9WN8W/9RLljKVwP4pdR9X+gvrzgGcfDuhdzYJVF2b6ulmhpFHSP3Mppzy8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzoIDkP2X55O7WLhDYckIUcyCOnl3Sq1NCwqjNhh3vjMGLUwGbc
	I2qzqsbrDMdW6X2k4NguCKuht1e29TsYwloR8OmN6/TydTb8kM0p5XYKuFIMG96a1Q==
X-Gm-Gg: ASbGncvR2iP0d5mL+vi3pmJCRDdjG+zhrY1Rd5exQGbJSxYHMOQh9amud1zf6l+yP9W
	JihOmVFeJHRIbHSfqqdLg6OrARfYyrbjinPdJpTNjiDE25maqDEKEPfI/U6pklVlZ9XfEy486g3
	piTCSPSDwhgllfObgT4bSuj0vh+FNYNbBtdNYryuyszoJq3PIJcScyGeQeHGWoRna90ghrPDM1F
	MZdxiS/0j06fGMAwEqdxBjZ+RyaHUqTQL13Ud7s2Ztg4zMzgEc0Jky6I2XcMQO93Sg2sYiRfgti
	qn6vTUzRdOtp1sNgl5y3bY51oAc60S1Yc75jxWxVr2Yq9HJYiFCkVe2meuAnglOwHWng25wp85G
	TftUT+5LySrub+F/hedfp0eLgnD6hn/N+RYokTHkZgtHjlA75Y4i5JwSNez3kRQpnPponpV3M7y
	VSPVJ4NkKffxEWoY7T/gqDVo8lHrYXbpwN+XcHWEOFlpYJpMzBct9M7RBbQ17y2rB2hlVpUQwkk
	18=
X-Google-Smtp-Source: AGHT+IG3OFtIjeTBWOE7RPdAXJZ/V34haFrWgYYOYDnxRC0X/ACk2ov3cZiKBz139J2b/y4jJywEwg==
X-Received: by 2002:a05:600c:5952:b0:477:3fcf:368c with SMTP id 5b1f17b1804b1-477b9ee4fbfmr102810185e9.9.1763978929247;
        Mon, 24 Nov 2025 02:08:49 -0800 (PST)
Message-ID: <0256fa42-59d9-4d0e-b439-0a89217a207e@suse.com>
Date: Mon, 24 Nov 2025 11:08:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH v4] xen/x86: guest_access: optimize raw_x_guest() for
 PV and HVM combinations
From: Jan Beulich <jbeulich@suse.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251114140117.270461-1-grygorii_strashko@epam.com>
 <11c3929a-977b-4ef8-aaaa-9aea01657b04@suse.com>
 <fdd51da7-c8dc-4c0f-aaaf-a9fd2094bcd4@epam.com>
 <567f2759-fa03-43bd-9ae4-75e0e3811b60@suse.com>
 <276968a6-4688-48bb-b0a1-5270ad3f0002@epam.com>
 <081b0989-79fc-4cf2-9527-0dcd2d91d518@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: <081b0989-79fc-4cf2-9527-0dcd2d91d518@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.11.2025 09:11, Jan Beulich wrote:
> On 19.11.2025 20:36, Grygorii Strashko wrote:
>> Hi Jan
>>
>> On 18.11.25 15:45, Jan Beulich wrote:
>>> On 18.11.2025 14:08, Grygorii Strashko wrote:
>>>> On 17.11.25 18:43, Jan Beulich wrote:
>>>>> On 14.11.2025 15:01, Grygorii Strashko wrote:
>>>>>> --- a/xen/arch/x86/pv/Makefile
>>>>>> +++ b/xen/arch/x86/pv/Makefile
>>>>>> @@ -14,6 +14,10 @@ obj-y += ro-page-fault.o
>>>>>>    obj-$(CONFIG_PV_SHIM) += shim.o
>>>>>>    obj-$(CONFIG_TRACEBUFFER) += trace.o
>>>>>>    obj-y += traps.o
>>>>>> +obj-$(CONFIG_PV) += usercopy.o
>>>>>
>>>>> Just obj-y with the movement.
>>>>>
>>>>> However, is the movement (and was the adding of $(CONFIG_PV) in the earlier
>>>>> version) actually correct? The file also produces copy_{from,to}_unsafe_ll(),
>>>>> which aren't PV-specific. This may be only a latent issue right now, as we
>>>>> have only a single use site of copy_from_unsafe(), but those functions need
>>>>> to remain available. (We may want to arrange for them to be removed when
>>>>> linking, as long as they're not referenced. But that's a separate topic.)
>>>>
>>>> It is confusing that none of build cfg combinations have failed
>>>> (HVM=y PV=n, HVM=n PV=n) :(
>>>>
>>>> copy_to_unsafe_ll()
>>>> - called from copy_to_unsafe()
>>>> - copy_to_unsafe() has no users (unreachable, MISRA 2.1?)
>>>>
>>>> copy_from_unsafe_ll()
>>>> - called from copy_from_unsafe()
>>>> - copy_from_unsafe() called from one place do_invalid_op() with
>>>>     copy_from_unsafe(,, n = sizeof(bug_insn)).
>>>>     Due to __builtin_constant_p(n) check the copy_from_unsafe() call
>>>>     optimized by compiler to
>>>>     get_unsafe_size(*(uint16_t *)to, from, 2, UA_DROP, ret, 2);
>>>>
>>>> as result copy_from_unsafe_ll() is unreachable also (?).
>>>
>>> Yes, these likely all want to become library-like, so they are linked in only
>>> when actually referenced.
>>>
>>>> If those function are not subject to be removed, the
>>>>    usercopy.c can't be moved in "x86/pv", Right?
>>>
>>> That's my take, yes.
>>>
>>>> Making copy_{from,to}_unsafe_ll() available for !PV means
>>>> rewriting usercopy.c in some way, Right?
>>>
>>> "Re-writing" is probably too much, but some adjustments would be needed if
>>> you want to keep the "unsafe" functions but compile out the "guest" ones.
>>> It may be possible to compile the file twice, once from x86/pv/ and once
>>> from x86/, replacing the self-#include near the bottom of the file. The
>>> former would then produce the "guest" functions, the latter the "unsafe"
>>> ones.
>>
>> Below is the difference I came up with, will it work?
> 
> That'll be on you to make sure, but ...
> 
>> --- /dev/null
>> +++ b/xen/arch/x86/usercopy.c
>> @@ -0,0 +1,77 @@
>> +/*
>> + * User address space access functions.
>> + *
>> + * Copyright 1997 Andi Kleen <ak@muc.de>
>> + * Copyright 1997 Linus Torvalds
>> + * Copyright 2002 Andi Kleen <ak@suse.de>
>> + */
>> +
>> +#include <xen/lib.h>
>> +#include <xen/sched.h>
>> +#include <asm/uaccess.h>
>> +
>> +# define GUARD UA_DROP
>> +# define copy_to_guest_ll copy_to_unsafe_ll
>> +# define copy_from_guest_ll copy_from_unsafe_ll
>> +# undef __user
>> +# define __user
>> +
>> +unsigned int copy_to_guest_ll(void __user *to, const void *from, unsigned int n)
>> +{
>> +    GUARD(unsigned dummy);
>> +
>> +    stac();
>> +    asm_inline volatile (
>> +        GUARD(
>> +        "    guest_access_mask_ptr %[to], %q[scratch1], %q[scratch2]\n"
>> +        )
>> +        "1:  rep movsb\n"
>> +        "2:\n"
>> +        _ASM_EXTABLE(1b, 2b)
>> +        : [cnt] "+c" (n), [to] "+D" (to), [from] "+S" (from)
>> +          GUARD(, [scratch1] "=&r" (dummy), [scratch2] "=&r" (dummy))
>> +        :: "memory" );
>> +    clac();
>> +
>> +    return n;
>> +}
>> +
>> +unsigned int copy_from_guest_ll(void *to, const void __user *from, unsigned int n)
>> +{
>> +    unsigned dummy;
>> +
>> +    stac();
>> +    asm_inline volatile (
>> +        GUARD(
>> +        "    guest_access_mask_ptr %[from], %q[scratch1], %q[scratch2]\n"
>> +        )
>> +        "1:  rep movsb\n"
>> +        "2:\n"
>> +        ".section .fixup,\"ax\"\n"
>> +        "6:  mov  %[cnt], %k[from]\n"
>> +        "    xchg %%eax, %[aux]\n"
>> +        "    xor  %%eax, %%eax\n"
>> +        "    rep stosb\n"
>> +        "    xchg %[aux], %%eax\n"
>> +        "    mov  %k[from], %[cnt]\n"
>> +        "    jmp 2b\n"
>> +        ".previous\n"
>> +        _ASM_EXTABLE(1b, 6b)
>> +        : [cnt] "+c" (n), [to] "+D" (to), [from] "+S" (from),
>> +          [aux] "=&r" (dummy)
>> +          GUARD(, [scratch1] "=&r" (dummy), [scratch2] "=&r" (dummy))
>> +        :: "memory" );
>> +    clac();
>> +
>> +    return n;
>> +}
> 
> ... we don't want to have two instances of that code in the code base. One file
> should #include the other, after putting in place suitable #define-s. Which
> direction the #include should work I'm not entirely certain:
> - pv/usercopy.c including usercopy.c means usercopy.c then ends up misnamed,
> - usercopy.c including pv/usercopy.c means a "common" file includes a more
>   specialized (PV-only) one.

Likely it would be best to build this into library members (ideally one per
function), such that unused ones wouldn't even be pulled in by the linker. I
meant to suggest to move to xen/arch/x86/lib/, but right now we only have
xen/lib/x86/, where I don't think this would be a good fit. I've brought this
up with the other x86 maintainers ...

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 10:15:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 10:15:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170187.1495258 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNTb0-0005yf-5B; Mon, 24 Nov 2025 10:14:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170187.1495258; Mon, 24 Nov 2025 10:14: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 1vNTb0-0005yY-2a; Mon, 24 Nov 2025 10:14:58 +0000
Received: by outflank-mailman (input) for mailman id 1170187;
 Mon, 24 Nov 2025 10:14: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=R6Av=6A=redhat.com=berrange@srs-se1.protection.inumbo.net>)
 id 1vNTay-0005yQ-Ov
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 10:14:56 +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 6b48c7e5-c91e-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 11:14:54 +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-663-l1KoQPHgMP6tymnzrikDGQ-1; Mon,
 24 Nov 2025 05:14:46 -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-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 486AD1956080; Mon, 24 Nov 2025 10:14:44 +0000 (UTC)
Received: from redhat.com (unknown [10.42.28.58])
 by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 92E2430044DC; Mon, 24 Nov 2025 10:14:39 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6b48c7e5-c91e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1763979293;
	h=from:from:reply-to:reply-to:subject:subject:date:date:
	 message-id:message-id:to:to:cc:cc:mime-version:mime-version:
	 content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=0tC79samwWePB3tLxmPqGImp7yLEUid7HuRpqd42T2o=;
	b=RUaJGaIhHaYnT9AMVG1iXdyikIl1gl67NmLRxFK/V/2w3BnnbQeJUs4LNzhlNeis3xIgEF
	Z1uzSsmjYd/tC2AcdGBKd5Hyq6mIKLa9ydkC0O40/8Xfd6yNtrqwUgHTPBXcaG9qBs0Kat
	0wM/S0P7FcmXGhKpmDOPKaxEmWEu+ks=
X-MC-Unique: l1KoQPHgMP6tymnzrikDGQ-1
X-Mimecast-MFC-AGG-ID: l1KoQPHgMP6tymnzrikDGQ_1763979285
Date: Mon, 24 Nov 2025 10:14:36 +0000
From: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= <berrange@redhat.com>
To: Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Cc: qemu-devel@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
	David Woodhouse <dwmw2@infradead.org>, Paul Durrant <paul@xen.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony@xenproject.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Richard Henderson <richard.henderson@linaro.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Mark Cave-Ayland <mark.caveayland@nutanix.com>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Subject: Re: [PATCH] hw/i386/isapc: Remove dead Xen code
Message-ID: <aSQwDCCkIALZdh6w@redhat.com>
Reply-To: Daniel =?utf-8?B?UC4gQmVycmFuZ8Op?= <berrange@redhat.com>
References: <20251123185832.53802-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20251123185832.53802-1-philmd@linaro.org>
User-Agent: Mutt/2.2.14 (2025-02-20)
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4

On Sun, Nov 23, 2025 at 07:58:32PM +0100, Philippe Mathieu-DaudÃ© wrote:
> We don't use Xen on the isapc machine: let's remove
> pointless code.
> 
> Signed-off-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>
> ---
>  hw/i386/isapc.c | 27 ++++-----------------------
>  1 file changed, 4 insertions(+), 23 deletions(-)

Reviewed-by: Daniel P. BerrangÃ© <berrange@redhat.com>


With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 10:16:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 10:16:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170194.1495268 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNTc1-0006Uk-E3; Mon, 24 Nov 2025 10:16:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170194.1495268; Mon, 24 Nov 2025 10: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 1vNTc1-0006Ud-BC; Mon, 24 Nov 2025 10:16:01 +0000
Received: by outflank-mailman (input) for mailman id 1170194;
 Mon, 24 Nov 2025 10:16: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNTc0-0006Q3-46
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 10:16:00 +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 92518884-c91e-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 11:15:59 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-42b38693c4dso1816038f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 02:15: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-42cb7fb9190sm27464268f8f.33.2025.11.24.02.15.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 02: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: 92518884-c91e-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763979358; x=1764584158; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xyIEixGRa5QlUw7Hx1Leq8XYPZgq6Hg+Kj594xJkG/M=;
        b=DCua2i6AYKuzA+yDlrHDLDgpIsu1+fFk1GkH1JMsPDQXrJJsd+NWXEqVcf1/2GXb7h
         7EbKtIa3vCKIbvzpWiwqhQRHqbmWPnyLUBRlbaR0CxnLTqiKEBNnFxXzwEQYXO5QTGro
         MDIyq7i/iFzxiUbRQDhJJ5vMw9OQGPJIBUde4pP9e+vLSNP5TmrAlKlzJlarsLZwwomx
         KoftYqKa8+JWvUpV73Mja77ro133Nc+1w9cTeBfIL1Fdt58Vs+udireG6TtMDNukKxLV
         RelOxePcjj9K/o//aPExWY/na/quGo/zdA+HrLoVtr2C13k5CooPlxGzN0u8wdiJfNP7
         3uow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763979358; x=1764584158;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xyIEixGRa5QlUw7Hx1Leq8XYPZgq6Hg+Kj594xJkG/M=;
        b=Kil8aeEjIjG2FWM4TsgzF1FGyyI1oJxrf2qg+FcdBloBdfZXHxEyKyDzDeeyVcjtDf
         B40RRpZ7GmYvwquRsduaA/xPHbvwLJRvLMMJuEYG4LnqD6MrtwMxNxE8uFbfaZ7Tfjcn
         /5cKrHAuv3V8IX+HKLcU+ouWxtwZHKT2saG5UxlyTsehbSa5hbKwvMReqgofU9ES4TRv
         ZU8XklZ3xIS+JynHplCN84x1zr2m6ccpdyGcXvtPU2+Uyvt4oIzIHy7TSzPdih7+tk6t
         mJ08Qxr/VwmA2W+wz8VQRc+apZUK5KRWPViZFSdu8p1llwzEWUyKMiesYoCf1AX/zQBV
         iw3g==
X-Forwarded-Encrypted: i=1; AJvYcCX7e1KGX0MO84C5bnO2SYnJ7z93Gm5ndT3KhBbr7JWZjzK+9KH0mngxWWsmQP7UxzLIrqBrQXKUNG8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw1+kTctRwEB8KGFoCyoMzorf56EJgi6iOkFExXF/T2hrHOgo87
	Xk3uv5ZJxYdBwnZKSTN5PKPDf1XpJU9TsZQD9zdmqmvWLgpcP43Zru7hF/qYWp03Qw==
X-Gm-Gg: ASbGncul872cyotglQMx2EF9Ot1sAbK7sgB8A5lKPTbnckphi8YR8eHayLDqTL0K5R6
	H1dLl1W/DwzN3qW6QEIACrt9bMz6Ksq2oFjJoiX2fXWw/epnLo0itMEPjWAJn6Vpw0jveXVFkZr
	unxsT2Hp/vJloSrk0/ELajpDQGyUC5xY2hZYzfm9ss+xxU8v1RoGJ1KPZ0vXtI3liyZI4KHH6Kq
	48uMDaUtb1PQMczZaC7pcX+Cp5l/aZb6O4LfW7i24wejfSQiqD3vRcx4Rn8ZClE6AZ5+VH602Ew
	LeWYvhukYDHZqWfxO06XWXQeDBzMdiR9vU3lte49FIPuAjfxTutRXKPxfns1wkoDcDj6tVmhCBd
	Uy/0Bsf1aTt7AIAz50/MqnksrQKvTqRlU0xEqn5HqI/QihgLxXDPawQSQZqmEQkpD9lyyu9THbe
	x0YkiQ6gLFFXd1l6LjlNErVVrWUvnKaGcK1beFQb4PfPeyhU0tVkU4QMdGyhDLONitEfeKJEyEN
	/4zRe6DLvei7Q==
X-Google-Smtp-Source: AGHT+IG+wJAjbO9MGvrzg/tqyL8ttJBzw3uJ8hXGEM9PVj5ePgAAmoTavut6MeYd4uQDEsHKppL6kA==
X-Received: by 2002:a05:6000:401f:b0:429:f050:adbb with SMTP id ffacd0b85a97d-42cc1cc22f5mr11688438f8f.26.1763979358498;
        Mon, 24 Nov 2025 02:15:58 -0800 (PST)
Message-ID: <0bdbd520-7568-4ed2-9dc3-f2b7de74044a@suse.com>
Date: Mon, 24 Nov 2025 11:16:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 04/12] x86/irq: set accurate cpu_mask for high priority
 vectors used by external interrupts
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120090637.25087-5-roger.pau@citrix.com>
 <3491d3ee-08b8-4678-9f18-5a4daa972e02@suse.com> <aSAi0IyDBKhqND3W@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: <aSAi0IyDBKhqND3W@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.11.2025 09:29, Roger Pau MonnÃ© wrote:
> On Thu, Nov 20, 2025 at 02:06:39PM +0100, Jan Beulich wrote:
>> On 20.11.2025 10:06, Roger Pau Monne wrote:
>>> Setting the irq descriptor target CPU mask of high priority interrupts to
>>> contain all online CPUs is not accurate.  External interrupts are
>>> exclusively delivered using physical destination mode, and hence can only
>>> target a single CPU.  Setting the descriptor CPU mask to contain all online
>>> CPUs makes it impossible for Xen to figure out which CPU the interrupt is
>>> really targeting.
>>>
>>> Instead handle high priority vectors used by external interrupts similarly
>>> to normal vectors, keeping the target CPU mask accurate.  Introduce
>>> specific code in _assign_irq_vector() to deal with moving high priority
>>> vectors across CPUs, this is needed at least for fixup_irqs() to be able to
>>> evacuate those if the target CPU goes offline.
>>>
>>> Fixes: fc0c3fa2ad5c ("x86/IO-APIC: fix setup of Xen internally used IRQs (take 2)")
>>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>> with one further request:
>>
>>> @@ -756,12 +770,10 @@ void setup_vector_irq(unsigned int cpu)
>>>          if ( !irq_desc_initialized(desc) )
>>>              continue;
>>>          vector = irq_to_vector(irq);
>>> -        if ( vector >= FIRST_HIPRIORITY_VECTOR &&
>>> -             vector <= LAST_HIPRIORITY_VECTOR )
>>> -            cpumask_set_cpu(cpu, desc->arch.cpu_mask);
>>> -        else if ( !cpumask_test_cpu(cpu, desc->arch.cpu_mask) )
>>> -            continue;
>>> -        per_cpu(vector_irq, cpu)[vector] = irq;
>>> +        if ( (vector >= FIRST_HIPRIORITY_VECTOR &&
>>> +              vector <= LAST_HIPRIORITY_VECTOR) ||
>>> +             cpumask_test_cpu(cpu, desc->arch.cpu_mask) )
>>> +            per_cpu(vector_irq, cpu)[vector] = irq;
>>
>> Going beyond desc->arch.cpu_mask for hiprio vectors may deserve a comment here. When
>> the vector is global, this is necessary. But for e.g. the serial IRQ (which still
>> moves, but isn't bound to multiple CPUs, the more normal way of respecting
>> desc->arch.cpu_mask would be sufficient.
> 
> Note that hiprio vectors are handled specially in _assign_irq_vector()
> and the logic to set per_cpu(vector_irq, cpu)[vector] is
> short-circuited assuming that hiprio vectors are already setup on all
> CPUs.
> 
>> It is merely (largely) benign if we set
>> vector_irq[] also for other CPUs. "Largely" because strictly speaking if that vector
>> triggered on the wrong CPU for whatever reason, we rather shouldn't treat it as a
>> legitimate interrupt.
> 
> I see, yes, we could handle hiprio vectors more like normal ones and
> do a bit more work in _assign_irq_vector() to also set the
> vector_irq[]Â array at bind time, but then we would need the cleanup
> logic as the interrupt migrates, which is a bit of overhead when we
> know the vector won't be re-used for anything else.
> 
> What about I add the following comment:
> 
>         if ( cpumask_test_cpu(cpu, desc->arch.cpu_mask) ||
>              /*
>               * High-priority vectors are reserved on all CPUs.  Set
>               * the vector to IRQ assignment on all CPUs, even if the
>               * interrupt is not targeting this CPU.  That makes
>               * shuffling those interrupts around CPUs easier.
>               */
>              (vector >= FIRST_HIPRIORITY_VECTOR &&
>               vector <= LAST_HIPRIORITY_VECTOR) )
>             per_cpu(vector_irq, cpu)[vector] = irq;

Thanks, that's fine with me.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 10:20:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 10:20:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170206.1495278 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNTga-00082B-UE; Mon, 24 Nov 2025 10:20:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170206.1495278; Mon, 24 Nov 2025 10:20: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 1vNTga-000824-Ri; Mon, 24 Nov 2025 10:20:44 +0000
Received: by outflank-mailman (input) for mailman id 1170206;
 Mon, 24 Nov 2025 10:20: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNTgZ-00081y-WA
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 10:20:43 +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 3abf0d8a-c91f-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 11:20:41 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-477b198f4bcso26455495e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 02:20: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-477a9dfb639sm144545635e9.13.2025.11.24.02.20.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 02:20: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: 3abf0d8a-c91f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763979641; x=1764584441; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LxZKk0eLSo+Jk1Soul+zbyWBC/LI5vI8YFM++DGU2w0=;
        b=CHt2KurcfkUwf8IKmJzHSfJcdJrnhBj7xBD6La85Wb8SRgc5d5Ui32qFCRGF1dK9XA
         e5xKDNLsnFrrzDnY4SvXH3Rnecg4GWH0rI6yWv/L69Iv8KQrqXzSAeWX/WX6ENRxAnHb
         KoE3snY7USvHRemRhYbvTOmT93Y4P0rWy5/9b6FSgQ/Eq7cwY2kzGzQERNcMcSfh14Wp
         F6OXsbDLBCDwBgGv8FXj2IOz7NsD02cnrsvDoKXUFdlNdCxWvMeC257iLf1ZGIrXVtSn
         IOZZwVnw8DNnFJAhMykURzn2rMcAhJ9HN7VL0+I2L/fCchKg86ctfi1IxjrE6EGklcs0
         WBig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763979641; x=1764584441;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LxZKk0eLSo+Jk1Soul+zbyWBC/LI5vI8YFM++DGU2w0=;
        b=QfM9Uar4LW48izfvpAXTuxP2qxkVgjE099DU4Y3NYfeFWmLtEYtIaHkkgpVyA6m4U0
         E7N20RgRXYHEMW6T/holTnJRxTiabsSUaIP4XobN06f6bdw9aokljN1XybRdaKgpT3ow
         KR+FY3MLeuPo0lh8/+r4MniL2dvU8piBmPIyCCEPWtd7Lv2JRI9IK5zbwGqu5mdGcmwg
         rSlV3bi0FnERsxt8N/o/xvMc+f5LCgPOc3uvo3/teyIzrCM/s1huDpPC6UVcfh3tJP0H
         RxKei4rxy9M2wJ0f3YlebPdx9A5vHfuqnHlhII9wQX3YNx6/06fiINNcef0gAT4RijnM
         7nVA==
X-Forwarded-Encrypted: i=1; AJvYcCUZ1DvJFZ0dXc9Qav09Qmx/qjBe9GLSB1WO2t5krLlN4+KoydQzL8twz0eWYa01A0FFpYQdOrN7G8Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzJTLpOGzo22QtW0jjqcsIcrnbwGifyJG9tDWLXJ4fVQ6BurKGT
	Ah5aZUblFvXIE1+q77+5yBdPgukYP3PkyMD0j1Ed74iw+eD1H6alqw7EWwgPnN+9XA==
X-Gm-Gg: ASbGnctnknZqNeihn6IYjbMaws3lVL87HU3K4wN15og+KHadtcmG60XLpAVIycYUHzC
	Bo8aFcz/F8tsF6XbTevYxnkPFE3pJkqolB5Xow1T8MAWxsTnA3xPFTUEw0jYqbt9raldFhH8h9U
	xx8w4MoDClN55Wlq7qSefcZ3Bo7sCllcfv6T5naHQl2baQq4uXcWLSSexm5E3Hy1VDI4TfPJ2DC
	hZz1rfEvnfvQnHvdecpAd6H/PPOh7lia9fTmeLENlm97X8iHvxLD40ggFg3y2m8kWNIcNBy6wpX
	dxGqirTJ2ZKViCvjIALZ+KCUv5kclmUlXGfOMyCezfpV9obHHz7PiX0uvyxx4Ik7DNGTDcYJE1v
	GIE5jBgYUONyxGEZmReeU23PYbRJRoTRR9OPt3yLeSwxZEqF6KG8Asye6bT1rtWkpBCnyWNCmJO
	45U2Vam/Q1UT+oFr6gncUnMG5Z3YR7yiACBcM+QwupUFVMoUZE3yQLPF8aSd1F0uMnNG+8dtvsE
	L0=
X-Google-Smtp-Source: AGHT+IEVPuWaF7OEv8c0HFDAJjqdnM+uL3yItaXS4SjQ6kW9op9Tci5EQwXzta9GhC9zGCdkFjl4Cw==
X-Received: by 2002:a05:600c:3110:b0:477:632c:5b91 with SMTP id 5b1f17b1804b1-477c01b4b2amr132461825e9.16.1763979641076;
        Mon, 24 Nov 2025 02:20:41 -0800 (PST)
Message-ID: <c2aef632-b890-47ef-9b89-00659755343a@suse.com>
Date: Mon, 24 Nov 2025 11:20:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 06/12] x86/i8259: redo workaround for AMD spurious PIC
 interrupts
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120095826.25782-1-roger.pau@citrix.com>
 <126dc8bb-4f89-4a40-b39a-1b09d78b3eac@suse.com> <aSAkROL4OqcZ8AAX@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: <aSAkROL4OqcZ8AAX@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.11.2025 09:35, Roger Pau MonnÃ© wrote:
> On Thu, Nov 20, 2025 at 04:05:38PM +0100, Jan Beulich wrote:
>> On 20.11.2025 10:58, Roger Pau Monne wrote:
>>> --- a/xen/arch/x86/i8259.c
>>> +++ b/xen/arch/x86/i8259.c
>>> @@ -407,21 +407,14 @@ void __init init_IRQ(void)
>>>          per_cpu(vector_irq, cpu)[LEGACY_VECTOR(irq)] = irq;
>>>  
>>>          /*
>>> -         * The interrupt affinity logic never targets interrupts to offline
>>> -         * CPUs, hence it's safe to use cpumask_all here.
>>> -         *
>>>           * Legacy PIC interrupts are only targeted to CPU0, but depending on
>>>           * the platform they can be distributed to any online CPU in hardware.
>>> -         * Note this behavior has only been observed on AMD hardware. In order
>>> -         * to cope install all active legacy vectors on all CPUs.
>>> -         *
>>> -         * IO-APIC will change the destination mask if/when taking ownership of
>>> -         * the interrupt.
>>> +         * Note this behavior has only been observed on AMD hardware. Set the
>>> +         * target CPU as expected here, and cope with the possibly spurious
>>> +         * interrupts in do_IRQ().  This behavior has only been observed
>>> +         * during AP bringup.
>>>           */
>>> -        cpumask_copy(desc->arch.cpu_mask,
>>> -                     (boot_cpu_data.x86_vendor &
>>> -                      (X86_VENDOR_AMD | X86_VENDOR_HYGON) ? &cpumask_all
>>> -                                                          : cpumask_of(cpu)));
>>> +        cpumask_copy(desc->arch.cpu_mask, cpumask_of(cpu));
>>>          desc->arch.vector = LEGACY_VECTOR(irq);
>>>      }
>>
>> Doesn't this collide with what setup_vector_irq() does (see also patch 04)? If
>> you don't set all bits here, not all CPUs will have the vector_irq[] slot set
>> correctly for do_IRQ() to actually be able to associate the vector with the
>> right IRQ.
> 
> For the AMD workaround I've only ever saw the spurious vector
> triggering on CPUs different than the BSP at bringup,

Besides this possibly being an artifact (the issue occurring once during boot
may hide it otherwise potentially also occurring later), I think we want to be
conservative and (continue to) cover all possible cases unless we have an
explanation for why the issue would be AP-bringup-time-only.

Jan

> I don't think we
> strictly need to bind all legacy vectors on all possible CPUs.  Well
> behaved PIC interrupts will only target the BSP, and that's properly
> setup.
> 
> Thanks, Roger.



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 10:27:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 10:27:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170221.1495289 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNTnS-0000Wc-R6; Mon, 24 Nov 2025 10:27:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170221.1495289; Mon, 24 Nov 2025 10:27:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNTnS-0000WV-Nc; Mon, 24 Nov 2025 10:27:50 +0000
Received: by outflank-mailman (input) for mailman id 1170221;
 Mon, 24 Nov 2025 10:27: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=fNsn=6A=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vNTnQ-0000W2-TB
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 10:27:48 +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 3759391a-c920-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 11:27:45 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-477b1cc8fb4so23329605e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 02:27:45 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-477a9df8db3sm143734375e9.11.2025.11.24.02.27.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 02:27: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: 3759391a-c920-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763980065; x=1764584865; 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=A+uQ8yoQDarEKFfqnILD69W78C6mx41zZaOB4Hv5pSk=;
        b=Dwj9B2jwNqb3OiktUtP2939JG/DqFE/5gZOBXDetFzplqbI7/UwbbcT5G/Bimi/HWy
         iSKnEmkRsYeX3yBH5bkIjWP8y2PlSnlLgSo3b0PP98klF6kDfJKbab2fyjMEBLLHbEXj
         zQNuXfghIfHU0N56jBo8PyHrD02GTjdIojhiquzFfJ7BbMbDtv3yXD8sdWI5DH1zuf4K
         YJ7UMcw6GtQtn6/V1nY0c/phF9TOcSo6DsQlK4eDs103VbUINKeN48ujjqjLw9AiCsyn
         Tw0U01BX9DcDAjwkNHtFzCW6wwUEIceDES7VvR6h4D1RZDYAVoplpVPsh0K5zbA0tWW2
         D7Nw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763980065; x=1764584865;
        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=A+uQ8yoQDarEKFfqnILD69W78C6mx41zZaOB4Hv5pSk=;
        b=PwkrTpm/juhC39Xao69ppPD0wcuX3EdRtGVXdVoLCeE8kb92Galb7b/HG7BAz8tzic
         giOQN2nnMyTiJi6R/COaEi1lISUSQLQfgvPb1q2KBYRJS0RJ+Edag0u0LigEYWsUUzMX
         hkr/0GgwGPtt/arZqnxze66peG3L2YcQNNTadTZhdIBh4ArNzJ2V461OsZ7Ok/lx86Z3
         +2lUTLj+19IP1WabASOep9rdTcVI4emTO5ErikaS6iyolfO4Hc6/gK0KUTL492s0C1rS
         b/Zc3tMmijFR31NYo0A1/6p3uWSemjp6syMexRFDDEGrJ2JkLDWAyrxLip68N15XW5Fh
         2d/w==
X-Forwarded-Encrypted: i=1; AJvYcCUh8fLnm7PKhNHrG/BqBGnzAbfohPpIPGfoJXPeqsA/JFFf8E0PchvzSNYa/ZJyJHAcGWLiVRTY+P0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwY4cz7/PiNswVBWmmYo64vN67fbSj68Zqd6KcRbDAKQ1ycdzYm
	PZ+HtuTd835ntK/tO+aqZy55BV5kAGrwsXmfUk4iWHWCAOvHwbqi8n6HUsD4bNF9v0g=
X-Gm-Gg: ASbGncvcc6bhDCOGv/Lt6S+oFN7d9lsPNXdesgUD26pReo21uQuLy1zECRLCZcnJ1Bu
	Ux1aw2P5BMzs9amvG/74DGIN07PBiU65OkpDd//+4JV9beCBhtiuzrWDdSrdDmJ9aESVnAvjRNk
	E+vStxURj3GflhWj4/pfOxlajiz5eMrkQ46F4e9fd1XA9aJeEE2GHeEH/nelHZ8qezKfgpntHX0
	QFlHUbnjsGkSXa+bFPsT5XMBvrOqhG1PgUkgHi8sXl9d/GP5cKwMooNAyGG7Di+mIgeB4TfKCML
	jHai5No4Xg+++W0ijBY5is2LmESbaDOXblx9PFZFEmihiCa+yxloAF0gsST8d7xPtYIXlcLmOYV
	T18Eh/qBsC/jvh2IfzUDyVKSiU2VnSpVNhYhUOAv4yt7ETTX1aH7yFEziIjFq9zON96315i9QcD
	3dla2p91NH8X6IAtrximbhEblCWIRZrTJiMG9a6TVl+gagwIqXhyMA+GsnakDFGdDiI2ezqc0kA
	7qGB+GFu6t9kzVXcBYG5/JK1PwmUztkNq8dSZU=
X-Google-Smtp-Source: AGHT+IH5ZhlsB4F/EOgv1cVgZImsF52L1UJM8JpN2q76FS9KDC+LnqVdXsuKmU0jumORHcnDyL8uzQ==
X-Received: by 2002:a05:600c:19d4:b0:46e:74cc:42b8 with SMTP id 5b1f17b1804b1-477c01c0026mr98351155e9.17.1763980064843;
        Mon, 24 Nov 2025 02:27:44 -0800 (PST)
Message-ID: <56d5c0e5-0c07-4494-b4fd-ce0754d70b79@suse.com>
Date: Mon, 24 Nov 2025 11:27:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] xen/sched: address violation of MISRA C Rule 16.3
To: Nicola Vetrini <nicola.vetrini@gmail.com>, xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, jbeulich@suse.com, sstabellini@kernel.org,
 Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>
References: <cover.1763642993.git.nicola.vetrini@gmail.com>
 <60e3bd1ba6ab3bc47d3a95ddf1e3e7ef71db5f3d.1763642993.git.nicola.vetrini@gmail.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <60e3bd1ba6ab3bc47d3a95ddf1e3e7ef71db5f3d.1763642993.git.nicola.vetrini@gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------ZcWVTKxUjdHqMFs8ZWxLqsXg"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------ZcWVTKxUjdHqMFs8ZWxLqsXg
Content-Type: multipart/mixed; boundary="------------83x9WoRLfr3bQ04d22l8vzrS";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Nicola Vetrini <nicola.vetrini@gmail.com>, xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, jbeulich@suse.com, sstabellini@kernel.org,
 Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>
Message-ID: <56d5c0e5-0c07-4494-b4fd-ce0754d70b79@suse.com>
Subject: Re: [PATCH 2/4] xen/sched: address violation of MISRA C Rule 16.3
References: <cover.1763642993.git.nicola.vetrini@gmail.com>
 <60e3bd1ba6ab3bc47d3a95ddf1e3e7ef71db5f3d.1763642993.git.nicola.vetrini@gmail.com>
In-Reply-To: <60e3bd1ba6ab3bc47d3a95ddf1e3e7ef71db5f3d.1763642993.git.nicola.vetrini@gmail.com>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------83x9WoRLfr3bQ04d22l8vzrS
Content-Type: multipart/mixed; boundary="------------REeiSj21JSP1hIbV0fPvtkkL"

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

T24gMjAuMTEuMjUgMjA6MzIsIE5pY29sYSBWZXRyaW5pIHdyb3RlOg0KPiBUaGUgcnVsZSBz
dGF0ZXM6IEFuIHVuY29uZGl0aW9uYWwgYGJyZWFrJyBzdGF0ZW1lbnQgc2hhbGwgdGVybWlu
YXRlDQo+IGV2ZXJ5IHN3aXRjaC1jbGF1c2UuDQo+IA0KPiBVc2UgdGhlIGBmYWxsdGhyb3Vn
aCcgcHNldWRvLWtleXdvcmQgZm9yIHdoaWNoIGFuIEVDTEFJUiBkZXZpYXRpb24NCj4gaXMg
YWxyZWFkeSBpbiBwbGFjZS4NCj4gDQo+IE5vIGZ1bmN0aW9uYWwgY2hhbmdlLg0KPiANCj4g
U2lnbmVkLW9mZi1ieTogTmljb2xhIFZldHJpbmkgPG5pY29sYS52ZXRyaW5pQGdtYWlsLmNv
bT4NCg0KQWNrZWQtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCg0KDQpK
dWVyZ2VuDQo=
--------------REeiSj21JSP1hIbV0fPvtkkL
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-----

--------------REeiSj21JSP1hIbV0fPvtkkL--

--------------83x9WoRLfr3bQ04d22l8vzrS--

--------------ZcWVTKxUjdHqMFs8ZWxLqsXg
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/Ey8FAmkkMx8FAwAAAAAACgkQsN6d1ii/Ey8C
Twf/UQmyqkHtjJN6/SIEgidYsWHPNJlzEYV+9BD9gGSGuDMYmbSOhISB9dnldPQ3+O7rJL14zj/1
g6QCH8Yn8niT7zTFQot5eIfQ3XOL/5jh5VhVMu7ByUCLihGfj/yd0/mrblaL/hyzMuA6Gxd4kLXC
NPHJXhFfVPlNesC9jTXwO1/EKXpeU0TFn1w5BIkyjugzt7klYLtb97cKgFBJuDV/QITmXZOHbeDa
H06NRaSlWDOt/4RP4N83DAm28VVoXbXJD0u3jjNU5R9vxRhB4dhGDSKFVZ4+bjtBDtYA0yrFlEpr
g9K4jZCoe69Rnl3x5zWPyAHekSI8cw0l2jSgATtb/Q==
=4SEK
-----END PGP SIGNATURE-----

--------------ZcWVTKxUjdHqMFs8ZWxLqsXg--


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 10:35:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 10:35:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170219.1495299 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNTuQ-0002IC-Gw; Mon, 24 Nov 2025 10:35:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170219.1495299; Mon, 24 Nov 2025 10:35:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNTuQ-0002I5-Dx; Mon, 24 Nov 2025 10:35:02 +0000
Received: by outflank-mailman (input) for mailman id 1170219;
 Mon, 24 Nov 2025 10:27: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=LvCq=6A=nutanix.com=mark.caveayland@srs-se1.protection.inumbo.net>)
 id 1vNTnP-0000Vw-52
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 10:27:47 +0000
Received: from mx0a-002c1b01.pphosted.com (mx0a-002c1b01.pphosted.com
 [148.163.151.68]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 361e2372-c920-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 11:27:44 +0100 (CET)
Received: from pps.filterd (m0127840.ppops.net [127.0.0.1])
 by mx0a-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 5AO7J3e13368684; Mon, 24 Nov 2025 02:27:22 -0800
Received: from dm1pr04cu001.outbound.protection.outlook.com
 (mail-centralusazon11020073.outbound.protection.outlook.com [52.101.61.73])
 by mx0a-002c1b01.pphosted.com (PPS) with ESMTPS id 4akacsk2wj-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT);
 Mon, 24 Nov 2025 02:27:21 -0800 (PST)
Received: from PH0PR02MB7159.namprd02.prod.outlook.com (2603:10b6:510:16::8)
 by CH3PR02MB9422.namprd02.prod.outlook.com (2603:10b6:610:12b::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.17; Mon, 24 Nov
 2025 10:27:19 +0000
Received: from PH0PR02MB7159.namprd02.prod.outlook.com
 ([fe80::6cf9:b35c:b143:bb88]) by PH0PR02MB7159.namprd02.prod.outlook.com
 ([fe80::6cf9:b35c:b143:bb88%3]) with mapi id 15.20.9343.016; Mon, 24 Nov 2025
 10: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: 361e2372-c920-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=
	proofpoint20171006; bh=wDOtsCwawmr+DgL2zzNQollW8MQljymicxiKFhrkT
	sM=; b=gC16SDP5zzcPAkkz7GEQkQyQXwD5T6xY49rUY7APxRMz0YWqlXiCouyBF
	IjZbXeWobgAjqHZ/RE5ywN6v2aEQ8yb1YQbnBLV3pQOtF+tRk30xJfb0VjmC1huq
	tshVE9TuLBT9OpjZUSOmJeI9KiC1WEkZ3lcapc9QwlOzzFBRb97lQe3KOFefG+Sv
	ds5o14sIWwoejlLJRi2g7zGZODqJwJd7K1nYF5PM7IcRsui2IDTMlj+Extoc/Py3
	msmURTs74D3Hwyh6t09MQfASfbK6Kec/PegnblyIY8XXXh3jOaRv33lmJn1hZXV4
	isFFW948kfrpPXWW/YjUjQ/trDx9g==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DsNqL1jUkl0UcwaR7JUWq6y8tWjlE9UTRzOujHrRtFR28PBvLzpJzVXsUJ56nGjsV/JKaeA0zIez7ZMWrPfRdEEc32tVrj2gJcdPqzfvB3IteeiMOqnC3ukVwhAH8FiRm/miNVZMh2sQ3uwk2bmxLeTQDtRqMgLCOeDK0tX9VJXYs0bqC+AkHKN1kE4eB9RqjyZjmfj9x0btBHmjG6QXwZyuk7LObGRW4wCfJ8hB334r7JNykrgvXbYBCNsBrgOsX/Nhi8mkHT7mVQhgaAgmp7nCfOrR99z5ygCniI4IUX8ZpGWH4QqmRmEa3K6xmzH2p7frR2x3to7rTu1d+nvT5g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wDOtsCwawmr+DgL2zzNQollW8MQljymicxiKFhrkTsM=;
 b=JadvNieyDsny3oDafPdlBg0TedmQyr+WQjLnKFQwu6LiZhe4WPclYrOyXrVXSTTDBjdw8G7YtI9BPpgmJ3VUhlEKb3d02EfOlxq5/cKPCUSZRRSgQs3t1mnzGmSsRnrBX8IyoJ+yfJ96HNt3t528elx1FkvacT/CVDlDSq5rGjYSh7pgAX80wSw5VCJlKV/tsCBwZgM8/X7kyQ1lqQiooUKrh3eP1i4kEG87E0kgbCSMvlym8utgz2CZtLFpmepi8hltwKBWyxVvIL9lUUSrJcaDOQimYhxMo/WLvfpxsXM7T5uF65R1yuXJx2tnKp4QyEXINYsWIuDgJhq0/bgxaA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com;
 dkim=pass header.d=nutanix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wDOtsCwawmr+DgL2zzNQollW8MQljymicxiKFhrkTsM=;
 b=S/iCYNzyRH7p1QTZTnTVezKaDT9SxXDzDAE7kA53txo8aP3vmwuPlw6PXncmN5CYrYs8M+9j2V9DuwlTSg3FXi+PLolaVg4xE4uPlJ6qECi28/4njQ+db7PBazSbSs37uUXquoIjQ/rwz6bVyp1cD+AcgTNN9cvOnZ/aQwJWXyzfxyojGPgCb2cZVbQ4kabvxxXsdmrTSrVidy6X4Ll1afI6MGX59x7uNeL4gFxSuzBMoflvHf6Jo9Y1qR1AR/RmGe4TOltZznxzH8p1r+2l7hr9VhX4scsfSXsr8cdfkdliLJEiaKZLWYlajCZABHbwh/G3VamuNh+rtAnIek7/CA==
Message-ID: <066cb998-e89a-4cd1-a89b-865f4a6dcbbd@nutanix.com>
Date: Mon, 24 Nov 2025 10:27:14 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] hw/i386/isapc: Remove dead Xen code
To: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
        qemu-devel@nongnu.org
Cc: Paolo Bonzini <pbonzini@redhat.com>,
        David Woodhouse
 <dwmw2@infradead.org>, Paul Durrant <paul@xen.org>,
        Eduardo Habkost <eduardo@habkost.net>, xen-devel@lists.xenproject.org,
        Anthony PERARD <anthony@xenproject.org>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Richard Henderson <richard.henderson@linaro.org>,
        "Michael S. Tsirkin" <mst@redhat.com>,
        Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
References: <20251123185832.53802-1-philmd@linaro.org>
Content-Language: en-US
From: Mark Cave-Ayland <mark.caveayland@nutanix.com>
In-Reply-To: <20251123185832.53802-1-philmd@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0070.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:60::34) To PH0PR02MB7159.namprd02.prod.outlook.com
 (2603:10b6:510:16::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PH0PR02MB7159:EE_|CH3PR02MB9422:EE_
X-MS-Office365-Filtering-Correlation-Id: fb82b0af-1754-4fe5-dda7-08de2b440c1c
x-proofpoint-crosstenant: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Syt2eXJxZ1k4ZFVJSWovQmo4Yyt4cHhRR2UxbVhkMVNaSEE4U1dqelhDTDh6?=
 =?utf-8?B?dEFpbXBkS2JHVGExMnJyWmZlWWY5OWM5N3hScXpIMGJIRFgxMGJwSnc0QnJm?=
 =?utf-8?B?bGFIYVpvTEtCU3ArTWFFYTNJSVZkV1hnTnRZZ1VoSmQ0Z2RLQjkyMXRTeXE4?=
 =?utf-8?B?dEl6SGFUelNUdkNiNWVBbURoSmxKSWdNb0hicERlcUkzZWl4d2FvekxSVXc2?=
 =?utf-8?B?a0JEQ2U0NXprUkwxZ0RDWkJkVUNzSHpJeWpCUXpiWkNWYjZIZWk5STE2N256?=
 =?utf-8?B?cXR4bkJDTlVNQU1GeVh0bnU5N2M3VExtQ1czTUNwY2JNWm00RWJYb0JBZG9i?=
 =?utf-8?B?dkNYMkh4ZTZCaWJLQm02cXZyWUk4OW5wdnVtMzJnNWlNalEwSFhzZzYyNUxR?=
 =?utf-8?B?K0RPSXNmSmVmb3JVM1VOQUtFVjllcFEyNXNrSGhHQVdwV3Y1bWZ6c001Qm1k?=
 =?utf-8?B?TVlhczJrb3BvWjBBTVRjSzNiZGNVNXZCZm5EQjNkb0ZZQ2dLenlkSFJtU1Z4?=
 =?utf-8?B?Y1UzcExkL0FDdlllMUN2TGM5VytETWtjNlJXMU5iY1J6NXBybjBpTTdMUmV0?=
 =?utf-8?B?eEtYRlZRV1Fxd29RL0tpdzhqTzFtNEJUR2NGa3d5UlJHdUk1L251UHhMdnJk?=
 =?utf-8?B?eDlMeGRoT3NqT1NscnZPaTV4ODY0QzRZUHRaSjJydGFZRE9vQk5zcHpCWWZ1?=
 =?utf-8?B?U0hyWWk5d1VhYUxHMGNDYWVTb25maHVDSmRBNmZLUGpFRVJVYlZBTWl1dXd0?=
 =?utf-8?B?K0lyckpaZ1N5Q01BQnpJU2dnUWgwRXpJTm1FdEVyN0JSemFXVktrWWFnVTNP?=
 =?utf-8?B?WGFVUVFEeFU1U1dONTR4SlRLalAraTU5MGhLMmRFaFEyNXByaDFLZXoza2Zp?=
 =?utf-8?B?bGdjSmJuRzBhejVSZ0Z2WWQ0MGozLzE4RThZWmRFNU1LWm5DOUF6Q1pmVWJx?=
 =?utf-8?B?YnhyUnJSclBtNk0ybDFqamNmSTBGZk5STWdSaWhETmFOTjcwenRXYVZsSkoz?=
 =?utf-8?B?aUtFREhDZDhkamxxWmJxSEF2eGlqUkJqeDJGeG16K0V0VlMvOW53SG9Jc3F3?=
 =?utf-8?B?TWxvT092V0crUjNJSVFwai8zZVltTU1obFd1NFRLajlYTmR1TVlick1TYUlp?=
 =?utf-8?B?WHFyVjN3aTViK1pkVHErb1VxZ0duaUFxYzZZOGJhVDZJTHR6UVZ0d3ZKaEUx?=
 =?utf-8?B?YkRjMFRCVlphcHBmRW9oM3dKV0FWdTAzSUdKNkV2NlUvYUJhcHZhYXJqanZ5?=
 =?utf-8?B?aEZ1MDluYnFhUFZMNi9IUTBlS2FyNjdRV3VRVUhCVmROUEVVT21IZjF3ekdF?=
 =?utf-8?B?SkpvU1hpaUowTXdZUW9ZQzdKSHZVd1M2aHBWeUVvUDF2NVBWZUw0dWYvSTVO?=
 =?utf-8?B?bkZ6aG9hVEhybHN0MWhFV0hqWmdpL1FBWGxPdVh1amE5dVoyWkRFRGJvTUth?=
 =?utf-8?B?QkhRTE1IVEZ1WUQ4bzdpcUhJdGRSZWdaTnF6UUhscTcvWVFvVkJmU1F6VVI1?=
 =?utf-8?B?cVptS2NJRVI4SHNsVjlsSW1zcWFNTU82NEVyVkYvc0krMFZsWEIrTFZ3MzQy?=
 =?utf-8?B?cThPdGpyMzlsRnRXUVZvL05kQWdrMUluV3RoTXpqd0ZUOVpzOWhraEFVWFBY?=
 =?utf-8?B?dG8yUGtSOTlteGJvczhrWDNqWHZraURRZjdqU0VuL2VzTWNGNGd0OVMyNnRX?=
 =?utf-8?B?SUw0dXhqUlIyVWM3VzFTRlNFWW9wL0FRL09HcnNYODExRUV1c2hXdC9NNEVk?=
 =?utf-8?B?MDdzT1dRSTBpaHdkSVIwVERlSzR0bTJVT3pKa1NHLzF3aDdLeU0vK1J1Zzdj?=
 =?utf-8?B?aWM5V2RvbGRJcjQ2VkZBRG9BbFEwZnVTejJGTFFWYWRXQkFGV1Y5WDVkZEpu?=
 =?utf-8?B?RkNxcWZVRHZ5Qjd2T2JXVzFNMzZtcWtsT2tYSlExZnpYOUE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR02MB7159.namprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(7416014)(376014)(366016)(7053199007);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MG9oakNTNFQwSEMwQ1hPRHdaRzRQc290WDM4ZDFaMmdkMGZCY085eU1sTkJv?=
 =?utf-8?B?cjNRRVBPdHMzV3QrRFo2aEU4MXk5MGpTU1FRRTY1eXVHem9rVURRTzljVEdD?=
 =?utf-8?B?U2pLSENGd2dkd0FHNDVJOGsyZXdqWkY1Q29ISjlGWWcva0FPbitQTzR3d3J6?=
 =?utf-8?B?aDF6MUZoVzFXUWx1SkN2S2prdDRwNEVrOUZZS2JtTXI2ejlZZjIrcDd3UHpS?=
 =?utf-8?B?U3NLOWRlZXhHdHlGRjZtVzFwVnBZQTdzU2tqYnd2U0dYdTRRZi93WHlkaUxs?=
 =?utf-8?B?UFB1NGgwSU9CaXZQWW9UUHNLNDBKTUFzZWhVNmIyYXpTVnlpcjVXVDVQd3BF?=
 =?utf-8?B?WnZhZ3lZMTdMRkVNVER1MFZZV0xYLzdlZFpkSWlmMkNUVXJjeHY3Qkx5TEJz?=
 =?utf-8?B?QzNubDNKUUpZUEw5L1Ywd1pBMlc4VEd6a3hWNFQrQjU2dDlOUmxMdlpBNnd1?=
 =?utf-8?B?c05yU2tDdFIrZjViQjVqbktZcDFWR2VvbndNR1lHcURVai9UTDlFOW1RM3Er?=
 =?utf-8?B?Y2piTEIreXJVU0E1Rm4xV2s3QW9tV3Q4bU8vOG9pVTdlMnNUMzc3a0ZGT1ow?=
 =?utf-8?B?Ly8wNzJXNkdNV2pqeVdBUW1aT3dvV2czN3lKVFVVejZrSzdENnIxVkh0NW91?=
 =?utf-8?B?a2ZLOEZiUlRXaFRFaFpjYm1HVTNYR1c2M0p2d3hJNHc5SnBlMUxFd3JQSG9T?=
 =?utf-8?B?dGxZYVR2Rm5Fb09zRGN1VFFGS3FvdmFlZU50SnNVZFc0U2s0MWVaVng3U1k4?=
 =?utf-8?B?SkF1VitDb0QxM1JrU0podktYZkxyRURtMUdpb2h6eHZ6YmFoV1QzOFFDMnBM?=
 =?utf-8?B?TE1sSEJwUEFFd0cvVXRjVmdZdjhJSFQraVpVcXowUERrOUx0Mm0xaU5yMFlF?=
 =?utf-8?B?MThtNktWZUZtckJKeDdiNEFLUDlRS1FOaU5ZOW0vWnBSSU4zWGxFWTdsYXBy?=
 =?utf-8?B?RGFMZ3BIMkNub3dGOFZCSVMvQ3NiNTIzN00vK0lUdnZQbnhFODNTdUNXQ2lQ?=
 =?utf-8?B?cGdXb2ROZis5aTVWeXVvb3JuYjVaZzUwd3lsMUtrVmxTUEpTWG12TW1MRXNL?=
 =?utf-8?B?K2pGNVdXTmpMdDJSYjdTeG53Q0k2S2VJSUd0bkRrOG93VlZjUE93OFJsVGVY?=
 =?utf-8?B?MDcxeXl2RkR1SnR5cVgwR2JTaWY3QmcwSVJnb0pUdFFMV01NVkE2SFI3N3Av?=
 =?utf-8?B?V1FkWUlhUUZJTTZSRjBPZEpQS3MzeER3SE5pNDk3QzE3dkJValJ6ZHRMWGFX?=
 =?utf-8?B?ZGxjdnAxc3R6SWZkQWVsMERtS1k3NzFiK2pUSHh6ZEdqTXRuU1V5ekhJMkZB?=
 =?utf-8?B?M1ROalNaU0gwUlhtbmhJOWhwMThiaVJvY3VXbXlSTTlmd0tIWlBwNW5aTDhY?=
 =?utf-8?B?cEt1RU1ZdWsyTko1TE5SaWh2Nmk0QzN1SGw1Vndob3N1U1VRc3ZtS3BSaUVW?=
 =?utf-8?B?R1Bwa0tibTF0SnRZa0lIT1A2M0pJdFlDZllqZjhIYis5alZxZGNKL2VDcEVh?=
 =?utf-8?B?c2NMZzA4YVlPb1NyZTgxRk9JK3pSaEQ0TXpZNmUzek1reFpybjFGc3E1UzZZ?=
 =?utf-8?B?blFoREx4VGRnanBVSzBrZHdFMG5ETitiSDExcU9FMElhN3F5U1cvckJ1QVBF?=
 =?utf-8?B?cEdYQUdsb0E1QVhlUDd4akUyY3RJOUVHOXpZQmdlUXZrMnlMajYwd1FxN0xq?=
 =?utf-8?B?OUNpb3BYcGdqdk1xVEZTSFplbk9lYlQ2WmJCTW1SWWhSaXVtMTdGR0QrR2la?=
 =?utf-8?B?RWZ0bkxUb2xMOG5OTjZoSU4zWUI1ODk4dU80NnFjblBqdy94Mll4c29haVds?=
 =?utf-8?B?T0gvYXcyZGFHQmVwYlRIbkRCbUdYSlVRajF1K0RldFRnc3FVOUYwM0I2VVdk?=
 =?utf-8?B?T1hLZjhLaU5XRjJKbnpDMHBVSlVsNlVWMWlvclNUaU1CVTF6YXhZR0JxNTho?=
 =?utf-8?B?ZUMydkRTZ0k5RkNkVHArMGUxdklES3JnUllrK3pFait5NUkvbVl3ZXd0VzVP?=
 =?utf-8?B?QzhINkdjdlB6MW9ic040dU5VYjl2VGtDUmdaQnArOWdvaGpBVE5QcnRJUE5s?=
 =?utf-8?B?aXBGc0YzN3BzaUtzWi9rOE1wR0FjQithNHVOVktuZkNra3lSb3JaUUpmQjJB?=
 =?utf-8?B?Ly9Jc3p3dS9hbEJhd0Zyc29QVXhYdklNd2RqUnFNMTdPeEFsTXZ3Uy9UWkh2?=
 =?utf-8?B?SlhVNkhTRUZiV05jTXBualRJTzNldDNUOXJsb1JDYWZBeHNCNXk3WlhEUk44?=
 =?utf-8?B?aEVqenJDYzY2UEU5UE00bTcvVmVnPT0=?=
X-OriginatorOrg: nutanix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fb82b0af-1754-4fe5-dda7-08de2b440c1c
X-MS-Exchange-CrossTenant-AuthSource: PH0PR02MB7159.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2025 10:27:19.6444
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: WdH4UDAn27+N2Akuc8SgsijlNKyDr+eXsH80UGhxnIlCdnoKHVn16pq9RzWSWvZUDjSoQENTQbPT3kyAsyk8s82ISOBSWzJxv/soFI+TPtc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR02MB9422
X-Proofpoint-GUID: _BJg5Z4u386ajJshyWqbDsC8rJ_u5aVr
X-Authority-Analysis: v=2.4 cv=dIWrWeZb c=1 sm=1 tr=0 ts=69243309 cx=c_pps
 a=Tzn6lXVVKCRcblYJXTGjtw==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19
 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19
 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=0kUYKlekyDsA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=GaQpPoNlAAAA:8 a=64Cc0HZtAAAA:8 a=KKAkSRfTAAAA:8
 a=YcMYGtZFhfFnhVd9fs8A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10
 a=xF5q_uoM5gZT5J3czcBi:22 a=cvBusfyB2V15izCimMoJ:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTI0MDA5MyBTYWx0ZWRfX7q0qEMUrW7tG
 0hVO2EGMMaN2xmGe6kwh0z8/RAA+RYIXs4OwZ368mKQgJYZ0MPxhvUR2NrrbEvA5/FnorYLZAT2
 M0JcXQE7tfS7XXM57vBkPGwvqaI7lN5b2ox2/Oqlb5LVI8kdeX9qaaLiSo19qO8RLxEl8iUTZGh
 DEmnxDCaH/Llx0fM4dxoHqODrUlVMJ8VHX12RHidytPUeNx2MxtsOCku29hJxNrMzfnCcPI3DmZ
 t0G48V0T2NM2yVrtxMP8pAz6LrDRL51IiLtxNg/FtlOmkLwUeUN9zQxnApu4i+uIO4kFaj8qR97
 RnXgIeZwHT5BZ4Dhu+RqOCnsbhILmLp7vmRjfxmXxPXTvyn1cSxMkY2PQ3CeVSkWjtg17tN69+R
 rdjLOXXWffZQs07kjVGNqgfZ98Au3w==
X-Proofpoint-ORIG-GUID: _BJg5Z4u386ajJshyWqbDsC8rJ_u5aVr
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-11-24_04,2025-11-21_01,2025-10-01_01
X-Proofpoint-Spam-Reason: safe

On 23/11/2025 18:58, Philippe Mathieu-DaudÃ© wrote:

> We don't use Xen on the isapc machine: let's remove
> pointless code.
> 
> Signed-off-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>
> ---
>   hw/i386/isapc.c | 27 ++++-----------------------
>   1 file changed, 4 insertions(+), 23 deletions(-)
> 
> diff --git a/hw/i386/isapc.c b/hw/i386/isapc.c
> index 1ba9ae22cc3..1e13a30c505 100644
> --- a/hw/i386/isapc.c
> +++ b/hw/i386/isapc.c
> @@ -17,8 +17,6 @@
>   #include "hw/ide/ide-bus.h"
>   #include "system/kvm.h"
>   #include "hw/i386/kvm/clock.h"
> -#include "hw/xen/xen-x86.h"
> -#include "system/xen.h"
>   #include "hw/rtc/mc146818rtc.h"
>   #include "target/i386/cpu.h"
>   
> @@ -37,7 +35,6 @@ static void pc_init_isa(MachineState *machine)
>       ISABus *isa_bus;
>       uint32_t irq;
>       GSIState *gsi_state;
> -    MemoryRegion *ram_memory;
>       DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
>       int i;
>   
> @@ -77,15 +74,9 @@ static void pc_init_isa(MachineState *machine)
>       /*
>        * There is no RAM split for the isapc machine
>        */
> -    if (xen_enabled()) {
> -        xen_hvm_init_pc(pcms, &ram_memory);
> -    } else {
> -        ram_memory = machine->ram;
> -
> -        pcms->max_ram_below_4g = 3.5 * GiB;
> -        x86ms->above_4g_mem_size = 0;
> -        x86ms->below_4g_mem_size = machine->ram_size;
> -    }
> +    pcms->max_ram_below_4g = 3.5 * GiB;
> +    x86ms->above_4g_mem_size = 0;
> +    x86ms->below_4g_mem_size = machine->ram_size;
>   
>       x86_cpus_init(x86ms, pcmc->default_cpu_version);
>   
> @@ -94,17 +85,7 @@ static void pc_init_isa(MachineState *machine)
>       }
>   
>       /* allocate ram and load rom/bios */
> -    if (!xen_enabled()) {
> -        pc_memory_init(pcms, system_memory, system_memory, 0);
> -    } else {
> -        assert(machine->ram_size == x86ms->below_4g_mem_size +
> -                                    x86ms->above_4g_mem_size);
> -
> -        if (machine->kernel_filename != NULL) {
> -            /* For xen HVM direct kernel boot, load linux here */
> -            xen_load_linux(pcms);
> -        }
> -    }
> +    pc_memory_init(pcms, system_memory, system_memory, 0);
>   
>       gsi_state = pc_gsi_create(&x86ms->gsi, false);

FWIW I did contact upstream about this (see 
https://patchew.org/QEMU/20250618112828.235087-1-mark.caveayland@nutanix.com/20250618112828.235087-13-mark.caveayland@nutanix.com/#91b96b24-af60-4a89-91ec-d0e660a76a0a@nutanix.com) 
and they mentioned that it should work, which is why I left it in.

Unfortunately I don't currently have any way to test it here :/


ATB,

Mark.



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 10:38:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 10:38:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170243.1495309 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNTxW-0002uV-4j; Mon, 24 Nov 2025 10:38:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170243.1495309; Mon, 24 Nov 2025 10:38: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 1vNTxW-0002uO-1N; Mon, 24 Nov 2025 10:38:14 +0000
Received: by outflank-mailman (input) for mailman id 1170243;
 Mon, 24 Nov 2025 10:38: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=Qo8f=6A=gmail.com=samaan.dehghan@srs-se1.protection.inumbo.net>)
 id 1vNTxV-0002uI-9i
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 10:38:13 +0000
Received: from mail-pj1-x102f.google.com (mail-pj1-x102f.google.com
 [2607:f8b0:4864:20::102f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ac1deb83-c921-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 11:38:11 +0100 (CET)
Received: by mail-pj1-x102f.google.com with SMTP id
 98e67ed59e1d1-343774bd9b4so3103624a91.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 02:38: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: ac1deb83-c921-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763980690; x=1764585490; 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=7VP0F2YDQhM1UAEb+OotVHt48VMNkmXGbwBnpKUQtmw=;
        b=EHUVJ1cr8bBlGAvGo3utgYwvu1IDREwODH9WPsRuPY0biBnBjoeCE/+F/Pwwt1Hf2S
         spJvF6RjPqXyg3oubWhdFUHNr8jaUKgV2fCKhESLIfy6jKMMyZm2iXigAdXha9POfyoL
         8WA8102sBQyx4HPJciTH+JNDnpKuCGqZOUVHEVFro3JYOR+Bgyd9jypLarpBSwPlOVBO
         PlncvqiIHZkUYPEKVc21xcLYGeicct1DqlxfgRbXqgufx3+XxW8XRxjUlXSFcsx7uSOP
         H6zAU38TIuGLQTjE4LfLujls97+EnIrAyoIlrOC0YJOR8OZx4W9ApHE+G6JCMNpy7OKk
         9YXQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763980690; x=1764585490;
        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=7VP0F2YDQhM1UAEb+OotVHt48VMNkmXGbwBnpKUQtmw=;
        b=I0n7YDry5TOKrH3dNkXgAc/GFgkcWPhobXacIrAxaiC1w88jRZ/lzvYTkgEibQsKcC
         DiCUymsYt8cn6VhOO89za1nwn1KgfruVPK0GXri4LFvMj81otpkX8uRzURQOd0+5zSnb
         OtWT4Dr1RE59AoQjAbl/gESXULwpiGOMJC0pk6yiybQNmKPipOGQWIDsziz0pSmZygc/
         RnP1y+wNi3NREr66R289Ce8M/poEWoZW2N9KMjKbO7wTAAM9NtdRm1TfKjHdp7ftW0Ym
         JBemembBK6cOYpOsp3BBQi+US7mlpy8b8mStLXDBBi4C55tBWx9rMwsKR1Dp+58D+5+i
         Lmuw==
X-Forwarded-Encrypted: i=1; AJvYcCVF50V7VtZETSoOpNkpginJejP0vYbcxLIXoSha5ljId3sgKgI1S2UCCelqbmf7Hfejob/UpaRjWCU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxEsZ0GPBGNEzA8mU4M7fWlnrHzlr2QsscHcuY9wVkOTqRDnrlM
	nrv0UShVxhf7rTQaJSAYdIwVBKU9LzZt5OlOrWXNpoWrcgPf99MpL/NCP0bdr8uNxNCk4692Egk
	6wRCyC8O6NGysc0ed6ZJbGWXgVRLQsQ==
X-Gm-Gg: ASbGncvEnNsWrUyqMlSd2XVDYTm3u5mOZggJezAMW5+WlT/NeEfYz+34hOLd5sm8fUK
	7giPffMQkCjbsZ3JNDOApUzq5FtmEuJn9mLCnYkjEKU0aS8H3XnOXdJLHzNxne/J5sJWOGiAS1y
	fAwephgKNhBigKpeZpxYinTXtOc1ugeH3dpfwRhXc9iOSrcmb7qy/v+bV1FQbg28XQklETC1MF6
	m0y+6Pkw2wmdmsvlg0j+MPt1cxmVkv4/Zmbm2ReU9ozra98fyVMbf8h1YQ8N6/2Ry6+Kz0afR3e
	LJyw/ii3+LQDvCZhYPr9zVfd
X-Google-Smtp-Source: AGHT+IEpVbyPVBMX6vC0C2K84jh7dJ+EwqjR8L5bLMaWnWdIC792jLHDgVn0mn6RfiyeJyZxI5XygaM5H9cEDxd+KfY=
X-Received: by 2002:a17:90b:3503:b0:340:be44:dd0b with SMTP id
 98e67ed59e1d1-34733f5d2femr9284651a91.34.1763980690095; Mon, 24 Nov 2025
 02:38:10 -0800 (PST)
MIME-Version: 1.0
References: <3bb418ae6a36a9ac89c697a417fa0745fa9ac702.1763949990.git.samaan.dehghan@gmail.com>
 <f75bd206-47a5-450e-a4ab-920dbc4574b0@suse.com>
In-Reply-To: <f75bd206-47a5-450e-a4ab-920dbc4574b0@suse.com>
From: Saman Dehghan <samaan.dehghan@gmail.com>
Date: Mon, 24 Nov 2025 04:37:58 -0600
X-Gm-Features: AWmQ_bkECJdnkXdIt0ENZNTqjsSTOSFKa2Wk_lW7QmEiIg0KggRduKYvxXNMgSg
Message-ID: <CAHFNDNi9Z3VzAoMdenar_ehs4cgt7ohckq3ffyPsUcDi+WX-gA@mail.gmail.com>
Subject: Re: [PATCH] XEN: enable MC/DC coverage for Clang
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="0000000000006c83fc064454c22a"

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

On Mon, Nov 24, 2025 at 3:40=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 24.11.2025 03:18, Saman Dehghan wrote:
> > Clang >=3D 18 supports Modified Condition/Decision Coverage (MC/DC).
> > This patch enables the detection and usage of this feature when
> > compiling Xen with Clang.
> >
> > - Update detection logic to check for '-fcoverage-mcdc' when using
Clang.
>
> You check for ...
>
> > - Update llvm.c to handle the profile format changes (bitmap section)
> >   required for MC/DC.
> > - Guard -Wno-error=3Dcoverage-too-many-conditions with CONFIG_CC_IS_GCC
> >   to avoid passing a GCC-only warning option to Clang
> >
> > Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>
> > ---
> >  xen/Kconfig                |  2 +-
> >  xen/Rules.mk               |  1 +
> >  xen/arch/x86/Makefile      |  4 +++-
> >  xen/common/coverage/llvm.c | 24 +++++++++++++++++++++++-
> >  4 files changed, 28 insertions(+), 3 deletions(-)
> >
> > diff --git a/xen/Kconfig b/xen/Kconfig
> > index a5e5af3b76..5508993f02 100644
> > --- a/xen/Kconfig
> > +++ b/xen/Kconfig
> > @@ -53,7 +53,7 @@ config CC_HAS_ASM_GOTO_OUTPUT
> >
> >  # Compiler supports -fcondition-coverage aka MC/DC
> >  config CC_HAS_MCDC
> > -     def_bool $(cc-option,-fcondition-coverage)
> > +     def_bool $(cc-option,-fcondition-coverage) ||
$(cc-option,-fprofile-instr-generate -fcoverage-mapping -fcoverage-mcdc)
>
> ... more than that one option here. Presumably because the option alone
> wouldn't be liked by the compiler? (May want mentioning in that part of
the
> description.)
>
Yes, That is because '-fcoverage-mcdc' only allowed with
'-fcoverage-mapping' and '-fcoverage-mapping' only allowed with
'-fprofile-instr-generate'.
I will add this to the description.
Thanks.

> > --- a/xen/arch/x86/Makefile
> > +++ b/xen/arch/x86/Makefile
> > @@ -99,7 +99,9 @@ ifneq ($(CONFIG_HVM),y)
> >  $(obj)/x86_emulate.o: CFLAGS-y +=3D -Wno-unused-label
> >  endif
> >  ifeq ($(CONFIG_CONDITION_COVERAGE),y)
> > -$(obj)/x86_emulate.o: CFLAGS-y +=3D
-Wno-error=3Dcoverage-too-many-conditions
> > +    ifeq ($(CONFIG_CC_IS_GCC),y)
> > +        $(obj)/x86_emulate.o: CFLAGS-y +=3D
-Wno-error=3Dcoverage-too-many-conditions
> > +    endif
> >  endif
>
> Please can the two conditionals be combined, like I think we do elsewhere=
:
>
> ifeq ($(CONFIG_CONDITION_COVERAGE)$(CONFIG_CC_IS_GCC),yy)
>
> or
>
> ifeq ($(CONFIG_CONDITION_COVERAGE)_$(CONFIG_CC_IS_GCC),y_y)
>
> ?

I initially kept the nesting because I found several similar cases in the c=
ode
base that weren=E2=80=99t merged , so I assumed it was intentional.
No problem at all, I will combine them.
Thanks.

>
> Jan

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

<div dir=3D"ltr">On Mon, Nov 24, 2025 at 3:40=E2=80=AFAM Jan Beulich &lt;<a=
 href=3D"mailto:jbeulich@suse.com">jbeulich@suse.com</a>&gt; wrote:<br>&gt;=
<br>&gt; On 24.11.2025 03:18, Saman Dehghan wrote:<br>&gt; &gt; Clang &gt;=
=3D 18 supports Modified Condition/Decision Coverage (MC/DC).<br>&gt; &gt; =
This patch enables the detection and usage of this feature when<br>&gt; &gt=
; compiling Xen with Clang.<br>&gt; &gt;<br>&gt; &gt; - Update detection lo=
gic to check for &#39;-fcoverage-mcdc&#39; when using Clang.<br>&gt;<br>&gt=
; You check for ...<br>&gt;<br>&gt; &gt; - Update llvm.c to handle the prof=
ile format changes (bitmap section)<br>&gt; &gt; =C2=A0 required for MC/DC.=
<br>&gt; &gt; - Guard -Wno-error=3Dcoverage-too-many-conditions with CONFIG=
_CC_IS_GCC<br>&gt; &gt; =C2=A0 to avoid passing a GCC-only warning option t=
o Clang<br>&gt; &gt;<br>&gt; &gt; Signed-off-by: Saman Dehghan &lt;<a href=
=3D"mailto:samaan.dehghan@gmail.com">samaan.dehghan@gmail.com</a>&gt;<br>&g=
t; &gt; ---<br>&gt; &gt; =C2=A0xen/Kconfig =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0| =C2=A02 +-<br>&gt; &gt; =C2=A0xen/Rules.mk =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | =C2=A01 +<br>&gt; &gt; =C2=A0x=
en/arch/x86/Makefile =C2=A0 =C2=A0 =C2=A0| =C2=A04 +++-<br>&gt; &gt; =C2=A0=
xen/common/coverage/llvm.c | 24 +++++++++++++++++++++++-<br>&gt; &gt; =C2=
=A04 files changed, 28 insertions(+), 3 deletions(-)<br>&gt; &gt;<br>&gt; &=
gt; diff --git a/xen/Kconfig b/xen/Kconfig<br>&gt; &gt; index a5e5af3b76..5=
508993f02 100644<br>&gt; &gt; --- a/xen/Kconfig<br>&gt; &gt; +++ b/xen/Kcon=
fig<br>&gt; &gt; @@ -53,7 +53,7 @@ config CC_HAS_ASM_GOTO_OUTPUT<br>&gt; &g=
t; <br>&gt; &gt; =C2=A0# Compiler supports -fcondition-coverage aka MC/DC<b=
r>&gt; &gt; =C2=A0config CC_HAS_MCDC<br>&gt; &gt; - =C2=A0 =C2=A0 def_bool =
$(cc-option,-fcondition-coverage)<br>&gt; &gt; + =C2=A0 =C2=A0 def_bool $(c=
c-option,-fcondition-coverage) || $(cc-option,-fprofile-instr-generate -fco=
verage-mapping -fcoverage-mcdc)<br>&gt;<br>&gt; ... more than that one opti=
on here. Presumably because the option alone<br>&gt; wouldn&#39;t be liked =
by the compiler? (May want mentioning in that part of the<br>&gt; descripti=
on.)<br>&gt;<div><div class=3D"gmail_default" style=3D"font-family:georgia,=
serif"></div><div class=3D"gmail_default" style=3D"font-family:georgia,seri=
f">Yes, That is because &#39;-fcoverage-mcdc&#39; only allowed with &#39;-f=
coverage-mapping&#39; and=C2=A0<span style=3D"font-family:Arial,Helvetica,s=
ans-serif">&#39;-fcoverage-mapping&#39; only allowed with &#39;-fprofile-in=
str-generate&#39;.</span></div><div class=3D"gmail_default" style=3D"font-f=
amily:georgia,serif"><span style=3D"font-family:Arial,Helvetica,sans-serif"=
>I will add this to the description.</span></div><div class=3D"gmail_defaul=
t" style=3D"font-family:georgia,serif"><span style=3D"font-family:Arial,Hel=
vetica,sans-serif">Thanks.</span></div><div class=3D"gmail_default" style=
=3D"font-family:georgia,serif"><span style=3D"font-family:Arial,Helvetica,s=
ans-serif"><br></span></div>&gt; &gt; --- a/xen/arch/x86/Makefile<br>&gt; &=
gt; +++ b/xen/arch/x86/Makefile<br>&gt; &gt; @@ -99,7 +99,9 @@ ifneq ($(CON=
FIG_HVM),y)<br>&gt; &gt; =C2=A0$(obj)/x86_emulate.o: CFLAGS-y +=3D -Wno-unu=
sed-label<br>&gt; &gt; =C2=A0endif<br>&gt; &gt; =C2=A0ifeq ($(CONFIG_CONDIT=
ION_COVERAGE),y)<br>&gt; &gt; -$(obj)/x86_emulate.o: CFLAGS-y +=3D -Wno-err=
or=3Dcoverage-too-many-conditions<br>&gt; &gt; + =C2=A0 =C2=A0ifeq ($(CONFI=
G_CC_IS_GCC),y)<br>&gt; &gt; + =C2=A0 =C2=A0 =C2=A0 =C2=A0$(obj)/x86_emulat=
e.o: CFLAGS-y +=3D -Wno-error=3Dcoverage-too-many-conditions<br>&gt; &gt; +=
 =C2=A0 =C2=A0endif<br>&gt; &gt; =C2=A0endif<br>&gt;<br>&gt; Please can the=
 two conditionals be combined, like I think we do elsewhere:<br>&gt;<br>&gt=
; ifeq ($(CONFIG_CONDITION_COVERAGE)$(CONFIG_CC_IS_GCC),yy)<br>&gt;<br>&gt;=
 or<br>&gt;<br>&gt; ifeq ($(CONFIG_CONDITION_COVERAGE)_$(CONFIG_CC_IS_GCC),=
y_y)<br>&gt;<br>&gt; ?</div><div><br></div><div>I initially kept the nestin=
g because I found several similar cases in the=C2=A0<span class=3D"gmail_de=
fault" style=3D"font-family:georgia,serif">code base</span> that weren=E2=
=80=99t merged<span class=3D"gmail_default" style=3D"font-family:georgia,se=
rif">=C2=A0</span>, so I assumed it was intentional<span class=3D"gmail_def=
ault" style=3D"font-family:georgia,serif">.</span></div><div>No problem at =
all<span class=3D"gmail_default" style=3D"font-family:georgia,serif">, I wi=
ll combine them.</span></div><div><span class=3D"gmail_default" style=3D"fo=
nt-family:georgia,serif">Thanks.</span></div><div><span class=3D"gmail_defa=
ult" style=3D"font-family:georgia,serif"><br></span></div><div>&gt;</div><d=
iv>&gt; Jan</div></div>

--0000000000006c83fc064454c22a--


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 10:41:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 10:41:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170252.1495319 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNU0q-0004SM-IK; Mon, 24 Nov 2025 10:41:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170252.1495319; Mon, 24 Nov 2025 10:41:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNU0q-0004SF-FU; Mon, 24 Nov 2025 10:41:40 +0000
Received: by outflank-mailman (input) for mailman id 1170252;
 Mon, 24 Nov 2025 10:41: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNU0p-0004Qk-G4
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 10:41:39 +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 2200d1f2-c922-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 11:41:28 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4775ae5684fso19258305e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 02:41: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-477bf3b4c13sm187496895e9.13.2025.11.24.02.41.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 02:41: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: 2200d1f2-c922-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763980888; x=1764585688; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9zMZoLq11/KR/OzoedDUjQTXtJ+wLH8rtsk/2VPdtRA=;
        b=XdPFsfSoi4jwnmwc8IrjW/MSs+pWsPdhd1Nyojt4kD3u8d8oTVTKvXoKweS86oyvwj
         ep+NP6RS3hXCVqDXYVc/zoNJWiMZt/6y+eoyomqRv8tyDwGnd+zmOMXO+uDAVv68cDmn
         bYotout3Eefb7vCnXDN1HGhoaU9vYIVdUHOt6kHa0FM3CQRQt4euhF3tRAXkZizKH7pz
         FYpQkxHBswWzMwtDoY2NSpFJs91xe+LIuXIUJlDfCjqYDIdJGfiaHJFWCjNzgQsOWzTw
         uW1vtbnf70U+19yJ56eJHcOfJgmgci6E4RWf4BSboDPyUWjRPaR/w7W2BnF10s9llY0k
         ZtIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763980888; x=1764585688;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9zMZoLq11/KR/OzoedDUjQTXtJ+wLH8rtsk/2VPdtRA=;
        b=ptnGyTBCTpoR47ZGwZUeevo/1TnmlvE0OEzbighziXUPYgnUTY9RumQttvNqcOayBh
         z6sVdyEZrWtEFqZnYdVL2PmVDC8evSitbzt1t2zBPtj7X2WSznmkw+G2C/rjTTdNx76r
         +1674GKVe625c9wLSqiPa4jviYRIAV+oUJRECeaSJkN8x7Ku1zIp8DmlfaC4ftWpKJqG
         MfH77L2H3CQIjKsG2se4wbmPi/07hl5H+t1XZH0P/UgpVsMXrnlAteYcyE4oCAcyuZJw
         lAvQPykSu21YXnn4ncr1FnxFY8d1l4XYXSnCmi0FKfJQuEshPkaP6aspPexjLOev+t4H
         Xlgg==
X-Forwarded-Encrypted: i=1; AJvYcCWR6NKqIoYZqGNBd5aa0dISaq0W/Eiut553qymbZ4t8tgwhNUh+o1Oql28N4LCAqtc7LJs/cFHCIcU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz+3x4zlOu0yknMMXwRw4MdoTnHH1lGf8ZVGlzRNNZN0NztieN8
	QokbGouunZpD///ujyE8HNpl6rktGjut/IZr5VSsBc/wxQv1O8iuurJvp2WIOwvG10kgx+UrryI
	d5Gg=
X-Gm-Gg: ASbGncsEdj45oAuVHniL0FoVdmkPCVj0ACV3zDVrM+lmCNQgZtiX5UxKqLMDmM9lzEs
	fxixMqowJnSPeheBH5GmAh7vLKHfd8eXxIw3KAq9kTg3p5e6oAjY087JhqSYQDkNqqnoHzn38BW
	+zY63DDmmfBLQqCn7BPqUspu2D5ofGdhkbcn1YOn16vLrFxZtYFdQEtyrQj6DefZdFvBb/6ebZ7
	7W8F+8Uvp79qRMErS8ChcQSBzc4mCztP+q9U1ICNto9QIYaoaNKesEQSki3zv/WoC95wN9pYiku
	sStZaUBLDFf7PRVFX+me+l0pC080d5L9ksOsXQRG0b/6oIEtbfD7ZBeMtEmAhgsNhKVWtF4REMy
	c6N94JIs57pTADhiAX5Qh5Ry2GKOMSPOu2goIAZorfqQBQFCN1iYI4MtDJcUSUzs9bPuv84gAQB
	80jJn7LVVFxQrqG98wv+reoOf9kWQNp8xyPZ4OYkq3174KF9VHOEIeZ+Gvpi/fqLhz/a3pQf/6s
	68=
X-Google-Smtp-Source: AGHT+IGaYEC4CCRCg8Q2Y3ZwqEUcqQOTfDpB1cB5g79Wr/oLQ+wI5zk6WLdPtDwjtFjgIwAW7+pWzQ==
X-Received: by 2002:a05:600c:1f1a:b0:45d:f81d:eae7 with SMTP id 5b1f17b1804b1-477c114f45fmr108582765e9.28.1763980888107;
        Mon, 24 Nov 2025 02:41:28 -0800 (PST)
Message-ID: <d34e3e86-c51a-49b3-8b46-140526755f0f@suse.com>
Date: Mon, 24 Nov 2025 11:41:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251121132332.23514-2-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2025 14:23, Juergen Gross wrote:
> --- a/Config.mk
> +++ b/Config.mk
> @@ -159,6 +159,19 @@ define move-if-changed
>  	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
>  endef
>  
> +PATH_FILES := Paths
> +INC_FILES = $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
> +
> +include $(INC_FILES)
> +
> +BUILD_MAKE_VARS = $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).mk.in))

Feels like my prior comments weren't really addressed. I continue to think that
none of the above is part of what the subject says.

> +# Replace @xxx@ markers in $(1).in with $(xxx) variable contents, write to $(1)
> +define apply-build-vars
> + $(1): $(1).in $$(INC_FILES)

I further understood your reply to my v2 comment the way that you would drop the
slightly odd leading blank from here.

Jan

> +	sed $$(foreach v, $$(BUILD_MAKE_VARS), -e 's#@$$(v)@#$$($$(v))#g') <$$< >$$@
> +endef
> +
>  CFLAGS += -fno-strict-aliasing
>  
>  CFLAGS += -std=gnu99



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 10:53:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 10:53:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170264.1495338 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNUBm-0006tp-Lp; Mon, 24 Nov 2025 10:52:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170264.1495338; Mon, 24 Nov 2025 10: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 1vNUBm-0006ti-Ii; Mon, 24 Nov 2025 10:52:58 +0000
Received: by outflank-mailman (input) for mailman id 1170264;
 Mon, 24 Nov 2025 10:52: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNUBl-0006t7-6y
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 10:52:57 +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 bb12c3ba-c923-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 11:52:55 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-477ba2c1ca2so42882305e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 02:52: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-477bf1f365fsm191292965e9.8.2025.11.24.02.52.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 02: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: bb12c3ba-c923-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763981574; x=1764586374; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=EnMyMpsa3EDwflxEWCohYtKKYgNJwAtKayhparUd0k4=;
        b=DZ47t66k1J2Loaju01twzRzZ2AzbfLeTiz72XZL44qFLt3YHIbgseffdA8TTqPszII
         3uQZYWqgzq+BqIoQo4uePbhDpv2WcBwViJHX3zYf7LIvXtPpwklg8qO3KBbTbGVhb4qO
         En1yUvhAd5RxueeCZewm8AHSKyfi7rB7LQGFQJh/luM6ISfZk1AH/xAOj90gnA6xtMk5
         N6/L+AplIrw3KpY/tG7Hy/Oo85GG2BYWnGFE6gL7XRYi9vqzxXHXXTfWUa/QkD+Ruu8V
         g80L8+NA8M24kGCDwyWf45BDDROLEA6phvNrnNtaj5zrQJsrO6mifEdiBM5MIURB6rY4
         D1TQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763981574; x=1764586374;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EnMyMpsa3EDwflxEWCohYtKKYgNJwAtKayhparUd0k4=;
        b=AYARk3F/tHwyMkIQzmZftS5gxUOIviByyQuCWsJbegNXuKwPRy+YPloOy3QJnvO+Me
         zy/62VaDKTLeICB1nMTT+ul0V0xqStU/cdSgf7LAmjMm5/3ErjUWlD6G83DFTt+WpE18
         69JruUkTA9UL3QxE40dXTfe48C3qHfPk/zmyEIX9E9PI6w9c5+vl/ClEQlxdhSli/qHk
         EID0p9xk3NBs2yw/kETuEmhaEo3w0OdjIdH5RaCe1EyeFQt7VpFZHGgmuuT88SMnHHz8
         qOem+wIEZxOkAJ1B3HBsh1CtFhKO0R7C9B7x8JclEIAaOsClsi+yut+IJDzh/pjLFMuu
         BnOA==
X-Forwarded-Encrypted: i=1; AJvYcCUxXSLGzW6VUj4FqmZcJc1w5zyPUQTKEd2JkDVI/rCTzO2ACb5Y9yo+XdpgVRLuY3sSRNpH55U3+QY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwY/QiWO53DLntfeYQm4SCl1MzebQnkR+b4FZ9VgMG1DJIw0wOG
	ao7QYEHz1PuuJButBQhkeB++5xBB3mNvtSMNOZkNAAHlzncnlpoemTHMyI70hJDPPQ==
X-Gm-Gg: ASbGncvaY824gCWYHHsOVIaof/qY/5heVnHmrGjPrk2T8k6TND4EyzHvNR7Fob02S45
	AaOR2YG68lVYZgqAIEJDgW5csKSLCTWxHnXSD4lM/gbYnWy6vJiTZXjjo9iewK64VUamuGSnvjN
	7SHvY+ePiGKu4NKfuoEVXDxUxY4MSC+6Yo9VSRlBnVbKHJXWYymxyiAj9TyemoF+El7GnCZo0TU
	rjCo3XrYO8v0IYsw9OfzyORZdds8d6KJyFL7zx4SBJFCMWF8jXA4T2zu0DAKu3HK/8vrH4OnOmR
	pZuZRAZg/Y0U10artO2ZGcMIlcEGsRHMlIGGPHJw/Li/B29ce0gTJ3oUb0s8rJKHNImGbYqBa1t
	iGHtIZTh5QSK5DMPoST5TuQhEZO+eXMFbZTPDFKVdzo+3MmHlJkdGtATmgnZUiUgcRS6hAjvKKK
	IQ6vmMqpgHQ4EZSh5/AICwt4VIJ4fbJmONVp+uWKapD6f5bvK9bTzpx4LhxrW+VGqq4hZYMV9fU
	74=
X-Google-Smtp-Source: AGHT+IEBmw3ujqAFoWxvlaNNZ/FIVaUjUIFTXOho7DZbWlawoxLpT5rTKOoH+V8/df6dJ+/LazN58Q==
X-Received: by 2002:a7b:cb81:0:b0:477:9574:d641 with SMTP id 5b1f17b1804b1-477c01be3e7mr75186815e9.22.1763981574353;
        Mon, 24 Nov 2025 02:52:54 -0800 (PST)
Message-ID: <52664b6f-1114-455f-a7f8-14e95372acdc@suse.com>
Date: Mon, 24 Nov 2025 11:52:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 08/12] x86/irq: adjust bind_irq_vector() to take a single
 CPU as parameter
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120095826.25782-1-roger.pau@citrix.com>
 <20251120095826.25782-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: <20251120095826.25782-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.11.2025 10:58, Roger Pau Monne wrote:
> The vector will be targeting a single CPU at a time, so passing a mask is
> not needed.  Simplify the interface and adjust callers to make use of it.

Considering the two callers we have, and considering the function is __init,
do we need the function parameter at all? Can't we uniformly use the BSP?

> --- a/xen/arch/x86/hpet.c
> +++ b/xen/arch/x86/hpet.c
> @@ -352,7 +352,7 @@ static int __init hpet_setup_msi_irq(struct hpet_event_channel *ch)
>       * Technically we don't want to bind the IRQ to any CPU yet, but we need to
>       * specify at least one online one here.  Use the BSP.
>       */
> -    ret = bind_irq_vector(ch->msi.irq, HPET_BROADCAST_VECTOR, cpumask_of(0));
> +    ret = bind_irq_vector(ch->msi.irq, HPET_BROADCAST_VECTOR, 0);

Irrespective of the remark above, the comment then will want re-wording some,
too.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 10:53:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 10:53:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170263.1495329 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNUBi-0006fg-Fu; Mon, 24 Nov 2025 10:52:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170263.1495329; Mon, 24 Nov 2025 10:52:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNUBi-0006fZ-CH; Mon, 24 Nov 2025 10:52:54 +0000
Received: by outflank-mailman (input) for mailman id 1170263;
 Mon, 24 Nov 2025 10: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=Io9E=6A=linaro.org=alex.bennee@srs-se1.protection.inumbo.net>)
 id 1vNUBg-0006fT-SV
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 10:52:52 +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 b8d2ddcd-c923-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 11:52:51 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-42b387483bbso3051167f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 02:52:51 -0800 (PST)
Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42cb7ec454csm26687694f8f.0.2025.11.24.02.52.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 02:52:49 -0800 (PST)
Received: from draig (localhost [IPv6:::1])
 by draig.lan (Postfix) with ESMTP id DC43A5F83A;
 Mon, 24 Nov 2025 10:52:48 +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: b8d2ddcd-c923-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1763981570; x=1764586370; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:user-agent
         :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iK/lamIa2GP8d2MmAgVK21zQ9jh5z0bwbWrJlAfHUxI=;
        b=qP3wzciNGuCMqxl8ch7C2Si76OPQx7EzVFcNjFUz/1wIixPs2upQO4TZUqLO4kFgtg
         PeJwkACXjfj7Ov2yJSkIsSzGrya8SB7U2ll27x7HZSdVgRJdISNkPCu5d50FqmlIjoR3
         /gViJGWaJs1P/I7lqjaT/6nBztQot45I+VkFU5QpnC/MBA/vfCsI7o/0B6ZYKzH59U2j
         /Mpxh2D5VyVX8xzLMLANc2r9Y/6EbCGoJbdOtmSqOmwbXEsUvSBsHmKK6A76XM9JP6oZ
         C3mvqWHvaFWK5ngrb4QjC9Oqib1Avez58olZXmBCGf30MtUYz6dl6MZ559SRSmE6+e/Z
         OzPA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763981570; x=1764586370;
        h=content-transfer-encoding:mime-version:message-id:date:user-agent
         :references:in-reply-to:subject:cc:to:from:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=iK/lamIa2GP8d2MmAgVK21zQ9jh5z0bwbWrJlAfHUxI=;
        b=RKvqZggMJAt05K1IL7iEEnAH1hUxOY+xPZzSs9GuelAhFt/5+mMF3N501kB54yM4zC
         v1nNBQEDxkYKhuhiZx6anyFIJJb2BcdHkTuitHipbqtK4nqkckOLILKCtYlY0j3kEI1Q
         nyYBm+jkt97NyL41BwuriBV607dvTAbJ4CHEzWmIuTaOzr5se7eWSaUtR8ddBuz2Sc9J
         kEBulIpxlrjNzoCq64V+wYJOKSN6rKCSG5Z18Qyhw/s42PS2iVO1dvOs/UIdMP6rRkoS
         2pK1xelK4VjZkQV2CYX0ve/hz9JDQgAdhC3PIy5tkrQQNu8R8cMUBNKgyrh02yI4EH6R
         HrSg==
X-Forwarded-Encrypted: i=1; AJvYcCX3gaCUiL+NsHWi80IPyuPM7GgqiPixTJQSN0mx+Ek67jE7/tKgvAdLuXR8p7YwacC2bfCJdNQbw6M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxzJu5hoKAAviWnlqSomf0crPEhQkS0P/fDxZDWwM8+4qOqTEL4
	jNHOnJpziR/qX4fTbgmuW/DxsAxLwU2arSAUAj7zkYeFLJO7JG1uNHXKBEC8Vm3wbXk=
X-Gm-Gg: ASbGnct/jDQXC34sQqPnSnfwiHBwKPdFvjKiOv/J5PExTlo3D7AP3gzsYqhQbrRG5Yc
	i5lYFhXdsqN9oqmVBGSzHMDhHjMAynhkA7shn6Svwn0kgV0E0Ln6983DhuJKEt7sIAOA7o/9cQm
	VZ7HN1KkwG25knvfmTEu/LLSMKJffx9NNSnhuP2S00OvXcUqXiueHCP6+OKIUxRSCER46eTP45u
	kEaM5qazZVy3jzeLHj40tMYIftpzKSrdyEvokByHDMpvcLh8QHxaBD1kUG/3B4v4DT1jZzSK6OZ
	yIif/e2FAG9f1GucWRt5GLHGd4xsfMADtY1z1xxUfAWtve+f+OOqIMedMpbn+PoTnMlaWKCE/ez
	zXutVmgJWMp1WaYXXDrc0hQBGRfbm7pqIgN8cQDVJLh5Z1NF7AQCSCg4XBCIKSpAqTTEVkKOu2X
	utfSjGOFvXanI=
X-Google-Smtp-Source: AGHT+IFbgBMF20woWNeceW2OLZW9UzKbeZOc7MdUEAQ6zkpQk/eNWuZtBmInvriEfIgjQNxZzNGZ7w==
X-Received: by 2002:a05:6000:2893:b0:42b:31a5:f032 with SMTP id ffacd0b85a97d-42cc1d2d586mr13073922f8f.28.1763981570422;
        Mon, 24 Nov 2025 02:52:50 -0800 (PST)
From: =?utf-8?Q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>
To: Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Cc: qemu-devel@nongnu.org,  Paolo Bonzini <pbonzini@redhat.com>,  David
 Woodhouse <dwmw2@infradead.org>,  Paul Durrant <paul@xen.org>,  Eduardo
 Habkost <eduardo@habkost.net>,  xen-devel@lists.xenproject.org,  Anthony
 PERARD <anthony@xenproject.org>,  Stefano Stabellini
 <sstabellini@kernel.org>,  Richard Henderson
 <richard.henderson@linaro.org>,  "Michael S. Tsirkin" <mst@redhat.com>,
  Mark Cave-Ayland <mark.caveayland@nutanix.com>,  Marcel Apfelbaum
 <marcel.apfelbaum@gmail.com>
Subject: Re: [PATCH] hw/i386/isapc: Remove dead Xen code
In-Reply-To: <20251123185832.53802-1-philmd@linaro.org> ("Philippe
	=?utf-8?Q?Mathieu-Daud=C3=A9=22's?= message of "Sun, 23 Nov 2025 19:58:32
 +0100")
References: <20251123185832.53802-1-philmd@linaro.org>
User-Agent: mu4e 1.12.14-pre3; emacs 30.1
Date: Mon, 24 Nov 2025 10:52:48 +0000
Message-ID: <87bjkraein.fsf@draig.linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Philippe Mathieu-Daud=C3=A9 <philmd@linaro.org> writes:

> We don't use Xen on the isapc machine: let's remove
> pointless code.

Are you sure about this? The older Xen config did support:

  isa
      Simulate an ISA only system

  isa (Default=3D0; Value=3D'no|yes')=20

I don't know why anyone would want a ISA capable HVM machine these days
but I would at least want to know when Xen dropped this as an option in
the commit message.

>
> Signed-off-by: Philippe Mathieu-Daud=C3=A9 <philmd@linaro.org>
> ---
>  hw/i386/isapc.c | 27 ++++-----------------------
>  1 file changed, 4 insertions(+), 23 deletions(-)
>
> diff --git a/hw/i386/isapc.c b/hw/i386/isapc.c
> index 1ba9ae22cc3..1e13a30c505 100644
> --- a/hw/i386/isapc.c
> +++ b/hw/i386/isapc.c
> @@ -17,8 +17,6 @@
>  #include "hw/ide/ide-bus.h"
>  #include "system/kvm.h"
>  #include "hw/i386/kvm/clock.h"
> -#include "hw/xen/xen-x86.h"
> -#include "system/xen.h"
>  #include "hw/rtc/mc146818rtc.h"
>  #include "target/i386/cpu.h"
>=20=20
> @@ -37,7 +35,6 @@ static void pc_init_isa(MachineState *machine)
>      ISABus *isa_bus;
>      uint32_t irq;
>      GSIState *gsi_state;
> -    MemoryRegion *ram_memory;
>      DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
>      int i;
>=20=20
> @@ -77,15 +74,9 @@ static void pc_init_isa(MachineState *machine)
>      /*
>       * There is no RAM split for the isapc machine
>       */
> -    if (xen_enabled()) {
> -        xen_hvm_init_pc(pcms, &ram_memory);
> -    } else {
> -        ram_memory =3D machine->ram;
> -
> -        pcms->max_ram_below_4g =3D 3.5 * GiB;
> -        x86ms->above_4g_mem_size =3D 0;
> -        x86ms->below_4g_mem_size =3D machine->ram_size;
> -    }
> +    pcms->max_ram_below_4g =3D 3.5 * GiB;
> +    x86ms->above_4g_mem_size =3D 0;
> +    x86ms->below_4g_mem_size =3D machine->ram_size;
>=20=20
>      x86_cpus_init(x86ms, pcmc->default_cpu_version);
>=20=20
> @@ -94,17 +85,7 @@ static void pc_init_isa(MachineState *machine)
>      }
>=20=20
>      /* allocate ram and load rom/bios */
> -    if (!xen_enabled()) {
> -        pc_memory_init(pcms, system_memory, system_memory, 0);
> -    } else {
> -        assert(machine->ram_size =3D=3D x86ms->below_4g_mem_size +
> -                                    x86ms->above_4g_mem_size);
> -
> -        if (machine->kernel_filename !=3D NULL) {
> -            /* For xen HVM direct kernel boot, load linux here */
> -            xen_load_linux(pcms);
> -        }
> -    }
> +    pc_memory_init(pcms, system_memory, system_memory, 0);
>=20=20
>      gsi_state =3D pc_gsi_create(&x86ms->gsi, false);

--=20
Alex Benn=C3=A9e
Virtualisation Tech Lead @ Linaro


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 11:05:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 11:05:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170287.1495349 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNUNZ-0000ok-SG; Mon, 24 Nov 2025 11:05:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170287.1495349; Mon, 24 Nov 2025 11: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 1vNUNZ-0000od-PD; Mon, 24 Nov 2025 11:05:09 +0000
Received: by outflank-mailman (input) for mailman id 1170287;
 Mon, 24 Nov 2025 11:05: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=Qo8f=6A=gmail.com=samaan.dehghan@srs-se1.protection.inumbo.net>)
 id 1vNUNZ-0000oX-Bn
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 11:05:09 +0000
Received: from mail-qv1-xf29.google.com (mail-qv1-xf29.google.com
 [2607:f8b0:4864:20::f29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6fcc9e2f-c925-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 12:05:08 +0100 (CET)
Received: by mail-qv1-xf29.google.com with SMTP id
 6a1803df08f44-88267973e5cso25609586d6.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 03:05:08 -0800 (PST)
Received: from localhost.localdomain
 (host-154-4.mdu.ilcmifre.champaign.il.us.clients.pavlovmedia.net.
 [66.253.154.4]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-8846e59ec1dsm98274406d6.50.2025.11.24.03.05.05
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Mon, 24 Nov 2025 03:05: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: 6fcc9e2f-c925-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763982307; x=1764587107; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8iUhRz6kyEhDHWy8rKX7at4d36jRoTEsdUQgnZ9zc8s=;
        b=TinVxy3OYyFoJhEnGsyqj6rPc9p0h1oIn9z1JFGq3hFh1Cm0G169Z7Vgdl2wC5DEZy
         L083Idx6LPMmlTtf7/6G7VjlmAx3G6l+vbx/N1keZAvZQ2tDWxpjKF4TdQf0tsMIVWfE
         QVFQpL8Mp7LvICrnz7Gv/2YsVwv2He0RY/oVXxiI5ivQbzejXtQheZMMM2bcpw3oDp5o
         swJN18grl/ktY1OAfIzhScoYeWr0e11iX/z5FY4FuiR7YRBJQbtKt3hEAcpOct/wRDFF
         jVXB2fDU5UrEUdn/6UWi7SXj1W7mmQ6baD4DuFhUSmA5Y7bpKC8ISA8jAmDsZFO2VHrS
         ieAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763982307; x=1764587107;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=8iUhRz6kyEhDHWy8rKX7at4d36jRoTEsdUQgnZ9zc8s=;
        b=Eo5sv3n3hgbf3aDAEwDsI2FU9L2EKH6DNw5csEQ27XEna1qCYjh58MwXZeYUPJCjI0
         m99v3fup33TrUi+5kAeEyt95nWgEF0od3Cpz8zEc4frZGVBtcCYc3bWkJFah8/Yn5RZK
         dVEmb4dVD8ywz93kpu4EKAOG2gzYjVhzUYiRcMlb8u4u8bNX15mUe0OmokYhuQgSGNSH
         3JgDQyzJS8ywOTgMZ3ze6TcAUpwLcfU+mwn5D0aoEMh+NsVzXHFEpm7RvOaHKb8p/3m7
         Z70ZTAisFAFBDTVKF8nT8j+SQEKCLB8JiHEOhW/jX0e+hmmy3CSANumZLB0y4zNrJ1ha
         PPPw==
X-Gm-Message-State: AOJu0YzlqJBJSjb4EFex83HceBRVh5Ij6xdFjIzl/80CkPg0wKqznzVT
	Fxug5kDlGTjXvlpdy/gVWMDRq6/bE1N6tHqHIKAF+hgulmvRPiTDyPtClz+5bLs=
X-Gm-Gg: ASbGncv2JqDtdvVXjmbdfVdkcWlE5+cOGmlD94DixpxL2oAfDg6b5fcMJpGcesrvht7
	v558FPHKbvlDYPqi5CIJ9CyYnDUdgLftlETDA/fYf7N0H6cuxRhWN1e/s+VEJGqpb1Zcj3lV4Uu
	sWYafmDQ7iRSUm5du97iUtZFES8vuADKhkH8Hh8FHgCpvxMlZJb1Ml7bvl7kFpbhbwkfGtbVap0
	IgdT4vHS/o9OgoDcmB13zDd3NbIQHstzE+Aee/bK62fnVXQ55LMhLjqmd8UwrYKUVb+G2uT3MtO
	4sdDsgR0mKSaQya8aHLkel8y43vlRqng2SldvWVgtfEO9RmhKZ8p7pj5vtoGGgCRCJMC7T3v2UA
	KC61cjruE0tJvq2JUKkaAMnsWf41ivjSKs6hRTRWusTc3bbz2MRhABklp9e/96f5nupouYKiBwI
	UvCyJiRcDod1oAG0cf3a75hvf3EmIQXm81VZSDhEAIBxdB7lRrWeD0zZ/frG9runJ/HSUWcqP2l
	GBWT7ZnEjd4VwRUJQMWR3e3p9voFTM8MI7zgLSpLxd8OrEhT0+gAI0T/X4kVJP7g1RHW0MXJQ==
X-Google-Smtp-Source: AGHT+IE7MrZHK8YEhAEADYExyNGl8yaoS9nYcML9avP0sv0QXWPR7h72lv2KyDlL84ZwOiQaghUaFw==
X-Received: by 2002:a05:6214:40a:b0:880:53da:fcbc with SMTP id 6a1803df08f44-8847c4d2a76mr151890156d6.7.1763982306504;
        Mon, 24 Nov 2025 03:05:06 -0800 (PST)
From: Saman Dehghan <samaan.dehghan@gmail.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: enable MC/DC coverage for Clang
Date: Mon, 24 Nov 2025 05:04:34 -0600
Message-ID: <52b0762ac4b5535a842a530365a75bdc81a5fe61.1763981619.git.samaan.dehghan@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <3bb418ae6a36a9ac89c697a417fa0745fa9ac702.1763949990.git.samaan.dehghan@gmail.com>
References: <3bb418ae6a36a9ac89c697a417fa0745fa9ac702.1763949990.git.samaan.dehghan@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Clang >= 18 supports Modified Condition/Decision Coverage (MC/DC).
This patch enables the detection and usage of this feature when
compiling Xen with Clang.

- Update detection logic in Kconfig to check for the required set of
  Clang flags for MC/DC:
  '-fprofile-instr-generate -fcoverage-mapping -fcoverage-mcdc'.
  This bundle is necessary because '-fcoverage-mcdc' requires
  '-fcoverage-mapping', which in turn requires '-fprofile-instr-generate'.
- Update llvm.c to handle the profile format changes (bitmap section)
  required for MC/DC.
- Guard -Wno-error=coverage-too-many-conditions with CONFIG_CC_IS_GCC
  to avoid passing a GCC-only warning option to Clang

Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>
---
 xen/Kconfig                |  2 +-
 xen/Rules.mk               |  1 +
 xen/arch/x86/Makefile      |  2 +-
 xen/common/coverage/llvm.c | 24 +++++++++++++++++++++++-
 4 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/xen/Kconfig b/xen/Kconfig
index a5e5af3b76..5508993f02 100644
--- a/xen/Kconfig
+++ b/xen/Kconfig
@@ -53,7 +53,7 @@ config CC_HAS_ASM_GOTO_OUTPUT
 
 # Compiler supports -fcondition-coverage aka MC/DC
 config CC_HAS_MCDC
-	def_bool $(cc-option,-fcondition-coverage)
+	def_bool $(cc-option,-fcondition-coverage) || $(cc-option,-fprofile-instr-generate -fcoverage-mapping -fcoverage-mcdc)
 
 # Set code alignment.
 #
diff --git a/xen/Rules.mk b/xen/Rules.mk
index 24f447b957..57ea664f02 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -136,6 +136,7 @@ non-init-objects = $(filter-out %.init.o, $(obj-y) $(obj-bin-y) $(extra-y))
 
 ifeq ($(CONFIG_CC_IS_CLANG),y)
     cov-cflags-$(CONFIG_COVERAGE) := -fprofile-instr-generate -fcoverage-mapping
+    cov-cflags-$(CONFIG_CONDITION_COVERAGE) +=  -fcoverage-mcdc
 else
     cov-cflags-$(CONFIG_COVERAGE) := -fprofile-arcs -ftest-coverage
     cov-cflags-$(CONFIG_CONDITION_COVERAGE) += -fcondition-coverage
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 407571c510..6c0ff67fa8 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -98,7 +98,7 @@ $(obj)/usercopy.o: CFLAGS-y += -iquote .
 ifneq ($(CONFIG_HVM),y)
 $(obj)/x86_emulate.o: CFLAGS-y += -Wno-unused-label
 endif
-ifeq ($(CONFIG_CONDITION_COVERAGE),y)
+ifeq ($(CONFIG_CONDITION_COVERAGE)$(CONFIG_CC_IS_GCC),yy)
 $(obj)/x86_emulate.o: CFLAGS-y += -Wno-error=coverage-too-many-conditions
 endif
 
diff --git a/xen/common/coverage/llvm.c b/xen/common/coverage/llvm.c
index 532889c857..a8c7e7e8d2 100644
--- a/xen/common/coverage/llvm.c
+++ b/xen/common/coverage/llvm.c
@@ -120,6 +120,10 @@ extern const char __start___llvm_prf_names[];
 extern const char __stop___llvm_prf_names[];
 extern uint64_t __start___llvm_prf_cnts[];
 extern uint64_t __stop___llvm_prf_cnts[];
+#ifdef CONFIG_CONDITION_COVERAGE
+extern const char __start___llvm_prf_bits[];
+extern const char __stop___llvm_prf_bits[];
+#endif
 
 #define START_DATA      ((const void *)__start___llvm_prf_data)
 #define END_DATA        ((const void *)__stop___llvm_prf_data)
@@ -127,16 +131,25 @@ extern uint64_t __stop___llvm_prf_cnts[];
 #define END_NAMES       ((const void *)__stop___llvm_prf_names)
 #define START_COUNTERS  ((void *)__start___llvm_prf_cnts)
 #define END_COUNTERS    ((void *)__stop___llvm_prf_cnts)
+#define START_BITMAP    ((void *)__start___llvm_prf_bits)
+#define END_BITMAP      ((void *)__stop___llvm_prf_bits)
 
 static void cf_check reset_counters(void)
 {
     memset(START_COUNTERS, 0, END_COUNTERS - START_COUNTERS);
+#ifdef CONFIG_CONDITION_COVERAGE
+    memset(START_BITMAP, 0, END_BITMAP - START_BITMAP);
+#endif
 }
 
 static uint32_t cf_check get_size(void)
 {
-    return ROUNDUP(sizeof(struct llvm_profile_header) + END_DATA - START_DATA +
+    uint32_t size = ROUNDUP(sizeof(struct llvm_profile_header) + END_DATA - START_DATA +
                    END_COUNTERS - START_COUNTERS + END_NAMES - START_NAMES, 8);
+#ifdef CONFIG_CONDITION_COVERAGE
+    size += ROUNDUP(END_BITMAP - START_BITMAP, 8);
+#endif
+    return size;
 }
 
 static int cf_check dump(
@@ -147,11 +160,17 @@ static int cf_check dump(
         .version = LLVM_PROFILE_VERSION,
         .num_data = DIV_ROUND_UP(END_DATA - START_DATA, sizeof(struct llvm_profile_data)),
         .num_counters = DIV_ROUND_UP(END_COUNTERS - START_COUNTERS, sizeof(uint64_t)),
+#if defined(CONFIG_CONDITION_COVERAGE) && LLVM_PROFILE_VERSION >= 9
+        .num_bitmap_bytes = END_BITMAP - START_BITMAP,
+#endif
         .names_size = END_NAMES - START_NAMES,
 #if LLVM_PROFILE_VERSION >= 8
         .counters_delta = START_COUNTERS - START_DATA,
 #else
         .counters_delta = (uintptr_t)START_COUNTERS,
+#endif
+#if defined(CONFIG_CONDITION_COVERAGE) && LLVM_PROFILE_VERSION >= 9
+        .bitmap_delta = START_BITMAP - START_DATA,
 #endif
         .names_delta = (uintptr_t)START_NAMES,
         .value_kind_last = LLVM_PROFILE_NUM_KINDS - 1,
@@ -168,6 +187,9 @@ static int cf_check dump(
     APPEND_TO_BUFFER(&header, sizeof(header));
     APPEND_TO_BUFFER(START_DATA, END_DATA - START_DATA);
     APPEND_TO_BUFFER(START_COUNTERS, END_COUNTERS - START_COUNTERS);
+#if defined(CONFIG_CONDITION_COVERAGE)
+    APPEND_TO_BUFFER(START_BITMAP, END_BITMAP - START_BITMAP);
+#endif
     APPEND_TO_BUFFER(START_NAMES, END_NAMES - START_NAMES);
 #undef APPEND_TO_BUFFER
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 11:05:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 11:05:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170289.1495359 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNUNq-000193-41; Mon, 24 Nov 2025 11:05:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170289.1495359; Mon, 24 Nov 2025 11:05:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNUNq-00018w-0M; Mon, 24 Nov 2025 11:05:26 +0000
Received: by outflank-mailman (input) for mailman id 1170289;
 Mon, 24 Nov 2025 11:05: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=fNsn=6A=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vNUNo-000142-OW
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 11:05:24 +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 78bb90f9-c925-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 12:05:22 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-64198771a9bso7344982a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 03:05:22 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64536442993sm12335989a12.27.2025.11.24.03.05.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 03:05: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: 78bb90f9-c925-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763982322; x=1764587122; 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=pxQ5a4aTYbkKnAIZwzUDrthL/kvbIywDORrGo/Jbw4s=;
        b=e0AggBJlEgO/2xkYgz5z6ndJqlRxXI1xq1ArZ7yJCj1F0Tsd5wD65r3VfrLAoV6s84
         NKqGGmELwhIM58i1v+QaT4y5xJGTaxs2vpYWe8naFImG6FsjbLUdOY+Px94Gu/t572dq
         1K89Xgq//k7JdHzedV+EEcgARx34oqdHGidXXCfuWYXuk9jCUgbaKQTBArN1QlZXglak
         DdTYsmfsIdrE72IHgvfqZRM15sz8xuUoXxZ+sB3mdTNPyRwdP2dRwjuAvgkTMcxC/PjY
         Zhki/8O+RDekQnWyfgf5qRLH8LYMjat6VytT8r1fZlJqFz+l3HSayImSP6ixS+53+9ck
         IVDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763982322; x=1764587122;
        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=pxQ5a4aTYbkKnAIZwzUDrthL/kvbIywDORrGo/Jbw4s=;
        b=U9ZV79nqc3dHTlVOBoSuus2oaCjN/Fojo02LyRHrA936pDVC5isCw5nkHycgyLUPlE
         dHoBtP8aitC1DX+kBn3o4f4KjubB2DhgcbWWHm8MCGAHaeHidRYeUduL4y2a2LD645bJ
         NnaowMC5TRG/xi0hL4zpNLXrOCeYBH9RXFz+2LbeZOFd+ZLcGo27b0y5wkvIHgiNKfjB
         8HMgVdbO5tgPhhJPPA9xC+nnRlh3pghQsNe4ajTUGOYlsr6/Urwg3IuvPY/3GCH/Iwfv
         XP0QCgHP36N4DEG6jCehjVpmX+1tmjVxf2tiG1eRdrfB4JCqglMwYNPM01xhr9HUxkQ6
         uvHw==
X-Forwarded-Encrypted: i=1; AJvYcCVix5ljYF2v2X6uz8Jh5OSHk0a7HN4pWYAgeo0cjv76qeT3q8aOfZGp2rXESBqwkbuBnGeUY+jS0lg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwUeu3U7qQKmqDajJFycWcgdNHG7wNpCvOwydEK1kjvx8GajPNj
	iUmN0Vi4Ia4cvRaiYNmdJQQ+o5KHrGvL43hlMJmcp75o8oy0sNyvBsXmWmxewy03BA+wnWZIt8k
	1Pnqtxig=
X-Gm-Gg: ASbGncsl5KjU4ofYcfHmIxRAJCoSdb/K8IguZv9gb6mFAROHM+ISu91cAfHh6jsN13o
	jF9IUjaSE+pwRygHqfP/x8nlYFpUkWMVdSKJRnx1sEkU8qS0J2sO+5MTTy2p4VvbCuOe1T0H1is
	+fHrGimnjIyh3AZ2lhY5GUXuL2ZA3CUiFp5v4SNRCDPlQB/YDIs6O9kNha8ouQCGkALB+ipDn5I
	Kjvdhl78F+7mf3BMAf2hVAHKbBrepKajGTSIK9JPAfC6XvRjbopGyO5km+hdmktx/jiGbDqGAXe
	VU/nw0WkC6USFxy3AWMAPdtkm7YqtZztA8cQrw+3Gtj4m3ik9E80bYITL08aN3TXW/FWMW/v+Dx
	5IFSnouTVlZQyfo2JmdpB7/N84HhdICvx5P484xGg04KQssBVoKTEqlUTdpligbr4VpjJya4vki
	cg5KWIfVwLSdMQjj1Sy+oqSTXj28GDKpczI5lWqLdMAr6XX7k8OS3U8d+KBRZgQwuV1O5eSV2vE
	jOx5RtI38tF9DB2XSUoe5FhURfVjSRVJEGpaUs=
X-Google-Smtp-Source: AGHT+IEct/5lurO8jyhrCUtHAdby6h1EaMIZcmpU0nrjAYLT/m+oN3L3JOILjtTTbDAknB8X5atvaA==
X-Received: by 2002:a05:6402:210d:b0:640:ebca:e682 with SMTP id 4fb4d7f45d1cf-64554674c2bmr8880510a12.21.1763982321861;
        Mon, 24 Nov 2025 03:05:21 -0800 (PST)
Message-ID: <826037a5-dacf-434f-90d9-8f12e61bdd6e@suse.com>
Date: Mon, 24 Nov 2025 12:05:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
 <d34e3e86-c51a-49b3-8b46-140526755f0f@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: <d34e3e86-c51a-49b3-8b46-140526755f0f@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------nOmVo6TWtXlwubB0TlRpZT2N"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------nOmVo6TWtXlwubB0TlRpZT2N
Content-Type: multipart/mixed; boundary="------------nwJd9KJEVi6CYgfZNLrJquar";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.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?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Message-ID: <826037a5-dacf-434f-90d9-8f12e61bdd6e@suse.com>
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
 <d34e3e86-c51a-49b3-8b46-140526755f0f@suse.com>
In-Reply-To: <d34e3e86-c51a-49b3-8b46-140526755f0f@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=

--------------nwJd9KJEVi6CYgfZNLrJquar
Content-Type: multipart/mixed; boundary="------------gxZo00q2qAhI0I3jPIOnAxSr"

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

T24gMjQuMTEuMjUgMTE6NDEsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyMS4xMS4yMDI1
IDE0OjIzLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gLS0tIGEvQ29uZmlnLm1rDQo+PiAr
KysgYi9Db25maWcubWsNCj4+IEBAIC0xNTksNiArMTU5LDE5IEBAIGRlZmluZSBtb3ZlLWlm
LWNoYW5nZWQNCj4+ICAgCWlmICEgY21wIC1zICQoMSkgJCgyKTsgdGhlbiBtdiAtZiAkKDEp
ICQoMik7IGVsc2Ugcm0gLWYgJCgxKTsgZmkNCj4+ICAgZW5kZWYNCj4+ICAgDQo+PiArUEFU
SF9GSUxFUyA6PSBQYXRocw0KPj4gK0lOQ19GSUxFUyA9ICQoZm9yZWFjaCBmLCAkKFBBVEhf
RklMRVMpLCAkKFhFTl9ST09UKS9jb25maWcvJChmKS5taykNCj4+ICsNCj4+ICtpbmNsdWRl
ICQoSU5DX0ZJTEVTKQ0KPj4gKw0KPj4gK0JVSUxEX01BS0VfVkFSUyA9ICQoZm9yZWFjaCBm
LCAkKFBBVEhfRklMRVMpLCAkKHNoZWxsIGF3ayAnJCQyID09ICI6PSIgeyBwcmludCAkJDE7
IH0nICQoWEVOX1JPT1QpL2NvbmZpZy8kKGYpLm1rLmluKSkNCj4gDQo+IEZlZWxzIGxpa2Ug
bXkgcHJpb3IgY29tbWVudHMgd2VyZW4ndCByZWFsbHkgYWRkcmVzc2VkLiBJIGNvbnRpbnVl
IHRvIHRoaW5rIHRoYXQNCj4gbm9uZSBvZiB0aGUgYWJvdmUgaXMgcGFydCBvZiB3aGF0IHRo
ZSBzdWJqZWN0IHNheXMuDQoNCkkgcmVhbGx5IGRvbid0IHVuZGVyc3RhbmQgeW91ciBjb25j
ZXJuIGhlcmUuDQoNCkZvciByZXBsYWNpbmcgdGhlIEBtYXJrZXJzQCBtYWtlIG5lZWRzIHRv
IGtub3cgd2hhdCBzaG91bGQgYmUgcmVwbGFjZWQuDQpTbyBpdCBuZWVkcyB0byBzY2FuIHRo
ZSBmaWxlcyBjb250YWluaW5nIHRoZSBtYXJrZXJzIGFuZCBnYXRoZXIgdGhlbS4NClRoaXMg
aXMgd2hhdCBpcyBkb25lIGFib3ZlLg0KDQpJbiB0aGUgZmluYWwgbWFjcm8gYmVsb3cgdGhl
IHJlcGxhY2VtZW50cyBhcmUgZG9uZSB0aGVuLiBIb3cgd291bGQgeW91DQpoYW5kbGUgdGhh
dD8NCg0KPiANCj4+ICsjIFJlcGxhY2UgQHh4eEAgbWFya2VycyBpbiAkKDEpLmluIHdpdGgg
JCh4eHgpIHZhcmlhYmxlIGNvbnRlbnRzLCB3cml0ZSB0byAkKDEpDQo+PiArZGVmaW5lIGFw
cGx5LWJ1aWxkLXZhcnMNCj4+ICsgJCgxKTogJCgxKS5pbiAkJChJTkNfRklMRVMpDQo+IA0K
PiBJIGZ1cnRoZXIgdW5kZXJzdG9vZCB5b3VyIHJlcGx5IHRvIG15IHYyIGNvbW1lbnQgdGhl
IHdheSB0aGF0IHlvdSB3b3VsZCBkcm9wIHRoZQ0KPiBzbGlnaHRseSBvZGQgbGVhZGluZyBi
bGFuayBmcm9tIGhlcmUuDQoNCk9oLCB3aXRoIG5vIGZ1cnRoZXIgcmVzcG9uc2UgSSBkaWRu
J3Qgc2VlIGEgcmVhc29uIHRvIGFjdCBpbW1lZGlhdGVseS4NCg0KDQpKdWVyZ2VuDQo=
--------------gxZo00q2qAhI0I3jPIOnAxSr
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-----

--------------gxZo00q2qAhI0I3jPIOnAxSr--

--------------nwJd9KJEVi6CYgfZNLrJquar--

--------------nOmVo6TWtXlwubB0TlRpZT2N
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/Ey8FAmkkO/EFAwAAAAAACgkQsN6d1ii/Ey/n
Rgf/ahsPJpp1rubPXjpoTWlreBmZj4TcsbnwgfhRvQSF6K0YLdfRdg2/3rUz+T5dpA7Fpccgc8GN
KyVj4/3/bpbHNWWQnpZzwSP3hJX8ggvn7RUYvGv4jHsX1LfaGmLZ/Xx2kLEpRv1s4TBF6C4ImMWc
tzCZOCSZyXajlcQVVIkdJ6DYHkutvpvh0XkeQCE2Dx+mMCj9EoF4900682OlW91RQh77htJmIQKH
qyYQhvwgEFr/DIkod1nrAhHlWynY+XzcC/g1QSyKDDrPAas9D9mGCr7h96NgoRpyKQoGkakcq7uL
N+NSlSbYX7kxqltfxApcMaPskvqRF0KzuhPZssn55A==
=JTdP
-----END PGP SIGNATURE-----

--------------nOmVo6TWtXlwubB0TlRpZT2N--


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 11:07:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 11:07:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170304.1495369 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNUPd-0001qR-F0; Mon, 24 Nov 2025 11:07:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170304.1495369; Mon, 24 Nov 2025 11:07:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNUPd-0001qK-Bm; Mon, 24 Nov 2025 11:07:17 +0000
Received: by outflank-mailman (input) for mailman id 1170304;
 Mon, 24 Nov 2025 11:07: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=1xw1=6A=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vNUPc-0001qC-B9
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 11:07:16 +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 b947db03-c925-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 12:07:11 +0100 (CET)
Received: by mail-wr1-x444.google.com with SMTP id
 ffacd0b85a97d-42bb288c1bfso2406733f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 03:07:10 -0800 (PST)
Received: from [192.168.69.210] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42cb7f2e556sm27384662f8f.5.2025.11.24.03.07.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 03:07: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: b947db03-c925-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1763982430; x=1764587230; 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=/upjQ9H0SVSCgM+bbXBuwZe839PMqXM0bsd8OKlLlL0=;
        b=E9Y9QSPHBjQBCi2B44yKbv2Zozt/CZaPMqhwOowEzuVRmIaGVen5xVtQ+YGt9XBo+O
         JjVHcl+wMTagfoVF5AzBAEY3TspQ/NIAbL3elmThru7VhUjJH7oUmN8MDA+cZIFZ2K0/
         bYm+mVJMmEWSYAqli8nh4/TfAziUqb7qYq9b/IfUnJCNRA+hvhwoZoN1EaslSpgPxxMm
         BfhvEQlM3tMwiiygSCnNWPDWCZaMzH25ZnIloOI5/pvqVSheIz8r5pZ3zzC+xMj791RF
         vTObnknWV6Vrg8d7nGYhJp77J1LJdQlEmTbh1Jofu7ZAxNQ+bbCPlqsM+xTKvKSRHnJo
         8yAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763982430; x=1764587230;
        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=/upjQ9H0SVSCgM+bbXBuwZe839PMqXM0bsd8OKlLlL0=;
        b=dZqdrCz/GoHS4XHUtTmQm7bU8fEPM89bpNbK0eoCI4Hb1lIg+ZdPoFmGsezbq2wrvM
         IEmHFnvAf7YS7Eer3DNILA8/tL997yj5xcorS7gp6T4+WtzaKVNKVZLdCZUQX6m3fuQo
         e32D1H0eWYQlJLYDio9B3sh5qC6gqL+CSmrfy6xHfMvW4qop1vxOHUYI91fBLyRqfyLT
         CjAoj0dbHBpJLgVEp5BtBnGgXN4GsudWK0+QnYwl2gtiZlj2LS7ImlZDmWIPYhlFfqjM
         kAZ9l2tgoXR45H20Ihs+D15L1qyAf1s0n/T789NO1B4Dd/19cCDXDRztn08V9pZCexiP
         P0AA==
X-Forwarded-Encrypted: i=1; AJvYcCVSIJxTj8rLRC+Qapm7EEv69IdBPwU2T224T/FBV+ZEkgQx0h6jKGzNwHL/yy5OucGHZZZYHYalxGU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwHX/fwmdgVqgsra8lanRbXTb/5Ktlx4Ji0t4ANneMq84RTNc87
	+zoIjU1Cc9pmENISFYmZO96Loa1YBsWUaEEjYLyUljoNNv8394C97hMYJHRRAx3iDGE=
X-Gm-Gg: ASbGncvHQ5AHD5U7zD6krj2MbLjwljz1g010TaE/bhlcZ2YlRVKVgklR783RXK9pN69
	YEFb32S01udKVM0SHArldBHZMOAe3bEjLNylcrqohG9rDDIe8RTUmPJ4O76ZMyeWnzlGy1UbYwO
	VDMjXhC8BSnbu5pWvZO7H6E3KIEJX5AMU8EPnrBYJlhceSgElVflBYfkXGlRSEe5nplHayiLn0R
	QwBhn4BGszXROKyL4y0eKLKEwAPodVYzWg56LQ/3vLmXvUSjV5QQpLP1EvhGixVMpT1ePLytzIO
	rs8XocicXbGTL1zYwOSxaa+Mui8WMD6qOuuho6FNRw7Y3Mn8BXlFqvWhvknHMm930EZnv4zV6DC
	gYZ9z3udam0s3vfmV7xO34Kp3zfVBYlH5kUQcxDYpCSmHH++my+Bjgxzp8nBVG2RJCRCMKb8HaX
	md2AfHYnv4JIShE1EFO6/J42SrUPkiRt6JbuUCf/FTGKQWZSzL38ek6Q==
X-Google-Smtp-Source: AGHT+IGEnMVZZwNHPNq9S194krqfxY5EzZns/dSIyOWDta8DjbBG9k2g9N/EkMMC3EMX0Vm562Ebwg==
X-Received: by 2002:a05:6000:4305:b0:42b:3592:1b88 with SMTP id ffacd0b85a97d-42cc1d20dddmr11249650f8f.50.1763982430293;
        Mon, 24 Nov 2025 03:07:10 -0800 (PST)
Message-ID: <39f5f781-398b-4974-8b1e-e7061ed9194f@linaro.org>
Date: Mon, 24 Nov 2025 12:07:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] hw/i386/isapc: Remove dead Xen code
Content-Language: en-US
To: Mark Cave-Ayland <mark.caveayland@nutanix.com>, qemu-devel@nongnu.org
Cc: Paolo Bonzini <pbonzini@redhat.com>, David Woodhouse
 <dwmw2@infradead.org>, Paul Durrant <paul@xen.org>,
 Eduardo Habkost <eduardo@habkost.net>, xen-devel@lists.xenproject.org,
 Anthony PERARD <anthony@xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Richard Henderson <richard.henderson@linaro.org>,
 "Michael S. Tsirkin" <mst@redhat.com>,
 Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
References: <20251123185832.53802-1-philmd@linaro.org>
 <066cb998-e89a-4cd1-a89b-865f4a6dcbbd@nutanix.com>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <066cb998-e89a-4cd1-a89b-865f4a6dcbbd@nutanix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 24/11/25 11:27, Mark Cave-Ayland wrote:
> On 23/11/2025 18:58, Philippe Mathieu-DaudÃ© wrote:
> 
>> We don't use Xen on the isapc machine: let's remove
>> pointless code.
>>
>> Signed-off-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>
>> ---
>> Â  hw/i386/isapc.c | 27 ++++-----------------------
>> Â  1 file changed, 4 insertions(+), 23 deletions(-)
>>
>> diff --git a/hw/i386/isapc.c b/hw/i386/isapc.c
>> index 1ba9ae22cc3..1e13a30c505 100644
>> --- a/hw/i386/isapc.c
>> +++ b/hw/i386/isapc.c
>> @@ -17,8 +17,6 @@
>> Â  #include "hw/ide/ide-bus.h"
>> Â  #include "system/kvm.h"
>> Â  #include "hw/i386/kvm/clock.h"
>> -#include "hw/xen/xen-x86.h"
>> -#include "system/xen.h"
>> Â  #include "hw/rtc/mc146818rtc.h"
>> Â  #include "target/i386/cpu.h"
>> @@ -37,7 +35,6 @@ static void pc_init_isa(MachineState *machine)
>> Â Â Â Â Â  ISABus *isa_bus;
>> Â Â Â Â Â  uint32_t irq;
>> Â Â Â Â Â  GSIState *gsi_state;
>> -Â Â Â  MemoryRegion *ram_memory;
>> Â Â Â Â Â  DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
>> Â Â Â Â Â  int i;
>> @@ -77,15 +74,9 @@ static void pc_init_isa(MachineState *machine)
>> Â Â Â Â Â  /*
>> Â Â Â Â Â Â  * There is no RAM split for the isapc machine
>> Â Â Â Â Â Â  */
>> -Â Â Â  if (xen_enabled()) {
>> -Â Â Â Â Â Â Â  xen_hvm_init_pc(pcms, &ram_memory);
>> -Â Â Â  } else {
>> -Â Â Â Â Â Â Â  ram_memory = machine->ram;
>> -
>> -Â Â Â Â Â Â Â  pcms->max_ram_below_4g = 3.5 * GiB;
>> -Â Â Â Â Â Â Â  x86ms->above_4g_mem_size = 0;
>> -Â Â Â Â Â Â Â  x86ms->below_4g_mem_size = machine->ram_size;
>> -Â Â Â  }
>> +Â Â Â  pcms->max_ram_below_4g = 3.5 * GiB;
>> +Â Â Â  x86ms->above_4g_mem_size = 0;
>> +Â Â Â  x86ms->below_4g_mem_size = machine->ram_size;
>> Â Â Â Â Â  x86_cpus_init(x86ms, pcmc->default_cpu_version);
>> @@ -94,17 +85,7 @@ static void pc_init_isa(MachineState *machine)
>> Â Â Â Â Â  }
>> Â Â Â Â Â  /* allocate ram and load rom/bios */
>> -Â Â Â  if (!xen_enabled()) {
>> -Â Â Â Â Â Â Â  pc_memory_init(pcms, system_memory, system_memory, 0);
>> -Â Â Â  } else {
>> -Â Â Â Â Â Â Â  assert(machine->ram_size == x86ms->below_4g_mem_size +
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  x86ms->above_4g_mem_size);
>> -
>> -Â Â Â Â Â Â Â  if (machine->kernel_filename != NULL) {
>> -Â Â Â Â Â Â Â Â Â Â Â  /* For xen HVM direct kernel boot, load linux here */
>> -Â Â Â Â Â Â Â Â Â Â Â  xen_load_linux(pcms);
>> -Â Â Â Â Â Â Â  }
>> -Â Â Â  }
>> +Â Â Â  pc_memory_init(pcms, system_memory, system_memory, 0);
>> Â Â Â Â Â  gsi_state = pc_gsi_create(&x86ms->gsi, false);
> 
> FWIW I did contact upstream about this (see https://patchew.org/ 
> QEMU/20250618112828.235087-1- 
> mark.caveayland@nutanix.com/20250618112828.235087-13- 
> mark.caveayland@nutanix.com/#91b96b24-af60-4a89-91ec- 
> d0e660a76a0a@nutanix.com) and they mentioned that it should work, which 
> is why I left it in.
> 
> Unfortunately I don't currently have any way to test it here :/

OK :| IMHO upstream Xen maintainers should provide us a test, otherwise
we can not make our code base evolve.


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 11:11:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 11:11:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170319.1495378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNUTd-0003Rw-31; Mon, 24 Nov 2025 11:11:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170319.1495378; Mon, 24 Nov 2025 11:11:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNUTd-0003Rp-0R; Mon, 24 Nov 2025 11:11:25 +0000
Received: by outflank-mailman (input) for mailman id 1170319;
 Mon, 24 Nov 2025 11:11: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNUTb-0003Rj-7W
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 11:11:23 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4ee6bdab-c926-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 12:11:22 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-42b3d7c1321so2544037f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 03:11: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-42cb7f2e5b6sm27422083f8f.1.2025.11.24.03.11.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 03:11: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: 4ee6bdab-c926-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763982681; x=1764587481; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qa336gh3GWnSlKPcY46UbGYLOBS66KWjTdOJCgg48E0=;
        b=KifVS2gxWsp5EXHVT+AqBhHQiXIWNTv3ZV+k5vIUrqZzOHRcvrG3vbgsT3PigjV4zB
         JgX9goU2xhoEQ+3LcB//elBcPYfPO5qYkhgxiMcZ5L9Sj4gQmQk3/IWm1JK4WflnoUV8
         zbQ+f4ffpUApN0RtOLz+7g9SOCpgoBou6aOI2M2MipAGJo40N9e/rsg8l8MvaEbf3lFz
         Lm/gq9DC7zwkEKkF71lC6mf90T9kUUfWa+o+iiJ2UDj+9P84aeAGJKFxzWf6smV6TUzY
         epQTIZkjtz22ugnN92NTLDGBaoFG9qkwTxxC9Px/a6XmMArjECw30ku85yEYenX/mjeb
         bmAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763982681; x=1764587481;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qa336gh3GWnSlKPcY46UbGYLOBS66KWjTdOJCgg48E0=;
        b=onlh3n6bmHTDagoxrF3ZBxnts9tazoxM7xUUsyiN25uM3HoF12KguevsHERU0sx2Yw
         HgLMGJpVaibBHBqqjkdc3o9zO8zhxsNlbxrZ6KDWayJKE+IcUj5AP1Ykuh0c21I4hCph
         UXb+9bECNkrf8GY7pinz4EId9jCDVUxAlTRQvLucprocWqHROF29NBPDzj9aMc10hFzQ
         ni1U3KUEGZ0PiPfbKsXYvnV+4M7X3u4zhDMpyPn8j7SSEJGX6CxzQA3nz+M0oaEyIPLa
         iLM2xsEHAr9XXhjd13GyLACGTDQwOU31B31VYCVauwMkZuzDCxDwmJQW9P9ciyfbN8mJ
         69GQ==
X-Forwarded-Encrypted: i=1; AJvYcCU8XejKdE2xRi2+1O0qTIOPRdYuUmwGKhgcFOBSbRjwX6dhMc1qBEaFjcIwZQVHb+pGuzpcLlSq0O8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyuXDq5CSJz8ZqFaTlMrW8UdgT3kE7IceOd6oqm8KwSzrRpFKuW
	62NVvqVDwmp1q312G+CDcIxUtO1HR2hIz3W40FQE/BkQwbPfvLhouvT7V8fYP0MjKg==
X-Gm-Gg: ASbGncs+s2xGC9rKzJU7GiZNrlM6+T4PQN4I2gPKfaPdmx4UyMqt2WyLw0eWe/CWesh
	0AD8a+itpOp+qS+V1h3YI9aZCoh7e44okKJPCukXDNLLNrbVkBfI4gllaRiMeQG229VGr6wP5nE
	QOZrY04JVVSvG/k2mdylFWXlyIQ5MI6j2w1b7+fW6mxx1cBwUUKRQ5ndc+FHzMZKN8N5BEBAM6U
	PUevvL62+rb6lmJSqL0kwEt5aONYfFKO/SvANRCbHXnoyNMyfwNhjAtHan9lOYG/HkqiV/cAopF
	uZHb7IRg37iIjoMxlFfI6eaO1iT1CUsE4hFDzuNoj0enXXL242T8Q0ylzMJbPFDquPIBOeFl8oo
	N0Ha61lENrC4mpBybJQS6s0Tz+CxH6CRJKvk996JAJwADJWK58y4tDTnmQYrjcJpGB2sYJeIdOG
	u/IzW5SpRbZo3wKOiHKHEoH3hI9znjWps3LpoxHmy96lCVy6hgv+yshIBMIaKs12ZjLE6HrYg+d
	7Q=
X-Google-Smtp-Source: AGHT+IG3lI4cbhOZxSAAYYfnkFZI9S1k5J190dTiQVrI4KFnIcABS56JC97lnhLehzT3w8mc0JyFBQ==
X-Received: by 2002:a5d:5889:0:b0:427:813:6a52 with SMTP id ffacd0b85a97d-42cc1d1993bmr11825888f8f.41.1763982681304;
        Mon, 24 Nov 2025 03:11:21 -0800 (PST)
Message-ID: <6e5bd8d5-3f5a-45c5-b7ec-17f70e0932f3@suse.com>
Date: Mon, 24 Nov 2025 12:11:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] XEN: enable MC/DC coverage for Clang
To: Saman Dehghan <samaan.dehghan@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <3bb418ae6a36a9ac89c697a417fa0745fa9ac702.1763949990.git.samaan.dehghan@gmail.com>
 <52b0762ac4b5535a842a530365a75bdc81a5fe61.1763981619.git.samaan.dehghan@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: <52b0762ac4b5535a842a530365a75bdc81a5fe61.1763981619.git.samaan.dehghan@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2025 12:04, Saman Dehghan wrote:
> Clang >= 18 supports Modified Condition/Decision Coverage (MC/DC).
> This patch enables the detection and usage of this feature when
> compiling Xen with Clang.
> 
> - Update detection logic in Kconfig to check for the required set of
>   Clang flags for MC/DC:
>   '-fprofile-instr-generate -fcoverage-mapping -fcoverage-mcdc'.
>   This bundle is necessary because '-fcoverage-mcdc' requires
>   '-fcoverage-mapping', which in turn requires '-fprofile-instr-generate'.
> - Update llvm.c to handle the profile format changes (bitmap section)
>   required for MC/DC.
> - Guard -Wno-error=coverage-too-many-conditions with CONFIG_CC_IS_GCC
>   to avoid passing a GCC-only warning option to Clang
> 
> Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>

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

> --- a/xen/Rules.mk
> +++ b/xen/Rules.mk
> @@ -136,6 +136,7 @@ non-init-objects = $(filter-out %.init.o, $(obj-y) $(obj-bin-y) $(extra-y))
>  
>  ifeq ($(CONFIG_CC_IS_CLANG),y)
>      cov-cflags-$(CONFIG_COVERAGE) := -fprofile-instr-generate -fcoverage-mapping
> +    cov-cflags-$(CONFIG_CONDITION_COVERAGE) +=  -fcoverage-mcdc

... the excess (double) blank here dropped (can likely be done while committing,
if no other need for a v3 arises).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 11:15:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 11:15:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170329.1495389 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNUXt-0004Qi-Ix; Mon, 24 Nov 2025 11:15:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170329.1495389; Mon, 24 Nov 2025 11:15:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNUXt-0004Qb-G6; Mon, 24 Nov 2025 11:15:49 +0000
Received: by outflank-mailman (input) for mailman id 1170329;
 Mon, 24 Nov 2025 11:15: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=h9jE=6A=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vNUXr-0004QV-U4
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 11:15:48 +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 e6df1a27-c926-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 12:15:39 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH0PR03MB6162.namprd03.prod.outlook.com (2603:10b6:610:d1::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.17; Mon, 24 Nov
 2025 11:15:35 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.016; Mon, 24 Nov 2025
 11:15: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: e6df1a27-c926-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aCrg3sKWH80x7+3mf9Za4A3waRGNFdDAI6hmzLkafqLzrSqIYYquE71lnZ54cwfJD8xoLcP8MMZT4Tqsf4aN6L2fG7oxzIsoldmEFBlr+t8yKV3Cj9rW0A0WhaUdtRCLdELFSka7tltcsnVg0Ib56qwKDLcNTNSyU0ZPfxeGt6C4ErqfHY9UyMOIyCNYGx7up8rqpC142WjhgSYkl5Q0jTD5gkF3hTuN7Nt/pLqXCn+h8/zJyZg4nIbCb2mpg1kTgtDV4mTX5M5II5CZdEXeoKDJqXvWf2vscWjvX+IQHGSP2FqouQumWDrIRABCNoU69AkRa2gFMjrS7knAdNxUvg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=q1VMGXwL8q20fHmEukd0b6FqWhnTelgtcDyTn1QeEuo=;
 b=T+oKZ2IyQBQ0Z+iEnAzX3fC0FOSbvLrm3BeBtNNSwGH0oNy7iPrW2CWWTH5uf+e9/85bfZVpxehAniOp+Xi0cP2bXUxRAsrIQwV6BA6fqH0CP6L4+hkCnI900VNHBG6KqepZBBCRdZU011UVMNgpoDXQczQxBB5lEj23cKw8L05cyHXqc4gcZaSHEpNrEHBvxuEgpGuHa/0OnOOAdf234QatEA085gyNYEJOV+fljII9bfPH//g7QKH76MFogtXPT2anBEOLLTEa6+tpEbYhCAAS4clu0+CeBfFhqw8EyKn6Y3Yt7ikF/KPkZ5cS7PXFAPElxa7clSqGQh9SqyoKBw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=q1VMGXwL8q20fHmEukd0b6FqWhnTelgtcDyTn1QeEuo=;
 b=Pux4pBOm5FhJxXrOXBqC9ldQ25oBQhaql6qoZelTkG9bEZavZxBUtlRhWknyxaabmGvdP99Erc+7vsMFTiXi7CcMefHuzUgx5BU7a1+DMUtCxkzzlFpfgwyUw46/Lgs7T8Bw09749uefqwqhi80MTYSPd9blvbQW79Klka9lrwQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <9c76a959-51c0-4eb7-9d05-ba4441318faa@citrix.com>
Date: Mon, 24 Nov 2025 11:15:31 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] XEN: enable MC/DC coverage for Clang
To: Saman Dehghan <samaan.dehghan@gmail.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <3bb418ae6a36a9ac89c697a417fa0745fa9ac702.1763949990.git.samaan.dehghan@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <3bb418ae6a36a9ac89c697a417fa0745fa9ac702.1763949990.git.samaan.dehghan@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0019.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ae::21) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH0PR03MB6162:EE_
X-MS-Office365-Filtering-Correlation-Id: f490802a-3ba2-4e49-437c-08de2b4ac9de
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?SzB6Vk1SbGpKdnNyUy84ZyszblIxSzVURm5Pem4vTlhWQlpEMS9RTHhVRmQv?=
 =?utf-8?B?T3d3aWRQWmp2WVpaZGRuYXFSZERJR0NuT1RDbTUyb3luaTkrVFdtMmFWaDJR?=
 =?utf-8?B?Ukxybkt4NnEvMFJ0azZhVnIwQ2R4eGFZcnNvcGtmcGxGbDdaN2JaaXVLTGRo?=
 =?utf-8?B?R1RRam1jdGU0MEtQd0RNbXhLenZYSGt2djgrNnI0SENPODg5UEJaODFsN05Z?=
 =?utf-8?B?SDJvNnJ6S01rdnU1K3FhYzF1citxTnpManNjaDQrWTFaSkR5K05TeXViQ0Ra?=
 =?utf-8?B?S1o3dEF2Y082RzBQcnd3WHNNL2V5ODZKNnNRODhxVjZYZCsrbUVLa09uMGdp?=
 =?utf-8?B?ZUttWTZCZ3NHTWdod3Z2eDlkNDRFZVNXeWRROU5jYjdCVnlLN3l2d2JaN1Zp?=
 =?utf-8?B?OTFYYUVmSU5MbWw0ZmZweXlINEg4eHlYdi9tOVZYRWhVZDhpOTRDMllreUhL?=
 =?utf-8?B?cGN6dWtNRncxblFpQU1zOTV1YktnTUtuRTUwdEEvUHRycG1rYVhKVUtNbjBS?=
 =?utf-8?B?bVVjM2NXMHJrYndlK05YajhuS0lhVjBuSHhhZ050SkpjT0ZHc2pRSWJTa2Zw?=
 =?utf-8?B?T3FwMzBDbFFaamdwcTJlMFdHb2lmZUt3OFNKbCtUMWwxNU9vTFJXZ0xyUXB0?=
 =?utf-8?B?bWpCem5aZVFkR2tmclFpTVFwbzNDNy9JbXIrdWl3MHZaTFF3anFsZWk1VmFU?=
 =?utf-8?B?V3FWRzdUeHloNkZMZTVWZit1ZEtvalNBQzdjRjVsV2hUbTc2ZXR6UktUUUZm?=
 =?utf-8?B?NHZTNytvN2VrYXZkVndFYXUxNVhrYVpPMXpsMmxTelFFdVRLd1M4clU5d3dh?=
 =?utf-8?B?dXRQZW8xN3FjM3N3a0U0UWNCTVZiWHd4bGtaV1I5LzIzQzByWHczL0xXVmpE?=
 =?utf-8?B?K0N1WENxckE0MGNYTFZYVlNRYlJGOFA5a1VoZWE1eDJQNXhEMDZsR2d1RElr?=
 =?utf-8?B?NmwyZlBCZnhqcUg0b05xcVBHQzRQcC9VcEVVVzVFYklSMzFQMUIwcGhXeTRr?=
 =?utf-8?B?UkxjV0VwOHQzS01aVzdhZ0luckx1NXVaUldSazc2R1g5MUxYRCtXZ0dxWXh5?=
 =?utf-8?B?TXo0SDJac2QzZWdhZElJRGYwVHRycDI3eSt5d3FremhOdFFaMmVGOHVXbk5Q?=
 =?utf-8?B?QzR1YnhqOU1LYlhKcEFrTWtmNEZUSHNUaXdCQ1ZIdHZlL2JHUytuQ1hoSjhK?=
 =?utf-8?B?ZGJ2TnI3TXBTcW82MDBsanZGSnhRTWR3THhWRC9NbTNnT3dXTVB2RHBjQnl2?=
 =?utf-8?B?MThKWnpKMGxFdUMvdm83WlJwd2w2MTN6WmN6SHVXRkluRDdXdVZsdUpkQnBI?=
 =?utf-8?B?cWtKb0JLc3FIUXduRWUrZnBNQzZ6ODgyZFNwYlBjUVJ6UFNITFZxVjVHT3hr?=
 =?utf-8?B?UUNjYURtUUlIK3hDYy82WVVEKzVhZ0hVRnVONTBuVUc2aG5LRjNQajFpWGh6?=
 =?utf-8?B?NVprbkdERWpkcDhqbEhPNTZCVmdjWS9ScGNNRElWc1dzTTFBMXJYSllmc1VB?=
 =?utf-8?B?cUY3WGp2alhvWk5jczdZbGlqVGx2S21YelFYZUtOaGppSnB1aFh2UVNlZFE0?=
 =?utf-8?B?RU5FZlpKYmF6QURZS2lwbEtwZlBzeVU3TUczQkpFZDVJL3VjZWRFOW1KRWZl?=
 =?utf-8?B?WFhRWkNHNmFENFdDdDdZTXFwZnEvSVlXN2dBODluYjdvaFhNazFJcm5FSzdx?=
 =?utf-8?B?YTM0aURoMjZEcjBrK1I5SkJRRnJISTJNclhSWU1lSkkrNnpyWXdUNHZrSExR?=
 =?utf-8?B?MHk4R3AyRkErT3lnZnRrOW9vUjJBbmxDakhSSUduMk4zblVMQkNqVDZsbWl2?=
 =?utf-8?B?T0QvbnhMb2grSXRkbHpKV24rR2Myek5jaDJZNExzWHRGMDV1RDh2cFVmckc2?=
 =?utf-8?B?aE9FREZsVENnL25HL1NFbjU0dEkzZzFEd3QyLzZ1YU1xU1RYK2x1Y1JtMFUr?=
 =?utf-8?Q?LGqZ7rpEvpgR6e2tGmEgOIVap14FWEKE?=
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?TWtwaUUzbG5QUVJ1blZicTRkWmkrZ1Q0Nm5ZNUNzWkt1OTZId3JXSnFJbjFG?=
 =?utf-8?B?ZW9sbEpYcW5DSUx2UkwyK3FRYnQ1cXZHZU00S2dyTU91NE9zbncrUFpxcVFP?=
 =?utf-8?B?Y29zc0dCSFFQUWZUWkZFbnhNenBHVGk2ZzVVRjFkcEg3bEl4dEN1dmRLWmRu?=
 =?utf-8?B?NG40a3krS0dXcnNyKzg3QklleWFETGVlQkpxdDgrYmgyaTA0ZkRJL2xHRWxQ?=
 =?utf-8?B?bWtTc1NnOSs5VEZyeTRlN01DMWJqSk8xRWRIRHZDTU9kbml6NFJUUGFqY0tW?=
 =?utf-8?B?MzAxaE1DRzRyWGZENVZ0d0U2U2d2MGMvYkNIU3VVcnFpWDF1dUNJMUVyQmpj?=
 =?utf-8?B?NHZZUDJ6UStuVFkydGZ0VVRFbGZVQjhUZll4MG5JUU5jdHhzQk9iQUY2SFUv?=
 =?utf-8?B?akVqYmpmOEJxOHdtUm9rT29aTlRaVVBsemxpbXY5R2pRSkNvZE54bXpQOHMz?=
 =?utf-8?B?ZzdKdHFnRlBudG5uRmxrR1MycXpEd3luRDNJSXU2ZDUvT3l0R3NmSUdnNXIz?=
 =?utf-8?B?cFRST3dhbWxuUjc4QkFUdE9GU0N1QmsxclBJL1hYWU5pNHQzLzJtQzA1ZmVt?=
 =?utf-8?B?R2tJOFBTRE5XQXlRTnNTbmFNUkRzdDRXVGtFS0wyV0Jzd290aStQZ2duRDNJ?=
 =?utf-8?B?Q1lZU3oyWHA0WGkwZ094WGYwYnc0K3lsS0tVbFNGbzZmelVjWDhrU1FZSnN1?=
 =?utf-8?B?R28zS0NOdlhUVk04aHkzSGtjQlI1bE5sNEtnNW1mMVg5QWdtQU4yZGcrczlZ?=
 =?utf-8?B?VEtVdFF2a1F6VkJEN3ZEMHJua0l5dUt1MjU0clZ2VmtiV250Q3AwZjNWQWtw?=
 =?utf-8?B?QU1ianV2R2Q0Z0JJajhpb1dCcExyQUdzY3lpeW43UEM0VHRPQmRXalAxall1?=
 =?utf-8?B?MVVPWVMzcnhNUk4vemMyTGo0TytueDhGek1VQWhJSEp5a1RNZ3E3SnAzcVc5?=
 =?utf-8?B?dkhOR29ENVVZTWFORVhnZVUwV2FNT0hpbGJTcjdldjB1V0hDWXh6OCtqWEZm?=
 =?utf-8?B?R3JEWG1NUzdSK3NicWdxQWtmaXUvSTB5M2dkN0d2cEdTRUI5ZDVBQzFRWU0r?=
 =?utf-8?B?ei8yaGJuYk9Mc1JDSzhxNWxjVkJRMU51L1lkY2g1Zk5uUno5ditpVXRKTUhu?=
 =?utf-8?B?U2haMG9NWmlQbmNNWGVFdEZRMGpEeTVuVFNPWnpnbWR4dFpqWW5IZEhucEk1?=
 =?utf-8?B?VmdReG5aOTRxa3J5c1pMVVdZTytJRytGZHArRkJNRDNWTFhwTWhFRGg0MU9a?=
 =?utf-8?B?bkpodjBNRm1pcTRVd1FnMis4TjBBdFBlQjI3S2Q5dDNaVmY2L1BSbzV5dU9x?=
 =?utf-8?B?TmpTWXEwMVV1MEw1SnRQRkpiYWpWZzVCcFhVa3JVZWRabG1SWDBiaE1rWDZ1?=
 =?utf-8?B?Sll0eE41VUxqbUtnQTZuUE1vWE9STDdRbDNBYTR0QzFYMElkaEZpckQ0cU1O?=
 =?utf-8?B?Vnd3b2R5SmlGMkZJMlFjNXZUbkVMOHRQa0dzVTNkOWtWcmNtcVFYM291dmQz?=
 =?utf-8?B?dXFDSWRXU29aY3JnR1hCS05veDluYjkvRFAzUWQrSGFtRnlIWlViZXRlL1Vp?=
 =?utf-8?B?WU5ES2hWcXFnRjQ2VGZpOXBnYVlIaE9HcVJuT0FFVkJ6QmZNaWFNSFRhNzFV?=
 =?utf-8?B?SURvbEREVzlmV2dJMERwOXY2QUhrZGJ3UnBLMy9CRVFzSmZPMHdydFl2RnJX?=
 =?utf-8?B?QTdKMmdTaUI0VFc4bmVtdlNCOHljRkJUSjBvc2djallqdkFZSVpodHBvTHIv?=
 =?utf-8?B?eTZQaFd1cGFPR2crQ1dMUnhHODRMTVd5V0NQL0FORHpGcWNENFB0SzE5aGlz?=
 =?utf-8?B?V3dFVG5TcEJ0UjBtQVc3OVdvV1RLNkhEUFJndUo0Wmg4d1dIaUVkV2xnbWsw?=
 =?utf-8?B?NE5GWWNVMXZ2TzRndVFpZm5URG94YXU5bnBpWEhPMmNYTlVOeCszY1ZCMFBu?=
 =?utf-8?B?V050VXNDUGMzbHdTUnlOUFNRME1XQXNHdFZJd205OGUwWE1XS2pTZHhrUkty?=
 =?utf-8?B?eDVQY1ZsZlRBU2ZNMXpLeFNGVTgvMko1c3BYa1BQc2p0b29tS0d5aGwrckpB?=
 =?utf-8?B?QU8wM2hucStlbnAwRk53ZE9QTGxhN2lNZmxYZE9CQUFaTVpCREZka0szUHZC?=
 =?utf-8?B?MlBaRmIrRjExWGdrcEZsaDdDakVqR1BZdGN0dzZUdjFFb1czNTM5SUlaK3lu?=
 =?utf-8?B?Unc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f490802a-3ba2-4e49-437c-08de2b4ac9de
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2025 11:15:34.8237
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0TllQMpntW4OpukTS4G0F1+P5ammU51pSVWpq4cL1XGoYDc/lWVhUL3/mTUGapRahwufQJO/Y34Zn8oHFaEXp7ZOrZuCWA6n/ZwGxGUTZlc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB6162

On 24/11/2025 2:18 am, Saman Dehghan wrote:
> Clang >= 18 supports Modified Condition/Decision Coverage (MC/DC).
> This patch enables the detection and usage of this feature when
> compiling Xen with Clang.
>
> - Update detection logic to check for '-fcoverage-mcdc' when using Clang.
> - Update llvm.c to handle the profile format changes (bitmap section)
>   required for MC/DC.
> - Guard -Wno-error=coverage-too-many-conditions with CONFIG_CC_IS_GCC
>   to avoid passing a GCC-only warning option to Clang
>
> Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>
> ---
>  xen/Kconfig                |  2 +-
>  xen/Rules.mk               |  1 +
>  xen/arch/x86/Makefile      |  4 +++-
>  xen/common/coverage/llvm.c | 24 +++++++++++++++++++++++-
>  4 files changed, 28 insertions(+), 3 deletions(-)
>
> diff --git a/xen/Kconfig b/xen/Kconfig
> index a5e5af3b76..5508993f02 100644
> --- a/xen/Kconfig
> +++ b/xen/Kconfig
> @@ -53,7 +53,7 @@ config CC_HAS_ASM_GOTO_OUTPUT
>  
>  # Compiler supports -fcondition-coverage aka MC/DC

While you're improving these comments, please drop -fcondition-coverage
(as it's no longer accurate), and expand MC/DC for the benefit of people
who don't know what it is.

>  config CC_HAS_MCDC

Also, # GCC >= 14, or Clang >= 18

It's important for toolchain versions to be given in comments, so we can
figure out what to clean up when upgrading the toolchain baselines.

> diff --git a/xen/common/coverage/llvm.c b/xen/common/coverage/llvm.c
> index 532889c857..a8c7e7e8d2 100644
> --- a/xen/common/coverage/llvm.c
> +++ b/xen/common/coverage/llvm.c
> @@ -120,6 +120,10 @@ extern const char __start___llvm_prf_names[];
>  extern const char __stop___llvm_prf_names[];
>  extern uint64_t __start___llvm_prf_cnts[];
>  extern uint64_t __stop___llvm_prf_cnts[];
> +#ifdef CONFIG_CONDITION_COVERAGE
> +extern const char __start___llvm_prf_bits[];
> +extern const char __stop___llvm_prf_bits[];
> +#endif

No need for these to be #ifdef'd.Â  In turn, it lets you do ...

>  
>  #define START_DATA      ((const void *)__start___llvm_prf_data)
>  #define END_DATA        ((const void *)__stop___llvm_prf_data)
> @@ -127,16 +131,25 @@ extern uint64_t __stop___llvm_prf_cnts[];
>  #define END_NAMES       ((const void *)__stop___llvm_prf_names)
>  #define START_COUNTERS  ((void *)__start___llvm_prf_cnts)
>  #define END_COUNTERS    ((void *)__stop___llvm_prf_cnts)
> +#define START_BITMAP    ((void *)__start___llvm_prf_bits)
> +#define END_BITMAP      ((void *)__stop___llvm_prf_bits)
>  
>  static void cf_check reset_counters(void)
>  {
>      memset(START_COUNTERS, 0, END_COUNTERS - START_COUNTERS);
> +#ifdef CONFIG_CONDITION_COVERAGE
> +    memset(START_BITMAP, 0, END_BITMAP - START_BITMAP);
> +#endif

... this:

Â Â Â  if ( IS_ENABLED(CONFIG_CONDITION_COVERAGE) )
Â Â Â  Â Â Â  memset(START_BITMAP, 0, END_BITMAP - START_BITMAP);

>  }
>  
>  static uint32_t cf_check get_size(void)
>  {
> -    return ROUNDUP(sizeof(struct llvm_profile_header) + END_DATA - START_DATA +
> +    uint32_t size = ROUNDUP(sizeof(struct llvm_profile_header) + END_DATA - START_DATA +
>                     END_COUNTERS - START_COUNTERS + END_NAMES - START_NAMES, 8);
> +#ifdef CONFIG_CONDITION_COVERAGE
> +    size += ROUNDUP(END_BITMAP - START_BITMAP, 8);
> +#endif

and similar here.

> +    return size;
>  }
>  
>  static int cf_check dump(
> @@ -147,11 +160,17 @@ static int cf_check dump(
>          .version = LLVM_PROFILE_VERSION,
>          .num_data = DIV_ROUND_UP(END_DATA - START_DATA, sizeof(struct llvm_profile_data)),
>          .num_counters = DIV_ROUND_UP(END_COUNTERS - START_COUNTERS, sizeof(uint64_t)),
> +#if defined(CONFIG_CONDITION_COVERAGE) && LLVM_PROFILE_VERSION >= 9
> +        .num_bitmap_bytes = END_BITMAP - START_BITMAP,
> +#endif
>          .names_size = END_NAMES - START_NAMES,
>  #if LLVM_PROFILE_VERSION >= 8
>          .counters_delta = START_COUNTERS - START_DATA,
>  #else
>          .counters_delta = (uintptr_t)START_COUNTERS,
> +#endif
> +#if defined(CONFIG_CONDITION_COVERAGE) && LLVM_PROFILE_VERSION >= 9
> +        .bitmap_delta = START_BITMAP - START_DATA,
>  #endif
>          .names_delta = (uintptr_t)START_NAMES,
>          .value_kind_last = LLVM_PROFILE_NUM_KINDS - 1,

With structure initialisation, you do not need to have the fields in
declaration order.Â  Therefore, you want to do something like this:

Â Â Â Â Â Â Â Â  .value_kind_last = LLVM_PROFILE_NUM_KINDS - 1,
+#if defined(CONFIG_CONDITION_COVERAGE) && LLVM_PROFILE_VERSION >= 9
+Â Â Â Â Â Â Â  .num_bitmap_bytes = END_BITMAP - START_BITMAP,
+Â  Â Â Â Â Â  .bitmap_delta = START_BITMAP - START_DATA,
+#endif
Â };


to keep the ifdefary more simple.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 11:15:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 11:15:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170330.1495399 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNUXw-0004f4-QP; Mon, 24 Nov 2025 11:15:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170330.1495399; Mon, 24 Nov 2025 11:15: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 1vNUXw-0004ev-Nb; Mon, 24 Nov 2025 11:15:52 +0000
Received: by outflank-mailman (input) for mailman id 1170330;
 Mon, 24 Nov 2025 11:15: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNUXv-0004QV-GB
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 11:15:51 +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 ef0e42ee-c926-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 12:15:50 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4779cc419b2so39945045e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 03:15: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
 ffacd0b85a97d-42cb7f363e4sm28250572f8f.12.2025.11.24.03.15.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 03:15: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: ef0e42ee-c926-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763982950; x=1764587750; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7ioMhFoif+5O6C4qx7tKzp9zUSf7aRv74IUW+1tkebE=;
        b=Brt09NvC2jecIdEzC7BA4pqsdIgbDmTyEmeZB4sMe5ZxYuJQzlVoZK1gwCFGxcQFyf
         3eHGowwLdb9ino9bRbXyhaAJ2PrwwF8fQclZ/YDyuotDJ8senteOqFOghOKlaD7R0EfM
         apvYBTz/NCrAdMzPNS1LiDxs5bPkYVwSNjyN9FtdVTV1wLuxKSm7O2YjFecOvjvQrfLu
         Fl1GmNiTfUT86wipxJ8hNpWJjF5idGBBGTBP27WWM7zsPh/GL4ZGpzA5qVEf7x73E7Lz
         BPQXFR1Q80ev4eJV2bXbW5emWbuGgkm5OdjM/dUM8pTTKyUBBGr9OIvkoMaMDGhtNxZs
         AjEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763982950; x=1764587750;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7ioMhFoif+5O6C4qx7tKzp9zUSf7aRv74IUW+1tkebE=;
        b=gXSZnkeYvGj47kPHSDXwcRnsLNYsty7dNRscVSgDugjemPht586uWLTRRo2Y22elXp
         3rCtKK+FHL6mTZSPKVy2sw/+WSmUeTdGdlESEmHJB+rW7Y4YldgSrZnIg+IFPEVuY/D5
         j7TiLOS00dw4Q7U8VkBb3YqMwVkwcWOt2+ZYykgCHw0nPfVrD6fLZiE5EFMmLdEpOnSr
         7T+yk/SjEaZ0iy9Iuyxq9CjeReRa0gRDU/IbrwSMPTeXMHKxL80rY3pANLx4oGAqPYfv
         bo3U4pTqVdiiXskfVxSKdO+y7i62iU4rC8UxeyMVR3f50YM7PqKfT3gX7bJbL0W4PRZZ
         19GA==
X-Forwarded-Encrypted: i=1; AJvYcCUI5mcdts6T39FebvOQD0QStTIKbihfaIwrqyxtA4JtfWdw1MZsS0l3zubwxjmvAGe75XvnsYeISsc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxg/b9pthMkeffJ1iZrARy+PhAZP91uRkVrHXuZWEU5Avm4FEkx
	G61hYbFUY+jrEi6jSohwh+USQaMTF9DoURjlLrrgYrJSpfItyuXPDAzFIbYlvJSXrQ==
X-Gm-Gg: ASbGncsNjG5C/IcNFr4Gx9BIEztPICacZtv+bXauUm0z1J62GZ1BE5SQODZRcvNEYCD
	v5QOTuyULN08GxqAhYOJDj2qvoCk1TM9JtZjvmifKyfRN5yrnzfCtOPZcmBGE53BRtN2Wb6arBK
	55vQZVQC7gerhlE5hLKK2iXNQ6JekQqncTlGX2kSy2QdBHFiszrGVA1SVxRIo842ZQAe1xRa0SK
	+CTDrmowkOQa8T7k+EhGI0AqY/aWVSOVfgehJkNXtRPmezzPARAAPGIDsMlq0lLuSZanyvP9ldj
	c8q7VZgb1POrRAh7P564/rSFrwcOcIoDoniutdSmoA+/oMDkGwK8JFq2lZ0trWFDpUV2d/uVsTf
	IBDPE00etVpRBcnY5oEpUBlsUJVmV2vLr33IyCkyVJH0j6tuj2ldkI0zw1aVhD9z9549aesls06
	Kv2ZViE6JyRTa64SE1Q+OzfZPsezlQ2EPp9dyqaqFJ7/ijDoL7XW6hTCS9IuXiIOyi9lbvDEiog
	kjNYxFUB0vhow==
X-Google-Smtp-Source: AGHT+IF26AafMTxf51I4M/afjpLjU2ZKXHfBUvYQT9kiUq5C0gZlzX3PZSQboVyvESvP/hE1fU4X/Q==
X-Received: by 2002:a05:600c:8b35:b0:477:832c:86ae with SMTP id 5b1f17b1804b1-477c111b94fmr133538805e9.12.1763982949923;
        Mon, 24 Nov 2025 03:15:49 -0800 (PST)
Message-ID: <0ece9df6-8a04-4ffa-bcf4-d7a3fd4bbef4@suse.com>
Date: Mon, 24 Nov 2025 12:15:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
 <d34e3e86-c51a-49b3-8b46-140526755f0f@suse.com>
 <826037a5-dacf-434f-90d9-8f12e61bdd6e@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: <826037a5-dacf-434f-90d9-8f12e61bdd6e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.11.2025 12:05, JÃ¼rgen GroÃŸ wrote:
> On 24.11.25 11:41, Jan Beulich wrote:
>> On 21.11.2025 14:23, Juergen Gross wrote:
>>> --- a/Config.mk
>>> +++ b/Config.mk
>>> @@ -159,6 +159,19 @@ define move-if-changed
>>>   	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
>>>   endef
>>>   
>>> +PATH_FILES := Paths
>>> +INC_FILES = $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
>>> +
>>> +include $(INC_FILES)
>>> +
>>> +BUILD_MAKE_VARS = $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).mk.in))
>>
>> Feels like my prior comments weren't really addressed. I continue to think that
>> none of the above is part of what the subject says.
> 
> I really don't understand your concern here.
> 
> For replacing the @markers@ make needs to know what should be replaced.
> So it needs to scan the files containing the markers and gather them.
> This is what is done above.
> 
> In the final macro below the replacements are done then. How would you
> handle that?

By passing (another) argument to the macro, for example. As indicated
earlier, different sub-trees may have different places where these
definitions live, and they would want to be able to pass that in
(ideally without needing to put this in a common part of the tree).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 11:20:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 11:20:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170354.1495409 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNUbr-0005YD-CT; Mon, 24 Nov 2025 11:19:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170354.1495409; Mon, 24 Nov 2025 11:19: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 1vNUbr-0005Y6-93; Mon, 24 Nov 2025 11:19:55 +0000
Received: by outflank-mailman (input) for mailman id 1170354;
 Mon, 24 Nov 2025 11:19: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=a6+n=6A=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1vNUbq-0005Xx-7D
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 11:19: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 7c78492f-c927-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 12:19:48 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by CO1PR03MB5796.namprd03.prod.outlook.com (2603:10b6:303:9a::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.17; Mon, 24 Nov
 2025 11:19:42 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::c0cd:bcd1:5235:66f0]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::c0cd:bcd1:5235:66f0%7]) with mapi id 15.20.9343.016; Mon, 24 Nov 2025
 11:19: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: 7c78492f-c927-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tuBZjC99o7wpY7aXBm3XHFPrw3oLQjixaAz4KC9WrTy0RJPvklSG2sE9jYyYZoGulUZqFbxOZ/9te660B/XDjpMmE8kK6phBb9/QVYDFFqJggdRklqxX0/f2x0bofNiBhkpJ8mMmWIMxOJZkJmvYoHM0PCRYV+IKNpfZplvz6MfpKNFIAeK9ZXtmbEUJXJ4IzULm4HzleB+ySTUCEI98uBEiFf8GLwt1KVa7PksGpQ6IAyH3C5bVQ7tmfylhdt6CrhEr4kq4mJmhLc3uBqAkNT7/Lkpdzim2AnXYwfjVBfMjEgQyLhZ9nfma8E8kZBbf7Bw0KRYeazNgqolc76htfg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NwXR2WKnL+rwbsV0oXBjVmpeaZdpbQuKst7J7dDfZBA=;
 b=xSJloUuXykt8t/vl9mSJJWeAFIRiJo+6FJir1F0q+Ou8HacTM9MIcxmzOk3OV81yRViuZ/1H8JTHNbkYJSbDVK4qtjwtLqsQHkAMiXG29znFbwbNP9/O9SZ+aJzaOsXqI4wtFTj+Ce8f4QsJVKZJyrZm/OsQ/TsBtOqhQFr5kB3gaCP9zigO+esZfLuFfOVABXdMJe1RT91MzVfIl9GmnxcdHnpQv+DFWtZ/n9aQ9pCCvXddFsaN0sO5cZRLu84gUXhwSw0RprQuEZYVcIGe9HzVcLVKGMCN1fRD5ErWp/3iDb67KMbDvNeCZvAW/BfDTX11tl0rpX2i41rbiT7DGA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NwXR2WKnL+rwbsV0oXBjVmpeaZdpbQuKst7J7dDfZBA=;
 b=v8Tfm9SM/dWcdqvWEI1JfbrrrxNR/A10+xYrXRl83IY0lc06q96erAWOft2hTIhVgIIKsEeouqBiiXFKQwFvUBxzF3DiEkJxB5T7UYKq4h3f/34bEHa5u8aMs4z7PCAMoj5kz5EwqiY2Vxgvk5yQ2ZlBzbBNTIng/A4k339vRug=
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 intel.c
Date: Mon, 24 Nov 2025 11:19:42 +0000
Message-ID: <20251124111942.1325635-1-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P265CA0135.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2c4::10) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|CO1PR03MB5796:EE_
X-MS-Office365-Filtering-Correlation-Id: 5ca722de-036d-443b-04c9-08de2b4b5d7c
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:
	=?us-ascii?Q?XrJoD1fE6/rooomdcsu7A+XXBS7GeRKAxb9TbOg6/JGx9e68MMxZ5vIxp4X1?=
 =?us-ascii?Q?TqOcMvA3D/DRCYnPD/aavo97+kuvXozrHO27zK3UI+Pzl1GYhXPXUg0Ugwat?=
 =?us-ascii?Q?ivq0mEd0SsQLGRT+ghqAJzO9S9bYGttT8KfdKZ/ku8A4ROQAQ5orluSGfDHu?=
 =?us-ascii?Q?zsiE3ZH721kY2MWNM3Mjrb/pUI/lQnm214zkI1X8A524eHFIImPMCreUZ7tn?=
 =?us-ascii?Q?jEEs+AjKrkx8TZYtr9OsjCIaPuRMkgjnk2biU7LcgCHLfrdtbExmjvMQOox1?=
 =?us-ascii?Q?oNgIV9+iAioDbCzYtEj2Hjj3b+NPl2H+9rP1UsinYE0XbrQduksiM4sPGSq5?=
 =?us-ascii?Q?7ygM5BnOU3CW1ptbmVzwZu3HxIB9uwG9PfwbxSRBAA2GaX2xVD586cAykKTK?=
 =?us-ascii?Q?IW2Bqy02klicSCBNpvNsgP2NyuQjPixqGZHvy9F2fsxXF08ni0Lo51lugM9t?=
 =?us-ascii?Q?HadAveqNQ1TJAoLOCCjP2u4aXDBh/xeUIuEJ643My4J/G4STNnGfU0FotSaj?=
 =?us-ascii?Q?FTJRXjZcbIX/Q3gO35lFSkYW+/VqEMGiRDoGZURdjom09ce5kvrBBNggfrg/?=
 =?us-ascii?Q?ecrCBnFEJuAHVPboP+1Mfd0r5UqxpEmYyrh0CXTmiWcJoLin+raynTnjP5+L?=
 =?us-ascii?Q?mlvxetUmzLuvZePp399/+MixDPb/i34xv6xt+1mdGCjrMNHr5w5/292ysVvc?=
 =?us-ascii?Q?CZ4SXMWuSjLbrsD/k7GrNg3AVMzRTmiwTquH+Z8pbQb7nunaADy+t2bGe0z8?=
 =?us-ascii?Q?9/m1upHEiYJWHuIk+Xm+8BfBzvE7LchavRNib2MjxulxVfALCz2EPhFrfaFW?=
 =?us-ascii?Q?Maf3/GLGLlVrCFgTQ/M2VWQ/sIDpGpGwrGP9Tvkr9rGBCgHVddn1mgP+R5tD?=
 =?us-ascii?Q?zuoXnCxy5zLu9lKRs+GUhGS+t/7eEWa1C0C/pQWEVR6Ftj8B+48NEoOyCnQi?=
 =?us-ascii?Q?DD1xoAPl0resdxMqpu2K0A+0xLUqhbxVInwqq1YNbsIL/xKBxWci3msVFNHx?=
 =?us-ascii?Q?gscrbqQDnSylC6co7SJtyLXTqbebB6Q5Df4rYREOdOL3EE+8kn6lc7Y9IViR?=
 =?us-ascii?Q?Wu5o+F+EwHH5Bwk/uVIkio7rNVJAEeHjMhP3LF0i0q9frGwq5OmNK0IoONqe?=
 =?us-ascii?Q?m6hCg6ftsZofnkex2bG14Ab3jR6vrBTmpxSIRye+s9TLqdocQkalQKfV7k0l?=
 =?us-ascii?Q?582OpSOekCy4YFNDPB2loLMrnYL8W1oRptCMdfYE8UhB0JAGS8pmX2o3teIl?=
 =?us-ascii?Q?bbM9AMSzT+TzxwToASwlUWFHcdPvbeXxkuS1O81cwzMUhnxVDI1x9+VLfvDi?=
 =?us-ascii?Q?blfLrtmzNrsLnMMDyQGqxG+bFHQzGbwDHraT63Quo46x+g8Zj2sudRfLr48Y?=
 =?us-ascii?Q?iR8mxk7fAlbaGwtxgp1jPw93UvVvTvh0+J8WapXQ/cPFVIgJgIYk9qcyN8AD?=
 =?us-ascii?Q?veSBuBq4vqPUWZDF3JtNwzj9uhvd+eZz?=
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)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?8ujhQh/A78XKFftenr3vkrsqxnPxKyvN5RfQEGtt1PE+1142drwrOxUhXxee?=
 =?us-ascii?Q?ct0I4ttk8Q8Fd6M2riu6LmQNQSfZO86JaK3FhZzDpjjSh9BcehKGi03JJnXs?=
 =?us-ascii?Q?eq/Q/vUHTQohC1vjc4KuYJJK/KR1q2vj/+6qnfa5Vy522BZy36Y62f53NzQ8?=
 =?us-ascii?Q?y6EAOF4yWjzDJ7+3oCMofq6M705EbTSt3yQl/wZ/VY/CvNXNydF/hqEZ/ldr?=
 =?us-ascii?Q?NrHvXUJNm7LhH09vVP4B79tCZBiA2ESY0iE3TbYMs9R/QrP2KdQ4+7RPk7z5?=
 =?us-ascii?Q?jog9hkF/HbIaPF/xI/Td/mr4fSLo/8mKxoMT87VE+hHJCMAZVE0jsK4xI5p1?=
 =?us-ascii?Q?F4yQ0RgGkipt/cShd3nwL/WYK+wGHqrHVHdoPGbJPviuHKOsZGAOAoWtubhL?=
 =?us-ascii?Q?38F6/XluyKfXDkBLZSTTWHtFkBRGAZLlSlM5ihz+L+WRnOrnAwVWZXSdIgSi?=
 =?us-ascii?Q?XwXFoQjBPn47Gexenh+ZB5IAlEpxohVqhf5vd0MhAlm8y7S1hWCJL7AVak4J?=
 =?us-ascii?Q?SRD+J6yJjqCiyJEgaYA+ZhohYlotVT2J0EOZ6UQsg1/KYlJlmV/JWxQYLaty?=
 =?us-ascii?Q?QoHhnEqrfoF7FeJNdow2zBSS1lIX5CtKyx1ksITzYDPGS59P4CycO4mJ9Niw?=
 =?us-ascii?Q?VsIeGNahWRCI+cJ/C/ddE5eerHPkI9dR+HI8yf5dEz11zNypp2UngIvhVC1R?=
 =?us-ascii?Q?oR6zDKt6iXQX9hpR4MAoRF86C3aisL+qoz/awk0rH8Akch17tJmccqBhc2Av?=
 =?us-ascii?Q?Xbtt+wvhA96wq1xPpRX7VsqAd+RgO479HVT0dCpRLdUcCcZ0ogqpKmOyvE2i?=
 =?us-ascii?Q?Z4sRMsvfXGr9vx0ifcHAj6hrmxw7WTVWsV/sHqQFRVmQZ3Czr5bsIMC6vuoL?=
 =?us-ascii?Q?dCKhwSRIIsnUxs3StN33Vpcb8LkyLx/x8iAt17r3USevhcZnHVQ7ZxNgYA3u?=
 =?us-ascii?Q?hxfw92GY9gL/HNgopbYyZiClf2V/E5Znrwz+z1+hqqL/h5MSm6PkO3vgRRjr?=
 =?us-ascii?Q?3PJ+h4QelRhcrZwgZYPiZHhX6hSuGZLaZlxFrwlGWLsdg8lFDvhWxxoSZNIF?=
 =?us-ascii?Q?bns1ipFtWjqkM1n0zKeAHtwQbDCkAE8oajSVYRZ4lmU4DfZeBOYPPKkwVFGx?=
 =?us-ascii?Q?Hr4mmx7/5rjTMiMTdyLEz0UWFERo34jWFokWBviOtaw3yJIaBeWAw2qOOlpc?=
 =?us-ascii?Q?4F5WdymEpNnz0Pcqh+WK5GEF6bx19Pv9Lpybtrfsrz+UC+E6xQG3o0dXgXOL?=
 =?us-ascii?Q?u0cV8F9XccFnF+DHQz2LM8ndTLI/D/pzAesHaOccm/oTFEDzFTAS2veGGyJy?=
 =?us-ascii?Q?hFtEjqBqMyI2Bdmq43ilDWk76r+PQoGB3k3KCIOG0lIicRibqdecJ/hxjda2?=
 =?us-ascii?Q?74E/csN/KPMZZRMwwFRmWzC1yzMik3KIdZx1j1PBJAcXDXWP6nLZcETOQZP6?=
 =?us-ascii?Q?Y9qtBsIBysSe5rmoLjWUPk3lrsYIdOAKnYC+ziffIz/kmmbK8wfLDu9+438y?=
 =?us-ascii?Q?haiK5siK+fG3h+Aax0Gf5bDlOW+OefA01ouhBXI1nHE+QzB1M4i3ALPp22DE?=
 =?us-ascii?Q?fM+KVRFvbQAZp/6jOohd88iu5FGcAqTn17HSbDbb?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5ca722de-036d-443b-04c9-08de2b4b5d7c
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2025 11:19:42.6274
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: RGnOMKjLaTU9axgPrVSJenEazy/WsMfCUV94Lt31DcA7qVTw9S6sCXjphrE1hTnTkikWwiz3e7XOTvwD1Mkpmw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB5796

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
 xen/arch/x86/cpu/intel.c                | 34 ++++++++++++++-----------
 xen/arch/x86/include/asm/intel-family.h |  4 +++
 2 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
index 6f71365b7e..5f780fe1aa 100644
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -86,7 +86,7 @@ static void __init check_memory_type_self_snoop_errata(void)
 	if (!boot_cpu_has(X86_FEATURE_SS))
 		return;
 
-	switch (boot_cpu_data.x86_model) {
+	switch (boot_cpu_data.model) {
 	case 0x0f: /* Merom */
 	case 0x16: /* Merom L */
 	case 0x17: /* Penryn */
@@ -137,10 +137,10 @@ static void __init probe_masking_msrs(void)
 	unsigned int exp_msr_basic, exp_msr_ext, exp_msr_xsave;
 
 	/* Only family 6 supports this feature. */
-	if (c->x86 != 6)
+	if (c->family != 6)
 		return;
 
-	switch (c->x86_model) {
+	switch (c->model) {
 	case 0x17: /* Yorkfield, Wolfdale, Penryn, Harpertown(DP) */
 	case 0x1d: /* Dunnington(MP) */
 		msr_basic = MSR_INTEL_MASK_V1_CPUID1;
@@ -191,7 +191,7 @@ static void __init probe_masking_msrs(void)
 	       expected_levelling_cap, levelling_caps,
 	       (expected_levelling_cap ^ levelling_caps) & levelling_caps);
 	printk(XENLOG_WARNING "Fam %#x, model %#x expected (%#x/%#x/%#x), "
-	       "got (%#x/%#x/%#x)\n", c->x86, c->x86_model,
+	       "got (%#x/%#x/%#x)\n", c->family, c->model,
 	       exp_msr_basic, exp_msr_ext, exp_msr_xsave,
 	       msr_basic, msr_ext, msr_xsave);
 	printk(XENLOG_WARNING
@@ -265,7 +265,7 @@ static void __init noinline intel_init_levelling(void)
 	 * so skip it altogether. In the case where Xen is virtualized these
 	 * MSRs may be emulated though, so we allow it in that case.
 	 */
-	if ((boot_cpu_data.x86 != 0xf || cpu_has_hypervisor) &&
+	if ((boot_cpu_data.family != 0xf || cpu_has_hypervisor) &&
 	    probe_cpuid_faulting()) {
 		expected_levelling_cap |= LCAP_faulting;
 		levelling_caps |= LCAP_faulting;
@@ -348,7 +348,7 @@ void intel_unlock_cpuid_leaves(struct cpuinfo_x86 *c)
 static void cf_check early_init_intel(struct cpuinfo_x86 *c)
 {
 	/* Netburst reports 64 bytes clflush size, but does IO in 128 bytes */
-	if (c->x86 == 15 && c->x86_cache_alignment == 64)
+	if (c->family == 15 && c->x86_cache_alignment == 64)
 		c->x86_cache_alignment = 128;
 
 	if (c == &boot_cpu_data &&
@@ -358,8 +358,8 @@ static void cf_check early_init_intel(struct cpuinfo_x86 *c)
 	intel_unlock_cpuid_leaves(c);
 
 	/* CPUID workaround for Intel 0F33/0F34 CPU */
-	if (boot_cpu_data.x86 == 0xF && boot_cpu_data.x86_model == 3 &&
-	    (boot_cpu_data.x86_mask == 3 || boot_cpu_data.x86_mask == 4))
+	if (boot_cpu_data.vfm == INTEL_P4_PRESCOTT &&
+	    (boot_cpu_data.stepping == 3 || boot_cpu_data.stepping == 4))
 		paddr_bits = 36;
 
 	if (c == &boot_cpu_data) {
@@ -458,7 +458,7 @@ static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
 {
 	uint64_t val;
 
-	if ((c->x86 == 15) && (c->x86_model == 1) && (c->x86_mask == 1)) {
+	if ( c->vfm == INTEL_P4_WILLAMETTE && c->stepping == 1 ) {
 		val = rdmsr(MSR_IA32_MISC_ENABLE);
 		if ((val & (1 << 9)) == 0) {
 			printk (KERN_INFO "CPU: C0 stepping P4 Xeon detected.\n");
@@ -468,8 +468,10 @@ static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
 		}
 	}
 
-	if (c->x86 == 6 && cpu_has_clflush &&
-	    (c->x86_model == 29 || c->x86_model == 46 || c->x86_model == 47))
+	if ( cpu_has_clflush &&
+	    ( c->vfm == INTEL_CORE2_DUNNINGTON ||
+	      c->vfm == INTEL_NEHALEM_EX ||
+	      c->vfm == INTEL_WESTMERE_EX ))
 		setup_force_cpu_cap(X86_BUG_CLFLUSH_MONITOR);
 
 	probe_c3_errata(c);
@@ -540,7 +542,7 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
         }
     }
 
-    switch ( c->x86 )
+    switch ( c->family )
     {
         static const unsigned short core_factors[] =
             { 26667, 13333, 20000, 16667, 33333, 10000, 40000 };
@@ -553,7 +555,7 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
         if ( !max_ratio )
             return;
 
-        switch ( c->x86_model )
+        switch ( c->model )
         {
         case 0x0e: /* Core */
         case 0x0f: case 0x16: case 0x17: case 0x1d: /* Core2 */
@@ -657,9 +659,11 @@ static void cf_check init_intel(struct cpuinfo_x86 *c)
 	/* Work around errata */
 	Intel_errata_workarounds(c);
 
-	if ((c->x86 == 0xf && c->x86_model >= 0x03) ||
-		(c->x86 == 0x6 && c->x86_model >= 0x0e))
+	if ((c->family == 0xf && c->model >= 0x03) ||
+		(c->family == 0x6 && c->model >= 0x0e))
+	{
 		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
+	}
 	if (cpu_has(c, X86_FEATURE_ITSC)) {
 		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
 		__set_bit(X86_FEATURE_NONSTOP_TSC, c->x86_capability);
diff --git a/xen/arch/x86/include/asm/intel-family.h b/xen/arch/x86/include/asm/intel-family.h
index d8c0bcc406..c71e744731 100644
--- a/xen/arch/x86/include/asm/intel-family.h
+++ b/xen/arch/x86/include/asm/intel-family.h
@@ -179,6 +179,10 @@
 #define INTEL_XEON_PHI_KNL		IFM(6, 0x57) /* Knights Landing */
 #define INTEL_XEON_PHI_KNM		IFM(6, 0x85) /* Knights Mill */
 
+/* Family 15 - NetBurst */
+#define INTEL_P4_WILLAMETTE		IFM(15, 0x01) /* Also Xeon Foster */
+#define INTEL_P4_PRESCOTT		IFM(15, 0x03)
+
 /* Family 5 */
 #define INTEL_FAM5_QUARK_X1000		0x09 /* Quark X1000 SoC */
 #define INTEL_QUARK_X1000		IFM(5, 0x09) /* Quark X1000 SoC */
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 11:20:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 11:20:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170356.1495418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNUc7-0006py-JS; Mon, 24 Nov 2025 11:20:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170356.1495418; Mon, 24 Nov 2025 11:20:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNUc7-0006pr-Gi; Mon, 24 Nov 2025 11:20:11 +0000
Received: by outflank-mailman (input) for mailman id 1170356;
 Mon, 24 Nov 2025 11:20: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNUc6-0006gG-71
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 11:20: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 894e0d16-c927-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 12:20:09 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-477619f8ae5so23340985e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 03:20: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-42cb7f34fd1sm28383430f8f.11.2025.11.24.03.20.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 03:20: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: 894e0d16-c927-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763983209; x=1764588009; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bUdTz8ZQ15o/mmRGUwdnYjnzXpQyCXfvD0OTaZPqMJA=;
        b=CMK69y6TdoYgYW2mTe1Pmh0f8/ToNuPRQk5s5Gyi1WPDwMN2R8KVMrqJGY69adxiAW
         Ly3I8gAxuqtn2hPMath+0pPRofkwm9bnO1HsVOc57uIATHMhJxKmuKE7E9I99NnwVDH9
         qoZGa4XtBsv4/o8CljYZKH6x33m7xn4R/MiiqazOZ2xZHpUerROID0QyybLue3tFd6bZ
         sWyTnN+stba5ddFEhe+cct4AV63FYbs+RDghZkUWQSigtg8mDPyb3aOetwK4zr5aDKFx
         klwLY86eRL3FJKjrVSowIXts9sMEUbYIWvVhQP1Q9k3rQWlw3gstmFJEPnKA3rUwzswX
         gafw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763983209; x=1764588009;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bUdTz8ZQ15o/mmRGUwdnYjnzXpQyCXfvD0OTaZPqMJA=;
        b=EswhMznPQsnUyANCkWq2Qg/zETFU6u5ES6vQALBT0mS/i5gAo+2qW2bZliVf8jseMd
         BjIInsiKEaR2ohEjIxsLIudiWjuNklYRdwbI0R1NQ8LFi/SkszVbbXBwvveU5l+sPszl
         RjBrIR1PKv0xCcIMmbnua4oGaygyCiHIe0+z6A+InZ3DZ4vNJuQ2jipNqyzblB4Sn+I1
         R4rkil8z2ghhlt1QRfVemAUgnCVqtr8W5FoTbeVNUiiYu6j5EoUN8L+4vuoT/szNQ+ex
         cmRdtVimXysWgaZo16eXengq8jrUE3EMzfbvq7ZKJLk41re3lrEw8QqKpkAEthwfAB4K
         mbrQ==
X-Forwarded-Encrypted: i=1; AJvYcCXwpakcpKNTvud+2e0b0t6HBPOMTZECwDrnfFaV4fjaVjOBIsZmykQw8DzCNUO/yS2Gr+6AROocu3Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyVjTBEUo8LEMcuAGZ0PSI2ITufBhglqivGy3ot13qLySt6OW9O
	AcSm9qtej34EbtKIo0cJ0YlEn3T3haMk3akKeZQjh5WN4Xq7M3sd25i9NwNYiRpmyA==
X-Gm-Gg: ASbGncsNYxjTeGiD6kcUnw450WqyE0m1MBV+5kVoZYzY7odZsVfWVIMhuJVpuz4t6o1
	a9CsXFFACcVWidUizib10daihzp9t3HQCUEWNj4dXBhCXNLT/vYAiKNdew5OF0e3GjtnLT1NXDW
	4VAYTzhmUFlIgD14M6pp2bTOnPFe3vPCAeAStykB4GWG15DPBIlz2YCreqRSIcOMaFCfzSdyJBF
	MpseWxkfm/X959h8s+0tXZVfgzw+HNZqxVVpFkzwUXyDmAgzKPOIa/QM6HuxOFjHy7gJWo/0fKb
	tHnqJhcwuvzQ+P1FBJwuFam+HTqkz6z6+/GYp65k/SlI5t7rPCr4UwL/9owlTfgNHtvJDmej+Xc
	4bjeP263/fw0pOmt30D7CY6+ggJWV8RZNkSHarzXJU+9z2pDG3rL0KrVpWXaMqFFCmCnzt66Y4U
	5hZIlGrOJo4GXjySFqm84Wk68bUFVgqS0G4tGfxHUe2FgwLW2THrCyZaGyGKwEn/SZ5q2n/i2GQ
	To=
X-Google-Smtp-Source: AGHT+IHvmuKkJikqVIn/OOgE0/yjdKyOHbhULSsUZcHCji0QTO3XwC3iRETChvABa+q5dSLD+pxsLA==
X-Received: by 2002:a05:6000:1a8e:b0:427:167:c2ce with SMTP id ffacd0b85a97d-42cc1d35653mr11401230f8f.42.1763983208771;
        Mon, 24 Nov 2025 03:20:08 -0800 (PST)
Message-ID: <ff4bbf62-e9b2-4d29-bc73-b4922e3ed742@suse.com>
Date: Mon, 24 Nov 2025 12:20:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/12] x86/irq: convert cpumask parameter to integer in
 {,p}irq_set_affinity()
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: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120095826.25782-1-roger.pau@citrix.com>
 <20251120095826.25782-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: <20251120095826.25782-4-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.11.2025 10:58, Roger Pau Monne wrote:
> Existing callers where already generating the passed cpumask using
> cpumask_of() to contain a single target CPU.  Reduce complexity by passing
> the single target CPU as an integer parameter.
> 
> No functional change intended.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> ---
> The function names are misleading, as {,p}irq_set_affinity() doesn't adjust
> the affinity of the interrupt (desc->affinity) but the interrupt target
> itself.  Further cleanup might be helpful to correctly differentiate
> between setting interrupt affinity vs setting interrupt target.

Indeed, I wanted to mention this as well. As you touch all callers anyway,
how about doing a rename (whether to "target" or "binding" or yet something
else) right here?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 11:27:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 11:27:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170374.1495429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNUiv-000865-9G; Mon, 24 Nov 2025 11:27:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170374.1495429; Mon, 24 Nov 2025 11:27: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 1vNUiv-00085y-5o; Mon, 24 Nov 2025 11:27:13 +0000
Received: by outflank-mailman (input) for mailman id 1170374;
 Mon, 24 Nov 2025 11:27: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=fNsn=6A=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vNUit-00085q-RS
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 11:27:11 +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 84204c2e-c928-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 12:27:10 +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 682212125F;
 Mon, 24 Nov 2025 11:27:09 +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 1CC123EA61;
 Mon, 24 Nov 2025 11:27:09 +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 iyPeBA1BJGk+XgAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 24 Nov 2025 11:27:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 84204c2e-c928-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763983629; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=BxJrhF0qZZGaXD5JOd96CV6+FokP/qPOdSZVX/1/zeU=;
	b=JlkDbRV1GrTZqBK9zyoB6YMozaWa8Gzluy2TJ9ybHXPY1+tLSBrrPhAuMJJwkIIIwD0crs
	h77+bW6j+SfGtwtORLhwy87yudS/MGoy3V3W4Towghi6iHG0UXjnD8/qqJSpYKpJPWCqau
	I4Lka7UG3GwIuNAWFRQuBqQnN6rDdTg=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1763983629; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=BxJrhF0qZZGaXD5JOd96CV6+FokP/qPOdSZVX/1/zeU=;
	b=JlkDbRV1GrTZqBK9zyoB6YMozaWa8Gzluy2TJ9ybHXPY1+tLSBrrPhAuMJJwkIIIwD0crs
	h77+bW6j+SfGtwtORLhwy87yudS/MGoy3V3W4Towghi6iHG0UXjnD8/qqJSpYKpJPWCqau
	I4Lka7UG3GwIuNAWFRQuBqQnN6rDdTg=
Message-ID: <bf7e1a66-1696-477a-bdef-79b08df0b57c@suse.com>
Date: Mon, 24 Nov 2025 12:27:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
 <d34e3e86-c51a-49b3-8b46-140526755f0f@suse.com>
 <826037a5-dacf-434f-90d9-8f12e61bdd6e@suse.com>
 <0ece9df6-8a04-4ffa-bcf4-d7a3fd4bbef4@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: <0ece9df6-8a04-4ffa-bcf4-d7a3fd4bbef4@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------sTysG7EEywjnoecedBYkpKjr"
X-Spam-Level: 
X-Spamd-Result: default: False [-6.20 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	SIGNED_PGP(-2.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MIME_BASE64_TEXT(0.10)[];
	MID_RHS_MATCH_FROM(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	RCPT_COUNT_SEVEN(0.00)[8];
	RCVD_TLS_ALL(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid];
	HAS_ATTACHMENT(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -6.20

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------sTysG7EEywjnoecedBYkpKjr
Content-Type: multipart/mixed; boundary="------------sT0dDdY8TeXlYCGHJ0YQhR97";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.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?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Message-ID: <bf7e1a66-1696-477a-bdef-79b08df0b57c@suse.com>
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
 <d34e3e86-c51a-49b3-8b46-140526755f0f@suse.com>
 <826037a5-dacf-434f-90d9-8f12e61bdd6e@suse.com>
 <0ece9df6-8a04-4ffa-bcf4-d7a3fd4bbef4@suse.com>
In-Reply-To: <0ece9df6-8a04-4ffa-bcf4-d7a3fd4bbef4@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=

--------------sT0dDdY8TeXlYCGHJ0YQhR97
Content-Type: multipart/mixed; boundary="------------50a3LfQMdvEmf5ZefgcCHYOK"

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

T24gMjQuMTEuMjUgMTI6MTUsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyNC4xMS4yMDI1
IDEyOjA1LCBKw7xyZ2VuIEdyb8OfIHdyb3RlOg0KPj4gT24gMjQuMTEuMjUgMTE6NDEsIEph
biBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDIxLjExLjIwMjUgMTQ6MjMsIEp1ZXJnZW4gR3Jv
c3Mgd3JvdGU6DQo+Pj4+IC0tLSBhL0NvbmZpZy5taw0KPj4+PiArKysgYi9Db25maWcubWsN
Cj4+Pj4gQEAgLTE1OSw2ICsxNTksMTkgQEAgZGVmaW5lIG1vdmUtaWYtY2hhbmdlZA0KPj4+
PiAgICAJaWYgISBjbXAgLXMgJCgxKSAkKDIpOyB0aGVuIG12IC1mICQoMSkgJCgyKTsgZWxz
ZSBybSAtZiAkKDEpOyBmaQ0KPj4+PiAgICBlbmRlZg0KPj4+PiAgICANCj4+Pj4gK1BBVEhf
RklMRVMgOj0gUGF0aHMNCj4+Pj4gK0lOQ19GSUxFUyA9ICQoZm9yZWFjaCBmLCAkKFBBVEhf
RklMRVMpLCAkKFhFTl9ST09UKS9jb25maWcvJChmKS5taykNCj4+Pj4gKw0KPj4+PiAraW5j
bHVkZSAkKElOQ19GSUxFUykNCj4+Pj4gKw0KPj4+PiArQlVJTERfTUFLRV9WQVJTID0gJChm
b3JlYWNoIGYsICQoUEFUSF9GSUxFUyksICQoc2hlbGwgYXdrICckJDIgPT0gIjo9IiB7IHBy
aW50ICQkMTsgfScgJChYRU5fUk9PVCkvY29uZmlnLyQoZikubWsuaW4pKQ0KPj4+DQo+Pj4g
RmVlbHMgbGlrZSBteSBwcmlvciBjb21tZW50cyB3ZXJlbid0IHJlYWxseSBhZGRyZXNzZWQu
IEkgY29udGludWUgdG8gdGhpbmsgdGhhdA0KPj4+IG5vbmUgb2YgdGhlIGFib3ZlIGlzIHBh
cnQgb2Ygd2hhdCB0aGUgc3ViamVjdCBzYXlzLg0KPj4NCj4+IEkgcmVhbGx5IGRvbid0IHVu
ZGVyc3RhbmQgeW91ciBjb25jZXJuIGhlcmUuDQo+Pg0KPj4gRm9yIHJlcGxhY2luZyB0aGUg
QG1hcmtlcnNAIG1ha2UgbmVlZHMgdG8ga25vdyB3aGF0IHNob3VsZCBiZSByZXBsYWNlZC4N
Cj4+IFNvIGl0IG5lZWRzIHRvIHNjYW4gdGhlIGZpbGVzIGNvbnRhaW5pbmcgdGhlIG1hcmtl
cnMgYW5kIGdhdGhlciB0aGVtLg0KPj4gVGhpcyBpcyB3aGF0IGlzIGRvbmUgYWJvdmUuDQo+
Pg0KPj4gSW4gdGhlIGZpbmFsIG1hY3JvIGJlbG93IHRoZSByZXBsYWNlbWVudHMgYXJlIGRv
bmUgdGhlbi4gSG93IHdvdWxkIHlvdQ0KPj4gaGFuZGxlIHRoYXQ/DQo+IA0KPiBCeSBwYXNz
aW5nIChhbm90aGVyKSBhcmd1bWVudCB0byB0aGUgbWFjcm8sIGZvciBleGFtcGxlLiBBcyBp
bmRpY2F0ZWQNCj4gZWFybGllciwgZGlmZmVyZW50IHN1Yi10cmVlcyBtYXkgaGF2ZSBkaWZm
ZXJlbnQgcGxhY2VzIHdoZXJlIHRoZXNlDQo+IGRlZmluaXRpb25zIGxpdmUsIGFuZCB0aGV5
IHdvdWxkIHdhbnQgdG8gYmUgYWJsZSB0byBwYXNzIHRoYXQgaW4NCj4gKGlkZWFsbHkgd2l0
aG91dCBuZWVkaW5nIHRvIHB1dCB0aGlzIGluIGEgY29tbW9uIHBhcnQgb2YgdGhlIHRyZWUp
Lg0KDQpJIGRvbid0IGdldCB3aGF0IHlvdSB3YW50IHRvIHBhc3MgaW4gYWRkaXRpb25hbGx5
Lg0KDQpJJ3ZlIGFscmVhZHkgY2hhbmdlZCB0aGUgbWFjcm8gYW5kIHRoZSBNYWtlZmlsZXMg
dG8gYmUgYWJsZSB0byBhZGQgYW5vdGhlcg0KbWFya2VyIGZpbGUgdG8gdGhlIFBBVEhfRklM
RVMgdmFyaWFibGUuIFdoYXQgZWxzZSBkbyB5b3UgbmVlZD8NCg0KU2VlIHBhdGNoIDQgaW4g
dG9vbHMvUnVsZXMubWsgYWRkaW5nIHRoZSBhZGRpdGlvbmFsIHJlZmVyZW5jZSB0bw0KVG9v
bHMtcGF0aHMubWsgYnkgZG9pbmc6DQoNClBBVEhfRklMRVMgKz0gVG9vbHMtcGF0aHMubWsN
Cg0KDQpKdWVyZ2VuDQo=
--------------50a3LfQMdvEmf5ZefgcCHYOK
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-----

--------------50a3LfQMdvEmf5ZefgcCHYOK--

--------------sT0dDdY8TeXlYCGHJ0YQhR97--

--------------sTysG7EEywjnoecedBYkpKjr
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/Ey8FAmkkQQwFAwAAAAAACgkQsN6d1ii/Ey/T
vAf9FGBX6t2YtTYr/z7p+j67uVvoI4M+xK7wI2OOnGEbAufmJLEYtKIzMpJbFv1YtU3IQE3+8Dxu
h8s8fMGhYd1PnOSG3AyrF64BZBNOSTevPVqDPklcyGT9X6sSDU23D9j0/yJGGaG4vSzqLI7l3Mqh
uQlH6+Z0f6+yn1i4jmZ3X5NfT6F7zpeHKdzvlAuyXlrIY3gAtt/k/SMuR667RsR3rPba0mGobd5b
OH1O3dobhRqjMEuA2FGYRovjEH5WQBOkzArdnRIgvL6Bvq5CVlR8BW1CO2cYE5hK/yAJoNQcLWv0
kRY/ROIus8fFRjTSeg/N+3yMrUfC6DGscddN+LXcVg==
=znFe
-----END PGP SIGNATURE-----

--------------sTysG7EEywjnoecedBYkpKjr--


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:02:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:02:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170393.1495455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVGQ-0005hn-2Y; Mon, 24 Nov 2025 12:01:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170393.1495455; Mon, 24 Nov 2025 12:01:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVGP-0005hg-VT; Mon, 24 Nov 2025 12:01:49 +0000
Received: by outflank-mailman (input) for mailman id 1170393;
 Mon, 24 Nov 2025 12:01: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNVGO-0005gH-JA
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:01:48 +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 58097bcf-c92d-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 13:01:43 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4775e891b5eso17678415e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:01: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-477bf3af0ecsm193617465e9.9.2025.11.24.04.01.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04:01: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: 58097bcf-c92d-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763985703; x=1764590503; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AbrKimLx9ctqJiYlm0m6klda1+roeMbXzMTUqTSdaRY=;
        b=MxZ/C6Glp7NMs7MxEeH/3PyEG4dJTp9pegub8aplDMq77spsgptmKTFgik1gGuf5hh
         wj5r6DKZOk/vsyFtcVsjaRkStTDkVLIg7o+HCkBTzUnZvX/qGR0EvXUfH6GpoC4HxepM
         wHNOIoiMbehd9faX+YzvSfwBLph++ez58NA7FAy5XdbEWdYTJlAZ4caPFBc+AOnjhReg
         cZ5/lZZoTWCa6vSpd+YKXoqjYISHArtzed1q6J69yrn2KeApR7pkICAgu2+A5nn0SJor
         pp+IEuymvCe1zIRPxdLIj1wa37U+hkjKWO5Vnu5yVtESTo+p+NCeR4BNqreuvB5OMdSa
         PdcQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763985703; x=1764590503;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AbrKimLx9ctqJiYlm0m6klda1+roeMbXzMTUqTSdaRY=;
        b=skFy+YXLliKn7Qp5ozpCq6LMSNBs/SIX0cazeClEmJer4Gx+zxOfJpPhtVF0YlLSPF
         I6CGfy68xwDPCvVvyz/Jqngqici2ijwUkeuG4kIfm4uYUvqDBluoXFJdl8BvkiKE+he5
         GMkKqJ8OkIUo/hyyo1q2EQjF/K70Xlzop8Trevgt/TZSGLxf6qPquhc3QYYLHGEAtLg2
         A+99HzIPUtFf9CXLdUy4q0MQnxSY8kNm1j/q4hX4jkbJC6yvfxcR0/paByXJ+uQXY8/6
         GgYQQPcXFvl9Lv4P63/cCW+RDx024/deZHd9M43/J5AgKbEXyv/1ui4vEP1HkAcEQbVr
         U8WA==
X-Forwarded-Encrypted: i=1; AJvYcCUK9tGFPfWt46UesSdhKP2FF19sGqGUfREVxr/YIRC2kJ2wsWTpnESTftOgbNlvl0hdiHrPRmAVBsg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyPvm/6LCxjBg0Nm9icEaZ3aRXllpBNQjb/cCXywrmcru1YVEqr
	o7rlMGecKeBeoXPLng8scale674PHbZNwQA357eO4POfdnsS6TNzcDY3pFaNrfUw/wHXmwkCP8X
	YGAY=
X-Gm-Gg: ASbGncvVTV0NDeGG1XN/8yK4ent6/4/kiSWEeHzxDrcGH6ElXVtaV+Hq6JGIe+B3zbs
	rCgzu9nv+PxTmGl8Is1kqmAH3Uk80JFdxJ9EIBaZmScJRS5MrWpGaxHcWO6dRlZq1Udr/vVH0od
	V7aalDRVKUWCWAUZ5YBI1r2GzjMdOQKQEN5jKKt7fGZRRv4n0vORGmg77Be7x4El9F7yD5LbTTL
	8brweg7hxfvZiTl4NS6R5QS6ER3+x47zQWbgP4W0U17UA8kdE/Zh4f6xSyi35yOchifN1rOLgb1
	H4psIHug4W3Kjo7IMYzPXx8dvZhnJ9+iAhrkrxEiTD6IHPYcbhq4KIXVq+FUS8lLr0nZGSMzYy4
	ByTuf8mllCP/o2cl2ekTsprxTmRwmOCsVm5f1wHFhgtzWqjhapt5mIFGcvjt8tGYohs9Nk6ATgt
	G0SH4v/q3frf5rAk/uJ53KYXSSBn7Dqs49P4cCwuzQMKaWgrhfW2M9Ku+LtvClokDMm/dH+FkFG
	Fg=
X-Google-Smtp-Source: AGHT+IEPX0fcsEJ1+lMmf1nsI28vHBBTWfeCOJUNOLJoEbWlkRA60zTzJWYVQxY0Ze8xLdqic43Hww==
X-Received: by 2002:a05:600c:4e87:b0:46d:a04:50c6 with SMTP id 5b1f17b1804b1-477c01ebc76mr112131745e9.30.1763985702768;
        Mon, 24 Nov 2025 04:01:42 -0800 (PST)
Message-ID: <da4a0b83-a6a4-4e63-9f7a-1c9713cb5a1c@suse.com>
Date: Mon, 24 Nov 2025 13:01:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/12] x86/irq: convert irq_desc cpu_mask field to integer
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>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120095826.25782-1-roger.pau@citrix.com>
 <20251120095826.25782-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: <20251120095826.25782-5-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.11.2025 10:58, Roger Pau Monne wrote:
> --- a/xen/arch/x86/hpet.c
> +++ b/xen/arch/x86/hpet.c
> @@ -310,9 +310,9 @@ static void cf_check hpet_msi_set_affinity(
>      struct msi_msg msg = ch->msi.msg;
>  
>      /* This really is only for dump_irqs(). */
> -    cpumask_copy(desc->arch.cpu_mask, mask);
> +    desc->arch.cpu = cpumask_any(mask);

Going from the comment, couldn't you use CPU_INVALID here? Then again, see
"x86/HPET: drop .set_affinity hook", where the function goes away anyway.

> @@ -337,7 +337,8 @@ static int __hpet_setup_msi_irq(struct irq_desc *desc)
>  {
>      struct msi_msg msg;
>  
> -    msi_compose_msg(desc->arch.vector, desc->arch.cpu_mask, &msg);
> +    msg.dest32 = cpu_physical_id(desc->arch.cpu);
> +    msi_compose_msg(desc->arch.vector, &msg);
>      return hpet_msi_write(desc->action->dev_id, &msg);
>  }

Setting msg.dest32 ahead of calling msi_compose_msg() feels odd. It makes things
look as if this was an input to the function, when by its name it rather would
want to be an output. Furthermore this is dead code right now, as the function
clears the entire structure first thing. Imo it being the function to fill the
field should be retained; instead of the CPU mask you'd once again make it a
scalar parameter. For the case where NULL was passed before, ...

> --- a/xen/arch/x86/include/asm/irq.h
> +++ b/xen/arch/x86/include/asm/irq.h
> @@ -69,13 +69,9 @@ struct irq_desc;
>  struct arch_irq_desc {
>          int16_t vector;                  /* vector itself is only 8 bits, */
>          int16_t old_vector;              /* but we use -1 for unassigned  */
> -        /*
> -         * Except for high priority interrupts @cpu_mask may have bits set for
> -         * offline CPUs.  Consumers need to be careful to mask this down to
> -         * online ones as necessary.  There is supposed to always be a non-
> -         * empty intersection with cpu_online_map.
> -         */
> -        cpumask_var_t cpu_mask;
> +/* Special target CPU values. */
> +#define CPU_INVALID  ~0U

... you already make a suitable constant available. (Nit: The expansion wants
parenthesizing.)

> --- a/xen/arch/x86/io_apic.c
> +++ b/xen/arch/x86/io_apic.c
> @@ -1112,8 +1112,7 @@ static void __init setup_IO_APIC_irqs(void)
>              if (platform_legacy_irq(irq))
>                  disable_8259A_irq(irq_to_desc(irq));
>  
> -            set_entry_dest(&entry,
> -                           cpu_mask_to_apicid(irq_to_desc(irq)->arch.cpu_mask));
> +            set_entry_dest(&entry, cpu_physical_id(irq_to_desc(irq)->arch.cpu));

I may as well mention this here: Looks like this patch removes all call sites
of cpu_mask_to_apicid(). That would leave the function unreachable, i.e. violating
a Misra rule, so I think the function needs dropping right here.

> @@ -2137,14 +2136,11 @@ int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int a
>          return vector;
>      entry.vector = vector;
>  
> -    if (cpumask_intersects(desc->arch.cpu_mask, TARGET_CPUS)) {
> -        cpumask_t *mask = this_cpu(scratch_cpumask);
> -
> -        cpumask_and(mask, desc->arch.cpu_mask, TARGET_CPUS);
> -        set_entry_dest(&entry, cpu_mask_to_apicid(mask));
> +    if (cpu_online(desc->arch.cpu)) {

Can CPU_INVALID make it here? If so, it needs guarding against. If not, an
assertion may be nice. (Same possibly elsewhere.)

> --- a/xen/arch/x86/irq.c
> +++ b/xen/arch/x86/irq.c
> @@ -156,8 +156,7 @@ static int __init _bind_irq_vector(struct irq_desc *desc, int vector,
>  
>      if ( !cpu_online(cpu) )
>          return -EINVAL;
> -    if ( (desc->arch.vector == vector) &&
> -         cpumask_test_cpu(cpu, desc->arch.cpu_mask) )
> +    if ( (desc->arch.vector == vector) && cpu == desc->arch.cpu )

Please can you be consistent with parentheses on both sides of the &&?
(I'd prefer the excess ones to be dropped, but the alternative is also
okay.)

> @@ -684,8 +673,9 @@ next:
>          }
>          else if ( valid_irq_vector(old_vector) )
>          {
> -            cpumask_and(desc->arch.old_cpu_mask, desc->arch.cpu_mask,
> -                        &cpu_online_map);
> +            cpumask_clear(desc->arch.old_cpu_mask);
> +            if ( cpu_online(desc->arch.cpu) )
> +                cpumask_set_cpu(desc->arch.cpu, desc->arch.old_cpu_mask);

As mentioned for an earlier patch, to avoid the LOCK-ed update
cpumask_copy() may be better to use. Yet iirc like there, likely this
goes away again later in the series (by the title right in the next patch),
so perhaps not a big deal.

> --- a/xen/common/cpu.c
> +++ b/xen/common/cpu.c
> @@ -16,6 +16,7 @@ unsigned int __read_mostly nr_cpumask_bits
>  const cpumask_t cpumask_all = {
>      .bits[0 ... (BITS_TO_LONGS(NR_CPUS) - 1)] = ~0UL
>  };
> +const cpumask_t cpumask_none;

This feels wasteful at least for larger NR_CPUS. And it's likely going to
violate some Misra rule on non-x86, for having no user. On x86, as long as
NR_CPUS <= 8 * PAGE_SIZE, you could (re-)use zero_page[] instead.

> --- a/xen/drivers/passthrough/amd/iommu_init.c
> +++ b/xen/drivers/passthrough/amd/iommu_init.c
> @@ -507,7 +507,7 @@ static void cf_check set_x2apic_affinity(
>      if ( dest == BAD_APICID )
>          return;
>  
> -    msi_compose_msg(desc->arch.vector, NULL, &iommu->msi.msg);
> +    msi_compose_msg(desc->arch.vector, &iommu->msi.msg);
>      iommu->msi.msg.dest32 = dest;

With the outlined adjustment above, it looks like the explicit setting
of .dest32 would then not be needed here (and perhaps elsewhere) anymore.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:18:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:18:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170403.1495464 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVWY-0007i3-9A; Mon, 24 Nov 2025 12:18:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170403.1495464; Mon, 24 Nov 2025 12: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 1vNVWY-0007hw-6Z; Mon, 24 Nov 2025 12:18:30 +0000
Received: by outflank-mailman (input) for mailman id 1170403;
 Mon, 24 Nov 2025 12:18:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNVWX-0007ho-GH
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:18:29 +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 addf20bb-c92f-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 13:18:26 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-429c4c65485so3448581f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04: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-42cb7f49a7bsm27688435f8f.19.2025.11.24.04.18.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04: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: addf20bb-c92f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763986706; x=1764591506; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+aKzSlO0FYcL1JvCqmyhHBMOH9OmZmRRSYMBODN08HU=;
        b=QldeVht6ZqX3wLWL+icmXWBjQ9HGxN/7587sbnqXC3gCjGQO/RXYyL9pC5Tbv205J9
         6NB+lCvof7rFxwr5ctIpv/BOZUtxS0othyCkjwLfDGX0Xldch0Uc58fTIWpo/pml36m7
         TxE88oJtgg6/D2pkBvPDNS2MuZtSB39py1oMllWN6Ch+nO5lal0gmNZtDqPWNuInthno
         nK+9zByNImo2CJljRrTLLgBrSjjC5u8MAZ/He4NkZqGg9sYp+JZcE2ENwh73llA9P5Mc
         J1UjPRruOrzpAJNMOW2Wtbxb+ViLFJPtcExU2A1QV8efC8j1MKc0DugJKoLbI/AzSC6O
         M/oA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763986706; x=1764591506;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+aKzSlO0FYcL1JvCqmyhHBMOH9OmZmRRSYMBODN08HU=;
        b=TegwYT/XSgWBpGtORUDNHspt67HO/oPZL8ibOGwf2HqVnafJtLX9SJcCWOQcHWNy6j
         mAB+7MUERqq91dbz5n7xjMJQHGip5FaOW8ekD9ZHwLP9Mrwssq8Z+Q46aeRyQXjWdp3M
         0SkXlZB+f1TLxe1W2BqQ2au/3Dn2PMEzCOlFU04xoeCoDE0zfduOy+SgFzu1ryGYKMkq
         w8Nk0vAAj/vUyG/9EtqZU1o7g12CTWip7/IUAZESv+oxoEPkqJeq2ZcyRCJv2rx/r/2M
         X2MUB9L1n99Ag9xy2Cv8lJdCeskzXu6gzlqa4XAGD9L3ZojrT5a+DtJAdvGc8RFfh+Ac
         Pm6g==
X-Forwarded-Encrypted: i=1; AJvYcCUZgQbApGDUuOLt2/dgKnqkWmnKY+ga0k5SPXkfuovPcUI90nryC1XzFla9zuZTWwX0Jl+E6a46Vl0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz/znNhaaIOdM1fSv056Cvcgj6Ajt+uiaja0pbUtNvu2vjDRlV4
	oOITXbIeTsnXctmnVJsvUebAYScH3eK22WYcUQJt81i8HnT687U4yXHp8w0t4lSYZQ==
X-Gm-Gg: ASbGncvhrsA7wndApfmWZn3yW3/NuOTEfY6iwuj3f56sAYozynXyWRMmrxJGUosywbE
	cztnTU0mFhc0/EtSD2pe8qZi4yITP1k4uX9bcpAZuLWBU1aKYJ72R943AI4lD6Es83nsOaAnURN
	HJqkLVdoOsgOW5YVz9pkHzjGM6z286/f29m1WsD/DP3p1MzFEhzmhyKfjC6tb94voH9EQYuevv+
	0UXKBei2PDkpt+2i3lYrNNZSeovuE52pcufR/q9aIUqYoH4IePUCfcgvctRrXs1mHyP5qy6kxsR
	yEVaHvV3rXKBYNrjwVKWg9MXVmgwQWVdlvZ4cW1h4Kh4V67Xf87aZI1QViaRQiZkak/mx3saC11
	rcmxWG59EHQ6tQSWk/lIzxeHdhaPHz+jSPANxFqm8frBxDv+aC8Xq61N2eLfmV4lsKA+8MLQUb2
	B0hKcJxIGo/XtbRNBU28T5J/pzavnvdZlfx6sLhXaeqya4tM/o7HtV2N1SHNs7PsRfIvhk+deor
	1U=
X-Google-Smtp-Source: AGHT+IH2yxkX4mRm4l9/NRj8vbP1PKjBQ6+BFYJe4rrLlWYvWbDFlJAh827w6jaOUgf/88yFyTK8hQ==
X-Received: by 2002:a05:6000:22c7:b0:42b:55a1:214f with SMTP id ffacd0b85a97d-42cc1cedae7mr11593459f8f.21.1763986706138;
        Mon, 24 Nov 2025 04:18:26 -0800 (PST)
Message-ID: <bbcaf4f2-c52e-4b3e-ab6a-ca5020a8b786@suse.com>
Date: Mon, 24 Nov 2025 13:18:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
To: Juergen Gross <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
 <d34e3e86-c51a-49b3-8b46-140526755f0f@suse.com>
 <826037a5-dacf-434f-90d9-8f12e61bdd6e@suse.com>
 <0ece9df6-8a04-4ffa-bcf4-d7a3fd4bbef4@suse.com>
 <bf7e1a66-1696-477a-bdef-79b08df0b57c@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: <bf7e1a66-1696-477a-bdef-79b08df0b57c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.11.2025 12:27, Juergen Gross wrote:
> On 24.11.25 12:15, Jan Beulich wrote:
>> On 24.11.2025 12:05, JÃ¼rgen GroÃŸ wrote:
>>> On 24.11.25 11:41, Jan Beulich wrote:
>>>> On 21.11.2025 14:23, Juergen Gross wrote:
>>>>> --- a/Config.mk
>>>>> +++ b/Config.mk
>>>>> @@ -159,6 +159,19 @@ define move-if-changed
>>>>>    	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
>>>>>    endef
>>>>>    
>>>>> +PATH_FILES := Paths
>>>>> +INC_FILES = $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
>>>>> +
>>>>> +include $(INC_FILES)
>>>>> +
>>>>> +BUILD_MAKE_VARS = $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).mk.in))
>>>>
>>>> Feels like my prior comments weren't really addressed. I continue to think that
>>>> none of the above is part of what the subject says.
>>>
>>> I really don't understand your concern here.
>>>
>>> For replacing the @markers@ make needs to know what should be replaced.
>>> So it needs to scan the files containing the markers and gather them.
>>> This is what is done above.
>>>
>>> In the final macro below the replacements are done then. How would you
>>> handle that?
>>
>> By passing (another) argument to the macro, for example. As indicated
>> earlier, different sub-trees may have different places where these
>> definitions live, and they would want to be able to pass that in
>> (ideally without needing to put this in a common part of the tree).
> 
> I don't get what you want to pass in additionally.
> 
> I've already changed the macro and the Makefiles to be able to add another
> marker file to the PATH_FILES variable. What else do you need?

Well, that's simply an odd way of passing a parameter. Plus, the extra file
won't affect INC_FILES, or more precisely its use in the include directive
in patch 1: At least aiui, $(INC_FILES) is expanded at the point when the
directive is processed. Hence why you need to open-code another include
there.

Jan

> See patch 4 in tools/Rules.mk adding the additional reference to
> Tools-paths.mk by doing:
> 
> PATH_FILES += Tools-paths.mk
> 
> 
> Juergen



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:22:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:22:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170412.1495474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVaY-0000wn-OH; Mon, 24 Nov 2025 12:22:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170412.1495474; Mon, 24 Nov 2025 12:22:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVaY-0000wg-Lb; Mon, 24 Nov 2025 12:22:38 +0000
Received: by outflank-mailman (input) for mailman id 1170412;
 Mon, 24 Nov 2025 12:22:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNVaX-0000wa-8y
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:22: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 425edb25-c930-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:22:35 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4779ce2a624so37617985e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:22: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-477bf36d1fasm187031715e9.7.2025.11.24.04.22.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04:22: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: 425edb25-c930-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763986955; x=1764591755; 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=nUWllKMPpy9udsf1yQ3TeWLTtx1XYb7DE5BROOZsni8=;
        b=DFH/AsrG9XCs0icrrfcUvAOtSxuzDnbzVduISbEiuV9Z7cwijmTmIGxmtaboNMUlhc
         jM2WfBetWLgbuG8FUjjdAcsybEGkE7fddeA6uEkoJv6JfMD+xihJ5IDpM0EZBXwaCzsE
         vtzE+IivMBOHlVqElOTzsvDrB0v+CA7lL7kxp6p0SvuS2DX5SlMJCv8/BXJnQluK1eIB
         IZM+JTzMb6qbnPaLXLCzR1bdE8DskvP6YwQk2yRgEf8bS+KCMT+Gxwx4KV7EtbPACsft
         XQqC8QzVZqxoHOPQnTE6pS8ywQ0SUIGOo8KPsBtH8NMERZ2nOWQYjpwahAMZWHSf1r0P
         x6lQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763986955; x=1764591755;
        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=nUWllKMPpy9udsf1yQ3TeWLTtx1XYb7DE5BROOZsni8=;
        b=R+3X7wjPk79xg5jp33WVgHiyuFDbG0JsLPnnugSnwfGyBCVKMF7+HqB+CLb7CssSK+
         Z2Fis+vGphT4tqDJma/DchPHWFVQgspIYfQVoYvdCR8oBNmFGHNooa7rmy+blISerqSo
         qBkeS0KSrpWGbK/C/0tyai/H/YF9ibraiJfAD9On3suzJuooKtD8QXwKZotLmhkkzMrG
         RnheCfQTtph8yiKL9j/DJSOcLZxuskXPo3yFoBqrc7n8gSw8OsiTIcCeoh2/0RS56Q9w
         1oAuv4OGV/Uu+kGnlTuJJZczWgYpbdr+vYv82gnHUe7mh2HnJJf8LQdE7HWQfAMIBE77
         rKVg==
X-Gm-Message-State: AOJu0YzNo7aBBZaiNcovN+usEVDjZC9NqqF8+BNNxxulyzmtYa862RtG
	X+cmlH5+U7OZTJcCJfw59EOO6p95Xb1i2zanXOzOqfUfek30K+YvsVdNhkSma7j9QJCUDz5P0bg
	mCwc=
X-Gm-Gg: ASbGncvAa/seyde1ST4u4yk+XBdBc1o/rKdsgNME95hGzBwBTaECTKpvLuURPFm7xU+
	RK8bbKvl9PW++6EqXm3cVcc4YcdeJx0dWS9rIP8YK+IWQkRLGfda5piZdGCU6Ak/8E+V/uewAgF
	70keosK+Biv4eGrWtPnBBm4e7pEYV9Ids61249bX1AN1d8tG7SoVf+LgtX2dm0WqWl3sH9mhJ00
	RRVrakvW7iP5lNCjcaJUipNp9/3sG7MajcrH+j9VH03BVHsrYOLpGWpZ1CpilXcTaLUuN9KJXc3
	+Wy4SuDAqtxu6tkG55a5ndg8aN3syvde6t8mrDIsQQgRRUDorurI5MNqdam/HTZLLqltqgDTbQA
	MlWoIrvCUev4C6pn0+9JH3cADR1/2XKUZ5J99SmLJQhxia44UaMij/6V4qER13J6WzkVhPhzLiN
	Ea4SlDsl93wd3TuYKcbUbHal8PMo9utSYZiOTEoj+pxaSbM7NJ7LqkkjueiFTlOJEjRsVO6JMpT
	mw=
X-Google-Smtp-Source: AGHT+IH6sGUSc6PmqO2bWTSrddkvbl4cwEr2vLhP7jAMvgSgicpBBvODNqAe3zEmcVd42JHy6KH9oA==
X-Received: by 2002:a05:600c:3541:b0:477:b642:9dc1 with SMTP id 5b1f17b1804b1-477c01be1admr87636575e9.20.1763986955227;
        Mon, 24 Nov 2025 04:22:35 -0800 (PST)
Message-ID: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@suse.com>
Date: Mon, 24 Nov 2025 13:22:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2 0/6] x86: CPUID leaf 6 consolidation
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Integrate this leaf with CPU policy handling, to leverage the host policy
when feature bits need evaluating.

1: cpu-policy: define bits of leaf 6
2: replace APERRMPERF synthetic feature bit
3: rename ARAT feature flag
4: Intel: use host CPU policy for ARAT checking
5: cpufreq: use host CPU policy for Turbo checking
6: cpufreq: use host CPU policy in HWP driver

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:23:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:23:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170420.1495485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVbX-0001Ra-1J; Mon, 24 Nov 2025 12:23:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170420.1495485; Mon, 24 Nov 2025 12: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 1vNVbW-0001RT-Uz; Mon, 24 Nov 2025 12:23:38 +0000
Received: by outflank-mailman (input) for mailman id 1170420;
 Mon, 24 Nov 2025 12:23:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNVbW-0000wa-0G
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:23:38 +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 66e8daab-c930-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:23:37 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4779adb38d3so29779785e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04: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-477a9df99d3sm145932095e9.12.2025.11.24.04.23.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04:23: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: 66e8daab-c930-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763987016; x=1764591816; 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=befqLlpHDaTOJ168AO4nT4V0UY7lsj7BNiz2u+TXq/s=;
        b=eB/YMSJqN+GaWpdXRpbAdPomijnow9DFL4lvYoXf3LVbu9vSWRFdjZejF3fw9bJ4TM
         pxMGH+Q+pHxDgBaJGABXCJrMCRxkp5DrPOecdlEszZ4Zch6PSzm/3g6fNpmOM+RuhEoI
         BjCx+xrgggW68HI0QjE9DMDHrHAJoo5l0kLoY1bHq3B8Fg5Aaha4gOcCsl6JPgoR3AR7
         bQOJk3sXRexDY07aYMV/qtVGNBCUS1KJAFWQ4c0G15GnQ6C3otF8Jeqg1WNRly4gmHa0
         j0uygHQAhGYCuBkJ6MN3G8sgWiZXuOJdDpzPnxDnMALXhsN6eZUmFnsMjyX/KCRaXq7j
         uG7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987016; x=1764591816;
        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=befqLlpHDaTOJ168AO4nT4V0UY7lsj7BNiz2u+TXq/s=;
        b=vs+G8JhzwyJFakZTxoFAx/EkBfUQ1BDPWWJqdKYZX4Sn9YlORL38wfiJUy5JDAdVh9
         jflWnXeGl6vdhftNe3H2Ecu5fbdCkIAdXzHMWc60wd+FEWf+8LAP1pYJ/EgT/aaIpc/4
         ZDBgTzyK0pCRrg0ZMTaSrbAzeZDtTJM90V2zDAsVdzybVT2wiAXgKk70lOkdBcjs4ZtL
         27Y0SqPrsF6FZ1bt2YhTmrzGYHXBreAmpMV2LNN4V1GVnaLQSBWkUMYYOyWMQ+ijOk7j
         p+AuqZ7p+Wh1OpuKO35wzAEBrkvZ3NgWaKEeuM7e7xDx8ImAqhh+UaoEWzeCJIsNDVxu
         cFhw==
X-Gm-Message-State: AOJu0YxtihmCYx7z6TYfwaBAyM3MVDGMd5zL2hJb59cb60T0jwyDmPsw
	GzY6+Z5rYgDFDxgomoB3N7Bwb/aNkcnh8Cz7xx380GzDJLawMTlxYN/wJoRvmruYlT/cAa4eZQ2
	TQk8=
X-Gm-Gg: ASbGncuTQpoex7vXmA8sQJhftlPc4Ov3UxqFGdUYU+3JX9ui0Iqc1umHh8kmdUuZNDK
	Q44Ujoltnmqbrc6Ge9CH3x4++/DTjlNsOudNYoNDJbUS0iPpb3u+8oVWJMCu6CaUXQ132aCkBFe
	1P2aotrTAKtt4QSTh5UUR9CFlN7TQDiUiXCA2+20iklY/n/tWZvzvAfx6vHDSI08TXEjBSz3EH1
	BrwrfRvu1HoiXdeUraGRDtQ1vTOExrPgFR10ALB4046SQJZcxYRSO/4fy35pLUnKN1bP0RA5d9/
	EAQUkxJBPdL7ZiK9FilaMsOPq3AlDgxDeG0yZ4ImvuEPmZ5Kax+hF7sV62yqTHtgPzVpXUPWbWy
	U5tzxiCHYqf+LT3ptybyblmhrq8DBlYB1CbkDYrK9OVeEKjCxUv7+YH4T8o4ei/d0SnA8ICjLoq
	SWejTwRSjMlfSNyr+QJEWbi3DARHlORLvBNXtC/0358vzDWUM5ozR3WhXnQhZ2tRvj1AYDzZ2hH
	tQ=
X-Google-Smtp-Source: AGHT+IEi5Pau7VI/zCzDyGA/Mp2V+Q9AkV/FUSPoLfiNzaxEVAUspg81R8Y6BJjd8zuNVEzctIzhzQ==
X-Received: by 2002:a05:600c:450f:b0:477:7b30:a6fc with SMTP id 5b1f17b1804b1-477c01fa4a8mr128989095e9.30.1763987016491;
        Mon, 24 Nov 2025 04:23:36 -0800 (PST)
Message-ID: <8791387c-2799-4e0b-b187-1900b224a101@suse.com>
Date: Mon, 24 Nov 2025 13:23:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 1/6] x86/cpu-policy: define bits of leaf 6
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: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@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: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

... as far as we presently use them in the codebase.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Or should we make both parts proper featureset elements? At least
APERFMPERF could likely be made visible to guests (in principle).
---
v2: Use bool and unions.

--- a/xen/include/xen/lib/x86/cpu-policy.h
+++ b/xen/include/xen/lib/x86/cpu-policy.h
@@ -121,7 +121,46 @@ struct cpu_policy
             uint64_t :64, :64; /* Leaf 0x3 - PSN. */
             uint64_t :64, :64; /* Leaf 0x4 - Structured Cache. */
             uint64_t :64, :64; /* Leaf 0x5 - MONITOR. */
-            uint64_t :64, :64; /* Leaf 0x6 - Therm/Perf. */
+
+            /* Leaf 0x6 - Therm/Perf. */
+            union {
+                uint32_t _6a;
+                struct {
+                    bool :1,
+                        turbo:1,
+                        arat:1,
+                        :1,
+                        :1,
+                        :1,
+                        :1,
+                        hwp:1,
+                        hwp_notification:1,
+                        hwp_activity_window:1,
+                        hwp_epp:1,
+                        hwp_plr:1,
+                        :1,
+                        hdc:1,
+                        :1,
+                        :1,
+                        hwp_peci:1,
+                        :1,
+                        :1,
+                        hw_feedback:1;
+                };
+            };
+            union {
+                uint32_t _6b;
+            };
+            union {
+                uint32_t _6c;
+                struct {
+                    bool aperfmperf:1;
+                };
+            };
+            union {
+                uint32_t _6d;
+            };
+
             uint64_t :64, :64; /* Leaf 0x7 - Structured Features. */
             uint64_t :64, :64; /* Leaf 0x8 - rsvd */
             uint64_t :64, :64; /* Leaf 0x9 - DCA */



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:23:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:23:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170423.1495495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVbp-0001nl-Bd; Mon, 24 Nov 2025 12:23:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170423.1495495; Mon, 24 Nov 2025 12:23:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVbp-0001ne-8b; Mon, 24 Nov 2025 12:23:57 +0000
Received: by outflank-mailman (input) for mailman id 1170423;
 Mon, 24 Nov 2025 12:23: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNVbn-0000wa-SZ
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:23: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 7183907e-c930-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:23:55 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4775ae77516so42538895e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:23: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-477bf1df3d5sm193468095e9.2.2025.11.24.04.23.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04:23: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: 7183907e-c930-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763987034; x=1764591834; 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=6vmubra/7p/KMumCP8wGDTSWTzldfYnULy/EwhAsbaU=;
        b=Vu90DpdwawXdrJ+7LliekHDMU6Eka6vuFP67k17cbwdYLApj79e0LMEMiGc+Ya2Had
         wzof6EwjhtYpSgjp2nDuoKSlcmCcRGnTUIFqBOB8EAyfQy08X0eXlYoE4yb4nTo9dz4K
         rHIHtlRlh4SEegMeaEsq2wwhj/0bJwUGt7P/P56X+WyXAdB6uDIdZBxICMyGsh3IqMCD
         8YuX+V3GmdU2mIppMaDOG+e/d2OMi50MYFcDSPlKadXTwFQKMYCZFUorx7Sq3ESojU7v
         H4W9sIYs1vnT5y9uqmsRDLun4eUEhdxueWllCPfXjLhFFMfBsaQ3seGawnV5iIrcXc4v
         2ZvQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987034; x=1764591834;
        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=6vmubra/7p/KMumCP8wGDTSWTzldfYnULy/EwhAsbaU=;
        b=AADAUykTbGMjR77f/QwUyR9JqSZyeweqyGxFTrO+bW0bCAQ1tBDD2SxxtxqmLhQRlM
         NLwOQmGASexxcNNXnelNhTR5jhzs8t7T7cXUZcCYurcUKEnecUdLpEzyb1hBzoeaYi0h
         d5AzI0uIckTvPZkXQbxq41cF7i034JzaK+M9OqEiH8aPNZ0UJfxe4kt9CHZHHZfogL8a
         0gnzEcChKst1Hl+Us4FswDxPV02ZSzCXhX++eNMSvNoV6zBOCVWMHr3eCXVYR+8SDII0
         52iN811AfGp7uw+RnRRYpGGvMwNKwSZ5c9GmXRbO5h9QlWbZBZQ/mrbmL5NfEGyHvwM6
         9Acw==
X-Gm-Message-State: AOJu0Yz/1lBo6iVtRF1juhYz8neKuqthkT7zTpZc0pMRw29FKMNhXSbs
	GXPWsCgtThbZe6M81SGdoMb/rINda0ztR9TX3ioX5iVq7bVJZPM79K0R220KoYocXlpfEx4p/2O
	iLho=
X-Gm-Gg: ASbGncu1ynAuMuCLs4RJbh2nTppCafDODxTULGMoEQuJwmYDvdGC56XTQNF0a6mSPEI
	8joWubE9LA3dBffnlJAcGolrOTRY6/6XfXCOcWlkTRyj1kl3Bghnn4sske36Ad5uiu8vOzaSeyI
	f1pGLaJg+NeRrbINKZZTxTh+o1L4np99z6niWgTWR8V+H6PBammu8901rV2b6DwDysxT7O9lHM3
	S/IgxY+iJiYQEly+TJwGp1MLze+UZgsEt5/qch1s8k6Y8PhFhwF2Cgdf+MH8FqbaJM865YcpXBF
	B5qptbAUSuj4xQn1ny7huriGmxU1wXsy/Yn9t3WkxS0EbsuTZH1f/O4qO6zLtqxvswZWgWugLC/
	oL5gFweiQzHyfb84Pj2MDFaV4q0xOdm49T6gwqL48QU10gvGtoVySV99y6CtSxzLVGhpSz2Xcnm
	6/ywAOYeSDecVYocDG6sGgi7T2AtBdcanbiSZE4I2gwWs9Ak6rH0kSQdRvx4PEyYxXr4BRfDxMR
	Gc=
X-Google-Smtp-Source: AGHT+IEgRGqKvdZisWoeFS6OT5uX7pWX9yiYiD498Wwkm5FffvTMhbxKVTgW6YvSF+b9MuLbRiYZEQ==
X-Received: by 2002:a05:600c:1c29:b0:477:639d:bca2 with SMTP id 5b1f17b1804b1-477c10c85e2mr128308815e9.4.1763987034312;
        Mon, 24 Nov 2025 04:23:54 -0800 (PST)
Message-ID: <80a6e497-bde6-4c5b-ade8-850abf0046ad@suse.com>
Date: Mon, 24 Nov 2025 13:23:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 2/6] x86: replace APERFMPERF synthetic feature bit
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: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@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: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Use the respective host CPU policy bit instead. This has the (tolerable,
as we generally assume symmetry anyway) effect of using the BSP's
(unleveled) setting, rather than the result of leveling (as is done by
identify_cpu() on boot_cpu_data, rendering the variable name somewhat
misleading).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
The leveling of boot_cpu_data is problematic anyway, as that way features
can in principle disappear post-boot (as CPUs are being brought online;
just that we don't think anymore that we really support physical CPU
hotplug).
---
v2: Extend description.

--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -523,10 +523,6 @@ static void generic_identify(struct cpui
 	if ( cpu_has(c, X86_FEATURE_CLFLUSH) )
 		c->x86_clflush_size = ((ebx >> 8) & 0xff) * 8;
 
-	if ( (c->cpuid_level >= CPUID_PM_LEAF) &&
-	     (cpuid_ecx(CPUID_PM_LEAF) & CPUID6_ECX_APERFMPERF_CAPABILITY) )
-		__set_bit(X86_FEATURE_APERFMPERF, c->x86_capability);
-
 	/* AMD-defined flags: level 0x80000001 */
 	if (c->extended_cpuid_level >= 0x80000001)
 		cpuid(0x80000001, &tmp, &tmp,
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -11,7 +11,9 @@
 #include <xen/macros.h>
 
 #ifndef __ASSEMBLY__
+#include <asm/cpu-policy.h>
 #include <asm/cpuid.h>
+#include <xen/lib/x86/cpu-policy.h>
 #else
 #include <asm/cpufeatureset.h>
 #endif
@@ -121,7 +123,6 @@ static inline bool boot_cpu_has(unsigned
 #define CPUID6_EAX_HDC                               BIT(13, U)
 #define CPUID6_EAX_HWP_PECI                          BIT(16, U)
 #define CPUID6_EAX_HW_FEEDBACK                       BIT(19, U)
-#define CPUID6_ECX_APERFMPERF_CAPABILITY             BIT(0, U)
 
 /* CPUID level 0x00000001.edx */
 #define cpu_has_fpu             1
@@ -175,6 +176,9 @@ static inline bool boot_cpu_has(unsigned
 #define cpu_has_fma4            boot_cpu_has(X86_FEATURE_FMA4)
 #define cpu_has_tbm             boot_cpu_has(X86_FEATURE_TBM)
 
+/* CPUID level 0x00000006.ecx */
+#define cpu_has_aperfmperf      host_cpu_policy.basic.aperfmperf
+
 /* CPUID level 0x0000000D:1.eax */
 #define cpu_has_xsaveopt        boot_cpu_has(X86_FEATURE_XSAVEOPT)
 #define cpu_has_xsavec          boot_cpu_has(X86_FEATURE_XSAVEC)
@@ -292,7 +296,6 @@ static inline bool boot_cpu_has(unsigned
 /* Synthesized. */
 #define cpu_has_arch_perfmon    boot_cpu_has(X86_FEATURE_ARCH_PERFMON)
 #define cpu_has_cpuid_faulting  boot_cpu_has(X86_FEATURE_CPUID_FAULTING)
-#define cpu_has_aperfmperf      boot_cpu_has(X86_FEATURE_APERFMPERF)
 #define cpu_has_xen_lbr         boot_cpu_has(X86_FEATURE_XEN_LBR)
 #define cpu_has_xen_shstk       (IS_ENABLED(CONFIG_XEN_SHSTK) && \
                                  boot_cpu_has(X86_FEATURE_XEN_SHSTK))
--- a/xen/arch/x86/include/asm/cpufeatures.h
+++ b/xen/arch/x86/include/asm/cpufeatures.h
@@ -19,7 +19,7 @@ XEN_CPUFEATURE(TSC_RELIABLE,      X86_SY
 XEN_CPUFEATURE(XTOPOLOGY,         X86_SYNTH( 5)) /* cpu topology enum extensions */
 XEN_CPUFEATURE(CPUID_FAULTING,    X86_SYNTH( 6)) /* cpuid faulting */
 XEN_CPUFEATURE(XEN_FRED,          X86_SYNTH( 7)) /* Xen uses FRED */
-XEN_CPUFEATURE(APERFMPERF,        X86_SYNTH( 8)) /* APERFMPERF */
+/* Bit 8 unused */
 XEN_CPUFEATURE(MFENCE_RDTSC,      X86_SYNTH( 9)) /* MFENCE synchronizes RDTSC */
 XEN_CPUFEATURE(XEN_SMEP,          X86_SYNTH(10)) /* SMEP gets used by Xen itself */
 XEN_CPUFEATURE(XEN_SMAP,          X86_SYNTH(11)) /* SMAP gets used by Xen itself */



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:24:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:24:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170436.1495505 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVc8-0002Lk-Jk; Mon, 24 Nov 2025 12:24:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170436.1495505; Mon, 24 Nov 2025 12:24:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVc8-0002Ld-Gq; Mon, 24 Nov 2025 12:24:16 +0000
Received: by outflank-mailman (input) for mailman id 1170436;
 Mon, 24 Nov 2025 12:24:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNVc7-0001k4-Iw
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:24: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 7c7dd318-c930-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 13:24:13 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-477ba2c1ca2so44004825e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:24: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-477bf216ddasm190515955e9.0.2025.11.24.04.24.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04:24: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: 7c7dd318-c930-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763987053; x=1764591853; 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=l952tUPPdDWlCF9wpnrcqEjrz6Dm8KdXWLLA7A5cT8I=;
        b=CjBrV74+Ufep+6LCZRYIkiwXbdO6l9dqSb0s9X4g9s5Np25AYKSPGsixfNE3p5+fvF
         6GPXYVpBZ2XS92FNy+8UkBcOF99XaI5rOAWaTSll8tiepRKY89onRhbhmiCJ2IgfkmGm
         JTQcTzdhQfQh4HeWE+OcIPKrZ/kET7kSPxNJkj1nLvYgel3f5woHkX9p9/InGthasOVB
         +PkdxnN3ASlluJoQ1z6ajWICr6oWUwQ1eZOCWCPJeA2R5bp6+WzICtrMd99Y39okCMaG
         VCwYU2qo9eAsFXrma+kLZnUOq5ygUBDMkpC1M6ubgfrm7G83dv0tt1yVa7mPmIIU4wqj
         KkJQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987053; x=1764591853;
        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=l952tUPPdDWlCF9wpnrcqEjrz6Dm8KdXWLLA7A5cT8I=;
        b=nJrFNNRjOb7jPmHp+Rp/VLcTphSTT1L2/ojBt0IX2Qr+XDU+qDuxgzDuJvi0Nfrnak
         VMVip714ipBA5lmJmKt7V07z/35oYks+c96JUOrkvbIZzeHPFSfU83Zo7xY+HBVHE+gb
         WrwzFZ72fCA6/XTMLY6QG6AZKbSB7X452J+mkYSoBTb3/YCrIw1GEjbhHeKHAUxAJqnF
         rMIDD8gt2ZfrkcfZ7pQC1RE0AEM5x6MWw5TTiiiP81aTrDK+EkpOuVfNQ0OG8JCadxH7
         N1KtZapoW6QgmJAcyvhbDcy8ST4HPeaA92/ccbWsOcyiQGHYyNINXHGnIPP+zqrRgKuJ
         SbMQ==
X-Gm-Message-State: AOJu0Yy2VhPLrpHNw0hUEAV4frzORQAdeeRyvRiC16XODk3qNid1gjRL
	YVW3bwPkkgTjXqdfPZpNJZI8mF1ZUhSxod7wjaojjVBmtde78SdiCBnzBfazYCUAIX8/yOIKJiX
	u1rM=
X-Gm-Gg: ASbGncshOOiUZLOqb1foqO0zqygvOM2cnGWT9/fucr87hNE4mhpWjgnPFtfiTRJXPoH
	u6jgszQK8Wak9v1F1+HGtCnbsjGZgfdRuq8LylF1Kp00hLAp9vx1iiGkuOPTxE7iOu0zVHLMQY2
	XBXD+MFXAf9ngeOCnKVBLzO0o2v5NDXoqNH+xkgZ3M6Lq/zzLejVDfxkw9+C3UlfPJUTMJBPioW
	C+1/TuL0RH/lbMlUFu3GuvI2J1zalcY2y9U00C/usWpFv5GsEYOqWqePYTaCvscSzhfjFB4+bso
	leMzkGUzKjFGSh1o1jDJ0Hj4TmdKcH5Nzywwylez225Zy546nCTWj1ouSjJlimQrhMy7Zupt3HW
	Zpid6DH7ghduF9h90i3UinkKz5F/ekSyef0konCHeXAK+neWBjs/NVmhQPYcYiMTeyeh+qnkL72
	1r0bnP9T+lTv68siKhWJGJgDL1dDjy0DUw8dNl2Y8Y+ikxazzYqeNyD8sWotBClrNMUGpfqE8Vg
	mJY8te+0kRGRg==
X-Google-Smtp-Source: AGHT+IGVMfVJEik/q/1IhgYgIYQ7vTGl1DoVH8z7W7NvWvnBgPChKbJsX7iHs6/D6IODTe34syWCEA==
X-Received: by 2002:a05:600c:4f48:b0:46e:761b:e7ff with SMTP id 5b1f17b1804b1-477c01e02e5mr107226105e9.28.1763987052673;
        Mon, 24 Nov 2025 04:24:12 -0800 (PST)
Message-ID: <480b4638-31bf-472a-8c99-70d912bccd0f@suse.com>
Date: Mon, 24 Nov 2025 13:24:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 3/6] x86: rename ARAT feature flag
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: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@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: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Add a XEN infix, to properly distinguish it from the CPUID feature flag
(leaf 6 EAX bit 2).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Question is whether we still need opt_arat (and the command line option),
or whether we could go directly from the CPUID bit (overriding it to 1
for older AMD [and Hygon?] CPUs). Or whether to have opt_arat affect the
(host) CPU policy directly.

--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -109,7 +109,7 @@ void (*__read_mostly lapic_timer_on)(voi
 
 bool lapic_timer_init(void)
 {
-    if ( boot_cpu_has(X86_FEATURE_ARAT) )
+    if ( boot_cpu_has(X86_FEATURE_XEN_ARAT) )
     {
         lapic_timer_off = lapic_timer_nop;
         lapic_timer_on = lapic_timer_nop;
@@ -1463,7 +1463,7 @@ static void amd_cpuidle_init(struct acpi
 
         if ( !vendor_override )
         {
-            if ( !boot_cpu_has(X86_FEATURE_ARAT) )
+            if ( !boot_cpu_has(X86_FEATURE_XEN_ARAT) )
                 hpet_broadcast_init();
 
             if ( !lapic_timer_init() )
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -1355,7 +1355,7 @@ static void cf_check init_amd(struct cpu
 	 * running in deep C states.
 	 */
 	if ( opt_arat && c->x86 > 0x11 )
-		__set_bit(X86_FEATURE_ARAT, c->x86_capability);
+		__set_bit(X86_FEATURE_XEN_ARAT, c->x86_capability);
 
 	/*
 	 * Prior to Family 0x14, perf counters are not reset during warm reboot.
--- a/xen/arch/x86/cpu/hygon.c
+++ b/xen/arch/x86/cpu/hygon.c
@@ -76,7 +76,7 @@ static void cf_check init_hygon(struct c
 
 	/* Hygon processors have APIC timer running in deep C states. */
 	if (opt_arat)
-		__set_bit(X86_FEATURE_ARAT, c->x86_capability);
+		__set_bit(X86_FEATURE_XEN_ARAT, c->x86_capability);
 
 	if (cpu_has(c, X86_FEATURE_EFRO)) {
 		rdmsrl(MSR_K8_HWCR, value);
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -668,7 +668,7 @@ static void cf_check init_intel(struct c
 	if ( opt_arat &&
 	     ( c->cpuid_level >= 0x00000006 ) &&
 	     ( cpuid_eax(0x00000006) & (1u<<2) ) )
-		__set_bit(X86_FEATURE_ARAT, c->x86_capability);
+		__set_bit(X86_FEATURE_XEN_ARAT, c->x86_capability);
 
 	if ((opt_cpu_info && !(c->apicid & (c->x86_num_siblings - 1))) ||
 	    c == &boot_cpu_data )
--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -1633,7 +1633,7 @@ static int __init mwait_idle_probe(void)
 	icpu = id->driver_data;
 	cpuidle_state_table = icpu->state_table;
 
-	if (boot_cpu_has(X86_FEATURE_ARAT))
+	if (boot_cpu_has(X86_FEATURE_XEN_ARAT))
 		lapic_timer_reliable_states = LAPIC_TIMER_ALWAYS_RELIABLE;
 
 	pr_debug(PREFIX "v" MWAIT_IDLE_VERSION " model %#x\n",
@@ -1792,7 +1792,7 @@ int __init mwait_idle_init(struct notifi
 		return -ENODEV;
 
 	err = mwait_idle_probe();
-	if (!err && !boot_cpu_has(X86_FEATURE_ARAT)) {
+	if (!err && !boot_cpu_has(X86_FEATURE_XEN_ARAT)) {
 		hpet_broadcast_init();
 		if (xen_cpuidle < 0 && !hpet_broadcast_is_available())
 			err = -ENODEV;
--- a/xen/arch/x86/include/asm/cpufeatures.h
+++ b/xen/arch/x86/include/asm/cpufeatures.h
@@ -13,7 +13,7 @@
 /* Synthetic features */
 XEN_CPUFEATURE(CONSTANT_TSC,      X86_SYNTH( 0)) /* TSC ticks at a constant rate */
 XEN_CPUFEATURE(NONSTOP_TSC,       X86_SYNTH( 1)) /* TSC does not stop in C states */
-XEN_CPUFEATURE(ARAT,              X86_SYNTH( 2)) /* Always running APIC timer */
+XEN_CPUFEATURE(XEN_ARAT,          X86_SYNTH( 2)) /* Xen may utilize always running APIC timer */
 XEN_CPUFEATURE(ARCH_PERFMON,      X86_SYNTH( 3)) /* Intel Architectural PerfMon */
 XEN_CPUFEATURE(TSC_RELIABLE,      X86_SYNTH( 4)) /* TSC is known to be reliable */
 XEN_CPUFEATURE(XTOPOLOGY,         X86_SYNTH( 5)) /* cpu topology enum extensions */
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -2642,7 +2642,7 @@ static int _disable_pit_irq(bool init)
      * XXX dom0 may rely on RTC interrupt delivery, so only enable
      * hpet_broadcast if FSB mode available or if force_hpet_broadcast.
      */
-    if ( cpuidle_using_deep_cstate() && !boot_cpu_has(X86_FEATURE_ARAT) )
+    if ( cpuidle_using_deep_cstate() && !boot_cpu_has(X86_FEATURE_XEN_ARAT) )
     {
         init ? hpet_broadcast_init() : hpet_broadcast_resume();
         if ( !hpet_broadcast_is_available() )



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:24:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:24:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170444.1495515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVcT-0002tm-Sf; Mon, 24 Nov 2025 12:24:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170444.1495515; Mon, 24 Nov 2025 12:24: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 1vNVcT-0002rs-OY; Mon, 24 Nov 2025 12:24:37 +0000
Received: by outflank-mailman (input) for mailman id 1170444;
 Mon, 24 Nov 2025 12:24: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNVcT-0000wa-41
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:24:37 +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 8a3bdcfb-c930-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:24:36 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso32672085e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:24: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-42cb7f2e556sm27720292f8f.5.2025.11.24.04.24.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04:24: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: 8a3bdcfb-c930-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763987076; x=1764591876; 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=9yIW4G90REKYw1NybA2TBgWfxi68QMrBUK7Kmuc3ASs=;
        b=ORqA0Z2RVGGvkSwVbedbb/ikff+bZKjrarW1y1N+wEav21jxybqffsgSdNhI5yCtWg
         od6CmVQnm+mG85R5HqA9PqKtgqtusYnMLahraZA/i78ZJj6cJ8DO8ztzbcVBARVlC+Bx
         jASeclJm0+OfXpxRLZF0DKhkeBo3FxHuExhmUtmlyqu+iIKAnI8LFxIk3WV0LBs8fy5q
         XLr9CiGxL+J9Hb6LBN5RzsTmke8GgwD6tIdyoSp/hev1lL6/MxP2qwFlfKDuJHtSxKLe
         blST03fzAUIZPRQz0Zp4FgnHbDXjDJc1GGWjVIz95dqXIKDKKNwXqDRAzIziguweJeA3
         jiQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987076; x=1764591876;
        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=9yIW4G90REKYw1NybA2TBgWfxi68QMrBUK7Kmuc3ASs=;
        b=WLAZqfzSA5/6rG6f9dHj5y89/Q70VPgA60iUWDCUCxlTeBIjnLVh1J+PDUjDYXHpCM
         8akSeTpyCPEkFpt3krlZ/lmB4OJgOaTjXOd5EVUNS2Jah1XNki1vR3WcDVK24H+o4m7W
         hS3iq9sxMM47JrMD2U8IyAVUfXIcgwd0zP8dOHguN4ek22Mkh0W6LH3R0N2QT/wZi7oG
         NeCMQLkk4SOlujRLde2VvPvqFBtncSlsk+d3e8+hrWtgl2+qYWERBFIJjY6m7PyKGIoN
         KCyrA8vwJNghCAWjoQyQqNS8H2SxGfRxn7rC173hGiIyFEzwkukTjKvZdv99roJFDwgf
         xN5g==
X-Gm-Message-State: AOJu0YyuTD3yy04ftW4vFohRxBMq/sTue3U05gqc0wJlGnwcsds1ZkWE
	iNe5G1IYMM4+rWxLfjA+UoN77mFzYA6FN3sBCrZI4xQ0NVCquEf/bwrTJ8g/EvThaTRElD4rqSE
	1YaY=
X-Gm-Gg: ASbGncvct5X/ojR/0sLUiU63tQrB6B6F35miHEpMXKI3QrSJJSN6LNF50msvKf5m/VY
	HlU8Irqza9XPQ0JpakYtwGDwkCm/+SRNLFIuCRuLNhnru3k0miW/IKqtmYdki/JEo+BYb8JLlPW
	3sIQO+GA5v6GyoJyNXyvJnQTLSLkyyqsKMk8Eaz3On0/u6srOccOYkf/nyrJXcetgOO2rnGKUdH
	za2qaEvFg3IQL7TIg3lrgFvpSEbIHZUNb/XKUszTVHCRwxnaFZviagkkV6w+JkCWilbG2dFFd92
	yxxGyoDg2DgdmStxDIJWLADc17hl31vY6cxQTheYasMsIuFd53SQJK1FmfuU+ITvE0xYnCxHDow
	KilAdKcrT6FH6iWbQaWqB8TpmOqffXc4e4ELLdI28+T6TxMy06XDICKHBdYM9RwW5FRxAGF/gQT
	ijIUkWZWAA++4nXNl7hZjvkn6zvh7z/+XgRGF5SqhEFhNJhrOWZ35Tod45FKbdz2w6lhTivoLG4
	naoHrVq3jMeDA==
X-Google-Smtp-Source: AGHT+IH41QTQw2pCn1UpNPVpa4BHxFAXWv91/AGuQ7Ll8pTEN8Zse4uO2jhH1mnG0Rsd32WP4RRn+A==
X-Received: by 2002:a05:600c:4515:b0:477:7a5c:6a8e with SMTP id 5b1f17b1804b1-477c0513800mr102536885e9.9.1763987075752;
        Mon, 24 Nov 2025 04:24:35 -0800 (PST)
Message-ID: <bb5fef0f-a2a9-49ab-97bc-871486a44f89@suse.com>
Date: Mon, 24 Nov 2025 13:24:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 4/6] x86/Intel: use host CPU policy for ARAT checking
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: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@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: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

There's no need to invoke CPUID yet another time. However, as the host CPU
policy is set up only shortly after init_intel() ran on the BSP, defer the
logic to a pre-SMP initcall. This can't be (a new) one in cpu/intel.c
though, as that's linked after acpi/cpu_idle.c (which is where we already
need the feature set). Since opt_arat is local to the cpu/ subtree,
introduce a new Intel-specific helper to hold the code needed.

Further, as we assume symmetry anyway, use setup_force_cpu_cap() and hence
limit the checking to the boot CPU.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
The need to move where cpu_has_arat is checked would go away if we did
away with opt_arat (as mentioned in the previous patch), and hence could
use cpu_has_arat directly where right now XEN_ARAT is checked.

--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -1666,6 +1666,9 @@ static int __init cf_check cpuidle_presm
 {
     void *cpu = (void *)(long)smp_processor_id();
 
+    if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
+        intel_init_arat();
+
     if ( !xen_cpuidle )
         return 0;
 
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -665,10 +665,6 @@ static void cf_check init_intel(struct c
 		__set_bit(X86_FEATURE_NONSTOP_TSC, c->x86_capability);
 		__set_bit(X86_FEATURE_TSC_RELIABLE, c->x86_capability);
 	}
-	if ( opt_arat &&
-	     ( c->cpuid_level >= 0x00000006 ) &&
-	     ( cpuid_eax(0x00000006) & (1u<<2) ) )
-		__set_bit(X86_FEATURE_XEN_ARAT, c->x86_capability);
 
 	if ((opt_cpu_info && !(c->apicid & (c->x86_num_siblings - 1))) ||
 	    c == &boot_cpu_data )
@@ -690,3 +686,9 @@ const struct cpu_dev __initconst_cf_clob
 	.c_early_init	= early_init_intel,
 	.c_init		= init_intel,
 };
+
+void __init intel_init_arat(void)
+{
+    if ( opt_arat && cpu_has_arat )
+        setup_force_cpu_cap(X86_FEATURE_XEN_ARAT);
+}
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -176,6 +176,9 @@ static inline bool boot_cpu_has(unsigned
 #define cpu_has_fma4            boot_cpu_has(X86_FEATURE_FMA4)
 #define cpu_has_tbm             boot_cpu_has(X86_FEATURE_TBM)
 
+/* CPUID level 0x00000006.eax */
+#define cpu_has_arat            host_cpu_policy.basic.arat
+
 /* CPUID level 0x00000006.ecx */
 #define cpu_has_aperfmperf      host_cpu_policy.basic.aperfmperf
 
--- a/xen/arch/x86/include/asm/processor.h
+++ b/xen/arch/x86/include/asm/processor.h
@@ -102,6 +102,7 @@ extern void setup_force_cpu_cap(unsigned
 extern bool is_forced_cpu_cap(unsigned int cap);
 extern void print_cpu_info(unsigned int cpu);
 extern void init_intel_cacheinfo(struct cpuinfo_x86 *c);
+extern void intel_init_arat(void);
 
 #define cpu_to_core(_cpu)   (cpu_data[_cpu].cpu_core_id)
 #define cpu_to_socket(_cpu) (cpu_data[_cpu].phys_proc_id)



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:28:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:28:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170460.1495524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVfz-0003bu-9I; Mon, 24 Nov 2025 12:28:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170460.1495524; Mon, 24 Nov 2025 12:28:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVfz-0003bn-6J; Mon, 24 Nov 2025 12:28:15 +0000
Received: by outflank-mailman (input) for mailman id 1170460;
 Mon, 24 Nov 2025 12:28:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNVfx-0003bh-Tz
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:28:13 +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 0b2fafed-c931-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:28:12 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-47778b23f64so22271515e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:28: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
 5b1f17b1804b1-477bf1e872esm193205815e9.5.2025.11.24.04.28.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04:28: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: 0b2fafed-c931-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763987292; x=1764592092; 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=a5xACJNstFCx0OCIQA97Vmzs5Dhxf3koo9EBA7XvBas=;
        b=AjiChrSTEXV943TuK/69T4cm6EDuVKodEh7WQ2ns32Pj08sEmqEFdW0ZJRU/8JSSk5
         4g3N+CDweibHcKwCEVkLIsgCtAZv0gQIP+15IBweaPTyl84o31YCJGKB1FslbbQ3BFWF
         ly6eAjKKQ14ZbfgaDXaEOSee4p35elp1oIcPa79Fz/l4RMja9zJtXCJRpM+lsh7Q0tWL
         aTq925ZLGMscY8JlUdj8ZoOriogZkxkjqkpg0mxRzfHc+VZgf9Xpz3fttOEeEiukrTJy
         2PPEMaFJ4EpfJIz6yLjGLyzRX2yPH9xc8CVvHNqm8mqZ8f77TrBirKgsfYajFxSKp+X/
         boOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987292; x=1764592092;
        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=a5xACJNstFCx0OCIQA97Vmzs5Dhxf3koo9EBA7XvBas=;
        b=fH6U8/RxduzHYhmC6v8/dy2tFp8z6Jnyqozx+eFr7qzEIGlUJVhFeh0v0Isaad7iL7
         XEvc8U8ldMgyatlY1RZGyPQObWT6h3jdailE1vQ5yni7B39wl4ZdTSeZD0v/38/qSmfJ
         +DmmcvOTn6iKjFcOR4hr3dYF4e9GqF/Peibm99KyOzk9qAMGgziQhLwanYrXBE6M4dcK
         BW+p0D6eieTrWeGVPbkEg02GlfQnug4J26ENNgrg+VRnMbXBFlFAzBWLLdgMlErEZmg3
         7gAv3KZg2kF9alK6xPnUYSYbn2Ywum1Il15dwOWIRtR8x+yse4Pracks7vJbBB6TbQ3E
         1Jfg==
X-Gm-Message-State: AOJu0Yx2DEFi29h+RsL1FqGSJX9y2Glz9hQY9nbWde/3RLMjAEJtfuaJ
	GasiT8qBIDiQUJ9AELwCbXL185DlZV+Wn7jKZj1GEdxVH58YDF8SV4Av6M9tjnLymKn8wla6tOw
	QKw8=
X-Gm-Gg: ASbGncsDGpWn/V2lYxkGE4rlkdV0JVkdcbe4JU3UGNIyY1lMw4Bi2bFgiy0JTGuMxIu
	+RDKK3w23gNthaDNrde7ZctI+RyneLvUfYeJri5arnoQLYmU/ps8PwPZhDUX+tl1VWdCKbFQRKw
	Zw9ovfIXBUdGo20tIcpfQlHjdyB6zopcYrJIjX71Db9z2p5yi5kce3B6N7p00R0neboPBEouCuX
	JS6mACIxO7WJfC0PiPvb7Iqt2wP1dfpeDkFBbsKOcgkPS31JUvRLzSArY/HtyBtitCcauk53TTW
	SXMK81a713DN/z0/PNtVvvJkyS1iRaM3AUM1N936fN2ZAbWEZnMNM8oimUqdW1sqlGJZIxRZcRz
	quUw7LzZN4PEsIKi61Eilp1m7PmoS29g/KkTZn/mn6tF+k3duCgYTQPugHYinQ+CFaYBQx23pLi
	9Bevf7syIbgeW5KjnYKZOC5yx3vzHScTzCHLqMl9WeUnq+ncHDlcJyouETA21lDmYs8WXmU+I96
	uU9mYNXU4LRYA==
X-Google-Smtp-Source: AGHT+IEuvsjzw9/2J2OSgS+2HUecvgFI0qzXWeBmdXx9dMgwhKBroUi9Bv3v/DHRFB0W2J9yiyXe9w==
X-Received: by 2002:a05:600c:c492:b0:477:8985:4039 with SMTP id 5b1f17b1804b1-477c1143024mr110303345e9.17.1763987292141;
        Mon, 24 Nov 2025 04:28:12 -0800 (PST)
Message-ID: <1c1a8995-4d37-4680-8a18-2286732bd7f0@suse.com>
Date: Mon, 24 Nov 2025 13:28:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2 4/4] x86: direct APIC vector adjustments
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The setting up of such vectors really is a boot-time-only thing. vPMU also
doesn't need any vector when it's no in use anyway (which is the default).
The first patch also is a pretty much unrelated change to tidy things up
first.

1: vPMU: move APIC ack past the handling of the interrupt
2: MCE: restrict allocation of thermal and CMCI vector to BSP
3: IRQ: direct-APIC-vector setting is now init-only
4: vPMU: don't statically reserve the interrupt vector

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:28:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:28:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170470.1495535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVgb-00049G-M8; Mon, 24 Nov 2025 12:28:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170470.1495535; Mon, 24 Nov 2025 12: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 1vNVgb-000497-Hw; Mon, 24 Nov 2025 12:28:53 +0000
Received: by outflank-mailman (input) for mailman id 1170470;
 Mon, 24 Nov 2025 12:28: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNVgZ-00043K-Nz
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:28:51 +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 213f84fe-c931-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 13:28:49 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-477619f8ae5so23797225e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04: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
 ffacd0b85a97d-42cb7f2e556sm27738994f8f.5.2025.11.24.04.28.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04:28: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: 213f84fe-c931-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763987329; x=1764592129; 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=a5xACJNstFCx0OCIQA97Vmzs5Dhxf3koo9EBA7XvBas=;
        b=Ag8BK6gC3RE7c4hUvxRtopztJRc39egqVOuYqu4Mf9ukUP/g3cANc1L9Gw2KxmFeP6
         CDwB4MSXKT99L//Mj2dObywXm2CfqJc/NfnCtp7vkEDqbKpCtjXQcXTCAMta5U4gn+NC
         jteQQ7Zv5f+grFjbsG+8BglwoBm5770wYrZdcIFbVxKNygw5fbWWlL+pTCxD4iKFklSV
         1jxnEOHQCf3w3IUGbUhdQENxbPyIWNdBzTk7tGk/54Y/laI5GfCvMBwGgLKZGdHNbPEv
         VzyN/6H8uR8v4UAp1krVEuwr1hEbjCVuQGxAKkZK2Tg9gPH7ZWmXnZhg6UIqRypvwcrw
         KntQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987329; x=1764592129;
        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=a5xACJNstFCx0OCIQA97Vmzs5Dhxf3koo9EBA7XvBas=;
        b=p9E+DUkXNYtHk97qeBsCbvVkanGeVLaBGB41Pi40HVfse2OMWcnTscttW/Kr3Fs5Dy
         I8k5w9ppS+TdwhvfK04GCbBWWj4aVvltYAcJX/t1qV99NDAD16CDou+4EJzUg5pmBgiq
         jIO68SLxiimCcShwLLZ6Vm83TVT8nFniayTbbMEDMXqcr5jIS+UCE8FNW03n/HTA/1m4
         aHNo7jN8WKMeCdRPHV3DVLSYGre9yyhDTgySWi6YcufiSh6lxNTm7sHWINr64aGIm9X0
         l1xg1Ul/59aXDrdJP/JkZHpPRdx8FyGkVn6FE/G5M2vNDi9aUqjvWihaYfucNE8uNk+V
         Q9og==
X-Gm-Message-State: AOJu0YwnbWwps/07lB7ETVMKAlxqcwKbr9tPtm76NWXHuighDGEujAM3
	clb+df6dt002cqHp2plqHZC2vacrD5keSFv/+Hpa48c6Kk2dXcbQ/444FQTpZFPYweSU0ZhNHaw
	CCOE=
X-Gm-Gg: ASbGncvoPmdOX5Zav2v21mooHWoerU61Wu9gcEOeC9CEXVlZDtVcqgn4Iiw7XtecpsX
	Unm2x4O2JWFmhNLjTnI+ICpaS8PC7lfBQ9tKCBlCQegRUrkwlkLaXXyX9pNl1b6SXgszZMQ0hy0
	tg4RpUPA6xV/0wcxfqcFHIOZnkuprifZ1qmnAKECwZpxT9zXFUwC8LfumEpPVDHcZZAyU71gVtC
	t3pZ0SXukDkDgFJ/za8EaZKTtPwktpJg9V0doKsZCwweOzMxqPqSuX6fMW2iXqCln6TSOCPup7J
	xGTbOiSy0ZJ6xyqMgdMeuL4znUU6J83mIPodwzzk2Nbuzsm8dqlWF4qe23KnqQeMUQ4GFZKORsZ
	iUKME95cIvrACkn3Pv4zce3yElHx3Sq49+5PE6nwVi73S167ZakNoGMSWIdgC/aW4UvLhZanr+w
	49uMFc3exzn2Dm27zRoucl9QP27gYLd4SMPVp4u28caimWGbIhzXUbQPdIVD6F5enWqIXQTDZ/B
	pzEu7BxNlckqA==
X-Google-Smtp-Source: AGHT+IFLtACatUe5qYGLrDbiHY/30rFJibASKXF8C/xmc9XEjrZ56+o/IjiuRVFHoBXgy/orOSeJYA==
X-Received: by 2002:a05:600c:3b09:b0:477:a3f9:fda5 with SMTP id 5b1f17b1804b1-477c016e425mr87880845e9.9.1763987329213;
        Mon, 24 Nov 2025 04:28:49 -0800 (PST)
Message-ID: <5ac2e9b1-81f2-41d9-8f05-d546a49c43a7@suse.com>
Date: Mon, 24 Nov 2025 13:28:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2 0/4] x86: direct APIC vector adjustments
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The setting up of such vectors really is a boot-time-only thing. vPMU also
doesn't need any vector when it's no in use anyway (which is the default).
The first patch also is a pretty much unrelated change to tidy things up
first.

1: vPMU: move APIC ack past the handling of the interrupt
2: MCE: restrict allocation of thermal and CMCI vector to BSP
3: IRQ: direct-APIC-vector setting is now init-only
4: vPMU: don't statically reserve the interrupt vector

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:29:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:29:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170481.1495544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVhJ-0004ef-SV; Mon, 24 Nov 2025 12:29:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170481.1495544; Mon, 24 Nov 2025 12:29: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 1vNVhJ-0004eY-Pz; Mon, 24 Nov 2025 12:29:37 +0000
Received: by outflank-mailman (input) for mailman id 1170481;
 Mon, 24 Nov 2025 12:29: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNVhH-0004cg-Ua
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:29:35 +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 3c6f57b1-c931-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:29:35 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso32714165e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:29: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-477bf1e86b3sm227919165e9.6.2025.11.24.04.29.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04:29: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: 3c6f57b1-c931-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763987375; x=1764592175; 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=Uq8T8Ut7nBFs5m+qS+nnXIlDrchpr4rx4FlUw159pzQ=;
        b=Dj+guRVOYaQ9bQKHQVJoOEWdDghkgBJkpMQfhbocHbovraVH+YBjoCaWVtESCIN+Vp
         Gto58n2Is6sLuTGJ6e+levYUSZznrtEspDc6Ws8jZWRovJmQGyFjK5KLq8a9ix39fTqo
         Y2gzK9H4PAkG0eSXtE3dxzTwKr57dmriUO65SDeQutN10rFothdTxGvKC21RdEDN/sZJ
         Wy4KDBXEGtWEwxbCjC/h7qnL5CZPzQyQAhjQ+oosxDzg2OTmHhJuVe9bnBmSfEJFed8y
         zzaRiSq+NNkdpdG4XIf5h9rzUrweoMlpiQKJaNtbhCrkWHjgsGZcJH+77C7k3hSxaOHN
         sPzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987375; x=1764592175;
        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=Uq8T8Ut7nBFs5m+qS+nnXIlDrchpr4rx4FlUw159pzQ=;
        b=Q46D65ovc3/lq73letOmXdnex4i/VOqNhVeZroXymAmAVUhkGDPayrC6EPTkHzSMBi
         +Moj/YBG/Ce/PrCGVicfkGr+Hq+zlsFORnHNiaduYMIJRpZpAn2h2RwQyn10NipTQN5c
         z44fBFTchlSLe8/dUmRtkqx9yBOUlq4hflxvqaWTBryk6Tq/F2sPjhwKXFtlum5NlnCw
         KJ3A856GAtIPixxTbwUT8iAGnx3XYJ9aOar2NApj9gQx1GIiDGWxiinVVxppqX5fsVee
         3Bc1UaFV4sHn7/Ej8gawPZwdOOm1D9nYKFl9C4hq4DwygA1LHz8alZ/JElZF/XMHP5Ku
         Dc6A==
X-Gm-Message-State: AOJu0YwLAibqOjX+elPPJUIEUM+EPfYtIQci7bYFzryhQTml4s0lKpt/
	J2QhRsFAh8ge2/myerHkuqWwBBJLU1Ddej3HNCpeP7UthILEc/N3fe2Rtsc3Hezw5SnijHEhpjx
	Luuw=
X-Gm-Gg: ASbGncvWP2pU0hi2JAqpKXkDYpU9m7q6c8abFrJ23MGz8Ypn2gK0PspXg2zhtG5Roaw
	UkcwoV9MmjKUj593Zc20Oj3/KmRy3YclHnljgYwQAx4WZ1Qmbv8VNP7ZpFS+tc0YbM0ya3ujiuH
	ebOV/x5M/1715CSqjLz+5P2T60hmow1NMD4ZIseCfylbZxq9EYxBEvVJYi7cmMxXRfWsZ1Z3vJ0
	NLAiGFLHrIB0J4nTnBm0BfKVJsK9u+QzJWZ6lFwYUWt11YPDWK9ubzBgXSLkANY3fhxMkhi1dLi
	X4rtAP1SjqjcDR5cv6hvRHFDHEr3Jeki6f6pgR9GMCgFKGOO4zIVBcLZgR4duuDg7JE+NKcJnUq
	5gccx+YEsPMF1T1l2Co6NNjQTMbwX4K5bWm9icptH++1gC8DsJwZQACL5Cjg4uS5GVWWecgf2XI
	eO3Xibm3URF71heefGXUjf0QBY47eXcTD0JLPWR5UvPLurR44HCyXO6yN5fQK/rxpOAFIK6gEI3
	hQ=
X-Google-Smtp-Source: AGHT+IGwloRQ+kF3xPZB5o2a3bfC7PgT7rI3XJAc58AlNPaD713BOvTDDEDqeqGNoHEIaHs6CrLuNA==
X-Received: by 2002:a05:600c:642:b0:477:9a61:fd06 with SMTP id 5b1f17b1804b1-477b9ead384mr94298145e9.8.1763987374786;
        Mon, 24 Nov 2025 04:29:34 -0800 (PST)
Message-ID: <96e8cf62-987e-45fb-9463-8a3069d346f4@suse.com>
Date: Mon, 24 Nov 2025 13:29:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 1/4] x86/vPMU: move APIC ack past the handling of the
 interrupt
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: <5ac2e9b1-81f2-41d9-8f05-d546a49c43a7@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: <5ac2e9b1-81f2-41d9-8f05-d546a49c43a7@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

While benign as long as it's using a direct-APIC-vector (handlers for
which are called with IRQs off), follow the more usual pattern of ack-ing
the IRQ only after handling it.

Requested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: New.

--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -1319,8 +1319,8 @@ static void cf_check error_interrupt(voi
 
 static void cf_check pmu_interrupt(void)
 {
-    ack_APIC_irq();
     vpmu_do_interrupt();
+    ack_APIC_irq();
 }
 
 void __init apic_intr_init(void)



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:30:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:30:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170485.1495554 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVhg-00054S-52; Mon, 24 Nov 2025 12:30:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170485.1495554; Mon, 24 Nov 2025 12:30:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVhg-00054L-23; Mon, 24 Nov 2025 12:30:00 +0000
Received: by outflank-mailman (input) for mailman id 1170485;
 Mon, 24 Nov 2025 12:29: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNVhf-00053p-AD
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:29:59 +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 4954ad95-c931-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 13:29:57 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-42b3c5defb2so2741052f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:29: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-42cb7f2e574sm28027049f8f.3.2025.11.24.04.29.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04:29: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: 4954ad95-c931-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763987396; x=1764592196; 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=loYtzp0ab1X2xMw5ZpAYNU+RwEo6LK1Qt3iW0KjPiTQ=;
        b=eIQjI7WBHz797RDOC0nzXmerMZOw5qsBWpKllMT83q67Bc4QFJ1iQgw6jMcEBg3dM7
         YgIJZCGB2e3TS1lLjafNvir7xxEypx7VF3F8tjK4wN6n+2zcJNLhRNo8DluHtyUnc8Z+
         L5r35nlB93fSbV4y2gBZ8BNw2xvIizl2TfuGi2iPpNby6S+ZwAJOsr0gR6f24KdhfAvN
         eqOpvQOG1sBcvj2i7SZJDfDaW1yu45uk8ZU61uvfLQ3ayOIukooqRne/2dzP7MHkZAaJ
         Nlw4dbBcBh3LVNtbvFfgNmhTB9k6nlq6vLTtI2HguUfpWi2rP5amxNKfmbhP/pu+Ohth
         fBHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987396; x=1764592196;
        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=loYtzp0ab1X2xMw5ZpAYNU+RwEo6LK1Qt3iW0KjPiTQ=;
        b=u36EzG+GD1zK9c/cKhjg5e9nQaNaD4SSmexsPEWyzXeN8tyKDSq9gISwH1kLcQQXYZ
         YDnm7mlDPxW2D6wJDun7vkdACmRv1WJr79xzvyG4NlU3pPSPk36exCGfJ8ANP/cCdXM6
         eDraAGCBESmEBgnJwTbJxbRZt8/8KQY43E4NW7X1sVQLu6BmoIfrxRA+yBkxqOQklqka
         bCX+7w9rVnvoLXBxiuSq3xcaRZD18FAUyyKd9sWQ7AEIcKtj0aThD+0nE8b3gIz9NcqH
         aEf3QWQpy8vLr7GGbUqMk7WTyA7AH0RcWEN9JnUH5twhPm8tq/gAOl2OVVI7DVfwu2YT
         D5ow==
X-Gm-Message-State: AOJu0YySx/WHvZ0+zG9a9Pbxwg9AaPTRnTICgqa/yDMWsA443qHLbu7s
	nrA3NS5Mmi2r9WzwP5dqsNyTMu8xfJ6uewY/C+0JpO0aGRC1nlttapwF2feqfjJPimnLAhjm2fM
	LBHQ=
X-Gm-Gg: ASbGncsQmXhsi9/hY/Av1n4Btu1onSbVBmw/fXTvTd3HLeUGCnVWREJaIXUITSO1IM9
	/uZjoROlzaLjNAkuzqqIieYkLpiqzYG00ODbSG5oteTApcjGRtBNayha0U7Ne065sKMUyM9+I8t
	1c8hOGNgvLNJqoLst+/WoxoqBZ2VjjnKS4WQLVTMPzWpLQAn7GdMivSSACW6V800t2Df78ve5Ee
	vYy/EZLSFbsMVWxMMFgzOcxIaChTH0v2+DifKg7MZ1iKwypdAexrCoMgkIuvB5lhgXeQIsCRfaP
	Hh8ZC7I8v6i3hvxJ3ov7GTfRi10tyepK86Ptz7EvIRIvfYCFOV/kYkkuH9G4sXzmue3nV1NiB5o
	r0bp6Yi8qIH6+U0PwzejY2n55wGdn7LYwLxClDvzfvGGVxqw980BwSxwBv+3LaAOB9zsMdmFu9m
	cockKUE5xZ1UnzHokCHuI8d0MfqLNFDNYMRzg5j+QTUC6z58guQYDfB1BN35LwQztJzmUr8rth+
	58=
X-Google-Smtp-Source: AGHT+IGUo5krvOHlWHuUrqWM84LfzTSr6Moq/i3I5gjCmPghpd0wOiBERWwyIY2Iuav9MBJxMqbuuQ==
X-Received: by 2002:a05:6000:2585:b0:42b:2ee0:569f with SMTP id ffacd0b85a97d-42cc1d0cf1emr13037823f8f.33.1763987396439;
        Mon, 24 Nov 2025 04:29:56 -0800 (PST)
Message-ID: <f43e5d5c-c095-43c9-814a-ca063c503d3f@suse.com>
Date: Mon, 24 Nov 2025 13:29:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 2/4] x86/MCE: restrict allocation of thermal and CMCI
 vector to BSP
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: <5ac2e9b1-81f2-41d9-8f05-d546a49c43a7@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: <5ac2e9b1-81f2-41d9-8f05-d546a49c43a7@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

There's no need to do this for every AP; just do it once when setting up
the BSP. Then both vector variables can also validly become ro-after-init.

While touching intel_init_thermal(), constify its 1st parameter, which
in turn requires touching intel_thermal_supported() as well.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
This contextually (but not functionally) collides with "x86/MCE: adjust S3
resume handling".

--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -37,7 +37,7 @@ bool is_mc_panic;
 DEFINE_PER_CPU_READ_MOSTLY(unsigned int, nr_mce_banks);
 unsigned int __read_mostly firstbank;
 unsigned int __read_mostly ppin_msr;
-uint8_t __read_mostly cmci_apic_vector;
+uint8_t __ro_after_init cmci_apic_vector;
 bool __read_mostly cmci_support;
 
 /* If mce_force_broadcast == 1, lmce_support will be disabled forcibly. */
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -87,7 +87,7 @@ static void cf_check intel_thermal_inter
 }
 
 /* Thermal monitoring depends on APIC, ACPI and clock modulation */
-static bool intel_thermal_supported(struct cpuinfo_x86 *c)
+static bool intel_thermal_supported(const struct cpuinfo_x86 *c)
 {
     if ( !cpu_has_apic )
         return false;
@@ -110,13 +110,13 @@ static void __init mcheck_intel_therm_in
 }
 
 /* P4/Xeon Thermal regulation detect and init */
-static void intel_init_thermal(struct cpuinfo_x86 *c)
+static void intel_init_thermal(const struct cpuinfo_x86 *c, bool bsp)
 {
     uint64_t msr_content;
     uint32_t val;
     int tm2 = 0;
     unsigned int cpu = smp_processor_id();
-    static uint8_t thermal_apic_vector;
+    static uint8_t __ro_after_init thermal_apic_vector;
 
     if ( !intel_thermal_supported(c) )
         return; /* -ENODEV */
@@ -160,7 +160,8 @@ static void intel_init_thermal(struct cp
         return; /* -EBUSY */
     }
 
-    alloc_direct_apic_vector(&thermal_apic_vector, intel_thermal_interrupt);
+    if ( bsp )
+        alloc_direct_apic_vector(&thermal_apic_vector, intel_thermal_interrupt);
 
     /* The temperature transition interrupt handler setup */
     val = thermal_apic_vector;    /* our delivery vector */
@@ -667,7 +668,7 @@ static void cf_check cmci_interrupt(void
         mctelem_dismiss(mctc);
 }
 
-static void intel_init_cmci(struct cpuinfo_x86 *c)
+static void intel_init_cmci(struct cpuinfo_x86 *c, bool bsp)
 {
     u32 l, apic;
     int cpu = smp_processor_id();
@@ -687,7 +688,8 @@ static void intel_init_cmci(struct cpuin
         return;
     }
 
-    alloc_direct_apic_vector(&cmci_apic_vector, cmci_interrupt);
+    if ( bsp )
+        alloc_direct_apic_vector(&cmci_apic_vector, cmci_interrupt);
 
     apic = cmci_apic_vector;
     apic |= (APIC_DM_FIXED | APIC_LVT_MASKED);
@@ -993,9 +995,9 @@ enum mcheck_type intel_mcheck_init(struc
 
     intel_init_mce(bsp);
 
-    intel_init_cmci(c);
+    intel_init_cmci(c, bsp);
 
-    intel_init_thermal(c);
+    intel_init_thermal(c, bsp);
 
     intel_init_ppin(c);
 



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:30:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:30:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170494.1495565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVi1-0006W6-Cd; Mon, 24 Nov 2025 12:30:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170494.1495565; Mon, 24 Nov 2025 12:30: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 1vNVi1-0006Vv-A0; Mon, 24 Nov 2025 12:30:21 +0000
Received: by outflank-mailman (input) for mailman id 1170494;
 Mon, 24 Nov 2025 12:30: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNVi0-00053p-A9
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:30: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 56099bda-c931-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 13:30:18 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-477619f8ae5so23805535e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:30: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-477bf1e86b3sm227956435e9.6.2025.11.24.04.30.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04:30: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: 56099bda-c931-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763987418; x=1764592218; 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=tp+i/cfVucDDUMwChy0ACXhvtjRm+kadP0KVDlNVdFY=;
        b=ELyyH2BNaQGCzhcUPfOe/KTNq/w+qI/itRZgfkzjOmmGsU4rAbTDA+q66LC54q/o8e
         fMpdGzR2giR1gnQJijKScO7KGgMWY8CYqr5BQ8VJRpms+hmf6UGErr6Q7hhIRy4s3oTv
         lpaI30X3E1K6CJcnmnm3fhqvaETlM/tEnCbxNQivy3AgfO0FtcwJNWoikvcke+GgfUeB
         ly0rmN0LaAOZKy/gC0Vkl6JCS69hVNe0FrkSu6aVFxxqJDizLTdNSIZVpQNPEBqUQM/0
         CF746EH+2K1SxzYbt7zILeSWeQts7+131S4MILbcpygfFIgpvt3OthWTcYapLPIxRsMT
         FIwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987418; x=1764592218;
        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=tp+i/cfVucDDUMwChy0ACXhvtjRm+kadP0KVDlNVdFY=;
        b=he14Oj0G73gdusK12vNx7ReSZiKYFZfw24eNApoAeQpriRgvKTdFj9RX0kP9BlS4PL
         52ye/4TpBvjNdszcHPGxozRPHDpa9trOxPnFueQh/3QPgm+B7gs4vyCou16jM6G/b2lQ
         +0sjn3+N7Aar61ew6SzipaGWCw5f3OIjYeaja3fUStZ5yiTGbSk/D1Hb0tjyah+woYQp
         JQVnZJPfBvQRpDubGm9TqSWJ6cXR9EHYBOnJQ0tFmQBROdabAof8PyvzuMU2hKZ7ucoc
         NUpyq6brGGuchOrazP3EZqDAAVTeDDIFA6VIiA2UIwa9LPfhhJ+dkFSMM6NeeNzgW3qm
         fjvQ==
X-Gm-Message-State: AOJu0YzEqiK8n6F2FWKvAhU/f1pKlIm+9PUFa2haXUTbCoCAFB79/TYK
	UwTXBXGaE5jyJhEVT6rferU7O5LYu6ZTi957tAGV5zGS3jqRVe3J+5IBIg7AONS4JG8XRXWmbiH
	GhfY=
X-Gm-Gg: ASbGncsCGc06BPtlPfKkN6uOiWl6ylmkuviwNfJx30FDbagUJmBV2pMfM/qnYWOtk4P
	QeBMuZOXnpNAqF7DIQIn5qBi4NQ4+mcRsK+IYVQzYi741Y/fUB5ByJXWED7u8jtJUnnHyX13vTc
	L2G5XoWpiGgqKnQMIFBpnCMLyzQk6HB+L+iZYLEruDwTXdAENtkpvCMT7sU3XScAUwVY9lL4ZYa
	nfthLDVXKrEeG5iVf9sl/8s0S02BycG6v33RKpWIxJvJ563K5QR2D9XWZ5Bi6I/u90r5rmSb8I1
	iDF9skna2P2rtph6Ay2bfcWaXDtliBvLmWkVMhEVmSv1dwWrwJiPvBOEIbFf44yCOOS/v+gumVX
	52+PFs0ePm31WtrBliHpcw8L122RXPVRK67h2/OTr6t1zhOqkN/DP0NsoQy/LiXtP3tpvWZqgY4
	gc3t3D1ZIDoqJG4DPzdtcH9yptirKUCS5C4P/7TnPl3FceRQ+MqaWtSvEpJ+yMMIKn80w5vyxXT
	98=
X-Google-Smtp-Source: AGHT+IEFQcTpHEJ1+VAIief0RR0eJLlhlKIioP/kCJtvv1FC07NrLWROgp7R6dYhwWkowpZBrEWJ8A==
X-Received: by 2002:a05:600c:3146:b0:477:df7:b020 with SMTP id 5b1f17b1804b1-477c01b2211mr111541015e9.18.1763987417740;
        Mon, 24 Nov 2025 04:30:17 -0800 (PST)
Message-ID: <cf407534-b44e-446d-9249-694787e5963a@suse.com>
Date: Mon, 24 Nov 2025 13:30:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 3/4] x86/IRQ: direct-APIC-vector setting is now init-only
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: <5ac2e9b1-81f2-41d9-8f05-d546a49c43a7@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: <5ac2e9b1-81f2-41d9-8f05-d546a49c43a7@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

With all callers of alloc_direct_apic_vector() now being limited to BSP
setup, it and its helpers (whose other callers have already been init-
only) can become __init. As a result data items can be adjusted, too.

With alloc_direct_apic_vector() now being __init, it's meaningless to use
a lock, and the indirection is also pretty pointless. Drop both while at
it.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
v2: Re-work alloc_direct_apic_vector().

--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -161,7 +161,7 @@ static void intel_init_thermal(const str
     }
 
     if ( bsp )
-        alloc_direct_apic_vector(&thermal_apic_vector, intel_thermal_interrupt);
+        thermal_apic_vector = alloc_direct_apic_vector(intel_thermal_interrupt);
 
     /* The temperature transition interrupt handler setup */
     val = thermal_apic_vector;    /* our delivery vector */
@@ -689,7 +689,7 @@ static void intel_init_cmci(struct cpuin
     }
 
     if ( bsp )
-        alloc_direct_apic_vector(&cmci_apic_vector, cmci_interrupt);
+        cmci_apic_vector = alloc_direct_apic_vector(cmci_interrupt);
 
     apic = cmci_apic_vector;
     apic |= (APIC_DM_FIXED | APIC_LVT_MASKED);
--- a/xen/arch/x86/guest/xen/xen.c
+++ b/xen/arch/x86/guest/xen/xen.c
@@ -293,7 +293,7 @@ static void __init cf_check setup(void)
                XEN_LEGACY_MAX_VCPUS);
     }
 
-    alloc_direct_apic_vector(&evtchn_upcall_vector, xen_evtchn_upcall);
+    evtchn_upcall_vector = alloc_direct_apic_vector(xen_evtchn_upcall);
 
     BUG_ON(init_evtchn());
 }
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -3181,10 +3181,10 @@ const struct hvm_function_table * __init
 
     if ( cpu_has_vmx_posted_intr_processing )
     {
-        alloc_direct_apic_vector(&posted_intr_vector, pi_notification_interrupt);
+        posted_intr_vector = alloc_direct_apic_vector(pi_notification_interrupt);
         if ( iommu_intpost )
         {
-            alloc_direct_apic_vector(&pi_wakeup_vector, pi_wakeup_interrupt);
+            pi_wakeup_vector = alloc_direct_apic_vector(pi_wakeup_interrupt);
 
             vmx_function_table.pi_update_irte = vmx_pi_update_irte;
         }
--- a/xen/arch/x86/include/asm/irq.h
+++ b/xen/arch/x86/include/asm/irq.h
@@ -119,7 +119,7 @@ uint8_t alloc_hipriority_vector(void);
 void free_lopriority_vector(uint8_t vector);
 
 void set_direct_apic_vector(uint8_t vector, void (*handler)(void));
-void alloc_direct_apic_vector(uint8_t *vector, void (*handler)(void));
+uint8_t alloc_direct_apic_vector(void (*handler)(void));
 
 void do_IRQ(struct cpu_user_regs *regs);
 
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -970,31 +970,28 @@ void pirq_set_affinity(struct domain *d,
 DEFINE_PER_CPU(unsigned int, irq_count);
 static DEFINE_PER_CPU(bool, check_eoi_deferral);
 
-uint8_t alloc_hipriority_vector(void)
+uint8_t __init alloc_hipriority_vector(void)
 {
-    static uint8_t next = FIRST_HIPRIORITY_VECTOR;
+    static uint8_t __initdata next = FIRST_HIPRIORITY_VECTOR;
     BUG_ON(next < FIRST_HIPRIORITY_VECTOR);
     BUG_ON(next > LAST_HIPRIORITY_VECTOR);
     return next++;
 }
 
-static void (*direct_apic_vector[X86_IDT_VECTORS])(void);
-void set_direct_apic_vector(uint8_t vector, void (*handler)(void))
+static void (*__ro_after_init direct_apic_vector[X86_IDT_VECTORS])(void);
+void __init set_direct_apic_vector(uint8_t vector, void (*handler)(void))
 {
     BUG_ON(direct_apic_vector[vector] != NULL);
     direct_apic_vector[vector] = handler;
 }
 
-void alloc_direct_apic_vector(uint8_t *vector, void (*handler)(void))
+uint8_t __init alloc_direct_apic_vector(void (*handler)(void))
 {
-    static DEFINE_SPINLOCK(lock);
+    uint8_t vec = alloc_hipriority_vector();
 
-    spin_lock(&lock);
-    if (*vector == 0) {
-        *vector = alloc_hipriority_vector();
-        set_direct_apic_vector(*vector, handler);
-    }
-    spin_unlock(&lock);
+    set_direct_apic_vector(vec, handler);
+
+    return vec;
 }
 
 /* This could free any vectors, but is needed only for low-prio ones. */



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:30:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:30:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170504.1495575 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNViK-00070C-Oe; Mon, 24 Nov 2025 12:30:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170504.1495575; Mon, 24 Nov 2025 12: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 1vNViK-000705-Lk; Mon, 24 Nov 2025 12:30:40 +0000
Received: by outflank-mailman (input) for mailman id 1170504;
 Mon, 24 Nov 2025 12:30: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNViI-0004cg-Qc
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:30:38 +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 61c011c0-c931-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:30:38 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-42b3669ca3dso1711245f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:30: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-42cb7f34fddsm29199079f8f.14.2025.11.24.04.30.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04:30: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: 61c011c0-c931-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763987437; x=1764592237; 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=cLRL3+uYW8mTZJpIYDPRqMA57ukZVFvfr5R4kBjg4KY=;
        b=OYJjjF6X6fj9HVft6v+V4KgTTFbU7OMPFlP6L/LYVkCa0KTvBv+5Syu/iMQFiv5y89
         OyY0jd46zBv3r5xaN4FUEKGLmgZ20Xte8lCtH+ZBJU4rxROLW14oKTkkXpcKNmzOwFHI
         krRplfvqYpnGu8AoyavAdsJycst+dNyd/ZrPVp77JgZ2+muM3Igr7VLDOg3uWhqGuH2S
         dHc05/iHR6lOCI4qVhIz9rHjWI6tsyAuHzTF0jyjVKljL9nLMslsdY/JOQQoPlz3hwKm
         w7Vkr0aiSQtyPqGQ+lJAPArYkTMgO95Bnxt1A09lf2C7ltVxA7G+dNFY0vznTFbcYYZe
         aa+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987437; x=1764592237;
        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=cLRL3+uYW8mTZJpIYDPRqMA57ukZVFvfr5R4kBjg4KY=;
        b=SLAet+nflclUnl/56C6YrwTFsyknbz1L7LB2ZbgzkEHZ8pwpLDDK0TGMT2xjPPDcPo
         kWSJ/SVomgZh+ZFsY8HGrhznAMqfxJGT7/8eLJayCNynjuDnqsUcCDIgMzMVCjSr9jA/
         nmKq1fuR9C3Md3xulzyjk7s6Mq7OEXSs+BLXsR+HFuoPh+lCpscKdamJQjG7joqNM9sx
         ox+6/gGDOMEsCixlv6A04T61+wGW6ErNRH5DDx9jww+O90Pi2pqDXotUaIvNBP+e4uVK
         t1WFuX9uaQUk3P2/PYYwn9lvCFhnXk/OLMVMoIf9OYBrVYvkggRoJOMr8Cp3K3UObBzd
         PPzg==
X-Gm-Message-State: AOJu0YwCNTkH2u6DzkqwwJjf9zuZ9qQ00ds6JZFhRxVcF0Ls4TCxJRtX
	lgYhPKhbBWnAjlb0EBJZ7UGPvoAIeiCAXiR2WRmFOWZCdR1N4QZIafwmieKOSkfW+hjbfnlcTZi
	hKz0=
X-Gm-Gg: ASbGncuA0ifw7KWBg79RJaM8Bi8lT1qseEwvhhxUtb9tq80wHU8LL+8wlHjPEs3EXVg
	H3k4X/vA0My0DMZ/wL2gw1xMVSusEnbVW7tAnH4hA4hzyZJI0alQg/CUc0nBoex89Mhoe5ZXRSU
	K7KBiwVLEwOuNq07txeHhfBQvjuEF+sFpCoK68p3xCan0lDdrDia7jg8ULgMIJ26ML38RSUVf1p
	+GT9BhAOBUIjf64bsYzqiwJpXHHThgvoc1OE5KXxtY+WCpjsi5oU938AnfVelsjK2sTyocSdxWM
	YChagPs65Zf41E3F960sdJc7GeNw/th489eUuG70z9zUaIJ726TBjUvEayyw2BbWYMTLMNTEjkk
	JKJMpP7zfVvcd8ray68NVBijOSSWntkVLFIQwvCaU5iJ8HIMW75QZJ79SIlC3pIqBF3ypbspGs1
	YVc5abGpfu0uboYdAJUzut0K7IUIrk/3GJsUzNGdc463PwUYkj0dSpa/FcbHytx1O001bo+V/ie
	rA=
X-Google-Smtp-Source: AGHT+IEM4p5ClNaoIlR+EwMjxV3393KV4qYIpcRb3vKdTSU9Iy1DUsTuApQp/kvXk7ivGLSOHjuGHQ==
X-Received: by 2002:adf:b30a:0:b0:42b:3366:634b with SMTP id ffacd0b85a97d-42cc1d0cecfmr8055683f8f.31.1763987437328;
        Mon, 24 Nov 2025 04:30:37 -0800 (PST)
Message-ID: <d751bafc-5146-4b31-bce8-ce534500e978@suse.com>
Date: Mon, 24 Nov 2025 13:30:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 4/4] x86/vPMU: don't statically reserve the interrupt
 vector
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: <5ac2e9b1-81f2-41d9-8f05-d546a49c43a7@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: <5ac2e9b1-81f2-41d9-8f05-d546a49c43a7@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Move the setup to vPMU code, doing the allocation of a vector only when
one is actually going to be needed. With that the handler functions also
don't need to be scattered across two places anymore.

Add the freed up vector to the dynamically allocatable range.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
In case down the road we also want to have a build mode with vPMU code
excluded, this may also simplify things a little there.
---
v2: Re-base over patch moving the APIC ack and over change to
    alloc_direct_apic_vector().

--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -1313,16 +1313,6 @@ static void cf_check error_interrupt(voi
            entries[3], entries[2], entries[1], entries[0]);
 }
 
-/*
- * This interrupt handles performance counters interrupt
- */
-
-static void cf_check pmu_interrupt(void)
-{
-    vpmu_do_interrupt();
-    ack_APIC_irq();
-}
-
 void __init apic_intr_init(void)
 {
     smp_intr_init();
@@ -1333,9 +1323,6 @@ void __init apic_intr_init(void)
     /* IPI vectors for APIC spurious and error interrupts */
     set_direct_apic_vector(SPURIOUS_APIC_VECTOR, spurious_interrupt);
     set_direct_apic_vector(ERROR_APIC_VECTOR, error_interrupt);
-
-    /* Performance Counters Interrupt */
-    set_direct_apic_vector(PMU_APIC_VECTOR, pmu_interrupt);
 }
 
 /*
--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -40,6 +40,8 @@ static struct arch_vpmu_ops __initdata v
 static DEFINE_SPINLOCK(vpmu_lock);
 static unsigned vpmu_count;
 
+static uint8_t __ro_after_init pmu_apic_vector;
+
 static DEFINE_PER_CPU(struct vcpu *, last_vcpu);
 
 static int __init cf_check parse_vpmu_params(const char *s)
@@ -94,7 +96,7 @@ void vpmu_lvtpc_update(uint32_t val)
 
     vpmu = vcpu_vpmu(curr);
 
-    vpmu->hw_lapic_lvtpc = PMU_APIC_VECTOR | (val & APIC_LVT_MASKED);
+    vpmu->hw_lapic_lvtpc = pmu_apic_vector | (val & APIC_LVT_MASKED);
 
     /* Postpone APIC updates for PV(H) guests if PMU interrupt is pending */
     if ( has_vlapic(curr->domain) || !vpmu->xenpmu_data ||
@@ -160,7 +162,7 @@ static inline struct vcpu *choose_hwdom_
     return hardware_domain->vcpu[idx];
 }
 
-void vpmu_do_interrupt(void)
+static void vpmu_do_interrupt(void)
 {
     struct vcpu *sampled = current, *sampling;
     struct vpmu_struct *vpmu;
@@ -322,6 +324,12 @@ void vpmu_do_interrupt(void)
 #endif
 }
 
+static void cf_check vpmu_interrupt(void)
+{
+    vpmu_do_interrupt();
+    ack_APIC_irq();
+}
+
 #ifdef CONFIG_MEM_SHARING
 int vpmu_allocate_context(struct vcpu *v)
 {
@@ -369,7 +377,7 @@ void vpmu_save(struct vcpu *v)
 
     vpmu_reset(vpmu, VPMU_CONTEXT_SAVE);
 
-    apic_write(APIC_LVTPC, PMU_APIC_VECTOR | APIC_LVT_MASKED);
+    apic_write(APIC_LVTPC, pmu_apic_vector | APIC_LVT_MASKED);
 }
 
 int vpmu_load(struct vcpu *v, bool from_guest)
@@ -432,7 +440,7 @@ static int vpmu_arch_initialise(struct v
         return ret;
     }
 
-    vpmu->hw_lapic_lvtpc = PMU_APIC_VECTOR | APIC_LVT_MASKED;
+    vpmu->hw_lapic_lvtpc = pmu_apic_vector | APIC_LVT_MASKED;
     vpmu_set(vpmu, VPMU_INITIALIZED);
 
     return 0;
@@ -860,6 +868,8 @@ static int __init cf_check vpmu_init(voi
         register_cpu_notifier(&cpu_nfb);
         printk(XENLOG_INFO "VPMU: version " __stringify(XENPMU_VER_MAJ) "."
                __stringify(XENPMU_VER_MIN) "\n");
+
+        pmu_apic_vector = alloc_direct_apic_vector(vpmu_interrupt);
     }
     else
     {
--- a/xen/arch/x86/include/asm/irq-vectors.h
+++ b/xen/arch/x86/include/asm/irq-vectors.h
@@ -8,13 +8,12 @@
 #define EVENT_CHECK_VECTOR	0xfc
 #define CALL_FUNCTION_VECTOR	0xfb
 #define LOCAL_TIMER_VECTOR	0xfa
-#define PMU_APIC_VECTOR 	0xf9
 /*
  * High-priority dynamically-allocated vectors. For interrupts that
  * must be higher priority than any guest-bound interrupt.
  */
 #define FIRST_HIPRIORITY_VECTOR	0xf1
-#define LAST_HIPRIORITY_VECTOR  0xf8
+#define LAST_HIPRIORITY_VECTOR  0xf9
 /* IRQ0 (timer) is statically allocated but must be high priority. */
 #define IRQ0_VECTOR             0xf0
 
--- a/xen/arch/x86/include/asm/vpmu.h
+++ b/xen/arch/x86/include/asm/vpmu.h
@@ -99,7 +99,6 @@ static inline bool vpmu_are_all_set(cons
 
 void vpmu_lvtpc_update(uint32_t val);
 int vpmu_do_msr(unsigned int msr, uint64_t *msr_content, bool is_write);
-void vpmu_do_interrupt(void);
 void vpmu_initialise(struct vcpu *v);
 void vpmu_destroy(struct vcpu *v);
 void vpmu_save(struct vcpu *v);



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:31:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:31:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170525.1495584 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVjF-0007o6-0w; Mon, 24 Nov 2025 12:31:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170525.1495584; Mon, 24 Nov 2025 12:31: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 1vNVjE-0007nz-UJ; Mon, 24 Nov 2025 12:31:36 +0000
Received: by outflank-mailman (input) for mailman id 1170525;
 Mon, 24 Nov 2025 12:31: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=Qo8f=6A=gmail.com=samaan.dehghan@srs-se1.protection.inumbo.net>)
 id 1vNVj3-0004cg-Jp
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:31:25 +0000
Received: from mail-pl1-x633.google.com (mail-pl1-x633.google.com
 [2607:f8b0:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7d159e6a-c931-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:31:24 +0100 (CET)
Received: by mail-pl1-x633.google.com with SMTP id
 d9443c01a7336-297ef378069so37867615ad.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04: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: 7d159e6a-c931-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987483; x=1764592283; 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=f8d5FCDqF8Eyi33xLvv1HZy4mmEZ4/sGV8dAZOJVn5g=;
        b=I2WiaEtk/UyBbJ5EjMl0CwYJ7M2dWBoYd7Ret9YHvoyIcOq6vwMRUWjMjEMrQeGN1r
         OEb2p8olWwUpFnCOJr3epspCxW9eEwPt+uuODXMSHB4mQRqEy3t+xIzySWQKRBOul2Ki
         T/1PtvDW4CjZvsgWC3u/MVmQoU6Vi+2NSvGUcWElco2tljgUMnqDjZykJZg64mflXlVd
         V9YDZrVCu2qKlkjE0kdJy7EPjQVaQ9QH6FWfXAl58BDWNBpP+3bJhRSiGdbdzFUS50IT
         NqYJRMk3f8rnPldnlV81yOOAVKZw50Ba1mPRzKmNsEN9pQvRZkZ0bz5EKM7k8iVVvRqe
         uczQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987483; x=1764592283;
        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=f8d5FCDqF8Eyi33xLvv1HZy4mmEZ4/sGV8dAZOJVn5g=;
        b=QEG4Kzd3c1uOowb6ZWx2L5SVmSqAvyWo4xKz1grdew7C3YO59UB++giPlRT+S/9Vjj
         RxYww59Xvje5Bg34shYfSvKIfq7w4hOSvABtLzXQ5kW3VITzYLyMsz0KFNqY8172wuhQ
         xa22Z5WkmRFGOR3uP/XLgvszVWyYsqPQtx92KwQpa3lVpC1QjO0dJFaiP/s28Ge9/Qld
         USbG0RqCNyBpZaIctCNgYZbJwhcCNAKcVjSEgAs4sIXZoSIYPage7mX5vzv2PVG90hZL
         vQGYOzBJwuaPZgFbfDtCISpWe59w2jQ5bnmUEsmdB9W75Gtcqw1FoHdBeXMVWE9gP3qz
         IdNg==
X-Gm-Message-State: AOJu0YwkUI9s7GzRwjRyzVr3Cq7UWy6bpB6BIM0HUxJGtPyvfV9y6Vu1
	XQ8rdXJp9WFSMMR+uGQIJVF5es5eqg8dhaXiBqP3UUEXnI804a8bq/DfNl6mRmFJsek6B65wxdP
	x3EwV4U8rFO6XRa0oxu9QL7Gimwxnxw==
X-Gm-Gg: ASbGncu0ufr+iXTdJmVyx2nCfGCB8qEsiJgoTYJpAcWzdzLSIhgnR8drb4Qr72V5Ow+
	ThooYtusnTNmSx3dyjvGXZn22wEgSIEm/AHm3eXciy+P+WaTrFRFuAoCRGyVV4b6Xw9vinQimYs
	Mtb7hd/nZ+xkITcD5djKg2P98Hy/s7Y/e3Kx8DnI8BO4j7603ZhMi/3Q9tOeR9sXY6drJSo4R4D
	bLty/3Wz737eKJukCRn+afxoyLx/QC9Me96gTY3CA8HmmJHwa2pNQbUB+qFa3hAcZIoP7ZsJlD3
	HswygOmQH7BRic+itA5ARY75
X-Google-Smtp-Source: AGHT+IHQGPCuzF4kn0l3NguKNQ98NpEXDZz6EzTvD/PxRFxEpjSHQRpgj9QdIglFCYkKIVghDWgbQ1ss9MPOIPORjtc=
X-Received: by 2002:a17:90b:5183:b0:340:7b2e:64cc with SMTP id
 98e67ed59e1d1-34733e5c408mr11531925a91.15.1763987482923; Mon, 24 Nov 2025
 04:31:22 -0800 (PST)
MIME-Version: 1.0
References: <3bb418ae6a36a9ac89c697a417fa0745fa9ac702.1763949990.git.samaan.dehghan@gmail.com>
 <9c76a959-51c0-4eb7-9d05-ba4441318faa@citrix.com>
In-Reply-To: <9c76a959-51c0-4eb7-9d05-ba4441318faa@citrix.com>
From: Saman Dehghan <samaan.dehghan@gmail.com>
Date: Mon, 24 Nov 2025 06:31:11 -0600
X-Gm-Features: AWmQ_blNd91GU5pYLJJWWFKElZl5a0ofnfee-szdA3_6mqWx21xOCS1jSxl-Bk8
Message-ID: <CAHFNDNikjXNHCj2RXMoZPckqaQAy2u-xw-QyCO7nXT3pttp6Hg@mail.gmail.com>
Subject: Re: [PATCH] XEN: enable MC/DC coverage for Clang
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>, 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

On Mon, Nov 24, 2025 at 5:15=E2=80=AFAM Andrew Cooper <andrew.cooper3@citri=
x.com> wrote:
>
> On 24/11/2025 2:18 am, Saman Dehghan wrote:
> > Clang >=3D 18 supports Modified Condition/Decision Coverage (MC/DC).
> > This patch enables the detection and usage of this feature when
> > compiling Xen with Clang.
> >
> > - Update detection logic to check for '-fcoverage-mcdc' when using Clan=
g.
> > - Update llvm.c to handle the profile format changes (bitmap section)
> >   required for MC/DC.
> > - Guard -Wno-error=3Dcoverage-too-many-conditions with CONFIG_CC_IS_GCC
> >   to avoid passing a GCC-only warning option to Clang
> >
> > Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>
> > ---
> >  xen/Kconfig                |  2 +-
> >  xen/Rules.mk               |  1 +
> >  xen/arch/x86/Makefile      |  4 +++-
> >  xen/common/coverage/llvm.c | 24 +++++++++++++++++++++++-
> >  4 files changed, 28 insertions(+), 3 deletions(-)
> >
> > diff --git a/xen/Kconfig b/xen/Kconfig
> > index a5e5af3b76..5508993f02 100644
> > --- a/xen/Kconfig
> > +++ b/xen/Kconfig
> > @@ -53,7 +53,7 @@ config CC_HAS_ASM_GOTO_OUTPUT
> >
> >  # Compiler supports -fcondition-coverage aka MC/DC
>
> While you're improving these comments, please drop -fcondition-coverage
> (as it's no longer accurate), and expand MC/DC for the benefit of people
> who don't know what it is.
>
> >  config CC_HAS_MCDC
>
> Also, # GCC >=3D 14, or Clang >=3D 18
>
> It's important for toolchain versions to be given in comments, so we can
> figure out what to clean up when upgrading the toolchain baselines.
>
> > diff --git a/xen/common/coverage/llvm.c b/xen/common/coverage/llvm.c
> > index 532889c857..a8c7e7e8d2 100644
> > --- a/xen/common/coverage/llvm.c
> > +++ b/xen/common/coverage/llvm.c
> > @@ -120,6 +120,10 @@ extern const char __start___llvm_prf_names[];
> >  extern const char __stop___llvm_prf_names[];
> >  extern uint64_t __start___llvm_prf_cnts[];
> >  extern uint64_t __stop___llvm_prf_cnts[];
> > +#ifdef CONFIG_CONDITION_COVERAGE
> > +extern const char __start___llvm_prf_bits[];
> > +extern const char __stop___llvm_prf_bits[];
> > +#endif
>
> No need for these to be #ifdef'd.  In turn, it lets you do ...
>
> >
> >  #define START_DATA      ((const void *)__start___llvm_prf_data)
> >  #define END_DATA        ((const void *)__stop___llvm_prf_data)
> > @@ -127,16 +131,25 @@ extern uint64_t __stop___llvm_prf_cnts[];
> >  #define END_NAMES       ((const void *)__stop___llvm_prf_names)
> >  #define START_COUNTERS  ((void *)__start___llvm_prf_cnts)
> >  #define END_COUNTERS    ((void *)__stop___llvm_prf_cnts)
> > +#define START_BITMAP    ((void *)__start___llvm_prf_bits)
> > +#define END_BITMAP      ((void *)__stop___llvm_prf_bits)
> >
> >  static void cf_check reset_counters(void)
> >  {
> >      memset(START_COUNTERS, 0, END_COUNTERS - START_COUNTERS);
> > +#ifdef CONFIG_CONDITION_COVERAGE
> > +    memset(START_BITMAP, 0, END_BITMAP - START_BITMAP);
> > +#endif
>
> ... this:
>
>     if ( IS_ENABLED(CONFIG_CONDITION_COVERAGE) )
>         memset(START_BITMAP, 0, END_BITMAP - START_BITMAP);
>
> >  }

Thanks Andrew.

IS_ENABLED(CONFIG_CONDITION_COVERAGE) is not the same as #ifdef
CONFIG_CONDITION_COVERAGE.
When the option is completely undefined, IS_ENABLED() returns 1 (enabled).
So even with no CONFIG_CONDITION_COVERAGE defined, the code takes the
"enabled" path, which is not what we want here.

> >
> >  static uint32_t cf_check get_size(void)
> >  {
> > -    return ROUNDUP(sizeof(struct llvm_profile_header) + END_DATA - STA=
RT_DATA +
> > +    uint32_t size =3D ROUNDUP(sizeof(struct llvm_profile_header) + END=
_DATA - START_DATA +
> >                     END_COUNTERS - START_COUNTERS + END_NAMES - START_N=
AMES, 8);
> > +#ifdef CONFIG_CONDITION_COVERAGE
> > +    size +=3D ROUNDUP(END_BITMAP - START_BITMAP, 8);
> > +#endif
>
> and similar here.
>
> > +    return size;
> >  }
> >
> >  static int cf_check dump(
> > @@ -147,11 +160,17 @@ static int cf_check dump(
> >          .version =3D LLVM_PROFILE_VERSION,
> >          .num_data =3D DIV_ROUND_UP(END_DATA - START_DATA, sizeof(struc=
t llvm_profile_data)),
> >          .num_counters =3D DIV_ROUND_UP(END_COUNTERS - START_COUNTERS, =
sizeof(uint64_t)),
> > +#if defined(CONFIG_CONDITION_COVERAGE) && LLVM_PROFILE_VERSION >=3D 9
> > +        .num_bitmap_bytes =3D END_BITMAP - START_BITMAP,
> > +#endif
> >          .names_size =3D END_NAMES - START_NAMES,
> >  #if LLVM_PROFILE_VERSION >=3D 8
> >          .counters_delta =3D START_COUNTERS - START_DATA,
> >  #else
> >          .counters_delta =3D (uintptr_t)START_COUNTERS,
> > +#endif
> > +#if defined(CONFIG_CONDITION_COVERAGE) && LLVM_PROFILE_VERSION >=3D 9
> > +        .bitmap_delta =3D START_BITMAP - START_DATA,
> >  #endif
> >          .names_delta =3D (uintptr_t)START_NAMES,
> >          .value_kind_last =3D LLVM_PROFILE_NUM_KINDS - 1,
>
> With structure initialisation, you do not need to have the fields in
> declaration order.  Therefore, you want to do something like this:
>
>          .value_kind_last =3D LLVM_PROFILE_NUM_KINDS - 1,
> +#if defined(CONFIG_CONDITION_COVERAGE) && LLVM_PROFILE_VERSION >=3D 9
> +        .num_bitmap_bytes =3D END_BITMAP - START_BITMAP,
> +        .bitmap_delta =3D START_BITMAP - START_DATA,
> +#endif
>  };
>
>
> to keep the ifdefary more simple.
>
> ~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:32:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:32:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170531.1495595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVjj-0008Pr-8r; Mon, 24 Nov 2025 12:32:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170531.1495595; Mon, 24 Nov 2025 12:32:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVjj-0008Pk-5Q; Mon, 24 Nov 2025 12:32:07 +0000
Received: by outflank-mailman (input) for mailman id 1170531;
 Mon, 24 Nov 2025 12:32: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNVcn-0001k4-Mn
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:24: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 95c80395-c930-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 13:24:55 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-477563e28a3so28785215e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:24: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-477a9e051d8sm152580145e9.5.2025.11.24.04.24.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04:24: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: 95c80395-c930-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763987095; x=1764591895; 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=1XcpEuyq7I/RcIRhR0rcpzEEX5hVnSggdYKamo6kWLA=;
        b=X+g6dkq0B8ba7rTY3ORtLxnek7yKfMLuESCav8L/GrY+unXXmiruGR4ipp7TrYGyhO
         +o5V1l04xrhTEpVLS5+OmqaMUjbLT0UaeiOTKHYdC5SA0tvh391XQsPX3QNNvlheY6Et
         2ntV5h9C/w5Z7mWXqNiI8IhwaFJ0nn3iTIfYsAWdQvqtiYzmotmcZGyoA6ZrpwwmrzSR
         BDHsRvNhs7sY5naUQvY0PQ9REGh6xzWCwKJsikUVyN5oUXaBwTWMaNdBkuqt8VhdfIsV
         hzn9ofVSMp4TDoiO5+ZWkyf+st04b99yvFUCW0ewAZSGUSbOoOmsfLhhAyRd+F/V1xuq
         uBBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987095; x=1764591895;
        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=1XcpEuyq7I/RcIRhR0rcpzEEX5hVnSggdYKamo6kWLA=;
        b=R5nGQumWbpdp7cGlKB5AJvILRKkhYCi8cxuJ1UfyaDP1a9Py04kiGpbgK6DhQaVV2h
         kBEVhL40JfFzL/qorN4pV2598Ge5lfHnwNpzyrtYJMCROywAj5vv/YiDTC6LuIWBPMyr
         4bi4hg2iigvyQ8wAEckYyfStKm62BjDPIC1h5LILm4hIAaylJt5V/oGUtOECcVaSdzYd
         1V5W2hYybMRDUvfq6xhxxzVbSUNSVz83dEix+aa1MWha8wtB3pudI0e8jXcLMAXu17d2
         H7bXsau/ydIn7qiF7+R8Hels7QmAr5hygtKAzjbkID6b+bd/x+pCoNP8XoEK6vg0Xc9i
         BI9g==
X-Gm-Message-State: AOJu0YzXEWRKg2uC2+EYbAaIv7qQLlsiKx3Fd+fo/GquDJUl/rEW3i2w
	H4OT8+O84YTeLhv7g9TqC92wEG+YWrlOee6UKQoIqxwhzPOWanA2mQaWFopDZur+zEJsn1magAL
	T1Bg=
X-Gm-Gg: ASbGncsQCbWKdSZ1e62Y2fmZvceJSneetZcVlnWZwakiGLdThOekE9MZqA70iHBMpay
	6N7ksfXSfHjEMSuWZFAJrKvLxdfuu50x9lKo0ASEEtHaee1DmBM3SupOb1ICpKsYK7mTSAQE+bs
	fnxguanIwVKiHoq4YE8uxkhAyhJ3BQ8ROIGNjUobbhdFJTfRWMhVuqFIrgAPC3W/5csQmLwVJhQ
	MeEYE2SsvVRxciyx/3eTj3+PAHycLFGAoFWeOH+h833OUdybtGzxm0eUReaFZ6ZlfzW2uP5GjXl
	YKsppKHhmXXorNlwUAa9jxeMZ69JPxJFSxTjOsmtZdC4ntUnH0ugZE57tjF8X6WiXWP9dfK5KFk
	ePf9/V7xNaGlWJVGumF3aaJ9KBGzj2BS/2tM+CzYaJ3ToIL5XiDWk7xnSeWW3hvX6MEc1VVzfG2
	eb49jFU3YEOQhn5DyZcXOKFur1u27Us+avN2GMYAfPsWs1X2i/7eoKjEG9PjCINCgIqgTntjREU
	tI=
X-Google-Smtp-Source: AGHT+IEhoUys/5YoCehFDJB85Azw48BWOB2bzoMrzEb3G0ZMOMPXZ+CY/LZCV8vBna5lVpSUbk1MRA==
X-Received: by 2002:a05:600c:154e:b0:46e:2815:8568 with SMTP id 5b1f17b1804b1-477c05137f4mr114025495e9.10.1763987095260;
        Mon, 24 Nov 2025 04:24:55 -0800 (PST)
Message-ID: <27f467a9-a507-4832-850e-190aff8c04aa@suse.com>
Date: Mon, 24 Nov 2025 13:24:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 5/6] x86/cpufreq: use host CPU policy for Turbo checking
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: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@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: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

There's no need to invoke CPUID yet another time - we assume symmetry
anyway. With symmetry assumed, logging per-CPU also isn't very useful.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

--- a/xen/arch/x86/acpi/cpufreq/acpi.c
+++ b/xen/arch/x86/acpi/cpufreq/acpi.c
@@ -220,14 +220,11 @@ static unsigned int cf_check get_cur_fre
 
 void intel_feature_detect(struct cpufreq_policy *policy)
 {
-    unsigned int eax;
-
-    eax = cpuid_eax(6);
-    if (eax & 0x2) {
+    if ( cpu_has_turbo )
+    {
         policy->turbo = CPUFREQ_TURBO_ENABLED;
-        if (cpufreq_verbose)
-            printk(XENLOG_INFO "CPU%u: Turbo Mode detected and enabled\n",
-                   smp_processor_id());
+        if ( cpufreq_verbose )
+            printk_once(XENLOG_INFO "Turbo Mode detected and enabled\n");
     }
 }
 
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -177,6 +177,7 @@ static inline bool boot_cpu_has(unsigned
 #define cpu_has_tbm             boot_cpu_has(X86_FEATURE_TBM)
 
 /* CPUID level 0x00000006.eax */
+#define cpu_has_turbo           host_cpu_policy.basic.turbo
 #define cpu_has_arat            host_cpu_policy.basic.arat
 
 /* CPUID level 0x00000006.ecx */



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:32:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:32:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170544.1495605 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVkF-0000eB-Ge; Mon, 24 Nov 2025 12:32:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170544.1495605; Mon, 24 Nov 2025 12:32:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVkF-0000e4-DP; Mon, 24 Nov 2025 12:32:39 +0000
Received: by outflank-mailman (input) for mailman id 1170544;
 Mon, 24 Nov 2025 12:32: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNVd8-0001k4-S3
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:25:18 +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 a23dc6ec-c930-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 13:25:16 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-477b91680f8so33790345e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:25: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-477bf1df392sm195782005e9.1.2025.11.24.04.25.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04:25: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: a23dc6ec-c930-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763987116; x=1764591916; 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=HiOO8E0uxvBIuOYrUtu7nBmWTtZUQ4qC/F+v+mwsDJs=;
        b=dMBHF/39TAzk+DYofAIPS8dM6e+gZpTb6bw3S0QnpvuTRTSh6p+aDZUPXjVekI+U05
         K0o7OS33eXnhznZpTY8uu8zMMG4P/tM1owFjxodrmEovF4MqVtRFtWdqeM42M42Pqx5g
         0bkeajs1GocyDHdNQcTatLbjE3KoWEEo4fvhBT1kVZx+nj1v41NfoaN2BGl/oU3YsQV2
         EJ/w/hVIfldMizjhF7AB0N0HwyyCZ8kfIULrNZRDpMUiA/SC/mxyXdez+CLBNzW59H0T
         3qnkFq2PDo9MCzzUxiBvWU/PK2JpMth4U4Du62iIowG1m5l5SMBSXzJVm/UOXKKIiZM+
         FcAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987116; x=1764591916;
        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=HiOO8E0uxvBIuOYrUtu7nBmWTtZUQ4qC/F+v+mwsDJs=;
        b=QtYpcI/cadp6Gi+qoVQHo03gMj2IgMOwZzzmzP5+mwgZUI1Tcd4skrEdSvqx7zmTfk
         3vQ1GoN+wN2eSNqBFX74p5KnoBXP4QPS+aV927TAkUTNgBlz9gZ37sAW+temYNnblvME
         m3MEAY+adlnMS4H2D6xb7NyoRBTQMpN6fsysDIGV7UWClh8hx5+mkMRonRbIWVz1Goku
         IfBTdZ0HFAoxkJcgY38QXb6xb2ayyJwp3klFVrHn/NFtArknhflb7bMFxuh6IukMitXO
         IE5j3O/bEzwXkGGCkHhEqyvXAiVpbRfVR4VZ8mJ/+LG9s7tNIEcoXdg7NDkypg+Xk0q2
         Jadw==
X-Gm-Message-State: AOJu0Yylchbll0PneZYxRb2HPaVt+ZZWy/CQofugJPEVgMYOkUTGWBhP
	WMhk2TXQxhPE+qiknj8G0wiKwdq94FsFoYunk1kuoTENHQ2xX5/nYyaNdCk7wBPxNbMzKQymb2n
	NPyM=
X-Gm-Gg: ASbGncuoWVkPkLCnGCnDRNwLjXLcjTstTYCinE05Zq9rgl6VzudMKfPNH1qjq+1KR3r
	8nhqc7+EzMyKfnqgdZtaeYuQcXwkBVcUlSdHNv/NFMucw8mu/kdTljXN1RBGgTigR16gO1I1+zD
	RNjuomNOwDjZNrm7csyCAR6Fg8NxTVBp+xTeEncQxOCPJNigQOpRdkbZwhz+z8wCSPdZo+4FsN/
	L4mpHiOexbsyMG27SqQrMThvzFBw9LzqCCJLmI14VrfrswSiHBFbaCVlnUTJf6mSPgSldv5b6do
	/1hwzgOuliHQgIqqmmVmn+IZtgICWSO4tEDiRd69W4Ke3F7/0qC8vIumrdmVzdUEhensCpSwHj2
	k1oFB8UOsg+ktE0nAgp14PBoB58myVo7VScGNtURA8Z69Agt2o5qjmApleiUajfP+Qd6ugMhVYk
	h8ZNJSa0eTmdiMb7S6cwZF6pyjrZtyuz9tIi69V6lgtVxmceJuGGYiOl5VqiWFQlLbWJ/gL/LCy
	eGYguZ2UZqiOA==
X-Google-Smtp-Source: AGHT+IER1zqoIJny1pLILhNWvB7gTTC8sA2UNU0+uGH3XryZH002d0/wFxW7pSX4N+kLBmIsOfliSg==
X-Received: by 2002:a05:600c:46cd:b0:475:dc5c:3a89 with SMTP id 5b1f17b1804b1-477c1136b7fmr100522755e9.34.1763987116126;
        Mon, 24 Nov 2025 04:25:16 -0800 (PST)
Message-ID: <bacee005-8ba3-468e-8de4-681af1cc4856@suse.com>
Date: Mon, 24 Nov 2025 13:25:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 6/6] x86/cpufreq: use host CPU policy in HWP driver
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@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: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

There's no need to invoke CPUID yet another time. This way two of the
static booleans can also go away.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: Introduce cpu_has_*.

--- a/xen/arch/x86/acpi/cpufreq/hwp.c
+++ b/xen/arch/x86/acpi/cpufreq/hwp.c
@@ -18,9 +18,6 @@
 
 static bool __ro_after_init hwp_in_use;
 
-static bool __ro_after_init feature_hwp_notification;
-static bool __ro_after_init feature_hwp_activity_window;
-
 static bool __read_mostly feature_hdc;
 
 static bool __ro_after_init opt_cpufreq_hdc = true;
@@ -165,8 +162,6 @@ bool hwp_active(void)
 
 static bool __init hwp_available(void)
 {
-    unsigned int eax;
-
     if ( boot_cpu_data.cpuid_level < CPUID_PM_LEAF )
     {
         hwp_verbose("cpuid_level (%#x) lacks HWP support\n",
@@ -183,29 +178,22 @@ static bool __init hwp_available(void)
         return false;
     }
 
-    eax = cpuid_eax(CPUID_PM_LEAF);
-
     hwp_verbose("%d notify: %d act-window: %d energy-perf: %d pkg-level: %d peci: %d\n",
-                !!(eax & CPUID6_EAX_HWP),
-                !!(eax & CPUID6_EAX_HWP_NOTIFICATION),
-                !!(eax & CPUID6_EAX_HWP_ACTIVITY_WINDOW),
-                !!(eax & CPUID6_EAX_HWP_ENERGY_PERFORMANCE_PREFERENCE),
-                !!(eax & CPUID6_EAX_HWP_PACKAGE_LEVEL_REQUEST),
-                !!(eax & CPUID6_EAX_HWP_PECI));
+                cpu_has_hwp, cpu_has_hwp_notification,
+                cpu_has_hwp_activity_window, cpu_has_hwp_epp,
+                cpu_has_hwp_plr, cpu_has_hwp_peci);
 
-    if ( !(eax & CPUID6_EAX_HWP) )
+    if ( !cpu_has_hwp )
         return false;
 
-    if ( !(eax & CPUID6_EAX_HWP_ENERGY_PERFORMANCE_PREFERENCE) )
+    if ( !cpu_has_hwp_epp )
     {
         hwp_verbose("disabled: No energy/performance preference available");
 
         return false;
     }
 
-    feature_hwp_notification    = eax & CPUID6_EAX_HWP_NOTIFICATION;
-    feature_hwp_activity_window = eax & CPUID6_EAX_HWP_ACTIVITY_WINDOW;
-    feature_hdc                 = eax & CPUID6_EAX_HDC;
+    feature_hdc = cpu_has_hdc;
 
     hwp_verbose("Hardware Duty Cycling (HDC) %ssupported%s\n",
                 feature_hdc ? "" : "not ",
@@ -213,7 +201,7 @@ static bool __init hwp_available(void)
                             : "");
 
     hwp_verbose("HW_FEEDBACK %ssupported\n",
-                (eax & CPUID6_EAX_HW_FEEDBACK) ? "" : "not ");
+                cpu_has_hw_feedback ? "" : "not ");
 
     hwp_in_use = true;
 
@@ -226,7 +214,8 @@ static int cf_check hwp_cpufreq_verify(s
 {
     struct hwp_drv_data *data = per_cpu(hwp_drv_data, policy->cpu);
 
-    if ( !feature_hwp_activity_window && data->activity_window )
+    if ( !cpu_has_hwp_activity_window &&
+         data->activity_window )
     {
         hwp_verbose("HWP activity window not supported\n");
 
@@ -268,7 +257,7 @@ static int cf_check hwp_cpufreq_target(s
     hwp_req.max_perf = data->maximum;
     hwp_req.desired = data->desired;
     hwp_req.energy_perf = data->energy_perf;
-    if ( feature_hwp_activity_window )
+    if ( cpu_has_hwp_activity_window )
         hwp_req.activity_window = data->activity_window;
 
     if ( hwp_req.raw == data->curr_req.raw )
@@ -365,7 +354,7 @@ static void cf_check hwp_init_msrs(void
     }
 
     /* Ensure we don't generate interrupts */
-    if ( feature_hwp_notification )
+    if ( cpu_has_hwp_notification )
         wrmsr_safe(MSR_HWP_INTERRUPT, 0);
 
     if ( !(val & PM_ENABLE_HWP_ENABLE) )
@@ -537,7 +526,8 @@ int get_hwp_para(unsigned int cpu,
         return -ENODATA;
 
     cppc_para->features         =
-        (feature_hwp_activity_window ? XEN_SYSCTL_CPPC_FEAT_ACT_WINDOW : 0);
+        (cpu_has_hwp_activity_window
+         ? XEN_SYSCTL_CPPC_FEAT_ACT_WINDOW : 0);
     cppc_para->lowest           = data->hw.lowest;
     cppc_para->lowest_nonlinear = data->hw.most_efficient;
     cppc_para->nominal          = data->hw.guaranteed;
@@ -585,7 +575,7 @@ int set_hwp_para(struct cpufreq_policy *
 
     /* Clear out activity window if lacking HW supported. */
     if ( (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_ACT_WINDOW) &&
-         !feature_hwp_activity_window )
+         !cpu_has_hwp_activity_window )
     {
         set_cppc->set_params &= ~XEN_SYSCTL_CPPC_SET_ACT_WINDOW;
         cleared_act_window = true;
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -115,14 +115,6 @@ static inline bool boot_cpu_has(unsigned
 }
 
 #define CPUID_PM_LEAF                                6
-#define CPUID6_EAX_HWP                               BIT(7, U)
-#define CPUID6_EAX_HWP_NOTIFICATION                  BIT(8, U)
-#define CPUID6_EAX_HWP_ACTIVITY_WINDOW               BIT(9, U)
-#define CPUID6_EAX_HWP_ENERGY_PERFORMANCE_PREFERENCE BIT(10, U)
-#define CPUID6_EAX_HWP_PACKAGE_LEVEL_REQUEST         BIT(11, U)
-#define CPUID6_EAX_HDC                               BIT(13, U)
-#define CPUID6_EAX_HWP_PECI                          BIT(16, U)
-#define CPUID6_EAX_HW_FEEDBACK                       BIT(19, U)
 
 /* CPUID level 0x00000001.edx */
 #define cpu_has_fpu             1
@@ -179,6 +171,14 @@ static inline bool boot_cpu_has(unsigned
 /* CPUID level 0x00000006.eax */
 #define cpu_has_turbo           host_cpu_policy.basic.turbo
 #define cpu_has_arat            host_cpu_policy.basic.arat
+#define cpu_has_hwp             host_cpu_policy.basic.hwp
+#define cpu_has_hwp_notification host_cpu_policy.basic.hwp_notification
+#define cpu_has_hwp_activity_window host_cpu_policy.basic.hwp_activity_window
+#define cpu_has_hwp_epp        host_cpu_policy.basic.hwp_epp
+#define cpu_has_hwp_plr        host_cpu_policy.basic.hwp_plr
+#define cpu_has_hdc            host_cpu_policy.basic.hdc
+#define cpu_has_hwp_peci       host_cpu_policy.basic.hwp_peci
+#define cpu_has_hw_feedback    host_cpu_policy.basic.hw_feedback
 
 /* CPUID level 0x00000006.ecx */
 #define cpu_has_aperfmperf      host_cpu_policy.basic.aperfmperf



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:34:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:34:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170562.1495615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVlk-0001YA-07; Mon, 24 Nov 2025 12:34:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170562.1495615; Mon, 24 Nov 2025 12:34:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVlj-0001Y3-SV; Mon, 24 Nov 2025 12:34:11 +0000
Received: by outflank-mailman (input) for mailman id 1170562;
 Mon, 24 Nov 2025 12:34:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Sr25=6A=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vNVli-0001Xp-SJ
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:34:10 +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 df2204a0-c931-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 13:34:08 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-b73545723ebso791712266b.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:34:08 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cf0435sm1285238866b.4.2025.11.24.04.34.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 04:34: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: df2204a0-c931-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987648; x=1764592448; 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=+sSuYdsdwkxhTsu6a2x7f7aj3mdyYmC59jrVxhin0Uo=;
        b=ilr5LO2Jsh3gObk2tOqXR+5Vu26Ze3EJFaRAWdIsttF1CczFz19VTytmh/V4Z5GbL3
         2Tey5Z7cftmMscKigNfqcq7beN19fiyuMmS9q2TcicHBtDjCo5c4jPKWYmPxmFAnR650
         HiMgeuZdfYey79J/gzNbcsuLLw88fsVLpKzBbbVIRkr54Pop4OjmHFEpGpR96JIO63ez
         Zjvzs4I6Hh6oh+lMcKx/9JDpTGQGkE61riA83BrWcIjy5JsD5yZ6t4CMttYR78gfWatx
         N//Ds67T9NORYNr3yg6XhznzGyRvKyCYwy9V2EkZYnRhIvOc/PExVKvMghLcvFdprU2B
         26Cw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987648; x=1764592448;
        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=+sSuYdsdwkxhTsu6a2x7f7aj3mdyYmC59jrVxhin0Uo=;
        b=aE2e5GQOzJAS3YOCs7ys7tlbLSxFgRYxtCfsKcFQRKr9du9XS2voUdo7UZkWICYNbo
         TUMpeVAGiinZKv4SAGMDJmiZXk4v8s0c7oJOSyKN9J/MN/0swWZJQnOlx4WyygOdJXCM
         37FKgCyMSI0JgjBVU7/0YKV5h/iFcJ75Kn2Re3TOdyuGfMOl0Y9GF4EdbaLTGJ0oHJRt
         Wj4m9a0nuIWtp4Ut10Q+Ne8Zy4T7roR8z2tDT/5OMrRSs0b00IBSXXekqSwjBvgSFqv8
         zdbWqlKuh6Lh3DVNoG276UtZowQxLUhkdt9oB+76O7RNqpvWvSSJ/+o0hqtZW9My2E9m
         oDZQ==
X-Gm-Message-State: AOJu0YwbQ+gTkrxmTaK8hKIejjTsK1tGhvNNrBgRg3IR3fpauLtQYYV5
	d5i3amLU94nBs1quz8+rlwRWp7HkbAS6EDW9zzNJvpanw9e3uGeGM/pPXp+JwT0a
X-Gm-Gg: ASbGnctGvD9KUN9MXMTTSJm02Novpikeu4v1sQPwgrqGkHhTVvqm61NfKvDXzxoOMSy
	o2/FqwxYNeYv2oI4Us/E6+QTAWApuREgnb45/Vw192VJ4zyBhqHqk0JT5vzs3N4elKubI1APVkb
	M/qznfjCi+l89zNdRi/6w5b7nNRviFrxSdBCi1T1bC1+XA5xU/Xm6zBkWu4TSV1b4vfuUPzca7K
	10P4zPe8p3sbuv8jMdJXfmTVWaxtQR3UWD3T553IOWKbtyw+Oi4FeFF3YeKDdkNah1eRoznDVK7
	HzbrFmsyBEAQ0SgUpA7jEFjY6m6ETYptVkoz6klMNlg2rUlfFlcWQSSp961vLjAi6Y5dTwxUCWg
	KgordK2eSXY7LWaJLdVYtf/DYG2Bh8Zixm7UrR0ml/24qN3N+/wxtpuqEFx5xarnqo32n1M5N+C
	1zJmk5szsJCyIA0VshTZ6K6cD3B9Ott0TX70bA4/Eedl2Hk74adhUeWg0=
X-Google-Smtp-Source: AGHT+IFeVvtdieypPfUUuFa98jmCPo/+NVn9t8wvxA4TkdblLsWeBbTIB7f6Iw/e9IzssQAGdXUBMg==
X-Received: by 2002:a17:907:d05:b0:b73:6b24:14b5 with SMTP id a640c23a62f3a-b7671a47bafmr1395645166b.31.1763987647315;
        Mon, 24 Nov 2025 04:34:07 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=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/19] xen/riscv: introduce p2m functionality
Date: Mon, 24 Nov 2025 13:33:33 +0100
Message-ID: <cover.1763986955.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.51.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In this patch series are introduced necessary functions to build and manage
RISC-V guest page tables and MMIO/RAM mappings.

---
Changes in V5:
 - Addressed comments for v4.
 - The following patches were Acked-by:
   - [v5 16/18] xen/riscv: implement mfn_valid() and page
   - [v5 15/18] xen/riscv: implement put_page()
   - [v5 14/18] xen/riscv: Implement superpage splitting for p2m mappings
   - [v5 09/18] xen/riscv: implement function to map memory in guest p2m
   - [v5 07/18] xen/riscv: add new p2m types and helper macros for type classification
   - [v5 03/18] xen/riscv: introduce things necessary for p2m initialization
---
Changes in V4:
 - Merged to staging:
   - xen/riscv: introduce sbi_remote_hfence_gvma()
   - xen/riscv: introduce sbi_remote_hfence_gvma_vmid()
 - Drop "xen/riscv: introduce page_{get,set}_xenheap_gfn()" as grant tables aren't going to be introduced for the moment. Also, drops other parts connected to grant tables support.
 - All other changes are patch specific.
---
Changes in V3:
 - Introduce metadata table to store P2M types.
 - Use x86's way to allocate VMID.
 - Abstract Arm-specific p2m type name for device MMIO mappings.
 - All other updates please look at specific patch.
---
Changes in V2:
 - Merged to staging:
   - [PATCH v1 1/6] xen/riscv: add inclusion of xen/bitops.h to asm/cmpxchg.h
 - New patches:
   - xen/riscv: implement sbi_remote_hfence_gvma{_vmid}().
 - Split patch "xen/riscv: implement p2m mapping functionality" into smaller
   one patches:
   - xen/riscv: introduce page_set_xenheap_gfn()
   - xen/riscv: implement guest_physmap_add_entry() for mapping GFNs to MFNs
   - xen/riscv: implement p2m_set_entry() and __p2m_set_entry()
   - xen/riscv: Implement p2m_free_entry() and related helpers
   - xen/riscv: Implement superpage splitting for p2m mappings
   - xen/riscv: implement p2m_next_level()
   - xen/riscv: Implement p2m_entry_from_mfn() and support PBMT configuration
 - Move root p2m table allocation to separate patch:
   xen/riscv: add root page table allocation
 - Drop dependency of this patch series from the patch witn an introduction of
   SvPBMT as it was merged.
 - Patch "[PATCH v1 4/6] xen/riscv: define pt_t and pt_walk_t structures" was
   renamed to xen/riscv: introduce pte_{set,get}_mfn() as after dropping of
   bitfields for PTE structure, this patch introduce only pte_{set,get}_mfn().
 - Rename "xen/riscv: define pt_t and pt_walk_t structures" to
   "xen/riscv: introduce pte_{set,get}_mfn()" as pt_t and pt_walk_t were
   dropped.
 - Introduce guest domain's VMID allocation and manegement.
 - Add patches necessary to implement p2m lookup:
   - xen/riscv: implement mfn_valid() and page reference, ownership handling helpers
   - xen/riscv: add support of page lookup by GFN
 - Re-sort patch series.
 - All other changes are patch-specific. Please check them.
---

Oleksii Kurochko (19):
  xen/riscv: avoid redundant HGATP*_MODE_SHIFT and HGATP*_VMID_SHIFT
  xen/riscv: detect and initialize G-stage mode
  xen/riscv: introduce VMID allocation and manegement
  xen/riscv: introduce things necessary for p2m initialization
  xen/riscv: construct the P2M pages pool for guests
  xen/riscv: add root page table allocation
  xen/riscv: introduce pte_{set,get}_mfn()
  xen/riscv: add new p2m types and helper macros for type classification
  xen/dom0less: abstract Arm-specific p2m type name for device MMIO
    mappings
  xen/riscv: implement function to map memory in guest p2m
  xen/riscv: implement p2m_set_range()
  xen/riscv: Implement p2m_free_subtree() and related helpers
  xen/riscv: Implement p2m_pte_from_mfn() and support PBMT configuration
  xen/riscv: implement p2m_next_level()
  xen/riscv: Implement superpage splitting for p2m mappings
  xen/riscv: implement put_page()
  xen/riscv: implement mfn_valid() and page reference, ownership
    handling helpers
  xen/riscv: add support of page lookup by GFN
  xen/riscv: introduce metadata table to store P2M type

 docs/misc/xen-command-line.pandoc           |    9 +
 xen/arch/arm/include/asm/p2m.h              |    5 +
 xen/arch/riscv/Makefile                     |    3 +
 xen/arch/riscv/cpufeature.c                 |    1 +
 xen/arch/riscv/include/asm/Makefile         |    1 -
 xen/arch/riscv/include/asm/cpufeature.h     |    1 +
 xen/arch/riscv/include/asm/domain.h         |   23 +
 xen/arch/riscv/include/asm/flushtlb.h       |   13 +-
 xen/arch/riscv/include/asm/mm.h             |   29 +-
 xen/arch/riscv/include/asm/p2m.h            |  185 ++-
 xen/arch/riscv/include/asm/page.h           |   37 +
 xen/arch/riscv/include/asm/paging.h         |   20 +
 xen/arch/riscv/include/asm/riscv_encoding.h |   23 +-
 xen/arch/riscv/include/asm/vmid.h           |   14 +
 xen/arch/riscv/mm.c                         |   69 +-
 xen/arch/riscv/p2m.c                        | 1443 +++++++++++++++++++
 xen/arch/riscv/paging.c                     |  139 ++
 xen/arch/riscv/setup.c                      |    3 +
 xen/arch/riscv/stubs.c                      |    5 -
 xen/arch/riscv/vmid.c                       |  170 +++
 xen/common/device-tree/dom0less-build.c     |    2 +-
 21 files changed, 2158 insertions(+), 37 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/paging.h
 create mode 100644 xen/arch/riscv/include/asm/vmid.h
 create mode 100644 xen/arch/riscv/p2m.c
 create mode 100644 xen/arch/riscv/paging.c
 create mode 100644 xen/arch/riscv/vmid.c

-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:34:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:34:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170563.1495626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVll-0001lb-8F; Mon, 24 Nov 2025 12:34:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170563.1495626; Mon, 24 Nov 2025 12:34:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVll-0001lU-3D; Mon, 24 Nov 2025 12:34:13 +0000
Received: by outflank-mailman (input) for mailman id 1170563;
 Mon, 24 Nov 2025 12:34:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Sr25=6A=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vNVlj-0001Xp-KP
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:34:11 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e00fcc8a-c931-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 13:34:10 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-b739b3fc2a0so576111466b.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:34:09 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cf0435sm1285238866b.4.2025.11.24.04.34.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 04: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: e00fcc8a-c931-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987649; x=1764592449; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=J8ifjKP0EguzdGYi8KL9vzcWewOoqZ+j/iRWQquu0b4=;
        b=OmUZ4KR3Ab5Ys9R+yOlQIjRgRUsJw9aClbJrrw1kKXv9qnPCEipz5UQlWye99M+9Co
         N0V88fTasYdHPTmZf9J/rBEZ/GCb4nWk83Tpw6hDShkykYOYoWfhRyWyZbmZbJJEjMS0
         N2kB5R5uG/TztA8ok3HaxlpmbUQPF19NMM8aEcdCUhrEMVg5lUtKq5FmMS2pOuMIH1IK
         2eydHaE6eKJPkDNCCvi/nRCP/RheLMITid7wcpq4b8IEwlwPmhlXk9UpwkwFaP4mTLg7
         zorQrFOj405+pVeoa347T8r+F/BoFIdcdyT827AiW6jJp90tlCVwybEVBQlLLNV3mQcC
         AXxg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987649; x=1764592449;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=J8ifjKP0EguzdGYi8KL9vzcWewOoqZ+j/iRWQquu0b4=;
        b=Ab5QeLZRFQOgPXVh2F4lyB5Oi2FAmM/UMGcpNKYPzegsAacHHPYF2NZObkP6h8/Qzf
         vK7tOB3d8iVr85nqcDbPpz0h4VZ9Xvn3oxcfSuv8nwCicVCqTwRg488oSeAjluKx/SPE
         A6v7Il9RA7zr7tH6ePG/Zh3HWliDAGFjwPrYlQFSBcelLIt/qFfGqMgT+eOw3jNkT7f4
         isFIWN2J3baal10lCsEKVJa8FauNNulFA+LHPT06aIz3F0Ak52xU4N3Yp1UFnG+PdVuM
         VhSlvuOLVj6sUKhKMktXPE6h3Hc6VlDKfJB8eOA9XWi+jObfxHKQAW+ZMMiycqHjA88L
         mt9A==
X-Gm-Message-State: AOJu0YxaF64ZE8DiRGc/oWi53LUowQ91egfyloyQHVp1SB06IdLUWxJx
	t1cIyBprlfHgRMdlxNd66VGIa6HySNFW/PtBWIK0r0FEnYAUlSEpVjzvRziEK0ab
X-Gm-Gg: ASbGncuqXoUjNsaUTepShCYC86SsmSt6JvrKOm6afkGTIweaqQF282s8cRjyVklkdNW
	w6wp65KSKXDZ4Rj3O9v1CWXbWRygYgbeR77sUmbKdMbZB4T6M2GgVNhZvCLlHim+WGINW40xHQE
	izJun422UDPSlGJhL0Qxi0gdHltPG968O0FdLvCRF8Mkk22eqfCd6WRkfW9q1a+hmBpINhQPoCF
	9IP1xxUTVgDwykc/xrd9QIDUL8yTWsiw4pdqeYNWB01CTg/2uMwpJzkMg87HsG0pIgvBBpQ4Ux7
	2IGyYS4y6+gWFIXDjGuAnGc0gAAHXc1Ngqw72ks2kiAza8V47eSny45E43JIdapegeVFhQi2KfE
	ZgG6hxYSfrQO6azA+d+tiYIxS5ikj3NX+brZLPr3hxp0wr036Q1EmOuWq4R970odjktLwhtFT25
	3Yul8JzSCUOLrioTFXF8KBlB7c1jU0lFnr6GjL40dU9yugLK3o/a0ZITc=
X-Google-Smtp-Source: AGHT+IG4wDzSKO0Vd1GcklLf6mk4Ak2TaRXHmfJt/3UODicn526SnOfRaen4zX2ZTnqSem0V63HOrg==
X-Received: by 2002:a17:907:9495:b0:b0e:d477:4972 with SMTP id a640c23a62f3a-b76715dcdcamr1133510866b.25.1763987648793;
        Mon, 24 Nov 2025 04:34:08 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 01/19] xen/riscv: avoid redundant HGATP*_MODE_SHIFT and HGATP*_VMID_SHIFT
Date: Mon, 24 Nov 2025 13:33:34 +0100
Message-ID: <f2f2e4ad98ca11763a4b754b80ea79121468ee36.1763986955.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <cover.1763986955.git.oleksii.kurochko@gmail.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

It is sufficient to use HGATP*_MODE_MASK and HGATP*_VMID_MASK without
the corresponding *_SHIFT definitions.

Rename HGATP{32,64}_PPN to HGATP{32,64}_PPN_MASK to more accurately
describe their purpose. The top-level HGATP_PPN and related aliases are
updated accordingly.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v6:
 - New patch.
---

 xen/arch/riscv/include/asm/riscv_encoding.h | 16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

diff --git a/xen/arch/riscv/include/asm/riscv_encoding.h b/xen/arch/riscv/include/asm/riscv_encoding.h
index 6cc8f4eb45..fd27f74cb7 100644
--- a/xen/arch/riscv/include/asm/riscv_encoding.h
+++ b/xen/arch/riscv/include/asm/riscv_encoding.h
@@ -132,15 +132,11 @@
 #define HGATP_MODE_SV39X4		_UL(8)
 #define HGATP_MODE_SV48X4		_UL(9)
 
-#define HGATP32_MODE_SHIFT		31
-#define HGATP32_VMID_SHIFT		22
 #define HGATP32_VMID_MASK		_UL(0x1FC00000)
-#define HGATP32_PPN			_UL(0x003FFFFF)
+#define HGATP32_PPN_MASK		_UL(0x003FFFFF)
 
-#define HGATP64_MODE_SHIFT		60
-#define HGATP64_VMID_SHIFT		44
 #define HGATP64_VMID_MASK		_ULL(0x03FFF00000000000)
-#define HGATP64_PPN			_ULL(0x00000FFFFFFFFFFF)
+#define HGATP64_PPN_MASK		_ULL(0x00000FFFFFFFFFFF)
 
 #define PMP_R				_UL(0x01)
 #define PMP_W				_UL(0x02)
@@ -166,10 +162,8 @@
 #define SATP_MODE_SHIFT			SATP64_MODE_SHIFT
 #define SATP_PPN_MASK			SATP64_PPN
 
-#define HGATP_PPN			HGATP64_PPN
-#define HGATP_VMID_SHIFT		HGATP64_VMID_SHIFT
+#define HGATP_PPN_MASK			HGATP64_PPN_MASK
 #define HGATP_VMID_MASK			HGATP64_VMID_MASK
-#define HGATP_MODE_SHIFT		HGATP64_MODE_SHIFT
 #else
 #define MSTATUS_SD			MSTATUS32_SD
 #define SSTATUS_SD			SSTATUS32_SD
@@ -177,10 +171,8 @@
 #define SATP_MODE_SHIFT			SATP32_MODE_SHIFT
 #define SATP_PPN_MASK			SATP32_PPN
 
-#define HGATP_PPN			HGATP32_PPN
-#define HGATP_VMID_SHIFT		HGATP32_VMID_SHIFT
+#define HGATP_PPN_MASK			HGATP32_PPN_MASK
 #define HGATP_VMID_MASK			HGATP32_VMID_MASK
-#define HGATP_MODE_SHIFT		HGATP32_MODE_SHIFT
 #endif
 
 #define TOPI_IID_SHIFT			16
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:34:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:34:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170564.1495636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVlp-00022b-FX; Mon, 24 Nov 2025 12:34:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170564.1495636; Mon, 24 Nov 2025 12: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 1vNVlp-00022M-A4; Mon, 24 Nov 2025 12:34:17 +0000
Received: by outflank-mailman (input) for mailman id 1170564;
 Mon, 24 Nov 2025 12: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=Sr25=6A=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vNVln-0001zv-Ah
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:34:15 +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 e2c2e286-c931-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:34:14 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b739b3fc2a0so576122566b.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:34:14 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cf0435sm1285238866b.4.2025.11.24.04.34.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 04: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: e2c2e286-c931-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987653; x=1764592453; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GHt+/vjl3FZPYDXPpDZDMvLZOLkTgHtSNP3M526OD5g=;
        b=SrVULXuvNWnFQk1GMjo9/l7cBeo29/Z0sCSkIE+9TeNkUZMDS43y9pqQJqVVyZIy73
         UsYa/laL672jlaR/3FdSpGVWwQn89ecDpPgjjIO4SIOy9V0fP2MREknHjPZ+MKNYxPRP
         0oB2pfgQY508U/hFNcwqR6XfT7SCveT2Js6AmXT4IAWtPDmnhka/VhaVDrAbOtceWz36
         UuISUOpcJ4xG/gGDqxh/GwjXvSCRrrSaUW0T42AcERghZIp8X8vQ7nfDSHbTVzf1OTwF
         5x2rwROCuY602f/QrmEtclsN39j2f5zGvfOwNEsKwkGykowWglSwFpKVsQ5zLXLtSZ7h
         pSSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987653; x=1764592453;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=GHt+/vjl3FZPYDXPpDZDMvLZOLkTgHtSNP3M526OD5g=;
        b=nbY9wU/adFAYMRMyaW604vwRbci0ATxzdliXgRtVh2wb7WhWvT3Q32zpn5SEk96tJe
         C+mWm8OfvBjhcFG7ttjrWFah/5k7D9S0PWz8/jsJLzmPPEgL3X/oUyyTY0DlNa7haE1w
         WfpIMfLNtmfGjD7qLIZfT0dCn342WNx3Za2nN2faYtV4zscMuJkCJi5EgNaPuEr6rElc
         LOhf90SqI5x3MR7tQNQQzvrZu92X53y2JpNUrVy/TlGoel8huC+VWNgJN0YgV06QFBDe
         6BbxfQOxdqG+34nUd/OjqxlN/buYQ1T48EqSL6sKkw2MuEoTIk4oiKmN5lwz6vqyAehH
         5e3g==
X-Gm-Message-State: AOJu0Yx4ZjEvTaYKr8n4Wx6nEG7YrucKh2J6h5K1e04sjMH78GckZr0j
	+WdWDSBcY0CVkvr+eTsS+3ldypJqpbRwPnAWWoBeTNZtBbY4FtxrohZh0FHD6ymK
X-Gm-Gg: ASbGncuaqgSCAjSnIoF/hD/os6kiL7BbyGMsKkkVVNcMpmaC81Og23Nc72XiqPBUPht
	bvKrYOOzGeV+2DCmo7fd6sBvi/vzkFiNOiUW/KIu8Y7IEaqGeGzPAyA4kcn0JLrvfsd8I2MawXN
	rS7wuSRVViECBqkoCi4Gdh5RSDlD3Nqp05JrDJbxcPx5Ib0rupk15gMnzjC5GauHt4aX3Kt2CtZ
	7hG/MUcp9lxdkiHHnNG4sR9MQ3dGJC2yvZo0qIabEuY1OSMVrTxIQelwVr4hI4TUcB8XpNdcVCZ
	BdwI9GXJmF0PoBIIEEiSjMz2HBB9MchC++dXmIFHzNCE2xUxso9tybYEYzgP1sFubzNBQey6S9f
	w1HrerK4+JsZvjmg8P5QeLqqvX/olSvtQdhZnXgHqmsMP7Q+NjW2wYvK6fWOKsvuIQFUgmfU1uW
	UiaKZ92XqxDGS7VnGCmta3tRmnMg+1viTY8hRePtfUOCNYulbhrI52m5E=
X-Google-Smtp-Source: AGHT+IHuOGSOob/SXpDQRyFzBLcqKb1T3g/UdybsojJQfLi550dBaGllkeZml/L3Iwj+NobGII8Wog==
X-Received: by 2002:a17:906:fe47:b0:b6d:3fc9:e60c with SMTP id a640c23a62f3a-b7671591b7dmr1317755566b.20.1763987653193;
        Mon, 24 Nov 2025 04:34:13 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 04/19] xen/riscv: introduce things necessary for p2m initialization
Date: Mon, 24 Nov 2025 13:33:37 +0100
Message-ID: <3ac28be95c3d9219bed7756cc0a78e735490f190.1763986955.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <cover.1763986955.git.oleksii.kurochko@gmail.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the following things:
- Update p2m_domain structure, which describe per p2m-table state, with:
  - lock to protect updates to p2m.
  - pool with pages used to construct p2m.
  - back pointer to domain structure.
- p2m_init() to initalize members introduced in p2m_domain structure.

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:
 - Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V4:
 - Move an introduction of clean_pte member of p2m_domain structure to the
   patch where it is started to be used:
     xen/riscv: add root page table allocation
 - Add prototype of p2m_init() to asm/p2m.h.
---
Changes in V3:
 - s/p2m_type/p2m_types.
 - Drop init. of p2m->clean_pte in p2m_init() as CONFIG_HAS_PASSTHROUGH is
   going to be selected unconditionaly. Plus CONFIG_HAS_PASSTHROUGH isn't
   ready to be used for RISC-V.
   Add compilation error to not forget to init p2m->clean_pte.
 - Move defintion of p2m->domain up in p2m_init().
 - Add iommu_use_hap_pt() when p2m->clean_pte is initialized.
 - Add the comment above p2m_types member of p2m_domain struct.
 - Add need_flush member to p2m_domain structure.
 - Move introduction of p2m_write_(un)lock() and p2m_tlb_flush_sync()
   to the patch where they are really used:
     xen/riscv: implement guest_physmap_add_entry() for mapping GFNs to MFN
 - Add p2m member to arch_domain structure.
 - Drop p2m_types from struct p2m_domain as P2M type for PTE will be stored
   differently.
 - Drop default_access as it isn't going to be used for now.
 - Move defintion of p2m_is_write_locked() to "implement function to map memory
   in guest p2m"  where it is really used.
---
Changes in V2:
 - Use introduced erlier sbi_remote_hfence_gvma_vmid() for proper implementation
   of p2m_force_tlb_flush_sync() as TLB flushing needs to happen for each pCPU
   which potentially has cached a mapping, what is tracked by d->dirty_cpumask.
 - Drop unnecessary blanks.
 - Fix code style for # of pre-processor directive.
 - Drop max_mapped_gfn and lowest_mapped_gfn as they aren't used now.
 - [p2m_init()] Set p2m->clean_pte=false if CONFIG_HAS_PASSTHROUGH=n.
 - [p2m_init()] Update the comment above p2m->domain = d;
 - Drop p2m->need_flush as it seems to be always true for RISC-V and as a
   consequence drop p2m_tlb_flush_sync().
 - Move to separate patch an introduction of root page table allocation.
---
 xen/arch/riscv/include/asm/domain.h |  5 +++++
 xen/arch/riscv/include/asm/p2m.h    | 33 +++++++++++++++++++++++++++++
 xen/arch/riscv/p2m.c                | 20 +++++++++++++++++
 3 files changed, 58 insertions(+)

diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index aac1040658..e688980efa 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -5,6 +5,8 @@
 #include <xen/xmalloc.h>
 #include <public/hvm/params.h>
 
+#include <asm/p2m.h>
+
 struct vcpu_vmid {
     uint64_t generation;
     uint16_t vmid;
@@ -24,6 +26,9 @@ struct arch_vcpu {
 
 struct arch_domain {
     struct hvm_domain hvm;
+
+    /* Virtual MMU */
+    struct p2m_domain p2m;
 };
 
 #include <xen/sched.h>
diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index 3776b98303..239f90622e 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -3,17 +3,48 @@
 #define ASM__RISCV__P2M_H
 
 #include <xen/errno.h>
+#include <xen/mm.h>
+#include <xen/rwlock.h>
+#include <xen/types.h>
 
 #include <asm/page-bits.h>
 
 #define paddr_bits PADDR_BITS
 
+/* Get host p2m table */
+#define p2m_get_hostp2m(d) (&(d)->arch.p2m)
+
 struct gstage_mode_desc {
     unsigned char mode;
     unsigned int paging_levels;
     char name[8];
 };
 
+/* Per-p2m-table state */
+struct p2m_domain {
+    /*
+     * Lock that protects updates to the p2m.
+     */
+    rwlock_t lock;
+
+    /* Pages used to construct the p2m */
+    struct page_list_head pages;
+
+    /* Back pointer to domain */
+    struct domain *domain;
+
+    /*
+     * P2M updates may required TLBs to be flushed (invalidated).
+     *
+     * Flushes may be deferred by setting 'need_flush' and then flushing
+     * when the p2m write lock is released.
+     *
+     * If an immediate flush is required (e.g, if a super page is
+     * shattered), call p2m_tlb_flush_sync().
+     */
+    bool need_flush;
+};
+
 /*
  * List of possible type for each page in the p2m entry.
  * The number of available bit per page in the pte for this purpose is 2 bits.
@@ -97,6 +128,8 @@ static inline bool arch_acquire_resource_check(struct domain *d)
 void guest_mm_init(void);
 unsigned char get_max_supported_mode(void);
 
+int p2m_init(struct domain *d);
+
 #endif /* ASM__RISCV__P2M_H */
 
 /*
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index a4c5b682ce..3017e9a260 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -3,6 +3,10 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/macros.h>
+#include <xen/mm.h>
+#include <xen/paging.h>
+#include <xen/rwlock.h>
+#include <xen/sched.h>
 #include <xen/sections.h>
 
 #include <asm/csr.h>
@@ -107,3 +111,19 @@ void __init guest_mm_init(void)
      */
     local_hfence_gvma_all();
 }
+
+int p2m_init(struct domain *d)
+{
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
+
+    /*
+     * "Trivial" initialisation is now complete.  Set the backpointer so the
+     * users of p2m could get an access to domain structure.
+     */
+    p2m->domain = d;
+
+    rwlock_init(&p2m->lock);
+    INIT_PAGE_LIST_HEAD(&p2m->pages);
+
+    return 0;
+}
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:34:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:34:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170565.1495640 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVlp-00025g-Pg; Mon, 24 Nov 2025 12:34:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170565.1495640; Mon, 24 Nov 2025 12: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 1vNVlp-00025L-I9; Mon, 24 Nov 2025 12:34:17 +0000
Received: by outflank-mailman (input) for mailman id 1170565;
 Mon, 24 Nov 2025 12:34: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=Sr25=6A=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vNVln-0001zv-Vo
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:34:15 +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 e0f46cbc-c931-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:34:11 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b762de65c07so169516466b.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:34:11 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cf0435sm1285238866b.4.2025.11.24.04.34.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 04:34: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: e0f46cbc-c931-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987651; x=1764592451; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3RCKGWT544iZvii9cfCS03IWRBChEzAZnQqMhakSVtY=;
        b=dHTlksm5U36qwvrf/Qhmr8O4J98qkttAwtcjR71sUXK/bwXi0a7NBl2xwSBmJhqlGo
         RreLlTHbpmFgA2omw2yJN2M4WTFSEAOE04OehFerb6xWIEQGyqBfhyKV3/5nixJ5XbRW
         YDUnDg5na7RNP7jxgj+ATSj8AjyfGWmwY+FqKzD7zYzWwA/FgKpXBbfyFZQxwGk0eKN2
         NSdGbxFOdsj0bc0uN2oqvceJ0FQwCxQYrqUu5b2dLN5G6GM/BlXorCV+WEhmAvVtzwsg
         wNOttcH8wll7y6e6qhQtiklu2WJxt1CHVa5l6tKwftyayMGFWv6eOaDanZkDbfIekCu4
         xSnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987651; x=1764592451;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=3RCKGWT544iZvii9cfCS03IWRBChEzAZnQqMhakSVtY=;
        b=ufGtc/oTp6G1U4sxlaQ1OVBnX+jR+UL/0RiyzEzlv0LUbXpu8ZD2igs6zGYHuJj0x8
         VySh+yk+Pjldo/yMAUjq+g9z02azW8fFGTqXf9fn3Jn/logEoOO6J4LGmPH54UWH2jHb
         LK+x63DxC9+dizHa683i2BTpKwiv0A3Zq9EGYAnBuobxEd/4JJaAKJs50dFdSZPgYrlh
         dSOxTt2c1NMFuGbu+4slfjyCHGOeYJGxh5wifRNBUQf2EijjH64aDeA6xlhgc6GXKLD1
         5C+2Owp+W/ApER3+Vn+73tYmBO2PKSxe/BfWHVlQHGQWTxDAkHSpd7277tI3o3CFH0r9
         sUnw==
X-Gm-Message-State: AOJu0Yy1zHHE/gSEoy67RTEVjByGUAnON59o5gQReMOVCJAByba2xRcN
	UsVywW/9KoL41XJAyGoiz2+sTNU/CmuGaCuhNsAcWcC/legTG3njCfr7TNY+9aSQ
X-Gm-Gg: ASbGnctc+sasCc9EpRkU53kCjrDo+eHaZXPeecSJrlYlXOu8sgd7eyKBDHe0n4o1vcL
	8bjEpvthJLS0bmnOxK5uC4IHWEQ9EYIEPjIM5koOSbjMcYdUBoz04pp/vQD71pW0BXBLCpzOwnO
	9mS8EHt76u0nxq/Iom8JSzFwCkIWcWsKSc+dh2y13Yaj06IlOQyH4yUoSgY6v/xVZ4KkAIEBwWV
	PZzZQZVuXXL5m32FzezmwwVnOOxfA8aQdxTLHW5Z0fCBxDTuSQlRPIDpaN7wEbcrJzQWcmnZo2u
	W7WsHwMY+xugDxyrPZoum8OSZs+CgJ690uqC2QRXel+m4LiuWryuytUKx3xBUzn4eFgtyj+7CWY
	y3x4KoGd56K0Z/DNbxI03VdYW0bGWcomaZtwZTR4tVdnCJOVhSA/hbUie+qKBJZ9dMRICH1A5By
	HMUy0Yw2AxpJAjBL4VpMkB+ALazwfCFEXKGzos8b9VKcTTXQea3uw0TrQ=
X-Google-Smtp-Source: AGHT+IH3PLCXYIO0jAk8S7WX9bfyfACIHvlNvFZJli4IUOuVxlNTj2b8s1+3Ok+xi+xRuUe4Jx9h1A==
X-Received: by 2002:a17:906:b7ca:b0:b76:74b6:da78 with SMTP id a640c23a62f3a-b7674b6db1fmr872029766b.35.1763987650379;
        Mon, 24 Nov 2025 04:34:10 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 02/19] xen/riscv: detect and initialize G-stage mode
Date: Mon, 24 Nov 2025 13:33:35 +0100
Message-ID: <0e32a6bd86828952d7494b8d49b48d512f53cada.1763986955.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <cover.1763986955.git.oleksii.kurochko@gmail.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce gstage_mode_detect() and guest_mm_init() to probe supported
G-stage paging modes at boot. The function iterates over possible
HGATP modes (Sv32x4 on RV32, Sv39x4/Sv48x4/Sv57x4 on RV64) and selects
the largest supported MMU translation address mode by programming
CSR_HGATP and reading it back.

The selected mode is stored in max_gstage_mode (marked __ro_after_init)
and reported via printk. If no supported mode is found, Xen panics
since Bare mode is not expected to be used.

Finally, CSR_HGATP is cleared and a local_hfence_gvma_all() is issued
to avoid any potential speculative pollution of the TLB, as required
by the RISC-V spec.

The following issue starts to occur:
 ./<riscv>/asm/flushtlb.h:37:55: error: 'struct page_info'  declared inside
   parameter list will not be visible outside of this definition or
   declaration [-Werror]
 37 | static inline void page_set_tlbflush_timestamp(struct page_info *page)
To resolve it, forward declaration of struct page_info is added to
<asm/flushtlb.h.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V6:
 - Sort items properly in riscv/Makefile.
 - Move the  call of local_hfence_gvma_all() from gstage_mode_detect()
   to pre_gstage_init() to avoid a redundancy when vmid_init() will be
   introduced.
 - Rename pre_gstage_init() to more generic name guest_mm_init().
 - s/gstage_mode/max_gstage_mode
 - Reverse direction of gstage mode detection to find a maximum supported mode to understand what modes are supported. (lower modes are supported automatically)
 - Introduce struct gstage_mode_desc.
 - Introduce get_max_supported_mode().
---
Changes in V5:
 - Add static and __initconst for local variable modes[] in
   gstage_mode_detect().
 - Change type for gstage_mode from 'unsigned long' to 'unsigned char'.
 - Update the comment inisde defintion if modes[] variable in
   gstage_mode_detect():
   - Add information about Bare mode.
   - Drop "a paged virtual-memory scheme described in Section 10.3" as it isn't
     relevant here.
 - Drop printing of function name when chosen G-stage mode message is printed.
 - Drop the call of gstage_mode_detect() from start_xen(). It will be added into
   p2m_init() when the latter will be introduced.
 - Introduce pre_gstage_init().
 - make gstage_mode_detect() static.
---
Changes in V4:
 - New patch.
---
 xen/arch/riscv/Makefile                     |   1 +
 xen/arch/riscv/include/asm/flushtlb.h       |   7 ++
 xen/arch/riscv/include/asm/p2m.h            |   9 ++
 xen/arch/riscv/include/asm/riscv_encoding.h |   5 +
 xen/arch/riscv/p2m.c                        | 106 ++++++++++++++++++++
 xen/arch/riscv/setup.c                      |   3 +
 6 files changed, 131 insertions(+)
 create mode 100644 xen/arch/riscv/p2m.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index e2b8aa42c8..5a6f8c115d 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -6,6 +6,7 @@ obj-y += imsic.o
 obj-y += intc.o
 obj-y += irq.o
 obj-y += mm.o
+obj-y += p2m.o
 obj-y += pt.o
 obj-$(CONFIG_RISCV_64) += riscv64/
 obj-y += sbi.o
diff --git a/xen/arch/riscv/include/asm/flushtlb.h b/xen/arch/riscv/include/asm/flushtlb.h
index 51c8f753c5..e70badae0c 100644
--- a/xen/arch/riscv/include/asm/flushtlb.h
+++ b/xen/arch/riscv/include/asm/flushtlb.h
@@ -7,6 +7,13 @@
 
 #include <asm/sbi.h>
 
+struct page_info;
+
+static inline void local_hfence_gvma_all(void)
+{
+    asm volatile ( "hfence.gvma zero, zero" ::: "memory" );
+}
+
 /* 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/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index e43c559e0c..3776b98303 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -8,6 +8,12 @@
 
 #define paddr_bits PADDR_BITS
 
+struct gstage_mode_desc {
+    unsigned char mode;
+    unsigned int paging_levels;
+    char name[8];
+};
+
 /*
  * List of possible type for each page in the p2m entry.
  * The number of available bit per page in the pte for this purpose is 2 bits.
@@ -88,6 +94,9 @@ static inline bool arch_acquire_resource_check(struct domain *d)
     return false;
 }
 
+void guest_mm_init(void);
+unsigned char get_max_supported_mode(void);
+
 #endif /* ASM__RISCV__P2M_H */
 
 /*
diff --git a/xen/arch/riscv/include/asm/riscv_encoding.h b/xen/arch/riscv/include/asm/riscv_encoding.h
index fd27f74cb7..e0a5e8b58b 100644
--- a/xen/arch/riscv/include/asm/riscv_encoding.h
+++ b/xen/arch/riscv/include/asm/riscv_encoding.h
@@ -131,10 +131,13 @@
 #define HGATP_MODE_SV32X4		_UL(1)
 #define HGATP_MODE_SV39X4		_UL(8)
 #define HGATP_MODE_SV48X4		_UL(9)
+#define HGATP_MODE_SV57X4		_UL(10)
 
+#define HGATP32_MODE_MASK		_UL(0x80000000)
 #define HGATP32_VMID_MASK		_UL(0x1FC00000)
 #define HGATP32_PPN_MASK		_UL(0x003FFFFF)
 
+#define HGATP64_MODE_MASK		_ULL(0xF000000000000000)
 #define HGATP64_VMID_MASK		_ULL(0x03FFF00000000000)
 #define HGATP64_PPN_MASK		_ULL(0x00000FFFFFFFFFFF)
 
@@ -164,6 +167,7 @@
 
 #define HGATP_PPN_MASK			HGATP64_PPN_MASK
 #define HGATP_VMID_MASK			HGATP64_VMID_MASK
+#define HGATP_MODE_MASK			HGATP64_MODE_MASK
 #else
 #define MSTATUS_SD			MSTATUS32_SD
 #define SSTATUS_SD			SSTATUS32_SD
@@ -173,6 +177,7 @@
 
 #define HGATP_PPN_MASK			HGATP32_PPN_MASK
 #define HGATP_VMID_MASK			HGATP32_VMID_MASK
+#define HGATP_MODE_MASK			HGATP32_MODE_MASK
 #endif
 
 #define TOPI_IID_SHIFT			16
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
new file mode 100644
index 0000000000..7bb0fc0ab4
--- /dev/null
+++ b/xen/arch/riscv/p2m.c
@@ -0,0 +1,106 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/init.h>
+#include <xen/lib.h>
+#include <xen/macros.h>
+#include <xen/sections.h>
+
+#include <asm/csr.h>
+#include <asm/flushtlb.h>
+#include <asm/p2m.h>
+#include <asm/riscv_encoding.h>
+
+static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
+    .mode = HGATP_MODE_OFF,
+    .paging_levels = 0,
+    .name = "Bare",
+};
+
+unsigned char get_max_supported_mode(void)
+{
+    return max_gstage_mode.mode;
+}
+
+static void __init gstage_mode_detect(void)
+{
+    static const struct gstage_mode_desc modes[] __initconst = {
+        /*
+         * Based on the RISC-V spec:
+         *   Bare mode is always supported, regardless of SXLEN.
+         *   When SXLEN=32, the only other valid setting for MODE is Sv32.
+         *   When SXLEN=64, three paged virtual-memory schemes are defined:
+         *   Sv39, Sv48, and Sv57.
+         */
+#ifdef CONFIG_RISCV_32
+        { HGATP_MODE_SV32X4, 2, "Sv32x4" }
+#else
+        { HGATP_MODE_SV39X4, 3, "Sv39x4" },
+        { HGATP_MODE_SV48X4, 4, "Sv48x4" },
+        { HGATP_MODE_SV57X4, 5, "Sv57x4" },
+#endif
+    };
+
+    unsigned int mode_idx;
+
+    for ( mode_idx = ARRAY_SIZE(modes); mode_idx-- > 0; )
+    {
+        unsigned long mode = modes[mode_idx].mode;
+
+        csr_write(CSR_HGATP, MASK_INSR(mode, HGATP_MODE_MASK));
+
+        if ( MASK_EXTR(csr_read(CSR_HGATP), HGATP_MODE_MASK) == mode )
+        {
+            max_gstage_mode.mode = modes[mode_idx].mode;
+            max_gstage_mode.paging_levels = modes[mode_idx].paging_levels;
+            safe_strcpy(max_gstage_mode.name, modes[mode_idx].name);
+
+            break;
+        }
+    }
+
+    if ( max_gstage_mode.mode == HGATP_MODE_OFF )
+        panic("Xen expects that G-stage won't be Bare mode\n");
+
+    printk("Max supported G-stage mode is %s\n", max_gstage_mode.name);
+
+    csr_write(CSR_HGATP, 0);
+
+    /* local_hfence_gvma_all() will be called at the end of guest_mm_init. */
+}
+
+void __init guest_mm_init(void)
+{
+    gstage_mode_detect();
+
+    /*
+     * As gstage_mode_detect() is changing CSR_HGATP, it is necessary to flush
+     * guest TLB because:
+     *
+     * From RISC-V spec:
+     *   Speculative executions of the address-translation algorithm behave as
+     *   non-speculative executions of the algorithm do, except that they must
+     *   not set the dirty bit for a PTE, they must not trigger an exception,
+     *   and they must not create address-translation cache entries if those
+     *   entries would have been invalidated by any SFENCE.VMA instruction
+     *   executed by the hart since the speculative execution of the algorithm
+     *   began.
+     *
+     * Also, despite of the fact here it is mentioned that when V=0 two-stage
+     * address translation is inactivated:
+     *   The current virtualization mode, denoted V, indicates whether the hart
+     *   is currently executing in a guest. When V=1, the hart is either in
+     *   virtual S-mode (VS-mode), or in virtual U-mode (VU-mode) atop a guest
+     *   OS running in VS-mode. When V=0, the hart is either in M-mode, in
+     *   HS-mode, or in U-mode atop an OS running in HS-mode. The
+     *   virtualization mode also indicates whether two-stage address
+     *   translation is active (V=1) or inactive (V=0).
+     * But on the same side, writing to hgatp register activates it:
+     *   The hgatp register is considered active for the purposes of
+     *   the address-translation algorithm unless the effective privilege mode
+     *   is U and hstatus.HU=0.
+     *
+     * Thereby it leaves some room for speculation even in this stage of boot,
+     * so it could be that we polluted local TLB so flush all guest TLB.
+     */
+    local_hfence_gvma_all();
+}
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 483cdd7e17..8f46f1a1de 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -22,6 +22,7 @@
 #include <asm/early_printk.h>
 #include <asm/fixmap.h>
 #include <asm/intc.h>
+#include <asm/p2m.h>
 #include <asm/sbi.h>
 #include <asm/setup.h>
 #include <asm/traps.h>
@@ -148,6 +149,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     console_init_postirq();
 
+    guest_mm_init();
+
     printk("All set up\n");
 
     machine_halt();
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:34:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:34:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170566.1495646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVlq-0002Dc-96; Mon, 24 Nov 2025 12:34:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170566.1495646; Mon, 24 Nov 2025 12:34:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVlq-0002C8-1z; Mon, 24 Nov 2025 12:34:18 +0000
Received: by outflank-mailman (input) for mailman id 1170566;
 Mon, 24 Nov 2025 12:34: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=Sr25=6A=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vNVlp-0001Xp-3o
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:34:17 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e31dcf89-c931-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 13:34:15 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-644f90587e5so6502456a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:34:15 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cf0435sm1285238866b.4.2025.11.24.04.34.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 04: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: e31dcf89-c931-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987654; x=1764592454; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BknfGuBsUxZBL8rid9/xP+veNGSFTsAItrjcV/2heyg=;
        b=VHUHKc1pRgCoZf1PRb/GyKVD6JyISEFomMmKrec9Nwh3guddXIFaHvB5VLr1su8pVy
         aEzwZhv/EyYF887Krd7rsjRnMXoGIXuiJYb4pA2BIxV+ftkU7U1RXAB/vN38VElt3IT5
         mxxlGVRRDrceD5vyYyzXVmVK7WQM9KeoiLgpEw+F5morCRx8MULCBLH3jFKW0q8SOq+9
         cTQPotjHHtl1Cia/AG5H26uTb3b0x+Z4DcEMVIVLbjVRz0k75myHW3n881BLyH9VYgpH
         cFgltLiQTlF0M9cvIl581bVL5iztkO00XkZ3bPSw9MbA8dxLApVldoNFHL/4UXJtx/Y3
         b/NA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987654; x=1764592454;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=BknfGuBsUxZBL8rid9/xP+veNGSFTsAItrjcV/2heyg=;
        b=LNVnV4vmDDR8mT56r47+vUTO2DjtmGx5g9dguAZmPVd55tZBXOK72iR6MW8Ib5gf+u
         XNykG6rlGxCCd+kU7i8m1ixGfhBFyeD26PDzZ1gCGOkapBkD+3pElPRlZhGi3yQor9Gw
         KrziS0DpRtkAUCwAs03oaWcfCUpFdT5jFzASy9R26HM31HdCF3h8jbyuyIDuYLfeMoRv
         WwEM5BEnHKmXZ9YKyhpWQY0cOPdRvGj7y+iasKIL7A3dkf2MoMl7TFMFj7JNkrjeSzOC
         chd6Iadof24qtLb/HxVuxcbNZkde1MIo8KugJBnfTs8agCJtPGDqCc4Gok2eibposBC3
         3Wfg==
X-Gm-Message-State: AOJu0Yxx8eXfN2/XApdArYz/Q1zta3NzYS1WZlW2aIAzYU01uQiMClb5
	RwuyOTOIpA87a2oCOG68xHQcTd5aiEs1LMf8KCehMFhBLsBN3gvEq14uV/svnTks
X-Gm-Gg: ASbGncu1DpwjQhaCBFp65himDQadt8QC5qzZIMv1kzR97WkTxNH2FYEeohuod/ktkr3
	FJlL/0mk+tJ38hjpPFUzZhaXpLKb00il6VENGRmv4FqlGfWS2a/oCioEUgMtUVC0cxW9xdtgjmr
	ILKAnLDuTZQfKARn+DHIjde/2hv0TnmiB4vqPsmO7ul5cYMOKl3kQD76h9pUna8+b0NwS0kwtla
	ayKRjOua2aHSStWFSz4JdP1lxE9sHu692BYZD5TZ6QFL0cd3uSw5GHW3jw4b1kvCcnu7Nj3+odA
	K8Y1Y12bKTArw08CUywckcVX07nR9s2Y4Y6CwnApsvjBYNYRZ6weEPArEDHEHhAqsGaeBNz9q31
	93qJIpq/9OJQCIVkramkUY22K6EJcRSV1WlY3V1YlfUu+XLFKaIRnsoaxdEVosoeuUhSot0EX6V
	QJcmRbRn0IKb8FGdGLfYXkf5GVa30D0D03AQYknXnyV6A7XTM5OYHAWWo=
X-Google-Smtp-Source: AGHT+IF4oytWobCUc/F8GZV8crZr3cyAx4i92C0AmhXDe4icoRWWdJrdOSx398t5nXdkMYgIQGcNKA==
X-Received: by 2002:a17:907:a05:b0:b6d:7288:973d with SMTP id a640c23a62f3a-b7671a15caemr1295240966b.56.1763987654084;
        Mon, 24 Nov 2025 04:34:14 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 05/19] xen/riscv: construct the P2M pages pool for guests
Date: Mon, 24 Nov 2025 13:33:38 +0100
Message-ID: <65e3337903d27f64728fe5f17b70d889be78bc73.1763986955.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <cover.1763986955.git.oleksii.kurochko@gmail.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement p2m_set_allocation() to construct p2m pages pool for guests
based on required number of pages.

This is implemented by:
- Adding a `struct paging_domain` which contains a freelist, a
  counter variable and a spinlock to `struct arch_domain` to
  indicate the free p2m pages and the number of p2m total pages in
  the p2m pages pool.
- Adding a helper `p2m_set_allocation` to set the p2m pages pool
  size. This helper should be called before allocating memory for
  a guest and is called from domain_p2m_set_allocation(), the latter
  is a part of common dom0less code.
- Adding implementation of paging_freelist_adjust() and
  paging_domain_init().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V5-6:
 - Nothing changed. Only rebase.
---
Changes in V4:
 - s/paging_freelist_init/paging_freelist_adjust.
 - Add empty line between definiton of paging_freelist_adjust()
   and paging_domain_init().
 - Update commit message.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v3:
 - Drop usage of p2m_ prefix inside struct paging_domain().
 - Introduce paging_domain_init() to init paging struct.
---
Changes in v2:
 - Drop the comment above inclusion of <xen/event.h> in riscv/p2m.c.
 - Use ACCESS_ONCE() for lhs and rhs for the expressions in
   p2m_set_allocation().
---
 xen/arch/riscv/Makefile             |  1 +
 xen/arch/riscv/include/asm/Makefile |  1 -
 xen/arch/riscv/include/asm/domain.h | 12 ++++++
 xen/arch/riscv/include/asm/paging.h | 13 ++++++
 xen/arch/riscv/p2m.c                | 18 ++++++++
 xen/arch/riscv/paging.c             | 65 +++++++++++++++++++++++++++++
 6 files changed, 109 insertions(+), 1 deletion(-)
 create mode 100644 xen/arch/riscv/include/asm/paging.h
 create mode 100644 xen/arch/riscv/paging.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 1098b6d926..2d1ad7a394 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -7,6 +7,7 @@ obj-y += intc.o
 obj-y += irq.o
 obj-y += mm.o
 obj-y += p2m.o
+obj-y += paging.o
 obj-y += pt.o
 obj-$(CONFIG_RISCV_64) += riscv64/
 obj-y += sbi.o
diff --git a/xen/arch/riscv/include/asm/Makefile b/xen/arch/riscv/include/asm/Makefile
index bfdf186c68..3824f31c39 100644
--- a/xen/arch/riscv/include/asm/Makefile
+++ b/xen/arch/riscv/include/asm/Makefile
@@ -6,7 +6,6 @@ generic-y += hardirq.h
 generic-y += hypercall.h
 generic-y += iocap.h
 generic-y += irq-dt.h
-generic-y += paging.h
 generic-y += percpu.h
 generic-y += perfc_defn.h
 generic-y += random.h
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index e688980efa..316e7c6c84 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -2,6 +2,8 @@
 #ifndef ASM__RISCV__DOMAIN_H
 #define ASM__RISCV__DOMAIN_H
 
+#include <xen/mm.h>
+#include <xen/spinlock.h>
 #include <xen/xmalloc.h>
 #include <public/hvm/params.h>
 
@@ -24,11 +26,21 @@ struct arch_vcpu {
     struct vcpu_vmid vmid;
 };
 
+struct paging_domain {
+    spinlock_t lock;
+    /* Free pages from the pre-allocated pool */
+    struct page_list_head freelist;
+    /* Number of pages from the pre-allocated pool */
+    unsigned long total_pages;
+};
+
 struct arch_domain {
     struct hvm_domain hvm;
 
     /* Virtual MMU */
     struct p2m_domain p2m;
+
+    struct paging_domain paging;
 };
 
 #include <xen/sched.h>
diff --git a/xen/arch/riscv/include/asm/paging.h b/xen/arch/riscv/include/asm/paging.h
new file mode 100644
index 0000000000..98d8b06d45
--- /dev/null
+++ b/xen/arch/riscv/include/asm/paging.h
@@ -0,0 +1,13 @@
+#ifndef ASM_RISCV_PAGING_H
+#define ASM_RISCV_PAGING_H
+
+#include <asm-generic/paging.h>
+
+struct domain;
+
+int paging_domain_init(struct domain *d);
+
+int paging_freelist_adjust(struct domain *d, unsigned long pages,
+                           bool *preempted);
+
+#endif /* ASM_RISCV_PAGING_H */
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 3017e9a260..857517f8ee 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -12,6 +12,7 @@
 #include <asm/csr.h>
 #include <asm/flushtlb.h>
 #include <asm/p2m.h>
+#include <asm/paging.h>
 #include <asm/riscv_encoding.h>
 #include <asm/vmid.h>
 
@@ -122,8 +123,25 @@ int p2m_init(struct domain *d)
      */
     p2m->domain = d;
 
+    paging_domain_init(d);
+
     rwlock_init(&p2m->lock);
     INIT_PAGE_LIST_HEAD(&p2m->pages);
 
     return 0;
 }
+
+/*
+ * Set the pool of pages to the required number of pages.
+ * Returns 0 for success, non-zero for failure.
+ * Call with d->arch.paging.lock held.
+ */
+int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
+{
+    int rc;
+
+    if ( (rc = paging_freelist_adjust(d, pages, preempted)) )
+        return rc;
+
+    return 0;
+}
diff --git a/xen/arch/riscv/paging.c b/xen/arch/riscv/paging.c
new file mode 100644
index 0000000000..2df8de033b
--- /dev/null
+++ b/xen/arch/riscv/paging.c
@@ -0,0 +1,65 @@
+#include <xen/event.h>
+#include <xen/lib.h>
+#include <xen/mm.h>
+#include <xen/sched.h>
+#include <xen/spinlock.h>
+
+int paging_freelist_adjust(struct domain *d, unsigned long pages,
+                           bool *preempted)
+{
+    struct page_info *pg;
+
+    ASSERT(spin_is_locked(&d->arch.paging.lock));
+
+    for ( ; ; )
+    {
+        if ( d->arch.paging.total_pages < pages )
+        {
+            /* Need to allocate more memory from domheap */
+            pg = alloc_domheap_page(d, MEMF_no_owner);
+            if ( pg == NULL )
+            {
+                printk(XENLOG_ERR "Failed to allocate pages.\n");
+                return -ENOMEM;
+            }
+            ACCESS_ONCE(d->arch.paging.total_pages)++;
+            page_list_add_tail(pg, &d->arch.paging.freelist);
+        }
+        else if ( d->arch.paging.total_pages > pages )
+        {
+            /* Need to return memory to domheap */
+            pg = page_list_remove_head(&d->arch.paging.freelist);
+            if ( pg )
+            {
+                ACCESS_ONCE(d->arch.paging.total_pages)--;
+                free_domheap_page(pg);
+            }
+            else
+            {
+                printk(XENLOG_ERR
+                       "Failed to free pages, freelist is empty.\n");
+                return -ENOMEM;
+            }
+        }
+        else
+            break;
+
+        /* Check to see if we need to yield and try again */
+        if ( preempted && general_preempt_check() )
+        {
+            *preempted = true;
+            return -ERESTART;
+        }
+    }
+
+    return 0;
+}
+
+/* Domain paging struct initialization. */
+int paging_domain_init(struct domain *d)
+{
+    spin_lock_init(&d->arch.paging.lock);
+    INIT_PAGE_LIST_HEAD(&d->arch.paging.freelist);
+
+    return 0;
+}
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:34:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:34:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170567.1495662 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVlr-0002e1-LQ; Mon, 24 Nov 2025 12:34:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170567.1495662; Mon, 24 Nov 2025 12:34:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVlr-0002cq-EI; Mon, 24 Nov 2025 12:34:19 +0000
Received: by outflank-mailman (input) for mailman id 1170567;
 Mon, 24 Nov 2025 12:34:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Sr25=6A=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vNVlp-0001zv-H1
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:34:17 +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 e3e1a403-c931-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:34:16 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-64080ccf749so6613056a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:34:16 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cf0435sm1285238866b.4.2025.11.24.04.34.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 04:34: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: e3e1a403-c931-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987655; x=1764592455; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=x0kkh2len0POcWyK7mHlcx2IMJzqnRN+NGdk0tX1/pw=;
        b=Wx6yHckzKt/8dSMg6THbeXp3ouoA6bSiGV3/E+3n4gvzDq8VREdZEDIbiBou+wGPvC
         /JSv1RN/VTSbSCJQDlnlRX2bueyhCLldkQ4Zz6FKQlVtHk69lw9vrbEGEduHic5L3UPt
         VGcck2oU2I1rUWIOborQTgInwlq+s7Xo5B43m95ARd0XDimj9A7FvTJXJ1aWGCyN2SAc
         6Y5tLYhw848FRxbAgnGRqZOpEauHKESspJZzowK4ww3oNu+Bgy7kGpbUS5e1MZWo0PFi
         lTXZdl92rc58ACM1F15s+dYxB3NUHBiOIDOS7DpmSFhfsgTdWm6JNvuy7z5lr1nhluH2
         CqAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987655; x=1764592455;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=x0kkh2len0POcWyK7mHlcx2IMJzqnRN+NGdk0tX1/pw=;
        b=QT7LgP11R5TQWtXPF7skeeoDRJ0grmqgkafqaRHqI3sm7fQfna2vOXxSD/dK2vio6x
         Ck0R7Kr95tR3xPY3dHZ0MsgNaz4zEGmChrIXpbdueIIzaNUYIrbWlYr9Iqd0urXWIDlK
         Ju5x0YXck/RJF4yKFSEyUdPJhdS6+xCAHr6BkzJuH0GB16m9CGmo00VcH1tzAPhXD9c9
         8GRGhLwWqBSoxeydVd9xoFdiq95NPgJt83IUZPVTRCnocFEj1kdFUU4MEqg6HGm28Ucn
         wcE6LDbCBHZ4frzAyqviUoXvvoSxLAOfCty0p3GReIsDCPEFjmOBogd0DLjIat0NNNBP
         f8CA==
X-Gm-Message-State: AOJu0Yy4FHlcj6ea/dSukLEmVPSk1JhIzuRhBp+H/mh18kwqepyQDT2d
	0psJToXwlhqFWY54hSBGSwgVGiN5imu61TTwY3Ql8uBzNzB9a6w9pLba1NylQTWy
X-Gm-Gg: ASbGnctNY2s8Lukeb0rXhUe7Rgs7LmhKb71ZdBM9UBb7Zkb3ie/N8CgCIIZW0JpIIaM
	2AvpHlFVGWqD46AFQNbW18bXrKDj2ZqhnAM2fthMQwOeCuUM5k5yjv4ptI0JxCEWJxUrya4bWAd
	/tQBjiwv/DEdhRbT3pUA/4bxG1lt2m53RJvvcyHy/vFA4ZUuxiUVYBKCMwWr8M6ptlbWrytRJQR
	RU4RgDlXcgk0EWsyTGOe/W0H9MXMmdWs1FB2H5UjVO0s4SKzgHD9H6Ydp4ofpoqXX0W41E5Qb84
	W+da0TmSuwl8Gr2yfjf7cdhgrg5kuwOBEP3l2omSphgt5ND7ixiG8m3VupxwQBqhWu+/K3MBqfE
	q3/6qNg5ox5ePio4CtobSz4K8agq1ZuHTQI1my1NUNdHW7Qk899vhVxCse0Y9FCI6CbU0mE/9xl
	gvYaK3nBVRCfPogSSbc0X8Ns002yak4bsGeMTEOzwwBKJGYnFwn/UmuG8=
X-Google-Smtp-Source: AGHT+IFd6NPyHxC1lVgCRC8rblp4bBgTPDEm9RhXWQ/I3sAd5AlMkVpp5tv/hASl7njL6FAC6gQucw==
X-Received: by 2002:a17:907:6095:b0:b6d:6c1a:319b with SMTP id a640c23a62f3a-b7671549cd3mr1226626466b.5.1763987655054;
        Mon, 24 Nov 2025 04:34:15 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 06/19] xen/riscv: add root page table allocation
Date: Mon, 24 Nov 2025 13:33:39 +0100
Message-ID: <fc5db52dc3076b19d0b7cfa6e5cb541b1ad5d545.1763986955.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <cover.1763986955.git.oleksii.kurochko@gmail.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=all
Content-Transfer-Encoding: 8bit

Introduce support for allocating and initializing the root page table
required for RISC-V stage-2 address translation.

To implement root page table allocation the following is introduced:
- p2m_get_clean_page() and p2m_alloc_root_table(), p2m_allocate_root()
  helpers to allocate and zero a 16 KiB root page table, as mandated
  by the RISC-V privileged specification for Sv32x4/Sv39x4/Sv48x4/Sv57x4
  modes.
- Update p2m_init() to inititialize p2m_root_order.
- Add maddr_to_page() and page_to_maddr() macros for easier address
  manipulation.
- Introduce paging_ret_to_domheap() to return some pages before
  allocate 16 KiB pages for root page table.
- Allocate root p2m table after p2m pool is initialized.
- Add construct_hgatp() to construct the hgatp register value based on
  p2m->root, p2m->hgatp_mode and VMID.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V6:
 - Clean the memory page instead of frame_table[] in clear_and_clean_page().
 â€“ Remove full stops from log messages in paging.c and start the messages
   with a lowercase letter.
 - s/paging_ret_page_to_domheap/_paging_ret_to_domheap
 - s/paging_add_page_to_freelist/_paging_add_to_freelist
 - Introduce gstage_mode and initialize it.
---
Changes in V5:
 - Update proto of construct_hgatp(): make first argument pointer-to-const.
 - Code style fixes.
 - s/paging_ret_pages_to_freelist/paging_refill_from_domheap.
 - s/paging_ret_pages_to_domheap/paging_ret_to_domheap.
 - s/paging_ret_page_to_freelist/paging_add_page_to_freelist.
 - Drop ACCESS_ONCE() as all the cases where it is used are used under spinlock() hence ACCESS_ONCE() is redundant.
---
Changes in V4:
 - Drop hgatp_mode from p2m_domain as gstage_mode was introduced and
   initlialized earlier patch. So use gstage_mode instead.
 - s/GUEST_ROOT_PAGE_TABLE_SIZE/GSTAGE_ROOT_PAGE_TABLE_SIZE.
 - Drop p2m_root_order and re-define P2M_ROOT_ORDER:
     #define P2M_ROOT_ORDER  (ilog2(GSTAGE_ROOT_PAGE_TABLE_SIZE) - PAGE_SHIFT)
 - Update implementation of construct_hgatp(): use introduced gstage_mode
   and use MASK_INSRT() to construct ppn value.
 - Drop nr_root_pages variable inside p2m_alloc_root_table().
 - Update the printk's message inside paging_ret_pages_to_domheap().
 - Add an introduction of clean_pte member of p2m_domain structure to this
   patch as it is started to be used here.
   Rename clean_pte to clean_dcache.
 - Drop p2m_allocate_root() function as it is going to be used only in one
   place.
 - Propogate rc from p2m_alloc_root_table() in p2m_set_allocation().
 - Return P2M_ROOT_PAGES to freelist in case of allocation of root page
   table failed.
 - Add allocated root tables pages to p2m->pages pool so a usage of pages
   could be properly taken into account.
---
Changes in v3:
 - Drop insterting of p2m->vmid in hgatp_from_page() as now vmid is allocated
   per-CPU, not per-domain, so it will be inserted later somewhere in
   context_switch or before returning control to a guest.
 - use BIT() to init nr_pages in p2m_allocate_root() instead of open-code
   BIT() macros.
 - Fix order in clear_and_clean_page().
 - s/panic("Specify more xen,domain-p2m-mem-mb\n")/return NULL.
 - Use lock around a procedure of returning back pages necessary for p2m
   root table.
 - Update the comment about allocation of page for root page table.
 - Update an argument of hgatp_from_page() to "struct page_info *p2m_root_page"
   to be consistent with the  function name.
 - Use p2m_get_hostp2m(d) instead of open-coding it.
 - Update the comment above the call of p2m_alloc_root_table().
 - Update the comments in p2m_allocate_root().
 - Move part which returns some page to domheap before root page table allocation
   to paging.c.
 - Pass p2m_domain * instead of struct domain * for p2m_alloc_root_table().
 - Introduce construct_hgatp() instead of hgatp_from_page().
 - Add vmid and hgatp_mode member of struct p2m_domain.
 - Add explanatory comment above clean_dcache_va_range() in
   clear_and_clean_page().
 - Introduce P2M_ROOT_ORDER and P2M_ROOT_PAGES.
 - Drop vmid member from p2m_domain as now we are using per-pCPU
   VMID allocation.
 - Update a declaration of construct_hgatp() to recieve VMID as it
   isn't per-VM anymore.
 - Drop hgatp member of p2m_domain struct as with the new VMID scheme
   allocation construction of hgatp will be needed more often.
 - Drop is_hardware_domain() case in p2m_allocate_root(), just always
   allocate root using p2m pool pages.
 - Refactor p2m_alloc_root_table() and p2m_alloc_table().
---
Changes in v2:
 - This patch was created from "xen/riscv: introduce things necessary for p2m
   initialization" with the following changes:
   - [clear_and_clean_page()] Add missed call of clean_dcache_va_range().
   - Drop p2m_get_clean_page() as it is going to be used only once to allocate
     root page table. Open-code it explicittly in p2m_allocate_root(). Also,
     it will help avoid duplication of the code connected to order and nr_pages
     of p2m root page table.
   - Instead of using order 2 for alloc_domheap_pages(), use
     get_order_from_bytes(KB(16)).
   - Clear and clean a proper amount of allocated pages in p2m_allocate_root().
   - Drop _info from the function name hgatp_from_page_info() and its argument
     page_info.
   - Introduce HGATP_MODE_MASK and use MASK_INSR() instead of shift to calculate
     value of hgatp.
   - Drop unnecessary parentheses in definition of page_to_maddr().
   - Add support of VMID.
   - Drop TLB flushing in p2m_alloc_root_table() and do that once when VMID
     is re-used. [Look at p2m_alloc_vmid()]
   - Allocate p2m root table after p2m pool is fully initialized: first
     return pages to p2m pool them allocate p2m root table.
---
 xen/arch/riscv/include/asm/mm.h             |   4 +
 xen/arch/riscv/include/asm/p2m.h            |  17 +++
 xen/arch/riscv/include/asm/paging.h         |   3 +
 xen/arch/riscv/include/asm/riscv_encoding.h |   2 +
 xen/arch/riscv/p2m.c                        |  99 +++++++++++++++++-
 xen/arch/riscv/paging.c                     | 110 +++++++++++++++-----
 6 files changed, 206 insertions(+), 29 deletions(-)

diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 9283616c02..dd8cdc9782 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -167,6 +167,10 @@ extern struct page_info *frametable_virt_start;
 #define mfn_to_page(mfn)    (frametable_virt_start + mfn_x(mfn))
 #define page_to_mfn(pg)     _mfn((pg) - frametable_virt_start)
 
+/* Convert between machine addresses and page-info structures. */
+#define maddr_to_page(ma) mfn_to_page(maddr_to_mfn(ma))
+#define page_to_maddr(pg) mfn_to_maddr(page_to_mfn(pg))
+
 static inline void *page_to_virt(const struct page_info *pg)
 {
     return mfn_to_virt(mfn_x(page_to_mfn(pg)));
diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index 239f90622e..c9aa19ad43 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -2,6 +2,7 @@
 #ifndef ASM__RISCV__P2M_H
 #define ASM__RISCV__P2M_H
 
+#include <xen/bitops.h>
 #include <xen/errno.h>
 #include <xen/mm.h>
 #include <xen/rwlock.h>
@@ -9,6 +10,9 @@
 
 #include <asm/page-bits.h>
 
+#define P2M_ROOT_ORDER  (ilog2(GSTAGE_ROOT_PAGE_TABLE_SIZE) - PAGE_SHIFT)
+#define P2M_ROOT_PAGES  BIT(P2M_ROOT_ORDER, U)
+
 #define paddr_bits PADDR_BITS
 
 /* Get host p2m table */
@@ -30,6 +34,11 @@ struct p2m_domain {
     /* Pages used to construct the p2m */
     struct page_list_head pages;
 
+    /* The root of the p2m tree. May be concatenated */
+    struct page_info *root;
+
+    struct gstage_mode_desc mode;
+
     /* Back pointer to domain */
     struct domain *domain;
 
@@ -43,6 +52,12 @@ struct p2m_domain {
      * shattered), call p2m_tlb_flush_sync().
      */
     bool need_flush;
+
+    /*
+     * Indicate if it is required to clean the cache when writing an entry or
+     * when a page is needed to be fully cleared and cleaned.
+     */
+    bool clean_dcache;
 };
 
 /*
@@ -130,6 +145,8 @@ unsigned char get_max_supported_mode(void);
 
 int p2m_init(struct domain *d);
 
+unsigned long construct_hgatp(const struct p2m_domain *p2m, uint16_t vmid);
+
 #endif /* ASM__RISCV__P2M_H */
 
 /*
diff --git a/xen/arch/riscv/include/asm/paging.h b/xen/arch/riscv/include/asm/paging.h
index 98d8b06d45..01be45528f 100644
--- a/xen/arch/riscv/include/asm/paging.h
+++ b/xen/arch/riscv/include/asm/paging.h
@@ -10,4 +10,7 @@ int paging_domain_init(struct domain *d);
 int paging_freelist_adjust(struct domain *d, unsigned long pages,
                            bool *preempted);
 
+int paging_ret_to_domheap(struct domain *d, unsigned int nr_pages);
+int paging_refill_from_domheap(struct domain *d, unsigned int nr_pages);
+
 #endif /* ASM_RISCV_PAGING_H */
diff --git a/xen/arch/riscv/include/asm/riscv_encoding.h b/xen/arch/riscv/include/asm/riscv_encoding.h
index e0a5e8b58b..1f7e612366 100644
--- a/xen/arch/riscv/include/asm/riscv_encoding.h
+++ b/xen/arch/riscv/include/asm/riscv_encoding.h
@@ -180,6 +180,8 @@
 #define HGATP_MODE_MASK			HGATP32_MODE_MASK
 #endif
 
+#define GSTAGE_ROOT_PAGE_TABLE_SIZE	KB(16)
+
 #define TOPI_IID_SHIFT			16
 #define TOPI_IID_MASK			0xfff
 #define TOPI_IPRIO_MASK		0xff
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 857517f8ee..7c2ce7ec18 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -3,6 +3,7 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/macros.h>
+#include <xen/domain_page.h>
 #include <xen/mm.h>
 #include <xen/paging.h>
 #include <xen/rwlock.h>
@@ -113,6 +114,74 @@ void __init guest_mm_init(void)
     local_hfence_gvma_all();
 }
 
+static void clear_and_clean_page(struct page_info *page, bool clean_dcache)
+{
+    void *p = __map_domain_page(page);
+
+    clear_page(p);
+
+    /*
+     * If the IOMMU doesn't support coherent walks and the p2m tables are
+     * shared between the CPU and IOMMU, it is necessary to clean the
+     * d-cache.
+     */
+    if ( clean_dcache )
+        clean_dcache_va_range(p, PAGE_SIZE);
+
+    unmap_domain_page(p);
+}
+
+unsigned long construct_hgatp(const struct p2m_domain *p2m, uint16_t vmid)
+{
+    return MASK_INSR(mfn_x(page_to_mfn(p2m->root)), HGATP_PPN_MASK) |
+           MASK_INSR(p2m->mode.mode, HGATP_MODE_MASK) |
+           MASK_INSR(vmid, HGATP_VMID_MASK);
+}
+
+static int p2m_alloc_root_table(struct p2m_domain *p2m)
+{
+    struct domain *d = p2m->domain;
+    struct page_info *page;
+    int rc;
+
+    /*
+     * Return back P2M_ROOT_PAGES to assure the root table memory is also
+     * accounted against the P2M pool of the domain.
+     */
+    if ( (rc = paging_ret_to_domheap(d, P2M_ROOT_PAGES)) )
+        return rc;
+
+    /*
+     * As mentioned in the Priviliged Architecture Spec (version 20240411)
+     * in Section 18.5.1, for the paged virtual-memory schemes  (Sv32x4,
+     * Sv39x4, Sv48x4, and Sv57x4), the root page table is 16 KiB and must
+     * be aligned to a 16-KiB boundary.
+     */
+    page = alloc_domheap_pages(d, P2M_ROOT_ORDER, MEMF_no_owner);
+    if ( !page )
+    {
+        /*
+         * If allocation of root table pages fails, the pages acquired above
+         * must be returned to the freelist to maintain proper freelist
+         * balance.
+         */
+        paging_refill_from_domheap(d, P2M_ROOT_PAGES);
+
+        return -ENOMEM;
+    }
+
+    for ( unsigned int i = 0; i < P2M_ROOT_PAGES; i++ )
+    {
+        clear_and_clean_page(page + i, p2m->clean_dcache);
+
+        page_list_add(page + i, &p2m->pages);
+    }
+
+    p2m->root = page;
+
+    return 0;
+}
+
 int p2m_init(struct domain *d)
 {
     struct p2m_domain *p2m = p2m_get_hostp2m(d);
@@ -128,6 +197,24 @@ int p2m_init(struct domain *d)
     rwlock_init(&p2m->lock);
     INIT_PAGE_LIST_HEAD(&p2m->pages);
 
+    /*
+     * Currently, the infrastructure required to enable CONFIG_HAS_PASSTHROUGH
+     * is not ready for RISC-V support.
+     *
+     * When CONFIG_HAS_PASSTHROUGH=y, p2m->clean_dcache must be properly
+     * initialized.
+     * At the moment, it defaults to false because the p2m structure is
+     * zero-initialized.
+     */
+#ifdef CONFIG_HAS_PASSTHROUGH
+#   error "Add init of p2m->clean_dcache"
+#endif
+
+    /* TODO: don't hardcode used for a domain g-stage mode. */
+    p2m->mode.mode = HGATP_MODE_SV39X4;
+    p2m->mode.paging_levels = 2;
+    safe_strcpy(p2m->mode.name, "Sv39x4");
+
     return 0;
 }
 
@@ -138,10 +225,20 @@ int p2m_init(struct domain *d)
  */
 int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
 {
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
     int rc;
 
     if ( (rc = paging_freelist_adjust(d, pages, preempted)) )
         return rc;
 
-    return 0;
+    /*
+     * First, initialize p2m pool. Then allocate the root
+     * table so that the necessary pages can be returned from the p2m pool,
+     * since the root table must be allocated using alloc_domheap_pages(...)
+     * to meet its specific requirements.
+     */
+    if ( !p2m->root )
+        rc = p2m_alloc_root_table(p2m);
+
+    return rc;
 }
diff --git a/xen/arch/riscv/paging.c b/xen/arch/riscv/paging.c
index 2df8de033b..d401ddc34e 100644
--- a/xen/arch/riscv/paging.c
+++ b/xen/arch/riscv/paging.c
@@ -4,46 +4,67 @@
 #include <xen/sched.h>
 #include <xen/spinlock.h>
 
+static int _paging_ret_to_domheap(struct domain *d)
+{
+    struct page_info *page;
+
+    ASSERT(spin_is_locked(&d->arch.paging.lock));
+
+    /* Return memory to domheap. */
+    page = page_list_remove_head(&d->arch.paging.freelist);
+    if( page )
+    {
+        d->arch.paging.total_pages--;
+        free_domheap_page(page);
+    }
+    else
+    {
+        printk(XENLOG_ERR
+               "failed to free pages, P2M freelist is empty\n");
+        return -ENOMEM;
+    }
+
+    return 0;
+}
+
+static int _paging_add_to_freelist(struct domain *d)
+{
+    struct page_info *page;
+
+    ASSERT(spin_is_locked(&d->arch.paging.lock));
+
+    /* Need to allocate more memory from domheap */
+    page = alloc_domheap_page(d, MEMF_no_owner);
+    if ( page == NULL )
+    {
+        printk(XENLOG_ERR "failed to allocate pages\n");
+        return -ENOMEM;
+    }
+    d->arch.paging.total_pages++;
+    page_list_add_tail(page, &d->arch.paging.freelist);
+
+    return 0;
+}
+
 int paging_freelist_adjust(struct domain *d, unsigned long pages,
                            bool *preempted)
 {
-    struct page_info *pg;
-
     ASSERT(spin_is_locked(&d->arch.paging.lock));
 
     for ( ; ; )
     {
+        int rc = 0;
+
         if ( d->arch.paging.total_pages < pages )
-        {
-            /* Need to allocate more memory from domheap */
-            pg = alloc_domheap_page(d, MEMF_no_owner);
-            if ( pg == NULL )
-            {
-                printk(XENLOG_ERR "Failed to allocate pages.\n");
-                return -ENOMEM;
-            }
-            ACCESS_ONCE(d->arch.paging.total_pages)++;
-            page_list_add_tail(pg, &d->arch.paging.freelist);
-        }
+            rc = _paging_add_to_freelist(d);
         else if ( d->arch.paging.total_pages > pages )
-        {
-            /* Need to return memory to domheap */
-            pg = page_list_remove_head(&d->arch.paging.freelist);
-            if ( pg )
-            {
-                ACCESS_ONCE(d->arch.paging.total_pages)--;
-                free_domheap_page(pg);
-            }
-            else
-            {
-                printk(XENLOG_ERR
-                       "Failed to free pages, freelist is empty.\n");
-                return -ENOMEM;
-            }
-        }
+            rc = _paging_ret_to_domheap(d);
         else
             break;
 
+        if ( rc )
+            return rc;
+
         /* Check to see if we need to yield and try again */
         if ( preempted && general_preempt_check() )
         {
@@ -55,6 +76,39 @@ int paging_freelist_adjust(struct domain *d, unsigned long pages,
     return 0;
 }
 
+int paging_refill_from_domheap(struct domain *d, unsigned int nr_pages)
+{
+    ASSERT(spin_is_locked(&d->arch.paging.lock));
+
+    for ( unsigned int i = 0; i < nr_pages; i++ )
+    {
+        int rc = _paging_add_to_freelist(d);
+
+        if ( rc )
+            return rc;
+    }
+
+    return 0;
+}
+
+int paging_ret_to_domheap(struct domain *d, unsigned int nr_pages)
+{
+    ASSERT(spin_is_locked(&d->arch.paging.lock));
+
+    if ( d->arch.paging.total_pages < nr_pages )
+        return false;
+
+    for ( unsigned int i = 0; i < nr_pages; i++ )
+    {
+        int rc = _paging_ret_to_domheap(d);
+
+        if ( rc )
+            return rc;
+    }
+
+    return 0;
+}
+
 /* Domain paging struct initialization. */
 int paging_domain_init(struct domain *d)
 {
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:34:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:34:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170568.1495669 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVls-0002ms-5X; Mon, 24 Nov 2025 12:34:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170568.1495669; Mon, 24 Nov 2025 12:34:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVlr-0002iV-Qd; Mon, 24 Nov 2025 12:34:19 +0000
Received: by outflank-mailman (input) for mailman id 1170568;
 Mon, 24 Nov 2025 12:34:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Sr25=6A=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vNVlq-0001zv-Ac
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:34:18 +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 e4d1d136-c931-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:34:17 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b762de65c07so169533766b.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:34:17 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cf0435sm1285238866b.4.2025.11.24.04.34.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 04:34: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: e4d1d136-c931-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987657; x=1764592457; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qmuSJYCWNiJp2x+cGklOmm8nTWZtA/7WLs7Np8CmpLE=;
        b=TzVipDSTQ2qee80Dy80QsY1bTr5c/gjWQh+557fuuaXG5L+EMQZxtwxLDxn7F3EgpR
         BaB2kGxsAoS+qgYKx7S5zDthH25dKLoq1lUHOm428jx7aS75YGXpqcppPuCYeoa0nTn+
         hO8ii9hrvQB4FTckfHDD9vtprKkap3XEW+Re2kN+bIAzc/VauD8L5MdS/gLoFI+l4e82
         lUByUqjDdNV0FNmQjUjEcRztGVKYgszW2794h8+nJSjUpwBhGKyiHoMONiqx4Gbq5+pz
         B0TmjlMrQbljIlEu93apwFyxU3pLX8YpCHtLsaP7ZexyP8foSb18XfmXP1wPOBfLBL5j
         Stgg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987657; x=1764592457;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=qmuSJYCWNiJp2x+cGklOmm8nTWZtA/7WLs7Np8CmpLE=;
        b=UnEomsnJKgjOvwKkXs/lz77E8sL94cbsadWphPHXcXr1Ae9jWcp813sA5UOD8mGu1l
         p6yxZyVdcu5I/Wtud2XrxGnKrn45Iu+WL5KDQwsccKxX6tFZwjhFIksFjL8AedPQ7R4t
         znuxjbXG7sLkqZBojUJebIJZFCEazVF6ZbWP0XnRgkbbjaZNkzW1RG7WNrX9P4Xb7XxF
         462L2+KQDzXFSwJIKgO4qtcOW823Qy8OUP6moRHo1iGZ6q79bNUjNolJjR+Cug74f1+H
         S4iGC7LOZ8Ya6AcirdBsl1CseOBsoHgsxz7sHjwHRmBrX+mLPwofwQ+veVrAvS/W2bmY
         Gq3A==
X-Gm-Message-State: AOJu0Yyzg+quo1sgjN2mpGn+HQXSmHo9iTT+EM1zSMb1dTS4Whr68OBZ
	4rmW2GvXniCgstyYyLgsjVDPcMOMeOColmnBcgWT9SAyblx0ikLL+8FSfYxS6AYr
X-Gm-Gg: ASbGncuehwIB6stzCZR48ieZPwcJI/r91CMKdpSSAtl1ynKtNz7G0MLlX1kphxgIhjp
	v9nLdUad44H2IOAOa2Hj9nEPDGR6uMFpfiF72OebmNZ1C4J7z8E8oXcvQcZHl4+8Dz/BBuGd8Gs
	IXp63nfsLr1ENnfXCkiW+LzMRsizeqXyxLnVMAp+WDLUL5bV4EPAN9rflfcaMe6pTnUWwDEfif5
	AdjFdSaUiiS+52N+taBXb2A9HSDc1wp5bj2TnVryE46tSI8E4yIyd+F/gjPnLuvxaQDUqAHKgSW
	3RqBZmcShlHfq7NqjfNEACsYAhPfm7ZRr/I4rdUudH8XJFgwvemc0jDLNdogYPmckL8F+HAO/OG
	57Y5irgdkJJVYRUwz9Ct96F97XhHS7hShK5897Te/PhhqBRQJumL3nw/hW0iyVkbSdx7jUcP45g
	YUABg2U2lda1OLl2U3yjP65ACXyNltI6rCKsQVVg02I1kC1EN57DW7bt8=
X-Google-Smtp-Source: AGHT+IE9G67ZdOkCHyhlUWIgkLlJpxvexa0VZvHjlvOoFD/jhY3mygYqcHjUCJLsl9k16FXRYKEysg==
X-Received: by 2002:a17:906:7fd5:b0:b76:b7fe:3198 with SMTP id a640c23a62f3a-b76b7fe33b8mr86719366b.26.1763987656817;
        Mon, 24 Nov 2025 04:34:16 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 08/19] xen/riscv: add new p2m types and helper macros for type classification
Date: Mon, 24 Nov 2025 13:33:41 +0100
Message-ID: <1073b8807531763d2fa64ceb231aa471a74741d3.1763986955.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <cover.1763986955.git.oleksii.kurochko@gmail.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=all
Content-Transfer-Encoding: 8bit

- Extended p2m_type_t with additional types: p2m_mmio_direct,
  p2m_ext_storage.
- Added macros to classify memory types: P2M_RAM_TYPES.
- Introduced helper predicates: p2m_is_ram(), p2m_is_any_ram().
- Introduce arch_dt_passthrough() to tell handle_passthrough_prop()
  from common code how to map device memory.
- Introduce p2m_first_external for detection for relational operations
  with p2m type which is stored outside P2M's PTE bits.

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:
 - Drop underscores for argumets of p2m_is_ram() and p2m_is_any_ram().
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V4:
 - Drop underscode in p2m_to_mask()'s argument and for other similar helpers.
 - Introduce arch_dt_passthrough_p2m_type() instead of p2m_mmio_direct.
 - Drop for the moment grant tables related stuff as it isn't going to be used in the nearest future.
---
Changes in V3:
 - Drop p2m_ram_ro.
 - Rename p2m_mmio_direct_dev to p2m_mmio_direct_io to make it more RISC-V specicific.
 - s/p2m_mmio_direct_dev/p2m_mmio_direct_io.
---
Changes in V2:
 - Drop stuff connected to foreign mapping as it isn't necessary for RISC-V
   right now.
---
 xen/arch/riscv/include/asm/p2m.h | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index c9aa19ad43..1c89838408 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -70,8 +70,29 @@ struct p2m_domain {
 typedef enum {
     p2m_invalid = 0,    /* Nothing mapped here */
     p2m_ram_rw,         /* Normal read/write domain RAM */
+    p2m_mmio_direct_io, /* Read/write mapping of genuine Device MMIO area,
+                           PTE_PBMT_IO will be used for such mappings */
+    p2m_ext_storage,    /* Following types'll be stored outsude PTE bits: */
+
+    /* Sentinel â€” not a real type, just a marker for comparison */
+    p2m_first_external = p2m_ext_storage,
 } p2m_type_t;
 
+static inline p2m_type_t arch_dt_passthrough_p2m_type(void)
+{
+    return p2m_mmio_direct_io;
+}
+
+/* We use bitmaps and mask to handle groups of types */
+#define p2m_to_mask(t) BIT(t, UL)
+
+/* RAM types, which map to real machine frames */
+#define P2M_RAM_TYPES (p2m_to_mask(p2m_ram_rw))
+
+/* Useful predicates */
+#define p2m_is_ram(t) (p2m_to_mask(t) & P2M_RAM_TYPES)
+#define p2m_is_any_ram(t) (p2m_to_mask(t) & P2M_RAM_TYPES)
+
 #include <xen/p2m-common.h>
 
 static inline int get_page_and_type(struct page_info *page,
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:34:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:34:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170569.1495674 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVls-0002tA-JR; Mon, 24 Nov 2025 12:34:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170569.1495674; Mon, 24 Nov 2025 12:34:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVls-0002pX-9c; Mon, 24 Nov 2025 12:34:20 +0000
Received: by outflank-mailman (input) for mailman id 1170569;
 Mon, 24 Nov 2025 12:34: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=Sr25=6A=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vNVlq-0001Xp-Da
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:34:18 +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 e427738e-c931-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 13:34:16 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-b73545723ebso791732666b.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:34:16 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cf0435sm1285238866b.4.2025.11.24.04.34.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 04:34: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: e427738e-c931-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987656; x=1764592456; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=U+d1ytZOJh9/tcscZ8MYovcBsMlr579WYydcNPF/Az0=;
        b=NOGVTemWKHco2TjW1+e54Py6SGtnHxAstwMo3rTneCL8CKXR7hRJCgq50nlsJWNdxI
         p0U1s59H3MMUy/y7Wvu+AMh5Qoj9uh+dA3NNGzGbtyoy26HaZQAo76ProXuxnEPzaZnI
         XQ6pY9eiXTPKUQILT4lN84FmMHjw6q1mtrxBRWbJs8nlOdYxy5AznL3Youpm2n5wffZO
         bJHgK8KwhOSW8g5AfWF6DzILKDITBNQbhhMYVA0QzITnQ1WseZbB4PA6idEtE3Nnxem7
         hjAeD3vrMiQFgTxwBwY790jcAVnSGesxxi97UH2kRMc4xIGD6ddQJRoNUIxYD6hgD0Wp
         P2Kg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987656; x=1764592456;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=U+d1ytZOJh9/tcscZ8MYovcBsMlr579WYydcNPF/Az0=;
        b=ChBBm7S4xXNLypMFqdwio4nNpqDjIj0eMuPU7SRfkZIZa/L72D31J08yHNafXw9jl5
         Kadey294vp0KiLNUL3hyGdGK+gYFOd/oMQgAJP487w2Psz2dFifEFmCm1es3o0AoxomY
         4kKrDaX3dJrqqfruPurjZPrFwwNM3727v45TcrmZCiudA9vSMAtAb6FNDxspmOJGo0QI
         7+DQvpcAj2uCYm1o/nAQaeZxn8LiOvQ1fPaAlu4QO3qBUEe5ARW/0/zq9/RH2TMXLjYv
         b90OkKsxtCdovRtXncA+2X4afBBi+hXVJgmw7PsudqFHGfts2JHatNJjWLiIxiyy1igO
         ackQ==
X-Gm-Message-State: AOJu0YxP7rLWlTQ5bhwhEyNF0+kA7DIqLu/SDWmBYUXJfEvEsdQmP/4i
	6B1VbP7WOn0o3Yu8XIuYTiDN43WqfEX2hPN0jYStkNtP3PAeyQb8bb5FQj6tM9iy
X-Gm-Gg: ASbGncsGeEruAmT6Wxg2/hT772uuyfTsk8irStxeNa4jz11GOyWqFmoi7Hm0lCumC+O
	r2PTarqLmMxHuPUCNUyDLw5M0Tw5PPg+h6Fef01B+HtY79/tQEy+G9h6vO/hLBl8cs9MTUCSTsy
	VgZFsBmVCfhiOqSTLUspsakXZxJSvS++GHaSfjTXkYX7tL35cGTzf4r22/4hl9PjWHfSRAwGd+v
	CPYb4RFiKgqekCXvMXtEkO6jGrl3OF5+43HVcxJgL5x4JV9J7/A7kUQ87pVzkhx2l+JFr4xhttM
	BtKCl2KPMItcB5BpiZNX3fWTzPlgNbBUiJEUjDoTXUd4uLc94MSBA7lIiiCXU7OieXJAHXqh0aI
	g3okJl5vEE3ydAocsGNFEp/6AJcirLXKlMbzNP8/k2w972BAuRbJ59GsBneXEdWALS4/uzRhDhZ
	eGWcI7ZOI8+ebPVtSltV5eV15dMIncknDONjJs/j1i2R2IFmrAqZ2y8gw=
X-Google-Smtp-Source: AGHT+IHw8Ux1vWZxcPxsTCUryaZljT1b24ZcxiZgWO0bXp6/QDJ/WOlUCsV8lfEZGFvGTQNnu3PrHw==
X-Received: by 2002:a17:906:c156:b0:b73:7280:782a with SMTP id a640c23a62f3a-b7671a47ad2mr1214625866b.36.1763987655951;
        Mon, 24 Nov 2025 04:34:15 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 07/19] xen/riscv: introduce pte_{set,get}_mfn()
Date: Mon, 24 Nov 2025 13:33:40 +0100
Message-ID: <adbd565dffdaa4f871c7c49e3cc38992e89c929d.1763986955.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <cover.1763986955.git.oleksii.kurochko@gmail.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce helpers pte_{set,get}_mfn() to simplify setting and getting
of mfn.

Also, introduce PTE_PPN_MASK and add BUILD_BUG_ON() to be sure that
PTE_PPN_MASK remains the same for all MMU modes except Sv32.

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:
 - Patch "[PATCH v1 4/6] xen/riscv: define pt_t and pt_walk_t structures" was
   renamed to xen/riscv: introduce pte_{set,get}_mfn() as after dropping of
   bitfields for PTE structure, this patch introduce only pte_{set,get}_mfn().
 - As pt_t and pt_walk_t were dropped, update implementation of
   pte_{set,get}_mfn() to use bit operations and shifts instead of bitfields.
 - Introduce PTE_PPN_MASK to be able to use MASK_INSR for setting/getting PPN.
 - Add BUILD_BUG_ON(RV_STAGE1_MODE > SATP_MODE_SV57) to be sure that when
   new MMU mode will be added, someone checks that PPN is still bits 53:10.
---
 xen/arch/riscv/include/asm/page.h | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
index ddcc4da0a3..66cb192316 100644
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -112,6 +112,30 @@ typedef struct {
 #endif
 } pte_t;
 
+#if RV_STAGE1_MODE != SATP_MODE_SV32
+#define PTE_PPN_MASK _UL(0x3FFFFFFFFFFC00)
+#else
+#define PTE_PPN_MASK _U(0xFFFFFC00)
+#endif
+
+static inline void pte_set_mfn(pte_t *p, mfn_t mfn)
+{
+    /*
+     * At the moment spec provides Sv32 - Sv57.
+     * If one day new MMU mode will be added it will be needed
+     * to check that PPN mask still continue to cover bits 53:10.
+     */
+    BUILD_BUG_ON(RV_STAGE1_MODE > SATP_MODE_SV57);
+
+    p->pte &= ~PTE_PPN_MASK;
+    p->pte |= MASK_INSR(mfn_x(mfn), PTE_PPN_MASK);
+}
+
+static inline mfn_t pte_get_mfn(pte_t p)
+{
+    return _mfn(MASK_EXTR(p.pte, PTE_PPN_MASK));
+}
+
 static inline bool pte_is_valid(pte_t p)
 {
     return p.pte & PTE_VALID;
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:34:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:34:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170571.1495692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVlu-0003My-9w; Mon, 24 Nov 2025 12:34:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170571.1495692; Mon, 24 Nov 2025 12:34:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVlu-0003KV-0u; Mon, 24 Nov 2025 12:34:22 +0000
Received: by outflank-mailman (input) for mailman id 1170571;
 Mon, 24 Nov 2025 12:34: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=Sr25=6A=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vNVlr-0001Xp-UG
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:34:19 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e51abee8-c931-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 13:34:18 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-b71397df721so742146866b.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:34:18 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cf0435sm1285238866b.4.2025.11.24.04.34.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 04:34: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: e51abee8-c931-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987658; x=1764592458; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SItIn9iAPuEifulaIPELDUvKH+Qft6y+4ycnMWjcAb8=;
        b=i6NtHxBoMIJaNI14TXIpd1CtP3+NLLYbwERE2Xpp9UW1zoA7j2Zb2qalUynRk0A7Jp
         k8z2maHAvaI13RYf8ZZ0PxoTvtzKy8IUf9Maw5X3y/o16AYU9no+gAoVQs/DtqhPSkps
         2fLEikehBEqpVNSjCNg8w6GYbLaJXGpdlovwc3ZjQvuiHwMxeYjYH/DjDYSBwvaBGklK
         xN7e/EY93E4iB24iWEnn/FlTf65rJGf7qcITNECpiqzYtU13B5yzxIpKbSoDk/yBC9FS
         RYJ+ewo4/1hCxOwBvgiy1WgAVdVosSNihKA+YHOYzUFEr8szF3u2y2C1A+NSSBH4VnrI
         tsIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987658; x=1764592458;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=SItIn9iAPuEifulaIPELDUvKH+Qft6y+4ycnMWjcAb8=;
        b=uJ0wYbPykJh1LPATmtD8GPXxojveVT7wWOI+6dq5pS6d1DaJ7Qv0dvkh8JDd0exrTv
         AT+cIP0epnBbnuunHzkKtIjnaoZwN6JJZzKt19uSLVso8Tp6QXf+l3ZbbpLw9C2Pt5yT
         pQYLInqrAKaeT4G8UDhm4Ehj9kd3gyRLiECxazkwEIRbxV5XeRifgZs9xrA2QaHL8+vv
         glub7VgCe49zD1MW9UNOtaV6La/JPG+LT5tnXCTV7fsOBwYTTVg03VT31gYZuUFH3yUh
         GRjdvP97xCsB64EjMLch68co2KZdRWGReX+KuTmU2w8nfTbKAORuJkDkLJCagehXZjbi
         0Erg==
X-Gm-Message-State: AOJu0YyirtCx9akZWlHIxNDqS79Pz9WRHBTG8MCUQ/tEbLrzwa8ANIay
	zro7c+H8LEHGvrQq/L86GvC1h6UiOwVUPi1B3UN3H+QsECVZTFS4H7K4ZzUSn2WJ
X-Gm-Gg: ASbGncs9zQ98JuxbhhOaQlrMTKSa2MBLkGjEVaS0hR2A2VlebTZ7owVIG75XEunt6sk
	lxp4BIXOC1HNWojjCPqfsw6920l8FdQHtR+KleyTZV4HRfwXBSiDl31pvQYPiqM3L1WTrxE69Vq
	odVhDiSg2wKQQYBB97f9x3HoJuk9YRZz1McLgqo4PRTnWOtPJzpuVJ0c4hV7E9AYlJgYFiLkouS
	7p565w9RKuiolMVPm09+6NBoqoDlM3DhhgHrS7uYaiJrj/tqHtjALE+qcVdp/vUHrZCryU3XNhd
	vBsPhxwGmiaNjEztAC6Q/dT8Wr1UZp5zdYLeeXqI+OanoSzhJ0e12mBk+l5eJ3icp5JS4FllIjh
	HUJoj4o26SfuUTsC2Wy9gzebB1x/Z8Hh36uqmY7qOrwzd1qUFP8/l68cYxreUuUIEwidlAtXkp8
	76Xnrcfh79XcAmGHWm/tCEnDiT2cR1AeODEnH5w5Fj2gTttAD2lY99WeM=
X-Google-Smtp-Source: AGHT+IGvcLw9e5Dq25DjgRirv6P4NejYsNChqzhMYw6pGdjHqwXBeATk9F8SVHU+N+ib4UG0f6GyvA==
X-Received: by 2002:a17:907:7287:b0:b70:b661:cfcb with SMTP id a640c23a62f3a-b767170acbfmr1356195866b.31.1763987657530;
        Mon, 24 Nov 2025 04:34:17 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v6 09/19] xen/dom0less: abstract Arm-specific p2m type name for device MMIO mappings
Date: Mon, 24 Nov 2025 13:33:42 +0100
Message-ID: <abba4c6fc6a04968333a3602db8384804c126b0d.1763986955.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <cover.1763986955.git.oleksii.kurochko@gmail.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce arch_dt_passthrough_p2m_type() and use it instead of
`p2m_mmio_direct_dev` to avoid leaking Arm-specific naming into
common Xen code, such as dom0less passthrough property handling.

This helps reduce platform-specific terminology in shared logic and
improves clarity for future non-Arm ports (e.g. RISC-V or PowerPC).

No functional changes â€” the definition is preserved via a static inline
function for Arm.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V5-6:
 - Nothing changed. Only rebase.
---
Changes in V4:
 - Introduce arch_dt_passthrough_p2m_type() instead of re-defining of
   p2m_mmio_direct.
---
Changes in V3:
 - New patch.
---

 xen/arch/arm/include/asm/p2m.h          | 5 +++++
 xen/common/device-tree/dom0less-build.c | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
index ef98bc5f4d..010ce8c9eb 100644
--- a/xen/arch/arm/include/asm/p2m.h
+++ b/xen/arch/arm/include/asm/p2m.h
@@ -137,6 +137,11 @@ typedef enum {
     p2m_max_real_type,  /* Types after this won't be store in the p2m */
 } p2m_type_t;
 
+static inline p2m_type_t arch_dt_passthrough_p2m_type(void)
+{
+    return p2m_mmio_direct_dev;
+}
+
 /* We use bitmaps and mask to handle groups of types */
 #define p2m_to_mask(_t) (1UL << (_t))
 
diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
index 2600350a3c..495ef7b16a 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -185,7 +185,7 @@ static int __init handle_passthrough_prop(struct kernel_info *kinfo,
                                gaddr_to_gfn(gstart),
                                PFN_DOWN(size),
                                maddr_to_mfn(mstart),
-                               p2m_mmio_direct_dev);
+                               arch_dt_passthrough_p2m_type());
         if ( res < 0 )
         {
             printk(XENLOG_ERR
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:34:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:34:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170572.1495704 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVlv-0003nQ-QI; Mon, 24 Nov 2025 12:34:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170572.1495704; Mon, 24 Nov 2025 12:34:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVlv-0003mh-Jv; Mon, 24 Nov 2025 12:34:23 +0000
Received: by outflank-mailman (input) for mailman id 1170572;
 Mon, 24 Nov 2025 12:34: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=Sr25=6A=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vNVlt-0001Xp-Ma
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:34:21 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e61152a8-c931-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 13:34:20 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-b7291af7190so619093566b.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:34:20 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cf0435sm1285238866b.4.2025.11.24.04.34.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 04:34: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: e61152a8-c931-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987659; x=1764592459; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6GD7FA95vl4zg2gCwBkL7Z4syOSlocjGh3qXHQggLeo=;
        b=ltDQaNRh4iqc/WhqC0Kbwu/o/cCFciNvR6MGk0ltaua+u8dmU2eX88YeVR2cbUQOYh
         lMzF+UHe6TXFS1k8Yo4JnsEVgnGybEglosGcs1RnATL9mDmypqopA/eM+MdNgmjgoOLT
         bHDf6LDwIhl9tGZkolznWvsxX7YAhSml0sV656H/Iy8Nl0Tq7REQGdcZxv0t0kpmdEsO
         1TolNB7qqb4b2ToQ/l5zN2dMuPZBgDILmpNb2yMXY3Oei1iVD9u7kBvawngZPDvXQhJP
         1qDDgu3bprM9kThcvJAioHQ0ojJz/Gs+UwHLKuGziXRGpb2e4XUrN+rnsl1xgqibeyni
         T3gA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987659; x=1764592459;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=6GD7FA95vl4zg2gCwBkL7Z4syOSlocjGh3qXHQggLeo=;
        b=Yb/0Vztlz2vHIFQT1AxbcEIzeLHR5N11A3R0hlIcPENZ/RQDxZesmMlPbPgdj2HMNK
         JuUioz3mhi83l33KNnpcs+NIeL62QdJHVTxKJxFDYG1tuR4oBlEzQKMwYgoZOE26xEZU
         j98A/UA1Bskych7hNtXhhoPbhLvT6fa/qO2PxuKptwICt/6YiN+DGtdlvm3fsoXi369T
         35LNqMszUEKrcgVwoEMyoopIZN/rEfbSINNau+kdSDbcnePCMu8sSeygf9RG2qG7aEEv
         dGSwwE9iE0vaAXDPkt2QKkwOKPKKBFF4ST/kg0s9PRhwIpcAkgLdydP1wFVTHBzSHBqO
         +5og==
X-Gm-Message-State: AOJu0YwRyJ8iUra/vzYoOfDBfJFBMMnnjLDeWStWB/Bd9DiJth6LFXDv
	EDss0SndQM94gki/W+DV7NOrgDw6PfyaWOKFpF1PiiqbjX26Aj/rfjIunlB4O2X3
X-Gm-Gg: ASbGncsPLYIthh09Mhy+87WHYWMKpl6HO4pE33v1NgmNCLcLSAcEWama2kieIhHw2jE
	14GGXuqvSETf2mF5oLDpw2oR/ofwpag2smBD7o0So/alodK5uCnDBfTCWFJUu38nlMH/Dkgah8C
	JK8UNoirmEjrLoWQsydCSTX9b7cQSrpqO+jZxXwB/1V4Tp6eMfU33tl1QI9rgQoMYKW46FqR4aB
	RhQPJJp1R/VoX1tJhAPtIlDK8DGJ2FCZA0ncje0sfCdgWxYYRx/lDEkiEtwt+YYlHPmouD02qBe
	dMOJXKow4BM7wCxptpR8hh9jANDwhdG7cSiMXbUD7V3a8LyhsgnOAdfSKgiO5Z+BbVXMY3T8cNL
	vE3RZ+18mHVo67M2SVWa4bC/J6gxlEmJQvDZolFHN7Gt7geNCCdS6x4VxYSzwZ+KFogzJqs+SJe
	Or5ib/FPCcvnY7559fO6fflJviqbQnU+BTp+A2I8At7J1kcnKKDnvY0q7+Dbdo2byEGw==
X-Google-Smtp-Source: AGHT+IEGuRyUo3PaGxSkQyOZIUOAPhl4q9SQjyiUWU3D6w3ZxvuPIT0cE/6iai/8GATh9tsmTCNGDQ==
X-Received: by 2002:a17:906:181b:b0:b76:7fe7:ff37 with SMTP id a640c23a62f3a-b767fe8084emr757914866b.18.1763987658996;
        Mon, 24 Nov 2025 04:34:18 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 10/19] xen/riscv: implement function to map memory in guest p2m
Date: Mon, 24 Nov 2025 13:33:43 +0100
Message-ID: <16a8aee1c204c8bef9629b8a2d7dfbc37a028362.1763986955.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <cover.1763986955.git.oleksii.kurochko@gmail.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement map_regions_p2mt() to map a region in the guest p2m with
a specific p2m type. The memory attributes will be derived from the
p2m type. This function is used in dom0less common
code.

To implement it, introduce:
- p2m_write_(un)lock() to ensure safe concurrent updates to the P2M.
  As part of this change, introduce p2m_tlb_flush_sync() and
  p2m_force_tlb_flush_sync().
- A stub for p2m_set_range() to map a range of GFNs to MFNs.
- p2m_insert_mapping().
- p2m_is_write_locked().

Drop guest_physmap_add_entry() and call map_regions_p2mt() directly
from guest_physmap_add_page(), making guest_physmap_add_entry()
unnecessary.

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:
 - Put "p2m->need_flush = false;" before TLB flush.
 - Correct the comment above p2m_write_unlock().
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V4:
 - Update the comment above declaration of map_regions_p2mt():
   s/guest p2m/guest's hostp2m.
 - Add const for p2m_force_tlb_flush_sync()'s local variable `d`.
 - Stray 'w' in the comment inside p2m_write_unlock().
 - Drop p2m_insert_mapping() and leave only map_regions_p2mt() as it
   is just re-use insert_mapping().
 - Rename p2m_force_tlb_flush_sync() to p2m_tlb_flush().
 - Update prototype of p2m_is_write_locked() to return bool instead of
   int.
---
Changes in v3:
 - Introudce p2m_write_lock() and p2m_is_write_locked().
 - Introduce p2m_force_tlb_flush_sync() and p2m_flush_tlb() to flush TLBs
   after p2m table update.
 - Change an argument of p2m_insert_mapping() from struct domain *d to
   p2m_domain *p2m.
 - Drop guest_physmap_add_entry() and use map_regions_p2mt() to define
   guest_physmap_add_page().
 - Add declaration of map_regions_p2mt() to asm/p2m.h.
 - Rewrite commit message and subject.
 - Drop p2m_access_t related stuff.
 - Add defintion of  p2m_is_write_locked().
---
Changes in v2:
 - This changes were part of "xen/riscv: implement p2m mapping functionality".
   No additional signigicant changes were done.
---
 xen/arch/riscv/include/asm/p2m.h | 31 ++++++++++++-----
 xen/arch/riscv/p2m.c             | 60 ++++++++++++++++++++++++++++++++
 2 files changed, 82 insertions(+), 9 deletions(-)

diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index 1c89838408..9acd6a64a8 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -128,21 +128,22 @@ static inline int guest_physmap_mark_populate_on_demand(struct domain *d,
     return -EOPNOTSUPP;
 }
 
-static inline int guest_physmap_add_entry(struct domain *d,
-                                          gfn_t gfn, mfn_t mfn,
-                                          unsigned long page_order,
-                                          p2m_type_t t)
-{
-    BUG_ON("unimplemented");
-    return -EINVAL;
-}
+/*
+ * Map a region in the guest's hostp2m p2m with a specific p2m type.
+ * The memory attributes will be derived from the p2m type.
+ */
+int map_regions_p2mt(struct domain *d,
+                     gfn_t gfn,
+                     unsigned long nr,
+                     mfn_t mfn,
+                     p2m_type_t p2mt);
 
 /* Untyped version for RAM only, for compatibility */
 static inline int __must_check
 guest_physmap_add_page(struct domain *d, gfn_t gfn, mfn_t mfn,
                        unsigned int page_order)
 {
-    return guest_physmap_add_entry(d, gfn, mfn, page_order, p2m_ram_rw);
+    return map_regions_p2mt(d, gfn, BIT(page_order, UL), mfn, p2m_ram_rw);
 }
 
 static inline mfn_t gfn_to_mfn(struct domain *d, gfn_t gfn)
@@ -166,6 +167,18 @@ unsigned char get_max_supported_mode(void);
 
 int p2m_init(struct domain *d);
 
+static inline void p2m_write_lock(struct p2m_domain *p2m)
+{
+    write_lock(&p2m->lock);
+}
+
+void p2m_write_unlock(struct p2m_domain *p2m);
+
+static inline bool p2m_is_write_locked(struct p2m_domain *p2m)
+{
+    return rw_is_write_locked(&p2m->lock);
+}
+
 unsigned long construct_hgatp(const struct p2m_domain *p2m, uint16_t vmid);
 
 #endif /* ASM__RISCV__P2M_H */
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 7c2ce7ec18..c559cde13a 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -114,6 +114,41 @@ void __init guest_mm_init(void)
     local_hfence_gvma_all();
 }
 
+/*
+ * Force a synchronous P2M TLB flush.
+ *
+ * Must be called with the p2m lock held.
+ */
+static void p2m_tlb_flush(struct p2m_domain *p2m)
+{
+    const struct domain *d = p2m->domain;
+
+    ASSERT(p2m_is_write_locked(p2m));
+
+    p2m->need_flush = false;
+
+    sbi_remote_hfence_gvma(d->dirty_cpumask, 0, 0);
+}
+
+void p2m_tlb_flush_sync(struct p2m_domain *p2m)
+{
+    if ( p2m->need_flush )
+        p2m_tlb_flush(p2m);
+}
+
+/* Unlock the P2M and do a P2M TLB flush if necessary */
+void p2m_write_unlock(struct p2m_domain *p2m)
+{
+    /*
+     * The final flush is done with the P2M write lock taken to avoid
+     * someone else modifying the P2M before the TLB invalidation has
+     * completed.
+     */
+    p2m_tlb_flush_sync(p2m);
+
+    write_unlock(&p2m->lock);
+}
+
 static void clear_and_clean_page(struct page_info *page, bool clean_dcache)
 {
     void *p = __map_domain_page(page);
@@ -242,3 +277,28 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
 
     return rc;
 }
+
+static int p2m_set_range(struct p2m_domain *p2m,
+                         gfn_t sgfn,
+                         unsigned long nr,
+                         mfn_t smfn,
+                         p2m_type_t t)
+{
+    return -EOPNOTSUPP;
+}
+
+int map_regions_p2mt(struct domain *d,
+                     gfn_t gfn,
+                     unsigned long nr,
+                     mfn_t mfn,
+                     p2m_type_t p2mt)
+{
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
+    int rc;
+
+    p2m_write_lock(p2m);
+    rc = p2m_set_range(p2m, gfn, nr, mfn, p2mt);
+    p2m_write_unlock(p2m);
+
+    return rc;
+}
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:34:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:34:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170574.1495714 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVlx-00049i-HO; Mon, 24 Nov 2025 12:34:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170574.1495714; Mon, 24 Nov 2025 12:34: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 1vNVlx-00049E-A3; Mon, 24 Nov 2025 12:34:25 +0000
Received: by outflank-mailman (input) for mailman id 1170574;
 Mon, 24 Nov 2025 12:34: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=Sr25=6A=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vNVlv-0001Xp-Td
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:34:24 +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 e1bc6267-c931-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 13:34:12 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-b7636c96b9aso566346766b.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:34:12 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cf0435sm1285238866b.4.2025.11.24.04.34.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 04:34: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: e1bc6267-c931-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987652; x=1764592452; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Oa21otGq11ozUJodEKyP4ShNyaKJwoS+ijbz4oX2de8=;
        b=d3TOUVselNQmMR+rQng7LvMhQ1+tg+6qxbNj8U1P72B6Nu6VpAcAP18jb2kBoG24ma
         3tpHNGW8ZFHQQk97530s76zGfZL5etEa6LxQYLa8YxTkWHd4YARkUFJwyis4I5jshK+/
         INsvT2ICZfLgiW/o5asDmbx3y0fmJje+YLA8olExEXmasr1ekirvYiqfKmGoU2M8yw9B
         vtsjWpvDmwllvL0Uwpnp6N531q/Ck3za8L2HDeZ9rSNjKXxfSMLpeH2G0X5mgYYI5oDt
         u6Jr3/2666WJ6A/i+vLZOVYza/wy+CqpOH/gL1fgSM3H7FjVQKwHoGVgqsyePiRVJHrd
         G6Pw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987652; x=1764592452;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Oa21otGq11ozUJodEKyP4ShNyaKJwoS+ijbz4oX2de8=;
        b=L7kuc4C0Z8ougfvUe2ySh4NDm5cHiMnirAooZcGBHW/sSFCAUBH9FYezak3IRPo2WQ
         V64p2SvjCfOSiwKdwc+9uzicEcx18AxHAl7CswFr3WM4Fe1ynAc8zWLlO1puy+JgpxW1
         jDaQNBlL8oJ/BZS1kf7zZovDX1XxlreDFugAOS6ovnJs4geVRhCJ7xXjdQoRNL2dOaQ8
         TH4KTgB5IWqwRy12+d83zvtcQ/ZPJy//AUrnWkBRlhJR7wgSgljv9UtnF40imW/Ujba7
         lyNLn8ulbJ7zchZ4MwT/lc+3GADFtEYTWfUsjrzqoNur823hELbMuJHMahPBAvUYDfLY
         tkDA==
X-Gm-Message-State: AOJu0YwzUPKbgh3rCifjivrGiOIOG9vQU/0AXaa2I8Q5k+YFsMUE2g/t
	CmAPdxthiBxFLta65nFs8a9fauXPBkVYLzAIDezYKmUp1neH2+G8Py4nudxLAVT9
X-Gm-Gg: ASbGncvnlbX1YfiwSheDy61VfaNU3O7A+qqej2a2fv8opH9fQL7wUzPkMVyP129gqre
	1Bq5NtlhtsAZ4ZXfueW23gpZSHuGiUhwdcGwY0lAubh5QbuzX4xIY5v+bHzmFHbwyewnXc7y2Fr
	Sp8o9tkczbvPxKMsVj8uRjvmA/94RM6wLHyECjCRDCNtdkC+sflEvDO82+qUwPK10g+pVvTwDuq
	UmVIpKc5pFEQ2+PHQOZ7xsxmp1dBjfhSPUhn4GDuiu9N3359Blf4ttpL8R3psJP2uLHni4KhxJK
	KQ28a931xoFwAkBhERfHotJHKSWGv4g+dO+usQZCzvxG0NcCZwtZ0vSriOpyBju2vGMrVRK1Pn7
	4d+4COtqyZiEwCoAXouhMAE3d1jpX89jQ06Xsky83QDY+7p86wHYR+D9RPWih7d6WypaqZywmMz
	Ew7bWx+SFtyT2exWRtOB77BLFhoq2ENUkiLCtoAP5S491QRHVEvFkDeTs=
X-Google-Smtp-Source: AGHT+IHEC4VD3aCt8e+QKbhOS0y3aEqRL/eweoz1Q2s+Dv48n2fDYUYPaTmxh9hTkYQ2sJmsswBTew==
X-Received: by 2002:a17:907:a0e:b0:b5b:2c82:7dc6 with SMTP id a640c23a62f3a-b7671847665mr1347180366b.40.1763987651704;
        Mon, 24 Nov 2025 04:34:11 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v6 03/19] xen/riscv: introduce VMID allocation and manegement
Date: Mon, 24 Nov 2025 13:33:36 +0100
Message-ID: <7805662d530eca29c5b0d0afa05a3cd0aac963bb.1763986955.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <cover.1763986955.git.oleksii.kurochko@gmail.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Current implementation is based on x86's way to allocate VMIDs:
  VMIDs partition the physical TLB. In the current implementation VMIDs are
  introduced to reduce the number of TLB flushes. Each time a guest-physical
  address space changes, instead of flushing the TLB, a new VMID is
  assigned. This reduces the number of TLB flushes to at most 1/#VMIDs.
  The biggest advantage is that hot parts of the hypervisor's code and data
  retain in the TLB.

  VMIDs are a hart-local resource.  As preemption of VMIDs is not possible,
  VMIDs are assigned in a round-robin scheme. To minimize the overhead of
  VMID invalidation, at the time of a TLB flush, VMIDs are tagged with a
  64-bit generation. Only on a generation overflow the code needs to
  invalidate all VMID information stored at the VCPUs with are run on the
  specific physical processor. When this overflow appears VMID usage is
  disabled to retain correctness.

Only minor changes are made compared to the x86 implementation.
These include using RISC-V-specific terminology, adding a check to ensure
the type used for storing the VMID has enough bits to hold VMIDLEN,
and introducing a new function vmidlen_detect() to clarify the VMIDLEN
value, rename stuff connected to VMID enable/disable to "VMID use
enable/disable".

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V6:
 - Add information about VMID command line option to
   docs/misc/xen-command-line.pandoc.
 - Drop the call of local_hfence_gvma_all() from vmid_init() to avoid
   redundancy as this function is called now in pre_gstage_init().
   Also, update the comment in guest_mm_init() above local_hfence_gvma_all().
 - Add __ro_after_init in declaration of g_disabled.
 - Drop logging of function name in vmid_flush_hart() and drop full stop at
   the end of the message.
 - Add the check that vmid is used at the start of vmid_handle_enter().
 - Drop parentheses around (vmid->vmid == 1) in vmid_handle_enter().
 - Update BUILD_BUG_ON() in vmid_init as HGATP_VMID_SHIFT was dropped.
---
Changes in V5:
 - Rename opt_vmid_use_enabled with opt_vmid to be in sync with command line
   option.
 - Invert the expression for data->used = ... and swap "dis" and "en". Also,
   invert usage of data->used elsewhere.
 - s/vcpu_vmid_flush_vcpu/vmid_flush_vcpu.
 - Add prototypes to asm/vmid.h which could be used outside vmid.c.
 - Update the comment in vmidlen_detect(): instead of Section 3.7 ->
   Section "Physical Memory Protection".
 - Move vmid_init() call to pre_gstage_init().
---
Changes in V4:
 - s/guest's virtual/guest-physical in the comment inside vmid.c
   and in commit message.
 - Drop x86-related numbers in the comment about "Sketch of the Implementation".
 - s/__read_only/__ro_after_init in declaration of opt_vmid_enabled.
 - s/hart_vmid_generation/generation.
 - Update vmidlen_detect() to work with unsigned int type for vmid_bits
   variable.
 - Drop old variable im vmdidlen_detetct, it seems like there is no any reason
   to restore old value of hgatp with no guest running on a hart yet.
 - Update the comment above local_hfence_gvma_all() in vmidlen_detect().
 - s/max_availalbe_bits/max_available_bits.
 - use BITS_PER_BYTE, instead of "<< 3".
 - Add BUILD_BUILD_BUG_ON() instead run-time check that an amount of set bits
   can be held in vmid_data->max_vmid.
 - Apply changes from the patch "x86/HVM: polish hvm_asid_init() a little" here
   (changes connected to g_disabled) with the following minor changes:
   Update the printk() message to "VMIDs use is...".
   Rename g_disabled to g_vmid_used.
 - Rename member 'disabled' of vmid_data structure to used.
 - Use gstage_mode to properly detect VMIDLEN.
---
Changes in V3:
 - Reimplemnt VMID allocation similar to what x86 has implemented.
---
Changes in V2:
 - New patch.
---
 docs/misc/xen-command-line.pandoc   |   9 ++
 xen/arch/riscv/Makefile             |   1 +
 xen/arch/riscv/include/asm/domain.h |   6 +
 xen/arch/riscv/include/asm/vmid.h   |  14 +++
 xen/arch/riscv/p2m.c                |   7 +-
 xen/arch/riscv/vmid.c               | 170 ++++++++++++++++++++++++++++
 6 files changed, 205 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/vmid.h
 create mode 100644 xen/arch/riscv/vmid.c

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 34004ce282..6c4bfa3603 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -3096,3 +3096,12 @@ the hypervisor was compiled with `CONFIG_XSM` enabled.
 * `silo`: this will deny any unmediated communication channels between
   unprivileged VMs.  To choose this, the separated option in kconfig must also
   be enabled.
+
+### vmid (RISC-V)
+> `= <boolean>`
+
+> Default: `true`
+
+Permit Xen to use Virtual Machine Identifiers. This is an optimisation which
+tags the TLB entries with an ID per vcpu. This allows for guest TLB flushes
+to be performed without the overhead of a complete TLB flush.
diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 5a6f8c115d..1098b6d926 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -17,6 +17,7 @@ obj-y += smpboot.o
 obj-y += stubs.o
 obj-y += time.o
 obj-y += traps.o
+obj-y += vmid.o
 obj-y += vm_event.o
 
 $(TARGET): $(TARGET)-syms
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index c3d965a559..aac1040658 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -5,6 +5,11 @@
 #include <xen/xmalloc.h>
 #include <public/hvm/params.h>
 
+struct vcpu_vmid {
+    uint64_t generation;
+    uint16_t vmid;
+};
+
 struct hvm_domain
 {
     uint64_t              params[HVM_NR_PARAMS];
@@ -14,6 +19,7 @@ struct arch_vcpu_io {
 };
 
 struct arch_vcpu {
+    struct vcpu_vmid vmid;
 };
 
 struct arch_domain {
diff --git a/xen/arch/riscv/include/asm/vmid.h b/xen/arch/riscv/include/asm/vmid.h
new file mode 100644
index 0000000000..1c500c4aff
--- /dev/null
+++ b/xen/arch/riscv/include/asm/vmid.h
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef ASM_RISCV_VMID_H
+#define ASM_RISCV_VMID_H
+
+struct vcpu;
+struct vcpu_vmid;
+
+void vmid_init(void);
+bool vmid_handle_vmenter(struct vcpu_vmid *vmid);
+void vmid_flush_vcpu(struct vcpu *v);
+void vmid_flush_hart(void);
+
+#endif /* ASM_RISCV_VMID_H */
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 7bb0fc0ab4..a4c5b682ce 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -9,6 +9,7 @@
 #include <asm/flushtlb.h>
 #include <asm/p2m.h>
 #include <asm/riscv_encoding.h>
+#include <asm/vmid.h>
 
 static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
     .mode = HGATP_MODE_OFF,
@@ -72,9 +73,11 @@ void __init guest_mm_init(void)
 {
     gstage_mode_detect();
 
+    vmid_init();
+
     /*
-     * As gstage_mode_detect() is changing CSR_HGATP, it is necessary to flush
-     * guest TLB because:
+     * As gstage_mode_detect() and vmid_init() are changing CSR_HGATP, it is
+     * necessary to flush guest TLB because:
      *
      * From RISC-V spec:
      *   Speculative executions of the address-translation algorithm behave as
diff --git a/xen/arch/riscv/vmid.c b/xen/arch/riscv/vmid.c
new file mode 100644
index 0000000000..dc52d91650
--- /dev/null
+++ b/xen/arch/riscv/vmid.c
@@ -0,0 +1,170 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/domain.h>
+#include <xen/init.h>
+#include <xen/sections.h>
+#include <xen/lib.h>
+#include <xen/param.h>
+#include <xen/percpu.h>
+
+#include <asm/atomic.h>
+#include <asm/csr.h>
+#include <asm/flushtlb.h>
+#include <asm/p2m.h>
+
+/* Xen command-line option to enable VMIDs */
+static bool __ro_after_init opt_vmid = true;
+boolean_param("vmid", opt_vmid);
+
+/*
+ * VMIDs partition the physical TLB. In the current implementation VMIDs are
+ * introduced to reduce the number of TLB flushes. Each time a guest-physical
+ * address space changes, instead of flushing the TLB, a new VMID is
+ * assigned. This reduces the number of TLB flushes to at most 1/#VMIDs.
+ * The biggest advantage is that hot parts of the hypervisor's code and data
+ * retain in the TLB.
+ *
+ * Sketch of the Implementation:
+ *
+ * VMIDs are a hart-local resource.  As preemption of VMIDs is not possible,
+ * VMIDs are assigned in a round-robin scheme. To minimize the overhead of
+ * VMID invalidation, at the time of a TLB flush, VMIDs are tagged with a
+ * 64-bit generation. Only on a generation overflow the code needs to
+ * invalidate all VMID information stored at the VCPUs with are run on the
+ * specific physical processor. When this overflow appears VMID usage is
+ * disabled to retain correctness.
+ */
+
+/* Per-Hart VMID management. */
+struct vmid_data {
+   uint64_t generation;
+   uint16_t next_vmid;
+   uint16_t max_vmid;
+   bool used;
+};
+
+static DEFINE_PER_CPU(struct vmid_data, vmid_data);
+
+static unsigned int vmidlen_detect(void)
+{
+    unsigned int vmid_bits;
+    unsigned char gstage_mode = get_max_supported_mode();
+
+    /*
+     * According to the RISC-V Privileged Architecture Spec:
+     *   When MODE=Bare, guest physical addresses are equal to supervisor
+     *   physical addresses, and there is no further memory protection
+     *   for a guest virtual machine beyond the physical memory protection
+     *   scheme described in Section "Physical Memory Protection".
+     *   In this case, the remaining fields in hgatp must be set to zeros.
+     * Thereby it is necessary to set gstage_mode not equal to Bare.
+     */
+    ASSERT(gstage_mode != HGATP_MODE_OFF);
+    csr_write(CSR_HGATP,
+              MASK_INSR(gstage_mode, HGATP_MODE_MASK) | HGATP_VMID_MASK);
+    vmid_bits = MASK_EXTR(csr_read(CSR_HGATP), HGATP_VMID_MASK);
+    vmid_bits = flsl(vmid_bits);
+    csr_write(CSR_HGATP, _AC(0, UL));
+
+    /* local_hfence_gvma_all() will be called at the end of pre_gstage_init. */
+
+    return vmid_bits;
+}
+
+void vmid_init(void)
+{
+    static int8_t __ro_after_init g_vmid_used = -1;
+
+    unsigned int vmid_len = vmidlen_detect();
+    struct vmid_data *data = &this_cpu(vmid_data);
+
+    BUILD_BUG_ON(MASK_EXTR(HGATP_VMID_MASK, HGATP_VMID_MASK) >
+                 (BIT((sizeof(data->max_vmid) * BITS_PER_BYTE), UL) - 1));
+
+    data->max_vmid = BIT(vmid_len, U) - 1;
+    data->used = opt_vmid && (vmid_len > 1);
+
+    if ( g_vmid_used < 0 )
+    {
+        g_vmid_used = data->used;
+        printk("VMIDs use is %sabled\n", data->used ? "en" : "dis");
+    }
+    else if ( g_vmid_used != data->used )
+        printk("CPU%u: VMIDs use is %sabled\n", smp_processor_id(),
+               data->used ? "en" : "dis");
+
+    /* Zero indicates 'invalid generation', so we start the count at one. */
+    data->generation = 1;
+
+    /* Zero indicates 'VMIDs use disabled', so we start the count at one. */
+    data->next_vmid = 1;
+}
+
+void vmid_flush_vcpu(struct vcpu *v)
+{
+    write_atomic(&v->arch.vmid.generation, 0);
+}
+
+void vmid_flush_hart(void)
+{
+    struct vmid_data *data = &this_cpu(vmid_data);
+
+    if ( !data->used )
+        return;
+
+    if ( likely(++data->generation != 0) )
+        return;
+
+    /*
+     * VMID generations are 64 bit.  Overflow of generations never happens.
+     * For safety, we simply disable ASIDs, so correctness is established; it
+     * only runs a bit slower.
+     */
+    printk("VMID generation overrun. Disabling VMIDs\n");
+    data->used = false;
+}
+
+bool vmid_handle_vmenter(struct vcpu_vmid *vmid)
+{
+    struct vmid_data *data = &this_cpu(vmid_data);
+
+    if ( !data->used )
+        goto disabled;
+
+    /* Test if VCPU has valid VMID. */
+    if ( read_atomic(&vmid->generation) == data->generation )
+        return 0;
+
+    /* If there are no free VMIDs, need to go to a new generation. */
+    if ( unlikely(data->next_vmid > data->max_vmid) )
+    {
+        vmid_flush_hart();
+        data->next_vmid = 1;
+        if ( !data->used )
+            goto disabled;
+    }
+
+    /* Now guaranteed to be a free VMID. */
+    vmid->vmid = data->next_vmid++;
+    write_atomic(&vmid->generation, data->generation);
+
+    /*
+     * When we assign VMID 1, flush all TLB entries as we are starting a new
+     * generation, and all old VMID allocations are now stale.
+     */
+    return vmid->vmid == 1;
+
+ disabled:
+    vmid->vmid = 0;
+    return 0;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:34:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:34:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170576.1495723 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVly-0004Rz-W7; Mon, 24 Nov 2025 12:34:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170576.1495723; Mon, 24 Nov 2025 12:34: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 1vNVly-0004Ra-P5; Mon, 24 Nov 2025 12:34:26 +0000
Received: by outflank-mailman (input) for mailman id 1170576;
 Mon, 24 Nov 2025 12:34:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Sr25=6A=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vNVlw-0001zv-R4
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:34:24 +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 e7d2cdeb-c931-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:34:23 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b7373fba6d1so674494766b.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:34:22 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cf0435sm1285238866b.4.2025.11.24.04.34.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 04:34: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: e7d2cdeb-c931-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987662; x=1764592462; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5SKl6OuGD2YjrX2z8NEdWOAS4DxeuaxvxOn4OXbbcOs=;
        b=SzH8q2s8HoxM4BRP2i2BtqCGGEWEBlDf+1YNsPStX1xI7Uas2CGystPyqgB9AZaKnM
         +ENus/Ociqz/9xFabnLvgSt09tr6OC6PNGcIEJWOr0gnHHXGIqboAbVx35XEHA9CqLVt
         e0nw1HDssYAvgz60ihVp7FhYAmqVIl+9gkbav9X/NiDq09xM+BgDQZE4FRKcXulEfuuD
         OiAz7fiYZ9q4uoQ5cKPAcE5fHwK4sVIcKufb8x62Y64Zqp/pB8TDUlBsJGsZ7X7rjyUM
         LX4SlfCH3yjzaD+mnQsnP9A2klj5/aa/12erBgcvKao0sPZh3HNZxJJI0jaUEJDT+BOM
         zgAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987662; x=1764592462;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=5SKl6OuGD2YjrX2z8NEdWOAS4DxeuaxvxOn4OXbbcOs=;
        b=XKT3U7115k8mfbXdWsBYrptR/ID7SKS2N9rUP0OPEchbg+W4aJN9vOlY9GtfBheHB+
         vtOM2GF86yoanuwK9kJ14FHVy4K2XYHx7OrDImgoreHkj94wd67oRQpacim6bVVs+3lL
         p6av0kDw5zz1OEO8pZbGsP3DciuRSPOhgDuGysJFVyupZRcQlbuUu6G7xC42Muqs62Rs
         xOnsTPILgO+PlWZuEp/Ra8wzMHOmJxcMhj2jsBB8ScZo1y1JTgA3qCpNaZsI4b75SV7n
         mBBbSMFIGQF4MKMtKsjt/hNiy6HcR8680QBpk7YDzQ9/OvXYT+74hWZXYSoQVqEHA7Lo
         wCIg==
X-Gm-Message-State: AOJu0Yw4lK2MT65qh8/Xs95YCVP7uCknwzsswvWVenCYIlCkcsqOBatv
	kQUnSPnGwQTDYqRWv1jj3VqBliZQbctmBPMcgMUbvgqByZt5eFs/xaCEPAGpYKWT
X-Gm-Gg: ASbGncvPWlrgsCGFWljblU1eham3nIs0Xm0EiImeyihF57lqF7zRW+w+4e7Co9EJLZO
	mVJhHHuLm6dFS+lzP8Q7C6Sg52n8EcLcxzg2Ufyjxh4p1nPb0UqMcY+/eHtApkY63jCQS6dQToZ
	BCJ1hP7VLFOIgS1Vtb15R+GaRpsctgr75YC+2JM9hrzERqUJNzaqp1W0ucjUKrPdOBo1q462+Tq
	DpKX2Gx0YrY+BiHQTHLj23veOjhk5URb9mzVnB2NIutX076e2ZzaMoP4gXXp7LEYXcDqFfSi+px
	mhEhg8GcApQJbrwu93/Td5F1gvUeCy78Xl/DFjkynV9Py3ZNnE7YRhgjANlpVmBnvLQB2n+GlMC
	83M7nuihWrxbfWMIFATqju6vKRhdoN4cRTWLqH6UavddGthOqwaMINIahteFYsobSymUIDPeUq5
	sc26mUjUCBLpHhs2pkh22ra5DPg+2rjmnibLdZsanZhaqNfcZ2Tawnt5g=
X-Google-Smtp-Source: AGHT+IFWjhfIkV1W7sd9OruHUHu4WR4XQ7BekmC7t8FHfyj+L7+siZlycHUOipoH3ZkxLlkEAWHbhQ==
X-Received: by 2002:a17:907:968c:b0:b3c:8940:6239 with SMTP id a640c23a62f3a-b7671b12672mr1199211366b.52.1763987661888;
        Mon, 24 Nov 2025 04:34:21 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 12/19] xen/riscv: Implement p2m_free_subtree() and related helpers
Date: Mon, 24 Nov 2025 13:33:45 +0100
Message-ID: <a01f603f77d88e28b4c1ca291f8e6011c30fbb04.1763986955.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <cover.1763986955.git.oleksii.kurochko@gmail.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=all
Content-Transfer-Encoding: 8bit

This patch introduces a working implementation of p2m_free_subtree() for RISC-V
based on ARM's implementation of p2m_free_entry(), enabling proper cleanup
of page table entries in the P2M (physical-to-machine) mapping.

Only few things are changed:
- Introduce and use p2m_get_type() to get a type of p2m entry as
  RISC-V's PTE doesn't have enough space to store all necessary types so
  a type is stored outside PTE. But, at the moment, handle only types
  which fit into PTE's bits.

Key additions include:
- p2m_free_subtree(): Recursively frees page table entries at all levels. It
  handles both regular and superpage mappings and ensures that TLB entries
  are flushed before freeing intermediate tables.
- p2m_put_page() and helpers:
  - p2m_put_4k_page(): Clears GFN from xenheap pages if applicable.
  - p2m_put_2m_superpage(): Releases foreign page references in a 2MB
    superpage.
  - p2m_get_type(): Extracts the stored p2m_type from the PTE bits.
- p2m_free_page(): Returns a page to a domain's freelist.
- Introduce p2m_is_foreign() and connected to it things.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V6:
 - Use PTE_RSW instead of 0x300 in the definition of P2M_TYPE_PTE_BITS_MASK.
 - Optimize a if-condtion of p2m_free_subtree() at the start
   of the function to avoid unnessary checks.
 - Change P2M_PAGETABLE_ENTRIES(1) to PAGETABLE_ENTRIES in p2m_put_2m_superpage() as it is expected be the same and in the 
 cae of PAGETABLE_ENTRIES it won't need to update prototypes because
 of one macro.
 - Drop the comment above p2m_put_4k_page() and p2m_put_2m_superpage().
 - Move introduction of pte_is_superpage() to "xen/riscv: Implement superpage splitting for p2m mappings" as it is starting to be used there.
---
Changes in V5:
 - Rewrite the comment inside p2m_put_foreign_page().
 - s/assert_failed/ASSERT_UNREACHABLE.
 - Use p2mt variable when p2m_free_subtree() is called intead of
   p2m_get_type(entry).
 - Update the commit message: drop info about defintion of XEN_PT_ENTRIES
 - Drop also defintion of XEN_PT_ENTRIES as the macro isn't used anymore.
 - Drop ACCESS_ONCE() for paging_free_page() as it is redundant in the
   case when a code is wrapped by a spinlock.
---
Changes in V4:
 - Stray blanks.
 - Implement arch_flush_tlb_mask() to make the comment in p2m_put_foreign()
   clear and explicit.
 - Update the comment above p2m_is_ram() in p2m_put_4k_page() with an explanation
   why p2m_is_ram() is used.
 - Add a type check inside p2m_put_2m_superpage().
 - Swap two conditions around in p2m_free_subtree():
     if ( (level == 0) || pte_is_superpage(entry, level) )
 - Add ASSERT() inside p2m_free_subtree() to check that level is <= 2; otherwise,
   it could consume a lot of time and big memory usage because of recursion.
 - Drop page_list_del() before p2m_free_page() as page_list_del() is called
   inside p2m_free_page().
 - Update p2m_freelist's total_pages when a page is added to p2m_freelist in
   paging_free_page().
 - Introduce P2M_SUPPORTED_LEVEL_MAPPING and use it in ASSERTs() which check
   supported level.
 - Use P2M_PAGETABLE_ENTRIES as XEN_PT_ENTRIES
   doesn't takeinto  into acount that G stage root page table is
   extended by 2 bits.
 - Update prototype of p2m_put_page() to not have unnecessary changes later.
---
Changes in V3:
 - Use p2m_tlb_flush_sync(p2m) instead of p2m_force_tlb_flush_sync() in
   p2m_free_subtree().
 - Drop p2m_is_valid() implementation as pte_is_valid() is going to be used
   instead.
 - Drop p2m_is_superpage() and introduce pte_is_superpage() instead.
 - s/p2m_free_entry/p2m_free_subtree.
 - s/p2m_type_radix_get/p2m_get_type.
 - Update implementation of p2m_get_type() to get type both from PTE bits,
   other cases will be covered in a separate patch. This requires an
   introduction of new P2M_TYPE_PTE_BITS_MASK macros.
 - Drop p2m argument of p2m_get_type() as it isn't needed anymore.
 - Put cheapest checks first in p2m_is_superpage().
 - Use switch() in p2m_put_page().
 - Update the comment in p2m_put_foreign_page().
 - Code style fixes.
 - Move p2m_foreign stuff to this commit.
 - Drop p2m argument of p2m_put_page() as itsn't used anymore.
---
Changes in V2:
 - New patch. It was a part of 2ma big patch "xen/riscv: implement p2m mapping
   functionality" which was splitted to smaller.
 - s/p2m_is_superpage/p2me_is_superpage.
---
 xen/arch/riscv/include/asm/flushtlb.h |   6 +-
 xen/arch/riscv/include/asm/p2m.h      |  15 +++
 xen/arch/riscv/include/asm/paging.h   |   2 +
 xen/arch/riscv/p2m.c                  | 148 +++++++++++++++++++++++++-
 xen/arch/riscv/paging.c               |   8 ++
 xen/arch/riscv/stubs.c                |   5 -
 6 files changed, 176 insertions(+), 8 deletions(-)

diff --git a/xen/arch/riscv/include/asm/flushtlb.h b/xen/arch/riscv/include/asm/flushtlb.h
index e70badae0c..ab32311568 100644
--- a/xen/arch/riscv/include/asm/flushtlb.h
+++ b/xen/arch/riscv/include/asm/flushtlb.h
@@ -41,8 +41,10 @@ static inline void page_set_tlbflush_timestamp(struct page_info *page)
     BUG_ON("unimplemented");
 }
 
-/* Flush specified CPUs' TLBs */
-void arch_flush_tlb_mask(const cpumask_t *mask);
+static inline void arch_flush_tlb_mask(const cpumask_t *mask)
+{
+    sbi_remote_hfence_gvma(mask, 0, 0);
+}
 
 #endif /* ASM__RISCV__FLUSHTLB_H */
 
diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index fa55d8a3bc..b48693a2b4 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -111,6 +111,8 @@ typedef enum {
     p2m_mmio_direct_io, /* Read/write mapping of genuine Device MMIO area,
                            PTE_PBMT_IO will be used for such mappings */
     p2m_ext_storage,    /* Following types'll be stored outsude PTE bits: */
+    p2m_map_foreign_rw, /* Read/write RAM pages from foreign domain */
+    p2m_map_foreign_ro, /* Read-only RAM pages from foreign domain */
 
     /* Sentinel â€” not a real type, just a marker for comparison */
     p2m_first_external = p2m_ext_storage,
@@ -121,15 +123,28 @@ static inline p2m_type_t arch_dt_passthrough_p2m_type(void)
     return p2m_mmio_direct_io;
 }
 
+/*
+ * Bits 8 and 9 are reserved for use by supervisor software;
+ * the implementation shall ignore this field.
+ * We are going to use to save in these bits frequently used types to avoid
+ * get/set of a type from radix tree.
+ */
+#define P2M_TYPE_PTE_BITS_MASK PTE_RSW
+
 /* We use bitmaps and mask to handle groups of types */
 #define p2m_to_mask(t) BIT(t, UL)
 
 /* RAM types, which map to real machine frames */
 #define P2M_RAM_TYPES (p2m_to_mask(p2m_ram_rw))
 
+/* Foreign mappings types */
+#define P2M_FOREIGN_TYPES (p2m_to_mask(p2m_map_foreign_rw) | \
+                           p2m_to_mask(p2m_map_foreign_ro))
+
 /* Useful predicates */
 #define p2m_is_ram(t) (p2m_to_mask(t) & P2M_RAM_TYPES)
 #define p2m_is_any_ram(t) (p2m_to_mask(t) & P2M_RAM_TYPES)
+#define p2m_is_foreign(t) (p2m_to_mask(t) & P2M_FOREIGN_TYPES)
 
 #include <xen/p2m-common.h>
 
diff --git a/xen/arch/riscv/include/asm/paging.h b/xen/arch/riscv/include/asm/paging.h
index 01be45528f..fe462be223 100644
--- a/xen/arch/riscv/include/asm/paging.h
+++ b/xen/arch/riscv/include/asm/paging.h
@@ -13,4 +13,6 @@ int paging_freelist_adjust(struct domain *d, unsigned long pages,
 int paging_ret_to_domheap(struct domain *d, unsigned int nr_pages);
 int paging_refill_from_domheap(struct domain *d, unsigned int nr_pages);
 
+void paging_free_page(struct domain *d, struct page_info *pg);
+
 #endif /* ASM_RISCV_PAGING_H */
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index c21873b2ac..f8af73c9d8 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -360,6 +360,16 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
     return rc;
 }
 
+static p2m_type_t p2m_get_type(const pte_t pte)
+{
+    p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
+
+    if ( type == p2m_ext_storage )
+        panic("unimplemented\n");
+
+    return type;
+}
+
 static inline void p2m_write_pte(pte_t *p, pte_t pte, bool clean_cache)
 {
     write_pte(p, pte);
@@ -416,11 +426,147 @@ static int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,
     return P2M_TABLE_MAP_NONE;
 }
 
+static void p2m_put_foreign_page(struct page_info *pg)
+{
+    /*
+     * Itâ€™s safe to call put_page() here because arch_flush_tlb_mask()
+     * will be invoked if the page is reallocated, which will trigger a
+     * flush of the guest TLBs.
+     */
+    put_page(pg);
+}
+
+static void p2m_put_4k_page(mfn_t mfn, p2m_type_t type)
+{
+    /* TODO: Handle other p2m types */
+
+    if ( p2m_is_foreign(type) )
+    {
+        ASSERT(mfn_valid(mfn));
+        p2m_put_foreign_page(mfn_to_page(mfn));
+    }
+}
+
+static void p2m_put_2m_superpage(mfn_t mfn, p2m_type_t type)
+{
+    struct page_info *pg;
+    unsigned int i;
+
+    /* TODO: Handle other p2m types */
+    if ( !p2m_is_foreign(type) )
+        return;
+
+    ASSERT(mfn_valid(mfn));
+
+    pg = mfn_to_page(mfn);
+
+    /*
+     * PAGETABLE_ENTRIES is used instead of P2M_PAGETABLE_ENTRIES(1) because
+     * they are expected to be identical (this is verified in calc_offset()).
+     * This avoids having to pass p2m_domain here and throughout the call stack
+     * above solely for the sake of one macro.
+     */
+    for ( i = 0; i < PAGETABLE_ENTRIES; i++, pg++ )
+        p2m_put_foreign_page(pg);
+}
+
+static void p2m_put_page(const pte_t pte, unsigned int level, p2m_type_t p2mt)
+{
+    mfn_t mfn = pte_get_mfn(pte);
+
+    ASSERT(pte_is_valid(pte));
+
+    /*
+     * TODO: Currently we don't handle level 2 super-page, Xen is not
+     * preemptible and therefore some work is needed to handle such
+     * superpages, for which at some point Xen might end up freeing memory
+     * and therefore for such a big mapping it could end up in a very long
+     * operation.
+     */
+    switch ( level )
+    {
+    case 1:
+        return p2m_put_2m_superpage(mfn, p2mt);
+
+    case 0:
+        return p2m_put_4k_page(mfn, p2mt);
+
+    default:
+        ASSERT_UNREACHABLE();
+        break;
+    }
+}
+
+static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg)
+{
+    page_list_del(pg, &p2m->pages);
+
+    paging_free_page(p2m->domain, pg);
+}
+
 /* Free pte sub-tree behind an entry */
 static void p2m_free_subtree(struct p2m_domain *p2m,
                              pte_t entry, unsigned int level)
 {
-    panic("%s: hasn't been implemented yet\n", __func__);
+    unsigned int i;
+    pte_t *table;
+    mfn_t mfn;
+    struct page_info *pg;
+
+    /*
+     * Check if the level is valid: only 4K - 2M - 1G mappings are supported.
+     * To support levels > 2, the implementation of p2m_free_subtree() would
+     * need to be updated, as the current recursive approach could consume
+     * excessive time and memory.
+     */
+    ASSERT(level <= P2M_MAX_SUPPORTED_LEVEL_MAPPING);
+
+    /* Nothing to do if the entry is invalid. */
+    if ( !pte_is_valid(entry) )
+        return;
+
+    if ( pte_is_mapping(entry) )
+    {
+        p2m_type_t p2mt = p2m_get_type(entry);
+
+#ifdef CONFIG_IOREQ_SERVER
+        /*
+         * If this gets called then either the entry was replaced by an entry
+         * with a different base (valid case) or the shattering of a superpage
+         * has failed (error case).
+         * So, at worst, the spurious mapcache invalidation might be sent.
+         */
+        if ( p2m_is_ram(p2mt) &&
+             domain_has_ioreq_server(p2m->domain) )
+            ioreq_request_mapcache_invalidate(p2m->domain);
+#endif
+
+        p2m_put_page(entry, level, p2mt);
+
+        return;
+    }
+
+    table = map_domain_page(pte_get_mfn(entry));
+
+    for ( i = 0; i < P2M_PAGETABLE_ENTRIES(p2m, level); i++ )
+        p2m_free_subtree(p2m, table[i], level - 1);
+
+    unmap_domain_page(table);
+
+    /*
+     * Make sure all the references in the TLB have been removed before
+     * freing the intermediate page table.
+     * XXX: Should we defer the free of the page table to avoid the
+     * flush?
+     */
+    p2m_tlb_flush_sync(p2m);
+
+    mfn = pte_get_mfn(entry);
+    ASSERT(mfn_valid(mfn));
+
+    pg = mfn_to_page(mfn);
+
+    p2m_free_page(p2m, pg);
 }
 
 /* Insert an entry in the p2m */
diff --git a/xen/arch/riscv/paging.c b/xen/arch/riscv/paging.c
index d401ddc34e..09631c9894 100644
--- a/xen/arch/riscv/paging.c
+++ b/xen/arch/riscv/paging.c
@@ -109,6 +109,14 @@ int paging_ret_to_domheap(struct domain *d, unsigned int nr_pages)
     return 0;
 }
 
+void paging_free_page(struct domain *d, struct page_info *pg)
+{
+    spin_lock(&d->arch.paging.lock);
+    page_list_add_tail(pg, &d->arch.paging.freelist);
+    d->arch.paging.total_pages++;
+    spin_unlock(&d->arch.paging.lock);
+}
+
 /* Domain paging struct initialization. */
 int paging_domain_init(struct domain *d)
 {
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 340ed3cd6c..115dc1a9ae 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -65,11 +65,6 @@ int arch_monitor_domctl_event(struct domain *d,
 
 /* smp.c */
 
-void arch_flush_tlb_mask(const cpumask_t *mask)
-{
-    BUG_ON("unimplemented");
-}
-
 void smp_send_event_check_mask(const cpumask_t *mask)
 {
     BUG_ON("unimplemented");
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:34:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:34:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170577.1495728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVlz-0004YJ-UO; Mon, 24 Nov 2025 12:34:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170577.1495728; Mon, 24 Nov 2025 12:34:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVlz-0004Wv-Dk; Mon, 24 Nov 2025 12:34:27 +0000
Received: by outflank-mailman (input) for mailman id 1170577;
 Mon, 24 Nov 2025 12: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=Sr25=6A=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vNVlw-0001Xp-Tz
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:34:25 +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 e6ff8a52-c931-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 13:34:21 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b734fcbf1e3so723443166b.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:34:21 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cf0435sm1285238866b.4.2025.11.24.04.34.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 04: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: e6ff8a52-c931-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987661; x=1764592461; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dQp2OoNfq9Sz1ZgJX4NxfN3iqCp+UHoWarG4Q3teMCM=;
        b=jWPTbjfgLGGSX7nhI6F4Acou/ymTmtIziP3OHcDAahc8wgVcn+lvg/LUbBA4LM9Snh
         Ji+L6kEF1ES2dKJD9VHJVqOLTh21Vx3hVmCJepgnhXx9lmQhtW0mlA/VHJ3jz2JuTqtf
         bckahm9FUUbKYYBl+q8ojUbeoBPcXBLgdLQJwxlMBVdlNAKSJlisq51WwMwmK9rPRgH2
         FNW5weRbyIcCAXayp9ad/SAWgBWqkv863aF4MGxqGO4ajBB5c2bPBlUyXJ0SIhPQow4w
         rb61oUjIwnfux8CqNAJfzdhlfb60puUcURgtV0SCpq8jwYXaJ58KIvFfMvjGexyiRROo
         QhZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987661; x=1764592461;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=dQp2OoNfq9Sz1ZgJX4NxfN3iqCp+UHoWarG4Q3teMCM=;
        b=bdvFeS6yZ+f1SEQu6PySwyISQpT3qxndBfMoEA+DUYma0HZ8y3O+1Y69EZwQJpUIui
         iCc3S4EbXGpOw+E7WR7ndXyZh/K1SoU0nPBc4lOkxDitnIkQJsUvZAuVHLSr9PjdtIJl
         6sxIjIkH2t9XuuAYeGCm77PFfgDwZhHIPwW+JsR4gwmOrwRh4paOoypwBLXKCnT/0D0/
         EVmusOrQ6v+vYQEqAVSEVdPEEkkRICv8eu+MK+4YNMHyfdWSJV21131IWqp3igxlTmQH
         0OlqEq3Zxp2vBtgRRrRD59Gw32ont/QKI6qg+DuW0Uf82m+aKTGpglQ6PacFOZh4NEYq
         Apeg==
X-Gm-Message-State: AOJu0YwtW0ZJ5Ff7LgZ4l9gs6aZyRrtAVEub9AZqKhtI2iEPpnUwl148
	muV5lHMV7IP9jKjI6enGVEO62FrnAZ9pNDYQTbzeXqPMGxHgsYQ1OJO8P6SZaWV7
X-Gm-Gg: ASbGncveMyp3TkqGs9mgOYt2wY83XPgW2bacdQl2KE8dHVMRPibDd1lGjnsqFGIoU9h
	jyvcL4QehELLT8XuBZasfQ0xaOJL6sL4dpSLWuw26/AiZ6mm+NLh2zgROC1uDKLLlapWddz/jMQ
	PzPY452Ua4SRiRFymTTaaYoLkl/tn5Cnh8fsAZrS2I2ng3YpPu5XIkduhpgKW6OzJeEv4Dmc1y7
	NLFtVAMANvgIjX6QbnWbpuPS64gVM7DbeFeYoRWwrB9pkmaQQmD1kwZXQDWRERSkISzPrUNlTIz
	PBoeriTR3E6GoU/9APVfTJv+QQHLX38+PoZtW8aBGg01FH8sgOgbljaln3SQsi+ixyD1JQKUDu6
	2BW6P4CVzi5YAp/pgLEzNLOGY6VGWn/QGp8pbkdOay7Kzsx62O7TVLseVhp7Fhiddmy7QRHiujG
	3PTh7ELLMgfmyt3IAVzG/TM26ADJhnOOcS3EXGnZe8pRhU4Kh1tlxDLM4=
X-Google-Smtp-Source: AGHT+IHMZg5zjaC2yYJ/ZQOjLVZV07Qa2zaddo5I7mLFInG9+bWGbTG0UHqITM+efRw3YrG/yaoGcA==
X-Received: by 2002:a17:907:948e:b0:b76:6aca:f1f3 with SMTP id a640c23a62f3a-b7671589e26mr1303600366b.19.1763987660416;
        Mon, 24 Nov 2025 04:34:20 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 11/19] xen/riscv: implement p2m_set_range()
Date: Mon, 24 Nov 2025 13:33:44 +0100
Message-ID: <5f2812bb3b82ba1f9178eb00f68a85388f862f09.1763986955.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <cover.1763986955.git.oleksii.kurochko@gmail.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This patch introduces p2m_set_range() and its core helper p2m_set_entry() for
RISC-V, based loosely on the Arm implementation, with several RISC-V-specific
modifications.

The main changes are:
- Simplification of Break-Before-Make (BBM) approach as according to RISC-V
  spec:
    It is permitted for multiple address-translation cache entries to co-exist
    for the same address. This represents the fact that in a conventional
    TLB hierarchy, it is possible for multiple entries to match a single
    address if, for example, a page is upgraded to a superpage without first
    clearing the original non-leaf PTEâ€™s valid bit and executing an SFENCE.VMA
    with rs1=x0, or if multiple TLBs exist in parallel at a given level of the
    hierarchy. In this case, just as if an SFENCE.VMA is not executed between
    a write to the memory-management tables and subsequent implicit read of the
    same address: it is unpredictable whether the old non-leaf PTE or the new
    leaf PTE is used, but the behavior is otherwise well defined.
  In contrast to the Arm architecture, where BBM is mandatory and failing to
  use it in some cases can lead to CPU instability, RISC-V guarantees
  stability, and the behavior remains safe â€” though unpredictable in terms of
  which translation will be used.
- Unlike Arm, the valid bit is not repurposed for other uses in this
  implementation. Instead, entry validity is determined based solely on P2M
  PTE's valid bit.

The main functionality is in p2m_set_entry(), which handles mappings aligned
to page table block entries (e.g., 1GB, 2MB, or 4KB with 4KB granularity).

p2m_set_range() breaks a region down into block-aligned mappings and calls
p2m_set_entry() accordingly.

Stub implementations (to be completed later) include:
- p2m_free_subtree()
- p2m_next_level()
- p2m_pte_from_mfn()

Note: Support for shattering block entries is not implemented in this
patch and will be added separately.

Additionally, some straightforward helper functions are now implemented:
- p2m_write_pte()
- p2m_remove_pte()
- p2m_get_root_pointer()

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V6:
 - Drop the last paragraph in the comment above P2M_LEVEL_ORDER().
 - Update prototype of calc_offset(..., vaddr_t va) to
   calc_offset(..., paddr_t gpa).
 - Rename root_table_indx to idx.
 - s/clean_pte/clean_cache.
 - Fix identations.
 - Introduce P2M_MAX_SUPPORTED_LEVEL_MAPPING to use it instead of magic constant.
 - Rename GFN_MASK to P2M_TABLE_OFFSET
 - Update the implementation of calc_offset() and get_root_pointer().
 - s/P2M_DECLARE_OFFSETS/P2M_BUILD_LEVEL_OFFSETS.
 - Add BUG_ON() inside P2M_BUILD_LEVEL_OFFSETS() to be sure that
   actual root level isn't higer then maximum possible.
 - Move gstage_mode and gstage_level inside p2m_domain structure.
---
Changes in V5:
 - Update the comment above p2m_get_root_pointer().
 - Fix an identation for p2m_set_entry()'s arguments.
 - Update the comment in p2m_set_entry() where lookup is happening.
 - Drop part of the comment above p2m_set_entry() as it is not really
   needed anymore.
 - Introduce P2M_DECLARE_OFFSETS() to use it insetead of
   DECLARE_OFFSETS() as the latter could have an issue with P2M code.
 - Update p2m_get_root_pointer() to work only with P2M root properties.
 - Update the comment inside in p2m_set_entry() for the case when
   p2m_next_level() returns P2M_TABLE_MAP_{NONE,NOMEM}.
 - Simplify a little bit a condition when p2m_free_subtree() by removing
   a case when removing && mfn(0) are checked explicitly.
---
Changes in V4:
 - Introduce gstage_root_level and use it for defintion of P2M_ROOT_LEVEL.
 - Introduce P2M_LEVEL_ORDER() macros and P2M_PAGETABLE_ENTRIES().
 - Add the TODO comment in p2m_write_pte() about possible perfomance
   optimization.
 - Use compound literal for `pte` variable inside p2m_clean_pte().
 - Fix the comment above p2m_next_level().
 - Update ASSERT() inside p2m_set_entry() and leave only a check of a
   target as p2m_mapping_order() that page_order will be correctly
   aligned.
 - Update the comment above declaration of `removing_mapping` in
   p2m_set_entry().
 - Stray blanks.
 - Handle possibly overflow of an amount of unmapped GFNs in case of
   some failute in p2m_set_range().
 - Handle a case when MFN is 0 and removing of such MFN is happening in
   p2m_set_entry.
 - Fix p2m_get_root_pointer() to return correct pointer to root page table.
---
Changes in V3:
 - Drop p2m_access_t connected stuff as it isn't going to be used, at least
   now.
 - Move defintion of P2M_ROOT_ORDER and P2M_ROOT_PAGES to earlier patches.
 - Update the comment above lowest_mapped_gfn declaration.
 - Update the comment above p2m_get_root_pointer(): s/"...ofset of the root
   table"/"...ofset into root table".
 - s/p2m_remove_pte/p2m_clean_pte.
 - Use plain 0 instead of 0x00 in p2m_clean_pte().
 - s/p2m_entry_from_mfn/p2m_pte_from_mfn.
 - s/GUEST_TABLE_*/P2M_TABLE_*.
 - Update the comment above p2m_next_level(): "GFN entry" -> "corresponding
   the entry corresponding to the GFN".
 - s/__p2m_set_entry/_p2m_set_entry.
 - drop "s" for sgfn and smfn prefixes of _p2m_set_entry()'s arguments
   as this function work only with one GFN and one MFN.
 - Return correct return code when p2m_next_level() faild in _p2m_set_entry(),
   also drop "else" and just handle case (rc != P2M_TABLE_NORMAL) separately.
 - Code style fixes.
 - Use unsigned int for "order" in p2m_set_entry().
 - s/p2m_set_entry/p2m_free_subtree.
 - Update ASSERT() in __p2m_set_enty() to check that page_order is propertly
   aligned.
 - Return -EACCES instead of -ENOMEM in the chase when domain is dying and
   someone called p2m_set_entry.
 - s/p2m_set_entry/p2m_set_range.
 - s/__p2m_set_entry/p2m_set_entry
 - s/p2me_is_valid/p2m_is_valid()
 - Return a number of successfully mapped GFNs in case if not all were mapped
   in p2m_set_range().
 - Use BIT(order, UL) instead of 1 << order.
 - Drop IOMMU flushing code from p2m_set_entry().
 - set p2m->need_flush=true when entry in p2m_set_entry() is changed.
 - Introduce p2m_mapping_order() to support superpages.
 - Drop p2m_is_valid() and use pte_is_valid() instead as there is no tricks
   with copying of valid bit anymore.
 - Update p2m_pte_from_mfn() prototype: drop p2m argument.
---
Changes in V2:
 - New patch. It was a part of a big patch "xen/riscv: implement p2m mapping
   functionality" which was splitted to smaller.
 - Update the way when p2m TLB is flushed:
 - RISC-V does't require BBM so there is no need to remove PTE before making
   new so drop 'if /*pte_is_valid(orig_pte) */' and remove PTE only removing
   has been requested.
 - Drop p2m->need_flush |= !!pte_is_valid(orig_pte); for the case when
   PTE's removing is happening as RISC-V could cache invalid PTE and thereby
   it requires to do a flush each time and it doesn't matter if PTE is valid
   or not at the moment when PTE removing is happening.
 - Drop a check if PTE is valid in case of PTE is modified as it was mentioned
   above as BBM isn't required so TLB flushing could be defered and there is
   no need to do it before modifying of PTE.
 - Drop p2m->need_flush as it seems like it will be always true.
 - Drop foreign mapping things as it isn't necessary for RISC-V right now.
 - s/p2m_is_valid/p2me_is_valid.
 - Move definition and initalization of p2m->{max_mapped_gfn,lowest_mapped_gfn}
   to this patch.
---
 xen/arch/riscv/include/asm/p2m.h |  38 ++++
 xen/arch/riscv/p2m.c             | 326 ++++++++++++++++++++++++++++++-
 2 files changed, 363 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index 9acd6a64a8..fa55d8a3bc 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -8,10 +8,38 @@
 #include <xen/rwlock.h>
 #include <xen/types.h>
 
+#include <asm/page.h>
 #include <asm/page-bits.h>
 
 #define P2M_ROOT_ORDER  (ilog2(GSTAGE_ROOT_PAGE_TABLE_SIZE) - PAGE_SHIFT)
 #define P2M_ROOT_PAGES  BIT(P2M_ROOT_ORDER, U)
+#define P2M_ROOT_LEVEL(p2m) ((p2m)->mode.paging_levels)
+
+/*
+ * According to the RISC-V spec:
+ *   When hgatp.MODE specifies a translation scheme of Sv32x4, Sv39x4, Sv48x4,
+ *   or Sv57x4, G-stage address translation is a variation on the usual
+ *   page-based virtual address translation scheme of Sv32, Sv39, Sv48, or
+ *   Sv57, respectively. In each case, the size of the incoming address is
+ *   widened by 2 bits (to 34, 41, 50, or 59 bits).
+ *
+ * P2M_LEVEL_ORDER(lvl) defines the bit position in the GFN from which
+ * the index for this level of the P2M page table starts. The extra 2
+ * bits added by the "x4" schemes only affect the root page table width.
+ *
+ * Therefore, this macro can safely reuse XEN_PT_LEVEL_ORDER() for all
+ * levels: the extra 2 bits do not change the indices of lower levels.
+ */
+#define P2M_LEVEL_ORDER(lvl) XEN_PT_LEVEL_ORDER(lvl)
+
+#define P2M_ROOT_EXTRA_BITS(p2m, lvl) (2 * ((lvl) == P2M_ROOT_LEVEL(p2m)))
+
+#define P2M_PAGETABLE_ENTRIES(p2m, lvl) \
+    (BIT(PAGETABLE_ORDER + P2M_ROOT_EXTRA_BITS(p2m, lvl), UL))
+
+#define P2M_TABLE_OFFSET(p2m, lvl) (P2M_PAGETABLE_ENTRIES(p2m, lvl) - 1UL)
+
+#define P2M_GFN_LEVEL_SHIFT(lvl) (P2M_LEVEL_ORDER(lvl) + PAGE_SHIFT)
 
 #define paddr_bits PADDR_BITS
 
@@ -58,6 +86,16 @@ struct p2m_domain {
      * when a page is needed to be fully cleared and cleaned.
      */
     bool clean_dcache;
+
+    /* Highest guest frame that's ever been mapped in the p2m */
+    gfn_t max_mapped_gfn;
+
+    /*
+     * Lowest mapped gfn in the p2m. When releasing mapped gfn's in a
+     * preemptible manner this is updated to track where to resume
+     * the search. Apart from during teardown this can only decrease.
+     */
+    gfn_t lowest_mapped_gfn;
 };
 
 /*
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index c559cde13a..c21873b2ac 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -9,6 +9,7 @@
 #include <xen/rwlock.h>
 #include <xen/sched.h>
 #include <xen/sections.h>
+#include <xen/xvmalloc.h>
 
 #include <asm/csr.h>
 #include <asm/flushtlb.h>
@@ -17,6 +18,13 @@
 #include <asm/riscv_encoding.h>
 #include <asm/vmid.h>
 
+/*
+ * At the moment, only 4K, 2M, and 1G mappings are supported for G-stage
+ * translation. Therefore, the maximum supported page-table level is 2,
+ * which corresponds to 1G mappings.
+ */
+#define P2M_MAX_SUPPORTED_LEVEL_MAPPING _AC(2, U)
+
 static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
     .mode = HGATP_MODE_OFF,
     .paging_levels = 0,
@@ -28,6 +36,77 @@ unsigned char get_max_supported_mode(void)
     return max_gstage_mode.mode;
 }
 
+static inline unsigned int calc_offset(const struct p2m_domain *p2m,
+                                       const unsigned int lvl,
+                                       const paddr_t gpa)
+{
+    unsigned int off = (gpa >> P2M_GFN_LEVEL_SHIFT(lvl)) &
+                       P2M_TABLE_OFFSET(p2m, lvl);
+
+    /*
+     * For P2M_ROOT_LEVEL, `offset` ranges from 0 to 2047, since the root
+     * page table spans 4 consecutive 4KB pages.
+     * We want to return an index within one of these 4 pages.
+     * The specific page to use is determined by `p2m_get_root_pointer()`.
+     *
+     * Example: if `offset == 512`:
+     *  - A single 4KB page holds 512 entries.
+     *  - Therefore, entry 512 corresponds to index 0 of the second page.
+     *
+     * At all other levels, only one page is allocated, and `offset` is
+     * always in the range 0 to 511, since the VPN is 9 bits long.
+     */
+    return off & (PAGETABLE_ENTRIES - 1);
+}
+
+#define P2M_MAX_ROOT_LEVEL 5
+
+#define P2M_BUILD_LEVEL_OFFSETS(p2m, var, addr) \
+    unsigned int var[P2M_MAX_ROOT_LEVEL] = {-1}; \
+    BUG_ON(P2M_ROOT_LEVEL(p2m) >= P2M_MAX_ROOT_LEVEL); \
+    for ( unsigned int i = 0; i <= P2M_ROOT_LEVEL(p2m); i++ ) \
+        var[i] = calc_offset(p2m, i, addr);
+
+/*
+ * Map one of the four root pages of the P2M root page table.
+ *
+ * The P2M root page table is larger than normal (16KB instead of 4KB),
+ * so it is allocated as four consecutive 4KB pages. This function selects
+ * the appropriate 4KB page based on the given GFN and returns a mapping
+ * to it.
+ *
+ * The caller is responsible for unmapping the page after use.
+ *
+ * Returns NULL if the calculated offset into the root table is invalid.
+ */
+static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
+{
+    unsigned long idx;
+    unsigned long root_level = P2M_ROOT_LEVEL(p2m);
+
+    idx = gfn_x(gfn) >> P2M_LEVEL_ORDER(root_level);
+    if ( idx >= P2M_PAGETABLE_ENTRIES(p2m, root_level) )
+        return NULL;
+
+    /*
+     * The P2M root page table is extended by 2 bits, making its size 16KB
+     * (instead of 4KB for non-root page tables). Therefore, p2m->root is
+     * allocated as four consecutive 4KB pages (since alloc_domheap_pages()
+     * only allocates 4KB pages).
+     *
+     * Initially, `idx` is derived directly from `gfn`.
+     * To locate the correct entry within a single 4KB page,
+     * we rescale the offset so it falls within one of the 4 pages.
+     *
+     * Example: if `idx == 512`
+     * - A 4KB page holds 512 entries.
+     * - Thus, entry 512 corresponds to index 0 of the second page.
+     */
+    idx /= PAGETABLE_ENTRIES;
+
+    return __map_domain_page(p2m->root + idx);
+}
+
 static void __init gstage_mode_detect(void)
 {
     static const struct gstage_mode_desc modes[] __initconst = {
@@ -232,6 +311,9 @@ int p2m_init(struct domain *d)
     rwlock_init(&p2m->lock);
     INIT_PAGE_LIST_HEAD(&p2m->pages);
 
+    p2m->max_mapped_gfn = _gfn(0);
+    p2m->lowest_mapped_gfn = _gfn(ULONG_MAX);
+
     /*
      * Currently, the infrastructure required to enable CONFIG_HAS_PASSTHROUGH
      * is not ready for RISC-V support.
@@ -278,13 +360,255 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
     return rc;
 }
 
+static inline void p2m_write_pte(pte_t *p, pte_t pte, bool clean_cache)
+{
+    write_pte(p, pte);
+
+    /*
+     * TODO: if multiple adjacent PTEs are written without releasing
+     *       the lock, this then redundant cache flushing can be a
+     *       performance issue.
+     */
+    if ( clean_cache )
+        clean_dcache_va_range(p, sizeof(*p));
+}
+
+static inline void p2m_clean_pte(pte_t *p, bool clean_cache)
+{
+    pte_t pte = { .pte = 0 };
+
+    p2m_write_pte(p, pte, clean_cache);
+}
+
+static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t)
+{
+    panic("%s: hasn't been implemented yet\n", __func__);
+
+    return (pte_t) { .pte = 0 };
+}
+
+#define P2M_TABLE_MAP_NONE 0
+#define P2M_TABLE_MAP_NOMEM 1
+#define P2M_TABLE_SUPER_PAGE 2
+#define P2M_TABLE_NORMAL 3
+
+/*
+ * Take the currently mapped table, find the entry corresponding to the GFN,
+ * and map the next-level table if available. The previous table will be
+ * unmapped if the next level was mapped (e.g., when P2M_TABLE_NORMAL is
+ * returned).
+ *
+ * `alloc_tbl` parameter indicates whether intermediate tables should
+ * be allocated when not present.
+ *
+ * Return values:
+ *  P2M_TABLE_MAP_NONE: a table allocation isn't permitted.
+ *  P2M_TABLE_MAP_NOMEM: allocating a new page failed.
+ *  P2M_TABLE_SUPER_PAGE: next level or leaf mapped normally.
+ *  P2M_TABLE_NORMAL: The next entry points to a superpage.
+ */
+static int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,
+                          unsigned int level, pte_t **table,
+                          unsigned int offset)
+{
+    panic("%s: hasn't been implemented yet\n", __func__);
+
+    return P2M_TABLE_MAP_NONE;
+}
+
+/* Free pte sub-tree behind an entry */
+static void p2m_free_subtree(struct p2m_domain *p2m,
+                             pte_t entry, unsigned int level)
+{
+    panic("%s: hasn't been implemented yet\n", __func__);
+}
+
+/* Insert an entry in the p2m */
+static int p2m_set_entry(struct p2m_domain *p2m,
+                         gfn_t gfn,
+                         unsigned long page_order,
+                         mfn_t mfn,
+                         p2m_type_t t)
+{
+    unsigned int level;
+    unsigned int target = page_order / PAGETABLE_ORDER;
+    pte_t *entry, *table, orig_pte;
+    int rc;
+    /*
+     * A mapping is removed only if the MFN is explicitly set to INVALID_MFN.
+     * Other MFNs that are considered invalid by mfn_valid() (e.g., MMIO)
+     * are still allowed.
+     */
+    bool removing_mapping = mfn_eq(mfn, INVALID_MFN);
+    P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
+
+    ASSERT(p2m_is_write_locked(p2m));
+
+    /*
+     * Check if the level target is valid: we only support
+     * 4K - 2M - 1G mapping.
+     */
+    ASSERT(target <= P2M_MAX_SUPPORTED_LEVEL_MAPPING);
+
+    table = p2m_get_root_pointer(p2m, gfn);
+    if ( !table )
+        return -EINVAL;
+
+    for ( level = P2M_ROOT_LEVEL(p2m); level > target; level-- )
+    {
+        /*
+         * Don't try to allocate intermediate page table if the mapping
+         * is about to be removed.
+         */
+        rc = p2m_next_level(p2m, !removing_mapping,
+                            level, &table, offsets[level]);
+        if ( (rc == P2M_TABLE_MAP_NONE) || (rc == P2M_TABLE_MAP_NOMEM) )
+        {
+            rc = (rc == P2M_TABLE_MAP_NONE) ? -ENOENT : -ENOMEM;
+            /*
+             * We are here because p2m_next_level has failed to map
+             * the intermediate page table (e.g the table does not exist
+             * and none should be allocated). It is a valid case
+             * when removing a mapping as it may not exist in the
+             * page table. In this case, just ignore lookup failure.
+             */
+            rc = removing_mapping ? 0 : rc;
+            goto out;
+        }
+
+        if ( rc != P2M_TABLE_NORMAL )
+            break;
+    }
+
+    entry = table + offsets[level];
+
+    /*
+     * If we are here with level > target, we must be at a leaf node,
+     * and we need to break up the superpage.
+     */
+    if ( level > target )
+    {
+        panic("Shattering isn't implemented\n");
+    }
+
+    /*
+     * We should always be there with the correct level because all the
+     * intermediate tables have been installed if necessary.
+     */
+    ASSERT(level == target);
+
+    orig_pte = *entry;
+
+    if ( removing_mapping )
+        p2m_clean_pte(entry, p2m->clean_dcache);
+    else
+    {
+        pte_t pte = p2m_pte_from_mfn(mfn, t);
+
+        p2m_write_pte(entry, pte, p2m->clean_dcache);
+
+        p2m->max_mapped_gfn = gfn_max(p2m->max_mapped_gfn,
+                                      gfn_add(gfn, BIT(page_order, UL) - 1));
+        p2m->lowest_mapped_gfn = gfn_min(p2m->lowest_mapped_gfn, gfn);
+    }
+
+    p2m->need_flush = true;
+
+    /*
+     * Currently, the infrastructure required to enable CONFIG_HAS_PASSTHROUGH
+     * is not ready for RISC-V support.
+     *
+     * When CONFIG_HAS_PASSTHROUGH=y, iommu_iotlb_flush() should be done
+     * here.
+     */
+#ifdef CONFIG_HAS_PASSTHROUGH
+#   error "add code to flush IOMMU TLB"
+#endif
+
+    rc = 0;
+
+    /*
+     * In case of a VALID -> INVALID transition, the original PTE should
+     * always be freed.
+     *
+     * In case of a VALID -> VALID transition, the original PTE should be
+     * freed only if the MFNs are different. If the MFNs are the same
+     * (i.e., only permissions differ), there is no need to free the
+     * original PTE.
+     */
+    if ( pte_is_valid(orig_pte) &&
+         (!pte_is_valid(*entry) ||
+          !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte))) )
+        p2m_free_subtree(p2m, orig_pte, level);
+
+ out:
+    unmap_domain_page(table);
+
+    return rc;
+}
+
+/* Return mapping order for given gfn, mfn and nr */
+static unsigned long p2m_mapping_order(const struct p2m_domain *p2m, gfn_t gfn,
+                                       mfn_t mfn, unsigned long nr)
+{
+    unsigned long mask;
+    /* 1gb, 2mb, 4k mappings are supported */
+    unsigned int level = min(P2M_ROOT_LEVEL(p2m), P2M_MAX_SUPPORTED_LEVEL_MAPPING);
+    unsigned long order = 0;
+
+    mask = !mfn_eq(mfn, INVALID_MFN) ? mfn_x(mfn) : 0;
+    mask |= gfn_x(gfn);
+
+    for ( ; level != 0; level-- )
+    {
+        if ( !(mask & (BIT(P2M_LEVEL_ORDER(level), UL) - 1)) &&
+             (nr >= BIT(P2M_LEVEL_ORDER(level), UL)) )
+        {
+            order = P2M_LEVEL_ORDER(level);
+            break;
+        }
+    }
+
+    return order;
+}
+
 static int p2m_set_range(struct p2m_domain *p2m,
                          gfn_t sgfn,
                          unsigned long nr,
                          mfn_t smfn,
                          p2m_type_t t)
 {
-    return -EOPNOTSUPP;
+    int rc = 0;
+    unsigned long left = nr;
+
+    /*
+     * Any reference taken by the P2M mappings (e.g. foreign mapping) will
+     * be dropped in relinquish_p2m_mapping(). As the P2M will still
+     * be accessible after, we need to prevent mapping to be added when the
+     * domain is dying.
+     */
+    if ( unlikely(p2m->domain->is_dying) )
+        return -EACCES;
+
+    while ( left )
+    {
+        unsigned long order = p2m_mapping_order(p2m, sgfn, smfn, left);
+
+        rc = p2m_set_entry(p2m, sgfn, order, smfn, t);
+        if ( rc )
+            break;
+
+        sgfn = gfn_add(sgfn, BIT(order, UL));
+        if ( !mfn_eq(smfn, INVALID_MFN) )
+            smfn = mfn_add(smfn, BIT(order, UL));
+
+        left -= BIT(order, UL);
+    }
+
+    if ( left > INT_MAX )
+        rc = -EOVERFLOW;
+
+    return !left ? rc : left;
 }
 
 int map_regions_p2mt(struct domain *d,
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:34:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:34:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170580.1495735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVm1-0004op-94; Mon, 24 Nov 2025 12:34:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170580.1495735; Mon, 24 Nov 2025 12:34: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 1vNVm0-0004lW-R9; Mon, 24 Nov 2025 12:34:28 +0000
Received: by outflank-mailman (input) for mailman id 1170580;
 Mon, 24 Nov 2025 12:34: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=Sr25=6A=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vNVly-0001zv-RZ
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:34:26 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e92f87ce-c931-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:34:25 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b735487129fso616357966b.0
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:34:25 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cf0435sm1285238866b.4.2025.11.24.04.34.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 04:34: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: e92f87ce-c931-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987664; x=1764592464; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DK0L2VvFB7fpyE10p4WRh14qUcf6WCTTRo9w9HXN/kw=;
        b=VqpwspNCcoyvVJ1j5Cq9NNTTX8772uEHgzoIEMkVXxkzZloxRqATcdDEjwivJtLonZ
         Cm3+VlU7ksB/iHpOY2isOPUS/sqmuuIpelU/jSVafPC12Af3/BMcOyHNiW9RmzVR/AfN
         OszBdmtM4hUD8Gk4MsXHDDqN0YbOuUXOuuOyV2MCy7S8ZMmry8xKeVZi5nrTnGVeXqb7
         u2M+oCuHCWHQZYrHwcbWmhTuhAE/m5IwMKwHWl26qlR2AzcMeYGfoDLOAT2Q+hcw/kRW
         tJcGPNE6CAVntBJfsSi+hspd4tPLwX1uB/atu3upQXhke8YwOSA+kUaFVtfqM49JOUZI
         O3XQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987664; x=1764592464;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=DK0L2VvFB7fpyE10p4WRh14qUcf6WCTTRo9w9HXN/kw=;
        b=aCAaA31YXbwf+eDyi8Bz6oRMZMA1GGo7hN5ZpH5RZW/sofq5+8Cz3W8ex3OIrrPKFT
         TOEBxUmuX6WrhHj7bFeIwqleodmmdYcMYMpOeJegHD+KpmRb8SS0OEsRvWTGS2zjXyMu
         S6lqGd4AVDs8NvJx9lsAWZl3hTQ4zfsAkPKfnDXZs+MsDlFxklQ+gAGzJ6gvjWlJRziZ
         5qFx5HBtoD58/3ekKT6N4YmkeoZ5A7mr9zE7vkbWJ6jJr3Qa7lCqhzCzeh14nz8SVyzc
         Czpe3OAp4wiTJ0nhMUfjjHzGOWFohcH1iUQ1oIntHvY+XWwJkMbHhe871bN3wWoyzqke
         FCfg==
X-Gm-Message-State: AOJu0YzYs6GEO3RutfkafAnxegqtaxTtn9vLZFy+eRzKbt/kw1m2oneL
	q6Qbn5JmcdeFRLV1lczQlR+r/mNqn2dK5jWsO+DUQEHELrBdrIofUHAriWUY7DzX
X-Gm-Gg: ASbGncteoMUrCWo2CsXXf1biyz8cOrLGlrAfu3Y9/qIQfCxUi9un6MS9R+fCaYxtJ/K
	ConKAEwHa/E9Q3YO/z7QJnoPqjtzBbu1snUFsMn4dqjjXZeh1VbQSu2aJFD+F8LRALi+72RdRag
	pg49S5xHeO3bN4XvdFIlBGrvt5exJ8jCEwm3s+lCUGKX0ujXRI9BDCn3LN0Cr1Vrcg3jEyDTU1t
	1FUoq0Ba5DnTi6XEy4jawJSETFoKdby+T1NkR3mwucncn7vRP0ocP4Y+P8eqNRdu2c8iWyd0hBh
	bXmSQGRkN8fRRb9rwZvgfG/hGqvFaejcQAFZ71H0JKFLGKwXddaVq2r555/QAI9IRB/3RBff97V
	cvBGPWkdUnJUooiRDiS6soFjKNaBMB23j0EZN5HL3+4oHPZpklIToz2+qISEFvm+n+7e291joGh
	/ziid6tVNp9ulOOGteaZDB8WGOtle5Ej1AMMRHxWfYLb7ezDbkBhSnpfc=
X-Google-Smtp-Source: AGHT+IGJE4fJdRi5HSwkax5ti2I3vX0v58VR+lz4oIx91Ys5ax4+qtK51+Vf5+NvsCcvNsUEwjfgAg==
X-Received: by 2002:a17:907:9711:b0:b46:6718:3f20 with SMTP id a640c23a62f3a-b76718cfde7mr1154893366b.48.1763987664316;
        Mon, 24 Nov 2025 04:34:24 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 14/19] xen/riscv: implement p2m_next_level()
Date: Mon, 24 Nov 2025 13:33:47 +0100
Message-ID: <b282a072fb15cdab5ed46ebcdb6f3b12c970a7af.1763986955.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <cover.1763986955.git.oleksii.kurochko@gmail.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement the p2m_next_level() function, which enables traversal and dynamic
allocation of intermediate levels (if necessary) in the RISC-V
p2m (physical-to-machine) page table hierarchy.

To support this, the following helpers are introduced:
- page_to_p2m_table(): Constructs non-leaf PTEs pointing to next-level page
  tables with correct attributes.
- p2m_alloc_page(): Allocates page table pages, supporting both hardware and
  guest domains.
- p2m_create_table(): Allocates and initializes a new page table page and
  installs it into the hierarchy.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V6:
 - s/intermidiate/intermediate.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V5:
 - Stray more blanks after * in declaration of functions.
 - Correct the comment above p2m_create_table() as metadata pages isn't
   allocated anymore in this function.
 - Move call of     clear_and_clean_page(page, p2m->clean_dcache); from
   p2m_create_table() to p2m_alloc_page().
 - Drop ACCESS_ONCE() in paging_alloc_page().
---
Changes in V4:
 - make `page` argument of page_to_p2m_table pointer-to-const.
 - Move p2m_next_level()'s local variable `ret` to the more narrow space where
   it is really used.
 - Drop stale ASSERT() in p2m_next_level().
 - Stray blank after * in declaration of paging_alloc_page().
 - Decrease p2m_freelist.total_pages when a page is taken from the p2m freelist.
---
Changes in V3:
 - s/p2me_is_mapping/p2m_is_mapping to be in syc with other p2m_is_*() functions.
 - clear_and_clean_page() in p2m_create_table() instead of clear_page() to be
   sure that page is cleared and d-cache is flushed for it.
 - Move ASSERT(level != 0) in p2m_next_level() ahead of trying to allocate a
   page table.
 - Update p2m_create_table() to allocate metadata page to store p2m type in it
   for each entry of page table.
 - Introduce paging_alloc_page() and use it inside p2m_alloc_page().
 - Add allocated page to p2m->pages list in p2m_alloc_page() to simplify
   a caller code a little bit.
 - Drop p2m_is_mapping() and use pte_is_mapping() instead as P2M PTE's valid
   bit doesn't have another purpose anymore.
 - Update an implementation and prototype of page_to_p2m_table(), it is enough
   to pass only a page as an argument.
---
Changes in V2:
 - New patch. It was a part of a big patch "xen/riscv: implement p2m mapping
   functionality" which was splitted to smaller.
 - s/p2m_is_mapping/p2m_is_mapping.
---

 xen/arch/riscv/include/asm/paging.h |  2 +
 xen/arch/riscv/p2m.c                | 77 ++++++++++++++++++++++++++++-
 xen/arch/riscv/paging.c             | 12 +++++
 3 files changed, 89 insertions(+), 2 deletions(-)

diff --git a/xen/arch/riscv/include/asm/paging.h b/xen/arch/riscv/include/asm/paging.h
index fe462be223..c1d225d02b 100644
--- a/xen/arch/riscv/include/asm/paging.h
+++ b/xen/arch/riscv/include/asm/paging.h
@@ -15,4 +15,6 @@ int paging_refill_from_domheap(struct domain *d, unsigned int nr_pages);
 
 void paging_free_page(struct domain *d, struct page_info *pg);
 
+struct page_info *paging_alloc_page(struct domain *d);
+
 #endif /* ASM_RISCV_PAGING_H */
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 8761204720..16663650ee 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -361,6 +361,19 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
     return rc;
 }
 
+static struct page_info *p2m_alloc_page(struct p2m_domain *p2m)
+{
+    struct page_info *pg = paging_alloc_page(p2m->domain);
+
+    if ( pg )
+    {
+        page_list_add(pg, &p2m->pages);
+        clear_and_clean_page(pg, p2m->clean_dcache);
+    }
+
+    return pg;
+}
+
 static int p2m_set_type(pte_t *pte, p2m_type_t t)
 {
     int rc = 0;
@@ -501,6 +514,33 @@ static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
     return e;
 }
 
+/* Generate table entry with correct attributes. */
+static pte_t page_to_p2m_table(const struct page_info *page)
+{
+    /*
+     * p2m_invalid will be ignored inside p2m_pte_from_mfn() as is_table is
+     * set to true and p2m_type_t shouldn't be applied for PTEs which
+     * describe an intermediate table.
+     */
+    return p2m_pte_from_mfn(page_to_mfn(page), p2m_invalid, true);
+}
+
+/* Allocate a new page table page and hook it in via the given entry. */
+static int p2m_create_table(struct p2m_domain *p2m, pte_t *entry)
+{
+    struct page_info *page;
+
+    ASSERT(!pte_is_valid(*entry));
+
+    page = p2m_alloc_page(p2m);
+    if ( page == NULL )
+        return -ENOMEM;
+
+    p2m_write_pte(entry, page_to_p2m_table(page), p2m->clean_dcache);
+
+    return 0;
+}
+
 #define P2M_TABLE_MAP_NONE 0
 #define P2M_TABLE_MAP_NOMEM 1
 #define P2M_TABLE_SUPER_PAGE 2
@@ -525,9 +565,42 @@ static int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,
                           unsigned int level, pte_t **table,
                           unsigned int offset)
 {
-    panic("%s: hasn't been implemented yet\n", __func__);
+    pte_t *entry;
+    mfn_t mfn;
+
+    /* The function p2m_next_level() is never called at the last level */
+    ASSERT(level != 0);
+
+    entry = *table + offset;
+
+    if ( !pte_is_valid(*entry) )
+    {
+        int ret;
+
+        if ( !alloc_tbl )
+            return P2M_TABLE_MAP_NONE;
+
+        ret = p2m_create_table(p2m, entry);
+        if ( ret )
+            return P2M_TABLE_MAP_NOMEM;
+    }
+
+    if ( pte_is_mapping(*entry) )
+        return P2M_TABLE_SUPER_PAGE;
+
+    mfn = mfn_from_pte(*entry);
+
+    unmap_domain_page(*table);
+
+    /*
+     * TODO: There's an inefficiency here:
+     *       In p2m_create_table(), the page is mapped to clear it.
+     *       Then that mapping is torn down in p2m_create_table(),
+     *       only to be re-established here.
+     */
+    *table = map_domain_page(mfn);
 
-    return P2M_TABLE_MAP_NONE;
+    return P2M_TABLE_NORMAL;
 }
 
 static void p2m_put_foreign_page(struct page_info *pg)
diff --git a/xen/arch/riscv/paging.c b/xen/arch/riscv/paging.c
index 09631c9894..76a203edbb 100644
--- a/xen/arch/riscv/paging.c
+++ b/xen/arch/riscv/paging.c
@@ -117,6 +117,18 @@ void paging_free_page(struct domain *d, struct page_info *pg)
     spin_unlock(&d->arch.paging.lock);
 }
 
+struct page_info *paging_alloc_page(struct domain *d)
+{
+    struct page_info *pg;
+
+    spin_lock(&d->arch.paging.lock);
+    pg = page_list_remove_head(&d->arch.paging.freelist);
+    d->arch.paging.total_pages--;
+    spin_unlock(&d->arch.paging.lock);
+
+    return pg;
+}
+
 /* Domain paging struct initialization. */
 int paging_domain_init(struct domain *d)
 {
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:34:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:34:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170582.1495743 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVm3-00059b-1B; Mon, 24 Nov 2025 12:34:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170582.1495743; Mon, 24 Nov 2025 12:34:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVm2-00052G-DI; Mon, 24 Nov 2025 12:34:30 +0000
Received: by outflank-mailman (input) for mailman id 1170582;
 Mon, 24 Nov 2025 12:34: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=Sr25=6A=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vNVm0-0001Xp-2z
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:34:28 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e9b8618e-c931-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 13:34:26 +0100 (CET)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-640aa1445c3so6370515a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:34:26 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cf0435sm1285238866b.4.2025.11.24.04.34.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 04:34: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: e9b8618e-c931-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987665; x=1764592465; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iGXjcl4bzWfmrQHbEGDLfbvaNcULNHnb/4QqHCXuuw0=;
        b=fl6lZUy1z2BnB7KoGidTtoj/mTWWtyyiSYKDSVb+cO+AYOlrJnJuYHaNYCaVpLz+Cs
         RaoKo2TCqDhISKGfnneMfFsrUvuU4gkd/r2TQpF5By0yqEx2qK78wPCMlyd399TAgac4
         o1kIeN5PspWoYXCDHijv6rDRKhFMR1mZtOUgAxzxO+DvHEA0IqVRpdlJvwyjxoOHpIRW
         x+GMPZcRwjYmIXoA2T1nsmMdIT8o0O84piKwQ61YW4T9D030lom+xog0mIFE/B2MlpbE
         t/2wk03IkxS07mj6wejD4Iq/FAR7yRdadZDQU9xmavNmE8/ozu+F7rds5KyX/RzbE8RN
         Xgyg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987665; x=1764592465;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=iGXjcl4bzWfmrQHbEGDLfbvaNcULNHnb/4QqHCXuuw0=;
        b=D2lA0l0bLi66YlZluKmBsTCHAj8Tkd6avH3MLEkjTf0wsbxd1cRRWejtrInprgPEDE
         GGgMUhSQNuBMqpR0dagmyDDJ7lpWedxNBw1n0LklJBHUVNAQ6AKHYbUf+ar0h5HWnvrm
         bVxjWRcNJpyvFmI6r/dquVt0cKK7AWEyNm1MDJ3xIqR1oC8gVZWCx2DWMEgO45kf6uTI
         eK6nYA1UfvsuHVTUlRLp/cN0jKTh6+Z9SOUQXVqBq3LTl9UTHurrwYzUOCm4CsW+4J/W
         m+KZtZlQLA3Lb4EsCvT4GWfpaLK2Biu9pGlu2JRlITi5hO6SIpnkd/KDCXCEYhYGL7MA
         40XQ==
X-Gm-Message-State: AOJu0YwXUcb8wW+mJ5Xp4cSvHWF7lHVIkBmTjjaauf2oveGKRPPE4z6S
	JyBNFBUkiuZXbnuu/4HVTdS0gjFLlozG+Sbg/cZ1Lsh8IwKOppUpSVcfkUvR8Swk
X-Gm-Gg: ASbGncuB2l5eSzwkth84HSn13hmRpN2SQSkaihF6bbjUFqUSVgcUkmgIr+RwWTIkhiF
	N5R4AIcKnv7a0sPD2dk6JXk6PCJck6O1mf55Hnnr7M8qxK5a8EW9vG8voKwR3SXEAuZcmFAKjLv
	moCDAAarAIuI0uuMWcBg60SEHd40TmE5nlfvgGaHo9WK0LR8UgF3vsnO7sx56TLCyrtd4n2d2eW
	TQAOfKO+9ZFjJMzFb8Jtrfubxf5PASpj96DunmUBHFjsyH1jkE/z3TgfBIEPqXYO2jo8bD2jCp/
	Er1faIdZysY00eldW8uJYGDURu4g49X6HCwm8AHwq7OA7/uozsjccngi1PjgYNx8tjauGEkEspI
	C8mL3M5L9P5qW78oWOta0LihNYCca5WCYvAVjuSbZnlBQM4Q+tQr1BxsBmv4frs7v8FzCFsOGVM
	6aq46OC1+NfiBQFM6LAXT2AgmNtWryNosHvwxr2QFnYf7ptzETi8zj1QY=
X-Google-Smtp-Source: AGHT+IGUzf5O3Fs9PsDR3D4iInrsRcuWqHw7CfxK66+HfRlX3e/RhLvLffcQzyfw2D2CoKfQGhhpqg==
X-Received: by 2002:a17:906:7314:b0:b70:b13c:3622 with SMTP id a640c23a62f3a-b7671549d09mr1271883866b.4.1763987665154;
        Mon, 24 Nov 2025 04:34:25 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 15/19] xen/riscv: Implement superpage splitting for p2m mappings
Date: Mon, 24 Nov 2025 13:33:48 +0100
Message-ID: <a6437054d985b8a014c771fcbd1634fb80cea4e6.1763986955.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <cover.1763986955.git.oleksii.kurochko@gmail.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add support for down large memory mappings ("superpages") in the RISC-V
p2m mapping so that smaller, more precise mappings ("finer-grained entries")
can be inserted into lower levels of the page table hierarchy.

To implement that the following is done:
- Introduce p2m_split_superpage(): Recursively shatters a superpage into
  smaller page table entries down to the target level, preserving original
  permissions and attributes.
- p2m_set_entry() updated to invoke superpage splitting when inserting
  entries at lower levels within a superpage-mapped region.

This implementation is based on the ARM code, with modifications to the part
that follows the BBM (break-before-make) approach, some parts are simplified
as according to RISC-V spec:
  It is permitted for multiple address-translation cache entries to co-exist
  for the same address. This represents the fact that in a conventional
  TLB hierarchy, it is possible for multiple entries to match a single
  address if, for example, a page is upgraded to a superpage without first
  clearing the original non-leaf PTEâ€™s valid bit and executing an SFENCE.VMA
  with rs1=x0, or if multiple TLBs exist in parallel at a given level of the
  hierarchy. In this case, just as if an SFENCE.VMA is not executed between
  a write to the memory-management tables and subsequent implicit read of the
  same address: it is unpredictable whether the old non-leaf PTE or the new
  leaf PTE is used, but the behavior is otherwise well defined.
In contrast to the Arm architecture, where BBM is mandatory and failing to
use it in some cases can lead to CPU instability, RISC-V guarantees
stability, and the behavior remains safe â€” though unpredictable in terms of
which translation will be used.

Additionally, the page table walk logic has been adjusted, as ARM uses the
opposite level numbering compared to RISC-V.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in V6:
 - Move introduction of pte_is_superpage() here as it is starting to be
   used in this patch now.
---
Changes in V5:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
 - use next_level when p2m_split_superpage() is recursively called
   instead of using "level-1".
---
Changes in V4:
 - s/number of levels/level numbering in the commit message.
 - s/permissions/attributes.
 - Remove redundant comment in p2m_split_superpage() about page
   splitting.
 - Use P2M_PAGETABLE_ENTRIES as XEN_PT_ENTRIES
   doesn't takeinto  into acount that G stage root page table is
   extended by 2 bits.
 - Use earlier introduced P2M_LEVEL_ORDER().
---
Changes in V3:
 - Move     page_list_add(page, &p2m->pages) inside p2m_alloc_page().
 - Use 'unsigned long' for local vairiable 'i' in p2m_split_superpage().
 - Update the comment above if ( next_level != target ) in p2m_split_superpage().
 - Reverse cycle to iterate through page table levels in p2m_set_entry().
 - Update p2m_split_superpage() with the same changes which are done in the
   patch "P2M: Don't try to free the existing PTE if we can't allocate a new table".
---
Changes in V2:
 - New patch. It was a part of a big patch "xen/riscv: implement p2m mapping
   functionality" which was splitted to smaller.
 - Update the commit above the cycle which creates new page table as
   RISC-V travserse page tables in an opposite to ARM order.
 - RISC-V doesn't require BBM so there is no needed for invalidating
   and TLB flushing before updating PTE.
---
 xen/arch/riscv/include/asm/page.h |   5 ++
 xen/arch/riscv/p2m.c              | 116 +++++++++++++++++++++++++++++-
 2 files changed, 119 insertions(+), 2 deletions(-)

diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
index c6b7acf1b7..4b6baeaaf2 100644
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -190,6 +190,11 @@ static inline bool pte_is_mapping(pte_t p)
     return (p.pte & PTE_VALID) && (p.pte & PTE_ACCESS_MASK);
 }
 
+static inline bool pte_is_superpage(pte_t p, unsigned int level)
+{
+    return (level > 0) && pte_is_mapping(p);
+}
+
 static inline int clean_and_invalidate_dcache_va_range(const void *p,
                                                        unsigned long size)
 {
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 16663650ee..b29c0a220a 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -746,7 +746,88 @@ static void p2m_free_subtree(struct p2m_domain *p2m,
     p2m_free_page(p2m, pg);
 }
 
-/* Insert an entry in the p2m */
+static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
+                                unsigned int level, unsigned int target,
+                                const unsigned int *offsets)
+{
+    struct page_info *page;
+    unsigned long i;
+    pte_t pte, *table;
+    bool rv = true;
+
+    /* Convenience aliases */
+    mfn_t mfn = pte_get_mfn(*entry);
+    unsigned int next_level = level - 1;
+    unsigned int level_order = P2M_LEVEL_ORDER(next_level);
+
+    /*
+     * This should only be called with target != level and the entry is
+     * a superpage.
+     */
+    ASSERT(level > target);
+    ASSERT(pte_is_superpage(*entry, level));
+
+    page = p2m_alloc_page(p2m);
+    if ( !page )
+    {
+        /*
+         * The caller is in charge to free the sub-tree.
+         * As we didn't manage to allocate anything, just tell the
+         * caller there is nothing to free by invalidating the PTE.
+         */
+        memset(entry, 0, sizeof(*entry));
+        return false;
+    }
+
+    table = __map_domain_page(page);
+
+    for ( i = 0; i < P2M_PAGETABLE_ENTRIES(p2m, next_level); i++ )
+    {
+        pte_t *new_entry = table + i;
+
+        /*
+         * Use the content of the superpage entry and override
+         * the necessary fields. So the correct attributes are kept.
+         */
+        pte = *entry;
+        pte_set_mfn(&pte, mfn_add(mfn, i << level_order));
+
+        write_pte(new_entry, pte);
+    }
+
+    /*
+     * Shatter superpage in the page to the level we want to make the
+     * changes.
+     * This is done outside the loop to avoid checking the offset
+     * for every entry to know whether the entry should be shattered.
+     */
+    if ( next_level != target )
+        rv = p2m_split_superpage(p2m, table + offsets[next_level],
+                                 next_level, target, offsets);
+
+    if ( p2m->clean_dcache )
+        clean_dcache_va_range(table, PAGE_SIZE);
+
+    /*
+     * TODO: an inefficiency here: the caller almost certainly wants to map
+     *       the same page again, to update the one entry that caused the
+     *       request to shatter the page.
+     */
+    unmap_domain_page(table);
+
+    /*
+     * Even if we failed, we should (according to the current implemetation
+     * of a way how sub-tree is freed if p2m_split_superpage hasn't been
+     * finished fully) install the newly allocated PTE
+     * entry.
+     * The caller will be in charge to free the sub-tree.
+     */
+    p2m_write_pte(entry, page_to_p2m_table(page), p2m->clean_dcache);
+
+    return rv;
+}
+
+/* Insert an entry in the p2m. */
 static int p2m_set_entry(struct p2m_domain *p2m,
                          gfn_t gfn,
                          unsigned long page_order,
@@ -811,7 +892,38 @@ static int p2m_set_entry(struct p2m_domain *p2m,
      */
     if ( level > target )
     {
-        panic("Shattering isn't implemented\n");
+        /* We need to split the original page. */
+        pte_t split_pte = *entry;
+
+        ASSERT(pte_is_superpage(*entry, level));
+
+        if ( !p2m_split_superpage(p2m, &split_pte, level, target, offsets) )
+        {
+            /* Free the allocated sub-tree */
+            p2m_free_subtree(p2m, split_pte, level);
+
+            rc = -ENOMEM;
+            goto out;
+        }
+
+        p2m_write_pte(entry, split_pte, p2m->clean_dcache);
+
+        p2m->need_flush = true;
+
+        /* Then move to the level we want to make real changes */
+        for ( ; level > target; level-- )
+        {
+            rc = p2m_next_level(p2m, true, level, &table, offsets[level]);
+
+            /*
+             * The entry should be found and either be a table
+             * or a superpage if level 0 is not targeted
+             */
+            ASSERT(rc == P2M_TABLE_NORMAL ||
+                   (rc == P2M_TABLE_SUPER_PAGE && target > 0));
+        }
+
+        entry = table + offsets[level];
     }
 
     /*
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:34:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:34:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170581.1495750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVm3-0005HN-Q9; Mon, 24 Nov 2025 12:34:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170581.1495750; Mon, 24 Nov 2025 12:34: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 1vNVm3-0005EZ-3n; Mon, 24 Nov 2025 12:34:31 +0000
Received: by outflank-mailman (input) for mailman id 1170581;
 Mon, 24 Nov 2025 12: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=Sr25=6A=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vNVlz-0001zv-Rk
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:34:27 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e89166d3-c931-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:34:24 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b7697e8b01aso268226266b.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:34:24 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cf0435sm1285238866b.4.2025.11.24.04.34.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 04:34: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: e89166d3-c931-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987663; x=1764592463; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IXqp4I0XZWh9/KhS0j7ysczQhIFrqLu1XKQnOd0ZyHw=;
        b=A9lqi8CvY/SONcAcC58I69mHOU41xTALl38UVipz7jfQsLlo4+cXcyyUH8PDpmkFvC
         UzXsO0gyupWVwBKUPSdq4QVEMsfBbo1LLpeaV39FMpJ0Q7TqsMH6JtGgCYT7mjYJBVr5
         2/Rti/O0r+M55TGCk5jcuqhVMqujjRYs/YtsOUwsCITUCsc+P/4Xv73TqaCIc/P3gniL
         KdLhcFqHdVg0plFPoROuEz9SxYYoYsny3dxtVXKZJQqGjPfTnRS3FYAukraBRrGXYuz+
         Enw1LgexuNA7h7MUWS+ivA3wnrYhcpdsCaL3gF8kc9T+WWR+DGtcvsGuH0urufuDflpr
         1jOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987663; x=1764592463;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=IXqp4I0XZWh9/KhS0j7ysczQhIFrqLu1XKQnOd0ZyHw=;
        b=Afr56uFvd9AoqQd0/TyRyBNHibKF0JfAQjkJrBDSQfHT1VH1EynSf6o6n42qGRy1iT
         yojZDafS9J6wInt70hSjE7TBWX/U7HCWISG+0y4rXuIIwyJV/4lLV5GYd5vpmifRrZ4p
         gjVgZ6NcMiBj4/VVA7xXuXrfRu63+ewO5jX0nfjLQjG4joR6kTobFt4TS+cPnLmYETpK
         L2N58Pq7g2k+zR051VDQ/8NnzooLlIyQazMAblPWRUYzo8z0GyNHZBRxlTd+bPqIdDUq
         +HJumC+frJ3CcQ8iZq5RQMsnKZ+mscxIOAxH2HxwT3GMQbNLfJHDDLV5NZJYgkHGJTLr
         z2kQ==
X-Gm-Message-State: AOJu0Yz66f6yKkElFvUKFkePqQ2DB80wYdjBWtoHfVn+OzeoMKk/tiGi
	zsh4t/ZW6fDC4KlpWz9Nt7cPJwdCV0tg6IJphBNtVSV+jnLjLV6nNy1Gq7Q21jbg
X-Gm-Gg: ASbGncuLn/omu52dleYZRdBfXfYlD5nd3cNXozqzW9TwDmyByLpaZXISm1ILEm//AV5
	nhBDqee83uMEZVIo65shQ4/ay3y8naWuxvpw+2YOURC3gzpHBDWftUiSbIQ9qMBQ+lWCUSme9Zw
	eklIA/ENiR3UbkLSCUtes/ijikmXd4J+A+2nrk6Op39vOqJpP1lvGZSCL5xR7hfPs66Zs6JpI1v
	XP/uf+43M2wOiJz06vbcIGtqK777PToJlyWnRcICyQ5s5jT0dSErcCnub6YlmZK8CI8lFy1AEuH
	MHeevZNsajuOpRqw4B1tfIAEcfkyEWijOUUkuWOeCJvFrWPoCXBP+I1NrQ36UFuaz1W3Gsgua5R
	zROjn0dBtiAiD4yRy1UPD9R/pamrt92MbrHH2M7Ksl6Trs4fJpmQjPpFfyoRxMliP46Vd6f1XKv
	MbS/eF5YY5mTL8ltr3IQlfBQdQwyBwCf/1iXMwrI2uUp8SjrcP6zrnhcM=
X-Google-Smtp-Source: AGHT+IHXcNKK5ta3WIfAn0m9iuUk3YzGUqiKrj+fQUgGCkq/+Lm8UJiBiX9ehHVX40fWMWJNXGn/NQ==
X-Received: by 2002:a17:907:b17:b0:b76:7e0e:4888 with SMTP id a640c23a62f3a-b767e0e64d2mr778174966b.6.1763987663154;
        Mon, 24 Nov 2025 04:34:23 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 13/19] xen/riscv: Implement p2m_pte_from_mfn() and support PBMT configuration
Date: Mon, 24 Nov 2025 13:33:46 +0100
Message-ID: <bf3b296606e932dcbd29d06b962b7ea8db392e20.1763986955.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <cover.1763986955.git.oleksii.kurochko@gmail.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=all
Content-Transfer-Encoding: 8bit

This patch adds the initial logic for constructing PTEs from MFNs in the RISC-V
p2m subsystem. It includes:
- Implementation of p2m_pte_from_mfn(): Generates a valid PTE using the
  given MFN, p2m_type_t, including permission encoding and PBMT attribute
  setup.
- New helper p2m_set_permission(): Encodes access rights (r, w, x) into the
  PTE based on both p2m type and access permissions.
- p2m_set_type(): Stores the p2m type in PTE's bits. The storage of types,
  which don't fit PTE bits, will be implemented separately later.
- Add detection of Svade extension to properly handle a possible page-fault
  if A and D bits aren't set.

PBMT type encoding support:
- Introduces an enum pbmt_type_t to represent the PBMT field values.
- Maps types like p2m_mmio_direct_dev to p2m_mmio_direct_io, others default
  to pbmt_pma.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V6:
 - Drop 's' in word "nesssary" in the comment.
---
Changes in V5:
 - Moved setting of p2m_mmio_direct_io inside (!is_table) case in p2m_pte_from_mfn().
 - Extend comment about the place of setting A/D bits with explanation
   why it is done in this way for now.
---
Changes in V4:
 - p2m_set_permission() updates:
   - Update permissions for p2m_ram_rw case, make it also executable.
   - Add pernissions setting for p2m_map_foreign_* types.
   - Drop setting peromissions for p2m_ext_storage.
   - Only turn off PTE_VALID bit for p2m_invalid, don't touch other bits.
 - p2m_pte_from_mfn() updates:
   - Update ASSERT(), add a check that mfn isn't INVALID_MFN (1)
     explicitly to avoid the case when PADDR_MASK isn't narrow enough to
     catch the case (1).
   - Drop unnessary check around call of p2m_set_type() as this check
     is already included inside p2m_set_type().
 - Introduce new p2m type p2m_first_external to detect that passed type
   is stored in external storage.
 - Add handling of PTE's A and D bits in pm2_set_permission. Also, set
   PTE_USER bit. For this cpufeatures.{h and c} were updated to be able
   to detect availability of Svade extension.
 - Drop grant table related code as it isn't going to be used at the moment.
---
Changes in V3:
 - s/p2m_entry_from_mfn/p2m_pte_from_mfn.
 - s/pbmt_type_t/pbmt_type.
 - s/pbmt_max/pbmt_count.
 - s/p2m_type_radix_set/p2m_set_type.
 - Rework p2m_set_type() to handle only types which are fited into PTEs bits.
   Other types will be covered separately.
   Update arguments of p2m_set_type(): there is no any reason for p2m anymore.
 - p2m_set_permissions() updates:
   - Update the code in p2m_set_permission() for cases p2m_raw_rw and
     p2m_mmio_direct_io to set proper type permissions.
   - Add cases for p2m_grant_map_rw and p2m_grant_map_ro.
   - Use ASSERT_UNEACHABLE() instead of BUG() in switch cases of
     p2m_set_permissions.
   - Add blank lines non-fall-through case blocks in switch cases.
 - Set MFN before permissions are set in p2m_pte_from_mfn().
 - Update prototype of p2m_entry_from_mfn().
---
Changes in V2:
 - New patch. It was a part of a big patch "xen/riscv: implement p2m mapping
   functionality" which was splitted to smaller.
---
 xen/arch/riscv/cpufeature.c             |   1 +
 xen/arch/riscv/include/asm/cpufeature.h |   1 +
 xen/arch/riscv/include/asm/page.h       |   8 ++
 xen/arch/riscv/p2m.c                    | 112 +++++++++++++++++++++++-
 4 files changed, 118 insertions(+), 4 deletions(-)

diff --git a/xen/arch/riscv/cpufeature.c b/xen/arch/riscv/cpufeature.c
index b846a106a3..02b68aeaa4 100644
--- a/xen/arch/riscv/cpufeature.c
+++ b/xen/arch/riscv/cpufeature.c
@@ -138,6 +138,7 @@ const struct riscv_isa_ext_data __initconst riscv_isa_ext[] = {
     RISCV_ISA_EXT_DATA(zbs),
     RISCV_ISA_EXT_DATA(smaia),
     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 768b84b769..5f756c76db 100644
--- a/xen/arch/riscv/include/asm/cpufeature.h
+++ b/xen/arch/riscv/include/asm/cpufeature.h
@@ -37,6 +37,7 @@ enum riscv_isa_ext_id {
     RISCV_ISA_EXT_zbs,
     RISCV_ISA_EXT_smaia,
     RISCV_ISA_EXT_ssaia,
+    RISCV_ISA_EXT_svade,
     RISCV_ISA_EXT_svpbmt,
     RISCV_ISA_EXT_MAX
 };
diff --git a/xen/arch/riscv/include/asm/page.h b/xen/arch/riscv/include/asm/page.h
index 66cb192316..c6b7acf1b7 100644
--- a/xen/arch/riscv/include/asm/page.h
+++ b/xen/arch/riscv/include/asm/page.h
@@ -73,6 +73,14 @@
 #define PTE_SMALL       BIT(10, UL)
 #define PTE_POPULATE    BIT(11, UL)
 
+enum pbmt_type {
+    pbmt_pma,
+    pbmt_nc,
+    pbmt_io,
+    pbmt_rsvd,
+    pbmt_count,
+};
+
 #define PTE_ACCESS_MASK (PTE_READABLE | PTE_WRITABLE | PTE_EXECUTABLE)
 
 #define PTE_PBMT_MASK   (PTE_PBMT_NOCACHE | PTE_PBMT_IO)
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index f8af73c9d8..8761204720 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -11,6 +11,7 @@
 #include <xen/sections.h>
 #include <xen/xvmalloc.h>
 
+#include <asm/cpufeature.h>
 #include <asm/csr.h>
 #include <asm/flushtlb.h>
 #include <asm/p2m.h>
@@ -360,6 +361,18 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
     return rc;
 }
 
+static int p2m_set_type(pte_t *pte, p2m_type_t t)
+{
+    int rc = 0;
+
+    if ( t > p2m_first_external )
+        panic("unimplemeted\n");
+    else
+        pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
+
+    return rc;
+}
+
 static p2m_type_t p2m_get_type(const pte_t pte)
 {
     p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
@@ -390,11 +403,102 @@ static inline void p2m_clean_pte(pte_t *p, bool clean_cache)
     p2m_write_pte(p, pte, clean_cache);
 }
 
-static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t)
+static void p2m_set_permission(pte_t *e, p2m_type_t t)
 {
-    panic("%s: hasn't been implemented yet\n", __func__);
+    e->pte &= ~PTE_ACCESS_MASK;
+
+    e->pte |= PTE_USER;
+
+    /*
+     * Two schemes to manage the A and D bits are defined:
+     *   â€¢ The Svade extension: when a virtual page is accessed and the A bit
+     *     is clear, or is written and the D bit is clear, a page-fault
+     *     exception is raised.
+     *   â€¢ When the Svade extension is not implemented, the following scheme
+     *     applies.
+     *     When a virtual page is accessed and the A bit is clear, the PTE is
+     *     updated to set the A bit. When the virtual page is written and the
+     *     D bit is clear, the PTE is updated to set the D bit. When G-stage
+     *     address translation is in use and is not Bare, the G-stage virtual
+     *     pages may be accessed or written by implicit accesses to VS-level
+     *     memory management data structures, such as page tables.
+     * Thereby to avoid a page-fault in case of Svade is available, it is
+     * necessary to set A and D bits.
+     *
+     * TODO: For now, itâ€™s fine to simply set the A/D bits, since OpenSBI
+     *       delegates page faults to a lower privilege mode and so OpenSBI
+     *       isn't expect to handle page-faults occured in lower modes.
+     *       By setting the A/D bits here, page faults that would otherwise
+     *       be generated due to unset A/D bits will not occur in Xen.
+     *
+     *       Currently, Xen on RISC-V does not make use of the information
+     *       that could be obtained from handling such page faults, which
+     *       could otherwise be useful for several use cases such as demand
+     *       paging, cache-flushing optimizations, memory access tracking,etc.
+     *
+     *       To support the more general case and the optimizations mentioned
+     *       above, it would be better to stop setting the A/D bits here and
+     *       instead handle page faults that occur due to unset A/D bits.
+     */
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_svade) )
+        e->pte |= PTE_ACCESSED | PTE_DIRTY;
+
+    switch ( t )
+    {
+    case p2m_map_foreign_rw:
+    case p2m_mmio_direct_io:
+        e->pte |= PTE_READABLE | PTE_WRITABLE;
+        break;
+
+    case p2m_ram_rw:
+        e->pte |= PTE_ACCESS_MASK;
+        break;
+
+    case p2m_invalid:
+        e->pte &= ~PTE_VALID;
+        break;
+
+    case p2m_map_foreign_ro:
+        e->pte |= PTE_READABLE;
+        break;
+
+    default:
+        ASSERT_UNREACHABLE();
+        break;
+    }
+}
+
+static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
+{
+    pte_t e = (pte_t) { PTE_VALID };
+
+    pte_set_mfn(&e, mfn);
+
+    ASSERT(!(mfn_to_maddr(mfn) & ~PADDR_MASK) || mfn_eq(mfn, INVALID_MFN));
+
+    if ( !is_table )
+    {
+        switch ( t )
+        {
+        case p2m_mmio_direct_io:
+            e.pte |= PTE_PBMT_IO;
+            break;
+
+        default:
+            break;
+        }
+
+        p2m_set_permission(&e, t);
+        p2m_set_type(&e, t);
+    }
+    else
+        /*
+         * According to the spec and table "Encoding of PTE R/W/X fields":
+         *   X=W=R=0 -> Pointer to next level of page table.
+         */
+        e.pte &= ~PTE_ACCESS_MASK;
 
-    return (pte_t) { .pte = 0 };
+    return e;
 }
 
 #define P2M_TABLE_MAP_NONE 0
@@ -649,7 +753,7 @@ static int p2m_set_entry(struct p2m_domain *p2m,
         p2m_clean_pte(entry, p2m->clean_dcache);
     else
     {
-        pte_t pte = p2m_pte_from_mfn(mfn, t);
+        pte_t pte = p2m_pte_from_mfn(mfn, t, false);
 
         p2m_write_pte(entry, pte, p2m->clean_dcache);
 
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:40:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:40:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170681.1495775 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVry-0002Wy-NT; Mon, 24 Nov 2025 12:40:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170681.1495775; Mon, 24 Nov 2025 12:40: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 1vNVry-0002Wr-Jy; Mon, 24 Nov 2025 12:40:38 +0000
Received: by outflank-mailman (input) for mailman id 1170681;
 Mon, 24 Nov 2025 12:40: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=h9jE=6A=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vNVrw-0002Wl-Ov
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:40:36 +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 c590c335-c932-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:40:35 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB5423.namprd03.prod.outlook.com (2603:10b6:a03:28c::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.17; Mon, 24 Nov
 2025 12:40:32 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.016; Mon, 24 Nov 2025
 12:40: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: c590c335-c932-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NiInqFaHW7OYgbTDZ6+vJkTVvytFT9TxrPniI4AOCYoPEclScVQUC2xOTSfhxHAyLJ8FBFBP7cq6rx4DkBooZlBwOuq1L82hVPmfuH/N8SrKtuwYQXWMu+E3gzWvb8da5o8BqRBd2fqYIBwvbrmqzOgnDNmgj1ZFqOhWUqzK1hXIZ1G6tTUY35murDFgDU85Dpguh9SiVq6TEbR5MnsIKswHl3grSx8OFErbBddWfe/Lp2HaBY0UVnWz8vrcSNwbsQ2fUeTmLbLqnq0cUouwVuIsz6jx3xixyQChrEUBdDuEYAZKYg0cg5yLlFrbHzq9OwptmGVS9gCT4+T+KHamRg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5vclgoVwekH8F6mA/m96YPNYPYJzrndHAlHTFDeAf7g=;
 b=RYJEqR7lYpmRqMzUPm4GNGroAeW8x27NQU/FJjf011RBVCj0wzdDi5lo84j3pAwq1prYg/tNWTdKJLcVoj2pQ4ORW95nYwqxa7PrhDW+KH3xzpoJS9QF/Yd1Boi4lkfQwPTnEMC6lyYbJDVycua8aBEn+bTsdpwACy6evEW60jRU4d1a+8qM9YT976i6fz5Y45itWjnrUybbqfrUz2oqBOaZUH5qrsTTeJGfNz/XgeAWeukTqoO7u91O3yM+m5hn6W07JtiSFq55ksmpY4q6P4bjDc2Osf+rdoRk5Y5EVSyCezw6W9nZqBz9qvkbb8Q6TWjnZl14egVRaRSO/ZgKhQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5vclgoVwekH8F6mA/m96YPNYPYJzrndHAlHTFDeAf7g=;
 b=cDdsT8GNnB3pNoIOkaybJDEwxe2iIJ60XMLzOMWZZJ2RD+iEYQs8kgfPrEZOG4SMbkkYxYzmmvLajp0hrtrHnbKuEc0wlqe/eIvjAIooM4IkEZY8KcHLUYusoSvU9OPoHe4zjOr3/5nJ+r4JUw8jD6uHqGKiSvwbL/MRteEnt+M=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <4876be02-9978-49e2-8a48-d7ca10e06843@citrix.com>
Date: Mon, 24 Nov 2025 12:40:29 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] XEN: enable MC/DC coverage for Clang
To: Saman Dehghan <samaan.dehghan@gmail.com>
Cc: xen-devel@lists.xenproject.org, Anthony PERARD
 <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
 Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <3bb418ae6a36a9ac89c697a417fa0745fa9ac702.1763949990.git.samaan.dehghan@gmail.com>
 <9c76a959-51c0-4eb7-9d05-ba4441318faa@citrix.com>
 <CAHFNDNikjXNHCj2RXMoZPckqaQAy2u-xw-QyCO7nXT3pttp6Hg@mail.gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <CAHFNDNikjXNHCj2RXMoZPckqaQAy2u-xw-QyCO7nXT3pttp6Hg@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0291.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a5::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_|SJ0PR03MB5423:EE_
X-MS-Office365-Filtering-Correlation-Id: 2ffc7af4-73b4-44e1-233d-08de2b56a827
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?QmQwK0c4Tmwrdi9mR3ZueEpvWU8xTjVmV0R0bFdnOE5ZWEtia1pwdUlHaWxP?=
 =?utf-8?B?cXk1Z0dJQmNKYUFpaE1sT1NjTmE3Q2MvYWhsMW1haXNkSjgzazdtbW1oRmhO?=
 =?utf-8?B?aGdla1YwOUpMSy9DdjcwODNlVEhiMzJVeXpZSWFVeVIwSnZ2U2Z0Rko4Nk5z?=
 =?utf-8?B?TDZLaGdOMUYzZzNTdnllbjA1YUVCZjZGRHM3YzN5TzRXa2RUb0JkMTlwZ0NN?=
 =?utf-8?B?K3FUMFhDQ0ZrM1lmcnVwUXBZdlErL3F2dVZWbUFOV2hLMjlyb2REeng3WGo0?=
 =?utf-8?B?ODhnTkRhWDFXdG4vTUU3bkk2ODNDMEE2YitSS1ZwOGNhckVlRk9SVmNsdHY3?=
 =?utf-8?B?cDV6ZkhrdTRGeG5kUnQ4MHlDZEdJYk9yTVJ4cnM5d2ZCdnVWbTZDblc0K28v?=
 =?utf-8?B?cmxnY051QUNkOS9scUx3SmhuSVRCWmpsZ2VHWUwvWTJmeisrU3ZqODREWlR3?=
 =?utf-8?B?RUYvVWhob3JRY2RBVS96cmx3ZjdiL281cWZWd1c5RFpKblVjZWQxUXB4eWw1?=
 =?utf-8?B?eEp0dUg5bGR2aXBYU0dlaFRlK0tKeUc1SkljNXhsY2xkZzdyRGF1VTA5bW0x?=
 =?utf-8?B?WmRraFpieFFSdEZrTXBjZFpDQVRBdzB0ODFKVDhmNUh3Z2liZ1BLcWlXakNV?=
 =?utf-8?B?WmNrb0dSRCtrTDJIZEpQbDFBS1pjMjZlQ084Sk54dWhOU1ZWejhmM2t4SUIy?=
 =?utf-8?B?bUF5UjZHY25YYkQ3RUowZUZJY2o5c0hUQy9HSkthMVlndU1MbXY0M0g2eGFn?=
 =?utf-8?B?MTdNelh1aFZodTVBUmdiWUlTVko2VXRUOHhFT1hFOEg5TGZOMkozV1FIWUJF?=
 =?utf-8?B?Nk90TjRTWCtiK1RIckZRVUtxdVgrS092bDdmc2hQZFcxcXByTXFFVjVqbHE3?=
 =?utf-8?B?bTlyeDMwbkhKTlhnWEcxZFJBTGhNdkNFYUp0UCsvRWVzRUgxbHdVNlREVlBV?=
 =?utf-8?B?V2ZrS2tBY2NJMmIwdTlicnpMS3g1N1R5YlpydmxZbERMaFJtNXBOdDdNelBZ?=
 =?utf-8?B?Y2FPUjlxaDlvYkpidTkvak43QmhnME1heUhySzBEU2dJYnJhZjAxaHpsUEt5?=
 =?utf-8?B?N0I5dEtwNy9HY3ZvVS9meDJUK1lRK3RjTWZSb1FHVFA0L1lkdWtYREhmNURp?=
 =?utf-8?B?bE1xbEFWTHliaExGR1NNR3REYkZoN1hFaUtvZ21iUU1UYjRibmdRNFJMRkk1?=
 =?utf-8?B?a014aFM0QkViOUhJL2dUc3cvYnNnU3ZmSEF6ZTN3NUdWdnM4OHdWYWhxUzZ6?=
 =?utf-8?B?UVpKckZyQ1czd0FHTjM5dXRlNEFHSnhiWHQ1UWJQK2pqQ1dIOHhhaGM4OWZE?=
 =?utf-8?B?dE51Tks0eDliZU1kQU1tZVhESVpCRk1WUUkwQzJFdkRZbHl5NmpGZjE5SWZC?=
 =?utf-8?B?ZTQ4V1JmQUI2NDNqSmxDT29Panp1L2s5b240UFhnNHJGQW8vaFdhd3BZM3NY?=
 =?utf-8?B?c3J5bGxGZGJHUEVuNm5ZOVlTaGtOT0Q1SDAvYS94dUpYd1pYQlN5UGFQa1hn?=
 =?utf-8?B?WGowMzJEUW5lVkhCSzlSc0pEK1pxQ0hOMHUzckd3T0IvZ0h5dzk1YjdxN2tr?=
 =?utf-8?B?WGs5a1VwY09pZGtFa3hIQ1FNVkVLUStOZUl4Y0JiTng0aWpCQlFuRk5CNnpo?=
 =?utf-8?B?WGliZmF5WEZXdVBiODYwKy9sbmJEbTcrSzNrb3lyRjdTd2NwNHo1V1VrdUpi?=
 =?utf-8?B?aGNmTFlHcGZlOUtjRmVPa1EyeDMxWi80Q2xtc1hCY3N6N3htUjRjNUIvZXpw?=
 =?utf-8?B?TnRBUS9kNjIyUUY4RkY0ZVRoWUd1TDZJT05abnZ4VTdqK09SWTJyVkFSTklr?=
 =?utf-8?B?dndmZEtYWWM3Z3oxQ1R4ZE5vVTV6SWpuS2FuVWQ4WHgyTld0WXgxaEtiQ2lZ?=
 =?utf-8?B?MEp0cVNORG9iN0lnMkNsM1JPTHkybktJMUJ0Ym1nU3FrbjRiSFFvdEpyQVFS?=
 =?utf-8?Q?ZdlrE3fX4rFnxuOslyS1+ZBDUIBE/coy?=
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?UG5GelJkYWY1SUtpaHNBZUZXenphelB6citaZVdQb2p5WmEzTGZSMm5TZVdi?=
 =?utf-8?B?T0oySVJUMXRYb0l4eGEyV2lLd2pIUkxuTWpvOVRpd25HdWpOeEVkZTdKYXlQ?=
 =?utf-8?B?QUV4Q3hlOXk2NzNhUmpONWxidnBMaUc2VEtSeTM0TUhoa3NJRGh0cjkyd1FW?=
 =?utf-8?B?OHRtaVNOajliYVFabUd1d0JDdFB2M2hGMlh6YkdQaHpXVEJCRmtUS3Zsc0o2?=
 =?utf-8?B?YXBPeG1qN1VxN09LVFgvaE5WWTFqaGN0RjdaM0VQU0dFWnNYWTN6Ti9XVUJn?=
 =?utf-8?B?WFRkL3EzdkswRTlac3lTMVhkWjJiN0I5ZjM0U0RnTjFST2pvTEh1RUh6dGwy?=
 =?utf-8?B?bDVXRXBpWXE2WUhiWEtnVnNhSS9iT1hwaVBydnpGbEFmbjBqRGFoTlhlSm82?=
 =?utf-8?B?TGNQRFpkcUFwUyttVFNLYlVUbWY1ZE9MRVVITGFzVytrYWlQbE11U3VYdW1y?=
 =?utf-8?B?anlxNGRpenJYdWRJT0daMWYwTUMyN3IzZUVCUjJrM1QvYndxYllkeGZQRVBS?=
 =?utf-8?B?b1VyUWRQU3JRcWJOQzBsbGVBOExSMGRVdVdRSXI3UmRpOUtHSnBSM1FtbTN4?=
 =?utf-8?B?OW00M20vdDljUmV0ZmpHZFhxcVRsWkFSS0NRNUZ3REtLZ2lVdDJLYnZoVXZR?=
 =?utf-8?B?R0w1REU2Rjg3TGVXVUJrMDlLNGU5ZHN1cmk1cDBLZW9IVUJuZk9hQ3VXeFFH?=
 =?utf-8?B?MkhkdEt0MG1HaFN3Z0xEUGZRYWw5NHFiMldzL2w4OHgxWkJpOWYzR0crWllO?=
 =?utf-8?B?ekZER1R0aDQ4NDV0NUx1M0lFYmpNVWZqOXpNRmZ0c0pzRG5qd3dqcDBhV0NG?=
 =?utf-8?B?K2ErQnZQU1BuZVpDcVV5YUw1SEdFVGl0bGhqSDF2b3lEa2kzdEIreTNCdlpP?=
 =?utf-8?B?SHJzQVJTakRUTE1Vd0RWUFNTZndNNzdOT09MSjlYVG1aYXlDOHFrdEN4T3l0?=
 =?utf-8?B?Z3MvN0F6U0RvcWRRUWVYa0k4SHcyb0NvTktpM3NEUHZYNTA2clhoRXU5SFNU?=
 =?utf-8?B?M3lZcC8xdkFuczBRQWFoQklJSkc2a2QvUUlwQWFuR2hIY2U0V2trQWJSNVZo?=
 =?utf-8?B?MTRUcnlZL1NXRlhBY2ZOUGhBemV2N3VEbmlNWmFDWFdyTk4xTVc5TlFPL1hX?=
 =?utf-8?B?U1lETytUdjBIKzVzZ3gxOGJLeFE2YnVaa0ViTEtvOUR6RE8xS2RFS1FpT0Np?=
 =?utf-8?B?NE1lR25QcUwvTWRuNTZLUUh4d21iVXh1QUJ3SkJJeFhXY2wzV25kandHUyta?=
 =?utf-8?B?SzN4RnFZQ1NkYjRKblFFYXhjaG0xdlhCQVEybVhBSzdZQ0N3V2J4L1VhSW9M?=
 =?utf-8?B?ZnVydWg4N0xOSGdrbVN6U3lRZHBwSFlWSitUS2R5RmQ1emtzbUJOSnNLdnVQ?=
 =?utf-8?B?UjRFZUZKcnF0WHBFU1J2UE1sMXcvdVlURG82a3NUa2kzMVNDVGwrSUNQeVJl?=
 =?utf-8?B?SG5VL3ptZDhPb0RTTExRWFAwMzBYNzZDbjh6S1ZjWFhSVFl3cU9Gay82dG5X?=
 =?utf-8?B?NTNNczFQdjV4S0kzL0NsNEdYYTM0TEdackN5eGRQK3MwekV3Y2tkQmRoNXM2?=
 =?utf-8?B?YU5OYlRIUjVydFRLZTBWQms2TVNxdndqMnJGOFdmWGJmQVVNMjlDKzMyamt1?=
 =?utf-8?B?RmxaUG4zMXAvSDgzRDJ0RkVyaUNQWlY0U1V6WXo5dHRrOU1aek5VNXRWeTlz?=
 =?utf-8?B?SnNnNHBMUm90bnhOTUhNR2ZUSFMydzJtVTNBWkhiQUhtaWkyYlBGYXRJM1Ri?=
 =?utf-8?B?TElmWnBqSVlnUSswL0xZM3dZM3V1N2c0YnU0TVBRVVZTT0drakw1akJseHBq?=
 =?utf-8?B?Z2RCOEFvK1VHTzZXTm02SXU4MlU1MThSNTFnMGJTM2pTZUtvM1NiOHZ1T0kv?=
 =?utf-8?B?YVdrSHdwL0lkYWJoWFBMMzJySG5IYkRxZWhncWMrVE1HZXlHZUkrMGhVY1VH?=
 =?utf-8?B?LzdaN05ZTVdJRnBYL3VFRHRXVUQzRHovSk4vaWJwYnQwOXdpRWV6Y0FCaDZS?=
 =?utf-8?B?ZkhyR2wrcHh6ZE1MMGdnQ00zaWNCK05GZ1NaVU5kWWNJd0pwQUJFZWR2Uyti?=
 =?utf-8?B?alNXekt0KzJwZzBXUk83WjM5N3hrV3JhbGFsMk5sblloZll5ZGduRGFacjFy?=
 =?utf-8?B?aS9aWjg3U3pndm9mYmd3UkU2dEU2dHBOL2IvL3RvOTdIbXl0M3RGZW00WWhL?=
 =?utf-8?B?SEE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2ffc7af4-73b4-44e1-233d-08de2b56a827
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2025 12:40:32.3531
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: VgJf3r9+hF0T/RpyMDmm2kCBd6giy33L2A/IvaDwmP5FRmSBrvylmfeYKwRgXjujQnq6N+TMtD/T+/yLYjLJscpfz/Y4ra9Jsu5PRQ6tV2U=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5423

On 24/11/2025 12:31 pm, Saman Dehghan wrote:
> On Mon, Nov 24, 2025 at 5:15â€¯AM Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>> On 24/11/2025 2:18 am, Saman Dehghan wrote:
>>> @@ -127,16 +131,25 @@ extern uint64_t __stop___llvm_prf_cnts[];
>>>  #define END_NAMES       ((const void *)__stop___llvm_prf_names)
>>>  #define START_COUNTERS  ((void *)__start___llvm_prf_cnts)
>>>  #define END_COUNTERS    ((void *)__stop___llvm_prf_cnts)
>>> +#define START_BITMAP    ((void *)__start___llvm_prf_bits)
>>> +#define END_BITMAP      ((void *)__stop___llvm_prf_bits)
>>>
>>>  static void cf_check reset_counters(void)
>>>  {
>>>      memset(START_COUNTERS, 0, END_COUNTERS - START_COUNTERS);
>>> +#ifdef CONFIG_CONDITION_COVERAGE
>>> +    memset(START_BITMAP, 0, END_BITMAP - START_BITMAP);
>>> +#endif
>> ... this:
>>
>>     if ( IS_ENABLED(CONFIG_CONDITION_COVERAGE) )
>>         memset(START_BITMAP, 0, END_BITMAP - START_BITMAP);
>>
>>>  }
> Thanks Andrew.
>
> IS_ENABLED(CONFIG_CONDITION_COVERAGE) is not the same as #ifdef
> CONFIG_CONDITION_COVERAGE.
> When the option is completely undefined, IS_ENABLED() returns 1 (enabled).
> So even with no CONFIG_CONDITION_COVERAGE defined, the code takes the
> "enabled" path, which is not what we want here.

What makes you think this?Â  (No - that's not how IS_ENABLED() works.)

IS_ENABLED() exists for the purpose given here, to turn preprocessor
conditionals into something visible to the compiler.Â  Notably it allows
for syntax checking even in the disabled code, which is why it's
preferred wherever possible.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:41:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:41:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170692.1495784 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVsc-00033i-2v; Mon, 24 Nov 2025 12:41:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170692.1495784; Mon, 24 Nov 2025 12:41:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVsb-00033b-W8; Mon, 24 Nov 2025 12:41:17 +0000
Received: by outflank-mailman (input) for mailman id 1170692;
 Mon, 24 Nov 2025 12:41:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNVsb-0002Wl-9o
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:41:17 +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 d9937ce4-c932-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:41:08 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4779cb0a33fso41261445e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:41: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
 ffacd0b85a97d-42cb7f2e5b6sm27840690f8f.1.2025.11.24.04.41.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04:41: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: d9937ce4-c932-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763988068; x=1764592868; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kuBpZwz7Br0/EAp5eNNMNJlDAnTYJSU/ZoPFhNC1Isw=;
        b=LhIHCUyWHNBeVom1UJqQDK4VYDSoJvTQHVfOC2DI2nDh4ovXW95w1ojrp0uc5uYcJQ
         Ut86vT3qLnX4/Nk1IkuCIDUiAYY6ubmTWXzXs0qc6w5owEX4LujlPAanOAoae6MxvMKt
         AbW8jIhpZHbn6hHSiFlIWU7wCD0nXjVAvI59NXXU+0I6xJLXEFQhsluRCmrKn+02m/uE
         yBZE77J7PYcOjkyP0XeOeHYI11SAy7+e7oivi8xMq+n5teCJ96uydl3ABCuWfI+DHmNv
         lohVDvZ8I44Vr04tQyU9UDHJ5j4TeLdvaIjVCaN0K2K6VHGZEMLjQSrjgMMXLmMYMU87
         GrSw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763988068; x=1764592868;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kuBpZwz7Br0/EAp5eNNMNJlDAnTYJSU/ZoPFhNC1Isw=;
        b=TJHc75FzQbKCf1wvwYI54HG3MOAXep/5xbx/5C1UCdFobRYCHz8+msLt/bRkSGq482
         SS76DQUhogQGTFUI7fyKIUPU7oNfmmbnJQvaRMGHXk7Eort5j1Abn3vLa27qqfpbo0jn
         +Y3ENz44KLjRwvjExYstPL0XplP7DL0dR6kNRwuYFSTDm0H4QcRSUQUEEX8R8VZxJxVG
         nkFQV9l5VgloFCtOUmLkQgXj7bUQYOT+eUYcEao3lU0bnPShAfyjQw+VDH7AH/GLTvLu
         9JxXJ9GE1dUdfRgN6//qfAlIZVLKdAveBhSCSA2Irdgr5lzPrVJqzXqMQUtcKy5zUntx
         SyUg==
X-Gm-Message-State: AOJu0YzcRXIpMRqTRpyYkYV5AnADRFVbRr+ODTF7qsuPkL65WxqEi9wW
	efPDmwsEA/EORp7AIQcKe5mHrw4QaondGlQd19zRzeGAmWrg/zB9AN6F3b6OSk8dug==
X-Gm-Gg: ASbGncuik+TbKT2tSES0i6FziIUx7IO8/Ho9FsRl+szg8JvbN8E3pWoivYzNfZGJG1E
	cGwNPGo3chZM4wUPdMIwSQJ/eJaUs/XcVIrhVCzS+/ncrOS8z+0Z+BLqpsniCSAaO4RcqY3KXlQ
	/raw3RCsMzdBG1Th9F1jYheuviyLlRiii/zvEaWvVTKIBnwl5okS0aTCgX988gJt13nTJqq4ruK
	SdqJZIdpdXMV51aEbeVk2PTZkWewD5IRvDwc1AZqzTum0OZcIOCmmTNT4NCuMIPBkiYVNaM1Vvc
	5aAApVWcD8EQN13C9siSiWbptd1UClGwSqnAYbSnMFFC0q7Htxd+spwKEl16EMOpfjwt85FsR/O
	dtMukQJW7furAJ6VaLIuLbvkyEdmkPsrMJ4P0r7GuYro+sLNffyflrpau6lPv0joWCkSfAPwgae
	Uj8/RdZDRN9xk4gc11ltUwcJ4Xac7a8eZ8LWUql6QAO2NwZf//QW62/wNjBa/OaboeAMomYmz+9
	rY=
X-Google-Smtp-Source: AGHT+IGiwunqRJBAqSkZotFoHAU1FpLNkY5i1ZejKJsH1W4Jri5OwJcLRXX8/52AtgyiGGnSfOFN0w==
X-Received: by 2002:a05:600c:3553:b0:477:63b5:7148 with SMTP id 5b1f17b1804b1-477c0174840mr109632385e9.6.1763988067830;
        Mon, 24 Nov 2025 04:41:07 -0800 (PST)
Message-ID: <fbec7d87-126d-4a0f-bce3-dde76d20433b@suse.com>
Date: Mon, 24 Nov 2025 13:41:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] XEN: enable MC/DC coverage for Clang
To: Saman Dehghan <samaan.dehghan@gmail.com>
Cc: xen-devel@lists.xenproject.org, Anthony PERARD
 <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <3bb418ae6a36a9ac89c697a417fa0745fa9ac702.1763949990.git.samaan.dehghan@gmail.com>
 <9c76a959-51c0-4eb7-9d05-ba4441318faa@citrix.com>
 <CAHFNDNikjXNHCj2RXMoZPckqaQAy2u-xw-QyCO7nXT3pttp6Hg@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAHFNDNikjXNHCj2RXMoZPckqaQAy2u-xw-QyCO7nXT3pttp6Hg@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.11.2025 13:31, Saman Dehghan wrote:
> On Mon, Nov 24, 2025 at 5:15â€¯AM Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>> On 24/11/2025 2:18 am, Saman Dehghan wrote:
>>> @@ -127,16 +131,25 @@ extern uint64_t __stop___llvm_prf_cnts[];
>>>  #define END_NAMES       ((const void *)__stop___llvm_prf_names)
>>>  #define START_COUNTERS  ((void *)__start___llvm_prf_cnts)
>>>  #define END_COUNTERS    ((void *)__stop___llvm_prf_cnts)
>>> +#define START_BITMAP    ((void *)__start___llvm_prf_bits)
>>> +#define END_BITMAP      ((void *)__stop___llvm_prf_bits)
>>>
>>>  static void cf_check reset_counters(void)
>>>  {
>>>      memset(START_COUNTERS, 0, END_COUNTERS - START_COUNTERS);
>>> +#ifdef CONFIG_CONDITION_COVERAGE
>>> +    memset(START_BITMAP, 0, END_BITMAP - START_BITMAP);
>>> +#endif
>>
>> ... this:
>>
>>     if ( IS_ENABLED(CONFIG_CONDITION_COVERAGE) )
>>         memset(START_BITMAP, 0, END_BITMAP - START_BITMAP);
>>
>>>  }
> 
> Thanks Andrew.
> 
> IS_ENABLED(CONFIG_CONDITION_COVERAGE) is not the same as #ifdef
> CONFIG_CONDITION_COVERAGE.
> When the option is completely undefined, IS_ENABLED() returns 1 (enabled).

See our many other uses of IS_ENABLED(). If what you say was true, we'd have
breakage for every one of those uses.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:43:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:43:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170731.1495795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVud-0004FY-Gc; Mon, 24 Nov 2025 12:43:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170731.1495795; Mon, 24 Nov 2025 12:43:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVud-0004FR-Cx; Mon, 24 Nov 2025 12:43:23 +0000
Received: by outflank-mailman (input) for mailman id 1170731;
 Mon, 24 Nov 2025 12:43: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=Sr25=6A=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vNVm1-0001zv-SB
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:34:29 +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 ea40365d-c931-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:34:27 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b739ef3f739so225758566b.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:34:26 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cf0435sm1285238866b.4.2025.11.24.04.34.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 04:34: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: ea40365d-c931-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987666; x=1764592466; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3RDJV1JllPajR6yFaGO7a7j1xOEhUP7aY3PWH11n40w=;
        b=Pfdtbl+GqYP78/JzEyrfXNjoXO2FCupIgyMDAINXnv790OEPAFyE7MicQ9U+GxkkG5
         HxeI4gHev5hH9K5cvGD4XOnwZPpbz/wdPgdgF+Wc37JfxbY6KrdqlnkdWZ1qIWA6r6HZ
         4p+cQSAZl2RPbTWScDNI4UAk/QXTZJ5m3px7C4hWstoFwrNP5sOxtiQCJYWCmj8HcsTw
         N1OMcJ2w8229dxsNPYAFG5Tk/uz7nn4TQBxsY3IEE3UIECGhTP5LEu8+jL4POipXRfJp
         JEAB5CaxpGH6IGAF+2NAk/Ch+yMytbiTB9Ic/e6hMN8tPUfq2YEyiu2d8GSz52PjhliJ
         7nzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987666; x=1764592466;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=3RDJV1JllPajR6yFaGO7a7j1xOEhUP7aY3PWH11n40w=;
        b=S+C7SFUNZ8GajUkPpezkpaYVHAy1qly18Q3yaOgdp0KX8VKqSh2OWHGRmSQHzy437l
         uTu9hdZcB/6U2m6PtITtL3N9W8/fy2NuLu94o5i5rBsGA1+qZug/X3ZJFXmAjQkwOZN/
         JmZMyIHumVVOmEHyA7qlWV93FkHtUmUMflyUR2ihZsoxJHLx8G1LVfqMZSpeuA4TTw6n
         q2nM2Os/P9ScAk32vXoWpSH/jF58zMzoR8nMEri47vy9K4xpED1qK3RxjN2n7AWzr8OO
         o9X95tv2CLS4FpzDnrMwQL0LVD38o9ll0j+i+Rp3WnaoLQO+6a1U/TZol3jrsBFl5FVt
         y7dg==
X-Gm-Message-State: AOJu0Yx0f6J5UKRb/I4PPqqUf92fN1MVzyf3AMx9Oggo/P7mE5uXDI2z
	SZFIvD3ZVTNRRnwD/8NWgnXfO+/wzWwCl38ifMRJMYmDkAOEKLm6lJKF8N4bT78/
X-Gm-Gg: ASbGnctrtyoeN8WaEf0L+112MCOD6r89oYSky1Or2S0tz4b2KbDShJbqDXkYHk2/szz
	8uuNq/Qym8IqgL0WFeapZxfwAEkf4dnjwIxpMcEBtWiJvIzFfgQB1OZSgwnLp37b29mgUQknaOc
	qZcEJJXjrbMf/srQhyNUJFLjWvpf4BkSL8YhcuLNNJQ/TlNsL6veYgg8BJVdqvB8A7nC8MnWBBp
	9l44o7ejwlpcQts7siRrx+VXamNq18QEa/8qbGyIVG55k+gXZ8qxWxRL9bn90pYNCu9Q/97j9md
	fC4miv9yHI2m4LX3ZdsAVqcC4sc8yEvN28ahtjK+e9KceuMs+qin3MOlFytrasIfcqiHjYY6JML
	drnZQAbO2gaRMwu1wMN8oOaUHb7jrrGGCUbZ0qRPh9hQYY8HnYn2rif/bOoclIcxnkWvhM0DbS9
	N2XWOJz54x11lq8hD+aKW7h8sBxaE4yjAkzo/6m0pAQiBb0dcuZI7deSw=
X-Google-Smtp-Source: AGHT+IHWtHVXehQFD3RTWT2Z7aQegTgp3LU3M4DB9hHxeDjk8+L8TQHv6+s8a3xpdcpSloDAx+s+Bw==
X-Received: by 2002:a17:907:98e:b0:b76:3b69:cb5 with SMTP id a640c23a62f3a-b76715723dbmr1229441366b.21.1763987666087;
        Mon, 24 Nov 2025 04:34:26 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 16/19] xen/riscv: implement put_page()
Date: Mon, 24 Nov 2025 13:33:49 +0100
Message-ID: <3a7ddc77031d24ad5a318375c4ec420bd749b2ca.1763986955.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <cover.1763986955.git.oleksii.kurochko@gmail.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement put_page(), as it will be used by  p2m_put_*-related code.

Although CONFIG_STATIC_MEMORY has not yet been introduced for RISC-V,
a stub for PGC_static is added to avoid cluttering the code of
put_page() with #ifdefs.

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:
 - Correct code style of do-while loop in put_page().
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V4:
 - Update the comment message:
   s/p2m_put_code/p2m_put_*-related code.
   s/put_page_nr/put_page.
---
 xen/arch/riscv/include/asm/mm.h |  7 +++++++
 xen/arch/riscv/mm.c             | 24 +++++++++++++++++++-----
 2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index dd8cdc9782..0503c92e6c 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -264,6 +264,13 @@ static inline bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
 /* Page is Xen heap? */
 #define _PGC_xen_heap     PG_shift(2)
 #define PGC_xen_heap      PG_mask(1, 2)
+#ifdef CONFIG_STATIC_MEMORY
+/* Page is static memory */
+#define _PGC_static       PG_shift(3)
+#define PGC_static        PG_mask(1, 3)
+#else
+#define PGC_static     0
+#endif
 /* Page is broken? */
 #define _PGC_broken       PG_shift(7)
 #define PGC_broken        PG_mask(1, 7)
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 1ef015f179..2e42293986 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -362,11 +362,6 @@ unsigned long __init calc_phys_offset(void)
     return phys_offset;
 }
 
-void put_page(struct page_info *page)
-{
-    BUG_ON("unimplemented");
-}
-
 void arch_dump_shared_mem_info(void)
 {
     BUG_ON("unimplemented");
@@ -627,3 +622,22 @@ void flush_page_to_ram(unsigned long mfn, bool sync_icache)
     if ( sync_icache )
         invalidate_icache();
 }
+
+void put_page(struct page_info *page)
+{
+    unsigned long nx, x, y = page->count_info;
+
+    do {
+        ASSERT((y & PGC_count_mask) >= 1);
+        x  = y;
+        nx = x - 1;
+    } while ( unlikely((y = cmpxchg(&page->count_info, x, nx)) != x) );
+
+    if ( unlikely((nx & PGC_count_mask) == 0) )
+    {
+        if ( unlikely(nx & PGC_static) )
+            free_domstatic_page(page);
+        else
+            free_domheap_page(page);
+    }
+}
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:44:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:44:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170744.1495804 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVvG-0004xb-OW; Mon, 24 Nov 2025 12:44:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170744.1495804; Mon, 24 Nov 2025 12: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 1vNVvG-0004xU-LP; Mon, 24 Nov 2025 12:44:02 +0000
Received: by outflank-mailman (input) for mailman id 1170744;
 Mon, 24 Nov 2025 12: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=h9jE=6A=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vNVj8-0004cg-Lp
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:31:30 +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 7feec8a6-c931-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:31:30 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB5423.namprd03.prod.outlook.com (2603:10b6:a03:28c::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.17; Mon, 24 Nov
 2025 12:31:26 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.016; Mon, 24 Nov 2025
 12:31: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: 7feec8a6-c931-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ct1c35hKZhynlSWaK2e+7wRcwho3W3a2JLGN7Kd2W5AC2waIEgJewKuQM1BS4Qv//iH0ycLX0zXSz0FeS225StUdmjzk7RCAWTnjBNk2wlTLWhNJH41d4s3AlOl8m5XgFy32nTlwjWQprnlPJxC9RgFcBoQYJ4GY8xbfWr8+/wWm1/3gZh4FR6vxV3sI2jjSn9RUjTItWGjn8G5oSSGSS8DD0Clip758d/Hz+WYX5Chm4+e3vi7dC9d9ZHnopoNPInVhqeShLgBLYHLOOaoY5ivVtrHNVc8nGefEgTkG99vjBkLcdYMzU6bkHMELqjS3AhLE8umPo/evDADCQVSHww==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sqC64A7fk6ujRRKnLMrKM4vYk+jM2ISqPkVTxP1X/6s=;
 b=TyY0nxXdKeRMnfCzxXIssoz48kFzPgaBpMMftDCtaqXiWdFzeSckG6qU0q5FQqwabSW5MSbzN23vtDN8tEy4Ginf5eQ0wCleYOldvU4izSILe5XtJYf9trHvBwK3B23pEXTUnO9bWD7W52ED3gkZNZZEHwE/vWTfAeMl4WKhP0lq4KtNXvfdg4uiZoXTv1rMWqyBAjjWb7Kzjo9+TA94YgVA/aOE5WUPa2LEtQk/VuIbxbKcFyHcqpVz2EMhqHcu5c0hxTsQgMclXolJkpSOE17Mm2uXhDaC46fTEEapPrKZ2H9PDu1y0tx4a2SmZNjRPhmD3TkhaIm08WKO04QSHQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sqC64A7fk6ujRRKnLMrKM4vYk+jM2ISqPkVTxP1X/6s=;
 b=ZBdhKHjYJvNo87eNWBLKUz780/c0cYi7b2k+ckn9JPoSpC3gvqc6fOs1VJIzxsxb7ZzH/IP5MVe/LRWAK+Zztcgz8DzCivhU1pDrPUsxQF/n+mbyPnxxNTkp0/XGjyVuZ5ny5YhdtlAWrbmCCc6xd9huWjH+XadAVApK3SDVrj0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <298ed761-f7e1-4239-a110-c49bfb24a479@citrix.com>
Date: Mon, 24 Nov 2025 12:31:22 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] x86/vPMU: move APIC ack past the handling of the
 interrupt
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: <5ac2e9b1-81f2-41d9-8f05-d546a49c43a7@suse.com>
 <96e8cf62-987e-45fb-9463-8a3069d346f4@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <96e8cf62-987e-45fb-9463-8a3069d346f4@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0013.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ad::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_|SJ0PR03MB5423:EE_
X-MS-Office365-Filtering-Correlation-Id: 30c4bd67-c4ac-4cd4-2737-08de2b55622d
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?NDBYSXJMaldhSytobEJRWlJydHZoa3VlNnM3elR1QXhWbUJHdXZTdmdOUlRI?=
 =?utf-8?B?V0FNV0lrYTRXMmduSGlQN0M0SVdraXRIa2cwcXdwSDd2eVdGQlNINSsvL1lO?=
 =?utf-8?B?WG1jR09HNEdqOEJON2F6SU53aXVUME0wTEF4TC9jSzdTeDhLd3pCQU12d05R?=
 =?utf-8?B?UXQ5Q1VGVkN0eURkZW53c011UmVUNFZVczdXbVppMk1KZzIyRStVTVZyV1ZX?=
 =?utf-8?B?amZsSDNzL1NJdU56dnk1VlN4VEtpQmIxbytYWlZIZW5ESkFuWXlwS1pTWkth?=
 =?utf-8?B?dGZNbEo1Q0ZNN3JqeFZuVERLeC9wbWtnbEwzcGh2b3FSWnhNWlpRajVRZ1ZC?=
 =?utf-8?B?MHVFZEpSUzd3SzhzYkJ3Z0FTZG5adHdOdDUrbnhkQlV0aFI2dDN5dExGK0Fq?=
 =?utf-8?B?b2ZFOXorNWtvN0pSOUJyWVlLcXFuUm8wVUxUamprQ3VDRWdnSHN5bE5YT2Fn?=
 =?utf-8?B?TGQ5aU9kVVg4WmQzQUZ0NDRUQ3dYQWNrWDdwVEN3SUQ2dDdMeFliZ25TTUtH?=
 =?utf-8?B?d0JjZkliNFV4YnVzOTFmN1NrZlVpYnpXMTFabVZleHlNRTZOZzdKWHNBdFg5?=
 =?utf-8?B?N3UzL1lITk9sQ2ZRbFdUQWRFOWpEdEtPbU9oZS9yVktkZ29qemVlczVsMlEy?=
 =?utf-8?B?QUxpb1VtUTFxclorSmtQNVd2QWxHdHdYR3ZlWE1UaDNkRjNnVkNCUmtqY0cw?=
 =?utf-8?B?dTh0U2tXKzhXMlVqUURoU1RMdnh5WTNTaVJOazE3Q083VytHVGlGSVdEUFly?=
 =?utf-8?B?R082Ujd3dFcwRzZhU2M0N21hVWtCU0dIZ3AvK0ZQZWVTUHoyd3lONlpJQk5N?=
 =?utf-8?B?bW45bTlIcU90d29sbE1wK0xJMDNheXA3aHVoditLSlArR3RFUEJCUUdmNmdK?=
 =?utf-8?B?Zks5c3h5clB5OHUyRlhENi9uSjd1QlFRd2NPSVptUlZTaTVWT1lXRFhFSHhO?=
 =?utf-8?B?ZkxlOUtyTnk1NC9mK0JncUR5U2sraEdJakpNSXB4bmwrOUU3aG9lNWJzSi9E?=
 =?utf-8?B?T3BGQm82aTRBSUF1d29TWnVjVytwTVptY2xnMnFJdnZFTUtLV1ViWjQyMEZ2?=
 =?utf-8?B?ZWZqOUUxY29lWFpOeDZiM3J0cC9VenVHTGdCL2hlaDhRc1JJbWNVZDhsZXo1?=
 =?utf-8?B?VVg4NmJ3alVrMGdyL2hMYlJySnRvdTh4RC8vM1JwZ1RRTFdjODVmSmxsL04r?=
 =?utf-8?B?VEpZQ2FWVTd3dE95SC9pWHdoTG9oUW5VNmtoZm56UWtNdDgzRUJBSHlzcVQ2?=
 =?utf-8?B?cmNKZndxWDd6WmhqajdybGZOKzhIcDdpR000Vyt5aTdUSGRLc1NtSldoYTdO?=
 =?utf-8?B?TnRabWZ5UUE0c0RvV2g3T2Q3aHdIRllzMm9hMU5hR0RzRGkzdGJleGsxQmpR?=
 =?utf-8?B?VGlEcGxSZWxFbDJpVW1vb0xuK3lZZ1ZMbGQyR0xyaDhWYWd2SlZNd1c4Q1RE?=
 =?utf-8?B?Rmk1V25yOGpWb3pURWV5anp2QUMwOXBtT3Y2R2ZsV29lLzRQaWM1RDJVdUNP?=
 =?utf-8?B?ZTBuNHFIOGZwMlN5dnJaTFRLdXlyWll5YnFqblZFVjFoOHFUamZuQlNBd3V6?=
 =?utf-8?B?Rk5PaWg4b2MzSkFCSlpPcnBUaC9FQndmR04xOElJQ3pjNVpFZWVLSGxWMGZo?=
 =?utf-8?B?a3BXQ3JNT1pLZEZlWkVDb3FxTmdPZ3JrUEpZdjcvaThzNXlVb3R1b1FpS1Er?=
 =?utf-8?B?Um0yZGZqTTY0WFBWWTYyd1U2Q2Q4Sng5OGlQQk9WcUJmaXoxMzlkUEN6R0Vk?=
 =?utf-8?B?RGJGSmhuSVBPYkpXVmgzeVROMzZZYUZCODc2L2lYOU5qaGxQVExtNWV6cnRI?=
 =?utf-8?B?S3d3TWlyVFNtN3N6Z3R0VjNKOUM3OU95ZzFKVEVJMFBaZ2ViTUtiNFQ0QXZ4?=
 =?utf-8?B?M1daWStNZTFXUHQ4dVhMNE00emNwOS95cDYwZ3BNajNGdWlsMjJMR3h4U2NF?=
 =?utf-8?Q?IjPDf9veybYebXdMNIymogol9Cdzsu7T?=
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?aVNSOW90UnlaTmVRT3BuRnNic3R2OVlPYmFrSW1MZFgxeGlqMFhDUnhVSHlH?=
 =?utf-8?B?aVZUNyt4YUVkOWt2S2JySnYrN0s3dGhucC9lVW1HVlpaR1ZuaGdWOVhLSnNu?=
 =?utf-8?B?WXAxaW5ra0xCRjdWSGRzWldESjlhTk5nTFJmalB0YWc3c0JPTGJ6SzNIUjhW?=
 =?utf-8?B?TVN5S3NJNGVTTllycWxlTW9mMGtrSndkUkJMWnRNZDVJaVM2a3VzQWdEdTVW?=
 =?utf-8?B?UlZaWHlmQnF5SlVCWlp5Z0pFMEg4d3MwSSt4Yng0QUZZWGQ1dDdzZGFPZm9E?=
 =?utf-8?B?VHBnOXJBUlRkTmdVdlZKdW5TbllOOWlJRldSRHdTeG45Q0xFRDZEM1ZhUFZp?=
 =?utf-8?B?R1ZJcVh5Tmk2SkhsRzdVN3JoNGdnVzlKS0JGQ0UxQ2d5S0FNVXFrdExKVmxF?=
 =?utf-8?B?N1o1clk4MXhOVnRMRHlqOGd4ZnZjVWxmeHlPSElIWHE0Z1lQbEluYVVQZ0lu?=
 =?utf-8?B?MUMrRlRkQXJGVnN4d1ZJZThDbDM0ekxuVHA5Z0xwYnh1QW4rSzFqUHBpSzdl?=
 =?utf-8?B?UzNVc1hlTGtXbXNNQWpiTXRMQmxVT0cvMC9mSDRHVjVzRzFubEczVlNTeDM4?=
 =?utf-8?B?T29Ya2JCMGo1YWVydkszOHNNUGhzbTRGc3F4ZHdyNU5Na05taGN6bUxFazkr?=
 =?utf-8?B?UHduYnl0RUNVNUQzUllNZUk1cTBYcjFCaVh3bmczRHB2c0drdXVWTk52N2F1?=
 =?utf-8?B?TUhBdXQ2ekFjR1lEQzhEQm5DYk1vNUNnaTdLMU8vYVZwWmgzZGp5d0l1Zysr?=
 =?utf-8?B?YVllZTUzbkhZRytTdmdpbXhPRGlyRTdZR1VlMW5yd2dNajJOSDgwUm9YWkxr?=
 =?utf-8?B?dVdjSDh6SzNadTJzN0I2ZnRwNUtTcUxXUXR3TmNkbWREODRUeFVJQkZUNjlv?=
 =?utf-8?B?RkZ6NjBKbWlXN2lldkl0RkplQTdvdmgwYW45Nlp2SUkyNzhycUtXNmF3RFZz?=
 =?utf-8?B?RlNqWWhvUVErSFhXV0wwU0pzSGNQVXRBQmFjMEMwaUxHeVg0T0JjVnZ4Rjh3?=
 =?utf-8?B?cUIzc0M3SlpydUdKSHk5eGpWb0Z4MnpDYkQ4bFlEQmM3VjZZcWttZVNaRDJD?=
 =?utf-8?B?Rldybm15a0F3dGNLaTc1S1J6SVpFZzV3ZWxYbUQxTnFjYWdWUWh6Z29JT2VG?=
 =?utf-8?B?aVhkdVZka1ZqU2duK24vT01ZOC9TcWZTYXRub3p6azVNdEVqNk9HOU9lRVAz?=
 =?utf-8?B?Nmd5eVljMjNNZ1VEWUhyL0ZlaUZkVHdsYWs4OWtIUUJWUmE1eXA2NDNJWGFK?=
 =?utf-8?B?MXVGZWFyRTNld05EdFRkQWpqS21jTWU2amxOVHNKSTh2czlPM01tYmVJdVJj?=
 =?utf-8?B?Uml1NHZ1aDJWenZJT2F1Um1hQlk1UVV1SitoRktZVFB6bDZOWFg3N3JxVGZv?=
 =?utf-8?B?djRrWFB5MEUxSjJyakZQL2RDbGYzVGdJT2NEdEZQVHovSkVUWFl3RUNKVnVW?=
 =?utf-8?B?RytrdzlVejcvMlQwcGpzekdza1BlRG1VOHN2VTVxejZQQmxGYTNoRi9ldEJ4?=
 =?utf-8?B?K3VrRS9jVDVROXZGenFmZUU5MnlYQlhvTXRtVjM1OHFqaFhjZy9HYnk4MFV0?=
 =?utf-8?B?NEVVNDRSTkNHM0hNT3dSWkl6UkRCajgya2ZXS2VCV3A2T1RwciszeEpoTlZo?=
 =?utf-8?B?N1IzRFlvdjAxTnNpRDdLUHZWdHBuM2JrczlKckdiZ1M5NHduSUQxTXVWZ0E4?=
 =?utf-8?B?aUtTZ3dVQXhXVms2ZUIzMVNyRDFrL3BrMkVWbUZBbDVVNDZzRW5tN0dLcnR0?=
 =?utf-8?B?YnJZaUp6V2tsUWpaWnllOWs2ZStIM2Y2UTFVQnRrNHU5OEhKWFFQK1BhS2hp?=
 =?utf-8?B?QWNYZWMrLzFoUlFDcmV2S3BrR09jc09OZ01YaEFhZ1NVdFRYc2ZMd2sxNHU0?=
 =?utf-8?B?MXpSWU11SVZnT2duMHpGaTdpdCtNVFJMNGxDd1ZkUkNxVDVidkRmLzJTc25m?=
 =?utf-8?B?a0x1UEkzN0gvK0NlR1d1VG95V3B3V1J4dVVqV0RQZGdpN0k5RitzbysvT295?=
 =?utf-8?B?VW9jS21WbGZFK2hiREVacFN3ZHRIeUJ2NzloY2JTQkZ4L2FNOXo4ZWVNY0Rq?=
 =?utf-8?B?dkVpczZGRGtsMlp3SEh3SU1yMzhTYkJGc0lFZFpma25BZTQrQjdtMmpFZ2Jr?=
 =?utf-8?B?djVRaFFjQlFBQUtJS0plWS90QTVKSnh0NXBxRWJhT21HSnVHWk15RzBhWlBI?=
 =?utf-8?B?ZHc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 30c4bd67-c4ac-4cd4-2737-08de2b55622d
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2025 12:31:25.4429
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qj5T1rnlLl7OYhFNPJeuYCCxZhDwBQZsOSLsNwUu+yS7Aly9ze+YY1MXWb1dgN1db8tgtNXos3aiW0Qb/4Y/DdNI86k28HiJhth9ql9443o=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5423

On 24/11/2025 12:29 pm, Jan Beulich wrote:
> While benign as long as it's using a direct-APIC-vector (handlers for
> which are called with IRQs off), follow the more usual pattern of ack-ing
> the IRQ only after handling it.
>
> Requested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:44:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:44:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170750.1495815 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVvS-0005JU-0d; Mon, 24 Nov 2025 12:44:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170750.1495815; Mon, 24 Nov 2025 12:44:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVvR-0005JN-TI; Mon, 24 Nov 2025 12:44:13 +0000
Received: by outflank-mailman (input) for mailman id 1170750;
 Mon, 24 Nov 2025 12:44: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=Sr25=6A=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vNVm5-0001Xp-3o
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:34:33 +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 ec6aa358-c931-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 13:34:30 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-640bd9039fbso6924279a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:34:30 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cf0435sm1285238866b.4.2025.11.24.04.34.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 04:34: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: ec6aa358-c931-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987670; x=1764592470; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TbYo3ypNq/KQ+/ssKLEJf/DvMBauVz2c5H68dzSIurk=;
        b=nKlhEJo0qOQo7SOD+OKFhST/xWJhzNjBal/w1p3WfnhBqMDA7ODsN6RYVCvPTMZdCC
         gnqzrYF9GNVqVTDHPNpWJeeXAYVagPxzz9BBP7UwE240jkirM8wGWYVJui4MhvBUnB+o
         33eg359GMfFLuY/tsdw7pk/Mh/nYUIscehu3KBbzduw9y0UJSrFu9DS3Yjf6v0pc646P
         G51xlV0MxiaXcHPV/rvEkHtfxovfQq2UF7wz7oUyoUephYHmrQztphce8ZFnR/ZN0GTi
         Mfj354o44XEOFQGoLH1OkdovemSIbt9MBf2WWS23vxWUyW0XFlaKEtZqNO9LPS9wwX+R
         kTmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987670; x=1764592470;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=TbYo3ypNq/KQ+/ssKLEJf/DvMBauVz2c5H68dzSIurk=;
        b=P7Kxdnkaf9gfPAOwlX6wo9cvJp6HrTzft9iTOseh1CfgynvWjjTStzBkLkKryjwktI
         o3MA5HxJ511IqGKvYp2EkR4WJek3YdT1UOQJ9BFCjBykwgxlGnxTyr/rXacdsbUuRbrY
         1XBdN4reJf/FlJYX2bLdelZ6H67GnYfevfH/JJm+XgIYAD1oA8CYa+ZD/SRfZo1kRud0
         AJ26Id9oWg2I1xn/MAJUSRaDOu90vlon9eekmgWboxjSpOHU52po42bXLLY9MqV7QVP0
         svU9qjH7ys2kiXbzpuxp8aVATHr3IeBUZf7PemuUhH6dEq/Jl2fwvF0l/W/3qR+Pgmbh
         1oOg==
X-Gm-Message-State: AOJu0YyIbtpQA/ExB3dQJ9BTsA3POHoEoP8W7IHLq0/33o13XADV3AEa
	J1pBTctVCf7r4FXkSAHFZjhPpkbwI/+2OpaD9KYyvcaONNNIsjAfxSlNxN4HPx4b
X-Gm-Gg: ASbGncu3xsZMQfHaLQlNHq1/fWMIheT2voi72OBAoe3mvM1ang89pvvx795gRdDUEAJ
	4h9uYhGDb2PfRBhYjUfSYNIjootROxFarG4hf78N+pUS/PHb8/ratsWKNqJUEcq9WeZhqAr6EEc
	58kgJiSqtX8RqflXRAeavM5Yh1SNoQ1EVLViXhGdX0E9rmvJKfahNfY4tmFGzrFv3AtIgDvJGV1
	NLFh/hAMVlA2LB5tr7VjZngKk9wwNiUenZ8c/KGuZjFCGWgtLoJmULBeAvw/9gQWv1TKhuor876
	BwleYW8NaR4yj+/X9rO3eJh/qQAEk1ZSW4fjjPwOXZ2B6M6ie0OMgW5PgU5TzVeXt3qcxoMMpxL
	tqNCjtQWbTcjwVxgRVbUh1M+aP+jYjqslCnokQGVsY4egAOPLqjA9LB8P7SqlgViErZj4fZ8wAf
	ozMzGcjLKeqT22ESViAvXvGPtaGVCrAOLbStu7xQgp72O+WDknWPrghxs=
X-Google-Smtp-Source: AGHT+IF2NegrpGnXB8Zu0hFrDFMsDia6VZ8PESuEEQnMLSzPZGelhaEIz/nVzYe/noPM6qB4sz+Evg==
X-Received: by 2002:a17:906:fe46:b0:b76:4a7c:27a1 with SMTP id a640c23a62f3a-b767150ba1fmr1326881066b.1.1763987669474;
        Mon, 24 Nov 2025 04:34:29 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 19/19] xen/riscv: introduce metadata table to store P2M type
Date: Mon, 24 Nov 2025 13:33:52 +0100
Message-ID: <2c41da84b3e7fb0f6e6c3c856bff6edaf9e1d505.1763986955.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <cover.1763986955.git.oleksii.kurochko@gmail.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

RISC-V's PTE has only two available bits that can be used to store the P2M
type. This is insufficient to represent all the current RISC-V P2M types.
Therefore, some P2M types must be stored outside the PTE bits.

To address this, a metadata table is introduced to store P2M types that
cannot fit in the PTE itself. Not all P2M types are stored in the
metadata tableâ€”only those that require it.

The metadata table is linked to the intermediate page table via the
`struct page_info`'s v.md.metadata field of the corresponding intermediate
page.
Such pages are allocated with MEMF_no_owner, which allows us to use
the v field for the purpose of storing the metadata table.

To simplify the allocation and linking of intermediate and metadata page
tables, `p2m_{alloc,free}_table()` functions are implemented.

These changes impact `p2m_split_superpage()`, since when a superpage is
split, it is necessary to update the metadata table of the new
intermediate page table â€” if the entry being split has its P2M type set
to `p2m_ext_storage` in its `P2M_TYPES` bits. In addition to updating
the metadata of the new intermediate page table, the corresponding entry
in the metadata for the original superpage is invalidated.

Also, update p2m_{get,set}_type to work with P2M types which don't fit
into PTE bits.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V6:
 - Introduce new type md_t to use it instead of pte_t to store metadata
   types outside PTE bits.
 - Integrate introduced struct md_t.
 - Drop local variable "struct domain *d" inside p2m_set_type().
 - Drop __func__ printting and use %pv.
 - Code style fixes
 - Drop unnessarry check inside if-condition in p2m_pte_from_mfn()
   as we have ASSERT(p2m) inside p2m_set_type() anyway.
 - Return back the commnent inside page_to_p2m_table() as it was deleted
   accidently.
 - move the initialization of
p2m_pte_ctx.pt_page and p2m_pte_ctx.level ahead of the loop
 - Add BUILD_BUG_ON(p2m_invalid) before the call of p2m_alloc_page() in p2m_set_type() and in p2m_get_type() before " if ( type == p2m_ext_storage )".
 - Set to NULL tbl_pg->v.md.pg in p2m_free_table().
 - Make argument 't' of p2m_set_type() non-const as we are going to change it.
 - Add some explanatory comments.
 - Update ASSERT at the start of p2m_set_type() to verify that
   passed ctx->index is lesser then 512 and drop calculation of
   an index of root page as it is guaranteed by calc_offset()
   and get_root_pointer() that we will aready get proper page and
   proper index inside this page.
---
Changes in V5:
 - Rename metadata member of stuct md inside struct page_info to pg.
 - Stray blank in the declaration of p2m_alloc_table().
 - Use "<" instead of "<=" in ASSERT() in p2m_set_type().
 - Move the check that ctx is provided to an earlier point in
   p2m_set_type().
 - Set `md_pg` after ASSERT() in p2m_set_type().
 - Add BUG_ON() insetead of ASSERT_UNREACHABLE() in p2m_set_type().
 - Drop a check that metadata isn't NULL before unmap_domain_page() is
   being called.
 - Make const `md` variable in p2m_get_type().
 - unmap correct domain's page in p2m_get_type: use `md` instead of
   ctx->pt_page->v.md.pg.
 - Add description of how p2m and p2m_pte_ctx is expected to be used
   in p2m_pte_from_mfn() and drop a comment from page_to_p2m_table().
 - Drop the stale part of the comment above p2m_alloc_table().
 - Drop ASSERT(tbl_pg->v.md.pg) from p2m_free_table() as tbl_pg->v.md.pg
   is created conditionally now.
 - Drop an introduction of p2m_alloc_table(), update p2m_alloc_page()
   correspondengly and use it instead.
 - Add missing blank in definition of level member for tmp_ctx variable
   in p2m_free_subtree(). Also, add the comma at the end.
 - Initialize old_type once before for-loop in p2m_split_superpage() as
   old type will be used for all newly created PTEs.
 - Properly initialize p2m_pte_ctx.level with next_level instead of
   level when p2m_set_type() is going to be called for new PTEs.
 - Fix identations.
 - Move ASSERT(p2m) on top of p2m_set_type() to be sure that NULL isn't
   passed for p2m argument of p2m_set_type().
 - s/virt_to_page(table)/mfn_to_page(domain_page_map_to_mfn(table))
   to recieve correct page for a table which is mapped by domain_page_map().
 - Add "return;" after domain_crash() in p2m_set_type() to avoid potential
   NULL pointer dereference of md_pg.
---
Changes in V4:
 - Add Suggested-by: Jan Beulich <jbeulich@suse.com>.
 - Update the comment above declation of md structure inside struct page_info to:
   "Page is used as an intermediate P2M page table".
 - Allocate metadata table on demand to save some memory. (1)
 - Rework p2m_set_type():
   - Add allocatation of metadata page only if needed.
   - Move a check what kind of type we are handling inside p2m_set_type().
 - Move mapping of metadata page inside p2m_get_type() as it is needed only
   in case if PTE's type is equal to p2m_ext_storage.
 - Add some description to p2m_get_type() function.
 - Drop blank after return type of p2m_alloc_table().
 - Drop allocation of metadata page inside p2m_alloc_table becaues of (1).
 - Fix p2m_free_table() to free metadata page only if it was allocated.
---
Changes in V3:
 - Add is_p2m_foreign() macro and connected stuff.
 - Change struct domain *d argument of p2m_get_page_from_gfn() to
   struct p2m_domain.
 - Update the comment above p2m_get_entry().
 - s/_t/p2mt for local variable in p2m_get_entry().
 - Drop local variable addr in p2m_get_entry() and use gfn_to_gaddr(gfn)
   to define offsets array.
 - Code style fixes.
 - Update a check of rc code from p2m_next_level() in p2m_get_entry()
   and drop "else" case.
 - Do not call p2m_get_type() if p2m_get_entry()'s t argument is NULL.
 - Use struct p2m_domain instead of struct domain for p2m_lookup() and
   p2m_get_page_from_gfn().
 - Move defintion of get_page() from "xen/riscv: implement mfn_valid() and page reference, ownership handling helpers"
---
Changes in V2:
 - New patch.
---
 xen/arch/riscv/include/asm/mm.h |   9 ++
 xen/arch/riscv/p2m.c            | 257 ++++++++++++++++++++++++++++----
 2 files changed, 236 insertions(+), 30 deletions(-)

diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 1b16809749..b18892e4fc 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -149,6 +149,15 @@ struct page_info
             /* Order-size of the free chunk this page is the head of. */
             unsigned int order;
         } free;
+
+        /* Page is used as an intermediate P2M page table */
+        struct {
+            /*
+             * Pointer to a page which store metadata for an intermediate page
+             * table.
+             */
+            struct page_info *pg;
+        } md;
     } v;
 
     union {
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index c356200fc6..23f44f547d 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -26,6 +26,24 @@
  */
 #define P2M_MAX_SUPPORTED_LEVEL_MAPPING _AC(2, U)
 
+struct md_t {
+    /*
+     * Describes a type stored outside PTE bits.
+     * Look at the comment above definition of enum p2m_type_t.
+     */
+    p2m_type_t type : 4;
+};
+
+/*
+ * P2M PTE context is used only when a PTE's P2M type is p2m_ext_storage.
+ * In this case, the P2M type is stored separately in the metadata page.
+ */
+struct p2m_pte_ctx {
+    struct page_info *pt_page;   /* Page table page containing the PTE. */
+    unsigned int index;          /* Index of the PTE within that page. */
+    unsigned int level;          /* Paging level at which the PTE resides. */
+};
+
 static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
     .mode = HGATP_MODE_OFF,
     .paging_levels = 0,
@@ -37,6 +55,10 @@ unsigned char get_max_supported_mode(void)
     return max_gstage_mode.mode;
 }
 
+/*
+ * If anything is changed here, it may also require updates to
+ * p2m_{get,set}_type().
+ */
 static inline unsigned int calc_offset(const struct p2m_domain *p2m,
                                        const unsigned int lvl,
                                        const paddr_t gpa)
@@ -79,6 +101,9 @@ static inline unsigned int calc_offset(const struct p2m_domain *p2m,
  * The caller is responsible for unmapping the page after use.
  *
  * Returns NULL if the calculated offset into the root table is invalid.
+ *
+ * If anything is changed here, it may also require updates to
+ * p2m_{get,set}_type().
  */
 static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
 {
@@ -374,24 +399,107 @@ static struct page_info *p2m_alloc_page(struct p2m_domain *p2m)
     return pg;
 }
 
-static int p2m_set_type(pte_t *pte, p2m_type_t t)
+/*
+ * `pte` â€“ PTE entry for which the type `t` will be stored.
+ *
+ * If `t` is `p2m_ext_storage`, both `ctx` and `p2m` must be provided;
+ * otherwise, only p2m may be NULL.
+ */
+static void p2m_set_type(pte_t *pte, p2m_type_t t,
+                         struct p2m_pte_ctx *ctx,
+                         struct p2m_domain *p2m)
 {
-    int rc = 0;
+    struct page_info **md_pg;
+    struct md_t *metadata = NULL;
 
-    if ( t > p2m_first_external )
-        panic("unimplemeted\n");
-    else
-        pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
+    ASSERT(p2m);
 
-    return rc;
+    /*
+     * It is sufficient to compare ctx->index with PAGETABLE_ENTRIES because,
+     * even for the p2m root page table (which is a 16 KB page allocated as
+     * four 4 KB pages), calc_offset() guarantees that the page-table index
+     * will always fall within the range [0, 511].
+     */
+    ASSERT(ctx && ctx->index < PAGETABLE_ENTRIES);
+
+    /*
+     * At the moment, p2m_get_root_pointer() returns one of four possible p2m
+     * root pages, so there is no need to search for the correct ->pt_page
+     * here.
+     * Non-root page tables are 4 KB pages, so simply using ->pt_page is
+     * sufficient.
+     */
+    md_pg = &ctx->pt_page->v.md.pg;
+
+    if ( !*md_pg && (t >= p2m_first_external) )
+    {
+        BUG_ON(ctx->level > P2M_MAX_SUPPORTED_LEVEL_MAPPING);
+
+        if ( ctx->level <= P2M_MAX_SUPPORTED_LEVEL_MAPPING )
+        {
+            /*
+             * Since p2m_alloc_page() initializes an allocated page with zeros, p2m_invalid
+             * is expected to have the value 0 as well. This ensures that if a metadata
+             * page is accessed before being properly initialized, the correct type
+             * (p2m_invalid in this case) will be returned.
+             */
+            BUILD_BUG_ON(p2m_invalid);
+
+            *md_pg = p2m_alloc_page(p2m);
+            if ( !*md_pg )
+            {
+                printk("%pd: can't allocate metadata page\n", p2m->domain);
+                domain_crash(p2m->domain);
+
+                return;
+            }
+        }
+    }
+
+    if ( *md_pg )
+        metadata = __map_domain_page(*md_pg);
+
+    if ( t >= p2m_first_external )
+    {
+        metadata[ctx->index].type = t;
+
+        t = p2m_ext_storage;
+    }
+    else if ( metadata )
+        metadata[ctx->index].type = p2m_invalid;
+
+    pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
+
+    unmap_domain_page(metadata);
 }
 
-static p2m_type_t p2m_get_type(const pte_t pte)
+/*
+ * `pte` -> PTE entry that stores the PTE's type.
+ *
+ * If the PTE's type is `p2m_ext_storage`, `ctx` should be provided;
+ * otherwise it could be NULL.
+ */
+static p2m_type_t p2m_get_type(const pte_t pte, const struct p2m_pte_ctx *ctx)
 {
     p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
 
+    /*
+     * Since the PTE is initialized with all zeros by default, p2m_invalid must
+     * have the value 0. This ensures that if p2m_get_type() is called for a GFN
+     * that hasn't been initialized, the correct type (p2m_invalid in this case)
+     * will be returned. It also guarantees that metadata won't be touched when
+     * the GFN hasn't been initialized.
+     */
+    BUILD_BUG_ON(p2m_invalid);
+
     if ( type == p2m_ext_storage )
-        panic("unimplemented\n");
+    {
+        const struct md_t *md = __map_domain_page(ctx->pt_page->v.md.pg);
+
+        type = md[ctx->index].type;
+
+        unmap_domain_page(md);
+    }
 
     return type;
 }
@@ -481,7 +589,15 @@ static void p2m_set_permission(pte_t *e, p2m_type_t t)
     }
 }
 
-static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
+/*
+ * If p2m_pte_from_mfn() is called with p2m_pte_ctx = NULL and p2m = NULL,
+ * it means the function is working with a page table for which the `t`
+ * should not be applicable. Otherwise, the function is handling a leaf PTE
+ * for which `t` is applicable.
+ */
+static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t,
+                              struct p2m_pte_ctx *p2m_pte_ctx,
+                              struct p2m_domain *p2m)
 {
     pte_t e = (pte_t) { PTE_VALID };
 
@@ -489,7 +605,7 @@ static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
 
     ASSERT(!(mfn_to_maddr(mfn) & ~PADDR_MASK) || mfn_eq(mfn, INVALID_MFN));
 
-    if ( !is_table )
+    if ( p2m_pte_ctx )
     {
         switch ( t )
         {
@@ -502,7 +618,7 @@ static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
         }
 
         p2m_set_permission(&e, t);
-        p2m_set_type(&e, t);
+        p2m_set_type(&e, t, p2m_pte_ctx, p2m);
     }
     else
         /*
@@ -522,7 +638,22 @@ static pte_t page_to_p2m_table(const struct page_info *page)
      * set to true and p2m_type_t shouldn't be applied for PTEs which
      * describe an intermediate table.
      */
-    return p2m_pte_from_mfn(page_to_mfn(page), p2m_invalid, true);
+    return p2m_pte_from_mfn(page_to_mfn(page), p2m_invalid, NULL, NULL);
+}
+
+static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
+
+/*
+ * Free page table's page and metadata page linked to page table's page.
+ */
+static void p2m_free_table(struct p2m_domain *p2m, struct page_info *tbl_pg)
+{
+    if ( tbl_pg->v.md.pg )
+    {
+        p2m_free_page(p2m, tbl_pg->v.md.pg);
+        tbl_pg->v.md.pg = NULL;
+    }
+    p2m_free_page(p2m, tbl_pg);
 }
 
 /* Allocate a new page table page and hook it in via the given entry. */
@@ -683,12 +814,14 @@ static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg)
 
 /* Free pte sub-tree behind an entry */
 static void p2m_free_subtree(struct p2m_domain *p2m,
-                             pte_t entry, unsigned int level)
+                             pte_t entry,
+                             const struct p2m_pte_ctx *p2m_pte_ctx)
 {
     unsigned int i;
     pte_t *table;
     mfn_t mfn;
     struct page_info *pg;
+    unsigned int level = p2m_pte_ctx->level;
 
     /*
      * Check if the level is valid: only 4K - 2M - 1G mappings are supported.
@@ -704,7 +837,7 @@ static void p2m_free_subtree(struct p2m_domain *p2m,
 
     if ( pte_is_mapping(entry) )
     {
-        p2m_type_t p2mt = p2m_get_type(entry);
+        p2m_type_t p2mt = p2m_get_type(entry, p2m_pte_ctx);
 
 #ifdef CONFIG_IOREQ_SERVER
         /*
@@ -723,10 +856,21 @@ static void p2m_free_subtree(struct p2m_domain *p2m,
         return;
     }
 
-    table = map_domain_page(pte_get_mfn(entry));
+    mfn = pte_get_mfn(entry);
+    ASSERT(mfn_valid(mfn));
+    table = map_domain_page(mfn);
+    pg = mfn_to_page(mfn);
 
     for ( i = 0; i < P2M_PAGETABLE_ENTRIES(p2m, level); i++ )
-        p2m_free_subtree(p2m, table[i], level - 1);
+    {
+        struct p2m_pte_ctx tmp_ctx = {
+            .pt_page = pg,
+            .index = i,
+            .level = level - 1,
+        };
+
+        p2m_free_subtree(p2m, table[i], &tmp_ctx);
+    }
 
     unmap_domain_page(table);
 
@@ -738,17 +882,13 @@ static void p2m_free_subtree(struct p2m_domain *p2m,
      */
     p2m_tlb_flush_sync(p2m);
 
-    mfn = pte_get_mfn(entry);
-    ASSERT(mfn_valid(mfn));
-
-    pg = mfn_to_page(mfn);
-
-    p2m_free_page(p2m, pg);
+    p2m_free_table(p2m, pg);
 }
 
 static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
                                 unsigned int level, unsigned int target,
-                                const unsigned int *offsets)
+                                const unsigned int *offsets,
+                                struct page_info *tbl_pg)
 {
     struct page_info *page;
     unsigned long i;
@@ -760,6 +900,10 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
     unsigned int next_level = level - 1;
     unsigned int level_order = P2M_LEVEL_ORDER(next_level);
 
+    struct p2m_pte_ctx p2m_pte_ctx;
+    /* Init with p2m_invalid just to make compiler happy. */
+    p2m_type_t old_type = p2m_invalid;
+
     /*
      * This should only be called with target != level and the entry is
      * a superpage.
@@ -781,6 +925,22 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
 
     table = __map_domain_page(page);
 
+    if ( MASK_EXTR(entry->pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage )
+    {
+        p2m_pte_ctx.pt_page = tbl_pg;
+        p2m_pte_ctx.index = offsets[level];
+        /*
+         * It doesn't really matter what is a value for a level as
+         * p2m_get_type() doesn't need it, so it is initialized just in case.
+         */
+        p2m_pte_ctx.level = level;
+
+        old_type = p2m_get_type(*entry, &p2m_pte_ctx);
+    }
+
+    p2m_pte_ctx.pt_page = page;
+    p2m_pte_ctx.level = next_level;
+
     for ( i = 0; i < P2M_PAGETABLE_ENTRIES(p2m, next_level); i++ )
     {
         pte_t *new_entry = table + i;
@@ -792,6 +952,13 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
         pte = *entry;
         pte_set_mfn(&pte, mfn_add(mfn, i << level_order));
 
+        if ( MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK) == p2m_ext_storage )
+        {
+            p2m_pte_ctx.index = i;
+
+            p2m_set_type(&pte, old_type, &p2m_pte_ctx, p2m);
+        }
+
         write_pte(new_entry, pte);
     }
 
@@ -803,7 +970,7 @@ static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
      */
     if ( next_level != target )
         rv = p2m_split_superpage(p2m, table + offsets[next_level],
-                                 next_level, target, offsets);
+                                 next_level, target, offsets, page);
 
     if ( p2m->clean_dcache )
         clean_dcache_va_range(table, PAGE_SIZE);
@@ -894,13 +1061,21 @@ static int p2m_set_entry(struct p2m_domain *p2m,
     {
         /* We need to split the original page. */
         pte_t split_pte = *entry;
+        struct page_info *tbl_pg = mfn_to_page(domain_page_map_to_mfn(table));
 
         ASSERT(pte_is_superpage(*entry, level));
 
-        if ( !p2m_split_superpage(p2m, &split_pte, level, target, offsets) )
+        if ( !p2m_split_superpage(p2m, &split_pte, level, target, offsets,
+                                  tbl_pg) )
         {
+            struct p2m_pte_ctx tmp_ctx = {
+                .pt_page = tbl_pg,
+                .index = offsets[level],
+                .level = level,
+            };
+
             /* Free the allocated sub-tree */
-            p2m_free_subtree(p2m, split_pte, level);
+            p2m_free_subtree(p2m, split_pte, &tmp_ctx);
 
             rc = -ENOMEM;
             goto out;
@@ -938,7 +1113,13 @@ static int p2m_set_entry(struct p2m_domain *p2m,
         p2m_clean_pte(entry, p2m->clean_dcache);
     else
     {
-        pte_t pte = p2m_pte_from_mfn(mfn, t, false);
+        struct p2m_pte_ctx tmp_ctx = {
+            .pt_page = mfn_to_page(domain_page_map_to_mfn(table)),
+            .index = offsets[level],
+            .level = level,
+        };
+
+        pte_t pte = p2m_pte_from_mfn(mfn, t, &tmp_ctx, p2m);
 
         p2m_write_pte(entry, pte, p2m->clean_dcache);
 
@@ -974,7 +1155,15 @@ static int p2m_set_entry(struct p2m_domain *p2m,
     if ( pte_is_valid(orig_pte) &&
          (!pte_is_valid(*entry) ||
           !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte))) )
-        p2m_free_subtree(p2m, orig_pte, level);
+    {
+        struct p2m_pte_ctx tmp_ctx = {
+            .pt_page = mfn_to_page(domain_page_map_to_mfn(table)),
+            .index = offsets[level],
+            .level = level,
+        };
+
+        p2m_free_subtree(p2m, orig_pte, &tmp_ctx);
+    }
 
  out:
     unmap_domain_page(table);
@@ -1173,7 +1362,15 @@ static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
     if ( pte_is_valid(entry) )
     {
         if ( t )
-            *t = p2m_get_type(entry);
+        {
+            struct p2m_pte_ctx p2m_pte_ctx = {
+                .pt_page = mfn_to_page(domain_page_map_to_mfn(table)),
+                .index = offsets[level],
+                .level = level,
+            };
+
+            *t = p2m_get_type(entry, &p2m_pte_ctx);
+        }
 
         mfn = pte_get_mfn(entry);
 
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:45:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:45:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170783.1495825 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVwz-0006d4-Gt; Mon, 24 Nov 2025 12:45:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170783.1495825; Mon, 24 Nov 2025 12:45:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVwz-0006cx-DO; Mon, 24 Nov 2025 12:45:49 +0000
Received: by outflank-mailman (input) for mailman id 1170783;
 Mon, 24 Nov 2025 12:45:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fNsn=6A=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vNVwy-0006ch-Pn
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:45:48 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7ffc9e6d-c933-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:45:47 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-640d0ec9651so7142005a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:45:47 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64536443784sm11828410a12.28.2025.11.24.04.45.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04: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: 7ffc9e6d-c933-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763988347; x=1764593147; 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=vegomO540GgvAFXLXcwEbN1/Dy5RuZjlL/Wc3OvPm9Y=;
        b=FIZoSj7jfz/2VWdctCZe5uBncRX2DBdWCkEVifIlkod5E7twBf94cYt4hE2/AypDMi
         nrbExPm8yJmX1kmrnYtnCMzWgUpMHkDmCtBAe5ruMcqScnENCsKK63HIKLy7UILO3/U2
         RgZ1GUGQDezt1CNS8FWtUfgDkus5Tlvit6fhoksX7R6IPsYW7qg/iuJN01kIcjsFra6D
         CWgdlkFKPnaOJBRCN69hSixnp6b4HIqtX8w2gJz6kqY8MKWBx3CcLwt9pxrJ3/cLQX+S
         tMbF2jN7fjYSiMmDp4mE3Fz5Nm0ghMMgpe13vyhFtOcB0HTekjiXmfWu3P0NJxOWVNmk
         sQsg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763988347; x=1764593147;
        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=vegomO540GgvAFXLXcwEbN1/Dy5RuZjlL/Wc3OvPm9Y=;
        b=ftQ5aY5b+VczAh3xeE7LN1ilHSRSo6vlHoSijY2vRBGlziWV4oIbAtquA9ZlstDAyk
         1V/31Qqjt6dw37VIM2r0vR3YMwh3pW1d3612GhMOxIJZNUdLwoUX123EGKln+pfgIUpH
         /bA+OWlVm1S4xBOmArNuHRNvq0So6CLaMorQ3Zs3LZyduTcOh5ryLmGYdEf/DKYQVJ9J
         iVCxrwvL+dtpAMODcNQu+hjmbA7SwbggVL7QWCyR30l2qJFk74bwKOlm4ZjLVqPF69l4
         +8sk6bj3Lvh/0ymadaDCBDC123MsPPc6k3fSOSP2mpMTCvWWHFKssPjmiQfgKFyq6QhS
         v63w==
X-Forwarded-Encrypted: i=1; AJvYcCVCH25qeKa+5yjMqFmAAqAySxlRJoEGKR4EhyBvFANceEdUYPuNKepe4URxIo9JCwHaf4pzewDl2As=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzZRdpifygGQahT32SgiQGQyz9Qy9PeUTBrzN3x1USYiU/1JjWC
	3ddxTTTYXWBce8CaxvtNy6Q20Dg8smhRfJM5JPEI0DBevTzkCIYrFnnHx0lUGGaqdl8=
X-Gm-Gg: ASbGnctYA1SLugbC+c2j4NYaT/Puu9F93gHOgS9Jgyw7geKPbhxseaspPI16+rW55q0
	+Ifp488j+AXJy6l020Zngv0uI+nNpWeM2mIUbZKKO0awR+v2E4OUwoGURLU40VP+1cxbygi6TFd
	32JTA90rzL/I9L40M71pKvZexAEFAL+QpsbENuXHU/8QHxY7QWvvd6XS62mXPru2pOXq/qHJ+Fg
	8e02itM123Ikb/cqxsOl77P0lvc8cBRUpDBKA1liQqFXI9v/XQghoQ8pMI9TjqL4IP/IOjOMqmE
	wEK4Z609vFgnO9OViA6sgKMrFF3Z/KJyeaQSPg8BqPa/tBCK8f4DdWz6SE+qs4zaEECbBb1MF/9
	MtyJmcPzkMuEOjATh5jJwSifSRWpI2VMMgwaDffl5yl+B+LiL4Pa21QG9KJY5UHsO0oABPd7vck
	dHY7GtKdB9myKcc+JgWU05Y0Ctz1EbG62ePT3lP711y7A9dS3LhmLECPCO+UaehivrGIKeq0Q0d
	Kpggjl6g6S46dtWJWRRGivUZvlkx3Y/j5f4Sso=
X-Google-Smtp-Source: AGHT+IHuhYMAVvndKZTfju+ktbACdX8g9isNq/qP/9vWKm3adVSIG7UH/rzspuBIcDh+7pOOVKSQrQ==
X-Received: by 2002:a05:6402:d0e:b0:640:a9b1:870b with SMTP id 4fb4d7f45d1cf-64555baa940mr10080735a12.14.1763988337277;
        Mon, 24 Nov 2025 04:45:37 -0800 (PST)
Message-ID: <a593e8cb-fa56-4301-a7da-ca4b51dfab9a@suse.com>
Date: Mon, 24 Nov 2025 13:45:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
 <d34e3e86-c51a-49b3-8b46-140526755f0f@suse.com>
 <826037a5-dacf-434f-90d9-8f12e61bdd6e@suse.com>
 <0ece9df6-8a04-4ffa-bcf4-d7a3fd4bbef4@suse.com>
 <bf7e1a66-1696-477a-bdef-79b08df0b57c@suse.com>
 <bbcaf4f2-c52e-4b3e-ab6a-ca5020a8b786@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: <bbcaf4f2-c52e-4b3e-ab6a-ca5020a8b786@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------rnClgptvmRmrOv993EFk3d0G"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------rnClgptvmRmrOv993EFk3d0G
Content-Type: multipart/mixed; boundary="------------hWJkwhnAaPtL2FfiBw0dRqiN";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.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?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Message-ID: <a593e8cb-fa56-4301-a7da-ca4b51dfab9a@suse.com>
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
 <d34e3e86-c51a-49b3-8b46-140526755f0f@suse.com>
 <826037a5-dacf-434f-90d9-8f12e61bdd6e@suse.com>
 <0ece9df6-8a04-4ffa-bcf4-d7a3fd4bbef4@suse.com>
 <bf7e1a66-1696-477a-bdef-79b08df0b57c@suse.com>
 <bbcaf4f2-c52e-4b3e-ab6a-ca5020a8b786@suse.com>
In-Reply-To: <bbcaf4f2-c52e-4b3e-ab6a-ca5020a8b786@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=

--------------hWJkwhnAaPtL2FfiBw0dRqiN
Content-Type: multipart/mixed; boundary="------------ZmADpcFg0DLlpAexXdK27IJ0"

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

T24gMjQuMTEuMjUgMTM6MTgsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyNC4xMS4yMDI1
IDEyOjI3LCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gT24gMjQuMTEuMjUgMTI6MTUsIEph
biBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDI0LjExLjIwMjUgMTI6MDUsIErDvHJnZW4gR3Jv
w58gd3JvdGU6DQo+Pj4+IE9uIDI0LjExLjI1IDExOjQxLCBKYW4gQmV1bGljaCB3cm90ZToN
Cj4+Pj4+IE9uIDIxLjExLjIwMjUgMTQ6MjMsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+Pj4+
Pj4gLS0tIGEvQ29uZmlnLm1rDQo+Pj4+Pj4gKysrIGIvQ29uZmlnLm1rDQo+Pj4+Pj4gQEAg
LTE1OSw2ICsxNTksMTkgQEAgZGVmaW5lIG1vdmUtaWYtY2hhbmdlZA0KPj4+Pj4+ICAgICAJ
aWYgISBjbXAgLXMgJCgxKSAkKDIpOyB0aGVuIG12IC1mICQoMSkgJCgyKTsgZWxzZSBybSAt
ZiAkKDEpOyBmaQ0KPj4+Pj4+ICAgICBlbmRlZg0KPj4+Pj4+ICAgICANCj4+Pj4+PiArUEFU
SF9GSUxFUyA6PSBQYXRocw0KPj4+Pj4+ICtJTkNfRklMRVMgPSAkKGZvcmVhY2ggZiwgJChQ
QVRIX0ZJTEVTKSwgJChYRU5fUk9PVCkvY29uZmlnLyQoZikubWspDQo+Pj4+Pj4gKw0KPj4+
Pj4+ICtpbmNsdWRlICQoSU5DX0ZJTEVTKQ0KPj4+Pj4+ICsNCj4+Pj4+PiArQlVJTERfTUFL
RV9WQVJTID0gJChmb3JlYWNoIGYsICQoUEFUSF9GSUxFUyksICQoc2hlbGwgYXdrICckJDIg
PT0gIjo9IiB7IHByaW50ICQkMTsgfScgJChYRU5fUk9PVCkvY29uZmlnLyQoZikubWsuaW4p
KQ0KPj4+Pj4NCj4+Pj4+IEZlZWxzIGxpa2UgbXkgcHJpb3IgY29tbWVudHMgd2VyZW4ndCBy
ZWFsbHkgYWRkcmVzc2VkLiBJIGNvbnRpbnVlIHRvIHRoaW5rIHRoYXQNCj4+Pj4+IG5vbmUg
b2YgdGhlIGFib3ZlIGlzIHBhcnQgb2Ygd2hhdCB0aGUgc3ViamVjdCBzYXlzLg0KPj4+Pg0K
Pj4+PiBJIHJlYWxseSBkb24ndCB1bmRlcnN0YW5kIHlvdXIgY29uY2VybiBoZXJlLg0KPj4+
Pg0KPj4+PiBGb3IgcmVwbGFjaW5nIHRoZSBAbWFya2Vyc0AgbWFrZSBuZWVkcyB0byBrbm93
IHdoYXQgc2hvdWxkIGJlIHJlcGxhY2VkLg0KPj4+PiBTbyBpdCBuZWVkcyB0byBzY2FuIHRo
ZSBmaWxlcyBjb250YWluaW5nIHRoZSBtYXJrZXJzIGFuZCBnYXRoZXIgdGhlbS4NCj4+Pj4g
VGhpcyBpcyB3aGF0IGlzIGRvbmUgYWJvdmUuDQo+Pj4+DQo+Pj4+IEluIHRoZSBmaW5hbCBt
YWNybyBiZWxvdyB0aGUgcmVwbGFjZW1lbnRzIGFyZSBkb25lIHRoZW4uIEhvdyB3b3VsZCB5
b3UNCj4+Pj4gaGFuZGxlIHRoYXQ/DQo+Pj4NCj4+PiBCeSBwYXNzaW5nIChhbm90aGVyKSBh
cmd1bWVudCB0byB0aGUgbWFjcm8sIGZvciBleGFtcGxlLiBBcyBpbmRpY2F0ZWQNCj4+PiBl
YXJsaWVyLCBkaWZmZXJlbnQgc3ViLXRyZWVzIG1heSBoYXZlIGRpZmZlcmVudCBwbGFjZXMg
d2hlcmUgdGhlc2UNCj4+PiBkZWZpbml0aW9ucyBsaXZlLCBhbmQgdGhleSB3b3VsZCB3YW50
IHRvIGJlIGFibGUgdG8gcGFzcyB0aGF0IGluDQo+Pj4gKGlkZWFsbHkgd2l0aG91dCBuZWVk
aW5nIHRvIHB1dCB0aGlzIGluIGEgY29tbW9uIHBhcnQgb2YgdGhlIHRyZWUpLg0KPj4NCj4+
IEkgZG9uJ3QgZ2V0IHdoYXQgeW91IHdhbnQgdG8gcGFzcyBpbiBhZGRpdGlvbmFsbHkuDQo+
Pg0KPj4gSSd2ZSBhbHJlYWR5IGNoYW5nZWQgdGhlIG1hY3JvIGFuZCB0aGUgTWFrZWZpbGVz
IHRvIGJlIGFibGUgdG8gYWRkIGFub3RoZXINCj4+IG1hcmtlciBmaWxlIHRvIHRoZSBQQVRI
X0ZJTEVTIHZhcmlhYmxlLiBXaGF0IGVsc2UgZG8geW91IG5lZWQ/DQo+IA0KPiBXZWxsLCB0
aGF0J3Mgc2ltcGx5IGFuIG9kZCB3YXkgb2YgcGFzc2luZyBhIHBhcmFtZXRlci4gUGx1cywg
dGhlIGV4dHJhIGZpbGUNCg0KV2UgZG8gdGhhdCBhbGwgdGhlIHRpbWVzLCBlLmcuIGJ5ICJP
QkoteSArPSAuLi4iDQoNCj4gd29uJ3QgYWZmZWN0IElOQ19GSUxFUywgb3IgbW9yZSBwcmVj
aXNlbHkgaXRzIHVzZSBpbiB0aGUgaW5jbHVkZSBkaXJlY3RpdmUNCj4gaW4gcGF0Y2ggMTog
QXQgbGVhc3QgYWl1aSwgJChJTkNfRklMRVMpIGlzIGV4cGFuZGVkIGF0IHRoZSBwb2ludCB3
aGVuIHRoZQ0KPiBkaXJlY3RpdmUgaXMgcHJvY2Vzc2VkLiBIZW5jZSB3aHkgeW91IG5lZWQg
dG8gb3Blbi1jb2RlIGFub3RoZXIgaW5jbHVkZQ0KPiB0aGVyZS4NCg0KVGhlIElOQ19GSUxF
UyB2YXJpYWJsZSBpcyBtb3N0bHkgbmVlZGVkIGZvciBzcGVjaWZ5aW5nIHRoZSBkZXBlbmRl
bmNlIG9mDQp0aGUgZ2VuZXJhdGVkIGZpbGVzIG9uIHRoZSBmaWxlcyBtZW50aW9uZWQgaW4g
UEFUSF9GSUxFUy4NCg0KSXQgbWlnaHQgYmUgYmV0dGVyIHRvIGp1c3QgaGF2ZSAiLWluY2x1
ZGUgJChYRU5fUk9PVC9jb25maWcvUGF0aHMubWsiIGluDQpDb25maWcubWssIG1hdGNoaW5n
IHRoZSBzZXR0aW5nIG9mIFBBVEhfRklMRVMgdGhlcmUuDQoNCg0KSnVlcmdlbg0K
--------------ZmADpcFg0DLlpAexXdK27IJ0
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-----

--------------ZmADpcFg0DLlpAexXdK27IJ0--

--------------hWJkwhnAaPtL2FfiBw0dRqiN--

--------------rnClgptvmRmrOv993EFk3d0G
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/Ey8FAmkkU3AFAwAAAAAACgkQsN6d1ii/Ey8A
Twf/UfgaTjPzBNiEDKkHM5GoZcmlG/I5d9/uYnLSuL6dY/LBtGkYTjcfT4S665kOt8PCMjDgLz4o
+OysAij2an68us2lgR+M6XGKEEqwAy7FPq9iA0q7B9gIZAgSeCsyYalqzTCZ6XFdTp6tvP6xebOg
FYsAR7vkq5KjMmFqP4ytxhFNAHE9pvw6fgU9fashs4QgkO25y1UoB0v6oDCRYZ1E9NsqTt+udz4K
UhvSAc/N/3LA2Uo4P329LEeA6/dR3sVs1LA9jaQs1JZmypOnD3QuskXTno4cVC5vAeQRcaFO9KCp
Du0GT8YCKBQJmCV3dKpjPYztCxWS4XApo4i9PPJmfg==
=OMtR
-----END PGP SIGNATURE-----

--------------rnClgptvmRmrOv993EFk3d0G--


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:45:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:45:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170784.1495835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVx3-0006sz-OY; Mon, 24 Nov 2025 12:45:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170784.1495835; Mon, 24 Nov 2025 12:45:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVx3-0006ss-LB; Mon, 24 Nov 2025 12:45:53 +0000
Received: by outflank-mailman (input) for mailman id 1170784;
 Mon, 24 Nov 2025 12:45: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=Sr25=6A=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vNVm2-0001zv-SS
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:34: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 eae89e90-c931-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:34:28 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b73161849e1so747730766b.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:34:28 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cf0435sm1285238866b.4.2025.11.24.04.34.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 04:34: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: eae89e90-c931-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987667; x=1764592467; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TCrVTv3VliCWG5e18Y/6OBBXltGq/TeH9UeHgbc48QM=;
        b=K9X2CVdLoBfLGNo6g/FRh3OTewRnmiVPhWkkvoRSYB476IseAjYbehwvoLYoKlEabt
         lJNn5QndCEuZTWY4tMoQeAcOIo84GDjm1k2cNgGHVGGj7XcS7qcfA/WgUD9txGjaJzWj
         FO0hDP06AEGF6q9XpluXG0lmsWIaV46tH4zr7O3EeTr6SgZ3PGmQEGLJmKj/qzhhUF1q
         9OL8mT5APhthBm06aYuQxMpx97aMeG/nh2Pz+Rei1uxCi8ZFBJTZPJBC9GTaKmiJHACi
         /H7zmmEjt4aluV5wYOvzYR6yY+4I14bdtMXS29kt88Qe0W2l9NgkyHEtOE3/sc73x72G
         0L2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987667; x=1764592467;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=TCrVTv3VliCWG5e18Y/6OBBXltGq/TeH9UeHgbc48QM=;
        b=B/faVntJsGaF1DJopExdtp11uUjJeaNYTFmmVfJhvEse8MyOSBeTw4+9aXgT9DgVdx
         DxcPlzclRqPLNKu9/ys99UcxCoHQFbR+31VbhpZIzrZ7WbfEAQLotSQ9lqXeuavSEl8+
         OF26nFjT2MJRyiUq3xMQRGSz6l84Tg1Qh2jERLvF1J8HadIaYPTNBy3qGl3E74FC+vaE
         lIWPu29Mq4IXe5Rve9Q3HvUGWYcZkXMeBSs5hTupbI4BSFlh2FdL0bzWeWqLvLTZtiuG
         c1n1dwpngwMQcq23fRoFB+UorzZ9Kmded0+RShvlXP2kymW0QjUhxaVL7aPX6P2Df2/X
         03jg==
X-Gm-Message-State: AOJu0YzIwMz2PhOXSL+wmB7ekuBZncz2IIB3XQxhy6Lj2Tk4nKft4TjV
	T/a14Fz/gZIL36Kuua0uHdxMnv1g3VO7fAS83WLXcbFY8Pk7teLyxTCz1cgnecEk
X-Gm-Gg: ASbGnctmMjW6X0KSheC9KFxNrogUq4KOdR+f0ly6C5q8r9MGnxtN1/HrjJlp7BqfAuU
	q2r6/RQzQtSycMrQ7YcZhRjSnfeJmwR2ZXiZl+3PQIhujxE4d+BaV60jhjAPEeOBeg3APs9nNd0
	0thKUfsQAH4wNOfNcveUCP6RM8qKoB2oOU7RRWgRr+60a1bDZYJClVRst8CntrXMxrzb5gHvi7P
	QY8uCFEXG1tPnNQDIzbqir3SVCh/nfZTAwM6m7NRjHrhbmDdmWZ4FT4Du/m4k7rOyNfBKhccH/0
	Qia81gmK3J356t3Tyyk4QRGBfvNrCpDe0IXtQhwrtXvWvZNMW++yqPy653WPigVgNYiTFEfkfwk
	Z54iLsr20qTzSUvevoQnjHcEXj/71cCFJRzded/3lOdmV92Wap+PIoWUgbHpIX8uzj2RIdLbKkH
	fLNaBr0XQ8EC5oZdsHlW0rrC3lLGSi3ZeJF0C4sSE4YJQqkXy0OffpmFU=
X-Google-Smtp-Source: AGHT+IFHNjI9V1kRigbh1MkfOb7gqWwail5zhwDyOSBtFsaSreRWO+9bkzjxqfDWLhWRJHVkHvvzqQ==
X-Received: by 2002:a17:907:7287:b0:b73:9fea:331c with SMTP id a640c23a62f3a-b767170aec0mr1300485066b.47.1763987667058;
        Mon, 24 Nov 2025 04:34:27 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 17/19] xen/riscv: implement mfn_valid() and page reference, ownership handling helpers
Date: Mon, 24 Nov 2025 13:33:50 +0100
Message-ID: <00e300afe000fc123582e7c124971fe7bae9fc86.1763986955.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <cover.1763986955.git.oleksii.kurochko@gmail.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement the mfn_valid() macro to verify whether a given MFN is valid by
checking that it falls within the range [start_page, max_page).
These bounds are initialized based on the start and end addresses of RAM.

As part of this patch, start_page is introduced and initialized with the
PFN of the first RAM page.
Also, initialize pdx_group_valid() by calling set_pdx_range() when
memory banks are being mapped.

Also, after providing a non-stub implementation of the mfn_valid() macro,
the following compilation errors started to occur:
  riscv64-linux-gnu-ld: prelink.o: in function `alloc_heap_pages':
  /build/xen/common/page_alloc.c:1054: undefined reference to `page_is_offlinable'
  riscv64-linux-gnu-ld: /build/xen/common/page_alloc.c:1035: undefined reference to `page_is_offlinable'
  riscv64-linux-gnu-ld: prelink.o: in function `reserve_offlined_page':
  /build/xen/common/page_alloc.c:1151: undefined reference to `page_is_offlinable'
  riscv64-linux-gnu-ld: ./.xen-syms.0: hidden symbol `page_is_offlinable' isn't defined
  riscv64-linux-gnu-ld: final link failed: bad value
  make[2]: *** [arch/riscv/Makefile:28: xen-syms] Error 1

To resolve these errors, the following functions have also been introduced,
based on their Arm counterparts:
- page_get_owner_and_reference() and its variant to safely acquire a
  reference to a page and retrieve its owner.
- Implement page_is_offlinable() to return false for RISC-V.

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:
- Move declaration/defintion of page_is_offlinale() before put_page() to have
  get_ and put_ functions together.
- Correct code style of do-while loop.
- Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in V4:
 - Rebase the patch on top of patch series "[PATCH v2 0/2] constrain page_is_ram_type() to x86".
 - Add implementation of page_is_offlinable() instead of page_is_ram().
 - Update the commit message.
---
Changes in V3:
 - Update defintion of mfn_valid().
 - Use __ro_after_init for variable start_page.
 - Drop ASSERT_UNREACHABLE() in page_get_owner_and_nr_reference().
 - Update the comment inside do/while in page_get_owner_and_nr_reference().
 - Define _PGC_static and drop "#ifdef CONFIG_STATIC_MEMORY" in put_page_nr().
 - Initialize pdx_group_valid() by calling set_pdx_range() when memory banks are mapped.
 - Drop page_get_owner_and_nr_reference() and implement page_get_owner_and_reference()
   without reusing of a page_get_owner_and_nr_reference() to avoid potential dead code.
 - Move defintion of get_page() to "xen/riscv: add support of page lookup by GFN", where
   it is really used.
---
Changes in V2:
 - New patch.
---

 xen/arch/riscv/include/asm/mm.h |  9 +++++++--
 xen/arch/riscv/mm.c             | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 39 insertions(+), 2 deletions(-)

diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 0503c92e6c..1b16809749 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -5,6 +5,7 @@
 
 #include <public/xen.h>
 #include <xen/bug.h>
+#include <xen/compiler.h>
 #include <xen/const.h>
 #include <xen/mm-frame.h>
 #include <xen/pdx.h>
@@ -300,8 +301,12 @@ static inline bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
 #define page_get_owner(p)    (p)->v.inuse.domain
 #define page_set_owner(p, d) ((p)->v.inuse.domain = (d))
 
-/* TODO: implement */
-#define mfn_valid(mfn) ({ (void)(mfn); 0; })
+extern unsigned long start_page;
+
+#define mfn_valid(mfn) ({                                               \
+    unsigned long tmp_mfn = mfn_x(mfn);                                 \
+    likely((tmp_mfn >= start_page)) && likely(__mfn_valid(tmp_mfn));    \
+})
 
 #define domain_set_alloc_bitsize(d) ((void)(d))
 #define domain_clamp_alloc_bitsize(d, b) ((void)(d), (b))
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index 2e42293986..e25f995b72 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -521,6 +521,8 @@ static void __init setup_directmap_mappings(unsigned long base_mfn,
 #error setup_{directmap,frametable}_mapping() should be implemented for RV_32
 #endif
 
+unsigned long __ro_after_init start_page;
+
 /*
  * Setup memory management
  *
@@ -570,9 +572,13 @@ void __init setup_mm(void)
         ram_end = max(ram_end, bank_end);
 
         setup_directmap_mappings(PFN_DOWN(bank_start), PFN_DOWN(bank_size));
+
+        set_pdx_range(paddr_to_pfn(bank_start), paddr_to_pfn(bank_end));
     }
 
     setup_frametable_mappings(ram_start, ram_end);
+
+    start_page = PFN_DOWN(ram_start);
     max_page = PFN_DOWN(ram_end);
 }
 
@@ -623,6 +629,11 @@ void flush_page_to_ram(unsigned long mfn, bool sync_icache)
         invalidate_icache();
 }
 
+bool page_is_offlinable(mfn_t mfn)
+{
+    return false;
+}
+
 void put_page(struct page_info *page)
 {
     unsigned long nx, x, y = page->count_info;
@@ -641,3 +652,24 @@ void put_page(struct page_info *page)
             free_domheap_page(page);
     }
 }
+
+struct domain *page_get_owner_and_reference(struct page_info *page)
+{
+    unsigned long x, y = page->count_info;
+    struct domain *owner;
+
+    do {
+        x = y;
+        /*
+         * Count ==  0: Page is not allocated, so we cannot take a reference.
+         * Count == -1: Reference count would wrap, which is invalid.
+         */
+        if ( unlikely(((x + 1) & PGC_count_mask) <= 1) )
+            return NULL;
+    } while ( (y = cmpxchg(&page->count_info, x, x + 1)) != x );
+
+    owner = page_get_owner(page);
+    ASSERT(owner);
+
+    return owner;
+}
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:46:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:46:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170786.1495845 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVxE-0007JB-W7; Mon, 24 Nov 2025 12:46:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170786.1495845; Mon, 24 Nov 2025 12:46:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVxE-0007J2-TA; Mon, 24 Nov 2025 12:46:04 +0000
Received: by outflank-mailman (input) for mailman id 1170786;
 Mon, 24 Nov 2025 12:46: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=Sr25=6A=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vNVm3-0001zv-Sh
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:34:32 +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 eb6e93d1-c931-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:34:29 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-64166a57f3bso6432518a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:34:28 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654cf0435sm1285238866b.4.2025.11.24.04.34.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 04: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: eb6e93d1-c931-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763987668; x=1764592468; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1tf5y07G66yfKIys8t+ppjceci1h5NAJ62qn07uM+gc=;
        b=htyE3W/mxxG+V91RGAZfNlN+3XdbN2Mo8j7Vd5P1TQTgQaoPXzAA/B4sKDzdEJJw2a
         aM3sdONAOk9t0IMvK+9vwzFAAWIGyBYkhCiesFZy6zYgWscTUQqjkPO6o9uDogY6lkmt
         A29vxaL2ALu7WBpxoLaenpB8ECMkFAX46aj6uByw8vapl5beM5eGZodXQTqpXqEfFM30
         F0gfeEJVQdoxnj+BoQm/JujhBpJRdZrHzAp5w8KZPQmpSanIlEUyXzPzSJjJoY+/3868
         +KpLaEdnb+MD+LSvldx9yO2to5WIVvtbLdRR8B00iuVvfdzMyR/6v6P/u0IRxQlmDuH8
         D0eg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763987668; x=1764592468;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=1tf5y07G66yfKIys8t+ppjceci1h5NAJ62qn07uM+gc=;
        b=f2Az7y2oVUFeLMyK2y5g+jhI5foJt23Nur7qEWCA7rA8evxbZAPwDXtN2HBPZ6IrE2
         6Brt/E81SgAWhI6uO5dufJ2jTbQf83rRm6ChoNOwXOXxY+RAEjAzmcVeKlJS7oQd0LiB
         JZtY7btb0rwohyPtGMJNEv74sexfknkPlq+4Eombs9Hu5Xhxy2nxQwRARVfZPfOJv5Bg
         EqwLToX+EdQODb7Rf0QYb4MnpzvLFekaO9BC6STTLvKjjaCxeEKAnc7CtCIgz56x/DXR
         v0LnljwS2GBderzWGjmjQnMtpQKM0ClukPNPmV8bp6caIDOiQECp7enJMCE979vACCDN
         ReRA==
X-Gm-Message-State: AOJu0Yx6IvyHL1+F5kGCAxe+FKhpi9pWtuWfjVSK7DxwHqLk7Ld2T17L
	i7ClVumkS9sON9NylURKPipzlmgNajs0HNzKyF8ZqzB7k2O0L+trC0Tq7JdMPTWa
X-Gm-Gg: ASbGncvnKGvk85Rw4H53Q+4X8xaiVz5RlIx0kebiwfs92aN5CmQiqz8m+Cu+u73roNm
	I4xBcH1YOV3JOw+LlW3BxqYHDW5vB3SsQr9tHrtqqgvRwaf7UpWlWCEWkd2g2Gs00YmyG9lVV8e
	SxyLDPjmc6ti9dDJKKSc9+wmUNGQzvOCi2zPgQM5JOuPewtlTu57M4xD9igzWacWh/fGZOjQePL
	i5QtbTP5DK10abpW5BEP57D3vCidloCVxAc9s9DwDwNY9rtIYlDDKJzF388TrjdxliPSABtQBer
	8XUnGgdGw38qoEo4G0dbjXVYkSU+c0kUt7oKlDGLf2VmMqhBrml61AzbVKxo/ZPIpMGJBCiHt8i
	cZEpd43ZwpTi//QFLIDwLPKJ2NiLLdDuAnsBrS64jZ7fpf0f+n5nGRGcKuoTYJ8lhcusi2I99Jp
	wjiRy+5/QeFCrwNW0sEZ9M4kO7Sr/2BLwAXvuwOU6wT+G502JKUUXDIsUhtzAiJJ1T8g==
X-Google-Smtp-Source: AGHT+IFf5uJB9I56FaCOR4OJFITJ+cq2dcNL5nOk1Op21qlMLVT2d/W8fMntpHHZJ+nDgZ++iGq61A==
X-Received: by 2002:a17:907:d8f:b0:b70:ac7a:2a93 with SMTP id a640c23a62f3a-b7671865badmr1272975466b.43.1763987668044;
        Mon, 24 Nov 2025 04:34:28 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 18/19] xen/riscv: add support of page lookup by GFN
Date: Mon, 24 Nov 2025 13:33:51 +0100
Message-ID: <48a58cde3de6a459885465c6d29d00d046ae4a37.1763986955.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <cover.1763986955.git.oleksii.kurochko@gmail.com>
References: <cover.1763986955.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce helper functions for safely querying the P2M (physical-to-machine)
mapping:
 - add p2m_read_lock(), p2m_read_unlock(), and p2m_is_locked() for managing
   P2M lock state.
 - Implement p2m_get_entry() to retrieve mapping details for a given GFN,
   including MFN, page order, and validity.
 - Introduce p2m_get_page_from_gfn() to convert a GFN into a page_info
   pointer, acquiring a reference to the page if valid.
 - Introduce get_page().

Implementations are based on Arm's functions with some minor modifications:
- p2m_get_entry():
  - Reverse traversal of page tables, as RISC-V uses the opposite level
    numbering compared to Arm.
  - Removed the return of p2m_access_t from p2m_get_entry() since
    mem_access_settings is not introduced for RISC-V.
  - Updated BUILD_BUG_ON() to check using the level 0 mask, which corresponds
    to Arm's THIRD_MASK.
  - Replaced open-coded bit shifts with the BIT() macro.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V6:
 - Move if-condition with initialization up in p2m_get_page_from_gfn().
 - Pass p2mt to the call of p2m_get_entry() inside p2m_get_page_from_gfn()
   to avoid an issue when 't' is passed NULL. With p2mt passed to p2m_get_entry()
   we will recieve a proper type and so the rest of the function will able to
   continue use a proper type.
- In check_outside_boundary() in the case when is_lower == true fill the bottom
  bits of masked_gfn with all 1s.
- Update code of check_outside_boundary() to return proper level in the case when
  `level` is equal to 0.
- Add ASSERT(p2m) in check_outside_boundary() to be sure that p2m isn't NULL as
  P2M_LEVEL_MASK() depends on p2m value.
---
Changes in V5:
 - Use introduced in earlier patches P2M_DECLARE_OFFSETS() instead of
   DECLARE_OFFSETS().
 - Drop blank line before check_outside_boundary().
 - Use more readable version of if statements inside check_outside_boundary().
 - Accumulate mask in check_outside_boundary() instead of re-writing it for
   each page table level to have correct gfns for comparison.
 - Set argument `t` of p2m_get_entry() to p2m_invalid by default.
 - Drop checking of (rc == P2M_TABLE_MAP_NOMEM ) when p2m_next_level(...,false,...)
   is called.
 - Add ASSERT(mfn & (BIT(P2M_LEVEL_ORDER(level), UL) - 1)); in p2m_get_entry()
   to be sure that recieved `mfn` has cleared lowest bits.
 - Drop `valid` argument from p2m_get_entry(), it is not needed anymore.
 - Drop p2m_lookup(), use p2m_get_entry() explicitly inside p2m_get_page_from_gfn().
 - Update the commit message.
---
Changes in V4:
 - Update prototype of p2m_is_locked() to return bool and accept pointer-to-const.
 - Correct the comment above p2m_get_entry().
 - Drop the check "BUILD_BUG_ON(XEN_PT_LEVEL_MAP_MASK(0) != PAGE_MASK);" inside
   p2m_get_entry() as it is stale and it was needed to sure that 4k page(s) are
   used on L3 (in Arm terms) what is true for RISC-V. (if not special extension
   are used). It was another reason for Arm to have it (and I copied it to RISC-V),
   but it isn't true for RISC-V. (some details could be found in response to the
   patch).
 - Style fixes.
 - Add explanatory comment what the loop inside "gfn is higher then the highest
   p2m mapping" does. Move this loop to separate function check_outside_boundary()
   to cover both boundaries (lower_mapped_gfn and max_mapped_gfn).
 - There is not need to allocate a page table as it is expected that
   p2m_get_entry() normally would be called after a corresponding p2m_set_entry()
   was called. So change 'true' to 'false' in a page table walking loop inside
   p2m_get_entry().
 - Correct handling of p2m_is_foreign case inside p2m_get_page_from_gfn().
 - Introduce and use P2M_LEVEL_MASK instead of XEN_PT_LEVEL_MASK as it isn't take
   into account two extra bits for root table in case of P2M.
 - Drop stale item from "change in v3" - Add is_p2m_foreign() macro and connected stuff.
 - Add p2m_read_(un)lock().
---
Changes in V3:
 - Change struct domain *d argument of p2m_get_page_from_gfn() to
   struct p2m_domain.
 - Update the comment above p2m_get_entry().
 - s/_t/p2mt for local variable in p2m_get_entry().
 - Drop local variable addr in p2m_get_entry() and use gfn_to_gaddr(gfn)
   to define offsets array.
 - Code style fixes.
 - Update a check of rc code from p2m_next_level() in p2m_get_entry()
   and drop "else" case.
 - Do not call p2m_get_type() if p2m_get_entry()'s t argument is NULL.
 - Use struct p2m_domain instead of struct domain for p2m_lookup() and
   p2m_get_page_from_gfn().
 - Move defintion of get_page() from "xen/riscv: implement mfn_valid() and page reference, ownership handling helpers"
---
Changes in V2:
 - New patch.
---

 xen/arch/riscv/include/asm/p2m.h |  21 ++++
 xen/arch/riscv/mm.c              |  13 +++
 xen/arch/riscv/p2m.c             | 183 +++++++++++++++++++++++++++++++
 3 files changed, 217 insertions(+)

diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index b48693a2b4..f63b5dec99 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -41,6 +41,9 @@
 
 #define P2M_GFN_LEVEL_SHIFT(lvl) (P2M_LEVEL_ORDER(lvl) + PAGE_SHIFT)
 
+#define P2M_LEVEL_MASK(p2m, lvl) \
+    (P2M_TABLE_OFFSET(p2m, lvl) << P2M_GFN_LEVEL_SHIFT(lvl))
+
 #define paddr_bits PADDR_BITS
 
 /* Get host p2m table */
@@ -234,6 +237,24 @@ static inline bool p2m_is_write_locked(struct p2m_domain *p2m)
 
 unsigned long construct_hgatp(const struct p2m_domain *p2m, uint16_t vmid);
 
+static inline void p2m_read_lock(struct p2m_domain *p2m)
+{
+    read_lock(&p2m->lock);
+}
+
+static inline void p2m_read_unlock(struct p2m_domain *p2m)
+{
+    read_unlock(&p2m->lock);
+}
+
+static inline bool p2m_is_locked(const struct p2m_domain *p2m)
+{
+    return rw_is_locked(&p2m->lock);
+}
+
+struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
+                                        p2m_type_t *t);
+
 #endif /* ASM__RISCV__P2M_H */
 
 /*
diff --git a/xen/arch/riscv/mm.c b/xen/arch/riscv/mm.c
index e25f995b72..e9ce182d06 100644
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -673,3 +673,16 @@ struct domain *page_get_owner_and_reference(struct page_info *page)
 
     return owner;
 }
+
+bool get_page(struct page_info *page, const struct domain *domain)
+{
+    const struct domain *owner = page_get_owner_and_reference(page);
+
+    if ( likely(owner == domain) )
+        return true;
+
+    if ( owner != NULL )
+        put_page(page);
+
+    return false;
+}
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index b29c0a220a..c356200fc6 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -1061,3 +1061,186 @@ int map_regions_p2mt(struct domain *d,
 
     return rc;
 }
+
+/*
+ * p2m_get_entry() should always return the correct order value, even if an
+ * entry is not present (i.e. the GFN is outside the range):
+ *   [p2m->lowest_mapped_gfn, p2m->max_mapped_gfn]    (1)
+ *
+ * This ensures that callers of p2m_get_entry() can determine what range of
+ * address space would be altered by a corresponding p2m_set_entry().
+ * Also, it would help to avoid costly page walks for GFNs outside range (1).
+ *
+ * Therefore, this function returns true for GFNs outside range (1), and in
+ * that case the corresponding level is returned via the level_out argument.
+ * Otherwise, it returns false and p2m_get_entry() performs a page walk to
+ * find the proper entry.
+ */
+static bool check_outside_boundary(const struct p2m_domain *p2m, gfn_t gfn,
+                                   gfn_t boundary, bool is_lower,
+                                   unsigned int *level_out)
+{
+    unsigned int level = P2M_ROOT_LEVEL(p2m);
+    bool ret = false;
+
+    ASSERT(p2m);
+
+    if ( is_lower ? gfn_x(gfn) < gfn_x(boundary)
+                  : gfn_x(gfn) > gfn_x(boundary) )
+    {
+        unsigned long mask = 0;
+
+        for ( ; level; level-- )
+        {
+            unsigned long masked_gfn;
+
+            mask |= PFN_DOWN(P2M_LEVEL_MASK(p2m, level));
+            masked_gfn = gfn_x(gfn) & mask;
+            masked_gfn |= (is_lower * (BIT(P2M_LEVEL_ORDER(level), UL) - 1));
+
+            if ( is_lower ? masked_gfn < gfn_x(boundary)
+                          : masked_gfn > gfn_x(boundary) )
+                break;
+        }
+
+        ret = true;
+    }
+
+    if ( level_out )
+        *level_out = level;
+
+    return ret;
+}
+
+/*
+ * Get the details of a given gfn.
+ *
+ * If the entry is present, the associated MFN will be returned and the
+ * p2m type of the mapping.
+ * The page_order will correspond to the order of the mapping in the page
+ * table (i.e it could be a superpage).
+ *
+ * If the entry is not present, INVALID_MFN will be returned and the
+ * page_order will be set according to the order of the invalid range.
+ */
+static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
+                           p2m_type_t *t,
+                           unsigned int *page_order)
+{
+    unsigned int level = 0;
+    pte_t entry, *table;
+    int rc;
+    mfn_t mfn = INVALID_MFN;
+    P2M_BUILD_LEVEL_OFFSETS(p2m, offsets, gfn_to_gaddr(gfn));
+
+    ASSERT(p2m_is_locked(p2m));
+
+    if ( t )
+        *t = p2m_invalid;
+
+    if ( check_outside_boundary(p2m, gfn, p2m->lowest_mapped_gfn, true,
+                                &level) )
+        goto out;
+
+    if ( check_outside_boundary(p2m, gfn, p2m->max_mapped_gfn, false, &level) )
+        goto out;
+
+    table = p2m_get_root_pointer(p2m, gfn);
+
+    /*
+     * The table should always be non-NULL because the gfn is below
+     * p2m->max_mapped_gfn and the root table pages are always present.
+     */
+    if ( !table )
+    {
+        ASSERT_UNREACHABLE();
+        level = P2M_ROOT_LEVEL(p2m);
+        goto out;
+    }
+
+    for ( level = P2M_ROOT_LEVEL(p2m); level; level-- )
+    {
+        rc = p2m_next_level(p2m, false, level, &table, offsets[level]);
+        if ( rc == P2M_TABLE_MAP_NONE )
+            goto out_unmap;
+
+        if ( rc != P2M_TABLE_NORMAL )
+            break;
+    }
+
+    entry = table[offsets[level]];
+
+    if ( pte_is_valid(entry) )
+    {
+        if ( t )
+            *t = p2m_get_type(entry);
+
+        mfn = pte_get_mfn(entry);
+
+        ASSERT(!(mfn_x(mfn) & (BIT(P2M_LEVEL_ORDER(level), UL) - 1)));
+
+        /*
+         * The entry may point to a superpage. Find the MFN associated
+         * to the GFN.
+         */
+        mfn = mfn_add(mfn,
+                      gfn_x(gfn) & (BIT(P2M_LEVEL_ORDER(level), UL) - 1));
+    }
+
+ out_unmap:
+    unmap_domain_page(table);
+
+ out:
+    if ( page_order )
+        *page_order = P2M_LEVEL_ORDER(level);
+
+    return mfn;
+}
+
+struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
+                                        p2m_type_t *t)
+{
+    struct page_info *page;
+    p2m_type_t p2mt;
+    mfn_t mfn;
+
+    p2m_read_lock(p2m);
+    mfn = p2m_get_entry(p2m, gfn, &p2mt, NULL);
+
+    if ( t )
+        *t = p2mt;
+
+    if ( !mfn_valid(mfn) )
+    {
+        p2m_read_unlock(p2m);
+        return NULL;
+    }
+
+    page = mfn_to_page(mfn);
+
+    /*
+     * get_page won't work on foreign mapping because the page doesn't
+     * belong to the current domain.
+     */
+    if ( unlikely(p2m_is_foreign(p2mt)) )
+    {
+        const struct domain *fdom = page_get_owner_and_reference(page);
+
+        p2m_read_unlock(p2m);
+
+        if ( fdom )
+        {
+            if ( likely(fdom != p2m->domain) )
+                return page;
+
+            ASSERT_UNREACHABLE();
+            put_page(page);
+        }
+
+        return NULL;
+    }
+
+    p2m_read_unlock(p2m);
+
+    return get_page(page, p2m->domain) ? page : NULL;
+}
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:48:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:48:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170829.1495855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVzF-0000JS-FP; Mon, 24 Nov 2025 12:48:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170829.1495855; Mon, 24 Nov 2025 12:48:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNVzF-0000JL-Cm; Mon, 24 Nov 2025 12:48:09 +0000
Received: by outflank-mailman (input) for mailman id 1170829;
 Mon, 24 Nov 2025 12:48:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=H9wV=6A=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vNVzD-0000JF-Jb
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:48:07 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id d219ee48-c933-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:48: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 57038497;
 Mon, 24 Nov 2025 04:47:57 -0800 (PST)
Received: from [10.57.40.193] (unknown [10.57.40.193])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id AEF4F3F6A8;
 Mon, 24 Nov 2025 04:47: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: d219ee48-c933-11f0-9d18-b5c5bf9af7f9
Message-ID: <f36ebc15-c724-487a-8e4a-9ca95edc544a@arm.com>
Date: Mon, 24 Nov 2025 13:47:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 06/12] mm: introduce generic lazy_mmu helpers
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: Ryan Roberts <ryan.roberts@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-7-kevin.brodsky@arm.com>
 <71418b31-aedb-4600-9558-842515dd6c44@arm.com>
 <b44825dd-aef9-4d3e-91fd-a44122264c23@arm.com>
Content-Language: en-GB
In-Reply-To: <b44825dd-aef9-4d3e-91fd-a44122264c23@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10/11/2025 11:45, Kevin Brodsky wrote:
>>> diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
>>> index b8d37eb037fc..d9c8e94f140f 100644
>>> --- a/arch/arm64/mm/mmu.c
>>> +++ b/arch/arm64/mm/mmu.c
>>> @@ -731,7 +731,7 @@ int split_kernel_leaf_mapping(unsigned long start, unsigned long end)
>>>  		return -EINVAL;
>>>  
>>>  	mutex_lock(&pgtable_split_lock);
>>> -	arch_enter_lazy_mmu_mode();
>>> +	lazy_mmu_mode_enable();
>>>  
>>>  	/*
>>>  	 * The split_kernel_leaf_mapping_locked() may sleep, it is not a
>> This is a bit unfortunate, IMHO. The rest of this comment explains that although
>> you're not supposed to sleep inside lazy mmu mode, it's fine for arm64's
>> implementation. But we are no longer calling arm64's implementation; we are
>> calling a generic function, which does who knows what.
>>
>> I think it all still works, but we are no longer containing our assumptions in
>> arm64 code. We are relying on implementation details of generic code.
> I see your point. The change itself is still correct (and required
> considering patch 8), but maybe the documentation of the generic
> interface should be clarified to guarantee that the generic layer can
> itself cope with sleeping - without any guarantee regarding the
> behaviour of arch_*_lazy_mmu_mode.

Re-reading the existing comment in <linux/pgtable.h>, I think it already
makes clear that sleeping is not forbidden by design:

> Â * In the general case, no lock is guaranteed to be held between entry
> and exit
> Â * of the lazy mode. So the implementation must assume preemption may
> be enabled
> Â * and cpu migration is possible; it must take steps to be robust
> against this.

The arch implementation may disable preemption, but arm64 code can rely
on the arm64 implementation allowing sleeping.

- Kevin



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:54:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:54:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170843.1495866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNW5g-0002ZE-5i; Mon, 24 Nov 2025 12:54:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170843.1495866; Mon, 24 Nov 2025 12:54:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNW5g-0002Z7-1B; Mon, 24 Nov 2025 12:54:48 +0000
Received: by outflank-mailman (input) for mailman id 1170843;
 Mon, 24 Nov 2025 12:54:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNW5e-0002Z1-Py
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:54:46 +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 c07e6252-c934-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:54:45 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-47755de027eso22416835e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:54: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-42cb7f3635bsm28669765f8f.17.2025.11.24.04.54.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04:54: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: c07e6252-c934-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763988885; x=1764593685; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=U6n+P4Ju046QP9wktWA/2tj+Yp3pglOFZjgJrArj4Lk=;
        b=LvF+uDwhiVPM4JiHqmnQvlaspJyisya1Tceho4cVb2yf1pPTqAfWSz57SrZCRXTvKP
         lyyf4SqFHfDPa+0fhM2aYabBSP/gvwy57669C6Lq7cR8XrUcVlBeoNVFTKslJWvcvOFb
         EeOlwm9krkSGZM04X9T8WiSR+2D2wPvfZNQndoqonWZVN0/zMp7WqbWZYKyuiSq0dZV9
         dTRxMZdGMwZ9mhCm2MUPkyn4aloGTsgbm2jKhvjhnCGjStYQijjyHvP/gDVPgyAH5vDD
         ErH2YfkX8cwfpk51KwTNfbrVzKBeAFJ4FbwzuD8OZt4EEyHwoi/hHnntYZ40joVDCK/A
         /edA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763988885; x=1764593685;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=U6n+P4Ju046QP9wktWA/2tj+Yp3pglOFZjgJrArj4Lk=;
        b=IRbwBGOiuO2+YzX050K8uvg7zC0/FG5r0D13f+vwzollfjS/3XD8l3k7iUX6buDcCr
         Y3YO0tAo9MQlOGHZgTRxkyc5lnlJrJ2gEKY400EHURddD5cyHNGo3dBIAzN7BRDldi7h
         voy+HalSoj0U37yUBGcbO3tj2zT/NpgbhlmXTrwLInQjVlaoZLIZfeawY2k16b2vWpoy
         4czR56NS+cVqoGgOc6y22aD1pIxBm7gnGLa+fN4IznfsdDlkwyTddYqj0MqAQJiSePAq
         C6bSfJkTgmOMyErypd22FeyrvofjFLkCSFNpk1/cnJpFGhpWFPMh6aW8hPrcRB6j61fG
         VfNA==
X-Forwarded-Encrypted: i=1; AJvYcCV2UVnfiSYsNnSz5Vjwxkrmoi/qIk7iJxyq5DEmcV1Z39bFkea5v5chzyLw1vVZDoyZiitNae4dI0s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxKrfyCfPUKnlTGF4Cd8vZg1x6l+9AMTBx1LENsfd++8+BTMs2L
	Xn7dKKs7ZPyxOHZ/Yc/l0Jpisj6PblPQaWv9t5Mk1VS0zq189MBH+xbvCtfCKOiwcg==
X-Gm-Gg: ASbGncuOH+Xe5AnL2KBEQyYT+t131vxMeQFB31nESICuCrGstk9mPH56UuAqibonsTE
	OWmNX3oa0IP6TWcsqD1VN/wdAGccp3cvZHZjpk9wvCQ4PCl/3NahpZA+TZ8uxLK9/1Lwwn5VjeV
	21qs/HmU3zWneLCJm6qJ2M/TFeaA0MslevAWfnGL5k240cqj8GFE9P38taOO6+RMUJUF9eiX7uf
	eJhL7IEdsP4CA7uYthpwHIVnvC1eHV/vCMhHu35fqIQnt6qpVMWKovNOJT7+0aNS5pYdtwdLWt3
	veMPeNrtmG9qVyuHmVGG2L/GTq2i9bNxunQEKcqHYoAn5fVmVj+fLCSChSkoEeZM64KMJZCEbuY
	LoumBJOatGMrxtWEaLf9l9vAWcIK0y/tz3TE1ldoj8L7Z7RmuY5S4Qefi7xSHvp9vDZ2pzo0Y0c
	FWrOaDvWigFxEIieIIhKX7EBdrLutf6mdvnuEMQQaquIqgEDXaVCG5QzS2MyKj010JJcjIBsBEX
	bk=
X-Google-Smtp-Source: AGHT+IH98oz9ihGv5MTZmoNh3ue+YYeuK4xkI3WoQNVGTRlR0+KgM/BWkJdSbLgHJoyjlbrC0AuZkQ==
X-Received: by 2002:a05:6000:40cc:b0:42b:4267:83e9 with SMTP id ffacd0b85a97d-42cc1ac91e1mr12152024f8f.2.1763988884747;
        Mon, 24 Nov 2025 04:54:44 -0800 (PST)
Message-ID: <692056b6-889e-4b75-a3ea-be748269cc5c@suse.com>
Date: Mon, 24 Nov 2025 13:54:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 11/12] x86/irq: convert irq_desc old_cpu_mask field to
 integer
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120095826.25782-1-roger.pau@citrix.com>
 <20251120095826.25782-6-roger.pau@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251120095826.25782-6-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.11.2025 10:58, Roger Pau Monne wrote:
> --- a/xen/arch/x86/irq.c
> +++ b/xen/arch/x86/irq.c
> @@ -115,7 +115,7 @@ static void release_old_vec(struct irq_desc *desc)
>      unsigned int vector = desc->arch.old_vector;
>  
>      desc->arch.old_vector = IRQ_VECTOR_UNASSIGNED;
> -    cpumask_clear(desc->arch.old_cpu_mask);
> +    desc->arch.old_cpu = CPU_INVALID;

With this, ...

> @@ -221,10 +220,10 @@ static void _clear_irq_vector(struct irq_desc *desc)
>      {
>          /* If we were in motion, also clear desc->arch.old_vector */
>          old_vector = desc->arch.old_vector;
> -        cpumask_and(tmp_mask, desc->arch.old_cpu_mask, &cpu_online_map);
>  
> -        for_each_cpu(cpu, tmp_mask)
> +        if ( cpu_online(desc->arch.old_cpu) )

... you pretty certainly want to guard against the value making it here (even
if just accidentally), and thus triggering the assertion in cpumask_check().
(Again possibly elsewhere as well.)

> @@ -581,16 +575,16 @@ static int _assign_irq_vector(struct irq_desc *desc, const cpumask_t *mask)
>               * in the 'mask' parameter.
>               */
>              desc->arch.vector = desc->arch.old_vector;
> -            desc->arch.cpu = cpumask_any(desc->arch.old_cpu_mask);
> +            desc->arch.cpu = desc->arch.old_cpu;
>  
>              /* Undo any possibly done cleanup. */
>              per_cpu(vector_irq, desc->arch.cpu)[desc->arch.vector] = irq;
>  
>              /* Cancel the pending move and release the current vector. */
>              desc->arch.old_vector = IRQ_VECTOR_UNASSIGNED;
> -            cpumask_clear(desc->arch.old_cpu_mask);
> +            desc->arch.old_cpu = CPU_INVALID;
>              desc->arch.move_in_progress = 0;
> -            desc->arch.move_cleanup_count = 0;
> +            desc->arch.move_cleanup =  false;

Nit: Excess blank.

> @@ -2003,7 +1994,7 @@ void do_IRQ(struct cpu_user_regs *regs)
>                             ~irq, CPUMASK_PR(desc->affinity),
>                             /* TODO: handle hipri vectors nicely. */
>                             CPUMASK_PR(get_cpumask(desc->arch.cpu)),
> -                           CPUMASK_PR(desc->arch.old_cpu_mask),
> +                           CPUMASK_PR(get_cpumask(desc->arch.old_cpu)),

I should have asked on the previous patch already: Does it actually make sense
to still print these in mask form? Without that you wouldn't need get_cpumask(),
and as a result you also wouldn't need cpumask_none.

> @@ -2685,12 +2664,9 @@ void fixup_irqs(void)
>               * per-cpu vector table will no longer have ->arch.old_vector
>               * setup, and hence ->arch.old_cpu_mask would be stale.
>               */
> -            cpumask_clear_cpu(cpu, desc->arch.old_cpu_mask);
> -            if ( cpumask_empty(desc->arch.old_cpu_mask) )
> -            {
> -                desc->arch.move_in_progress = 0;
> -                release_old_vec(desc);
> -            }
> +            desc->arch.old_cpu = CPU_INVALID;
> +            desc->arch.move_in_progress = 0;

As you touch the line anyway, switch to using "false"?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:57:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:57:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170855.1495875 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNW8F-0003iR-GF; Mon, 24 Nov 2025 12:57:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170855.1495875; Mon, 24 Nov 2025 12:57:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNW8F-0003iK-DH; Mon, 24 Nov 2025 12:57:27 +0000
Received: by outflank-mailman (input) for mailman id 1170855;
 Mon, 24 Nov 2025 12:57: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNW8F-0003iE-2W
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:57: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 1f80522c-c935-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 13:57:24 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-42b387483bbso3165119f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:57: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
 ffacd0b85a97d-42cb7fa3592sm26967062f8f.21.2025.11.24.04.57.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04:57: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: 1f80522c-c935-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763989044; x=1764593844; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=coIS1yurgMPk61iUM6HiDX3be+bFx+z8d5FqBQaYy8Q=;
        b=UBAOrdJhR/H9zF5x+R2Og4cIP5MA9YiK9UDZ1y/BmeDGkUAvckbn2vZRApmgwLwztA
         QsH8mPqOfKd/zYWW4d2NysubeZXVdoxp3V/kmc0dg/wCe+PzDtoOHpI38L4ANhSu69I3
         jLO01TToAqjSTJwPTu4Uv3w+9wM0yp3RjGRn4iotKTcmcROYccp0Jhu1Mcg114a/CUTa
         CI+sCxLt5qT+VMPyO2JdeTLJRKHqUWKRBfRmMqMXa39i0bhnvu2rGpHz4/4Y9MN1x6RF
         FQBF7ZXgFW61eXh2wL8L4KYVvh4gzPkdoiIPXCs4HJb/08oGwPvUMWk5eNBuXTtIYGGh
         D2MQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763989044; x=1764593844;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=coIS1yurgMPk61iUM6HiDX3be+bFx+z8d5FqBQaYy8Q=;
        b=Eh2EFnEF/MiaJwaxnf58nL8qipEFrUubV3aCqtMO1tg/NuTVl3d5sHeSAL+H0/y5fa
         Svp3SQzssMqSSKcEbGdhvCBir6gKwGkJSg3fjt2H7/byky+jmc/nBz7Q5AnW1tb7r3Pa
         dDgYCfa/9RoDQ8OdURtkrBvDeq/NPQdYv2QsuOUW31AskLB+JEVgyLrotMzjHmEPmRBr
         d9eczzi0hloVFE3+0x2OctyTBFyu3jl1N5Y/Sod0/ZgKqBFG35wZqXnmzUoplsU//o1+
         R4iZP0aJZEbSzc5q6JsxcpbbeUWwifbvw/lOR9LIuwW4agIo7P6B6oCUGPDDDaovj80a
         7J2A==
X-Forwarded-Encrypted: i=1; AJvYcCWN8Ev5oa/R/bK+KyPld+PeZGRRjkaP6zWprPf0Pn9OZWOs1NDzhcl0Ti6+xmrRNUAc3DmhruNeV9M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwF6hM+iy+/KmmomyVQQH3u72KtcLSnVkNfALoZWs003JDU9rGY
	AxRw2EDJbuCDxc9VMtiODsPeOij9lZGy3P0Xp4W8RUeB5zxin6e+RCidu1jzuR4jEw==
X-Gm-Gg: ASbGncvPj5hHclxLWl2zX3JLuIn7CfqRfontkRDYlrQNVXi0qRjwNvV5L1uAOWrhCXV
	ai5SlauuoLXqeROVydqoABSDdxI9pB8U/9INN5cO9QLnHs19mqBZxNPFvxTJaD4nLqp8DjF6pNa
	DH61PG4CM3q4kA1hgHAarkABGThlcQXUxNJrpYjktlJc5Ij1jUtdbWkhr+bo+3uL9w1luWHXBm/
	uxgJz5W33SJwmwIAXsyyFnT+9Wro5xvv7t1arwrTnRygBmSqDMg4BrDC8+nu/urzxrtqUYdvgaL
	zR4GNWaIQPUsPc8Wbefi5JJ65Q2AbqnH3BmNiiZdo7ot8hSQnp4ui/ZwsM9NIX2WqJJReEPLiG9
	IujB+khZGy+lRzYPtzrWe9MZeJlHOF3HCzT23HzPBc3k9tXudSXaW/XzvfDQMEPtmMoB80Lbgn9
	sj7D+hJKn5xFEuAC5/Q4qte+Cj56a6c8JUIXB+9yxORz8YAnM8zIH+4gN9tYP+kRQkRHt3rvmxS
	n4=
X-Google-Smtp-Source: AGHT+IGLBIt+UcG6FsHTcKuAmeOKq2MtfE6ttCqPw3JxVlbp1GSvK0xwCTPwPcmrpPLPmrh/RZeNTg==
X-Received: by 2002:a05:6000:2387:b0:429:dc9a:ed35 with SMTP id ffacd0b85a97d-42cc1d3479cmr12245740f8f.43.1763989044248;
        Mon, 24 Nov 2025 04:57:24 -0800 (PST)
Message-ID: <b0c69f60-94da-4279-ad34-261c036fde7e@suse.com>
Date: Mon, 24 Nov 2025 13:57:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 12/12] x86/irq: convert irq_desc pending_mask field to
 integer
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20251120090637.25087-1-roger.pau@citrix.com>
 <20251120095826.25782-1-roger.pau@citrix.com>
 <20251120095826.25782-7-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: <20251120095826.25782-7-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.11.2025 10:58, Roger Pau Monne wrote:
> @@ -779,10 +775,10 @@ void move_masked_irq(struct irq_desc *desc)
>       *
>       * For correct operation this depends on the caller masking the irqs.
>       */
> -    if ( likely(cpumask_intersects(pending_mask, &cpu_online_map)) )
> -        desc->handler->set_affinity(desc, pending_mask);
> +    if ( likely(cpu_online(desc->arch.pending_cpu)) )

Same remark again regarding the guarding against hitting ...

> +        desc->handler->set_affinity(desc, cpumask_of(desc->arch.pending_cpu));
>  
> -    cpumask_clear(pending_mask);
> +    desc->arch.pending_cpu = CPU_INVALID;

... the value stored here.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:58:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:58:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170864.1495884 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNW9X-0004TF-PX; Mon, 24 Nov 2025 12:58:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170864.1495884; Mon, 24 Nov 2025 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 1vNW9X-0004T8-Mm; Mon, 24 Nov 2025 12:58:47 +0000
Received: by outflank-mailman (input) for mailman id 1170864;
 Mon, 24 Nov 2025 12: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNW9X-0004T2-1j
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:58:47 +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 4fd567f0-c935-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:58:46 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4779a637712so25723625e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:58: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-42cb7f3635bsm28688730f8f.17.2025.11.24.04.58.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04: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: 4fd567f0-c935-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763989125; x=1764593925; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7cecABuUD2NkM+81wicLsfO+Pa2O1CZyPkgdiqZp8Dc=;
        b=RjfMlpUFM4XE63W5Tm2bAAzT+lBUMaFJb1SRoPWyFzHZD0N38pWGPEkoZmLnaDfuok
         VnSJVNrd2SjoBKMM21b2pdaw52R4BGNwEz3RjrvnjVtUAJR8JdaMalB51ZX2DD6JyiLU
         vugi52U4GF1mTVEef+SUMiZRXW1XcWrh/BwCs+4Gj6ZPdREuoW/WBToBxt48HBb/0vxQ
         VFi35Ub8UT5tcVDUzsZ6TuRBEa6PgyYreAdBdFpJE6iR/brb9Z7HtwNWn3oguc35+vH6
         5yccCxjlhDuzZgKoK8RIkZMqAkatf8N3SN4DF0nUHwKeh4/138A47NXhhXIkga3IwqHj
         X4uw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763989125; x=1764593925;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7cecABuUD2NkM+81wicLsfO+Pa2O1CZyPkgdiqZp8Dc=;
        b=CNrIkFA/T1EfgaLzpqbFomITlZUWpEJjOfuZ3nwemfQjN2M/1LUJYRvu6Iu+X6b7as
         6kM8f6i2jt7gGGLulq4izONtAyeKdl0bsOD3xtZdM9ZOYpcvFGTipWc2d/Y1h2Z3KHJW
         BSRG/mIPeH/ngSBTC33Dk4UmW+HrnYsi1aStg3REsYEf9HIX8XU38AvkDHT1lOdHG+K2
         6PAJimZJ7L6Cgoay7OM2z2QN8etdvY39kzjfgVjcADfYjgy1WqxikyrANWq+MrcHPfhC
         Fg6sSpx4MDjP6KKUMX8hGuyBpuYWqsLmOobF7+pBsQ0ycI1jiFjFlr2h2dzlZYjma6KU
         Dlng==
X-Forwarded-Encrypted: i=1; AJvYcCUQkdHIlsdmZn0yhp7uNOpqIKyTYYJ0h+rwKis90rS/g7rrVXhykf3JuJanhsF1Cecwxclne6N9Zow=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxRAKBQXMXBCM9ZADMvMUZm6LB3a1ayFk0FNUkRu4GoA9wzKtiz
	ablr15qjvmy8i6wlNVnuze5x76FrzYkgoJC9dwIzk/CoYyzZCQmIyAINfhsbJfw3Ig==
X-Gm-Gg: ASbGncvJ4belFSwpS7nbEgJKvisRBQ39Adp4LmG3Ual6YVaIl+b27eU840YHDkrOJuI
	RpQWwrpWXW4ZWNL8Py6An+KqeEtYl40rfQIGn+8HkoScsncfUSoIRKlqNUwa41kvXbFvmoEjVWt
	pYSP7u2fgQlC8+oIkBuAbgcCydL260D61oGrBqnTmKPAMfE0V21n7X9AQWWeBwaEefeWODqhpzB
	b32e4IjHKvxishO50CU/C0qJZF+qle5O0iRbnAZmsQMzXWy+NmUO00uDdlQGesmJOQigscxHOlv
	jornWBE+M5XIWfTpzX6c3yTNRBdlEOs4nm4XyRKmBFbBSpVT6lsUyEpSbueVuvOFKH5k98p9jx9
	lF/gHcocbTFVY8CibgQJwch2HwFo/VXHgs7TqkX59dD1kVSrXFs7DaFcGwGNSldeS+Ico/HpzNz
	3GZacuIRezWGE5+bWzPD/W/lZbprzWypNGyD8au+a4jl6uke6QdHA9Myq6dATs5MjoWwDNiwgHY
	Jc=
X-Google-Smtp-Source: AGHT+IEVFFXi0tXYRYsOPaSb347Ujguz0Wg21QGTDjpFVvJbs7gyTCYRuKr57Fxjoj6uhxtMRi+NNg==
X-Received: by 2002:a05:600c:450f:b0:46d:ba6d:65bb with SMTP id 5b1f17b1804b1-477c01eb9bdmr128502995e9.31.1763989125310;
        Mon, 24 Nov 2025 04:58:45 -0800 (PST)
Message-ID: <f136c91a-9e8b-44de-918d-7d989867ed26@suse.com>
Date: Mon, 24 Nov 2025 13:58:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/4] xen/param: address violation of MISRA C Rule 20.7
To: Nicola Vetrini <nicola.vetrini@gmail.com>
Cc: andrew.cooper3@citrix.com, sstabellini@kernel.org,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1763642993.git.nicola.vetrini@gmail.com>
 <bbbe135e699e8589c36555f02e208edff64ef76c.1763642993.git.nicola.vetrini@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: <bbbe135e699e8589c36555f02e208edff64ef76c.1763642993.git.nicola.vetrini@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.11.2025 20:32, Nicola Vetrini wrote:
> The rule states: Expressions resulting from the expansion of
> macro parameters shall be enclosed in parentheses.
> 
> Add parentheses in the defition of `custom_runtime_var_sz' to
> address the violations.
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 12:59:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 12:59:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170870.1495895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNW9z-0004zI-1d; Mon, 24 Nov 2025 12:59:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170870.1495895; Mon, 24 Nov 2025 12:59:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNW9y-0004zB-V0; Mon, 24 Nov 2025 12:59:14 +0000
Received: by outflank-mailman (input) for mailman id 1170870;
 Mon, 24 Nov 2025 12:59:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNW9x-0004T2-PM
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 12:59:13 +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 60017aaa-c935-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 13:59:13 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-42b379cd896so2328669f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 04:59: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-477bf1df392sm197221895e9.1.2025.11.24.04.59.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 04:59: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: 60017aaa-c935-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763989152; x=1764593952; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rthwdmuYVi+1feGAAdq1Pe/M0Dje0fenfS69Nzb+RrQ=;
        b=Pg7T2HnppGCHjesUwbPTPbcZptf/D4Hy//YhLt4oY9IQm1oqKoCk6R2E4eTAVx7kbB
         v5WtTjLcBxQzrPOHqq5UoyDXIMyoW5oKeDkHRWrcuwpFlUU7Rdv5hFDrwmbHHxJ07jAZ
         vZqQ949BrWE93tFKu35DBh92Ydk1HwosgQCQvubwEHiqtLUtEr8S+DmiYV/RebgwyseW
         3AGxws8SVS/EicsMRVXzrhB6XlLku6TjxdjCKwdT4TwTOQrvgV5P5SyVzzw+u1it4r+r
         o4j0SZ2DXdncsbx5Q2cdZHq9F5D53Soq83FucoKHzdjGUiRg4bGdAM3qNUE6owV/Cx95
         Wl/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763989152; x=1764593952;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rthwdmuYVi+1feGAAdq1Pe/M0Dje0fenfS69Nzb+RrQ=;
        b=srJKS0TazBf9M1dD8UFHYrm3o1dwMrBm7MdZPyS9EwIbyHLyngVRSXnJJcGp/GVjmS
         Lr8BiR+aPcQtGoOyk+aF1/PFWF8wmV9XADaZXtC4s2/tyKOkDkRv8bETMk1A9WIyupef
         vQYzeFuJ+ue5TTVI/RM+DgXVs6Z9IXf4lv0vFm7rh/P4XGCecc2shPlssaOxaGOdMWgh
         8fIg+dXUzQe0korcwfJIIbAIjsIgRl4mqw1HSn3q5UZAN0oDXGdfwsUU0Tq4lHUqTQTy
         O4Tdk8uowZpomZincz1Ky+8NieTfZ3SxOuVgbUg5gVYaYoxOcVj04Z/Sup8u+dn3IVdu
         shQA==
X-Forwarded-Encrypted: i=1; AJvYcCVlE9TLVywM5I0g2kMIi9kJdU3Oe21dHCl4WhJVMD+UoYHher6ot79zpRox211+0OJOJ4/YggFXyR8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YziP+Sx5PxDstsJR3S+KO7OpmikPyDQMPADohDX6vVMhreGHZ/E
	Nol91dZ+o2tjC0r4WzVAPGVpWXC6vbyyVKvK9ZA2Gz/iFtwCyEA1zYF3/L5q1Vvlxw==
X-Gm-Gg: ASbGncvfNlGeKOHBXzLus0V8sMA7JUh/lDzWKSIYZJ5dXOL9PSbwkrPMT98hpRaxx4v
	kzgbokwEYxCABhcLi4x/GWZrigTJHFX6BnZFX2yad/OUOPe88PiOsTS9LWPaaSKweKi8xJRiyIE
	D9OQOZcMVPDhFxVeIOwpbIIozrP6c0qhLU+MTvlO03OW95+Hib0al3UnkZvpmge45YbIfW84gzU
	LkFnvOatmNmXDjIK0AaCj2YnsWo/j+wgwcdojbBYpUnWNzZXoLN33DmNDmHkjj5LVhvSqb3GIn0
	Rp7AVK94uSvc6tokIHnPNmMf8P4TgpwWKapIUcMtlK2N+Gk4tLJnavKi1qP4MgBy9jipVYGNO/H
	R27IXFiLO8fJ0LuhJ27OLldweH/+cPDye1R2hZht2JH/5FveilDXXtaFP7AJfb/G6GpqtBwHb6d
	Jx7Tsyjigg/eEIiPRrGnLkdRKy0jCh6mAB7bfNe7G+UsMKTepDrRUTfUrAB6Zit5oVcUDPk5mDo
	98=
X-Google-Smtp-Source: AGHT+IGdoJhREtwuJONG9uLs3aCMaYECSDKh/GFxx4lW+5oDva3FYpVpq9aVDUebLIBuo7HkzHfAeg==
X-Received: by 2002:a05:600c:1c25:b0:46e:4586:57e4 with SMTP id 5b1f17b1804b1-477c114ed70mr175269635e9.24.1763989152463;
        Mon, 24 Nov 2025 04:59:12 -0800 (PST)
Message-ID: <b8b0e3ee-9b0e-4403-baed-a6297479f4cb@suse.com>
Date: Mon, 24 Nov 2025 13:59:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] xen/param: address violation of MISRA C Rule 8.2
To: Nicola Vetrini <nicola.vetrini@gmail.com>
Cc: andrew.cooper3@citrix.com, sstabellini@kernel.org,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1763642993.git.nicola.vetrini@gmail.com>
 <b51830acf5274dfac6a3b2b6864be775180ee673.1763642993.git.nicola.vetrini@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: <b51830acf5274dfac6a3b2b6864be775180ee673.1763642993.git.nicola.vetrini@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.11.2025 20:32, Nicola Vetrini wrote:
> add missing parameter name in function pointer member declaration.
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 13:14:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 13:14:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170888.1495905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWP1-0001zY-CF; Mon, 24 Nov 2025 13:14:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170888.1495905; Mon, 24 Nov 2025 13: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 1vNWP1-0001zR-8l; Mon, 24 Nov 2025 13:14:47 +0000
Received: by outflank-mailman (input) for mailman id 1170888;
 Mon, 24 Nov 2025 13:14: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=Qo8f=6A=gmail.com=samaan.dehghan@srs-se1.protection.inumbo.net>)
 id 1vNWOz-0001zL-FI
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 13:14:45 +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 89f77f96-c937-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 14:14:43 +0100 (CET)
Received: by mail-pl1-x62c.google.com with SMTP id
 d9443c01a7336-297ef378069so38482735ad.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 05:14: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: 89f77f96-c937-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763990082; x=1764594882; 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=mx0eAVVCawFxxfGf6aZiYlusp7e1swgiJgZ3sDSy6qk=;
        b=kB2JJRujuQTwST9ft9bjpMyL28s367B15UOp/70LzE4kXjMB++H9X3WqFFbg9EH/cC
         ngD1EGNmXXYrROK1wYYHinpQlChDOGMViUEO5ttzgYpdW488V4ZarO/QhVBT2ATq9iA/
         DnRHzqLLU3hisWXSMYkWwwDEQrmgOVIcj/8H7nv9S23JdHZU5FobV4QqC8ieKAnX9f/K
         cnCKfaFpmydzYOMa1MJe3m7C/ldWUtlamW2d73mpnGzJ6Izs7+2fxWSvn9IH80r/MFAU
         i2YMB9VbmeosrEU5cJSbJr663l5BRhRAln1lPZZXiKuVlmrpvu9YDGKbJUOardmd8AKm
         hhmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763990082; x=1764594882;
        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=mx0eAVVCawFxxfGf6aZiYlusp7e1swgiJgZ3sDSy6qk=;
        b=OsiEG4I0entayUJr9DFHdPuaG5G0vnPLlt3WZj7RaYYbuBJKuEgHlabsQ4IHrbtf2C
         sBW0jEzqzD5bHRyapVXR1WmBNVdXCXytrcP4f9+sTmUb6t1CbKHyVf6wVr3y2Ailats2
         w7o9lng0O5j8lFavv+Yr9XjIZu8bvjLeBE3/df2HvDh/6RlpiMR/edDeAl4zg/g8McUD
         ja5OSG5VhlUGFkOrpaFHTfFzU/AaKwxG5dZTzsjhriQ54nKWf7JmTG4WbwFdPuAEKQVJ
         dxb4eOxclCDHIndyQ606j9wn+eERojgu6+fShNXWZ7GJJ3heTKICrXNkxWYDwYVPtKt4
         y20A==
X-Gm-Message-State: AOJu0YxBDVpfAawjfsN41FDbfX58xCK3xFkQnUDt3aTEhv5voGLh8eTC
	Qc3pn6bLJ25JJ8WClolhtfjCfAmohJOxQxyAEjaxEn9XXMZIemDE9q8wSaI4bOSge16+SJs8T6m
	IOLUjpcyeZ7X/7bNvSc9lbzB0cpjnoA==
X-Gm-Gg: ASbGnctCfr8UqT9OsW/8dW59HAmhPprhtP6pwm/X8cdmcXK0hclxS3vvRw9CAbxxFkQ
	GNi7I16WCMOq76bHdmABN0ZqfIj02H7OslaUJnBvqdu+uITxuWspmjS67StHZ1NcQKVS4h0nW6Y
	7mgFVWmwbMSyBRldgp3+jY962REy+tS0uphTkVWH63YjzPYuVES83GmSQHT44YwgYINaqSNj9AG
	fTf52/WAlUVvkPuvwnISQj2QkDhdwm/jZS7s4IMhDoFHnOP2fAHiHrQ2g1XIYexJRFyCn0yVTKI
	7fcHcsH6n2yiNmvMAnuMQlBK
X-Google-Smtp-Source: AGHT+IG5RyIDZuZeTNoL79WDy1rvhcaHWuJbNrwhEtdNMJg42zM55ZNHIdbS/ZFUer6rXwCGEvSj+71H81ZOtc+SN+k=
X-Received: by 2002:a17:90a:ec8f:b0:340:66f9:381 with SMTP id
 98e67ed59e1d1-34733e59272mr11667808a91.10.1763990081667; Mon, 24 Nov 2025
 05:14:41 -0800 (PST)
MIME-Version: 1.0
References: <3bb418ae6a36a9ac89c697a417fa0745fa9ac702.1763949990.git.samaan.dehghan@gmail.com>
 <9c76a959-51c0-4eb7-9d05-ba4441318faa@citrix.com> <CAHFNDNikjXNHCj2RXMoZPckqaQAy2u-xw-QyCO7nXT3pttp6Hg@mail.gmail.com>
 <fbec7d87-126d-4a0f-bce3-dde76d20433b@suse.com>
In-Reply-To: <fbec7d87-126d-4a0f-bce3-dde76d20433b@suse.com>
From: Saman Dehghan <samaan.dehghan@gmail.com>
Date: Mon, 24 Nov 2025 07:14:30 -0600
X-Gm-Features: AWmQ_bk27olYdM7LJtxgGBgSFT-0W85jHxaa10rLRyZVdEL9EwEhGUwItWulYyQ
Message-ID: <CAHFNDNjxCjcv-pDtgCWH2jm_aWBWvuZY7Z3EWJMk679_ofTdFw@mail.gmail.com>
Subject: Re: [PATCH] XEN: enable MC/DC coverage for Clang
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Andrew Cooper <andrew.cooper3@citrix.com>
Content-Type: multipart/alternative; boundary="00000000000034859f064456f221"

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

On Mon, Nov 24, 2025 at 6:41=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 24.11.2025 13:31, Saman Dehghan wrote:
> > On Mon, Nov 24, 2025 at 5:15=E2=80=AFAM Andrew Cooper <andrew.cooper3@c=
itrix.com>
wrote:
> >> On 24/11/2025 2:18 am, Saman Dehghan wrote:
> >>> @@ -127,16 +131,25 @@ extern uint64_t __stop___llvm_prf_cnts[];
> >>>  #define END_NAMES       ((const void *)__stop___llvm_prf_names)
> >>>  #define START_COUNTERS  ((void *)__start___llvm_prf_cnts)
> >>>  #define END_COUNTERS    ((void *)__stop___llvm_prf_cnts)
> >>> +#define START_BITMAP    ((void *)__start___llvm_prf_bits)
> >>> +#define END_BITMAP      ((void *)__stop___llvm_prf_bits)
> >>>
> >>>  static void cf_check reset_counters(void)
> >>>  {
> >>>      memset(START_COUNTERS, 0, END_COUNTERS - START_COUNTERS);
> >>> +#ifdef CONFIG_CONDITION_COVERAGE
> >>> +    memset(START_BITMAP, 0, END_BITMAP - START_BITMAP);
> >>> +#endif
> >>
> >> ... this:
> >>
> >>     if ( IS_ENABLED(CONFIG_CONDITION_COVERAGE) )
> >>         memset(START_BITMAP, 0, END_BITMAP - START_BITMAP);
> >>
> >>>  }
> >
> > Thanks Andrew.
> >
> > IS_ENABLED(CONFIG_CONDITION_COVERAGE) is not the same as #ifdef
> > CONFIG_CONDITION_COVERAGE.
> > When the option is completely undefined, IS_ENABLED() returns 1
(enabled).
>
> See our many other uses of IS_ENABLED(). If what you say was true, we'd
have
> breakage for every one of those uses.
>

Sorry, my bad. It works.


> Jan

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

<div dir=3D"ltr">On Mon, Nov 24, 2025 at 6:41=E2=80=AFAM Jan Beulich &lt;<a=
 href=3D"mailto:jbeulich@suse.com">jbeulich@suse.com</a>&gt; wrote:<br>&gt;=
<br>&gt; On 24.11.2025 13:31, Saman Dehghan wrote:<br>&gt; &gt; On Mon, Nov=
 24, 2025 at 5:15=E2=80=AFAM Andrew Cooper &lt;<a href=3D"mailto:andrew.coo=
per3@citrix.com">andrew.cooper3@citrix.com</a>&gt; wrote:<br>&gt; &gt;&gt; =
On 24/11/2025 2:18 am, Saman Dehghan wrote:<br>&gt; &gt;&gt;&gt; @@ -127,16=
 +131,25 @@ extern uint64_t __stop___llvm_prf_cnts[];<br>&gt; &gt;&gt;&gt; =
=C2=A0#define END_NAMES =C2=A0 =C2=A0 =C2=A0 ((const void *)__stop___llvm_p=
rf_names)<br>&gt; &gt;&gt;&gt; =C2=A0#define START_COUNTERS =C2=A0((void *)=
__start___llvm_prf_cnts)<br>&gt; &gt;&gt;&gt; =C2=A0#define END_COUNTERS =
=C2=A0 =C2=A0((void *)__stop___llvm_prf_cnts)<br>&gt; &gt;&gt;&gt; +#define=
 START_BITMAP =C2=A0 =C2=A0((void *)__start___llvm_prf_bits)<br>&gt; &gt;&g=
t;&gt; +#define END_BITMAP =C2=A0 =C2=A0 =C2=A0((void *)__stop___llvm_prf_b=
its)<br>&gt; &gt;&gt;&gt;<br>&gt; &gt;&gt;&gt; =C2=A0static void cf_check r=
eset_counters(void)<br>&gt; &gt;&gt;&gt; =C2=A0{<br>&gt; &gt;&gt;&gt; =C2=
=A0 =C2=A0 =C2=A0memset(START_COUNTERS, 0, END_COUNTERS - START_COUNTERS);<=
br>&gt; &gt;&gt;&gt; +#ifdef CONFIG_CONDITION_COVERAGE<br>&gt; &gt;&gt;&gt;=
 + =C2=A0 =C2=A0memset(START_BITMAP, 0, END_BITMAP - START_BITMAP);<br>&gt;=
 &gt;&gt;&gt; +#endif<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; ... this:<br>&gt; &=
gt;&gt;<br>&gt; &gt;&gt; =C2=A0 =C2=A0 if ( IS_ENABLED(CONFIG_CONDITION_COV=
ERAGE) )<br>&gt; &gt;&gt; =C2=A0 =C2=A0 =C2=A0 =C2=A0 memset(START_BITMAP, =
0, END_BITMAP - START_BITMAP);<br>&gt; &gt;&gt;<br>&gt; &gt;&gt;&gt; =C2=A0=
}<br>&gt; &gt;<br>&gt; &gt; Thanks Andrew.<br>&gt; &gt;<br>&gt; &gt; IS_ENA=
BLED(CONFIG_CONDITION_COVERAGE) is not the same as #ifdef<br>&gt; &gt; CONF=
IG_CONDITION_COVERAGE.<br>&gt; &gt; When the option is completely undefined=
, IS_ENABLED() returns 1 (enabled).<br>&gt;<br>&gt; See our many other uses=
 of IS_ENABLED(). If what you say was true, we&#39;d have<br>&gt; breakage =
for every one of those uses.<br>&gt;<div><br></div><div><div class=3D"gmail=
_default" style=3D"font-family:georgia,serif">Sorry, my bad. It works.</div=
><br></div><div><br>&gt; Jan</div></div>

--00000000000034859f064456f221--


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 13:17:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 13:17:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170896.1495915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWRk-0002XW-Nl; Mon, 24 Nov 2025 13:17:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170896.1495915; Mon, 24 Nov 2025 13:17:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWRk-0002XP-L1; Mon, 24 Nov 2025 13:17:36 +0000
Received: by outflank-mailman (input) for mailman id 1170896;
 Mon, 24 Nov 2025 13:17: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=Qo8f=6A=gmail.com=samaan.dehghan@srs-se1.protection.inumbo.net>)
 id 1vNWRj-0002XH-60
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 13:17:35 +0000
Received: from mail-qv1-xf32.google.com (mail-qv1-xf32.google.com
 [2607:f8b0:4864:20::f32])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ef507f16-c937-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 14:17:33 +0100 (CET)
Received: by mail-qv1-xf32.google.com with SMTP id
 6a1803df08f44-88043139c35so42759376d6.0
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 05:17:32 -0800 (PST)
Received: from localhost.localdomain
 (host-154-4.mdu.ilcmifre.champaign.il.us.clients.pavlovmedia.net.
 [66.253.154.4]) by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-8846e54e9e2sm99403716d6.31.2025.11.24.05.17.30
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Mon, 24 Nov 2025 05:17: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: ef507f16-c937-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763990251; x=1764595051; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=J1cmzrTJ50vwCC7yI8wn//dLiVisgkYIouMfBXVIbVA=;
        b=avrHtCjjRuODN+NfYJIh8/JBW4eli56nN/2+auQA1Iw4m2VPJLOdG3k815cwRhsb9q
         62blaAs2vbgdNHwg06AdfxE3Huv3Niv2azbL4Uh0n9296ez9sXudoE5Qt078Wg0HfTMg
         i+EiSuqPs0cn50ZTgOWQLl/dHItPSyRMCZpfCuHZAOWelyPNGHdyv7BKlqtVDse8YUn9
         WaNPR5R5Y8Sboj2/2G2/xDm0k2qXn2Q5D+7hljj1o+nEI9gB+Oy8iQYt+CgP4iJFh8Qk
         GfdX3PBLiakd5MMr2nbdmNoMJ9lkCF8Kd/rSzIblp/IdYE/UjpM33wAFQFPwpreXCjtB
         2FdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763990251; x=1764595051;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=J1cmzrTJ50vwCC7yI8wn//dLiVisgkYIouMfBXVIbVA=;
        b=J00GTUaDhZkOI7dBi/6VaXyUcs5j1R/7vCPyCf8FgLJbnBqdF2+QWQxB0SW8HjE8OU
         h113npAn6ybLa+94JXxDBJTHQvDB69Ft+POI/G/5GadCNZGjW1TssdkeawunlV+EjHQ2
         XnbNgAVtgUOlsDMrnRjHmX7owdgpW8Xg0YdZP1ETb2OuavmqLt3KdMopuJJt3VG2owiR
         iFySmEJV3ee442xCPebj2c1j9PcKOch2b1lrZnfDIZ+bPb20qEojYcy/yHjiPLQjYHuL
         CZeM+ikgpIv+U6kBP2/h4ItFHIC2iPdp3AD/amVMgzCL0TlnygH4EFd506Hc9oUlmPhv
         W4gg==
X-Gm-Message-State: AOJu0YytZp6BzhHpwuLAmzER1pgJd4/o7TYNg0uvJCB0O5G3yKEt6nDL
	Inrk1BzZ4wIVwws2kbNC2bRq9TklH9ZBQRrBPIESCaDMNd5Uo26DfGLhJivLItQ=
X-Gm-Gg: ASbGncv4beKQ7cYzW/60uAuRJ3ILH9up9VqfGKKbwkM9KRFHlg5pvK1t7Jody7Tx0N5
	lQtBLLvawi1RSvKsW63WAkAQNUksyWgWyUi3sJUo+ZYfh99MbvEIl0iqdgB5fAGj0KiHqzGcm8c
	kllKAWVvojPf3qP9Eaz2CTuNEO0PyMGbvqRFI/QK6KMkNDZC0SPvXYbNXZ8MSWMqz4wm0Zlt7KL
	5j26dvGxE+Ggg5HpkTA1G7Fl4IEazquK+l3+uHT6anWgb5d29b9EZJFtaPZHX+5PGITnjNNVLS8
	eg95VguknObUpM69w9NugBcQuF0iuK7ql1+kM3QjJ93T3Uh8Iv/R9Saoy/5Aod12elxO2eQ1TIY
	Sn2XoYSWuSTlK/gJp7zQFMQ+K5YtftoRgAjL2EpBTHGh8uLDH3onC00e20IaTRJnOoxaFaWHLUk
	xgYBqgsdEDEJv0ONo1S4CyhCKI5zQ5W6Womy87M2hAeTLeHsSlNgbJhcBHB1W2LTOZRJkh15wiv
	iCrlAOWwitur72Nb8/jWFposqQiQOwjP0ptrKivSwXi/LGMRQelTDde1h9sPoVuGP+kaUPQxys8
	HtM=
X-Google-Smtp-Source: AGHT+IFHNRObG6KPLTocz7VgtGSA2GbUMp3Tc8MCg/Az3NT8x2atRCr0Vuu1WHQUjTOS6NRup6GKlA==
X-Received: by 2002:a05:622a:44:b0:4ee:1bc7:9d7b with SMTP id d75a77b69052e-4ee588cb852mr168410651cf.39.1763990251475;
        Mon, 24 Nov 2025 05:17:31 -0800 (PST)
From: Saman Dehghan <samaan.dehghan@gmail.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: enable MC/DC coverage for Clang
Date: Mon, 24 Nov 2025 07:17:24 -0600
Message-ID: <aa144043d4e0592fbbeaf0a3d5e9cad6e9226d8a.1763989809.git.samaan.dehghan@gmail.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <52b0762ac4b5535a842a530365a75bdc81a5fe61.1763981619.git.samaan.dehghan@gmail.com>
References: <52b0762ac4b5535a842a530365a75bdc81a5fe61.1763981619.git.samaan.dehghan@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Clang >= 18 supports Modified Condition/Decision Coverage (MC/DC).
This patch enables the detection and usage of this feature when
compiling Xen with Clang.

- Update detection logic in Kconfig to check for the required set of
  Clang flags for MC/DC:
  '-fprofile-instr-generate -fcoverage-mapping -fcoverage-mcdc'.
  This bundle is necessary because '-fcoverage-mcdc' requires
  '-fcoverage-mapping', which in turn requires '-fprofile-instr-generate'.
- Update llvm.c to handle the profile format changes (bitmap section)
  required for MC/DC.
- Guard -Wno-error=coverage-too-many-conditions with CONFIG_CC_IS_GCC
  to avoid passing a GCC-only warning option to Clang

Signed-off-by: Saman Dehghan <samaan.dehghan@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/Kconfig                |  9 +++++++--
 xen/Rules.mk               |  1 +
 xen/arch/x86/Makefile      |  2 +-
 xen/common/coverage/llvm.c | 18 +++++++++++++++++-
 4 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/xen/Kconfig b/xen/Kconfig
index a5e5af3b76..8f2cc111cd 100644
--- a/xen/Kconfig
+++ b/xen/Kconfig
@@ -51,9 +51,14 @@ config CC_HAS_ASM_GOTO_OUTPUT
 	depends on !GCC_ASM_GOTO_OUTPUT_BROKEN
 	depends on $(success,echo 'int foo(int x) { asm goto ("": "=r"(x) ::: bar); return x; bar: return 0; }' | $(CC) -x c - -c -o /dev/null)
 
-# Compiler supports -fcondition-coverage aka MC/DC
+# Compiler supports Modified Condition/Decision Coverage (MC/DC).
+# MC/DC is a rigorous code coverage metric that requires every condition
+# within a decision (boolean expression) to be shown to independently
+# influence the decision's final outcome.
+#
+# Minimum toolchain baseline: GCC >= 14, or Clang >= 18.
 config CC_HAS_MCDC
-	def_bool $(cc-option,-fcondition-coverage)
+	def_bool $(cc-option,-fcondition-coverage) || $(cc-option,-fprofile-instr-generate -fcoverage-mapping -fcoverage-mcdc)
 
 # Set code alignment.
 #
diff --git a/xen/Rules.mk b/xen/Rules.mk
index 24f447b957..2b28d1ac3c 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -136,6 +136,7 @@ non-init-objects = $(filter-out %.init.o, $(obj-y) $(obj-bin-y) $(extra-y))
 
 ifeq ($(CONFIG_CC_IS_CLANG),y)
     cov-cflags-$(CONFIG_COVERAGE) := -fprofile-instr-generate -fcoverage-mapping
+    cov-cflags-$(CONFIG_CONDITION_COVERAGE) += -fcoverage-mcdc
 else
     cov-cflags-$(CONFIG_COVERAGE) := -fprofile-arcs -ftest-coverage
     cov-cflags-$(CONFIG_CONDITION_COVERAGE) += -fcondition-coverage
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 407571c510..6c0ff67fa8 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -98,7 +98,7 @@ $(obj)/usercopy.o: CFLAGS-y += -iquote .
 ifneq ($(CONFIG_HVM),y)
 $(obj)/x86_emulate.o: CFLAGS-y += -Wno-unused-label
 endif
-ifeq ($(CONFIG_CONDITION_COVERAGE),y)
+ifeq ($(CONFIG_CONDITION_COVERAGE)$(CONFIG_CC_IS_GCC),yy)
 $(obj)/x86_emulate.o: CFLAGS-y += -Wno-error=coverage-too-many-conditions
 endif
 
diff --git a/xen/common/coverage/llvm.c b/xen/common/coverage/llvm.c
index 532889c857..5663fb10dd 100644
--- a/xen/common/coverage/llvm.c
+++ b/xen/common/coverage/llvm.c
@@ -120,6 +120,8 @@ extern const char __start___llvm_prf_names[];
 extern const char __stop___llvm_prf_names[];
 extern uint64_t __start___llvm_prf_cnts[];
 extern uint64_t __stop___llvm_prf_cnts[];
+extern const char __start___llvm_prf_bits[];
+extern const char __stop___llvm_prf_bits[];
 
 #define START_DATA      ((const void *)__start___llvm_prf_data)
 #define END_DATA        ((const void *)__stop___llvm_prf_data)
@@ -127,16 +129,23 @@ extern uint64_t __stop___llvm_prf_cnts[];
 #define END_NAMES       ((const void *)__stop___llvm_prf_names)
 #define START_COUNTERS  ((void *)__start___llvm_prf_cnts)
 #define END_COUNTERS    ((void *)__stop___llvm_prf_cnts)
+#define START_BITMAP    ((void *)__start___llvm_prf_bits)
+#define END_BITMAP      ((void *)__stop___llvm_prf_bits)
 
 static void cf_check reset_counters(void)
 {
     memset(START_COUNTERS, 0, END_COUNTERS - START_COUNTERS);
+    if ( IS_ENABLED(CONFIG_CONDITION_COVERAGE) )
+        memset(START_BITMAP, 0, END_BITMAP - START_BITMAP);
 }
 
 static uint32_t cf_check get_size(void)
 {
-    return ROUNDUP(sizeof(struct llvm_profile_header) + END_DATA - START_DATA +
+    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;
 }
 
 static int cf_check dump(
@@ -155,6 +164,10 @@ static int cf_check dump(
 #endif
         .names_delta = (uintptr_t)START_NAMES,
         .value_kind_last = LLVM_PROFILE_NUM_KINDS - 1,
+#if defined(CONFIG_CONDITION_COVERAGE) && LLVM_PROFILE_VERSION >= 9
+        .num_bitmap_bytes = END_BITMAP - START_BITMAP,
+        .bitmap_delta = START_BITMAP - START_DATA,
+#endif
     };
     unsigned int off = 0;
 
@@ -168,6 +181,9 @@ static int cf_check dump(
     APPEND_TO_BUFFER(&header, sizeof(header));
     APPEND_TO_BUFFER(START_DATA, END_DATA - START_DATA);
     APPEND_TO_BUFFER(START_COUNTERS, END_COUNTERS - START_COUNTERS);
+#if defined(CONFIG_CONDITION_COVERAGE)
+    APPEND_TO_BUFFER(START_BITMAP, END_BITMAP - START_BITMAP);
+#endif
     APPEND_TO_BUFFER(START_NAMES, END_NAMES - START_NAMES);
 #undef APPEND_TO_BUFFER
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 13:22:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 13:22:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170911.1495941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWWp-0005AB-Bs; Mon, 24 Nov 2025 13:22:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170911.1495941; Mon, 24 Nov 2025 13:22:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWWp-0005A4-9J; Mon, 24 Nov 2025 13:22:51 +0000
Received: by outflank-mailman (input) for mailman id 1170911;
 Mon, 24 Nov 2025 13:22:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=H9wV=6A=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vNWWo-00059s-Df
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 13:22:50 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id a8a4681e-c938-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 14:22: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 433AD497;
 Mon, 24 Nov 2025 05:22:35 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 8F32D3F73B;
 Mon, 24 Nov 2025 05:22: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: a8a4681e-c938-11f0-980a-7dc792cee155
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v5 00/12] Nesting support for lazy MMU mode
Date: Mon, 24 Nov 2025 13:22:16 +0000
Message-ID: <20251124132228.622678-1-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

When the lazy MMU mode was introduced eons ago, it wasn't made clear
whether such a sequence was legal:

	arch_enter_lazy_mmu_mode()
	...
		arch_enter_lazy_mmu_mode()
		...
		arch_leave_lazy_mmu_mode()
	...
	arch_leave_lazy_mmu_mode()

It seems fair to say that nested calls to
arch_{enter,leave}_lazy_mmu_mode() were not expected, and most
architectures never explicitly supported it.

Nesting does in fact occur in certain configurations, and avoiding it
has proved difficult. This series therefore enables lazy_mmu sections to
nest, on all architectures.

Nesting is handled using a counter in task_struct (patch 8), like other
stateless APIs such as pagefault_{disable,enable}(). This is fully
handled in a new generic layer in <linux/pgtable.h>; the arch_* API
remains unchanged. A new pair of calls, lazy_mmu_mode_{pause,resume}(),
is also introduced to allow functions that are called with the lazy MMU
mode enabled to temporarily pause it, regardless of nesting.

An arch now opts in to using the lazy MMU mode by selecting
CONFIG_ARCH_LAZY_MMU; this is more appropriate now that we have a
generic API, especially with state conditionally added to task_struct.

---

Background: Ryan Roberts' series from March [1] attempted to prevent
nesting from ever occurring, and mostly succeeded. Unfortunately, a
corner case (DEBUG_PAGEALLOC) may still cause nesting to occur on arm64.
Ryan proposed [2] to address that corner case at the generic level but
this approach received pushback; [3] then attempted to solve the issue
on arm64 only, but it was deemed too fragile.

It feels generally difficult to guarantee that lazy_mmu sections don't
nest, because callers of various standard mm functions do not know if
the function uses lazy_mmu itself.

The overall approach in v3/v4 is very close to what David Hildenbrand
proposed on v2 [4].

Unlike in v1/v2, no special provision is made for architectures to
save/restore extra state when entering/leaving the mode. Based on the
discussions so far, this does not seem to be required - an arch can
store any relevant state in thread_struct during arch_enter() and
restore it in arch_leave(). Nesting is not a concern as these functions
are only called at the top level, not in nested sections.

The introduction of a generic layer, and tracking of the lazy MMU state
in task_struct, also allows to streamline the arch callbacks - this
series removes 67 lines from arch/.

Patch overview:

* Patch 1: cleanup - avoids having to deal with the powerpc
  context-switching code

* Patch 2-4: prepare arch_flush_lazy_mmu_mode() to be called from the
  generic layer (patch 8)

* Patch 5-6: new API + CONFIG_ARCH_LAZY_MMU

* Patch 7: ensure correctness in interrupt context

* Patch 8: nesting support

* Patch 9-12: replace arch-specific tracking of lazy MMU mode with
  generic API

This series has been tested by running the mm kselftests on arm64 with
DEBUG_VM, DEBUG_PAGEALLOC, KFENCE and KASAN. It was also build-tested on
other architectures (with and without XEN_PV on x86).

- Kevin

[1] https://lore.kernel.org/all/20250303141542.3371656-1-ryan.roberts@arm.com/
[2] https://lore.kernel.org/all/20250530140446.2387131-1-ryan.roberts@arm.com/
[3] https://lore.kernel.org/all/20250606135654.178300-1-ryan.roberts@arm.com/
[4] https://lore.kernel.org/all/ef343405-c394-4763-a79f-21381f217b6c@redhat.com/
---
Changelog

v4..v5:

- Rebased on mm-unstable
- Patch 3: added missing radix_enabled() check in arch_flush()
  [Ritesh Harjani]
- Patch 6: declare arch_flush_lazy_mmu_mode() as static inline on x86
  [Ryan Roberts]
- Patch 7 (formerly 12): moved before patch 8 to ensure correctness in
  interrupt context [Ryan]. The diffs in in_lazy_mmu_mode() and
  queue_pte_barriers() are moved to patch 8 and 9 resp.
- Patch 8:
  * Removed all restrictions regarding lazy_mmu_mode_{pause,resume}().
    They may now be called even when lazy MMU isn't enabled, and
    any call to lazy_mmu_mode_* may be made while paused (such calls
    will be ignored). [David, Ryan]
  * lazy_mmu_state.{nesting_level,active} are replaced with
    {enable_count,pause_count} to track arbitrary nesting of both
    enable/disable and pause/resume [Ryan]
  * Added __task_lazy_mmu_mode_active() for use in patch 12 [David]
  * Added documentation for all the functions [Ryan]
- Patch 9: keep existing test + set TIF_LAZY_MMU_PENDING instead of
  atomic RMW [David, Ryan]
- Patch 12: use __task_lazy_mmu_mode_active() instead of accessing
  lazy_mmu_state directly [David]
- Collected R-b/A-b tags

v4: https://lore.kernel.org/all/20251029100909.3381140-1-kevin.brodsky@arm.com/

v3..v4:

- Patch 2: restored ordering of preempt_{disable,enable}() [Dave Hansen]
- Patch 5 onwards: s/ARCH_LAZY_MMU/ARCH_HAS_LAZY_MMU_MODE/ [Mike Rapoport]
- Patch 7: renamed lazy_mmu_state members, removed VM_BUG_ON(),
  reordered writes to lazy_mmu_state members [David Hildenbrand]
- Dropped patch 13 as it doesn't seem justified [David H]
- Various improvements to commit messages [David H]

v3: https://lore.kernel.org/all/20251015082727.2395128-1-kevin.brodsky@arm.com/

v2..v3:

- Full rewrite; dropped all Acked-by/Reviewed-by.
- Rebased on v6.18-rc1.

v2: https://lore.kernel.org/all/20250908073931.4159362-1-kevin.brodsky@arm.com/

v1..v2:
- Rebased on mm-unstable.
- Patch 2: handled new calls to enter()/leave(), clarified how the "flush"
  pattern (leave() followed by enter()) is handled.
- Patch 5,6: removed unnecessary local variable [Alexander Gordeev's
  suggestion].
- Added Mike Rapoport's Acked-by.

v1: https://lore.kernel.org/all/20250904125736.3918646-1-kevin.brodsky@arm.com/
---
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Andreas Larsson <andreas@gaisler.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jann Horn <jannh@google.com>
Cc: Juergen Gross <jgross@suse.com>
Cc: "Liam R. Howlett" <Liam.Howlett@oracle.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Venkat Rao Bagalkote <venkat88@linux.ibm.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Will Deacon <will@kernel.org>
Cc: Yeoreum Yun <yeoreum.yun@arm.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: linuxppc-dev@lists.ozlabs.org
Cc: sparclinux@vger.kernel.org
Cc: xen-devel@lists.xenproject.org
Cc: x86@kernel.org
---
Alexander Gordeev (1):
  powerpc/64s: Do not re-activate batched TLB flush

Kevin Brodsky (11):
  x86/xen: simplify flush_lazy_mmu()
  powerpc/mm: implement arch_flush_lazy_mmu_mode()
  sparc/mm: implement arch_flush_lazy_mmu_mode()
  mm: introduce CONFIG_ARCH_HAS_LAZY_MMU_MODE
  mm: introduce generic lazy_mmu helpers
  mm: bail out of lazy_mmu_mode_* in interrupt context
  mm: enable lazy_mmu sections to nest
  arm64: mm: replace TIF_LAZY_MMU with in_lazy_mmu_mode()
  powerpc/mm: replace batch->active with in_lazy_mmu_mode()
  sparc/mm: replace batch->active with in_lazy_mmu_mode()
  x86/xen: use lazy_mmu_state when context-switching

 arch/arm64/Kconfig                            |   1 +
 arch/arm64/include/asm/pgtable.h              |  41 +----
 arch/arm64/include/asm/thread_info.h          |   3 +-
 arch/arm64/mm/mmu.c                           |   4 +-
 arch/arm64/mm/pageattr.c                      |   4 +-
 .../include/asm/book3s/64/tlbflush-hash.h     |  20 ++-
 arch/powerpc/include/asm/thread_info.h        |   2 -
 arch/powerpc/kernel/process.c                 |  25 ---
 arch/powerpc/mm/book3s64/hash_tlb.c           |  10 +-
 arch/powerpc/mm/book3s64/subpage_prot.c       |   4 +-
 arch/powerpc/platforms/Kconfig.cputype        |   1 +
 arch/sparc/Kconfig                            |   1 +
 arch/sparc/include/asm/tlbflush_64.h          |   5 +-
 arch/sparc/mm/tlb.c                           |  14 +-
 arch/x86/Kconfig                              |   1 +
 arch/x86/boot/compressed/misc.h               |   1 +
 arch/x86/boot/startup/sme.c                   |   1 +
 arch/x86/include/asm/paravirt.h               |   1 -
 arch/x86/include/asm/pgtable.h                |   1 +
 arch/x86/include/asm/thread_info.h            |   4 +-
 arch/x86/xen/enlighten_pv.c                   |   3 +-
 arch/x86/xen/mmu_pv.c                         |   6 +-
 fs/proc/task_mmu.c                            |   4 +-
 include/linux/mm_types_task.h                 |   5 +
 include/linux/pgtable.h                       | 147 +++++++++++++++++-
 include/linux/sched.h                         |  45 ++++++
 mm/Kconfig                                    |   3 +
 mm/kasan/shadow.c                             |   8 +-
 mm/madvise.c                                  |  18 +--
 mm/memory.c                                   |  16 +-
 mm/migrate_device.c                           |   8 +-
 mm/mprotect.c                                 |   4 +-
 mm/mremap.c                                   |   4 +-
 mm/userfaultfd.c                              |   4 +-
 mm/vmalloc.c                                  |  12 +-
 mm/vmscan.c                                   |  12 +-
 36 files changed, 282 insertions(+), 161 deletions(-)


base-commit: 1f1edd95f9231ba58a1e535b10200cb1eeaf1f67
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 13:22:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 13:22:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170912.1495946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWWp-0005DK-L2; Mon, 24 Nov 2025 13:22:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170912.1495946; Mon, 24 Nov 2025 13:22:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWWp-0005DC-GZ; Mon, 24 Nov 2025 13:22:51 +0000
Received: by outflank-mailman (input) for mailman id 1170912;
 Mon, 24 Nov 2025 13:22:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=H9wV=6A=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vNWWo-00059t-Ol
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 13:22:50 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id abec3f76-c938-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 14:22: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 B5B121477;
 Mon, 24 Nov 2025 05:22:40 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 120A13F73B;
 Mon, 24 Nov 2025 05:22: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: abec3f76-c938-11f0-9d18-b5c5bf9af7f9
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v5 01/12] powerpc/64s: Do not re-activate batched TLB flush
Date: Mon, 24 Nov 2025 13:22:17 +0000
Message-ID: <20251124132228.622678-2-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251124132228.622678-1-kevin.brodsky@arm.com>
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Alexander Gordeev <agordeev@linux.ibm.com>

Since commit b9ef323ea168 ("powerpc/64s: Disable preemption in hash
lazy mmu mode") a task can not be preempted while in lazy MMU mode.
Therefore, the batch re-activation code is never called, so remove it.

Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Reviewed-by: Ryan Roberts <ryan.roberts@arm.com>
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/powerpc/include/asm/thread_info.h |  2 --
 arch/powerpc/kernel/process.c          | 25 -------------------------
 2 files changed, 27 deletions(-)

diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
index b0f200aba2b3..97f35f9b1a96 100644
--- a/arch/powerpc/include/asm/thread_info.h
+++ b/arch/powerpc/include/asm/thread_info.h
@@ -154,12 +154,10 @@ void arch_setup_new_exec(void);
 /* Don't move TLF_NAPPING without adjusting the code in entry_32.S */
 #define TLF_NAPPING		0	/* idle thread enabled NAP mode */
 #define TLF_SLEEPING		1	/* suspend code enabled SLEEP mode */
-#define TLF_LAZY_MMU		3	/* tlb_batch is active */
 #define TLF_RUNLATCH		4	/* Is the runlatch enabled? */
 
 #define _TLF_NAPPING		(1 << TLF_NAPPING)
 #define _TLF_SLEEPING		(1 << TLF_SLEEPING)
-#define _TLF_LAZY_MMU		(1 << TLF_LAZY_MMU)
 #define _TLF_RUNLATCH		(1 << TLF_RUNLATCH)
 
 #ifndef __ASSEMBLER__
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
index eb23966ac0a9..9237dcbeee4a 100644
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -1281,9 +1281,6 @@ struct task_struct *__switch_to(struct task_struct *prev,
 {
 	struct thread_struct *new_thread, *old_thread;
 	struct task_struct *last;
-#ifdef CONFIG_PPC_64S_HASH_MMU
-	struct ppc64_tlb_batch *batch;
-#endif
 
 	new_thread = &new->thread;
 	old_thread = &current->thread;
@@ -1291,14 +1288,6 @@ struct task_struct *__switch_to(struct task_struct *prev,
 	WARN_ON(!irqs_disabled());
 
 #ifdef CONFIG_PPC_64S_HASH_MMU
-	batch = this_cpu_ptr(&ppc64_tlb_batch);
-	if (batch->active) {
-		current_thread_info()->local_flags |= _TLF_LAZY_MMU;
-		if (batch->index)
-			__flush_tlb_pending(batch);
-		batch->active = 0;
-	}
-
 	/*
 	 * On POWER9 the copy-paste buffer can only paste into
 	 * foreign real addresses, so unprivileged processes can not
@@ -1369,20 +1358,6 @@ struct task_struct *__switch_to(struct task_struct *prev,
 	 */
 
 #ifdef CONFIG_PPC_BOOK3S_64
-#ifdef CONFIG_PPC_64S_HASH_MMU
-	/*
-	 * This applies to a process that was context switched while inside
-	 * arch_enter_lazy_mmu_mode(), to re-activate the batch that was
-	 * deactivated above, before _switch(). This will never be the case
-	 * for new tasks.
-	 */
-	if (current_thread_info()->local_flags & _TLF_LAZY_MMU) {
-		current_thread_info()->local_flags &= ~_TLF_LAZY_MMU;
-		batch = this_cpu_ptr(&ppc64_tlb_batch);
-		batch->active = 1;
-	}
-#endif
-
 	/*
 	 * Math facilities are masked out of the child MSR in copy_thread.
 	 * A new task does not need to restore_math because it will
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 13:22:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 13:22:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170913.1495960 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWWu-0005fc-0g; Mon, 24 Nov 2025 13:22:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170913.1495960; Mon, 24 Nov 2025 13:22:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWWt-0005fV-Ty; Mon, 24 Nov 2025 13:22:55 +0000
Received: by outflank-mailman (input) for mailman id 1170913;
 Mon, 24 Nov 2025 13:22: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=H9wV=6A=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vNWWt-00059t-2J
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 13:22:55 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id af1d3336-c938-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 14:22: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 351551515;
 Mon, 24 Nov 2025 05:22:46 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 85C673F73B;
 Mon, 24 Nov 2025 05:22: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: af1d3336-c938-11f0-9d18-b5c5bf9af7f9
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v5 02/12] x86/xen: simplify flush_lazy_mmu()
Date: Mon, 24 Nov 2025 13:22:18 +0000
Message-ID: <20251124132228.622678-3-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251124132228.622678-1-kevin.brodsky@arm.com>
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

arch_flush_lazy_mmu_mode() is called when outstanding batched
pgtable operations must be completed immediately. There should
however be no need to leave and re-enter lazy MMU completely. The
only part of that sequence that we really need is xen_mc_flush();
call it directly.

Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Ryan Roberts <ryan.roberts@arm.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/x86/xen/mmu_pv.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
index 2a4a8deaf612..7a35c3393df4 100644
--- a/arch/x86/xen/mmu_pv.c
+++ b/arch/x86/xen/mmu_pv.c
@@ -2139,10 +2139,8 @@ static void xen_flush_lazy_mmu(void)
 {
 	preempt_disable();
 
-	if (xen_get_lazy_mode() == XEN_LAZY_MMU) {
-		arch_leave_lazy_mmu_mode();
-		arch_enter_lazy_mmu_mode();
-	}
+	if (xen_get_lazy_mode() == XEN_LAZY_MMU)
+		xen_mc_flush();
 
 	preempt_enable();
 }
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 13:23:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 13:23:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170915.1495971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWX0-00060s-86; Mon, 24 Nov 2025 13:23:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170915.1495971; Mon, 24 Nov 2025 13:23: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 1vNWX0-00060b-5A; Mon, 24 Nov 2025 13:23:02 +0000
Received: by outflank-mailman (input) for mailman id 1170915;
 Mon, 24 Nov 2025 13:23: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=H9wV=6A=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vNWWy-00059t-Jd
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 13:23:00 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id b25f9f44-c938-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 14:22: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 A86B71516;
 Mon, 24 Nov 2025 05:22:51 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 0518D3F73B;
 Mon, 24 Nov 2025 05:22: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: b25f9f44-c938-11f0-9d18-b5c5bf9af7f9
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v5 03/12] powerpc/mm: implement arch_flush_lazy_mmu_mode()
Date: Mon, 24 Nov 2025 13:22:19 +0000
Message-ID: <20251124132228.622678-4-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251124132228.622678-1-kevin.brodsky@arm.com>
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Upcoming changes to the lazy_mmu API will cause
arch_flush_lazy_mmu_mode() to be called when leaving a nested
lazy_mmu section.

Move the relevant logic from arch_leave_lazy_mmu_mode() to
arch_flush_lazy_mmu_mode() and have the former call the latter. The
radix_enabled() check is required in both as
arch_flush_lazy_mmu_mode() will be called directly from the generic
layer in a subsequent patch.

Note: the additional this_cpu_ptr() and radix_enabled() calls on the
arch_leave_lazy_mmu_mode() path will be removed in a subsequent
patch.

Acked-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 .../powerpc/include/asm/book3s/64/tlbflush-hash.h | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
index 146287d9580f..2d45f57df169 100644
--- a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
+++ b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
@@ -41,7 +41,7 @@ static inline void arch_enter_lazy_mmu_mode(void)
 	batch->active = 1;
 }
 
-static inline void arch_leave_lazy_mmu_mode(void)
+static inline void arch_flush_lazy_mmu_mode(void)
 {
 	struct ppc64_tlb_batch *batch;
 
@@ -51,12 +51,21 @@ static inline void arch_leave_lazy_mmu_mode(void)
 
 	if (batch->index)
 		__flush_tlb_pending(batch);
+}
+
+static inline void arch_leave_lazy_mmu_mode(void)
+{
+	struct ppc64_tlb_batch *batch;
+
+	if (radix_enabled())
+		return;
+	batch = this_cpu_ptr(&ppc64_tlb_batch);
+
+	arch_flush_lazy_mmu_mode();
 	batch->active = 0;
 	preempt_enable();
 }
 
-#define arch_flush_lazy_mmu_mode()      do {} while (0)
-
 extern void hash__tlbiel_all(unsigned int action);
 
 extern void flush_hash_page(unsigned long vpn, real_pte_t pte, int psize,
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 13:23:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 13:23:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170919.1495981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWX6-0006Ol-GL; Mon, 24 Nov 2025 13:23:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170919.1495981; Mon, 24 Nov 2025 13:23:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWX6-0006OY-CL; Mon, 24 Nov 2025 13:23:08 +0000
Received: by outflank-mailman (input) for mailman id 1170919;
 Mon, 24 Nov 2025 13:23: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=H9wV=6A=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vNWX5-00059s-2N
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 13:23:07 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id b5991714-c938-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 14:23: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 282AA1595;
 Mon, 24 Nov 2025 05:22:57 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 787003F73B;
 Mon, 24 Nov 2025 05:22: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: b5991714-c938-11f0-980a-7dc792cee155
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v5 04/12] sparc/mm: implement arch_flush_lazy_mmu_mode()
Date: Mon, 24 Nov 2025 13:22:20 +0000
Message-ID: <20251124132228.622678-5-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251124132228.622678-1-kevin.brodsky@arm.com>
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Upcoming changes to the lazy_mmu API will cause
arch_flush_lazy_mmu_mode() to be called when leaving a nested
lazy_mmu section.

Move the relevant logic from arch_leave_lazy_mmu_mode() to
arch_flush_lazy_mmu_mode() and have the former call the latter.

Note: the additional this_cpu_ptr() call on the
arch_leave_lazy_mmu_mode() path will be removed in a subsequent
patch.

Acked-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/sparc/include/asm/tlbflush_64.h | 2 +-
 arch/sparc/mm/tlb.c                  | 9 ++++++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/arch/sparc/include/asm/tlbflush_64.h b/arch/sparc/include/asm/tlbflush_64.h
index 8b8cdaa69272..925bb5d7a4e1 100644
--- a/arch/sparc/include/asm/tlbflush_64.h
+++ b/arch/sparc/include/asm/tlbflush_64.h
@@ -43,8 +43,8 @@ void flush_tlb_kernel_range(unsigned long start, unsigned long end);
 
 void flush_tlb_pending(void);
 void arch_enter_lazy_mmu_mode(void);
+void arch_flush_lazy_mmu_mode(void);
 void arch_leave_lazy_mmu_mode(void);
-#define arch_flush_lazy_mmu_mode()      do {} while (0)
 
 /* Local cpu only.  */
 void __flush_tlb_all(void);
diff --git a/arch/sparc/mm/tlb.c b/arch/sparc/mm/tlb.c
index a35ddcca5e76..7b5dfcdb1243 100644
--- a/arch/sparc/mm/tlb.c
+++ b/arch/sparc/mm/tlb.c
@@ -59,12 +59,19 @@ void arch_enter_lazy_mmu_mode(void)
 	tb->active = 1;
 }
 
-void arch_leave_lazy_mmu_mode(void)
+void arch_flush_lazy_mmu_mode(void)
 {
 	struct tlb_batch *tb = this_cpu_ptr(&tlb_batch);
 
 	if (tb->tlb_nr)
 		flush_tlb_pending();
+}
+
+void arch_leave_lazy_mmu_mode(void)
+{
+	struct tlb_batch *tb = this_cpu_ptr(&tlb_batch);
+
+	arch_flush_lazy_mmu_mode();
 	tb->active = 0;
 	preempt_enable();
 }
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 13:23:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 13:23:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170930.1495991 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWXC-0006yC-Mz; Mon, 24 Nov 2025 13:23:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170930.1495991; Mon, 24 Nov 2025 13:23:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWXC-0006y3-Jt; Mon, 24 Nov 2025 13:23:14 +0000
Received: by outflank-mailman (input) for mailman id 1170930;
 Mon, 24 Nov 2025 13:23: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=H9wV=6A=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vNWXB-00059s-ER
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 13:23:13 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id b8e2f317-c938-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 14:23: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 9CB1815A1;
 Mon, 24 Nov 2025 05:23:02 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id EBD573F73B;
 Mon, 24 Nov 2025 05:23: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: b8e2f317-c938-11f0-980a-7dc792cee155
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v5 05/12] mm: introduce CONFIG_ARCH_HAS_LAZY_MMU_MODE
Date: Mon, 24 Nov 2025 13:22:21 +0000
Message-ID: <20251124132228.622678-6-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251124132228.622678-1-kevin.brodsky@arm.com>
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Architectures currently opt in for implementing lazy_mmu helpers by
defining __HAVE_ARCH_ENTER_LAZY_MMU_MODE.

In preparation for introducing a generic lazy_mmu layer that will
require storage in task_struct, let's switch to a cleaner approach:
instead of defining a macro, select a CONFIG option.

This patch introduces CONFIG_ARCH_HAS_LAZY_MMU_MODE and has each
arch select it when it implements lazy_mmu helpers.
__HAVE_ARCH_ENTER_LAZY_MMU_MODE is removed and <linux/pgtable.h>
relies on the new CONFIG instead.

On x86, lazy_mmu helpers are only implemented if PARAVIRT_XXL is
selected. This creates some complications in arch/x86/boot/, because
a few files manually undefine PARAVIRT* options. As a result
<asm/paravirt.h> does not define the lazy_mmu helpers, but this
breaks the build as <linux/pgtable.h> only defines them if
!CONFIG_ARCH_HAS_LAZY_MMU_MODE. There does not seem to be a clean
way out of this - let's just undefine that new CONFIG too.

Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Reviewed-by: Ryan Roberts <ryan.roberts@arm.com>
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/arm64/Kconfig                                 | 1 +
 arch/arm64/include/asm/pgtable.h                   | 1 -
 arch/powerpc/include/asm/book3s/64/tlbflush-hash.h | 2 --
 arch/powerpc/platforms/Kconfig.cputype             | 1 +
 arch/sparc/Kconfig                                 | 1 +
 arch/sparc/include/asm/tlbflush_64.h               | 2 --
 arch/x86/Kconfig                                   | 1 +
 arch/x86/boot/compressed/misc.h                    | 1 +
 arch/x86/boot/startup/sme.c                        | 1 +
 arch/x86/include/asm/paravirt.h                    | 1 -
 include/linux/pgtable.h                            | 2 +-
 mm/Kconfig                                         | 3 +++
 12 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 6663ffd23f25..74be32f5f446 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -34,6 +34,7 @@ config ARM64
 	select ARCH_HAS_KCOV
 	select ARCH_HAS_KERNEL_FPU_SUPPORT if KERNEL_MODE_NEON
 	select ARCH_HAS_KEEPINITRD
+	select ARCH_HAS_LAZY_MMU_MODE
 	select ARCH_HAS_MEMBARRIER_SYNC_CORE
 	select ARCH_HAS_MEM_ENCRYPT
 	select ARCH_SUPPORTS_MSEAL_SYSTEM_MAPPINGS
diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
index 0944e296dd4a..54f8d6bb6f22 100644
--- a/arch/arm64/include/asm/pgtable.h
+++ b/arch/arm64/include/asm/pgtable.h
@@ -80,7 +80,6 @@ static inline void queue_pte_barriers(void)
 	}
 }
 
-#define  __HAVE_ARCH_ENTER_LAZY_MMU_MODE
 static inline void arch_enter_lazy_mmu_mode(void)
 {
 	/*
diff --git a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
index 2d45f57df169..565c1b7c3eae 100644
--- a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
+++ b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
@@ -24,8 +24,6 @@ DECLARE_PER_CPU(struct ppc64_tlb_batch, ppc64_tlb_batch);
 
 extern void __flush_tlb_pending(struct ppc64_tlb_batch *batch);
 
-#define __HAVE_ARCH_ENTER_LAZY_MMU_MODE
-
 static inline void arch_enter_lazy_mmu_mode(void)
 {
 	struct ppc64_tlb_batch *batch;
diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype
index 4c321a8ea896..f399917c17bd 100644
--- a/arch/powerpc/platforms/Kconfig.cputype
+++ b/arch/powerpc/platforms/Kconfig.cputype
@@ -93,6 +93,7 @@ config PPC_BOOK3S_64
 	select IRQ_WORK
 	select PPC_64S_HASH_MMU if !PPC_RADIX_MMU
 	select KASAN_VMALLOC if KASAN
+	select ARCH_HAS_LAZY_MMU_MODE
 
 config PPC_BOOK3E_64
 	bool "Embedded processors"
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index a630d373e645..2bad14744ca4 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -112,6 +112,7 @@ config SPARC64
 	select NEED_PER_CPU_PAGE_FIRST_CHUNK
 	select ARCH_SUPPORTS_SCHED_SMT if SMP
 	select ARCH_SUPPORTS_SCHED_MC  if SMP
+	select ARCH_HAS_LAZY_MMU_MODE
 
 config ARCH_PROC_KCORE_TEXT
 	def_bool y
diff --git a/arch/sparc/include/asm/tlbflush_64.h b/arch/sparc/include/asm/tlbflush_64.h
index 925bb5d7a4e1..4e1036728e2f 100644
--- a/arch/sparc/include/asm/tlbflush_64.h
+++ b/arch/sparc/include/asm/tlbflush_64.h
@@ -39,8 +39,6 @@ static inline void flush_tlb_range(struct vm_area_struct *vma,
 
 void flush_tlb_kernel_range(unsigned long start, unsigned long end);
 
-#define __HAVE_ARCH_ENTER_LAZY_MMU_MODE
-
 void flush_tlb_pending(void);
 void arch_enter_lazy_mmu_mode(void);
 void arch_flush_lazy_mmu_mode(void);
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index a3700766a8c0..db769c4addf9 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -805,6 +805,7 @@ config PARAVIRT
 config PARAVIRT_XXL
 	bool
 	depends on X86_64
+	select ARCH_HAS_LAZY_MMU_MODE
 
 config PARAVIRT_DEBUG
 	bool "paravirt-ops debugging"
diff --git a/arch/x86/boot/compressed/misc.h b/arch/x86/boot/compressed/misc.h
index db1048621ea2..cdd7f692d9ee 100644
--- a/arch/x86/boot/compressed/misc.h
+++ b/arch/x86/boot/compressed/misc.h
@@ -11,6 +11,7 @@
 #undef CONFIG_PARAVIRT
 #undef CONFIG_PARAVIRT_XXL
 #undef CONFIG_PARAVIRT_SPINLOCKS
+#undef CONFIG_ARCH_HAS_LAZY_MMU_MODE
 #undef CONFIG_KASAN
 #undef CONFIG_KASAN_GENERIC
 
diff --git a/arch/x86/boot/startup/sme.c b/arch/x86/boot/startup/sme.c
index e7ea65f3f1d6..b76a7c95dfe1 100644
--- a/arch/x86/boot/startup/sme.c
+++ b/arch/x86/boot/startup/sme.c
@@ -24,6 +24,7 @@
 #undef CONFIG_PARAVIRT
 #undef CONFIG_PARAVIRT_XXL
 #undef CONFIG_PARAVIRT_SPINLOCKS
+#undef CONFIG_ARCH_HAS_LAZY_MMU_MODE
 
 /*
  * This code runs before CPU feature bits are set. By default, the
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index b5e59a7ba0d0..13f9cd31c8f8 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -526,7 +526,6 @@ static inline void arch_end_context_switch(struct task_struct *next)
 	PVOP_VCALL1(cpu.end_context_switch, next);
 }
 
-#define  __HAVE_ARCH_ENTER_LAZY_MMU_MODE
 static inline void arch_enter_lazy_mmu_mode(void)
 {
 	PVOP_VCALL0(mmu.lazy_mode.enter);
diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
index b13b6f42be3c..de7d2c7e63eb 100644
--- a/include/linux/pgtable.h
+++ b/include/linux/pgtable.h
@@ -231,7 +231,7 @@ static inline int pmd_dirty(pmd_t pmd)
  * held, but for kernel PTE updates, no lock is held). Nesting is not permitted
  * and the mode cannot be used in interrupt context.
  */
-#ifndef __HAVE_ARCH_ENTER_LAZY_MMU_MODE
+#ifndef CONFIG_ARCH_HAS_LAZY_MMU_MODE
 static inline void arch_enter_lazy_mmu_mode(void) {}
 static inline void arch_leave_lazy_mmu_mode(void) {}
 static inline void arch_flush_lazy_mmu_mode(void) {}
diff --git a/mm/Kconfig b/mm/Kconfig
index bd0ea5454af8..a7486fae0cd3 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -1464,6 +1464,9 @@ config PT_RECLAIM
 config FIND_NORMAL_PAGE
 	def_bool n
 
+config ARCH_HAS_LAZY_MMU_MODE
+	bool
+
 source "mm/damon/Kconfig"
 
 endmenu
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 13:23:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 13:23:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170941.1496001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWXH-0007VX-9X; Mon, 24 Nov 2025 13:23:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170941.1496001; Mon, 24 Nov 2025 13:23:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWXH-0007VQ-5m; Mon, 24 Nov 2025 13:23:19 +0000
Received: by outflank-mailman (input) for mailman id 1170941;
 Mon, 24 Nov 2025 13:23: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=H9wV=6A=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vNWXG-00059t-3g
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 13:23:18 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id bc4e3899-c938-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 14:23: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 3CE2F1596;
 Mon, 24 Nov 2025 05:23:08 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6C0293F73B;
 Mon, 24 Nov 2025 05:23: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: bc4e3899-c938-11f0-9d18-b5c5bf9af7f9
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v5 06/12] mm: introduce generic lazy_mmu helpers
Date: Mon, 24 Nov 2025 13:22:22 +0000
Message-ID: <20251124132228.622678-7-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251124132228.622678-1-kevin.brodsky@arm.com>
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The implementation of the lazy MMU mode is currently entirely
arch-specific; core code directly calls arch helpers:
arch_{enter,leave}_lazy_mmu_mode().

We are about to introduce support for nested lazy MMU sections.
As things stand we'd have to duplicate that logic in every arch
implementing lazy_mmu - adding to a fair amount of logic
already duplicated across lazy_mmu implementations.

This patch therefore introduces a new generic layer that calls the
existing arch_* helpers. Two pair of calls are introduced:

* lazy_mmu_mode_enable() ... lazy_mmu_mode_disable()
    This is the standard case where the mode is enabled for a given
    block of code by surrounding it with enable() and disable()
    calls.

* lazy_mmu_mode_pause() ... lazy_mmu_mode_resume()
    This is for situations where the mode is temporarily disabled
    by first calling pause() and then resume() (e.g. to prevent any
    batching from occurring in a critical section).

The documentation in <linux/pgtable.h> will be updated in a
subsequent patch.

No functional change should be introduced at this stage.
The implementation of enable()/resume() and disable()/pause() is
currently identical, but nesting support will change that.

Most of the call sites have been updated using the following
Coccinelle script:

@@
@@
{
...
- arch_enter_lazy_mmu_mode();
+ lazy_mmu_mode_enable();
...
- arch_leave_lazy_mmu_mode();
+ lazy_mmu_mode_disable();
...
}

@@
@@
{
...
- arch_leave_lazy_mmu_mode();
+ lazy_mmu_mode_pause();
...
- arch_enter_lazy_mmu_mode();
+ lazy_mmu_mode_resume();
...
}

A couple of notes regarding x86:

* Xen is currently the only case where explicit handling is required
  for lazy MMU when context-switching. This is purely an
  implementation detail and using the generic lazy_mmu_mode_*
  functions would cause trouble when nesting support is introduced,
  because the generic functions must be called from the current task.
  For that reason we still use arch_leave() and arch_enter() there.

* x86 calls arch_flush_lazy_mmu_mode() unconditionally in a few
  places, but only defines it if PARAVIRT_XXL is selected, and we
  are removing the fallback in <linux/pgtable.h>. Add a new fallback
  definition to <asm/pgtable.h> to keep things building.

Acked-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/arm64/mm/mmu.c                     |  4 ++--
 arch/arm64/mm/pageattr.c                |  4 ++--
 arch/powerpc/mm/book3s64/hash_tlb.c     |  8 +++----
 arch/powerpc/mm/book3s64/subpage_prot.c |  4 ++--
 arch/x86/include/asm/pgtable.h          |  1 +
 fs/proc/task_mmu.c                      |  4 ++--
 include/linux/pgtable.h                 | 29 +++++++++++++++++++++----
 mm/kasan/shadow.c                       |  8 +++----
 mm/madvise.c                            | 18 +++++++--------
 mm/memory.c                             | 16 +++++++-------
 mm/migrate_device.c                     |  8 +++----
 mm/mprotect.c                           |  4 ++--
 mm/mremap.c                             |  4 ++--
 mm/userfaultfd.c                        |  4 ++--
 mm/vmalloc.c                            | 12 +++++-----
 mm/vmscan.c                             | 12 +++++-----
 16 files changed, 81 insertions(+), 59 deletions(-)

diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
index 94e29e3574ff..ce66ae77abaa 100644
--- a/arch/arm64/mm/mmu.c
+++ b/arch/arm64/mm/mmu.c
@@ -729,7 +729,7 @@ int split_kernel_leaf_mapping(unsigned long start, unsigned long end)
 		return -EINVAL;
 
 	mutex_lock(&pgtable_split_lock);
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	/*
 	 * The split_kernel_leaf_mapping_locked() may sleep, it is not a
@@ -751,7 +751,7 @@ int split_kernel_leaf_mapping(unsigned long start, unsigned long end)
 			ret = split_kernel_leaf_mapping_locked(end);
 	}
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	mutex_unlock(&pgtable_split_lock);
 	return ret;
 }
diff --git a/arch/arm64/mm/pageattr.c b/arch/arm64/mm/pageattr.c
index 5135f2d66958..e4059f13c4ed 100644
--- a/arch/arm64/mm/pageattr.c
+++ b/arch/arm64/mm/pageattr.c
@@ -110,7 +110,7 @@ static int update_range_prot(unsigned long start, unsigned long size,
 	if (WARN_ON_ONCE(ret))
 		return ret;
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	/*
 	 * The caller must ensure that the range we are operating on does not
@@ -119,7 +119,7 @@ static int update_range_prot(unsigned long start, unsigned long size,
 	 */
 	ret = walk_kernel_page_table_range_lockless(start, start + size,
 						    &pageattr_ops, NULL, &data);
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 
 	return ret;
 }
diff --git a/arch/powerpc/mm/book3s64/hash_tlb.c b/arch/powerpc/mm/book3s64/hash_tlb.c
index 21fcad97ae80..787f7a0e27f0 100644
--- a/arch/powerpc/mm/book3s64/hash_tlb.c
+++ b/arch/powerpc/mm/book3s64/hash_tlb.c
@@ -205,7 +205,7 @@ void __flush_hash_table_range(unsigned long start, unsigned long end)
 	 * way to do things but is fine for our needs here.
 	 */
 	local_irq_save(flags);
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 	for (; start < end; start += PAGE_SIZE) {
 		pte_t *ptep = find_init_mm_pte(start, &hugepage_shift);
 		unsigned long pte;
@@ -217,7 +217,7 @@ void __flush_hash_table_range(unsigned long start, unsigned long end)
 			continue;
 		hpte_need_flush(&init_mm, start, ptep, pte, hugepage_shift);
 	}
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	local_irq_restore(flags);
 }
 
@@ -237,7 +237,7 @@ void flush_hash_table_pmd_range(struct mm_struct *mm, pmd_t *pmd, unsigned long
 	 * way to do things but is fine for our needs here.
 	 */
 	local_irq_save(flags);
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 	start_pte = pte_offset_map(pmd, addr);
 	if (!start_pte)
 		goto out;
@@ -249,6 +249,6 @@ void flush_hash_table_pmd_range(struct mm_struct *mm, pmd_t *pmd, unsigned long
 	}
 	pte_unmap(start_pte);
 out:
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	local_irq_restore(flags);
 }
diff --git a/arch/powerpc/mm/book3s64/subpage_prot.c b/arch/powerpc/mm/book3s64/subpage_prot.c
index ec98e526167e..07c47673bba2 100644
--- a/arch/powerpc/mm/book3s64/subpage_prot.c
+++ b/arch/powerpc/mm/book3s64/subpage_prot.c
@@ -73,13 +73,13 @@ static void hpte_flush_range(struct mm_struct *mm, unsigned long addr,
 	pte = pte_offset_map_lock(mm, pmd, addr, &ptl);
 	if (!pte)
 		return;
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 	for (; npages > 0; --npages) {
 		pte_update(mm, addr, pte, 0, 0, 0);
 		addr += PAGE_SIZE;
 		++pte;
 	}
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	pte_unmap_unlock(pte - 1, ptl);
 }
 
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
index e33df3da6980..2842fa1f7a2c 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -118,6 +118,7 @@ extern pmdval_t early_pmd_flags;
 #define __pte(x)	native_make_pte(x)
 
 #define arch_end_context_switch(prev)	do {} while(0)
+static inline void arch_flush_lazy_mmu_mode(void) {}
 #endif	/* CONFIG_PARAVIRT_XXL */
 
 static inline pmd_t pmd_set_flags(pmd_t pmd, pmdval_t set)
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index d00ac179d973..ee1778adcc20 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -2737,7 +2737,7 @@ static int pagemap_scan_pmd_entry(pmd_t *pmd, unsigned long start,
 		return 0;
 	}
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	if ((p->arg.flags & PM_SCAN_WP_MATCHING) && !p->vec_out) {
 		/* Fast path for performing exclusive WP */
@@ -2807,7 +2807,7 @@ static int pagemap_scan_pmd_entry(pmd_t *pmd, unsigned long start,
 	if (flush_end)
 		flush_tlb_range(vma, start, addr);
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	pte_unmap_unlock(start_pte, ptl);
 
 	cond_resched();
diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
index de7d2c7e63eb..c121358dba15 100644
--- a/include/linux/pgtable.h
+++ b/include/linux/pgtable.h
@@ -231,10 +231,31 @@ static inline int pmd_dirty(pmd_t pmd)
  * held, but for kernel PTE updates, no lock is held). Nesting is not permitted
  * and the mode cannot be used in interrupt context.
  */
-#ifndef CONFIG_ARCH_HAS_LAZY_MMU_MODE
-static inline void arch_enter_lazy_mmu_mode(void) {}
-static inline void arch_leave_lazy_mmu_mode(void) {}
-static inline void arch_flush_lazy_mmu_mode(void) {}
+#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
+static inline void lazy_mmu_mode_enable(void)
+{
+	arch_enter_lazy_mmu_mode();
+}
+
+static inline void lazy_mmu_mode_disable(void)
+{
+	arch_leave_lazy_mmu_mode();
+}
+
+static inline void lazy_mmu_mode_pause(void)
+{
+	arch_leave_lazy_mmu_mode();
+}
+
+static inline void lazy_mmu_mode_resume(void)
+{
+	arch_enter_lazy_mmu_mode();
+}
+#else
+static inline void lazy_mmu_mode_enable(void) {}
+static inline void lazy_mmu_mode_disable(void) {}
+static inline void lazy_mmu_mode_pause(void) {}
+static inline void lazy_mmu_mode_resume(void) {}
 #endif
 
 #ifndef pte_batch_hint
diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
index 29a751a8a08d..c1433d5cc5db 100644
--- a/mm/kasan/shadow.c
+++ b/mm/kasan/shadow.c
@@ -305,7 +305,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep, unsigned long addr,
 	pte_t pte;
 	int index;
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_pause();
 
 	index = PFN_DOWN(addr - data->start);
 	page = data->pages[index];
@@ -319,7 +319,7 @@ static int kasan_populate_vmalloc_pte(pte_t *ptep, unsigned long addr,
 	}
 	spin_unlock(&init_mm.page_table_lock);
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_resume();
 
 	return 0;
 }
@@ -471,7 +471,7 @@ static int kasan_depopulate_vmalloc_pte(pte_t *ptep, unsigned long addr,
 	pte_t pte;
 	int none;
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_pause();
 
 	spin_lock(&init_mm.page_table_lock);
 	pte = ptep_get(ptep);
@@ -483,7 +483,7 @@ static int kasan_depopulate_vmalloc_pte(pte_t *ptep, unsigned long addr,
 	if (likely(!none))
 		__free_page(pfn_to_page(pte_pfn(pte)));
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_resume();
 
 	return 0;
 }
diff --git a/mm/madvise.c b/mm/madvise.c
index b617b1be0f53..6bf7009fa5ce 100644
--- a/mm/madvise.c
+++ b/mm/madvise.c
@@ -453,7 +453,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
 	if (!start_pte)
 		return 0;
 	flush_tlb_batched_pending(mm);
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 	for (; addr < end; pte += nr, addr += nr * PAGE_SIZE) {
 		nr = 1;
 		ptent = ptep_get(pte);
@@ -461,7 +461,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
 		if (++batch_count == SWAP_CLUSTER_MAX) {
 			batch_count = 0;
 			if (need_resched()) {
-				arch_leave_lazy_mmu_mode();
+				lazy_mmu_mode_disable();
 				pte_unmap_unlock(start_pte, ptl);
 				cond_resched();
 				goto restart;
@@ -497,7 +497,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
 				if (!folio_trylock(folio))
 					continue;
 				folio_get(folio);
-				arch_leave_lazy_mmu_mode();
+				lazy_mmu_mode_disable();
 				pte_unmap_unlock(start_pte, ptl);
 				start_pte = NULL;
 				err = split_folio(folio);
@@ -508,7 +508,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
 				if (!start_pte)
 					break;
 				flush_tlb_batched_pending(mm);
-				arch_enter_lazy_mmu_mode();
+				lazy_mmu_mode_enable();
 				if (!err)
 					nr = 0;
 				continue;
@@ -556,7 +556,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
 	}
 
 	if (start_pte) {
-		arch_leave_lazy_mmu_mode();
+		lazy_mmu_mode_disable();
 		pte_unmap_unlock(start_pte, ptl);
 	}
 	if (pageout)
@@ -675,7 +675,7 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr,
 	if (!start_pte)
 		return 0;
 	flush_tlb_batched_pending(mm);
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 	for (; addr != end; pte += nr, addr += PAGE_SIZE * nr) {
 		nr = 1;
 		ptent = ptep_get(pte);
@@ -724,7 +724,7 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr,
 				if (!folio_trylock(folio))
 					continue;
 				folio_get(folio);
-				arch_leave_lazy_mmu_mode();
+				lazy_mmu_mode_disable();
 				pte_unmap_unlock(start_pte, ptl);
 				start_pte = NULL;
 				err = split_folio(folio);
@@ -735,7 +735,7 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr,
 				if (!start_pte)
 					break;
 				flush_tlb_batched_pending(mm);
-				arch_enter_lazy_mmu_mode();
+				lazy_mmu_mode_enable();
 				if (!err)
 					nr = 0;
 				continue;
@@ -775,7 +775,7 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr,
 	if (nr_swap)
 		add_mm_counter(mm, MM_SWAPENTS, nr_swap);
 	if (start_pte) {
-		arch_leave_lazy_mmu_mode();
+		lazy_mmu_mode_disable();
 		pte_unmap_unlock(start_pte, ptl);
 	}
 	cond_resched();
diff --git a/mm/memory.c b/mm/memory.c
index 6675e87eb7dd..c0c29a3b0bcc 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -1256,7 +1256,7 @@ copy_pte_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma,
 	spin_lock_nested(src_ptl, SINGLE_DEPTH_NESTING);
 	orig_src_pte = src_pte;
 	orig_dst_pte = dst_pte;
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	do {
 		nr = 1;
@@ -1325,7 +1325,7 @@ copy_pte_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma,
 	} while (dst_pte += nr, src_pte += nr, addr += PAGE_SIZE * nr,
 		 addr != end);
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	pte_unmap_unlock(orig_src_pte, src_ptl);
 	add_mm_rss_vec(dst_mm, rss);
 	pte_unmap_unlock(orig_dst_pte, dst_ptl);
@@ -1842,7 +1842,7 @@ static unsigned long zap_pte_range(struct mmu_gather *tlb,
 		return addr;
 
 	flush_tlb_batched_pending(mm);
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 	do {
 		bool any_skipped = false;
 
@@ -1874,7 +1874,7 @@ static unsigned long zap_pte_range(struct mmu_gather *tlb,
 		direct_reclaim = try_get_and_clear_pmd(mm, pmd, &pmdval);
 
 	add_mm_rss_vec(mm, rss);
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 
 	/* Do the actual TLB flush before dropping ptl */
 	if (force_flush) {
@@ -2813,7 +2813,7 @@ static int remap_pte_range(struct mm_struct *mm, pmd_t *pmd,
 	mapped_pte = pte = pte_alloc_map_lock(mm, pmd, addr, &ptl);
 	if (!pte)
 		return -ENOMEM;
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 	do {
 		BUG_ON(!pte_none(ptep_get(pte)));
 		if (!pfn_modify_allowed(pfn, prot)) {
@@ -2823,7 +2823,7 @@ static int remap_pte_range(struct mm_struct *mm, pmd_t *pmd,
 		set_pte_at(mm, addr, pte, pte_mkspecial(pfn_pte(pfn, prot)));
 		pfn++;
 	} while (pte++, addr += PAGE_SIZE, addr != end);
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	pte_unmap_unlock(mapped_pte, ptl);
 	return err;
 }
@@ -3174,7 +3174,7 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
 			return -EINVAL;
 	}
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	if (fn) {
 		do {
@@ -3187,7 +3187,7 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
 	}
 	*mask |= PGTBL_PTE_MODIFIED;
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 
 	if (mm != &init_mm)
 		pte_unmap_unlock(mapped_pte, ptl);
diff --git a/mm/migrate_device.c b/mm/migrate_device.c
index 23379663b1e1..0346c2d7819f 100644
--- a/mm/migrate_device.c
+++ b/mm/migrate_device.c
@@ -271,7 +271,7 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
 	ptep = pte_offset_map_lock(mm, pmdp, start, &ptl);
 	if (!ptep)
 		goto again;
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 	ptep += (addr - start) / PAGE_SIZE;
 
 	for (; addr < end; addr += PAGE_SIZE, ptep++) {
@@ -313,7 +313,7 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
 			if (folio_test_large(folio)) {
 				int ret;
 
-				arch_leave_lazy_mmu_mode();
+				lazy_mmu_mode_disable();
 				pte_unmap_unlock(ptep, ptl);
 				ret = migrate_vma_split_folio(folio,
 							  migrate->fault_page);
@@ -356,7 +356,7 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
 			if (folio && folio_test_large(folio)) {
 				int ret;
 
-				arch_leave_lazy_mmu_mode();
+				lazy_mmu_mode_disable();
 				pte_unmap_unlock(ptep, ptl);
 				ret = migrate_vma_split_folio(folio,
 							  migrate->fault_page);
@@ -485,7 +485,7 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
 	if (unmapped)
 		flush_tlb_range(walk->vma, start, end);
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	pte_unmap_unlock(ptep - 1, ptl);
 
 	return 0;
diff --git a/mm/mprotect.c b/mm/mprotect.c
index 283889e4f1ce..c0571445bef7 100644
--- a/mm/mprotect.c
+++ b/mm/mprotect.c
@@ -233,7 +233,7 @@ static long change_pte_range(struct mmu_gather *tlb,
 		is_private_single_threaded = vma_is_single_threaded_private(vma);
 
 	flush_tlb_batched_pending(vma->vm_mm);
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 	do {
 		nr_ptes = 1;
 		oldpte = ptep_get(pte);
@@ -379,7 +379,7 @@ static long change_pte_range(struct mmu_gather *tlb,
 			}
 		}
 	} while (pte += nr_ptes, addr += nr_ptes * PAGE_SIZE, addr != end);
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	pte_unmap_unlock(pte - 1, ptl);
 
 	return pages;
diff --git a/mm/mremap.c b/mm/mremap.c
index 672264807db6..8275b9772ec1 100644
--- a/mm/mremap.c
+++ b/mm/mremap.c
@@ -260,7 +260,7 @@ static int move_ptes(struct pagetable_move_control *pmc,
 	if (new_ptl != old_ptl)
 		spin_lock_nested(new_ptl, SINGLE_DEPTH_NESTING);
 	flush_tlb_batched_pending(vma->vm_mm);
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	for (; old_addr < old_end; old_ptep += nr_ptes, old_addr += nr_ptes * PAGE_SIZE,
 		new_ptep += nr_ptes, new_addr += nr_ptes * PAGE_SIZE) {
@@ -305,7 +305,7 @@ static int move_ptes(struct pagetable_move_control *pmc,
 		}
 	}
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	if (force_flush)
 		flush_tlb_range(vma, old_end - len, old_end);
 	if (new_ptl != old_ptl)
diff --git a/mm/userfaultfd.c b/mm/userfaultfd.c
index e6dfd5f28acd..b11f81095fa5 100644
--- a/mm/userfaultfd.c
+++ b/mm/userfaultfd.c
@@ -1103,7 +1103,7 @@ static long move_present_ptes(struct mm_struct *mm,
 	/* It's safe to drop the reference now as the page-table is holding one. */
 	folio_put(*first_src_folio);
 	*first_src_folio = NULL;
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	while (true) {
 		orig_src_pte = ptep_get_and_clear(mm, src_addr, src_pte);
@@ -1140,7 +1140,7 @@ static long move_present_ptes(struct mm_struct *mm,
 			break;
 	}
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	if (src_addr > src_start)
 		flush_tlb_range(src_vma, src_start, src_addr);
 
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index ecbac900c35f..1dea299fbb5a 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -108,7 +108,7 @@ static int vmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
 	if (!pte)
 		return -ENOMEM;
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	do {
 		if (unlikely(!pte_none(ptep_get(pte)))) {
@@ -134,7 +134,7 @@ static int vmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
 		pfn++;
 	} while (pte += PFN_DOWN(size), addr += size, addr != end);
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	*mask |= PGTBL_PTE_MODIFIED;
 	return 0;
 }
@@ -366,7 +366,7 @@ static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
 	unsigned long size = PAGE_SIZE;
 
 	pte = pte_offset_kernel(pmd, addr);
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	do {
 #ifdef CONFIG_HUGETLB_PAGE
@@ -385,7 +385,7 @@ static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
 		WARN_ON(!pte_none(ptent) && !pte_present(ptent));
 	} while (pte += (size >> PAGE_SHIFT), addr += size, addr != end);
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	*mask |= PGTBL_PTE_MODIFIED;
 }
 
@@ -533,7 +533,7 @@ static int vmap_pages_pte_range(pmd_t *pmd, unsigned long addr,
 	if (!pte)
 		return -ENOMEM;
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	do {
 		struct page *page = pages[*nr];
@@ -555,7 +555,7 @@ static int vmap_pages_pte_range(pmd_t *pmd, unsigned long addr,
 		(*nr)++;
 	} while (pte++, addr += PAGE_SIZE, addr != end);
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	*mask |= PGTBL_PTE_MODIFIED;
 
 	return err;
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 92980b072121..564c97a9362f 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -3515,7 +3515,7 @@ static bool walk_pte_range(pmd_t *pmd, unsigned long start, unsigned long end,
 		return false;
 	}
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 restart:
 	for (i = pte_index(start), addr = start; addr != end; i++, addr += PAGE_SIZE) {
 		unsigned long pfn;
@@ -3556,7 +3556,7 @@ static bool walk_pte_range(pmd_t *pmd, unsigned long start, unsigned long end,
 	if (i < PTRS_PER_PTE && get_next_vma(PMD_MASK, PAGE_SIZE, args, &start, &end))
 		goto restart;
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	pte_unmap_unlock(pte, ptl);
 
 	return suitable_to_scan(total, young);
@@ -3597,7 +3597,7 @@ static void walk_pmd_range_locked(pud_t *pud, unsigned long addr, struct vm_area
 	if (!spin_trylock(ptl))
 		goto done;
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	do {
 		unsigned long pfn;
@@ -3644,7 +3644,7 @@ static void walk_pmd_range_locked(pud_t *pud, unsigned long addr, struct vm_area
 
 	walk_update_folio(walk, last, gen, dirty);
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 	spin_unlock(ptl);
 done:
 	*first = -1;
@@ -4243,7 +4243,7 @@ bool lru_gen_look_around(struct page_vma_mapped_walk *pvmw)
 		}
 	}
 
-	arch_enter_lazy_mmu_mode();
+	lazy_mmu_mode_enable();
 
 	pte -= (addr - start) / PAGE_SIZE;
 
@@ -4277,7 +4277,7 @@ bool lru_gen_look_around(struct page_vma_mapped_walk *pvmw)
 
 	walk_update_folio(walk, last, gen, dirty);
 
-	arch_leave_lazy_mmu_mode();
+	lazy_mmu_mode_disable();
 
 	/* feedback from rmap walkers to page table walkers */
 	if (mm_state && suitable_to_scan(i, young))
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 13:32:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 13:32:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170979.1496011 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWfk-0002PN-2w; Mon, 24 Nov 2025 13:32:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170979.1496011; Mon, 24 Nov 2025 13:32:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWfj-0002PG-VY; Mon, 24 Nov 2025 13:32:03 +0000
Received: by outflank-mailman (input) for mailman id 1170979;
 Mon, 24 Nov 2025 13:32:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=H9wV=6A=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vNWXQ-00059t-GZ
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 13:23:28 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c2cea1ed-c938-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 14:23: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 2C3A11655;
 Mon, 24 Nov 2025 05:23:19 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7D3443F73B;
 Mon, 24 Nov 2025 05:23: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: c2cea1ed-c938-11f0-9d18-b5c5bf9af7f9
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v5 08/12] mm: enable lazy_mmu sections to nest
Date: Mon, 24 Nov 2025 13:22:24 +0000
Message-ID: <20251124132228.622678-9-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251124132228.622678-1-kevin.brodsky@arm.com>
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Despite recent efforts to prevent lazy_mmu sections from nesting, it
remains difficult to ensure that it never occurs - and in fact it
does occur on arm64 in certain situations (CONFIG_DEBUG_PAGEALLOC).
Commit 1ef3095b1405 ("arm64/mm: Permit lazy_mmu_mode to be nested")
made nesting tolerable on arm64, but without truly supporting it:
the inner call to leave() disables the batching optimisation before
the outer section ends.

This patch actually enables lazy_mmu sections to nest by tracking
the nesting level in task_struct, in a similar fashion to e.g.
pagefault_{enable,disable}(). This is fully handled by the generic
lazy_mmu helpers that were recently introduced.

lazy_mmu sections were not initially intended to nest, so we need to
clarify the semantics w.r.t. the arch_*_lazy_mmu_mode() callbacks.
This patch takes the following approach:

* The outermost calls to lazy_mmu_mode_{enable,disable}() trigger
  calls to arch_{enter,leave}_lazy_mmu_mode() - this is unchanged.

* Nested calls to lazy_mmu_mode_{enable,disable}() are not forwarded
  to the arch via arch_{enter,leave} - lazy MMU remains enabled so
  the assumption is that these callbacks are not relevant. However,
  existing code may rely on a call to disable() to flush any batched
  state, regardless of nesting. arch_flush_lazy_mmu_mode() is
  therefore called in that situation.

A separate interface was recently introduced to temporarily pause
the lazy MMU mode: lazy_mmu_mode_{pause,resume}(). pause() fully
exits the mode *regardless of the nesting level*, and resume()
restores the mode at the same nesting level.

pause()/resume() are themselves allowed to nest, so we actually
store two nesting levels in task_struct: enable_count and
pause_count. A new helper in_lazy_mmu_mode() is introduced to
determine whether we are currently in lazy MMU mode; this will be
used in subsequent patches to replace the various ways arch's
currently track whether the mode is enabled.

In summary (enable/pause represent the values *after* the call):

lazy_mmu_mode_enable()		-> arch_enter()	    enable=1 pause=0
    lazy_mmu_mode_enable()	-> Ã¸		    enable=2 pause=0
	lazy_mmu_mode_pause()	-> arch_leave()     enable=2 pause=1
	lazy_mmu_mode_resume()	-> arch_enter()     enable=2 pause=0
    lazy_mmu_mode_disable()	-> arch_flush()     enable=1 pause=0
lazy_mmu_mode_disable()		-> arch_leave()     enable=0 pause=0

Note: in_lazy_mmu_mode() is added to <linux/sched.h> to allow arch
headers included by <linux/pgtable.h> to use it.

Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/arm64/include/asm/pgtable.h |  12 ----
 include/linux/mm_types_task.h    |   5 ++
 include/linux/pgtable.h          | 115 +++++++++++++++++++++++++++++--
 include/linux/sched.h            |  45 ++++++++++++
 4 files changed, 158 insertions(+), 19 deletions(-)

diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
index e596899f4029..a7d99dee3dc4 100644
--- a/arch/arm64/include/asm/pgtable.h
+++ b/arch/arm64/include/asm/pgtable.h
@@ -82,18 +82,6 @@ static inline void queue_pte_barriers(void)
 
 static inline void arch_enter_lazy_mmu_mode(void)
 {
-	/*
-	 * lazy_mmu_mode is not supposed to permit nesting. But in practice this
-	 * does happen with CONFIG_DEBUG_PAGEALLOC, where a page allocation
-	 * inside a lazy_mmu_mode section (such as zap_pte_range()) will change
-	 * permissions on the linear map with apply_to_page_range(), which
-	 * re-enters lazy_mmu_mode. So we tolerate nesting in our
-	 * implementation. The first call to arch_leave_lazy_mmu_mode() will
-	 * flush and clear the flag such that the remainder of the work in the
-	 * outer nest behaves as if outside of lazy mmu mode. This is safe and
-	 * keeps tracking simple.
-	 */
-
 	set_thread_flag(TIF_LAZY_MMU);
 }
 
diff --git a/include/linux/mm_types_task.h b/include/linux/mm_types_task.h
index a82aa80c0ba4..11bf319d78ec 100644
--- a/include/linux/mm_types_task.h
+++ b/include/linux/mm_types_task.h
@@ -88,4 +88,9 @@ struct tlbflush_unmap_batch {
 #endif
 };
 
+struct lazy_mmu_state {
+	u8 enable_count;
+	u8 pause_count;
+};
+
 #endif /* _LINUX_MM_TYPES_TASK_H */
diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
index 8ff6fdb4b13d..24fdb6f5c2e1 100644
--- a/include/linux/pgtable.h
+++ b/include/linux/pgtable.h
@@ -230,39 +230,140 @@ static inline int pmd_dirty(pmd_t pmd)
  * (In practice, for user PTE updates, the appropriate page table lock(s) are
  * held, but for kernel PTE updates, no lock is held). The mode is disabled in
  * interrupt context and calls to the lazy_mmu API have no effect.
- * Nesting is not permitted.
+ *
+ * The lazy MMU mode is enabled for a given block of code using:
+ *
+ *   lazy_mmu_mode_enable();
+ *   <code>
+ *   lazy_mmu_mode_disable();
+ *
+ * Nesting is permitted: <code> may itself use an enable()/disable() pair.
+ * A nested call to enable() has no functional effect; however disable() causes
+ * any batched architectural state to be flushed regardless of nesting. After a
+ * call to disable(), the caller can therefore rely on all previous page table
+ * modifications to have taken effect, but the lazy MMU mode may still be
+ * enabled.
+ *
+ * In certain cases, it may be desirable to temporarily pause the lazy MMU mode.
+ * This can be done using:
+ *
+ *   lazy_mmu_mode_pause();
+ *   <code>
+ *   lazy_mmu_mode_resume();
+ *
+ * pause() ensures that the mode is exited regardless of the nesting level;
+ * resume() re-enters the mode at the same nesting level. Any call to the
+ * lazy_mmu_mode_* API between those two calls has no effect. In particular,
+ * this means that pause()/resume() pairs may nest.
+ *
+ * in_lazy_mmu_mode() can be used to check whether the lazy MMU mode is
+ * currently enabled.
  */
 #ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
+/**
+ * lazy_mmu_mode_enable() - Enable the lazy MMU mode.
+ *
+ * Enters a new lazy MMU mode section; if the mode was not already enabled,
+ * enables it and calls arch_enter_lazy_mmu_mode().
+ *
+ * Must be paired with a call to lazy_mmu_mode_disable().
+ *
+ * Has no effect if called:
+ * - While paused - see lazy_mmu_mode_pause()
+ * - In interrupt context
+ */
 static inline void lazy_mmu_mode_enable(void)
 {
-	if (in_interrupt())
+	struct lazy_mmu_state *state = &current->lazy_mmu_state;
+
+	if (in_interrupt() || state->pause_count > 0)
 		return;
 
-	arch_enter_lazy_mmu_mode();
+	VM_WARN_ON_ONCE(state->enable_count == U8_MAX);
+
+	if (state->enable_count++ == 0)
+		arch_enter_lazy_mmu_mode();
 }
 
+/**
+ * lazy_mmu_mode_disable() - Disable the lazy MMU mode.
+ *
+ * Exits the current lazy MMU mode section. If it is the outermost section,
+ * disables the mode and calls arch_leave_lazy_mmu_mode(). Otherwise (nested
+ * section), calls arch_flush_lazy_mmu_mode().
+ *
+ * Must match a call to lazy_mmu_mode_enable().
+ *
+ * Has no effect if called:
+ * - While paused - see lazy_mmu_mode_pause()
+ * - In interrupt context
+ */
 static inline void lazy_mmu_mode_disable(void)
 {
-	if (in_interrupt())
+	struct lazy_mmu_state *state = &current->lazy_mmu_state;
+
+	if (in_interrupt() || state->pause_count > 0)
 		return;
 
-	arch_leave_lazy_mmu_mode();
+	VM_WARN_ON_ONCE(state->enable_count == 0);
+
+	if (--state->enable_count == 0)
+		arch_leave_lazy_mmu_mode();
+	else /* Exiting a nested section */
+		arch_flush_lazy_mmu_mode();
+
 }
 
+/**
+ * lazy_mmu_mode_pause() - Pause the lazy MMU mode.
+ *
+ * Pauses the lazy MMU mode; if it is currently active, disables it and calls
+ * arch_leave_lazy_mmu_mode().
+ *
+ * Must be paired with a call to lazy_mmu_mode_resume(). Calls to the
+ * lazy_mmu_mode_* API have no effect until the matching resume() call.
+ *
+ * Has no effect if called:
+ * - While paused (inside another pause()/resume() pair)
+ * - In interrupt context
+ */
 static inline void lazy_mmu_mode_pause(void)
 {
+	struct lazy_mmu_state *state = &current->lazy_mmu_state;
+
 	if (in_interrupt())
 		return;
 
-	arch_leave_lazy_mmu_mode();
+	VM_WARN_ON_ONCE(state->pause_count == U8_MAX);
+
+	if (state->pause_count++ == 0 && state->enable_count > 0)
+		arch_leave_lazy_mmu_mode();
 }
 
+/**
+ * lazy_mmu_mode_pause() - Resume the lazy MMU mode.
+ *
+ * Resumes the lazy MMU mode; if it was active at the point where the matching
+ * call to lazy_mmu_mode_pause() was made, re-enables it and calls
+ * arch_enter_lazy_mmu_mode().
+ *
+ * Must match a call to lazy_mmu_mode_pause().
+ *
+ * Has no effect if called:
+ * - While paused (inside another pause()/resume() pair)
+ * - In interrupt context
+ */
 static inline void lazy_mmu_mode_resume(void)
 {
+	struct lazy_mmu_state *state = &current->lazy_mmu_state;
+
 	if (in_interrupt())
 		return;
 
-	arch_enter_lazy_mmu_mode();
+	VM_WARN_ON_ONCE(state->pause_count == 0);
+
+	if (--state->pause_count == 0 && state->enable_count > 0)
+		arch_enter_lazy_mmu_mode();
 }
 #else
 static inline void lazy_mmu_mode_enable(void) {}
diff --git a/include/linux/sched.h b/include/linux/sched.h
index b469878de25c..847e242376db 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1441,6 +1441,10 @@ struct task_struct {
 
 	struct page_frag		task_frag;
 
+#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
+	struct lazy_mmu_state		lazy_mmu_state;
+#endif
+
 #ifdef CONFIG_TASK_DELAY_ACCT
 	struct task_delay_info		*delays;
 #endif
@@ -1724,6 +1728,47 @@ static inline char task_state_to_char(struct task_struct *tsk)
 	return task_index_to_char(task_state_index(tsk));
 }
 
+#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
+/**
+ * __task_lazy_mmu_mode_active() - Test the lazy MMU mode state for a task.
+ * @tsk: The task to check.
+ *
+ * Test whether @tsk has its lazy MMU mode state set to active (i.e. enabled
+ * and not paused).
+ *
+ * This function only considers the state saved in task_struct; to test whether
+ * current actually is in lazy MMU mode, in_lazy_mmu_mode() should be used
+ * instead.
+ *
+ * This function is intended for architectures that implement the lazy MMU
+ * mode; it must not be called from generic code.
+ */
+static inline bool __task_lazy_mmu_mode_active(struct task_struct *tsk)
+{
+	struct lazy_mmu_state *state = &tsk->lazy_mmu_state;
+
+	return state->enable_count > 0 && state->pause_count == 0;
+}
+
+/**
+ * in_lazy_mmu_mode() - Test whether we are currently in lazy MMU mode.
+ *
+ * Test whether the current context is in lazy MMU mode. This is true if both:
+ * 1. We are not in interrupt context
+ * 2. Lazy MMU mode is active for the current task
+ *
+ * This function is intended for architectures that implement the lazy MMU
+ * mode; it must not be called from generic code.
+ */
+static inline bool in_lazy_mmu_mode(void)
+{
+	if (in_interrupt())
+		return false;
+
+	return __task_lazy_mmu_mode_active(current);
+}
+#endif
+
 extern struct pid *cad_pid;
 
 /*
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 13:32:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 13:32:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170981.1496021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWfv-0002j9-Ej; Mon, 24 Nov 2025 13:32:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170981.1496021; Mon, 24 Nov 2025 13:32:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWfv-0002j0-Br; Mon, 24 Nov 2025 13:32:15 +0000
Received: by outflank-mailman (input) for mailman id 1170981;
 Mon, 24 Nov 2025 13:32:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=H9wV=6A=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vNWXm-00059t-FJ
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 13:23:50 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id cff5f49e-c938-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 14:23: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 32E20169E;
 Mon, 24 Nov 2025 05:23:41 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 80E893F73B;
 Mon, 24 Nov 2025 05:23: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: cff5f49e-c938-11f0-9d18-b5c5bf9af7f9
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v5 12/12] x86/xen: use lazy_mmu_state when context-switching
Date: Mon, 24 Nov 2025 13:22:28 +0000
Message-ID: <20251124132228.622678-13-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251124132228.622678-1-kevin.brodsky@arm.com>
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

We currently set a TIF flag when scheduling out a task that is in
lazy MMU mode, in order to restore it when the task is scheduled
again.

The generic lazy_mmu layer now tracks whether a task is in lazy MMU
mode in task_struct::lazy_mmu_state. We can therefore check that
state when switching to the new task, instead of using a separate
TIF flag.

Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/x86/include/asm/thread_info.h | 4 +---
 arch/x86/xen/enlighten_pv.c        | 3 +--
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h
index e71e0e8362ed..0067684afb5b 100644
--- a/arch/x86/include/asm/thread_info.h
+++ b/arch/x86/include/asm/thread_info.h
@@ -100,8 +100,7 @@ struct thread_info {
 #define TIF_FORCED_TF		24	/* true if TF in eflags artificially */
 #define TIF_SINGLESTEP		25	/* reenable singlestep on user return*/
 #define TIF_BLOCKSTEP		26	/* set when we want DEBUGCTLMSR_BTF */
-#define TIF_LAZY_MMU_UPDATES	27	/* task is updating the mmu lazily */
-#define TIF_ADDR32		28	/* 32-bit address space on 64 bits */
+#define TIF_ADDR32		27	/* 32-bit address space on 64 bits */
 
 #define _TIF_SSBD		BIT(TIF_SSBD)
 #define _TIF_SPEC_IB		BIT(TIF_SPEC_IB)
@@ -114,7 +113,6 @@ struct thread_info {
 #define _TIF_FORCED_TF		BIT(TIF_FORCED_TF)
 #define _TIF_BLOCKSTEP		BIT(TIF_BLOCKSTEP)
 #define _TIF_SINGLESTEP		BIT(TIF_SINGLESTEP)
-#define _TIF_LAZY_MMU_UPDATES	BIT(TIF_LAZY_MMU_UPDATES)
 #define _TIF_ADDR32		BIT(TIF_ADDR32)
 
 /* flags to check in __switch_to() */
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 4806cc28d7ca..98dbb6a61087 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -426,7 +426,6 @@ static void xen_start_context_switch(struct task_struct *prev)
 
 	if (this_cpu_read(xen_lazy_mode) == XEN_LAZY_MMU) {
 		arch_leave_lazy_mmu_mode();
-		set_ti_thread_flag(task_thread_info(prev), TIF_LAZY_MMU_UPDATES);
 	}
 	enter_lazy(XEN_LAZY_CPU);
 }
@@ -437,7 +436,7 @@ static void xen_end_context_switch(struct task_struct *next)
 
 	xen_mc_flush();
 	leave_lazy(XEN_LAZY_CPU);
-	if (test_and_clear_ti_thread_flag(task_thread_info(next), TIF_LAZY_MMU_UPDATES))
+	if (__task_lazy_mmu_mode_active(next))
 		arch_enter_lazy_mmu_mode();
 }
 
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 13:32:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 13:32:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1170999.1496030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWgM-0003TH-Ns; Mon, 24 Nov 2025 13:32:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1170999.1496030; Mon, 24 Nov 2025 13:32: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 1vNWgM-0003T7-LE; Mon, 24 Nov 2025 13:32:42 +0000
Received: by outflank-mailman (input) for mailman id 1170999;
 Mon, 24 Nov 2025 13:32: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=H9wV=6A=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vNWXL-00059t-FQ
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 13:23:23 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id bf8baa1b-c938-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 14:23: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 AD6DE497;
 Mon, 24 Nov 2025 05:23:13 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 09DCF3F73B;
 Mon, 24 Nov 2025 05: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: bf8baa1b-c938-11f0-9d18-b5c5bf9af7f9
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v5 07/12] mm: bail out of lazy_mmu_mode_* in interrupt context
Date: Mon, 24 Nov 2025 13:22:23 +0000
Message-ID: <20251124132228.622678-8-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251124132228.622678-1-kevin.brodsky@arm.com>
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The lazy MMU mode cannot be used in interrupt context. This is
documented in <linux/pgtable.h>, but isn't consistently handled
across architectures.

arm64 ensures that calls to lazy_mmu_mode_* have no effect in
interrupt context, because such calls do occur in certain
configurations - see commit b81c688426a9 ("arm64/mm: Disable barrier
batching in interrupt contexts"). Other architectures do not check
this situation, most likely because it hasn't occurred so far.

Let's handle this in the new generic lazy_mmu layer, in the same
fashion as arm64: bail out of lazy_mmu_mode_* if in_interrupt().
Also remove the arm64 handling that is now redundant.

Both arm64 and x86/Xen also ensure that any lazy MMU optimisation is
disabled while in interrupt (see queue_pte_barriers() and
xen_get_lazy_mode() respectively). This will be handled in the
generic layer in a subsequent patch.

Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/arm64/include/asm/pgtable.h |  9 ---------
 include/linux/pgtable.h          | 17 +++++++++++++++--
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
index 54f8d6bb6f22..e596899f4029 100644
--- a/arch/arm64/include/asm/pgtable.h
+++ b/arch/arm64/include/asm/pgtable.h
@@ -94,26 +94,17 @@ static inline void arch_enter_lazy_mmu_mode(void)
 	 * keeps tracking simple.
 	 */
 
-	if (in_interrupt())
-		return;
-
 	set_thread_flag(TIF_LAZY_MMU);
 }
 
 static inline void arch_flush_lazy_mmu_mode(void)
 {
-	if (in_interrupt())
-		return;
-
 	if (test_and_clear_thread_flag(TIF_LAZY_MMU_PENDING))
 		emit_pte_barriers();
 }
 
 static inline void arch_leave_lazy_mmu_mode(void)
 {
-	if (in_interrupt())
-		return;
-
 	arch_flush_lazy_mmu_mode();
 	clear_thread_flag(TIF_LAZY_MMU);
 }
diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
index c121358dba15..8ff6fdb4b13d 100644
--- a/include/linux/pgtable.h
+++ b/include/linux/pgtable.h
@@ -228,27 +228,40 @@ static inline int pmd_dirty(pmd_t pmd)
  * of the lazy mode. So the implementation must assume preemption may be enabled
  * and cpu migration is possible; it must take steps to be robust against this.
  * (In practice, for user PTE updates, the appropriate page table lock(s) are
- * held, but for kernel PTE updates, no lock is held). Nesting is not permitted
- * and the mode cannot be used in interrupt context.
+ * held, but for kernel PTE updates, no lock is held). The mode is disabled in
+ * interrupt context and calls to the lazy_mmu API have no effect.
+ * Nesting is not permitted.
  */
 #ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
 static inline void lazy_mmu_mode_enable(void)
 {
+	if (in_interrupt())
+		return;
+
 	arch_enter_lazy_mmu_mode();
 }
 
 static inline void lazy_mmu_mode_disable(void)
 {
+	if (in_interrupt())
+		return;
+
 	arch_leave_lazy_mmu_mode();
 }
 
 static inline void lazy_mmu_mode_pause(void)
 {
+	if (in_interrupt())
+		return;
+
 	arch_leave_lazy_mmu_mode();
 }
 
 static inline void lazy_mmu_mode_resume(void)
 {
+	if (in_interrupt())
+		return;
+
 	arch_enter_lazy_mmu_mode();
 }
 #else
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 13:32:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 13:32:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171003.1496041 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWgZ-0003tU-VO; Mon, 24 Nov 2025 13:32:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171003.1496041; Mon, 24 Nov 2025 13:32: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 1vNWgZ-0003tN-S3; Mon, 24 Nov 2025 13:32:55 +0000
Received: by outflank-mailman (input) for mailman id 1171003;
 Mon, 24 Nov 2025 13:32:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=H9wV=6A=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vNWXh-00059s-TF
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 13:23:45 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id cc9cb624-c938-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 14:23: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 B13981692;
 Mon, 24 Nov 2025 05:23:35 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E23013F73B;
 Mon, 24 Nov 2025 05:23: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: cc9cb624-c938-11f0-980a-7dc792cee155
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org,
	"David Hildenbrand (Red Hat)" <david@kernel.org>
Subject: [PATCH v5 11/12] sparc/mm: replace batch->active with in_lazy_mmu_mode()
Date: Mon, 24 Nov 2025 13:22:27 +0000
Message-ID: <20251124132228.622678-12-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251124132228.622678-1-kevin.brodsky@arm.com>
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

A per-CPU batch struct is activated when entering lazy MMU mode; its
lifetime is the same as the lazy MMU section (it is deactivated when
leaving the mode). Preemption is disabled in that interval to ensure
that the per-CPU reference remains valid.

The generic lazy_mmu layer now tracks whether a task is in lazy MMU
mode. We can therefore use the generic helper in_lazy_mmu_mode()
to tell whether a batch struct is active instead of tracking it
explicitly.

Acked-by: David Hildenbrand (Red Hat) <david@kernel.org>
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/sparc/include/asm/tlbflush_64.h | 1 -
 arch/sparc/mm/tlb.c                  | 9 +--------
 2 files changed, 1 insertion(+), 9 deletions(-)

diff --git a/arch/sparc/include/asm/tlbflush_64.h b/arch/sparc/include/asm/tlbflush_64.h
index 4e1036728e2f..6133306ba59a 100644
--- a/arch/sparc/include/asm/tlbflush_64.h
+++ b/arch/sparc/include/asm/tlbflush_64.h
@@ -12,7 +12,6 @@ struct tlb_batch {
 	unsigned int hugepage_shift;
 	struct mm_struct *mm;
 	unsigned long tlb_nr;
-	unsigned long active;
 	unsigned long vaddrs[TLB_BATCH_NR];
 };
 
diff --git a/arch/sparc/mm/tlb.c b/arch/sparc/mm/tlb.c
index 7b5dfcdb1243..879e22c86e5c 100644
--- a/arch/sparc/mm/tlb.c
+++ b/arch/sparc/mm/tlb.c
@@ -52,11 +52,7 @@ void flush_tlb_pending(void)
 
 void arch_enter_lazy_mmu_mode(void)
 {
-	struct tlb_batch *tb;
-
 	preempt_disable();
-	tb = this_cpu_ptr(&tlb_batch);
-	tb->active = 1;
 }
 
 void arch_flush_lazy_mmu_mode(void)
@@ -69,10 +65,7 @@ void arch_flush_lazy_mmu_mode(void)
 
 void arch_leave_lazy_mmu_mode(void)
 {
-	struct tlb_batch *tb = this_cpu_ptr(&tlb_batch);
-
 	arch_flush_lazy_mmu_mode();
-	tb->active = 0;
 	preempt_enable();
 }
 
@@ -93,7 +86,7 @@ static void tlb_batch_add_one(struct mm_struct *mm, unsigned long vaddr,
 		nr = 0;
 	}
 
-	if (!tb->active) {
+	if (!in_lazy_mmu_mode()) {
 		flush_tsb_user_page(mm, vaddr, hugepage_shift);
 		global_flush_tlb_page(mm, vaddr);
 		goto out;
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 13:33:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 13:33:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171023.1496052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWhH-0004rl-97; Mon, 24 Nov 2025 13:33:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171023.1496052; Mon, 24 Nov 2025 13:33:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWhH-0004rc-5L; Mon, 24 Nov 2025 13:33:39 +0000
Received: by outflank-mailman (input) for mailman id 1171023;
 Mon, 24 Nov 2025 13: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=H9wV=6A=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vNWXb-00059t-7p
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 13:23:39 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id c95c3fea-c938-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 14:23:38 +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 1DBA81691;
 Mon, 24 Nov 2025 05:23:30 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6EF3F3F73B;
 Mon, 24 Nov 2025 05:23: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: c95c3fea-c938-11f0-9d18-b5c5bf9af7f9
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v5 10/12] powerpc/mm: replace batch->active with in_lazy_mmu_mode()
Date: Mon, 24 Nov 2025 13:22:26 +0000
Message-ID: <20251124132228.622678-11-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251124132228.622678-1-kevin.brodsky@arm.com>
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

A per-CPU batch struct is activated when entering lazy MMU mode; its
lifetime is the same as the lazy MMU section (it is deactivated when
leaving the mode). Preemption is disabled in that interval to ensure
that the per-CPU reference remains valid.

The generic lazy_mmu layer now tracks whether a task is in lazy MMU
mode. We can therefore use the generic helper in_lazy_mmu_mode()
to tell whether a batch struct is active instead of tracking it
explicitly.

Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/powerpc/include/asm/book3s/64/tlbflush-hash.h | 9 ---------
 arch/powerpc/mm/book3s64/hash_tlb.c                | 2 +-
 2 files changed, 1 insertion(+), 10 deletions(-)

diff --git a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
index 565c1b7c3eae..6cc9abcd7b3d 100644
--- a/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
+++ b/arch/powerpc/include/asm/book3s/64/tlbflush-hash.h
@@ -12,7 +12,6 @@
 #define PPC64_TLB_BATCH_NR 192
 
 struct ppc64_tlb_batch {
-	int			active;
 	unsigned long		index;
 	struct mm_struct	*mm;
 	real_pte_t		pte[PPC64_TLB_BATCH_NR];
@@ -26,8 +25,6 @@ extern void __flush_tlb_pending(struct ppc64_tlb_batch *batch);
 
 static inline void arch_enter_lazy_mmu_mode(void)
 {
-	struct ppc64_tlb_batch *batch;
-
 	if (radix_enabled())
 		return;
 	/*
@@ -35,8 +32,6 @@ static inline void arch_enter_lazy_mmu_mode(void)
 	 * operating on kernel page tables.
 	 */
 	preempt_disable();
-	batch = this_cpu_ptr(&ppc64_tlb_batch);
-	batch->active = 1;
 }
 
 static inline void arch_flush_lazy_mmu_mode(void)
@@ -53,14 +48,10 @@ static inline void arch_flush_lazy_mmu_mode(void)
 
 static inline void arch_leave_lazy_mmu_mode(void)
 {
-	struct ppc64_tlb_batch *batch;
-
 	if (radix_enabled())
 		return;
-	batch = this_cpu_ptr(&ppc64_tlb_batch);
 
 	arch_flush_lazy_mmu_mode();
-	batch->active = 0;
 	preempt_enable();
 }
 
diff --git a/arch/powerpc/mm/book3s64/hash_tlb.c b/arch/powerpc/mm/book3s64/hash_tlb.c
index 787f7a0e27f0..72b83f582b6d 100644
--- a/arch/powerpc/mm/book3s64/hash_tlb.c
+++ b/arch/powerpc/mm/book3s64/hash_tlb.c
@@ -100,7 +100,7 @@ void hpte_need_flush(struct mm_struct *mm, unsigned long addr,
 	 * Check if we have an active batch on this CPU. If not, just
 	 * flush now and return.
 	 */
-	if (!batch->active) {
+	if (!in_lazy_mmu_mode()) {
 		flush_hash_page(vpn, rpte, psize, ssize, mm_is_thread_local(mm));
 		put_cpu_var(ppc64_tlb_batch);
 		return;
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 13:34:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 13:34:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171031.1496061 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWhf-0005RI-GQ; Mon, 24 Nov 2025 13:34:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171031.1496061; Mon, 24 Nov 2025 13: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 1vNWhf-0005RB-D9; Mon, 24 Nov 2025 13:34:03 +0000
Received: by outflank-mailman (input) for mailman id 1171031;
 Mon, 24 Nov 2025 13:34: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=H9wV=6A=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vNWXX-00059s-5y
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 13:23:35 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id c5ff4f93-c938-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 14:23:32 +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 A1C19168F;
 Mon, 24 Nov 2025 05:23:24 -0800 (PST)
Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com
 [10.1.194.54])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id F00C93F73B;
 Mon, 24 Nov 2025 05: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: c5ff4f93-c938-11f0-980a-7dc792cee155
From: Kevin Brodsky <kevin.brodsky@arm.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	Kevin Brodsky <kevin.brodsky@arm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Andreas Larsson <andreas@gaisler.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	David Hildenbrand <david@redhat.com>,
	"David S. Miller" <davem@davemloft.net>,
	David Woodhouse <dwmw2@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>,
	Jann Horn <jannh@google.com>,
	Juergen Gross <jgross@suse.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@suse.com>,
	Mike Rapoport <rppt@kernel.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Will Deacon <will@kernel.org>,
	Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	x86@kernel.org
Subject: [PATCH v5 09/12] arm64: mm: replace TIF_LAZY_MMU with in_lazy_mmu_mode()
Date: Mon, 24 Nov 2025 13:22:25 +0000
Message-ID: <20251124132228.622678-10-kevin.brodsky@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <20251124132228.622678-1-kevin.brodsky@arm.com>
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The generic lazy_mmu layer now tracks whether a task is in lazy MMU
mode. As a result we no longer need a TIF flag for that purpose -
let's use the new in_lazy_mmu_mode() helper instead.

The explicit check for in_interrupt() is no longer necessary either
as in_lazy_mmu_mode() always returns false in interrupt context.

Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
---
 arch/arm64/include/asm/pgtable.h     | 19 +++----------------
 arch/arm64/include/asm/thread_info.h |  3 +--
 2 files changed, 4 insertions(+), 18 deletions(-)

diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
index a7d99dee3dc4..dd7ed653a20d 100644
--- a/arch/arm64/include/asm/pgtable.h
+++ b/arch/arm64/include/asm/pgtable.h
@@ -62,28 +62,16 @@ static inline void emit_pte_barriers(void)
 
 static inline void queue_pte_barriers(void)
 {
-	unsigned long flags;
-
-	if (in_interrupt()) {
-		emit_pte_barriers();
-		return;
-	}
-
-	flags = read_thread_flags();
-
-	if (flags & BIT(TIF_LAZY_MMU)) {
+	if (in_lazy_mmu_mode()) {
 		/* Avoid the atomic op if already set. */
-		if (!(flags & BIT(TIF_LAZY_MMU_PENDING)))
+		if (!test_thread_flag(TIF_LAZY_MMU_PENDING))
 			set_thread_flag(TIF_LAZY_MMU_PENDING);
 	} else {
 		emit_pte_barriers();
 	}
 }
 
-static inline void arch_enter_lazy_mmu_mode(void)
-{
-	set_thread_flag(TIF_LAZY_MMU);
-}
+static inline void arch_enter_lazy_mmu_mode(void) {}
 
 static inline void arch_flush_lazy_mmu_mode(void)
 {
@@ -94,7 +82,6 @@ static inline void arch_flush_lazy_mmu_mode(void)
 static inline void arch_leave_lazy_mmu_mode(void)
 {
 	arch_flush_lazy_mmu_mode();
-	clear_thread_flag(TIF_LAZY_MMU);
 }
 
 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
diff --git a/arch/arm64/include/asm/thread_info.h b/arch/arm64/include/asm/thread_info.h
index f241b8601ebd..4ff8da0767d9 100644
--- a/arch/arm64/include/asm/thread_info.h
+++ b/arch/arm64/include/asm/thread_info.h
@@ -84,8 +84,7 @@ void arch_setup_new_exec(void);
 #define TIF_SME_VL_INHERIT	28	/* Inherit SME vl_onexec across exec */
 #define TIF_KERNEL_FPSTATE	29	/* Task is in a kernel mode FPSIMD section */
 #define TIF_TSC_SIGSEGV		30	/* SIGSEGV on counter-timer access */
-#define TIF_LAZY_MMU		31	/* Task in lazy mmu mode */
-#define TIF_LAZY_MMU_PENDING	32	/* Ops pending for lazy mmu mode exit */
+#define TIF_LAZY_MMU_PENDING	31	/* Ops pending for lazy mmu mode exit */
 
 #define _TIF_SIGPENDING		(1 << TIF_SIGPENDING)
 #define _TIF_NEED_RESCHED	(1 << TIF_NEED_RESCHED)
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 13:36:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 13:36:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171049.1496071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWkJ-0006Rk-U5; Mon, 24 Nov 2025 13:36:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171049.1496071; Mon, 24 Nov 2025 13: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 1vNWkJ-0006Rd-Qe; Mon, 24 Nov 2025 13:36:47 +0000
Received: by outflank-mailman (input) for mailman id 1171049;
 Mon, 24 Nov 2025 13:36: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=Io9E=6A=linaro.org=alex.bennee@srs-se1.protection.inumbo.net>)
 id 1vNWkJ-0006RX-1M
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 13:36: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 9ec70a1c-c93a-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 14:36:45 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-477ba2c1ca2so44813755e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 05:36:45 -0800 (PST)
Received: from draig.lan ([185.126.160.19]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-477a9de4631sm150284365e9.7.2025.11.24.05.36.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 05:36:44 -0800 (PST)
Received: from draig (localhost [IPv6:::1])
 by draig.lan (Postfix) with ESMTP id B54585F83A;
 Mon, 24 Nov 2025 13:36:42 +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: 9ec70a1c-c93a-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1763991405; x=1764596205; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:message-id:date:user-agent
         :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=H4xz24Wztw7HTdPYy7ecg89+rhyVWxJPlTjrMGFkQrQ=;
        b=LLKKt8dmIeXRZWcU4FXPpdtVRbiQIp15aoj6OYV/tG8UpLwfQtmgH0d0wiNf8rpBhc
         UfW7zIV1+eTtxK7e3n6dIILnQVB9FsqfxFeZe1gSX+WZ/bw7HCeI+rdeL94OlvZjBx2/
         IudJDcy5NtHeQC5jOEDyuhPhxwJdI9dFWC2i5S8+iQiwjA1cyugdoSYRTZXVPxRdHfd7
         n6R7VXusUfyF/CNvElPKIWjHRTTcZx950wIkPZkeSPCbwYBJ42oTZ4ZfjEdEwJjDNRba
         0UCibhGqbgWiZkB9iT0u4uMvJK2BSbGDQLKfQtCKxqueyte9rds6edXlpJ9EIpkEEUlm
         cyOg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763991405; x=1764596205;
        h=content-transfer-encoding:mime-version:message-id:date:user-agent
         :references:in-reply-to:subject:cc:to:from:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=H4xz24Wztw7HTdPYy7ecg89+rhyVWxJPlTjrMGFkQrQ=;
        b=SxlvUo2l+4VL7UNxYSCiQtoaNzsmremqpbdrptm6VyGtKQyV37qqC4auP4+/nsXD5O
         U2YDG/o71lUF8a7u8h5OIMSTeFt7H6JzfzCFUSZdwP3EgfXvFhy6DY6elX3FTOUj5RhX
         j+m5Iej7w1MWwBSoUYwq9KEDiOtT+OqlqxH2EmX+8Y6nUZoRxlppqRMFx+jpEeygiBeO
         07kwBrK3mQ/jDnV62U6iDLeWZAts25wUU3WWhrMmmWlBEze0DU4fZXVHXpV1qZ3wbvzh
         m96mfwXQMKHAVtEUF/MpucWlNI06ObKXqeuBJSHrtNjhqD6t4pNJnfhE264UDRWgGfQM
         jQrw==
X-Forwarded-Encrypted: i=1; AJvYcCWIm44PXRAvX+RWf3KFL+Zn/r34i6AgaXaU7fCtCdReE0lLj/s70Gw8954JdUcZODKz6ilelnWzMjE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzrO0Q1K6ehKKmExlmV4ds8rMHr7922gw6mJ8HQSwkkUf1CJcaa
	buX4Wq42gW7der3o8mPyqetrN2QGJfBgsfOFmNGc7EkrzWKSjUCPcXiGKR1aaL0AdpA=
X-Gm-Gg: ASbGncu/U5+rauNFE7dATQlZgynzg3E9UmdCDxsiMu8OdfPDfdo9ynwJWghmJC9Z7Ba
	v56Nhx+3iKUEjEtdfFFATZbNk3lOcvVnXSk+fGdGSfJ/TFrCvlqABA+maQ3r2DEIYM7efH3p9fq
	/tyzEbFlxkzsP6ZCBElWYoOafgUJAlzjB71uoUhdt/leM2pZQCNxAoM1RTpTWIWBFy+/6UrowDT
	OmrNX2ZmIGZ2bDYfGnvGmvNOx9u+2EzXzKYxYd4K2Pqx4xlyqIJCJrED/nM27FgxzhEa9y8egvA
	c9si9mBtvc1VCfn7KmVcgASavZ+af5i7rivuzbAQPr2u396Pg13cFnU5zJecj/nuokN8rs5idMU
	kUhaQpu1Mg1Rvj/Sz2AJLUzV28HndBhyaDtdsXcEgN/FrAeIWXkP2ijeNioRcviOPS/sC31J6dC
	UmZ6M9mnBk7Ko=
X-Google-Smtp-Source: AGHT+IF0dJ+uMYoGxGrKESeuk5j4XBM/pzNa5EuAcMp8he8Y2t4N1T0BAg/Un3bNs5VkrlausSw3DQ==
X-Received: by 2002:a05:600c:4694:b0:477:9814:6882 with SMTP id 5b1f17b1804b1-477c016bbf6mr110840675e9.5.1763991405177;
        Mon, 24 Nov 2025 05:36:45 -0800 (PST)
From: =?utf-8?Q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>
To: Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Cc: Mark Cave-Ayland <mark.caveayland@nutanix.com>,  qemu-devel@nongnu.org,
  Paolo Bonzini <pbonzini@redhat.com>,  David Woodhouse
 <dwmw2@infradead.org>,  Paul Durrant <paul@xen.org>,  Eduardo Habkost
 <eduardo@habkost.net>,  xen-devel@lists.xenproject.org,  Anthony PERARD
 <anthony@xenproject.org>,  Stefano Stabellini <sstabellini@kernel.org>,
  Richard Henderson <richard.henderson@linaro.org>,  "Michael S. Tsirkin"
 <mst@redhat.com>,  Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Subject: Re: [PATCH] hw/i386/isapc: Remove dead Xen code
In-Reply-To: <39f5f781-398b-4974-8b1e-e7061ed9194f@linaro.org> ("Philippe
	=?utf-8?Q?Mathieu-Daud=C3=A9=22's?= message of "Mon, 24 Nov 2025 12:07:08
 +0100")
References: <20251123185832.53802-1-philmd@linaro.org>
	<066cb998-e89a-4cd1-a89b-865f4a6dcbbd@nutanix.com>
	<39f5f781-398b-4974-8b1e-e7061ed9194f@linaro.org>
User-Agent: mu4e 1.12.14-pre3; emacs 30.1
Date: Mon, 24 Nov 2025 13:36:42 +0000
Message-ID: <87wm3f8sd1.fsf@draig.linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Philippe Mathieu-Daud=C3=A9 <philmd@linaro.org> writes:

> On 24/11/25 11:27, Mark Cave-Ayland wrote:
>> On 23/11/2025 18:58, Philippe Mathieu-Daud=C3=A9 wrote:
>>=20
>>> We don't use Xen on the isapc machine: let's remove
>>> pointless code.
>>>
>>> Signed-off-by: Philippe Mathieu-Daud=C3=A9 <philmd@linaro.org>
>>> ---
>>> =C2=A0 hw/i386/isapc.c | 27 ++++-----------------------
>>> =C2=A0 1 file changed, 4 insertions(+), 23 deletions(-)
>>>
>>> diff --git a/hw/i386/isapc.c b/hw/i386/isapc.c
>>> index 1ba9ae22cc3..1e13a30c505 100644
>>> --- a/hw/i386/isapc.c
>>> +++ b/hw/i386/isapc.c
>>> @@ -17,8 +17,6 @@
>>> =C2=A0 #include "hw/ide/ide-bus.h"
>>> =C2=A0 #include "system/kvm.h"
>>> =C2=A0 #include "hw/i386/kvm/clock.h"
>>> -#include "hw/xen/xen-x86.h"
>>> -#include "system/xen.h"
>>> =C2=A0 #include "hw/rtc/mc146818rtc.h"
>>> =C2=A0 #include "target/i386/cpu.h"
>>> @@ -37,7 +35,6 @@ static void pc_init_isa(MachineState *machine)
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ISABus *isa_bus;
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 uint32_t irq;
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 GSIState *gsi_state;
>>> -=C2=A0=C2=A0=C2=A0 MemoryRegion *ram_memory;
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS=
];
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 int i;
>>> @@ -77,15 +74,9 @@ static void pc_init_isa(MachineState *machine)
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /*
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * There is no RAM split for the is=
apc machine
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 */
>>> -=C2=A0=C2=A0=C2=A0 if (xen_enabled()) {
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 xen_hvm_init_pc(pcms, &ram_=
memory);
>>> -=C2=A0=C2=A0=C2=A0 } else {
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ram_memory =3D machine->ram;
>>> -
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pcms->max_ram_below_4g =3D =
3.5 * GiB;
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 x86ms->above_4g_mem_size =
=3D 0;
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 x86ms->below_4g_mem_size =
=3D machine->ram_size;
>>> -=C2=A0=C2=A0=C2=A0 }
>>> +=C2=A0=C2=A0=C2=A0 pcms->max_ram_below_4g =3D 3.5 * GiB;
>>> +=C2=A0=C2=A0=C2=A0 x86ms->above_4g_mem_size =3D 0;
>>> +=C2=A0=C2=A0=C2=A0 x86ms->below_4g_mem_size =3D machine->ram_size;
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 x86_cpus_init(x86ms, pcmc->default_cpu_v=
ersion);
>>> @@ -94,17 +85,7 @@ static void pc_init_isa(MachineState *machine)
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* allocate ram and load rom/bios */
>>> -=C2=A0=C2=A0=C2=A0 if (!xen_enabled()) {
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pc_memory_init(pcms, system=
_memory, system_memory, 0);
>>> -=C2=A0=C2=A0=C2=A0 } else {
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 assert(machine->ram_size =
=3D=3D x86ms->below_4g_mem_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=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 x86ms->a=
bove_4g_mem_size);
>>> -
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (machine->kernel_filenam=
e !=3D NULL) {
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* =
For xen HVM direct kernel boot, load linux here */
>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 xen=
_load_linux(pcms);
>>> -=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 pc_memory_init(pcms, system_memory, system_memory, =
0);
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 gsi_state =3D pc_gsi_create(&x86ms->gsi,=
 false);
>> FWIW I did contact upstream about this (see https://patchew.org/
>> QEMU/20250618112828.235087-1-
>> mark.caveayland@nutanix.com/20250618112828.235087-13-
>> mark.caveayland@nutanix.com/#91b96b24-af60-4a89-91ec-
>> d0e660a76a0a@nutanix.com) and they mentioned that it should work,
>> which is why I left it in.
>> Unfortunately I don't currently have any way to test it here :/
>
> OK :| IMHO upstream Xen maintainers should provide us a test, otherwise
> we can not make our code base evolve.

Ok how about this:

  As of the xen commit 9e8672f1c36 (tools: remove xend and associated
  python modules) there is no longer the ability to emulate an ISA only
  system. As a result we can drop the code in isapc. We still need to
  support the ISA bus for the -m pc type as Xen doesn't support the q35
  machine model for HVM.

I think the actual support got removed earlier but this was when the
last bits of "Simulate an ISA only system" where removed in 2013.

--=20
Alex Benn=C3=A9e
Virtualisation Tech Lead @ Linaro


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 13:39:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 13:39:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171067.1496081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWn2-00072w-EG; Mon, 24 Nov 2025 13:39:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171067.1496081; Mon, 24 Nov 2025 13:39: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 1vNWn2-00072p-Ar; Mon, 24 Nov 2025 13:39:36 +0000
Received: by outflank-mailman (input) for mailman id 1171067;
 Mon, 24 Nov 2025 13:39: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=w9RL=6A=alien8.de=bp@srs-se1.protection.inumbo.net>)
 id 1vNWn1-00072j-9q
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 13:39:35 +0000
Received: from mail.alien8.de (mail.alien8.de [2a01:4f9:3051:3f93::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 005638de-c93b-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 14:39:29 +0100 (CET)
Received: from localhost (localhost.localdomain [127.0.0.1])
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id 33F8C40E016C; 
 Mon, 24 Nov 2025 13:39:27 +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 dUX_2TyVOwvg; Mon, 24 Nov 2025 13:39:23 +0000 (UTC)
Received: from zn.tnic (p57969402.dip0.t-ipconnect.de [87.150.148.2])
 (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
 4C08F40E015B; Mon, 24 Nov 2025 13:38:59 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 005638de-c93b-11f0-980a-7dc792cee155
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=1763991561; bh=xMHHbvFeagw1OXMRREZidPFJD/S6z/TheDKCK1dG36Q=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=ifXA1bY3AIdKdV1RAnJe9hR1HoTJK2HQxoKq4XpkqyoEZF0P+j1J+7ZcN7rBWUDcm
	 oYIJpyHEwvEgbBhN4SUbwy9M3rPtz8mZ9KIHA+4XWKlZM9sJg4Netd7by8HO/WfwU+
	 izUQ49pOfE2WCVKQEme59LDaN1qKCPhLWMfPc9dqBXeYjNNbtk4PEeDe4UKe8r3jcX
	 cGgQWdXyE14McksoYKJh8aEd3dTE+0KDYzV2heqjB5matuLT2+0zE2pfxQlwvNiTjo
	 /IEVNfKmQgtVmArwa//GOT0te7zCWkVDbmmzyyFyrHqtrPyJNxOw485KFnaoXcBoHR
	 VXZDdCWu7U72JPGhB3GL4+0WjVSu5w57ooBqcfE6Y0VkGE1VlprxFjxUH5acKEERbH
	 VfQSlXVSFmv6+ISkviWPAt+y481hRdqsTVQxNnzVyAQthZpHMmlvDjFGUeDrY5OeUh
	 xgGDNbXeLdQBp+FbNXuYLrpUp9WEv6YKuJec/ShIgGMUZrIFh/N/cV3lLIrV3Kq7TW
	 2LeL5VLaje2ETKAQfBeqVSK6ALMPmXJr4dKdD/ORNUCXoOtytmAO8sJb2/JPTs9BuI
	 kYDPV8yWq0yD6+ZWREKiz8EOBe8+QAIHM8A+OVhvh+bLylBPTIo1lBQIKyu0MJXEcM
	 vakOICMeaSVGLRtHz7pTfGAY=
Date: Mon, 24 Nov 2025 14:38:58 +0100
From: Borislav Petkov <bp@alien8.de>
To: Juergen Gross <jgross@suse.com>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
	linux-hyperv@vger.kernel.org, Andy Lutomirski <luto@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"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>,
	Peter Zijlstra <peterz@infradead.org>,
	Will Deacon <will@kernel.org>, Boqun Feng <boqun.feng@gmail.com>,
	Waiman Long <longman@redhat.com>, Jiri Kosina <jikos@kernel.org>,
	Josh Poimboeuf <jpoimboe@kernel.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3 01/21] x86/paravirt: Remove not needed includes of
 paravirt.h
Message-ID: <20251124133858.GFaSRf8rU6w3Tf3wU_@fat_crate.local>
References: <20251006074606.1266-1-jgross@suse.com>
 <20251006074606.1266-2-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20251006074606.1266-2-jgross@suse.com>
Content-Transfer-Encoding: quoted-printable

On Mon, Oct 06, 2025 at 09:45:46AM +0200, Juergen Gross wrote:
> In some places asm/paravirt.h is included without really being needed.

Except they are:

$ make allnoconfig
$ rebuild-kernel.sh
...

arch/x86/kernel/x86_init.c:90:43: error: =E2=80=98default_banner=E2=80=99=
 undeclared here (not in a function)
   90 |                 .banner                 =3D default_banner,
      |                                           ^~~~~~~~~~~~~~
make[4]: *** [scripts/Makefile.build:287: arch/x86/kernel/x86_init.o] Err=
or 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [scripts/Makefile.build:556: arch/x86/kernel] Error 2
make[2]: *** [scripts/Makefile.build:556: arch/x86] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/mnt/kernel/kernel/linux/Makefile:2010: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2

--=20
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 13:43:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 13:43:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171082.1496091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWrF-0000le-S7; Mon, 24 Nov 2025 13:43:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171082.1496091; Mon, 24 Nov 2025 13:43:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNWrF-0000ke-OU; Mon, 24 Nov 2025 13:43:57 +0000
Received: by outflank-mailman (input) for mailman id 1171082;
 Mon, 24 Nov 2025 13:43: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=q+WF=6A=bounce.vates.tech=bounce-md_30504962.69246114.v1-996e3febf77541058d7a8895e834a16e@srs-se1.protection.inumbo.net>)
 id 1vNWrE-0000kX-IX
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 13:43:56 +0000
Received: from mail136-9.atl41.mandrillapp.com
 (mail136-9.atl41.mandrillapp.com [198.2.136.9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9b875cb6-c93b-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 14:43:50 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-9.atl41.mandrillapp.com (Mailchimp) with ESMTP id 4dFRqm6YJxzHXYgd9
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 13:43:48 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 996e3febf77541058d7a8895e834a16e; Mon, 24 Nov 2025 13:43: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: 9b875cb6-c93b-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763991828; x=1764261828;
	bh=tgHAZmk0TqxSfJ22MEtgYW7nyHYSd/spYYd3Txp8mGc=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=V1Yv7mgmp+iLihaK79ev2IqvpaIVvoFMcIMint+Ok2IJraj3taBLtiWWBgKGxkZAd
	 YUz59xu32zb9cuxxGaDeoqXIAmsrpnmz8sso9mCXCutbbynOUOh8O88PQS2eMtmbRE
	 NEFvvPEfT0pTK/4hkmgdEcyF/YdZ4ILGGNxG0J5ZAGHlzQBrBUhij5rEwoVrGfnz1c
	 rHishlfvFMowfMYM+ahxIF0FhJLZls9tXIG0C7GcaLdIeWoo1oFDCDRgM+b3281eHV
	 nA3dGIeBNajFQcj8soq1+aEg9GIFFdZHAKw6qhI014mqnG1zLEfYDdWBWTnlPac21U
	 d7ZgJufDTnZjg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763991828; x=1764252328; i=ngoc-tu.dinh@vates.tech;
	bh=tgHAZmk0TqxSfJ22MEtgYW7nyHYSd/spYYd3Txp8mGc=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=XhZ7/VJkYyfkY1B5pGhPSYHZjPbR837VPetl1QdeplnIpWiG/JPDjn0Tz4DTjEe3/
	 0pGbaTndZo9L4Hwhnh/wWVK/ilEhOBgKBQ76tRIthhLH/pR1AHr4Usb4axH/GKcYRa
	 EzcrAEbMTaYB5SHaWSpiX3UNslQcMrzqhq0/E7P7kQ+vYkVXP0nmKT4OmHKTl9b6xL
	 zoDh8DDE2Wgx8K8yoIzgorRm5iGcYCcgEWh1T6LiZ8Y/1qg2qZtZMILE0mxm4t+Uib
	 QUKkCfFs0M4huiw3eT04tuJZyQjT5H0kdPrrHneY91fvYvmclomWrXStRdAcHa61Z5
	 QgcC451MA6Dcw==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[PATCH]=20x86/vhpet:=20Fix=20sanitization=20of=20legacy=20IRQ=20route?=
X-Mailer: git-send-email 2.51.2.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763991827489
To: xen-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <20251124134344.456-1-ngoc-tu.dinh@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.996e3febf77541058d7a8895e834a16e?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251124:md
Date: Mon, 24 Nov 2025 13:43:48 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

When setting a timer's config register, timer_sanitize_int_route will
always reset the IRQ route value to what's valid corresponding to the
!HPET_CFG_LEGACY case. This is applied even if the HPET is set to
HPET_CFG_LEGACY.

When some operating systems (e.g. Windows) try to write to a timer
config, they will verify and rewrite the register if the values don't
match what they expect. This causes an unnecessary write to HPET_Tn_CFG.

Note, the HPET specification states that for the Tn_INT_ROUTE_CNF field:

"If the value is not supported by this prarticular timer, then the value
read back will not match what is written. [...] If the LegacyReplacement
Route bit is set, then Timers 0 and 1 will have a different routing, and
this bit field has no effect for those two timers."

Therefore, Xen should not reset timer_int_route if legacy mode is
enabled, regardless of what's in there.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
 xen/arch/x86/hvm/hpet.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/hvm/hpet.c b/xen/arch/x86/hvm/hpet.c
index f0e5f877f4..fb2f4f94aa 100644
--- a/xen/arch/x86/hvm/hpet.c
+++ b/xen/arch/x86/hvm/hpet.c
@@ -48,6 +48,8 @@
 #define timer_is_32bit(h, n)     (timer_config(h, n) & HPET_TN_32BIT)
 #define hpet_enabled(h)          ((h)->hpet.config & HPET_CFG_ENABLE)
 #define timer_level(h, n)        (timer_config(h, n) & HPET_TN_LEVEL)
+#define timer_is_legacy(h, n) \
+    (((n) <= 1) && ((h)->hpet.config & HPET_CFG_LEGACY))
 
 #define timer_int_route(h, n)    MASK_EXTR(timer_config(h, n), HPET_TN_ROUTE)
 
@@ -244,7 +246,7 @@ static void hpet_set_timer(HPETState *h, unsigned int tn,
          (timer_level(h, tn) && test_bit(tn, &h->hpet.isr)) )
         return;
 
-    if ( !timer_int_route_valid(h, tn) )
+    if ( !timer_is_legacy(h, tn) && !timer_int_route_valid(h, tn) )
     {
         ASSERT_UNREACHABLE();
         return;
@@ -275,7 +277,7 @@ static void hpet_set_timer(HPETState *h, unsigned int tn,
             ? (uint32_t)diff : 0;
 
     destroy_periodic_time(&h->pt[tn]);
-    if ( (tn <= 1) && (h->hpet.config & HPET_CFG_LEGACY) )
+    if ( timer_is_legacy(h, tn) )
     {
         /* if LegacyReplacementRoute bit is set, HPET specification requires
            timer0 be routed to IRQ0 in NON-APIC or IRQ2 in the I/O APIC,
@@ -323,7 +325,7 @@ static inline uint64_t hpet_fixup_reg(
 
 static void timer_sanitize_int_route(HPETState *h, unsigned int tn)
 {
-    if ( timer_int_route_valid(h, tn) )
+    if ( timer_is_legacy(h, tn) || timer_int_route_valid(h, tn) )
         return;
 
     timer_config(h, tn) &= ~HPET_TN_ROUTE;
@@ -379,6 +381,9 @@ static int cf_check hpet_write(
         h->hpet.config = hpet_fixup_reg(new_val, old_val,
                                         HPET_CFG_ENABLE | HPET_CFG_LEGACY);
 
+        for ( i = 0; i < HPET_TIMER_NUM; i++ )
+            timer_sanitize_int_route(h, i);
+
         if ( !(old_val & HPET_CFG_ENABLE) && (new_val & HPET_CFG_ENABLE) )
         {
             /* Enable main counter and interrupt generation. */
-- 
2.43.0



--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 14:01:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 14:01:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171102.1496124 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNX82-00057h-EN; Mon, 24 Nov 2025 14:01:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171102.1496124; Mon, 24 Nov 2025 14:01: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 1vNX82-00057a-Bc; Mon, 24 Nov 2025 14:01:18 +0000
Received: by outflank-mailman (input) for mailman id 1171102;
 Mon, 24 Nov 2025 14:01: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNX80-00057U-Uj
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 14:01:16 +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 064d8412-c93e-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 15:01:08 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4775ae5684fso20545995e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 06:01: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-477a9741cbfsm148951455e9.6.2025.11.24.06.01.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 06:01: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: 064d8412-c93e-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763992867; x=1764597667; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ML58FBPSxysCWpD1yxLQZEGp5iIqJHiw0QRyZEcff1Q=;
        b=fL3PO3cUrWDRtwr+bm8581q79Gt4tsS93k9geIwKlh3z78ygEGa7ZzYGQ2CyY5gduj
         FDHILpR3Glr5vCHx7deBsi/fk54b3viu2CwDU92QQDO1nw06wMZLCtFBtKyB+wfg9pPf
         PLarGPvA/pLXX6DjS2lHI4XgF1BOmTt8GqlgNErailnX/YSZ/p9Q7Ee6OVP5IsepgqD/
         F/G2CpsqG+JHnCE2ymbzX2lfrcF5vGvvAec5FothJu+bddPgTIhL5yyzuU3lVHMPOl60
         GlhQz90EWPigClZvgh0SFx+n3OD2QpVqsPvxOgzaC7Ti2ZwIfIkgeeccBqg81g8ahROv
         m23Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763992867; x=1764597667;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ML58FBPSxysCWpD1yxLQZEGp5iIqJHiw0QRyZEcff1Q=;
        b=XuIoMJzcLmEBnyw+EUaDeuwP5Dr4hJFmWl9Ihq4CsOpS4A6PEdeOoeX+EHrkK7ekji
         m13a70Beaouv+KJdvRDzfEOflcl25JYfLcopMlRxo/qIBSAWQUXsjJttoHIE7Lt4A0Vb
         O+9Ytn6WhKFuSPIpzyjV9D2O77lUU0xpFhxDvrDM60lD0F0lChWFlwMxBnUG0RnnTvTN
         8z1Yvv9VWLXeTxUz8s5Tn6Oj3vz6Lr6WbnvfBN8sXOCp9GkbdiyZLhq3qpLsFNfXC4F4
         R1kqfZfn++F56CEdbAm8FcL9ODPJ0QnQVgUTCdQFz4vtZ84pK+xoYWaV+YAx7hM1qCVt
         sIOQ==
X-Forwarded-Encrypted: i=1; AJvYcCVCWTbnVAVT55I8KdgaWv+I1bjpXQDpOMGv8OfXYzk6z4ESvGYZy7rCZFTSh9ZR2y7L7O/WvM2uWDA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwKEXlr6aLSqnl/csu5jy+ZrOJ2UkjrY4ooC5652zdEtq/UtCdA
	0pBd7uC1arKlM8hyOTlcnnItwpd2uo65raaisjC03p5/fkM6hmb7V1H3YdmdGTmyqg==
X-Gm-Gg: ASbGncub7lFSjtf40uDpbXyNL3dKaufrizix+80sSvLG4buxTI3Mgc8IXGMADbH3Gm5
	MohxTCEN335QzTZlG7OFoathWbBbVgr0j6GyxW+kgOD1cRLuBEtYXV+t3vaVK6/PQcoFgkK21oo
	8ok/ldzVbfS5o5a6C5xOa+/BYQN72np6/PR/hwlDzehsds8OP7d/rZNpfCwAfwSwQsjuJjG8h6X
	kukx3IrWnL5LCNWzspIe+wK9hkkCuq2KSZuRTZ6NNXT3kW954hVYyjOsAAumP5P78enf0CB/WHe
	OnQEPniyZPDRanM0ob31yAwBFgePTfJDzDqPy5bNrACYd45Qi1meotjcDWL6lJKhKpUj3/yT0jn
	dQtHbsUDkT0NZ9O3q6qjZEWKLmT+Lmi52dkAuyqs3cm9EnbNl3LhwN1FAoLGpWM7NJM/Ysw2bwQ
	Iw3owNmugOMkI2WtOzubjmxuUVA7Llg7xH8882TtkEhsmoqgArD8+lNITeNqlSVmgKBT4Of+BqA
	Go=
X-Google-Smtp-Source: AGHT+IFT1whUjKYtTgpEDECPBcXmS320OB8fUYbyoj3mdZOOD5r0xDswf0JegDZjF4l6TsozKANY5w==
X-Received: by 2002:a05:600c:1c82:b0:477:9650:3175 with SMTP id 5b1f17b1804b1-477c1057310mr142509235e9.0.1763992867286;
        Mon, 24 Nov 2025 06:01:07 -0800 (PST)
Message-ID: <0372e719-a79e-445b-a354-2e11562bfdc2@suse.com>
Date: Mon, 24 Nov 2025 15:01:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/7] xen/p2m: move xenmem_access_to_p2m_access() to
 common p2m.c
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251121091554.1003315-1-Penny.Zheng@amd.com>
 <20251121091554.1003315-6-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251121091554.1003315-6-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2025 10:15, Penny Zheng wrote:
> Memory access and ALTP2M are two seperate features, while both depending on
> helper xenmem_access_to_p2m_access(). So it betters lives in common p2m.c,
> other than mem_access.c which will be compiled out when VM_EVENT=n && ALTP2M=y.
> Guard xenmem_access_to_p2m_access() with VM_EVENT || ALTP2M, otherwise it
> will become unreachable when both VM_EVENT=n and ALTP2M=n, and hence
> violating Misra rule 2.1
> We also need to move declaration from mem_access.h to p2m-common.h
> An extra blank line is inserted after each case-block to correct coding
> style at the same time.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 14:09:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 14:09:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171112.1496135 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNXG1-0006Ib-7Z; Mon, 24 Nov 2025 14:09:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171112.1496135; Mon, 24 Nov 2025 14: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 1vNXG1-0006IU-4Z; Mon, 24 Nov 2025 14:09:33 +0000
Received: by outflank-mailman (input) for mailman id 1171112;
 Mon, 24 Nov 2025 14:09: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNXG0-0006IO-Pm
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 14:09:32 +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 31a8797e-c93f-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 15:09:30 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4775ae77516so43338975e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 06: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
 5b1f17b1804b1-477bf355933sm204587465e9.2.2025.11.24.06.09.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 06: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: 31a8797e-c93f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763993370; x=1764598170; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=urPv6yEaucr2kDu/N+cWy7DIUBkfIijypwCbMj4VoGI=;
        b=Lmh/12bu+S3AiprlBNwdvLp3UUVEhnT9x3DZCaKPuK/xM0ao2IpIOIWGCHft7RL0FJ
         PTKQ+nERJakW9KcQ7TYR8UsmLqxpJWZO445BNEGFHMVikR5ZA8L+1aEESln2qboAO8k6
         pzuNyf+4QCsXEPpeVaNEq3XFft8STHyY+hL4KJykuYGy1PTfL2YI16Bd+43OZZU1Hbvp
         a5n9x72oDRqCnOJJLdD0VzWipwEe0+uMmtO0ptokYn4GaJbCgnruiaSpENiRLcjtOLRO
         I7QO4MUttbEk5sow2iAPXpNMDgXOuKaKfyOQjcNrgS7dhf1l8cci1pj3of8Mh9XKc0PX
         wb8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763993370; x=1764598170;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=urPv6yEaucr2kDu/N+cWy7DIUBkfIijypwCbMj4VoGI=;
        b=XnsEbN+bOzFr3XZfKIEvS1hdzaeCPx/VgFDfkG9B3okTxcZX3nNwwpVuQuLqaRReQk
         BbfgpAdeA62Cey5+/ufVhNHVbKMCtc2oZ3hBk4hBQXyCp2VevkpWP4xrdlQ27vI3Yt2Z
         dOlI42L13sVUjzUPF0xJ39RVhG+aGVYv9/9dTWKV3wAyLM1bSRa2XgxR6ueFMGqYs7+H
         HWDgaNlK2LQn+kwBMsmXgwhr1GF7oAcwZgeLbvbTckv48L/NNiAtkiBMRPfSef5mdYQo
         vs114Yj+beyJMLJtz0rx+uXAjNB/4uDlh85OzdndLKS9kNWsXAkF2y7pgUX5sCBsBZSH
         qCIg==
X-Forwarded-Encrypted: i=1; AJvYcCVDpQKY+OUCN+QJead/NPBDBgGmjDVftCVj/y8yOkQcHU7RxAx5W4ZOnqjbPKtocxnnREOQF8FCQIg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxdOm53oFF9lmlz64qjO/CYNFtSYhZd5aqkvNY1xPHpDCwAyj6Y
	c5J7VCUjGS1P2L8eo/L2c2Xkk35JnAmScB/UOWqazuT25i/qTT8DcvwL6MuRdgLDiw==
X-Gm-Gg: ASbGncvpqpeXbTbBQ8Z+hb8bl3N8LeM53Jji1SzPivW27EyZ677vIY2oHL4e+tTeHt1
	fF85hbduQMX6osimvH937w1bw6IQ3I25TShaXw+wsKL9HsKf4AtiDuarGxoq6Hi6eYuG6BAswCW
	NWpcZyDFxw3J6vQRaaElkfPUVMzNpqa02VGMZw7q8TAJTDVwdQQbtdCrx6tHHRztl5l7vNYrtH4
	MN60kz2B/wKuwgHmlYPoRLhviCpXfSZnRweBYT0lhHtHfcwux38SuxtjkeSp4VWtATepVMFVHKI
	mIYUc4Pg+6au2cbMPPmVS4y9EfnIJ20FUIoiu6iGBLxfRhlcOy9QVddN+pdwnEHNz+55bQVKzBW
	hek7wmeMuEU1Ac2JyOqYvagSONt6tmZNQfJ4KS9Bviu2vJ943YMP+ndbUZjv5QRinLm6gyKxw/q
	bsTfjd1/R5xBFHp/S4uvXxdeM6Zw7r5C7dhnqnQKwABmu9h553m4Wrf/ca/lFVwhKivjCrvqOXl
	40=
X-Google-Smtp-Source: AGHT+IFyXKoBDSJHBt9GiGivnyI6vusTVrlYoAyMlSeRex+EXXYqb/a+/I4U3k23oq1uiG3oOSXiQg==
X-Received: by 2002:a05:600c:1c20:b0:477:9d54:58d7 with SMTP id 5b1f17b1804b1-477c1131d60mr120622155e9.29.1763993369691;
        Mon, 24 Nov 2025 06:09:29 -0800 (PST)
Message-ID: <e9a85592-9df1-4f32-82df-20c7f069d1e2@suse.com>
Date: Mon, 24 Nov 2025 15:09:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 6/7] xen/mem_access: wrap memory access when VM_EVENT=n
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>, xen-devel@lists.xenproject.org
References: <20251121091554.1003315-1-Penny.Zheng@amd.com>
 <20251121091554.1003315-7-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251121091554.1003315-7-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2025 10:15, Penny Zheng wrote:
> @@ -2080,7 +2081,11 @@ int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
>  #endif
>      }
>  
> -    if ( req_ptr )
> +    /*
> +     * Excessive condition is to avoid runtime undefined error only
> +     * when CONFIG_USBAN=y
> +     */
> +    if ( req_ptr && vm_event_is_enabled(curr) )
>      {

I fear the comment isn't really helpful this way. What's "excessive" here may
be clear from patch context, but it won't be clear when looking at the code
later. Nor would it then be immediately clear why the vm_event_is_enabled()
check is (seemingly) unnecessary. How about this:

"req_ptr being constant NULL when !CONFIG_VM_EVENT, CONFIG_UBSAN=y builds
 have been observed to still hit undefined-ness at runtime. Hence do a
 seemingly redundant vm_event_is_enabled() check here."

With this or any other suitable improvement to the comment:
Acked-by: Jan Beulich <jbeulich@suse.com>
If we want to go with the suggestion above, I'd be happy to do the replacement
while committing. But of course first the necessary 2nd ack will want
collecting.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 14:10:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 14:10:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171117.1496145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNXGa-0007gX-G6; Mon, 24 Nov 2025 14:10:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171117.1496145; Mon, 24 Nov 2025 14: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 1vNXGa-0007gQ-D9; Mon, 24 Nov 2025 14:10:08 +0000
Received: by outflank-mailman (input) for mailman id 1171117;
 Mon, 24 Nov 2025 14: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=AmBg=6A=kernel.org=david@srs-se1.protection.inumbo.net>)
 id 1vNXGZ-0007fZ-8J
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 14:10:07 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 43ad20c2-c93f-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 15:10:01 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 8396A4195B;
 Mon, 24 Nov 2025 14:09:59 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6F1F8C116C6;
 Mon, 24 Nov 2025 14:09: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: 43ad20c2-c93f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1763993399;
	bh=TWEkufK+gYKT1sSMXcHmAUd4hn/Rf+NblbWiRzqjYXE=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=Fn+KCCRjb50rns8DRSbP5eHwsxgoY/Kml4PeEgcCJeD26M9vYXui7/aT7inSMbIxf
	 YzKx3Oxi12/SHccP4zqiAZBpkawAjBIrdIq6ojtNJ3MqzZIZs/6LWUcWZiW8b0FuJE
	 Ml+dVSCPPiz4nA0kHauPvd8caafMtHO4bKeEncACk6GoCcx0j21HPCEQRfm6P0giCM
	 Ly/blKcvqn2emQo6jii0GCNdl30wtJ7h2LuC/4FBTV86yMpoaQeq2/Vb5EVoAwqxwk
	 Ook4PMLPReVXf+dc0dSemeN/A7u7VMwVtjwjGYoNs7r8xWNS2kh156oqM6wjxrgdtJ
	 4TjfjsfNIahLg==
Message-ID: <886f8f49-f113-445f-8f1e-3cdaabf7b38d@kernel.org>
Date: Mon, 24 Nov 2025 15:09:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 08/12] mm: enable lazy_mmu sections to nest
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-9-kevin.brodsky@arm.com>
From: "David Hildenbrand (Red Hat)" <david@kernel.org>
Content-Language: en-US
In-Reply-To: <20251124132228.622678-9-kevin.brodsky@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 11/24/25 14:22, Kevin Brodsky wrote:
> Despite recent efforts to prevent lazy_mmu sections from nesting, it
> remains difficult to ensure that it never occurs - and in fact it
> does occur on arm64 in certain situations (CONFIG_DEBUG_PAGEALLOC).
> Commit 1ef3095b1405 ("arm64/mm: Permit lazy_mmu_mode to be nested")
> made nesting tolerable on arm64, but without truly supporting it:
> the inner call to leave() disables the batching optimisation before
> the outer section ends.
> 
> This patch actually enables lazy_mmu sections to nest by tracking
> the nesting level in task_struct, in a similar fashion to e.g.
> pagefault_{enable,disable}(). This is fully handled by the generic
> lazy_mmu helpers that were recently introduced.
> 
> lazy_mmu sections were not initially intended to nest, so we need to
> clarify the semantics w.r.t. the arch_*_lazy_mmu_mode() callbacks.
> This patch takes the following approach:
> 
> * The outermost calls to lazy_mmu_mode_{enable,disable}() trigger
>    calls to arch_{enter,leave}_lazy_mmu_mode() - this is unchanged.
> 
> * Nested calls to lazy_mmu_mode_{enable,disable}() are not forwarded
>    to the arch via arch_{enter,leave} - lazy MMU remains enabled so
>    the assumption is that these callbacks are not relevant. However,
>    existing code may rely on a call to disable() to flush any batched
>    state, regardless of nesting. arch_flush_lazy_mmu_mode() is
>    therefore called in that situation.
> 
> A separate interface was recently introduced to temporarily pause
> the lazy MMU mode: lazy_mmu_mode_{pause,resume}(). pause() fully
> exits the mode *regardless of the nesting level*, and resume()
> restores the mode at the same nesting level.
> 
> pause()/resume() are themselves allowed to nest, so we actually
> store two nesting levels in task_struct: enable_count and
> pause_count. A new helper in_lazy_mmu_mode() is introduced to
> determine whether we are currently in lazy MMU mode; this will be
> used in subsequent patches to replace the various ways arch's
> currently track whether the mode is enabled.
> 
> In summary (enable/pause represent the values *after* the call):
> 
> lazy_mmu_mode_enable()		-> arch_enter()	    enable=1 pause=0
>      lazy_mmu_mode_enable()	-> Ã¸		    enable=2 pause=0
> 	lazy_mmu_mode_pause()	-> arch_leave()     enable=2 pause=1
> 	lazy_mmu_mode_resume()	-> arch_enter()     enable=2 pause=0
>      lazy_mmu_mode_disable()	-> arch_flush()     enable=1 pause=0
> lazy_mmu_mode_disable()		-> arch_leave()     enable=0 pause=0
> 
> Note: in_lazy_mmu_mode() is added to <linux/sched.h> to allow arch
> headers included by <linux/pgtable.h> to use it.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>

Nothing jumped at me, so

Acked-by: David Hildenbrand (Red Hat) <david@kernel.org>

Hoping we can get some more eyes to have a look.

-- 
Cheers

David


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 14:11:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 14:11:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171133.1496154 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNXHW-0008KD-Rq; Mon, 24 Nov 2025 14:11:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171133.1496154; Mon, 24 Nov 2025 14:11:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNXHW-0008K6-P0; Mon, 24 Nov 2025 14:11:06 +0000
Received: by outflank-mailman (input) for mailman id 1171133;
 Mon, 24 Nov 2025 14:11:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AmBg=6A=kernel.org=david@srs-se1.protection.inumbo.net>)
 id 1vNXHV-0007fZ-FH
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 14:11:05 +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 68e0fe37-c93f-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 15:11:03 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id C0786601DF;
 Mon, 24 Nov 2025 14:11:01 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0E6DAC4CEF1;
 Mon, 24 Nov 2025 14:10: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: 68e0fe37-c93f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1763993461;
	bh=9kXuey4j1iyNfngrjmnOHDtQji8gClrywMZaIofSoSs=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=ToE45XUaNEKKgD2WXInctkwlv3+HBQ1TWbbC/9sEmPQZUN1wYevCeBRVBAV0rozFL
	 I7wUvi5bxWcACKzxrEjR9VQMVUyaT8qQ5kFVhrVVlB89kgJUI6qWdrkHnaxN18F/OQ
	 mF0tJs2Sp8oYTUiLgE5alNCnrBVLa6AKCyHt+H//u0eb1VNFNAFg7+La3UkcsIK7YK
	 bQXVkMezHzr95Qf3Ef+lnUif4ZyWCABBRpSmPiFrnUGowf1Rr2Xo8pRrZ38LeAit4M
	 dcuirEqLwFTeqTAFHiWTbkf/ytXN0PIulzMPv+dkinYGeRr/hIAHNbLek15LEi+dsr
	 2rHEM1RGj8ISg==
Message-ID: <ef07b0f4-1f77-4c6b-9c67-8228632b1fec@kernel.org>
Date: Mon, 24 Nov 2025 15:10:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 09/12] arm64: mm: replace TIF_LAZY_MMU with
 in_lazy_mmu_mode()
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-10-kevin.brodsky@arm.com>
From: "David Hildenbrand (Red Hat)" <david@kernel.org>
Content-Language: en-US
In-Reply-To: <20251124132228.622678-10-kevin.brodsky@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 11/24/25 14:22, Kevin Brodsky wrote:
> The generic lazy_mmu layer now tracks whether a task is in lazy MMU
> mode. As a result we no longer need a TIF flag for that purpose -
> let's use the new in_lazy_mmu_mode() helper instead.
> 
> The explicit check for in_interrupt() is no longer necessary either
> as in_lazy_mmu_mode() always returns false in interrupt context.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---

Nothing jumped at me

Acked-by: David Hildenbrand (Red Hat) <david@kernel.org>

-- 
Cheers

David


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 14:12:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 14:12:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171139.1496165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNXIO-0000VT-4e; Mon, 24 Nov 2025 14:12:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171139.1496165; Mon, 24 Nov 2025 14:12:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNXIO-0000VM-0x; Mon, 24 Nov 2025 14:12:00 +0000
Received: by outflank-mailman (input) for mailman id 1171139;
 Mon, 24 Nov 2025 14:11: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=AmBg=6A=kernel.org=david@srs-se1.protection.inumbo.net>)
 id 1vNXIM-0007fZ-Ln
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 14:11:58 +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 88c0e084-c93f-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 15:11:56 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 123B2601A7;
 Mon, 24 Nov 2025 14:11:56 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EE78BC116C6;
 Mon, 24 Nov 2025 14:11:46 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 88c0e084-c93f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1763993515;
	bh=pKRds4IT+BzPKh2fxA3wO0tgnvzHdhCWGBCp+0CwG9A=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=TjUGt8Li6YfogSyMUKImhk9t7zCEyR/5lyaBjeNw6RcKDKrbRq6HnmNGUOxqptBCd
	 dLRr5vxSkWtTK/HdcfyyhBGI6jbvcRygLDwJPNmugo/e/qBVwdADZJpApwewQnH0Lz
	 Zvd3xoS+6vTxsekxWrHLixtrCO8PmynL3TGa54AYYvreiAeQp5nXHtEPY83/MIXq9v
	 IDvhAooUaPXLRXgkrwnbgHUW6P169b7ay8AKZtPjbmGcLHflIqg6kF1HvRTZ7a8+u+
	 51pYm9HXbc2JA+xZLuh0Y9NS3lb+de9hbRLWFhjCNgsTJpUFrYKe7BdliclaVXA64P
	 5nWYBjsK1rt0g==
Message-ID: <9800804f-6e8a-4d08-8eb1-f114df6d6b7a@kernel.org>
Date: Mon, 24 Nov 2025 15:11:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 07/12] mm: bail out of lazy_mmu_mode_* in interrupt
 context
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-8-kevin.brodsky@arm.com>
From: "David Hildenbrand (Red Hat)" <david@kernel.org>
Content-Language: en-US
In-Reply-To: <20251124132228.622678-8-kevin.brodsky@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 11/24/25 14:22, Kevin Brodsky wrote:
> The lazy MMU mode cannot be used in interrupt context. This is
> documented in <linux/pgtable.h>, but isn't consistently handled
> across architectures.
> 
> arm64 ensures that calls to lazy_mmu_mode_* have no effect in
> interrupt context, because such calls do occur in certain
> configurations - see commit b81c688426a9 ("arm64/mm: Disable barrier
> batching in interrupt contexts"). Other architectures do not check
> this situation, most likely because it hasn't occurred so far.
> 
> Let's handle this in the new generic lazy_mmu layer, in the same
> fashion as arm64: bail out of lazy_mmu_mode_* if in_interrupt().
> Also remove the arm64 handling that is now redundant.
> 
> Both arm64 and x86/Xen also ensure that any lazy MMU optimisation is
> disabled while in interrupt (see queue_pte_barriers() and
> xen_get_lazy_mode() respectively). This will be handled in the
> generic layer in a subsequent patch.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---

(resending as I pushed the wrong button there ...)

Moving this patch earlier LGTM, hoping we don't get any unexpected
surprises ...

Acked-by: David Hildenbrand (Red Hat) <david@kernel.org>

-- 
Cheers

David


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 14:18:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 14:18:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171154.1496175 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNXOW-0001cm-Nb; Mon, 24 Nov 2025 14:18:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171154.1496175; Mon, 24 Nov 2025 14:18: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 1vNXOW-0001cf-Kr; Mon, 24 Nov 2025 14:18:20 +0000
Received: by outflank-mailman (input) for mailman id 1171154;
 Mon, 24 Nov 2025 14:18: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=AmBg=6A=kernel.org=david@srs-se1.protection.inumbo.net>)
 id 1vNXOU-0001cZ-Q8
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 14:18: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 6afd54a0-c940-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 15:18: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 1230D44070;
 Mon, 24 Nov 2025 14:18:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 77C2BC4CEF1;
 Mon, 24 Nov 2025 14:18:04 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6afd54a0-c940-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1763993894;
	bh=a/6C0mF2h1YMNLw+DoImoO4DgoQDEX8r5mtUDpbvJqc=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=jwY/4CzdWYY3yql3el0w+panwPS8eTjG7NM5YCf3L3YhAsy5JwYjh7Es6LPXbY89K
	 UzT72wJIiWxPTXvC40ejjtyyoevI1urf2RHf3q2IQUAdx3ePP+T4aUCoLSuGBW+5t9
	 AyiGGmZu06pHbDaUwcXprsC2/AOzkRIQV4P+9nx22kKeJxYI/6ZX91Ahx+H6MJ6otw
	 r5N1JbHHbfGXrrxqIl8Vle4agRInm92WILAzWl7GR78JqldJ+4Ahy0TaoQXDl+8qyU
	 P/r56C1XkT4MDr3u/nrxsHIOTWIbg9bUxLNNU6+mmG6IXjp3Uu9lJEaRSB+6XeQQRZ
	 piKMF1RKiWZwg==
Message-ID: <53a032d0-a394-4040-ba9b-79610ec4b791@kernel.org>
Date: Mon, 24 Nov 2025 15:18:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 12/12] x86/xen: use lazy_mmu_state when
 context-switching
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 "David S. Miller" <davem@davemloft.net>,
 David Woodhouse <dwmw2@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>,
 Ingo Molnar <mingo@redhat.com>, Jann Horn <jannh@google.com>,
 Juergen Gross <jgross@suse.com>, "Liam R. Howlett"
 <Liam.Howlett@oracle.com>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-13-kevin.brodsky@arm.com>
From: "David Hildenbrand (Red Hat)" <david@kernel.org>
Content-Language: en-US
In-Reply-To: <20251124132228.622678-13-kevin.brodsky@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 11/24/25 14:22, Kevin Brodsky wrote:
> We currently set a TIF flag when scheduling out a task that is in
> lazy MMU mode, in order to restore it when the task is scheduled
> again.
> 
> The generic lazy_mmu layer now tracks whether a task is in lazy MMU
> mode in task_struct::lazy_mmu_state. We can therefore check that
> state when switching to the new task, instead of using a separate
> TIF flag.
> 
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
> ---

Nothing jumped at me, hoping for another pair of eyes from the XEN folks

Acked-by: David Hildenbrand (Red Hat) <david@kernel.org>

-- 
Cheers

David


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 14:20:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 14:20:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171163.1496185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNXQA-0002HS-2c; Mon, 24 Nov 2025 14:20:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171163.1496185; Mon, 24 Nov 2025 14:20: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 1vNXQ9-0002Gv-Ut; Mon, 24 Nov 2025 14:20:01 +0000
Received: by outflank-mailman (input) for mailman id 1171163;
 Mon, 24 Nov 2025 14:20: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=h9jE=6A=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vNXQ9-00027s-0P
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 14:20:01 +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 a414bfc1-c940-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 15:19:53 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM4PR03MB6125.namprd03.prod.outlook.com (2603:10b6:5:394::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.17; Mon, 24 Nov
 2025 14:19:49 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.016; Mon, 24 Nov 2025
 14:19: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: a414bfc1-c940-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KOT8lQK5znWymOGy1kbZiTqVqsxBWG0t1P83dNTEhK45rhkZpJCa0GzUGVfVcMlGk6jnXVt6UN7h4GU4yJOMZ0S2R15OcjRta8vT4Toq8M/GH0iNXC7xHR/M/F7XZbequfwndX7saSOyvMxiDoDdvAJ55NNa7brCvSrO4a7ThilVi3b8dXPyIaqLHFi6tSVtA5HEdLgc/K0lVPUIElBCqC4/vGk3DOyFKrMmi3rylEDpuWVWMYLhbrSkDfaaYF3up9L2WFKREwz1hDBo3k3/JO/zfvE1Y+OLz60pJejg03LnnK1xvgkSR6ERQGOJcico5jcD8T1iKzTJuLdNwx9n5Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xnpZ3hxL8RiHUbCNBMSio7JIKqnPzE8WMF0NOXWLH5k=;
 b=PRwwRkSi0vnjhgxTwHZ1H0+R3lT2n5DrwposR7P0O5lr0pIRA1Ua7ZCeAYoIU+QdbWoA2Yelc42/VnaJEQGFn6284+dt/zvfJ9JnewruL6T9iT6DkeO9ygJ2EFJsDh+Ku3WovfdqA0aljVf0FYOiErVwZVSUgF/sSv65e5um7mi2wWdaYwPmk6Fkuz3WJoULnFwf01gCa63e0VmUM57K8J7x+BH77Kcs42Dcz6/FTY4sDyUqAWbJb1Z7PKRhVTdrYWWifSjuCM2G/TwImKOVXTPkj1czLyJ2RikEHj6E1g1vi9Jn/yj+O3D7znamJW+6CQfQo06jMZ+QGd1Zc44bpg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xnpZ3hxL8RiHUbCNBMSio7JIKqnPzE8WMF0NOXWLH5k=;
 b=BLZ92C1nV7UGw/Db2Sgc7nt9y7uZn1WolWzxK7Mnr3Bis9bPXuhPTRCuHc32ryFQ5DqKbod1l/3HaDO81hn1V9D0EekqZV5qArdMSV8jolpJA+4ARSgpTcM8Erbam2EkEkWmpy2odINV7OABIFD8KVyXXSoTGVr5y0hr0/nTAX4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <fe9df7df-3e4e-4fe0-965c-d9d317d629cb@citrix.com>
Date: Mon, 24 Nov 2025 14:19:45 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] XEN: enable MC/DC coverage for Clang
To: Saman Dehghan <samaan.dehghan@gmail.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <52b0762ac4b5535a842a530365a75bdc81a5fe61.1763981619.git.samaan.dehghan@gmail.com>
 <aa144043d4e0592fbbeaf0a3d5e9cad6e9226d8a.1763989809.git.samaan.dehghan@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <aa144043d4e0592fbbeaf0a3d5e9cad6e9226d8a.1763989809.git.samaan.dehghan@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO6P123CA0043.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:2fe::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_|DM4PR03MB6125:EE_
X-MS-Office365-Filtering-Correlation-Id: f68e2820-7a0c-43b9-5ad3-08de2b6486ae
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?QVJ4dm9OMGtVWjNpUWxPcU9uYUs2aHZsTFNwdGcrTndUcFd2T3IrZjg4OUdi?=
 =?utf-8?B?enB1TDJHQU5jblY2Yjd4QXVTYU4ycnVTWU92WXNWR3B6ZWFPVTl4c0tKaGox?=
 =?utf-8?B?OEpRSUFQQ2Rwc0RMRDhFS3RLZkh4bEFZamhOazFxNzA2THNyUCt4Z096V2Y4?=
 =?utf-8?B?bHp2V0ZtSElhdGdxS1JBb1FuNTM1M09KOWVSZVJCeTJzKzBpcEQvRjhUQzQz?=
 =?utf-8?B?cUk4ZTFWOXFnTkNHNm0wdnRDRmhEbW84WjlsODlNb0NYWnlVVUxZU2ZtanR1?=
 =?utf-8?B?eksvOGtadDNpd3VlZS9sTGZKeE8zSjJGaFVBZkx4YlBjTG1ueUhUa2Y0ZVZP?=
 =?utf-8?B?TXZzY1RMUXFXMm04SnE0cVpTNG5tOTZkUjRCNmo5Z2FrSmZ6L0ZRbzdabURw?=
 =?utf-8?B?NU1OaTU2TWwyTllYWGZWYXRNMXVGY250QlprZEszbmc5WWdZeW9JTWc4UTJ1?=
 =?utf-8?B?VDk4TUkzcFBDME9TUy9jQml1V0RUaFVOeGhaNU9oR3llK3ZXVEZ5REJ0dVgr?=
 =?utf-8?B?U21nZnE1TmhzdVlEUGE2OGxwaHNGVlRCMWVCbUpFdjdyeHQxcVROUVdxSzJt?=
 =?utf-8?B?THBseFJPWE9GbGNia1ZhNFd2SEdXODhocjRTY1VRbm5ia0hQVkJUSVZldEh3?=
 =?utf-8?B?OVd0T2FSUXZzZnJyc0pheDhnMm9WZmFCYm1hdE5Bb3VGTWlCamdWOTI1MHpW?=
 =?utf-8?B?Z1Q1b1dvZkliZVg2WEZGTVRzdWVTYk5qM2Jxa3VkVWU0UEV2OVU5L3hRTm9h?=
 =?utf-8?B?NWpjaTFaTmZBaFd1YWd3M1hKTUZJWC9LU21NekptcG0rMjE1MkhEOHZnQkEx?=
 =?utf-8?B?eW54RnR2UWNtclZpdWo1SnNhVGZrYzNRNFpHdGdrSDcvYStEekRKYlFKbzN4?=
 =?utf-8?B?OFdwczlCQUZpWSsyMlBaU0xUcXJzZVdHOTIvWXJ6V1lJQ0pqTzZzOGgvR3pH?=
 =?utf-8?B?WHFsNkRZbU5IZ0VuTXJCTWR5d2VRUU1ReTgxSzErSWZZU1o3NWRma2xwVmRh?=
 =?utf-8?B?ZFdMZDh6bkFpOXY3ekFBa0d6NjNZeWVvYXdmT2VsOHJpMXhFLzVxTTVwa1BF?=
 =?utf-8?B?MWd6RWdNVGtpWjdtWmpkQkx0ZkxlM3hkRCswWjVSUGM3c0FpS0JKRmwxYVd0?=
 =?utf-8?B?TUVKWlhBd0RqWmdKZ2ZLeFNPN01SWmtsTmlTcDVkUXNUQTFJazQwSE1aTzlG?=
 =?utf-8?B?SGxCV0FQMzhrV0hRTmJiS3RqTG5oUUlhcEd6NjNjZUZGOUJucnNSMkhhSHpR?=
 =?utf-8?B?dExNeStkelVaaTNuY2V5U2JFWE9aQXAwYkgyMGI0eHYxWEJ0VVN4bU03YVF4?=
 =?utf-8?B?QlpWNXZyZlN5bUtEODZqZnQ1VkR1TDhOTXdQR3VNekg5RUM4QUpVdnkyY0VJ?=
 =?utf-8?B?QWVzbU95QXp3VFl6aEFrK09MQlpVWWNKcm1wS3lJSG5OcXYzai9xQzlSdmUz?=
 =?utf-8?B?aEN2aWlLNjRWdEk5RERyckw2d0N5LzNiaTQvOVpMQ0ZQT0VzVTBYRUxqZFht?=
 =?utf-8?B?VDVXNFdYSkt0WitZNGU1TG13c0ZyOHF1M0pDc0tNeXc3U2huaDQ4dlVHb05n?=
 =?utf-8?B?Ymx0Mk5jNlFZREpuREFRb01lbzkxaWU5WFJiWXNOZE5wYkkxalJKR1o2OTNS?=
 =?utf-8?B?ZWEzV0EydWVsNHpzSUszdDQ4ZURHbU43ay9qYmRLak5rRkdaU211d3ZUdEF4?=
 =?utf-8?B?VUFTQnUwVFJRaTZpM1Z5WXNtUW1oRTRXRTI3dDRjNG94bGp3MHNnWkMzV3dZ?=
 =?utf-8?B?bThJMytMZUIwQjlMc0JrOVhQWVN2SWIzZjBGak5ONUd3WFI1cUYzaW1uaGNG?=
 =?utf-8?B?QjRHQ0VNL3FtNWhlSlRyTVhSUUdhUWlZRmR4UzlFZWhWNzc5MVd5VjhSOUFF?=
 =?utf-8?B?eGx0ZHlpc1haMk1OTkpvL0t2bHQ5S3ZmRTVpZUdYWWVsSkUzNERBdkhkZjAz?=
 =?utf-8?Q?g7oJww6bUslA39v34gKcUaCVDBo11y3E?=
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?dlUvQWpHcHp0MHZQdzdKSkpLbkptMkRoejh6ZmIvRXZzbjNUeVY2aU9TcDkw?=
 =?utf-8?B?NExVNzZaQXNBVE1TWGdTL0VwdGNGUnlsa0FLblFlalhLYkJaMFprUkdoRlF6?=
 =?utf-8?B?bzVZbWZ0STJsVXUzbUsxN2YyM3o0a0wzbzhrRitiN1RLKzBybDJNcmJmanZl?=
 =?utf-8?B?c3Ivd2tSZmFWeUpMZXRYTXNPRUZIRjVjTTgwWll4ZElNZFFEcTNvRVNZY0No?=
 =?utf-8?B?SHRVcE83QlJuSGpHMWFtb3ZDUlB5T2Uva2NZS29oWmljVXNWRWxMamJzVkkx?=
 =?utf-8?B?N3VoejdHVFlIVHIvZ3Bic2cxa0Zad2twYkZFL0M4N3J2MmZGeWZvSUVzUHpY?=
 =?utf-8?B?R1VXelN2cG1FaS9PdVN2RFU1TytlSVB6elVjMEVvRXd6bnNac3RnUFBiVlZq?=
 =?utf-8?B?aG1YSUp5Z0dmMWM4SzYrZURxdE5pR0pOaHBJRXF1NEZOaGRQVHZHTjFsVWNU?=
 =?utf-8?B?VFRMSE1CSnlKRGxmTTRaaDMybXV2N0FteEEvYTRXVUVKTDdORjFiL2ZmTnU0?=
 =?utf-8?B?d3FCUGdqUnlOVGZ2enlZYmZ5blkvZHVCMzkxUTlRbjVqb044UXE0NGpvMGxS?=
 =?utf-8?B?ZjE2N2h0N0QzOUtSV1dzdGxLNTNnajI5V1QrYURUdXNEeUlVaVYrMGZOVTl3?=
 =?utf-8?B?WGY2SkZiUFZsUzUzbzIrQUU2dkVIM3lMVFpWKzdSQ1cyZjFaTm5yTzhsWVM4?=
 =?utf-8?B?emhxcVBnSlMvTjZRanZFWWZLdlNTQUpoVE9kRkR5VytPaE5JbHV6Y2tNajg1?=
 =?utf-8?B?Z0FmbXR4aG8vb3l5Y2VRbytDbHhMWFFCUVVIUFZuUVFFd2trV2tJWlNYVXVD?=
 =?utf-8?B?dnU0cHBhTlFNdUpDYTUvMnFlbWN4Z3ArRU10VHhWc1BNUW1WVnQ4REZmTi9R?=
 =?utf-8?B?MCtCc1hwR0VzdEJTMVJKZExWaVdFMG5aZmpXak43c0RsS3NDeUszRzc4VDZ4?=
 =?utf-8?B?dFNEcExaWFEzTVVidnpuc2g3UXhPZ2xXdUIzamg5bE5TNWhpKzMzT25CYXVK?=
 =?utf-8?B?TGF0Mkxia1VRVy92bmUzUlFuZEY0eUVzVW5QL2U2YVAwVXJkV2RFdWRzS09j?=
 =?utf-8?B?WTRGREU1RHc1V1FlMzdWV2xLVC9sRy9LK1dZUUwzNnlDb3hpcnRQSXNNakdN?=
 =?utf-8?B?aXJVYWQweTNvdEFsTzVTcXdlQ1RQMlpZOVp3VGF0VXE0cHd2TzZzZmF4ZjlY?=
 =?utf-8?B?SGRJTG44YjQ1YzJ3alVUMWtJNlV1TlpGS3NHcldaMGlQbCtSYmRoR1FFbFho?=
 =?utf-8?B?eW1kWlkzcVF5akhjT2EyczZpRWdlYVVYV1NYbVJGQ2s1THgrMC9BenBkY3pL?=
 =?utf-8?B?QUFDeFo2V1g1NXJzNHhkNkRvNk5hZjNYakwxbGVlbHdxRW5TWWFlN3ZnZW1a?=
 =?utf-8?B?OFNIdWNOU0lYOEJvWnE3VDNMaHVpTm9DU2x3QlZaWHIyYmRJNm94N2FPMHBw?=
 =?utf-8?B?NythVHZVV0Q3WTdidE9ZWGdDbEpuWDVtQ1gydXVFWFplcVExZHEzRG0vRldn?=
 =?utf-8?B?OEh5T1hoY2xURFpkTWQ5RnBNUmJ3MC9QWFJ4YVdCelBZTUxBUUNKci9wOUNS?=
 =?utf-8?B?RWt0TDlyU3g3TGFVVDU0Y0l1MWxvNHlJd2M2aHlXekZTTG5NcWpYUXo0MzV6?=
 =?utf-8?B?bWZibEkwVFJJbE5WVUlHK0RBaHFJQXRRRzdObTFPMCtrbEFSMjNFSTlLVGt5?=
 =?utf-8?B?bnVUY0VoNEhoR3BMcWNzWEpxTXRqUDd3cEI1ZnV0VkNGNnBaczRJNHhoZDJO?=
 =?utf-8?B?WURKK212YU1DUm85VWt0ZkRubks2dThXcmdPTlJWcXVuSU5sQi9QTGo3dU9z?=
 =?utf-8?B?SG5pNjcxN3R2dTNlSnFKQ2g5c2ZnSXErNFhsUjExM2UwajRlME1ad2hVTjZL?=
 =?utf-8?B?RWdiUmFwenNaZ3BtQ1IrL1c5MGVpUi9Gc3BOVTAyNkVCVFJXbVUyZGxjd1Vi?=
 =?utf-8?B?T0NOZ0tXUHpvanlIUlA3SmJjUHR2SkZsWXd6RTgzRUEzTmlTL0RSUWhMRGtZ?=
 =?utf-8?B?SFVtbHpNKzdlbkVaT0Z0d2M5cmJ2N3pVWUlMN0lOR1VVblAwY0VJL054Zllr?=
 =?utf-8?B?VWVxVVdmbjQ0VUl5bzBwSnJINFExNThjZFZ3MkVMUHE5c21CS2VuNGZqMDhz?=
 =?utf-8?B?L0loaWt0T1RQWHZLRFZBRFpnUVRxYTRrQWFOWXE2MjF4QUsyQlIrVUZSQkla?=
 =?utf-8?B?OEE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f68e2820-7a0c-43b9-5ad3-08de2b6486ae
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2025 14:19:49.1146
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: WfLlrqUYLNPhArFqVk5SSbPbJU6TMlmWhb0oIbcjVBZsCIPUVB8Jrw893N8BPhQZw4hi/CU0wz0eW4rB7RfPMVIb+J6tkdoNzd3d0U/s2Y4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB6125

On 24/11/2025 1:17 pm, Saman Dehghan wrote:
> diff --git a/xen/Kconfig b/xen/Kconfig
> index a5e5af3b76..8f2cc111cd 100644
> --- a/xen/Kconfig
> +++ b/xen/Kconfig
> @@ -51,9 +51,14 @@ config CC_HAS_ASM_GOTO_OUTPUT
>  	depends on !GCC_ASM_GOTO_OUTPUT_BROKEN
>  	depends on $(success,echo 'int foo(int x) { asm goto ("": "=r"(x) ::: bar); return x; bar: return 0; }' | $(CC) -x c - -c -o /dev/null)
>  
> -# Compiler supports -fcondition-coverage aka MC/DC
> +# Compiler supports Modified Condition/Decision Coverage (MC/DC).

Ah sorry, I only meant for this line.Â  Enough for someone to usefully
google.

Otherwise, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

I can trim this down on commit if you're happy.

~Andrew

> +# MC/DC is a rigorous code coverage metric that requires every condition
> +# within a decision (boolean expression) to be shown to independently
> +# influence the decision's final outcome.
> +#
> +# Minimum toolchain baseline: GCC >= 14, or Clang >= 18.
>  config CC_HAS_MCDC
> -	def_bool $(cc-option,-fcondition-coverage)
> +	def_bool $(cc-option,-fcondition-coverage) || $(cc-option,-fprofile-instr-generate -fcoverage-mapping -fcoverage-mcdc)
>  
>  # Set code alignment.
>  #
>


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 14:27:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 14:27:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171172.1496194 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNXWv-0004MD-M2; Mon, 24 Nov 2025 14:27:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171172.1496194; Mon, 24 Nov 2025 14:27:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNXWv-0004M6-JW; Mon, 24 Nov 2025 14:27:01 +0000
Received: by outflank-mailman (input) for mailman id 1171172;
 Mon, 24 Nov 2025 14:27:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=w9RL=6A=alien8.de=bp@srs-se1.protection.inumbo.net>)
 id 1vNXWu-0004Lh-Mi
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 14:27:00 +0000
Received: from mail.alien8.de (mail.alien8.de [65.109.113.108])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a2c210e6-c941-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 15:26:59 +0100 (CET)
Received: from localhost (localhost.localdomain [127.0.0.1])
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id F0B2B40E015B; 
 Mon, 24 Nov 2025 14:26:56 +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 6hd_SPf9teGA; Mon, 24 Nov 2025 14:26:53 +0000 (UTC)
Received: from zn.tnic (p57969402.dip0.t-ipconnect.de [87.150.148.2])
 (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
 3E11C40E0219; Mon, 24 Nov 2025 14:26:29 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a2c210e6-c941-11f0-9d18-b5c5bf9af7f9
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=1763994411; bh=K73tGsspNcQNjXp1GDxJaedqiCyrMTjCuAwDj5AV9xk=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=PSuvSCTQfki/FSMspTsX0cMA9GJXD7sTek76M8Wwmc3KWHpbfqx0UlPkS4wDDKo3N
	 R627iwOmt/Rq8lnHcBbOup2sF9kyGk/Ft0/Sh/Qes6knQK2EJJDY9flgKZkzH+0WAA
	 o1BTyaYuXffcOHtuFlhtEq+t/nfdgCO323IGpyn4yDsNU8MASjLow4jU9YVvbjq/Qa
	 x3b1t35iN78Od62FRf3PKY7kbNuGVkZU7HINQhBXVnDlDZ3TSKy7l3P/BvX3yDFDh9
	 HzEeFAPhZWk3YTwJbgmz0lyV1OFJox5DVj+uHX274tBrj7HRDDV3LZbXn0H6iUQ0qL
	 I24O1YeKhmcW/pVTn1DTg8KPy5ToVyzf/6FhD8m0DcQ8QRHNYcD1dIKOmKFUiO1wGg
	 Eo+If8ImIJzCrOwQaNulcgK6dYS4/b3FSnrXBOgklacMcQlTdNJ6DvGONFjPaP/71G
	 9s6Wn+RKxqyRlNWwG+qldoaQsNH/RZMxB4xs+KJ2cJ0sqxn2CbIIglgqXLHOu+fLF/
	 wXlUwsTlr6/x6fefNVKq2IeIdXOvfpN3qpo8asYqm9ryZ2jL1LJYTZII/L4y8upkIg
	 Z/YHai85Sp8DD7JdNa55F1/faAJW5EmujlKyyDijIsymtxaexgztuX7WIKQ2cDio5F
	 8XvbZiwJinmT2xvUxk6YpJ3Y=
Date: Mon, 24 Nov 2025 15:26:23 +0100
From: Borislav Petkov <bp@alien8.de>
To: Juergen Gross <jgross@suse.com>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
	linux-hyperv@vger.kernel.org, Andy Lutomirski <luto@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"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>,
	Peter Zijlstra <peterz@infradead.org>,
	Will Deacon <will@kernel.org>, Boqun Feng <boqun.feng@gmail.com>,
	Waiman Long <longman@redhat.com>, Jiri Kosina <jikos@kernel.org>,
	Josh Poimboeuf <jpoimboe@kernel.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3 01/21] x86/paravirt: Remove not needed includes of
 paravirt.h
Message-ID: <20251124142623.GGaSRrD-N15vnJY0DJ@fat_crate.local>
References: <20251006074606.1266-1-jgross@suse.com>
 <20251006074606.1266-2-jgross@suse.com>
 <20251124133858.GFaSRf8rU6w3Tf3wU_@fat_crate.local>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20251124133858.GFaSRf8rU6w3Tf3wU_@fat_crate.local>
Content-Transfer-Encoding: quoted-printable

On Mon, Nov 24, 2025 at 02:38:58PM +0100, Borislav Petkov wrote:
> On Mon, Oct 06, 2025 at 09:45:46AM +0200, Juergen Gross wrote:
> > In some places asm/paravirt.h is included without really being needed=
.
>=20
> Except they are:
>=20
> $ make allnoconfig
> $ rebuild-kernel.sh
> ...
>=20
> arch/x86/kernel/x86_init.c:90:43: error: =E2=80=98default_banner=E2=80=99=
 undeclared here (not in a function)
>    90 |                 .banner                 =3D default_banner,
>       |                                           ^~~~~~~~~~~~~~
> make[4]: *** [scripts/Makefile.build:287: arch/x86/kernel/x86_init.o] E=
rror 1
> make[4]: *** Waiting for unfinished jobs....
> make[3]: *** [scripts/Makefile.build:556: arch/x86/kernel] Error 2
> make[2]: *** [scripts/Makefile.build:556: arch/x86] Error 2
> make[2]: *** Waiting for unfinished jobs....
> make[1]: *** [/mnt/kernel/kernel/linux/Makefile:2010: .] Error 2
> make: *** [Makefile:248: __sub-make] Error 2

Before you submit the first 12 next time, please build-test each patch wi=
th:

SMOKE_CONFIGS=3D("allnoconfig" "defconfig" "allmodconfig" "allyesconfig")

and those architectures:

ARCHES=3D('x86_64' 'i386')

Thx.

--=20
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 14:30:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 14:30:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171186.1496205 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNXak-0005uo-9X; Mon, 24 Nov 2025 14:30:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171186.1496205; Mon, 24 Nov 2025 14:30:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNXak-0005uh-6J; Mon, 24 Nov 2025 14:30:58 +0000
Received: by outflank-mailman (input) for mailman id 1171186;
 Mon, 24 Nov 2025 14:30: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNXaj-0005ub-43
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 14:30: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 2fd067be-c942-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 15:30:55 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-42b3d7c1321so2703027f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 06:30: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-42cb7fa41d2sm28755336f8f.22.2025.11.24.06.30.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 06:30: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: 2fd067be-c942-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763994655; x=1764599455; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qCA3L95yX/2jmy0Bk1Q7WNixVlERopOtXm9Egrruomo=;
        b=UcpwGxYoPkgiy4CGoB0k7WPABY7FIZXw88AQgTDJo8q4Z4YLfQsbjGXNlFsS/qXY+G
         Z0ZCUSmCw9OM4bqJ4ATJ+mcp6tefOCHOjtBeE5jarGa7finuqfTeewrgGkHx6b6V18h1
         IxViOBYP7Hpwer/aXdrHF/1uYca+gz9a2kBmBb+C1qe44QmOsl4XcIeeO14tQuUBszhb
         HIel+tUm15ttKqCIRoL6fHfS6N8CiHnkMw1s10B1lw6Sg8BbVk7RUNslWgo9FoRGBh6V
         qVtJeYEsxLeRBuR4TKTFGW+/Abez0dMgavn7kXF+C/MHe9AVhBWFocPue9GMgYlZe6uQ
         D9pA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763994655; x=1764599455;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qCA3L95yX/2jmy0Bk1Q7WNixVlERopOtXm9Egrruomo=;
        b=YOXjSfninaFz0zboX85i6fNvA/tPH3La0qvStmpsrm2C4+lJ3Ku4hk4HIAj7aVUWuL
         Yn2bMzd1ksdjrqnful4LqyUHyv/j5w8Cl7PIgSjnMWWAqQ27DsuhFy0ggeJDqn/fYwKR
         h/CoUaxjDSoLpABsz66o6pPU90cZ6vsHmJjB8t9R+S67U5bGKHgRW/IDzgW17Qua2WBw
         yaH8VEld16s395WaIfW17cmGv4W3zwYqYLCoAbEQp4PbwKX6ajAIxWKi1nVHvcrY3Kff
         GIwcfoYrbka42KN2BCVHLb4U06PYP0Uae8sFB5DVj/FAOpE9WDyfj6QO/YXYsp73nyt8
         IL5w==
X-Forwarded-Encrypted: i=1; AJvYcCUh4u7iDMjEhWlvQ0ojOyd7X8tpzCIPx5xxe3l9mH82bax3QIZxVoT22EM5x3mYDpiFg88WESN0BHo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyIamZavfGdHiJN3pGy4CL4HIVqigqT5MPAhQIH2kX/Q5js2ENB
	rbcE6pukYtjl3ff/CTr4jVT5SNP/WY5w/qUWNxZiTzv+5o/qQ5UJ7KhGy1zrLZwKKA==
X-Gm-Gg: ASbGncvzvVSnw531G9LfJCayx7+ADpVZ8B8kUosrNLVSibZY3r/4Y56dWBOJJRpGMmo
	7/zWOkt79aTPMWXmP2mWFFDI4zRZ/JddP7SStdapU4PZFDH1ffFhanmPrgQJdRmkMA+SpsUQBsk
	mUvj7GbQFRKCAr4NIsbfF1pQ3mQewN1lDnyZ3U3KzSNVPN2QnV70nwI7kzNhXFxeHRngE7OvGjS
	jpdHyovmxTl2XM+KfTHyuw7fSejinou/d6jQvDx93gz/PF1NGUxiGUkdKU8x1zmZ2cMsK2QHDsU
	AY0b+8QbxkHnYmqZDx6NkqST3a5ZZfqoG3Azy49WvWOuyYquIKrS/7dYwnxDqo1+0WUABVtbZRq
	iF12iPA+D3P5j6LGVZErhE2dr0VzilzT4K/1bPU5v/w7Sjw8vEBiXbtvHGQufpDM6H64rI/06BK
	1avy5yRc4Hc7uWvXBG22i5qGtG7k/txi4m8rkMxW6E2FJVvedsIEbwcO3oRA+EvUVJPtlVejzwT
	io=
X-Google-Smtp-Source: AGHT+IHGuQ1Lk4gMV6IoZt99xBOgPOLJVjm9F9SsZ68lGMkPuUb6+Cx81ALTl/niHKajrccQMIBgbA==
X-Received: by 2002:a05:6000:2f81:b0:429:c711:229a with SMTP id ffacd0b85a97d-42cc1d23087mr14159791f8f.56.1763994654901;
        Mon, 24 Nov 2025 06:30:54 -0800 (PST)
Message-ID: <39df58e5-6b04-45fb-bd25-8ebc8972a7ed@suse.com>
Date: Mon, 24 Nov 2025 15:30:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
 <d34e3e86-c51a-49b3-8b46-140526755f0f@suse.com>
 <826037a5-dacf-434f-90d9-8f12e61bdd6e@suse.com>
 <0ece9df6-8a04-4ffa-bcf4-d7a3fd4bbef4@suse.com>
 <bf7e1a66-1696-477a-bdef-79b08df0b57c@suse.com>
 <bbcaf4f2-c52e-4b3e-ab6a-ca5020a8b786@suse.com>
 <a593e8cb-fa56-4301-a7da-ca4b51dfab9a@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: <a593e8cb-fa56-4301-a7da-ca4b51dfab9a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.11.2025 13:45, JÃ¼rgen GroÃŸ wrote:
> On 24.11.25 13:18, Jan Beulich wrote:
>> On 24.11.2025 12:27, Juergen Gross wrote:
>>> On 24.11.25 12:15, Jan Beulich wrote:
>>>> On 24.11.2025 12:05, JÃ¼rgen GroÃŸ wrote:
>>>>> On 24.11.25 11:41, Jan Beulich wrote:
>>>>>> On 21.11.2025 14:23, Juergen Gross wrote:
>>>>>>> --- a/Config.mk
>>>>>>> +++ b/Config.mk
>>>>>>> @@ -159,6 +159,19 @@ define move-if-changed
>>>>>>>     	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
>>>>>>>     endef
>>>>>>>     
>>>>>>> +PATH_FILES := Paths
>>>>>>> +INC_FILES = $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
>>>>>>> +
>>>>>>> +include $(INC_FILES)
>>>>>>> +
>>>>>>> +BUILD_MAKE_VARS = $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).mk.in))
>>>>>>
>>>>>> Feels like my prior comments weren't really addressed. I continue to think that
>>>>>> none of the above is part of what the subject says.
>>>>>
>>>>> I really don't understand your concern here.
>>>>>
>>>>> For replacing the @markers@ make needs to know what should be replaced.
>>>>> So it needs to scan the files containing the markers and gather them.
>>>>> This is what is done above.
>>>>>
>>>>> In the final macro below the replacements are done then. How would you
>>>>> handle that?
>>>>
>>>> By passing (another) argument to the macro, for example. As indicated
>>>> earlier, different sub-trees may have different places where these
>>>> definitions live, and they would want to be able to pass that in
>>>> (ideally without needing to put this in a common part of the tree).
>>>
>>> I don't get what you want to pass in additionally.
>>>
>>> I've already changed the macro and the Makefiles to be able to add another
>>> marker file to the PATH_FILES variable. What else do you need?
>>
>> Well, that's simply an odd way of passing a parameter. Plus, the extra file
> 
> We do that all the times, e.g. by "OBJ-y += ..."

That's sufficiently different though: Accumulating the set of objects to
produce is kind of naturally done that way.

>> won't affect INC_FILES, or more precisely its use in the include directive
>> in patch 1: At least aiui, $(INC_FILES) is expanded at the point when the
>> directive is processed. Hence why you need to open-code another include
>> there.
> 
> The INC_FILES variable is mostly needed for specifying the dependence of
> the generated files on the files mentioned in PATH_FILES.
> 
> It might be better to just have "-include $(XEN_ROOT/config/Paths.mk" in
> Config.mk, matching the setting of PATH_FILES there.

Looking at this the 3rd or 4th time now, I still don't quite get why the
include is needed in the first place. You don't mean to use (right here)
any of the settings the file produces, do you? Really, as also mentioned
by Andrew, you really can't, because in a pure hypervisor build the file
wouldn't have been made, as no configure would have run.

If I'm not mistaken, you really need those values only at the time you
execute the rule. And I'm worried of these definitions to collide with
something else. Hence one desire would be to limit the scope of these
variables to just the new rule. Maybe something like

# Replace @xxx@ markers in $(1).in with $(xxx) variable contents, write to $(1)
define apply-build-vars
$(1): $$(shell grep -h := $$(wildcard $$(INC_FILES)) /dev/null)
$(1): $(1).in $$(INC_FILES)
	sed $$(foreach v, $$(BUILD_MAKE_VARS), -e 's#@$$(v)@#$$($$(v))#g') <$$< >$$@
endef

could work? (This likely depends on INC_FILES to only list files which
are configure generated, i.e. wouldn't be updated by a make rule.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 14:31:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 14:31:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171187.1496215 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNXaq-0006Ac-H2; Mon, 24 Nov 2025 14:31:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171187.1496215; Mon, 24 Nov 2025 14: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 1vNXaq-0006AV-Df; Mon, 24 Nov 2025 14:31:04 +0000
Received: by outflank-mailman (input) for mailman id 1171187;
 Mon, 24 Nov 2025 14:31:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Qo8f=6A=gmail.com=samaan.dehghan@srs-se1.protection.inumbo.net>)
 id 1vNXao-00069o-S2
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 14:31:02 +0000
Received: from mail-pj1-x1030.google.com (mail-pj1-x1030.google.com
 [2607:f8b0:4864:20::1030])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3243c533-c942-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 15:31:00 +0100 (CET)
Received: by mail-pj1-x1030.google.com with SMTP id
 98e67ed59e1d1-3414de5b27eso3430838a91.0
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 06:31: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: 3243c533-c942-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1763994659; x=1764599459; 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=4asNrNeJA6iBvqutjSt94zd0lcIIuAHvAQwmomaeYak=;
        b=nEhacNk3heg7Kpl64sIMtXCvABzoRGE/UN+V2LvNzaMSwaVXEaPRxyYG0KuuX4TZwQ
         b0GlPxlP/Lq3QsfVxTS0vJUbmqnTtwxlhUJYBC6ib3W8H71aDDrZL0IKHTSDFsilj0l6
         qDfT7IlM1f7n+eKUNb2+vFNedR/25AfxlsNYD/99X+VtkUZ7hxgue2sGFceN1M2uMi/Y
         HHIPowB7xt6ygm6WF0SQQ83bnZTcMIjCICFul6BIgTqrL3oifCajlRIhWQsbWJCSRrZA
         9HrVQpp3bxxTk4MQPUni9lmAYT8v+xW4Y5wP9f6buzHsmPG8oMizTa28Dwo8luWsACcK
         SmZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763994659; x=1764599459;
        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=4asNrNeJA6iBvqutjSt94zd0lcIIuAHvAQwmomaeYak=;
        b=jT05gOKO0Ojk/CRIMZjuG3FtgYz+LPGEKLcki51NHjMQEg2FKggIkrDAFmBfC1iRgP
         PYnk4gnj4uwPkSygCCNh+L5TdbKXBUkdn9mbYNqKkyxd9zYalNU4+sQgDztpVWubh9de
         Dv71iYOsKqz9bDnIXZjbzsQw9HXWbH7Ule0fXfMx1WRup0+YjklNfSVrgSlEQaVDwiBk
         Rzo0LUnIs0i9aQf5d0BU6c2/bV/6uhfu2zWC1EEPyKo5wC2Mz5PmqZpOenmjFROaNuLi
         QcwV/c1vBZwk+TaXyCAbJveY79xC6zx+2Uvl1vPUlT/oTIYwCvj8cC9OuKs7fCMo98Z6
         0BdA==
X-Gm-Message-State: AOJu0YzUJhsEtZCQ+SeIJ/g7PmrkTHmysEcZ9D2dCKkp9x70FfYh3oso
	5wYlXlgk+ZSVK9rNETbbZBtGi1se6YAdualIS6OccAOBPqjW5/c81AJr8Xq06SLPgZNggooCLwo
	riLR8d1zDBY/2J7E8LgF54dhc4+YBXQ==
X-Gm-Gg: ASbGncsfmM5Fw8sJJGT+D1bVsNNugb4EjoF03rhqzdobOUpn1pxT9946gGPbpk8VHwj
	LS1sxZWTO4Vk2FObTKHOx+1awNjBLstb5+MfpJuWIoiBA22zr2rsE6B327WAyJSvD2/bJ6EOUav
	dHmwdatjJlxkljx9abUqK46kTZj0KT1Nj83tdomAtO5dZH0hYp9b4qLfnOd2n4W5qP3xcFcFN+G
	kWklZZCjeIsmc/IskQvfveLEriYyE4xoy534mb8niX6ogfSiKwHH92d0hgAV20jkowI0Xs7RFxm
	CSjSQT5MqzLYTzVscAb/NZvN
X-Google-Smtp-Source: AGHT+IFZwwNJm2rksFlqFXOlv0lLus3HX720aZglZxISk5YyB0KMXV+DcFSYpmkNuZM+0ZHxxvSaUJ8nC8gj41Q8ZhE=
X-Received: by 2002:a17:90a:c2ce:b0:343:6c71:6d31 with SMTP id
 98e67ed59e1d1-34733e93813mr11809897a91.11.1763994658881; Mon, 24 Nov 2025
 06:30:58 -0800 (PST)
MIME-Version: 1.0
References: <52b0762ac4b5535a842a530365a75bdc81a5fe61.1763981619.git.samaan.dehghan@gmail.com>
 <aa144043d4e0592fbbeaf0a3d5e9cad6e9226d8a.1763989809.git.samaan.dehghan@gmail.com>
 <fe9df7df-3e4e-4fe0-965c-d9d317d629cb@citrix.com>
In-Reply-To: <fe9df7df-3e4e-4fe0-965c-d9d317d629cb@citrix.com>
From: Saman Dehghan <samaan.dehghan@gmail.com>
Date: Mon, 24 Nov 2025 08:30:47 -0600
X-Gm-Features: AWmQ_bn8g-r01OE1u18CbAb5MZ7bKs7RA3-TZcySTSvcxmFnYFKvSLba8vCuSMY
Message-ID: <CAHFNDNhYp3yBrdtP3nN=+iTVRNHqKGyH0XuyjWuG7cYe+Grb5A@mail.gmail.com>
Subject: Re: [PATCH v3] XEN: enable MC/DC coverage for Clang
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>, 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

On Mon, Nov 24, 2025 at 8:19=E2=80=AFAM Andrew Cooper <andrew.cooper3@citri=
x.com> wrote:
>
> On 24/11/2025 1:17 pm, Saman Dehghan wrote:
> > diff --git a/xen/Kconfig b/xen/Kconfig
> > index a5e5af3b76..8f2cc111cd 100644
> > --- a/xen/Kconfig
> > +++ b/xen/Kconfig
> > @@ -51,9 +51,14 @@ config CC_HAS_ASM_GOTO_OUTPUT
> >       depends on !GCC_ASM_GOTO_OUTPUT_BROKEN
> >       depends on $(success,echo 'int foo(int x) { asm goto ("": "=3Dr"(=
x) ::: bar); return x; bar: return 0; }' | $(CC) -x c - -c -o /dev/null)
> >
> > -# Compiler supports -fcondition-coverage aka MC/DC
> > +# Compiler supports Modified Condition/Decision Coverage (MC/DC).
>
> Ah sorry, I only meant for this line.  Enough for someone to usefully
> google.
>
> Otherwise, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
>
> I can trim this down on commit if you're happy.
>
> ~Andrew

I=E2=80=99m happy with it, thanks a lot Andrew for suggesting to trim that =
line.

~Saman

>
> > +# MC/DC is a rigorous code coverage metric that requires every conditi=
on
> > +# within a decision (boolean expression) to be shown to independently
> > +# influence the decision's final outcome.
> > +#
> > +# Minimum toolchain baseline: GCC >=3D 14, or Clang >=3D 18.
> >  config CC_HAS_MCDC
> > -     def_bool $(cc-option,-fcondition-coverage)
> > +     def_bool $(cc-option,-fcondition-coverage) || $(cc-option,-fprofi=
le-instr-generate -fcoverage-mapping -fcoverage-mcdc)
> >
> >  # Set code alignment.
> >  #
> >


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 14:36:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 14:36:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171207.1496224 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNXfY-0007iM-23; Mon, 24 Nov 2025 14:35:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171207.1496224; Mon, 24 Nov 2025 14:35:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNXfX-0007iF-VF; Mon, 24 Nov 2025 14:35:55 +0000
Received: by outflank-mailman (input) for mailman id 1171207;
 Mon, 24 Nov 2025 14:35:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SvF/=6A=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vNXfV-0007i9-UQ
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 14:35:54 +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 df2ab895-c942-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 15:35:52 +0100 (CET)
Received: from BN0PR04CA0140.namprd04.prod.outlook.com (2603:10b6:408:ed::25)
 by DM4PR12MB5889.namprd12.prod.outlook.com (2603:10b6:8:65::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.17; Mon, 24 Nov
 2025 14:35:46 +0000
Received: from MN1PEPF0000ECD7.namprd02.prod.outlook.com
 (2603:10b6:408:ed:cafe::b8) by BN0PR04CA0140.outlook.office365.com
 (2603:10b6:408:ed::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.17 via Frontend Transport; Mon,
 24 Nov 2025 14:35:36 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MN1PEPF0000ECD7.mail.protection.outlook.com (10.167.242.136) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.7 via Frontend Transport; Mon, 24 Nov 2025 14:35:46 +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; Mon, 24 Nov
 2025 08:35:45 -0600
Received: from [172.31.118.135] (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, 24 Nov 2025 06:35:45 -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: df2ab895-c942-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=A9KhbzyP6XwenB6qJ+x0NtBLAX4NCOaW/ESVE17CBgiX1Yq3RddNquSsjUt7P3WEcsNxqBjarPX6G+zhgz0fTuxdPiKIUDcS2bqGLyZLz4FPbIFsb1z0R54kYImNm2AQWdhmM/XM/bH6v+jVO3wCxBd1BiYIeO7qXYGpFZwiojk3hBPdKhPdfgQcTwoV+oIBz/jgpo2rw/DSsFdID9SYnCh9sspOEG0hyKAQneNLBW8FmbwcdemM/0g9BGIYQhxXjrGcYR865g46B171JOzkAc+hE+uAc1lEPVVHkmw4Zuh2TfQ4T5R5fNjh8nphWcFXrJ4JN5qQSgCa+77jyoQiGg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JTPwPA51pdpKbZ9WeYPyvala1S8NXW2Pnvok26N6YHg=;
 b=Q5arzE5mr1bOySIk1+0lXCkJno0TNykqatGsYOp98Dt5S4GinZdDZj9RnlfQUzWOkhypBdx2viTKAW1fRs4wflO5/fehn3hDg+CnJ8f/s2xlNckArMsGokDxYtT+tlFHAmuRGSxF1jo0KZ9pHF5PM9p/n0xYtkHVYEaWddSslmSm6EbSfNHInfMIRtb+HyqlXcXWtCpxsO34KgjYBgEFyJOeGV+E6nv8fVKSqWO0durwIp7oP0sebMs0vB6Fd08sKAf7dmZ8aEzQgBLGUtXdN18D2sjjlMw6IKEYwGXF7B9rSmeUzibMjH84NJZ8yzt35jN2nVFVcxXN5Z5eIv5QTA==
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=JTPwPA51pdpKbZ9WeYPyvala1S8NXW2Pnvok26N6YHg=;
 b=qZzxrIQ1tl1WBNr+x6jdLY+ZqvlOepgqJtzcRA8CahsUyixI9JJnZHEI/SYpzs1i+lMD0AgOrHzVSjNYh40CYNgwv4lHSUq4tIK5OjDTP6yH/yA8PMS8QeeU0RFSEbV4bsgPsPqVJ/5/EDB5+Gc7zfnE4VKvTaEoDXrOkNhfauE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <bf1f22ae-11d0-4ac4-9b64-72c3c83c2ef1@amd.com>
Date: Mon, 24 Nov 2025 09:35:44 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 6/6] x86/cpufreq: use host CPU policy in HWP driver
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: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@suse.com>
 <bacee005-8ba3-468e-8de4-681af1cc4856@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <bacee005-8ba3-468e-8de4-681af1cc4856@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: MN1PEPF0000ECD7:EE_|DM4PR12MB5889:EE_
X-MS-Office365-Filtering-Correlation-Id: 46f05159-827e-4162-e131-08de2b66c12b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dmt1RFVIWkxjMnR4WXdOeTMwUXBVa3RQQnBBdVN2dDluZTdxc1JPTmZIVFZ3?=
 =?utf-8?B?KzFIVi9SRnY1Rm5WQWdLNmw3VjFIa0hzMGRrZEgzL09saHRBSTNUWk5QbG1S?=
 =?utf-8?B?bnR3enQzbm80eFRtQm41eXU2dndLcDI0SlFVQ3JhcFRrRmcrT2s3SDJUeVVu?=
 =?utf-8?B?RUFXZnBXbjlYakpqZWR2WnBCdU40RzJtN1A5dlpGVHZkcUwzcjA4akdTTDdU?=
 =?utf-8?B?TnJ0akNuTDNzdWFFZWQyZ2o4U0FwOW1WV0l4cVV3NXZBY01YZ1Y5Qk1FZmZS?=
 =?utf-8?B?dlJsZkFGVXFheENERjc2NXFWNVVYbDNpaGRNQ0hrVGRDMWJqSGRZWXhRUTli?=
 =?utf-8?B?Zm5ZWklaRzdkN3hxUkpqc3F5U25tWFRTWlcxYTdUWjVrMHpSeVlNSXZTVFE5?=
 =?utf-8?B?N2hWZm9kdzBxSFdnRThlSlp1TWtUTm5MZU9kUnhYNjhjdDg1cGtxQlZ4RzBn?=
 =?utf-8?B?T0FRVytNNzhDVmhuVlA3Z3F6NzBwc1JhWU5sN2prYnlnUU84T2t5ODIvNTZQ?=
 =?utf-8?B?L216UHlIR3pDN1ErbGoxYW9pU1dPNlJEckF4anlFNnZnWmNKNDNuRHMwbnhM?=
 =?utf-8?B?MmFKdGRCQWpnSU9ZcDl6YUs1dzE2dkpTYmRrUllRbE5kVW05UzN1U2tBUWVV?=
 =?utf-8?B?VHNxbEd4bHE3K3NmNVdOdUh3akt5d0c4Q1VxYXJjMXFNUjJtbVY1ZkFEdzN5?=
 =?utf-8?B?WG5aVXZTbndPZFRvOWVhd29Zd0RmOUxZM0w4Wk11S0tqZDZyUDdEQzYrOFlk?=
 =?utf-8?B?OEpwZDN1dmsrU2pjQ1BEVlFzZHhyRWJ2a2loemU0bklVcnhoM09sU1pjZnQ1?=
 =?utf-8?B?YVZxeWlzcjBqa0N3dVFsVW5ENlkwbCsxT3dWdmxqWTREemNLbHJmdW9QNUxm?=
 =?utf-8?B?L0NmR0lEUStaK0liZlRNbjcxOEc3blNtNjliQ3J4TnlHdHp5OHkyR3BOdWJY?=
 =?utf-8?B?VHIwSURieWVIVVo1QUFhakFxRHBPUUFOZzdHMkZLbW45MWNmd2RvMHZpck03?=
 =?utf-8?B?MXZVSlRVZUEwYkZLQjE0TlVVNmtlUUtGUkJITTJKRGlhWTBFMUhhbEVVbGFw?=
 =?utf-8?B?YzJYU1I0a2R0R2R6Q0lobWhZemtOQ2FZZ2pCMHlkWlgveW16RVdQeko4UjlV?=
 =?utf-8?B?MmZFYUJlMG1PaFlyNmZpY3JyUjBqdS9UbmIwWXVNRG5LQ2hCZWc1OHpjYkNJ?=
 =?utf-8?B?UkMwQXZINkdDaVpNdkhidkZkN1B5ekRoQXc4MUpyNnBOZS9UYSsxQlhIdXZD?=
 =?utf-8?B?V1oySmZYeTdLd1BpSFQ2djhNY3lMQXdMNnRNU0NhYWswSTRwSTdtRTh0Uksx?=
 =?utf-8?B?WTd1UEFoQWtMMkVvSXBteWVzY0FzMVZJcUpOZzRQSHBUZXFBVFVpS0hMVVJv?=
 =?utf-8?B?NTJRRU9qa203MTRsVEY0a3NLeUlqK2pFT2w3WVlFRVVGNlFVT3cyV1hlVnVV?=
 =?utf-8?B?SjFBTHE1b0wxWGczUFNvcFIwSmI5c29EMmxHYS81OTI1VUJZQ3JENmkwcE9H?=
 =?utf-8?B?ejlKcTd6NTVCcGltVTRBcGduUS8wVTFNdW5OVFNiQ3lEQXRIRXUzMkVtWE5Y?=
 =?utf-8?B?ZUxIMVVoY1VNdzFwNm04N2ZXZ0l1VDNDZmlWV2xwQkNjalFlbXhzYnl0ZTJz?=
 =?utf-8?B?dVdsTVJ6MjZ6YWtmN2gvcFhhaGxpY3U2aFBreGsvVCtTQmFNMnBVbExBOXN5?=
 =?utf-8?B?L3RUVjZhenlPME1pNGZqbkdEV1liQTJhZkEzeElFWHdDL29GUHpaTzR0Nm1V?=
 =?utf-8?B?VzNzNFc3dGxBLzBLcXdiMjk5S0pYbW9rem5vWHR6YnNNRU1qaE16Wm9JeXls?=
 =?utf-8?B?NCtXelc3NERJZllGWHlnemJ4bzVHaTh4WmtXRXZTYk5YMDRSdERwNWFPQXFW?=
 =?utf-8?B?Q1ZaWWNzaDRrOXZORk1pWisvTE44Umc3UWhMVDNjU01PYUlHVlozNzZxNEFl?=
 =?utf-8?B?eUZlYlJCWVY4dGJibWJPT0FqZENTbTZleEthbDUvMW45cktqV3BjT2drb0N5?=
 =?utf-8?B?Q1FwVXU5T3BZQkhvTmE1UlNUK0hzVGUvWkRiUVFKRkdHaXAyMnNnWElQSmsy?=
 =?utf-8?B?LzVJR1h5T3lwMm5TYk5SOFhqQ1BjZ2I3VTlQYkRlQ05MVkVnMkMyLzBjL25r?=
 =?utf-8?Q?SVcY=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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2025 14:35:46.0287
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 46f05159-827e-4162-e131-08de2b66c12b
X-MS-Exchange-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:
	MN1PEPF0000ECD7.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5889

On 2025-11-24 07:25, Jan Beulich wrote:
> There's no need to invoke CPUID yet another time. This way two of the
> static booleans can also go away.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> v2: Introduce cpu_has_*.
> 
> --- a/xen/arch/x86/acpi/cpufreq/hwp.c
> +++ b/xen/arch/x86/acpi/cpufreq/hwp.c

> @@ -226,7 +214,8 @@ static int cf_check hwp_cpufreq_verify(s
>   {
>       struct hwp_drv_data *data = per_cpu(hwp_drv_data, policy->cpu);
>   
> -    if ( !feature_hwp_activity_window && data->activity_window )
> +    if ( !cpu_has_hwp_activity_window &&
> +         data->activity_window )

This ...
>       {
>           hwp_verbose("HWP activity window not supported\n");
>   

> @@ -537,7 +526,8 @@ int get_hwp_para(unsigned int cpu,
>           return -ENODATA;
>   
>       cppc_para->features         =
> -        (feature_hwp_activity_window ? XEN_SYSCTL_CPPC_FEAT_ACT_WINDOW : 0);
> +        (cpu_has_hwp_activity_window
> +         ? XEN_SYSCTL_CPPC_FEAT_ACT_WINDOW : 0);

...and this can still be on one line.

Preferably with that fixed:

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks,
Jason

>       cppc_para->lowest           = data->hw.lowest;
>       cppc_para->lowest_nonlinear = data->hw.most_efficient;
>       cppc_para->nominal          = data->hw.guaranteed;


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 14:36:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 14:36:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171216.1496234 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNXgJ-0008C7-9w; Mon, 24 Nov 2025 14:36:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171216.1496234; Mon, 24 Nov 2025 14: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 1vNXgJ-0008C0-7C; Mon, 24 Nov 2025 14:36:43 +0000
Received: by outflank-mailman (input) for mailman id 1171216;
 Mon, 24 Nov 2025 14:36: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=W8+E=6A=arm.com=ryan.roberts@srs-se1.protection.inumbo.net>)
 id 1vNXgI-0007i9-GI
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 14:36:42 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id fd82335f-c942-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 15:36:41 +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 80775497;
 Mon, 24 Nov 2025 06:36:32 -0800 (PST)
Received: from [10.57.88.238] (unknown [10.57.88.238])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 94CBA3F6A8;
 Mon, 24 Nov 2025 06:36: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: fd82335f-c942-11f0-9d18-b5c5bf9af7f9
Message-ID: <b52726c7-ea9c-4743-a68d-3eafce4e5c61@arm.com>
Date: Mon, 24 Nov 2025 14:36:32 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 06/12] mm: introduce generic lazy_mmu helpers
Content-Language: en-GB
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>, Suren Baghdasaryan
 <surenb@google.com>, Thomas Gleixner <tglx@linutronix.de>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251029100909.3381140-1-kevin.brodsky@arm.com>
 <20251029100909.3381140-7-kevin.brodsky@arm.com>
 <71418b31-aedb-4600-9558-842515dd6c44@arm.com>
 <b44825dd-aef9-4d3e-91fd-a44122264c23@arm.com>
 <f36ebc15-c724-487a-8e4a-9ca95edc544a@arm.com>
From: Ryan Roberts <ryan.roberts@arm.com>
In-Reply-To: <f36ebc15-c724-487a-8e4a-9ca95edc544a@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24/11/2025 12:47, Kevin Brodsky wrote:
> On 10/11/2025 11:45, Kevin Brodsky wrote:
>>>> diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
>>>> index b8d37eb037fc..d9c8e94f140f 100644
>>>> --- a/arch/arm64/mm/mmu.c
>>>> +++ b/arch/arm64/mm/mmu.c
>>>> @@ -731,7 +731,7 @@ int split_kernel_leaf_mapping(unsigned long start, unsigned long end)
>>>>  		return -EINVAL;
>>>>  
>>>>  	mutex_lock(&pgtable_split_lock);
>>>> -	arch_enter_lazy_mmu_mode();
>>>> +	lazy_mmu_mode_enable();
>>>>  
>>>>  	/*
>>>>  	 * The split_kernel_leaf_mapping_locked() may sleep, it is not a
>>> This is a bit unfortunate, IMHO. The rest of this comment explains that although
>>> you're not supposed to sleep inside lazy mmu mode, it's fine for arm64's
>>> implementation. But we are no longer calling arm64's implementation; we are
>>> calling a generic function, which does who knows what.
>>>
>>> I think it all still works, but we are no longer containing our assumptions in
>>> arm64 code. We are relying on implementation details of generic code.
>> I see your point. The change itself is still correct (and required
>> considering patch 8), but maybe the documentation of the generic
>> interface should be clarified to guarantee that the generic layer can
>> itself cope with sleeping - without any guarantee regarding the
>> behaviour of arch_*_lazy_mmu_mode.
> 
> Re-reading the existing comment in <linux/pgtable.h>, I think it already
> makes clear that sleeping is not forbidden by design:
> 
>> Â * In the general case, no lock is guaranteed to be held between entry
>> and exit
>> Â * of the lazy mode. So the implementation must assume preemption may
>> be enabled
>> Â * and cpu migration is possible; it must take steps to be robust
>> against this.
> 
> The arch implementation may disable preemption, but arm64 code can rely
> on the arm64 implementation allowing sleeping.

Yeah ok, I buy that!

> 
> - Kevin
> 



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 14:49:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 14:49:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171230.1496246 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNXsa-00023l-H0; Mon, 24 Nov 2025 14:49:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171230.1496246; Mon, 24 Nov 2025 14: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 1vNXsa-00023e-Cu; Mon, 24 Nov 2025 14:49:24 +0000
Received: by outflank-mailman (input) for mailman id 1171230;
 Mon, 24 Nov 2025 14:49:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNXsZ-00023Y-2H
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 14:49:23 +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 c2fe4d6e-c944-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 15:49:21 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-47755de027eso23251935e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 06:49: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-477bf36f535sm204499595e9.8.2025.11.24.06.49.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 06:49: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: c2fe4d6e-c944-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763995761; x=1764600561; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gWfNSzqAC8AW/7s6q88tAPramR0SZ5gZ2E2soGsmlcI=;
        b=MWmK4vbeVbIcZ1W5zmPpd/AsTGLePgeMbrx8nV6k/xw8ZTnm5vPubRjtpSpo6JYf9s
         lnohgkTsyQUYFHOSWxo1BBk44wvuiGPP/JYz0lgfDM9cMMbntLkryyc2vZI7isX4TN/O
         OYdked+xsZOzuFXyxR+pBJYJGsWNwVhNs47IiOtJhW0X3xrZmf5Fo+7FSnB/JRExB3FC
         eBAQYHHJrvJLY1YlHUoCR6fMNNHpIBP+Mf5sm4eIrKv6lyq+ltG9QhlZpVrukxc7GThN
         IcH8S4I8eOyzLc4qhJyuI5DSTsdz8tiU5ZpF/b51r1hlY2pjqZdMZUssbeDRWxfLnoQB
         7ISA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763995761; x=1764600561;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gWfNSzqAC8AW/7s6q88tAPramR0SZ5gZ2E2soGsmlcI=;
        b=becbQEAzA5cO8QPVMdKDpKgE9dsDZGB160hCG5iK4sRrmfoljE8t8ZEn0jrav8QK4r
         8qlfb3u7nZHWASpYpCw1+21gzMbAx9PncStr6tTQ545avdMUMvE/xotyoixU12qwcdGc
         fH6FLWc/35WhYhtYyHhGPs4C/y8ahozo+Qu1esM0IkXQDZ+YG0yF4/5kTExyLd9ext4O
         gf7ft7/YT8lpMgivhIozeT5wlrX2Ga+9z3Tiesbrd0Z3LsKtUB4N7g51Sp5gJNzskZIQ
         WWS4XXLtgyrDayhMkGpjwEW59nLly7UTh+w7Typ1NRGTuimPuHoTU5miBtYPJcdpbArz
         9IHw==
X-Forwarded-Encrypted: i=1; AJvYcCXCcmKPqnAagwCmLhBhitLusI83DjycirFNBlxxDKEluepb/a/uszeBQF6ZrJsRuKna1fNT/I8wgxg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx5r5c4Edh/Mc7DVet7dQzzPkEDD684Apaathy6cR9Xf40G93CN
	9bAnCBZedgovZ9ad70/OzOLIw09o3QmV298dD4fV82g7AqokFTfV2tT0XQO8Ce6N9g==
X-Gm-Gg: ASbGncv3elcmUHjLdxaztivSZzgaeoJCOJIdATsN3ndmP1G9IpewkjY2xevx6ioDJzc
	nOyy914tlnHY689lHiwgpFB4QIEZoQfrREJE+8j4o/cae199iHQx99wFeEc7WSLq17MG/73jEzt
	F/GY2VgrHGbHk79XEfmR4oz9KQYTSdWf7dp8kJ+hNx3MrR/wfefCtWP4h2FjWh5ePcDCCPg7vxt
	sBMlGQrHH74YvbPBf7EljyXZgFm/uXGa01VNdpzPG4I9DelvJiUv2xxNEN8N8Myjn2UutiSwjr2
	nkpy7r5MQftPFnJNa8++cZjiHg8nHsWga9TuofwvwQ2PeKwNIIzhYAOkHcJap7+LMQz3vfAxgK/
	9bc4BHSZXlHTRevnozoWtZ6viGS8n/q0uo5XvK1EWpSmYvyEWTBrhIq2oR5uHTbmMvsK8I4cHmL
	x3F7SfeY4ABW5NEqOA7I+7qf66K3o9+WY1RDQBZ6T/ZS1tVWGERb+j6V+PSxpb+U4SFIvkLvIgK
	mw=
X-Google-Smtp-Source: AGHT+IGUEHJyV0JJ1ycLi+AVBRsLG1B+9VliEZlZuw9CsWjgHBP6cRCMJ1KXfkgo+Vw9MXUobnrH/A==
X-Received: by 2002:a05:600c:1c24:b0:477:76bf:e1fb with SMTP id 5b1f17b1804b1-477c01be2b2mr162215925e9.16.1763995760876;
        Mon, 24 Nov 2025 06:49:20 -0800 (PST)
Message-ID: <8581c3ce-e0f7-41e5-aee7-cf607f8f338d@suse.com>
Date: Mon, 24 Nov 2025 15:49:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/vhpet: Fix sanitization of legacy IRQ route
To: Tu Dinh <ngoc-tu.dinh@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: <20251124134344.456-1-ngoc-tu.dinh@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: <20251124134344.456-1-ngoc-tu.dinh@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2025 14:43, Tu Dinh wrote:
> When setting a timer's config register, timer_sanitize_int_route will
> always reset the IRQ route value to what's valid corresponding to the
> !HPET_CFG_LEGACY case. This is applied even if the HPET is set to
> HPET_CFG_LEGACY.
> 
> When some operating systems (e.g. Windows) try to write to a timer
> config, they will verify and rewrite the register if the values don't
> match what they expect. This causes an unnecessary write to HPET_Tn_CFG.
> 
> Note, the HPET specification states that for the Tn_INT_ROUTE_CNF field:
> 
> "If the value is not supported by this prarticular timer, then the value
> read back will not match what is written. [...] If the LegacyReplacement
> Route bit is set, then Timers 0 and 1 will have a different routing, and
> this bit field has no effect for those two timers."
> 
> Therefore, Xen should not reset timer_int_route if legacy mode is
> enabled, regardless of what's in there.

Fixes: ec40d3fe2147 ("x86/vhpet: check that the set interrupt route is valid")
(I think)

> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
> ---
>  xen/arch/x86/hvm/hpet.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> --- a/xen/arch/x86/hvm/hpet.c
> +++ b/xen/arch/x86/hvm/hpet.c
> @@ -48,6 +48,8 @@
>  #define timer_is_32bit(h, n)     (timer_config(h, n) & HPET_TN_32BIT)
>  #define hpet_enabled(h)          ((h)->hpet.config & HPET_CFG_ENABLE)
>  #define timer_level(h, n)        (timer_config(h, n) & HPET_TN_LEVEL)
> +#define timer_is_legacy(h, n) \
> +    (((n) <= 1) && ((h)->hpet.config & HPET_CFG_LEGACY))
>  
>  #define timer_int_route(h, n)    MASK_EXTR(timer_config(h, n), HPET_TN_ROUTE)
>  
> @@ -244,7 +246,7 @@ static void hpet_set_timer(HPETState *h, unsigned int tn,
>           (timer_level(h, tn) && test_bit(tn, &h->hpet.isr)) )
>          return;
>  
> -    if ( !timer_int_route_valid(h, tn) )
> +    if ( !timer_is_legacy(h, tn) && !timer_int_route_valid(h, tn) )

Seeing this and the other use together with timer_int_route_valid(),
wouldn't timer_int_route_valid() better itself invoke the new macro?

> @@ -379,6 +381,9 @@ static int cf_check hpet_write(
>          h->hpet.config = hpet_fixup_reg(new_val, old_val,
>                                          HPET_CFG_ENABLE | HPET_CFG_LEGACY);
>  
> +        for ( i = 0; i < HPET_TIMER_NUM; i++ )
> +            timer_sanitize_int_route(h, i);

Strictly speaking this is needed only when HPET_CFG_LEGACY went from
1 to 0. Plus it's needed only on the first 2 channels, as it's only
there where timer_sanitize_int_route() changes behavior. I'm not going
to insist to limit it like this, but if you don't, then I'd like to ask
for a comment here clarifying that excess work is done for simplicity's
sake.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 14:51:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 14:51:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171238.1496255 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNXuR-0003WD-Qy; Mon, 24 Nov 2025 14:51:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171238.1496255; Mon, 24 Nov 2025 14:51: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 1vNXuR-0003W6-O7; Mon, 24 Nov 2025 14:51:19 +0000
Received: by outflank-mailman (input) for mailman id 1171238;
 Mon, 24 Nov 2025 14:51: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNXuQ-0003Vx-Ac
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 14:51:18 +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 070ef037-c945-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 15:51:15 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-42b2dc17965so4262044f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 06:51: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-42cb7f2e574sm28675924f8f.3.2025.11.24.06.51.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 06:51: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: 070ef037-c945-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763995875; x=1764600675; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gmdMZ2QwvigGevV8XqtCpMnJo2mvl0QRlQuG40ABk/4=;
        b=Z7RyPa+WtXpBCJq189dvIcFjQ5SlSW9AsCMbQe+7QfMcrdEQT/D952p38hhgUtYLe+
         6iRtWMUVf9H0P/WmPcUhUYbCEEWGixm/2vKO9RIZna1GzIj2MwDRh+gfHZ7CNI6XXFQH
         KteWykc/kkVShaYcpJk0EuhMrYqznukB8RWXwePvUyz2MpDZSDbn4naDCaEQKbLFdsxf
         /H/rsQheVlGuY46umxwJldLdM478HAofzAbtJx3lZEJNRtMBX/Jm0xtlJtGqNwB+4oOA
         2dNL/CaRdoh7Z+OP7ZGk2B40veK8vdyc85SDz4rm2EGGnj3cDqz/kkupFFPQRU7kVveK
         UbSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763995875; x=1764600675;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gmdMZ2QwvigGevV8XqtCpMnJo2mvl0QRlQuG40ABk/4=;
        b=EeaEeCkAjjBhokqy9gGuOBD9U6Hw/TJnaSwvp6Zxm9sDNRA7Kas8MOtYw6wGJ14SeV
         /D0nm+ZkyxCW8LvzUJDJI0BDtrl1uFaJps0gFJeAn7DXi1hgm8lcoh+pfKg2W8MgZB5x
         hMfITnxd35E4r3Wlk3t8iydX8g1cMAdda6fk2uKhHxGoSllxkvBXHGIYVygek9uhF3Jk
         RxrQ0pSsyEm42a8wO11Ut6+YF0JCjiwrCN7oudpU7BczSVZVostI82fZuV7XZV1mcHu/
         HEhmJgLSzJfSGR1xounyZl50ee3M+x4FJde7jfzCbxFkJ+YV12kFesD++wRKbJYOnQaK
         yFfA==
X-Forwarded-Encrypted: i=1; AJvYcCWZmD0Br4CBWigrwAPw2uCIezSvBXnbaX+Z2ZmscJi3hLkf4fd+wG10NmRlSElXd3zMeN2wgYwh04s=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywj933+pBHM1wg8q+RB0wfywgDFDIZX09dJ5rngimkiPbWiQJip
	Bb0uYPlQUCYf8CwbkJPhS4vbRve/eayHgcW5qzRfE4fjTPYgKI67Tnpz31HwW0+Vuw==
X-Gm-Gg: ASbGnctmFKIReDITeQ6anc5MymLDv5RGhwm3DW9PNH7QpuBveBAoN8eqU3Y7sbttY+3
	rApYSOocPc88I2SAFR16A9oSAOvdUguP5w2w9yDSkFPEJVweBGe+s2WnHlW6IbC5Y+7X+VzNC+d
	+VH5iC6T+piC7qGAvZu/A1LptTMQ4cWceP2viWYZwqsEliLT8XogpIHDQkTvQa56ZogCOG7YhBO
	uYQt+vm7z0P4/VPcqIqRZPnT/7SYmqncClkXEwId+b+5LpKOrM8alZWPmy45SiwVYdKB0Pe4Jvf
	y3hJopPSl1G6Pt9q2g8pcBCQioExy/FOhNA7Va3h/ZEDxjBNElejUT0CN0nlMe7fNAYYAiIZQua
	B3Em0oEwV5vGt3zq/r6dhxJfzZxMa+kD3TZjtTgpxGZmkFv1NvGIuUvEmx7gfC1C2ikb7JXCzzU
	RZIxPpTNnf8TgRfj5Ydah4VA/KFfDPKxKar3qdXAMCUT5dToamNthVlD4KMk2j8xxaEknkCGIN3
	lFr1nZ6DpCVlA==
X-Google-Smtp-Source: AGHT+IEBpSX4x0zdt82RKWsCNsduOKwZ/sG8Y9a7a06fpa5aSDjRRFkP+8ygt96709L7iaIi/TdA/A==
X-Received: by 2002:a05:6000:2906:b0:42b:41d3:daf1 with SMTP id ffacd0b85a97d-42cc1d1965amr14087237f8f.38.1763995875213;
        Mon, 24 Nov 2025 06:51:15 -0800 (PST)
Message-ID: <85a819ff-a8f3-44c3-b3ce-b32f7dd856d8@suse.com>
Date: Mon, 24 Nov 2025 15:51:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 6/6] x86/cpufreq: use host CPU policy in HWP driver
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f0ac75c8-5d65-43ef-aeeb-78d34f1da470@suse.com>
 <bacee005-8ba3-468e-8de4-681af1cc4856@suse.com>
 <bf1f22ae-11d0-4ac4-9b64-72c3c83c2ef1@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: <bf1f22ae-11d0-4ac4-9b64-72c3c83c2ef1@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2025 15:35, Jason Andryuk wrote:
> On 2025-11-24 07:25, Jan Beulich wrote:
>> --- a/xen/arch/x86/acpi/cpufreq/hwp.c
>> +++ b/xen/arch/x86/acpi/cpufreq/hwp.c
> 
>> @@ -226,7 +214,8 @@ static int cf_check hwp_cpufreq_verify(s
>>   {
>>       struct hwp_drv_data *data = per_cpu(hwp_drv_data, policy->cpu);
>>   
>> -    if ( !feature_hwp_activity_window && data->activity_window )
>> +    if ( !cpu_has_hwp_activity_window &&
>> +         data->activity_window )
> 
> This ...
>>       {
>>           hwp_verbose("HWP activity window not supported\n");
>>   
> 
>> @@ -537,7 +526,8 @@ int get_hwp_para(unsigned int cpu,
>>           return -ENODATA;
>>   
>>       cppc_para->features         =
>> -        (feature_hwp_activity_window ? XEN_SYSCTL_CPPC_FEAT_ACT_WINDOW : 0);
>> +        (cpu_has_hwp_activity_window
>> +         ? XEN_SYSCTL_CPPC_FEAT_ACT_WINDOW : 0);
> 
> ...and this can still be on one line.

Oh, yes, the lines now became shorter again.

> Preferably with that fixed:
> 
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 14:56:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 14:56:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171251.1496264 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNXzo-0004l2-BD; Mon, 24 Nov 2025 14:56:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171251.1496264; Mon, 24 Nov 2025 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 1vNXzo-0004kv-8e; Mon, 24 Nov 2025 14:56:52 +0000
Received: by outflank-mailman (input) for mailman id 1171251;
 Mon, 24 Nov 2025 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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNXzn-0004kp-0a
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 14:56:51 +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 cd8c1a81-c945-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 15:56:48 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4779aa4f928so37087185e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 06:56: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-477bf1f365fsm201139525e9.8.2025.11.24.06.56.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 06:56: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: cd8c1a81-c945-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763996208; x=1764601008; 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=tZlGyzEbG4hX4MO2kyHfamM2iNiDSDSGSPCff2cfVk0=;
        b=HBtGH0WNlTWer1vazRrLIOxRZdAUrCvR7FaSS17lBQw80ihn/SVBAThbFR+hKLzEqr
         gnQBEfSibRdNQrL3nw7x2Wst7GSDeAzCMNABqMScsUkKHXCRiFUaO8Vv9FNdCBprSI6T
         bp9yfScnsX2wjz/fbFeVdWLGihw0S+S5TGh0CXYIK+ObBiDb/Vj1kRit6KtjLDHE5zPM
         a2Ew5iuz8ukX7c/rm6ZEbutjW2kN2KdyiqvUTAc1yHWnimuSx9CvWzKIsgkpHy5jim+p
         QDfFT442QAtGoY39/EBCdR7dMjtBQ+F8No6YCvASitpNa+jWQ97+HHFyg8Ea2TiJBG+V
         cpWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763996208; x=1764601008;
        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=tZlGyzEbG4hX4MO2kyHfamM2iNiDSDSGSPCff2cfVk0=;
        b=CTcBfYeoRYd+8wn5shxtqdT2eOgvR2XfMBepzz1qeblEsnjjGrZtMKUnT9BAsvgR8U
         sBnU6yDPklTmJ7znDfvlt6zTagpRiQvnqCP0xv9c4nph+sNNXthVZCXbS7PPGAKeVhrj
         gE2iBMWLaWVaFymrGYa6PSg6u+tb1uC58f/or8AAMGMvqSjGMkypm5MrmS8zcmgHfAIh
         Y7k1nKJJT1thNl8Rk/WI+hugb+VHi0HlHMK/03HgzAdCxB7gpxNF7H5OMPKdUjyGqjNG
         HSYuiFl7RdhedomJuv/uPlA9pabTGfKGsXr/do09dF78BIkNX5WDf0fhlh6PuYEwqwyQ
         SijA==
X-Gm-Message-State: AOJu0YxsKIxwkKq2m1TagomNIFL9XA6XBvwtDPo07wrTJjko85/iZmh3
	OgubRerIFx4WwMcMHjXfFy3mygWiO1mebTTu95h2SsJbrUM0U9kJ4PknkDXuO+G0ff32vYKHONg
	Naso=
X-Gm-Gg: ASbGnct+gIrNNiw+UUtJeI2w6DNsEUBEr6NDl9dijbzra3y/GHK9yWG8tGtmUqyX41Y
	6Pskb7LGVxbV7GhXZY5FxCbS6Qr1xOFcUGk4a4UL8vYMdEoDhezmnrMk+0Cmn2o/t7hWZQCehjM
	xiusnj8KF3FxjvSsknF175cMMePYpsid6BNt7kzVmWN3YVVCKtQ0+PNd9woTUvwZ0mgPJKUgLU2
	9UBucY7pV8+vwcZdAFpoWzW+fUdkUgt3fb/Js6GfX51iMdTFqoE5Nx074qzpHM+1YNYlzPXv+sq
	RzWW3jyc+b9ezPGKJMRbWIlpFequtzipuZDr466ij2aZjM9GomYw5FvqgiE8lQgA6U2ScYMJ4TS
	8eXQErmx+qUWHC7yIzmNinrd8TTe33L6F1Bv9YhPiS2FT4J+Jod5u6s3ikHKbTmmc3yIJ7B4iVX
	+yVOrB/ERq56JMCjV8ofDnFqFHeLnhzFw+2AZhmjh5u8A4hSZCPZhJ342UNWQBAUsyv3wioGFV/
	RI=
X-Google-Smtp-Source: AGHT+IHJFXs3DcCRjf/gEgdJI8v5taOdiQ4ppngJKzQ7Nx+6xGEL7aLkvTHMha52S8o3qibseU4Vyg==
X-Received: by 2002:a7b:cb81:0:b0:477:9574:d641 with SMTP id 5b1f17b1804b1-477c01be3e7mr81760915e9.22.1763996208185;
        Mon, 24 Nov 2025 06:56:48 -0800 (PST)
Message-ID: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
Date: Mon, 24 Nov 2025 15:56:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v9 10/10] x86emul: misc additions
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

01: x86emul: support LKGS
02: x86emul+VMX: support {RD,WR}MSRLIST
03: x86emul: support USER_MSR instructions
04: x86/cpu-policy: re-arrange no-VMX logic
05: VMX: support USER_MSR
06: VMX: support MSR-IMM
07: x86emul: support MSR_IMM instructions
08: x86emul: support non-SIMD MOVRS
09: x86: use / "support" UDB
10: x86emul: support AVX512-BMM

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 14:57:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 14:57:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171259.1496274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNY0o-0005G8-Ke; Mon, 24 Nov 2025 14:57:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171259.1496274; Mon, 24 Nov 2025 14:57:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNY0o-0005G1-HT; Mon, 24 Nov 2025 14:57:54 +0000
Received: by outflank-mailman (input) for mailman id 1171259;
 Mon, 24 Nov 2025 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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNY0m-0005Ft-Rm
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 14:57:52 +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 f2e38a4f-c945-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 15:57:51 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-477a219db05so26530955e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 06:57: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-477bf198a67sm210014975e9.0.2025.11.24.06.57.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 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: f2e38a4f-c945-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763996271; x=1764601071; 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=+SosLSI1QkWi5PQ23/DFtIzla71+q6am/d29qqGnVzI=;
        b=CPxNrnwWUlX7GW4KjzDGiYqjmxdcAiwSRamaZW5z2n0CiMAqNQCp43ASnsY+x4NNj1
         xD0iS+Fa92y+MiVTMyG1qIWqa3kVtKmjN6hR374gc7ot+PZAuNypnq6zigoa7jMe0+II
         kmCZdRQ7mYGOp9DNeRlJqKQeeCH4QqEtNebsI8xbEVYqjnEQBMpqyObLqQv5fkNZqffZ
         wdxdBBDHMcoKqgTuCrdYMvWXAFNqgka7XrJVgv7VmvKIImq+HOg+kfMaQ2qp66tPqd1R
         PrwzN9kX/lO3OnZ7WId+xkjByFlUj5+y7j+BiBpv35Yr6SWsR1CO8bEH+QCGGGNbrQrm
         Nk4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763996271; x=1764601071;
        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=+SosLSI1QkWi5PQ23/DFtIzla71+q6am/d29qqGnVzI=;
        b=nUFfd0lMH4WLt3hW7m+Eg97b6122RcOzF0uZUJOdjiche1eTn5+nsoS6meZ+pSoi6s
         l6SiKX9gWFhEIez/5y4BOVFGFCEOc3UkxPLBnq0+XPgD94VAg8sXwvsi6YmvaOAoPEcI
         Xnbi8l5bgrpI2LKk1iG8Qqv0XIJ5A3JiusGnsXIcRBmv9G8+TLGZ47XJbJsknRJ579Kk
         KSTBbRQpIZJvMWZHcX0urXAYsoDdx2YEf1peYqhNuXyjnKxt04ttzF9JcNhDxpKInUaL
         1j7yltehE1lKgEuo9s5JpQ24BEVW9BBZ71cibQ+XoUsN+ebhUJ4zr5B82m6vGlQpaNeJ
         OrJw==
X-Gm-Message-State: AOJu0YzSxdUCwUGsEKgv+8ukKDCANx25b5Gi6gC62OXPsUVHUAz4qBOX
	GOdkEHttnTDp2TvWgkxZeK9Xj1pAKAccYmoGE/3BjX08LStbVdT2qxur20vNQ5xDw+zl1QoXu2N
	41wM=
X-Gm-Gg: ASbGncvB6mLs59EGawehvVZwNjjsJGcSoG7KS+ejIH3cYAVcw0Wyka3kJVM71xUoHew
	lIg158sQW6gjszij2m6gg29rOPRDxW0OIyGjqmKauHiMaUopGHkMtOgGHDy/T0C75jjqw2ugp2I
	kRP5OLfOgDnLA9bYdnC+YaK3Rprz4v8/twhEW5uAgKofOmEAmNJy7zxIOXuUad0fMue0km8lIux
	Zlp9FsDVDYVEehRrSLOrp7+0nGkQgXJcmtW82q+LYZNBWFZGfNjfn3hUVJ0F0RWPQJfzYBE48gd
	COl9tyvwct4xkEF9jxnFv+8I+uXa9lQy8KWYiJhKYG7S2MDrt9azTJiMuJxKIC2r7GuM36Kekxm
	sRMKjPmfn4115O4BjaZBe3SHXEwq0VdW8nCGwG9bdtK6FsJcGSQz3Le2V4G59+0lcLY9uQo6BFT
	URC9IKqTrCPbdzBLQDPlpQQcTXX3e9r/V/dD5wofS/d6Q9xPAYWZ43wL+BtwhQAPJGk0EZr4lEX
	J4=
X-Google-Smtp-Source: AGHT+IGzic398cTKgsVALDOsk2EzEi8rRGEaJ3RwjAIdXZZ19REXijjtCjr7D96FZaPcFUGRwJT5rg==
X-Received: by 2002:a05:600c:4f82:b0:477:952d:fc11 with SMTP id 5b1f17b1804b1-477c11175a9mr137503265e9.16.1763996270822;
        Mon, 24 Nov 2025 06:57:50 -0800 (PST)
Message-ID: <451ca993-86f2-40dc-b68b-a23c055687c0@suse.com>
Date: Mon, 24 Nov 2025 15:57:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v9 01/10] x86emul: support LKGS
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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Provide support for this insn, which is a prereq to FRED. CPUID-wise,
while its and FRED's enumerators were already introduced, their dependency
still needs adding.

While adding a testcase, also add a SWAPGS one. In order to not affect
the behavior of pre-existing tests, install write_{segment,msr} hooks
only transiently.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Instead of ->read_segment() we could of course also use ->read_msr() to
fetch the original GS base. I don't think I can see a clear advantage of
either approach; the way it's done it matches how we handle SWAPGS.

For PV save_segments() would need adjustment, but the insn being
restricted to ring 0 means PV guests can't use it anyway (unless we
wanted to emulate it as another privileged insn).
---
v9: Re-base.
v8: Re-base.
v6: Use MSR constants in test harness. S->s in cpufeatureset.h. Add
    NMI_SRC feature bits. Re-base.
v5: Re-base.
v3: Add dependency on LM. Re-base.
v2: Use X86_EXC_*. Add comments.

--- a/tools/tests/x86_emulator/predicates.c
+++ b/tools/tests/x86_emulator/predicates.c
@@ -326,6 +326,7 @@ static const struct {
     { { 0x00, 0x18 }, { 2, 2 }, T, R }, /* ltr */
     { { 0x00, 0x20 }, { 2, 2 }, T, R }, /* verr */
     { { 0x00, 0x28 }, { 2, 2 }, T, R }, /* verw */
+    { { 0x00, 0x30 }, { 0, 2 }, T, R, pfx_f2 }, /* lkgs */
     { { 0x01, 0x00 }, { 2, 2 }, F, W }, /* sgdt */
     { { 0x01, 0x08 }, { 2, 2 }, F, W }, /* sidt */
     { { 0x01, 0x10 }, { 2, 2 }, F, R }, /* lgdt */
--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -672,6 +672,10 @@ static int blk(
     return x86_emul_blk((void *)offset, p_data, bytes, eflags, state, ctxt);
 }
 
+#ifdef __x86_64__
+static unsigned long gs_base, gs_base_shadow;
+#endif
+
 static int read_segment(
     enum x86_segment seg,
     struct segment_register *reg,
@@ -681,8 +685,30 @@ static int read_segment(
         return X86EMUL_UNHANDLEABLE;
     memset(reg, 0, sizeof(*reg));
     reg->p = 1;
+
+#ifdef __x86_64__
+    if ( seg == x86_seg_gs )
+        reg->base = gs_base;
+#endif
+
+    return X86EMUL_OKAY;
+}
+
+#ifdef __x86_64__
+static int write_segment(
+    enum x86_segment seg,
+    const struct segment_register *reg,
+    struct x86_emulate_ctxt *ctxt)
+{
+    if ( !is_x86_user_segment(seg) )
+        return X86EMUL_UNHANDLEABLE;
+
+    if ( seg == x86_seg_gs )
+        gs_base = reg->base;
+
     return X86EMUL_OKAY;
 }
+#endif
 
 static int read_msr(
     unsigned int reg,
@@ -695,6 +721,20 @@ static int read_msr(
         *val = ctxt->addr_size > 32 ? EFER_LME | EFER_LMA : 0;
         return X86EMUL_OKAY;
 
+#ifdef __x86_64__
+    case MSR_GS_BASE:
+        if ( ctxt->addr_size < 64 )
+            break;
+        *val = gs_base;
+        return X86EMUL_OKAY;
+
+    case MSR_SHADOW_GS_BASE:
+        if ( ctxt->addr_size < 64 )
+            break;
+        *val = gs_base_shadow;
+        return X86EMUL_OKAY;
+#endif
+
     case MSR_TSC_AUX:
 #define TSC_AUX_VALUE 0xCACACACA
         *val = TSC_AUX_VALUE;
@@ -704,6 +744,31 @@ static int read_msr(
     return X86EMUL_UNHANDLEABLE;
 }
 
+#ifdef __x86_64__
+static int write_msr(
+    unsigned int reg,
+    uint64_t val,
+    struct x86_emulate_ctxt *ctxt)
+{
+    switch ( reg )
+    {
+    case MSR_GS_BASE:
+        if ( ctxt->addr_size < 64 || !is_canonical_address(val) )
+            break;
+        gs_base = val;
+        return X86EMUL_OKAY;
+
+    case MSR_SHADOW_GS_BASE:
+        if ( ctxt->addr_size < 64 || !is_canonical_address(val) )
+            break;
+        gs_base_shadow = val;
+        return X86EMUL_OKAY;
+    }
+
+    return X86EMUL_UNHANDLEABLE;
+}
+#endif
+
 #define INVPCID_ADDR 0x12345678
 #define INVPCID_PCID 0x123
 
@@ -1338,6 +1403,41 @@ int main(int argc, char **argv)
         printf("%u bytes read - ", bytes_read);
         goto fail;
     }
+    printf("okay\n");
+
+    emulops.write_segment = write_segment;
+    emulops.write_msr     = write_msr;
+
+    printf("%-40s", "Testing swapgs...");
+    instr[0] = 0x0f; instr[1] = 0x01; instr[2] = 0xf8;
+    regs.eip = (unsigned long)&instr[0];
+    gs_base = 0xffffeeeecccc8888UL;
+    gs_base_shadow = 0x0000111122224444UL;
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_OKAY) ||
+         (regs.eip != (unsigned long)&instr[3]) ||
+         (gs_base != 0x0000111122224444UL) ||
+         (gs_base_shadow != 0xffffeeeecccc8888UL) )
+        goto fail;
+    printf("okay\n");
+
+    printf("%-40s", "Testing lkgs 2(%rdx)...");
+    instr[0] = 0xf2; instr[1] = 0x0f; instr[2] = 0x00; instr[3] = 0x72; instr[4] = 0x02;
+    regs.eip = (unsigned long)&instr[0];
+    regs.edx = (unsigned long)res;
+    res[0]   = 0x00004444;
+    res[1]   = 0x8888cccc;
+    i = cpu_policy.extd.nscb; cpu_policy.extd.nscb = true; /* for AMD */
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_OKAY) ||
+         (regs.eip != (unsigned long)&instr[5]) ||
+         (gs_base != 0x0000111122224444UL) ||
+         gs_base_shadow )
+        goto fail;
+
+    cpu_policy.extd.nscb = i;
+    emulops.write_segment = NULL;
+    emulops.write_msr     = NULL;
 #endif
     printf("okay\n");
 
--- a/tools/tests/x86_emulator/x86-emulate.c
+++ b/tools/tests/x86_emulator/x86-emulate.c
@@ -85,6 +85,7 @@ bool emul_test_init(void)
     cpu_policy.feat.invpcid = true;
     cpu_policy.feat.adx = true;
     cpu_policy.feat.rdpid = true;
+    cpu_policy.feat.lkgs = true;
     cpu_policy.feat.wrmsrns = true;
     cpu_policy.extd.clzero = true;
 
--- a/xen/arch/x86/x86_emulate/decode.c
+++ b/xen/arch/x86/x86_emulate/decode.c
@@ -744,8 +744,12 @@ decode_twobyte(struct x86_emulate_state
         case 0:
             s->desc |= DstMem | SrcImplicit | Mov;
             break;
+        case 6:
+            if ( !(s->modrm_reg & 1) && mode_64bit() )
+            {
         case 2: case 4:
-            s->desc |= SrcMem16;
+                s->desc |= SrcMem16;
+            }
             break;
         }
         break;
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -608,6 +608,7 @@ amd_like(const struct x86_emulate_ctxt *
 #define vcpu_has_avx_vnni()    (ctxt->cpuid->feat.avx_vnni)
 #define vcpu_has_avx512_bf16() (ctxt->cpuid->feat.avx512_bf16)
 #define vcpu_has_cmpccxadd()   (ctxt->cpuid->feat.cmpccxadd)
+#define vcpu_has_lkgs()        (ctxt->cpuid->feat.lkgs)
 #define vcpu_has_wrmsrns()     (ctxt->cpuid->feat.wrmsrns)
 #define vcpu_has_avx_ifma()    (ctxt->cpuid->feat.avx_ifma)
 #define vcpu_has_avx_vnni_int8() (ctxt->cpuid->feat.avx_vnni_int8)
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -2899,8 +2899,35 @@ x86_emulate(
                 break;
             }
             break;
-        default:
-            generate_exception_if(true, X86_EXC_UD);
+        case 6: /* lkgs */
+            generate_exception_if((modrm_reg & 1) || vex.pfx != vex_f2,
+                                  X86_EXC_UD);
+            generate_exception_if(!mode_64bit() || !mode_ring0(), X86_EXC_UD);
+            vcpu_must_have(lkgs);
+            fail_if(!ops->read_segment || !ops->read_msr ||
+                    !ops->write_segment || !ops->write_msr);
+            if ( (rc = ops->read_msr(MSR_SHADOW_GS_BASE, &msr_val,
+                                     ctxt)) != X86EMUL_OKAY ||
+                 (rc = ops->read_segment(x86_seg_gs, &sreg,
+                                         ctxt)) != X86EMUL_OKAY )
+                goto done;
+            dst.orig_val = sreg.base; /* Preserve full GS Base. */
+            if ( (rc = protmode_load_seg(x86_seg_gs, src.val, false, &sreg,
+                                         ctxt, ops)) != X86EMUL_OKAY ||
+                 /* Write (32-bit) base into SHADOW_GS. */
+                 (rc = ops->write_msr(MSR_SHADOW_GS_BASE, sreg.base,
+                                      ctxt)) != X86EMUL_OKAY )
+                goto done;
+            sreg.base = dst.orig_val; /* Reinstate full GS Base. */
+            if ( (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) == X86EMUL_EXCEPTION )
+                    x86_emul_reset_event(ctxt);
+                goto done;
+            }
             break;
         }
         break;
--- a/xen/tools/gen-cpuid.py
+++ b/xen/tools/gen-cpuid.py
@@ -282,7 +282,8 @@ def crunch_numbers(state):
         # superpages, PCID and PKU are only available in 4 level paging.
         # NO_LMSL indicates the absense of Long Mode Segment Limits, which
         # have been dropped in hardware.
-        LM: [CX16, PCID, LAHF_LM, PAGE1GB, PKU, NO_LMSL, AMX_TILE, CMPCCXADD],
+        LM: [CX16, PCID, LAHF_LM, PAGE1GB, PKU, NO_LMSL, AMX_TILE, CMPCCXADD,
+             LKGS],
 
         # AMD K6-2+ and K6-III processors shipped with 3DNow+, beyond the
         # standard 3DNow in the earlier K6 processors.
@@ -351,6 +352,9 @@ def crunch_numbers(state):
         # computational instructions.  All further AMX features are built on top
         # of AMX-TILE.
         AMX_TILE: [AMX_BF16, AMX_INT8, AMX_FP16, AMX_COMPLEX],
+
+        # FRED builds on the LKGS instruction.
+        LKGS: [FRED],
     }
 
     deep_features = tuple(sorted(deps.keys()))



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 14:58:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 14:58:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171269.1496284 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNY1P-0005mc-1q; Mon, 24 Nov 2025 14:58:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171269.1496284; Mon, 24 Nov 2025 14:58:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNY1O-0005mV-VK; Mon, 24 Nov 2025 14:58:30 +0000
Received: by outflank-mailman (input) for mailman id 1171269;
 Mon, 24 Nov 2025 14:58: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=fNsn=6A=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vNY1N-0005X4-UJ
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 14:58:30 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 08a88b30-c946-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 15:58:28 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-b7380f66a8bso654461366b.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 06:58:28 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654ff3962sm1323502766b.50.2025.11.24.06.58.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 06: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: 08a88b30-c946-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763996307; x=1764601107; 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=U9rb1EscELxNAsWw5LAgHmqeO7FGxuvs8IaqTiD5V+0=;
        b=cPDYhsOXiNJnOWkgQTnTd/NnEBsTK/cQm2M+3BYlz8gIiP9JbPvE6NVZHM4fuiGE0s
         eL9s9ZAeALC2EOkEhMl/WnJxb+Pa3L01ZIrjDMaHKBk0SWYKRlCITg6HtBuXqFi9bVNy
         2h6IqB59Sb4K+9P5vTuNQmIggPyzRpwSvscUJbE8UhG+HPmMCsgmnaKICkRTRpr7aTST
         7fWLsblmPLFSqJF95RV2owTrLMPWBasVcSMfpqhQRvYhlfTl4jJsKVmgzu3pQaPkpiq4
         Hky5/rVPrsAqnUri1Oew4wTnfOzuGCIBrTi7R1Fh7aLEH1LWc0VJeqS3SGA2hdCl1F8K
         Jqew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763996307; x=1764601107;
        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=U9rb1EscELxNAsWw5LAgHmqeO7FGxuvs8IaqTiD5V+0=;
        b=btoJ5WUhtxiAMXDLnwmhMu6Ka7QHmFatDXP5W7nz5eRwqFN1ELT/nfT1/jKvVrdxWS
         kSM22lKbjVI1tqoX0Y/67VNf3iha/FToN1dSrb2oFzgA76zYjJklXuUiEDrguCCPKGel
         37tDM673kI8CeG74WftPcuMqYxxfxNqNdenzbnjtjPj7lJt7h3zCAWEBiE54fiCNOIlV
         TzaJA16xH9iR4uxlNNbyltL4WMp9zHH3IakMdmutFt1S2x6HHmJ30kUOb+gkzAvX0dkC
         ZBJmtOkWTLXGSkHg3JNIoAzZhFrg8c4uhBMsyckDe4fhJ3BwcuLquDrXp3z3KxtxFyvU
         x4uw==
X-Forwarded-Encrypted: i=1; AJvYcCXV9Cv/jvAZpZxBYMbqAIrK8jtfE29oIWTv87qWOOUJ9sYyUCZtfSQw2XcuowAjJ18w+gXgOmjfBeY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwYTyqlvhX4rIDEu5WhC3NcErS3X73qEnUjfb+3BBvz+HQRaXG0
	H70JN3KSzLAZ/q+hGm/GOB0GvyP4ma15LEASatVT5TBb6GPeVuHJkojnnSIlI7dgkRCSLoSbbDk
	upDqQjvs=
X-Gm-Gg: ASbGncvkSkpxy/3feguODhcqp6ixtfwGTQ1tTYhpBC3ijca7cbFqZJunPaR3OR8e3lk
	P3+0EaLYE6Hiaxy8dgvwqiCn2EyCQG9IccN+t2lPALA20YZwGT45BSjT65yil/8u1RUYgqZ6U7H
	jwYnste/rJq8coQGNWj/N/rY4r6wZicNd4FJNDeT01WLPdZWP4K+Nx7HsepW+n4SR+NXmzf32Hz
	RLy397TgllGitoXreo4Qwz0eWMzEifUI7aNicdcF3Qjw9N2+KdGik9h76UlMwJ/ynC9qKolg5QR
	jUCHwuqLP3LKv9TvaGnItxiJmmad8KNsdzEqqhMQNEBZz7xHgHC8jCrCYSqCWf5VuWh4m+Har8T
	Fk+OpTSVQkkDoKlG9KWk0uAKpx2L7RW+h7kYkRyxuoNqOCvCXouAcbj51miMZ6D/1WnhkD/8ZI+
	xkz4uc5yWb/Lcvbn+BnWBCxvrycKqxRVG1nkb7cTlM74FHCjwm7x0ZcGy7aW8WfhnjzKFDsZYt0
	cmzWqCLPYY+5LSWsA6LTmzNuClDT6ig2o6RhRBBwzCo4Wm4rg==
X-Google-Smtp-Source: AGHT+IFk8jNGFyyTeWcu/H0tSooc89TK/+Apk8XFpZHsy0ys/N4hCQ4amFtiehdZf7WVDYmhaOarfA==
X-Received: by 2002:a17:907:6095:b0:b73:a0b9:181a with SMTP id a640c23a62f3a-b7671a241eemr1324497466b.54.1763996307314;
        Mon, 24 Nov 2025 06:58:27 -0800 (PST)
Message-ID: <158df666-9359-4fe8-976b-f194a1fb317b@suse.com>
Date: Mon, 24 Nov 2025 15:58:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
 <d34e3e86-c51a-49b3-8b46-140526755f0f@suse.com>
 <826037a5-dacf-434f-90d9-8f12e61bdd6e@suse.com>
 <0ece9df6-8a04-4ffa-bcf4-d7a3fd4bbef4@suse.com>
 <bf7e1a66-1696-477a-bdef-79b08df0b57c@suse.com>
 <bbcaf4f2-c52e-4b3e-ab6a-ca5020a8b786@suse.com>
 <a593e8cb-fa56-4301-a7da-ca4b51dfab9a@suse.com>
 <39df58e5-6b04-45fb-bd25-8ebc8972a7ed@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: <39df58e5-6b04-45fb-bd25-8ebc8972a7ed@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------KfZZ9JXhHAtruW06WPwZqx4A"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------KfZZ9JXhHAtruW06WPwZqx4A
Content-Type: multipart/mixed; boundary="------------h6FyQEcYkNdaApCR32iRpqQB";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.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?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Message-ID: <158df666-9359-4fe8-976b-f194a1fb317b@suse.com>
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
 <d34e3e86-c51a-49b3-8b46-140526755f0f@suse.com>
 <826037a5-dacf-434f-90d9-8f12e61bdd6e@suse.com>
 <0ece9df6-8a04-4ffa-bcf4-d7a3fd4bbef4@suse.com>
 <bf7e1a66-1696-477a-bdef-79b08df0b57c@suse.com>
 <bbcaf4f2-c52e-4b3e-ab6a-ca5020a8b786@suse.com>
 <a593e8cb-fa56-4301-a7da-ca4b51dfab9a@suse.com>
 <39df58e5-6b04-45fb-bd25-8ebc8972a7ed@suse.com>
In-Reply-To: <39df58e5-6b04-45fb-bd25-8ebc8972a7ed@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=

--------------h6FyQEcYkNdaApCR32iRpqQB
Content-Type: multipart/mixed; boundary="------------nAAYj5ZWyrUZO1qvVgNZt8XL"

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

T24gMjQuMTEuMjUgMTU6MzAsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyNC4xMS4yMDI1
IDEzOjQ1LCBKw7xyZ2VuIEdyb8OfIHdyb3RlOg0KPj4gT24gMjQuMTEuMjUgMTM6MTgsIEph
biBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDI0LjExLjIwMjUgMTI6MjcsIEp1ZXJnZW4gR3Jv
c3Mgd3JvdGU6DQo+Pj4+IE9uIDI0LjExLjI1IDEyOjE1LCBKYW4gQmV1bGljaCB3cm90ZToN
Cj4+Pj4+IE9uIDI0LjExLjIwMjUgMTI6MDUsIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+Pj4+
Pj4gT24gMjQuMTEuMjUgMTE6NDEsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+Pj4+PiBPbiAy
MS4xMS4yMDI1IDE0OjIzLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4+Pj4+Pj4gLS0tIGEv
Q29uZmlnLm1rDQo+Pj4+Pj4+PiArKysgYi9Db25maWcubWsNCj4+Pj4+Pj4+IEBAIC0xNTks
NiArMTU5LDE5IEBAIGRlZmluZSBtb3ZlLWlmLWNoYW5nZWQNCj4+Pj4+Pj4+ICAgICAgCWlm
ICEgY21wIC1zICQoMSkgJCgyKTsgdGhlbiBtdiAtZiAkKDEpICQoMik7IGVsc2Ugcm0gLWYg
JCgxKTsgZmkNCj4+Pj4+Pj4+ICAgICAgZW5kZWYNCj4+Pj4+Pj4+ICAgICAgDQo+Pj4+Pj4+
PiArUEFUSF9GSUxFUyA6PSBQYXRocw0KPj4+Pj4+Pj4gK0lOQ19GSUxFUyA9ICQoZm9yZWFj
aCBmLCAkKFBBVEhfRklMRVMpLCAkKFhFTl9ST09UKS9jb25maWcvJChmKS5taykNCj4+Pj4+
Pj4+ICsNCj4+Pj4+Pj4+ICtpbmNsdWRlICQoSU5DX0ZJTEVTKQ0KPj4+Pj4+Pj4gKw0KPj4+
Pj4+Pj4gK0JVSUxEX01BS0VfVkFSUyA9ICQoZm9yZWFjaCBmLCAkKFBBVEhfRklMRVMpLCAk
KHNoZWxsIGF3ayAnJCQyID09ICI6PSIgeyBwcmludCAkJDE7IH0nICQoWEVOX1JPT1QpL2Nv
bmZpZy8kKGYpLm1rLmluKSkNCj4+Pj4+Pj4NCj4+Pj4+Pj4gRmVlbHMgbGlrZSBteSBwcmlv
ciBjb21tZW50cyB3ZXJlbid0IHJlYWxseSBhZGRyZXNzZWQuIEkgY29udGludWUgdG8gdGhp
bmsgdGhhdA0KPj4+Pj4+PiBub25lIG9mIHRoZSBhYm92ZSBpcyBwYXJ0IG9mIHdoYXQgdGhl
IHN1YmplY3Qgc2F5cy4NCj4+Pj4+Pg0KPj4+Pj4+IEkgcmVhbGx5IGRvbid0IHVuZGVyc3Rh
bmQgeW91ciBjb25jZXJuIGhlcmUuDQo+Pj4+Pj4NCj4+Pj4+PiBGb3IgcmVwbGFjaW5nIHRo
ZSBAbWFya2Vyc0AgbWFrZSBuZWVkcyB0byBrbm93IHdoYXQgc2hvdWxkIGJlIHJlcGxhY2Vk
Lg0KPj4+Pj4+IFNvIGl0IG5lZWRzIHRvIHNjYW4gdGhlIGZpbGVzIGNvbnRhaW5pbmcgdGhl
IG1hcmtlcnMgYW5kIGdhdGhlciB0aGVtLg0KPj4+Pj4+IFRoaXMgaXMgd2hhdCBpcyBkb25l
IGFib3ZlLg0KPj4+Pj4+DQo+Pj4+Pj4gSW4gdGhlIGZpbmFsIG1hY3JvIGJlbG93IHRoZSBy
ZXBsYWNlbWVudHMgYXJlIGRvbmUgdGhlbi4gSG93IHdvdWxkIHlvdQ0KPj4+Pj4+IGhhbmRs
ZSB0aGF0Pw0KPj4+Pj4NCj4+Pj4+IEJ5IHBhc3NpbmcgKGFub3RoZXIpIGFyZ3VtZW50IHRv
IHRoZSBtYWNybywgZm9yIGV4YW1wbGUuIEFzIGluZGljYXRlZA0KPj4+Pj4gZWFybGllciwg
ZGlmZmVyZW50IHN1Yi10cmVlcyBtYXkgaGF2ZSBkaWZmZXJlbnQgcGxhY2VzIHdoZXJlIHRo
ZXNlDQo+Pj4+PiBkZWZpbml0aW9ucyBsaXZlLCBhbmQgdGhleSB3b3VsZCB3YW50IHRvIGJl
IGFibGUgdG8gcGFzcyB0aGF0IGluDQo+Pj4+PiAoaWRlYWxseSB3aXRob3V0IG5lZWRpbmcg
dG8gcHV0IHRoaXMgaW4gYSBjb21tb24gcGFydCBvZiB0aGUgdHJlZSkuDQo+Pj4+DQo+Pj4+
IEkgZG9uJ3QgZ2V0IHdoYXQgeW91IHdhbnQgdG8gcGFzcyBpbiBhZGRpdGlvbmFsbHkuDQo+
Pj4+DQo+Pj4+IEkndmUgYWxyZWFkeSBjaGFuZ2VkIHRoZSBtYWNybyBhbmQgdGhlIE1ha2Vm
aWxlcyB0byBiZSBhYmxlIHRvIGFkZCBhbm90aGVyDQo+Pj4+IG1hcmtlciBmaWxlIHRvIHRo
ZSBQQVRIX0ZJTEVTIHZhcmlhYmxlLiBXaGF0IGVsc2UgZG8geW91IG5lZWQ/DQo+Pj4NCj4+
PiBXZWxsLCB0aGF0J3Mgc2ltcGx5IGFuIG9kZCB3YXkgb2YgcGFzc2luZyBhIHBhcmFtZXRl
ci4gUGx1cywgdGhlIGV4dHJhIGZpbGUNCj4+DQo+PiBXZSBkbyB0aGF0IGFsbCB0aGUgdGlt
ZXMsIGUuZy4gYnkgIk9CSi15ICs9IC4uLiINCj4gDQo+IFRoYXQncyBzdWZmaWNpZW50bHkg
ZGlmZmVyZW50IHRob3VnaDogQWNjdW11bGF0aW5nIHRoZSBzZXQgb2Ygb2JqZWN0cyB0bw0K
PiBwcm9kdWNlIGlzIGtpbmQgb2YgbmF0dXJhbGx5IGRvbmUgdGhhdCB3YXkuDQo+IA0KPj4+
IHdvbid0IGFmZmVjdCBJTkNfRklMRVMsIG9yIG1vcmUgcHJlY2lzZWx5IGl0cyB1c2UgaW4g
dGhlIGluY2x1ZGUgZGlyZWN0aXZlDQo+Pj4gaW4gcGF0Y2ggMTogQXQgbGVhc3QgYWl1aSwg
JChJTkNfRklMRVMpIGlzIGV4cGFuZGVkIGF0IHRoZSBwb2ludCB3aGVuIHRoZQ0KPj4+IGRp
cmVjdGl2ZSBpcyBwcm9jZXNzZWQuIEhlbmNlIHdoeSB5b3UgbmVlZCB0byBvcGVuLWNvZGUg
YW5vdGhlciBpbmNsdWRlDQo+Pj4gdGhlcmUuDQo+Pg0KPj4gVGhlIElOQ19GSUxFUyB2YXJp
YWJsZSBpcyBtb3N0bHkgbmVlZGVkIGZvciBzcGVjaWZ5aW5nIHRoZSBkZXBlbmRlbmNlIG9m
DQo+PiB0aGUgZ2VuZXJhdGVkIGZpbGVzIG9uIHRoZSBmaWxlcyBtZW50aW9uZWQgaW4gUEFU
SF9GSUxFUy4NCj4+DQo+PiBJdCBtaWdodCBiZSBiZXR0ZXIgdG8ganVzdCBoYXZlICItaW5j
bHVkZSAkKFhFTl9ST09UL2NvbmZpZy9QYXRocy5tayIgaW4NCj4+IENvbmZpZy5taywgbWF0
Y2hpbmcgdGhlIHNldHRpbmcgb2YgUEFUSF9GSUxFUyB0aGVyZS4NCj4gDQo+IExvb2tpbmcg
YXQgdGhpcyB0aGUgM3JkIG9yIDR0aCB0aW1lIG5vdywgSSBzdGlsbCBkb24ndCBxdWl0ZSBn
ZXQgd2h5IHRoZQ0KPiBpbmNsdWRlIGlzIG5lZWRlZCBpbiB0aGUgZmlyc3QgcGxhY2UuIFlv
dSBkb24ndCBtZWFuIHRvIHVzZSAocmlnaHQgaGVyZSkNCj4gYW55IG9mIHRoZSBzZXR0aW5n
cyB0aGUgZmlsZSBwcm9kdWNlcywgZG8geW91PyBSZWFsbHksIGFzIGFsc28gbWVudGlvbmVk
DQo+IGJ5IEFuZHJldywgeW91IHJlYWxseSBjYW4ndCwgYmVjYXVzZSBpbiBhIHB1cmUgaHlw
ZXJ2aXNvciBidWlsZCB0aGUgZmlsZQ0KPiB3b3VsZG4ndCBoYXZlIGJlZW4gbWFkZSwgYXMg
bm8gY29uZmlndXJlIHdvdWxkIGhhdmUgcnVuLg0KPiANCj4gSWYgSSdtIG5vdCBtaXN0YWtl
biwgeW91IHJlYWxseSBuZWVkIHRob3NlIHZhbHVlcyBvbmx5IGF0IHRoZSB0aW1lIHlvdQ0K
PiBleGVjdXRlIHRoZSBydWxlLiBBbmQgSSdtIHdvcnJpZWQgb2YgdGhlc2UgZGVmaW5pdGlv
bnMgdG8gY29sbGlkZSB3aXRoDQo+IHNvbWV0aGluZyBlbHNlLiBIZW5jZSBvbmUgZGVzaXJl
IHdvdWxkIGJlIHRvIGxpbWl0IHRoZSBzY29wZSBvZiB0aGVzZQ0KPiB2YXJpYWJsZXMgdG8g
anVzdCB0aGUgbmV3IHJ1bGUuIE1heWJlIHNvbWV0aGluZyBsaWtlDQo+IA0KPiAjIFJlcGxh
Y2UgQHh4eEAgbWFya2VycyBpbiAkKDEpLmluIHdpdGggJCh4eHgpIHZhcmlhYmxlIGNvbnRl
bnRzLCB3cml0ZSB0byAkKDEpDQo+IGRlZmluZSBhcHBseS1idWlsZC12YXJzDQo+ICQoMSk6
ICQkKHNoZWxsIGdyZXAgLWggOj0gJCQod2lsZGNhcmQgJCQoSU5DX0ZJTEVTKSkgL2Rldi9u
dWxsKQ0KPiAkKDEpOiAkKDEpLmluICQkKElOQ19GSUxFUykNCj4gCXNlZCAkJChmb3JlYWNo
IHYsICQkKEJVSUxEX01BS0VfVkFSUyksIC1lICdzI0AkJCh2KUAjJCQoJCQodikpI2cnKSA8
JCQ8ID4kJEANCj4gZW5kZWYNCj4gDQo+IGNvdWxkIHdvcms/IChUaGlzIGxpa2VseSBkZXBl
bmRzIG9uIElOQ19GSUxFUyB0byBvbmx5IGxpc3QgZmlsZXMgd2hpY2gNCj4gYXJlIGNvbmZp
Z3VyZSBnZW5lcmF0ZWQsIGkuZS4gd291bGRuJ3QgYmUgdXBkYXRlZCBieSBhIG1ha2UgcnVs
ZS4pDQoNCkFuZCB3aG8gaXMgc2V0dGluZyBCVUlMRF9NQUtFX1ZBUlM/IFlvdSBkaWRuJ3Qg
dGhpbmsgdGhlIHNuaXBwZXQgZG9pbmcgdGhhdA0Kc2hvdWxkIGJlIHRoZXJlLg0KDQpBbmQg
VEJIOiBhbnkgc2V0dGluZyBmcm9tIFBhdGhzLm1rIGNvbGxpZGluZyB3aXRoIHNvbWV0aGlu
ZyBlbHNlIHdvdWxkDQpfcmVhbGx5XyBiZSB3b3JyeWluZy4NCg0KDQpKdWVyZ2VuDQo=
--------------nAAYj5ZWyrUZO1qvVgNZt8XL
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-----

--------------nAAYj5ZWyrUZO1qvVgNZt8XL--

--------------h6FyQEcYkNdaApCR32iRpqQB--

--------------KfZZ9JXhHAtruW06WPwZqx4A
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/Ey8FAmkkcpIFAwAAAAAACgkQsN6d1ii/Ey/P
IQgAmYwCahGNGk700O6IbJK+jXQzsY2iSGHqiRdF7hOlpqeZLZDbZWQlhZHWR3apCJdLH0AK8NOP
RvtI7eHvkUlQTCZxEIgDunWYPb8U+6opjpOAYFEZzKk+LSpM8lo6fTBOuJhl8cksbOu++sTah7bO
VSrhU8s0/Wtbuh3ZBDcnZ1ga1Vpr7e2KLESfHpajmhOsZydgRhGs1wnNgsPT42H5q/PP4lx/kPuk
yfLgnDsEddBpcHO940FnGkZnUSw1eZYlcX0Ugp8rY08mPRL4pboerjwsifEi9soEdkSXgfy6qLJL
KyOzPa0yIorxK7VemSKtKmVgrNqg0s2HNZkviaUXog==
=bqS3
-----END PGP SIGNATURE-----

--------------KfZZ9JXhHAtruW06WPwZqx4A--


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 14:58:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 14:58:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171270.1496294 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNY1R-00061K-8H; Mon, 24 Nov 2025 14:58:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171270.1496294; Mon, 24 Nov 2025 14: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 1vNY1R-00061D-5g; Mon, 24 Nov 2025 14:58:33 +0000
Received: by outflank-mailman (input) for mailman id 1171270;
 Mon, 24 Nov 2025 14: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNY1Q-0005Ft-EB
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 14:58:32 +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 0ace8398-c946-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 15:58:31 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-477aa218f20so27481505e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 06:58: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-477bf1f3e63sm204729775e9.7.2025.11.24.06.58.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 06: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: 0ace8398-c946-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763996311; x=1764601111; 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=NVWCWuKBHOuxdQwDq5z2qVh5REhr67mpr+/W94rzC2U=;
        b=OQGpl0iupmUCqObtayK2fLki6vXTpA332dQbRfWeydu3dAhqVzkE2McfP0xkeL0tZR
         EIn+AI0pMGDyc/GW7xmNKw3PP9aR5uQJ4tuwnt8fwidEp+dTtgQ0muClRvBtrvmrxx6/
         RWVwSuhX87xQpgzbOVwVZWz1f4UvSoXCA4Xu7TATYEjrQLoTon5gLQwEuZvbSjLJMhix
         W880iPV33Q0pwbU6jEFJfq2gCAPTcBagEikTHtjPVyGJuW9CUN4VQqzQR3+dkxsG1HPa
         +fQ23WhEatuimuU1a4FYkLyVe60m+mNtAA3R+0p1LV10dTzGoAXA8NxdpV8aEMRc4qvN
         KaAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763996311; x=1764601111;
        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=NVWCWuKBHOuxdQwDq5z2qVh5REhr67mpr+/W94rzC2U=;
        b=FSlh0f4CcmFYoQtEfUY7Xt208Aez7aa+hOhgpvCCDl6zpWQmhjtbPA3OQX7o33NIWC
         gKCnCQNUFszTJDL8ptLCPXuXtIecldFy7lO9H+xisNZOzLzbFXpxBQ7E5sKKdCEfAXwR
         hRMpQjqxM2SNAIqmL5KRWiUd8jvXx+7ZmZX/1G2hQyFvuVmoDAAXAdikBEg+WiPNwY5O
         P8lRWvvYRms65BPIRrEcGzrQ+Z6yzXb2PQoUcNR7EvsHRwqzFf7Sp95+e3XaHaZf8eLp
         bNZyZzUsDvaBslw9TKNRlYUV8kw28V3EhtfJwN1jfH00R3sFb4sI5+ILTzxA1YT5hN+q
         HR+Q==
X-Gm-Message-State: AOJu0YwyBZaDPR/L0ZCb8ds/KUubuXtNMJNML4KF9dwe8kRtVdv+SWU8
	Xq1oWAPlQ0fwrhc2PoKuLpg/wt+PlwZYqtmh8NBgsh8aABdeTou6+qobxibrd/iMO1DJEwLxieV
	xrQc=
X-Gm-Gg: ASbGncuQT2WEGJIie1yC/4chdbUeFa0SWot2vT5T9UecK4d9OcIbl2b+TzU7zcJTGxV
	5z+Fz2o3/Ooh/5kpOG2GmPa85ESQC7EN6YQD/W4A0lD9W4Q63IcyUyya2Dc3mjFpijObYYywOF9
	2KXj7IK0RT1tMwt4BecB5mgJM8engIBlB8i16+OVB4hFGh0tkX1c0ROQScaInf08ETkmQM1sq99
	SQLYgKJIOOuD9wn2xndZ1AXu9YtDCTX/vruG5ARdNSuV3ZzgI+2cAHFTHsFkFJh9X/Ohjzg5IoH
	KKn87IcjehFdHi4Qhde13Bf37pnm7bNglpov/xnVF6kSVYNyd8SywEJy4xLDNuVhVYEaRvQH/rn
	e1vVgpAdCMKQAUqwOCDAsuAdSXEu7ZkF5hlwqEPX9pm84tGDaQKzGuVDvAx33z3U5Z/fK4JjQFG
	ofbYD/nMFZ8t0lBv7KCs9oSxN2EvxXu8kTc703iZyddgxd9gBItjYQM4QE+SojULZcbpEeG+tsJ
	7U=
X-Google-Smtp-Source: AGHT+IHDL9SwCpdGs0R9pWmHUuTmh5iL/nwRwbvSWTTZ1aymWI0Wms1bFAmJkqvUBxdyTKcLOup+eA==
X-Received: by 2002:a05:600c:1d1d:b0:477:7c7d:d9b7 with SMTP id 5b1f17b1804b1-477c01ec3f5mr109554725e9.33.1763996310781;
        Mon, 24 Nov 2025 06:58:30 -0800 (PST)
Message-ID: <f1a47000-437c-4727-a9b7-4dc9bcaf342b@suse.com>
Date: Mon, 24 Nov 2025 15:58:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v9 02/10] x86emul+VMX: support {RD,WR}MSRLIST
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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

These are "compound" instructions to issue a series of RDMSR / WRMSR
respectively. In the emulator we can therefore implement them by using
the existing msr_{read,write}() hooks. The memory accesses utilize that
the HVM ->read() / ->write() hooks are already linear-address
(x86_seg_none) aware (by way of hvmemul_virtual_to_linear() handling
this case).

Preemption is being checked for in WRMSRLIST handling only, as only MSR
writes are expected to possibly take long.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
RFC: In vmx_vmexit_handler() handling is forwarded to the emulator
     blindly. Alternatively we could consult the exit qualification and
     process just a single MSR at a time (without involving the
     emulator), exiting back to the guest after every iteration. (I
     don't think a mix of both models makes a lot of sense.)

The precise behavior of MSR_BARRIER is still not spelled out in ISE 050,
so the (minimal) implementation continues to be a guess for now.

Wouldn't calculate_hvm_max_policy() for MPX better behave the same way
as done here, at least from an abstract perspective (assuming that AMD
won't add such functionality now that Intel have deprecated it)?
---
v8: Re-base.
v6: Use MSR constants in test harness. Re-base.
v5: Add missing vmx_init_vmcs_config() and construct_vmcs() adjustments.
    Avoid unnecessary uses of r(). Re-base.
v3: Add dependency on LM. Limit exposure to HVM. Utilize new info from
    ISE 050. Re-base.
v2: Use X86_EXC_*. Add preemption checking to WRMSRLIST handling. Remove
    the feature from "max" when the VMX counterpart isn't available.

--- a/tools/tests/x86_emulator/predicates.c
+++ b/tools/tests/x86_emulator/predicates.c
@@ -342,6 +342,8 @@ static const struct {
     { { 0x01, 0xc4 }, { 2, 2 }, F, N }, /* vmxoff */
     { { 0x01, 0xc5 }, { 2, 2 }, F, N }, /* pconfig */
     { { 0x01, 0xc6 }, { 2, 2 }, F, N }, /* wrmsrns */
+    { { 0x01, 0xc6 }, { 0, 2 }, F, W, pfx_f2 }, /* rdmsrlist */
+    { { 0x01, 0xc6 }, { 0, 2 }, F, R, pfx_f3 }, /* wrmsrlist */
     { { 0x01, 0xc8 }, { 2, 2 }, F, N }, /* monitor */
     { { 0x01, 0xc9 }, { 2, 2 }, F, N }, /* mwait */
     { { 0x01, 0xca }, { 2, 2 }, F, N }, /* clac */
--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -625,7 +625,7 @@ static int write(
     if ( verbose )
         printf("** %s(%u, %p,, %u,)\n", __func__, seg, (void *)offset, bytes);
 
-    if ( !is_x86_user_segment(seg) )
+    if ( !is_x86_user_segment(seg) && seg != x86_seg_none )
         return X86EMUL_UNHANDLEABLE;
     memcpy((void *)offset, p_data, bytes);
     return X86EMUL_OKAY;
@@ -717,6 +717,10 @@ static int read_msr(
 {
     switch ( reg )
     {
+    case MSR_BARRIER:
+        *val = 0;
+        return X86EMUL_OKAY;
+
     case MSR_EFER:
         *val = ctxt->addr_size > 32 ? EFER_LME | EFER_LMA : 0;
         return X86EMUL_OKAY;
@@ -1434,9 +1438,53 @@ int main(int argc, char **argv)
          (gs_base != 0x0000111122224444UL) ||
          gs_base_shadow )
         goto fail;
+    printf("okay\n");
 
     cpu_policy.extd.nscb = i;
     emulops.write_segment = NULL;
+
+    printf("%-40s", "Testing rdmsrlist...");
+    instr[0] = 0xf2; instr[1] = 0x0f; instr[2] = 0x01; instr[3] = 0xc6;
+    regs.rip = (unsigned long)&instr[0];
+    regs.rsi = (unsigned long)(res + 0x80);
+    regs.rdi = (unsigned long)(res + 0x80 + 0x40 * 2);
+    regs.rcx = 0x0002000100008000UL;
+    gs_base_shadow = 0x0000222244446666UL;
+    memset(res + 0x80, ~0, 0x40 * 8 * 2);
+    res[0x80 + 0x0f * 2] = MSR_GS_BASE;
+    res[0x80 + 0x0f * 2 + 1] = 0;
+    res[0x80 + 0x20 * 2] = MSR_SHADOW_GS_BASE;
+    res[0x80 + 0x20 * 2 + 1] = 0;
+    res[0x80 + 0x31 * 2] = MSR_BARRIER;
+    res[0x80 + 0x31 * 2 + 1] = 0;
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_OKAY) ||
+         (regs.rip != (unsigned long)&instr[4]) ||
+         regs.rcx ||
+         (res[0x80 + (0x40 + 0x0f) * 2] != (unsigned int)gs_base) ||
+         (res[0x80 + (0x40 + 0x0f) * 2 + 1] != (gs_base >> (8 * sizeof(int)))) ||
+         (res[0x80 + (0x40 + 0x20) * 2] != (unsigned int)gs_base_shadow) ||
+         (res[0x80 + (0x40 + 0x20) * 2 + 1] != (gs_base_shadow >> (8 * sizeof(int)))) ||
+         res[0x80 + (0x40 + 0x31) * 2] || res[0x80 + (0x40 + 0x31) * 2 + 1] )
+        goto fail;
+    printf("okay\n");
+
+    printf("%-40s", "Testing wrmsrlist...");
+    instr[0] = 0xf3; instr[1] = 0x0f; instr[2] = 0x01; instr[3] = 0xc6;
+    regs.eip = (unsigned long)&instr[0];
+    regs.rsi -= 0x11 * 8;
+    regs.rdi -= 0x11 * 8;
+    regs.rcx = 0x0002000100000000UL;
+    res[0x80 + 0x0f * 2] = MSR_SHADOW_GS_BASE;
+    res[0x80 + 0x20 * 2] = MSR_GS_BASE;
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_OKAY) ||
+         (regs.rip != (unsigned long)&instr[4]) ||
+         regs.rcx ||
+         (gs_base != 0x0000222244446666UL) ||
+         (gs_base_shadow != 0x0000111122224444UL) )
+        goto fail;
+
     emulops.write_msr     = NULL;
 #endif
     printf("okay\n");
--- a/tools/tests/x86_emulator/x86-emulate.c
+++ b/tools/tests/x86_emulator/x86-emulate.c
@@ -87,6 +87,7 @@ bool emul_test_init(void)
     cpu_policy.feat.rdpid = true;
     cpu_policy.feat.lkgs = true;
     cpu_policy.feat.wrmsrns = true;
+    cpu_policy.feat.msrlist = true;
     cpu_policy.extd.clzero = true;
 
     if ( cpu_has_xsave )
--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -813,6 +813,9 @@ static void __init calculate_hvm_max_pol
             __clear_bit(X86_FEATURE_XSAVES, fs);
     }
 
+    if ( !cpu_has_vmx_msrlist )
+        __clear_bit(X86_FEATURE_MSRLIST, fs);
+
     /*
      * Xen doesn't use PKS, so the guest support for it has opted to not use
      * the VMCS load/save controls for efficiency reasons.  This depends on
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -361,8 +361,9 @@ static int vmx_init_vmcs_config(bool bsp
 
     if ( caps.cpu_based_exec_control & CPU_BASED_ACTIVATE_TERTIARY_CONTROLS )
     {
-        uint64_t opt = (TERTIARY_EXEC_VIRT_SPEC_CTRL |
-                        TERTIARY_EXEC_EPT_PAGING_WRITE);
+        uint64_t opt = TERTIARY_EXEC_EPT_PAGING_WRITE |
+                       TERTIARY_EXEC_ENABLE_MSRLIST |
+                       TERTIARY_EXEC_VIRT_SPEC_CTRL;
 
         caps.tertiary_exec_control = adjust_vmx_controls2(
             "Tertiary Exec Control", 0, opt,
@@ -1119,7 +1120,8 @@ static int construct_vmcs(struct vcpu *v
         v->arch.hvm.vmx.exec_control |= CPU_BASED_RDTSC_EXITING;
 
     v->arch.hvm.vmx.secondary_exec_control = vmx_caps.secondary_exec_control;
-    v->arch.hvm.vmx.tertiary_exec_control  = vmx_caps.tertiary_exec_control;
+    v->arch.hvm.vmx.tertiary_exec_control  = vmx_caps.tertiary_exec_control &
+                                             ~TERTIARY_EXEC_ENABLE_MSRLIST;
 
     /*
      * Disable features which we don't want active by default:
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -891,6 +891,20 @@ static void cf_check vmx_cpuid_policy_ch
     else
         vmx_set_msr_intercept(v, MSR_PKRS, VMX_MSR_RW);
 
+    if ( cp->feat.msrlist )
+    {
+        vmx_clear_msr_intercept(v, MSR_BARRIER, VMX_MSR_RW);
+        v->arch.hvm.vmx.tertiary_exec_control |= TERTIARY_EXEC_ENABLE_MSRLIST;
+        vmx_update_tertiary_exec_control(v);
+    }
+    else if ( v->arch.hvm.vmx.tertiary_exec_control &
+              TERTIARY_EXEC_ENABLE_MSRLIST )
+    {
+        vmx_set_msr_intercept(v, MSR_BARRIER, VMX_MSR_RW);
+        v->arch.hvm.vmx.tertiary_exec_control &= ~TERTIARY_EXEC_ENABLE_MSRLIST;
+        vmx_update_tertiary_exec_control(v);
+    }
+
  out:
     vmx_vmcs_exit(v);
 
@@ -3897,6 +3911,22 @@ gp_fault:
     return X86EMUL_EXCEPTION;
 }
 
+static bool cf_check is_msrlist(
+    const struct x86_emulate_state *state, const struct x86_emulate_ctxt *ctxt)
+{
+
+    if ( ctxt->opcode == X86EMUL_OPC(0x0f, 0x01) )
+    {
+        unsigned int rm, reg;
+        int mode = x86_insn_modrm(state, &rm, &reg);
+
+        /* This also includes WRMSRNS; should be okay. */
+        return mode == 3 && rm == 6 && !reg;
+    }
+
+    return false;
+}
+
 static void vmx_do_extint(struct cpu_user_regs *regs)
 {
     unsigned long vector;
@@ -4704,6 +4734,17 @@ void asmlinkage vmx_vmexit_handler(struc
         }
         break;
 
+    case EXIT_REASON_RDMSRLIST:
+    case EXIT_REASON_WRMSRLIST:
+        if ( vmx_guest_x86_mode(v) != 8 || !currd->arch.cpuid->feat.msrlist )
+        {
+            ASSERT_UNREACHABLE();
+            hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
+        }
+        else if ( !hvm_emulate_one_insn(is_msrlist, "MSR list") )
+            hvm_inject_hw_exception(X86_EXC_GP, 0);
+        break;
+
     case EXIT_REASON_VMXOFF:
     case EXIT_REASON_VMXON:
     case EXIT_REASON_VMCLEAR:
--- a/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
@@ -275,8 +275,13 @@ void vmx_vmcs_reload(struct vcpu *v);
 #define TERTIARY_EXEC_EPT_PAGING_WRITE          BIT(2, UL)
 #define TERTIARY_EXEC_GUEST_PAGING_VERIFY       BIT(3, UL)
 #define TERTIARY_EXEC_IPI_VIRT                  BIT(4, UL)
+#define TERTIARY_EXEC_ENABLE_MSRLIST            BIT(6, UL)
 #define TERTIARY_EXEC_VIRT_SPEC_CTRL            BIT(7, UL)
 
+#define cpu_has_vmx_msrlist \
+    (IS_ENABLED(CONFIG_INTEL_VMX) && \
+     (vmx_caps.tertiary_exec_control & TERTIARY_EXEC_ENABLE_MSRLIST))
+
 #define cpu_has_vmx_virt_spec_ctrl \
      (vmx_caps.tertiary_exec_control & TERTIARY_EXEC_VIRT_SPEC_CTRL)
 
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -201,6 +201,8 @@ static inline void pi_clear_sn(struct pi
 #define EXIT_REASON_XRSTORS             64
 #define EXIT_REASON_BUS_LOCK            74
 #define EXIT_REASON_NOTIFY              75
+#define EXIT_REASON_RDMSRLIST           78
+#define EXIT_REASON_WRMSRLIST           79
 /* Remember to also update VMX_PERF_EXIT_REASON_SIZE! */
 
 /*
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -24,6 +24,8 @@
 #define  APIC_BASE_ENABLE                   (_AC(1, ULL) << 11)
 #define  APIC_BASE_ADDR_MASK                _AC(0x000ffffffffff000, ULL)
 
+#define MSR_BARRIER                         0x0000002f
+
 #define MSR_TEST_CTRL                       0x00000033
 #define  TEST_CTRL_SPLITLOCK_DETECT         (_AC(1, ULL) << 29)
 #define  TEST_CTRL_SPLITLOCK_DISABLE        (_AC(1, ULL) << 31)
--- a/xen/arch/x86/include/asm/perfc_defn.h
+++ b/xen/arch/x86/include/asm/perfc_defn.h
@@ -6,7 +6,7 @@ PERFCOUNTER_ARRAY(exceptions,
 
 #ifdef CONFIG_HVM
 
-#define VMX_PERF_EXIT_REASON_SIZE 76
+#define VMX_PERF_EXIT_REASON_SIZE 80
 #define VMEXIT_NPF_PERFC 143
 #define SVM_PERF_EXIT_REASON_SIZE (VMEXIT_NPF_PERFC + 1)
 PERFCOUNTER_ARRAY(vmexits,              "vmexits",
--- a/xen/arch/x86/msr.c
+++ b/xen/arch/x86/msr.c
@@ -148,6 +148,12 @@ int guest_rdmsr(struct vcpu *v, uint32_t
     case MSR_AMD_PPIN:
         goto gp_fault;
 
+    case MSR_BARRIER:
+        if ( !cp->feat.msrlist )
+            goto gp_fault;
+        *val = 0;
+        break;
+
     case MSR_IA32_FEATURE_CONTROL:
         /*
          * Architecturally, availability of this MSR is enumerated by the
@@ -429,6 +435,7 @@ int guest_wrmsr(struct vcpu *v, uint32_t
         uint64_t rsvd;
 
         /* Read-only */
+    case MSR_BARRIER:
     case MSR_IA32_PLATFORM_ID:
     case MSR_CORE_CAPABILITIES:
     case MSR_INTEL_CORE_THREAD_COUNT:
--- a/xen/arch/x86/x86_emulate/0f01.c
+++ b/xen/arch/x86/x86_emulate/0f01.c
@@ -11,6 +11,7 @@
 #include "private.h"
 
 #ifdef __XEN__
+#include <xen/event.h>
 #include <asm/prot-key.h>
 #endif
 
@@ -28,6 +29,7 @@ int x86emul_0f01(struct x86_emulate_stat
     switch ( s->modrm )
     {
         unsigned long base, limit, cr0, cr0w, cr4;
+        unsigned int n;
         struct segment_register sreg;
         uint64_t msr_val;
 
@@ -42,6 +44,64 @@ int x86emul_0f01(struct x86_emulate_stat
                                 ((uint64_t)regs->r(dx) << 32) | regs->eax,
                                 ctxt);
             goto done;
+
+        case vex_f3: /* wrmsrlist */
+            vcpu_must_have(msrlist);
+            generate_exception_if(!mode_64bit(), X86_EXC_UD);
+            generate_exception_if(!mode_ring0() || (regs->esi & 7) ||
+                                  (regs->edi & 7),
+                                  X86_EXC_GP, 0);
+            fail_if(!ops->write_msr);
+            while ( regs->r(cx) )
+            {
+                n = __builtin_ffsl(regs->r(cx)) - 1;
+                if ( (rc = ops->read(x86_seg_none, regs->r(si) + n * 8,
+                                     &msr_val, 8, ctxt)) != X86EMUL_OKAY )
+                    break;
+                generate_exception_if(msr_val != (uint32_t)msr_val,
+                                      X86_EXC_GP, 0);
+                base = msr_val;
+                if ( (rc = ops->read(x86_seg_none, regs->r(di) + n * 8,
+                                     &msr_val, 8, ctxt)) != X86EMUL_OKAY ||
+                     (rc = ops->write_msr(base, msr_val, ctxt)) != X86EMUL_OKAY )
+                    break;
+                regs->r(cx) &= ~(1UL << n);
+
+#ifdef __XEN__
+                if ( regs->r(cx) && local_events_need_delivery() )
+                {
+                    rc = X86EMUL_RETRY;
+                    break;
+                }
+#endif
+            }
+            goto done;
+
+        case vex_f2: /* rdmsrlist */
+            vcpu_must_have(msrlist);
+            generate_exception_if(!mode_64bit(), X86_EXC_UD);
+            generate_exception_if(!mode_ring0() || (regs->esi & 7) ||
+                                  (regs->edi & 7),
+                                  X86_EXC_GP, 0);
+            fail_if(!ops->read_msr || !ops->write);
+            while ( regs->r(cx) )
+            {
+                n = __builtin_ffsl(regs->r(cx)) - 1;
+                if ( (rc = ops->read(x86_seg_none, regs->r(si) + n * 8,
+                                     &msr_val, 8, ctxt)) != X86EMUL_OKAY )
+                    break;
+                generate_exception_if(msr_val != (uint32_t)msr_val,
+                                      X86_EXC_GP, 0);
+                if ( (rc = ops->read_msr(msr_val, &msr_val,
+                                         ctxt)) != X86EMUL_OKAY ||
+                     (rc = ops->write(x86_seg_none, regs->r(di) + n * 8,
+                                      &msr_val, 8, ctxt)) != X86EMUL_OKAY )
+                    break;
+                regs->r(cx) &= ~(1UL << n);
+            }
+            if ( rc != X86EMUL_OKAY )
+                ctxt->regs->r(cx) = regs->r(cx);
+            goto done;
         }
         generate_exception(X86_EXC_UD);
 
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -611,6 +611,7 @@ amd_like(const struct x86_emulate_ctxt *
 #define vcpu_has_lkgs()        (ctxt->cpuid->feat.lkgs)
 #define vcpu_has_wrmsrns()     (ctxt->cpuid->feat.wrmsrns)
 #define vcpu_has_avx_ifma()    (ctxt->cpuid->feat.avx_ifma)
+#define vcpu_has_msrlist()     (ctxt->cpuid->feat.msrlist)
 #define vcpu_has_avx_vnni_int8() (ctxt->cpuid->feat.avx_vnni_int8)
 #define vcpu_has_avx_ne_convert() (ctxt->cpuid->feat.avx_ne_convert)
 #define vcpu_has_avx_vnni_int16() (ctxt->cpuid->feat.avx_vnni_int16)
--- a/xen/arch/x86/x86_emulate/util.c
+++ b/xen/arch/x86/x86_emulate/util.c
@@ -100,6 +100,9 @@ bool cf_check x86_insn_is_mem_access(con
         break;
 
     case X86EMUL_OPC(0x0f, 0x01):
+        /* {RD,WR}MSRLIST */
+        if ( mode_64bit() && s->modrm == 0xc6 )
+            return s->vex.pfx >= vex_f3;
         /* Cover CLZERO. */
         return (s->modrm_rm & 7) == 4 && (s->modrm_reg & 7) == 7;
     }
@@ -160,7 +163,11 @@ bool cf_check x86_insn_is_mem_write(cons
         case 0xff: /* Grp5 */
             break;
 
-        case X86EMUL_OPC(0x0f, 0x01): /* CLZERO is the odd one. */
+        case X86EMUL_OPC(0x0f, 0x01):
+            /* RDMSRLIST */
+            if ( mode_64bit() && s->modrm == 0xc6 )
+                return s->vex.pfx == vex_f2;
+            /* CLZERO is another odd one. */
             return (s->modrm_rm & 7) == 4 && (s->modrm_reg & 7) == 7;
 
         default:
--- a/xen/tools/gen-cpuid.py
+++ b/xen/tools/gen-cpuid.py
@@ -283,7 +283,7 @@ def crunch_numbers(state):
         # NO_LMSL indicates the absense of Long Mode Segment Limits, which
         # have been dropped in hardware.
         LM: [CX16, PCID, LAHF_LM, PAGE1GB, PKU, NO_LMSL, AMX_TILE, CMPCCXADD,
-             LKGS],
+             LKGS, MSRLIST],
 
         # AMD K6-2+ and K6-III processors shipped with 3DNow+, beyond the
         # standard 3DNow in the earlier K6 processors.



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 14:58:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 14:58:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171278.1496305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNY1l-0006b8-Lu; Mon, 24 Nov 2025 14:58:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171278.1496305; Mon, 24 Nov 2025 14: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 1vNY1l-0006az-IV; Mon, 24 Nov 2025 14:58:53 +0000
Received: by outflank-mailman (input) for mailman id 1171278;
 Mon, 24 Nov 2025 14: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNY1k-0005Ft-FJ
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 14:58:52 +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 166952a1-c946-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 15:58:51 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-477b198f4bcso28689175e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 06:58: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-42cb7fb919bsm28721270f8f.34.2025.11.24.06.58.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 06:58: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: 166952a1-c946-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763996330; x=1764601130; 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=H0yGm3ICRBuQ4FzZ4qXdlDF4ttpl1xY2AJgXcxAR3/o=;
        b=b5qMeBQvPRJd+usv/CXG4RRuOSjRr3GUWE6DHSgsU++4yHmpvsukBGp2P7+jG/X8D0
         g4NLagCc2k/vN9iVhHnpCqXeMgQX/6t3JNslh4S747KbD4t9AR64XrH4FJ31AbA2MI1n
         pdTD4JUSqoLpPYQp4h0HeiQv9bByT3ECtg5ym/ayXxELMdyP04rgT2FKrXy67pPDkYrq
         pWyiXnbMBok4kkT3dq+wQun9PUYPufx8b5MXCFU45afPjREvH62YHxMR6nT16ZsGEzPt
         7uVmpRmzIcGYKsRihXiA4PeNuPJCOQY3tDx65in9ZCFMaeAy2KPE6fnvgU+RkOtWGBk5
         wbuA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763996330; x=1764601130;
        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=H0yGm3ICRBuQ4FzZ4qXdlDF4ttpl1xY2AJgXcxAR3/o=;
        b=Ut3zqhO9UWJuWqJoQLjwGmaP3cknyQdXyRWVV1HhWEO7Th0V8AhJmxfffdXPKEbI3B
         N2eEYGh4Y7aSA7FKZHc2LmfFn7rwp2KzHEF5k/Tz+xyKwCbP7Shs5NmjbqpCyQ3+V9h+
         tx7QeYZL9QRbJ6XYsQmFUuwvQN58eBuPNjt2HYVZ8oHN12ZtwscpdrBeAsnIkYwFZhy0
         k678DG9JZVULo2rFS9aN1rb+9GMcTA3SzmZbge/HsCaGntsGhxB7X5KLtWhppTbbIFMN
         R1AadoZc+wThAOR/lkFX0ECJkKWgkfV9vp39hgF7tg2CLCwRaICUZA4MGXW+rB8T7xJr
         GZ5Q==
X-Gm-Message-State: AOJu0YxIxEmaBv0RQNrq81Y4pp+AOn4yGSGjWmSyBplmEzFxfhavNekQ
	o3odcuazJj/FlaR0+5foSIW+Cw6fd3aGzpbtcbpdBlfemDxYwx4aZnlM5mSggvVAmx8LHd5laNj
	kal8=
X-Gm-Gg: ASbGncshHX+3MMamSMVlDShvjUkp0hVL1n/9tJ5U5gzWaiNMCqUFpbc6zMfHkaHwcB3
	Sne8JghEZcPQqSkY8JmNvcmJovusUBKCapF4H9I46PnHkQP7/QongvqaivixQ0ZyD2EQJmH2dln
	TlQA3XHBBHufLnG7O7pOStwUpXoKgMPVVnbUOXHODUCepJKRsua6oPzR8IR5H81WIUVwTZqG5NQ
	dIcTLecle/zrUACw33AesHMl3+gQzUGDmJXQMPsIHThPXB8eog2oxsVmMtd7tvX84b7cGJh1mdA
	v9B3Ak1CmEZOzQR6Ix80hCTz5eTmnqA4MisfLBydQTdcid5MPsKG+k6THk/6JisWJ8BHfDoK86u
	MZ7CvGA96OENPKx5dCniFHaXfpyf4KmVRinTmpArRaIt6wALPCDQcPibTWFnsrua9DMgmtVZpq3
	FJTLo1jX/7xVV/9na0sBMVRVkcRJy73fQkP1kjwUvwcLqZWpiXFuEGMcnDaMKeHfURV6aNx5IdM
	Aw=
X-Google-Smtp-Source: AGHT+IHkYk4mKpllh/U4D4FMvaWeNcyNbu1tbRbqudLRV0HX+kNJXPVFzE44FlK5uXK+TRtGWhVHXQ==
X-Received: by 2002:a05:600c:1994:b0:477:7af8:c88b with SMTP id 5b1f17b1804b1-477c01740e1mr117075685e9.11.1763996330306;
        Mon, 24 Nov 2025 06:58:50 -0800 (PST)
Message-ID: <99331765-f57e-416c-8da3-7fd8efc15dae@suse.com>
Date: Mon, 24 Nov 2025 15:58:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v9 03/10] x86emul: support USER_MSR instructions
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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

While UWRMSR probably isn't of much use as long as we don't support
UINTR, URDMSR may well be useful to guests even without that (depending
on what OSes are willing to permit access to).

Since the two VEX encodings introduce a lonely opcode point in map 7,
for now don't bother introducing a full 256-entry table.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
The retaining of (possible) #PF from the bitmap access is "speculative"
(the spec doesn't mention #PF as a possible exception; conceivably this
might also need converting to #GP).

I'm a little wary of the "MSRs Writeable by UWRMSR" table that the spec
has, and that our code thus also enforces: As new MSRs are added to that
table, we'll need piecemeal updates to that switch() statement.

The forced setting of cpu_policy.feat.utmr could likely be done
globally, i.e. early in main(). Limiting its scope is merely "just in
case". Thoughts?
---
v8: Switch to using fallthrough pseudo-keyword. Re-base.
v7.1: Add MSR-specific feature checks for UWRMSR (incl the UTMR feature
      bit and its overriding in the test harness).
v7: Add missing vcpu_must_have() and override in emul_test_init(). Use
    MSR constants even more.
v6: Add MSR_UINTR_TIMER to header. Use MSR constants in test harness.
    Re-base.
v5: Correct ModR/M.reg check for VEX-encoded forms. Cosmetic test
    harness adjustment. Re-base.
v4: MSR index input regs are 64-bit (albeit only the APX spec has it
    this way for now).
v3: New.

--- a/tools/tests/x86_emulator/predicates.c
+++ b/tools/tests/x86_emulator/predicates.c
@@ -864,7 +864,9 @@ static const struct {
     { { 0xf6 }, { 2, 2 }, T, R, pfx_66 }, /* adcx */
     { { 0xf6 }, { 2, 2 }, T, R, pfx_f3 }, /* adox */
     { { 0xf8 }, { 2, 2 }, F, W, pfx_66 }, /* movdir64b */
+    { { 0xf8, 0xc0 }, { 0, 2 }, F, N, pfx_f3 }, /* uwrmsr */
     { { 0xf8 }, { 2, 2 }, F, W, pfx_f3 }, /* enqcmds */
+    { { 0xf8, 0xc0 }, { 0, 2 }, F, N, pfx_f2 }, /* urdmsr */
     { { 0xf8 }, { 2, 2 }, F, W, pfx_f2 }, /* enqcmd */
     { { 0xf9 }, { 2, 2 }, F, W }, /* movdiri */
 };
@@ -1516,6 +1518,9 @@ static const struct vex {
     { { 0xde }, 3, T, R, pfx_66, W0, L0 }, /* vsm3rnds2 */
     { { 0xdf }, 3, T, R, pfx_66, WIG, Ln }, /* vaeskeygenassist */
     { { 0xf0 }, 3, T, R, pfx_f2, Wn, L0 }, /* rorx */
+}, vex_map7[] = {
+    { { 0xf8, 0xc0 }, 6, F, N, pfx_f3, W0, L0 }, /* uwrmsr */
+    { { 0xf8, 0xc0 }, 6, F, N, pfx_f2, W0, L0 }, /* urdmsr */
 };
 
 static const struct {
@@ -1525,6 +1530,10 @@ static const struct {
     { vex_0f,   ARRAY_SIZE(vex_0f) },
     { vex_0f38, ARRAY_SIZE(vex_0f38) },
     { vex_0f3a, ARRAY_SIZE(vex_0f3a) },
+    { NULL,     0 }, /* map 4 */
+    { NULL,     0 }, /* map 5 */
+    { NULL,     0 }, /* map 6 */
+    { vex_map7, ARRAY_SIZE(vex_map7) },
 };
 
 static const struct xop {
@@ -2420,7 +2429,8 @@ void predicates_test(void *instr, struct
 
                 if ( vex[x].tbl[t].w == WIG || (vex[x].tbl[t].w & W0) )
                 {
-                    memcpy(ptr, vex[x].tbl[t].opc, vex[x].tbl[t].len);
+                    memcpy(ptr, vex[x].tbl[t].opc,
+                           MIN(vex[x].tbl[t].len, ARRAY_SIZE(vex->tbl->opc)));
 
                     if ( vex[x].tbl[t].l == LIG || (vex[x].tbl[t].l & L0) )
                         do_test(instr, vex[x].tbl[t].len + ((void *)ptr - instr),
@@ -2430,7 +2440,8 @@ void predicates_test(void *instr, struct
                     if ( vex[x].tbl[t].l == LIG || (vex[x].tbl[t].l & L1) )
                     {
                         ptr[-1] |= 4;
-                        memcpy(ptr, vex[x].tbl[t].opc, vex[x].tbl[t].len);
+                        memcpy(ptr, vex[x].tbl[t].opc,
+                               MIN(vex[x].tbl[t].len, ARRAY_SIZE(vex->tbl->opc)));
 
                         do_test(instr, vex[x].tbl[t].len + ((void *)ptr - instr),
                                 vex[x].tbl[t].modrm ? (void *)ptr - instr + 1 : 0,
@@ -2441,7 +2452,8 @@ void predicates_test(void *instr, struct
                 if ( vex[x].tbl[t].w == WIG || (vex[x].tbl[t].w & W1) )
                 {
                     ptr[-1] = 0xf8 | vex[x].tbl[t].pfx;
-                    memcpy(ptr, vex[x].tbl[t].opc, vex[x].tbl[t].len);
+                    memcpy(ptr, vex[x].tbl[t].opc,
+                           MIN(vex[x].tbl[t].len, ARRAY_SIZE(vex->tbl->opc)));
 
                     if ( vex[x].tbl[t].l == LIG || (vex[x].tbl[t].l & L0) )
                         do_test(instr, vex[x].tbl[t].len + ((void *)ptr - instr),
@@ -2451,7 +2463,8 @@ void predicates_test(void *instr, struct
                     if ( vex[x].tbl[t].l == LIG || (vex[x].tbl[t].l & L1) )
                     {
                         ptr[-1] |= 4;
-                        memcpy(ptr, vex[x].tbl[t].opc, vex[x].tbl[t].len);
+                        memcpy(ptr, vex[x].tbl[t].opc,
+                               MIN(vex[x].tbl[t].len, ARRAY_SIZE(vex->tbl->opc)));
 
                         do_test(instr, vex[x].tbl[t].len + ((void *)ptr - instr),
                                 vex[x].tbl[t].modrm ? (void *)ptr - instr + 1 : 0,
--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -674,6 +674,7 @@ static int blk(
 
 #ifdef __x86_64__
 static unsigned long gs_base, gs_base_shadow;
+static unsigned long uintr_timer;
 #endif
 
 static int read_segment(
@@ -708,6 +709,15 @@ static int write_segment(
 
     return X86EMUL_OKAY;
 }
+
+static const uint8_t __attribute__((aligned(0x1000))) umsr_bitmap[0x1000] = {
+#define RD(msr) [(msr) >> 3] = 1 << ((msr) & 7)
+#define WR(msr) [0x800 + ((msr) >> 3)] = 1 << ((msr) & 7)
+    RD(MSR_IA32_APERF),
+    WR(MSR_UINTR_TIMER),
+#undef WR
+#undef RD
+};
 #endif
 
 static int read_msr(
@@ -717,10 +727,22 @@ static int read_msr(
 {
     switch ( reg )
     {
+#ifdef __x86_64__
+    case MSR_USER_MSR_CTL:
+        *val = (unsigned long)umsr_bitmap | 1;
+        return X86EMUL_OKAY;
+#endif
+
     case MSR_BARRIER:
         *val = 0;
         return X86EMUL_OKAY;
 
+    case MSR_IA32_APERF:
+#define APERF_LO_VALUE 0xAEAEAEAE
+#define APERF_HI_VALUE 0xEAEAEAEA
+        *val = ((uint64_t)APERF_HI_VALUE << 32) | APERF_LO_VALUE;
+        return X86EMUL_OKAY;
+
     case MSR_EFER:
         *val = ctxt->addr_size > 32 ? EFER_LME | EFER_LMA : 0;
         return X86EMUL_OKAY;
@@ -756,6 +778,12 @@ static int write_msr(
 {
     switch ( reg )
     {
+    case MSR_UINTR_TIMER:
+        if ( ctxt->addr_size < 64 )
+            break;
+        uintr_timer = val;
+        return X86EMUL_OKAY;
+
     case MSR_GS_BASE:
         if ( ctxt->addr_size < 64 || !is_canonical_address(val) )
             break;
@@ -1484,6 +1512,68 @@ int main(int argc, char **argv)
          (gs_base != 0x0000222244446666UL) ||
          (gs_base_shadow != 0x0000111122224444UL) )
         goto fail;
+    printf("okay\n");
+
+    printf("%-40s", "Testing urdmsr %rdx,%rcx...");
+    instr[0] = 0xf2; instr[1] = 0x0f; instr[2] = 0x38; instr[3] = 0xf8; instr[4] = 0xd1;
+    regs.rip = (unsigned long)&instr[0];
+    regs.rdx = MSR_IA32_APERF;
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_OKAY) ||
+         (regs.rip != (unsigned long)&instr[5]) ||
+         (regs.rcx != (((uint64_t)APERF_HI_VALUE << 32) | APERF_LO_VALUE)) )
+        goto fail;
+    printf("okay\n");
+
+    printf("%-40s", "Testing urdmsr $MSR_IA32_APERF,%rdx...");
+    instr[0] = 0xc4; instr[1] = 0xe7; instr[2] = 0x7b; instr[3] = 0xf8; instr[4] = 0xc2;
+    *(uint32_t *)&instr[5] = MSR_IA32_APERF;
+    regs.rip = (unsigned long)&instr[0];
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_OKAY) ||
+         (regs.rip != (unsigned long)&instr[9]) ||
+         (regs.rdx != (((uint64_t)APERF_HI_VALUE << 32) | APERF_LO_VALUE)) )
+        goto fail;
+    printf("okay\n");
+
+    /* Our write_msr() knows of MSR_UINTR_TIMER. */
+    i = cpu_policy.feat.utmr;
+    cpu_policy.feat.utmr = true;
+
+    printf("%-40s", "Testing uwrmsr %rdi,%rsi...");
+    instr[0] = 0xf3; instr[1] = 0x0f; instr[2] = 0x38; instr[3] = 0xf8; instr[4] = 0xf7;
+    regs.rip = (unsigned long)&instr[0];
+    regs.rsi = MSR_UINTR_TIMER;
+    regs.rdi = 0x0011223344556677UL;
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_OKAY) ||
+         (regs.rip != (unsigned long)&instr[5]) ||
+         (uintr_timer != 0x0011223344556677UL) )
+        goto fail;
+    printf("okay\n");
+
+    printf("%-40s", "Testing uwrmsr %rsi,$MSR_UINTR_TIMER...");
+    instr[0] = 0xc4; instr[1] = 0xe7; instr[2] = 0x7a; instr[3] = 0xf8; instr[4] = 0xc6;
+    *(uint32_t *)&instr[5] = MSR_UINTR_TIMER;
+    regs.rip = (unsigned long)&instr[0];
+    regs.rsi = 0x8877665544332211UL;
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_OKAY) ||
+         (regs.rip != (unsigned long)&instr[9]) ||
+         (uintr_timer != 0x8877665544332211UL) )
+        goto fail;
+    printf("okay\n");
+
+    cpu_policy.feat.utmr = i;
+
+    printf("%-40s", "Testing uwrmsr %rsi,$MSR_UARCH_MISC_CTRL...");
+    *(uint32_t *)&instr[5] = MSR_UARCH_MISC_CTRL;
+    regs.rip = (unsigned long)&instr[0];
+    regs.rsi = 0;
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_EXCEPTION) ||
+         (regs.rip != (unsigned long)&instr[0]) )
+        goto fail;
 
     emulops.write_msr     = NULL;
 #endif
--- a/tools/tests/x86_emulator/x86-emulate.c
+++ b/tools/tests/x86_emulator/x86-emulate.c
@@ -88,6 +88,7 @@ bool emul_test_init(void)
     cpu_policy.feat.lkgs = true;
     cpu_policy.feat.wrmsrns = true;
     cpu_policy.feat.msrlist = true;
+    cpu_policy.feat.user_msr = true;
     cpu_policy.extd.clzero = true;
 
     if ( cpu_has_xsave )
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -24,6 +24,10 @@
 #define  APIC_BASE_ENABLE                   (_AC(1, ULL) << 11)
 #define  APIC_BASE_ADDR_MASK                _AC(0x000ffffffffff000, ULL)
 
+#define MSR_USER_MSR_CTL                    0x0000001c
+#define  USER_MSR_ENABLE                    (_AC(1, ULL) <<  0)
+#define  USER_MSR_ADDR_MASK                 0xfffffffffffff000ULL
+
 #define MSR_BARRIER                         0x0000002f
 
 #define MSR_TEST_CTRL                       0x00000033
@@ -206,6 +210,8 @@
 #define  MCU_CONTROL_DIS_MCU_LOAD           (_AC(1, ULL) <<  1)
 #define  MCU_CONTROL_EN_SMM_BYPASS          (_AC(1, ULL) <<  2)
 
+#define MSR_UINTR_TIMER                     0x00001b00
+
 #define MSR_UARCH_MISC_CTRL                 0x00001b01
 #define  UARCH_CTRL_DOITM                   (_AC(1, ULL) <<  0)
 
--- a/xen/arch/x86/x86_emulate/decode.c
+++ b/xen/arch/x86/x86_emulate/decode.c
@@ -903,7 +903,7 @@ decode_0f38(struct x86_emulate_state *s,
     {
     case 0x00 ... 0xef:
     case 0xf2 ... 0xf5:
-    case 0xf7 ... 0xf8:
+    case 0xf7:
     case 0xfa ... 0xff:
         s->op_bytes = 0;
         /* fall through */
@@ -948,6 +948,18 @@ decode_0f38(struct x86_emulate_state *s,
     case X86EMUL_OPC_VEX_F2(0, 0xf7): /* shrx */
         break;
 
+    case 0xf8:
+        if ( s->modrm_mod == 3 ) /* u{rd,wr}msr */
+        {
+            s->desc = DstMem | SrcReg | Mov;
+            s->op_bytes = 8;
+            s->simd_size = simd_none;
+        }
+        else /* movdir64b / enqcmd{,s} */
+            s->op_bytes = 0;
+        ctxt->opcode |= MASK_INSR(s->vex.pfx, X86EMUL_OPC_PFX_MASK);
+        break;
+
     default:
         s->op_bytes = 0;
         break;
@@ -1246,6 +1258,16 @@ int x86emul_decode(struct x86_emulate_st
                          */
                         d = twobyte_table[0x38].desc;
                         break;
+
+                    case vex_map7:
+                        opcode |= MASK_INSR(7, X86EMUL_OPC_EXT_MASK);
+                        /*
+                         * No table lookup here for now, as there's only a single
+                         * opcode point (0xf8) populated in map 7.
+                         */
+                        d = DstMem | SrcImm | ModRM | Mov;
+                        s->op_bytes = 8;
+                        break;
                     }
                 }
                 else if ( s->ext < ext_8f08 + ARRAY_SIZE(xop_table) )
@@ -1602,6 +1624,7 @@ int x86emul_decode(struct x86_emulate_st
             s->simd_size = ext8f09_table[b].simd_size;
             break;
 
+        case ext_map7:
         case ext_8f08:
         case ext_8f0a:
             /*
@@ -1816,6 +1839,7 @@ int x86emul_decode(struct x86_emulate_st
 
     case ext_map5:
     case ext_map6:
+    case ext_map7:
     case ext_8f09:
     case ext_8f0a:
         break;
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -203,6 +203,7 @@ enum vex_opcx {
     vex_0f3a,
     evex_map5 = 5,
     evex_map6,
+    vex_map7,
 };
 
 enum vex_pfx {
@@ -259,6 +260,7 @@ struct x86_emulate_state {
         ext_0f3a = vex_0f3a,
         ext_map5 = evex_map5,
         ext_map6 = evex_map6,
+        ext_map7 = vex_map7,
         /*
          * For XOP use values such that the respective instruction field
          * can be used without adjustment.
@@ -615,6 +617,7 @@ amd_like(const struct x86_emulate_ctxt *
 #define vcpu_has_avx_vnni_int8() (ctxt->cpuid->feat.avx_vnni_int8)
 #define vcpu_has_avx_ne_convert() (ctxt->cpuid->feat.avx_ne_convert)
 #define vcpu_has_avx_vnni_int16() (ctxt->cpuid->feat.avx_vnni_int16)
+#define vcpu_has_user_msr()    (ctxt->cpuid->feat.user_msr)
 
 #define vcpu_must_have(feat) \
     generate_exception_if(!vcpu_has_##feat(), X86_EXC_UD)
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -7024,10 +7024,73 @@ x86_emulate(
         state->simd_size = simd_none;
         break;
 
-    case X86EMUL_OPC_F2(0x0f38, 0xf8): /* enqcmd r,m512 */
-    case X86EMUL_OPC_F3(0x0f38, 0xf8): /* enqcmds r,m512 */
+    case X86EMUL_OPC_F3(0x0f38, 0xf8): /* enqcmds r,m512 / uwrmsr r64,r32 */
+    case X86EMUL_OPC_F2(0x0f38, 0xf8): /* enqcmd r,m512 / urdmsr r32,r64 */
+        if ( ea.type == OP_MEM )
+            goto enqcmd;
+        imm1 = src.val;
+        fallthrough;
+    case X86EMUL_OPC_VEX_F3(7, 0xf8): /* uwrmsr r64,imm32 */
+    case X86EMUL_OPC_VEX_F2(7, 0xf8): /* urdmsr imm32,r64 */
+        generate_exception_if(!mode_64bit() || ea.type != OP_REG, X86_EXC_UD);
+        generate_exception_if(vex.l || vex.w, X86_EXC_UD);
+        generate_exception_if(vex.opcx && ((modrm_reg & 7) || vex.reg != 0xf),
+                              X86_EXC_UD);
+        vcpu_must_have(user_msr);
+        fail_if(!ops->read_msr);
+        if ( ops->read_msr(MSR_USER_MSR_CTL, &msr_val, ctxt) != X86EMUL_OKAY )
+        {
+            x86_emul_reset_event(ctxt);
+            msr_val = 0;
+        }
+        generate_exception_if(!(msr_val & USER_MSR_ENABLE), X86_EXC_UD);
+        generate_exception_if(imm1 & ~0x3fff, X86_EXC_GP, 0);
+
+        /* Check the corresponding bitmap. */
+        ea.mem.off = msr_val & ~0xfff;
+        if ( vex.pfx != vex_f2 )
+            ea.mem.off += 0x800;
+        ea.mem.off += imm1 >> 3;
+        if ( (rc = ops->read(x86_seg_sys, ea.mem.off, &b, 1,
+                             ctxt)) != X86EMUL_OKAY )
+            goto done;
+        generate_exception_if(!(b & (1 << (imm1 & 7))), X86_EXC_GP, 0);
+
+        /* Carry out the actual MSR access. */
+        if ( vex.pfx == vex_f2 )
+        {
+            /* urdmsr */
+            if ( (rc = ops->read_msr(imm1, &msr_val, ctxt)) != X86EMUL_OKAY )
+                goto done;
+            dst.val = msr_val;
+            ASSERT(dst.type == OP_REG);
+            dst.bytes = 8;
+        }
+        else
+        {
+            /* uwrmsr */
+            switch ( imm1 )
+            {
+            case 0x1b00: /* UINTR_TIMER */
+                generate_exception_if(!cp->feat.utmr, X86_EXC_GP, 0);
+                break;
+
+            case 0x1b01: /* UARCH_MISC_CTL */
+                generate_exception_if(!cp->arch_caps.doitm, X86_EXC_GP, 0);
+                break;
+
+            default:
+                generate_exception(X86_EXC_GP, 0);
+            }
+            fail_if(!ops->write_msr);
+            if ( (rc = ops->write_msr(imm1, dst.val, ctxt)) != X86EMUL_OKAY )
+                goto done;
+            dst.type = OP_NONE;
+        }
+        break;
+
+    enqcmd:
         host_and_vcpu_must_have(enqcmd);
-        generate_exception_if(ea.type != OP_MEM, X86_EXC_UD);
         generate_exception_if(vex.pfx != vex_f2 && !mode_ring0(), X86_EXC_GP, 0);
         src.val = truncate_ea(*dst.reg);
         generate_exception_if(!is_aligned(x86_seg_es, src.val, 64, ctxt, ops),
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -358,7 +358,9 @@ XEN_CPUFEATURE(AVX_VNNI_INT8,      15*32
 XEN_CPUFEATURE(AVX_NE_CONVERT,     15*32+ 5) /*A  AVX-NE-CONVERT Instructions */
 XEN_CPUFEATURE(AMX_COMPLEX,        15*32+ 8) /*   AMX Complex Instructions */
 XEN_CPUFEATURE(AVX_VNNI_INT16,     15*32+10) /*A  AVX-VNNI-INT16 Instructions */
+XEN_CPUFEATURE(UTMR,               15*32+13) /*   User Timer */
 XEN_CPUFEATURE(PREFETCHI,          15*32+14) /*A  PREFETCHIT{0,1} Instructions */
+XEN_CPUFEATURE(USER_MSR,           15*32+15) /*   U{RD,WR}MSR Instructions */
 XEN_CPUFEATURE(UIRET_UIF,          15*32+17) /*   UIRET updates UIF */
 XEN_CPUFEATURE(CET_SSS,            15*32+18) /*   CET Supervisor Shadow Stacks safe to use */
 XEN_CPUFEATURE(SLSM,               15*32+24) /*   Static Lockstep Mode */
--- a/xen/tools/gen-cpuid.py
+++ b/xen/tools/gen-cpuid.py
@@ -283,7 +283,7 @@ def crunch_numbers(state):
         # NO_LMSL indicates the absense of Long Mode Segment Limits, which
         # have been dropped in hardware.
         LM: [CX16, PCID, LAHF_LM, PAGE1GB, PKU, NO_LMSL, AMX_TILE, CMPCCXADD,
-             LKGS, MSRLIST],
+             LKGS, MSRLIST, USER_MSR],
 
         # AMD K6-2+ and K6-III processors shipped with 3DNow+, beyond the
         # standard 3DNow in the earlier K6 processors.



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 14:59:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 14:59:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171289.1496315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNY23-0007D2-Th; Mon, 24 Nov 2025 14:59:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171289.1496315; Mon, 24 Nov 2025 14:59:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNY23-0007Cu-QW; Mon, 24 Nov 2025 14:59:11 +0000
Received: by outflank-mailman (input) for mailman id 1171289;
 Mon, 24 Nov 2025 14:59: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNY22-0005X4-CR
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 14:59:10 +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 20cb1f11-c946-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 15:59:08 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4779cc419b2so42358205e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 06:59: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-477bf22dfc1sm199957685e9.12.2025.11.24.06.59.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 06:59: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: 20cb1f11-c946-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763996348; x=1764601148; 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=zgjx9ZM47Ymjz3NyJ+ag5rhc/TUJaKszwXhUF1w2Gt0=;
        b=geZV08rp6h3qHuwejShm9YZURYjQizNw7+oqKVixNv/zPPmqfFtgmbsk3pmFBWyHSr
         JhbZtJ3AZGMdjRYLN4e5fzJszpfeyw2xV55cE/3S97aGhR0uywtgk0p9wTBHDStzU+aX
         9LOOHlPQmZYENay0nxlE7skepty0oc7+D5Lcdfb/HpmI5fuoTG6SYrswUCfJqR/DFQO0
         hYrGmhxzr2DrTRoZQjjfqBkZpw1HvgvHv8DtzylxshfFict3GRA8L5WOkaDaX4XBIpOM
         UzefO7nMrXEHyqalbtCGxU1PX6cM/yBve0U2AI7JIMw4hFCjUKSOAb9krJFhemTl7WxH
         QxiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763996348; x=1764601148;
        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=zgjx9ZM47Ymjz3NyJ+ag5rhc/TUJaKszwXhUF1w2Gt0=;
        b=WTokzjB1LvyZ2i+IUzR3DaBcKcUSRretuDONnuPzM1NphzWFVLuyYZh8aSThfVi+vs
         3qFaJLZFKp6fSE0PyMH8KtFTsyaOyjFtffeR7+k9I96Ys9kjnDPBWgbT62OzHnlsZDUv
         C1JOb0DV5rKJ2odgjKlu1ugyiV6e8NIemOOT/kXBB8/nmR7VU8AYSBgUfeMlbA4sBVr0
         CCQZyal/3LCwILycZ6yaJSKxGdAD6J7E9jMdiFwS1dMq+l97Ivm/Wh3oBpDzUW/wA5hr
         kt+K4GkR0io7FPvwZN2eYq/GZ/hKqchcWveAZIYwSIIv31N8+ali7zG7Qo/9eto4bG+e
         VlwA==
X-Gm-Message-State: AOJu0Ywjou3D91tz4uWqLMhczzwcvmVXjftF7w3USY+dUyQIkSbRAzlt
	a78puU2CxOVTfo/0bYRovgGi2eqp8pEgJkydGzWjHujtN1iA1tg34i+mTjURxOFtRMDMPdtgHU4
	/qlw=
X-Gm-Gg: ASbGncvO8Faoxvu/m1OKVumPrva44urrvRhsYRqqpT3OPbHV+krAfvL5DxE28NWijGG
	Wq8xGC6yiizXwTR5ZIkDFi0tX6HgV3+3WfG50csKS5MrEeSuEC7vGcNjsIFnDBz3i4FBdzlwJuw
	/OUIjfpLMwAMKZ8zact39SfUVjaOM74KrgzXXgeYYrsesrvFrKuN/7AWgvxtvZTFhnFA13Fk/9a
	XuNVIZB1iqIdywZjXY68R2z/vL4eOG5G/bOzfqGQl5lQwpkT2TrSBmA7AAz7b+s2pMQ/cCEYXw9
	ehXtE+RGFay2TeBPFby7+1Lp3+vcpGVvOZpHX4PrhcrCebjhy37RUapEBAjfeaps6KK1/C8gZEA
	+l5mHrJ40yX+j3rFpvzE7vjqAliebE9n3cgj+uxiH3O6CAi5RyOzV1Y4v1EeB1/YKIyQwmBdXBP
	CaShktZCzyi3W4MBfMhEWEs2BYp5UdUVJHhez2/C6SLNlwzCpkPYXYF7otq/t4srLP9clveMGtv
	/UzZB8UBknuiQ==
X-Google-Smtp-Source: AGHT+IHZLCRa8ygNBW+QUSLefmrukbXxfkfppPfrTY/LFiDUW3u5Cm1tisnUT9matucOo89SyHHXtA==
X-Received: by 2002:a05:600c:1c25:b0:46e:4586:57e4 with SMTP id 5b1f17b1804b1-477c114ed70mr181720095e9.24.1763996347958;
        Mon, 24 Nov 2025 06:59:07 -0800 (PST)
Message-ID: <dfa41e40-b50c-4564-829b-0cf147fe3ee5@suse.com>
Date: Mon, 24 Nov 2025 15:59:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v9 04/10] x86/cpu-policy: re-arrange no-VMX logic
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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Move the PKS check into an "else" for the corresponding "if()", such
that further adjustments (like for USER_MSR) can easily be put there as
well.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v5: Re-base.
v4: New.

--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -812,19 +812,20 @@ static void __init calculate_hvm_max_pol
         if ( !cpu_has_vmx_xsaves )
             __clear_bit(X86_FEATURE_XSAVES, fs);
     }
+    else
+    {
+        /*
+         * Xen doesn't use PKS, so the guest support for it has opted to not use
+         * the VMCS load/save controls for efficiency reasons.  This depends on
+         * the exact vmentry/exit behaviour, so don't expose PKS in other
+         * situations until someone has cross-checked the behaviour for safety.
+         */
+        __clear_bit(X86_FEATURE_PKS, fs);
+    }
 
     if ( !cpu_has_vmx_msrlist )
         __clear_bit(X86_FEATURE_MSRLIST, fs);
 
-    /*
-     * Xen doesn't use PKS, so the guest support for it has opted to not use
-     * the VMCS load/save controls for efficiency reasons.  This depends on
-     * the exact vmentry/exit behaviour, so don't expose PKS in other
-     * situations until someone has cross-checked the behaviour for safety.
-     */
-    if ( !cpu_has_vmx )
-        __clear_bit(X86_FEATURE_PKS, fs);
-
     /* 
      * Make adjustments to possible (nested) virtualization features exposed
      * to the guest



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 15:00:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 15:00:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171306.1496337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNY3R-0000f7-FV; Mon, 24 Nov 2025 15:00:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171306.1496337; Mon, 24 Nov 2025 15:00:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNY3R-0000f0-CN; Mon, 24 Nov 2025 15:00:37 +0000
Received: by outflank-mailman (input) for mailman id 1171306;
 Mon, 24 Nov 2025 15:00: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNY3P-0000er-VA
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 15:00:35 +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 539ea6ac-c946-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 16:00:33 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-429c4c65485so3601019f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 07:00: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-42cb7f363e4sm29352850f8f.12.2025.11.24.07.00.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 07:00: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: 539ea6ac-c946-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763996433; x=1764601233; 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=mTc/rLgvmDgzz34uomI+81+FIJDRfqzLOaxnqOglkQk=;
        b=ZZZ55UcejcPAOpzCeDTA3Hd8QXok6Fg35XQY7M1xizmHqxUfTdq7XTkAdJYH2wgISc
         2tnT1dRQDtKslnojtkdQDNAvC5sARgk/9oN6YiJSI05yhSMi/74kKKtO1bbvD45w7iny
         DNdGtsrdX4Ej4KKs8j+161au1rT/DYpY3e4qjgcHFboIt1WDD9YvcvrGZia9LUHk8p9b
         OLu5zFuUNWWz9uw+/FDCycC/+NMVHma8qppyHiF2ufPze9A3ZIORplSPCnD/Iiu5U2uo
         51hE6XYm88Gst1wGV34AqFNpawKYSDlG4fEWNBcNviCo0JMGrkwfu1//vGT2oPaOA3Wl
         od6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763996433; x=1764601233;
        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=mTc/rLgvmDgzz34uomI+81+FIJDRfqzLOaxnqOglkQk=;
        b=VBGbqBC4d49NgV5jvMib7IxZMqqXGUReIUBZy8UfF0tF8aTvOy1QfXbqRol37Ko7VE
         S7Szn7yjOp6OMl1gtzwCMfZ2k7XtG2RVDjJq0MAIAXztj/7FuJqGcOF0Y+vj8ea9IRRt
         1NVYrE8MJVwzW8bOEjswgJspmtsd9/QfbnW/RteJi32DkOrEFBNsZZH5QIASdEFFLmdM
         Z28v15pgnZBm1sYtxXCItTl+Epg6ZJiELLwWnf6Cwmztlgxt7IetUjdrGwcB7fucCp2a
         /yYBpfGcVogIm3yvULE++sR8iVzjGJsrjbC2VVPf0HulfqEJevTiGXp6C7UVJu78ot+i
         Cy8Q==
X-Gm-Message-State: AOJu0Yy4+cvAYN24zCyzFN9FFL2BfrCv40R4QoPIuT0S4dYV+A75kXZ9
	eQODCF4pDbxxrab2FXwlH60kB8bWmGrPFVu1ejUhJqI5voR1lr0k8ba/0/9Q68LhlsymMkiqKDn
	SLSw=
X-Gm-Gg: ASbGncv/OCWQ6Lzm3klQCEFuShvJlflzZsqyed+kGmFOwTEBbklfU+V5mLjCGth8phr
	GjDFH3Ty0wS2tajEMG6iKMNUmBaaPiWr313ye6HoJ9/mg8QKHJ1CGE27vGBnfQdr1YfrRIa3NEQ
	wmqUocHhj5xVGWkeM0Gq4pQiK0Ot+Np5cSiycfIfZK+J4j2Lfy/7MXvo78NEOs+ousRGvOjykHO
	YSDMZpvWmDi1PyYKaV4Xk8TbDU0Dl7pv8PJb7Z2qkvfx6FnKobUKqtw2KC10cMNUsKG7v2dP/Rs
	ZRwFGk8nW89WPBzaoOUFujO4JST+YcosBf2LClRzeK7XMrPUDV114kTNFyrHZgpVMRGYbdtctpn
	ICy6IEgOrGX92xQIHn/MlwTUO161L8Gh3kK+g9P7cBcTRTon4wSLzS0HmyjZEtAs1PXI/zRvayB
	NDEr+/oggdqaiEWO3Q2gVrctJgk1IoJ0rpst9gu9Pt3oOGCgQQHp1lJfHlU5poSIAjtdqVkZWbz
	aA=
X-Google-Smtp-Source: AGHT+IFfDRksSE/CVR6YR8ry6PnrwMa5g/Mirs19V+KeGbLmWNkgUnyfBJFwxIUmsKn3s33N+W6QMA==
X-Received: by 2002:adf:b307:0:b0:42b:3090:2680 with SMTP id ffacd0b85a97d-42cc1cd8f8fmr8668578f8f.10.1763996431512;
        Mon, 24 Nov 2025 07:00:31 -0800 (PST)
Message-ID: <55c90cf6-13fa-4afa-be6d-97d16cfb369f@suse.com>
Date: Mon, 24 Nov 2025 16:00:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v9 06/10] x86emul: support MSR_IMM instructions
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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Encoding-wise these are very similar to URDMSR/UWRMSR, so existing logic
is easy to extend.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
RFC only for now, as the VMX part is missing: The existing intercepts
can't be re-used unmodified, as those require the MSR index to be
fetched from guest ECX.
---
v8: Don't mark the feature 's' just yet. Re-base.
v7: New.

--- a/tools/tests/x86_emulator/predicates.c
+++ b/tools/tests/x86_emulator/predicates.c
@@ -1519,6 +1519,8 @@ static const struct vex {
     { { 0xdf }, 3, T, R, pfx_66, WIG, Ln }, /* vaeskeygenassist */
     { { 0xf0 }, 3, T, R, pfx_f2, Wn, L0 }, /* rorx */
 }, vex_map7[] = {
+    { { 0xf6, 0xc0 }, 6, F, N, pfx_f3, W0, L0 }, /* wrmsrns */
+    { { 0xf6, 0xc0 }, 6, F, N, pfx_f2, W0, L0 }, /* rdmsr */
     { { 0xf8, 0xc0 }, 6, F, N, pfx_f3, W0, L0 }, /* uwrmsr */
     { { 0xf8, 0xc0 }, 6, F, N, pfx_f2, W0, L0 }, /* urdmsr */
 };
--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -1574,6 +1574,30 @@ int main(int argc, char **argv)
     if ( (rc != X86EMUL_EXCEPTION) ||
          (regs.rip != (unsigned long)&instr[0]) )
         goto fail;
+    printf("okay\n");
+
+    printf("%-40s", "Testing rdmsr $MSR_GS_BASE,%rdx...");
+    instr[0] = 0xc4; instr[1] = 0xe7; instr[2] = 0x7b; instr[3] = 0xf6; instr[4] = 0xc2;
+    *(uint32_t *)&instr[5] = MSR_GS_BASE;
+    regs.rip = (unsigned long)&instr[0];
+    regs.rdx = ~gs_base;
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_OKAY) ||
+         (regs.rip != (unsigned long)&instr[9]) ||
+         (regs.rdx != gs_base) )
+        goto fail;
+    printf("okay\n");
+
+    printf("%-40s", "Testing wrmsrns %rsi,$MSR_SHADOW_GS_BASE...");
+    instr[0] = 0xc4; instr[1] = 0xe7; instr[2] = 0x7a; instr[3] = 0xf6; instr[4] = 0xc6;
+    *(uint32_t *)&instr[5] = MSR_SHADOW_GS_BASE;
+    regs.rip = (unsigned long)&instr[0];
+    regs.rsi = 0x665544332211UL;
+    rc = x86_emulate(&ctxt, &emulops);
+    if ( (rc != X86EMUL_OKAY) ||
+         (regs.rip != (unsigned long)&instr[9]) ||
+         (gs_base_shadow != 0x665544332211UL) )
+        goto fail;
 
     emulops.write_msr     = NULL;
 #endif
--- a/tools/tests/x86_emulator/x86-emulate.c
+++ b/tools/tests/x86_emulator/x86-emulate.c
@@ -88,6 +88,7 @@ bool emul_test_init(void)
     cpu_policy.feat.lkgs = true;
     cpu_policy.feat.wrmsrns = true;
     cpu_policy.feat.msrlist = true;
+    cpu_policy.feat.msr_imm = true;
     cpu_policy.feat.user_msr = true;
     cpu_policy.extd.clzero = true;
 
--- a/xen/arch/x86/x86_emulate/decode.c
+++ b/xen/arch/x86/x86_emulate/decode.c
@@ -1262,8 +1262,9 @@ int x86emul_decode(struct x86_emulate_st
                     case vex_map7:
                         opcode |= MASK_INSR(7, X86EMUL_OPC_EXT_MASK);
                         /*
-                         * No table lookup here for now, as there's only a single
-                         * opcode point (0xf8) populated in map 7.
+                         * No table lookup here for now, as there are only two
+                         * (very similar) opcode points (0xf6, 0xf8) populated
+                         * in map 7.
                          */
                         d = DstMem | SrcImm | ModRM | Mov;
                         s->op_bytes = 8;
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -614,6 +614,7 @@ amd_like(const struct x86_emulate_ctxt *
 #define vcpu_has_wrmsrns()     (ctxt->cpuid->feat.wrmsrns)
 #define vcpu_has_avx_ifma()    (ctxt->cpuid->feat.avx_ifma)
 #define vcpu_has_msrlist()     (ctxt->cpuid->feat.msrlist)
+#define vcpu_has_msr_imm()     (ctxt->cpuid->feat.msr_imm)
 #define vcpu_has_avx_vnni_int8() (ctxt->cpuid->feat.avx_vnni_int8)
 #define vcpu_has_avx_ne_convert() (ctxt->cpuid->feat.avx_ne_convert)
 #define vcpu_has_avx_vnni_int16() (ctxt->cpuid->feat.avx_vnni_int16)
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -7024,6 +7024,34 @@ x86_emulate(
         state->simd_size = simd_none;
         break;
 
+    case X86EMUL_OPC_VEX_F3(7, 0xf6): /* wrmsrns r64,imm32 */
+    case X86EMUL_OPC_VEX_F2(7, 0xf6): /* rdmsr imm32,r64 */
+        generate_exception_if(!mode_64bit() || ea.type != OP_REG, X86_EXC_UD);
+        generate_exception_if(vex.l || vex.w, X86_EXC_UD);
+        generate_exception_if(vex.opcx && ((modrm_reg & 7) || vex.reg != 0xf),
+                              X86_EXC_UD);
+        vcpu_must_have(msr_imm);
+        generate_exception_if(!mode_ring0(), X86_EXC_GP, 0);
+        if ( vex.pfx == vex_f2 )
+        {
+            /* urdmsr */
+            fail_if(!ops->read_msr);
+            if ( (rc = ops->read_msr(imm1, &msr_val, ctxt)) != X86EMUL_OKAY )
+                goto done;
+            dst.val = msr_val;
+            ASSERT(dst.type == OP_REG);
+            dst.bytes = 8;
+        }
+        else
+        {
+            /* wrmsrns */
+            fail_if(!ops->write_msr);
+            if ( (rc = ops->write_msr(imm1, dst.val, ctxt)) != X86EMUL_OKAY )
+                goto done;
+            dst.type = OP_NONE;
+        }
+        break;
+
     case X86EMUL_OPC_F3(0x0f38, 0xf8): /* enqcmds r,m512 / uwrmsr r64,r32 */
     case X86EMUL_OPC_F2(0x0f38, 0xf8): /* enqcmd r,m512 / urdmsr r32,r64 */
         if ( ea.type == OP_MEM )
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -352,6 +352,7 @@ XEN_CPUFEATURE(MCDT_NO,            13*32
 XEN_CPUFEATURE(UC_LOCK_DIS,        13*32+ 6) /*   UC-lock disable */
 
 /* Intel-defined CPU features, CPUID level 0x00000007:1.ecx, word 14 */
+XEN_CPUFEATURE(MSR_IMM,            14*32+ 5) /*   RDMSR/WRMSRNS with immediate operand */
 
 /* Intel-defined CPU features, CPUID level 0x00000007:1.edx, word 15 */
 XEN_CPUFEATURE(AVX_VNNI_INT8,      15*32+ 4) /*A  AVX-VNNI-INT8 Instructions */
--- a/xen/tools/gen-cpuid.py
+++ b/xen/tools/gen-cpuid.py
@@ -283,7 +283,7 @@ def crunch_numbers(state):
         # NO_LMSL indicates the absense of Long Mode Segment Limits, which
         # have been dropped in hardware.
         LM: [CX16, PCID, LAHF_LM, PAGE1GB, PKU, NO_LMSL, AMX_TILE, CMPCCXADD,
-             LKGS, MSRLIST, USER_MSR],
+             LKGS, MSRLIST, USER_MSR, MSR_IMM],
 
         # AMD K6-2+ and K6-III processors shipped with 3DNow+, beyond the
         # standard 3DNow in the earlier K6 processors.



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 15:00:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 15:00:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171308.1496347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNY3i-0000xU-Mb; Mon, 24 Nov 2025 15:00:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171308.1496347; Mon, 24 Nov 2025 15:00:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNY3i-0000xN-Jt; Mon, 24 Nov 2025 15:00:54 +0000
Received: by outflank-mailman (input) for mailman id 1171308;
 Mon, 24 Nov 2025 15:00: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNY3h-0000er-47
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 15:00:53 +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 5e0239c8-c946-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 16:00:51 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4777771ed1aso29240225e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 07:00: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-477bf3558d5sm199595655e9.1.2025.11.24.07.00.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 07:00: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: 5e0239c8-c946-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763996451; x=1764601251; 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=bwdrUF7Qt5a3jIV50vAgjaIvWr+Pw8if2w3syBZ4RbI=;
        b=PsI5jAz/ZYE1mk8UT3Mgw0GzNn2D0s/BE33TqGljDhEHHCKmXxpXJKueeSha4WH3w+
         cKS8OW/Ku6+kR74ca0fddj/vfL7xW2aAwpH8V/UjzmmJur1smSqXT06INzgl5Xl5FtEl
         oxrsKMVUUeu3KG8WcYKa8gKmlvYKubiFD7WiVGmMeswRByRjKsxoFafKR54cBehrZdWD
         RJs/V2ZmGRo64suMDfsr0SZ4XFqMwBB+W9fQJZLEq8gQWGP6L4CsKTTR4aZ1EqbZK+Xf
         NnJsWj+3U78A+ZCJ1tFLKRn9siB+HiSO5qOVK4nOZpCAiJ79kjhRlBI+ebuwI1pvDb5y
         5nYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763996451; x=1764601251;
        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=bwdrUF7Qt5a3jIV50vAgjaIvWr+Pw8if2w3syBZ4RbI=;
        b=S1nYEIgP1aje/XMSFTe6hVw1Q8eyo3pJBwi57ddybDdlD2URPKASyPafESv6XnGpHw
         9RlP62vw9fJrVJ08aRb0xQuIE/tm7szHxk72cAkYQDQQk8E/ngLznjrhJVHr3nkxP67m
         92dEZWi/n+IToKzmrGFVYdSpaA3SbjQA4aHWYxHef8ByLstu7XhduYQuyrjPtvsXd2L/
         lqnkyJh5s7H9+Ch6mvyNhqGA7L+honGX2w1kWdy9TI2NrgPZRyyZ3Io9ydb4iYh/1rA4
         ugz4yNKbv+DqIyyGiOr902EcZ7tldmhbm79RaPXngDUbEW+HxbtDe0uIc8PcQAFKjVDS
         UfFw==
X-Gm-Message-State: AOJu0YyQMw6Ro9Hqai4OkOqUfdbiqJPl2Tfc97RVXeiP+l1y/c+WKuRY
	D3HFPyyLcmu4CwQ1WrrHsyKeLyfBR3S+4Ia5I+3lC0hdKFLIKZ375AmFcbJ3iozIxwT5EBN8Ay5
	JDL0=
X-Gm-Gg: ASbGncuDeVaA18rPYRrb08Yhg30birJ2+ZSuTL/5v74xBBTAVLbjtOwULztx3t8hEUB
	mSeR1EKsLJMnCaZJ2Qe7abQ3WeCnYnQEoMfMprPynGt6lo3d1Z8mEGWmqncqHTBADs6xMCBkzyS
	oMBEINFkNxwkUMEjfuMKyhrgDs9EBGae4qOUG7yUynPqn9OAt4idUzo/eKh2NvtAH1d5cncLrKd
	NU5qYfhE4X9JH9EiBBT7B15AH4aS9WYX4BtSab/Z8oeXILPQ/IhsgRuRrV4askLjM/ibdnYP4ed
	ukWKXLlRdOtcUzGICmmCx7rEMpLq39F42dAjX1jf4uJUBUCJg99w1XrBCOkOaHZ20Bx2703CHkI
	hcsRdari+gaWAhZ9qwBO7UL7uyAeIGxRXf2IvpxxKkwE4+gRJyX1HPyYIQ/1hNJ3zfvN2EiD2S4
	Lvoej5TsH4j7MjDjiVFz8xZYiDF+AbCl+6goBinlbTmntWvX1Q7ipG/0hYt6xTNSNvdHCX/krBb
	Dw=
X-Google-Smtp-Source: AGHT+IH7Vei12SZE7pccPIho+8UtnUSr4u/87hbPl1o++WV8gO2CT0ThG8aHRxfrhv9tBAWRmI0jeA==
X-Received: by 2002:a05:600c:1906:b0:471:1774:3003 with SMTP id 5b1f17b1804b1-477c01e23bamr115951345e9.29.1763996450430;
        Mon, 24 Nov 2025 07:00:50 -0800 (PST)
Message-ID: <1404b901-0821-4e8d-82c7-1eebd8ed4daa@suse.com>
Date: Mon, 24 Nov 2025 16:00:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v9 07/10] VMX: support MSR-IMM
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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Hook up the new VM exit codes and handle guest uses of the insns.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v9: New.
---
The lack of an enable bit is concerning; at least for the nested case
that's a security issue afaict (when L0 isn't aware of the insns, or more
specifically the exit codes).

--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -352,7 +352,7 @@ XEN_CPUFEATURE(MCDT_NO,            13*32
 XEN_CPUFEATURE(UC_LOCK_DIS,        13*32+ 6) /*   UC-lock disable */
 
 /* Intel-defined CPU features, CPUID level 0x00000007:1.ecx, word 14 */
-XEN_CPUFEATURE(MSR_IMM,            14*32+ 5) /*   RDMSR/WRMSRNS with immediate operand */
+XEN_CPUFEATURE(MSR_IMM,            14*32+ 5) /*s  RDMSR/WRMSRNS with immediate operand */
 
 /* Intel-defined CPU features, CPUID level 0x00000007:1.edx, word 15 */
 XEN_CPUFEATURE(AVX_VNNI_INT8,      15*32+ 4) /*A  AVX-VNNI-INT8 Instructions */
--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -823,10 +823,11 @@ static void __init calculate_hvm_max_pol
         __clear_bit(X86_FEATURE_PKS, fs);
 
         /*
-         * Don't expose USER-MSR until it is known how (if at all) it is
-         * virtualized on SVM.
+         * Don't expose USER-MSR and MSR-IMM until it is known how (if at all)
+         * they are virtualized on SVM.
          */
         __clear_bit(X86_FEATURE_USER_MSR, fs);
+        __clear_bit(X86_FEATURE_MSR_IMM, fs);
     }
 
     if ( !cpu_has_vmx_msrlist )
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -453,7 +453,7 @@ void domain_cpu_policy_changed(struct do
     }
 
     /* Nested doesn't have the necessary processing, yet. */
-    if ( nestedhvm_enabled(d) && p->feat.user_msr )
+    if ( nestedhvm_enabled(d) && (p->feat.user_msr || p->feat.msr_imm) )
         return /* -EINVAL */;
 
     for_each_vcpu ( d, v )
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -4762,6 +4762,7 @@ void asmlinkage vmx_vmexit_handler(struc
         break;
 
     case EXIT_REASON_URDMSR:
+    case EXIT_REASON_RDMSR_IMM:
     {
         uint64_t msr_content = 0;
 
@@ -4770,7 +4771,7 @@ void asmlinkage vmx_vmexit_handler(struc
         {
         case X86EMUL_OKAY:
             *decode_gpr(regs, msr_imm_gpr()) = msr_content;
-            update_guest_eip(); /* Safe: URDMSR */
+            update_guest_eip(); /* Safe: URDMSR / RDMSR <imm> */
             break;
 
         case X86EMUL_EXCEPTION:
@@ -4781,13 +4782,14 @@ void asmlinkage vmx_vmexit_handler(struc
     }
 
     case EXIT_REASON_UWRMSR:
+    case EXIT_REASON_WRMSRNS_IMM:
         __vmread(EXIT_QUALIFICATION, &exit_qualification);
         switch ( hvm_msr_write_intercept(exit_qualification,
                                          *decode_gpr(regs, msr_imm_gpr()),
                                          true) )
         {
         case X86EMUL_OKAY:
-            update_guest_eip(); /* Safe: UWRMSR */
+            update_guest_eip(); /* Safe: UWRMSR / WRMSRNS <imm> */
             break;
 
         case X86EMUL_EXCEPTION:
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -205,6 +205,8 @@ static inline void pi_clear_sn(struct pi
 #define EXIT_REASON_WRMSRLIST           79
 #define EXIT_REASON_URDMSR              80
 #define EXIT_REASON_UWRMSR              81
+#define EXIT_REASON_RDMSR_IMM           84
+#define EXIT_REASON_WRMSRNS_IMM         85
 /* Remember to also update VMX_PERF_EXIT_REASON_SIZE! */
 
 /*
--- a/xen/arch/x86/include/asm/perfc_defn.h
+++ b/xen/arch/x86/include/asm/perfc_defn.h
@@ -6,7 +6,7 @@ PERFCOUNTER_ARRAY(exceptions,
 
 #ifdef CONFIG_HVM
 
-#define VMX_PERF_EXIT_REASON_SIZE 82
+#define VMX_PERF_EXIT_REASON_SIZE 86
 #define VMEXIT_NPF_PERFC 143
 #define SVM_PERF_EXIT_REASON_SIZE (VMEXIT_NPF_PERFC + 1)
 PERFCOUNTER_ARRAY(vmexits,              "vmexits",



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 15:01:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 15:01:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171313.1496356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNY43-0001KH-VJ; Mon, 24 Nov 2025 15:01:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171313.1496356; Mon, 24 Nov 2025 15:01: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 1vNY43-0001KA-SO; Mon, 24 Nov 2025 15:01:15 +0000
Received: by outflank-mailman (input) for mailman id 1171313;
 Mon, 24 Nov 2025 15:01: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNY42-0001E9-7z
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 15:01:14 +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 6b07625b-c946-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 16:01:13 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-42b3ac40ae4so2454692f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 07:01: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-42cb7ec454csm27770395f8f.0.2025.11.24.07.01.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 07:01: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: 6b07625b-c946-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763996472; x=1764601272; 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=IFq0fOa0AliJrjdv6KE61u8m34ir06BtyRkuyvlXQzo=;
        b=cW4rPjmMGcxNZDHVQ+Ctl7iJQeJbU2RuVqqfrXyK4cj3JbA0eG9I0bj9dOIEqHWEux
         iDPXqu6clwkMAqRSV2G83leHZPIUJEwkmRoeGCYW6VbhS8DUg2IX757efUqZO9h3tcC/
         xcQi5RIZ9hrPH/biv0Oxwc+Y/lR4dal4MJBxitL1FwRLa7zXOEAT/80WFAzg8Fk04DXf
         9jg2xiFEIer7RzAAuMuC16PYXTH1RcvCBRUXuziAp/OT/8bJwO+ILBEilQ1lAAFXDxcG
         FuXv1MB1fiSg0HGnkSc8yXGMXE0UzUiMiH6qkEg8ttOdrE1/pJlH71ClKjLN/bYFRaRt
         r+qQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763996472; x=1764601272;
        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=IFq0fOa0AliJrjdv6KE61u8m34ir06BtyRkuyvlXQzo=;
        b=mrM8dp06Nqwpn3T1+rkzpGtRPLDUM1T2BCd8xRpapIVPPLVy5h9DmxYjVEN5l2ltFL
         +OSJZlKtND/PUk/hdLQgQXbVg1ZQDcP/ZsCGfdzsM6O4WCgBLquWKl5t81FEwai/ePj2
         gG4VHhW2dNdF5X7F0MEtY+LmsQ9cqWfhadBHqSJYm9dD8WP24oJaIKHh9ajT2Naod/di
         U5LxeyneD8bDEXfXMpbIFzC0+8GRvv/aDEFAmV1tCufkkM7fwLlph4+Refd7jr5wd5DB
         XZ0+v75zLED1scnJnjOOCHYfPI3dakfge/QGs274uAc+KyKyJd8JKceMmUdZb86gKZkm
         geBw==
X-Gm-Message-State: AOJu0Yz31fYVTG36Z6rFln3bPl4WfbC0iyutQf2n5yS4BCotHHKh01Cj
	Ms8zngP083KsV/iO7BQwfoouhbeM0aZ+zy8z7s44LZ7Z7LZA7/SmRl//OZbMVlPjDRmQ13eNHiZ
	HZNo=
X-Gm-Gg: ASbGncuOsruVGseV1dgGf6zHUmX2XfZBp4jSmWcv0wJ0nYowexmpLkQMZOZeFTlIP0W
	vVXP6J+XClix/4764DPcg3ecrbqbPDSbYMtuDXV0VR4xLWLSo3rtGBjDI8GjuIAezDa8QGCu/Wo
	Y3q1+biNEdsd/I6iviclqrFcvVjddEbPgCs2w3qZh4zJnWiuU4KUg+WiLwup0gNp7XTGk8Muocy
	ZLf5gLHOd2tDFAk7ZtWf1UTKfr3uzzkY3jsoyY7L2W4xAdjgbSwQKr2fcEwUH6rABO2JNfqZE2y
	yJPvA8qqBIROQeVE8YW/xag+u5aHL14QQM89YiR+WlpWwCJChsa40hWRJcIS1kyNk6QVy9UaVlh
	YsmR/fVr3KhGbpd7ZbfUxS4KkyALdobUGxQGQF1/cX7xafCq5Xndfd2WUcQ6DReOUp6cWEqxvsn
	otyr+ryaadG6X1GKmSaXU0tmDCH1qpAPeT15nweaCCnyuMnzUxDgVDYmFcSazxydVnBYS9NySKd
	aE=
X-Google-Smtp-Source: AGHT+IFF4Llsf0YoGZs9VvaqHhCWVliIFzTIwSSjY68NMj7KGCXioqOlbLOr5TCgcfCwUyuvlaSuIQ==
X-Received: by 2002:a05:6000:1787:b0:42b:3e60:18c7 with SMTP id ffacd0b85a97d-42cc1cf45f5mr13049568f8f.36.1763996472103;
        Mon, 24 Nov 2025 07:01:12 -0800 (PST)
Message-ID: <9fdf318d-b838-40bb-8778-86f791902a4a@suse.com>
Date: Mon, 24 Nov 2025 16:01:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v9 08/10] x86emul: support non-SIMD MOVRS
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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

As we ignore cachability aspects of insns, they're treated like simple
MOVs.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
SDE: -dmr
---
v7: New.

--- a/tools/tests/x86_emulator/predicates.c
+++ b/tools/tests/x86_emulator/predicates.c
@@ -843,6 +843,9 @@ static const struct {
     { { 0x80 }, { 2, 2 }, T, R, pfx_66 }, /* invept */
     { { 0x81 }, { 2, 2 }, T, R, pfx_66 }, /* invvpid */
     { { 0x82 }, { 2, 2 }, T, R, pfx_66 }, /* invpcid */
+    { { 0x8a }, { 2, 2 }, T, R, pfx_no }, /* movrsb */
+    { { 0x8b }, { 2, 2 }, T, R, pfx_no }, /* movrs{d,q} */
+    { { 0x8b }, { 2, 2 }, T, R, pfx_66 }, /* movrsw */
     { { 0xc8 }, { 2, 2 }, T, R, pfx_no }, /* sha1nexte */
     { { 0xc9 }, { 2, 2 }, T, R, pfx_no }, /* sha1msg1 */
     { { 0xca }, { 2, 2 }, T, R, pfx_no }, /* sha1msg2 */
--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -1869,6 +1869,29 @@ int main(int argc, char **argv)
     }
     else
         printf("skipped\n");
+
+    {
+        /* For the non-SIMD forms the emulator doesn't itself use MOVRS. */
+        bool movrs = cpu_policy.feat.movrs;
+
+        cpu_policy.feat.movrs = true;
+
+        printf("%-40s", "Testing movrs 6(%rdi),%si...");
+        instr[0] = 0x66; instr[1] = 0x0f; instr[2] = 0x38;
+        instr[3] = 0x8b; instr[4] = 0x77; instr[5] = 0x06;
+        regs.rip = (unsigned long)&instr[0];
+        regs.rsi = 0x8888777766665555UL;
+        regs.rdi = (unsigned long)res;
+        res[1]   = 0x88777788U;
+        rc = x86_emulate(&ctxt, &emulops);
+        if ( (rc != X86EMUL_OKAY) ||
+             (regs.rip != (unsigned long)&instr[6]) ||
+             (regs.rsi != 0x8888777766668877UL) )
+            goto fail;
+        printf("okay\n");
+
+        cpu_policy.feat.movrs = movrs;
+    }
 #endif /* x86-64 */
 
     printf("%-40s", "Testing shld $1,%ecx,(%edx)...");
--- a/xen/arch/x86/x86_emulate/decode.c
+++ b/xen/arch/x86/x86_emulate/decode.c
@@ -901,7 +901,8 @@ decode_0f38(struct x86_emulate_state *s,
 {
     switch ( ctxt->opcode & X86EMUL_OPC_MASK )
     {
-    case 0x00 ... 0xef:
+    case 0x00 ... 0x89:
+    case 0x8c ... 0xef:
     case 0xf2 ... 0xf5:
     case 0xf7:
     case 0xfa ... 0xff:
@@ -912,6 +913,13 @@ decode_0f38(struct x86_emulate_state *s,
         ctxt->opcode |= MASK_INSR(s->vex.pfx, X86EMUL_OPC_PFX_MASK);
         break;
 
+    case 0x8a ... 0x8b: /* movrs */
+        s->desc = DstReg | SrcMem | Mov;
+        if ( !(ctxt->opcode & 1) )
+            s->desc |= ByteOp;
+        s->simd_size = simd_none;
+        break;
+
     case X86EMUL_OPC_VEX_66(0, 0x2d): /* vmaskmovpd */
         s->simd_size = simd_packed_fp;
         break;
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -614,6 +614,7 @@ amd_like(const struct x86_emulate_ctxt *
 #define vcpu_has_wrmsrns()     (ctxt->cpuid->feat.wrmsrns)
 #define vcpu_has_avx_ifma()    (ctxt->cpuid->feat.avx_ifma)
 #define vcpu_has_msrlist()     (ctxt->cpuid->feat.msrlist)
+#define vcpu_has_movrs()       (ctxt->cpuid->feat.movrs)
 #define vcpu_has_msr_imm()     (ctxt->cpuid->feat.msr_imm)
 #define vcpu_has_avx_vnni_int8() (ctxt->cpuid->feat.avx_vnni_int8)
 #define vcpu_has_avx_ne_convert() (ctxt->cpuid->feat.avx_ne_convert)
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -6323,6 +6323,16 @@ x86_emulate(
         fault_suppression = false;
         goto avx512f_no_sae;
 
+#endif /* !X86EMUL_NO_SIMD */
+
+    case X86EMUL_OPC(0x0f38, 0x8a)
+     ... X86EMUL_OPC(0x0f38, 0x8b): /* movrs */
+        vcpu_must_have(movrs);
+        dst.val = src.val;
+        break;
+
+#ifndef X86EMUL_NO_SIMD
+
     case X86EMUL_OPC_VEX_66(0x0f38, 0x8c): /* vpmaskmov{d,q} mem,{x,y}mm,{x,y}mm */
     case X86EMUL_OPC_VEX_66(0x0f38, 0x8e): /* vpmaskmov{d,q} {x,y}mm,{x,y}mm,mem */
         generate_exception_if(ea.type != OP_MEM, X86_EXC_UD);
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -319,6 +319,7 @@ XEN_CPUFEATURE(AVX_IFMA,     10*32+23) /
 XEN_CPUFEATURE(LAM,          10*32+26) /*   Linear Address Masking */
 XEN_CPUFEATURE(MSRLIST,      10*32+27) /*   {RD,WR}MSRLIST instructions */
 XEN_CPUFEATURE(NO_INVD,      10*32+30) /*   INVD instruction unusable */
+XEN_CPUFEATURE(MOVRS,        10*32+31) /*a  MOV-read-shared instructions */
 
 /* AMD-defined CPU features, CPUID level 0x80000021.eax, word 11 */
 XEN_CPUFEATURE(NO_NEST_BP,         11*32+ 0) /*A  No Nested Data Breakpoints */
--- a/xen/tools/gen-cpuid.py
+++ b/xen/tools/gen-cpuid.py
@@ -283,7 +283,7 @@ def crunch_numbers(state):
         # NO_LMSL indicates the absense of Long Mode Segment Limits, which
         # have been dropped in hardware.
         LM: [CX16, PCID, LAHF_LM, PAGE1GB, PKU, NO_LMSL, AMX_TILE, CMPCCXADD,
-             LKGS, MSRLIST, USER_MSR, MSR_IMM],
+             LKGS, MSRLIST, USER_MSR, MSR_IMM, MOVRS],
 
         # AMD K6-2+ and K6-III processors shipped with 3DNow+, beyond the
         # standard 3DNow in the earlier K6 processors.



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 15:01:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 15:01:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171331.1496366 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNY4T-0001yQ-Ac; Mon, 24 Nov 2025 15:01:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171331.1496366; Mon, 24 Nov 2025 15: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 1vNY4T-0001yJ-81; Mon, 24 Nov 2025 15:01:41 +0000
Received: by outflank-mailman (input) for mailman id 1171331;
 Mon, 24 Nov 2025 15: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNY4R-0001E9-BY
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 15:01:39 +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 7a46f5ca-c946-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 16:01:38 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso34206685e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 07:01: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-477bf22dfcesm203037055e9.13.2025.11.24.07.01.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 07:01: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: 7a46f5ca-c946-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763996498; x=1764601298; 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=RP9LNtOsLGFUFpLZ6YuwHIzAHL2ieAcKHDRT49uhRHg=;
        b=RM+k/PUcIvsMbVUz/34Bi0wy96FEFu7qpTY3lKjjD/IAbeyLsA2EqGZJD/7Pgur8Ai
         oE81+s2zqNcY/q+WIl5FtexhyZDxfYTWmqzIh9noTWJk0zU9yCYdUcIYDG8yHhHtSYWG
         s/tAkpn051l77dBjEcJVtT/wMK3kZ/W6IMoReujp0wcCsNBl2uQuxtfSTo1C2xsDXKir
         ed5hHORvMPMSB5jUh7OV4NBWeym6Ixyh3Zt0aRdi4nBab1eY++vFJMAhBgMZIFEc/Aep
         sYxs+zp4p0+PH4Vm8+s94Ihs50YFCSRMEx4620/F34a6uIrvRcuakegu9iUrrMnRUkYM
         Nabg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763996498; x=1764601298;
        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=RP9LNtOsLGFUFpLZ6YuwHIzAHL2ieAcKHDRT49uhRHg=;
        b=DRhB9d9n/TsJLLp8M+6g2M52yiD/40y6iQ781jwUmVSXqrWNtBGY18QkeIl/bA/LW/
         RP8P35xeCANEDYVy2yPhJNyMukfu0tKBrwcZmR2LpIVCzU/NdaAeRBYTDzDiBLi70YB3
         4ePrymgTw64szA6srhhPTwjOQ7XCStlXQNbxBGe4K7J+m5PS+equlaSNouHoVDl9jU1N
         HNy0TiWV1zwHwzvKQu7gK/C8CWcBGpykR0g+PldXEyGndsuolm/bzpOGE338Me0owDEw
         nlG29SkkZMr1WLHKRMAbxYv+11Y/lF3C42wohDQirO+qQPrWEseGjGAhboqIXBFwvvhU
         R6QQ==
X-Gm-Message-State: AOJu0Yxfk8gQltGyfCg/gENPGwDznmkK9Jfw/TaZAiBy2I1D7m+FawnJ
	1d5Mmx2XLoZDdzVxxUlJyXwRNWn24rM2ekHAXyMrjSz48c0I/aVxeqk7zGHD+lEK5Wug8IQ1a99
	lQOE=
X-Gm-Gg: ASbGnct/hG0enzd/aiK4xs8lFdrBfwLiKQxXMOYPlsnD2+Ov25O9epVivcLR72Zl7o5
	EwNxb6LKADnmEuJETI5z2PbsPU2+szZJ90fltN4SVyrXqsxvD6RzrSsTFdDNCI7vi6YCkXACoDo
	0nAslIttdic4ImdWn+RJTq8cbDy7I/QZuX5Her/wDiy6I7fwrw9eAPgg1odO9gOR6IbKIWGFAnT
	3+rsSB3K+AQ4VF5rM21wJyLUsWw1U1/u15+zE5tE2M5D7iagcueuEuNx7/Lto/fUotHBLcXksKn
	vLcqZ4FnflkmFvtFWirYP+8sJQzCYOEduE59dP2EnebSUIn5bEBGTz4QZKDw0eq7+ahA1DrlRlL
	fQeg0DiITryQw3/SoEWTenLiATgFiFsnrZAmcPdM9sjthmzjjBXIVbccwQHXvWQlwZPosSVNoQE
	+7YUYGPr9ElIjyuiwu4rPuBBkeBGa4bDCy9quzmN46fc8oSbKr3ziRTsRKNwcuh4WyjjMT+OYE2
	fk=
X-Google-Smtp-Source: AGHT+IGrsj0xJ4e0gDl9Sz4s4z6/wx2xCk9zLB/ZHUfLznZbREKYpOWbIwogkDaNTmf8Zx9qvM1jXA==
X-Received: by 2002:a05:600c:1f85:b0:471:793:e795 with SMTP id 5b1f17b1804b1-477b9e61f7cmr140878925e9.0.1763996496386;
        Mon, 24 Nov 2025 07:01:36 -0800 (PST)
Message-ID: <78b7c8a0-16ae-49c3-8c7b-5b10f5b0d688@suse.com>
Date: Mon, 24 Nov 2025 16:01:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v9 09/10] x86: use / "support" UDB
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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

With opcode D6h now firmly reserved as another #UD-raising one in 64-bit
mode, use that instead of the two-byte UD2 for bug frame marking.

While there also make the respective adjustment to the emulator.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Should we also switch {svm,vmx}_init_hypercall_page()?

Furthermore x86_64/kexec_reloc.S also has two uses. Question is whether
"tailcall" is being open-coded there, or whether that's deliberately not
using the macro we have.

One of the table entries in stub_selftest() uses UD1, yet not in quite
an appropriate way: The 0x90 following it (presumably meant to be a NOP)
really is a ModR/M byte, requiring a displacement to follow. Wouldn't we
better adjust that (e.g. using 0xcc instead)?
---
v9: New.

--- a/xen/arch/x86/include/asm/bug.h
+++ b/xen/arch/x86/include/asm/bug.h
@@ -21,7 +21,7 @@
 
 #ifndef __ASSEMBLY__
 
-#define BUG_INSTR       "ud2"
+#define BUG_INSTR       ".byte 0xd6" /* UDB */
 #define BUG_ASM_CONST   "c"
 
 #else  /* !__ASSEMBLY__ */
@@ -37,7 +37,7 @@
         .error "Invalid BUGFRAME index"
     .endif
 
-    .L\@ud: ud2a
+    .L\@ud: .byte 0xd6 /* UDB */
 
     .pushsection .rodata.str1, "aMS", @progbits, 1
          .L\@s1: .asciz "\file_str"
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -1256,7 +1256,7 @@ void asmlinkage do_trap(struct cpu_user_
 
 void asmlinkage do_invalid_op(struct cpu_user_regs *regs)
 {
-    u8 bug_insn[2];
+    uint8_t bug_insn;
     const void *eip = (const void *)regs->rip;
     int id;
 
@@ -1268,8 +1268,8 @@ void asmlinkage do_invalid_op(struct cpu
     }
 
     if ( !is_active_kernel_text(regs->rip) ||
-         copy_from_unsafe(bug_insn, eip, sizeof(bug_insn)) ||
-         memcmp(bug_insn, "\xf\xb", sizeof(bug_insn)) )
+         copy_from_unsafe(&bug_insn, eip, sizeof(bug_insn)) ||
+         bug_insn != 0xd6 /* UDB */ )
         goto die;
 
     id = do_bug_frame(regs, regs->rip);
--- a/xen/arch/x86/x86_emulate/decode.c
+++ b/xen/arch/x86/x86_emulate/decode.c
@@ -651,7 +651,7 @@ decode_onebyte(struct x86_emulate_state
     case 0xce: /* into */
     case 0xd4: /* aam */
     case 0xd5: /* aad */
-    case 0xd6: /* salc */
+        /* 0xd6 (salc) omitted here, for #UD to be raised in 64-bit mode. */
         s->not_64bit = true;
         break;
 
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -2470,9 +2470,17 @@ x86_emulate(
         _regs.eflags |= even_parity(_regs.al) ? X86_EFLAGS_PF : 0;
         break;
 
-    case 0xd6: /* salc */
-        _regs.al = (_regs.eflags & X86_EFLAGS_CF) ? 0xff : 0x00;
-        break;
+    case 0xd6: /* salc / udb */
+        if ( !mode_64bit() )
+        {
+            _regs.al = (_regs.eflags & X86_EFLAGS_CF) ? 0xff : 0x00;
+            break;
+        }
+        fallthrough;
+    case X86EMUL_OPC(0x0f, 0x0b): /* ud2 */
+    case X86EMUL_OPC(0x0f, 0xb9): /* ud1 */
+    case X86EMUL_OPC(0x0f, 0xff): /* ud0 */
+        generate_exception(X86_EXC_UD);
 
     case 0xd7: /* xlat */ {
         unsigned long al;
@@ -3204,11 +3212,6 @@ x86_emulate(
             goto done;
         break;
 
-    case X86EMUL_OPC(0x0f, 0x0b): /* ud2 */
-    case X86EMUL_OPC(0x0f, 0xb9): /* ud1 */
-    case X86EMUL_OPC(0x0f, 0xff): /* ud0 */
-        generate_exception(X86_EXC_UD);
-
     case X86EMUL_OPC(0x0f, 0x0d): /* GrpP (prefetch) */
     case X86EMUL_OPC(0x0f, 0x18): /* Grp16 (prefetch/nop) */
     case X86EMUL_OPC(0x0f, 0x19) ... X86EMUL_OPC(0x0f, 0x1f): /* nop */



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 15:02:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 15:02:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171342.1496376 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNY4s-0002dJ-KG; Mon, 24 Nov 2025 15:02:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171342.1496376; Mon, 24 Nov 2025 15:02:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNY4s-0002dC-HL; Mon, 24 Nov 2025 15:02:06 +0000
Received: by outflank-mailman (input) for mailman id 1171342;
 Mon, 24 Nov 2025 15:02:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNY4r-0001E9-Au
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 15:02:05 +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 899a1ef8-c946-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 16:02:04 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4779a637712so26775295e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 07:02: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-42cb7fb8ff3sm30350208f8f.29.2025.11.24.07.02.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 07:02: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: 899a1ef8-c946-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763996524; x=1764601324; 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=k/HDQ0bvh4xxkw8/g5CuyzpawDHHHpg2xe4YeTXRq0g=;
        b=eBd5OrwvGvSL1sIuwl7mJSS+Uj4VHVfy5WyryiL8Be3bCvoCUztsXJWvkykjy0edc+
         7y3kWC7xno7xbqOf9xYCRI9QFpBmhag/FubeyS6Bj3IloNcetTvmtB5/lsd35TbcB4G3
         Q1xd9XoCCglNDxV4YLTcIR5BQSixDkIjefAVLcABy8lvS0pubi1rWw7K82UFubAouMUr
         pu8g79BoLUuOpxABsAniq7M3gc3g8RB7Jw4v+LP09b375Gyj+Sv19iai44BhcVVm7cI6
         VTPqKMytrNxLNFZKMDj+kjT+5j30j70Y/5gMTmh2qdl2f/mchXvN2E5Tj4vO0rUrdrkG
         yydw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763996524; x=1764601324;
        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=k/HDQ0bvh4xxkw8/g5CuyzpawDHHHpg2xe4YeTXRq0g=;
        b=wVy4ck8VM1pih6wuxwvGFvUbLMe6XsvjdAofcJttPseL4kWt5wmwQrTSTW0Qbriavx
         JOnjsnRj3jaMtevzzTUL0XkdAJyM+w9oryY6DM/3O7ybyDq2vJb9JjLxLfeSN/bAI9wZ
         VsA5U4QE9268dFy1E4iLzkYg0xdCpP6SE2IW4lpekS3gdlFT4HJMXM2suuDHPSpqlZbr
         Gj2MHzIF0qUh+jwn90VcpUhRebupSS3AdsXz0HXrpT5dHo4CcjgMzp0X3zosLzoyURIy
         EQHGY32ZPCUiEPCsU6t7XBcXyNVUcRS3xuY4kq6/ziOJzk14i4N6cAAonE4scOZaEV82
         jn5Q==
X-Gm-Message-State: AOJu0Yx8j1v+iLh73o4cmZORdl8UcxiZoe677TRbzWhmh32HcdGmXZhW
	b8SW7eR0PrMmZvMaAYuMPwngUQnXw7RogRf95kyhfQfhVobJNQP14i7zzbWnK6b8fuK+F4RgHZE
	QgY0=
X-Gm-Gg: ASbGncufCr3NH3Kd71YLATU66xyA8tkFGsKcPHH0/ZDivDfMiaONQ5m2Kv4hz3AS5jR
	opLPU8QQZxOhrtv4ZF8wZqBiYhHxyX8oIyxEO/1I329VU6OabjzgQ5B3H7kUc8b78De1Q+QhETm
	GQuDqGn+FmYLOSZA1slpSBvDECGCppGW8pNM/LpVnyYxV4En8lANbyX74Z6UXuksdiIUYu68lho
	Ca4otroAGm8B6ERdgaFIE1Xwj0TL8ENdq4XrtebJokyLdrIc3POJmE4De/dqpVeXtvvO5BBObnZ
	upbqWIC1MuTMxssXxe9m47TKOYlEYjQnAqPxE3aTOFfPmkr0F4cQBKgV0ITiFN5kd4fmtYUnHh3
	vAmnfwoeYw5sx5yfo06v5cRTobSO7pGF9/wJHya1XYbEquwCQgpijSqIPXpUEIdyfeTFwginb4U
	FWpZZUMztHtKjHEf6pmfcBoOGAl3sb7LiHUthsusOrD+hgqOug1pi5c8cI3J6jK/D9dAmjYC4Da
	EY=
X-Google-Smtp-Source: AGHT+IFDJ1wD90QRR28daYvDiHSlTJQ6N0uBIlnqZIl2e0KRaa+7YPShx3Zx+aNuwIiVlWWjK6ALtA==
X-Received: by 2002:a05:600c:1ca0:b0:477:75eb:a643 with SMTP id 5b1f17b1804b1-477c0165b4emr142895485e9.4.1763996523347;
        Mon, 24 Nov 2025 07:02:03 -0800 (PST)
Message-ID: <732d56d9-d200-410e-8b52-48c5e25bcf5c@suse.com>
Date: Mon, 24 Nov 2025 16:02:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v9 10/10] x86emul: support AVX512-BMM
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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

EVEX.W meaning is unusual for VBMAC{,X}OR16x16x16, but that needs taking
care of only in the test harness.

Like already proposed in "x86emul: support AVX10.1", use just
vcpu_must_have(), not host_and_vcpu_must_have().

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
The Disp8Shift settings are guesswork; the binutils submission bogusly(?)
suggests no scaling at all.

No idea how to test this without having access to capable hardware. AMD,
to my knowledge, offers no equivalent to Intel's SDE.
---
v9: New.

--- a/tools/tests/x86_emulator/evex-disp8.c
+++ b/tools/tests/x86_emulator/evex-disp8.c
@@ -689,6 +689,15 @@ static const struct test avx512_fp16_128
     INSN(movw, 66, map5, 7e, el, fp16, el),
 };
 
+static const struct test avx512_bmm_all[] = {
+    INSN(bitrev,   , map6, 81, vl, b, vl),
+};
+
+static const struct test avx512_bmm_no128[] = {
+    INSN(bmacor16x16x16,    , map6, 81, vl, w, vl),
+    INSN(bmacxor16x16x16,   , map6, 81, vl, w, vl),
+};
+
 static const struct test gfni_all[] = {
     INSN(gf2p8affineinvqb, 66, 0f3a, cf, vl, q, vl),
     INSN(gf2p8affineqb,    66, 0f3a, ce, vl, q, vl),
@@ -817,6 +826,12 @@ static void test_one(const struct test *
 
     case ESZ_w:
         evex.w = 1;
+        /*
+         * VBMAC{,X}OR16x16x16 don't follow the general pattern: EVEX.W controls
+         * reduction kind there, not element size.
+         */
+        if ( test->spc == SPC_map6 && !test->pfx && test->opc == 0x80 )
+            evex.w = test->mnemonic[4] == 'x';
         /* fall through */
     case ESZ_fp16:
         esz = 2;
@@ -1087,6 +1102,8 @@ void evex_disp8_test(void *instr, struct
     RUN(avx512_vpopcntdq, all);
     RUN(avx512_fp16, all);
     RUN(avx512_fp16, 128);
+    RUN(avx512_bmm, all);
+    RUN(avx512_bmm, no128);
 
     if ( cpu_has_avx512f )
     {
--- a/tools/tests/x86_emulator/predicates.c
+++ b/tools/tests/x86_emulator/predicates.c
@@ -2157,6 +2157,9 @@ static const struct evex {
     { { 0x56 }, 2, T, R, pfx_f2, W0, Ln }, /* vfcmaddcph */
     { { 0x57 }, 2, T, R, pfx_f3, W0, LIG }, /* vfmaddcsh */
     { { 0x57 }, 2, T, R, pfx_f2, W0, LIG }, /* vfcmaddcsh */
+    { { 0x80 }, 2, T, R, pfx_no, W0, L1 | L2 }, /* vbmacor16x16x16 */
+    { { 0x80 }, 2, T, R, pfx_no, W1, L1 | L2 }, /* vbmacxor16x16x16 */
+    { { 0x81 }, 2, T, R, pfx_no, W0, Ln }, /* vbitrev */
     { { 0x96 }, 2, T, R, pfx_66, W0, Ln }, /* vfmaddsub132ph */
     { { 0x97 }, 2, T, R, pfx_66, W0, Ln }, /* vfmsubadd132ph */
     { { 0x98 }, 2, T, R, pfx_66, W0, Ln }, /* vfmadd132ph */
--- a/tools/tests/x86_emulator/x86-emulate.h
+++ b/tools/tests/x86_emulator/x86-emulate.h
@@ -223,6 +223,8 @@ void wrpkru(unsigned int val);
 #define cpu_has_xop                 (cpu_policy.extd.xop  && xcr0_mask(6))
 #define cpu_has_fma4                (cpu_policy.extd.fma4 && xcr0_mask(6))
 #define cpu_has_tbm                  cpu_policy.extd.tbm
+#define cpu_has_avx512_bmm          (cpu_policy.extd.avx512_bmm && \
+                                     xcr0_mask(0xe6))
 
 int emul_test_cpuid(
     uint32_t leaf,
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -334,6 +334,7 @@ XEN_CPUFEATURE(CPUID_USER_DIS,     11*32
 XEN_CPUFEATURE(EPSF,               11*32+18) /*A  Enhanced Predictive Store Forwarding */
 XEN_CPUFEATURE(FSRSC,              11*32+19) /*A  Fast Short REP SCASB */
 XEN_CPUFEATURE(AMD_PREFETCHI,      11*32+20) /*A  PREFETCHIT{0,1} Instructions */
+XEN_CPUFEATURE(AVX512_BMM,         11*32+23) /*a  AVX512 Bitmap Manipulation Instructions */
 XEN_CPUFEATURE(SBPB,               11*32+27) /*A  Selective Branch Predictor Barrier */
 XEN_CPUFEATURE(IBPB_BRTYPE,        11*32+28) /*A  IBPB flushes Branch Type predictions too */
 XEN_CPUFEATURE(SRSO_NO,            11*32+29) /*A  Hardware not vulnerable to Speculative Return Stack Overflow */
--- a/xen/tools/gen-cpuid.py
+++ b/xen/tools/gen-cpuid.py
@@ -308,7 +308,7 @@ def crunch_numbers(state):
         # dependents of AVX512BW (as to requiring wider than 16-bit mask
         # registers), despite the SDM not formally making this connection.
         AVX512BW: [AVX512_VBMI, AVX512_VBMI2, AVX512_BITALG, AVX512_BF16,
-                   AVX512_FP16],
+                   AVX512_FP16, AVX512_BMM],
 
         # Extensions with VEX/EVEX encodings keyed to a separate feature
         # flag are made dependents of their respective legacy feature.
--- a/xen/arch/x86/x86_emulate/decode.c
+++ b/xen/arch/x86/x86_emulate/decode.c
@@ -387,6 +387,7 @@ static const struct ext0f38_table {
     [0x7a ... 0x7c] = { .simd_size = simd_none, .two_op = 1 },
     [0x7d ... 0x7e] = { .simd_size = simd_packed_int, .d8s = d8s_vl },
     [0x7f] = { .simd_size = simd_packed_fp, .d8s = d8s_vl },
+    [0x80 ... 0x81] = { .simd_size = simd_packed_int, .d8s = d8s_vl },
     [0x82] = { .simd_size = simd_other },
     [0x83] = { .simd_size = simd_packed_int, .d8s = d8s_vl },
     [0x88] = { .simd_size = simd_packed_fp, .two_op = 1, .d8s = d8s_dq },
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -568,6 +568,7 @@ amd_like(const struct x86_emulate_ctxt *
 #define vcpu_has_clzero()      (ctxt->cpuid->extd.clzero)
 #define vcpu_has_wbnoinvd()    (ctxt->cpuid->extd.wbnoinvd)
 #define vcpu_has_nscb()        (ctxt->cpuid->extd.nscb)
+#define vcpu_has_avx512_bmm()  (ctxt->cpuid->extd.avx512_bmm)
 
 #define vcpu_has_bmi1()        (ctxt->cpuid->feat.bmi1)
 #define vcpu_has_hle()         (ctxt->cpuid->feat.hle)
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -7990,6 +7990,19 @@ x86_emulate(
         goto simd_zmm;
     }
 
+    case X86EMUL_OPC_EVEX(6, 0x80): /* vbmac{,x}or16x16x16 [xyz]mm/mem,[xyz]mm,[xyz]mm */
+        vcpu_must_have(avx512_bmm);
+        generate_exception_if(!evex.lr || evex.brs || evex.opmsk, X86_EXC_UD);
+        avx512_vlen_check(false);
+        goto simd_zmm;
+
+    case X86EMUL_OPC_EVEX(6, 0x81): /* vbitrev [xyz]mm/mem,[xyz]mm */
+        vcpu_must_have(avx512_bmm);
+        generate_exception_if(evex.w || evex.brs || evex.reg != 0xf || !evex.RX,
+                              X86_EXC_UD);
+        avx512_vlen_check(false);
+        goto simd_zmm;
+
     case X86EMUL_OPC_XOP(08, 0x85): /* vpmacssww xmm,xmm/m128,xmm,xmm */
     case X86EMUL_OPC_XOP(08, 0x86): /* vpmacsswd xmm,xmm/m128,xmm,xmm */
     case X86EMUL_OPC_XOP(08, 0x87): /* vpmacssdql xmm,xmm/m128,xmm,xmm */



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 15:03:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 15:03:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171367.1496387 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNY6Z-0003dn-U2; Mon, 24 Nov 2025 15:03:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171367.1496387; Mon, 24 Nov 2025 15:03: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 1vNY6Z-0003dg-RQ; Mon, 24 Nov 2025 15:03:51 +0000
Received: by outflank-mailman (input) for mailman id 1171367;
 Mon, 24 Nov 2025 15:03: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNY2u-0005X4-QO
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 15:00:04 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 40d3d50a-c946-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 16:00:02 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-47775fb6c56so37314335e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 07:00: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-477bf3af0e1sm196682755e9.10.2025.11.24.07.00.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 07:00: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: 40d3d50a-c946-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763996402; x=1764601202; 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=sZUWGoebn4tcYyYHKdiUe8nZOMYNv6ZDM2HTEINqTd0=;
        b=TOpt65lwyO3QYh26zNTeTaZxsruPelTLrU+VUS84rjj/xJGi0vRMRVhIlCo02cfArz
         C5HEDoMUzSCLKthq2M63JQ4QeaCyf/fmOqb1FIEfHNNu4QjkbG4WhdXjQ8rO2e25dlR3
         +pUMq61O6F5KSnQa0pRf5wsIfNq/cyiUyWGTi4S61JVaR75B6qVBpZvPiBdC1yIaD+bz
         qAVhXbinFOwjERlAZCU5oWXjzxUTKu7GmzMe3gDkid1G11br2LhloryuUi9DTr9RwRkp
         swBWkAO797Q7l5pGk6y1Pdz3g0vBHvdNDEJ3jRTl3bSRLOW6eWUO7G39mCPI/qnicLP1
         7OvQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763996402; x=1764601202;
        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=sZUWGoebn4tcYyYHKdiUe8nZOMYNv6ZDM2HTEINqTd0=;
        b=gQWiNHobRNLGuzlwuvwf9m1HGynqyrfroDfBcPnDaQ6z6rzw2sgsBG0hExY2deilEE
         aewOiycZ7NOWX7JnhtyedNK40CBbvSx5rlf/pAMNGfayEa6QTr3b5oN2Gi89x9uWf0+s
         Q83IS6XctXYCnrbYODttMFdkoGVhhasb7X/0JDKELb1zXoXPSSXGrWkUPKstk5vM33I1
         MJvMPLSLJ8R27f+qIpFPHdZNEWQOZzk1WtuWBB5xctCe4vM2h2B/E2DJuIu5Y1Nd7SCX
         uCIYJgpPIWN3hM7l7OJybWxavJ6HBlRh8NPTcIi+DTgdm8zn5gQLg3dvCd192RiHJZWM
         1r3A==
X-Gm-Message-State: AOJu0Yx9PGaGc+k9lmkELCyZACvC9fQLHHmlhlfxUqBiLs3ZKNc5VqvU
	RYK1mCT/AjsP3sKkL0US2UkGzkva+dZ9BpNemDCjWTIy87dTnCBkHKdShT6xJzrKcaFBvsxDFyN
	dGYg=
X-Gm-Gg: ASbGncu/xS1zdoyoCHGA2e955ckDH7YvEQtYUNBGrrZEODM90+O/zFeKbSoa3X4V3bC
	zDNLNIwffdL0GLHaUunzR4SDn+/wfJDDwutj5yev1/cLtg6UQGTgDUKFmXi3HMyBEFozpntah+C
	CvvXkBUsPpej2nKA/mrSWazVX/6k7yStPki3yf+RtGLqur6IxGlCpMicEdgRjOde+RBc6wr8LhP
	DITX53VlCzYiOagW7rwUOjCmtiS0DdrYB75OkpJMfyopT2Ifpv7DY0Din2AQGLpozYRnEn3stlS
	PxIrpi3teMjHbQILRuE7ZoWsnIjFvAWFWlgkJd/BVlqVSg0Kf/PlmKHviq/beDLH1ns1UPNlo6/
	r4hSNyWnICD6CBgNl651vobBPUDAaGkbNAEUCOBzcwOjTbD2mMBs4E5y6RrTRjSIYXVBinrMv+n
	bQfNH07QSCc3SyeGVxhATgqOa0G+5WN/OOxM0/SH6KvURXZ5YSUGODjOqqDMBFAT7nLSSIAx9g8
	EU=
X-Google-Smtp-Source: AGHT+IGI+IIpF3UkbfwF+x5hDiuyQuyVZ2K9dRBHGRzhjHj7jKeSsTIeON0cebx943z2rzipKAwaOg==
X-Received: by 2002:a05:600c:3115:b0:477:7c7d:d9b2 with SMTP id 5b1f17b1804b1-477c01f5997mr113970645e9.32.1763996401540;
        Mon, 24 Nov 2025 07:00:01 -0800 (PST)
Message-ID: <86fd4c01-fd01-4767-a9a1-c734eb037b5e@suse.com>
Date: Mon, 24 Nov 2025 16:00:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v9 05/10] VMX: support USER-MSR
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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Hook up the new VM exit codes and handle guest accesses, context switch,
and save/restore. At least for now don't allow the guest direct access
to the control MSR; this may need changing if guests were to frequently
access it (e.g. on their own context switch path).

While there also correct a one-off in union ldt_or_tr_instr_info's
comment.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Needing to change two places in hvm.c continues to be unhelpful; I
recall I already did forget to also adjust hvm_load_cpu_msrs() for XFD.
Considering that MSRs typically arrive in the order the table has it,
couldn't we incrementally look up the incoming MSR index there, falling
back to a full lookup only when the incremental lookup failed (and thus
not normally re-iterating through the initial part of the array)?

Said comment in union ldt_or_tr_instr_info is further odd (same for
union gdt_or_idt_instr_info's) in that Instruction Information is only a
32-bit field. Hence bits 32-63 aren't undefined, but simply don't exist.

RFC: The wee attempt to "deal" with nested is likely wrong, but I'm
     afraid I simply don't know where such enforcement would be done
     properly. Returning an error there is also commented out, for
     domain_cpu_policy_changed() returning void without "x86/xstate:
     re-size save area when CPUID policy changes" in place.
---
v9: Use wrmsrns(). Do renames where bits are also going to be used for
    MSR-IMM. Re-base.
v8: Re-base.
v5: Introduce user_msr_gpr().
v4: New.

--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -821,6 +821,12 @@ static void __init calculate_hvm_max_pol
          * situations until someone has cross-checked the behaviour for safety.
          */
         __clear_bit(X86_FEATURE_PKS, fs);
+
+        /*
+         * Don't expose USER-MSR until it is known how (if at all) it is
+         * virtualized on SVM.
+         */
+        __clear_bit(X86_FEATURE_USER_MSR, fs);
     }
 
     if ( !cpu_has_vmx_msrlist )
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -452,6 +452,10 @@ void domain_cpu_policy_changed(struct do
         }
     }
 
+    /* Nested doesn't have the necessary processing, yet. */
+    if ( nestedhvm_enabled(d) && p->feat.user_msr )
+        return /* -EINVAL */;
+
     for_each_vcpu ( d, v )
     {
         cpu_policy_updated(v);
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -1391,6 +1391,7 @@ static int cf_check hvm_load_cpu_xsave_s
 
 #define HVM_CPU_MSR_SIZE(cnt) offsetof(struct hvm_msr, msr[cnt])
 static const uint32_t msrs_to_send[] = {
+    MSR_USER_MSR_CTL,
     MSR_SPEC_CTRL,
     MSR_INTEL_MISC_FEATURES_ENABLES,
     MSR_PKRS,
@@ -1545,6 +1546,7 @@ static int cf_check hvm_load_cpu_msrs(st
         {
             int rc;
 
+        case MSR_USER_MSR_CTL:
         case MSR_SPEC_CTRL:
         case MSR_INTEL_MISC_FEATURES_ENABLES:
         case MSR_PKRS:
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -696,13 +696,18 @@ static void cf_check vmx_vcpu_destroy(st
 }
 
 /*
- * To avoid MSR save/restore at every VM exit/entry time, we restore
- * the x86_64 specific MSRs at domain switch time. Since these MSRs
- * are not modified once set for para domains, we don't save them,
- * but simply reset them to values set in percpu_traps_init().
+ * To avoid MSR save/restore at every VM exit/entry time, we restore the
+ * x86_64 specific MSRs at vcpu switch time. Since these MSRs are not
+ * modified once set for para domains, we don't save them, but simply clear
+ * them or reset them to values set in percpu_traps_init().
  */
-static void vmx_restore_host_msrs(void)
+static void vmx_restore_host_msrs(const struct vcpu *v)
 {
+    const struct vcpu_msrs *msrs = v->arch.msrs;
+
+    if ( msrs->user_msr_ctl.enable )
+        wrmsrns(MSR_USER_MSR_CTL, 0);
+
     /* No PV guests?  No need to restore host SYSCALL infrastructure. */
     if ( !IS_ENABLED(CONFIG_PV) )
         return;
@@ -756,6 +761,9 @@ static void vmx_restore_guest_msrs(struc
 
     if ( cp->feat.pks )
         wrpkrs(msrs->pkrs);
+
+    if ( msrs->user_msr_ctl.enable )
+        wrmsrns(MSR_USER_MSR_CTL, msrs->user_msr_ctl.raw);
 }
 
 void vmx_update_cpu_exec_control(struct vcpu *v)
@@ -1199,7 +1207,7 @@ static void cf_check vmx_ctxt_switch_fro
     if ( !v->arch.fully_eager_fpu )
         vmx_fpu_leave(v);
     vmx_save_guest_msrs(v);
-    vmx_restore_host_msrs();
+    vmx_restore_host_msrs(v);
     vmx_save_dr(v);
 
     if ( v->domain->arch.hvm.pi_ops.flags & PI_CSW_FROM )
@@ -4245,6 +4253,14 @@ static int vmx_handle_apic_write(void)
     return vlapic_apicv_write(current, exit_qualification & 0xfff);
 }
 
+static unsigned int msr_imm_gpr(void)
+{
+    msr_imm_instr_info_t info;
+
+    __vmread(VMX_INSTRUCTION_INFO, &info.raw);
+    return info.gpr;
+}
+
 static void undo_nmis_unblocked_by_iret(void)
 {
     unsigned long guest_info;
@@ -4745,6 +4761,41 @@ void asmlinkage vmx_vmexit_handler(struc
             hvm_inject_hw_exception(X86_EXC_GP, 0);
         break;
 
+    case EXIT_REASON_URDMSR:
+    {
+        uint64_t msr_content = 0;
+
+        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        switch ( hvm_msr_read_intercept(exit_qualification, &msr_content) )
+        {
+        case X86EMUL_OKAY:
+            *decode_gpr(regs, msr_imm_gpr()) = msr_content;
+            update_guest_eip(); /* Safe: URDMSR */
+            break;
+
+        case X86EMUL_EXCEPTION:
+            hvm_inject_hw_exception(X86_EXC_GP, 0);
+            break;
+        }
+        break;
+    }
+
+    case EXIT_REASON_UWRMSR:
+        __vmread(EXIT_QUALIFICATION, &exit_qualification);
+        switch ( hvm_msr_write_intercept(exit_qualification,
+                                         *decode_gpr(regs, msr_imm_gpr()),
+                                         true) )
+        {
+        case X86EMUL_OKAY:
+            update_guest_eip(); /* Safe: UWRMSR */
+            break;
+
+        case X86EMUL_EXCEPTION:
+            hvm_inject_hw_exception(X86_EXC_GP, 0);
+            break;
+        }
+        break;
+
     case EXIT_REASON_VMXOFF:
     case EXIT_REASON_VMXON:
     case EXIT_REASON_VMCLEAR:
--- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
@@ -203,6 +203,8 @@ static inline void pi_clear_sn(struct pi
 #define EXIT_REASON_NOTIFY              75
 #define EXIT_REASON_RDMSRLIST           78
 #define EXIT_REASON_WRMSRLIST           79
+#define EXIT_REASON_URDMSR              80
+#define EXIT_REASON_UWRMSR              81
 /* Remember to also update VMX_PERF_EXIT_REASON_SIZE! */
 
 /*
@@ -578,8 +580,18 @@ typedef union ldt_or_tr_instr_info {
         base_reg_invalid        :1,  /* bit 27 - Base register invalid */
         instr_identity          :1,  /* bit 28 - 0:LDT, 1:TR */
         instr_write             :1,  /* bit 29 - 0:store, 1:load */
-                                :34; /* bits 31:63 - Undefined */
+                                :34; /* bits 30:63 - Undefined */
     };
 } ldt_or_tr_instr_info_t;
 
+/* VM-Exit instruction info for URDMSR and UWRMSR */
+typedef union msr_imm_instr_info {
+    unsigned long raw;
+    struct {
+        unsigned int            :3,  /* Bits 0:2 - Undefined */
+        gpr                     :4,  /* Bits 3:6 - Source/Destination register */
+                                :25; /* bits 7:31 - Undefined */
+    };
+} msr_imm_instr_info_t;
+
 #endif /* __ASM_X86_HVM_VMX_VMX_H__ */
--- a/xen/arch/x86/include/asm/guest-msr.h
+++ b/xen/arch/x86/include/asm/guest-msr.h
@@ -8,6 +8,20 @@
 struct vcpu_msrs
 {
     /*
+     * 0x0000001c - MSR_USER_MSR_CTL
+     *
+     * Value is guest chosen, and always loaded in vcpu context.
+     */
+    union {
+        uint64_t raw;
+        struct {
+            bool enable:1;
+            unsigned int :11;
+            unsigned long bitmap:52;
+        };
+    } user_msr_ctl;
+
+    /*
      * 0x00000048 - MSR_SPEC_CTRL
      * 0xc001011f - MSR_VIRT_SPEC_CTRL (if X86_FEATURE_AMD_SSBD)
      *
--- a/xen/arch/x86/include/asm/perfc_defn.h
+++ b/xen/arch/x86/include/asm/perfc_defn.h
@@ -6,7 +6,7 @@ PERFCOUNTER_ARRAY(exceptions,
 
 #ifdef CONFIG_HVM
 
-#define VMX_PERF_EXIT_REASON_SIZE 80
+#define VMX_PERF_EXIT_REASON_SIZE 82
 #define VMEXIT_NPF_PERFC 143
 #define SVM_PERF_EXIT_REASON_SIZE (VMEXIT_NPF_PERFC + 1)
 PERFCOUNTER_ARRAY(vmexits,              "vmexits",
--- a/xen/arch/x86/msr.c
+++ b/xen/arch/x86/msr.c
@@ -280,6 +280,12 @@ int guest_rdmsr(struct vcpu *v, uint32_t
         *val = msrs->xss.raw;
         break;
 
+    case MSR_USER_MSR_CTL:
+        if ( !cp->feat.user_msr )
+            goto gp_fault;
+        *val = msrs->user_msr_ctl.raw;
+        break;
+
     case 0x40000000 ... 0x400001ff:
         if ( is_viridian_domain(d) )
         {
@@ -618,6 +624,19 @@ int guest_wrmsr(struct vcpu *v, uint32_t
         msrs->xss.raw = val;
         break;
 
+    case MSR_USER_MSR_CTL:
+        if ( !cp->feat.user_msr )
+            goto gp_fault;
+
+        if ( (val & ~(USER_MSR_ENABLE | USER_MSR_ADDR_MASK)) ||
+             !is_canonical_address(val) )
+            goto gp_fault;
+
+        msrs->user_msr_ctl.raw = val;
+        if ( v == curr )
+            wrmsrns(MSR_USER_MSR_CTL, val);
+        break;
+
     case 0x40000000 ... 0x400001ff:
         if ( is_viridian_domain(d) )
         {
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -360,7 +360,7 @@ XEN_CPUFEATURE(AMX_COMPLEX,        15*32
 XEN_CPUFEATURE(AVX_VNNI_INT16,     15*32+10) /*A  AVX-VNNI-INT16 Instructions */
 XEN_CPUFEATURE(UTMR,               15*32+13) /*   User Timer */
 XEN_CPUFEATURE(PREFETCHI,          15*32+14) /*A  PREFETCHIT{0,1} Instructions */
-XEN_CPUFEATURE(USER_MSR,           15*32+15) /*   U{RD,WR}MSR Instructions */
+XEN_CPUFEATURE(USER_MSR,           15*32+15) /*s  U{RD,WR}MSR Instructions */
 XEN_CPUFEATURE(UIRET_UIF,          15*32+17) /*   UIRET updates UIF */
 XEN_CPUFEATURE(CET_SSS,            15*32+18) /*   CET Supervisor Shadow Stacks safe to use */
 XEN_CPUFEATURE(SLSM,               15*32+24) /*   Static Lockstep Mode */



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 15:08:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 15:08:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171389.1496396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNYBI-0004jD-KQ; Mon, 24 Nov 2025 15:08:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171389.1496396; Mon, 24 Nov 2025 15:08: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 1vNYBI-0004j6-Hl; Mon, 24 Nov 2025 15:08:44 +0000
Received: by outflank-mailman (input) for mailman id 1171389;
 Mon, 24 Nov 2025 15:08: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=HCIP=6A=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vNYBG-0004j0-Se
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 15:08:42 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 75bdccc2-c947-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 16:08:40 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-47796a837c7so28931635e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 07:08:40 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-477bf3b4eb2sm199290635e9.12.2025.11.24.07.08.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Nov 2025 07:08: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: 75bdccc2-c947-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1763996920; x=1764601720; 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=FzTlUqlynUPpvUq58w3gSsgx2HPcRNAuuuB89xtRGaU=;
        b=FvJ94kln2wlz0OlGejgKW3wu4eaC4vNx6YmgCVGmIMyGCV/f79kCkjl7SCx31QXOFk
         gRzjhL137P6ZOW/vVsdJNXQ6yCKzTeTnhMRje6l1J2lISOI1e971yQRG88HTuVKARmBq
         qs9gZY2jgcqu5pQW1o28k/MZ+5/CDnC7sJOzM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763996920; x=1764601720;
        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=FzTlUqlynUPpvUq58w3gSsgx2HPcRNAuuuB89xtRGaU=;
        b=rlUj4MO5XQMN4Ts+zaGqHejPdKyMqGCO4D2BUC7tYl99XcBz14CjbIrA8vJnS7eta7
         Dfi2kW+aXB/U/y3ta1tpbnwo/PSgH2vWCgEds9jQBg821LIoaCjM9VXlJ8X9LufPSdTH
         0n7TCqHL20QbYgczvHB7JvhiCpaMjB8XWEN0DjCUgPZu+GBrwLEsKq37+7ZctBB4Irhr
         DBP2NASF9bZ7gQWUd12YH/9vKjiu0LSR7YUQ/5E6WjPeCwUNWr1kIP+3ZinOU/986Eo5
         lU11JwFb1it7s3rClS0gw3Z4vcU8WUNnogvFtIVQfZSSBspV2Wc1s8nTIsROV6eJlHOS
         KP7A==
X-Gm-Message-State: AOJu0YzjXBpd/xJm8YCaKjNbYxxnPn1hyECKa5bInk4or+0bJEXeu6os
	romCMtWsRzbKF1xoIhhWl1L5y1Iqb2Bt/UwBOot5Vt0LMCho3GR3OAtCMemnlUAxbjcVBYrwHWx
	t6FqkwP8=
X-Gm-Gg: ASbGncumRbfMhcF7Q0QDatVY1ioblmUQeWRRVX9LrLEGkKipLpyoumwFP1uD7Ba/lnE
	jWYzbs7HntHoOZ1xHQwI07yYvxqZRXUmCENyDiKnib+84Qu3+XwOyq6eZtCtrn8XM/xc9n5nZFR
	jA8LuwS9iq94JE+0/qoBnFPfp4wlDHBvcK6FXbslDT0y9ljmxcLnJ/0/BqMijzhDPj4oCocKD2i
	16vyGbSWO1A+RggpFEJKIkq/bQH9gI6QtZoKMHhmUPr2UB73M+IRs4oHoSrUJfbg40icGJ9jFjS
	ymNzGeNVmDgU0Cd0OgJK1hSRTBRZO/zKmTAl2Fjc410cieulQCyV/qFnxOWZWbGDI6MhQgDRSU/
	ka25ZMvNdtWGHKR72MdrCEhpyJjomH0RADokD4OFI5Ap0GGudyn7IqNkC2xhGJEZ7mxEumfX4Ps
	+h3Vh8mejGCeM5TV1IZElLVBGnXKkpIcusfssX54xs0DY6CyLXGYSGxeu5gbAEBg==
X-Google-Smtp-Source: AGHT+IHT9NWC1rgEm9qK+BPToIU5Hxm5m4NPKnzzvKzunKaS4LQyc5IA7YCwWqt6RddVSMBFMR5E/A==
X-Received: by 2002:a05:600c:3593:b0:46e:32dd:1b1a with SMTP id 5b1f17b1804b1-477c0162f1fmr134635935e9.7.1763996919504;
        Mon, 24 Nov 2025 07:08: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>,
	Kevin Lampis <kevin.lampis@citrix.com>
Subject: [PATCH] x86/intel: Resync intel-family.h
Date: Mon, 24 Nov 2025 15:08:37 +0000
Message-Id: <20251124150837.654354-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Kevin Lampis <kevin.lampis@citrix.com>

I'm unsure about the Intel CPU Core types, but it's probably better to keep
them than strip them from our copy.
---
 xen/arch/x86/include/asm/intel-family.h | 68 +++++++++++++++++++++----
 1 file changed, 57 insertions(+), 11 deletions(-)

diff --git a/xen/arch/x86/include/asm/intel-family.h b/xen/arch/x86/include/asm/intel-family.h
index d8c0bcc406de..cc3fb4cc471f 100644
--- a/xen/arch/x86/include/asm/intel-family.h
+++ b/xen/arch/x86/include/asm/intel-family.h
@@ -1,8 +1,8 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /*
  * Snapshot from Linux:
- *   db4001f9cc32e3ef105a4e4f492d7d813b28292a
- *   x86/cpu/vfm: Delete all the *_FAM6_ CPU #defines
+ *   89216c9051ef6635f1514f8e0d2f9cd63b37a3b6
+ *   x86/cpu: Add/fix core comments for {Panther,Nova} Lake
  */
 #ifndef _ASM_X86_INTEL_FAMILY_H
 #define _ASM_X86_INTEL_FAMILY_H
@@ -50,7 +50,18 @@
 /* Wildcard match so X86_MATCH_VFM(ANY) works */
 #define INTEL_ANY			IFM(X86_FAMILY_ANY, X86_MODEL_ANY)
 
+/* Family 5 */
+#define INTEL_FAM5_START		IFM(5, 0x00) /* Notational marker, also P5 A-step */
+#define INTEL_PENTIUM_75		IFM(5, 0x02) /* P54C */
+#define INTEL_PENTIUM_MMX		IFM(5, 0x04) /* P55C */
+#define INTEL_QUARK_X1000		IFM(5, 0x09) /* Quark X1000 SoC */
+
+/* Family 6, 18, 19 */
 #define INTEL_PENTIUM_PRO		IFM(6, 0x01)
+#define INTEL_PENTIUM_II_KLAMATH	IFM(6, 0x03)
+#define INTEL_PENTIUM_III_DESCHUTES	IFM(6, 0x05)
+#define INTEL_PENTIUM_III_TUALATIN	IFM(6, 0x0B)
+#define INTEL_PENTIUM_M_DOTHAN		IFM(6, 0x0D)
 
 #define INTEL_CORE_YONAH		IFM(6, 0x0E)
 
@@ -115,11 +126,15 @@
 
 #define INTEL_SAPPHIRERAPIDS_X		IFM(6, 0x8F) /* Golden Cove */
 
-#define INTEL_EMERALDRAPIDS_X		IFM(6, 0xCF)
+#define INTEL_EMERALDRAPIDS_X		IFM(6, 0xCF) /* Raptor Cove */
 
-#define INTEL_GRANITERAPIDS_X		IFM(6, 0xAD)
+#define INTEL_GRANITERAPIDS_X		IFM(6, 0xAD) /* Redwood Cove */
 #define INTEL_GRANITERAPIDS_D		IFM(6, 0xAE)
 
+#define INTEL_DIAMONDRAPIDS_X		IFM(19, 0x01) /* Panther Cove */
+
+#define INTEL_BARTLETTLAKE		IFM(6, 0xD7) /* Raptor Cove */
+
 /* "Hybrid" Processors (P-Core/E-Core) */
 
 #define INTEL_LAKEFIELD			IFM(6, 0x8A) /* Sunny Cove / Tremont */
@@ -131,14 +146,21 @@
 #define INTEL_RAPTORLAKE_P		IFM(6, 0xBA)
 #define INTEL_RAPTORLAKE_S		IFM(6, 0xBF)
 
-#define INTEL_METEORLAKE		IFM(6, 0xAC)
+#define INTEL_METEORLAKE		IFM(6, 0xAC) /* Redwood Cove / Crestmont */
 #define INTEL_METEORLAKE_L		IFM(6, 0xAA)
 
-#define INTEL_ARROWLAKE_H		IFM(6, 0xC5)
+#define INTEL_ARROWLAKE_H		IFM(6, 0xC5) /* Lion Cove / Skymont */
 #define INTEL_ARROWLAKE			IFM(6, 0xC6)
 #define INTEL_ARROWLAKE_U		IFM(6, 0xB5)
 
-#define INTEL_LUNARLAKE_M		IFM(6, 0xBD)
+#define INTEL_LUNARLAKE_M		IFM(6, 0xBD) /* Lion Cove / Skymont */
+
+#define INTEL_PANTHERLAKE_L		IFM(6, 0xCC) /* Cougar Cove / Darkmont */
+
+#define INTEL_WILDCATLAKE_L		IFM(6, 0xD5)
+
+#define INTEL_NOVALAKE			IFM(18, 0x01) /* Coyote Cove / Arctic Wolf */
+#define INTEL_NOVALAKE_L		IFM(18, 0x03) /* Coyote Cove / Arctic Wolf */
 
 /* "Small Core" Processors (Atom/E-Core) */
 
@@ -152,9 +174,9 @@
 #define INTEL_ATOM_SILVERMONT		IFM(6, 0x37) /* Bay Trail, Valleyview */
 #define INTEL_ATOM_SILVERMONT_D		IFM(6, 0x4D) /* Avaton, Rangely */
 #define INTEL_ATOM_SILVERMONT_MID	IFM(6, 0x4A) /* Merriefield */
+#define INTEL_ATOM_SILVERMONT_MID2	IFM(6, 0x5A) /* Anniedale */
 
 #define INTEL_ATOM_AIRMONT		IFM(6, 0x4C) /* Cherry Trail, Braswell */
-#define INTEL_ATOM_AIRMONT_MID		IFM(6, 0x5A) /* Moorefield */
 #define INTEL_ATOM_AIRMONT_NP		IFM(6, 0x75) /* Lightning Mountain */
 
 #define INTEL_ATOM_GOLDMONT		IFM(6, 0x5C) /* Apollo Lake */
@@ -179,8 +201,32 @@
 #define INTEL_XEON_PHI_KNL		IFM(6, 0x57) /* Knights Landing */
 #define INTEL_XEON_PHI_KNM		IFM(6, 0x85) /* Knights Mill */
 
-/* Family 5 */
-#define INTEL_FAM5_QUARK_X1000		0x09 /* Quark X1000 SoC */
-#define INTEL_QUARK_X1000		IFM(5, 0x09) /* Quark X1000 SoC */
+/* Notational marker denoting the last Family 6 model */
+#define INTEL_FAM6_LAST			IFM(6, 0xFF)
+
+/* Family 15 - NetBurst */
+#define INTEL_P4_WILLAMETTE		IFM(15, 0x01) /* Also Xeon Foster */
+#define INTEL_P4_PRESCOTT		IFM(15, 0x03)
+#define INTEL_P4_PRESCOTT_2M		IFM(15, 0x04)
+#define INTEL_P4_CEDARMILL		IFM(15, 0x06) /* Also Xeon Dempsey */
+
+/*
+ * Intel CPU core types
+ *
+ * CPUID.1AH.EAX[31:0] uniquely identifies the microarchitecture
+ * of the core. Bits 31-24 indicates its core type (Core or Atom)
+ * and Bits [23:0] indicates the native model ID of the core.
+ * Core type and native model ID are defined in below enumerations.
+ */
+enum intel_cpu_type {
+	INTEL_CPU_TYPE_UNKNOWN,
+	INTEL_CPU_TYPE_ATOM = 0x20,
+	INTEL_CPU_TYPE_CORE = 0x40,
+};
+
+enum intel_native_id {
+	INTEL_ATOM_CMT_NATIVE_ID = 0x2,  /* Crestmont */
+	INTEL_ATOM_SKT_NATIVE_ID = 0x3,  /* Skymont */
+};
 
 #endif /* _ASM_X86_INTEL_FAMILY_H */

base-commit: bc23a49d13a30de06a961dfaccc4a19262fe9967
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 15:09:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 15:09:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171398.1496406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNYC5-0005Co-S0; Mon, 24 Nov 2025 15:09:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171398.1496406; Mon, 24 Nov 2025 15: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 1vNYC5-0005Ch-PY; Mon, 24 Nov 2025 15:09:33 +0000
Received: by outflank-mailman (input) for mailman id 1171398;
 Mon, 24 Nov 2025 15:09: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNYC4-0005CS-Au
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 15:09:32 +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 9348d037-c947-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 16:09:30 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4777771ed1aso29321695e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 07: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-42cb7fa35c2sm27692618f8f.25.2025.11.24.07.09.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 07: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: 9348d037-c947-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763996969; x=1764601769; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZOONM6SxRS++UahGrXvH7O6s+sPl8pztSsyJZaomoAM=;
        b=eZE9MyHlD5ZZgATOzO1Bk9gl5+4NaMq+9ra2iHXBKNWQWKkGT6Yi8QrZ//PXJM85n6
         ai4FGZ2OgzN0X4bwqiinWs3xt9Lf5iC2GwKTk3uu7Jl0LtZNSn1EyuqfCnbz4Umg3m45
         6yQZwn/E1ERoGGkfDzgqqc9k/ZLi6UEHla6zBs2eepbSa+iFlTqmLJQ6TO1GHk/J0Tqe
         yVu5vsVzizHt1y3ZwK7AawLWJjqBP8oWZsk5LuWr035leyzlvTS9qFL6OVfz/p+XjgbY
         bDwyFjmfUsdn+sDDHnrlf/mMk5DRw3fvj7GKaWwkpT1/4madeckQT2tynRnLc53PKgir
         rDcw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763996969; x=1764601769;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZOONM6SxRS++UahGrXvH7O6s+sPl8pztSsyJZaomoAM=;
        b=kkhkdMsWpe9XyW3xYnYFKpjS9Hef7OPK5ZoWhLMpCCf+79w8lnYWhsVeWuaR4aPFMq
         hdxIC6QsMhBSsUx51UFbWEJGPnmf20PexObZtRFiJs2FL82sL1FQkDISih5ECWQ6FB3I
         UsXAv1LmKqAtNVVlTocNdtjNK+N5/jzaIXSh+qr3IXjXbn7acuH9hdbxQS8e4yL84RR0
         3vaTWabV1VggEBYRDlx/L/gxJc+vnndYgyNp+pO4RkyTztNMoN3znnOtEULWNUxJ9tbV
         8cs7kD1HTEZofc72ERhTa1w+hAqqrHBsr2x6pkd+OtkX44IUSIn8BuN92DIsCtvG2uaU
         eNuQ==
X-Forwarded-Encrypted: i=1; AJvYcCXptwDr7tBlSwcNySsM3l0yoN/oGt7d7VOzq2BudxKRNWaiIutYE4xJ96/q7K2jKfg/orlowJY+Jpc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywkb1lBpODKJ6yxiZMbZZrS8lgD2gZn+TC3jdrECm7O1RHRbmKe
	rkdcFRI2R8o71ZsiVXEfNiVdkQyJod7o+reTdL/kMKG1Zar0pFgS/zubYRIrUbqi7Q==
X-Gm-Gg: ASbGncv91iaQlGSsC5zVjNvTYG28QjyTunxUKGLfcPT7HOxSknoTE117fFgQgnUU6ZI
	SuU2sSsGpgVUkKJELoqrICKFfuGS+1yW0qxRKq59C5Iak6xrDQCrbX4nkcsvMdAbOUGk+RucAU6
	PUwfYnMXr9cNfz0VeKGKnwhG8k2TghcCuIgszmNQnuxjYVS7gk21A2NwgO7sOJAH5VT/q7iOhM7
	7v8qHndWkRwgYP1uDhfE5Pwu59YK0JNiRVWEpgupGa9bQSub/seJtXIogkrs1eBaYepf1jYhqpD
	Vtkf3hA6ZmiXiFf2X8fmS+iXqo35SF9ramOYIyY+EiIOf/1TJjjM4Pnpu3/Vkcs7YqGUryxu3E0
	SKPkUVEkumyPnTA2EufmakyIG8RyD3zal0YVqwSdEWO5d4U18QBmGAhx7MSi+Y4fGhKJAtascxp
	d4mEmpMrE0HNyT6uX51PoMylA5/Wdk2xyJO9iygM+umuGq9cYxjEtihMATWGGm1cFZaNrU+5Lqu
	uw=
X-Google-Smtp-Source: AGHT+IF5HXPdqYmYacXoYvd4kJR7hJYZ5xFlFuQxOxkQ/2cEQUhXFLGyJECc8+bHajbJ6saJpED51g==
X-Received: by 2002:a05:600c:3593:b0:46e:32dd:1b1a with SMTP id 5b1f17b1804b1-477c0162f1fmr134678565e9.7.1763996969422;
        Mon, 24 Nov 2025 07:09:29 -0800 (PST)
Message-ID: <98c23088-a40f-41eb-9a10-3d310cfba255@suse.com>
Date: Mon, 24 Nov 2025 16:09:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/vhpet: Fix sanitization of legacy IRQ route
To: Tu Dinh <ngoc-tu.dinh@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: <20251124134344.456-1-ngoc-tu.dinh@vates.tech>
 <8581c3ce-e0f7-41e5-aee7-cf607f8f338d@suse.com>
 <143076ee-6ade-4fe8-924a-a2b8a5af1a5f@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: <143076ee-6ade-4fe8-924a-a2b8a5af1a5f@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2025 16:02, Tu Dinh wrote:
> On 24/11/2025 15:53, Jan Beulich wrote:
>> On 24.11.2025 14:43, Tu Dinh wrote:
>>> When setting a timer's config register, timer_sanitize_int_route will
>>> always reset the IRQ route value to what's valid corresponding to the
>>> !HPET_CFG_LEGACY case. This is applied even if the HPET is set to
>>> HPET_CFG_LEGACY.
>>>
>>> When some operating systems (e.g. Windows) try to write to a timer
>>> config, they will verify and rewrite the register if the values don't
>>> match what they expect. This causes an unnecessary write to HPET_Tn_CFG.
>>>
>>> Note, the HPET specification states that for the Tn_INT_ROUTE_CNF field:
>>>
>>> "If the value is not supported by this prarticular timer, then the value
>>> read back will not match what is written. [...] If the LegacyReplacement
>>> Route bit is set, then Timers 0 and 1 will have a different routing, and
>>> this bit field has no effect for those two timers."

According to this, ...

>>> Therefore, Xen should not reset timer_int_route if legacy mode is
>>> enabled, regardless of what's in there.
>>
>> Fixes: ec40d3fe2147 ("x86/vhpet: check that the set interrupt route is valid")
>> (I think)
> 
> Yes, thanks.
> 
>>
>>> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
>>> ---
>>>   xen/arch/x86/hvm/hpet.c | 11 ++++++++---
>>>   1 file changed, 8 insertions(+), 3 deletions(-)
>>>
>>> --- a/xen/arch/x86/hvm/hpet.c
>>> +++ b/xen/arch/x86/hvm/hpet.c
>>> @@ -48,6 +48,8 @@
>>>   #define timer_is_32bit(h, n)     (timer_config(h, n) & HPET_TN_32BIT)
>>>   #define hpet_enabled(h)          ((h)->hpet.config & HPET_CFG_ENABLE)
>>>   #define timer_level(h, n)        (timer_config(h, n) & HPET_TN_LEVEL)
>>> +#define timer_is_legacy(h, n) \
>>> +    (((n) <= 1) && ((h)->hpet.config & HPET_CFG_LEGACY))
>>>   
>>>   #define timer_int_route(h, n)    MASK_EXTR(timer_config(h, n), HPET_TN_ROUTE)
>>>   
>>> @@ -244,7 +246,7 @@ static void hpet_set_timer(HPETState *h, unsigned int tn,
>>>            (timer_level(h, tn) && test_bit(tn, &h->hpet.isr)) )
>>>           return;
>>>   
>>> -    if ( !timer_int_route_valid(h, tn) )
>>> +    if ( !timer_is_legacy(h, tn) && !timer_int_route_valid(h, tn) )
>>
>> Seeing this and the other use together with timer_int_route_valid(),
>> wouldn't timer_int_route_valid() better itself invoke the new macro?
> 
> I thought about it, but I found that it was overloading the definition 
> of timer_int_route_valid a little too much. Since timer_is_legacy() is 
> being used by itself later anyway, I figured it'd be better to just 
> separate the two.

... the route setting is valid (because of being ignored) when in legacy
mode. Hence why I think the check wants integrating there.

>>> @@ -379,6 +381,9 @@ static int cf_check hpet_write(
>>>           h->hpet.config = hpet_fixup_reg(new_val, old_val,
>>>                                           HPET_CFG_ENABLE | HPET_CFG_LEGACY);
>>>   
>>> +        for ( i = 0; i < HPET_TIMER_NUM; i++ )
>>> +            timer_sanitize_int_route(h, i);
>>
>> Strictly speaking this is needed only when HPET_CFG_LEGACY went from
>> 1 to 0. Plus it's needed only on the first 2 channels, as it's only
>> there where timer_sanitize_int_route() changes behavior. I'm not going
>> to insist to limit it like this, but if you don't, then I'd like to ask
>> for a comment here clarifying that excess work is done for simplicity's
>> sake.
> 
> Agreed, I can limit it to i <= 1.

May I ask that you avoid such open-coding and use timer_is_legacy(h, i) as
the loop continuation expression instead?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 15:12:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 15:12:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171410.1496416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNYEW-0006zt-8h; Mon, 24 Nov 2025 15:12:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171410.1496416; Mon, 24 Nov 2025 15:12:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNYEW-0006zm-5g; Mon, 24 Nov 2025 15:12:04 +0000
Received: by outflank-mailman (input) for mailman id 1171410;
 Mon, 24 Nov 2025 15: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNY66-0001E9-Dw
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 15:03: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 b7bc0296-c946-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 16:03:21 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-477a2ab455fso47845405e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 07:03: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-477c0d85360sm195276875e9.15.2025.11.24.07.03.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 07:03: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: b7bc0296-c946-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763996601; x=1764601401; 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=rA6mYNSombVoXss+wGmsdkfBchAgYqWjr/HJ98EE+BY=;
        b=O0vC94mXBm1WRLU6adqh+x35DaQtbwu1OVaWJDtSebl41npNbDdGM8/bpB1gYOUPka
         1rcCowWsrzP/9Msz+jG5mYp6vViM9lZ/oibYwKJ44RzXjyfN0hVIjWermYfiyMGpjoqx
         bgwbjSOswvoQpVdOCqmKBk3vzv9Q0ygdHrRXzRn3TSe8Sv3IllNkyqSOOoHyOSDpJIn+
         HKuKlX72pUpG5edfBiOM4Y+TRrsXvxMdS0xz1cdOUfbN8SIy1abT5kpcU7MT/Nhvt8Wa
         2ZVypPiUorIBstItIEFhyQHDsqtUQCAkPSArSyXl4UV7wgCyNDOF197ZN41K6nXfNtQY
         3Hpg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763996601; x=1764601401;
        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=rA6mYNSombVoXss+wGmsdkfBchAgYqWjr/HJ98EE+BY=;
        b=sW2q1dQDV5nmDdkU/g1O98wr5Q5mOO3BEyuoi2U/O+9MAbqo1Sko6oQkx6/6YWrZkR
         8JhQfvNBeWCdoS8qC3NQIaqHdvc7l5akP9SxCw3YZ7Sqhiu4HzUrnq4U795JFsY9CXtw
         m4EyzwptjjekkvIOsroDlbuW6DtLwsGyl3Q+LSbLmt4HRBK9YjuCWuwZ1WrJ2VpIf0yr
         1OojmRBsbt6K1EvFj6ie2u6QFowx41rhpSrw1pfiAZDmEZFagcLYVy+15mY9R0UFL0ne
         M8VWNHgEuuXuNzwryasPR0/nEEN9cSmdKPUSBSlEF2NoBofTZZYDZ5yRtXey3vvROxOi
         0lGQ==
X-Gm-Message-State: AOJu0Yzzh/2p3797bF/Q4ZBEHUaJcbMoXLtqEoa3S1U6IU3beAKzpKHa
	CbRnwbNjSePambZvANL9FTIhD4sWtr2BXI8ffsTe5IaglaSkqrrSvNTmfTLNqdyxgjDT7XhuWbk
	t32A=
X-Gm-Gg: ASbGncvSzfEN86nwfMpnZWKyoHjqxk6hNp8Lz7JkJ/mcnXVUGwYvNpcCBOvYzxy2eAK
	L99PnWF6HIdkFDINGv+b0HNB/zFufgRYVdBOcOokxgvTe9/nsM2Z4aoDfscGGQKzHjWUes8rv8J
	lzNw4T2UvPN+wGDqt4uMTLALOhl+MSgXdUTSm79AdogmQB3+M/RKwAMkjXrNOX7YsFaxmUhaHvG
	7WAo9kb/rJMBDPKKwrLBSc51hI8aUy0HOBDqAAXgj3YtBPlowNNho0TwESRxG2hI/an4ylmSWk/
	vX0bzrgL6svRxyrsHzU4Y+JS/tk2LN6mFAaW2PMzcc3YOq9YpeUBId4MidbR/PZ6AJPlv2ef2nY
	+4TMS3+j/HQm6jHkIlhjVFjKaROBzVPwWh/Kt/JdsVhe71TMc+W/OsRrwAxqO/Ab8VbCzQe/cVZ
	pQj/uqpVYiedrJOFlpKjZs0b7LJJqdJkA8fdTFqcRmdXzJwnYu/Bc4WCV8zfNvae79/R0HMUU5H
	v4=
X-Google-Smtp-Source: AGHT+IFQ+wFi+i3YaXrf9vVNYxlVzZMLpoT9qpVetW5lFTvm4Q0CPL73KA4RYdcjT+dzMdToc6Zf6g==
X-Received: by 2002:a05:600c:1f85:b0:477:7b30:a6fe with SMTP id 5b1f17b1804b1-477c1116013mr107652755e9.18.1763996601056;
        Mon, 24 Nov 2025 07:03:21 -0800 (PST)
Message-ID: <17e717fa-16c6-4cf1-89aa-6173baf25ce8@suse.com>
Date: Mon, 24 Nov 2025 16:03:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 00/10] x86emul: misc additions
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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

I screwed up in two ways here: As the cover letter, this is 00/10, and ...

On 24.11.2025 15:56, Jan Beulich wrote:
> 01: x86emul: support LKGS
> 02: x86emul+VMX: support {RD,WR}MSRLIST
> 03: x86emul: support USER_MSR instructions
> 04: x86/cpu-policy: re-arrange no-VMX logic
> 05: VMX: support USER_MSR
> 06: VMX: support MSR-IMM
> 07: x86emul: support MSR_IMM instructions

... the order of 06 and 07 are the wrong way round here.

Jan

> 08: x86emul: support non-SIMD MOVRS
> 09: x86: use / "support" UDB
> 10: x86emul: support AVX512-BMM
> 
> Jan



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 15:12:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 15:12:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171421.1496427 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNYFA-0007cK-H1; Mon, 24 Nov 2025 15:12:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171421.1496427; Mon, 24 Nov 2025 15:12:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNYFA-0007cD-EI; Mon, 24 Nov 2025 15:12:44 +0000
Received: by outflank-mailman (input) for mailman id 1171421;
 Mon, 24 Nov 2025 15:12:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9kjA=6A=bounce.vates.tech=bounce-md_30504962.692473a1.v1-e298da46acbe4345b5f1dad1e68afb33@srs-se1.protection.inumbo.net>)
 id 1vNY5l-0001E9-F4
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 15:03:01 +0000
Received: from mail136-9.atl41.mandrillapp.com
 (mail136-9.atl41.mandrillapp.com [198.2.136.9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aa8e7194-c946-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 16:03:00 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-9.atl41.mandrillapp.com (Mailchimp) with ESMTP id 4dFTb61F0rzHXYlwy
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 15:02:58 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 e298da46acbe4345b5f1dad1e68afb33; Mon, 24 Nov 2025 15:02:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa8e7194-c946-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763996578; x=1764266578;
	bh=GDrz6jEcGb5OeNyozvsgDwOYd7aUCGtM/1WkfqyEd30=;
	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=pl+aIbWdkSHKB2rLKUFhCWgyGdlvASPheTcBRSuNddEDh3+DwQ0foG2BOADwi8tse
	 A0FksaqrhjVl6O7VDo6ddzJKpe1dUOMflk2UABfYU+NYR4Hrv13mTwVdggYzKo5u0W
	 zSx2eqvPSX8Yp09rvvU5KtkUZvb1sYiK2f69K5ZXZxcgGqSu29B3qJJCtATvJZIJRd
	 HIqHlOuryFCf78EZjYzeWr7JOM+jxwwFVAsCjYBAWTbE06R14zpVyPLnSRK2dYlL+H
	 ABcfG4nLPtdsPz9ZLbeIQYePTXWNoBa8iJ3qcQVHig/gwQuZzJ4iFpE6tmyI5jPvg3
	 KNPi07L/Jt5IA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763996578; x=1764257078; i=ngoc-tu.dinh@vates.tech;
	bh=GDrz6jEcGb5OeNyozvsgDwOYd7aUCGtM/1WkfqyEd30=;
	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=BpQe5boGh/kIS67hbAlR38MQQiGWnYmdOLgsxzCmNrNRiPAetidyE4wlc0egeOLlt
	 Qd6ckzkMGUQWxCvXH3UjOZCtQezQIeBymbWy7401Feoqh88EtjcIl4N4KfFdhL/ayr
	 Eo+XGERYM7MnK5xRP6gpoom9JKMeJHtwljLAFvJvL/4a0HHp8zp6963libSMQ18WYs
	 fSnxVOHxa/LLMjlmQ3V1/Mpwuuk6uAEdZfZPcY7laE32zXuWAyYBkJlvuB3euv9yHW
	 U6KfKn3ZfRlBhwa8X8Yabcv3Eb2eYhqi5bUXgkWbtG1baiYiL6xMs/VbsXsgrsr0EG
	 7RZT9N+Th4fUg==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20x86/vhpet:=20Fix=20sanitization=20of=20legacy=20IRQ=20route?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763996576074
Message-Id: <143076ee-6ade-4fe8-924a-a2b8a5af1a5f@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20251124134344.456-1-ngoc-tu.dinh@vates.tech> <8581c3ce-e0f7-41e5-aee7-cf607f8f338d@suse.com>
In-Reply-To: <8581c3ce-e0f7-41e5-aee7-cf607f8f338d@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.e298da46acbe4345b5f1dad1e68afb33?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251124:md
Date: Mon, 24 Nov 2025 15:02:57 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On 24/11/2025 15:53, Jan Beulich wrote:
> On 24.11.2025 14:43, Tu Dinh wrote:
>> When setting a timer's config register, timer_sanitize_int_route will
>> always reset the IRQ route value to what's valid corresponding to the
>> !HPET_CFG_LEGACY case. This is applied even if the HPET is set to
>> HPET_CFG_LEGACY.
>>
>> When some operating systems (e.g. Windows) try to write to a timer
>> config, they will verify and rewrite the register if the values don't
>> match what they expect. This causes an unnecessary write to HPET_Tn_CFG.
>>
>> Note, the HPET specification states that for the Tn_INT_ROUTE_CNF field:
>>
>> "If the value is not supported by this prarticular timer, then the value
>> read back will not match what is written. [...] If the LegacyReplacement
>> Route bit is set, then Timers 0 and 1 will have a different routing, and
>> this bit field has no effect for those two timers."
>>
>> Therefore, Xen should not reset timer_int_route if legacy mode is
>> enabled, regardless of what's in there.
> 
> Fixes: ec40d3fe2147 ("x86/vhpet: check that the set interrupt route is valid")
> (I think)

Yes, thanks.

> 
>> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
>> ---
>>   xen/arch/x86/hvm/hpet.c | 11 ++++++++---
>>   1 file changed, 8 insertions(+), 3 deletions(-)
>>
>> --- a/xen/arch/x86/hvm/hpet.c
>> +++ b/xen/arch/x86/hvm/hpet.c
>> @@ -48,6 +48,8 @@
>>   #define timer_is_32bit(h, n)     (timer_config(h, n) & HPET_TN_32BIT)
>>   #define hpet_enabled(h)          ((h)->hpet.config & HPET_CFG_ENABLE)
>>   #define timer_level(h, n)        (timer_config(h, n) & HPET_TN_LEVEL)
>> +#define timer_is_legacy(h, n) \
>> +    (((n) <= 1) && ((h)->hpet.config & HPET_CFG_LEGACY))
>>   
>>   #define timer_int_route(h, n)    MASK_EXTR(timer_config(h, n), HPET_TN_ROUTE)
>>   
>> @@ -244,7 +246,7 @@ static void hpet_set_timer(HPETState *h, unsigned int tn,
>>            (timer_level(h, tn) && test_bit(tn, &h->hpet.isr)) )
>>           return;
>>   
>> -    if ( !timer_int_route_valid(h, tn) )
>> +    if ( !timer_is_legacy(h, tn) && !timer_int_route_valid(h, tn) )
> 
> Seeing this and the other use together with timer_int_route_valid(),
> wouldn't timer_int_route_valid() better itself invoke the new macro?

I thought about it, but I found that it was overloading the definition 
of timer_int_route_valid a little too much. Since timer_is_legacy() is 
being used by itself later anyway, I figured it'd be better to just 
separate the two.

> 
>> @@ -379,6 +381,9 @@ static int cf_check hpet_write(
>>           h->hpet.config = hpet_fixup_reg(new_val, old_val,
>>                                           HPET_CFG_ENABLE | HPET_CFG_LEGACY);
>>   
>> +        for ( i = 0; i < HPET_TIMER_NUM; i++ )
>> +            timer_sanitize_int_route(h, i);
> 
> Strictly speaking this is needed only when HPET_CFG_LEGACY went from
> 1 to 0. Plus it's needed only on the first 2 channels, as it's only
> there where timer_sanitize_int_route() changes behavior. I'm not going
> to insist to limit it like this, but if you don't, then I'd like to ask
> for a comment here clarifying that excess work is done for simplicity's
> sake.

Agreed, I can limit it to i <= 1.

I'll prepare a v2.

> 
> Jan
> 



--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 15:15:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 15:15:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171434.1496437 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNYHs-00009j-3d; Mon, 24 Nov 2025 15:15:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171434.1496437; Mon, 24 Nov 2025 15:15:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNYHs-00009c-0x; Mon, 24 Nov 2025 15:15:32 +0000
Received: by outflank-mailman (input) for mailman id 1171434;
 Mon, 24 Nov 2025 15:15:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JWoN=6A=bounce.vates.tech=bounce-md_30504962.6924768f.v1-be97a69976e1431bad4d73e6c83dd8a0@srs-se1.protection.inumbo.net>)
 id 1vNYHq-00009U-ET
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 15:15:30 +0000
Received: from mail8.wdc04.mandrillapp.com (mail8.wdc04.mandrillapp.com
 [205.201.139.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 68d5f77d-c948-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 16:15:28 +0100 (CET)
Received: from pmta16.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail8.wdc04.mandrillapp.com (Mailchimp) with ESMTP id 4dFTsW1Xm8z3sNRHG
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 15:15:27 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 be97a69976e1431bad4d73e6c83dd8a0; Mon, 24 Nov 2025 15:15: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: 68d5f77d-c948-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1763997327; x=1764267327;
	bh=sdb4nF8xjPoi1bLfu+Y4Eb1S0OoGU8HrJP8IN24c6wc=;
	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=JAEuJUY8KqHk01fu+0fIh2P8YyddcvWfy1VzhAchL0nTAA26zT6WYo4r7sSSPKlqJ
	 Hqe2zbBXgKrV+t39tsFRNblaH2o9S0A9+XP3bXGp+K3slB8tRpSv7zxjS9Q7gxFJXl
	 dhulIyFYTAY/GE9A8ZMwPRNaFSX9Q5Hw8KMYOqJ1PV/TygB36MO7fFD0jMthPkuXIv
	 Y3bVKeps0odu3x0xKMBtkMA1cT15JBXvhbQhZGz7swYGQwsijYNeO0BJicq8cPNIbC
	 roT/n/TUrWTHebxtK7mja9pGlYb3rkanJCpQCaduP7+aloansInftBTQ78sMucH2dQ
	 izPFDnlZqhL2A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1763997327; x=1764257827; i=ngoc-tu.dinh@vates.tech;
	bh=sdb4nF8xjPoi1bLfu+Y4Eb1S0OoGU8HrJP8IN24c6wc=;
	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=ZIkQ6tsYz7mYBn5hx8a/JA8kf0u9exSJI6liwcCVP5mpdJz/chZ9tHEUsvjJmqQv/
	 3egGsY67PNa1lAcne1yXGDYNAz3TJs+Ufgso9wtfYwYWRwLl12WbxeBzB99xZPMPak
	 1n06Kyi6RsDDFJCLzJKytTlaN800EY8BjIlbtRgPC+cclJ1XA+pgDoSWxpwKYKGeru
	 p6mQa2WgqRCmZ9NYKqd8EIQjCOyNjZqw9W++SsCnSUlSdOqrC+HFDdYdVjhL+rktfu
	 EQoi3+9hhCHcQF81y1fMk+l9r82vkixB3004DsZA+qGtBCYjceSJJ31oUJS9Fp0axt
	 /+PaYrJ5pEapw==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20x86/vhpet:=20Fix=20sanitization=20of=20legacy=20IRQ=20route?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1763997326201
Message-Id: <5a64e80b-f1d5-4826-85dd-cba9e7522e4c@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20251124134344.456-1-ngoc-tu.dinh@vates.tech> <8581c3ce-e0f7-41e5-aee7-cf607f8f338d@suse.com> <143076ee-6ade-4fe8-924a-a2b8a5af1a5f@vates.tech> <98c23088-a40f-41eb-9a10-3d310cfba255@suse.com>
In-Reply-To: <98c23088-a40f-41eb-9a10-3d310cfba255@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.be97a69976e1431bad4d73e6c83dd8a0?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251124:md
Date: Mon, 24 Nov 2025 15:15:27 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On 24/11/2025 16:09, Jan Beulich wrote:
> On 24.11.2025 16:02, Tu Dinh wrote:
>> On 24/11/2025 15:53, Jan Beulich wrote:
>>> On 24.11.2025 14:43, Tu Dinh wrote:
>>>> When setting a timer's config register, timer_sanitize_int_route will
>>>> always reset the IRQ route value to what's valid corresponding to the
>>>> !HPET_CFG_LEGACY case. This is applied even if the HPET is set to
>>>> HPET_CFG_LEGACY.
>>>>
>>>> When some operating systems (e.g. Windows) try to write to a timer
>>>> config, they will verify and rewrite the register if the values don't
>>>> match what they expect. This causes an unnecessary write to HPET_Tn_CFG.
>>>>
>>>> Note, the HPET specification states that for the Tn_INT_ROUTE_CNF field:
>>>>
>>>> "If the value is not supported by this prarticular timer, then the value
>>>> read back will not match what is written. [...] If the LegacyReplacement
>>>> Route bit is set, then Timers 0 and 1 will have a different routing, and
>>>> this bit field has no effect for those two timers."
> 
> According to this, ...
> 
>>>> Therefore, Xen should not reset timer_int_route if legacy mode is
>>>> enabled, regardless of what's in there.
>>>
>>> Fixes: ec40d3fe2147 ("x86/vhpet: check that the set interrupt route is valid")
>>> (I think)
>>
>> Yes, thanks.
>>
>>>
>>>> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
>>>> ---
>>>>    xen/arch/x86/hvm/hpet.c | 11 ++++++++---
>>>>    1 file changed, 8 insertions(+), 3 deletions(-)
>>>>
>>>> --- a/xen/arch/x86/hvm/hpet.c
>>>> +++ b/xen/arch/x86/hvm/hpet.c
>>>> @@ -48,6 +48,8 @@
>>>>    #define timer_is_32bit(h, n)     (timer_config(h, n) & HPET_TN_32BIT)
>>>>    #define hpet_enabled(h)          ((h)->hpet.config & HPET_CFG_ENABLE)
>>>>    #define timer_level(h, n)        (timer_config(h, n) & HPET_TN_LEVEL)
>>>> +#define timer_is_legacy(h, n) \
>>>> +    (((n) <= 1) && ((h)->hpet.config & HPET_CFG_LEGACY))
>>>>    
>>>>    #define timer_int_route(h, n)    MASK_EXTR(timer_config(h, n), HPET_TN_ROUTE)
>>>>    
>>>> @@ -244,7 +246,7 @@ static void hpet_set_timer(HPETState *h, unsigned int tn,
>>>>             (timer_level(h, tn) && test_bit(tn, &h->hpet.isr)) )
>>>>            return;
>>>>    
>>>> -    if ( !timer_int_route_valid(h, tn) )
>>>> +    if ( !timer_is_legacy(h, tn) && !timer_int_route_valid(h, tn) )
>>>
>>> Seeing this and the other use together with timer_int_route_valid(),
>>> wouldn't timer_int_route_valid() better itself invoke the new macro?
>>
>> I thought about it, but I found that it was overloading the definition
>> of timer_int_route_valid a little too much. Since timer_is_legacy() is
>> being used by itself later anyway, I figured it'd be better to just
>> separate the two.
> 
> ... the route setting is valid (because of being ignored) when in legacy
> mode. Hence why I think the check wants integrating there.

Okay, I can offload the check there.

> 
>>>> @@ -379,6 +381,9 @@ static int cf_check hpet_write(
>>>>            h->hpet.config = hpet_fixup_reg(new_val, old_val,
>>>>                                            HPET_CFG_ENABLE | HPET_CFG_LEGACY);
>>>>    
>>>> +        for ( i = 0; i < HPET_TIMER_NUM; i++ )
>>>> +            timer_sanitize_int_route(h, i);
>>>
>>> Strictly speaking this is needed only when HPET_CFG_LEGACY went from
>>> 1 to 0. Plus it's needed only on the first 2 channels, as it's only
>>> there where timer_sanitize_int_route() changes behavior. I'm not going
>>> to insist to limit it like this, but if you don't, then I'd like to ask
>>> for a comment here clarifying that excess work is done for simplicity's
>>> sake.
>>
>> Agreed, I can limit it to i <= 1.
> 
> May I ask that you avoid such open-coding and use timer_is_legacy(h, i) as
> the loop continuation expression instead?

That wouldn't work as timer_is_legacy would check for hpet.config & 
HPET_CFG_LEGACY, whereas we want to sanitize in the opposite case, i.e. 
!(hpet.config & HPET_CFG_LEGACY).

It's probably better to use i < HPET_TIMER_NUM and add a comment as you 
suggested.

> 
> Jan



--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 15:17:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 15:17:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171443.1496448 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNYK7-0000hR-Gu; Mon, 24 Nov 2025 15:17:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171443.1496448; Mon, 24 Nov 2025 15:17:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNYK7-0000hK-CN; Mon, 24 Nov 2025 15:17:51 +0000
Received: by outflank-mailman (input) for mailman id 1171443;
 Mon, 24 Nov 2025 15:17:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNYK5-0000hE-N3
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 15:17:49 +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 bbc26e03-c948-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 16:17:47 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-477632b0621so30222165e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 07:17: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-477a96aafb3sm154558105e9.0.2025.11.24.07.17.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 07:17: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: bbc26e03-c948-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763997467; x=1764602267; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ArqHz0sodrN9/1XZkWAT8LtFl/ca2rGUTkGL28ifyJI=;
        b=CfPI5KD2DR3lBPwqX5q/9S2HBBGjwjEodUjRefJEGztXSJ8io3MnMBUoqR1yUfJPxI
         XQlyH+ARetLIztE+7YZRSbqKRaVhy0x8GBTYYwMfJkqfoZLorZCHwxlo/V3yvpZeDZ8V
         loDXFvEzRnIWA/QWW7RpmjbeTyRsJ5/eozGwgdyHpMZ25rhgclFh4Ck8wrOINMSjcNb+
         n6ftBcp26OGDq1YI1ryR5NqAvY7dQwlYSxOlSim+XbAW8tordiRCPD/UDgei/IwHNbxA
         XOyYWXLNdw3WyT2Hr64i88mbWgCyRkK+2ia8LZTqC56XGFsDiA01/qQP72i37UHgJs4H
         zh1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763997467; x=1764602267;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ArqHz0sodrN9/1XZkWAT8LtFl/ca2rGUTkGL28ifyJI=;
        b=tJgqLfpMmB+RhjhnkOC2aJQWpGDrqrF/kT7DhtAx5Hy+h3NCO8128rMgtU/7NiVr3k
         R31fu+COPn1bJyQqMMtTDH10E9IDGrIi/BNQCbuBfmKhD7NC67vZjjx5/mXioeZ/uSF3
         2vLHs93wkeyC7S3vb2R0yeAC5T/3LUPQwvNJ5cikPBv1xuhyjl8Y2IYOVFgSptCWnvTm
         wvhv+o5eAiok563W9xwt99m9bN4FgDH2yIqOj8XQdad8gye4Jxg9U0EjFFDtxzT8GGiq
         ImaX/q6bJ4iHG8JNfqoae9frM6Q26LdiTduD8U7danNAsbNJbJJfeRTeXK3FIg8S/hdi
         yy/g==
X-Forwarded-Encrypted: i=1; AJvYcCVQ7OIqgrVP50yTmdlRPrZMYjf2PUTfIHjQdQEJYLevRDmQ5aBliG+ZqDIbLyIuN84l4rJu5LKz2L4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzgpehka9ES6rXWn4blK94Il29zV7NbGi4p41J2qKY5m/NsCFMy
	lPDlgUFuQy5EIs5w8uskIMX5klP86Q0p4zZs5RolrIZD2L6vLNvbpI6m3WxvPsej+A==
X-Gm-Gg: ASbGncv1RDJU84wWndSf+gxGUbuAzI6jwjUSHY9/FQ0LHWqdobH/zkJcoGR8p/Md2h2
	lF588FxPWvcpLCLsTRSGFcrfDrd69djmwthtFnV7Ag5Wt4r1lQ2eM8GUPzAPLsmK4pfdAexLHdr
	BVgo4TLMKPtreuA5QBVaj3Xi+r0BpYAAjfQW+TMEihtZT/G8OcX1gyGNNOF5uAk5fecX/ZTp6+a
	weRcb0EgRevNjc5b7gp5JGq3ZdsEuDzcwTguLJ4iGubhv9ytPQTCLv4X62v0QwwjjcyiQDSVyYS
	RS71CRb/szJ0obYzCrOd3wgfbag+d3KYPqWJ32u8o6qIjG8dmnBqqVNQ1Ba39ONsDipdfLXuLMe
	FkyySA22vTNCH4ZVjZvoPvNQ2I4EKIr0rjIfFtvpubgUUJmn4dYGKeuB5EblHrW8F+waoiiCaBw
	MltsmT0/Fz3muxpuw1+Aio6DtaYujRGhSmqVzvyBi0oHzfO0RiTJTEMqO11lIUWyzK0TdixcogA
	+c=
X-Google-Smtp-Source: AGHT+IHSFeAj6rchL5t1MpwSOl64/lUcOBm5pSneRS9MbNKPmUwXlOB9ujuwOn+G3Ib516zpDjttug==
X-Received: by 2002:a05:600c:a07:b0:477:a219:cdb7 with SMTP id 5b1f17b1804b1-477c10523aamr151717335e9.0.1763997466927;
        Mon, 24 Nov 2025 07:17:46 -0800 (PST)
Message-ID: <7a206e59-9ab1-49b9-a2af-dbd380566962@suse.com>
Date: Mon, 24 Nov 2025 16:17:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/intel: Resync intel-family.h
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Kevin Lampis <kevin.lampis@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251124150837.654354-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: <20251124150837.654354-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2025 16:08, Andrew Cooper wrote:
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> I'm unsure about the Intel CPU Core types, but it's probably better to keep
> them than strip them from our copy.

Did you mean "pre-Core" here? In any event, as we're meaning to stay in sync,
we can as well do so properly.

> @@ -152,9 +174,9 @@
>  #define INTEL_ATOM_SILVERMONT		IFM(6, 0x37) /* Bay Trail, Valleyview */
>  #define INTEL_ATOM_SILVERMONT_D		IFM(6, 0x4D) /* Avaton, Rangely */
>  #define INTEL_ATOM_SILVERMONT_MID	IFM(6, 0x4A) /* Merriefield */
> +#define INTEL_ATOM_SILVERMONT_MID2	IFM(6, 0x5A) /* Anniedale */
>  
>  #define INTEL_ATOM_AIRMONT		IFM(6, 0x4C) /* Cherry Trail, Braswell */
> -#define INTEL_ATOM_AIRMONT_MID		IFM(6, 0x5A) /* Moorefield */

Interesting, there's one entry changing the group it belongs to. We don't
use the constant anywhere, so right now this is purely a cosmetic change.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 15:27:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 15:27:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171461.1496473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNYTc-0003AQ-Eq; Mon, 24 Nov 2025 15:27:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171461.1496473; Mon, 24 Nov 2025 15: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 1vNYTc-0003AJ-Bn; Mon, 24 Nov 2025 15:27:40 +0000
Received: by outflank-mailman (input) for mailman id 1171461;
 Mon, 24 Nov 2025 15:27: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNYTa-0003AD-6u
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 15:27:38 +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 192930e6-c94a-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 16:27:33 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-477aa218f20so27742815e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 07: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
 5b1f17b1804b1-477bf22dfcesm204183895e9.13.2025.11.24.07.27.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 07: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: 192930e6-c94a-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1763998053; x=1764602853; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yC/bZLu+EIxdCkEcr1l6dhxqmfTALUd18Ae0pypNCPw=;
        b=O2Ot9saf8IaDdqt8aui+45wIjA8dB4yriWhYZZBNDgwIo5eTlim1lytKRHCLSFxb20
         zhB2FSawivV5vBoYulxZhArQg0tRco7JmpAouSICIA5pYDYN+8gVJQM7HbEALjjQiKWF
         bEpN8IAByvg+ttHJ6kmyTaE7b/a96ZWGs2G/aGZS10/dfuinNS3LE4MO0H0Svz9nFbD4
         IK4Nx/jnudVgeycOc6VlmcWAJw7jvb1pSw81RGqoyAjyYmcBScKT7cAddQch1SAQUt59
         jwpTvbUDSQ5+2hAVGm3z8OQ9ZWHYAY3wcHd5u2tCb7JQvN4CD7HWSaLkUnWNJ5R5yQhD
         xCwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1763998053; x=1764602853;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yC/bZLu+EIxdCkEcr1l6dhxqmfTALUd18Ae0pypNCPw=;
        b=F/2TwQ63F+GzKTum4A7ewwX+evg9ILm+Q4iEB6UQONxp3EJEskJV5vMeMGzA4cRBhM
         Jb0i/encqVX/bGlmttdJLBoFT2PDKEEv6cw+1a/9ueoBujZLQ8OUKKppoljKr21t2lzY
         KBu/xGVAeg5FvHokUbPrgCofvCAeL2tJVzaQkJ9FC6ZAfuVt8jV4UsAiTgNAcR27z9oM
         4pPcVcnwsLsMyfgWcjNfw4xinqytX0GfNgRBI5jcwAgYNGrRWMWEX7xLY8Wb77NSr/hq
         hIvg1ED0qunEK28DwGfglXVGl9ikRRCiltwmGpfYUDIM2rXR2xZ8XY8IwPyBgKe3M+ld
         vWdg==
X-Forwarded-Encrypted: i=1; AJvYcCVFAkAZyKvBU/ySu94H3ttoCwhWZNpwUx/bEqc+W4VqsPjwlEnV/Fu0zNIH19x58tP7+7AYtRMdAfE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzseC5uJpBdB5XQQSGRiis5C4Lkf5QpOdRme/Piayby1WHKuaK6
	sqk54HT/OEYG/r3H0RJdOzHcdUj4ZE2Fmh96DZ1qiqb1EIFuClNkm/1GY9pEjTl3Pg==
X-Gm-Gg: ASbGncsiWHO0i4rWuqqQ/+pqOeqAcu3Q9zaA1Of9LfcOvCoFxh28+PSkdvX4vZJaGdW
	I3w40n+o7fa+Yjmbx1byrw+nD+VldvAKkd7GiEskRPD0sSw6Q6QoJigu9pGuRZt37/hbWF1UL10
	2A2jLswJEbzFxn1G79P/gT71W6Ws6zn6MVKZdHHf3epyc+fo84diy05U4F/39XCx9wbCnRcppaB
	/6SoOE4ZSCJJQZn6VfgJnfxxJHwFiEd9s3faGpu5t7Q/c5SQkOZFV4w+s6m24o9H2iYW/jfevuZ
	c4JTS/c1AvBpSqYR6uonxAyIq4TpPlfvBrdHYCJpKOlLUGrRZNSDx9hPR8cLrE46qcaIUnqemTv
	7uN9OO2G446WV2B4sNhwoPQlqm3ySUB29aGHfVIs1ZgVsXcWjpLucm7/4CnZ5g8HhFLzS8JheRb
	XAfq8s+Lty8/GSFL52b/oUyP4uE1wv6J5S8qBwass+4DVyFQcDGXeVbykse3QbTRxmFtQcOSPB+
	4g=
X-Google-Smtp-Source: AGHT+IHBM//D9k1OavE524VofWHnJt08S27ZWc4T7ADWjVurht+kS7pHtF1pVJ4BSBbsXCJBdfBKSQ==
X-Received: by 2002:a05:600c:190a:b0:477:76cb:4812 with SMTP id 5b1f17b1804b1-477c00ef528mr153973365e9.0.1763998052959;
        Mon, 24 Nov 2025 07:27:32 -0800 (PST)
Message-ID: <610bc497-4a83-49c5-bd1d-8e63794c62f3@suse.com>
Date: Mon, 24 Nov 2025 16:27:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/4] build: add make macro for making file from file.in
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251121132332.23514-1-jgross@suse.com>
 <20251121132332.23514-2-jgross@suse.com>
 <d34e3e86-c51a-49b3-8b46-140526755f0f@suse.com>
 <826037a5-dacf-434f-90d9-8f12e61bdd6e@suse.com>
 <0ece9df6-8a04-4ffa-bcf4-d7a3fd4bbef4@suse.com>
 <bf7e1a66-1696-477a-bdef-79b08df0b57c@suse.com>
 <bbcaf4f2-c52e-4b3e-ab6a-ca5020a8b786@suse.com>
 <a593e8cb-fa56-4301-a7da-ca4b51dfab9a@suse.com>
 <39df58e5-6b04-45fb-bd25-8ebc8972a7ed@suse.com>
 <158df666-9359-4fe8-976b-f194a1fb317b@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: <158df666-9359-4fe8-976b-f194a1fb317b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.11.2025 15:58, JÃ¼rgen GroÃŸ wrote:
> On 24.11.25 15:30, Jan Beulich wrote:
>> On 24.11.2025 13:45, JÃ¼rgen GroÃŸ wrote:
>>> On 24.11.25 13:18, Jan Beulich wrote:
>>>> On 24.11.2025 12:27, Juergen Gross wrote:
>>>>> On 24.11.25 12:15, Jan Beulich wrote:
>>>>>> On 24.11.2025 12:05, JÃ¼rgen GroÃŸ wrote:
>>>>>>> On 24.11.25 11:41, Jan Beulich wrote:
>>>>>>>> On 21.11.2025 14:23, Juergen Gross wrote:
>>>>>>>>> --- a/Config.mk
>>>>>>>>> +++ b/Config.mk
>>>>>>>>> @@ -159,6 +159,19 @@ define move-if-changed
>>>>>>>>>      	if ! cmp -s $(1) $(2); then mv -f $(1) $(2); else rm -f $(1); fi
>>>>>>>>>      endef
>>>>>>>>>      
>>>>>>>>> +PATH_FILES := Paths
>>>>>>>>> +INC_FILES = $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f).mk)
>>>>>>>>> +
>>>>>>>>> +include $(INC_FILES)
>>>>>>>>> +
>>>>>>>>> +BUILD_MAKE_VARS = $(foreach f, $(PATH_FILES), $(shell awk '$$2 == ":=" { print $$1; }' $(XEN_ROOT)/config/$(f).mk.in))
>>>>>>>>
>>>>>>>> Feels like my prior comments weren't really addressed. I continue to think that
>>>>>>>> none of the above is part of what the subject says.
>>>>>>>
>>>>>>> I really don't understand your concern here.
>>>>>>>
>>>>>>> For replacing the @markers@ make needs to know what should be replaced.
>>>>>>> So it needs to scan the files containing the markers and gather them.
>>>>>>> This is what is done above.
>>>>>>>
>>>>>>> In the final macro below the replacements are done then. How would you
>>>>>>> handle that?
>>>>>>
>>>>>> By passing (another) argument to the macro, for example. As indicated
>>>>>> earlier, different sub-trees may have different places where these
>>>>>> definitions live, and they would want to be able to pass that in
>>>>>> (ideally without needing to put this in a common part of the tree).
>>>>>
>>>>> I don't get what you want to pass in additionally.
>>>>>
>>>>> I've already changed the macro and the Makefiles to be able to add another
>>>>> marker file to the PATH_FILES variable. What else do you need?
>>>>
>>>> Well, that's simply an odd way of passing a parameter. Plus, the extra file
>>>
>>> We do that all the times, e.g. by "OBJ-y += ..."
>>
>> That's sufficiently different though: Accumulating the set of objects to
>> produce is kind of naturally done that way.
>>
>>>> won't affect INC_FILES, or more precisely its use in the include directive
>>>> in patch 1: At least aiui, $(INC_FILES) is expanded at the point when the
>>>> directive is processed. Hence why you need to open-code another include
>>>> there.
>>>
>>> The INC_FILES variable is mostly needed for specifying the dependence of
>>> the generated files on the files mentioned in PATH_FILES.
>>>
>>> It might be better to just have "-include $(XEN_ROOT/config/Paths.mk" in
>>> Config.mk, matching the setting of PATH_FILES there.
>>
>> Looking at this the 3rd or 4th time now, I still don't quite get why the
>> include is needed in the first place. You don't mean to use (right here)
>> any of the settings the file produces, do you? Really, as also mentioned
>> by Andrew, you really can't, because in a pure hypervisor build the file
>> wouldn't have been made, as no configure would have run.
>>
>> If I'm not mistaken, you really need those values only at the time you
>> execute the rule. And I'm worried of these definitions to collide with
>> something else. Hence one desire would be to limit the scope of these
>> variables to just the new rule. Maybe something like
>>
>> # Replace @xxx@ markers in $(1).in with $(xxx) variable contents, write to $(1)
>> define apply-build-vars
>> $(1): $$(shell grep -h := $$(wildcard $$(INC_FILES)) /dev/null)
>> $(1): $(1).in $$(INC_FILES)
>> 	sed $$(foreach v, $$(BUILD_MAKE_VARS), -e 's#@$$(v)@#$$($$(v))#g') <$$< >$$@
>> endef
>>
>> could work? (This likely depends on INC_FILES to only list files which
>> are configure generated, i.e. wouldn't be updated by a make rule.)
> 
> And who is setting BUILD_MAKE_VARS? You didn't think the snippet doing that
> should be there.

I didn't mean to replace how that's done (albeit, as indicated earlier, I
think it wants doing differently). Hence I've only shown the sketch of the
updated macro wrt the specific aspect above. (Or am I misunderstanding
your reply?)

> And TBH: any setting from Paths.mk colliding with something else would
> _really_ be worrying.

No, why? Those settings should all be fine to use in e.g. the hypervisor
build system, for whatever purpose.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 15:44:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 15:44:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171471.1496482 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNYjv-0006rA-Pu; Mon, 24 Nov 2025 15:44:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171471.1496482; Mon, 24 Nov 2025 15:44:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNYjv-0006r3-Mx; Mon, 24 Nov 2025 15:44:31 +0000
Received: by outflank-mailman (input) for mailman id 1171471;
 Mon, 24 Nov 2025 15:44:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=h9jE=6A=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vNYjv-0006qx-0b
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 15:44:31 +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 7633efca-c94c-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 16:44:30 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MN2PR03MB4926.namprd03.prod.outlook.com (2603:10b6:208:1b1::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.17; Mon, 24 Nov
 2025 15:44:26 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.016; Mon, 24 Nov 2025
 15:44: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: 7633efca-c94c-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lgzi1ARaXN97f61rtrFpOzQon/9hCrfyc4q+9wk4COSt0M80w5InyK0/xq+uIZtcphSMvPZxXZbS3gKixRXMfLmzZ4CekgEdzvY5V4CEGtDAET0YCwf5oN/NrK/2CRnKsDMqBl+/jm89YEHdC/wUT9QVVt2feCVoU6HNlakzyRNKtd/IretWW5bmDhObDJyw2hhdUysoXxQIqBAP+XeitFrL1JaktKwCeCssAgM2bUodb4nbtC5IZ+iZw7kq1xuqodrJIcUPOH/CQnBYQ8ITc6FZhqmCJIcBaQcOep2g9d6TUeptJfuq81FW0R/229d9dhYfUZ+dPD4dy0ZTlp8Wmg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9s9ydKkgVoCIdlRXbpEUY7dHNLoTCOWwZ3cXCoDh7b8=;
 b=Y3YqDJt6ClTxbY6PnC4fgae/4jqDM7KnVszH9Wi1eROmNDCvMaIeeCtqpyM3svKC2WixuGVYsjRW69oEFJd4PuLx90CtmGpGIENeuv4mT/YwmqG8EqW0zm1d/Y/SMHA0U9MXuC3/B6xT5lZ1wA8qX9CdRdjfspdUhReEPJml+tiE//rDE9t9mU2XrVVG6BJg3omlj6pO+XiRNtoM/5rDWRmrpl0ZMxYgDAaYwSlIYvGmZoAfDf/Az+0FHPPBJo6SRN0Riwh10WRAAddiPuSk6bOwoVoA8ZLQ4mNUwgFN0ZrcFdcV5FEeaLu1iGDs37Kb1SeuYfngCCjkselwNWl/eg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9s9ydKkgVoCIdlRXbpEUY7dHNLoTCOWwZ3cXCoDh7b8=;
 b=hxwqmrNz1c0yl1DVrl3MR6kW5+1THdIWh0xYtHCp0R3wKlNTaQVG3CavSOfUdmYnT5HYmt24h60yPWL2DSU+WRhM4egQkOJrmhVP4+SBaQ1kYQnaAunwYjXYYm+kvUtjc3i4NfLRMVznWdmkcmN+bgJxhp72ccf5pUbc0AohwyE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <87970fbb-6a1a-44f7-aef1-1e9aa7bffd09@citrix.com>
Date: Mon, 24 Nov 2025 15:44:22 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/intel: Resync intel-family.h
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Kevin Lampis <kevin.lampis@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251124150837.654354-1-andrew.cooper3@citrix.com>
 <7a206e59-9ab1-49b9-a2af-dbd380566962@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <7a206e59-9ab1-49b9-a2af-dbd380566962@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0624.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:294::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_|MN2PR03MB4926:EE_
X-MS-Office365-Filtering-Correlation-Id: 0ff4062e-e51a-4fb1-7ea5-08de2b7058a7
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?QUNPeTg4NTUzeE1rTm5USkE3N0NvakZJTTlIbXZoaU9CdjRUejB5Lys1RmU1?=
 =?utf-8?B?NklHMU1HQ3ljT0luTHYyYVpxellqTytvVHdKVUVqSll5MVdqYUtQakJtVHM4?=
 =?utf-8?B?ZU0rQzJudFpYRk9DczdVWVJsdGdxVWtpMFQ3YnpDQjZFMFFDT2UvbnI5QUR1?=
 =?utf-8?B?MmNxZk5UdGdsMUFPcEkwTXp6eWNicjc4TC8wOW4wWEFqUUIxZFc4MDVFdm5S?=
 =?utf-8?B?eGpJRi9heDhNK3psQ3l0dExwc2hhaXJ1amppM1phWG5obHYzYTNqM2tiWWs4?=
 =?utf-8?B?ZjhuRGRTVmh1dkFDaXN6RlYxRHFHdTVGVUFBVHpGUTdaWG9EV2l6ZU9FQWVy?=
 =?utf-8?B?SkRxcnlRdlljNWUvK1c5a0d6bC9qNTNEZ0VRdjVsc2NzR0xDY1BvNUg3MkRz?=
 =?utf-8?B?N0FSazArSFlPTjFDeUVIRWVmVWVxc3BJQW5ZLy9NejF0bDBiRWRjNXFkYVNN?=
 =?utf-8?B?Tm5GQS9aZFZLNU5nMjhFcjZ2Sm1VOGJIdjdpQnRwZUtqd0VnUW91TEFhcmc3?=
 =?utf-8?B?d2wyaVJaL01ZcEVYYkZadVpuMkhma0trbEN6a05JMGVRNUV2SGQrRWdyTnVL?=
 =?utf-8?B?czFoVWlIM3BCL3B6bHYwQVpSTWxnc0RVUHQ3Q1ErTnZGU1hLN2VFc0RaQkRB?=
 =?utf-8?B?L1F1Zmw1WlFKRmlaR2tUUjVFMm5iM254MUdNVUdKTDQxb08wclpEaUc5ZGhM?=
 =?utf-8?B?MkN0TnhRQ3hlMkdSQjlpUkxXN0R1OWpTc3BoU0pKSlc3ZlFSMm5jSmRpTUNj?=
 =?utf-8?B?YzczWlV3NHNKTnFyVUpwUVlwWVF6L1A1MHNHdURUUld6ZG1UWXJTSmNhYThh?=
 =?utf-8?B?U05GclpDVldjSTJiQzcyRExwa3owV1QyNk01Z0twK0ZRbUl2YkxmekNRV0JG?=
 =?utf-8?B?RjRSYVZvbCtsK29jOVRmbG1ETk1DMnVsSHpiTFh6Zjk2aExueDZ5NDM3d3hx?=
 =?utf-8?B?QWtJOUw3YVhtb0dKd1JpRjE0R09vYTNZMTFuZDN2TitFdlBESGpSZ0s5VkN2?=
 =?utf-8?B?YjRIc1hSd2VrVDNUUkYwaW14OEtENURoRGgvZmU0S0l3YUs3RTRmalZOV29n?=
 =?utf-8?B?eWw0WXh6MmdoeFlNQ0IxUEhMOVdwdTA5SmxtbE54NFZtR1NLbHNWN2NSV2w5?=
 =?utf-8?B?Mk5NR2NKU3VmTkFlVk5nNExZZERZRUxwNWQwM05VVXhPSDJLTjJUMDlKK09J?=
 =?utf-8?B?TDlaMngxdmpNbnIyeGI0ajNUUURVOWUwNzZkdDV6OTgydDJIME1JWVdvVStT?=
 =?utf-8?B?cWdVamVNUlJTdWFrKzlNM3VROXVjWXZiVjI4ajhIN015Rjhva0NFTi85dEpY?=
 =?utf-8?B?QS9RQzJWT0Z4WHQxN1B0ejNKWFd3bmJ1ekFCTXFncXZjZkVQdFhoeTNlOS9x?=
 =?utf-8?B?RGIzRWg3UGREZEx3SXVLZXhzMmhFQVp4SHRhWnFGSklHTkt2WGp6a01LazEv?=
 =?utf-8?B?MitRRkZJYU5hUE1qRmZSZDR6VnA4akpPc0ZWblpiMjF4Z3BVZWoySm5xT2hm?=
 =?utf-8?B?VWkrbUFzWGpEQVBuNWZJckpZUUJ1V0lZeCtEUCsyc25Bby9jUi9QKzRMWE1s?=
 =?utf-8?B?eXBERG5WK0VJRkhuQUdFS1lxWmNPWStGKzRSVit1TWdYdGJyemxzNS9hSjBI?=
 =?utf-8?B?aE9YOENMYnNEbTJibUg2cDVaZC9IenpRbm43WGVlYnUzR0FiajJmL0liTWhY?=
 =?utf-8?B?VWxZTTVXM2NNVnpMMkhBSHVzR2VvZ29FdVF2N29uM3BIdVNFdnV1M0ZteDA4?=
 =?utf-8?B?ZCtsTW90ZERycEZxbm9qQWVqUGdzRWR2TnJHcDgzZ2Fib0s2dmxOY05uRjEv?=
 =?utf-8?B?c2xYVS94Nisrd29URkVzZlg2bVNRL0NXMDF6UFBxc1R3aVpoNi9PK2tsRGFG?=
 =?utf-8?B?NERuSGxwYllJZ0N1b2lqMFh0UVJLU0ZNUFF4L1dISGREcWk4MEhBZmM0Smsv?=
 =?utf-8?Q?yG/kWzwIvawhaCFoWKksT1UZz1WHt1RZ?=
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?Sk9UMWVzVDFCelRkS2JPZmF5QzFIVzFSZENudUNqdVZRNENLYTRFMFJHajh5?=
 =?utf-8?B?QkdVVTJoc0JGdEdwT0FKaG1kbTdzREJhaVRuTnY5WFJ6dGhuOEtnUnVQVC9M?=
 =?utf-8?B?ZkJlY2pTYlZIT1lNS3ZTTzQ4MTgyekhiNnh3TlVCdUxWTm1RNHFMKzIyNjRr?=
 =?utf-8?B?THRMOGNMRENrd0pzSnIweW12a0s0bzV0R1lsQkpMRFprU21KUG1ENXNkdnE2?=
 =?utf-8?B?dXlxUVZRMWJIMUJaNFM0eHFRRUVGSWFLYWdKNm5rRDU5aEkwcHRYN2ZoWWU5?=
 =?utf-8?B?c1FhZnF1Y3MwdTZhd3JZcjUxd0FPUTBLTS9sMHdrSDRBZ0VzNXRyQ0pqNkxR?=
 =?utf-8?B?Q2hCdStrK211SlBWNHI3TmtDKytWaTlCVWl5QnUzcE9FeUw5OW9TWHhMMm4r?=
 =?utf-8?B?WFpFOE5ZZkZSR1Q3WTQreTVPUzJEYVErMk1TWGhJN3RiQWRwczFtYXBjZGtj?=
 =?utf-8?B?VEVNR29mbWwxWHNVZEo2YitUN3krS3ZXc2hyRm1YNldDczdidXBQd0tQVmdQ?=
 =?utf-8?B?Vyt1NTUrMDlFMG0yR1ByalhlMm80YUNrbElXK3VEQmJOajE1TDBvK3FrQXR6?=
 =?utf-8?B?TEh5TVJmKzhLdVZGN3FnZ043bDJNMFZNb1hJVXR4UXZsV1pZZlpTbTBtU09w?=
 =?utf-8?B?T2p5NGJWNE16QnZsVEdiWHAzdVhHandnYlAvK2szN3c1YTNZR29CNXNjaXl3?=
 =?utf-8?B?WkxaY0xlLzlrUVpabUxRTzQ5ZlhRNnpGODc2NEFlY2grdWVXTlZuNElkWUxX?=
 =?utf-8?B?WEErbDQ3Tmw0dHpLcDcrcmhQTG8yZGY4a3ZuTEhkUjFheUZEdUIzdEorN1gy?=
 =?utf-8?B?cmRrQU9PZ1NyNTdkb0ZsTmhZM29URTl0YkhMREI5Rmx5TlBsRkc4bHplWW5R?=
 =?utf-8?B?akFteVNVc2IrMGdZanp4MWdGemJjdW05OFpQWk4vREwrdkM1MGVvaDFBRUN6?=
 =?utf-8?B?NTVTOXVacTlDNGhjVEN6enh1L25jdG1LSURQUUVQYXluR2Q5Q1AyU3FMVnlu?=
 =?utf-8?B?WkRIWk5iY1crRll4MklMazBmNlRScFV4SEMxK1p5di9OaVN3WlY1dVZJZS9C?=
 =?utf-8?B?Qmh5Tm5pYWkxeW5ZQUJBMVQvckExZGJ5dzR4elJsWUM4YnBHR2RtRTZvL3Rk?=
 =?utf-8?B?RFVJMUhBK05YLzdrVUVEU3Q2OTJyVkpHbzI1MGdWNG8wWVRVM280NVNoV0JD?=
 =?utf-8?B?RXkzQWYzRjNnaFgrL0Zic1VpSWFHN2lFaHBzdHdHZmQvbHNJZGRONzE0ZDBN?=
 =?utf-8?B?UjkzQ0ZjYVFDeHpNc1k3QjVrYUZZUlNwVDR0N2Rsb3J0eXVRanJoaWRad3Jn?=
 =?utf-8?B?R0p3TGprazlPdHAzSXZZbG9lMGhabEdFTVA5Z0FSRzNCSHBCWEh0NXg0a0M2?=
 =?utf-8?B?anJ5MGF0S3RKekZqNDBDMmZaek5EMkduREIrM3BjcU1kVVczTmoyUTVNTmpO?=
 =?utf-8?B?NUh4NzhTdHpqM0pML0dzQzRiU2hVZmdLRjB5UlcvN1N4K2lzSGpNalFxR3py?=
 =?utf-8?B?dmFDRThJUlU1Um5MYVJCTklpb3hPRXdCRDBNZmNvcXJKY2F4UUt5T3dvekFG?=
 =?utf-8?B?L3hPVFMrSkJ4bWtEUTA0U2RlUUVZT201Wm5jd2l6MHFwOXBNM3V2US9kTVhO?=
 =?utf-8?B?MDlxRlhBYXYvdFlsNmVsN08yZHJ2MXptOHI0OC9sOGJkaU5DZFVDeFVzdU5S?=
 =?utf-8?B?bVoyeEFCeUEyU2toQnVMU0J5eFkybm9tVnNhcjk4MVdFbDg0ZmlnWDFldkM3?=
 =?utf-8?B?UTNsVlNTekd3dExFZ05XSWhYV3ptSzdBV2Q2bGNvaFQrYm15ZTlCZTM2dVBo?=
 =?utf-8?B?S3luc1hzbGhCbE5KV2tSTVlzcHVuVlNuS3hDRTIyL3ZJV2VIRDExRlJOYTAz?=
 =?utf-8?B?cXNhcWZHSDZGd2xuSHNnYTJSeDRTd3VtNGExTW8yNEdnT09JOVpiTHhqSDFj?=
 =?utf-8?B?MnByVGdHQkdPdDVLQ0lmc21OT3J6dFFEbVRtTUREUk9XcU5iVnV6L0xSL0hE?=
 =?utf-8?B?T0RjN3JkVy95TXlENzYvczNrMEdiSXE2VkZwRDNhN2lBQ3FQd0NvN21abURJ?=
 =?utf-8?B?eHRIU2ZJWE56b2VJR1RPSzRrVHNxQU00MURoUVgvV2lQK2Y5TmdEQ25rM3ky?=
 =?utf-8?B?N2RHMUtlY2xFa211MVBnSUdzdXM0UFBIU2ZnNWZObEpQeEdBWXFxQzQ0UEZh?=
 =?utf-8?B?RWc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0ff4062e-e51a-4fb1-7ea5-08de2b7058a7
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2025 15:44:25.7691
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: NeYZFPTRuVlxjRlpdX8l8qUaXVvDBsy2skHrtkpZTdPzGZlASQFa5Imw/iJG/fWQPu2o5XQurg7aRHtWzNuOwMLtJ1JHbL6Gzz26lTJSpDg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB4926

On 24/11/2025 3:17 pm, Jan Beulich wrote:
> On 24.11.2025 16:08, Andrew Cooper wrote:
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks.

>
>> I'm unsure about the Intel CPU Core types, but it's probably better to keep
>> them than strip them from our copy.
> Did you mean "pre-Core" here? In any event, as we're meaning to stay in sync,
> we can as well do so properly.

No, I mean the enum's at the bottom.

>
>> @@ -152,9 +174,9 @@
>>  #define INTEL_ATOM_SILVERMONT		IFM(6, 0x37) /* Bay Trail, Valleyview */
>>  #define INTEL_ATOM_SILVERMONT_D		IFM(6, 0x4D) /* Avaton, Rangely */
>>  #define INTEL_ATOM_SILVERMONT_MID	IFM(6, 0x4A) /* Merriefield */
>> +#define INTEL_ATOM_SILVERMONT_MID2	IFM(6, 0x5A) /* Anniedale */
>>  
>>  #define INTEL_ATOM_AIRMONT		IFM(6, 0x4C) /* Cherry Trail, Braswell */
>> -#define INTEL_ATOM_AIRMONT_MID		IFM(6, 0x5A) /* Moorefield */
> Interesting, there's one entry changing the group it belongs to. We don't
> use the constant anywhere, so right now this is purely a cosmetic change.

Christian did some archaeology, and concluded that it was misclassified
originally.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 15:58:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 15:58:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171484.1496494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNYx5-0000Tj-78; Mon, 24 Nov 2025 15:58:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171484.1496494; Mon, 24 Nov 2025 15: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 1vNYx5-0000Tc-29; Mon, 24 Nov 2025 15:58:07 +0000
Received: by outflank-mailman (input) for mailman id 1171484;
 Mon, 24 Nov 2025 15:55: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=aqum=6A=oracle.com=jag.raman@srs-se1.protection.inumbo.net>)
 id 1vNYu7-0000Ps-8x
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 15:55:03 +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 ebc7e46a-c94d-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 16:54:56 +0100 (CET)
Received: from pps.filterd (m0246627.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 5AOCVE6k1038226; Mon, 24 Nov 2025 15:51:59 GMT
Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com
 (iadpaimrmta01.appoci.oracle.com [130.35.100.223])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4ak8fka99s-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 24 Nov 2025 15:51:59 +0000 (GMT)
Received: from pps.filterd
 (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])
 by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 5AOFYmTe022130; Mon, 24 Nov 2025 15:51:58 GMT
Received: from ch1pr05cu001.outbound.protection.outlook.com
 (mail-northcentralusazon11010060.outbound.protection.outlook.com
 [52.101.193.60])
 by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id
 4ak3mc1323-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 24 Nov 2025 15:51:57 +0000
Received: from DS7PR10MB5008.namprd10.prod.outlook.com (2603:10b6:5:3b1::19)
 by CYYPR10MB7568.namprd10.prod.outlook.com (2603:10b6:930:cb::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.17; Mon, 24 Nov
 2025 15:51:54 +0000
Received: from DS7PR10MB5008.namprd10.prod.outlook.com
 ([fe80::3190:3396:d0a1:a69]) by DS7PR10MB5008.namprd10.prod.outlook.com
 ([fe80::3190:3396:d0a1:a69%6]) with mapi id 15.20.9343.016; Mon, 24 Nov 2025
 15:51:54 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ebc7e46a-c94d-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-id:content-transfer-encoding:content-type:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	corp-2025-04-25; bh=fqwaNDTXuWCqIWKu306jsSKmbLkW9NBGH4ftu5x0o6g=; b=
	SqNlY3cLE0eQEvzQiGhTG/tArJHGpV/RqQJ13aKAoucAsUoipw0Va9JN23Pe/1hS
	sFSf9BHyvmRNyOmzDGj17no4OoP8Y6soXkCSTIJYT48ZwTSMxPqrlan2TKhy+vMS
	VI885wMRBbr1GdlxUdnY2ci5iLqdnsY6+pG24JLZO39WU0xjJGrYX/3UQzZrFBfe
	6gSdTDI92vxhxaKsT16OwAjTgkVNwhMG0JTv5ReNLt3TCBPxwjCZHK7Tu3iJzFkn
	IRC9ha7xq7Tzo0xCHPQ8OshEdkU3XWBc0WAWjXCvX0jbxq9MAuAkJKndkesQJZtS
	CcHUH1zR7LmgATTJu6fgfw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qFoe7gJe9BfBfLjxT8KTLj8ZtTiHAfGeJDQiTyMUlL6t3jOoFdujjA9GLb01Vwe9WOBJTzhbeF999yc3h6xbxcpyjrHcFGZtQXOUzrh6ZzLUWjPoe8XvpT0OQTtldL0KjB7RG9egqJnHg4AT6UuEd8aLbp4u5XhU1IOc0Ff5+oWRQm0kWQvFx9s/pYyf4n/4DWS599Of7blGjGKD9uF/qyNUB613jTYet4pFHoSI0a/wZyn8svMXt+8Mqsc2xwaSXNAGUxcpYywldXgJZClWeFBpegKF6qIvHlXf+gw1YdTuoKAFwaVTh8JdWc5cI3wi7Ko4MxQVLgYIkDvohq9IqA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fqwaNDTXuWCqIWKu306jsSKmbLkW9NBGH4ftu5x0o6g=;
 b=SriFBC6ZKffnrLZyrJlG8tgjM+E+kLn3hYSWuQXN2CZWyVb1/8P3jWvKlhQrOVyYTqBal1+zXvuWWSCpBzk+GpnNqQe7jzh2Wk/wvk2kr+/F6yja1h3kHgu4IEPsFr3JOBTZ6kiQOSTRGfP2r60uefFXNJmYIVCKQLv+sKNP+uqVY//hdCL8h+hu0BdZ31oAsQTftN+2l0uchTtIyqESGYdSI40YJNKEbpGAdzSbTE4SD+Jz6wfRKx9uLBSd22jgl+AWwGIMdR81009AdJJXMVveb3IStJbY8/uNw5igLYvYfqMX3TnBYEtf8oWTyPh40oXCicb+7QeVQjHPXuHI0g==
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=fqwaNDTXuWCqIWKu306jsSKmbLkW9NBGH4ftu5x0o6g=;
 b=X+iyV+PDSNsPqvhWphziRtnm4BcWtCRn/73AuZnvzuDtpiSgGz+i96R2Lz6IVoYjW4XDSfuCcyikt4RYiaQX1/8weUsUcqc2NQkqSjdYIE2zIDin3oXssepQjBzYh7duXMGP8x5S98+pRFNahaX6Ix415jbmZGJK2o1ZZOTCa3c=
From: Jag Raman <jag.raman@oracle.com>
To: Markus Armbruster <armbru@redhat.com>
CC: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
        "arei.gonglei@huawei.com"
	<arei.gonglei@huawei.com>,
        "zhenwei.pi@linux.dev" <zhenwei.pi@linux.dev>,
        "alistair.francis@wdc.com" <alistair.francis@wdc.com>,
        "stefanb@linux.vnet.ibm.com" <stefanb@linux.vnet.ibm.com>,
        "kwolf@redhat.com"
	<kwolf@redhat.com>,
        "hreitz@redhat.com" <hreitz@redhat.com>,
        "sw@weilnetz.de"
	<sw@weilnetz.de>,
        "qemu_oss@crudebyte.com" <qemu_oss@crudebyte.com>,
        "groug@kaod.org" <groug@kaod.org>, "mst@redhat.com" <mst@redhat.com>,
        "imammedo@redhat.com" <imammedo@redhat.com>,
        "anisinha@redhat.com"
	<anisinha@redhat.com>,
        "kraxel@redhat.com" <kraxel@redhat.com>,
        "shentey@gmail.com" <shentey@gmail.com>,
        "npiggin@gmail.com"
	<npiggin@gmail.com>,
        "harshpb@linux.ibm.com" <harshpb@linux.ibm.com>,
        "sstabellini@kernel.org" <sstabellini@kernel.org>,
        "anthony@xenproject.org"
	<anthony@xenproject.org>,
        "paul@xen.org" <paul@xen.org>,
        "edgar.iglesias@gmail.com" <edgar.iglesias@gmail.com>,
        Elena Ufimtseva
	<elena.ufimtseva@oracle.com>,
        "sgarzare@redhat.com" <sgarzare@redhat.com>,
        "pbonzini@redhat.com" <pbonzini@redhat.com>,
        "fam@euphon.net"
	<fam@euphon.net>,
        "philmd@linaro.org" <philmd@linaro.org>,
        "alex@shazbot.org"
	<alex@shazbot.org>,
        "clg@redhat.com" <clg@redhat.com>,
        "peterx@redhat.com"
	<peterx@redhat.com>,
        "farosas@suse.de" <farosas@suse.de>,
        "lizhijian@fujitsu.com" <lizhijian@fujitsu.com>,
        "dave@treblig.org"
	<dave@treblig.org>,
        "jasowang@redhat.com" <jasowang@redhat.com>,
        "samuel.thibault@ens-lyon.org" <samuel.thibault@ens-lyon.org>,
        "michael.roth@amd.com" <michael.roth@amd.com>,
        "kkostiuk@redhat.com"
	<kkostiuk@redhat.com>,
        "zhao1.liu@intel.com" <zhao1.liu@intel.com>,
        "mtosatti@redhat.com" <mtosatti@redhat.com>,
        "rathc@linux.ibm.com"
	<rathc@linux.ibm.com>,
        "palmer@dabbelt.com" <palmer@dabbelt.com>,
        "liwei1518@gmail.com" <liwei1518@gmail.com>,
        "dbarboza@ventanamicro.com"
	<dbarboza@ventanamicro.com>,
        "zhiwei_liu@linux.alibaba.com"
	<zhiwei_liu@linux.alibaba.com>,
        "marcandre.lureau@redhat.com"
	<marcandre.lureau@redhat.com>,
        "qemu-block@nongnu.org"
	<qemu-block@nongnu.org>,
        "qemu-ppc@nongnu.org" <qemu-ppc@nongnu.org>,
        "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
        "kvm@vger.kernel.org" <kvm@vger.kernel.org>,
        "qemu-riscv@nongnu.org"
	<qemu-riscv@nongnu.org>
Subject: Re: [PATCH v2 13/15] error: Use error_setg_errno() for simplicity and
 consistency
Thread-Topic: [PATCH v2 13/15] error: Use error_setg_errno() for simplicity
 and consistency
Thread-Index: AQHcWuB2LPeG7KSVmkuHxGYziHJsabUB/rMA
Date: Mon, 24 Nov 2025 15:51:53 +0000
Message-ID: <373449D8-D359-49EA-83FF-9AC09B41DDC3@oracle.com>
References: <20251121121438.1249498-1-armbru@redhat.com>
 <20251121121438.1249498-14-armbru@redhat.com>
In-Reply-To: <20251121121438.1249498-14-armbru@redhat.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.200.81.1.6)
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DS7PR10MB5008:EE_|CYYPR10MB7568:EE_
x-ms-office365-filtering-correlation-id: a2517619-bf51-4eb8-bb13-08de2b7163d4
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|7416014|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?NnhNTnF3blJUQkZ3eVE5a01sRGEvdzNsWnFBYml5dytSVFlqYTFIVUR2cGpo?=
 =?utf-8?B?UGVDN3c1NFRGeXFMcjMwUHBWdVIvWnB5NjdkcXVHSHVhM3FrcUtrcGdWQUs3?=
 =?utf-8?B?NTQxdXNCWndCOUVpYTM5L2g4QU5ybittSy8rSlh3LzByck1CS0ZFRnlSKzI3?=
 =?utf-8?B?QnlVdFJ2WmFYb3V2R2hNTi9nSm5Yd25FSThUeVFwSDMrVGR0Q2lmTzFIeGE3?=
 =?utf-8?B?N0p4a1kweXlQVndTK1p5N0pxNHRmZWZXSXVCSCtDK2czSmZiVlhnU1dmeTkw?=
 =?utf-8?B?OERzek9maXhYZ3hBQlpXS2orMmI3VU1VVkZITVgwTFA4TnUvL0c3dFpsalRs?=
 =?utf-8?B?QUFNT3FvM2pmalR3MHFJQS9HUzMyNzZ4UnIzTHRIb0Zqc3RWcERNejVKVEZ2?=
 =?utf-8?B?d0Y4Zm9tSkJuaTREaFlQeU5xYVJ3Z3VWcS82d05TSE5DeFgxVnlJZFpvU3Fx?=
 =?utf-8?B?Y0ZLYTlBaEhxQlFhKzRIWVFJc3hmY2wwdkw4T094MStmM1BDQUJCc0VxNGVm?=
 =?utf-8?B?OWkvYmd2b05OTlZDcmpSMmc4Y3FlbnlXTXlVd29TN1dWTWx4bTNDZVlIUHhr?=
 =?utf-8?B?NjY2bjVieVJYUTJXek16Z3FCZ1dYNnlhellDZnhoSnVZckZYT1hnb2J2STE2?=
 =?utf-8?B?cHp1bGpKU1BYYTRLaG12TnVTNlF5TVNVWUtCVitWNVkzYWRFT0JQYlBmc1kz?=
 =?utf-8?B?Y09XQWlrejBvNDVrQU9aVnF4MThFdlVjcWQrcm5ib1A0WWpHUkJYeWdxMW1h?=
 =?utf-8?B?eWg0aTIwZ1AwZHMyOVhNQkljdEU4eWZ0TlVKTy9ubHR6TDNiWkVxSmlsOU1W?=
 =?utf-8?B?THNHUkFrenV2TTJQTHhDVHpnN245N1gwT2Njc3phempGeDJMOXFvSytzdU9L?=
 =?utf-8?B?aG1XYTIzS3N3bmpPcE5iVWtNSUVqSzBKbU1rY2gweTNlVThrclFDZit6NjFQ?=
 =?utf-8?B?K3VYSytDcWJRMjFIS1Zkb2U0V1VKZXZZWEU5T1BqMm9mSS9UbUVzZWxxYStK?=
 =?utf-8?B?Q1hkcGJIM0NxdW01eWxYUC9ObVhvSDBSYjltZEI4bnBlL0cxWnBxTkxSWEJw?=
 =?utf-8?B?VFk5d09WTXludUVTcEVUZHpyRjFGb0ZiaWowamkwb1VveVZMWmZ5eWZSTTB5?=
 =?utf-8?B?bklmL3ladi9MU0pIdGlxVHJPVGR6UkVYWUJtM01NVmJubzBUOURuUTNwVGRV?=
 =?utf-8?B?bUlNSzdMQS9Ld2YwZ1U1V2ZtRUV3WmV3Uy9OVlFzdENndjl3M0JjNS9BTm80?=
 =?utf-8?B?RTkzY1JrV1NJU1Jmd1pqZHphLzl4VERvcVE0QXFTOHZLRjB6ckt1Y2xMQjR4?=
 =?utf-8?B?NGU5cFZCOUVlK095YUY0VSthUTlza2cwbHpMVGlxQ0ZXV3UrL3lCN1JDbzhy?=
 =?utf-8?B?d1cvL1dSZXlOZlE3dXNHYWw0T0o4Nkp0ekt2S0xUaGcwcW1rYW9CalBrbnlO?=
 =?utf-8?B?cHA2cnJoZlNLZkt6bUdnZkVEcDcvNisrcWxDUEFUMXFkaE9LL2tmL3NyOEdt?=
 =?utf-8?B?UUVpN1o4anZaNDgrencyMWxHU0d5bHREUWhad2M4dmdHWVcwRmozYkIyR2hj?=
 =?utf-8?B?dzhuNjNuRVZkYm1QVG56bUwrQk1Wc0NMbG5pcStJRFZUdjI3ZENVWnFlV1k5?=
 =?utf-8?B?TVhGbWpLSkFscCtJN0NrTTYrZUROWjVTYjI5Y0krbnVCQ0NEUWNUZjR0RW9O?=
 =?utf-8?B?bzA4dThZNUgwbGtZWk5GMGxPNWtkaENPTFh0MG5SZDJqUnpSZVRMR01abmNk?=
 =?utf-8?B?OE43MG02NGZ6eTFlOEszWWcxdDhlTHo4dDJmUHFTSTVGaHhCMmQvNXNCbUxi?=
 =?utf-8?B?aVJtMHREZkMwL25KMGRVcHNuTTVWOCtqOWRTM01ycDRoaGVlenhYc0NqaVZo?=
 =?utf-8?B?ZFBaMzVFcGJTeVA0Y2hDRDdleVFDV1VlcENhTDY3TFdGU3p1Q3FnemVkbUg0?=
 =?utf-8?B?UHZEWEpiRjczWW1SVjNidUdUazdaQldSUmJlSGhMaXFBTGcwODR1UDNRR0FM?=
 =?utf-8?B?aHNCQnl4K05IMGtTN2crVlRvd3pVWGlEYUJVZG1kSlhkS0gvNklFZEFTazhk?=
 =?utf-8?Q?cQYEAi?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR10MB5008.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?enRBSkdOMGdkQm5mSVdWOGw2RUlLd1Z3NysvUklWNlNSUTN6Ti9XYnZmVWRt?=
 =?utf-8?B?U1UxeTMwdTRUSmNEK1FyaDJxSHhRcG1vaG5ERkNRTUNJTkdic2lkMW9jSVFW?=
 =?utf-8?B?Z2JLNG1VcjBoKysrdnJITUdRYzBuOWd4Q2QwTUE1MUpMNThsb1F6U2tNeDlI?=
 =?utf-8?B?MWljTjZLU0FkYlRMK3puRUM5c3NqMmhVaEwvWEpBK3pvczJhZlNuTXpveGxh?=
 =?utf-8?B?ZGxKSXdXS2Y5VnBaR0tqRk5XUlRFVlAxL1VjaVd6d1NzRC9BYVpCMndRb3Iy?=
 =?utf-8?B?Rk9sV2lrN2VvSlg1R1dUMkUxczRnUTFwdXF0Rk5KQzZBVmYrdEFmMFZ4b0p0?=
 =?utf-8?B?dkV5aUEzbFVuYTJubUdZS0N3Z1Z6bUJZc1hTQzFJeGsyditmei9JL0RENzU4?=
 =?utf-8?B?SDN2Q3BhRXBKakloMU9ackMvQXVCUUNNd0g1cVhsUlVoY1RXSHBMTDhtTEMz?=
 =?utf-8?B?eE92aWlNWXE1OEpORWU2RTJRRGpWWmdaQVRYbHpjT2VtOVZsL3VZTmdWYy92?=
 =?utf-8?B?WkltbnZXV2Y0Y2xGcjJBNzgxeU10bGVPaFF3akVsQ1RGd3c3QVFkT1dFbndt?=
 =?utf-8?B?eFErUmxEREU4THQvYTdmMVdPVVNoS0tNdG1hVm5yaklPSFh3YjdmK2xmaldL?=
 =?utf-8?B?WndQT2VIUkZBYk1PeVhub0FWYjVMOUlWVGoxYlJIVXZ2cXU2SHJiMlRtdlNi?=
 =?utf-8?B?M2ZtdjNkdVRaWm9PaExkQVVvNE5QUk9GS3d5Q2h0WXJqWnFjUE50Z2hjK2Ft?=
 =?utf-8?B?YWJrdXdnbHdLY0VKdVFjTC82bTM5T3R4eEExUG1pUnBxdVZGS3hFNk9yWHRz?=
 =?utf-8?B?Y2hhR1k3ZE5WZkhYcXpLallsMFdOb2tVTE5jbHp4RS9HTXpDR0RZZUZKc2hn?=
 =?utf-8?B?d0dxR3h0aVVHV0p2RXUxRzA3cCswZDFBZHlxcThTV1NGVW42M1l1V2tIQXR1?=
 =?utf-8?B?bXpwUUNoZDhvK1JLRGg5aG1UQ3NBWlVJTlh4S3JmQ0pGUW8wcXkxZHV1UytG?=
 =?utf-8?B?MVR3TktONVo1WUY5ZmJCMWg2L0xXR1FwcWI3bS9xb3B4RDNVa3NYcmRVaWU0?=
 =?utf-8?B?b2NrQ01NR3JUa2VJcXA1ME9tVGV3TWlEVUR3QU5WRnk1Q0dtOFlEVitVNTNF?=
 =?utf-8?B?WHFDWEx6RnBpQjlYdnZLaTdZeGhrOXZRN04xcVRrdzhHU3ZtbTk4WkFibGdn?=
 =?utf-8?B?cGVEQ1A1d21OYWlmdWtTQkJ4ajVaNThvMy9iOEJjeVdEZkQ4cmtkVWhQSHFH?=
 =?utf-8?B?d1VVWjJoTTdYeHprUXM1Y0hEdWZwckE5US9ZUEdRMWNQTWxGeTBBejFkbnNX?=
 =?utf-8?B?NmJCQ2pxWThXZFZtOUJZWnNuZENYY05XZUJRMU14RStrWUVwdE0vSlRqYUFE?=
 =?utf-8?B?RSs0Rnd1R0d4TWNRby9odmErb3hiQzJDQlVCQm1ieHVHYXVxbnlJVXpwK3po?=
 =?utf-8?B?bG9nbzZwNlhFSEMyV2lrb3hNdXlHeWoyWXVSa0ZsUkd2cWxhTGp6TENLMVNO?=
 =?utf-8?B?c0o0VTFEUzhnRmNpQ3o4VnRHUFJZaVE3Ly9wVUFiWndEOHlKUTRGdXpPc3Rp?=
 =?utf-8?B?MWdqMXg3MEI5WnNZWTBCdnZsekx1TWFPWlM4RkJLTmFWQ2pKVTFFTWlxdkxu?=
 =?utf-8?B?VXBCSDRub1ZKTWJVSys1NzhHZTAzdWJWS2dGdFQ2R04yeTZ4d1FFaGswcktC?=
 =?utf-8?B?MjZiYU5Ka0JIeWJlb1RzOERMM01VUm83WUZrcWVGUGpoSEtqb05CY2JXcHJv?=
 =?utf-8?B?WTJNamFCcVZNTjhWdlhERlk1QThEc0lld3lUbFNtZmorQTVNaEsrNnJPWXJP?=
 =?utf-8?B?NFEzaXB5eDBJK1JvVFpqTndTcnpIWHlDT3Q2OS9FVFd6bWxPTElhUE5ZcEJV?=
 =?utf-8?B?U1U1TUZrUE9hNGRsSTIrTUEvK1pUaStKb0RuR1lyVmlWUXZ4MjhHakMvc1cz?=
 =?utf-8?B?N1hwejdtQi9nU3d4dnE5ZmJlNmVncS9qY2wwcE5vOGZkVlhFTGVDOGtBa0p0?=
 =?utf-8?B?UFZGckp5blNNVWZLTmd1SVVudEkySHk0TFhPQ0s4TDBsTjdxcWpTWDBJaFZz?=
 =?utf-8?B?RTZBSDA2UkdCNUVBdFRVUWsvYWlzRytsQWpKNXgwVW85YWRXU3YxdTZJM3dK?=
 =?utf-8?B?cy9xdEwrOUtWY0RiRVFZb2g3ZlFlQmVYT01kcFhvVGc4S1FLUG9oTHJucDk5?=
 =?utf-8?B?ZVE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <5E87E9BD866DEC4B901B1C8F3A5433F2@namprd10.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	pchK+N8xVBfINzBbxr0AKNl3FGIz6TTRhzWfyjIEZp9LlYzssemo2d2WXYS7m4gys14Lz4oTW/nmbBOUD99XmoBqJDsXPKYW3VOmOx8Up6fnQ5DaLftcYKNBUW2uAOX+IHtius4nDU6UPgp7+lj6nkHA93760/mYX7CWXhCzeVd2JubssJPQlrGV4E3zH1lTSICJ8Qg77C9zb0yJA8h68q+y9wvh6un/YcQf/nA1r+Oj/u218+CpPF5Z5NsendBFGx7SfsUsIhfKX9ukckkiefcbrbROB+4lDpKncLdtqVwFbY5+hT888KA2Ke1ALmNXw8nrQtDsQ1T97Jhe5Vy1iKiycp+BoxQ4kw8h2l+u3ASDocv/+8LyMxuAfG9bexN4r0sHbTDEZXH8WuL32bWLwQOX99jf4VaIcqubMVe8iqCuprHWEBGAq4HzxPC5cfqGnVY/8t+1lUPSXZmSw202skiN/1imHzY1e/HmTL3D56JEDpyYeCSgJ2+5+3tJP7sq+wp8VgsxZoEghrePWYb+D0KaouBF/pN20cWSWKAunpj87HE0nk3mAby1sZY/Icq5X1x1B0twu605b9UdJZEmF38C+UwpSPGYxlBHjkjZHo0=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DS7PR10MB5008.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a2517619-bf51-4eb8-bb13-08de2b7163d4
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2025 15:51:53.8857
 (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: IKQg4j0P8Vu9LYhD0DJ6db02KMZHKxwYzl6h57sLosXbgSMH43GmYzL36ToSNKnWr6RwTtHd0/moryzkk9veog==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR10MB7568
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-11-24_06,2025-11-24_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=999
 bulkscore=0 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0
 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2510240000 definitions=main-2511240138
X-Authority-Analysis: v=2.4 cv=f4RFxeyM c=1 sm=1 tr=0 ts=69247f1f b=1 cx=c_pps
 a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17
 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19
 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=GoEa3M9JfhUA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=20KFwNOVAAAA:8 a=yPCof4ZbAAAA:8
 a=wQXQMu-aPKYETYaJIJoA:9 a=QEXdDO2ut3YA:10 cc=ntf awl=host:12098
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTI0MDEzOSBTYWx0ZWRfX4tqZt6/4CfF2
 11pZwkNV/fKRGRda0jC7v2r3FTFOretAiA9XOik/EvclL5HBonUU19T5p3uYvSs5K+gLIP3nJGM
 JB7+swDHve8RV9UZHhHUh38PJIQ53Ii/SEfz7A+sFdHTkQjSqjhp1U2sQtbQ1+L69MuS71EPk9b
 4Z1XV5RICp6dr6yulGQv8jvoV28Nnr7rYewg1IgISi+hNbK+u1EoU4lpderh/7ljvUozcAxMrDl
 RiwzPChj2kk2iLzLDdNUbSKz8v5ji6wGGx+kUks9/5aI6RmCJv1isCAyIogwPeeRE0CateTX8yo
 3kWcOMZeMI48RjGoBAbR8pNoOAib3sSSqNPVuaPGlo1jGwOcpbiekcFPPUgC5gaH8AduIFtFG++
 6vec7IIsmeCd6OpiBdN+6KSadkxHJlGAheNJcYLcC18FRWj6Zak=
X-Proofpoint-ORIG-GUID: tntWmo1KgqqTtu9qTAaB9eRU9ubV08E7
X-Proofpoint-GUID: tntWmo1KgqqTtu9qTAaB9eRU9ubV08E7

DQoNCj4gT24gTm92IDIxLCAyMDI1LCBhdCA3OjE04oCvQU0sIE1hcmt1cyBBcm1icnVzdGVyIDxh
cm1icnVAcmVkaGF0LmNvbT4gd3JvdGU6DQo+IA0KPiBVc2UgZXJyb3Jfc2V0Z19lcnJubygpIGlu
c3RlYWQgb2YgcGFzc2luZyB0aGUgdmFsdWUgb2Ygc3RyZXJyb3IoKSBvcg0KPiBnX3N0cmVycm9y
KCkgdG8gZXJyb3Jfc2V0ZygpLg0KPiANCj4gVGhlIHNlcGFyYXRvciBiZXR3ZWVuIHRoZSBlcnJv
ciBtZXNzYWdlIHByb3BlciBhbmQgdGhlIHZhbHVlIG9mDQo+IHN0cmVycm9yKCkgY2hhbmdlcyBm
cm9tICIgOiAiLCAiIiwgIiAtICIsICItICIgdG8gIjogIiBpbiBwbGFjZXMuDQo+IA0KPiBTaWdu
ZWQtb2ZmLWJ5OiBNYXJrdXMgQXJtYnJ1c3RlciA8YXJtYnJ1QHJlZGhhdC5jb20+DQoNClRoYW5r
cyBmb3IgdGhlIGNoYW5nZXMuIFRoZSBjaGFuZ2VzIHRvIHZmaW8tdXNlci1vYmouYyBsb29rIGdv
b2QgdG8gbWUuDQoNCkFja2VkLWJ5OiBKYWdhbm5hdGhhbiBSYW1hbiA8amFnLnJhbWFuQG9yYWNs
ZS5jb20+DQoNCj4gLS0tDQo+IGJhY2tlbmRzL3NwZG0tc29ja2V0LmMgICAgICB8ICA0ICsrLS0N
Cj4gYmFja2VuZHMvdHBtL3RwbV9lbXVsYXRvci5jIHwgMTMgKysrKystLS0tLS0tLQ0KPiBody85
cGZzLzlwLmMgICAgICAgICAgICAgICAgfCAgMyArLS0NCj4gaHcvYWNwaS9jb3JlLmMgICAgICAg
ICAgICAgIHwgIDMgKy0tDQo+IGh3L2ludGMvb3BlbnBpY19rdm0uYyAgICAgICB8ICAzICstLQ0K
PiBody9pbnRjL3hpY3Nfa3ZtLmMgICAgICAgICAgfCAgNSArKystLQ0KPiBody9yZW1vdGUvdmZp
by11c2VyLW9iai5jICAgfCAxOCArKysrKysrKystLS0tLS0tLS0NCj4gaHcvc2Vuc29yL2VtYzE0
MXguYyAgICAgICAgIHwgIDQgKystLQ0KPiBody9zZW5zb3IvdG1wNDIxLmMgICAgICAgICAgfCAg
NCArKy0tDQo+IGh3L3NtYmlvcy9zbWJpb3MuYyAgICAgICAgICB8ICA0ICsrLS0NCj4gaHcvdmly
dGlvL3ZkcGEtZGV2LmMgICAgICAgIHwgIDQgKystLQ0KPiBtaWdyYXRpb24vcG9zdGNvcHktcmFt
LmMgICAgfCAxMCArKysrKy0tLS0tDQo+IG5ldC9zbGlycC5jICAgICAgICAgICAgICAgICB8ICA1
ICsrKy0tDQo+IHFnYS9jb21tYW5kcy1wb3NpeC1zc2guYyAgICB8IDIzICsrKysrKysrKysrKyst
LS0tLS0tLS0tDQo+IHN5c3RlbS92bC5jICAgICAgICAgICAgICAgICB8ICAyICstDQo+IHRhcmdl
dC9wcGMva3ZtLmMgICAgICAgICAgICB8ICA1ICsrLS0tDQo+IDE2IGZpbGVzIGNoYW5nZWQsIDU0
IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2JhY2tl
bmRzL3NwZG0tc29ja2V0LmMgYi9iYWNrZW5kcy9zcGRtLXNvY2tldC5jDQo+IGluZGV4IDZkOGYw
MmQzYjkuLmExMmJjNDdmNzcgMTAwNjQ0DQo+IC0tLSBhL2JhY2tlbmRzL3NwZG0tc29ja2V0LmMN
Cj4gKysrIGIvYmFja2VuZHMvc3BkbS1zb2NrZXQuYw0KPiBAQCAtMTY3LDcgKzE2Nyw3IEBAIGlu
dCBzcGRtX3NvY2tldF9jb25uZWN0KHVpbnQxNl90IHBvcnQsIEVycm9yICoqZXJycCkNCj4gDQo+
ICAgICBjbGllbnRfc29ja2V0ID0gc29ja2V0KEFGX0lORVQsIFNPQ0tfU1RSRUFNLCBJUFBST1RP
X1RDUCk7DQo+ICAgICBpZiAoY2xpZW50X3NvY2tldCA8IDApIHsNCj4gLSAgICAgICAgZXJyb3Jf
c2V0ZyhlcnJwLCAiY2Fubm90IGNyZWF0ZSBzb2NrZXQ6ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsN
Cj4gKyAgICAgICAgZXJyb3Jfc2V0Z19lcnJubyhlcnJwLCBlcnJubywgImNhbm5vdCBjcmVhdGUg
c29ja2V0Iik7DQo+ICAgICAgICAgcmV0dXJuIC0xOw0KPiAgICAgfQ0KPiANCj4gQEAgLTE3OSw3
ICsxNzksNyBAQCBpbnQgc3BkbV9zb2NrZXRfY29ubmVjdCh1aW50MTZfdCBwb3J0LCBFcnJvciAq
KmVycnApDQo+IA0KPiAgICAgaWYgKGNvbm5lY3QoY2xpZW50X3NvY2tldCwgKHN0cnVjdCBzb2Nr
YWRkciAqKSZzZXJ2ZXJfYWRkciwNCj4gICAgICAgICAgICAgICAgIHNpemVvZihzZXJ2ZXJfYWRk
cikpIDwgMCkgew0KPiAtICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJjYW5ub3QgY29ubmVjdDog
JXMiLCBzdHJlcnJvcihlcnJubykpOw0KPiArICAgICAgICBlcnJvcl9zZXRnX2Vycm5vKGVycnAs
IGVycm5vLCAiY2Fubm90IGNvbm5lY3QiKTsNCj4gICAgICAgICBjbG9zZShjbGllbnRfc29ja2V0
KTsNCj4gICAgICAgICByZXR1cm4gLTE7DQo+ICAgICB9DQo+IGRpZmYgLS1naXQgYS9iYWNrZW5k
cy90cG0vdHBtX2VtdWxhdG9yLmMgYi9iYWNrZW5kcy90cG0vdHBtX2VtdWxhdG9yLmMNCj4gaW5k
ZXggZjEwYjkwNzRmYi4uZjUyY2I0ZDQzNSAxMDA2NDQNCj4gLS0tIGEvYmFja2VuZHMvdHBtL3Rw
bV9lbXVsYXRvci5jDQo+ICsrKyBiL2JhY2tlbmRzL3RwbS90cG1fZW11bGF0b3IuYw0KPiBAQCAt
MjI1LDggKzIyNSw3IEBAIHN0YXRpYyBpbnQgdHBtX2VtdWxhdG9yX3NldF9sb2NhbGl0eShUUE1F
bXVsYXRvciAqdHBtX2VtdSwgdWludDhfdCBsb2N0eV9udW1iZXIsDQo+ICAgICBpZiAodHBtX2Vt
dWxhdG9yX2N0cmxjbWQodHBtX2VtdSwgQ01EX1NFVF9MT0NBTElUWSwgJmxvYywNCj4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YobG9jKSwgc2l6ZW9mKGxvYy51LnJlc3AudHBt
X3Jlc3VsdCksDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGxvYykpIDwg
MCkgew0KPiAtICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJ0cG0tZW11bGF0b3I6IGNvdWxkIG5v
dCBzZXQgbG9jYWxpdHkgOiAlcyIsDQo+IC0gICAgICAgICAgICAgICAgICAgc3RyZXJyb3IoZXJy
bm8pKTsNCj4gKyAgICAgICAgZXJyb3Jfc2V0Z19lcnJubyhlcnJwLCBlcnJubywgInRwbS1lbXVs
YXRvcjogY291bGQgbm90IHNldCBsb2NhbGl0eSIpOw0KPiAgICAgICAgIHJldHVybiAtMTsNCj4g
ICAgIH0NCj4gDQo+IEBAIC0zMTUsOCArMzE0LDcgQEAgc3RhdGljIGludCB0cG1fZW11bGF0b3Jf
c3RvcF90cG0oVFBNQmFja2VuZCAqdGIsIEVycm9yICoqZXJycCkNCj4gDQo+ICAgICBpZiAodHBt
X2VtdWxhdG9yX2N0cmxjbWQodHBtX2VtdSwgQ01EX1NUT1AsICZyZXMsIDAsDQo+ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHB0bV9yZXMpLCBzaXplb2YocmVzKSkgPCAwKSB7
DQo+IC0gICAgICAgIGVycm9yX3NldGcoZXJycCwgInRwbS1lbXVsYXRvcjogQ291bGQgbm90IHN0
b3AgVFBNOiAlcyIsDQo+IC0gICAgICAgICAgICAgICAgICAgc3RyZXJyb3IoZXJybm8pKTsNCj4g
KyAgICAgICAgZXJyb3Jfc2V0Z19lcnJubyhlcnJwLCBlcnJubywgInRwbS1lbXVsYXRvcjogQ291
bGQgbm90IHN0b3AgVFBNIik7DQo+ICAgICAgICAgcmV0dXJuIC0xOw0KPiAgICAgfQ0KPiANCj4g
QEAgLTM3Nyw4ICszNzUsOCBAQCBzdGF0aWMgaW50IHRwbV9lbXVsYXRvcl9zZXRfYnVmZmVyX3Np
emUoVFBNQmFja2VuZCAqdGIsDQo+ICAgICBpZiAodHBtX2VtdWxhdG9yX2N0cmxjbWQodHBtX2Vt
dSwgQ01EX1NFVF9CVUZGRVJTSVpFLCAmcHNicywNCj4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplb2YocHNicy51LnJlcSksIHNpemVvZihwc2JzLnUucmVzcC50cG1fcmVzdWx0KSwN
Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YocHNicy51LnJlc3ApKSA8IDAp
IHsNCj4gLSAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAidHBtLWVtdWxhdG9yOiBDb3VsZCBub3Qg
c2V0IGJ1ZmZlciBzaXplOiAlcyIsDQo+IC0gICAgICAgICAgICAgICAgICAgc3RyZXJyb3IoZXJy
bm8pKTsNCj4gKyAgICAgICAgZXJyb3Jfc2V0Z19lcnJubyhlcnJwLCBlcnJubywNCj4gKyAgICAg
ICAgICAgICAgICAgICAgICAgICAidHBtLWVtdWxhdG9yOiBDb3VsZCBub3Qgc2V0IGJ1ZmZlciBz
aXplIik7DQo+ICAgICAgICAgcmV0dXJuIC0xOw0KPiAgICAgfQ0KPiANCj4gQEAgLTQyNiw4ICs0
MjQsNyBAQCBzdGF0aWMgaW50IHRwbV9lbXVsYXRvcl9zdGFydHVwX3RwbV9yZXN1bWUoVFBNQmFj
a2VuZCAqdGIsIHNpemVfdCBidWZmZXJzaXplLA0KPiAgICAgaWYgKHRwbV9lbXVsYXRvcl9jdHJs
Y21kKHRwbV9lbXUsIENNRF9JTklULCAmaW5pdCwgc2l6ZW9mKGluaXQpLA0KPiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVvZihpbml0LnUucmVzcC50cG1fcmVzdWx0KSwNCj4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoaW5pdCkpIDwgMCkgew0KPiAtICAgICAg
ICBlcnJvcl9zZXRnKGVycnAsICJ0cG0tZW11bGF0b3I6IGNvdWxkIG5vdCBzZW5kIElOSVQ6ICVz
IiwNCj4gLSAgICAgICAgICAgICAgICAgICBzdHJlcnJvcihlcnJubykpOw0KPiArICAgICAgICBl
cnJvcl9zZXRnX2Vycm5vKGVycnAsIGVycm5vLCAidHBtLWVtdWxhdG9yOiBjb3VsZCBub3Qgc2Vu
ZCBJTklUIik7DQo+ICAgICAgICAgZ290byBlcnJfZXhpdDsNCj4gICAgIH0NCj4gDQo+IGRpZmYg
LS1naXQgYS9ody85cGZzLzlwLmMgYi9ody85cGZzLzlwLmMNCj4gaW5kZXggYmM0YTAxNmVlMy4u
NmZiZTYwNGNlOCAxMDA2NDQNCj4gLS0tIGEvaHcvOXBmcy85cC5jDQo+ICsrKyBiL2h3LzlwZnMv
OXAuYw0KPiBAQCAtNDM0NSw4ICs0MzQ1LDcgQEAgaW50IHY5ZnNfZGV2aWNlX3JlYWxpemVfY29t
bW9uKFY5ZnNTdGF0ZSAqcywgY29uc3QgVjlmc1RyYW5zcG9ydCAqdCwNCj4gICAgICAqIHVzZSBj
by1yb3V0aW5lcyBoZXJlLg0KPiAgICAgICovDQo+ICAgICBpZiAocy0+b3BzLT5uYW1lX3RvX3Bh
dGgoJnMtPmN0eCwgTlVMTCwgIi8iLCAmcGF0aCkgPCAwKSB7DQo+IC0gICAgICAgIGVycm9yX3Nl
dGcoZXJycCwNCj4gLSAgICAgICAgICAgICAgICAgICAiZXJyb3IgaW4gY29udmVydGluZyBuYW1l
IHRvIHBhdGggJXMiLCBzdHJlcnJvcihlcnJubykpOw0KPiArICAgICAgICBlcnJvcl9zZXRnX2Vy
cm5vKGVycnAsIGVycm5vLCAiZXJyb3IgaW4gY29udmVydGluZyBuYW1lIHRvIHBhdGgiKTsNCj4g
ICAgICAgICBnb3RvIG91dDsNCj4gICAgIH0NCj4gICAgIGlmIChzLT5vcHMtPmxzdGF0KCZzLT5j
dHgsICZwYXRoLCAmc3RhdCkpIHsNCj4gZGlmZiAtLWdpdCBhL2h3L2FjcGkvY29yZS5jIGIvaHcv
YWNwaS9jb3JlLmMNCj4gaW5kZXggZDI2NzczMzJhZi4uODI5NzRlYjI1NyAxMDA2NDQNCj4gLS0t
IGEvaHcvYWNwaS9jb3JlLmMNCj4gKysrIGIvaHcvYWNwaS9jb3JlLmMNCj4gQEAgLTI5Myw4ICsy
OTMsNyBAQCB2b2lkIGFjcGlfdGFibGVfYWRkKGNvbnN0IFFlbXVPcHRzICpvcHRzLCBFcnJvciAq
KmVycnApDQo+ICAgICAgICAgICAgICAgICBtZW1jcHkoYmxvYiArIGJsb2JsZW4sIGRhdGEsIHIp
Ow0KPiAgICAgICAgICAgICAgICAgYmxvYmxlbiArPSByOw0KPiAgICAgICAgICAgICB9IGVsc2Ug
aWYgKGVycm5vICE9IEVJTlRSKSB7DQo+IC0gICAgICAgICAgICAgICAgZXJyb3Jfc2V0ZyhlcnJw
LCAiY2FuJ3QgcmVhZCBmaWxlICVzOiAlcyIsICpjdXIsDQo+IC0gICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdHJlcnJvcihlcnJubykpOw0KPiArICAgICAgICAgICAgICAgIGVycm9yX3NldGdf
ZXJybm8oZXJycCwgZXJybm8sICJjYW4ndCByZWFkIGZpbGUgJXMiLCAqY3VyKTsNCj4gICAgICAg
ICAgICAgICAgIGNsb3NlKGZkKTsNCj4gICAgICAgICAgICAgICAgIGdvdG8gb3V0Ow0KPiAgICAg
ICAgICAgICB9DQo+IGRpZmYgLS1naXQgYS9ody9pbnRjL29wZW5waWNfa3ZtLmMgYi9ody9pbnRj
L29wZW5waWNfa3ZtLmMNCj4gaW5kZXggNjczZWE5Y2EwNS4uMGMxMWJiYzk2MyAxMDA2NDQNCj4g
LS0tIGEvaHcvaW50Yy9vcGVucGljX2t2bS5jDQo+ICsrKyBiL2h3L2ludGMvb3BlbnBpY19rdm0u
Yw0KPiBAQCAtMjIzLDggKzIyMyw3IEBAIHN0YXRpYyB2b2lkIGt2bV9vcGVucGljX3JlYWxpemUo
RGV2aWNlU3RhdGUgKmRldiwgRXJyb3IgKiplcnJwKQ0KPiAgICAgY2QudHlwZSA9IGt2bV9vcGVu
cGljX21vZGVsOw0KPiAgICAgcmV0ID0ga3ZtX3ZtX2lvY3RsKHMsIEtWTV9DUkVBVEVfREVWSUNF
LCAmY2QpOw0KPiAgICAgaWYgKHJldCA8IDApIHsNCj4gLSAgICAgICAgZXJyb3Jfc2V0ZyhlcnJw
LCAiQ2FuJ3QgY3JlYXRlIGRldmljZSAlZDogJXMiLA0KPiAtICAgICAgICAgICAgICAgICAgIGNk
LnR5cGUsIHN0cmVycm9yKGVycm5vKSk7DQo+ICsgICAgICAgIGVycm9yX3NldGdfZXJybm8oZXJy
cCwgZXJybm8sICJDYW4ndCBjcmVhdGUgZGV2aWNlICVkIiwgY2QudHlwZSk7DQo+ICAgICAgICAg
cmV0dXJuOw0KPiAgICAgfQ0KPiAgICAgb3BwLT5mZCA9IGNkLmZkOw0KPiBkaWZmIC0tZ2l0IGEv
aHcvaW50Yy94aWNzX2t2bS5jIGIvaHcvaW50Yy94aWNzX2t2bS5jDQo+IGluZGV4IGVlNzI5Njlm
NWYuLjYxZjY2ZDEwMTkgMTAwNjQ0DQo+IC0tLSBhL2h3L2ludGMveGljc19rdm0uYw0KPiArKysg
Yi9ody9pbnRjL3hpY3Nfa3ZtLmMNCj4gQEAgLTE2NSw4ICsxNjUsOSBAQCB2b2lkIGljcF9rdm1f
cmVhbGl6ZShEZXZpY2VTdGF0ZSAqZGV2LCBFcnJvciAqKmVycnApDQo+ICAgICBpZiAocmV0IDwg
MCkgew0KPiAgICAgICAgIEVycm9yICpsb2NhbF9lcnIgPSBOVUxMOw0KPiANCj4gLSAgICAgICAg
ZXJyb3Jfc2V0ZygmbG9jYWxfZXJyLCAiVW5hYmxlIHRvIGNvbm5lY3QgQ1BVJWxkIHRvIGtlcm5l
bCBYSUNTOiAlcyIsDQo+IC0gICAgICAgICAgICAgICAgICAgdmNwdV9pZCwgc3RyZXJyb3IoZXJy
bm8pKTsNCj4gKyAgICAgICAgZXJyb3Jfc2V0Z19lcnJubygmbG9jYWxfZXJyLCBlcnJubywNCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAiVW5hYmxlIHRvIGNvbm5lY3QgQ1BVJWxkIHRvIGtl
cm5lbCBYSUNTIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICB2Y3B1X2lkKTsNCj4gICAg
ICAgICBpZiAoZXJybm8gPT0gRU5PU1BDKSB7DQo+ICAgICAgICAgICAgIGVycm9yX2FwcGVuZF9o
aW50KCZsb2NhbF9lcnIsICJUcnkgLXNtcCBtYXhjcHVzPU4gd2l0aCBOIDwgJXVcbiIsDQo+ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BQ0hJTkUocWRldl9nZXRfbWFjaGluZSgpKS0+
c21wLm1heF9jcHVzKTsNCj4gZGlmZiAtLWdpdCBhL2h3L3JlbW90ZS92ZmlvLXVzZXItb2JqLmMg
Yi9ody9yZW1vdGUvdmZpby11c2VyLW9iai5jDQo+IGluZGV4IDIxNmI0ODc2ZTIuLjI0YzAwODhm
NjMgMTAwNjQ0DQo+IC0tLSBhL2h3L3JlbW90ZS92ZmlvLXVzZXItb2JqLmMNCj4gKysrIGIvaHcv
cmVtb3RlL3ZmaW8tdXNlci1vYmouYw0KPiBAQCAtNzUxLDcgKzc1MSw3IEBAIHN0YXRpYyB2b2lk
IHZmdV9vYmplY3RfaW5pdF9jdHgoVmZ1T2JqZWN0ICpvLCBFcnJvciAqKmVycnApDQo+ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCVkZJT19VU0VSX0ZMQUdfQVRUQUNIX05CLA0K
PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8sIFZGVV9ERVZfVFlQRV9QQ0kpOw0K
PiAgICAgaWYgKG8tPnZmdV9jdHggPT0gTlVMTCkgew0KPiAtICAgICAgICBlcnJvcl9zZXRnKGVy
cnAsICJ2ZnU6IEZhaWxlZCB0byBjcmVhdGUgY29udGV4dCAtICVzIiwgc3RyZXJyb3IoZXJybm8p
KTsNCj4gKyAgICAgICAgZXJyb3Jfc2V0Z19lcnJubyhlcnJwLCBlcnJubywgInZmdTogRmFpbGVk
IHRvIGNyZWF0ZSBjb250ZXh0Iik7DQo+ICAgICAgICAgcmV0dXJuOw0KPiAgICAgfQ0KPiANCj4g
QEAgLTc3Niw5ICs3NzYsOSBAQCBzdGF0aWMgdm9pZCB2ZnVfb2JqZWN0X2luaXRfY3R4KFZmdU9i
amVjdCAqbywgRXJyb3IgKiplcnJwKQ0KPiANCj4gICAgIHJldCA9IHZmdV9wY2lfaW5pdChvLT52
ZnVfY3R4LCBwY2lfdHlwZSwgUENJX0hFQURFUl9UWVBFX05PUk1BTCwgMCk7DQo+ICAgICBpZiAo
cmV0IDwgMCkgew0KPiAtICAgICAgICBlcnJvcl9zZXRnKGVycnAsDQo+IC0gICAgICAgICAgICAg
ICAgICAgInZmdTogRmFpbGVkIHRvIGF0dGFjaCBQQ0kgZGV2aWNlICVzIHRvIGNvbnRleHQgLSAl
cyIsDQo+IC0gICAgICAgICAgICAgICAgICAgby0+ZGV2aWNlLCBzdHJlcnJvcihlcnJubykpOw0K
PiArICAgICAgICBlcnJvcl9zZXRnX2Vycm5vKGVycnAsIGVycm5vLA0KPiArICAgICAgICAgICAg
ICAgICAgICAgICAgICJ2ZnU6IEZhaWxlZCB0byBhdHRhY2ggUENJIGRldmljZSAlcyB0byBjb250
ZXh0IiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICBvLT5kZXZpY2UpOw0KPiAgICAgICAg
IGdvdG8gZmFpbDsNCj4gICAgIH0NCj4gDQo+IEBAIC03OTIsOSArNzkyLDkgQEAgc3RhdGljIHZv
aWQgdmZ1X29iamVjdF9pbml0X2N0eChWZnVPYmplY3QgKm8sIEVycm9yICoqZXJycCkNCj4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVkZVX1JFR0lPTl9GTEFHX1JXIHwgVkZVX1JFR0lPTl9G
TEFHX0FMV0FZU19DQiwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCwgLTEs
IDApOw0KPiAgICAgaWYgKHJldCA8IDApIHsNCj4gLSAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLA0K
PiAtICAgICAgICAgICAgICAgICAgICJ2ZnU6IEZhaWxlZCB0byBzZXR1cCBjb25maWcgc3BhY2Ug
aGFuZGxlcnMgZm9yICVzLSAlcyIsDQo+IC0gICAgICAgICAgICAgICAgICAgby0+ZGV2aWNlLCBz
dHJlcnJvcihlcnJubykpOw0KPiArICAgICAgICBlcnJvcl9zZXRnX2Vycm5vKGVycnAsIGVycm5v
LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICJ2ZnU6IEZhaWxlZCB0byBzZXR1cCBjb25m
aWcgc3BhY2UgaGFuZGxlcnMgZm9yICVzIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICBv
LT5kZXZpY2UpOw0KPiAgICAgICAgIGdvdG8gZmFpbDsNCj4gICAgIH0NCj4gDQo+IEBAIC04MjIs
OCArODIyLDggQEAgc3RhdGljIHZvaWQgdmZ1X29iamVjdF9pbml0X2N0eChWZnVPYmplY3QgKm8s
IEVycm9yICoqZXJycCkNCj4gDQo+ICAgICByZXQgPSB2ZnVfcmVhbGl6ZV9jdHgoby0+dmZ1X2N0
eCk7DQo+ICAgICBpZiAocmV0IDwgMCkgew0KPiAtICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJ2
ZnU6IEZhaWxlZCB0byByZWFsaXplIGRldmljZSAlcy0gJXMiLA0KPiAtICAgICAgICAgICAgICAg
ICAgIG8tPmRldmljZSwgc3RyZXJyb3IoZXJybm8pKTsNCj4gKyAgICAgICAgZXJyb3Jfc2V0Z19l
cnJubyhlcnJwLCBlcnJubywgInZmdTogRmFpbGVkIHRvIHJlYWxpemUgZGV2aWNlICVzIiwNCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICBvLT5kZXZpY2UpOw0KPiAgICAgICAgIGdvdG8gZmFp
bDsNCj4gICAgIH0NCj4gDQo+IGRpZmYgLS1naXQgYS9ody9zZW5zb3IvZW1jMTQxeC5jIGIvaHcv
c2Vuc29yL2VtYzE0MXguYw0KPiBpbmRleCA3YjJjZTM4M2ExLi5hNTFmYzQ0Mzk1IDEwMDY0NA0K
PiAtLS0gYS9ody9zZW5zb3IvZW1jMTQxeC5jDQo+ICsrKyBiL2h3L3NlbnNvci9lbWMxNDF4LmMN
Cj4gQEAgLTU5LDcgKzU5LDcgQEAgc3RhdGljIHZvaWQgZW1jMTQxeF9nZXRfdGVtcGVyYXR1cmUo
T2JqZWN0ICpvYmosIFZpc2l0b3IgKnYsIGNvbnN0IGNoYXIgKm5hbWUsDQo+ICAgICB1bnNpZ25l
ZCB0ZW1waWQ7DQo+IA0KPiAgICAgaWYgKHNzY2FuZihuYW1lLCAidGVtcGVyYXR1cmUldSIsICZ0
ZW1waWQpICE9IDEpIHsNCj4gLSAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiZXJyb3IgcmVhZGlu
ZyAlczogJXMiLCBuYW1lLCBnX3N0cmVycm9yKGVycm5vKSk7DQo+ICsgICAgICAgIGVycm9yX3Nl
dGdfZXJybm8oZXJycCwgZXJybm8sICJlcnJvciByZWFkaW5nICVzIiwgbmFtZSk7DQo+ICAgICAg
ICAgcmV0dXJuOw0KPiAgICAgfQ0KPiANCj4gQEAgLTg2LDcgKzg2LDcgQEAgc3RhdGljIHZvaWQg
ZW1jMTQxeF9zZXRfdGVtcGVyYXR1cmUoT2JqZWN0ICpvYmosIFZpc2l0b3IgKnYsIGNvbnN0IGNo
YXIgKm5hbWUsDQo+ICAgICB9DQo+IA0KPiAgICAgaWYgKHNzY2FuZihuYW1lLCAidGVtcGVyYXR1
cmUldSIsICZ0ZW1waWQpICE9IDEpIHsNCj4gLSAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiZXJy
b3IgcmVhZGluZyAlczogJXMiLCBuYW1lLCBnX3N0cmVycm9yKGVycm5vKSk7DQo+ICsgICAgICAg
IGVycm9yX3NldGdfZXJybm8oZXJycCwgZXJybm8sICJlcnJvciByZWFkaW5nICVzIiwgbmFtZSk7
DQo+ICAgICAgICAgcmV0dXJuOw0KPiAgICAgfQ0KPiANCj4gZGlmZiAtLWdpdCBhL2h3L3NlbnNv
ci90bXA0MjEuYyBiL2h3L3NlbnNvci90bXA0MjEuYw0KPiBpbmRleCAzNDIxYzQ0MDg2Li4xMjdl
ZGQwYmE1IDEwMDY0NA0KPiAtLS0gYS9ody9zZW5zb3IvdG1wNDIxLmMNCj4gKysrIGIvaHcvc2Vu
c29yL3RtcDQyMS5jDQo+IEBAIC0xMTcsNyArMTE3LDcgQEAgc3RhdGljIHZvaWQgdG1wNDIxX2dl
dF90ZW1wZXJhdHVyZShPYmplY3QgKm9iaiwgVmlzaXRvciAqdiwgY29uc3QgY2hhciAqbmFtZSwN
Cj4gICAgIGludCB0ZW1waWQ7DQo+IA0KPiAgICAgaWYgKHNzY2FuZihuYW1lLCAidGVtcGVyYXR1
cmUlZCIsICZ0ZW1waWQpICE9IDEpIHsNCj4gLSAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiZXJy
b3IgcmVhZGluZyAlczogJXMiLCBuYW1lLCBnX3N0cmVycm9yKGVycm5vKSk7DQo+ICsgICAgICAg
IGVycm9yX3NldGdfZXJybm8oZXJycCwgZXJybm8sICJlcnJvciByZWFkaW5nICVzIiwgbmFtZSk7
DQo+ICAgICAgICAgcmV0dXJuOw0KPiAgICAgfQ0KPiANCj4gQEAgLTE1NCw3ICsxNTQsNyBAQCBz
dGF0aWMgdm9pZCB0bXA0MjFfc2V0X3RlbXBlcmF0dXJlKE9iamVjdCAqb2JqLCBWaXNpdG9yICp2
LCBjb25zdCBjaGFyICpuYW1lLA0KPiAgICAgfQ0KPiANCj4gICAgIGlmIChzc2NhbmYobmFtZSwg
InRlbXBlcmF0dXJlJWQiLCAmdGVtcGlkKSAhPSAxKSB7DQo+IC0gICAgICAgIGVycm9yX3NldGco
ZXJycCwgImVycm9yIHJlYWRpbmcgJXM6ICVzIiwgbmFtZSwgZ19zdHJlcnJvcihlcnJubykpOw0K
PiArICAgICAgICBlcnJvcl9zZXRnX2Vycm5vKGVycnAsIGVycm5vLCAiZXJyb3IgcmVhZGluZyAl
cyIsIG5hbWUpOw0KPiAgICAgICAgIHJldHVybjsNCj4gICAgIH0NCj4gDQo+IGRpZmYgLS1naXQg
YS9ody9zbWJpb3Mvc21iaW9zLmMgYi9ody9zbWJpb3Mvc21iaW9zLmMNCj4gaW5kZXggNzU1OGIy
YWQ4My4uYjIyOGY5ZWI4NSAxMDA2NDQNCj4gLS0tIGEvaHcvc21iaW9zL3NtYmlvcy5jDQo+ICsr
KyBiL2h3L3NtYmlvcy9zbWJpb3MuYw0KPiBAQCAtMTI4MSw4ICsxMjgxLDggQEAgc3RhdGljIGlu
dCBzYXZlX29wdF9vbmUodm9pZCAqb3BhcXVlLA0KPiAgICAgICAgICAgICAgICAgYnJlYWs7DQo+
ICAgICAgICAgICAgIH0NCj4gICAgICAgICAgICAgaWYgKHJldCA8IDApIHsNCj4gLSAgICAgICAg
ICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJVbmFibGUgdG8gcmVhZCBmcm9tICVzOiAlcyIsDQo+
IC0gICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwgc3RyZXJyb3IoZXJybm8pKTsNCj4g
KyAgICAgICAgICAgICAgICBlcnJvcl9zZXRnX2Vycm5vKGVycnAsIGVycm5vLCAiVW5hYmxlIHRv
IHJlYWQgZnJvbSAlcyIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1
ZSk7DQo+ICAgICAgICAgICAgICAgICBxZW11X2Nsb3NlKGZkKTsNCj4gICAgICAgICAgICAgICAg
IHJldHVybiAtMTsNCj4gICAgICAgICAgICAgfQ0KPiBkaWZmIC0tZ2l0IGEvaHcvdmlydGlvL3Zk
cGEtZGV2LmMgYi9ody92aXJ0aW8vdmRwYS1kZXYuYw0KPiBpbmRleCA0YTdiOTcwOTc2Li5mOTdk
NTc2MTcxIDEwMDY0NA0KPiAtLS0gYS9ody92aXJ0aW8vdmRwYS1kZXYuYw0KPiArKysgYi9ody92
aXJ0aW8vdmRwYS1kZXYuYw0KPiBAQCAtNDEsOCArNDEsOCBAQCB2aG9zdF92ZHBhX2RldmljZV9n
ZXRfdTMyKGludCBmZCwgdW5zaWduZWQgbG9uZyBpbnQgY21kLCBFcnJvciAqKmVycnApDQo+ICAg
ICB1aW50MzJfdCB2YWwgPSAodWludDMyX3QpLTE7DQo+IA0KPiAgICAgaWYgKGlvY3RsKGZkLCBj
bWQsICZ2YWwpIDwgMCkgew0KPiAtICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJ2aG9zdC12ZHBh
LWRldmljZTogY21kIDB4JWx4IGZhaWxlZDogJXMiLA0KPiAtICAgICAgICAgICAgICAgICAgIGNt
ZCwgc3RyZXJyb3IoZXJybm8pKTsNCj4gKyAgICAgICAgZXJyb3Jfc2V0Z19lcnJubyhlcnJwLCBl
cnJubywgInZob3N0LXZkcGEtZGV2aWNlOiBjbWQgMHglbHggZmFpbGVkIiwNCj4gKyAgICAgICAg
ICAgICAgICAgICAgICAgICBjbWQpOw0KPiAgICAgfQ0KPiANCj4gICAgIHJldHVybiB2YWw7DQo+
IGRpZmYgLS1naXQgYS9taWdyYXRpb24vcG9zdGNvcHktcmFtLmMgYi9taWdyYXRpb24vcG9zdGNv
cHktcmFtLmMNCj4gaW5kZXggM2Y5OGRjYjZmZC4uNTQ1NDM3MmFjNiAxMDA2NDQNCj4gLS0tIGEv
bWlncmF0aW9uL3Bvc3Rjb3B5LXJhbS5jDQo+ICsrKyBiL21pZ3JhdGlvbi9wb3N0Y29weS1yYW0u
Yw0KPiBAQCAtNTgyLDcgKzU4Miw3IEBAIGJvb2wgcG9zdGNvcHlfcmFtX3N1cHBvcnRlZF9ieV9o
b3N0KE1pZ3JhdGlvbkluY29taW5nU3RhdGUgKm1pcywgRXJyb3IgKiplcnJwKQ0KPiANCj4gICAg
IHVmZCA9IHVmZmRfb3BlbihPX0NMT0VYRUMpOw0KPiAgICAgaWYgKHVmZCA9PSAtMSkgew0KPiAt
ICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJVc2VyZmF1bHRmZCBub3QgYXZhaWxhYmxlOiAlcyIs
IHN0cmVycm9yKGVycm5vKSk7DQo+ICsgICAgICAgIGVycm9yX3NldGdfZXJybm8oZXJycCwgZXJy
bm8sICJVc2VyZmF1bHRmZCBub3QgYXZhaWxhYmxlIik7DQo+ICAgICAgICAgZ290byBvdXQ7DQo+
ICAgICB9DQo+IA0KPiBAQCAtNjIwLDcgKzYyMCw3IEBAIGJvb2wgcG9zdGNvcHlfcmFtX3N1cHBv
cnRlZF9ieV9ob3N0KE1pZ3JhdGlvbkluY29taW5nU3RhdGUgKm1pcywgRXJyb3IgKiplcnJwKQ0K
PiAgICAgICogaXQgd2FzIGVuYWJsZWQuDQo+ICAgICAgKi8NCj4gICAgIGlmIChtdW5sb2NrYWxs
KCkpIHsNCj4gLSAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAibXVubG9ja2FsbCgpIGZhaWxlZDog
JXMiLCBzdHJlcnJvcihlcnJubykpOw0KPiArICAgICAgICBlcnJvcl9zZXRnX2Vycm5vKGVycnAs
IGVycm5vLCAibXVubG9ja2FsbCgpIGZhaWxlZCIpOw0KPiAgICAgICAgIGdvdG8gb3V0Ow0KPiAg
ICAgfQ0KPiANCj4gQEAgLTYzMiw3ICs2MzIsNyBAQCBib29sIHBvc3Rjb3B5X3JhbV9zdXBwb3J0
ZWRfYnlfaG9zdChNaWdyYXRpb25JbmNvbWluZ1N0YXRlICptaXMsIEVycm9yICoqZXJycCkNCj4g
ICAgIHRlc3RhcmVhID0gbW1hcChOVUxMLCBwYWdlc2l6ZSwgUFJPVF9SRUFEIHwgUFJPVF9XUklU
RSwgTUFQX1BSSVZBVEUgfA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBN
QVBfQU5PTllNT1VTLCAtMSwgMCk7DQo+ICAgICBpZiAodGVzdGFyZWEgPT0gTUFQX0ZBSUxFRCkg
ew0KPiAtICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJGYWlsZWQgdG8gbWFwIHRlc3QgYXJlYTog
JXMiLCBzdHJlcnJvcihlcnJubykpOw0KPiArICAgICAgICBlcnJvcl9zZXRnX2Vycm5vKGVycnAs
IGVycm5vLCAiRmFpbGVkIHRvIG1hcCB0ZXN0IGFyZWEiKTsNCj4gICAgICAgICBnb3RvIG91dDsN
Cj4gICAgIH0NCj4gICAgIGdfYXNzZXJ0KFFFTVVfUFRSX0lTX0FMSUdORUQodGVzdGFyZWEsIHBh
Z2VzaXplKSk7DQo+IEBAIC02NDIsMTQgKzY0MiwxNCBAQCBib29sIHBvc3Rjb3B5X3JhbV9zdXBw
b3J0ZWRfYnlfaG9zdChNaWdyYXRpb25JbmNvbWluZ1N0YXRlICptaXMsIEVycm9yICoqZXJycCkN
Cj4gICAgIHJlZ19zdHJ1Y3QubW9kZSA9IFVGRkRJT19SRUdJU1RFUl9NT0RFX01JU1NJTkc7DQo+
IA0KPiAgICAgaWYgKGlvY3RsKHVmZCwgVUZGRElPX1JFR0lTVEVSLCAmcmVnX3N0cnVjdCkpIHsN
Cj4gLSAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiVUZGRElPX1JFR0lTVEVSIGZhaWxlZDogJXMi
LCBzdHJlcnJvcihlcnJubykpOw0KPiArICAgICAgICBlcnJvcl9zZXRnX2Vycm5vKGVycnAsIGVy
cm5vLCAiVUZGRElPX1JFR0lTVEVSIGZhaWxlZCIpOw0KPiAgICAgICAgIGdvdG8gb3V0Ow0KPiAg
ICAgfQ0KPiANCj4gICAgIHJhbmdlX3N0cnVjdC5zdGFydCA9ICh1aW50cHRyX3QpdGVzdGFyZWE7
DQo+ICAgICByYW5nZV9zdHJ1Y3QubGVuID0gcGFnZXNpemU7DQo+ICAgICBpZiAoaW9jdGwodWZk
LCBVRkZESU9fVU5SRUdJU1RFUiwgJnJhbmdlX3N0cnVjdCkpIHsNCj4gLSAgICAgICAgZXJyb3Jf
c2V0ZyhlcnJwLCAiVUZGRElPX1VOUkVHSVNURVIgZmFpbGVkOiAlcyIsIHN0cmVycm9yKGVycm5v
KSk7DQo+ICsgICAgICAgIGVycm9yX3NldGdfZXJybm8oZXJycCwgZXJybm8sICJVRkZESU9fVU5S
RUdJU1RFUiBmYWlsZWQiKTsNCj4gICAgICAgICBnb3RvIG91dDsNCj4gICAgIH0NCj4gDQo+IGRp
ZmYgLS1naXQgYS9uZXQvc2xpcnAuYyBiL25ldC9zbGlycC5jDQo+IGluZGV4IDU5OTZmZWM1MTIu
LjA0OTI1ZjMzMTggMTAwNjQ0DQo+IC0tLSBhL25ldC9zbGlycC5jDQo+ICsrKyBiL25ldC9zbGly
cC5jDQo+IEBAIC0xMDIwLDggKzEwMjAsOSBAQCBzdGF0aWMgaW50IHNsaXJwX3NtYihTbGlycFN0
YXRlKiBzLCBjb25zdCBjaGFyICpleHBvcnRlZF9kaXIsDQo+ICAgICB9DQo+IA0KPiAgICAgaWYg
KGFjY2VzcyhleHBvcnRlZF9kaXIsIFJfT0sgfCBYX09LKSkgew0KPiAtICAgICAgICBlcnJvcl9z
ZXRnKGVycnAsICJFcnJvciBhY2Nlc3Npbmcgc2hhcmVkIGRpcmVjdG9yeSAnJXMnOiAlcyIsDQo+
IC0gICAgICAgICAgICAgICAgICAgZXhwb3J0ZWRfZGlyLCBzdHJlcnJvcihlcnJubykpOw0KPiAr
ICAgICAgICBlcnJvcl9zZXRnX2Vycm5vKGVycnAsIGVycm5vLA0KPiArICAgICAgICAgICAgICAg
ICAgICAgICAgICJFcnJvciBhY2Nlc3Npbmcgc2hhcmVkIGRpcmVjdG9yeSAnJXMnIiwNCj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICBleHBvcnRlZF9kaXIpOw0KPiAgICAgICAgIHJldHVybiAt
MTsNCj4gICAgIH0NCj4gDQo+IGRpZmYgLS1naXQgYS9xZ2EvY29tbWFuZHMtcG9zaXgtc3NoLmMg
Yi9xZ2EvY29tbWFuZHMtcG9zaXgtc3NoLmMNCj4gaW5kZXggMjQ2MTcxZDMyMy4uNjYxOTcyZTM0
ZSAxMDA2NDQNCj4gLS0tIGEvcWdhL2NvbW1hbmRzLXBvc2l4LXNzaC5jDQo+ICsrKyBiL3FnYS9j
b21tYW5kcy1wb3NpeC1zc2guYw0KPiBAQCAtNjEsMjAgKzYxLDIyIEBAIG1rZGlyX2Zvcl91c2Vy
KGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IHN0cnVjdCBwYXNzd2QgKnAsDQo+ICAgICAgICAgICAg
ICAgIG1vZGVfdCBtb2RlLCBFcnJvciAqKmVycnApDQo+IHsNCj4gICAgIGlmIChnX21rZGlyKHBh
dGgsIG1vZGUpID09IC0xKSB7DQo+IC0gICAgICAgIGVycm9yX3NldGcoZXJycCwgImZhaWxlZCB0
byBjcmVhdGUgZGlyZWN0b3J5ICclcyc6ICVzIiwNCj4gLSAgICAgICAgICAgICAgICAgICBwYXRo
LCBnX3N0cmVycm9yKGVycm5vKSk7DQo+ICsgICAgICAgIGVycm9yX3NldGdfZXJybm8oZXJycCwg
ZXJybm8sICJmYWlsZWQgdG8gY3JlYXRlIGRpcmVjdG9yeSAnJXMnIiwNCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXRoKTsNCj4gICAgICAgICByZXR1cm4gZmFsc2U7DQo+ICAgICB9DQo+
IA0KPiAgICAgaWYgKGNob3duKHBhdGgsIHAtPnB3X3VpZCwgcC0+cHdfZ2lkKSA9PSAtMSkgew0K
PiAtICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJmYWlsZWQgdG8gc2V0IG93bmVyc2hpcCBvZiBk
aXJlY3RvcnkgJyVzJzogJXMiLA0KPiAtICAgICAgICAgICAgICAgICAgIHBhdGgsIGdfc3RyZXJy
b3IoZXJybm8pKTsNCj4gKyAgICAgICAgZXJyb3Jfc2V0Z19lcnJubyhlcnJwLCBlcnJubywNCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAiZmFpbGVkIHRvIHNldCBvd25lcnNoaXAgb2YgZGly
ZWN0b3J5ICclcyciLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgpOw0KPiAgICAg
ICAgIHJldHVybiBmYWxzZTsNCj4gICAgIH0NCj4gDQo+ICAgICBpZiAoY2htb2QocGF0aCwgbW9k
ZSkgPT0gLTEpIHsNCj4gLSAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiZmFpbGVkIHRvIHNldCBw
ZXJtaXNzaW9ucyBvZiBkaXJlY3RvcnkgJyVzJzogJXMiLA0KPiAtICAgICAgICAgICAgICAgICAg
IHBhdGgsIGdfc3RyZXJyb3IoZXJybm8pKTsNCj4gKyAgICAgICAgZXJyb3Jfc2V0Z19lcnJubyhl
cnJwLCBlcnJubywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAiZmFpbGVkIHRvIHNldCBw
ZXJtaXNzaW9ucyBvZiBkaXJlY3RvcnkgJyVzJyIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgcGF0aCk7DQo+ICAgICAgICAgcmV0dXJuIGZhbHNlOw0KPiAgICAgfQ0KPiANCj4gQEAgLTk1
LDE0ICs5NywxNSBAQCB3cml0ZV9hdXRoa2V5cyhjb25zdCBjaGFyICpwYXRoLCBjb25zdCBHU3Ry
diBrZXlzLA0KPiAgICAgfQ0KPiANCj4gICAgIGlmIChjaG93bihwYXRoLCBwLT5wd191aWQsIHAt
PnB3X2dpZCkgPT0gLTEpIHsNCj4gLSAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiZmFpbGVkIHRv
IHNldCBvd25lcnNoaXAgb2YgZGlyZWN0b3J5ICclcyc6ICVzIiwNCj4gLSAgICAgICAgICAgICAg
ICAgICBwYXRoLCBnX3N0cmVycm9yKGVycm5vKSk7DQo+ICsgICAgICAgIGVycm9yX3NldGdfZXJy
bm8oZXJycCwgZXJybm8sDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgImZhaWxlZCB0byBz
ZXQgb3duZXJzaGlwIG9mIGRpcmVjdG9yeSAnJXMnIiwNCj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXRoKTsNCj4gICAgICAgICByZXR1cm4gZmFsc2U7DQo+ICAgICB9DQo+IA0KPiAgICAg
aWYgKGNobW9kKHBhdGgsIDA2MDApID09IC0xKSB7DQo+IC0gICAgICAgIGVycm9yX3NldGcoZXJy
cCwgImZhaWxlZCB0byBzZXQgcGVybWlzc2lvbnMgb2YgJyVzJzogJXMiLA0KPiAtICAgICAgICAg
ICAgICAgICAgIHBhdGgsIGdfc3RyZXJyb3IoZXJybm8pKTsNCj4gKyAgICAgICAgZXJyb3Jfc2V0
Z19lcnJubyhlcnJwLCBlcnJubywgImZhaWxlZCB0byBzZXQgcGVybWlzc2lvbnMgb2YgJyVzJyIs
DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCk7DQo+ICAgICAgICAgcmV0dXJuIGZh
bHNlOw0KPiAgICAgfQ0KPiANCj4gZGlmZiAtLWdpdCBhL3N5c3RlbS92bC5jIGIvc3lzdGVtL3Zs
LmMNCj4gaW5kZXggNTA5MWZlNTJkOS4uMmVmNWI0YjNiMiAxMDA2NDQNCj4gLS0tIGEvc3lzdGVt
L3ZsLmMNCj4gKysrIGIvc3lzdGVtL3ZsLmMNCj4gQEAgLTYxOSw3ICs2MTksNyBAQCBzdGF0aWMg
aW50IHBhcnNlX2FkZF9mZCh2b2lkICpvcGFxdWUsIFFlbXVPcHRzICpvcHRzLCBFcnJvciAqKmVy
cnApDQo+ICAgICB9DQo+ICNlbmRpZg0KPiAgICAgaWYgKGR1cGZkID09IC0xKSB7DQo+IC0gICAg
ICAgIGVycm9yX3NldGcoZXJycCwgImVycm9yIGR1cGxpY2F0aW5nIGZkOiAlcyIsIHN0cmVycm9y
KGVycm5vKSk7DQo+ICsgICAgICAgIGVycm9yX3NldGdfZXJybm8oZXJycCwgZXJybm8sICJlcnJv
ciBkdXBsaWNhdGluZyBmZCIpOw0KPiAgICAgICAgIHJldHVybiAtMTsNCj4gICAgIH0NCj4gDQo+
IGRpZmYgLS1naXQgYS90YXJnZXQvcHBjL2t2bS5jIGIvdGFyZ2V0L3BwYy9rdm0uYw0KPiBpbmRl
eCA0MzEyNGJmMWM3Li4zNTAxYjVkNTQ2IDEwMDY0NA0KPiAtLS0gYS90YXJnZXQvcHBjL2t2bS5j
DQo+ICsrKyBiL3RhcmdldC9wcGMva3ZtLmMNCj4gQEAgLTI2OTksOSArMjY5OSw4IEBAIGludCBr
dm1wcGNfZ2V0X2h0YWJfZmQoYm9vbCB3cml0ZSwgdWludDY0X3QgaW5kZXgsIEVycm9yICoqZXJy
cCkNCj4gDQo+ICAgICByZXQgPSBrdm1fdm1faW9jdGwoa3ZtX3N0YXRlLCBLVk1fUFBDX0dFVF9I
VEFCX0ZELCAmcyk7DQo+ICAgICBpZiAocmV0IDwgMCkgew0KPiAtICAgICAgICBlcnJvcl9zZXRn
KGVycnAsICJVbmFibGUgdG8gb3BlbiBmZCBmb3IgJXMgSFBUICVzIEtWTTogJXMiLA0KPiAtICAg
ICAgICAgICAgICAgICAgIHdyaXRlID8gIndyaXRpbmciIDogInJlYWRpbmciLCB3cml0ZSA/ICJ0
byIgOiAiZnJvbSIsDQo+IC0gICAgICAgICAgICAgICAgICAgc3RyZXJyb3IoZXJybm8pKTsNCj4g
KyAgICAgICAgZXJyb3Jfc2V0Z19lcnJubyhlcnJwLCBlcnJubywgIlVuYWJsZSB0byBvcGVuIGZk
IGZvciAlcyBIUFQgJXMgS1ZNIiwNCj4gKyAgICAgICAgICAgICAgICAgICB3cml0ZSA/ICJ3cml0
aW5nIiA6ICJyZWFkaW5nIiwgd3JpdGUgPyAidG8iIDogImZyb20iKTsNCj4gICAgICAgICByZXR1
cm4gLWVycm5vOw0KPiAgICAgfQ0KPiANCj4gLS0gDQo+IDIuNDkuMA0KPiANCg0K


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 16:54:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 16:54:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171501.1496503 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNZpA-0000Wf-7F; Mon, 24 Nov 2025 16:54:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171501.1496503; Mon, 24 Nov 2025 16:54: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 1vNZpA-0000WY-3z; Mon, 24 Nov 2025 16:54:00 +0000
Received: by outflank-mailman (input) for mailman id 1171501;
 Mon, 24 Nov 2025 16:53: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=CeM5=6A=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNZp8-0000WQ-T8
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 16:53:59 +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 29a80347-c956-11f0-980a-7dc792cee155;
 Mon, 24 Nov 2025 17:53:55 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-47789cd2083so26908605e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 08:53: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-42cb7f2e574sm29280569f8f.3.2025.11.24.08.53.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 08:53: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: 29a80347-c956-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764003235; x=1764608035; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=255gjY9HRiak5TATxmxLhe7oTxxBeICpR032HxIw32M=;
        b=ACy/eH5t08UWdU0LcyYeDnx1f7aFVofXsC9jsZCJFZ0GqsGaLHImjP9OAAb30w91eN
         qnjKIYuCLQU5Rw37+WjwcwcCP8QQGPEJ1vXzP/v1XSdJN10gGb/LdsAOW7NDs+oSPY0B
         urRCJT7yzPtridg8/zUUcbcBWGKHrutTWoGa5A/gHVf//71h0yUNz8gjRuiHHdAEC9P5
         LVmedCAdX17xzLpRv1CLv/Yr0fQ5YQWasLvjnVlZQGql5K+U33r8I96nj1omYTXDgtBW
         5hGjNM3RpOwFPYCYmMx3g/BcqR4OLvAaCOzzhhbz88dlNwifh9KyV0xthvt/2ICKgvHr
         evjQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764003235; x=1764608035;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=255gjY9HRiak5TATxmxLhe7oTxxBeICpR032HxIw32M=;
        b=en5VmNld80J3ONB41BN7XpDKctWEh/tN+mhQM6eVClX/hPkAzDxfG4zHoGJr9krp0B
         je0za+D4oWxPR8ksFrkOl+mRoeFYyh9F7LD+g2ihagNqaot8Kyms/Xu198efOTMPN5sb
         75hkTvV8IkXnzU2qhIFW7yBE/pRHmolvXVLbh+lohumMkfM53BUijzOrE0u4TxGl9Vhg
         YrT2Jhxx+xngABUq9FioI8pC0h7d7HKzSZ9cEiAt881HlaXF2PbdFvBs2BcL737tUt+b
         Es1Z6EJwqJ3KoVqc7Ma801z5Sz2FfCZjVFlQOGLmkSTW+MpphyG6WZZr+Eb1ZzfnJkUG
         ACzg==
X-Forwarded-Encrypted: i=1; AJvYcCVv+6FGsX3MTQANvbtX01sZnwjL8SAJ50YAivLoKWr7VXo5Q1AfODOcSncWFDGmlnSG+308985/ZrU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzj+8RVH6aRXZVvCq8QMgYFWUhTWi/0sWs0bqJrKGCwl/HJhW1Q
	jeedNmnVOvet7LZz7hyog+gTeAdU9yoBz3x2ItEQvWhSsz8MWqGFUl/inRQNk24t4g==
X-Gm-Gg: ASbGncvZyi9N/F2nTjbhnfzYq7i/gxl7iEV9X6Hm5QbM1pomc/YYc7KIAleneqLsiXb
	9Op9/s0Gu5VQHPL2s9LPhmNzP8MsEy1oHYK2ckluz2hD8HUHdrk3/X1hWqrDwa9Z4cTulh6130B
	vnnaCHRFnk188UrVr5X6hSkPRtfeBaf5QpMwjsHtb+t9mdCoDjAEfc6GSwMLJLlWvNqEayQXD5K
	caizE5s9mg/lp6bK6DDPnEmLS4vW8nRhvAUs7Ijby+1SuBljpwdY94UeQ8VaF+YDWUcV3ffAwig
	XnuB2cS7btDHP5oOUACUAK39mQC3+exh6ANlgfRUD+srb5EvKQwKUoknrtFFJDdPiYQk5NsGqGQ
	Kdj7+f6DS9CsxKemGJtJ3WWIMsUBhDdHt59vgDqIuTtUc6j6xM2guggcTQijOQ0s6n30VUyK+eg
	PJxNVnJZD9gamDqgozlWgsbHGr30GR1KM+n1EGsBAbHuYdY4Y0ctNRrxRUnwxd+Wf8RdGKeGrUG
	JyFASKFZRWpbQ==
X-Google-Smtp-Source: AGHT+IEGFbU3a+h0zxgrcinDqwSSn+YTwh9UqQG1KEiG/pW5Lk4cNhCEyBW2DPHXw1O7ZWA13lovJw==
X-Received: by 2002:a05:600c:3589:b0:477:97c7:9be7 with SMTP id 5b1f17b1804b1-477c110262fmr127873365e9.1.1764003234641;
        Mon, 24 Nov 2025 08:53:54 -0800 (PST)
Message-ID: <f4741251-0772-4a7a-86ec-951d08b22517@suse.com>
Date: Mon, 24 Nov 2025 17:53:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: Remove x86 prefixed names from cpuinfo for intel.c
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <20251124111942.1325635-1-kevin.lampis@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: <20251124111942.1325635-1-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2025 12:19, Kevin Lampis wrote:
> struct cpuinfo_x86
>   .x86        => .family
>   .x86_vendor => .vendor
>   .x86_model  => .model
>   .x86_mask   => .stepping
> 
> No functional change.
> 
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
with a few nits (can likely be taken care of while committing):

> @@ -458,7 +458,7 @@ static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
>  {
>  	uint64_t val;
>  
> -	if ((c->x86 == 15) && (c->x86_model == 1) && (c->x86_mask == 1)) {
> +	if ( c->vfm == INTEL_P4_WILLAMETTE && c->stepping == 1 ) {

If already you do adjustments towards Xen style, the figure brace also wants
moving.

> @@ -657,9 +659,11 @@ static void cf_check init_intel(struct cpuinfo_x86 *c)
>  	/* Work around errata */
>  	Intel_errata_workarounds(c);
>  
> -	if ((c->x86 == 0xf && c->x86_model >= 0x03) ||
> -		(c->x86 == 0x6 && c->x86_model >= 0x0e))
> +	if ((c->family == 0xf && c->model >= 0x03) ||
> +		(c->family == 0x6 && c->model >= 0x0e))

Bogus indentation would also want adjusting while touching the line, and ...

> +	{
>  		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
> +	}

... I don't see why figure braces would need adding here.

> --- a/xen/arch/x86/include/asm/intel-family.h
> +++ b/xen/arch/x86/include/asm/intel-family.h
> @@ -179,6 +179,10 @@
>  #define INTEL_XEON_PHI_KNL		IFM(6, 0x57) /* Knights Landing */
>  #define INTEL_XEON_PHI_KNM		IFM(6, 0x85) /* Knights Mill */
>  
> +/* Family 15 - NetBurst */
> +#define INTEL_P4_WILLAMETTE		IFM(15, 0x01) /* Also Xeon Foster */
> +#define INTEL_P4_PRESCOTT		IFM(15, 0x03)

For this likely Andrew's wider patch may want to go in first, so this part
could then be dropped.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 17:15:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 17:15:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171515.1496529 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNaAG-0003aq-2E; Mon, 24 Nov 2025 17:15:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171515.1496529; Mon, 24 Nov 2025 17:15:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNaAF-0003aj-VK; Mon, 24 Nov 2025 17:15:47 +0000
Received: by outflank-mailman (input) for mailman id 1171515;
 Mon, 24 Nov 2025 17:15: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=FZvs=6A=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vNaAE-0003ad-QH
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 17:15:47 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 35e8227a-c959-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 18:15:44 +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 5E8314EE8C8B;
 Mon, 24 Nov 2025 18:15:43 +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: 35e8227a-c959-11f0-9d18-b5c5bf9af7f9
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=1764004543;
	b=FzDgmMdHHsJyKYNCM3TRuI6Cl6alLGP5sHkvMAr7Ln7Dg0Fx+QtWK0CmZzmZrDVsky9h
	 5z2ZYsY0DJ3fhyfK0X1DcI0rTDjxHJhPm/54Om1bVgigvdo+lm9Apw1w5uxIGXntmGahu
	 KUVecAC/vg2700v4fhn6FzEbOQwY/XcNNt5io+li7CGd07qu4C/tn1OgPx0/p1LoHFQ6z
	 7Ny4qUbazhbfk5YuF/c3wwACPPiRYkaRL00XYltsu4qjwKmmrUjyat+tsiCUpTtBZHvJv
	 2z4VWjJGm8L1g0AJMoNtnGwBVDvxt5VRlniBij/IGiqtiSaucRFE96VCM0V5bUqWaHNRi
	 OyaQRmpP0FCzLm2PclOMiRGEX/BDVL7zYsymva8dsnMz17IZ4dgJvncIQ1bBQgxTlU9JN
	 eLcqNdFa5IQUOXyWRyeBAHzZcBGfpIEBtTCAyw3CN0EIh+MuN42q7CnT+QhjIFICAjbBb
	 3omYOJ8vjp/e6p+IGWqd6qHQSL/wY616t7Cu+zii5P+h5kWKC/DWU0UfJpJE2nTD1vNus
	 pKdhCnGOQD6ubYImfxH4qwjCdNa33LZ/MRVj+Xzz3cT6XPwYh4sKJDwpal+C9SGGHKIO8
	 ozkUx3Fjg2jSpt6NSPBGMI9R1LJZEFG9ANdIT9XvCp0jXdEDQnpsAiBLX/n0OhQ=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1764004543;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=cA+qhwu1ZUv2/ZNtFBKumlIMpWo8wuI1OYhnj7fQvAs=;
	b=DMF6132eSVkpRYNtyiJPgcPkcWe4zKU5Up9CDUoc//e8fPAlh1umZVaXTGkYgHkAPgeJ
	 5yh+9bhAH3Vd6br5wRHl3/5KtPObFsZGiSCVDpQ3ok/0x7r/DR9PNLvilFABF/eRMkxZR
	 RkrmzRIp7vfMexJA4vzRkHyDfl3jdQ5ahmnpEmrHKda22epLwDvwfEYX7q36+u7hup3AT
	 13Nx/Qzecx4vUaqxdF8H9GRrBsn0DlcL4fzN+/vuI8dQJXx1EwyiZCQ6Y04XG/xWBwu2c
	 P/P5Zr0FA3o4rkZmWdm8fKsyoLgSV9yEAHeKzxO4PxBZtJ7Ic3sFLHnERp8qv7QTYIQK1
	 iJFzChHxxb5sB/Oata7jdY0R+NgtjWN+arsogQ0Py8kntGnEmbuYTyrm8WjndVKFkz0xB
	 34NgHuMqdxGf7C4QncQrzJjZWYkSsy8zL+XJ40SQsVf0baVWI0HSR0UqpNfpdBINMPZw0
	 1BQQYxf6ZP1py3JOr20aUEYZHkeu/VSuuJNahRrnzGSEgfOJOftK5caaP+4RHkQ3+dLcG
	 wtJ9SOChhBqrPZiLPEdOorT1RdKF/kIlJTlln2rbHTV4Yj2fdKWOgfsJJ/OIS/vGIX2j0
	 wZ8273Yjw7NVl0BcmHNpImDvq8qTHuTPn84flIh3X2Rg0cPrlDxYKb2YUYZdaLw=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1764004543; bh=H/9ZHD9Ggfvgzq4TlreYcPz0OnyJKMRvYGWeOW1Q7LY=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=dDE8VcaT2AZws6wgDoLH+23haKWlAqw5U/xLD1fxoWSSQwQTDqMv/qNGeynSnj3bJ
	 jDI6p9UuPDlt3qnxi7Ken37BndLIhq0hb4xth3l2grUI+3U6JtQlutSyHcVuBTgK+L
	 QbGrqeKUp0i4RDuRGAkszJsKcx2/4A9t2WvhJ0hz/c+wYjDevx3ikVizcUk9N3Zm6S
	 pm6Zz33uiPvULpJcPd4U14pRHw3D4B02qZkdq9sTIVhI66u2V1KsW85xufl16HxVVv
	 6ZsDlakor38pd0atVEWoQXQh3D3Jr/cqrjOi7PJvujA2Lp0+N0GEsf5uuXleXi0QA3
	 60bAwabXVOC9g==
MIME-Version: 1.0
Date: Mon, 24 Nov 2025 18:15:43 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, consulting@bugseng.com, Doug Goldstein
 <cardoe@cardoe.com>
Subject: Re: [XEN PATCH v4] automation/eclair: add new analysis jobs with
 differing configurations
In-Reply-To: <alpine.DEB.2.22.394.2511031448530.495094@ubuntu-linux-20-04-desktop>
References: <6244858973ae88195405630b4a6847085ffce638.1762198392.git.nicola.vetrini@bugseng.com>
 <alpine.DEB.2.22.394.2511031448530.495094@ubuntu-linux-20-04-desktop>
Message-ID: <84bc6efff60733ae9fbcdfd253bc5542@bugseng.com>
X-Sender: nicola.vetrini@bugseng.com
Organization: BUGSENG s.r.l.
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit

On 2025-11-03 23:52, Stefano Stabellini wrote:
> On Mon, 3 Nov 2025, Nicola Vetrini wrote:
>> The following analysis jobs are performed:
>> - eclair-{x86_64,ARM64}: analyze Xen using the default configuration 
>> for
>>   that architecture; runs on runners tagged `eclair-analysis'.
>> 
>> - eclair-{x86-64,ARM64}-safety: analyze Xen using the configuration 
>> for
>>   safety, which is more restricted; runs on runners tagged
>>   `eclair-analysis-safety`.
>> 
>> - eclair-{x86_64,ARM64}-testing: analyze Xen using the default
>>   configuration for the purposes of testing new runner updates; runs 
>> on
>>   runners tagged `eclair-analysis-testing`.
>> 
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> 
> I'll commit it as soon as the tree reopens.
> 

Hi Stefano,

could you merge the change or do you want me to rebase? (there should be 
no conflicts however)

Thanks


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


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 20:44:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 20:44:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171525.1496538 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNdPx-00026X-Uq; Mon, 24 Nov 2025 20:44:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171525.1496538; Mon, 24 Nov 2025 20:44:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNdPx-00026Q-Rq; Mon, 24 Nov 2025 20:44:13 +0000
Received: by outflank-mailman (input) for mailman id 1171525;
 Mon, 24 Nov 2025 20:44:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=h9jE=6A=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vNdPw-00026K-AU
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 20:44:12 +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 52f632da-c976-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 21:44:10 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BL1PR03MB6053.namprd03.prod.outlook.com (2603:10b6:208:309::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.17; Mon, 24 Nov
 2025 20:44:05 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9343.016; Mon, 24 Nov 2025
 20:44: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: 52f632da-c976-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ffF8gBg/5EbVxIEC+AoLrzYNgZTuAhVEpGnY0zdoZIkz+VUubJZIWVBpcdsYtdsgyfgvN9W+wqhk2YyTWK/LYKeZQybrAvw/Vyj+6LDzOWM96UyEyZDpbKTG9EzfN1eU1ayRy9vFOg3N/+SaE46r3lCoO0FJyVnI+nhqeBt1OIcTpgmqwqmQNhIjWPtbvMTxSWeIrc7Xu4Yw8GjdaeG/ZiZg9GMyjL+ShsAg9v768n5PdIU9On41W9n+Ouv44li0JhWjMEZkiCiQajKPNHIayh4EGsFmPfFwk5FepsyMYdfLAkuyZaYjqHjLRQ7DGqBmldKurCvLDuAyEOgkLvhejQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TzcoVwgnZHVhjRuw2SgDzrJGa5Oy6E6rYAMtF9EwL8g=;
 b=zPmePsKvwVCkh2tDDwjeomkUatXzaSB52SmyUuxXnZV49MGZ4DB2hNUrtSgSXp/oUSS+RsnurIXaNR/Ve8Xmqo4B12uJK7cuNBlcBJL0sf/CaLLhOeuObel7aEtTMasKBIgVBDZDaYOVfTkd2zM6YFjmDU2yPFL2dhmQNTImjCGlPCqoqU/gyWHEB9WXlRAsJkXIZu5TFyStcWvGeOu1Ym4dt6sv2t2ZF3RrQ4xgwGfxJi5uOnW9BfIOK42zsKx7tdUApuXXHP5Nbnm8M1jOtzj8Yuu4hdgXGxq4fz/KmgJMDpgqVI3txk/bEcvfww5nnadgYemEYjFhSxxZEZGifg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TzcoVwgnZHVhjRuw2SgDzrJGa5Oy6E6rYAMtF9EwL8g=;
 b=sEknRW9bs8XK+uKUcaNa0UMyieV7Qvm3pLu08Xdje+c+ANeGQhPzlnh6waO6aa00cgVHHeb8W3LVCCpDVQ9tWN7EHXi+ix9divVONBQ92Hcy6dU87L1MbAj+G6ir4XjpNA0mzNnsSTqXA7Dt/xGo8+gP219nj37/9WauItNYN6c=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <2a881cec-879b-478f-b067-06e1868b2770@citrix.com>
Date: Mon, 24 Nov 2025 20:44:02 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: Remove x86 prefixed names from cpuinfo for intel.c
To: Kevin Lampis <kevin.lampis@citrix.com>, xen-devel@lists.xenproject.org
Cc: jbeulich@suse.com, roger.pau@citrix.com
References: <20251124111942.1325635-1-kevin.lampis@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251124111942.1325635-1-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0312.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:197::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_|BL1PR03MB6053:EE_
X-MS-Office365-Filtering-Correlation-Id: 5737e0d1-9166-4a29-fb28-08de2b9a354a
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?TkVzSTZVRTFuMklEenJxWmcyQm9YakNwTXZ1NkdvbDBVUUJRU1k1SmdKaVYv?=
 =?utf-8?B?dW9KTHdMdTBRc0xRZXhleTlteFNCUHhPZisrNTQzMG5yY2oyeXIzMENnanFP?=
 =?utf-8?B?cjVnZmFqblo1VmhlbVNHcHRsbU5KLzhpd1ltNEY2L1RjZUw5UVlXbGVKZnow?=
 =?utf-8?B?U1BIK3RRVjBzZkdCNVBwbzZibVVKd3RpM1F4WFFxMU0waCtlWnRtVlpSQW1a?=
 =?utf-8?B?QmJ5ZnRkOHFmd0hERnJoSDhEZi9yNUdpbFZQaHVzU3lEUEpZTVNCOHhybmNo?=
 =?utf-8?B?Q3JrVlptMXdjKytTOWw2RXpnYXY4dkY1UFlXSVloTWljRGlnWjk4ZFVDTmZY?=
 =?utf-8?B?dzdneTdQUWR1V21wb0lHYU9UYTQzUlhTR1NBcUpJTG1teVhOS2hDQ1FqNVdG?=
 =?utf-8?B?UHNHVDV5VkYxRTFRQzI0Z20zUkpiTlI2WTVyTEs4OHpGSFIwNjRCNldzRENv?=
 =?utf-8?B?Z3hTSEc3U0NXazIrbytuZTQ0djFNZHU5ei9CMkNuanUyamlzV1dSS3FZNDg2?=
 =?utf-8?B?Rzcrb3FCTzlrcWE5NGxzeGdYVnpXNW1MQUlNeHpFQXRsTFh2MnNoVHkyWGhV?=
 =?utf-8?B?RVRjZFgxMUQ1YlcwcjJuc1RpMXZqdko2bEhtOVJZUkY1SnJna25yb1RSQ201?=
 =?utf-8?B?cmxUMER1V2RZZEt6ekhGTzJTdVFBTkNKRVUzTG9ZOGRFTEplaHR6TC82RUZ1?=
 =?utf-8?B?aVJjTnpxUVZ2WkpvcWRlVlhWMGlLeDJ3Rjk2YVBYRCtKRUZ3eTZMTkZMWkdm?=
 =?utf-8?B?SHA0MDc0Ris1QkF0OVBMMUE5aVp3dDBUeVN1UEpxbmgzQnFaUHdiMmZMYWJ5?=
 =?utf-8?B?ZVllZlUyUEltelRqWnBzdGNZbThxSlpBMlZlUzJQQzFHc3FyT2NQQ0szWFc4?=
 =?utf-8?B?VHAxRzFmZ1FydU1iSU5SYnM3ajZmZ0dGbU85RDVraHNzRFQwNnE4eVU1bXJJ?=
 =?utf-8?B?TFl0d0kyaWk0SWFsUlpFRW5iUnovQW5oQjRndnVYb1RnNEE0Y2dTNVZJQzNK?=
 =?utf-8?B?SDFaVVlFOVY2ZmMwRXp1RTRUYThMOHBFaEl1WWhXK1RIWGVITk9Jdnc5NEx4?=
 =?utf-8?B?T1YxWm81Sko4T3F3MDdmK1REQXNPODRBNTRQeGxWMW9vcjRBOEpnYXQwQWtG?=
 =?utf-8?B?NU9uTUUzNzE2Vm8zakpQYjlPeU5kMVB6Y1A2bzdHRDZMTEFjcThwS1ZwakZF?=
 =?utf-8?B?N2FuNkNoMGZpV1RSOHR2Z1hRTlVVOWNEV3BsbVVPMGdIalBmR2YvSzFxNjFk?=
 =?utf-8?B?Qms1d2xsd1krQ0FTNFErTklPR2FqaWs4Um9Kb0d3ZGNKNnVHM0s3SFY3MUVZ?=
 =?utf-8?B?YnlhenFSQ3Y0V0g2ZkVodVVRSlN1QlowTGJsT093UGVLcmtDSjJqems3ODFr?=
 =?utf-8?B?VEpmdVlKbU9Zb2Z3NTlMTzB4OE4vQmZFd1lRdWc3RkJENjBnOXU0NXh3V2VW?=
 =?utf-8?B?Wm5xWmp0ZzcxOU5wQmkvejUvUmIxa3M2bk1SdG9PRldMWDBDMS9aYm95VHRV?=
 =?utf-8?B?TDgvTnQ0dmxHaVhVZ2JyMndxeEtUYjViUkw3RVhTRWxEdmlqZ2VSUHI5QWNm?=
 =?utf-8?B?WHJuMU1kam1PN1A0NlozYjF2WlJ2QUJKUTFqZ0V0WG5HUXV1bGMzUDZPTXlx?=
 =?utf-8?B?amU1YTVXU1VVdmdtRE9xbzhhU2FuMkJIN3ZRVXRxbGF6V0JxVDRSbjNjZGox?=
 =?utf-8?B?UVNoUXJhUjlzTDBWa21GcFJrWXJ5SUNYOUhJd2g4bUJYRFRmWjhYNjkyc29S?=
 =?utf-8?B?aVhzNzJlN2tZcVNCYUViaEd4c055bVFqNGtCNWpmcGloNExYQkRlSDdCZVlt?=
 =?utf-8?B?YzVZK3RuOVh1QUptQjhEM1hpdldYMzVaNXdjSmd3SjlUZ1dEMFZBcGNwV3Bs?=
 =?utf-8?B?WVM0M1dlb1RiQ1lIWmh3alZrbkVRbUM4QTdva01leWFCTE5yVitTSEJjOVQ5?=
 =?utf-8?Q?NNtwNHNhgJf+OzZkb+E33XapU0QSf7iH?=
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?MnlrUUIzZUlCSzV6ZU1QZnY4M29LM1RSWVVnYXR5MlRlUWhJd0Z3VHR6WmpG?=
 =?utf-8?B?YzVsOENPazFWYWhOa1NwcG1jQS9pa1hRaFlUampPNWp3WmJ0YXV3b0I2TlBt?=
 =?utf-8?B?clp4WERtbk8zOXo1Si91cmZnZU14cnozNy9VYTNpWTZXcDY3SGdjd0MvRXd4?=
 =?utf-8?B?amRwOTZ0SUNaNFZBRi9GSUh5OEN3djdJaThOcU85SnJWMjAwcUgzZTNEbW8w?=
 =?utf-8?B?STExNndkOG80TTNzNGJmZUhMVTUvb2RNQTY4YXJDOGtqMGprWFh5MHBmTGFz?=
 =?utf-8?B?aGl6U2R4cXlSQVd6Vzd5T0dJVGpSazhCc09pNnRjaUJMSXU4MThzMEFLNmor?=
 =?utf-8?B?R1ZmcnZZcHQ0R0plbk9vMTd1YUZIMGR3Szl0OXV0bUtsZVZZYU9SblNHdFJx?=
 =?utf-8?B?UUh4R0RjTXV2SGltUGYwMnNWejB2UENmRU1Fb2EzU2N3MnV2OE1TSnBNYjRK?=
 =?utf-8?B?bnFNeloyZW41bDRSV25ZL2RBV2dhRlp2Z21CVEhtL0FMOFpac0JuY0R3ODNk?=
 =?utf-8?B?d2xaOGFDNWNlMFRtMjJESVJsNTlJL2VzZGtTVk5lYXRUNmtFZUVMOGEvM0oy?=
 =?utf-8?B?WGs3am0zdHl3cHRLU0ZHajZ4YzY5MUlpSVFZSVA0SzRCVjJ1bEJzajBHOVdU?=
 =?utf-8?B?Y2RaSGdlZGM4WnA0bXpsRU9Sc0J3dm9udkxsR3RDUVJRNW56QUR2TGs0YTdm?=
 =?utf-8?B?V0cyMWZVRjhUSmhzTlMzMzZFK3c5N0NQOHdIR1p3TFFRYzBUTFBKMHlRTkwy?=
 =?utf-8?B?VXVTQVg2NG5KM1ZVVm9NM1dZQ29VU0l3TlNxbW5pUGdqZ1Y4QzJtMVoxaERU?=
 =?utf-8?B?ZUdZbTkzb0YyYjRGbC85M2F3RTlETUZ5UFY5Snh3aU9ZTFBlYngveUJNSXY3?=
 =?utf-8?B?QkhIRGJGRmFYakZNbExiZy9vOWF4Vlp1Ykl3LzROZ0hQNFhVM2dIS2lYV2VB?=
 =?utf-8?B?bUVNZTJYTDBmUnhKY1RMMWcwUmNrWjJsVHMxUDBGc1g3ZkQwNFJLQW5vdXFu?=
 =?utf-8?B?R0tWRGpSRG4wRHp0blc4SnkxVG5SUE9LTXhXQ3RxczdGSzRSUCtxcWRacC9Q?=
 =?utf-8?B?UFRTd2FEb093c25xUi9jVEpPaHNCSk4xcDZERTJHdHM2dFhqVTVJNXdYQTBx?=
 =?utf-8?B?a1JTYXpXSjNJaFhGM2VDSFozMFBtazdHNStTS0dBT2pzUjJwTXgvb2VZai8z?=
 =?utf-8?B?bWtneXJ5SlI1QmtObzNxTHY5Q1kvM1UvbFBwQVphUmRtditFMnRuTzB5RHdY?=
 =?utf-8?B?Y1U5aGxoenIzU2dDLzE4MndCZWtMTkI2U2JvSGYyMnUyTGMzbmNnZ29RUDU1?=
 =?utf-8?B?ZDI2VTdCaXRTZFFLK3lsM3N6ZUxhbkpaTkErZUxtVVExenpkODVMeFRWN1c5?=
 =?utf-8?B?LzAyNVlzRWpDQUZSSm9mU0tnZ3k5blZCTDZWL1FyeFo4TkpvaGJTaTA1VWkz?=
 =?utf-8?B?Q0FBMzZJM2VNWmZMMyt1MG9JYkVNaVhMeXVPbjV5WXNPcEg0V0VRVUFDSXIz?=
 =?utf-8?B?ZHl0ejU5cDF3dVllQ0xSNVdmYVpRWmtqaXBMa2hCYkhoZm1BY3pTaUVWQUVN?=
 =?utf-8?B?UHBnL2FoVWJKVi9TSnk1NEYwUUhYSjRISE9uUm92cmlGZWtYbnNvZ0g0Q0Y3?=
 =?utf-8?B?MFJTeitZMVgxVlRFdWlXMiszQkxkdU12dVpPWlFPY0o3OWpTQUdFK3I2bnZm?=
 =?utf-8?B?Q0JDdlFoWkh2cWg2NHl3R2duSnJVUzZPci9qbWhQNVlvMjF6c1Yxb3BuQjdK?=
 =?utf-8?B?ZEk5S3grOTVyNWRaTk9TaXhtN1ZZRzRNSTVOZ2libEFCNmVTZU04V084WnVw?=
 =?utf-8?B?aVZhWFhNb3E5STBMTEpyUWNYaHRSYkNhZEVjeHRXNjZFRitldkZVUHpJK0Nl?=
 =?utf-8?B?ZHdkWDlDaUx0U1BDMXJQVzZ2M3VZa04rNnB1QXExbVFPSDBCK3dHUndHN3RN?=
 =?utf-8?B?RFhRc3Ftek5zN3RONTNPd0x4RHNIc2UwNGpNeEJtRmtQcVRoVklRa0VMdlNv?=
 =?utf-8?B?N1NveWgySzRmUERzREtqRzdTYnMyRVhLbFQ1ckh3WlAzZ0pQZmRWNWd4czR1?=
 =?utf-8?B?TlRmNW9HcnNPcFk3VFIwdUVXYWU3Z0ZiWEdTalhQS1FRS0NvVS85Qk9yeWVq?=
 =?utf-8?B?ODliQi85SU16RHpKS2RSMHdwL3BUL2U2b2ZzUDZIWVMzeU5URUM3WkZQTzZI?=
 =?utf-8?B?T0E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5737e0d1-9166-4a29-fb28-08de2b9a354a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2025 20:44:05.2916
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: q8vU5vJMU62cNCgdG5LlYfPQJECSLWCftGH8HUgXQYwoLiKgiwK5lKhAfVhiwS4ZzgcC8ltQ04rh0HXAXc9dD+N4PKdp3f8clw9g4ekRDQ8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR03MB6053

On 24/11/2025 11:19 am, Kevin Lampis wrote:
> diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
> index 6f71365b7e..5f780fe1aa 100644
> --- a/xen/arch/x86/cpu/intel.c
> +++ b/xen/arch/x86/cpu/intel.c
> @@ -86,7 +86,7 @@ static void __init check_memory_type_self_snoop_errata(void)
>  	if (!boot_cpu_has(X86_FEATURE_SS))
>  		return;
>  
> -	switch (boot_cpu_data.x86_model) {
> +	switch (boot_cpu_data.model) {
>  	case 0x0f: /* Merom */
>  	case 0x16: /* Merom L */
>  	case 0x17: /* Penryn */

One of the reasons of making these changes is identify the places
needing converting to VFM.Â  This is one, and...
> @@ -137,10 +137,10 @@ static void __init probe_masking_msrs(void)
>  	unsigned int exp_msr_basic, exp_msr_ext, exp_msr_xsave;
>  
>  	/* Only family 6 supports this feature. */
> -	if (c->x86 != 6)
> +	if (c->family != 6)
>  		return;
>  
> -	switch (c->x86_model) {
> +	switch (c->model) {

... so is this.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Nov 24 22:36:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 22:36:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171535.1496549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNf9x-0006Mh-GL; Mon, 24 Nov 2025 22:35:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171535.1496549; Mon, 24 Nov 2025 22:35:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNf9x-0006Ma-Cg; Mon, 24 Nov 2025 22:35:49 +0000
Received: by outflank-mailman (input) for mailman id 1171535;
 Mon, 24 Nov 2025 22:35: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=SvF/=6A=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vNf9v-0006MK-Mh
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 22:35:47 +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 e99a37b9-c985-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 23:35:46 +0100 (CET)
Received: from BL1P222CA0013.NAMP222.PROD.OUTLOOK.COM (2603:10b6:208:2c7::18)
 by DS7PR12MB5958.namprd12.prod.outlook.com (2603:10b6:8:7d::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.17; Mon, 24 Nov
 2025 22:35:40 +0000
Received: from MN1PEPF0000F0E1.namprd04.prod.outlook.com
 (2603:10b6:208:2c7:cafe::90) by BL1P222CA0013.outlook.office365.com
 (2603:10b6:208:2c7::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.17 via Frontend Transport; Mon,
 24 Nov 2025 22:35:39 +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.9366.7 via Frontend Transport; Mon, 24 Nov 2025 22:35:40 +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, 24 Nov
 2025 16:35:39 -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, 24 Nov
 2025 14:35:39 -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; Mon, 24 Nov 2025 14:35:39 -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: e99a37b9-c985-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=R6/ZhQIWZfsg+3XV83qk6mXwRFtzRW9pTfJAw3h084zYm6hfa/zQ22uLmWUw3G8BsKs27jJXrU9wQfcZpcRzJdmFYnCRmGp/BgpKxZp2wrl5MZy0Z/S0zukHXalpp+U9fuawPb9OR9OuzPbGebD/KDVKvdQrVDIwLIsvHEWljYA8dm5ff1v0JB3ZE2C9ATQUv/EQzWGfFETFz4BQybMOrT0xc16q4GVzlRPMQA4/YsWlK76uoEWjBr3SzL6D+OVS6VgKXCTJFNG5TV3N+XuqEFAu4GVGsWb37wURsS/Yv5ltmDna9kFPYCiS21Y32wkt/+UwcmegTDoW4VZKs1jD0w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=khaXepjy+mj83tuBL39eaODPf2psvhrTF2r85Z9Phx8=;
 b=m1DxVODS1/tfk8fyQNJY4a91oBYeUulEBtUl5jAjp13dUeiQ1TYpCN8OD2AhHP1zebkejojSmkqb+F2vV3VuSmO/nieZrYR60qWsRc89wdZ14rJgOuEvGWyqQRuSuqSlq2pTEJXcpoSOz65Pu4w/79P73rL/r8IcD/BDI0613CPjDcm/LDdWSvPJ0mncHxlaBdVll9mbvTtD0kdCk15iYDOv/AMcjTabVIhTlX5xK/SnYzHPQGFlARW2BqUeMwtPRcVo1QjF9RKjoL7+mY1OaXKj5q2cGIHslXhIio/Zb1tdDp1m5AuwTxhWdHtDplHQYCnpamzFsNZCJEf/O0mnAw==
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=khaXepjy+mj83tuBL39eaODPf2psvhrTF2r85Z9Phx8=;
 b=noTCTZ6a+HyE0eUCWEmvGwU1oP5ISmlZeKg63EskKidyfWaZ7YYyhYPvuT4uhO0ZYPp9bP7OKa/MmZ0pyOGQ4W2SnaWLPWfjdzA3ijhbeHk25zur5ifRV5Z9/WwcrNMXkKEshRfFAf4m5+FCR+YSPHbtN2/Ws/XuPc2RDb6rzHY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
Subject: [XEN][PATCH 1/2] xenstored: Default priv_domid to store_domid
Date: Mon, 24 Nov 2025 17:35:32 -0500
Message-ID: <20251124223533.31613-2-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20251124223533.31613-1-jason.andryuk@amd.com>
References: <20251124223533.31613-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E1:EE_|DS7PR12MB5958:EE_
X-MS-Office365-Filtering-Correlation-Id: 5b180a82-bb54-4930-dc98-08de2ba9cbeb
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?rYFwPunk+hpUjuNhtmDRzcFPslzLkfp2lNEKm5BbNkPbenFUhARZZRCqKQhG?=
 =?us-ascii?Q?wN8RihFhqbjV2caK8q5nBn2/ziVAT5u4dN2semqUHO9EJN9IGwD4ubGKs5uM?=
 =?us-ascii?Q?8BHjd6rxzWJFoGHvrmtDPsl9RtaReJOQQTAKYyI2klohWXmMDADoMaZpXsKt?=
 =?us-ascii?Q?qfwLbHw6eggcJ8CYwi9AKoD9eIodlQmUQ9jcCd0BPqj5pTagHT6wAhpGM6Ql?=
 =?us-ascii?Q?YHgQ9YGZl4kd1GWxxSgUxIjyX8OCSoU0kFXDrbvswbBATY9cACGzSsVYA2lD?=
 =?us-ascii?Q?XHLsw7nhG0XuAOk7M2unhbkYi04TNOPbnOkCFioE7H3b27JqFcpaCPErWhN9?=
 =?us-ascii?Q?SV7+OJMRdwzieaYMFaevvErFYebMTA1rJ9w26cTbEZvYAtHRkeTLISYifvPG?=
 =?us-ascii?Q?OYSb1cRUG34EUUPR7hNvY0D0WmXhduaiExhUU+VHYXs702SF3+lquQJVXi/S?=
 =?us-ascii?Q?W0NLlsZ795VGAmfDYh/vuQUYnEKGGKqj/Wj/XOJxILyJrLmKfQmAJjfhE/YV?=
 =?us-ascii?Q?8FyYeWVmC0XhGke4L2agAi683tP8t7cDUBIcQPjTfgDp7uQPdlAVRFlxQ8JM?=
 =?us-ascii?Q?S5V09QsaE7Qdct7TRQSY512Yuhk5Twokkk++KyJqGupOVyFPd6biDfXxJy08?=
 =?us-ascii?Q?i20m/fHUcuLJXNHk63HNDrVFDTIiZDqU8Ca4+Eqn8dHJdWwHw9iB4MVPcKVF?=
 =?us-ascii?Q?X8k1ERdkIZT8uiL488yZfBhAIXaq31o802g/taaLfWKGOHY5PTOI5q1bfpqB?=
 =?us-ascii?Q?mabEWOeOpJ9+2eNxnhrVwGxmrJWeEfBdVxOSx3rStaRwYBFjL+t2CUlklbhu?=
 =?us-ascii?Q?izNP4kupo5rRk/X68Aq7HTY2Q275+Td65+fCaE/owKKTFvxiulaHlaUOcJ7q?=
 =?us-ascii?Q?dEMN+OIRL6kB+wUOhPtM4MqrJCvZecvrBfLqj6IDC5L3XbcspGEZRHa0dRiv?=
 =?us-ascii?Q?vNHP5gsNzfnEUc1CLL9ZCKcYNjrONljL6/t91gWWReOj6vIwCzmT397ukz9q?=
 =?us-ascii?Q?VnudDIk65curZ4/BS704RTTI5vwCJ3ThJabAIvkVfzfhyneZ/F+rjaSPpFFx?=
 =?us-ascii?Q?QiD52W1SnXziQcsKjjN4VmX5wyYE+/6GXOWuTtf2jU4wUuL9cJK4HKP0cqj2?=
 =?us-ascii?Q?9VuEM8GjBjjo6y9CUFXZw0amxG3+FMsokRBI+xs13g8B58FdqHR777NMyXWc?=
 =?us-ascii?Q?gbV8IU74mYYOAiPQoMHZqnAVT6iaeerGDzO+O1VB0QHXJ6Cz4+ePmwouPqga?=
 =?us-ascii?Q?12dY/RSNAVGYSHUalYAd39IPCoqQ6Ie24UCrPX/1FKsrlJ5zOdbjyDPw1SoS?=
 =?us-ascii?Q?eTfAFaaAaKxct/3EMs9CfdqxZswTEd7Bgp3bwadHSxprUKXfrftyc93o1Chx?=
 =?us-ascii?Q?Kq6qWeA2ASq/3V+gLbj9ipx8lb3hLIVnzPuFQlZXmXYK8rdUIMykw3oJSEKM?=
 =?us-ascii?Q?HeCmChtvV/6O4botfuRD7ZiHoqApWWSCSDMOspFNBLnPGn8nmpIfckwO+jAS?=
 =?us-ascii?Q?7jslkb/R5dM5EFa8HryAKYXtQqkSnsfsXyHN8mneIIxjwVGBCxsDxByjj5yQ?=
 =?us-ascii?Q?nW9SPSEXZcSJQJ629rY=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2025 22:35:40.3450
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5b180a82-bb54-4930-dc98-08de2ba9cbeb
X-MS-Exchange-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: DS7PR12MB5958

On a system without a control domain, a hardware|xenstore domain
starting xenstored shows:
common/grant_table.c:1041:d2v0 Could not find domain 32756
gnttab: error: mmap failed: Invalid argument
Could not initialize dom32756

setup_structure() does not get called without priv_domid.  Subsequent
introduce_domain() calls will fault when calling fire_special_watches().

Default priv_domid to store_domid when there is no control domain.

Fixes: e5b0a9405571 ("tools/xenstored: Auto-introduce domains")
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
I didn't verify the segfault in fire_watches() in this situation, but I
saw that previously when working on this.  Regardless of the specific
error, xenstored was not working properly without this change.
---
 tools/xenstored/domain.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index 5ce539d640..d504e9994b 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -1388,6 +1388,12 @@ void init_domains(void)
 	if (store_domid == DOMID_INVALID)
 		barf("Could not determine xenstore domid\n");
 
+	if (priv_domid == DOMID_INVALID)
+	{
+		priv_domid = store_domid;
+		xprintf("priv_domid defaulted to %u\n", priv_domid);
+	}
+
 	snprintf(store_domain_path, sizeof(store_domain_path),
 		 "/local/domain/%u", store_domid);
 
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 22:36:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 22:36:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171537.1496561 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNf9y-0006a3-5m; Mon, 24 Nov 2025 22:35:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171537.1496561; Mon, 24 Nov 2025 22:35:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNf9y-0006Wh-1O; Mon, 24 Nov 2025 22:35:50 +0000
Received: by outflank-mailman (input) for mailman id 1171537;
 Mon, 24 Nov 2025 22:35: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=SvF/=6A=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vNf9x-0006MK-5U
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 22:35:49 +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 ebf6fccd-c985-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 23:35:48 +0100 (CET)
Received: from BYAPR02CA0010.namprd02.prod.outlook.com (2603:10b6:a02:ee::23)
 by IA1PR12MB9737.namprd12.prod.outlook.com (2603:10b6:208:465::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.16; Mon, 24 Nov
 2025 22:35:43 +0000
Received: from SJ5PEPF000001D2.namprd05.prod.outlook.com
 (2603:10b6:a02:ee:cafe::4) by BYAPR02CA0010.outlook.office365.com
 (2603:10b6:a02:ee::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.17 via Frontend Transport; Mon,
 24 Nov 2025 22:35:44 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ5PEPF000001D2.mail.protection.outlook.com (10.167.242.54) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.7 via Frontend Transport; Mon, 24 Nov 2025 22:35:42 +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, 24 Nov
 2025 16:35: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, 24 Nov
 2025 14:35:41 -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; Mon, 24 Nov 2025 14:35:41 -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: ebf6fccd-c985-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CenVZ4UmQYW6KO3cqjnZkmQOSbxGegoaBgy/5l9g3c/Ov4nAODVMVdU1yIdYlg2+SNR760MHZnoC05LfOcSgjvosebaQR30O2UXPMh1c3ytMbtQbRQqZd/dLvSvwyi2OTv0wm8B2hbiUExrzrF8yt8uC+m8aAjODHPzMBwk2BwGiLDhv+8DiZnDBPjUo/z3uzs5tgip0o4VFGhnltE8VJJWdU4QbkT1tB6NW2wug7KoDJrkd84umU2SgXCfBVbEZGm6m1osxuc6VSLKNLUvGvRDm0SBISlk2ZvcLEAP+eeVv6MmvkwCRNPJiQ9AqZuT/SR4RJv7szHJIZOACKsbSfw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=a0V4XtSB4FPS0jb0XMxjmyRGmxM1LCYoYZuuHWV8i4w=;
 b=qxzhIk4cuCErrwa/gdplQTPScAHpIUpykfbBtdX4UlmRFJYkqypPrwInPwH1omdO66w8lO7CmuduHI3LEj6Uq+NImkmnuX1qcN1vlzTHZrMuNK/p9uPuGlk9S4pgSLQ0v6U+QhKRRAViXxSnTPayT5uMExeOyMl/bqQigNLn2cuCm9vQWdZ+EDmo1u/sBMM8F08RW2XO73hFcNqSUTrQXsjsbomZ9WdBeHboNsGzZya8KWR1Uwa/Aq+vxO+etGadIQIDMLGycWvZD7CiJof/Ta4VCNNJgwcJru+ziq7euBl989OKGecM8EqAHvZ4bvjS3NUckQlMDsaSVi+v0Tmx7A==
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=a0V4XtSB4FPS0jb0XMxjmyRGmxM1LCYoYZuuHWV8i4w=;
 b=lc/TyFA1nfAbeQiOjgbMqzFNAzs/R00s9eM8/+9BcuTkS0W6pAielpfTKAgrl84nVQ8+w5n4zWHwVdb8fIE/PdQAeLsS54T2nbMfjcxM7NA6uNWCYMWvQ102p5kcIQjGWUyr7bIkZs9588dmBlWV90fvFbEGfS0fXOVEdnoq1JM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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>, Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
Subject: [XEN][PATCH 2/2] xenstored: Add newline to error message
Date: Mon, 24 Nov 2025 17:35:33 -0500
Message-ID: <20251124223533.31613-3-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.51.1
In-Reply-To: <20251124223533.31613-1-jason.andryuk@amd.com>
References: <20251124223533.31613-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D2:EE_|IA1PR12MB9737:EE_
X-MS-Office365-Filtering-Correlation-Id: 63a11be7-de1d-4ff9-fb57-08de2ba9cd0b
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?8Jebo6iXKgO2GYoSQ75rR9HY3f4BHEwLDx0sGZJOeXTodG+wfl+wJt/5wyN5?=
 =?us-ascii?Q?4SS9GptkgmKUYlqQiX+I7KVSoUxpnyzPsxBVgpdVSZb5QK7dNnQ1dmjwyBba?=
 =?us-ascii?Q?ogKe7yZltnePPQ4SyCaJNU/cfuE7NTdG7tyfMCPFEVAIuLv/4IfXNdo9jZ2l?=
 =?us-ascii?Q?Hcz8YniZiiTNUliYkuRLfkSdYL2426osSfyHc8DjHjoaouanbP0L5yVb+lST?=
 =?us-ascii?Q?Swj26fqg2QRPOwajy7a8Hzd9OCR2DQaf1jT0rE+s8bjGhD+fpakH2rMhQcRX?=
 =?us-ascii?Q?+pmUiSCJ1E4l9e+r1qcAbyd6ubkrGPfQekvonv7+lI6D05Uma/lIYwa8mD2H?=
 =?us-ascii?Q?3sEmG36HQzX0V8OVU9lovPTbicGOM0muIEy2/92PU6oLwysrulixRLN1Azrc?=
 =?us-ascii?Q?TbYhU8LefGlotjCFVDa47A0wXNr5DSWY57DYBcVwT2YJC9J0yLY1OrHiC1tM?=
 =?us-ascii?Q?8ODU0mPYzl1LExLD9rvuFNKSRYkMIEqiaosvOUvJNg5uug0V/bkrgK7/O+P0?=
 =?us-ascii?Q?IZ4z0tyKXbx2HCYkgqdjHT4qpuHX84tZooysfut7wN4NIHMPalbVVIIbIdO8?=
 =?us-ascii?Q?0zAMZVMq15CQv4TUIyAuh5KtvfHS8F3PJQExxjkxGaQGx1oWpmAUahWuV1DK?=
 =?us-ascii?Q?k3udXWClCti36cmRxkyE/vC3j9jKa/vHpYhJ2YS6OMXx/U0SAvKHptMXcPJ0?=
 =?us-ascii?Q?gNhKmGvdrQVd30gUfqMyc558C0Pkp1kSs0pOiemIXHIKlPlPPupmIJIkoA8y?=
 =?us-ascii?Q?QwKXry+7LUwnTkMFjKCikPNniEK5Qev6ZjzbijgoiZD6eoz+6zmNPyP5jcpT?=
 =?us-ascii?Q?YFMSCnfNtrGv3i4HYdapgEzOLSb3yfeEZT5MvLyW9Zm2slpe/f8a6lwqz2gu?=
 =?us-ascii?Q?M+tyuYnhQlvohcnQn8lvflpgjHISX/jVazXjKAwAFyDIDZ1hY5J+gcgwzW87?=
 =?us-ascii?Q?r0B7GLN8o+Prfblnuh2BANgb4OJO/c3ZnMIfsJyrhm3MZ9n24swS1MDZgmP1?=
 =?us-ascii?Q?9W8PrUzMbzWUobIhxSekyjuaay/Vd00R0zwLvBkU78EMUoaSB0XSWDnMLCld?=
 =?us-ascii?Q?0Z42N3BIryeiIyFCw6Fz25mYyz7gsb4oAb7qo1uDqn7tb/7NTiTTHjflobcQ?=
 =?us-ascii?Q?tFmNiH+xCROqatUSleR3MkiKq7IMwU5rjzJ8qjxmK5xJXNOkT7O/Iqq3s4cn?=
 =?us-ascii?Q?idZxZpyCR/q44uZh1D2ydD/HfCqgLV11I4rI4mDwACp5zlT3dpF8cGSjaxmr?=
 =?us-ascii?Q?HFZZb+nyp3t3ct+THWJOIlha3FLzdAfCGXaDWr5Bcd5eEfhamtVAPdbk8v7l?=
 =?us-ascii?Q?EMmiuoqn25p8+Jz7kK3PdPo6wBI12uaH1z/wJR3tbJjI0d2HDkdQoRtF7SGa?=
 =?us-ascii?Q?raQTrz1Ff2oDIijS5g0SMKD/0vrEgqFaEUtn6aJTBF1jjePFshgKCFSCN289?=
 =?us-ascii?Q?AICUBQYOZa5wJsfTUjQCleRwfID6zJrmwoALF0ubJtndVan+1Xaab+N8Rczz?=
 =?us-ascii?Q?PFmnwCyK9qJRzPuvepOsuHd6mwUqjzo/Wv1fWpV3pYq6VYmH+kw+1HIdGTs2?=
 =?us-ascii?Q?I7HIWDIN9ST8ZvE+8Mk=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)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2025 22:35:42.1438
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 63a11be7-de1d-4ff9-fb57-08de2ba9cd0b
X-MS-Exchange-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:
	SJ5PEPF000001D2.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB9737

Unlike barf(), xprintf() does not add a newline.  Add one.

Fixes: e5b0a9405571 ("tools/xenstored: Auto-introduce domains")
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
 tools/xenstored/domain.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index d504e9994b..10ac1c1a8f 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -1333,7 +1333,7 @@ static bool init_domain(unsigned int domid)
 
 	domain = introduce_domain(NULL, domid, port, false);
 	if (!domain) {
-		xprintf("Could not initialize dom%u", domid);
+		xprintf("Could not initialize dom%u\n", domid);
 		return false;
 	}
 
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Nov 24 22:36:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 24 Nov 2025 22:36:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171536.1496554 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNf9x-0006Pq-OY; Mon, 24 Nov 2025 22:35:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171536.1496554; Mon, 24 Nov 2025 22:35:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNf9x-0006Om-KF; Mon, 24 Nov 2025 22:35:49 +0000
Received: by outflank-mailman (input) for mailman id 1171536;
 Mon, 24 Nov 2025 22:35: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=SvF/=6A=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vNf9w-0006MK-5L
 for xen-devel@lists.xenproject.org; Mon, 24 Nov 2025 22:35:48 +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 e986716b-c985-11f0-9d18-b5c5bf9af7f9;
 Mon, 24 Nov 2025 23:35:46 +0100 (CET)
Received: from BL1P222CA0010.NAMP222.PROD.OUTLOOK.COM (2603:10b6:208:2c7::15)
 by DS0PR12MB8526.namprd12.prod.outlook.com (2603:10b6:8:163::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.17; Mon, 24 Nov
 2025 22:35:39 +0000
Received: from MN1PEPF0000F0E1.namprd04.prod.outlook.com
 (2603:10b6:208:2c7:cafe::72) by BL1P222CA0010.outlook.office365.com
 (2603:10b6:208:2c7::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.17 via Frontend Transport; Mon,
 24 Nov 2025 22:35:34 +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.9366.7 via Frontend Transport; Mon, 24 Nov 2025 22:35:38 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Mon, 24 Nov
 2025 16:35:38 -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; Mon, 24 Nov
 2025 16:35:37 -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; Mon, 24 Nov 2025 14:35:36 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e986716b-c985-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FVnmqCiV958fxvlFj43jBENctdD4r1jKvhL1k9MxFdkKZcc9KchesUmYtBGKurjFwg2PsPwqI/0omX9xzfC9YEB1bBuOXFHugrhrlj1BJvrMAcNFN/yfZsD2dkxrlwX8Nwfud3yr32lm3nDF4QLcZgcPvTC7Ui/0mCv6rw/pzVBuhdDFUWR8u7zC2ai0eoIrDRlnbo27R0NtMQCWcdHAGVN5obuByFGIKIC0FAC5k1qB/aus/LhpdHteVf5HQPtfS8sX4kxGoCITf4ln1JzJLc9ue1WKXA69DrDhYWEszzKWxPX3J4Avow6xo7o2n7bHyGL5lbWLvJsrqxTZ2IbIUg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vmKtN+g+zysIOxJaxR3zvdU1oJbPHq/n0XqRmdJtjQ8=;
 b=v4gZEMFo+GLBLpdgcVbXsJ9VecDQiOxUCj8kmvFExDXLnJG/5EfjGF2Iup5iGRfbBlDFxiYww7W31+ZxTcZl978KtoUn55eBd8BpAoq/u0KNWu/b/tz0/Csv6v/V5ac0d36Z/WPKVbqLPT4eGOQwZSaTwfhqzqiBnvgjoCJjEWzZbYZ83e2aU/r05Mg4OFS564yg0ejdKPVojXsVhmbQMfo4B6n6Icz9wruIPAT03nWJV0Vg4oqBH3aOw802Q4KHaB9R5EpjXM/YNXU+57BAsj56LkKc0khvOADtOMOrxP/d9CqD19Gprk6hjQBmwnNDtSSA1Gu/mjquVjhBJm3zmw==
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=vmKtN+g+zysIOxJaxR3zvdU1oJbPHq/n0XqRmdJtjQ8=;
 b=l+ORkzQubm4o1kgFWeYPOndnKaTR5Xp0xOM4Nj44zDtOG3lTTMvGWHhvcmAgr6F0PqTr9/BXHYS1bzsGqTOCoJm9IfDQlH4vTBe2GrLE3ZXGYw+pXapjVqUqcUlH+GqYkTgkoSlJX0kwnehsy3k8G846o1LeM0ggbqjCduhAx+A=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
Subject: [XEN][PATCH 0/2] xenstored fixes
Date: Mon, 24 Nov 2025 17:35:31 -0500
Message-ID: <20251124223533.31613-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.51.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB04.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E1:EE_|DS0PR12MB8526:EE_
X-MS-Office365-Filtering-Correlation-Id: f14f8edc-ed35-49eb-809f-08de2ba9cad4
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?z+3Nihbrgsw7XObCe3acDZaVPL516CpFIpQgZkYSiYU6/ag2aZS+dXv/e9/f?=
 =?us-ascii?Q?frFKEIvLCE5aLL8smevaBEVefAhtBCwL7tou4m2B9tI6q3zCJQ8Wb92/VUol?=
 =?us-ascii?Q?KSdg1NqRNF54lj++B11f3bUfw2PJgWykc78PBCfZaeYdRn8hhtiiBsE/wh1Y?=
 =?us-ascii?Q?Hg93QgNnMCSvNP4SuZ/jxAxsJSr48cTCIZJmXJdUh70gw4BzbOu71I05ezMb?=
 =?us-ascii?Q?L4hyO/UU4NTMfBB7ObK/gzsibpEAR9SVU0Q9sw67aG5hfKOxts0fNkzxC7ex?=
 =?us-ascii?Q?Vsn/YGuRxVyPwzWbCw9+YVw7S59Qp9Kght6G1TCjGMBfVSJqmYEP3mcY1Zmu?=
 =?us-ascii?Q?aEUU8r9Dn7Bz0SlWG+Y0ERMPO9A6gcPaWOJX83V9CJC4j+So78/0v12xyTyT?=
 =?us-ascii?Q?Tb44mCtp4CQzU+rkjgINMtXfsFFr8gFK0sIfI/yv99mPhAh/TCKUYpD2/BTb?=
 =?us-ascii?Q?3K34Coam/p80rPAjuSO0upWJ9dRqCwnRzGcU7nJoHUGe0I0tXdEf58adLBZC?=
 =?us-ascii?Q?zVSmIdwmyy/Fqnf68J3ulNvhJnqNfX9hFbwu9mr20foOOBPHoKiCLUjQl82d?=
 =?us-ascii?Q?pjMILruO10//Oa/Mo20VYohJBuSHYEHgSbNhbnWr16rYka+AJFV0ldG+QfdX?=
 =?us-ascii?Q?ku5dolifqxQb0HHLE4RZCK17qz9HZqJFULJCCxT+6guoGAxD//OCNW+6w4l2?=
 =?us-ascii?Q?5tb1dYtM8eYGLl6LwdFVRV+8ljWLOjm652wCj03/wxPrqFkzTBVRABa/bbiT?=
 =?us-ascii?Q?4Jcpe6+EVyVxEXDm9AsaxbcE9PSEvisDOfutrZv5fOtBP0duHFV3vIR58Kne?=
 =?us-ascii?Q?R105o9BH8mIt8gPt33lXlUc8+Qvh9VJk2gIVpq04uJDel7pRSb7k1no/ExOV?=
 =?us-ascii?Q?UAM6ItqJiAwGVjg+hSpKEdcFqWbs3CBuMHLoRYiWlCYWwvCyqRQibAw28qLg?=
 =?us-ascii?Q?Tr1X5EulajMI8ECfIYRIV0g3FszRWFB+FnVXaELELE6aDhTdahIkVlG41TNv?=
 =?us-ascii?Q?+Z35+O+0mz0d1TzePIFOU9juhlZjLUpjes/DUNOoI+g2VWzkKSKl6eOdUtwy?=
 =?us-ascii?Q?wesxNhdZlg77oH3hdOxHEp2ejc46aXm8D+Lns8iLvcZXGRE3l/JePSpQt3s8?=
 =?us-ascii?Q?itD4jP9NSgo+AE0+MlHSniXf4kusk2lXjgyCUzG3dCHSldhM/Q0r6oPRO2ED?=
 =?us-ascii?Q?y/xK4iP66VlpgH2QYAPgnHFgEYyDPY2s0CZM+aPylPqt1Bgw+ud9hmWf6MvD?=
 =?us-ascii?Q?zFgEeRuXjBAsWTxvJV43Crq/zlsY5B4h9esBBzXFirHLavCeR6oQ7k8stW5r?=
 =?us-ascii?Q?7TT4T/FZiSPoVXztxXh+drwLmvsEjFhUGh8yl3VKKaVcgTcQAvpHD6ZxBJlz?=
 =?us-ascii?Q?CdEoiwDGy2pxQ2Jwy+RHejrarXtsR8+PKmuVrsTgnsfNJANaWk7SN+BBEK1W?=
 =?us-ascii?Q?TulExkjhB0ySD0Z+EySZ9VLOiX8T8CNrnTMRBiCxbHfzIKcVHy+a4SXDJln5?=
 =?us-ascii?Q?VM682W+dZsKWhH6gK2ZLubZHK+SOm03K67d4Tl09OopUZGJBipZHxURKpYA1?=
 =?us-ascii?Q?SKr+hYmOKx1mKRKFSAI=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2025 22:35:38.5142
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f14f8edc-ed35-49eb-809f-08de2ba9cad4
X-MS-Exchange-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: DS0PR12MB8526

A fix for running xenstored without a control domain, and the addition
of a missing newline.

Jason Andryuk (2):
  xenstored: Default priv_domid to store_domid
  xenstored: Add newline to error message

 tools/xenstored/domain.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 06:16:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 06:16:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171569.1496579 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNmL5-00007t-N5; Tue, 25 Nov 2025 06:15:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171569.1496579; Tue, 25 Nov 2025 06:15: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 1vNmL5-00007l-Hg; Tue, 25 Nov 2025 06:15:47 +0000
Received: by outflank-mailman (input) for mailman id 1171569;
 Tue, 25 Nov 2025 06:15: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=RmC5=6B=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vNmL4-00007e-B9
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 06:15:46 +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 2b58fd06-c9c6-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 07:15:41 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-42b31507ed8so4303123f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 22:15:41 -0800 (PST)
Received: from [192.168.69.210] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42cb7f2e574sm32156895f8f.3.2025.11.24.22.15.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 22:15: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: 2b58fd06-c9c6-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764051341; x=1764656141; 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=0f/9Y7JR60Swip/dFOGxc5iPJjQDRvPRSNeJxakP8wk=;
        b=ajpBJwDO9r2102sYOgHXhPEplXljIcEneEBikm8ZTYRD5yMnwauq4yFhQgfc4WmChG
         iayFCnVuGjlBfoe24CXFnuPQZOAQYwEkoOs5ZcUsYtRKV9ud4ktgRmuvN37dHIvmMmxq
         epz6NetG7JdWgsZ9A5Qz/AE5xPmToBvZ2CgiiDuzXw1bbsdOYigFSSQlxg8eB6VGaQaY
         LiHnDLlAusB2XipbPT1cEKYgQdT5ZkQ76br6CxFXvmewq/kKhl9EyBKeoybHsz2do1wr
         kFZ87T6pTEDQ48lWTNgQ51QKTaSoCeRdLoOIGP+/BAGgLuNQberWBXJFk930eRgyb505
         cATA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764051341; x=1764656141;
        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=0f/9Y7JR60Swip/dFOGxc5iPJjQDRvPRSNeJxakP8wk=;
        b=c636me8ORSOYaNilHICbHXbB7APuXSnxGoxIoaMj6Y960jqX/GhsVMQwR1aidPbzUO
         aXK59WT5j1o+qoWJhAaRiLJm+/c4KhgLPb18nclVW0X2C1Ap/+eGn4ceH2JByuU/eas+
         LC+91YtlAZB6eOyaTI/MOsxR+J/bCDLb1FczESDxSVJM7mvqQ8gP5Us8DvBOOX4hHCfx
         iAPfxZRljYIMMkaiHIAGKGavgqK0Z/vN2Sm1TpKIAhm7ATmFWY2QdJwliRCyTk6Fv9qm
         GCvALzN7D4/yKxivTbQeiIEWdvyOGORJOH8A2QoBbDieA6eZBO4GYgBX1xMWiJDO4X8Y
         JmPg==
X-Forwarded-Encrypted: i=1; AJvYcCX9BzKhRmjm228SdAzZ2PrvWKIbCaPdMUO6EieYDEJVaDBs9wquWXT5zjKo9X2I/x4tZ0zvdQ4ftjQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YypZo4XTfuMJUPDil1QjhiXHNI+29lNgNf5of9vhIo8fL+vxbQE
	Bkx/8zbhCxBiRvGh/7/T0ZUjpZ6+RJTJVrVeyV5dO8kW9wA5p3ALsedzvAnPYdzAyuM=
X-Gm-Gg: ASbGncvcmp52agDmk1hIJ6iBVE+ECT3BA/SwNYE4nzcoU2/sByqMVYVikMMPSVKXeQB
	A24SRgmsXPl4CmvBd2Uez9V/HhAquiK5vbR5Ci7cahXLI38QQmmHmGqUYtaG5zenRXnnakFz81A
	4pet75e52VMuZHPlb3Lirryb/7GMtRjUYs/EdC11xXl3Q12n2L4x+zB/S/RSplcG3//LlEw857q
	by+UOsuN5rnqN4B/yZZj4IA2hfvLGE6wXFliDTeBrOYYV01vxtPjfDyUfdleDzwPcnOZ+RewqNp
	awtUKQq2jkKi3eBu295OXBmTv5WQmZNyVUjF44Ib95h6PiEIY+mH7TdpUYcSLeWKM3voHxM4sla
	WN3tvzWw3bpDXp92ImpKpslCLWsawnjI121/M7r2yI6LLLnb20KzhxYZImPGvrM9wRSkawMwsUN
	medC7u+4ylBRlScEx5FIYuvNWFtaFPhh2a6QZEOQU7ahEYpvtnzt78Sw==
X-Google-Smtp-Source: AGHT+IHZNFdwNkAyt39hw1XEKeec2HDhjScGvIOI1PKKSdFRbVG0BYsnK8PrGv30KDcQUn6wPGJ2MA==
X-Received: by 2002:a05:6000:4028:b0:42b:3366:632a with SMTP id ffacd0b85a97d-42e0f355caamr1135311f8f.39.1764051341155;
        Mon, 24 Nov 2025 22:15:41 -0800 (PST)
Message-ID: <7984cbbd-905e-4e03-84fa-1cc2a1261a80@linaro.org>
Date: Tue, 25 Nov 2025 07:15:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/15] error: Strip trailing '\n' from error string
 arguments (again)
Content-Language: en-US
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com, zhenwei.pi@linux.dev, alistair.francis@wdc.com,
 stefanb@linux.vnet.ibm.com, kwolf@redhat.com, hreitz@redhat.com,
 sw@weilnetz.de, qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
 imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
 shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com, jag.raman@oracle.com,
 sgarzare@redhat.com, pbonzini@redhat.com, fam@euphon.net, alex@shazbot.org,
 clg@redhat.com, peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
 dave@treblig.org, jasowang@redhat.com, samuel.thibault@ens-lyon.org,
 michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
 mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
 liwei1518@gmail.com, dbarboza@ventanamicro.com,
 zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
 qemu-block@nongnu.org, qemu-ppc@nongnu.org, xen-devel@lists.xenproject.org,
 kvm@vger.kernel.org, qemu-riscv@nongnu.org
References: <20251121121438.1249498-1-armbru@redhat.com>
 <20251121121438.1249498-2-armbru@redhat.com>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20251121121438.1249498-2-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 21/11/25 13:14, Markus Armbruster wrote:
> Tracked down with scripts/coccinelle/err-bad-newline.cocci.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>   hw/audio/es1370.c | 2 +-
>   ui/gtk.c          | 2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
Reviewed-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 06:17:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 06:17:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171574.1496589 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNmML-0000Zn-UD; Tue, 25 Nov 2025 06:17:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171574.1496589; Tue, 25 Nov 2025 06:17: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 1vNmML-0000Zd-Qu; Tue, 25 Nov 2025 06:17:05 +0000
Received: by outflank-mailman (input) for mailman id 1171574;
 Tue, 25 Nov 2025 06:17: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=RmC5=6B=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vNmMJ-0000ZV-M7
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 06:17:03 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5ae53876-c9c6-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 07:17:01 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-477ba2c1ca2so53517665e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 22:17:01 -0800 (PST)
Received: from [192.168.69.210] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-477bf3aef57sm221641805e9.11.2025.11.24.22.16.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 22:17: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: 5ae53876-c9c6-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764051421; x=1764656221; 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=PPPfFfN/KUZJSdg4GVyykKSiNQuZspsjOUrb6Yk6o8M=;
        b=HY2eL3QQTBJF4MyA3H36SEh9d8hsnNk777bseoQxaXwm8KlxVwMvLtDlddfbDE8WNW
         ZLAc8Z7giWut530xuEBeNbessbQKJGoKV2juqh05fRXtNMd0ePH4QQh0UD3zEp+HZ9xp
         mXZ9eyTKxmGuJRk/nBJTgg6CufzfFWMIwy2TRmro3hyNuTOspXW1fObD2y1s1Wu8QDNr
         sd/PCZfM+RRQKI2sXVhzs9HkzTPXKnfilmUyOGauVQgTpLLl+TEF0hL8ICJj/UqeU9R5
         9EP7LWfhjhpYGYm05Ey0MDKr+8jQ493kSe9N+8c9Q3jaIusc9ikFXUVdDJzQ7ViK2U7B
         /wnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764051421; x=1764656221;
        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=PPPfFfN/KUZJSdg4GVyykKSiNQuZspsjOUrb6Yk6o8M=;
        b=BDAvhCxZSlSvsE4IoUg23bu7GuCmv9h9+5JasE+o7Sr2RStbptcKvqP9E/J+3Ic9y5
         yPrU+k5JEBvEGnhTgUB/d91+MJpjf8dUO6PB4KHBF8qXubmaipJEwH/yEvWQ62M5qDHg
         tNqK0ehtXhR28G+wsTy3fO2SEXyOAVuYx1kbLfV1+ApxrqRjud/ktWBd/Hx18P/nJrXX
         vQwcAMHbT7SHg/njjYGVUo7Jui7HVqrc61SPMZkfE/Eq3t+q6JpS3V8VXrFFBirVrnI5
         I936z+TobJDGdiYn8Yw0kRBAuHlfqkB1kbFE6JhS5Dm9pkWDuhoSdaF+oGKInD0LJs4L
         R1vw==
X-Forwarded-Encrypted: i=1; AJvYcCU2xKOGprhKwvBCgx+r3j3K/XPmlaem8Dv3Kk5FOJyrNZ3WZ0aevGcvzt9ccw0AGH+T5+5cJ6QNdIg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzLsWpXpPYj5utLAcpS1uWk3xcoaXl9Ac/I/NNaHXYlJ+kt392P
	d0rO+hxctocfXXlzXNISPVPHOxs/7oLgagjF4Ffmr5KwdiE7Yi1TZTcmijuieAQH2NE=
X-Gm-Gg: ASbGncspfs9jrJ0v8rWrD/SuosKTHIdVqtcSlwjKaBB2dxxfy0ckksoHzIf17UCqCpE
	VHI0NrD3ruZ/ZJR6yrJz3ttatrluTlqScpbUeiYcqYA75sWv8Z61Fo+3uknWDYjlP3T8u0K11BC
	Qq7FvKWYSgCsGF8dKRdnlV216+f2Tcn4Inyfh6DoFrwEemcdBIHe4CwU4bwirZ9zwXfDpfFdNzy
	FSH+zuU9ZnDwLJaOSm1QN6JqkDMf4fyhamrf9WDMWaq+I/AGEN2rC/SvBZet//T9OCrI2x3Zat5
	2GyxP8Kw+zovgUQtpDvF9Q2dWTUJmiMHEbXWtZVaMJdgHMji107gjM7rX/lvU9miVMEIs+sSO88
	1TKL1Bhx4ZhYHp1RHX4g/y4NUWZ4K29XGIgR6DP8lWCWRdjZAR00BB37v+ZJOs4a7Z8cnD97Jhm
	GcKjpEZX6tmwovHwIeFhTJmeXSR7dQ1++R6l4nvnBb4jS+20AxMwVw6g==
X-Google-Smtp-Source: AGHT+IEZ8yeE/n/51O0eDQmUGk/RzXgmUxX0n0wP7TPhPNjZtJBLXLV0NRiL/n6XCwlWTPrAzRjq6A==
X-Received: by 2002:a05:600c:8b37:b0:477:76bf:e1fb with SMTP id 5b1f17b1804b1-47904b1ab30mr12560125e9.16.1764051420782;
        Mon, 24 Nov 2025 22:17:00 -0800 (PST)
Message-ID: <fed0991f-0ad8-4da4-a182-1bd0c7ec6b9f@linaro.org>
Date: Tue, 25 Nov 2025 07:16:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 04/15] tap-solaris: Use error_setg_file_open() for
 better error messages
Content-Language: en-US
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com, zhenwei.pi@linux.dev, alistair.francis@wdc.com,
 stefanb@linux.vnet.ibm.com, kwolf@redhat.com, hreitz@redhat.com,
 sw@weilnetz.de, qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
 imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
 shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com, jag.raman@oracle.com,
 sgarzare@redhat.com, pbonzini@redhat.com, fam@euphon.net, alex@shazbot.org,
 clg@redhat.com, peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
 dave@treblig.org, jasowang@redhat.com, samuel.thibault@ens-lyon.org,
 michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
 mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
 liwei1518@gmail.com, dbarboza@ventanamicro.com,
 zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
 qemu-block@nongnu.org, qemu-ppc@nongnu.org, xen-devel@lists.xenproject.org,
 kvm@vger.kernel.org, qemu-riscv@nongnu.org
References: <20251121121438.1249498-1-armbru@redhat.com>
 <20251121121438.1249498-5-armbru@redhat.com>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20251121121438.1249498-5-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 21/11/25 13:14, Markus Armbruster wrote:
> Error messages change from
> 
>      Can't open /dev/ip (actually /dev/udp)
>      Can't open /dev/tap
>      Can't open /dev/tap (2)
> 
> to
> 
>      Could not open '/dev/udp': REASON
>      Could not open '/dev/tap': REASON
> 
> where REASON is the value of strerror(errno).
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org>
> ---
>   net/tap-solaris.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
Reviewed-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 06:18:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 06:18:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171584.1496598 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNmNT-00019B-9O; Tue, 25 Nov 2025 06:18:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171584.1496598; Tue, 25 Nov 2025 06:18: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 1vNmNT-000194-6Z; Tue, 25 Nov 2025 06:18:15 +0000
Received: by outflank-mailman (input) for mailman id 1171584;
 Tue, 25 Nov 2025 06:18: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=RmC5=6B=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vNmNS-00018p-7m
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 06:18:14 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 859a15e4-c9c6-11f0-9d18-b5c5bf9af7f9;
 Tue, 25 Nov 2025 07:18:13 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4779aa4f928so42164555e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 22:18:13 -0800 (PST)
Received: from [192.168.69.210] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-477bf22dfc1sm231064705e9.12.2025.11.24.22.18.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 22:18: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: 859a15e4-c9c6-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764051492; x=1764656292; 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=DGzD1fnYIa6B4Wk/+xHq8vM1YIpJLnhM/vaTxvSqse0=;
        b=E2jnJ/uw/6x9odyPCyV4mz9JtrD4EHGteX16oYYt+ZBO7BlUpQ4W70niZADjWUC62O
         02XLB4UDSm6FREbMeGvnXjGsA3iptN49s2U7VNBrDSRKzi2l5X2t9fnLVXvtvENzQfNi
         o4j1jP72uYXu+dwhCqlTpaAlSscRRuUX9Q8u40E0KL6G1TdDiLoXLUMyIH+Xy2ayEovg
         CyEnopaWtTQ4N9QnJfjyew0h8rpObJLVuCX8pdWOZAO0NWT/OOsFy7WbPfOOIM9agQuG
         mnMC4s0qs552Zb3U1raEzo/zOInY1pgy6tob8ERAKYQHBmAYlm0gd/95jYk6aaqNNBoc
         gg9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764051492; x=1764656292;
        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=DGzD1fnYIa6B4Wk/+xHq8vM1YIpJLnhM/vaTxvSqse0=;
        b=ZCOO4itNLNSulyrUFymepIA80FXC6WCn+GEgUJAjJLp8c5MRwFHFbf3ao1U9ZlJUn3
         a9w7pNNO9L6aHEFHspPAup63OOfRgmZmyUmwVh4xdP+b/IkR16p9QZXEnCCb6agYQoO2
         Ynxc7Ie2k5Vt1Zsbi2IAeyY/FFB+dDkDKTPqOwyDSOzdGonkwDOd0lRgT7sDSmrNsz9a
         GxbLaei4tNDmTdKo4x10ufHo0OJu6eSZP8OveQc1pbW/gJjisGdslksxr4f522XMmzHO
         oweESHHmB5bGNS1e3Z5rro0Kokv2xiqGmTQduXh7EXMWmDPDAyrXG0bWm1TCmldMxuuK
         xaDg==
X-Forwarded-Encrypted: i=1; AJvYcCWml4t3j1XoDGLAFn5YUOnHZ0kHeQnEudqDOUvLOWlC/t5Duq9HLPeY0noJ8PlhCxoSQ+um2Wo4v7g=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx2urYip5xUeHnFs0NluroHY95G7GaRe9pBvqAxe7cAd6QwjJCP
	SlzIA9hFQyH52mvp8zJ38ycjsUnLmO7x+E8NX9KG6JqFwgiIcFMcGzBAzAJ6rVvRb8w=
X-Gm-Gg: ASbGncs7Zsn7pGqxus8GN7R2ehUJXcPt7NZjol1cYrqzlh1ehz3YKYTrdF9tSZgfjvc
	/KOcTlcxENAWGDsdSyyQIDAg9uPeuztbqbAmHH8uWLiRKa1G2x3MYvyV3xb9FgUlonwFFLFOFbO
	Ncyc/plhgWeK9TjUKtIOqt6bqHzqhgcvC+xrYTF2NsvKT5XKMH0RHukhGhzJlPAZlQsesCsKQWm
	obLmoNDUdwDxh346MyGTERmtpMiMQDGopLP+z5iAQAic56It+4cKRldaxB+Yf8lSRMpANtoiM+G
	vKjeWsCBzQv6bWAWCn2ySRnW8wW8vJhvv4jrZ9nNdnt11e6frn6RMumUFRnKerV7vWiL8VqfjYY
	VXkoFMqmzOnFdKbdI4Sg2MyjC+tYR/RC9Rcrhu63OXQbyGW7XndAOHlTMSIPS2SZ+xTxjJr42NY
	LXqFX7ke/7xnydMquYZ5laTBALgpS0B4ESw9Wey/XzjJeAJ6fM2PVxLDzbU+vgoKlH
X-Google-Smtp-Source: AGHT+IFEapOZrwVKXPqkXWl1ucGf2xeCrDksHj/tDIzv3GC9v5QhNc1aLWWWmC76do8k0bUg496w7A==
X-Received: by 2002:a05:600c:1c87:b0:477:98f7:2aec with SMTP id 5b1f17b1804b1-47904acef12mr14113255e9.3.1764051492559;
        Mon, 24 Nov 2025 22:18:12 -0800 (PST)
Message-ID: <37f651b9-06b5-4264-966d-f8c766df6be8@linaro.org>
Date: Tue, 25 Nov 2025 07:18:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 06/15] hw/scsi: Use error_setg_file_open() for a better
 error message
Content-Language: en-US
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com, zhenwei.pi@linux.dev, alistair.francis@wdc.com,
 stefanb@linux.vnet.ibm.com, kwolf@redhat.com, hreitz@redhat.com,
 sw@weilnetz.de, qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
 imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
 shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com, jag.raman@oracle.com,
 sgarzare@redhat.com, pbonzini@redhat.com, fam@euphon.net, alex@shazbot.org,
 clg@redhat.com, peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
 dave@treblig.org, jasowang@redhat.com, samuel.thibault@ens-lyon.org,
 michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
 mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
 liwei1518@gmail.com, dbarboza@ventanamicro.com,
 zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
 qemu-block@nongnu.org, qemu-ppc@nongnu.org, xen-devel@lists.xenproject.org,
 kvm@vger.kernel.org, qemu-riscv@nongnu.org
References: <20251121121438.1249498-1-armbru@redhat.com>
 <20251121121438.1249498-7-armbru@redhat.com>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20251121121438.1249498-7-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 21/11/25 13:14, Markus Armbruster wrote:
> The error message changes from
> 
>      vhost-scsi: open vhost char device failed: REASON
> 
> to
> 
>      Could not open '/dev/vhost-scsi': REASON
> 
> I think the exact file name is more useful to know than the file's
> purpose.
> 
> We could put back the "vhost-scsi: " prefix with error_prepend().  Not
> worth the bother.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org>
> ---
>   hw/scsi/vhost-scsi.c | 3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
Reviewed-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 06:19:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 06:19:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171595.1496609 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNmOL-0001fY-Jt; Tue, 25 Nov 2025 06:19:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171595.1496609; Tue, 25 Nov 2025 06: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 1vNmOL-0001fR-GU; Tue, 25 Nov 2025 06:19:09 +0000
Received: by outflank-mailman (input) for mailman id 1171595;
 Tue, 25 Nov 2025 06: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=RmC5=6B=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vNmOJ-0001QO-UI
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 06:19:07 +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 a51d0da6-c9c6-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 07:19:06 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4779adb38d3so35765765e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 22:19:06 -0800 (PST)
Received: from [192.168.69.210] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479040cfe17sm10996785e9.5.2025.11.24.22.19.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 22:19: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: a51d0da6-c9c6-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764051545; x=1764656345; 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=X30FMRBV6rs2CIsf7r6Mx7FRlGfIzbGDOF+dbbDNFAg=;
        b=KhgVTdmF8OKtnGCYTlWC5DKvpQMzGu5j35h8sKEEUcdEG9K2LO9kkr7+dvS38Q+v20
         fIaHOk6CzmOa+jVnCJPtnTCg62Iq9fOoCs/PyqO2x3JUk3I2ZLy+Eu2L0JnKXKxRKtGy
         7R9SyByK5H/rPhqn2OEQi149+GERAx8+Rqj3m3qtojY+nGJ5I7mQiRi/JTVOwf1WEHli
         5GngSac6EHis7iO0xOhxrelDwhrKIbbuNUlTCFcD+JgdTU2t1yFz4H5PUohLIWz1mWL5
         HOYNABM25tIJTa8KTDLPokw8nEemyqn6jgJAtXshleWbbvDLUv4QVnclT+wjIgw0UQZf
         atvg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764051545; x=1764656345;
        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=X30FMRBV6rs2CIsf7r6Mx7FRlGfIzbGDOF+dbbDNFAg=;
        b=IZDxojzfGga2OyeFZESYdvf9OvltPN8yZQWwDIMtCTbsIJEFrTVrO0Na9N88W184h7
         2p/8Dt3cyyZHW7CUW5eaXM0B2+2fWFT0iLqHNeujN9qEDIpcam69dg4C+ddyVdn6JWDp
         i9ROPX38W5sAH3fdT6R6BH40MoLgdN1VfrF6ppkcye6wFoyO2EhLXWjlD2aJzDgwoGrC
         sShQeHpyKubQttROaSHy95K76lh/nUhloVI8uFBsr8XLPBw3TPOojVsI6wlq3fG1zklz
         NHrXDOGW9rtRXtjZ3RQRzbkBL/sZfYh+m/ftooIsVpA4tbp1OXizI6UCxwyk4APBUBPe
         0I1Q==
X-Forwarded-Encrypted: i=1; AJvYcCVoVIv6U2urqf/lLZijard+HbPt9B1PTG6fx9+oGe+rK8lBqtEhSGv9/wSRZBZkJ0iaK3h8TW7+8o4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwPldSWoNj1Q4+iP38Z3uAR7GsfIPw/04quZn78fv9QxvI0kNaj
	DGLtMoi3KKKDvkZgZKI0Fn5tglwluj9E+wUZLuPqgJxC11oeVnPXau938neAr+mpKWw=
X-Gm-Gg: ASbGncubzeK34wfm1nBPljke0tr3vSfgvEzn2G+XpivlSx+MQZb6u/FlN0XsPgWWXw2
	ul12JapwPO6kYCW99dyjc2hw89YIO9PeYYV/NcoqtHHDM7oze7g/7G4CgXvtXbIMyiTWPB7GPjh
	qX9Sdtje6IqlE0BdeKkXSOwxPRjp11vtfvQsE/hUVT+W216mob7HMyg6OR+cPwx9smA+9oSc91p
	vuc04JxJkgBc48JUn8H18R75XkiLbm6icjAarOoqQIzIpCQGw+NloK3Jq6+NqiRNoLba+6KtPii
	utoAou1EmhMAcYaHTt5QdQfbDCI1Ned+5Ls/PZDATnRceQGMQlq7ZvnHkd1uMl+c8gLHzzJfsqD
	8E3afujge0gLq9n6zNsVrtonrRmuIr9Q8RhCME70feDG9W9iQ6tDem5DCpO2DxQdvWAHTS8qguV
	YzobTFIFjMW9ZQ8q+DN3ELUwR6yO2gG0pbVw96fRBxVbMwFCVZ5AgYIw==
X-Google-Smtp-Source: AGHT+IEAS/g3YIxold2M9P/q5H77arLENsXrfrsPawoV7IMsBeDbBm6FxQuMeLBU7nI1wau2acezwA==
X-Received: by 2002:a05:600c:c48e:b0:477:641a:1402 with SMTP id 5b1f17b1804b1-47904ac438bmr12859925e9.4.1764051545408;
        Mon, 24 Nov 2025 22:19:05 -0800 (PST)
Message-ID: <7a99da47-44fa-45cd-8cdc-60bef1fa9e60@linaro.org>
Date: Tue, 25 Nov 2025 07:19:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 07/15] hw/virtio: Use error_setg_file_open() for a
 better error message
Content-Language: en-US
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com, zhenwei.pi@linux.dev, alistair.francis@wdc.com,
 stefanb@linux.vnet.ibm.com, kwolf@redhat.com, hreitz@redhat.com,
 sw@weilnetz.de, qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
 imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
 shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com, jag.raman@oracle.com,
 sgarzare@redhat.com, pbonzini@redhat.com, fam@euphon.net, alex@shazbot.org,
 clg@redhat.com, peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
 dave@treblig.org, jasowang@redhat.com, samuel.thibault@ens-lyon.org,
 michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
 mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
 liwei1518@gmail.com, dbarboza@ventanamicro.com,
 zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
 qemu-block@nongnu.org, qemu-ppc@nongnu.org, xen-devel@lists.xenproject.org,
 kvm@vger.kernel.org, qemu-riscv@nongnu.org
References: <20251121121438.1249498-1-armbru@redhat.com>
 <20251121121438.1249498-8-armbru@redhat.com>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20251121121438.1249498-8-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 21/11/25 13:14, Markus Armbruster wrote:
> The error message changes from
> 
>      vhost-vsock: failed to open vhost device: REASON
> 
> to
> 
>      Could not open '/dev/vhost-vsock': REASON
> 
> I think the exact file name is more useful to know than the file's
> purpose.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>   hw/virtio/vhost-vsock.c | 3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
Reviewed-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 06:19:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 06:19:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171601.1496618 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNmOl-00025w-RX; Tue, 25 Nov 2025 06:19:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171601.1496618; Tue, 25 Nov 2025 06: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 1vNmOl-00025p-Ou; Tue, 25 Nov 2025 06:19:35 +0000
Received: by outflank-mailman (input) for mailman id 1171601;
 Tue, 25 Nov 2025 06: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=RmC5=6B=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vNmOk-0001QO-9d
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 06:19:34 +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 b4e5019f-c9c6-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 07:19:32 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-477770019e4so43564845e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 22:19:32 -0800 (PST)
Received: from [192.168.69.210] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-477bf3b4eb2sm230183655e9.12.2025.11.24.22.19.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 22: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: b4e5019f-c9c6-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764051572; x=1764656372; 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=ayCvkqAvPPz9n6xMxwdSlHGHuKgh4PUChBb7KqLIT+Q=;
        b=p0dbO1kVBgtpcjIj4eBIPUDl+uQbnZSyFkllKabbqXcog/SSCV2VMmaveGzkwfY+GG
         my8avQCKBySLHwAH3nK8CJHRj5JuD8drH0fidBkBymSyFG4b5w/gnFdhnWZVwhPhgVxy
         tmGpH03eiSXARuS4dlDH7X/ivyaBOFc+lYGiF/bZud9aFX5z60+H50PFYj4ixMft16oh
         iTgKihCUTzMvASOL905sUyLHPxO/FoBwrecE79sHNM5NS8KL61ToplfEPmG+3FzPz9Dt
         +jL1yQpEFIbdKc+VkLRoY1lPi9CRJv7+LwuGCLvO/pSN05ZweteTcQ11ni/eR8PN70rR
         Cbkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764051572; x=1764656372;
        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=ayCvkqAvPPz9n6xMxwdSlHGHuKgh4PUChBb7KqLIT+Q=;
        b=Nsvj5GqwsPjgzXN1mGEXuBZhXciMScXwpWUaLr1OyjnWuDeEbEMAaygvmEL8ToPUgE
         0sQs8xlAu40jqywUCVvIUZDXuTs7yrnbKzDWWpn3zL0BWeerMLbzhnijv0JorqB6BlSD
         NGQ4ApDBfh6rfD/3xSpX+npid352iz3ooR44AdilEhM98H8tyUhrLcY7WfbGjw+GCMJR
         6bZrJ7pfTkXr/8Rhv9FYsIyJkTSfKAzpOvYpwWRbikMHyMB4v7l/AZ8wSdGU2o4tJrrs
         u/8CZoumtXqEaUue88rWnAYc/b5xHoy8CfSujvlqFYCC2+aYX6ud93CcaoyAwwGEBe6v
         CDXA==
X-Forwarded-Encrypted: i=1; AJvYcCWQqDpSKW35ZfJTiqglHR+2xI0FpI9rVcJv92+6mRNHG5XFL1zVQWyS4lMZYJJXvxsow9T4bl/9rsU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzgVYVowxTCDwQHw4SlRQ4TP1oD+h8hKkVPebwTpiubTC4pIe0G
	UJBuI4wa1/TPTFkotVyFrDROWX+4HKbij/QJQQ2fYpR2VkTJOODvCX4iSgZ21sP0o4E=
X-Gm-Gg: ASbGncuDbUZ5l4dpcpr/PeUadQlImfwi+d9JDhVrWkKK8TJpiIG8KQ1Qb7CqQf3AtIk
	BulbbOK4qF+0E7CJwFVLfu+6WTXXKd5LzClD7G1SMmhNn8BH3Dr8kBtz2Di677OlSFzxHXzMvp7
	s1obf3/7oLCZe9Mzpq+bqYPQhh7wgQRcnEtIf96H0lViPHhpbMiiBgD3d3pCr7HbF/M05LeSElr
	zUox+1YemueF2Y1iVeGE3VbrK+Q7DiMMCnkjaWc+ioUJ51sUTb6Spoekp84ECWsLrR/9eMe3MtU
	lc0H8dtyp5M+G9b3zV/1jaDK9Ttq+9RFrezttGoPnjuzHHsafP28KymMPRURLB/q1ERi59hV+yE
	ysRasU4zeG/yGvFgNKZOCXK7oQ7zXwy5SCRDIAuwSaS3LLy+aDv9WndWqRsOWQSCmShV0rOp99n
	Mf0JUR68CIqCzYQf8tW5j5qO+h1ep3Q8x6E2xZ5qwYVJAVztHhrv+PxA==
X-Google-Smtp-Source: AGHT+IGCGhdbHAxDlOenXxyfRDqxklvPY0q7ajM0L7BLu8g1ZJkCYTA/gCYbTbb1g7QtxJ0wSEDH8Q==
X-Received: by 2002:a05:600c:8b37:b0:477:76bf:e1fb with SMTP id 5b1f17b1804b1-47904b1ab30mr12611775e9.16.1764051571921;
        Mon, 24 Nov 2025 22:19:31 -0800 (PST)
Message-ID: <786d2523-7e15-4a41-afef-ee97adcc414a@linaro.org>
Date: Tue, 25 Nov 2025 07:19:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 08/15] net/tap: Use error_setg_file_open() for a better
 error message
Content-Language: en-US
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com, zhenwei.pi@linux.dev, alistair.francis@wdc.com,
 stefanb@linux.vnet.ibm.com, kwolf@redhat.com, hreitz@redhat.com,
 sw@weilnetz.de, qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
 imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
 shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com, jag.raman@oracle.com,
 sgarzare@redhat.com, pbonzini@redhat.com, fam@euphon.net, alex@shazbot.org,
 clg@redhat.com, peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
 dave@treblig.org, jasowang@redhat.com, samuel.thibault@ens-lyon.org,
 michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
 mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
 liwei1518@gmail.com, dbarboza@ventanamicro.com,
 zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
 qemu-block@nongnu.org, qemu-ppc@nongnu.org, xen-devel@lists.xenproject.org,
 kvm@vger.kernel.org, qemu-riscv@nongnu.org
References: <20251121121438.1249498-1-armbru@redhat.com>
 <20251121121438.1249498-9-armbru@redhat.com>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20251121121438.1249498-9-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 21/11/25 13:14, Markus Armbruster wrote:
> The error message changes from
> 
>      tap: open vhost char device failed
> 
> to
> 
>      Could not open '/dev/vhost-net': REASON
> 
> I think the exact file name is more useful to know than the file's
> purpose.
> 
> We could put back the "tap: " prefix with error_prepend().  Not
> worth the bother.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>   net/tap.c | 3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
Reviewed-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 06:21:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 06:21:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171616.1496629 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNmQ9-0003fP-69; Tue, 25 Nov 2025 06:21:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171616.1496629; Tue, 25 Nov 2025 06:21:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNmQ9-0003fI-2Y; Tue, 25 Nov 2025 06:21:01 +0000
Received: by outflank-mailman (input) for mailman id 1171616;
 Tue, 25 Nov 2025 06:21:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=RmC5=6B=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vNmQ8-0003f8-15
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 06:21: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 e7c966ff-c9c6-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 07:20:57 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-477a2ab455fso54489375e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 22:20:57 -0800 (PST)
Received: from [192.168.69.210] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479052a7330sm7911945e9.3.2025.11.24.22.20.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 22:20: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: e7c966ff-c9c6-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764051657; x=1764656457; 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=IHdaIX7rwIeWEffIotS9OpDD12xZA8o++Mo+VV+T6/Y=;
        b=kV/KhdjHOrOaj58oRTKFnQiS/zoIRakx4xgp19QYPeStCVvkHGeqvLgiNMfKF8bpY8
         ztMv0Y4BtrzwKzCTRnSHk8orUd4MoUC7KO9XxOXjJ3NXkUhPVlJbzblkyQq+jrWUNFmd
         AE2rKR1erLigT/mabtQ8AANKx0DkDlJGXuupRBguPXuhTPYxnBMpUfsTUEoZFNz0IGOT
         u79dTKn7ElRc0wW+UkXWJdt9t0X/+lIuHc3S3A58CN5kI9thr9Oo2SIw6qHGD8i6zGLF
         1mrHnhAE2xqoul02Yjz7LSSbMt6F6t7NP+IaGPl5eeJ/mj1au7u4zlCcZMgNdRQR5ZMU
         gXkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764051657; x=1764656457;
        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=IHdaIX7rwIeWEffIotS9OpDD12xZA8o++Mo+VV+T6/Y=;
        b=O787m5pw1JYhgJhAS1TA/pzF6WzSDsHPEOJ61iHd8dRsR2bpab5LE7sTJmC6BKf1L5
         zrmdG43JQ6U+xtijDGgqKnc0r4JtNFs3Ntv/oSqNy1whebaNFgSifpnF2/P+Zk01Yo7M
         iXxBKtxhsZFNX+1NSxkWwpy1A2w8DvWAZ+S/6R1pnqQreeb6VoCKrUtOAcbaWko8bbut
         vh8DZGGuBjbXrtxKafxkMERKEAxG8j2AGkcxGurbHTT3HZ67wCy8nIIvB/Q728Vnv+b2
         qHFfCmLD5aJWlJUeinvYJBLBmKhGvAW39ctwMwEqGfJz3EMm6zpz1Hy5YIexlQeqzoQj
         kvHg==
X-Forwarded-Encrypted: i=1; AJvYcCV65V+Wnp19igYVtoXQprUKrU10uWxBeDp8RqT7UiSzEU+KrXZMa69MSDiqzZXO3/VpN3nxR0A21qM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyhQRKspRz868+uwb0DgHVky+vvc0sel4BOqFKqSIDJCek8N3JY
	mxvHkDCfC8nAYPm84Mv2OFPHoAH2HtIoZyYZgXiApj+KFv8ZXUPGJk7vaMHmItJuTgw=
X-Gm-Gg: ASbGncs8o8qFN5w0MRcKJtwFuheoPjSP5WMk3Zymq+F5kLwFS3E43Vj6qthgxUZE+DI
	V7OX3ENbTnizv0yg6QzIvG08Ct4aYUjq+S3cRlk8EJU2PNfF0iDIB8cEOP5ZWrQBHylfuK2uEhm
	MFoYmjAoQ/AM2QqTLwVfXqT1xfOATmLLUMJ9TIjmlCXVb0fcsoOe4iWRjjQn1FssIgRUTvhV3cx
	xbNHTu9vELXOa5/5gTH+gAD2dRzvVlaUOg/2OBPQr47kopVLJUEChYvT9LyFnvVUR5MAHsEYGAm
	UyPs0tmkk1ZzhDPgPfqYCxrsba4n2KDFKMnfCBV/rby/bAmwOoLdK874V/T/fxTBa7ILcPxSIdZ
	3ToFhU324pHGXuR8+ilxNaRnB9EBK9yN+PR7/n76j1ySDUF9h5zR8qB+pBLkdLDTl57GpguHFkC
	V6QHv+24hgkt90Rv2UoT1UV0/nbTSx7GNkCKifTfoWJrgRWIjIXwb8Jw==
X-Google-Smtp-Source: AGHT+IGHe0GiKC1Okv4GPlfi6I2wY+Fb1eNjMNxPpHleM142ga2JmmwQ8xf+kkSIPlYpCGBLlQhrpQ==
X-Received: by 2002:a05:600c:45d1:b0:475:dae5:d972 with SMTP id 5b1f17b1804b1-477c1123afcmr152637055e9.23.1764051657266;
        Mon, 24 Nov 2025 22:20:57 -0800 (PST)
Message-ID: <ff36ffaa-1a17-41b0-bed2-0fa38fead91e@linaro.org>
Date: Tue, 25 Nov 2025 07:20:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 11/15] net/slirp: Improve file open error message
Content-Language: en-US
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com, zhenwei.pi@linux.dev, alistair.francis@wdc.com,
 stefanb@linux.vnet.ibm.com, kwolf@redhat.com, hreitz@redhat.com,
 sw@weilnetz.de, qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
 imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
 shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com, jag.raman@oracle.com,
 sgarzare@redhat.com, pbonzini@redhat.com, fam@euphon.net, alex@shazbot.org,
 clg@redhat.com, peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
 dave@treblig.org, jasowang@redhat.com, samuel.thibault@ens-lyon.org,
 michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
 mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
 liwei1518@gmail.com, dbarboza@ventanamicro.com,
 zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
 qemu-block@nongnu.org, qemu-ppc@nongnu.org, xen-devel@lists.xenproject.org,
 kvm@vger.kernel.org, qemu-riscv@nongnu.org
References: <20251121121438.1249498-1-armbru@redhat.com>
 <20251121121438.1249498-12-armbru@redhat.com>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20251121121438.1249498-12-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 21/11/25 13:14, Markus Armbruster wrote:
> This error reports failure to create a temporary file, and
> error_setg_file_open() would probably be too terse, so merely switch
> to error_setg_errno() to add errno information.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>   net/slirp.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
Reviewed-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 06:22:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 06:22:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171628.1496639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNmRY-0004cR-Ff; Tue, 25 Nov 2025 06:22:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171628.1496639; Tue, 25 Nov 2025 06:22:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNmRY-0004cK-Ch; Tue, 25 Nov 2025 06:22:28 +0000
Received: by outflank-mailman (input) for mailman id 1171628;
 Tue, 25 Nov 2025 06:22: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=RmC5=6B=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vNmRW-0004c7-KR
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 06:22:26 +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 1b6218c2-c9c7-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 07:22:24 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-477770019e4so43579295e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 22:22:24 -0800 (PST)
Received: from [192.168.69.210] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-477c0d85360sm227844905e9.15.2025.11.24.22.22.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 22:22: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: 1b6218c2-c9c7-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764051744; x=1764656544; 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=f9PMY82i/jaFQBwB85/CZ8mIcoZUJob2eOmqwSq7Cyo=;
        b=WX8U22Fm4aSB8zRiz/jDk+3YRuJ4dRRuMp9Bb7+ntcQRh88gEqSKkok7xsoCtDK85R
         CysO6D9p/y0imCCL8LmQm5gpE7dLlj/+GQcSuj4QkphAR4uUqF8bJYTKP1RUuQdXdadc
         9VW1rhEpF/shCWsTcPPPPuCkBx9pT2RXwjJdhipALMns5a72SWOucu0HhGgJI5SpSNPq
         BgJoK14dqrgEzOiEKzvSa4yUQRb9diWRzlCEXD6Df0nz1p4kV35tkU+jLxVIgnS5/0Pf
         JwRumcGQKcn3CaVwS2CEqIQZe295fSvkbNLIHwH5vPMAkiSVvlALI4YMpfBKX1CGteBk
         loTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764051744; x=1764656544;
        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=f9PMY82i/jaFQBwB85/CZ8mIcoZUJob2eOmqwSq7Cyo=;
        b=BcdJuKrEX5wPWA+G3oF0IMyb64jV8SjHAJoivQ6uVjuWy+Bl4+zvNl/TAzSNgxp8FU
         GmErVcRXMYD96yXWk9u2gb9L9DE4O5RkOv/vsTGv1FfhspnUpXzbIO6uFaYjlNJpeAIf
         9YRlrklwCkSzT3D1vG9ZUskg2n6Nt7dq1XLNbSAjmz5xLbUb7e9qebqJ5HRYS4FeMHtl
         HNpLtaWF6bbx+rkxTxWsOF3Jb+3gcrcqGsNSxuDtU1zNrX+HqSj+GI65SaKYrzVcTzgg
         g+CFJGJWzfBZoQJ3YTJ7AEyTCX5iR1RmGsz/nhGeDgpwRNzS3LwloXzXj7DYbVvejDik
         XQpw==
X-Forwarded-Encrypted: i=1; AJvYcCXm4wBiy4x1MXkBlivXEVNCe6KLtEQSL+N/NbsATut/myADxjEA7NCUtbwhu3Jh4CR1Fagc717Voy8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzT2xS+Ck/52ePS8WFe8KyOOm8gjPjmaUvrL1pCl7T6GrC+MEh/
	nJcn1vWkkKsO41bgDlYwfjp1fTt0qrS/K8Rid+aLIMWyku102cMrg1kDjsHRZ/wMjiA=
X-Gm-Gg: ASbGnctAzoqR5o9qiIWyRYYODpS1HO79LFavzN4Fc0x04Ewx6Lt37eFRGL+ei/MlVZT
	CIxyp+PgjPFfes/Y1W1VARpeG0BYZp52ze0cprFHr632LEN0agWKfPmV9TkMf2IGrmtLpKNMvwS
	HgLkUOsYY/OzUlBtoFCk3Xjsv3ASZDIIJ42CNiFI9bRRZLA4EIhQFeUryDY5nYgo+4WNzaRxFqv
	XOhr53ncgmdjXj3b3vz8RLTDzv49go6710F4+7lrpDurV1FnlxtL5WmahLizlPvTmfwOeJ6O6B+
	PGyvEeUGKbPIlat8KjUf7tYxOQzH41WuAw6RtDZ0HnlXgndB0RSNzKWqg6+Kp4pmrr4uiLAsXcL
	hecr/R0lnjVOQQ1b2FREn1KRcR9N0hxqfAUcRnyF8DkMppMK4Rrqcgjj5jjM3O+FXVJ1VhvTyW9
	zci7HDYaEm5GqtTIrNZak0jzwEZFH1vHD0T162q+6G/sJIq+jKiOyqmQ==
X-Google-Smtp-Source: AGHT+IFDchfo8wmvxExDOTScFL75Y50QSTKmA05qmrURNbKfXMlTq1TI/FEAoocUx4gEjb2eI/uz8Q==
X-Received: by 2002:a05:600c:1c87:b0:477:98f7:2aec with SMTP id 5b1f17b1804b1-47904acef12mr14222015e9.3.1764051743857;
        Mon, 24 Nov 2025 22:22:23 -0800 (PST)
Message-ID: <f992f60b-515f-4834-88fd-d033255bed83@linaro.org>
Date: Tue, 25 Nov 2025 07:22:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 12/15] error: Use error_setg_errno() to improve error
 messages
Content-Language: en-US
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com, zhenwei.pi@linux.dev, alistair.francis@wdc.com,
 stefanb@linux.vnet.ibm.com, kwolf@redhat.com, hreitz@redhat.com,
 sw@weilnetz.de, qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
 imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
 shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com, jag.raman@oracle.com,
 sgarzare@redhat.com, pbonzini@redhat.com, fam@euphon.net, alex@shazbot.org,
 clg@redhat.com, peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
 dave@treblig.org, jasowang@redhat.com, samuel.thibault@ens-lyon.org,
 michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
 mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
 liwei1518@gmail.com, dbarboza@ventanamicro.com,
 zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
 qemu-block@nongnu.org, qemu-ppc@nongnu.org, xen-devel@lists.xenproject.org,
 kvm@vger.kernel.org, qemu-riscv@nongnu.org
References: <20251121121438.1249498-1-armbru@redhat.com>
 <20251121121438.1249498-13-armbru@redhat.com>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20251121121438.1249498-13-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 21/11/25 13:14, Markus Armbruster wrote:
> A few error messages show numeric errno codes.  Use error_setg_errno()
> to show human-readable text instead.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>   backends/cryptodev-lkcf.c   |  2 +-
>   hw/ppc/spapr.c              |  6 +++---
>   hw/vfio/migration-multifd.c |  5 +++--
>   migration/rdma.c            |  3 +--
>   net/l2tpv3.c                |  6 ++----
>   target/riscv/kvm/kvm-cpu.c  | 11 ++++++-----
>   6 files changed, 16 insertions(+), 17 deletions(-)

Reviewed-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 06:23:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 06:23:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171644.1496648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNmSd-0005CG-TD; Tue, 25 Nov 2025 06:23:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171644.1496648; Tue, 25 Nov 2025 06:23:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNmSd-0005C9-Qi; Tue, 25 Nov 2025 06:23:35 +0000
Received: by outflank-mailman (input) for mailman id 1171644;
 Tue, 25 Nov 2025 06:23:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=RmC5=6B=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vNmSc-0005C3-LX
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 06:23:34 +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 43fa9620-c9c7-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 07:23:32 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4775ae5684fso24215445e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 22:23:32 -0800 (PST)
Received: from [192.168.69.210] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-477bf226c2asm231059685e9.10.2025.11.24.22.23.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 22:23: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: 43fa9620-c9c7-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764051812; x=1764656612; 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=UOOQl3kZW1bVC+fk7t2YWU1R6hWEB46Dmnal7magMFw=;
        b=k0NWXZGz2CeDC8TJSpIx9mU18oFQaFe3nFybnl6IChsPoJOIKRXLrL7cuO4HSDVlQ8
         AB0qCrLrDXqhLwkNanaQxrRUG+tNLnKVNDBGjiEdECFdzNFto+7idkzGOl04/X89JMiH
         4jKvC6h6oDK39ltfYNj51FvLJlLQWTPwpL108rBFswJnftJD/Bz1BW8x5GNW5qTMFSdY
         ogsYZSP5RagkPu17T8tbrWim5TEG0W7SNuIb3qBhS0FaRxiznbQ6FWAgtcc+j0BI1pvy
         KaJKw+mlRFFnBDvP+zXwjhDBES4axB2B7qVmPIUddY8fFl+z1dLA6jQbkcA5YKAmJ1XK
         yrzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764051812; x=1764656612;
        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=UOOQl3kZW1bVC+fk7t2YWU1R6hWEB46Dmnal7magMFw=;
        b=m9gkyTrVYnI2PR7hoAwn+h8tMharYGIaq4SxuVbCb/8FRMi9d6z2Mk87TMLYgJCTU0
         +2I7EkypXUoZ3nyAuM1BWyABrIpxCtbAfKZa8JbU5vJyphtCJIwtaUw9ppKeFyShkX5B
         sLRrtI/NmvdnZZlsCYWNHoqaFXd3JtDo74EJl2fRqAr5diWaUqvVNBdvV9JhqsR7jDoj
         29eVob+9O+zx5KYrEU7wxYl5y4ZaVuAMJBN15Cd1fr4eB3AAZ0kIJ8mdJk8SN9Kcp8Q+
         Sl31kG+hKX/wfdrFfrfhY2N6UNNr/wpIlljd27ajr0mtz4fRkgqjajfyiPc8YerSIUk1
         KRBw==
X-Forwarded-Encrypted: i=1; AJvYcCWOpB7NCT4eU0cONP8SEPg0eyH4gpkp06AWnGtVrmZ32hYjUNLgHKUugvOLBilSQXJGLIDLhiSkL1w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwFdnHuvGyFNQpTo9Yztq5zs+9UhbjDrwIghBfeNTvDsf86AUtA
	6ZABsPefuBMde4UQGkU5JVJj2n89kCt2IP7FoddIWr84FPYWEJd2saJW+qS8KXfxft8=
X-Gm-Gg: ASbGncv/AFpqlkhb5yzMNMAqcfVbvvChKpuvF77Hs5dQpW0fuihN0NwC3D3xdtD9lfJ
	mnT0KNBlAroWG2WcfFgFEWv+a3/nBUP/jJJtwXtYEXslhr7BAf10da4Po2H26YgI/0NO94O52L0
	hdUiwxF2er9qT4pt/g7YIraCDAq+i6W5Iq57lu4UQ5l+GDRv10srWUZIT6FgzCXNSmpUODeWUn5
	E2e5qsy7VRw+yX0P8VCaCEcxkOm3MHo6lwQOn9P4l1GWnKRkf64DS5IN6XvVjO6tz/T+b2jT8vd
	cBRBOr4uD6wbuhZ0RgTRjqfaSYRsf3sMcx2Cu63bI18w4Iz90td6X/GUu6bhuYtdBD1ceYVXLaq
	rhVyZybYD0n+3fREw85cxdDsNNdC1v0kjm4TkSzP2vndskTtatmJwPkLer2PWMUHG9t3VfCWTL8
	kDH+KK4S3cL2r2Lm38QUHI/HVYeinqTB7JHE7yIZan1xRAsK2ywKJ9643D+cCa+V7W
X-Google-Smtp-Source: AGHT+IGLa5fRK9K5L3FkUn0xfaMF4zkOQClpsNtdNtMutakIaGVpTMJc0y08tQVlCwv9gBeMm+157Q==
X-Received: by 2002:a05:600c:3543:b0:477:1ae1:fa5d with SMTP id 5b1f17b1804b1-477c1142268mr112956985e9.20.1764051811939;
        Mon, 24 Nov 2025 22:23:31 -0800 (PST)
Message-ID: <541f756c-0fde-488b-b386-814fb276ebae@linaro.org>
Date: Tue, 25 Nov 2025 07:23:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 13/15] error: Use error_setg_errno() for simplicity and
 consistency
Content-Language: en-US
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com, zhenwei.pi@linux.dev, alistair.francis@wdc.com,
 stefanb@linux.vnet.ibm.com, kwolf@redhat.com, hreitz@redhat.com,
 sw@weilnetz.de, qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
 imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
 shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com, jag.raman@oracle.com,
 sgarzare@redhat.com, pbonzini@redhat.com, fam@euphon.net, alex@shazbot.org,
 clg@redhat.com, peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
 dave@treblig.org, jasowang@redhat.com, samuel.thibault@ens-lyon.org,
 michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
 mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
 liwei1518@gmail.com, dbarboza@ventanamicro.com,
 zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
 qemu-block@nongnu.org, qemu-ppc@nongnu.org, xen-devel@lists.xenproject.org,
 kvm@vger.kernel.org, qemu-riscv@nongnu.org
References: <20251121121438.1249498-1-armbru@redhat.com>
 <20251121121438.1249498-14-armbru@redhat.com>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20251121121438.1249498-14-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 21/11/25 13:14, Markus Armbruster wrote:
> Use error_setg_errno() instead of passing the value of strerror() or
> g_strerror() to error_setg().
> 
> The separator between the error message proper and the value of
> strerror() changes from " : ", "", " - ", "- " to ": " in places.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>   backends/spdm-socket.c      |  4 ++--
>   backends/tpm/tpm_emulator.c | 13 +++++--------
>   hw/9pfs/9p.c                |  3 +--
>   hw/acpi/core.c              |  3 +--
>   hw/intc/openpic_kvm.c       |  3 +--
>   hw/intc/xics_kvm.c          |  5 +++--
>   hw/remote/vfio-user-obj.c   | 18 +++++++++---------
>   hw/sensor/emc141x.c         |  4 ++--
>   hw/sensor/tmp421.c          |  4 ++--
>   hw/smbios/smbios.c          |  4 ++--
>   hw/virtio/vdpa-dev.c        |  4 ++--
>   migration/postcopy-ram.c    | 10 +++++-----
>   net/slirp.c                 |  5 +++--
>   qga/commands-posix-ssh.c    | 23 +++++++++++++----------
>   system/vl.c                 |  2 +-
>   target/ppc/kvm.c            |  5 ++---
>   16 files changed, 54 insertions(+), 56 deletions(-)

Reviewed-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 06:24:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 06:24:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171652.1496658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNmTU-0005ht-6H; Tue, 25 Nov 2025 06:24:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171652.1496658; Tue, 25 Nov 2025 06:24: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 1vNmTU-0005hm-2c; Tue, 25 Nov 2025 06:24:28 +0000
Received: by outflank-mailman (input) for mailman id 1171652;
 Tue, 25 Nov 2025 06:24:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=RmC5=6B=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vNmTT-0005C3-E3
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 06:24:27 +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 63a0222d-c9c7-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 07:24:25 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-429c48e05aeso3152498f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 22:24:25 -0800 (PST)
Received: from [192.168.69.210] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42cb7fd8d97sm31796036f8f.42.2025.11.24.22.24.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 22:24: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: 63a0222d-c9c7-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764051865; x=1764656665; 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=Vq1z7uETBPWyiFMQkSi+G7SH23QCq9t1LMUTYPMDnpc=;
        b=w+2NfQYCwO65wypMVyXChWew9B0B35JQVw5Dlj8gGc7UIy9REUQ/41ZCaODiU5IHHt
         QtLmDURWrsmgzeKA6ShV0mjY+bacawqWdmaa6YMQfH2jqdFTFqmYrPjb93OL6rcAxWQ+
         /VZ/YkL47vbZD+1Pb0qYhnmcbdbJhznKZwghYTrXbvHHijW4FP1GPzihrOfsLMQkPL2Z
         F3lqnG4CHt1mwuzKyzZwyjS49lE3cUroWE6XHqyvp4cqNOH4flsnk1755KwXTP3GzU0T
         MM+HGSZcWlwVUrAEfUAa3Wk36pcyeU/hDnkICftuBNaDwbPrNHlj47m7O8OGSBAb/nZ9
         AY9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764051865; x=1764656665;
        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=Vq1z7uETBPWyiFMQkSi+G7SH23QCq9t1LMUTYPMDnpc=;
        b=llYhHvVbg6OIzU3nraAPCmyaUbvGuOn2WQtl8G5QrMdd/3HPGQofHcPYjtP40GjPDC
         LPj3QnodA8HU2c434rC+oycF6f2/VANosj33qzjHbZrGU0qnTY/ho69Yna5GTfzvuh9W
         X6TyLwwCHuwsR+BRuX+dqRiKbN3pRCXwJ8Kl/EbhHijV5cDV9fBHUjTzkmOYnhvhItQh
         flww2XMfuIYBbIesxZKC0PktsJkRqdc75vrXtjbH5KYDYcIhMfF1vjvOsymjEwEwffwQ
         0ljpfMQrTLKi1ILIR/f+uJ284GT1korOhG+QVD+Z2hB2+fiwzj2Qej/B7GlImxhQK+3V
         OTbA==
X-Forwarded-Encrypted: i=1; AJvYcCUjJx/FE24TX2krc2IxNqv+FE0XYnLWzDGF8Pm0jcE3LJKQFyimUWppk8EifGTFRuVww1UrtBUEQRI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxai/HyG9MhAQxQqTwjayMHxO4XRVREDIMesh24O6GTh0v4VaeB
	rGcCUTRtmWTBy/ZdcjXKol9fwhJFmqUpF/ilBPwR7fJVz0BHWz7dntMv19aBMXBoQd8=
X-Gm-Gg: ASbGncvNVfjtegucVRiDs4CiOSIKBCunNNrVbJtMI0mLJqaumuiS/rcgBU4oMRG6V6H
	WUj4OMAaoacf3mAWrYitmtskOnGkGoKQSZh3A+BVDZTE99gyF/AeaZD+skLv0yyjRrhR5/dshUp
	aB744abfJG4gj9YwCnrmle8OvUEa27wrgcG/CbxHWrHp+bhHXWgbMTym32gjqff/YNktceeVg5c
	60BlMcOSRZ7zWNVum/xamyv9a8MjYtuaUsNjUBVy1l5+8b0quTP8iLRm1px7Fhr4vpuGJpFci6r
	lacDl37Ukb6VTWcWSqFWFMVp7rxJTokCTv7PrNiTu4TMzrlMHfEuSi4jefEGP7jDiFxWQZAYLmT
	u/TUwgr/RDSc3yKW55Tl/1EXq/6TQNm35ugVr+48jwf6+cq0jIDPp242234x/DjBAyJAsIbomAL
	iwJWzNrtjbOKh7vFjsoVETtSi5y3EQo1+mWTfZbeAsdg4D4lNACY1/daGpmxu3B3NV
X-Google-Smtp-Source: AGHT+IEaf9VPAlvbB+DJWu+zfTWBlEbYA/AGQ5BPVvtwmDg4JvdCIECBmvF4Zcsn6awffVSNfsJ6Hw==
X-Received: by 2002:a05:6000:228a:b0:429:cc39:99c0 with SMTP id ffacd0b85a97d-42cc12f1bddmr17201116f8f.1.1764051865045;
        Mon, 24 Nov 2025 22:24:25 -0800 (PST)
Message-ID: <f356b3c8-ed08-4ec9-93c8-dc9dc6accc59@linaro.org>
Date: Tue, 25 Nov 2025 07:24:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 14/15] qga/commands-win32: Use error_setg_win32() for
 better error messages
Content-Language: en-US
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com, zhenwei.pi@linux.dev, alistair.francis@wdc.com,
 stefanb@linux.vnet.ibm.com, kwolf@redhat.com, hreitz@redhat.com,
 sw@weilnetz.de, qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
 imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
 shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com, jag.raman@oracle.com,
 sgarzare@redhat.com, pbonzini@redhat.com, fam@euphon.net, alex@shazbot.org,
 clg@redhat.com, peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
 dave@treblig.org, jasowang@redhat.com, samuel.thibault@ens-lyon.org,
 michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
 mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
 liwei1518@gmail.com, dbarboza@ventanamicro.com,
 zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
 qemu-block@nongnu.org, qemu-ppc@nongnu.org, xen-devel@lists.xenproject.org,
 kvm@vger.kernel.org, qemu-riscv@nongnu.org
References: <20251121121438.1249498-1-armbru@redhat.com>
 <20251121121438.1249498-15-armbru@redhat.com>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20251121121438.1249498-15-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 21/11/25 13:14, Markus Armbruster wrote:
> We include numeric GetLastError() codes in error messages in a few
> places, like this:
> 
>      error_setg(errp, "GRIPE: %d", (int)GetLastError());
> 
> Show text instead, like this:
> 
>      error_setg_win32(errp, GetLastError(), "GRIPE");
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>   qga/commands-win32.c | 16 ++++++++--------
>   1 file changed, 8 insertions(+), 8 deletions(-)

Reviewed-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 06:25:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 06:25:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171663.1496668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNmUB-0006DH-DB; Tue, 25 Nov 2025 06:25:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171663.1496668; Tue, 25 Nov 2025 06: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 1vNmUB-0006DA-Ae; Tue, 25 Nov 2025 06:25:11 +0000
Received: by outflank-mailman (input) for mailman id 1171663;
 Tue, 25 Nov 2025 06: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=RmC5=6B=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vNmUA-0005xb-6H
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 06:25:10 +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 7db69476-c9c7-11f0-9d18-b5c5bf9af7f9;
 Tue, 25 Nov 2025 07:25:09 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-477a1c28778so56101685e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 22:25:09 -0800 (PST)
Received: from [192.168.69.210] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42cb7f34ff3sm32968445f8f.16.2025.11.24.22.25.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 22: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: 7db69476-c9c7-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764051909; x=1764656709; 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=kq1R/KnIl0tjtGNpVBFK4blvRpvREmYvjs4Wzx+ZU8A=;
        b=K4JWjLvSxFoye4FtwmsQE+5lsnMWB95IJ6inVhsB9209x3AG/y8skICSJuwerrjltr
         MgE5Okjut5kkRnJuAo4UvvuJnW3mTeoza/sc6+ZWUQHFnqrwIkJF7dZzM9k70a2VsHCg
         HAVJRciNsOZSIbsOQJd7puvk8RsZgvRxlnDzbZ5Dek+2Q06z6X0fSkVmgEJpblKx8qIt
         64kYBZTf23YKg4jsqtxdFgjjLp0W7Q0xihX6245glpb24ghxwPCVUlwPSDEB9LsUtD9Z
         0xmPcxBdLThvrFE2OJGd04rLarXqVF7b+xoCc75fO4cvuAFpfbQhax3LBH5h3DSxbBVS
         YI7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764051909; x=1764656709;
        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=kq1R/KnIl0tjtGNpVBFK4blvRpvREmYvjs4Wzx+ZU8A=;
        b=U4NsrhDkoiSeVjNCxJT2jZukhnOMJ6CIABMR5UfbRHN2XxNGqUVUMxBpigEH3FKEb7
         +s19RsqPu9S6oVw3hjTSINEcWtGz8KuJFU932U78xebuW5rQ7qocz/1mnrXL5848UmME
         V4F0ey73m1hGZ/VPp5hzqb6x6UB5YWFNBx3fPrYachaZzDHeeGZqFsminvj1uYIp7gc+
         va7eiMnI5DG4F+S5WJnJLbhAy5z0qqikrVBliofJ5T+Usr2Bu2CBVpeXDpXEAXsKuZ1l
         VpREMCC6IwCF27IfdLPEkh+0caDaUwYuxUBV/4SFeUGTAp13YTbEP+mpVdclJHar/HRK
         jZoA==
X-Forwarded-Encrypted: i=1; AJvYcCUsp6cAD6PIqdcHcnVyVXPnaUmefo6Gd3zzMeA/rWCjsuPpEenFjXbo2TNTu3yBKQNuAeARikj1r5A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwqHANReSDYDCfRcrCaDXwdU8t+mTlyT0thQezTUaxYJo8d5JVQ
	goK4dFTpZpYRBFJyDJmMnmSqtsdktusTkH6G0mZGNnYy5goH7TN66VYlJTfF5i9qyw0=
X-Gm-Gg: ASbGncsSGBbRnOPfs+bZKBC9VUDQBId8CZzLFMko9Dqc/Sef7sAhKVm2l+caE01p/K/
	RtCIlZabIkBTjrazZPh6jwuC2w3jsoWg76BSHn4sf1uL/uuS3kKIq8Ndj8U6AfZrzOZ8gSu6t/z
	n7XLZ++wf1LdsHIRfXULWN2eIMLCRTCVNnyK4hBYU8tDZgaJTMhJf0esVHe6Qk3Z1QMUt7vlbsd
	dqFwIbbKo4sW4qyXUOV7ZycbDdBltgCpDLjtT3NO6dtq9ZDQ5CUo9JoIGcJ5PBt9y26dy+PsA0k
	GVN/WNhKG4d8/R7gfVvXdCSmQh99up9q6Bw492xNBC0r8jZYgwSVZ90f6FOwTfDEpJHstQAoxFy
	MjBK82t82ZnWuiHgu3DXUk5uQBd+LUZi8m0prQKEfjZIMW7vPUzhrovgKgC4nZurvnxi2rUBqBP
	Z+EHbBrTyhYRbrlRc5qcAKF3Rf57zIbD1v5oBVH5Y6YQpRgEXc5Hw0yw==
X-Google-Smtp-Source: AGHT+IFprm3vCDsbWVJfgbV9xKa8iHTCEmXL664XoxSCOsyM7eQ2uIrryW9dfBTvUiv91/I4gz9/gg==
X-Received: by 2002:a05:600c:4685:b0:477:5b0a:e616 with SMTP id 5b1f17b1804b1-47904acaf28mr11379725e9.5.1764051908756;
        Mon, 24 Nov 2025 22:25:08 -0800 (PST)
Message-ID: <54be619f-1de6-47c6-993c-246fa6252596@linaro.org>
Date: Tue, 25 Nov 2025 07:25:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 15/15] block/file-win32: Improve an error message
Content-Language: en-US
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com, zhenwei.pi@linux.dev, alistair.francis@wdc.com,
 stefanb@linux.vnet.ibm.com, kwolf@redhat.com, hreitz@redhat.com,
 sw@weilnetz.de, qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
 imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
 shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com, jag.raman@oracle.com,
 sgarzare@redhat.com, pbonzini@redhat.com, fam@euphon.net, alex@shazbot.org,
 clg@redhat.com, peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
 dave@treblig.org, jasowang@redhat.com, samuel.thibault@ens-lyon.org,
 michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
 mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
 liwei1518@gmail.com, dbarboza@ventanamicro.com,
 zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
 qemu-block@nongnu.org, qemu-ppc@nongnu.org, xen-devel@lists.xenproject.org,
 kvm@vger.kernel.org, qemu-riscv@nongnu.org
References: <20251121121438.1249498-1-armbru@redhat.com>
 <20251121121438.1249498-16-armbru@redhat.com>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20251121121438.1249498-16-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 21/11/25 13:14, Markus Armbruster wrote:
> Two out of three calls of CreateFile() use error_setg_win32() to
> report errors.  The third uses error_setg_errno(), mapping
> ERROR_ACCESS_DENIED to EACCES, and everything else to EINVAL, throwing
> away detail.  Switch it to error_setg_win32().
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>   block/file-win32.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 06:30:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 06:30:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171674.1496678 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNmYp-0006oj-Uk; Tue, 25 Nov 2025 06:29:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171674.1496678; Tue, 25 Nov 2025 06:29: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 1vNmYp-0006oc-Rd; Tue, 25 Nov 2025 06:29:59 +0000
Received: by outflank-mailman (input) for mailman id 1171674;
 Tue, 25 Nov 2025 06:29:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=x8HM=6B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNmYo-0006oT-HR
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 06:29:58 +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 28b1b862-c9c8-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 07:29:56 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-47790b080e4so26641885e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 22:29:56 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a8e:d5b9:723c:3555:44bc?
 (p200300cab70c6a8ed5b9723c355544bc.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a8e:d5b9:723c:3555:44bc])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479040cfe17sm11191395e9.5.2025.11.24.22.29.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 22: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: 28b1b862-c9c8-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764052196; x=1764656996; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pAsTto8XbWmgZCXr4SW0X1UuxlXBlsvyoTLz2hRYixo=;
        b=ROSBFi811jV537UeWSxR+wk11Y3qKMxK3o53FWG3G1PN58mx45xupqJodwFB3JW2Ez
         MeQYN8D0W779d1aPphZ4Xgswa6Z8ZAK50JnqYzFdicAw5ajZ9fF3rWzNNangpRPS1vQc
         jdDdOr644V4crSanngxbX4BLT1iOqkWyEUX1dOtXOk2UjAnwpdoKGgOfKbU9lkHaCLqh
         oQjVDkIuTDTjup2YzpkeVyemBL5cOSaKtx88RbGr/4MfbXgX9ukR9K6F/6B4/NfMkpx4
         AhqcRbKhJyShSkOHtocC7yxUI0WqWVq+GtLwPm5UvvGAeChwmmVPi2A1heEZUhcWiSLT
         YTpg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764052196; x=1764656996;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pAsTto8XbWmgZCXr4SW0X1UuxlXBlsvyoTLz2hRYixo=;
        b=gmIy9G+Cs9hPBhjlYDfFrlxrVvSrNtDwB9cmbvsKC11rUSXLiwU4SPmdCSGh3FJcUc
         mVyHKz2+ceDaPeWU4jiBcCtBfur8H1HPNEKHpzslSrP2tHGe4zSHDdZjieMdgpJ1BtZT
         3AKDUvMgSKkP5+JAwllb1RVhF8aqIN2r3zlABVf7q8zQAkjPwjLQun0lwGxfSmzxk1F8
         y6/PRA2qAZBy5UlLmtXbxGJIM9MGUaAIC3cQPRQGZuuW3zq3u0fUzFg2rh4aSIPbL2cI
         OOsl8Y9QIsIvphpXE/gNtOXT4et7W67XOS0k962h5jML0rdJkc3YzRaYD/S3X/HNYbHg
         TkBw==
X-Forwarded-Encrypted: i=1; AJvYcCVkAXDbf/9tqj1PyGd3BZUh+Fv72zFmrFkcmXVhm5GKkCMUF9tVQNzWRzWvLK0Btlid7XAJZo8nvZw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxkdjE0/FP36H86WSOUbutbiI5j1ipH9jGOFiW5t7pxOU419SDP
	T46AR9OI8XE5AIovb/daQZzEUc7qaR6chkasvVBA58xeF97SQp729UPUEUBHSn5CHg==
X-Gm-Gg: ASbGncuuXaPmXgQLrEBEu5TW/o8wUn3wVibrJ0bYMo/gugsMe/zINTSiUFMKE2pfjBA
	o+VU4/GNg5YkJDHvgVPxBXblL9f2lGddbG74+8VTDbYhevkcnxr2jWDjnCuDH6+/kNHnuJgwCR8
	2qeJ2gtY6V0i3QA2a6eT/4Nrqr9msva0JC2nnBgvNxz8qs9rJuZR/N8v1lIQDPPqAjl0jv6rMmk
	dqiJYxdREYAGlpYaF8SdlmnOcN/USkwLxa9V0a0i7/7UzJqg2P24WHjHEzPM1JVaqNcOS7HC0r8
	Xq6Y/4lDIt1W3RHeVKsXLpSoEYPeFetx0NYIXQX+pGBnVfaoTnQQ/0Lt0mGAS/5MnKt+fa/EIfJ
	6l7DLO2t+HRq85lJADu/VhmMmimbTjshRHPjlJaN+LDGW3JsdInYi4WKJqyZqrBJq6LFbLkORiI
	O7gGOJ55PmLC/+anSTvhHYyAHpvro9tGxu8j+4JNAP/j1GRl99CIIITLrvxoJuzHQC9cQnAs/Hs
	J6RbMHALC3AEOVLaTaf77S8HZMFocL38ykYp4qhPUvCP7PW
X-Google-Smtp-Source: AGHT+IHjWYu5VKDzbhDaGyIusFyT1VKaU7H8hDZHhzRCJQ7PP8pUuJZNrUVmkkPVEpiek+m8FgFeVQ==
X-Received: by 2002:a05:600c:1909:b0:477:7b16:5f9f with SMTP id 5b1f17b1804b1-477c11337e0mr147783805e9.31.1764052195663;
        Mon, 24 Nov 2025 22:29:55 -0800 (PST)
Message-ID: <9fc71bad-f836-4dbf-b076-fbcc446ef298@suse.com>
Date: Tue, 25 Nov 2025 07:29:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 1/2] xenstored: Default priv_domid to store_domid
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Juergen Gross <jgross@suse.com>, Julien Grall <julien@xen.org>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20251124223533.31613-1-jason.andryuk@amd.com>
 <20251124223533.31613-2-jason.andryuk@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251124223533.31613-2-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.11.2025 23:35, Jason Andryuk wrote:
> On a system without a control domain, a hardware|xenstore domain
> starting xenstored shows:
> common/grant_table.c:1041:d2v0 Could not find domain 32756
> gnttab: error: mmap failed: Invalid argument
> Could not initialize dom32756
> 
> setup_structure() does not get called without priv_domid.  Subsequent
> introduce_domain() calls will fault when calling fire_special_watches().
> 
> Default priv_domid to store_domid when there is no control domain.
> 
> Fixes: e5b0a9405571 ("tools/xenstored: Auto-introduce domains")
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

Just to mention - unless told otherwise, the Fixes: tag here won't make
me take this change for backport, as I don't think a "system without
control domain" was deemed as thing back at the time.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 06:38:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 06:38:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171685.1496688 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNmhG-0000uM-Ne; Tue, 25 Nov 2025 06:38:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171685.1496688; Tue, 25 Nov 2025 06: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 1vNmhG-0000uF-Kv; Tue, 25 Nov 2025 06:38:42 +0000
Received: by outflank-mailman (input) for mailman id 1171685;
 Tue, 25 Nov 2025 06:38: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=x8HM=6B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNmhG-0000u9-BW
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 06:38:42 +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 617a082e-c9c9-11f0-9d18-b5c5bf9af7f9;
 Tue, 25 Nov 2025 07:38:41 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4779a637712so30896195e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 22:38:41 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a8e:d5b9:723c:3555:44bc?
 (p200300cab70c6a8ed5b9723c355544bc.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a8e:d5b9:723c:3555:44bc])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-477bf3b4eb2sm230927675e9.12.2025.11.24.22.38.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 22:38: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: 617a082e-c9c9-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764052720; x=1764657520; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vHHXTgoZ8mnRsxhFycHqAEurI+rzK7ScuK05ATo6Cxg=;
        b=GsDuLyEG0wHK5+tWMMGkCIERmGgImvmtUnaHPZwIUmA7J5fUn08YNWcEabNfFXGBLg
         NgAZQjtKrn9MXg6cqRL0pmtMsF4cE1hYk/IkaxMWR8qpolf4h8nK/liN3dmr4UKhIlpU
         GTZNuy6uDh1Js0O/Z7y1b1GqTAgg/qfAwu7z4tSaenv20mW9tFmHdimhbJNI/KWgEKlK
         sxMo78tq+vV1mfTtUeEO6Dd3AkkCLksTdzTPXo0xBKMp4JInKvgiTExnABKjYmlReFG4
         TdFgMQJFD9C6iqPRDKKd2mrcmlRsaD0VxeupTR77aj9xOyo0f9Qq76kbhvXciw3+2X1j
         H2UA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764052720; x=1764657520;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vHHXTgoZ8mnRsxhFycHqAEurI+rzK7ScuK05ATo6Cxg=;
        b=d8i2qmZRR2i4U7y7M6XEV+JnC+kNy6E0FpiKB2I+LdVeMGPK3I4Zc1LBXVFsktJaCG
         LL1w4aBLLlsyz8UZ6KimXIg0crsuFAXPQGJGNRTnDqb3CvYw9C6MGlDAsTMho7hiqZ6v
         pvCwK0aHYZ1XrYuLppikT/BLw1gDLRGDveicyTnvdhPv3nynpXNeowIxMVqfD1P5/PMZ
         i3kHzYfEN5pTuk1CZk+wMd14Kme56HAYDkHTK0JL6REyXYTWXC2MIUtnSbyMmv0UN+Vy
         cMAZwEvIA9tflpiUjmNwAjS9PpOI77iz+bNryrC3o90yhPFFTwuocrh5KXgYJEQZ9nVD
         u0jA==
X-Forwarded-Encrypted: i=1; AJvYcCWsTieoLXYW7KQ9WYt3lFwBjqhrXDtbl/V04OBZKBdoVU3qUeYwR5qHBpzhH5F96NvgX6AXMwGGhHM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxMLHvr6P/wx5ju0JV9xAoQNx2fjT2BWsCwN8yDEweQhfaVroO9
	+mnNv49h74h9wh/dI6vvfCFmc4Sq0VyI7SP54xBSLUMl95trhueW+5Y/IhrUGoBttg==
X-Gm-Gg: ASbGnctDJU82mvZXA4cFMlNACHzuESKe8BJ393nuY3AKtiLuahxNy9uIPW4VBfmwy9L
	vSKlT711JtQ+bf4t+C6giiP6oaAWZyhUlkPQ3gsarmqiYkEDywXCuxyTpKWm8pQj3hp5dGt04Tv
	7IoWsx3fKUHcHX2nve1oWFAf7HF3M8ug4fxAM8Yi8vaLiAAaNVcEhORwaqS2ewC2Yi/JTlqh7Pi
	lu6cD+8TxOLIhHL+yiFMioR4o/IfVRGNadtv8Nb/Pqb4Pu+dtrOKhHnm4Oka1sZce8e1P8DT/P4
	NVN+WzGD4j5fcquo3Pk1KTtMN8lQt1Ho12HDNFMjFERwALmN0l4h3SdeXyi1NudW2IPZhZijebX
	L2c5DK7a5OlNHPETDYWLS8ivhzY6EeHsNE0EhEaa5EYPeebQ/PQj37JX2vU8lXIQTIaGvWUxXWw
	G3y5Rw8nHEASSR1n+FUGYdXmAmWpEsPZ1Ax3XInLDe1aIOhmlNHzzjUGWCJ4T9IyAd9e4sGTbzi
	t20eIYKUtGdd182DaPT2Om+VSnh0RxQLelYUHddYxYu9NUb
X-Google-Smtp-Source: AGHT+IFDEUe3QkpJjg9wCas9AYA9q/aflW6wryax3Enh7iJkS7bWIYJwHpxzZKRfOA0B3dwb347gRA==
X-Received: by 2002:a05:600c:450f:b0:46d:ba6d:65bb with SMTP id 5b1f17b1804b1-477c01eb9bdmr158715315e9.31.1764052720484;
        Mon, 24 Nov 2025 22:38:40 -0800 (PST)
Message-ID: <6781dbd7-ddce-49c1-a359-0910e91bda43@suse.com>
Date: Tue, 25 Nov 2025 07:38:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/24] xen: consolidate cpuid library
To: Penny Zheng <Penny.Zheng@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>,
 xen-devel@lists.xenproject.org
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-3-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251121105801.1251262-3-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2025 11:57, Penny Zheng wrote:
> There are some cpuid library functions only referenced in
> XEN_DOMCTL_get{,set}_cpu_policy-case, and shall be wrapped with
> CONFIG_MGMT_HYPERCALLS later, otherwise they will become unreachable when
> MGMT_HYPERCALLS=n, and hence violate Misra 2.1
> - x86_cpu_policy_clear_out_of_range_leaves
>   - zero_leaves
> - x86_cpuid_copy_to_buffer
>   - copy_leaf_to_buffer
> - x86_cpuid_copy_from_buffer
> We seperate these functions by moving other functions to a new file named
> cpuid-generic.c, and modify related Makefile-s to retain same behavior.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> ---
> v3 -> v4:
> - new commit
> ---
>  tools/fuzz/cpu-policy/Makefile               |   2 +-
>  tools/fuzz/x86_instruction_emulator/Makefile |  10 +-
>  tools/libs/guest/Makefile.common             |   2 +-
>  tools/tests/cpu-policy/Makefile              |   2 +-
>  tools/tests/x86_emulator/Makefile            |   2 +-
>  xen/lib/x86/Makefile                         |   1 +
>  xen/lib/x86/cpuid-generic.c                  | 273 +++++++++++++++++++
>  xen/lib/x86/cpuid.c                          | 260 ------------------
>  8 files changed, 283 insertions(+), 269 deletions(-)
>  create mode 100644 xen/lib/x86/cpuid-generic.c

Andrew - what's your take on such a split? Personally I'm not overly
happy to see related functions be scattered across two files. The
separation also feels pretty random, posing the risk that later some
of the code may need to move back.

Penny, I also don't think "consolidate" is what is happening here.
Perhaps "split" would be getting closer?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 06:44:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 06:44:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171699.1496698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNmnE-000380-Eh; Tue, 25 Nov 2025 06:44:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171699.1496698; Tue, 25 Nov 2025 06: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 1vNmnE-00037t-C9; Tue, 25 Nov 2025 06:44:52 +0000
Received: by outflank-mailman (input) for mailman id 1171699;
 Tue, 25 Nov 2025 06: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=x8HM=6B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNmnD-00037n-L9
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 06:44:51 +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 3cceb270-c9ca-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 07:44:49 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4779a637712so30927405e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 22:44:49 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a8e:d5b9:723c:3555:44bc?
 (p200300cab70c6a8ed5b9723c355544bc.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a8e:d5b9:723c:3555:44bc])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-477bf36f535sm238027715e9.8.2025.11.24.22.44.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 22:44: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: 3cceb270-c9ca-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764053088; x=1764657888; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=V4PsvJUFPqval9XT2fjByGBFC2K0wNjKtflpyzIW4RQ=;
        b=DHfhxuNlTZgDRz1OQt0gVVcXqQcAhhVuZ1AVIwEMV6rfuncKYOD9eMOP/3YM38/hEv
         gH/kkSPDDMH19WwPAl6XCkPBz0T3wzs81i7QxWOSVG04pf+poACgWdv6N9DkB4Wu9rg7
         3LvfX87gk2V5wUgjVa4sHPKArGhJUToGT2X4M2yfg5o55HMop+Of5VFQYMLR/7BQOIaQ
         pUT/NDR+Ds5Q8rafoyepbXrbAbCos6dJFLe3OowDWxg8ZFHzyH8lMopXdL9vA/pDTvNb
         nOgoKwsZMqBKxPIKSNPYU515JWZjIPfAXJ/93jSlavk+RTKparpDW8nVVfilPkZUoV8h
         Q4Bg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764053088; x=1764657888;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=V4PsvJUFPqval9XT2fjByGBFC2K0wNjKtflpyzIW4RQ=;
        b=kQVbjRrT9nMS0SJKO6bcwQUv9vvf7yHCmwp7EUGk7Sh2uKbVTPOrwoLr474Jjo9E4o
         CrqgmY6SzEYVsUPiT6Od/T3fqrbgJNMaDzspmHM5Uy3h2ocpOxwq4EZUFbWAzTx6hL80
         F/+3M0+51o0QDsxf2QjV9LZyvV5odePZwtbOA3soRosmSVkfK92I7P5tUn4UAJX92Y/e
         +8cSZIXJAqUra4rGBJTYbCffGQDP/cnkmPeOfiWJC3Vp4OWJT7ydu9BAqTT7HLea2jPl
         +tN3oppQQW95lyHGy97/d1kxP1oGjvLtvThuG3XduScIgf30KNwNpmulOJTvyCf52gRK
         7XKA==
X-Forwarded-Encrypted: i=1; AJvYcCW0tqMnQSIXSdPKs+VMO1AU+FXwUcDZAtmxztmRvOpzPZchv2D6sdkTsBPGENqXsi0xuHtK9HlgNlI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywf6xQjY7ciZDtcWJBLVTSDzWjKg0poi/X6LIgY84yEJAwrATvY
	QS4yb9MS0hFiPvKEbgOI+ofkmQj6sv307EKwvMHJ41qOI0gh8kbBD+sPlW25Nv3lHw==
X-Gm-Gg: ASbGnctly8H8UfAlKrqqKa9/LEXUUXdcUrlOAg0uZALDj8waqkfLBhADj+vJgwqwYlr
	8eR9ddgFtYov6g7jVk7YnuhbD6PTacL/pIVab3ApEY2UA9mdHbE8EIhstkQ2p3iZdvPmtcQn9oD
	ZY2aRfw/Ulk10NoiniAaDtkWMSTkbfNfqyyD0uSs9JSEx6axKPK2Sx8muTRrmgpPospDZ6rnvxu
	izFaGblTxHWCzFXAQLbBSQ6EcQfV8aLchWUrdMZNxX+5wOXptrF5BXnJuQ3B1L16lWdrGVxejWe
	PTU1k8EdqOV/cr2LMMIGnyuieqttUMnUG884dzVMBY+cpU+8TyPUGZY5d7QzTv91vi000pHXMUj
	VyTrE6dnLdxIVtJ6IDQzzy3IAOIkoWwjUhlncS7GNxB/6Bt6l4PU5lUojrWzvtIWr4JiROBSNEV
	r/0Gao8vcbkcl+IoaRhnFU7el6wnYbQkS1XwawU89fT6dUbQBLxfeXjkyzfITSoB+hNrw2J5e/M
	7MHBtDh7sn5sZ6Dg9Ogulm/Xko38oKcK8hglLUSCmFsKa5h
X-Google-Smtp-Source: AGHT+IF0lw6UPMxOI54GCBo7JKJG1+LZ2rspYqDbLEvP1hNh59C8ceGCTKvMsqz7bx9lnRT8BvUC1w==
X-Received: by 2002:a05:600c:840f:b0:477:952d:fc00 with SMTP id 5b1f17b1804b1-477c0176752mr164597045e9.12.1764053088489;
        Mon, 24 Nov 2025 22:44:48 -0800 (PST)
Message-ID: <65690c5d-4adc-47d5-ba33-dca5c79327dd@suse.com>
Date: Tue, 25 Nov 2025 07:44:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 06/24] xen/domctl: consolidate domain.c with
 MGMT_HYPERCALLS
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@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: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-7-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251121105801.1251262-7-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2025 11:57, Penny Zheng wrote:
> The following functions, scattered in common/domain.c, and are only referenced
> and responsible for domctl-op:
> - domain_pause_by_systemcontroller
> - domain_resume
> - domain_set_node_affinity
> So they shall be wrapped with CONFIG_MGMT_HYPERCALLS. Otherwise it will
> become unreachable codes when MGMT_HYPERCALLS=n, and hence violating Misra
> rule 2.1.
> Move them together to avoid scattering #ifdef.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

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

I again think though that the title doesn't quite get it. While "consolidate"
may be fine here, I'd like to suggest s/with/towards/ or some such.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 07:21:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 07:21:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171708.1496710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNnMS-0002hj-3w; Tue, 25 Nov 2025 07:21:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171708.1496710; Tue, 25 Nov 2025 07:21:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNnMR-0002hc-WE; Tue, 25 Nov 2025 07:21:16 +0000
Received: by outflank-mailman (input) for mailman id 1171708;
 Tue, 25 Nov 2025 07: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=Ygd1=6B=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vNnMR-0002hW-1m
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 07:21:15 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5216cea7-c9cf-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 08:21:12 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b736d883ac4so947924066b.2
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 23:21:12 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-645363b62cesm14063701a12.13.2025.11.24.23.21.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 23:21: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: 5216cea7-c9cf-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764055271; x=1764660071; 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=19G+vzm4z8VGr42iTwcdy1kvT/i3RcVxNvQmZUsluZM=;
        b=El8B7gwfidJyeF85+0/r7Hm2cabQfJTeKKRwB7+7wdqFWfbHwdDwQKEmzVhDom4blZ
         r6fBMYUQfcy6FlJg/h0zvMHIX6KkHDwlxm5hsqZ0gGTRSLu1sJk2L/PpbHHmzKWMC1Sa
         /2YXj1+04vnkxs2GZdXGMl4mMnJa/phzgtj5x83P+ttjRNnwGq9vHB1evB9jftNC1JMu
         3ank1AkngO3nTVkZlUSNEuTpP8X011nJgSHFM+YuX43FiFL3G288cRCfYTfjMDWONjQG
         mDJn5t8G4S6sOlZljRFURU7nDGQC85Onnfu7bFHPTtd9YW87k5d7fY80mHhpRFJ3FnYb
         6z3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764055271; x=1764660071;
        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=19G+vzm4z8VGr42iTwcdy1kvT/i3RcVxNvQmZUsluZM=;
        b=QcsmY8JUXNso3ynxSSOcT/hIdpdFM+htGQeDmN1RZBjVnD17zhe2up/eqxH1yaCDnV
         N3uwcImwYgei8eM0etJODVwHGY+5L9StzaOCqhhTKtl1OEVl64tzXsCzTI+KWU6+HMRH
         j2LqxtYtOtcyAvNkREcniDqRp3NjrSLUQ2gdeFlKyMBEK8d/OprXye5pZkodDobxyvLM
         22F3f2IJFyPvo+uumtu1xWIVmADDLCJj6B9BN7ZLrC4x+XIqFw/qsCnUlfsggn+7RN83
         Myh4lcmrS4KrzPQM7m85n5PbzkBENfrObB2nAG2hH682nmdcESnJ+UbybeNGRgz8ZRLj
         Wpeg==
X-Forwarded-Encrypted: i=1; AJvYcCXC/mCKPViSkeygfPoEQ5ihByhsibaOx7vZr4t49U2XmkR7QruZELw0csnfRIgZL0ttTM4DYHFadso=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw/SH9oVVtu5k8maAFuV1DVGWl1LgNDz1TN4lJkJACm93FLEtcM
	mkmh06g9nLKo7/gwYOkuLI8eqFdB5motTpdV2ViPzQf8P9ISeVGOY6mFo28gei+bjDU=
X-Gm-Gg: ASbGncshEiQHtBv0a16/BxuIfndn90HDl4EyrZEv2o5rfJzoOPL6vjTp19MmBqHhi3R
	AALpFFfvccWHi75Pzrs9JfSlBFquv29+KQdu37OcuwLo2FxWduwriJ5lOf/9Vv5QPp9P+7wu+Xb
	B5dfpREY8zqQAdWIF0miVtbKlPYmF+cVFN4UFjGtkJLjol12QM4s9tmGN9M45ioMdfCE44Dbs2S
	UpD+sIJxUG4g6mgadbbAtMDidfqfdExhMfIiExlpQ0CuFTnqHrn9G+iCBz0zwEYtupV2wTbyEmQ
	2908RDd59fJn1aIlryrGncSqXhwK1YmBjSY+UIj21sHRUwGuabKvff2ZL6i3Uewl51OZ7pyh4DD
	C0GGncTZQ6olF+3Tu4Ihk8Ld62BPNxA4dXpUgCRpH6TNKsFVcY6Dl4FmLGTNnSJJZPuTNVa8rNy
	rRGP6mLHcHhl86Nn5QvhVhAwwblPnFlYRhVu7S37fLMW9ywwjFQzMTedemlt9XlY3IGw9PgOAN3
	E7tFTsZeAP+Vh8ojtHKwA7h1Zqosf2kebePs+U=
X-Google-Smtp-Source: AGHT+IEgOrElu8cNu1oteObH+4oOJSq/cvme0pH6zzvqQcuhAbIB7vNObwPK2wGqQ4HV25rKk7afDg==
X-Received: by 2002:a17:907:6e9e:b0:b73:6d56:7459 with SMTP id a640c23a62f3a-b7671705640mr1650006066b.38.1764055271546;
        Mon, 24 Nov 2025 23:21:11 -0800 (PST)
Message-ID: <b84ac7d4-e03f-4f91-921d-1ee36ed925e1@suse.com>
Date: Tue, 25 Nov 2025 08:21:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 1/2] xenstored: Default priv_domid to store_domid
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
References: <20251124223533.31613-1-jason.andryuk@amd.com>
 <20251124223533.31613-2-jason.andryuk@amd.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20251124223533.31613-2-jason.andryuk@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------vYtdXjLFBXJdxq4tbvB7JKhD"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------vYtdXjLFBXJdxq4tbvB7JKhD
Content-Type: multipart/mixed; boundary="------------USAeVClfDN8aUNZaKaaCFykV";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
Message-ID: <b84ac7d4-e03f-4f91-921d-1ee36ed925e1@suse.com>
Subject: Re: [XEN][PATCH 1/2] xenstored: Default priv_domid to store_domid
References: <20251124223533.31613-1-jason.andryuk@amd.com>
 <20251124223533.31613-2-jason.andryuk@amd.com>
In-Reply-To: <20251124223533.31613-2-jason.andryuk@amd.com>

--------------USAeVClfDN8aUNZaKaaCFykV
Content-Type: multipart/mixed; boundary="------------08fVWKo2RE2EBLdqYUZAdnQe"

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

T24gMjQuMTEuMjUgMjM6MzUsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IE9uIGEgc3lzdGVt
IHdpdGhvdXQgYSBjb250cm9sIGRvbWFpbiwgYSBoYXJkd2FyZXx4ZW5zdG9yZSBkb21haW4N
Cj4gc3RhcnRpbmcgeGVuc3RvcmVkIHNob3dzOg0KPiBjb21tb24vZ3JhbnRfdGFibGUuYzox
MDQxOmQydjAgQ291bGQgbm90IGZpbmQgZG9tYWluIDMyNzU2DQo+IGdudHRhYjogZXJyb3I6
IG1tYXAgZmFpbGVkOiBJbnZhbGlkIGFyZ3VtZW50DQo+IENvdWxkIG5vdCBpbml0aWFsaXpl
IGRvbTMyNzU2DQo+IA0KPiBzZXR1cF9zdHJ1Y3R1cmUoKSBkb2VzIG5vdCBnZXQgY2FsbGVk
IHdpdGhvdXQgcHJpdl9kb21pZC4gIFN1YnNlcXVlbnQNCj4gaW50cm9kdWNlX2RvbWFpbigp
IGNhbGxzIHdpbGwgZmF1bHQgd2hlbiBjYWxsaW5nIGZpcmVfc3BlY2lhbF93YXRjaGVzKCku
DQo+IA0KPiBEZWZhdWx0IHByaXZfZG9taWQgdG8gc3RvcmVfZG9taWQgd2hlbiB0aGVyZSBp
cyBubyBjb250cm9sIGRvbWFpbi4NCj4gDQo+IEZpeGVzOiBlNWIwYTk0MDU1NzEgKCJ0b29s
cy94ZW5zdG9yZWQ6IEF1dG8taW50cm9kdWNlIGRvbWFpbnMiKQ0KPiBTaWduZWQtb2ZmLWJ5
OiBKYXNvbiBBbmRyeXVrIDxqYXNvbi5hbmRyeXVrQGFtZC5jb20+DQoNClJldmlld2VkLWJ5
OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQoNCj4gLS0tDQo+IEkgZGlkbid0
IHZlcmlmeSB0aGUgc2VnZmF1bHQgaW4gZmlyZV93YXRjaGVzKCkgaW4gdGhpcyBzaXR1YXRp
b24sIGJ1dCBJDQo+IHNhdyB0aGF0IHByZXZpb3VzbHkgd2hlbiB3b3JraW5nIG9uIHRoaXMu
ICBSZWdhcmRsZXNzIG9mIHRoZSBzcGVjaWZpYw0KPiBlcnJvciwgeGVuc3RvcmVkIHdhcyBu
b3Qgd29ya2luZyBwcm9wZXJseSB3aXRob3V0IHRoaXMgY2hhbmdlLg0KDQpUaGUgc2VnZmF1
bHQgd2FzIHByb2JhYmx5IHJlYWxseSByZWxhdGVkIHRvIHRoZSBtaXNzaW5nIGNhbGwgb2YN
CnNldHVwX3N0cnVjdHVyZSgpIGluIHRoaXMgY2FzZSwgYXMgdGhlIG5vZGVzIGhhc2h0YWJs
ZSB3b3VsZG4ndCBiZQ0KaW5pdGlhbGl6ZWQuIFRoaXMgd2lsbCByZXN1bHQgaW4gYSBOVUxM
IGRlcmVmZXJlbmNlIGFzIHNvb24gYXMgYW55DQp3YXRjaCBpcyB0cmllZCB0byBiZSBmaXJl
ZCB3aGVuIHRoZSBleGlzdGVuY2Ugb2YgdGhlIHJlbGF0ZWQgbm9kZQ0KKEBpbnRyb2R1Y2VE
b21haW4gaW4gdGhpcyBjYXNlKSBpcyBjaGVja2VkLg0KDQoNCkp1ZXJnZW4NCg==
--------------08fVWKo2RE2EBLdqYUZAdnQe
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-----

--------------08fVWKo2RE2EBLdqYUZAdnQe--

--------------USAeVClfDN8aUNZaKaaCFykV--

--------------vYtdXjLFBXJdxq4tbvB7JKhD
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/Ey8FAmklWOYFAwAAAAAACgkQsN6d1ii/Ey9k
hAf/SFRpf3tU4JNa+kGnVxhiL67xyJW53rv3OUCz1eX6zZm2YZWu9iuyHPrjmb3GvdKt9DpkJ3cT
dElB5WhmVcBHqRoyGdPnOddByBZE1eAuvbwIf+wRoTOXlw/pePvkiuZ5mWJRlpCpQmOgGNI9FE94
LU9pzGCt6ihrd8bU64cgO3bh1GQ63T7VwuGb+3jW10CjeZLe+lawngqRoFSu4dFYeZ8h8QTh5CFp
nEi/TKmywlDR/fEeel5cdr2g44p1QLOKSZSCZu061u45pchmmd9Zbg+ybHvXwdb6BttVEsWwdDTv
j/GJkn6AsncI84DKhxaE9MTUQaSidXpUVIYlD9Kf+A==
=1+JE
-----END PGP SIGNATURE-----

--------------vYtdXjLFBXJdxq4tbvB7JKhD--


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 07:21:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 07:21:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171712.1496719 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNnMw-0003B4-CL; Tue, 25 Nov 2025 07:21:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171712.1496719; Tue, 25 Nov 2025 07:21: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 1vNnMw-00039y-8s; Tue, 25 Nov 2025 07:21:46 +0000
Received: by outflank-mailman (input) for mailman id 1171712;
 Tue, 25 Nov 2025 07:21: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=Ygd1=6B=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vNnMu-0002hW-OU
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 07:21:44 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 64646632-c9cf-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 08:21:42 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-644fcafdce9so7954335a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 24 Nov 2025 23:21:42 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-645363ac97esm14657410a12.1.2025.11.24.23.21.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 24 Nov 2025 23:21: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: 64646632-c9cf-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764055302; x=1764660102; 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=tKwQtvo2kA6pbhi0moD2oEZCzg5OE0GMyGB3VW/p8HI=;
        b=ajdti5SOCona12kvfyAcNA9L4BJzQFy4itvzjncmyaiBLGlCRXrv4nt6OT1fbs/bA3
         1cSSmi+Z8AUoLAfi4BxjprT/nGhBX3CfSCLtYVCK80U49ezYrMbN0aLQUmDPXk6zBwxv
         urE3h+9rhWSxPL054Gy+EvkjHV+NU+NfSBaHYrUvijX/RpETmJKKauCzkESoP0CuBQhe
         daY26S2diS+xaZSvsvxfT0uTrBB7Zk9x3A3EoXhZvd5GUBh702QGiJ0OZ0KgGuo5nUaV
         zX31fQw8/X618kA3Eawf6Uh9VYkDM9gvI2R1LBhGMUW0PmOW1GnUChbXwUhEVNytXeg2
         fOQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764055302; x=1764660102;
        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=tKwQtvo2kA6pbhi0moD2oEZCzg5OE0GMyGB3VW/p8HI=;
        b=c7T6p7qehSDqI8mA0HbmLfmRrrTttYc2wgrGRgaYqssOswUqAHoVISZ8EsiQf4TkaV
         f2IzmUtC8XyCjm2+pYoaQpsnJt9rm8be3cWEf+Hu+T6QNvfJYAmCFzAMuvXXZR+6cW9E
         edIefO/dkD1z204qg9afnfsrFGqle0xSuUFS30V0Lfq6Sayj97YD3bsw+pAjNxhYLOda
         D++9n5c0qA37jtKXyofT2ba8wvlo3SaraWCvOetewZmKN8p8mkd4MYyU/t2jJ/8BG3Op
         7YG82g1ZgvlBtEonnsiQqq7KcQiXqTm42yKb01tyRIAugttxSfK6Y8huOTvfgOFj6Xni
         oa0A==
X-Forwarded-Encrypted: i=1; AJvYcCUe2leSbRxMsRLZC+W+HJMGpuPsqZ9lRBJPDpGL1cHXf/qTmgaJ/mBqXeFPhuRkj/qwIcqtTDFEEJ0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy7JzP+VZvpky15WBVR87XjDVwC+aVyDFmUAgqG8pRJyPDw03if
	4YcjdmGo1HFtznl0Ifwx7YQPKnyGdG10vCFSmm+7WXymuIWA4JSM9R88HzZBjqaoWac=
X-Gm-Gg: ASbGncuSzzFXvuVTfjiP4le3NCjnUndq9cPPiAZdUYMxR+1Iw9qqLEzHJ6pw5iI51Bs
	+P47uXeN8VoKlX/NDXxxDTsHrxS2dnf7sKAyKb9gzMTcDqI4yUQEW0LQjfEV+uuJ0GPI1Q1FBoj
	AF5j5MyB0fnH4YH/yP4vXphKa9ju4hIXX5WFIwPi/fLGyjgz7+1atk8Z9nbkvNRS4X9BZjIL+tH
	l7wPiDlkgofis2rEKeIqKUemFIfJlbYjc23FlAQU+FjI1aeINGdmTnG4VgjVRpwnssg0BaLSmjC
	5apqWlAwClw6SBxK8hgZQQJ5WQQ5fmgUS2ujSRPYSVt7LrgNAXVevFxYp+45+KfSmSMyjBamlzY
	V8oSxd54yBrcKaF+whrtDB9Oh0vFkBshTvvf7yEnfR+v4tHcp/gzY2jMtjF1Sdn6rJBVRi/p1ZA
	rfXai6oxwD7XrLB3Ux7s/aTtxWoZWDbCybFB1z5DcRkOn+tlWIAw8mM8JBVDi8fnPuLiCKTIQJ5
	jBUGlCrDTzx6+nLm1bR3Cj4sp/kSOBoTpsxxcw=
X-Google-Smtp-Source: AGHT+IHOcI96gJFABqTRFiEbJaP+UMBk7KLITLOl5+OPFPBDzwY7O2c4CAaVQSRnuBMtqr+NbwpIYQ==
X-Received: by 2002:a05:6402:35c3:b0:643:804a:fb63 with SMTP id 4fb4d7f45d1cf-645eb25737cmr1418104a12.9.1764055302362;
        Mon, 24 Nov 2025 23:21:42 -0800 (PST)
Message-ID: <28827046-6a07-49b4-be4c-a23a71129179@suse.com>
Date: Tue, 25 Nov 2025 08:21:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 2/2] xenstored: Add newline to error message
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
References: <20251124223533.31613-1-jason.andryuk@amd.com>
 <20251124223533.31613-3-jason.andryuk@amd.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20251124223533.31613-3-jason.andryuk@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------gWAcAHNBl1HoaFEkzaa1iZh7"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------gWAcAHNBl1HoaFEkzaa1iZh7
Content-Type: multipart/mixed; boundary="------------SBrAvkBlVK9pGnxnN0Mzoqjw";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
Message-ID: <28827046-6a07-49b4-be4c-a23a71129179@suse.com>
Subject: Re: [XEN][PATCH 2/2] xenstored: Add newline to error message
References: <20251124223533.31613-1-jason.andryuk@amd.com>
 <20251124223533.31613-3-jason.andryuk@amd.com>
In-Reply-To: <20251124223533.31613-3-jason.andryuk@amd.com>

--------------SBrAvkBlVK9pGnxnN0Mzoqjw
Content-Type: multipart/mixed; boundary="------------5J0gBt0fcU2WQtFdgZE62v30"

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

T24gMjQuMTEuMjUgMjM6MzUsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IFVubGlrZSBiYXJm
KCksIHhwcmludGYoKSBkb2VzIG5vdCBhZGQgYSBuZXdsaW5lLiAgQWRkIG9uZS4NCj4gDQo+
IEZpeGVzOiBlNWIwYTk0MDU1NzEgKCJ0b29scy94ZW5zdG9yZWQ6IEF1dG8taW50cm9kdWNl
IGRvbWFpbnMiKQ0KPiBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBBbmRyeXVrIDxqYXNvbi5hbmRy
eXVrQGFtZC5jb20+DQoNClJldmlld2VkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3Vz
ZS5jb20+DQoNCg0KSnVlcmdlbg0K
--------------5J0gBt0fcU2WQtFdgZE62v30
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-----

--------------5J0gBt0fcU2WQtFdgZE62v30--

--------------SBrAvkBlVK9pGnxnN0Mzoqjw--

--------------gWAcAHNBl1HoaFEkzaa1iZh7
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/Ey8FAmklWQUFAwAAAAAACgkQsN6d1ii/Ey8h
lgf8Coq6LUJYk9G3M0KzhvIsxEFhQ9qknLxdnj+2gfU2DJwYmNDfRu0Qh5y1jnizmFI1JIv9TE4m
C/hJAzdGGV0KQTRhOOyfPF6GvOfkXPFCJgCTdt0U2D7SlHRp0HA49FnFt6B0IhsKhX12d1U31QMB
9C1v5Ia3BmU5FsW5oKNjg2xyvObWFCJLPq86GE7e0ymK/7tkzNlik1kCIPyWbHnwrpRV5wxkkFbn
/5p/bJT0y9TyAAvAH/+wslqKYjW9FlzFtB/0aothmzs1X/6cnuVGPKmGXdmuWkOPb71cEMBkI0c9
i1ObKh6OaG7BfXLaiwd1dqqLkjRgOhuBvajV3MbrDw==
=6Rk1
-----END PGP SIGNATURE-----

--------------gWAcAHNBl1HoaFEkzaa1iZh7--


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 08:21:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 08:21:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171736.1496730 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNoIG-0006GC-Th; Tue, 25 Nov 2025 08:21:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171736.1496730; Tue, 25 Nov 2025 08:21:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNoIG-0006G5-Oy; Tue, 25 Nov 2025 08:21:00 +0000
Received: by outflank-mailman (input) for mailman id 1171736;
 Tue, 25 Nov 2025 08:21:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ygd1=6B=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vNoIG-0006Fz-1v
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 08:21:00 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aad267c9-c9d7-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 09:20:57 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-b75c7cb722aso762570766b.1
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 00:20:57 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b76550191c8sm1471719166b.54.2025.11.25.00.20.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 00:20: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: aad267c9-c9d7-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764058856; x=1764663656; 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=ojbrSr/MBp+mgHmKSGaLFmD5zhy5z3RH8FCkUxONmsA=;
        b=LVO5JaCr+0NgqAgbq0cYlT2epVQntHi7Dv6ZJgXOokFjf2TsjI8PGpGpNYJTYvzFNc
         Er58XMSAd+XeX81Epqz7fhDDyPgV7QJsyiDcrQxw7BlCEmUjjuWBhAwbgkCoHET7mwd9
         NFPJy+v12Riw0mNfDKXu3oIks2H+WlJsWkRpV9nZs+3/dJBUYiXW+i8vYp0fHEFrKVEm
         hmvBvK85AYAaVoB99/jsEIRSllIGa2mdjtKjbTd0lAZtXWej2iwOdJUrk/td7cBECAm6
         ps1Ervlloq1p6xs0N8U6unYq8s6qmlyV9dyG3NiCHKOLpNwdsxv6D+GY0ixIry2tJVYN
         4j7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764058856; x=1764663656;
        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=ojbrSr/MBp+mgHmKSGaLFmD5zhy5z3RH8FCkUxONmsA=;
        b=pj/Jb2zSmmBZnmrgd2xi5kK6Sg2/fHcX8mp6So0SHgpEQLy6AyU5cJa/vlrrSHXfGI
         ZxKPQ5CtNjeKImF1kjKVA9yhW7EwlmFK1IJVp5/yOmm7bjN9Lzsx9EZxhmT88zYzGwmL
         AmQyXMBU1PzqAW/RSQeKhRXfQaz1rF5M6nmxo5njSPLJriLazuqcKjbFQViaGJwhInLC
         PS/XEe/fBVF8yfLWHnPtkRa/Q+7tFZgWm2o+duKp/SwBFqeMUoq+mflFjunw51TLgoRG
         XB+aN2BOhbQ13md5ABVXfsgGainxm+bAdDPcNtiWIGbg9TyzPc3+VNDp56Xzd0Kq0JZX
         q5GQ==
X-Forwarded-Encrypted: i=1; AJvYcCVaXnkgU9FpuNu7jtUFxy4cM8sQvut/koKiTW6ntRqkdrx49wKwZ75A0YhW0rH9LXIBm1qsI0Ft2Ww=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzlOtKTuJ1ruygyqrWLzu1r03w29id2gicdgafnFEZiKJFQKiYK
	CxREAomj3XpBouZgHtyRGAjzfYAcyaY2nq9Axw4fQxmss0+c08OG/PefSe+f/m8zlzI=
X-Gm-Gg: ASbGncsBAnd1slJggZVLeFwR4GxtoHcTzsee66q3JQETi2s9bEHi4VRb5f6OMbXnvgW
	yVKcZcAjqEj2VdKEZS94SsCNW1YzJDo1bCV6vOvssDT5bL3ZMmD30S764pkjgREngzKJqRiFidy
	5L7RqXSHylHnSJmQXY+hPjwUWLTXtQIKiPoK/FfsY46lillzAcJp8UJz2BGZm1+juBM///JI6K9
	l5aDFvjnJQ2/Yqc53oYDzGLdQeIlIoFo7tBi0k1X9Y/Xb6tDHFNRrhtQHCjI9qY2LDL6L042hKz
	5E/835LgQ6b5YP/yXsyEGlF9cuGracrvzM3evSxxjYDCZ9h/O2oFyl+hML4tdLKMJQ9evHtDEfX
	iuQLnmKqRw2HaTHxUnpvvcxwjGTtK5e2eu+KoEWrflU3agOeOtJwF76vOhFvajnQZDp9g1Miwc2
	sWEIg/biWmY4CHINX2T5O7lIoQBJSM1P218fzZRApyjxHI4muB8JCyGi8eWMRNArFOJJLObbPOK
	rycTOvme4pFcUWYPNKnBxD0GzgfdJ/AonatSi0=
X-Google-Smtp-Source: AGHT+IHGiyGBL9Qy1PfJCANIOsmf32/b+UknosAlhec5sEiSFw0tir7XXuWQfzvdEwkOTL/3T9l27g==
X-Received: by 2002:a17:907:26c2:b0:b73:8639:cd88 with SMTP id a640c23a62f3a-b76715ab98amr1515197466b.22.1764058856464;
        Tue, 25 Nov 2025 00:20:56 -0800 (PST)
Message-ID: <1c991699-51b7-4284-8179-6bc78f8f4eac@suse.com>
Date: Tue, 25 Nov 2025 09:20:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xenbus: Use .freeze/.thaw to handle xenbus devices
To: Jason Andryuk <jason.andryuk@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: Yann Sionneau <yann.sionneau@vates.tech>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
References: <20251119224731.61497-1-jason.andryuk@amd.com>
 <20251119224731.61497-2-jason.andryuk@amd.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20251119224731.61497-2-jason.andryuk@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------CfWRt20Yq90ES5stFlBXz1cl"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------CfWRt20Yq90ES5stFlBXz1cl
Content-Type: multipart/mixed; boundary="------------ZOIId50E5xvM95JLGMG0BSrb";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jason Andryuk <jason.andryuk@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: Yann Sionneau <yann.sionneau@vates.tech>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
Message-ID: <1c991699-51b7-4284-8179-6bc78f8f4eac@suse.com>
Subject: Re: [PATCH 1/2] xenbus: Use .freeze/.thaw to handle xenbus devices
References: <20251119224731.61497-1-jason.andryuk@amd.com>
 <20251119224731.61497-2-jason.andryuk@amd.com>
In-Reply-To: <20251119224731.61497-2-jason.andryuk@amd.com>

--------------ZOIId50E5xvM95JLGMG0BSrb
Content-Type: multipart/mixed; boundary="------------z2uAYKCPeTIIK9LR7PVvjfCP"

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

T24gMTkuMTEuMjUgMjM6NDcsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IFRoZSBnb2FsIGlz
IHRvIGZpeCBzMmlkbGUgYW5kIFMzIGZvciBYZW4gUFYgZGV2aWNlcy4gIEEgZG9tYWluIHJl
c3VtaW5nDQo+IGZyb20gczMgb3IgczJpZGxlIGRpc2Nvbm5lY3RzIGl0cyBQViBkZXZpY2Vz
IGR1cmluZyByZXN1bWUuICBUaGUNCj4gYmFja2VuZHMgYXJlIG5vdCBleHBlY3RpbmcgdGhp
cyBhbmQgZG8gbm90IHJlY29ubmVjdC4NCj4gDQo+IGIzZTk2YzBjNzU2MiAoInhlbjogdXNl
IGZyZWV6ZS9yZXN0b3JlL3RoYXcgUE0gZXZlbnRzIGZvciBzdXNwZW5kLw0KPiByZXN1bWUv
Y2hrcHQiKSBjaGFuZ2VkIHhlbl9zdXNwZW5kKCkvZG9fc3VzcGVuZCgpIGZyb20NCj4gUE1T
R19TVVNQRU5EL1BNU0dfUkVTVU1FIHRvIFBNU0dfRlJFRVpFL1BNU0dfVEhBVy9QTVNHX1JF
U1RPUkUsIGJ1dCB0aGUNCj4gc3VzcGVuZC9yZXN1bWUgY2FsbGJhY2tzIHJlbWFpbmVkLg0K
PiANCj4gLmZyZWV6ZS9yZXN0b3JlIGFyZSB1c2VkIHdpdGggaGliZXJhdGlvbiB3aGVyZSBM
aW51eCByZXN0YXJ0cyBpbiBhIG5ldw0KPiBwbGFjZSBpbiB0aGUgZnV0dXJlLiAgLnN1c3Bl
bmQvcmVzdW1lIGFyZSB1c2VmdWwgZm9yIHJ1bnRpbWUgcG93ZXINCj4gbWFuYWdlbWVudCBm
b3IgdGhlIGR1cmF0aW9uIG9mIGEgYm9vdC4NCj4gDQo+IFRoZSBjdXJyZW50IGJlaGF2aW9y
IG9mIHRoZSBjYWxsYmFja3Mgd29ya3MgZm9yIGFuIHhsIHNhdmUvcmVzdG9yZSBvcg0KPiBs
aXZlIG1pZ3JhdGlvbiB3aGVyZSB0aGUgZG9tYWluIGlzIHJlc3RvcmVkL21pZ3JhdGVkIHRv
IGEgbmV3IGxvY2F0aW9uDQo+IGFuZCBjb25uZWN0aW5nIHRvIGEgbm90LWFscmVhZHktY29u
bmVjdGVkIGJhY2tlbmQuDQo+IA0KPiBDaGFuZ2UgeGVuYnVzX3BtX29wcyB0byB1c2UgLmZy
ZWV6ZS90aGF3L3Jlc3RvcmUgYW5kIGRyb3AgdGhlDQo+IC5zdXNwZW5kL3Jlc3VtZSBob29r
LiAgVGhpcyBtYXRjaGVzIHRoZSB1c2UgaW4gZHJpdmVycy94ZW4vbWFuYWdlLmMgZm9yDQo+
IHNhdmUvcmVzdG9yZSBhbmQgbGl2ZSBtaWdyYXRpb24uICBXaXRoIC5zdXNwZW5kL3Jlc3Vt
ZSBlbXB0eSwgUFYgZGV2aWNlcw0KPiBhcmUgbGVmdCBjb25uZWN0ZWQgZHVyaW5nIHMyaWRs
ZSBhbmQgczMsIHNvIFBWIGRldmljZXMgYXJlIG5vdCBjaGFuZ2VkDQo+IGFuZCB3b3JrIGFm
dGVyIHJlc3VtZS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEphc29uIEFuZHJ5dWsgPGphc29u
LmFuZHJ5dWtAYW1kLmNvbT4NCg0KQWNrZWQtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0Bz
dXNlLmNvbT4NCg0KTWFyZWssIGNvdWxkIHlvdSBwbGVhc2UgZ2l2ZSB0aGlzIHBhdGNoIGEg
dHJ5IHdpdGggUXViZXNPUz8gSSB0aGluayB0aGlzDQpwYXRjaCBzaG91bGQgYmUgdmVyaWZp
ZWQgbm90IHRvIGJyZWFrIHlvdXIgdXNlIGNhc2VzIHJlZ2FyZGluZyBzdXNwZW5kIC8NCnJl
c3VtZS4NCg0KDQpKdWVyZ2VuDQoNCj4gLS0tDQo+ICAgZHJpdmVycy94ZW4veGVuYnVzL3hl
bmJ1c19wcm9iZV9mcm9udGVuZC5jIHwgNCArLS0tDQo+ICAgMSBmaWxlIGNoYW5nZWQsIDEg
aW5zZXJ0aW9uKCspLCAzIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZl
cnMveGVuL3hlbmJ1cy94ZW5idXNfcHJvYmVfZnJvbnRlbmQuYyBiL2RyaXZlcnMveGVuL3hl
bmJ1cy94ZW5idXNfcHJvYmVfZnJvbnRlbmQuYw0KPiBpbmRleCA2ZDE4MTkyNjljYmUuLjE5
OTkxN2I2Zjc3YyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19w
cm9iZV9mcm9udGVuZC5jDQo+ICsrKyBiL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfcHJv
YmVfZnJvbnRlbmQuYw0KPiBAQCAtMTQ4LDExICsxNDgsOSBAQCBzdGF0aWMgdm9pZCB4ZW5i
dXNfZnJvbnRlbmRfZGV2X3NodXRkb3duKHN0cnVjdCBkZXZpY2UgKl9kZXYpDQo+ICAgfQ0K
PiAgIA0KPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyB4ZW5idXNfcG1fb3Bz
ID0gew0KPiAtCS5zdXNwZW5kCT0geGVuYnVzX2Rldl9zdXNwZW5kLA0KPiAtCS5yZXN1bWUJ
CT0geGVuYnVzX2Zyb250ZW5kX2Rldl9yZXN1bWUsDQo+ICAgCS5mcmVlemUJCT0geGVuYnVz
X2Rldl9zdXNwZW5kLA0KPiAgIAkudGhhdwkJPSB4ZW5idXNfZGV2X2NhbmNlbCwNCj4gLQku
cmVzdG9yZQk9IHhlbmJ1c19kZXZfcmVzdW1lLA0KPiArCS5yZXN0b3JlCT0geGVuYnVzX2Zy
b250ZW5kX2Rldl9yZXN1bWUsDQo+ICAgfTsNCj4gICANCj4gICBzdGF0aWMgc3RydWN0IHhl
bl9idXNfdHlwZSB4ZW5idXNfZnJvbnRlbmQgPSB7DQoNCg==
--------------z2uAYKCPeTIIK9LR7PVvjfCP
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-----

--------------z2uAYKCPeTIIK9LR7PVvjfCP--

--------------ZOIId50E5xvM95JLGMG0BSrb--

--------------CfWRt20Yq90ES5stFlBXz1cl
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/Ey8FAmklZucFAwAAAAAACgkQsN6d1ii/Ey8J
uAf/RmpVRT507G9fKg8VoPfbcLLNBycvPXGuTmhfUJb/kr7g7ElzToBTTsGsALMiFs6194+Mi7jf
KZz3kn9I1vYbkM7xjDhnsPjynZCxBX4W4VC6BfKh75gO473/FL67nQsLPaQcPAVGee7eHnI/gc1M
uVCx/T+060Vlcu1Xk2nzFHnxOrSK34ZkrvL1+A68VK050ZL6NBusxNrpXUAdLykxZ84qwWqOH/xw
cj2pavdw6DPUr5wkfINY+iwkUYA8oI7qX2zsRXBIHA2JEMp1Bk5uZQWhN8pNTHIupaB5RhL6TuL/
GeCKISNH5yzJ47OvGP4heXeO7H2Tj1n3s5e0zeDLpQ==
=nBm5
-----END PGP SIGNATURE-----

--------------CfWRt20Yq90ES5stFlBXz1cl--


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 08:46:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 08:46:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171758.1496784 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNogT-00021A-7J; Tue, 25 Nov 2025 08:46:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171758.1496784; Tue, 25 Nov 2025 08: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 1vNogT-000213-2U; Tue, 25 Nov 2025 08:46:01 +0000
Received: by outflank-mailman (input) for mailman id 1171758;
 Tue, 25 Nov 2025 08: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=x8HM=6B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNogR-00020v-TB
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 08:45:59 +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 29058627-c9db-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 09:45:57 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4779a4fc95aso39307545e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 00: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
 5b1f17b1804b1-479052c9621sm10814895e9.5.2025.11.25.00.45.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 00: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: 29058627-c9db-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764060357; x=1764665157; 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=7Kvaw0Dt53j32KMU/0Jg0rzqtggM78NH9Bnke/iPFCA=;
        b=grNsHonag+Jfqnu8HwUWvdRg0yxf281YBJIaOeuvMgxq/t8MzhM36JEYj8Kn/leuC7
         IIHCcmh6ZcybkFF5FBlUVtW87WVLw9kg9mWm3iA1J51KRArnwaRPzVQ/m6Z0ApYx9Ski
         X5/lC6A4e4dfW7/4FD8f0NPt+4tXR+1YG0MV4m05hWenRzpwzln6CFOV6x0itYtnYPEB
         j3cW5J7uGq3lPcHXRxAdmwRknai6Pf/ShAtDwb4fzSpFS5DcAzszpehHBIWVtmSr90jJ
         HFwGPPrpvHp5uWIO0CTBXDnsyQJiwRimIi6MAE/gmMSsJcdu2+byITjjKiMKsEXfptU4
         dqzg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764060357; x=1764665157;
        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=7Kvaw0Dt53j32KMU/0Jg0rzqtggM78NH9Bnke/iPFCA=;
        b=RRIwfEtKIwyZCIKqKxiI8mryO0SLAsvP9y085iJejHmX1h65k7dedxq6X1+Y//DDdU
         FWotQDYJcoNf8+52ZWDmTKEcgON2Hs/B8dXSKG3gPQDqgiYtt0ZfXyNHjzEDCI0C1ucI
         /Z3FJZiqj9fVwq8wjrZKeVUKxpffYFqSBC7Pba4oQnG8m8BzSkpdqSL+smTuX+8hWVn6
         /p0qRbeRr5UgpeRXd1BAt/HxYHcI1kel9N/GzjBkKpAq2c+F8wNUQM/SDvXHnxdy2Qhy
         EaMKuhRaG1csGSWCY0/X1rwrA1eevIe6u2VfWmmO6UC5xeoxvWUSyg7Q2TcNx+wk/eyk
         rFOQ==
X-Gm-Message-State: AOJu0YxoklHOmSB1EXnrMNvrOvw195q8s4RgqxL3Zuv9NvvL0XYRWMoc
	lhc5J804pM36hgzo8+P7fjLHAwvrntSMQQXUqXQL1pY60uA3RteRqxm7LIMw/Drwio5Udj8kCke
	ZC6c=
X-Gm-Gg: ASbGncuOH0duXWhsC0U58IO2D964wa1+gxHB7rPp/pdgntUseEzLEnqFw14Au01TEwD
	jMnRHGKp4QtkBdSr8OqV0ly+XVEYMVELyutYURv9m/c8Pj/3hllpYjnoeXc0dBqH2BZak/SNnzE
	aW6n+eDSCvPS38iy/a4NT7RS1saL7x6Jc4473xF+p5ds8JichxxQEtno87ZXy0FvCHADRf2c7S3
	3PcQsDjWwZ6zcaU0OuDCS2i95qKgGApxT1NJ5TZzVTl1xiUcB7U2D5TOY/DOJ54qz6J1JI5L4sR
	8OaExEoy/iEhG5lcNc/tu7HRFj3jo9DrLlbxZ4LggTlmytA37WHe/9Zs0bMYvQ0IA9Nqhyb+mv5
	vR3XHiUyibR/OQf8JyApKUdMyUBSjXmLTAXCq4xrKWB4ym5w7MJraDD78dXEWqB8zWcg4h904c0
	g2kTD8ANxTJucoS8rldk6733Rc80wmK93Hcf4tM8HKMwdwpHvf+Xc49BALFdXes9y5ePg5WB9Fn
	SrDar+VvegdMg==
X-Google-Smtp-Source: AGHT+IHXDXp8/UCZ4/eekVwoad1aNbM8F5iZ3LdKYm5f/hE+plC61R0T4MxDVBixLwFHh/pep8kMPA==
X-Received: by 2002:a05:600c:45ce:b0:46e:3b58:1b40 with SMTP id 5b1f17b1804b1-477c04c36a7mr143932355e9.4.1764060356682;
        Tue, 25 Nov 2025 00:45:56 -0800 (PST)
Message-ID: <37edf1f1-19a7-49df-8479-b01f29d4b46c@suse.com>
Date: Tue, 25 Nov 2025 09:45:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: preparations for 4.19.4
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>,
 "community.manager@xenproject.org" <community.manager@xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

All,

the release is due in a little over a week. Please point out backports you find
missing from the respective staging branch, but which you consider relevant.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 09:11:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 09:11:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171771.1496794 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNp55-0006IP-4c; Tue, 25 Nov 2025 09:11:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171771.1496794; Tue, 25 Nov 2025 09:11:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNp55-0006II-0J; Tue, 25 Nov 2025 09:11:27 +0000
Received: by outflank-mailman (input) for mailman id 1171771;
 Tue, 25 Nov 2025 09:11:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=x8HM=6B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNp53-0006IC-6J
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 09:11:25 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b6afa873-c9de-11f0-9d18-b5c5bf9af7f9;
 Tue, 25 Nov 2025 10:11:23 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4775ae77516so50545965e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 01:11: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-477bf216ddasm235949485e9.0.2025.11.25.01.11.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 01:11: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: b6afa873-c9de-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764061883; x=1764666683; 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=AT8fC7Cn+UJ2y035oZe6hoj5SA55pGQU8kV45OHDjnk=;
        b=Ln4jKowzmKjs8Eu6tSAdKFWVd6MvQZY4a3+6q5xPL0/EijLAzKmk8+6nPvDDnFaVWV
         5re+z+CexY5haApKYrWmCVQLJ87eGz5z+jjFZqIVDIjFcDjHDaBb6C2+wQjct3ZHhY38
         +CDsRyoYxXHVvd8aWD4huqUf+IJseZ/QcluhSV2xWwDB7iZe+MlMvXZyxz5aRSjlLP8C
         ZbqhImXnwDXXsa7Sb30fnu0/9kz4SBCMwJOF4Z9iiyfAAOPN+dRn08VEc3nnZSRgz9f4
         b1K09JqsenNas3RclXBrTVoHAucxpjklK5h6o7JxXIgd47nWls3XYDLBj94DvyBXs/Aw
         HqSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764061883; x=1764666683;
        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=AT8fC7Cn+UJ2y035oZe6hoj5SA55pGQU8kV45OHDjnk=;
        b=vK85IBSzbeAkrM3qtzM/ijEd97ti8pNwYhIqvg3b96pbyHKjOBsvQB+WqOfUoZfWjN
         ERwyJ+5EN/IsUW3Rnd9Tq2F66dyF3rOo36nf52t91hpWyXn1iBZKNXMf4ZKtiyFj+BtO
         9uveiPVgWNrUY/0MyJmGrX4BVqIvMj2qXc8szy4Ml2V7WqS1owX8m35Fae/ePHTcxXh5
         FZbtZT4yss73F4rs1KMbuUKQPq4aIi/MBVYrFRAXgkXSrxGoA3UhUkNf2Syce5ayOMjs
         dp4jGyZpUGN06ES/rmIlwvW2DYMcNRkJsnweoFE0uPcN0Zqtu1OStvhljBVDDsEb/bDY
         1kgQ==
X-Gm-Message-State: AOJu0YywvATqUQrY2Jw+K6fmylsbAnp+3uHjzy4hRWt72xndswgrg+i6
	BMLSV0a1W5AtZ5Hpd1sOvLXu8HvX4AwfO5ddaVkQVm140WVuIrDB60TwX/ZFH9x1cNw0S5pHBtL
	+RlU=
X-Gm-Gg: ASbGncuYtZ9SCPj92HbDFeq/zs/jfaVwSEiNq8Ext1ckY99X9wrdpTJo6DW/tF/LSmf
	7K65f4g/a7C3zhcpDEflKv9329oi/cS5PpQnfQWteZKalxgQNKjOhaBQ2dVH/MNiAOCHFMGbhTt
	oIuYwgowfFq8SZ80o48vbbFc03HENHJ57sv2Jn2aSvM4OOB+vflX+MWDU/JUnf89eRLVCxYzoIL
	VCBf3PAOhGHCQGjINNEFRT+yH0ZsdN+cYmi3rvgNSRvF/bxjQiE38+Jw6kD9weGDAbykwHb2aHl
	jx82fscbAciuu4qWF1PCm6vrdvD6OYzPoJmHAu4sKwIDJXFc5sjFnMhGRVhYbj7wb1MssFudIzT
	Zp2YWIW9rXRdg34vWwN2mFoEBbd/XESm+Y9TIOcpYy4GHFbDxzs4mWuJaTBJq+smT52owJ6OaDU
	cG+y3sWRuoZ2AioQP/3KFZI5/FXJhg2DYQ8Y51kcbOhedtApgEuhjRHXBinC3GHpglSoQBlEFzO
	R4=
X-Google-Smtp-Source: AGHT+IG7UoxmO7bjt3s2tVmNWeDqtsRhLgGaamb4ezhfUNhs/cGFNAH0xqdKa+k0LhnSx/SfUyOI/Q==
X-Received: by 2002:a05:600c:c490:b0:46e:4b79:551 with SMTP id 5b1f17b1804b1-477c11325c2mr159253185e9.31.1764061882737;
        Tue, 25 Nov 2025 01:11:22 -0800 (PST)
Message-ID: <1533aaa3-5065-4214-a920-191a8b174314@suse.com>
Date: Tue, 25 Nov 2025 10:11:21 +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: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] libxl/json: don't expose internal functions
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Ideally internal function declarations wouldn't live in a non-private
header. If already they need to, they should be hidden as much as
possible. That is (a) their declarations shouldn't be exposed and (b) the
symbols shouldn't appear in the shared library's dynamic symbol table.
Gate the declarations upon _hidden actually being defined (rather than
providing an empty fallback), and apply _hidden also to the libyail
variants.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Some lines end up being too long, but I don't know what libxl's approach
would be to avoid this. Plus the libjson-c counterparts have similar line
length issues.

--- a/tools/include/libxl_json.h
+++ b/tools/include/libxl_json.h
@@ -28,10 +28,9 @@
 #endif
 #endif
 
+#ifdef _hidden /* Don't expose internal function decls. */
+
 #ifdef HAVE_LIBJSONC
-#ifndef _hidden
-#define _hidden
-#endif
 _hidden int libxl__uint64_gen_jso(json_object **jso_r, uint64_t val);
 _hidden int libxl_defbool_gen_jso(json_object **jso_r, libxl_defbool *p);
 _hidden int libxl_uuid_gen_jso(json_object **jso_r, libxl_uuid *p);
@@ -44,20 +43,24 @@ _hidden int libxl_hwcap_gen_jso(json_obj
 _hidden int libxl_ms_vm_genid_gen_jso(json_object **jso_r, libxl_ms_vm_genid *p);
 #endif
 #if defined(HAVE_LIBYAJL)
-yajl_gen_status libxl__uint64_gen_json(yajl_gen hand, uint64_t val);
-yajl_gen_status libxl_defbool_gen_json(yajl_gen hand, libxl_defbool *p);
-yajl_gen_status libxl_uuid_gen_json(yajl_gen hand, libxl_uuid *p);
-yajl_gen_status libxl_mac_gen_json(yajl_gen hand, libxl_mac *p);
-yajl_gen_status libxl_bitmap_gen_json(yajl_gen hand, libxl_bitmap *p);
-yajl_gen_status libxl_cpuid_policy_list_gen_json(yajl_gen hand,
-                                                 libxl_cpuid_policy_list *p);
-yajl_gen_status libxl_string_list_gen_json(yajl_gen hand, libxl_string_list *p);
-yajl_gen_status libxl_key_value_list_gen_json(yajl_gen hand,
-                                              libxl_key_value_list *p);
-yajl_gen_status libxl_hwcap_gen_json(yajl_gen hand, libxl_hwcap *p);
-yajl_gen_status libxl_ms_vm_genid_gen_json(yajl_gen hand, libxl_ms_vm_genid *p);
+_hidden yajl_gen_status libxl__uint64_gen_json(yajl_gen hand, uint64_t val);
+_hidden yajl_gen_status libxl_defbool_gen_json(yajl_gen hand, libxl_defbool *p);
+_hidden yajl_gen_status libxl_uuid_gen_json(yajl_gen hand, libxl_uuid *p);
+_hidden yajl_gen_status libxl_mac_gen_json(yajl_gen hand, libxl_mac *p);
+_hidden yajl_gen_status libxl_bitmap_gen_json(yajl_gen hand, libxl_bitmap *p);
+_hidden yajl_gen_status libxl_cpuid_policy_list_gen_json(yajl_gen hand,
+                                                         libxl_cpuid_policy_list *p);
+_hidden yajl_gen_status libxl_string_list_gen_json(yajl_gen hand,
+                                                   libxl_string_list *p);
+_hidden yajl_gen_status libxl_key_value_list_gen_json(yajl_gen hand,
+                                                      libxl_key_value_list *p);
+_hidden yajl_gen_status libxl_hwcap_gen_json(yajl_gen hand, libxl_hwcap *p);
+_hidden yajl_gen_status libxl_ms_vm_genid_gen_json(yajl_gen hand,
+                                                   libxl_ms_vm_genid *p);
 #endif
 
+#endif /* _hidden */
+
 #include <_libxl_types_json.h>
 
 /* YAJL version check */


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 09:17:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 09:17:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171785.1496802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNpB0-0007AQ-Qs; Tue, 25 Nov 2025 09:17:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171785.1496802; Tue, 25 Nov 2025 09: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 1vNpB0-0007AJ-Ny; Tue, 25 Nov 2025 09:17:34 +0000
Received: by outflank-mailman (input) for mailman id 1171785;
 Tue, 25 Nov 2025 09:17: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=Ygd1=6B=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vNpB0-0007AD-BL
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 09:17:34 +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 91e9f578-c9df-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 10:17:32 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-64149f78c0dso7999653a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 01:17:31 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654ff3962sm1549137766b.50.2025.11.25.01.17.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 01:17: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: 91e9f578-c9df-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764062251; x=1764667051; 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=DblU7WUYqenNC5gbwyAe0d/156hInG31dj4Pu5n/AFs=;
        b=Vkc+zaP5YbnBWM5ywAsxSFyaOvXxrcJxe3C3XDeVnM9WMVVDJsOmTOGugjKjWLmEQN
         K8VzImXpHj2FEQy0eSH2lLmyEov2Pli9J/f57pCvEP6DZxpAiiBZXr90Ucd2QMZn8+rl
         0vCPT+NEfna8RyWJ448Fe3yO6S4HEx/RhQ65HS1IgppMGdzWEFvainrkrlk9noqtuj1t
         KQzrMfZs4idLbqcJkZDyofS/g+jzNxbZwYqmaYGlHZQwtA/DEGJ8zhtzON8D4P6nKY5N
         ht4sBQ4Ph1v51e5JEO8PrUeoSHs+uMQ+KW10cH19eqU/90ufX0+VP/bw40bUDWUPsrpq
         81oQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764062251; x=1764667051;
        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=DblU7WUYqenNC5gbwyAe0d/156hInG31dj4Pu5n/AFs=;
        b=aAa712b1qZkRQyu9hPnZOVjCkiRczUQ/QQdwTasGGTQ6AvEsya+z9baL+MGpvDhq2j
         1K/ArABuZRZumhgeesIj63nEiQ3YW90JG3GGTCb9Bq0DvX+ogRTYiZA7eS7eAOiRMDja
         lukUqv5gait0dfxbWARY0QyAiRjsTZ4+bu5UZ6uYbz8rJ5TPLFoeWyIjjJoWyVZ12+C6
         nxOzqmfK3Sl3VUeKiejW+RBLR7RHgWH7hYLT/tWRpmHHDuhF7tc33qPklwsnPmfw/pj7
         wEgdYRVK5tUP9619bq/dPbZIDBl9s+EmCkeP3lxhKqjbbwOgCQHjtBf5Wbo7yOz/RSQG
         x3SQ==
X-Forwarded-Encrypted: i=1; AJvYcCUobs6JCV6XaPdJHptY3L8nX5WvY73GpscqcEbKnNOerIQdCCWOPFp31Kjiq+hV93We0pLD+w0XCuM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwxBydFmdBdGV89ZaaOMZFxlJlGrgxaZkZFCAuWYNm+oXM5EkBM
	4NdBDqDhjEd568nTnDU92+7wU5ebgaPd6DgW9wlADuAHOZ73Q4lOGwtuZZUJRKUNqzE=
X-Gm-Gg: ASbGncsDtmec9fNPjnbjxZMrzVCOyZFKVahhIDSmpGWUvQ/L8ygORNFlkhrEzIxtGqL
	cLJL+u3j+EbZyOi4S4VrlkFqjxVVnqZZ6SFsomEIpdsT/f/OEd8Tz4wfDTWOF0bo9APh+/cQwYx
	Crh6uP3emZKd6GOg5NIhiPdpvltYNYd0AHN5eEAIOoFGTpiHRLArM8VrBibq486KD+3epAhlz2C
	ASvUjGGPR1tYnVNwE9YnQvSrK/w4gkHnlOiPnc3vGurrNp4e7bw6loWVVPw95j/uPDI8HBF67SJ
	LxWPR4tz/prnd5MvzIC2meoetVvyjart/7dAYiPVTxwa/KRiRO7WmVbKC5k8OViQ3Jsts7dUXUG
	mPcUmm+7MdU5OWgvqbzluPfEplZfezcPZIOjV8OpaDHmFXAa4kbih0LcCO+0KAbj24gaMvrj/Yb
	hVPTbPh0ojHke3LnayIMRi+8Mue4Al+Wh5uHpD9UeQz9y1UKMeMLzoh9qGt+yQZS7QAeMgk2x6s
	f0aClKCLwgSWMJoBqs0idOrNNLa/hJwsY65oPU=
X-Google-Smtp-Source: AGHT+IFyZZll8ZH/X/RHYVs7ZZtmUyQVueTHDs2Ri/wN+lzTNJv7gm1MLFAYD1MIYm+MVMJ5iPtiUA==
X-Received: by 2002:a17:907:9484:b0:b70:7e10:4f4b with SMTP id a640c23a62f3a-b76715abd4cmr1596027366b.18.1764062250586;
        Tue, 25 Nov 2025 01:17:30 -0800 (PST)
Message-ID: <04c3cb47-0903-4043-bb5f-2b7c94283abe@suse.com>
Date: Tue, 25 Nov 2025 10:17:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xenbus: Rename helpers to freeze/thaw/restore
To: Jason Andryuk <jason.andryuk@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: Yann Sionneau <yann.sionneau@vates.tech>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
References: <20251119224731.61497-1-jason.andryuk@amd.com>
 <20251119224731.61497-3-jason.andryuk@amd.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20251119224731.61497-3-jason.andryuk@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------57IcpzrsqfbZ54h5MuD8p7nZ"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------57IcpzrsqfbZ54h5MuD8p7nZ
Content-Type: multipart/mixed; boundary="------------Hd0k0oqX4TC4GyjIjl9m3xYH";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jason Andryuk <jason.andryuk@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: Yann Sionneau <yann.sionneau@vates.tech>, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
Message-ID: <04c3cb47-0903-4043-bb5f-2b7c94283abe@suse.com>
Subject: Re: [PATCH 2/2] xenbus: Rename helpers to freeze/thaw/restore
References: <20251119224731.61497-1-jason.andryuk@amd.com>
 <20251119224731.61497-3-jason.andryuk@amd.com>
In-Reply-To: <20251119224731.61497-3-jason.andryuk@amd.com>

--------------Hd0k0oqX4TC4GyjIjl9m3xYH
Content-Type: multipart/mixed; boundary="------------rzRzCmwEt0GHPJavvVtuKEEF"

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

T24gMTkuMTEuMjUgMjM6NDcsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IFJlbmFtZSB0aGUg
eGVuYnVzIGhlbHBlcnMgY2FsbGVkIGZyb20gdGhlIC5mcmVlemUsIC50aGF3LCBhbmQgLnJl
c3RvcmUNCj4gcG0gb3BzIHRvIGhhdmUgbWF0Y2hpbmcgbmFtZXMuDQo+IA0KPiBTaWduZWQt
b2ZmLWJ5OiBKYXNvbiBBbmRyeXVrIDxqYXNvbi5hbmRyeXVrQGFtZC5jb20+DQoNClJldmll
d2VkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQoNCg0KSnVlcmdlbg0K

--------------rzRzCmwEt0GHPJavvVtuKEEF
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-----

--------------rzRzCmwEt0GHPJavvVtuKEEF--

--------------Hd0k0oqX4TC4GyjIjl9m3xYH--

--------------57IcpzrsqfbZ54h5MuD8p7nZ
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/Ey8FAmkldCkFAwAAAAAACgkQsN6d1ii/Ey9O
nwgAmv4zMMgavDmtuWcAANSAl/hNg2v5osqb8brPVqRk8H8kUBLqncJN1RMUm0UApuhhO+FQA/0N
LZAb4GqgNAFFAPw6V9heb7O0divlnSwcoEShyAXbs7YX3xgCo2yD5jw6RjXXTzYMgJX7IpcznJ1g
BiSFI/kKAbNRMpwBWUnAotZ61nZA+QDGZLuwoUpMsSrM7cZGmcqQFsvXOsBmDLjG1dDphxpuOpQm
qxED01uhcmJ257Xn4RmzH4xnOj6mIKXkfuC7ibKw1JiBLc1gAO/MZVV8+98U1Aylh4DTWwNsn/wi
meFiMMlpLjG0G1sN8OA1wbh7zxiccbFPJxP9qy6ywg==
=SeVn
-----END PGP SIGNATURE-----

--------------57IcpzrsqfbZ54h5MuD8p7nZ--


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 10:27:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 10:27:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171796.1496823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNqGh-0008K8-Uk; Tue, 25 Nov 2025 10:27:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171796.1496823; Tue, 25 Nov 2025 10:27:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNqGh-0008K1-S7; Tue, 25 Nov 2025 10:27:31 +0000
Received: by outflank-mailman (input) for mailman id 1171796;
 Tue, 25 Nov 2025 10:27: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=RmC5=6B=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vNqGg-0008JJ-OX
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 10:27:30 +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 57761341-c9e9-11f0-9d18-b5c5bf9af7f9;
 Tue, 25 Nov 2025 11:27:28 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-429c7869704so4432880f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 02:27:28 -0800 (PST)
Received: from [192.168.69.210] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42cb7fa3a81sm34239083f8f.26.2025.11.25.02.27.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 02:27: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: 57761341-c9e9-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764066447; x=1764671247; 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=dsNRN3M7tLf1Kcxi1KCFkpYYf2qs5k6tXujcFgV5vT8=;
        b=sy4gl/lor/XIqUR8NDfilONua4ABBfg8bQfEgyrVApVJdaS/m0oP4W6hE7gJImI13h
         6L06t8jwoKjYQ4vRx+pR0iZ8dAkSmi3uWW9Yotkg3OhPBHQXcdVisorHEmkPPg2LrHT0
         rBaG4ffka4a8l9F4Y8Pd/KbMzcjGupM2fQjL1gQvWRg+iZDwTrpi0Kr2JyKhbejUMxQG
         S59hh6Z4d0RY6hs3bRC//vKTLld2iBo2fMHTY/zPH+DlUu5zDNA1YsbHPgeiLSao4sW/
         EzaamhbTBor4nLGSH2auo2iFk9ZI5MjlloGtLFbGUvkbeR8AXHO7FWGygkpN0tOPtdaY
         Tp6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764066447; x=1764671247;
        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=dsNRN3M7tLf1Kcxi1KCFkpYYf2qs5k6tXujcFgV5vT8=;
        b=ITPIlu/3x/TqFsPIu4A1Kt+S1q1sBEiBKDOFJqm2fKi985/tHNNUqWDgk/+s3hPU0A
         RDOJkYGmLzmyHj9UurwbpRhe1U55ncXFDcUyYe9xTpdV/WnDq0cR9dRnyFDYIh4XJYJb
         Iu5ZkiPWSMFZVsampu/K8puCwRpdT52J9OcxOJAjaIeUpCb3hS6ZGWc/taIkIgdUx9KR
         VmwJsTan0eDUzTLhcWc0WFVl0PM4DjMyY9FhrNS4gD+Py4dT8iBSrOVtRikrBmHkdJRz
         gLfNV/pQNWKgTUknQTgC1k6gabAasnLUnAMi/9OzfEmRk4YHI+m/Bl+gMjmhW5VpjozU
         VMow==
X-Forwarded-Encrypted: i=1; AJvYcCUIi/4klWwxaT6mQNreTL42PE+g/iTDwkFZRI6DOYNPX+3Mmw5CbsBNeFbHYna//dswwqL67yTBtKM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzcVhkYMTHwlQDMpqcTDoG2/gi6mnZFZXF2IoZMga9WJ2fTZ+jN
	rhGHVbjMQJwtKUM0A814FyLX+Gc5S7XokAn/15Og/AVdh2qon9V7yBUT1KcAY2khWyE=
X-Gm-Gg: ASbGncvaT7nfhNlHe0hLfRyKKpFXjDRAVn4GTsPgoju9Ov6lQ+4T8Pumct4xMOsKHBz
	w+igGhbiTVKB1arp9SsacD+F8mDjrVaXHX7RLboN+8cby2CUB+ImYJVfpOptg6gd3aUWfILFrQh
	xDmwsaMeAwSP16+bLgF9rxQHH8/Peit1apig71UOZYZxpFTVQbHOHS961AlL2LoZo+QaeTDH7/s
	2b3BAsgHksdDItwaUKmcS+z/ZfELQxrfu7qCUQtwdxJIokZmvI8s9t0PgnMXIE5djVDkqCUPS5j
	VIL8KfgE+myeHRXhG+BFHg7yY4QfulSgcHO/EcRIaHkxDPDX94N0ehk1JrCdx1/IyO8JD55ctSo
	O0LedqzhyPP6U24ztvs/OGFZsLjw+n28EslNSqtijDS7UbNTeoNLbFLikCshz+CVliJKq7Od5RV
	MqJyIkGmzNZD31k138/jG1eVY92M9TpUGedQJMT/VswUIf7vPTRv/o5Q==
X-Google-Smtp-Source: AGHT+IHKKU4ceMuaE95csztZcp8xaXOFHTU3Bea9HWqGWegeju5+IOQNhIe6zGPw+m52NYEXgQy3dg==
X-Received: by 2002:a05:6000:2dc3:b0:42b:2e94:5a8f with SMTP id ffacd0b85a97d-42e0f35913amr2072165f8f.52.1764066447520;
        Tue, 25 Nov 2025 02:27:27 -0800 (PST)
Message-ID: <f34353af-ebe5-4a43-9982-385b4113c983@linaro.org>
Date: Tue, 25 Nov 2025 11:27:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 03/15] ui: Convert to qemu_create() for simplicity and
 consistency
Content-Language: en-US
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com, zhenwei.pi@linux.dev, alistair.francis@wdc.com,
 stefanb@linux.vnet.ibm.com, kwolf@redhat.com, hreitz@redhat.com,
 sw@weilnetz.de, qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
 imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
 shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com, jag.raman@oracle.com,
 sgarzare@redhat.com, pbonzini@redhat.com, fam@euphon.net, alex@shazbot.org,
 clg@redhat.com, peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
 dave@treblig.org, jasowang@redhat.com, samuel.thibault@ens-lyon.org,
 michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
 mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
 liwei1518@gmail.com, dbarboza@ventanamicro.com,
 zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
 qemu-block@nongnu.org, qemu-ppc@nongnu.org, xen-devel@lists.xenproject.org,
 kvm@vger.kernel.org, qemu-riscv@nongnu.org
References: <20251121121438.1249498-1-armbru@redhat.com>
 <20251121121438.1249498-4-armbru@redhat.com>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20251121121438.1249498-4-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 21/11/25 13:14, Markus Armbruster wrote:
> The error message changes from
> 
>      failed to open file 'FILENAME': REASON
> 
> to
> 
>      Could not create 'FILENAME': REASON
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>   ui/ui-qmp-cmds.c | 4 +---
>   1 file changed, 1 insertion(+), 3 deletions(-)

Reviewed-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 10:27:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 10:27:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171795.1496813 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNqGU-00084G-O3; Tue, 25 Nov 2025 10:27:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171795.1496813; Tue, 25 Nov 2025 10:27: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 1vNqGU-000849-LA; Tue, 25 Nov 2025 10:27:18 +0000
Received: by outflank-mailman (input) for mailman id 1171795;
 Tue, 25 Nov 2025 10: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=RmC5=6B=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vNqGT-000842-PO
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 10:27:17 +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 4ed43cbf-c9e9-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 11:27:13 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-477a1c28778so58677925e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 02:27:13 -0800 (PST)
Received: from [192.168.69.210] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-477bf1df392sm246300905e9.1.2025.11.25.02.27.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 02:27: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: 4ed43cbf-c9e9-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764066433; x=1764671233; 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=Bm82jX7XCCW7aCI+a8dons42tFjRYTNRDP+rtZdOHPw=;
        b=j7rV+PnDAJUaY4CRQ8o/nA810SbsGEQOt9VjfutkUfdC3ne1yYsM+E+/UJKJn7/Rbs
         6q0BmGfceV7TmWMwvFXYJeAplTPOPeGTSUT1Ehd1RuNgl+r+INrSw2r0iNTN9oImA8CM
         qoBgeFtVeAESP6t5SRA74ZIGn2HY2u7amIBvkyYqoHjKTi8vml2c3Ml5pL5zccjlTXnY
         VGxly3xfUFc0+PmIQGxTpyJwScGM1/DmrWkGgqWb0XdDX0bSR2VEGRb+gkdrnqdJuqQP
         thJqpsyuz75kWIYvA6eKtW+ye1b6dVvvVAD5rUgDRGXNwzblIAsvs+8CqFvaPTxI2AYh
         Y8xQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764066433; x=1764671233;
        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=Bm82jX7XCCW7aCI+a8dons42tFjRYTNRDP+rtZdOHPw=;
        b=AkwRErgZVF3dYX5S5XarX6hwHRcXS8MqwHi9XnudnBRI5Kh72cCTDyY5sBbgz8XJGH
         hO8pRXBKLhcl+vsoqjTsUSXqQkTaHHjcT7XVGJ5FQYpQTI05Qd9yyN6ezNMKKcrL9zvR
         +SV658moiKtyR4W+bDJ/XBsNiHuch99z39YdPukfUaYeahWjOb/8LYSeyXr9U2n3wyIX
         xv58qLlVfhaymlwWcZpKchdCGn7tLlEEM3VkFQd3FzNhFImHLBnXY7kGDu+00UoEEDOi
         cxwem0xMFULlSgaNQXceQxHYfw5+HNVaoDnCFKh33frO2ac7ZLscc8Akvp8bCluW4TO+
         K99A==
X-Forwarded-Encrypted: i=1; AJvYcCVvFLtE5rr5j2AaqR0sLfVXKL1/BhfTwYl2zNGSBTdLdqZS5ekTzc5LU+8zvFGOZmNR/BP3YwOoufs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzwFyUzkNquh6egk74hDmDMZIrfkYzsRQrt7CbK10HNL/+EMVtz
	9kFXG9MzWL5KTueMLX7h4JOVlvvsIfbWE7o+TH3nhUVUG8XZSboBQaDM0RYbIy6f4VE=
X-Gm-Gg: ASbGnctMT6xeSMwOrIq8ZV9eUH30uBsoShMNQPTjmn+QeWAOw4YIWgGhcl3EZ1kF7Ll
	13oY8M/MVDcxLGEI0ZivEMRXho/p+wOpDQqno5Q1vS8kLfKXn3HlmOKAAJofXD1FoVv/ptNXWCk
	ejWTmUlq36dtYL2M/jrKSSnCCpRFJPSfr8kaBJraPvf247OKpqe0yaOVT9N/UF8INpcJ7W8YNa/
	QRO2p37xqOWSmqOHwcrfAImsU0YTzxkTxrIHoF5nP4vhEbDFPfp0D0eLNQYi+AbQzuQcstiFg/Q
	tH19/KzZBL1LQA9zH9KuNOEEXm4K5lMK34yibSJvLzgEgycy1rFF4518z/Pj3kj23G3arL10pHQ
	0u12N2aQv1X65Cxwh2W2+g5hecwwLg7lKesIspx3YYdLVkMoSN4HrcVGMWQHAVBAWFY17HDxNYG
	hXj5GBkSkRkvMiv5XYjnl8ny/tMPwcGKsk6ytgpExzLs98MLcGuVcLTg==
X-Google-Smtp-Source: AGHT+IGhbYTeSSFuslMqXUGJgEAmx4PJmp7EyajaFZpq/LfxEIoU4Z6Qn9frxs4dE4HLknKn1jcfKg==
X-Received: by 2002:a05:600c:3b1a:b0:477:55ce:f3bc with SMTP id 5b1f17b1804b1-47904b12f1dmr17118695e9.19.1764066432928;
        Tue, 25 Nov 2025 02:27:12 -0800 (PST)
Message-ID: <79407b6c-1161-4b08-877b-e215d2058a5d@linaro.org>
Date: Tue, 25 Nov 2025 11:27:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 02/15] hw/usb: Convert to qemu_create() for a better
 error message
Content-Language: en-US
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com, zhenwei.pi@linux.dev, alistair.francis@wdc.com,
 stefanb@linux.vnet.ibm.com, kwolf@redhat.com, hreitz@redhat.com,
 sw@weilnetz.de, qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
 imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
 shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com, jag.raman@oracle.com,
 sgarzare@redhat.com, pbonzini@redhat.com, fam@euphon.net, alex@shazbot.org,
 clg@redhat.com, peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
 dave@treblig.org, jasowang@redhat.com, samuel.thibault@ens-lyon.org,
 michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
 mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
 liwei1518@gmail.com, dbarboza@ventanamicro.com,
 zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
 qemu-block@nongnu.org, qemu-ppc@nongnu.org, xen-devel@lists.xenproject.org,
 kvm@vger.kernel.org, qemu-riscv@nongnu.org
References: <20251121121438.1249498-1-armbru@redhat.com>
 <20251121121438.1249498-3-armbru@redhat.com>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20251121121438.1249498-3-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Markus,

On 21/11/25 13:14, Markus Armbruster wrote:
> The error message changes from
> 
>      open FILENAME failed
> 
> to
> 
>      Could not create 'FILENAME': REASON
> 
> where REASON is the value of strerror(errno).
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>   hw/usb/bus.c | 5 ++---
>   1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/hw/usb/bus.c b/hw/usb/bus.c
> index 8dd2ce415e..714e33989f 100644
> --- a/hw/usb/bus.c
> +++ b/hw/usb/bus.c
> @@ -259,10 +259,9 @@ static void usb_qdev_realize(DeviceState *qdev, Error **errp)
>       }
>   
>       if (dev->pcap_filename) {
> -        int fd = qemu_open_old(dev->pcap_filename,
> -                               O_CREAT | O_WRONLY | O_TRUNC | O_BINARY, 0666);
> +        int fd = qemu_create(dev->pcap_filename,
> +                             O_WRONLY | O_TRUNC | O_BINARY, 0666, errp);
>           if (fd < 0) {
> -            error_setg(errp, "open %s failed", dev->pcap_filename);
>               usb_qdev_unrealize(qdev);

OK, but why not update usb_qdev_realize() in the same patch?

>               return;
>           }

Similarly, I don't get why you updated this (and the following patch),
without also doing the similar:

  - qemu_chr_open_pipe()

  - qmp_chardev_open_file_source() and qmp_screendump()

  - s390_qmp_dump_skeys()

Anyhow, for this patch:
Reviewed-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 10:28:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 10:28:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171812.1496833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNqHW-0000Zu-7j; Tue, 25 Nov 2025 10:28:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171812.1496833; Tue, 25 Nov 2025 10: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 1vNqHW-0000Zl-4I; Tue, 25 Nov 2025 10:28:22 +0000
Received: by outflank-mailman (input) for mailman id 1171812;
 Tue, 25 Nov 2025 10:28: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=RmC5=6B=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vNqHV-000842-2t
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 10:28:21 +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 75edde39-c9e9-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 11:28:19 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-64088c6b309so8721916a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 02:28:19 -0800 (PST)
Received: from [192.168.69.210] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654fd43b1sm1532571066b.38.2025.11.25.02.28.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 02:28: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: 75edde39-c9e9-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764066499; x=1764671299; 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=Wp5/syD0+o/LyjTyIR4uS8V1NpnQlWuYtR2o807A2NY=;
        b=zpD9Kn+JsnvKcz4OuSc0z81UnN9gGAwIUcfkxNq8XK97f530ga7c9hsRMLxenCZNVS
         yX6P0fj4xfKxoE23HlrQLKn6aPRcQJD5CSlKQe2oVDV5MfRilN/VSv8+JJZ5gCRZwPuJ
         /Zg4RNGY57dNgRg0nWvFTvxVBdy+78jgTaTl7cbkutF6LDwEVN1hiFgxQfaGDoPJ5vsm
         4YqcWVogJk9QlN8uvbXLERvLhzmLCKhM9enUZfHOxbZBy0vrOzUWqjEgqZuAl/FweMRO
         MluVK9gKELgfI1zYQm7oOIIfFhUPe1N1LvxEMPH4ozGJ79hjxfVp9c4mF4NfnAoUkImz
         QKqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764066499; x=1764671299;
        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=Wp5/syD0+o/LyjTyIR4uS8V1NpnQlWuYtR2o807A2NY=;
        b=c2G3+w4Dmbit0N51MkMgII0WUFZwApBvn2ASQMq+d4VoAyNfWhOceDCak0LtEmJHFX
         e739Mv6vpWUpL9ayl/VXP1ncp0dMSmYDJ9ak5Y3smIKKomlGpsEBd1mFV+vp1vXlT6uI
         FrvqpZZlpSAno6kiJo4jQta9lXj8vFe2/u2SwftIR2wJ97VIyN6HvAvwOa5uLBj+4obQ
         akt/YgowSq5oFDRNCwTvBEP5AT47nvVKJG/QnJyogyxc5KhiPrjtARBWT6josiOO4HjT
         IGR9mH7xFbZdAzuAdGThBGoLzFJaqSvWdBCFPvAscYT8Je6AiRxzt/cIPbmVdCG+zAs5
         gVeA==
X-Forwarded-Encrypted: i=1; AJvYcCX8v9hsPeImf1jR7DXBtIH8sVLi+uApV9PPyJqT4fqMm/OYJdHIyThzpKey6saog1Ctu60WQlfvF6Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy9iUxMUwMB9oRDCMIOF9baeYNIOV0jjTL+1g0lmpPcZZh5FMJB
	o/psPCD2uvD1bNZD/+QND+fpI1urBHD/GWq69utwgwm1E4JwS2ZXIfUpEYFZcB7pCcw=
X-Gm-Gg: ASbGncseEm6azwcvmkgpGZPGOu/sapJk3Ni0W652G/0Trgzw4T1kgKvhqkb6tSefU/1
	KaVeuth1pt8yu79f2YROAEI0r/JqmTvj3QW+pubk3R02AKEcoFgss8DekEqB9W7S4NlcILuOaIr
	y6BN8kwCD8KGhZd2jSSV3tbiDVesl5dKBOyH1SWiRpymUJB4gG2QOMWGSBDbTuGRbKNHXzZQ56s
	XJVU1YfKV6yxvo0/qGmr6oB2Z8dIqsu7pTaXZernBM2Ka4OZScMN6bIT5tiiFfurOWT3btZgNpK
	IwxQ2YUEupmDDVHFiK569pc8p+d0CdR6w9mx/+zyXNLh7n0EwoxzH8qXQgssRwzpNFlQ1Wqdcwk
	6ouvR4vSfcZD2QaznOiQU6jylxPG/M6awOuqFR1uur3KQRk2ITFZG0pvXsb8zQ1zywBvLufo8tM
	yPpc3yPe57Y9tUfL76MmxuKLjCgxsdMmfygmOOsUN6CQwB1LKAVVO2tQ==
X-Google-Smtp-Source: AGHT+IE3PKjG7rNMmUMO0u0YPkOHg97YVfk6tokccVI/wtgGNpt9SgcH/ClnqkI9yxamQKVM5NvRXg==
X-Received: by 2002:a17:907:868f:b0:b72:5fac:d05a with SMTP id a640c23a62f3a-b7671a47ae8mr1360006666b.37.1764066498581;
        Tue, 25 Nov 2025 02:28:18 -0800 (PST)
Message-ID: <a5388c93-124f-42ac-8881-3cae4bb620c6@linaro.org>
Date: Tue, 25 Nov 2025 11:28:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 10/15] error: Use error_setg_file_open() for simplicity
 and consistency
Content-Language: en-US
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com, zhenwei.pi@linux.dev, alistair.francis@wdc.com,
 stefanb@linux.vnet.ibm.com, kwolf@redhat.com, hreitz@redhat.com,
 sw@weilnetz.de, qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
 imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
 shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com, jag.raman@oracle.com,
 sgarzare@redhat.com, pbonzini@redhat.com, fam@euphon.net, alex@shazbot.org,
 clg@redhat.com, peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
 dave@treblig.org, jasowang@redhat.com, samuel.thibault@ens-lyon.org,
 michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
 mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
 liwei1518@gmail.com, dbarboza@ventanamicro.com,
 zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
 qemu-block@nongnu.org, qemu-ppc@nongnu.org, xen-devel@lists.xenproject.org,
 kvm@vger.kernel.org, qemu-riscv@nongnu.org
References: <20251121121438.1249498-1-armbru@redhat.com>
 <20251121121438.1249498-11-armbru@redhat.com>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20251121121438.1249498-11-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 21/11/25 13:14, Markus Armbruster wrote:
> Replace
> 
>      error_setg_errno(errp, errno, MSG, FNAME);
> 
> by
> 
>      error_setg_file_open(errp, errno, FNAME);
> 
> where MSG is "Could not open '%s'" or similar.
> 
> Also replace equivalent uses of error_setg().
> 
> A few messages lose prefixes ("net dump: ", "SEV: ", __func__ ": ").
> We could put them back with error_prepend().  Not worth the bother.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org>
> ---
>   hw/9pfs/9p-local.c        | 2 +-
>   hw/acpi/core.c            | 2 +-
>   hw/core/loader.c          | 2 +-
>   hw/pci-host/xen_igd_pt.c  | 2 +-
>   monitor/hmp-cmds-target.c | 2 +-
>   net/dump.c                | 2 +-
>   net/tap-bsd.c             | 6 +++---
>   net/tap-linux.c           | 2 +-
>   target/i386/sev.c         | 6 ++----
>   util/vfio-helpers.c       | 5 ++---
>   10 files changed, 14 insertions(+), 17 deletions(-)

Reviewed-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 10:28:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 10:28:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171815.1496843 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNqHo-0000wt-Ic; Tue, 25 Nov 2025 10:28:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171815.1496843; Tue, 25 Nov 2025 10:28:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNqHo-0000wm-Fb; Tue, 25 Nov 2025 10:28:40 +0000
Received: by outflank-mailman (input) for mailman id 1171815;
 Tue, 25 Nov 2025 10:28: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=RmC5=6B=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vNqHm-0000uX-Vq
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 10:28:38 +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 8149bbf1-c9e9-11f0-9d18-b5c5bf9af7f9;
 Tue, 25 Nov 2025 11:28:38 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-640ca678745so8958386a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 02:28:38 -0800 (PST)
Received: from [192.168.69.210] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654d3bfcesm1536852566b.15.2025.11.25.02.28.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 02:28: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: 8149bbf1-c9e9-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764066518; x=1764671318; 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=s1upGUE7YIUICVmJUED5d5whRme8CL9poQ2KbESMmuo=;
        b=ixg+ubF0L/7rd7Mbk8VZQTFtm+rDCqHsKU+XXQ7Vce4GpSYzWKw33KrXAoHq0vMW6W
         RUE7+cbeI0mN44AI27pk3TImDaCckOrGCquiQFnc8kM3WDZGrog/h962WcbSoVW1M+WI
         GcWNuKRnxWlOwsnNn6bCiV/2wZKNO1IMJwsGm4oU58s4MTw8TeB7EaJ+jDDcimLfdv/m
         vdng9ZbPaCWRPD3paZvZ+9l4Vlq8k+eq7FOBKUYJ7Nw8+/oPan9FkrJ8RkDPIKUGknbZ
         nXSXk7jPVEjfkPPJ3q9Pz7GFbyrTo0cNHzw7xohrT1XNu9u6T1YoxOsFJtdFT6SKsyl6
         +ApA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764066518; x=1764671318;
        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=s1upGUE7YIUICVmJUED5d5whRme8CL9poQ2KbESMmuo=;
        b=rXImzzr/Xa3gkOPYGTyijj0dRyG9+3QCM6+nO8PQiju1fqcU2fwHYtyaapTcIX2Uj+
         ripJmMc39h6q8aC1ENUqH58gKgWtva/QiURD17BnAD46KVaU4sHVlXaUrHwQLyj2AXbj
         RtWU45vRENc6NLU9ymdLnkDPHolkK1IruAm8uN/T8B9LsADcM3EpPrH4TY3mHOKS27VU
         +qZCnA++xYsc+5pjzu1X71xy0SWpPK0GepqpQkl9OSwJKvz/NtNxcJ0xuAGnfqmbIBJ5
         vEEPMXSMJ8e8xR3pHN4byhI8GVvc2Wsqnf5JxWoOpuJdJ7micnh0K53odPcSMa392mTR
         39AQ==
X-Forwarded-Encrypted: i=1; AJvYcCX1CSvi6rAw1fI0luRryAAZURsJ6QLqM6SgfnxYniXDArP0KUNxzhZkoAOtVDWyr8dEXCcZWJ5b5y0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzOwkERfXLcrdo+kH2wsaiUvFuAvClanyb6jTjbWrD9JDREEhbJ
	F4ytz/uCCI3Ek5ffYBQ37YkzoORdpJR6PYw3LEWKbeFukf5XtVAnghia6PxbCsw/+dA=
X-Gm-Gg: ASbGncumwkaTDI+AlwqkuW0pHLW7bm+UYixfAPaqQC0IlLJgis0GA4KIVqK/rTvWklP
	72TEA/szcyy9f/QV3AXdNk9adoVpshAJTMkhBrBS6hBK+eGmBXfSkH/KP7WgSu1yyNmjo74jrDZ
	y+sHZBHxYJxe35qyTfmepBsNoaVjjiei5ohxG59s9OU1oUrrIY8BlIUSm6K8T8g+7UPII0bdl4+
	suWNEl0fl/OiGo+5n6qGHjwlHC7lbVKg6fTi1DrGFJ4qwT5LiOgnMVJi5lzeYjoEmLhU8Rn+9jd
	8OZHE2uhbACm7zaVeMu2F3Ts5OOJjkYdTvQR2A3q/SVMUyOF02oHWJOdrmS7zg+L1906QcNsEtn
	3Trhwzbudg4TvYCWGHnTHFgLDgetJylEU03wB4qcNcam1+4xXlIP1QdSR5KzVocXXsx0kFZoc7Y
	sN3qc17HGCLNvZOv8FJVhTlTqzmvMjj1iLz1TrHLRxDqQyBMMuACyM/g==
X-Google-Smtp-Source: AGHT+IF59L37GgnGAgNCiHvqRTLRI2aTvHyr6yOsdF3ewgBPJ+5ZCFL6F0XLm22Mv4gcL1oVkiKNmQ==
X-Received: by 2002:a17:906:fe0a:b0:b73:8bd4:8fb with SMTP id a640c23a62f3a-b76717322d4mr1729884566b.42.1764066517609;
        Tue, 25 Nov 2025 02:28:37 -0800 (PST)
Message-ID: <b9cd0110-4a91-4ef5-a139-2dcd45b2a0cc@linaro.org>
Date: Tue, 25 Nov 2025 11:28:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 09/15] blkdebug: Use error_setg_file_open() for a
 better error message
Content-Language: en-US
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com, zhenwei.pi@linux.dev, alistair.francis@wdc.com,
 stefanb@linux.vnet.ibm.com, kwolf@redhat.com, hreitz@redhat.com,
 sw@weilnetz.de, qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
 imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
 shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com, jag.raman@oracle.com,
 sgarzare@redhat.com, pbonzini@redhat.com, fam@euphon.net, alex@shazbot.org,
 clg@redhat.com, peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
 dave@treblig.org, jasowang@redhat.com, samuel.thibault@ens-lyon.org,
 michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
 mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
 liwei1518@gmail.com, dbarboza@ventanamicro.com,
 zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
 qemu-block@nongnu.org, qemu-ppc@nongnu.org, xen-devel@lists.xenproject.org,
 kvm@vger.kernel.org, qemu-riscv@nongnu.org
References: <20251121121438.1249498-1-armbru@redhat.com>
 <20251121121438.1249498-10-armbru@redhat.com>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20251121121438.1249498-10-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 21/11/25 13:14, Markus Armbruster wrote:
> The error message changes from
> 
>      Could not read blkdebug config file: REASON
> 
> to
> 
>      Could not open 'FNAME': REASON
> 
> I think the exact file name is more useful to know than the file's
> purpose.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>   block/blkdebug.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 10:29:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 10:29:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171830.1496853 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNqIC-0001aG-Qg; Tue, 25 Nov 2025 10:29:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171830.1496853; Tue, 25 Nov 2025 10:29:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNqIC-0001a9-Mt; Tue, 25 Nov 2025 10:29:04 +0000
Received: by outflank-mailman (input) for mailman id 1171830;
 Tue, 25 Nov 2025 10: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=RmC5=6B=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vNqIC-000842-0z
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 10:29:04 +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 8f8077b9-c9e9-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 11:29:02 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-42b32900c8bso3070208f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 02:29:02 -0800 (PST)
Received: from [192.168.69.210] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42cb7fb9190sm33346517f8f.33.2025.11.25.02.28.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 02:29: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: 8f8077b9-c9e9-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764066541; x=1764671341; 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=FOtq6FkTjjV4xqPH8MCZhBCC4A3ygFQQRD95vDYNiQk=;
        b=YsLPAwZ8KuR1MdgJUT6rr0OC94pGers3TT6UudR0eC4HjZeeytj5266Zz+yq5PwFEG
         OG3YvS9I19Szlshh/Ong0vL84W1W/HIzXALtfVu2x7v3ov3UFcWW4Ti2I1bVqyBOmSk/
         igNjZpURc+/VswjKb9ZQrZ1r2BQ/k8/DmQ6BkLLhou5RK4NZSivM5Tnapz6HzV9aTmUv
         fQBJZP7EVBkJK5LaOWgswa+3gYZt/dJRkXOB/2ZUHSp4QP3eMw5t9Y7JZ2kWkx/IPvML
         cElA7FvLF4BVM+GEI9Dur+qjc+6Lm3dNE9voXXcURbGU8FJ0FcIHdJV5ZY8cJK5qlQjj
         kglg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764066541; x=1764671341;
        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=FOtq6FkTjjV4xqPH8MCZhBCC4A3ygFQQRD95vDYNiQk=;
        b=vgq3mcuI9k1NgEOlcQKd4WQbQWt7awZB2ryVJr+xCCEw/JcET/WIhvquieuwjfP1Gg
         lJN7QD71Xj8zSa4ExG2DidEZjvz5TxBPCjh3dd0xrDgzkcAOj6agoxoBi5JIRPomUaq7
         laNg9M78DvI7kbLrJGGa6c3RwTpWbjoQoLQV3QhWcjn2/1Kbq3qQt/n7w8l6gYuIZQ37
         KsWF0LvZN/1yaqSTJxknhVypRfAWXo7Q8j79+5Y7XKsHx/iQjnM773WKlnEKoINed+aK
         Ye6vLfb7vRQZZ1OgFkJKg4V/5sgpWmiTqojZMm317zIclczx3mTqX4KD4Pnc2C99ufEx
         h2Rw==
X-Forwarded-Encrypted: i=1; AJvYcCWCRkNG2zy+xuWBYklY/CSd1KDHHEmOvQ+m9MUwOC0a53ZIznFFScQSOhnFv/5HH2tBsmlXdm98Zu8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxl4MhuqEo+Cd0Sns7DlKXUE8IU4pXoHClt7/q1Qq9G/0IgAAqP
	2P9BI6z71pJIMMJMJq7AhGtv0v6jLOlimJVePwqw31rIW3LMmTtHCdueXdT0wb3gPmg=
X-Gm-Gg: ASbGncuHn676g4HL0pA3aoyz3yn22ULgB89AOCi+Kg+ikwH/XFDpc5aPhmwR96+IfOh
	dDi9Ja6gCunxXdZfhd0Ry0gyDFqSvCFSoHng9BiChv/h+4FAkvnK/NPIobVWpf/9zvm5qaUweBv
	yoop135BBF8Rx1he+YjvPnHqiQA9F8RHcvYwy7Wwgbr9JhkbxW8scqMOjtIWWVvuuzmK9yC8G4g
	hO5F4ScsKaJKMJo0ZUASA21GVLt6tFxWCC48MsG+5BSAjAdQA+p84a6K0uBNC1YcPUT3S64rrNp
	HuCKoJJ5VuPdF+S4F4znEJSKIoEd9pxFvcd9dKx+oLoZw8NGLutJxORSgCV0N3o5iVUq0LMy/2g
	EzyOBz6TjNdctJpOxo1MDixXBT2O+PwLt7jGDeOdfLZTQzWAxt162ZvVTfidwa4ZYRp4dIQONLh
	Nolfb54n+0XxA8oObW891k/hotXNpMDq1/t0Q2/fQ4bQpy1n9HhBOPkw==
X-Google-Smtp-Source: AGHT+IEbJeTrLY46fCznAtjfXdYPHTUtYeQtitUWoI1YXftLHuYFMPldzZFqKU9cjG8M/We/w9d/JA==
X-Received: by 2002:a5d:588b:0:b0:42b:411b:e487 with SMTP id ffacd0b85a97d-42cc1cd920amr16516595f8f.2.1764066541445;
        Tue, 25 Nov 2025 02:29:01 -0800 (PST)
Message-ID: <9922cb86-5c48-464f-a811-05a7a4b4a9cb@linaro.org>
Date: Tue, 25 Nov 2025 11:28:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/15] qga: Use error_setg_file_open() for better error
 messages
Content-Language: en-US
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com, zhenwei.pi@linux.dev, alistair.francis@wdc.com,
 stefanb@linux.vnet.ibm.com, kwolf@redhat.com, hreitz@redhat.com,
 sw@weilnetz.de, qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
 imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
 shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com, jag.raman@oracle.com,
 sgarzare@redhat.com, pbonzini@redhat.com, fam@euphon.net, alex@shazbot.org,
 clg@redhat.com, peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
 dave@treblig.org, jasowang@redhat.com, samuel.thibault@ens-lyon.org,
 michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
 mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
 liwei1518@gmail.com, dbarboza@ventanamicro.com,
 zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
 qemu-block@nongnu.org, qemu-ppc@nongnu.org, xen-devel@lists.xenproject.org,
 kvm@vger.kernel.org, qemu-riscv@nongnu.org
References: <20251121121438.1249498-1-armbru@redhat.com>
 <20251121121438.1249498-6-armbru@redhat.com>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20251121121438.1249498-6-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 21/11/25 13:14, Markus Armbruster wrote:
> Error messages change from
> 
>      open("FNAME"): REASON
> 
> to
> 
>      Could not open 'FNAME': REASON
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org>
> Reviewed-by: Kostiantyn Kostiuk <kkostiuk@redhat.com>
> ---
>   qga/commands-linux.c | 11 ++++++-----
>   1 file changed, 6 insertions(+), 5 deletions(-)

Reviewed-by: Philippe Mathieu-DaudÃ© <philmd@linaro.org>



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 10:47:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 10:47:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171848.1496862 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNqaJ-0005GJ-8P; Tue, 25 Nov 2025 10:47:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171848.1496862; Tue, 25 Nov 2025 10:47:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNqaJ-0005GC-5p; Tue, 25 Nov 2025 10:47:47 +0000
Received: by outflank-mailman (input) for mailman id 1171848;
 Tue, 25 Nov 2025 10:47: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=lEWo=6B=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vNqaH-0005G6-Jb
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 10:47:45 +0000
Received: from fout-a6-smtp.messagingengine.com
 (fout-a6-smtp.messagingengine.com [103.168.172.149])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2aaa2922-c9ec-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 11:47:42 +0100 (CET)
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfout.phl.internal (Postfix) with ESMTP id BBB32EC0213;
 Tue, 25 Nov 2025 05:47:40 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-02.internal (MEProxy); Tue, 25 Nov 2025 05:47:40 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 25 Nov 2025 05:47: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: 2aaa2922-c9ec-11f0-980a-7dc792cee155
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=1764067660;
	 x=1764154060; bh=vKvzwv2WuQx8tfsEJ9gD04sEa7ga8SrxGx+O8by6l90=; b=
	IJfPmT6liRs/R6ItRZciU/VGCWg3QMHEI8FRy9dFM6RrkpUb7QBuPguMfvEWJUST
	cKkgN+uAWT5cYFK6M0qCsLxfUxu9VKvOP1a64JweIU1kKHlub4UzSqxVC01j/8mq
	fJ4PO+SmoPZHO3CoglI34Fu2ykQMMf7c+OPYqcxLOxbyNGqk0f/FlE/UPaOgfN1O
	YtDlccRslDIDMjE8Y+RpBqGJuEp3+fNDbDRqY6AKxXZLtxjggPbzDIWiv/ac81Jz
	aXw1IpRInwaEWXXy8jT/fAbynbktcVw7q9ncUWnbR0Um3mTIt6TTT6aANCG51pYg
	e3dSH5nd2CVX1J4Sl2OW0A==
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=
	1764067660; x=1764154060; bh=vKvzwv2WuQx8tfsEJ9gD04sEa7ga8SrxGx+
	O8by6l90=; b=2rXsaqUl+8MWJP5Edq8YpVA/Jek40Eg5zVUmFrbX2XTyVMqgAQC
	Yz0t9N0JIWNFcoGhaKn+EOglxEBB2abEtSLHegO2xtTqf1dBMDv8SOwTW7nkY9s8
	sVAqcJj/GII7SY1UHugbX59KK8P+gp2eiEUL4S7tGWv9zQCJBciFhRHghVlw7tj0
	9UXTZ0Gjnjo7Yd62mciOW4LYe1/KbVortW8nloHHKPYgw2u8eRkIaai8O+m0ENKy
	AvQWHdWxIEdIsxbGgoN6xoA/dVLwewycAmYn5QF94iN+262KQX27q92MLaoDwg7n
	ZQxKS9qAYMYDsvk6voa/mDVXJHCfzcr4Zjg==
X-ME-Sender: <xms:TIklaY0o_gIR-ZrMb_4Z6f3EJ93S4s42hEBcOuKC7I_dmW3p6HjECg>
    <xme:TIklaTxgUdWz3eCVIGsT3UwWL7mGxfa6YspIbYq1Z728NVjGwUWN3eh68fERQFAPn
    Qv7dpZB4niGQ0SjkKC528_lzs4KqmmCA5uzxTdQrr6v_XSo7w>
X-ME-Received: <xmr:TIklafG1IPflOUXfgghrO3aV5I5bcS3lz38_7qjeeKUq4HuP9KNIMa6Bqk7u0IGmlxJt2Z1paSdmfhOofSuMzWTs5SU2D4P66TE>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvgeduvdejucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepjedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepjhhgrhhoshhssehsuhhsvgdrtghomhdp
    rhgtphhtthhopehjrghsohhnrdgrnhgurhihuhhksegrmhgurdgtohhmpdhrtghpthhtoh
    epshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepohhlvghk
    shgrnhgurhgpthihshhhtghhvghnkhhosegvphgrmhdrtghomhdprhgtphhtthhopeihrg
    hnnhdrshhiohhnnhgvrghusehvrghtvghsrdhtvggthhdprhgtphhtthhopeigvghnqdgu
    vghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehlih
    hnuhigqdhkvghrnhgvlhesvhhgvghrrdhkvghrnhgvlhdrohhrgh
X-ME-Proxy: <xmx:TIklaWZd3aaslcowgYsy2f2JnUHeexvy8jgdMEngtzeu8Ob9HkG8cg>
    <xmx:TIklaRDEDPBbXW0jGUphUXvlnJQz6KLQ8d6rujH7u6xZF0KXvmxN5A>
    <xmx:TIklaenVvtqNSWiXiQpIhCj5vlcxMomk2bJh2-1uXjdKZHMeSWl00g>
    <xmx:TIklaSwoyWv4d11bt5CKsfYuVrABdFrND4UuoKOvxBVnK17XjKbLqg>
    <xmx:TIklaVE3MO2R59rTd75kH6C-4ZCUcKDHCpTUssiQqOjntrIwTOPSqPcB>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 25 Nov 2025 11:47:37 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Yann Sionneau <yann.sionneau@vates.tech>,
	xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] xenbus: Use .freeze/.thaw to handle xenbus devices
Message-ID: <aSWJSb4OK645r3tk@mail-itl>
References: <20251119224731.61497-1-jason.andryuk@amd.com>
 <20251119224731.61497-2-jason.andryuk@amd.com>
 <1c991699-51b7-4284-8179-6bc78f8f4eac@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="MtahxU80cAG7ZM06"
Content-Disposition: inline
In-Reply-To: <1c991699-51b7-4284-8179-6bc78f8f4eac@suse.com>


--MtahxU80cAG7ZM06
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 25 Nov 2025 11:47:37 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Yann Sionneau <yann.sionneau@vates.tech>,
	xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] xenbus: Use .freeze/.thaw to handle xenbus devices

On Tue, Nov 25, 2025 at 09:20:55AM +0100, J=C3=BCrgen Gro=C3=9F wrote:
> On 19.11.25 23:47, Jason Andryuk wrote:
> > The goal is to fix s2idle and S3 for Xen PV devices.  A domain resuming
> > from s3 or s2idle disconnects its PV devices during resume.  The
> > backends are not expecting this and do not reconnect.
> >=20
> > b3e96c0c7562 ("xen: use freeze/restore/thaw PM events for suspend/
> > resume/chkpt") changed xen_suspend()/do_suspend() from
> > PMSG_SUSPEND/PMSG_RESUME to PMSG_FREEZE/PMSG_THAW/PMSG_RESTORE, but the
> > suspend/resume callbacks remained.
> >=20
> > .freeze/restore are used with hiberation where Linux restarts in a new
> > place in the future.  .suspend/resume are useful for runtime power
> > management for the duration of a boot.
> >=20
> > The current behavior of the callbacks works for an xl save/restore or
> > live migration where the domain is restored/migrated to a new location
> > and connecting to a not-already-connected backend.
> >=20
> > Change xenbus_pm_ops to use .freeze/thaw/restore and drop the
> > .suspend/resume hook.  This matches the use in drivers/xen/manage.c for
> > save/restore and live migration.  With .suspend/resume empty, PV devices
> > are left connected during s2idle and s3, so PV devices are not changed
> > and work after resume.
> >=20
> > Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>=20
> Acked-by: Juergen Gross <jgross@suse.com>
>=20
> Marek, could you please give this patch a try with QubesOS? I think this
> patch should be verified not to break your use cases regarding suspend /
> resume.

Sure, but I can't promise it will be this week, I have some deadlines to
meet...

> Juergen
>=20
> > ---
> >   drivers/xen/xenbus/xenbus_probe_frontend.c | 4 +---
> >   1 file changed, 1 insertion(+), 3 deletions(-)
> >=20
> > diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/x=
enbus/xenbus_probe_frontend.c
> > index 6d1819269cbe..199917b6f77c 100644
> > --- a/drivers/xen/xenbus/xenbus_probe_frontend.c
> > +++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
> > @@ -148,11 +148,9 @@ static void xenbus_frontend_dev_shutdown(struct de=
vice *_dev)
> >   }
> >   static const struct dev_pm_ops xenbus_pm_ops =3D {
> > -	.suspend	=3D xenbus_dev_suspend,
> > -	.resume		=3D xenbus_frontend_dev_resume,
> >   	.freeze		=3D xenbus_dev_suspend,
> >   	.thaw		=3D xenbus_dev_cancel,
> > -	.restore	=3D xenbus_dev_resume,
> > +	.restore	=3D xenbus_frontend_dev_resume,
> >   };
> >   static struct xen_bus_type xenbus_frontend =3D {
>=20






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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkliUkACgkQ24/THMrX
1yxzGQf9GdYrtkeG1m/vQPue+cfveXJFKVm7XfGujsqM4nGtAx8hSG/XwFNDEvgN
ILoh86xZh/eJZpMiN7kZqc8irWoYEgG97GSyAnItDBOUyC4XSJfilsksf9COlWWp
il6kV0BUHIZLb3kGrU7Uj4rFv1WIWc5mpbmbPrhYsoXtXi+e9ujHyqc07upOSk9O
oScpLREBGgsHdXZjzyY6qyVjvkjpYooodoB0tE3SVC8gppuAkkVNxO9PyJiGkI+u
rltOL8xc3y51ldLUoxoyd0+KfttAEy7UsZR72dLvUyirfDn61Y9HvAuDUs4tJXxZ
vzj9C1Y58zQrwZVkkzPpF9ZVURwyJg==
=cKIe
-----END PGP SIGNATURE-----

--MtahxU80cAG7ZM06--


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 12:03:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 12:03:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171878.1496936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNrlS-0000NE-Ag; Tue, 25 Nov 2025 12:03:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171878.1496936; Tue, 25 Nov 2025 12:03: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 1vNrlS-0000N7-7y; Tue, 25 Nov 2025 12:03:22 +0000
Received: by outflank-mailman (input) for mailman id 1171878;
 Tue, 25 Nov 2025 12:03: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=SQaz=6B=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vNrlR-0000N1-HZ
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 12:03:21 +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 bbb36ea1-c9f6-11f0-9d18-b5c5bf9af7f9;
 Tue, 25 Nov 2025 13:03:19 +0100 (CET)
Received: from BN9PR03CA0142.namprd03.prod.outlook.com (2603:10b6:408:fe::27)
 by SN7PR12MB7180.namprd12.prod.outlook.com (2603:10b6:806:2a8::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.13; Tue, 25 Nov
 2025 12:03:14 +0000
Received: from BN3PEPF0000B077.namprd04.prod.outlook.com
 (2603:10b6:408:fe:cafe::7a) by BN9PR03CA0142.outlook.office365.com
 (2603:10b6:408:fe::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.17 via Frontend Transport; Tue,
 25 Nov 2025 12:03:14 +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.9366.7 via Frontend Transport; Tue, 25 Nov 2025 12:03:13 +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, 25 Nov
 2025 06:03:12 -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; Tue, 25 Nov 2025 04:03:11 -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: bbb36ea1-c9f6-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hzm3gMh7eVfCfFgU2tStHQ6+hr2cOpDgn3IQjhT1q6VV+Rl2zOUsC4TinwxvOt+simmuGGVLdA0Zni3D7mAWHZvwbZYkWMQH0xUPRJzAI/5n+/rpiWWF3zI6mPNALuDgaFsLHCI81qtoBDI53QLB3cIHlLSC7ApmU2O5phTVRa9IN79AxiwUBkFAN0V5gUN6xDX0J1Fj9c34XmbwSyNW1IsrLmKn2ZdRQrltBnV/BO6N3vl5+Cz6Nqu8qMqTO7MEeK6797tGaA6B3oH6DBN2KqlXHzroPJpsRCVACjHH5MWjd8vsIVmjq0OCkfO3/3zDzxHCiOUgNSTPz2Kd5XGBPg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7a76AHGZYSuUIqHiQo4GORXQ1f0RXxPTeh9W9edRD9M=;
 b=L1+cmdIkhjoIN5E34v3Xk2jN/dAYIvj77gJw8JSTf2109E5pKMeYWUn5SBfkAgGexvTrM0Dwe4IKlGqFZsWe4yY6ppeaJjtU67XFt1vUsPQaQuWDBqBeL7rHGyhVsOhYgrTzr7rX8NyxFIf4wBGc9Cm5YMzNFNbh5muPhjFtoQgPE8bdGvREWC1Z+LmcAIyji/SbQi/QCEfLkC/+iLO+6/ls3w9r1fxEXq8XPxHtxeWQ9N5jPY/u1es0z0xe6WgAzg4eBxO1F5SXtDFZiBMJmnkcNgMwjjYwX5d9QYBI6t6e9wsqW9o6GIMATReEq65Iup0FjLl/i7U+dfVr+pVhCw==
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=7a76AHGZYSuUIqHiQo4GORXQ1f0RXxPTeh9W9edRD9M=;
 b=VCNhw21S8pOwjnocWtX+fPZPwhEfKqSas9MWxSZQU3Inf/rcM1yTmWiBUHvbchrB0a/kLOrAzsKaRhjDPvaOAE3iiKOnLBZ2/W3d9zk1ckgW3lOZJ6Br3b+8ZH4vcHcfD7DxtB5q0dB+O1xYF8clpY33mgcTKdbNej/Zs7BC/Zw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Michal Orzel <michal.orzel@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Michal Orzel <michal.orzel@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH] vgic-v3: Ignore writes to GICD_ISACTIVER{nE}..GICD_ISACTIVER{nE}N
Date: Tue, 25 Nov 2025 13:03:07 +0100
Message-ID: <20251125120308.65981-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: BN3PEPF0000B077:EE_|SN7PR12MB7180:EE_
X-MS-Office365-Filtering-Correlation-Id: 57fb716b-2f43-4661-4469-08de2c1a9c14
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?apQOIfWHCyTzJtwVRGYJHCBw9irlaFq12G75NazqTc50Jp6tqVj7KIsTyMLg?=
 =?us-ascii?Q?giSx2Humae7zpj2JG3wAQxKgGFYYzpllhyp/tTz7B8pWZV50be3FOhRsUihs?=
 =?us-ascii?Q?htkpc42GAc3noKpXsN060bgG+A87A9l65xRPbNfAiBRINzFISiJNc7kS2SDt?=
 =?us-ascii?Q?/YZzSw9TbYZ1AP4BKr1VVtoEFbVeQZ8uLO4Df4+09hp80Lu0ecUKR/k5fDVj?=
 =?us-ascii?Q?FZqF/Lu4eRh+dxkvZZaSuLPkIorSrZNufvsjjZ7tPNR7YYZJLQnYbNgPBktg?=
 =?us-ascii?Q?ijjHMXjuTP4Hbg6wCCRlLTADnAWiMsbBZTaIxljOFRz3BmCN/nM7S7BW3i0A?=
 =?us-ascii?Q?whqReXHtHpj1S4EoM3hpQ1U4rCL8W5KMSNhV2APWIcNEctCXJBrTsYvGco+m?=
 =?us-ascii?Q?vYaKx/b3pdj+uvEXvG4xx18QLZoJ6wl9DsgVeqCfB2b+7Cuc2NVBto1DweWP?=
 =?us-ascii?Q?QvfQTpVtyAqpMcvkCPlPcJ65SQZ9e6vR8ensTWIwcrQjV/S8bOcI4S7DGwAE?=
 =?us-ascii?Q?XFmHphoQyQyE3/MHgCwe5dVJQ9lfvp/e5jDaRZjHjahgobcDelDMWYL9dlNu?=
 =?us-ascii?Q?7tXKWh9+hl97unUIgA4a8NtdEkELZoUAYIjmoO3BG1Qh3EnXqndbjLwm+qmP?=
 =?us-ascii?Q?zV4TX4W3LoslKL0VvfQ4owcqbZIgjRVVBcIINc0m3MCCBYKOXTGqqGtkqVgN?=
 =?us-ascii?Q?OzJx4JDuCbdmp+rnheFpY8GNCWZ378/8ELxWzOaWfjC0bfL4w75+fDoa+OIE?=
 =?us-ascii?Q?9SoJGHydRxeqdL7fbPyz0W3vjTpAlsSH9By9hkEPhIVQ2rxKhqS3MW2D46h9?=
 =?us-ascii?Q?Rmye44kKpU7tdbaABQUqbMvhtwJ1iv9vM1gBx+/+qy5phwI9+j9ztqehIqAA?=
 =?us-ascii?Q?ggz9+DagRfXw7y1UtFvwvavs1BqrLmJMUcW4qkAzklt08oqb+nAlPgwrUNDU?=
 =?us-ascii?Q?YHLE5TAj9xHnEWuF9wT7HtHqsTUukX4sB0LYZHbhod8sPFRNB0+SgIYyM56v?=
 =?us-ascii?Q?b8SpUGus6J2+kNCUh/8L7dgUGsHpf0FcWHkeNpMglgnXlg0Y8aIIAeAexTz+?=
 =?us-ascii?Q?Cjn0gveGyGo4gZB8NbbKl59KMxSex6GTxIpU53W7kBkxXRLEp3bR5ZS9zS0z?=
 =?us-ascii?Q?FKv/jvvE6F8qPn1jwALLdXoHQ/MV4bBt3unz0qQZ3bA2bzRqFY5oAxVm+tAe?=
 =?us-ascii?Q?XbAVYDqSkhxH7fX2a+lCFE+0kWpOBjBDDiCCcEuFFOMiu62pYfYbRysp2bdp?=
 =?us-ascii?Q?s/pzu49R80u+EmUaHu0uCl49vcpFajrkboM/df/cZ1xV8QREdM5tqtfxo8mT?=
 =?us-ascii?Q?NUXG09CD9/UBBQiRVYl2b6ALQT5MeyK8S/Sl/3Td81FVuSrlROmEUmExgSFV?=
 =?us-ascii?Q?O7lKf3ulmCcpIbHuqTHvrEBpVhJzyyCUM78Fmi6upnX5ZQVVNeap52pKjPqP?=
 =?us-ascii?Q?bWXQrZyy3WERTnRAqcnsCmM/nPm9jBPEhx/f6nJ6u8SX5Zb0O7ip9T/zNZUL?=
 =?us-ascii?Q?M6YwKj7b+nF3Q48Elh5sCc4jalUpvMebKh+x01mpy9QUHP1h5nT+ZGzQRA?=
 =?us-ascii?Q?=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2025 12:03:13.2113
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 57fb716b-2f43-4661-4469-08de2c1a9c14
X-MS-Exchange-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: SN7PR12MB7180

Similar to other registers like ICPENDR and ICACTIVER, ignore the writes
instead of injecting fault into the guest and thus crashing it. This was
already the case for extended registers prior to introducing GICV3_ESPI.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
 xen/arch/arm/vgic-v3.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
index 8b1c8eef8024..33dfd13dccf1 100644
--- a/xen/arch/arm/vgic-v3.c
+++ b/xen/arch/arm/vgic-v3.c
@@ -887,7 +887,8 @@ static int __vgic_v3_distr_common_mmio_write(const char *name, struct vcpu *v,
             printk(XENLOG_G_ERR
                    "%pv: %s: unhandled word write %#"PRIregister" to ISACTIVER%dE\n",
                    v, name, r, reg - GICD_ISACTIVERnE);
-        return 0;
+
+        goto write_ignore;
 
     case VRANGE32(GICD_ICACTIVER, GICD_ICACTIVERN):
     case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 13:40:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 13:40:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171892.1496967 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNtH0-0002lJ-5p; Tue, 25 Nov 2025 13:40:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171892.1496967; Tue, 25 Nov 2025 13:40: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 1vNtH0-0002kr-2f; Tue, 25 Nov 2025 13:40:02 +0000
Received: by outflank-mailman (input) for mailman id 1171892;
 Tue, 25 Nov 2025 13:40: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=Ygd1=6B=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vNtGy-0002fq-TX
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 13:40:01 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3bf5f0f8-ca04-11f0-9d18-b5c5bf9af7f9;
 Tue, 25 Nov 2025 14:39:58 +0100 (CET)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-640a503fbe8so9771680a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 05:39:58 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64536443a9csm14940329a12.29.2025.11.25.05.39.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 05: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: 3bf5f0f8-ca04-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764077998; x=1764682798; 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=t9k46YKiR0yToOqPC8tJLWldUv3bkY2Nm4TLf+L1CEI=;
        b=fmCvhhKaaqdZshzEVm7K2rho4mJWNxrn9BMJle3jdGl7x7DiNG1B2sVkozP3QiKSUP
         3KQOStJrloQ+x6HU8Bs4sS0rEAFUxrRcgXAI2mJTSYNKmkav8Olap9IC9R5ZKiE2vy95
         oDx9HbNY2xbhCcnMXnzpj65DiOf+Es2rodr8lS3J1vZJQbjZaERIFa0/0Ba8cTeMIHSp
         DRKC92J6vfUfMo+8Qz7B23tXhvzQsAd98862N7D4rfJiW6rKl4Uyw212WqDRLxVTfDni
         D8B4CaqklX6Z70hkF5pIAzlGF9OJ9e+b8cLCcAmYBV0tu+qBKXcYPQ5+pXFzVjpfexp1
         pBwg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764077998; x=1764682798;
        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=t9k46YKiR0yToOqPC8tJLWldUv3bkY2Nm4TLf+L1CEI=;
        b=hNf3wXp2R5gqe/FA31m9e6rx5oi7rfdwqPjSWCzIRGOPEt8MO7H2B5uyzyl0vnvrS8
         23eiBQNU+SNkDWwIn5b/k5pVPRygrdBmsmUr6K192TXs8x/cC9+kguI76Ip0h2iIkMWY
         GXQJgsK9I7acBh1moQiwdsWSbDbzDfId/RRqpwYLkZnF4DQTgc5SqvGrasLkEVQzl2yM
         oh5UCROf6Bz6e1oMW90JSbOdxEuDrtC4pVoDsEADYGSMMDRoqA4d/PE98Aj8J4LLvso8
         rLcMoRfbb5tkTyprPnOgqCz4CipS/F6BRswYZ1N7k74fqSHz1LBI7nrhr1cMX6302bmF
         JPvQ==
X-Forwarded-Encrypted: i=1; AJvYcCUaXW+dCmpM8kgDbeWWmXN3BTwZIGgu8LiJJr6hChXYpWoM3AEUBaTpaEXXqjxTPzuptSOINSre5Dc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyPvoH3Y/xjZshW2BfNU0r612l1ck0v24flfQ5ErSd6/5UqQ9a2
	qWVgaGCnXudKDoIX8ShAzgJMMJkZ1vAjNGnrNslKoUc9aAU76/iW/cpJxyZVHbDkoJQ=
X-Gm-Gg: ASbGnctNxRT0Xdps4+KWzWk42fXX5NX2wzTJCLTQWBKFWYAFC3rpgnRbBMP1GEzHkI2
	k5wJgRgJf8TwO58iZEOQYtM4KGVFo3ZFCC9iBrAkHQJFeoVPftXjhQWnvuv7Hl0Gc6LsEtzdwjL
	2tBmF8DuAmrTIf1lKllwlF7hvSl6INlMBsrI82NNyxd3gQDOoW8AAk2U6GKWF3vs7zPe1wSuK2Z
	HPuVP3ZhP9swEDFPAinVKqHlYr0t1J6UMDCXPj4OMXb7wfI5NRjhxz6tMhnN+jO4AVcA/w4emly
	pz/TC1E1Sjs1+eUQJvRxL5yyWPaCa/AKxDB8FYxoWMDnPNeQW1jOANa12i4Edg360rO+muelc7O
	moUQLZWbsZLJknQkZVHRu/cYMzPyCZk35bChgbVP+vGPtj030XcwfaHTqnOkpzwAyMJBMYEwml2
	zGpBFaRiK4E6AHpsk4Gc+FlesyPFpdvlSOJS0RRcZIeUxD3aozWqg+yk6pn7J7OZvSbjoizruSZ
	AWfnkkuLXkcyFW76ghIiGjrLYnp2fLEGPBolZwaI7vA6tL97g==
X-Google-Smtp-Source: AGHT+IFEyicFSi+PL/7sV+Rr65T6PnnmK37s9BQnogitw6aYlavVnxgivz8dWx5vdwjWsip7TwnDGQ==
X-Received: by 2002:a05:6402:1d50:b0:640:cd2a:3cc1 with SMTP id 4fb4d7f45d1cf-645eaf9e5d6mr2598230a12.0.1764077997753;
        Tue, 25 Nov 2025 05:39:57 -0800 (PST)
Message-ID: <263d6867-bf94-40b5-87f8-96b40e797ebe@suse.com>
Date: Tue, 25 Nov 2025 14:39:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 12/12] x86/xen: use lazy_mmu_state when
 context-switching
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-13-kevin.brodsky@arm.com>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20251124132228.622678-13-kevin.brodsky@arm.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------aG2Ac2AfdT2tzwl0XdLF1SjN"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------aG2Ac2AfdT2tzwl0XdLF1SjN
Content-Type: multipart/mixed; boundary="------------uiRZ28tjJaLdZE5TT0DoL5p0";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, Alexander Gordeev <agordeev@linux.ibm.com>,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
Message-ID: <263d6867-bf94-40b5-87f8-96b40e797ebe@suse.com>
Subject: Re: [PATCH v5 12/12] x86/xen: use lazy_mmu_state when
 context-switching
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-13-kevin.brodsky@arm.com>
In-Reply-To: <20251124132228.622678-13-kevin.brodsky@arm.com>

--------------uiRZ28tjJaLdZE5TT0DoL5p0
Content-Type: multipart/mixed; boundary="------------yTa6J58m2WgehpiHUf7cxco6"

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

T24gMjQuMTEuMjUgMTQ6MjIsIEtldmluIEJyb2Rza3kgd3JvdGU6DQo+IFdlIGN1cnJlbnRs
eSBzZXQgYSBUSUYgZmxhZyB3aGVuIHNjaGVkdWxpbmcgb3V0IGEgdGFzayB0aGF0IGlzIGlu
DQo+IGxhenkgTU1VIG1vZGUsIGluIG9yZGVyIHRvIHJlc3RvcmUgaXQgd2hlbiB0aGUgdGFz
ayBpcyBzY2hlZHVsZWQNCj4gYWdhaW4uDQo+IA0KPiBUaGUgZ2VuZXJpYyBsYXp5X21tdSBs
YXllciBub3cgdHJhY2tzIHdoZXRoZXIgYSB0YXNrIGlzIGluIGxhenkgTU1VDQo+IG1vZGUg
aW4gdGFza19zdHJ1Y3Q6OmxhenlfbW11X3N0YXRlLiBXZSBjYW4gdGhlcmVmb3JlIGNoZWNr
IHRoYXQNCj4gc3RhdGUgd2hlbiBzd2l0Y2hpbmcgdG8gdGhlIG5ldyB0YXNrLCBpbnN0ZWFk
IG9mIHVzaW5nIGEgc2VwYXJhdGUNCj4gVElGIGZsYWcuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5
OiBLZXZpbiBCcm9kc2t5IDxrZXZpbi5icm9kc2t5QGFybS5jb20+DQoNClJldmlld2VkLWJ5
OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQoNCg0KSnVlcmdlbg0K
--------------yTa6J58m2WgehpiHUf7cxco6
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-----

--------------yTa6J58m2WgehpiHUf7cxco6--

--------------uiRZ28tjJaLdZE5TT0DoL5p0--

--------------aG2Ac2AfdT2tzwl0XdLF1SjN
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/Ey8FAmklsawFAwAAAAAACgkQsN6d1ii/Ey9M
5gf9EkkVr+UGKF/wariaJTMLeEayZP1qBy09TFMvwrlbuCyD1J20iKHWJ2c/xfac/xcQdvzxGK3Y
nMX8Dg+6nWgGk7tT/9p0s2dcvsYF2fnh4WI7yS6FTimnkkmwDCj9T7zl1nziZEYUlj7oSea1hRVz
v5iiijrTDLW6L4D3oVzmqLK1XGNpOTClCzJcn9gz45Pw5+8laVmiYBcktiYFOT/TcJvnIeHTH8Fx
P0/i23ndybO8Xtkp5yj+KAjX+75J2bEJOx79yOSaRu5z3yYhY2XBKE9tsxsVb7uoaIhxnhc2Z5ZH
ms+Hk03X+jeJhvbey+a5MrddNG95o9MtcKNcDmNH6g==
=ph6L
-----END PGP SIGNATURE-----

--------------aG2Ac2AfdT2tzwl0XdLF1SjN--


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 14:05:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 14:05:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171903.1496977 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNtf9-0006oR-UE; Tue, 25 Nov 2025 14:04:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171903.1496977; Tue, 25 Nov 2025 14:04: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 1vNtf9-0006oK-RW; Tue, 25 Nov 2025 14:04:59 +0000
Received: by outflank-mailman (input) for mailman id 1171903;
 Tue, 25 Nov 2025 14:04: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=LUk1=6B=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vNtf7-0006nl-Uq
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 14:04:58 +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 b09b5d0a-ca07-11f0-9d18-b5c5bf9af7f9;
 Tue, 25 Nov 2025 15:04:44 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by AM7PR03MB6353.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.17; Tue, 25 Nov
 2025 14:04:39 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9343.016; Tue, 25 Nov 2025
 14:04: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: b09b5d0a-ca07-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IgW83fepUBlq1G+3RmLIpanOKfoOmqxy1FsyTH5V0zqpBrqQJyy1pAZvRd+ddN57ISshfAtNWWbQAYZsdr6Ba8vQfeeJwGAL9DVb5vv37iHCduDwIhD5luVbHgm+K0EfLJ+xGMh9DKr7N7tptfU9JIKohyj0D1aJU2glm1X48oJYGE3iNTTCQ1INb/yVnqGMikfWUhiOwy7SCK0N82GlReV0Tg8gKZwsByzG3+B243OnDxY+g9pXy9xWDYFq8xR1XH111Gpjik72+AWOP9+0jjeUuVuw+05ku1KC7y77zmSQI9+15N4EV66XKtIpxAoqQLX2TZWZ6mOEowLmctsJRw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4DpVWvFeo/n6vljsL5MRr27/glgod4IDeOWroYQd028=;
 b=cdZtE3PlXY7j9nhdNsKwQpOJzlilXygEWPJcjQUno63IFhf0R9T38TpfAGAg4U0RbMhary+fStjBgIgweRI7M2gHzdr6AGbUA8ji36sTazBzuThgJ7yUM1L12/TeRuR7Bg34+BWTVoHIUL5LtO229C0guJhvrKJ1OhSvicuiSkZNsg9Rp3QKggqhgFs9NmNIoen4IVOznynXxORFL3xpnvNR6ALiK55Gm74O0DO+LV63C2chW/C3iJQO2vlB1N77t12lPIEOh85VTecoeenN+Loyhoga7Otct0KMSKiduce8BULBEj2p6yz1b+X2ANQt0PoObZwnxTqE1nPJAyhR2Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4DpVWvFeo/n6vljsL5MRr27/glgod4IDeOWroYQd028=;
 b=VAPzY0dglSPr+L+3ouQfdVt7CpZ5mF3wGYmjZ4VXNaz1V66LfBdlViqvucNfWLdn/glmL/rKEQqJ4V9/RYNgn5fpASTAMURbxInfhYeUnhaptz2w9h8F4eH7qMudcdRuu1bOA3ecwMGm6ren2qqCrCoicGMuuVrDABhDdsdwVPrIdDHZ7MDkZQoZMRtcpTUi/BetFfUhqjVcRDn92+RhlOc7Z6Vvc3WK/f1gXyZFujdiDbfule6zDV57zHSNyGftA/yM60MHRoX1FgQZmz8wCaSm0z+LER7HviV0rxfeVTh4Y45eLTCeQV190OFtC2Huw9GljSTj1z4w2UXGpOYPAQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <ed260928-8b86-42b0-812a-5390ac10fa12@epam.com>
Date: Tue, 25 Nov 2025 16:04:38 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 15/24] xen/domctl: wrap device-tree-subset
 iommu-related domctl op with CONFIG_MGMT_HYPERCALLS
To: Penny Zheng <Penny.Zheng@amd.com>, xen-devel@lists.xenproject.org
Cc: ray.huang@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>,
 Rahul Singh <rahul.singh@arm.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-16-Penny.Zheng@amd.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20251121105801.1251262-16-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR0P281CA0264.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:b5::19) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|AM7PR03MB6353:EE_
X-MS-Office365-Filtering-Correlation-Id: e620c370-a1dd-4a54-e453-08de2c2b92ef
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?MURkWWRwSko1V2JvTEltV1Rtek9YcUo1NE9GL2UrcnJNT2ZGQ0lRbkp0akYr?=
 =?utf-8?B?b0xGYlJvRmw5MTlFRGtRM2VhajlHbTcyMGZ1d1VTSTRPNjAzdmFEcko5U28y?=
 =?utf-8?B?U1ErV2VVaTlJSFc3bUFMMVNmL3NLd0pKUm42WDZibndOT2s1VkMzQWRHU0Ns?=
 =?utf-8?B?dmxZYVRodEVrNDNPa2tnUmh5K2NLWXZ0NW4wQ09heTBLTVZMZE9DWG9uNGlw?=
 =?utf-8?B?WmJybnduNm9vWVJ0ZTYyZDN1YjcrTHljUEVOUTd5TmRlU2Q0TVJUOWphM1NH?=
 =?utf-8?B?SWhGSUhyVTBWL0pTVHk3Y0Q1U0YrM3d4OGlqK3MzekJaQ3V5bC80S2FKaVNZ?=
 =?utf-8?B?alljVDZWd2s3Z1ErKzFOZU1LRzl0WkwxUlo3eVdDR3FLSG1RbXNrOTM4WWx0?=
 =?utf-8?B?OXpkUW5taFVEWUFPVEpyMkx3ZjZlQW8ydWwzVUpsaVg1Yjg0ekhGbUEzenZ4?=
 =?utf-8?B?QlRiYlZwQ2IyOHZEc1JNMFcwZkE1Vk53NlhCVndULzdRMUcxNFAyRFFPZG9S?=
 =?utf-8?B?K0h6VkRlckZXMVE1SzlLVk9tWXZaRFcxRk1iR3YxZUJ4VmxaWUtpVXhCZHNu?=
 =?utf-8?B?amd1ZHpKMFVUY0dJU2pEZlh3OG5sbFdRS1E5YnpMbGx4YiswdEhTU1FnVkdX?=
 =?utf-8?B?REQxOThia3RrN05XTnhBQ3cyREM3aEtlNGJiSmpEN2VLMUpWelYzMFEzQVFM?=
 =?utf-8?B?WDNzTkJ2Ti9yaEZUcUUzUlVMSEUyVU50aitUZy9aS0V4dTcvUkh0Q3RCVldo?=
 =?utf-8?B?dlB6Z0Z0QmdIK0w0OTVnVk1JUkcwaVhscVhDcXJwSlZKZFdNR2tjS09Qckt4?=
 =?utf-8?B?dHBBSWRDcGhlTFBqMmRWZzZ4TnllZ0hhcCt2Y092clRwSlpPYnhYV0xDZVpS?=
 =?utf-8?B?OGt2QXJrZVA0dEVYNHlDYndJRWhmTDErbXdSZXFnVFZTQ2tuREV5WElLUmNK?=
 =?utf-8?B?TW1tRWJsS09rUHQ2U3diR0YwbnB3Uno1TW8waERza29NWEpYbGt6ZXJEeit1?=
 =?utf-8?B?OC9UdUdwUmh3UWE0WDM3L1hjeGpvSitjSTNKNU1SK1dCYUdJbzFnOTZqN2ox?=
 =?utf-8?B?Y2kwZWMvWTA5NmR1U2tnaFBULzE1Q1ZYcWI3Z3VyRGtOUTd4Zkx2MDRWZklC?=
 =?utf-8?B?SmR4T2dDMFhHSUpWQXhzSzd0Mmk5MzJWUEZ2NjF6Y0FDYVJzeWV0RUZ1OEdS?=
 =?utf-8?B?SVBqR3VCa0drTUpaOExIR2hpYWtvRkZDM0hReE5hV0J5b2JJV2lkWVhaY084?=
 =?utf-8?B?OHFMek5UdTdpQkhQYlZnUjB1MnRrenZhWnVoai9pKzFvVzlGNnBySEtEdCsw?=
 =?utf-8?B?NjZWdE92dmluTGZmOWFvNmpHUnVsUkhEM3ptODUxK2RzU3hUQWYwZVhDSVQy?=
 =?utf-8?B?c2dUL3AyT1BFRGlyd0U5dmszWTliVGlBaHUyVUM5TXNjTWtkVnpTR1VHNkV0?=
 =?utf-8?B?SHRVcDdaY3JKZ253VUZlU0lGV1pPM0VhclZ4bHg3dS8vRWQ4UXZpMDJmSUdo?=
 =?utf-8?B?TThSN0tIcEFkeFVnMlk4YXBDUHJtcmFuWUZ2c1FyU2pxWThkVXlTWmpZclFR?=
 =?utf-8?B?czdZYmh6ZDBMcmhReERjc1dDdmZXZStiLzNvTG1KYWxwajFQaVZOOUM3bkR6?=
 =?utf-8?B?ZVRMTytvM1JoUW81d2owRHovOS9odXhWRVZFMEJVSkFjNmhXM0RESi9yOEpz?=
 =?utf-8?B?MU5pSDZmYm5tNC9QdjJkNzBaT3Z1ZFZOR3FESUxoMGQ2N2FncFQ1NGdGU1FY?=
 =?utf-8?B?T3djdGhMQmJiWG1MdWtMQ0UxM3Rsdm5hR1UwRTZqZ2I0MHdoNE9JeS9QWnRR?=
 =?utf-8?B?WTBhRGNDY0pCbCt6SGxMc2J0MGl5Mk1kc2hHSy83NDZMalgxQnJqSDlXSUlk?=
 =?utf-8?B?SGRiNTVpRDEyTHNVQVYvMDF4N2xBZXArSXVsWE9XR2k5emNPL3BMKzlNL20z?=
 =?utf-8?Q?p12xtqN5+75u3QA0UhtqvGJMS4DAcn7Z?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.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?LzBwK0RZNlI5YnhOZURKbithVzBXZXlMNFJIVEJsV0ZwMElRWG5kb1c1NDlO?=
 =?utf-8?B?VFIvUG5ET0pISUhzTUJLSkxsVU1HcHB1TjdHNXUrUTNsSjVnc3dIemZTcG1q?=
 =?utf-8?B?OURPczdXeDJvTGl6dStCYW81L1d5T09YNlZLZDMydU94b3ZnbXlUVHdIbUtY?=
 =?utf-8?B?NkFmTjZSYU9kdFpRZmZrWkxNZWw4a2tLMHNseURqRm9YQ0lsd3p6Z1NHR3pw?=
 =?utf-8?B?K1VBdVlSZWZwb2pKTWQ5TUNWQUdvR3NKSlZjenJ4LzB1V2NUbEdUWlU5RkVL?=
 =?utf-8?B?SDdDS3JSeC9RaGEwL2RXRFczUUxNOFBFSkxkTjlRWDlDd2FEQlVnM04zSDll?=
 =?utf-8?B?NkZSUllicmFaaHA2ZHpIMncwV1FrNkdmN3RGMjd4V00yZk43K0hrQU5XN0Yz?=
 =?utf-8?B?SzAwa255VEdlSWxGNkNpYVZLS1ltSFR5Q3g2YWpkQjlNWDdxS3hac09XTVVQ?=
 =?utf-8?B?NXVOR0lRa09oTDRVR1JpZW54VXdZZU5BSkJxN2FzSmZicFZlRDQ0a2tIOEpO?=
 =?utf-8?B?U0loRS9udUtRMDJvS0orVTNydk9rWnAzUEJuTk1BV2ZxU0U5ZHNwcEIrOHpR?=
 =?utf-8?B?VXdIYVFHak04YUxlaVhzOGd0Wnc0eXJ3ZWtOTHhFemM0SHBabTRaTXdpa09Q?=
 =?utf-8?B?bGVCT2lwK0hiSGRYNEIxb3hUQnVjenhmV2h1cEtRbTZqV01CTjdwRGkyTDRn?=
 =?utf-8?B?b0pUNmR5cDB0cTJsTWFVUlFYZlRqWXdkeS8yMC9QYXBTRnlRYkJ6UjhxbUsw?=
 =?utf-8?B?ZTVtZWpXU3l3TkRseEZQMVRmT2UzaXVMOFFlSnBJalVzbzVPOWFRN0JTOS9K?=
 =?utf-8?B?MDd0bVFFbzcwNW0wNC9tYUVwQjlDb09zUEVqb0dmVUpFblIvUTVzcEN4M0xa?=
 =?utf-8?B?Tk9oQm9EZndwelJnbnN3elpCUVJycUlMRGFRaFBEOVRYOFBpNWluSWlTYW9N?=
 =?utf-8?B?ek5XWDM4bVBqVVpMK0ZNM2pEQmVVczNSQXJJdFo2TmpHRUI5Q1FhekJ1bWdX?=
 =?utf-8?B?RnlSczl1WndOOW91QUZwQ1dINERtYmdUamxEOEJuV09qcmxIT0M0cU5OQktB?=
 =?utf-8?B?UWVnUi8vTm1iRVhMa3FHanJpNFVHYXpzdUQ3TEk2Tm10emZFOHUrRkRDc3VP?=
 =?utf-8?B?K3UvekhrejdONXpBU0Nob3VIR3BrSVFORVRYRFBOQUNIdkEyKzN6cUhlWWha?=
 =?utf-8?B?WUUyT1FlaDNhOWlSSVZZZ1NtdE5tT0trZjNVKzY1eTBwSWdSaEFIRmxIRDNM?=
 =?utf-8?B?RXpsY0JQeERtcXptV3Zza1lXRVhlUnI0QXYwaERRTjQ3WUNhb09MV3lYb0U4?=
 =?utf-8?B?cSt1TXpYbXBkMnhYN1lSRzNVYm01VGFodEhPT0VXSFhqcXhaQy91MHBYSzQz?=
 =?utf-8?B?NW81S3RyazB5QmFUOWV4Ukp5WUlyaG54bStBb1lOcHhnWUNoclczYnF6aExv?=
 =?utf-8?B?QTZHNkc3c1ZDbU5PNFhuOCs1Nzk0cFlrV29NNFRkdVdCSW4waGFXeWJLc2pv?=
 =?utf-8?B?UlM0VnB1UFpJL3NmRDExM1FieVMydFBYRFpURGtQeGVpanlSRXhZTE1pTWdP?=
 =?utf-8?B?Ky9LZHgyenlKRmE2ZHZFaDFhQUwzQXZzT0FqQ0M2VmZac0o5Z1JyaWVRTGF5?=
 =?utf-8?B?eDA0RERXeXpFUXhYWGZ1ZnJwaSs4QS9WTElNcnhKdXdPdUZyNE5wV2tMVFph?=
 =?utf-8?B?THgzUjVNMk5DajFOc2p3TkIxRjExWHhHeUpoaGlsOStUOEpsYXhsVy9sSGJ0?=
 =?utf-8?B?R2dNc3lJNy81cTE0dkxxRmZ4Mk9xQ0c3dXBheHZIbEE2V2IvclVYQXJoQjN6?=
 =?utf-8?B?Mmd2eFdGT3VvT0FIZDFBaG1vOENvSGdzQzVBaHRSeUVQeXppUml0S1Zkc0h0?=
 =?utf-8?B?aVdjN2FJUW1pKzEyWHVtMUZQQWQ2SFcyam1VM1c0azh4SlBHVG82VGs1MmN1?=
 =?utf-8?B?bGpHNVplTlZzRzE4SUtDV0RnUGw1amVHRCs1T2dvdWFOck91Zm1QTk5LZy83?=
 =?utf-8?B?VGV3Y3N6b1RydkZsUXJBcnhKTDFkNHFPeFlUTks2amlJZ2dHQW1ub3k2V0x2?=
 =?utf-8?B?a2hIOStISktEMDF1aGF0UjY0MFhWbmV6REFyVnl6YmtvNnN6TDB5SVBKMEhH?=
 =?utf-8?B?SmFPQTduNll6a1Z0YnRFMmdyQktWVVp1VjNDcG9Qd2djbjZUUmRkTEExY2J3?=
 =?utf-8?B?UlE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e620c370-a1dd-4a54-e453-08de2c2b92ef
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2025 14:04:39.4935
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: rohmggL4dihS+u1b4xGO/bb4Kpz+4oK7er+g2jnRmyYVTwdJWUhEJqkCNB7F+cUNmk5doxdumqSbbe6BcZYwV6aU4vTDoRa1ij5XMq2vW/g=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR03MB6353

Hi Penny,

On 21.11.25 12:57, Penny Zheng wrote:
> Function iommu_do_dt_domctl() is the main entry for all device-tree-subset
> iommu-related 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:
> - make PCI_PASSTHROUGH depend on MGMT_HYPERCALLS
> - iommu_do_dt_domctl
>    - xsm_assign_dtdevice
>    - xsm_deassign_dtdevice
>    - iommu_deassign_dt_device
>      - arm_smmu_reassign_dev
>        - arm_smmu_deassign_dev
>          - arm_smmu_detach_dev
>            - arm_smmu_domain_remove_master
>      - ipmmu_reassign_device
>        - ipmmu_deassign_device
>          - ipmmu_detach_device
>    - iommu_remove_dt_device
>      - iommu_dt_device_is_assigned_locked
>    - dt_find_node_by_gpath
> Otherwise all the functions will become unreachable when MGMT_HYPERCALLS=n,
> and hence violating Misra rule 2.1
> Move codes closer to avoid scattering #ifdef
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> ---
> v3 -> v4
> - split into PCI related subset and DT subset
> - Move codes closer to avoid scattering #ifdef
> ---
>   xen/arch/arm/Kconfig                     |   2 +-
>   xen/common/device-tree/device-tree.c     |   2 +
>   xen/drivers/passthrough/arm/ipmmu-vmsa.c |  26 +++---
>   xen/drivers/passthrough/arm/smmu-v3.c    |   4 +
>   xen/drivers/passthrough/arm/smmu.c       |  55 ++++++------
>   xen/drivers/passthrough/device_tree.c    | 108 ++++++++++++-----------
>   xen/include/xsm/dummy.h                  |   6 +-
>   xen/include/xsm/xsm.h                    |  12 +--
>   xen/xsm/dummy.c                          |   6 +-
>   xen/xsm/flask/hooks.c                    |  12 +--
>   10 files changed, 126 insertions(+), 107 deletions(-)
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index cf6af68299..5a5d7810c8 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -270,7 +270,7 @@ source "arch/arm/firmware/Kconfig"
>   
>   config PCI_PASSTHROUGH
>   	bool "PCI passthrough" if EXPERT
> -	depends on ARM_64 && HAS_PASSTHROUGH
> +	depends on ARM_64 && HAS_PASSTHROUGH && MGMT_HYPERCALLS
>   	help
>   	  This option enables PCI device passthrough
>   
> diff --git a/xen/common/device-tree/device-tree.c b/xen/common/device-tree/device-tree.c
> index 0b5375f151..70bd8e7da5 100644
> --- a/xen/common/device-tree/device-tree.c
> +++ b/xen/common/device-tree/device-tree.c
> @@ -371,6 +371,7 @@ struct dt_device_node *dt_find_node_by_path_from(struct dt_device_node *from,
>       return np;
>   }
>   
> +#ifdef CONFIG_MGMT_HYPERCALLS
>   int dt_find_node_by_gpath(XEN_GUEST_HANDLE(char) u_path, uint32_t u_plen,
>                             struct dt_device_node **node)
>   {
> @@ -386,6 +387,7 @@ int dt_find_node_by_gpath(XEN_GUEST_HANDLE(char) u_path, uint32_t u_plen,
>   
>       return (*node == NULL) ? -ESRCH : 0;
>   }
> +#endif /* CONFIG_MGMT_HYPERCALLS */

The common/device-tree/device-tree.c contains generic unflatten DT helpers API,
while dt_find_node_by_gpath() is specific for domctl (iommu) processing.

Therefore I'd like to propose to move this function into drivers\passthrough\device_tree.c
as it is used only there now.

>   
>   struct dt_device_node *dt_find_node_by_alias(const char *alias)
>   {

[...]

> diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
> index bf153227db..22def57b03 100644
> --- a/xen/drivers/passthrough/arm/smmu-v3.c
> +++ b/xen/drivers/passthrough/arm/smmu-v3.c
> @@ -2759,6 +2759,7 @@ out:
>   	return ret;
>   }

There is not wrapped arm_smmu_deassign_dev() at the beginning of the file which causes
ARM64 build failure:

drivers/passthrough/arm/smmu-v3.c:1474:12: error: 'arm_smmu_deassign_dev' declared 'static' but never defined [-Werror=unused-function]
  1474 | static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn,


>   
> +#ifdef CONFIG_MGMT_HYPERCALLS
>   static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn, struct device *dev)
>   {
>   	struct iommu_domain *io_domain = arm_smmu_get_domain(d, dev);
> @@ -2826,6 +2827,7 @@ static int arm_smmu_reassign_dev(struct domain *s, struct domain *t,
>   
>   	return 0;
>   }
> +#endif /* CONFIG_MGMT_HYPERCALLS */
>   
>   static int arm_smmu_iommu_xen_domain_init(struct domain *d)
>   {
> @@ -2862,7 +2864,9 @@ static const struct iommu_ops arm_smmu_iommu_ops = {
>   	.teardown		= arm_smmu_iommu_xen_domain_teardown,
>   	.iotlb_flush		= arm_smmu_iotlb_flush,
>   	.assign_device		= arm_smmu_assign_dev,
> +#ifdef CONFIG_MGMT_HYPERCALLS
>   	.reassign_device	= arm_smmu_reassign_dev,
> +#endif
>   	.map_page		= arm_iommu_map_page,
>   	.unmap_page		= arm_iommu_unmap_page,
>   	.dt_xlate		= arm_smmu_dt_xlate,
> diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/arm/smmu.c
> index 22d306d0cb..a75ec08633 100644

[...]

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 14:12:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 14:12:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171917.1496987 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNtmh-00008a-P8; Tue, 25 Nov 2025 14:12:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171917.1496987; Tue, 25 Nov 2025 14:12:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNtmh-00008S-MB; Tue, 25 Nov 2025 14:12:47 +0000
Received: by outflank-mailman (input) for mailman id 1171917;
 Tue, 25 Nov 2025 14:12: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=x8HM=6B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNtmg-00008K-Dq
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 14:12: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 cff7db36-ca08-11f0-9d18-b5c5bf9af7f9;
 Tue, 25 Nov 2025 15:12:44 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4779adb38d3so39731025e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 06:12: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-477bf1f365fsm255424545e9.8.2025.11.25.06.12.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 06:12: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: cff7db36-ca08-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764079964; x=1764684764; 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=xh/niM3OpC+qIVn54tgVX8y4LU57fhsh8qsHr2vpjQ0=;
        b=ak18m7UFiMRecEdycgRV6JNSguX33eBEpKaNhCg1ClehD93BskEQUqIBScxQZm3JgB
         /vFibXjselvrfwt5H5+Kg9TvxlsG5tXaBObxiYzIxSx9wmO30aySh3btHy4Ao8TlIE5t
         F61xApfplK0QO56TXOZX37OJElInSSFieZgTw2dMpls+qyG+eKy3Hir7E+HMHud7PHXm
         aMLXo0xMAMgq6EtAW+igcLRWvYUSB91XwUEPR6jB2nMHTjXxYSa40j/f4eDWMFujxd+Q
         mYTOTjkrjO7JO1ztdxJymsXwuGuxvqKpWEYLEkFjN9tSm42/kL2ULkWxWTejaS0KFIob
         V0Zw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764079964; x=1764684764;
        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=xh/niM3OpC+qIVn54tgVX8y4LU57fhsh8qsHr2vpjQ0=;
        b=LnI169e2jUSFpa2pLvqbWBgVPzgX3YUA+W/lB+LuSLxcBKO/2Za1ypsyeGwYxsCF9G
         MCSje66jJywy2DZteQyXernCT22gAmlqN73BmLILMXoDsCMf7V9mrjoVdqkt4QHRS5qT
         ICkSoP1tYk4kImkV2FUk5d+64+LN5r4sEPAg3kbznjR2wcGmsAeSuejaJxRVw2BpzaCS
         SCEOIP/3AqadQDmw/9nwwGlG9hfv84NmBQ3z5fDscKaJnsZiq7Skue/LVUcl0+D0nBEI
         bxTABo+keyYtWDhWowaaLxMz3cRpwp2IMdDbpAuWJsy+fBQSttnFR3NOaTc+vuqIHuMq
         CzSA==
X-Gm-Message-State: AOJu0Yyh/loM34ecI4LVRatAHvzTeBdAfGji4cvZ2yFxH7KdVDT0npLq
	oTvrvmbJv+O/lo7V8KrV1/FyjEmxsQFKr/3itszfhHhSizuZ55JqnVyDFToJzv9mpSeq7CBkWUN
	pLPs=
X-Gm-Gg: ASbGncv6U04HAtje7Cu8x1g4sD9xf6zqzs3/uI1nhDpd7a1KVTR9yc8JXMyRn5q45jU
	AapSXyuPDsgKvj8zCPVgL7zDNCfLG7xVkFTAJelfa8UhOBV76TAcyWdYAk4sGpIsfLRV22LcqVw
	1Syzudx5+0S6rEvjG9/w2fH2xTv8fR/eo/pnACt1SyZCVAbeGhv0EU8GaI8usApg5CQmMX1F78C
	tWiML/BbGSXMT6hwcHEdpyqTbmoabm2CwHq39aaFbwP4zKRzQxM8hUbbpe9PWGHhj6gMBidHoIx
	XxxDwCDCgjidKSYCmP3yQTDXGOBYq+uK47hdhlNP6SReIfiBqPC3ip2IeddyGoT09lkPinkSJFD
	QtvBZJaIxZvoekYBPdiOW3kjbmfQkuSWhlU6JpC/Dig+tVtU4mZTiMFjxJVDG883uogO30MrAl8
	ze3zdPrX6r2TcMz5EMrfbTsVorx9/oBMvPLscCtovjVK4xRpnYKV8p2NwHOeJM
X-Google-Smtp-Source: AGHT+IG++oexZTM5NJrxQ9lfhZQU3z6UxM8yTxWdLlGKb9M3jGdsv8/JcZ6rDbhcBOrf804vE3oxtw==
X-Received: by 2002:a05:600c:4443:b0:46e:53cb:9e7f with SMTP id 5b1f17b1804b1-47904b103e2mr29718195e9.18.1764079964199;
        Tue, 25 Nov 2025 06:12:44 -0800 (PST)
Message-ID: <2d7602ce-3665-4853-85f0-c0201642193f@suse.com>
Date: Tue, 25 Nov 2025 15:12:42 +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 0/2] symbols/x86: avoid symbols-dummy
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

For the time being these two patches go on top of the previously submitted
"symbols: check table sizes don't change between linking passes 2 and 3".
Presumably what is done here addresses on of the RFC remarks there, so the
order may need switching around anyway.

1: re-number intermediate files
2: don't use symbols-dummy

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 14:13:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 14:13:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171925.1496997 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNtnQ-0000dp-0e; Tue, 25 Nov 2025 14:13:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171925.1496997; Tue, 25 Nov 2025 14:13:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNtnP-0000di-Tc; Tue, 25 Nov 2025 14:13:31 +0000
Received: by outflank-mailman (input) for mailman id 1171925;
 Tue, 25 Nov 2025 14:13: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=x8HM=6B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNtnP-00008K-Ba
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 14:13:31 +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 eb7944b5-ca08-11f0-9d18-b5c5bf9af7f9;
 Tue, 25 Nov 2025 15:13:30 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-477632b0621so37445395e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 06:13: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-477bf1e86b3sm306281585e9.6.2025.11.25.06.13.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 06: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: eb7944b5-ca08-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764080010; x=1764684810; 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=KaNyNHzJbdQlT5eiTr8Q0+pvIzJSFiMY8lV+MwLukWQ=;
        b=dIaWOtVbM02jQ5R3kgnRx+5Ta2PdgHbXqlNOJDguEykaBo7LBtOKvHQZvDlP64yNIq
         o8wbYuX0pKcCYljinzrG0PkhqXn8U1Lyi7/cUwEmrEzkuFuGxVDBE0hSjlF4MlKyeAml
         izAmkFT0l75AtPp/f0BakImt4u9Eui+dCb0/ABXCPblgL03TiRFczjZqLn3SmEZpyB2t
         V/8r+VdOn/n7Tb378nKNYd5KbIsBulPnqHviQkT5pc7wWKpI6EX4PNflXaeIOA6ZkwQL
         MFL6AS29ioE3Irfpr0ae/eYSOFcXMP2CNxRYBOLeRGZoRoF5fOwcvs+DsvjlgS3GMwrn
         uolg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764080010; x=1764684810;
        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=KaNyNHzJbdQlT5eiTr8Q0+pvIzJSFiMY8lV+MwLukWQ=;
        b=gWMKmVRomCVaVjL9KqEXwQjGc3lgAEhHJeTTQ3yWTG/bnS8PWlxzmcSGvZ5OlKyEnS
         QZQHmo0dP0inlmQNni9yMgIblZwkYD28YR8BQCd2PTrTTswEbRqtarEQWdBVDkdhex3h
         Bey8Uum6ALHt/RKHPWeu/4+zpsu81C7YzepqZR/vd2f8jt0pu+QTKUI7mlF7+sxrja4q
         D3tyve0gOADqJ+gyVmHLNpb7l43DZpR4IWzoveGoleW7PlPO+coas0TCHICOhTYmsSg3
         baogRSDPq9ottWsixbPlY4nI08N1cEOUmNWF4u77YUX7cXNUiF71yBkLI7OgKUXeniYs
         4Xlg==
X-Gm-Message-State: AOJu0YwSQOGlBWAo1ld2FPQ4Fh09cFqsAEAq8Q8AhpFvtJdwewYa6pTE
	LNeolxHQZ/26jy0UlIQjUMO3b9iv051RX0ln4EpcaS9Pt/MuRUqczpoDkpQHkpF7AabtWpOR1NE
	FKlY=
X-Gm-Gg: ASbGncv72UrRKg6lHfn3QE6kI69gbcdzupo2GhxeepQMw9Cu8pbAdM7mBYosfZb64Sq
	OF/WIpTrr2x9sA9dkM5Q0TIgB6wX3yYwg9Xt1mr/hY7pyn2TUUHXDDg9JmGWR1pbHbEc//5qTmr
	d0BagLbM65wL9yPyt4tXznQQXy5paolw314pywddTtJTiKqbXt4r3aH3OYOp+97Fo4JacELA3Ss
	8oAY0B044Alw6xvb+/Tyh9ALA2ProLHKMQXsCn5jhZVkdXPXcn5zair/HN4ZzEw98puBYN4OVmF
	MhyA/Ex2FXHOWwDZsAyjxlqgkz8xNBWsKESQD5rXcF0xwJ904/toNEjx/Y4p5S7afMS+of3pevH
	Jn/VtneF9qiQmox2xUQfH/jOy91/XolpDl0w8cI+Bm9xF6xrGqACFy/gI8k343+O+iKBxz2Bi7Q
	pm4PRxqVD32EWzbWyK+lTxxa9NXX5jMe5VcnH9AK1s/qWVKEwAP4YANHMUAnHDQelocTx/Pv+ts
	JI=
X-Google-Smtp-Source: AGHT+IFoZdPb7TP4DB4G2FkDHZxZpjzjMzzNpqNuDG6TjxNS4QVLO4p28reDDBx8pxp0ediFe/S3UA==
X-Received: by 2002:a05:600c:1f0f:b0:46e:37fe:f0e6 with SMTP id 5b1f17b1804b1-477c1131db6mr162958465e9.30.1764080010293;
        Tue, 25 Nov 2025 06:13:30 -0800 (PST)
Message-ID: <8d6642b9-18ec-4fb9-8e21-96d6efdbe6f4@suse.com>
Date: Tue, 25 Nov 2025 15:13:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 1/2] symbols/x86: re-number intermediate files
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <2d7602ce-3665-4853-85f0-c0201642193f@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: <2d7602ce-3665-4853-85f0-c0201642193f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

In preparation to do away with symbols-dummy, re-number the file assembly
and object files used, for the numbers to match the next passes real
output. This is to make 0 available to use for what now is handled by
symbols-dummy. (Mirror the numbering to the intermediate reloc files for
xen.efi, just to avoid confusion.)

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Will want mirroring to other arch-es if the other patch is to be mirrored.

--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -138,17 +138,17 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
 	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
-		> $(dot-target).0.S
-	$(MAKE) $(build)=$(@D) $(dot-target).0.o
+		> $(dot-target).1.S
+	$(MAKE) $(build)=$(@D) $(dot-target).1.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
-	    $(dot-target).0.o -o $(dot-target).1
+	    $(dot-target).1.o -o $(dot-target).1
 	$(NM) -pa --format=sysv $(dot-target).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort $(syms-warn-dup-y) \
-		> $(dot-target).1.S
-	$(MAKE) $(build)=$(@D) $(dot-target).1.o
-	$(call compare-symbol-tables, $(dot-target).0.o, $(dot-target).1.o)
+		> $(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) \
-	    $(orphan-handling-y) $(dot-target).1.o -o $@
+	    $(orphan-handling-y) $(dot-target).2.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map
@@ -212,25 +212,25 @@ endif
 	                $(objtree)/common/symbols-dummy.o $(note_file_option) \
 	                -o $(dot-target).$(base).0 &&) :
 	$(MKRELOC) $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(dot-target).$(base).0) \
-		> $(dot-target).0r.S
+		> $(dot-target).1r.S
 	$(NM) -pa --format=sysv $(dot-target).$(VIRT_BASE).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
-		> $(dot-target).0s.S
-	$(MAKE) $(build)=$(@D) .$(@F).0r.o .$(@F).0s.o
+		> $(dot-target).1s.S
+	$(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
 	$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
 	          $(LD) $(call EFI_LDFLAGS,$(base)) -T $(obj)/efi.lds $< \
-	                $(dot-target).0r.o $(dot-target).0s.o $(note_file_option) \
+	                $(dot-target).1r.o $(dot-target).1s.o $(note_file_option) \
 	                -o $(dot-target).$(base).1 &&) :
 	$(MKRELOC) $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(dot-target).$(base).1) \
-		> $(dot-target).1r.S
+		> $(dot-target).2r.S
 	$(NM) -pa --format=sysv $(dot-target).$(VIRT_BASE).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
-		> $(dot-target).1s.S
-	$(MAKE) $(build)=$(@D) .$(@F).1r.o .$(@F).1s.o
-	$(call compare-symbol-tables, $(dot-target).0r.o, $(dot-target).1r.o)
-	$(call compare-symbol-tables, $(dot-target).0s.o, $(dot-target).1s.o)
+		> $(dot-target).2s.S
+	$(MAKE) $(build)=$(@D) .$(@F).2r.o .$(@F).2s.o
+	$(call compare-symbol-tables, $(dot-target).1r.o, $(dot-target).2r.o)
+	$(call compare-symbol-tables, $(dot-target).1s.o, $(dot-target).2s.o)
 	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
-	      $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling-y) \
+	      $(dot-target).2r.o $(dot-target).2s.o $(orphan-handling-y) \
 	      $(note_file_option) -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 14:14:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 14:14:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171933.1497007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNtoO-00018t-8l; Tue, 25 Nov 2025 14:14:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171933.1497007; Tue, 25 Nov 2025 14:14: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 1vNtoO-00018m-5n; Tue, 25 Nov 2025 14:14:32 +0000
Received: by outflank-mailman (input) for mailman id 1171933;
 Tue, 25 Nov 2025 14:14: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=x8HM=6B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNtoN-00018c-41
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 14:14:31 +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 0eb729e0-ca09-11f0-9d18-b5c5bf9af7f9;
 Tue, 25 Nov 2025 15:14:30 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-47789cd2083so33424915e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 06:14: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-479052ec685sm17007945e9.6.2025.11.25.06.14.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 06:14: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: 0eb729e0-ca09-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764080069; x=1764684869; 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=C2rTa881RuqBzXRcUsUHqbJiTkrkWVDMZxwb4K2Ntts=;
        b=cwPtxje5pa+oGVYudL8HWR6BG8qLSIP9cdyy1jDWKbW2BTblqIiIownph92b0iWe09
         ebxfECiIkvYx5EjMXAR6bZdqz01P+RXT6ebPK0aj+VqofJIThBvoFVL4Rlhq1sQljg5Z
         l5XZ84czUFW+ridQ3Si7ysgFojizoAiTvezVIB/Uu8xOp2jb8Z/pHxQw3C0SjZBMy0+v
         bWADnsCZXrGsTBzNnvFKHoHDkSsaPDmWGkqmRlaD6Q+Z4hwoPWHtQR2Ik+38vHxciSz1
         tbX80Kzr+3PV0ZZ4IjOWeLMowyC2h+uM8+5+p/yLDo3Ayj60JFyBJJ4h0X7wpjcu6K8s
         JhOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764080069; x=1764684869;
        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=C2rTa881RuqBzXRcUsUHqbJiTkrkWVDMZxwb4K2Ntts=;
        b=nSuDPjOhEYDFAfSt3Zkk5W9u3cdtSfRyEyAJbaAlZSSEApeaBorcN2GY3igo1O7PX5
         6yfCBICE3zsksbrY9LVXrya5FQFY+EKPVg7oyDrRpCVdhKgLgYPuY/p5KomJgzPIMeOU
         5B0bXm1aWiLwq0xTleMLTAuNBhS3ogNuHlaEdJwk97CFbgNc+bZEOpAcTWIIeoxPPZaF
         u5y7mJl4FL+qk14xQVjeb3WtvnCAARS0NIZYNmtVtK3zl6YPwgc/52MA8npD6Z1uW7Hl
         6RyY+Jhb4QtUCfFIAZz2SX57HpLRlAP5hrgnQsZpr1IxEPJQTGkAU+uBy95IDmA+kvcL
         NGMg==
X-Gm-Message-State: AOJu0YzI9oZI4jCm3m/rHA3PcNW+zNyQ5T5YKck39PGbRgu6r8Q6zZBq
	zF+/VGOkXB4C3/en+TslclUQvWpcOmS1846w9gxjgaaX0rAfueSZNnrMpnbt+IrfGnKMDbfZQN1
	biwg=
X-Gm-Gg: ASbGncuiyH8qhtUKHwQUtPUFAAl9GvV65XctMTAcf5PbiJyuYPtXTFZhE9t6kCtdY+8
	8+SFOuhC43/La6jh+nsstGNwjZF8VLkjBMszzs9xPf3k0HXlwe2Ock3ngMCPCZ7uVIjBlDtTkpm
	wx9pxqGDbRoOFU1nFF65UdytwGPUWkaxYrbSV1NF2QWDlqm9EKGzZE1qTtX03RKlkjKgSXO0k2n
	4UEGMqSyAzEW8tQjokPGMkzpiQVeVlE09AwvOc9GiY6KKGvEKm1F4bQwqRFxAcHyvqm0/24s6sE
	pjFdmgIUYV62Jmv2ZPfT8C6SV1gZhQEqx3ovaMQ/AehDkhmuNNO2H2RZZPohnfVIQBe3rNv6uEV
	7lzXHJz04/wTdr06xjauCrMQmMBGVKnU+kZqHffydkgh5difeSQsDyCwv+HIgh3SjBlT/57jXOH
	ecEYxvFiSJ1Cy8P/mw5BK62SBOXKcU3KlMlw1w5+lqeezL+nD8QzzHEY18rOHE9sKicf8b7KhDH
	im4mloGFQ+ggA==
X-Google-Smtp-Source: AGHT+IFMFDWVGoS3SIevGkCpjlxtj6FPmIJ18FsU67YjyjEbWa3ncUJHAu6NhdlzqQrD50WtI5MClA==
X-Received: by 2002:a05:600c:19ce:b0:46e:48fd:a1a9 with SMTP id 5b1f17b1804b1-477c115dfaamr138449205e9.33.1764080069411;
        Tue, 25 Nov 2025 06:14:29 -0800 (PST)
Message-ID: <3618c458-d9ec-4cc6-a800-0741ade461a1@suse.com>
Date: Tue, 25 Nov 2025 15:14:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/2] symbols/x86: don't use symbols-dummy
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <2d7602ce-3665-4853-85f0-c0201642193f@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: <2d7602ce-3665-4853-85f0-c0201642193f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In particular when linking with lld, which converts hidden symbols to
local ones, the ELF symbol table can change in unhelpful ways between the
first two linking passes, resulting in the .rodata contributions to change
between the 2nd and 3rd pass. That, however, renders our embedded symbol
table pretty much unusable; the recently introduced self-test may then
also fail. (Another difference between compiling a C file and assembling
the generated ones is that - with -fdata-sections in use - the .rodata
contributions move between passes 1 and 2, when we'd prefer them not to.)

Make tools/symbols capable of producing an "empty" assembly file, such
that unwanted differences between passes 1 and 2 go away when then using
the corresponding objects in place of common/symbols-dummy.o.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reported-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
May want mirroring to other arch-es.

--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -134,8 +134,10 @@ $(TARGET): $(TARGET)-syms $(efi-y) $(obj
 CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI
 
 $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
+	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0.S
+	$(MAKE) $(build)=$(@D) $(dot-target).0.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
-	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
+	      $(dot-target).0.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).1.S
@@ -207,9 +209,11 @@ $(TARGET).efi: $(objtree)/prelink.o $(no
 ifeq ($(CONFIG_DEBUG_INFO),y)
 	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),echo,:) "Will strip debug info from $(@F)"
 endif
+	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0s.S
+	$(MAKE) $(build)=$(@D) .$(@F).0s.o
 	$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
 	          $(LD) $(call EFI_LDFLAGS,$(base)) -T $(obj)/efi.lds $< $(relocs-dummy) \
-	                $(objtree)/common/symbols-dummy.o $(note_file_option) \
+	                $(dot-target).0s.o $(note_file_option) \
 	                -o $(dot-target).$(base).0 &&) :
 	$(MKRELOC) $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(dot-target).$(base).0) \
 		> $(dot-target).1r.S
--- a/xen/tools/symbols.c
+++ b/xen/tools/symbols.c
@@ -672,7 +672,10 @@ int main(int argc, char **argv)
 				warn_dup = true;
 			else if (strcmp(argv[i], "--error-dup") == 0)
 				warn_dup = error_dup = true;
-			else if (strcmp(argv[i], "--xensyms") == 0)
+			else if (strcmp(argv[i], "--empty") == 0) {
+				write_src();
+				return 0;
+			} else if (strcmp(argv[i], "--xensyms") == 0)
 				map_only = true;
 			else
 				usage();



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 14:42:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 14:42:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171950.1497029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNuFK-0005f0-GM; Tue, 25 Nov 2025 14:42:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171950.1497029; Tue, 25 Nov 2025 14: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 1vNuFK-0005et-DU; Tue, 25 Nov 2025 14:42:22 +0000
Received: by outflank-mailman (input) for mailman id 1171950;
 Tue, 25 Nov 2025 14:40:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Vm50=6B=microchip.com=Ludovic.Desroches@srs-se1.protection.inumbo.net>)
 id 1vNuD7-0005EO-36
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 14:40:05 +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 9f8f27bf-ca0c-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 15:40:02 +0100 (CET)
Received: from IA0PR11MB7257.namprd11.prod.outlook.com (2603:10b6:208:43e::21)
 by CH3PR11MB7371.namprd11.prod.outlook.com (2603:10b6:610:151::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.11; Tue, 25 Nov
 2025 14:39:58 +0000
Received: from IA0PR11MB7257.namprd11.prod.outlook.com
 ([fe80::a3f:c748:c7a6:d2e3]) by IA0PR11MB7257.namprd11.prod.outlook.com
 ([fe80::a3f:c748:c7a6:d2e3%5]) with mapi id 15.20.9343.016; Tue, 25 Nov 2025
 14:39: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: 9f8f27bf-ca0c-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=j/OHW75ZCh7XJPOOKrV1qC3lyqDPLCqLDzMsjRnWWXYCGEF0StVED2ZAkldcj1iVqK2wpRjXmZ5MwjBcznu3F75yodaPbTwznAloK0O1veybqrVtFuxEy+xGAhpEa+imYzk9cLk/FUhkoB2IGlWRuGK6yiLQxCCqDEUi1eWBW4KwHtTmQKx6ZZYOhPQbru0laLUV2PqQRqJCsiuUutcvMfcxdbZnLV3qvk//krqNd4+elyDukFbS+btoWClLStH/PTwoX7c09cXS6+kqeMeYnV6WlfbvhcueTgyYUt4CwYQ69uIG29EZvLyJqzSNcIoHv2iVwQVS9WOKKhzcvt+G1A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qGw0YM9hM/jLJXsJD1UaOhjehWwIFFjSTD+900g9YGc=;
 b=CPJaqTyIs/rntktAXpUgaGsAl/4jIrjKrc72pjwN71nMB86obUdRmrCaT54DYE9uyIl86HQyKP1IBrdc9D65NG9ftgv2OtH8k/cZyPwqVqu8XI9wE1B1OyL7bLGUgicV5lk6ZLlX8BFGcG9ycX/Zta5N3jgWBrIdJ8V8KDoSObyEuQsYX8uo5VBdAlXwFeK+jg4xk98WFRFvd1Xi7AH/os0J9eUMGbog6ITiZ1r7tvjWnYrtS2D1jZNWrrL3mKaJqJ/Pe6OLRA0nC+ykOyEpK1S/pQSraJs8AsC72Zg1cRlHq+Hzg8+1+NwE4nfwQde9QxtauOHUiC+otcJYQ14vOQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=microchip.com; dmarc=pass action=none
 header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchip.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qGw0YM9hM/jLJXsJD1UaOhjehWwIFFjSTD+900g9YGc=;
 b=LkS+MGQG9jgtF4/ZLbvhfhiBOcRjoI2k14irtjWfRH2Ixz97VlCOoEnneVPZw/6eAUzsJaMyFbeLlpej/ijSZu74K1oN/u6F4TeQX6m0kggk+VB1jqZf5wWFICtkCrf/2dRCidlAAkdglenJVfiZsnBx0tV5aJ2V3/7DnI0IVvM8DV7p0+kmLlhSsDv4vIn8jT59y3GIdNEquh9nob9GR5YeetetPD0NtPJQPnQPpOZibqkmRAIS1vtxTclvGVdpeZe7mjw93uyZFw06/1lVpyIFORgtVRaaK5JpSBesfSBlIVlq0BeM3TJd8SdN9l+Py6fy2dSHIAxrKhj6OMC6eg==
From: <Ludovic.Desroches@microchip.com>
To: <tzimmermann@suse.de>, <simona@ffwll.ch>, <airlied@gmail.com>,
	<mripard@kernel.org>, <maarten.lankhorst@linux.intel.com>,
	<geert@linux-m68k.org>, <tomi.valkeinen@ideasonboard.com>
CC: <dri-devel@lists.freedesktop.org>, <linux-mediatek@lists.infradead.org>,
	<freedreno@lists.freedesktop.org>, <linux-arm-msm@vger.kernel.org>,
	<imx@lists.linux.dev>, <linux-samsung-soc@vger.kernel.org>,
	<nouveau@lists.freedesktop.org>, <virtualization@lists.linux.dev>,
	<spice-devel@lists.freedesktop.org>, <linux-renesas-soc@vger.kernel.org>,
	<linux-rockchip@lists.infradead.org>, <linux-tegra@vger.kernel.org>,
	<intel-xe@lists.freedesktop.org>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v6 03/25] drm/gem-dma: Compute dumb-buffer sizes with
 drm_mode_size_dumb()
Thread-Topic: [PATCH v6 03/25] drm/gem-dma: Compute dumb-buffer sizes with
 drm_mode_size_dumb()
Thread-Index: AQHcEnS8fucA3LjqjkuGZw8r9BxHgrUEDdaA
Date: Tue, 25 Nov 2025 14:39:58 +0000
Message-ID: <52600bf4-2c1c-49a6-82c5-b31818141a43@microchip.com>
References: <20250821081918.79786-1-tzimmermann@suse.de>
 <20250821081918.79786-4-tzimmermann@suse.de>
In-Reply-To: <20250821081918.79786-4-tzimmermann@suse.de>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Mozilla Thunderbird
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=microchip.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: IA0PR11MB7257:EE_|CH3PR11MB7371:EE_
x-ms-office365-filtering-correlation-id: 48f997f5-7c45-4fcd-f08e-08de2c3081ec
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|7416014|1800799024|376014|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?SXYvRG9uMmpBZ3BpWjNaYXpldmhPZWpQZEhUVTlURjg2MytCdEpnNkwxTGZv?=
 =?utf-8?B?NXora3J6QjBEOENqbzFrZ2RkQzRMbTNjV3dlYjg0cU1uSDgvZnhoOUUvbnVI?=
 =?utf-8?B?bVhJRHdWbXZ6STc4T3oxOHNiREw2OFJNRnEvREpPVEFNOW9BZ1dMRlE4aHRP?=
 =?utf-8?B?RHROQW5kWElZMWg5enF3aEhsK09odG9oZTN2Y01vaFVRUDc0MlRKaWpjL1ZH?=
 =?utf-8?B?Q2MxdVFRaEI4Yk5LRmxVMlgzSjJPNytaUmI0UGVuMy8yeHpvcWpYdDdLL0VI?=
 =?utf-8?B?aGl4K0hVZXBwNy8vM1lkWENXSmVzVGZTalVLWmJmMlhVUlRUd1o1YmZqMG1z?=
 =?utf-8?B?cnVadCsxd2RyWllWL2R1QWVBODhIVWtvalEzSHA4VDl0NnFZb2pKeFJhRlpX?=
 =?utf-8?B?c0pCOE1EcUpQdnp5eWtmS1IzRXRJZnRreFlncWtjZG13eHdvRHhHZGNCbGR1?=
 =?utf-8?B?S2FHWVpEQ3VKcXV1WDJxWHdOM09ibk13YVJYN2w1OTZYUzBuY0RNNlFMMWxZ?=
 =?utf-8?B?UXVKTGJGWWpld0d5cHpJQ0tRRlNyS0tzaUo3ODlTVVNnS256eTFCZUJOSytZ?=
 =?utf-8?B?eDVKbEZCRnQ3NGRIT2UwSUFSNDZXN0JGQjZWYkhXR2RCQ2UwOEo5dHJFc3VN?=
 =?utf-8?B?d3lvMXl0NW11M1VxTmxmMy9GeVl6Y1Z2NEt1c2txZXMrSms5bGdwM0hVa3Bw?=
 =?utf-8?B?NEZLbGNrVjBqV1hNZmRXN2NTRXVWc0l5WGk1RVN1Z0laNTFmTXlTT1NQZDh1?=
 =?utf-8?B?UW5GL2t5T2g3UnBORk1KUkUwSnh1Mk9wZmdaZi9Uc2NFRlVjdzVSQmlaeGRG?=
 =?utf-8?B?OWNLaEk2QzE5aDN1bUU3Ry9RdmtHUVNlQW9wRGgxN2FFd2JPa04rZ2x0bzRB?=
 =?utf-8?B?QjFabTZYZ0F2QmIzSUNaZjR3TmJnWFFkaE11cXZBNHFUeWtKZjVlZDFDRGN5?=
 =?utf-8?B?L09wRVA5NjJkMUE0Tkl5M2N1YUxuTmp5MDJnWlNLM3YxY1Z4YThaV3pldGk0?=
 =?utf-8?B?dUlkaWd5Z2V5di9jemxEOTV4dEFxVEpad3N6U2t5RUlTR281L2tZVkVobTJN?=
 =?utf-8?B?RWNqdGcvbzFaNVk5STF3TkxuWStKVDNISFVHTzZSN1R1Rzg0TnZseThpamg5?=
 =?utf-8?B?cW9KQTJRdjJzZE5EMVBTbDJjQVovMXdvQmt2RENnbkpUWnB4QWo1M3dncHJ4?=
 =?utf-8?B?SHc4aUlFQzh2RUZtWWhjWEdHMy9PbVVpK0lXam1PaFdwdERBY0hmVXdLOGE2?=
 =?utf-8?B?U3pYY0VQV3ViaExhUHhpaTlCaGtwbmxyMXVoRE50RVF4Ykg4eDh4UTl3NGpT?=
 =?utf-8?B?Zkh3THpWTjJvbGY2dTVUUDdkdDBWVGNlU1VUUUlqUnA0NURyQldOODBCRVJD?=
 =?utf-8?B?b29ya1QvK1JvNGtmbFU0aytnK1BBSExneUxTdDVPQlFrS00xeUJtcExOOGxq?=
 =?utf-8?B?c2FOTU1LSG9VcFlNQm9RQTJTSmUzWU1TTittcmg2bEozNGVXWmhuVHkzMSt6?=
 =?utf-8?B?bUlRSWQ0Kzk3bnlMUS8zMkhFb1ZiSDBwZWdKcHp1MVZ3ZmF3ZGs3cDF2OEFS?=
 =?utf-8?B?cVcvZW1jVm5qYmNqZmZVWTJBcy9jMWh6ZXA1cDQ0a1ZhcUx5a3h3azJvZy9o?=
 =?utf-8?B?KzdzZmhGdE9UVEVlTDhXYy9WQjVydG5oSEkyZTJ6WFo4dC9ZbU1EZXBKam8w?=
 =?utf-8?B?YzAyNjZZdU92U1p0YmRKekxJUEt0OEdKV0JieEFJY1YxQzR0NVdmRnBDKy9O?=
 =?utf-8?B?cHZWNWcxL3pydGtUM1JQWFVYb0pxdFFpb1lRR0xRVThTbWlCVXNnRThSY1dp?=
 =?utf-8?B?MlhVYVdFM0U4LzVBTXBlZkUrRitQQjNnbm5wNnQ1cnN0T3JMWFFBSDZUand1?=
 =?utf-8?B?bDBNaG5GMlhRNy92WHJXeFRNVitDUDZnTnJ3RGhaZ0MxMDl0OFRLcjRYRk5h?=
 =?utf-8?B?VUo2L0k1dU45U0xtaURKQWtyc1RVWTRGNUZmaFdXc3hhYUY0bnpwS2V1a2VM?=
 =?utf-8?B?RHl0ZmpjQ09OV0JqcHQ1WGFJcTZRdFRVTEdaUmVRcGtNRThEeUVrcitaRFRm?=
 =?utf-8?Q?NuV5sa?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR11MB7257.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VjkxdStDOTZzZkxtZDRGRzNTcnZBNXdRcTJ1SHRLYVp1R3dyUEpZU1JFZnFZ?=
 =?utf-8?B?RVFDckFwUk5wZnBuZUg3MFlhY283TWlmencyMjZZYTFtMjZwdmsvdWR3cEp6?=
 =?utf-8?B?dHhLbzYva0p4bngwLytlTHo1bmRkOHdoek1QeEg3aTYyOUdWdkJhTFNWSDVx?=
 =?utf-8?B?QWxCMUNYeEhCcFd0NmdmRzFWK1cvSjdvdVo1aWp0ci8rK2hHd0pYbVFLaW1x?=
 =?utf-8?B?TVM0NHJHMVlyUjM3VlJJQnBlcGxRSjhsYWhaOHRML09KYkgzWnFHajBCSWhR?=
 =?utf-8?B?ekluUmZmQnVPVjBzejFZSW1UaS9WRFNMdDRkeUN0VkVFU0t3K1NISHlZTzg3?=
 =?utf-8?B?aWVZblVNaXc2U0hPNTJsQkJYVUJaTktrR0MveWsrZURTOGRudGMrc2dnT2VT?=
 =?utf-8?B?b0hHa2VXbWxJWmFWb2pxQkxwQWN4blJnNkVDQlYzejlXVTdSMlQxY1l5THgy?=
 =?utf-8?B?WjVpTmFhcVMwV1h3d2cycHlaaFJxaUZBYlgrMjNJUytoRDZTUWFmMzFwQkdQ?=
 =?utf-8?B?V0hhN3pQam04OHErTmRLbUZwUUM3NWVWZWU0OExLTzdJcFVCdFU5ci9vamdn?=
 =?utf-8?B?elA3ZmhlM2hpNVY1MlI1NGpDYUhtakMwRzdXa3h0MHlWUjgzMm5uNmh5Ly9r?=
 =?utf-8?B?dE51WXozNGJQSlFhcEJpK2VFdVl6Y0kxd1I1ODMwQS91Q25JTGVpQ1g5bFVZ?=
 =?utf-8?B?RlVCbkFKSks5S0ZZdVZQd0d0OVNSUlV2bitEdzIzR21kUzI4T1FUcHhwcndF?=
 =?utf-8?B?dThPOG9pbjFpQVdEZ3pOVEphdGVpMitpbXVmNGE2YVJyVVZ1Z2N0bDRXcisy?=
 =?utf-8?B?Mk92QzZHWjFiQU5oODJrVDdTR2FqY0dheGc4QUZsTXBWaEk3dHVVNjJ2aS9Q?=
 =?utf-8?B?M0dRb05sRW5OUERsdlJ1Y25oK0FzOTFSM2RDNEh6MjI0VVdqNEJqY3ZrN3Z1?=
 =?utf-8?B?bXMzY1dYU3ZaVS9LQVFuZUhVMmN6a2k1MTZTSDhjUldRUThPVUtWT0lpMmhP?=
 =?utf-8?B?VzMrdklPRUZaUjJZaDg0U3dNSkg1WUtyc1dXTGdxcUJkZytoR2VTVUx5VnZy?=
 =?utf-8?B?QTJCMWYvNWZ2WDU5VU5rVTYrd01udktLcUg4VGdqV2ZnbkNPVHhQTEFvSXVG?=
 =?utf-8?B?R0x3c2Zvc2xBRjBocFVwYWU0Q0hJcXBOdFZFYTFVeXM1aHlhTDdFb0NxY3g1?=
 =?utf-8?B?Z2cwQ1BiZEtINVRic3EybjRvaHg0Wk9aN0xUSUNBMVQ2SEVvQm44ejVxMjBV?=
 =?utf-8?B?SWY5bzBWSkxmZnZMaXppaFNFWnVsS3BPYys5OHRMbHZXRUJzNGxDbzVCcWU0?=
 =?utf-8?B?OWJmN0xYR0JpU2piNUF3TFhiS0ttWVdTSThXUlJHK0RFVWRZK05FaFVPdUpi?=
 =?utf-8?B?SW1pM2NLZERsaERnVjZ4Wnl2SElwRVVpNHViQUJoUTJGM1V1WlFzK1FzSFhH?=
 =?utf-8?B?ZmhPK1Z0cXNWNHBXRjVHUXdJUTdpcThjYlRJRzVhRjV3S1lQcXZrajB6ZytP?=
 =?utf-8?B?VFhFMElOZC9KWjZxYXRuWW12Q0JTU0tSVXFCOWt0OXBmN2RXZW9CVUxRTlNr?=
 =?utf-8?B?TUwwa2Fpd0RZQnJySW5rRU01RWcwQSt6YTdaNU9vczl5NXJxdlI5TDAxaE9E?=
 =?utf-8?B?UDdUa241MnlKSW9GR2MrYzBhWnB5SzU3N2hCNU45amlVek00UVVuSEhYRmVo?=
 =?utf-8?B?bEtFRzJYN3BqZ3MvYktxSzRuRzZwNDg0MFlLWkNiN0NaM0t4RHlCRmdTOFZC?=
 =?utf-8?B?Wk11aDl3Y0xLWmFFUFBLa0REZ2wwWVIraTNWeXRkVWlYZUE2azMrQ0NvblJu?=
 =?utf-8?B?RHI2N20zTm05MXFIVDJBM2pCSHB1OWFCSWNFK1hsUzVscC9kWmFEMmdqSUhn?=
 =?utf-8?B?RjlFdUJwTW1CM2tBVHcwZGFEWG9TcTc5ci9RM05LOGxlcE42elFnZStaRG9r?=
 =?utf-8?B?eE8rVjNFVmcwM2xWNnRIZlcvZGtJSHpteEVFZDRuaUlram4vRGVKSG43M1VT?=
 =?utf-8?B?UnhhYVg5TnB3ZjBnc1ZiKytTeGNZNmcvbE5jb0wxWnlMT3N6aDI2amFELytC?=
 =?utf-8?B?L21mNXc3aHJMRExYeGJ5U2RjOGQrWlptZzREcGVaVStnQ2tmYjd2Wlgwbldo?=
 =?utf-8?B?UzJ5RFNUTFZGTzJoKytHTEVqNndUYTUwZUJNSWhTaVdUdGwxRWR5RThwWXhr?=
 =?utf-8?B?Zmc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <F1225C8DB122F84E996CE2ADFFD3FB82@namprd11.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: microchip.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: IA0PR11MB7257.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 48f997f5-7c45-4fcd-f08e-08de2c3081ec
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2025 14:39:58.2539
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Cx2s+SPf/j2msCeUM9cu467XqGi68+SNY6IAHv6ABVWEV+NggxwGmiqvHv3jlZWBTS+DdctCGtaXQHkmGIa/gOsRzhqXFe3+7P6wJ+LpUOU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR11MB7371

T24gOC8yMS8yNSAxMDoxNywgVGhvbWFzIFppbW1lcm1hbm4gd3JvdGU6DQo+IENhbGwgZHJtX21v
ZGVfc2l6ZV9kdW1iKCkgdG8gY29tcHV0ZSBkdW1iLWJ1ZmZlciBzY2FubGluZSBwaXRjaCBhbmQN
Cj4gYnVmZmVyIHNpemUuIEFsaWduIHRoZSBwaXRjaCB0byBhIG11bHRpcGxlIG9mIDguDQo+IA0K
PiBQdXNoIHRoZSBjdXJyZW50IGNhbGN1bGF0aW9uIGludG8gdGhlIG9ubHkgZGlyZWN0IGNhbGxl
ciBpbXguIElteCdzDQo+IGhhcmR3YXJlIHJlcXVpcmVzIHRoZSBmcmFtZWJ1ZmZlciB3aWR0aCB0
byBiZSBhbGlnbmVkIHRvIDguIFRoZQ0KPiBkcml2ZXIncyBjdXJyZW50IGFwcHJvYWNoIGlzIGFj
dHVhbGx5IGluY29ycmVjdCwgYXMgaXQgb25seSBndWFyYW50ZWVzDQo+IHRoaXMgaW1wbGljaXRs
eSBhbmQgcmVxdWlyZXMgYnBwIHRvIGJlIGEgbXVsdGlwbGUgb2YgOCBhbHJlYWR5LiBBDQo+IGxh
dGVyIGNvbW1pdCB3aWxsIGZpeCB0aGlzIHByb2JsZW0gYnkgYWxpZ25pbmcgdGhlIHNjYW5saW5l
IHBpdGNoDQo+IHN1Y2ggdGhhdCBhbiBhbGlnbmVkIHdpZHRoIHN0aWxsIGZpdHMgaW50byBlYWNo
IHNjYW5saW5lJ3MgbWVtb3J5Lg0KPiANCj4gQSBudW1iZXIgb2Ygb3RoZXIgZHJpdmVycyBhcmUg
YnVpbGQgb24gdG9wIG9mIGdlbS1kbWEgaGVscGVycyBhbmQNCj4gaW1wbGVtZW50IHRoZWlyIG93
biBkdW1iLWJ1ZmZlciBhbGxvY2F0aW9uLiBUaGVzZSBkcml2ZXJzIGludm9rZQ0KPiBkcm1fZ2Vt
X2RtYV9kdW1iX2NyZWF0ZV9pbnRlcm5hbCgpLCB3aGljaCBpcyBub3QgYWZmZWN0ZWQgYnkgdGhp
cw0KPiBjb21taXQuDQo+IA0KPiB2NToNCj4gLSBhdm9pZCByZXNldCBvZiBhcmd1bWVudHMgKFRv
bWkpDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgWmltbWVybWFubiA8dHppbW1lcm1hbm5A
c3VzZS5kZT4NCj4gUmV2aWV3ZWQtYnk6IFRvbWkgVmFsa2VpbmVuIDx0b21pLnZhbGtlaW5lbkBp
ZGVhc29uYm9hcmQuY29tPg0KPiAtLS0NCj4gICBkcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV9kbWFf
aGVscGVyLmMgICAgIHwgNyArKysrKy0tDQo+ICAgZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My9p
bXgtZHJtLWNvcmUuYyB8IDQgKysrLQ0KPiAgIDIgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25z
KCspLCAzIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9k
cm1fZ2VtX2RtYV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX2RtYV9oZWxwZXIu
Yw0KPiBpbmRleCA0ZjAzMjBkZjg1OGYuLmFiMWE3MGIxZDZmMSAxMDA2NDQNCj4gLS0tIGEvZHJp
dmVycy9ncHUvZHJtL2RybV9nZW1fZG1hX2hlbHBlci5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry
bS9kcm1fZ2VtX2RtYV9oZWxwZXIuYw0KPiBAQCAtMjAsNiArMjAsNyBAQA0KPiAgICNpbmNsdWRl
IDxkcm0vZHJtLmg+DQo+ICAgI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+DQo+ICAgI2luY2x1
ZGUgPGRybS9kcm1fZHJ2Lmg+DQo+ICsjaW5jbHVkZSA8ZHJtL2RybV9kdW1iX2J1ZmZlcnMuaD4N
Cj4gICAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZG1hX2hlbHBlci5oPg0KPiAgICNpbmNsdWRlIDxk
cm0vZHJtX3ZtYV9tYW5hZ2VyLmg+DQo+ICAgDQo+IEBAIC0zMDQsOSArMzA1LDExIEBAIGludCBk
cm1fZ2VtX2RtYV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwNCj4gICAJ
CQkgICAgc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iICphcmdzKQ0KPiAgIHsNCj4gICAJc3Ry
dWN0IGRybV9nZW1fZG1hX29iamVjdCAqZG1hX29iajsNCj4gKwlpbnQgcmV0Ow0KPiAgIA0KPiAt
CWFyZ3MtPnBpdGNoID0gRElWX1JPVU5EX1VQKGFyZ3MtPndpZHRoICogYXJncy0+YnBwLCA4KTsN
Cj4gLQlhcmdzLT5zaXplID0gYXJncy0+cGl0Y2ggKiBhcmdzLT5oZWlnaHQ7DQo+ICsJcmV0ID0g
ZHJtX21vZGVfc2l6ZV9kdW1iKGRybSwgYXJncywgU1pfOCwgMCk7DQo+ICsJaWYgKHJldCkNCj4g
KwkJcmV0dXJuIHJldDsNCg0KSGksDQoNCldhcyBpdCBpbnRlbnRpb25hbCBmb3IgdGhpcyBjaGFu
Z2UgdG8gYWx0ZXIgdGhlIHBpdGNoPw0KDQpUaGUgYWxpZ25tZW50IHJlcXVpcmVtZW50IGhhcyBi
ZWVuIHVwZGF0ZWTigJRmcm9tIDgtYml0IGFsaWdubWVudCB0byANCjY0LWJpdCBhbGlnbm1lbnQu
IFNpbmNlIHRoZSBwaXRjaCBpcyBleHByZXNzZWQgaW4gYnl0ZXMsIHdlIHNob3VsZCBwYXNzIA0K
U1pfMSBpbnN0ZWFkIG9mIFNaXzggZm9yIGh3X3BhdGNoX2FsaWduLg0KDQpGb3IgZXhhbXBsZSwg
Zm9yIGFuIDg1MMOXNDgwIGZyYW1lYnVmZmVyIGF0IDE2IGJwcCwgdGhlIHBpdGNoIHNob3VsZCBi
ZSANCjE3MDAgYnl0ZXMuIFdpdGggdGhlIG5ldyBhbGlnbm1lbnQsIHRoZSBwaXRjaCBiZWNvbWVz
IDE3MDQgYnl0ZXMuDQoNClBsZWFzZSBsZXQgbWUga25vdyBpZiB5b3XigJlkIGxpa2UgbWUgdG8g
c3VibWl0IGEgZml4Lg0KDQpSZWdhcmRzLA0KTHVkb3ZpYw0KDQoNCj4gICANCj4gICAJZG1hX29i
aiA9IGRybV9nZW1fZG1hX2NyZWF0ZV93aXRoX2hhbmRsZShmaWxlX3ByaXYsIGRybSwgYXJncy0+
c2l6ZSwNCj4gICAJCQkJCQkgJmFyZ3MtPmhhbmRsZSk7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz
L2dwdS9kcm0vaW14L2lwdXYzL2lteC1kcm0tY29yZS5jIGIvZHJpdmVycy9ncHUvZHJtL2lteC9p
cHV2My9pbXgtZHJtLWNvcmUuYw0KPiBpbmRleCBlYzVmZDlhMDFmMWUuLmFmNGEzMDMxMWUxOCAx
MDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My9pbXgtZHJtLWNvcmUuYw0K
PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2lwdXYzL2lteC1kcm0tY29yZS5jDQo+IEBAIC0x
NDUsOCArMTQ1LDEwIEBAIHN0YXRpYyBpbnQgaW14X2RybV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJt
X2ZpbGUgKmZpbGVfcHJpdiwNCj4gICAJaW50IHJldDsNCj4gICANCj4gICAJYXJncy0+d2lkdGgg
PSBBTElHTih3aWR0aCwgOCk7DQo+ICsJYXJncy0+cGl0Y2ggPSBESVZfUk9VTkRfVVAoYXJncy0+
d2lkdGggKiBhcmdzLT5icHAsIDgpOw0KPiArCWFyZ3MtPnNpemUgPSBhcmdzLT5waXRjaCAqIGFy
Z3MtPmhlaWdodDsNCj4gICANCj4gLQlyZXQgPSBkcm1fZ2VtX2RtYV9kdW1iX2NyZWF0ZShmaWxl
X3ByaXYsIGRybSwgYXJncyk7DQo+ICsJcmV0ID0gZHJtX2dlbV9kbWFfZHVtYl9jcmVhdGVfaW50
ZXJuYWwoZmlsZV9wcml2LCBkcm0sIGFyZ3MpOw0KPiAgIAlpZiAocmV0KQ0KPiAgIAkJcmV0dXJu
IHJldDsNCj4gICANCg0K


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 14:53:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 14:53:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171966.1497039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNuPc-0007TX-8n; Tue, 25 Nov 2025 14:53:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171966.1497039; Tue, 25 Nov 2025 14:53:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNuPc-0007TQ-5u; Tue, 25 Nov 2025 14:53:00 +0000
Received: by outflank-mailman (input) for mailman id 1171966;
 Tue, 25 Nov 2025 14:52:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BAQ+=6B=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1vNuPa-0007TE-QJ
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 14:52:58 +0000
Received: from sender3-of-o50.zoho.com (sender3-of-o50.zoho.com
 [136.143.184.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6d5cb011-ca0e-11f0-9d18-b5c5bf9af7f9;
 Tue, 25 Nov 2025 15:52:57 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1764082372633646.0527291575573;
 Tue, 25 Nov 2025 06: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: 6d5cb011-ca0e-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; t=1764082375; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=haVKs9RlIE9Zd7bd+9pNto2qrt2WP9DYMc/kyUWhrSF9vabrFzqzZne880A5tsUh+4383ngn4vcYS+tdGWLJZgOELK+i981jHcf8oTjFbptIlr/F/HyAQdTXzFjwGNIKBH5RglMoa4Xvwk7CGC7VyyCZAHoRmIHwYBA2AFR54Lc=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1764082375; 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=YxyBSs827jprtHBHXV4PwXcAAh3LrjjfS7ftNklC6V4=; 
	b=bxlf5+p/PcTjF7ISAVptncW4MHHUn91c/a5NMpILF9NfDDPPpWoeeTrzt3qLSO5iEHmt5uRC3vKcm8vyew84yXNtxsUcUBUbwPcpNBkPD+Hpf+V3lc0WJv7ffDwj+iZsaqOX3OUZ5JjLsKjQR4BUujOPnAtD1R73Rt6D8RcKeGU=
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=1764082375;
	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=YxyBSs827jprtHBHXV4PwXcAAh3LrjjfS7ftNklC6V4=;
	b=ZXLMWyulgyEjoZlRiGqvEJQDrTDQlzwiSfTzqMj1YNN3F4gtw9d/7OIN76Ix8a4i
	wnlCZkBWrXA82zOMAW9ayUICuYWVXAT2X3l34//V0m8OXc/7QFaot2aUQaEZhwIvTbY
	ibuwl2pvsIjzfzA02JGLFDcOgjqCrVSfASp11BAU=
Message-ID: <c70e4aa8-96d6-48ed-a4a4-eb9c26d17c17@apertussolutions.com>
Date: Tue, 25 Nov 2025 09:52:50 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/4] xen/xsm: address violations of MISRA C rules 8.3 and
 7.2
To: Nicola Vetrini <nicola.vetrini@gmail.com>, xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, jbeulich@suse.com, sstabellini@kernel.org
References: <cover.1763642993.git.nicola.vetrini@gmail.com>
 <e59c8b5c1240417d7f55d9ec16378fb180cd63a9.1763642993.git.nicola.vetrini@gmail.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <e59c8b5c1240417d7f55d9ec16378fb180cd63a9.1763642993.git.nicola.vetrini@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 11/20/25 2:32 PM, Nicola Vetrini wrote:
> Rule 8.3 states: Function types shall be in prototype form
> with named parameters.
> 
> add parameter to 'has_xsm_magic' to make it consistent with the
> definition.
> 
> Rule 7.2 states: A `u' or `U' suffix shall be applied to all
> integer constants that are represented in an unsigned type.
> 
> add missing `U' to both #define for `XSM_MAGIC` for consistency.
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>
> ---
>   xen/include/xsm/xsm.h | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
> index 9a23d2827c..074d61cd45 100644
> --- a/xen/include/xsm/xsm.h
> +++ b/xen/include/xsm/xsm.h
> @@ -22,9 +22,9 @@
>   typedef uint32_t xsm_magic_t;
>   
>   #ifdef CONFIG_XSM_FLASK
> -#define XSM_MAGIC 0xf97cff8c
> +#define XSM_MAGIC 0xf97cff8cU
>   #else
> -#define XSM_MAGIC 0x0
> +#define XSM_MAGIC 0x0U
>   #endif
>   
>   /*
> @@ -815,7 +815,7 @@ int xsm_multiboot_policy_init(
>    */
>   int xsm_dt_init(void);
>   int xsm_dt_policy_init(void **policy_buffer, size_t *policy_size);
> -bool has_xsm_magic(paddr_t);
> +bool has_xsm_magic(paddr_t start);
>   #endif
>   
>   void xsm_fixup_ops(struct xsm_ops *ops);

Acked-by: Daniel P. Smith <dpsmith@apertussolutions.com>



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 14:58:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 14:58:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171976.1497048 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNuUZ-00083h-PN; Tue, 25 Nov 2025 14:58:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171976.1497048; Tue, 25 Nov 2025 14: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 1vNuUZ-00083a-Mp; Tue, 25 Nov 2025 14:58:07 +0000
Received: by outflank-mailman (input) for mailman id 1171976;
 Tue, 25 Nov 2025 14: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=BAQ+=6B=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1vNuUY-00083U-7Q
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 14:58:06 +0000
Received: from sender3-of-o50.zoho.com (sender3-of-o50.zoho.com
 [136.143.184.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 24c27ce2-ca0f-11f0-9d18-b5c5bf9af7f9;
 Tue, 25 Nov 2025 15:58:04 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1764082677546407.94879297700277;
 Tue, 25 Nov 2025 06:57: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: 24c27ce2-ca0f-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; t=1764082681; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Ljs2Q7oPVoSq4duXuaCrrbQS3LoAI1tqy80/NKdVTVB9yEKj3HlK+Jxc93UJ2FjqxBtgl/XfzXMm6ctZHxnHQtrOJ/SmQhhVQLQTi1bBjbUQY3u428aYIvdwk8lZO/9z38EdmcBx2yO8q7qxtlgpgdHTchh7Y1EnQ8Ig3ncvals=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1764082681; 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=Yoz+RmkU/7jj1zCZCID1kFNyOV4CekRZCg3A5rDy9vE=; 
	b=RU1gRiizwb5RaVCn1JAZ5HhlVkLwno/+Vg8Nl8i66O9/wza2cvsnMxyJPfDMzF0AymcE37O9BEO27kgI0EtwI5O8Z1RTp6eevx3Ami1LL4sNpaxz0qWVdJnzK10v+MMAPMxNvAWTayi27KZF2IdWafAbN0L54cP4YS5E0YzfErA=
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=1764082680;
	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=Yoz+RmkU/7jj1zCZCID1kFNyOV4CekRZCg3A5rDy9vE=;
	b=h283OBldJIdzqmsB4zntuaydR8ko41UenB9IsALPkk3kndcUTEqm6WspJDd2K0YR
	NAs0UQWs+wSsYr1OkqkgwCAixp6Te8zFc7zCMn0+3+FI5gnp6SppRIdbEkf5JFstDyo
	CNCbxF+l9QewiiWZ2eRkUlzpSkG4IZfg4VxJmPXA=
Message-ID: <d441c5b1-7ab0-4b28-b00a-67b8d6869fbf@apertussolutions.com>
Date: Tue, 25 Nov 2025 09:57:55 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/7] xen/xsm: wrap xsm_vm_event_control() with
 CONFIG_VM_EVENT
To: Penny Zheng <Penny.Zheng@amd.com>, xen-devel@lists.xenproject.org
Cc: ray.huang@amd.com, grygorii_strashko@epam.com
References: <20251121091554.1003315-1-Penny.Zheng@amd.com>
 <20251121091554.1003315-3-Penny.Zheng@amd.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <20251121091554.1003315-3-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 11/21/25 4:15 AM, Penny Zheng wrote:
> Function xsm_vm_event_control() is only invoked under CONFIG_VM_EVENT, so
> it shall be wrapped with it, otherwiae it will become unreachable when

otherwiae --> otherwise (maybe committer is willing to fix on commit?)

> VM_EVENT=n and hence violating Misra rule 2.1.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> ---
> v1 -> v3:
> - new commit
> ---
>   xen/include/xsm/dummy.h | 2 +-
>   xen/include/xsm/xsm.h   | 4 ++--
>   xen/xsm/dummy.c         | 2 +-
>   xen/xsm/flask/hooks.c   | 4 ++--
>   4 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
> index 12792c3a43..e801dbcdba 100644
> --- a/xen/include/xsm/dummy.h
> +++ b/xen/include/xsm/dummy.h
> @@ -640,6 +640,7 @@ static XSM_INLINE int cf_check xsm_hvm_altp2mhvm_op(
>       }
>   }
>   
> +#ifdef CONFIG_VM_EVENT
>   static XSM_INLINE int cf_check xsm_vm_event_control(
>       XSM_DEFAULT_ARG struct domain *d, int mode, int op)
>   {
> @@ -647,7 +648,6 @@ static XSM_INLINE int cf_check xsm_vm_event_control(
>       return xsm_default_action(action, current->domain, d);
>   }
>   
> -#ifdef CONFIG_VM_EVENT
>   static XSM_INLINE int cf_check xsm_mem_access(XSM_DEFAULT_ARG struct domain *d)
>   {
>       XSM_ASSERT_ACTION(XSM_DM_PRIV);
> diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
> index 9a23d2827c..d9e5c831f3 100644
> --- a/xen/include/xsm/xsm.h
> +++ b/xen/include/xsm/xsm.h
> @@ -155,9 +155,9 @@ struct xsm_ops {
>       int (*hvm_altp2mhvm_op)(struct domain *d, uint64_t mode, uint32_t op);
>       int (*get_vnumainfo)(struct domain *d);
>   
> +#ifdef CONFIG_VM_EVENT
>       int (*vm_event_control)(struct domain *d, int mode, int op);
>   
> -#ifdef CONFIG_VM_EVENT
>       int (*mem_access)(struct domain *d);
>   #endif
>   
> @@ -649,13 +649,13 @@ static inline int xsm_get_vnumainfo(xsm_default_t def, struct domain *d)
>       return alternative_call(xsm_ops.get_vnumainfo, d);
>   }
>   
> +#ifdef CONFIG_VM_EVENT
>   static inline int xsm_vm_event_control(
>       xsm_default_t def, struct domain *d, int mode, int op)
>   {
>       return alternative_call(xsm_ops.vm_event_control, d, mode, op);
>   }
>   
> -#ifdef CONFIG_VM_EVENT
>   static inline int xsm_mem_access(xsm_default_t def, struct domain *d)
>   {
>       return alternative_call(xsm_ops.mem_access, d);
> diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
> index 8b7e01b506..96dc82ac2e 100644
> --- a/xen/xsm/dummy.c
> +++ b/xen/xsm/dummy.c
> @@ -115,9 +115,9 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
>       .remove_from_physmap           = xsm_remove_from_physmap,
>       .map_gmfn_foreign              = xsm_map_gmfn_foreign,
>   
> +#ifdef CONFIG_VM_EVENT
>       .vm_event_control              = xsm_vm_event_control,
>   
> -#ifdef CONFIG_VM_EVENT
>       .mem_access                    = xsm_mem_access,
>   #endif
>   
> diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
> index b0308e1b26..9f3915617c 100644
> --- a/xen/xsm/flask/hooks.c
> +++ b/xen/xsm/flask/hooks.c
> @@ -1365,12 +1365,12 @@ static int cf_check flask_hvm_altp2mhvm_op(struct domain *d, uint64_t mode, uint
>       return current_has_perm(d, SECCLASS_HVM, HVM__ALTP2MHVM_OP);
>   }
>   
> +#ifdef CONFIG_VM_EVENT
>   static int cf_check flask_vm_event_control(struct domain *d, int mode, int op)
>   {
>       return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__VM_EVENT);
>   }
>   
> -#ifdef CONFIG_VM_EVENT
>   static int cf_check flask_mem_access(struct domain *d)
>   {
>       return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__MEM_ACCESS);
> @@ -1967,9 +1967,9 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
>       .do_xsm_op = do_flask_op,
>       .get_vnumainfo = flask_get_vnumainfo,
>   
> +#ifdef CONFIG_VM_EVENT
>       .vm_event_control = flask_vm_event_control,
>   
> -#ifdef CONFIG_VM_EVENT
>       .mem_access = flask_mem_access,
>   #endif
>   

Acked-by: Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 15:01:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 15:01:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171986.1497059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNuY0-0001K1-7N; Tue, 25 Nov 2025 15:01:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171986.1497059; Tue, 25 Nov 2025 15:01: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 1vNuY0-0001Ju-3p; Tue, 25 Nov 2025 15:01:40 +0000
Received: by outflank-mailman (input) for mailman id 1171986;
 Tue, 25 Nov 2025 15:01: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=x8HM=6B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNuXy-0001Gz-VH
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 15:01:39 +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 a37f10b3-ca0f-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 16:01:36 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4779a4fc95aso42188515e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 07: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-42cb7f363e4sm35344657f8f.12.2025.11.25.07.01.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 07:01: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: a37f10b3-ca0f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764082896; x=1764687696; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=plOaXaLf+LQ/Hn3OZU9Kf3fRydw3SIPd1Z7mf+G1RYM=;
        b=alSt+m9mKkhpii0k30R57albQAUUoIqGlwRCVrztWMwP8WVi6zCco6l5ZbrUV5qBCK
         KyLa+xma77zczmOPgBuRHygxSHETyi87/01oQbcGmD3BqAbc/0BE/x3UQ5bmJe7cpefl
         YGFXrRJwNAp7cpns8jdauxW+Nh8ddjCguJOh04mgTjh9nny9rtoDN5LY6C4IstRM/sA1
         2jh9wC4mOTMTKHD41e3JId9CtPvCB9gLw8pFwKKELx3ujJBUaMsrh5JXhf+5SX5iv2Jn
         f1yTqiGPw+yvDD+16SxAj/8t1sBPYmCHk32yr0zxkGiocyj5cF4H5l0DzK0k5XxDaA7h
         z3BA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764082896; x=1764687696;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=plOaXaLf+LQ/Hn3OZU9Kf3fRydw3SIPd1Z7mf+G1RYM=;
        b=GZWRcYEBO/Cu6KJWo2lZSFcNi+9FftbHbgWC//JnqnFjYd0fK2djZrQ6gApawA8BC/
         HxDkOI5nf4UIUftCF/DBKCb8OGn7ZYZfh5fFFo71CXXBAUxPrn+nwnERGB/VLPAn0lcU
         pF8o5WguD1xHbVVb28MB7G4AVpNlWkZlYxFLrKBg/pkSp7RK79xS0kLv1ci9v7Hf8K24
         RI232PnhxXv6cHRyCj82amxTTDW6qb3HZbyvBMAJpokeNqsOuGcnRGKR88arP7kLSZx2
         Fwc01fIJtRYjJyQRgWNxC20I63cA8jqxSuo2n1jAYClgFu+FEJ+zyIXpVAOtNr6UELCJ
         6nJA==
X-Forwarded-Encrypted: i=1; AJvYcCUzCx/cV3GfuFZ6m/YZRHJ/MK3Kg9aon2e6+xETMxAU15M+5ELDRmbqVzjKUcdUCgNDG7I5h9LQkFw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzwFhZwooukNBVLwoLVhZpvLS55y0ucNCtOoBz9Qb7NADYdj4Fz
	U2cqy1Mit1Zaagg93Op7t5vZl6SGuSxcyNr9PgvjJnP9vlb7/rnsoEu4ZCtFgIQ71g==
X-Gm-Gg: ASbGncsk8T9CReGD6capEf5Hy6FhiJ29Cc5gSfZ/uqQOjlunqmL5zb071TWoxjW5X72
	2Vl4CO0ktPAe/BpW6CfRO6CEmUJImNhjZqbT+pvg4rnVkhORE5irATYKHDJEl+IFX8pGdyRcA31
	VLfIrRn/jb8jrfMcJxsE7wdid1heaAQObwkhh0qqijs28RlR/8v/6rTrl8Guy1Zi9ZPbCfsf+/l
	6GXASjTa1UZcKF3DOx9/PAXSs8cCGpyHnrLYLQtWHaLGOFjOCp8ysGKjoBcFdDvdH6pdoB51oJY
	RQ6IfTH4DPSsPQA/JZPeUrZUmqHXSPyj3aPZekaO5xJlPGUD806ck0puZ6gRvvN14wRh0t69MRN
	5YWcf9SI9qkf44QPyIc3CkjZqV5jDuu/V8cvP96PNeP1hgrU0An8WBvKFaKuOOSmdeflLKAPVIF
	Xz1MRoYyJfGDD7ZcrL/ZmSFnxMJ7SMin328aJU/w8xUb0z7xVQFmyVmYIx4i2xyWA8l4twMzf3G
	3k=
X-Google-Smtp-Source: AGHT+IE5l2n359TQYnAd8C9RZdeikIarmO9J3gJpN9BOA421oq7n/HTh69rNwePIbxwzTUlHqtpKcA==
X-Received: by 2002:a05:6000:2f86:b0:425:86da:325f with SMTP id ffacd0b85a97d-42cc1390f07mr19540314f8f.27.1764082895809;
        Tue, 25 Nov 2025 07:01:35 -0800 (PST)
Message-ID: <04644f55-457a-407d-9895-ca73f508fb5c@suse.com>
Date: Tue, 25 Nov 2025 16:01:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/7] xen/xsm: wrap xsm_vm_event_control() with
 CONFIG_VM_EVENT
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 Penny Zheng <Penny.Zheng@amd.com>, xen-devel@lists.xenproject.org
References: <20251121091554.1003315-1-Penny.Zheng@amd.com>
 <20251121091554.1003315-3-Penny.Zheng@amd.com>
 <d441c5b1-7ab0-4b28-b00a-67b8d6869fbf@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: <d441c5b1-7ab0-4b28-b00a-67b8d6869fbf@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.11.2025 15:57, Daniel P. Smith wrote:
> On 11/21/25 4:15 AM, Penny Zheng wrote:
>> Function xsm_vm_event_control() is only invoked under CONFIG_VM_EVENT, so
>> it shall be wrapped with it, otherwiae it will become unreachable when
> 
> otherwiae --> otherwise (maybe committer is willing to fix on commit?)

Sure.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 15:04:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 15:04:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1171995.1497069 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNuaA-0001zi-Ho; Tue, 25 Nov 2025 15:03:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1171995.1497069; Tue, 25 Nov 2025 15: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 1vNuaA-0001zb-Ej; Tue, 25 Nov 2025 15:03:54 +0000
Received: by outflank-mailman (input) for mailman id 1171995;
 Tue, 25 Nov 2025 15: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=uKen=6B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1vNua8-0001zS-SG
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 15:03:53 +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 f3bbaea1-ca0f-11f0-9d18-b5c5bf9af7f9;
 Tue, 25 Nov 2025 16:03:51 +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-out2.suse.de (Postfix) with ESMTPS id CB6CC5BD95;
 Tue, 25 Nov 2025 15:03:47 +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 2E19F3EA63;
 Tue, 25 Nov 2025 15:03:47 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id STfTCVPFJWmMCQAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Tue, 25 Nov 2025 15:03: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: f3bbaea1-ca0f-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1764083030; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=t6c0JIr3JV24agNEYsU6GeNEwCMn9HHhKrcfhB/PVC4=;
	b=MeMLYvOIQm0PQWfD3UBO9QnmQNH6vWaQ7hqx/Wt7eIge3bCkBq3fyTNKB1FMEYmW5/G9/J
	UU730ytQ756s0UWVHqMa3vCOYcvtp5B2dhbquMtNcnpLg80cNx5E91Pf9TqjCgsr0epa2G
	+BOGQnMJ8Q4g59SQ+WmHgzml1L6p5Nw=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1764083030;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=t6c0JIr3JV24agNEYsU6GeNEwCMn9HHhKrcfhB/PVC4=;
	b=HZ9HoaGrQMuKtj6drZ7EoukRoNuUO4l2erKX3BLnChSz0rBzze1RXd5Yuom8T0bdDCieMn
	cqhpDfNxHL/8CaAg==
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.de header.s=susede2_rsa header.b=CZCopwUT;
	dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=cJtVhDSR
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1764083027; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=t6c0JIr3JV24agNEYsU6GeNEwCMn9HHhKrcfhB/PVC4=;
	b=CZCopwUTcY+A/L7rZ7hx6PUAoVzxsQaz6VKywNSdqiIVG+9Hmen0N5mgb+Xpt16ZWJLBwL
	d6sRWjuJdHj5/RJkAarOMFPW7/CsqlWHeJEZvX1zk6W/2dOrRRvrgj2EqC1Vq08eBWPtdh
	kuimNUmnISiMDhyrmmTZWp1VsUu/ONE=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1764083027;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=t6c0JIr3JV24agNEYsU6GeNEwCMn9HHhKrcfhB/PVC4=;
	b=cJtVhDSRR+o9VWz6Yazw2qpbBdRDJ0H8iUig4wpW+NdNmNvUjP02PtwdGzrWA6t7d419+a
	uJb59PIuV23OjwAQ==
Message-ID: <a11c195d-197c-45a4-962a-e2336c7360c2@suse.de>
Date: Tue, 25 Nov 2025 16:03:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 03/25] drm/gem-dma: Compute dumb-buffer sizes with
 drm_mode_size_dumb()
To: Ludovic.Desroches@microchip.com, simona@ffwll.ch, airlied@gmail.com,
 mripard@kernel.org, maarten.lankhorst@linux.intel.com, geert@linux-m68k.org,
 tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org, linux-mediatek@lists.infradead.org,
 freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org,
 imx@lists.linux.dev, linux-samsung-soc@vger.kernel.org,
 nouveau@lists.freedesktop.org, virtualization@lists.linux.dev,
 spice-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org,
 linux-rockchip@lists.infradead.org, linux-tegra@vger.kernel.org,
 intel-xe@lists.freedesktop.org, xen-devel@lists.xenproject.org
References: <20250821081918.79786-1-tzimmermann@suse.de>
 <20250821081918.79786-4-tzimmermann@suse.de>
 <52600bf4-2c1c-49a6-82c5-b31818141a43@microchip.com>
Content-Language: en-US
From: Thomas Zimmermann <tzimmermann@suse.de>
Autocrypt: addr=tzimmermann@suse.de; keydata=
 xsBNBFs50uABCADEHPidWt974CaxBVbrIBwqcq/WURinJ3+2WlIrKWspiP83vfZKaXhFYsdg
 XH47fDVbPPj+d6tQrw5lPQCyqjwrCPYnq3WlIBnGPJ4/jreTL6V+qfKRDlGLWFjZcsrPJGE0
 BeB5BbqP5erN1qylK9i3gPoQjXGhpBpQYwRrEyQyjuvk+Ev0K1Jc5tVDeJAuau3TGNgah4Yc
 hdHm3bkPjz9EErV85RwvImQ1dptvx6s7xzwXTgGAsaYZsL8WCwDaTuqFa1d1jjlaxg6+tZsB
 9GluwvIhSezPgnEmimZDkGnZRRSFiGP8yjqTjjWuf0bSj5rUnTGiyLyRZRNGcXmu6hjlABEB
 AAHNJ1Rob21hcyBaaW1tZXJtYW5uIDx0emltbWVybWFubkBzdXNlLmRlPsLAjgQTAQgAOAIb
 AwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBHIX+6yM6c9jRKFo5WgNwR1TC3ojBQJftODH
 AAoJEGgNwR1TC3ojx1wH/0hKGWugiqDgLNXLRD/4TfHBEKmxIrmfu9Z5t7vwUKfwhFL6hqvo
 lXPJJKQpQ2z8+X2vZm/slsLn7J1yjrOsoJhKABDi+3QWWSGkaGwRJAdPVVyJMfJRNNNIKwVb
 U6B1BkX2XDKDGffF4TxlOpSQzdtNI/9gleOoUA8+jy8knnDYzjBNOZqLG2FuTdicBXblz0Mf
 vg41gd9kCwYXDnD91rJU8tzylXv03E75NCaTxTM+FBXPmsAVYQ4GYhhgFt8S2UWMoaaABLDe
 7l5FdnLdDEcbmd8uLU2CaG4W2cLrUaI4jz2XbkcPQkqTQ3EB67hYkjiEE6Zy3ggOitiQGcqp
 j//OwE0EWznS4AEIAMYmP4M/V+T5RY5at/g7rUdNsLhWv1APYrh9RQefODYHrNRHUE9eosYb
 T6XMryR9hT8XlGOYRwKWwiQBoWSDiTMo/Xi29jUnn4BXfI2px2DTXwc22LKtLAgTRjP+qbU6
 3Y0xnQN29UGDbYgyyK51DW3H0If2a3JNsheAAK+Xc9baj0LGIc8T9uiEWHBnCH+RdhgATnWW
 GKdDegUR5BkDfDg5O/FISymJBHx2Dyoklv5g4BzkgqTqwmaYzsl8UxZKvbaxq0zbehDda8lv
 hFXodNFMAgTLJlLuDYOGLK2AwbrS3Sp0AEbkpdJBb44qVlGm5bApZouHeJ/+n+7r12+lqdsA
 EQEAAcLAdgQYAQgAIAIbDBYhBHIX+6yM6c9jRKFo5WgNwR1TC3ojBQJftOH6AAoJEGgNwR1T
 C3ojVSkIALpAPkIJPQoURPb1VWjh34l0HlglmYHvZszJWTXYwavHR8+k6Baa6H7ufXNQtThR
 yIxJrQLW6rV5lm7TjhffEhxVCn37+cg0zZ3j7zIsSS0rx/aMwi6VhFJA5hfn3T0TtrijKP4A
 SAQO9xD1Zk9/61JWk8OysuIh7MXkl0fxbRKWE93XeQBhIJHQfnc+YBLprdnxR446Sh8Wn/2D
 Ya8cavuWf2zrB6cZurs048xe0UbSW5AOSo4V9M0jzYI4nZqTmPxYyXbm30Kvmz0rYVRaitYJ
 4kyYYMhuULvrJDMjZRvaNe52tkKAvMevcGdt38H4KSVXAylqyQOW5zvPc4/sq9c=
In-Reply-To: <52600bf4-2c1c-49a6-82c5-b31818141a43@microchip.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Rspamd-Queue-Id: CB6CC5BD95
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FREEMAIL_TO(0.00)[microchip.com,ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	MIME_TRACE(0.00)[0:+];
	ARC_NA(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.de:+];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[21];
	TO_DN_NONE(0.00)[];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	MID_RHS_MATCH_FROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns,suse.com:url,suse.de:email,suse.de:mid,suse.de:dkim]
X-Rspamd-Action: no action
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level: 

Hi

Am 25.11.25 um 15:39 schrieb Ludovic.Desroches@microchip.com:
> On 8/21/25 10:17, Thomas Zimmermann wrote:
>> Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
>> buffer size. Align the pitch to a multiple of 8.

I missed a chance to explain it here. :/

>>
>> Push the current calculation into the only direct caller imx. Imx's
>> hardware requires the framebuffer width to be aligned to 8. The
>> driver's current approach is actually incorrect, as it only guarantees
>> this implicitly and requires bpp to be a multiple of 8 already. A
>> later commit will fix this problem by aligning the scanline pitch
>> such that an aligned width still fits into each scanline's memory.
>>
>> A number of other drivers are build on top of gem-dma helpers and
>> implement their own dumb-buffer allocation. These drivers invoke
>> drm_gem_dma_dumb_create_internal(), which is not affected by this
>> commit.
>>
>> v5:
>> - avoid reset of arguments (Tomi)
>>
>> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
>> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
>> ---
>>    drivers/gpu/drm/drm_gem_dma_helper.c     | 7 +++++--
>>    drivers/gpu/drm/imx/ipuv3/imx-drm-core.c | 4 +++-
>>    2 files changed, 8 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_gem_dma_helper.c b/drivers/gpu/drm/drm_gem_dma_helper.c
>> index 4f0320df858f..ab1a70b1d6f1 100644
>> --- a/drivers/gpu/drm/drm_gem_dma_helper.c
>> +++ b/drivers/gpu/drm/drm_gem_dma_helper.c
>> @@ -20,6 +20,7 @@
>>    #include <drm/drm.h>
>>    #include <drm/drm_device.h>
>>    #include <drm/drm_drv.h>
>> +#include <drm/drm_dumb_buffers.h>
>>    #include <drm/drm_gem_dma_helper.h>
>>    #include <drm/drm_vma_manager.h>
>>    
>> @@ -304,9 +305,11 @@ int drm_gem_dma_dumb_create(struct drm_file *file_priv,
>>    			    struct drm_mode_create_dumb *args)
>>    {
>>    	struct drm_gem_dma_object *dma_obj;
>> +	int ret;
>>    
>> -	args->pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
>> -	args->size = args->pitch * args->height;
>> +	ret = drm_mode_size_dumb(drm, args, SZ_8, 0);
>> +	if (ret)
>> +		return ret;
> Hi,
>
> Was it intentional for this change to alter the pitch?

Most hardware does not need the pitch to be of a certain alignment. But 
these buffers are possibly shared with other hardware, which sometimes 
needs alignment to certain values. Using SZ_8 improves compatible with 
that hardware.

>
> The alignment requirement has been updatedâ€”from 8-bit alignment to
> 64-bit alignment. Since the pitch is expressed in bytes, we should pass
> SZ_1 instead of SZ_8 for hw_patch_align.
>
> For example, for an 850Ã—480 framebuffer at 16 bpp, the pitch should be
> 1700 bytes. With the new alignment, the pitch becomes 1704 bytes.

Many display modes have an 8-byte alignment in their width. 850 pixels 
is somewhat of an exception.

>
> Please let me know if youâ€™d like me to submit a fix.

Do you see a bug with your hardware? Unless this creates a real problem, 
I'd like to keep it as it is now.

Best regards
Thomas

>
> Regards,
> Ludovic
>
>
>>    
>>    	dma_obj = drm_gem_dma_create_with_handle(file_priv, drm, args->size,
>>    						 &args->handle);
>> diff --git a/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c b/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c
>> index ec5fd9a01f1e..af4a30311e18 100644
>> --- a/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c
>> +++ b/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c
>> @@ -145,8 +145,10 @@ static int imx_drm_dumb_create(struct drm_file *file_priv,
>>    	int ret;
>>    
>>    	args->width = ALIGN(width, 8);
>> +	args->pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
>> +	args->size = args->pitch * args->height;
>>    
>> -	ret = drm_gem_dma_dumb_create(file_priv, drm, args);
>> +	ret = drm_gem_dma_dumb_create_internal(file_priv, drm, args);
>>    	if (ret)
>>    		return ret;
>>    

-- 
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 NÃ¼rnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, Werner Knoblich, (HRB 36809, AG NÃ¼rnberg)




From xen-devel-bounces@lists.xenproject.org Tue Nov 25 15:09:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 15:09:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172010.1497079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNufn-0002oW-7P; Tue, 25 Nov 2025 15:09:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172010.1497079; Tue, 25 Nov 2025 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 1vNufn-0002oP-4M; Tue, 25 Nov 2025 15:09:43 +0000
Received: by outflank-mailman (input) for mailman id 1172010;
 Tue, 25 Nov 2025 15:09:42 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vNufm-0002oH-AU
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 15:09:42 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vNufl-007nt0-2D;
 Tue, 25 Nov 2025 15:09:41 +0000
Received: from [15.248.2.27] (helo=[10.24.67.127])
 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 1vNufl-00BjcS-0w;
 Tue, 25 Nov 2025 15:09:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=26SAgevL8X3ZsDTXmeDgC2TAh+GbOJk+0MEyAXpGWVk=; b=s0sJBGxRToMhd4x7sgvLlei5Bz
	FDxU8dDYktYTYmDW+w7hwuS7RXQivFL/uaPyvGDd8Q2cB/HRbRbKWe997OP94wdBvvUcCygTERJ16
	3R45BUpIXNzTeo4GAHDy4nuKdTXfgmgQ+l8xw+UKYcI95z2xbj3g4PsIjzEXbwvq7/KY=;
Message-ID: <c08baef4-dac6-4abf-ab49-6c06266025f3@xen.org>
Date: Tue, 25 Nov 2025 15:09:39 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] vgic-v3: Ignore writes to
 GICD_ISACTIVER{nE}..GICD_ISACTIVER{nE}N
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>
References: <20251125120308.65981-1-michal.orzel@amd.com>
Content-Language: en-US
From: Julien Grall <julien@xen.org>
In-Reply-To: <20251125120308.65981-1-michal.orzel@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 25/11/2025 12:03, Michal Orzel wrote:
> Similar to other registers like ICPENDR and ICACTIVER, ignore the writes
> instead of injecting fault into the guest and thus crashing it.

Sure... But you are potentially introducing an instability in the guest 
OS which may be difficult to diagnose. So why is it better?

> This was
> already the case for extended registers prior to introducing GICV3_ESPI.

Why only the vGICv3?

> 
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> ---
>   xen/arch/arm/vgic-v3.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
> index 8b1c8eef8024..33dfd13dccf1 100644
> --- a/xen/arch/arm/vgic-v3.c
> +++ b/xen/arch/arm/vgic-v3.c
> @@ -887,7 +887,8 @@ static int __vgic_v3_distr_common_mmio_write(const char *name, struct vcpu *v,
>               printk(XENLOG_G_ERR
>                      "%pv: %s: unhandled word write %#"PRIregister" to ISACTIVER%dE\n",
>                      v, name, r, reg - GICD_ISACTIVERnE);
> -        return 0;
> +
> +        goto write_ignore;

I know we already use that for ICACTIVER. But this is against the 
specification. We can't just ignore a guest asking to activate an interrupt.

The commit message really some details on why we want to do ignore the 
write (IOW is this impacting an OS) and what's the consequence to ignore 
the request?

>   
>       case VRANGE32(GICD_ICACTIVER, GICD_ICACTIVERN):
>       case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 15:15:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 15:15:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172020.1497089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNul2-0004eK-Nv; Tue, 25 Nov 2025 15:15:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172020.1497089; Tue, 25 Nov 2025 15: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 1vNul2-0004eD-L3; Tue, 25 Nov 2025 15:15:08 +0000
Received: by outflank-mailman (input) for mailman id 1172020;
 Tue, 25 Nov 2025 15:15: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=BAQ+=6B=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1vNul2-0004e5-19
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 15:15:08 +0000
Received: from sender3-of-o50.zoho.com (sender3-of-o50.zoho.com
 [136.143.184.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 85635abd-ca11-11f0-9d18-b5c5bf9af7f9;
 Tue, 25 Nov 2025 16:15:06 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1764083700855102.12441115903425;
 Tue, 25 Nov 2025 07:15: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: 85635abd-ca11-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; t=1764083703; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=dyB1xRiuBOuGIfEAxVcCsgM4nSXxmqJLWF2QMiz2/iD0QR8y353nlO+ATHRaZtI6mCWxh0f+L4wKy4LARiDIWKVEBYor9Deh1tzpH5wHgYWG1qr23Buvz7BRB934AQpOe8K9f3al1f+S9Wm/Jx8YigK2aWo+dHN+uuIfX+m51dU=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1764083703; 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=mpY+NLSrCR6NCga9NoJmYIaV14kT2racyE6PQxP+bTI=; 
	b=iSEaXb89/OOF66beXNStj+rRXm8honFCIatR9PcNp2YHCRHJ76AjSOpxcwg0xcv24yV7xLK9Twcmij+vuGoUS5GuMfm8qOoHVqRnCL/S8YpPlVETpRG0VNfrkbIsuh5r2MfmU0SXsiPrro5N95Z3xz6rS+hgISA8+v5bx8/quGI=
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=1764083703;
	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=mpY+NLSrCR6NCga9NoJmYIaV14kT2racyE6PQxP+bTI=;
	b=PZIMuZjA/JwDk9CiZKkpsi0vmDmV81A7YwDgT4yIg/sbK7jHbPCUNu00xg+zdatr
	9n3VA1w0tgxdNLAEdcpYLmGIwkN1sXQVJhSfL9rImjMLjNu9imVVSBuSA3dcPVvzPOE
	55CN11kt4yOoA2Ec9yQl3AUZGVxuvlygP2ZfT+8U=
Message-ID: <b13572b6-d343-4616-aea4-674739c6589f@apertussolutions.com>
Date: Tue, 25 Nov 2025 10:14:59 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] EFI/runtime: switch to xv[mz]alloc_array()
To: Jan Beulich <jbeulich@suse.com>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <41b7e14c-59ef-40f5-8c43-69bdc5fb4531@suse.com>
 <761b584a-51fb-403d-948e-3366501cea50@apertussolutions.com>
 <755dd957-514b-4316-82f5-3619c19cbb15@suse.com>
 <9f9f24f0-c16a-4f55-b3c2-a3f4b485c403@apertussolutions.com>
 <2d93e9a7-abef-4ef6-bcbc-9081661edb58@suse.com>
 <052e7926-f114-4b16-b197-8a4303f6b5d1@suse.com>
Content-Language: en-US
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
In-Reply-To: <052e7926-f114-4b16-b197-8a4303f6b5d1@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 8/25/25 7:06 AM, Jan Beulich wrote:
> On 14.08.2025 08:46, Jan Beulich wrote:
>> On 14.08.2025 02:29, Daniel P. Smith wrote:
>>> On 8/12/25 02:12, Jan Beulich wrote:
>>>> On 12.08.2025 02:19, Daniel P. Smith wrote:
>>>>> On 7/23/25 09:39, Jan Beulich wrote:
>>>>>> Use the more "modern" form, thus doing away with effectively open-coding
>>>>>> xmalloc_array() at the same time. While there is a difference in
>>>>>> generated code, as xmalloc_bytes() forces SMP_CACHE_BYTES alignment, if
>>>>>> code really cared about such higher than default alignment, it should
>>>>>> request so explicitly.
>>>>>
>>>>> While I don't object to the change itself, I think this description is a
>>>>> bit over simplification of the change. If the allocation is under
>>>>> PAGE_SIZE, then they are equivalent, but if it is over the page size
>>>>> there are a few more differences than just cache alignment. It
>>>>> completely changes the underlying allocator. I personally also find it a
>>>>> bit of a stretch to call xmalloc_bytes(size) an open coded version of
>>>>> xmalloc_array(char, size).
>>>>
>>>> My take is that xmalloc_bytes() should never have existed. Hence why I
>>>> didn't add xzmalloc_bytes() when introducing that family of interfaces.
>>>
>>> Right, which would be a valid argument for replacing it with
>>> xmalloc_array(). Though, I would note that there is an xzalloc_bytes().
>>> My concern was that you stated there was an open coding, which had me
>>> expecting there was a line of the form, xmanlloc_bytes(count *
>>> size_of_something bigger), being replaced by
>>> xvmalloc_arryay(something_bigger, count).
>>
>> Both fir this and ...
>>
>>> IMHO, while the C spec does specify char as 1 byte and thus
>>> interchangeable, I would agree that from a contextual perspective,
>>> xmalloc_array() is the more appropriate call. The use of the allocation
>>> is a character array and not a chunk of bytes for an arbitrary buffer.
>>
>> ... for this: Hence my wording using "effectively".
>>
>>>>> With a stronger description of the change,
>>>>
>>>> So what exactly do you mean by "stronger"? I can add that in the unlikely
>>>> event that one of the allocations is (near) PAGE_SIZE or larger, we now
>>>> wouldn't require contiguous memory anymore. Yet based on your comment at
>>>> the top I'm not quite sure if that's what you're after and/or enough to
>>>> satisfy your request.
>>>
>>> The phrasing stronger was meant to be more clear on the change/effect,
>>> specifically that the underlying allocator is being changed when the
>>> allocation is greater than a PAGE_SIZE. Not necessarily a long
>>> explanation, just the fact that the allocation will be coming from the
>>> dom heap allocator as opposed to the xen heap allocator. There are
>>> implications to changing the allocater, e.g.,  at a minimum the
>>> allocation order and nonphysical vs. physically contiguous effects.
>>> Having it noted in the commit makes it more obvious what this change is
>>> actually doing. Which may not be obvious when seeing the simple line
>>> changes occurring in the diff. Later, if there is an unexpected
>>> consequence caused by this change, a stronger commit will be helpful
>>> with the bisection investigations.
>>
>> First: I don't think each and every such change (there are going to be many)
>> should re-explain the switch to the xvmalloc() family of functions. This is
>> already stated clearly at the top of xvmalloc.h: Over time, the entire code
>> base is meant to be switched.
>>
>> Beyond that, to achieve the stronger wording you're after, would it perhaps
>> suffice to have the first sentence say "..., thus also doing away ..."?
>> Otherwise, may I ask that you please make a more concrete suggestion?
> 
> Ping. I'd like to get this in, yet I still don't know how exactly to satisfy
> your request for a stronger description.
> 
> Jan

This fell off my plate and not fair to Jan, I will just rescind my concern.

Acked-by: Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 15:19:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 15:19:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172030.1497098 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNuon-0005OP-5N; Tue, 25 Nov 2025 15:19:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172030.1497098; Tue, 25 Nov 2025 15:19:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNuon-0005OI-2d; Tue, 25 Nov 2025 15:19:01 +0000
Received: by outflank-mailman (input) for mailman id 1172030;
 Tue, 25 Nov 2025 15:18: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=x8HM=6B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNuol-0005OB-LU
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 15:18:59 +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 10796704-ca12-11f0-9d18-b5c5bf9af7f9;
 Tue, 25 Nov 2025 16:18:58 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-477632d9326so34165185e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 07:18: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-479052cfae0sm17654475e9.8.2025.11.25.07.18.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 07:18: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: 10796704-ca12-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764083938; x=1764688738; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=j8DnPuPRWuF47udyl8iF/eaeM0cBaAUVmHXO+9wc5jI=;
        b=VTyY7x3krd3cttXtdR4f6cpoqG5B5iQPOiGQYZ1S2E8ojrAml5AbgfT6MmiboF86pY
         iVyLiQB18M0fQIdJxDxBBAuCOOjk5BGzJ8wH1UsaXXI5sOqRAgLI8ANJUD3VN0kvQ8D/
         tQllrf6RxYFgt8pDznqZ39CXH++tLg0vTByo4bVdYj0qQSKi883tw1a0czJlP3Lg7Dqq
         tPlDf+a5PlxQKxywpoDA16XvS365GDSVLKizOfowehnadQdBqb6oUjpeaYcBkF0w3A0F
         FUZUelPzY4mzMdmfGo9k9Uy+EuG/YMM3+k3NKphf9varOFZNukx9cqBCgcZUsUR0vmaH
         wX4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764083938; x=1764688738;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=j8DnPuPRWuF47udyl8iF/eaeM0cBaAUVmHXO+9wc5jI=;
        b=XlxzvZQNgfSjbOT/LJ3xC5x/TxTjwRJjKS/zSMBYHb5UR32y4X4ZkZyzdtzwNJReCn
         49SVs4RUaNgXxmYYtZCFBcUHE7B++yz16oGESRaaM34Us9XCW+ucyXh+qyvjHc2PDOU/
         2uI6W0FHTLgNhD6ngRnXFu+Scw+7wa5/G4jwuduHGoJvJwTsh4Xp1bbn8nHd9DQQuymO
         PFJb4Ako58Yqx+7faH6b8ZoxnbDK8iW7Rd5jEKH9xBR17RWoNatPIutNdfftzPzTn/XC
         OUJXiACT7fyGAR0jwJYN2U5FTC89GiCWHECB5Yrtz+XsVSd8+Hp8s4I4Mge6rD9kJZzD
         b7zg==
X-Forwarded-Encrypted: i=1; AJvYcCWpKVGGoRQIEhWWsdTJxnG0QrTu/CWIFELPDNtTIYiTq43ksakArfyNXgL88GcXM2F4wp4nMUUxXRY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwJp9jj9VLTvTVn5LOrTbCXpp/dJkpQjX9P5U6ZzbOeyrU3lajd
	0acoD+ZX+07aeywBFrK7v9lReRSEDO+qGeStro7bY5fFCssIkd3o3bCSxZnQiVP/Dw==
X-Gm-Gg: ASbGncvUQhdnrZe/5mvxeURzw5+VzqTvAiRKSF+Ut4bpA7fMZLvCJuBeMC1bsXlbq8M
	k30pjU6Wrg1R3fM/0E454vDn46DJakyEsYvkPPfO4j/nhosWwCB/PWOGYDJybRpn6a9kcDcDHRY
	Gx8AURPP7sIU3mQrm9fTuO6c2cK5KjRXRsXQS3m2qg6rwKJr+Iwk5IWVZky60ziK1WYCgEZX8V4
	WiLzxwopOxD6oShkIu5qhIgfzV55UruneLJFNZ1p/YvmpO75CnTSZQvgLVBIuF4AnJD0lE4Iy3P
	Tq4ePL1n7qkRP+75l9TZo4fo1mkWPCAdvOCtbpROPMhjoLuOgQ03dHmViaMk7cb20SF1nyHkB9g
	MWVswVdPc6Aiq6VZKMMq7JaDIfNJTj8D8sXWkmOIiYHbX1Fv7pK2AL3WM36CdA+i8i6eKDPVXiO
	6LkK6Gc8p5o18dSzafkBc/nG3y0SGlullA5EAfwTmtFwhwpBVBNKjc+MokARTk
X-Google-Smtp-Source: AGHT+IFtV5dImqwXyIHt/ABFZkCNQR/+CSFvyklzHF+eRSMemkqTRoREec6ardNeipvYy6xNmcY1Fw==
X-Received: by 2002:a05:600c:1d1d:b0:477:7a87:48d1 with SMTP id 5b1f17b1804b1-477c01ff5bbmr189193295e9.30.1764083937857;
        Tue, 25 Nov 2025 07:18:57 -0800 (PST)
Message-ID: <f3952047-44bc-4b5f-a1cc-ba127cd84de8@suse.com>
Date: Tue, 25 Nov 2025 16:18:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/24] xen/domctl: wrap domain_kill() with
 CONFIG_MGMT_HYPERCALLS
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-9-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251121105801.1251262-9-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2025 11:57, Penny Zheng wrote:
> Function domain_kill() is responsible for killing domain and relinquish
> domain-held resources. and it is only invoked under
> XEN_DOMCTL_destroydomain-case. So it shall be wrapped with
> CONFIG_MGMT_HYPERCALLS.
> Tracking its calling chain, the following functions could also be wrapped with
> CONFIG_MGMT_HYPERCALLS:
> - domain_relinquish_resource
>   - pci_release_device
>   - paging_teardown
>     - p2m_pod_empty_cache
>   - relinquish_memory
>   - pit_deinit
>   - iommu_release_dt_devices
>   - tee_relinquish_resources
>     - ffa_relinquish_resources/optee_relinquish_resources
>   - relinquish_p2m_mapping
>   - p2m_clear_root_pages
> Otherwise all these functions will become unreachable codes when
> MGMT_HYPERCALLS=n, and hence violating Misra rule 2.1.
> The reason why {arch_}domain_teardown() is not wrapped is that it is also used
> on the failure path of domain_create(). And the exclusion of
> paging_final_teardown() is blocked by domain_destroy(), which will be
> triggered when d->refcnt equals zero.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

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



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 15:37:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 15:37:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172045.1497132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNv6J-0000cm-Q6; Tue, 25 Nov 2025 15:37:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172045.1497132; Tue, 25 Nov 2025 15: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 1vNv6J-0000cf-NU; Tue, 25 Nov 2025 15:37:07 +0000
Received: by outflank-mailman (input) for mailman id 1172045;
 Tue, 25 Nov 2025 15:37: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=x8HM=6B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNv6I-0000cZ-NJ
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 15:37:06 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9796d0ce-ca14-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 16:37:04 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-42b3b0d76fcso3549998f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 07:37: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-42cb7f2e5b6sm34688263f8f.1.2025.11.25.07.37.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 07:37: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: 9796d0ce-ca14-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764085023; x=1764689823; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uvKePOQK/JgThFPjmPU0QzoZbOmKCWhdAOZGk9NK9rU=;
        b=MBE5Ux3TBwlMkWyiV/hQGqi+yXOWL+vEgdd1jLKYwF1Wf9+iNnWaGTm71A4DwShdzK
         8vBM8+XPFmrQMdSai0VYG572s1ywjAugUdn2CW1cYksqlfMZjRxns7LLRea64YG7Dqw9
         TosA4xMvP89yCM8fw1ilZRDoBEYv4cgeYkiOPIWpg6gggkyW2BqndakPN0gTvVXb74To
         8CIAERgy/el9Zh4H5KmUlN2L7DDv8RBFyA+dJFlpAxgZIFN/RqItc+0LPfj54ePQrPCE
         XDruLTGiqBe2RCTdeSubUd+76Nys6qZ6E+9j+fOzCEbghj1IrLFkfjOADIjFIpyKv9Ki
         GfGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764085023; x=1764689823;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uvKePOQK/JgThFPjmPU0QzoZbOmKCWhdAOZGk9NK9rU=;
        b=R7/ypE3ODTtMOEigxYAfU/Vfl2n80bELs2R8TbX17Tuksm/qn1pxHxf43Jqhy9iDXj
         EvKNaJW7josWPOVlLWZqnGZ4fBnzYHXcMyAjwWalf9gum5+tHp+wmbnUWg+NdXg5vMDl
         H1UA5M47bwF7uGHjU8EogORSYhm2d0KeCc6Mxi21aeMu/ZwHgSk8Fh/0SwtWODKI3J7e
         +a41HznhCD78LLlTrqQmOL+4HmkWXUOiUwo+7tnVqc4a8AOW9qXtmUa77xztg9CC69Ly
         FRFOp8JZr6qZqfUcN/31OhWIyWhlDSRnmJscDNvhoIUMolZpZWaSyrsdUPTyjo0MMy+H
         qNaA==
X-Forwarded-Encrypted: i=1; AJvYcCV/c9s8JI2wiWRThUF/iZYUjcHWR98Vw19BJwVCq23k/EDsYjEZWqGQBgTV/jHajV/ET0SzlC8uSCU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwaG43KRSPtSrQ1p6O0TpCIl+GCMkOJqXra4DFxHu5OKUcfES/t
	UIgdDZsntNaFfj0BOqznmn1eKSPYQFJEVwlX3omiGD2hnxwQnePC9MnSuhbTUAkSgQ==
X-Gm-Gg: ASbGncvbao4SwI50auvaRnrh4H/OlzTgkXjAPO4MLj1iTwSraMToDTqgfMgFusuWaqV
	BEKCH+INixy8a4WPb4rUDDVfjzhrWjRmKFpE+Svcbk8yNFkI/GDCl1QFk50dGRUORXBycHaTMAT
	5Y5Diu/yX4UDYzuXIJI77BQl6OFMJ8eTLJouozxKF1LquIy5NUhHCMpG9NH/4qpohokRtcfZGRW
	mr8xRlGNZHUFJ64Z+13Xn/9HuSQwG8oEvUaYAzV7ngGUSc3tRUceTfVPDoBmeJrVq5ZlUWIcOJh
	p7TvYeZMizoS63pyWrkE350rOdrLD5I49p3ANQmVb7oDlllZqWUbJsv2Lw+2uyAkLHGzBXbIiGd
	MjIVr8s5I/Rzq14CmA2lGg1gSzldDOkwtFhQCNBJZmvPjAHEAdvG4Q1F/rpDkDqeV46xKIePp4F
	0ttXCa89m0688b8gk+IWln8//cYkg8lcdO40zgMl1i+XotDzH0LMd0gr0Hd2IL7abM
X-Google-Smtp-Source: AGHT+IHInzVcuUN9DSQvVyI/DQSbntoKv1+Amq2se8Dkzvv8te6qiWaNwnc3HPWOBP5R5vGndkEkXA==
X-Received: by 2002:a05:6000:4313:b0:42b:4177:7135 with SMTP id ffacd0b85a97d-42cc1d35160mr17432900f8f.41.1764085023433;
        Tue, 25 Nov 2025 07:37:03 -0800 (PST)
Message-ID: <6e1dd697-7276-4d1b-841c-a9b1594fa858@suse.com>
Date: Tue, 25 Nov 2025 16:37:01 +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: ray.huang@amd.com, grygorii_strashko@epam.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-15-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251121105801.1251262-15-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2025 11:57, Penny Zheng wrote:
>  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(-)

With this diffstat and there being quite a few HAS_PCI under
xen/drivers/passthrough/arm/, what's the (PCI) deal there?
> @@ -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

You don't zap the hooks themselves, i.e. they end up being NULL now in
the (still only hypothetical, provided the Kconfig change will be adjusted)
case of MGMT_HYPERCALLS=n. I understand the former two hooks are still
needed for DT, but at least .get_device_group_id should be properly dealt
with in xen/iommu.h right away, imo. This would then also clarify already
here that that's the plan for the other two hooks as well.

> --- a/xen/include/xsm/dummy.h
> +++ b/xen/include/xsm/dummy.h
> @@ -407,7 +407,8 @@ static XSM_INLINE int cf_check xsm_get_vnumainfo(
>      return xsm_default_action(action, current->domain, d);
>  }
>  
> -#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
> +#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_MGMT_HYPERCALLS)
> +#ifdef CONFIG_HAS_PCI

Why the separate #ifdef? Can't that be folded with the #if? Are there further
changes to be put inside the outer #if? (Applies again further down as well.)

>  static XSM_INLINE int cf_check xsm_get_device_group(
>      XSM_DEFAULT_ARG uint32_t machine_bdf)
>  {
> @@ -429,7 +430,8 @@ static XSM_INLINE int cf_check xsm_deassign_device(
>      return xsm_default_action(action, current->domain, d);
>  }
>  
> -#endif /* HAS_PASSTHROUGH && HAS_PCI */
> +#endif /* CONFIG_HAS_PCI */
> +#endif /* HAS_PASSTHROUGH && MGMT_HYPERCALLS */
>  
>  #if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
>  static XSM_INLINE int cf_check xsm_assign_dtdevice(

The DT counterpart, otoh, is separate anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 15:42:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 15:42:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172057.1497143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNvBE-0002Iq-Ba; Tue, 25 Nov 2025 15:42:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172057.1497143; Tue, 25 Nov 2025 15: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 1vNvBE-0002Ij-8b; Tue, 25 Nov 2025 15:42:12 +0000
Received: by outflank-mailman (input) for mailman id 1172057;
 Tue, 25 Nov 2025 15:42: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=x8HM=6B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNvBC-0002Bp-TK
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 15:42: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 4d5fbc95-ca15-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 16:42:09 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-477563e28a3so38805465e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 07:42: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-47906cb9715sm16727775e9.2.2025.11.25.07.42.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 07:42: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: 4d5fbc95-ca15-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764085328; x=1764690128; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lNldLJF1+tuierFsg4r+g67xA1Ykc+it8mYmMDrCimk=;
        b=aamMn8puGUDRWKlBHXHA+dShVGcSy48JyfTwF3AJUuw3MIMaDMkioku/T2f7K9kuDZ
         /VhuEAv4gIxksnPG8kchny3m0RcNPlUweOPevxu+CK91nQfTXFEeb4JOaaPlwIf8jqin
         qn+mDpseZnJckm4SlHIBbHMYgjAVoa+hhhRsS3j1r33U8OoCf1kMn9KYCebF1wSHzHvv
         Nvxqw5+9fKp8qsybwP5PU6l5W/Dbm/D4A9WEHJLMJES6GmdSNKR3clBy1DPxENhC64O6
         xr8EVKUWRQnrMvovxj16QbwAbn2LuSnKfn4+KB0XpXzZgeN61bDcOC0fcFkMI+2GxAnY
         Oqqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764085328; x=1764690128;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lNldLJF1+tuierFsg4r+g67xA1Ykc+it8mYmMDrCimk=;
        b=mh7AP5OrsnVpJIEiBh5ot8utRTs1qyJ2UjZnr+CFoxBJtk6Q/VSEo1yNHz9UfS42kD
         vaom/AmrHuVHSxT+OPyE805gPYwYeiO6RL+hpuxgiHIiqeKfZogAa7aR4FgzJmmQR7M5
         IAxVaQ24Sd6zIjKD/FmakrivigPRiQjANb9eCE0VZ7qPbooN2xe3lveTQjYFBuRS5Cpt
         t8tNhyWdi81Ux36oh+fC/6gj8C3+a+pnyBWI+LXnvv+T6bzBz4NqWZD4tmJi8ABhSwzg
         FOncjLsQ42338VZ123oeGQcZ/uePlpzVuOObos/bIGqvCbCXJTuyaJJydqNik0p3Cwvk
         Xfbw==
X-Forwarded-Encrypted: i=1; AJvYcCV81KbpfhsB5mHc/F/LQDU+hhx91Yq4LyfcRH7ytQo/zjpI+qjZ4RBrF6pDd2vAxcUZRDjg4scAu/o=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxc95z7v6oEaA/fSHXG5paQzGk0lQnjw+GB914IyebqoFH2vTMJ
	7zbrQeNiWi3UCS1yDipfGWuszst4RcfheEDv6x3m6ZxHlgQfB4yTMsEgn69e1hAKEw==
X-Gm-Gg: ASbGnct2EXPPGV48BtSXz8WFETKzuOdLIbA6QmclHteTWVA8A5ma6KK1TRWZuB21uZB
	JmuMPYwjMEiZNj+2SWaGKPm4pg4X4/DT3/7sqdGo7vggoo8rytV5jwTlDMabnAWzimJC1asgeeo
	j/Nx4iS2dLJF/a8lwiYXQn/VGamtoJe0uNoPPME8lnCT7/dWHZ0Gu4opjqXV175blBDzTUuRXOY
	weKW3Bu0RNs6eB05kubQyjSF8QEqDZrifAEb23B0fYqCZVBLjCrb8BlTaHhxTz+xah1fny4x/wL
	hDQvP1Sgx/iv+tBa+L9wTuEoHEAB+G7cu4DZCDLZcj02KSeVWirE0YZNjEuou3oy26GOhNYM7bt
	wOHr3YRzyVb1q/NcZd6joX9dRMTgDCXZGTLTX6Q+15Vrsnu5cr3zmE1TXxMniBFz8xGkgkk4boD
	962EE3iLGRTYK99jJVCAoFTM2fqvYwu2ZsejEgeRW1tO2SaoFC1zE8pZ/Q/Ws37r86
X-Google-Smtp-Source: AGHT+IHpSOu7Xn8IC2IfClRckWITgkJyIa++97PAe6Fkx0f0gMtM29ud6TXxHSVA7XKDCoD7QIyIQQ==
X-Received: by 2002:a05:600c:204b:b0:477:9d31:9f76 with SMTP id 5b1f17b1804b1-477b9ee4fd0mr148359275e9.12.1764085328483;
        Tue, 25 Nov 2025 07:42:08 -0800 (PST)
Message-ID: <bc60f6b1-fbb3-4e8d-8d88-10ed73581623@suse.com>
Date: Tue, 25 Nov 2025 16:42:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 16/24] xen/domctl: wrap iommu-related domctl op with
 CONFIG_MGMT_HYPERCALLS
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-17-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251121105801.1251262-17-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2025 11:57, Penny Zheng wrote:
> Function iommu_do_domctl() is the main entry for all iommu-related domctl-op,
> and shall be wrapped with CONFIG_MGMT_HYPERCALLS.
> Otherwise it will become unreachable when MGMT_HYPERCALLS=n, and hence
> violating Misra rule 2.1
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> ---
> v3 -> v4:
> - new commit
> ---
> Commit "xen/domctl: wrap pci-subset iommu-related domctl op with
> CONFIG_MGMT_HYPERCALLS" and "xen/domctl: wrap device-tree-subset iommu-related
> domctl op with CONFIG_MGMT_HYPERCALLS" are the prereq commit.

You state the normal thing here: The general assumption is that later patches
in a series depend on earlier ones. What you want to state is when this general
rule doesn't apply, i.e. when patches can move ahead (some or entirely), and
hence can be committed when they alone are ready, without having other
dependencies (or with having only some).

> ---
>  xen/drivers/passthrough/iommu.c | 2 ++
>  1 file changed, 2 insertions(+)

The latest here xen/iommu.h also needs touching, as just said in reply to
patch 14. Unused hooks shall stay around.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 16:00:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 16:00:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172072.1497152 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNvSR-0004Y4-Qx; Tue, 25 Nov 2025 15:59:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172072.1497152; Tue, 25 Nov 2025 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 1vNvSR-0004Xx-OT; Tue, 25 Nov 2025 15:59:59 +0000
Received: by outflank-mailman (input) for mailman id 1172072;
 Tue, 25 Nov 2025 15:59: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=x8HM=6B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNvSQ-0004Xr-PL
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 15:59:58 +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 c97e7bf1-ca17-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 16:59:56 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-42bb288c219so4880831f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 07:59: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-42cb7fba201sm35048338f8f.32.2025.11.25.07.59.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 07:59: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: c97e7bf1-ca17-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764086396; x=1764691196; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GO0G09FMVly027z5BysMjAWwAxwGMJFGrF0Wgwf69MQ=;
        b=ZLXYwaPBtxqUXgFgryxgaBQiPFqnTP484H98M0ZjnoHQDKV/q+O0q3ione65wkd2Mv
         afoo5kv3TQQwB96/+vySd/HbWGUJQr+lfr3nv0fopa7xjGSgjBUtrDdn8IVtxqmcDu3F
         jbaUERRqb9SLjJ6Osj1udPRIdXTOafeO0M6ooyWdS6OAPtGpHgz5T37detq6ijUZhpVu
         3BpH3Ym1ffoNzXX4CFQ0VXjOjSK2q8YDOMIKLFrvJBkHQkvmAfrmzUOsxs3u/qxnrlaQ
         wfh4LYv7BqlIljkVTcUriegD+ILFF5kJMZa+PMnilay+rAOWxdEqWS0dGaLq2UsuhnSa
         917A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764086396; x=1764691196;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GO0G09FMVly027z5BysMjAWwAxwGMJFGrF0Wgwf69MQ=;
        b=t9dCK1sdO0qKFK8G41IPu0p8hvdt90XkKyBWHLw+3bM8ruiIrXY87koF526jmYHIXW
         +HgGeIODDOGHFbQEz4maVPUe257qZQgm5hb6nj02dTNFYaG1K8S1FGFRNzrZn2o1kvkh
         0ZUDB2nKJuvCGmnLJ7UPJRZngWnPHzbPrCtmByEDogXjek5y68SAjgyL82GNjT1SiS3m
         UWG+jxxfM+u4Q5X559wc1vRlcEJXpKn/DbYBfMK+CTpefXWs1UfE3RL4CBqdMLlp9q82
         ejg2QLX86YPocdnQw0tIpS//H3ZYhIjSQApjdu5KauwAs82bX/eiV5w800guGRdWcbhT
         u97Q==
X-Forwarded-Encrypted: i=1; AJvYcCX3TAWvVk/i7Ao2PLR1ne0gjuejhRRJ6LVwdsGdD9FB0cnW+ZH9gBIEYNiqx03puUzsFOfP4tnwpOs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwC8EybSG3NcMnLe8KVLYAq/SRzzpoULuZO6F1K4qSzsa3BJmOK
	Rke7nIZdFl7Ln3HdYNAGE7rajGTEpFYepyiXygl0YuT9rQCs65JYmCjgJEDWmwmF8A==
X-Gm-Gg: ASbGncuDgz3SukprQRkbYAbSQTWajGl+ztPBelCHascIDsKWW/94Yg66weRQ683aCVu
	RX92A68IxSEXMlxTROcJSjeLfUdB4ahLjMYyLcGViN5bNvLDMkpPMFTsj5H/EgKuUTu6OtJxozq
	8/gr8sr3jVhz/x8YI1F7/QXeItf7EIqIZ+YyJLQkr+YDXBlx34SI9JHnB95Bv6kluYUdicrbIOT
	IbNUDOy09k9sMg+RWAlmm7w/U6FjJva44G5m10hk8XSNyT7GfeOGWH9C9oDcnXg94/IHzN6+zm9
	6whOBWEl9rnvohePcWNlwlatdT7O0oNQSPJIHKj9Q2tD/ZENJ2/VdQlU+tJvl9mqXVRBADDg6jg
	tJxnIQL2Mr+OxqvvtaV7NOIQVCNg/+uVdlAC2D3m7DyMFIqtIuJyx7Pg4WzDaUi+cjjKsaoCUTv
	PaNPYUpctdlJSrz68uwLWg7sffB9GzqWKHdg5ldKVo2MpCaNCjPHRd22fVjmAbQwbD
X-Google-Smtp-Source: AGHT+IESJoVQJC2bWFnCW3UiQzZ1ELuIjmvAhI5SYOI0n5EUR5CyCm9aNd2DLvsPZpn5LDwr1f4rWg==
X-Received: by 2002:a05:6000:2484:b0:42c:a449:d68c with SMTP id ffacd0b85a97d-42cc1d0cf34mr16581757f8f.30.1764086395765;
        Tue, 25 Nov 2025 07:59:55 -0800 (PST)
Message-ID: <13cded84-19b7-432d-a9b1-2b9ad9f83283@suse.com>
Date: Tue, 25 Nov 2025 16:59:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 19/24] xen/domctl: wrap hvm_save{,load} with
 CONFIG_MGMT_HYPERCALLS
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-20-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251121105801.1251262-20-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2025 11:57, Penny Zheng wrote:
> The following functions have been referenced in places which is either guarded
> with CONFIG_MGMT_HYPERCALLS or CONFIG_MEM_SHARING:
> - arch_hvm_save
> - arch_hvm_check
> - arch_hvm_load
> - hvm_save_size
> - hvm_save
> - hvm_load
> While CONFIG_MEM_SHARING is also dependent on CONFIG_MGMT_HYPERCALLS.
> So they shall be wrapped under MGMT_HYPERCALLS, otherwise they will become
> unreachable codes when MGMT_HYPERCALLS=n, and hence violating Misra rule 2.1.
> We move arch_hvm_save(), arch_hvm_check(), arch_hvm_load() and hvm_save_size()
> nearer to the left functions, to avoid scattered #ifdef-wrapping.

Why would you move things? What is in this source file that is of any use when
MGMT_HYPERCALLS=n? The only caller of hvm_save_one() lives in x86/domctl.c. With
that also removed, hvm_sr_handlers[] is only ever written to afaict, which means
that's an effectively dead array then too.

The final few functions ...

> @@ -390,6 +391,7 @@ int hvm_load(struct domain *d, bool real, hvm_domain_context_t *h)
>  
>      /* Not reached */
>  }
> +#endif /* CONFIG_MGMT_HYPERCALLS */
>  
>  int _hvm_init_entry(struct hvm_domain_context *h, uint16_t tc, uint16_t inst,
>                      uint32_t len)

... here and below are only helpers for the save/restore machinery, i.e. that
_all_ is also usable only when MGMT_HYPERCALLS=y. Yes, that's a lot of further
work, but what do you do? You'll then have quite a bit more code removed from
the set that as per coverage analysis is never reached.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 16:30:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 16:30:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172088.1497187 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNvvo-00029J-8b; Tue, 25 Nov 2025 16:30:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172088.1497187; Tue, 25 Nov 2025 16:30:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNvvo-00029C-5x; Tue, 25 Nov 2025 16:30:20 +0000
Received: by outflank-mailman (input) for mailman id 1172088;
 Tue, 25 Nov 2025 16: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=LUk1=6B=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vNvvm-00027J-MS
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 16:30:18 +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 05c58f6a-ca1c-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 17:30:15 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by PA4PR03MB7279.eurprd03.prod.outlook.com (2603:10a6:102:109::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.11; Tue, 25 Nov
 2025 16:30:09 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9343.016; Tue, 25 Nov 2025
 16:30: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: 05c58f6a-ca1c-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wRgMLTni9sXliXI4y0doPAwKKr/BdWLmyllPAAwgRR0LSjYaQ9QA2cXkSWKJRLddQ/2ysxzvxI8qwND81N2/Lg9GveDg4E5cSEWNAQuezX8HiN2bm6ZvWn/a70M4+D99p2h3J5SnX4Mw4ewTwLD76Au/aZnogBQo5bqEm9OVMU67SHPggLCMY8JnUDVHdMKKZhamXTQ/SrEh+3PX2Pxs7XDotD2F/GyDZ5XcwYO5oiPWKD6V5R7nCU5HFgA7mvke5z1Xz/jMYzmheD0ngs7AYatFEcwpk4vjqRfgYLtGPHsna3WCbS2nk9OOZML5y7dbKLu5xZdKd9muYZzTClsu9A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1fYYWaji9e4TuksCboL6iP1HajnxgH2P8fbiA+Ip9B4=;
 b=NcqTVKkOWFAvYRa0jVg7/+XkVk3tlPR01MEqXy8TVvZluiVpDG4sn1G21izReDXnR/K0i5ZXAAwo21+VAF4Wu5fcoC+Quzm4Vn3Qz4zS05I8T74Ck7LgarX+v5y6tejoOxSN2n7aG3RwZpNycf02e5/DeY0lD+tVQGVgbQytOUNQcmUZXEBLOdr/xMq8bOx0P59IKnhYI/m6e0989rzTEEX1XafNxUSVNuskl0SPdS07ZRAQkGLVWnOB6t/eTIHN6GQaLYssDy9Bjd2ctg7Z1o/u5h4SDBUFGzL6ctXxJPHnahS/bA+ap9y9K2SGqJtrAi7hqEFopwIQEEIJuAWxvg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1fYYWaji9e4TuksCboL6iP1HajnxgH2P8fbiA+Ip9B4=;
 b=NoW2ATMnpI3XbNp1gVUxAJ+vMBmXlVDAuLdLuYTe2kYbkcKguHF/ntlADz7vmyXM9UkdXhiKsuFd0tHK+GkbabflVIXtvnSqnF6qJQjXjbgEL4FeiUVuJwrggIZW07gLMNu3Uel3D5ZfHZ7X18b1NMBloN2Tp7sSn2vWlWuojTh7TRV78dWQC1QYrFJq+xe3/xFBnXmiUVg9FSQ6lRxDioIbRHg89E+o3/EV/T/AxhaiEOyWPeuf+IoaT+z0F2xa+d5UOsCminT/8F9bO7sURb6+zmd/Q3z9TBmD7p50uYNHQ8CK0YZlucG7xXAXSUnxPSllnSM9YYIxEqu50ppCJg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <bdd2555d-4c56-44ab-b942-a4977dd50c48@epam.com>
Date: Tue, 25 Nov 2025 18:30:08 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 19/24] xen/domctl: wrap hvm_save{,load} with
 CONFIG_MGMT_HYPERCALLS
To: Jan Beulich <jbeulich@suse.com>, Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-20-Penny.Zheng@amd.com>
 <13cded84-19b7-432d-a9b1-2b9ad9f83283@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <13cded84-19b7-432d-a9b1-2b9ad9f83283@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR3P281CA0194.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:a4::10) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|PA4PR03MB7279:EE_
X-MS-Office365-Filtering-Correlation-Id: 88666fb3-0eee-42b5-5a3e-08de2c3fe666
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?TTJ5SFdUUWhaNis3Wlo0RHFCc3FEV0czTUMxUWdwbnJqMzR1UXlCK3hCZjFa?=
 =?utf-8?B?aGc2YzdMVDl0RGxWbHVhSGJVNXlmdHFNZXpQR1V6K2lSMW1rWkFxalQ1Y0lK?=
 =?utf-8?B?eUtrUUYyZElsTlJJWEJiRDBNUWc0d3RQMnA2ZjRyaDNueHdTNnRCU1VzWk9j?=
 =?utf-8?B?U2tvWkZ4ZUxPWnZ2VjhQOFFoeTV1QlhIMWljRDJ3c204S29XYlFyanphU0kz?=
 =?utf-8?B?bVRoRXZiUTBvdXJxNWVOOWNkZW9GdXg2MERiVUk3RlFrN0FLbXU3a3o0TWMw?=
 =?utf-8?B?QlVjVXZWWUpTOTQ4MCtBUnd3WWpMSEdnTkp3SVNzL1hNNm9kWEhIRlJDc2dS?=
 =?utf-8?B?RUM3RlUxa1hqZFFsMG81bXRubGdjNXR4VTByUC9maml0cDZ6NFV2M3IvK2F0?=
 =?utf-8?B?ZHhNcXJCaFQwQXlHWDlpM3ZJM25XOXkyRGl1SmRudWIxWWIvRFJ0SG9ndXFM?=
 =?utf-8?B?OHE4YlNBU3RDbmI4cVNxU3d5dE9ZT1BnSEFUWjFNTmhWMlcySmFucVBDOVZE?=
 =?utf-8?B?Wm5yRVhsc04xc2t4N25iMjNLU2JPV3cwWStMWldaN0dJMzRkV0pidTd3RkpX?=
 =?utf-8?B?OGJka2krb3JTdU9qVEZqOHk0Y29ZdEZkMGdERkVxeTQyWlhkL1hKc0VHQWYz?=
 =?utf-8?B?OEo5RVRDRVVIZ3RMclFDZlhVZWpVKytNU1BGVktRdXNwZ3RjRU1WSjcwY3Vz?=
 =?utf-8?B?Y0JGd01QS0djbTlPRkgwRDRLMHlmYkJNdFdJQXBTMWtkWVBZKzIyQmttdDJ3?=
 =?utf-8?B?dWg1a0l1Q09IaWJ2WjJLenVPWU5NcDdWei81T0pzQjN2WDJpVDZES2lMQnBN?=
 =?utf-8?B?eG4vL2ZmMDZoNkhPQmNrRU1vUm5QeER6WGx1TjQ1anV4Yy85YkZ5UGRkcFRW?=
 =?utf-8?B?bkU4STUyVjJvNHYwakpJUzFoU2tpUEJzN3JwSmFrZU1rV2MydkpiWGpCeUhS?=
 =?utf-8?B?aDYrWjBvblBnbys2MExJV0pyWlpUTGJEOGRFcytwUVVoSmNaNGw3K00yd0Iz?=
 =?utf-8?B?ZjFBTkRwWVhDMk1PWUJ0L1J3RWxIZlBoVnppd3E0TjV2MkVvS3Q2QjdCQ1FN?=
 =?utf-8?B?ancycTdCbDlRREtBdkZFTDhFeG8xMEw5VnBrT0xjREg4eFI2bmpaM0NuMWlx?=
 =?utf-8?B?c0IyemtBUFdGR25CczdkbHlZWjBQVGxub2pGaHd1eUtHUFphV2JQSjFJVGxU?=
 =?utf-8?B?SXpVMmVmOFpEdDZQSUZvQ3pnQUo3WjR2aVNhcHNTU2JCTDJnRjViZmcxeUhj?=
 =?utf-8?B?MUc3Q3RHaDh1QXRyaVNJaFpRMldVOGEvY2ovMkhkM2U5S1ExSTRHNjJocUVQ?=
 =?utf-8?B?V0FQTGJhbi9NeGdBcGd2T2wvTWNnTVFtWWM2eTY2dDJ4N1VEWVJQZ2JtQWtw?=
 =?utf-8?B?OXl1YkRvWVVmSUEwUm9GY1RONFVmRTRtNzVmUGlyNk8vL1M5dVljUzBQY05u?=
 =?utf-8?B?ejFwYkVDeTdXQlQ0ZlA4VGl2b2lpODhkM0FDQWtsbVA0N2F4R051L3hDV2c5?=
 =?utf-8?B?L3NHbHlWOTF2QmE0dGdIYlhiY2h0ZlFBNnk0bXA4NzR3Vk82ODlDKytpRm5P?=
 =?utf-8?B?ZjJneUNFVWxCSHJJaklPUlZOaXFwTjJHeGhQNjVCVVhlRlF3b1RBWW1UNjdO?=
 =?utf-8?B?Vkd5NkZ4RmlaVEYyR2pQRXFwdzNueExYNERrWW54ek1KZzdsQjA4bllWeVBS?=
 =?utf-8?B?Rmxva1JBKytwdmdzMENWRjNIR1NFWnNWN0VmSXlXWlluVDVJT1RlVTlRNEhH?=
 =?utf-8?B?VTlKME5RQlJSY3pKTkRGVGkxM2dKVks5a2gxY1BTc3FBbHFJckRqY3RIVXls?=
 =?utf-8?B?VFZEdVh6TWxsRmM1SHczNFNsNkNvc1RTblQvbHlCQUt4cG11UmRWemQ0eWFZ?=
 =?utf-8?B?bDRyRGUzV0VDRWVpSWpsLzlibmdNTGt4eUJIWTBsT0tDQXRKcENhWXloUjc3?=
 =?utf-8?Q?0VQ5pmzb8itA5+TUMUN60gJKWLFJs4HF?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.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?aGlMZXQrdzAwTnE0bVNIcUJUOEp2VnJNeFM5UW5wdG5LcEFLNXpkWXZuTk5X?=
 =?utf-8?B?Smd3NmRWK0dKcnE0cXU2Z2lSdFdSVENUZTNXcWE3dGFYSWZPM1lUcndQTHFT?=
 =?utf-8?B?bFFWNDZ5UDJ0RWNnNmFMU0JqM0hreFFHcTdJbHc2N2RpUnJybUZvTUF2SjN4?=
 =?utf-8?B?MUw4UHFtZzRIUnFObGJUdFpYSlM1K3VwLy9UVGtVTzduVWU0b0gyb1loMzd4?=
 =?utf-8?B?NGtNN3QyUTZrSU12Qnhwdi9CYXh4M3F5YnhzdDlNV20wekNNQmtOZjFtdWZv?=
 =?utf-8?B?TDhrNEVyWDJ1ZG1nQ1I4NTE0SC9JQ2s2QXdYTVJCaU5GTnZLRG44VXhuc1Fi?=
 =?utf-8?B?UnM2S0ZUS1UxbWE0cC9CWG9wUHhBTGNkM251S05KNjA3dmRKOWlXYVA0Vmpq?=
 =?utf-8?B?QlhsVmdOU0t5UDVwcytjQi8yMHRSSHJHRDVENzdqamRKNFlxKzN0eG1GYjFB?=
 =?utf-8?B?cDRKVW11aEoxVFMwV0xuMXMyM1NKMUlQM0I5YUhxSmdzMVQ0STNSSmtIbmlF?=
 =?utf-8?B?S1NRczh3TjZNYVRqZWVDNHFGTllRNHlpOGoyazIwL3Rmd1MyZjFKazZZL0lm?=
 =?utf-8?B?bFJHb1NMb2kzVVNYVWxxTitBUW1sUDNCZDNRZjMyWndaVjhmTGQxbmozRW4v?=
 =?utf-8?B?aWRNa0szTkljYUpwRVlzSlRDSG5LS1NWZXM4SFRsNGRVRGgyc2dnUVE0VmZv?=
 =?utf-8?B?WWY1YURhdnBCVFBCRWxvVUFaMDNNYWllQnEzeURxZmJaSzZxWE9MR0c5b0pS?=
 =?utf-8?B?Z3FVSnJzQlBoRWJGYmpRazlwcHY2NWR3dDdUVno1eHFmajExc2hleVEwZm90?=
 =?utf-8?B?TTNLdzN4bFdmVXBiVkkyRkJPRGNFTlQ5cnNNaHNJWlpQSk5XYTZFcm5rcktH?=
 =?utf-8?B?c0FmNFN5N2xUUW1waW95dVYyZnZBUUhWRW96bDYwSEJFampqUUg2WGl2QVE1?=
 =?utf-8?B?ZHcvbEYwWEtTODdFYVlqNm9EU3N5eUMzdU00SkozRitIWVR3RWUyTXFOZnFz?=
 =?utf-8?B?WGcwZ0xGRWlJVE5pV3ZOdXNkczQ4QkJzcElQZkpwVTlUdWcrTUVuMm5EVmJ2?=
 =?utf-8?B?QXpxdm55NFB0UkpiNHNibWl1d3FBZVkwSXpEMUZtV1NPdXB4Unc3MkRBVko2?=
 =?utf-8?B?b3JqRUVvVHVOR212MVJ4NGRqRm5QZjVuREVtaVRzVDFhWWp3b0VhZUNCVU5j?=
 =?utf-8?B?M09ybEhaTjBwdjBkVDhHL2dUSklURW11Ylp2VklPM1ZTR0dWN0RlenJacEpw?=
 =?utf-8?B?alk1TDNua1hJOXhwbTgvUHg5VCt6K042bUNZSW5YSlZYV0NhT2k2REtTQ3F4?=
 =?utf-8?B?eWFFZmFJbEpza3ZYYjJWaEJTV084b1VVVkVnVlN1VnM5NHcwdXBoeE9vRUgr?=
 =?utf-8?B?WGlGemlKditabmJtQkxHeHJIbjMvSXRGRFVUb1U4eWUvZDJob0pKckt1NHIw?=
 =?utf-8?B?TGdLZlQvTnZmb1c4WThvMk94d0czZlRPTHI2RUNDQ1pRQkE4b2tVRS9QTGIv?=
 =?utf-8?B?UUZ0b0RXVjNpbmtvcDVPdFdQcXVDRWJ6ckx3ell1b3NtbmYwdldXcVYrak44?=
 =?utf-8?B?RkFCNzMrUlUrNXdtcHpTT3R2SDZXVllnRGg1R2xTSWk2TkYxSUJ6S0pZTWk5?=
 =?utf-8?B?U0lySlAyeUgwZnR2YUI3dzhmY1Z3TmVmWitob1V3bjJWZUJ6ODZTbkczaGhK?=
 =?utf-8?B?K04zdm5RQ1NFdk1wVDg4am1wOU9ZRFY1ZTZYbmlsS2hZbVRiKzU0YlQzY0xE?=
 =?utf-8?B?ZWJqZkVJc2FpM21tNHFFWCtxS0hiWmtjZlY4dXNaMUJWaWJ5Q1VTYmMxbWZ1?=
 =?utf-8?B?V3Q2dDhpUVk2TDNpRmVzbVovRlg3UDhObjhLVlZNNVl4STZHM1RNR1A3cGVu?=
 =?utf-8?B?emlYQzZ0cEhtMUFCUUtrSStFYTZ3dGdlNFhJV3F5dndwNDZKcWFKSzRtZCtq?=
 =?utf-8?B?QUN0ZkZPOXNKQ29FbkwzVkFrWFUzQ0NCcm1WWnNwN2dGY3FwbDM0MXhZblpR?=
 =?utf-8?B?VVBzWEgwdXBrNGtaejY1VkNBMkl4bXZCd3RXVnZQd01jRXNPL2VBQ1pZRW5p?=
 =?utf-8?B?NWdjYXg1cGpZSVZReHNuVmNJdllFOWNqT2s1dGJISitvdUtBYVI1MkdsbVB5?=
 =?utf-8?B?bWRIeElxUXJFeHIwQndod1NPamNWZWZoL1dEM2RjaE1GVktGT0FqQ0gzdWgx?=
 =?utf-8?B?QUE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 88666fb3-0eee-42b5-5a3e-08de2c3fe666
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2025 16:30:09.4343
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Me3NeEXYy9TT3J0BPyRQnqsr22OrUDcqVu9vw5pqC9e/aqKybsrNG1IDKz+XJ9MSnIIGOrFv1OGujA9pTzNUXD3+Codf/zhqghZnqWKTQm0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7279

Hi Jan, Penny,

On 25.11.25 17:59, Jan Beulich wrote:
> On 21.11.2025 11:57, Penny Zheng wrote:
>> The following functions have been referenced in places which is either guarded
>> with CONFIG_MGMT_HYPERCALLS or CONFIG_MEM_SHARING:
>> - arch_hvm_save
>> - arch_hvm_check
>> - arch_hvm_load
>> - hvm_save_size
>> - hvm_save
>> - hvm_load
>> While CONFIG_MEM_SHARING is also dependent on CONFIG_MGMT_HYPERCALLS.
>> So they shall be wrapped under MGMT_HYPERCALLS, otherwise they will become
>> unreachable codes when MGMT_HYPERCALLS=n, and hence violating Misra rule 2.1.
>> We move arch_hvm_save(), arch_hvm_check(), arch_hvm_load() and hvm_save_size()
>> nearer to the left functions, to avoid scattered #ifdef-wrapping.
> 
> Why would you move things? What is in this source file that is of any use when
> MGMT_HYPERCALLS=n? The only caller of hvm_save_one() lives in x86/domctl.c. With
> that also removed, hvm_sr_handlers[] is only ever written to afaict, which means
> that's an effectively dead array then too.
> 
> The final few functions ...
> 
>> @@ -390,6 +391,7 @@ int hvm_load(struct domain *d, bool real, hvm_domain_context_t *h)
>>   
>>       /* Not reached */
>>   }
>> +#endif /* CONFIG_MGMT_HYPERCALLS */
>>   
>>   int _hvm_init_entry(struct hvm_domain_context *h, uint16_t tc, uint16_t inst,
>>                       uint32_t len)
> 
> ... here and below are only helpers for the save/restore machinery, i.e. that
> _all_ is also usable only when MGMT_HYPERCALLS=y. Yes, that's a lot of further
> work, but what do you do? You'll then have quite a bit more code removed from
> the set that as per coverage analysis is never reached.

I have a local patch which allows to disable all HVM save/load code at once by using
separated Kconfig option SAVE_RESTORE.

+++ b/xen/arch/x86/hvm/Kconfig
@@ -127,4 +127,8 @@ config VHPET

+config SAVE_RESTORE
+    depends on MGMT_HYPERCALLS
+    def_bool y

SAVE_RESTORE - annotates all HVM save/load code and, in general, could made a feature by
allowing it to be selectable.
Of course, It all can be done by just using MGMT_HYPERCALLS.

So, I'd be appreciated for you opinion - does it make sense to have separate SAVE_RESTORE?

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 16:40:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 16:40:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172098.1497197 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNw5v-0003rk-5P; Tue, 25 Nov 2025 16:40:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172098.1497197; Tue, 25 Nov 2025 16:40:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNw5v-0003rc-1y; Tue, 25 Nov 2025 16:40:47 +0000
Received: by outflank-mailman (input) for mailman id 1172098;
 Tue, 25 Nov 2025 16:40: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=x8HM=6B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNw5t-0003rW-O3
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 16:40:45 +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 7c973fbb-ca1d-11f0-9d18-b5c5bf9af7f9;
 Tue, 25 Nov 2025 17:40:44 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-47778b23f64so31482065e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 08:40: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-477bf22dfc1sm256938985e9.12.2025.11.25.08.40.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 08:40: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: 7c973fbb-ca1d-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764088844; x=1764693644; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tES4zmwS3vaxkwdUFqxlsBq9lG/kqXqC++8fDbpGh1M=;
        b=azIPds/pgcoYsu/hZElsc/fPp6nJcPohNYWEYedTnlnaDtCaswZL35M06qj1WdGmEy
         l9OsTvshtxx72Muiez4AgYuAUgzwqzxU2luk/vD5rE9q7celcgX2EErhRlFgJIlGWDj3
         lDJZ9IdApTY5mxHsFKRvV931+xjGsU0H3Mwr55PoufdD6ZDnH2UCHvoGQBMmwCUCpb5+
         OwngFLp7ii+/DGwIooVtXDeYVLUi3p32gpYmez7IXWx5SkkjX8elnT5qrKGgdPAT5Tsv
         nsdOjdt45ElJeivg7GxKQAjx0kpZSq0iJQdT3dXM2uYsMFGz3e6EeZZQJRzQdiY17XYr
         HcNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764088844; x=1764693644;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tES4zmwS3vaxkwdUFqxlsBq9lG/kqXqC++8fDbpGh1M=;
        b=t0/6vXkk2r4B53I4AwETDQ10dqx4FuwwJzKzRFRXNjPDk7z8HxBSgf4+i9eWU9UGK7
         BK1Btvas8chH2ErgWLirhDPaYFSM1WgjmGHxCNN2/eJqEhzq5/K1gw+CQKjGq7JpEy6i
         nqagukbrIWOMh+sLoJZR437yCfqYGt909qKaJ7KW9iXynzTV9Wihc0wnup5yV7G115TJ
         kAH5I7KwbO9sPMrmi796ADZdCOO2NpwtUfDXpZYuRBupkDGGKXQ5IFLmYg9jGRJibJR9
         mt673NwRemy0W1oYSEWhBMmPkujLYvY4xrU12Xu/RqI+eMe9RMmZlVw42qnS07ofoDsJ
         Ww0Q==
X-Forwarded-Encrypted: i=1; AJvYcCXqL8KG0XwAU+2DSpWFgc1OrA+ZhkU2VdK9x12GXj1xmG5yGZJP4GVXh7YnF6yw2U6Ewm1Un0un+cI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzyrqdwPx8FTLhmtUjoXyy9NLusWp1uuA1D0JRKNbJ5rinUVA7U
	HKcFjowitYG6ybqWoi+T/bC13ptCCLMiXB4aB89yBZkrdUI82tPdbfBtF7RYKki/0A==
X-Gm-Gg: ASbGncuqXkKlle9CnpcLbBYVZpvMfTlFi6a3GFcaP24CXU3eMp6JH0v8+ZZ/vDnW62C
	USPvy/CoK6HLWdmd30W3/Sm8WGhYG28/7BZp9ZOAO4pjyRnmObWfQoCn5dtI0igiKLCRb1XW+1g
	6B2AaaaoJUWz6AyH7kujim6zd3Vb3ZpQNU9fFfYOZLV6HqMfCF3wEpqJeYK/491qyQK6MoU28Wq
	5hnxF+pUVXlF1f6MspEDglgx4QGiHsRD8KxYPH29fCyIVPROdiuUU2Zc0/CXl33IJrUrqlAUpGS
	r1I1SaNjpjozKz5mLG0wpm4DcWzxpC7l9CpQ/9PkCNpnXytIF5lLSf0wrRHZwEKsN9RpVWBCAEC
	Sb0O0RNR2wmHyIjmQK78XC5wuxtEOWTYUgJWLt6uW6sVLdNIye3S7pEG0fnOr6gN9s27Q3WH+gv
	jSSYNDSgBfvApnfNL29rMALQ0pzfL+wIKf/Fl7PMmWocrksbW+6TYprpVJT9fQ78r+nDd5MBM=
X-Google-Smtp-Source: AGHT+IGfKdzHlbPqPiGixZUXnFKU/IEN1mxzAAymJWn9Bt94tET5r7bBSrYYST4CK0IxGRa0wszV3g==
X-Received: by 2002:a05:600c:1c25:b0:46e:4586:57e4 with SMTP id 5b1f17b1804b1-477c114ed70mr246640535e9.24.1764088843613;
        Tue, 25 Nov 2025 08:40:43 -0800 (PST)
Message-ID: <705a3b5f-3b69-45ea-95e7-877137c6f038@suse.com>
Date: Tue, 25 Nov 2025 17:40:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 19/24] xen/domctl: wrap hvm_save{,load} with
 CONFIG_MGMT_HYPERCALLS
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: ray.huang@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Penny Zheng <Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-20-Penny.Zheng@amd.com>
 <13cded84-19b7-432d-a9b1-2b9ad9f83283@suse.com>
 <bdd2555d-4c56-44ab-b942-a4977dd50c48@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: <bdd2555d-4c56-44ab-b942-a4977dd50c48@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.11.2025 17:30, Grygorii Strashko wrote:
> On 25.11.25 17:59, Jan Beulich wrote:
>> On 21.11.2025 11:57, Penny Zheng wrote:
>>> The following functions have been referenced in places which is either guarded
>>> with CONFIG_MGMT_HYPERCALLS or CONFIG_MEM_SHARING:
>>> - arch_hvm_save
>>> - arch_hvm_check
>>> - arch_hvm_load
>>> - hvm_save_size
>>> - hvm_save
>>> - hvm_load
>>> While CONFIG_MEM_SHARING is also dependent on CONFIG_MGMT_HYPERCALLS.
>>> So they shall be wrapped under MGMT_HYPERCALLS, otherwise they will become
>>> unreachable codes when MGMT_HYPERCALLS=n, and hence violating Misra rule 2.1.
>>> We move arch_hvm_save(), arch_hvm_check(), arch_hvm_load() and hvm_save_size()
>>> nearer to the left functions, to avoid scattered #ifdef-wrapping.
>>
>> Why would you move things? What is in this source file that is of any use when
>> MGMT_HYPERCALLS=n? The only caller of hvm_save_one() lives in x86/domctl.c. With
>> that also removed, hvm_sr_handlers[] is only ever written to afaict, which means
>> that's an effectively dead array then too.
>>
>> The final few functions ...
>>
>>> @@ -390,6 +391,7 @@ int hvm_load(struct domain *d, bool real, hvm_domain_context_t *h)
>>>   
>>>       /* Not reached */
>>>   }
>>> +#endif /* CONFIG_MGMT_HYPERCALLS */
>>>   
>>>   int _hvm_init_entry(struct hvm_domain_context *h, uint16_t tc, uint16_t inst,
>>>                       uint32_t len)
>>
>> ... here and below are only helpers for the save/restore machinery, i.e. that
>> _all_ is also usable only when MGMT_HYPERCALLS=y. Yes, that's a lot of further
>> work, but what do you do? You'll then have quite a bit more code removed from
>> the set that as per coverage analysis is never reached.
> 
> I have a local patch which allows to disable all HVM save/load code at once by using
> separated Kconfig option SAVE_RESTORE.
> 
> +++ b/xen/arch/x86/hvm/Kconfig
> @@ -127,4 +127,8 @@ config VHPET
> 
> +config SAVE_RESTORE
> +    depends on MGMT_HYPERCALLS
> +    def_bool y
> 
> SAVE_RESTORE - annotates all HVM save/load code and, in general, could made a feature by
> allowing it to be selectable.
> Of course, It all can be done by just using MGMT_HYPERCALLS.
> 
> So, I'd be appreciated for you opinion - does it make sense to have separate SAVE_RESTORE?

Yes, why not? The granularity of MGMT_HYPERCALLS is getting a little unwieldy
anyway, so why not leverage what you have to split it up at least some. (Of
course much depends on how intrusive that change is. Then again the same
intrusiveness would have to be expected if it all went under MGMT_HYPERCALLS.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 16:42:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 16:42:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172110.1497207 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNw7E-0004aV-Iu; Tue, 25 Nov 2025 16:42:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172110.1497207; Tue, 25 Nov 2025 16:42: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 1vNw7E-0004aO-FQ; Tue, 25 Nov 2025 16:42:08 +0000
Received: by outflank-mailman (input) for mailman id 1172110;
 Tue, 25 Nov 2025 16:42: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=x8HM=6B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNw7D-0004aE-11
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 16:42:07 +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 ac96f926-ca1d-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 17:42:04 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-47796a837c7so38197425e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 08: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-42cb7ec454csm33838855f8f.0.2025.11.25.08.42.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 08: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: ac96f926-ca1d-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764088924; x=1764693724; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=G01p4XPaj5LCqNeolBfQC454Nxerj+9q94les8wtWng=;
        b=YQumJi1pIVbnbVPPi+PAdiDdxpZfAQm1Ncaq0KSQu550fnAYFhT4R7fD3XOLTyB6A8
         YnMoJiN7kaGx8xpq2jXoZ5X/vMKDnt1ciXiKjPypeGDEj7sLWSMiDNwOUe5OpxUmcEc4
         q+R3GGcaJuScUONASJw/MQPiTa8aj1EK7RJgIohx8o6f4cbH0ybO3BFj1zQzH7Z4N/Dc
         kq4iFCqCAwq7aSm9VWCato+7oOsopyRNxr4Caeu/knjt6GsEmbuWGfYo0A+EyFsQvsk+
         qE0GURC0IzEQoIbZwcIN0FSRSDeXlH3QmWacBNXdsoLogBNUzg82oxrqkMXUYFUvAFNT
         v82A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764088924; x=1764693724;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=G01p4XPaj5LCqNeolBfQC454Nxerj+9q94les8wtWng=;
        b=kJQzK8eGHx7RhlXQ/lGsJxF3E5wDFme4DHlvgLwTBQVZ43cuZxtvqDag1yWumt8CmU
         RGBNHXx8Y5oKoq52IB9U8tu1smcTuRql40Vzhn8uf6rkobWMldr6SALECdB7h3WsIjsV
         N5JYbGN1oqzNiJ3wC4hjXUqIzgHTnMxa57D5bnkytjN0ZTrM+L3ELSdE4RMSWVR0FJdO
         zg+sNZu7mjgv6BCXz3RAFaXCNpdmYQlVHiqgSOfkjPvb5FgBA5h4CpHQPd6/O9umpTEj
         6HxdzNzpaFEVrALlBVI4bjFjSaZaYRZa4/dqnNz+Ha5d/9cGTfrCng355ncj9i74DUX5
         5X1A==
X-Forwarded-Encrypted: i=1; AJvYcCV1kGBiQ/KVNOH0IkprXe1TiDPAWRxcql0mM8fejLvFxQUgzu2AtnrFfkfbRU8vdFMUTGFhkcRm4VM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwtlQmO5Wh0Q1Z1uXjXiQ9neVE1boIL2MxYwvJteQzYEN1s4Yj+
	6eXH57wqmqvRogjn7MeUlthUtg7UiOZ9eqO0VzVRXjV0Daax6wbbQWuWeJbm94qb6Q==
X-Gm-Gg: ASbGncvSOzSS7gSH2QZX058D6uKAWma699F/xKq7bzNmUmIn7Nqrc5dEkmjH3RzAJYj
	xMBhem1grl2wXrcW3NcuvfPZyQBaxPZBUGzyo7EFOXxH+fMRU7mPyKuHTCLcB4VBeSqyQhxNiqT
	4EzsVwLMtIbht5K9uhcqQXFTodHWbvrqGVz2D1qCNy+AJBAEWNgNyBlK6E5fydR5P4c0rs1XZa1
	RsyCJnEPsLiIjFuw925r2GK73V04xEP+J2DY17dc8aerY3+DV1gdixc5fivHlAiL2XthaM77HwQ
	OUjbRUW9pV07fHP/p1dLIwztcVCxQbmTCXgtUIFmy2Au7ZGq7SJneKowWfGkbpA0urEU9TtdjLF
	w2Qm6Jt8+CVz1/9S6eHJPOjDZq0g6EvYCafEbn6G/vGy47qim+YbbqMGz/eAa+B7N3hlfwgXezh
	VwaupWmJ6+IWmgRoizujAqwAcEr2xynxqpRQCjXQR2e94J0pMCr+OEp75v0ihMbZkrZMXyIhYEC
	6E=
X-Google-Smtp-Source: AGHT+IGY+mejem5hggyKgRBMwpvVxkKT56m3TKMMR9iZtnQYxHu0x5U8wrlYOvHrLjUgUQzD/Gwr5w==
X-Received: by 2002:a05:6000:230d:b0:42b:3dfb:644c with SMTP id ffacd0b85a97d-42cc1cd9543mr16360142f8f.10.1764088924199;
        Tue, 25 Nov 2025 08:42:04 -0800 (PST)
Message-ID: <2046b7ca-cb58-447d-a5f2-9a073ca32058@suse.com>
Date: Tue, 25 Nov 2025 17:42:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 19/24] xen/domctl: wrap hvm_save{,load} with
 CONFIG_MGMT_HYPERCALLS
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: ray.huang@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Penny Zheng <Penny.Zheng@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-20-Penny.Zheng@amd.com>
 <13cded84-19b7-432d-a9b1-2b9ad9f83283@suse.com>
 <bdd2555d-4c56-44ab-b942-a4977dd50c48@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: <bdd2555d-4c56-44ab-b942-a4977dd50c48@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.11.2025 17:30, Grygorii Strashko wrote:
> On 25.11.25 17:59, Jan Beulich wrote:
>> On 21.11.2025 11:57, Penny Zheng wrote:
>>> The following functions have been referenced in places which is either guarded
>>> with CONFIG_MGMT_HYPERCALLS or CONFIG_MEM_SHARING:
>>> - arch_hvm_save
>>> - arch_hvm_check
>>> - arch_hvm_load
>>> - hvm_save_size
>>> - hvm_save
>>> - hvm_load
>>> While CONFIG_MEM_SHARING is also dependent on CONFIG_MGMT_HYPERCALLS.
>>> So they shall be wrapped under MGMT_HYPERCALLS, otherwise they will become
>>> unreachable codes when MGMT_HYPERCALLS=n, and hence violating Misra rule 2.1.
>>> We move arch_hvm_save(), arch_hvm_check(), arch_hvm_load() and hvm_save_size()
>>> nearer to the left functions, to avoid scattered #ifdef-wrapping.
>>
>> Why would you move things? What is in this source file that is of any use when
>> MGMT_HYPERCALLS=n? The only caller of hvm_save_one() lives in x86/domctl.c. With
>> that also removed, hvm_sr_handlers[] is only ever written to afaict, which means
>> that's an effectively dead array then too.
>>
>> The final few functions ...
>>
>>> @@ -390,6 +391,7 @@ int hvm_load(struct domain *d, bool real, hvm_domain_context_t *h)
>>>   
>>>       /* Not reached */
>>>   }
>>> +#endif /* CONFIG_MGMT_HYPERCALLS */
>>>   
>>>   int _hvm_init_entry(struct hvm_domain_context *h, uint16_t tc, uint16_t inst,
>>>                       uint32_t len)
>>
>> ... here and below are only helpers for the save/restore machinery, i.e. that
>> _all_ is also usable only when MGMT_HYPERCALLS=y. Yes, that's a lot of further
>> work, but what do you do? You'll then have quite a bit more code removed from
>> the set that as per coverage analysis is never reached.
> 
> I have a local patch which allows to disable all HVM save/load code at once by using
> separated Kconfig option SAVE_RESTORE.
> 
> +++ b/xen/arch/x86/hvm/Kconfig
> @@ -127,4 +127,8 @@ config VHPET
> 
> +config SAVE_RESTORE
> +    depends on MGMT_HYPERCALLS
> +    def_bool y
> 
> SAVE_RESTORE - annotates all HVM save/load code and, in general, could made a feature by
> allowing it to be selectable.

Oh, one more thing: SAVE_RESTORE, simply by its name, promises to cover PV as well.
That either wants to be the case, or the name may want adjusting.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 16:53:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 16:53:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172122.1497220 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNwHk-0006Ov-HN; Tue, 25 Nov 2025 16:53:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172122.1497220; Tue, 25 Nov 2025 16:53:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNwHk-0006Oo-Ee; Tue, 25 Nov 2025 16:53:00 +0000
Received: by outflank-mailman (input) for mailman id 1172122;
 Tue, 25 Nov 2025 16:52: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=jEo6=6B=bounce.vates.tech=bounce-md_30504962.6925dee6.v1-d3611c1901914d6385b9c5e00a3e27e9@srs-se1.protection.inumbo.net>)
 id 1vNwHj-0006Oc-KA
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 16:52:59 +0000
Received: from mail136-9.atl41.mandrillapp.com
 (mail136-9.atl41.mandrillapp.com [198.2.136.9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 30e7aad4-ca1f-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 17:52:57 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-9.atl41.mandrillapp.com (Mailchimp) with ESMTP id 4dG7zW0cjjzHXZ3v7
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 16:52:55 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d3611c1901914d6385b9c5e00a3e27e9; Tue, 25 Nov 2025 16:52: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: 30e7aad4-ca1f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1764089575; x=1764359575;
	bh=jT0m9BdfMX/m41lcrVIqNyfEiJvXRG9zC+LDUTDZaPk=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=tIjCPORLfRDPBx8bKrpxsNJy+IS1VcwdywLkDL29pGgIxilWPeJ7jbK7hKwPlBncM
	 2OKMqDXDcPWSfLFxV5tU0mLfMSUsRsTnKNrf83co8EtywUqto3pp+yFCs1OZdiwMPJ
	 KPtMzM3VOLJWbIQJx74J/St4s2bRCNmaWv8TRl8yDWyZn61YspYszyb15rjJUUQKOP
	 1o+np8mX0O5IVsNBIlf8qiU8+62dWE0YaHorOV55n7wBEdIJHR6f5EwB0eoPcRfC1D
	 trakrC5hpixseRHcGGqYFIgnkEAq2FFz8/0SBgGo072qkqbqhtIulNSQfenYLZjzz1
	 KH2e2Iqtsv6uA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1764089575; x=1764350075; i=ngoc-tu.dinh@vates.tech;
	bh=jT0m9BdfMX/m41lcrVIqNyfEiJvXRG9zC+LDUTDZaPk=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=VUXD3MPkRjqg91m15162dpHU/WyVZxuQ4STzn9rZZ5rL6sl5KD6DRrh1gDWUmxtX3
	 KtVs2fi9lwFR0AIhUs8dee/X2jCW9WSOnaUIPUBlJrzrZOE2v5IpwhpUTIt0q/tkO9
	 cHBPTQQLWjjWRTEO8XtAtSCJeLomDsxtgVtQU3oXNl70UKG6+KTdp0dhpLMFeFkXdQ
	 7R6IoRWUy2sZy5bmpfe1RyvNolNbJ9Hxmwfd4QXN5ecXyla+ZNYeoMcXPLoUdG9bCM
	 zMpOrDCmeSn7bhUeRNcxXjQbgV7qJbTkb+p+mxemr2fQ6xVSX4lhfSZBkwzfI6rKDd
	 FQI92DxOOQecg==
From: "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2]=20x86/vhpet:=20Fix=20sanitization=20of=20legacy=20IRQ=20route?=
X-Mailer: git-send-email 2.51.2.windows.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1764089574060
To: xen-devel@lists.xenproject.org
Cc: "Tu Dinh" <ngoc-tu.dinh@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <20251125165252.1491-1-ngoc-tu.dinh@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.d3611c1901914d6385b9c5e00a3e27e9?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251125:md
Date: Tue, 25 Nov 2025 16:52:54 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

When setting a timer's config register, timer_sanitize_int_route will
always reset the IRQ route value to what's valid corresponding to the
!HPET_CFG_LEGACY case. This is applied even if the HPET is set to
HPET_CFG_LEGACY.

When some operating systems (e.g. Windows) try to write to a timer
config, they will verify and rewrite the register if the values don't
match what they expect. This causes an unnecessary write to HPET_Tn_CFG.

Note, the HPET specification states that for the Tn_INT_ROUTE_CNF field:

"If the value is not supported by this prarticular timer, then the value
read back will not match what is written. [...] If the LegacyReplacement
Route bit is set, then Timers 0 and 1 will have a different routing, and
this bit field has no effect for those two timers."

Therefore, Xen should not reset timer_int_route if legacy mode is
enabled, regardless of what's in there.

Fixes: ec40d3fe2147 ("x86/vhpet: check that the set interrupt route is valid")
Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
---
v2:
* Add timer_is_legacy check to timer_int_route_valid.
* Add comment to the timer_sanitize_int_route call in hpet_write(HPET_CFG).
---
 xen/arch/x86/hvm/hpet.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/hvm/hpet.c b/xen/arch/x86/hvm/hpet.c
index f0e5f877f4..e317ec1f5f 100644
--- a/xen/arch/x86/hvm/hpet.c
+++ b/xen/arch/x86/hvm/hpet.c
@@ -48,6 +48,8 @@
 #define timer_is_32bit(h, n)     (timer_config(h, n) & HPET_TN_32BIT)
 #define hpet_enabled(h)          ((h)->hpet.config & HPET_CFG_ENABLE)
 #define timer_level(h, n)        (timer_config(h, n) & HPET_TN_LEVEL)
+#define timer_is_legacy(h, n) \
+    (((n) <= 1) && ((h)->hpet.config & HPET_CFG_LEGACY))
 
 #define timer_int_route(h, n)    MASK_EXTR(timer_config(h, n), HPET_TN_ROUTE)
 
@@ -55,7 +57,8 @@
     MASK_EXTR(timer_config(h, n), HPET_TN_INT_ROUTE_CAP)
 
 #define timer_int_route_valid(h, n) \
-    ((1u << timer_int_route(h, n)) & timer_int_route_cap(h, n))
+    (timer_is_legacy(h, n) || \
+     ((1u << timer_int_route(h, n)) & timer_int_route_cap(h, n)))
 
 static inline uint64_t hpet_read_maincounter(HPETState *h, uint64_t guest_time)
 {
@@ -275,7 +278,7 @@ static void hpet_set_timer(HPETState *h, unsigned int tn,
             ? (uint32_t)diff : 0;
 
     destroy_periodic_time(&h->pt[tn]);
-    if ( (tn <= 1) && (h->hpet.config & HPET_CFG_LEGACY) )
+    if ( timer_is_legacy(h, tn) )
     {
         /* if LegacyReplacementRoute bit is set, HPET specification requires
            timer0 be routed to IRQ0 in NON-APIC or IRQ2 in the I/O APIC,
@@ -379,6 +382,14 @@ static int cf_check hpet_write(
         h->hpet.config = hpet_fixup_reg(new_val, old_val,
                                         HPET_CFG_ENABLE | HPET_CFG_LEGACY);
 
+        /*
+         * The first 2 channels' interrupt route values only matter when
+         * HPET_CFG_LEGACY is disabled. However, for simplicity's sake, always
+         * resanitize all channels anyway.
+         */
+        for ( i = 0; i < HPET_TIMER_NUM; i++ )
+            timer_sanitize_int_route(h, i);
+
         if ( !(old_val & HPET_CFG_ENABLE) && (new_val & HPET_CFG_ENABLE) )
         {
             /* Enable main counter and interrupt generation. */
-- 
2.43.0



--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 16:54:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 16:54:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172130.1497231 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNwJF-0006up-Tg; Tue, 25 Nov 2025 16:54:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172130.1497231; Tue, 25 Nov 2025 16:54:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNwJF-0006ui-Q9; Tue, 25 Nov 2025 16:54:33 +0000
Received: by outflank-mailman (input) for mailman id 1172130;
 Tue, 25 Nov 2025 16:54: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=x8HM=6B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNwJE-0006ua-Jf
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 16:54:32 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 68f98c04-ca1f-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 17:54:30 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b7355f6ef12so1206003866b.3
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 08:54: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
 a640c23a62f3a-b7654cefe53sm1622309666b.13.2025.11.25.08.54.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 08:54: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: 68f98c04-ca1f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764089670; x=1764694470; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jbdFem+pPYwuwSvJR/GyY2ScXR86Fheg70gamiE/K+E=;
        b=fCtBA36H8kVaEO9LvFQcm5Ku5mZvJEncKFC9Z/aGFLvtTZbDVSncziWjJuOKovcDU1
         pYF8W6EmsvaTI86x9JR8PoqC5aof8e8+oAe6AvwzQGyH13vb+E6ypF++m4jSgvfPiZ0Q
         kqWLNxL764Z1FxljOB5q4T+8i5BQ++xkEy1y1vaLUfXmsBOb6j02Z+wlLPXbssV/4JZV
         uc+Gpif+WD07YDW3tjd7bXrb7sChqksciG4tflUq9tDeCiHwVZislHcnB6P5Hrnf4rJb
         aXzBwfAbuYbRVM6PYTIx6A+rEexkF/gK2VkRxpXETi6owm9AkwgM9mAC0d0LKofKd98L
         4LZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764089670; x=1764694470;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jbdFem+pPYwuwSvJR/GyY2ScXR86Fheg70gamiE/K+E=;
        b=QpErsOSD/CcShkSJ0HcB1Ost+WQKgzfRQmJsfA05/gpMunBrvv3MWL05BzGyEB2IsB
         8j4gZIhKUKiMGZaZwOWNfs0xG70oj5VBZXKzhxqcF21AGBdo/lW4yGBrcR8z/RPMGeEQ
         meG9XhU2ZLQOZF44Jj0GEd3h2AEqVY71KA9z1JmEvRMGnN12/okrxOjs4PAvX121w16o
         L15AhuKH/EU9DAYfd4MjXizIkRHyYK3ow42FeKej64Y7pNoB1ePt/OwtCpjKX317V8G4
         znj0m65pS1FUJOnuc9+9QS5qxSFH+tu468c1pvj1ccYqQcpUueesDOzkmpoSqk1U1iQQ
         in8A==
X-Forwarded-Encrypted: i=1; AJvYcCWh2YSFf5Nm8mS8Tt56rs6gddHKA3Pg410st/oOKt2fDfO0kK1+WIYVJQBsGkDt2+8L1yPbHv4dn2M=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw5lSYUylKtYcPOk/KYXCTRM4/KUsrIHUJ8Ec1M57S0uEpyDxtB
	KNwn+3S+8UhFkyU4LNboyVIY0GN6iUcfeW4Rv8OWNPeosZ7JqPDXnnU1WOW+sAOCLw==
X-Gm-Gg: ASbGncuM2yMCE41eCjlqAKE2rxuh9Q18ExPh0772Pu/t/x6Ue89tvh0YMq3iukZjyhr
	QyQ0h5jKglc/cfnYV3A0sHYMMC8RyhgInT/WGWiIaLnU+v7sjcxNRppK4qMlACXUdkdVPR7KZVZ
	G6VXI/CMU3cl5lsAi/v8AVdxuP7ctkm29QY8JESRTYsGBDwmexWXfg0ULAriP+lL+9UfzjT2PeM
	kNNjU0RO79lvNS9xIAkZoxIYprnVZFx+7rg9kPXSkiQPUy4a5+dMwl9MCCXcx6G2rE8Umy3wwgI
	uqD5Shdu4gLriSFCE2VSR7EaJu560RXMabWNq6NSRGFJllqvgMNyWGEOHLraDkgW3ytABmvyN+P
	YWWH+57yxI4iVpV0UhHWTyrwmlE4NQHfY4qGw6vKIgFC9Ayh8AbZafD1u2xRy1RLpYo1BUVaVcg
	D1zFU2R8RdSgfZp8s4tx3cdP4tyXDLXT/lNqa0MnuW9Onl6X9C2Pom6VZPn6lvnZoJBebAlNpmW
	3Q=
X-Google-Smtp-Source: AGHT+IGxnajJ5jXqIjA8pU4O85AAlJ4qk7j5hoyagRgYgi2EgqYmaEe6tHbmJYlaSTq2ZdapCxnhzw==
X-Received: by 2002:a17:907:d26:b0:b76:beae:f847 with SMTP id a640c23a62f3a-b76beaefaeamr447653066b.20.1764089669755;
        Tue, 25 Nov 2025 08:54:29 -0800 (PST)
Message-ID: <de73aa3d-a97b-4780-aa6d-7cf47159913c@suse.com>
Date: Tue, 25 Nov 2025 17:54:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 00/24] Disable domctl-op via CONFIG_MGMT_HYPERCALLS
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@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>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Daniel De Graaf <dgdegra@tycho.nsa.gov>, Juergen Gross <jgross@suse.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>, Dario Faggioli <dfaggioli@suse.com>,
 George Dunlap <gwd@xenproject.org>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Meng Xu <mengxu@cis.upenn.edu>, Jason Andryuk <jason.andryuk@amd.com>,
 Rahul Singh <rahul.singh@arm.com>, xen-devel@lists.xenproject.org,
 xen-devel@dornerworks.com
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251121105801.1251262-1-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2025 11:57, Penny Zheng wrote:
> It can be beneficial for some dom0less systems to further reduce Xen footprint
> via disabling some hypercalls handling code, which may not to be used &
> required in such systems.
> We are introducing a new single Kconfig CONFIG_MGMT_HYPERCALLS to manage
> such hypercalls.
> 
> We are trying to disable hypercalls in the following aspects:
> - sysctl
> - domctl
> - hvm
> - physdev
> - platform
> This patch serie is only focusing on domctl-op. Different aspects will be
> covered in different patch serie.
> 
> Features, like VM event, or paging log-dirty support, which fully rely on
> domctl-op, will be wrapped with CONFIG_MGMT_HYPERCALLS, to reduce Xen
> footprint as much as possible.
> 
> It is derived from Stefano Stabellini's commit "xen: introduce kconfig options
> to disable hypercalls"(
> https://lore.kernel.org/xen-devel/20241219092917.3006174-1-Sergiy_Kibrik@epam.com)
> ---
> This patch serie is based on two patch serie, one is
> "[XEN][PATCH v4] xen: make VMTRACE support optional" and "
> [PATCH v3 0/7] consolidate vm event subsystem"

While looking at patch 20, I came to wonder what exactly the above means: By the
words, nothing in this series can go in ahead of those other patches. Which doesn't
seem quite right. Please can you state dependencies in a helpful (for reviewers as
well as committers) way?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 17:00:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 17:00:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172142.1497241 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNwOg-0008TS-EK; Tue, 25 Nov 2025 17:00:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172142.1497241; Tue, 25 Nov 2025 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 1vNwOg-0008TL-BM; Tue, 25 Nov 2025 17:00:10 +0000
Received: by outflank-mailman (input) for mailman id 1172142;
 Tue, 25 Nov 2025 17:00: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=x8HM=6B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vNwOe-0008TF-Lz
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 17:00:08 +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 313b9b16-ca20-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 18:00:06 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-477bf34f5f5so33621935e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 09:00: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-477bf3602d1sm269676755e9.5.2025.11.25.09.00.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 09:00: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: 313b9b16-ca20-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764090006; x=1764694806; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4nez9HRrs80jtw84vGF0oUAMT5LpCL7Hdz2ZsccvtfA=;
        b=gdWpA4fCTw00TKGLjPw2i10hJcNeCYa6k8DeulFO1q7O4IKFIUN2E4s7ZgulFcJdqe
         C840RsNoLwP4GYRJvKaDpVyihNuw8fPVFMH7gRV2/Bi3g8eKiW8ATn8jNRZZX6SEfZ85
         qqn18UCqOSlwRlvkbXPla0pJy1b7JdF9e6pmuB4iDhA0qpmIYqATB7MwA6SD13zKKr1B
         bHdpIk202qjUAo0y+qMw5yn+7vj2WJ8fp4+l1wRb0pHN0mw5wrnKFyvMvLOtpX5scXbH
         rUooX2EImirareERNZpj77O8pPXZv+hLG1a6vrCYRXv5Yp1YKOuxjLjeIbn3W0ZlE5UP
         uFSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764090006; x=1764694806;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4nez9HRrs80jtw84vGF0oUAMT5LpCL7Hdz2ZsccvtfA=;
        b=u61Ea8ME4Kqpu8U5aoN9xUX2xnk61HON0wqja2yvuS/mn5IB3DQULa8vtkP5/aYNyv
         95tT8pHJPQ4xWtsPHPWTIs28rdksScRie5RvMoOhcPzxIo5K7WN8FzREbPYEJgXkRT+2
         pX7kqHtOosFrGa4/cAr6Is8LGd7ASacyuse/vnC3EukxYdFFwiuBLcSg/9rnjQBccFD6
         bYjPJyJdrcE7KCA+O59JzHCX+emxtnWh83uEGBGHlWBoZpCZoJvEkKvOoz6K8SDxoqG4
         sParG1zHAYnUvz3PFcw4GxARRN7qii2r4vIfnNWiF866MWPLgY+/NOcOsEcTrDVgCnDE
         muRw==
X-Forwarded-Encrypted: i=1; AJvYcCVTSKS47nqPf16uop9LVscPGyWoeDlesYQ3ETLM58Ns7ZTw0wt1eUwbfnIQj5UmWuHPLQDFAI+hGts=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzFzfVqXO7fsYtiUyNtN1RpMHpY+V8/BnK6fZBgWbF+LPDd54fA
	hRK9r3YuEjazP9j9xoA/Zb64L4ycNG924MRvH5okmXEXebs1e9dsRtzA4bmHDVYrpw==
X-Gm-Gg: ASbGncumocx7weyeVoIu9KBnQBT/wsOGJ+QyCiaSz6tq7N23UfjZ9fHBERKtvqJmSHu
	ZS8x4fe27SKWlQBCxR/Dxft1aGFHAfw7p7X/17max0dXt3m5RY4YMLPMZO5j6u6AaJwYxDMb6Cd
	kvSiZw+LZWgAOqrgzSqu2xZW1B37gjmf3mxPRu11rs88GhEwQrHvMyHj+SJjDYEKXL52YBa+irF
	M+vL1V9CmXxr9nCO8LmYyGrZSijy4LzeUowf4zJQ+Dh4ntRmUyIVHvYlds0lck7qHG+fgCMSh44
	IivvsNPOJOKt6xOBGeZxpIuxp+/e+iTj4feq06g4ywTO6R//lsSgoYPl+JOTmPS7O8748wFOJRf
	X0TfFEkDylHUCOFUw04wLe5371LIw6ex8BjtcORL0ZdCUTKLDy7oyJ2drrQM6bOmSjFXs/TepKm
	uBlOEz5DX7lajyyXxpHnhr00UdIhJJeDdRWWcizbNRB1hWySIyudsArPxvi0lbVM33rPk/ArIGT
	+w=
X-Google-Smtp-Source: AGHT+IFFqqx8CGSIk0bO8RvVtRtR6HoWmSSYX3barC0w6Fozh0+j12F4fUXiwHzXaoVksBeaChiBFg==
X-Received: by 2002:a05:600c:474d:b0:477:7c7d:d9b2 with SMTP id 5b1f17b1804b1-47904b290bcmr33560915e9.32.1764090005730;
        Tue, 25 Nov 2025 09:00:05 -0800 (PST)
Message-ID: <de34ea34-1558-46b3-b5a6-79edd60ad45f@suse.com>
Date: Tue, 25 Nov 2025 18:00:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 20/24] xen/x86: wrap x86-specific domctl-op with
 CONFIG_MGMT_HYPERCALLS
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@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: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-21-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251121105801.1251262-21-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2025 11:57, Penny Zheng wrote:
> --- a/xen/arch/x86/Kconfig
> +++ b/xen/arch/x86/Kconfig
> @@ -29,7 +29,7 @@ config X86
>  	select HAS_PCI_MSI
>  	select HAS_PIRQ
>  	select HAS_SCHED_GRANULARITY
> -	imply HAS_SOFT_RESET
> +	select HAS_SOFT_RESET if MGMT_HYPERCALLS

Why would you undo an "imply", when really we should use it more? One of its
purposes is so that you can add "depends on MGMT_HYPERCALLS" there, and it
then won't be auto-enabled if that dependency isn't fulfilled.

> --- a/xen/arch/x86/include/asm/paging.h
> +++ b/xen/arch/x86/include/asm/paging.h
> @@ -55,7 +55,7 @@
>  #define PG_translate   0
>  #define PG_external    0
>  #endif
> -#if defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
> +#if defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE) && defined(CONFIG_MGMT_HYPERCALLS)

This line is too long now.

> @@ -299,7 +299,9 @@ hypfs_op                           do       do       do       do       do
>  #endif
>  mca                                do       do       -        -        -
>  #if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
> +#ifdef CONFIG_MGMT_HYPERCALLS

Why not combine with the existing #if?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 17:24:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 17:24:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172158.1497251 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNwmT-0003HG-CN; Tue, 25 Nov 2025 17:24:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172158.1497251; Tue, 25 Nov 2025 17:24:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNwmT-0003H9-85; Tue, 25 Nov 2025 17:24:45 +0000
Received: by outflank-mailman (input) for mailman id 1172158;
 Tue, 25 Nov 2025 17:24: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=u48u=6B=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vNwmR-0003H3-CT
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 17:24:43 +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 9f837e7c-ca23-11f0-9d18-b5c5bf9af7f9;
 Tue, 25 Nov 2025 18:24:42 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CO1PR03MB7794.namprd03.prod.outlook.com (2603:10b6:303:275::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.11; Tue, 25 Nov
 2025 17:24: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%5]) with mapi id 15.20.9343.016; Tue, 25 Nov 2025
 17:24: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: 9f837e7c-ca23-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EX+7WrSVIym49y8O5CetLQn/ps5M/TzmpoOCfFzeXxQOR4tTDJ1cVbqUA2qsfcIReS+m/SSCkbbif7PYueTawKAqJblQK1BqNscynLmFGQ6tQevm51OSDo+gkEVoSY8wXe7h5sfe8S0sDN/uUD6dYI7NxeptnmZkM3XhFyVFHXTGKhdPidI0H4AtJY166owXqZ8cNotg7+vvHaxLIGbtB3OuZlDbjZFZLK4pdb11ehPgNlWkdgQDNdqEpzR36AvtSXs7Qa+pT0pZd3Ga7oGoTCpJfDX6ClLppQ8siGUvk4dLOnWi06cEW2G1wRS3D+yIPyVRucD16W9epac1fhl32A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=82Nr1QtprmyVkq/uCWrAXpoJhBR38OblQagN9mP0CLE=;
 b=Z+N/v1vyD2UqtmOKPEulaRbIemedPWkuNoZoA06F4QkJgKyn6bouZ2HBamAtUJ/joICdTVX5ovL+vEMpZ5xYsB/jGCaWmdNIdyyRsgOZQn+K0CGMYWh+8p0y+otSsReRnzOEZDE4W/N+8PGnxgnykLTC2rpgThRNWtPRe7bIHumxB5D1VHNcXCzBYlCR/58wrkR4Qyv97E4dem4F6n7LF9aOSHVpUg/2sYD+FH1QB1TJEa0YEY9cOUSJnsqoyy79wEhOot/v0Dc/vpOVG8IbWTq27Th9svsanq1nRi07ss+014C7W28snbYQQy6/OLuWFgsA1FzTtg5cAxw7MoMsdA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=82Nr1QtprmyVkq/uCWrAXpoJhBR38OblQagN9mP0CLE=;
 b=pIRVQWgMk1UVIQiSjtXuwBvXfYMR9ewxDCBixj/gxq64Zuo3sJd3DbuiLD7DwAVI3jPHDAiy1bQ0A0ZqU0/hLnSeWjAC01WikiGGTjEJ4PitFqmgEBUOoz4k4C/qHiq2Vrt9W24NqQgPO9Sw4gjnSK73Z8uNYrPXkCZ4JoUVXtg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 25 Nov 2025 18:24:33 +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 1/2] symbols/x86: re-number intermediate files
Message-ID: <aSXmUQYAk-oeArIM@Mac.lan>
References: <2d7602ce-3665-4853-85f0-c0201642193f@suse.com>
 <8d6642b9-18ec-4fb9-8e21-96d6efdbe6f4@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <8d6642b9-18ec-4fb9-8e21-96d6efdbe6f4@suse.com>
X-ClientProxiedBy: PAYP264CA0008.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:11e::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_|CO1PR03MB7794:EE_
X-MS-Office365-Filtering-Correlation-Id: c77d5a65-3913-41db-9542-08de2c47823f
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?Y1lZbm5wK3F6OHhtZTVnbnhTOG91YnRHd053S0FrQTNZK05Mb2R0ZzBrdU9H?=
 =?utf-8?B?YVNRWFc0SVlDRUJXbnNBcWhjd1Q0dVNmNTIwODdxK1JOQWxoRllBUlBCMkNL?=
 =?utf-8?B?VTY3ZWFNSXlGYU1ZcG9wQ1pWTjVDVG1IK2tTUjZNZ3MvaXlwTDdRTWVvZkYz?=
 =?utf-8?B?WHQ0RW03cUlPYmdUVkkzTWtQRXdlcklKOWVPVFN3Z3pXanN1K1pyRjFZS2Ni?=
 =?utf-8?B?OXlxNFBlb1p0amNLRzZNVUlpMlplS0dqNEg2T0ZIY3JjdjlXN3daWndLMnlE?=
 =?utf-8?B?b0E4bmRKZmZHQXlqSGNqWkhJc2Y4YjdEcmFhU0l4eUt0Vkpma1FZcjErZE8x?=
 =?utf-8?B?dFVOQXNLVnVXNGdLQ1pyR2hpQXFDU2Fyb0plOWNyN1NTYndYUXV1bG9wY3Fy?=
 =?utf-8?B?cVI4SVVPc09JWHFrVXovdzJYSlN4NCtVNFhJcVEyc0ZCT2Y3SVhwMnZwMm9D?=
 =?utf-8?B?K0h4amJrOTVUMHJ3ZkNqMTF6eGxWaVp6VVdOMzJRTU1jdFdIT1JCYWlXUWZI?=
 =?utf-8?B?bENaREJiRlJmSjRta2YrM3pZZHkwbSs0cEpWM1dFQlBQbmZ1VWNCRlU3Sjdx?=
 =?utf-8?B?UFp4ZjczZmFSbERBSExnSG5HR2JFZ2p0d2NvWG1rMk10d0QyZWhtRVRRMkJu?=
 =?utf-8?B?WEdlU21wMVQyMFVrSWNzUzB6K3lieHNuVzRzRWowSzBOTkRkQkNmNngxYldV?=
 =?utf-8?B?T2MyaDhZSXVCazVET0huaWJzcXl1VXhjdGNFaEk1VW9MKzdmN3RjYm9VaW9F?=
 =?utf-8?B?OFhwYldqMHFPLzkxOWpYbHFyT1dZdXJOOUZacTd1elVtZjhZcFU5NzlSSU5Y?=
 =?utf-8?B?cjFKK012OHE1N2Z6R0hzNHV2NGp1RG1xMEROcmlzTlgvUVV4SFJyZlNTMExw?=
 =?utf-8?B?dm9NVnlWcHRwelNVek9JQ3BRV09Sd0d0WEFDRzk0cEpqRmYveDNxRFlLT0Iv?=
 =?utf-8?B?aHUrSlM4SWxJUmtTWXFJa3BsZVVBQjVqRlpSZ1NkL3JGaXhlRFVmVFNZZGc4?=
 =?utf-8?B?MThObS9OS1RJdGtPTG9COVpxVUpBamgyY3cyVUVpWG5mRmdmbTNhWHJZNDdF?=
 =?utf-8?B?cjBMSTNRVzA3cFBTclltWStTS3NFN0EwSWNSZ2ZTT0ZUYllkVENrc0lEc0dV?=
 =?utf-8?B?aTRTMlVUVGc3bTNMVGNMaGsrb3VrbnQyZEtQM2prWElxNTlnbVZkNVFsOXR5?=
 =?utf-8?B?MmE5V3pwWkI0Z1BMcGd2cEl6c2tRWmxEUTNETHhtSGZ5enVsMnlEeXI2bEcv?=
 =?utf-8?B?QjNKUENQbkFJWVNSaHlRV28zaHg4NDFvT29FWGZJVGVnSzdqVjhua1J6SGpm?=
 =?utf-8?B?SDFiSFhqVXZSU2EwTi8xa3VJckFSTVlkWE1SWkg5T2VFZk04elQzRVR3K0pv?=
 =?utf-8?B?bndwZVJlYjVGY1BRdXRtcEZOekhrUGk3dXJwMGdlMGRpa29NOHhZMjVsd0U0?=
 =?utf-8?B?WTM0b0NXQkE5cnM5Y01XeUtOcnVFcEJDemIxb3NHR2hsK0Q2cnlKT3FEL1pv?=
 =?utf-8?B?UmkzVTVvNWpzSVJaSmxOVFpIbkhXVGJkcnBNYzNoWVh1cDFVYTF1eVZPWEhl?=
 =?utf-8?B?TnBSdGl1K1pUclU1VlEvV2QrMlhEak1jVUJZRGxmODhFTzkrc3poeVRWNVZa?=
 =?utf-8?B?b1hrOTMrREd3ZjVTbWpIU2tWYXZqZDNFeEN1cEFzYVZ5di82SDVxNEVaZ0tE?=
 =?utf-8?B?TlVBd2F0YUgvMHdwVEQyaHdNZVBFRDBvR2xZVzF0YzlrYzJwQnJGWnZFaGF1?=
 =?utf-8?B?eTlSWUZBcjZiV2VLWVBpT2NEMzVLWDZRcUdsTU1yY2pIL3RWd2dSUkI2K2Ny?=
 =?utf-8?B?M0V6b09PR0FIZVpUV2RlWjErY3dWSXNnLzErNWhpMkZFK2hXMkJlMkpmZ3g5?=
 =?utf-8?B?K243UU5QRFo1SHpHalhLTHZwSUY5M0g0bTZMS1ZoMVJMeTZWaWVvVEtKR1hD?=
 =?utf-8?Q?2w97Ufpx0aX26XOAVN1QYGqeX8IEViuq?=
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?NjBncEJodlluSGl3YklXZDdTN2svaDBvdWVGbEdhNjJML1ZSYndEZXBuSERZ?=
 =?utf-8?B?UkVyZVh0VjFXeGNKenBhZ3p6b2JaY0pyVjhPenhiVXd2ZndRL3hOUkhZcWRj?=
 =?utf-8?B?SVgxQnlDM2VIazgwdHdoTTRHZkJycXpVN21nQ1QwT0x0TEpoNm1QZUNrUnZN?=
 =?utf-8?B?U05PT29OM3Bwa1Y4VytSc2Z1T1ZGaEVPL01mWUIwREo1Tzl6STc5RjBPZklW?=
 =?utf-8?B?ZlFpemlMOWlCUjI0TENhSFAzWElxMmlkcjlFUTB1b25FQUtCZ1RCTkZlWm5x?=
 =?utf-8?B?R2x5bFZtWDJXWERiMFArN3duVWNpdE5ESkVJMjVBY0JiKyt0UDdXM244eTd0?=
 =?utf-8?B?ZzMzWUR0YVFTUWw1SnBXTEp3OGRoa3BiODNMWjloaVV2MExCSFpkQStoWUJy?=
 =?utf-8?B?b2dPMlNVSFZ1eXlGa29ZclhTU0NnVU1DM0VzY2x5WFJqTmJUYlUvZG54V2U4?=
 =?utf-8?B?dE9uaEJzNDJGTzl4eVUrcEZYbTNTR3lWK0tLQ3JjRU54TGVRYkxxYTVkYzhm?=
 =?utf-8?B?V3BEYml5Q2tqait5d2RvbWdEVnhQaVdSa1hqcXhJZHBhTFhRckh5S2Q3bkRk?=
 =?utf-8?B?OHpTUWtCNHc3TzFocTNWcFBRRWI0R2ZUUUdmb2dEbjNGck1xRVRicVROeG40?=
 =?utf-8?B?WUdXSTUvejhMenlONjQzL21CdnJTTHI4QVl3WDRhejNxTzZ2VThPcnB3T2xN?=
 =?utf-8?B?ZTNJZWlPK1NkVUd3aXM4OEczLzhkb1R2bm5teGxIM0ovcGNLOTVMRU81V0xn?=
 =?utf-8?B?bndxeVhjQXZBanVLQ0UzVHdCb1JMKzV0VThmL0Y3VUcxQkVZYXdwSCtOSklo?=
 =?utf-8?B?SDBERWF2UG1FdkFZWkwybi9QYk9yRW1Sd0ZkOE1pMDdoQXFGQTZ4SnJuRlU3?=
 =?utf-8?B?akR0ZUZ5RjlBaHJlRnA1d3FFUmVLc0hieWYrMlFoM0JScVF3Z1hORmZMbWhF?=
 =?utf-8?B?YTdoT0JBSWw2a05tQjRqKzh0NmtMaFk5NWtIeGpaVHdRQmpZaHlHYmVwYldw?=
 =?utf-8?B?amZndk1PS1diajdzYk1NbTI5aGpZZ1U2R0ZIQk1QbDhjcHF1QWdBemRWWEtE?=
 =?utf-8?B?OUdCNlREMnByZnNxS20yRVZTdXYvQXFueEliMzNzK1VQS3FhbXBrejlDMDRt?=
 =?utf-8?B?bjhtNTAwMFNQL2hjWk5pcGJrbDg5YVFCZWNrb3pCVXZGWGhIa2JneVZpQXB2?=
 =?utf-8?B?OVNmN3ZHRFVZZmtZRE9LeFN5N0UwV2Rtb0lNWDJnSlU2aGVhZTBEM1hpWGU4?=
 =?utf-8?B?eks1NFBQaVh2WS94S0ZlNStuYUpYTUVYZjc0S3Y5MVM4OU5FbFIrMHAzbGZU?=
 =?utf-8?B?VlhjNEI4K3QzUnE4MHJrb1JlOEwzWW4yMkx2TmRJLy9yTE9kR2hadUNkQUNL?=
 =?utf-8?B?OFlnQ2NDbzFGaHlMN3BMLzJ4Y2dJdmtiSEkrMUg5ZDN1UU1odFlXV0NrbGFp?=
 =?utf-8?B?QkkyNkxjM2FxMkkxQjZoZW1HY3JOWFpab3BLSmJCbXBzOVdYM0pPMUxoV1N4?=
 =?utf-8?B?bjAwYXZQWXF3VnA5NTlaTGQ0TWpscllrdzhJQU1aSkMvRWFPalNiNWNDTDU4?=
 =?utf-8?B?RDE0ejZHUmVnVEV1V0x4bkhCc2l6RmlScXpEeHpGMHBzRjdJaGdPdmlLYlFH?=
 =?utf-8?B?U1JVcXcvMGlIK1NCaGMyVC9JUFgyTytrSnRoemxLN3A3Q1RoNkRuS2ZmWDcz?=
 =?utf-8?B?SWd4OGgvd0ZtVWpja2w5Z2FucTlBNzhMOFlYQnB2b2h4T0lUc29DM0xkQUg2?=
 =?utf-8?B?TXFCSElhQmZ2SjRWVWRGVHF0UG53eWxRZWxpUWxpNEQ1NkIxZWtYbEU3SHFB?=
 =?utf-8?B?VDRhWTZmTk5BVjNWcUNJYlh6UnMwTTBSaWt3MktldGJmMlRTV3dkZGFuRVF2?=
 =?utf-8?B?S0syRGhmbno2SHR4Z2dRMmc3QXNPZ0RmeU5SaThzT0VidTdWYXk0eFVTaGlu?=
 =?utf-8?B?RXliTDBiTXlZR1ZBYjk2M0lWUmc3RDdxNlRRQTdUM0hVT2JSTHlpNXRPaW5t?=
 =?utf-8?B?M292bVphMFVwYWZNbmN0ckZXcFh5R2pNcDljbGZmQUJ3ZjlWMlpvZ0ZWTXRS?=
 =?utf-8?B?ZE8vVnBqUW41TC8xQnFIMGx5dkEvbmIxZDFRdmY1N0kraXh3VW9DMDI0ZEhn?=
 =?utf-8?Q?yxXS3f0O/tHGiRHmhLMQ8s/Ep?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c77d5a65-3913-41db-9542-08de2c47823f
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2025 17:24:37.3712
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: oLBE2A/q4giJVtDM6MXRF3G7Ijs+PqfaWyest1sp2dd/MFsX5dLfxz2mDme8E6NbTjCnzfurk9qlcOObczRU+A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB7794

On Tue, Nov 25, 2025 at 03:13:28PM +0100, Jan Beulich wrote:
> In preparation to do away with symbols-dummy, re-number the file assembly
> and object files used, for the numbers to match the next passes real
> output. This is to make 0 available to use for what now is handled by
> symbols-dummy. (Mirror the numbering to the intermediate reloc files for
> xen.efi, just to avoid confusion.)
> 
> 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 Tue Nov 25 17:36:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 17:36:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172169.1497265 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNwyA-000536-BV; Tue, 25 Nov 2025 17:36:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172169.1497265; Tue, 25 Nov 2025 17:36: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 1vNwyA-00052z-8c; Tue, 25 Nov 2025 17:36:50 +0000
Received: by outflank-mailman (input) for mailman id 1172169;
 Tue, 25 Nov 2025 17:36: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=u48u=6B=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vNwy9-00052t-3O
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 17:36:49 +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 501a2922-ca25-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 18:36:46 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BY5PR03MB5284.namprd03.prod.outlook.com (2603:10b6:a03:223::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.11; Tue, 25 Nov
 2025 17:36: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%5]) with mapi id 15.20.9343.016; Tue, 25 Nov 2025
 17:36: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: 501a2922-ca25-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aHpHCuGesAGsgBEp2Hd3ezRi1wSJPeIFTV812djGHP39flNtBpOuRRVhqz8RlDlK4Bech1v3zSn26OnfLDWnaQOoAumTy3cKdAbguI8DCpK7H9MoqsygCbEjZ8IMVsts82mKTfjV7yAng/dG021W4PNHNZZroU1XIXwr9CgbBi+pOuO3p9GvM1XuWI1PIDOMpEtnavAB7shfC60zIDd0CiIZDuTbBv0F4ZZa1vcut+2i1AXWTKkdgM6SBcedz57FNHahFz6d6tZcl+1twqCeU/Q1sSp5Qz93CgAektz8BjaFl5bJgXqovfyG7qHaOa9cY4vQ4BDXfKOeN9/z7TaRog==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DMvcnfOcb3XPxgNPmv0cQwNPmIQWCCW2y59Uf+UEUf0=;
 b=qoaDUs79AGgxoen2V5B9REHasAtWeCX8wO4oqtIyG7kNd3uSbQG5lJzMOY90zGVUZu9nokvdzzj9Xf0bkXvhXIBLh0uRpP+BWAOZqS7bc3SJH9vFnSTcimaojux4WdtZZvHPFbhDem8WSEYYBNFiz/kZEw943xXNatTyKP1b0XTBFhH6SUu8tqtbo7yKO31qsQA/eG+6O35yUvzEg0vXUgEJunNyO9rv1jW+f2vuXRqM4hQCG4sNQo/UH6h35mx7rfnZuEVchWdXOM4AEXC0rh3KkxsExnPxYTMz0uw3jhzbHqxggQZz87LGyFh+CCMPmE5u7OoSfkMZdipK+L7KhQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DMvcnfOcb3XPxgNPmv0cQwNPmIQWCCW2y59Uf+UEUf0=;
 b=vKqysUDBvmAmHmmi9AsIET8BKrYCqwCam5jyV2tmn7OUg0KngeeE9qMXDeVI8TkyQSl6SI3BwMyREFqAyXYdiNwL1KGInAw/qZe+P5erKKPE5cMB8N8tEu5DCH9z1rSURZnF3zoTb6TQb2BeDFh6NsUuSZQWlUbU4OxQ6J0QAZc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 25 Nov 2025 18:36:39 +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 2/2] symbols/x86: don't use symbols-dummy
Message-ID: <aSXpJ3yqSWfNgElC@Mac.lan>
References: <2d7602ce-3665-4853-85f0-c0201642193f@suse.com>
 <3618c458-d9ec-4cc6-a800-0741ade461a1@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3618c458-d9ec-4cc6-a800-0741ade461a1@suse.com>
X-ClientProxiedBy: PAZP264CA0194.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:237::27) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BY5PR03MB5284:EE_
X-MS-Office365-Filtering-Correlation-Id: 3b6001cb-4ff2-4a25-10f1-08de2c4932d4
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?Uk9td09SR21NdXhPMC9LYmxRakw2V0kzSnVLTHJsVzVFdEc5KzhMai9GNnMr?=
 =?utf-8?B?dSt5SExaZDJtRVZXYUdoOXZPakhVcXpDZlhBenBvamxXZzFoMS9IbWdIcXVL?=
 =?utf-8?B?SXRYUTZIcFdwbDdVUEZCZGtkUVNGTUhMMGVTcStRdXFFZ1NTdWJQVWRoZ1dW?=
 =?utf-8?B?Q1ZjbnpCM1hzQzhyci9wNjhpc1puY1hqM1JOSzVwZ3RtNnEwUWp4cmZWVDlq?=
 =?utf-8?B?R0liNXZ5REd5Q1IxY1ZySG8rTW5Rck9EVHphemM4emllNHU4VVZicmlmTmxV?=
 =?utf-8?B?OFdnMmVIYk1ZaHhpN1VPNVFFTDBCZ3VWSWlNRlFtMFAzS3NaYW1JS3pzSENo?=
 =?utf-8?B?NGZSMEI3VEgrNXhuTzZia3UwVUFMSWlmaXpFUzhVOFdaaDRJV014MERuSkUz?=
 =?utf-8?B?d29tK2VpWUZGQVVuMVIzMkptRWFvVGQ2eWQ4cDZLOTJTTi9WS1pITG9Xa29s?=
 =?utf-8?B?cUxmYktabS84N21LYTBTNXJoYUJBQlpySlhMTTBEaXhDb2JkTXNHV1dlTWo3?=
 =?utf-8?B?NHlHN3pJU3lScElLYUI4RnJ3SGJUMmM5ZG1nSFhLZHVMNTdqSm5tQ2Z1b053?=
 =?utf-8?B?eVN5SXVhcWtNV1p2ZzE4MmRDaXdIK3FNTGh2Z0xHakk1RmRZb0NlZ0lSamlu?=
 =?utf-8?B?K2dJQVN5dnoxSldhazR2V1VwUHI2MDRKZUtjcEVtQ2wvS0x2VnA3RDZ4ejZG?=
 =?utf-8?B?c296cE14OWxXaHp5enZENlhoMHFRaFdrYkJVMmlRVmpWRmUvRjVka2RoNXZX?=
 =?utf-8?B?MHdWK3RzYzJKY0Nrd2RLSnJqVjVUZ1FDMk1uQ0VPcjlRcks4T2hOdkhvZlgy?=
 =?utf-8?B?aVhRbjNYcE1uYnVYZlkyQTdJREw4Z2NXaWdsK0VDUUtIU1hBNDhYc0Z3N0Zh?=
 =?utf-8?B?MUNFODJtaDFCOHdSRVRrbHNoNCtrWDFKV3FHU1Z1emlyM3Fobzc0VHI0VTU5?=
 =?utf-8?B?WUNZSTFOQ0N4NHNOR3U3SCswK3V3NTE1VmhCenhRelVMOTBsRXl2V0Ftajk2?=
 =?utf-8?B?ejJzOUpQUG5mZXZCTS93bjREdmdTdzZNN0t3OUQ0V0hJSzlpNjRKaGtDV05v?=
 =?utf-8?B?WHZpcTEyVWVFK0pNTU9zZ0s3bnBwYmFlYm52c3RxeVhQQ1RCeUJqRFNtazFD?=
 =?utf-8?B?czVKZXczWUp1TzJ0YzRySVdtd2k5TkxsK0ZRS08wclVPVUdVaHk5bDFma05s?=
 =?utf-8?B?QmprMVk3VEpJWklCT2tQU1FKUXBJaDRLaU1qUTFJaExjbXpaSE9VNVh1Yi9l?=
 =?utf-8?B?Rk95dkp4dnpSMTdRZkFQZytKNWhNWWhQbi9va3h3SDlGNThNSGY5UmpsR3NS?=
 =?utf-8?B?dDhLeUJkUW1jOUtoaVZ4VGJNakhmSm1ybmdLMUx3OUplbFlaaG4xNTlBNE5j?=
 =?utf-8?B?VkxMTlRvMVRaa3NWVHNVa1hLQjV5TDVkSllBVGNGeDVEM0ttVUJHZ01RZWpM?=
 =?utf-8?B?Smw1SXNUU3grZWE1UzBFVE41eWxLTU5Rd0FqUXZFS0p0dDM2eUZXSDBXZEFT?=
 =?utf-8?B?b3U3eGdrek9oQkJoai9xS2k2N1ZWd2JpU041RjNaZHdveHQ4ZmFLREpXaEFy?=
 =?utf-8?B?bTNKNVc1S2lWakRGZHFNanNyWExRc2IyWnlMcW5tOExVUk9UbkIwYlM3cElE?=
 =?utf-8?B?WHBPRWNZcGZkWGlka3JSWWdnUDQ1Y1BEMGx4VldsWGo4T1IvL0xmQWx1R0hu?=
 =?utf-8?B?Tm9hQ0RNL3BPS3Mva3pxUmRPUko0MnkxMy9pdWREbmFQU3FpeUsvVDlnQVgy?=
 =?utf-8?B?ajZ0YUo5YWdxUkhYb1ZGL3FjaXVWSjFGcVVXdmlqWk1lN011SFRZZFZzMGw1?=
 =?utf-8?B?QjM5dFhIYWNVRXRPTnViS0pHSlFlSUtwU0xaVURDVytXWHRTbUNPQVhXWk41?=
 =?utf-8?B?TWNmbUF0bmNFdjZ4OHZFL1lqVXdNQVBUcXVVVFdzN0h3VG01emNFNkNsaExP?=
 =?utf-8?Q?m6uMtIN6hwKtlgoZLMVwHwX3s8C7O24o?=
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?ajR3NitLTEFFMXA3UEVxNUhRQm80NDhTaDdab3NkZThhRGlxQkRNVUVlTURW?=
 =?utf-8?B?QlpqQkI4eUxXVnFpR2pNRGZ3bHZmVmd2OTl3MzBBOW12ZlJ0cFp6c29CbDIv?=
 =?utf-8?B?WkM1ckdTTUdZVXlaY3ZUc2xpaHcvMWZ5TFdYNS9zSlBXZFRuZUtBQVZuV2cx?=
 =?utf-8?B?WXo1ZVJ6UFpQZ1QrSURIVG1pNmVXdmhyWHN6K2FOWFZYQTFwaFZjVVpibW91?=
 =?utf-8?B?ZzlIMFNuaEtXT1NRNXVZQ0pUSFZ2aTZEYjBTVkMwa2N1V0xya213YVlnRTYy?=
 =?utf-8?B?eVUzUnhKVlhtZy92dDY2MC9CWkQyT2xWTjByMGhxVXhtUEVxRXR4bVMvVnA4?=
 =?utf-8?B?MFdaMDJIRkFkKy9pckI2eElqSlNxbkhZTEo0bkN1VU9wMXZpa0g1bVRweUNZ?=
 =?utf-8?B?c05FUVdPR2RQcytCNDlKRnJpQWt5ZlFQMWc0RS9jQW8yRW53SzBlYWpDelZC?=
 =?utf-8?B?YTBLdTRNUnYyMGppc1VVUjBMcUhWekNBS0VocGorcE9LM0dsTFJRTlo4K3Fj?=
 =?utf-8?B?Z09nWnYyLzdhRFVzbXpCdk91SFpUVHhadU5DTW5ZSVltTGM0emhpQXJvUFE5?=
 =?utf-8?B?QlZuaFRZM3ZkRnNkMFc5REx5cHY1ODQwWlRCaXFENzZFOXNkckxOYjc2MytS?=
 =?utf-8?B?dEh5Y09OTzJaUWVKeWt1V0piMkRKd1FrbUc4dHpZb0wvbVZNL0Nlam5oZHRM?=
 =?utf-8?B?aWoyczNUVTFicXBUeWN0d2tUeC9SNDhhZ1BQZXB1RmxUVndkZTlMQzlydDJr?=
 =?utf-8?B?OGFMUnNTeU9XcGhzOXFIYmNyS0Z0cmk4S2FrY0tJWTc0SzRET0xKZGoxTU9U?=
 =?utf-8?B?TUJBL21zNlk5RUpIbm5taVZSU0NsNXA4b0phL1lQTDlLNWlHUGZxb3RWeWNu?=
 =?utf-8?B?SGN6V2VrWFN2OHlackhhZmlXUUtreVZRRG9naVNRQS9zNmFXV0NuQ3ZWN3pz?=
 =?utf-8?B?akliUFp1Sk42NVQ4MGw4WThRcjAxTS9rQUtKWXVIZ0xQSy90Vk1DOFZlL2dZ?=
 =?utf-8?B?QzRMUXJXc2lBQi9hdkM3NGdGdmZYcFNRTGJKcmxYUHo5MjZmSlBOaUZnbEIx?=
 =?utf-8?B?cnB2NTlUbHRNZEMrbXY3Y1FHY1VyZVZjTlFGMW16Sm9GUGdFRnZEKy9oZkZX?=
 =?utf-8?B?QytjZHg4ZXMzakwwU2NsenZHUkx0SlVhWGtkcU0xNlNPU0s2T00xOXRtNmJV?=
 =?utf-8?B?MVFJcVpYNWhZRGZXUmd3TVBkcy96SEpEV1VWNEhxTVFSTlgxaWtsZzZGWTA0?=
 =?utf-8?B?YytCV3RhOTBSV29BZHBaN0R4bzhiMTJ1SGwwT2k2d2RlYlRzbitDbXV2NEVi?=
 =?utf-8?B?eCtxMloxRkF1OXlhbUh2NnBkWDlVc2d4YUhJY1RVV1hHRTZSNjBBTUhSRHNC?=
 =?utf-8?B?RUJzSkVnY2FQbnp6U0p0a2pXa0JUL0ZiT3ZmdFhJR2tYNTFSTTJGejRlRU8y?=
 =?utf-8?B?cEhWK3BDWHlEZDhSYldKM3RnS0tmNDl5ZHB2dzloQkhFZ0NOSnNLUEZZMWdW?=
 =?utf-8?B?MFd2bThPbG9MVjN6eEJlZzB3R1FHazlaSDlQWnBqdktoT1NFd29ra0t1cnFC?=
 =?utf-8?B?WjBjVHhaRk9vYjdkVUZtSFNmeFlFTmVKWHFTRy9jMjBhZ1E0ZUJLUFNwUjY4?=
 =?utf-8?B?cmFjOENOTkZmNmhXOXo2MCtCMEZYT3Z6SzZwL0tNK0k5UzBISlRpL3lWQzBo?=
 =?utf-8?B?R2ZWY1pwV2VPWnlqUUxOL1RrT0hJSGZnS1Z0N2ZOZXNvWGkzV0xrbml1SGIv?=
 =?utf-8?B?ZnUyOEFBa0xjUzdxd0VHU0hmU283djhOWkhKTEFseUJsM0ZneDlQN1hnUngw?=
 =?utf-8?B?RHh2TllWN3BXaVlsbklTcmNzUzNMcEFNak1Oait5WVN4N3c4QW9KOGNSRVlI?=
 =?utf-8?B?U21JOTBENnAzR1BxaGVMSTBLNXgyRUhRTlJtT1J6MmVsSGFPZmxiNy9qakxz?=
 =?utf-8?B?U0lPU3hBZHVOWHltTG9jNkNEV0V1UTJ0TXVZZkREbXlpY1hjdmt5MEdTVDhR?=
 =?utf-8?B?eU1UenhqUDE4NS9VWHcyZXVVSkZ2NldjdXhUdTQxYUlBaEF4Si95VFZmS3l2?=
 =?utf-8?B?dzlteVJhS3dZRWxaN3F6UWg4MG8rSjFidS9XNnI3TCtNNVJLcTJBZTQ4NUJD?=
 =?utf-8?Q?5gjJZIovDKdepyjuZDNAHiZ0i?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3b6001cb-4ff2-4a25-10f1-08de2c4932d4
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2025 17:36:43.2048
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: NABxuA7D0lM2ri9OFCwey3q0jsNtND61gZQH8mWttLPKNU4LyaHfDFX43FIkZKepHx2lMTA2tcvL70IV9vW2HQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5284

On Tue, Nov 25, 2025 at 03:14:27PM +0100, Jan Beulich wrote:
> In particular when linking with lld, which converts hidden symbols to
> local ones, the ELF symbol table can change in unhelpful ways between the
> first two linking passes, resulting in the .rodata contributions to change
> between the 2nd and 3rd pass. That, however, renders our embedded symbol
> table pretty much unusable; the recently introduced self-test may then
> also fail. (Another difference between compiling a C file and assembling
> the generated ones is that - with -fdata-sections in use - the .rodata
> contributions move between passes 1 and 2, when we'd prefer them not to.)
> 
> Make tools/symbols capable of producing an "empty" assembly file, such
> that unwanted differences between passes 1 and 2 go away when then using
> the corresponding objects in place of common/symbols-dummy.o.
> 
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reported-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

LGTM, not sure whether you want to extend to other arches in this
same patch, or simply guard the build of symbols-dummy.o for non-x86
arches.

> ---
> May want mirroring to other arch-es.
> 
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -134,8 +134,10 @@ $(TARGET): $(TARGET)-syms $(efi-y) $(obj
>  CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI
>  
>  $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
> +	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0.S
> +	$(MAKE) $(build)=$(@D) $(dot-target).0.o
>  	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
> -	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0

It would be good if we could now stop building symbols-dummy.o as part
of extra-y.  Maybe you could guard it with ifneq ($(CONFIG_X86),y) in
the Makefile?

Or otherwise remove this from all arches thus removing
common/symbols-dummy.c.

> +	      $(dot-target).0.o -o $(dot-target).0
>  	$(NM) -pa --format=sysv $(dot-target).0 \
>  		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>  		> $(dot-target).1.S
> @@ -207,9 +209,11 @@ $(TARGET).efi: $(objtree)/prelink.o $(no
>  ifeq ($(CONFIG_DEBUG_INFO),y)
>  	$(if $(filter --strip-debug,$(EFI_LDFLAGS)),echo,:) "Will strip debug info from $(@F)"
>  endif
> +	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0s.S
> +	$(MAKE) $(build)=$(@D) .$(@F).0s.o
>  	$(foreach base, $(VIRT_BASE) $(ALT_BASE), \
>  	          $(LD) $(call EFI_LDFLAGS,$(base)) -T $(obj)/efi.lds $< $(relocs-dummy) \
> -	                $(objtree)/common/symbols-dummy.o $(note_file_option) \
> +	                $(dot-target).0s.o $(note_file_option) \
>  	                -o $(dot-target).$(base).0 &&) :
>  	$(MKRELOC) $(foreach base,$(VIRT_BASE) $(ALT_BASE),$(dot-target).$(base).0) \
>  		> $(dot-target).1r.S
> --- a/xen/tools/symbols.c
> +++ b/xen/tools/symbols.c
> @@ -672,7 +672,10 @@ int main(int argc, char **argv)
>  				warn_dup = true;
>  			else if (strcmp(argv[i], "--error-dup") == 0)
>  				warn_dup = error_dup = true;
> -			else if (strcmp(argv[i], "--xensyms") == 0)
> +			else if (strcmp(argv[i], "--empty") == 0) {
> +				write_src();
> +				return 0;

Oh, that was easier than I was expecting for symbols to generate a
working empty assembly file.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 20:05:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 20:05:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172179.1497275 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNzHh-0005th-H1; Tue, 25 Nov 2025 20:05:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172179.1497275; Tue, 25 Nov 2025 20: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 1vNzHh-0005ta-DJ; Tue, 25 Nov 2025 20:05:09 +0000
Received: by outflank-mailman (input) for mailman id 1172179;
 Tue, 25 Nov 2025 20: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=Cr80=6B=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1vNzHg-0005tU-9K
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 20:05:08 +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 08278e59-ca3a-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 21:05:05 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by IA3PR03MB8454.namprd03.prod.outlook.com (2603:10b6:208:53c::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.17; Tue, 25 Nov
 2025 20:05:01 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::c0cd:bcd1:5235:66f0]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::c0cd:bcd1:5235:66f0%7]) with mapi id 15.20.9366.009; Tue, 25 Nov 2025
 20:05: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: 08278e59-ca3a-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=M+2XoFkvwlcFJKO8WSNGM9e4l9oMwsszIjcjKFy2Ql0KtcuPb772dtS/eLuybBHXIbFj0rivdriXWNt0ykkuJdwQaGPyUCG1LImwvoyzbq5anQ9wJ5FcgZi8VxNpotxfb+RToK7EyOMY+Jd86NdhuLi/thXPqDxA6riyJ5VDn6Yf2aiR3gLRuzKl6hLDc2WUOd/czx2tmwZm7Ku6P40nTcTVFH57SVSu79i7Lm2gYRwxX92D7SfS+KH/KDe1WrvpIJR3TRiDHZvf/QFMU1ezKZYCRZ8j4EQcNg4TPAw/cwSuiwZcslY/hym1Cny1LSafaC3MRhURACONUc3oYu/Y1Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ceOcAwmy4+3wlEaLWq+sxz5OCpsNV7rRkkM2/YOiHbo=;
 b=w9NcEItirWe8tqLBSIms38ee6k0HUP4+/fMX0epYscBZgAowwgSD+61bxTWzMYzkOzWFdCv61V1nye9Er0oSHyethG57Td1GHBEEe2oo+57dhOUOfJOp3bf27CvMuoRfuXEXcb9isMbpDVpLv17G91JBqbiiyGFyUebVMcQ60OefR80K8yEFiVFhhzNEGlE4ARRNLSqbHRWzCcb7rs4xDTeGLzaewp+uJ6JUGQtnRcj/RmxXD2Jc8/DViSJ6Oa9Odn7GI+o5K8F49drrh13UkbBXJYPXBC8/oIow8zMWnwfe+rzkaz77XiqolGTIWO8NoSG9BV4iW3W+cO3DfUv5tQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ceOcAwmy4+3wlEaLWq+sxz5OCpsNV7rRkkM2/YOiHbo=;
 b=rPG0lxG0fjTYBJ6BwwZpW6dO9WUyeFlMAoLCTOYwri6Z1Lw/sNXDwpgaZPVtPyEs/5sLwK5pvUrMZtvSmaxkhRY/RJ6/A4BllmW4W8imDpKRBfz3uZj4qZGeYjUw3vyuCn7EplOb/UIwiRjSeedf/tteDV0+Xskz3LOpwqTXink=
From: Kevin Lampis <kevin.lampis@citrix.com>
To: Andrew Cooper <andrew.cooper@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "jbeulich@suse.com" <jbeulich@suse.com>, Roger Pau Monne
	<roger.pau@citrix.com>
Subject: Re: [PATCH] x86: Remove x86 prefixed names from cpuinfo for intel.c
Thread-Topic: [PATCH] x86: Remove x86 prefixed names from cpuinfo for intel.c
Thread-Index: AQHcXTQ73Jy0r9eIAkCAIFbbEnPqPbUCS7kAgAGHQ78=
Date: Tue, 25 Nov 2025 20:05:01 +0000
Message-ID:
 <BY1PR03MB79969A02DCCBAB2F9EBD0D24F3D1A@BY1PR03MB7996.namprd03.prod.outlook.com>
References: <20251124111942.1325635-1-kevin.lampis@citrix.com>
 <2a881cec-879b-478f-b067-06e1868b2770@citrix.com>
In-Reply-To: <2a881cec-879b-478f-b067-06e1868b2770@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BY1PR03MB7996:EE_|IA3PR03MB8454:EE_
x-ms-office365-filtering-correlation-id: aa74a9ab-03d6-423d-8110-08de2c5dea80
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|366016|8096899003|38070700021|7053199007;
x-microsoft-antispam-message-info:
 =?us-ascii?Q?rPBtEVlcv/Q1Zlsu9Jrgck7CLZ7yEnPwxPrybpMCFkssmkApmmAiWZhoHRNn?=
 =?us-ascii?Q?Bf+ltp37uFObMm6UPv/UEyVZE378JagW7dvvg7R5nXf3ASK+NVDXUdGRB7Gq?=
 =?us-ascii?Q?rBtEjP+ONGpkke2khSG3RDMZIrNSSKAxYxg31VN3PD/bR7TVPLKqPnz7eSAG?=
 =?us-ascii?Q?WQ64j49tJCvzxR+nTP0SQpFxuBHbbK2O1+0U5Bapa1EMwh6PFK2jQOVDkNDM?=
 =?us-ascii?Q?8I3y/hHKDOq9kfvwV0swb/Vj92+BuDhs3L46ZsSqid7557xedV2e8UfLIPJE?=
 =?us-ascii?Q?za/XkIjx2chI9aj4iwENItlGbjighIA3quOeMhT+ZRxve02BkaabK5dGM+a9?=
 =?us-ascii?Q?xXnC6tAAAlFLwO7XbcgFXXVxmcxKaR/os2ff5uYkFUKYh/9pqcHOX4gGIQ7X?=
 =?us-ascii?Q?KWqKFCZeR6qPvGLQyC30U8Czc/mFHUP2drrVqdsF4gj5Gb1kviI8/lYiTBI8?=
 =?us-ascii?Q?zxHPBvTip/iso2EWZGaF6lQN6SGwnkEeLZ4J6uzsGE5YtH7KeF4MTTcAusAv?=
 =?us-ascii?Q?svrl/h44BD8LIZee2o/+w/y4HZ17le2Ql2DFjGouRRZ3o3JwotrRsbXoyL4A?=
 =?us-ascii?Q?/8w3Eh1f0Hl0NyQpOw7ZUKApUrxISelyl5ee9EvOtWCc4ncLtUR+qOpTjeTl?=
 =?us-ascii?Q?7ztzYCgfLSHnmoyxACsuTKw191YtVNa+nm8PhaDkrdlbcBerpY2gci9pMPJ6?=
 =?us-ascii?Q?cGoA2MxIDYdXe5WOVQmbhcmrgMCwEl5QWbJthg3TcJu7s4G7lHR/1SMeArkj?=
 =?us-ascii?Q?E2nXVqL7QwH1STRMnf1TCZGDzRxpUaRNKAWOyq/BL7cE0jXa9ZWK6dj86qT7?=
 =?us-ascii?Q?fbf7IZaEWlqjszTtr8dgeb6PIyRD4q0nOrZzcgDPSd6ITac1hhXIQfLAHuMN?=
 =?us-ascii?Q?bwUuHkGRrhTe4c5zT50cQLjeb4KNnDVbpW3khpbEa6RweGJMI5y8SLrKlu9g?=
 =?us-ascii?Q?HTi8Bw0p+gfw/dPK9aJjotaL1izuJoqPLaXjBqIjlLXeQoXM9uMNFEJRVTDl?=
 =?us-ascii?Q?5Irc/3VgM9DorKSYJKztPf0yV7crSOe2yJGtbpzFlcJ329Kwk46Qfv0K928A?=
 =?us-ascii?Q?WpQIZ5R07EaGHCnsWabzFPHpF7g6+znd8dpm4mnM75uns7/k7w+v0oKZfmIs?=
 =?us-ascii?Q?Bwnz0Ik0CRYjSvyLIjRfU6F0TUsx+gcEt6r6cf8DADKemJzQ7vKOHmAKWLGn?=
 =?us-ascii?Q?Vy0vxZKYl1fkYeS6Oxg/ljNONr/r3JGO2YLvMclpZYiMdvHql5XKJK/yBjBH?=
 =?us-ascii?Q?wbK69W9PB0wGz2t7hlzPAC81hdtI/Lt+HTzw8kkxSLwpqbN61yHuRnIWfbmm?=
 =?us-ascii?Q?LUtGAFF3QC60ZOdYuszJqzc9xjPweB3Nw8xz81YpSy9MA84rQ9XKail7i7Du?=
 =?us-ascii?Q?wWlSNWNqA9P8s3AJsvesEyin9iRaweEfb0sFB8BHoAd6Tb+7kRCziCvhtoEg?=
 =?us-ascii?Q?jMv7xw5alPmSCrh6V7Va6mDCbWB+33WbNGeOUU4xvomIWRIL3GXPhEhDtKNy?=
 =?us-ascii?Q?KxdVVIFF8V6RsQTKuaFgLzNBglzCjtwjdSt2?=
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)(376014)(366016)(8096899003)(38070700021)(7053199007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?pHoJOt6qzqrW+CCPas3eQB8hFgJCUmq7lap/zB4zytqvx3QKnbqC4p48Y/d7?=
 =?us-ascii?Q?PT/fjvtqXm0GbT8Uzy2TQuRnhqatFieeNegpbdGPjPdpU5Cd0kyzgKsWzko4?=
 =?us-ascii?Q?TUeBOCwsmkfwrT5Yk3EIEvMLlAuSqRB/Jbs5dNOMiGBmY02BsbQ+ZaOqtu6G?=
 =?us-ascii?Q?maxLlJyfDuikpW3SWQ6zstTjsIkxdPfkV0H5UJ7KCM4ocvrKcptEZ2ovvVAD?=
 =?us-ascii?Q?X8pJ72oqCTz1ytllVPf6YoRGyWXgm3rU97kOgeeX5iCqOgP8yMxW6OCOxSAj?=
 =?us-ascii?Q?+bvV4qAGa5dswwpLCFf9Jzauyo5FnwMBmk+4MEPfN3jMvMyTGqim02Jm8hHL?=
 =?us-ascii?Q?3LHeGJA66nwUyziAxq+KD7nCWn76tOP4ghqZjf7Zb7sMW1nTfnVVN8BAoYCw?=
 =?us-ascii?Q?O3JUU0fFXM48+zbfbghjh8u/C9qbuiZO9eKALv9HOi20POwU3LZJxzKoPu39?=
 =?us-ascii?Q?3egSvuBnmH+HnuVw1mcD1qlMWMh8/in/O80X019Y618M9n4hV0bBgIS3uebE?=
 =?us-ascii?Q?661rtvnhTRQjl8fJ59/PwYmv3mYog//SF322g4hEYUjPZzzijJZ6NydmyQ1Y?=
 =?us-ascii?Q?qCITQZ+SUiuhNrwBJKVjZzQ0HuOiUT8iyLBOvNhLKlyZJAwYyY/YVbYlLL/Y?=
 =?us-ascii?Q?xKYY8XCQctNTJaM70s9EKhzl0xHtCkNCx8uzutsUofojJJvtfKQPHYHPw9hK?=
 =?us-ascii?Q?QRs1wePDM5clEAj79DMKn95AyRxiKHdYsq9gJ75qgwRiABpF3uHV3ef+JRKc?=
 =?us-ascii?Q?kKn3vuWqvNfzXVReb5st17T5NvV4sW7BNecfDw0muEz4tBQF6GvSSfyWcSwx?=
 =?us-ascii?Q?SVNNtHjD3iDxZaM4Q1Ea9fLc1wA9pWsXWwqw8YmairVd06xl4fqqCC+P9otl?=
 =?us-ascii?Q?V0gvs3ZBhZvBEsvauy01ygM4ky/RRQHCuTzwBb6KE9qOxe/bWBRtYGgtQMnV?=
 =?us-ascii?Q?9aFSxP7GtQDgwxg39426P+sK4S87TgUt4zupkZtd1j99UbW4uBCwBf33XVR4?=
 =?us-ascii?Q?8WmzEwEPncV95brSFrzTKkZUGHDB4ZlvME45j9xlVC4c5cW+XUNXNFoYYm0T?=
 =?us-ascii?Q?QzX4zxKdOjWD0M78QyXeznJXbgTSeVy7uDMPSKvYwLCEQGGApH9pXinVaGlU?=
 =?us-ascii?Q?rr5iMeCswu7Z1X+nNyZwIF+Y0k4/6vY8h/5XLDZzYrmjkPW83QgL8Ob5oXYt?=
 =?us-ascii?Q?sWWQ+4hUMVCVglsjuaUjc/b8SFK5VHRv5/yx07ulgF+zTAZZ6U28F/bWhhzc?=
 =?us-ascii?Q?+kHCCTpPkDtW7Qyw46cMb14OtK8WmXUwk8SSj4b7SrklkdLQrgHWbBzx8tA8?=
 =?us-ascii?Q?1gGgXWLGwFml7Y1/p9aK9b1QEyv+93Avh/M8PyvuEo8QwTqkmMe3PsNZZcdU?=
 =?us-ascii?Q?ulF+Xhx8cNZM5Iwg9Mn//18hqk0HplMQ6IQ57ZOrjYYL2YdZbmp/CcDiLAYD?=
 =?us-ascii?Q?b08T768phan7BNLubC31b7h1rBm+zN3qzFNlI0QXIi3MFAER5JhevO53NTlg?=
 =?us-ascii?Q?rvxWRA5jXak3NVby9gY8Og6Q/4OPQWfhY80LWYQgrmGRfOq+uIbP3sOWBPZw?=
 =?us-ascii?Q?Yg9cIHWx+VD4XTz5VMoa11igd9LgPv6BLHDqnVp8?=
Content-Type: multipart/alternative;
	boundary="_000_BY1PR03MB79969A02DCCBAB2F9EBD0D24F3D1ABY1PR03MB7996namp_"
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: aa74a9ab-03d6-423d-8110-08de2c5dea80
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2025 20:05:01.0412
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 8va448tkUaJJc1kWz1m9oSmWTK1gftzWg0JFnnshyPkV6K2o2T4PUssMjoo4bUWe3jKxkInA11Uz6rI5TGcN6w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR03MB8454

--_000_BY1PR03MB79969A02DCCBAB2F9EBD0D24F3D1ABY1PR03MB7996namp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Sorry I will pay more attention to the surrounding code in future.
________________________________
From: Andrew Cooper <andrew.cooper@citrix.com>
Sent: 24 November 2025 8:44 PM
To: Kevin Lampis <kevin.lampis@citrix.com>; xen-devel@lists.xenproject.org =
<xen-devel@lists.xenproject.org>
Cc: jbeulich@suse.com <jbeulich@suse.com>; Roger Pau Monne <roger.pau@citri=
x.com>
Subject: Re: [PATCH] x86: Remove x86 prefixed names from cpuinfo for intel.=
c

On 24/11/2025 11:19 am, Kevin Lampis wrote:
> diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
> index 6f71365b7e..5f780fe1aa 100644
> --- a/xen/arch/x86/cpu/intel.c
> +++ b/xen/arch/x86/cpu/intel.c
> @@ -86,7 +86,7 @@ static void __init check_memory_type_self_snoop_errata(=
void)
>        if (!boot_cpu_has(X86_FEATURE_SS))
>                return;
>
> -     switch (boot_cpu_data.x86_model) {
> +     switch (boot_cpu_data.model) {
>        case 0x0f: /* Merom */
>        case 0x16: /* Merom L */
>        case 0x17: /* Penryn */

One of the reasons of making these changes is identify the places
needing converting to VFM.  This is one, and...
> @@ -137,10 +137,10 @@ static void __init probe_masking_msrs(void)
>        unsigned int exp_msr_basic, exp_msr_ext, exp_msr_xsave;
>
>        /* Only family 6 supports this feature. */
> -     if (c->x86 !=3D 6)
> +     if (c->family !=3D 6)
>                return;
>
> -     switch (c->x86_model) {
> +     switch (c->model) {

... so is this.

~Andrew

--_000_BY1PR03MB79969A02DCCBAB2F9EBD0D24F3D1ABY1PR03MB7996namp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div class=3D"elementToProof" style=3D"font-family: Aptos, Aptos_EmbeddedFo=
nt, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; c=
olor: rgb(0, 0, 0);">
Sorry I will pay more attention to the surrounding code in future.</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> Andrew Cooper &lt;and=
rew.cooper@citrix.com&gt;<br>
<b>Sent:</b> 24 November 2025 8:44 PM<br>
<b>To:</b> Kevin Lampis &lt;kevin.lampis@citrix.com&gt;; xen-devel@lists.xe=
nproject.org &lt;xen-devel@lists.xenproject.org&gt;<br>
<b>Cc:</b> jbeulich@suse.com &lt;jbeulich@suse.com&gt;; Roger Pau Monne &lt=
;roger.pau@citrix.com&gt;<br>
<b>Subject:</b> Re: [PATCH] x86: Remove x86 prefixed names from cpuinfo for=
 intel.c</font>
<div>&nbsp;</div>
</div>
<div class=3D"BodyFragment"><font size=3D"2"><span style=3D"font-size:11pt;=
">
<div class=3D"PlainText">On 24/11/2025 11:19 am, Kevin Lampis wrote:<br>
&gt; diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c<br>
&gt; index 6f71365b7e..5f780fe1aa 100644<br>
&gt; --- a/xen/arch/x86/cpu/intel.c<br>
&gt; +++ b/xen/arch/x86/cpu/intel.c<br>
&gt; @@ -86,7 +86,7 @@ static void __init check_memory_type_self_snoop_erra=
ta(void)<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!boot_cpu_has(X86_FEATUR=
E_SS))<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp; return;<br>
&gt;&nbsp; <br>
&gt; -&nbsp;&nbsp;&nbsp;&nbsp; switch (boot_cpu_data.x86_model) {<br>
&gt; +&nbsp;&nbsp;&nbsp;&nbsp; switch (boot_cpu_data.model) {<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 0x0f: /* Merom */<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 0x16: /* Merom L */<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 0x17: /* Penryn */<br>
<br>
One of the reasons of making these changes is identify the places<br>
needing converting to VFM.&nbsp; This is one, and...<br>
&gt; @@ -137,10 +137,10 @@ static void __init probe_masking_msrs(void)<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned int exp_msr_basic, =
exp_msr_ext, exp_msr_xsave;<br>
&gt;&nbsp; <br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Only family 6 supports th=
is feature. */<br>
&gt; -&nbsp;&nbsp;&nbsp;&nbsp; if (c-&gt;x86 !=3D 6)<br>
&gt; +&nbsp;&nbsp;&nbsp;&nbsp; if (c-&gt;family !=3D 6)<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp; return;<br>
&gt;&nbsp; <br>
&gt; -&nbsp;&nbsp;&nbsp;&nbsp; switch (c-&gt;x86_model) {<br>
&gt; +&nbsp;&nbsp;&nbsp;&nbsp; switch (c-&gt;model) {<br>
<br>
... so is this.<br>
<br>
~Andrew<br>
</div>
</span></font></div>
</body>
</html>

--_000_BY1PR03MB79969A02DCCBAB2F9EBD0D24F3D1ABY1PR03MB7996namp_--


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 20:12:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 20:12:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172192.1497284 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNzOt-0007c3-AW; Tue, 25 Nov 2025 20:12:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172192.1497284; Tue, 25 Nov 2025 20:12:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNzOt-0007bw-7T; Tue, 25 Nov 2025 20:12:35 +0000
Received: by outflank-mailman (input) for mailman id 1172192;
 Tue, 25 Nov 2025 20:12: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=Cr80=6B=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1vNzOs-0007bq-I6
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 20:12:34 +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 120d36ac-ca3b-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 21:12:32 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by DS0PR03MB7630.namprd03.prod.outlook.com (2603:10b6:8:1f4::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.17; Tue, 25 Nov
 2025 20:12:28 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::c0cd:bcd1:5235:66f0]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::c0cd:bcd1:5235:66f0%7]) with mapi id 15.20.9366.009; Tue, 25 Nov 2025
 20:12: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: 120d36ac-ca3b-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=D1rCCiW6vwPJJcX8aDtvHKWyHmMql8hrVAQxRQfsHeAPZQKz+zDUWII4s7retBfIvYjqLL7QuTXpTIgxNo8BvmPlSGs17VUzces3F6YErvFDWpZJkcM7Jj6ih64VxOuDw+lJSLbE8cwbXBESmZ+ZEuKI4V7/yV3ipHgRutkbuH/C6cRH5Chb0DDOxYXIJ45Bm9bElrTW4Z3NIqaCfsP/dj09kkIIYOovS+I12olJ5MEwk9Jor27+B6b86ZJvNH/IYi+p93n8Mllcm+ZR0euc139N6v/iJmE14W0e2CKa6918qHpERPCEdKDraw6zYiTcAxujLRP4LWxvr3cjSTx1DA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lUe/6vvfVHHwLPMl81vCZg18Njakv/jq3/l5Iv9DtBc=;
 b=MbhJf5YIYRUKlpMw7AWLoz+LE5EtoWvEcgUX/A862MO+mxy5QWFmuQG+syP+1hCehNtYARMnj0G/3tMitbPSQ2SXkaHyG1jknVzncs3VqTrvqPKloHKrZUuiK/e+nSCaewV99XBHHGYZeRoSztDiHHshqj0QNo1GGB/y8PwPy/5syMmu2LVkzGFCqBiHZOmqwUS7Zj4617UkFkUlH4HJPTR4qRRatQIbEb4/lZlQcjhHQBJEZWyufceFwLvZQ4+rg1wfLxHFQvOcEfhJcG48oQda2X1RFWPux6Kqv2l7SRXC9rWRAGS0+4S8iQYkYnCD94ULbLwNJZsOE05/8F3lwg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lUe/6vvfVHHwLPMl81vCZg18Njakv/jq3/l5Iv9DtBc=;
 b=aS44Wc8vt7QSesINm0Bmwt7U2ASbz6lIwzoKHzB9uByxJR9rpuFGcGiIUAkj1IW0mlNGQ+QJB/ct+mUVoA445PiLjELlzat0l2eJ8YHgEjTwdJMPSseSLWyO+tW69mvknxbXw3bay7ywp7l3oQ/mFVf37gAAfZ+IVyZAEJ25XQQ=
From: Kevin Lampis <kevin.lampis@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper@citrix.com>, Roger Pau Monne
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] x86: Remove x86 prefixed names from cpuinfo for intel.c
Thread-Topic: [PATCH] x86: Remove x86 prefixed names from cpuinfo for intel.c
Thread-Index: AQHcXTQ73Jy0r9eIAkCAIFbbEnPqPbUCC28AgAHIZe0=
Date: Tue, 25 Nov 2025 20:12:27 +0000
Message-ID:
 <BY1PR03MB7996ECF620796C340E0B7537F3D1A@BY1PR03MB7996.namprd03.prod.outlook.com>
References: <20251124111942.1325635-1-kevin.lampis@citrix.com>
 <f4741251-0772-4a7a-86ec-951d08b22517@suse.com>
In-Reply-To: <f4741251-0772-4a7a-86ec-951d08b22517@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BY1PR03MB7996:EE_|DS0PR03MB7630:EE_
x-ms-office365-filtering-correlation-id: 8aebb85f-7bea-4ebe-ceb8-08de2c5ef4d8
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?WABqgv2RQ+bQS6oyeb4frLkCdx8+92+h9xvNpKQuaDYng/yLdyauSTFaku?=
 =?iso-8859-1?Q?JH84QZ0CUe6rDrZgayT+D7+lRpDns44SJ6Xp1RhXj+SwZYOTs9K9R/OSA0?=
 =?iso-8859-1?Q?nTFGQc3Hwq5YID7vb0su9gS0PDKh4zeTYskiPYfZfaeCLsY2ssk2o1NXzo?=
 =?iso-8859-1?Q?LMkxrR4WIpuAP8MqTQSaEaFmD6XxU8W6NvVBiEd7kZmT1yxnehI+mCBJvB?=
 =?iso-8859-1?Q?BBzZBktQdrZ4mvsr2OQpua+DhBUS50h9vC8b1Nv/Q7Jbva6vl+YARLeFg1?=
 =?iso-8859-1?Q?AJrqAeudBEkjEJLkIqD+sae/kqaFN43rd6ErMFVCBO6ImsLZUNF6BjpcnJ?=
 =?iso-8859-1?Q?o/mOCl3jfOue/2Pk4uXffNnPcZOeGkTCEfMuC2lUkcJT8yySt30oI0V/Cd?=
 =?iso-8859-1?Q?uQKQz2Gb1MQQNnEVKAQuAmM92PAqO6+acLAO1Xr/Pvwbg5KdeP0suRjsgo?=
 =?iso-8859-1?Q?kfP4TxC4L/aqve4jmTszq/H6W6JFwS8G/Gt+kyUQ9Qm4tshLyE6dtor87J?=
 =?iso-8859-1?Q?YVe/fAE649gxre2qUnMBcTt9hoVKDe5EiZF3qwX04wAbmK5X0SrBOfZaxM?=
 =?iso-8859-1?Q?tBIcT8WmajIlAk+pMWFHrbaS1cfacDFxzKih2RZccfoKVezzyQHRcW+jiP?=
 =?iso-8859-1?Q?KVX9cRHKgEtAEDf0FCkxFtvwOmtWVarHHvn4+wMC6pkvL/pSuQZI0yd3Ci?=
 =?iso-8859-1?Q?ClDSGv6cg2F5DD+PtkcUjdek1TGrOeFplgbHMr0WVd3mAv5N1iHrMi4u61?=
 =?iso-8859-1?Q?hIxLjSaJW1C1SEbP3p25fQytdOJUn5lLIPJ5pTDkhGJXSXvH0DBUC6a1IV?=
 =?iso-8859-1?Q?VT1kKL6+oe99obvGNNuNapmWMJOeRN734laZsmJWrqbTaI8+xXv+/VEhvz?=
 =?iso-8859-1?Q?14sDDny+NAGgbC5C47cIZsDqkYSnkWtLAlEJja84OXfNEnLxc5RYMARvZq?=
 =?iso-8859-1?Q?kZMHEAkJ6p3KowQkMRHrGdmi3laa8bg6CasatnX0mebYzCzPLHiJKyq30v?=
 =?iso-8859-1?Q?ERm1k5kAZWvfgvpkuUQPJy0GJ6Yynt4sbEJ/zd6FGGSOKDIVqh1H5irSzm?=
 =?iso-8859-1?Q?WKek/aIH/szLaMxiG3WygyJUadaIdNR7ORVok9Af9ajPQBdY6fUVA/6+NT?=
 =?iso-8859-1?Q?RFrLW1HY/GUMhohQAAhkoasuLVtXur6hZrjyM8EL76ozgEBHXIN3LACmSM?=
 =?iso-8859-1?Q?0ZAyRM4WqVC8SaQOjryTnst60z/jHnEBS45Wu0P0DU66pn1Wl0uBWoi9n2?=
 =?iso-8859-1?Q?sP6Vq/tgjZFpCSm+loxXDydvyIPaMO5BTcCfS7QXBTm9AdXkUKMsORawNb?=
 =?iso-8859-1?Q?GCfcgKDta9nJ93DV4kxmDFQn+7WJxP1Rmuh3tginVqGYiwsQZOkXGH+4v1?=
 =?iso-8859-1?Q?2fm8MeBFTX8n6uJH4JSBXL1yrte1OL4Xud8qZ42lFEBD/RemJEjbHG5O2B?=
 =?iso-8859-1?Q?uQKk8sZ8TOa2P+bwvhx1BeXEdq8hpjJwHfLPePYCl69QDZ6Ip+XQw8VV7h?=
 =?iso-8859-1?Q?OIzHBrV1x1edInAYKKS99rxnFzOS2G5Qn8nh8cU+qjbvhFNxJ6wyzMr9ix?=
 =?iso-8859-1?Q?/Aa8YuhWfY2Z73gu5pQicyIGahRP?=
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)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?2KFbTGIWeS9kViP2Lxz6ZYrVml+qThS1gW+S618EfMceMmLwS6/1Oz+1zR?=
 =?iso-8859-1?Q?K9U4ZSw2/267DZR04KxbPAqboQHG0ieCmwQ0NV1BIPrd5LQ6vmSgiTWG5R?=
 =?iso-8859-1?Q?FjlWjrVUn4Zvbr9F4/tOds0BNmrrq1pGkQ09n2mEPF6/llcfLHH9cX46Ym?=
 =?iso-8859-1?Q?TzTmW7S3kXVJJAaiEv5iNbutn2L/Vn4rP3jfJ20DGeBFAGGya7mdG03ao8?=
 =?iso-8859-1?Q?P8UNDAfYnF3kAg1aPGtJECCjuLHJhE1Kxaen7Z4APTQEEb33FlY7L9cWWv?=
 =?iso-8859-1?Q?B5Aomg/f1ZT+sH5xrHXNbgzlbKC88kjU3TUjNnEicL7gwJLb8rbMkqWzpC?=
 =?iso-8859-1?Q?IRIrB6d367RlbG7OQf8XLTYkbk648oAKUDptsGwEQJdivg46FL7byKaqL6?=
 =?iso-8859-1?Q?k1RGqZbRh5tfsF7Wwk9ziYRjZU9DCUXf2W5zMiA6KE8yuN/WQd+t967Iom?=
 =?iso-8859-1?Q?5RpJUrlb7eNTscoBaVlTUlCNZZ01jp7pZe7uQKeYd69u1Y/0sP+wkhc95I?=
 =?iso-8859-1?Q?jF1cdE+i4ZJB4qVAWt0RamJg8AvN/QX7O9pmyYpjE7s8U94GkurnNsQFr0?=
 =?iso-8859-1?Q?9Nz50vP3TcBbCEo80V56AIOSGH7l8eh7exfEimMGzpeRij8yBmy/TTMKmv?=
 =?iso-8859-1?Q?L/dZhDWpVvQGf+LV10UdjBPBV1woH9GAjEBx7bdgLUStEmS3GANUym9Suw?=
 =?iso-8859-1?Q?QkV7SqsFSaWXXlxT32HjHz4cgBK8Voln+Ed8eNlBHUsBLSot0jb1juAA+E?=
 =?iso-8859-1?Q?yAEoe4k/5h0l6Not9OibEUQYk2bwLYen5SMUWRHFUKYY3mbuw8ChutFJ+E?=
 =?iso-8859-1?Q?DiKnxFGMBxGHMWijuz8BMxL3abdVHw1ZT8luDIPGAp6Ozk2SYHNro1HqLX?=
 =?iso-8859-1?Q?bexrlq85FzQLz61eIGB23QeGP/mo7YoiWkYaNd+RXf6HQbH/Hb9iTf69TT?=
 =?iso-8859-1?Q?7s6zXNkH6hnmmctWyHqjMoibu3h5wH3UAs3p/RleZuUMQ6vHFH+kJ+7hGo?=
 =?iso-8859-1?Q?NCi8qf6RzhJlj7R5qo7WmdQsEDUiXlcZV/RkhJpWZ09PbwRUCFvIgwzlQ5?=
 =?iso-8859-1?Q?4jXG+RDlI58LffuffTPxuxdG60XJ0fiAeI729FVWEr51FXmizysSlUOOzk?=
 =?iso-8859-1?Q?/Vgeboid0/eiAl131FHz6QUouGdzMcdMWzdLTx6u1pVFaPYrmKCtf/OS1H?=
 =?iso-8859-1?Q?8WAPDEUG2ZANeyXxk1btezgSNCqEZ7BRU12qOycXtWdHPrJv3A81YbIGHN?=
 =?iso-8859-1?Q?LHouleSquV93phf/R2cXvCGdyv0snGfZDT7V4YBfoCnQ49JSW2bOqQXkJL?=
 =?iso-8859-1?Q?IODzIZCgt5UWx29P6IUvShSIRKB+7bTF3DIDHEMVyeviKQ0W4ehaDyd9GV?=
 =?iso-8859-1?Q?aAVXf/gF1wJTF0vruA+/92DSffrud6LBeu7kFdy9dY8JOvh7Pq+T4M9I2U?=
 =?iso-8859-1?Q?5GVPlaMm8WJWYVhXidpNvd3Y+4A+RrT+J7UsMmr2gY0T52Bx4KpY1UA86t?=
 =?iso-8859-1?Q?RDlwQszRWOiHRCZE8xAn9zRL1SgUEKSNtl7extmXSvaWw66CiFjgibTUTM?=
 =?iso-8859-1?Q?sKwBpcNo79Hb12I+K/NgjLUnvD0/LvBQAkOz0tDl9GCsVuiz9XEIbtsim4?=
 =?iso-8859-1?Q?9ZunSoGtushLEJ5SpL4jRnzeC0SIA5KG3e?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8aebb85f-7bea-4ebe-ceb8-08de2c5ef4d8
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2025 20:12:27.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: zsjnCz94lDXfgt4NjzIeye11sxsOAFREmeTYVeRMY//Cua5dNszQbE1oeM3Cfw+YAkcE4Klxmwx7l5vUyizlBw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB7630

> Bogus indentation would also want adjusting while touching the line=0A=
=0A=
All this code is using hard tabs that's why it looks wrong. If I convert on=
ly=0A=
this single statement `if` to spaces then I get a `misleading-indentation`=
=0A=
error so I have to convert the `if` block after it to spaces too.=0A=
I hope that's ok.=0A=


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 20:27:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 20:27:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172201.1497295 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNzdM-0001Dx-Iy; Tue, 25 Nov 2025 20:27:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172201.1497295; Tue, 25 Nov 2025 20:27:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vNzdM-0001Dq-F5; Tue, 25 Nov 2025 20:27:32 +0000
Received: by outflank-mailman (input) for mailman id 1172201;
 Tue, 25 Nov 2025 20:27:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Cr80=6B=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1vNzdL-0001Di-Cm
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 20:27: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 27808815-ca3d-11f0-980a-7dc792cee155;
 Tue, 25 Nov 2025 21:27:25 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by MW4PR03MB6666.namprd03.prod.outlook.com (2603:10b6:303:121::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Tue, 25 Nov
 2025 20:27:20 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::c0cd:bcd1:5235:66f0]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::c0cd:bcd1:5235:66f0%7]) with mapi id 15.20.9366.009; Tue, 25 Nov 2025
 20:27: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: 27808815-ca3d-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FJUuGiI5b0qTrP7pLVqtot3SLcHVfnegC5c7fHUk48E9XtzRbOkuXvGaL6BQPwj5oMT+p+UFWaxnunvXTH/GcljOjdBzN7dCvJFwczCpkf0uEC+rhO/oI0HUBB+H07KW4E5xXJPPb9bt7m9nkpC2xUPfBicVJfw2VSbfHrdMQzmgSj+KztXr/lycE6SUSfBAzIdBCU/C49J0EJgKJShC0mVEHmVNvtYTM7SpwjofC9SmlXF4eqUvslgk0FuBcmNYXbb1m3KHHvktie35cswm2cjDZG5/XKIVqOUL9rrFaov6sSqW/x9srzDZBlUxe0mrGKU4W3sfr6rHXBpCEBm7/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=8s3WFgrifwPUaRSx/Hqib24IMP8kMT/dr9tOWlFgbSA=;
 b=oXo/bKMXjPCdHqfITWfHr6EucD6W5XCvy17mXD/t3gEqBmCY8cAXWsC8ZAMTkZHPEfrSAmX9tM5b+ObufSSuNR+MNQ1zvig3cQdBH3RNEh+o3/UodOQ7D9686+Avjo0JZhYEvfv5I+lsgy5vi0r4lFBYXJmKlWQgZPpKA4FHTGTCT9xCMFKM9HKtY+7jNsVBfVQ4rW2s9y6E7wOuB5yLoYIgA98oohQ0ylqEnROeerDboYiLdHO4C7nNUBAyRsMvS03Uw5Ewc0tLirT9r4JRb0ksV9C3jfYSAslU6CIrd32Sw0G7anU4OH9oFQ8TFnzDQXu9auu50vj2RSWZV1uuxA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8s3WFgrifwPUaRSx/Hqib24IMP8kMT/dr9tOWlFgbSA=;
 b=dcVyi+76aXhzkcWUNqD8LLIqzD6NZRRxu14WOatNt8Wr+lHzVfVoMTkNuplsLVvZ0/721A/kwv3Mck9utZEdoao4SvAemS/0e4S6ieE7r7JeBh0IdFrOWYCxwsOpYtGHris8y2g2pt6NPs0iE6xvb9Z8y1ziPnYtfJJkWfAJHH0=
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 v2] x86: Remove x86 prefixed names from cpuinfo for intel.c
Date: Tue, 25 Nov 2025 20:27:24 +0000
Message-ID: <20251125202724.1384622-1-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO6P123CA0024.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:313::16) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|MW4PR03MB6666:EE_
X-MS-Office365-Filtering-Correlation-Id: 61791472-56e7-49b5-8e4e-08de2c6108f9
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?6TeGlnJAreA70ZeAhWefPfU/itlwbeyZLwlO03cfjaljEyyRHi4AGsXJD7Z0?=
 =?us-ascii?Q?f5sNK9R7Hn3g4Ex5/BtgE07PDKHYHKYOz/qoAofL4rL6zNLPMMh9hSGcAZSx?=
 =?us-ascii?Q?3pQVtwrAhcgBdI2rn29ITgm64Lf44KdEGmYFnAugYfQOnzjz/ALgam5jvev4?=
 =?us-ascii?Q?fiBqgzSuikiUKF6vaRiLgtZlg2z+jr0VttE7/E7zhXKm33lSTuEkHrIFpPhY?=
 =?us-ascii?Q?2HcVn5JyS4Lio8/ASx8np+kl0rD5FjreRWu+wjqqU4Arkee6/7tCz7nixEOL?=
 =?us-ascii?Q?kvtP9VpTxkzQdVIszRpjSNiD32oHbDoL6GxZROedz5Mz0ISGGY9YZEHnkYFO?=
 =?us-ascii?Q?1nTRGEErAdsKpmTqlLY62CpzQYxoft2G5xipR47TEoX0D/U1m7pFlIMT029s?=
 =?us-ascii?Q?dw46OGPhLg8/D9mHwNtwSpzXhVRgX6oSmSH35eT1rco0e4IcnFVTtjO970W+?=
 =?us-ascii?Q?kL9g/YtlZPKC3Aye+WB4oKbyF9QOG9c8PZcAwFh200bgszScQDOyFQD+T/gM?=
 =?us-ascii?Q?85Tihvuy7NL9H4sHc1D8jCK49JAmbv7+5rIorg6LolQY0LJ9JxdnpTH416nZ?=
 =?us-ascii?Q?IPXBia8T1BCUXC/G2itqTcbhAkt02D47ijs8LCfx7KunaicdETwi4/dFeg7U?=
 =?us-ascii?Q?QEqOczZyWBHbitaizv8OWNrP9p0qkRu4dkDm8y2t9QmuN9jaN5wY0XmprAAe?=
 =?us-ascii?Q?c/yHjCJOfckWJkSggq1s0DNgtrRGbTBUVB7Dj9fbMcDiKFsRF4AdybkFdPYC?=
 =?us-ascii?Q?0x38av+RQAtCwCJ87JYD23U829CCos+hxQezjXxv+6V970cxEPyV6hNTGuF7?=
 =?us-ascii?Q?XfGBPZYv5ILvAvkGqW2wGKBHYDvpHCzN9VTojb1zhlNysryuRMzgkXXivKrA?=
 =?us-ascii?Q?xCt3LTvgQCrGJ4mkE0DRIp5B0omSFMmTkU+lxQ8nZEOy/POPq/FXeixoF3no?=
 =?us-ascii?Q?xgfawtlfdxqx9uUxYFiJ8hcuffGyYTcE/SsIJlpzI/PAT7qoOU72YYqVoflE?=
 =?us-ascii?Q?xWG4PFmjRC8+zj7yHAyQcNPVwO1i3pWeoQlzXCifrzWDTUelQvB0gbNWt5ds?=
 =?us-ascii?Q?VlMulZsfsBRTo983pCnBSBRDOX1o9Ej2vwJIf26olgSl2rwG/fkkg3oi+q+1?=
 =?us-ascii?Q?s0utzJ14rIQ4Q+49PcsyfcfgxB/AdBdY1fhICu9iTifRaRdg9JBd6xg136js?=
 =?us-ascii?Q?teM+92OLjoVL7luLv/WBNfAl97OQgkk8PAWdUcMhIFrELPkX6vzkmVBHxVrv?=
 =?us-ascii?Q?fsN+aH84xWJwTkS7p9XkDThttp3CNVTfvD0Cas9QTS+xFSboxmPJVzSs7+US?=
 =?us-ascii?Q?Jxevi0Kol1GYSsaX5srrEnYnHp/8BLmCYw1h7+YIS/A9BG2bb8gXeyC40m3d?=
 =?us-ascii?Q?V+/UEU4ecdDu3AsA1tIQbQsxYcXa6Hv6PD1A6/V2Ud9u5V9CqRBePFJbUxPu?=
 =?us-ascii?Q?TggBp7FS2AyWfdoTDHOR+C310jfEFXNP?=
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?adcxfMuMOu9ACYI1vHUZks6p2exeaN9SCKFUjXCUmbZHq7l/s/mqHk2hyKEe?=
 =?us-ascii?Q?xMovgRTwYjYN7xvcPdy0UAUIxFOguAgOLrfJJNfRMiutwHbJGhYeTFvQi2yB?=
 =?us-ascii?Q?p8E3AQYLUMfd5sOKr2DMhPhOj7FKMHCQw/TsOfjx1CxKtyBE6HnVAv64V6i7?=
 =?us-ascii?Q?RrSPU5bWc8Vh7eyCs4o3/T8CwxQVdhhDhsxWOmVhiqWBNneL2V5Bu/ECel7T?=
 =?us-ascii?Q?+Op2vsVv/H+sxRiwLo7WzVnoGe1p3jjLl7hqxm9YFjCKmkeoH1/VyL8pjHmJ?=
 =?us-ascii?Q?RkKOqK94iQ3R1o69DWMm1xx6QRB543JhCVc/+KcMvo5V+zRVNGD8Z7TYCMs3?=
 =?us-ascii?Q?ytiqsu99zpP6wPqwhkgJi3fUegePoUWkCLltNH7tXec+/5XZB3nBwONssVev?=
 =?us-ascii?Q?esQp55Z2rJBE0A6ijqrPh1CYbRDRvXjLfj62452LK6WRZI2eQaxq4dU/om/T?=
 =?us-ascii?Q?N8ts4uhLrXKwpozDZ/B5De8E8IIW8wpNxTo+YI/VRltNb+1W4IbQQLaIQsK4?=
 =?us-ascii?Q?V8oziXgh2eAwNXhnsFmp7tIgJwWIlvY9ynl8ZMLkB6sij86Q/9lt159FqoPf?=
 =?us-ascii?Q?xoqeffOKjnb8+0+TQu/BNpVpZ7L+0MYg+IWKYcI7H5ZpOEtTK3frxU17lSBe?=
 =?us-ascii?Q?ijpeWlMyk36mMCigeSzx5aYpzfYhayZAeKXQtA4KxBmFbPR81JVTz/NRq16E?=
 =?us-ascii?Q?kvPcCRA7FcdWv49AOIjHIFwaTh6+NXPo1Bed7PozHKLCwcd/qOzTxwBPY03z?=
 =?us-ascii?Q?N/8EHHo0JHSbHeOf6F0mtmlvK6OKxU2belShsCgJyLWQEU6sFWE7hOfpCo2Q?=
 =?us-ascii?Q?PRqcS2GQ2jnx6xheB+ySapNhACk7MafpCTwz3eBu5Yc9GYweLHoriia4SscU?=
 =?us-ascii?Q?e+0qkDviXcm9mt7bq/o3usTR/lZHoq9t2OXUHCfNsWg/rm9BbCYGH6u7/Tae?=
 =?us-ascii?Q?iIUaOdxLpRbz8ZtT5ocYWuV7ddg92cbP5J6ThExy7+XXgLp1uH5CQJ1s9+kc?=
 =?us-ascii?Q?7HHHTd7qA21yPpLoGAu4hFNjDKtL19UrNJA2EUcSMO35RX5z7K/S74xomscQ?=
 =?us-ascii?Q?pCpxA5vgMtSfSf091HQbPo+dbyQNkLnBuJ5Q6QLaatoB4ZExosZ0+EM8bG+K?=
 =?us-ascii?Q?LRVgiagt8ZA7RjjBUygYVPgwR/dId6hqPLlYAb9D1Y6hk5I+Et43igiAhA8i?=
 =?us-ascii?Q?CX7CzMPIIetYApayUZ4TFoRzQbUO61439KWy4QR3B13ww2MVTGDOfiPMpqMS?=
 =?us-ascii?Q?N25TA9+lyQF94bfWu7wgk9DN8DCchhoD8ch1T3GPkS0F7dWuE/3QKGCQgC4j?=
 =?us-ascii?Q?H10UlE/8vBoHIqNeI8PmSg4id7qLL9sXZbdpIHJWhgYdxrb/D8A6mV7aQb9B?=
 =?us-ascii?Q?ibWqGapRR9p9KeWf1fH6NefXXWFEXx6d3bCkwpNBsg6Zy3SW56BKowUY8l65?=
 =?us-ascii?Q?e5NCU1o86kCtLvrTjGJCMYdGVXLC3HBewPqD0eb4BJybxERM7cKFcDc55Bms?=
 =?us-ascii?Q?FbYtNbnkS7EOxN3WePd5J5G/BPclVTv2fosWioVFN+kJo9cRK/R7MUtDQ+ag?=
 =?us-ascii?Q?EJrERvbXX5XmMpSG/s28GyaX380nW1eiHq0Bh2oa?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 61791472-56e7-49b5-8e4e-08de2c6108f9
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2025 20:27:20.8062
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: C+s2ccWbvUpiICb4T6X31nN+CFPv9vbDri4nfKnVmH8VOxgfTVWLH/oNyd+q/MPMPxY+UFwXBDH3ZcV5BQ+khw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6666

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
Changes in v2:
- Convert the two switch statements in probe_masking_msrs()
  and check_memory_type_self_snoop_errata()
- Requested style changes

 xen/arch/x86/cpu/intel.c                | 112 ++++++++++++++----------
 xen/arch/x86/include/asm/intel-family.h |   4 +
 2 files changed, 68 insertions(+), 48 deletions(-)

diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
index 6f71365b7e..1edc95b046 100644
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -86,18 +86,19 @@ static void __init check_memory_type_self_snoop_errata(void)
 	if (!boot_cpu_has(X86_FEATURE_SS))
 		return;
 
-	switch (boot_cpu_data.x86_model) {
-	case 0x0f: /* Merom */
-	case 0x16: /* Merom L */
-	case 0x17: /* Penryn */
-	case 0x1d: /* Dunnington */
-	case 0x1e: /* Nehalem */
-	case 0x1f: /* Auburndale / Havendale */
-	case 0x1a: /* Nehalem EP */
-	case 0x2e: /* Nehalem EX */
-	case 0x25: /* Westmere */
-	case 0x2c: /* Westmere EP */
-	case 0x2a: /* SandyBridge */
+	switch ( boot_cpu_data.vfm )
+	{
+	case INTEL_CORE2_MEROM:
+	case INTEL_CORE2_MEROM_L:
+	case INTEL_CORE2_PENRYN:
+	case INTEL_CORE2_DUNNINGTON:
+	case INTEL_NEHALEM:
+	case INTEL_NEHALEM_G:
+	case INTEL_NEHALEM_EP:
+	case INTEL_NEHALEM_EX:
+	case INTEL_WESTMERE:
+	case INTEL_WESTMERE_EP:
+	case INTEL_SANDYBRIDGE:
 		return;
 	}
 
@@ -137,28 +138,29 @@ static void __init probe_masking_msrs(void)
 	unsigned int exp_msr_basic, exp_msr_ext, exp_msr_xsave;
 
 	/* Only family 6 supports this feature. */
-	if (c->x86 != 6)
+	if (c->family != 6)
 		return;
 
-	switch (c->x86_model) {
-	case 0x17: /* Yorkfield, Wolfdale, Penryn, Harpertown(DP) */
-	case 0x1d: /* Dunnington(MP) */
+	switch ( c->vfm )
+	{
+	case INTEL_CORE2_PENRYN:
+	case INTEL_CORE2_DUNNINGTON:
 		msr_basic = MSR_INTEL_MASK_V1_CPUID1;
 		break;
 
-	case 0x1a: /* Bloomfield, Nehalem-EP(Gainestown) */
-	case 0x1e: /* Clarksfield, Lynnfield, Jasper Forest */
-	case 0x1f: /* Something Nehalem-based - perhaps Auburndale/Havendale? */
-	case 0x25: /* Arrandale, Clarksdale */
-	case 0x2c: /* Gulftown, Westmere-EP */
-	case 0x2e: /* Nehalem-EX(Beckton) */
-	case 0x2f: /* Westmere-EX */
+	case INTEL_NEHALEM_EP:
+	case INTEL_NEHALEM:
+	case INTEL_NEHALEM_G:
+	case INTEL_WESTMERE:
+	case INTEL_WESTMERE_EP:
+	case INTEL_NEHALEM_EX:
+	case INTEL_WESTMERE_EX:
 		msr_basic = MSR_INTEL_MASK_V2_CPUID1;
 		msr_ext   = MSR_INTEL_MASK_V2_CPUID80000001;
 		break;
 
-	case 0x2a: /* SandyBridge */
-	case 0x2d: /* SandyBridge-E, SandyBridge-EN, SandyBridge-EP */
+	case INTEL_SANDYBRIDGE:
+	case INTEL_SANDYBRIDGE_X:
 		msr_basic = MSR_INTEL_MASK_V3_CPUID1;
 		msr_ext   = MSR_INTEL_MASK_V3_CPUID80000001;
 		msr_xsave = MSR_INTEL_MASK_V3_CPUIDD_01;
@@ -191,7 +193,7 @@ static void __init probe_masking_msrs(void)
 	       expected_levelling_cap, levelling_caps,
 	       (expected_levelling_cap ^ levelling_caps) & levelling_caps);
 	printk(XENLOG_WARNING "Fam %#x, model %#x expected (%#x/%#x/%#x), "
-	       "got (%#x/%#x/%#x)\n", c->x86, c->x86_model,
+	       "got (%#x/%#x/%#x)\n", c->family, c->model,
 	       exp_msr_basic, exp_msr_ext, exp_msr_xsave,
 	       msr_basic, msr_ext, msr_xsave);
 	printk(XENLOG_WARNING
@@ -265,7 +267,7 @@ static void __init noinline intel_init_levelling(void)
 	 * so skip it altogether. In the case where Xen is virtualized these
 	 * MSRs may be emulated though, so we allow it in that case.
 	 */
-	if ((boot_cpu_data.x86 != 0xf || cpu_has_hypervisor) &&
+	if ((boot_cpu_data.family != 0xf || cpu_has_hypervisor) &&
 	    probe_cpuid_faulting()) {
 		expected_levelling_cap |= LCAP_faulting;
 		levelling_caps |= LCAP_faulting;
@@ -348,7 +350,7 @@ void intel_unlock_cpuid_leaves(struct cpuinfo_x86 *c)
 static void cf_check early_init_intel(struct cpuinfo_x86 *c)
 {
 	/* Netburst reports 64 bytes clflush size, but does IO in 128 bytes */
-	if (c->x86 == 15 && c->x86_cache_alignment == 64)
+	if (c->family == 15 && c->x86_cache_alignment == 64)
 		c->x86_cache_alignment = 128;
 
 	if (c == &boot_cpu_data &&
@@ -358,8 +360,8 @@ static void cf_check early_init_intel(struct cpuinfo_x86 *c)
 	intel_unlock_cpuid_leaves(c);
 
 	/* CPUID workaround for Intel 0F33/0F34 CPU */
-	if (boot_cpu_data.x86 == 0xF && boot_cpu_data.x86_model == 3 &&
-	    (boot_cpu_data.x86_mask == 3 || boot_cpu_data.x86_mask == 4))
+	if (boot_cpu_data.vfm == INTEL_P4_PRESCOTT &&
+	    (boot_cpu_data.stepping == 3 || boot_cpu_data.stepping == 4))
 		paddr_bits = 36;
 
 	if (c == &boot_cpu_data) {
@@ -458,7 +460,8 @@ static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
 {
 	uint64_t val;
 
-	if ((c->x86 == 15) && (c->x86_model == 1) && (c->x86_mask == 1)) {
+	if ( c->vfm == INTEL_P4_WILLAMETTE && c->stepping == 1 )
+	{
 		val = rdmsr(MSR_IA32_MISC_ENABLE);
 		if ((val & (1 << 9)) == 0) {
 			printk (KERN_INFO "CPU: C0 stepping P4 Xeon detected.\n");
@@ -468,8 +471,10 @@ static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
 		}
 	}
 
-	if (c->x86 == 6 && cpu_has_clflush &&
-	    (c->x86_model == 29 || c->x86_model == 46 || c->x86_model == 47))
+	if ( cpu_has_clflush &&
+	    ( c->vfm == INTEL_CORE2_DUNNINGTON ||
+	      c->vfm == INTEL_NEHALEM_EX ||
+	      c->vfm == INTEL_WESTMERE_EX ))
 		setup_force_cpu_cap(X86_BUG_CLFLUSH_MONITOR);
 
 	probe_c3_errata(c);
@@ -540,7 +545,7 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
         }
     }
 
-    switch ( c->x86 )
+    switch ( c->family )
     {
         static const unsigned short core_factors[] =
             { 26667, 13333, 20000, 16667, 33333, 10000, 40000 };
@@ -553,10 +558,13 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
         if ( !max_ratio )
             return;
 
-        switch ( c->x86_model )
+        switch ( c->vfm )
         {
-        case 0x0e: /* Core */
-        case 0x0f: case 0x16: case 0x17: case 0x1d: /* Core2 */
+        case INTEL_CORE_YONAH:
+        case INTEL_CORE2_MEROM:
+        case INTEL_CORE2_MEROM_L:
+        case INTEL_CORE2_PENRYN:
+        case INTEL_CORE2_DUNNINGTON:
             /*
              * PLATFORM_INFO, while not documented for these, appears to exist
              * in at least some cases, but what it holds doesn't match the
@@ -572,8 +580,13 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
             factor = core_factors[msrval];
             break;
 
-        case 0x1a: case 0x1e: case 0x1f: case 0x2e: /* Nehalem */
-        case 0x25: case 0x2c: case 0x2f: /* Westmere */
+        case INTEL_NEHALEM_EP:
+        case INTEL_NEHALEM:
+        case INTEL_NEHALEM_G:
+        case INTEL_NEHALEM_EX:
+        case INTEL_WESTMERE:
+        case INTEL_WESTMERE_EP:
+        case INTEL_WESTMERE_EX:
             factor = 13333;
             break;
 
@@ -583,7 +596,7 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
         }
         break;
 
-    case 0xf:
+    case 15:
         if ( rdmsr_safe(MSR_IA32_EBC_FREQUENCY_ID, &msrval) )
             return;
         max_ratio = msrval >> 24;
@@ -657,14 +670,17 @@ 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);
-	}
+    if ( ( c->family == 15 && c->model >= 0x03 ) ||
+         ( c->family == 6 && c->model >= 0x0e ) )
+        __set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
+
+    if ( cpu_has(c, X86_FEATURE_ITSC) )
+    {
+        __set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
+        __set_bit(X86_FEATURE_NONSTOP_TSC, c->x86_capability);
+        __set_bit(X86_FEATURE_TSC_RELIABLE, c->x86_capability);
+    }
+
 	if ( opt_arat &&
 	     ( c->cpuid_level >= 0x00000006 ) &&
 	     ( cpuid_eax(0x00000006) & (1u<<2) ) )
diff --git a/xen/arch/x86/include/asm/intel-family.h b/xen/arch/x86/include/asm/intel-family.h
index d8c0bcc406..c71e744731 100644
--- a/xen/arch/x86/include/asm/intel-family.h
+++ b/xen/arch/x86/include/asm/intel-family.h
@@ -179,6 +179,10 @@
 #define INTEL_XEON_PHI_KNL		IFM(6, 0x57) /* Knights Landing */
 #define INTEL_XEON_PHI_KNM		IFM(6, 0x85) /* Knights Mill */
 
+/* Family 15 - NetBurst */
+#define INTEL_P4_WILLAMETTE		IFM(15, 0x01) /* Also Xeon Foster */
+#define INTEL_P4_PRESCOTT		IFM(15, 0x03)
+
 /* Family 5 */
 #define INTEL_FAM5_QUARK_X1000		0x09 /* Quark X1000 SoC */
 #define INTEL_QUARK_X1000		IFM(5, 0x09) /* Quark X1000 SoC */
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Tue Nov 25 23:01:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 23:01:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172211.1497305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vO21p-0002o9-H2; Tue, 25 Nov 2025 23:00:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172211.1497305; Tue, 25 Nov 2025 23:00:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vO21p-0002o2-De; Tue, 25 Nov 2025 23:00:57 +0000
Received: by outflank-mailman (input) for mailman id 1172211;
 Tue, 25 Nov 2025 23:00:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LUk1=6B=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vO21o-0002nw-Q8
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 23:00:56 +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 97de6db6-ca52-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 00:00:53 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by PAVPR03MB9091.eurprd03.prod.outlook.com (2603:10a6:102:326::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.18; Tue, 25 Nov
 2025 23:00:43 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9343.016; Tue, 25 Nov 2025
 23:00:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97de6db6-ca52-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JahMOLuhSfSVRVRt7c+A5aWu1P0TFpVcUFnzcZmrCx4tuS7XS96IFKerLSrrQ+nCYl4GptzYevoGhat0a/J8yiiqwtSJWwV8E1YensTJFHqPU+nf/GCwbXHAy4UHdzM+Xa2ehhaX2pfqQmpVrelUtCWRC3Tr40eJBE+XgzYuIZsXfOYn2jwFW5OJeAoF/rszF3ZD0yfwa4f/ydMguHIJYZlw52ZfxYya0wrgBbYISn3YpX36gohI+dMb+t500G8t0nVWlHbVTznVKajDUgaMC4QhHwv/9WPRetRzPtkkkFJ8Ps3wN7iNNcyrd14bpx2GnjpOqATUODkKARDTH3npOA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GyPsuAiwBo+slcaLeC8oF8/WpOXP7OhiMtsPr0iA3B8=;
 b=OM5/CtIcNMAcorww40Ww4G1gtVGmkNo8BDZ3UlG6dB93slzDc8Bg/HdmVSYPMlXtNlNVfLMCZa2Rg9ra8r8BbWbS06kc4lPPzkzfcKU1f412t8hfsUTHcDc3nW4HrTjJXWJeX3cfG8hcRZ5ci0W7YSpN7sCuhTAEl3ivf+x/zJizaDorpwi2i2QsgjYWQDJyyuOU1MTIN7PeGcOTFlJ4LoEhln1TeT60mmGPPAvYAt+UklBOLWfLSiw2pKsJ1ZH0yOMoMxaMyDy1eTtJ9i5Ybcb3x2f4USc7V2lG3r2/QbDXijKARUMf6RQB/NPRYtCKG/XsCKbPORsQSi0FuzhQqw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GyPsuAiwBo+slcaLeC8oF8/WpOXP7OhiMtsPr0iA3B8=;
 b=e7Tmlmd85AdpEAb4hNT24Hn4VcQh8jdppbMTfoxZu22aFckfElVKAYFZHATHxysuPlX7DF2zLz1jhkKoB88YCuS/Whg59DVtgQZ1+wziyjCuCROA8BFnM4yYgN6kQtpG3qXBUXD64AaeAMlgEWSuYspJzmaT8/CuiZGHnEG3zVMU/w9m9tl9Q05p8YKk5cZyc3CUFRzNbHV0qZPTzY8CSAgElE8cNXX8TOnrt99xEyunp5k7BJASfWkSUbqySGUjJnRpAze1ok5EUiWhYL/1go8WUZ0ylP+G0x2tdTsQF76Edf9RqmaKap9nhKc5CUATsw2gkNpsLuYbU19cuOi3mQ==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Paul Durrant
	<paul@xen.org>
Subject: [XEN][PATCH] x86/hvm: move save/restore under HVM_SAVE_RESTORE config
Thread-Topic: [XEN][PATCH] x86/hvm: move save/restore under HVM_SAVE_RESTORE
 config
Thread-Index: AQHcXl9TZm/es1jFW0qVSZfA8WEetQ==
Date: Tue, 25 Nov 2025 23:00:42 +0000
Message-ID: <20251125230040.3070954-1-grygorii_strashko@epam.com>
In-Reply-To: <20251121105801.1251262-20-Penny.Zheng@amd.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM0PR03MB4594:EE_|PAVPR03MB9091:EE_
x-ms-office365-filtering-correlation-id: 4491a764-2a4d-443c-d8a3-08de2c7675f6
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:
 =?iso-8859-1?Q?HC3HIG9Ai4KpEkwvuGDicU/m3bmY/UAKnmSk1p7jYD3rxEwh6qpz6dwghm?=
 =?iso-8859-1?Q?eROsNQlJ4LkKZcua/91FsLiqsD5MEXdoIC2ssLCPe/x3oNNnsXqHPp8IiH?=
 =?iso-8859-1?Q?IyeBQk/1ZnOXvpRgUplCZkjgxu/SxV6jRw30ZmxV4fwR2iWQZ2QdM+CWsJ?=
 =?iso-8859-1?Q?ksxXPLM3YpOxPLT7cnNVjDpyqqgE3DAl8jgJd6djOtpnIbHtOE4rd/wPtA?=
 =?iso-8859-1?Q?wXT8bA1EOUK+8X7HmJfz7s2Z5k7nI0Ghm7uqjrIyHIO2aJiVPRm3r4ZFUv?=
 =?iso-8859-1?Q?7hPZ4cJMy40hUx7CdkIeh5N6dN8XlB4rP9c2N2cqTXWdYKe2VZHyDcQTQw?=
 =?iso-8859-1?Q?/oy+1n5ywfSBMqV1gswk/02Yncp7QZYTorc/qfJOJMYjn2LFyEbVI9K1cw?=
 =?iso-8859-1?Q?rRQGgdXkk62l4gfnsiGwjxc/pagzGUpeWs5Htsprwh5tN0yozkh+BknaGP?=
 =?iso-8859-1?Q?5paJH4vPbroIdCSgDZ7MW00zkjmm4RdoGec/RgItCY5jxL8xy1JgrMm7/r?=
 =?iso-8859-1?Q?1xqTHDjRh6RNZYqZDcpT1onNPcab2ejiR72sGJEBbaMDGWj7sDBGt1RrIS?=
 =?iso-8859-1?Q?vS61SCZDnRwllFwwWs8EZSVjElZ23DH7meEa8uNwMsIan5UsVigBh0R8iP?=
 =?iso-8859-1?Q?0e0F0LGL4NF+Pb5TjfzU/X8kcVfnqCnOiaKGYbLK2QxljQHz2JEnourW1n?=
 =?iso-8859-1?Q?OS9Qr49xiYGcv+EhRWWZ7CkAqGQdGMG66o1hT6oLUBFTXbR4mE5e2hbH2I?=
 =?iso-8859-1?Q?eXtgpzaOfhTSFOizzZdQndWII4q9MNNclJyhwIVwzr9020fnYZLA8vPEEL?=
 =?iso-8859-1?Q?u7pC2jqMLZd/xRjTbB7QBiw/Q064Tme5v26GfvOjTfBUkRI4fHMdyUD34I?=
 =?iso-8859-1?Q?03LDttFnfqiTNciKaxsbVAAZa4/7trTnQe6n2TgdKu9dXjBviM4Dyqfvt9?=
 =?iso-8859-1?Q?mGX7E5yiQO41CzD9CrZVAAUY7OPYNxAgxbntoitwOtNzw9pYuN1ZILCIks?=
 =?iso-8859-1?Q?02g2RrgH12A/d3E2FINVUkBn3OnR3ld2LAyYT3bn4BevPkzHuWagT/cjlZ?=
 =?iso-8859-1?Q?LJjq3s6EBJs/siUWKkVnQzc5yWzjUK04Ho4xtaQU/guZSVz7b+UeNvtmou?=
 =?iso-8859-1?Q?JyqljIxYcpsg7fSaznB2y0n0Fs8S8wl82GrjHfKjQ8QOgjIYyPsMjitOfB?=
 =?iso-8859-1?Q?upk0jBrIcGVmJRwhXPs09bC5hr12Bv92ZuilOzDqgjVAJRoqQF6amMcuXY?=
 =?iso-8859-1?Q?dfB8PsSIuSYy5MNRmIskmt4NsOJ8cPhOs/5yUloihNn8VuWkxamow+4zER?=
 =?iso-8859-1?Q?3EPh1tgGKrkk9Kl9TyGlXlhoSOLSIviUjXjbtagb5BPBdyL9c2t/KT0xeW?=
 =?iso-8859-1?Q?JKIRBvKNQK4nODNW7yixnRenO9hThS2mycu7BgBrxNwUI+88DGpvzLnK1w?=
 =?iso-8859-1?Q?/GtpPq4Vs3i6X51ns/ni+SxUA0nyaaQae4g0/hLuNuJeSd291evS//jlo8?=
 =?iso-8859-1?Q?WpSvJMMfqoqvv3hyqWFaV/79H0kjv+ZVwdHd7UffsGwQVFfPGORRn37EsF?=
 =?iso-8859-1?Q?0q/hJZsqxvwICNNoAjk8b2Q24fgJ?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.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:
 =?iso-8859-1?Q?UCIwotVHeNRAH08Eb5ajdgsTjcXKhtzxuYYs3h5Gff6l1ZfFalMuV+raIB?=
 =?iso-8859-1?Q?lLuLGkTV0y2+EeF/U4NJWMfkq1DTp8vgWjZzC7GmOPY0AlzeoeRWzk9uye?=
 =?iso-8859-1?Q?68QrhKh7+VXfXp6BVWHjr5WQERYnMMteLxX1QxrrV7O8weNLxnp80b7vxG?=
 =?iso-8859-1?Q?DqG9Vn4vsIEmDb6UfFFpuJzDzg7xPbOqX2Ddg374QU9dtyz7LioMh/5c9k?=
 =?iso-8859-1?Q?n+RAJkeMMm8OtydfXsbzuN81pIONV8tPPIm6pC9hshKdVXcNdTEPq9ce7I?=
 =?iso-8859-1?Q?IoaYEgdwjRdJ3KULoZyAceucc/MlEiwYa+aUEGspAXrE+bemY49cxe2XjP?=
 =?iso-8859-1?Q?ZhunILXwjl5RcqcI+R+YlBwPzZOccqWOn4Iq6s/lGK3LStKiMgPUh1nu8n?=
 =?iso-8859-1?Q?P2nG/auJ7qNvAMWoPKymLsiLx+eHrhUmZwLRnu4LeRPN7ZA4SqUrooltWR?=
 =?iso-8859-1?Q?jJXK4omosLlUC+9cHF7RN0ets9FbGueUOY2G8+IW4abTORZva4eHnNQZtQ?=
 =?iso-8859-1?Q?OJUDjsMP3z0xsbdw8h9XIJxyfJMm0iqWiWaAZfj6l9S8v84Fyl85xf0DvY?=
 =?iso-8859-1?Q?RY5OIiu8gIoZgA3lSrhyIejLMjZ0RmXP858Va4q0QZhSYp7XAqX65M01C6?=
 =?iso-8859-1?Q?RBvh7fFHae6Vl5IOdnz/DbTWVianWks0SsYNui5dR8vP626XA2PiQPy2R5?=
 =?iso-8859-1?Q?vaYJ1XpLrivuvkoeA6PQkKce8KbhH5aPFavYC5gX4CZaiEFZaBB6lYRj58?=
 =?iso-8859-1?Q?90A6yjSykzBgKpA5Jf/HprNGiJeKOn/6USaCSEOObGBRHfEG1ADAYkVBx9?=
 =?iso-8859-1?Q?Px9eD3IFAGjypTDmliY2/xK6ycTxJFPecZPYWews3QUndG7FYjebMcWmY5?=
 =?iso-8859-1?Q?DfK5FkVaZyOCYPF5W4e3yYVwJDQDYC3eDtYgWwktXPhztsYe0QNS8Lsug2?=
 =?iso-8859-1?Q?EaKfps8IebCorglOKgb6W1KjtZ/jPeEiLXZz6mi0MdUCRM0W/MZSSg4/kI?=
 =?iso-8859-1?Q?nafoifqcrSfuJyctWYPygyecFQktS5Ed7dOho1jz+DSh1v8azluMOcZoSI?=
 =?iso-8859-1?Q?Uc3ufEQARWGcbw6OrWb89lczath63q6kR17ErPxdZS6W5gs3WOIUVhY7Bw?=
 =?iso-8859-1?Q?s70Tv1gKr0ZtrYRwO2+rfLLlLsk/r554II2sg9zf0EMMhmb+VHX6+8fnBw?=
 =?iso-8859-1?Q?kdBB+tot246w32DXA/NDaWyQx0IwoH0DnVj50dMcmTIsWFp2zP930z1Q/9?=
 =?iso-8859-1?Q?sbvlBT9Cr0BH8N8gi1QttFqS9mfelD6BB7Tc8iQIsA6nhsYBVX8UsXncD/?=
 =?iso-8859-1?Q?pjKZUykQQR63oaExflCrdZ6QJnKI4FHUWxJZJxCqUDV98J/psyMI3oAGiR?=
 =?iso-8859-1?Q?IK/ExzDDtJ1rWpF6cqfZgkEOdIfSFGIsf9GsQiVCJGBLR9l0tv1kYkRdj6?=
 =?iso-8859-1?Q?gDKAilgFqPwo3dd3NFuE16AvIycbNYujMDbrqu+AapwWGhnJxYuk+9lBAm?=
 =?iso-8859-1?Q?96q9sEje20PecHNFjht77moS233BcsLX6n5ea6jTq/Ae2wcunntwFmvI4g?=
 =?iso-8859-1?Q?zq8C8U+sGyuA7V3CB4EarHN1kXlb3JYmlt3zs9fDVopNVhxGngoLMTDxNa?=
 =?iso-8859-1?Q?rnk3qhZVF5su6IiRk7AfOAUkfXiaYRCApwsI4fAflzcKFVQo6T71G6BA?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4491a764-2a4d-443c-d8a3-08de2c7675f6
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2025 23:00:42.9615
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: TiFgJgIym4GYEQsZ2vp7vTG2EfeF3pN3Ppksc4xN/JCf+QJklChD0YmY3ERV12P/VA3WhY4I+J6K0bEO+eStpq08DDU+FujAiQsOFAeeQIg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9091

From: Grygorii Strashko <grygorii_strashko@epam.com>

Introduce separate HVM_SAVE_RESTORE config for HVM save/restore feature,
which is enabled by default for HVM and depends on MGMT_HYPERCALLS config.

This allows to make MGMT_HYPERCALLS specific changes more granular and, if
required, make HVM save/restore optional, selectable feature.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
I'd like to propose this patch as a replacement of Patch 19 [1]

[1] https://patchwork.kernel.org/project/xen-devel/patch/20251121105801.125=
1262-20-Penny.Zheng@amd.com/

 xen/arch/x86/cpu/mcheck/vmce.c       | 4 ++--
 xen/arch/x86/emul-i8254.c            | 4 +++-
 xen/arch/x86/hvm/Kconfig             | 6 ++++++
 xen/arch/x86/hvm/Makefile            | 2 +-
 xen/arch/x86/hvm/hpet.c              | 3 ++-
 xen/arch/x86/hvm/hvm.c               | 4 ++++
 xen/arch/x86/hvm/irq.c               | 2 ++
 xen/arch/x86/hvm/mtrr.c              | 2 ++
 xen/arch/x86/hvm/pmtimer.c           | 2 ++
 xen/arch/x86/hvm/rtc.c               | 2 ++
 xen/arch/x86/hvm/vioapic.c           | 2 ++
 xen/arch/x86/hvm/viridian/viridian.c | 2 ++
 xen/arch/x86/hvm/vlapic.c            | 3 ++-
 xen/arch/x86/hvm/vpic.c              | 2 ++
 xen/arch/x86/include/asm/hvm/save.h  | 5 ++++-
 15 files changed, 38 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/cpu/mcheck/vmce.c b/xen/arch/x86/cpu/mcheck/vmce.=
c
index 1a7e92506ac8..ba27f6f8bd91 100644
--- a/xen/arch/x86/cpu/mcheck/vmce.c
+++ b/xen/arch/x86/cpu/mcheck/vmce.c
@@ -349,7 +349,7 @@ int vmce_wrmsr(uint32_t msr, uint64_t val)
     return ret;
 }
=20
-#if CONFIG_HVM
+#if defined(CONFIG_HVM_SAVE_RESTORE)
 static int cf_check vmce_save_vcpu_ctxt(struct vcpu *v, hvm_domain_context=
_t *h)
 {
     struct hvm_vmce_vcpu ctxt =3D {
@@ -380,10 +380,10 @@ static int cf_check vmce_load_vcpu_ctxt(struct domain=
 *d, hvm_domain_context_t *
=20
     return err ?: vmce_restore_vcpu(v, &ctxt);
 }
+#endif /* CONFIG_HVM_SAVE_RESTORE */
=20
 HVM_REGISTER_SAVE_RESTORE(VMCE_VCPU, vmce_save_vcpu_ctxt, NULL,
                           vmce_load_vcpu_ctxt, 1, HVMSR_PER_VCPU);
-#endif
=20
 /*
  * for Intel MCE, broadcast vMCE to all vcpus
diff --git a/xen/arch/x86/emul-i8254.c b/xen/arch/x86/emul-i8254.c
index f106ab794c4f..d33723fa32c6 100644
--- a/xen/arch/x86/emul-i8254.c
+++ b/xen/arch/x86/emul-i8254.c
@@ -409,7 +409,9 @@ void pit_stop_channel0_irq(PITState *pit)
     destroy_periodic_time(&pit->pt0);
     spin_unlock(&pit->lock);
 }
+#endif
=20
+#if defined(CONFIG_HVM_SAVE_RESTORE)
 static int cf_check pit_save(struct vcpu *v, hvm_domain_context_t *h)
 {
     struct domain *d =3D v->domain;
@@ -507,9 +509,9 @@ static int cf_check pit_load(struct domain *d, hvm_doma=
in_context_t *h)
=20
     return rc;
 }
+#endif /* CONFIG_HVM_SAVE_RESTORE */
=20
 HVM_REGISTER_SAVE_RESTORE(PIT, pit_save, pit_check, pit_load, 1, HVMSR_PER=
_DOM);
-#endif
=20
 /* The intercept action for PIT DM retval: 0--not handled; 1--handled. */
 static int cf_check handle_pit_io(
diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index 156deab29139..48c2e1e33469 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -93,4 +93,10 @@ config MEM_SHARING
 	depends on INTEL_VMX
 	depends on MGMT_HYPERCALLS
=20
+config HVM_SAVE_RESTORE
+	depends on MGMT_HYPERCALLS
+	def_bool y
+	help
+	  Enables HVM save/load functionality.
+
 endif
diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index f34fb03934c0..f1602cc659ea 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -22,7 +22,7 @@ obj-y +=3D nestedhvm.o
 obj-y +=3D pmtimer.o
 obj-y +=3D quirks.o
 obj-y +=3D rtc.o
-obj-y +=3D save.o
+obj-$(CONFIG_HVM_SAVE_RESTORE) +=3D save.o
 obj-y +=3D stdvga.o
 obj-y +=3D vioapic.o
 obj-y +=3D vlapic.o
diff --git a/xen/arch/x86/hvm/hpet.c b/xen/arch/x86/hvm/hpet.c
index f0e5f877f4a1..7df8abfa348d 100644
--- a/xen/arch/x86/hvm/hpet.c
+++ b/xen/arch/x86/hvm/hpet.c
@@ -570,7 +570,7 @@ static const struct hvm_mmio_ops hpet_mmio_ops =3D {
     .write =3D hpet_write
 };
=20
-
+#if defined(CONFIG_HVM_SAVE_RESTORE)
 static int cf_check hpet_save(struct vcpu *v, hvm_domain_context_t *h)
 {
     const struct domain *d =3D v->domain;
@@ -691,6 +691,7 @@ static int cf_check hpet_load(struct domain *d, hvm_dom=
ain_context_t *h)
=20
     return 0;
 }
+#endif /* CONFIG_HVM_SAVE_RESTORE */
=20
 HVM_REGISTER_SAVE_RESTORE(HPET, hpet_save, NULL, hpet_load, 1, HVMSR_PER_D=
OM);
=20
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index b1e03bbb3bd3..832fca54f3a2 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -796,6 +796,7 @@ void hvm_domain_destroy(struct domain *d)
     destroy_vpci_mmcfg(d);
 }
=20
+#if defined(CONFIG_HVM_SAVE_RESTORE)
 static int cf_check hvm_save_tsc_adjust(struct vcpu *v, hvm_domain_context=
_t *h)
 {
     struct hvm_tsc_adjust ctxt =3D {
@@ -943,6 +944,7 @@ static int cf_check hvm_save_cpu_ctxt(struct vcpu *v, h=
vm_domain_context_t *h)
=20
     return hvm_save_entry(CPU, v->vcpu_id, h, &ctxt);
 }
+#endif /* CONFIG_HVM_SAVE_RESTORE */
=20
 /* Return a string indicating the error, or NULL for valid. */
 const char *hvm_efer_valid(const struct vcpu *v, uint64_t value,
@@ -1020,6 +1022,7 @@ unsigned long hvm_cr4_guest_valid_bits(const struct d=
omain *d)
             0);
 }
=20
+#if defined(CONFIG_HVM_SAVE_RESTORE)
 static int cf_check hvm_load_cpu_ctxt(struct domain *d, hvm_domain_context=
_t *h)
 {
     const struct cpu_policy *p =3D d->arch.cpu_policy;
@@ -1602,6 +1605,7 @@ static int __init cf_check hvm_register_CPU_save_and_=
restore(void)
     return 0;
 }
 __initcall(hvm_register_CPU_save_and_restore);
+#endif /* CONFIG_HVM_SAVE_RESTORE */
=20
 static void cf_check hvm_assert_evtchn_irq_tasklet(void *v)
 {
diff --git a/xen/arch/x86/hvm/irq.c b/xen/arch/x86/hvm/irq.c
index 5f643611130f..af5f2c83577e 100644
--- a/xen/arch/x86/hvm/irq.c
+++ b/xen/arch/x86/hvm/irq.c
@@ -649,6 +649,7 @@ static int __init cf_check dump_irq_info_key_init(void)
 }
 __initcall(dump_irq_info_key_init);
=20
+#if defined(CONFIG_HVM_SAVE_RESTORE)
 static int cf_check irq_save_pci(struct vcpu *v, hvm_domain_context_t *h)
 {
     struct domain *d =3D v->domain;
@@ -799,6 +800,7 @@ static int cf_check irq_load_link(struct domain *d, hvm=
_domain_context_t *h)
=20
     return 0;
 }
+#endif /* CONFIG_HVM_SAVE_RESTORE */
=20
 HVM_REGISTER_SAVE_RESTORE(PCI_IRQ, irq_save_pci, NULL, irq_load_pci,
                           1, HVMSR_PER_DOM);
diff --git a/xen/arch/x86/hvm/mtrr.c b/xen/arch/x86/hvm/mtrr.c
index e0bef8c82dc8..c5e83dd7a602 100644
--- a/xen/arch/x86/hvm/mtrr.c
+++ b/xen/arch/x86/hvm/mtrr.c
@@ -695,6 +695,7 @@ int hvm_set_mem_pinned_cacheattr(struct domain *d, uint=
64_t gfn_start,
     return rc;
 }
=20
+#if defined(CONFIG_HVM_SAVE_RESTORE)
 static int cf_check hvm_save_mtrr_msr(struct vcpu *v, hvm_domain_context_t=
 *h)
 {
     const struct mtrr_state *m =3D &v->arch.hvm.mtrr;
@@ -782,6 +783,7 @@ static int cf_check hvm_load_mtrr_msr(struct domain *d,=
 hvm_domain_context_t *h)
=20
     return 0;
 }
+#endif /* CONFIG_HVM_SAVE_RESTORE */
=20
 HVM_REGISTER_SAVE_RESTORE(MTRR, hvm_save_mtrr_msr, NULL, hvm_load_mtrr_msr=
, 1,
                           HVMSR_PER_VCPU);
diff --git a/xen/arch/x86/hvm/pmtimer.c b/xen/arch/x86/hvm/pmtimer.c
index 87a7a01c9f52..86f85d381a20 100644
--- a/xen/arch/x86/hvm/pmtimer.c
+++ b/xen/arch/x86/hvm/pmtimer.c
@@ -240,6 +240,7 @@ static int cf_check handle_pmt_io(
     return X86EMUL_OKAY;
 }
=20
+#if defined(CONFIG_HVM_SAVE_RESTORE)
 static int cf_check acpi_save(struct vcpu *v, hvm_domain_context_t *h)
 {
     struct domain *d =3D v->domain;
@@ -300,6 +301,7 @@ static int cf_check acpi_load(struct domain *d, hvm_dom=
ain_context_t *h)
    =20
     return 0;
 }
+#endif /* CONFIG_HVM_SAVE_RESTORE */
=20
 HVM_REGISTER_SAVE_RESTORE(PMTIMER, acpi_save, NULL, acpi_load,
                           1, HVMSR_PER_DOM);
diff --git a/xen/arch/x86/hvm/rtc.c b/xen/arch/x86/hvm/rtc.c
index e33a8ec10821..a451cd2e6880 100644
--- a/xen/arch/x86/hvm/rtc.c
+++ b/xen/arch/x86/hvm/rtc.c
@@ -742,6 +742,7 @@ void rtc_migrate_timers(struct vcpu *v)
     }
 }
=20
+#if defined(CONFIG_HVM_SAVE_RESTORE)
 /* Save RTC hardware state */
 static int cf_check rtc_save(struct vcpu *v, hvm_domain_context_t *h)
 {
@@ -797,6 +798,7 @@ static int cf_check rtc_load(struct domain *d, hvm_doma=
in_context_t *h)
=20
     return 0;
 }
+#endif /* CONFIG_HVM_SAVE_RESTORE */
=20
 HVM_REGISTER_SAVE_RESTORE(RTC, rtc_save, NULL, rtc_load, 1, HVMSR_PER_DOM)=
;
=20
diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
index 7c725f9e471f..5fad31074288 100644
--- a/xen/arch/x86/hvm/vioapic.c
+++ b/xen/arch/x86/hvm/vioapic.c
@@ -594,6 +594,7 @@ int vioapic_get_trigger_mode(const struct domain *d, un=
signed int gsi)
     return vioapic->redirtbl[pin].fields.trig_mode;
 }
=20
+#if defined(CONFIG_HVM_SAVE_RESTORE)
 static int cf_check ioapic_save(struct vcpu *v, hvm_domain_context_t *h)
 {
     const struct domain *d =3D v->domain;
@@ -629,6 +630,7 @@ static int cf_check ioapic_load(struct domain *d, hvm_d=
omain_context_t *h)
=20
     return 0;
 }
+#endif /* CONFIG_HVM_SAVE_RESTORE */
=20
 HVM_REGISTER_SAVE_RESTORE(IOAPIC, ioapic_save, NULL, ioapic_load, 1,
                           HVMSR_PER_DOM);
diff --git a/xen/arch/x86/hvm/viridian/viridian.c b/xen/arch/x86/hvm/viridi=
an/viridian.c
index 90e749ceb581..ab2a7078515c 100644
--- a/xen/arch/x86/hvm/viridian/viridian.c
+++ b/xen/arch/x86/hvm/viridian/viridian.c
@@ -1092,6 +1092,7 @@ void viridian_unmap_guest_page(struct viridian_page *=
vp)
     put_page_and_type(page);
 }
=20
+#if defined(CONFIG_HVM_SAVE_RESTORE)
 static int cf_check viridian_save_domain_ctxt(
     struct vcpu *v, hvm_domain_context_t *h)
 {
@@ -1171,6 +1172,7 @@ static int cf_check viridian_load_vcpu_ctxt(
=20
     return 0;
 }
+#endif /* CONFIG_HVM_SAVE_RESTORE */
=20
 HVM_REGISTER_SAVE_RESTORE(VIRIDIAN_VCPU, viridian_save_vcpu_ctxt, NULL,
                           viridian_load_vcpu_ctxt, 1, HVMSR_PER_VCPU);
diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c
index 79697487ba90..ea7d186ff1ea 100644
--- a/xen/arch/x86/hvm/vlapic.c
+++ b/xen/arch/x86/hvm/vlapic.c
@@ -1481,6 +1481,7 @@ void vlapic_reset(struct vlapic *vlapic)
     vlapic_do_init(vlapic);
 }
=20
+#if defined(CONFIG_HVM_SAVE_RESTORE)
 /* rearm the actimer if needed, after a HVM restore */
 static void lapic_rearm(struct vlapic *s)
 {
@@ -1578,7 +1579,6 @@ static void lapic_load_fixup(struct vlapic *vlapic)
                v, vlapic->loaded.id, vlapic->loaded.ldr, good_ldr);
 }
=20
-
 static int lapic_check_common(const struct domain *d, unsigned int vcpuid)
 {
     if ( !has_vlapic(d) )
@@ -1675,6 +1675,7 @@ static int cf_check lapic_load_regs(struct domain *d,=
 hvm_domain_context_t *h)
     lapic_rearm(s);
     return 0;
 }
+#endif /* CONFIG_HVM_SAVE_RESTORE */
=20
 HVM_REGISTER_SAVE_RESTORE(LAPIC, lapic_save_hidden, lapic_check_hidden,
                           lapic_load_hidden, 1, HVMSR_PER_VCPU);
diff --git a/xen/arch/x86/hvm/vpic.c b/xen/arch/x86/hvm/vpic.c
index 30ce367c082d..af49c372f502 100644
--- a/xen/arch/x86/hvm/vpic.c
+++ b/xen/arch/x86/hvm/vpic.c
@@ -402,6 +402,7 @@ static int cf_check vpic_intercept_elcr_io(
     return X86EMUL_OKAY;
 }
=20
+#if defined(CONFIG_HVM_SAVE_RESTORE)
 static int cf_check vpic_save(struct vcpu *v, hvm_domain_context_t *h)
 {
     struct domain *d =3D v->domain;
@@ -475,6 +476,7 @@ static int cf_check vpic_load(struct domain *d, hvm_dom=
ain_context_t *h)
=20
     return 0;
 }
+#endif /* CONFIG_HVM_SAVE_RESTORE */
=20
 HVM_REGISTER_SAVE_RESTORE(PIC, vpic_save, vpic_check, vpic_load, 2,
                           HVMSR_PER_DOM);
diff --git a/xen/arch/x86/include/asm/hvm/save.h b/xen/arch/x86/include/asm=
/hvm/save.h
index ec8de029319d..501a6cfb214a 100644
--- a/xen/arch/x86/include/asm/hvm/save.h
+++ b/xen/arch/x86/include/asm/hvm/save.h
@@ -123,6 +123,7 @@ void hvm_register_savevm(uint16_t typecode,
=20
 /* Syntactic sugar around that function: specify the max number of
  * saves, and this calculates the size of buffer needed */
+#ifdef CONFIG_HVM_SAVE_RESTORE
 #define HVM_REGISTER_SAVE_RESTORE(_x, _save, check, _load, _num, _k)      =
\
 static int __init cf_check __hvm_register_##_x##_save_and_restore(void)   =
\
 {                                                                         =
\
@@ -137,7 +138,9 @@ static int __init cf_check __hvm_register_##_x##_save_a=
nd_restore(void)   \
     return 0;                                                             =
\
 }                                                                         =
\
 __initcall(__hvm_register_##_x##_save_and_restore);
-
+#else
+#define HVM_REGISTER_SAVE_RESTORE(_x, _save, check, _load, _num, _k)
+#endif
=20
 /* Entry points for saving and restoring HVM domain state */
 size_t hvm_save_size(struct domain *d);
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Nov 25 23:02:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 25 Nov 2025 23:02:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172224.1497315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vO23S-0003Mb-0T; Tue, 25 Nov 2025 23:02:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172224.1497315; Tue, 25 Nov 2025 23:02:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vO23R-0003MU-Su; Tue, 25 Nov 2025 23:02:37 +0000
Received: by outflank-mailman (input) for mailman id 1172224;
 Tue, 25 Nov 2025 23: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=LUk1=6B=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vO23Q-0003LK-Hu
 for xen-devel@lists.xenproject.org; Tue, 25 Nov 2025 23:02:36 +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 d4bc61c5-ca52-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 00:02:36 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by PAVPR03MB9091.eurprd03.prod.outlook.com (2603:10a6:102:326::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.18; Tue, 25 Nov
 2025 23:02:33 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9343.016; Tue, 25 Nov 2025
 23:02:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d4bc61c5-ca52-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aXlFj44cUA0mQ+ZajI7yM2aOSLtTmSz1NUpxjDGUkt9eR2k9mcmXRCWHdOBLjxcC2gJ2uBCNAnOV7LF9BDeTrMdAL8+Zv1pBL/d9QsWpwBCojATgODlsk4tHc/+AD0udKSK/G9DdTK4t3g9Ut9NtSz/kHy/GCXyfdYpty+dFJQt+X12bXTIUtCMwKINLLpLb/g4ly57U/M1lDDnY3zRwv/xXsa1L+k00YXir41rXUy+PZJUg7tSUpwZJMxyE5a67YUGMLSHWV1bPfOb5G9qPF5smHUcJYoX0zb/Kys2HmjdXEiutYL78Vndp8kumMXjfmdi22krlROzCiM4xtbgndA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5tKIrGofXLPN6qgL4uafSzn5M401zlwadw+S5GDn4Pg=;
 b=iypFtjRJLPvwIU/5PfLb0XOEsgG/J58TfLf9eXMZRuXfarGxAez6cyMulK+jgNLKTaEu4XHr8IjGI2ZneRz2E3fozlTbYyDXZ3HLES7IhdAWZ76ooKN5zC9wxEirIpzOF1O0R8/0qgsBCqFS0Pp3tt5ufLPwT4sS4Wz1f7wOWyTO9KbalI/4Qpw83Rbp+LzKyw3DlBui1vv1gY43b2PoewRAM4h9UG3kYVSSD+M0viqMELR6zp/iBS7zp81deEjxqaa30/8b3p2Ef75KgNsDSN+//sEvScGGT+AUiydm2t62xlwLff/hJOsTFxoLWHLdz0MYFIcdvjwMCan0JxkVoA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5tKIrGofXLPN6qgL4uafSzn5M401zlwadw+S5GDn4Pg=;
 b=VTnyw+nYAL6tt+Ab0196HQ1RLavq7zX/RH4RW+agzQyLN9qq7rRaIL8K7SBuNvzh38jljTHvgcMq6shT1qjDV9UsrAyhivtxYpWri0SMmQ/RTWnMFQ3HE7cIxKciiisLvOEfZCakeraR6UGlMogcf8y6h3NrYCKimv2/AG27oZjutjDnfu5FUNpajLTWG/4nO+ghPBrjaFEWr5ZkR8FpWeSuKE8gwVDsqGAKty2Dq03tXNxyuKYEcX6dHu4CUZ17Wq8RmFEM7FuJbyTyEwkXXDp/2TG7YunoCXBKYeKLo7Abq7vpY9yl9cdxcMDVoNYDc/D6V7VzJQL1w4DEINayVA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <5050db49-8581-499b-93bb-98c0f084d071@epam.com>
Date: Wed, 26 Nov 2025 01:02:30 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/24] xen/sysctl: replace CONFIG_SYSCTL with
 CONFIG_MGMT_HYPERCALLS
To: Penny Zheng <Penny.Zheng@amd.com>, xen-devel@lists.xenproject.org
Cc: ray.huang@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>, Dario Faggioli <dfaggioli@suse.com>,
 Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Alistair Francis <alistair.francis@wdc.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-4-Penny.Zheng@amd.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20251121105801.1251262-4-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0016.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::12) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|PAVPR03MB9091:EE_
X-MS-Office365-Filtering-Correlation-Id: 0051ff7c-b3eb-4146-90dc-08de2c76b7a2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|7416014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZW1IYXBTM3ppNFAvWjhRVUhXMHdMKzZ4RzdIYzlpMzNEYzFscnFFaFRiR0pJ?=
 =?utf-8?B?VjNyV1JYWUpSVVZwazMydGhuZVVRQWxQWWVoZkJxNlhiT2JzbWhWSFQvUFYv?=
 =?utf-8?B?Zm1yNk5JNENBMmRTL3lTRzhsWmhTMUxHTVh5K1B2VUJjUnhHbUhOVUNVcUMz?=
 =?utf-8?B?ZGw3ZGVXNkh2YzJCNEo1eUhxUDk0WVZSOW1ublFaNDloWXhnK01oOTgwN2Fq?=
 =?utf-8?B?UC8vYUU1U3VuMkhDYVR2YU1XSjZydCtZUSt1cmM0ZHREREVtcDREeU0xenZt?=
 =?utf-8?B?NE1WQWl2UmIwQjkvKzJmZGg0d0pxOGRHMzgrS2ZRZjlmelZzc2ZjeGttSmxK?=
 =?utf-8?B?VE9Zcm5OV1J5dk45MUxzR2g5SW0vaUgwQTVDOXhWa01WQkw2SmRuOUUzREVk?=
 =?utf-8?B?aUZKRVZqY2pIQzF4VGZLUkZxSFlwV0xPTG1NZS9CNGZmWk04VTcvcHJRY0ly?=
 =?utf-8?B?KzVxVmw3dWNhVTVxdi9iSkEzUDUyd1dTVkZQeXhWVmJhWlF1Z0tMT2xwZk5V?=
 =?utf-8?B?OXl3V3p5dDRqdWpyYm9RYjlrNlNEWjE3eWQwazlVdlRiaWFUbmw2dzFBZzQ0?=
 =?utf-8?B?QWFqek9MazY2c1lSVEg2L2VBSU1HZVpvS01xYmNST2Y4T0VzTDVveUtkWDZU?=
 =?utf-8?B?WFIyK2NCanRVdm0rTnBPSERKTy9mbWhkaU5wMkUyTmxRWVFJdkpuWXFOa3dQ?=
 =?utf-8?B?b3lHVHJwVW9TUTRjWmVyT1hUUFFzNnVDNzNNLzJjblI1am0rVW91ZDlXYm0z?=
 =?utf-8?B?R3FZT3ZpWkNaTTV6dE1teHRPUmkvcHlTd2lNdU5JTXJSelFueWpPQzNMVzd6?=
 =?utf-8?B?MnVlZE8yNzh4QTdmb1dXQ3krSUJHRHdaVDFBbHpQZmJEakJ2eGNubVNUUlYy?=
 =?utf-8?B?VGY2YzJuSXpHZWZVdVBrTCt3dkg4b1IzRVh4RWt6R09Kc1pSVXUxZFBqaW5Y?=
 =?utf-8?B?cXRRTWpqWndkWDRnQUFMK3ViSlIySWcrRkVieWc0QllvWGt0alRPa1I1WXJS?=
 =?utf-8?B?bUpyeCtKVVZDTWk2NFIvMFVpZ1BaWFh6ellES3VxNUxyYURjbHUzOVhGNlBE?=
 =?utf-8?B?TWVTSC9Jd2h3bnB1VkV1d0dyUjl2dTgrYW9TYWUwb21CdFZxZ21pV0JVN3l4?=
 =?utf-8?B?dHhMT0RXdFY3VXhTNE1PVERDalJpMHJjY21hZ21FT1I0THg3NDFZVitrY3ZS?=
 =?utf-8?B?clU1TTNIcVhocXpucTJwZldXMTdhazNLL0hpVGlwK0lROVdhNmFEeVhlL3NS?=
 =?utf-8?B?QlZYTkFHNE82K3pDakE5WU9FcWVmNXRLTFZJRGtzY09VSUkxUy9BVklQM3E1?=
 =?utf-8?B?azkzcnR6M1hHRmJPNjNkcnVXWnl6dTc1Ny9rbnNnWVJ5b1djbnhCUjQva29H?=
 =?utf-8?B?TlhyU0FRL3c3ZC84QkNOYlBuU2pqWlZuVFJMOHNja0Zud2FwaWxLSmR2M3Va?=
 =?utf-8?B?dW1YRUdPYyt2SUNyWm9jbVVFSWM3NlNRdXVrbTNwNmV6M2F4bE5scy9GcXVX?=
 =?utf-8?B?b3NPZU1Ybi9MY3dpZTdiT29pQ1hIbWNULzBWTUZoTEV6dEVhR2ZuT2w4VTJn?=
 =?utf-8?B?Sm9wb2dXWTZBNmk1SUFjeHdLVXhydUFoalVaUTdiZFZsRlZoTGFJVTlZRFEy?=
 =?utf-8?B?WitoOWZzN29SUHVVcUVac1pObUxURVdId0hrczY5b2hwMi9XZ3JlZDByczhY?=
 =?utf-8?B?OWZSTFBVYjhMMWNvcDk5YU1RYkgzN3NaS3lUYlhpNEN5dTAwalpub1pRY2Fs?=
 =?utf-8?B?Y2lQQ1pQaXlHZ2RRNWl3eis1dXRjdHpFNW94eDVwMjVlZFhwWVBOVnN3STdO?=
 =?utf-8?B?ay81bmFnVEpEMmUycmxHdVpiNGtscGJ3NXBna0pyQzF4emd5UTNmcTZGbVdZ?=
 =?utf-8?B?bVZYMitpMW8yQ0NwTHNHMDlaZVVKU01NV1ZPRTBwVWlrUlhNRUJEeDMrZzRU?=
 =?utf-8?Q?wneFZBEXLwgmaIEICLLZFdFlGuJHY75a?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U3VxbHJRbEFNMTMvekxFSW5DWlFIbG1MUWd0Y2NjMGV3bS9WOXFvV2ZrSzNs?=
 =?utf-8?B?cllzdGJ6RDNSSXdVQkZUR1NvNkFVT1ltUk43RFpJZTEzMlZoSlJkWVBoeFFp?=
 =?utf-8?B?TThwVFJnZnVReHBGcXVxbFdRbTNtc2FmbWoxbFN4Q29Ec0JoYzMyeVZDNERj?=
 =?utf-8?B?TnlETURrTWk2OGkrMzZBaVJnR3ZpOWE4Y01FSm1yaGRJeGNLQWp6dS9tN3Fx?=
 =?utf-8?B?QWU5L3N0M2xIZFIyeHBSTk9GYXAybEdEdmdpVC8yTVQvWlU2dzJtQkQ5enZG?=
 =?utf-8?B?T2lzVS9CNzNPK3puSFJYQkZSU0RBeEkyc0ZDSzFLMU8rZVVValdzV01VNDZD?=
 =?utf-8?B?WGdmWHNaS1NBeHpjY2RhY29NMWplTFFVMkFrc1lGaU5yTGxsUXZpRDVsZVdR?=
 =?utf-8?B?djNZdElJenY2SGdtZ3VOTmcrYmVFRjFpVnc3ZU5DNXBodVlQMkpSMTdlWVMy?=
 =?utf-8?B?TDNqWU5HdllTOHFoYnNSUXJaYWRVYnEwTVdzSnZHYm1xcUxidUI2OXRLZmJ4?=
 =?utf-8?B?YnVheTlTdlcva3N4eEdsMUNiNWNkVGsvZzJVQWxXb2Uycmh1QWRTNm1GWklr?=
 =?utf-8?B?dWx6b1JKaGJJUUszeVJ5K0F1ZTNxTlp5VFZkb1c2bDUvNWZROXBYTFlqa2gz?=
 =?utf-8?B?VUttSXZobWlPSXk4NnNUY3ZvWVQzejUzWG9YYTZPVitGK0lQR0NxYWRzMlVp?=
 =?utf-8?B?RnFxWkNGcWdCM1FQUFBnTFVQQmtvelRaV3NLdXJ1RnVrTEE2WmcrNDBKeUVr?=
 =?utf-8?B?VW54a1JDcHBQRTlNQ0dVcTZZNGl2M2xKaUoyV2pOWWI2T1MvZzRUN0w1NHRZ?=
 =?utf-8?B?a1lJeWk1cy90eHR2dnlOTDhqSTRaWk5HZFBtNDM2TXBsQk9nSk9yY2oyYk9p?=
 =?utf-8?B?MEttVG1GM2NGcUlKSnZvZVh0MjFhU3BqdGlQRWhWK0c3ZWU2WEJUcHVid0Ju?=
 =?utf-8?B?NFBYMWcveUpGVkg1MmQrVzlUM3BUQ2JpaXRkQ1NKSmQ1cVJiZWl4Ni83OUNG?=
 =?utf-8?B?cWVlOVYyaWdoRjRPUUZydG5CNnB4M1dtWlBDSFVwUUt3bXFPQ25Pcy9GdmxB?=
 =?utf-8?B?RFlKRC8xdzdoSk1FM2QyQ0NNNnhHajNYcU9oK1dOOGMvbmwzdmJQSEZCMWhF?=
 =?utf-8?B?b2dnM3ZkQnFmVnZ1MFI4U2NkMVNleXdMSFFEakRLUDBSM29VMy9IVG13a3dx?=
 =?utf-8?B?aThWUFNDM3JXejJEM0lCTncwanR0YzVlL3Y3ZXdnRUVoVVJzOGp0dFJZbklk?=
 =?utf-8?B?cWpxeE5jVTVZV0hobzNGVFJVOFErVmlhNGFOTVNvczVDUFo4dktQVlNtM21B?=
 =?utf-8?B?SHJGUGd4SWd5RlgzNmNjczdIaEN1MklDQXExc1pQUTlGeUxPN0VUYUw0S2FY?=
 =?utf-8?B?Rk5uN1BWb056c3ZmaDBZQTJVSWxKaUFBTEZTUExOQWxDZzg4aUVXL3ltOExh?=
 =?utf-8?B?RlFCcXVjeUlnT20wMm5ONTVQRlhJL05QNEhacmtEK29qVlNMQVRNazd2M3Uv?=
 =?utf-8?B?K2IySjhqWkNZaGFLOXBiT255ZDRxM0U5R2ZOMjFVNFVCT1RCelJYVDNmMEYz?=
 =?utf-8?B?YUpiWEJGdDN1RjdzeGlnTGl3dHJCR2E2akNHaFlubjlnNDRSR2RzaUcxT1F4?=
 =?utf-8?B?WEdyM0VXSVUyQjhIT0N3azBsRUp6SXIzV1cxQWJMdFBzUFZneDgzTFNxNkhJ?=
 =?utf-8?B?UVJPa0RNY0RUbVJWWllBTmZPVG4ySEJsVm9GUmJyTkp3NW1SMGxrNjNrenFx?=
 =?utf-8?B?aGRFaFptYVRBUmc2YzBlcDlPZ3k2a1pKZVBYR3RRd2xTQW9SOGlFRGdZRXFl?=
 =?utf-8?B?SkhqT3ZlaHNYblQ3RnBlb1JCYllCR0JUZHBObStTcW9qS2NzbnJvOTBQUHIv?=
 =?utf-8?B?TERRbVc1ZzBESUVjU1ZKemJnYzZFMGZ4Z3cxN3dKSk1TOFpvVFZHK2s4NkJ0?=
 =?utf-8?B?R3ZIV2hlUWFhS3Rjb25RWlBKSTNGaWdxL0ZFa0JZQVdRL1paU0ZRYzRoaCtP?=
 =?utf-8?B?ZitFOWJBTy9oUHNYMUROWVZtUUVib2JVWnV3Z1NmN1FYaGhCUk02QmdwalE4?=
 =?utf-8?B?K1FzTjdndDFVM0M4VGc0VlN4cGR1K2lsYnlYTTcxL0lFZ3oyVVk0ZURpZC9T?=
 =?utf-8?B?Rkp5SDZLWjdQK2pwM0JtR09GWXhoaWREeTZ5RFIwbHRoMGUxckpid1RBUVhr?=
 =?utf-8?B?U0E9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0051ff7c-b3eb-4146-90dc-08de2c76b7a2
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2025 23:02:33.2984
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: x4A6fAELGpgQXyCZ6+5qYoOm24RCqK3sIhBozjK2WPWR/XkoU0WA3x3eAxNTWukADpSWDd9jb54piw2Kgh9WCaCPh4+p9mn3loomhhPxVVE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9091

Hi

On 21.11.25 12:57, Penny Zheng wrote:
> Rename all the CONFIG_SYSCTL into CONFIG_MGMT_HYPERCALLS to help provide a
> single option to manage all unnecessary hypercalls, including
> sysctl, domctl, etc, in dom0less system and PV shim mode, which could also
> make it easier to support randconfigs.
> While doing the replacement, we fix some bugs on xsm system:
> - wrap the whole xsm function to avoid bringing unreachable codes when
> MGMT_DOMCTL=n
> - add missing wrapping in include/xsm/dummy.h
> 
> Suggested-by: Stefano Stabellini <sstabellini@kernel.org>
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> Reviewed-by: Juergen Gross <jgross@suse.com>
> Acked-by: Stewart Hildebrand <stewart@stew.dk> #ARINC 653
> Acked-by: Jan Beulich <jbeulich@suse.com>
> Cc: Alistair Francis <alistair.francis@wdc.com>
> ---
> v2 -> v3:
> - wrap the whole xsm function
> - add missing wrapping in include/xsm/dummy.h
> - refine kconfig description
> ---

With below diff..

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 6709c3c95c53..f478adffff9c 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -652,9 +652,8 @@ menu "Supported hypercall interfaces"
         visible if EXPERT
  
  config MGMT_HYPERCALLS
-       bool "Enable privileged hypercalls for system management"
         depends on !PV_SHIM_EXCLUSIVE
-       default y
+       def_bool y
         help
           This option shall only be disabled on some dom0less systems, or
           PV shim on x86, to reduce Xen footprint via managing unnessary

It could be very helpful to consider this patch to be applied first.

- number of tags indicates that it's the way to move forward
- with above diff patch 4 can be dropped
- it is mechanical change, but it's big and constant source of rebase/merge/cherry-pick conflicts
- once applied it will allow, actually, parallel development of this feature as MGMT_HYPERCALLS will
   be defined while build not broken.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 06:16:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 06:16:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172234.1497325 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vO8pS-0001XQ-3U; Wed, 26 Nov 2025 06:16:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172234.1497325; Wed, 26 Nov 2025 06: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 1vO8pR-0001XH-UP; Wed, 26 Nov 2025 06:16:37 +0000
Received: by outflank-mailman (input) for mailman id 1172234;
 Wed, 26 Nov 2025 06:16: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vO8pQ-0001XB-ES
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 06:16:36 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 742b806f-ca8f-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 07:16:33 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-42bb288c1bfso3681853f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 22:16:32 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a15:dd93:9ad4:10e5:cb52?
 (p200300cab70c6a15dd939ad410e5cb52.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a15:dd93:9ad4:10e5:cb52])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42cb7fb8ff3sm40672067f8f.29.2025.11.25.22.16.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 22:16: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: 742b806f-ca8f-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764137792; x=1764742592; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=DjsKStsMT4roJBE4FNWBzAe5ZLozi4WM2e4li+uq12I=;
        b=dbyot/QCEziFvkWbmgGok4LaVygzldeAiDZVXM5KMhslkg+d7QQs6h/IX9jgMlN6FD
         0Tvq8I8r87Zn1jcmwYW7ubzT+RbqipEhb9+qc2vvqbcveNvrqmI8wTbSp/NZramnK4Wz
         JNKKLUtUbiSDHseyavJTZVjte6RUl3SDbA23AEgjcpLeBjRctR3w84bZLMjuRVwSL62n
         xIYXUFWrfyagXwX72KAOXAOOwE1AApp9Y8/wH5JRjdO7FJ5UhkURlEq7qi5ztYuLlYkW
         uhS5lYDrOl8utdwM/ttLQAPhBpZ+B7B+7tpfLi4m1Ka3jyYgcOajyGwm0y6NTrceXSiS
         beFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764137792; x=1764742592;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DjsKStsMT4roJBE4FNWBzAe5ZLozi4WM2e4li+uq12I=;
        b=O9qr8I8XiMGjMel7hDnZba+wgHzOPHP7YgybDK5IDLPtcq0qcRhKJkSn0y9fq7PJUa
         Uo0hGcg9wLtkomaiBRJtrH7zpHavKCHtBkmKg/89cKYue1e2NSRA3pDQRmOnUuQWBQMY
         nOqbYRYK+huYjNIk/t4Z6mf6AzkRaX+kFQNAsio8GRO1FLnT8PeDo8t6mVlRCr7BhSGU
         3wJCgtss1b3k0sxHKXGSUWWZCuUUjplGpkE1gJP/m9dIB00HWqksEL/F5pF+7LiDxu7k
         MjRSKAMUdOfxPs4KysKi+FBZggbtP/js60ODQjlqxYgX45F1pcEu8zyDT3BWZJhufA79
         ptmA==
X-Forwarded-Encrypted: i=1; AJvYcCWltAhlUjhaBWVUG6Q4t3pvr3yfOlOJKuf6Zl5i7I2tS3jTwavJV+eC6Weycn1qjPf7XlgeYYrZQkI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZ0r9Fa5jFvx2kJGzbC9/UxxDISMy8ExBKjfOkPka/GR+aZGzy
	PehIv8c5Jy0pOQJDp7ljX22p/iYFNvAz28RbT6k2BNDBg373Nqa2AKEVCQyOuCvVLw==
X-Gm-Gg: ASbGncu1UPJ6aI7vmx8MldBtIrdAJriDrGzBvOsy91tiMkom2JcuKvpn0fkyb8akvfq
	uLtT4eUav9Vo66xAEfyuoAgPU813OOQFY7U7GRYR6X1yaK20qd/T52NVheSQLXl+zuWCAFk1QQi
	ihhnBmyAO6BBzbS8vpaHTzEUc7UbwsZcqgnynlHhRNN57k6/XXGy3YQI56k8RCMS25XUozz+IxF
	0vo6/OSIRXIL04RmdqqSH7hce5XY0uZPETpsj3pXu1+egVvkdk1T6KOgePTS6JLtfiU31nLZ5sp
	xD/MA3SS0zFg7AdPgeD8m4O5EmRw0yl3J1ck4t3dGEEVGkr1q2wxfsroGGgCtV/ueCEunhqdUBU
	Xd7jnOvqoHcee5RLV4+NKCFDs+domvBkoB5VBTmRxgIAqfP7xwyjulv3ZoXOjGvx9sr/ADwHFuV
	WyAWuSB9pKOTuFJmWtzaqH77AA9QnUMieQVNcmsMJSWQlKnfJK+QD3AjsbYI9HSc+zwaBNUojl2
	MkJ+KESjuHkZR71q93/+FM6Xxir8F1caJ2g7gZ4mDsy8PgO
X-Google-Smtp-Source: AGHT+IGjbyQ1iqr8Y7UMB6REmYMbMiDwucqeY7133+PwmTmz8PT/t0nm5CzJwb5GeLS7qqbRf8quXA==
X-Received: by 2002:a05:6000:1a85:b0:42b:3e0a:64b8 with SMTP id ffacd0b85a97d-42e0f22c54amr5755743f8f.24.1764137792213;
        Tue, 25 Nov 2025 22:16:32 -0800 (PST)
Message-ID: <9a65aa59-a7e0-4a7d-beea-05aa04268ef2@suse.com>
Date: Wed, 26 Nov 2025 07:16:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: Remove x86 prefixed names from cpuinfo for intel.c
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: Andrew Cooper <andrew.cooper@citrix.com>,
 Roger Pau Monne <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251124111942.1325635-1-kevin.lampis@citrix.com>
 <f4741251-0772-4a7a-86ec-951d08b22517@suse.com>
 <BY1PR03MB7996ECF620796C340E0B7537F3D1A@BY1PR03MB7996.namprd03.prod.outlook.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <BY1PR03MB7996ECF620796C340E0B7537F3D1A@BY1PR03MB7996.namprd03.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.11.2025 21:12, Kevin Lampis wrote:
>> Bogus indentation would also want adjusting while touching the line
> 
> All this code is using hard tabs that's why it looks wrong. If I convert only
> this single statement `if` to spaces then I get a `misleading-indentation`
> error so I have to convert the `if` block after it to spaces too.
> I hope that's ok.

Well, the request was to switch to a tab and a few spaces, so similar items
on both lines align with one another. That's Linux'es style afaict, i.e.
what surrounding code there uses.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 06:21:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 06:21:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172244.1497334 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vO8tx-00034h-Hv; Wed, 26 Nov 2025 06:21:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172244.1497334; Wed, 26 Nov 2025 06: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 1vO8tx-00034c-F0; Wed, 26 Nov 2025 06:21:17 +0000
Received: by outflank-mailman (input) for mailman id 1172244;
 Wed, 26 Nov 2025 06:21: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vO8tw-00034P-Aq
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 06:21:16 +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 1a0f31de-ca90-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 07:21:11 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4779cc419b2so59944405e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 22:21:11 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a15:dd93:9ad4:10e5:cb52?
 (p200300cab70c6a15dd939ad410e5cb52.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a15:dd93:9ad4:10e5:cb52])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4790add608bsm25135245e9.5.2025.11.25.22.21.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 22:21: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: 1a0f31de-ca90-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764138070; x=1764742870; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BYfasfMG06ZYWlpgML9VVHJGpVoNXMnxmAtR4qtxtA0=;
        b=RKfHvf89lTUUz3vooVIcmk2DqufHjgdQcUTPOfR1Hgm9D/HnNA0SStU/K6PxoXTyu/
         koTquk87J426jYAliQv3UmJwd46JyB58KVFz8noj34IPLe0ABC4qPOZdgFO8eAA9c3f+
         +tDCQNhGuP4RUeYrtexSNAskyqZ/h4X9EoN7UWsBkzCCk4UY0+Hxf4RnHu0sodiZFYrK
         lzRLCVU7Jh/35i40rw2fxtMOhjaH192mYQPGCh2Rm+EsljOAz2UbEgWLq04ZmkSXHRPS
         PKtbHbqAcBI0xV0QnjO8cn/QtjG/NH8cc2x7PnVn+5TUTxfgIP1Fx5ltLlf6vBUkRywZ
         AzMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764138070; x=1764742870;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BYfasfMG06ZYWlpgML9VVHJGpVoNXMnxmAtR4qtxtA0=;
        b=BUEQnkMUQ7euMzcXifAzjmXgaiU2jXi6tRJ+PUBSv6Sj0R1EkesNGFar+XR0ZxpOmL
         7TLP4bDHr1Ns29Xqrwb+8ht4zTOJpf4ZQWm1yYwRPqfQSDZkTK4ddLXpaKqYnWX/2zaV
         9ieaYPs6Dczaad3ydCU/cefYAuqdX+yxGudssN+saCBRmnPZrhHWp3k2kztmpE6Umn/f
         g2bh+wTjtexQutxBqR8sDYMF5/Fyj8qO0KIt42M+F5n0Qno3dWcOc5MuxwH7wbR2NxNL
         d2hN9NjeVepyPyc/yTn4S5rqzM/p08+qMVhf3xvTd9zMuPhR7jAXyujcN/OTkBuusjmN
         q0yA==
X-Gm-Message-State: AOJu0YwNyz00qh7Y9t7s5n33CMbZym79xJYP/Kk5uqCQfp/p8t2LjdsM
	1UeQzTC4xqUucrA8B0kPG46L7bQDMD338MkNymcAvCge7DDZasFrzI/FRL225P5Q/w==
X-Gm-Gg: ASbGnct/JNndbdkuCrdceu1iw4Ylsu8LWkGMfKm27OPw/sX854TSGPxHf5Jq323HVMM
	os8mcfHaTdl4noZHLSzRzjbgRpcwHhTMMiYme56pYcwhXCLhlFe52YZtEiEvY1jDcD7gG99VzSX
	XYg80i7IMsVWnBKdOcWwsGo7fEwOabVYg5Zidu8wz4LPwHomfDqP4PDgV/o75ORzijGX3jomRwj
	SetHegkRni8HWY6f+8Bdq0Fk8yjQewONZVwtRFuxsMKiMA88RMWe9ZwKogkmUCInA9k8kkDv97P
	x23euzCu1AUyr/Q6Ux2YqFPE84fnLd294RUk4DuKp7eU8vbWLBt4cT6vtSe8nsJ2NyGe/1iIjv9
	a9Qfu77KH5FdBRbTBVgj75u6872sTE9yS5QWRzXOupSJbL7NzDK8R3JPn6G4gWbDsGaCJWWKAFg
	HMp0GT5pUS4YWDi6MDvAWcWhqkMG5Xi50896tLPxoPv+pExnotKTl4wk/uxKq2/0WHlDYvNRwk9
	j9QlOSR2FjmzyFejNj8sNBZDo5NWD6dM1vdDH5h8r5xu0b7juiCbZkG7Uo=
X-Google-Smtp-Source: AGHT+IEHS7CpqY6F7P8bdMTOGHiCLkI0D+HffVu+gYkeyRtMWzpGz7CUikM9R0kJhDB+6aHgWXusCg==
X-Received: by 2002:a05:600c:5491:b0:477:2f7c:314f with SMTP id 5b1f17b1804b1-477c110e391mr171833135e9.10.1764138070280;
        Tue, 25 Nov 2025 22:21:10 -0800 (PST)
Message-ID: <e23aa2e1-078b-477b-9176-28b4babec9e2@suse.com>
Date: Wed, 26 Nov 2025 07:21:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] symbols/x86: don't use symbols-dummy
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: <2d7602ce-3665-4853-85f0-c0201642193f@suse.com>
 <3618c458-d9ec-4cc6-a800-0741ade461a1@suse.com> <aSXpJ3yqSWfNgElC@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: <aSXpJ3yqSWfNgElC@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25.11.2025 18:36, Roger Pau MonnÃ© wrote:
> On Tue, Nov 25, 2025 at 03:14:27PM +0100, Jan Beulich wrote:
>> In particular when linking with lld, which converts hidden symbols to
>> local ones, the ELF symbol table can change in unhelpful ways between the
>> first two linking passes, resulting in the .rodata contributions to change
>> between the 2nd and 3rd pass. That, however, renders our embedded symbol
>> table pretty much unusable; the recently introduced self-test may then
>> also fail. (Another difference between compiling a C file and assembling
>> the generated ones is that - with -fdata-sections in use - the .rodata
>> contributions move between passes 1 and 2, when we'd prefer them not to.)
>>
>> Make tools/symbols capable of producing an "empty" assembly file, such
>> that unwanted differences between passes 1 and 2 go away when then using
>> the corresponding objects in place of common/symbols-dummy.o.
>>
>> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Reported-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> LGTM, not sure whether you want to extend to other arches in this
> same patch, or simply guard the build of symbols-dummy.o for non-x86
> arches.

I think I'd prefer to mirror it to other arch-es, but in separate
patches (so they can go in independently). Then once all are in, ...

>> ---
>> May want mirroring to other arch-es.
>>
>> --- a/xen/arch/x86/Makefile
>> +++ b/xen/arch/x86/Makefile
>> @@ -134,8 +134,10 @@ $(TARGET): $(TARGET)-syms $(efi-y) $(obj
>>  CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI
>>  
>>  $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
>> +	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0.S
>> +	$(MAKE) $(build)=$(@D) $(dot-target).0.o
>>  	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
>> -	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
> 
> It would be good if we could now stop building symbols-dummy.o as part
> of extra-y.  Maybe you could guard it with ifneq ($(CONFIG_X86),y) in
> the Makefile?
> 
> Or otherwise remove this from all arches thus removing
> common/symbols-dummy.c.

... I'd remove symbols-dummy altogether. I don't think there's a need
to transiently disable building of symbols-dummy.o for just some of the
arch-es (like foe x86 right here).

>> --- a/xen/tools/symbols.c
>> +++ b/xen/tools/symbols.c
>> @@ -672,7 +672,10 @@ int main(int argc, char **argv)
>>  				warn_dup = true;
>>  			else if (strcmp(argv[i], "--error-dup") == 0)
>>  				warn_dup = error_dup = true;
>> -			else if (strcmp(argv[i], "--xensyms") == 0)
>> +			else if (strcmp(argv[i], "--empty") == 0) {
>> +				write_src();
>> +				return 0;
> 
> Oh, that was easier than I was expecting for symbols to generate a
> working empty assembly file.

Yeah, I also expected it to be more intrusive. The file isn't exactly,
though - two of the tables (the ones with 256 entries) are emitted
nevertheless. I didn't consider this an issue, though.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 06:24:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 06:24:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172258.1497345 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vO8wg-0003jM-3X; Wed, 26 Nov 2025 06:24:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172258.1497345; Wed, 26 Nov 2025 06:24:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vO8wf-0003jF-W9; Wed, 26 Nov 2025 06:24:05 +0000
Received: by outflank-mailman (input) for mailman id 1172258;
 Wed, 26 Nov 2025 06:24: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=F7tX=6C=invisiblethingslab.com=val@srs-se1.protection.inumbo.net>)
 id 1vO8wf-0003j9-0x
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 06:24:05 +0000
Received: from fhigh-a5-smtp.messagingengine.com
 (fhigh-a5-smtp.messagingengine.com [103.168.172.156])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7f0b1bc3-ca90-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 07:24:01 +0100 (CET)
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfhigh.phl.internal (Postfix) with ESMTP id E11801400266;
 Wed, 26 Nov 2025 01:23:59 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-02.internal (MEProxy); Wed, 26 Nov 2025 01:23:59 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 26 Nov 2025 01:23: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: 7f0b1bc3-ca90-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:date:date:from:from:in-reply-to:message-id
	:mime-version:reply-to:subject:subject:to:to; s=fm3; t=
	1764138239; x=1764224639; bh=HzENRNpZeVZyP1ozp+W25qbg8+VXU0nDKXi
	9w3bcSzY=; b=dvP9Rd++NONj1z5Qq1Xsj2zM7Sjef4qj4M88PXSlTgG/ZUi110C
	n0p+gjFhoMtnxlyAucRSSG/fg/0YvWqbc+cOQPwkSJPde2jmVTxfXC08h+Kkcyas
	UPBhD4p7HVt/PwFxN9lRDuUUKGgaqLRIF+LukGUpbopKIoW4qqwujPHue0R2yLQo
	ZVL0yDf1fneWtKrFwvo9YZWY/DZvbDEU2oSxduqJ5jp82cudKabB5pyG7Q53o4zS
	LJiPeqARK6de/iKNr93c1cV2MIjtOHPuRjySEvsG/bFfv3La4krjhogx99wP1cj0
	BlTNMgNbkdXO73CG4BCzkZsSbgtx9qsijNA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	:content-type:date:date:feedback-id:feedback-id:from:from
	:in-reply-to:message-id:mime-version:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=
	1764138239; x=1764224639; bh=HzENRNpZeVZyP1ozp+W25qbg8+VXU0nDKXi
	9w3bcSzY=; b=LnRbYT805AgH5LORe4wEh9m84Q6KUUCm5GdytFuwbQF+dHNqLeD
	X8jvPf2QNAKi0xCB0fMQ/pgbqAd5TZINy0ZbfRKX0pQ0dHYhYw8ui6ngQ5J5Zqt0
	/IhC5ECTtCINwjUnTh1lth/hKTJIEM0IZbZAa76CItTFOS7ettdO93hCZG+qPBW6
	hM8X5rIb2HtfYJFFq8XSfItde2YXi46IQRtgvuTbDo9EeZdf2tjNXkPxEXi04L04
	PPnELqdgVBTBktshcS5hDErc5YqSOiKTGtBKrhA4caJ2HcINN/zbjyYXQ7bqnnXH
	Rt5QfTp83LFCrcdhOVxMVFLimOlNqvYeRtw==
X-ME-Sender: <xms:_5wmaTIaFad4Gx-qCf-sAkEXh29RDgkebZi4YV1pQBAmHi0zAUgRDg>
    <xme:_5wmaQeDin-InGSH8q6nb_0Y3GtTcngubh3xT-rXgQbdTsLkSTgXCUFjRZyewkWy8
    IqwIuTVCSzJf9ASsTtz9Z1CW-6wmhDTjwyhrQ44FfnCWBNZ3Q>
X-ME-Received: <xmr:_5wmaS_jmwL5Ej36JvaCTxWWtBC_JyBUrmabV_oud2IKCijbPUwn6uk9RmsnmubDwMmotyLfopzrB1DaIVKmBm72TSZSnKx5-vc2rFZLqWNXBQh14L9JwQEWRBA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvgeefiedvucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhephffvvefufffkofgggfestdekredtredttdenucfhrhhomhepgggrlhcurfgrtghk
    vghtthcuoehvrghlsehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecugg
    ftrfgrthhtvghrnheptdelgfefhedtvddtvdekheejveehkefhheevvedvjeevjeffhfej
    geevhffghffgnecuffhomhgrihhnpehkvghrnhgvlhdrohhrghenucevlhhushhtvghruf
    hiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehvrghlsehinhhvihhsihgslhgv
    thhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepiedpmhhouggvpehsmhhtph
    houhhtpdhrtghpthhtohepjhhgrhhoshhssehsuhhsvgdrtghomhdprhgtphhtthhopehs
    shhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrghdprhgtphhtthhopeholhgvkhhsrg
    hnughrpghthihshhgthhgvnhhkohesvghprghmrdgtohhmpdhrtghpthhtohepvhgrlhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhrtghpthhtohepgigvnhdqug
    gvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoheplhhi
    nhhugidqkhgvrhhnvghlsehvghgvrhdrkhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:_5wmadoTAOvf3b4tNPV26u2iVrzYY5GXIh5Vl2U992r7ORk6AJ0WjA>
    <xmx:_5wmaXDG3odTXJsDq4V_f-O2k0xNbiufC7GPyeFkwIFSHIpkJfMNOQ>
    <xmx:_5wmafwhMQ4N-BoafpOEPk6HjmGcEPGPEtWbwIV7mZRFuqIvMYAZDA>
    <xmx:_5wmaU28B_c3XsKUG_kLRnaaePvWNSzJ-3uBNG9J3EbPpL27BXYquQ>
    <xmx:_5wmaaMAyy_pmpvOMfNC8Gu0sawsb5UYoHiF1y7Od0sEldfvP1wAYX3C>
Feedback-ID: i001e48d0:Fastmail
From: Val Packett <val@invisiblethingslab.com>
To: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: Val Packett <val@invisiblethingslab.com>,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org
Subject: [RFC PATCH v2] xen: privcmd: fix ioeventfd crash under PV domain
Date: Wed, 26 Nov 2025 02:54:57 -0300
Message-ID: <20251126062124.117425-1-val@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Starting a virtio backend in a PV domain would panic the kernel in
alloc_ioreq, trying to dereference vma->vm_private_data as a pages
pointer when in reality it stayed as PRIV_VMA_LOCKED.

Avoid crashing by handling the PRIV_VMA_LOCKED case in alloc_ioreq.
PV support requires mapping the virtio ioreq page explicitly into
the kernel's page tables, so do it on-demand when PRIV_VMA_LOCKED
is seen.

Signed-off-by: Val Packett <val@invisiblethingslab.com>
---
Changes from RFC v1[1]:
* An actually working patch now, not just a request for help :)
  All I needed to know was that PV actually doesn't emulate a common
  physical address space *at all*, the pfn mapped by xen_remap_domain_mfn_array
  was *only* available in the userspace process and the *only* way to have
  kernel access to the same memory was to perfore the same call but for the
  kernel's mm.
* Everything happens lazily / on-demand, inside of the ioeventfd code,
  addressing concerns about extra work performed for non-ioeventfd usage
  from the review. (kmalloc specifically is gone entirely..)

I'm leaving this as RFC mostly because of the "fake" vm_area_struct that's used
as a workaround for xen_remap_domain_mfn_array (or rather, its underlying
xen_remap_pfn) accepting a vm_area_struct only to take its vm_mm (and also check
flags with a BUG assertion). It was written for userspace processes since that
was the only use case anyone could ever imagine.. until ioeventfd came along.

So it would probably be better to change xen_remap_pfn to take the mm? Maybe?
I wanted to ask for advice first before trying to refactor other code.

Thanks,
~val

[1]: https://lore.kernel.org/all/20251015195713.6500-1-val@invisiblethingslab.com/
---
 drivers/xen/privcmd.c | 34 ++++++++++++++++++++++++++++++++--
 1 file changed, 32 insertions(+), 2 deletions(-)

diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
index f52a457b302d..a3ad10f149ec 100644
--- a/drivers/xen/privcmd.c
+++ b/drivers/xen/privcmd.c
@@ -818,6 +818,8 @@ static long privcmd_ioctl_mmap_resource(struct file *file,
 			DOMID_SELF : kdata.dom;
 		int num, *errs = (int *)pfns;
 
+		vma->vm_pgoff = pfns[0]; /* store the acquired pfn for ioeventfd access */
+
 		BUILD_BUG_ON(sizeof(*errs) > sizeof(*pfns));
 		num = xen_remap_domain_mfn_array(vma,
 						 kdata.addr & PAGE_MASK,
@@ -1248,10 +1250,38 @@ struct privcmd_kernel_ioreq *alloc_ioreq(struct privcmd_ioeventfd *ioeventfd)
 		goto error_kfree;
 	}
 
-	pages = vma->vm_private_data;
-	kioreq->ioreq = (struct ioreq *)(page_to_virt(pages[0]));
 	mmap_write_unlock(mm);
 
+	/* In a PV domain, we must manually map the pages into the kernel */
+	if (vma->vm_private_data == PRIV_VMA_LOCKED) {
+		/* This should never ever happen outside of PV */
+		if (WARN_ON_ONCE(!xen_pv_domain())) {
+			ret = -EINVAL;
+			goto error_kfree;
+		}
+
+		/* xen_remap_domain_mfn_array only really needs the mm */
+		struct vm_area_struct kern_vma = {
+			.vm_flags = VM_PFNMAP | VM_IO,
+			.vm_mm = &init_mm,
+		};
+		xen_pfn_t pfn = vma->vm_pgoff;
+		int num, err;
+
+		/* Don't provide NULL as the errors array as that results in pfn increment */
+		num = xen_remap_domain_mfn_array(&kern_vma, (unsigned long)pfn_to_kaddr(pfn),
+						&pfn, 1, &err, PAGE_KERNEL, ioeventfd->dom);
+		if (num < 0) {
+			ret = num;
+			goto error_kfree;
+		}
+
+		kioreq->ioreq = (struct ioreq *)(pfn_to_kaddr(pfn));
+	} else {
+		pages = vma->vm_private_data;
+		kioreq->ioreq = (struct ioreq *)(page_to_virt(pages[0]));
+	}
+
 	ports = memdup_array_user(u64_to_user_ptr(ioeventfd->ports),
 				  kioreq->vcpus, sizeof(*ports));
 	if (IS_ERR(ports)) {
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 06:24:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 06:24:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172267.1497355 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vO8xO-0004Cn-AY; Wed, 26 Nov 2025 06:24:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172267.1497355; Wed, 26 Nov 2025 06: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 1vO8xO-0004Ce-83; Wed, 26 Nov 2025 06:24:50 +0000
Received: by outflank-mailman (input) for mailman id 1172267;
 Wed, 26 Nov 2025 06:24:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1JSh=6C=microchip.com=Ludovic.Desroches@srs-se1.protection.inumbo.net>)
 id 1vO8xM-0003j9-OI
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 06:24:48 +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 97cf4362-ca90-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 07:24:43 +0100 (CET)
Received: from IA0PR11MB7257.namprd11.prod.outlook.com (2603:10b6:208:43e::21)
 by DM4PR11MB7207.namprd11.prod.outlook.com (2603:10b6:8:111::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.11; Wed, 26 Nov
 2025 06:24:38 +0000
Received: from IA0PR11MB7257.namprd11.prod.outlook.com
 ([fe80::a3f:c748:c7a6:d2e3]) by IA0PR11MB7257.namprd11.prod.outlook.com
 ([fe80::a3f:c748:c7a6:d2e3%5]) with mapi id 15.20.9343.016; Wed, 26 Nov 2025
 06: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: 97cf4362-ca90-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nlG1ASmjfvGxjG1gJ5mI/jHE63FysfHXO8D2KLXysAaPTJQ+FzniAOAH0Z86gajJFuJA6EyfL9S8TNNAVc8fy09OzvNcGENVAlaYC/4Lw/ONrFPsgByuM7wCH5lXkJAiFPSFKGBP0xpqh8dHygZxTxsnOrzA22MMlaFVhCk0mA/nKfAY1ragxa0Wm5Xvo5WMXqTkVS52OaC30L5jke2wlAVt44rXnK06UeWv9tVsgmCIBZIjq9rzkTvVo35dbg4K068K+pkHBlmd93mq6QuZzr3U0CrFgGE5D8seXtlipFXy4RD+QMp16siUSG6Gt80Vf7CLC1BUghhzlUaC0jUfWQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XHDGgDNYgE1/seMLZfEy3qZPl+EvOli7IWibvVDjYfQ=;
 b=uhIMW8y4L40x47apxB/adNZadwM4/YITjOTVXdiy3dgaKhB7iA5O+mh4+wm0y+his+/jxJhFUZaW35nlRLG+yHqg0E6YQDggSHkQx2pr498u6Tvq1RtVPujku0BmyrCs0I7WPbRWtOVkZ9C/qw9TPy5UvKvV/LGWiAs4Dp6Z0/s3+M1WtqM/Wy7D5kSRToCXtQ4vHYCen0nMX6jRCuveeCkTQGI6P36Ni86RSv78kY1S0WGPZ3UjYUkXtBNs9RwhdhYRBjZv3PdeLhBgbIlb0v7R9P2O/B8hR2sU2z8uVM9A4ZL5dBF20sOW0KeotJAv6Jm8kJdi9eoA07+92CH7pw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=microchip.com; dmarc=pass action=none
 header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchip.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XHDGgDNYgE1/seMLZfEy3qZPl+EvOli7IWibvVDjYfQ=;
 b=QudScayE9q2kkscbUIg80rDj89JJli2LhtJlSMrj3HZbdjOfjlmhwxzTGSJLWol6QK5J/YzLRUCF7Y7cldWbwSgdS4rPibg+/WWw5k7MTv7w5rQOLxy38y3lbysbISfnf8hhYFUCPQgRKrZPmCc+vBiqRWaE6ofix+GgkPpRoOsHrxpyYHEN4Uf2YJargcbR7qWQ3YnbNCEi/aZBTbE4ik/AlZTkMG1aBjBwrp0iPGbo+etZX1NMyAe+AZNBITPaXSkjf1JXOW/AYN2StSdzRiYF3097uiJ4o6GxTVQ5KrPlku2zd6TVhzlOytL3SJqxRlTYFI2S64uyx/A3RPJ4zg==
From: <Ludovic.Desroches@microchip.com>
To: <tzimmermann@suse.de>, <simona@ffwll.ch>, <airlied@gmail.com>,
	<mripard@kernel.org>, <maarten.lankhorst@linux.intel.com>,
	<geert@linux-m68k.org>, <tomi.valkeinen@ideasonboard.com>
CC: <dri-devel@lists.freedesktop.org>, <linux-mediatek@lists.infradead.org>,
	<freedreno@lists.freedesktop.org>, <linux-arm-msm@vger.kernel.org>,
	<imx@lists.linux.dev>, <linux-samsung-soc@vger.kernel.org>,
	<nouveau@lists.freedesktop.org>, <virtualization@lists.linux.dev>,
	<spice-devel@lists.freedesktop.org>, <linux-renesas-soc@vger.kernel.org>,
	<linux-rockchip@lists.infradead.org>, <linux-tegra@vger.kernel.org>,
	<intel-xe@lists.freedesktop.org>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v6 03/25] drm/gem-dma: Compute dumb-buffer sizes with
 drm_mode_size_dumb()
Thread-Topic: [PATCH v6 03/25] drm/gem-dma: Compute dumb-buffer sizes with
 drm_mode_size_dumb()
Thread-Index: AQHcEnS8fucA3LjqjkuGZw8r9BxHgrUEDdaAgAAGpQCAAQFLgA==
Date: Wed, 26 Nov 2025 06:24:38 +0000
Message-ID: <2fbe0d43-67c5-4816-aff0-c23ac1507ec5@microchip.com>
References: <20250821081918.79786-1-tzimmermann@suse.de>
 <20250821081918.79786-4-tzimmermann@suse.de>
 <52600bf4-2c1c-49a6-82c5-b31818141a43@microchip.com>
 <a11c195d-197c-45a4-962a-e2336c7360c2@suse.de>
In-Reply-To: <a11c195d-197c-45a4-962a-e2336c7360c2@suse.de>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Mozilla Thunderbird
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=microchip.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: IA0PR11MB7257:EE_|DM4PR11MB7207:EE_
x-ms-office365-filtering-correlation-id: ea781b90-eedd-40ee-e1c3-08de2cb479ce
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|366016|7416014|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?aXYwVmRnaHYrQklnTm94L0JCRGF0YnJSOWNDZ29Zb2dTMURqQWFJQ1F3MVVt?=
 =?utf-8?B?by8rZ1N4T0d6NG5PaWlhb3Brb0huYUVGemtRNU91TkUxdjU0WGp2TUMvd2FY?=
 =?utf-8?B?SmM1ZWdqTWFKSnhGM0ZLbkliakRBc3dFMTBxa3M3Yzg5NFlUc1kzeUQxd211?=
 =?utf-8?B?RHgzVlpLckF1VlJacStIMHNWbUFQZ09aYWJGYVJwbVZoWUppUmc5cE91U21s?=
 =?utf-8?B?M2VPWGs1OFRvR2VkSDAzek9jelVlVWhxWVMvOFlpdlFPRm1Lc09ETFJUbXN2?=
 =?utf-8?B?b3dyQmEyWDVKdDgrVGVjQi8wSEwza1NGQ2hkSmJVSzZrK2lzTVV2U0wzVWt6?=
 =?utf-8?B?TThtWGhuWTFxbnRYYlFpYWx2Q3Y1ZEpmYmg1YWpkVk84Y2ZRVFlkWVNsNURD?=
 =?utf-8?B?VHlLNldwSEZLakpIaTVJeWNiK0RKRVV1a3VzQStYdEV3cDl2eUl3WTdxbmhC?=
 =?utf-8?B?anRjUVp0Rlc5azd6VEpIVlJvNlY0K05GbUl1d3YvSkFFSlZud3RMTDZKRUc4?=
 =?utf-8?B?ZTRlL3R6MXl1U1ZFT2tlajRxSGZ1VS80ekc0T3d3TTdSOGtVc0ZLanIybThI?=
 =?utf-8?B?M0lLK3lRaDZ4bHU4NW1Ya3RNVHRQQTR0NVF6Y2ZNb3U3TnBXUy9ydnYwejIy?=
 =?utf-8?B?dnhxV3o4cVJIU085ZThjSkJmMGRYcDdCUmgzWnVWeERRcW9BVzR2d3JiTVdy?=
 =?utf-8?B?eERydm9MbVFtYmNDV1ZicGZ0ZUtvTldsbHYxbnhnRGF1MjkwTkxBUWhOd3Np?=
 =?utf-8?B?MWx5L1RZWUNDU1gvcnROcXFlSXIrVFg0OGJEc3F6TW9MYjdoQzRRWmJpbmJ1?=
 =?utf-8?B?czV0YzVMUXk2VkdjcERjRktQZlYxV1VnNmdwSXF0MTR3UW9UeGFOSG0veko2?=
 =?utf-8?B?WXFMYkVrQitlL0srQ2tBakRMMU5qNGpXWUo2VGVmQ2l4TWo5S0hEMVM0TUUy?=
 =?utf-8?B?c1ZnZUhOQlpKZEtBR2FIWExkVmVTOEpMQVE4TTRUSXhnMDlpUk5DQW1HNExV?=
 =?utf-8?B?SjNaV2l4RllEdktBd2E4OWwwY0ROOHVkZHhMOHkzODE0dllid2k5WnpGcWti?=
 =?utf-8?B?OWswcStwSGc4ZWtKTnJ2SlcvVDFvY0NCVmFKL3d3TUJndVpSNDI1bzgxTFk0?=
 =?utf-8?B?VTV5UVgvdVk0cWs1L0lEY1NTbDE1ajFPUll1bXdCUjRzVkJoLy92eXJMUG11?=
 =?utf-8?B?cDE5OXNBbHo1WlU2S0lpdUVsTEg0bEhic09CSS80T0RmakxNbHV0eFpWL1Bu?=
 =?utf-8?B?ZEF3YVRsL2lKZVlwS0NXTGJheWVCbTB1YmJQaEE5UTZ1bE1qMXJmdVJlaTJ5?=
 =?utf-8?B?V3U0UW1uc2FrNFlMeG9IdmhsY2J1RUpMamNGa2daODZGeEh1RDB1aDZReTYx?=
 =?utf-8?B?M3FIdFhQVTdtQUI3aGk2UGRvR0ZqN1U1K1BDYy9kU1N3NjVmdWVDNkVmODNL?=
 =?utf-8?B?THltRVVaMjY4VWNmakdsNW5xRUJEbENiZldlUlB1LzNGbDl4TWxLQ1ovQko1?=
 =?utf-8?B?QkQvMnVEcmU1QWYvVTFmKzRMTktlUmluYnVodnFUSWlsVzZUaDQyZnNuUFZU?=
 =?utf-8?B?NWpRN2ZadkFaRTdaWFVUREhxVFFXaWNUZzNtMnMzMmYyYWhSZk54WUViSUFn?=
 =?utf-8?B?bkcvcHhqQlNYNkJvV3lGYjR1bGorMmJyR1hNcGZoOW81SlhkSXRDdjcySklU?=
 =?utf-8?B?UzJxekNhemRGU2ptbjZJdlM2M3pGeVhUSVRRQi9HQWttNC9tQTlOOERJMUNs?=
 =?utf-8?B?T2dXS0kza2ZlZHJ1OUZRb0E2MVhoUG82aG1VV3JsaXArZ0NMcHBkd0NnRmIz?=
 =?utf-8?B?YVlZcVhKYU42YVRoVzloYkVJUTRORElGemJMdVpRQndoREQybzd3WG81MFFM?=
 =?utf-8?B?b2ttSzdMekVXdGQ3WkNaZkNZMmNsN25FaDNGOWVCRzlGbWRvR1o4MGRjVlFQ?=
 =?utf-8?B?dkZIclVmcWxWWnJNWklIVHMzRUdTMTFjbzhFNjM3NWplR1VVL1VzcG0xRGpG?=
 =?utf-8?B?UWQ0NlRnVXJUMWtMelVUY0hiOFdSRDZiVzlvMGJZVFRCNGxOMXRvOEV0UGxh?=
 =?utf-8?Q?Z56loj?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR11MB7257.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7416014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VGdEMENBdEZmTm9KQ2JhY3IzbnY0QnZKdFZ4Wmp2K0haV0tJMTV2aU5OaDky?=
 =?utf-8?B?Um9HaTc1WEtqc0FjSkExUU1jUnU1VEw1SUZtQkhvVmhxNXdkZDB2c2NkVUU3?=
 =?utf-8?B?OEszcGYyTU9iYWNLWVVLZ0haS3BHSmNuWDFhMm1yS1lSUTlUb1JFQjlxYnZu?=
 =?utf-8?B?ZGNHZkNqbExtdjRpNDc3Z3NYdlBIMzg5by9RMFhCRnRxQmhiNm9sbXBCeWoy?=
 =?utf-8?B?VjdPVExZOHdZa0M5RUJYdHh0dUE1UDhSK3k4alRiUnVGVlA2d3Fza1N2azlm?=
 =?utf-8?B?c3FaNi9tWHora3pzdDg3ekdwVzlZdWdOZ0JjRklFMXZ1dXh0YlBXQ3h6dnpG?=
 =?utf-8?B?MGpjL2dRdHE5R1JLQXcvZFlvUEQ3clh0dVVyRWNmdjFlQ0lHNGw0YXNIRFBY?=
 =?utf-8?B?VTEyVGEwZTlIUmtmZmpZaDA1QTdxd0t4ZG5Jc3dzNWdjZ3JOKzBsU0M5RnFr?=
 =?utf-8?B?MFFTQ2tVODBSaDdTZkFaUU82dlg3ckhSWG5ib0puWkZtT0U1ZG1KQkxCVFh3?=
 =?utf-8?B?dGRZM05JNENqNmtUNFJIV2xxVTVoYkgvZk1IdnRyYUlaYkRnSXp0MVV0clpj?=
 =?utf-8?B?bloxOExpa0pPejVQMDdPYjBBS2g3L2NTeWFMa2JRazM5YjFjSS91S3FDSXJQ?=
 =?utf-8?B?bk55VVdxYjlGdVZFcnUxdktHQ0pFaVdmTytDVEdhRGJjSXE5T29ZSU92dFFn?=
 =?utf-8?B?SGFGYUpic3NMb1RUazN5NUNEQ2FqcnBoRWN6bm9EZzYyUk1rSE9uamh6eWdr?=
 =?utf-8?B?YlJvNUszMkVpUHAzRWhhVXJ5OWllWWtWbldnZ3M1YURiSzNOU05ZVHlST0NC?=
 =?utf-8?B?Ri9Lck9hZEhvcTNkL1NkNTBTbGo2emhEQ2Q5RExZVzdSdVVRaTlBWG1DenVJ?=
 =?utf-8?B?K2s3R3JnT21NNDdHamN6dTNycUk1T0NJZkdYU28xekpMQ2x5T05VakhUSFZw?=
 =?utf-8?B?WmpIeE1kVkQxZ0JlMWwrbVI0SGh6STc0VUphMURzaEFqc1JLcnpHT1dqM1dB?=
 =?utf-8?B?RXYwLzFkMGVqdXpydTNTZnZDYVk5L1VvUlBZdlRCeU9wR3B1S2hRSGhzeHVz?=
 =?utf-8?B?bjAyRjV3b255YXZkRnlnZUFiSjZhNng2REdxWDllbG9RRS9FM0F5S2c0WjJn?=
 =?utf-8?B?cWczbTV3MmhpOFVZU29vSHFaNmpiZm9EazI0SWdjRHhqamJUQ2puUkNCSFRY?=
 =?utf-8?B?MGZmOVp6dS85V24zRFlUdkRGYzVtckFFemhOU1NjVDR1Y3RqeHlZUEdJMXpF?=
 =?utf-8?B?UW1ZRHF2R2kvNVFCU3Rpa2NzeE12SHExMFZtU1hTMmpicHhyakFjUU9hV1Nn?=
 =?utf-8?B?OS9WbUFkdEg5QndPcklkYUl5bCtuOXk3WDVzei96RUI0QjVWMUN6ajAvY1lq?=
 =?utf-8?B?MG5tVHV4ZWVpNEZrKzdtcEpCWUdUOWk4c0NhaitaSVhyNjdwSzltY3dCVExw?=
 =?utf-8?B?SFlNYU9PaWMwMHc1QndwaUkwM0xmZytRY1JmNHdld0EwOUNnMjdJc21EeFA2?=
 =?utf-8?B?cHhCQkVTdUQ2cm5zUnRoNHovcmgxbEhkSU9VelZWRCt5K3ljdlhUVGJydjVY?=
 =?utf-8?B?NUVCZWoyT1RwOW5VNkhNbVVoMUZXMWQvTHhLTHUyN3ltQnBJUDFBTlBKRG1B?=
 =?utf-8?B?TkxJOFpTMUpueW5oN3Q1M0ZCYlJJa2E1QlAzVThaQzJOb0xLMDc0ZUlIQ3JI?=
 =?utf-8?B?YkxycVc2YWhoTG1MREIxZ255ZWx4UzIrWWduUGF6M21ETGUvTjFnalhROEc4?=
 =?utf-8?B?QWNjdzFLb01LeVhpdWJ6Y2dhWXNSM0FRaUg2SG5DdGNUejg1NEhDS204OVJL?=
 =?utf-8?B?d0tKR0c0a21aMVlZcExlTDlGLy9VSkwvcHZkRWVHQyt2SWpvVjFIVjRYMVpY?=
 =?utf-8?B?bnprZStCZExNZDBnSk04VzEzUVVqN2c2UVZLZlp6R0laLzNtUE5xcVMzei94?=
 =?utf-8?B?KzZSMjVKZVVodkl3WG1BSktjbFEyTlFmWWg3am5tWDFnUVNBeEJ6clUvSmNW?=
 =?utf-8?B?WEF1MmdLdzhQM0JHNThMQXNUOTBaeTVKYVJaQlpiSTVaZkRVSm1YcW1zaklj?=
 =?utf-8?B?cnBuelVLdVh6bDE3WTlldmRWNW1sUWMxRXM3NGdTR3UvcUFMMG83M25rbkl6?=
 =?utf-8?B?eDczamE5N0ZscXp2bFVaMnBVRldDOUxQL0VscmhyMW5KU3BlSmhwSmVVYmgy?=
 =?utf-8?B?U0E9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <EDF1B0E5AFC87D4081CE30A7DFECC81A@namprd11.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: microchip.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: IA0PR11MB7257.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ea781b90-eedd-40ee-e1c3-08de2cb479ce
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Nov 2025 06:24:38.2101
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 28pnl6PDYZubyFlYc+YWMdCWowN0qfPZleuZzT55U+68krWzh+ucmR3qrbLIP/p7huRshESybBO3myjzgC3tOVpZrm+gcvNLAMOCjL1Ot1c=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB7207

T24gMTEvMjUvMjUgMTY6MDMsIFRob21hcyBaaW1tZXJtYW5uIHdyb3RlOg0KPiBFWFRFUk5BTCBF
TUFJTDogRG8gbm90IGNsaWNrIGxpbmtzIG9yIG9wZW4gYXR0YWNobWVudHMgdW5sZXNzIHlvdSBr
bm93IA0KPiB0aGUgY29udGVudCBpcyBzYWZlDQo+IA0KPiBIaQ0KPiANCj4gQW0gMjUuMTEuMjUg
dW0gMTU6Mzkgc2NocmllYiBMdWRvdmljLkRlc3JvY2hlc0BtaWNyb2NoaXAuY29tOg0KPj4gT24g
OC8yMS8yNSAxMDoxNywgVGhvbWFzIFppbW1lcm1hbm4gd3JvdGU6DQo+Pj4gQ2FsbCBkcm1fbW9k
ZV9zaXplX2R1bWIoKSB0byBjb21wdXRlIGR1bWItYnVmZmVyIHNjYW5saW5lIHBpdGNoIGFuZA0K
Pj4+IGJ1ZmZlciBzaXplLiBBbGlnbiB0aGUgcGl0Y2ggdG8gYSBtdWx0aXBsZSBvZiA4Lg0KPiAN
Cj4gSSBtaXNzZWQgYSBjaGFuY2UgdG8gZXhwbGFpbiBpdCBoZXJlLiA6Lw0KDQpJIHdhcyB3b25k
ZXJpbmcgaWYgaXQgd2FzIDgtYml0cyBvciA4LWJ5dGVzLg0KDQo+IA0KPj4+DQo+Pj4gUHVzaCB0
aGUgY3VycmVudCBjYWxjdWxhdGlvbiBpbnRvIHRoZSBvbmx5IGRpcmVjdCBjYWxsZXIgaW14LiBJ
bXgncw0KPj4+IGhhcmR3YXJlIHJlcXVpcmVzIHRoZSBmcmFtZWJ1ZmZlciB3aWR0aCB0byBiZSBh
bGlnbmVkIHRvIDguIFRoZQ0KPj4+IGRyaXZlcidzIGN1cnJlbnQgYXBwcm9hY2ggaXMgYWN0dWFs
bHkgaW5jb3JyZWN0LCBhcyBpdCBvbmx5IGd1YXJhbnRlZXMNCj4+PiB0aGlzIGltcGxpY2l0bHkg
YW5kIHJlcXVpcmVzIGJwcCB0byBiZSBhIG11bHRpcGxlIG9mIDggYWxyZWFkeS4gQQ0KPj4+IGxh
dGVyIGNvbW1pdCB3aWxsIGZpeCB0aGlzIHByb2JsZW0gYnkgYWxpZ25pbmcgdGhlIHNjYW5saW5l
IHBpdGNoDQo+Pj4gc3VjaCB0aGF0IGFuIGFsaWduZWQgd2lkdGggc3RpbGwgZml0cyBpbnRvIGVh
Y2ggc2NhbmxpbmUncyBtZW1vcnkuDQo+Pj4NCj4+PiBBIG51bWJlciBvZiBvdGhlciBkcml2ZXJz
IGFyZSBidWlsZCBvbiB0b3Agb2YgZ2VtLWRtYSBoZWxwZXJzIGFuZA0KPj4+IGltcGxlbWVudCB0
aGVpciBvd24gZHVtYi1idWZmZXIgYWxsb2NhdGlvbi4gVGhlc2UgZHJpdmVycyBpbnZva2UNCj4+
PiBkcm1fZ2VtX2RtYV9kdW1iX2NyZWF0ZV9pbnRlcm5hbCgpLCB3aGljaCBpcyBub3QgYWZmZWN0
ZWQgYnkgdGhpcw0KPj4+IGNvbW1pdC4NCj4+Pg0KPj4+IHY1Og0KPj4+IC0gYXZvaWQgcmVzZXQg
b2YgYXJndW1lbnRzIChUb21pKQ0KPj4+DQo+Pj4gU2lnbmVkLW9mZi1ieTogVGhvbWFzIFppbW1l
cm1hbm4gPHR6aW1tZXJtYW5uQHN1c2UuZGU+DQo+Pj4gUmV2aWV3ZWQtYnk6IFRvbWkgVmFsa2Vp
bmVuIDx0b21pLnZhbGtlaW5lbkBpZGVhc29uYm9hcmQuY29tPg0KPj4+IC0tLQ0KPj4+IMKgwqAg
ZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fZG1hX2hlbHBlci5jwqDCoMKgwqAgfCA3ICsrKysrLS0N
Cj4+PiDCoMKgIGRyaXZlcnMvZ3B1L2RybS9pbXgvaXB1djMvaW14LWRybS1jb3JlLmMgfCA0ICsr
Ky0NCj4+PiDCoMKgIDIgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u
cygtKQ0KPj4+DQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX2RtYV9o
ZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS8gDQo+Pj4gZHJtX2dlbV9kbWFfaGVscGVyLmMNCj4+
PiBpbmRleCA0ZjAzMjBkZjg1OGYuLmFiMWE3MGIxZDZmMSAxMDA2NDQNCj4+PiAtLS0gYS9kcml2
ZXJzL2dwdS9kcm0vZHJtX2dlbV9kbWFfaGVscGVyLmMNCj4+PiArKysgYi9kcml2ZXJzL2dwdS9k
cm0vZHJtX2dlbV9kbWFfaGVscGVyLmMNCj4+PiBAQCAtMjAsNiArMjAsNyBAQA0KPj4+IMKgwqAg
I2luY2x1ZGUgPGRybS9kcm0uaD4NCj4+PiDCoMKgICNpbmNsdWRlIDxkcm0vZHJtX2RldmljZS5o
Pg0KPj4+IMKgwqAgI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+DQo+Pj4gKyNpbmNsdWRlIDxkcm0v
ZHJtX2R1bWJfYnVmZmVycy5oPg0KPj4+IMKgwqAgI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2RtYV9o
ZWxwZXIuaD4NCj4+PiDCoMKgICNpbmNsdWRlIDxkcm0vZHJtX3ZtYV9tYW5hZ2VyLmg+DQo+Pj4N
Cj4+PiBAQCAtMzA0LDkgKzMwNSwxMSBAQCBpbnQgZHJtX2dlbV9kbWFfZHVtYl9jcmVhdGUoc3Ry
dWN0IGRybV9maWxlIA0KPj4+ICpmaWxlX3ByaXYsDQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAq
YXJncykNCj4+PiDCoMKgIHsNCj4+PiDCoMKgwqDCoCBzdHJ1Y3QgZHJtX2dlbV9kbWFfb2JqZWN0
ICpkbWFfb2JqOw0KPj4+ICvCoMKgwqAgaW50IHJldDsNCj4+Pg0KPj4+IC3CoMKgwqAgYXJncy0+
cGl0Y2ggPSBESVZfUk9VTkRfVVAoYXJncy0+d2lkdGggKiBhcmdzLT5icHAsIDgpOw0KPj4+IC3C
oMKgwqAgYXJncy0+c2l6ZSA9IGFyZ3MtPnBpdGNoICogYXJncy0+aGVpZ2h0Ow0KPj4+ICvCoMKg
wqAgcmV0ID0gZHJtX21vZGVfc2l6ZV9kdW1iKGRybSwgYXJncywgU1pfOCwgMCk7DQo+Pj4gK8Kg
wqDCoCBpZiAocmV0KQ0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiByZXQ7DQo+
PiBIaSwNCj4+DQo+PiBXYXMgaXQgaW50ZW50aW9uYWwgZm9yIHRoaXMgY2hhbmdlIHRvIGFsdGVy
IHRoZSBwaXRjaD8NCj4gDQo+IE1vc3QgaGFyZHdhcmUgZG9lcyBub3QgbmVlZCB0aGUgcGl0Y2gg
dG8gYmUgb2YgYSBjZXJ0YWluIGFsaWdubWVudC4gQnV0DQo+IHRoZXNlIGJ1ZmZlcnMgYXJlIHBv
c3NpYmx5IHNoYXJlZCB3aXRoIG90aGVyIGhhcmR3YXJlLCB3aGljaCBzb21ldGltZXMNCj4gbmVl
ZHMgYWxpZ25tZW50IHRvIGNlcnRhaW4gdmFsdWVzLiBVc2luZyBTWl84IGltcHJvdmVzIGNvbXBh
dGlibGUgd2l0aA0KPiB0aGF0IGhhcmR3YXJlLg0KPiANCj4+DQo+PiBUaGUgYWxpZ25tZW50IHJl
cXVpcmVtZW50IGhhcyBiZWVuIHVwZGF0ZWTigJRmcm9tIDgtYml0IGFsaWdubWVudCB0bw0KPj4g
NjQtYml0IGFsaWdubWVudC4gU2luY2UgdGhlIHBpdGNoIGlzIGV4cHJlc3NlZCBpbiBieXRlcywg
d2Ugc2hvdWxkIHBhc3MNCj4+IFNaXzEgaW5zdGVhZCBvZiBTWl84IGZvciBod19wYXRjaF9hbGln
bi4NCj4+DQo+PiBGb3IgZXhhbXBsZSwgZm9yIGFuIDg1MMOXNDgwIGZyYW1lYnVmZmVyIGF0IDE2
IGJwcCwgdGhlIHBpdGNoIHNob3VsZCBiZQ0KPj4gMTcwMCBieXRlcy4gV2l0aCB0aGUgbmV3IGFs
aWdubWVudCwgdGhlIHBpdGNoIGJlY29tZXMgMTcwNCBieXRlcy4NCj4gDQo+IE1hbnkgZGlzcGxh
eSBtb2RlcyBoYXZlIGFuIDgtYnl0ZSBhbGlnbm1lbnQgaW4gdGhlaXIgd2lkdGguIDg1MCBwaXhl
bHMNCj4gaXMgc29tZXdoYXQgb2YgYW4gZXhjZXB0aW9uLg0KDQpJbmRlZWQsIGJ1dCBvdmVybGF5
LXR5cGUgcGxhbmVzIGFyZSBvZnRlbiB1c2VkIHRvIGRpc3BsYXkgd2luZG93cyB0aGF0IA0KYXJl
IG5vdCB0aGUgc2FtZSBzaXplIGFzIHRoZSBzY3JlZW4sIGFuZCB0aGVyZWZvcmUgcG90ZW50aWFs
bHkgbm90IG9uIA0KOC1ieXRlcyBhbGlnbmVkLg0KDQo+IA0KPj4NCj4+IFBsZWFzZSBsZXQgbWUg
a25vdyBpZiB5b3XigJlkIGxpa2UgbWUgdG8gc3VibWl0IGEgZml4Lg0KPiANCj4gRG8geW91IHNl
ZSBhIGJ1ZyB3aXRoIHlvdXIgaGFyZHdhcmU/IFVubGVzcyB0aGlzIGNyZWF0ZXMgYSByZWFsIHBy
b2JsZW0sDQo+IEknZCBsaWtlIHRvIGtlZXAgaXQgYXMgaXQgaXMgbm93Lg0KDQpZZXMsIHRoYXTi
gJlzIGhvdyBJIG5vdGljZWQgdGhpcyBjaGFuZ2UuIEkgaGF2ZSBhbiBhcHBsaWNhdGlvbiB0aGF0
IA0KcmVxdWVzdHMgYSBmcmFtZWJ1ZmZlciBsYXJnZXIgdGhhbiBteSBzY3JlZW4sIGluIHRoaXMg
Y2FzZSA4NTB4NDgwIGluIA0KUkdCNTY1IGZvciBhbiA4MDB4NDgwIGRpc3BsYXkuIFNvIEkgaGF2
ZSBhIHBpdGNoIG9mIDE3MDAgYnl0ZXMuIE5vdyBpdOKAmXMgDQp1c2luZyBhIHBpdGNoIG9mIDE3
MDQsIHdoaWNoIHNoaWZ0cyBteSBsaW5lcy4NCg0KUmVnYXJkcywNCkx1ZG92aWMNCg0KPiANCj4g
QmVzdCByZWdhcmRzDQo+IFRob21hcw0KPiANCj4+DQo+PiBSZWdhcmRzLA0KPj4gTHVkb3ZpYw0K
Pj4NCj4+DQo+Pj4NCj4+PiDCoMKgwqDCoCBkbWFfb2JqID0gZHJtX2dlbV9kbWFfY3JlYXRlX3dp
dGhfaGFuZGxlKGZpbGVfcHJpdiwgZHJtLCBhcmdzLSANCj4+PiA+c2l6ZSwNCj4+PiDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJmFyZ3MtPmhhbmRsZSk7DQo+Pj4gZGlmZiAtLWdp
dCBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvaXB1djMvaW14LWRybS1jb3JlLmMgYi9kcml2ZXJzL2dw
dS8gDQo+Pj4gZHJtL2lteC9pcHV2My9pbXgtZHJtLWNvcmUuYw0KPj4+IGluZGV4IGVjNWZkOWEw
MWYxZS4uYWY0YTMwMzExZTE4IDEwMDY0NA0KPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pbXgv
aXB1djMvaW14LWRybS1jb3JlLmMNCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2lwdXYz
L2lteC1kcm0tY29yZS5jDQo+Pj4gQEAgLTE0NSw4ICsxNDUsMTAgQEAgc3RhdGljIGludCBpbXhf
ZHJtX2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSANCj4+PiAqZmlsZV9wcml2LA0KPj4+IMKg
wqDCoMKgIGludCByZXQ7DQo+Pj4NCj4+PiDCoMKgwqDCoCBhcmdzLT53aWR0aCA9IEFMSUdOKHdp
ZHRoLCA4KTsNCj4+PiArwqDCoMKgIGFyZ3MtPnBpdGNoID0gRElWX1JPVU5EX1VQKGFyZ3MtPndp
ZHRoICogYXJncy0+YnBwLCA4KTsNCj4+PiArwqDCoMKgIGFyZ3MtPnNpemUgPSBhcmdzLT5waXRj
aCAqIGFyZ3MtPmhlaWdodDsNCj4+Pg0KPj4+IC3CoMKgwqAgcmV0ID0gZHJtX2dlbV9kbWFfZHVt
Yl9jcmVhdGUoZmlsZV9wcml2LCBkcm0sIGFyZ3MpOw0KPj4+ICvCoMKgwqAgcmV0ID0gZHJtX2dl
bV9kbWFfZHVtYl9jcmVhdGVfaW50ZXJuYWwoZmlsZV9wcml2LCBkcm0sIGFyZ3MpOw0KPj4+IMKg
wqDCoMKgIGlmIChyZXQpDQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiByZXQ7
DQo+Pj4NCj4gDQo+IC0tIA0KPiAtLSANCj4gVGhvbWFzIFppbW1lcm1hbm4NCj4gR3JhcGhpY3Mg
RHJpdmVyIERldmVsb3Blcg0KPiBTVVNFIFNvZnR3YXJlIFNvbHV0aW9ucyBHZXJtYW55IEdtYkgN
Cj4gRnJhbmtlbnN0ci4gMTQ2LCA5MDQ2MSBOw7xybmJlcmcsIEdlcm1hbnksIHd3dy5zdXNlLmNv
bQ0KPiBHRjogSm9jaGVuIEphc2VyLCBBbmRyZXcgTWNEb25hbGQsIFdlcm5lciBLbm9ibGljaCwg
KEhSQiAzNjgwOSwgQUcgDQo+IE7DvHJuYmVyZykNCj4gDQo+IA0KDQoNCg==


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 06:35:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 06:35:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172280.1497365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vO97N-000648-BJ; Wed, 26 Nov 2025 06:35:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172280.1497365; Wed, 26 Nov 2025 06: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 1vO97N-000641-7z; Wed, 26 Nov 2025 06:35:09 +0000
Received: by outflank-mailman (input) for mailman id 1172280;
 Wed, 26 Nov 2025 06:35: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vO97L-00063v-Ps
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 06:35:07 +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 09979d26-ca92-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 07:35:02 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-477a2ab455fso67373645e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 22:35:02 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a15:dd93:9ad4:10e5:cb52?
 (p200300cab70c6a15dd939ad410e5cb52.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a15:dd93:9ad4:10e5:cb52])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42cbd764dbesm35093610f8f.27.2025.11.25.22.35.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 22:35: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: 09979d26-ca92-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764138902; x=1764743702; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=q33buSFPonoTaEDyFqYnlfJXw66rOnir9JneMBVT1/k=;
        b=L/Xgk0kzLxaFfUM9JGTnARMajDdchZq9IHg2cV3EUy1vzlzOSo4IR8yWrwO4BcfbNc
         Dw7YEtpvOUvRi8a52gljbhAMAJOjoEzVd36QkebqW+fTY5g0yIM8mSfiiFe67EJME+ki
         PFWxhDTZ8gdzmscXJ4KqAS8kf0TEPQT+QPTeXd3+LUwg1gdk9ObZWZy13TXYC7uNXOxW
         /d65fLuOG10JUt/dsW0YtK7+8pJK0DmNiBIHlT9QYWDAK4tQGvVYh2+q/41nNLrLNwwC
         bdWQwu87ih4GYpyEbBDvypH5eDzPhuID3pAoBnJ0nqi1OMFct8QRV1GXJNM1tWOurwfN
         ULdw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764138902; x=1764743702;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=q33buSFPonoTaEDyFqYnlfJXw66rOnir9JneMBVT1/k=;
        b=sPRCvbT1djQTnJNGkV9V5drCzaIShGs7Q4mtmSEn5y2A/EpX4HFCaJeL6bzlNqX8yn
         IqlUd7riJ9gJVsemonFBEAueeeP+Vdf/xgIQYkJr77ULl0+miMlyeXcVUlrwu8UzE/fp
         t5+sBnhAbGD9WmoEWe4E617sGwRpZVIb37BoLx0a93m/ZxPRETjEEdpV6PYKXFvc3VwZ
         +M+vwHQSeb9t91OOmuKgJ21C7VbeMVK/u+7UoMVIQWXYYEQ5qU8owiVu8codlkzrDmaI
         stHb4uV2TX/PO0RBXHwT/2FWT3Y0wyTCjHt0KeuCx7gJu7mvM1pjorl0DfW2INmfipyx
         tswQ==
X-Forwarded-Encrypted: i=1; AJvYcCV+YHKnSixgX+4T/PbXrzcfPs5IhN65NNCkXQkd7oWEbSktAZdQXdI1gB6aF3Kevq2uRtVmZBnX1CU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxT81xhxVXgzMRcI0YJy6W6+DwlsIAQkrSD/klvqcY4V7x9+zt0
	qCw6cJQrZXE7Z+9kSCXIPZ7NIaSztCVoGYiVO+rrcs0wmWAz6c4WBkL4XD6Hkgt8Aw==
X-Gm-Gg: ASbGnctigXxZOcv+SHOJjTi+JqzwL3+85ri6PbUph8iQvl73GTltghKhvATOH57QPJR
	TvMB47SepyNE/Px8wXgzpQEMxlgHGI1QKUYTtSwITAkEAqqC7GfcSqhRfdeEOP2R+ICPZUeNjxu
	sCOc3/3X4aTmsYL8+V5dxqteoG08npoVATsuHfBEfdNzw+fX6bssShnalxdrky7egz9bwLyvtl8
	g1SsuCJ7g8WJcgoaERolIWKo4TbMrZW6IwDoly3YMTMy4hgBiikHDRFrufkoJfaf8Fs15noY50R
	WaHzZ/+sgaCbfLYYDPq/l4QRy8jEKHxiGIuEg8YcaAbDQBQtbTcC9VnQD6RQfZYvWwqZ2YOn/uM
	gQ67i8NPhg79oVFcb+dYCMZheE0Nr58PDB7tuSbX8m23XGN9Hv/NeBtBNAJNPLxh8l03inapWS1
	4aFe21nMj2F94IlDA3Ao+Vclcinzr7cfQdjjdpagSmv7DoxI0zwTGjDlBdE+pZ25AI/PanGWfTZ
	eUTqP8YuPiUjeBLWb4MivYYR9EuJBsu4nG0z5QRiuh2951w
X-Google-Smtp-Source: AGHT+IF376hT22W8+XbwgRIBEQ6Z8CgP0aZSb+tJbHrBvz2JQ9sP7ojbxKb8EaqPF1JsJiSOzhf/2Q==
X-Received: by 2002:a05:6000:18a8:b0:42b:5521:31ad with SMTP id ffacd0b85a97d-42cc1d51b1fmr17540028f8f.49.1764138901754;
        Tue, 25 Nov 2025 22:35:01 -0800 (PST)
Message-ID: <dd78860b-7829-4eb5-a26b-71e133df5d81@suse.com>
Date: Wed, 26 Nov 2025 07:35:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/24] xen/sysctl: replace CONFIG_SYSCTL with
 CONFIG_MGMT_HYPERCALLS
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 Penny Zheng <Penny.Zheng@amd.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: ray.huang@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>, Dario Faggioli <dfaggioli@suse.com>,
 Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>,
 Alistair Francis <alistair.francis@wdc.com>, xen-devel@lists.xenproject.org
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-4-Penny.Zheng@amd.com>
 <5050db49-8581-499b-93bb-98c0f084d071@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: <5050db49-8581-499b-93bb-98c0f084d071@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2025 00:02, Grygorii Strashko wrote:
> Hi
> 
> On 21.11.25 12:57, Penny Zheng wrote:
>> Rename all the CONFIG_SYSCTL into CONFIG_MGMT_HYPERCALLS to help provide a
>> single option to manage all unnecessary hypercalls, including
>> sysctl, domctl, etc, in dom0less system and PV shim mode, which could also
>> make it easier to support randconfigs.
>> While doing the replacement, we fix some bugs on xsm system:
>> - wrap the whole xsm function to avoid bringing unreachable codes when
>> MGMT_DOMCTL=n
>> - add missing wrapping in include/xsm/dummy.h
>>
>> Suggested-by: Stefano Stabellini <sstabellini@kernel.org>
>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
>> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
>> Reviewed-by: Juergen Gross <jgross@suse.com>
>> Acked-by: Stewart Hildebrand <stewart@stew.dk> #ARINC 653
>> Acked-by: Jan Beulich <jbeulich@suse.com>
>> Cc: Alistair Francis <alistair.francis@wdc.com>
>> ---
>> v2 -> v3:
>> - wrap the whole xsm function
>> - add missing wrapping in include/xsm/dummy.h
>> - refine kconfig description
>> ---
> 
> With below diff..
> 
> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> index 6709c3c95c53..f478adffff9c 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -652,9 +652,8 @@ menu "Supported hypercall interfaces"
> Â Â Â Â Â Â Â  visible if EXPERT
> Â 
> Â config MGMT_HYPERCALLS
> -Â Â Â Â Â Â  bool "Enable privileged hypercalls for system management"
> Â Â Â Â Â Â Â  depends on !PV_SHIM_EXCLUSIVE
> -Â Â Â Â Â Â  default y
> +Â Â Â Â Â Â  def_bool y
> Â Â Â Â Â Â Â  help
> Â Â Â Â Â Â Â Â Â  This option shall only be disabled on some dom0less systems, or
> Â Â Â Â Â Â Â Â Â  PV shim on x86, to reduce Xen footprint via managing unnessary
> 
> It could be very helpful to consider this patch to be applied first.

It doesn't need the change above, does it? It (aiui) deliberately sits
ahead of the patch (supposedly) doing the above. While (once again) it
is not being said anywhere that it's independent of patches 01 and 02,
I expect it really is. In which case all that looks to prevent it from
having gone in already is the lack of an ack for the XSM changes.

> - number of tags indicates that it's the way to move forward
> - with above diff patch 4 can be dropped

Except that imo really wants to be separate. And that could have gone
in already as well, if only it had been done correctly.

Jan

> - it is mechanical change, but it's big and constant source of rebase/merge/cherry-pick conflicts
> - once applied it will allow, actually, parallel development of this feature as MGMT_HYPERCALLS will
> Â  be defined while build not broken.
> 



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 06:44:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 06:44:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172294.1497375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vO9GS-0007ut-9t; Wed, 26 Nov 2025 06:44:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172294.1497375; Wed, 26 Nov 2025 06:44: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 1vO9GS-0007um-6A; Wed, 26 Nov 2025 06:44:32 +0000
Received: by outflank-mailman (input) for mailman id 1172294;
 Wed, 26 Nov 2025 06:44:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vO9GR-0007ug-ON
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 06:44:31 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5c00b882-ca93-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 07:44:30 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-477b5e0323bso2600065e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 22:44:30 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a15:dd93:9ad4:10e5:cb52?
 (p200300cab70c6a15dd939ad410e5cb52.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a15:dd93:9ad4:10e5:cb52])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42cb7fa3a76sm38597411f8f.24.2025.11.25.22.44.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 22: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: 5c00b882-ca93-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764139470; x=1764744270; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rH47JUdpBE8fS8Lyjlxp40JiqhAKxUvP8IpxkZ9ea3c=;
        b=IFdeDCZebGIybTTl/0+fSPvgomq7yBg5Z17nW+tC8+P385LX7pc2M+o7wNuUH0FJWh
         6jeVNCh/wW9uNkouie/ejp/mYpAc9oxzqHhYzr7l27vEQH7+gjMyGMs+9dXDE7KE8TuB
         +dmmaLmK4bKNonDBIjr1fi81QbdKh7cbauhL/fj3S8En3w0nQDHKaLrZ7wkG3bcma6Us
         C7YyVETzbi62zzjO+rG05iyVRIwFC3o0wuPcVFFopuN9qKIczAalKxsagLbcA8t0nHkG
         rqwxfpqM79v3BbLJhpdbZjMLKEylm2Zzz0zuPAQKGHZ/sN+39Pz1Iyn3tALP7+iwOulh
         r1gQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764139470; x=1764744270;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rH47JUdpBE8fS8Lyjlxp40JiqhAKxUvP8IpxkZ9ea3c=;
        b=Go2Yw7LWjMur0wuB48sY+S64ZncsIGmruDtXh5430vsPVaqwXigWgAdTmiAHbJsmWc
         jJQvQlnG98bgkXf8jCRbnWsOW/zX27NFmXj8P8cRAIYVtlk5kBPUzKbHhj1i0AklPa7E
         tMtPQjm4RFip6rSytFfZBZiPhen6g032g7EDrBaekl/bsmouTTBIRS4yRudLR7uZE7gS
         n4xTSup20uFhjSOV5SqX3an2uyW3SgqiWb9IpkhjADJGOfkmDXDRSRyUk36UH1OTYTxG
         MTtMZkdRvZ5LhchhPyCair94oiVr7m1TL1UNEyng6ubLS+4HM2ouGryEtDOMqOfPz6rm
         Ty2A==
X-Forwarded-Encrypted: i=1; AJvYcCXg1Lvsk4tCpfPW5C8P+AWx/hRpag6DbhVdTO1aFY1un4Nd0pS+tD5MLGbZVdhDb9u0KDuQE4wMxdY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz+aqb/D+O6jB5/1ZbsqAPA/MAWZ543K9p90Oah7TtYk4Zb489k
	uEV45Q0MuH0lZ0GVa+wejxf80wReBlDydgiiZRHhN3GeKtdH9WPN3Sn9tADCgSHW6w==
X-Gm-Gg: ASbGncuNote6Ayq/6PZ5QgvKg6lQxbX7JmR1tFue254E/yPUxFMCKFU6BAtNmF9oXEv
	LsHOv7AiJr6HOMMIxlrbYqfU/k+HIdcFzp6Z3BESrSQxEk8qBSWqEP72X4aGcIM1a0ZVaq7xtuF
	ioWQRACcrNZwNwIB7DTvFm+HGw4jTvvlP+v2i2tMeTDII2A0VF6WyN8O3sRJs9OzyVpvaTwXv7j
	/w2tmGUMZw4RJhCRmgVzI1XUWQFKyW/TJmcaheedvcSfvNIQ3oeLtArF7Z4ZZ+1ZVidYlZAP/mp
	umHqMD/GXRieUo5w3ezFIgJSnrqx58EIgrJtdmlCQ0XhF8r02DBtKh/8LpxLO2Cs5GjVAx7iXjK
	1wq0akx9Mr29XOrlVD8pd+a3TfOMCjqh90SbmS7t2KPO/ZaUo0xsWEelPfHJMZ+dDWBE7I/k3hb
	Fzw7G+5uau8lpI3YFc/K6BUpgt8KpNnj0aTLriDN6X+7V4CLbi6GIwuzfzEu4rEjXws6d3nljWG
	5ypxGyG7gGWGOl8ttrUa9YBht7hVy95D92kRqornB8wH2Di6MhbqjV8rYg=
X-Google-Smtp-Source: AGHT+IH5TpP8H0OVqJ4p4+ulCBNNTSGnhdbiyPANNw8G5up6E98V8eUHlAb5cqaSJANtRX+MKycrqg==
X-Received: by 2002:a05:6000:4026:b0:425:7e33:b4a9 with SMTP id ffacd0b85a97d-42cc125247bmr23311511f8f.0.1764139469645;
        Tue, 25 Nov 2025 22:44:29 -0800 (PST)
Message-ID: <356a69b1-f072-48b7-a66a-5aa827c8bab7@suse.com>
Date: Wed, 26 Nov 2025 07:44:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86: Remove x86 prefixed names from cpuinfo for
 intel.c
To: Kevin Lampis <kevin.lampis@citrix.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <20251125202724.1384622-1-kevin.lampis@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: <20251125202724.1384622-1-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.11.2025 21:27, Kevin Lampis wrote:
> struct cpuinfo_x86
>   .x86        => .family
>   .x86_vendor => .vendor
>   .x86_model  => .model
>   .x86_mask   => .stepping
> 
> No functional change.
> 
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
> ---
> Changes in v2:
> - Convert the two switch statements in probe_masking_msrs()
>   and check_memory_type_self_snoop_errata()
> - Requested style changes

As to the latter - not quite, see below.

> --- a/xen/arch/x86/cpu/intel.c
> +++ b/xen/arch/x86/cpu/intel.c
> @@ -86,18 +86,19 @@ static void __init check_memory_type_self_snoop_errata(void)
>  	if (!boot_cpu_has(X86_FEATURE_SS))
>  		return;
>  
> -	switch (boot_cpu_data.x86_model) {
> -	case 0x0f: /* Merom */
> -	case 0x16: /* Merom L */
> -	case 0x17: /* Penryn */
> -	case 0x1d: /* Dunnington */
> -	case 0x1e: /* Nehalem */
> -	case 0x1f: /* Auburndale / Havendale */
> -	case 0x1a: /* Nehalem EP */
> -	case 0x2e: /* Nehalem EX */
> -	case 0x25: /* Westmere */
> -	case 0x2c: /* Westmere EP */
> -	case 0x2a: /* SandyBridge */
> +	switch ( boot_cpu_data.vfm )
> +	{
> +	case INTEL_CORE2_MEROM:
> +	case INTEL_CORE2_MEROM_L:
> +	case INTEL_CORE2_PENRYN:
> +	case INTEL_CORE2_DUNNINGTON:
> +	case INTEL_NEHALEM:
> +	case INTEL_NEHALEM_G:
> +	case INTEL_NEHALEM_EP:
> +	case INTEL_NEHALEM_EX:
> +	case INTEL_WESTMERE:
> +	case INTEL_WESTMERE_EP:
> +	case INTEL_SANDYBRIDGE:

The ordering here would imo ...

> @@ -137,28 +138,29 @@ static void __init probe_masking_msrs(void)
>  	unsigned int exp_msr_basic, exp_msr_ext, exp_msr_xsave;
>  
>  	/* Only family 6 supports this feature. */
> -	if (c->x86 != 6)
> +	if (c->family != 6)
>  		return;
>  
> -	switch (c->x86_model) {
> -	case 0x17: /* Yorkfield, Wolfdale, Penryn, Harpertown(DP) */
> -	case 0x1d: /* Dunnington(MP) */
> +	switch ( c->vfm )
> +	{
> +	case INTEL_CORE2_PENRYN:
> +	case INTEL_CORE2_DUNNINGTON:
>  		msr_basic = MSR_INTEL_MASK_V1_CPUID1;
>  		break;
>  
> -	case 0x1a: /* Bloomfield, Nehalem-EP(Gainestown) */
> -	case 0x1e: /* Clarksfield, Lynnfield, Jasper Forest */
> -	case 0x1f: /* Something Nehalem-based - perhaps Auburndale/Havendale? */
> -	case 0x25: /* Arrandale, Clarksdale */
> -	case 0x2c: /* Gulftown, Westmere-EP */
> -	case 0x2e: /* Nehalem-EX(Beckton) */
> -	case 0x2f: /* Westmere-EX */
> +	case INTEL_NEHALEM_EP:
> +	case INTEL_NEHALEM:
> +	case INTEL_NEHALEM_G:
> +	case INTEL_WESTMERE:
> +	case INTEL_WESTMERE_EP:
> +	case INTEL_NEHALEM_EX:
> +	case INTEL_WESTMERE_EX:

... best also be followed here, even if that means some re-ordering
compared to what original code had.

> @@ -572,8 +580,13 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
>              factor = core_factors[msrval];
>              break;
>  
> -        case 0x1a: case 0x1e: case 0x1f: case 0x2e: /* Nehalem */
> -        case 0x25: case 0x2c: case 0x2f: /* Westmere */
> +        case INTEL_NEHALEM_EP:
> +        case INTEL_NEHALEM:
> +        case INTEL_NEHALEM_G:
> +        case INTEL_NEHALEM_EX:
> +        case INTEL_WESTMERE:
> +        case INTEL_WESTMERE_EP:
> +        case INTEL_WESTMERE_EX:
>              factor = 13333;
>              break;

Same here. (This iirc also wasn't there in v1, but isn't mentioned in
the changelog.)

> @@ -657,14 +670,17 @@ 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);
> -	}
> +    if ( ( c->family == 15 && c->model >= 0x03 ) ||
> +         ( c->family == 6 && c->model >= 0x0e ) )
> +        __set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
> +
> +    if ( cpu_has(c, X86_FEATURE_ITSC) )
> +    {
> +        __set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
> +        __set_bit(X86_FEATURE_NONSTOP_TSC, c->x86_capability);
> +        __set_bit(X86_FEATURE_TSC_RELIABLE, c->x86_capability);
> +    }
> +
>  	if ( opt_arat &&
>  	     ( c->cpuid_level >= 0x00000006 ) &&
>  	     ( cpuid_eax(0x00000006) & (1u<<2) ) )

>From your v1 reply I concluded that you understood that this isn't the way
to go. Within a function, indentation shouldn't vary like this. I suggest
anyway that you really wait with submitting a new version until discussion
has settled.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 06:53:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 06:53:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172304.1497385 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vO9PV-0001E2-35; Wed, 26 Nov 2025 06:53:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172304.1497385; Wed, 26 Nov 2025 06: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 1vO9PU-0001Dv-VS; Wed, 26 Nov 2025 06:53:52 +0000
Received: by outflank-mailman (input) for mailman id 1172304;
 Wed, 26 Nov 2025 06: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vO9PT-0001Dp-JW
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 06:53: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 a8f1dab3-ca94-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 07:53:48 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4775ae77516so59709405e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 22:53:48 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a15:dd93:9ad4:10e5:cb52?
 (p200300cab70c6a15dd939ad410e5cb52.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a15:dd93:9ad4:10e5:cb52])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4790ae05feesm26146885e9.15.2025.11.25.22.53.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 22:53: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: a8f1dab3-ca94-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764140028; x=1764744828; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rlZPsYlhMpcnplZMBTt5WYxemDnRN/Jxv37GOLG8RpU=;
        b=J1xmThIwgZkQIkB515ws3IbWpbKlOEyrFWRf3UiaPrelbiWls0cv9LlYcO8xMDUNm8
         140iHF8V0BvX0P1NW/XEFxSzv3j39xZi4HbBywzxsFd2hO73fMwrp0i9Ea2NHTmDn9yc
         VO4wmO6p4aLlm25ZwO5cSKveHNm/UiBq7rxgB4ut0h1gqUTMt3ZipAFFm2Vf33a5oONG
         aREok7qWWamZMVsyqOsx20jweTNW/aTHSvvnYpnaK0NQS1bCb/eLIFJDh1X56KSonygT
         tubUiAqgZpk6larAZ6wdqUNpW4CfF9Ealvnt4UOU29YMH2iGdBd/ffPB0cv3g+RBLyx4
         ldew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764140028; x=1764744828;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rlZPsYlhMpcnplZMBTt5WYxemDnRN/Jxv37GOLG8RpU=;
        b=UmOCb+V/Ek7d3f7dEMqpwm0BRuw5ayNYA/wXdoZpuWWMY0iXRfhVDPfnMWP7DeqvHs
         HEzd2l9MFKgJsi/pNA/v1mVRXYpwnTz0tYSle1xirUlNubC0v2MYOIQOPKTixJHv5jMh
         Xdpr03pFD89ol7BLO52Ww1H43bWZjUY+8MGN0MDCUgTTugWMmJJ0ayHnqFQ5qHv95kNW
         U1LBu+b1f+BiVLRofvc9pJ8aAPZEWzyxi3Bvo6HBAHVug0h3yzzvj9fGeSPf0qbIJ1f9
         MvRSBI/85B6fRqNbPYZVFQgS10Q+ArmGwf/wvXAxui5q/3bgPz1q/+2oPJo9C2JE1AMb
         HFFQ==
X-Forwarded-Encrypted: i=1; AJvYcCUYVg/W0gw4KSe36uJt/EfE3m6eryec+rQgWWtl0Paciy9HMzPpekSUlA1JliEzflXtz/cgqDIASx4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxG37MizGVZMoXjG4hfjewAHhaDRBjq43PqxyHu9DlA/wkt2coz
	4q1pjAPd15RM8PciulkFxQSpCRmWgOP8impkdBNml+OALBGrzM2OM7t+iMQS/0VLiw==
X-Gm-Gg: ASbGncsltl/uukKmlXWiRimNnj5zb6oEWpYcVH2xHTV+rRbGNHOO8cEMpqaSzvNq8rZ
	Hqnr3rjkfcA/cU514NDi5dMeJl+bT94STM4yS8ygoOCouh5z+UUztkY07Vq/BlFaT7/GZlOmBdh
	jm6XPBviECt3n8hJFDkTJd+8mAspFmA0n7o1qrJKwtDkTlE374Rwxzs9DcDlDAJhALsAICrSCHt
	J0O2pmzT4Bb0m7ODTYgxDk3CBrFcyBeEzEIyjIjRSp2IRzqliqWfKlxsHZP415WXEQzW2iG3FCj
	hd27Lpi9Rvsax9eotjzvnszkAyJMzLIOOUtZbBUC9SEVfOVhCmxUtNojEaHloxxpC4Z1prWaPxf
	Jn9ayqdQyr1yDIQPlGYMIKtlTsKjJrFq+c2/nxPdlO07pw/mrvbLCBouO7vGbWqBSVwDj0wY0n2
	Q1JAY7RQClxSpWPXY6ZlsC41PqbIka54owNpdBCmHNBZKiSiHw0NtGrwBQyh91cPJwylfye7D6E
	woK46FfB5qG1Q9UQ3JxGzhBwIFGvbyj8SpfzezppkTlEKb6
X-Google-Smtp-Source: AGHT+IE+GPanNrHDUolXz/DU4XoI3IvPZW0CGrl1VSHK+VDAgzQaJw3ybx4PsZoxyX3kcDVhYg+mfg==
X-Received: by 2002:a05:600c:5489:b0:45d:5c71:769a with SMTP id 5b1f17b1804b1-477c112400amr157009535e9.26.1764140028260;
        Tue, 25 Nov 2025 22:53:48 -0800 (PST)
Message-ID: <c7a44091-caf0-4346-9f03-d7741eeee592@suse.com>
Date: Wed, 26 Nov 2025 07:53:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/vhpet: Fix sanitization of legacy IRQ route
To: Tu Dinh <ngoc-tu.dinh@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: <20251125165252.1491-1-ngoc-tu.dinh@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: <20251125165252.1491-1-ngoc-tu.dinh@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.11.2025 17:52, Tu Dinh wrote:
> When setting a timer's config register, timer_sanitize_int_route will
> always reset the IRQ route value to what's valid corresponding to the
> !HPET_CFG_LEGACY case. This is applied even if the HPET is set to
> HPET_CFG_LEGACY.
> 
> When some operating systems (e.g. Windows) try to write to a timer
> config, they will verify and rewrite the register if the values don't
> match what they expect. This causes an unnecessary write to HPET_Tn_CFG.
> 
> Note, the HPET specification states that for the Tn_INT_ROUTE_CNF field:
> 
> "If the value is not supported by this prarticular timer, then the value
> read back will not match what is written. [...] If the LegacyReplacement
> Route bit is set, then Timers 0 and 1 will have a different routing, and
> this bit field has no effect for those two timers."
> 
> Therefore, Xen should not reset timer_int_route if legacy mode is
> enabled, regardless of what's in there.
> 
> Fixes: ec40d3fe2147 ("x86/vhpet: check that the set interrupt route is valid")
> Signed-off-by: Tu Dinh <ngoc-tu.dinh@vates.tech>

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



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 06:59:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 06:59:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172314.1497395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vO9V2-0001pQ-LN; Wed, 26 Nov 2025 06:59:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172314.1497395; Wed, 26 Nov 2025 06:59:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vO9V2-0001pJ-HX; Wed, 26 Nov 2025 06:59:36 +0000
Received: by outflank-mailman (input) for mailman id 1172314;
 Wed, 26 Nov 2025 06:59:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vO9V1-0001pD-H6
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 06:59:35 +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 76ae9bff-ca95-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 07:59:34 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4775e891b5eso27032525e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 22:59:34 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a15:dd93:9ad4:10e5:cb52?
 (p200300cab70c6a15dd939ad410e5cb52.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a15:dd93:9ad4:10e5:cb52])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4790adc6220sm27622525e9.2.2025.11.25.22.59.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 22:59: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: 76ae9bff-ca95-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764140374; x=1764745174; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WVdmRoJZPnE2C4JnKRVRS7SAr+0iskPtZySRJg+foSM=;
        b=fF+hvNfRxigdKNL6EHMRrZ7N961LWajBO9WBLmgd94J7Kj9+W5pTmKCEQj9464veWc
         aUzCh40u5oC7t1kqBnwP+LJY7gYcxUAIxqIxuS8T7Yx5jV+oNylDgI/glpX7zi8MgIVb
         szThQlYLJkuWDdvuWiQa7xP7WnujACtrDP3YC5399FWcBn0Iwfm++njrR8IWG3CABsN3
         xWknVXaC8ux0kNlXXYvR06mzPYH8bjldN0vGvYrrM8H59UqV+joIlVo+WZ0SHGRw/qqk
         8B5RmaSb0FAGvq8oXcSrHX7eawK4dYcIvfHJpRqr7UFS7YtrEW0GEMoovWLLmbwF5zfh
         jI5w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764140374; x=1764745174;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WVdmRoJZPnE2C4JnKRVRS7SAr+0iskPtZySRJg+foSM=;
        b=R0+Gwc4SsUVkOVaCNKultsBT8bumwoGQgCuYkqzMVgNmRYKrt4b08ocL2cyD4TPqTL
         Kcb+Ya/4JHXHY8+McZUuMYmXt410e74uKMeayiPXvUYY875QeRm0y1TzDguMc/4qRzkK
         74O2P/cBYvcy7UtZTqDGrr6ALW/a8Agvl22hOt5r2QhRm5FoZc33CC4pur6dLWmWtgLX
         6BZ+eTRLNlDSzNeVN9H8qeKnLAM+wWJQn+ErAzwG8tU8bUzxAWNT2o+JeUNbuWLyOhin
         YOLmn7mgEG1Q10NJAiCQAgNRNZX6XPKIm/G/CaCAxkYwX+/GhO4ez6pusglw/Ebo28or
         9eZw==
X-Forwarded-Encrypted: i=1; AJvYcCXNV7OlT1mS6l2ceMLYDOpdJelamWbCuYtgWFdiYxxuKDsef71sLwNA2IW6dBzW1JHpziDM2+mWv4o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwHkabk/NwDYe6yvL4EEIioGPUNV1XI0SSOTJBCzevYV1kQUGWE
	Je+LmEyJZj6Rnp+o8WWKCR4jitq3owV1q4hLUf2T3Yt/MuluFildf9YwJa6SnvKrog==
X-Gm-Gg: ASbGnctx/QMNW3wdbyejFiy4JrfstbT2UNzz78y4TIo3QR3pni1wtMbgIE7AYrZ/oFY
	bR9gD0AimFaKaYUmLSdW82s/7hHnNsOVG8ISRoRlFyVcD5BUeM4LulLOtmhaz2srLRsOqJunKTl
	6tnGS3TUVsm1V5no1kUVwxmoLiWKe2AaihcsTeqEAlA8TjMdiFk/rrDXqGFvRdeWzdWeEh2wgOZ
	BPoPHCAi4YmnfCC7L0AJmqAaw4Ry792vy19k3apVV5DutDyH7+Nj2+U9gcLPRdyRAuOphTWMJkd
	/1F4ZuuzFVTpTU9qhpsn/DRQzAqJcO+reKzpetfLsUL2WLZOsdCFugCBU7MzXgR+TRg1IpWtt7h
	kz42sGIh6ym/hs4LrOETCK2+R820LetuladA1fBsRF/0xfYIRpdy9vArzYLpl+iPj7DQ1EIjJZp
	3dxwvumAk3N+rwk1ZHv7H0jgliz+HtRXXoVqUNIa+4WH+/856rjxxt11GIjAOdyE74+QtC8vDTE
	LGi/a4ElRGs3/geHiSgrqldh8pU1LsBXZBpAU0UfePm/bnQ
X-Google-Smtp-Source: AGHT+IH1eUpzPmYTXhwP5R98qUSxtgqI4CAT/6/FqoUP4fQy6qjFxaYovkkWmQVr6vbfnHK5izFy9A==
X-Received: by 2002:a05:600c:4fcc:b0:471:9da:5252 with SMTP id 5b1f17b1804b1-477c01ebe2amr176970545e9.29.1764140373645;
        Tue, 25 Nov 2025 22:59:33 -0800 (PST)
Message-ID: <f349a91b-89bc-4489-aff2-2590b521621d@suse.com>
Date: Wed, 26 Nov 2025 07:59:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] x86/hvm: move save/restore under HVM_SAVE_RESTORE
 config
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Paul Durrant <paul@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251125230040.3070954-1-grygorii_strashko@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: <20251125230040.3070954-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 00:00, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Introduce separate HVM_SAVE_RESTORE config for HVM save/restore feature,
> which is enabled by default for HVM and depends on MGMT_HYPERCALLS config.
> 
> This allows to make MGMT_HYPERCALLS specific changes more granular and, if
> required, make HVM save/restore optional, selectable feature.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
> I'd like to propose this patch as a replacement of Patch 19 [1]
> 
> [1] https://patchwork.kernel.org/project/xen-devel/patch/20251121105801.1251262-20-Penny.Zheng@amd.com/
> 
>  xen/arch/x86/cpu/mcheck/vmce.c       | 4 ++--
>  xen/arch/x86/emul-i8254.c            | 4 +++-
>  xen/arch/x86/hvm/Kconfig             | 6 ++++++
>  xen/arch/x86/hvm/Makefile            | 2 +-
>  xen/arch/x86/hvm/hpet.c              | 3 ++-
>  xen/arch/x86/hvm/hvm.c               | 4 ++++
>  xen/arch/x86/hvm/irq.c               | 2 ++
>  xen/arch/x86/hvm/mtrr.c              | 2 ++
>  xen/arch/x86/hvm/pmtimer.c           | 2 ++
>  xen/arch/x86/hvm/rtc.c               | 2 ++
>  xen/arch/x86/hvm/vioapic.c           | 2 ++
>  xen/arch/x86/hvm/viridian/viridian.c | 2 ++
>  xen/arch/x86/hvm/vlapic.c            | 3 ++-
>  xen/arch/x86/hvm/vpic.c              | 2 ++
>  xen/arch/x86/include/asm/hvm/save.h  | 5 ++++-
>  15 files changed, 38 insertions(+), 7 deletions(-)
> 
> diff --git a/xen/arch/x86/cpu/mcheck/vmce.c b/xen/arch/x86/cpu/mcheck/vmce.c
> index 1a7e92506ac8..ba27f6f8bd91 100644
> --- a/xen/arch/x86/cpu/mcheck/vmce.c
> +++ b/xen/arch/x86/cpu/mcheck/vmce.c
> @@ -349,7 +349,7 @@ int vmce_wrmsr(uint32_t msr, uint64_t val)
>      return ret;
>  }
>  
> -#if CONFIG_HVM
> +#if defined(CONFIG_HVM_SAVE_RESTORE)

#if wasn't really correct to use here; #ifdef was and is wanted.

>  static int cf_check vmce_save_vcpu_ctxt(struct vcpu *v, hvm_domain_context_t *h)
>  {
>      struct hvm_vmce_vcpu ctxt = {
> @@ -380,10 +380,10 @@ static int cf_check vmce_load_vcpu_ctxt(struct domain *d, hvm_domain_context_t *
>  
>      return err ?: vmce_restore_vcpu(v, &ctxt);
>  }
> +#endif /* CONFIG_HVM_SAVE_RESTORE */
>  
>  HVM_REGISTER_SAVE_RESTORE(VMCE_VCPU, vmce_save_vcpu_ctxt, NULL,
>                            vmce_load_vcpu_ctxt, 1, HVMSR_PER_VCPU);
> -#endif

Why would this #endif move? (It gaining a comment is fine of course.)

> --- a/xen/arch/x86/emul-i8254.c
> +++ b/xen/arch/x86/emul-i8254.c
> @@ -409,7 +409,9 @@ void pit_stop_channel0_irq(PITState *pit)
>      destroy_periodic_time(&pit->pt0);
>      spin_unlock(&pit->lock);
>  }
> +#endif
>  
> +#if defined(CONFIG_HVM_SAVE_RESTORE)

Hmm, again - please use the shorter #ifdef.

> @@ -507,9 +509,9 @@ static int cf_check pit_load(struct domain *d, hvm_domain_context_t *h)
>  
>      return rc;
>  }
> +#endif /* CONFIG_HVM_SAVE_RESTORE */
>  
>  HVM_REGISTER_SAVE_RESTORE(PIT, pit_save, pit_check, pit_load, 1, HVMSR_PER_DOM);
> -#endif

And again - why move it?

> --- a/xen/arch/x86/hvm/Kconfig
> +++ b/xen/arch/x86/hvm/Kconfig
> @@ -93,4 +93,10 @@ config MEM_SHARING
>  	depends on INTEL_VMX
>  	depends on MGMT_HYPERCALLS
>  
> +config HVM_SAVE_RESTORE
> +	depends on MGMT_HYPERCALLS
> +	def_bool y
> +	help
> +	  Enables HVM save/load functionality.
> +
>  endif

This wants to move up some imo; MEM_SHARING is clearing the more niche feature.

> --- a/xen/arch/x86/include/asm/hvm/save.h
> +++ b/xen/arch/x86/include/asm/hvm/save.h
> @@ -123,6 +123,7 @@ void hvm_register_savevm(uint16_t typecode,
>  
>  /* Syntactic sugar around that function: specify the max number of
>   * saves, and this calculates the size of buffer needed */
> +#ifdef CONFIG_HVM_SAVE_RESTORE
>  #define HVM_REGISTER_SAVE_RESTORE(_x, _save, check, _load, _num, _k)      \
>  static int __init cf_check __hvm_register_##_x##_save_and_restore(void)   \
>  {                                                                         \
> @@ -137,7 +138,9 @@ static int __init cf_check __hvm_register_##_x##_save_and_restore(void)   \
>      return 0;                                                             \
>  }                                                                         \
>  __initcall(__hvm_register_##_x##_save_and_restore);
> -
> +#else
> +#define HVM_REGISTER_SAVE_RESTORE(_x, _save, check, _load, _num, _k)
> +#endif

By suitably moving the #endif-s I would hope we can get away without this
dummy #define.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 07:40:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 07:40:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172324.1497405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOA8P-00088i-Be; Wed, 26 Nov 2025 07:40:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172324.1497405; Wed, 26 Nov 2025 07:40: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 1vOA8P-00088b-8w; Wed, 26 Nov 2025 07:40:17 +0000
Received: by outflank-mailman (input) for mailman id 1172324;
 Wed, 26 Nov 2025 07:40: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=j+jD=6C=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1vOA8N-00088V-Bu
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 07:40:15 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 23ecc547-ca9b-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 08:40:12 +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 5C6CA22C7B;
 Wed, 26 Nov 2025 07:40:10 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id C9E573EA63;
 Wed, 26 Nov 2025 07:40:09 +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 pmTZL9muJmmfKgAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Wed, 26 Nov 2025 07: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: 23ecc547-ca9b-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1764142810; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=N/IKV4NTtJDFriBCvdPujoI7Ss0dmnp2XYDv3sBK7Do=;
	b=nxsdbyPwMPWjnG5L8rQDkkJKR+yuEw2QDk1AxcRidFERWys4o+v8VAgfQvHrM26PCj9Wyv
	Wnt1aYIPzuKMZ0jTkgOT4WQxIQkuGEz/laT1YlcwTWqRpIvuMC8IFT/HOkyuE2Fw4hheDM
	J2zRAnG9B9cfHlTTelwwpCOfrUZQQW0=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1764142810;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=N/IKV4NTtJDFriBCvdPujoI7Ss0dmnp2XYDv3sBK7Do=;
	b=+VLEA8R0mOGMJCFmnuWFparRdoUKNmXgpZ7YnSUkRUbCju5PQ8EpYFuuIW0TdhGD0Ajpz1
	EExCAwui7CyMDZCg==
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.de header.s=susede2_rsa header.b=nxsdbyPw;
	dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=+VLEA8R0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1764142810; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=N/IKV4NTtJDFriBCvdPujoI7Ss0dmnp2XYDv3sBK7Do=;
	b=nxsdbyPwMPWjnG5L8rQDkkJKR+yuEw2QDk1AxcRidFERWys4o+v8VAgfQvHrM26PCj9Wyv
	Wnt1aYIPzuKMZ0jTkgOT4WQxIQkuGEz/laT1YlcwTWqRpIvuMC8IFT/HOkyuE2Fw4hheDM
	J2zRAnG9B9cfHlTTelwwpCOfrUZQQW0=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1764142810;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=N/IKV4NTtJDFriBCvdPujoI7Ss0dmnp2XYDv3sBK7Do=;
	b=+VLEA8R0mOGMJCFmnuWFparRdoUKNmXgpZ7YnSUkRUbCju5PQ8EpYFuuIW0TdhGD0Ajpz1
	EExCAwui7CyMDZCg==
Message-ID: <58b768ad-00fb-4fe5-924c-9cf6ec12f75c@suse.de>
Date: Wed, 26 Nov 2025 08:40:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 03/25] drm/gem-dma: Compute dumb-buffer sizes with
 drm_mode_size_dumb()
To: Ludovic.Desroches@microchip.com, simona@ffwll.ch, airlied@gmail.com,
 mripard@kernel.org, maarten.lankhorst@linux.intel.com, geert@linux-m68k.org,
 tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org, linux-mediatek@lists.infradead.org,
 freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org,
 imx@lists.linux.dev, linux-samsung-soc@vger.kernel.org,
 nouveau@lists.freedesktop.org, virtualization@lists.linux.dev,
 spice-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org,
 linux-rockchip@lists.infradead.org, linux-tegra@vger.kernel.org,
 intel-xe@lists.freedesktop.org, xen-devel@lists.xenproject.org
References: <20250821081918.79786-1-tzimmermann@suse.de>
 <20250821081918.79786-4-tzimmermann@suse.de>
 <52600bf4-2c1c-49a6-82c5-b31818141a43@microchip.com>
 <a11c195d-197c-45a4-962a-e2336c7360c2@suse.de>
 <2fbe0d43-67c5-4816-aff0-c23ac1507ec5@microchip.com>
Content-Language: en-US
From: Thomas Zimmermann <tzimmermann@suse.de>
Autocrypt: addr=tzimmermann@suse.de; keydata=
 xsBNBFs50uABCADEHPidWt974CaxBVbrIBwqcq/WURinJ3+2WlIrKWspiP83vfZKaXhFYsdg
 XH47fDVbPPj+d6tQrw5lPQCyqjwrCPYnq3WlIBnGPJ4/jreTL6V+qfKRDlGLWFjZcsrPJGE0
 BeB5BbqP5erN1qylK9i3gPoQjXGhpBpQYwRrEyQyjuvk+Ev0K1Jc5tVDeJAuau3TGNgah4Yc
 hdHm3bkPjz9EErV85RwvImQ1dptvx6s7xzwXTgGAsaYZsL8WCwDaTuqFa1d1jjlaxg6+tZsB
 9GluwvIhSezPgnEmimZDkGnZRRSFiGP8yjqTjjWuf0bSj5rUnTGiyLyRZRNGcXmu6hjlABEB
 AAHNJ1Rob21hcyBaaW1tZXJtYW5uIDx0emltbWVybWFubkBzdXNlLmRlPsLAjgQTAQgAOAIb
 AwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBHIX+6yM6c9jRKFo5WgNwR1TC3ojBQJftODH
 AAoJEGgNwR1TC3ojx1wH/0hKGWugiqDgLNXLRD/4TfHBEKmxIrmfu9Z5t7vwUKfwhFL6hqvo
 lXPJJKQpQ2z8+X2vZm/slsLn7J1yjrOsoJhKABDi+3QWWSGkaGwRJAdPVVyJMfJRNNNIKwVb
 U6B1BkX2XDKDGffF4TxlOpSQzdtNI/9gleOoUA8+jy8knnDYzjBNOZqLG2FuTdicBXblz0Mf
 vg41gd9kCwYXDnD91rJU8tzylXv03E75NCaTxTM+FBXPmsAVYQ4GYhhgFt8S2UWMoaaABLDe
 7l5FdnLdDEcbmd8uLU2CaG4W2cLrUaI4jz2XbkcPQkqTQ3EB67hYkjiEE6Zy3ggOitiQGcqp
 j//OwE0EWznS4AEIAMYmP4M/V+T5RY5at/g7rUdNsLhWv1APYrh9RQefODYHrNRHUE9eosYb
 T6XMryR9hT8XlGOYRwKWwiQBoWSDiTMo/Xi29jUnn4BXfI2px2DTXwc22LKtLAgTRjP+qbU6
 3Y0xnQN29UGDbYgyyK51DW3H0If2a3JNsheAAK+Xc9baj0LGIc8T9uiEWHBnCH+RdhgATnWW
 GKdDegUR5BkDfDg5O/FISymJBHx2Dyoklv5g4BzkgqTqwmaYzsl8UxZKvbaxq0zbehDda8lv
 hFXodNFMAgTLJlLuDYOGLK2AwbrS3Sp0AEbkpdJBb44qVlGm5bApZouHeJ/+n+7r12+lqdsA
 EQEAAcLAdgQYAQgAIAIbDBYhBHIX+6yM6c9jRKFo5WgNwR1TC3ojBQJftOH6AAoJEGgNwR1T
 C3ojVSkIALpAPkIJPQoURPb1VWjh34l0HlglmYHvZszJWTXYwavHR8+k6Baa6H7ufXNQtThR
 yIxJrQLW6rV5lm7TjhffEhxVCn37+cg0zZ3j7zIsSS0rx/aMwi6VhFJA5hfn3T0TtrijKP4A
 SAQO9xD1Zk9/61JWk8OysuIh7MXkl0fxbRKWE93XeQBhIJHQfnc+YBLprdnxR446Sh8Wn/2D
 Ya8cavuWf2zrB6cZurs048xe0UbSW5AOSo4V9M0jzYI4nZqTmPxYyXbm30Kvmz0rYVRaitYJ
 4kyYYMhuULvrJDMjZRvaNe52tkKAvMevcGdt38H4KSVXAylqyQOW5zvPc4/sq9c=
In-Reply-To: <2fbe0d43-67c5-4816-aff0-c23ac1507ec5@microchip.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Rspamd-Queue-Id: 5C6CA22C7B
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FREEMAIL_TO(0.00)[microchip.com,ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	MIME_TRACE(0.00)[0:+];
	ARC_NA(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[microchip.com:email,suse.com:url];
	FREEMAIL_ENVRCPT(0.00)[gmail.com];
	RCPT_COUNT_TWELVE(0.00)[21];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[];
	TO_DN_NONE(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	DKIM_TRACE(0.00)[suse.de:+]
X-Rspamd-Action: no action
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level: 

Hi

Am 26.11.25 um 07:24 schrieb Ludovic.Desroches@microchip.com:
> On 11/25/25 16:03, Thomas Zimmermann wrote:
>> EXTERNAL EMAIL: Do not click links or open attachments unless you know
>> the content is safe
>>
>> Hi
>>
>> Am 25.11.25 um 15:39 schrieb Ludovic.Desroches@microchip.com:
>>> On 8/21/25 10:17, Thomas Zimmermann wrote:
>>>> Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
>>>> buffer size. Align the pitch to a multiple of 8.
>> I missed a chance to explain it here. :/
> I was wondering if it was 8-bits or 8-bytes.
>
>>>> Push the current calculation into the only direct caller imx. Imx's
>>>> hardware requires the framebuffer width to be aligned to 8. The
>>>> driver's current approach is actually incorrect, as it only guarantees
>>>> this implicitly and requires bpp to be a multiple of 8 already. A
>>>> later commit will fix this problem by aligning the scanline pitch
>>>> such that an aligned width still fits into each scanline's memory.
>>>>
>>>> A number of other drivers are build on top of gem-dma helpers and
>>>> implement their own dumb-buffer allocation. These drivers invoke
>>>> drm_gem_dma_dumb_create_internal(), which is not affected by this
>>>> commit.
>>>>
>>>> v5:
>>>> - avoid reset of arguments (Tomi)
>>>>
>>>> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
>>>> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
>>>> ---
>>>>  Â Â  drivers/gpu/drm/drm_gem_dma_helper.cÂ Â Â Â  | 7 +++++--
>>>>  Â Â  drivers/gpu/drm/imx/ipuv3/imx-drm-core.c | 4 +++-
>>>>  Â Â  2 files changed, 8 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/drm_gem_dma_helper.c b/drivers/gpu/drm/
>>>> drm_gem_dma_helper.c
>>>> index 4f0320df858f..ab1a70b1d6f1 100644
>>>> --- a/drivers/gpu/drm/drm_gem_dma_helper.c
>>>> +++ b/drivers/gpu/drm/drm_gem_dma_helper.c
>>>> @@ -20,6 +20,7 @@
>>>>  Â Â  #include <drm/drm.h>
>>>>  Â Â  #include <drm/drm_device.h>
>>>>  Â Â  #include <drm/drm_drv.h>
>>>> +#include <drm/drm_dumb_buffers.h>
>>>>  Â Â  #include <drm/drm_gem_dma_helper.h>
>>>>  Â Â  #include <drm/drm_vma_manager.h>
>>>>
>>>> @@ -304,9 +305,11 @@ int drm_gem_dma_dumb_create(struct drm_file
>>>> *file_priv,
>>>>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  struct drm_mode_create_dumb *args)
>>>>  Â Â  {
>>>>  Â Â Â Â  struct drm_gem_dma_object *dma_obj;
>>>> +Â Â Â  int ret;
>>>>
>>>> -Â Â Â  args->pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
>>>> -Â Â Â  args->size = args->pitch * args->height;
>>>> +Â Â Â  ret = drm_mode_size_dumb(drm, args, SZ_8, 0);
>>>> +Â Â Â  if (ret)
>>>> +Â Â Â Â Â Â Â Â Â Â Â  return ret;
>>> Hi,
>>>
>>> Was it intentional for this change to alter the pitch?
>> Most hardware does not need the pitch to be of a certain alignment. But
>> these buffers are possibly shared with other hardware, which sometimes
>> needs alignment to certain values. Using SZ_8 improves compatible with
>> that hardware.
>>
>>> The alignment requirement has been updatedâ€”from 8-bit alignment to
>>> 64-bit alignment. Since the pitch is expressed in bytes, we should pass
>>> SZ_1 instead of SZ_8 for hw_patch_align.
>>>
>>> For example, for an 850Ã—480 framebuffer at 16 bpp, the pitch should be
>>> 1700 bytes. With the new alignment, the pitch becomes 1704 bytes.
>> Many display modes have an 8-byte alignment in their width. 850 pixels
>> is somewhat of an exception.
> Indeed, but overlay-type planes are often used to display windows that
> are not the same size as the screen, and therefore potentially not on
> 8-bytes aligned.
>
>>> Please let me know if youâ€™d like me to submit a fix.
>> Do you see a bug with your hardware? Unless this creates a real problem,
>> I'd like to keep it as it is now.
> Yes, thatâ€™s how I noticed this change. I have an application that
> requests a framebuffer larger than my screen, in this case 850x480 in
> RGB565 for an 800x480 display. So I have a pitch of 1700 bytes. Now itâ€™s
> using a pitch of 1704, which shifts my lines.

Honestly, your application is broken. The ioctl returns the pitch value 
to user space and that's what the program should use. Some hardware has 
hard constraints on the pitch, so you will sooner or later run into the 
same problem again.

Anyway, feel free to submit a patch to call drm_mode_size_dumb() without 
SZ_8. The best value would be 0, so that the function picks a default by 
itself. Since you're at it, maybe also look at patches 4 and 5 of this 
series. They have similar code for other memory managers.

Best regards
Thomas

>
> Regards,
> Ludovic
>
>> Best regards
>> Thomas
>>
>>> Regards,
>>> Ludovic
>>>
>>>
>>>>  Â Â Â Â  dma_obj = drm_gem_dma_create_with_handle(file_priv, drm, args-
>>>>> size,
>>>>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  &args->handle);
>>>> diff --git a/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c b/drivers/gpu/
>>>> drm/imx/ipuv3/imx-drm-core.c
>>>> index ec5fd9a01f1e..af4a30311e18 100644
>>>> --- a/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c
>>>> +++ b/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c
>>>> @@ -145,8 +145,10 @@ static int imx_drm_dumb_create(struct drm_file
>>>> *file_priv,
>>>>  Â Â Â Â  int ret;
>>>>
>>>>  Â Â Â Â  args->width = ALIGN(width, 8);
>>>> +Â Â Â  args->pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
>>>> +Â Â Â  args->size = args->pitch * args->height;
>>>>
>>>> -Â Â Â  ret = drm_gem_dma_dumb_create(file_priv, drm, args);
>>>> +Â Â Â  ret = drm_gem_dma_dumb_create_internal(file_priv, drm, args);
>>>>  Â Â Â Â  if (ret)
>>>>  Â Â Â Â Â Â Â Â Â Â Â Â  return ret;
>>>>
>> -- 
>> -- 
>> Thomas Zimmermann
>> Graphics Driver Developer
>> SUSE Software Solutions Germany GmbH
>> Frankenstr. 146, 90461 NÃ¼rnberg, Germany, www.suse.com
>> GF: Jochen Jaser, Andrew McDonald, Werner Knoblich, (HRB 36809, AG
>> NÃ¼rnberg)
>>
>>
>

-- 
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 NÃ¼rnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, Werner Knoblich, (HRB 36809, AG NÃ¼rnberg)




From xen-devel-bounces@lists.xenproject.org Wed Nov 26 07:47:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 07:47:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172337.1497414 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOAFN-0000WP-8I; Wed, 26 Nov 2025 07:47:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172337.1497414; Wed, 26 Nov 2025 07:47:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOAFN-0000WI-5e; Wed, 26 Nov 2025 07:47:29 +0000
Received: by outflank-mailman (input) for mailman id 1172337;
 Wed, 26 Nov 2025 07:47: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=hTLS=6C=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vOAFL-0000Vt-TR
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 07:47:27 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 248a6187-ca9c-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 08:47:22 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-42b3d4d9ca6so5219205f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 25 Nov 2025 23:47:22 -0800 (PST)
Received: from [192.168.69.210] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42cb7f2e454sm38740426f8f.2.2025.11.25.23.47.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 25 Nov 2025 23:47: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: 248a6187-ca9c-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1764143242; x=1764748042; 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=zsieY7w1fxjIpAfjZ3y4sG5vS6LVcOFLLmGd+GcbgpU=;
        b=Po1/L0Dt/blRdiA4NyCkqE9KTEIL/rOGJnS1m23DvNX4JrdoIpIqLNeksoqr1D0dbM
         toMXgMR9tCoJb8x0/Viofh52w/oJ24BUukL1jlBeC++qnLsNJb0B0Y0bWhpDYTLWINfm
         jhEm3OiMTTPjMqo5rlXzVjWNNFdkf3XhCosV6yJSATy0abOPboytNZ1uXPFJE71ulAeY
         lk7dLs3wB+P7H2mImVLtWe4vvx0SPWJzrcAh3x02/NfjceqXX0lG1T0udmaM6ll0mmOa
         gVKI1HqLYN0izRO4QAL/AV8KRM7oJgyu+bcHuBsdwSWLpTsqjdeBKyyhpvVJzE4sC+Mt
         VwIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764143242; x=1764748042;
        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=zsieY7w1fxjIpAfjZ3y4sG5vS6LVcOFLLmGd+GcbgpU=;
        b=qJfq2LAPHvxyAqo8XuucsWYeZr3znkiOLmWpMmeSRjuY7qNIoiVvJOHT8weBt5kriJ
         7TUtIj4Y78a8xB0suRC+1Kg6tporRIFdoA5L2P/xmm1nG20WoUk+kmHf2tCDLIDmLb/F
         Vt6ldd7N2ok/Y9NL/yKDhhpO3gy0iv/uRarHzgRcLdWNTezuqpHj99qPHI/NEHh0hVcf
         oieO/EYN9c+x9p8Ubf5ylH9RjgULgyrZX91hUv8xWrmIOlNN0o7aOocHe4s/47ndkVtH
         vX+HjWTasvBW31Y5SeB2RhLmtPGbs52HCP4Gp+Ugfwj/m4uozJI5Ms1APe2ukWMHroJZ
         sa4g==
X-Forwarded-Encrypted: i=1; AJvYcCX4Y28DClFh5pa600isPbcmJXVbdJcYaAQfLnQKqoeX5Awwb5/s3oL6Q30lriBjQRkpwWptP7IAUOQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzOikIKpOwAgsOYZW3ZQFGm81bc3gAGSvhdgon45BcgIgT8oJJL
	E6j2t2n7H9uHMQEZFKZlSUCGDe068xXDYhLOflawj2AlMoO9dnfeIaXVDPpBFYYqEaE=
X-Gm-Gg: ASbGncuWJWKugkd5TuVgFcuNQG4WyIik2P15w6iqIc2Kc7WOfNLuEtlWA/Oq1+jlqzk
	S6MYvgP19zPYg6cJDHZU2Kl/2SiuJHqXbv4TjZvnbj5ZFO0BSGUnk1G53B+Zm5gwfpF4tLtQTXV
	xFs1v+dk67qTdPVAtk4pbcw52cOJGOxPPGZ+hCm2dryXb2f7DX0ctGdV8+1nJwyaEk7yzIjtItu
	3M6c82FJju7YKrgKcbXPKOXoeNhtwVUDL2uO+bMbXHVPIJy1lxDw2rotBKHiAuxOGR0s2n5BJBM
	Wn/TmmSp8WTdP5UnM2lSip1DCQYysKqtqD4VXtJBd3Is2q1MiSRGiml7fGrYE6pckKHG6G2g4y4
	5GP2jOBjYYpJJyvChQOnSxyAMl2P8jyylwJkQWL733YCV116Lp3aaK4Rvy3nkPf3uOhxFg7E2Ix
	J1+scY+3v3CTgEF+sng2UjpAqolZGkffpjJmTDegwUiCJ0g7IEuZdx2w==
X-Google-Smtp-Source: AGHT+IH2GXe3uOHdS28Ob+Jmg5+KHh4tMhOG/Rv+GpKOzuevWPWxYjVQGr2hWKaJgLZVaJdz6qu+XA==
X-Received: by 2002:a05:6000:2681:b0:429:c8e4:b691 with SMTP id ffacd0b85a97d-42cc1d5239amr18461831f8f.55.1764143241928;
        Tue, 25 Nov 2025 23:47:21 -0800 (PST)
Message-ID: <2bed91d0-8574-42ee-8d7d-e85f3ae40c1f@linaro.org>
Date: Wed, 26 Nov 2025 08:47:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 00/15] Error message improvements
Content-Language: en-US
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: arei.gonglei@huawei.com, zhenwei.pi@linux.dev, alistair.francis@wdc.com,
 stefanb@linux.vnet.ibm.com, kwolf@redhat.com, hreitz@redhat.com,
 sw@weilnetz.de, qemu_oss@crudebyte.com, groug@kaod.org, mst@redhat.com,
 imammedo@redhat.com, anisinha@redhat.com, kraxel@redhat.com,
 shentey@gmail.com, npiggin@gmail.com, harshpb@linux.ibm.com,
 sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org,
 edgar.iglesias@gmail.com, elena.ufimtseva@oracle.com, jag.raman@oracle.com,
 sgarzare@redhat.com, pbonzini@redhat.com, fam@euphon.net, alex@shazbot.org,
 clg@redhat.com, peterx@redhat.com, farosas@suse.de, lizhijian@fujitsu.com,
 dave@treblig.org, jasowang@redhat.com, samuel.thibault@ens-lyon.org,
 michael.roth@amd.com, kkostiuk@redhat.com, zhao1.liu@intel.com,
 mtosatti@redhat.com, rathc@linux.ibm.com, palmer@dabbelt.com,
 liwei1518@gmail.com, dbarboza@ventanamicro.com,
 zhiwei_liu@linux.alibaba.com, marcandre.lureau@redhat.com,
 qemu-block@nongnu.org, qemu-ppc@nongnu.org, xen-devel@lists.xenproject.org,
 kvm@vger.kernel.org, qemu-riscv@nongnu.org
References: <20251121121438.1249498-1-armbru@redhat.com>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20251121121438.1249498-1-armbru@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 21/11/25 13:14, Markus Armbruster wrote:

> Markus Armbruster (15):

>    hw/usb: Convert to qemu_create() for a better error message

>    hw/scsi: Use error_setg_file_open() for a better error message
>    hw/virtio: Use error_setg_file_open() for a better error message

Queued these 3, thanks.


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 08:17:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 08:17:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172350.1497424 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOAhq-0005I8-Cm; Wed, 26 Nov 2025 08:16:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172350.1497424; Wed, 26 Nov 2025 08: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 1vOAhq-0005I1-A6; Wed, 26 Nov 2025 08:16:54 +0000
Received: by outflank-mailman (input) for mailman id 1172350;
 Wed, 26 Nov 2025 08: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=wUbM=6C=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vOAhp-0005Hv-6h
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 08:16:53 +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 3fde831b-caa0-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 09:16:47 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB5838.namprd03.prod.outlook.com (2603:10b6:a03:2de::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.11; Wed, 26 Nov
 2025 08:16: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%5]) with mapi id 15.20.9343.016; Wed, 26 Nov 2025
 08:16: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: 3fde831b-caa0-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=px1jTPRgQxohkjDYTbc3bYyK5hVoFC662fBth/zyhmHF8t1WbvSlBM48NDcP3WwAWoYkso2hsQTJfJKZ30FiSu9AAkWwA5mStKvI6+50VtlvKZMVgdONZnLbUDcYbUHdNxaIxS5IngAQb54T9LhtAi9M8zGZaqL6IBUPt+tExOOeDD88GHO6kESAB1G4Az+c6dprS3Js42NryLClalJh4QdRkpm67Fr+JI2E0QxKCQrL7RiuSvsO0TuKz4UOuIIfurSIlrUYpUVpHIEh1XfVGAXK/uSFUxGigVJLK7jp2pEQz3N/b0+psJN6pWpsXVfirHn8XzXusAOtAdpWiUhQTA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nN9FU3YhwW41N/ZD5R9CGRBkchKUcXTc79nVWn3IZwQ=;
 b=rNkDzL7imVEZ02SvAnSdEz22qeoL493pA3ihy3CHxEVi8b98Nq5SBsniGkJL/oASm7RYWV28rCkmDhEDOlRYiNyKIKyZvvSrPGTaGvYRZMa/D/bdZ/ZeHhb1YBFqqMLXsEUhT8fyQuWzHraqrhLQaWpk45i2scv3slX1oYa5OLQfQzgeIq1NllJ9RGnfeZZn86cUviizpVKCrg5YfWodk03kgctb65VvE8RJoa5TNf6OM07f+aLuodvUBq0hWJ91SGTOVumcQ5MwOO7SIBTlgp5JOWuv2N5vPJL8euAWDM4qIMkjAeQOBZlic5I7c1XcoSJYz7RVarfmdsBfsHRHAQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nN9FU3YhwW41N/ZD5R9CGRBkchKUcXTc79nVWn3IZwQ=;
 b=pGUax23u21zaiDE8Z3y74oBDlmXwlOvUqcitpMJxK4Y4hLv/bAiLwKvxcjt5F5G9FqdiC/w7o0OISSqHP453siH8yDokVkUdaYgRgFD+sqAgOfDs/h2019HooQNGkUiBpAwdW4hLeakzvBnJYSbrXwE/Ykb7ZTr+DchWGbDMVt8=
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>,
	Saman Dehghan <samaan.dehghan@gmail.com>
Subject: [PATCH] xen/linker: be more selective about defining LLVM_COV_*
Date: Wed, 26 Nov 2025 09:16:17 +0100
Message-ID: <20251126081617.45401-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: PAZP264CA0209.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:237::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_|SJ0PR03MB5838:EE_
X-MS-Office365-Filtering-Correlation-Id: fc2ef1d9-77c7-4b30-0622-08de2cc42289
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?OTUvbDRUWWlVeWJYTU4rbzlkRG5KT0d5T0lFbk1GOGlaeS9DZlB3Vm1WeVVh?=
 =?utf-8?B?VjRWbkRBQnR5djhiMWIrKzlFa2Y3RmQ1ZWJ0bVdxV0hSdUpJd0dLRzZGdk52?=
 =?utf-8?B?YWdUb0ZWbHpJV1htdkhEdzlVdmx2MGRxTk5zZWQvU3lwcXM5VVY5ZDlCRk4w?=
 =?utf-8?B?NHZVTU03MTV4ODB5Ym01K081VUdyV21Nc0g1Q20zajcvdzVjRWJaS1RYL0Fw?=
 =?utf-8?B?ZEw5M1VzekxQWElZTllVWmEzdXhzYVNIQU4xWmxqREpWSDErcDFSVU0wV0Vh?=
 =?utf-8?B?d0p6MnFwTXhRMlNlbEJjbVdjdWQ1ZmNGcDJsNDRPRFVZdVRDVmF5aWUxaHFv?=
 =?utf-8?B?TXIxVlBLT29PdEQ0UGp2anVlZFRnWTIweXQxb1RvUzdmSnovSlBnNXJPSUY1?=
 =?utf-8?B?T3ZHQU5lcTNLS3B6SHVqSjc3S2N6NU1NR2tnL2hqTzRhSkRHdVRhd2hBWGpE?=
 =?utf-8?B?bnNCK081REtMenFnU2JTWHJmbzVxWlMrTS91Y0NEd2t1UmxZL3RSK1FhQnd0?=
 =?utf-8?B?WWVXVjJzUEJ2TTVFUUVDLzlkNkw5K0d3NDJ6YWJ6TlN5dnFQdU5IdkZKNTNO?=
 =?utf-8?B?eDlhSWRQNkV1RmdNVWZRT2NPalJhakVZS1FzOVI3MldsODc1SVg1anJVUGNL?=
 =?utf-8?B?d1N5eU5kbUJ1a3FNWnp0djFuMVpjaG1TaVZaRHdJMkZBV09qME82UTQ4Nkpt?=
 =?utf-8?B?MVArSXpjNXRtM0l6dUNJUGxDZXY3Y1d5bFR2R1gzVURad29OMy9OYzZtMFZ3?=
 =?utf-8?B?WENuckxPZTRIdVl4TXFBNVdiU2VqamliMmZjSk9LVVpaZ2dpd2lUMVNmczdm?=
 =?utf-8?B?QU5acncrTHh4U3F2bUt4ZGtLZHZXL3lWUnB1Y1FrdzhZd09ML1dkZ2xFQ0th?=
 =?utf-8?B?TXdkcUIyU2V0dExkdUl3TTNzK3FjM0NDWTRncWowQzZlbDZjSzFCMEJucUZC?=
 =?utf-8?B?MEJReHZFZ3hFMzQrSGUzeVJwUTZGTWQvUXQzOFVwZiswNE9DenkvQzllbWlF?=
 =?utf-8?B?bTNEN3VWQUpUVS8wOVM0MFpkQ2tzeUZDK3lwQWpBNmxqNzBVQjQ2OEpDL2J6?=
 =?utf-8?B?cmg2eUJtVE90aHVUUWQ5dFhqQTBsL0FkWTlHRkljYnd6ZXRTRi83bzdUeFZi?=
 =?utf-8?B?Z1I0ODFwYXNsRDR4RDFhTHlFVnpQc1daOUlINFVpcEdtekU4VXlidXB3eS9G?=
 =?utf-8?B?d2JTaG1YeU8yeEhCRkpJS0J0bGhuS05XS2JVb1EzMzhkWjFjSDRXRTRhSmkz?=
 =?utf-8?B?WU1EZ2NXVTQxQ2JRMmNoTnJNeDlDeDFISzZucUdiMWFqREdtaDE3WGlxdUhU?=
 =?utf-8?B?U01qQyt0MTc5UmEyQURhVXpkckMyMnkxNGpvSWRlVXFRMTNIcjJsR242RlpS?=
 =?utf-8?B?WWx3WkNqZGRpUmo2QzBXSnBVaUZ6Q1ZLU1NMT081cXd6T3o3SXBrMjI3bUFm?=
 =?utf-8?B?cEhXajJZWkNOemFNdisyTk4yOFJWdytBVklqWFpJMG9MRXhMZWMrUmVieE0x?=
 =?utf-8?B?a1BEK0dSeWk2QVZOdTlnZll3d3pyL01rbm0va3FzcDc5NTA2dGJNZlZmem9q?=
 =?utf-8?B?UERHQXRQdVdVNlZZSzRxNmVkU3FCSEI2VlRqTDNKVWdXUGErRWNPK1ErOGlv?=
 =?utf-8?B?aFBzNGtPcTZsMU92WUNsSXhOT0RuVnBZa2NlZjZPekJaZWxlNFh4QkFQUlRy?=
 =?utf-8?B?c1hrcTlUQm9Bb3djVkE2cVd3M2tVaVlUODR4bTc1eHBJZ0J4M1k4K1ViMUxH?=
 =?utf-8?B?N2tOVTQwRyttT3hiVk12Q0hCWmxMaEg3OE5kMU4zNmpmTC85R3FRM09RL0c4?=
 =?utf-8?B?QytqeTlybkR0bXVRNkZ6aWhPQzlWbFM3WHpMQkxYaWltM0VicmUyWVdrMzZY?=
 =?utf-8?B?d3Fqa2ppdktQcE1rU1Z2dFNnL2hFV2RFU0JBY01XaGFHZE9KMDBGQXVodyt6?=
 =?utf-8?Q?ML+lgxiSlxZIYW8ck3ffsgHa7lK3JAQ/?=
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?bVZCWGFWbzFnOTVscDg1dGxiWHJVOVJUQm5OOSs5T1BsaENWUmVSNmRLY1ZK?=
 =?utf-8?B?M3RocGJwREVPQWJWNEh1R1dUbnBOckRSQURHT1NsbkszMUtOcEhvUVBhQlFG?=
 =?utf-8?B?MUdFeXA1Qm5FSkM3SWtQTHplejJxT2hQczFqSHF1NlVFNXdnM2NxUnV4TCt0?=
 =?utf-8?B?QysvWHdTMkU1ZGRCZS9iZ3hJMUIwbXIrWG5yRWducjNGcWhBQmpKbXZBY0kx?=
 =?utf-8?B?VUhKTnNtTzRwZWg0ajRZaFdZcFBxa1Y2S3hBM1VWYjZ1ZFU5dFRYZGtqTktr?=
 =?utf-8?B?QVNVMmxQbVRNOW5FYm8zamMwQVg3NHBlMWFzem9SR2J4VSsyMnRPbXBXVDhR?=
 =?utf-8?B?TUpBWVh2alFROEV0MVkrNjJEZUFyaVlBcTAweWNtT2dLczlmdGF3eFBCRXZK?=
 =?utf-8?B?Sjl4ZDJzc3hlNzFLNFp1L1JEeW1uWFFTb3E4M2ovc0crSDBIRnlCMVpveFdh?=
 =?utf-8?B?QjY1QlpOZGJqT1o1NU9zMytXYWpTU2ljWG1DZC8rRmwvdmpHdlNjS3hGQXNy?=
 =?utf-8?B?aDN2Mm0rVmdmVUtiOElEU0RXYkNpakczUElxMG5tbG0xb0s4ZG12WVJhTWJI?=
 =?utf-8?B?bHgzdytyK3ZqR3AvVWZFWXZvNVh1YU1XSURnRzVFVFhGb3hjWVlBNkl6UWtu?=
 =?utf-8?B?algwZkN4TGJYVjFwSi9JT1FTMytCeXJldUxjRnZOVXpmSmZPVFQ2WDc3OUpY?=
 =?utf-8?B?NkorTy9FR25jVUw5Yk53R1FTY1BTTkRZZkE1WkFRUGNUcUNBUjVGajIrQnFM?=
 =?utf-8?B?dVhFQmEwSSsxb3hCRWxDbEVoY3A0Nmk1RTJLbjFERFF3RjBJdnk1K2RKWlor?=
 =?utf-8?B?R3VUYWdNMVo4SmkveXlxclhKV015bXdwbEtFb1hzb3pBNXBOemV1eUVRRXZz?=
 =?utf-8?B?QU5ldmtuc2FJdC9yanpoOFV6dU5GajlBbTRqdGsvbGFvamZwTThseXRBQ2h2?=
 =?utf-8?B?Q3UwRFJlN0JWMWhDVzlSWnlXdDhzVVZ2Rk5hd1VlTE54V2VsRXZBd3ArTFRX?=
 =?utf-8?B?QXVXeER3My9sRFgyLyt3Yi8wWU9WWWhmWVlIM2RGL1VYOGZ4VTFiRGtEMUtt?=
 =?utf-8?B?RjZyUGJ6aGJRWkFJUDBSZmtac0xvRmFuYmpPWlBLbjlYYjRhai82Rzl3NVds?=
 =?utf-8?B?dEt2RXhlYXY3UTVUVW9ETFk2QmVsb0pZU25vbkdlQzRJRlp6YUE1NzI0c2lE?=
 =?utf-8?B?UGJYZkNiR3doWHVjczJLdkpOTGJraHkva2lhckUxM1d2Ly8wSy9IUktEZ0xw?=
 =?utf-8?B?NmVWb2hGTjlwN3J6U0Rvc2w1VE5mM3VmOU4xQVVyUlE4dU16ZG9LUm40cVZU?=
 =?utf-8?B?UzBzUlY3dE1CVVFQNEE1NHJWOC91VlNBUjQ1N3lQYk5INUM4NFU5YkNtQ3Q5?=
 =?utf-8?B?ZlZlVXZSMEMxRUVwcW5GbnRmc0llVHk2MUF3blpuaHFlTWFRMmY2c0JFS0lT?=
 =?utf-8?B?eC9qNUN0WDBsS0E2dXFoZU0rTFRWTm5VQ0hJSHBpaG54d05rdjdyeThjbXhU?=
 =?utf-8?B?K1ZpMUxYZEdiZVJhSmdvb2l1VldCaTdnQnpHZzZ5TC82OWJCL25OeG5GV3R2?=
 =?utf-8?B?dDhENHFiYmNKZTZIRWJoZFZ2bWNpRTJBdE4wa3lUTnR3QTFHRGRTaEpteVda?=
 =?utf-8?B?RDFaYmFrVDB6Yk9KVktnMUdoWFNOYjl1UWIwYVVwSkZCMUk5ZklPRDErU0VB?=
 =?utf-8?B?TU5Hd2x3Yk9walFteU1WMzhrUnI4RmhhMFpkZ0R2TTZCUUtSSURsSjBzSTJi?=
 =?utf-8?B?UjFvUWkvUmVIaEdBbVMzL2xqZ3hWLzhpb0YrV2dRMDlZOS9sWFF6NDM1YTRa?=
 =?utf-8?B?QUZMN3R2UldhNUJMdFdVR0o5OWxjZThuQmhoSjVab1AwT1ZDT2Vqd1AyU2Yx?=
 =?utf-8?B?Ukdlc092bVZ4aGRBV3g4NThsNjdpb09SUUZUY3lydnlzUGJncG55QlZ5VGtl?=
 =?utf-8?B?VFVDTnl2eFZhT29wVUY5em1zUmFQazBPRUVNVUdWdW9xUDhDS0JZVjBYWDNn?=
 =?utf-8?B?TUhFTWRBc2Z4VVd6eEloN2tUTU9XVXFSWFhadnd2VFdrS1FsdFhGV0M3R3Bx?=
 =?utf-8?B?b29HcDZlRVNPc2cyQXY5L3RLcUt2bWJNRWJ0Qmw0UHFFSU8vV2hOWThuQWFp?=
 =?utf-8?Q?mGXb8aJ9bjTOwm8OgGifkZhXq?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fc2ef1d9-77c7-4b30-0622-08de2cc42289
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 08:16:43.9748
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: liJpVIPKWoDXj0EJ7fjrt1th+FAJAj2zS56QD5R3/WjstkDgXYRNV9ZhgBOheY3Z/bqxdZR+G4N7I3rUr4KDag==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5838

There's no need to place the LLVM coverage sections in the linker script if
not building with clang, or if code coverage is not enabled.

No functional change intended.

Fixes: 186c02e85961 ('xen: Support LLVM raw profile versions 5, 6, 7, 8, 9, and 10')
Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/include/xen/xen.lds.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/xen/include/xen/xen.lds.h b/xen/include/xen/xen.lds.h
index d80c89595979..f54fb2d15290 100644
--- a/xen/include/xen/xen.lds.h
+++ b/xen/include/xen/xen.lds.h
@@ -81,6 +81,7 @@
   .stab.index 0 : { *(.stab.index) }         \
   .stab.indexstr 0 : { *(.stab.indexstr) }
 
+#if defined(CONFIG_CC_IS_CLANG) && defined(CONFIG_COVERAGE)
 /* Clang coverage sections. */
 #define LLVM_COV_RW_DATA                                   \
     DECL_SECTION(__llvm_prf_cnts) { *(__llvm_prf_cnts) }   \
@@ -93,6 +94,11 @@
 #define LLVM_COV_DEBUG                                     \
     DECL_DEBUG(__llvm_covfun, 8)                           \
     DECL_DEBUG(__llvm_covmap, 8)
+#else
+#define LLVM_COV_RW_DATA
+#define LLVM_COV_RO_DATA
+#define LLVM_COV_DEBUG
+#endif
 
 /*
  * ELF sections.
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 08:21:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 08:21:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172360.1497434 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOAma-00070R-UC; Wed, 26 Nov 2025 08:21:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172360.1497434; Wed, 26 Nov 2025 08:21: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 1vOAma-00070K-RX; Wed, 26 Nov 2025 08:21:48 +0000
Received: by outflank-mailman (input) for mailman id 1172360;
 Wed, 26 Nov 2025 08:21: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=wUbM=6C=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vOAmZ-00070D-T5
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 08:21:47 +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 f1368a04-caa0-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 09:21:45 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB7049.namprd03.prod.outlook.com (2603:10b6:a03:4ee::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Wed, 26 Nov
 2025 08:21: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%5]) with mapi id 15.20.9343.016; Wed, 26 Nov 2025
 08:21:40 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f1368a04-caa0-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SPhsl+vYeVKovEx9YAgB+ZCikOJ4/JAJ8HJebyj4DHSoZzG7MP07aMo+3tg8cYzvP1sVRI8j9y3lqLRzcjQ4FRVUa/PoRN8zvyFrhZEHdNwLN2/ZzDk0fUCMfpPgIu1MkVIdMWMtmJCSTbu0wNHn4Q1mtQ44mcu6h7iDNmCEIRB2pjVDKUJIEoBBM+j9T1r2WkOMOABErbgLx/1VDSKDBiY/qexOJat/XGB2jg0GCPDl6/6tYB8Td8TTT/c1PFQW6droMWbuhgTQTfYoK2WcJNUNk/tsbXnAwWjdK1Ved+YLGiZPjK8//S3C981Y69rEL3YiVUzh0OJdOiHfIPP9lg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=oBrEMZyPCzdcrGs9KMEnEgCG0qm2+YPg6/26ldf2PR4=;
 b=YGQ3v1w2pP/Vy6uLXhfNILiojmGK/kYFy4USsl+sSvZbDh1Y2uD7ZL0ca+nlyUWkRRPQdpfNPjTPbbd0YWyAvl1YAWGmRbSUdjZzDRoAIbdUmsvW48EB0b2CiEo/QLLIsxXVmWCl1CJ9q8e54u7KqU4Dt70ac/3NR+VLhzI5ppqPDTsDKzrpRtjWZeIfQFrtqL/k/ayyVFjbEF69KN1psAgzyGSKkCvX4F54nJOi42AWVuJ6n5D7lxxngTNovwB/nO+4JUZVi2+7qtXs1ljOGH+PAYhuD89AIJs+57DMsw6d3ptXiU4pQyXOe8bpzgerWcmld92odoZ1lzRBxI5n7A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=oBrEMZyPCzdcrGs9KMEnEgCG0qm2+YPg6/26ldf2PR4=;
 b=ninr3gYl2GFCf2iTsxFNbQg2+UARM2usvypW6yJ8hcMUmkH9umT7KxTjH5R3QH5u7c/9MClkzxxhSiQkSJM9FUJYKuEMqwjb9W6phyaczamveK8hY7ONyVL5P9+rg77tar7X1PNK4/R73jdQrV5VSzz6Z7vwobGbuZKSfOZQ3M4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 26 Nov 2025 09:21:37 +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 2/2] symbols/x86: don't use symbols-dummy
Message-ID: <aSa4kejiYVw1P_0z@Mac.lan>
References: <2d7602ce-3665-4853-85f0-c0201642193f@suse.com>
 <3618c458-d9ec-4cc6-a800-0741ade461a1@suse.com>
 <aSXpJ3yqSWfNgElC@Mac.lan>
 <e23aa2e1-078b-477b-9176-28b4babec9e2@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <e23aa2e1-078b-477b-9176-28b4babec9e2@suse.com>
X-ClientProxiedBy: PA7P264CA0525.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:3db::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_|SJ0PR03MB7049:EE_
X-MS-Office365-Filtering-Correlation-Id: 31f319bb-bf67-44ab-2b93-08de2cc4d346
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?NVJ3VitjZ0lNTnJ3Y3hlbTFSdFRKOVc0MHZ6U1RVVHhRRmV0dE16QjF3MEE1?=
 =?utf-8?B?R2ZxZjFEcUw5RWpSZ1RGZ1h1UGlGSXYxdVR5Ty9RaytOWmdpUktOU1djKzRW?=
 =?utf-8?B?WHVPNWlBaU1yZVZjdUh4RmdsdUI5WlBsUEVrbk94cnFKeSs2SGFhSkVmcUpt?=
 =?utf-8?B?WTUxbWFoaHd0LzNvOXNPaklqVWxraVBXTkorc1N3TjE1TmhpWmhtMmFpRWdt?=
 =?utf-8?B?NGQ2c0xWQ3JnZEYwMElFdWhvcVF3dmN4WGRtSk9aN252Y0hnd1hLTm8vUmU5?=
 =?utf-8?B?eUpMNXIwbnVReWZzVWhQYUE0M25yZjhsSzBQR25TSksvSzZIZ0s2RERobGVr?=
 =?utf-8?B?cXdnTWh0UEtwOVpub2VKWkNIcXc5TzVFd0VBbStHNW1zaGtBbHJRSFlnY1JG?=
 =?utf-8?B?YkZlZU16WW51SlRmT3VZYVV4SGlLSHd2VzhBb3dPYjR6TEFCWEZSUmNNOUFV?=
 =?utf-8?B?dG85SllqUWV4SnIyUi9UWGZ2cmJoU2tKQkNuUTFLN1BVZWR2UWoxRVRzeENy?=
 =?utf-8?B?aHQwaE1XMW4wa2NoNis5L1dxRjhlV3dUUkJ6ZWxUSk1jbjlTUFBGVnEwaVBo?=
 =?utf-8?B?NWxIcUV5azJ1bDZlVGYrbktNdVp1RHVBMXVkWnJEVnFONGlqSlNMdmtZTzBH?=
 =?utf-8?B?YmFncjViZHBySDJpSWlSZVN3Q0VHd3NDZmRkUEZwYllVNkRhZm9CV0pEbG01?=
 =?utf-8?B?Z2s5NEpWTGF1YTBTZFgyMW5MUG0rUEdEZkxXYUszMzdaVmViM25UU3B5OVZl?=
 =?utf-8?B?b3g1aEo5aFdBOUtabGdpSmpmM0J4dDJuU2dMYnVlaU1Fc3g4UTdmZFhYZXVq?=
 =?utf-8?B?UWtMM2ZBdHZYMW9OV25vSWd3OExYUXhYeWZ6S3p3clViYnpXRURNUXhjV2h4?=
 =?utf-8?B?YUxvWXk3VWFwOCs3OTRCVkFlQms2TFBGTFhaVjFPbVU3SStPUHdiVmplUUJ0?=
 =?utf-8?B?M0tpSkdZNWtML1FNenpvd3cwWkRNWWIzMDY1YTFFT0ZiM3I2Skt4Qkk4dENm?=
 =?utf-8?B?bnJrSFMvMFc5a1V3MmE3RE01OGpqOFBpQ1hoSDl6UmhwYnJ4TmZGWmV6UW5r?=
 =?utf-8?B?dEFUYVF4UUNKN3NzTlB3S2FXVGplQS9TVGxpbmdSajJQM0h0M2xoNFJpVnBv?=
 =?utf-8?B?VmdIUzE0dVNGQ1ZHVmNzVnJvMHE5UkRPb0lGZmo0ZWhQTHh5S1UrRStGNnBl?=
 =?utf-8?B?Y1owRnR5Vyt2TkhNMDVyVWlhQStBSjZwYVRNWmUzNU5VL1g1L0lib1N1YTBo?=
 =?utf-8?B?ZXEvQ2lJWkdHUVlyZXlCWGl6Y2dtU1J0dk1SajBUdXlzNG05emx3TnhEVWZN?=
 =?utf-8?B?cDgyVmw3S2Q5cWYzTGNFSlAyUCtWS2F5S3J1UGJKVkFEWjlVeTZmcS9iN1lv?=
 =?utf-8?B?eXpGd0tDbURyTDRkRVBpKytxZlg5T3ZuN1IvaEx3OEwxVC9yU2pGaXlMdERw?=
 =?utf-8?B?Tm9vK0s0N1Z3bnIxNWlnczFXK2krWm5vTXFZRC9zMktWMkJ6d29ibFJURENu?=
 =?utf-8?B?TjRFY1E0WGJYOUlxZjgxa0NkMHhOR2hQeGlTUDVXR0FCbDUwV0dPaW1OdFI0?=
 =?utf-8?B?L1A5Vi91T2tibXk4cUxCeTVCOGlwVXpUNkpaMWlHKzJ1NXZaUm5nSUgrdnRv?=
 =?utf-8?B?SzhrUVJNazdLdHl2MVVQYXJ4dDR0RjVXd0NyU3BPUkFneVBvTFlMc3dvOXFz?=
 =?utf-8?B?QUIwd296NWRFOWJmOFdIQm9mcnlMRm55YjZvZzhUdjY3Q1dhK0ZoNC9rN1k5?=
 =?utf-8?B?LzJpWE11T3ZJNVJTemVHTjBvTWxQRXpLUHlwb1RhWVNlWGFaN3VuYStsaVZt?=
 =?utf-8?B?QkRsaHZWM1I3Wlk0ZnBrRU9PNU1tM1JOaDU0VWM1MGFtOGsxRGRIcWxKazR1?=
 =?utf-8?B?NjhGTkNTU1JZRFlLTkJLT3BHWkJpUnV4ZHgydTBMU1AwN21oWlkzY1FSVkpn?=
 =?utf-8?Q?Rfak3XMw2bEXnLGGZbxhJSa8yWnJvNNB?=
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?cGRMdktualNGdGVqbWw0YmxsOVBPNlQyckZHUU9iempvK1pwSWJGcElZQUgy?=
 =?utf-8?B?a3pkMW9oUjVWa0ZIQzk4THFQeG9zL1JVYjVHWUMxMG52U05kMlRzRmFXUXVn?=
 =?utf-8?B?aHN1T0JrbDBTMDNQc0Y3dGhWUERVRDVTd3VObWl0UjZjam9YN1R6TkFWZEdF?=
 =?utf-8?B?QVFramVhRENWRDNybGM4QTI1aC9aVUJOT1hnbTZPemxoOEJXbEFYRVFZM1o5?=
 =?utf-8?B?WUhpaGQycXY3Q2VEMTM1d3JzK0gwN3doRm1qRkdLVzF2WllwWDdaRW54SEJJ?=
 =?utf-8?B?SjNxU2x0MDZMMll1eUY2L0ZOZzZGOTBUVnJzWjZYMzlRR290M2gxR0ZJcjdQ?=
 =?utf-8?B?NGhNaEU0MUpxVHhzc256QUdlK0hYMTJwVk1JS2s1ZEpNS1BXKzd0SkJqQ0xr?=
 =?utf-8?B?Lzh3ZnJTS243ZjdiQjBKTUVyemhCbjZLVzNZa1NUbDJPTWdvQytxNWFZRkNC?=
 =?utf-8?B?RElHSHlyMDRqWDB5eTVOS1o1bklDRytTWnppSjVoNUVIV0pHWWV2NnFYK2hR?=
 =?utf-8?B?TEljOUxLUDUwWkhFZXpEWEc5Q3UxMkRwQnh2WjJhUDJrVHJLNnJLbnBLdlcr?=
 =?utf-8?B?cCtnZXVBcGUyM0lta0txeXR0cVZCL2NhQ1dieHp3MlRJZlRHdXdVRGZhVFRH?=
 =?utf-8?B?dGNRaGFpNzFDa0h1WTV1VmdQSEtVRkZPTVprZTdTc0pzZXFGN1ljdDNuWVZp?=
 =?utf-8?B?M0tCU0YxOW9PYTdGaUFpRmNTVHZjcDNITi8rVzV6dGdpT2NXUytrd0FXeW5p?=
 =?utf-8?B?cFJvdkt1ZE9sZVpyMnhZekZWWGhMUndlQytRVW1MSzdGT0NXZG1iRUU2clNn?=
 =?utf-8?B?cEZyNDBqV0xDdEw5ekcxVERIMGoxMzh2YkRiUURjTDZGdVhoZFAzSUZ1V2tl?=
 =?utf-8?B?VlBxWndwRG9DUkVydkZnTHdqUE5hMHFnUi9URS9RenQzc3Z4NmszK05zZlBj?=
 =?utf-8?B?cHptTUFzQ01VV0tDTEJUYVRSUWh6T3FvSmNmZXRSaWRISjVoYkRaVGdlTWJE?=
 =?utf-8?B?bXJiMzJHUTN5d0ZjNjYvUEFxank3UVVwMFc5eU1rN2t3djlVbmF5dHZoRXRW?=
 =?utf-8?B?M0VwZGhENUg0VmpQalllN1EwMGs1RUFZYXVXVnhHK05jL1QzWnpQWUhnTFVq?=
 =?utf-8?B?M0pUL0tBVEVoRVhySm9tb3FFRDUyU0NkNSs2K3ozTUJaQy90cXlZL1J2OU45?=
 =?utf-8?B?SDFzY1FYa2pVb2dSWXdwY0tvOE01MzZIaE82TmczQ245RjVyYngrRVVyUFAz?=
 =?utf-8?B?OTAzNG5mcmVGR0EwaEJmZ0tmcmFlbU5iOVhnVWg1T1ZDTVlmdWkwb0h4enc1?=
 =?utf-8?B?N1MyWWtKUGRkQ3JwVGFOelFXbmhiVmY1bkxIS0xDVWRhaHhjVVliNlBURU5J?=
 =?utf-8?B?cWQxeU45cTBmTHYwL2ZaS0xqRkI0RW45Qk1QTFY2Qmw5UFdRNWtXSlpFUzNZ?=
 =?utf-8?B?SlVQeldBY2JYN3BhbjZaOSsxNnhEekN6NmVhb0pydTJEeHNrOEhlbjlCNlc3?=
 =?utf-8?B?RWRJYzY0QktjODBmeGs5N0ZPcmdmckZpYnVFSkozNFdYcDZiVUFWdWhGc0pZ?=
 =?utf-8?B?OGFUMmY3UlpDay9MNW5JbytpZ3dPMUFJUEdQY2RtSS9HR245QVk0ZjJaYXZU?=
 =?utf-8?B?bGNjZWNFcVFQZFZtN2twbFpYMTAxcCtNK0VMNldwbU5TOWhHVk8ra0VKakVC?=
 =?utf-8?B?Y3grcVpSWG1ObkI4Vnl0TkxYMUFhcFQzSWFJK3JLSUgxVXdFemZOem1wdlZa?=
 =?utf-8?B?aG9UdjYyanVOV1lQelJZL0Mxa0p4bkpTaHlJNXVZMzU5K3ZMUzM0OHU0NjlO?=
 =?utf-8?B?RWRWQ0RvOHcyazFqVzg3YlZyWmQxZFZmZE9FdU5idUk5SWdYQTVxcDFzT210?=
 =?utf-8?B?TW1ZNEcvNmU0SHBlOWxSbnhOZnl2SFQvS1hOTlNYdWdlcUhzaW5ZVmY4MHcx?=
 =?utf-8?B?SG93R3k3YnhZc1BKeU9Jb1NEd0VvK1VnU1hkQ250eXpuTjNvS3I4QnA1Y0lX?=
 =?utf-8?B?NGNIbGRYUnBiM3V0dy9SQVB3MUhwdVdYcEdBb1NjTlFyTkxNeWljZTlFMHZ4?=
 =?utf-8?B?VGRHV1JCWTQwZXJyNU5LR0YydUxMbjNJRGVubEVPNUlMYnZ1SGh5L2VRdFdj?=
 =?utf-8?Q?TqSUJfY/7846hiAGWMI1NMppM?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 31f319bb-bf67-44ab-2b93-08de2cc4d346
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 08:21:40.4928
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ms7B0sP4+hDzO9FL4s2waq+c9BZGb7V0XBpTuNKIHpCtv+aYTKxriDau9AIBI2Zw7dEMgcI1VXVIYVf28C4F7w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB7049

On Wed, Nov 26, 2025 at 07:21:09AM +0100, Jan Beulich wrote:
> On 25.11.2025 18:36, Roger Pau MonnÃ© wrote:
> > On Tue, Nov 25, 2025 at 03:14:27PM +0100, Jan Beulich wrote:
> >> In particular when linking with lld, which converts hidden symbols to
> >> local ones, the ELF symbol table can change in unhelpful ways between the
> >> first two linking passes, resulting in the .rodata contributions to change
> >> between the 2nd and 3rd pass. That, however, renders our embedded symbol
> >> table pretty much unusable; the recently introduced self-test may then
> >> also fail. (Another difference between compiling a C file and assembling
> >> the generated ones is that - with -fdata-sections in use - the .rodata
> >> contributions move between passes 1 and 2, when we'd prefer them not to.)
> >>
> >> Make tools/symbols capable of producing an "empty" assembly file, such
> >> that unwanted differences between passes 1 and 2 go away when then using
> >> the corresponding objects in place of common/symbols-dummy.o.
> >>
> >> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> >> Reported-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> > 
> > LGTM, not sure whether you want to extend to other arches in this
> > same patch, or simply guard the build of symbols-dummy.o for non-x86
> > arches.
> 
> I think I'd prefer to mirror it to other arch-es, but in separate
> patches (so they can go in independently). Then once all are in, ...

Reviewed-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

> >> ---
> >> May want mirroring to other arch-es.
> >>
> >> --- a/xen/arch/x86/Makefile
> >> +++ b/xen/arch/x86/Makefile
> >> @@ -134,8 +134,10 @@ $(TARGET): $(TARGET)-syms $(efi-y) $(obj
> >>  CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI
> >>  
> >>  $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
> >> +	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0.S
> >> +	$(MAKE) $(build)=$(@D) $(dot-target).0.o
> >>  	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
> >> -	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
> > 
> > It would be good if we could now stop building symbols-dummy.o as part
> > of extra-y.  Maybe you could guard it with ifneq ($(CONFIG_X86),y) in
> > the Makefile?
> > 
> > Or otherwise remove this from all arches thus removing
> > common/symbols-dummy.c.
> 
> ... I'd remove symbols-dummy altogether. I don't think there's a need
> to transiently disable building of symbols-dummy.o for just some of the
> arch-es (like foe x86 right here).

OK, as long as those other patches don't get stuck that's fine for me.

> >> --- a/xen/tools/symbols.c
> >> +++ b/xen/tools/symbols.c
> >> @@ -672,7 +672,10 @@ int main(int argc, char **argv)
> >>  				warn_dup = true;
> >>  			else if (strcmp(argv[i], "--error-dup") == 0)
> >>  				warn_dup = error_dup = true;
> >> -			else if (strcmp(argv[i], "--xensyms") == 0)
> >> +			else if (strcmp(argv[i], "--empty") == 0) {
> >> +				write_src();
> >> +				return 0;
> > 
> > Oh, that was easier than I was expecting for symbols to generate a
> > working empty assembly file.
> 
> Yeah, I also expected it to be more intrusive. The file isn't exactly,
> though - two of the tables (the ones with 256 entries) are emitted
> nevertheless. I didn't consider this an issue, though.

As long as it builds and has the same symbols defined, it's all fine.
IMO,  We don't care about the sizes at this point, just using the same
sections for the defined symbols.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 08:25:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 08:25:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172373.1497445 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOApf-0007bo-Ex; Wed, 26 Nov 2025 08:24:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172373.1497445; Wed, 26 Nov 2025 08: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 1vOApf-0007bh-C9; Wed, 26 Nov 2025 08:24:59 +0000
Received: by outflank-mailman (input) for mailman id 1172373;
 Wed, 26 Nov 2025 08: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=wUbM=6C=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vOApd-0007bY-M4
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 08:24:57 +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 62eda140-caa1-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 09:24:55 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by DS0PR03MB7629.namprd03.prod.outlook.com (2603:10b6:8:1f2::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.20; Wed, 26 Nov
 2025 08:24:52 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::2e3c:781a:5f98:7f19%7]) with mapi id 15.20.9366.009; Wed, 26 Nov 2025
 08:24: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: 62eda140-caa1-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kQTFk5m8aRiT0g+ReGp2ksuVlwR9jvgVKqkEib/+kFvMNZ83O70pOGk44ocuqcHJaDRerSJ3+6ncyJBrlEV/J2FpE0waKvRAaytc42zuVoDwr6VrcoKCSIckb9Ya5wP036XMICntLv3TUubfXXH+sSeyWEqfXyxV6DfY5PiVouP4OMMawuYt9y2OZ9dzThp+Y1FbZ8x5UAeagvDXZoym797jVCpPF3nAv2lkZj3ozqgdCZRMM72emWrY2dPu67DcD9gB6PfdViZGrmUUqF/0k1WlUFGXPmyoclNckUlSYa8q1SyOqB7Wimtvsxj0vAEb3Nn51A4uU+wbsxAun/lmTA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eupPBkUMRbSsxUj1BjojkW4iyUEmlpMAJsfZgniDz1s=;
 b=XA6DXA4VGhHCVOYyXH4+S/51MJUQtJIN57AWBopZzzsf5P/8bFxCaXJ1qvhu2sWC31v69+VWtusTSmCRF4FdZcpMnIEV7RomVospA5LDQ7eVUYS1B3q7R8GJZERbjgje2dW6o4qfqzAzvAD9oOpeN4A2c4UsV2+SMiQHPsWh3dAHZAA16JAnGisi852v2nhX/jgCUsitPOr5z62yEO0qwnIT153oNOFWX3ciED39KsMaucXFPVA9yctHPHYnXFNP1G1i7+fQ+cTObbWesOxsZ6N58yOw/N0Sqk4LW/s+mXkvQNDS0OO2H3ru523rfoLpRENsLn+6IRMdGXoA/OHlJw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eupPBkUMRbSsxUj1BjojkW4iyUEmlpMAJsfZgniDz1s=;
 b=U8dhiFGqQ3zoNrlEjvEfXdVgV55sJNWs37Pe4QPf4sy/oKADnsdlOHqUlFKKxGkd5PiuJ/J3nbOJmwOd1CNVP/y6MaaaBXGBLprKXMbvnE2hYL1XqEHSZbg+t1MVSNmcJ209xuI602kUdt3BbfGZaevdbT9gQ89bLhGo0e3MwYo=
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/msix: fix incorrect refcount decrease in msixtlb
Date: Wed, 26 Nov 2025 09:24:44 +0100
Message-ID: <20251126082444.45617-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: PR3P191CA0024.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:102:54::29) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|DS0PR03MB7629:EE_
X-MS-Office365-Filtering-Correlation-Id: b11b2a7b-94b1-4757-8144-08de2cc5452e
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?VmszM1k3MHZhTkMzTS9NV1Q5RExyQy83UlRjbkt4TUgxby9uNlg5QkpRU3k1?=
 =?utf-8?B?MzAxN1N0aW9CcTY0Z3BGQUs5d1JwNFZVU0V4Sy8rVHZIejNEY1E5VjY5dFFk?=
 =?utf-8?B?azhENHNqbDdrTDZRVWdjeURpeCtDV21pRFBjdVh2ZHdpekUyUFdjaUd6V2hi?=
 =?utf-8?B?aGhRSnh6Mzdtd3k0d2ZkbVJDREZ1NmVuMjVHNFFSTlI3djR0ZzFxSmR6K285?=
 =?utf-8?B?bzJDbm91YldlS002M3d3ZE5CSi9DdU1FUjB4Z1ZzN2dJdzBRY2pRNXRmNSs1?=
 =?utf-8?B?cU1kTjJMNzJkRzExNnJpTHpEQndXWjIzNGk0SHl5d2o1eFlSRkpEampENFpB?=
 =?utf-8?B?eWx0YWtMTkt0cTBZa0RhN3JyNm9sQnBNd1kvOUg5UjNzbWdrMk1RcVRQYWlz?=
 =?utf-8?B?c2pPWjFZY0hEQjRvNzRTOHBVOFdRazgwL2hVQllHZnNFdW1BVkxnQ1lNc1Fo?=
 =?utf-8?B?VGNMblpiQVFSTGxzTVBLTlhMbGNjRWI0c292cWZoUHhiL2w2MnRaTGZkc3J6?=
 =?utf-8?B?bTlLMXdiTHdFMGRENTRMZWtvaW5ab1JVcU9tYnU1ak1xbGZzL0RhZWRXd1Vv?=
 =?utf-8?B?WTJOU084azJoTm9weTlmVDhHNmwyckV0NzRHQ3BTcUJtZFZ0b0w1VDdjTytp?=
 =?utf-8?B?RjBmNlAwUFhIYUFLNGN0bGhmYTk0bHRud09Zb0xKY1Z4RXlPdXBOemtXTW51?=
 =?utf-8?B?Y0c3OUFzYzhOdXlDTHZ0Q3lMeWtBYTNUbnBjZjZObkZIUVVYNUhaTk5EWkpH?=
 =?utf-8?B?ZkV0bGpzTjVaVDRWZ3JsME1TejRmbWsvYU5kMFVtYlBtcEdtM0tKc0ZNVDYv?=
 =?utf-8?B?Ync4ZDJ5OThZVWFCdmRWeVdycm8rSDV1VllsQnA3S1hTdDJNTjNGR2hHaTNt?=
 =?utf-8?B?eGNxazQxcE1YVUkyQ0ljdXloQlNmWFd2WXhTbG16Y0V3UDRZZUFoSmdHR3Fh?=
 =?utf-8?B?ei9Sc0dTMG5JV2hDUTFTTWhoVWlEWXFJL2pEb0hYbUtrS0VBTUFzWWFMK20z?=
 =?utf-8?B?RHdHbmZidnJsZE95NlFkM3V4R20vaCs4VW9zTXJsU0VvaFd1RTFxeVNVVkdo?=
 =?utf-8?B?QUdyVzdxdUE3S0p5MHZRSGdDS2NrWmhwc2dxUlRNeW9STG9pM0dieHBPaGlP?=
 =?utf-8?B?K2FmVXhlLzBPY2RmL294enJHaVZyR0NCMG5lVXc2QWRNL2pXM0ZockRpTWVG?=
 =?utf-8?B?MjBJWmt2ejVZUXlPK0VFM21NZitLTjVYRmlFOG1VVmdvMjNqTkRWZVhrR2Zj?=
 =?utf-8?B?azZmZC9jdnpsdktVS3Ryck9xYk1iWkZCa3llQTNYNGNRTXFrWUxGREpnWGRw?=
 =?utf-8?B?Q3piUE1Pcnd0TVNseTBvZkMyazhMci9FNGlrSXp1R0ZMTmllZnVyM2JvNnRs?=
 =?utf-8?B?S1Y5TFZUdERBWDhxSHY4WlVpcmZ0TzBUTm1hOEFOckFQQmtjK2syK2YxYmN4?=
 =?utf-8?B?eGZYMWdsamlSS3hNODJ0N2xKK0sxSkUyRHhxZGRCekVRMEhQM2hNSnFKNWQ2?=
 =?utf-8?B?RkVtQnZuZG9NZUJ5Z0pnZXl5OUlhQlFrdDk2ZUhxRWFPNG9FbnpGK016c1lZ?=
 =?utf-8?B?YVNUTEVsalZabnM2Zi9XK2VNOTFWMlBIaXVwYmxlbWtNSzh4ZVh0MHc1YXRk?=
 =?utf-8?B?N3BiQTJUenBsYjFWeDhpMTgwZTFEOVRZRlFxeHlzdzVyRkFHY1RneHl2RjQ0?=
 =?utf-8?B?dzlEZ1BYY1ZobXROZkZRWkFuenQ1ZlBRM0dQYjVKOHpJWUJDS09iYnhSWEZx?=
 =?utf-8?B?Vkg5U1I4Ri9Ka2hWQXp4S0tza3NaZVdvVnVZeHYyMU1LWEEzY29xdHFyT1dn?=
 =?utf-8?B?YXpvWjcvc2pkMUdkbXVJSG5mN1NVVnBSWTlSK0dUTk1nQjNZZWdVTEMvbzBo?=
 =?utf-8?B?L1BnUThPNjJGRGloTjltb1dkenc2NjBMWWtrOUs3MGFBTFRScG9iMnZzVzdG?=
 =?utf-8?Q?csggOkcjG4cGyhXGnjdPpqhdwOp70jw8?=
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?b2dGcTRFaDlXaE16dTRrZEYzRlYvNmR5U3pueWZuVDRybHNFaU9SY2JkMHEy?=
 =?utf-8?B?OHNnN2lWNmRyc0RmczRSTXM5blN4RWJNanJndDNMWmFlUDQ5dTFtYWRma25a?=
 =?utf-8?B?Z2J6cGR1bUNSYXkxd1RDb3dQcHdhNTRGZzJyVXlTS3dVL0xOOVFIbGtTNUd5?=
 =?utf-8?B?a045OTQ1dGQ4LzZjQ2crQnZRbk5nengxcnlXRTRxb2FURGpXOXkxU01mVWRo?=
 =?utf-8?B?TU5qVXV2NXdMeTRONWZEaVF6RzA0eVVvWlBFSVRnVlV1WVZoNW5xTFBmaTNC?=
 =?utf-8?B?bU9YY3oyVUVMcXNIaTdOVmxFQWZjVmFLbVQxY2s5b0h1eHV1NG1wZ1k5U3JN?=
 =?utf-8?B?ajArb0MyMnErWHU4ejEyd1V0amhZZXE1S0RsNEg4aFY2a0ZLNUJ6a1BNTUxH?=
 =?utf-8?B?clRpUFc1MnNiZDd0VDNCY1B2QmxLT0pCdkdWWno0TFhYWnl0aHNFK2lqQlRF?=
 =?utf-8?B?WnErMGtRZm9YUjdLa3RYb2J4VVhaNVVmUDdPOWFMZ295ajE3cjRCN1JDbENo?=
 =?utf-8?B?TEY2UHlSN3RSNnBNK1h2bk9kVGFTSUZuTE5BMFlvNUlPeUJqNzNoZ0xqdnRE?=
 =?utf-8?B?WGN3STJGY3VqRlBxSTl2b2g2dkJzQjNVT1o5WDlaZDg4SFN4bm9SRm1MeDBk?=
 =?utf-8?B?TzJSTXhjTDFueEtjVUtVYmhZSHEvOVFPNE5SQVJTSkt6RFpjNkVodlBnMG0w?=
 =?utf-8?B?MTFaTnhuNXRMT1NMVmJuK0FvKy90ajNzRm9NSktMcmJReDhRZFAvUVdSSU82?=
 =?utf-8?B?TkExSVYyKzk2NUE0blNxOHI4aXEwdEQ2eHc5TFlkejNLclk5UERyNTMwRllG?=
 =?utf-8?B?WDQxdExjMHdKR0tzck1GeGZIS3E0S2ZnbUFtZ1hxeDF5U1hGNkRablIvU0d0?=
 =?utf-8?B?TkVoS3ZQQmhoYXcrSEZQQUY0Tmt0eXdhYnhzRFcrTnNhZnAvTmlSemhDK3BO?=
 =?utf-8?B?ZWJrbmFqVE5sQkMrdTJUTEc2MWdGSTJNclNHdGJSTWFDc0NVRlRLTWFxdXd1?=
 =?utf-8?B?VGhBcU1QOHM0UUszbTlMQTRsdkFRNUVLOUpBakt2eGw5MFNtMzE4eVVKblJX?=
 =?utf-8?B?SHZiVDhLeENKYW1JeTB3SjIxQkJtMEttelEwWlRjNjRQTVVOOFdEZXVBYmVq?=
 =?utf-8?B?Mlh5K29pR1ZzYm8vYmxWY1crbko2NytCRzdMc1JaYllCbkhuY0lCZ0daTDFJ?=
 =?utf-8?B?Q3haSDFiYjEwdXE4MGVENVNjaXliK09XSndJOXRNLzdJSGhkc3Uvck9taUhi?=
 =?utf-8?B?WkdyRzFOK3R0MVpEMi9lWmVTcHpYM09OSlNFdjQ1S2UrRkVzd2N6V0EySkFo?=
 =?utf-8?B?UGtrVWl0bnM3QkFSZHQzU2IzMnZJOVNuMFFHMDRUdHhlb1BhcW0zTGpjWmtU?=
 =?utf-8?B?YWdERUN5dWFVeW10b1h5ZDhGcVpCbkJnd0RsMUJOS1dQZ2hkWmt0cGZYNGRK?=
 =?utf-8?B?cWJES2RLODZPOVVUZmxnTWJ6bnpZbjdIa1hYV3RQZXpJckxtYjFLOHZkMjM2?=
 =?utf-8?B?YzhYb2lHYkNzVVNPdzlRbkJHUkc5dDRUeTI4bFZla3dIa2E1TDlNV09QK012?=
 =?utf-8?B?UzRHMFViUnY4bHVnYmFJR0hsL1licTBPMEZvM2RkL2ZXTGdkMG9JOFdFSXRk?=
 =?utf-8?B?MGVOZW5YV1dkZCtFRysycXFJZjFlYWtxZmJzRlpabHdsRWNoemo2M0l0alA0?=
 =?utf-8?B?YUI3eHcrWGsraTBzelJqaTJ0RzZoaVNBKzZCM0U5TGJYNjZheUVDdk56Y2RM?=
 =?utf-8?B?bW9raUd2Z0xiek52ZnhBdEhZQTNGZUdYUmY0OXdKd3hnamxUaWJ6UVdXRTZI?=
 =?utf-8?B?SVRLa01uUjRoeVNpbkpBaGIvRWJHMFFON09PU0taMlZIMG9IQml2cy8vR1Jl?=
 =?utf-8?B?UGIxclhMVG9ESzQrMXpxeldOSFRRTUpaUjhUQWJCYlNST1ZTZEtGTzdJcWxU?=
 =?utf-8?B?VjBnSVdIV2VnTVVpc0J0ek4vK0Qrek8yNS9RcG9FemZIWHRGWUJvT1l3NmNa?=
 =?utf-8?B?UzJ4bkdldUQwazY5SXFQT1U5K1NHeFNtRWlWSkxWclVtd3VaZk1aSEVmRzZi?=
 =?utf-8?B?U0dBTWdiVjE5MW9Edk1RYnBLdFllSWc4K0QraGJlczg2WWtqT3h4dkEvQ0Fp?=
 =?utf-8?Q?Hkc+6iBKRLoxOJZkBmMlZiwvM?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b11b2a7b-94b1-4757-8144-08de2cc5452e
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 08:24:52.2952
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: CZuHhTBuAprvX0u5/hrrJRTuIkETuvf8wM3UnZZA/dMjhPsX4mUPczovXDOuk0E5w689pWPpq8rEULhhsRFzEA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB7629

The usage of atomic_dec_and_test() in msixtbl_pt_unregister() is inverted:
the function will return true when the refcount reaches 0.  The current
code does the opposite and calls del_msixtbl_entry() when there are still
refcounts held on the object.

However all callers of msixtbl_pt_unregister() are serialized on the domctl
lock, and hence there cannot be parallel calls to msixtbl_pt_unregister()
that could lead to double freeing of the same object.

The incorrect freeing with active msixtlb entries will result in a possible
guest visible malfunction, but no internal Xen state corruption.

While entries are leaked once the last pIRQ is unbound, the same entry
would get re-used if the device has pIRQs bound again.  The guest cannot
exploit this incorrect refcount check to leak arbitrary amounts of memory
by repeatedly enabling and disabling (binding and unbinding) MSI-X entries.

Fixes: 34097f0d3080 ('hvm: passthrough MSI-X mask bit acceleration')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/hvm/vmsi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c
index 32e417bc1592..27b1f089e20b 100644
--- a/xen/arch/x86/hvm/vmsi.c
+++ b/xen/arch/x86/hvm/vmsi.c
@@ -716,7 +716,7 @@ out:
     return;
 
 found:
-    if ( !atomic_dec_and_test(&entry->refcnt) )
+    if ( atomic_dec_and_test(&entry->refcnt) )
         del_msixtbl_entry(entry);
 
     spin_unlock_irq(&irqd->lock);
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 09:10:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 09:10:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172383.1497454 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOBXC-00055p-Jp; Wed, 26 Nov 2025 09:09:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172383.1497454; Wed, 26 Nov 2025 09:09:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOBXC-00055i-Gd; Wed, 26 Nov 2025 09:09:58 +0000
Received: by outflank-mailman (input) for mailman id 1172383;
 Wed, 26 Nov 2025 09:09:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOBXB-00055Z-9M
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 09:09:57 +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 ab41b8c9-caa7-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 10:09:53 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-477632b0621so43047755e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 01:09: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-4790b0c3a28sm31432535e9.9.2025.11.26.01.09.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 01:09: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: ab41b8c9-caa7-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764148192; x=1764752992; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bWMDEQBe7EkF+9UMsX3KM5vptmQ1aIFjIW0LkpAV4eY=;
        b=bBQ14cfgoYvIWuNrv6GT/tv1Pm5v35SqLQi1Qv0UzXsbKEqPgEe+Q8a3cUyTPSc+Lb
         uvnCAXRSd4xhvnfn6JjIAzUFX5+w3lLtkwPgmnDng+i1MZh6heteNrPXdIXXQK6+BBEZ
         m5hfQKti2W+W9AbkcetUx9Xi9R89HyIlhSUV9gwPFkjnRAjU19Gori9Z9imeePWuenWi
         +v9v/CXnWSfz5C8xk8W7iwQMRE5SHsxnu1rUjd+t/YWtL5lCeYtvyyacAIy0RU6OhTa2
         ogcVybT2yopNo8NcwSmI39OVojshodYk27zhLUetsKfnI9NNMMBMZKDr/EkEun67P0yl
         16IQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764148192; x=1764752992;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bWMDEQBe7EkF+9UMsX3KM5vptmQ1aIFjIW0LkpAV4eY=;
        b=LsY+3WwDTVf7ayIHbDxoe1S3S7gyASCt9up5/dmZAlmS4ziKKfTbTp1+Ggtw/Z6fJN
         h3BOX6h3bApVa4GDgPJdVinK2QG1jOshU3x+SVx49f5ElM1/w/sd2K/hLGPwjr1s8pPi
         EYBpt7ZijPopQQX2NnE9DrDdswMOrU3ynid1/iyrTg/3HzeQLtlLUmBAlL0DIdaCo98z
         Q7lJ8ZrV5koeT0fr/eToXrcfBQEABTkepXKeKm4J0CRyrzJedmN+Ubd8acGEj0myKAks
         Y0S5buS5qBKIyAMXkq2zOq5iDi/VtaWDyouJjf+rA9/dXkThq/kdPKAwKNQ+K8O5KSdS
         2VGQ==
X-Forwarded-Encrypted: i=1; AJvYcCXYdkNgGuKKSpVgXJcsSUsiY38nq456qIxI82lrTTSuLUlw0DV0pz+2YS7bzdKIu4nw3q68ZGsCvws=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyy7ZYFVzmzq/y2F98MlYKh1nKIFiDHSXlllwmylGKdUm6aVX5f
	VlS0TAa5INCZSvd7kco8kwjjMjxOce6pvtJSqnhahBWsGNlERSQ59O5582yGkCJuJw==
X-Gm-Gg: ASbGncuOZHsx/M/1YY2XHvWsVIdUVUIpyX0SXlogEQZmr420Z5pUXopZdv4SeTqX5If
	0XKmug8MZMGfrirAQyavWPqH1/oUA5V8aDGaRSmL1zx231JM/5ft58h2DI6K/YN1KbVUGCnKwP3
	GUTcXfr8MnR+NF85J3kjsJ024m/GGnWL5u/frhb2Ha9VxmdU8jGLlRcLh2SHj5G8kiSG3kyiSlR
	sY4pFekt1XqPWtikIJWJhBZClIeCL16Uh4cgKXU4gyhupecfQifbBE/vumFSmjw+zP/cYqQ1Zfg
	iCO1qQLF3Knp0QAvXBcxE9sI55fsRAOnlu2tYc2MlIQqN+d8U9EhT6udo+osXFtfBd/lzIUXCm3
	PQB5DtY+mJsP89pDB8BvPbr3oYWDuQnvVGQJuFbgRAuGvKLD2jGTYka1g15ieDVCLQ+W6liHM1p
	lCyjo8Jz8IB1dN42MRs/WiQ2m3mqAwEudEmOQJkcTc4OZnbp8VkzDtvY0eKIy12FlZUTW0AhOh5
	xp3fPold1ILOA==
X-Google-Smtp-Source: AGHT+IG2E21puXEaO9QO8m24WvkiAFjUqdOFinoIgvDpetd36EldzKWTWIS4mT2eL0xaxD/3Of5VpQ==
X-Received: by 2002:a05:600c:19cd:b0:477:c37:2ea7 with SMTP id 5b1f17b1804b1-477c1115febmr138445875e9.21.1764148192521;
        Wed, 26 Nov 2025 01:09:52 -0800 (PST)
Message-ID: <f60b3572-42bc-4507-be32-6a03f7fafe75@suse.com>
Date: Wed, 26 Nov 2025 10:09:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/linker: be more selective about defining LLVM_COV_*
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>,
 Saman Dehghan <samaan.dehghan@gmail.com>, xen-devel@lists.xenproject.org
References: <20251126081617.45401-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: <20251126081617.45401-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2025 09:16, Roger Pau Monne wrote:
> There's no need to place the LLVM coverage sections in the linker script if
> not building with clang, or if code coverage is not enabled.
> 
> No functional change intended.
> 
> Fixes: 186c02e85961 ('xen: Support LLVM raw profile versions 5, 6, 7, 8, 9, and 10')
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.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 Wed Nov 26 09:21:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 09:21:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172393.1497464 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOBho-0007u9-HD; Wed, 26 Nov 2025 09:20:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172393.1497464; Wed, 26 Nov 2025 09:20: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 1vOBho-0007u2-EO; Wed, 26 Nov 2025 09:20:56 +0000
Received: by outflank-mailman (input) for mailman id 1172393;
 Wed, 26 Nov 2025 09:20: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOBhn-0007tw-RP
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 09:20: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 34d01750-caa9-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 10:20:53 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-42b3b29153fso3540420f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 01:20: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-42cb7fb8a29sm39871609f8f.30.2025.11.26.01.20.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 01:20: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: 34d01750-caa9-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764148853; x=1764753653; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PexXMoi329RzGdhcW0xJ8ILoj2E+UH1x0iYNyq8oxZU=;
        b=OTyuJ8TXz1VjDBdkTCcU7N3lDALBtyLNtl4ZeXIYOTcLxEVMe+AghyVZvIe0fhwuoN
         R3peiKK2uIky5leZLsV2X73rorJnf8w+FEJwYFvkbeWicpF3ixd5KAqv+KLwhgPHYI81
         us6Y+frpgB6nWqGgxnj6FEVoE/ehnRwgbY/KbKWednvswI5n3sj2AR7o7tub25t14cYm
         h6bEMpXbPPnyk6OBJbcOWdWYDeRHHB2y2aO/1Il5RqlKhIIcfRp9e4cPtAVddgjyIj+m
         BWTL1gVckDwht8DgfCAKmpdSXt3lWctfGO93m/lSDxw6NaHCFcnggGc+lUMf7gKpJKqz
         z4rQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764148853; x=1764753653;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PexXMoi329RzGdhcW0xJ8ILoj2E+UH1x0iYNyq8oxZU=;
        b=vGVAT3NP1ls/HhOwolcAHFc+kAdFi6XhXav8ILaJ03lhKfxT5paZYCTDEmzGrZDQJ2
         eCfmnf8lJwJcmMn4is3RnsCdZbDtmN1Luj/LGfv8Hkw3AYlO5D/ohjKbEX8lKaSP5B6/
         CBsOixpcBy1ZbeNIZwJXS7s1W/PDVKEoNZU/Iy5jmV5qPlsYWGD/xvn317oRqyq+SPe+
         NeG46AJXUU3paUW6vdGnTc0kRb84sxY9dseaH4zjpYmEQB626QELHxTacwCo1+KCEKIB
         ImWZCgug84g26VehZmc5F/d3Su1s2uwbmtU8wb2CGfWB3yrFPxBf6x8jsDVhjTWyE1eA
         B4kA==
X-Forwarded-Encrypted: i=1; AJvYcCWVrVAbiVDI5WlvqSTLwrvC1wGCgLisFgr2gybMudSaHeZOXYOVu7eanOe6w9GHqPtbTBNJ8K0tVG0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy6Lu61QtzojZp2w0mccm29JA56qRujXAXCOjBg/cE0Sm68anDi
	8dPaQ2Osu0BywSwWq4qpV6pJbTA9MIjyJp7jefV9dGWKXT0J1lcjliobMJM9DL5zDw==
X-Gm-Gg: ASbGnct+lodEOolGzN5YXzFZWarhoxcvbDwMCURjhEIoVgjd9y8Zx/lXIa1dgZg93Q3
	gmQa6vxaKticcvHSz/RoePmUC2O5ROSrlhYAyVPVaP197skMPYIATMA+0WvS+RMnOgGK25FPIdP
	UEouRl1z07Cal1hLQLChquPTTGoLVRQS88ktnBEfG5NZu6gx57hcIJ6NdFzLHrbVqy6/me+Knhu
	0Dxg8faCNltxOhVcr9VI00HQ2MGQM2NP54P9AN5duR1qHL/pSKQ0TfTBZLVCZcER+XxCXDjiyDS
	4NMX+0iyNa9O0Zfz+Aj4wn58PAVe0n2uKesfU/M0ew7cgMnB09yYMgd8Gl7syoLsXe3xPSX9Saq
	uul2Ijb7o2xz6T+uLqPjcxdvs9KUT/o09LJ41Nsj4cWNevNsiBQThnljoXnQpOpPJEY3Kz28rPn
	nyhWJkAtBTVJRLGdGGf5HVN8MZBaGdHfmVHounu4aN7B3GPt/VXAJCuBNiv7ZUgd/pX/hvOOYBa
	5LQpBn2LhfbLg==
X-Google-Smtp-Source: AGHT+IGOvPgeLU92P4GytFZhn66JKH755enwLSliVvARh9R7iZIzchNDGXNnr83jP/5dfTFZxhgrqQ==
X-Received: by 2002:a05:6000:4028:b0:429:c4bb:fbd6 with SMTP id ffacd0b85a97d-42cc1d2dc3amr20519428f8f.31.1764148852703;
        Wed, 26 Nov 2025 01:20:52 -0800 (PST)
Message-ID: <6f9d00c7-8304-4d80-92c8-f134cceb01c1@suse.com>
Date: Wed, 26 Nov 2025 10:20:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 22/24] xen/domctl: domctl_lock synchronization only
 when MGMT_HYPERCALLS=y
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-23-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251121105801.1251262-23-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2025 11:57, Penny Zheng wrote:
> Helper domctl_lock_{acquire,release} is domctl_lock, which HVM_PARAM_IDENT_PT
> uses to ensure synchronization on potential domctl-op altering guest state.
> So it is only needed when MGMT_HYPERCALLS=y.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

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

I'd like to note though that ...

> ---
> v3 -> v4:
> - new commit
> ---
>  xen/arch/x86/hvm/hvm.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)

... with this diffstat the subject prefix is pretty misleading once again. I may
take the liberty and convert it to x86/hvm: (and then also add parentheses to
domctl_lock()).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 09:25:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 09:25:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172402.1497475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOBma-0000HA-2H; Wed, 26 Nov 2025 09:25:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172402.1497475; Wed, 26 Nov 2025 09:25:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOBmZ-0000H3-Vz; Wed, 26 Nov 2025 09:25:51 +0000
Received: by outflank-mailman (input) for mailman id 1172402;
 Wed, 26 Nov 2025 09:25: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOBmZ-0000Gx-Af
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 09:25:51 +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 e5afc164-caa9-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 10:25:50 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso5194765e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 01:25: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-4790b0c3a1dsm32711065e9.10.2025.11.26.01.25.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 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: e5afc164-caa9-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764149149; x=1764753949; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Wk6WgRys9FouT6iO9lCQPYNCFSirGYzsyyY2HsqCEXg=;
        b=GT4S4BUbet4AE16xF1Z4JDKT/fbG/B/VOOUdedqMqQ6AfrIgpVzwvn4EinK2Ro/7hH
         pWzE0bqaHw0e4wiflrnn/PdYFR2zXf/bPBKi3d41Demik3J2W43RBV8I3PX5o1ddbmLG
         srsAO1Vf/fcOl6qsDgQsA9CmzBO6jinwjY29cb8NdsCNBVNoyI4cs9FccdA0YXxDw9Hf
         5p5aw+M1tPRvfjeNv5S/DRn07A4cRAylQxZl+P4T/CtRdbgQpzNjUJCRwn6FG7et2LbS
         acTZ4J0On65I+HeCIUpFJYKeUwLCuj9l02mut5hrgxlHNa3wWntTbmKbjU6Fgsvy2ljS
         1PGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764149149; x=1764753949;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Wk6WgRys9FouT6iO9lCQPYNCFSirGYzsyyY2HsqCEXg=;
        b=odD8/01JBxV/yCqj4ToBc6oiwWHbAAyyW8c413WhlJHGGcWBv8mGPwAIyid4sHXb3/
         jjbTazwViAO2qpqgm6E88aFwCJ+Iqh4Qw4Ju4sEYF7zeNeHiUhpAC74VtX6ljpx4c5ul
         1Ka5FPn+2X8h9QSVJbBAyrZcdzRDnbPaaEoql7Sg/myfTswLm8+AEI1w3kp9rG1vPpNS
         15+N1DmEBSBx8I3A90nZix0QuI5OuPaoNiV/yCpeFeaQAaKE+5l0IcRovslbkMnFOjWa
         dk4hCo3F9/20+9FVFFbS7DgD24Cj9l4Ssq6KVhL9aQNhMfWfSkLew58H6299B4M+40ob
         yWWw==
X-Forwarded-Encrypted: i=1; AJvYcCWDmqezSlExXeSx9tCcLqgLg9YSzzLyIGmjsjL5qeY8vI17MAfkpZJfLWiqcVBhqGAYxa3btlCj+f0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwuSlLl28JEMQYixXSXyPAKVjUv9m31W3xZTJRy2SxySBCEbReH
	r7oUwKfQOE4tkyCnz6W1/3OWDHp4ZIg9xnNTupocD9WTAKWMpCf+jlQFcKLCWMzthg==
X-Gm-Gg: ASbGncsXJa4c/5lKyyQNEffbZkmhXgQO0nv3OJuOQ8ecMiaILNzYqrK9FEXgoGoUHwb
	l/n384tnTZFpR53Qyt7rugRiM13NiuTifev0A39FunZlHuecR8eOoEQ4mIeLRJhM+LNVR5jTcEY
	GbgDl5EJrx0cbBGsPgeD5hsrizKe2loaeQz4Ifk5j3g6J7L6NPDdB9zxQAieDtV9ZRlVoTmgi9s
	J3fXFD8wAVNQbbLBfJtIxQGCQuC9QBvwahht8aTojW/CXBiyUAL10UzrnNa54XyXSVKLagtEYnG
	Y3f1HXZ1NGx2gY8dsuUWX1w12vetMYwRc6i88Y2KyzjWzi9x0EhUktT5LpmXS+vU1Yrg3RQGthn
	9qwukg+uxuK7koCK27bwTaJiYeDwmqQ3xTVTccZ+f7XG29eUWkvtLUU+//5SyXWBbwehp8G5x0E
	cFHfP1+vSeDe36q6eUDr20KB38LA1/UbI9p8QQJbv2zhZsIT4DLgb42rm396BJ4WWbUyUDTqF0E
	8uhKfQT/t0ODw==
X-Google-Smtp-Source: AGHT+IGdiZwNmlf8nIMez9z0EyKOuFgLnYQUEkgD09UXnfURa9bQyhm4hmdXrFPdZ15QkM4nBWVlNA==
X-Received: by 2002:a05:600c:3ba7:b0:46e:59bd:f7e2 with SMTP id 5b1f17b1804b1-477c05139c2mr244503095e9.11.1764149149564;
        Wed, 26 Nov 2025 01:25:49 -0800 (PST)
Message-ID: <a73bd51e-14b7-450d-bec5-28af63b362a7@suse.com>
Date: Wed, 26 Nov 2025 10:25:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 23/24] xen/domctl: wrap common/domctl.c with
 CONFIG_MGMT_HYPERCALLS
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@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: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-24-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251121105801.1251262-24-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2025 11:58, Penny Zheng wrote:
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -654,11 +654,17 @@ menu "Supported hypercall interfaces"
>  config MGMT_HYPERCALLS
>  	bool "Enable privileged hypercalls for system management"
>  	depends on !PV_SHIM_EXCLUSIVE
> -	def_bool y

Why would the default not be Y anymore?

>  	help
> -	  This option shall only be disabled on some dom0less systems, or
> -	  PV shim on x86, to reduce Xen footprint via managing unnessary
> -	  hypercalls, like sysctl, etc.
> +	  Management hypercalls provide the means for dom0 to manage the
> +	  overall Xen system and other domains, including sysctl, domctl, etc.
> +	  In a dom0less or pv-shim build, they can be omitted to cut down
> +	  on the Xen binary's size. However, this comes at the loss of
> +	  significant runtime functionality.
> +	  So be cautious to disable it, as admins will face missing a few basic
> +	  hypercalls like listdomains, getdomaininfo, etc, hence leading to
> +	  have an impact on device-passthrough and DM.
> +
> +	  Unless you know what you are doing, you should enable this.

To be in line with what other help texts say, can this be "..., say Y" please?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 09:29:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 09:29:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172416.1497485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOBps-0000sS-J6; Wed, 26 Nov 2025 09:29:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172416.1497485; Wed, 26 Nov 2025 09: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 1vOBps-0000sL-GD; Wed, 26 Nov 2025 09:29:16 +0000
Received: by outflank-mailman (input) for mailman id 1172416;
 Wed, 26 Nov 2025 09: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=1JSh=6C=microchip.com=Ludovic.Desroches@srs-se1.protection.inumbo.net>)
 id 1vOBpr-0000sF-Bn
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 09:29: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 5eb5a983-caaa-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 10:29:14 +0100 (CET)
Received: from IA0PR11MB7257.namprd11.prod.outlook.com (2603:10b6:208:43e::21)
 by SJ0PR11MB6765.namprd11.prod.outlook.com (2603:10b6:a03:47b::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Wed, 26 Nov
 2025 09:29:09 +0000
Received: from IA0PR11MB7257.namprd11.prod.outlook.com
 ([fe80::a3f:c748:c7a6:d2e3]) by IA0PR11MB7257.namprd11.prod.outlook.com
 ([fe80::a3f:c748:c7a6:d2e3%5]) with mapi id 15.20.9343.016; Wed, 26 Nov 2025
 09:29: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: 5eb5a983-caaa-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JYVsQgI041qixjG4Jd9s8QR9lIGeynTj0rs7IKcwNDsxxnsrb3RbHmoBytcdgGxOTyruCg62m7YMsLU6CrUFwivxP/MVtttiqUGz1ORiuLzMyubjIlGDk2zVMBSSRHizqVi9aOsiPr80FzrDeI0EGwb6/Oe55L3tfm8kA8IZGxfmT9KaE9DAI2FxFxfLkwUUYOJT8+/jt5kRaTkWBfL+mqpRFiy9bdVZAjSMcq2Ltv7/qi8btl52LZtLD9stuFYTprLy4MRJkrhh7gax5kUVwngqdHS8jIXucFbKF0ICsVw3rKi+1wpM4FWFtuirHkvqLOQXTAoAdy6qB+SsC2BKsw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tzgw5UbmasbtEMSiDa92RkZK/Iow31iu/1SNNh35H6g=;
 b=l6QGWKMuaT205WoAK9FnpCUfJbe828FyJlo8H/qT/hpDAy9nBsuxfC1IMxV6EEDOt2ugQ+oUy/rR+MnQNBBsHdR5Xl6A+pkeaZCEEpXdUzKwuEmhI7pTSDo0F+cj94TYtvX/rLfomHTS3j2PCbpXIPx2P8gyeUnlsdlqo2inOK1SgMjtGwlfJRsxIYuZQi2VkDYlPouRjDk0Vu3j4U53BligaCIRMOIh09yGyd+JOxeneLs0ZJyM8BD1TVpQzdpEfxOKrRSchfeq11ig/5bx+JJV7+svzXGCQGvPGiSOZW/XX2IBOrr/zQVFlCFVH7o/816Z3qxFzvNlfjrUTHRhZw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=microchip.com; dmarc=pass action=none
 header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchip.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tzgw5UbmasbtEMSiDa92RkZK/Iow31iu/1SNNh35H6g=;
 b=e72ibdAIDLS78rLG7Wre34MayIrYImrCeJ+kubi/n5sxxMJWJ0vJct/41vOr9bKlXCZOSowA1MJAfCLMB7BnVi/xl0N1Ohy63bCqUGXnR+QNkKIYUHvthrHRYZGAdoyiMVcBOxb75VSkyZ5dfoWMAtCyjfNZkSSL76QgYnPrcEKhVKyVzMVHL3oaxolX7PnTPG9k8k7+l0+uFpNZGk45E8VZxikFzW7W5wou2sCyywRSX+0hPBWZlc7GnpNv8Sn5QxqcnusRggVuLYO8A06GuGCJbjO8aAzRsnLgeZ9seL2/CUQ0YFHzAPFmqBmQNDQGIyXqCCGvVamhyhBZhHYheQ==
From: <Ludovic.Desroches@microchip.com>
To: <tzimmermann@suse.de>, <simona@ffwll.ch>, <airlied@gmail.com>,
	<mripard@kernel.org>, <maarten.lankhorst@linux.intel.com>,
	<geert@linux-m68k.org>, <tomi.valkeinen@ideasonboard.com>
CC: <dri-devel@lists.freedesktop.org>, <linux-mediatek@lists.infradead.org>,
	<freedreno@lists.freedesktop.org>, <linux-arm-msm@vger.kernel.org>,
	<imx@lists.linux.dev>, <linux-samsung-soc@vger.kernel.org>,
	<nouveau@lists.freedesktop.org>, <virtualization@lists.linux.dev>,
	<spice-devel@lists.freedesktop.org>, <linux-renesas-soc@vger.kernel.org>,
	<linux-rockchip@lists.infradead.org>, <linux-tegra@vger.kernel.org>,
	<intel-xe@lists.freedesktop.org>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v6 03/25] drm/gem-dma: Compute dumb-buffer sizes with
 drm_mode_size_dumb()
Thread-Topic: [PATCH v6 03/25] drm/gem-dma: Compute dumb-buffer sizes with
 drm_mode_size_dumb()
Thread-Index: AQHcEnS8fucA3LjqjkuGZw8r9BxHgrUEDdaAgAAGpQCAAQFLgIAAFRiAgAAedQA=
Date: Wed, 26 Nov 2025 09:29:08 +0000
Message-ID: <09cdbc92-63db-473e-8c5b-5ca9ac3c6a2a@microchip.com>
References: <20250821081918.79786-1-tzimmermann@suse.de>
 <20250821081918.79786-4-tzimmermann@suse.de>
 <52600bf4-2c1c-49a6-82c5-b31818141a43@microchip.com>
 <a11c195d-197c-45a4-962a-e2336c7360c2@suse.de>
 <2fbe0d43-67c5-4816-aff0-c23ac1507ec5@microchip.com>
 <58b768ad-00fb-4fe5-924c-9cf6ec12f75c@suse.de>
In-Reply-To: <58b768ad-00fb-4fe5-924c-9cf6ec12f75c@suse.de>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Mozilla Thunderbird
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=microchip.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: IA0PR11MB7257:EE_|SJ0PR11MB6765:EE_
x-ms-office365-filtering-correlation-id: 693cd87e-3f91-4a9d-e55f-08de2cce4067
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|7416014|376014|1800799024|38070700021|13003099007;
x-microsoft-antispam-message-info:
 =?utf-8?B?WGRvenFyTW0xRm5uSG4vcFc1Qm1Fazhwb0xxakNlSm4zOGQ5elExQ1FLMWpo?=
 =?utf-8?B?YWxacS9USUJpRC8zUkI5U01DRHdJUkJQTzNhdURIZDN0emNyRXBFZ3c4cHRt?=
 =?utf-8?B?cGw0TzArZm41Qzl0S3EyU2ZCUm1DMEwyd0RvL0VqS0RlUHNaMEczaEpnM2Za?=
 =?utf-8?B?Ky9OL3N6MzJRd3UySTd0S1RkZkc4TTZxZk8rZThlVjZqM2ZzN3lBRWE4MTkx?=
 =?utf-8?B?czZZQ1Qyc1J5N2JsaWRobWNsTHUxZmptbXVrZVZKekhGZEZnYWpreWIvZTA4?=
 =?utf-8?B?b1NINUs3eU5zT3k3bzdkL0Fwclk2Sm9Lb1czcWFxTHIxNGhqVitLK3ZhNUYr?=
 =?utf-8?B?ajBHRHpSOTlpM2pFdlhSRkpkL2toRHd2TzlYRWEwQldmTmNDL2wzQm5RSVN4?=
 =?utf-8?B?RUUrdmRpb2FlYVJkTXIwZEFJdTA2N0ZwcVl2QU1uWDdwb0dESzlvTTFpRjhv?=
 =?utf-8?B?SU1Pc0RMRjY1VkdMWmN4eDZNTnJ3MUpxWklOaHlDdGEvMXVvcHVQNWxmQ09U?=
 =?utf-8?B?K2VCbDQ2cWJrSFBBS0V6eFA4YmdQaWNvTTdCTlYwN0RlaE1LTWREZnBUWHF6?=
 =?utf-8?B?WWErdmRBN3hRV2dkVFY5cXlOTE1Zdmw1aENYL0NJYk5KdzlzT0VJOGNVU1pt?=
 =?utf-8?B?L3pTK2dUMEpXTXFkQWFKOUZhbHVhSy9DWXpWR1BqallNUUVqZWJ0bGVMQVFp?=
 =?utf-8?B?a2ppaWQ2MXVRYThLSUxiY3hBOUhUZm52QUo1cVZyaEdIRDNjK1pMN0x1Z05C?=
 =?utf-8?B?R2lET1ZQWUZ1TFNvd0ZyZG03ZnVLNmo2NEppai94MTZ5eGI2R0FvMzVUMkRp?=
 =?utf-8?B?clh6SGxqOTc5U2FGVVVtQ2dWZlJPdC9oM0RLQUkrQU1TdENMbGR3TEZ1S2tB?=
 =?utf-8?B?VDNKai8zZFVUQjdCN0poZkhXSUlDZ3hKZGQ4b1hBUVhTVDR5SEpnVWwySGpa?=
 =?utf-8?B?VmxZMUFVM0hLdExoNWlKTnlXYU1XNUpGVHNXLzZNdG1qRDJWUC9aejE0eUxS?=
 =?utf-8?B?YXZjY21rVUI0UEtqVnpRWllXSmVrMUlsSEFmMWI1ZCt2dWlxMHUzVzEwRWJH?=
 =?utf-8?B?d0s3TVZmOG5ySEJPbVRzQllyR1ZoUmZIVksxUEo0NjJUbUNXMW5zT1E4dzFn?=
 =?utf-8?B?R2luY0w1MEhWTUVqOGQ1TU14WGdKZ2lSWkNhWjVLbjN4Q1hUQ3N2SHlwU0xK?=
 =?utf-8?B?dldna1dVWFlVYWJKMlZzQXJGTXJEbzNqZEZQQS9KYzVydFNuSHZXdkVYbVRU?=
 =?utf-8?B?MVhPWGcvSXY0Uml4alNCNU10cWc0RVNZUlhSZW8xK3pmR3FYVWhicUtGMzcr?=
 =?utf-8?B?WXdsbDJzeWNra3kxVmtpa2hwV1VTOGcxeWs0ZC9OaFBEMWxvMEJ6V3p2N3JK?=
 =?utf-8?B?WGc2TkpDODN0b2tnTEhLSDVtMHlsWGZyN3V0djRyalNWazVFSmZaNi9UOGE0?=
 =?utf-8?B?dUJILy9DaS9iR01CRU5IaXZIWUFHaGdNellRV01RejErTytYNkhEcnRmQUR5?=
 =?utf-8?B?SDlNZkxXYWhtU0R6YWlIbjRNRkdGL1lwSlY2blc3UEU2K3Q3eSsyaUxmYUNl?=
 =?utf-8?B?TncxZmgyM0xONU5EcmJMTkxST3lHMzI0VnVBaVNiZXBSYit4cU5Mdno5eFJl?=
 =?utf-8?B?NzFoTkxGYThkN21QMGNGZmw0RVhUTVVvYnVmM3AxUk55RUJaci91d1lORkdB?=
 =?utf-8?B?RTBXL2hMMEFSVllxMGNzWW5QQk9Da1BoSG1zOU52UitsZDBDOEFibFV3bHBX?=
 =?utf-8?B?MytwOE9DZlNyVHVMdGk0THcwbUdJNkNqSTNNSEU1OVZtSEpxSUdabEFkd0Fl?=
 =?utf-8?B?UGphNytEdlRZNXZYWXFrODVZVnBPZE1JUnFsQUVWcW5mNk5wY3lXMFU0anU3?=
 =?utf-8?B?MXBuUmlvaFhCZkg2TTVmQm1jWm9LSDNyTHBsNXBxeFVuMmJySnZJeFZwd1Rl?=
 =?utf-8?B?NHMrYnIzb2NSbXJBcmZzbWNEczM5Z1FHbXE4Z1lxZmhLcldPanlqcm9hRDJ4?=
 =?utf-8?B?QUxEdU9CT3o5MXFSQ280QW5WSE9Tb2ZRUWtncDhsWGN4RUNkTDZzT3dDODdR?=
 =?utf-8?Q?NqBEDR?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR11MB7257.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024)(38070700021)(13003099007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?YjhobDVwaFJnZVpkdk1nVU9OZFBLeXZGcTBSUit1TFVNVWRBM3ZXTEFqdHpG?=
 =?utf-8?B?S1FEWGJQM0FJNjQ2YndoNERTeEZCbVplYkFmNGtPTm02djJOOERTT0RmdXgw?=
 =?utf-8?B?am1Wc3ZIQllGOC9MNUFhUXRiaTlHSmVPY2l0S1BjZ3hHUkR0dTlQUmNyTWpF?=
 =?utf-8?B?dTF0QjdZTWhlYlhMWkpiZnhTZkZUV0NxOThZV2V5alljU0xBVC9UNDJvamwv?=
 =?utf-8?B?dzQ4cXZHV2JTZ3VnbmRlWjBseHRDa01LRXY3cWtSektaOU5DLzBjQi8vOGZQ?=
 =?utf-8?B?QW92YTJTWHRaanlORmtiQWpYWEZMeUpyVC9lT3JSQjBoSGRuUEgvMFYvdkpZ?=
 =?utf-8?B?RWRsdHFuVVJGWHQwcjVHVmt1cEFOQXRnQUF2YmNJbmJNOUJYOHh3anRyRno4?=
 =?utf-8?B?NGdQanVocG4wYnRzNGtVdE9rS3E1bzdWLzNuQ1crSWF0MlY4cGZYL1JVWFJn?=
 =?utf-8?B?U2pDYTJMUm9HYjI4TndRdXJjbGlSNmpjazQxbFhTdXF2OHhjY3liQnVJc28v?=
 =?utf-8?B?SWNQQm8zYzJTM2RVc2RGeUhuTS84STZ1OWtpM1IwK2JNSENZMERSblRXZXds?=
 =?utf-8?B?dkdaWjV0NjNmWjRWcGNzUCtpTzV5NVJFcVp4cytFNHV4UzVNNFkzRDdHT28v?=
 =?utf-8?B?UmhMa21ML2pjWjhIYUQxM0pPdkJCalI3bmxENmRkUDh0ejVkZmp4Y2FlYVBW?=
 =?utf-8?B?SWtET00yV2hWajJKZ2RWMGFMS0V3M1ZTQmRLdGhINzRTV0V0RWFsOTVYOUNm?=
 =?utf-8?B?N2xGeTR2V1lWSklaRlF1OGs4Mk1Zdmp0d1hRUDF6dnBtdVJyUHVqSU0zQkhS?=
 =?utf-8?B?Y0p5SnJxQ3k2a1llZE5JTEJwZlJONThXeWhtUjdpclRqc3hoWkFkcHpsTlRE?=
 =?utf-8?B?YkRYU1ZISXVjdVNzcDdXZE1FMUFwVWRNNU9HRTk5UGJzSFpkK1F5VnlGN1Rq?=
 =?utf-8?B?cFZ6NUZoUU1vYjNMZUx4UmZlRHFOVW9qTmhodytlcmt3ZXBlZ0J2SlFDY3F5?=
 =?utf-8?B?RHc1VmF4Vm83RWtUamF1RkZ1K3NhSGcxVDltVnhwRUtDbFZyKzdFcGhkMXFI?=
 =?utf-8?B?ZjNoRUpDOVhZbk4rN0d0Z2dRaHJ6dWNPZEFsVGxDVnlsV3ZjWlJGLzdBY3h1?=
 =?utf-8?B?aDJrNGlpdTRLbkVLN3pyY2QzOFc1eUZtWjJuWUtKQlFBTHNFQmFiOUV0WUMr?=
 =?utf-8?B?TFBFSldYL01EWHVLYW5aWXNDMEVicmZhcEw0WGVpZ2tKbXlWVy9CYzN0cFhB?=
 =?utf-8?B?NWNUaVBXR2NBNlFtOHFCanRwejg5bGk0RCtPRVNra1NjS1hlT1NrR2dqZkcr?=
 =?utf-8?B?dGt3M01Bb3gyUUl4RzJwM0JITWgxK3prRjU2aVE4T3FvUlBwTHQrQ0xDWU5I?=
 =?utf-8?B?a0s1OVFtQW1YYjJFeVkrMll3a1hTOVhNVWZ2S1FEVU1qNys0R0M2Q3pQY2xT?=
 =?utf-8?B?L2ZPdzcwVEZUTXByK2FSWUFwdDdiVzJFVHpIMmUvUkhPNkhnYWNmWFVyNSs3?=
 =?utf-8?B?NHNJQ1k1TzhEaTdsbnlqeUN0OGc3ZG5ab0VSK3BvczdSSmUzbTdWK3YxUWhS?=
 =?utf-8?B?STQ2V0p5Misxd2JWcURJc0JhdDYxa1JoSlBrRG9ucG55MEJTbm9lL0Y4Y1hE?=
 =?utf-8?B?aGcrMUI2M3h4cGNUQWROcEJDemRSL0g3bXdFMW9vWmZLdDZZL0VaVXJadUZ0?=
 =?utf-8?B?VW45b1A0ZDc1eWZWV2piWnFSeWdXbGJKWkJtR1ZORno2TVVsS1VRRzdRbHd5?=
 =?utf-8?B?RUFnRXQ3K0orWEN3R3U2Y0hNZ2UvRGk0b1kvaWV6b3QvdUV1VFhYUkJTSkta?=
 =?utf-8?B?MlptY0lEeGRnSlRza0ViN0h4T0l0RTBDV0t0WjBxUFJWTGdOQktiSFZaN1Fu?=
 =?utf-8?B?OFFyQ1liTlNaNTVWeXkrLzN4ZEozL2o0T0hFZHovb0hxRUJmYXhNNnNJVVR0?=
 =?utf-8?B?OXhwS0M3K09WVHgyNkNhTm5RSU5SMlJyUzRVQnBnVU9jamtKSTFjRmlPbG96?=
 =?utf-8?B?N3MrOGVwdzdYK3Y4bk1kV1JuZytsR2JSN0pueU4yUXAzN0g3ZUhHWnZjR25Z?=
 =?utf-8?B?WERFUjJHNVJyNllQRjJ4R2ZHczhIV3UyUjQzc2M2TE5oY1E5OEZYWDJiUFZj?=
 =?utf-8?B?bUZ1WFcySS9acUllUFg1MjJHNnRBWVd4OWVHZFk3SzcxajBRdGtPamFXUWFR?=
 =?utf-8?B?NXc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <608CB1FEC4DBBF4490FA73BC45B7B863@namprd11.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: microchip.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: IA0PR11MB7257.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 693cd87e-3f91-4a9d-e55f-08de2cce4067
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Nov 2025 09:29:08.8249
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: +8onpMeK/RT6VjUr9CeY3t+lynwBkxmwMBGkrnXrIYxoi0UigxYmIxgsbw++Zns9kBiA/dgTYSoAw4KRUUsk1ik93UVr6noSRMCe+uuwANk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB6765

T24gMTEvMjYvMjUgMDg6NDAsIFRob21hcyBaaW1tZXJtYW5uIHdyb3RlOg0KPiBFWFRFUk5BTCBF
TUFJTDogRG8gbm90IGNsaWNrIGxpbmtzIG9yIG9wZW4gYXR0YWNobWVudHMgdW5sZXNzIHlvdSBr
bm93IA0KPiB0aGUgY29udGVudCBpcyBzYWZlDQo+IA0KPiBIaQ0KPiANCj4gQW0gMjYuMTEuMjUg
dW0gMDc6MjQgc2NocmllYiBMdWRvdmljLkRlc3JvY2hlc0BtaWNyb2NoaXAuY29tOg0KPj4gT24g
MTEvMjUvMjUgMTY6MDMsIFRob21hcyBaaW1tZXJtYW5uIHdyb3RlOg0KPj4+IEVYVEVSTkFMIEVN
QUlMOiBEbyBub3QgY2xpY2sgbGlua3Mgb3Igb3BlbiBhdHRhY2htZW50cyB1bmxlc3MgeW91IGtu
b3cNCj4+PiB0aGUgY29udGVudCBpcyBzYWZlDQo+Pj4NCj4+PiBIaQ0KPj4+DQo+Pj4gQW0gMjUu
MTEuMjUgdW0gMTU6Mzkgc2NocmllYiBMdWRvdmljLkRlc3JvY2hlc0BtaWNyb2NoaXAuY29tOg0K
Pj4+PiBPbiA4LzIxLzI1IDEwOjE3LCBUaG9tYXMgWmltbWVybWFubiB3cm90ZToNCj4+Pj4+IENh
bGwgZHJtX21vZGVfc2l6ZV9kdW1iKCkgdG8gY29tcHV0ZSBkdW1iLWJ1ZmZlciBzY2FubGluZSBw
aXRjaCBhbmQNCj4+Pj4+IGJ1ZmZlciBzaXplLiBBbGlnbiB0aGUgcGl0Y2ggdG8gYSBtdWx0aXBs
ZSBvZiA4Lg0KPj4+IEkgbWlzc2VkIGEgY2hhbmNlIHRvIGV4cGxhaW4gaXQgaGVyZS4gOi8NCj4+
IEkgd2FzIHdvbmRlcmluZyBpZiBpdCB3YXMgOC1iaXRzIG9yIDgtYnl0ZXMuDQo+Pg0KPj4+Pj4g
UHVzaCB0aGUgY3VycmVudCBjYWxjdWxhdGlvbiBpbnRvIHRoZSBvbmx5IGRpcmVjdCBjYWxsZXIg
aW14LiBJbXgncw0KPj4+Pj4gaGFyZHdhcmUgcmVxdWlyZXMgdGhlIGZyYW1lYnVmZmVyIHdpZHRo
IHRvIGJlIGFsaWduZWQgdG8gOC4gVGhlDQo+Pj4+PiBkcml2ZXIncyBjdXJyZW50IGFwcHJvYWNo
IGlzIGFjdHVhbGx5IGluY29ycmVjdCwgYXMgaXQgb25seSBndWFyYW50ZWVzDQo+Pj4+PiB0aGlz
IGltcGxpY2l0bHkgYW5kIHJlcXVpcmVzIGJwcCB0byBiZSBhIG11bHRpcGxlIG9mIDggYWxyZWFk
eS4gQQ0KPj4+Pj4gbGF0ZXIgY29tbWl0IHdpbGwgZml4IHRoaXMgcHJvYmxlbSBieSBhbGlnbmlu
ZyB0aGUgc2NhbmxpbmUgcGl0Y2gNCj4+Pj4+IHN1Y2ggdGhhdCBhbiBhbGlnbmVkIHdpZHRoIHN0
aWxsIGZpdHMgaW50byBlYWNoIHNjYW5saW5lJ3MgbWVtb3J5Lg0KPj4+Pj4NCj4+Pj4+IEEgbnVt
YmVyIG9mIG90aGVyIGRyaXZlcnMgYXJlIGJ1aWxkIG9uIHRvcCBvZiBnZW0tZG1hIGhlbHBlcnMg
YW5kDQo+Pj4+PiBpbXBsZW1lbnQgdGhlaXIgb3duIGR1bWItYnVmZmVyIGFsbG9jYXRpb24uIFRo
ZXNlIGRyaXZlcnMgaW52b2tlDQo+Pj4+PiBkcm1fZ2VtX2RtYV9kdW1iX2NyZWF0ZV9pbnRlcm5h
bCgpLCB3aGljaCBpcyBub3QgYWZmZWN0ZWQgYnkgdGhpcw0KPj4+Pj4gY29tbWl0Lg0KPj4+Pj4N
Cj4+Pj4+IHY1Og0KPj4+Pj4gLSBhdm9pZCByZXNldCBvZiBhcmd1bWVudHMgKFRvbWkpDQo+Pj4+
Pg0KPj4+Pj4gU2lnbmVkLW9mZi1ieTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1
c2UuZGU+DQo+Pj4+PiBSZXZpZXdlZC1ieTogVG9taSBWYWxrZWluZW4gPHRvbWkudmFsa2VpbmVu
QGlkZWFzb25ib2FyZC5jb20+DQo+Pj4+PiAtLS0NCj4+Pj4+IMKgwqDCoCBkcml2ZXJzL2dwdS9k
cm0vZHJtX2dlbV9kbWFfaGVscGVyLmPCoMKgwqDCoCB8IDcgKysrKystLQ0KPj4+Pj4gwqDCoMKg
IGRyaXZlcnMvZ3B1L2RybS9pbXgvaXB1djMvaW14LWRybS1jb3JlLmMgfCA0ICsrKy0NCj4+Pj4+
IMKgwqDCoCAyIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkN
Cj4+Pj4+DQo+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fZG1hX2hl
bHBlci5jIGIvZHJpdmVycy9ncHUvZHJtLw0KPj4+Pj4gZHJtX2dlbV9kbWFfaGVscGVyLmMNCj4+
Pj4+IGluZGV4IDRmMDMyMGRmODU4Zi4uYWIxYTcwYjFkNmYxIDEwMDY0NA0KPj4+Pj4gLS0tIGEv
ZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fZG1hX2hlbHBlci5jDQo+Pj4+PiArKysgYi9kcml2ZXJz
L2dwdS9kcm0vZHJtX2dlbV9kbWFfaGVscGVyLmMNCj4+Pj4+IEBAIC0yMCw2ICsyMCw3IEBADQo+
Pj4+PiDCoMKgwqAgI2luY2x1ZGUgPGRybS9kcm0uaD4NCj4+Pj4+IMKgwqDCoCAjaW5jbHVkZSA8
ZHJtL2RybV9kZXZpY2UuaD4NCj4+Pj4+IMKgwqDCoCAjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4N
Cj4+Pj4+ICsjaW5jbHVkZSA8ZHJtL2RybV9kdW1iX2J1ZmZlcnMuaD4NCj4+Pj4+IMKgwqDCoCAj
aW5jbHVkZSA8ZHJtL2RybV9nZW1fZG1hX2hlbHBlci5oPg0KPj4+Pj4gwqDCoMKgICNpbmNsdWRl
IDxkcm0vZHJtX3ZtYV9tYW5hZ2VyLmg+DQo+Pj4+Pg0KPj4+Pj4gQEAgLTMwNCw5ICszMDUsMTEg
QEAgaW50IGRybV9nZW1fZG1hX2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZQ0KPj4+Pj4gKmZp
bGVfcHJpdiwNCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIHN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAqYXJncykNCj4+Pj4+IMKgwqDC
oCB7DQo+Pj4+PiDCoMKgwqDCoMKgIHN0cnVjdCBkcm1fZ2VtX2RtYV9vYmplY3QgKmRtYV9vYmo7
DQo+Pj4+PiArwqDCoMKgIGludCByZXQ7DQo+Pj4+Pg0KPj4+Pj4gLcKgwqDCoCBhcmdzLT5waXRj
aCA9IERJVl9ST1VORF9VUChhcmdzLT53aWR0aCAqIGFyZ3MtPmJwcCwgOCk7DQo+Pj4+PiAtwqDC
oMKgIGFyZ3MtPnNpemUgPSBhcmdzLT5waXRjaCAqIGFyZ3MtPmhlaWdodDsNCj4+Pj4+ICvCoMKg
wqAgcmV0ID0gZHJtX21vZGVfc2l6ZV9kdW1iKGRybSwgYXJncywgU1pfOCwgMCk7DQo+Pj4+PiAr
wqDCoMKgIGlmIChyZXQpDQo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0
Ow0KPj4+PiBIaSwNCj4+Pj4NCj4+Pj4gV2FzIGl0IGludGVudGlvbmFsIGZvciB0aGlzIGNoYW5n
ZSB0byBhbHRlciB0aGUgcGl0Y2g/DQo+Pj4gTW9zdCBoYXJkd2FyZSBkb2VzIG5vdCBuZWVkIHRo
ZSBwaXRjaCB0byBiZSBvZiBhIGNlcnRhaW4gYWxpZ25tZW50LiBCdXQNCj4+PiB0aGVzZSBidWZm
ZXJzIGFyZSBwb3NzaWJseSBzaGFyZWQgd2l0aCBvdGhlciBoYXJkd2FyZSwgd2hpY2ggc29tZXRp
bWVzDQo+Pj4gbmVlZHMgYWxpZ25tZW50IHRvIGNlcnRhaW4gdmFsdWVzLiBVc2luZyBTWl84IGlt
cHJvdmVzIGNvbXBhdGlibGUgd2l0aA0KPj4+IHRoYXQgaGFyZHdhcmUuDQo+Pj4NCj4+Pj4gVGhl
IGFsaWdubWVudCByZXF1aXJlbWVudCBoYXMgYmVlbiB1cGRhdGVk4oCUZnJvbSA4LWJpdCBhbGln
bm1lbnQgdG8NCj4+Pj4gNjQtYml0IGFsaWdubWVudC4gU2luY2UgdGhlIHBpdGNoIGlzIGV4cHJl
c3NlZCBpbiBieXRlcywgd2Ugc2hvdWxkIHBhc3MNCj4+Pj4gU1pfMSBpbnN0ZWFkIG9mIFNaXzgg
Zm9yIGh3X3BhdGNoX2FsaWduLg0KPj4+Pg0KPj4+PiBGb3IgZXhhbXBsZSwgZm9yIGFuIDg1MMOX
NDgwIGZyYW1lYnVmZmVyIGF0IDE2IGJwcCwgdGhlIHBpdGNoIHNob3VsZCBiZQ0KPj4+PiAxNzAw
IGJ5dGVzLiBXaXRoIHRoZSBuZXcgYWxpZ25tZW50LCB0aGUgcGl0Y2ggYmVjb21lcyAxNzA0IGJ5
dGVzLg0KPj4+IE1hbnkgZGlzcGxheSBtb2RlcyBoYXZlIGFuIDgtYnl0ZSBhbGlnbm1lbnQgaW4g
dGhlaXIgd2lkdGguIDg1MCBwaXhlbHMNCj4+PiBpcyBzb21ld2hhdCBvZiBhbiBleGNlcHRpb24u
DQo+PiBJbmRlZWQsIGJ1dCBvdmVybGF5LXR5cGUgcGxhbmVzIGFyZSBvZnRlbiB1c2VkIHRvIGRp
c3BsYXkgd2luZG93cyB0aGF0DQo+PiBhcmUgbm90IHRoZSBzYW1lIHNpemUgYXMgdGhlIHNjcmVl
biwgYW5kIHRoZXJlZm9yZSBwb3RlbnRpYWxseSBub3Qgb24NCj4+IDgtYnl0ZXMgYWxpZ25lZC4N
Cj4+DQo+Pj4+IFBsZWFzZSBsZXQgbWUga25vdyBpZiB5b3XigJlkIGxpa2UgbWUgdG8gc3VibWl0
IGEgZml4Lg0KPj4+IERvIHlvdSBzZWUgYSBidWcgd2l0aCB5b3VyIGhhcmR3YXJlPyBVbmxlc3Mg
dGhpcyBjcmVhdGVzIGEgcmVhbCBwcm9ibGVtLA0KPj4+IEknZCBsaWtlIHRvIGtlZXAgaXQgYXMg
aXQgaXMgbm93Lg0KPj4gWWVzLCB0aGF04oCZcyBob3cgSSBub3RpY2VkIHRoaXMgY2hhbmdlLiBJ
IGhhdmUgYW4gYXBwbGljYXRpb24gdGhhdA0KPj4gcmVxdWVzdHMgYSBmcmFtZWJ1ZmZlciBsYXJn
ZXIgdGhhbiBteSBzY3JlZW4sIGluIHRoaXMgY2FzZSA4NTB4NDgwIGluDQo+PiBSR0I1NjUgZm9y
IGFuIDgwMHg0ODAgZGlzcGxheS4gU28gSSBoYXZlIGEgcGl0Y2ggb2YgMTcwMCBieXRlcy4gTm93
IGl04oCZcw0KPj4gdXNpbmcgYSBwaXRjaCBvZiAxNzA0LCB3aGljaCBzaGlmdHMgbXkgbGluZXMu
DQo+IA0KPiBIb25lc3RseSwgeW91ciBhcHBsaWNhdGlvbiBpcyBicm9rZW4uIFRoZSBpb2N0bCBy
ZXR1cm5zIHRoZSBwaXRjaCB2YWx1ZQ0KPiB0byB1c2VyIHNwYWNlIGFuZCB0aGF0J3Mgd2hhdCB0
aGUgcHJvZ3JhbSBzaG91bGQgdXNlLiBTb21lIGhhcmR3YXJlIGhhcw0KPiBoYXJkIGNvbnN0cmFp
bnRzIG9uIHRoZSBwaXRjaCwgc28geW91IHdpbGwgc29vbmVyIG9yIGxhdGVyIHJ1biBpbnRvIHRo
ZQ0KPiBzYW1lIHByb2JsZW0gYWdhaW4uDQoNClllcywgSeKAmW0gY3VycmVudGx5IHRyeWluZyB0
byBmaW5kIHdoZXJlIHRoZSBwaXRjaCBpbmZvcm1hdGlvbiBpcyBiZWluZyANCmxvc3QsIGdpdmVu
IHRoYXQgd2UgZG8gY29ycmVjdGx5IHJldHJpZXZlIHRoZSB2YWx1ZSBwcm92aWRlZCBieSB0aGUg
DQprZXJuZWwgYWZ0ZXIgdGhlIGlvY3RsLg0KDQo+IA0KPiBBbnl3YXksIGZlZWwgZnJlZSB0byBz
dWJtaXQgYSBwYXRjaCB0byBjYWxsIGRybV9tb2RlX3NpemVfZHVtYigpIHdpdGhvdXQNCj4gU1pf
OC4gVGhlIGJlc3QgdmFsdWUgd291bGQgYmUgMCwgc28gdGhhdCB0aGUgZnVuY3Rpb24gcGlja3Mg
YSBkZWZhdWx0IGJ5DQo+IGl0c2VsZi4gU2luY2UgeW91J3JlIGF0IGl0LCBtYXliZSBhbHNvIGxv
b2sgYXQgcGF0Y2hlcyA0IGFuZCA1IG9mIHRoaXMNCj4gc2VyaWVzLiBUaGV5IGhhdmUgc2ltaWxh
ciBjb2RlIGZvciBvdGhlciBtZW1vcnkgbWFuYWdlcnMuDQoNCkkgaGF2ZSBubyBzdHJvbmcgb3Bp
bmlvbiBhYm91dCB0aGlzIDgtYnl0ZXMgYWxpZ25tZW50IGlmIGl0IHdhcyANCmludGVuZGVkLiBU
aGlzIGNvdWxkIHBvdGVudGlhbGx5IGJyZWFrIG90aGVyIGFwcGxpY2F0aW9ucyB0aGF0IGhhZCBi
ZWVuIA0Kd29ya2luZyB1bnRpbCBub3csIGV2ZW4gaWYgaXQgZG9lcyBpbmRlZWQgcmV2ZWFsIGFu
IGlzc3VlIG9uIHRoZSANCmFwcGxpY2F0aW9uIHNpZGUuIEFuZCBpdCBjYW4gcmVzdWx0IGluIGxh
cmdlciBidWZmZXJzIHdpdGhvdXQgaXQgDQpuZWNlc3NhcmlseSBiZWluZyBuZWVkZWQuDQoNCkkn
bGwgcHJlcGFyZSBwYXRjaGVzIGFuZCB3ZSdsbCBzZWUgd2hlcmUgdGhhdCBsZWFkcy4NCg0KUmVn
YXJkcywNCkx1ZG92aWMNCg0KPiANCj4gQmVzdCByZWdhcmRzDQo+IFRob21hcw0KPiANCj4+DQo+
PiBSZWdhcmRzLA0KPj4gTHVkb3ZpYw0KPj4NCj4+PiBCZXN0IHJlZ2FyZHMNCj4+PiBUaG9tYXMN
Cj4+Pg0KPj4+PiBSZWdhcmRzLA0KPj4+PiBMdWRvdmljDQo+Pj4+DQo+Pj4+DQo+Pj4+PiDCoMKg
wqDCoMKgIGRtYV9vYmogPSBkcm1fZ2VtX2RtYV9jcmVhdGVfd2l0aF9oYW5kbGUoZmlsZV9wcml2
LCBkcm0sIGFyZ3MtDQo+Pj4+Pj4gc2l6ZSwNCj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgICZhcmdzLT5oYW5kbGUpOw0KPj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv
Z3B1L2RybS9pbXgvaXB1djMvaW14LWRybS1jb3JlLmMgYi9kcml2ZXJzL2dwdS8NCj4+Pj4+IGRy
bS9pbXgvaXB1djMvaW14LWRybS1jb3JlLmMNCj4+Pj4+IGluZGV4IGVjNWZkOWEwMWYxZS4uYWY0
YTMwMzExZTE4IDEwMDY0NA0KPj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My9p
bXgtZHJtLWNvcmUuYw0KPj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My9pbXgt
ZHJtLWNvcmUuYw0KPj4+Pj4gQEAgLTE0NSw4ICsxNDUsMTAgQEAgc3RhdGljIGludCBpbXhfZHJt
X2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZQ0KPj4+Pj4gKmZpbGVfcHJpdiwNCj4+Pj4+IMKg
wqDCoMKgwqAgaW50IHJldDsNCj4+Pj4+DQo+Pj4+PiDCoMKgwqDCoMKgIGFyZ3MtPndpZHRoID0g
QUxJR04od2lkdGgsIDgpOw0KPj4+Pj4gK8KgwqDCoCBhcmdzLT5waXRjaCA9IERJVl9ST1VORF9V
UChhcmdzLT53aWR0aCAqIGFyZ3MtPmJwcCwgOCk7DQo+Pj4+PiArwqDCoMKgIGFyZ3MtPnNpemUg
PSBhcmdzLT5waXRjaCAqIGFyZ3MtPmhlaWdodDsNCj4+Pj4+DQo+Pj4+PiAtwqDCoMKgIHJldCA9
IGRybV9nZW1fZG1hX2R1bWJfY3JlYXRlKGZpbGVfcHJpdiwgZHJtLCBhcmdzKTsNCj4+Pj4+ICvC
oMKgwqAgcmV0ID0gZHJtX2dlbV9kbWFfZHVtYl9jcmVhdGVfaW50ZXJuYWwoZmlsZV9wcml2LCBk
cm0sIGFyZ3MpOw0KPj4+Pj4gwqDCoMKgwqDCoCBpZiAocmV0KQ0KPj4+Pj4gwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJldDsNCj4+Pj4+DQo+Pj4gLS0gDQo+Pj4gLS0gDQo+Pj4g
VGhvbWFzIFppbW1lcm1hbm4NCj4+PiBHcmFwaGljcyBEcml2ZXIgRGV2ZWxvcGVyDQo+Pj4gU1VT
RSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJIDQo+Pj4gRnJhbmtlbnN0ci4gMTQ2LCA5
MDQ2MSBOw7xybmJlcmcsIEdlcm1hbnksIHd3dy5zdXNlLmNvbQ0KPj4+IEdGOiBKb2NoZW4gSmFz
ZXIsIEFuZHJldyBNY0RvbmFsZCwgV2VybmVyIEtub2JsaWNoLCAoSFJCIDM2ODA5LCBBRw0KPj4+
IE7DvHJuYmVyZykNCj4+Pg0KPj4+DQo+Pg0KPiANCj4gLS0gDQo+IC0tIA0KPiBUaG9tYXMgWmlt
bWVybWFubg0KPiBHcmFwaGljcyBEcml2ZXIgRGV2ZWxvcGVyDQo+IFNVU0UgU29mdHdhcmUgU29s
dXRpb25zIEdlcm1hbnkgR21iSA0KPiBGcmFua2Vuc3RyLiAxNDYsIDkwNDYxIE7DvHJuYmVyZywg
R2VybWFueSwgd3d3LnN1c2UuY29tDQo+IEdGOiBKb2NoZW4gSmFzZXIsIEFuZHJldyBNY0RvbmFs
ZCwgV2VybmVyIEtub2JsaWNoLCAoSFJCIDM2ODA5LCBBRyANCj4gTsO8cm5iZXJnKQ0KPiANCj4g
DQoNCg==


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 09:34:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 09:34:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172426.1497496 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOBui-0002gZ-5I; Wed, 26 Nov 2025 09:34:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172426.1497496; Wed, 26 Nov 2025 09:34:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOBui-0002gS-1Q; Wed, 26 Nov 2025 09:34:16 +0000
Received: by outflank-mailman (input) for mailman id 1172426;
 Wed, 26 Nov 2025 09:34: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOBug-0002gM-EE
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 09:34: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 10522ec4-caab-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 10:34:11 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-477b91680f8so50871325e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 01:34: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-42cb7f2e598sm38788653f8f.4.2025.11.26.01.34.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 01:34: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: 10522ec4-caab-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764149650; x=1764754450; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=u1letOt/PF0D+BOLnQ50xiHDpOAEeo3oCI43bzUEmp4=;
        b=X7Otvx1lGVjuDUPRqeur6iS6qmMobH1mIMy8Z6VQZKdkA+H5VdKIengccb8NLx+YH2
         4c6qQow4EDY2rDfsx+CXKiMj4HH4yoN9LpFRK9mTwVbEWfZGcIw5FYT3AZqHT1ulXU2Y
         hf6FdmpnmLQI83uJGEIJzOhd3hgp3AhLw+ZqX2rSjBteDNZS+2IsE1Jg/7rDqX4nFaKp
         P5OGt3x5KAEpKdGBSKKE9IkLKDqDRU9QOqgyn/h+rruJZyJSuRI4Gz1qWFFxDXFqv5g7
         9iUDzDj8y1gsLjkaV5Oc5ySXquMIDl7rcaIvywC1WG5ELo9dkS+Xi0IThrqsomBYQfqB
         PoHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764149650; x=1764754450;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=u1letOt/PF0D+BOLnQ50xiHDpOAEeo3oCI43bzUEmp4=;
        b=VNWHKU4x8RMt0h7bhP3ia5rX2DxM+Gciu22EhAMZdWnQZdT0C5+0qmbIjca5LrQnrt
         Kvz61be4I2AcoAWN6Idn8uTyNWbCbCZKkuTHu32SJpOw+CC/KsoXKrcz84uW+etRe5DW
         isJrnbUE/20w0ta5PNxtCwgC7c/7/hVCgxlzssiKPKD6tcvHrfW3jY5JvrwMMWAnJQHX
         jFYlbqmfnaFxEHGYB4Ks1voRWIYJJykgu7oBJvvGKnYk1KgyuIYp0U9CB+laGMKlDu4F
         XruIfH422gIJ39laVYxKgVyfCfos3OJBtBTGMqYAaFI8ZEkcQP1ADuMwB1a5FJJcfkae
         aCOQ==
X-Forwarded-Encrypted: i=1; AJvYcCUSc0nMHJ9Tjt3iwvGsojXNXVuNOsihAQulyC/7GL3OB3AQam8bL+DbZgbjxocfqI9eW+Le+zsIN0Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz0DaM6+sRLB0dfs8N8r475v8ef8HUQcSMoX2nr2upUuK71I96A
	laj2rGiw3npiCdE1q4sL2kW4ypxYSivfSfbdeDSNCJaHGhwT1CaxZ1jti0BRbY38Mw==
X-Gm-Gg: ASbGncsyd0aWr5eKh/C/zLckNeME+U/wOioM80bSQuVGCpzOtJIhSbhZ58Fu5vf6vBH
	sszmwlL6cbT6tIyU1KTNpFsfojDW9qYLD6wsdV2m2ZTLzkJ6lpbUht70w0ApktpjpmlRNBhdd7m
	d0NVO5gHAJvtyWi4E0lDhpj5prV5Q0PMif8RYkl4uiX416vfiz5aF4SZ5keAzd6rjNqt06v55C5
	99d8sUHGGx4ZOZH3+A1/gbEebJ7vvAPqdtyNJyI+Qve3YxTzfmBZUEtiDL3pXXvChfg9tazRNub
	HtYb4vUFTd0VDsHGaIEhDMf2sy0HGbZ45sEbnPHfS7ptuefpIdf7dC/hOtHaJUZDNuu8Lv5QGAE
	NGFkr7uczhVAakQxhvJgQPVELU0WDIy2Dlmte5JJk/C41Hdp6hToznk93bLLfsmvinDyumcBEX9
	QGlmQ7kgRtYCcY/o+VpxBT+RZ2H1dXlPEqehTM3vEMZTp36RmUcgesEH4MoYgDiwp74tynd3y4b
	a8=
X-Google-Smtp-Source: AGHT+IEIEd6CInBiSXcm+yV+r2PHHKq2rDMpzact1mpk7jnAF+tHVQsd5CugjdGlcf60Tr7DPPMzig==
X-Received: by 2002:a05:600c:5489:b0:45d:5c71:769a with SMTP id 5b1f17b1804b1-477c112400amr162908925e9.26.1764149650475;
        Wed, 26 Nov 2025 01:34:10 -0800 (PST)
Message-ID: <55d23825-fb8c-472c-9d31-5b482f32e915@suse.com>
Date: Wed, 26 Nov 2025 10:34:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 24/24] xen: move MGMT_HYPERCALLS out of
 PV_SHIM_EXCLUSIVE
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, 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>, xen-devel@lists.xenproject.org
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-25-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251121105801.1251262-25-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2025 11:58, Penny Zheng wrote:
> As we're aiming at moving away from PV_SHIM_EXCLUSIVE=y, we are
> moving MGMT_HYPERCALLS out of it.

How are we "moving away from PV_SHIM_EXCLUSIVE=y"? It's the "depends on
!PV_SHIM_EXCLUSIVE" (and related Makefile constructs) which we decided to
get rid of.

> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -30,6 +30,7 @@ obj-bin-y += dmi_scan.init.o
>  obj-y += domain.o
>  obj-bin-y += dom0_build.init.o
>  obj-y += domain_page.o
> +obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
>  obj-y += e820.o
>  obj-y += emul-i8254.o
>  obj-y += extable.o
> @@ -79,7 +80,6 @@ obj-$(CONFIG_VM_EVENT) += vm_event.o
>  obj-y += xstate.o
>  
>  ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
> -obj-$(CONFIG_MGMT_HYPERCALLS) += domctl.o
>  obj-y += platform_hypercall.o
>  obj-$(CONFIG_COMPAT) += x86_64/platform_hypercall.o
>  endif

A change like this fits under the subject.

> --- a/xen/arch/x86/hvm/Kconfig
> +++ b/xen/arch/x86/hvm/Kconfig
> @@ -1,6 +1,5 @@
>  menuconfig HVM
>  	bool "HVM support"
> -	depends on !PV_SHIM_EXCLUSIVE
>  	default !PV_SHIM
>  	select COMPAT
>  	select IOREQ_SERVER

This, however, is entirely unrelated afaics.

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

Whereas this could fit here if the subject was e.g. "decouple PV_SHIM_EXCLUSIVE and
MGMT_HYPERCALLS".

Further, because of prior issue: Can you please clarify that you have tried builds
with all (possible) combinations of the involved Kconfig settings? The set isn't
that big, so exhaustive testing is possible.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 09:36:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 09:36:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172439.1497505 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOBx8-0003Ha-JU; Wed, 26 Nov 2025 09:36:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172439.1497505; Wed, 26 Nov 2025 09:36: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 1vOBx8-0003HT-Gp; Wed, 26 Nov 2025 09:36:46 +0000
Received: by outflank-mailman (input) for mailman id 1172439;
 Wed, 26 Nov 2025 09: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOBx6-0003HN-PL
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 09:36:44 +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 6a9dffeb-caab-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 10:36:42 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-42b3c965ca9so3612304f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 01:36: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-42cb7f34ff3sm40322670f8f.16.2025.11.26.01.36.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 01:36: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: 6a9dffeb-caab-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764149802; x=1764754602; 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=lSvNV59xQ/tUIl797hLPajV84NYL1X9lcVEsAN5AThQ=;
        b=ODEFp4Rd8/3tWeiCWHinLvpTUWY5REQzYIvRNZfJZuUqfHenTLyuV6r+LRezr/h6Tz
         EbMDDJ/0rCixcnzo2E+3EUQ5tA3lepVNRlau4GIsHRWKPu6uIA77px/hGiDHdGNwzVod
         Xq2dGpFy+5DW1m0NsKgGBZjWQUYxST/depcwYJOCfLS/RTTDIk2t2fhltBD4pFlYn9uJ
         GBYlEomOyyR3xXuCtorLdX9sRZIATw7vxzdwTLYAdqw6UW/yO6y6H/Ohb46dL/R3exe1
         ViAFb7IivgVXe2O3vloCXDwFZ36Qkl2KDYtcdxMuEM1GMlWEHcIF0a2shUgNBlNWjKdf
         TqUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764149802; x=1764754602;
        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=lSvNV59xQ/tUIl797hLPajV84NYL1X9lcVEsAN5AThQ=;
        b=JRGTaHbu9yHOL0OtK7pbgGEaMErKXi2nteUy8XbUxToIicU8gIIbbyBAunOaVGo5RS
         wCMDpvPgTQBLKTLpfw+/8Zkdnqxta/CS/5+xYEWcKv1BiFjB83xx9Vx+7+nAvTpO9ma8
         8VFO+mxF0kmiqIFJx2Nr6WWJa1JHxu2iJMuAFSvddJDK2q9/qlKAgEy76iM4w6lUzEzC
         NYU1L7spZCEhKPEI0sz+fTbCXYXu42ScJE15numPlswlRtG613mebN7JF6XXL3URIlRF
         AaDjmU9a8kJXhQwB2DvjaBNgivsALt4G8u4uy9brOGTcp5BetIgCFlhjlBhdPtr4HC32
         tCDw==
X-Forwarded-Encrypted: i=1; AJvYcCUXHDurmw4wFXLXio/tGeKxLv4Ed/7dHLOo54fd+ptPfCkkHIt2VcKgBXI6Ib8xJNqQruKH7dP+nKU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzvCTvyTATxhkVWeUB6UEMP3HyIFyqJLrqBMl5BoMmSFnqSA8bX
	/UX334JaqjPvhX0fA6nXsGWgQCsuLEIxK32gHulnIK1TfTxGquo+T+ioh7ND3VuIQw==
X-Gm-Gg: ASbGncuu0N3uHFlDx1eN3IBAoSe3k/GdMhbeaqzkISCDnuyjCbJqXuSFeRM7kAnCFx5
	1reIRrs149Kg0BHZ6rB+tw2dt5gk6BHB+uspmkSNtefKSRXPENB733KyeMO5iZFQu/fRkYreR7+
	1RhqsMsUP4vhISFmdeRpGLt9X1mLlfIASpl7stihLFwVyMl2ZmptJs/H7MW8nVIc7J9mR/oiIEi
	Eaq6gZRrq3oSUIDp+aN24heCeAIUZ58vMNPfqy4vPtsOBQZUL6fqjm0UGgXdRmzTx2Xq652//xe
	ViiZYFrgw+4Ewv4GbgldcjJhxeRYyT4rwebqKuY+7SzsgBsHI3qNgnnP0x34vbuO7jSXakeu8IB
	2YSGHTWOSur8LvrMpaajNUrq61ByVO9hPkAREQfOaVv2m7KNZtnmN0hmLpXUee9Mdz6eDCEebXa
	IIAmjeisaA4e8NAHYKai4Qh51nlIcgE0xRorXKNJrh8UxKqWS2y5pfIwclhi0TDr8WMLh8NqPA0
	no=
X-Google-Smtp-Source: AGHT+IH7joh8d8pVnfmR7+YnUQRKLSAaZIpF56M9eTx4jtakNESPFijwBIED95a2MmVDjlC1c6Jcmw==
X-Received: by 2002:a5d:5850:0:b0:42b:3746:3b86 with SMTP id ffacd0b85a97d-42cc1d61bd1mr21007187f8f.54.1764149802117;
        Wed, 26 Nov 2025 01:36:42 -0800 (PST)
Message-ID: <f74aeee7-7ec2-4e00-9729-273584946563@suse.com>
Date: Wed, 26 Nov 2025 10:36:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 22/24] xen/domctl: domctl_lock synchronization only
 when MGMT_HYPERCALLS=y
From: Jan Beulich <jbeulich@suse.com>
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@epam.com,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-23-Penny.Zheng@amd.com>
 <6f9d00c7-8304-4d80-92c8-f134cceb01c1@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: <6f9d00c7-8304-4d80-92c8-f134cceb01c1@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 10:20, Jan Beulich wrote:
> On 21.11.2025 11:57, Penny Zheng wrote:
>> Helper domctl_lock_{acquire,release} is domctl_lock, which HVM_PARAM_IDENT_PT
>> uses to ensure synchronization on potential domctl-op altering guest state.
>> So it is only needed when MGMT_HYPERCALLS=y.
>>
>> Suggested-by: Jan Beulich <jbeulich@suse.com>
>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> 
> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> I'd like to note though that ...
> 
>> ---
>> v3 -> v4:
>> - new commit
>> ---
>>  xen/arch/x86/hvm/hvm.c | 5 +++--
>>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> ... with this diffstat the subject prefix is pretty misleading once again. I may
> take the liberty and convert it to x86/hvm: (and then also add parentheses to
> domctl_lock()).

Actually, the series looks to be in need of a full re-submission anyway. I.e. I
can't sensibly cherry-pick parts to put in early.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 09:39:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 09:39:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172450.1497515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOBzl-0003qw-Vs; Wed, 26 Nov 2025 09:39:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172450.1497515; Wed, 26 Nov 2025 09:39:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOBzl-0003qo-Sk; Wed, 26 Nov 2025 09:39:29 +0000
Received: by outflank-mailman (input) for mailman id 1172450;
 Wed, 26 Nov 2025 09: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOBzj-0003qJ-Pe
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 09:39:27 +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 c9e6ee75-caab-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 10:39:22 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso5317075e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 01:39: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-4790adfd181sm33762625e9.14.2025.11.26.01.39.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 01:39: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: c9e6ee75-caab-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764149962; x=1764754762; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mZg2WKFZMeQJ68a8Xwt8SeNBnveQS5XpWXNYLo8xRjA=;
        b=CLTQVOzNcujGBt2/ZZG5ab/t7ocCtuU5UqeHy8SynEMkvsM8VfFVI49rRBi0a5Px1W
         a/Wdx7mxy3dUUoLn02n4Tn/YGJExNxF5ICpJTX411R+ho8FVjtyPbxyfGRhhBTG8Bm3a
         v28YlkCWtzqW5fQz6Q42KS6/wFkzjoTW7FyquMDbNdrgNYXZzUj0FhcTBo1rlXtPyLCB
         0/NOzmD7DI52cGi3lD0cFA4e/Ksb/yn4852pEb42IUeV4tZqrIqXWZ0Hm+d836TeWY+S
         JqCx8q4mLzuVVTDyDDn+YeLowK6vvQFij/0a85lqKveZna8OVGLs9mkXNU+zCmFqQ2/k
         z7cg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764149962; x=1764754762;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mZg2WKFZMeQJ68a8Xwt8SeNBnveQS5XpWXNYLo8xRjA=;
        b=HxhtghrbgVaqpQ37Uiw+ZqfPXToXxD4RJbrU4ptxjPEecF2LNountDVz7zTpxpJr2z
         a2IsNRGmF/LDZrWzoVkuBxYE3PVJTlhAAyyEXohJsO9ecGo5J4yk5kpYV9Fp9YM63iYR
         0AMsCX9SF6yNtX8IOt0N7uUl3piCe4ZpuXB11qhd4jI74o/JfHKe7lvO17S5CIkaWQwV
         dI3rUhj61ZRMYo3OWjXTD0QcRtGiexfaYb+6AY2vH7TAwb7U/Fe55u3A92xqfttfPPfS
         wjh0GflsZxEvUbQKCnt6L3E8B/wfk+lGOeXTYybShXbWd2aRckihJgin9wAaEWql1saI
         o/QQ==
X-Forwarded-Encrypted: i=1; AJvYcCUqD7g8A+7U32w+Q98280I727ZQfnhDJniHJRBdRnKBif910tTDVA4D4YORrGEXsk5hPeXA9Zjp+Yw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwxsNswNO1STfbtgQW2kk6D+k/jArPZ+DlSI1rrDmwZ1r28cTzG
	craNWxD2I9s6xrwuThcZ6CDGS3i9rli47o3b/DMEAFByO8WcEpsLmP5cT953i41wAQ==
X-Gm-Gg: ASbGncu0YzsAUQD2cJDpv6jvTVbx2ZuX5wtWr1qom/Kkla4JMLBq1bIUFMRYBVV+yX8
	1LkeuCXbnzyoO8Hffg7lrIjqDkHU2gbQ53lcAO1PmEfkK+T6U130bk7ZR3ZHtlJrur9Qx05MrY5
	A1/1yEwnCX3GxHK7MM3lWTlNGzmsfD4Jpk81jppvTOvfniDGN7/qXercmdDc24SouMHcRs4InZf
	d+isajvjtXOQmxw6f+W/Hm7G4GKpK0F4tA10CQ0IeO7E2Cqi1N1nnoqgDsDF61wu2DvD6eT9HHS
	nM+Mx6Xzx6Aa6/tEaHhSCITumDUlx4scsAo6ashuUU3t3Na9sFo7ZvJ5IOwb2mOeQtNIHb8cwiz
	cOvR28LMg/2a3WaAkd+Xwk/pQAhmAGWsY79NQybfbZwOD7jltGn9OhPdlth8Vu45UPCcOY3zcJ+
	tfiIHX/BeSJIeeIhmxa9VBX7pYVtOJosAvZIG1xwX1BcN2hSYfAlq4w8wb3LZYkw6ufmvVINsm8
	UI=
X-Google-Smtp-Source: AGHT+IEdp6yqMZWMdi+cpCl30yCtPYrgsL6OiTePhSWlKn3QGrEpVRnpeYhNxuEqCpe5TyxTZa+TdA==
X-Received: by 2002:a05:600c:1d14:b0:477:9d88:2da6 with SMTP id 5b1f17b1804b1-477c026ed62mr181868245e9.0.1764149961927;
        Wed, 26 Nov 2025 01:39:21 -0800 (PST)
Message-ID: <e90d4db1-919a-42bd-872c-b6a23b16412e@suse.com>
Date: Wed, 26 Nov 2025 10:39:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 06/24] xen/domctl: consolidate domain.c with
 MGMT_HYPERCALLS
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, grygorii_strashko@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: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-7-Penny.Zheng@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251121105801.1251262-7-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.11.2025 11:57, Penny Zheng wrote:
> The following functions, scattered in common/domain.c, and are only referenced
> and responsible for domctl-op:
> - domain_pause_by_systemcontroller
> - domain_resume
> - domain_set_node_affinity
> So they shall be wrapped with CONFIG_MGMT_HYPERCALLS. Otherwise it will
> become unreachable codes when MGMT_HYPERCALLS=n, and hence violating Misra
> rule 2.1.
> Move them together to avoid scattering #ifdef.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

One further small request here:

> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1115,35 +1115,6 @@ void __init setup_system_domains(void)
>  #endif
>  }
>  
> -int domain_set_node_affinity(struct domain *d, const nodemask_t *affinity)
> -{
> -    /* Being disjoint with the system is just wrong. */
> -    if ( !nodes_intersects(*affinity, node_online_map) )
> -        return -EINVAL;
> -
> -    spin_lock(&d->node_affinity_lock);
> -
> -    /*
> -     * Being/becoming explicitly affine to all nodes is not particularly
> -     * useful. Let's take it as the `reset node affinity` command.
> -     */
> -    if ( nodes_full(*affinity) )
> -    {
> -        d->auto_node_affinity = 1;
> -        goto out;
> -    }
> -
> -    d->auto_node_affinity = 0;
> -    d->node_affinity = *affinity;
> -
> -out:

I realize you only move this, but ...

> @@ -1616,10 +1560,68 @@ static int _domain_pause_by_systemcontroller(struct domain *d, bool sync)
>      return 0;
>  }
>  
> +#ifdef CONFIG_MGMT_HYPERCALLS
> +int domain_set_node_affinity(struct domain *d, const nodemask_t *affinity)
> +{
> +    /* Being disjoint with the system is just wrong. */
> +    if ( !nodes_intersects(*affinity, node_online_map) )
> +        return -EINVAL;
> +
> +    spin_lock(&d->node_affinity_lock);
> +
> +    /*
> +     * Being/becoming explicitly affine to all nodes is not particularly
> +     * useful. Let's take it as the `reset node affinity` command.
> +     */
> +    if ( nodes_full(*affinity) )
> +    {
> +        d->auto_node_affinity = 1;
> +        goto out;
> +    }
> +
> +    d->auto_node_affinity = 0;
> +    d->node_affinity = *affinity;
> +
> +out:

... can you please add a leading blank here, to conform to ./CODING_STYLE?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 10:06:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 10:06:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172460.1497525 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOCPU-0008VN-TZ; Wed, 26 Nov 2025 10:06:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172460.1497525; Wed, 26 Nov 2025 10:06:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOCPU-0008VG-QO; Wed, 26 Nov 2025 10:06:04 +0000
Received: by outflank-mailman (input) for mailman id 1172460;
 Wed, 26 Nov 2025 10:06: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=GqHT=6C=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vOCPT-0008VA-Kx
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 10:06:03 +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 7fa31f7a-caaf-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 11:05:57 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DB3PR0302MB9207.eurprd03.prod.outlook.com (2603:10a6:10:436::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.11; Wed, 26 Nov
 2025 10:05:51 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9343.016; Wed, 26 Nov 2025
 10:05: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: 7fa31f7a-caaf-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=j+mvPaqvYUw5Itm473q69nL+pfmmPPEPPhwOGl07SIjgrLwwqrMxPBv+6WIliU1AG5my3N/GQ1bjGmmb2WgNuLVN98W2qOLwPZCTzpozBCUG4Y6tZawydPYSulaqYE2JMjdgPmPMkxUtDHz5/hUf4s9DLvJXEfdwMtp7PkE4CsTJWq14Bi9A/eCSsNqOT6ii4KBPJ4CiIW5Q/ZMnRSS+3TsXgamSUaM5XjuvTIjN2OjoCbuXk4p9xdgRIVKOHVi+Us65HKfJYL7qTiju8Hzh1W40FddlA6sCBR6q1KSdaCHWJ2WZ0+NVVRArX/NMa0iQzfGmk+bQfK+S8/SpOFreFA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=L1q5MDWGIp02fWIKSB6gChHTHQNtLxslvJQ5/PK5LAg=;
 b=L/ynRHMYM7LSi6PeUpOMSCiE9oI8JDkXaZ5ykvHObq8BdHGsbUo+5VdmcBCaOERv9MSCdoukdA1zAic7k9C8wR8Nm1xSLzzPnk9RsRhdCc0+N3xvNANrjvmuQqj0UHoH9Ah2wbV7YII1e4uuX5rfNEHiuQ3dYkaTd4JaQXLU2UqdcI46L6SJ9jI6LCa94vcRB70HlaxwWIyYDAVkTXGRYTzo5H2DJrnE6N92Dy3Ws5a6AqqtfpH2YBBjT2+AebgCxEVQMgljxajBtbPDAXiGrQ1mkL0wzSfTO4DJWQT0E4Q1Rh1ulDuXFRh4xE5732c3IcjE3/x+m6VsX4HwlJ/XCA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=L1q5MDWGIp02fWIKSB6gChHTHQNtLxslvJQ5/PK5LAg=;
 b=YQJyCOvadYUkzRPS4Xu1le+YZxS2Na0CiOncLByNF9eQXoGlIrXZJcIRxH4MiKMYR82OR04ZWbEa3D0nwB8CdcNVMq7wJXaz8HaQcyFNfqfmlFiQPF/4rQ73k+QjyevIsaF46ydesFcTBitZGKH5t3KIV/HDL+sUFdhtjfnrPs4krt5B+ePL+mLBVCsc4ENNQHx+aFfEke2KWxyJfKIsge9Yl170+ld7cyyIf0k9ECFMmIwTyTEwAsQcLP6sMAvEou4/W/QjKV02qJDCzjdSKpsSbqkVqIvXtbAVUEUx0dquqBaK+NBdQFHHRoZAYy1tKmaX52/qnDy55BCze+ZFQg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <7d5c75ab-3d7e-4f00-ad4a-0af9d4327994@epam.com>
Date: Wed, 26 Nov 2025 12:05:43 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/24] xen/sysctl: replace CONFIG_SYSCTL with
 CONFIG_MGMT_HYPERCALLS
To: Jan Beulich <jbeulich@suse.com>, Penny Zheng <Penny.Zheng@amd.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: ray.huang@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>, Dario Faggioli <dfaggioli@suse.com>,
 Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>,
 Alistair Francis <alistair.francis@wdc.com>, xen-devel@lists.xenproject.org
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-4-Penny.Zheng@amd.com>
 <5050db49-8581-499b-93bb-98c0f084d071@epam.com>
 <dd78860b-7829-4eb5-a26b-71e133df5d81@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <dd78860b-7829-4eb5-a26b-71e133df5d81@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0005.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::11) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|DB3PR0302MB9207:EE_
X-MS-Office365-Filtering-Correlation-Id: 1774a7bb-6bb2-4f1d-2375-08de2cd360dc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|7416014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?aVg4R1l0Mm1oL3R5a3pWeXhIN0pNRDRJYVZ3QW5HRWNRTlFkVTQ4Vi9wb1lt?=
 =?utf-8?B?QUYzdXhnQTlrWEluYi9kRTN2SmFlOGdQeDRYM3dOc1JaYkV3ZFhpVURGSWN5?=
 =?utf-8?B?ZnNLY3hoVjRHSTB1WERLQnliRGlYM1ZINlpwSUpCZkJHU2llbVVzdDROUDV5?=
 =?utf-8?B?clVrekRkSmZuK21OTHhkclpmYVZIQUJrRTN5RXlJTWEra0hGZW1aTWhuNFE3?=
 =?utf-8?B?L1BudTYyYlRyRW9vbnRhdDAyNmIrUmVBUHdGc1pHSWpyeURxeStidEpES1Bk?=
 =?utf-8?B?QzZrV3pRWVl2TEtRU1IxNjlFd0xtZUk0Z0tPeG1OMXJ6dE1FdDZjRERhUDBi?=
 =?utf-8?B?OHJtMHNXMFFqTlBnT0R0ZVlDRXFxclFUQ0E5MUhDcFZFYkZoY1hBbmNicnV2?=
 =?utf-8?B?aFJ4MkFSTXNPSXFDaTloYzdtb2xNa2tGMDJZRlBmcUNvd2h0bVZoWWlZS2xE?=
 =?utf-8?B?U1lkVGpleUxRSlZZWUcvNTlxM0srQXVZcTRjTldIeURWVVh2YXhUR1hTRWFq?=
 =?utf-8?B?UVZKSjFzTUdFSDE0K2hESGx5SUUzcDAxOWlPQ25VcmpNR05GMVRLRXg4bzls?=
 =?utf-8?B?aTBSNlUrc1JkTTBtQUhhL2RDc0VpQy9ERmswdGxrM2JHZ3UxYXpYYUtCb056?=
 =?utf-8?B?UGxxL3pyY3JKQzBUVzVrNGlDNmtDRk1RM0cxK0thOGhPTW9DUzRBanZtam1L?=
 =?utf-8?B?aHBONERpSVFGa3BCUm1wS3JCdzg0b0RqZEgzNENLRVVFaWdhdmcyN1FlMlNv?=
 =?utf-8?B?TXNOZExtaE5TMHNhWGlwWjJSQS9rTTdFL0xzYS8yWjNqVXgzRkZjd2VNbVMx?=
 =?utf-8?B?UWpibENBZlc4L2IwN1JtVXNQNnFERFlDaHdNcjJIUmVvWDF0eWwwS0crY1Bh?=
 =?utf-8?B?YTZKTjZEMG1uTy92NGxKV2llVTZIeW5hVVBnVmNQcEpRcHhUempLcERTY0Y5?=
 =?utf-8?B?UW9aNDBzM01aZ1FWVG8vRjBJMkZMRHVBTGs5bW5lNVkvNS9aWFpVenEwT0E0?=
 =?utf-8?B?QlFLVTVyTXMxcWRVOTVwYnRDNFN6czhOL1ZBcHFicXVzSzZTWHVQV0pJd1hi?=
 =?utf-8?B?MHZ2T3pwcUVOSzdlcEtqZmE5RTVRMzExSFROZmdTeDlPTmovcXgwWDBHbkZM?=
 =?utf-8?B?T1RWM0QvS1lXMTlEdWZIRXdRaWtXd0JyMFdTOUk0QVhwbWlwTUZxUklvdloz?=
 =?utf-8?B?MyszenNyL3NrZytMU0VCZWVkU2Z4QWR1WFNTZnBWS1Q5NzZ0bWwwSTZZWkxs?=
 =?utf-8?B?T0FMeTJDZjhXWFhadmU1NkhTZkliWVFueFBmZzJuSHRRcGlxSGh6eDZHcFdj?=
 =?utf-8?B?bWx6b3NSTTVqRkNHdzhkTGFxZkIzYmhvQ09VVks4ditHREhZcTBrWXJvQnJj?=
 =?utf-8?B?MFBnRG5oMWNPYXk1b0dkN05VNUp2Viswenl5T0RIMDRHQ3B5dkRuWmFuQXRl?=
 =?utf-8?B?Ty9jaDk2NzBja29FMG5SSEhpbnFtWW9icFpkSkZ0R1NHY3ZZNkZnOEtzK3JE?=
 =?utf-8?B?TEU5TEJzWXBEVFkyZkQ5YndUK3JyUG5CNFg4SEljQ3lHcVNURHNjWmtTcWFT?=
 =?utf-8?B?bXBMZ0p0bmw3OTBmTnczQzBINEtKTFl1MXAvaTM0L3kwQjRLMkdaMkNQTkQz?=
 =?utf-8?B?TW9EbEkzWUtzNFl4RDYzbEdIZjV2eW9HcjNoNlJaSThlWUp2MzB6WVczM2ti?=
 =?utf-8?B?WmdGVVcwc0xPT3czSXB3a3ByYWJvVFd3Vm40V0FKcitpbnVrVTd1TmlHV3FP?=
 =?utf-8?B?THB0L09qUCs4QVBxTWQwSy9GKytwS3J0L1RkdzEzZ3haK3lURG5vZkNmU1Qx?=
 =?utf-8?B?amVjT09FMkF4SVhtcDJLVWZDT1J3U3NpMXRDb2FKeTZZNit6VkwzUGl2cUdL?=
 =?utf-8?B?WW52cVlvRlpCSWFNR2FhTTNjT3RQWGFaR3JiSjlZMkliMnM5OHZDeWowVnZP?=
 =?utf-8?Q?SF04hSg9KpwRrgY4xSPRmkUdKgjqS7U0?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?K25BSnhrTUVpeXZTZGpyQ2FZZ1MzMURIV0VWUjZWRU1KSTI3em5odXBOQnJy?=
 =?utf-8?B?KzI3b0UzM2NMYmh2dkJqYmZ3aDRtYTZaQ3N4bDI5NWY5bEt5N0MyK0VhKzB5?=
 =?utf-8?B?QVdIc05ERENxWTNxbWpCdDZGV0NDU1ZXZXhSZE8yeThhZnJjbzFheUQrMGNV?=
 =?utf-8?B?amVrblBidVN6WTRzZ2hXREVIU1N0Y2ZPWWlYc3RPK3Z0Q0d4b29Ea0ZuZitG?=
 =?utf-8?B?NEpBT0ZvSlBldUdmQ2xjRnZFSHhkV0pSOE1pUTBFSit0TGNVZ0RsVytvZkZr?=
 =?utf-8?B?V0EyamxDTC9VU1ljeWUwdndhWmRld24rbTN6eEpJeDBNS283SjRiNG9lOHg1?=
 =?utf-8?B?bDhiOFVSS2ZLNWJMb2VMQTd5eHV3N1c4V0RyVkw5WkNPQVRNNDJBb1MxVlIw?=
 =?utf-8?B?elA0emVCdFMyMDJ4OFhwRkNhWXlUcjI0dGNzMklpblpLTGsrZDljYmYvMlZ5?=
 =?utf-8?B?aGsrM1ZQNzd1VTZ4KzU3clVSTzhYazJiUUkyVTlMZ2o3TG8vTStFVytrNkhR?=
 =?utf-8?B?ejVpVklPZDhjNEVoRC84c3FzS3hQODNhQitHa25IUVV0VVFkVFFzeUVxcWJu?=
 =?utf-8?B?RC9KOVBuVHVkSTMwK3poUDBRRmJRZEg5eHFaZEtEdS85NGZNL2F6dkhIaklu?=
 =?utf-8?B?VDd2QkdENy9EOFlrTlNSeWE5R1AyNkd5dEVvQXdJRTEzTm9lMUlKR2ZEYWNN?=
 =?utf-8?B?OFdqM1E0SytCeVdUeXowRFJiNTE0TlhZM3d3empxSmRSRzMvc1FUc0pkL0dN?=
 =?utf-8?B?YkxtNWhVd3VVSkJQaVlxdjhHWVhnU1RnTnZBaEYwWFpabFlBQ1h5c2Zac0ln?=
 =?utf-8?B?QjR2VVFHV3FoTjRnNHBHclE1cjI2T2xldjdEdlA3ZVZvSTdvTUV5L1NkbStw?=
 =?utf-8?B?UGhkYUtON0NmRkdXN05CUDRlK29WeTdDZTV0bE9SOWI1bUJ6ZVJtQWIrSm95?=
 =?utf-8?B?N2szbXdtQ0hVUEdYamtDZXhjMkcyMDR1MHZYY3ljQnJGVGFkalp4aEQ1R2lw?=
 =?utf-8?B?a2lqUEduU2k4QVJNaURlWjUzMXRBN1k5Rlc4cEhJMVFxbVNnejlyT2d3SENy?=
 =?utf-8?B?dENhRHlxY3ZHdWhIUVFYSTRMdVN6bktDQ0FrMkMzeG9kRmU0VlQxcUtGcmZG?=
 =?utf-8?B?S3c0N3pZdDBhZmZNTzFoTnJZUE5SVUZrd2FxUU9Jc2RQazR5U3RGcktNWGk3?=
 =?utf-8?B?aEVPSm52NjZ5Yk9EZnpQYXpjMExHemV2MnFOWWNIanMxTzdVcG9TaWkxdzZz?=
 =?utf-8?B?V0dvNzdjYk9iVDdpVVpub1dYb08xNjJ1NWZWT0w2b01SN3REemM5ME95K1NF?=
 =?utf-8?B?YUoyWmJqSlEvTU9VUVlPNThJYmo5cjlGb3ZRVzJXYnIwTEQ1NHlQQlpoTWFx?=
 =?utf-8?B?MW1FUWJQUkNuTUtWYmJYTnJZWUxQOTVpblBqbmVNaXh5bzFPWVFNNWNsOE5T?=
 =?utf-8?B?SWUrSmpXbGhvdVJnMDZkRVN0ZDk2a1lIMGZwejlkZGExNHN4cVNCY0tCQllE?=
 =?utf-8?B?M0hqLzFUakxEMHd0UU5RcnhGdkwxT215NEZIWWVkbXFEL1NwN2thUkswYk9a?=
 =?utf-8?B?ZzVqZ293Q2RQZVVnamQrVHdHRGsyS2c3eWZpRkkxRFlITVJKM1E2UVorcmhD?=
 =?utf-8?B?dVRkclJOdXJnZWlNRUV0NStPNjZwbDhRYWUrM0hXekhjTVh6OFVncktwRWtF?=
 =?utf-8?B?MENrMFI3MWpGcXQvQjI2WGJYYW9WdXVpMEZZRWlJaE9hUy9qdlJyL1hCa0tH?=
 =?utf-8?B?MEpEQkJwZmZhVmhZNGJKSXpWUUU4cEs1N1JydCt5cFRzZ0tTQWJsZnFaL2x0?=
 =?utf-8?B?bGd6ZzRxdVNxSFJOaE80YzczUENFczUvemFnckZCRVhYK1p2eDJmTjNCUU1a?=
 =?utf-8?B?WDJ4V09RZFAwazQ3UlNvc3c4b3B5S0ZaUVB4Wmg5MDlEaGZrTmhCbWt5Vkxj?=
 =?utf-8?B?MGhKMXFmZ0hteXc0R3JOcmsvSlQzQWRYdVlhMVQzVDJNQ0pWR1U0ODBLYkJm?=
 =?utf-8?B?MWYySDd3dVdkSkZ6c081YVkzTytnekhpai9CQjczblZsRWt1OEJzSy9yaGli?=
 =?utf-8?B?Ym1kMTlaWk9zaUQ3TFpraTMzTm5zamdkUDJjUzdkekd6dkFkUDEwMUNDRnNI?=
 =?utf-8?B?RTNKNHRUanF6ZzlhN1krdHZBNHk4S1U5WUpVRTRVSUZVK3JhTDdoWkRnWFR4?=
 =?utf-8?B?elE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1774a7bb-6bb2-4f1d-2375-08de2cd360dc
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 10:05:51.0272
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OtsmlvBWGLwFicSU96ady99M2QaMyD8oJGcVx8ip8E1z4tTM4QNDI27WP4/3Sx53iPxaNh8R80EaPFRxaXw4cFkfujs3EGbGR56i5FM4Z5Y=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0302MB9207



On 26.11.25 08:35, Jan Beulich wrote:
> On 26.11.2025 00:02, Grygorii Strashko wrote:
>> Hi
>>
>> On 21.11.25 12:57, Penny Zheng wrote:
>>> Rename all the CONFIG_SYSCTL into CONFIG_MGMT_HYPERCALLS to help provide a
>>> single option to manage all unnecessary hypercalls, including
>>> sysctl, domctl, etc, in dom0less system and PV shim mode, which could also
>>> make it easier to support randconfigs.
>>> While doing the replacement, we fix some bugs on xsm system:
>>> - wrap the whole xsm function to avoid bringing unreachable codes when
>>> MGMT_DOMCTL=n
>>> - add missing wrapping in include/xsm/dummy.h
>>>
>>> Suggested-by: Stefano Stabellini <sstabellini@kernel.org>
>>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
>>> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
>>> Reviewed-by: Juergen Gross <jgross@suse.com>
>>> Acked-by: Stewart Hildebrand <stewart@stew.dk> #ARINC 653
>>> Acked-by: Jan Beulich <jbeulich@suse.com>
>>> Cc: Alistair Francis <alistair.francis@wdc.com>
>>> ---
>>> v2 -> v3:
>>> - wrap the whole xsm function
>>> - add missing wrapping in include/xsm/dummy.h
>>> - refine kconfig description
>>> ---
>>
>> With below diff..
>>
>> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
>> index 6709c3c95c53..f478adffff9c 100644
>> --- a/xen/common/Kconfig
>> +++ b/xen/common/Kconfig
>> @@ -652,9 +652,8 @@ menu "Supported hypercall interfaces"
>>  Â Â Â Â Â Â Â  visible if EXPERT
>>   
>>  Â config MGMT_HYPERCALLS
>> -Â Â Â Â Â Â  bool "Enable privileged hypercalls for system management"
>>  Â Â Â Â Â Â Â  depends on !PV_SHIM_EXCLUSIVE
>> -Â Â Â Â Â Â  default y
>> +Â Â Â Â Â Â  def_bool y
>>  Â Â Â Â Â Â Â  help
>>  Â Â Â Â Â Â Â Â Â  This option shall only be disabled on some dom0less systems, or
>>  Â Â Â Â Â Â Â Â Â  PV shim on x86, to reduce Xen footprint via managing unnessary
>>
>> It could be very helpful to consider this patch to be applied first.
> 
> It doesn't need the change above, does it? It (aiui) deliberately sits
> ahead of the patch (supposedly) doing the above. While (once again) 

Understood.

>it is not being said anywhere that it's independent of patches 01 and 02,
> I expect it really is.

I do not see any dependencies.

> In which case all that looks to prevent it from
> having gone in already is the lack of an ack for the XSM changes.

:(


>> - number of tags indicates that it's the way to move forward
>> - with above diff patch 4 can be dropped
> 
> Except that imo really wants to be separate. And that could have gone
> in already as well, if only it had been done correctly.
> 
> Jan
> 
>> - it is mechanical change, but it's big and constant source of rebase/merge/cherry-pick conflicts
>> - once applied it will allow, actually, parallel development of this feature as MGMT_HYPERCALLS will
>>  Â  be defined while build not broken.
>>
> 

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 10:13:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 10:13:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172474.1497534 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOCWj-0001q0-Lc; Wed, 26 Nov 2025 10:13:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172474.1497534; Wed, 26 Nov 2025 10:13:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOCWj-0001pt-J2; Wed, 26 Nov 2025 10:13:33 +0000
Received: by outflank-mailman (input) for mailman id 1172474;
 Wed, 26 Nov 2025 10:13: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=GqHT=6C=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vOCWi-0001pn-OJ
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 10:13:32 +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 8f61a304-cab0-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 11:13:31 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DB9PR03MB7626.eurprd03.prod.outlook.com (2603:10a6:10:2bd::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Wed, 26 Nov
 2025 10:13:28 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9343.016; Wed, 26 Nov 2025
 10: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: 8f61a304-cab0-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WpRXcXx02YFnNQU6xBApi5zx3IvMc9sTZnPzuZ99uQO2QSuXFBcVfJJhVzHsNasTp0vOhYDYO6T6/VIs5Cc7t7F7xiT6CJCizszT9KeSJ3kBxClzzy/MFB6KJxjn7j9yHDXWPO86509dlK1ytD/kvXNRwszV7bOB5/KYJsdmqmB1xhpFHKNdwD8Ztdes1CB8KbcOorMNE965u2rQ1/Rf7P0xpMKoVOvWOBLSG2YErPHzWiKsstPPLTiKT+YzwL/7SwiDKUsAsPvkTKvfHF4Z04MjPXtzzbFRRGSlA+xhY1yq7526sbQc6ux05spLeMz+vYtnMFgaE2NY/awnJOmGYA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QeTzvXON8jlwjV7l3O0H4hbOXk8aCtEmPSffh71G754=;
 b=edX3Rstrs0A7g9ep4Lw0qAsEo3uZXg8DDHycGNlSqWgq7nujs1NIMQWvf79Xh6Mw3zEWcJmFp103SZH8Epb7/BQaL/2882mrODTX57YsXUzixImWsoyYolCWVCMLyfjklYGZcL+3Afvyyhka3UFzGFSMc57nyQZHHQUHTVPr1Q20uAfvaamYzN6NOyc33p5XiEhoIYSsRv/xLpzDDQINAzuYfsD5XTiW6ksNZRweSxrWw+rO245t9q1ucgYkADA9+cxjo0613J4SQrC6ZjOpla3Xt6Sz8u93RGTvox3lfAO4g+/9+6WYqYp/fyQWCvs9GwOhBr8KkugTLaOW20tNEQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QeTzvXON8jlwjV7l3O0H4hbOXk8aCtEmPSffh71G754=;
 b=AGt/rDQr5iHXi+rGERBVVE9FG1fdXZQohfN7z/dBTK7ziwys0OtJ1dlnke97dcHPUwRVtgHRL+/0ulmS7kfeBvjvf+RO68JvP1SApDVBPmV7CYB9XyHxPQItrLO9/Nox4Lteo18IcOSx0NdxemfX0kGuxyZrOjLzld1pvs0JTsaZidB7KGZoENNwv409SRXSD3H6l6u8uRMmyWCD7V7jAJ9uE7icLTzxToWtYSGO69rPV/K9xMmqIL8t2fhyIZX4liclobDu7p66mOTEfdpS47CDoS6OJ/IG0IsGASdoB+DKop3EmkPe1UyQVZ9Hli8SFAtVfvmFUKrdMDlqYY8n1w==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <dbee8b1c-5914-4b0e-886e-b7dbf579b1be@epam.com>
Date: Wed, 26 Nov 2025 12:13:26 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] x86/hvm: move save/restore under HVM_SAVE_RESTORE
 config
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>,
 Paul Durrant <paul@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251125230040.3070954-1-grygorii_strashko@epam.com>
 <f349a91b-89bc-4489-aff2-2590b521621d@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <f349a91b-89bc-4489-aff2-2590b521621d@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
X-ClientProxiedBy: WA2P291CA0020.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::9) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|DB9PR03MB7626:EE_
X-MS-Office365-Filtering-Correlation-Id: bf6d81ab-2db5-479f-c102-08de2cd47173
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?TWdmclgyc1ZvY1dCZzBUTC9UcUVKZVlBSi9JYUtDdzhTY0ZxZ3l2T2lUTE1j?=
 =?utf-8?B?RjduWGJSMHIxT1lYa2EvNjJpK2lidU00S2ZWMTJ2c0xKdU1nV2RuRkhaZTBI?=
 =?utf-8?B?TnFKRzFDT3ZvazZrcnY3SlUvbThZV2hrU1UxMVlXY0pXYzN1ejUwSEFMcndq?=
 =?utf-8?B?WU5pNyszdlY3b0s1NFcxTzV3Um5ZZTFPTGZCK0VNYkNQdldqUXN1MFRMN2Vh?=
 =?utf-8?B?WDM2Ti9DVkduOGZ5bFFCOHN3ZXdCSHBLNHA1a0YxTVVXQU84dHFWS3Z0Zys0?=
 =?utf-8?B?YVplSTUzTHdVODFMK2l6eW9obXV6aHZMaFhsajJ6dm0xNGliQlhDeVZBMXhj?=
 =?utf-8?B?SXNkRUJqemFmQVBtalJ2RGtaeTBGcTV1Z2krN05vSmQ1eW5jVk5odm1odVQ2?=
 =?utf-8?B?eUpNNk9qaTFhU2wvekFYWVlFV2dUWHpkRXdoK0xZVGJ0TFplUWlZUzhRSmZR?=
 =?utf-8?B?NjFhRVVDNVRkVFFyZ0NWbXZqVXVmK2JtL0tCR1pBdDdOWEE0N29Uc0YxMlI4?=
 =?utf-8?B?cXVqU0xtZnhBM0RYdFpkL2lrY0xKTHFRL0VYc1RaS1ordm5JSStCMUVXaUlD?=
 =?utf-8?B?NTVlTTlHd2svSXBqMjdZTnBtNDNkS2ZIaU1ja3B5UFNkdWptak5PeGRnazVm?=
 =?utf-8?B?ekExWlBNRG96M2o4TDVjRlZKRkIwaVpxYjF1L3Jnd3pHMnJxVkswMjZKVXIx?=
 =?utf-8?B?UlNsRnVrSDNOQ2tBK2Y1TlNkdXJaY2dLWjJRRkg0VWNMdmxKUXlSL2NheTVq?=
 =?utf-8?B?WnR6VklyQTBvYllKbG5kOFFycnFYTTgwZlBVcGpXZW8rc2ZDZ0hkaUY2Rkcv?=
 =?utf-8?B?Q0hnYTNoaW1pWEVqR3VmOHc1SlNnRUg4dnRZN0d3N2l1MWs2R2ppU0hrbDQx?=
 =?utf-8?B?a3VKb2d2YURqamRxV1FqNWU4dGI3SWdjZUxUdStBU0hZQVV1VFllWFZHVll6?=
 =?utf-8?B?MlZuVHp4MFBsZkQyUjRJUWNYYWpZNkZ3TmRGeThUL28vRENodXNtUTcxSVZP?=
 =?utf-8?B?QjhkYnhSZDF5YUNYNmJPb2dGRXNiOUFPRW9zN3BtZGFXWFVkNENJYjE5Wkdt?=
 =?utf-8?B?NHczRHcxdzZDektVZjNObEVHTXdjalhHQTNCaklpSEx5WTdiZURJR0RPYUxL?=
 =?utf-8?B?TFJGekVROVRTVG0rTHh4T3FscEQ2VWdoL2ZiZVpCdm0wSytNTTBRaGVrYUJW?=
 =?utf-8?B?SGNEenA0czRycVpRZjJNM1IrNkpsOWVKZkRkVE9XT3d6MU5XYXV3UVlVYjlF?=
 =?utf-8?B?QUZPMVYwNVhKUWRWZDBVTVlsWTVlck9kK2dtRzcxaFZWMDBLRk04QVdMN25v?=
 =?utf-8?B?Ui9iMVE0SEtxY1d4NmVqV0IvdjBTWXNZK1JHN2xUbG1hYm1kMkp4RG5tYjIx?=
 =?utf-8?B?QzI4Qmdob3ZYK2NGVnVCN3BDcWtHcklVZ05TeEpBczBSTTRPZUZwdXdGK01h?=
 =?utf-8?B?VzRyL3YycFFaeDl6dU9hUENBeWlnWms1bW40bUR5VnRmcDZIenVOdDBmR3RV?=
 =?utf-8?B?eEhpWjZUMStHckppWVpYbHRMQzJLZ0FNclFaSzVmYlBSN2ZpZHY0RExQM2VB?=
 =?utf-8?B?V1RQZGlUM3VydHhBZ3dnaEZTMHZJY1VGeFRsNlIvQmJ3SkY0SDRZRFBFOGti?=
 =?utf-8?B?OGdDU0VDdjFHU0NVY1A0b21kcGxEU1BvclpVVldvNUpMMWJtRGs0cElmaUx2?=
 =?utf-8?B?dEtFdm00S2xpaDRDQXozbGpWbTA2UkNUTXkrWDlqMXNzVUxRM0tJenlCMTlL?=
 =?utf-8?B?VWlQYmFsMTFGM1dQMExHTVFGZ1A4MDdTYVVNUWxpeFliVEF4cTI4dFZQUEY0?=
 =?utf-8?B?ek1SN2t2VEYzaDg1Vk45L2xJUzdiMzFrcFZHNmVSMW1wbjRtRTN6a1JXQ2VD?=
 =?utf-8?B?Nnh5ZUFBRmR4VG9BRmtZTDFPUVlDU2x0RlQ2VTBrNDg5dEdlRFJPMXV2ckc5?=
 =?utf-8?B?R0g5azdoVlJIRjJkc3h3SFdOT0hKVUdXc0prQlJ0RHBET2NWTnhjSk5janJT?=
 =?utf-8?B?ejdGY1NlTktnPT0=?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?b0QwZjF2S2I3dEswV0ZmUi9adVNUNExKNjIzODFWTjN6WUJpbWVnU3dvNVkv?=
 =?utf-8?B?c0tzbFpYaVZmVGJqa05oVnJvbFVOTXgyMEVCbndoZmJvWTVSWEJFZWFzRmRx?=
 =?utf-8?B?dXV1RzFsa01HMlFZUklhSzUwcWNiWjVxNE9BWTBNWGlNRXFEcUhvSWdTSEJs?=
 =?utf-8?B?dmpvRzY4aElYOGJGcUwxRUZhMmw3Zlg0MVd6ZFM2dFkwdWFjbk9NbFAvb2gw?=
 =?utf-8?B?STRWSXNDemxxVk1RRFdMc2NkTjRVcjZHaUtmUm9SSEFYRnFaazhmd21WTkZK?=
 =?utf-8?B?d0x4Z0hXVG5keS9XZnpIS3loNHMyb0gvRDZMTGpXeTFIc05sdTcyOFdyeFBS?=
 =?utf-8?B?VGIzNHExRU9aZXFnbGtHSnNmN0NzT05RZE5QZGQ2L3hwQ2tVMTREZ1lNVXBo?=
 =?utf-8?B?Y3RpZVFSc29SMWdmR0MrSVVTTEdFcDIrNEhhS3g2VVNTZVpscnRkb0xjdDli?=
 =?utf-8?B?YVBDWUpuYnF6N3FEU1FkL3M4WWtQY21ZY2RSNG9wM1dkU3QwYTR0dEI0NzV5?=
 =?utf-8?B?czZpWTRuOU9KNnoxR042YU0xVkFXdEUyNFhqY1Z5WFE5WnZRSjRpM2NQWVhz?=
 =?utf-8?B?TXBwdVo1Z3RpS2pQOHdzWnk4eXVOUFVoQnVTM25SRmYvbjEwTFRTYkk1NDhR?=
 =?utf-8?B?QTVSZ1lGZjRyVStJSWQrSmIvcE5aeC8wamd3ZEdKTlhvTEhOYngvSDh3aWNl?=
 =?utf-8?B?RmlObUFNRUpvYXk3dzVKTDFHd1IwcWdvZ0o5ZlIvZnN2S3I5aW9KOVYyTzJX?=
 =?utf-8?B?ZHRqT2dHWmVsWHhDNjRITHpwSDFJV2N6aHBjRkRIQW1tWUczcFVnRGlPakZp?=
 =?utf-8?B?eHErRTlVQzBFMXJMZWdXcHBuNGYzbVo4eERkQW51Qkc4ZFFSMHNRaC82UW1k?=
 =?utf-8?B?NDBESmFpSTg3NXdDdytTcEhJbEc2RGFUTXBIQTc0ZHFkcXpVZEpDOXdobk0r?=
 =?utf-8?B?OUlWUlEzbEhwMWFhbm9GTjV1dU9kUGtxdXVtaVI1QllJZEhWUUIrNkJHbkFB?=
 =?utf-8?B?eTVVZkpRS1Z6REs1WDJ1NEh5YkNGMHV4Y3pMYStyTU04ZEFIRmszWmZrbDJo?=
 =?utf-8?B?aTdsUTFqK1BSSFlRdHp1K3VXMjFBVFowZU15YlBSMHh2UFBDajZKNGFVQnpJ?=
 =?utf-8?B?TnRTVFAzak1iL2svRkdqczhsbVNYd1k1c256b3Z1eVNWT2ZMdDBUNS9LWmMr?=
 =?utf-8?B?UlpFODByN0ZPK1kwblhZZm54eGxkUTdiU0tYejM1N0ZCdUxWUG9KMC85OVZ5?=
 =?utf-8?B?ZVlxTGNhdkZHL2h4Zkk1YklPUzdTQ0hsUlBEUngvcFhCNEtVdXpzTFBHWnJm?=
 =?utf-8?B?SEVDMEcvSU5WSGVWWVNMbDh3NFcvN2U2Z2haRUtoSHBVUjJHMHlHTDFxbnhZ?=
 =?utf-8?B?ZVNjOHh6VWM5V2J3Tkp6cHlpU0hGa3lJWktaQkgrNEJ3MXhlanhVWHRscUJ2?=
 =?utf-8?B?Mmhhby9MRkVRMXcvYi9oNCtNUWh6ZW9UR1BrVWExVW51RlNvcEUxaUozQjc2?=
 =?utf-8?B?NU9XRG5Zd1B6MDlVRVM2MEJRSjRxaG1Ya0Raa2wzditJS1M2WHdJUVhrYzRk?=
 =?utf-8?B?eGNvd253aWZqb25hdzBMblVTZmVYL1FpdExaMDRtVmxaSlBKQ0RFMTRNamlN?=
 =?utf-8?B?V2swWklrVXo2SElYd016OGRPOHpMTWVTTGwvWkt5U3dXM1l1UFBPQUtGMGF5?=
 =?utf-8?B?d3dmNkRCRktuMU81aWdyOXNpRlpudW9QejJWc1NndFdOMGFjeUNmTlpWaTJn?=
 =?utf-8?B?ZFdJT0JQbm92YWFrc3FZVXpHTHhnWlFDT3RCZFBhdjR0ak5qZVRlTTZ5TTN2?=
 =?utf-8?B?aDEwcVRQUzc5anprMTJyVHVtNEthdmwyQjVTTmtGZ05wQU41QzBGWGJjREVL?=
 =?utf-8?B?ZTliL0FzUmhhU0VoWUxoNkVJazdIcWdob25oTnJRbHFTUkhFMW16eW80dXlF?=
 =?utf-8?B?MTNDVXhSK05VZHQ2L0Vudm9RRUlrWHFBWVFhbTcxQVJlelZibW5YS1dLeGcz?=
 =?utf-8?B?K3hvbk9oeWoxaXhaUHNkOC9MMkhJY3JoK0F5dFprTlR6aVZHUFZseEJZOUxM?=
 =?utf-8?B?NW1oTisrYmpsUkN3WGRMaVBYc0lrT012Tm9qa0c2dVJjL2w0SE5idlFORkVE?=
 =?utf-8?B?T0ZlczIwWElxeVZKRyt4anpaNW1xL25nSldyZmdscUJ3WkErdUUrZ0h3elMz?=
 =?utf-8?B?Nnc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bf6d81ab-2db5-479f-c102-08de2cd47173
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 10:13:28.2376
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: gObCCZoqVJmK6T8EP/CY83hgB4SxucOm2Q7BrHfBBTLpyLVIMD79I6+NBbowpOa9Dkj2NsmZD6bBgStTtGrQVLmTU8hJlAUpt/+u3ljhDRw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7626



On 26.11.25 08:59, Jan Beulich wrote:
> On 26.11.2025 00:00, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> Introduce separate HVM_SAVE_RESTORE config for HVM save/restore feature,
>> which is enabled by default for HVM and depends on MGMT_HYPERCALLS config.
>>
>> This allows to make MGMT_HYPERCALLS specific changes more granular and, if
>> required, make HVM save/restore optional, selectable feature.
>>
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> ---
>> I'd like to propose this patch as a replacement of Patch 19 [1]
>>
>> [1] https://patchwork.kernel.org/project/xen-devel/patch/20251121105801.1251262-20-Penny.Zheng@amd.com/
>>
>>   xen/arch/x86/cpu/mcheck/vmce.c       | 4 ++--
>>   xen/arch/x86/emul-i8254.c            | 4 +++-
>>   xen/arch/x86/hvm/Kconfig             | 6 ++++++
>>   xen/arch/x86/hvm/Makefile            | 2 +-
>>   xen/arch/x86/hvm/hpet.c              | 3 ++-
>>   xen/arch/x86/hvm/hvm.c               | 4 ++++
>>   xen/arch/x86/hvm/irq.c               | 2 ++
>>   xen/arch/x86/hvm/mtrr.c              | 2 ++
>>   xen/arch/x86/hvm/pmtimer.c           | 2 ++
>>   xen/arch/x86/hvm/rtc.c               | 2 ++
>>   xen/arch/x86/hvm/vioapic.c           | 2 ++
>>   xen/arch/x86/hvm/viridian/viridian.c | 2 ++
>>   xen/arch/x86/hvm/vlapic.c            | 3 ++-
>>   xen/arch/x86/hvm/vpic.c              | 2 ++
>>   xen/arch/x86/include/asm/hvm/save.h  | 5 ++++-
>>   15 files changed, 38 insertions(+), 7 deletions(-)
>>
>> diff --git a/xen/arch/x86/cpu/mcheck/vmce.c b/xen/arch/x86/cpu/mcheck/vmce.c
>> index 1a7e92506ac8..ba27f6f8bd91 100644
>> --- a/xen/arch/x86/cpu/mcheck/vmce.c
>> +++ b/xen/arch/x86/cpu/mcheck/vmce.c
>> @@ -349,7 +349,7 @@ int vmce_wrmsr(uint32_t msr, uint64_t val)
>>       return ret;
>>   }
>>   
>> -#if CONFIG_HVM
>> +#if defined(CONFIG_HVM_SAVE_RESTORE)
> 
> #if wasn't really correct to use here; #ifdef was and is wanted.
> 
>>   static int cf_check vmce_save_vcpu_ctxt(struct vcpu *v, hvm_domain_context_t *h)
>>   {
>>       struct hvm_vmce_vcpu ctxt = {
>> @@ -380,10 +380,10 @@ static int cf_check vmce_load_vcpu_ctxt(struct domain *d, hvm_domain_context_t *
>>   
>>       return err ?: vmce_restore_vcpu(v, &ctxt);
>>   }
>> +#endif /* CONFIG_HVM_SAVE_RESTORE */
>>   
>>   HVM_REGISTER_SAVE_RESTORE(VMCE_VCPU, vmce_save_vcpu_ctxt, NULL,
>>                             vmce_load_vcpu_ctxt, 1, HVMSR_PER_VCPU);
>> -#endif
> 
> Why would this #endif move? (It gaining a comment is fine of course.)

Huh. Initially I've used __maybe_unused with save/restore callbacks and
HVM_REGISTER_SAVE_RESTORE() defines as NOP.

I'll correct and drop empty HVM_REGISTER_SAVE_RESTORE()

>> --- a/xen/arch/x86/hvm/Kconfig
>> +++ b/xen/arch/x86/hvm/Kconfig
>> @@ -93,4 +93,10 @@ config MEM_SHARING
>>   	depends on INTEL_VMX
>>   	depends on MGMT_HYPERCALLS
>>   
>> +config HVM_SAVE_RESTORE
>> +	depends on MGMT_HYPERCALLS
>> +	def_bool y
>> +	help
>> +	  Enables HVM save/load functionality.
>> +
>>   endif
> 
> This wants to move up some imo; MEM_SHARING is clearing the more niche feature.
> 

Could you clarify preferred place - before which Kconfig option in hvm/Kconfig?


-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 10:13:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 10:13:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172476.1497544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOCWv-000269-UA; Wed, 26 Nov 2025 10:13:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172476.1497544; Wed, 26 Nov 2025 10: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 1vOCWv-000262-Qu; Wed, 26 Nov 2025 10:13:45 +0000
Received: by outflank-mailman (input) for mailman id 1172476;
 Wed, 26 Nov 2025 10: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOCWu-00024s-Gq
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 10:13:44 +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 946a8d2d-cab0-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 11:13:40 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4779adb38d3so45855095e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 02:13: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-47905302ef1sm36518255e9.16.2025.11.26.02.13.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 02:13: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: 946a8d2d-cab0-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764152020; x=1764756820; 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=N0vgm+o7qWC1XeVXe1SxdEPrcMN0iYRL6RStXgNpRsg=;
        b=LRPwtJxtP+DnHkS1ussWEMW1k5mYWGos5/bsaBi/3MTa3d9j0XxxQzT/vrWPs7NEk/
         59jzQ943fqM3QxoEkAPg01dfugBr4Y5lGS2afGOe4WC/5lTWouV1f2amUPwC9v49GN15
         eFr0ezr/IQz0bNWZtZwX6SRCIIrK68JzBCK4qLbDOESCX6Mz5hzduDxk2VwdwLnfFfB8
         3PaPAOZedep9wO78mKAlfojlY5OOG8p/2QkByp18EKdFJKbrwfg7g38ZPloe7PwYEebC
         7ka4gtUCyD/juFfl1TxqyfAsFEdEivG+QcUx39k6e/v2LnhSlSjstrHnRZxZjzXYlfqw
         Dn/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764152020; x=1764756820;
        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=N0vgm+o7qWC1XeVXe1SxdEPrcMN0iYRL6RStXgNpRsg=;
        b=EbINLWizJLvuDdEVEPSjwTY22lLJmXtPdqLqIf9A8IBnGQ5b2I7eX+w4JbkiFmIBAP
         u5a/nn9Jo/JQLGepxgDgLMKWW0PhzrI+cMC0CLCJ6NXuMyqQmDFnvuWFGHxANA6uPQk7
         suYl1iPAL62OPK0gKyZshKGPCe6PtmF93eDaB9EAhIUpFynmToI/XiEbpv+6tKOVkUl/
         7ipSdMSS/o9QkWdaf3fnYXu09J6++4wsaG0oNzSSQRpsR9HF9NuMtcorzGYuui67j6ZL
         c0xtaSmcKLvrIQbNZQCAZHY6K/MW0mIM1vgZqePmksel819zx/Jtga/6t4aqPtrjVogp
         Yv6w==
X-Gm-Message-State: AOJu0YzIkidpP9tHBhBRmpTEgEsNbGeVrq/eF+bGTs3BOJtPxuwimeGD
	i6e/OVomjv0VlKESOwv0YXmxGrlbpjK1QhA2ac93RIcR3qdCL4/0L9cOpHjIRyykSSjU5Uu2Uka
	5kHk=
X-Gm-Gg: ASbGncv20kwYwHKiRR3srk1qBxAycAlHU/vCzLzfHNppjuu5g70XdyJOzrs7YKLoGGy
	KIZzD4JTdlZ6lo78fEwUa2flNAdgI6VPU38eEuHsoIOSsxv639+PIpT8QP/sqoW2o0zDQgklMdI
	F8JVqCg6ypelWXRxWYcKdsF2/+8hlP7P+DE0qPTPgJuSe+OR4rqECxfuOwq0PRf2roNzQTEA5Xj
	Pt1vpiURPRb0ueePyoVtWl/Em55PM1JlCuh6KSCJctyogu3DKasEzqbp1eebQ2Pqim+l+9d1BWA
	ZIUwhdT8tgzZrhoGhOfZ5Ig3/e7saGDvDo4m0BL3xY0wYYCzvU7ruY9LFbusvCgU87HYVRdLUkp
	FCaHVKj3i2bQdJQnZJ1Osy08pu6CrHwJTBFkqAJ01mZjy4HwdVbJr90z982ReUNMv90j3N/pCfe
	vRJsl0F4OSgcPKjaGxCQjxhJQtbYZT///Evfk7M903Hjvf5BDWMqaP4GBSg0p8LbHmehSLap9ct
	PI=
X-Google-Smtp-Source: AGHT+IGaDRZ9yaaTE6nHBcyf5iWoyOVpAwKXbl6GlpDFW4QfoZEIcSS2zuj5gpRyNA3DbmrhUXkmGg==
X-Received: by 2002:a05:600c:4fce:b0:477:73e9:dc17 with SMTP id 5b1f17b1804b1-47904b2bff2mr55335455e9.35.1764152019674;
        Wed, 26 Nov 2025 02:13:39 -0800 (PST)
Message-ID: <bea22906-5805-4fad-b73a-fb2e3a8da807@suse.com>
Date: Wed, 26 Nov 2025 11:13: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: 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>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] domain: add barrier 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: 7bit

The lock-less list updating isn't safe against racing for_each_vcpu(),
unless done (by hardware) in exactly the order written.

Fixes: 3037c5a2cb82 ("arm: domain")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
The Fixes: tag is pretty arbitrary; the issue was becoming non-latent when
Arm support was added. (Strictly speaking IA-64 and PPC would have been
affected too afaict, just that now that doesn't matter anymore [or, for
PPC, not yet, seeing that its support is being re-built from scratch].)

I'm not quite happy about prev_id being plain int, but changing it to
unsigned (with suitable other adjustments) actually makes gcc15 generate
worse code on x86.

--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -464,6 +464,7 @@ struct vcpu *vcpu_create(struct domain *
             prev_id--;
         BUG_ON(prev_id < 0);
         v->next_in_list = d->vcpu[prev_id]->next_in_list;
+        smp_wmb();
         d->vcpu[prev_id]->next_in_list = v;
     }
 


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 10:16:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 10:16:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172494.1497554 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOCZp-0002tN-AN; Wed, 26 Nov 2025 10:16:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172494.1497554; Wed, 26 Nov 2025 10: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 1vOCZp-0002tG-7r; Wed, 26 Nov 2025 10:16:45 +0000
Received: by outflank-mailman (input) for mailman id 1172494;
 Wed, 26 Nov 2025 10: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOCZn-0002tA-Nl
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 10:16:43 +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 007e6e02-cab1-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 11:16:41 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4777771ed1aso43047285e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 02:16: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-4790ade13ddsm35006055e9.8.2025.11.26.02.16.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 02: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: 007e6e02-cab1-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764152201; x=1764757001; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uQEFzQAap3W09QdLXG3RE8p3eqZ+zm+kVfIPC+ruvFI=;
        b=A/56HtyQyMXzczKXzMWZrytsBteMD3jmt9RYyNLssMrC5s88CC9uhV32wD1h7yOPzp
         9SzUiVYDY+iV2kxpAlsKi8fDCj44zqpfc0zwdHoZ2bf1fvlzdn94rx0IZ3zHsFYXRGDe
         Xk1By9G1IgTai6l8JHVTJxiffr15JYiqWa9V0YgDt8kpHDPpCtCnAYD2pao7N7XhCRG8
         G0CW/C5Tr5h+Zd8A6Jgea6R/bBXB6SUEtHqUpJkX02ND1Mv8ozTIJN8UIhi6Onz7YVIx
         y32JTJhnGp+3GrgVp7p1zK0SdJ2nn2p3I6lGu1QOLDIkY4kaKhLGgSUzlOMroXgyanJn
         V0rg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764152201; x=1764757001;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uQEFzQAap3W09QdLXG3RE8p3eqZ+zm+kVfIPC+ruvFI=;
        b=eXYXy+9+8kMzl6nSLwPqlNG4ZHIJvH72ZopOd3+HQDqcaJRXTWeQZFZpakf98c0+96
         HMOoIhlHWW2OXq2UeRHJM3JwwbObgVXgORlw2pQiRCcv28RsGbnCQxOpOJfCRKaAe098
         iBM98J21gpWqC2hvyCEzUtfNWHSpylQzQBnVgCEwvAPpc18IYQdNunNDHyQFhikzZB0M
         xuwcSNZM7zuowClxfGKKHhUYxej0CS6oHvkbiu56iFC0ewyDHExpT/yvX7KLbDZOFMRV
         rJr24+IDLPxpDGIgHQJzxGQShULOkvNzbFGThuAB2lGbF2sGbv6POgQBKj+kiMzXPsim
         vmwg==
X-Forwarded-Encrypted: i=1; AJvYcCVeprEmz7elZxj6G9diFYjGyVC59PMWjgQN1Po3uVdgt4pUYUlpP0CDiN6i5TpM/hw0pF0xBcXbGQw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzG27nhbEilT6oyz+0LaV1c7GUGTxlNQqVBRQW7DKTtSbsSKlG5
	4GfLpaCVLx+7U+e2eqRgxJpAbAm6f2m7Sj0RQ4X+ZUUn6I3kpHBrUnA1o5b8PZn0rQ==
X-Gm-Gg: ASbGnctJBI2ZAPM4rr13qvCbF49c4Zv8niFYxMqst3RD2QslWoheSJjw+h3eWvPVrYs
	xrpiMjTtNNF0TlNIU15Ib+QPuEPUZ0j0BONJJGPYUplCkKqNE8aZ/uPOix3J9yAV62IawTEx8XS
	8D2ULmffR7XroiPnLPxk5bIefR/JNYwi2nspi9ulyWTm30O6cjComS2lxMrBrf/w2vEgAwEpPne
	in5IBgM0TSZq9vRiPnKJOstgjxykf8CoLlG0SX1GRZKtr+cPA1C4REu3fPZQyG0D0d1DWNAlWLK
	JMKTKoeKA9oS+4nr60PHNVj2FkLEHlq+2IurtQmLnv31tyFv/FqFwK28eggG+zLuj2LYn+AaTfJ
	fkzK4s7xEi2GdD8yF6kAzApgS3axcDKYmNwRbeIuW+58R5VqCTLBQVepXDG3QEVotlg9XiZ+akJ
	HsC4Q6H4skg6yJYjhPU5LEGBRJAD6U90VtpfyqgtJyZcj3A9vnirc1hS1SaHLrT/+7G2VdTXrvw
	Z0=
X-Google-Smtp-Source: AGHT+IGGpiRRMmduZJ9y7Q8us1e+qVpqvb+rdxNtu+ppx748C/1XUhFc+0C1cQ0hOfo4l4sOgGGjDQ==
X-Received: by 2002:a05:600c:6c48:b0:477:7f4a:44ba with SMTP id 5b1f17b1804b1-477c0162ec8mr126129885e9.4.1764152201066;
        Wed, 26 Nov 2025 02:16:41 -0800 (PST)
Message-ID: <065310e6-a009-4e64-b599-1f0799ac1377@suse.com>
Date: Wed, 26 Nov 2025 11:16:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] x86/hvm: move save/restore under HVM_SAVE_RESTORE
 config
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Paul Durrant <paul@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251125230040.3070954-1-grygorii_strashko@epam.com>
 <f349a91b-89bc-4489-aff2-2590b521621d@suse.com>
 <dbee8b1c-5914-4b0e-886e-b7dbf579b1be@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: <dbee8b1c-5914-4b0e-886e-b7dbf579b1be@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 11:13, Grygorii Strashko wrote:
> On 26.11.25 08:59, Jan Beulich wrote:
>> On 26.11.2025 00:00, Grygorii Strashko wrote:
>>> --- a/xen/arch/x86/hvm/Kconfig
>>> +++ b/xen/arch/x86/hvm/Kconfig
>>> @@ -93,4 +93,10 @@ config MEM_SHARING
>>>   	depends on INTEL_VMX
>>>   	depends on MGMT_HYPERCALLS
>>>   
>>> +config HVM_SAVE_RESTORE
>>> +	depends on MGMT_HYPERCALLS
>>> +	def_bool y
>>> +	help
>>> +	  Enables HVM save/load functionality.
>>> +
>>>   endif
>>
>> This wants to move up some imo; MEM_SHARING is clearing the more niche feature.
> 
> Could you clarify preferred place - before which Kconfig option in hvm/Kconfig?

There's no "ideal" place imo, as the ordering is somewhat clumsy anyway. Before
HVM_FEP or after VIRIDIAN, I would say (with a slight preference to the former).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 10:31:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 10:31:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172504.1497564 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOCoT-0005jN-DV; Wed, 26 Nov 2025 10:31:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172504.1497564; Wed, 26 Nov 2025 10:31:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOCoT-0005jF-Aq; Wed, 26 Nov 2025 10:31:53 +0000
Received: by outflank-mailman (input) for mailman id 1172504;
 Wed, 26 Nov 2025 10:31: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOCoR-0005j9-R6
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 10:31: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 1d6ecf26-cab3-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 11:31:49 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-47796a837c7so43166325e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 02:31: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-4790adf0b2asm34372895e9.11.2025.11.26.02.31.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 02:31: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: 1d6ecf26-cab3-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764153108; x=1764757908; 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=ygbQtP4Gy+uyLgHvdIXGVmUP8yFQ+ItIK+LjfBJ3E80=;
        b=WTr7BHIa6f/K2851I0AMI0NAFSGDWymU8qMRYavli+8HaUr5GCMAf8ZAWNI8wUehqX
         TbW5IiR6bq3GIPSXGkNPrC2KyI0Al/qJa4ejO+hED+uy+zsWrXSA9YDIklABDHeEmhkJ
         660PtuDn5QhZzJ3i1ML+4e16ji20t8fGpZKmHz3LUm6RfSHln+8415AtgE6UAe8MIbVr
         RoiOwONCOP7M643/HDQA5VhCDDhjXF/ti9j/7eRMQ8IfDf4DRcHIFL5DLGM4esaH7Lw4
         GxOEtongmsUyea7UCNFWevVYSd2cczCuLJgFkO7mSlqdI5Aid5RdoZM1HHWq84ydruF3
         HC+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764153108; x=1764757908;
        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=ygbQtP4Gy+uyLgHvdIXGVmUP8yFQ+ItIK+LjfBJ3E80=;
        b=rrwrAA+u0yCl8SfEZFWGOjy1lD4n1yN5APDwVSYVQNgkytkE6cJsRGKnVM0YvFxRBA
         CIdeI0AbIJdzm9voJxOZ+nhF67Zqx6DifBXDt7vp7o4/ZSGovial6JMus/Sv0PNnaMdp
         Znl0ziRik/6Dc3rvyZogmN71kGHAEsqb9yPBWcDJWIKlLF/GCZDEAJFXJ5d7X2NDjP0c
         mT0/Nm4bsEeb8HzKnp6kDNyV8h9/I5otdSsKjnHDB4uwqA13QoOKBPekBaYFbKPDhSx0
         6J+2/sOESH6hCPXLi6sTty21RlLm0YmSquAzzX0msUar93XQsALoFp96/PQjFzPvvwRk
         zBgA==
X-Gm-Message-State: AOJu0Yy3ayMfKZyt8lngao+64JeTgguQk4JZxiSu3rCrUd5F6tPfzm6U
	ocekGgoc6mbQKDChL+Fv2Ay3ECTdlHPY4bFZud5PgVz8guS3QgEIWpyWwuBCbtT98CQdCuAY3fy
	tv5U=
X-Gm-Gg: ASbGncuqfuYiUrwnWO5/Tw6Isefh9lM7ii/uTA+LQx5nfWjLehJPCkvlTPNG/ziFyse
	VfH1muGDjhgG9yHgZqsJMloXLjAwZ/wdo8HpXqZcslJfmZ3/DNIboMRAJMxjegH1ZJMKD4cv4TR
	Upn2c/FRDJAVgWNHX6Jfa6aRExrrg1yKZb/w2h0xqv4O/ghYjsMuhJxR2+bcty5SH4wPOckPKhO
	5gVRqcaWBgI4ro7u5mfBabOjNGxhXxU8h26msgj+fN5L9xT5AYsDAbm+Tc4wwOF0NUvCXk/AIs0
	7/Pv8FzkxnTDJZ9Kqztt2gKJs+Y1cUb5zPFY9cUU5egobptctZEIc4UsXRNYqNEB9dnib3JunS5
	M5x1gWLLe2qTWoectCr20bJCd+SZNx//0UtWYiX4aXPyyupJCKMwR+lLxHnjqmNu/FyK2lzZnq8
	aqwbatUDaCdXJ1aYsFj/gEGWEd/RDqfzseO5REt9yYXFhlpbxlbJfzE1Dhu/zgxD8DAV3AYMlOV
	4g=
X-Google-Smtp-Source: AGHT+IGGyoWYVme04GJAdaNhVIIJ9qvAKtlsOqaFPRnFkFcWpRjj/QOwJjfLarYBEeGHU7RQuA6Czg==
X-Received: by 2002:a05:600c:310d:b0:477:9fcf:3ff9 with SMTP id 5b1f17b1804b1-477c01c359fmr182474385e9.27.1764153108582;
        Wed, 26 Nov 2025 02:31:48 -0800 (PST)
Message-ID: <b010c8ad-afcf-43f4-b273-fdb43ab641ed@suse.com>
Date: Wed, 26 Nov 2025 11:31:46 +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: skip more stuff for idle's vCPU-s 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: 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>
---
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).

--- 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;
 
     if ( arch_vcpu_create(v) != 0 )
@@ -468,7 +468,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 Wed Nov 26 11:05:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 11:05:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172518.1497575 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vODLD-0001hk-Ux; Wed, 26 Nov 2025 11:05:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172518.1497575; Wed, 26 Nov 2025 11:05:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vODLD-0001hd-RZ; Wed, 26 Nov 2025 11:05:43 +0000
Received: by outflank-mailman (input) for mailman id 1172518;
 Wed, 26 Nov 2025 11: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=ehTD=6C=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vODLD-0001hV-3g
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 11:05: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 d80f5c63-cab7-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 12:05:40 +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 65B8622CED;
 Wed, 26 Nov 2025 11:05: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 0C6213EA63;
 Wed, 26 Nov 2025 11:05:39 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id RRkmAQPfJmmzdQAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 26 Nov 2025 11:05:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d80f5c63-cab7-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764155139; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=o7zzAvp0Cv33W96Av9Aa8vgdpisduaBaZW7Br1x5YGA=;
	b=dVzgXtCgkaVfFe/PQUS0MYKHc8kzScZPe+tsSn68uAj15PJCzyLvJhTPCP8rZ6LwmRQMat
	j5Nax+uzmx5Pdt7UslhAIgJAN1bLuMQ3Ewh3XY/Z8G70sezVZmznFJDuxLr6UMQxfUTDnX
	6PcRqsLbbNLRY0nzKmrQMbVImiud2y0=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=dVzgXtCg
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764155139; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=o7zzAvp0Cv33W96Av9Aa8vgdpisduaBaZW7Br1x5YGA=;
	b=dVzgXtCgkaVfFe/PQUS0MYKHc8kzScZPe+tsSn68uAj15PJCzyLvJhTPCP8rZ6LwmRQMat
	j5Nax+uzmx5Pdt7UslhAIgJAN1bLuMQ3Ewh3XY/Z8G70sezVZmznFJDuxLr6UMQxfUTDnX
	6PcRqsLbbNLRY0nzKmrQMbVImiud2y0=
Message-ID: <098fb798-9dab-483f-8ddd-d4f406cedd73@suse.com>
Date: Wed, 26 Nov 2025 12:05:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] domain: add barrier in vcpu_create()
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>
References: <bea22906-5805-4fad-b73a-fb2e3a8da807@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: <bea22906-5805-4fad-b73a-fb2e3a8da807@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------ySWABaX6c61ykiU4pqH3YD0j"
X-Rspamd-Queue-Id: 65B8622CED
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-5.41 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	SIGNED_PGP(-2.00)[];
	MIME_BASE64_TEXT_BOGUS(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MIME_BASE64_TEXT(0.10)[];
	MX_GOOD(-0.01)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	ARC_NA(0.00)[];
	TO_DN_SOME(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	TO_DN_EQ_ADDR_SOME(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received,2a07:de40:b281:104:10:150:64:97:from];
	MID_RHS_MATCH_FROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCPT_COUNT_SEVEN(0.00)[9];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	HAS_ATTACHMENT(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:mid,suse.com:dkim,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns]
X-Rspamd-Action: no action
X-Spam-Flag: NO
X-Spam-Score: -5.41
X-Spam-Level: 

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------ySWABaX6c61ykiU4pqH3YD0j
Content-Type: multipart/mixed; boundary="------------aJOVxAoIc6IHXoENuaBhfbnj";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
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>
Message-ID: <098fb798-9dab-483f-8ddd-d4f406cedd73@suse.com>
Subject: Re: [PATCH] domain: add barrier in vcpu_create()
References: <bea22906-5805-4fad-b73a-fb2e3a8da807@suse.com>
In-Reply-To: <bea22906-5805-4fad-b73a-fb2e3a8da807@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=

--------------aJOVxAoIc6IHXoENuaBhfbnj
Content-Type: multipart/mixed; boundary="------------uMx6b1YJEOYH4CSPjKc0nlED"

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

T24gMjYuMTEuMjUgMTE6MTMsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBUaGUgbG9jay1sZXNz
IGxpc3QgdXBkYXRpbmcgaXNuJ3Qgc2FmZSBhZ2FpbnN0IHJhY2luZyBmb3JfZWFjaF92Y3B1
KCksDQo+IHVubGVzcyBkb25lIChieSBoYXJkd2FyZSkgaW4gZXhhY3RseSB0aGUgb3JkZXIg
d3JpdHRlbi4NCj4gDQo+IEZpeGVzOiAzMDM3YzVhMmNiODIgKCJhcm06IGRvbWFpbiIpDQo+
IFNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCj4gLS0t
DQo+IFRoZSBGaXhlczogdGFnIGlzIHByZXR0eSBhcmJpdHJhcnk7IHRoZSBpc3N1ZSB3YXMg
YmVjb21pbmcgbm9uLWxhdGVudCB3aGVuDQo+IEFybSBzdXBwb3J0IHdhcyBhZGRlZC4gKFN0
cmljdGx5IHNwZWFraW5nIElBLTY0IGFuZCBQUEMgd291bGQgaGF2ZSBiZWVuDQo+IGFmZmVj
dGVkIHRvbyBhZmFpY3QsIGp1c3QgdGhhdCBub3cgdGhhdCBkb2Vzbid0IG1hdHRlciBhbnlt
b3JlIFtvciwgZm9yDQo+IFBQQywgbm90IHlldCwgc2VlaW5nIHRoYXQgaXRzIHN1cHBvcnQg
aXMgYmVpbmcgcmUtYnVpbHQgZnJvbSBzY3JhdGNoXS4pDQo+IA0KPiBJJ20gbm90IHF1aXRl
IGhhcHB5IGFib3V0IHByZXZfaWQgYmVpbmcgcGxhaW4gaW50LCBidXQgY2hhbmdpbmcgaXQg
dG8NCj4gdW5zaWduZWQgKHdpdGggc3VpdGFibGUgb3RoZXIgYWRqdXN0bWVudHMpIGFjdHVh
bGx5IG1ha2VzIGdjYzE1IGdlbmVyYXRlDQo+IHdvcnNlIGNvZGUgb24geDg2Lg0KPiANCj4g
LS0tIGEveGVuL2NvbW1vbi9kb21haW4uYw0KPiArKysgYi94ZW4vY29tbW9uL2RvbWFpbi5j
DQo+IEBAIC00NjQsNiArNDY0LDcgQEAgc3RydWN0IHZjcHUgKnZjcHVfY3JlYXRlKHN0cnVj
dCBkb21haW4gKg0KPiAgICAgICAgICAgICAgIHByZXZfaWQtLTsNCj4gICAgICAgICAgIEJV
R19PTihwcmV2X2lkIDwgMCk7DQo+ICAgICAgICAgICB2LT5uZXh0X2luX2xpc3QgPSBkLT52
Y3B1W3ByZXZfaWRdLT5uZXh0X2luX2xpc3Q7DQo+ICsgICAgICAgIHNtcF93bWIoKTsNCj4g
ICAgICAgICAgIGQtPnZjcHVbcHJldl9pZF0tPm5leHRfaW5fbGlzdCA9IHY7DQo+ICAgICAg
IH0NCj4gICANCj4gDQoNCkl0IHNob3VsZCBiZSBub3RlZCB0aGF0IHRoaXMgaXMgYW4gaXNz
dWUgb25seSBpbiBjYXNlIGZvcl9lYWNoX3ZjcHUoKSBpcw0KcnVubmluZyBhZ2FpbnN0IHRo
ZSBpZGxlIGRvbWFpbiBkdXJpbmcgY3B1IGhvdHBsdWcuDQoNCkFsbCBvdGhlciBkb21haW4g
Z2V0IHRoZSB2Y3B1cyBwb3B1bGF0ZWQgZm9ybSB2Y3B1IDAgdXB3YXJkcywgc28NCnYtPm5l
eHRfaW5fbGlzdCB3aWxsIGFsd2F5cyBiZSBOVUxMIGZvciBhIG5ldyB2Y3B1IG9mIGEgIm5v
cm1hbCIgZG9tYWluLg0KDQpUaGF0IHNhaWQgSSBiZWxpZXZlIHRoZSBmaXggaXMgZmluZSBh
bmQgc2hvdWxkIGJlIGRvbmUsIGJ1dCB0aGVyZSBpcyBubw0KbGF0ZW50IGlzc3VlIHJpZ2h0
IG5vdywgYXMgSSBiZWxpZXZlIGNwdSBob3RwbHVnIGlzIHN1cHBvcnRlZCBmb3IgeDg2IHRv
ZGF5Lg0KDQoNCkp1ZXJnZW4NCg==
--------------uMx6b1YJEOYH4CSPjKc0nlED
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-----

--------------uMx6b1YJEOYH4CSPjKc0nlED--

--------------aJOVxAoIc6IHXoENuaBhfbnj--

--------------ySWABaX6c61ykiU4pqH3YD0j
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/Ey8FAmkm3wIFAwAAAAAACgkQsN6d1ii/Ey+s
ygf/dW6OsEGyqrWFB8q3MkQ1DOUpfzbRJemR9WXOgpG3ACcKw99Nhc/sQ+s0IwwoBRlhGN8WPOTB
iNsj6/7vMoV7zNE/DK2MirwJK20lgPkwDBbzN6GmPSCW/wusz+/mkl20x/mtNzmQBo0vCge22jas
iWNJpLSSHFwWSQ0zx9VikWKkyfGGHgYZLePhNa7kOWJow4iphcgsWEkz/X34gYiwPwP+p67mhgO1
dKfAClg4nUR3DhJxw2TBG9Qaj5CykBTLzr7QcX22VOXyJ0ZzsDMfpoNjb611JuS1Zu27Cc9AUJoJ
Me/pRB0hzohvfTB7o1fxfw15vdogwpuhj8Lrj+5QnA==
=c3rb
-----END PGP SIGNATURE-----

--------------ySWABaX6c61ykiU4pqH3YD0j--


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 11:10:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 11:10:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172528.1497586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vODPN-0002FR-Fw; Wed, 26 Nov 2025 11:10:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172528.1497586; Wed, 26 Nov 2025 11:10:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vODPN-0002FK-BB; Wed, 26 Nov 2025 11:10:01 +0000
Received: by outflank-mailman (input) for mailman id 1172528;
 Wed, 26 Nov 2025 11:10: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=fSqE=6C=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vODPL-0002FE-Sf
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 11:09:59 +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 6f125696-cab8-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 12:09:54 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CO1PR03MB5809.namprd03.prod.outlook.com (2603:10b6:303:6e::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.11; Wed, 26 Nov
 2025 11:09:51 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Wed, 26 Nov 2025
 11:09: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: 6f125696-cab8-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uslhlsluc4DT54IxEJSKMcU38WHey9FRyZ/R+k+jFegUoW9gmBP0lcup8GWEIh7W0SsXnqrlLswcobfmEjBRtWt33LzVXSAgVuR/SUqTuc96E5Dhyp742hLHwngu5wxHOkOwjXIevek2CSiyPZ1fy617iWH73vMcXLQgkrSfVssU7yPCR4SjlX1Arky41dmW/On9tRJGDUIqk5e2yrT8Z7hM7BZNgRRyZejT/7sRAltepTBzgMQJd3aq4uMO3KImo8oS6bRBoMtGsYEPzURhaygCtlQArz4DYtH01sjiQ/5TEaz+lYjxhICURg3MhwAx38qf6CzEYoVPwlZe/nl40w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aRnrKSlf1pDoETxfuuM9KyGVSvKeS01dXGHvW0X8Tbg=;
 b=rN052pVqHddHXduZEHyC5m1lduF31uotTFl4Tow8L0iD/5V/SKG0hhg+p0DWD6IQ3df7alxnUs5lP3os0pd7mwJjLkAKyWc28/GU/n2v6yxvpdbmrNGKnykqZZvh8tfPNvxWjpMEF5r7PEE2p4ZWWVsGB5vTKxavWQ/aojd3+oNKJfpJpYZeOf9AjLz/uj1KXPYwxm6PsO49bx/gIzLaKB2ra5xQJBplP1nzsUkontESL8NUMIDt8lkUi4wDe8fApmEQmz263CufzDvt3YqxAXt1Oo4zFHIsH7dN10CYGcd8DqNMQIP5QN2AfTkgiJ8eFKzxtId+Ddp+znJW8qeGwg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=aRnrKSlf1pDoETxfuuM9KyGVSvKeS01dXGHvW0X8Tbg=;
 b=NsDL88RN8Ehe6fo6IkATwnwjN2AtL7PrZmQuZFNhrhBkpo3sPbRs6dGXaDdGkVrWYHN7vYnJmTvcpoR9Du6tr2xuHsweElCDZtv8DREfMopEZYQI7to+UirUlmWp4kQ4Mfi/TFI1YgQmxYvGiSsQqNXn0H92zI3unhtFjv2PHbY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <54ea162a-4de1-478b-afb8-c566d828dd03@citrix.com>
Date: Wed, 26 Nov 2025 11:09:47 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] domain: add barrier in vcpu_create()
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Bertrand Marquis <bertrand.marquis@arm.com>
References: <bea22906-5805-4fad-b73a-fb2e3a8da807@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <bea22906-5805-4fad-b73a-fb2e3a8da807@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P302CA0001.GBRP302.PROD.OUTLOOK.COM
 (2603:10a6:600:2c2::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_|CO1PR03MB5809:EE_
X-MS-Office365-Filtering-Correlation-Id: 949d926b-c5c9-42bd-810c-08de2cdc51f2
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?N2lIRGU3cHQyYUIwNXJVNnN5TEZNOUsxdzZBL3hEUXlNTVJ5bVh2dVpaRGNB?=
 =?utf-8?B?b0JOcmRZcFlKUmRLanFJdmZBbnI3akw4TzcvM3lMN042QTNxOTJIVTluZFRO?=
 =?utf-8?B?aTRSM2VldGR5T1pBU2RBeE9BS0hGVDlHTjNzdktOUHVOVFRwMWxCeUdzaEd1?=
 =?utf-8?B?T1g0K1dqNTRZNEp5TkVldzd6YVdJVEtKQVVaQTlhbXl1UzZ4MzRlWTVEODkv?=
 =?utf-8?B?dWhCMkZybHlPUnRldjlLYkF3aTAySWtMNUcwQlVXL2FTTERuN2JrUjdFOFB2?=
 =?utf-8?B?Y25hK3Bab0NyWlZkRkRnMWJLZDg1TW41K1VnM0xORGI4VUNhNkdSUEcrckpE?=
 =?utf-8?B?SmQwM0wrQ1QvUjRPOW03N2d3MzZSdVk0NkY2S25PWUJVUlB5aDNUaUtyN09M?=
 =?utf-8?B?ZEtkOW42NGsxQlRHMS9SQm5QVktFZFdYaVRXanZ2RzZQN1R6UGFPNjkyUHBz?=
 =?utf-8?B?NXBOWmk0ZkhnNDgxUG1YbVhuQWI2OC8wN3NjK2RGQkkrR0lhWjBtWjdFQmtW?=
 =?utf-8?B?KzZLZmJMRUIrWjVaL3Z4ajZtOTFhMEczM0JlV2laM0d6amd0MkdnYjViZ0pN?=
 =?utf-8?B?WThmcFFYc2Fkcjdrc0JjR1F2aTMyVDBsdTBBcDRmMEppa2NWMzNBZkdFSWh6?=
 =?utf-8?B?dWVoYVFMVjVjWTVQN3R6TzhTNVBsV3ZXZk1DN1BDaDAzOG8xQ3pOcmpqaXRT?=
 =?utf-8?B?N3ZFMzhIc1BsSVpYQVhuUDljckErMGxWVUF5cXFUV0Z2MSt3VlZETzlmKy9T?=
 =?utf-8?B?Z0RCcTRUS0RlblpzeWNLYVl1UndsTUo1VGMvSDJORlBWemE2eEtKVWlZUVJp?=
 =?utf-8?B?R0V5TnpMOUVYNXlYczM5citMc3hqWVJCL2U4ZjJmRDNzeGUwNWxLNldYZkFu?=
 =?utf-8?B?WVpINEtOYkZWVDZHNE9jNjJ1Q2Y5TVp5c3E1cGYvMERSMS9peTREMmpSbW9R?=
 =?utf-8?B?cFVXWG5YTWZDWitSK1piRXJrVWdwT1dHaGpqaVl5Y1ppSCtMejdaUk9xNUNs?=
 =?utf-8?B?SEtPMFNwL0EyMVN5Y000OWFyKzcxeHVCZWduMzhCNkZJQWZLQ1ZvQ1VxaUt6?=
 =?utf-8?B?eE0rZ296cnhiTFBCbkJ3Vlh0aTBDclhuRzdaQWFZSWtFS0twOTYvM2Ftakk1?=
 =?utf-8?B?Wk5kd1p6V3Vmd1lPNndNK2t1SmpZYmxyZkVsTnYzL2JBUFYxb3c3d2NVRVZk?=
 =?utf-8?B?eEJBcDZzZEpLKzlaQkFLNk5qaHNWb3o5ZjRqL1N2Yng0VU1hcE1JdU1hblNL?=
 =?utf-8?B?WVB0STY2c29MTGtwajJIMHF2cUdER3k0cTVDRGdoNk93ZzRhV3A5MVgxUjl0?=
 =?utf-8?B?NzliZmgvbWhtM2pCT2ZuM0xKZFFET1VvVnhPSnlPMURiSVZwbE05Mmp2dHVF?=
 =?utf-8?B?TTlyd0YyQjR3QjY1L0I3a24yaDNXUkJFMjVzSUlSOUtBTU9rMjZNQStwSFZD?=
 =?utf-8?B?UXZMODJ3OGVRY0tWNXVFVkxlT2tVeloyeTJ0TVNJZFVYbnBTMnl2MGdTbmZj?=
 =?utf-8?B?bmNvNGUwNlppY1BqSDMyMkNSRHRvTy95TVdnVzV2dzdjd1p1OTNkTTArZlFi?=
 =?utf-8?B?VDMwcXJ3U25mZ3QwSHc4OFQwUzh0dTluMURTZ3Y1dWJhR2l5TUdrRi9QcTBz?=
 =?utf-8?B?ekNiZlpzOEkzc281bUswRXdHQTdINmxiSUFpdHJBNWNSWXRodVE0dGxkQzAv?=
 =?utf-8?B?RXE0OVFvREpVZkpNRFlUQ0FCY2sxUXgrUHNaUXYyd201STFlLzhoSURQOE4w?=
 =?utf-8?B?cTdwWXZXLzdOeGlLTmllYzVjNExjRkZET09DVlE1Yjd6Y0ExUFUzeEt4ZVIz?=
 =?utf-8?B?RHRqZGNlTTZVUE9YakJUNDFqSGNEOEhNd0xWVWV2aUlvNXkyQmhoVXNqNnBW?=
 =?utf-8?B?WGNZelJabUc3a3BxM1hJTEU2KzBaNUxKRnhZS2tMS0JNK0hUalNZOWFFb3F6?=
 =?utf-8?Q?iJ1e5qgepAjIgnuF2B+asbL+Pucq8Y4k?=
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?SzdwbTlhb2VYM2t0SDJ4OHN6UjgxWVJ6Z3QreXMvdTU0KzE5NWJVOVZmMkxz?=
 =?utf-8?B?TG85blZOcXdMcmovL0pNa1J0M2FaY0RDMHJHMzZwaTgzeDRzUWphYUUzY0dS?=
 =?utf-8?B?Y0pCK0FHR3JVbkhReU5yQjB1R3pPQVRBYnc3T2VraHNhRWx6enZQTHlhOGo5?=
 =?utf-8?B?VVk2NjlvM1VJZ3VYV0FFS1Vla3FlcXBYbXFna0RNalRsbkkvYU0wNUtnRDNs?=
 =?utf-8?B?RjIvRTdhd1g2T2xWaHh3MUhXeHdPNXhHdVRKcWNRRlptVlBHcFR5MVpLVFNT?=
 =?utf-8?B?SWJIZko3a0RXb1ZHSUNISkxKeDhoZ1J0K1IzTWdrdlNRdHc1QmZGZFVoL0FU?=
 =?utf-8?B?RnNPQ284bXFTTDd1K1dmdm9YLy9mdkpSSSs4cGZkVmZjUDVGczBrdkhvcWNB?=
 =?utf-8?B?WjdTVmlWbTRwKzV3bGl0YnZ5K2dGQmw4eFQ4SlA3L0VPYVZ6MEFtUEVZMHUw?=
 =?utf-8?B?b1YyK01Wbmt3UGVoVGkwMVVJVkJzdVh2YnQ3ejVHY1g3MmxDZlFCazdwWXU4?=
 =?utf-8?B?RERXWTFhaUJ6RGp0NERwN290Q09JVldheVVDWlZkT3UzaTRBNU00S3lNWmxl?=
 =?utf-8?B?S3pxck9xNFFKeFBRM0FyV0RodTZmOHUyem9kSHFBdmp0L0RQMkQ3ZEJTek41?=
 =?utf-8?B?RUpBUXlvcWM2Z1I0NnkxUkxNUklYdXVEWUVqT3F2bmI2dEkwQkllOXpkY0JY?=
 =?utf-8?B?SW9ad01HVXRLekcvNk5PUmJ2VGZkL1BoaTNDa0puSlNzTy9ablVXZWVLMFlV?=
 =?utf-8?B?ZldQZmJiSlFiWEFwY1A5U2p0VUYwQWtKV3JBMSs5aGFFbjc0MmRLM1VaV3Jq?=
 =?utf-8?B?ZWVHUzFROGZkSmwrUDVSV1dMUUEyL0hXS0lPWTMyV1B5dFFjWHRQdlZnZE5v?=
 =?utf-8?B?ejJsZjdMaVpNY2tHRlh6c3RrNFVUVmw2VUR3TEtBTFI0bVQzN2RuN012RFUz?=
 =?utf-8?B?Y3JpMXJ4Y3JNMGJoRjlqV1VoU3RjZnhWYlhkSmdLUTNxWWRCL3dMdzNZYXhi?=
 =?utf-8?B?dnlsL0xhZU82eFFBMmJJNmMzdkdQYkdtYVB6T0dsQko3dVpTWno5anBuWFVV?=
 =?utf-8?B?djl0bG1RZmVjOFZHZDNLaVpOeUdsUHVzYVJuaDI4cis3enRDcCtZUVBqSDFY?=
 =?utf-8?B?VkNMT25KUzBTM1E0dDZjMHU1Mk1pdE5sckZ0Vk9OcmFqQm91TXlDMTVnWS9w?=
 =?utf-8?B?ZXF5dWluQnNVVmN2S0Rlem8va3ZNUStqVVFrdHdBdU9ndmhuazROWWYwUFFs?=
 =?utf-8?B?MG5hK1pDUUx3aTI0c3RMT3dTKzhrTWZUNFM1OHFMV0RycEJoS28vMFo5SVZH?=
 =?utf-8?B?Q3Z3TEJpWW1Yb0c3WGZJVisxWitxU1hyMXlxcDhpbE5VS0Exa3l2ek5lc2Ey?=
 =?utf-8?B?bXBwU29tOGx1VjNIeFlMYmVaMXYxOGFnQjlYTjBsdVhFLzNvb2Y1MTRQSlpE?=
 =?utf-8?B?THZVb2VoSmdnWWhueXJyd2ltaFJaby9vUlUzNnIrZjRId29Da0JiNmRUb3lm?=
 =?utf-8?B?YkUxc3Bma3duc1J4aUUwS2tFVTBNTThUSHk2SE9udlRubmJGRG15dTg2MVNk?=
 =?utf-8?B?eXFnN2k1VkVhejM1VktBTnZXMmFzc1ZsL2FRVDVBZnRqWjlkK29rdzFUZUJZ?=
 =?utf-8?B?dm1mUUZ2K1JIekduNEFkaTVpZ1IzbDUva2NwdDRqKzdOWVQwWnM2SnFzR0tw?=
 =?utf-8?B?S3FuV3JETE5RN3Z5UmJ3R3lzL3NmckluYjlyVnZMdlpma01IcEVTdnNKL1gx?=
 =?utf-8?B?Nmd4MnUwd3RXVDBjNmFka0VLSmhZbGtyQ1lBd0gyaU1zblBuL0c0NG5NT0ZC?=
 =?utf-8?B?UGdVanM5cms2SnF4cUZLTVdTTGFYN2FDU2RWQVlObVFNVFIyaEtoWStMb0xR?=
 =?utf-8?B?RjNsWE9tcHdFbnpwNm8vN0RObnlyWE85cWhLR0R6TWErRmhYUEsrSWRmSDl4?=
 =?utf-8?B?Ym9RQzlIdmxGUk9zQkNxN1E1Z3ZyQ1NRS0ZoZWVIamt0c3k3UDIxdEJkMHlM?=
 =?utf-8?B?ZkRZbGJlaEdpL0RZSTM3YnA1dityeU1ZOFlWRWVzSjZia3hZcytRWDZ0NVRN?=
 =?utf-8?B?R2dWNlBFaEpHNWZqMi9PSVB3NldIRkNoUlpsVkJIOXpxNnM0eGRQZHVjTUR4?=
 =?utf-8?B?RHhUeVdsRWlBTzFpeWtwcTkyWUx3L2o1V3VaUTB0VHNDOEQ4K2laM2dYRGJl?=
 =?utf-8?B?ZXc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 949d926b-c5c9-42bd-810c-08de2cdc51f2
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 11:09:51.3991
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +nGCl8e9SElRiTYBnLg0aCoY9krrL/GEDwLWBzhOLol2yTUY95gwB8cp6hOEq7H0PnQ9zyxlH3d1XXigjs2Ua3bfFPuYKR6cjhIQQJOiMy0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB5809

On 26/11/2025 10:13 am, Jan Beulich wrote:
> The lock-less list updating isn't safe against racing for_each_vcpu(),
> unless done (by hardware) in exactly the order written.
>
> Fixes: 3037c5a2cb82 ("arm: domain")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> The Fixes: tag is pretty arbitrary; the issue was becoming non-latent when
> Arm support was added. (Strictly speaking IA-64 and PPC would have been
> affected too afaict, just that now that doesn't matter anymore [or, for
> PPC, not yet, seeing that its support is being re-built from scratch].)
>
> I'm not quite happy about prev_id being plain int, but changing it to
> unsigned (with suitable other adjustments) actually makes gcc15 generate
> worse code on x86.
>
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -464,6 +464,7 @@ struct vcpu *vcpu_create(struct domain *
>              prev_id--;
>          BUG_ON(prev_id < 0);
>          v->next_in_list = d->vcpu[prev_id]->next_in_list;
> +        smp_wmb();
>          d->vcpu[prev_id]->next_in_list = v;
>      }
>  

Where's the matching smp_rmb()?Â  There needs to be one for this
smp_wmb() to be correct.

It's rather rhetorical, because clearly the smp_rmb() needs to be in
for_each_vcpu() given your commit message, but we obviously don't want
to do that.

This list can only be changed once during a VM's lifecycle, and even
then it only gets appended to.Â  i.e. this particular piece of logic to
splice a vCPU into the middle of a single linked list can be simplified
to the second assignment, as the first is always copying NULL.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 11:17:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 11:17:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172544.1497620 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vODWN-0004Cw-Dt; Wed, 26 Nov 2025 11:17:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172544.1497620; Wed, 26 Nov 2025 11: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 1vODWN-0004Cp-A7; Wed, 26 Nov 2025 11:17:15 +0000
Received: by outflank-mailman (input) for mailman id 1172544;
 Wed, 26 Nov 2025 11: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vODWM-0004Cj-3v
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 11:17:14 +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 70bad215-cab9-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 12:17:06 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-42b32a3e78bso5413228f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 03:17: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-42cb7f2e598sm39344642f8f.4.2025.11.26.03.17.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 03:17: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: 70bad215-cab9-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764155825; x=1764760625; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=49x1y/0dDRT0kPEmtsNsz+msYAorMgA4JUYyEWbk58w=;
        b=Uv/Axgfdv0bX1DEpZsY2SmvKTP15yjL5so52oeBInwTYx+IVooi+RpJmjmCsP1c9GB
         kTEjpxj88m0HFCQEFHCOXim3QOr9w82KJ8ICawAAK5NomgMHTdrV3K60dK47dgd6WFOC
         N4UqaTGkS8GoYDr8fpZDw9TudsFam8rsEpqRygJxb8h5vpeWVJG1VknfjKBsKPYRtkAD
         PKbliOU+1AGPaIXSecWapd2mM8Pq5Ch1mOhVEnhPjT8BwU90onBebihPFfj5Pmn223Ig
         Mlqp4I1RX2rnQEtVSokGCTAwkDlKob+YUmPJPyGJXfNpVt5AeGau2KfOusXNuNU79VhA
         KoIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764155825; x=1764760625;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=49x1y/0dDRT0kPEmtsNsz+msYAorMgA4JUYyEWbk58w=;
        b=PN/nGnlvs8L5lma8t6faumzEozJDPmscr8O5My2xtOfzqYvIrdGUQx3wIzYfGlGP9Q
         u/kkDFc5zrSpMG3++F7npYzcTts3YqMP6UScxqSMpj5yWmKOiu+26lluXRTssG17dF24
         7sFPR12OxnIfBTwDk3rsOBsltt1fGN01VY5sFgvN/01uXAkY3yViXQPJHVd+sA9wGbyw
         eeiGhoTAw1tNgKpDk4Vc8pzzywNg7VD8Yr/PIFZWRMjsiyyvu7LakmnvTYKaM+N83rAd
         VMYAkODeSC7nqPPiv+Op722UQrQMLmWa3QSpSVkpuhVN3q72dtx2o+Id7/XwlXyyoWKM
         Okbw==
X-Forwarded-Encrypted: i=1; AJvYcCXeJw14m0/+RjkmVmgsvPoxoR2Pb8/NmjORj6WQgSbmStxzYt8We/nQptmIvoH/qJfmylrgy/f+440=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzMUJN5M2JnqUCblu9Y5i93GdoparYo/yUIK2ieNEYuSugA9yzP
	cQcvA0/gHP22yzb24i6RLd1bOE85r+dfTZ6BejV/NeIZA5ngBnxRXLiJfq/3VkGOPA==
X-Gm-Gg: ASbGncu1wwUNm6d9oxLD9lldJhgMo2k9VRxQHGwjkzvS1z7sRhSgET5T8AW5e6ATKmi
	+74l8w0EUdEqRg1/1Nhy6/F0xaJZzjXJMD4NtIop2KzT1W1KupVnScCrBjRHtfgm5Y6NRNiqfON
	GqV0df1bNP2378JSGViQChRCvlCSfSrGk8q80C87uUu2a+PBOtUXB3rtUkO8eZG0GMhb8+3zT6O
	1jzTevamtwyWGjzKWMon9dxYaMlBzjGFC1XNmXNEj7GyZq21aWzcMsz48h/wF8o/t4EK2QEKJ4C
	2bihgF/qTCt2xes65JOQ1O4OlcaM4FckrUZx9Abl4YfqN0XYWes5UBGIQmQSHMm9U+oGk+UzUnj
	aShJ0AaLmdz/Wh0y2TaLoRdjoLmsbMEeR0STuAzzvbPPji+ZBP/l13DglayGYN/rT49I/bk79vW
	LdmvjcbrhoEifHDG/MQMJCVvwlbtS51XikGHf2qKCv3vJx2yVG5PbHfm195ZgtDcaHoOuiJo1I7
	e8=
X-Google-Smtp-Source: AGHT+IHn8+G2QkrhtawRS5x0JSo9O0cAU5xapwguCRzb9GE7TukYc+z5aa3Iz7BTrFEu+ktu0XDrgg==
X-Received: by 2002:a05:6000:4210:b0:42b:4279:eddd with SMTP id ffacd0b85a97d-42cc1cc3084mr23523887f8f.24.1764155825136;
        Wed, 26 Nov 2025 03:17:05 -0800 (PST)
Message-ID: <ff054628-2eaf-4a9a-8f0a-c0fc6b439036@suse.com>
Date: Wed, 26 Nov 2025 12:17:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] domain: add barrier in vcpu_create()
To: Juergen Gross <jgross@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>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <bea22906-5805-4fad-b73a-fb2e3a8da807@suse.com>
 <098fb798-9dab-483f-8ddd-d4f406cedd73@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: <098fb798-9dab-483f-8ddd-d4f406cedd73@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 12:05, Juergen Gross wrote:
> On 26.11.25 11:13, Jan Beulich wrote:
>> The lock-less list updating isn't safe against racing for_each_vcpu(),
>> unless done (by hardware) in exactly the order written.
>>
>> Fixes: 3037c5a2cb82 ("arm: domain")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> The Fixes: tag is pretty arbitrary; the issue was becoming non-latent when
>> Arm support was added. (Strictly speaking IA-64 and PPC would have been
>> affected too afaict, just that now that doesn't matter anymore [or, for
>> PPC, not yet, seeing that its support is being re-built from scratch].)
>>
>> I'm not quite happy about prev_id being plain int, but changing it to
>> unsigned (with suitable other adjustments) actually makes gcc15 generate
>> worse code on x86.
>>
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -464,6 +464,7 @@ struct vcpu *vcpu_create(struct domain *
>>               prev_id--;
>>           BUG_ON(prev_id < 0);
>>           v->next_in_list = d->vcpu[prev_id]->next_in_list;
>> +        smp_wmb();
>>           d->vcpu[prev_id]->next_in_list = v;
>>       }
>>   
>>
> 
> It should be noted that this is an issue only in case for_each_vcpu() is
> running against the idle domain during cpu hotplug.
> 
> All other domain get the vcpus populated form vcpu 0 upwards, so
> v->next_in_list will always be NULL for a new vcpu of a "normal" domain.

Hmm, right. And I don't think we ever do for_each_vcpu() on the idle domain.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 11:23:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 11:23:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172557.1497634 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vODcc-000625-DJ; Wed, 26 Nov 2025 11:23:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172557.1497634; Wed, 26 Nov 2025 11:23:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vODcc-000619-8x; Wed, 26 Nov 2025 11:23:42 +0000
Received: by outflank-mailman (input) for mailman id 1172557;
 Wed, 26 Nov 2025 11:23: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vODcb-0005yy-Rv
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 11:23:41 +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 5c049bbc-caba-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 12:23:40 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-42b3d4d9ca6so5428096f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 03:23: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-42cb7f49a7bsm39748767f8f.19.2025.11.26.03.23.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 03:23: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: 5c049bbc-caba-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764156220; x=1764761020; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jk1pvK0/cLHFveMsauaxwE+mlazVhpXy+21Gpw72R78=;
        b=MJ8kB23vPnEdKi9AeYSYDKMz1HUmChqPw3HABDiRd6Uwa2i95BvAqbC37w6BVg96Xf
         FH7DMBY4mhwpmLDfXeS5ac0n+Nh/wqTQ30zK0pR72IhEVxfxF8C1vMCX4YIwJJtUAi0A
         zhcYmNDzytMfH/3TSs4Z1m7eZtcEcBptgrncCaYOELKHbNIfSO6BLiNxvju69rVBm2L1
         GeS6iPH/kWho9FSRYJTN49eXvXa+hx+HkrUE9Msl0HIUx7vesJVHOTE+U44IbjGgGhQp
         ahGoyulJaYAfqVVe6Pn5DH+1qZw1v7s/fgCe6oW6nFI0MbXP6l5ViGpRVqAKihURxcus
         XRTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764156220; x=1764761020;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jk1pvK0/cLHFveMsauaxwE+mlazVhpXy+21Gpw72R78=;
        b=QH5KpEZlqquacMOHFctTPke2c630g64DYiUWeDup//C+1MusiaV0QAkOKW96OPMO1Q
         hV5kwLEkbEVNAS0erudOmLawLK3ucdL/U7+ZuBDjUO+twzZclVOZM+J9RPdRDJv8QjKB
         C7JYwek7lkFFaV0MwvND0HDYwGobhzSJgT3H/jM+iCYIrWRcM41qTcBbR17EynJGGBt9
         YilYr6HgXfEmvO25eOQV8e50FbIRxj5tIJPACBitS9ZUQK5y0OSdoVaIfN/bjAZRBOnM
         ibBa+XeibTpaqElK04V2UEgFkcOe9ugtadN7CXl2CFpOWhZcxY9++GGUX+7ucQPPFjiK
         rNAA==
X-Forwarded-Encrypted: i=1; AJvYcCXa0OU1gkPUe5/3+BtYotss+LHoljVTN4Iexyrke091RnVhEIHgXYFZO/oNgvy/QVXukbNGIntWU6Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzqAYynfQJCeD6Nl3RBt+fkx4UMWP1AS1Vtv6dvr4phal//h9Rg
	dwGl5+fqQt0fWs1Xu+zshQ3eWtJViXuXMZqIXIQh8/arMMuyZthVKJ4tpLXdy8IfMQ==
X-Gm-Gg: ASbGncv5Thz3Q/EjEjiXzfS+gFS6q4s8qqsbvUH1iXtgH6cBz2AsyUbCmy6OXfXYSg2
	/ANeFZXO6/YdAQOgdwOkvJrXiWqzTWppJv9xf6fbdKpy4RHOhFbdm3hnG1oJlkKpnb9OcAH+haq
	KeFlVe2DCWC55Fy0KbzNIGE9p25PbeBEYm6V1e6T9QKt07BHwloGSNvop3UUxbo6UDbWqYuWrSL
	DKeHlwXs9Z20u6fvzRzKvkKnEhZfLI1ozJhjnD3z04RHNJalRxz9C4M6W1eQ0ZvHPx0SOg95cEz
	FFudn55BM4v9ht4OY2HQjtY0rRraxGtr+RysS0zX0ytrJIe4Iof70WnPPN7rZUPgA3Nk734JG7p
	ujzalfaJDiPdYVFZpkQ6Zw11jOjNgH+RxiCZpPV11qgKTHOtgQAV/H4L/ifw4crdK4qFBXWzEr2
	a+1/yZAcsZQUL29MwYlEG763ivQRZCkhviISVwR8PBfmQ13o+E527XTN+Eb2PtFnGMOaFulq+qz
	Oo=
X-Google-Smtp-Source: AGHT+IEdFK2yHPsbEzCAP2X9a7f0hRhti3Crob6qs3Wt4QdwlIfa4mDepKXylvEviILS88ezUu6Ocg==
X-Received: by 2002:a05:6000:1a8f:b0:42b:3c25:cd06 with SMTP id ffacd0b85a97d-42cc1cee419mr20496524f8f.22.1764156219902;
        Wed, 26 Nov 2025 03:23:39 -0800 (PST)
Message-ID: <01309cd4-9feb-42c2-8275-405a0ffb5189@suse.com>
Date: Wed, 26 Nov 2025 12:23:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] domain: add barrier 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>, Bertrand Marquis <bertrand.marquis@arm.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <bea22906-5805-4fad-b73a-fb2e3a8da807@suse.com>
 <54ea162a-4de1-478b-afb8-c566d828dd03@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: <54ea162a-4de1-478b-afb8-c566d828dd03@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2025 12:09, Andrew Cooper wrote:
> On 26/11/2025 10:13 am, Jan Beulich wrote:
>> The lock-less list updating isn't safe against racing for_each_vcpu(),
>> unless done (by hardware) in exactly the order written.
>>
>> Fixes: 3037c5a2cb82 ("arm: domain")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> The Fixes: tag is pretty arbitrary; the issue was becoming non-latent when
>> Arm support was added. (Strictly speaking IA-64 and PPC would have been
>> affected too afaict, just that now that doesn't matter anymore [or, for
>> PPC, not yet, seeing that its support is being re-built from scratch].)
>>
>> I'm not quite happy about prev_id being plain int, but changing it to
>> unsigned (with suitable other adjustments) actually makes gcc15 generate
>> worse code on x86.
>>
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -464,6 +464,7 @@ struct vcpu *vcpu_create(struct domain *
>>              prev_id--;
>>          BUG_ON(prev_id < 0);
>>          v->next_in_list = d->vcpu[prev_id]->next_in_list;
>> +        smp_wmb();
>>          d->vcpu[prev_id]->next_in_list = v;
>>      }
>>  
> 
> Where's the matching smp_rmb()?Â  There needs to be one for this
> smp_wmb() to be correct.
> 
> It's rather rhetorical, because clearly the smp_rmb() needs to be in
> for_each_vcpu() given your commit message, but we obviously don't want
> to do that.

It's not rhetorical at all, I think. It's not needed there because of the
data dependency due to reading the loop iteration variable from the link
fields. I.e. there are no two reads there which would need ordering against
one another, and hence there's simply no-where to place a read barrier.

> This list can only be changed once during a VM's lifecycle, and even
> then it only gets appended to.Â  i.e. this particular piece of logic to
> splice a vCPU into the middle of a single linked list can be simplified
> to the second assignment, as the first is always copying NULL.

Except for the idle domain, as JÃ¼rgen also mentioned.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 11:23:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 11:23:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172556.1497629 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vODcc-0005zC-5n; Wed, 26 Nov 2025 11:23:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172556.1497629; Wed, 26 Nov 2025 11:23:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vODcc-0005z4-2A; Wed, 26 Nov 2025 11:23:42 +0000
Received: by outflank-mailman (input) for mailman id 1172556;
 Wed, 26 Nov 2025 11:23: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=ehTD=6C=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vODca-0005ys-Fy
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 11:23:40 +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 5a435947-caba-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 12:23:37 +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 D80F022DA3;
 Wed, 26 Nov 2025 11:23: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 8AD773EA63;
 Wed, 26 Nov 2025 11:23: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 bbZXIDfjJmkuCAAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 26 Nov 2025 11:23: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: 5a435947-caba-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764156216; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=/QWWda1U+jLnEbXTO2m7IctqawnL+8Ly4gHwKfLYt20=;
	b=DgYYSLwCZkb6FzRO0K9z5gf9aDcpygxjfQpTLTUde8eBw3T28wk13JmgbBB8Yfpjht6vx4
	+UkRq/u+4NSjpO7+NH3NJjh/R0mojW41NaF2quPtu+0V+cdmx7cYCw2zY4UpkS08s+cqXm
	fgDDmpJQpK11yEkKhYanFoKTNIbQx6M=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b="MvPHHX/7"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764156215; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=/QWWda1U+jLnEbXTO2m7IctqawnL+8Ly4gHwKfLYt20=;
	b=MvPHHX/7VwcBkiPMo9zQ2rDhQZ57EhSchEbaiaHrmvghI0RnfyIYDD+t2757QHCH+HFIoS
	lfVvfYvo9YclXCAfM8lgmzvEz8cpPm8sSEzGHQoA3wC0o0wQFobIKLrdiSsV4eUqTgdxG2
	N7IqGxgyVzZta9x/g5c49/fMLBuGRPs=
Message-ID: <3e02e198-1a00-48be-8e6f-a3c1a716451f@suse.com>
Date: Wed, 26 Nov 2025 12:23:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] domain: add barrier in vcpu_create()
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Bertrand Marquis <bertrand.marquis@arm.com>
References: <bea22906-5805-4fad-b73a-fb2e3a8da807@suse.com>
 <54ea162a-4de1-478b-afb8-c566d828dd03@citrix.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: <54ea162a-4de1-478b-afb8-c566d828dd03@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------fd6hUu4tkVl3Eu44Zh6dbzre"
X-Rspamd-Queue-Id: D80F022DA3
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-6.41 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	SIGNED_PGP(-2.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_BASE64_TEXT(0.10)[];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MX_GOOD(-0.01)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	TO_DN_EQ_ADDR_SOME(0.00)[];
	ARC_NA(0.00)[];
	FROM_HAS_DN(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	TO_DN_SOME(0.00)[];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received,2a07:de40:b281:104:10:150:64:97:from];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	RCPT_COUNT_SEVEN(0.00)[9];
	HAS_ATTACHMENT(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns]
X-Rspamd-Action: no action
X-Spam-Flag: NO
X-Spam-Score: -6.41
X-Spam-Level: 

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------fd6hUu4tkVl3Eu44Zh6dbzre
Content-Type: multipart/mixed; boundary="------------Q60wzg0tVO2U3TEztGayqjPH";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Bertrand Marquis <bertrand.marquis@arm.com>
Message-ID: <3e02e198-1a00-48be-8e6f-a3c1a716451f@suse.com>
Subject: Re: [PATCH] domain: add barrier in vcpu_create()
References: <bea22906-5805-4fad-b73a-fb2e3a8da807@suse.com>
 <54ea162a-4de1-478b-afb8-c566d828dd03@citrix.com>
In-Reply-To: <54ea162a-4de1-478b-afb8-c566d828dd03@citrix.com>
Autocrypt-Gossip: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJ3BBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AAIQkQoDSui/t3IH4WIQQ+pJkfkcoLMCa4X6CgNK6L+3cgfgn7AJ9DmMd0SMJE
 ePbc7/m22D2v04iu7ACffXTdZQhNl557tJuDXZSBxDmW/tLOwU0EWTecRBAIAIK5OMKMU5R2
 Lk2bbjgX7vyQuCFFyKf9rC/4itNwhYWFSlKzVj3WJBDsoi2KvPm7AI+XB6NIkNAkshL5C0kd
 pcNd5Xo0jRR5/WE/bT7LyrJ0OJWS/qUit5eNNvsO+SxGAk28KRa1ieVLeZi9D03NL0+HIAtZ
 tecfqwgl3Y72UpLUyt+r7LQhcI/XR5IUUaD4C/chB4Vq2QkDKO7Q8+2HJOrFIjiVli4lU+Sf
 OBp64m//Y1xys++Z4ODoKh7tkh5DxiO3QBHG7bHK0CSQsJ6XUvPVYubAuy1XfSDzSeSBl//C
 v78Fclb+gi9GWidSTG/4hsEzd1fY5XwCZG/XJJY9M/sAAwUH/09Ar9W2U1Qm+DwZeP2ii3Ou
 14Z9VlVVPhcEmR/AFykL9dw/OV2O/7cdi52+l00reUu6Nd4Dl8s4f5n8b1YFzmkVVIyhwjvU
 jxtPyUgDOt6DRa+RaDlXZZmxQyWcMv2anAgYWGVszeB8Myzsw8y7xhBEVV1S+1KloCzw4V8Z
 DSJrcsZlyMDoiTb7FyqxwQnM0f6qHxWbmOOnbzJmBqpNpFuDcz/4xNsymJylm6oXiucHQBAP
 Xb/cE1YNHpuaH4SRhIxwQilCYEznWowQphNAbJtEKOmcocY7EbSt8VjXTzmYENkIfkrHRyXQ
 dUm5AoL51XZljkCqNwrADGkTvkwsWSvCSQQYEQIACQUCWTecRAIbDAAKCRCgNK6L+3cgfuef
 AJ9wlZQNQUp0KwEf8Tl37RmcxCL4bQCcC5alCSMzUBJ5DBIcR4BY+CyQFAs=

--------------Q60wzg0tVO2U3TEztGayqjPH
Content-Type: multipart/mixed; boundary="------------5rCc1a2UXU4BOpN0WO9yXVAt"

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

T24gMjYuMTEuMjUgMTI6MDksIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDI2LzExLzIw
MjUgMTA6MTMgYW0sIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4gVGhlIGxvY2stbGVzcyBsaXN0
IHVwZGF0aW5nIGlzbid0IHNhZmUgYWdhaW5zdCByYWNpbmcgZm9yX2VhY2hfdmNwdSgpLA0K
Pj4gdW5sZXNzIGRvbmUgKGJ5IGhhcmR3YXJlKSBpbiBleGFjdGx5IHRoZSBvcmRlciB3cml0
dGVuLg0KPj4NCj4+IEZpeGVzOiAzMDM3YzVhMmNiODIgKCJhcm06IGRvbWFpbiIpDQo+PiBT
aWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+PiAtLS0N
Cj4+IFRoZSBGaXhlczogdGFnIGlzIHByZXR0eSBhcmJpdHJhcnk7IHRoZSBpc3N1ZSB3YXMg
YmVjb21pbmcgbm9uLWxhdGVudCB3aGVuDQo+PiBBcm0gc3VwcG9ydCB3YXMgYWRkZWQuIChT
dHJpY3RseSBzcGVha2luZyBJQS02NCBhbmQgUFBDIHdvdWxkIGhhdmUgYmVlbg0KPj4gYWZm
ZWN0ZWQgdG9vIGFmYWljdCwganVzdCB0aGF0IG5vdyB0aGF0IGRvZXNuJ3QgbWF0dGVyIGFu
eW1vcmUgW29yLCBmb3INCj4+IFBQQywgbm90IHlldCwgc2VlaW5nIHRoYXQgaXRzIHN1cHBv
cnQgaXMgYmVpbmcgcmUtYnVpbHQgZnJvbSBzY3JhdGNoXS4pDQo+Pg0KPj4gSSdtIG5vdCBx
dWl0ZSBoYXBweSBhYm91dCBwcmV2X2lkIGJlaW5nIHBsYWluIGludCwgYnV0IGNoYW5naW5n
IGl0IHRvDQo+PiB1bnNpZ25lZCAod2l0aCBzdWl0YWJsZSBvdGhlciBhZGp1c3RtZW50cykg
YWN0dWFsbHkgbWFrZXMgZ2NjMTUgZ2VuZXJhdGUNCj4+IHdvcnNlIGNvZGUgb24geDg2Lg0K
Pj4NCj4+IC0tLSBhL3hlbi9jb21tb24vZG9tYWluLmMNCj4+ICsrKyBiL3hlbi9jb21tb24v
ZG9tYWluLmMNCj4+IEBAIC00NjQsNiArNDY0LDcgQEAgc3RydWN0IHZjcHUgKnZjcHVfY3Jl
YXRlKHN0cnVjdCBkb21haW4gKg0KPj4gICAgICAgICAgICAgICBwcmV2X2lkLS07DQo+PiAg
ICAgICAgICAgQlVHX09OKHByZXZfaWQgPCAwKTsNCj4+ICAgICAgICAgICB2LT5uZXh0X2lu
X2xpc3QgPSBkLT52Y3B1W3ByZXZfaWRdLT5uZXh0X2luX2xpc3Q7DQo+PiArICAgICAgICBz
bXBfd21iKCk7DQo+PiAgICAgICAgICAgZC0+dmNwdVtwcmV2X2lkXS0+bmV4dF9pbl9saXN0
ID0gdjsNCj4+ICAgICAgIH0NCj4+ICAgDQo+IA0KPiBXaGVyZSdzIHRoZSBtYXRjaGluZyBz
bXBfcm1iKCk/wqAgVGhlcmUgbmVlZHMgdG8gYmUgb25lIGZvciB0aGlzDQo+IHNtcF93bWIo
KSB0byBiZSBjb3JyZWN0Lg0KPiANCj4gSXQncyByYXRoZXIgcmhldG9yaWNhbCwgYmVjYXVz
ZSBjbGVhcmx5IHRoZSBzbXBfcm1iKCkgbmVlZHMgdG8gYmUgaW4NCj4gZm9yX2VhY2hfdmNw
dSgpIGdpdmVuIHlvdXIgY29tbWl0IG1lc3NhZ2UsIGJ1dCB3ZSBvYnZpb3VzbHkgZG9uJ3Qg
d2FudA0KPiB0byBkbyB0aGF0Lg0KPiANCj4gVGhpcyBsaXN0IGNhbiBvbmx5IGJlIGNoYW5n
ZWQgb25jZSBkdXJpbmcgYSBWTSdzIGxpZmVjeWNsZSwgYW5kIGV2ZW4NCj4gdGhlbiBpdCBv
bmx5IGdldHMgYXBwZW5kZWQgdG8uwqAgaS5lLiB0aGlzIHBhcnRpY3VsYXIgcGllY2Ugb2Yg
bG9naWMgdG8NCj4gc3BsaWNlIGEgdkNQVSBpbnRvIHRoZSBtaWRkbGUgb2YgYSBzaW5nbGUg
bGlua2VkIGxpc3QgY2FuIGJlIHNpbXBsaWZpZWQNCj4gdG8gdGhlIHNlY29uZCBhc3NpZ25t
ZW50LCBhcyB0aGUgZmlyc3QgaXMgYWx3YXlzIGNvcHlpbmcgTlVMTC4NCg0KVGhpcyBpcyBu
b3QgdHJ1ZSBmb3IgY3B1IGhvdHBsdWc6IHRoZSBhc3NvY2lhdGVkIGlkbGUgdmNwdSB3aWxs
IGJlIGluc2VydGVkDQphdCB0aGUgYXBwcm9wcmlhdGUgcGxhY2UgaW4gdGhlIGxpc3QuDQoN
ClRoZSBxdWVzdGlvbiBpcyB3aGV0aGVyIHdlIGNhbGwgZm9yX2VhY2hfdmNwdSgpIGZvciB0
aGUgaWRsZSBkb21haW4gYXQgYWxsLg0KDQoNCkp1ZXJnZW4NCg==
--------------5rCc1a2UXU4BOpN0WO9yXVAt
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-----

--------------5rCc1a2UXU4BOpN0WO9yXVAt--

--------------Q60wzg0tVO2U3TEztGayqjPH--

--------------fd6hUu4tkVl3Eu44Zh6dbzre
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/Ey8FAmkm4zcFAwAAAAAACgkQsN6d1ii/Ey+9
1ggAhF1Pec7nIR/3hCb8ViJC5ZAiB0AmtCNte0hrCYTxbqXcdGY5/N36axUbjB4FJwDoJXXge52j
LuWKsqUrm7qAb1yRrgjgPItEl36bDV+3lpZFeZA3Lp4f763oHEfqNzVvlHuCADjAJVYHRmwvBOST
q6NljNV5oMBM7KnfZKa6pV7lQV9TDoczUQMU3jOvnXuh9Xv7xsmU+iQwYD9NuGfhqeZ3En6y3EhE
Kxz/FhV7FlVhCn97eGBVsfE7lc6FzxY8QRO4LL8+FRbQ1ju45+LYXQpVg+Wk847ltBDRbAS4pJQ4
rlqXsCICa3uygkujBKWTAfWg8QE9ipDrOlwcl385Eg==
=XmY8
-----END PGP SIGNATURE-----

--------------fd6hUu4tkVl3Eu44Zh6dbzre--


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 11:30:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 11:30:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172576.1497648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vODid-00076a-Ua; Wed, 26 Nov 2025 11:29:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172576.1497648; Wed, 26 Nov 2025 11:29: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 1vODid-00076T-S0; Wed, 26 Nov 2025 11:29:55 +0000
Received: by outflank-mailman (input) for mailman id 1172576;
 Wed, 26 Nov 2025 11:29:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wUbM=6C=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vODic-00076N-Gy
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 11:29:54 +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 39540401-cabb-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 12:29:53 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BLAPR03MB5489.namprd03.prod.outlook.com (2603:10b6:208:299::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.13; Wed, 26 Nov
 2025 11:29: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%5]) with mapi id 15.20.9366.009; Wed, 26 Nov 2025
 11:29: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: 39540401-cabb-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Y9ouSEMjRhLMSiQkECHXnYtcf/3ZKgLshERMYHjJ5IOGpcWxOPusU1pZPUL6SaGrZmv9givF+r8nHXp7f6F+jdIpP2dMOkDxeaNry55ArZ3yXTLWPtWOMY5N1ZwQYpHZ3iQuAEzjZ4X/gTtY5CY30kGzIyj8qHLrP5LgCzdeGrCT0dyEJPnkKGygvDCmxP26M7pp5/pTx0aPgRC9eQ9LhA0aQRNM5bRKHYsIySUEaA/KZEAw+rBLJ4SGGkKIT1h/+1SDJAqltbz+qHI1DkBT8jAw6Z2tU6s52OMl35SGYIXFNkiEGFNoZB9Il5cgb6GqYO6i0eGtbARX1Yy5ft0H8Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+ZmMJMLo4gnVQALzODxbOeXoU5clQ278LQY4anXF9s=;
 b=IJu7Q8n7CBW0h+XaUvITdac1DtkHloOqFXAWoWopB2NJx+vEHCGgTg8vMD8Qcv6g1kY7lU6qJoj538NWgyVQtcHAcW1NaW2G7XX2vRcdkTkq6WJTpUU8ec3ViW/lVcWWVOfgBZGN7+Gtfh1l6KSzw5qQg8SJp7HkXhtoTVicU2KDY9qDZt9M0EhPFGag/veVuGg1PqrmSDcqthvb2TGDXXDPvuFK0iFvkqOOX277Qttqi660sihkQippkVsNAozbvRP0Jtu7IF2i0A6/3yPG4OefwSB+0vbRRnUWm7nZkOGVIKluAEqLFJ5Op6Z94PSN+jrgfoJDj5Z4l7+GC8aKZA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Z+ZmMJMLo4gnVQALzODxbOeXoU5clQ278LQY4anXF9s=;
 b=KuTdzHsNnQ4VMlChBQzfMCORD0w90WdNqHku10ZrwFKH9A9N6kvUbBhdz4zFkc62LSwRvQOCYA29wCafdoebzlfq1yYunbVWy9QJJAsN21CAjNewRdJ95pTx21EcCJoYKp9TgRyj4Hkr/gH58YeiDpMcmiW6DnH+L+rviXozV8o=
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] x86/viridian: fix calling of viridian_time_domain_{freeze,thaw}()
Date: Wed, 26 Nov 2025 12:29:42 +0100
Message-ID: <20251126112942.49031-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: PR3P189CA0043.EURP189.PROD.OUTLOOK.COM
 (2603:10a6:102:53::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_|BLAPR03MB5489:EE_
X-MS-Office365-Filtering-Correlation-Id: 49f83efd-8813-4121-6028-08de2cdf1bda
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?Q0tZYVdYcWxtTVZSaW53aFEraW9YZGIwQU9KZk9weFhsdmg2RmxZNlhLWEZC?=
 =?utf-8?B?d0hNWTZWV3U0S2pvVkxONGVKZkVMRjNkNEpXVno1NlUvOWhUOE14YVF2QUZv?=
 =?utf-8?B?REgwMjl4Nlk2bmJ2U0NYaGRlVlJHeW1URTRlZDZKWXZ3bUY3d2VOU1JIWDdM?=
 =?utf-8?B?YTJQVUVVQmkzR0ZiV1FtOWVKU3hEMU9KTEF4bmtFbHoyNjRZTkRzeURaK1Vs?=
 =?utf-8?B?ZU5yanpTUXBjZlBoNmtzQlNENldNK2dreGJGaTZERHBHMDJPUEExSHBGUFVq?=
 =?utf-8?B?Q2xlUGo1WkwwRVJjNXBFR2EzZm9sSnRLUVZnTWhGTW42N3JIaFlhU1JOMlQr?=
 =?utf-8?B?SGYxbEpxT3dLMnhad21iVzlpU01uMmthdUk3S3BBd3I4SVhjTGs0dkdMazgr?=
 =?utf-8?B?dllIRzRDaTB5eHhpTHRhczd2Yys2R2Zzak5YYkMxNEJ2Rml6U2xIV0VOQThP?=
 =?utf-8?B?bjlhOFB6SVNIVHpqVlFhRmcybm44QnE1Q00rak5xNUVQQWk5ZGFKdXA0a3I5?=
 =?utf-8?B?RlVKWVA3VHdhWnpaUnI2NzM4SFZHcGNIUHg4ZkV6djVrenl1QVZXTWJtclRH?=
 =?utf-8?B?dE1HL0xuRGIxS1ZyZ3ZsQ3JBZU8wM21Jb0RrQ1Nsdk53ZTNPWXVLSmRHdXMy?=
 =?utf-8?B?U2o5alVpc2RjNXhyeDBtUW9vVjlwUlYwVnAwMjU1and4Uk5jTW5GZmFVYUdh?=
 =?utf-8?B?ZDRaOXM2Q2plQ08yUnNiTFdUUDNWVndiY1BLZjNUd1hHV3Jsd0xxdno4QmFB?=
 =?utf-8?B?YXZzTUJneUo0SStyR2UxT1pHaGt6RWNyTlJJRnBuRkllNGUwa3ZmR0ZrbVdj?=
 =?utf-8?B?Q2FBQkc5RFUzejcrL0ZaVkIzYklYeGhjQnFxRVJTUnNZWDFSR0dDWDRsMG1O?=
 =?utf-8?B?YTRNZTRIWktFR1l6QTlPOGZRcnBwUkU1MTVsb2RHdi9MV2lEWllYZkR6Mlc3?=
 =?utf-8?B?a3VlSVlMQSs2U3lIYlkrQmFxSDhwbWlCblp2NzdLZlVqM3llaGsxaENTc092?=
 =?utf-8?B?OGl6M0V2YVFHQTIxb1B4L0lYdTdoTlBUMjhyTXhWbGdlQzBQelloM1hqOWlB?=
 =?utf-8?B?ZHo1RThjbU1SeDY2aDduU1B6VlRRVURCTWhEODd3YzJSK0diZzVGQUlJVS9k?=
 =?utf-8?B?WjQrQ2lLTklHbU00Q1FKL1pxVlNZUzg2ZGZHR1Ztcm83M00zUTVldGowZ1Mz?=
 =?utf-8?B?RjR0OEIvVEF6MTlsQjRPcFp5WHVNdHVETDk5cGFmak1Jam9QRC9IS1I5ZU9D?=
 =?utf-8?B?S2ZlenVXMjRGYWVOSUU1NUVZNGZUYXFnbytwWDFNY3JZNmg0Q09nOXA4dC9K?=
 =?utf-8?B?blBYWmN2YW5meTFOUHhBQWtsSWVUdE53UGZxVm93MUxjKzhseERNNHpWRnZi?=
 =?utf-8?B?T2JiZTBCT2lzRHg1MTBaUmpsL1lBWThLK0Z3bXQxS1NwWU51eTg3L20rWVcr?=
 =?utf-8?B?RE14c1hWQitjUk16d0FML3lWTnE5WFBWMTVIMUxCK2VJNmRqYjQzNVpjWGZh?=
 =?utf-8?B?SUFTa2Rhc0FqN1pLN0Fhb0F2ZlJhSEExNzhYN0VLSldEbTdHV1BCTzlic3JM?=
 =?utf-8?B?ekdPY0w3NUpJeVlzcFE2R2ozamcvc3F0bEttdWRNV0dQREJXS1cwT1Q2UWlB?=
 =?utf-8?B?djlPZ0ptQm80dk5URUs0N0JBRUVvcy84eHFNMnJhYTNHeGNFYXh6QTB5Wml5?=
 =?utf-8?B?eHFlUytlaDI2eTNwZEVMWDEvbEJFakNDOVBiTWd5QXBuNUxqa0Q4MklqSlVW?=
 =?utf-8?B?Q2RHK1RiVFR0Qk1FMjFHZGNvaTQ1U0xQVUUvNm4vWnV0RTM2REZZcXEwdUZ1?=
 =?utf-8?B?UHkrbUxCRWs1WnI5ZHlqREdSWEhsMS9EcDExWGZoWjFBdHRBTUhJVjI4OEFF?=
 =?utf-8?B?eTEzcDJnTmtUOElPeTlLdmMzak05bm9iMlgxWVVJbVRNTEZCMjhvQU1INUFC?=
 =?utf-8?Q?quzhc0n3UWMi3d90nvaleB0bhdym+n3p?=
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?MUQySXZGZWJFZDNMcDJ6MUpjS1pXTjJhZE1VVExzNEpaUlcwbTdCYXZ0MTYz?=
 =?utf-8?B?RmV2b0hOWGZDdVgzUHQ2eUYxWXVXOGdNaGNLM2I1THljd2ZoTUdKcWFUcTBW?=
 =?utf-8?B?bXdxUzBTMWl0eFY2emNOVzlXdGNjSnZqTG8xODNleHlCbWI3eGZvU1R1cktB?=
 =?utf-8?B?TjJuem82K3VmSFZsdXgxZXpDQ2dRaWtjVmFBejlHMDBFOU85Q0JzeTBtdW9V?=
 =?utf-8?B?ODNzQmpOMTZXUkEwZXRpSmpWUHhQcmlKbUIrTkcvMFNPVXozUWFVRHdYRG5C?=
 =?utf-8?B?Vm5RSmZJRytGT1pJNEo5d2RjZzYreXhMT3F5MDhPTmpGamQzU3JLbi9TdWNK?=
 =?utf-8?B?c08xWE9hM0VSRWprdTk5Sm1yMTA2T3k5dkhsYUUrblF1WEF4enhlTzVueis1?=
 =?utf-8?B?NGVlbXR4a3haeTZaeElNK1c1SVRvNEZUVGtNY01UOFA1cFM4R1NZUnRaNm55?=
 =?utf-8?B?U2Z4TXhwL2VnOWFyenlHYkIrYzB0MlVtaWhWUFZLYjNMZG1BVk8rWHZucDVp?=
 =?utf-8?B?S1M1WmRVLzQzT3ZqejhaOWhWN3crTmU1NllBdUxjZjUwWWtYclpJc0w4YnJY?=
 =?utf-8?B?bDZiaFAvb2dzK1RwZUhIcHUwT3Zvb3Q1RzVyMmRYZWdrTnZDK0UrNytCM3Nm?=
 =?utf-8?B?eVJaZzdxU3lvOUtYaFBlVDA0RytSZ0oxNXYyZldXUGtxRkhUc3JCWkhGcWt0?=
 =?utf-8?B?S2h3ZnE0TGhaUUtBcEdDRU80KytscWEwMG5DVzBlVENOVGZqdzd2Y2NrRmE2?=
 =?utf-8?B?MUdMWXA1bHdqNnVuZmtWWWZBM2YwTHM1MkxHUnBnVGF2cHpsMnl0WHBVZGxN?=
 =?utf-8?B?OVo0V2NicmozQmlWQVBCYWZTd2dZVktCVmY3WVpJRnhybEdUNmNMaG5lWnZK?=
 =?utf-8?B?cno3c2pzeTJoS3dvZVdUWlNYb0pBRHBmdjMyTTE1bHpDS0NlMlBiamYraUU5?=
 =?utf-8?B?enB5enFrNWkwWk1OQysyZ1VvZUkzNCtjZkxxYXhNVk92bXhQRUdrYXhvbktj?=
 =?utf-8?B?TmJqLzBod2RXdnJXcElRZU5UN3BmTVFtWVJ6YzE1NWFqa3RGNXc0TTMwcjA4?=
 =?utf-8?B?bEVncEhQL29JWWp5WXlVL0pRSG55U3RMK3V4d0dOSVpzZWlyUjVjdUFvNUZ0?=
 =?utf-8?B?U0lLT21GR3d2U2hZejVnTmFJU1VQWVlENThKbjdLSDFod1hBY1l0U1N5WWZM?=
 =?utf-8?B?TFA5bUtGM2RPa3ZONGNvNUZMdHd5bnF6dEx1MERiUjk2ZFRQVWZuMTFydWFL?=
 =?utf-8?B?RUVXRk9tbGc3L3YvZXpjc2NleFRhQitMaU5GamQzbEFjUzhhUnlUcXk0ZzAw?=
 =?utf-8?B?R3orMzNKUUNZZmdHaml0WWtxY01sUS9kS3d0WStjb2xndmRqSkVkTVdGeEta?=
 =?utf-8?B?cUlBbDdyWE5VRWZuSng5YVNZMVNDV2U5RmZTa01FMXlPSEJkZUoveHhiZkRC?=
 =?utf-8?B?aysyeFdqRVRSeHNOMjhZTkZkVHJRODlka0ZHUjFSN3MvbXJuVGtKU1ZBTmxh?=
 =?utf-8?B?NWJqQk9WQktWOERrYTQ4YU1Vb1dtZ29XNDdsYm5pWEhDci9ub1g4bkNCOVZW?=
 =?utf-8?B?V0IxR0wvamxFS2oxREUwNThtVUk1M0VCRFJsSzRhaFNQTFp1aVRMSWtkMi9v?=
 =?utf-8?B?ajV0eWJrN3RVUERUekNNQ2FQT2lrb3p2UnRSeGJLVkhySXpiSkVVQ0xuNmk4?=
 =?utf-8?B?S2JSZ2hqanBuWHFzbVZyRmRsanVzelppalRsMDZCcGFHeFFEaURpSjF5Qko3?=
 =?utf-8?B?SUIwR2F5VEJEZEVQNWEwdHBtYUlpU3BhY3pKNndFR2lzVzFveGErU2w5dmhE?=
 =?utf-8?B?SmpwMmRYVWo2L2tUN3UzcHlQVUVka3VHVTZmQ3kwRVRCMlNuUDFOcklLdXJV?=
 =?utf-8?B?WmFqMm9TQ2VXakJjMnJFTDNPUHR3S2hvU1Q0OU9Vby93eVRra3JJRCs3TnlT?=
 =?utf-8?B?dHRieUQxM2hWOVU3KzZ2emgwMnkyczNGaWd0ZnlVWXRtZFJDWjZUSjFKdEp2?=
 =?utf-8?B?ZmpzWEF1bkdKN2RKZ2UvTUw2TVlCY01EMFZCN3haWFV2aTg5WjA0L2RUZUwz?=
 =?utf-8?B?N1JydVdBRFRmaENJemxwdVgvcFJTZXRQeXZCL0lGZkhhenR6U1M2SVd0QklW?=
 =?utf-8?Q?ph1decsOQmcWCNI67zR1W7NmS?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 49f83efd-8813-4121-6028-08de2cdf1bda
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 11:29:49.1857
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: a/XiL9tB1wdJpn0OUtXEeFRdQWho6iFLiniLn6KEh3iGtaHmdZInwWtqatz1ZHrNRqnoUsOegFEPO1wgXNHmdg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR03MB5489

The current hook placement in domain_{,un}pause() calls arch_domain_pause()
unconditionally, regardless of whether the domain is already paused or not
unpaused (so no state change).  However the underlying Viridian unpause
function (time_ref_count_thaw()) expects the call to only be done once
there's a transition from paused to active.

Adjust the calling of arch_domain_{,un}pause() so it's only done for state
changes, to accommodate for the behavior expected by the Viridian hooks.
Note there are no other implementations of arch_domain_{,un}pause() apart
from the Viridian use cases, and hence the change is non-functional for all
other architectures (or for x86 if Viridian is disabled).

Fixes: f6a07643e1cc ('x86/viridian: freeze time reference counter when domain is paused')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/common/domain.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 3b6e9471c413..e0ca71a53bc1 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1547,8 +1547,7 @@ int vcpu_unpause_by_systemcontroller(struct vcpu *v)
 static void _domain_pause(struct domain *d, bool sync)
 {
     struct vcpu *v;
-
-    atomic_inc(&d->pause_count);
+    bool was_paused = atomic_inc_return(&d->pause_count) - 1;
 
     if ( sync )
         for_each_vcpu ( d, v )
@@ -1557,7 +1556,8 @@ static void _domain_pause(struct domain *d, bool sync)
         for_each_vcpu ( d, v )
             vcpu_sleep_nosync(v);
 
-    arch_domain_pause(d);
+    if ( !was_paused )
+        arch_domain_pause(d);
 }
 
 void domain_pause(struct domain *d)
@@ -1575,11 +1575,12 @@ void domain_unpause(struct domain *d)
 {
     struct vcpu *v;
 
-    arch_domain_unpause(d);
-
     if ( atomic_dec_and_test(&d->pause_count) )
+    {
+        arch_domain_unpause(d);
         for_each_vcpu( d, v )
             vcpu_wake(v);
+    }
 }
 
 static int _domain_pause_by_systemcontroller(struct domain *d, bool sync)
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 12:44:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 12:44:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172596.1497684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOEss-0000jd-If; Wed, 26 Nov 2025 12:44:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172596.1497684; Wed, 26 Nov 2025 12:44:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOEss-0000jW-EF; Wed, 26 Nov 2025 12:44:34 +0000
Received: by outflank-mailman (input) for mailman id 1172596;
 Wed, 26 Nov 2025 12: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOEsq-0000jA-Hb
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 12:44:32 +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 a58b0136-cac5-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 13:44:28 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-42b32a3e78bso5497734f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 04:44: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-4790adc6f7bsm45277215e9.2.2025.11.26.04.44.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 04:44: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: a58b0136-cac5-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764161068; x=1764765868; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gR2Vc5UJrZRQM5ZjO/yIvlEsB7HkIIm0h3aI+0d9D/Y=;
        b=CXiyAuALffRnkjJSZWkKwaYUhYAZyoTayzbzvQA/6lwIVTT1hkIaB0tJt2jXWv3z1H
         hS3DWUJQwsA4DzQ6pQN4yKcYWAOjmltF5I+YrkT5iqgywbqmCpJJaHSzM2miSPf+Uifa
         HMODb2TUA6Hfy3a+P7/N/4xbOAllA8TJe+w98Emz2fKl/Db31LTNhuKloavTbBH5DhMU
         3BnuMb9vQ5kOsK6DV01SbalqUulE0oLOE9mrGWRCENr1+x4jfpmhMV0ivkV7PsJ+C6bG
         PKhpe7N2tpltWBkk6Ropq2Wd14YKvros3eACISe28ZMhzgZ14+8RarroiqlRTXORqo/Z
         a5Ag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764161068; x=1764765868;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gR2Vc5UJrZRQM5ZjO/yIvlEsB7HkIIm0h3aI+0d9D/Y=;
        b=CBFhXFRCIrgcboTjnpEZXeZcmpvMpFQRZVeol7td6sbAlQuUEj3qd5gPWIkWyy3NRN
         v2yd6O+eWq6mT2InpgqcmBTLXHRiD1hZfBBZqHGh2jTd0w63VkERO1MqfotaQZNqnPg2
         zYLtUG4C5gxrElB9MgYeduXQv1fyZFNJH3nrCQcGNx/XcCijB/ZoMJyIyuh9tSU8+Agk
         TUHt3lcQZlyFGy2qYkHcFYT1H0TDORB1Vw1ICb6RW3yDDpiSMWWC3MWmGRXGuoPqIm3x
         nnJCTCpaeACNBSAKNREHdVVIH0VYJySzQRVPx+Coc34tw92XQFk1hquc8Xqi3u4ePskR
         r27w==
X-Forwarded-Encrypted: i=1; AJvYcCVmjx1dyuaWLBSMUCDe44TgNZWv2nF4mTD6mx7k4ELMdyQ5qx3rrEC511gT4bXmjypYrOj5D7h0a+E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzZPlOuQX+5d8dLYME3rXPt12RtW9iGI0+AvD4n+AfHO0t0UCjB
	mn1SNpl4gnziJjCK9pteaX517K+Ku/cNLE7rlHrNk652AkOrzYWf4WL83eYX35MPnQ==
X-Gm-Gg: ASbGncuGDFyFBhW3DLNALSCEXQSKomRl4lthGqMM4cmy3RiHtJ51HUWS+cDoj6dSDws
	Vt7ueeRrP8kJpYBozeyNuy9eglgMPxBU37PY1zvLOKFRhYue1lftaZHrHK7dzd7BZ3Eo7sFGl8I
	koNxyutBYVlhkkrmQ1Hc/Pzv4aZwfWoQYikjy58/gYdTLeA/m1lb00r8aNP4delngj+OXJ4GkjA
	YGLRU2P8F0B3/S/vIF7qxAsZl1ZsloYfz5uWx+3b6LArcmpcu6Jma1+031uw6P473lfPU1R4Kas
	X7OMq2b/BaT9jVyY45CNmr8OWpRCKOq+y/FnVLhPC53a4JRcLy5eDG0EfGUOzkFt5CQnkTfXKmj
	Hy9dTEO+7fiDsoBkfGbfk4MaFXIFfF8KPqn8OFPDA1/Zu5mzDStFegGg8p/Vg8/6hrDeHYH92yR
	TewtTSlJfFbpX03EqA6Nir7fnDGE/+6ZTzQs9QVmBtbDOns3jLdMxRirJkkShbvEIJz9fbgmmVc
	vA=
X-Google-Smtp-Source: AGHT+IFb1ll+z4xOk+3hDZLJZj0IyYfHVCOX/X+KrsJBeC9HC5L5zIm6kOB5GVkjzN4KFYzRRUetYg==
X-Received: by 2002:a05:600c:5494:b0:477:93f7:bbc5 with SMTP id 5b1f17b1804b1-477c0184c3amr191272205e9.10.1764161067836;
        Wed, 26 Nov 2025 04:44:27 -0800 (PST)
Message-ID: <4f3c5cf3-cdba-4162-a9b1-4afe683c864f@suse.com>
Date: Wed, 26 Nov 2025 13:44:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/viridian: fix calling of
 viridian_time_domain_{freeze,thaw}()
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: <20251126112942.49031-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: <20251126112942.49031-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 12:29, Roger Pau Monne wrote:
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1547,8 +1547,7 @@ int vcpu_unpause_by_systemcontroller(struct vcpu *v)
>  static void _domain_pause(struct domain *d, bool sync)
>  {
>      struct vcpu *v;
> -
> -    atomic_inc(&d->pause_count);
> +    bool was_paused = atomic_inc_return(&d->pause_count) - 1;
>  
>      if ( sync )
>          for_each_vcpu ( d, v )

Isn't this racy? Another CPU doing the INC above just afterwards (yielding
was_paused as false there) might still ...

> @@ -1557,7 +1556,8 @@ static void _domain_pause(struct domain *d, bool sync)
>          for_each_vcpu ( d, v )
>              vcpu_sleep_nosync(v);
>  
> -    arch_domain_pause(d);
> +    if ( !was_paused )
> +        arch_domain_pause(d);

... make it here faster, and then the call would occur to late. Whether that's
acceptable is a matter of what exactly the arch hook does.

Furthermore, is what the arch hook does for x86 actually correct when "sync"
is false? The vCPU-s might then still be running while the Viridian time is
already frozen.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:22:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:22:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172611.1497705 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFTZ-0005lo-Fa; Wed, 26 Nov 2025 13:22:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172611.1497705; Wed, 26 Nov 2025 13:22:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFTZ-0005lh-Br; Wed, 26 Nov 2025 13:22:29 +0000
Received: by outflank-mailman (input) for mailman id 1172611;
 Wed, 26 Nov 2025 13:22:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+ZBX=6C=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vOFTY-0005lR-8r
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:22:28 +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 f3990e48-caca-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 14:22:27 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-47774d3536dso7362175e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 05:22:26 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479052b3f5fsm42042275e9.4.2025.11.26.05.22.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 26 Nov 2025 05: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: f3990e48-caca-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764163346; x=1764768146; 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=UlMOKOoI7HTtph0FHg00RkwXgWbRILHYTI/VZE7vQ8Y=;
        b=A0fbV4wRSGkHR1TOkRSHc8Xi+5S/Vr1+5ibNflMykxedXL2InYnedsbxLHHCZrtu3+
         SModgx6RuCoq5bBOJS0X7NwZ03E8GdCnwLGwdZnwod5mXAARHSxTuZA8unz5Ss+/mvrd
         kAmwpOIZ9PNpSTim3wfA5KfNH3xTSGIaVXRF8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764163346; x=1764768146;
        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=UlMOKOoI7HTtph0FHg00RkwXgWbRILHYTI/VZE7vQ8Y=;
        b=jppbzesMgnHGamh1qS5KPIh3x15Fcv7XUQVcMZZwoRC+uJMDkW6ds0QwFF6Fsq4I0C
         fby8POyAsM4ik8Be3rMc5ICNRI9W/8k/R12w0s0ST08tONtNke9asFssaKfIb5fjySWS
         M2DtM5u640JQh6HhMJEqvibrrJ3R6fUknnL4sV6/xjBBKQU6webca2OsOPjgbiXJzpuo
         TaYfuo9WrmW0ucSycgwICAKO/IIEGpAskjr0ASt8iMxrzsWWnfxqo/yGSVd70AQUv2cI
         Rx9q+ONaplyWr7QBixAXKdKPB7KscPLvJOQvlCgnbvD8sRmk0dISbUD4DxDUDk8Xksch
         RAXA==
X-Gm-Message-State: AOJu0Ywh4On6Z7UNAuUymV/Hm7m6nN7cCRFLvDdk6q4vA025DiHJ78BO
	uqgj5PcQDZH3Xxcb2WRFA5xQgsA+TjPT3k6nd+kTzoohlbY6/Guap3iS1E3TycLGem7Q4L/QIF4
	BMzet
X-Gm-Gg: ASbGncvXLpxLaLbJp3kYvrzqqJXdmfyliKMabmQJYv86hBUxwv4DxQyRMyGhfJ9Y0k6
	096W3OkjVk4110Fac4Yu3A+CSB3PagMDRrxYYW6weNSZqiXnmHzCnz2ixqpZ5LBj4OVx3ZOj1bG
	W7v3ALIdsoSvOZd8gu/iVlPe2eEP2TmVPLaVpQGTjKISoWdbInJU2998C8+VRZ/G070xpjQEKLE
	UDXw+/aRGGCBUSc6cEyBn9E3g70W3Wkhip+KihcQ0PiCZlP5xprz+990VegW+O9sVVEc+h/JH7T
	Mc3GSK/BFxrPNFRQ6acrp6fDaY5oSufxQruSk8CTf0/+tYJB7G9fGcvXrCrUAeYT9cX1Rmr7CTb
	R4dsCTkjGOx0YuslODe/UIbxv1xJBLNncDtWCKplMxHm1E0LLK8vo+hd3oVNUADqib+xc9xO4ST
	Z4/mSmAianlnNkO4g59w3psg08hRfk45BbC1VeoIe7IUyUL3gZ83StWjFk0QhF3Q==
X-Google-Smtp-Source: AGHT+IEuLOQC9gESN6AdWFyTsFgWT9WVNN5GCEX9WNCVy21ILyDcagBODSkKlx6G5gZluWkJnnUdPg==
X-Received: by 2002:a05:600c:4685:b0:475:ddad:c3a9 with SMTP id 5b1f17b1804b1-477c052f04bmr207457315e9.13.1764163345928;
        Wed, 26 Nov 2025 05:22:25 -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/3] x86/amd: Fix DE_CFG races and CPUID rescan issues
Date: Wed, 26 Nov 2025 13:22:17 +0000
Message-Id: <20251126132220.881028-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 sufficient to fix the CPUID recan issues found by XenServer's testing,
and a DE_CFG bug I found along the way.

There are other CPUID rescan issues which will take further work to fix.

Andrew Cooper (3):
  x86/amd: Use setup_force_cpu_cap() for BTC_NO
  x86/amd: Stop updating the Zenbleed mitigation dynamically
  x86/amd: Fix race editing DE_CFG

 xen/arch/x86/cpu/amd.c               | 232 +++++++++++++--------------
 xen/arch/x86/cpu/cpu.h               |   3 +-
 xen/arch/x86/cpu/hygon.c             |   6 +-
 xen/arch/x86/cpu/microcode/amd.c     |   2 -
 xen/arch/x86/include/asm/processor.h |   2 -
 5 files changed, 121 insertions(+), 124 deletions(-)


base-commit: 08c787f66cced18f0d0afafd86a040341adbd031
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:22:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:22:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172612.1497716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFTa-0005zJ-OG; Wed, 26 Nov 2025 13:22:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172612.1497716; Wed, 26 Nov 2025 13:22:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFTa-0005zC-Jd; Wed, 26 Nov 2025 13:22:30 +0000
Received: by outflank-mailman (input) for mailman id 1172612;
 Wed, 26 Nov 2025 13:22: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=+ZBX=6C=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vOFTZ-0005lR-2v
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:22:29 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f485c7af-caca-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 14:22:28 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-47778b23f64so37284785e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 05:22:28 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479052b3f5fsm42042275e9.4.2025.11.26.05.22.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 26 Nov 2025 05:22: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: f485c7af-caca-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764163348; x=1764768148; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QBmMMSXqkgwd0JWWHDKsytpGPQgOHwugeGbrCI1WGYM=;
        b=EwVxYwocA4Mc9rqG9fstSI9Hf7qC41QdTTIu6xqoZbI0IVTWxAfErYAqljBffDot9s
         Fq1NwNflNXsBqrkC6EZtWoFWQW8B3NEPuj4DofbgTyV5Z2DL/bk0ZWgjx2GWGgJ5b2CH
         M+6g1XbjnSg8dYu6CUwd+0JOmnGDDJp9ktVdQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764163348; x=1764768148;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=QBmMMSXqkgwd0JWWHDKsytpGPQgOHwugeGbrCI1WGYM=;
        b=jBMuvo9FZ1Txc3Th3LDw4dv7wl8tG7MA0xv+CoQ82xJnW7sVZiEMTN5zzKm5DOlWEs
         +BWfpNZ68KQMk7RXl6VjWWMEvtAaUhpue4W/SFIqYOzOs1BH4Wbl/W39TwxWnbyu+m6W
         EPIwUsjstJoX0K3aKoDUIIjsJ5LGcU1GrwVMFrihNmLioYMXB/w5UAewO2oyBdgOJg6H
         xj32aAl0M50Tp3ewPOZkEs8twyr7g/CaDJaGnWrclOBcmnQxSjxg9N7jQCGCe2miLYAV
         juD/z2JABufqaTg4B9tgFefFwpwxDGs6H2R3suFVPHdKGw2WlD7OPNOaROBw8Zoq8mei
         uvjA==
X-Gm-Message-State: AOJu0YwkgZYiNBw3XIUFZFMsYKlS0iQr2kd3BPxZtgGftxA8g//QRezU
	goA4vaDC7JpVvLs1OhEMf8fOrGAAP8b42TFEEvlp22UOjT+VraCpiWVyT15gpolbKMSABw3/76f
	yJ1x5
X-Gm-Gg: ASbGncv7EqROj+37oWNXwNRIacDvw0pTVXzoHStoxP4fvUzXAo3bsFnG/YjNZhifw26
	MJvVyVZa10VyVdsJJ9VEueqE29J6MUEd4nhJVijyLE2zBLrwx0MqQYsnJaaanV4A0T+uj6UtGrh
	1TXBcGcqCxMyr0+R8RZOunRKLIbOrVI7SAOy5JhSXmH6Cb4ayU68HxdufglEiOBXmIs2WxWCND5
	HdXps3acKurRI1C6aVsqFFKaVXI8SDQxoYBzrZxSxG3Z+8ePR5qjPYI3ViwCHyXRrKOs6d/xvIQ
	ggOAHU0TsRpMAFliUWJoYSdDOzEOJTh6LsxXDXpHipaQ5pbGtGcI7dH0riWoqLY4FIWRlXyQnJD
	bGUkojlZldtiernrxPv5NFraqZL3RfcjsI4mUisYNAkH5rMAqQtse0RQht9ATevETfsXcgryK1m
	yiiV6SKtmkMgFMZFHOcvU/ksx8Sqw25VJBZKaA21LhULqVQDUS0cBTraSUFTlfpQ==
X-Google-Smtp-Source: AGHT+IFUCyKYfsvVlQzNTUhmDy2gDR8npHciKE86AdBgkfQ/bFtdrTeW1t2V26OodcHqqDxISYKnXg==
X-Received: by 2002:a05:600c:474e:b0:477:7523:da8c with SMTP id 5b1f17b1804b1-477c111d3f8mr226042655e9.15.1764163347604;
        Wed, 26 Nov 2025 05:22:27 -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/3] x86/amd: Stop updating the Zenbleed mitigation dynamically
Date: Wed, 26 Nov 2025 13:22:19 +0000
Message-Id: <20251126132220.881028-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251126132220.881028-1-andrew.cooper3@citrix.com>
References: <20251126132220.881028-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This was potentially helpful when the chickenbit was the only mitigation and
microcode had not been released, but that was two years ago.

Zenbleed microcode has been avaialble since December 2023, and the subsequent
Entrysign signature vulnerability means that firmware updates block OS-loading
and more OS-loadable microcode will be produced for Zen2.

i.e. the Zenbleed fix is not going to appear at runtime these days.

No practical 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/amd.c               | 2 +-
 xen/arch/x86/cpu/microcode/amd.c     | 2 --
 xen/arch/x86/include/asm/processor.h | 2 --
 3 files changed, 1 insertion(+), 5 deletions(-)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index 8f468aaf0921..7953261895ac 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -979,7 +979,7 @@ void __init detect_zen2_null_seg_behaviour(void)
 
 }
 
-void amd_check_zenbleed(void)
+static void amd_check_zenbleed(void)
 {
 	const struct cpu_signature *sig = &this_cpu(cpu_sig);
 	unsigned int good_rev;
diff --git a/xen/arch/x86/cpu/microcode/amd.c b/xen/arch/x86/cpu/microcode/amd.c
index 4a7573c885e5..e7ae1e802353 100644
--- a/xen/arch/x86/cpu/microcode/amd.c
+++ b/xen/arch/x86/cpu/microcode/amd.c
@@ -380,8 +380,6 @@ static int cf_check apply_microcode(const struct microcode_patch *patch,
            "microcode: CPU%u updated from revision %#x to %#x, date = %04x-%02x-%02x\n",
            cpu, old_rev, rev, patch->year, patch->month, patch->day);
 
-    amd_check_zenbleed();
-
     return 0;
 }
 
diff --git a/xen/arch/x86/include/asm/processor.h b/xen/arch/x86/include/asm/processor.h
index 1342241742ac..2e087c625770 100644
--- a/xen/arch/x86/include/asm/processor.h
+++ b/xen/arch/x86/include/asm/processor.h
@@ -435,8 +435,6 @@ enum ap_boot_method {
 };
 extern enum ap_boot_method ap_boot_method;
 
-void amd_check_zenbleed(void);
-
 #endif /* !__ASSEMBLY__ */
 
 #endif /* __ASM_X86_PROCESSOR_H */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:22:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:22:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172613.1497725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFTb-0006Dc-TH; Wed, 26 Nov 2025 13:22:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172613.1497725; Wed, 26 Nov 2025 13: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 1vOFTb-0006DT-Qa; Wed, 26 Nov 2025 13:22:31 +0000
Received: by outflank-mailman (input) for mailman id 1172613;
 Wed, 26 Nov 2025 13:22:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+ZBX=6C=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vOFTa-0005zB-Ln
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:22:30 +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 f40835eb-caca-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 14:22:27 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-477bf34f5f5so40073905e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 05:22:27 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479052b3f5fsm42042275e9.4.2025.11.26.05.22.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 26 Nov 2025 05:22: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: f40835eb-caca-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764163347; x=1764768147; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UHNzrMLtWiPI7NZUI+e8M2VwxxtJXgHm6FrkJxV/SxI=;
        b=KPOg8gtw5mADdEdsZD7yldZspRraetOV1tV4n8By9lFoJ1iQj8EQfjullrtUTnKq18
         MdDRP17YUGKNLI+R23KNt14G4/Z5L6DyJMRP8/t0e/ovJOYEPgQ7Pb4nolH8Dk7vsb4U
         M/zvJc6Xpkiwrzu4+MWeqxtjqwsYNBNA65hU4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764163347; x=1764768147;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=UHNzrMLtWiPI7NZUI+e8M2VwxxtJXgHm6FrkJxV/SxI=;
        b=Ar5XggeHWN32BvdBSw8rStTqsA+p5pGU7p0q/4OiNKVFpzU4Xpks8OE/LlaP2MktkB
         Zm9DI9nejBapYLIWYQS6Apl4M6wDPa0iO9GMu+cYzapGn6knANuh6OtbAUht59y0wHXT
         uRDptwo2qWXFOxiaMBBhfjvaWmoCEclhSrqJk4gem3ycuqqFakvFfaeEb9Oc0UbSpQJt
         aGBSearFinymS00w8b2Rbfy2grJJvLsgfFurTtjaPd9rjVCE/yB7HFmW0PZFExTdKFA9
         mkbck0Sen4Al0B9XYjqlHnAQeo/LTCO2MbSvnoJAMDKeODtPTmeCVHOn5Bdbxzwnb1yZ
         yHhA==
X-Gm-Message-State: AOJu0Yw8ZBcs8JbXFIPk3DiHL48fgggQdfAUiGRl1ZZ2uPV6k840cdMD
	NgGfpWLTfzXhuzEXtQMK81xNCXPF00wRiiSx4RyJqQHId3mng4CIVMDId0zRk8YemQNdE50JzSB
	OuwBD
X-Gm-Gg: ASbGncvBnv4b3iH+mRJez9rmivXFIdxxITG4q6e10ERmm7Tl3GHn1sof7uVAHLfLpyr
	83huxoHs7a9t9r45SrREKYtvRLr6LVA/ZSUbpXYQ31PQSJ/ZrsBesH+cDA//cmLQc3XwnBsQXJy
	lx28PZ+wtKopJRY0cAkbVHtMdrOKsngROdMc+8R8oN8WBqmIXXu5TR3084sZnDZKHjSIAOjxykl
	8Rm4ZrGnvKZLcmG5DIbLsCBpt349qs+aXRKBvhBZefNd03d89s77NVbAWxqWOt8zjh9D+x8zkrw
	XwghkffCPfAaeTO/WTUDzRHz1feZgfVSiRQvGUJzUsJea4Gb3FhoQ3pUyl/q0XfWo3J5KjCQbkb
	9Z90mDzMbGaIBTnX/VtsqIm/CgQGHgHnMMEXrdK/iutQ7jnwfqZwWO4uVM9REN7836P87nYRQP0
	36rfyK8yjH6Z2T2/CsiakO//1aHkq5Yo8a7Y9MIIDCBewhAYjmCRU/7vi5T4R2jA==
X-Google-Smtp-Source: AGHT+IFf1ACZv/czxzG6Om45+F+INuHE9HD1BnwebEHtMg49eN1f8LlP0axHxtvrXi04WG6wdJMkPw==
X-Received: by 2002:a05:600c:4583:b0:477:fad:acd9 with SMTP id 5b1f17b1804b1-47904b2bcd7mr70595215e9.34.1764163346841;
        Wed, 26 Nov 2025 05:22:26 -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/3] x86/amd: Use setup_force_cpu_cap() for BTC_NO
Date: Wed, 26 Nov 2025 13:22:18 +0000
Message-Id: <20251126132220.881028-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251126132220.881028-1-andrew.cooper3@citrix.com>
References: <20251126132220.881028-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

When re-scanning features, forced caps are taken into account but unforced
such as this are not.  This causes BTC_NO to go missing, and for the system to
appear to have lost features.

The practical consequence of this observation is that all after-the-fact
adjustments to CPUID must be forced.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/cpu/amd.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index 9b02e1ba675c..8f468aaf0921 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -1225,8 +1225,9 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 		 * Branch Type Confusion, but predate the allocation of the
 		 * BTC_NO bit.  Fill it back in if we're not virtualised.
 		 */
-		if (!cpu_has_hypervisor && !cpu_has(c, X86_FEATURE_BTC_NO))
-			__set_bit(X86_FEATURE_BTC_NO, c->x86_capability);
+		if (c == &boot_cpu_data && !cpu_has_hypervisor &&
+		    !cpu_has(c, X86_FEATURE_BTC_NO))
+			setup_force_cpu_cap(X86_FEATURE_BTC_NO);
 		break;
 	}
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:22:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:22:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172614.1497735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFTd-0006Rx-4O; Wed, 26 Nov 2025 13:22:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172614.1497735; Wed, 26 Nov 2025 13:22:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFTd-0006Ro-0b; Wed, 26 Nov 2025 13:22:33 +0000
Received: by outflank-mailman (input) for mailman id 1172614;
 Wed, 26 Nov 2025 13:22:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+ZBX=6C=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vOFTb-0005zB-Gt
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:22:31 +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 f51c6845-caca-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 14:22:29 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4779d47be12so51357195e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 05:22:29 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479052b3f5fsm42042275e9.4.2025.11.26.05.22.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 26 Nov 2025 05:22: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: f51c6845-caca-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764163349; x=1764768149; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=19EMhPwi+GdHgfL1g0v2UfyNMhFsDMdRnBMaRbpB0ZU=;
        b=MljMjp/hhh+WWS+OZnzMfaVZp6brfVoOloAGrxFTfaYiCsvhHKZtTtxoaka/S7ir3K
         cg9XT4NJXb1Y03THAnI/M9et5y8iB9AbvX9O0pxiyjRnGOTz3Raa9w552Ery373uAKHs
         F7LVHax9wj0K/qKKPL/OG/Uxhc61J7D5/RKTc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764163349; x=1764768149;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=19EMhPwi+GdHgfL1g0v2UfyNMhFsDMdRnBMaRbpB0ZU=;
        b=YpChTOgnuXDhoqX/es/Xv84ogxoOTLE9DTpAO//U7UjDDgWAKnRTRX/1hKkeBulRpd
         4rkeKSJAlf0LHypOs5gbgbCTB29iRaYvN04ipvmcgQlDs0a4o6kTrMYwxoyjTfRj0sWa
         CydmLTS3+8FS8KJxp/b2I69GuWt2/2Jlefu5CV8q4nNQBdx1YlNifljMca0P3wAYCf61
         ThRG3GXGSjKp9EVnCcfsQp46dR4kD0WNf02DIbJ6J/WkbxDXEFQnvi6M+/BLgVF31SFm
         OuGNrjkJYSPScMXw9Fxryo/5beiXz3nYv7N4bO972PcrPIeoV6yZLBKeBOELAWMl3gEb
         odwQ==
X-Gm-Message-State: AOJu0YxZtzkBHekWN8DYQTY60shmQ8fr7A1pyYtDmGPRCjns6KjIE6au
	OXaICYFhRohz3Mct+uFGX3mkUPfy9pA0ODBp8gjeiL5Dl5GHkvu3kZelUIZ2MNeiixYKHfIJwPO
	jawvw
X-Gm-Gg: ASbGncsaqOP1Zejq6CLwI5YfjI/zayM+0KGzqj+FW2Dqg8kzMQFKRudBAjXp1MRYU7w
	JF+9VDsFM6J4aVamD+BiWQACuHFPM4TefjOaSCjWdwrmt1ARX9wHIqEk72b4cTRN+bjW3/uC4lm
	2q15bUf3chnTmeFd7E/7Czf92iQ913ZA5EDT9GNgjOmdRxnF6xcVyAGYw9T5lZPnvejkFN2NaNZ
	unrnVf0wya9LsAvlsGGwVv4mJdKO2cBNqtZr2d98O7RZ4smcBwObkhv1Y+BDoyzXbgrM8afsmoW
	jrGWsIycDsj6ZDPOq5VM5OJ0G78jxo+uiULC+dP/JMiIDdNCa1ELZ0EUXq57TWbejRMTHD8sHMV
	mqw8ME2MyoXu9b4Z8JFN/F/D0KzkgRAPkPD09RiZS8+GC98T5E97QhxlGYpxaT/uZHLVLi9sPzR
	/24x66F2mvynBKKzXgHHZVqxHsp62etuB+nGBECIT7pKf/dZmGAYWyM7eqjcihEQ==
X-Google-Smtp-Source: AGHT+IGWZjJGhpydepWJ2VpVScDuk1zaoj+lqAHPK74fKJT3numNq0qOOE5fMgmqSN98CYtQkhzpBQ==
X-Received: by 2002:a05:600c:4506:b0:477:7bca:8b2b with SMTP id 5b1f17b1804b1-477c0190e57mr246322575e9.15.1764163348485;
        Wed, 26 Nov 2025 05:22:28 -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 3/3] x86/amd: Fix race editing DE_CFG
Date: Wed, 26 Nov 2025 13:22:20 +0000
Message-Id: <20251126132220.881028-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251126132220.881028-1-andrew.cooper3@citrix.com>
References: <20251126132220.881028-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

We have two different functions explaining that DE_CFG is Core-scoped and that
writes are racy but happen to be safe.  This is only true when there's one of
them.

Introduce amd_init_de_cfg() to be the singular function which writes to
DE_CFG, modelled after the logic we already have for BP_CFG.

While reworking amd_check_zenbleed() into a simple predicate used by
amd_init_de_cfg(), fix the microcode table.  The 'good_rev' was specific to an
individual stepping and not valid to be matched by model, let alone a range.
The only CPUs incorrectly matched that I can locate appear to be
pre-production, and probably didn't get Zenbleed microcode.

Rework amd_init_lfence() to be amd_init_lfence_dispatch() with only the
purpose of configuring X86_FEATURE_LFENCE_DISPATCH in the case that it needs
synthesising.  Run it on the BSP only and use setup_force_cpu_cap() to prevent
the bit disappearing on a subseuqent CPUID rescan.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

I've submitted a matching fix to Linux's Zenbleed table.
---
 xen/arch/x86/cpu/amd.c   | 227 +++++++++++++++++++--------------------
 xen/arch/x86/cpu/cpu.h   |   3 +-
 xen/arch/x86/cpu/hygon.c |   6 +-
 3 files changed, 118 insertions(+), 118 deletions(-)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index 7953261895ac..c9d0b55c8c8d 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -747,45 +747,6 @@ void amd_log_freq(const struct cpuinfo_x86 *c)
 		printk("CPU%u: %u MHz\n", smp_processor_id(), low_mhz);
 }
 
-void amd_init_lfence(struct cpuinfo_x86 *c)
-{
-	uint64_t value;
-
-	/*
-	 * Some hardware has LFENCE dispatch serialising always enabled,
-	 * nothing to do on that case.
-	 */
-	if (test_bit(X86_FEATURE_LFENCE_DISPATCH, c->x86_capability))
-		return;
-
-	/*
-	 * Attempt to set lfence to be Dispatch Serialising.  This MSR almost
-	 * certainly isn't virtualised (and Xen at least will leak the real
-	 * value in but silently discard writes), as well as being per-core
-	 * rather than per-thread, so do a full safe read/write/readback cycle
-	 * in the worst case.
-	 */
-	if (rdmsr_safe(MSR_AMD64_DE_CFG, &value))
-		/* Unable to read.  Assume the safer default. */
-		__clear_bit(X86_FEATURE_LFENCE_DISPATCH,
-			    c->x86_capability);
-	else if (value & AMD64_DE_CFG_LFENCE_SERIALISE)
-		/* Already dispatch serialising. */
-		__set_bit(X86_FEATURE_LFENCE_DISPATCH,
-			  c->x86_capability);
-	else if (wrmsr_safe(MSR_AMD64_DE_CFG,
-			    value | AMD64_DE_CFG_LFENCE_SERIALISE) ||
-		 rdmsr_safe(MSR_AMD64_DE_CFG, &value) ||
-		 !(value & AMD64_DE_CFG_LFENCE_SERIALISE))
-		/* Attempt to set failed.  Assume the safer default. */
-		__clear_bit(X86_FEATURE_LFENCE_DISPATCH,
-			    c->x86_capability);
-	else
-		/* Successfully enabled! */
-		__set_bit(X86_FEATURE_LFENCE_DISPATCH,
-			  c->x86_capability);
-}
-
 /*
  * Refer to the AMD Speculative Store Bypass whitepaper:
  * https://developer.amd.com/wp-content/resources/124441_AMD64_SpeculativeStoreBypassDisable_Whitepaper_final.pdf
@@ -979,76 +940,6 @@ void __init detect_zen2_null_seg_behaviour(void)
 
 }
 
-static void amd_check_zenbleed(void)
-{
-	const struct cpu_signature *sig = &this_cpu(cpu_sig);
-	unsigned int good_rev;
-	uint64_t val, old_val, chickenbit = (1 << 9);
-
-	/*
-	 * If we're virtualised, we can't do family/model checks safely, and
-	 * we likely wouldn't have access to DE_CFG even if we could see a
-	 * microcode revision.
-	 *
-	 * A hypervisor may hide AVX as a stopgap mitigation.  We're not in a
-	 * position to care either way.  An admin doesn't want to be disabling
-	 * AVX as a mitigation on any build of Xen with this logic present.
-	 */
-	if (cpu_has_hypervisor || boot_cpu_data.x86 != 0x17)
-		return;
-
-	switch (boot_cpu_data.x86_model) {
-	case 0x30 ... 0x3f: good_rev = 0x0830107a; break;
-	case 0x60 ... 0x67: good_rev = 0x0860010b; break;
-	case 0x68 ... 0x6f: good_rev = 0x08608105; break;
-	case 0x70 ... 0x7f: good_rev = 0x08701032; break;
-	case 0xa0 ... 0xaf: good_rev = 0x08a00008; break;
-	default:
-		/*
-		 * With the Fam17h check above, most parts getting here are
-		 * Zen1.  They're not affected.  Assume Zen2 ones making it
-		 * here are affected regardless of microcode version.
-		 */
-		if (is_zen1_uarch())
-			return;
-		good_rev = ~0U;
-		break;
-	}
-
-	rdmsrl(MSR_AMD64_DE_CFG, val);
-	old_val = val;
-
-	/*
-	 * Microcode is the preferred mitigation, in terms of performance.
-	 * However, without microcode, this chickenbit (specific to the Zen2
-	 * uarch) disables Floating Point Mov-Elimination to mitigate the
-	 * issue.
-	 */
-	val &= ~chickenbit;
-	if (sig->rev < good_rev)
-		val |= chickenbit;
-
-	if (val == old_val)
-		/* Nothing to change. */
-		return;
-
-	/*
-	 * DE_CFG is a Core-scoped MSR, and this write is racy during late
-	 * microcode load.  However, both threads calculate the new value from
-	 * state which is shared, and unrelated to the old value, so the
-	 * result should be consistent.
-	 */
-	wrmsrl(MSR_AMD64_DE_CFG, val);
-
-	/*
-	 * Inform the admin that we changed something, but don't spam,
-	 * especially during a late microcode load.
-	 */
-	if (smp_processor_id() == 0)
-		printk(XENLOG_INFO "Zenbleed mitigation - using %s\n",
-		       val & chickenbit ? "chickenbit" : "microcode");
-}
-
 static void cf_check fam17_disable_c6(void *arg)
 {
 	/* Disable C6 by clearing the CCR{0,1,2}_CC6EN bits. */
@@ -1075,6 +966,112 @@ static void cf_check fam17_disable_c6(void *arg)
 	wrmsrl(MSR_AMD_CSTATE_CFG, val & mask);
 }
 
+static bool zenbleed_use_chickenbit(void)
+{
+    unsigned int curr_rev;
+    uint8_t fixed_rev;
+
+    /*
+     * If we're virtualised, we can't do family/model checks safely, and
+     * we likely wouldn't have access to DE_CFG even if we could see a
+     * microcode revision.
+     *
+     * A hypervisor may hide AVX as a stopgap mitigation.  We're not in a
+     * position to care either way.  An admin doesn't want to be disabling
+     * AVX as a mitigation on any build of Xen with this logic present.
+     */
+    if ( cpu_has_hypervisor || boot_cpu_data.family != 0x17 )
+        return false;
+
+    curr_rev = this_cpu(cpu_sig).rev;
+    switch ( curr_rev >> 8 )
+    {
+    case 0x083010: fixed_rev = 0x7a; break;
+    case 0x086001: fixed_rev = 0x0b; break;
+    case 0x086081: fixed_rev = 0x05; break;
+    case 0x087010: fixed_rev = 0x32; break;
+    case 0x08a000: fixed_rev = 0x08; break;
+    default:
+        /*
+         * With the Fam17h check above, most parts getting here are Zen1.
+         * They're not affected.  Assume Zen2 ones making it here are affected
+         * regardless of microcode version.
+         */
+        return is_zen2_uarch();
+    }
+
+    return (uint8_t)curr_rev >= fixed_rev;
+}
+
+void amd_init_de_cfg(const struct cpuinfo_x86 *c)
+{
+    uint64_t val, new = 0;
+
+    /* The MSR doesn't exist on Fam 0xf/0x11. */
+    if ( c->family != 0xf && c->family != 0x11 )
+        return;
+
+    /*
+     * On Zen3 (Fam 0x19) and later CPUs, LFENCE is unconditionally dispatch
+     * serialising, and is enumerated in CPUID.  Hypervisors may also
+     * enumerate it when the setting is in place and MSR_AMD64_DE_CFG isn't
+     * available.
+     */
+    if ( !test_bit(X86_FEATURE_LFENCE_DISPATCH, c->x86_capability) )
+        new |= AMD64_DE_CFG_LFENCE_SERIALISE;
+
+    /*
+     * If vulnerable to Zenbleed and not mitigated in microcode, use the
+     * bigger hammer.
+     */
+    if ( zenbleed_use_chickenbit() )
+        new |= (1 << 9);
+
+    if ( !new )
+        return;
+
+    if ( rdmsr_safe(MSR_AMD64_DE_CFG, &val) ||
+         (val & new) == new )
+        return;
+
+    /*
+     * DE_CFG is a Core-scoped MSR, and this write is racy.  However, both
+     * threads calculate the new value from state which expected to be
+     * consistent across CPUs and unrelated to the old value, so the result
+     * should be consistent.
+     */
+    wrmsr_safe(MSR_AMD64_DE_CFG, val | new);
+}
+
+void __init amd_init_lfence_dispatch(void)
+{
+    struct cpuinfo_x86 *c = &boot_cpu_data;
+    uint64_t val;
+
+    if ( test_bit(X86_FEATURE_LFENCE_DISPATCH, c->x86_capability) )
+        /* LFENCE is forced dispatch serialising and we can't control it. */
+        return;
+
+    if ( c->family == 0xf || c->family == 0x11 )
+        /* MSR doesn't exist.  LFENCE is dispatch serialising on this hardare. */
+        goto set;
+
+    if ( rdmsr_safe(MSR_AMD64_DE_CFG, &val) )
+        /* Unable to read.  Assume the safer default. */
+        goto clear;
+
+    if ( val & AMD64_DE_CFG_LFENCE_SERIALISE )
+        /* Already dispatch serialising. */
+        goto set;
+
+ clear:
+    setup_clear_cpu_cap(X86_FEATURE_LFENCE_DISPATCH);
+    return;
+
+ set:
+    setup_force_cpu_cap(X86_FEATURE_LFENCE_DISPATCH);
+}
+
 static void amd_check_bp_cfg(void)
 {
 	uint64_t val, new = 0;
@@ -1118,6 +1115,11 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 	u32 l, h;
 	uint64_t value;
 
+        amd_init_de_cfg(c);
+
+        if (c == &boot_cpu_data)
+            amd_init_lfence_dispatch(); /* Needs amd_init_de_cfg() */
+
 	/* Disable TLB flush filter by setting HWCR.FFDIS on K8
 	 * bit 6 of msr C001_0015
 	 *
@@ -1156,12 +1158,6 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 	if (c == &boot_cpu_data && !cpu_has(c, X86_FEATURE_RSTR_FP_ERR_PTRS))
 		setup_force_cpu_cap(X86_BUG_FPU_PTRS);
 
-	if (c->x86 == 0x0f || c->x86 == 0x11)
-		/* Always dispatch serialising on this hardare. */
-		__set_bit(X86_FEATURE_LFENCE_DISPATCH, c->x86_capability);
-	else /* Implicily "== 0x10 || >= 0x12" by being 64bit. */
-		amd_init_lfence(c);
-
 	amd_init_ssbd(c);
 
 	if (c->x86 == 0x17)
@@ -1379,7 +1375,6 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 	if ((smp_processor_id() == 1) && !cpu_has(c, X86_FEATURE_ITSC))
 		disable_c1_ramping();
 
-	amd_check_zenbleed();
 	amd_check_bp_cfg();
 
 	if (fam17_c6_disabled)
diff --git a/xen/arch/x86/cpu/cpu.h b/xen/arch/x86/cpu/cpu.h
index cbb434f3a23d..8bed3f52490f 100644
--- a/xen/arch/x86/cpu/cpu.h
+++ b/xen/arch/x86/cpu/cpu.h
@@ -24,7 +24,8 @@ extern bool detect_extended_topology(struct cpuinfo_x86 *c);
 
 void cf_check early_init_amd(struct cpuinfo_x86 *c);
 void amd_log_freq(const struct cpuinfo_x86 *c);
-void amd_init_lfence(struct cpuinfo_x86 *c);
+void amd_init_de_cfg(const struct cpuinfo_x86 *c);
+void amd_init_lfence_dispatch(void);
 void amd_init_ssbd(const struct cpuinfo_x86 *c);
 void amd_init_spectral_chicken(void);
 void detect_zen2_null_seg_behaviour(void);
diff --git a/xen/arch/x86/cpu/hygon.c b/xen/arch/x86/cpu/hygon.c
index f7508cc8fcb9..68e98651cb79 100644
--- a/xen/arch/x86/cpu/hygon.c
+++ b/xen/arch/x86/cpu/hygon.c
@@ -31,7 +31,11 @@ static void cf_check init_hygon(struct cpuinfo_x86 *c)
 {
 	unsigned long long value;
 
-	amd_init_lfence(c);
+        amd_init_de_cfg(c);
+
+        if (c == &boot_cpu_data)
+            amd_init_lfence_dispatch(); /* Needs amd_init_de_cfg() */
+
 	amd_init_ssbd(c);
 
 	/* Probe for NSCB on Zen2 CPUs when not virtualised */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:23:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:23:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172648.1497760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFUD-0007oa-Op; Wed, 26 Nov 2025 13:23:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172648.1497760; Wed, 26 Nov 2025 13:23:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFUD-0007oR-MI; Wed, 26 Nov 2025 13:23:09 +0000
Received: by outflank-mailman (input) for mailman id 1172648;
 Wed, 26 Nov 2025 13:23:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOFUC-0005zB-NB
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:23:08 +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 0b6e5d60-cacb-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 14:23:06 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4779d47be12so51362535e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 05:23: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-4790ade13ddsm43888335e9.8.2025.11.26.05.23.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 05:23: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: 0b6e5d60-cacb-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764163386; x=1764768186; 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=PPv6Gw7K4dUDe7WiljiVntRRsZpH17oia+l/tTitOd8=;
        b=bziCFkBkxke0oKQaVAf0ndn4gQHR00rVzxgIsuywKkz1fe5W4XDsgxibuCx+PHZJow
         vBQyEjKDuQf96sQ2W/nqzq0nt5D9sHqYpfpm6RLUrdbFep+sKjd3sRtLzKeXT4cMgPWN
         5BoFu8WFmgGx5ovK1SRfj1mCQNkVw0wf+xv3mgf1/Rj1HILL+PibzncfBH6fgjsBwUpK
         ezfeOEIiKsvQ7UFwbNr6YaTWrhVirCQFOeNSZ8/SH+s5WuIt3xQlu8Fv4D4qlJX2rf/N
         Moq02EHCo77kVJTatDxgLagq4mAEG9dnkTvQEpbZNtdRiTjON1XJmCEaRvMxG0hCAXi2
         ht3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764163386; x=1764768186;
        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=PPv6Gw7K4dUDe7WiljiVntRRsZpH17oia+l/tTitOd8=;
        b=LwFhwugpVjz8eV1k035I2Bfad3x9cY7seLEqosdfy7QMfZHakMlzrsMDgAVGv7v8iN
         qYHKf7tVcu30eeYEaYh9QddT9eg4LhkFaXlRtniKStc3ZyN3FaxuKiy4Zhcs4Ol7o7Jq
         HVCOz4FETYqVYyWs7JCu64kyxhl0/VmM85oDVvEug/BBehdZAJ38UmHElGR2pGNihvxE
         g5bPbE6A0ag20B2KXfS2sjwczrkejmNYXSHyd8+3pqEL50zH8/fhXrvFdwn2QrfgXbT8
         T4TJYbdqBYL4aogHs7IUz/3bpyT55mdjWVwhe51SG52Y2P/aczReF+7ej2jSJviio/Ab
         txig==
X-Gm-Message-State: AOJu0YxPPwNkwM+nxbgo0AElcJPcnyX2HIAG6xu46XLMpJpFpCEnJQ/c
	kaQ2cbNQwN3BGT7KPjpEOUrK6U+BEEJyFg1qPLfkzDmN0J37ctFiWngWooC2M5IP/USaxQgWHlq
	nMYU=
X-Gm-Gg: ASbGnctsm69BljMLJKS5DAlxSc7RDRwYA2q6z915zzZFYpWAQz/QSr2de/pBBlPMgEd
	2lHHtM9ixF98Wno3zfv7EwTy74D4m3EiPfJh/Li3lxiEIdba/JCH6BdX2S+42JeTg1lJ6UKQV9p
	bnAj7uQmuB3j7mhI2Tt9ChC2tfJlh4fAw8GQvRnR0hx17b4spTz9Jb1jaomzVp2LGbAgz39B76E
	1/2sbkHA6ey6VG7Nv4S7CUkufVArJqGJZPaxD0R2xZqMpxN/5sTTOtRoKpBtEpNh/7kB3y8nVvS
	gxtTIl/UlWxwgArO4rdq3Uwt/OVxT14r45GWQ4XMfwSGj8kCEjgC6NAcarDfbNKmFXC1GUeFZtf
	xZUjFGgTmZhk0L+xYgOZjuU24SnmszrPYja3YMlDJWqqiw8b0NkM4M/VavijhwrZdxTXzxqxqhQ
	UYDnPj+D0HcjIYZKxbSYL81k8soNlkLRcs5/so8siHhHPGAYR0mcSgTfm8AqurDq5q1GI1cKZjM
	oM=
X-Google-Smtp-Source: AGHT+IEHAwKj6OPuDyX060UTLZpMBtix/V4uRuLs6FYI+f3XGpYPiB7K6mj8zZpo9+HKABmcnygWmg==
X-Received: by 2002:a05:600c:4506:b0:477:7bca:8b2b with SMTP id 5b1f17b1804b1-477c0190e57mr246341815e9.15.1764163386328;
        Wed, 26 Nov 2025 05:23:06 -0800 (PST)
Message-ID: <245fbc16-924b-4fd9-8cbc-a539b569edac@suse.com>
Date: Wed, 26 Nov 2025 14:23:04 +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/2] x86: introduce lib/
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

1: move arch_generic_hweightl() to arch-specific library
2: move / split usercopy.c to / into arch-specific library

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:24:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:24:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172657.1497770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFVR-0008Tt-1R; Wed, 26 Nov 2025 13:24:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172657.1497770; Wed, 26 Nov 2025 13:24: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 1vOFVQ-0008Tm-V5; Wed, 26 Nov 2025 13:24:24 +0000
Received: by outflank-mailman (input) for mailman id 1172657;
 Wed, 26 Nov 2025 13:24: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOFVP-0008TQ-J0
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:24: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 38782667-cacb-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 14:24:22 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-429c8632fcbso4257472f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 05:24: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-42cb7ec454csm38910350f8f.0.2025.11.26.05.24.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 05:24: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: 38782667-cacb-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764163462; x=1764768262; 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=nlHOnQrHr5hFqW9CzOxRC1AMxbclROfqHHfmDBpXia0=;
        b=GjcZkRLp2xCky+iZ+d+gTDvASd1VXc7Dd4q6csuyqrk3clUWedHgNZ3UUVW9Ud7zY+
         OYt+psu5P+NIhp2UuFI7CQJhYrxnXHenTyh0Oy+yQMYFd1GIN6oqati3M4xa6EZcs0qj
         7uuB7aQCT8Xner7tvVUQ09ls6uZ8Bv1dcQHQ+q1S8Uutat4euDKHNAuy28fSn8woWbj8
         o5aAFpXJOh1+imgZeJNLnjy13kTTBrnsCgs6tlNGRoAW/v/vdkYjT0SSkJ6flU23mLpX
         8bE5Pa3E/bOeZlchxJ/vCeBCh4vg3VXBkz2TAhL+GJ6dmDRSzepXiGXdbtLXILN/A+K6
         SfGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764163462; x=1764768262;
        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=nlHOnQrHr5hFqW9CzOxRC1AMxbclROfqHHfmDBpXia0=;
        b=PqrFxk2xKi35Eq3SbujWZP3djZZ/UCu4E51qAFf0zFwGHt2MynKk5kTpR0tfyUt+A5
         DA2l9kC33pTyHm0iLj0Ih09MHkR1/P4y3T5rrsd7nd//Nv6DRaU9ckLtOzkQ6gL5lvs5
         dWafdRVftynLKJnppSikmuzjwq95AOB/FoagpXYUCqosy4KHpyxH179+VWWBlGA/jPPp
         46ZkbO0a5nY8aLBrNfbWi+vxsco7pDdSuAUsDHGGaA+E+3FBGUacc9Qh8ACyqDvwfkdH
         fFNVSDQVdMdVmDheBLJM/UMaiNfb5Ig4PE1GZX8foPcuQYxbPHzoN46cUmKgeW1jkE9w
         R8wg==
X-Gm-Message-State: AOJu0YwFGzdIuywb8zA89fHFyjIAuHMLzGVaeTP+UjiDnIrZvLr6QEd7
	l5UXI/Ump/QZOB5Z03gVLOfNpg+aVKK7+a/R6h7q2FpjZ/aNShfIEo8Tcz+8ZrZgMmevoHoDeWe
	GWNw=
X-Gm-Gg: ASbGncu8KSoFXJftwiipNTxLYm03gtitLuJCuHzVJ/M9o/g3/QHnHzDLNw8hV0XZ0M5
	kpdXBlvzAVcR4gMYNtWFtFAIRdaXNhsLVQkvCL39i+cx1qoqY2KljLQSHDc0W8/q0jttzr2ejNt
	5M+VTmQ6Uu4L+6id06e1DkIKnTA4tGp+C2GuPI8Bu5Y5X1mj+sb1nTqNYO6aed6C8u/uzSDIWzO
	TqoKhfEpVEjJyph8KaQ33b6GJHhDkGVhxRJ161LTAbLh/DMOcOuWF5aIQYmgycjvu4sSREfDqsa
	wuusAFr4L+LtWUeNPN1cXiqYFYRFGdrU678QHkO183Jhs202jbznhw4aO3B3fVHe11iYS0Xf57o
	y0gppTOyIu+FebmY96PSRLvsXHoaSRFRMNOlVueosfXtCtxsnedvUneLpzLtEZboBVIWAK/G+QH
	taqQlZxTf6oWTzDsFh1C32RTDz0p5i90ka8mGF5bFIKwsWCw8JIOD5M7Ee5DacgzDEg/0PWF1NI
	Jc=
X-Google-Smtp-Source: AGHT+IHxEfPeawbS+4wqxwoA21jucZZY0t+kEkN5B0kWC32FUB/1iThFoRvk7NxMdXfabH3P4gEWnw==
X-Received: by 2002:a05:6000:2411:b0:42b:3131:542f with SMTP id ffacd0b85a97d-42cc1cbcfd6mr22146533f8f.24.1764163461856;
        Wed, 26 Nov 2025 05:24:21 -0800 (PST)
Message-ID: <76f2d454-ee2b-4aba-a6e5-974b1b2dfbb3@suse.com>
Date: Wed, 26 Nov 2025 14:24:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 1/2] x86: move arch_generic_hweightl() to arch-specific
 library
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <245fbc16-924b-4fd9-8cbc-a539b569edac@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: <245fbc16-924b-4fd9-8cbc-a539b569edac@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Introduce arch/x86/lib/, and make it the home for the somewhat misplaced
x86-specific file that lived in the arch-independent lib/.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/Makefile                                           | 1 +
 xen/arch/x86/arch.mk                                            | 2 ++
 xen/arch/x86/lib/Makefile                                       | 1 +
 .../x86-generic-hweightl.c => arch/x86/lib/generic-hweightl.c}  | 0
 xen/lib/Makefile                                                | 1 -
 5 files changed, 4 insertions(+), 1 deletion(-)
 create mode 100644 xen/arch/x86/lib/Makefile
 rename xen/{lib/x86-generic-hweightl.c => arch/x86/lib/generic-hweightl.c} (100%)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 300cc67407e9..61e2293a467e 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -5,6 +5,7 @@ obj-y += efi/
 obj-y += genapic/
 obj-$(CONFIG_GUEST) += guest/
 obj-$(CONFIG_HVM) += hvm/
+obj-y += lib/
 obj-y += mm/
 obj-$(CONFIG_XENOPROF) += oprofile/
 obj-$(CONFIG_PV) += pv/
diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 16368a498bb7..a0ee050c931b 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -3,6 +3,8 @@
 
 export XEN_IMG_OFFSET := 0x200000
 
+ALL_LIBS-y += arch/x86/lib/lib.a
+
 CFLAGS += -DXEN_IMG_OFFSET=$(XEN_IMG_OFFSET)
 
 # Prevent floating-point variables from creeping into Xen.
diff --git a/xen/arch/x86/lib/Makefile b/xen/arch/x86/lib/Makefile
new file mode 100644
index 000000000000..ddf7e19bdc1d
--- /dev/null
+++ b/xen/arch/x86/lib/Makefile
@@ -0,0 +1 @@
+lib-y += generic-hweightl.o
diff --git a/xen/lib/x86-generic-hweightl.c b/xen/arch/x86/lib/generic-hweightl.c
similarity index 100%
rename from xen/lib/x86-generic-hweightl.c
rename to xen/arch/x86/lib/generic-hweightl.c
diff --git a/xen/lib/Makefile b/xen/lib/Makefile
index 5ccb1e5241c5..38c1c7d6845c 100644
--- a/xen/lib/Makefile
+++ b/xen/lib/Makefile
@@ -38,7 +38,6 @@ lib-y += strtol.o
 lib-y += strtoll.o
 lib-y += strtoul.o
 lib-y += strtoull.o
-lib-$(CONFIG_X86) += x86-generic-hweightl.o
 lib-$(CONFIG_X86) += xxhash32.o
 lib-$(CONFIG_X86) += xxhash64.o
 



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:24:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:24:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172666.1497781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFVy-0000Wm-9N; Wed, 26 Nov 2025 13:24:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172666.1497781; Wed, 26 Nov 2025 13:24:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFVy-0000Wf-6V; Wed, 26 Nov 2025 13:24:58 +0000
Received: by outflank-mailman (input) for mailman id 1172666;
 Wed, 26 Nov 2025 13:24: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOFVx-0008TQ-93
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:24:57 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4cd9473e-cacb-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 14:24:56 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-47796a837c7so44615515e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 05:24: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-4790adc8bbbsm46836655e9.3.2025.11.26.05.24.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 05:24: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: 4cd9473e-cacb-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764163496; x=1764768296; 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=csSilqIENwrRsXwOdI/awgHJ7LfG+gCF8u6TRvD5JG8=;
        b=IDgvl3TO/rEjDoFr4ibOVU/J4yzIE7zkFGiEfqiz1pCZgyc7jaOsmv4dPn3fTc6bE6
         z3bA/rfvcbn6dJ5+GlKwp4ysKZAP9w1bJrfi9wvzT8Ut+Y8/L8xUQ/LH51h+IHWDhBQy
         VNqlWwGnB18lcR8h3r4qPSim8BcNrJNUMEbgiLqwCqU4iY3lWJHYyYWZrFP5w4vvFh6P
         BzKH7s9T32mOvAYoQeoQxc/RStS+GgULBdKm/RvWMM5CVQ3IZCzu1/lSCAo2Ml/MTXdV
         qnkhJKqQMzI76MRMsqLV60f/X4o5LcL6TaEpBQzJYROVhmoq7ZiEv8dlLODt7LNMzLJ8
         JwcQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764163496; x=1764768296;
        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=csSilqIENwrRsXwOdI/awgHJ7LfG+gCF8u6TRvD5JG8=;
        b=F0gZ5RWEVuloINHLI3ZnwPQsp0nFjTOPZ2EPFniHCWdJIDB8v8Rx9tXmNXdJQGpyhG
         TRXfNnOIUfedGlYwYyGgQNzSLq8Kb3F+6sLTeWaWnldNBctdOGpx+yEqabGYMhxxU1wh
         dM7vOynQNGLocC8mzp2sqTYfevyuE98ZU6cBHQSR/mGhSIILVwQlXNe68sy1s0XfFwDu
         cLQ8ZPx4/wQhNQpdfUhqTNDCBKtmmuXekRQcCE/SgS6QRwd/rp+B+ioTIox1SITbhbqW
         NgGc3cCEXOj4eJfhBSjzLM4WaVsKTQ2sDJ43PSLKEOX9qCQQMod7aaK7SlBfaCrCA4lg
         RAEA==
X-Gm-Message-State: AOJu0Yx7jU6ngkGJoVPLO6FfL+x0GEvTfS0w+ZjnXXZ63l4vfcprUX/O
	39zgNRcW8igahS23PMdZwlANCPhxcPvVc02iB6VOD231XdPxtv/8IbafP37k72C6Gmyc+BQe7pU
	UqqM=
X-Gm-Gg: ASbGncvXsVG7eHPsX0GGMuEuZeaFyjBfdQMNBOHsrec5o/rBiKvWkyUURzgx+W0Qa6Q
	epiFXoPgG+z3mtRTftaEiQQGpV5eNIHn8EqNrhnd74w+7BRQHO4Oc+JLycHU5JE65qRdf9mnpzQ
	I4uuFJJiHoV5uzDkFRLa/3Atl+7Y4McS+PzWx5qkKo7kgMVaiB6jzoxWPmlJh9pwJceKWcUSjCK
	c5LodQJFQEPRg+2Fa7U2LGX7ZuT+hGvGGFgGmAoewkoajp1Eg7d45IoNZeDRjKKD6EsH0pGbwmg
	9yaBgVKgVEH9837MVySgZ2jiyen3MxFqi/PNARWhWSYZPV7r41LyVc/zrUTHnGQJaJ/hDfqwGDG
	zCBIJLnxjtFe3xJ6Hvc4vA2UsB4r3Hy+9PahGo4Crk52v5Jw8Fe2JquVYS4sHMnQUgEHw6y7/EC
	0kpuAaaE81ip8uYl81xM69ltU3CG9rNeH/7OkEDlC6JHdZE665OvRmxacjwSCV7/nqIsl8Xgmou
	qI=
X-Google-Smtp-Source: AGHT+IFznyd2DP+zPsoh848TzXl8EiMT3iR2rSoy1bL/DixcGejfvLrxJ6hlemronjnYA/JAeieR8g==
X-Received: by 2002:a05:600c:4f88:b0:46e:506b:20c5 with SMTP id 5b1f17b1804b1-477c01c0c9cmr171607795e9.26.1764163495936;
        Wed, 26 Nov 2025 05:24:55 -0800 (PST)
Message-ID: <fd3609bd-6259-4336-905b-732a2f171996@suse.com>
Date: Wed, 26 Nov 2025 14:24:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/2] x86: move / split usercopy.c to / into arch-specific
 library
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>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <245fbc16-924b-4fd9-8cbc-a539b569edac@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: <245fbc16-924b-4fd9-8cbc-a539b569edac@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The file wasn't correctly named for our purposes anyway. Split it into its
"guest" and "unsafe" parts, thus allowing the latter to not be linked in
at all (for presently having no caller). The building of the "guest" part
can then (later) become conditional upon PV=y.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/Makefile                         |  1 -
 xen/arch/x86/lib/Makefile                     |  2 ++
 xen/arch/x86/{usercopy.c => lib/copy-guest.c} | 12 +---------
 xen/arch/x86/lib/copy-unsafe.c                | 22 +++++++++++++++++++
 4 files changed, 25 insertions(+), 12 deletions(-)
 rename xen/arch/x86/{usercopy.c => lib/copy-guest.c} (94%)
 create mode 100644 xen/arch/x86/lib/copy-unsafe.c

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 61e2293a467e..76540d77e55f 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -72,7 +72,6 @@ obj-y += time.o
 obj-y += traps-setup.o
 obj-y += traps.o
 obj-$(CONFIG_INTEL) += tsx.o
-obj-y += usercopy.o
 obj-y += x86_emulate.o
 obj-$(CONFIG_TBOOT) += tboot.o
 obj-y += hpet.o
diff --git a/xen/arch/x86/lib/Makefile b/xen/arch/x86/lib/Makefile
index ddf7e19bdc1d..8fe2dfd88553 100644
--- a/xen/arch/x86/lib/Makefile
+++ b/xen/arch/x86/lib/Makefile
@@ -1 +1,3 @@
+lib-y += copy-guest.o
+lib-y += copy-unsafe.o
 lib-y += generic-hweightl.o
diff --git a/xen/arch/x86/usercopy.c b/xen/arch/x86/lib/copy-guest.c
similarity index 94%
rename from xen/arch/x86/usercopy.c
rename to xen/arch/x86/lib/copy-guest.c
index a24b52cc66c1..25eeb35427e2 100644
--- a/xen/arch/x86/usercopy.c
+++ b/xen/arch/x86/lib/copy-guest.c
@@ -1,4 +1,4 @@
-/* 
+/*
  * User address space access functions.
  *
  * Copyright 1997 Andi Kleen <ak@muc.de>
@@ -6,8 +6,6 @@
  * Copyright 2002 Andi Kleen <ak@suse.de>
  */
 
-#include <xen/lib.h>
-#include <xen/sched.h>
 #include <asm/uaccess.h>
 
 #ifndef GUARD
@@ -139,14 +137,6 @@ unsigned int copy_from_guest_pv(void *to, const void __user *from,
     return n;
 }
 
-# undef GUARD
-# define GUARD UA_DROP
-# define copy_to_guest_ll copy_to_unsafe_ll
-# define copy_from_guest_ll copy_from_unsafe_ll
-# undef __user
-# define __user
-# include __FILE__
-
 #endif /* GUARD(1) */
 
 /*
diff --git a/xen/arch/x86/lib/copy-unsafe.c b/xen/arch/x86/lib/copy-unsafe.c
new file mode 100644
index 000000000000..a51500370fb1
--- /dev/null
+++ b/xen/arch/x86/lib/copy-unsafe.c
@@ -0,0 +1,22 @@
+/*
+ * "Unsafe" access functions.
+ */
+
+#include <asm/uaccess.h>
+
+#define GUARD UA_DROP
+#define copy_to_guest_ll copy_to_unsafe_ll
+#define copy_from_guest_ll copy_from_unsafe_ll
+#undef __user
+#define __user
+#include "copy-guest.c"
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.48.2




From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:39:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:39:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172687.1497791 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFk1-0002aj-F6; Wed, 26 Nov 2025 13:39:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172687.1497791; Wed, 26 Nov 2025 13:39:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFk1-0002ac-BX; Wed, 26 Nov 2025 13:39:29 +0000
Received: by outflank-mailman (input) for mailman id 1172687;
 Wed, 26 Nov 2025 13:39: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOFk0-0002aW-0Y
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:39:28 +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 4e81f65f-cacd-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 14:39:18 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-42b3720e58eso5093937f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 05: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
 ffacd0b85a97d-42cc231dc6esm31119274f8f.7.2025.11.26.05.39.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 05: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: 4e81f65f-cacd-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764164358; x=1764769158; 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=SFGhh0/b+q0v+Dv2vW+Q5GDUrONsfRR7u+gAnyERtu4=;
        b=gukLzYn/6aLqS08gcnttml4Z24wiq/1ZtUCYE+uIXosS6HCqoRfYwfXfQCELYJrylL
         0aoblw0AmyLch3tY9OkQZIwfavYJ4fPICVm0k6E2nPceZKRuYPK0Az4ZewGAnZqQins+
         Mqn3RZHQiz+vBvSQGK+ERlmwSTOvQkNmOay1NY7NWOp84FkjOY/N4RSnWFzBwSfw51BE
         +rM77NWG9BPcr+bHSQ4uo8ft8yR6h5ltZb7tN2I6hRMvzGMcslIr1EQ4T4D9WcyYNKNy
         huMs2nlIKupk+GLYWhkpZb8zpAEdqMdjXiIob17bqmRtSucd4tsEwe74DjxYxiZqXJ4c
         HFcQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764164358; x=1764769158;
        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=SFGhh0/b+q0v+Dv2vW+Q5GDUrONsfRR7u+gAnyERtu4=;
        b=nDV0REB7pRvNtj4KybsbncblMCilWqPEjX+jn356Sm0GgSPPOITfaVnvx/8blst1iO
         3L8nSPioTYIRL+HpLxke1xyM8G9/ZX6VpoySRy4s42nU4DPoQl8TMVOB6mHL9foXF3D9
         VIdHNX/VS25YJKdturVh8Vzy+9KNGS6pWGzsChmRxE0q++Nt0Q37UFO2oMENHHcyg+HC
         s6Dw6+50tG4SH1o6ZtuaSCx1MQLGAp9a5hrwXYTK/fq5iKZt//+Ya38KFsqsd5IYgWCZ
         mWJitQFD6ZVAXwRAYeJdUBhAz8TO3mQaUENMYD7GPah541cMLqzpuW7SdxIW9RmKTRn1
         ty3g==
X-Gm-Message-State: AOJu0YzvnN57fN5vHFQaLdrGu0tN3zg0k0hh0vAViy16R7lgyVjKdMh7
	+CoX7z3K7PS/llrJNM1ySYsn2vuKdh5HAjeX6Tygsyr2biCeUKFwWTcjZmbFk/IPCvu6eEPXbpr
	6y2w=
X-Gm-Gg: ASbGncuNyJJan5duj+AyirC3ciC61ynHSQqRuhMAPSpYeVad6/bcFfd3I4tvAxsQCMV
	3QEqleu3AY/O5b7s9JQPb+IqPZFgPeJK6Y5wlhHymetD7o2AsluyGQwHYHEB8dhQs1RTqxOmoIX
	a7DCr3TVdpXKL5YXiVXl7I4Tuaml7jrww+HQT/yT8ZZCmfcYYsqxRc91wCFdOoHz4Guw7itzC9q
	oY5qWqM99y9AzQjKOJQ2xSMmZVAbCE2THtTxdN4vZ6ZKH3j1h2OxijtlbobgAfkfjDNCGOUnuYa
	1t5Qpe2QrUKf5K7n7L9nQIL+I3x7Yu4LIY4R8Ttp9AwNjxl4JWVbzDkwdkl/9dyIWa6O0iygqzw
	+nfXMgBXUd6OkZTuwsuPUh94aypKldxhZCqISZ0q3Y/xkGXmWBsHbHci+hL6LT01n0pR3UmEBz3
	kRVB7ajZS5ykkHGTasKQ6Jz8ql7Oi0/iiWcyXrxZ3iFzXUbFVpfWTpKIaGr6Mj358Nm0S+eEysV
	0o=
X-Google-Smtp-Source: AGHT+IHhqApJe/lmG8RCmLBD+nVRB+PGjLG1LVOFmBXMOAy4m6hCkF9mLTQqt/9ifh9EX1pv/eWeVg==
X-Received: by 2002:a05:6000:615:b0:42b:3d5f:ebfb with SMTP id ffacd0b85a97d-42e0f34405dmr7375312f8f.27.1764164357827;
        Wed, 26 Nov 2025 05:39:17 -0800 (PST)
Message-ID: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
Date: Wed, 26 Nov 2025 14:39: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>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/8] symbols: mirror and then leverage recent x86 changes
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

1: arm: re-number intermediate files
2: arm: don't use symbols-dummy
3: ppc: re-number intermediate files
4: ppc: don't use symbols-dummy
5: riscv: re-number intermediate files
6: riscv: don't use symbols-dummy
7: drop symbols-dummy.c
8: check table sizes don't change between linking passes 2 and 3

As long as patch 8 is x86 only, it doesn't depend on the earlier ones.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:41:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:41:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172700.1497801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFm1-0004AP-VU; Wed, 26 Nov 2025 13:41:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172700.1497801; Wed, 26 Nov 2025 13:41:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFm1-0004AI-S1; Wed, 26 Nov 2025 13:41:33 +0000
Received: by outflank-mailman (input) for mailman id 1172700;
 Wed, 26 Nov 2025 13:41: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOFm0-00048o-V6
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:41: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 9d4afa28-cacd-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 14:41:30 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4779adb38d3so47585725e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 05:41: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-479052cfe70sm40605665e9.10.2025.11.26.05.41.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 05:41: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: 9d4afa28-cacd-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764164490; x=1764769290; 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=e4UCK8LKYgpYLU3PH9fD9/Im8kkxHi5oJUYbXSHjKS0=;
        b=A3xfaQDE5w2a8GmtCdQnnXJpNnZzRhASW1w1dggq7DuLRldRH5N5z/K0iqoDV+zdGU
         D0NV1P7Yph+VOvqGQyCsebdwNOmyCCz5asl93HsQUKYTYbzKnMrcPqH6lvYI6qRBHQlf
         SQCc+T8ZTNEuxJwPBjCcMAjdiBjo4Z5sozyrPeU/ZxgEgvLliH2lfv+bDb6ozp3tbISS
         RZK1BaHRAaZL+8ocNAg7H2n6ZNPWPDODgGnwkKRmeegA+aDfXVB8W1lTRn2qewY3ypny
         5Myl2H15GXnreJKPuG+ZGDTLibjuKC73xTnOOSPxamGZtTjm4FYuG2jEhNpeV7I8Yq9r
         hsYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764164490; x=1764769290;
        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=e4UCK8LKYgpYLU3PH9fD9/Im8kkxHi5oJUYbXSHjKS0=;
        b=DvgujrxN8HfMysBi2d0dD7Nwm2hppo3j9q3XEihzsH1ZuI+qi3hr0pk7tIypeVDTyK
         +NnfgNIbCv6h+5TgOR0lHPYD++/XqFX0LWaTLDsXeYjfuiGPu5gmwJ+xzkwfWCouEb1v
         h/zhkf9iAl6AlCNvy5+f4H/OJ1jdafAZtd9ypLYRiIw2HfiQIEo6gleO/4T6tUOFqOCK
         2FKAvyJQ3lZNVthnh7RrcMmSWaYCFPeSUOc3pIpQWq7bP9u6ddb2M3SVwG5tKb4uLlfq
         L4vy1w+W4P8bv3dXe/3AE8iWmskKXYtt7+rTz6EhyETyebOMegybsUVNwsgd2aB8ut/Y
         4f6Q==
X-Gm-Message-State: AOJu0Yy9R/mworGMAJfFqzcWtQffG3XpdMkElQJg0kRQdZ4girFgS68D
	LRIkFkbS0JlRnGJ6Qcjoa7WYmxO2xr/xzVXN1JnwyEgZNx6XHhPzkN0KKhmomt4ayr4XtWrk0JN
	m1Ic=
X-Gm-Gg: ASbGnctBGaETlDeXoa+pF9uvzlc3R82s26Gbd0eApe9ARX4quH69eTGp1GIi/JKwJDp
	kZw64hdjWW7UobUIZUf2z6Q59oTFqq+RybhhKFGSyxdb957RS/30rG52j4u0OIpnD8MEapIuSuW
	CvALkhQROswinpdwi1rr+Jfo/DdEmRMuXWLuJvXL12DGSvif9hw6aaoMCx2nTLKaGhB0mpR6jbQ
	t21wsaNKu++tLPplZxJRaeyldORsIemi7StXPgbpI4AWOgl4aMNNq2BbqgdzgNyvw2T0nN98u/H
	H0n5jfAKDNWdkiNv+FN27s753488ec//6EPpQstSoeGQ2AXd0r30PuTE71jrSbls735/t84FHPi
	w1xVWldFuQJ8KmQKFBRlyX3xkdGdSDcQrb/wY4i3wCZPsH7Ankgr02sHhXp6Fb5mKw0/ygJImGn
	BmVM6QVIodNquKBpk+vFl+bqoEdoYlPU+7dv/RMwLuDkJf11IbHD86o+DIVN0UtdKDGxXGIAER5
	dE=
X-Google-Smtp-Source: AGHT+IHs+Huwi03vHObOVsk9b5wyQ0y68NHJho0IS0DBrSB2328RNWF6VLslrsWqpBbQ2pR1MsdWPw==
X-Received: by 2002:a05:600c:1382:b0:475:de68:3c30 with SMTP id 5b1f17b1804b1-47904b103edmr71689765e9.16.1764164489952;
        Wed, 26 Nov 2025 05:41:29 -0800 (PST)
Message-ID: <a7fd7847-a34f-4436-95a3-627d01a64e43@suse.com>
Date: Wed, 26 Nov 2025 14:41:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 1/8] symbols/arm: re-number intermediate files
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@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: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

In preparation to do away with symbols-dummy, re-number the assembly and
object files used, for the numbers to match the next passes real output.
This is to make 0 available to use for what now is handled by
symbols-dummy.

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

--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -89,16 +89,16 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
 	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
-		> $(dot-target).0.S
-	$(MAKE) $(build)=$(@D) $(dot-target).0.o
+		> $(dot-target).1.S
+	$(MAKE) $(build)=$(@D) $(dot-target).1.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
-	    $(dot-target).0.o -o $(dot-target).1
+	    $(dot-target).1.o -o $(dot-target).1
 	$(NM) -pa --format=sysv $(dot-target).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
-		> $(dot-target).1.S
-	$(MAKE) $(build)=$(@D) $(dot-target).1.o
+		> $(dot-target).2.S
+	$(MAKE) $(build)=$(@D) $(dot-target).2.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
-	    $(dot-target).1.o -o $@
+	    $(dot-target).2.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:42:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:42:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172710.1497812 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFmr-0004ti-8I; Wed, 26 Nov 2025 13:42:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172710.1497812; Wed, 26 Nov 2025 13:42:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFmr-0004tb-46; Wed, 26 Nov 2025 13:42:25 +0000
Received: by outflank-mailman (input) for mailman id 1172710;
 Wed, 26 Nov 2025 13:42: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOFmq-0004o2-Ie
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:42: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 bc6ac5df-cacd-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 14:42:22 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4779cc419b2so64569075e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 05:42: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-4790ab8b21fsm46433495e9.0.2025.11.26.05.42.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 05:42: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: bc6ac5df-cacd-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764164542; x=1764769342; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:subject:from:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Z+DqCoHUYeNt24tWGtJI/2Rtx4Bxg/1vsrBu+S8aJnU=;
        b=G/gtE2iX4xPf3sg+JLMZrg3qtUdtF3t/pmCFTSlU+0Jji74ALVWcg7OQTfUYNMj32P
         5Pvb/+5j/RhOkafP40GhbbTg0q1K7Zw7iITcGUhWVvwnqiXzqeZ49xlTU+cJE45TvLTb
         vUuO/d7PKe2kOlEbTy5Si7IG35HrpTL3Ii8cxTmYdJC469fb/TRsKos+LEkKFYhmVIWM
         WxjKnjLb0lcPNK2t2/pWdcTvLOVdZLhaWORgUZvR+eOKb5H4z+M9W2g1O7TDhuxDs7fx
         hBPxwu4Fh7mCab0wOIGbG0bhXJq7SdkGg9GQc47WtJzg9hFYEPpK437RdVxvoYKgh62p
         cHRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764164542; x=1764769342;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=Z+DqCoHUYeNt24tWGtJI/2Rtx4Bxg/1vsrBu+S8aJnU=;
        b=maTPmdlNpjG+DranWONbVo33G1g8uzLjhvQ6MaGXJPqT16FQn2ZO218TEt3l5CD2bu
         zDtes3Kg0Qz2Ji+kjvM6B6nGMI/PTSs2T52VU56Jr7c37WjFf0mXtExy34Z3Pn4mJsh+
         vDL5q15b2PmK+3wOKbb7Whwy2MO12/vLbiSkwoPq/t8E9KXekOVGFog/l6QqF94scqQt
         cqKoq3ggKACebdVuwNupvkKInVcLn8nJLxpMaKLaDkX8FzW0yhCpxRGAYwdfCkBiXi4z
         yioTso4nzq7fExIiazB8Jb+dfqpxgfZV34yj5N6RO7oXSGubWcNEWVOnOCjsqp5vm5oK
         6TFQ==
X-Gm-Message-State: AOJu0Ywom6dEhCE4tyNMzwpqdDZFgkCejB7Z+biqmEmdaP7ntZjepw5W
	HUik6Af7dj8UW+y0wxkNCfzDXVZK2XgoAAeqvDqIoKaYY0QF6I2hWqKyECu6Qjmse9rl48ceL80
	6ZrY=
X-Gm-Gg: ASbGncteWTF/Vr6xgQimy57rEKJcxN8paWHYcRQ3E2bwE23IuLpSADSkSCzgM+Bhgj9
	3daz0czkS9MOHRVc+PPocp9jXWgNda3XCgQikOuMjLJVyIbgVWKUja+z2yO+ag2gu1E8QI0n3bf
	D3TdEzMWclaMff8Jh7hA7wYm5V68brgAzRauDM8eWfvGkhc+e+ADacjWMc6Hi5oFkE9yJEhRIAT
	KiBuC7GvPSX2SGN9EIJHr7C5LhGdR6IXD7wHr8OHIaUjHdACzJkp8xh6xR4YPZiCkNWl3Nwi/Iq
	Xu8BiqaMNQaVUFOvZT/9GEMt4E5wZyS5fTtM1+Be7kvyVvztrhROFmHiYU4Mm6ivqgF9yVl4eFW
	mnCEzapwKWYYYSQG/rsbU41hD8QzEX2sT2w494MNoaVbM9OPdgIe1z82mEoRcGqD1LPUsyfQ/RR
	kdmZmb9CRd44wIvR7LEwdhsFBlGfSlXQAtamRWmYWiiYK10S3T8naHcRy9W8arj9PM7Sa2kod5B
	Qo=
X-Google-Smtp-Source: AGHT+IHg870vzVl33piKH/RERs92enmUQr/a19qIAdvBDQ3lwceCQf/DtjiYEpTC8CG+17uHNFiaNg==
X-Received: by 2002:a05:600c:4691:b0:477:8a2a:1244 with SMTP id 5b1f17b1804b1-477c110e521mr198468245e9.11.1764164539301;
        Wed, 26 Nov 2025 05:42:19 -0800 (PST)
Message-ID: <f89a3d20-8194-4dc2-a38b-8788c070cd90@suse.com>
Date: Wed, 26 Nov 2025 14:42:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 2/8] symbols/arm: don't use symbols-dummy
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>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@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: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

In particular when linking with lld, which converts hidden symbols to
local ones, the ELF symbol table can change in unhelpful ways between the
first two linking passes, resulting in the .rodata contributions to change
between the 2nd and 3rd pass. That, however, renders our embedded symbol
table pretty much unusable; the recently introduced self-test may then
also fail. (Another difference between compiling a C file and assembling
the generated ones is that - with -fdata-sections in use - the .rodata
contributions move between passes 1 and 2, when we'd prefer them not to.)

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

--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -85,8 +85,10 @@ ifeq ($(CONFIG_ARM_64),y)
 endif
 
 $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
+	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0.S
+	$(MAKE) $(build)=$(@D) $(dot-target).0.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
-	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
+	      $(dot-target).0.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).1.S


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:43:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:43:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172719.1497820 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFnn-0005Q4-Fl; Wed, 26 Nov 2025 13:43:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172719.1497820; Wed, 26 Nov 2025 13:43:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFnn-0005Px-Cn; Wed, 26 Nov 2025 13:43:23 +0000
Received: by outflank-mailman (input) for mailman id 1172719;
 Wed, 26 Nov 2025 13:43: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOFnm-0005Pn-De
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:43: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 dea84592-cacd-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 14:43:20 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-47118259fd8so59035435e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 05:43: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-42cb7f34fe8sm40612726f8f.15.2025.11.26.05.43.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 05:43: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: dea84592-cacd-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764164600; x=1764769400; 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=kW4u+DhlyiKzZcaPDyVYTZpsE+za95Xh2fLD/1x9t1g=;
        b=OJVsiUmMsvC4wP7YGVc7pa+Or2dmmaUT4avOO6Knjac0pEZ+JSNMbEIOpmwyEaezyx
         QVZ0DrO6QKfI+b6imINaNFtiwXoVrNpw/ekq7HzKpzFAYkPpdAXaCHC/zYvDIJ14qHrO
         5YnmUzk1jxWIow8I02Rtzle8tvD+xrNez90FOjH1NxWyOEDAFQpCbKAx9eir0mtfZGy2
         K0ST8IaLdUFVo0Rnb6NeRpVNDkW4DpIjGq1dI8Bd5Uos+/Wc0BAZuZd6yuySufQNLt8G
         8WhjEboV8m+Mf0ab/87sEuLbqxTzqsXzSARjTg8WRXj65U5LcHxk8fONhzSCCosp6GgR
         UolQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764164600; x=1764769400;
        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=kW4u+DhlyiKzZcaPDyVYTZpsE+za95Xh2fLD/1x9t1g=;
        b=wjuNJRCOe1fe9E6YS6/LA4CAUyJPJ+vruJAPIL15O0xnMwvInP/aTtbMsQhKGQ1CqS
         6/in+BBTwp8t3Y6WvasTAFc06Fmp1pDxVmjALPHOtKrQdUaFy3ikpwrxz9UtsAwu2pyt
         +y0KaK5ahLfFcG3P1aXUqfDU06D6IR+jRndZLGL3DqD2Dm+BBH8IAC/scbUHIi68Ub71
         05EHAzwSomMn4DYGD7u36M6tn6k0S+dXAsHWjIEhL+b//Ggi+h6eO+hh49c1895McZjQ
         kTSMDEvrdkWPYybC6eM9YIyJmOwh9BROb9BQeHxo3/6Fu0+GxrUXV/mSF90HYlISx+Gw
         d08g==
X-Gm-Message-State: AOJu0YyKIZbefiedm0TwiR3RQgtfZ3BeUZjUIa391i5QN7y6aPwcspVC
	aQzQESsRnKGd+67YvyJ0h9CeQcM2pPsIxFSPVVT+Dms5y7M/IsIl41e2hfNM1xb/i1as6RNONMf
	OfXQ=
X-Gm-Gg: ASbGnctm9TI3E2UhKGrOdCuKWs3j4QT9i7BHsmld48xi1Cj3O124AL3X+G1CUkmidql
	ahaG5Ihlpk16cYdQhG/gsNJ3bVOknN5t6nWIwht5FpjJbtwLlvKMtsYxniRGAsmyOIKIfMx0P3D
	ZXk48Wkm874M+B8UtT3UUNR2YDox/+ry0vexsqOkdeYaDoCIfYWaagBLGAm05C8ks6uPw3YkbQG
	i2Xl97vh8VqAmlhJ6Qz2xLAn2tU8TeBm6brcWrsEMWhCD6QE3z8IJprn+lyuhVqwPVYF0QQom4w
	mGNiPeyFPBb37w6zDOpveWHhsHJcJLCr2JWUlPUF95W2rWEYDDQYlKkssyERl0hG9zOXqi7WtgX
	OVN913tQ/8mGl14JOtU6YiKr7xuxzivaGUS3awG4LnGANvXEfXTxgt6sFZ/+BcMBpDyK4vMG/li
	wH6nMIT3mZMwPDvmafPxE3YXADZ1/KYGyh9POIAeuWJ4gOn3EuBqNJ9xeF8jsu5fYqoONn4Zxdz
	7TRBMH/sn37KQ==
X-Google-Smtp-Source: AGHT+IH1T4F8xR4Q94C5mcqfF6rHEGQeFKPfIr5xZ4OdfYZrhS/YaJ66f6169A2XbNqLfoKHvXJyBg==
X-Received: by 2002:a05:6000:40dd:b0:42b:39fb:e87f with SMTP id ffacd0b85a97d-42e0f350357mr7285685f8f.49.1764164599611;
        Wed, 26 Nov 2025 05:43:19 -0800 (PST)
Message-ID: <b915451d-62c9-4128-807a-42b908dbaef4@suse.com>
Date: Wed, 26 Nov 2025 14:43:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 3/8] symbols/ppc: re-number intermediate files
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>, Timothy Pearson <tpearson@raptorengineering.com>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@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: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

In preparation to do away with symbols-dummy, re-number the assembly and
object files used, for the numbers to match the next passes real output.
This is to make 0 available to use for what now is handled by
symbols-dummy.

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

--- a/xen/arch/ppc/Makefile
+++ b/xen/arch/ppc/Makefile
@@ -16,16 +16,16 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
 	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
-		> $(dot-target).0.S
-	$(MAKE) $(build)=$(@D) $(dot-target).0.o
+		> $(dot-target).1.S
+	$(MAKE) $(build)=$(@D) $(dot-target).1.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
-	    $(dot-target).0.o -o $(dot-target).1
+	    $(dot-target).1.o -o $(dot-target).1
 	$(NM) -pa --format=sysv $(dot-target).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
-		> $(dot-target).1.S
-	$(MAKE) $(build)=$(@D) $(dot-target).1.o
+		> $(dot-target).2.S
+	$(MAKE) $(build)=$(@D) $(dot-target).2.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
-	    $(dot-target).1.o -o $@
+	    $(dot-target).2.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:43:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:43:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172726.1497830 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFoF-0005sn-NH; Wed, 26 Nov 2025 13:43:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172726.1497830; Wed, 26 Nov 2025 13:43:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFoF-0005sg-K2; Wed, 26 Nov 2025 13:43:51 +0000
Received: by outflank-mailman (input) for mailman id 1172726;
 Wed, 26 Nov 2025 13:43: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOFoE-0005ll-GL
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:43:50 +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 f03d11df-cacd-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 14:43:49 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-42b31c610fcso5790816f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 05:43: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-42cb7f49a7bsm40379270f8f.19.2025.11.26.05.43.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 05:43: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: f03d11df-cacd-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764164629; x=1764769429; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:subject:from:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MzQy66iAeTDGv+bNGxhdi0RJQlPxW7NcdZe6GibETbQ=;
        b=O76O6So2Twlc6kil/OI1L4tCmh13GdsMrIWyJ0WVwOM33NwZneXRY45nvccsX7b0q6
         mXHPjCpPnNE3cvc6QLp/VWPWP4kQ+NFhATtJ9r+0F9W8Qdmj+Ig4FpAvbUH9oaintEQ9
         vP9Lx+Hdvmqw7GzWybvQVtZ3OPGZS3SoCUFhbizEHqWL0rWoziYUzeupLlSdf49VfItD
         6vIPDmp+Zl4QRPiJetxkGiWmtKBI5QlM6D/+vPB7UycON0ZsX1DVaJ1N4pxvg+bn7GwF
         WPYywQPHRx4G5NtffcNihXVzaGcrQVzm2PgpedokpR1zAtaQn/afN5tHl4lKNajcJ1DI
         zLpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764164629; x=1764769429;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=MzQy66iAeTDGv+bNGxhdi0RJQlPxW7NcdZe6GibETbQ=;
        b=P2cIOGrO25IDzQzUbjeKAzSii/gqY4aFgxKcFx0kj8M0s0J6O1SXcdxBSE7rr5Qkmm
         ytObu2SSWc8S3cWvZ4ru4yUeyn+dqKrN808ndBl9HRknZX/z8PPkDmY87K151n64Fs7g
         /kPEwjys54KlXwDaj6iJR9CFc589onxw3zt6SwgOTAvkhEZBDBzj8p2iJYrv2SRiO7K0
         d5Klmv7Fm5CjFw8YoJ4wEgSfoIw5MYwQ/XNx92hJ8qaVUCZ8s+XDrkr/NVMESq45MNlm
         aPkf/9RTood6xAxYM2aaT2yBXYeqzAYoAn1mAU+1YGfyZtFhA039N29HNiBpS8NyAAvL
         9hsQ==
X-Gm-Message-State: AOJu0Yy+9n7iSeMHfKLiSBhMhfZbnQw1VpBVgNVzvzfmSatRoi3NOHSK
	jQVUBjqvMdSYP6aC+MKgvk4h2QUXv3VIUkdQuhfsIoRUo+RI6CaSbZ7k2upt8d1maNmThgPn6KG
	bZLA=
X-Gm-Gg: ASbGncu22e7W6r4nv04dqGyfbDODWOKDAr36Nm1jRaRSHYPUXL5w7t4Mokwj5PcOU3E
	QFjFAJIoezAMxB1HFi8OusEK7dJ5RAm0DbvNR7yZmPdr1ZbWhXV9qdAj/lOjOn8e1jwXU1dp3hf
	NYXZ2VDhqpqGV2XHUm8Sr313eygofWM2e5CjXqdcY5wJXA1CB55wJD0VzlVeWfsZhzDkCfhfmXy
	vQSoeK+Q/wjLwBWTLqf/WMQhr/MnxjwUVLdxnBlR767+8QAUJFjeLl+oEu19wFGc1eSog7w4iwK
	MaKf02a9tLhMrStOcBt+VPldJ6ZZZqq3naw69jC5maoD0MpoKs45obb6VLgtkgJUZoPQm1KCHwX
	upCL2w8MO7UYp8Ah6lqOdLYQ1fWHCD9QIx5CVl3o1qyhMhfMruUXv7LHhSQwOjHo9C7NXE97SsQ
	wQR46hJfH9+WR6kxveoXs2Ix959IdDorU0mKCknd11ZiR3IMw5gM2Ie4D7dp1JNSwt3xtV5EALz
	EQ=
X-Google-Smtp-Source: AGHT+IEdYsO0jt/rJPFE/sF/i918ilX7nsBEWoX+TFHpeJcxtroLantROPspT2SGOWEDwMkl75E7YA==
X-Received: by 2002:a5d:588c:0:b0:42b:2f59:6044 with SMTP id ffacd0b85a97d-42e0f21e9e4mr6941088f8f.17.1764164629016;
        Wed, 26 Nov 2025 05:43:49 -0800 (PST)
Message-ID: <8717ed0f-e837-4054-a67b-b41c08449c1a@suse.com>
Date: Wed, 26 Nov 2025 14:43:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 4/8] symbols/ppc: don't use symbols-dummy
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>, Timothy Pearson <tpearson@raptorengineering.com>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@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: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

In particular when linking with lld, which converts hidden symbols to
local ones, the ELF symbol table can change in unhelpful ways between the
first two linking passes, resulting in the .rodata contributions to change
between the 2nd and 3rd pass. That, however, renders our embedded symbol
table pretty much unusable; the recently introduced self-test may then
also fail. (Another difference between compiling a C file and assembling
the generated ones is that - with -fdata-sections in use - the .rodata
contributions move between passes 1 and 2, when we'd prefer them not to.)

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

--- a/xen/arch/ppc/Makefile
+++ b/xen/arch/ppc/Makefile
@@ -12,8 +12,10 @@ $(TARGET): $(TARGET)-syms
 	cp -f $< $@
 
 $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
+	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0.S
+	$(MAKE) $(build)=$(@D) $(dot-target).0.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
-	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
+	      $(dot-target).0.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).1.S


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:44:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:44:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172740.1497840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFp8-0006Tl-3i; Wed, 26 Nov 2025 13:44:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172740.1497840; Wed, 26 Nov 2025 13:44: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 1vOFp8-0006Te-1A; Wed, 26 Nov 2025 13:44:46 +0000
Received: by outflank-mailman (input) for mailman id 1172740;
 Wed, 26 Nov 2025 13:44: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOFp6-0005Pn-FN
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:44:44 +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 0fd0d6ba-cace-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 14:44:42 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-47789cd2083so39847175e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 05:44: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-4790adfd181sm46260225e9.14.2025.11.26.05.44.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 05:44: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: 0fd0d6ba-cace-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764164682; x=1764769482; 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=HxIScLNANYzouHrWfAoiXuYKiGIbOKebyuIsqekA2Es=;
        b=GOGzLJRAdfu70vcgzOOPFfTyalR+PTDug0Gre70QgEu/QFi7XhGNTt8MX0Aj12ZtyV
         tUkodinqOQJl8u/QM94yNrZpSJPcgjtD0r9AsNzkZf2SbHYTeudPuR9jXH1qB1+cfcp9
         LX1m5UeXh1dqCJf/kC8QXD4lzYZIlaiHHJDUUvoRy4cLnSL5zm6Wvb1BOzlzsfnYs/uI
         xXWpPJx01p1aZV1J0sF5qCvGbsDLzHgePhFBgaMxS/+v11PgAQTNehCWMOFxHrk42bA/
         CsAHANy6EI1PTWDWEn1WPK+hCp/4VIUgPLtXamJ4t0kshDyKghWVs0cw6alO66jkUSV1
         H2Rw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764164682; x=1764769482;
        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=HxIScLNANYzouHrWfAoiXuYKiGIbOKebyuIsqekA2Es=;
        b=Ai4qYD2XkchJ/3bv1UqO0vwOJUGwo5re0SEP/61yc9IfBF9wyEacXV67Kidg4ZFnRA
         twUPao9ihJslalgqC7NLqSeqKg03+3M94g3w02Hc1ZuzWDpvn/1A90ZsXieWZlWx3UtW
         c9vv8zlRUZPw+dgnI/1Y7+a5Pnxfe+3KRS70BJyrp8+ub5CCbDxqkut+4UX0/UteikjT
         wxsxyv6lJmLNy5L440PZctQ0svs/85hLPY+LdcSUzCxrwXMvy1K0J+fpAQWYe+W9zScb
         mxYnx42/MStaHDOyBSBU4jZXIhbKqYbcFfcJ+TBeXS279rg+PX5ULnQcanYX3Ek6Pnmd
         G6/g==
X-Gm-Message-State: AOJu0YyluRdhTqybVm3QjvASa82kjg61gETMaItTPcQd8A8LPoDgRN+k
	rSgr1OUgpWtDY7vT1mllkuHVRLW1dnt08qvR570/NgVOJjUEtJ9Fc+Gx6G1KJwrv5tyAMpqVIt9
	bM+s=
X-Gm-Gg: ASbGncueAv9JurWCbq9xVyLZ+jH66zAwhkJvDr+HJMZbJzpP5nLD5e3xqe1UcYsbEBQ
	XVPY4QwWseZshUyvUbDrwEAAJUGzDarZLn50xBTY/rXrbI5V48KXHIlfp3bz9QmYbnAf6+t995b
	aenb+AOhAqnybuAcpXmHyffFB7ErAzH3QwU1cBiDEtUr5c9IhVoOWgPK/HZGrxJwnXn7ykO+Z2P
	4iWMRGKO5yHZOj0JQSivXnIHnk654W7d1bJ1+epVXhjS1+PNH1OuOATrbq+g0nkDgegcCbpeHpO
	rv3tEqXGZRJXbXwgGfYeDx9L9zGtaL3m1KDbotrse5DdF9tAvpvBgpISO9jQmBSAediNMQAQzw2
	el66CWHxHNWfneWQL8FFrufDaFAmtq92LytMzOMaM/4HfpxHewIk7rEw52rDS+HRmGNXJ5/ejdJ
	AAzwgLIAeTJr0BaIfQ4QvMQQkaKSESidgULrBU2riGfjNrQgCjYHFUMyXdFC/g+b6bpio68iU5G
	Do=
X-Google-Smtp-Source: AGHT+IG/91j5TeT/HiBPrnIXF7wBbmePNHgABuUtI/yugbV8FseA9dOWeg4+x99iNU7X9gMVQvSSnQ==
X-Received: by 2002:a05:600c:19ca:b0:477:a978:3a7b with SMTP id 5b1f17b1804b1-477c1143073mr185528705e9.22.1764164682055;
        Wed, 26 Nov 2025 05:44:42 -0800 (PST)
Message-ID: <37ed4a18-f1a0-4c1f-b915-1708c235068b@suse.com>
Date: Wed, 26 Nov 2025 14:44:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 5/8] symbols/riscv: re-number intermediate files
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>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@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: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

In preparation to do away with symbols-dummy, re-number the assembly and
object files used, for the numbers to match the next passes real output.
This is to make 0 available to use for what now is handled by
symbols-dummy.

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

--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -26,16 +26,16 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
 	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
-		> $(dot-target).0.S
-	$(MAKE) $(build)=$(@D) $(dot-target).0.o
+		> $(dot-target).1.S
+	$(MAKE) $(build)=$(@D) $(dot-target).1.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
-	    $(dot-target).0.o -o $(dot-target).1
+	    $(dot-target).1.o -o $(dot-target).1
 	$(NM) -pa --format=sysv $(dot-target).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
-		> $(dot-target).1.S
-	$(MAKE) $(build)=$(@D) $(dot-target).1.o
+		> $(dot-target).2.S
+	$(MAKE) $(build)=$(@D) $(dot-target).2.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
-	    $(dot-target).1.o -o $@
+	    $(dot-target).2.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		> $@.map



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:45:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:45:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172746.1497851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFpY-0006su-BD; Wed, 26 Nov 2025 13:45:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172746.1497851; Wed, 26 Nov 2025 13:45:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFpY-0006sn-8j; Wed, 26 Nov 2025 13:45:12 +0000
Received: by outflank-mailman (input) for mailman id 1172746;
 Wed, 26 Nov 2025 13:45: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOFpW-0006nR-Ty
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:45:10 +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 204d1277-cace-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 14:45:10 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-429c8632fcbso4276050f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 05:45: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-42cb7f34ff3sm41647454f8f.16.2025.11.26.05.45.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 05:45: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: 204d1277-cace-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764164710; x=1764769510; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:subject:from:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=43Nsypl1oM4oh8KH04Gpj1BPETT37MdF9gF2yxSQyNw=;
        b=DyTJBRUWX47xJsjbf/0Nayba+EqIAVNvRmW+EBEDgtSx8PW1FlLAUEK6W6kUME3hiE
         l8kvsdsxbSJ5oD1IXWlNfh8rl3Ixi502dZKQni16GXGMkoT8pAk10JmsoERr74EQ6Fqg
         tCktpQMg8fUof1YxcbhMs3tDRCX0KmoGkQgK5aoRLw/OlNt+WXCBj/HlViuwptow3d2+
         qgZt8ZbrzCBHpGlOlpcBtPU9y1S5/Y+vTgkkR4RB55vnR8780X+VxEnaFbCyFRJEsl8c
         fdjzyUQPtvF3LwbXKYYi8lkf8T3yVSWUpL3v44MldfTx0B4tQZayGHbF6cNXephjJTxf
         bk/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764164710; x=1764769510;
        h=content-transfer-encoding:in-reply-to:autocrypt: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=43Nsypl1oM4oh8KH04Gpj1BPETT37MdF9gF2yxSQyNw=;
        b=U1DzIEFm+a5fcHIe9kFVNDsqfZ+1oAACvzj9Ig/sbo3PRnizPbIinjnAJvooykGb9Y
         63QXRVqtyoiKjx9Oy+cjhUUy6QMjARbJCTTPBX1pb6uAaW291fUZb+ZkeZqWs3kSPMIP
         /anPfLrVTYrdnvT+U1kLJD8DDiYymDMyktJeHjfMYQPDmIEEjdfmzRsLi21xYA3VImGv
         4WeO83Kxv7A7wXH3TqVfBoJK98Nw1WPSXkaMR0QERpm1o3Y00keFuCrcTVG4zyasSOtO
         Bt+tkg5r3usgPnH/PhdUn5fezwVadj2Bd+22awSRPsCDgd9Kt4fEEBGI/Re3w0XrxNDX
         TotA==
X-Gm-Message-State: AOJu0YzoKNES4op34LDQHXnCjsS/x8Ox78TJrzTVTEV+jt+ulu4chVv8
	ZgY+O7jChtDY9myhAq6OrXQ4KJqc9jmccdlalw1kPpG2yYYuQigZpe29jNjb/xSDsDfoMTZbJ8+
	F/rM=
X-Gm-Gg: ASbGnctALP6MCOTUyZNGmVgfyrtcTWlcOSycTC+T+mduzgD4FBROl3gZiVv15M3jwIe
	a6XVvxuxv5sfzi816kArjRTsIxn9JeJ5nZLOtdyd3QMrl9I6DiJm1tPMUFhU1Kr5kXtyLXtFdgX
	uUIKkLeoi4yNZc4ZNdy3aRutqDcixqrOGfn55iupBvLLa/4kOHAFud2SQkW2uC49oveKDY24VbM
	cn4aqGfn28bjIJUFXBLG7idnGleaGk+SVWFFH3b2VldDDvgPEFSb1ZC0KQu4sSbuxn6IQ6TeD4t
	BjcL38yM3LkxBpeeYVSa5wawlB2Z854QEf4jp8OY9K5aW5a+sxaiLxeNW0LWoyCtAKzvWVfV/Zf
	zOGguZjxo5InSyGjgjOCY7McsKBB9tyZxKGhDw6Ln+kwg6NJ3BXyR5CEILkiLWO0hqLe5XGFsbb
	TVfdAQkzbEiPKj4AZCPIhWm3ptVLSP0AQQv9Ibck+RfRYsJ3XKUFJOMSHhVBCdwd8fwgQhB/3mS
	dM=
X-Google-Smtp-Source: AGHT+IEKIEkuCDXpikzUkhqwVCKZCuAAELq99cJb9h3DjL6oVfLAawKJsDPzDU7izYDO9RCvu3kktQ==
X-Received: by 2002:a5d:5848:0:b0:427:8c85:a4ac with SMTP id ffacd0b85a97d-42cc1d0c9d6mr21421980f8f.47.1764164709797;
        Wed, 26 Nov 2025 05:45:09 -0800 (PST)
Message-ID: <5e5ee09f-88b7-41eb-99da-a9b5cf4bf348@suse.com>
Date: Wed, 26 Nov 2025 14:45:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 6/8] symbols/riscv: don't use symbols-dummy
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@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: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

In particular when linking with lld, which converts hidden symbols to
local ones, the ELF symbol table can change in unhelpful ways between the
first two linking passes, resulting in the .rodata contributions to change
between the 2nd and 3rd pass. That, however, renders our embedded symbol
table pretty much unusable; the recently introduced self-test may then
also fail. (Another difference between compiling a C file and assembling
the generated ones is that - with -fdata-sections in use - the .rodata
contributions move between passes 1 and 2, when we'd prefer them not to.)

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

--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -22,8 +22,10 @@ $(TARGET): $(TARGET)-syms
 	$(OBJCOPY) -O binary -S $< $@
 
 $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
+	$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0.S
+	$(MAKE) $(build)=$(@D) $(dot-target).0.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
-	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
+	      $(dot-target).0.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).1.S


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:47:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:47:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172761.1497860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFrw-0007Zb-Nx; Wed, 26 Nov 2025 13:47:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172761.1497860; Wed, 26 Nov 2025 13: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 1vOFrw-0007ZU-LH; Wed, 26 Nov 2025 13:47:40 +0000
Received: by outflank-mailman (input) for mailman id 1172761;
 Wed, 26 Nov 2025 13:47: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOFrv-0007ZM-Ig
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:47:39 +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 74198923-cace-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 14:47:31 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-42b3ac40ae4so3831777f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 05:47: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-479052cfae0sm40760525e9.8.2025.11.26.05.47.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 05:47: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: 74198923-cace-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764164850; x=1764769650; 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=RbUNHWV6a/cCWWdmNgliwzpyWaes9TUdP1Z5dG5rKLg=;
        b=MmNA/qZZLP094AQ0nqIEJxZRbk9XYeA+JXCMJxZezMv7ESzXCdsAT5rsGF++82uTxb
         7Z384DIKNWU+1Ux6aoaNespyN+OWMOeMciQS2pWGy62yazfCttXoPp+lhnINv0HoN1/l
         sxicT/zyGJZ1qjjl3r90RKOfpPZcJic/D1CYyMPobFK19ztdV4b/lb4q/LUlpK0mS035
         5r0DhUVdVW4dVNCGyRoGP3W71Bu9sYfeMUbrOy+V/7ybGHbGunsV9HTxUqr4b9skwN7/
         NupM0cBt97ERyorSNUJ9OVlJbkBWtNMq8ocVg3RHEhYydJmN1k+UflHq3wkNKGfELgXc
         ZbRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764164850; x=1764769650;
        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=RbUNHWV6a/cCWWdmNgliwzpyWaes9TUdP1Z5dG5rKLg=;
        b=h6PccJmChsEEm4SuU/uFJ2SO7p0JMdWQJQgVmr5VB0bz5UXz9OfCxfruS6JUyUlPti
         Xrhyt/vNRxoJ62exhFwyTEDO0tyyBSdw/Fu6vKP9a1zf+OVjvvqPTWIjwKN/kpHxKzi3
         6ni9e2oFOeGvlqHaJuT1zYYA9M2mxIjpJ0Nd2hlxomN1YzOt+0EaMUL/RxbJMfXjOYdH
         USwJfonamFyThMxKKu3Yc+jsUOjnHmE356aBuv+1plug49ZBgPFJiMqma79VyuTh5wgf
         qn1kJpUTF2ifKte2zQxelM5CKRy9Di4YHBm1oJ1mF8Gm0rqQX1rwsfHbNtHZsWKeKd+J
         Kuow==
X-Gm-Message-State: AOJu0YzurO4R17a/RBCy2l0lPSHfXN3ToR6f50wEwwBWOzpiK8ZLGV5D
	mk8eO17RD34p3TwOaflj5vaHDmtnfeJsrcC5eyvlYD2J6tryV5/SP1DM3tuYNCakwlXsEPYUsoU
	djH0=
X-Gm-Gg: ASbGncupdib6/i2FEKf4C2rh07QxoBboJ8fhD5y6H8ji1NSGaBVPOQ4+P9PiB34DQM0
	hSfAK08gyAApmStTvQdK1JlLMLJNkV6Irxd3l2MHzvuad9LC//e+P1pi+BduMeKVd9YAsbeT5YL
	ZrsOBIx3ZkdEpyGL1ZqlUJ/jaMO3s8pHlU05rhoJz/eu+bccOlSVlPsimqcpq6Iqg/nJeX4Uuh2
	c7SDBL4uQa5ftIhr9LhAydTV9216jOh556zTTdq7v8z6mMBmGv20pmyHvlMYWys0QQ0aWVakahJ
	Z1a0hdPDO/AeOdvMGSdugicv+tOkV4LvfeW3NinvhgesmhD1F6BJrWs+HU6YNwXcaiMcJP7fcmY
	mijKR2OUG5IPCrA7aaTPB6GDR+wxZHFF9EzBqp8LLsAHtxSO1q1797KOE8ZT4XqlobXQURQQfyp
	WWTF/VeHBPRZwXvKJeVcDH7IRpLaxBL3ztADtb7VBkfS5kOgOD60/jr8omy09wy5Y69+k9Aw2Yn
	j4=
X-Google-Smtp-Source: AGHT+IEt+8mEiP50lkP30xm1DvjExe35wYgfvqpXvxvqzVmQ2pZMRV2o5ZJoCCgPm6Ems9C+f+WAHQ==
X-Received: by 2002:a5d:5c89:0:b0:42b:3ee9:4775 with SMTP id ffacd0b85a97d-42cc1abe271mr21852865f8f.11.1764164850419;
        Wed, 26 Nov 2025 05:47:30 -0800 (PST)
Message-ID: <639fb816-c2f6-45d6-9081-238a6b3c5c08@suse.com>
Date: Wed, 26 Nov 2025 14:47:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 7/8] symbols: drop symbols-dummy.c
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@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: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

No architecture using it anymore, we can as well get rid of it.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Should we also drop common/symbols.h again then, by moving its contents
back into common/symbols.c?

--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -74,8 +74,6 @@ ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
 obj-y += domctl.o
 endif
 
-extra-y := symbols-dummy.o
-
 obj-$(CONFIG_COVERAGE) += coverage/
 obj-y += sched/
 obj-$(CONFIG_UBSAN) += ubsan/
--- a/xen/common/symbols-dummy.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * symbols-dummy.c: dummy symbol-table definitions for the inital partial
- *                  link of the hypervisor image.
- */
-
-#include "symbols.h"
-
-#ifdef SYMBOLS_ORIGIN
-const unsigned int symbols_offsets[1];
-#else
-const unsigned long symbols_addresses[1];
-#endif
-const unsigned int symbols_num_addrs;
-const unsigned char symbols_names[1];
-
-#ifdef CONFIG_FAST_SYMBOL_LOOKUP
-const unsigned int symbols_num_names;
-const struct symbol_offset symbols_sorted_offsets[1];
-#endif
-
-const uint8_t symbols_token_table[1];
-const uint16_t symbols_token_index[1];
-
-const unsigned int symbols_markers[1];



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:48:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:48:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172767.1497871 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFsQ-0007zW-0Z; Wed, 26 Nov 2025 13:48:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172767.1497871; Wed, 26 Nov 2025 13:48:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFsP-0007zP-Tf; Wed, 26 Nov 2025 13:48:09 +0000
Received: by outflank-mailman (input) for mailman id 1172767;
 Wed, 26 Nov 2025 13:48:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOFsO-0007ZM-Gv
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:48:08 +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 8954f915-cace-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 14:48:06 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4775ae77516so63925265e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 05:48: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-4790add608bsm46146195e9.5.2025.11.26.05.48.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 05:48: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: 8954f915-cace-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764164886; x=1764769686; 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=ZCrdi2DAluY4swzCa3OQQ3mZ4Vkg5kcV6zdhumUbXNA=;
        b=fK8IvvUfz85QnNxmo+g/g8I3bZlCe/NVwmGn6xmyIGcbZMc0OdOs/Fwpl3sQaY/0uz
         GTAo2xJAyvocRWOCbzLW9Y0zfHM7ydUnuXJAKB6oWhblbNzwr6WuRZz7t4MN47QgN0fl
         ES3xcY1VC8Q0FMXGzDmLlbrFvyRPrYrIO5/wrnMd9MwTlSZIYXxUcXw6Wq5v8cqey5sC
         BP44vPIEDyEPdtHC8cefqX1+DMqG4r70TBga6/xTNeoaRR1m4rjgw4uXdobvILgTe2wg
         w4w2zbWs2BKLuDDAs3AvTBuawwE9fMFTbw2qlWJseU5hsICXTllZtgSrIQJaeC6WOpOV
         gMsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764164886; x=1764769686;
        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=ZCrdi2DAluY4swzCa3OQQ3mZ4Vkg5kcV6zdhumUbXNA=;
        b=oEwV7M1V8UqdHy/WZq1keZcw1imK4FG/J5z0+hZjrr/kqdzGaHLQe2PqT4NZ4mwQpt
         C/yE8Yw8LZBAqlnud+gXuEMoM8UgJneHkG5eyufi01y1TqE1ppd84+IWAFMxgZTglIQz
         g9JENX3PQNZv21lTGC5oWzoit06kBqgb6K06KEtwO62ftqrH4wRT4z6TrTVt9hexejXF
         Dn7QCHzFtbYp1HBxXiSTzCcg8sGKot9hhyC5tEq4V7QcNxnVqjNLNO7gwfMhPhILmsKw
         kRg7n0dqEb38ExomiwclKMDdxo8Fc4VXGxdROAucCwq06UcVR2CftkyUNpPSgh1Rwt7V
         yaJg==
X-Gm-Message-State: AOJu0Yxc4SFQ+rfcteLPIhwJXjnXiGSUR6+jML4NqeXBJbzm1RkDe7SE
	3hUF9TjA8cynEIHv0wuzKJjVbr0YnaAmOe5kFeCmHU1W96XbpQRio5+HqZr+erVF7u+ISeNBeR/
	f5Os=
X-Gm-Gg: ASbGnctfUP7g7Lu4zQM0uECEzAfLiZrqnDsn0tHSMVXgXUjZoUoOCtg/pUKR2CF6bPN
	KORzsXtiwo7KcQTqjuKyhZ+FzWWrwnvhCOQtlWTSDDpnFEGoP+StKUzZlMKTZyRGQqfgSiZitUu
	AeaWdH7ViK4PufCwc5I5edWgsdIeVkhADT+ugKtdqjZ1Ng/L0kxWUCAO3CTnFALyDyJuAlGtarN
	juKj8Nj2V3SAhxmMG8ZBYRlXqIm5xxZsIL64MZZy1Mn8UDCBJQX/GKa4qIY/9OAZKlSHJ3cHXWZ
	kzwnu2RfJAGMM0uA9NvN13iZdiXbCKoNGvL4qxme/Sm+hPKecsSUDhtP/SwPN6xHNa2Q3fswO6e
	/u9giCLUwrbfzbEl3IY7QLlCV5O9D098/rxJv2//xykjKaniDFg4iIKrhUzstTqFAvURWDls8NG
	6iJEniPd2b9W/ub4CZrbdCcmrP2gSKPM1VGgsI77vuvgpJelRnA3tq+U9CRXdapMmmk9cdysR8M
	wv4sPYNdz/QAA==
X-Google-Smtp-Source: AGHT+IHmuOxOGyHnJ07PvjW0cQL8GhaOMCVBdFkSlRd+32xHflY64Y81Dy4rOdqFmqRQMbFBIV6S4w==
X-Received: by 2002:a05:600c:3592:b0:477:9b35:3e36 with SMTP id 5b1f17b1804b1-477c10c873amr217435685e9.2.1764164882996;
        Wed, 26 Nov 2025 05:48:02 -0800 (PST)
Message-ID: <94f993b2-93f4-43a5-a502-da53b810b201@suse.com>
Date: Wed, 26 Nov 2025 14:48:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v1' 8/8] symbols: check table sizes don't change between
 linking passes 2 and 3
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@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: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

While sizes (and possibly positions) of the symbol table related symbols
(and as a result other ones) are expected to change from linking pass 1
to pass 2, no such change should happen anymore from pass 2 to pass 3, or
else the internally recorded symbol table wouldn't represent the ELF or
PE/COFF ones.

For comparing to be actually useful, i.e. most notably also covering the
last of the arrays emitted, symbol sizes need establishing. Make use of
the xen/linkage.h machinery to achieve that.

Suggested-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Likely other ports also want to add such checking. Really it would be nice
if we could properly abstract out shared parts of the linking steps.

RFC: I'm all ears towards improvement suggestions in the temporary helper
     file handling of compare-symbol-tables. Or ideally some approach to
     avoid the use of a helper file altogether.
---
v1': Re-base over the re-numbering of intermediate files. Integrate into
     series.

--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -148,6 +148,7 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort $(syms-warn-dup-y) \
 		> $(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) \
 	    $(orphan-handling-y) $(dot-target).2.o -o $@
 	$(NM) -pa --format=sysv $@ \
@@ -230,6 +231,8 @@ endif
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).2s.S
 	$(MAKE) $(build)=$(@D) .$(@F).2r.o .$(@F).2s.o
+	$(call compare-symbol-tables, $(dot-target).1r.o, $(dot-target).2r.o)
+	$(call compare-symbol-tables, $(dot-target).1s.o, $(dot-target).2s.o)
 	$(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
 	      $(dot-target).2r.o $(dot-target).2s.o $(orphan-handling-y) \
 	      $(note_file_option) -o $@
--- a/xen/scripts/Kbuild.include
+++ b/xen/scripts/Kbuild.include
@@ -56,6 +56,19 @@ define filechk
 	fi
 endef
 
+###
+# Compare the symbol tables of two object files.  As diff's -I option isn't
+# standardized, the name difference of the two object files needs abstracting
+# out.
+define compare-symbol-tables
+    ln -f $(1) $(@D)/.cst.$$$$; \
+    $(OBJDUMP) -t $(@D)/.cst.$$$$ > $(1).sym; \
+    ln -f $(1) $(@D)/.cst.$$$$; \
+    $(OBJDUMP) -t $(@D)/.cst.$$$$ > $(2).sym; \
+    rm -f $(@D)/.cst.$$$$
+    diff -u $(1).sym $(2).sym
+endef
+
 # as-insn: Check whether assembler supports an instruction.
 # Usage: cflags-y += $(call as-insn,CC FLAGS,"insn",option-yes,option-no)
 as-insn = $(if $(shell echo 'void _(void) { asm volatile ( $(2) ); }' \
--- a/xen/tools/symbols.c
+++ b/xen/tools/symbols.c
@@ -252,17 +252,26 @@ static void read_map(FILE *in)
 	}
 }
 
-static void output_label(char *label)
+static void output_label(const char *label, bool keep)
 {
-	if (symbol_prefix_char)
-		printf(".globl %c%s\n", symbol_prefix_char, label);
-	else
-		printf(".globl %s\n", label);
-	printf("\tALGN\n");
-	if (symbol_prefix_char)
-		printf("%c%s:\n", symbol_prefix_char, label);
-	else
-		printf("%s:\n", label);
+	static bool pending;
+
+	if (pending && !keep) {
+		printf("END(CURRENT)\n");
+		printf("#undef CURRENT\n\n");
+	}
+
+	pending = label;
+	if (!label)
+		return;
+
+	if (symbol_prefix_char) {
+		printf("DATA(%c%s, ALGN)\n", symbol_prefix_char, label);
+		printf("#define CURRENT %c%s\n", symbol_prefix_char, label);
+	} else {
+		printf("DATA(%s, ALGN)\n", label);
+		printf("#define CURRENT %s\n", label);
+	}
 }
 
 /* uncompress a compressed symbol. When this function is called, the best table
@@ -331,22 +340,22 @@ static void write_src(void)
 
 		return;
 	}
-	printf("#include <xen/config.h>\n");
+	printf("#include <xen/linkage.h>\n");
 	printf("#if BITS_PER_LONG == 64 && !defined(SYMBOLS_ORIGIN)\n");
 	printf("#define PTR .quad\n");
-	printf("#define ALGN .balign 8\n");
+	printf("#define ALGN 8\n");
 	printf("#else\n");
 	printf("#define PTR .long\n");
-	printf("#define ALGN .balign 4\n");
+	printf("#define ALGN 4\n");
 	printf("#endif\n");
 
 	printf("\t.section .rodata, \"a\"\n");
 
 	printf("#ifndef SYMBOLS_ORIGIN\n");
 	printf("#define SYMBOLS_ORIGIN 0\n");
-	output_label("symbols_addresses");
+	output_label("symbols_addresses", false);
 	printf("#else\n");
-	output_label("symbols_offsets");
+	output_label("symbols_offsets", true);
 	printf("#endif\n");
 	for (i = 0, ends = 0; i < table_cnt; i++) {
 		printf("\tPTR\t%#llx - SYMBOLS_ORIGIN\n", table[i].addr);
@@ -370,17 +379,15 @@ static void write_src(void)
 		printf("\tPTR\t%#llx - SYMBOLS_ORIGIN\n",
 		       table[i].addr + table[i].size);
 	}
-	printf("\n");
 
-	output_label("symbols_num_addrs");
+	output_label("symbols_num_addrs", false);
 	printf("\t.long\t%d\n", table_cnt + ends);
-	printf("\n");
 
 	/* table of offset markers, that give the offset in the compressed stream
 	 * every 256 symbols */
 	markers = malloc(sizeof(*markers) * ((table_cnt + ends + 255) >> 8));
 
-	output_label("symbols_names");
+	output_label("symbols_names", false);
 	for (i = 0, off = 0, ends = 0; i < table_cnt; i++) {
 		if (((i + ends) & 0xFF) == 0)
 			markers[(i + ends) >> 8] = off;
@@ -404,15 +411,12 @@ static void write_src(void)
 		printf("\t.byte 0\n");
 		++off;
 	}
-	printf("\n");
 
-	output_label("symbols_markers");
+	output_label("symbols_markers", false);
 	for (i = 0; i < ((table_cnt + ends + 255) >> 8); i++)
 		printf("\t.long\t%d\n", markers[i]);
-	printf("\n");
 
-
-	output_label("symbols_token_table");
+	output_label("symbols_token_table", false);
 	off = 0;
 	for (i = 0; i < 256; i++) {
 		best_idx[i] = off;
@@ -420,34 +424,27 @@ static void write_src(void)
 		printf("\t.asciz\t\"%s\"\n", buf);
 		off += strlen(buf) + 1;
 	}
-	printf("\n");
 
-	output_label("symbols_token_index");
+	output_label("symbols_token_index", false);
 	for (i = 0; i < 256; i++)
 		printf("\t.short\t%d\n", best_idx[i]);
-	printf("\n");
 
-	if (!sort_by_name) {
-		free(markers);
-		return;
-	}
-
-	output_label("symbols_num_names");
-	printf("\t.long\t%d\n", table_cnt);
-	printf("\n");
-
-	/* Sorted by original symbol names and type. */
-	qsort(table, table_cnt, sizeof(*table), compare_name_orig);
-
-	output_label("symbols_sorted_offsets");
-	/* A fixed sized array with two entries: offset in the
-	 * compressed stream (for symbol name), and offset in
-	 * symbols_addresses (or symbols_offset). */
-	for (i = 0; i < table_cnt; i++) {
-		printf("\t.long %u, %u\n", table[i].stream_offset, table[i].addr_idx);
+	if (sort_by_name) {
+		output_label("symbols_num_names", false);
+		printf("\t.long\t%d\n", table_cnt);
+
+		/* Sorted by original symbol names and type. */
+		qsort(table, table_cnt, sizeof(*table), compare_name_orig);
+
+		/* A fixed sized array with two entries: offset in the
+		 * compressed stream (for symbol name), and offset in
+		 * symbols_addresses (or symbols_offset). */
+		output_label("symbols_sorted_offsets", false);
+		for (i = 0; i < table_cnt; i++)
+			printf("\t.long %u, %u\n", table[i].stream_offset, table[i].addr_idx);
 	}
-	printf("\n");
 
+	output_label(NULL, false);
 	free(markers);
 }
 



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:49:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:49:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172783.1497881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFtn-0000CX-Gj; Wed, 26 Nov 2025 13:49:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172783.1497881; Wed, 26 Nov 2025 13:49: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 1vOFtn-0000CQ-Dh; Wed, 26 Nov 2025 13:49:35 +0000
Received: by outflank-mailman (input) for mailman id 1172783;
 Wed, 26 Nov 2025 13: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=wUbM=6C=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vOFtm-0000CI-2U
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:49:34 +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 bc4daf72-cace-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 14:49:33 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB6545.namprd03.prod.outlook.com (2603:10b6:806:1c4::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.13; Wed, 26 Nov
 2025 13:49:30 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%5]) with mapi id 15.20.9366.009; Wed, 26 Nov 2025
 13:49: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: bc4daf72-cace-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tJ3489wGh/PNA79CzBFckU6z8VD/xMePmya7ilwZeAsb48vFvh0YDUEt/3oD04jk3FycCksBoZHR9ukjwQqGpc8GRZ3M602nzer9AOqfTyZxizoOl5ICE61n+VGvVf91HzLo0vh5Ih2wFuT0S7aAsmeL2yUO3IYsR38xb43OoYxgqryB93oWIdaM3C/4pqH4YJfhOUuQPXc4lkImvZSkzA+GlXK+H3KrVbYop7CCID9LJC52mqRxd6T2WJEhRBwpY6rVJJ2HuARSgjM5Am+6kLwJM2WVI3Otjh1wJ6+ynG/SrnsZdVInw1Cw6ZUanpcwZ5lkH9yem9hLKsFDXvJGkQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tsVmPjpoxJHpN+mK2wwGORCgleyryOyF/tU3YFcGrfc=;
 b=AJvHSNf6aDyXwkE3DjxCM4C5YsIYfvhneacNi3Dcywe4I8JDZttM4E8+klijzqXWtNvynzlCluVb7BnhuMtAPTTD7UoPyUZ4E0t+5o/5KxevDBCE/N1HsfmdO0g98FhzMsc8ucbGQ07Kb9IJt2UmGoa7pb466+ZajSgexMq98XsoklWL+kr1fIMj/gFbEgpaBpbiYsxm++NqunrDhYsnrL8JuZVc8SnIJRuj0lzFLGZARytZWoShMsPAQSuj8rN9mm2PAeH8miTaL92iLINQw7uiHFzyvnGWkesD8KoLY0tcvRQMuGPajnuVbRA5R98If0DYaakGXfvmK3myfrSWvQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tsVmPjpoxJHpN+mK2wwGORCgleyryOyF/tU3YFcGrfc=;
 b=GCOTIH3G6rjYJUHKA8ZblvtaHr73xZgF5UpS06NdNTjj5ai0bfo63ehlAXVAv6KvfivQHRuVe8EvUeXoEVsKK5vxGz9tsmds+xbjazYkoEw/SxDoGIIN04COzfAIaq/hgUnKCn0Sual8h8fu2CWZco/E1E+FP/aisLroI+tar1g=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 26 Nov 2025 14:49:25 +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] x86/viridian: fix calling of
 viridian_time_domain_{freeze,thaw}()
Message-ID: <aScFZVHdW2ef0tNE@Mac.lan>
References: <20251126112942.49031-1-roger.pau@citrix.com>
 <4f3c5cf3-cdba-4162-a9b1-4afe683c864f@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <4f3c5cf3-cdba-4162-a9b1-4afe683c864f@suse.com>
X-ClientProxiedBy: PA7P264CA0418.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:39b::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_|SA1PR03MB6545:EE_
X-MS-Office365-Filtering-Correlation-Id: b8e44887-07b6-46f3-fc66-08de2cf29f2a
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?YXpzYWZFeS9NSHhBK3VCaURDVDdKdnVRaGpsdm5QVkdDTDkvaGRad3ErNGpF?=
 =?utf-8?B?bk8rRmYvZnlvRWtJRzhocnZvQVhmamZEaXdGZGtxcWI0bnpkTXBhakhtNWJl?=
 =?utf-8?B?OGdBZmFsOXh1UWtLbENZdGZIYjNMQnF6VHpKUkFFU1UvdEp5aUtOZmFSbUNK?=
 =?utf-8?B?YXRvRFFWYkFpVG53MDFlMENHNHJKUG5RMlRkZ2x6eXF2UUxyNjIwbTZQZ3d2?=
 =?utf-8?B?cC92aE9sOVhXaXUxeE02ZUhlMEF3Nk5SR2NmKzFNQm1LNzVNNjRCSlRVRkR5?=
 =?utf-8?B?aVFvTWFrTlFaU3lnMUNmY0xQVTJmYlc3Vld2SFFYNFZTcDkxMVQ1VkNzVjhq?=
 =?utf-8?B?cEhNakxFeHhEaE8xRm1FRkRXcVo2Wjd2Y1BLSW5VN0h4QnhkZjlQWXJmUEs5?=
 =?utf-8?B?NkxzOWNQZU1iRzBZaENrR0JXYVAwdHhkTFhCVnBNaUlKYk90ZHVqZlQ2YTA2?=
 =?utf-8?B?Tko2cEhwRklNN0xORC8rZloxY2VEMGovWFcveU9qbzJxUjkwWWF0blZ2eEpJ?=
 =?utf-8?B?NGlmMENpcmdvZ01kbW52MHQ4ZVF1RDhIUWxnS1EvVEdBb0g4ZjN2OTVPWUNp?=
 =?utf-8?B?cSt3N2h6Q2FEZ082Ly9qVHpTZUNOVjhEZjhYdFFkYmJ5Mno3OU4zb1lnd0RP?=
 =?utf-8?B?bnJrUmh0cWtVT0dCaFlxS0I4SmRBcGQ3NStLRVdDaFA2ZTV0WSt6eTVsc0JL?=
 =?utf-8?B?OVNSUUtWM2VrTTJUc2RMa25SWFNuc2xzVUZPSkRvZXA3K1k4NlEwdll6L0Ro?=
 =?utf-8?B?dGJZUHJzb1ErUUh1ZmdBYm1ULzFiWGpHTFJsSTNrRGV0WTUrWlBjaVJNenBh?=
 =?utf-8?B?ZmQ5RUN1dW91Y2pUVG4rWWlhdXNIQnBvWDZ2NVpoZmZyUU1zclFhV2xjb3hw?=
 =?utf-8?B?eW0rU3htYm85NE91NzJOQnlsYWsxT0RTNURmK0VEQlZQaUxiMHVzVkkzd3VN?=
 =?utf-8?B?STdsWndDbFd4REZBNHFNclgxRXc4RWVrZDhOQ2R4VXRybklwNytZZTJsUmJQ?=
 =?utf-8?B?UStrVlMyWnJ1Z2FRbkNtRW9RejhBdG1KK3E5NkRjK01xajJtOEJkRDNaVmRu?=
 =?utf-8?B?SzgzL1hXRlY4VGZIU2FsTVpwbFZWK1g4QTdwcW5pV1FmN0srdEluNmlRMEZy?=
 =?utf-8?B?M1pEWU05WDkwQjFtZno0c1Y0NUFxR0ZpeFNONFgza1lBOTF4dFdlQkN1VlhB?=
 =?utf-8?B?Y2l0K01HekdPNUJqMVNzaGRoUGVQbU9Wa3ZsU0xkUmdiNVMxVXdVTTYvK29S?=
 =?utf-8?B?cG1LN0VMam85TXZ5U0RjWHZ5K1o3WmRObzZRSUk1MXNrMTlFYnRyTGpQdWln?=
 =?utf-8?B?NTJSOTRsOG5Qc1U5R1puaWF0WEp3VHBRaUU4MXExUkZKV3lMRjdZRzdKWnlk?=
 =?utf-8?B?aDV6SkNSbTBmK21iVlkrWmM5b2RzZXRnZU9LSzhGSTNyTTRUWmc0c1JIeldv?=
 =?utf-8?B?VG9mY3RjV01XczZqUkFPNDh6SGI0UVNxM3FDZXprYXduZmpUZ2Q4bmJpK1RD?=
 =?utf-8?B?SUszdFVKZkRQKzVMenB5NE5SdHlKa0VVQnBxMXllVTRWdVNBRHc3MkIvNDFF?=
 =?utf-8?B?RVRmTHM1aU9mVUhlTGxSa3RlalBIMVpuRUNGSlk1dUpOdnlVOHh4ZHFpNkw1?=
 =?utf-8?B?YjdvWUY3NXF5ZjZnVDkrTG1qZStYWFliSDBYSVlnODJybXdxbVlzdEJTbkF0?=
 =?utf-8?B?cVdZeXZvaFljRzlvbU1LaEU1VFA3YXBhVFVHVllJdTVvU2kyNXRmT0ExZ3FR?=
 =?utf-8?B?ZmdsOGlDUUZKbWcwKzJwN0ZDRmJXS2thN0ZxWmZCNlRUWlZpRC8rNnRTRW9v?=
 =?utf-8?B?SWVsUXNPSExwVE9GTE43SDJWaG9xOG5GbUtBWGFYQ2E0S0hLeDBxbzFQZmgr?=
 =?utf-8?B?TU1vSlR4NHZ4OE1pbzZCNGdXZ2lVZXh0UWFQQW9mZmZPaUk0TWkwVmVRdEcv?=
 =?utf-8?Q?7LLMXziOX3cILAJeHfXrGr/Gc1UDdgw9?=
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?OWhUSWdMNElBejJVMkw2OTNNV3hFYnhwblZXUk1jbUtCcWhFYmVyMkRyVnBw?=
 =?utf-8?B?YWt2V1JYOHZkUGo0UWVNSjZXZWZNMTZiV2xPS3JvMHJ0RllDTVU4a0pPZHZG?=
 =?utf-8?B?VmJVd3RzYU9qaTR4aVJFT0kzQUxvem9kcUU1NGlQTlVQRDFrNUVrNC9FS2Jw?=
 =?utf-8?B?MWtmWGFnMUdVdXdvWGlWT05NSnJadkowWDUvOXk1eGRCZVFpZUZKanZmNFFs?=
 =?utf-8?B?N0RkSFhCTzZvVVZjLytSdmR3WEhUaUV2M25iR0hiN1I1bDdKRG5LK3ZROStP?=
 =?utf-8?B?RHhtbzdvV0JjaFQ2L0dnVy8zNTFYRURnd0k3VlN1V1FQUG5kTDlhNGpwYWRs?=
 =?utf-8?B?bzJrVFVxbnZQck1KUlZTOWpIMG1iY0tJeHViVThHaFRIVkFkdnBIek5MQVBp?=
 =?utf-8?B?NG5NTTlSbEJEM01BYzlhYkxSWmJiMGJNckwzdVhNWG5iRThFTVdWNUFDL1kv?=
 =?utf-8?B?SW1mYjdpR2plekMvRDU4TDZLS2FkYTdNTG03Q0txVi9MdThFcHFMQ0s1OE90?=
 =?utf-8?B?d2dBcXN5QW1LRCt3bGx6R2NRU0diVlNRdkNpOEQrTUdFMXNKZjVsdlpNMGFF?=
 =?utf-8?B?ZWxCSHVzbmw0RlQvYW9pRGRkNWM5MFdpckttN3plTjRXWUZDTXhuWWVJK1BJ?=
 =?utf-8?B?STJFaGF5YXhyOFJxS2pRdzloaFhiNTF4TUQraGRhNHdFS2NBZkdKUFRVdHp6?=
 =?utf-8?B?bmNaelQrM1ptN1R3Sys1SmlKbkhvM3RQcithc09vczZFUGFIeW5aUEMyWXpv?=
 =?utf-8?B?bWZPaFVMWHZDQ291aE1vYWtic0NRVmZJZnFNTEJpNDFqTWIxQmF4TjFkTVlw?=
 =?utf-8?B?ZHZWMzgxaVd2dWFJcGRxQ0o1SHlWVFlYbDhRWGwzK2xrZjBEbkZOYmszOTZS?=
 =?utf-8?B?NGd6bGt6cFFuYnRMY1FEWTJkUmhqUGtRTnlRTWZWMG1aVlB6bS9ySk5JeTFz?=
 =?utf-8?B?MjZkWGZNYXI4TVZwbjBjRWRINjJoYk9ha05FdHFGUFFFeHlBdGxyYURvVDU3?=
 =?utf-8?B?SWx2S3FUZEdmWUFpN0UrNjMzQm1LbE8vK0F4SFI0WXRlNFJSc0hEMysva2pk?=
 =?utf-8?B?MHZ4T3EwRjBDVDZDSWZyUGRCWjVGRkUyQXg1eVpQRGhVSjJYSWd2TTJNQ0hO?=
 =?utf-8?B?dzRvL2lzdjFCZkx0QndtaEx1bjd3b2RkbmhkeWJYeHFsWGsrOGwxQ2RudjVK?=
 =?utf-8?B?VVNjaUszTkg3djROeWlhYUJSbEgrcHFaWmdpcnFuY0xxSWtZemR1OVJRV0hi?=
 =?utf-8?B?WEdidjNxRFRxQkFldzlqeHp5YkNTOWI1OExtN1FkME92aklKd0FJcjJJaFhi?=
 =?utf-8?B?ZXdqOFRSbVpjd3BXbzZJbEI3bkhlaWNIeGpnbTViOXhZYW4zZVl4WHRoalUz?=
 =?utf-8?B?bHNJaHBhWTc2d0FOWWlzU3FJUFYxZnUzTkMrK3JCSlRRL2puTlNaNzhZR21B?=
 =?utf-8?B?bXdVaGFyaVNzY3Y3cDdRa2IvTmxuZWxBc2FRcENJSVNhbHU5SEJickNZTVEz?=
 =?utf-8?B?ajB5TEtaKzVpTGFGV2dBMWtXZVFtT2lXamx5YndMc3E0bG8xTmI2UlNjYmFn?=
 =?utf-8?B?US9iM2pXd0ZyMEZQQVA2WW5rQzJBMzRLVzFzSEd6T0kzRzBnMExRNjFzZXR1?=
 =?utf-8?B?UVFjdkpvRitjZi9OZVVaMDdlOFdJKzhtSWZKNjFKWWIvcnBKT0ZYbFZGOW5l?=
 =?utf-8?B?LzV1RldLL2xKekZBcEJ2Y0R2TzZJQXBGek5YalFtOTR6bCtxb2dWOG93N0Q4?=
 =?utf-8?B?TE9yMUh1cVNtQ3p0YlQrcytqR2tsYnFLdm5zVHNaMC9NMkJQeHZxRm5mc29n?=
 =?utf-8?B?Q28za1Z5dFN4TDJLa3cvVS9RVEt1NFJ4bHArMXBtSDBOSThPTkZ1dnlpQ2l1?=
 =?utf-8?B?UWhRdlNML0k3Umd1N0xXRzQ3Vk1zdCtaeHphVVpnTFU1dnpBNmVtWVp2RXY4?=
 =?utf-8?B?b1BIazhyRUs0UE1JWHBldEVYTzBXOXFUS0s5YSthNnhpdW5IcmtiVG9NWE1W?=
 =?utf-8?B?SGoyZGFPTVNoYmsyTXFyOUgrTVZGdkJDbWI0UVpIeEY2TzZPTjVUYm5NQnhy?=
 =?utf-8?B?VVozS3RYL2xlUHhoVElRN2VFYXRaZnZjVFdSQ3BORGlYWmh2REVBRHlHa0p0?=
 =?utf-8?Q?TaPeBHLJtVQwhECqQkAqQGnxI?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b8e44887-07b6-46f3-fc66-08de2cf29f2a
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 13:49:29.9366
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Hszxd7Kiu5SVqdaVTxUJGJXAZq4hJYPVSlrNsqvY+sxKrwa+cH/856v6JEfsOjJb2Y/ewTdTxDnUaLi1+2i52g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6545

On Wed, Nov 26, 2025 at 01:44:25PM +0100, Jan Beulich wrote:
> On 26.11.2025 12:29, Roger Pau Monne wrote:
> > --- a/xen/common/domain.c
> > +++ b/xen/common/domain.c
> > @@ -1547,8 +1547,7 @@ int vcpu_unpause_by_systemcontroller(struct vcpu *v)
> >  static void _domain_pause(struct domain *d, bool sync)
> >  {
> >      struct vcpu *v;
> > -
> > -    atomic_inc(&d->pause_count);
> > +    bool was_paused = atomic_inc_return(&d->pause_count) - 1;
> >  
> >      if ( sync )
> >          for_each_vcpu ( d, v )
> 
> Isn't this racy? Another CPU doing the INC above just afterwards (yielding
> was_paused as false there) might still ...
> 
> > @@ -1557,7 +1556,8 @@ static void _domain_pause(struct domain *d, bool sync)
> >          for_each_vcpu ( d, v )
> >              vcpu_sleep_nosync(v);
> >  
> > -    arch_domain_pause(d);
> > +    if ( !was_paused )
> > +        arch_domain_pause(d);
> 
> ... make it here faster, and then the call would occur to late. Whether that's
> acceptable is a matter of what exactly the arch hook does.

It's acceptable for what the Viridian code does now, as there are no
current callers to domain_pause() that rely on the Viridian timers
being paused.

TBH the Viridian timers would better use the vPT logic, as that
avoids having to do this manual housekeeping.  I suspect vPT wasn't
used in the first place because when using SINTx the same SINTx could
be used for other purposes apart from the timer signaling.

As a result the current logic to attempt to account for missed ticks
is kind of bodged.  It doesn't detect guest EOIs, and hence doesn't
really know whether the previous interrupt has been processed ahead of
injecting a new one.

> Furthermore, is what the arch hook does for x86 actually correct when "sync"
> is false? The vCPU-s might then still be running while the Viridian time is
> already frozen.

I've also wondered about that aspect when using the nosync variant.  I
think it's fine to stop the timer ahead of the vCPU being paused, the
only difference would be whether a tick get delivered in that short
window ahead of the pause or afterwards, but that likely doesn't much
difference for the purpose here.

Maybe it's best to attempt to move the Viridian timers to use vPT
logic, and possibly get rid of the arch_domain_{,un}pause() hooks.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:51:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:51:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172793.1497890 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFw0-0001pF-Rm; Wed, 26 Nov 2025 13:51:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172793.1497890; Wed, 26 Nov 2025 13:51:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFw0-0001p8-Oj; Wed, 26 Nov 2025 13:51:52 +0000
Received: by outflank-mailman (input) for mailman id 1172793;
 Wed, 26 Nov 2025 13:51:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fSqE=6C=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOFvy-0001nu-Mh
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:51:50 +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 0d00a44d-cacf-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 14:51:48 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV5PR03MB8409.namprd03.prod.outlook.com (2603:10b6:408:35c::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.17; Wed, 26 Nov
 2025 13:51:46 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Wed, 26 Nov 2025
 13:51: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: 0d00a44d-cacf-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Y/vUXVsOCZRtu+9ySqgxoudvkZXTu43ZBNrBXj3P3RpYFkLLvWrAg5M07eSuPSL69kk86mOyUcN86rHr0LEFvMxELM8gb3jmr2UY8srz3zIaCxKf6gcD4Jz54P8TLEkfSRQeDl4DoFDdIE2lMCePXXLTn8iZBN/uFqCr+fmyDL8aH+qbuWjIvnGnxkvMffU/uk6u4h1uzur1Kh2gDs9rF7DyHK1+I+YYTEIq21vwV0tsFQ6BzoQpiM5jy4TvakuZEijUJz04Ydf3VjxMbRGEl2EzxXEaYQux7tVIF6ZqisFxx1jeJn7V6+FRAO0m3ldDhpmaWaB1s7ZANIgqRHTtrg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xH3PSPtyfxlv7BsGDtw1CYgo/fmljYPSZrwxVD+LSmU=;
 b=X8VRi8OPa0MFLaYHNwGgY9hPJ2barhd7QCaEzmn7olpDC8scbcrY1ZcTC/p8MbYxh8A9jblYhszNh9qDCRrdxnKCKIDtzCT3WtC7OcLE8Ar1HgXa4Ff/CDHvdbM0jMcy8iHGCv/isac3mlz3h1Vklchh1/Mh1gXk03yDBUskfFQsUrek8+78LsHVWZ9wY1nc6C/CuiGbn6ztO4sJSRcCdlDaNzKQuPCwJiFnCIDO2dY09vw4SrkFHVqsiv/BAkMEMc2tcgsw2o93WCycBpCf5hkkTH43OxuYZOP4KshacXVtWRIusrBWWL5zSJH5VXrl/ZJx0oD93EdWPREDWKbUQA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xH3PSPtyfxlv7BsGDtw1CYgo/fmljYPSZrwxVD+LSmU=;
 b=lN+v17zBVtF/dpa6hkt6Ldrw3pno2ytgbGPlbgQwjusRuH6LMjJmf4N5BeAc2/6ZCirQcO5owfgSCaq6ahaJS3c4FcUhl8nL+F57cx4kCHJwlCHmtLgizw+2rVLJLeMdEpiVc3j7hfdJV2+Dzv6cArQrUUD6iKS94v0C3Mt213w=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <859d60ce-165d-416f-a1f1-89ba11de2839@citrix.com>
Date: Wed, 26 Nov 2025 13:51:42 +0000
User-Agent: Mozilla Thunderbird
Cc: 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 1/2] x86: move arch_generic_hweightl() to arch-specific
 library
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <245fbc16-924b-4fd9-8cbc-a539b569edac@suse.com>
 <76f2d454-ee2b-4aba-a6e5-974b1b2dfbb3@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <76f2d454-ee2b-4aba-a6e5-974b1b2dfbb3@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0043.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:152::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_|LV5PR03MB8409:EE_
X-MS-Office365-Filtering-Correlation-Id: d3096180-d3a2-4c7d-a8ee-08de2cf2f01e
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?VEN3b1JMcFVoNm1hbFIvUSs1Y0x0ZTJvSDBRVkJZK2s5b3B1N1RGVVFMZnVD?=
 =?utf-8?B?VHp1dU0xMGM2bWFhSlZ0M1pRcmJKQWY0ZUpKVDRzSSs2eVpyR0V4SFYxcVNJ?=
 =?utf-8?B?VEdMbVVZbVJuV1lJN2NaNUgzYmU4SnhJOTlRZE1vNmRJZGtvQXlDTDJlVlpW?=
 =?utf-8?B?dXlIbzVLUFJZVDg4OVEwYVpqb2d6SHVhcjE3VDVqb2pQYXU4SnptejFkYlRT?=
 =?utf-8?B?Y3JSNGNCQy91VTd0NUY5dFRSNE1EdjlNVmxtcExuNDI3MWpRSnVTSW0zSUZM?=
 =?utf-8?B?UW1qdTRaMWVMTFkrQURWMjZzOENqSHhXREYyR3ZNdU45T3kwRVZLQ3pJM2lk?=
 =?utf-8?B?ckRKRkpUenJ4bnFzKzF6NUk1ZW5oQnBoQ01sYmFCV3o3eXhRc0FVdzNCeHRL?=
 =?utf-8?B?eG5VVVpiOU5ub2xFd29nczNLWkdtVUlac3h0WlBBanFlM0tqUDF1Zm4vWkVa?=
 =?utf-8?B?blN4dnpUS3ZHakdqVGZJNGpwVzRwUENsMG9kMkNtVTA1SXZJNDdKZXlLQlNa?=
 =?utf-8?B?dUpvK2tkck94S2NVelpUWkRQc3NZQWRvMTh5UWYyQk10RENxanl2RjYyTys2?=
 =?utf-8?B?QlZvSmsrRS9VYWlqaE90ajIzQUh0bE5lSGE1K2RPNWFzaUd2Y09MOGtSaE5x?=
 =?utf-8?B?aE52UTkvcFRLdVBxTVQzalVMOUxzd0hSdVlySlg1MldhOGxJLzdiOVRydlAy?=
 =?utf-8?B?dThUdXpvaEJoRzRod0JxM0oxUXphdFBqSjVVcVluYXhPLzMwK2ZrVVNPWms4?=
 =?utf-8?B?WkpGMDNpcTZ2REJETm1QUU5NMU8rRC9vVlFjY281NEgvU1NlNVhTUFJBeEp0?=
 =?utf-8?B?Q2tUUlV4R2lIRG53WitPTUIvUkEzMmNGVkxOaFdoL2taZWZ4bmprcnVrUWpE?=
 =?utf-8?B?OGxHSXNCQy9uRnVZSWp1aXovclZxK0g3SUZnUXRucWZnMnJrQ3Z6bFZqZUlQ?=
 =?utf-8?B?bjlYbVVGdzhoekQvUC9IVkIyYzBZT2V1YVd2czZuSGZzYkkxaStEQXFUNGJO?=
 =?utf-8?B?OGptTGl5SlJlRnpyd1puUzFuMUJWS3pxSXNZdW5JeThyL250VytIZlVXYmhq?=
 =?utf-8?B?YjZpUU9aY3l1U3R5R0hkYzhCSW55cGVPK3FwRyt1dXBVZTdlUHJTa3ZUS3V3?=
 =?utf-8?B?d3NyMDd3UWpnZ2RCSlZsZGluZ1B0OWRoVU05bHZLNWplZlNqdHkrV0VLNWVR?=
 =?utf-8?B?cjlwVGZVcnRZR1hRV3NZSGRiWWpFb3hqWE54TmxzZjJvVFFiUHQrLzA4eVdE?=
 =?utf-8?B?TFdoQStjQldQQTN2c0o2WklONkljU0tkWEdlejZTdC9WeWJOZjdDOFRub1JY?=
 =?utf-8?B?QkRuaGR1dFJBUFRGNnZPeE5maVJ1T1FINUhiU3Vhd2Fka0J1T0cwWkswQWpJ?=
 =?utf-8?B?TUVteVE3WHpncFhvcFRRNzRCcE5IZXlUeHNsbUY5dnVUWlN5a1o3eWFOV00w?=
 =?utf-8?B?RWFmNXcxNXNITDZkbHRiZldaME5NSHJHNlUxYVlSUkhtcGp2U0dVb3JXSjlh?=
 =?utf-8?B?bm8wazhPOGFGSmlvNTVLWktaTXlQR3VkVitqTElvdHZhUXV3VFlQb3Budkkz?=
 =?utf-8?B?MkRRWjNaTnRIa1lHNytidXRNcnIvQ3c1dGF5KzdvYm4xaVpWbDFFbHRmV0tE?=
 =?utf-8?B?SUFhNTVNWnI4bzBvbE14TTYyaXRGZ2RyWkFyMnFSNEM4eWhFMGVCWTVzRXQr?=
 =?utf-8?B?eEE0ekNuSWVGTm45SlZLblcrWDRjd2Jndnl5clRKRE5sNVdXWHYwOU92Ri9V?=
 =?utf-8?B?L3lBelVIbExvZDVqRkROZEtiVVR4QUxPSGlEaUg2ZjN1b3FtTU9NMWNlMXFP?=
 =?utf-8?B?b2xiQ09MbDcxbG9KR2dWR0Q3R3ZnOUF0aFZIV0hBWlRiOXYxM1Q3ZTg2cExJ?=
 =?utf-8?B?TjAwS3lQaGRlaFBQVC9ZMytTSmNhQkJoanl2QVErL3lkZ01JTzMvdkpKUmM5?=
 =?utf-8?Q?IRvIxGOYs5izEj3XsmuZdOHPt7NyRYao?=
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?OTMxN2NqdTRaZzE0Z0ZFOEN2c2oybEFkV1N6VldyUU42aUJaYjVUUXF6ZzU2?=
 =?utf-8?B?MEc5eW42OXdiTlprY0lDRWlFdVJPNHdMeFJucnJJdzVEL2xwSHh1aldxa3Zu?=
 =?utf-8?B?d1VGbjdJQlJycFZyVWlEd2VBdytma1NBdzUwVFB6ckgxYUZ1Q05TVFBncXhQ?=
 =?utf-8?B?NjNZNXF5cStQZ09nQ0dRZzNJYVViQjBNUjJUeWRqWmkwZ2hPY002eWxmcEpo?=
 =?utf-8?B?aHFvR0pjQ0QyQjFQRitva2loT2tpZkNHdGpmM2p6TmpMYWdNUUF5R1loU3Ar?=
 =?utf-8?B?K3BieEs1ZUx0dmRMcDFCNEhVRDJ1WGJtVVZuekF0TmFqRFFqb0JudXJ2SThH?=
 =?utf-8?B?dVhYTkFrUGZVMXJJNXo5WGtlZk5ScmJLY1lBTzVWZHFqVUVNUmpBSjVONWR3?=
 =?utf-8?B?THVDakpRMXI5Mk82dlBoMXM1bTZhbExCS25VTFdlVncvbEtIV04ydHBrUFFU?=
 =?utf-8?B?aStScE5jb3BETStsWk4zMS8wL2JTRnliM3hDS3RHdnRQdmVObzZMRUgxdEJ0?=
 =?utf-8?B?dFpQMDdIK3lab1ZNc09Yd25hZnYvMmZ4amZZbGNONkNvZVVhOWxSTEQwMW52?=
 =?utf-8?B?T1lGRE9BcDBGbkE5WVdkdkhVSDdHU1Q1RlRxUWIvQ0Z3R0VieEt3YVRwbE1q?=
 =?utf-8?B?UThwK3JPWlM5YVJKcFZJTTJXRW9ySmkxOTJRYXhuekhxREFyeW14eXRyc0N0?=
 =?utf-8?B?TENpYU5VTkJuTVZWMUhya0NMSVZJblVCbFVONVMySWxlT082ODlydmlkNFJP?=
 =?utf-8?B?MjZPVlM2VXJManhXUTdwcG1sV1hkUFg0M251QW1kM0FtKzZSK3R6alF1MTJB?=
 =?utf-8?B?ZkphcGVNTUQwODZ1NUlGVGcwbnVKbzdTUmJJU0hoS0NNRVBKcytVNUw5d2Ju?=
 =?utf-8?B?SkJkZzRLeWN2WDNvbnpmSzA5TFcyZFVQOVFMZ0pEakwxd0hJUXlZdVh6MVlM?=
 =?utf-8?B?SkxhaHdiSll3SkkwMVlHVHROK1oyamJ3UytLSEVQRmc0ZGhFOHdZdEpGamlw?=
 =?utf-8?B?dkVOcEFxSU9XbjJUR1VhdC9XMUcwK2FrWmxISVoyS2pqSXJWUS9QOFdmbTdU?=
 =?utf-8?B?a0xONnFQZTdtNk1wNDFZREg3UXNFNytYSEptZ2Nkbi9kV2lUclpiK0NmMGdM?=
 =?utf-8?B?ZUFDbWh6Z21HYk96QWE2bDFjMTB3aFFmU09pZHYyMXJ6cnFrN09UU0JHL2l4?=
 =?utf-8?B?MHFUVFJScktZZzJNc3lnMVdVSFIxTzVGWUlSMXhVRGtEc2RpWFVUV2taaXBh?=
 =?utf-8?B?cFBMdG5lbWZxVUlmMUlHQmpyNDVBNVhIZUg2QlY2NkMycEQxcEZMbC9LYVJQ?=
 =?utf-8?B?UGdqRkIvcFd0ZlZUbUN4WGc3eGpmRkVuRS9QL3pvOFVCZUxkZS9DL0FIZ1ZO?=
 =?utf-8?B?dExZbGZ0TlJPLyt5dmNrVXBRQzJqelZrZEczZUxrTHNsaERzZW5kalRkNkdi?=
 =?utf-8?B?VW50ZW10ZXRVQUFYL0ZDNjVGbFM5SWErdDBtVHEyZ1hVd2IxVzFka2RBUzFu?=
 =?utf-8?B?Rmh3WWRZYXhCTzJTelF4RmE0b2JlcGVQRmtUam82QTk4NWo1RlVRclFrYkI0?=
 =?utf-8?B?NWdnbHZVZWpZNkpVc0RmN1Uvb3Z0bE52UUlIR0FBc2gzUzRtYlF0YUw5QWJR?=
 =?utf-8?B?UGd0K0dpa3dhNGtHOEVXcjF4RXBmZHR6S3c5azdudHRuTFpVSmJ0R2hBdmRs?=
 =?utf-8?B?SlpQQ3hhZUxvdDBFVElPOSs4dGovSkJpdnZwOXR5ejVZdm0rVU5kaFdKVzJE?=
 =?utf-8?B?WVJ0bU1oYzhVZ1dVTnVRSU5DNHpPWGU4VVFpWWwzZDRybHh5QXorajJjUmkv?=
 =?utf-8?B?NUFVQS91U1VVUHFMejNjNjRiZ2NOajQ5VDJaYzJBUDRQMUpUcXpPdUdMU1c4?=
 =?utf-8?B?Ny8zSXVoSXp2V2RsL3R4djFIRERnYVpOL0JOUlhHbHMvL2tPaUs4cVpjSkpX?=
 =?utf-8?B?OXlpNEh0VWs2S2oxQWNQdWMzOGlwTmlCTmo0aTNzN2EwdWowY2loeGgxQXNi?=
 =?utf-8?B?RE5nMVl1ZE1wMGhPQlY5RE53NTUxSytXdXN3Y21jL21JZXJWWjZnTm1EMXRv?=
 =?utf-8?B?cHZuRm1kQllaZmhvSktWWkw4WlprekkvQlZ3dFVTM0NkdzFFZ1JqOWhhTUlU?=
 =?utf-8?B?TlYxWFB2MkhMa0xaNWtZY05OeHV6L0pRYVdKdzFVMDBYTXdKYXZNaG1YaWJN?=
 =?utf-8?B?ZWc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d3096180-d3a2-4c7d-a8ee-08de2cf2f01e
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 13:51:45.7070
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OVDJ6t/PxaXdHs//yv6xucyKriOJnsSDvf51BMAOgHkqED7D4L30zyLWrnpC/1Pj8aEJhzDEi70vsmp0UIf5I7FOKaLbmFH8SE5uafa9/1g=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV5PR03MB8409

On 26/11/2025 1:24 pm, Jan Beulich wrote:
> diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
> index 16368a498bb7..a0ee050c931b 100644
> --- a/xen/arch/x86/arch.mk
> +++ b/xen/arch/x86/arch.mk
> @@ -3,6 +3,8 @@
>  
>  export XEN_IMG_OFFSET := 0x200000
>  
> +ALL_LIBS-y += arch/x86/lib/lib.a
> +

Oh, I'd realised it was this easy, I'd have done so straight away when
adding x86's custom arch_generic_hweightl().

I assumed it was going to be more complicated getting the order of the
arch specific lib correct with the generic lib.

More concretely.Â  Given an x86 lib, we should move things like
arch/x86/memcpy.S to it.

Therefore, when we have common/lib.a and arch/lib.a, do we guarantee to
have arch/lib.a with higher precedence so for matching functions the
arch specific one guarantees to be taken?

Otherwise this feels like a trap waiting to happen.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:52:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:52:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172800.1497901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOFwY-0002Qk-4L; Wed, 26 Nov 2025 13:52:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172800.1497901; Wed, 26 Nov 2025 13:52: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 1vOFwY-0002Qd-0a; Wed, 26 Nov 2025 13:52:26 +0000
Received: by outflank-mailman (input) for mailman id 1172800;
 Wed, 26 Nov 2025 13:52: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOFwW-0002QR-Us
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:52:24 +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 21e455c6-cacf-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 14:52:22 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-42b3720e58eso5105368f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 05:52: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-42cb7fa3a6bsm40371847f8f.28.2025.11.26.05.52.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 05:52: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: 21e455c6-cacf-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764165142; x=1764769942; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Sgudf3x16De3iis136PETuYIsJFWhzLjvzbyjajOKcg=;
        b=ADr1dUXztbDFHsumAujcLrZE2gq2MBaifZwf16XK8qOSke0iF5QkyNKjCJ38dIs7RI
         7dnuFnH3ZyGtEkc01kjHS0xJvW3eNfJddyTvfVSond4zn7pDLlUbMJUaICAlh/dZ3qeH
         OGwiV3a7/ZcOqMgh+ucuPKC6XVY1RF7TU0dj9p2VGgo5pJtHFnS2h7lBNvkwfvT9Tb3J
         w0x1L8+h8YFphh7WFGmHI9YcZI6FEuiFikOM+Qa3B0Zsiu/+ZSEaGmh1d/70VP3JJxPv
         ju7FGUay1L9lvvyR8yzvwmKixFt+dBM89wocFcFmcSkoLJHg9UJ5Ad1ErcSaQ12kuxXK
         pNEw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764165142; x=1764769942;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Sgudf3x16De3iis136PETuYIsJFWhzLjvzbyjajOKcg=;
        b=l61zx1P9y638MaMcKQDMNYh4qjfdwDuWirTMbso41Lcf8zPEOIuiPCmV9CxoNZz67g
         GFTAkqGutcTcKYwvjlz033PNnmK4B53O/38MWieo7QUBnZltdgqPBGU1eiKIqNo6vDM/
         YkYrPCd1rsX2F4deVgCn27yZulUc1DHGMR4+Dctf5pXscd+u5KBM3UrkyOgAcTVNGPJ7
         J4mV/MqiMVgY+AgYjvhiAbjWgOZ93/FLdvq2B/xWFvUyqAjscmzGZg3mgroZU6ZOTs3o
         8gYQ1DaMmLcDXGFQELzHfv52EcqnNgJCXvWsQ1HNQVhGjqT7im6PdLO110cktlS4vRBd
         OBcw==
X-Forwarded-Encrypted: i=1; AJvYcCUD6X1Ah8Ib4BfU/j18UKF2/oTYoDJZALGOOJkxepvAXtrm1EPE9P0SpuxOqoSlcc0jcCkTDwZ+auA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yza5Hda3kM6EC7TNqc7xrH5zGZeiswpkqrJkV/Zn++QzgY7Do2E
	swIpSxZJLM5/kzq2pvsNR7B7faXP6o2esDlmXCmPORXSSk9SurkxJ9hfFrAQFJNu6A==
X-Gm-Gg: ASbGncv0+fLAb622TLd80qCLlCl4QekYZ1AoBkLArXJPUOj79Jsz9hm3P8hmgrCbvcx
	oXysRsFkMW1hQ5gK2C+j8Dcg8tBE7hghBW6lnS+mOehTxw9NYDRraHQmyrK/Wo4eogQvjDROc8B
	M1udWA0/Y0lc5vKihtDkGFEhvRh/kkvHIDiB8a81DXJrb4oonzHSyrCTN4dbs1U80073p7K823E
	ykVTufmgjr9uQMY2dTrKG7kA4N0R+o3t1aP1RL/Lt5IKyQPOxHO+6VJH0L4Z+MpkssPp0R+egTh
	Zp2LWToWigP7NIr5E7d/znvPEixlbiseYhYeKFc7d3ZYSKMQofsXVT7IXbcba4yL7tkm6uxayRJ
	pgQ0uP72Z6xWY4/pCvuDm2X9mvN4YIvNgCOs6sf5YDLwD79vioalFekNQZWMiZnORjj5b+gECFC
	wt3Y9JiBhpGpvs6sbYTmDHjKHicm7lIWyXbPjsqNK+1q69kPZU3p7fyetd+szPvB7O//gK2Favn
	pY=
X-Google-Smtp-Source: AGHT+IG0E1Fta2QWFylL0vB5+pgcITooT4JdwLyLRw/JJ2tABTL7bN2992zpo6+0Hwi+8ogcnR50IQ==
X-Received: by 2002:a05:6000:288b:b0:425:73c9:7159 with SMTP id ffacd0b85a97d-42e0f344080mr6780613f8f.33.1764165141876;
        Wed, 26 Nov 2025 05:52:21 -0800 (PST)
Message-ID: <861c5e5d-229a-41d3-b6e1-4f42f1cd47ab@suse.com>
Date: Wed, 26 Nov 2025 14:52:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/viridian: fix calling of
 viridian_time_domain_{freeze,thaw}()
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: <20251126112942.49031-1-roger.pau@citrix.com>
 <4f3c5cf3-cdba-4162-a9b1-4afe683c864f@suse.com> <aScFZVHdW2ef0tNE@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: <aScFZVHdW2ef0tNE@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2025 14:49, Roger Pau MonnÃ© wrote:
> On Wed, Nov 26, 2025 at 01:44:25PM +0100, Jan Beulich wrote:
>> On 26.11.2025 12:29, Roger Pau Monne wrote:
>>> --- a/xen/common/domain.c
>>> +++ b/xen/common/domain.c
>>> @@ -1547,8 +1547,7 @@ int vcpu_unpause_by_systemcontroller(struct vcpu *v)
>>>  static void _domain_pause(struct domain *d, bool sync)
>>>  {
>>>      struct vcpu *v;
>>> -
>>> -    atomic_inc(&d->pause_count);
>>> +    bool was_paused = atomic_inc_return(&d->pause_count) - 1;
>>>  
>>>      if ( sync )
>>>          for_each_vcpu ( d, v )
>>
>> Isn't this racy? Another CPU doing the INC above just afterwards (yielding
>> was_paused as false there) might still ...
>>
>>> @@ -1557,7 +1556,8 @@ static void _domain_pause(struct domain *d, bool sync)
>>>          for_each_vcpu ( d, v )
>>>              vcpu_sleep_nosync(v);
>>>  
>>> -    arch_domain_pause(d);
>>> +    if ( !was_paused )
>>> +        arch_domain_pause(d);
>>
>> ... make it here faster, and then the call would occur to late. Whether that's
>> acceptable is a matter of what exactly the arch hook does.
> 
> It's acceptable for what the Viridian code does now, as there are no
> current callers to domain_pause() that rely on the Viridian timers
> being paused.
> 
> TBH the Viridian timers would better use the vPT logic, as that
> avoids having to do this manual housekeeping.  I suspect vPT wasn't
> used in the first place because when using SINTx the same SINTx could
> be used for other purposes apart from the timer signaling.
> 
> As a result the current logic to attempt to account for missed ticks
> is kind of bodged.  It doesn't detect guest EOIs, and hence doesn't
> really know whether the previous interrupt has been processed ahead of
> injecting a new one.
> 
>> Furthermore, is what the arch hook does for x86 actually correct when "sync"
>> is false? The vCPU-s might then still be running while the Viridian time is
>> already frozen.
> 
> I've also wondered about that aspect when using the nosync variant.  I
> think it's fine to stop the timer ahead of the vCPU being paused, the
> only difference would be whether a tick get delivered in that short
> window ahead of the pause or afterwards, but that likely doesn't much
> difference for the purpose here.
> 
> Maybe it's best to attempt to move the Viridian timers to use vPT
> logic, and possibly get rid of the arch_domain_{,un}pause() hooks.

That may be more intrusive a change. I was kind of hoping to confine the
less invasive change here to the Viridian freeze/thaw functions.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:56:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:56:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172818.1497911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOG0a-0003Z3-OH; Wed, 26 Nov 2025 13:56:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172818.1497911; Wed, 26 Nov 2025 13:56:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOG0a-0003Yw-Kd; Wed, 26 Nov 2025 13:56:36 +0000
Received: by outflank-mailman (input) for mailman id 1172818;
 Wed, 26 Nov 2025 13:56: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=fSqE=6C=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOG0Z-0003Yq-E9
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:56:35 +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 b752ed3b-cacf-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 14:56:34 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM8PR03MB6216.namprd03.prod.outlook.com (2603:10b6:8:27::8) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.12; Wed, 26 Nov 2025 13:56:30 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Wed, 26 Nov 2025
 13:56:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b752ed3b-cacf-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QhA8xLgzgHi/UBR8u4/uZgjzw7IjhKLI5rLuWzuil5rYs1xO+OdZQ5oOwaExYpRceQaowKTKPPp5yGAcSrgYilnyfTKy7sYEmlfhZS47nlZF77d7d8xSobXBuc7bpZk39JAoI75/P1oUJLpxyHjYZ0YTiQLqf0HqnSXA4Rxax9Y7wjVTqSuaqQ0EtzCXk33b5Hwi7PIOdzagi/9FxZs8Ir1aHMqkbF9/JNoLha7ZXexUlSVUDQejFJlXwfPeD0bMl0UzslEawzySkWY6ZEBPw/mSFZIqmMJPw24tD/07Mesq4J9IiEytMrQA8+HQC/aHh4JS9mwS4RdzKdl1BaHPjw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=93VQO2cOhgeG8fPNlomfUuzlTmlapsYgyTp7wVTLIj0=;
 b=wwYwGP51vPmT4Ch4ybquSvYRtcmTaimqmccHzfDreEM3TjlLdZzbwTCYAih4yiTQpg41o0W/PP+x4vQRlaSQTf9IZKxgTDRTbAdWGlZwpPSp9xcjowm7VVzDQ2LV32Mg8dUBzKhOITi8lRNrv84S6NH0mUrwgxl1THdC7awUtn2gHY7r6+d93k2lVBh7bqIdZWdbYYDfuonwLGa9lL5jCoVZRB70630zEOFDSi/hcBtjDYLiGl8JVmBhpbhQH1dVVoIyUUH36WSuRJ61wx4JDbJJczZART/cupzXHSTCziEHkilFv4ez/bJ70eGxhL+1wD03P33zpgd84laCDcWgvA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=93VQO2cOhgeG8fPNlomfUuzlTmlapsYgyTp7wVTLIj0=;
 b=OISPcv3MDHdhzCcxE+i5n7nOe3KJifzA/w9dRRP6mifnfEJ1sxBeYSVqq09oOHeSgs1aA1htnewnb6Ck5owJcAlLt8gbnjkuldU6Hb4baWHaJms3W1pEh+hOx38NLzNkUV9YfPwORELiHKbuunP7HyD9yQT8ligPDKJv+5jkI/E=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <3c6af7e8-a295-4e80-b99c-075c21632cc2@citrix.com>
Date: Wed, 26 Nov 2025 13:56:27 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [PATCH 2/2] x86: move / split usercopy.c to / into arch-specific
 library
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <245fbc16-924b-4fd9-8cbc-a539b569edac@suse.com>
 <fd3609bd-6259-4336-905b-732a2f171996@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <fd3609bd-6259-4336-905b-732a2f171996@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0147.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:188::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_|DM8PR03MB6216:EE_
X-MS-Office365-Filtering-Correlation-Id: 166ae04d-890f-4351-7924-08de2cf399ca
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?SVMzRWNXdk9ESzdzTjZyejNqVk8rREtCK1p2VXhqMkczWS80VEpwdGQyQWNk?=
 =?utf-8?B?YWJsUjdyTWtsR01aSDJLTlRUNXB3SjFRWUhuY3R5Uzd3Z0xtWkRLeFlsRWdJ?=
 =?utf-8?B?MXI0VVExdTc3WDBTa1pweVJ0bjN3WnVJRUZKV2d0bXFpQng5V0wwTERRTmF5?=
 =?utf-8?B?cmFwdk9JSlpqOUJ6V21UdHFuNU9SWE9OUmNTTzRZZWxxNkd5QW0xTHZuV2VZ?=
 =?utf-8?B?L0RoYnV1MmI2RDk5dGF6MUdHNGFxc0JHMnE0bElwRHRVWStIWTgzbkozNVpU?=
 =?utf-8?B?TlY1RUgzV3dLZmdhMllUWlRqVVErUzIwYzhnK2NSd2FoMS9kazgrMVRDMVcv?=
 =?utf-8?B?Y09VQnFKdFB2R0c5WHFBbWppcTZ0T0VQd3FIbklrVnlBNnRjU2tDUzFpbnd0?=
 =?utf-8?B?eUk3UXFVK0tMa0VTS213Y28yU2l1a25SNXpvc1NySVhDYzNYK005TDZiMTl4?=
 =?utf-8?B?by9QOHlQeWZxWTdvMGFoa3pKQndGVmNtcDRoVHVCdm5yL3FVVDR2cWdVQTJk?=
 =?utf-8?B?WU9DUHZyRS8rRnFwVkwvdFNoSFFJVER2SU1aYW9vYUEvU2tlWFZ5a3VxeVFI?=
 =?utf-8?B?UUpYQzlRd21FRmNQZDEwZVNVc0l5Q2xUb1gvek1QczNKajdqTHdPRUtOdmpW?=
 =?utf-8?B?NzdFZGdCa2hYZU5WaGdZM3ZVTHprT1Rza3lpUXNFMXd3NVVZc3lVd1VwbDl0?=
 =?utf-8?B?TUdNVDk2U2hpL1ZIT0hEcE1Pbm4rTEJtRzI2ZHlBYVc4U3k2dVRGNmxxVU93?=
 =?utf-8?B?dmVvVlR5L2tuMkVyVG0vbkJVTHM2bnIxam0veTdlbTUyRzBycVpKd3J3U1hY?=
 =?utf-8?B?MitHT3B1MTRVdktBTGx4ZTVqYjlyRVdRYzVmYkh2VEdjSENrNXFJT1dFYjRK?=
 =?utf-8?B?TzNvYmV1WmxoTzZQNmZMSmZjN2xYTnhOVlJsSG54V2o3MkZBZ085VU9JbWxw?=
 =?utf-8?B?SEhCRVBDMkdlWkhKSzNYcHpFUHpEdUJRQm9FdjRkWXZXb0VGcGNCYjhCTnVE?=
 =?utf-8?B?SGRhckZTRWpLeVY1cXZsL0RUQVM1MGhoTHFiOUp0QUpVaTcrY29tOWVBY0RQ?=
 =?utf-8?B?dEhjTWZ4Sm9LV0JqRk8vMGZZaFFveHFORENmODBCRmZZdk9qM2Y0QkgrUEVQ?=
 =?utf-8?B?Vi9WZk92UkhoWDB4bGQrU0JsYlVOQUFjTmdrb1VGQkljdXhnVzhrNEFLUERT?=
 =?utf-8?B?aW1sMW1vRUlzbzZJaytBazJ2VTNiSDEwQVBqN0xYZ0JPMUlSTlhDcjVoZ25G?=
 =?utf-8?B?N09MdVoyQ0IrN1UyOUttbkJUUjA5K3d1RXJjRUZRYS8xSmlEc2hZWjZ2SFVa?=
 =?utf-8?B?eW9uWE1aM0N5Zkh6RVJCeDJRc1hTZjBDNUJJcEhqQmFHNlhBdzhmdVdtY2FT?=
 =?utf-8?B?cFBrMkYxL2pZS0FnT2lIV2hQSzNwVXQ1K2VPb3VZcElCRENLcUpET0RQaGEv?=
 =?utf-8?B?RHAzMm1VYlAxdE9PcmFtaFVxWllmM2kvZU90VVZKZjRKcUFRdXVKVVo4QmU5?=
 =?utf-8?B?b1hBVFo5Z054VnF0dWJHUXloNlV1KzJwcjBWTFYxeHhHc3ZhZnVnU0lvUDhk?=
 =?utf-8?B?cHJyMjlSdnEremtOWXFXbEJFOGt5OFk2N1lwZ3BBOG11ZE9nMTEzT0dRVEdu?=
 =?utf-8?B?aXNFdlZ5eXNnaVo3b2lMcEp5aThxbE11OCt2NkJTVFYrUDg1dDZCY0NiSE9N?=
 =?utf-8?B?aDZEY2JkaWZUMmNvZmNGbU01aFNwL09sM2JIS2NOSkNldTRkOFU3K2xRejhB?=
 =?utf-8?B?YkEvRFhyYW5KRmI2Zk9Tb2pkbXFWRUFNaGw5SHpuMmRCVTlnUTlRcTdBekxX?=
 =?utf-8?B?YWtoeG0ydmtHbWZONktENkZ3d3k0VlhpcFNXM3pqbmhLYVphU2N3YS85ZkVn?=
 =?utf-8?B?QnZ1cjZQK01EdG9JTXVUNjdjdG9PN2RYQi9EcmhmaitodFFnOHNjRkNaV1dn?=
 =?utf-8?Q?cnpnrBqMilYQ7X7rwFId2fKr8mh8r3iY?=
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?M3FDb1pOSE9MQVNuS3RjcE1tVXFTSysvZUhqK04wcjZLRGIrcWxtdnAzeXo5?=
 =?utf-8?B?R0N3TWNDcmJPdzFqWXVNS3pRb1ZMajZ4NkxlSFp6MXg5eGU1TlpNZGI5bkh1?=
 =?utf-8?B?cVhUVnJEZEtHVVBtb0NReFhlNENCSWRCZzRxS2JodWE5eHRMMVpJT0lqa3Bl?=
 =?utf-8?B?c21EWGZKMDBLNjYrSVBtOHBLQXZZNlN3OTZYWGdNd0JOS2plazdqYUF1eTYr?=
 =?utf-8?B?TkZ0VW5FT1ZHUDQzbCttV3RtNGdNU2Q3amdJS29Gd0htdzI2cGcrOHBKbFV2?=
 =?utf-8?B?UjJ1d2RYOENxZ2Jza3ZIdEEvVzVTbWsyTURkODJSbkFSSnY4eHR1YStucW9L?=
 =?utf-8?B?QVBvZmlRMXFLTFRaK0RHcEtlZ2xXK2svOTlCVWhSdmM0RkJKMFVkWFpOd2hz?=
 =?utf-8?B?V1Z3Ym1KVDZ0bUttdXc0RXhQZlJCSFo4dmhidFV2SzZidVNCSWlMUnpJYk9w?=
 =?utf-8?B?ZGNNZDZGMmVXekJPUmhreUEzS05SZ1FXVm9PUTlzeVVSL3pWMG9Eb1VoY0ZY?=
 =?utf-8?B?a3RTVklBc2NEQ0Z1WmppUXhKTDdidGtlUzNnQTZTOU1TNndUZXJWZEFHN0JJ?=
 =?utf-8?B?b0d4Y0VvQkdVbVBGdVNmWWMxSWJoQXp1dlRpeTArNXJVU2xaN2NxT0hUWm8r?=
 =?utf-8?B?Vnp1Q3dxbWhEaXVPOEpWVW1QaUJ3V3lnMG1YaTg2ak02STBCQlN0clJWenBV?=
 =?utf-8?B?V2lUa01hNUhuQlM3K2hlaHd1V1Z0QXl6eUpXNUZlWThOWDlyWllQOTFXNStt?=
 =?utf-8?B?K2hqZ25mUlVkZGtTTWxnOU4wbllyblBJKzk4L3V1RStWczFBMHdib1NRTFFs?=
 =?utf-8?B?Mm9iR0o3OXhVT0grUHdIK3JQT3VHZk9ZbTBzK3NkUUNwOTFOQkVySit4VmVv?=
 =?utf-8?B?TjYrbExNTG44a0RITlhySDdxQjZqTlVZOHc3a2pScGU5RUR6clNmZlNhb2ZF?=
 =?utf-8?B?bzhZYkhqandWK3FEM3YxeHkrdE4xeFkySnZIcStRNjVCVTNSaGlqUEVYR3Q2?=
 =?utf-8?B?TW1nMnRKMjZLbTEwSEtaL3EzRkYzVjRzMTNTVzRKZ3BjcmE0MzdRcnlGSmtn?=
 =?utf-8?B?MEdJUWo3clBRR3U0YkdjK0Rwd0hxOU03czlqcFFmblpuWTBobllYczYzTHdo?=
 =?utf-8?B?TnhJcVdReXZuUWR5ZGt0VU9mYkRMc0FmM05ZNS9yRC94bDJLY2pQaE8rRkhk?=
 =?utf-8?B?bW1GaU4wRjB3b3kxVVY5Szc3YmFMK25aelJiZ3RYYzR4RTNJSi9RUVpMOHNh?=
 =?utf-8?B?TVJvSDVLdTVJVzBNTEQwMzEzM1dOM00rd09URytOMlZZaDZDaEZSNlFuL2tP?=
 =?utf-8?B?MlUzempxdnlkcnpzUmxlV3RJdVNmK3NxYW5RM2VEa1hDMXB3ZC9iSEpPVnhl?=
 =?utf-8?B?MXpNZzJhdC9GYlBkNnhKUHNBdmtJVE5iMXFBZjBDZ2tPSUFHci9EdE43ak9z?=
 =?utf-8?B?VzlaUHpYQWNZUU5vRC9CREx0Zjl2ZHAxQjFDcFRMRjY0byt4dnNObDJTcnVa?=
 =?utf-8?B?WElJZ2pCeTRvYlYrZUZWMS9laktrTnBtdE13NjE0all6TXdRQUEzcmE3NWVN?=
 =?utf-8?B?K2tDMVNBSVM0R3puU25yY0xsYnd4a1lRNWtrM3V2eUdtRjltVmlUTEgwVVZS?=
 =?utf-8?B?OGJjd1hkaVdxOWJqZU1EZ1I4ZmdRMEMxaEtvcWJvd0FKNHBqM3g3emJ2Q09V?=
 =?utf-8?B?dktVcmxOVWdvMFhTYVVpcjB6SlR1RXNhaXBFL2srNmpZdGYrcEJSUzhyQ21K?=
 =?utf-8?B?eVdYRnVuWm5xSFFoNzFmZm04OVJ2SnNzWHlyK2I5bDVQSkRBRFNnV05QSGRu?=
 =?utf-8?B?MFFta3dVV1J5dUp6T1hOeWc4UDJ1L3RLTFBSTS9ldG9JTit0N055cUlsQ2o5?=
 =?utf-8?B?T0YvdkJDeVJqMXhBMmxtOHUrMk1lYmJSUmlxTHkrbXZ5U251SHozQ0w1bG1H?=
 =?utf-8?B?bUhYRTRYaVhFMXNSbk9IL2ZONzAwYXc1M2pvUDR5R2Qyd0hYYXMxcjRLYnBY?=
 =?utf-8?B?REl0cnlhZ01rQXR2dXFscEtyYlFnMlBGTTNROXRxQ0hQdVlialRkNTlKbmh1?=
 =?utf-8?B?VTRTTkRicko5QldsREVLTHRKc1pycktxWDZGb1lGeFdsd2tjUGdFR3Y0RVd3?=
 =?utf-8?B?QlgrTkM4YUJhdUJKNlA3a1dmNXJJeURxMzZRZUdoOUs4TFhobzE3bElPYysy?=
 =?utf-8?B?eEE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 166ae04d-890f-4351-7924-08de2cf399ca
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 13:56:30.3523
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: QJTp3ZYrvPn7iD1ADH6PcuV0KrxKO0L909dNKbjc5UcQYBamCnpn56G3NtV2uxztCx53ANX+0tRLrLTdBFmdzFAdT+z8mjsipwAQ8U3RDgw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR03MB6216

On 26/11/2025 1:24 pm, Jan Beulich wrote:
> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index 61e2293a467e..76540d77e55f 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -72,7 +72,6 @@ obj-y += time.o
>  obj-y += traps-setup.o
>  obj-y += traps.o
>  obj-$(CONFIG_INTEL) += tsx.o
> -obj-y += usercopy.o
>  obj-y += x86_emulate.o
>  obj-$(CONFIG_TBOOT) += tboot.o
>  obj-y += hpet.o

There's

# Allows usercopy.c to include itself
$(obj)/usercopy.o: CFLAGS-y += -iquote .

which looks like it wants moving too.

But, given that this presumably compiles, doesn't it mean we've got a
search path problem anyway?

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 13:58:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 13:58:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172830.1497920 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOG2U-00045X-1j; Wed, 26 Nov 2025 13:58:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172830.1497920; Wed, 26 Nov 2025 13:58:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOG2T-00045Q-VP; Wed, 26 Nov 2025 13:58:33 +0000
Received: by outflank-mailman (input) for mailman id 1172830;
 Wed, 26 Nov 2025 13: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOG2S-00045K-Ho
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 13:58:32 +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 fd2e42ac-cacf-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 14:58:30 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4779ce2a624so59446015e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 05:58: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-4790adf0b2asm43223625e9.11.2025.11.26.05.58.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 05:58: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: fd2e42ac-cacf-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764165510; x=1764770310; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7db6qDzm8YIm7kDoOgVpJk8fmKjTV73UtbLjlLE9gMY=;
        b=ZNItB5O51/SrTodUsWCccycmyla+Vhn3TbnNU1ZZ/v9JX2pqSF3wviZjKG4knQ6nnt
         tB/0gHYvOr8DHO4GwaD5miaE9ATQD3bVcHXaxvZxfzLRpadqb4QRDiYNS2RLSTSlb9Oo
         ODU14Bh9GVELPUvTby/Vqj7G5Jc8FrEWSWhhbvqQZ+nhn5MaERgxJuiZ5C4AZ75eHgRh
         3uUvRDsIMlwtkSppKI+KPUEvUhcHz6sqwAifx3kutDvr1gAIIx6dton+l8cDvLm9aLql
         Iv53IVxuZUjCbyIrk4fgrNdoEgbKxOx2KL8Wv74e/6Hu4IujvqPRNcx2RjefgIPBnBR0
         fGWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764165510; x=1764770310;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7db6qDzm8YIm7kDoOgVpJk8fmKjTV73UtbLjlLE9gMY=;
        b=Mn4Zo2rokue2Y2yl+66aYrk40CRviFckvfDl2qgX/VgZh3rxmJ0gFDof1VURs9ejeX
         AhBNQNpWBHMBvP2W2LeqS06yzM5twgvasVPZwZkAzc1M+p7FFLJI2nX4pPUGH7q4F4gN
         U6DIVH6FBvHiWjO9HETz0waaZbHRobm9fgr4Amm08uouOLf0ojaxPqhEnk/i9bumz6VB
         2EC1tiAwZMj+2V2EYLksE1CwP25zY34L184b57KqyjO4K5s51RWab7vjpnkebGhEGrmg
         cNjdu02JeOscZ1yYcH31uVE1Agk7Uxt3rPx5CcouIGLL75JFNfhTJI0lbE/kcisyCs4U
         5Azw==
X-Forwarded-Encrypted: i=1; AJvYcCXdAAb9fBNof6N+GO2ZqeWSOcylZAqCmqlu2MEM+pxlF16kuz17r3vhnp6hWM/AmeXRK3+lYWMkBlY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz72Qz90fiPYGA5D4rUovV2uISyu8bD4yFaxsQg3oLSeacfrH0d
	Q1z+uKPPXV2W7GBaYmlwt7tJUYUFo8VV+F8pmJNPQD23uEXose1ZW+uKba2QZPuZwg==
X-Gm-Gg: ASbGncskkVQGCZrC+EZs5/6sQgfksY2SakOvOcXo84aSMp/lm59QOGRMvwVhXc9EQ73
	rM8uCy0UmeQ9Dz4/eYE+MA86waPdW5XQUkgBkpC0YQH7rURLOp1a9GGh7pSPb1NSaumOoJ3rQaF
	auI/B/LyDyx695pJ2BZ3zFI2xen/jnjJtR1twnQEe0/8Zj5VRloTuJY7KWoIvCSpHJlUPqPmeY7
	BGaM1imIRENv65XtzDMV+OhVuyvs+JHzvogQpWS0Dj0pd7xlUIXVFEGlfToNNgzV4rAaY4yoRZH
	LQZ9WkcRvRk2l1Jw7MM93kCc+YWTTOnes6rNc/n33prO0eYUiMOyV/2DJc1IpVzi8qupfesCA3f
	sY6DEz6WXBONXSAIuB06OmcYn6HdF3ZiJkgtU14kh+qJxVxvzVNaHNjxmKCQPP1iOVuHGsvwmUx
	fS9dovfbeDDJc3f4cbCMeaG3tMfp5JGd9MkGUlqMAgSkKDNV8fKpNvNZSyC80VYNHzdGOG/Xbyz
	eI=
X-Google-Smtp-Source: AGHT+IGWm6iAYLsBXmKCkOL+MoZ8EqedCr0JhD8/XYFo+8th9mTr5N+ANt9Oc1gCMVeLMI25QN6jYQ==
X-Received: by 2002:a05:600c:4515:b0:477:3f35:66d5 with SMTP id 5b1f17b1804b1-47904b1fb79mr56360325e9.26.1764165509790;
        Wed, 26 Nov 2025 05:58:29 -0800 (PST)
Message-ID: <3e6d9b74-f606-4774-8767-c71391b9c741@suse.com>
Date: Wed, 26 Nov 2025 14:58:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86: move arch_generic_hweightl() to arch-specific
 library
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: <245fbc16-924b-4fd9-8cbc-a539b569edac@suse.com>
 <76f2d454-ee2b-4aba-a6e5-974b1b2dfbb3@suse.com>
 <859d60ce-165d-416f-a1f1-89ba11de2839@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: <859d60ce-165d-416f-a1f1-89ba11de2839@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2025 14:51, Andrew Cooper wrote:
> On 26/11/2025 1:24 pm, Jan Beulich wrote:
>> diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
>> index 16368a498bb7..a0ee050c931b 100644
>> --- a/xen/arch/x86/arch.mk
>> +++ b/xen/arch/x86/arch.mk
>> @@ -3,6 +3,8 @@
>>  
>>  export XEN_IMG_OFFSET := 0x200000
>>  
>> +ALL_LIBS-y += arch/x86/lib/lib.a
>> +
> 
> Oh, I'd realised it was this easy, I'd have done so straight away when
> adding x86's custom arch_generic_hweightl().
> 
> I assumed it was going to be more complicated getting the order of the
> arch specific lib correct with the generic lib.
> 
> More concretely.Â  Given an x86 lib, we should move things like
> arch/x86/memcpy.S to it.
> 
> Therefore, when we have common/lib.a and arch/lib.a, do we guarantee to
> have arch/lib.a with higher precedence so for matching functions the
> arch specific one guarantees to be taken?

Not with the change above, it would need to become

ALL_LIBS-y := arch/x86/lib/lib.a $(ALL_LIBS-y)

to achieve that, requiring that ALL_LIBS-y won't change into a lazy-expansion
variable. If that's okay (please confirm), I can adjust the patch.

Things would be yet easier if every arch had a lib/lib.a, as then in
xen/Makefile we could simply have

ALL_LIBS-y                := arch/$(SRCARCH)/lib/lib.a
ALL_LIBS-y                += lib/lib.a

Alternatively we could move the setting of ALL_LIBS-y in xen/Makefile to
after the arch/$(SRCARCH)/arch.mk inclusion. I'd be a little wary of that,
though, as it would then be different from ALL_OBJS-y.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 14:02:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 14:02:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172841.1497931 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOG6C-0005kf-Gj; Wed, 26 Nov 2025 14:02:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172841.1497931; Wed, 26 Nov 2025 14: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 1vOG6C-0005kY-Dv; Wed, 26 Nov 2025 14:02:24 +0000
Received: by outflank-mailman (input) for mailman id 1172841;
 Wed, 26 Nov 2025 14:02: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOG6A-0005kS-N7
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 14:02: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 86b06503-cad0-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 15:02:21 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-477b198f4bcso44585475e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 06:02: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-4790552c3c9sm44718985e9.0.2025.11.26.06.02.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 06: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: 86b06503-cad0-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764165740; x=1764770540; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1lLAgBSA1fy/Afxs8CLjI84CtrT7yl5PSkVP+nJMTwM=;
        b=J70fxsgkB97C8Ubk5l1jUuD93vj1FmRcMEYN/02If5NkWpA4rgnnZZSLRSzW19AI3g
         dbx5DxgV8kRa+f2AjaOOv93Io8BldhEGgrWfsvyzVzTXxdUkYePTgREURR0hsRKTTnB8
         DZjyb9LWEwnVJvNM4s5m7cVP3miOomeQnt0/BwCu5lkjEUwe5hL0CP6Rhdkl0cbaRYhY
         t3fRmhLMvXWNG7Z4LVKdDlAkcK51oCxH99k/ITy1BtvtGsJhdwbr3SWRA0MqjYMfqa9P
         kRmuRzqCO5MZAz3a5ELJ9e3mK1TuirMuvvjtCqccQ4tGwjFZodigmxbppJJFbRtiKmrT
         PNcg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764165740; x=1764770540;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1lLAgBSA1fy/Afxs8CLjI84CtrT7yl5PSkVP+nJMTwM=;
        b=K72TVjUxJTcnfrLDudWEzHCn6jwoAODAgmvGUaF5rwO4oLDJpzjmyGG5EN9YoxOQCa
         Xs3m1dkNQh/IHn/RXSnfpBhMfuprriVXOtGKdbabzew3V21+fcDdssmoIuhnqC5+awqm
         2RnbQB1pWGYIrjhNEwn1tGxYkjQTw6IePro9071dYQQFdatQ1Mqo1SGBoV27J9MDHKud
         y1oTmj+tPEMxh67+dqFLcX0I92ZDDCGg5MuIfakvpy2kP3blgaRORECNZJXVFMP4C862
         mrZ/9UpCkePg5OrjP0XO3HmoWXiQ3VivnB8qZEf0cAgwGYbRPpeScapQ7GPql2k6JuHr
         iObg==
X-Forwarded-Encrypted: i=1; AJvYcCV7AdylXO8hHdZdiApgeNXtAgvyYPeS95ofKuguZY7moWuTe0asuI3tPWD+nM9VKbxao7oTnRAStlM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwIh5wHHnNqm2rBQK0k7B8JDWDpY2qoBYbuBBpHP6lAu59xqWrT
	K/VglYe6zfMsR2fFKZ4qPaZyZs3QVftpn85bLFwkmgyhPH8B3+qlMISpslwwkQ3vt7+Iyw8r+Q9
	M3nU=
X-Gm-Gg: ASbGncuuVeun75rhxtdRKX6Xwb5hNXZWljfyEVVZm2+y89OvG5t6uMM5tfWOiILMGwP
	p3PRepTL4obYpfJK86Ztg20vJ+G1uEVmfpOjDoH+mnpigjSILIwyH90/eDE0fupiG+AqBmZ4tiH
	APUGMFq8Am4KPwAUTRSOUIqU278f23JJOMRWdFAUSh9oSYdVrV0C13ALalPXetXFXaZB+Xp4aiM
	TSXPguccp7KdTv+Flcgf2uQHAoWT1UU2H/hmNc/TcMajGIF8o7fH2ioPtJYggYPUTPmEy3BIEQv
	nl2h5haTI19S8qveN9w7gk31MynbZHHXelq8rjNbXJZzhUZYbnPGFeT+Vxb4mBpfwtkjtOI/OYi
	/UKfs7DWxhQul/KL/SxjXFY25b15MlVhYlFQWGmlUw9fZtv0sRcWQE4ldmWSYj/csR3QvyiTgWf
	ZOL5WS6J7BrJsNhHSFWg5RD2XJYKKNyVvWLVmXwKVRWKEKqR7cHcdLMTuH+edAyhxk6udFEWhYP
	Ds=
X-Google-Smtp-Source: AGHT+IFNCN2D10iFa6eTtPEk8TMpPynXFbNzS+5JfetmWeQ/UXRTn83Y23wK1NHZ2/W1oulLJgEq6g==
X-Received: by 2002:a05:600c:4f4c:b0:475:da1a:53f9 with SMTP id 5b1f17b1804b1-477c0184b1emr222785475e9.14.1764165740450;
        Wed, 26 Nov 2025 06:02:20 -0800 (PST)
Message-ID: <bdd09a5f-6f31-46af-9349-1abfefae5590@suse.com>
Date: Wed, 26 Nov 2025 15:02:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86: move / split usercopy.c to / into arch-specific
 library
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <245fbc16-924b-4fd9-8cbc-a539b569edac@suse.com>
 <fd3609bd-6259-4336-905b-732a2f171996@suse.com>
 <3c6af7e8-a295-4e80-b99c-075c21632cc2@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: <3c6af7e8-a295-4e80-b99c-075c21632cc2@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 14:56, Andrew Cooper wrote:
> On 26/11/2025 1:24 pm, Jan Beulich wrote:
>> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
>> index 61e2293a467e..76540d77e55f 100644
>> --- a/xen/arch/x86/Makefile
>> +++ b/xen/arch/x86/Makefile
>> @@ -72,7 +72,6 @@ obj-y += time.o
>>  obj-y += traps-setup.o
>>  obj-y += traps.o
>>  obj-$(CONFIG_INTEL) += tsx.o
>> -obj-y += usercopy.o
>>  obj-y += x86_emulate.o
>>  obj-$(CONFIG_TBOOT) += tboot.o
>>  obj-y += hpet.o
> 
> There's
> 
> # Allows usercopy.c to include itself
> $(obj)/usercopy.o: CFLAGS-y += -iquote .
> 
> which looks like it wants moving too.

It doesn't need moving, and I apparently sent a stale patch. This hunk is
simply missing:

@@ -93,9 +92,6 @@ hostprogs-y += efi/mkreloc
 
 $(obj)/efi/mkreloc: HOSTCFLAGS += -I$(srctree)/include
 
-# Allows usercopy.c to include itself
-$(obj)/usercopy.o: CFLAGS-y += -iquote .
-
 $(obj)/x86_emulate.o: CFLAGS-y += -Os
 ifneq ($(CONFIG_HVM),y)
 $(obj)/x86_emulate.o: CFLAGS-y += -Wno-unused-label

> But, given that this presumably compiles, doesn't it mean we've got a
> search path problem anyway?

Iirc the need for the piece above was because of using __FILE__ with
#include, which now we don't anymore. Or maybe it was a leftover altogether.
Anyway, I don't see there being a search path problem, as #include "..." (as
used now) would better always work.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 14:05:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 14:05:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172850.1497941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOG97-0006gC-Uk; Wed, 26 Nov 2025 14:05:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172850.1497941; Wed, 26 Nov 2025 14:05:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOG97-0006g5-Ru; Wed, 26 Nov 2025 14:05:25 +0000
Received: by outflank-mailman (input) for mailman id 1172850;
 Wed, 26 Nov 2025 14:05: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=fSqE=6C=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOG96-0006fy-21
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 14:05:24 +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 f2bd846e-cad0-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 15:05:23 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM8PR03MB6216.namprd03.prod.outlook.com (2603:10b6:8:27::8) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.12; Wed, 26 Nov 2025 14:05:18 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Wed, 26 Nov 2025
 14:05: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: f2bd846e-cad0-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HsqFfkzrm082+uF7ucepYiB3BNvVDuDFFNqojioEtZ5QFzs80ph8NVTW0scbU5VKolPeV2rBGxfHHXbDsmQn6hgRS/RZxm91PykekiSMqneWiwiZsR5M/v/wh/vjipqtKvqi1GSBP2yRbI/AEETxcpC4Pb0LECFtAUCQFSOFUofjyI5ToeTn0FrAxjxrSnY98CpWI+b9A/EJV96MUvvt6/HmaEfAlxthjyJ8Fd0UfGcnobOTQXChcuh6InPnLYkY7vcKyMcM/Xr/dPcCaXCAUd4euW4GndpSm2lGwhe7N8UgeGSOvT3DBrlqil4ZtgxvcVJhq3GiAvJitvY+ZTfjjQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3ZfwpcTQurA766ntXImfDf3eH9Y0z6qHEQfGaKSaKkE=;
 b=eTiTxLETmo83mNFBLy7ltzGzVmeenIbQ2qeP1PJt7iuHl9GQehEsyZfWhAE6nGy52wwdKkp0P7rVuZLF4NRQYZM/P8XxfuENlsl+r5Nxe1GuwCJxU9xClgO8CYheKJInoJ3/Q5iv5L1KlnwpnPb/IedFebwTsUnHSf+JAY5tA258DQcXTA0Gj4ub7KNfmM2G50KUim93+4PDDoVIyCGZoejwnXsjzoW9OhhS8BINmGP/qZtHmov8SGN584CjR3OpAjFyFoG/fndZjl0/X8uQUirtRBkoM2S+oriIkikJ5PyYxivWEbwJIuU1eiCBqYbQV9GyBxReeP7ZGbVEHTXg/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=3ZfwpcTQurA766ntXImfDf3eH9Y0z6qHEQfGaKSaKkE=;
 b=TZsd6joFXZ2AZIt3dscMBSGRwUaLYOcA6JO1xJe/R+OTzXA6PWsf8HgiNP8/btFY4sbGqqtuR6CtpoyoZPDXdytL8WVwzEGk1tGUrzXmXFyMssh/t66C1etS9D1d4qWblDC071GFEdRJopOl0lgk/QcKIEJFRoK0aBGx4rKNEH8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <afb03d32-c723-457f-8a29-fd2f6c9c69f2@citrix.com>
Date: Wed, 26 Nov 2025 14:05:15 +0000
User-Agent: Mozilla Thunderbird
Cc: 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 1/2] x86: move arch_generic_hweightl() to arch-specific
 library
To: Jan Beulich <jbeulich@suse.com>
References: <245fbc16-924b-4fd9-8cbc-a539b569edac@suse.com>
 <76f2d454-ee2b-4aba-a6e5-974b1b2dfbb3@suse.com>
 <859d60ce-165d-416f-a1f1-89ba11de2839@citrix.com>
 <3e6d9b74-f606-4774-8767-c71391b9c741@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <3e6d9b74-f606-4774-8767-c71391b9c741@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0001.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:62::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_|DM8PR03MB6216:EE_
X-MS-Office365-Filtering-Correlation-Id: d75617ad-97ba-4598-3a7a-08de2cf4d4cd
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?Z0l2ZXJQYmRjZTNMbmNCcmFuUWEvbE9PS28zV1o1RnVVWS9rM3dwV2x6SWFM?=
 =?utf-8?B?dmpzYkQxSlZxSDY5aVgyc0tpTUhsM1o5SUd5Z2IwdTJsd0t0SFcxWGxCNG9T?=
 =?utf-8?B?QnBUWkFtam5la2pWZjA0Ulc1Y2o5WElMYUFHcnozTFZHRGtBNmIxNDBkK0Ru?=
 =?utf-8?B?YlUwdDFIKzZxMHFsTEN1WFpZZDFwbUErazMwWjRyUTJ2ZWoyS0s5bXlyYjhu?=
 =?utf-8?B?a25meERrUFBtK3VVdTNkKzlMQnE5WlNtRFJENGM1YURod2lxdlRoK3EvRm5V?=
 =?utf-8?B?dHBXbE1MZjhIdDdUaXVJbVVkUnRJRTMzTU5mSHlXeThQQ2QvcC9nOGJYVlZO?=
 =?utf-8?B?cUxSUkRrZkI0dlptY2VKdkc5dEpubVhPWmd4ZUViZ29mSUwxaUppRHFEbnZn?=
 =?utf-8?B?dmFGZ1h4VXozZDdteTBTSjNqeE8wNUlVcUN5NjU0VHVEek5hZUsrc3NKMHB5?=
 =?utf-8?B?dDNHZ2IyM3JXdXRQeDRqSFFINlNieVUzNll0WGd5K2MyUEw5elE4OXpzdXcw?=
 =?utf-8?B?VXpFdDY3VGx2cGxYNXVvTUNRblFFKzNTZFMrVWxFdmVFbjAyZ1BOYldWWkJp?=
 =?utf-8?B?Uk0vbE1OdkYvY25kOEdrN2g4M0V0a3pqWnRzcG1VVE5LRnlXV2dsOVhZL2xY?=
 =?utf-8?B?OG12YldqdkQyTG1KbkE1czl0RWZlbEZZWG0rU3Ria3pBQW9QTThSeUlxNVFa?=
 =?utf-8?B?UHFLM0ExdG1semxIOSt2S1lUODJFMWd1U3FxTDQxVUI2TTRRWWc4YmtiRC91?=
 =?utf-8?B?SXhkenRBdzl0enhHRXNUWlk0YnQzK2VjOHdObHFBWUV6US93aGRQNlNtNkhD?=
 =?utf-8?B?a2ptOXNzNXNOdEVRRTNNcW9Qc0hEV3g3QUVEK2JUaXdzZTJQa3lUSDdZUk1R?=
 =?utf-8?B?K3ZiSzdDb0xFNlJqQUZNWkNDMURrSDhsaDFPc0pJb2poK2J3WUZmWHlPbFBE?=
 =?utf-8?B?NlI1L1VROEcrbjc2dWZYbm5nVXVnUFBzdGI3SDczaEtSSGZaQ29XWTYvMUZh?=
 =?utf-8?B?UktEYmQ0U1pvTjlYakhDZ3B4cXJHd0RmNkxHcVpnNGFwcHZ1ei8vSnl3UXZx?=
 =?utf-8?B?OEZVWndpTlFrNVUzZ0VuVXNqcWs2Tjh0L29PTHJ1cDJ3dGMvMi9sTXBjdEhu?=
 =?utf-8?B?NWUraEdvUk9vM3QwZklpdWpKdVZkeUNlK0RNZy90YnYrZ3h6TVR0OUcxbENZ?=
 =?utf-8?B?NDZvcHBIVVhwTS83azYyMUt3cW9xUXViNStTOFIrSGZJbDdMcXlkU25GaE45?=
 =?utf-8?B?cS9CMnV5Nmh6ZmhsL2ZtVllmTmQxYVNKWVQ4djM1WlFCQ3N3cHVyWW52NDg2?=
 =?utf-8?B?djNJaVp3OEN2aXB3b3Q4REd3YXRHNXlyaXQzYktzaHh5VXVqTmYzTklTbWJz?=
 =?utf-8?B?T3JPK293NDNtdURkQWp3VTZ2aVpnNDN5TWFUNm5waVcwMUdwcUxWNW9xRFVQ?=
 =?utf-8?B?cnBxTmhPYlVoc3Z6Uis3N2o1clBTSXVpNFVVL2FRNldhZlNPbzZMNFg3ZVpZ?=
 =?utf-8?B?Zks5ZE8vaEd0eDBrKytCNG1sS3p3SUJzMUtSL3I0d3pmTnJydXFSZjcyUDRs?=
 =?utf-8?B?cUh0N2dsVUlxQmJvMXMwZUJKQS9lcHhjQktucmRoZFRGL1FXTkdJTjFPNXIr?=
 =?utf-8?B?U2ZnRFVBOVlBbTdJMHhaMFBHaEFyVWkvZVFSU0g3SVZzbjdQRFVydmJBMDFY?=
 =?utf-8?B?bU1ocVljV0h1QjB0OVR1d2lXNjB3ZWQvZGNHUm9NdUd1OU43R3lldU9FZ01u?=
 =?utf-8?B?VFp0clU0WkVzY1lrRzNFTHoyTzF3NHRxTjk5K3k5Z09XbWVRcWxWeG1mbEtH?=
 =?utf-8?B?U2hFeXl4ME1MK3dRZzdaRENTY2tQbW1MdlhEa3VRNjNIbGFtL1I4LzFZWmcx?=
 =?utf-8?B?ZnkyVzJLQkg1QkJqYnA5S0l4NjVHYnM1V2Nsdmp0T1J4WlM3MDFyTjdzVXNH?=
 =?utf-8?Q?ZpsM8NsnHVmwWNlTGitPFT3FwXnY8idI?=
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?cWhPR1U2WEIzeFlEWmhzQnNuRXpSbis3dVh6VXZ6QWh0RjRtWXJNVGR6bVNG?=
 =?utf-8?B?aTRLK0ZrSmFvUUxreG54YngrT2YwZ3diRXM3bWk5anV6Z0VZY3VaSGt1MVdz?=
 =?utf-8?B?Q2hTbURRTEhXVEpEYjd3amRKbGhQYVUxb3hwZWRZejZucWlaYVdGWWVCTHph?=
 =?utf-8?B?cC83OEUyT3hUQWpRMXJibXRaeEd3empGMEhpbUVrZE5vbWxobHVMaDB1WVVG?=
 =?utf-8?B?NmFxbnFsUGlGSzBWQi9FczMzcExPYXF0eStNWXoxWEJ6My9sY0VqUEhNMWtn?=
 =?utf-8?B?TStac1cySlZrdTNEMjdOMEI3Y0FCdHRhYXJZUWFoRHI2ZVF0QW04ZFlVWHRK?=
 =?utf-8?B?M2hWa0FEeHA3U1JzTWtncVYvdkxXeGRRaDJJLzM3SUR1T0IvQ0w2VWl0dXpu?=
 =?utf-8?B?enp1SGtPbTA0cy9QWCsyNThJRExML1RkSW5GTmhOYlhwZGxybktPRXZaS3NZ?=
 =?utf-8?B?WmJuQkE2blYrdlE5bU41djlhUHFhd2FVeEFnM0ROVURXWVVyWEFQUjdIWno2?=
 =?utf-8?B?elNCQjFmWjRnYU12VExIZXNxUzF3TUxNNm5NK1N4a1dFZ21uRFNvRjJZWWpD?=
 =?utf-8?B?Zm56b3Q5aWpqNkFISWNSSkhUU3NaTnhqMW9mWE9iZmVhRzlUaXJaWXJrQzZp?=
 =?utf-8?B?ODRuQXJ6a3dVbTlHSENSWmpvK0N3Lys3SDd5cU1QWEN6Rm93VzFxMEEzMGpY?=
 =?utf-8?B?WDduREVRUmw0bC9GdjJiRU9FQUVqWkxhOEJsS2p6M29UdWpjSk9mL3Fyc3ZK?=
 =?utf-8?B?VnN3V3h6MWxMRVcyMTZCM1U5U1VkT0s0SkpFdFllR05CZkdyRmtEdXgyMzJz?=
 =?utf-8?B?SkpXUnQyZkhpVUliZ2U3Q2ZER2RrS2VURlFsUy9LWS9wZ0xJbEhwNXMrQ0J4?=
 =?utf-8?B?Q2pkWnlBQXhyYWZGRm93RDc5Rk1rc1RZYVo3RTE4cGVpOHBLN2IyZklGVlk2?=
 =?utf-8?B?UkdLNlZadm96YUUxMU5yRnJTU1g3ZXZaVUJ2bUZlY1pCenA3dlFYZlJWb0li?=
 =?utf-8?B?K1NnUWRxcTNkNWhRWmlaSlRZZHlvbU9vMHdhSmhKTGJpUGZXVWRKbEdlSmha?=
 =?utf-8?B?MkdhelJVNGJXMDlERUVJSWJNWnBnOEEyN29GbU9tSzRqY0JWRUt0dlVmQXYz?=
 =?utf-8?B?R1FuYjhDL003TUdvZ002L08yQmNzbjgrcnR2UzRRRXc3ZnpVdGF0N2dLZUhG?=
 =?utf-8?B?N0h5Yi9RRVQvNHAvbnFtMHF5Ti8ralZNa3NuMjljTTN6RnN2cW9sOUZqUUV3?=
 =?utf-8?B?TklWeHhqaFc4djEzVHpwMzNhNUxWMTNydzZDUnRUT1d4RGdyZGpGVE5vYUt1?=
 =?utf-8?B?eFNmWFk0VHRYeS8waVlyYjdWTG54cVZHTHhiMGJXbkFQY29oMWlwUVBYZC8y?=
 =?utf-8?B?OHlQbEhkYks5ZW1Pd2VBcWVpY0ViZzhaYVFBUHdDelQ0cnhYUWY1c3NwTmZT?=
 =?utf-8?B?QWJzZERCbWhTQ2FjNkZTaGRLalQ3Q3Q4eE00RDRqTGhBSDJOLytFM3FYQ2lB?=
 =?utf-8?B?OFIydDRKenJmNzhLblMzTS9DV3hZaGJHSHVNYVJjbjZreGV5dEtIbkJOWUNa?=
 =?utf-8?B?TTFlcnZpdjFySGtVdGZERmpnUEFFRkhpSUJHcHl3aWVsdVdsSFlQZ21WcXZW?=
 =?utf-8?B?WGk4V3dQNVkrVUt2V1Z1N3lMV0RmWFZPVCtRL3JKV0wrM1c1MlNnMTN3blUz?=
 =?utf-8?B?N1hPSC9EZDNUbG93Z01XQk1YK1FCM0pTblZNSTB3bGpnVWJGaGhDUk51Y3Yw?=
 =?utf-8?B?U0FSdHhJVis4SjB2SlBjWFl6aENRN1pucHZrc1I2RVYxelk3YkVzWDU4OFN1?=
 =?utf-8?B?ek1MeUloRFV4YmR5Q2U2ZDJqSk1WdjByZzAwTUp4YWNUWUlmVnpURDFwQUxY?=
 =?utf-8?B?L0prRDRlbGVSTWJWamVVakZScEc2MkdqQ2h0Skx1T3UvMVNHQ3FFRE0wNHR1?=
 =?utf-8?B?d2U4ampoeVhuMXlYM0hJSWlFM1RtZ1MyRFZIZkdTcDd5dVRxRERROG1EcUFC?=
 =?utf-8?B?alZwV0N0WGRhQUYzcDNrTUszbU1EUllDQkdWMzl1NFZDejJqZXdzcy9keWJq?=
 =?utf-8?B?TmpnM2pkQmE1UW13SGthcEE4QXo1MGpTdU1qUzF4YmlJZHNGNis5NGl1U1Q4?=
 =?utf-8?B?MGI4ZFl5eTY0bkozY1pQSGwzNzM3WUdweDc2QkJuaUNjUnRPK1pYMFhKSldw?=
 =?utf-8?B?SkE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d75617ad-97ba-4598-3a7a-08de2cf4d4cd
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 14:05:18.8495
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ZpTBlfmFu0nHb+aW09Ua3mentyXUjzSrWQDlHVQZxexBqPNlXJPx6RGsqPpXx+LJrK/W2wC/sLnHh3gZJ4iyit39ViRjqQ2G9Zi1pyYDKf0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR03MB6216

On 26/11/2025 1:58 pm, Jan Beulich wrote:
> On 26.11.2025 14:51, Andrew Cooper wrote:
>> On 26/11/2025 1:24 pm, Jan Beulich wrote:
>>> diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
>>> index 16368a498bb7..a0ee050c931b 100644
>>> --- a/xen/arch/x86/arch.mk
>>> +++ b/xen/arch/x86/arch.mk
>>> @@ -3,6 +3,8 @@
>>>  
>>>  export XEN_IMG_OFFSET := 0x200000
>>>  
>>> +ALL_LIBS-y += arch/x86/lib/lib.a
>>> +
>> Oh, I'd realised it was this easy, I'd have done so straight away when
>> adding x86's custom arch_generic_hweightl().
>>
>> I assumed it was going to be more complicated getting the order of the
>> arch specific lib correct with the generic lib.
>>
>> More concretely.Â  Given an x86 lib, we should move things like
>> arch/x86/memcpy.S to it.
>>
>> Therefore, when we have common/lib.a and arch/lib.a, do we guarantee to
>> have arch/lib.a with higher precedence so for matching functions the
>> arch specific one guarantees to be taken?
> Not with the change above, it would need to become
>
> ALL_LIBS-y := arch/x86/lib/lib.a $(ALL_LIBS-y)
>
> to achieve that, requiring that ALL_LIBS-y won't change into a lazy-expansion
> variable. If that's okay (please confirm), I can adjust the patch.
>
> Things would be yet easier if every arch had a lib/lib.a, as then in
> xen/Makefile we could simply have
>
> ALL_LIBS-y                := arch/$(SRCARCH)/lib/lib.a
> ALL_LIBS-y                += lib/lib.a
>
> Alternatively we could move the setting of ALL_LIBS-y in xen/Makefile to
> after the arch/$(SRCARCH)/arch.mk inclusion. I'd be a little wary of that,
> though, as it would then be different from ALL_OBJS-y.

I think this would be better handled by common code.

Arches are going to want a lib.a eventually.Â  ARM even has
arch/arm/arm{32,64}/lib/ but like x86 they're just simple obj-y += at
the moment.

However, arches shouldn't be forced to make an empty one simply to build.

Does this work:

ALL_LIBS-yÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := $(wildcard arch/$(SRCARCH)/lib/lib.a)
ALL_LIBS-yÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  += lib/lib.a

?Â  If so, I think it's the nicest option.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 14:07:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 14:07:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172862.1497951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOGB5-0007aw-DM; Wed, 26 Nov 2025 14:07:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172862.1497951; Wed, 26 Nov 2025 14:07:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOGB5-0007ap-9x; Wed, 26 Nov 2025 14:07:27 +0000
Received: by outflank-mailman (input) for mailman id 1172862;
 Wed, 26 Nov 2025 14:07: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=HtuU=6C=raptorengineering.com=tpearson@srs-se1.protection.inumbo.net>)
 id 1vOGB4-0007aj-BP
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 14:07:26 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 399535ca-cad1-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 15:07:23 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 8B04C7790B09;
 Wed, 26 Nov 2025 08:07:20 -0600 (CST)
Received: from mail.rptsys.com ([127.0.0.1])
 by localhost (vali.starlink.edu [127.0.0.1]) (amavisd-new, port 10032)
 with ESMTP id BibQTzd0XfcA; Wed, 26 Nov 2025 08:07:19 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 7855E7790B20;
 Wed, 26 Nov 2025 08:07:19 -0600 (CST)
Received: from mail.rptsys.com ([127.0.0.1])
 by localhost (vali.starlink.edu [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id Aq7p-nBmhEW2; Wed, 26 Nov 2025 08:07:19 -0600 (CST)
Received: from vali.starlink.edu (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 4ECC07790B09;
 Wed, 26 Nov 2025 08:07:19 -0600 (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: 399535ca-cad1-11f0-9d18-b5c5bf9af7f9
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com 7855E7790B20
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1764166039; bh=D4QVMlsRByIqVfzo12mK+nBVHl9crz7Fs1tyj79CzbQ=;
	h=Date:From:To:Message-ID:MIME-Version;
	b=Aipig2AqUexl7jUiu7vjInLf//XjaR49SN18AoiJDa558YJvUvD+TyVdkXsJeC78u
	 MCxeQFjza2JUKC+2Syvh6r2Zi/yx3yFa1OzEgKF5fQ9biVqIKrOd7f5rNxrJ+s8vHw
	 FHTjHL8doHckSc4R7JI5jwp4IEhMB/hlv0T5IYiM=
X-Virus-Scanned: amavisd-new at rptsys.com
Date: Wed, 26 Nov 2025 08:07:19 -0600 (CST)
From: Timothy Pearson <tpearson@raptorengineering.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel <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>, 
	Roger Pau =?utf-8?Q?Monn=C3=A9?= <roger.pau@citrix.com>, 
	Timothy Pearson <tpearson@raptorengineering.com>
Message-ID: <1755986020.127148.1764166039180.JavaMail.zimbra@raptorengineeringinc.com>
In-Reply-To: <b915451d-62c9-4128-807a-42b908dbaef4@suse.com>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com> <b915451d-62c9-4128-807a-42b908dbaef4@suse.com>
Subject: Re: [PATCH 3/8] symbols/ppc: re-number intermediate files
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Mailer: Zimbra 8.5.0_GA_3042 (ZimbraWebClient - GC141 (Linux)/8.5.0_GA_3042)
Thread-Topic: symbols/ppc: re-number intermediate files
Thread-Index: 2/rOy079hYQV4M4phLOA1U+lm5WsKg==



----- Original Message -----
> From: "Jan Beulich" <jbeulich@suse.com>
> To: "xen-devel" <xen-devel@lists.xenproject.org>
> Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Julien Grall" <julien@x=
en.org>, "Stefano Stabellini"
> <sstabellini@kernel.org>, "Anthony PERARD" <anthony.perard@vates.tech>, "=
Michal Orzel" <michal.orzel@amd.com>, "Roger
> Pau Monn=C3=A9" <roger.pau@citrix.com>, "Timothy Pearson" <tpearson@rapto=
rengineering.com>
> Sent: Wednesday, November 26, 2025 7:43:17 AM
> Subject: [PATCH 3/8] symbols/ppc: re-number intermediate files

> In preparation to do away with symbols-dummy, re-number the assembly and
> object files used, for the numbers to match the next passes real output.
> This is to make 0 available to use for what now is handled by
> symbols-dummy.
>=20
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Looks good to me.

Acked-by: Timothy Pearson <tpearson@raptorengineering.com>

> --- a/xen/arch/ppc/Makefile
> +++ b/xen/arch/ppc/Makefile
> @@ -16,16 +16,16 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
> =09    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
> =09$(NM) -pa --format=3Dsysv $(dot-target).0 \
> =09=09| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
> -=09=09> $(dot-target).0.S
> -=09$(MAKE) $(build)=3D$(@D) $(dot-target).0.o
> +=09=09> $(dot-target).1.S
> +=09$(MAKE) $(build)=3D$(@D) $(dot-target).1.o
> =09$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
> -=09    $(dot-target).0.o -o $(dot-target).1
> +=09    $(dot-target).1.o -o $(dot-target).1
> =09$(NM) -pa --format=3Dsysv $(dot-target).1 \
> =09=09| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
> -=09=09> $(dot-target).1.S
> -=09$(MAKE) $(build)=3D$(@D) $(dot-target).1.o
> +=09=09> $(dot-target).2.S
> +=09$(MAKE) $(build)=3D$(@D) $(dot-target).2.o
> =09$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
> -=09    $(dot-target).1.o -o $@
> +=09    $(dot-target).2.o -o $@
> =09$(NM) -pa --format=3Dsysv $@ \
> =09=09| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
>  =09=09> $@.map


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 14:09:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 14:09:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172873.1497961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOGCw-00087N-OS; Wed, 26 Nov 2025 14:09:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172873.1497961; Wed, 26 Nov 2025 14: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 1vOGCw-00087G-LM; Wed, 26 Nov 2025 14:09:22 +0000
Received: by outflank-mailman (input) for mailman id 1172873;
 Wed, 26 Nov 2025 14:09: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOGCv-000876-O4
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 14:09:21 +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 80c1e09d-cad1-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 15:09:20 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4779a4fc95aso6640635e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 06:09: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-4790add2648sm50104385e9.4.2025.11.26.06.09.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 06:09: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: 80c1e09d-cad1-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764166160; x=1764770960; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZfkV81bApLUlipGMCw6UbyZn7PzegekKsEcouaraa+A=;
        b=g3gxM6Q4wq7wKkFUxtd6+BeEW+3Lr1HoDv/KZyuMfgK1D8CqDZmdXzLnoIk2xwMMdT
         UWT7NhJw3Jj0g2s1NXuEndt3zbMKGu2/dXZv/5d4fWZ3S5JTvI9kQeDC244axDujUz9S
         kGb/gzy3LWRhs4aSrpw5AaxU2R3NKM2X6Au3OrcR6o6U1Ylenumd69ItLlGhCBkorWeJ
         ju2c8u/xeOZ7p9lcPZHsLLg1w8K5hR5JAEhSZY8H0dau7YnL7yqDMt74b2GOOrF1PbX5
         qZHe1uZ0fj9Sauvkqlfo0G9twwNmN9rYjYgBToTD155lngwt+WhSoqLUETTQWqeij+ol
         Ph6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764166160; x=1764770960;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZfkV81bApLUlipGMCw6UbyZn7PzegekKsEcouaraa+A=;
        b=PhxSGXKjwL67rAF0eR69Zlilg4rnzhftFA0pUuDZZseiWsMFAttSFBTdZz752qt/eu
         OxpKE9DLTVXo5b3YfIp3tKSmLKdj0/vDI5qz8qw37fCtKrAl+GmUWq7e7DajpHrGoMX5
         ag/7OfMya8Semxam3etSzZz7HJHKBUZazAJ+2ZoGm42ngoMxfYnm4ieoMrocxBBPLqrX
         bK1F5kipaqXIZ1IU0X/Rp5ZEGFP7QoHDuo8027YVdrXSPHitJu7KhQ1067O/5+JHFvki
         AdzxiKEt3pNd4HvPSCer15O21ImDEWRzluUeSAeA51pe23/c2jWlqR3u0QSPVQdg3v/W
         iF3A==
X-Forwarded-Encrypted: i=1; AJvYcCW58TWLIAwyNqBu/8dAFqxLDRkLMTR2gfG4shw+p/e26u6UQiEzP+spoBG2P8ZhhfxC3mqH9u18NO0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwzG9IkXHBLP8bB7MBPPDP8+TsPbvQe605Rb0fUx0885Ha9VbcY
	AWvqO3lZFS2akCAhFoRkg3Q40o68tdcs5kmZ7vlekfivZ5+rgzGi8ObkbmR1jdOD9w==
X-Gm-Gg: ASbGncuF2pEj0zMHv2vf9q++kWMUPnS5Ny9AZ8d+5e6pgljxSnzQ2i4re2LMEYXhaPa
	2O0HukeFmDZkVsex2jNO3szOE16n6UlOV+x77nxISrlOWQ036S9YTGx+m6EH+JNJ+289L1NYQJZ
	zvtlNtplCh+qz8A9mvVhWl7ba9hmi7/hmIpeaBMJ/voDH2dlqQN9EKtRbK5jI/tSD12PrULxSci
	mzxAXKBXIaHTXWsSlNN8ZH8X2RqZiEBPuY1Qlk1L4Gq9yNOGRUsnq4wYL6eQ4B1lapgr+HQaBI5
	rESeDQs1pTDj+tQovnM6YslAoi6/ArI8MpmVy6ECYCFTcBed2iG+mbWc/q4wMb9rDewvpsuAUTU
	U2HkJH5c0ksuTQJhitsqo9jN6H0PH7VM/GoNN9Hri568DzdvgK09/wRJn67ryZxxQ2rfbRcSxBb
	3Jxbfg+d1gDAIebD4LTddYEVM9/AwIxUfeKXBYNRzzOxUgWTQZ2W1cfpfFKzzpggTojGiZLydzD
	EKrKLgcaSUQFA==
X-Google-Smtp-Source: AGHT+IGmxEYMUjvLTn+xpQinQ0OpFndmdIeZEJIG1veeTPZeEr0ty50PRDJN6Cc2Cyaln5BCAOetvQ==
X-Received: by 2002:a05:600c:1d14:b0:477:9d88:2da6 with SMTP id 5b1f17b1804b1-477c026ed62mr189689855e9.0.1764166159985;
        Wed, 26 Nov 2025 06:09:19 -0800 (PST)
Message-ID: <0c0cb917-ae36-48c0-83cd-80764a01587b@suse.com>
Date: Wed, 26 Nov 2025 15:09:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86: move arch_generic_hweightl() to arch-specific
 library
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: <245fbc16-924b-4fd9-8cbc-a539b569edac@suse.com>
 <76f2d454-ee2b-4aba-a6e5-974b1b2dfbb3@suse.com>
 <859d60ce-165d-416f-a1f1-89ba11de2839@citrix.com>
 <3e6d9b74-f606-4774-8767-c71391b9c741@suse.com>
 <afb03d32-c723-457f-8a29-fd2f6c9c69f2@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: <afb03d32-c723-457f-8a29-fd2f6c9c69f2@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2025 15:05, Andrew Cooper wrote:
> On 26/11/2025 1:58 pm, Jan Beulich wrote:
>> On 26.11.2025 14:51, Andrew Cooper wrote:
>>> On 26/11/2025 1:24 pm, Jan Beulich wrote:
>>>> diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
>>>> index 16368a498bb7..a0ee050c931b 100644
>>>> --- a/xen/arch/x86/arch.mk
>>>> +++ b/xen/arch/x86/arch.mk
>>>> @@ -3,6 +3,8 @@
>>>>  
>>>>  export XEN_IMG_OFFSET := 0x200000
>>>>  
>>>> +ALL_LIBS-y += arch/x86/lib/lib.a
>>>> +
>>> Oh, I'd realised it was this easy, I'd have done so straight away when
>>> adding x86's custom arch_generic_hweightl().
>>>
>>> I assumed it was going to be more complicated getting the order of the
>>> arch specific lib correct with the generic lib.
>>>
>>> More concretely.Â  Given an x86 lib, we should move things like
>>> arch/x86/memcpy.S to it.
>>>
>>> Therefore, when we have common/lib.a and arch/lib.a, do we guarantee to
>>> have arch/lib.a with higher precedence so for matching functions the
>>> arch specific one guarantees to be taken?
>> Not with the change above, it would need to become
>>
>> ALL_LIBS-y := arch/x86/lib/lib.a $(ALL_LIBS-y)
>>
>> to achieve that, requiring that ALL_LIBS-y won't change into a lazy-expansion
>> variable. If that's okay (please confirm), I can adjust the patch.
>>
>> Things would be yet easier if every arch had a lib/lib.a, as then in
>> xen/Makefile we could simply have
>>
>> ALL_LIBS-y                := arch/$(SRCARCH)/lib/lib.a
>> ALL_LIBS-y                += lib/lib.a
>>
>> Alternatively we could move the setting of ALL_LIBS-y in xen/Makefile to
>> after the arch/$(SRCARCH)/arch.mk inclusion. I'd be a little wary of that,
>> though, as it would then be different from ALL_OBJS-y.
> 
> I think this would be better handled by common code.
> 
> Arches are going to want a lib.a eventually.Â  ARM even has
> arch/arm/arm{32,64}/lib/ but like x86 they're just simple obj-y += at
> the moment.
> 
> However, arches shouldn't be forced to make an empty one simply to build.
> 
> Does this work:
> 
> ALL_LIBS-yÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := $(wildcard arch/$(SRCARCH)/lib/lib.a)
> ALL_LIBS-yÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  += lib/lib.a
> 
> ?Â  If so, I think it's the nicest option.

I had thought of doing it this way initially, but on a fresh build
arch/$(SRCARCH)/lib/lib.a wouldn't be there when the Makefile is read in.
Whether switching ALL_LIBS-y to be a lazy-expansion variable would work
I didn't try; I'd prefer not to change the kind of variable that it is.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 14:10:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 14:10:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172882.1497971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOGDh-00017n-0V; Wed, 26 Nov 2025 14:10:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172882.1497971; Wed, 26 Nov 2025 14: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 1vOGDg-00017g-TS; Wed, 26 Nov 2025 14:10:08 +0000
Received: by outflank-mailman (input) for mailman id 1172882;
 Wed, 26 Nov 2025 14:10: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=HtuU=6C=raptorengineering.com=tpearson@srs-se1.protection.inumbo.net>)
 id 1vOGDf-000876-Cy
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 14:10:07 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9a8dc527-cad1-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 15:10:04 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 8836C7790A35;
 Wed, 26 Nov 2025 08:10:03 -0600 (CST)
Received: from mail.rptsys.com ([127.0.0.1])
 by localhost (vali.starlink.edu [127.0.0.1]) (amavisd-new, port 10032)
 with ESMTP id OnLALyuuFyau; Wed, 26 Nov 2025 08:10:02 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id CF43C7790C9A;
 Wed, 26 Nov 2025 08:10:02 -0600 (CST)
Received: from mail.rptsys.com ([127.0.0.1])
 by localhost (vali.starlink.edu [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id v08kJITkrjZS; Wed, 26 Nov 2025 08:10:02 -0600 (CST)
Received: from vali.starlink.edu (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 9C8B87790A35;
 Wed, 26 Nov 2025 08:10:02 -0600 (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: 9a8dc527-cad1-11f0-9d18-b5c5bf9af7f9
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com CF43C7790C9A
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1764166202; bh=c8UX381jorO4P93MYE0MpDOPABA3uCX7fsTDQ+AcfuI=;
	h=Date:From:To:Message-ID:MIME-Version;
	b=hC3OGxA/XXacnmPDq2ezDcJqxXPwJsN4UNsvo7yKOl0C2bLjCnb1q4fvvzoRIp0HO
	 ojdT6ui4xhLxE0cTQ+DaejBsXYiZI5wPaSWDu5LX8LI4JAiCI1DmZRI9N3DU04QS7e
	 +2qZ9aB2KYDx7+xsnL+Vzrc4cyyPcUO9PAvktzzk=
X-Virus-Scanned: amavisd-new at rptsys.com
Date: Wed, 26 Nov 2025 08:10:02 -0600 (CST)
From: Timothy Pearson <tpearson@raptorengineering.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel <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>, 
	Roger Pau =?utf-8?Q?Monn=C3=A9?= <roger.pau@citrix.com>, 
	Timothy Pearson <tpearson@raptorengineering.com>
Message-ID: <1720419004.127154.1764166202504.JavaMail.zimbra@raptorengineeringinc.com>
In-Reply-To: <8717ed0f-e837-4054-a67b-b41c08449c1a@suse.com>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com> <8717ed0f-e837-4054-a67b-b41c08449c1a@suse.com>
Subject: Re: [PATCH 4/8] symbols/ppc: don't use symbols-dummy
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Mailer: Zimbra 8.5.0_GA_3042 (ZimbraWebClient - GC141 (Linux)/8.5.0_GA_3042)
Thread-Topic: symbols/ppc: don't use symbols-dummy
Thread-Index: mj3TJu3Ey2QHTewB2QpgCog4nkWeGw==



----- Original Message -----
> From: "Jan Beulich" <jbeulich@suse.com>
> To: "xen-devel" <xen-devel@lists.xenproject.org>
> Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Julien Grall" <julien@x=
en.org>, "Stefano Stabellini"
> <sstabellini@kernel.org>, "Anthony PERARD" <anthony.perard@vates.tech>, "=
Michal Orzel" <michal.orzel@amd.com>, "Roger
> Pau Monn=C3=A9" <roger.pau@citrix.com>, "Timothy Pearson" <tpearson@rapto=
rengineering.com>
> Sent: Wednesday, November 26, 2025 7:43:46 AM
> Subject: [PATCH 4/8] symbols/ppc: don't use symbols-dummy

> In particular when linking with lld, which converts hidden symbols to
> local ones, the ELF symbol table can change in unhelpful ways between the
> first two linking passes, resulting in the .rodata contributions to chang=
e
> between the 2nd and 3rd pass. That, however, renders our embedded symbol
> table pretty much unusable; the recently introduced self-test may then
> also fail. (Another difference between compiling a C file and assembling
> the generated ones is that - with -fdata-sections in use - the .rodata
> contributions move between passes 1 and 2, when we'd prefer them not to.)
>=20
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Looks good to me.  Thanks!

Acked-by: Timothy Pearson <tpearson@raptorengineering.com>

> --- a/xen/arch/ppc/Makefile
> +++ b/xen/arch/ppc/Makefile
> @@ -12,8 +12,10 @@ $(TARGET): $(TARGET)-syms
> =09cp -f $< $@
>=20
> $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
> +=09$(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0.S
> +=09$(MAKE) $(build)=3D$(@D) $(dot-target).0.o
> =09$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
> -=09    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
> +=09      $(dot-target).0.o -o $(dot-target).0
> =09$(NM) -pa --format=3Dsysv $(dot-target).0 \
> =09=09| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>  =09=09> $(dot-target).1.S


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 14:12:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 14:12:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172899.1498006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOGFV-00023A-Iy; Wed, 26 Nov 2025 14:12:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172899.1498006; Wed, 26 Nov 2025 14:12:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOGFV-000233-Ec; Wed, 26 Nov 2025 14:12:01 +0000
Received: by outflank-mailman (input) for mailman id 1172899;
 Wed, 26 Nov 2025 14:11: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOGFT-00022i-Ss
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 14:11:59 +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 dee78642-cad1-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 15:11:58 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-477b91680f8so53210305e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 06:11: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-4790adc601dsm51971185e9.1.2025.11.26.06.11.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 06:11: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: dee78642-cad1-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764166318; x=1764771118; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BWnImpsPVMp1QYC7y3gQMF9aRGpYpTE5XIDGvV8M4xE=;
        b=PdhBYO0JGbhBL60+gWEfF3tS0+/ks/ZpqE/t1ZAGlDs/PGE4YcFYpYls+JZv4D0pwV
         V+HLw/JxTMptje/d/Q41ZabX9GupXr6u6jwUdsFuChSzdrzjctUNcqF0K54fYgpsUm5n
         9PcJTcmgRGzJcYqkKGjXTF/in1kxqmmcdIYCrNxuzGHGu3q18XrpIqS2DjLKkwt9/s0X
         7Wd2WOirMWpyo2E8IQkPdz+Ml3SuruSuOgcUi69ao02CH/7LJ6qV1AH+6MPL9sxCkDLe
         Nh+VquukqbgLJLrGzhx30ujuTN7eiBBgC9UY+b1UzuGXdNiA/CDaG9zJvzdQqOQ2oOAV
         eVPQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764166318; x=1764771118;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BWnImpsPVMp1QYC7y3gQMF9aRGpYpTE5XIDGvV8M4xE=;
        b=RtetaPk5hfYHjJ7e/FHEmsJKzArB4xUpvtAPsIJepxHHu8jSk0kKFVX3mQhTl7MK/s
         rP7sX8HkrVoJAekef4hBYOfFxN0vFkSNpFV9pF4BF01kPekhtPRwCN600wjnpKK8DwPS
         fP7rGOi7tctnKfJ8iptI+fxf890EsqwdQJSTuIHIhJnAZGVTd5pr+MeXZ+giWwm6pG3d
         mUQzybL5hcoY09ZhJay2YU/902Ci+ceTbQu/G8Kr49jegupHaNY8DfCP4oOUTLgIwXHA
         39doBY0atetPKmu6JAs6dUJNkW4YOSYKqjJqwc2nCfXZB3iAy32ayLQMdMKap6JiLQet
         Natw==
X-Gm-Message-State: AOJu0YxnsmaI5vht1cazWkznJ7dpLduN5UOej5OK6xWgsSUOuhTIYqDQ
	E3pIgHQsY4jsx0LBUUVBiRoNcyPEL3dAs2o8K8IiV0XRkTkhpkLPCcPkIKaqkcDkQw==
X-Gm-Gg: ASbGncv5K857+6o2BkeVQ6Zwn9AEeBUK+AOhI+4A32HTdxqWtVazF4vw2WNs/3sfgOV
	oMpc/Im2Lv0sfFwcbRBLETtrQlwIUNF19s2pz/Fu3UxKSjUSeYDsr1WPmVEYlF8ENG6EUdwuZd8
	88Akg9Hb8G7/YzqhcI2IfIUh07kexpStend8KA77ZL+ZjgcCkDM6ESipqL94nm0wvYSOKRO1Bat
	q5ia9UjTOT/iEf4uo5Jtj7NxuJg2i2I1p7ZidwNCZTeWIa3P0jNvrup09DauZb3nhHspCIQzfzS
	5z7cAtXuIpwvvMblxOOVfbQDlJgdwF+tKjNbWZBcykE5Xb6ZHUmJCzwcrEBs1y4rXjll9D9JznT
	+/yg12iv1MtDNt/c5imJijZLgjJpcYkvC0a7jaRXfuQHgYpDXWs5RguRhllINm6Yp5d7tO5CW4J
	Vatd7LdSwNcPadwknyrNvor3r788Z1AMuU2O/U+68e1t5heW6vGDr0WMDXVRcqXJ1dnS2Y7J56e
	TBkGxfWo1dPrQ==
X-Google-Smtp-Source: AGHT+IEYk7er0YIgCAhezJP7iTMb94I1gf3nWtxXV8iGZv4m++noWteI/SpevKz/ILUllJ7kvbX9mA==
X-Received: by 2002:a05:600c:1ca5:b0:475:dde5:d91b with SMTP id 5b1f17b1804b1-477c1115ff6mr226282715e9.17.1764166318018;
        Wed, 26 Nov 2025 06:11:58 -0800 (PST)
Message-ID: <fdfe411d-0710-4439-85f3-a77ba71b8afb@suse.com>
Date: Wed, 26 Nov 2025 15:11:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/8] symbols/ppc: re-number intermediate files
To: Timothy Pearson <tpearson@raptorengineering.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
 <b915451d-62c9-4128-807a-42b908dbaef4@suse.com>
 <1755986020.127148.1764166039180.JavaMail.zimbra@raptorengineeringinc.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1755986020.127148.1764166039180.JavaMail.zimbra@raptorengineeringinc.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 15:07, Timothy Pearson wrote:
> ----- Original Message -----
>> From: "Jan Beulich" <jbeulich@suse.com>
>> To: "xen-devel" <xen-devel@lists.xenproject.org>
> 
>> In preparation to do away with symbols-dummy, re-number the assembly and
>> object files used, for the numbers to match the next passes real output.
>> This is to make 0 available to use for what now is handled by
>> symbols-dummy.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Looks good to me.
> 
> Acked-by: Timothy Pearson <tpearson@raptorengineering.com>

Thanks, but for clarification: This doesn't mean very much unless provided
by a maintainer (M: in ./MAINTAINERS). As a reviewer, you'd use Reviewed-by:
to fulfill the purpose set forth in the textual part of that file. Provided
of course you actually did a review.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 14:14:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 14:14:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172910.1498018 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOGHn-0003Ai-Tj; Wed, 26 Nov 2025 14:14:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172910.1498018; Wed, 26 Nov 2025 14: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 1vOGHn-0003Ab-R4; Wed, 26 Nov 2025 14:14:23 +0000
Received: by outflank-mailman (input) for mailman id 1172910;
 Wed, 26 Nov 2025 14: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=HtuU=6C=raptorengineering.com=tpearson@srs-se1.protection.inumbo.net>)
 id 1vOGHn-00037w-E7
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 14:14:23 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3067d70e-cad2-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 15:14:16 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id D1C5D7790A35;
 Wed, 26 Nov 2025 08:14:14 -0600 (CST)
Received: from mail.rptsys.com ([127.0.0.1])
 by localhost (vali.starlink.edu [127.0.0.1]) (amavisd-new, port 10032)
 with ESMTP id G02KVPhasq5x; Wed, 26 Nov 2025 08:14:14 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 1C9677790B09;
 Wed, 26 Nov 2025 08:14:14 -0600 (CST)
Received: from mail.rptsys.com ([127.0.0.1])
 by localhost (vali.starlink.edu [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id coKQXVDL3oKk; Wed, 26 Nov 2025 08:14:13 -0600 (CST)
Received: from vali.starlink.edu (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id E5C7E7790A35;
 Wed, 26 Nov 2025 08:14:13 -0600 (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: 3067d70e-cad2-11f0-980a-7dc792cee155
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com 1C9677790B09
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1764166454; bh=dQG14jVY8WLL5t4esNelo6v+VhdZjf+vXTX1tjIny4Y=;
	h=Date:From:To:Message-ID:MIME-Version;
	b=L8JL9w7guEvfeAiRZGQkwXpmgwVcX4Z/ubS2uIP2uzfiMsw5vy+xzp1nRLPty3G+j
	 N5DatAmFAH05SGAp4P2VDHfTHkT54kvC7YRGAYFgLG1c48nz6jV8Bm3qnTURp+26hi
	 ZP3/35qEF7J4IaHovR9X24RV2PztrAwG09isJS58=
X-Virus-Scanned: amavisd-new at rptsys.com
Date: Wed, 26 Nov 2025 08:14:13 -0600 (CST)
From: Timothy Pearson <tpearson@raptorengineering.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel <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>, 
	Roger Pau =?utf-8?Q?Monn=C3=A9?= <roger.pau@citrix.com>
Message-ID: <1213078822.127214.1764166453810.JavaMail.zimbra@raptorengineeringinc.com>
In-Reply-To: <fdfe411d-0710-4439-85f3-a77ba71b8afb@suse.com>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com> <b915451d-62c9-4128-807a-42b908dbaef4@suse.com> <1755986020.127148.1764166039180.JavaMail.zimbra@raptorengineeringinc.com> <fdfe411d-0710-4439-85f3-a77ba71b8afb@suse.com>
Subject: Re: [PATCH 3/8] symbols/ppc: re-number intermediate files
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Mailer: Zimbra 8.5.0_GA_3042 (ZimbraWebClient - GC141 (Linux)/8.5.0_GA_3042)
Thread-Topic: symbols/ppc: re-number intermediate files
Thread-Index: NRCpIbtBRnrC9SiX3mfOGeIBjpuqXA==



----- Original Message -----
> From: "Jan Beulich" <jbeulich@suse.com>
> To: "Timothy Pearson" <tpearson@raptorengineering.com>
> Cc: "xen-devel" <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>, "Roger Pau Monn=C3=A9" <roger.pau@citrix.c=
om>
> Sent: Wednesday, November 26, 2025 8:11:55 AM
> Subject: Re: [PATCH 3/8] symbols/ppc: re-number intermediate files

> On 26.11.2025 15:07, Timothy Pearson wrote:
>> ----- Original Message -----
>>> From: "Jan Beulich" <jbeulich@suse.com>
>>> To: "xen-devel" <xen-devel@lists.xenproject.org>
>>=20
>>> In preparation to do away with symbols-dummy, re-number the assembly an=
d
>>> object files used, for the numbers to match the next passes real output=
.
>>> This is to make 0 available to use for what now is handled by
>>> symbols-dummy.
>>>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>=20
>> Looks good to me.
>>=20
>> Acked-by: Timothy Pearson <tpearson@raptorengineering.com>
>=20
> Thanks, but for clarification: This doesn't mean very much unless provide=
d
> by a maintainer (M: in ./MAINTAINERS). As a reviewer, you'd use Reviewed-=
by:
> to fulfill the purpose set forth in the textual part of that file. Provid=
ed
> of course you actually did a review.

Understood, and yes, the patches were in fact reviewed.  I will use the alt=
ernate string in the future.


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 14:17:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 14:17:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172925.1498029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOGKh-0003wZ-Ed; Wed, 26 Nov 2025 14:17:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172925.1498029; Wed, 26 Nov 2025 14: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 1vOGKh-0003wS-Bc; Wed, 26 Nov 2025 14:17:23 +0000
Received: by outflank-mailman (input) for mailman id 1172925;
 Wed, 26 Nov 2025 14:17: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=fSqE=6C=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOGKg-0003wK-8o
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 14:17:22 +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 9c26f077-cad2-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 15:17:17 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CO1PR03MB5889.namprd03.prod.outlook.com (2603:10b6:303:6c::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.11; Wed, 26 Nov
 2025 14:17:12 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Wed, 26 Nov 2025
 14:17: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: 9c26f077-cad2-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=P6FvVtPnCD0e82nilnm1yq7uUdtT3mb6rkjYsTtXIjbBwMlBs3Ky8LRmik9bzlD3WvpSkmONPIxsJo0/IDGgYE7eB/KPt0TAexBrUWzFweXTLbsEgOpWsoeiH35YC4wvQ8pC6xqh2wID/L2jwhrRIXlKkqJOc4Zf2j26VMhsIDCGK89D0Wzy6BEZ/77E98ucpWYAlJAm24lY669R0IO8GkPNKVPqTm/wfJPuDv6rVhSg+Pi3Ews4Sua1miXkeA87euNkOggy05l5yJslEoy0UXuDT0OOKcpgMeZiEkIRpVq74+lKdoWHpt9vYWT80eF3t/xYujFhxHxsh4BB8h7vag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MPjEHo0+iKEOOjqbZ3qrrvW/GyACnB49peB6V6Ghifw=;
 b=rQ3jSej12L4LtaL+I3m1KZql4VapBtZkhf72th6XtyrvQ2UY0McaQKmkOoCSJ3u/HNsMAbgXWr/E8/qTQgrFIekr+rDVBEorVs2mVzn7XVAYqtgwUQyZrcMsYidL+HOz9UafO3cLL895xnTSO5Rj56WZmFgpl0fnF5X9tpeHAfkyj4NmfHvZK7UjXHE1SF7MsxRtjxhGAS1aCC2AHfC+CiEesF/nEJNEupWTGhMZ1svKxA7DQclyVmio8nl0+99MbhuE+2kfR24hmKqAECC0ndhU6xq56/wXlrQKaiIk1LRJfQTCW/3EyYdVr6fYYO6Z2Eg8tyM7J0kYb2GC2bgSbg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MPjEHo0+iKEOOjqbZ3qrrvW/GyACnB49peB6V6Ghifw=;
 b=Pel3tRW5nZuWx3dvSsiPMXo28TKVTsa5kj6oX0StOTy2RAy/ju7jFflokzRvO7LOQzVNb3u3SO9TJHOkDa9mYui/0JcwbAUDDFKaS2yRaUuj6qRIiQ8xfkY7Pz5UejDf5rBxyoXnI5rzMI4yxGDgAXHKXIpfQGdGae3sLVodyrk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <ca6d6c10-f757-4abc-9884-ca283a0a9197@citrix.com>
Date: Wed, 26 Nov 2025 14:17:02 +0000
User-Agent: Mozilla Thunderbird
Cc: 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 1/2] x86: move arch_generic_hweightl() to arch-specific
 library
To: Jan Beulich <jbeulich@suse.com>
References: <245fbc16-924b-4fd9-8cbc-a539b569edac@suse.com>
 <76f2d454-ee2b-4aba-a6e5-974b1b2dfbb3@suse.com>
 <859d60ce-165d-416f-a1f1-89ba11de2839@citrix.com>
 <3e6d9b74-f606-4774-8767-c71391b9c741@suse.com>
 <afb03d32-c723-457f-8a29-fd2f6c9c69f2@citrix.com>
 <0c0cb917-ae36-48c0-83cd-80764a01587b@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <0c0cb917-ae36-48c0-83cd-80764a01587b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0052.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:152::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_|CO1PR03MB5889:EE_
X-MS-Office365-Filtering-Correlation-Id: 104f1593-1837-4a5b-73a8-08de2cf67a4c
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?MWVhR241WnZKZURwZm56MEtROCtpaVUvWHVpa1h3Ny9mdVpwb2VGQmsrcU1p?=
 =?utf-8?B?TFp3bFl1R1RaODRkdmJQcGJsQU1KbHV3c1ZiMHFBeFIrL1JrMXVuY0dvVUIw?=
 =?utf-8?B?ME92alBhSG5LeGJ3QVNmbklPU1pibkhTN2MxOE1JL1g5RU12RCtMU1psL3lJ?=
 =?utf-8?B?VGxSS2hQWVVRRDdjYnBSNytOa3RVUEhvclFBTUxEbkZxZUdYZGFxSmZVdHJa?=
 =?utf-8?B?VjV5L3ZtaTRFWTZucGFpM0g5ZHJpaDYrbzhKM0R0UUNIMjdCU29hVGpKMktl?=
 =?utf-8?B?TnJyQWd1WUpIZXBob1JESWpXeTBOcGFqUDRmSUFCRHZsamlBZVBXT2Z5allh?=
 =?utf-8?B?QTBxUXZ5UEw5NUdwc0VybmdHRklJSGZJNWRtOFR4WHptZktGV2FEUnBzTkFD?=
 =?utf-8?B?T296dkRNYWNGZEpEN1dQRVF0US92WlZjbUgwWWdZS0JycEhBTG1xMkpnYzFk?=
 =?utf-8?B?bnZsM2h4UXpweUcrY1d5RTJURTZPeUJIMVlmNEpybm5HWTlCbnJRRDdOMkR0?=
 =?utf-8?B?Y0ZhK2hYN21PTFN0SUpZdThIQkxsMXNwT0VvTkVLQ3BpQXFuV2IyY1NDOWVs?=
 =?utf-8?B?aWsyb0tpdmE0OStJWmNFLzNUSlp4bi91R1VGMWExUUZwaHhKMHdPV0RrUkxs?=
 =?utf-8?B?K2VDckw3SGltbUdmMG1kSzBtVVdMQ2pUakR3Y0VuRisxYWZ4dGJwUk81MW43?=
 =?utf-8?B?US8vWjJWQ3pNTDJRRTZUMjlUbGpRVU14Z3MvTkpWUkdldGtobXZoanFRemhQ?=
 =?utf-8?B?L0g1L2tLZ3ZWemVmaXViUXpsTlB6SFJxbDhnSTRFTSt4bU5jTk1yOFBScUVZ?=
 =?utf-8?B?NndsMVFJenlCUW10aG8rTUlxOGNOek1vTWRESTQyZmpyWExldmlJaGFtWEZF?=
 =?utf-8?B?UXhJTVlhSThFWkRLZHJFRTRqS1piRXJOTmN3ZnVxa1ozd0xNNXZ2a0ZOZk9n?=
 =?utf-8?B?OGdhcDdKOEQ2L1pTRTJxSndCMmJLTzl2MUE4Y3RDTWovRHZkUC9waVZuQnVq?=
 =?utf-8?B?UU1oTHg2WWp1d1VNRGtMM3pqVm8zUW5FazA4Q3lSZm1rWnRudXVRVVcyUmNF?=
 =?utf-8?B?dVhZNCt1NzBXRzNadnFPM2pzKzhNNFNrQWxRTkJQWndQOVpETDNxSURxbklH?=
 =?utf-8?B?bHhIZVA4aHJnNE82aXJWWnpaNHJxVENFVVJoZzBSUklWV0dRdUxHa3RrMDZp?=
 =?utf-8?B?M2Z2TkVmSm9GVlFML2FqK3Z1K0RoSUhaNDlKVThsRzRJTE56TVMvemRuODBG?=
 =?utf-8?B?OFRYVm5lNkorSlBPZEYwNkFWZmFZOHVxczhOOXRoTTdTbWhBZHJsVXRnY1NC?=
 =?utf-8?B?SHhHaFpQN3NWdFp5OHNabFc0T0NsUHlhb29wUGNnNUUzV1VVZmdKZEJJUzNp?=
 =?utf-8?B?bjZuc0dnbWFkVjVTVUsvUWkyQjl3NGtmU2xwU0d3WE1qczJCK1lYbFFBVGIw?=
 =?utf-8?B?SGRPL2FCcHV4Y003QmJDVG1DeHJqRlpxZ00wVVY0Ni9TbGw3SlpsTm5Uc2xm?=
 =?utf-8?B?Y0U3dC9meFhjTGdTTVpvWStzM3VrVVNIVFNzMnNVSGdGQk5OVndoR0lrSVJN?=
 =?utf-8?B?Mld3K1BVOXBrOFcvd25xZkVCQVYrdzJLcU05RW1VSDVCd2NtaUkvalNiSUVR?=
 =?utf-8?B?bGlFL0JEQ1N0Vk9CWkpQR1hORTZWM1JhVG8wSWsxRk8zVEcyQW8xTHFScmFZ?=
 =?utf-8?B?OUFMTmhHZGk5TVNVS0RRWkt3Tm45bTgwNEhaMEtyT0VGNVhIdyszNTZJdDNW?=
 =?utf-8?B?bHArYlEreDVRMzU5ZU9PNUNRUUJ3dFJtL3JGak1NTkV6NGM5Y0xqd3RCaFM4?=
 =?utf-8?B?YlNaNlVJWEk5MENZME4wdVdJMHFRUGIrcTBSejU4RVltQW5KU3o5OWNySTlm?=
 =?utf-8?B?L2pNdWdtVUNFajlpbGtqblhFQVZWTnZVcThOeDViS3F1UGFuWW84VnJVSkh2?=
 =?utf-8?Q?+iMjVyePQ4DMxKlAWqt/HvAvsxeBLbGr?=
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?YzlyR1kyMGRQYlBubDlnckswZXB4dFJoZlVDSmJzamt0NXNyRER4d2dDRkJE?=
 =?utf-8?B?T3JDNlpOY2EvTVBMbnEybmdFNjFjQ2J5MzJLMlRpY2N2VkdwTWZJelVqV2s1?=
 =?utf-8?B?MzVOY1FvTFVrMkFXcUYwbE9WaGVDWEhRTzA1L09EbnhtN1R3RE1xUkt5RHJE?=
 =?utf-8?B?em9vTUUvQnZzS1JQSWZ6c0g3NXlpNGFtRlg4SlVoTWVnS1BxUkZrenAyUUNN?=
 =?utf-8?B?N2wwY1ZJQTVCWHhEcFZZSmxLZlgrVHZoU0twL0RLK255RHdKZVFLTWxNakQz?=
 =?utf-8?B?Q080MmVhOGhUNkp2bFFYbnNxOENsR01YLzNFaXlyTTFBZUtOYVg2ejd6TjAw?=
 =?utf-8?B?dW5GdENFVUJMNGlwUlByVUt5SHpIUmxrRytFaGxYcTYyb05QaExOOW1OcDNr?=
 =?utf-8?B?bXdWaXhJa3hQUDQwVkRTeTJqQlJBNEgxV0cycUlnZWc5amJnTnJnTUdNZzEx?=
 =?utf-8?B?MU1ZVSttM1g5OEZQZVQ2ZE1GSHdSYTZQYUx1UzNBZEcvOWJRbUFhZ1p1KzJH?=
 =?utf-8?B?aDU1aHBLR1JvMlJrWHFmQkx6bUVmSWo0TFNGUEZjVVNPZ2RjUklIS2ttSktS?=
 =?utf-8?B?b3dvV3VjUFA4OFBwbmVPakZ1dC9lVlN3R0g5ZkJjNkxLdDNpTk0yTHJ5SVRI?=
 =?utf-8?B?dkNNTFBZOC9QbUpweWpxeFpRMXVoWWp1K1RESitDNWpFSld6WVlCbHM1b0hL?=
 =?utf-8?B?TmtkakFYd2VZdytHUlBEaXh2UmRseGtDWndoOWUrQTBLOGFlNWluYStuL1Z3?=
 =?utf-8?B?MkRTblhZNkJNMjVKZXVxSWNrdTVQN2hFL2p2TC9td3UvekY0TjdLSmpsWWZq?=
 =?utf-8?B?OW5HV2RqbzNISnNSN0U0S2pwaTFYeVJpaDZqUjZKZ1lGd0VjTFYxeFNXUTN2?=
 =?utf-8?B?enhRQ0lHNldXeExYNzFEbU13aGtTVDdnVW9tZlpWWjhndWo0UjBVeVVTa3Ba?=
 =?utf-8?B?YWgwbkRNUjZDZ2xxWmNhSENmNUF4U3FaeGZrZzN5S3doR2RuL0RQZm45TnVv?=
 =?utf-8?B?M0JkeVdWN1JYUCsraHpkSnY1eGJpUDR0TWh5S3dnWWt4WlFyUFVYeFdkcHlr?=
 =?utf-8?B?QjYyTFRkd2pVa1NXeVNFNytLV0V1MC82SmlCcWNDY0pkL3Y0eGhXZ290TWJu?=
 =?utf-8?B?RWU1dmRxRldVU3kvckwzeWFqYy9JckUrZ1dZSitMem5RdUlpRDIxZHdsT3N1?=
 =?utf-8?B?WTRQOTRXem1mL2srM3E3SEZYcytXVjg5OTgvT2NaZno2ZjNDRjFHVWk2WnR6?=
 =?utf-8?B?eWx4ZjR5eFBqZEpxMzJsbk0xK0s3QTM0VVQ5QytWQ3pwNG02OU01RWU5UXRF?=
 =?utf-8?B?ODZxckpmeGtHa29VcG4wS0llRkZmcWdlRDdZVERWWmFZUjh2MlZjZVlhTDl3?=
 =?utf-8?B?ZTQyRmgvYk5KNnYzb25nRFhxRzhlR3UvQXRrTnpjQ1ZIYk1BdDZycDRUeFRC?=
 =?utf-8?B?V0tFMlZ4NEtuS1YwTnh6aWFORzdDUi9JL2MvVytEa082blhhSGtlUDRYSERP?=
 =?utf-8?B?b2lyTlg4YjNpZm9DOHF4TE96ZFJxeXZlVVVnZm1RN0RqMW1xZjVZME9KbEdj?=
 =?utf-8?B?SC8wMnE4dHA3dzJ2OTIxUlNxd2E4SHdQdW1qYlZuVWZzTW5qVW11ZjJDMDI0?=
 =?utf-8?B?RlRGYWN4ZUM1TFY3STVSYkpmTS9uVkU3dm9EdTBRa0F3L1I5YVZobWM5ckgy?=
 =?utf-8?B?QzdXa3VDS01sMVVzR2IvM28yOWFRdHJyL01wUUFHeXdmRHAzd1hEMEkyMzQv?=
 =?utf-8?B?d3Y4QWhCQTlGcWpIVjZLa3ZpN0NlZVhYNVhMb3p4ZDdIbVlWKzJVNHRnMURZ?=
 =?utf-8?B?VDNxMnRTRDV6ZG5FSEVudEtPQmJkL0dIY0k3STQxbThETDVKRkVpb0ZmdlEw?=
 =?utf-8?B?dkRBVnV1MWZiRytaS3ZQZDNWL0dzVGhwaklwUGlwUmljOFp2WE1EVFQ0M3Zz?=
 =?utf-8?B?N1MzZ1RoUjFLOExKSTZueFhrTndHdFhTM3J0QXB0S2dEQUtRVnJsZmF1SmM0?=
 =?utf-8?B?cm4zMjg4dFFRdnBibzRIcHo3T0NsamdpSmd0bG9uSWVLMkcwN2JobEZtVzRn?=
 =?utf-8?B?QStyRFJBMUxROXZ6bkFlRTVhczFGQWlFci9qbDQzVTZZN1N1MnRGcSszaW1R?=
 =?utf-8?B?dUJxVXhMYkJ2c3hhL1dtRUxaMjhzT0o1N0ptbGUwTVNWSFI5czVzbjMzVFJH?=
 =?utf-8?B?MXc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 104f1593-1837-4a5b-73a8-08de2cf67a4c
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 14:17:05.9229
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7lY0NOv6z+1qG7QgtMwSQU9sh8u0JIbKiD3svy8eQb5IoLsMzxrVjXLnlGH3dyMz/c6g7c1g2qoAa/8vV9jco2FF1LQQjj07c7Vjr9tGcSM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB5889

On 26/11/2025 2:09 pm, Jan Beulich wrote:
> On 26.11.2025 15:05, Andrew Cooper wrote:
>> On 26/11/2025 1:58 pm, Jan Beulich wrote:
>>> On 26.11.2025 14:51, Andrew Cooper wrote:
>>>> On 26/11/2025 1:24 pm, Jan Beulich wrote:
>>>>> diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
>>>>> index 16368a498bb7..a0ee050c931b 100644
>>>>> --- a/xen/arch/x86/arch.mk
>>>>> +++ b/xen/arch/x86/arch.mk
>>>>> @@ -3,6 +3,8 @@
>>>>>  
>>>>>  export XEN_IMG_OFFSET := 0x200000
>>>>>  
>>>>> +ALL_LIBS-y += arch/x86/lib/lib.a
>>>>> +
>>>> Oh, I'd realised it was this easy, I'd have done so straight away when
>>>> adding x86's custom arch_generic_hweightl().
>>>>
>>>> I assumed it was going to be more complicated getting the order of the
>>>> arch specific lib correct with the generic lib.
>>>>
>>>> More concretely.Â  Given an x86 lib, we should move things like
>>>> arch/x86/memcpy.S to it.
>>>>
>>>> Therefore, when we have common/lib.a and arch/lib.a, do we guarantee to
>>>> have arch/lib.a with higher precedence so for matching functions the
>>>> arch specific one guarantees to be taken?
>>> Not with the change above, it would need to become
>>>
>>> ALL_LIBS-y := arch/x86/lib/lib.a $(ALL_LIBS-y)
>>>
>>> to achieve that, requiring that ALL_LIBS-y won't change into a lazy-expansion
>>> variable. If that's okay (please confirm), I can adjust the patch.
>>>
>>> Things would be yet easier if every arch had a lib/lib.a, as then in
>>> xen/Makefile we could simply have
>>>
>>> ALL_LIBS-y                := arch/$(SRCARCH)/lib/lib.a
>>> ALL_LIBS-y                += lib/lib.a
>>>
>>> Alternatively we could move the setting of ALL_LIBS-y in xen/Makefile to
>>> after the arch/$(SRCARCH)/arch.mk inclusion. I'd be a little wary of that,
>>> though, as it would then be different from ALL_OBJS-y.
>> I think this would be better handled by common code.
>>
>> Arches are going to want a lib.a eventually.Â  ARM even has
>> arch/arm/arm{32,64}/lib/ but like x86 they're just simple obj-y += at
>> the moment.
>>
>> However, arches shouldn't be forced to make an empty one simply to build.
>>
>> Does this work:
>>
>> ALL_LIBS-yÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := $(wildcard arch/$(SRCARCH)/lib/lib.a)
>> ALL_LIBS-yÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  += lib/lib.a
>>
>> ?Â  If so, I think it's the nicest option.
> I had thought of doing it this way initially, but on a fresh build
> arch/$(SRCARCH)/lib/lib.a wouldn't be there when the Makefile is read in.
> Whether switching ALL_LIBS-y to be a lazy-expansion variable would work
> I didn't try; I'd prefer not to change the kind of variable that it is.

Hmm.Â  What about:

Â Â Â  $(filter arch%,$(ALL_LIBS-y)) $(filter-out arch%,$(ALL_LIBS-y))

in the link, at which point it doesn't matter about the exact order in
ALL_LIBS-y?

We do a similar trick with UBSAN_FLAGS to force the ordering of -fxxx vs
-fno-xxx.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 14:19:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 14:19:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172935.1498039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOGN2-0004TL-S2; Wed, 26 Nov 2025 14:19:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172935.1498039; Wed, 26 Nov 2025 14: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 1vOGN2-0004TE-O5; Wed, 26 Nov 2025 14:19:48 +0000
Received: by outflank-mailman (input) for mailman id 1172935;
 Wed, 26 Nov 2025 14:19: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOGN1-0004T8-Os
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 14:19:47 +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 f52eddb1-cad2-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 15:19:45 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-477b1cc8fb4so39076955e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 06:19: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-42cb7fd8baesm41114953f8f.39.2025.11.26.06.19.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 06:19: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: f52eddb1-cad2-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764166785; x=1764771585; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SnfpycUEx0DFVsEnYUywi/PGrnaPVM8e1nx+eui0S24=;
        b=O4uR+UwWlt7qf4R+IBlCZH3omWlg6j7gIhoxn6GEvYkz4PVmkuKMvz0fJYOzEE96Nn
         zNU3DWTxM0luFj0bVMxlX/UIw1yEhw0vn5AJlOT3ZL92VbUPdRsOBExNudc8uQMjPfLb
         s5wyAYRfTOhn7OqE+OqZ8pV3SFwzzfKkiNkGC+ZaF4SSjtknKsn+XovBlsPb0afhdlKn
         U9A9bq000yYXSNrvp3K8RJZ4HgnfIptFks7oBlw/WKvyADXeenkvmUjkyTRGawfeDuWX
         7rpVy0+q5WqPl7b2tXgH68b0KvDPbEUrk+OOrbpXv3d2z5aPjoHOAkzFmYB6hMyXkAWP
         qZfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764166785; x=1764771585;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SnfpycUEx0DFVsEnYUywi/PGrnaPVM8e1nx+eui0S24=;
        b=qGGmH8dn4y91AyBdoPKb1q/q1fSbbDNi0tWWQxTyxdhGS2sftwQAgEYr2UoJstkqcs
         1ADcN5749AcUYHO5iAvdPak6C8voKvvo5emy4q+LQ+fC+VP9CTVJjYvNjFQkMkMFhfMB
         3b7ZWktngYVEpNSxMwMJyzAudHbK81TZMJOJTPGQstVluKDXk4Lh+rt3ORXAl4z6Wp2W
         /Dp0EjWxplwkYa0nfa4ZJJd9UJjOcedldHHf95NRHR74Yt3ha+Ji6wQv89rswnwm9tgl
         s/zqUcQpBBXvDNmxUuiJ8cyml6dsE1A8cD+mqOsjOiCcfXO7WAiw4hLmKTM56NGzn/eL
         /k0w==
X-Forwarded-Encrypted: i=1; AJvYcCVgvB9o3w3HnSXZNCbjEISjD96CLRMiwBly2tNvlXgTSY6OKz31TaZIYZqaAgHgw9cXAgiLm0XpRDY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzSwd4Rb64SYq0wpfiy31xDSgLloV7QC+DAKD+5kEG4JWZke68P
	gZuPv875BjtmUg7L4/kECWv9JnYVm7k1BNyswBVAz/0HA1hBvsHIiT0nMZW+HAZ0ow==
X-Gm-Gg: ASbGncvgJxBAvbFLzmoKDtsj4MjwUYHEus07h0B5/jdIxyvwMEIKmcX4lWaceFjjn6c
	TNz32S9038hTBqtksYTtJFOuMlwsvEVlr/qlVuHSt+YYZ0newmmymVd4NZh3uKWBSQfEzXLKj1i
	0xvORtpr8MBaZP+CmlMB+4JTizSrOzqPVW3UoUbzsgywD4uQuC9t5/Gs3Ftv2ytAbG35opSsU04
	0AZ0O59W0dWExxRSsBGJOy2WxYn76a+WH/Ky3+17CmeMo+oZvjIeeTH2zEa4/WY37pMd3d7cUw8
	BsjKO6eORYLwHCy6nJkHMnZhaU5vMa4U80GkkzFRwvMVDH0pwFm09Ny1uoEWglPCNKHYXBGuQn7
	X5PQZ4QKHGM8qkJ/9gwPIKo30GKqzG+X7cULifZ1nFz/Wk4pdZlEIoRI4nAfzoWn7DCGNR9wwUJ
	Hd6B5ZI9DibOYyCVn2y1BNKsVqvuKeg8+BqxP35Yrnatqfr7M5PCB6RdExZRxdfjggeFLXvDm60
	2f6sbYbtME/FA==
X-Google-Smtp-Source: AGHT+IGLJXZhgry7rv1x6LZJppuNP6BfrDg2XnDUlmJejBKRlzD/R/GkznPBYx9Q4hVANyxiMQSmFQ==
X-Received: by 2002:a05:600c:5252:b0:45d:e28c:875a with SMTP id 5b1f17b1804b1-47904b248demr77773925e9.31.1764166784829;
        Wed, 26 Nov 2025 06:19:44 -0800 (PST)
Message-ID: <ab8dc060-7707-4ff3-a413-730555aefeee@suse.com>
Date: Wed, 26 Nov 2025 15:19:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] x86/amd: Use setup_force_cpu_cap() for BTC_NO
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: <20251126132220.881028-1-andrew.cooper3@citrix.com>
 <20251126132220.881028-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: <20251126132220.881028-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 14:22, Andrew Cooper wrote:
> When re-scanning features,

What exactly do you mean with this, outside of XenServer (i.e. upstream)? The
only thing I can think of is recheck_cpu_features(), which calls identify_cpu()
and hence init_amd(). Thus ...

> forced caps are taken into account but unforced
> such as this are not.  This causes BTC_NO to go missing, and for the system to
> appear to have lost features.

... I don't really follow where features might be lost.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 14:21:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 14:21:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172945.1498050 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOGOn-0005zG-6n; Wed, 26 Nov 2025 14:21:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172945.1498050; Wed, 26 Nov 2025 14:21:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOGOn-0005z9-1w; Wed, 26 Nov 2025 14:21:37 +0000
Received: by outflank-mailman (input) for mailman id 1172945;
 Wed, 26 Nov 2025 14:21: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOGOm-0005xk-4j
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 14:21:36 +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 364232c9-cad3-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 15:21:34 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-47796a837c7so45120225e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 06:21: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-479040bd209sm45580175e9.3.2025.11.26.06.21.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 06:21: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: 364232c9-cad3-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764166894; x=1764771694; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YO4eTL+C31yjawiXcmtfWsOCMoReZA0ETxcYHO1pxWY=;
        b=X2KCbFjNi55BjzNY2LLl2cncX7XTVwFXSsUtuHzMLcYzYDA8VVRy0X2gEPekZjuL69
         7OATKstSkCyYpgRL3AyOmN2NjLQsnCihM9ktsnWfaGelJyE/Rv35mDNSLpruCmF29mmj
         WHboZhi3FDtRc4povwl0zLB20el1cQR/GV1Jykap4OsAtBSGdJktkePBUh/uk/bODuq/
         dgGp/6nATwZYeNOxXYANb9Bha43NT44rt35FVGI6xnh7ibCODuGVXKgvTAGzIgOZGDcg
         h4ZMptyUA7jdMli8xqihGRTr3cvfX3xg1jY0Q2POVCQCxcGXf7s6lH22mt/TYr8aWBSQ
         o0GQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764166894; x=1764771694;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YO4eTL+C31yjawiXcmtfWsOCMoReZA0ETxcYHO1pxWY=;
        b=nIihOAS/h2Crbhu9Pu/rztDKd5qQ37zVLmk7RRApHHdoAt5QrGPJERj2VbWYuTVme/
         8I4JhDGI2EIiKqmdZUPgLMuYofTBJpxWihjrN3l5VNr0o5ThOx+mF5tztA9+BmAkqJq6
         QNzwHe+0E8n7azlWL6I43WKiIk5ZlBPJwX4hgv/uNrj0nErhDFW7C+DcnVxAuftOyll9
         ONqtU2vSOtvJ0vSq1g1U1svpdraRnSgmsSWEoujS09BPs1FWDLIiJY+bHSF8uB3AM2L4
         Nybm/rp+31CWJltBxM4joZHh8xPe0Ix4m3pmQaHBMP/H8hVHex+6b38UfS39ELVNlGUj
         RxxQ==
X-Gm-Message-State: AOJu0Yxwa+oK8fZ8QpBVoH+xIz2vpQzvce8OqqvzqPwOzzIo6nhlafvc
	DZq8QzlthMWAVayQZ+YHvSHBQ64TiSK3gli5FZlbV8YFB41v85NbrI2Oku3b3X5TIg==
X-Gm-Gg: ASbGncsmVuc69EQ1b6E23KoHp3kLqUX58yMef261Z67+JVtOINXYLIxc/mUJ323xplD
	vsOHnrnwSp8o0nhhZ7mBpWIzTHaYk+R5rLz2rZY+gTC6o07u+MkfFsuBR6AEH6vwEdJBGSvQjDT
	gSE1SvWsA10JWAxx0iuD0zj0ugLT0hhU2AebtCaDANmqZPmRjZ/Mb24D6T9B2cUSgApbA+Vpydt
	eZLEdzp3HGZ17BVUFWP9DRxU8BHcbOMOT9MSUVq6IlFpjPJH4rq4wLXS4CZLrPh6V1sK3dIiLw1
	AsYI/j1XNcBkYMclbugO+DI1A7XaiH3E00F82BYlTIyz30eryu5WwhFChX2oIMmZTVgw5cfrKZ2
	OmyIK+CKY1s79pqgx3baB2quG8FC5+tdS7iJqznNMI4S6J6+einaQDBwIhEV/+OX5HEI7ks5Bga
	H3cNj8gXld/AA5S06lqupB7eBQfxP4g2CIZpIMfGn4393SYa6lHcYADTYi+K4DiAQ0PxhSDfgbO
	kmImitYFutYAQ==
X-Google-Smtp-Source: AGHT+IGKFSUmiWnmOqoOmdrLamdowuhWgq45/k9GWez0S3tRzROSagkv+jsHjABkT5Pn72Mn+gFRJw==
X-Received: by 2002:a05:600c:4746:b0:477:1bb6:17de with SMTP id 5b1f17b1804b1-477c01e2521mr214170625e9.30.1764166894093;
        Wed, 26 Nov 2025 06:21:34 -0800 (PST)
Message-ID: <6de82773-c084-49e6-b4b4-466a35583ed8@suse.com>
Date: Wed, 26 Nov 2025 15:21:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/8] symbols/ppc: re-number intermediate files
To: Timothy Pearson <tpearson@raptorengineering.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
 <b915451d-62c9-4128-807a-42b908dbaef4@suse.com>
 <1755986020.127148.1764166039180.JavaMail.zimbra@raptorengineeringinc.com>
 <fdfe411d-0710-4439-85f3-a77ba71b8afb@suse.com>
 <1213078822.127214.1764166453810.JavaMail.zimbra@raptorengineeringinc.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1213078822.127214.1764166453810.JavaMail.zimbra@raptorengineeringinc.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 15:14, Timothy Pearson wrote:
> ----- Original Message -----
>> From: "Jan Beulich" <jbeulich@suse.com>
>> To: "Timothy Pearson" <tpearson@raptorengineering.com>
> 
>> On 26.11.2025 15:07, Timothy Pearson wrote:
>>> ----- Original Message -----
>>>> From: "Jan Beulich" <jbeulich@suse.com>
>>>> To: "xen-devel" <xen-devel@lists.xenproject.org>
>>>
>>>> In preparation to do away with symbols-dummy, re-number the assembly and
>>>> object files used, for the numbers to match the next passes real output.
>>>> This is to make 0 available to use for what now is handled by
>>>> symbols-dummy.
>>>>
>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>
>>> Looks good to me.
>>>
>>> Acked-by: Timothy Pearson <tpearson@raptorengineering.com>
>>
>> Thanks, but for clarification: This doesn't mean very much unless provided
>> by a maintainer (M: in ./MAINTAINERS). As a reviewer, you'd use Reviewed-by:
>> to fulfill the purpose set forth in the textual part of that file. Provided
>> of course you actually did a review.
> 
> Understood, and yes, the patches were in fact reviewed.  I will use the
> alternate string in the future.

Then still for the ones here: May I flip them to R-b, meaning the patches can
in fact go in without anyone else's (i.e. a REST maintainer's) ack?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 14:25:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 14:25:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172956.1498059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOGSE-0007My-JD; Wed, 26 Nov 2025 14:25:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172956.1498059; Wed, 26 Nov 2025 14:25: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 1vOGSE-0007Mr-Gb; Wed, 26 Nov 2025 14:25:10 +0000
Received: by outflank-mailman (input) for mailman id 1172956;
 Wed, 26 Nov 2025 14:25: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=HtuU=6C=raptorengineering.com=tpearson@srs-se1.protection.inumbo.net>)
 id 1vOGSD-0007Ml-1b
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 14:25:09 +0000
Received: from raptorengineering.com (mail.raptorengineering.com
 [23.155.224.40]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b4d8a782-cad3-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 15:25:07 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 824CB7790D36;
 Wed, 26 Nov 2025 08:25:06 -0600 (CST)
Received: from mail.rptsys.com ([127.0.0.1])
 by localhost (vali.starlink.edu [127.0.0.1]) (amavisd-new, port 10032)
 with ESMTP id kOh24_SIDnvO; Wed, 26 Nov 2025 08:25:05 -0600 (CST)
Received: from localhost (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id B28A57790E59;
 Wed, 26 Nov 2025 08:25:05 -0600 (CST)
Received: from mail.rptsys.com ([127.0.0.1])
 by localhost (vali.starlink.edu [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id 4lILqfeyHDET; Wed, 26 Nov 2025 08:25:05 -0600 (CST)
Received: from vali.starlink.edu (localhost [127.0.0.1])
 by mail.rptsys.com (Postfix) with ESMTP id 8344E7790D36;
 Wed, 26 Nov 2025 08:25:05 -0600 (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: b4d8a782-cad3-11f0-9d18-b5c5bf9af7f9
DKIM-Filter: OpenDKIM Filter v2.10.3 mail.rptsys.com B28A57790E59
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=raptorengineering.com; s=B8E824E6-0BE2-11E6-931D-288C65937AAD;
	t=1764167105; bh=VY8Yn0305rHKYhG2eoCWBXzlFAw6xEYpgO57TDu/nH8=;
	h=Date:From:To:Message-ID:MIME-Version;
	b=FxnyqkgSgo8FcMF0BqUAAnEzsODdun3CFi2KQvMdcQVnUuZQNcO4QknCDsFgGjCPa
	 AtRP3qvY+IBDIvX2/tYSe0D3z7hPXW98LBRza0ftiW8mwuxbOb8LRk5AFYEsbK/T0G
	 43DOOUs2GEOl4bhUPLs8fAm/28By6UHApwho3oZA=
X-Virus-Scanned: amavisd-new at rptsys.com
Date: Wed, 26 Nov 2025 08:25:02 -0600 (CST)
From: Timothy Pearson <tpearson@raptorengineering.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel <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>, 
	Roger Pau =?utf-8?Q?Monn=C3=A9?= <roger.pau@citrix.com>
Message-ID: <834118820.127247.1764167102624.JavaMail.zimbra@raptorengineeringinc.com>
In-Reply-To: <6de82773-c084-49e6-b4b4-466a35583ed8@suse.com>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com> <b915451d-62c9-4128-807a-42b908dbaef4@suse.com> <1755986020.127148.1764166039180.JavaMail.zimbra@raptorengineeringinc.com> <fdfe411d-0710-4439-85f3-a77ba71b8afb@suse.com> <1213078822.127214.1764166453810.JavaMail.zimbra@raptorengineeringinc.com> <6de82773-c084-49e6-b4b4-466a35583ed8@suse.com>
Subject: Re: [PATCH 3/8] symbols/ppc: re-number intermediate files
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Mailer: Zimbra 8.5.0_GA_3042 (ZimbraWebClient - GC141 (Linux)/8.5.0_GA_3042)
Thread-Topic: symbols/ppc: re-number intermediate files
Thread-Index: NENqvzTugVoYskUPh7CdLQMHcHIb5w==


----- Original Message -----
> From: "Jan Beulich" <jbeulich@suse.com>
> To: "Timothy Pearson" <tpearson@raptorengineering.com>
> Cc: "xen-devel" <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>, "Roger Pau Monn=C3=A9" <roger.pau@citrix.c=
om>
> Sent: Wednesday, November 26, 2025 8:21:31 AM
> Subject: Re: [PATCH 3/8] symbols/ppc: re-number intermediate files

> On 26.11.2025 15:14, Timothy Pearson wrote:
>> ----- Original Message -----
>>> From: "Jan Beulich" <jbeulich@suse.com>
>>> To: "Timothy Pearson" <tpearson@raptorengineering.com>
>>=20
>>> On 26.11.2025 15:07, Timothy Pearson wrote:
>>>> ----- Original Message -----
>>>>> From: "Jan Beulich" <jbeulich@suse.com>
>>>>> To: "xen-devel" <xen-devel@lists.xenproject.org>
>>>>
>>>>> In preparation to do away with symbols-dummy, re-number the assembly =
and
>>>>> object files used, for the numbers to match the next passes real outp=
ut.
>>>>> This is to make 0 available to use for what now is handled by
>>>>> symbols-dummy.
>>>>>
>>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>>
>>>> Looks good to me.
>>>>
>>>> Acked-by: Timothy Pearson <tpearson@raptorengineering.com>
>>>
>>> Thanks, but for clarification: This doesn't mean very much unless provi=
ded
>>> by a maintainer (M: in ./MAINTAINERS). As a reviewer, you'd use Reviewe=
d-by:
>>> to fulfill the purpose set forth in the textual part of that file. Prov=
ided
>>> of course you actually did a review.
>>=20
>> Understood, and yes, the patches were in fact reviewed.  I will use the
>> alternate string in the future.
>=20
> Then still for the ones here: May I flip them to R-b, meaning the patches=
 can
> in fact go in without anyone else's (i.e. a REST maintainer's) ack?
>=20
> Jan

Yes, for both the [3/8] and [4/8] patches which I have personally reviewed.


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 14:32:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 14:32:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172971.1498068 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOGZU-0000mL-Cn; Wed, 26 Nov 2025 14:32:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172971.1498068; Wed, 26 Nov 2025 14:32:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOGZU-0000mE-AF; Wed, 26 Nov 2025 14:32:40 +0000
Received: by outflank-mailman (input) for mailman id 1172971;
 Wed, 26 Nov 2025 14:32: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=K59t=6C=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vOGZT-0000m8-SG
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 14:32:39 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c1f581bd-cad4-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 15:32:38 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-b73875aa527so1093860966b.3
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 06:32:38 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b7654fd4e51sm1910917566b.42.2025.11.26.06.32.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 26 Nov 2025 06:32: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: c1f581bd-cad4-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764167558; x=1764772358; 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=Ih8Jw4ZF1lvkp7QX6BxfjUp1hNpvldIwPDXhORNP4nU=;
        b=aY/+VnCDhGMpig00rXqNoNVCX26PjUobSY2NT8kZmbYc0XSfuhoowW9r4GRWpJD7Dn
         XssVEGlqgw7G4VTmhmG5bqvojFuymvKsqOQwfEH3fv7uX1xMtyoCAQ1CBgtuTrvKRPYF
         dZMVWMq4bLr+kcxrrAFLqx+UrP1PLZO09PzZe5ZQ6ABCHrY5u64BT+16ci9/FGIywG/h
         /QBsjl5m28AlmOoOmU8gBzxif6K4Td8Az/6Us6ZAu/YvBqlzsmmixt+mTbYXOzlZAQfU
         EjgE31nWzvDLbCoDay/JCvw4XiyQ4BjZAlaWPXOBYut0Dz94xUd7GqCMAwhM5NdnsOyZ
         6u3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764167558; x=1764772358;
        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=Ih8Jw4ZF1lvkp7QX6BxfjUp1hNpvldIwPDXhORNP4nU=;
        b=pT3dqDPSuPLWaPFkNI645sWaSsVqPiwiYEIBWhVAWSMH/QxX3lV9FyveITNlUeNE36
         UlTFaeteeQJ3iJbsu+MNhvgTjN0rmv79r/S9X14KsxS/7C3JPsJJCmxyGurazU/k169C
         yajF4tjdq6O8ALgGTIUknOVjP2EcQS0L68ghFYpAqBLzvhFB7KH8ieVusfRStrgpj6L6
         Jpmnph9jA7+BdVyXUsJSYj+otmG6AYcirmmyuyYbH38fMafPnEljDeNOWB9vJFBXwS0j
         WQW/wSdEIb8OtmTI1mFkx58u1RFtf4tQ4b9Q/fnzYHKSV+g4chnIhZidkmhVBGscUTWY
         pGLQ==
X-Gm-Message-State: AOJu0Yz1ggrhpq78gFYrejcXMIKa/ulTbId85KM6Fcbu2ZcUKKfXFnRA
	8S00pOg3lV3Ybzt+tMTa2VlcFJ2X8sIbKuiN0OYcDCrQdccG0IzlE60OMwQ4Q0pd
X-Gm-Gg: ASbGncuQNi9fnVf/hrGtR+xd2TpITdUjqlKRXSbpsyz/zFnsLFFsxN5hY7jGDxera7H
	X/Mi0pp7EEsk37prEfUgAuqO+6Jr5pPrsWQ+NEqeS2g1x/e5cKH7kT+h3uhwbTSZWxliR1HCYHo
	yGoICo64RqWyu455XcH3+Z96zum4/AKhlFA8kLkMiLYMlUG3JFhTTgHkflyFUyJG2+1KbHDl1PK
	p7Eo/n4EXBJjrcNsCgo6gVlVeBBBfVxba0nkwKjCxUljgdn/dqC7VyDzmxktip1qui23xOaZR+W
	dfgZQWAA5NlCE64QWEFScs54NubUkBzi+D+8OYHVjfu0l0fyqfOTvl/kOEHSbi27ZTkgzPYR5V9
	2yd/1o9noEh6XREKsTOhOk+lm1m/juN4kVdrtFoqNiFMqW9u2d898O3Z07gKhqdhrxZGZ8+uEMj
	aahtoxjOUDdTTfU64PGpbl4TqMAtWICTtssGfjYyUK++t1tC9QQLY=
X-Google-Smtp-Source: AGHT+IFFr1XFNAdmJqexDmyUubFO7nIEbaRx2nmHkzxBsJ0W8r8WsBix/CeEMPT7XTFN7uOSgBVbaQ==
X-Received: by 2002:a17:907:3f1f:b0:b76:36ee:376 with SMTP id a640c23a62f3a-b76718c2fecmr2250735766b.54.1764167557616;
        Wed, 26 Nov 2025 06:32:37 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v2] xen/domain: introduce generic functions for domain struct allocation and freeing
Date: Wed, 26 Nov 2025 15:32:29 +0100
Message-ID: <b5c703a64c616d6321f8a98cd28f0659838d41df.1764167337.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

From: Roger Pau Monne <roger.pau@citrix.com>

Move x86's free_domain_struct() to common code since it is shared between
architectures.

Move the x86 version of alloc_domain_struct() to common code as most of the
logic is architecture-independent. To handle the remaining architectural
differences, introduce arch_alloc_domain_struct_bits() for x86-specific
allocation requirements.

No functional change.

Suggested-By: Jan Beulich <jbeulich@suse.com>
[Introduce an arch-specific function instead of using a weak function]
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
- CI test results: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2180836457
- Introduce an arch-specific function to handle differences between arch-es
  in domain structure allocation requirements, instead of relying on a weak
  function.
- Add Suggested-by: Jan Beulich <jbeulich@suse.com>.
- Move free_domain_struct() to common code.
- Update the commit message.
---
 xen/arch/arm/domain.c                | 17 -----------------
 xen/arch/ppc/stubs.c                 | 10 ----------
 xen/arch/riscv/stubs.c               | 10 ----------
 xen/arch/x86/domain.c                | 15 ++-------------
 xen/arch/x86/include/asm/pv/domain.h |  3 +++
 xen/common/domain.c                  | 23 +++++++++++++++++++++++
 6 files changed, 28 insertions(+), 50 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index ab78444335..3e3a1fb9f5 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -480,23 +480,6 @@ void startup_cpu_idle_loop(void)
     reset_stack_and_jump(idle_loop);
 }
 
-struct domain *alloc_domain_struct(void)
-{
-    struct domain *d;
-    BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
-    d = alloc_xenheap_pages(0, 0);
-    if ( d == NULL )
-        return NULL;
-
-    clear_page(d);
-    return d;
-}
-
-void free_domain_struct(struct domain *d)
-{
-    free_xenheap_page(d);
-}
-
 void dump_pageframe_info(struct domain *d)
 {
 
diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index 75ebcae5e2..9953ea1c6c 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -147,11 +147,6 @@ void startup_cpu_idle_loop(void)
     BUG_ON("unimplemented");
 }
 
-void free_domain_struct(struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
 void dump_pageframe_info(struct domain *d)
 {
     BUG_ON("unimplemented");
@@ -269,11 +264,6 @@ void vcpu_kick(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-struct domain *alloc_domain_struct(void)
-{
-    BUG_ON("unimplemented");
-}
-
 struct vcpu *alloc_vcpu_struct(const struct domain *d)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 340ed3cd6c..fe7d85ee1d 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -121,11 +121,6 @@ void startup_cpu_idle_loop(void)
     BUG_ON("unimplemented");
 }
 
-void free_domain_struct(struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
 void dump_pageframe_info(struct domain *d)
 {
     BUG_ON("unimplemented");
@@ -243,11 +238,6 @@ void vcpu_kick(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-struct domain *alloc_domain_struct(void)
-{
-    BUG_ON("unimplemented");
-}
-
 struct vcpu *alloc_vcpu_struct(const struct domain *d)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 3a21e035f4..34a02f089e 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -463,10 +463,8 @@ void domain_cpu_policy_changed(struct domain *d)
     }
 }
 
-struct domain *alloc_domain_struct(void)
+unsigned int arch_alloc_domain_struct_bits(void)
 {
-    struct domain *d;
-
     /*
      * Without CONFIG_BIGMEM, we pack the PDX of the domain structure into
      * a 32-bit field within the page_info structure. Hence the MEMF_bits()
@@ -492,16 +490,7 @@ struct domain *alloc_domain_struct(void)
                 - 1;
 #endif
 
-    BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
-    d = alloc_xenheap_pages(0, MEMF_bits(bits));
-    if ( d != NULL )
-        clear_page(d);
-    return d;
-}
-
-void free_domain_struct(struct domain *d)
-{
-    free_xenheap_page(d);
+    return bits;
 }
 
 struct vcpu *alloc_vcpu_struct(const struct domain *d)
diff --git a/xen/arch/x86/include/asm/pv/domain.h b/xen/arch/x86/include/asm/pv/domain.h
index 582d004051..6e65bc22fc 100644
--- a/xen/arch/x86/include/asm/pv/domain.h
+++ b/xen/arch/x86/include/asm/pv/domain.h
@@ -18,6 +18,9 @@ extern int8_t opt_pv32;
 # define opt_pv32 false
 #endif
 
+unsigned int arch_alloc_domain_struct_bits(void);
+#define arch_alloc_domin_struct_bits arch_alloc_domain_struct_bits
+
 /*
  * PCID values for the address spaces of 64-bit pv domains:
  *
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 3b6e9471c4..b51ce375df 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -799,6 +799,29 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
     return arch_sanitise_domain_config(config);
 }
 
+struct domain *alloc_domain_struct(void)
+{
+    struct domain *d;
+    unsigned int bits = 0;
+
+#ifdef arch_alloc_domin_struct_bits
+    bits = arch_alloc_domin_struct_bits();
+#endif
+
+    BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
+
+    d = alloc_xenheap_pages(0, MEMF_bits(bits));
+    if ( d != NULL )
+        clear_page(d);
+
+    return d;
+}
+
+void free_domain_struct(struct domain *d)
+{
+    free_xenheap_page(d);
+}
+
 struct domain *domain_create(domid_t domid,
                              struct xen_domctl_createdomain *config,
                              unsigned int flags)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 14:38:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 14:38:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172980.1498080 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOGeu-0001XZ-1O; Wed, 26 Nov 2025 14:38:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172980.1498080; Wed, 26 Nov 2025 14:38:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOGet-0001XS-TA; Wed, 26 Nov 2025 14:38:15 +0000
Received: by outflank-mailman (input) for mailman id 1172980;
 Wed, 26 Nov 2025 14:38: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOGet-0001XM-EU
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 14:38:15 +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 89f93854-cad5-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 15:38:14 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-477b91680f8so53479305e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 06:38: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-4790b0cc39csm48763525e9.14.2025.11.26.06.38.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 06:38: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: 89f93854-cad5-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764167893; x=1764772693; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=njASJ/nBXaJugyDd/dGxfpQZEhP3Dmqwkfhj1VAnsnE=;
        b=S9Cw73YeLpSyBNaIUadbIsDPorJFPZrjIYhGYmf9ld43r7gzmuOJEqhzZ0udkBcT9S
         65h/0434xgbVUYzCyJ9EE4KrtiPQJFw3I81aC+epB4AF+c5HHdvNsHForaqtJm+cRv1d
         wsuzNm7SuVaUPvzMXNxIYAoPn5jkRfT5DTQkv1pLbGxbvaFdjeYkOIrLLR0BkVTP80va
         +fOUNh7a6FyF0eM+e+ymN6O0rxxUOIRrvOvYUFsZBItthbbVJDH6AecLXVFraKifEKjb
         pOSJgFRYZmyqKFQzp6QF1c4kkaFWNaBIx/mKy1xMDw9Oxpksq+4W8aC+RAGz85zXOt1T
         eySQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764167893; x=1764772693;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=njASJ/nBXaJugyDd/dGxfpQZEhP3Dmqwkfhj1VAnsnE=;
        b=HD8XRYdU/p0MGbnpCbMQxoNKeKX5pufqraw+ojYMcuFVzxNXdaEfxPfrusCRNf9pWH
         qzRyMEUzcZ9X6I7bX0yZh5BjkMxwVT4klkV2XP12YsByYXSgitBtmuVAMpYyRIiDAdtA
         zgHgu8JiENdrCLBXGDVzp0abCBWa6lsDdzIAW1hF5R0GMMjmmQKeIucf1QCB9bIzPUV8
         PkN4/mAG2OvnM+95Yy4kJczk23FBbEfK36btbc1FtZHqrrf+FKGRPoFrrLFhECzpJwbA
         bXthHH2+Va1TSUqcuARhoeU595W1ftoChAZk5ZtFRB5z4jwloM2+YFZJKVwBDM6zrB8y
         +Qfw==
X-Forwarded-Encrypted: i=1; AJvYcCW+4VKLc6vkXtz6SuGLrcFSJecDao0NwGZbMg9qiYP6S9PccMAflJLX0gbyIV2fhMJSDsujnvbzpNg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyyibPTTSr5T1y+sYZcDlmKpN1XfWkVEkMFmZtKGBFFxRAq5GYt
	tA0d2ar8BUqNMZ5IiinJO2R+m4rhGYHzTdyCM7N+F0JU9AnsP6OexAYB7CVNcXOTaQ==
X-Gm-Gg: ASbGncthbtI2SYVPRZeD3wIPQVHeH6TlVFn6bgOpZo/hsWg1pmwyjplMaTGbVMpbWqB
	awDmFIA8w97UONHBOt8KVOZ62N98iqAHaAW7r7VzGveRzMgb2JY1SaiJWih/SqBaoD3GsgPWrq7
	B3Oo5bgy3LaErvUh9nDrqUPv2s8iKZj/cqPgdV3WuJpPsJM2B6/kMz3GfxGxLuB4tyS8mtEI6QC
	+aRbOQ6K8+ESxKTLb7w3xfNIT04Bn3RqD6m3XbUt8p1ewJKfqaM6gGKFpEo239ryqK42n+MN98A
	Am6jAQH57JxyUyuzB/cwbVrcPyau/ZUfyhhN0VZ2pFdXYGBghw1pfarsamV1f5PXsRQcKBFQdXq
	dObbgQXOAdsBjeOWl3yz1Hj1lEqB7C9TVhB55hlR5ze7wMXFBW48jxHigmyLt+55i3WlWfMXop8
	vip5kmEoaxBulFRVaqVeoS/GqGuq7+50C44SMLYNRxmoX7Bt/c55tvyuYyhG8kKK09E1Wc9DZc5
	js=
X-Google-Smtp-Source: AGHT+IFi1eJNJMUoWmCM3RdneTyCo19GJCSGhrPDG6OBI9/M9pk/5gNqh9SiEEUcYkyaxvvcDzdNOA==
X-Received: by 2002:a05:600c:350e:b0:477:ae31:1311 with SMTP id 5b1f17b1804b1-477c10e2a64mr172221395e9.13.1764167893524;
        Wed, 26 Nov 2025 06:38:13 -0800 (PST)
Message-ID: <17d26c00-f5d0-4c49-95be-18e20f28c6e1@suse.com>
Date: Wed, 26 Nov 2025 15:38:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86: move arch_generic_hweightl() to arch-specific
 library
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: <245fbc16-924b-4fd9-8cbc-a539b569edac@suse.com>
 <76f2d454-ee2b-4aba-a6e5-974b1b2dfbb3@suse.com>
 <859d60ce-165d-416f-a1f1-89ba11de2839@citrix.com>
 <3e6d9b74-f606-4774-8767-c71391b9c741@suse.com>
 <afb03d32-c723-457f-8a29-fd2f6c9c69f2@citrix.com>
 <0c0cb917-ae36-48c0-83cd-80764a01587b@suse.com>
 <ca6d6c10-f757-4abc-9884-ca283a0a9197@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: <ca6d6c10-f757-4abc-9884-ca283a0a9197@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2025 15:17, Andrew Cooper wrote:
> On 26/11/2025 2:09 pm, Jan Beulich wrote:
>> On 26.11.2025 15:05, Andrew Cooper wrote:
>>> On 26/11/2025 1:58 pm, Jan Beulich wrote:
>>>> On 26.11.2025 14:51, Andrew Cooper wrote:
>>>>> On 26/11/2025 1:24 pm, Jan Beulich wrote:
>>>>>> diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
>>>>>> index 16368a498bb7..a0ee050c931b 100644
>>>>>> --- a/xen/arch/x86/arch.mk
>>>>>> +++ b/xen/arch/x86/arch.mk
>>>>>> @@ -3,6 +3,8 @@
>>>>>>  
>>>>>>  export XEN_IMG_OFFSET := 0x200000
>>>>>>  
>>>>>> +ALL_LIBS-y += arch/x86/lib/lib.a
>>>>>> +
>>>>> Oh, I'd realised it was this easy, I'd have done so straight away when
>>>>> adding x86's custom arch_generic_hweightl().
>>>>>
>>>>> I assumed it was going to be more complicated getting the order of the
>>>>> arch specific lib correct with the generic lib.
>>>>>
>>>>> More concretely.Â  Given an x86 lib, we should move things like
>>>>> arch/x86/memcpy.S to it.
>>>>>
>>>>> Therefore, when we have common/lib.a and arch/lib.a, do we guarantee to
>>>>> have arch/lib.a with higher precedence so for matching functions the
>>>>> arch specific one guarantees to be taken?
>>>> Not with the change above, it would need to become
>>>>
>>>> ALL_LIBS-y := arch/x86/lib/lib.a $(ALL_LIBS-y)
>>>>
>>>> to achieve that, requiring that ALL_LIBS-y won't change into a lazy-expansion
>>>> variable. If that's okay (please confirm), I can adjust the patch.
>>>>
>>>> Things would be yet easier if every arch had a lib/lib.a, as then in
>>>> xen/Makefile we could simply have
>>>>
>>>> ALL_LIBS-y                := arch/$(SRCARCH)/lib/lib.a
>>>> ALL_LIBS-y                += lib/lib.a
>>>>
>>>> Alternatively we could move the setting of ALL_LIBS-y in xen/Makefile to
>>>> after the arch/$(SRCARCH)/arch.mk inclusion. I'd be a little wary of that,
>>>> though, as it would then be different from ALL_OBJS-y.
>>> I think this would be better handled by common code.
>>>
>>> Arches are going to want a lib.a eventually.Â  ARM even has
>>> arch/arm/arm{32,64}/lib/ but like x86 they're just simple obj-y += at
>>> the moment.
>>>
>>> However, arches shouldn't be forced to make an empty one simply to build.
>>>
>>> Does this work:
>>>
>>> ALL_LIBS-yÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  := $(wildcard arch/$(SRCARCH)/lib/lib.a)
>>> ALL_LIBS-yÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  += lib/lib.a
>>>
>>> ?Â  If so, I think it's the nicest option.
>> I had thought of doing it this way initially, but on a fresh build
>> arch/$(SRCARCH)/lib/lib.a wouldn't be there when the Makefile is read in.
>> Whether switching ALL_LIBS-y to be a lazy-expansion variable would work
>> I didn't try; I'd prefer not to change the kind of variable that it is.
> 
> Hmm.Â  What about:
> 
> Â Â Â  $(filter arch%,$(ALL_LIBS-y)) $(filter-out arch%,$(ALL_LIBS-y))
> 
> in the link, at which point it doesn't matter about the exact order in
> ALL_LIBS-y?

Hmm, we could apparently do something like that, but looking at how ALL_LIBS
(note: not ALL_LIBS-y) is used, I wonder if I didn't make us depend on
unspecified behavior in f301f9a9e84f ("lib: collect library files in an
archive"): I don't think it is well-defined whether undefined symbols are
resolved by pulling in archive members when doing a relocatable link. (Of
course this is only a tangential aspect here.)

Another question is whether it is really always going to be the case that
arch-specific libraries want to take precedence over common ones.

To summarize, I think by this point I'd still prefer the

ALL_LIBS-y := arch/x86/lib/lib.a $(ALL_LIBS-y)

approach mentioned earlier.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 14:49:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 14:49:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1172990.1498089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOGpY-0003jv-UO; Wed, 26 Nov 2025 14:49:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1172990.1498089; Wed, 26 Nov 2025 14: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 1vOGpY-0003jo-Rk; Wed, 26 Nov 2025 14:49:16 +0000
Received: by outflank-mailman (input) for mailman id 1172990;
 Wed, 26 Nov 2025 14:49:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOGpY-0003ji-0p
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 14:49:16 +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 1347c6a8-cad7-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 15:49:14 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-47778b23f64so37936015e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 06:49: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-4790b0cc1d6sm45245295e9.12.2025.11.26.06.49.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 06:49: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: 1347c6a8-cad7-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764168553; x=1764773353; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=67mm6kxo4oWlPrezm6wwFoWi2BFZ9dX3lWau51tTbUo=;
        b=cvPWx6vv+M0mEz3785OQ1Ds9PxgysbuJercdhit4Uhq+hTGjMZCOci1qimdWH3DgO7
         rkM0hhQqxC0+Cnt5HkXnwIZuPIVAasPNGEmHWzzK9YNfDnU2JhEGP+swxoOVwbKkV3J/
         uzJWdoHYXZg8WpQhsIsJ4D37e4WVuWWrek1ATj+v5HeBX0TL7bwIHhe7VFdG9/FhrJHi
         zd77948rukKeo4XSgxnCbYeIYkSoUSNIm5sAsVI9bXZuKQYEtp5Vami88Bp0loj7kbC8
         y52ssM579O4OVnZJNfuPG9OkbOrQlir30sdBrRobNuP+GsBwpJoCBSggx7fpIji2n+gL
         fHwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764168553; x=1764773353;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=67mm6kxo4oWlPrezm6wwFoWi2BFZ9dX3lWau51tTbUo=;
        b=DDf5Aq+miSjF7qM0O62Xj2PH7NcJN1Tvm2rc3C41vs9aL72ZjEFxeac0yVgj4t78B2
         7UnxMrq2dIIrVUv53caD71OJwJrTaV7OhLOlBZZxFeIsMOEh4mAIT5dt/o+bPQRzYaXD
         9Lz6XUZCNmTOBZdTqAsrp47fLMFjCIQAxHmRfUh2EYFu4aGdkGQC1p4a0A0N2+2FJhqn
         QojmaVoGdICHuIO/+fPVx0W3xVP//UhGSaB2WjzKuN2revWOeh2OTZnLeKlMzWJwmDvG
         kFO8WKpCY6PiN+N5NGMv5jQbFWWkZh9BO9i5umM0lkczasCxV9HbJSQaZRWDatcM0XZg
         BzOA==
X-Forwarded-Encrypted: i=1; AJvYcCV1FluLmWzwAR0uDztjXjAjif7G1pSO8GaKx0LikVKdWXR84vKKxAGXZ+Kp4jaTtbA0cJ2uFe/ynpA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw+keeUIUB24NB2KaZX5UbICVzomixhxe3DWNRyFD7fhKVekn6T
	3erQowP4dFuS3PsCJcifYFnVTaSsifpb4oyvxPXinnpYxlluA7KlqtYZHAj/prDqlQ==
X-Gm-Gg: ASbGncv0vq09smSVQbdEKJJV+H6bHIk6dFtzV7+4769TuIZLXYM0nmFYMB3oR2PV/Sf
	5xGhqp7LoPNGLpnosAvKEwahYT5+zDDVbj9DY1uYtWEvTjdSd3A7wn7fYpR0Jb0TNf1FEIJCGk8
	pNP9fAcjaO2IXAscxFckXd5FISqnIacY1tIJqXOY0I6dLn/g1ijpMufY8IknMPiuN4ml1K6hNWu
	EhCrac1UYP35bEFZAhEjWN+2/IQ+XBsZHT/KVmzCTHhHk1IZAfuHyHq0O/Qzs1/lQ35GxWcfSiu
	wNTn2Ni6U1jUhkQspVK3pzd8lHlo2BHEiFVX3DQvgYRIDLJAIFKIsMGVt6HrM8StrzqGI0ziHqW
	1Byx+/77pEc6wp2GrvhJoK8PWE1Bpna2VPhovpDivDj8Lrq9sFDcZLK4u1tILo7e7Q7UVnn4eb1
	wQdDWdbRKRLsSTfUucXBgp3X+rHQ+hf+cruAAkQ/MObPCGhIATx2BiMZuj+ybKZHWl/UpZEvj0t
	x4=
X-Google-Smtp-Source: AGHT+IEwTt2zr8Caz4bVD/BWLw1eiXfY6bq2f2o+zo+ZHqprsh9SkeTN0TcpzY3VA9doU4CmnmYXtg==
X-Received: by 2002:a05:600c:1f1a:b0:45d:f81d:eae7 with SMTP id 5b1f17b1804b1-477c114f45fmr193065055e9.28.1764168553475;
        Wed, 26 Nov 2025 06:49:13 -0800 (PST)
Message-ID: <175cb547-02d7-435b-93e5-51d643ca1cf0@suse.com>
Date: Wed, 26 Nov 2025 15:49:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] x86/amd: Stop updating the Zenbleed mitigation
 dynamically
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: <20251126132220.881028-1-andrew.cooper3@citrix.com>
 <20251126132220.881028-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: <20251126132220.881028-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 14:22, Andrew Cooper wrote:
> This was potentially helpful when the chickenbit was the only mitigation and
> microcode had not been released, but that was two years ago.
> 
> Zenbleed microcode has been avaialble since December 2023, and the subsequent
> Entrysign signature vulnerability means that firmware updates block OS-loading
> and more OS-loadable microcode will be produced for Zen2.
> 
> i.e. the Zenbleed fix is not going to appear at runtime these days.
> 
> No practical change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Jan Beulich <jbeulich@suse.com>
on the basis that people unwilling to update their firmware already accept
being vulnerable. To them this might be a perceived regression, i.e. not
exactly "No practical change", but we kind of accept that possibility.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 15:00:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 15:00:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173001.1498099 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOH0k-0006pk-Tf; Wed, 26 Nov 2025 15:00:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173001.1498099; Wed, 26 Nov 2025 15:00: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 1vOH0k-0006pd-Q5; Wed, 26 Nov 2025 15:00:50 +0000
Received: by outflank-mailman (input) for mailman id 1173001;
 Wed, 26 Nov 2025 15:00: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=ojcj=6C=bounce.vates.tech=bounce-md_30504962.6927161d.v1-81fc939274b6493193a05a69d48d5f9e@srs-se1.protection.inumbo.net>)
 id 1vOH0j-0006pX-Fl
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 15:00:49 +0000
Received: from mail136-9.atl41.mandrillapp.com
 (mail136-9.atl41.mandrillapp.com [198.2.136.9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id afd635ed-cad8-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 16:00:47 +0100 (CET)
Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail136-9.atl41.mandrillapp.com (Mailchimp) with ESMTP id 4dGjRd0QzlzHXYkNb
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 15:00:45 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 81fc939274b6493193a05a69d48d5f9e; Wed, 26 Nov 2025 15:00: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: afd635ed-cad8-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1764169245; x=1764439245;
	bh=PzlwzW8LfTD5LkQSEdCXaGr/9PuPACuh6ma9/CPiKIA=;
	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=PqGrXllkkn+6n/crMZD3RYeL0wnJ5z+7TFcVZpINE6NkKQnPJRGEarWZa3ttfgH53
	 fyEep9dB+9J/zDFGW5X1P4Z4Mw3rXY1B6PXpNDuc6zNZ1zI0yBMSz3YzIMrCMKxdyW
	 A9lDjDmcLZCXKsVVfwSLHSk2B70dq/B4nABZM1HbxW5DpNCuX5FPj0i7ZOJNY2a/lM
	 AVZOpxQnvtLU8RUaBuUIoyR44v3YIc3GbWDM1yVAtOZVGqMLHL9AogqXlu6CfbQ9Kx
	 APYj3fxIQMWk4V5GTqdHKYrNstrRz3wpysvomDhdjaYZ9mEUKjFTCLzEcJr5bTu2aN
	 /XovHHiPqCKUw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1764169245; x=1764429745; i=yann.sionneau@vates.tech;
	bh=PzlwzW8LfTD5LkQSEdCXaGr/9PuPACuh6ma9/CPiKIA=;
	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=FZAvEoYTE5oQfmPQzsmfSCtetf5HgyUZdPTEcuNGWuF733hjps31mmL9imfD6IBOT
	 2B4D+TcAKxkioLBkIyiDFsczhgfJHqR8f6+dxebd7sCq8dmeY5NT6KO0P/Y4B3Vsma
	 7XtS0SG1/hvmhkuX0GbyjEn665ARF5eCcwPFIlcBtkuOqVRgHPv5zGwbG4az3qf7Sz
	 DbvX2TsoN0KPTEUIjEIuDouuh95Le1nIwWXgXF0DJYVOMhDz4NBOmVA2XOipB4B7Lp
	 0Y0Srbwfelfx13RKWzzU6RYKJDYeL5auWla1A2AlpffzcDkmPmCyKAe6AjRtHqf5Hg
	 7uUx50dGDbjHg==
From: "Yann Sionneau" <yann.sionneau@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=201/2]=20xenbus:=20Use=20.freeze/.thaw=20to=20handle=20xenbus=20devices?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1764169243811
Message-Id: <584b282f-4562-4051-b028-b9d36b3d16c6@vates.tech>
To: "Jason Andryuk" <jason.andryuk@amd.com>, "Juergen Gross" <jgross@suse.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Oleksandr Tyshchenko" <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <20251119224731.61497-1-jason.andryuk@amd.com> <20251119224731.61497-2-jason.andryuk@amd.com>
In-Reply-To: <20251119224731.61497-2-jason.andryuk@amd.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.81fc939274b6493193a05a69d48d5f9e?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251126:md
Date: Wed, 26 Nov 2025 15:00:45 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hi Jason,

On 11/19/25 23:46, Jason Andryuk wrote:
> The goal is to fix s2idle and S3 for Xen PV devices.  A domain resuming
> from s3 or s2idle disconnects its PV devices during resume.  The
> backends are not expecting this and do not reconnect.
> 
> b3e96c0c7562 ("xen: use freeze/restore/thaw PM events for suspend/
> resume/chkpt") changed xen_suspend()/do_suspend() from
> PMSG_SUSPEND/PMSG_RESUME to PMSG_FREEZE/PMSG_THAW/PMSG_RESTORE, but the
> suspend/resume callbacks remained.
> 
> .freeze/restore are used with hiberation where Linux restarts in a new
> place in the future.  .suspend/resume are useful for runtime power
> management for the duration of a boot.
> 
> The current behavior of the callbacks works for an xl save/restore or
> live migration where the domain is restored/migrated to a new location
> and connecting to a not-already-connected backend.
> 
> Change xenbus_pm_ops to use .freeze/thaw/restore and drop the
> .suspend/resume hook.  This matches the use in drivers/xen/manage.c for
> save/restore and live migration.  With .suspend/resume empty, PV devices
> are left connected during s2idle and s3, so PV devices are not changed
> and work after resume.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> ---
>   drivers/xen/xenbus/xenbus_probe_frontend.c | 4 +---
>   1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c
> index 6d1819269cbe..199917b6f77c 100644
> --- a/drivers/xen/xenbus/xenbus_probe_frontend.c
> +++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
> @@ -148,11 +148,9 @@ static void xenbus_frontend_dev_shutdown(struct device *_dev)
>   }
>   
>   static const struct dev_pm_ops xenbus_pm_ops = {
> -	.suspend	= xenbus_dev_suspend,
> -	.resume		= xenbus_frontend_dev_resume,
>   	.freeze		= xenbus_dev_suspend,
>   	.thaw		= xenbus_dev_cancel,
> -	.restore	= xenbus_dev_resume,
> +	.restore	= xenbus_frontend_dev_resume,
>   };
>   
>   static struct xen_bus_type xenbus_frontend = {

I've tried putting Debian 13 to sleep with your patch (echo freeze > 
/sys/power/state) and could not wake up the guest.
Isn't it also mandatory to apply this patch 
https://github.com/QubesOS/qubes-linux-kernel/blob/main/xen-events-Add-wakeup-support-to-xen-pirq.patch 
?

With both patches applied, I get the wake up to work.

Regards,

-- 


--
Yann Sionneau | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Nov 26 15:08:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 15:08:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173014.1498110 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOH7i-0007og-OB; Wed, 26 Nov 2025 15:08:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173014.1498110; Wed, 26 Nov 2025 15:08: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 1vOH7i-0007oZ-Jk; Wed, 26 Nov 2025 15:08:02 +0000
Received: by outflank-mailman (input) for mailman id 1173014;
 Wed, 26 Nov 2025 15:08: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOH7h-0007oT-Ci
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 15:08:01 +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 b1d694b6-cad9-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 16:07:59 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-42b3c965df5so3725973f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 07:07: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-42cb7f2e432sm40261378f8f.9.2025.11.26.07.07.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 07:07: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: b1d694b6-cad9-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764169678; x=1764774478; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SanXmrO6y9ylfggTxZWTna478i2qTWTFYg+rg19bfZw=;
        b=F+JMnNxenShuiFt8aKCpY8Bktk3VQ2tZlbeYFWVQXzY97jeDnyd24w6ng2pLU3cgkX
         +2L+P8LMS0OIsbywgQekZRO1xqrh/WqCyrE9l0h+ekEKxC1Uun0rEHHO1M5ef3SQjjos
         qlsnXqFdhsdZw4a1aW0zxUcdW5jc1Z5elE1Aemnb/HxWG6qzrBDTIqLuzdp/ldTKN076
         x1Cu2dq/ylLaesaHa2V5FOEYkqO4USlSbDS4UuFRigiYODSEXXV4xMdC1AaDEz2Wa+hH
         u5vJWdxz8MGvb8unzdEM9sFOc3F/jE1jy389K/FZMrY6qFxJl/AQL2pIAgLlguX12Kq0
         uMcg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764169678; x=1764774478;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SanXmrO6y9ylfggTxZWTna478i2qTWTFYg+rg19bfZw=;
        b=RNfiulbd+QFXXcwqF5RPRnodNfCLmUftuVlGuMyQnlrC1o5+cbU67yZax5FPgv4gm5
         Lk5Fh6mE0t9er4u++haZj2iZAxDuTASXkmddLgMVPRccV94ak/4iiNLFAzwGvUmThBQP
         T8YplER0PFQ7P23CF9+mrTpmO+yU6gOWPGfXO0JM+K4yyPU40s2AbMdpmMv/So6MSqNK
         mWvB/zk371d2rrJBOHMjJsEPhlko12kQ7o6J4oTRCGDQ+z6OfwTEAg0S5SIFZffesm9Z
         OZ1mkPga1JVs5DgqC9eQ5ucQ3E9PxooAE0h1f/reIXpI9IBTT1jkxn3JKlXiDhwZog5N
         o1GQ==
X-Forwarded-Encrypted: i=1; AJvYcCWPOk3Z9aJHkQ+f2m06ePMlAkOutiJsWfKxGs9x5+ybU+PCQewFv7g5P4LogKwRi3MJCpHaqQzh3tM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzf7MPV3GvZgh+4fZzQwtmwFkzVyejtvxJPdmqY89i5W3hW4cy7
	g1bldkXSQRWXs6HcJyZ6cD8hwjVdr9uH+MDpxM2yddF+vFytupu85Eac0IUdsTq5ZWyyoSBp2IA
	OevA=
X-Gm-Gg: ASbGnctDVF5oMs1MNsKW4IlXsBvt0prcM109YUs7+Ai40xUO3hlksh9JB29+8TLzWQC
	hrKILI/v/+qRR+RuZYcCBcfJkLQb7mQcJGQ2bxm2PnsUdGD8/75AGiULHsQz5j6uMwJ+NU4CIOn
	K2oZl5YFjrhKq268TI1OUftkpbBP8AGc/6maWDbtwxqpu+Yfjw25wHNwfVmXMn7VJwB+LZ8Gfd6
	OxGu5NqSY+5C5pB+Qw2UUEtxCnOMK6jLCUZRYkMK/Ayd/U7jfbIhX2QYcSV84+T7snB+G02n0A3
	WwyNhEfQ/RT7aeh8GBZf23u4Jn5ciTxbPWfMwNb5Pq8KNFldQRtkYFrchEPdv/F7PfOgGnuMj7h
	gN5Ey/E1enDm9BZ4AVVpDUUeRkqtMURw8ZFs9kMmcoO9MQPxqi+7Gme4t70NQT8pH9BZouJpWNe
	2eQUQrp0uLRxa8M4ue4qgBMyMsW7h7R2oWUw72UKuiBWO5FTuCbHxwcFcYCKz5bNcnQP5OxD60O
	WU=
X-Google-Smtp-Source: AGHT+IHnkbcr7IhDEJVgzk/Nx2kOcdMc7fMK5wVDpyuDTaDeH2ztgTSNb4DvhdoiiSCJne8VBwxY6g==
X-Received: by 2002:a05:6000:40c9:b0:42b:47da:c31c with SMTP id ffacd0b85a97d-42e0f344674mr7988465f8f.37.1764169678311;
        Wed, 26 Nov 2025 07:07:58 -0800 (PST)
Message-ID: <52fd793f-5bb1-4e14-a64c-b431b0ae83a6@suse.com>
Date: Wed, 26 Nov 2025 16:07:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] x86/amd: Fix race editing DE_CFG
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: <20251126132220.881028-1-andrew.cooper3@citrix.com>
 <20251126132220.881028-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: <20251126132220.881028-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 14:22, Andrew Cooper wrote:
> @@ -1075,6 +966,112 @@ static void cf_check fam17_disable_c6(void *arg)
>  	wrmsrl(MSR_AMD_CSTATE_CFG, val & mask);
>  }
>  
> +static bool zenbleed_use_chickenbit(void)
> +{
> +    unsigned int curr_rev;
> +    uint8_t fixed_rev;
> +
> +    /*
> +     * If we're virtualised, we can't do family/model checks safely, and
> +     * we likely wouldn't have access to DE_CFG even if we could see a
> +     * microcode revision.
> +     *
> +     * A hypervisor may hide AVX as a stopgap mitigation.  We're not in a
> +     * position to care either way.  An admin doesn't want to be disabling
> +     * AVX as a mitigation on any build of Xen with this logic present.
> +     */
> +    if ( cpu_has_hypervisor || boot_cpu_data.family != 0x17 )
> +        return false;
> +
> +    curr_rev = this_cpu(cpu_sig).rev;
> +    switch ( curr_rev >> 8 )
> +    {
> +    case 0x083010: fixed_rev = 0x7a; break;
> +    case 0x086001: fixed_rev = 0x0b; break;
> +    case 0x086081: fixed_rev = 0x05; break;
> +    case 0x087010: fixed_rev = 0x32; break;
> +    case 0x08a000: fixed_rev = 0x08; break;
> +    default:
> +        /*
> +         * With the Fam17h check above, most parts getting here are Zen1.
> +         * They're not affected.  Assume Zen2 ones making it here are affected
> +         * regardless of microcode version.
> +         */
> +        return is_zen2_uarch();
> +    }
> +
> +    return (uint8_t)curr_rev >= fixed_rev;
> +}
> +
> +void amd_init_de_cfg(const struct cpuinfo_x86 *c)
> +{
> +    uint64_t val, new = 0;
> +
> +    /* The MSR doesn't exist on Fam 0xf/0x11. */
> +    if ( c->family != 0xf && c->family != 0x11 )
> +        return;

Comment and code don't match. Did you mean

    if ( c->family == 0xf || c->family == 0x11 )
        return;

(along the lines of what you have in amd_init_lfence_dispatch())?

> +    /*
> +     * On Zen3 (Fam 0x19) and later CPUs, LFENCE is unconditionally dispatch
> +     * serialising, and is enumerated in CPUID.  Hypervisors may also
> +     * enumerate it when the setting is in place and MSR_AMD64_DE_CFG isn't
> +     * available.
> +     */
> +    if ( !test_bit(X86_FEATURE_LFENCE_DISPATCH, c->x86_capability) )
> +        new |= AMD64_DE_CFG_LFENCE_SERIALISE;
> +
> +    /*
> +     * If vulnerable to Zenbleed and not mitigated in microcode, use the
> +     * bigger hammer.
> +     */
> +    if ( zenbleed_use_chickenbit() )
> +        new |= (1 << 9);
> +
> +    if ( !new )
> +        return;
> +
> +    if ( rdmsr_safe(MSR_AMD64_DE_CFG, &val) ||
> +         (val & new) == new )
> +        return;
> +
> +    /*
> +     * DE_CFG is a Core-scoped MSR, and this write is racy.  However, both
> +     * threads calculate the new value from state which expected to be
> +     * consistent across CPUs and unrelated to the old value, so the result
> +     * should be consistent.
> +     */
> +    wrmsr_safe(MSR_AMD64_DE_CFG, val | new);

Either of the bits may be the cause of #GP. In that case we wouldn't set the
other bit, even if it may be possible to set it.

> +}
> +
> +void __init amd_init_lfence_dispatch(void)
> +{
> +    struct cpuinfo_x86 *c = &boot_cpu_data;
> +    uint64_t val;
> +
> +    if ( test_bit(X86_FEATURE_LFENCE_DISPATCH, c->x86_capability) )
> +        /* LFENCE is forced dispatch serialising and we can't control it. */
> +        return;
> +
> +    if ( c->family == 0xf || c->family == 0x11 )
> +        /* MSR doesn't exist.  LFENCE is dispatch serialising on this hardare. */
> +        goto set;
> +
> +    if ( rdmsr_safe(MSR_AMD64_DE_CFG, &val) )
> +        /* Unable to read.  Assume the safer default. */
> +        goto clear;
> +
> +    if ( val & AMD64_DE_CFG_LFENCE_SERIALISE )
> +        /* Already dispatch serialising. */
> +        goto set;

Why "already", when this is now after we did the adjustment?

> + clear:
> +    setup_clear_cpu_cap(X86_FEATURE_LFENCE_DISPATCH);
> +    return;
> +
> + set:
> +    setup_force_cpu_cap(X86_FEATURE_LFENCE_DISPATCH);
> +}
> +
>  static void amd_check_bp_cfg(void)
>  {
>  	uint64_t val, new = 0;
> @@ -1118,6 +1115,11 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
>  	u32 l, h;
>  	uint64_t value;
>  
> +        amd_init_de_cfg(c);
> +
> +        if (c == &boot_cpu_data)
> +            amd_init_lfence_dispatch(); /* Needs amd_init_de_cfg() */
> +
>  	/* Disable TLB flush filter by setting HWCR.FFDIS on K8
>  	 * bit 6 of msr C001_0015
>  	 *

Nit: I don't think we want to mix indentation style within a function.

> --- a/xen/arch/x86/cpu/hygon.c
> +++ b/xen/arch/x86/cpu/hygon.c
> @@ -31,7 +31,11 @@ static void cf_check init_hygon(struct cpuinfo_x86 *c)
>  {
>  	unsigned long long value;
>  
> -	amd_init_lfence(c);
> +        amd_init_de_cfg(c);
> +
> +        if (c == &boot_cpu_data)
> +            amd_init_lfence_dispatch(); /* Needs amd_init_de_cfg() */
> +
>  	amd_init_ssbd(c);
>  
>  	/* Probe for NSCB on Zen2 CPUs when not virtualised */

Same here then.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 15:12:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 15:12:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173024.1498119 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOHCI-0001Bg-6X; Wed, 26 Nov 2025 15:12:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173024.1498119; Wed, 26 Nov 2025 15: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 1vOHCI-0001BZ-3i; Wed, 26 Nov 2025 15:12:46 +0000
Received: by outflank-mailman (input) for mailman id 1173024;
 Wed, 26 Nov 2025 15:12: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=fSqE=6C=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOHCG-0001AF-2p
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 15:12:44 +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 5a889e47-cada-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 16:12:42 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM4PR03MB5983.namprd03.prod.outlook.com (2603:10b6:5:38a::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.13; Wed, 26 Nov
 2025 15:12:40 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Wed, 26 Nov 2025
 15:12: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: 5a889e47-cada-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zGa1+ZEoXF+Mg7OpswRbrLHdwAYK0p/vwx3DbsPxYDWevi96oif/KTkdwLaslb1NAEpWbXxWxtjb5MxBbNtD8kW0drrDUWOtxCbJHCr1xNx3Nmqnhd9k1ZOcXTwuDB7Q/wNzTP9saLhFamXGlDgsvXG21b0N+1XWqDA+rRoSa8djLjPDHWBJoQvtb/G43+ts1LN4LDAOk+WPqKBkA2ZmNp8lmfa10f2aDNIFcCltqlvU75ZxnmTEwJRw9BsbzGSvd7HUNx9wmqIQLJ/2/aTU+CQxhmHj4V1M0KMYS/QXjO++3oOQFcZqbZAGAOcybWteF0npKc9OJOQgwwLjPRZp4w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6X+zrkOru28E9z6Djnzq4bZXKaUj/XCtqM/4pCzRJEI=;
 b=XLn0KdIEHj7XpqSo6sfOyGJe7cOXp8zUJE6TibpcfrQOMBoCWzJuVH9BuMMo2k3vcWEmmx9Tm+Z3QVSSOJhd2KDCZVYTbEbbcQUlJDdnyfKtx8VCn5+Psd3Y3FwZ3zjPix+4DQzo6TbygMaZzu5Mks0Xg1sbDvpUxHLmqHf7kkF4VzK5bzv4bZc4DcUy+xxyBM2ZleMT0LbzfPY3LrbL+t8b3EclHBL5EHm0ZwAg+1zsm0WWqMyelSHIIot8u1rDW/s4JDMk14Wti7u06lMrVmC5yzts+eaH1ioeZdb92phZH5+wI8xmMdeaJXwtQwbca+b2kY3S0tsAx6A/tEiJ2w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6X+zrkOru28E9z6Djnzq4bZXKaUj/XCtqM/4pCzRJEI=;
 b=sd7B+au8kFNBBraty5HYWyBfFgsigXx0RatFQP/Poye2YNWOT8xPc3PcN+7knzr4p/3ptkXglnY2Xv+VmdMnSGS+b8XOJ68pj+HCw7zMaB1Fcrw1j5nVunSwO3Ihy2LbZg35MgjEwgiToH2loT/W98go2ry3S+6is7f68wSpFBI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <fc9adc57-bb95-484a-9461-0751dc91cb1b@citrix.com>
Date: Wed, 26 Nov 2025 15:12:36 +0000
User-Agent: Mozilla Thunderbird
Cc: 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 1/3] x86/amd: Use setup_force_cpu_cap() for BTC_NO
To: Jan Beulich <jbeulich@suse.com>
References: <20251126132220.881028-1-andrew.cooper3@citrix.com>
 <20251126132220.881028-2-andrew.cooper3@citrix.com>
 <ab8dc060-7707-4ff3-a413-730555aefeee@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <ab8dc060-7707-4ff3-a413-730555aefeee@suse.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_|DM4PR03MB5983:EE_
X-MS-Office365-Filtering-Correlation-Id: 10f75012-78bb-46ff-1f23-08de2cfe3d68
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?OVVMQmNqN0ZTYW5FamdMQnN4K2QwbEw2OHBBWUpHdUZpM1pMb3QrRHd2TVRH?=
 =?utf-8?B?MWwrS2FaUk1TelRmNlZnQXpRWHhWZnVoQzFiWW1XcVB1TnVtbGtzQmZDc0Nl?=
 =?utf-8?B?Zno5Umhnc0VlZjdQQkRlazlQZ1lMU3pnZGloUEsrVVNXdXJrblVVS3R6ZWh6?=
 =?utf-8?B?WGFWTGxDYWxHN0UrS2JkL3ZUVFl0dlQvODNOVVczUWxDS3d1Z0F0NkRXdlFz?=
 =?utf-8?B?Nk5Fck0rbHZEOEttWENyaTgwQUhxTDBaRkdkVU11S0h3ZVBNVWZabWlpTEpJ?=
 =?utf-8?B?ZXFRRnI1WCtobkw3Y1ZLNHlkcWlNY3gvbWxoMTZHWTdnVGU4VVM1bDkxQmo1?=
 =?utf-8?B?eEtrWlpVTVJYb0hFU1RybXpVUVFKeXY0WTd4MWJEZlZFbCtuNUU0aE40Z1ZO?=
 =?utf-8?B?R1VXT1BtVTQzNVh5amtzamxGNU5UcWlHVE9Od3ZueHRibUNLQ25hdVhKditk?=
 =?utf-8?B?MktIbHlGU3gyeUtnREdmR1paTjdVK1ZrMWhMZ2JYbVQ5WUZHMExIK0gwc2NV?=
 =?utf-8?B?UGZHNm9td09oOVdSMm1HVm5uNmVPOTVGeVlnNldvSENKRmJiSElDWGczeUts?=
 =?utf-8?B?UkM3UTFuVWZmZXFnRVRxWE9VeVMraW5oTlhYUmo4cGUyK04ydGxBRTVFcTFo?=
 =?utf-8?B?eTRDMDVhWC9yS3Z5eU9yVlFqcDlTbXk0elN1Tk9WSkg5d0JCSjZEUk1FcGxN?=
 =?utf-8?B?Z2xweUVvb2xaQSs5K3Z2UVA5d3loRWRFN1lMODA0S0NlblZicUYrY2g2d3pi?=
 =?utf-8?B?K05tdG1UYnFMdlRjemFtcnRvMWdjVnRNUHhIRXVYTVJHWEswdCtyOHpJVlNM?=
 =?utf-8?B?a3NsNVlvdDJVM1NCNExISGpSbUMvclBtVVdscG9EMVhNVjcyT28rTnRMQ0xx?=
 =?utf-8?B?cHpHVFdyc0h0Q1hmN3hCQUNxc0F3QjdNbXhHT3NvUklHcmNONm9POWZMUVRz?=
 =?utf-8?B?aGdZSThXcXAzaE5DVEVjQ3lUVXFTK3RYQnJ0WWJmMGl4WCtNd2lsTWJKeEdw?=
 =?utf-8?B?OUtCK1NpR2xTYVdFTWFMZTR0eUlsRjM4dTcyb1N4MndzYUlpelJocFJFdllk?=
 =?utf-8?B?UmJzSzZDTUlteHlkS3JPMEdBcTBReGIwNzl0Y09tN1BLZC9nblhEMk11Nmxu?=
 =?utf-8?B?WGFSUWZSWXpvMUNway9NUmgvWUgxSVlJWVdmUytHcDhaNEtLbW43TllsR05Y?=
 =?utf-8?B?b0ZTNE9VdDdtek9TRGJNcE9LaUFTWkhNdXFyd1plV0tTSmdUWjJ1R3RYcTRJ?=
 =?utf-8?B?a2NKcTdTZTVNS0FwWmhMc29FQzhXaFhwUnE3QTJzQWNhY2FxZVkzTTJ3RmhB?=
 =?utf-8?B?K0NQQ2QreEFndFhLU1IzaG9Ta2dlQ05DbEJXYUxIWVpkWGJjSGlzNFBvcTdl?=
 =?utf-8?B?bm9kN2JBRkR2eUljNXdPT2xTakVVS0lpYjdaUHJOQXZlbitOMEpKRmNzVlc4?=
 =?utf-8?B?M2JiSWYzaVNmU3Q1L1c3WldyeGNjM3NqSmVacE43YUxpR3lEem43VlZ4Nngv?=
 =?utf-8?B?eTdOMjVONzQxN0U2VEZDc2NPWjFHdlcyM1g0NHlQTHNERU55Wi9US2oveDJI?=
 =?utf-8?B?YzlnbGtHdXlqbThSRlZjNitLdGZXdkNnczJqbTNKS1VrVjA1UGpCcVNkT3VC?=
 =?utf-8?B?VHhvbTdTazZjYUxmRXU5V2dTMVFicHhmdEhtbGZ3SjB6M2g2b0hGanRocU5P?=
 =?utf-8?B?VEJmNGFmR1ZJZlJ4RzVFZHN5ZXBOSjJvQnpITjBsQjV2RUJmM3IyS3dvTnVC?=
 =?utf-8?B?Q2ZCbDlxcThOcm1tRndrSktleEwxRVR1UGh2QnprZ1lGY2FrRURwVmRZVWhq?=
 =?utf-8?B?SVpNbmFkUTVBUUMxcEhjR0kxUkprQ3BNZ3Z5bUU2ZWdPLzNBMlhYMjY2aVpS?=
 =?utf-8?B?akNUMGpER2JyV05NdGtjOGt3MHdrSXg3Q252M1RVV2xqVnViZVJwY2pKZmtB?=
 =?utf-8?Q?Bxy7klkDmHC95wSQWY+Pp7zm7irI+oMt?=
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?MndMMDNPZDVZRjBwOGkwUGJMVU11dlorMjFlVWZqeU55NDN2Q3poMGZmQUdW?=
 =?utf-8?B?cGtjMVVrcUNkcW5LS1pKa0xFdFVKK2xQdWpucHlqYitjVUpzRkxqRXF0NWhO?=
 =?utf-8?B?NzVSTXhWV2Y4RjN2Z29VN05GUE1yU3JZWGIrN1FwL2RGK2w4T1dEUG56OE1q?=
 =?utf-8?B?dWlsVloyUHBVM1NFQVpHcmtMeTNVRk9tcXg4ZEVQYWFvOTlpdEltZWdRdFBG?=
 =?utf-8?B?WVZOaVg3V1YyRDJKZmpOZWNVTHhyT0lLV25IRnNBVjlQVEFHY1c5UWhhV044?=
 =?utf-8?B?VHdKSVl2ZkNOdlZwUTFiQWErc0pNRXZ0SnVtNnpxRXh6VXlyeWFKVlE3MEJm?=
 =?utf-8?B?cTR3YzhidU5zNDQveWU3TFVIaE4xWVBMdUdmRW54MVVrUWVwNHcrcisvRXFr?=
 =?utf-8?B?SDdPUmxncWJDTktYUVh4SHllcXJzYVFBb0U2V0RISldKOGxJejdNTHE1Qk11?=
 =?utf-8?B?eEJadUNtWnNyUTNuY1UyOFJlSWZadnlJd2RJV2JIS1dPeHpUd21ReUtjVG81?=
 =?utf-8?B?dXBEdG5TbU5kRWd0UHd0ejcxU01pam9Jb1pxZDBlKy8xdFJhSTJOcnh1c1ZT?=
 =?utf-8?B?SmpibVdoTWhPR1MwdWpCcjI1YkxoREVwSmdtRWpLSEhDbDFJcWpMc21hNDJj?=
 =?utf-8?B?Tzk3bzJXbEo0aHM2SExBbkE1eE1neXl4by9BV0x1Mk1vMGRYQUg4clNxUk5o?=
 =?utf-8?B?U1RXUDFtRnVRZHQ2NGdGbFNuaUZza0kwNFo4dkR3UU9UZEJUNjRHMXFJRWky?=
 =?utf-8?B?b2VJemVHNmM5cUFzNmRKWDZicDlSSjlpRURscnlKQjlJQXplZi9MUHNPWDQv?=
 =?utf-8?B?SFAxS3lKSzhPVEQvQ2g4c1h0TGVTNWNlc1c0OHE5Unc2clRGMlZVbUgxZ1RR?=
 =?utf-8?B?KzZVY2NLUTQwdUlMUitmZmQ0ckdCOFRtdFY5MS9zaFEzNEdJQWZLNk8zY2Ft?=
 =?utf-8?B?TXJLNTJOOC9NbkQwRzV0dkRPT2NsdktPSXI0R0lwOGkzR1dEd1doZURwRDl0?=
 =?utf-8?B?YWltTWFvWFZQUVB6TVRKRUtoN1RXUW9RQjJJVkZFL0ZUS0RXV2xZQ0lPT2hz?=
 =?utf-8?B?blF0cGwxVDZCc3N1dzQyWUtLVks5bUMzQWlmNkZCcS9zSGJFUnZFeFpXUmha?=
 =?utf-8?B?Tlk3RlRDVDBVcExGRzNuejRNZVVvV29nRFBZMm03RnJBYXhtTFJUUVd4OEhZ?=
 =?utf-8?B?SVQrMXZ1SGVyRGl2dEt6dEc5Vkk3N0tvcldTbUZHYTZEVmNFTUlWYlppUHY0?=
 =?utf-8?B?ZTdLZWFocXRsOFdjZWUycUFyUE54UThwSlpxbEVMTS90TVdjaFhmTS9GcS9x?=
 =?utf-8?B?bmVRYnNrVEFWTmloZ1NFYmR4NTlPYXNjbGtEcmpxT2QxVG5yT0RDN2FKS3VV?=
 =?utf-8?B?MFBEWmFsYW1ZZG13ZEtuR3hlQWVoNzhKN0pXUEpyTFY2UUR6Lyt6alVycmJy?=
 =?utf-8?B?Wm9qd0R2WEIvb09pUklVTmtpQUtrVlBBLzJLM2RGdTFSdVhBM0c1bU4rNkZm?=
 =?utf-8?B?QjBpd3NaN2hILzM2TXVXUHBrK2Z3ckpHYldYQmRFNDlRVUE0aXlza2tqaVRZ?=
 =?utf-8?B?ZW1yQWdUTkJZY2ZVMnloWFh2clBiaFJrZUU4VE1UWlNqTWJYOVJxWHlwa0pW?=
 =?utf-8?B?cExPd2FsUlg2MnZLajIwMk9PMGE0d1BQV3Y4Yk96aUhQdG51TDlraSsvdTdL?=
 =?utf-8?B?aDFkeXNOUDRkcDhaNHBjSHFkaFhqREtuYVJrYVpqa0pPZHpHVkZ3TXRTSENr?=
 =?utf-8?B?Yk14MWJJN1NHWkc1MVdiUWZZWlJZMlRsVkVjSW1JKzA4cFYzYWZGUEI1OGpC?=
 =?utf-8?B?UHdWM2Q4aHptelBVZ3NaWkRRQkVYUCtTQmY3RUlQaWIwMzViZWFHRml4bGZD?=
 =?utf-8?B?VTRRamFScTRqTTVtcDQzRE1QZWFrQTNTYSt1RC9aU3pxMGhHamJLYlYvVGpK?=
 =?utf-8?B?RXNiZm9HUDRmWFVHSnFnbDAyWUZnQlBmQ1JzNHFNT004NUw1ZGVtWDhac1M0?=
 =?utf-8?B?eS9wVVA1MXZ5L2pZQ3pqRmpTUDJHcllKUStSeEpFc2tDWmFDS3hTMWE5NTdF?=
 =?utf-8?B?WGhqaFNRRy95QWJpTjYzRjU0NzNCbG55N2xNQkxOTXA5bFZyYkFIVVhBL1Ju?=
 =?utf-8?B?WjhVeE5lcGY2MlZrb1hnSlp3WGpwMURoS28vQTRJUEthelJjekV6THJPWHFB?=
 =?utf-8?B?ZGc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 10f75012-78bb-46ff-1f23-08de2cfe3d68
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 15:12:39.8454
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: i2pc6q2FuWWkzI5gjAttfMzKfPMdHo1mbQcQUno3DJtyH1ruwNwfD/FaLYrEEo/tuVZr/+meiWAK0PHdYtspJWmoD06O4u9AXQBOoYrgYuo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB5983

On 26/11/2025 2:19 pm, Jan Beulich wrote:
> On 26.11.2025 14:22, Andrew Cooper wrote:
>> When re-scanning features,
> What exactly do you mean with this, outside of XenServer (i.e. upstream)? The
> only thing I can think of is recheck_cpu_features(), which calls identify_cpu()
> and hence init_amd(). Thus ...
>
>> forced caps are taken into account but unforced
>> such as this are not.  This causes BTC_NO to go missing, and for the system to
>> appear to have lost features.
> ... I don't really follow where features might be lost.

Well - it's a feature that we started upstreaming and I still hope to
finish in some copious free time.

Already upstream, we rescan the Raw CPU policy after microcode load.Â 
That has had fixes such as dis-engaging CPUID Masking/Overriding so the
Raw policy comes out accurate.

The next step (not upstream yet) is to regenerate the Host and Guest
policies.Â  I recently fixed a bug in XenServer's testing and noticed
that the underlying logic had bit-rotted quite a bit, hence this series.

The purpose is to be able to activate new features added by a late
microcode load, such as new speculative defences, or simply provide new
FOO_NO bits.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 15:19:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 15:19:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173035.1498129 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOHIa-0001mD-Qo; Wed, 26 Nov 2025 15:19:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173035.1498129; Wed, 26 Nov 2025 15:19:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOHIa-0001m6-Nk; Wed, 26 Nov 2025 15:19:16 +0000
Received: by outflank-mailman (input) for mailman id 1173035;
 Wed, 26 Nov 2025 15:19: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=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOHIZ-0001m0-RP
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 15:19: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 42219654-cadb-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 16:19:10 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4779a4fc95aso7188345e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 07:19: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-42cb7fd8baesm41395248f8f.39.2025.11.26.07.19.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 07:19: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: 42219654-cadb-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764170350; x=1764775150; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KsHU4dxGEv6RrKQhhKegdFM7bQurrwyCPfkSzmID0bk=;
        b=Oqn3u+X34hyA/AWPVVqCHaXdwbtzr9CDQC/2rYNKWroUnsb+Tj1jJRHhCKRS8JKNHy
         ic0hdXDu2SKVlkoabteUFgsYv5XhNINOaAZAxJcbdBJSb0wMFt68VohxHKlDxIw8pvZ9
         3slyNRwfebXsAxDQ+w52hKBUPyrRsx8Y+qcRiWVdOymrHEZ0luSN8/ZPLlXnTRF31RLc
         oWI3fua2qSvbKEVmwiIDdtfq2vXtoMfHZw4pIg27RaeBi/2UHrBUw3DZz5V6IZ8SAz0M
         nj5Zb1QOpCoLA1oFxGZR+ZbrCHE3iF/RQaiofzolFG2eJJOchkmC4uHw83f2caj34fAn
         t/Iw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764170350; x=1764775150;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KsHU4dxGEv6RrKQhhKegdFM7bQurrwyCPfkSzmID0bk=;
        b=UTxZx5YJhy/3C2t7UpCjvsjtIklM/b+JpPaDa+DZTGFyHPfrJYL0H6+Ld1lQ1g7NjI
         5F/N5hzDVdehkvKp6sDP6dxOOaESNdFsKrUAtpUBuY21pgFTTaByj3c7lpdeTsPQhptz
         YuQ9/Cd7N+rmIf6MR5VydCl08D9243c7ft7gAltSc/7tddRGlguEPFA9Xd6nBNTmpY3E
         NAwC0l1fHqUSY8KFc4msolZsPmMVjcVAcJeAWdaYYqSpG2EHvRbK+ft39uBrMjaanztd
         07es0sw5XC8zfBYDwn+p6RAaVBOemGsKnSM/yj/8TVeRoKufKugXB8y5IIMj+zHw2dCh
         Q2nw==
X-Forwarded-Encrypted: i=1; AJvYcCVGYXb4Nfo/nmRaATcteblkwPkBfz5zgdGTgT2mK3Z7wsqpAc+Nyrkval/o+da6YT03Iw3BF3y0TSU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxSAx+5iCBTQWz3JSB3abpGrWlGRXf4d8nVXQvv/ou4RchRdqMQ
	U71lTdDo/EzAk0+axenAHVaXsjz9X5GzcLBAP/GEM4cv0w4oxxuEK3BkCWYUTqs7bg==
X-Gm-Gg: ASbGncsyDDM8J4FbASp397QWCaTG8grp3kwCsI81OLdPJkPdEepli2hxefTsTygGbIR
	Hhqu9+N0bo7OLHptgZwcMdm5uwqYr9YA4my89kTr88fSWtQNwexHmOTP9bIygm7tnC+pgnWxZeO
	9eshkUVQEHu909l3S0Anm4hDJsVM3fss5iEj6D/1JRmzBaF/DvTWQbC2P7ijC3X4Ew4ZvK6N7BB
	u/MVoaPro7wPfECfjm9ta0on0suqv2ZwBRYF727QfELCV7AwIqy3ozDemqcdTRBMqJZvF8Sphjv
	Nh3XMamJ9C68qXEa5eDP/w+nonUoM4n4IQQat9I8aAy3RKoXuIEFvpi3sser/Bq9+q/5EMAsui4
	2RXATG/3Fp1C9E4AG8O4x204ewnPQMMT+3Gv33NmY9yWVZwWIjcRBE0fqCpyueC37BqWfQhuph7
	EEn3NK+KZ+8WwL3uBMoEEz+2Esn809XclyL7yBHCfCdazRRV4Ynpfr1IYFMFhgpijbRpqbMRZl/
	yI=
X-Google-Smtp-Source: AGHT+IESstNzAHd9xz3EcCuyPNk0VoK5VqapXPC6oI12EoyPUdBc0VoTT1llGexBIhlgQ2AL8OfLJQ==
X-Received: by 2002:a05:6000:1844:b0:429:d4e1:cb9f with SMTP id ffacd0b85a97d-42cc137bd1bmr23794014f8f.22.1764170349899;
        Wed, 26 Nov 2025 07:19:09 -0800 (PST)
Message-ID: <1930930f-d9a4-4ad2-b6b1-5c138227924f@suse.com>
Date: Wed, 26 Nov 2025 16:19:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/domain: introduce generic functions for domain
 struct allocation and freeing
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Roger Pau Monne <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, xen-devel@lists.xenproject.org
References: <b5c703a64c616d6321f8a98cd28f0659838d41df.1764167337.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: <b5c703a64c616d6321f8a98cd28f0659838d41df.1764167337.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 15:32, Oleksii Kurochko wrote:
> --- a/xen/arch/x86/include/asm/pv/domain.h
> +++ b/xen/arch/x86/include/asm/pv/domain.h
> @@ -18,6 +18,9 @@ extern int8_t opt_pv32;
>  # define opt_pv32 false
>  #endif
>  
> +unsigned int arch_alloc_domain_struct_bits(void);
> +#define arch_alloc_domin_struct_bits arch_alloc_domain_struct_bits

There was an 'a' lost in the identifier.

> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -799,6 +799,29 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
>      return arch_sanitise_domain_config(config);
>  }
>  
> +struct domain *alloc_domain_struct(void)
> +{
> +    struct domain *d;
> +    unsigned int bits = 0;
> +
> +#ifdef arch_alloc_domin_struct_bits
> +    bits = arch_alloc_domin_struct_bits();
> +#endif

Maybe

#ifndef arch_alloc_domain_struct_bits
# define arch_alloc_domain_struct_bits() 0
#endif

ahead of the use and then simply

    unsigned int bits = arch_alloc_domain_struct_bits();

?

> +    BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
> +
> +    d = alloc_xenheap_pages(0, MEMF_bits(bits));

I'd go a little farther and allow the arch to specify all the memflags that
are wanted. Then the hook name would also be less ambiguous, as "bits" can
mean many things. Perhaps arch_alloc_domain_struct_memflags() or, since
"memflags" kind of implies allocation, arch_domain_struct_memflags()?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 15:25:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 15:25:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173050.1498138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOHOE-0003Rv-GQ; Wed, 26 Nov 2025 15:25:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173050.1498138; Wed, 26 Nov 2025 15:25: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 1vOHOE-0003Ro-DY; Wed, 26 Nov 2025 15:25:06 +0000
Received: by outflank-mailman (input) for mailman id 1173050;
 Wed, 26 Nov 2025 15:25:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=JzEl=6C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOHOD-0003Ri-MM
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 15:25:05 +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 145d8e7e-cadc-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 16:25:03 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4779a637712so42406845e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 07:25: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-47906cb9715sm43983675e9.2.2025.11.26.07.25.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 07:25: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: 145d8e7e-cadc-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764170703; x=1764775503; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mtssqZqnKkd8hqZPvfPDNLlSBhfYx6dXILpNJhil/O0=;
        b=CwmoJ4/UIwDDjFMRLbSd+JEJBVaByoYxOCWeyQXuPq4xCPRsvOVSBF+ouXsL5gySsq
         KKqnDlrpEicTe5qWJvSmCdIH9C/mu14duF26nQMdL9cR9mZ8+uJg6to+I7kHqjWK2N6g
         ZoFvvzvaYT10Exu0oc/6OrVlz7egnXmqkFGrB6YGOnXvPxD7wOnpa17fkP9C5YX/PKve
         POQ+Iv0RO1sbdGbHmrUa9XNITcCn/7lE1YeHJeeLiaO5zmlDIneUEA1d9Wtd6nn7R15y
         2inFZmIwK1OXwx6DWKp0DNw28m4rZ296rpGKYwXrMkRsAarAgK9+6NQmY2T1Uz5VK0k5
         7K2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764170703; x=1764775503;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mtssqZqnKkd8hqZPvfPDNLlSBhfYx6dXILpNJhil/O0=;
        b=EblD0tqOZLJNNuLNXUuFrnYje0rsyUO/9GITbJBPdok2Qg0JYYtaSjcc1ofbnvIz8b
         3nUGVFUD50mE4PtWBX0g2nP8oj2ftIMJNo8sQQEHyukjRkZGBVIf/l/m3lDOVU5kCkKI
         f3qtvGJPVryHiCqzPZuMBWXmtWq1yy2H445ObA85zdcmwr2+w7U6b3cow4wc7jrqGWyJ
         Da4fkxq0diaUzf+JR0cEsjtHthHe2ZteCWG9nnl6mzal+zaVW/iXw9h8DjwMXtzIpvpl
         I55dzZ3GpUh6ynr8A/Dqcgmz2BVp6M9lvLymiAIz65MPc/PBWjzYwoVqcSZTRgZP9k70
         rvJw==
X-Forwarded-Encrypted: i=1; AJvYcCXtExjNpOGpxUEULObKv9S3xn8qOnKhjmLsK3pgNJdhAZgyXdWtbcOTFBI5thOYYKGgdtBtQ7Q5mw0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yza7UhmEIOHJiXSudbvTQPNdRR9rMuQNZlAY9IyzA/0E0XeSufn
	oWtm9MB3hz6txGakg9BibPdFo/3adZQgkZOLDgmFSbA4ae8+TzPYiWe7z3b84JDd7w==
X-Gm-Gg: ASbGncs/TQ4HlSHYjRaR6tm3fR4PNRzPBevOmcok+wOKjW1QXBWIrEXELb9EfWCX26i
	fQbcgTRc+p9Z8h5FYlX0dkBjrGaLRZfq/O9ImVmXl/C9mFvilG7IkHQ/+wuYi9JfVQgDbumzyKD
	gtnqZEDtZ+yDqno+vV9saGaj5Ws0Z4GzLoFkyhoGeMmyXZh6BNn5Oy1ase8oq0ki2eedDNngCYB
	69WqS44QcY8aLdpWw0bGc39HrhL+RezL2zTP+wNzNQ2bcyvH+q53McwRxoGZIMqxSyBbA2euAsR
	nn70XXHy34czmDVSo6HBGDbkDsCtyGQgEgfPilzv2qudF8+sRnOwWpgGZOuwBo1MUod6PAuHQnW
	A9jtazs9K2qoQ4aduVlfy8Ybgj6uRmLRQ4yXcjBK79bagSNrKL+Q4uz2VOH8rH8ObKuietX6Xba
	J2vUkTr151/3Ic6EvMYewGUH2ythXZNhu5BYLGUKpi4Yy1kDt4cIfBQ7MDJU1g9JphZdw5g2RMp
	bY=
X-Google-Smtp-Source: AGHT+IG8aRYUy3Z5Ssric0uS84QnHRxIRKKzo7uYDrYKI4BlvgCaX6+SYoxky9EMivGhZ5XinBBoeA==
X-Received: by 2002:a05:600c:474b:b0:477:9dc1:b706 with SMTP id 5b1f17b1804b1-477c01b494fmr187997205e9.19.1764170702653;
        Wed, 26 Nov 2025 07:25:02 -0800 (PST)
Message-ID: <9c72cfb3-ed12-4955-817b-84d7c33587af@suse.com>
Date: Wed, 26 Nov 2025 16:25:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] x86/amd: Use setup_force_cpu_cap() for BTC_NO
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: <20251126132220.881028-1-andrew.cooper3@citrix.com>
 <20251126132220.881028-2-andrew.cooper3@citrix.com>
 <ab8dc060-7707-4ff3-a413-730555aefeee@suse.com>
 <fc9adc57-bb95-484a-9461-0751dc91cb1b@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: <fc9adc57-bb95-484a-9461-0751dc91cb1b@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2025 16:12, Andrew Cooper wrote:
> On 26/11/2025 2:19 pm, Jan Beulich wrote:
>> On 26.11.2025 14:22, Andrew Cooper wrote:
>>> When re-scanning features,
>> What exactly do you mean with this, outside of XenServer (i.e. upstream)? The
>> only thing I can think of is recheck_cpu_features(), which calls identify_cpu()
>> and hence init_amd(). Thus ...
>>
>>> forced caps are taken into account but unforced
>>> such as this are not.  This causes BTC_NO to go missing, and for the system to
>>> appear to have lost features.
>> ... I don't really follow where features might be lost.
> 
> Well - it's a feature that we started upstreaming and I still hope to
> finish in some copious free time.
> 
> Already upstream, we rescan the Raw CPU policy after microcode load.Â 
> That has had fixes such as dis-engaging CPUID Masking/Overriding so the
> Raw policy comes out accurate.

Yet that doesn't take forced features into account afaics. So at the very
least this needs to come with a description which more accurately describes
what (if anything) is actually being fixed / altered upstream.

> The next step (not upstream yet) is to regenerate the Host and Guest
> policies.Â  I recently fixed a bug in XenServer's testing and noticed
> that the underlying logic had bit-rotted quite a bit, hence this series.
> 
> The purpose is to be able to activate new features added by a late
> microcode load, such as new speculative defences, or simply provide new
> FOO_NO bits.

Yes, that's a good goal.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 16:20:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 16:20:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173064.1498149 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIFk-0003Yx-BX; Wed, 26 Nov 2025 16:20:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173064.1498149; Wed, 26 Nov 2025 16:20:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIFk-0003Yq-8o; Wed, 26 Nov 2025 16:20:24 +0000
Received: by outflank-mailman (input) for mailman id 1173064;
 Wed, 26 Nov 2025 16:20:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ehTD=6C=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vOIFj-0003Yk-83
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 16:20:23 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ce46e07b-cae3-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 17:20: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 CFF0022D57;
 Wed, 26 Nov 2025 16:20:20 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 3572C3EA63;
 Wed, 26 Nov 2025 16:20:20 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 6YWpC8QoJ2lbLQAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 26 Nov 2025 16:20: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: ce46e07b-cae3-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764174020; 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=Edyr3JIcssZPzLUBYOKLIR47asUKGoc/LXSm51c/xFM=;
	b=kIa4u0inAxEFPkTeqGZCkDZ4D2vt01np+F6+w+3qFtF+GGEHwE9ugJfZ6Z3Yo6AjO61FjP
	3v9F9272z8Wn2iVrpu9JGA1rtfCfw9Nhmk6iBUbyc1P5Bz5G/72+JtiyzYyEz22PWWq8SE
	T15t07/DIftfkmL6PisqLwrZhtKDMks=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764174020; 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=Edyr3JIcssZPzLUBYOKLIR47asUKGoc/LXSm51c/xFM=;
	b=kIa4u0inAxEFPkTeqGZCkDZ4D2vt01np+F6+w+3qFtF+GGEHwE9ugJfZ6Z3Yo6AjO61FjP
	3v9F9272z8Wn2iVrpu9JGA1rtfCfw9Nhmk6iBUbyc1P5Bz5G/72+JtiyzYyEz22PWWq8SE
	T15t07/DIftfkmL6PisqLwrZhtKDMks=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	virtualization@lists.linux.dev,
	kvm@vger.kernel.org,
	linux-hwmon@vger.kernel.org,
	linux-block@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	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,
	Jean Delvare <jdelvare@suse.com>,
	Guenter Roeck <linux@roeck-us.net>,
	Denis Efremov <efremov@linux.com>,
	Jens Axboe <axboe@kernel.dk>
Subject: [PATCH 0/5] x86: Cleanups around slow_down_io()
Date: Wed, 26 Nov 2025 17:20:13 +0100
Message-ID: <20251126162018.5676-1-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-2.80 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCPT_COUNT_TWELVE(0.00)[23];
	ARC_NA(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	URIBL_BLOCKED(0.00)[suse.com:mid,imap1.dmz-prg2.suse.org:helo];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,imap1.dmz-prg2.suse.org:helo];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Level: 
X-Spam-Score: -2.80
X-Spam-Flag: NO

While looking at paravirt cleanups I stumbled over slow_down_io() and
the related REALLY_SLOW_IO define.

Especially REALLY_SLOW_IO is a mess, which is proven by 2 completely
wrong use cases.

Do several cleanups, resulting in a deletion of REALLY_SLOW_IO and the
io_delay() paravirt function hook.

Patches 2 and 3 are not changing any functionality, but maybe they
should? As the potential bug has been present for more than a decade
now, I went with just deleting the useless "#define REALLY_SLOW_IO".
The alternative would be to do something similar as in patch 5.

Juergen Gross (5):
  x86/paravirt: Replace io_delay() hook with a bool
  hwmon/lm78: Drop REALLY_SLOW_IO setting
  hwmon/w83781d: Drop REALLY_SLOW_IO setting
  block/floppy: Don't use REALLY_SLOW_IO for delays
  x86/io: Remove REALLY_SLOW_IO handling

 arch/x86/include/asm/floppy.h         | 27 ++++++++++++++++++++++-----
 arch/x86/include/asm/io.h             | 12 +++++-------
 arch/x86/include/asm/paravirt.h       | 11 +----------
 arch/x86/include/asm/paravirt_types.h |  3 +--
 arch/x86/kernel/cpu/vmware.c          |  2 +-
 arch/x86/kernel/kvm.c                 |  8 +-------
 arch/x86/kernel/paravirt.c            |  3 +--
 arch/x86/xen/enlighten_pv.c           |  6 +-----
 drivers/block/floppy.c                |  2 --
 drivers/hwmon/lm78.c                  |  5 +++--
 drivers/hwmon/w83781d.c               |  5 +++--
 11 files changed, 39 insertions(+), 45 deletions(-)

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 16:20:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 16:20:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173065.1498159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIFp-0003mp-Ib; Wed, 26 Nov 2025 16:20:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173065.1498159; Wed, 26 Nov 2025 16:20: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 1vOIFp-0003mg-F5; Wed, 26 Nov 2025 16:20:29 +0000
Received: by outflank-mailman (input) for mailman id 1173065;
 Wed, 26 Nov 2025 16:20: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=ehTD=6C=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vOIFn-0003Yk-Ok
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 16:20:27 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de
 [2a07:de40:b251:101:10:150:64:2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d1688b9e-cae3-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 17:20:27 +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-out2.suse.de (Postfix) with ESMTPS id AE63E5BE51;
 Wed, 26 Nov 2025 16:20: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 3AB3C3EA63;
 Wed, 26 Nov 2025 16:20: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 4F7vDMooJ2lnLQAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 26 Nov 2025 16:20: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: d1688b9e-cae3-11f0-9d18-b5c5bf9af7f9
Authentication-Results: smtp-out2.suse.de;
	none
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	virtualization@lists.linux.dev,
	kvm@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	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
Subject: [PATCH 1/5] x86/paravirt: Replace io_delay() hook with a bool
Date: Wed, 26 Nov 2025 17:20:14 +0100
Message-ID: <20251126162018.5676-2-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251126162018.5676-1-jgross@suse.com>
References: <20251126162018.5676-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-Spam-Flag: NO
X-Spam-Score: -4.00
X-Spam-Level: 
X-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[]
X-Rspamd-Queue-Id: AE63E5BE51
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org

The io_delay() paravirt hook is in no way performance critical and all
users setting it to a different function than native_io_delay() are
using an empty function as replacement.

This enables to replace the hook with a bool indicating whether
native_io_delay() should be called.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/include/asm/io.h             |  7 +++++--
 arch/x86/include/asm/paravirt.h       | 11 +----------
 arch/x86/include/asm/paravirt_types.h |  3 +--
 arch/x86/kernel/cpu/vmware.c          |  2 +-
 arch/x86/kernel/kvm.c                 |  8 +-------
 arch/x86/kernel/paravirt.c            |  3 +--
 arch/x86/xen/enlighten_pv.c           |  6 +-----
 7 files changed, 11 insertions(+), 29 deletions(-)

diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
index ca309a3227c7..0448575569b9 100644
--- a/arch/x86/include/asm/io.h
+++ b/arch/x86/include/asm/io.h
@@ -245,9 +245,14 @@ extern void io_delay_init(void);
 #if defined(CONFIG_PARAVIRT)
 #include <asm/paravirt.h>
 #else
+#define call_io_delay() true
+#endif
 
 static inline void slow_down_io(void)
 {
+	if (!call_io_delay())
+		return;
+
 	native_io_delay();
 #ifdef REALLY_SLOW_IO
 	native_io_delay();
@@ -256,8 +261,6 @@ static inline void slow_down_io(void)
 #endif
 }
 
-#endif
-
 #define BUILDIO(bwl, type)						\
 static inline void out##bwl##_p(type value, u16 port)			\
 {									\
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index b5e59a7ba0d0..0ab798d234cc 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -53,16 +53,7 @@ static inline u64 paravirt_steal_clock(int cpu)
 void __init paravirt_set_cap(void);
 #endif
 
-/* The paravirtualized I/O functions */
-static inline void slow_down_io(void)
-{
-	PVOP_VCALL0(cpu.io_delay);
-#ifdef REALLY_SLOW_IO
-	PVOP_VCALL0(cpu.io_delay);
-	PVOP_VCALL0(cpu.io_delay);
-	PVOP_VCALL0(cpu.io_delay);
-#endif
-}
+#define call_io_delay() pv_info.io_delay
 
 void native_flush_tlb_local(void);
 void native_flush_tlb_global(void);
diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
index 37a8627d8277..ee399f467796 100644
--- a/arch/x86/include/asm/paravirt_types.h
+++ b/arch/x86/include/asm/paravirt_types.h
@@ -36,6 +36,7 @@ struct pv_info {
 #ifdef CONFIG_PARAVIRT_XXL
 	u16 extra_user_64bit_cs;  /* __USER_CS if none */
 #endif
+	bool io_delay;
 
 	const char *name;
 };
@@ -51,8 +52,6 @@ struct pv_lazy_ops {
 
 struct pv_cpu_ops {
 	/* hooks for various privileged instructions */
-	void (*io_delay)(void);
-
 #ifdef CONFIG_PARAVIRT_XXL
 	unsigned long (*get_debugreg)(int regno);
 	void (*set_debugreg)(int regno, unsigned long value);
diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
index cb3f900c46fc..47db25d63c8d 100644
--- a/arch/x86/kernel/cpu/vmware.c
+++ b/arch/x86/kernel/cpu/vmware.c
@@ -338,7 +338,7 @@ arch_initcall(activate_jump_labels);
 static void __init vmware_paravirt_ops_setup(void)
 {
 	pv_info.name = "VMware hypervisor";
-	pv_ops.cpu.io_delay = paravirt_nop;
+	pv_info.io_delay = false;
 
 	if (vmware_tsc_khz == 0)
 		return;
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index b67d7c59dca0..b02d441efa3b 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -73,12 +73,6 @@ DEFINE_PER_CPU_DECRYPTED(struct kvm_steal_time, steal_time) __aligned(64) __visi
 static int has_steal_clock = 0;
 
 static int has_guest_poll = 0;
-/*
- * No need for any "IO delay" on KVM
- */
-static void kvm_io_delay(void)
-{
-}
 
 #define KVM_TASK_SLEEP_HASHBITS 8
 #define KVM_TASK_SLEEP_HASHSIZE (1<<KVM_TASK_SLEEP_HASHBITS)
@@ -312,7 +306,7 @@ static void __init paravirt_ops_setup(void)
 	pv_info.name = "KVM";
 
 	if (kvm_para_has_feature(KVM_FEATURE_NOP_IO_DELAY))
-		pv_ops.cpu.io_delay = kvm_io_delay;
+		pv_info.io_delay = false;
 
 #ifdef CONFIG_X86_IO_APIC
 	no_timer_check = 1;
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index ab3e172dcc69..8ee952e7e7d4 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -113,6 +113,7 @@ struct pv_info pv_info = {
 #ifdef CONFIG_PARAVIRT_XXL
 	.extra_user_64bit_cs = __USER_CS,
 #endif
+	.io_delay = true,
 };
 
 /* 64-bit pagetable entries */
@@ -120,8 +121,6 @@ struct pv_info pv_info = {
 
 struct paravirt_patch_template pv_ops = {
 	/* Cpu ops. */
-	.cpu.io_delay		= native_io_delay,
-
 #ifdef CONFIG_PARAVIRT_XXL
 	.cpu.cpuid		= native_cpuid,
 	.cpu.get_debugreg	= pv_native_get_debugreg,
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 4806cc28d7ca..a43b525f25cd 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1046,10 +1046,6 @@ static void xen_update_io_bitmap(void)
 }
 #endif
 
-static void xen_io_delay(void)
-{
-}
-
 static DEFINE_PER_CPU(unsigned long, xen_cr0_value);
 
 static unsigned long xen_read_cr0(void)
@@ -1209,6 +1205,7 @@ void __init xen_setup_vcpu_info_placement(void)
 
 static const struct pv_info xen_info __initconst = {
 	.extra_user_64bit_cs = FLAT_USER_CS64,
+	.io_delay = false,
 	.name = "Xen",
 };
 
@@ -1253,7 +1250,6 @@ static const typeof(pv_ops) xen_cpu_ops __initconst = {
 		.invalidate_io_bitmap = xen_invalidate_io_bitmap,
 		.update_io_bitmap = xen_update_io_bitmap,
 #endif
-		.io_delay = xen_io_delay,
 
 		.start_context_switch = xen_start_context_switch,
 		.end_context_switch = xen_end_context_switch,
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 16:34:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 16:34:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173084.1498172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOISz-0005s6-O0; Wed, 26 Nov 2025 16:34:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173084.1498172; Wed, 26 Nov 2025 16: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 1vOISz-0005rz-K2; Wed, 26 Nov 2025 16:34:05 +0000
Received: by outflank-mailman (input) for mailman id 1173084;
 Wed, 26 Nov 2025 16:34:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fSqE=6C=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOISx-0005rt-RF
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 16:34:03 +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 b645edbf-cae5-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 17:34:01 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MW4PR03MB6619.namprd03.prod.outlook.com (2603:10b6:303:12a::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.13; Wed, 26 Nov
 2025 16:33:58 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Wed, 26 Nov 2025
 16:33: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: b645edbf-cae5-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZkT1fXGR3OfZS927NyRCswK6b4Y4gWxnehzQaJ6VOxQu/H+Yl+2ram1G0pwbDle2Nax2KUlNrdxXcpdJX5PqtuL+yFkm1wnBV7dZixDIDlE3aNwQ3F5Z8P1hYZtcCzgtBlEBviV/+77AXGzC4jovzpnggXMAgxENCyNuCrtVtCpeqoQ3INdAArJI3u3YvCAFmK/7aTUxFSlSwC/9StES7OrED7ZcoN/pjU+Pip1cX/CMoPuMJw53ZeV/i/wtMnfm5Z7uonCOhlXA8DXHMU8r13YGqo2Z62mTLTM8K9ZIvtw5Cem2LI5peVR+0rYwhTiJCorfofYMhTJzpD5NGXhQ/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=bLfKCpG4/xw1gThi9mjBpYROA4/JDXaMtxiJFo6uvUk=;
 b=FJU17opMwNJ9IdExFHgQqZqsdOK0J9ZBk18AmNE5oeaSAA0Ecq4mB8rvAs8/AzcNoeRuleGfhSMe+A05bfZOka1k3s/82BSHMNWS1iDvFP30dbutWqECu3QU7wt4yu4G2q+ohY+xVpG94UxjRFGyuK7k8MUomypHcGgZeKMpT1shxAUyfGKeewXRO2AVXYq0enLF9QN0cW/XZz2+KD03xxaTRL2GPreNzNJS6bYn0y4+xJD41zBO9qSFaErbKpYMJQf1e47Yclo/wqCMF/LqLiIJC9MIUK9WCT2/wUqdeZXHHe1t1Kf39wqh4zhxp+scY8sgO/TUa68cbArC/ZQjlw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bLfKCpG4/xw1gThi9mjBpYROA4/JDXaMtxiJFo6uvUk=;
 b=ZZ+UTf4wTmeoWpYE38ydy4euDjV/hy33Nygv0l6wMpAff9UJ4PZrPsV1v8qjMAffQaQMNdUnl8lXNjqoxDGtHjX/JtbgK1RU7z8ukezyN6iRadfB3uKeZcXuVsXrtS/w7SIj3DmX4wqfrzkLdWi7Ws0kOv+oYTmXz9pOSZiaoQo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b86968a2-0e61-4d35-a54f-71dc0ce3877c@citrix.com>
Date: Wed, 26 Nov 2025 16:33:54 +0000
User-Agent: Mozilla Thunderbird
Cc: 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 1/3] x86/amd: Use setup_force_cpu_cap() for BTC_NO
To: Jan Beulich <jbeulich@suse.com>
References: <20251126132220.881028-1-andrew.cooper3@citrix.com>
 <20251126132220.881028-2-andrew.cooper3@citrix.com>
 <ab8dc060-7707-4ff3-a413-730555aefeee@suse.com>
 <fc9adc57-bb95-484a-9461-0751dc91cb1b@citrix.com>
 <9c72cfb3-ed12-4955-817b-84d7c33587af@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <9c72cfb3-ed12-4955-817b-84d7c33587af@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0238.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a7::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_|MW4PR03MB6619:EE_
X-MS-Office365-Filtering-Correlation-Id: 3587a8d2-8717-4fc5-fc66-08de2d0998f8
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?bHB0QzBWTTd6YytzTHlkaDZTRmh3RTVIM1QxUVlHdGdNNEJaMUZud0xGNnBK?=
 =?utf-8?B?Rm5yZUN4ZzRHOFVrNDNQMm94VjQvRmR3V1Bab3MyMUZCN0JOU0VFRVZpYjIx?=
 =?utf-8?B?d2JBWXdmYTAya2IxcWNEdVdvbEpPSTI3dTBUVkN0TTFYTkVlcEJ3b3g1U3ps?=
 =?utf-8?B?R0lnUGVRWUw2emtjMGdpdVQxVTNSV251VmZMRHRMcmhqRUFZd3FPZ2YyWnB1?=
 =?utf-8?B?VTkzTGlSc3hIVm1LblBNa0o5NTVnVkIwd0pLVTJpY2todkViUi83QkZpWWRv?=
 =?utf-8?B?S1E4b2RaTTFMZU52Zjl3aEp3Z1lBbFhmRzFldm1nTTAvRVN2SFNLNXVuRy9k?=
 =?utf-8?B?YnZ0UzhYWFp3MjBuekNJbVNhazkyTkM4Ry9ZWUs5V3dOMUliR1oveCt0dnlJ?=
 =?utf-8?B?ZHhsekZweU4wdHY2ZnVQb3RQTVk0VjZwQndBT1U1Vkt3TmZUZ3dtSjJGcGs2?=
 =?utf-8?B?NjhXRFoxRHUvVkxwRWozWHAycHBUNGVYRHdRSEV3bVgzbDZTdHhyQ0g5OVZI?=
 =?utf-8?B?a25ma1czR0RtcmFLMUhDU29aRVUvMjVJaE4xOG9HRVlaRlJxUUhDb0dNQ0ND?=
 =?utf-8?B?aXZrbXJUUy9WVmhlYk1kTkN3VC9pcVk0R0kwcjFKSVNtL1k2Rm9uNklrSWUw?=
 =?utf-8?B?MWVuL0t5YTNRaWhPKzREa0JVYVBudk1DU3JOWmZueVJKcjY3WDlxcit2bk15?=
 =?utf-8?B?Zlp6SlVuaFJYejZiWkhFV2Y3UTJjdU03STc3bzFTT0ZDL2JkaHM3ZzBPcnU5?=
 =?utf-8?B?TWhyZTVEMHdWd0V1b0JvempwU29TRjJVaGIxT3JDbzZZVzRJMXlMSDZZNXNC?=
 =?utf-8?B?NUI3bHpCdnExaGIzZGFKMUZoOGl4dGV3bEFaY3lLVTV4UzJ6Y2pRdkp5TFZS?=
 =?utf-8?B?U2tocmptTEMyRUlVU3lUMWhJdW1iRm5GTCtuNExLWmRzQkhHeWJLdENVZHdO?=
 =?utf-8?B?VjEyTXRKRUdIZGFCOUl5NlA2bXdURnBnT015M0QvMklwbk51TlFuYWZ5bWtF?=
 =?utf-8?B?RVdudnJNSEZHaW5LSkdiY0xMRGU2NXBwWGJjU015RFRUY0VEbFJhckFRcS82?=
 =?utf-8?B?bUdDU3hTakwzTUh2SlhBMVo0L1o1L0NyeCtySk8ybHVDeWRLUHRudWdESURa?=
 =?utf-8?B?YzFyTzNSTHh5czFUSWpFOXZ0NldFOVdyelVkbEtIWStEL1FielVVczBQMkpJ?=
 =?utf-8?B?VUZUTllHaXdPMmNqUStsTkRRM3NKYVUzMCt6TUpLYjdZRjhCVjltQWdjRXZl?=
 =?utf-8?B?S3loaXRsSW1nZU5sMmx3RnFMa2JyaW9NZjFpTGxaN0w4ZXRoSTdDVHpROEZw?=
 =?utf-8?B?MjJ1ZEp6U2ZodGh4RW5qSm0xMmZHVmFxWUdibXVBZzJpNVlqcGFTRHBjK3NY?=
 =?utf-8?B?cTUyb3F2aWpnT0ZrT2xuRUhLSHhUSHl2UVVUZ0lnZWVrNkV4ZG9rdnJUZXN6?=
 =?utf-8?B?M0puYXBvQUMzdTR3Y21EZmowKzgzRWdlbTJxbW5NWEdoaVpGbVRzR0ZpbDhy?=
 =?utf-8?B?N1J5b20xMWVsVzhUNDBkTzJ0UTRYVnFRaU80WGN2ek52b0dDS25sUWtjajlC?=
 =?utf-8?B?cUQ0YnFXcitEU05SbE1BclVXNWN5d0pNV09vdjd1SW9vR3BHTkppZjg3Z0tO?=
 =?utf-8?B?WXZzSFdYZzF3MFBvQkt4ZUlJbTVXeXV5bjdzb3VKTUFqMTVrUisrK1BQQW52?=
 =?utf-8?B?Y0FVNlZVQW5NT0xjV2d3L2ZmUG1IMnhNcmhsVUJ1bzJsZ0ZtOURRd3h6aTFH?=
 =?utf-8?B?U0h1MExvMmJSTUIxcjgrRThVUUNMZkdadkZFcGxWb0VzMmR6a1NsaXRCNk5V?=
 =?utf-8?B?NCs0eENDdmkvSjYrSm8yVk5rTjlXcmxzZm1zdjBVejR5QzFjVFM5SHc4UDFT?=
 =?utf-8?B?VnhnekxidEtLeUY5dTZpb1VlNFdnNS80WEJ6ZjhNTGtGR0wwd0NHdnB6MW1w?=
 =?utf-8?Q?PQjHz4n1z9Te0Im0SOCo8w4G8uqWglnc?=
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?SmlTT29WbGJHMVlNSGpJbmhEbExNRldjYmNXQXdkbTRab3dDcDltdzY4VTJh?=
 =?utf-8?B?L3dwOUIvZ3N3N0FSb2RVNDl3Q2NUQ05ZNktqbVF4TVl2YVBuRGdxa0k3YWlv?=
 =?utf-8?B?Y0hod2ROQWVnQmdpK0hKOGtpclR3Y0QrUW5VZ2N6R0hLL0hlYXdpY0FxdVRj?=
 =?utf-8?B?WHhGWEsxQlhsTGFUbWY3N1o0M254MlZ0Z3g1NG1oMU0wM1lBa0w1NFB5SUpy?=
 =?utf-8?B?VHBFUnZ4bm1zbnU4bkJUTjcydVc4dVFxNGc1bkFjclNXWk92cVlINDFvVnVC?=
 =?utf-8?B?UUJvVEVHa1BNczhzNVRZRGJYNVl3ZmJPN0VIaTBxTWdtMFl6Unl4eW5mWWdH?=
 =?utf-8?B?THlWWkVEMitaYVd2YTA1LzkyYXBVQnJOZWl3RDJJZFBVYjg0VENnR1I2UnZq?=
 =?utf-8?B?MlZlRWwxRGNXNFltSVRVODZVeDhTUXpjTmUwbGp6T1NNbFZkZzdXbFdVMTJB?=
 =?utf-8?B?MlN0UCtFcXlLc3VTanc2dGRFcE1BeHpYaEc3RzBrYlpERnM1MDJDcmVBL1lL?=
 =?utf-8?B?UWtMeUJLSjNsVXRPSFpEN0tsL1BveEJ6a05qMGc2MzllVm1pbzRjUDRGUG5D?=
 =?utf-8?B?K1VsemM3dFB5UWlSSlFDdEpLa1IzSEhmU0NQWWRqd05LbjlUMkVpSXUrOXVi?=
 =?utf-8?B?bEhpUjZaN0w3K0tqT3FTUlp3aFRXb1ppTFR2OUllUUg4cjFoUkp4OTcvRU5z?=
 =?utf-8?B?bE5DUjlHQlhQMGloOHRnMHhuUTh4WGEvd2FpTWt2Z3AwbDkxNTNmcW1YRzlz?=
 =?utf-8?B?eVRBMkR4eko5bDcySXBVU3Q5QUxudk4zM2tYdWw4U3pVbXlWM3l1bXdVWXNG?=
 =?utf-8?B?RUVZKzBIRW01d1JzY0E2N3cwM1N5OXRmdVBDUFMvMElwWTZ6N1QySUtrVmtS?=
 =?utf-8?B?bTRaUlk4RFlucENNYXcvSHJxQ3YrNFp3UWZ3ZzNwN0Jzam5xQ2x4ekluWity?=
 =?utf-8?B?ZldvbjFGYlpQVWtsa3FCcWVtVERzQTRzRWw0SW9sVVhENEdnelVad0tBK1Nm?=
 =?utf-8?B?YmtzVDUranBQRXk4N1IzaDNnSmtjQ2FHOU51eE9UeUVhVzRqZDZDbTVJS2Yx?=
 =?utf-8?B?aVhoRXFxbVBPcWM2VnRPczQ5ZXZraGNOWFhvejFNUHA5N3ZSaTg1Y1VZYlIy?=
 =?utf-8?B?YmxpVW40QUNQNFNoUEZzOHIxTm9OQ21CUVRPWXVmT25HTlBEN0NPT003MWlP?=
 =?utf-8?B?MUVSa0gxaGdiWVNSOUhCdW5IS2Nub0xnRWYxYkI4b3llTWhPOGJMYmk0RGsy?=
 =?utf-8?B?ZmRyeFdjVkJGQmwvQ1BFY2dtVEtYMDJTR05rYTNkUlBuUGlEMmhjUjFyb29w?=
 =?utf-8?B?ZUFLaWczZm1CSzZLYkdFOGFhRTRDRFRtK0hkZlE2M2IzYWMzYXVyT2lBbjJJ?=
 =?utf-8?B?Qm5PMVlsN05KdjVRUEc3KzYwUm5wU3hPcWdUVmJKVnJPZjQ3T0tWMlhFTEhN?=
 =?utf-8?B?M0JuamFQVTRTYm4zVkxjb2ZvWXo5TWRjSmlheEQvcHkyV0tQcTRKWW9DSFFu?=
 =?utf-8?B?U3NQaFlZM3pGa3JnUTVwWGVSUUJGRUcrNXdTMENiVzZvbVFxMGExYWROcE5C?=
 =?utf-8?B?OXZOd01sdmhRTGFUL0x0OHJKVDBQRHQ1cnRSQk5XOWVqL1liaTNUMHJENVFK?=
 =?utf-8?B?SUtZR1BlaTlMWDRRcGxYYXlNakllcXNObVRhcU1DT0VXU3ZUMG51dXNFUmtT?=
 =?utf-8?B?aDBod2ZhSWwwdnBpMEpBUlBqNjlzWGFRSWV3aDhBQ0hadVdLajBNRW8vZHYy?=
 =?utf-8?B?S0c2R0pCYUprcEZyWGpvS1RCWjlRb0dvbDRjMnA2RjNZU3l6cW01TWVXM2RV?=
 =?utf-8?B?MGFEVlZMTnQ0S0NqRUE5SkxvSEhGRHRxZnlqajFKMzlDT3RISThwYmlWZ3BY?=
 =?utf-8?B?N2dHeWZNTit3QzBlU0dUUUhhRnhZbUZsU1Fld0lZdEdoTUxSWHQ3cGVjMVA4?=
 =?utf-8?B?QlRlSjMxL3l4MWpFcE5CeHlablpzNitFV3lERXIzbERiVWtkYkVCd2tpbUcy?=
 =?utf-8?B?clVKL0htOXJFZlNJc3BZUW5IemJvOHNxRGZlWE4rM0xkZXp6bDNKbXJ5Sndv?=
 =?utf-8?B?dFQzS3MvUzFuZnRKYUpVc3RpMGxCeFpvSWZ6UVI4amR2ajduU2VrbVMyMUtv?=
 =?utf-8?B?My9vMzd4MjF1TUUvOWhQUlNpUkswMXIzZ1p3TVpDRVEzYWRvNnpkb2Z0UVNK?=
 =?utf-8?B?N0E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3587a8d2-8717-4fc5-fc66-08de2d0998f8
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 16:33:57.8297
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6vPEXZty4SFuRG/iobWHrZ5cWWexge7kWcnhudc3yPr5f7D9/Gemu9iJY7yga0S7Vv1+hmX+JuwVORNbq/nnDBEpvHdxv8v4D4YtwX2i7hg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6619

On 26/11/2025 3:25 pm, Jan Beulich wrote:
> On 26.11.2025 16:12, Andrew Cooper wrote:
>> On 26/11/2025 2:19 pm, Jan Beulich wrote:
>>> On 26.11.2025 14:22, Andrew Cooper wrote:
>>>> When re-scanning features,
>>> What exactly do you mean with this, outside of XenServer (i.e. upstream)? The
>>> only thing I can think of is recheck_cpu_features(), which calls identify_cpu()
>>> and hence init_amd(). Thus ...
>>>
>>>> forced caps are taken into account but unforced
>>>> such as this are not.  This causes BTC_NO to go missing, and for the system to
>>>> appear to have lost features.
>>> ... I don't really follow where features might be lost.
>> Well - it's a feature that we started upstreaming and I still hope to
>> finish in some copious free time.
>>
>> Already upstream, we rescan the Raw CPU policy after microcode load.Â 
>> That has had fixes such as dis-engaging CPUID Masking/Overriding so the
>> Raw policy comes out accurate.
> Yet that doesn't take forced features into account afaics. So at the very
> least this needs to come with a description which more accurately describes
> what (if anything) is actually being fixed / altered upstream.

I don't know what more you want me to say.Â  It's not a problem per say
in upstream, but it does come about because BTC_NO is handled
inconsistently to the other FOO_NO bits.

recheck_cpu_features() papers over the issue by re-invoking
identify_cpu().Â  It's necessary for S3 resume because all of
init_$VENDOR() really is needed, but it looks bogus in
smp_store_cpu_info() because it's repeating work done immediately prior
in start_secondary().

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 16:37:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 16:37:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173097.1498182 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIWh-0006Up-BJ; Wed, 26 Nov 2025 16:37:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173097.1498182; Wed, 26 Nov 2025 16:37:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIWh-0006Ui-8H; Wed, 26 Nov 2025 16:37:55 +0000
Received: by outflank-mailman (input) for mailman id 1173097;
 Wed, 26 Nov 2025 16:37:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=K59t=6C=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vOIWg-0006Uc-6I
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 16:37:54 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 40e409e4-cae6-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 17:37:53 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b739ef3f739so676149666b.1
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 08:37:53 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b766d386665sm1612890266b.53.2025.11.26.08.37.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 08:37: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: 40e409e4-cae6-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764175072; x=1764779872; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tS/pKReLatHsMGWTfXEMg3NYcFBNhlBAwxjHuNsie90=;
        b=Pd1n04knlfIU+AsGrw67XUuAS+Rnt202haLoHyGRMCCWT8tpveTe0tsYRt7jVU2Ir5
         T5RLZesIeKsTOpkoHwltd+YhmGkB4S3V59hSZOGTVI4EAWuOSEm7wDNyrouZjQ52uPbJ
         TEd0mQ6tVSIYzouiXCfGKnxk2j9lm+3Pm0PEJvJ2oLYSASY8GZZ7Cx8SxPrf+wZ6FIdr
         OgKPCb1g0FvnY7GfKSBXp2G7urxVkNitV0BJ2a7extuyGJBjHY8wueMnz6J7/ozyKCiO
         jR6Kop3eDPNkEubxQSrWiHilqpnj26i042MXU8JDh4d9QesUqzE7gVHA1inp3bhctI9k
         Jj+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764175072; x=1764779872;
        h=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=tS/pKReLatHsMGWTfXEMg3NYcFBNhlBAwxjHuNsie90=;
        b=wOD84ZL5L1WI0Y5Ut9djm/nMs7/fBlPqv0/Z7TEgoc4h8dEiUbdBm25t46OsFzTT9e
         Bu8nPf902gaq7vY7hNO5a/FyywyjIF7jB3NbmmF78jkLOTQc/AdkzuIl3M7rEYakbfpR
         huwBVSvIgNk/wYiVk82cTHWLRmAi3fEPqSjvgHlhz58y/k5zfzVc/ybrcE8as+AnNYXq
         WGSuiQrcajJt8F7sLdRI41VZm1MEZcNeCXmiDikfdkwrRvrbyWtxbADjvAiOiZWz0vru
         lkua/6F6YsRGFmnIOQ6oe+Ddr5hwW6hb7ArCBHReKwqZKi7Hy8wNIdRfCVxuRJF8S/Q/
         o7Hw==
X-Forwarded-Encrypted: i=1; AJvYcCWZW4v6kN2R0eORr0siBoBxfrLbnA9mP61Inz/Fyzy1tlpL9Sl4pdp54XWAFS+Rl0zNaqsY6xebirs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzmwVbZzvkkPkWVL64gYIWbawJvvGjlyma7zgladOtBzkbEFGlh
	EVQ4AaGUXUcaNALt0JpaJRPTbiVaUrMUa1iFwacW7ocjhXCa9xp0ICI4
X-Gm-Gg: ASbGncupkRcRsnhqLXPeDGbZO055Fp1kMVwyDZkvIBqrJPTWb3CgB0Mf5BDKqsvI3ao
	9t0xc0TjgYV917j/uBK7BEnP8Wu7IcTDTKNp6Qo5pWGS9s579rCz7GVQGaue6BGdydlh/WxpV8t
	Ujt0q7kXO37ioAdIA5mvg952COxM2vV+KIZGjQX9N+jcE9GBIWaQhCK6LT3x+QPMRkNUp+EwO5h
	rtnqRZ8ABG2KVdFTmYLfCf/q/EFw3YWArWHSCp0ZQfsvlQBMvbo8u/R/zmd2Lcs5kaN9zfm4CX1
	iQ3SLOola1Y2JU9zQg0fiYx8LX47riO31WcTaAfCQ/PEY0Jn/484rbsicO67FJLIETq058kAKW0
	IHD8hM/fAHVO+vggrkrwj702TbHqZf0i3N9R9suygMCzPUUCmxySMxlwM+pETlAhgm17tonUwP/
	ex/7GOZ/PyBdO59RNmWC1ZBY3ypio7SCF+esNJfPXx1oDbv9F7CkdmuZqXU8gRUnVm
X-Google-Smtp-Source: AGHT+IHgenN/yaNpDODtBs7+7EYP/9LMWr/Bgg8q+gfOk7Dh7zDZHzElHm4ZtD1L2sOrsOWCAxvKZQ==
X-Received: by 2002:a17:907:7e9e:b0:b71:1420:334b with SMTP id a640c23a62f3a-b76c546da4bmr658491566b.8.1764175072064;
        Wed, 26 Nov 2025 08:37:52 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------SB5jDQiNuzlX7dmqmsAAhC70"
Message-ID: <7c66aaa5-bcc5-4da5-872f-8b8a690c9a24@gmail.com>
Date: Wed, 26 Nov 2025 17:37:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/domain: introduce generic functions for domain
 struct allocation and freeing
To: Jan Beulich <jbeulich@suse.com>
Cc: Roger Pau Monne <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, xen-devel@lists.xenproject.org
References: <b5c703a64c616d6321f8a98cd28f0659838d41df.1764167337.git.oleksii.kurochko@gmail.com>
 <1930930f-d9a4-4ad2-b6b1-5c138227924f@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <1930930f-d9a4-4ad2-b6b1-5c138227924f@suse.com>

This is a multi-part message in MIME format.
--------------SB5jDQiNuzlX7dmqmsAAhC70
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 11/26/25 4:19 PM, Jan Beulich wrote:
> On 26.11.2025 15:32, Oleksii Kurochko wrote:
>> --- a/xen/arch/x86/include/asm/pv/domain.h
>> +++ b/xen/arch/x86/include/asm/pv/domain.h
>> @@ -18,6 +18,9 @@ extern int8_t opt_pv32;
>>   # define opt_pv32 false
>>   #endif
>>   
>> +unsigned int arch_alloc_domain_struct_bits(void);
>> +#define arch_alloc_domin_struct_bits arch_alloc_domain_struct_bits
> There was an 'a' lost in the identifier.
>
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -799,6 +799,29 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
>>       return arch_sanitise_domain_config(config);
>>   }
>>   
>> +struct domain *alloc_domain_struct(void)
>> +{
>> +    struct domain *d;
>> +    unsigned int bits = 0;
>> +
>> +#ifdef arch_alloc_domin_struct_bits
>> +    bits = arch_alloc_domin_struct_bits();
>> +#endif
> Maybe
>
> #ifndef arch_alloc_domain_struct_bits
> # define arch_alloc_domain_struct_bits() 0
> #endif
>
> ahead of the use and then simply
>
>      unsigned int bits = arch_alloc_domain_struct_bits();
>
> ?
>
>> +    BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
>> +
>> +    d = alloc_xenheap_pages(0, MEMF_bits(bits));
> I'd go a little farther and allow the arch to specify all the memflags that
> are wanted. Then the hook name would also be less ambiguous, as "bits" can
> mean many things. Perhaps arch_alloc_domain_struct_memflags() or, since
> "memflags" kind of implies allocation, arch_domain_struct_memflags()?

I also thought about returning memflags from the hook instead of bits. Lets
then return memflags.

I will apply all other comments too.

Thanks.

~ Oleksii

--------------SB5jDQiNuzlX7dmqmsAAhC70
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/26/25 4:19 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:1930930f-d9a4-4ad2-b6b1-5c138227924f@suse.com">
      <pre wrap="" class="moz-quote-pre">On 26.11.2025 15:32, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/x86/include/asm/pv/domain.h
+++ b/xen/arch/x86/include/asm/pv/domain.h
@@ -18,6 +18,9 @@ extern int8_t opt_pv32;
 # define opt_pv32 false
 #endif
 
+unsigned int arch_alloc_domain_struct_bits(void);
+#define arch_alloc_domin_struct_bits arch_alloc_domain_struct_bits
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
There was an 'a' lost in the identifier.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -799,6 +799,29 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
     return arch_sanitise_domain_config(config);
 }
 
+struct domain *alloc_domain_struct(void)
+{
+    struct domain *d;
+    unsigned int bits = 0;
+
+#ifdef arch_alloc_domin_struct_bits
+    bits = arch_alloc_domin_struct_bits();
+#endif
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Maybe

#ifndef arch_alloc_domain_struct_bits
# define arch_alloc_domain_struct_bits() 0
#endif

ahead of the use and then simply

    unsigned int bits = arch_alloc_domain_struct_bits();

?

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    BUILD_BUG_ON(sizeof(*d) &gt; PAGE_SIZE);
+
+    d = alloc_xenheap_pages(0, MEMF_bits(bits));
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I'd go a little farther and allow the arch to specify all the memflags that
are wanted. Then the hook name would also be less ambiguous, as "bits" can
mean many things. Perhaps arch_alloc_domain_struct_memflags() or, since
"memflags" kind of implies allocation, arch_domain_struct_memflags()?</pre>
    </blockquote>
    <pre>I also thought about returning memflags from the hook instead of bits. Lets
then return memflags.

I will apply all other comments too.

Thanks.

~ Oleksii

</pre>
  </body>
</html>

--------------SB5jDQiNuzlX7dmqmsAAhC70--


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 16:45:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 16:45:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173110.1498214 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIdt-0000I3-6e; Wed, 26 Nov 2025 16:45:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173110.1498214; Wed, 26 Nov 2025 16:45:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIdt-0000GE-1R; Wed, 26 Nov 2025 16:45:21 +0000
Received: by outflank-mailman (input) for mailman id 1173110;
 Wed, 26 Nov 2025 16:45: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=0Gki=6C=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vOIdr-0008EF-P1
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 16:45:19 +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 472dfcd6-cae7-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 17:45:14 +0100 (CET)
Received: from CH2PR16CA0020.namprd16.prod.outlook.com (2603:10b6:610:50::30)
 by DM4PR12MB6110.namprd12.prod.outlook.com (2603:10b6:8:ad::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9343.17; Wed, 26 Nov 2025 16:45:08 +0000
Received: from CH1PEPF0000A34C.namprd04.prod.outlook.com
 (2603:10b6:610:50:cafe::67) by CH2PR16CA0020.outlook.office365.com
 (2603:10b6:610:50::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.12 via Frontend Transport; Wed,
 26 Nov 2025 16:45:05 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH1PEPF0000A34C.mail.protection.outlook.com (10.167.244.6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.7 via Frontend Transport; Wed, 26 Nov 2025 16:45:06 +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; Wed, 26 Nov
 2025 10:45: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: 472dfcd6-cae7-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=h7bLo7oo8FUPWMYvgVHDHYuUDGFcnpCGiaTWsZBg2zV1IiH9S6lY0FQsldWS8bDCUNlPHecrkiglWKziSMoVgIBGEdxL+6LrQQybPqM8K4iyPoAeevJ6f2qZTrDcvoZduN5iQMFOWhirVzn53HXBZXlJi/rZ3v4SeJzhNjGLRwVjNu6Js+8Vwj3hhk6772xEx/RYKa6/EzNRpSw6xIWoj1qr19+/CfEhm1y1Rb5K8m9q7VIvTrNDb4jtm52l/LTsexyN57Cdemu3PahOc/wSzb3Zs9AF0fi0Yha9xZTf7hx/ij2BDd4l4Wvg44Lr2Nb3SxBKhCe0wPab0JX+MWK65g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AG5qf8fjfZnqrZGtIec0mAOfLvxnAIAvkXF8a3VTY3Y=;
 b=mOY4VHOloWM8SsQYadPRrbObs5Q4DU5vVcXmkIamkvqZsy0hf2To3Unropv1ZDrHAaKtdGTRQUlUHdzPEwySsYXtar2S4NcNRxnWouees36s1act71UPIJjqe8Ai/toE2JCCkKvMwISu+xJ1/DH2v1BWQ0SzYDpMXkZJ1lmYX4IpIUM/eMNNVLBJ5Nxb/hH438hL6biA7XFgM4t5BL7/M/GfRP1ljLggKQNUuElpjFAybKPtLRM3Z9iFnoyH3iRo8RMpgGiFVYUZNpkqjouI6Ia5C/DYa63JPnLHg3a9IkVOb1hdu+cbBb7ej306a9aSlta8cxDthRHMTx+p+awY5g==
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=AG5qf8fjfZnqrZGtIec0mAOfLvxnAIAvkXF8a3VTY3Y=;
 b=gan758Hhq+TE35c6DO55nLm1Zdw5NnGSftHbuH0uSyv7WDN4zUpa4EAv2EDHg37348em688auYR0+nUAOmeG2qBGUBRomITO/Q9+esdQ007vktH018ArkMK5Onv0dVwaeNyKJOw9oaB/rDnIw9UMG28cXwUstXNBLGd5VE+xmJM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>
Subject: [RFC PATCH 02/11] x86: Reject CPU policies with vendors other than the host's
Date: Wed, 26 Nov 2025 17:44:04 +0100
Message-ID: <20251126164419.174487-3-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
References: <20251126164419.174487-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: CH1PEPF0000A34C:EE_|DM4PR12MB6110:EE_
X-MS-Office365-Filtering-Correlation-Id: bca6ee40-6ea4-4fa8-feba-08de2d0b27cd
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?zhzLqvmQfXPb9K3PdlIfMR/SxfL7A1ttJ274goXMTXqHzwYI6PDBCi3Jz5xk?=
 =?us-ascii?Q?13TI/pmIfpaxI7S34Ai/3EZyg2LdEwy088WaN4qnyturLhf9HV27CITWP4Db?=
 =?us-ascii?Q?SVvdBCQM3nLll4pEexA+Oip/6dLtLmpMKfvyVZv/YcwGNfuuaux5e4RrxyJS?=
 =?us-ascii?Q?89Z/eyLLb7W6wF7jv4h8ozgOKrXxXqqoY8ruRtnnisAq/0RPVDQCmXjae+zz?=
 =?us-ascii?Q?5x4f8VfQEOg88iMQEhvxQM/vHSXeASDvSESu2Y+Cj/wcDEVypFmubLhVytJS?=
 =?us-ascii?Q?9EOgCx67PC6sfU7GDytq5/afi3ODnX8Xhb80Jik8sNXyOX7ivgGEivgCPUT5?=
 =?us-ascii?Q?id8W6shZd+5RQatyJXWdxmSKFk40FaQYCKmj7uMogR6CJBvk8mTWQDOa6nNY?=
 =?us-ascii?Q?ZTAgGBw9rxqr/Zv5qaS+WHG7Sv9p8W4xOXlGi5y0ZOYvQHZCHix64q8zgqa6?=
 =?us-ascii?Q?N551hSg2hd9gJ6synCwRbjQzcwQyMlWT50n/swfuACFerwnB60JTmBm6GrBg?=
 =?us-ascii?Q?E/2i96ovWm5/VwmqoyhLgvS6XxsiEJx7cZ23u8Q/cR36hnlZjt1dlLMzKEs1?=
 =?us-ascii?Q?7qt43cSQYD+d+bTNYSD7ReMjz3zAlviHsRA/Bwz145jJ79fy0bYOr5aLywaF?=
 =?us-ascii?Q?Tlax/xA7mi1GoffJ102v9iwp9HsgeT/YBDkVmuglQQUq29ZQ+5vKcxcnT80w?=
 =?us-ascii?Q?6VnnJb015dTiS56FU0tUbtCdqGUJRE5cKYPtIDc8DcndN1C29HOpuDvC/ChH?=
 =?us-ascii?Q?5Ee325ek+qnefMbhtZ3b+FW87zDz0SEClJMx64+wYUHDSuOjExgROIgzAVou?=
 =?us-ascii?Q?RuWqTCqxPQa3SIJItXsjtrDlcEC3lHnrBII3ggnoENopGM1qhIcwUIovP9VR?=
 =?us-ascii?Q?L2QBwuXR2m5mue2HgjUAfH3waNEaHwZ27iXcR20Yf3NjI+6csTCbPTBIcNJp?=
 =?us-ascii?Q?1yBxsXQPQFBlWQIiu1o7VWVqcmwG0Ck0I4sNZtskJyfEzfDvzQXFRipTPkpb?=
 =?us-ascii?Q?y9oNArCvhqTb4mdnc55he9ZVUsnnD3KKM4HPW2d0w5j4B9Oh6GU9RJ57dlaA?=
 =?us-ascii?Q?oTnbvwi6TzQoU//p1w+XusxKAubXPg/oQrWpec3gfH4hU+Tc2v3o4mQMNJcZ?=
 =?us-ascii?Q?OPBzEOKRKXK1BueSh4/5978tdIVxkYFp9WYwGGmlXz0pEfGDzmS/Sfn3rUwi?=
 =?us-ascii?Q?NKe4sixrFlvsm5kuVPWy5fuJ3BHUcsDq7vbolKVUJKvRiwROcXPtCSvMV+4w?=
 =?us-ascii?Q?D0hV4Jh0edRbJEWKaOJWIIJMsALRAzGZhSthot4mJ/KHZ7ldQHOIAVDc0xug?=
 =?us-ascii?Q?8Xy7Lb79cYw9+shBTgfyfIrb7rfJkUsYJsT4WDoyx5k0LF18y3r2yLEhV6Y5?=
 =?us-ascii?Q?xRFNGMvSZ/DtBiIh0RFEZaPCu3T9Q4T5Rdf4EHPoKA1wo6cZn6C/b4XAbOQJ?=
 =?us-ascii?Q?Kg/e1pMi/ItwuKFGAwhAYo77eVazUk2JMf78hTqjPAQbJYQDRDNqQhMHjaDb?=
 =?us-ascii?Q?Qfn3By34e3TbwjlEc548fzEebf+c//4Mfco7UEjc7jUQBF+E1Nt8BhXbMN7u?=
 =?us-ascii?Q?enx3FxH2bUwNrL7PvWA=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);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 16:45:06.8596
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bca6ee40-6ea4-4fa8-feba-08de2d0b27cd
X-MS-Exchange-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:
	CH1PEPF0000A34C.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6110

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>
---
I originally had a Kconfig option to allow cross-vendor virt and
conditionally disable the check on policy compatibility. In practice,
I suspect there's 0% of people that would want that, so I decided to
simply remove it altogether. Happy to put it back if there's anyone
interested.
---
 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..4c0c5386ea 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->basic.max_leaf >  host->basic.max_leaf) ||
+         (guest->x86_vendor     != host->x86_vendor) )
         FAIL_CPUID(0, NA);
 
     if ( guest->feat.max_subleaf > host->feat.max_subleaf )
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 16:45:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 16:45:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173107.1498192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIdp-0008ES-0z; Wed, 26 Nov 2025 16:45:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173107.1498192; Wed, 26 Nov 2025 16:45:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIdo-0008EL-Uh; Wed, 26 Nov 2025 16:45:16 +0000
Received: by outflank-mailman (input) for mailman id 1173107;
 Wed, 26 Nov 2025 16:45: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=0Gki=6C=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vOIdn-0008EF-9A
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 16:45: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 4767d395-cae7-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 17:45:13 +0100 (CET)
Received: from CH2PR16CA0010.namprd16.prod.outlook.com (2603:10b6:610:50::20)
 by IA0PPFA8EB66EE9.namprd12.prod.outlook.com
 (2603:10b6:20f:fc04::bde) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.13; Wed, 26 Nov
 2025 16:45:06 +0000
Received: from CH1PEPF0000A34C.namprd04.prod.outlook.com
 (2603:10b6:610:50:cafe::8f) by CH2PR16CA0010.outlook.office365.com
 (2603:10b6:610:50::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.12 via Frontend Transport; Wed,
 26 Nov 2025 16:45:04 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH1PEPF0000A34C.mail.protection.outlook.com (10.167.244.6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.7 via Frontend Transport; Wed, 26 Nov 2025 16:45: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; Wed, 26 Nov
 2025 10:45: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: 4767d395-cae7-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GCs+89NMtpliXkQz9rlOQmKzFhoDjPi+4JN2KIFfKu+NLEJ5nElkJS4UcG5flEql5wYJORR0KjwlU5Rc+sWoQtxmz6yB2HQ0OEOG/DFyMc03RxncrF2uLOJgMbEpMsUUj501p3IfnIWOewHGTZXE4lqfQll9PswcjzFE1M7O+WXC9Q1l7iW0QFLsMSrtC0A2FJiKi1PATPi3Pp6HVBePDidN6bQCs7DjCxw5A9texI67TAvMklKBnuoWAA3TB5aZULsYoFNdkWsSJSqw/2AtvH7O8kwSE9z2uwIMgt9ZghrvkO0hZP4onsT8NNrv65ADUiFOSCEN8ISGxvyP+ZM4PQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5D4behCI0RBi4mZ6O/W8pbCZlgQA+Y65FpPmLA7efDA=;
 b=i0Ss9P5fQ66ZP1tOc9KFayTxs0E9OfCMVWrqeLpEtk6UHTmRtjhYvVJAT0OoRWsVTsE/Uk6nvjMbcWue4EJGh5rgdVX4rwsUvK95xWlJ1zYCxnj07cE+5cb715h2TI8yDJlVL4e4VwY2AugeF0wdxLh60d0mO45SKOZvBFa+m4iUx0K9tIw9ZWSJmuPf3gczT+v/8rBt8JVyluZayMfYUWa55CuOCqDlOIbQRWHLzetjHmhqPr8QQUvSw/Aa5xWSuOgcfxgX1pl7YL3ybSDYhARjeYJ4AHgkDJri0BuW30VaZXBye0bYms2zWz1iL1OEKR8ao/PNUZfau507t4E2vw==
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=5D4behCI0RBi4mZ6O/W8pbCZlgQA+Y65FpPmLA7efDA=;
 b=BIG1cIvQ7Lhkjf0HMlprbIqFlDanTTd3oOizFacGOyfeTOkSvQ2HHEJ9J0k+9yrdozHlEkpl2e+okAxVbxk1GnZvNd6v5emUNjAyRvLYvQ9QH+tpAVOtRuJiKf2JIRUsPmnLvp9QrHy1OE78lXF/Z6laZ3dccjmVAoGazdBD4qU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>
Subject: [RFC PATCH 01/11] x86: Add more granularity to the vendors in Kconfig
Date: Wed, 26 Nov 2025 17:44:03 +0100
Message-ID: <20251126164419.174487-2-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
References: <20251126164419.174487-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: CH1PEPF0000A34C:EE_|IA0PPFA8EB66EE9:EE_
X-MS-Office365-Filtering-Correlation-Id: 393f7942-5206-425c-862b-08de2d0b2714
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?rAJvy0iRCW0rSz35vqGneyLTYzYxfd7kBjiWzjA/8b+GRSTHuLdhzlxGIDDI?=
 =?us-ascii?Q?kRc+Ar3BVRS6xwo/f9l5MG3AZYzJagA1e2kQKmdCtBhZv2YT3ZG+yrcuv4qh?=
 =?us-ascii?Q?ZMAXKS4Wxdv0MGClJQa+iawQaSwhyBNDFURC5cBI+K4IpDXKiOlMMyXu2vwD?=
 =?us-ascii?Q?eFFGK7qL6/NhImLnihXdrbMA2OfDSzMJiWiqYU3ls6UcjUG0LGxnxDoN2+k9?=
 =?us-ascii?Q?y46OgXd3HZ6H+o+aPrGdkQrRWytZ7XbPVLoMivjsDa/WbieLmJ9Ick7BadGN?=
 =?us-ascii?Q?njHFb1ZDXFD0sm6SB5pnTC9fVpcbBOaoEiLyrNkD+7JMHhn4blfin8MqAFg7?=
 =?us-ascii?Q?qC6H4QoRlIV2/WRdLufYz6WKw8p88a3gTNgSzlOEh5VNAEGSG5M3+0oRDXVW?=
 =?us-ascii?Q?qWxf+MTVipA1nSYhJqqBRG3IVicZoCrym3Do7TPvPaSqh67fCPUhc5UDcyEa?=
 =?us-ascii?Q?Z4+Okcm3b8BwPo9qskrgFVyMHA8pQRYXsAabHkWaqkgRt+hLzTTy52Mz9MyP?=
 =?us-ascii?Q?MemPwG0MLXPmxr1j+SAjD754hObmnOK1Mh+NI/7r2FWsOy4ltoEdIA575OUq?=
 =?us-ascii?Q?FLNj5rMM9NgKoi0KcLTaI8Pf8+3uX09D+CBzlXHzWSYcIycXS4JB6Nze/AZW?=
 =?us-ascii?Q?wkGQ+dyjDhtqvnmtYtz3izE/5PrcVWZzalB049a4vF9/dciBuwJg8DeV63bt?=
 =?us-ascii?Q?EM6jOPYAQ0Fvisg8yPSYksKgP7ztdQDzvNUoLDcWHslz2B5PVcYgCvqIutXm?=
 =?us-ascii?Q?GWG+SOu8bji5WW6EtZ69aF9X/qJnFhYbaA608RtBCn8dEX2dhY65Oaj2m/Pk?=
 =?us-ascii?Q?+gxvVdg/v9Q+OodI2WpyR9IucnrWVvGUIzRZOmT2v/J7pEQOHGEGIz3lK0X7?=
 =?us-ascii?Q?Kdzn6ZurnKbc7YdLJohfYS/gkd33vhQOUEYaEASI49GGijrFmuAjOBZlTdFA?=
 =?us-ascii?Q?GWofe/UI1EMnQgD1KBUGLxx6kDUhPxiy8Q1PZvgel7In5EkUbWbthXQrQMOd?=
 =?us-ascii?Q?BFapIwB+AqavfgRs23y342vWIl3fE8gP0+5DGsUmK9Xo6/aCY6lXM1KNAcH5?=
 =?us-ascii?Q?lER40XR0/EgN1b26SYP9nM8RgwJllvl3o6/4Q2/zizWvEtvvikGK2yz5FBn2?=
 =?us-ascii?Q?oBMeIA2dSYVjy8yxZUEi5K2jiTMwx4nwV8KomHN8dddkjg+xwNNqKb3F5Egk?=
 =?us-ascii?Q?j9OlUgNWec8YhYo/XR+z6TimHBL+K6a5eoPtk34ljiEGS1yg+Gb9+q2B8mOj?=
 =?us-ascii?Q?zCd2GqugTmnU/2oVjMGtH+2SHpv5NV41Xbh1OmuPVG9DarrxycZwK1yNRXe7?=
 =?us-ascii?Q?4zV1fOaXL6iREG3UxQFy6ts2VGRfK8Jmo0l58ttLCCxVu/mnC17uNceYWqm2?=
 =?us-ascii?Q?bDt3dSYVNvmAZxCFVtEU0pwNULzVD0BSeVcLpX2FCqUYQz14mArEP6de6uN9?=
 =?us-ascii?Q?KDqwiQUHCAM5ApjUFsCiLz0tBNIAWq5Xjn+Y1uiYxFj/KR2hMacsg4I4/sMA?=
 =?us-ascii?Q?fgH2/0W5rroExD53KvVpd43F2B2P+9VRsuQWPdF5+v6/Lk3IUJkZhyJxpaRL?=
 =?us-ascii?Q?MWWzm3zZqanv5iSxlnQ=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 16:45:05.6440
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 393f7942-5206-425c-862b-08de2d0b2714
X-MS-Exchange-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:
	CH1PEPF0000A34C.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PPFA8EB66EE9

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 is allowed.

In order to allow x86_vendor_is() to fold into constants, expand Kconfig
to have the full set of vendors. Adds Hygon, Centaur, Shanghai and the
default path.

Have Hygon depend on AMD, and Centaur+Shanghai depend on Intel.

Not a functional change.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/Kconfig.cpu         | 45 ++++++++++++++++++++++++++++++++
 xen/arch/x86/cpu/common.c        | 17 +++++++-----
 xen/arch/x86/include/asm/cpuid.h |  7 +++++
 3 files changed, 62 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/Kconfig.cpu b/xen/arch/x86/Kconfig.cpu
index 5fb18db1aa..aaf70fb37b 100644
--- a/xen/arch/x86/Kconfig.cpu
+++ b/xen/arch/x86/Kconfig.cpu
@@ -19,4 +19,49 @@ 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"
+	depends on 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"
+	depends on 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"
+	depends on 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
+	bool "Support unknown CPUs"
+	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 while selecting a single vendor
+	  it produces a smaller build especially optimised for size.
+
+	  If unsure, say Y.
+
 endmenu
diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
index 37820a3a08..393c30227f 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -118,7 +118,7 @@ static void cf_check default_init(struct cpuinfo_x86 * c)
 	__clear_bit(X86_FEATURE_SEP, c->x86_capability);
 }
 
-static const struct cpu_dev __initconst_cf_clobber __used default_cpu = {
+static const struct cpu_dev __initconst_cf_clobber default_cpu = {
 	.c_init	= default_init,
 };
 static struct cpu_dev __ro_after_init actual_cpu;
@@ -340,7 +340,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);
+	c->x86_vendor = x86_cpuid_lookup_vendor(ebx, ecx, edx) &
+	                X86_ENABLED_VENDORS;
 	switch (c->x86_vendor) {
 	case X86_VENDOR_INTEL:    intel_unlock_cpuid_leaves(c);
 				  actual_cpu = intel_cpu_dev;    break;
@@ -349,12 +350,14 @@ void __init early_cpu_init(bool verbose)
 	case X86_VENDOR_SHANGHAI: actual_cpu = shanghai_cpu_dev; break;
 	case X86_VENDOR_HYGON:    actual_cpu = hygon_cpu_dev;    break;
 	default:
+		if (verbose || !IS_ENABLED(CONFIG_UNKNOWN_CPU))
+			printk(XENLOG_ERR
+			       "Unrecognised or unsupported CPU vendor '%.12s'\n",
+			       c->x86_vendor_id);
+		if (!IS_ENABLED(CONFIG_UNKNOWN_CPU))
+			panic("Cannot run in unknown/compiled-out CPU vendor.\n");
+
 		actual_cpu = default_cpu;
-		if (!verbose)
-			break;
-		printk(XENLOG_ERR
-		       "Unrecognised or unsupported CPU vendor '%.12s'\n",
-		       c->x86_vendor_id);
 	}
 
 	cpuid(0x00000001, &eax, &ebx, &ecx, &edx);
diff --git a/xen/arch/x86/include/asm/cpuid.h b/xen/arch/x86/include/asm/cpuid.h
index f1b9e37a42..bf1c635cdd 100644
--- a/xen/arch/x86/include/asm/cpuid.h
+++ b/xen/arch/x86/include/asm/cpuid.h
@@ -49,6 +49,13 @@ struct cpuid_leaf;
 void guest_cpuid(const struct vcpu *v, uint32_t leaf,
                  uint32_t subleaf, struct cpuid_leaf *res);
 
+#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))
+
 #endif /* !__X86_CPUID_H__ */
 
 /*
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 16:45:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 16:45:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173108.1498202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIds-0008U6-8Z; Wed, 26 Nov 2025 16:45:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173108.1498202; Wed, 26 Nov 2025 16:45: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 1vOIds-0008Tx-5r; Wed, 26 Nov 2025 16:45:20 +0000
Received: by outflank-mailman (input) for mailman id 1173108;
 Wed, 26 Nov 2025 16:45: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=0Gki=6C=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vOIdq-0008SW-JM
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 16:45:18 +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 485cf5c3-cae7-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 17:45:15 +0100 (CET)
Received: from BL0PR02CA0027.namprd02.prod.outlook.com (2603:10b6:207:3c::40)
 by DS0PR12MB999082.namprd12.prod.outlook.com (2603:10b6:8:302::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.13; Wed, 26 Nov
 2025 16:45:12 +0000
Received: from BL6PEPF00020E62.namprd04.prod.outlook.com
 (2603:10b6:207:3c:cafe::42) by BL0PR02CA0027.outlook.office365.com
 (2603:10b6:207:3c::40) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.12 via Frontend Transport; Wed,
 26 Nov 2025 16:45:12 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL6PEPF00020E62.mail.protection.outlook.com (10.167.249.23) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.7 via Frontend Transport; Wed, 26 Nov 2025 16:45:11 +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; Wed, 26 Nov
 2025 10:45: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: 485cf5c3-cae7-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kJLZ1rFwC04U+OMcjHWqgts49r92kgEjOd16llfWBCrC42nrt5PqTHHrFGAQsgajiKc2lwTx71N8BK9B8BI9oJpOS/YCk35V+stWHD1APXA3ZwYi2pnMSSUXrsqwGZaIxQWaToTYUqaTbbUn/VlWH5yJ+ZPKTVo56Uhg8DWzO6olSU/CH4Lxh2PH5mlXTIuuafL/UEHXNsUmUDs2Huj5aVCv8cb8E1x/OZVnQcNrg+CKjCLweKywmQBAE4AgmHqdTvvlHwoiwodI2M1ouie4cBhPxP4sBxuUWgFKLT1ZiMD4rwRktu0w5I+OZIXYoTdGxp3y+FghXuT6YKSOFbtc9A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=psHLu3+Kdil+NvAYCckUpgX64WyO4v7EIof+M6uimCI=;
 b=OXTjSRyxy8wyRE2Zdrh7lWduW7OcMsaijvqQj/4fnzZVNEpr4E1Jljyt2aM0hQgeZzHI9HaP+Nvpnrxp9o/eUNfhRAhZWJBjZ6p2c+KIOOVxmJPWCQeddIiqrI/Z0pzrGK08AeqaTKCfpB8mfdAqRxxW8xhnCj3Eo0KnpbiaMHXvtvzoq+lBxFL9Q7U8aFPbYlYDGS3Itaqi8SThvQtL72fUaqvKSCurWwyE6YLDCjs0syUAlxicVAExc//ec3j5lO6692lzlbFKD7psodjWrdHAZgIuRfaQzFlEE2abALgNbEpSRTDbpi9iHQu8Zp5ds0CYiAHEDEGo70R86CaX6w==
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=psHLu3+Kdil+NvAYCckUpgX64WyO4v7EIof+M6uimCI=;
 b=ys6M1+Yo3wq8eJUnSrkHS59l5UjD4t+quXAS9bakkNxMzFDAwaxJG8SOwVEdRxCtkU/jWEgRQkG62S6ZENhCb1dIUpzsWxV6vS0sEiY5hILnaToNctS9/Q4a2slvbwK+zukDAbvTJlBdBBSREbAJLys2X0e8BLmHHZeYwZWvsec=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>
Subject: [RFC PATCH 05/11] x86: Conditionalise the inclusion of Hygon/Centaur/Shanghai cpu/ files
Date: Wed, 26 Nov 2025 17:44:07 +0100
Message-ID: <20251126164419.174487-6-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
References: <20251126164419.174487-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: BL6PEPF00020E62:EE_|DS0PR12MB999082:EE_
X-MS-Office365-Filtering-Correlation-Id: 7b68aee9-3962-46d3-9134-08de2d0b2aa2
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?rWaLJkCa81zmy2Q5Rh4uYFj2xhzj5X3VIzTV88YN9Lxg1jYd9VCuYK0Goaba?=
 =?us-ascii?Q?dVGbO4bhjZ3j5L0SpUIZkxl7TUYHW5I2fQUTDsje7wbSJPoOT5l1/zWUrwxo?=
 =?us-ascii?Q?6ZigVk8KZHCg9DmfZImXzJ9rwrENrx8mxFNo+zzF69u0NrSf1kjWr9mWo00y?=
 =?us-ascii?Q?5jm13yM8ZTtI+/7GIlW6/oP1ku8YggvoWK5VzBV5HPP1m/KO85YgiyQohX8i?=
 =?us-ascii?Q?NQ6AY+y8ZAzTVK49UZCSkX7ks4znvZoVWOK8HGcYUuzAUwXce+F9LealW8pg?=
 =?us-ascii?Q?mWnqx4uCOAptQjIj/rei7EVMdHnfIpDvyglejLvWEZz7ls2Ew2LEHu7HHNKS?=
 =?us-ascii?Q?p4ZvaW7avNcvuxo81eqttU9q4LyFxReWbVKe8cyM0gtftWn97DDdTVEsxVVo?=
 =?us-ascii?Q?UjLhlYaaSYU5u/3lTsN3s0NO4wgO+ICHhjwQMY2z6TCGfv/39cJyXLiB/yCz?=
 =?us-ascii?Q?XWbp1Y4uU1kIvDXPsx+6HvN00NeTXNko/Oxr1VjK+4cBtnoQd2F/KZt7nUoM?=
 =?us-ascii?Q?uBxqEWE3QKfjNMVrBkK/PUcIlaABewqncbat6vVWnd/LCjHOurKMSCFFDK4o?=
 =?us-ascii?Q?gs4YyR1sVyvvqyZ5YjQwV/CB3oMsS9MTR28946alNJ2rk68pAUgdY62zsrLe?=
 =?us-ascii?Q?v8vf6pVvjUMHHcdr+ycfDcvyB4A+sdUQTQXOwF2ZWMr/5Jk0h8f3Mt6uU82P?=
 =?us-ascii?Q?vh1efbC16lB8VGN20zcTDBF9TTcbe1PScs77Vju7DLcPYNzfFdqp27Rf0No0?=
 =?us-ascii?Q?QAtZhwEJLgMkHsuvAUad0PD1BM83gMsaOpYMrjT/z9oh7eAmYAYnQ5MbGWE6?=
 =?us-ascii?Q?tnZ3m8Q0gd1/7QpQPEirsUixfxERJu/16Fdruyd6XhGtJSz97xShbwmdlect?=
 =?us-ascii?Q?EAMVokxv3yU7UERAeJO+HBfvTPEbKpkSMo17RWCF3QwsWwkws7jPyJ0WszSH?=
 =?us-ascii?Q?LkeKYyciwt0xAh34DdYwW++OQAsHdFfzroTAPOCV2cYNTKiEvyyziQv0jw7p?=
 =?us-ascii?Q?R7pJtw/Zw3HV+qA0EAR2q2Dp06yWYCMhUGGhXHPwjHGv8VW3oGrYRRd665Iw?=
 =?us-ascii?Q?42az+p5QA2a5B9tI242Jg5i6TkTnnSFTfV8JrvCLuLTk/hBxJ+8F0EkPphnu?=
 =?us-ascii?Q?f1+TcBIAefYUMMC4z1IvSLz9G5bD4WXzp1764TW2nxXaU/2e0OwwhD9asKej?=
 =?us-ascii?Q?SnORdbZzuCQU8vQOUvXdnGg2yLI5rVSRcQGewhmgvfStXtflSEdpW2FnTi2g?=
 =?us-ascii?Q?3xDWFY8Xj878N+P4VKYjM6a4PhYW3ZFv3LjG4/Gmaxqw+eRRMdacGLWBdXTm?=
 =?us-ascii?Q?nT+PTxN0ClXS31Wrb0aRn/NiLMHiqssfjwB0DP7/ZWDNp+dQ13T8E5zJiG08?=
 =?us-ascii?Q?qt95iv+KvPZfOmCHugx1FgNAJW4tjRx+qk+o9BrnX3yXEuvaZg87/hSL8fso?=
 =?us-ascii?Q?phXfSKf3N7MS0/TEIEmrNIckwYymz5B9zsYLsVa4pPRGceLax5dTDn3mURjv?=
 =?us-ascii?Q?jMaa17Uj5E6IlXss3obf2fijjPgiWXgHx7mRK/Eu8HenTWAtyVmh+Ro05Q9+?=
 =?us-ascii?Q?yUohFEXdxaZQk5F51G4=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 16:45:11.5939
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7b68aee9-3962-46d3-9134-08de2d0b2aa2
X-MS-Exchange-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:
	BL6PEPF00020E62.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB999082

x86_vendor_is() is doing the elimination now, so we can just drop them
when the Kconfig options aren't set.

Not a functional change.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/cpu/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

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 Wed Nov 26 16:45:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 16:45:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173109.1498207 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIds-00005p-Jn; Wed, 26 Nov 2025 16:45:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173109.1498207; Wed, 26 Nov 2025 16:45: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 1vOIds-00005H-G0; Wed, 26 Nov 2025 16:45:20 +0000
Received: by outflank-mailman (input) for mailman id 1173109;
 Wed, 26 Nov 2025 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=0Gki=6C=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vOIdq-0008EF-Oi
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 16:45:18 +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 48fd024d-cae7-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 17:45:18 +0100 (CET)
Received: from CH2PR12CA0019.namprd12.prod.outlook.com (2603:10b6:610:57::29)
 by MN0PR12MB6080.namprd12.prod.outlook.com (2603:10b6:208:3c8::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Wed, 26 Nov
 2025 16:45:08 +0000
Received: from CH1PEPF0000A345.namprd04.prod.outlook.com
 (2603:10b6:610:57:cafe::a7) by CH2PR12CA0019.outlook.office365.com
 (2603:10b6:610:57::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.11 via Frontend Transport; Wed,
 26 Nov 2025 16:44:58 +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.9366.7 via Frontend Transport; Wed, 26 Nov 2025 16:45:08 +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; Wed, 26 Nov
 2025 10:45: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: 48fd024d-cae7-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SS2rCBpA6RxZIqcJZLxNWszeMdSxo7xjk4j0JdpRrC5Ors1Kpvwl/aEW4C3oBDSiPN7p9d0wF/NHybxbdGg0ITMOZXyFPCLcVNipnbDikMd/RxZyq/ad7rm66k6n3s4lg8ghY26fhGdP9Zw1SOjHSIjZ/UTRqbgYUiYhKx1ktj3+//+AQ7WP9ZCKV1bIxY4ylQbyatgao+0SUX/RITVSlKkiQR6xwzRQVunvsb1NwMvdo3ng/jRtfCxfPFmp7jLm4rIxrAlR7Mr3sDSx5j+2tbkzS8SP6KmRdTa8yOXHAFqVkr5xGMPoh9LExJsNAyEI5umT1grqYPqL8TNISCgvmg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GAHa7MUCZqeioDzsZSkQDA41NnZnvXxGowHMxx8/l0c=;
 b=kv6Ly/kS/axfRZMPoh1aMoCcANQNYwZALsYwHylkPDWgAoQ7Bk/xl8uagXyso7GiKdQG4sYPjXg/ifXU56hZ57QxZxFy6LLXk2MyoqCRCFX1x2B2CuE/s+AltTibLr70Pc79gmyVob2xDCORr92+q/voN5bp4OcLCzggxAgR8r1CKBhXfrtH23w2URjcEhG1+a4BZIVLLhdayc9qnoqrRgnVlsvIBg6XxMLGYmkn9d5gBNUaPMXpwVoRENU2RtzLrtFGbjWwI+qLSc8dtyZ388GTaArh03gPsLxWDWbXrnYzdavE37KWxMA1ju6BAMf8t167u5EsKA6MXozvWo8WsQ==
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=GAHa7MUCZqeioDzsZSkQDA41NnZnvXxGowHMxx8/l0c=;
 b=0ht2CrU/HPLP5vCvBfkMFNsPF8H8cLH2ihENhf07lNQxdG/171NzsEkmtBf/F/2ady3b39k114jPjS22x+Sdz8db3bO+yYSrisLie/qU4oeZdW5jl0FfOdM/X1u90x0pCoTwQ31ZmG3rYUuhZpDimf5ESpr8WBWx/axyE6SzFnU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>
Subject: [RFC PATCH 03/11] x86: Add x86_vendor_is() by itself before using it
Date: Wed, 26 Nov 2025 17:44:05 +0100
Message-ID: <20251126164419.174487-4-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
References: <20251126164419.174487-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: CH1PEPF0000A345:EE_|MN0PR12MB6080:EE_
X-MS-Office365-Filtering-Correlation-Id: b9794a4a-afc0-4974-9f53-08de2d0b28af
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?8hmMHXydGQYBO1L6hnPOT3HG1bt3Y5FVbywIdpMOwuYbCN0E5+hVGkL/RH+3?=
 =?us-ascii?Q?66pq2ZHEsF5ivpSSm5Jw5z8ZBNTGsIIyCV+WQ6zPf7IwOHn09zuLLW77jwTa?=
 =?us-ascii?Q?Nu047gCRjdUryV1pC8RRxZa365mqkrOPa8hUve0dpB5qkxU2UU4wyYPqXacU?=
 =?us-ascii?Q?GzU+3OQW2gWaTQl2grrtlf1qCgBndlk1pYFLYZi5N2xaIsQfORQ9OCYdAgAo?=
 =?us-ascii?Q?PB7TsMMwYf9VqnuekTEzh6oua17BWA7NBh3B87UVndmPf9P9EjvDqljlvwAE?=
 =?us-ascii?Q?jypb0D9qyDVfaeivXlONZmIPYopuMBX6gwDutrxttx9FMdGAcwr+XO9z5rdc?=
 =?us-ascii?Q?tOPUJPDTbPmahAb1grieYWSlKJziZv8oytEfuETwHJbWOUlodJHRCZMlY3NH?=
 =?us-ascii?Q?chO70iOnme6xZwdjYHt4gwFJlhJCkIB2+yptGtKnK9o93LKUf69risCgcz7b?=
 =?us-ascii?Q?cwjLr7FqWCvDwlO+qW7KROR3xvUIzQlzlMvH1mxTKnrB40hAPEOn1kYoIPZq?=
 =?us-ascii?Q?Nbt/S52NYAX9JULLABSNZJJ79wBA+siOST81C+ebuDqqVB1dHnYyJPnUqrLx?=
 =?us-ascii?Q?4vngJ2Stg6K/3/fthSNit46hTCSgS3g3TMdNj8ziSM7C4VB6A49IKVoCi+si?=
 =?us-ascii?Q?2Kh5PepLbHImevBUXOHgfh+7u96xyt5RRI6Ezx6Kamop6pRTmyXiCkn5azrY?=
 =?us-ascii?Q?IEC4IfpgJtNE8MovNcSuDqnzNrd42C4PnZddlMtsRIcgq+RE6tppYGFWBKYE?=
 =?us-ascii?Q?QJl0fcLHqF72NBwbmoKMJHK9qQHk3ovkoNdq9u381CFVTAPlKFRni0CqCU/J?=
 =?us-ascii?Q?tPWJ2IuwA6K+H515rtJogFMRjtKapbnUEgX4J7DVM+5uZOJsIA6FJqmRdLm/?=
 =?us-ascii?Q?v7QC781AG9faNZI2A7jn5bnjGKyJsLtQG/C6cerTDbDqRoxNugr6qKv3QPkc?=
 =?us-ascii?Q?oG+GyeaWabumXpZhAOp3XWGdy+LYgHH65RmdsE26gZEg1kZcWRhSZb1osPP4?=
 =?us-ascii?Q?J1QTOjTknftv/VeYn4eZb0GSwgJJysfVGReJhIzlV2dgmVkDV/8rF3/+UgPU?=
 =?us-ascii?Q?KyYpQrHAlIGIIP7fnhUd0xuhAKyHPhOvr7CFX/+r69orJgWSFOg1lzfAJY8D?=
 =?us-ascii?Q?LL06sxQ1oxL5dS9jRsuMMNliIMWpDDCrtyYGOl08cdsQLKRNfmIbvCMUfM4r?=
 =?us-ascii?Q?jLN74XDeUtN3ttgmqTggySI0CSBrq2CU+qvbYwa1rLDh951/Um1nLSbLc1WA?=
 =?us-ascii?Q?sb0hkniQEGFTOpfld3nxsvjkpf+mHasPV9XuxqBkSyjX10Bzgn5tSA/Zlar4?=
 =?us-ascii?Q?QxEwxunzV4V93B474MjlBCpkauUm9iiH0GoOfdc0fgJOqEClNh4/NuGzkd0o?=
 =?us-ascii?Q?rKz/D+uvIQ06SLV9m+Rk38PlPIUQVIuVxf6RkQ0wogJUVPafQ5/qv04E/1BT?=
 =?us-ascii?Q?cnwvw8TfGQv8yVtwLZxYA5pTS5+ReIeq6J3l0Yd9t/wQYZTnWb8SX56LKsSC?=
 =?us-ascii?Q?NBgJxrsnZkmjRm1pIlP/jOhgIhwhr8G8urrD+j/l0yZpPHjPnzLRlVl3hzzU?=
 =?us-ascii?Q?xFpAN+dAnMOM1MdFej4=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 16:45:08.3383
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b9794a4a-afc0-4974-9f53-08de2d0b28af
X-MS-Exchange-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: MN0PR12MB6080

This function is meant to replace all instances of the following
patterns in CPU policies and boot_cpu_data:

  - x->x86_vendor == X86_VENDOR_FOO
  - x->x86_vendor != X86_VENDOR_FOO
  - x->x86_vendor & (X86_VENDOR_FOO | X86_VENDOR_BAR)

The secret sauce is that all branches inside the helper resolve at
compile time, so for the all-vendors-compiled-in case the function
resolves to equivalent code as that without the helper and you get
progressively more aggressive DCE as you disable vendors. The function
folds into a constant once you remove the fallback CPU vendor setting.

While at this, move an include out of place so they sort alphabetically.

Not a functional change.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/include/asm/cpuid.h | 49 +++++++++++++++++++++++++++++++-
 1 file changed, 48 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/cpuid.h b/xen/arch/x86/include/asm/cpuid.h
index bf1c635cdd..a4280d1b0d 100644
--- a/xen/arch/x86/include/asm/cpuid.h
+++ b/xen/arch/x86/include/asm/cpuid.h
@@ -2,10 +2,12 @@
 #define __X86_CPUID_H__
 
 #include <asm/cpufeatureset.h>
+#include <asm/x86-vendors.h>
 
-#include <xen/types.h>
+#include <xen/compiler.h>
 #include <xen/kernel.h>
 #include <xen/percpu.h>
+#include <xen/types.h>
 
 #include <public/sysctl.h>
 
@@ -56,6 +58,51 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf,
      (IS_ENABLED(CONFIG_SHANGHAI) ? X86_VENDOR_SHANGHAI : 0) | \
      (IS_ENABLED(CONFIG_HYGON)    ? X86_VENDOR_HYGON    : 0))
 
+/*
+ * When compiling Xen for a single vendor with no fallback vendor there's no
+ * need no check the candidate. `vendor` is always a compile-time constant,
+ * which means this all can fold into a constant boolean.
+ *
+ * A runtime check at the time of CPUID probing guarantees we never run on
+ * wrong hardware and another check when loading CPU policies guarantees we
+ * never run policies for a vendor in another vendor's silicon.
+ *
+ * By the same token, the same folding can happen when no vendor is compiled
+ * in and the fallback path is present.
+ */
+static always_inline bool x86_vendor_is(uint8_t candidate, uint8_t vendor)
+{
+    uint8_t filtered_vendor = vendor & X86_ENABLED_VENDORS;
+
+    if ( vendor == X86_VENDOR_UNKNOWN )
+    {
+        if ( IS_ENABLED(CONFIG_UNKNOWN_CPU) )
+            /* no-vendor optimisation */
+            return X86_ENABLED_VENDORS ? vendor == candidate : true;
+
+        /* unknown-vendor-elimination optimisation */
+        return false;
+    }
+
+    /* single-vendor optimisation */
+    if ( !IS_ENABLED(CONFIG_UNKNOWN_CPU) &&
+         (ISOLATE_LSB(X86_ENABLED_VENDORS) == X86_ENABLED_VENDORS) )
+        return filtered_vendor == X86_ENABLED_VENDORS;
+
+    /* compiled-out-vendor-elimination optimisation */
+    if ( !filtered_vendor )
+        return false;
+
+    /*
+     * When checking against a single vendor, perform an equality check, as
+     * it yields (marginally) better codegen
+     */
+    if ( ISOLATE_LSB(filtered_vendor) == filtered_vendor )
+        return filtered_vendor == candidate ;
+
+    return filtered_vendor & candidate;
+}
+
 #endif /* !__X86_CPUID_H__ */
 
 /*
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 16:45:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 16:45:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173111.1498223 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIdt-0000N8-MK; Wed, 26 Nov 2025 16:45:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173111.1498223; Wed, 26 Nov 2025 16:45:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIdt-0000M2-BG; Wed, 26 Nov 2025 16:45:21 +0000
Received: by outflank-mailman (input) for mailman id 1173111;
 Wed, 26 Nov 2025 16:45: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=0Gki=6C=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vOIds-0008SW-7j
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 16:45: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 47c5448f-cae7-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 17:45:14 +0100 (CET)
Received: from CH2PR16CA0028.namprd16.prod.outlook.com (2603:10b6:610:50::38)
 by SA5PPF8BD1FB094.namprd12.prod.outlook.com
 (2603:10b6:80f:fc04::8d3) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Wed, 26 Nov
 2025 16:45:05 +0000
Received: from CH1PEPF0000A34C.namprd04.prod.outlook.com
 (2603:10b6:610:50:cafe::96) by CH2PR16CA0028.outlook.office365.com
 (2603:10b6:610:50::38) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.11 via Frontend Transport; Wed,
 26 Nov 2025 16:44:55 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH1PEPF0000A34C.mail.protection.outlook.com (10.167.244.6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.7 via Frontend Transport; Wed, 26 Nov 2025 16:45: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; Wed, 26 Nov
 2025 10:45: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: 47c5448f-cae7-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Q5DysOYmMYrOsKf13NPJJdM0iD1Vc/r+2Dw/LMDSPe7ASTOkmhmL0zLU1wfKS7iNcwz31BPUNvXHjlgqrR+sFwVmJGiNMNg29LWfgxuT4T4cp9Gd4yfZQqoK+h5TE/mlYFC+9zlaAYbXh3FUkesoPFSXeYy+u+HhadpmMgh9ttwqxV8qgG5cfmXHjUy3F7g9Zo57NNrju8/EWBwWSx6u/rGfwhnRrXLS63jGAuOSmI/0ARraf0TVEaaECgLemUM4zEZ+lZOoLOkCUAhSN8YTyZ3617zmN3DtUnQNSfXaK9BBw7xmBkqGH+td0m/A/lIOmQfJnqJrIFotUuhVwWgU2A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EplJzbtcbWrbwKevxxCDtdCswvihUhiPV2NmbncaWfY=;
 b=ImkJ2L3kADIrpU16IUs9nQ9wd7AGU3ouRbOMDOTy9WUKHYP6mUcY6uYE6F+/o2L7Lp5KyhAblmvJBgeXLtN5y3CYy/Gjfx2f4/u3j4ZPtIYFWVeukpvT1hqc1hqXHZJz1VNhDyxFhtQF9BCbyJmp9dy1LZKvTZUCVZTAjO/IDicKet/F3Awno8+DuVEPhAVA5JPpds2fHhFjcR7OwRIjNFxcOG0e5icrh27pRvNOMTDO3VUm7O0q/bo3AJS2PvYa6EyKOvhi1Ts1fDNskDu4jY6cnGD8eN1iyCIXf/Pfh11ecTQu1EnbPCh2z8yAnF0IoxzNP97ais+InOOhMpsSVA==
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=EplJzbtcbWrbwKevxxCDtdCswvihUhiPV2NmbncaWfY=;
 b=E3eKS+yly7Hs7fvgLn3H0/NR92ytskCpK5Yz8smwRiTM8hMqqplC+bnGOYUmNspKd4DH0mDl/DyhAKMlg2mFYlKitwF9iqGWe5TnDadPJp+12OwCZ5eSKGYd0Nvpw4Ufo7vNjNGifWuXcwQcnvRpwRrRg0eMq1C1isq785/W5W0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>
Subject: [RFC PATCH 00/11] x86 vendor check optimisations
Date: Wed, 26 Nov 2025 17:44:02 +0100
Message-ID: <20251126164419.174487-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: CH1PEPF0000A34C:EE_|SA5PPF8BD1FB094:EE_
X-MS-Office365-Filtering-Correlation-Id: dde126b5-db81-480a-8518-08de2d0b26a6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?QdsC2DtHsUZ+AY4OXaIUKb2lKUcnwQri/4QN1+jkr4iZYojUbPKhfBWPnMgp?=
 =?us-ascii?Q?C9ZspxEoDjopKqC3VgYYSEb2W6FBkSeV/I0XHoRaUENp37Iw/lecxOLb08Io?=
 =?us-ascii?Q?udaW2YPI6SmlJkErWFq6d9KMWJLC/mWDY/KQRls56HyKDk2tEqmDf40S2BKl?=
 =?us-ascii?Q?nTzp+CRw87x3Vep+oes1VALAy7P+6Y3O+2iQm3NFZbg/uZthN8YAeipMVXaH?=
 =?us-ascii?Q?LlN71AaEgnToY01UpctzOYnZFtDMGFBtqQiXsrSKlW/N4sTghxZjT4+jmr0S?=
 =?us-ascii?Q?Wi7i71N6pqNk8T/qUiTFuXaEnqiOQACsXk5v63sznmKyiXhrI1Qjb01qM7xP?=
 =?us-ascii?Q?rftg2v3ixRi8IHe6vV7mkw84WUfXI+NbTlrJqakLU01zUUxgqUbepTX5dg1J?=
 =?us-ascii?Q?invorarogX+usAm0T/u9Xa2tpbWGR/E+FmaJsVxZkLoTTzYeHRWYQN7C5fX3?=
 =?us-ascii?Q?ASKrNLDX9xH+J+Cc43e95vvw6fgvebVnZ/xnIi0ZqXSGihK7cW8VfO3m93o9?=
 =?us-ascii?Q?WmSBDTTOycDgUpufCPWpdDHGJ1gcTSSUBeoVjF4BjHXV0OmWN61WoaGQphfq?=
 =?us-ascii?Q?cCs7mt9BaPuJaaiyHPTXiR4oYCzcg4FHrEF/qIqDTaO9FBpUqj+hQFGBBqyH?=
 =?us-ascii?Q?YICRmF/DU1b/i22N3PwNePtz2AzEU9ZEfaJutbcbGgcCd/gOFjzPxGA6bieL?=
 =?us-ascii?Q?u4av6RED8jU3nAi4lCGv7ncYE6OdzBt8ui2/nlWi5Bkevyt08Yf0psqdXDYl?=
 =?us-ascii?Q?5FAGbpEaFKmFNifVFbhGhfJI+2qAL0zHZmN1wdboyPheFWwZ1HvnJPPUM3Bn?=
 =?us-ascii?Q?TeGkI1KOAItceYBSCFeahBHcS3K/BB5AVYBFTEFvDeILqgYzVmdyF3mLqnxZ?=
 =?us-ascii?Q?v8hYGm96V7OBACZQrpfdEXfi0vUbC6fXP56JhB+nWr0TzA69YyD1oq+s+R0a?=
 =?us-ascii?Q?JDdnwpgNlxerRlZfZWu3vNKPclZ5/zN1P9y4HYTWN77vJIG4gswXPhzpDHmD?=
 =?us-ascii?Q?hS/74sTVyEu54IrWGlm7akEaBvBbdlcLBpO8Q31whx4ofoJxCTVAhMFjo4nk?=
 =?us-ascii?Q?bMESS+xgSzDxmQBfIem+wKWa/3DUl6OkKL62XaTjU1YhXvkkgZaM+Bm/qbr0?=
 =?us-ascii?Q?57yF/iEq+VJxR0xrdIZ4vMGgY9FvdUab5A09YBMpi8Y8cV+mjb6KVxHHWZ7o?=
 =?us-ascii?Q?vTKS8halFJv9Y0e15k7ESZ4CqX0n0907mhv6Qve0VuQlqEK+7iqkzJ1nerW6?=
 =?us-ascii?Q?PUwrDD1V1KJf5KmHhdfXGH7Hw7g2qxU8+WyRqvhWlU84KXJ+bfQZsc4QQMzo?=
 =?us-ascii?Q?mWu28m+mJTwXHEZKtzb71yzdPoove5IOXi/GxaGwrbxHhI2pUcp9PQrCSXLT?=
 =?us-ascii?Q?DAc1UFHcqpfJPDaMcjmIsN8PDN18LpNNjuzE99nUwGKfzBMTt6sqk7WUV8fd?=
 =?us-ascii?Q?Q4nwRja3nULr8LcMRZdqdct3P3949RuZviCrZCkwuwFcn1nno745KuykSU3/?=
 =?us-ascii?Q?6nfdut8O+MJQWGWqkdZn2QLA94BP9pchaS/fruNAI8KqGuIbeWxIAwi4ra0P?=
 =?us-ascii?Q?N2OZAXCa/21UnQAQ/0I=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)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 16:45:04.9217
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dde126b5-db81-480a-8518-08de2d0b26a6
X-MS-Exchange-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:
	CH1PEPF0000A34C.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF8BD1FB094

Hi,

I'd like some input on some rather aggressive optimisations I'm after.

This is a WIP series (so, don't pay attention to bisectability just yet) to
perform aggressive DCE based on vendor checks. I've added some bloat-o-meter
outputs for the everything-enabled vs an amd-only builds for comparison. The
results are very promising.

Please focus on patch 3, as that's the key to the optimisations.

What I'm ultimately after is what I've come to call the "single-vendor
optimisation". In doing this it's fairly easy to optimise other cases too, such
as removing unused vendors and any branches they use exclusively. Please, tell
me what you think of the approach taken by the series.

  Single-vendor optimisation
  ==========================

  - If we compile Xen for a single-vendor AND
    Xen validates it always boots on such vendor AND
    We remove the default CPU path AND
    Xen sanitises guest CPU policies so they always match the boot vendor, THEN
    It's fair game to fold all vendor checks onto true/false depending on
    whether you're testing against the single vendor you compiled-in or not.
    Effectively ignoring the runtime component, and allowing DCE to perform
    eliminations left, right and center. The results are fairly dramatic in
    places like init_speculation_mitigations(). See bloat-o-meter below.

  Compiled-out-vendor elimination
  ===============================

  - If we have all possible x86 vendors described in Kconfig AND
    We compile out a vendor from Xen THEN
    It should be possible to remove such vendor from every vendor check in the
    system. Either we didn't boot it or we're using the default CPU ops anyway. 
    This causes &-checks to turn into ==- checks (more size-efficient) for
    multi-vendor checks turning into single-vendor checks, or even straight-up
    "false" when all vendors in the check are compiled out.
    This is key to enable transparent DCE-removals in multi-vendor settings.

This allows very transparent removal of all Hygon, Centaur and Shanghai code
in the system when it's not required, as it's most typically found in branches
around common x86 code gated by a runtime vendor check.

The secret sauce is a static always_inline function that operates on the
assumption that the second argument is always a constant and the first always
a variable (as it invairably is the case with these checks). It's written
carefully to fold everything into a constant for the appropriate cases. There's
a few more optimisations in the code, like a no-vendor optimisation where the
checks always return false when comparing against a non-unknown vendor when
no explicit vendor is compiled in.

Patch 1 adds the missing vendors and the default path to Kconfig, as they are
currently absent.

Patch 2 ensures consistency between host and guest CPU policies wrt CPU vendor

Patch 3 introduces the x86_vendor_is() function. This is the key.

Patch 4 migrates the early_cpu_init() vendor switch. It's a bit tricky because
it must be done compatibly with the single-vendor optimisation, but there's
nothing complex about it.

Patch 5 is simply code removal at the Makefile level for free thanks to DCE

Patches 6 through 11 is replacements of regular checks with x86_vendor_is(),
with 6 being the one with the most dramatic effect in the diffstat.

===============================================================================
                                 Bloat-o-meter
===============================================================================

all-vendors+default-path
========================

add/remove: 0/1 grow/shrink: 12/10 up/down: 175/-266 (-91)
Function                                     old     new   delta
start_vmx                                   1507    1582     +75
x86_cpu_policies_are_compatible              157     194     +37
xen_config_data                             1479    1506     +27
early_cpu_init                               948     958     +10
setup_apic_nmi_watchdog                      977     986      +9
init_speculation_mitigations                9836    9841      +5
intel_mcheck_init                           2398    2401      +3
set_cx_pminfo                               1691    1693      +2
init_bsp_APIC                                193     195      +2
guest_common_max_feature_adjustments         110     112      +2
disable_lapic_nmi_watchdog                   119     121      +2
do_get_hw_residencies                       1289    1290      +1
mce_firstbank                                 37      36      -1
mcheck_init                                 1227    1225      -2
hvm_vcpu_virtual_to_linear                   631     628      -3
init_nonfatal_mce_checker                    160     156      -4
domain_cpu_policy_changed                    677     672      -5
recalculate_misc                             898     890      -8
traps_init                                   543     527     -16
default_cpu                                   16       -     -16
cpufreq_driver_init                          468     441     -27
vmce_wrmsr                                   993     909     -84
vmce_rdmsr                                  1134    1034    -100
Total: Before=3726243, After=3726152, chg -0.00%

amd-only+no-default-path
========================

add/remove: 0/14 grow/shrink: 4/58 up/down: 93/-10948 (-10855)
Function                                     old     new   delta
x86_cpu_policies_are_compatible              157     194     +37
amd_check_entrysign                          807     829     +22
init_guest_cpu_policies                     1364    1382     +18
xen_config_data                             1471    1487     +16
opt_gds_mit                                    1       -      -1
nmi_p6_event_width                             4       -      -4
nmi_p4_cccr_val                                4       -      -4
init_e820                                   1037    1033      -4
pci_cfg_ok                                   307     301      -6
get_hw_residencies                           213     205      -8
recalculate_cpuid_policy                     909     900      -9
init_amd                                    2508    2499      -9
dom0_setup_permissions                      3809    3800      -9
arch_ioreq_server_get_type_addr              250     241      -9
cpu_has_amd_erratum                          230     219     -11
parse_spec_ctrl                             2321    2307     -14
amd_nonfatal_mcheck_init                     192     177     -15
shanghai_cpu_dev                              16       -     -16
hygon_cpu_dev                                 16       -     -16
default_init                                  16       -     -16
default_cpu                                   16       -     -16
centaur_cpu_dev                               16       -     -16
x86emul_0fae                                2758    2741     -17
vmce_init_vcpu                               153     136     -17
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
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
cpu_callback                                4650    4600     -50
mc_memerr_dhandler                           903     851     -52
mcheck_init                                 1187    1122     -65
microcode_nmi_callback                       205     139     -66
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
do_mca                                      3181    3085     -96
guest_cpuid                                 2395    2292    -103
guest_common_max_feature_adjustments         110       -    -110
read_msr                                    1431    1319    -112
x86emul_decode                             12729   12597    -132
guest_common_default_feature_adjustments     232      62    -170
do_microcode_update                          787     602    -185
cpufreq_driver_init                          453     263    -190
vmce_wrmsr                                   967     768    -199
recalculate_misc                             898     689    -209
vmce_rdmsr                                  1083     872    -211
early_cpu_init                               948     732    -216
guest_wrmsr                                 2853    2622    -231
init_centaur                                 238       -    -238
domain_cpu_policy_changed                    677     408    -269
write_msr                                   1749    1465    -284
x86_emulate                               222198  221891    -307
init_hygon                                   389       -    -389
start_vmx                                   1507    1105    -402
guest_rdmsr                                 2308    1881    -427
setup_apic_nmi_watchdog                      977     276    -701
do_get_hw_residencies                       1289       9   -1280
init_speculation_mitigations                9714    6788   -2926
Total: Before=3679044, After=3668189, chg -0.30%

There's a few more patches needed to add conditional inclusion of amd.c and
intel.c at the Makefile level, but that can be done just as well. It just adds
5 patches worth of noise I don't want to discuss atm.

Just knowing x86_vendor_is() is "good to have" is good enough as it enables our
downstream to customise it with whatever optimisations we need.

I also suspect other areas of the hypervisor could benefit from this meld of
runtime+compiletime sort of checking, allowing transparent code removal.

I'm thinking DOM0LESS_BOOT vs DOM0_BOOT vs PVSHIM_BOOT, or AMD_SVM vs INTEL_VMX
in HVM-only builds, or family checks to have (i.e) a explicit "older-than-zen"
Kconfig option with a similar approach on a family range check.

This is maybe one of several such uses.

So... thoughts? I'm definitely fond of the single-vendor bloat-o-meter output.

Cheers,
Alejandro

Alejandro Vallejo (11):
  x86: Add more granularity to the vendors in Kconfig
  x86: Reject CPU policies with vendors other than the host's
  x86: Add x86_vendor_is() by itself before using it
  x86: Refactor early vendor lookup code to use x86_vendor_is()
  x86: Conditionalise the inclusion of Hygon/Centaur/Shanghai cpu/ files
  x86: Migrate switch-based vendor checks to x86_vendor_is()
  x86: Migrate MSR handler vendor checks to x86_vendor_is()
  x86: Migrate insn emulator to use x86_vendor_is()
  x86: Migrate spec_ctrl vendor checks to x86_vendor_is()
  x86: Migrate everything under cpu/ to use x86_vendor_is()
  x86: Migrate every remaining raw vendor check to x86_vendor_is()

 xen/arch/x86/Kconfig.cpu               | 45 +++++++++++++++++++++
 xen/arch/x86/acpi/cpu_idle.c           | 19 ++++-----
 xen/arch/x86/acpi/cpufreq/acpi.c       |  2 +-
 xen/arch/x86/acpi/cpufreq/cpufreq.c    | 32 +++++----------
 xen/arch/x86/alternative.c             | 30 ++++++--------
 xen/arch/x86/apic.c                    |  2 +-
 xen/arch/x86/cpu-policy.c              | 41 +++++++++----------
 xen/arch/x86/cpu/Makefile              |  6 +--
 xen/arch/x86/cpu/amd.c                 |  6 +--
 xen/arch/x86/cpu/common.c              | 50 +++++++++++++++--------
 xen/arch/x86/cpu/intel_cacheinfo.c     |  5 +--
 xen/arch/x86/cpu/mcheck/amd_nonfatal.c |  2 +-
 xen/arch/x86/cpu/mcheck/mcaction.c     |  3 +-
 xen/arch/x86/cpu/mcheck/mce.c          | 41 +++++--------------
 xen/arch/x86/cpu/mcheck/mce.h          | 20 +++++----
 xen/arch/x86/cpu/mcheck/mce_amd.c      |  6 +--
 xen/arch/x86/cpu/mcheck/mce_intel.c    |  6 +--
 xen/arch/x86/cpu/mcheck/non-fatal.c    | 20 +++------
 xen/arch/x86/cpu/mcheck/vmce.c         | 50 ++++++-----------------
 xen/arch/x86/cpu/microcode/amd.c       |  2 +-
 xen/arch/x86/cpu/microcode/core.c      |  2 +-
 xen/arch/x86/cpu/mtrr/generic.c        |  4 +-
 xen/arch/x86/cpu/mwait-idle.c          |  4 +-
 xen/arch/x86/cpuid.c                   |  4 +-
 xen/arch/x86/dom0_build.c              |  3 +-
 xen/arch/x86/domain.c                  | 37 ++++++++---------
 xen/arch/x86/e820.c                    |  3 +-
 xen/arch/x86/guest/xen/xen.c           | 19 ++++-----
 xen/arch/x86/hvm/hvm.c                 |  5 ++-
 xen/arch/x86/hvm/ioreq.c               |  2 +-
 xen/arch/x86/hvm/vmx/vmx.c             |  6 +--
 xen/arch/x86/include/asm/cpuid.h       | 56 +++++++++++++++++++++++++-
 xen/arch/x86/include/asm/guest_pt.h    |  4 +-
 xen/arch/x86/irq.c                     |  4 +-
 xen/arch/x86/msr.c                     | 41 ++++++++++---------
 xen/arch/x86/nmi.c                     | 18 +++------
 xen/arch/x86/pv/emul-priv-op.c         | 24 +++++------
 xen/arch/x86/setup.c                   |  2 +-
 xen/arch/x86/spec_ctrl.c               | 34 ++++++++--------
 xen/arch/x86/traps-setup.c             | 18 ++++-----
 xen/arch/x86/x86_emulate/private.h     |  4 +-
 xen/arch/x86/x86_emulate/x86_emulate.c |  2 +-
 xen/lib/x86/policy.c                   |  3 +-
 43 files changed, 360 insertions(+), 327 deletions(-)


base-commit: fb0e37df71a31318c61e0715ffed3e149ca8a4aa
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 16:45:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 16:45:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173112.1498242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIdx-00013Q-2f; Wed, 26 Nov 2025 16:45:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173112.1498242; Wed, 26 Nov 2025 16:45: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 1vOIdw-00013F-UJ; Wed, 26 Nov 2025 16:45:24 +0000
Received: by outflank-mailman (input) for mailman id 1173112;
 Wed, 26 Nov 2025 16:45: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=0Gki=6C=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vOIdv-0008EF-R3
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 16:45:23 +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 4cf3d2b6-cae7-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 17:45:22 +0100 (CET)
Received: from CH2PR12CA0002.namprd12.prod.outlook.com (2603:10b6:610:57::12)
 by CYXPR12MB9278.namprd12.prod.outlook.com (2603:10b6:930:e5::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.11; Wed, 26 Nov
 2025 16:45:13 +0000
Received: from CH1PEPF0000A345.namprd04.prod.outlook.com
 (2603:10b6:610:57:cafe::ee) by CH2PR12CA0002.outlook.office365.com
 (2603:10b6:610:57::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.12 via Frontend Transport; Wed,
 26 Nov 2025 16:45:08 +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.9366.7 via Frontend Transport; Wed, 26 Nov 2025 16:45:12 +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; Wed, 26 Nov
 2025 10:45: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: 4cf3d2b6-cae7-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WUvSmG+hgrxY6pO4Bjy7W95GqfPbYqoy4iRou7H+GzQeKdg/VKtncY78nccMaePh8bXecDwi6t/I+mwBYTXz0F3GLHyB126xKcoSPCQFcc2szutz8G8byP4wnbZdIZQFDnmC4CXwogKPk0FK9xs6A26uVnH5ze/JAKPCPiUmT43pyJ6/wGGoxlApHw0QSGkZHGJtSugt3taynKnMv70uDspd5Lk+grmjohsSPttqpsVJus/L7aXTtPM3B2wxPS667ZmJDw4CVBM+mEELeKPpY8hX/K7VL3ucvez/NugT4M3RFqopvO5ZM3sPlG/d2rnDGvjSpVWN3CffAF4LLrpzSQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wfGhzxonqLYTnhgkDtyBekIRlBmOPrOZSX3pn969wP8=;
 b=EBUUw0oYLm+mkm2JbYYQ/ocxFUXBLLbolsSvF58+JcBZzmDhBh1g622FvLbxC1XztKLEKyUvQkxoIb7MZtRrsWJk+50y0rfnuu9WY6gWdEtXU+2imwKJTc5KDev3zYX45dS1jtNeAr7o3dTWP7drU5wdbPsWZuBXjVga+ezz7IMsWuomTLBs299wlZPtDhnMYC3PJkhV2TzpDAT3EDg5eT63IilFVLvTTRqPrdgNwdd/6PYRsQrKRqBgwKMZ6GJfMMwUyDPPNfTKh6hWGL8bqdiDf0cPkK3qlIBTRyXI1xHI5FIRLYe1UpPgG0hZ0AfRWqu1KNjh76FEYw3wQf/yDA==
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=wfGhzxonqLYTnhgkDtyBekIRlBmOPrOZSX3pn969wP8=;
 b=AHuqs1WZqFRPNYJawaeWGUX5FMKhfZ61Hi/c67IBjyKKLlEodaizoAQaoS/KFPqA5al0ITUrq/vnPs8HSKpPZcqCzyAxpnr+C2cRy/zp6Wj7UTyxXeQMTUXmypFKRZdGU7jRsNUdq1/NkBVDsDMG971YVNZ5ITZP9EzOZIZT17w=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>
Subject: [RFC PATCH 06/11] x86: Migrate switch-based vendor checks to x86_vendor_is()
Date: Wed, 26 Nov 2025 17:44:08 +0100
Message-ID: <20251126164419.174487-7-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
References: <20251126164419.174487-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: CH1PEPF0000A345:EE_|CYXPR12MB9278:EE_
X-MS-Office365-Filtering-Correlation-Id: 9a1e46f8-292f-4797-88ac-08de2d0b2b62
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?eqvQ8shYFAO+CvisXZi7DyFgijbpjl9/fGcYddfyEizYnfmsrc2KTE/ywYGo?=
 =?us-ascii?Q?kKst8sljoqzwEEzonPJ8BaG7j1IPIlq0qKVswU0ixF902/9z3T/qCFztXUst?=
 =?us-ascii?Q?J4Q/OyLGwqvqsDxUSolmynVTVEbRu9P44V6ojsii1eecxQsphrStTy+e6Nvc?=
 =?us-ascii?Q?LmEBcSSre1Pwf9ti2uJRuQGwplllcqs22+55tp4ZFksc3op6T+XiJjLanq2x?=
 =?us-ascii?Q?zxALje+gsGOqh/2mMCCi5Y3uhmIdRPFnJBi5tkPg5B6Y5d3+PgQW9sHXeLzz?=
 =?us-ascii?Q?vc3DYdtZXHJYpqFfaCg/A8YYjCAsppvM8vn7Rc23cHS03GwH+4rd30BKLcin?=
 =?us-ascii?Q?t+Lp0UFGThZBbQ4Ec7sXBzls7dePASel3eh3ZEEqPl9QBTCtUUa3wl/0259/?=
 =?us-ascii?Q?ZUcVr3FP03/e7LuTXB3NsBG1kctdCYBGurcekh4AR3Qp0dkA2LQa+O93Y2G9?=
 =?us-ascii?Q?FZirYp0rP0zLxK7UEwxATOUea2m5ldvHt+z+VqMC6qHpeM4Kvdnfxw+/5aVm?=
 =?us-ascii?Q?g6C/+SHWxM1TtP5YCkSK3cmIIcZvWbI4SyYGLdq6CRBsVX1nIhxbeyQGG+UD?=
 =?us-ascii?Q?61nQ1VWN+5m6BBNB8mZth8zeNnekiVucZiXFI1Mh1KzRYnxAINrVFHanLpN7?=
 =?us-ascii?Q?OWDY9qr0kEP5P94rvTR+J/dEEmjI2bvWj2FPUGGAQBnQKuTZFiSX5nkisu+l?=
 =?us-ascii?Q?CMLeXSpIXGmigD8E16+0w6RCO+SgoKtZf1O3prfw2cnppl3b4AG1wPflrmk0?=
 =?us-ascii?Q?ZMOyhwD0/x/PtUThI1GXFXzqL901IbaZIV8v0K3oxZITnrDEl5SmMJSTgZ0K?=
 =?us-ascii?Q?rfyTnZlze4KFM1D0MA4jEOAcpZEk/gXmcg0dRPP1s2SUTQsfWM4KkdyDOPLV?=
 =?us-ascii?Q?EEFoK7rn1e1fn6LMSgfJr9oLYPOUacv6FKFgHibHb0sfB17r7jxb4tVgZPZE?=
 =?us-ascii?Q?Q2KRYbPGyyN4H5aE6DbviEVvRJSj1+PYjB4ehhhFsl3Ht1NDnuK3kQ6HdXAT?=
 =?us-ascii?Q?dYI8NTVmJDAjQ/wU9rduCDQ9IZfFgNrNSEp3dPU1sH+JDEFraOtA5C2v0eoj?=
 =?us-ascii?Q?0ReppGXdLKKhg6vfHWMd86LDi3RPo/zqbgdPTpoSNk/ObA6BqC+WWlCbmCJH?=
 =?us-ascii?Q?S/thElED4WIpQ86k7S6i2qk+wz95O+Abig66GJWo37qQqQwv4EcEFbBAiapa?=
 =?us-ascii?Q?4n2VwCaQ/4HYuonkFHse0aAFUVQyAysgnpjk2YFdZnA7pDPAxL7/S2BFzZ7q?=
 =?us-ascii?Q?qYBbQjwSK+PEcP8Z3NyOjepek0kdn0GnaTfq/1Ukc1k8AFjlSQJy9NSL3E4L?=
 =?us-ascii?Q?gvI+LNLYQk7Ideg4l4ibtvpJpLeb3q4T0Vtb5ti0m0PAmx8MBkZ/GY928uXT?=
 =?us-ascii?Q?bHjbmnD9pWqS1964nBq63k75pKWLyxnLAeF4ViI4AJoQNKLYKNAVzKwXzp+j?=
 =?us-ascii?Q?+3ErnXbrz8CE9+Ez9Zb3leELDXK4J50RgaM0izjnAD/wo2c6Naj/humtZsUd?=
 =?us-ascii?Q?1dDKPyazfl29UYW9RUD/QN8INBZg48jCQ45S1NrNPJkfo919nKoB9dB/a8NB?=
 =?us-ascii?Q?uxCCL6jYnVTewnL3kSY=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 16:45:12.8663
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9a1e46f8-292f-4797-88ac-08de2d0b2b62
X-MS-Exchange-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: CYXPR12MB9278

This enables each branch to be optimised-out when the vendor isn't
enabled in Kconfig and combines N checks into 1 for the strict fallthrough
cases.

Plus, the diffstat looks fantastic and we save tons of vertical space.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/acpi/cpufreq/cpufreq.c | 28 ++++++------------
 xen/arch/x86/alternative.c          | 30 ++++++++-----------
 xen/arch/x86/cpu-policy.c           | 31 ++++++++-----------
 xen/arch/x86/cpu/mcheck/mce.c       | 27 +++--------------
 xen/arch/x86/cpu/mcheck/mce.h       | 20 ++++++-------
 xen/arch/x86/cpu/mcheck/non-fatal.c | 20 ++++---------
 xen/arch/x86/cpu/mcheck/vmce.c      | 46 +++++++----------------------
 xen/arch/x86/domain.c               | 12 ++++----
 xen/arch/x86/guest/xen/xen.c        | 19 +++++-------
 xen/arch/x86/nmi.c                  | 18 ++++-------
 xen/arch/x86/traps-setup.c          | 18 +++++------
 11 files changed, 87 insertions(+), 182 deletions(-)

diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpufreq/cpufreq.c
index 94e8e11c15..89e2b3d167 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -135,20 +135,17 @@ static int __init cf_check cpufreq_driver_init(void)
 
         ret = -ENOENT;
 
-        switch ( boot_cpu_data.x86_vendor )
+        if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) )
         {
-        case X86_VENDOR_INTEL:
             for ( i = 0; i < cpufreq_xen_cnt; i++ )
             {
                 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;
@@ -163,11 +160,10 @@ static int __init cf_check cpufreq_driver_init(void)
                 if ( !ret || ret == -EBUSY )
                     break;
             }
-            break;
-
-        case X86_VENDOR_AMD:
-        case X86_VENDOR_HYGON:
-#ifdef CONFIG_AMD
+        }
+        else if ( x86_vendor_is(boot_cpu_data.x86_vendor,
+                                X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+        {
             for ( i = 0; i < cpufreq_xen_cnt; i++ )
             {
                 switch ( cpufreq_xen_opts[i] )
@@ -193,15 +189,9 @@ static int __init cf_check cpufreq_driver_init(void)
                 if ( !ret || ret == -EBUSY )
                     break;
             }
-#else
-            ret = -ENODEV;
-#endif /* CONFIG_AMD */
-            break;
-
-        default:
-            printk(XENLOG_ERR "Cpufreq: unsupported x86 vendor\n");
-            break;
         }
+        else
+            printk(XENLOG_ERR "Cpufreq: unsupported x86 vendor\n");
 
         /*
          * After successful cpufreq driver registeration, XEN_PROCESSOR_PM_CPPC
diff --git a/xen/arch/x86/alternative.c b/xen/arch/x86/alternative.c
index 9f844241bc..071871c242 100644
--- a/xen/arch/x86/alternative.c
+++ b/xen/arch/x86/alternative.c
@@ -89,32 +89,28 @@ 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 )
+    if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) )
     {
-    case X86_VENDOR_INTEL:
         /*
          * Due to a decoder implementation quirk, some specific Intel CPUs
          * actually perform better with the "k8_nops" than with the SDM-
          * recommended NOPs.
          */
-        if ( boot_cpu_data.x86 != 6 )
-            break;
-
-        switch ( boot_cpu_data.x86_model )
+        if ( boot_cpu_data.x86 == 6 )
         {
-        case 0x0f ... 0x1b:
-        case 0x1d ... 0x25:
-        case 0x28 ... 0x2f:
-            ideal_nops = k8_nops;
-            break;
+            switch ( boot_cpu_data.x86_model )
+            {
+            case 0x0f ... 0x1b:
+            case 0x1d ... 0x25:
+            case 0x28 ... 0x2f:
+                ideal_nops = k8_nops;
+                break;
+            }
         }
-        break;
-
-    case X86_VENDOR_AMD:
-        if ( boot_cpu_data.x86 <= 0xf )
-            ideal_nops = k8_nops;
-        break;
     }
+    else if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_AMD) &&
+              (boot_cpu_data.x86 <= 0xf) )
+        ideal_nops = k8_nops;
 
 #ifdef HAVE_AS_NOPS_DIRECTIVE
     if ( memcmp(ideal_nops[ASM_NOP_MAX], toolchain_nops, ASM_NOP_MAX) == 0 )
diff --git a/xen/arch/x86/cpu-policy.c b/xen/arch/x86/cpu-policy.c
index 0a7ef15f72..1acd7c5124 100644
--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -279,9 +279,8 @@ static void recalculate_misc(struct cpu_policy *p)
 
     p->extd.raw[0x8].d = 0;
 
-    switch ( p->x86_vendor )
+    if ( x86_vendor_is(p->x86_vendor, X86_VENDOR_INTEL) )
     {
-    case X86_VENDOR_INTEL:
         p->basic.l2_nr_queries = 1; /* Fixed to 1 query. */
         p->basic.raw[0x3] = EMPTY_LEAF; /* PSN - always hidden. */
         p->basic.raw[0x9] = EMPTY_LEAF; /* DCA - always hidden. */
@@ -297,10 +296,9 @@ static void recalculate_misc(struct cpu_policy *p)
 
         p->extd.raw[0x8].a &= 0x0000ffff;
         p->extd.raw[0x8].c = 0;
-        break;
-
-    case X86_VENDOR_AMD:
-    case X86_VENDOR_HYGON:
+    }
+    else if ( x86_vendor_is(p->x86_vendor, X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+    {
         zero_leaves(p->basic.raw, 0x2, 0x3);
         memset(p->cache.raw, 0, sizeof(p->cache.raw));
         zero_leaves(p->basic.raw, 0x9, 0xa);
@@ -331,7 +329,6 @@ static void recalculate_misc(struct cpu_policy *p)
         p->extd.raw[0x20] = EMPTY_LEAF; /* Platform QoS */
         p->extd.raw[0x21].b = 0;
         p->extd.raw[0x21].d = 0;
-        break;
     }
 }
 
@@ -416,9 +413,8 @@ 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 )
+    if ( x86_vendor_is(boot_cpu_data.vendor, X86_VENDOR_INTEL) )
     {
-    case X86_VENDOR_INTEL:
         /*
          * MSR_ARCH_CAPS is just feature data, and we can offer it to guests
          * unconditionally, although limit it to Intel systems as it is highly
@@ -477,9 +473,9 @@ static void __init guest_common_max_feature_adjustments(uint32_t *fs)
          */
         if ( test_bit(X86_FEATURE_RTM, fs) )
             __set_bit(X86_FEATURE_RTM_ALWAYS_ABORT, fs);
-        break;
-
-    case X86_VENDOR_AMD:
+    }
+    else if ( x86_vendor_is(boot_cpu_data.vendor, X86_VENDOR_AMD) )
+    {
         /*
          * This bit indicates that the VERW instruction may have gained
          * scrubbing side effects.  With pooling, it means "you might migrate
@@ -488,7 +484,6 @@ static void __init guest_common_max_feature_adjustments(uint32_t *fs)
          * has been around since the 286.
          */
         __set_bit(X86_FEATURE_VERW_CLEAR, fs);
-        break;
     }
 
     /*
@@ -510,9 +505,8 @@ 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 )
+    if ( x86_vendor_is(boot_cpu_data.vendor, X86_VENDOR_INTEL) )
     {
-    case X86_VENDOR_INTEL:
         /*
          * IvyBridge client parts suffer from leakage of RDRAND data due to SRBDS
          * (XSA-320 / CVE-2020-0543), and won't be receiving microcode to
@@ -570,9 +564,9 @@ static void __init guest_common_default_feature_adjustments(uint32_t *fs)
             __clear_bit(X86_FEATURE_RTM, fs);
             __set_bit(X86_FEATURE_RTM_ALWAYS_ABORT, fs);
         }
-        break;
-
-    case X86_VENDOR_AMD:
+    }
+    else if ( x86_vendor_is(boot_cpu_data.vendor, X86_VENDOR_AMD) )
+    {
         /*
          * This bit indicate that the VERW instruction may have gained
          * scrubbing side effects.  The max policy has it set for migration
@@ -581,7 +575,6 @@ static void __init guest_common_default_feature_adjustments(uint32_t *fs)
          */
         if ( !cpu_has_verw_clear )
             __clear_bit(X86_FEATURE_VERW_CLEAR, fs);
-        break;
     }
 
     /*
diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index 9277781bff..9bef1da385 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -766,30 +766,11 @@ 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 )
-    {
-#ifdef CONFIG_AMD
-    case X86_VENDOR_AMD:
-    case X86_VENDOR_HYGON:
+    if ( x86_vendor_is(c->x86_vendor, X86_VENDOR_AMD | X86_VENDOR_HYGON) )
         inited = amd_mcheck_init(c, bsp);
-        break;
-#endif
-
-#ifdef CONFIG_INTEL
-    case X86_VENDOR_INTEL:
-        switch ( c->x86 )
-        {
-        case 6:
-        case 15:
-            inited = intel_mcheck_init(c, bsp);
-            break;
-        }
-        break;
-#endif
-
-    default:
-        break;
-    }
+    else if ( x86_vendor_is(c->x86_vendor, X86_VENDOR_INTEL) &&
+              (c->x86 == 6 || c->x86 == 15) )
+        inited = intel_mcheck_init(c, bsp);
 
     show_mca_info(inited, c);
     if ( inited == mcheck_none || inited == mcheck_unset )
diff --git a/xen/arch/x86/cpu/mcheck/mce.h b/xen/arch/x86/cpu/mcheck/mce.h
index 920b075355..14261f925b 100644
--- a/xen/arch/x86/cpu/mcheck/mce.h
+++ b/xen/arch/x86/cpu/mcheck/mce.h
@@ -137,28 +137,26 @@ 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) {
-    case X86_VENDOR_INTEL:
+    if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) )
+    {
         if (msr >= MSR_IA32_MC0_CTL2 &&
             msr < MSR_IA32_MCx_CTL2(v->arch.vmce.mcg_cap & MCG_CAP_COUNT) )
             return 1;
-        fallthrough;
-
-    case X86_VENDOR_CENTAUR:
-    case X86_VENDOR_SHANGHAI:
-        if (msr == MSR_P5_MC_ADDR || msr == MSR_P5_MC_TYPE)
+        if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_CENTAUR |
+                                                     X86_VENDOR_SHANGHAI) &&
+             (msr == MSR_P5_MC_ADDR || msr == MSR_P5_MC_TYPE) )
             return 1;
-        break;
-
-    case X86_VENDOR_AMD:
+    }
+    else if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_AMD) )
+    {
         switch (msr) {
         case MSR_F10_MC4_MISC1:
         case MSR_F10_MC4_MISC2:
         case MSR_F10_MC4_MISC3:
             return 1;
         }
-        break;
     }
+
     return 0;
 }
 
diff --git a/xen/arch/x86/cpu/mcheck/non-fatal.c b/xen/arch/x86/cpu/mcheck/non-fatal.c
index a9ee9bb94f..db0ddc5b7b 100644
--- a/xen/arch/x86/cpu/mcheck/non-fatal.c
+++ b/xen/arch/x86/cpu/mcheck/non-fatal.c
@@ -23,25 +23,15 @@ 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
-	case X86_VENDOR_AMD:
-	case X86_VENDOR_HYGON:
+	if ( x86_vendor_is(c->x86_vendor, X86_VENDOR_AMD | 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:
+	else if ( x86_vendor_is(c->x86_vendor, X86_VENDOR_INTEL) )
 		intel_nonfatal_mcheck_init(c);
-		break;
-#endif
-
-	default:
-		/* unhandled vendor isn't really an error */
+	else
+		 /* unhandled vendor isn't really an error */
 		return 0;
-	}
+
 	printk(KERN_INFO "mcheck_poll: Machine check polling timer started.\n");
 	return 0;
 }
diff --git a/xen/arch/x86/cpu/mcheck/vmce.c b/xen/arch/x86/cpu/mcheck/vmce.c
index 1a7e92506a..dd1ccecfe5 100644
--- a/xen/arch/x86/cpu/mcheck/vmce.c
+++ b/xen/arch/x86/cpu/mcheck/vmce.c
@@ -136,27 +136,14 @@ static int bank_mce_rdmsr(const struct vcpu *v, uint32_t msr, uint64_t *val)
         break;
 
     default:
-        switch ( boot_cpu_data.x86_vendor )
-        {
-#ifdef CONFIG_INTEL
-        case X86_VENDOR_CENTAUR:
-        case X86_VENDOR_SHANGHAI:
-        case X86_VENDOR_INTEL:
+        ret = 0;
+        if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_CENTAUR  |
+                                                     X86_VENDOR_SHANGHAI |
+                                                     X86_VENDOR_INTEL) )
             ret = vmce_intel_rdmsr(v, msr, val);
-            break;
-#endif
-
-#ifdef CONFIG_AMD
-        case X86_VENDOR_AMD:
-        case X86_VENDOR_HYGON:
+        else if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_AMD |
+                                                          X86_VENDOR_HYGON) )
             ret = vmce_amd_rdmsr(v, msr, val);
-            break;
-#endif
-
-        default:
-            ret = 0;
-            break;
-        }
         break;
     }
 
@@ -273,25 +260,12 @@ static int bank_mce_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
         break;
 
     default:
-        switch ( boot_cpu_data.x86_vendor )
-        {
-#ifdef CONFIG_INTEL
-        case X86_VENDOR_INTEL:
+        ret = 0;
+        if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) )
             ret = vmce_intel_wrmsr(v, msr, val);
-            break;
-#endif
-
-#ifdef CONFIG_AMD
-        case X86_VENDOR_AMD:
-        case X86_VENDOR_HYGON:
+        else if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_AMD |
+                                                          X86_VENDOR_HYGON) )
             ret = vmce_amd_wrmsr(v, msr, val);
-            break;
-#endif
-
-        default:
-            ret = 0;
-            break;
-        }
         break;
     }
 
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 3a21e035f4..f3e4ae4a4d 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -319,9 +319,8 @@ void domain_cpu_policy_changed(struct domain *d)
             if ( cpu_has_htt )
                 edx |= cpufeat_mask(X86_FEATURE_HTT);
 
-            switch ( boot_cpu_data.x86_vendor )
+            if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) )
             {
-            case X86_VENDOR_INTEL:
                 /*
                  * Intel masking MSRs are documented as AND masks.
                  * Experimentally, they are applied after OSXSAVE and APIC
@@ -336,10 +335,10 @@ void domain_cpu_policy_changed(struct domain *d)
                 edx = cpufeat_mask(X86_FEATURE_APIC);
 
                 mask |= ((uint64_t)edx << 32) | ecx;
-                break;
-
-            case X86_VENDOR_AMD:
-            case X86_VENDOR_HYGON:
+            }
+            else if ( x86_vendor_is(boot_cpu_data.x86_vendor,
+                                    X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+            {
                 mask &= ((uint64_t)ecx << 32) | edx;
 
                 /*
@@ -362,7 +361,6 @@ void domain_cpu_policy_changed(struct domain *d)
                     ecx |= cpufeat_mask(X86_FEATURE_HYPERVISOR);
 
                 mask |= ((uint64_t)ecx << 32) | edx;
-                break;
             }
 
             d->arch.pv.cpuidmasks->_1cd = mask;
diff --git a/xen/arch/x86/guest/xen/xen.c b/xen/arch/x86/guest/xen/xen.c
index 77a3a8742a..7802b5f506 100644
--- a/xen/arch/x86/guest/xen/xen.c
+++ b/xen/arch/x86/guest/xen/xen.c
@@ -59,23 +59,18 @@ void asmlinkage __init early_hypercall_setup(void)
         boot_cpu_data.x86_vendor = x86_cpuid_lookup_vendor(ebx, ecx, edx);
     }
 
-    switch ( boot_cpu_data.x86_vendor )
+    if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL   |
+                                                 X86_VENDOR_CENTAUR |
+                                                 X86_VENDOR_SHANGHAI) )
     {
-    case X86_VENDOR_INTEL:
-    case X86_VENDOR_CENTAUR:
-    case X86_VENDOR_SHANGHAI:
         early_hypercall_insn = 0;
         setup_force_cpu_cap(X86_FEATURE_USE_VMCALL);
-        break;
-
-    case X86_VENDOR_AMD:
-    case X86_VENDOR_HYGON:
+    }
+    else if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_AMD |
+                                                      X86_VENDOR_HYGON) )
         early_hypercall_insn = 1;
-        break;
-
-    default:
+    else
         BUG();
-    }
 }
 
 static void __init find_xen_leaves(void)
diff --git a/xen/arch/x86/nmi.c b/xen/arch/x86/nmi.c
index a0c9194ff0..a35e7109fe 100644
--- a/xen/arch/x86/nmi.c
+++ b/xen/arch/x86/nmi.c
@@ -216,11 +216,10 @@ void disable_lapic_nmi_watchdog(void)
 {
     if (nmi_active <= 0)
         return;
-    switch (boot_cpu_data.x86_vendor) {
-    case X86_VENDOR_AMD:
+    if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_AMD) )
         wrmsrns(MSR_K7_EVNTSEL0, 0);
-        break;
-    case X86_VENDOR_INTEL:
+    else if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) )
+    {
         switch (boot_cpu_data.x86) {
         case 6:
             wrmsrns(MSR_P6_EVNTSEL(0), 0);
@@ -230,7 +229,6 @@ void disable_lapic_nmi_watchdog(void)
             wrmsr(MSR_P4_CRU_ESCR0, 0);
             break;
         }
-        break;
     }
     nmi_active = -1;
     /* tell do_nmi() and others that we're not active any more */
@@ -387,13 +385,10 @@ void setup_apic_nmi_watchdog(void)
     if ( nmi_watchdog == NMI_NONE )
         return;
 
-    switch ( boot_cpu_data.x86_vendor )
-    {
-    case X86_VENDOR_AMD:
+    if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_AMD) )
         setup_k7_watchdog();
-        break;
-
-    case X86_VENDOR_INTEL:
+    else if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) )
+    {
         switch (boot_cpu_data.x86) {
         case 6:
             setup_p6_watchdog((boot_cpu_data.x86_model < 14) 
@@ -404,7 +399,6 @@ void setup_apic_nmi_watchdog(void)
             setup_p4_watchdog();
             break;
         }
-        break;
     }
 
     if ( nmi_perfctr_msr == 0 )
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index d77be8f839..83070b050a 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -243,19 +243,15 @@ 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 )
+    if ( x86_vendor_is(boot_cpu_data.x86_vendor,
+                       X86_VENDOR_INTEL | X86_VENDOR_AMD | X86_VENDOR_HYGON) )
     {
-    case X86_VENDOR_INTEL:
-        if ( boot_cpu_data.x86 == 0xf )
-        {
+        if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) &&
+             (boot_cpu_data.x86 == 0xf) )
             msr = MSR_P4_LER_FROM_LIP;
-            break;
-        }
-        fallthrough;
-    case X86_VENDOR_AMD:
-    case X86_VENDOR_HYGON:
-        msr = MSR_IA32_LASTINTFROMIP;
-        break;
+        else if ( x86_vendor_is(boot_cpu_data.x86_vendor,
+                                X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+            msr = MSR_IA32_LASTINTFROMIP;
     }
 
     if ( msr == 0 )
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 16:45:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 16:45:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173113.1498251 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIdy-0001JB-Bx; Wed, 26 Nov 2025 16:45:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173113.1498251; Wed, 26 Nov 2025 16:45:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIdy-0001IO-8r; Wed, 26 Nov 2025 16:45:26 +0000
Received: by outflank-mailman (input) for mailman id 1173113;
 Wed, 26 Nov 2025 16:45: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=0Gki=6C=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vOIdx-0008EF-B4
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 16:45:25 +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 4d46dc38-cae7-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 17:45:24 +0100 (CET)
Received: from PH7PR17CA0072.namprd17.prod.outlook.com (2603:10b6:510:325::20)
 by PH7PR12MB7282.namprd12.prod.outlook.com (2603:10b6:510:209::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Wed, 26 Nov
 2025 16:45:19 +0000
Received: from SJ1PEPF000023D8.namprd21.prod.outlook.com
 (2603:10b6:510:325:cafe::f5) by PH7PR17CA0072.outlook.office365.com
 (2603:10b6:510:325::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.12 via Frontend Transport; Wed,
 26 Nov 2025 16:45:18 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF000023D8.mail.protection.outlook.com (10.167.244.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.0 via Frontend Transport; Wed, 26 Nov 2025 16:45:18 +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; Wed, 26 Nov
 2025 10:45: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: 4d46dc38-cae7-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xknlO+5Y+ikz9/M3NMN8dA4bRkC8emwglURifbXVqJRYhhpKcfUhiqpyLwqMMckpRuclmLY8/hIqwfJhFkrzCqpkZuMQeZ6CXcLWqLybx0XIVNQJsDRkMNsVTUtLZTta4emVpWqwpwotkeK3kp/5gRQb5q+hsI0AFfxML0uoz9FplLmReQkthPDRLyTSsJyR0mC1Z/e5lzLz8L1DcasmTwNDyXM8mchNxW/YG4VU6SwiocMeTLX5yqOMRJuYbbpOZnS6GOnZYk9Qq+3pDftmW/lu5wsr20yygPnY4dDlxU0ybeymkIzFGurEhmrIloXP7kvTbKu/Dt9PMfDjDYknnA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=x0lddGJ4VxvfpnmaJYHWtrMb1/mSuMob9++57KLq5uU=;
 b=gc6K18G/dAGHKQydO1JsywZADC6CXFEQqlJkzC45aKaH9uFfpNaoMvXOT9xDeSifPmhrk3cHQ4PUoHA9e1AgExFrBVTtj1VrJpqMV3Jw5IcXuteBI2rKcr20JkdyyzEt4LJoYQsMSkrcnlq2docahBT4RBlvvlqH/T2L2JbCAQBUq3ismD2WlgTOE5Izh/G4pWyMtqJfc1G1A281Tb8zvz6hrzLFeCgR+TBZqDW2xXG9sWnwZf6Sj4Mnl56ocHLjKDaHW/XT9EraR5mx0eFUs0SEoi0gLWN0cs9K20zKuNMykxS0rkHPK0bCcqf5c3KT4+mJZ7nWtA5d04MKtlS5jw==
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=x0lddGJ4VxvfpnmaJYHWtrMb1/mSuMob9++57KLq5uU=;
 b=oOVAkCOae1Fq3obc1Qa6xdM4vMCdPyZo/2hlaQF8RLei54WiYLfRK3zZcVvewdJ8yEpCtPI+K0kzJykqjRHlrOR2EiOiProv6PqU0R9yZhi4OTLLJ1ly8Bta0oyOkqWYtnVENSwRlx3yHJ/mNEHUjcC7jyKBqFyPuKFc+/icWCI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>
Subject: [RFC PATCH 09/11] x86: Migrate spec_ctrl vendor checks to x86_vendor_is()
Date: Wed, 26 Nov 2025 17:44:11 +0100
Message-ID: <20251126164419.174487-10-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
References: <20251126164419.174487-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: SJ1PEPF000023D8:EE_|PH7PR12MB7282:EE_
X-MS-Office365-Filtering-Correlation-Id: 3e97cb69-c542-41ab-5922-08de2d0b2f01
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?BoKTJF4Q8/A+XCsMwYt9Dagkbg79Nz94evXOyAbJkp2KQPK9NcQm6e2jQ+we?=
 =?us-ascii?Q?AAgvGFOn1E6gP2lJEsXrbp5itfpQgKMlp4jlgKmt0vmFIKbEBx9DaJqpvjtf?=
 =?us-ascii?Q?Q9v/zkHfBckLKLvqEY8V4/5fOKuJ5U9Eg5oIh4ugK38ON/No3naRZMVbY/Cy?=
 =?us-ascii?Q?BDY3Cvh4aDuj2uaVkuTke81OKWTxCIizyr2K7AB8Woc1Z+iVMcdFJx4FD7gJ?=
 =?us-ascii?Q?N+Tl4y5fpMc5BVqxUSnjC8gbwEhBm2K1E4Mc7uGXJydTRICxR0ahKBBrn0Ue?=
 =?us-ascii?Q?C5whDDTDbGCfaAMxjCVaAuDzLPwRxlxWrRJuohiPuciY9HuY84tbxYvk6j0O?=
 =?us-ascii?Q?mPmPAtZ3To/e1hQy8ddKT8w5cqmQ1mfziYq68oyMuiDSmyo0yoMJ1DL0217x?=
 =?us-ascii?Q?UELeOijqyGvDTTUh+bReDw7JKRzF+nZHbRStFXJtK5n5vJ+X21uO1ev2bYVA?=
 =?us-ascii?Q?TzpbxZXO1x12j8V2xdRoOzIaZ1cG53KeYAc/h3whYNOa+L8B6Ee++zjGqr+J?=
 =?us-ascii?Q?PS/f8VlgtqFCI23WbSDSe2hRqfSZdoeaLojkBpaz0fRjn/KgtjGPszRO3KY0?=
 =?us-ascii?Q?DU6cac0y1T73rWphntS+lUhCyWNloOaQ4C+/xDnfI8FSvOGbPuUHo16Vil8q?=
 =?us-ascii?Q?bm8XWtLdRzCyF6byR9NGKL2nSeDnq4C2biqmpDI4YU5cf05dSrTTYEbGhwSr?=
 =?us-ascii?Q?it8xgreZ9M9pwsZvrkXha53Z+D4Yqjpz8JrTL1P8Wqms7yCe8V+GzNUxvHDN?=
 =?us-ascii?Q?HjW6IHG1czVD7tZQGo9Nd1MqpSiR7M71/M0NwUp5zjNxRW0uibnIK61SRxKg?=
 =?us-ascii?Q?Qiy9wBpkAOOSaq+v7SSk/3ySBo3DDPHDPrA7oQr23+UbEutXdQemC2fMT+qe?=
 =?us-ascii?Q?5l8pySeW3MxGUSybJDldVuvZIGzfsHzG0/Qn8FCSa3WqTn0loa/D+FHfGnsx?=
 =?us-ascii?Q?Hka5aQxkjJiF1HVqiops8vViLIFD6EWsoKtRqZd5DdU+IV5Jwk1xOnHqeakB?=
 =?us-ascii?Q?PoKOcsfqgI7UmZW/v1Ukn5yowy5OofoIGUgMiMy/xjYIwvBrFenzh069XqlV?=
 =?us-ascii?Q?ov/oDUdvEKbujN7Os+kZLgVpTZMRBbrK5SwvU6LHAdShWa5iNCydVZnEBxid?=
 =?us-ascii?Q?STjPPE+lXoaWuOL5RtLr8urDn3pRtVxR2DmWKbmCllbIo4J4A/mQQPNBlTga?=
 =?us-ascii?Q?dcW5psdWlMbbEc7TKEinHa3B+6LS6ehNOVQmTCgO5g4t0bq+tyxMWq8M4Ypp?=
 =?us-ascii?Q?DYkwGzcsKJQDulZOs1qVz7vn/xE0MZdIqdYVcq0AyCP/9R4So3AV6cBImIbw?=
 =?us-ascii?Q?M7Og5XxCrXdK+u2+KCiW+G4KX95iky6l6KcBHPCuIRyyJ5NXWy45Lo+7sdjN?=
 =?us-ascii?Q?Trhss4/TTkm/f6u/+vWT9ztkIZBTe4QsJ9XorTBDeHKse40TRNUMMfiEJstA?=
 =?us-ascii?Q?adSf2Rq57zn2sPlBMqlN6T14a0ve4zBSvwNH1ym/zpBt+6WivBu4z1ORiJcl?=
 =?us-ascii?Q?cFlC+0ypIkDZEY4hM9nXOM7LhJV60JSisW9gHTkLULKqLkkDZptKqrD4G2h/?=
 =?us-ascii?Q?3FVWdJCV9C8JN7Y/njo=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)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 16:45:18.8357
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e97cb69-c542-41ab-5922-08de2d0b2f01
X-MS-Exchange-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:
	SJ1PEPF000023D8.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7282

This is the file with the most dramatic effect in terms of DCE, so
single it out here.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/spec_ctrl.c | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/xen/arch/x86/spec_ctrl.c b/xen/arch/x86/spec_ctrl.c
index e71f62c601..a464c88908 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 ( (x86_vendor_is(boot_cpu_data.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 ( x86_vendor_is(boot_cpu_data.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,10 +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 ( x86_vendor_is(boot_cpu_data.vendor, X86_VENDOR_AMD | X86_VENDOR_HYGON) )
         return true;
 
-    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
+    if ( !x86_vendor_is(boot_cpu_data.vendor, X86_VENDOR_INTEL) ||
          boot_cpu_data.family != 6 )
         return false;
 
@@ -938,7 +938,7 @@ static bool __init retpoline_calculations(void)
  */
 static bool __init rsb_is_full_width(void)
 {
-    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
+    if ( !x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) ||
          boot_cpu_data.family != 6 )
         return true;
 
@@ -966,7 +966,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 ||
+    if ( !x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) ||
          boot_cpu_data.family != 6 )
         return false;
 
@@ -1033,7 +1033,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 ( !x86_vendor_is(boot_cpu_data.vendor, X86_VENDOR_AMD | X86_VENDOR_HYGON) )
         return;
 
     /*
@@ -1099,7 +1099,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 ( !x86_vendor_is(boot_cpu_data.vendor, X86_VENDOR_AMD | X86_VENDOR_HYGON) )
         return false;
 
     if ( boot_cpu_data.family != 0x17 && boot_cpu_data.family != 0x18 )
@@ -1137,7 +1137,7 @@ static void __init ibpb_calculations(void)
         return;
     }
 
-    if ( boot_cpu_data.vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+    if ( x86_vendor_is(boot_cpu_data.vendor, X86_VENDOR_AMD | X86_VENDOR_HYGON) )
     {
         /*
          * AMD/Hygon CPUs to date (June 2022) don't flush the RAS.  Future
@@ -1222,7 +1222,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 &&
+    if ( x86_vendor_is(boot_cpu_data.vendor, X86_VENDOR_INTEL) &&
          boot_cpu_data.family == 6 )
     {
         switch ( boot_cpu_data.model )
@@ -1358,7 +1358,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 ||
+    if ( !x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) ||
          boot_cpu_data.family != 6 )
         return;
 
@@ -1469,7 +1469,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 ||
+    if ( !x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) ||
          boot_cpu_data.family != 6 )
         return;
 
@@ -1535,7 +1535,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 ( !x86_vendor_is(boot_cpu_data.vendor, X86_VENDOR_AMD) )
         return;
 
     /* If we're virtualised, don't attempt to synthesise anything. */
@@ -1659,7 +1659,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 ||
+    if ( !x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) ||
          boot_cpu_data.family != 6 )
         return;
 
@@ -1754,7 +1754,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 ||
+    if ( !x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) ||
          boot_cpu_data.family != 6 )
         return false;
 
@@ -1878,7 +1878,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 ( !x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) )
         return;
 
     /*
@@ -2181,7 +2181,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)) &&
+             x86_vendor_is(boot_cpu_data.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 Wed Nov 26 16:45:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 16:45:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173114.1498262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIdz-0001cR-UM; Wed, 26 Nov 2025 16:45:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173114.1498262; Wed, 26 Nov 2025 16:45: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 1vOIdz-0001bj-PE; Wed, 26 Nov 2025 16:45:27 +0000
Received: by outflank-mailman (input) for mailman id 1173114;
 Wed, 26 Nov 2025 16:45: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=0Gki=6C=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vOIdx-0008EF-Rg
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 16:45: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 4db579a4-cae7-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 17:45:24 +0100 (CET)
Received: from PH7PR17CA0057.namprd17.prod.outlook.com (2603:10b6:510:325::6)
 by IA1PR12MB6043.namprd12.prod.outlook.com (2603:10b6:208:3d5::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.11; Wed, 26 Nov
 2025 16:45:17 +0000
Received: from SJ1PEPF000023D8.namprd21.prod.outlook.com
 (2603:10b6:510:325:cafe::5d) 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.9366.12 via Frontend Transport; Wed,
 26 Nov 2025 16:45:16 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF000023D8.mail.protection.outlook.com (10.167.244.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.0 via Frontend Transport; Wed, 26 Nov 2025 16:45: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; Wed, 26 Nov
 2025 10:45: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: 4db579a4-cae7-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=haZuDJJUQR954/QVXW2q4DpgQLxlnqJ4IUMVqTpP+H/3aQP++S5C4IKnQA0CJVoZaBoYOXKLMe3/UrDYrbEngDv9IovGYX/q3kIsuGg2ascxydLsr/q8VmmtdrgpCQy9D6DgvnPoGV/TIErp+1Y95MNIjAof0A/MqInsRmDGDRsTzMzoNK8p8GX8kkk+la8J2FN7urZ/+WI4zjIHuvzgtRbJI1AVAsI2Gms7eS68z0sanM/IRYdU8MigBG+kka6kbU+xir8kRxxxiAudZGnIahUjzxuioBq0YcH2p6vD8EwfIe170rCzYgJ0E9ZPYcxhHuBfduX8RDkbrtKh+Ur4Gg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ezvPIICh4zSuhQ9u1lde9uJGYUuIAHWu9bk/o4mRgZA=;
 b=G7D1ZoInxL/0gleguyBxiEKgI0wZC95RTDUJtTjwMcYwcYjG5l9d2ZA3GxsNjl2O0XG6t7dq4+Ai8CsWcOs6GO2b2l98fO1cLUSdpdI9P0fF3v27K7RBXSjrDdcNo/hEVpFlsNsqb/6TT+wQtLcBqgKHa1LWIwYhaqpfYbkkt0js6PXNxYeYz+UQMX3fVPPMazkz3iljOVJvfAa7I0nlmE2RDTcluo7Pj0gafn5e7EAFh/lWm/G2tAK33d56lxDrIMh7sZx5vyN1mTIuPwp00zZXwQgigZzBnJEyYMvMbxfzgZNq2b9AhY3T2K8VBSqUwlC/Pj8hq8RucbluRfxC+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=ezvPIICh4zSuhQ9u1lde9uJGYUuIAHWu9bk/o4mRgZA=;
 b=TRiFo+tqVgYUiOi76yLB/Ua6W+2Hkg0vjwK8l7ORsz9hPbfEr0bd3inzI+ThHyO6EuEfMtoznIqoypiPuGvIN1zj53cHjEKgkAR/Fdk6ewoToc7w1X9VeeMhpkKxUtdRpD/Wm0PrviGjhcbtZsIdWSt60WkhVI0ZngfVpSWH5cc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>
Subject: [RFC PATCH 07/11] x86: Migrate MSR handler vendor checks to x86_vendor_is()
Date: Wed, 26 Nov 2025 17:44:09 +0100
Message-ID: <20251126164419.174487-8-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
References: <20251126164419.174487-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: SJ1PEPF000023D8:EE_|IA1PR12MB6043:EE_
X-MS-Office365-Filtering-Correlation-Id: 6e0509cb-9f4f-41bb-f479-08de2d0b2d1f
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?swdMEF6RWcLm373DrgzjI2YlkUysWKa+9FdEop3NfbL7o3w0bzd9jxzl4IT8?=
 =?us-ascii?Q?DW3zg6C50xltHvNoB+i6AcOnXQxCfWNRt5QYgjpwKq0JIsYlRsldIRviQKMM?=
 =?us-ascii?Q?FEFkpHSb9q1EuiGtNy+Betl3SY84ebzM92Shf1xs7YeZcXJCqov5t8bvEckH?=
 =?us-ascii?Q?0KI1cK16HmwsH+R61pUJQteQrv06KY/UbfeaNhnIucNlE61wYlXiivLirSjs?=
 =?us-ascii?Q?jGEVlchBc50m/pUBSPr8464PEH/Iqme2lSmGDZiGJiNOiC7LEXx5pPP6vqe5?=
 =?us-ascii?Q?2lTobCn6IUPsHORuTjlxF2IpFpoth+iOTDk2/7G0egQ+2DUqHTguG7Kla5A0?=
 =?us-ascii?Q?/IwY+pgs+xmIwjfPta3wM6gz1xyE8klwZb0vGrtaw4LsnTiZHm/1Tps+ZiM5?=
 =?us-ascii?Q?yPc2H5nMrRPSPbNsitFG17Ar39Ztl3p/JO8OPC0RBddn93tvu1u51370zmgw?=
 =?us-ascii?Q?PA1eBmQo06bwU4+r2x6YCLyh7NyFuzFto+exApVAcDlZnG7h895BYNcmirVW?=
 =?us-ascii?Q?3EVigubb/nbLdgWm/GMBIh5CadNYm+0HFxJReb/pPf/EygxTAw8bLU1Hjvcl?=
 =?us-ascii?Q?dkp/zRXHTZtZ5dzwzfn551XZqZs3TxVCO3gnuRNK/SyoUASLq+297Gu2BU9s?=
 =?us-ascii?Q?M4tYFLEIaHPYriidC73ZxgXFCcx9OVN5w1mtX+OL3h84rWqR/lUeDz2oPbjt?=
 =?us-ascii?Q?lSRLVoqDnPXslDLKPut+pCDiYi4iUNA3hm//j0GawkJrMOgqdNoByS6BkXDU?=
 =?us-ascii?Q?ZBcAOEMgjZIGAeqA1/lckmDMJR0FUR9p/KarjGUfQDgrii5ZO8VQBKfNi11f?=
 =?us-ascii?Q?yts/cjOA6dmK8X0/G4ITgotafJO+vu6WT5KK96pHA340Xl1TC4vX7l01Z+uj?=
 =?us-ascii?Q?CpHh7iB5mzGlY6oeWTSy/trQTGo6/iygsuMtNf7ImhV7+PR9a2FNR6FtrMS5?=
 =?us-ascii?Q?SUOfZIWfq0U9+XlZQh0pp449eZv9C9/JrFSy3rvSF85LTQJfIMmX9+vfKUlt?=
 =?us-ascii?Q?m9SszX9fO7NxE2/ORftGO9xHwl5YoxPhE6BgvGcS3ofCDfiKHD41hEiNkISN?=
 =?us-ascii?Q?3nq6Je2qkXWKoVkb82O1XCkQTUb9caShSWGiHOD6lDDPKbeieyrKmXZcEqMZ?=
 =?us-ascii?Q?NSiDUBf/4o0YTTAn6CQVMgbPRezdJCA1ZCqxX7UtAVmBozXywY7np3s4XNPj?=
 =?us-ascii?Q?VCeQpLo/6isAvz6N3/DGk9CIpYCy06NHkX7yrZ3mM8/WH8vr1rvA/VjT7ZRo?=
 =?us-ascii?Q?9VTgReUKm3xtGYrV9KU2O0NLTsahG+SOVlksFMcQd2SqY/2Mypv6ll/5WIPf?=
 =?us-ascii?Q?8G7b9IWqt6xzj2wWDO4cOYbyHQ39XFLu+J6PJ6HOcLPFqQLuyW3yXVaVFlwC?=
 =?us-ascii?Q?rWZE1kPwBeG7yOc+4+ux6TsUdJERW74vbhSHEPjUtO21m8zy9d9/cQP3eZl5?=
 =?us-ascii?Q?fdjO+SWrG7uyfbNb/bhtIctw5VMhnjpUHncBiTA4An/u1kiYH7MWJbGVcnZW?=
 =?us-ascii?Q?UEbROt2PLzdUMDzkdMzwHSjNFXiCbdhboAp/8fCLh33IYj2sGJ2ZZzJuXUcf?=
 =?us-ascii?Q?l8WlDVy2p4WFMSmJuLg=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 16:45:15.6824
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6e0509cb-9f4f-41bb-f479-08de2d0b2d1f
X-MS-Exchange-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:
	SJ1PEPF000023D8.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6043

Many handlers are vendor-specific and are currently gated on runtime
checks. If we migrate those to x86_vendor_is() 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 | 41 +++++++++++++++++++++++------------------
 1 file changed, 23 insertions(+), 18 deletions(-)

diff --git a/xen/arch/x86/msr.c b/xen/arch/x86/msr.c
index ad75a2e108..f022332971 100644
--- a/xen/arch/x86/msr.c
+++ b/xen/arch/x86/msr.c
@@ -157,8 +157,9 @@ 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 ( !x86_vendor_is(cp->x86_vendor, X86_VENDOR_INTEL   |
+                                            X86_VENDOR_CENTAUR |
+                                            X86_VENDOR_SHANGHAI) )
             goto gp_fault;
 
         *val = IA32_FEATURE_CONTROL_LOCK;
@@ -169,8 +170,8 @@ 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 ( !x86_vendor_is(cp->x86_vendor, X86_VENDOR_INTEL) ||
+             !x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) )
             goto gp_fault;
         rdmsrl(MSR_IA32_PLATFORM_ID, *val);
         break;
@@ -189,9 +190,10 @@ 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 ( !x86_vendor_is(cp->x86_vendor,
+                            X86_VENDOR_INTEL | X86_VENDOR_AMD) ||
+             !x86_vendor_is(boot_cpu_data.x86_vendor,
+                            X86_VENDOR_INTEL | X86_VENDOR_AMD) ||
              rdmsr_safe(MSR_AMD_PATCHLEVEL, val) )
             goto gp_fault;
         break;
@@ -236,7 +238,8 @@ 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 ( !x86_vendor_is(cp->x86_vendor,
+                            X86_VENDOR_INTEL | X86_VENDOR_CENTAUR) )
             goto gp_fault;
 
         *val = 0;
@@ -245,7 +248,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 ( !x86_vendor_is(cp->x86_vendor, X86_VENDOR_INTEL) )
             goto gp_fault;
         *val = 0;
         break;
@@ -302,7 +305,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 ( !x86_vendor_is(cp->x86_vendor, X86_VENDOR_AMD | X86_VENDOR_HYGON) )
             goto gp_fault;
         if ( !is_hardware_domain(d) )
             return X86EMUL_UNHANDLEABLE;
@@ -314,14 +317,15 @@ 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 ( !x86_vendor_is(cp->x86_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)) ||
+             !x86_vendor_is(cp->x86_vendor,
+                            X86_VENDOR_AMD | X86_VENDOR_HYGON) ||
              rdmsr_safe(msr, val) )
             goto gp_fault;
 
@@ -338,7 +342,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 ( !x86_vendor_is(cp->x86_vendor, X86_VENDOR_AMD | X86_VENDOR_HYGON) )
             goto gp_fault;
         *val = AMD64_DE_CFG_LFENCE_SERIALISE;
         break;
@@ -461,7 +465,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 ( !x86_vendor_is(cp->x86_vendor, X86_VENDOR_INTEL) || val != 0 )
             goto gp_fault;
         break;
 
@@ -471,7 +475,7 @@ int guest_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
          * to AMD CPUs as well (at least the architectural/CPUID part does).
          */
         if ( is_pv_domain(d) ||
-             cp->x86_vendor != X86_VENDOR_AMD )
+             !x86_vendor_is(cp->x86_vendor, X86_VENDOR_AMD) )
             goto gp_fault;
         break;
 
@@ -483,7 +487,7 @@ int guest_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
          * by any CPUID bit.
          */
         if ( is_pv_domain(d) ||
-             cp->x86_vendor != X86_VENDOR_INTEL )
+             !x86_vendor_is(cp->x86_vendor, X86_VENDOR_INTEL) )
             goto gp_fault;
         break;
 
@@ -553,7 +557,8 @@ 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 ( !x86_vendor_is(cp->x86_vendor,
+                            X86_VENDOR_INTEL | X86_VENDOR_CENTAUR) )
             goto gp_fault;
 
         if ( likely(!is_cpufreq_controller(d)) || wrmsr_safe(msr, val) == 0 )
@@ -663,7 +668,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 ( !x86_vendor_is(cp->x86_vendor, X86_VENDOR_AMD | X86_VENDOR_HYGON) )
             goto gp_fault;
         break;
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 16:45:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 16:45:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173117.1498271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIe2-0001wQ-7J; Wed, 26 Nov 2025 16:45:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173117.1498271; Wed, 26 Nov 2025 16: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 1vOIe2-0001wE-30; Wed, 26 Nov 2025 16:45:30 +0000
Received: by outflank-mailman (input) for mailman id 1173117;
 Wed, 26 Nov 2025 16:45:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0Gki=6C=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vOIe1-0008SW-2e
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 16:45:29 +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 4e36c5e6-cae7-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 17:45:24 +0100 (CET)
Received: from PH7PR17CA0059.namprd17.prod.outlook.com (2603:10b6:510:325::25)
 by DM4PR12MB7550.namprd12.prod.outlook.com (2603:10b6:8:10e::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Wed, 26 Nov
 2025 16:45:18 +0000
Received: from SJ1PEPF000023D8.namprd21.prod.outlook.com
 (2603:10b6:510:325:cafe::dd) by PH7PR17CA0059.outlook.office365.com
 (2603:10b6:510:325::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.13 via Frontend Transport; Wed,
 26 Nov 2025 16:45:17 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF000023D8.mail.protection.outlook.com (10.167.244.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.0 via Frontend Transport; Wed, 26 Nov 2025 16:45:17 +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; Wed, 26 Nov
 2025 10:45: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: 4e36c5e6-cae7-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CmlDRFD6MNkYY0mD6jA9u8gyRbwuNrdD3jUk7D5aYs8N4OYndwJcLINjST3BY84Iaoz6fOjseXbpF3rhX3PyS7KULQXMDlhUGUnCc3gqUgE+DvkV64gzUPqZFz7/V0d5Tu6WpjtqvTEDAQlGfU0lrhbMgVrOmWiX7W+1fH0UoogoCfu2g8FAWBjRoA8YOY3B17Qt7DQIw6pLK+M9bcT/ahlnfwo2gXbq7iRkITeB2Sq4AvXzfS1MflDMB0sC7Wgt24cIER/j/IxYp5bRwHCCDATU9KNbkU7wArB8O67C3rxcIGKZU+hS5qGRuqGmWcMn/8UBaxFnsVATavXf/L7hhw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GQ+BQunxNt1JDn/totncm1sDyO8K+rrlS0zIt8M0+Wk=;
 b=u3xzSSL3RRS+4uOJTPpoL65QFLmiuCgNyAw+TCGYRECles3NAVtqnKZ9TvF0GafbM77i7QJUz/saJHtfNAsn6xzLS1ELR/CB9RjCusi8ITFPCb2DwlPWSnwkpuJNvWyQMqkR5P2Rj79xtkKzOENZHztYh9hepRzqe/3lbEFMvFVWW/m0FDdQ2/yScNHtzO09W2TEDAnVEnQBqOUgvZGnoPIwZux7LL4qtT4gHK5XqTkwfxP3qgeEZMtPJNY5E7Vg/NC9n476DISSWsm4mCjNlOmVsibin78RysOzO2ITBI2p4uUYUA1cDlzgpgShi/1r0F+a9TNjKiOJw5TL7ZR74Q==
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=GQ+BQunxNt1JDn/totncm1sDyO8K+rrlS0zIt8M0+Wk=;
 b=DpYARXRmmrvmOYezdS/3v0YIglI2Q2SAcb9gxBtPfYSUNoJ0yzBM53RFFuX+sNifzgxQYwRaKyR13sEXqeKPF9f9uPxalhCWX7P8b3fapHdJF22fkOywrkUrzcL8qG3Ee3fDy7x0r0UtRnfk7loouR5BNnr0prqwhSR6pJLS8ZM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>
Subject: [RFC PATCH 08/11] x86: Migrate insn emulator to use x86_vendor_is()
Date: Wed, 26 Nov 2025 17:44:10 +0100
Message-ID: <20251126164419.174487-9-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
References: <20251126164419.174487-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: SJ1PEPF000023D8:EE_|DM4PR12MB7550:EE_
X-MS-Office365-Filtering-Correlation-Id: efa0e6b7-d851-406c-b694-08de2d0b2e65
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?wXB2BCj/z6TkNelQLFOzaArxX1SfCr70xpOSr5lot7B9FguAIlqTCYjGGDpu?=
 =?us-ascii?Q?jV83yGNukHpGbdtVHSQ3JbKbH5pcioa1Yn8qPBirHA994S/VLbsV/fpQg9TA?=
 =?us-ascii?Q?hk6e34eAZtjToFfnGuBuMgMKxmxAnVaLjLnuEXGCwh7jJnDEDlEdHgpegnoQ?=
 =?us-ascii?Q?mKJRi7h+QVxYPjhhcTZVw+2eHKe5aSrk+yVCasg9aWfwHaELZaAjbqq7u+eA?=
 =?us-ascii?Q?JUcuBY8M2r9yDpIDXa2bgzPtR55uCAshvQ+c8eti1Q50XFq4wJQQv8oo0vgn?=
 =?us-ascii?Q?1NBWiNNDTC8a8WtSldmwRYBOkuuEL48tSLtormS/vgi7jlj7c5T4ViQUitdd?=
 =?us-ascii?Q?vxe4NnRbPABDfJX3KmQna25LTQrVI41CUc+tD1VsiDIDZR2TM6XTo00lzHqS?=
 =?us-ascii?Q?TQOaWKRLMFOYTsWYvdOTmviv0ovlaNMRIQi//glkkFXmyxI5USpcHBC+XiR2?=
 =?us-ascii?Q?+uewrJApQv59iTgvqKBCTmrJY7KFEJvS0mX6M2qMcMtQCzUqddn2/hJlAg39?=
 =?us-ascii?Q?PTkxb+IlEQ1n2wPOipcJsMNl7KOf0xQOi2VTevQ8yQdKSRyhQflY+Hs/DGP9?=
 =?us-ascii?Q?anbfbZSQxy6WPtJMrxLznM7up1rPIqLBqKjxn9OUmgXN+fjXtBIM4QPd1llx?=
 =?us-ascii?Q?5aQRkKyQXcwQRY0cSazj/I1hPMTTa63u8qiutHa4JvNQawitN7rTK0codMKP?=
 =?us-ascii?Q?+icNI3rtsrEnJvKIW5npxLFwICNO5HuERVBxnRr464Ww8MASTXCC+HfysbXu?=
 =?us-ascii?Q?gsfHY2GNIrTML0jvBBAqdfCSW7g7fHTrLH1e+lIBf3qb37iBxwteb3kM79pH?=
 =?us-ascii?Q?j7vMlsMSXdAQPe6gVOVFGfsD50TDk7BBuz0a7FVaZpT42fDElzeQ/xZF+mjD?=
 =?us-ascii?Q?KACwhijMZFIwdlsfuOErkHGQCmCA6M8fYA0C+56Ga/hTstvpUt9HivmnTimW?=
 =?us-ascii?Q?BR/cyKgpg3y5ittvXsNzyOOiyQDmtdl1+U3vgQLdf8AbFJT+feiGqQtqvXO2?=
 =?us-ascii?Q?TgNrmnMISrs+3a88Kk+EPl4Ko7DtpjeGIZvlWZXFfREBJppQ/EoT0SXSelhX?=
 =?us-ascii?Q?1c13fsAPyblEMvmBYe/KScYBQ76G170x1OBK1F8jcAnD+yw/MgFRYkZOWtpm?=
 =?us-ascii?Q?7W8SpkDVw1KlY7AOSYU6sKmqLB5Sr7+TaiGGv6B0Ofabsjwt09quUGJeV4bt?=
 =?us-ascii?Q?Uscw8qyf27HTFAm1+Oy3GpMw1ZVYyPklS/btSkcgjUfrduWN23PrMyAgh0Fb?=
 =?us-ascii?Q?JbNyzVyqlDKrrOhByqpXXqJAE5WgjwDTpGPc05mx+V5sDnUlISCkBY289uNG?=
 =?us-ascii?Q?7hLoyTNcSrHVv3lfUniJh3fgTjGft65zvSx/Yzk9fRtKIB2oR3Kd/1PBapN0?=
 =?us-ascii?Q?fiuGpr94qkcya1IwNU0Em5uhppL4pwqg018wX46k4Q2A8qK+9r4tCCLs4AtV?=
 =?us-ascii?Q?bUe1TeQv8+Hnwn10QsTVdaqc5wNllYSd89D9c7E/Qg6Ja8NVvsy0M48xt43d?=
 =?us-ascii?Q?d4T9GC/UngQEdZDKAlJjv2PtgI1VYvXnNgUTC7ia5VNHEEQ+tWlxk6uabWPN?=
 =?us-ascii?Q?iZI06j1Tc5YiaTjdl8U=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 16:45:17.8166
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: efa0e6b7-d851-406c-b694-08de2d0b2e65
X-MS-Exchange-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:
	SJ1PEPF000023D8.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7550

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/x86_emulate/private.h     | 4 +++-
 xen/arch/x86/x86_emulate/x86_emulate.c | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/x86_emulate/private.h b/xen/arch/x86/x86_emulate/private.h
index 24c79c4e8f..57c5689a1e 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/cpuid.h>
 # include <asm/endbr.h>
 # include <asm/msr-index.h>
 # include <asm/stubs.h>
@@ -32,6 +33,7 @@ void BUG(void);
 
 #else /* !__XEN__ */
 # include "x86-emulate.h"
+# define x86_vendor_is(x, y) ((x) & (y))
 #endif
 
 #ifdef __i386__
@@ -520,7 +522,7 @@ in_protmode(
 static inline bool
 _amd_like(const struct cpu_policy *cp)
 {
-    return cp->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON);
+    return x86_vendor_is(cp->x86_vendor, 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 d830aea430..36544adcec 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(x86_vendor_is(cp->x86_vendor, 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 Wed Nov 26 16:45:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 16:45:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173118.1498281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIe3-0002CW-Hj; Wed, 26 Nov 2025 16:45:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173118.1498281; Wed, 26 Nov 2025 16:45:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIe3-0002Bo-Bp; Wed, 26 Nov 2025 16:45:31 +0000
Received: by outflank-mailman (input) for mailman id 1173118;
 Wed, 26 Nov 2025 16:45: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=0Gki=6C=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vOIe2-0008SW-2W
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 16:45:30 +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 4d3e4121-cae7-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 17:45:26 +0100 (CET)
Received: from CH2PR12CA0001.namprd12.prod.outlook.com (2603:10b6:610:57::11)
 by SJ2PR12MB9244.namprd12.prod.outlook.com (2603:10b6:a03:574::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Wed, 26 Nov
 2025 16:45:10 +0000
Received: from CH1PEPF0000A345.namprd04.prod.outlook.com
 (2603:10b6:610:57:cafe::f1) by CH2PR12CA0001.outlook.office365.com
 (2603:10b6:610:57::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.12 via Frontend Transport; Wed,
 26 Nov 2025 16:45:09 +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.9366.7 via Frontend Transport; Wed, 26 Nov 2025 16:45: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; Wed, 26 Nov
 2025 10:45: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: 4d3e4121-cae7-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NENgxrn8SeZHwfy5wXtGmHDt5l4pDJgtpPybHuafWpz4UTuXAMfrPy9MdtsLLExrFeXzEelG+JOIsqP/kSS+CLOmGjOVMWHnq7eDYKj7mYE9+g67RO9q14WGdptTPugvzxa9RYKw08E/UlH841sk9H5vU93QG7Tb+1LxjLwY2HD/p7Jr0Kq5Qh5Yez3tYaitoi9YmKYRTUZxVMs02BqhxSRCiMWAKP1ioAgEOuSc17ZOIY8ll+X8dLHt62Axk5lvhI4ScFdhuAKZr5mx2/coTXq6Q5dXxzKTUb/NJMbcen/HoAPwA40UXZLMRLxRom1lB/oaIsfh8eQ6lPlvRNKZdA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tHPqWvJxK0uUNHK8HcO4zHOR5y6mLd6Htjzkis1gRm4=;
 b=yS7mPwl6mmrhzWkqWblpN5qYM+5gUUkjJbdPdf0ExYjoX4CJxA256AUfmLrMaryG9de5s74ucmxQXse0Ft3MjhY9pVLMnRLSi/9Yvi79jE1SIaoK38wvhAyMjHU6R2rE1m5oP3tYsfBdU2BRJ83MsKGoRrAm/urIQ+PuHTTGPnfEUmeXEHKUmM1iqhfvSTys556a+yQzo2hWxYORuhS751DjNW6fDlFzTCkeSkTUeFi/OzYGWa/Sw2u8ORp8BCfEqS2mTtNctYnKhKrRAaQ2N5zGdQu+/S1OB1DiOJ1/DiKkaIsZQvWWHwMatC54S/cQZh8SNN89ug4pcW+ijG2ryg==
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=tHPqWvJxK0uUNHK8HcO4zHOR5y6mLd6Htjzkis1gRm4=;
 b=EFfoPHSLtmRSpkAwy+v0r3bShgQcLUCvjc+A7SLgiad0m0JrqwQx8+h/ZObuZUwiyiQ9w0CLq3CpNVwtGFJrMqNMQiaFssMidXNm9uB2OWPfvKkZoNdhNaenBpA0IBh5oQeO0qyyKjHz0AZrqg59o8YLO11RDSo0R6qNfK6ulLQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>
Subject: [RFC PATCH 04/11] x86: Refactor early vendor lookup code to use x86_vendor_is()
Date: Wed, 26 Nov 2025 17:44:06 +0100
Message-ID: <20251126164419.174487-5-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
References: <20251126164419.174487-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: CH1PEPF0000A345:EE_|SJ2PR12MB9244:EE_
X-MS-Office365-Filtering-Correlation-Id: 165a61e5-9545-4f92-e127-08de2d0b29c8
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?PE7LPS5qRlLc6wO0c4z+ZeXH67fq2BiIM5GBu95RoPFjVAK07XYIpQrsSwpz?=
 =?us-ascii?Q?cRAdy6+/utIUl1gog92iLhFk6ABSiJN2kL3CzNGQRu5mprU3BLTxOZvq8zaH?=
 =?us-ascii?Q?aCk9Umx2c+tx6FhpAL0QEmi9JAiAmCY/VDk3d8oxwix3HWNtBHtS7Hhpp2as?=
 =?us-ascii?Q?6wXuXp8HhRQtYOul8USM5mtwg0TGXHxVmmmoa5TsNICjA0ByYteXwOCy7Rez?=
 =?us-ascii?Q?rSbJHIrjQJf6L8ku9zxTiLTLbEsHJFUCAUCOY8jzzBD4ScOKGo5+FfSsCEOl?=
 =?us-ascii?Q?/uOkaDUdHrubppybJ8Q/f0VtgzFGtJA1vpf9eXa14wyfaIu4aRB55MpUnU2C?=
 =?us-ascii?Q?sv1T6VDBDEmx8Cr0HGL3K/BDhlasOwQvQibL9xJZ7OwxYmOmoy5jV/5Plr+q?=
 =?us-ascii?Q?nI1ueBiObUX/EsmdpuEQ3y+vviO3DigZTQmSIZT9FDAfemY5JzE3qc/HYbmm?=
 =?us-ascii?Q?R4/A4Ely1sZ6VUL+N+THZn/nzyYfBdPp7Rj8AMFb5wo12Ki39UkZEbXhiDeN?=
 =?us-ascii?Q?2DXsL0x4C9T+sjnIXZQpUXMkNHFdPo5kqXHwRm63r+tsm3FYksX/QYhHSUmt?=
 =?us-ascii?Q?h4IsQfixuOel9KXVrh8ga5wpuTuJ7wzlWvhLVxKdu0RpitJbcHPF0Ksu14mk?=
 =?us-ascii?Q?jxVCxyGXtSjZkilVGGzcXg12blj8rojEBiN9S65XJ5i7pl7wEj03XxJYD/lI?=
 =?us-ascii?Q?MCJYk6lzmcAu4KaNsIlB/s/vZJFxaaBhc3lY6OwwvESIbf8lMhJzi0wB/xYW?=
 =?us-ascii?Q?jwNmaHg1UQVBWVqdqz6o9Lqr2LkSiAATDpsFtjxVSWsyi8jczZkasiEtkPjT?=
 =?us-ascii?Q?sMktPYw1gsAgA24twtJ14dzy0LKlZq6fdnUt6cUy+C3WSnrYsVoUBTHNvMHD?=
 =?us-ascii?Q?rSAHN5GKQCLLE+05xD/qlPdUC1zhr2bE01hmU/M4B6Jd46iTLHS1/dBboC8h?=
 =?us-ascii?Q?GFaLEi0/ovdfjFmrhkYO2d6/fAKL92c60RTD1gRNjUYaoJczzZYni6vwn8oH?=
 =?us-ascii?Q?1CaMhD0IGxjV6kUDOr5TQmXM5WfilGWdL8tcEqKz9fvt9NErhkrgc0b2+tpp?=
 =?us-ascii?Q?nmmT6wZWr9/DyISC8rCNuGSlT3bVGRdtRPSZQQ0/pn27ovI+pyxjkYDYliOo?=
 =?us-ascii?Q?tvzYAkRSkyMRnwWp1f1vI53FQlailmIRx91qMmX7pAn+txbJGBmoiBl8pRno?=
 =?us-ascii?Q?yDJvCNgXdMR+tHiEum32JJopPVpp5hq7OcMhhf/iBEAb3hLBieVeffeoGtFQ?=
 =?us-ascii?Q?tUH32LI5M0BJeZ2610JVxFy0Qq5FOcM0mOPpniEHNBa9jy8OyjdXxr8SE3uS?=
 =?us-ascii?Q?fhzvZMSWLybYC9UYenZENWVIg2lpGbTL0Gx3aNg1oqUNwVBW0RCSy1QznDAb?=
 =?us-ascii?Q?95kBS1ODRQGZQNu3ExBwDwhRCbH9omHYc972z6fqr0MEEzy5FP6ByPvDtHMy?=
 =?us-ascii?Q?wtfaW9pUk/stN4DZEYHCR8gmfV2bAt1/IwIFFG9P7+yeyjMhbBFd1sRHDcgf?=
 =?us-ascii?Q?nxmBXlTT30t3i/vFVzY/E5iCPQsnJUzYcArODukrOxxIVgfYeFHp27UNVmzM?=
 =?us-ascii?Q?yM5g1dKqma2RcWlxDnk=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 16:45:10.1570
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 165a61e5-9545-4f92-e127-08de2d0b29c8
X-MS-Exchange-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: SJ2PR12MB9244

Move the "unknown" vendor ahead of all others and have it NOT rely
on x86_vendor_is(), as that would yield incorrect values for the
single-vendor+no-fallback case when running in incorrect hardware
(because x86_vendor_is() becomes a folded constant of the single
compiled-in vendor).

This is one of the two places where x86_vendor_is() cannot be used,
along with the compatibility check on loaded guest CPU policies.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/cpu/common.c | 31 +++++++++++++++++++++++--------
 1 file changed, 23 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
index 393c30227f..c0c3606dd2 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -342,23 +342,38 @@ void __init early_cpu_init(bool verbose)
 
 	c->x86_vendor = x86_cpuid_lookup_vendor(ebx, ecx, edx) &
 	                X86_ENABLED_VENDORS;
-	switch (c->x86_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;
-	case X86_VENDOR_CENTAUR:  actual_cpu = centaur_cpu_dev;  break;
-	case X86_VENDOR_SHANGHAI: actual_cpu = shanghai_cpu_dev; break;
-	case X86_VENDOR_HYGON:    actual_cpu = hygon_cpu_dev;    break;
-	default:
+
+	/*
+	 * We can't rely on x86_vendor_is() here due to the single-vendor
+	 * optimisation. It makes x86_vendor_is(x, y) rely on the constant `y`
+	 * matching the single vendor Xen was compiled for and ignore the
+	 * runtime variable `x`. In order to preserve sanity we must assert here
+	 * that we never boot such a build in a CPU from another vendor, or
+	 * major chaos would ensue.
+	 */
+	if (c->x86_vendor == X86_VENDOR_UNKNOWN)
+	{
 		if (verbose || !IS_ENABLED(CONFIG_UNKNOWN_CPU))
 			printk(XENLOG_ERR
 			       "Unrecognised or unsupported CPU vendor '%.12s'\n",
 			       c->x86_vendor_id);
+
 		if (!IS_ENABLED(CONFIG_UNKNOWN_CPU))
 			panic("Cannot run in unknown/compiled-out CPU vendor.\n");
 
 		actual_cpu = default_cpu;
 	}
+	else if (x86_vendor_is(c->x86_vendor, X86_VENDOR_INTEL)) {
+		intel_unlock_cpuid_leaves(c);
+		actual_cpu = intel_cpu_dev;
+	} else if (x86_vendor_is(c->x86_vendor, X86_VENDOR_AMD))
+		actual_cpu = amd_cpu_dev;
+	else if (x86_vendor_is(c->x86_vendor, X86_VENDOR_CENTAUR))
+		actual_cpu = centaur_cpu_dev;
+	else if (x86_vendor_is(c->x86_vendor, X86_VENDOR_SHANGHAI))
+		actual_cpu = shanghai_cpu_dev;
+	else if (x86_vendor_is(c->x86_vendor, X86_VENDOR_HYGON))
+		actual_cpu = hygon_cpu_dev;
 
 	cpuid(0x00000001, &eax, &ebx, &ecx, &edx);
 	c->x86 = get_cpu_family(eax, &c->x86_model, &c->x86_mask);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 16:45:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 16:45:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173125.1498292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIeB-0002vi-8O; Wed, 26 Nov 2025 16:45:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173125.1498292; Wed, 26 Nov 2025 16: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 1vOIeB-0002vS-4Y; Wed, 26 Nov 2025 16:45:39 +0000
Received: by outflank-mailman (input) for mailman id 1173125;
 Wed, 26 Nov 2025 16:45: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=0Gki=6C=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vOIe9-0008SW-Hx
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 16:45:37 +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 533336c9-cae7-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 17:45:34 +0100 (CET)
Received: from PH7PR17CA0071.namprd17.prod.outlook.com (2603:10b6:510:325::28)
 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.9366.11; Wed, 26 Nov
 2025 16:45:24 +0000
Received: from SJ1PEPF000023D8.namprd21.prod.outlook.com
 (2603:10b6:510:325:cafe::47) by PH7PR17CA0071.outlook.office365.com
 (2603:10b6:510:325::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.13 via Frontend Transport; Wed,
 26 Nov 2025 16:45:21 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF000023D8.mail.protection.outlook.com (10.167.244.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.0 via Frontend Transport; Wed, 26 Nov 2025 16:45:24 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 26 Nov
 2025 10:45: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: 533336c9-cae7-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wUPd+14ZgHAebcKdJ9KhUwr8MOnYnR5cMNJaosy8SIdohr+VaO4L35QMda7gci/4sofa6l21TvNXcXsO4gzWRd42CPBU8tTI5IxcQfgdgLFl4CuTqkcIoTtRSWMeE25MDqqzpbEINr6E+EvlMhfEkCepMof0F7demv6X3RKt0cmAZbzZ91dUZ/UlWH2PBAEvxQtSuE0EEH+3UIWpI0SrcSPZcTAVdM4IElBvheUFehil3NWTBfqYEf5OsE6T3WtH4qkELT87xbWY9q4n7Ix19/fhuuVzvXsy3FM+LXUCilOOsVumxZpo4RYy4sS4SA4RPufNrP1UrmonSq676rrrng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LLhywCJxmy4RX9T82r1sPpprRxkIaAkFJKes+iOoHhc=;
 b=Jq+rb8JgkLYSgMegN8ddF6+j6sxR/mxOCeoSlI+Lj7RphP8x8aSOlPBGs04QQOg15nkE2xoKTjMcI868PEADIpi3JRFrA64YRoYItKQL99pZjiql0WcKpBjdK8GoPFE1I4hQh/Eh9itBO1OibxIjkXAMPCT/t3fYFC4dGPb1OeJbSamXTWQeFQT3dz/w37PMV9y4VhXfSPsy4EttVjEwwCKpr3hIUu/ba3YTOpEHWggUMTLWV+f3l18AMSvS1GuUlKnq4YXeo3BOqgi0wZrsfjAct9StGtpZ3A1XaZYRfA4I424Iq4DWOd3DTILTFMpAI8U6ecISMw/gHXMyz8u4QA==
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=LLhywCJxmy4RX9T82r1sPpprRxkIaAkFJKes+iOoHhc=;
 b=H3oU33rQec2oQplZEr+U9D5QdgMOtTgHyzgltXXLGc5U/P8ptjzKjHRqF4ZrJT2e41vn6gL6b3Hm+9PKjI9YFK6P88dY0GMan+Z9uKf09ifQ8AFShWawtgE4KqUjLQfHKudVEGiMULUcw7kdalZzOH5YY4AdT3YY6T/Sm2UNMd0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>
Subject: [RFC PATCH 11/11] x86: Migrate every remaining raw vendor check to x86_vendor_is()
Date: Wed, 26 Nov 2025 17:44:13 +0100
Message-ID: <20251126164419.174487-12-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
References: <20251126164419.174487-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: SJ1PEPF000023D8:EE_|CH1PR12MB9719:EE_
X-MS-Office365-Filtering-Correlation-Id: b11f391c-b5db-438a-3d40-08de2d0b3233
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?ZMlPT+3Wn27o6LWoJn814qSGh5pIwZYRmFUiLnQuubN+sYP7l5JUMxTp8Pmo?=
 =?us-ascii?Q?ZP8Ob1HarOk2qBsZya4+Mn76C15sUWqXuZoJA5e2KMeUTKrmWzeD9iceNqMz?=
 =?us-ascii?Q?WwZ0LzfmuOLBcVFQcY+LJRAk03Rqawt2Em3jwxTTRn9wrPCDu86qk9cBRsVu?=
 =?us-ascii?Q?j6agBA906QB3+in70PuXWoeKmBp2cj5tlUlXo2LW5m+xiLR/bNFEa2kfMWbp?=
 =?us-ascii?Q?cGwSagtqa6SowNpzg69w2BtFVTxun6cX8Z1efoen/EL1eUUpsLslzLFiAX9Y?=
 =?us-ascii?Q?HvruOL7Nz+OXbb81Yq68twsLlHVLiZmlc3tGVcU3tMwUO60o7QaXkCuw6g1t?=
 =?us-ascii?Q?UsHWU4y3uAPAwsh79kzlr/+anApUSqlyjMrKpamcboRdHsewtvj3UqP4FpnU?=
 =?us-ascii?Q?Xc6uJUhVqovKsn7s9EJxUi7Rd+CeMO42U+ODRMmKYwb3xI5SPQL1hJiR27TR?=
 =?us-ascii?Q?0Ijh3Df3TQQIiro4GcIRrFDTWHGGRG98Ltto2evTifVWq+YQn8+Y+qy0Ah7Z?=
 =?us-ascii?Q?QAujP32u5xvtE63rC4XbRUrub4dYxo8cZCIA25GT2KXVdbHh8HmcW9URejVM?=
 =?us-ascii?Q?WFlQdm6oYF0P/sKDNXq2bX1cJsSv0dzQwVZLMxrHOB8rUmHRhnbyPXPMtQeb?=
 =?us-ascii?Q?smTqqZDjHcQf0tGhN31KNgweSgB31KEBe5oJhdmxdxSaLXEjyGSprGdLXQZf?=
 =?us-ascii?Q?Tj7q1mGOUN/84Ss01lxM+2KsDhWo8MCvlkJVoMTG91valEiyt01bwv+xmnA1?=
 =?us-ascii?Q?YuSBIKNu1eHwZyrqjZC8MLxja342wHP++KXRvpgOzXVNdlMODm9kuUleB+ne?=
 =?us-ascii?Q?Zlza79zYVT5EvFsj4pQhOkjtrMsEGfv7mRQj2+DFCTEEnVrmAkqg4CDOGw+i?=
 =?us-ascii?Q?o9gB57OiEYfjgv0sVRQG3c301Ee7rKSHctSzsJaoJBYIJE4PUPistw8au5Vl?=
 =?us-ascii?Q?I4H3gUKoJzZMtTTsc9RtMoNJv9XjZ5C99bnrB3DE2Bu9myR4oFJDjJsC4rms?=
 =?us-ascii?Q?PVo8RhbBOs4Wich8HnoCIan70p84JnaVSdtV8BiUKuMnePrzyGpjVD98svOQ?=
 =?us-ascii?Q?LiziGoUzwwnsqn13QkbetPDpBPqlcZtmBM9v2F5V7uC2QsGzX2q1iNaKvZzn?=
 =?us-ascii?Q?ieUwYWbZXyL22umzIgFRC5V/z7JCPdHivp8HV4Nfxi3bK89ZblHHcir1hhs9?=
 =?us-ascii?Q?47YHkF9Ex0jQ5i2awoRvQHf/ZhSRd2im5XRvIDH7HTJ0LAovLEZoeJW5xDW+?=
 =?us-ascii?Q?xeYvuXMAyIX+rA9svh+IjLvsT9BYi3ND675WnNNIbRvEgnNCJ9aCaRauoJcd?=
 =?us-ascii?Q?UyDUsBa8c3jvBvH+BWHkbB9/4ZV5wQ9+QVV+i45CSnSjfNs0qtkstsZ11iTB?=
 =?us-ascii?Q?KSB6ZHglhXefIf+OMKk7lk2M6FyQ28CUKbjOyWIUx11yeCVBOdyGHdo9Hm//?=
 =?us-ascii?Q?9nvs1TWNKbWR3RtGZtpXsXwKpqMqVfKSA4jGKi3d5iJU2DuwplIG57wtXS22?=
 =?us-ascii?Q?81I+f9QXF5JNI4qO0Gx58qhkgruU/3eGfyumeHeHReG6jRlXzmFxaE7zaazG?=
 =?us-ascii?Q?7h4IlzkBRMVZ1mAqUHU=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)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 16:45:24.1973
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b11f391c-b5db-438a-3d40-08de2d0b3233
X-MS-Exchange-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:
	SJ1PEPF000023D8.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PR12MB9719

Not a functional change.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/acpi/cpu_idle.c        | 19 ++++++++++---------
 xen/arch/x86/acpi/cpufreq/acpi.c    |  2 +-
 xen/arch/x86/acpi/cpufreq/cpufreq.c |  4 ++--
 xen/arch/x86/apic.c                 |  2 +-
 xen/arch/x86/cpu-policy.c           | 10 ++++++----
 xen/arch/x86/cpuid.c                |  4 ++--
 xen/arch/x86/dom0_build.c           |  3 ++-
 xen/arch/x86/domain.c               | 25 +++++++++++--------------
 xen/arch/x86/e820.c                 |  3 ++-
 xen/arch/x86/hvm/hvm.c              |  5 +++--
 xen/arch/x86/hvm/ioreq.c            |  2 +-
 xen/arch/x86/hvm/vmx/vmx.c          |  6 +++---
 xen/arch/x86/include/asm/guest_pt.h |  4 ++--
 xen/arch/x86/irq.c                  |  4 ++--
 xen/arch/x86/pv/emul-priv-op.c      | 24 ++++++++++++------------
 xen/arch/x86/setup.c                |  2 +-
 16 files changed, 61 insertions(+), 58 deletions(-)

diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index d60a07bfd5..1d7f19aadb 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 ( !x86_vendor_is(c->x86_vendor, X86_VENDOR_INTEL) || c->x86 != 6 )
         return;
 
     switch ( c->x86_model )
@@ -915,8 +915,8 @@ 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 ( x86_vendor_is(current_cpu_data.x86_vendor,
+                            X86_VENDOR_AMD | X86_VENDOR_HYGON) &&
               cx->entry_method == ACPI_CSTATE_EM_SYSIO )
     {
         /* Intel prefers not to use SYSIO */
@@ -1042,8 +1042,9 @@ 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 ( x86_vendor_is(c->x86_vendor, X86_VENDOR_INTEL) ||
+              (x86_vendor_is(c->x86_vendor,
+                             X86_VENDOR_AMD) && (c->x86 == 0x15)) )
     {
         /*
          * Today all MP CPUs that support C3 share cache.
@@ -1059,7 +1060,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 ( x86_vendor_is(c->x86_vendor, X86_VENDOR_INTEL) &&
         (c->x86 > 0x6 || (c->x86 == 6 && c->x86_model >= 14)) )
             flags->bm_control = 0;
 }
@@ -1421,7 +1422,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 ( !x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_HYGON) )
         {
     default:
             vendor_override = -1;
@@ -1648,8 +1649,8 @@ static int cf_check cpu_callback(
         break;
 
     case CPU_ONLINE:
-        if ( (boot_cpu_data.x86_vendor &
-              (X86_VENDOR_AMD | X86_VENDOR_HYGON)) &&
+        if ( x86_vendor_is(boot_cpu_data.x86_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 b027459417..b8bfb9fb56 100644
--- a/xen/arch/x86/acpi/cpufreq/acpi.c
+++ b/xen/arch/x86/acpi/cpufreq/acpi.c
@@ -471,7 +471,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 (x86_vendor_is(c->x86_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 89e2b3d167..27770269ba 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -244,8 +244,8 @@ __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 ( x86_vendor_is(boot_cpu_data.x86_vendor,
+                       (X86_VENDOR_INTEL | X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
         return cpufreq_add_cpu(cpu);
 
     return -EOPNOTSUPP;
diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index fb38be7ec3..6e78250a4a 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 (x86_vendor_is(boot_cpu_data.x86_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 1acd7c5124..3f3c95eb82 100644
--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -759,7 +759,8 @@ 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 ( x86_vendor_is(boot_cpu_data.vendor,
+                       X86_VENDOR_AMD | X86_VENDOR_HYGON) &&
          raw_cpu_policy.basic.sep )
         __set_bit(X86_FEATURE_SEP, fs);
 
@@ -952,8 +953,9 @@ 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))
+                                            (x86_vendor_is(p->x86_vendor,
+                                                           X86_VENDOR_AMD |
+                                                           X86_VENDOR_HYGON)
                                              ? CPUID_GUEST_NR_EXTD_AMD
                                              : CPUID_GUEST_NR_EXTD_INTEL) - 1);
 
@@ -987,7 +989,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 ( !(x86_vendor_is(boot_cpu_data.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..7eca6ad2f5 100644
--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -437,7 +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 ||
+        if ( !x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) ||
              !vpmu_available(v) )
             *res = EMPTY_LEAF;
         else
@@ -483,7 +483,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 ( x86_vendor_is(p->x86_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..11cfd6be20 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -572,7 +572,8 @@ 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 ( x86_vendor_is(boot_cpu_data.x86_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 f3e4ae4a4d..3c878c92a5 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -370,7 +370,7 @@ void domain_cpu_policy_changed(struct domain *d)
         {
             uint64_t mask = cpuidmask_defaults._6c;
 
-            if ( boot_cpu_data.x86_vendor == X86_VENDOR_AMD )
+            if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_AMD) )
                 mask &= (~0ULL << 32) | p->basic.raw[6].c;
 
             d->arch.pv.cpuidmasks->_6c = mask;
@@ -385,8 +385,8 @@ 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 ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_AMD |
+                                                         X86_VENDOR_HYGON) )
                 mask = (((uint64_t)p->feat.max_subleaf << 32) |
                         ((uint32_t)mask & p->feat._7b0));
 
@@ -398,7 +398,7 @@ void domain_cpu_policy_changed(struct domain *d)
             uint64_t mask = cpuidmask_defaults.Da1;
             uint32_t eax = p->xstate.Da1;
 
-            if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+            if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) )
                 mask &= (~0ULL << 32) | eax;
 
             d->arch.pv.cpuidmasks->Da1 = mask;
@@ -422,17 +422,15 @@ 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 ( !x86_vendor_is(p->x86_vendor, X86_VENDOR_AMD |
+                                               X86_VENDOR_HYGON) )
                 edx &= ~CPUID_COMMON_1D_FEATURES;
 
-            switch ( boot_cpu_data.x86_vendor )
-            {
-            case X86_VENDOR_INTEL:
+            if ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) )
                 mask &= ((uint64_t)edx << 32) | ecx;
-                break;
-
-            case X86_VENDOR_AMD:
-            case X86_VENDOR_HYGON:
+            else if ( x86_vendor_is(boot_cpu_data.x86_vendor,
+                                    X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+            {
                 mask &= ((uint64_t)ecx << 32) | edx;
 
                 /*
@@ -443,7 +441,6 @@ void domain_cpu_policy_changed(struct domain *d)
                 edx = cpufeat_mask(X86_FEATURE_APIC);
 
                 mask |= ((uint64_t)ecx << 32) | edx;
-                break;
             }
 
             d->arch.pv.cpuidmasks->e1cd = mask;
@@ -455,7 +452,7 @@ void domain_cpu_policy_changed(struct domain *d)
         cpu_policy_updated(v);
 
         /* If PMU version is zero then the guest doesn't have VPMU */
-        if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
+        if ( x86_vendor_is(boot_cpu_data.x86_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..3cbcd98254 100644
--- a/xen/arch/x86/e820.c
+++ b/xen/arch/x86/e820.c
@@ -426,7 +426,8 @@ 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 = x86_vendor_is(boot_cpu_data.x86_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 4084b610fa..8e4050b8ce 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -2668,8 +2668,9 @@ 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 ( x86_vendor_is(v->domain->arch.cpuid->x86_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..8bdf52b506 100644
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -286,7 +286,7 @@ bool arch_ioreq_server_get_type_addr(const struct domain *d,
         *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 &&
+             x86_vendor_is(d->arch.cpuid->x86_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 6b407226c4..769840569c 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -3057,7 +3057,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 ||
+    if ( !x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) ||
          boot_cpu_data.x86 != 6 )
         return false;
 
@@ -3409,7 +3409,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 ||
+         !x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) ||
          boot_cpu_data.x86 != 6 )
         return;
 
@@ -3454,7 +3454,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 ||
+    if ( !x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) ||
          boot_cpu_data.x86 != 6 )
         return;
 
diff --git a/xen/arch/x86/include/asm/guest_pt.h b/xen/arch/x86/include/asm/guest_pt.h
index 21473f9bbc..a44909d35d 100644
--- a/xen/arch/x86/include/asm/guest_pt.h
+++ b/xen/arch/x86/include/asm/guest_pt.h
@@ -314,8 +314,8 @@ 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));
+                     (x86_vendor_is(v->domain->arch.cpuid->x86_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 92b8604dc8..2490331ec3 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -2010,8 +2010,8 @@ void do_IRQ(struct cpu_user_regs *regs)
                      * interrupts have been delivered to CPUs
                      * different than the BSP.
                      */
-                    (boot_cpu_data.x86_vendor & (X86_VENDOR_AMD |
-                                                 X86_VENDOR_HYGON))) &&
+                    x86_vendor_is(boot_cpu_data.x86_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/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index 225d4cff03..e69450f949 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -244,7 +244,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 &&
+         x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_AMD) &&
          boot_cpu_data.x86 >= 0x10 && boot_cpu_data.x86 < 0x17 )
     {
         uint64_t msr_val;
@@ -868,7 +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
+                 (x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL)
                   ? EFER_SCE : 0));
     return val;
 }
@@ -943,7 +943,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 ( !x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_AMD) )
             break;
         if ( unlikely(is_cpufreq_controller(currd)) )
             goto normal;
@@ -951,7 +951,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 ( !x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_AMD) ||
              boot_cpu_data.x86 < 0x10 || boot_cpu_data.x86 >= 0x17 )
             break;
         /* fall through */
@@ -976,7 +976,7 @@ 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 ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) )
         {
             vpmu_msr = true;
             /* fall through */
@@ -1103,7 +1103,7 @@ static int cf_check write_msr(
         break;
 
     case MSR_FAM10H_MMIO_CONF_BASE:
-        if ( boot_cpu_data.x86_vendor != X86_VENDOR_AMD ||
+        if ( !x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_AMD) ||
              boot_cpu_data.x86 < 0x10 || boot_cpu_data.x86 >= 0x17 )
             break;
         if ( !is_hwdom_pinned_vcpu(curr) )
@@ -1132,8 +1132,8 @@ static int cf_check write_msr(
 
     case MSR_IA32_MPERF:
     case MSR_IA32_APERF:
-        if ( !(boot_cpu_data.x86_vendor &
-               (X86_VENDOR_INTEL | X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
+        if ( !x86_vendor_is(boot_cpu_data.x86_vendor,
+                 X86_VENDOR_INTEL | X86_VENDOR_AMD | X86_VENDOR_HYGON) )
             break;
         if ( likely(!is_cpufreq_controller(currd)) ||
              wrmsr_safe(reg, val) == 0 )
@@ -1142,7 +1142,7 @@ static int cf_check write_msr(
 
     case MSR_IA32_THERM_CONTROL:
     case MSR_IA32_ENERGY_PERF_BIAS:
-        if ( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL )
+        if ( !x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) )
             break;
         if ( !is_hwdom_pinned_vcpu(curr) || wrmsr_safe(reg, val) == 0 )
             return X86EMUL_OKAY;
@@ -1152,13 +1152,13 @@ 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 ( x86_vendor_is(boot_cpu_data.x86_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 &
-                              (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
+            if ( vpmu_msr || x86_vendor_is(boot_cpu_data.x86_vendor, 
+                                           X86_VENDOR_AMD | X86_VENDOR_HYGON) )
             {
                 if ( (vpmu_mode & XENPMU_MODE_ALL) &&
                      !is_hardware_domain(currd) )
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 872a8c63f9..0eca058850 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1384,7 +1384,7 @@ void asmlinkage __init noreturn __start_xen(void)
          * supervisor shadow stacks are now safe to use.
          */
         bool cpu_has_bug_shstk_fracture =
-            boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
+            x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) &&
             !boot_cpu_has(X86_FEATURE_CET_SSS);
 
         /*
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 16:52:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 16:52:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173211.1498302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOIkw-0006z6-7Z; Wed, 26 Nov 2025 16:52:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173211.1498302; Wed, 26 Nov 2025 16:52: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 1vOIkw-0006yz-3L; Wed, 26 Nov 2025 16:52:38 +0000
Received: by outflank-mailman (input) for mailman id 1173211;
 Wed, 26 Nov 2025 16:52: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=0Gki=6C=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vOIe8-0008EF-VK
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 16:45: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 5307346a-cae7-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 17:45:36 +0100 (CET)
Received: from PH7PR17CA0056.namprd17.prod.outlook.com (2603:10b6:510:325::17)
 by CH3PR12MB9251.namprd12.prod.outlook.com (2603:10b6:610:1bd::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.11; Wed, 26 Nov
 2025 16:45:20 +0000
Received: from SJ1PEPF000023D8.namprd21.prod.outlook.com
 (2603:10b6:510:325:cafe::fe) by PH7PR17CA0056.outlook.office365.com
 (2603:10b6:510:325::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.12 via Frontend Transport; Wed,
 26 Nov 2025 16:45:18 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF000023D8.mail.protection.outlook.com (10.167.244.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.0 via Frontend Transport; Wed, 26 Nov 2025 16:45: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; Wed, 26 Nov
 2025 10:45: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: 5307346a-cae7-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QH0nRp7x0tkXOaG4YIbQAuLKlhgdJSJL0tZs+wZS92ZoEZZKsV/OlSBtLDQ1KUo96tN2dijqlm/m+grS8ghxxPXO6TxoAqi0Zt30PrS+pDLLGah3mIwECq1c9U3sJZ8M5x/YJSntiOuoGVB5dbs3+zq28wJDCneiEMVDk0qSz29X1YPt+84mLX4erL27mIC1rVRIpUA/WOG4by4wD+IzMNwMr4+1030G/kI879BsjOth1Bf73J7dxJQoUsJ/tFsr2wQHxkgG+jt+NL3Qr8pxMROAYqk+K6I+/3UX5sy2QY3LoisbGgNBG00zfteprqpTjdICCpu1GvCTef5/RmyWeg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Dih/F3i2K7dVVPcAf50v/7NsMvofJgId44IrV1nu46w=;
 b=r3bUUnXJBDTB/dBO4ZPsYKFdlWBlZ9WrVDL9+7FitP6hbDqAqa4Tg4M/4ct0bWQRSYjP/CZRy9utLGVUn+TMTfNoxAvab9ofeekjtgeAi++7lEuc9D6CHqRW9FoNG2B2YhLl86/B3xR4nCYyWi2GNADk09/0cyQWzGT1SAy6gvZ4iaP7IhmENKGNVSnmMkQgcqX8SQIA37oA0xJMf5VJCyZ179zhLF+mCPBV4HcXEJ4l+ADsvmkEDACpBueghxnAiAq69A2cFKQ8wyBNKKXWkziK2JqIk9/3lKwuV0Hr+St5qFHBteMJgP3vVatecMls0ylHvrYrfOxAfn7dE/8luw==
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=Dih/F3i2K7dVVPcAf50v/7NsMvofJgId44IrV1nu46w=;
 b=ZUdOhGACDhWtlU/zTY2Lbk0BkDgM06yG7yQCdTnOIZgDMBKxa+/N67HYBhw+iar5h+SwZkv14Br56K3Hv/7Y+iLLPti919vbm5iMggILzXB4QIDVhhq+0j0YZDLvYi96kSlAem98SsLp/ElqqEa+4NNwOgLReCqgCRImTO77kNk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>
Subject: [RFC PATCH 10/11] x86: Migrate everything under cpu/ to use x86_vendor_is()
Date: Wed, 26 Nov 2025 17:44:12 +0100
Message-ID: <20251126164419.174487-11-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
References: <20251126164419.174487-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: SJ1PEPF000023D8:EE_|CH3PR12MB9251:EE_
X-MS-Office365-Filtering-Correlation-Id: bcaa873f-e36b-4872-9370-08de2d0b2f7b
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?NnY4YDNtJCBPfjJQC1RW4dEz+HxeUXf4O8ROM7xabn8CBDCOngVtAT2dDLxd?=
 =?us-ascii?Q?Whv4HLWuvhYQ2Y5y8IJEZco2LBlE2yqB5gcrhs9FNfrDRuQBpdeqqYst01SO?=
 =?us-ascii?Q?KuytUWTmccZRxrN3JkItfEQhJURk3WvQd5nSgmBciEjlbdgwze/m34bCfXTq?=
 =?us-ascii?Q?SLF0LEYnOJuxndO3SWeefiSKA7A2RHB72+AJyXpNsjCrWJOGHtWtl+wTkp9h?=
 =?us-ascii?Q?Q6tdx40rMaWdbT2z/DE73Ph0yO/sNOHCSAzpVJGTncmjjDzcje3vL4Lb9OWO?=
 =?us-ascii?Q?1SL2HhzKLTP8ijURK082qT9Yw9ajVRfe6avPXrjV9CTqJ/dKKm7WHNFXZNim?=
 =?us-ascii?Q?0z3vA8mmR0w1PItgthYOIPxUXJBpR+/CImGHMXkl/kPHeCQn1r/dp5VFPHxs?=
 =?us-ascii?Q?CmVPc4yktYShvL0S5IiUyHGA09KR5zMyxGMR/VhTeOg2KphmSy/QDZa1ib0P?=
 =?us-ascii?Q?lWegjT1c3PGaCbSuwe/SOUiQls/g5J4xTeHxX2PxMBi2sBBch8WEAfhK0HCd?=
 =?us-ascii?Q?gTxdAWxXpZsNhaHWPNOABqQhogo4HXytHyfG3LEIvdNel7I316cNHT22oZ3J?=
 =?us-ascii?Q?rA12+Vng8bb+g6gkHMSTRPyHjGAFM1O8bdd0vkgDpTljJg0d1Wm80c1uJ4Zl?=
 =?us-ascii?Q?KCzSKalY0/s4vyWQQiysv/ar74BrvRgmZ/IzxaUCHjjs1HYsyZNZH6jaCBb6?=
 =?us-ascii?Q?eJ9eWFrlQdtmp6UI76TnbHhZ7Q3rwTCf7oTor2aExKP425XwYojJwIpuj0Ks?=
 =?us-ascii?Q?pxMK/SauW/JNlmCTROy/TObz+t7sWakttk7xXWqOSAeYSI7UZxcMIIMpgFzc?=
 =?us-ascii?Q?wuT0sGB3A5nVaNGtDJRVvb8HxwV+iNr/RGvEButzA2QX+fCSStDu4G8HRU5M?=
 =?us-ascii?Q?WRYkYZzY8w4qgtMfx89mXypjccBQDpdzxLMqMJNN+75rZCy0kEL/nVhQpXMy?=
 =?us-ascii?Q?bI/Ig5Qr5jfxyyP5UiOK8RQu18FPA5ZLGkUixlsih6Sge6Mswj+uXqB1tAiF?=
 =?us-ascii?Q?znOAqgp0XO4pID3WpjgGZ9h4F1kFvHi4WKlq4v7R66JWMRPQxC4/zqJ7BjFA?=
 =?us-ascii?Q?PN0ynHvCfynytrQS0Pnt98rg2kjYxPis4uUoLIxA15K9Wwp93hfiq1x6b6m+?=
 =?us-ascii?Q?xIXnf4HQOX+eDUYWNPMz83/UsKrzvRm19FhnVuVAedCJDrvRBEmrdKCvW5nx?=
 =?us-ascii?Q?WNCmNm67KO1wVQZMJ4A455H26iRABEuoiTgVJojhM8IyAQUUxEsYdCJpoGfZ?=
 =?us-ascii?Q?V4OoFx6OKZew9ou9AtduSpN9uzZWTv81zRUo9eRk8kOj8qpOVhUJ84HSi70v?=
 =?us-ascii?Q?uOMJHnMCzYeF6n83NNk8pW8yQm4TJYOKJXrpDezK2OOCqYoeAiZaqfJfgeOe?=
 =?us-ascii?Q?B6t22H3pBYY286POxZRrTcZZSGHkesjOgynJySMT1r64ezoeHPIMVFa9lgee?=
 =?us-ascii?Q?JMki/oTYEdJK7H8yPNf0V7+dXi/cLdGfQ1u3AYSR/9pyObx1eYpKMY4xJh6j?=
 =?us-ascii?Q?gIjE6hEtorPru4OV3sfaJBBwXq9EHAFXdJ0HcnLPBPOXrJgsmM9nbAxLP1TH?=
 =?us-ascii?Q?v6z98f6vhQxheK/M3Zw=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 16:45:19.6368
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bcaa873f-e36b-4872-9370-08de2d0b2f7b
X-MS-Exchange-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:
	SJ1PEPF000023D8.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9251

There's nothing special about this folder, but it doing it ahead alleviates the
size of the following patch.

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/mcheck/amd_nonfatal.c |  2 +-
 xen/arch/x86/cpu/mcheck/mcaction.c     |  3 ++-
 xen/arch/x86/cpu/mcheck/mce.c          | 14 +++++++-------
 xen/arch/x86/cpu/mcheck/mce_amd.c      |  6 +++---
 xen/arch/x86/cpu/mcheck/mce_intel.c    |  6 +++---
 xen/arch/x86/cpu/mcheck/vmce.c         |  4 ++--
 xen/arch/x86/cpu/microcode/amd.c       |  2 +-
 xen/arch/x86/cpu/microcode/core.c      |  2 +-
 xen/arch/x86/cpu/mtrr/generic.c        |  4 ++--
 xen/arch/x86/cpu/mwait-idle.c          |  4 ++--
 13 files changed, 30 insertions(+), 30 deletions(-)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index 9b02e1ba67..1205253e13 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -428,7 +428,7 @@ int cpu_has_amd_erratum(const struct cpuinfo_x86 *cpu, int osvw_id, ...)
 	u32 range;
 	u32 ms;
 	
-	if (cpu->x86_vendor != X86_VENDOR_AMD)
+	if (!x86_vendor_is(cpu->x86_vendor, X86_VENDOR_AMD))
 		return 0;
 
 	if (osvw_id >= 0 && cpu_has(cpu, X86_FEATURE_OSVW)) {
@@ -519,8 +519,8 @@ static void check_syscfg_dram_mod_en(void)
 {
 	uint64_t syscfg;
 
-	if (!((boot_cpu_data.x86_vendor == X86_VENDOR_AMD) &&
-		(boot_cpu_data.x86 >= 0x0f)))
+	if (!(x86_vendor_is(boot_cpu_data.x86_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 c0c3606dd2..df81ef9136 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -463,7 +463,7 @@ void __init early_cpu_init(bool verbose)
 		paddr_bits -= (ebx >> 6) & 0x3f;
 	}
 
-	if (!(c->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
+	if (!x86_vendor_is(c->x86_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..7dc778cd55 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) &&
+	    !x86_vendor_is(c->x86_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/mcheck/amd_nonfatal.c b/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
index 7d48c9ab5f..c2c829a397 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 (!x86_vendor_is(c->x86_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..a43e3240c3 100644
--- a/xen/arch/x86/cpu/mcheck/mcaction.c
+++ b/xen/arch/x86/cpu/mcheck/mcaction.c
@@ -101,7 +101,8 @@ 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 &&
+                     (x86_vendor_is(boot_cpu_data.x86_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 9bef1da385..40c8c10df9 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 ( x86_vendor_is(boot_cpu_data.x86_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 x86_vendor_is(c->x86_vendor, X86_VENDOR_INTEL) &&
+           c->x86 == 6 && c->x86_model < 0x1a;
 }
 
 static int show_mca_info(int inited, struct cpuinfo_x86 *c)
@@ -1107,7 +1106,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 ( x86_vendor_is(c->x86_vendor, X86_VENDOR_AMD) )
             {
                 /*
                  * On AMD we can set MCi_STATUS_WREN in the
@@ -1142,7 +1141,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 ( !x86_vendor_is(c->x86_vendor, X86_VENDOR_AMD) )
                     reason = "only supported on AMD";
                 else if ( c->x86 < 0x10 )
                     reason = "only supported on AMD Fam10h+";
@@ -1150,7 +1149,8 @@ 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 ( x86_vendor_is(c->x86_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..e664bf0443 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(!x86_vendor_is(c->x86_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 ( !x86_vendor_is(c->x86_vendor, X86_VENDOR_HYGON) )
         quirkflag = mcequirk_lookup_amd_quirkdata(c);
 
     /* Assume that machine check support is available.
@@ -337,6 +337,6 @@ amd_mcheck_init(const struct cpuinfo_x86 *c, bool bsp)
             ppin_msr = MSR_AMD_PPIN;
     }
 
-    return c->x86_vendor == X86_VENDOR_HYGON ?
+    return x86_vendor_is(c->x86_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..9f3ae4277b 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 ( x86_vendor_is(c->x86_vendor, X86_VENDOR_INTEL) &&
+         c->x86 == 6 && c->x86_model >= 0xe )
         return true;
     return false;
 }
@@ -1036,7 +1036,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 ( !x86_vendor_is(cp->x86_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 dd1ccecfe5..7f0c413412 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 ( x86_vendor_is(boot_cpu_data.x86_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 ( x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) )
         guest_mcg_cap = INTEL_GUEST_MCG_CAP | MCG_LMCE_P;
     else
         guest_mcg_cap = AMD_GUEST_MCG_CAP;
diff --git a/xen/arch/x86/cpu/microcode/amd.c b/xen/arch/x86/cpu/microcode/amd.c
index 4a7573c885..da5573445e 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)
     unsigned int curr_rev;
     uint8_t fixed_rev;
 
-    if ( boot_cpu_data.vendor != X86_VENDOR_AMD ||
+    if ( !x86_vendor_is(boot_cpu_data.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 fe47c3a6c1..e931bca95e 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -199,7 +199,7 @@ static struct microcode_patch *parse_blob(const char *buf, size_t len)
 /* 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 ( x86_vendor_is(boot_cpu_data.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..88cf6a5e8e 100644
--- a/xen/arch/x86/cpu/mtrr/generic.c
+++ b/xen/arch/x86/cpu/mtrr/generic.c
@@ -218,9 +218,9 @@ static void __init print_mtrr_state(const char *level)
 			printk("%s  %u disabled\n", level, i);
 	}
 
-	if ((boot_cpu_data.x86_vendor == X86_VENDOR_AMD &&
+	if ((x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_AMD) &&
 	     boot_cpu_data.x86 >= 0xf) ||
-	     boot_cpu_data.x86_vendor == X86_VENDOR_HYGON) {
+	    x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_HYGON)) {
 		uint64_t syscfg, tom2;
 
 		rdmsrl(MSR_K8_SYSCFG, syscfg);
diff --git a/xen/arch/x86/cpu/mwait-idle.c b/xen/arch/x86/cpu/mwait-idle.c
index f47fdfb569..c284375b24 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 (!x86_vendor_is(boot_cpu_data.vendor, X86_VENDOR_INTEL))
 		return -ENODEV;
 
 	id = x86_match_cpu(intel_idle_ids);
@@ -1816,7 +1816,7 @@ bool __init mwait_pc10_supported(void)
 {
 	unsigned int ecx, edx, dummy;
 
-	if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
+	if (!x86_vendor_is(boot_cpu_data.x86_vendor, X86_VENDOR_INTEL) ||
 	    !cpu_has_monitor ||
 	    boot_cpu_data.cpuid_level < CPUID_MWAIT_LEAF)
 		return false;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 16:55:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 16:55:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173249.1498312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOInp-0007v3-KJ; Wed, 26 Nov 2025 16:55:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173249.1498312; Wed, 26 Nov 2025 16: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 1vOInp-0007uw-HJ; Wed, 26 Nov 2025 16:55:37 +0000
Received: by outflank-mailman (input) for mailman id 1173249;
 Wed, 26 Nov 2025 16:55: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=fSqE=6C=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOInn-0007un-SR
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 16:55: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 b8704e99-cae8-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 17:55:33 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MW4PR03MB6380.namprd03.prod.outlook.com (2603:10b6:303:11f::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Wed, 26 Nov
 2025 16:55:30 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Wed, 26 Nov 2025
 16:55: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: b8704e99-cae8-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=flxrcXx8QeLxumjQpHsKGqp/fptFV/SoWGAcuhSRwBg2YJFiuLP6ODR5p1VL8PgZPnBX6c99AtRIK4DE0CXljtjL8llW6EwmuX9BKUOMXiURT+4p+/3hfbnIoo5h9pWO2ll83jtHoZXOTJGgi9L3QHBMUZYR9I9kM7dgwFLO7DeWqqHMcNDEdM6Wl7sfDOEWdr6AwFiquG45yuTCGyrjLFEwlSFOniCFHewLQ2DEV4lTWIUZLMXJ1ijiT5pGD2QA6YhUUzVrU4MmpiCOezFxB4m0Z8Rsg8f0X4lMUX+MUas7CRt1Du4jjlQG9vH4OkKavYrrKUdUq6Gqod+Rb54CUg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zvZ9o7GTMcczZ38FxwOL/fBSyXS+XI9S/DZJOzyjs6g=;
 b=VEgZvrmOmyBtPmqF1TY1USUuuQzoMMrM6imVNs6pat5XJVXnPdNCgfdKDPqb2nOt7aa8wZa01noGlhtRFK2cLvoC8luPaDVxpQz3x4x2agmqFpwfREWhCjloUs6PPn1on2J2l26rK66SpQBdrtsdAi8hSFeDSwxb/EDJUK0XaQXr0CdX2JQ0qA8fLkno+TcuE7MxV8l+/8in+DzJcPiXXRjhsYi3NRz7sxQNFFF6fPiHbD8UbOkwfF7q3k2y9bzi/neisMU95hgIbjHzCP2KzsVFhjKmpuM37MLzGVK9aeEXB4ZxgijaNyLhQBNTQP5DjxMkG4z2k+iF+1EDybN7QA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zvZ9o7GTMcczZ38FxwOL/fBSyXS+XI9S/DZJOzyjs6g=;
 b=bbIc1h59Vj7oWJXOujlmLWW3dYnL/Wf5TZYfozJ05cwL/WePUv/pqUBy7VMfcJJplswbDLhjMTuVrffB3PLNv074sYkmtJk0dchNI57JA1VUTRxdCpobkc+6eswXj9FjseDQDzd3RUuuOtnoTpb87+aKb7KMjFgsZ2RZnafPeys=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <f2101ed6-470c-4d6a-88dc-d2776010c346@citrix.com>
Date: Wed, 26 Nov 2025 16:55:27 +0000
User-Agent: Mozilla Thunderbird
Cc: 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 3/3] x86/amd: Fix race editing DE_CFG
To: Jan Beulich <jbeulich@suse.com>
References: <20251126132220.881028-1-andrew.cooper3@citrix.com>
 <20251126132220.881028-4-andrew.cooper3@citrix.com>
 <52fd793f-5bb1-4e14-a64c-b431b0ae83a6@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <52fd793f-5bb1-4e14-a64c-b431b0ae83a6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0187.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a::31) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|MW4PR03MB6380:EE_
X-MS-Office365-Filtering-Correlation-Id: 0b8a9d5f-6627-4eb6-f3d5-08de2d0c9b25
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?YlhiV3pZWnk5Ym9NR2pxajV1d1J4WjZsMG8xSFpkWDFqYlFMdVFDZ0pGMW5M?=
 =?utf-8?B?OFJYMmtCS2pqMjIzWUtWNVBScmoyUDF2YitHMXkyZDZvcUY3VFdKT0VhOFNZ?=
 =?utf-8?B?dHlWc0xqN3ZmSE9KODF1a25yTndxNkllY29wUXpnY2ZsaWdNSG5jMDVPYUpP?=
 =?utf-8?B?enZwVWEzZTN0NEhRcGtKZ1cxRkxYR1JaWUQ4M3VrUVJOWll0YVRvNnZVUzNG?=
 =?utf-8?B?VDRZdzQ1dGQrVGVoUmhQZFdTaXViUVdXdlp2YVAvSzh4SDBtY2laQnJXU2VD?=
 =?utf-8?B?N3VyQXdBRzA1N1hGSU1BVWpIaXgrRU11TTlnbXA2NEZJVWdMeXRFV1BvMmhP?=
 =?utf-8?B?UE90dzRoWGxYZzBLcFdsTmZSRmJic2ROalh4eFE3OVh5RlVWY1FkYjl2aXlt?=
 =?utf-8?B?Q3c4TVF6TVJ3d3A1VjlMdmVPVlBTRDFEYlpuKzYvTS9BRmhJV0dZamRkUWR4?=
 =?utf-8?B?MTRRd1IxK2lSVDgwZXEwZmluMUQyckJyU2xLQkFhKytnSGN2dHMrQ1FPdWV3?=
 =?utf-8?B?ekdPZ0MxVCtRZFhOZFBkZ01OcGFTWTJIS3JUdGFIbkQyVUJweU5qWEVFcnZU?=
 =?utf-8?B?VmU4bk5wNGhJSVd0YjlhZzhhSzhudnpNU1pZMkVNMFhKeXByWkg5Q3BBYmg1?=
 =?utf-8?B?MWhLMFBOV3gwQmZNUFA0N3hkOUIwSVB5N2xtNWIzMTFhREY0dHloNHp4VTM2?=
 =?utf-8?B?RTJiQTFpWW82MjRKZlBybWpjOWpSM2MyanZuWWw1S2RMWEUzWGkrQmFHTUp0?=
 =?utf-8?B?V09GTnJQTnVObWd1akpoc0ZoU2ZveFE1TnlXSHBtMmlZK1o3ZkVtckt0MUtp?=
 =?utf-8?B?c2pkSGVKY1VrZTY3SFRuOXRXM3I0Tnd1VG4wajRyaDYzckExcEZ2MzNSWDVm?=
 =?utf-8?B?dG0ydjlGa3YwNnIvVEFFTnN0SUZlcXlCaHB0U1ovUk53NVlveSs3V01WNThM?=
 =?utf-8?B?WU5DT2V3eEtSdkNvOW5NV2w3L3hiMjdBZ3g2eXJjSFo3bC9XQU9TU2NVWWN1?=
 =?utf-8?B?eHFCa2FJZVNrZGlSTGlpY1owYXlxM2hjZEtLcG9UbjVUUG1zdk9aZTA3OWM4?=
 =?utf-8?B?UXRDNWdPUjZrNStvMW5JWEorbEFpMWdDNUdweTNRM0ZidnB0d2N6SnMwNTcr?=
 =?utf-8?B?c2ZSa00rcVFESndHMXJDK2QzME9MK3YrK3VPUE5ST2hoWU1RKythL2dtRXdN?=
 =?utf-8?B?TnYvWE9vQkdiazY1YTFERXhXZjcrMVBvS0pRd0NHemIxRmNxazZhY09XMExj?=
 =?utf-8?B?T01weFhXZkxjM2dKaTlJeU1XcStFNDJLSWI1dmJ0ZUNzQnAwTDR0bWR1MzBP?=
 =?utf-8?B?eUhVYmd6QUI2TGdtb1lZVlVuUmVoMGRiZDliRzk4azVnZVROK1Q1NEdWek9H?=
 =?utf-8?B?Nm1IV2NUay9ZMzI4Q0FJeE92c25NdFFPQjFBWmp4SUlOcGwzam5ucFVWMTFG?=
 =?utf-8?B?aGJUUlNwSFlCclVrREx0VFZLd0s0TWJnUnVWem1KcGx3ZmlHK2ZyM2lUd29r?=
 =?utf-8?B?WkJvaGUxdXJWVFhhdEp3cE14RFpYSXR1OXJzZkdMS3U0SjJPajZZYXEvbm5C?=
 =?utf-8?B?U3FKL3UxblNSVWRWMUxXNlpuODVCeUlEY01RalBNdTRIdldhSTZlanBqb2dT?=
 =?utf-8?B?WURRN2JEeFNPT2lka2E4M09PQnU4dU5RTDA1Y3RMc1QvVmdrVE5IU2IxSUpr?=
 =?utf-8?B?SThzWFEvSW1iQllVUTlMZ3phZ3M2ODRHM3hVZk5Ic01yRTQxMHNSbERmc1kv?=
 =?utf-8?B?b25BLzJXYnVKU3UrL0FkVGZMbVg1Tk11SzZxa3ZKc2hKeUh4b0NWMnp6eEl3?=
 =?utf-8?B?L3JWYlpXK1ZKK0JQZkQ2SklXK0N6dVkvU3ZRQzYreE50Zm50WTRoMzhVSU1V?=
 =?utf-8?B?OHlYdk5kR0wxV3I1S2lRQVpTTDZCNWs1cnlNd3B3Q0dmUXlWYVl4VGpVMFdG?=
 =?utf-8?Q?7hyXxSGiZgb3i/5/0NpV2LYQNdq5Ye4s?=
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?MlgyL0xpcXVTU3dEN0hYeTVsMTQ0WkIrYXdDSkRqaEtMdCtPVGZlc3RTU0dU?=
 =?utf-8?B?NWprcXZtUGUrN2xXcVNHRGxkbzdPTXA1KzdZRkt3bElGd1Bnd1ppVzJmYjc4?=
 =?utf-8?B?cVJQS2xzRDJGT2xEUHFIQ0J3V2ZxN0FacmhaM0VVNFlpQlhoek1JckdKK2E2?=
 =?utf-8?B?SG1pQ2xQTStRODA0TUd3SzgwdlNNaVNIejNZU01vQlY1TzNmN3JRSzluelVw?=
 =?utf-8?B?ZDFGZUpKRW1ZSUNpeFhEcVcrY1c4THFGUTB4aTl6TktHS0Irb0VGeGxCd2Fn?=
 =?utf-8?B?M1R3TjhoNXBVbjV3TkVwSnQxVDZqZXNtQzBPbTNqTDhsVFNjMDV5alNDS2Q4?=
 =?utf-8?B?RmNNdWU4MUFkTGN2eXgyamJ0dk9PMHk5bVV1aXgvRVYwdjE2MGtYRTU4UUpt?=
 =?utf-8?B?M1dIZHAvSmlrem5IenkrM2p0anMvSStOL3UrQ0tMcFpCZjdXN05TV1pyWmR6?=
 =?utf-8?B?cDlrbWhZYXRxMFFxbFN1TnBTUVdCNEpPNVUrNFYvWnVXSUFLMjlNS1I2bDU2?=
 =?utf-8?B?cGorSVJvNDdKMWpjczYvY3BhVTB2dmYxS0I4R1hWNWNMTkIyR3kvZ1p4R1px?=
 =?utf-8?B?cTFxSXp0c1crNHQyY1FEaEJhN3YrQythME1YY3Q4cndwSUp2LzUxQ1RobnhN?=
 =?utf-8?B?ODNVTlFSVGpUZlZCU3pIeTZNNnZiUERaRSttbHM1cWdLNTczZkFPK1V6d0Rk?=
 =?utf-8?B?TVhiLzc2Wkp4ZjYxWjkyOWZ5Rk5pV1p6eGpIejJEeEVZamsrbnBXemFtc1RZ?=
 =?utf-8?B?M0VYUUFLNnVYczBJdUJmaHE0dThzT3k0czhVVjk5TCtEbnFUL0RYcVppOGxQ?=
 =?utf-8?B?NmcwTm9vMUZsenBJU090NmhTR3dWYzNQTkdpK2wyYitMbWRJa2t1b3JkSDBS?=
 =?utf-8?B?RlRUZHU3QlpRVUFvMm5tSXRmTlUyUm01VXcvd010RWZOVlY0RU03QzIzMXdv?=
 =?utf-8?B?cUhKS3ZNK1VEdlhEVUpzYjVaQkM1aXBVYk45aktVOXVkZWFEbE9xRjFzbWVo?=
 =?utf-8?B?TDRPRGZ6cDZKRVV4OHUzQ2g3WlZ2a0NFS1RvcWJzUDhQQ3p5NVJPQlBSZ0hL?=
 =?utf-8?B?UVFqZEZaYU1nc2V2MW8zYTFpZHdOeUJFdU1SMXJlVTlpRTRmL0F5L1R3bXh6?=
 =?utf-8?B?Wkl1aWduZDhZODZNNzcyTDFWWEZEMXR6SXFRUysvUnR1YnQwbElaY1RCaDJj?=
 =?utf-8?B?OWZwU0U3VDBpV2QwSHVJbUhOOWlVQ21mb1NkclhBNHF6V05rK2d6REliZitj?=
 =?utf-8?B?c2kvaXlMTVJLQ3didDQ5MkdJT0hNd3ZROHMzT1o4MWYybUtrd2pzQzVucGMw?=
 =?utf-8?B?WG5rQ3Y4K3RCczlXMVpvM3poT3Zya3lKYWVhWkZFZ1hLK0RPZFM2eFloMXhr?=
 =?utf-8?B?SUxVRGQzNTB1aFNXV3hPM3JsMUdVdHlTb0Fmd051cDByMmdZL2o0L1VzU1RQ?=
 =?utf-8?B?RU8zbmU0SUUweFJBQjR2UVZVTVFxbVdvTFlTcjNtV1R3T01qcGJWVWtJQW5P?=
 =?utf-8?B?V2RSZm1mWER1WWxBUWkzS1JhRVpCT1ZnMWQ3WlBtZ3duaXRwNFJQQXJZZzZy?=
 =?utf-8?B?RHpvWHlNR2xXQkpXUjB1V2dJY3hCV1hZSzh3SjNyc2hhODlKTS9ML2xDSno4?=
 =?utf-8?B?eVNwekE5ZmZjMlRlSmdvWE41MnpIbHZjTmh2OVVmTHRWQmVSaE5sSFZDc1pD?=
 =?utf-8?B?UHl3TlpKYkhFMVNRaFRaWElvamw0ZHFvNFFNOWEvUmJBR1RqS2JOWkV2RXlx?=
 =?utf-8?B?b0hOSDhSNUNhdWRScDdLL3Nnek9qcVpZMFduQkYvcU9nSEE0eFpJalpIKys4?=
 =?utf-8?B?WVJEL1VTQ3JiNFp4aVZZTS96VFRMVWk3dzBQVDNOeXFIOWRDdlQxcnpzdHZn?=
 =?utf-8?B?MVUxd1B2dDdGUlVYZTlYQjVXWGNBOEhNS0xIZDBrYllzQ1hoYjZScTVZTTRt?=
 =?utf-8?B?VXVDVGVJa0JUU3dlTTA5WmRJTUdtcVExVmZNSjlFeVJQbHNuTzhSS2k5TkR1?=
 =?utf-8?B?VXovKzBJeU5qb3dnZXk5bVRmRXMwRDAxYllBOGdERHdrUGoxdUlWTW56dFBr?=
 =?utf-8?B?aERudWE0cVF4dEhrbTNld1p1b1dxWXRJR3JYb2JkRkwvbGZ2WWJUcVAvTkts?=
 =?utf-8?B?ZG9tZ3FTb1duK2ZYMnpOdW9HeG42MFN4dHJaVGtXTWVVc1U0UnIzYXpkY2tw?=
 =?utf-8?B?K1E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0b8a9d5f-6627-4eb6-f3d5-08de2d0c9b25
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 16:55:29.9642
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7aTgHoZonwJw0OyICbUaGP5DKbW4MdRtxZIndWJgxH/JmO4/D2bPnRQnsExZw4jUDb421tN0QJWJxmPckVxXcDYBS0qSatt0a0WDzaXAnsc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6380

On 26/11/2025 3:07 pm, Jan Beulich wrote:
> On 26.11.2025 14:22, Andrew Cooper wrote:
>> @@ -1075,6 +966,112 @@ static void cf_check fam17_disable_c6(void *arg)
>>  	wrmsrl(MSR_AMD_CSTATE_CFG, val & mask);
>>  }
>>  
>> +static bool zenbleed_use_chickenbit(void)
>> +{
>> +    unsigned int curr_rev;
>> +    uint8_t fixed_rev;
>> +
>> +    /*
>> +     * If we're virtualised, we can't do family/model checks safely, and
>> +     * we likely wouldn't have access to DE_CFG even if we could see a
>> +     * microcode revision.
>> +     *
>> +     * A hypervisor may hide AVX as a stopgap mitigation.  We're not in a
>> +     * position to care either way.  An admin doesn't want to be disabling
>> +     * AVX as a mitigation on any build of Xen with this logic present.
>> +     */
>> +    if ( cpu_has_hypervisor || boot_cpu_data.family != 0x17 )
>> +        return false;
>> +
>> +    curr_rev = this_cpu(cpu_sig).rev;
>> +    switch ( curr_rev >> 8 )
>> +    {
>> +    case 0x083010: fixed_rev = 0x7a; break;
>> +    case 0x086001: fixed_rev = 0x0b; break;
>> +    case 0x086081: fixed_rev = 0x05; break;
>> +    case 0x087010: fixed_rev = 0x32; break;
>> +    case 0x08a000: fixed_rev = 0x08; break;
>> +    default:
>> +        /*
>> +         * With the Fam17h check above, most parts getting here are Zen1.
>> +         * They're not affected.  Assume Zen2 ones making it here are affected
>> +         * regardless of microcode version.
>> +         */
>> +        return is_zen2_uarch();
>> +    }
>> +
>> +    return (uint8_t)curr_rev >= fixed_rev;
>> +}
>> +
>> +void amd_init_de_cfg(const struct cpuinfo_x86 *c)
>> +{
>> +    uint64_t val, new = 0;
>> +
>> +    /* The MSR doesn't exist on Fam 0xf/0x11. */
>> +    if ( c->family != 0xf && c->family != 0x11 )
>> +        return;
> Comment and code don't match. Did you mean
>
>     if ( c->family == 0xf || c->family == 0x11 )
>         return;
>
> (along the lines of what you have in amd_init_lfence_dispatch())?

Oh - that was a last minute refactor which I didn't do quite correctly.Â 
Yes, it should match amd_init_lfence_dispatch().

>
>> +    /*
>> +     * On Zen3 (Fam 0x19) and later CPUs, LFENCE is unconditionally dispatch
>> +     * serialising, and is enumerated in CPUID.  Hypervisors may also
>> +     * enumerate it when the setting is in place and MSR_AMD64_DE_CFG isn't
>> +     * available.
>> +     */
>> +    if ( !test_bit(X86_FEATURE_LFENCE_DISPATCH, c->x86_capability) )
>> +        new |= AMD64_DE_CFG_LFENCE_SERIALISE;
>> +
>> +    /*
>> +     * If vulnerable to Zenbleed and not mitigated in microcode, use the
>> +     * bigger hammer.
>> +     */
>> +    if ( zenbleed_use_chickenbit() )
>> +        new |= (1 << 9);
>> +
>> +    if ( !new )
>> +        return;
>> +
>> +    if ( rdmsr_safe(MSR_AMD64_DE_CFG, &val) ||
>> +         (val & new) == new )
>> +        return;
>> +
>> +    /*
>> +     * DE_CFG is a Core-scoped MSR, and this write is racy.  However, both
>> +     * threads calculate the new value from state which expected to be
>> +     * consistent across CPUs and unrelated to the old value, so the result
>> +     * should be consistent.
>> +     */
>> +    wrmsr_safe(MSR_AMD64_DE_CFG, val | new);
> Either of the bits may be the cause of #GP. In that case we wouldn't set the
> other bit, even if it may be possible to set it.

This MSR does not #GP on real hardware.

Also, both of these bits come from instructions AMD have provided,
saying "set $X in case $Y", which we have honoured as part of the
conditions for setting up new, which I consider to be a reasonable
guarantee that no #GP will ensue.

This wrmsr_safe() is covering the virt case, because older Xen and
Byhive used to disallow writes to it, and OpenBSD would explode as a
consequence.Â  Xen's fix was 4175fd3ccd17.

I toyed with the idea of having a tristate de_cfg_writeable, but that
got very ugly very quickly

The other option would be to ignore DE_CFG entirely under virt.Â  That's
what we do for BP_CFG already, and no hypervisor is going to really let
us have access to it, and it would downgrade to non-safe variants.

>> +}
>> +
>> +void __init amd_init_lfence_dispatch(void)
>> +{
>> +    struct cpuinfo_x86 *c = &boot_cpu_data;
>> +    uint64_t val;
>> +
>> +    if ( test_bit(X86_FEATURE_LFENCE_DISPATCH, c->x86_capability) )
>> +        /* LFENCE is forced dispatch serialising and we can't control it. */
>> +        return;
>> +
>> +    if ( c->family == 0xf || c->family == 0x11 )
>> +        /* MSR doesn't exist.  LFENCE is dispatch serialising on this hardare. */
>> +        goto set;
>> +
>> +    if ( rdmsr_safe(MSR_AMD64_DE_CFG, &val) )
>> +        /* Unable to read.  Assume the safer default. */
>> +        goto clear;
>> +
>> +    if ( val & AMD64_DE_CFG_LFENCE_SERIALISE )
>> +        /* Already dispatch serialising. */
>> +        goto set;
> Why "already", when this is now after we did the adjustment?

The old logic read it back to see if the write had stuck.Â  Again that
was the virt case.

With the new logic, I can probably just drop this particular comment.Â 
It's not terribly useful given the new layout.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 17:08:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 17:08:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173263.1498322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOJ0B-0001sX-Su; Wed, 26 Nov 2025 17:08:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173263.1498322; Wed, 26 Nov 2025 17: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 1vOJ0B-0001sQ-Px; Wed, 26 Nov 2025 17:08:23 +0000
Received: by outflank-mailman (input) for mailman id 1173263;
 Wed, 26 Nov 2025 17:08: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=YY09=6C=gmail.com=groeck7@srs-se1.protection.inumbo.net>)
 id 1vOJ0A-0001sK-Bv
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 17:08:22 +0000
Received: from mail-pl1-x629.google.com (mail-pl1-x629.google.com
 [2607:f8b0:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8123c798-caea-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 18:08:19 +0100 (CET)
Received: by mail-pl1-x629.google.com with SMTP id
 d9443c01a7336-297d4a56f97so103137845ad.1
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 09:08:19 -0800 (PST)
Received: from ?IPV6:2600:1700:e321:62f0:da43:aeff:fecc:bfd5?
 ([2600:1700:e321:62f0:da43:aeff:fecc:bfd5])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-29b5b2a155fsm201208015ad.88.2025.11.26.09.08.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 09:08: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
X-Inumbo-ID: 8123c798-caea-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764176898; x=1764781698; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:sender:from:to:cc:subject:date:message-id:reply-to;
        bh=H70tQVp0jdRu6yLi1ZHSywEXJI9fMFla6cCqq4jxfcs=;
        b=kK00+BrEomWPQ99reWcOHDnX3jg4HK7Y5b7/x2AQY9vvspgKOHiDkwERaG/Is99YvC
         4WE4cv4vkG6G5+vF8wO09DNILNA5V/iRjN1vXe4yDB++WmDPqmlerNLcxgF1tMITe9IX
         6Yqo1DNeUUgfKgJKhZxGMQa6YCitzd+v/p7xzIEcIMw/3qqzWIvBOqFkshGrs1V6qHTl
         a7j8/lJWRiMLJoMzq2xq0wKdokMDmMuoezeb65wV/hSS1zdOnCo+sQbenJynqraPyL3U
         99ASYb4X+TaUbiikaqtTVi2r70Dbji6NS631cGF9KGQu3m3Ln7/fK5ZhbHKybL35RoFJ
         lBSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764176898; x=1764781698;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:sender:x-gm-gg:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=H70tQVp0jdRu6yLi1ZHSywEXJI9fMFla6cCqq4jxfcs=;
        b=Zys33ysoEF3xRC9RyMX8VDzD3kXgfmJSSR6Y/ruyLx6W179ZHPsIpJ27mkb/B/Lag9
         bA8v4vX35H94bxbHl5LAscOZ0+HrL0WANMtMNwTEnPbXcmBAzvT2CSq0zbFz970KGn34
         AksusrLxSQdZ3zNwTyWD7zgq7Cg5ppSZED+pK4KhzH67bLkHsI81AAN/m3c3kzlBHhDB
         dwx39K+BZARsljHMVW/5yxe+uKO08KdQ5BhyDqNy7H/SLkbQWIMOrUzLBHIMvRJh/fZe
         p/LiwL89Fk2LpF/SgDX+L9qnGKpRjDy15rc9urEsgHWGfsJVgg8KCBl8cT1SkLzpODHO
         j4QA==
X-Forwarded-Encrypted: i=1; AJvYcCVUA8gHBD6Bw/dLjSmWUdLQ99ads34mV7gR5FCBJFhOKEGCK6TQZh8MzsmttVF/loYkxl1/bRcSdl8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYJtpNZfwXpQWes7Qrhft1xn9/tL6JB7AeOSetIdOUa9xdguHJ
	NZqjuYwu48+zBELH8fiojw54bacrsr60gneXB5IM2VWCsO61Pczou4/Q
X-Gm-Gg: ASbGncv5YRbX+kvlqzp6iKILih1TZ/E3jfzndKCEGYmMr1qzobvdl1sb54lTpoikC2d
	3ef4VRydsGxIkUjyPAuDLsoNBFb+TfiQp1Lt06jCHCXn23C2NyK8uIe3yV2+y1DVnBF7vgl/vTV
	NLRQAnf+VCFKRi+3D0woUZNfuXInqvK9PSTwE091ymUlqiKXkUPsBMmKnJIXgR/32TjBk2sxKDc
	JZJ3tIVLlBuObaujGn4jvc2fFX6C1SSPtUTkM5AQe5vdPgtL0pAlMM3jq86MTfRUxuuOX6sGhMV
	iia9ehUkzYuhuPlJfKyTtzBYfT14u2coImbK0176Sk7PUs4oa8x2ifVhGnn6RTrlLqfdFf+w4oF
	SvRJmibAWU8jGYwK7BdXmhLOfqxooqyKEpDDTPxqA3OjfO10ZKIzIhl5hG3/P8Tn1HIiq0GgROQ
	NHw2uv66JE9b6pg3+Asi8ligmlfeRerzD0ckot0b+wR59Whwlyp2KRdSA09lQ=
X-Google-Smtp-Source: AGHT+IEm/eX5yuwpOzoClbM8zcPawe2/xqTQQviecb25Bk40JcOnKIa/X4pWfDT/0x83wWLQHNhjCg==
X-Received: by 2002:a17:903:234a:b0:298:55c8:eb8d with SMTP id d9443c01a7336-29b6c575114mr249233285ad.35.1764176897825;
        Wed, 26 Nov 2025 09:08:17 -0800 (PST)
Sender: Guenter Roeck <groeck7@gmail.com>
Message-ID: <55bedecf-a4ab-445d-b6b2-c6dcbcd5bd95@roeck-us.net>
Date: Wed, 26 Nov 2025 09:08:15 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/5] x86: Cleanups around slow_down_io()
To: Juergen Gross <jgross@suse.com>, linux-kernel@vger.kernel.org,
 x86@kernel.org, virtualization@lists.linux.dev, kvm@vger.kernel.org,
 linux-hwmon@vger.kernel.org, linux-block@vger.kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, 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, Jean Delvare <jdelvare@suse.com>,
 Denis Efremov <efremov@linux.com>, Jens Axboe <axboe@kernel.dk>
References: <20251126162018.5676-1-jgross@suse.com>
Content-Language: en-US
From: Guenter Roeck <linux@roeck-us.net>
Autocrypt: addr=linux@roeck-us.net; keydata=
 xsFNBE6H1WcBEACu6jIcw5kZ5dGeJ7E7B2uweQR/4FGxH10/H1O1+ApmcQ9i87XdZQiB9cpN
 RYHA7RCEK2dh6dDccykQk3bC90xXMPg+O3R+C/SkwcnUak1UZaeK/SwQbq/t0tkMzYDRxfJ7
 nyFiKxUehbNF3r9qlJgPqONwX5vJy4/GvDHdddSCxV41P/ejsZ8PykxyJs98UWhF54tGRWFl
 7i1xvaDB9lN5WTLRKSO7wICuLiSz5WZHXMkyF4d+/O5ll7yz/o/JxK5vO/sduYDIlFTvBZDh
 gzaEtNf5tQjsjG4io8E0Yq0ViobLkS2RTNZT8ICq/Jmvl0SpbHRvYwa2DhNsK0YjHFQBB0FX
 IdhdUEzNefcNcYvqigJpdICoP2e4yJSyflHFO4dr0OrdnGLe1Zi/8Xo/2+M1dSSEt196rXaC
 kwu2KgIgmkRBb3cp2vIBBIIowU8W3qC1+w+RdMUrZxKGWJ3juwcgveJlzMpMZNyM1jobSXZ0
 VHGMNJ3MwXlrEFPXaYJgibcg6brM6wGfX/LBvc/haWw4yO24lT5eitm4UBdIy9pKkKmHHh7s
 jfZJkB5fWKVdoCv/omy6UyH6ykLOPFugl+hVL2Prf8xrXuZe1CMS7ID9Lc8FaL1ROIN/W8Vk
 BIsJMaWOhks//7d92Uf3EArDlDShwR2+D+AMon8NULuLBHiEUQARAQABzTJHdWVudGVyIFJv
 ZWNrIChMaW51eCBhY2NvdW50KSA8bGludXhAcm9lY2stdXMubmV0PsLBgQQTAQIAKwIbAwYL
 CQgHAwIGFQgCCQoLBBYCAwECHgECF4ACGQEFAmgrMyQFCSbODQkACgkQyx8mb86fmYGcWRAA
 oRwrk7V8fULqnGGpBIjp7pvR187Yzx+lhMGUHuM5H56TFEqeVwCMLWB2x1YRolYbY4MEFlQg
 VUFcfeW0OknSr1s6wtrtQm0gdkolM8OcCL9ptTHOg1mmXa4YpW8QJiL0AVtbpE9BroeWGl9v
 2TGILPm9mVp+GmMQgkNeCS7Jonq5f5pDUGumAMguWzMFEg+Imt9wr2YA7aGen7KPSqJeQPpj
 onPKhu7O/KJKkuC50ylxizHzmGx+IUSmOZxN950pZUFvVZH9CwhAAl+NYUtcF5ry/uSYG2U7
 DCvpzqOryJRemKN63qt1bjF6cltsXwxjKOw6CvdjJYA3n6xCWLuJ6yk6CAy1Ukh545NhgBAs
 rGGVkl6TUBi0ixL3EF3RWLa9IMDcHN32r7OBhw6vbul8HqyTFZWY2ksTvlTl+qG3zV6AJuzT
 WdXmbcKN+TdhO5XlxVlbZoCm7ViBj1+PvIFQZCnLAhqSd/DJlhaq8fFXx1dCUPgQDcD+wo65
 qulV/NijfU8bzFfEPgYP/3LP+BSAyFs33y/mdP8kbMxSCjnLEhimQMrSSo/To1Gxp5C97fw5
 3m1CaMILGKCmfI1B8iA8zd8ib7t1Rg0qCwcAnvsM36SkrID32GfFbv873bNskJCHAISK3Xkz
 qo7IYZmjk/IJGbsiGzxUhvicwkgKE9r7a1rOwU0ETofVZwEQALlLbQeBDTDbwQYrj0gbx3bq
 7kpKABxN2MqeuqGr02DpS9883d/t7ontxasXoEz2GTioevvRmllJlPQERVxM8gQoNg22twF7
 pB/zsrIjxkE9heE4wYfN1AyzT+AxgYN6f8hVQ7Nrc9XgZZe+8IkuW/Nf64KzNJXnSH4u6nJM
 J2+Dt274YoFcXR1nG76Q259mKwzbCukKbd6piL+VsT/qBrLhZe9Ivbjq5WMdkQKnP7gYKCAi
 pNVJC4enWfivZsYupMd9qn7Uv/oCZDYoBTdMSBUblaLMwlcjnPpOYK5rfHvC4opxl+P/Vzyz
 6WC2TLkPtKvYvXmdsI6rnEI4Uucg0Au/Ulg7aqqKhzGPIbVaL+U0Wk82nz6hz+WP2ggTrY1w
 ZlPlRt8WM9w6WfLf2j+PuGklj37m+KvaOEfLsF1v464dSpy1tQVHhhp8LFTxh/6RWkRIR2uF
 I4v3Xu/k5D0LhaZHpQ4C+xKsQxpTGuYh2tnRaRL14YMW1dlI3HfeB2gj7Yc8XdHh9vkpPyuT
 nY/ZsFbnvBtiw7GchKKri2gDhRb2QNNDyBnQn5mRFw7CyuFclAksOdV/sdpQnYlYcRQWOUGY
 HhQ5eqTRZjm9z+qQe/T0HQpmiPTqQcIaG/edgKVTUjITfA7AJMKLQHgp04Vylb+G6jocnQQX
 JqvvP09whbqrABEBAAHCwWUEGAECAA8CGwwFAmgrMyQFCSbODQkACgkQyx8mb86fmYHlgg/9
 H5JeDmB4jsreE9Bn621wZk7NMzxy9STxiVKSh8Mq4pb+IDu1RU2iLyetCY1TiJlcxnE362kj
 njrfAdqyPteHM+LU59NtEbGwrfcXdQoh4XdMuPA5ADetPLma3YiRa3VsVkLwpnR7ilgwQw6u
 dycEaOxQ7LUXCs0JaGVVP25Z2hMkHBwx6BlW6EZLNgzGI2rswSZ7SKcsBd1IRHVf0miwIFYy
 j/UEfAFNW+tbtKPNn3xZTLs3quQN7GdYLh+J0XxITpBZaFOpwEKV+VS36pSLnNl0T5wm0E/y
 scPJ0OVY7ly5Vm1nnoH4licaU5Y1nSkFR/j2douI5P7Cj687WuNMC6CcFd6j72kRfxklOqXw
 zvy+2NEcXyziiLXp84130yxAKXfluax9sZhhrhKT6VrD45S6N3HxJpXQ/RY/EX35neH2/F7B
 RgSloce2+zWfpELyS1qRkCUTt1tlGV2p+y2BPfXzrHn2vxvbhEn1QpQ6t+85FKN8YEhJEygJ
 F0WaMvQMNrk9UAUziVcUkLU52NS9SXqpVg8vgrO0JKx97IXFPcNh0DWsSj/0Y8HO/RDkGXYn
 FDMj7fZSPKyPQPmEHg+W/KzxSSfdgWIHF2QaQ0b2q1wOSec4Rti52ohmNSY+KNIW/zODhugJ
 np3900V20aS7eD9K8GTU0TGC1pyz6IVJwIE=
In-Reply-To: <20251126162018.5676-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 11/26/25 08:20, Juergen Gross wrote:
> While looking at paravirt cleanups I stumbled over slow_down_io() and
> the related REALLY_SLOW_IO define.
> 
> Especially REALLY_SLOW_IO is a mess, which is proven by 2 completely
> wrong use cases.
> 
> Do several cleanups, resulting in a deletion of REALLY_SLOW_IO and the
> io_delay() paravirt function hook.
> 
> Patches 2 and 3 are not changing any functionality, but maybe they
> should? As the potential bug has been present for more than a decade
> now, I went with just deleting the useless "#define REALLY_SLOW_IO".
> The alternative would be to do something similar as in patch 5.

Maybe, but as you point out there has not been a report of a problem
for a long time (who knows if any of the affected systems still exist).
We can apply always apply a fix if it turns out that someone does run
into a problem.

Thanks,
Guenter



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 17:15:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 17:15:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173272.1498331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOJ7J-0003w3-Ia; Wed, 26 Nov 2025 17:15:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173272.1498331; Wed, 26 Nov 2025 17:15: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 1vOJ7J-0003vw-G7; Wed, 26 Nov 2025 17:15:45 +0000
Received: by outflank-mailman (input) for mailman id 1173272;
 Wed, 26 Nov 2025 17:15: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=+ZBX=6C=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vOJ7I-0003vq-Au
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 17:15:44 +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 8a2e41f5-caeb-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 18:15:43 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-429c8632fcbso39975f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 09:15:43 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42cb7fa3592sm40370605f8f.21.2025.11.26.09.15.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 26 Nov 2025 09:15: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: 8a2e41f5-caeb-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764177342; x=1764782142; 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=TN411ehaGiCJ946gDbcyauDPO/gV4MrQ/y3F4+B48Hc=;
        b=fGqsMoYb89HHe9cjvmtk/BTPjrDmR8+APzjwuTkVt0dlRF6KnrU+aFafouofbEiAU3
         gNjKzoykLQ/Qr5bCaZdTWZsN4O3EmR1z0u7VXJQS4RNumm3M09w7aYkQmyqO98dg38sb
         3fPJ1+6TKzA3934ZMDl842YoxmVOOE78tKtGk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764177342; x=1764782142;
        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=TN411ehaGiCJ946gDbcyauDPO/gV4MrQ/y3F4+B48Hc=;
        b=r30TiToFTwR6+TBeWWoOgolRSWwCWexLQM8we9SXFqhENeNuly/eq2jZOI5Y+hAInx
         Mbi5LLcFqKWElava1s8X63oyPIaHko6lPoff8lmSvllgwA3vThzz6Z8M4Gyp1Tz02W2G
         EDzkDUHTk3EUA5tCypLzdn3U/dbrK4xhnDVp57WfIKG/wXxNV7HNKAn00wDmDYCYyfzg
         qoQyOFfKzRU5bqPiTrbWnHZWSRO5c8vYh9Ijh8HZqvGnXY8J4OWijzJNm8qhb+o1e9wf
         tkUyzzzBVnFbruGKJ+QSYtmUhY0vmrGgMieaXLdoR0mGw9hj57d8xnXUPzvccxtfn9AE
         hFCQ==
X-Gm-Message-State: AOJu0YwELJpbSfyBVOulZgErK5fH6/5W5zbg3j1eKrB5B4kv7InU9231
	Nxg1R2Oc4S+lv5MbKe5sR6RngzKbjgH9MKR7wX5wwa/iM2lqhrTm/bH/xmiq3XEyhdcPVQ2EWLC
	uxKVS
X-Gm-Gg: ASbGncv/queRc4oCdBIW7leNN761KNa8f2qPQn97eHgzQNBSQI7Q1o2gQkTMa9VSlpi
	aPEAA+EH8410TN8I5OkztINar69QoEPfgoPbZHCxiXibhACEK/eZ07z+IJoraBncbZzk8S1rplY
	7L1+RjPMHde7P+TbsBHY//Q2T9yxcWXv8V8LVmkAhPFfTDSn8owMobBpWEqi7DQMhfwKiR1X4Fh
	X3p2WJ9kK79rvB+RiW3RDqJ0gyUVTWRgy0Q/Pt2kOppe698Nq38AHjngqnSNzZIr1cpS6Tf+GWv
	NmMjdadhY2gTzn5p3ZBRZYweCmWX3TS8L/a5Gtokujy+ixx5lshfaIo8BhHjbYdLFA/QUsgk4kn
	Sir0IFOxPc4S/9VxRAofgu04MmshgPF/hi4jllMRDEK+O2F9jMjZ9Ao01r1ijpYU8P13oNOtfga
	9RBnzHrBcsTdaP2fQHJeIE+wllpWJeAsSmfE7/OgVuZ1CF9qK1DW+c+NSCKMzQFw==
X-Google-Smtp-Source: AGHT+IFoDJQBemm3FSSjyoUg2LQeMmJ0mSDDWYU5X6PA8YoH9Z8BvUIb556TNUJKXgrAgS30ZhMNrA==
X-Received: by 2002:a05:6000:2411:b0:42b:3131:542f with SMTP id ffacd0b85a97d-42cc1cbcfd6mr22954837f8f.24.1764177342494;
        Wed, 26 Nov 2025 09:15: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 0/3] x86/amd: Drop legacy logic
Date: Wed, 26 Nov 2025 17:15:36 +0000
Message-Id: <20251126171539.890253-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

Some of this has been unused for more than a decade.  Some for a quarter of a
centry.

Andrew Cooper (3):
  x86/cpu: Sort headers
  x86/amd: Drop vestigial PBE logic in init_amd()
  x86/amd: Drop the cpuid_mask_* command line options

 CHANGELOG.md                      |   4 +
 docs/misc/xen-command-line.pandoc |  40 ----------
 xen/arch/x86/cpu/amd.c            | 126 ++----------------------------
 xen/arch/x86/cpu/centaur.c        |  10 ++-
 xen/arch/x86/cpu/hygon.c          |   1 +
 xen/arch/x86/include/asm/amd.h    |  90 ---------------------
 6 files changed, 19 insertions(+), 252 deletions(-)


base-commit: 08c787f66cced18f0d0afafd86a040341adbd031
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 17:15:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 17:15:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173273.1498342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOJ7K-00049V-Pg; Wed, 26 Nov 2025 17:15:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173273.1498342; Wed, 26 Nov 2025 17:15: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 1vOJ7K-00049O-Mg; Wed, 26 Nov 2025 17:15:46 +0000
Received: by outflank-mailman (input) for mailman id 1173273;
 Wed, 26 Nov 2025 17:15: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=+ZBX=6C=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vOJ7J-0003vq-RU
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 17:15:45 +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 8b4d9681-caeb-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 18:15:45 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-429c4c65485so66695f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 09:15:45 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42cb7fa3592sm40370605f8f.21.2025.11.26.09.15.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 26 Nov 2025 09:15: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: 8b4d9681-caeb-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764177344; x=1764782144; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fv2GcjtNyLt38SYmgslAiyI7xWkbmfHZsKTKcBN/TsY=;
        b=v8XUqE/pN2lYGiWCPWHqcMJ4/XtlovTTDuLXOyQGqrQze1cCGP/h/MlgULSbz7SYXe
         xCnEcvNFh32WlKs/KsG2LbaYOINfk4d7iwIJmEmAwDhLT10wODeftcsDF4+HTOftdcGl
         BZ0u79vGJ4Xbu0v8vrUfHUK7GAAnVA5BiAuHQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764177344; x=1764782144;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=fv2GcjtNyLt38SYmgslAiyI7xWkbmfHZsKTKcBN/TsY=;
        b=hZ2cw0dZ8crCAaM3/toX8Hl+5qJZJejJpViDnEaHU3sdASNzPz9MtqzUvU6d+ka78j
         rAeuQtyom1lJ/c0j9iv7Z0FEHa0EXXF35VAjRjDv+XhW0pYFfJmIRfLDeHWcjk657gmP
         UqVqoIaG9UsofLab0B0HkOWCJrUYfzMTXIFpRKylKoF3Q4k7aauLR/Ysyjv2Iv21Wrbt
         3PRX0zVzkgQMREYHYBOWHuFWdBOgtDsfcqHIphjzr22iPo6I+90siFhmatYsj3EwxL6/
         1V9gTPBhCne47IQwnmJ4k+AXcsVxvzMiYNCrfS8b/7r7Fj79PEU/6kGzOoY0q6+xygmJ
         AK/A==
X-Gm-Message-State: AOJu0YyiFgCoK/YP7F7C/iQny1+6URLWNuSYb7JUUK/y9DqIyuB4rfZE
	nIyaDQEUIgoZxlkiMHzVbQWghwTAYnRitbNmpt0CQEZMimBn+9SFodRkEHtyHRJ0PddrC5QuicW
	MRZil
X-Gm-Gg: ASbGncuEpyNRa09KKRFwZXBDoxQRo0lBoOla5K8LATKi899fyRtiPCQvsovFMisnwwh
	Nq/IO1PsKo9NeHz6J43BhKvtJQXX+Nn8cmjCbqxLU2zNiKDvMesh1Y1ZGiIV8/c63jRMU2zD4x8
	A/E24A/FsGURK99WSziJXhtaFjdPnie2FZRxUgZxqgcBK70YszZEOMWNfEJHdqOHp9gD6TxKWA5
	yHWjQzhoJEJWPMaSMgkZhLUUIhDlEmQiDMhKt+I+LaoknG3aacXW0F3+9KpPycdxa1N/VrJt4x/
	Kv9Yy1d7TGvdxOe8B2StI99Q+yHzWIT1AzeOar645h9gUcDusjk+b2QJCvLHoeHOAEH4KhxvBA4
	ROGeBx6haJOkojhrKSLw2UCERfiOgWvw5oUkX0snlzDPqCnBSasO2IiciRqDiv7dsQKZfL+VHH1
	ODDvsHZnx9FTX/iKDO41KhWxGJaMXrbSEa18TsMieEm21SNINXebBtQ5NVB+l2kQ==
X-Google-Smtp-Source: AGHT+IF993I/5wA/Dqltbx+GiKKXijf7P3FlFE6zjpPKdbZW/gyhm9Kq6uFR4Pw8IkZEonsg+GOdqA==
X-Received: by 2002:a05:6000:2004:b0:42b:5406:f289 with SMTP id ffacd0b85a97d-42cc1cd8f27mr22297855f8f.3.1764177344407;
        Wed, 26 Nov 2025 09:15: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 2/3] x86/amd: Drop vestigial PBE logic in init_amd()
Date: Wed, 26 Nov 2025 17:15:38 +0000
Message-Id: <20251126171539.890253-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251126171539.890253-1-andrew.cooper3@citrix.com>
References: <20251126171539.890253-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The comment was adjusted by myself in commit 51bd4bbdfdba ("x86: drop
X86_FEATURE_3DNOW_ALT"), on the presumption that the underlying logic existed
for a good reason.

Having done further archaeology, it turns out to be vestigial technical debt
from the leadup to Linux 2.4 in November 2000.

Prior to "Massive cleanup of CPU detection and bug handling",
c->x86_capability was a single uint32_t containing cpuid(1).edx,
cpuid(0x80000001).edx, or a synthesis thereof.  X86_FEATURE_AMD3D was defined
as the top bit this single uint32_t.

After "Massive cleanup of CPU detection and bug handling",
c->x86_capability became an array with AMD's extended feature leaf split
away from Intel's basic feature leaf.

AMD doc #20734-G states that 3DNow is only enumerated in the extended
feature leaf, and that other vendors where using this bit too.  i.e. AMD
never produced a CPU which set bit 31 in the basic leaf, meaning that
there's nothing to clear out in the first place.

This logic looks like it was relevant in the pre-"Massive cleanup" world
but ought to have been dropped when c->x86_capability was properly split.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

Linux patch:
  https://lore.kernel.org/lkml/20251126125147.880275-1-andrew.cooper3@citrix.com/T/#u
---
 xen/arch/x86/cpu/amd.c | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index ac49df681c2a..a32e5fa208d5 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -1131,13 +1131,6 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 		wrmsrl(MSR_K8_HWCR, value);
 	}
 
-	/*
-	 * Some AMD CPUs duplicate the 3DNow bit in base and extended CPUID
-	 * leaves.  Unfortunately, this aliases PBE on Intel CPUs. Clobber the
-	 * alias, leaving 3DNow in the extended leaf.
-	 */
-	__clear_bit(X86_FEATURE_PBE, c->x86_capability);
-	
 	if (c->x86 == 0xf && c->x86_model < 0x14
 	    && cpu_has(c, X86_FEATURE_LAHF_LM)) {
 		/*
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 17:15:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 17:15:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173274.1498352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOJ7N-0004O8-0g; Wed, 26 Nov 2025 17:15:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173274.1498352; Wed, 26 Nov 2025 17:15:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOJ7M-0004O1-Ti; Wed, 26 Nov 2025 17:15:48 +0000
Received: by outflank-mailman (input) for mailman id 1173274;
 Wed, 26 Nov 2025 17:15: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=+ZBX=6C=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vOJ7L-0003vq-7M
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 17:15: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 8c21311a-caeb-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 18:15:46 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-477a219dbcaso62500325e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 09:15:46 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42cb7fa3592sm40370605f8f.21.2025.11.26.09.15.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 26 Nov 2025 09:15: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: 8c21311a-caeb-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764177346; x=1764782146; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ip84DOjD4cQt+cdz0xdh6gwO6w4ONZR8zS3FhMktakg=;
        b=JgiUwJ76s6q5buTxrn4/V9QrLvj0lGhgAGPHiNJRZIpnZ8KpdkRMS6CH1GzG2br1uA
         X2xxtlm0c6vi8jxFto3R1CXRhQWdGqHiluOONBgCWU5naNSxhzya0AcBQOcaUxEVPxoN
         0rEDH21w+xcTRyMyKXqh2QHFdfi2s4sRzpuN8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764177346; x=1764782146;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ip84DOjD4cQt+cdz0xdh6gwO6w4ONZR8zS3FhMktakg=;
        b=RyxiMrDoEQGDDUlWt0sIxg45G/cMVWsxgX2Mgs5YXrWatiPt6ERs9h+cpgCWdrQqSL
         BHgoyWoiRYQtNP+ElEnnxh5LGWgyu/hmT/WLWXQgU7G595EJkSOykLjUEVNFDBxMAkwg
         sSswdnlwdQLnUZE7VKJJ/9kTTY5lgr+PQ2NLhOcKIO0t22YCxER7NaWdvVMFU7t+PpcH
         EvE/Kt25tqExXbab9gTfyV2rqvL7yclnD+TIvHkULeqznht3AbPVdzewSlJs4yEDKxgR
         ifjNY4SH7xGYK3lB9vq6xnuIdT0sE0eQ15Gi4UMrviI+O0CRia/Z56fGWAEG0raIwskm
         iDkw==
X-Gm-Message-State: AOJu0YwgeyMY43f4a2XNFqxVaTJfb2TSsqTtvZw7k1WVQVypw1/3DAd0
	lCfrNQTC9/k/9Pf8f0KNgpsPLnEBEKKlaIg3Nu43fYVhy8KOhGVA+5ecsWzEvdQhASPYmgFAotB
	2JJoG
X-Gm-Gg: ASbGnctlp1rklAnVh3bWK1wtbauXX7/VxJBorsW58MlBQNlFUTU+X6q6A5UGVnymA0I
	JihXGNZcvNeqUOp51U6JEhYTDENUyLnAxgtLRGSa3ZLmYA/bnI1xjFwdMznnp/8X4jYZgPfqNFp
	WJlGHlKPLcbzUvGuhMQq4ehTGAU+13Fx2h46QXZcts6z01ZLtNbOsLNbB80ZHIyWyqrenwj20XC
	kxOirikNsmQl94KQAcTbiVVlR2XggN13nWoTVaRYcsCauCSYDB9HMGjDg4KdhqbRPxnMfVs7ckv
	z3+RYOC1fWBeJVCwZxhFahMig22IUu1X9b8eVVV7zSX/nmrq/01HYpSJd0OItlJwMPfwivGRDbN
	Z9Nj5o4PtRxae3za0lcp0ddxQqZ9BG4CNQ/LQWf9CvcaDJWPH8QbK18ay8rDi18dilaEwF35hnF
	rGt1AYCNvWFTZnPmJNgCrCLPybpmfqN2OHZRl/VnwyY5UHB1NwRkNzkWcM/6wdqQ==
X-Google-Smtp-Source: AGHT+IElM8AuIaz4uExKRPuzRn5jniyiPYBkXX2WrQQzcksee9FpBppZ8NhOPqV0czfBHidVuJJSYA==
X-Received: by 2002:a05:600c:1f85:b0:477:9c73:267f with SMTP id 5b1f17b1804b1-477c01ff629mr177076745e9.33.1764177345490;
        Wed, 26 Nov 2025 09:15: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>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH 3/3] x86/amd: Drop the cpuid_mask_* command line options
Date: Wed, 26 Nov 2025 17:15:39 +0000
Message-Id: <20251126171539.890253-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251126171539.890253-1-andrew.cooper3@citrix.com>
References: <20251126171539.890253-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

As noted in the command line documentation, these are both deprecated since
Xen 4.7 (2016), and are not fully effective on AMD CPUs starting from 2011.

Not realised at the time of writing the docs was that their use is also
incompatible with certain errata workarounds which edit the CPUID MSRs after
the levelling defaults are calculated.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 CHANGELOG.md                      |   4 ++
 docs/misc/xen-command-line.pandoc |  40 ------------
 xen/arch/x86/cpu/amd.c            | 104 ------------------------------
 xen/arch/x86/include/asm/amd.h    |  90 --------------------------
 4 files changed, 4 insertions(+), 234 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index adaad5ee8923..3aaf5986231c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 ### Added
 
 ### Removed
+ - On x86:
+   - The cpuid_mask_* command line options for legacy AMD CPUs.  These were
+     deprecated in Xen 4.7 and noted not to work correctly with AMD CPUs from
+     2011 onwards.
 
 ## [4.21.0](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.21.0) - 2025-11-19
 
diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 34004ce282be..e92b6d55b556 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -587,46 +587,6 @@ applicable.  They can all be ignored.
     in its positive form to override Xen's default behaviour on these systems,
     and make the feature fully usable.
 
-### cpuid_mask_cpu
-> `= fam_0f_rev_[cdefg] | fam_10_rev_[bc] | fam_11_rev_b`
-
-> Applicability: AMD
-
-If none of the other **cpuid_mask_\*** options are given, Xen has a set of
-pre-configured masks to make the current processor appear to be
-family/revision specified.
-
-See below for general information on masking.
-
-**Warning: This option is not fully effective on Family 15h processors or
-later.**
-
-### cpuid_mask_ecx
-### cpuid_mask_edx
-### cpuid_mask_ext_ecx
-### cpuid_mask_ext_edx
-### cpuid_mask_l7s0_eax
-### cpuid_mask_l7s0_ebx
-### cpuid_mask_thermal_ecx
-### cpuid_mask_xsave_eax
-> `= <integer>`
-
-> Applicability: x86.  Default: `~0` (all bits set)
-
-The availability of these options are model specific.  Some processors don't
-support any of them, and no processor supports all of them.  Xen will ignore
-options on processors which are lacking support.
-
-These options can be used to alter the features visible via the `CPUID`
-instruction.  Settings applied here take effect globally, including for Xen
-and all guests.
-
-Note: Since Xen 4.7, it is no longer necessary to mask a host to create
-migration safety in heterogeneous scenarios.  All necessary CPUID settings
-should be provided in the VM configuration file.  Furthermore, it is
-recommended not to use this option, as doing so causes an unnecessary
-reduction of features at Xen's disposal to manage guests.
-
 ### cpuidle (x86)
 > `= <boolean>`
 
diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index a32e5fa208d5..2b5aa07a4a13 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -20,32 +20,6 @@
 
 #include "cpu.h"
 
-/*
- * Pre-canned values for overriding the CPUID features 
- * and extended features masks.
- *
- * Currently supported processors:
- * 
- * "fam_0f_rev_c"
- * "fam_0f_rev_d"
- * "fam_0f_rev_e"
- * "fam_0f_rev_f"
- * "fam_0f_rev_g"
- * "fam_10_rev_b"
- * "fam_10_rev_c"
- * "fam_11_rev_b"
- */
-static char __initdata opt_famrev[14];
-string_param("cpuid_mask_cpu", opt_famrev);
-
-static unsigned int __initdata opt_cpuid_mask_l7s0_eax = ~0u;
-integer_param("cpuid_mask_l7s0_eax", opt_cpuid_mask_l7s0_eax);
-static unsigned int __initdata opt_cpuid_mask_l7s0_ebx = ~0u;
-integer_param("cpuid_mask_l7s0_ebx", opt_cpuid_mask_l7s0_ebx);
-
-static unsigned int __initdata opt_cpuid_mask_thermal_ecx = ~0u;
-integer_param("cpuid_mask_thermal_ecx", opt_cpuid_mask_thermal_ecx);
-
 /* 1 = allow, 0 = don't allow guest creation, -1 = don't allow boot */
 int8_t __read_mostly opt_allow_unsafe;
 boolean_param("allow_unsafe", opt_allow_unsafe);
@@ -114,51 +88,6 @@ static void wrmsr_amd(unsigned int msr, uint64_t val)
 		     "d" (val >> 32), "D" (0x9c5a203a));
 }
 
-static const struct cpuidmask {
-	uint16_t fam;
-	char rev[2];
-	unsigned int ecx, edx, ext_ecx, ext_edx;
-} pre_canned[] __initconst = {
-#define CAN(fam, id, rev) { \
-		fam, #rev, \
-		AMD_FEATURES_##id##_REV_##rev##_ECX, \
-		AMD_FEATURES_##id##_REV_##rev##_EDX, \
-		AMD_EXTFEATURES_##id##_REV_##rev##_ECX, \
-		AMD_EXTFEATURES_##id##_REV_##rev##_EDX \
-	}
-#define CAN_FAM(fam, rev) CAN(0x##fam, FAM##fam##h, rev)
-#define CAN_K8(rev)       CAN(0x0f,    K8,          rev)
-	CAN_FAM(11, B),
-	CAN_FAM(10, C),
-	CAN_FAM(10, B),
-	CAN_K8(G),
-	CAN_K8(F),
-	CAN_K8(E),
-	CAN_K8(D),
-	CAN_K8(C)
-#undef CAN
-};
-
-static const struct cpuidmask *__init noinline get_cpuidmask(const char *opt)
-{
-	unsigned long fam;
-	char rev;
-	unsigned int i;
-
-	if (strncmp(opt, "fam_", 4))
-		return NULL;
-	fam = simple_strtoul(opt + 4, &opt, 16);
-	if (strncmp(opt, "_rev_", 5) || !opt[5] || opt[6])
-		return NULL;
-	rev = toupper(opt[5]);
-
-	for (i = 0; i < ARRAY_SIZE(pre_canned); ++i)
-		if (fam == pre_canned[i].fam && rev == *pre_canned[i].rev)
-			return &pre_canned[i];
-
-	return NULL;
-}
-
 /*
  * Sets caps in expected_levelling_cap, probes for the specified mask MSR, and
  * set caps in levelling_caps if it is found.  Processors prior to Fam 10h
@@ -295,8 +224,6 @@ static const typeof(ctxt_switch_masking) __initconst_cf_clobber __used csm =
  */
 static void __init noinline amd_init_levelling(void)
 {
-	const struct cpuidmask *m = NULL;
-
 	/*
 	 * If there's support for CpuidUserDis or CPUID faulting then
 	 * we can skip levelling because CPUID accesses are trapped anyway.
@@ -318,26 +245,11 @@ static void __init noinline amd_init_levelling(void)
 
 	probe_masking_msrs();
 
-	if (*opt_famrev != '\0') {
-		m = get_cpuidmask(opt_famrev);
-
-		if (!m)
-			printk("Invalid processor string: %s\n", opt_famrev);
-	}
-
 	if ((levelling_caps & LCAP_1cd) == LCAP_1cd) {
 		uint32_t ecx, edx, tmp;
 
 		cpuid(0x00000001, &tmp, &tmp, &ecx, &edx);
 
-		if (~(opt_cpuid_mask_ecx & opt_cpuid_mask_edx)) {
-			ecx &= opt_cpuid_mask_ecx;
-			edx &= opt_cpuid_mask_edx;
-		} else if (m) {
-			ecx &= m->ecx;
-			edx &= m->edx;
-		}
-
 		/* Fast-forward bits - Must be set. */
 		if (ecx & cpufeat_mask(X86_FEATURE_XSAVE))
 			ecx |= cpufeat_mask(X86_FEATURE_OSXSAVE);
@@ -351,14 +263,6 @@ static void __init noinline amd_init_levelling(void)
 
 		cpuid(0x80000001, &tmp, &tmp, &ecx, &edx);
 
-		if (~(opt_cpuid_mask_ext_ecx & opt_cpuid_mask_ext_edx)) {
-			ecx &= opt_cpuid_mask_ext_ecx;
-			edx &= opt_cpuid_mask_ext_edx;
-		} else if (m) {
-			ecx &= m->ext_ecx;
-			edx &= m->ext_edx;
-		}
-
 		/* Fast-forward bits - Must be set. */
 		edx |= cpufeat_mask(X86_FEATURE_APIC);
 
@@ -370,20 +274,12 @@ static void __init noinline amd_init_levelling(void)
 
 		cpuid(0x00000007, &eax, &ebx, &tmp, &tmp);
 
-		if (~(opt_cpuid_mask_l7s0_eax & opt_cpuid_mask_l7s0_ebx)) {
-			eax &= opt_cpuid_mask_l7s0_eax;
-			ebx &= opt_cpuid_mask_l7s0_ebx;
-		}
-
 		cpuidmask_defaults._7ab0 &= ((uint64_t)eax << 32) | ebx;
 	}
 
 	if ((levelling_caps & LCAP_6c) == LCAP_6c) {
 		uint32_t ecx = cpuid_ecx(6);
 
-		if (~opt_cpuid_mask_thermal_ecx)
-			ecx &= opt_cpuid_mask_thermal_ecx;
-
 		cpuidmask_defaults._6c &= (~0ULL << 32) | ecx;
 	}
 
diff --git a/xen/arch/x86/include/asm/amd.h b/xen/arch/x86/include/asm/amd.h
index 72df42a6f6c9..4036dd549835 100644
--- a/xen/arch/x86/include/asm/amd.h
+++ b/xen/arch/x86/include/asm/amd.h
@@ -7,96 +7,6 @@
 
 #include <asm/cpufeature.h>
 
-/* CPUID masked for use by AMD-V Extended Migration */
-
-/* Family 0Fh, Revision C */
-#define AMD_FEATURES_K8_REV_C_ECX  0
-#define AMD_FEATURES_K8_REV_C_EDX (					     \
-	cpufeat_mask(X86_FEATURE_FPU)   | cpufeat_mask(X86_FEATURE_VME)    | \
-	cpufeat_mask(X86_FEATURE_DE)    | cpufeat_mask(X86_FEATURE_PSE)    | \
-	cpufeat_mask(X86_FEATURE_TSC)   | cpufeat_mask(X86_FEATURE_MSR)    | \
-	cpufeat_mask(X86_FEATURE_PAE)   | cpufeat_mask(X86_FEATURE_MCE)    | \
-	cpufeat_mask(X86_FEATURE_CX8)   | cpufeat_mask(X86_FEATURE_APIC)   | \
-	cpufeat_mask(X86_FEATURE_SEP)   | cpufeat_mask(X86_FEATURE_MTRR)   | \
-	cpufeat_mask(X86_FEATURE_PGE)   | cpufeat_mask(X86_FEATURE_MCA)    | \
-	cpufeat_mask(X86_FEATURE_CMOV)  | cpufeat_mask(X86_FEATURE_PAT)    | \
-	cpufeat_mask(X86_FEATURE_PSE36) | cpufeat_mask(X86_FEATURE_CLFLUSH)| \
-	cpufeat_mask(X86_FEATURE_MMX)   | cpufeat_mask(X86_FEATURE_FXSR)   | \
-	cpufeat_mask(X86_FEATURE_SSE)   | cpufeat_mask(X86_FEATURE_SSE2))
-#define AMD_EXTFEATURES_K8_REV_C_ECX  0
-#define AMD_EXTFEATURES_K8_REV_C_EDX  (					       \
-	cpufeat_mask(X86_FEATURE_FPU)	   | cpufeat_mask(X86_FEATURE_VME)   | \
-	cpufeat_mask(X86_FEATURE_DE)	   | cpufeat_mask(X86_FEATURE_PSE)   | \
-	cpufeat_mask(X86_FEATURE_TSC)	   | cpufeat_mask(X86_FEATURE_MSR)   | \
-	cpufeat_mask(X86_FEATURE_PAE)	   | cpufeat_mask(X86_FEATURE_MCE)   | \
-	cpufeat_mask(X86_FEATURE_CX8)	   | cpufeat_mask(X86_FEATURE_APIC)  | \
-	cpufeat_mask(X86_FEATURE_SYSCALL)  | cpufeat_mask(X86_FEATURE_MTRR)  | \
-	cpufeat_mask(X86_FEATURE_PGE)	   | cpufeat_mask(X86_FEATURE_MCA)   | \
-	cpufeat_mask(X86_FEATURE_CMOV)	   | cpufeat_mask(X86_FEATURE_PAT)   | \
-	cpufeat_mask(X86_FEATURE_PSE36)	   | cpufeat_mask(X86_FEATURE_NX)    | \
-	cpufeat_mask(X86_FEATURE_MMXEXT)   | cpufeat_mask(X86_FEATURE_MMX)   | \
-	cpufeat_mask(X86_FEATURE_FXSR)	   | cpufeat_mask(X86_FEATURE_LM)    | \
-	cpufeat_mask(X86_FEATURE_3DNOWEXT) | cpufeat_mask(X86_FEATURE_3DNOW))
-
-/* Family 0Fh, Revision D */
-#define AMD_FEATURES_K8_REV_D_ECX         AMD_FEATURES_K8_REV_C_ECX
-#define AMD_FEATURES_K8_REV_D_EDX         AMD_FEATURES_K8_REV_C_EDX
-#define AMD_EXTFEATURES_K8_REV_D_ECX     (AMD_EXTFEATURES_K8_REV_C_ECX |\
-	cpufeat_mask(X86_FEATURE_LAHF_LM))
-#define AMD_EXTFEATURES_K8_REV_D_EDX     (AMD_EXTFEATURES_K8_REV_C_EDX |\
-	cpufeat_mask(X86_FEATURE_FFXSR))
-
-/* Family 0Fh, Revision E */
-#define AMD_FEATURES_K8_REV_E_ECX        (AMD_FEATURES_K8_REV_D_ECX |	\
-	cpufeat_mask(X86_FEATURE_SSE3))
-#define AMD_FEATURES_K8_REV_E_EDX        (AMD_FEATURES_K8_REV_D_EDX | 	\
-	cpufeat_mask(X86_FEATURE_HTT))
-#define AMD_EXTFEATURES_K8_REV_E_ECX     (AMD_EXTFEATURES_K8_REV_D_ECX |\
-	cpufeat_mask(X86_FEATURE_CMP_LEGACY))
-#define AMD_EXTFEATURES_K8_REV_E_EDX      AMD_EXTFEATURES_K8_REV_D_EDX
-
-/* Family 0Fh, Revision F */
-#define AMD_FEATURES_K8_REV_F_ECX        (AMD_FEATURES_K8_REV_E_ECX | 	\
-	cpufeat_mask(X86_FEATURE_CX16))
-#define AMD_FEATURES_K8_REV_F_EDX         AMD_FEATURES_K8_REV_E_EDX
-#define AMD_EXTFEATURES_K8_REV_F_ECX     (AMD_EXTFEATURES_K8_REV_E_ECX |\
-	cpufeat_mask(X86_FEATURE_SVM) | cpufeat_mask(X86_FEATURE_EXTAPIC) | \
-	cpufeat_mask(X86_FEATURE_CR8_LEGACY))
-#define AMD_EXTFEATURES_K8_REV_F_EDX     (AMD_EXTFEATURES_K8_REV_E_EDX |\
-	cpufeat_mask(X86_FEATURE_RDTSCP))
-
-/* Family 0Fh, Revision G */
-#define AMD_FEATURES_K8_REV_G_ECX         AMD_FEATURES_K8_REV_F_ECX
-#define AMD_FEATURES_K8_REV_G_EDX         AMD_FEATURES_K8_REV_F_EDX
-#define AMD_EXTFEATURES_K8_REV_G_ECX     (AMD_EXTFEATURES_K8_REV_F_ECX |\
-	cpufeat_mask(X86_FEATURE_3DNOWPREFETCH))
-#define AMD_EXTFEATURES_K8_REV_G_EDX      AMD_EXTFEATURES_K8_REV_F_EDX
-
-/* Family 10h, Revision B */
-#define AMD_FEATURES_FAM10h_REV_B_ECX    (AMD_FEATURES_K8_REV_F_ECX | 	\
-	cpufeat_mask(X86_FEATURE_POPCNT) | cpufeat_mask(X86_FEATURE_MONITOR))
-#define AMD_FEATURES_FAM10h_REV_B_EDX     AMD_FEATURES_K8_REV_F_EDX
-#define AMD_EXTFEATURES_FAM10h_REV_B_ECX (AMD_EXTFEATURES_K8_REV_F_ECX |\
-	cpufeat_mask(X86_FEATURE_ABM) | cpufeat_mask(X86_FEATURE_SSE4A) | \
-	cpufeat_mask(X86_FEATURE_MISALIGNSSE) | cpufeat_mask(X86_FEATURE_OSVW) |\
-	cpufeat_mask(X86_FEATURE_IBS))
-#define AMD_EXTFEATURES_FAM10h_REV_B_EDX (AMD_EXTFEATURES_K8_REV_F_EDX |\
-	cpufeat_mask(X86_FEATURE_PAGE1GB))
-
-/* Family 10h, Revision C */
-#define AMD_FEATURES_FAM10h_REV_C_ECX     AMD_FEATURES_FAM10h_REV_B_ECX
-#define AMD_FEATURES_FAM10h_REV_C_EDX     AMD_FEATURES_FAM10h_REV_B_EDX
-#define AMD_EXTFEATURES_FAM10h_REV_C_ECX (AMD_EXTFEATURES_FAM10h_REV_B_ECX |\
-	cpufeat_mask(X86_FEATURE_SKINIT) | cpufeat_mask(X86_FEATURE_WDT))
-#define AMD_EXTFEATURES_FAM10h_REV_C_EDX  AMD_EXTFEATURES_FAM10h_REV_B_EDX
-
-/* Family 11h, Revision B */
-#define AMD_FEATURES_FAM11h_REV_B_ECX     AMD_FEATURES_K8_REV_G_ECX
-#define AMD_FEATURES_FAM11h_REV_B_EDX     AMD_FEATURES_K8_REV_G_EDX
-#define AMD_EXTFEATURES_FAM11h_REV_B_ECX (AMD_EXTFEATURES_K8_REV_G_ECX |\
-	cpufeat_mask(X86_FEATURE_SKINIT))
-#define AMD_EXTFEATURES_FAM11h_REV_B_EDX  AMD_EXTFEATURES_K8_REV_G_EDX
-
 /* AMD errata checking
  *
  * Errata are defined using the AMD_LEGACY_ERRATUM() or AMD_OSVW_ERRATUM()
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 17:15:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 17:15:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173275.1498356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOJ7N-0004Qb-8t; Wed, 26 Nov 2025 17:15:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173275.1498356; Wed, 26 Nov 2025 17:15:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOJ7N-0004Pn-53; Wed, 26 Nov 2025 17:15:49 +0000
Received: by outflank-mailman (input) for mailman id 1173275;
 Wed, 26 Nov 2025 17:15: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=+ZBX=6C=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vOJ7L-0004LK-UN
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 17:15:47 +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 8b886386-caeb-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 18:15:45 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-477b5e0323bso6683505e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 09:15:45 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-42cb7fa3592sm40370605f8f.21.2025.11.26.09.15.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 26 Nov 2025 09:15: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: 8b886386-caeb-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764177345; x=1764782145; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RXsYxM3NpDUeaEZxK8r/tveqmM11gYyncoITFszEZzk=;
        b=skPisG8klWyqrczqC8QKVaq3o95YBvDBjK7iVNt+k4Ptyw0FO6BaokLSggLG42rrvu
         kUUtJREOBboeshKDTY42cqMxubGHGLZujiDvExt6Q9ie2H1leUi2czbmzHRv6Bt2/6fZ
         rHif8RLhzcI3hTzYQX6cZL9yK3JzYsJQVn8Vs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764177345; x=1764782145;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=RXsYxM3NpDUeaEZxK8r/tveqmM11gYyncoITFszEZzk=;
        b=TB0y9Lost2cnOGBwlcAWTfguqZNNyacQJNJncxo/M0DP/JZMtOHDF9Bzsn94ujYw3G
         qmyqpn4WGpwn7zrHj/sWW11uqonYuz8jNHFVLn8D2QmayCpX6b7bUYoZXsvC/SM89hmE
         t+r30kieYu4jgTTeDCeXUjT0YaRbv6Cj+DU+WeYfCdLBksIo5KBVcg4EMqMp5SWJ7IPg
         o1hqDW8sElxQFf5CXOq6OSg+SKN2ltzPhGaPQmUq+3t0QB73ifcVhg0qW58AUROJb8DT
         BGP/f2zcA8oZBMJQHjiXLucU1WTfwXQozg1aNl4/hhn0TH9RUmWEal9iGrLOFh/yI+rI
         zWSQ==
X-Gm-Message-State: AOJu0YziKU1w+VcfJHKqn26Myek1HFliP4LeuI1E5ah2FOPqcFURvc9u
	CLoRxB8isPr6pCTuNFqYiWh29TJEsmdKayUGXr9Biwo6Vmn378W2E6Z13KipEFGuXjs9DzYgxHq
	Fc1yz
X-Gm-Gg: ASbGncsbXbogTNh019N/Q8wMpL+pgx9BXuNoppFlsHJG3fllp2kqjwS4xsbj8/tdWle
	ftB6mS7MuCLbbPtoju69Pt9oXPhSvfY17W6Lol4TrEHv9VuSpxgexsl9Ct/8TLmqBbyI1NsYkrZ
	gdHr3skPrQXuLX6GTx3Q5/zgXGbi2FoblYUvH05aOd4rnAxouSqwZVTFDNstK6311So9z5USvjM
	hblD526VWYdEuD51sA7SgRWrBCDCX+lVX1LYaE6L6IP7Cj8M9re/yn5BO9BKry1OtxEPY0X6uaL
	dKEXdJb87YcQxRHD+o5BYQm+uyxi9NN1hZf92MTSEt/5Ig3wy0lN+9gp47ibViGPhA3kL8Ez7rI
	+O9DqOy18nJZVc32bNX9v06ACXOVa64rJzxAnTid2otcih6B60AW7M79Gu30u0dPPyYHuJ6Ur66
	MRc5Zo59QE+dGTF+U6aAV6PU9WlrTP7v1iHqdF3iYktdRyOCHiScSHfx+NsJri3Q==
X-Google-Smtp-Source: AGHT+IGhZ4dg4Q5HyFYywxH2E1wqfJXcwiXUBDM62MEfhqT4b8CSn77GvlL3wKsKaAU5Il3JSVWiyg==
X-Received: by 2002:a5d:5850:0:b0:429:c719:e0aa with SMTP id ffacd0b85a97d-42cba63a6f8mr28596975f8f.6.1764177343427;
        Wed, 26 Nov 2025 09:15: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 1/3] x86/cpu: Sort headers
Date: Wed, 26 Nov 2025 17:15:37 +0000
Message-Id: <20251126171539.890253-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251126171539.890253-1-andrew.cooper3@citrix.com>
References: <20251126171539.890253-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/cpu/amd.c     | 15 ++++++++-------
 xen/arch/x86/cpu/centaur.c | 10 ++++++----
 xen/arch/x86/cpu/hygon.c   |  1 +
 3 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index 9b02e1ba675c..ac49df681c2a 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -1,21 +1,22 @@
+#include <xen/bitops.h>
 #include <xen/cpu.h>
 #include <xen/init.h>
-#include <xen/bitops.h>
 #include <xen/mm.h>
 #include <xen/param.h>
-#include <xen/smp.h>
-#include <xen/softirq.h>
 #include <xen/pci.h>
 #include <xen/sched.h>
+#include <xen/smp.h>
+#include <xen/softirq.h>
 #include <xen/warning.h>
+
+#include <asm/acpi.h>
+#include <asm/amd.h>
+#include <asm/apic.h>
 #include <asm/io.h>
+#include <asm/microcode.h>
 #include <asm/msr.h>
 #include <asm/processor.h>
-#include <asm/amd.h>
 #include <asm/spec_ctrl.h>
-#include <asm/acpi.h>
-#include <asm/apic.h>
-#include <asm/microcode.h>
 
 #include "cpu.h"
 
diff --git a/xen/arch/x86/cpu/centaur.c b/xen/arch/x86/cpu/centaur.c
index 750168d1e81a..d2e7c8ec9912 100644
--- a/xen/arch/x86/cpu/centaur.c
+++ b/xen/arch/x86/cpu/centaur.c
@@ -1,9 +1,11 @@
-#include <xen/lib.h>
-#include <xen/init.h>
 #include <xen/bitops.h>
-#include <asm/processor.h>
-#include <asm/msr.h>
+#include <xen/init.h>
+#include <xen/lib.h>
+
 #include <asm/e820.h>
+#include <asm/msr.h>
+#include <asm/processor.h>
+
 #include "cpu.h"
 
 #define ACE_PRESENT	(1 << 6)
diff --git a/xen/arch/x86/cpu/hygon.c b/xen/arch/x86/cpu/hygon.c
index f7508cc8fcb9..68eee0e85f49 100644
--- a/xen/arch/x86/cpu/hygon.c
+++ b/xen/arch/x86/cpu/hygon.c
@@ -1,4 +1,5 @@
 #include <xen/init.h>
+
 #include <asm/processor.h>
 #include <asm/spec_ctrl.h>
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 17:34:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 17:34:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173316.1498371 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOJP8-0000V5-TO; Wed, 26 Nov 2025 17:34:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173316.1498371; Wed, 26 Nov 2025 17:34:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOJP8-0000Uy-QU; Wed, 26 Nov 2025 17:34:10 +0000
Received: by outflank-mailman (input) for mailman id 1173316;
 Wed, 26 Nov 2025 17:34:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fSqE=6C=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOJP7-0000Us-JS
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 17:34:09 +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 18c80e0f-caee-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 18:34:02 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY1PR03MB7261.namprd03.prod.outlook.com (2603:10b6:a03:526::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.13; Wed, 26 Nov
 2025 17:33:58 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Wed, 26 Nov 2025
 17:33: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: 18c80e0f-caee-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wdzhabnKbnF7venKgjJwql9Avp56ATm9Ulv9QFZYUVF13Sq4tUYazyv7aiEDyxvBtcqmrcQvZY8VmPGVIUPVMuSP30Fec+K3c529KV8iE7hgE9mgm32uvdyOoH+psQsd0u/PAgPvRLPxX9Ub1iJTyFkR2z5vzYEXtRXdG6svJHIvgvlPJ5nWKN2VRqwb39IeFDSW73r7afyziz9rvRFEN5ZyM0YZyPcCSKlvclRh93PMVYlh4pLl/szjOs+5JpRyy6NdmpdJ0K3KrDIEOkdOB3E6HoRbaLrMDHwnYcQdn1aKtbg/GyeGzth+i92ISKCa6ghysHhFjNkH/1yF5yhDDg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1Two5c6uhFvZRoK3rhOU1MDJG9JWsowpw9m/Y7g6xws=;
 b=XOtObOLHqQfg1dGWlCeiogbTDNyKH0sJtkVeMSiAQFIMDwyU3QGF9G3WMr5YA+arCzIOd8RF0MX6TARx2Hj9EthfZFSHX4dHjfvyMrb5vrcPUBQEs5n9IgNAwoMapw07qzDy0TyFxXYkC2zKhCbiXlRfv4VogeFksZUqkx/5w4iqNGU10Qy+7s/33IoENpNMAF37K5GRmIcbJ1IOnc8W8IQ3/O7dC1Z5jcIGIHt3Kcevx0LjEm8sJd6z1B31mxF5Fa3McUpXFYdKzcYpPQStCLZjo9wB6aomeVlVJDPuIK2W7HV6SRjiBv7FCs88K02BBI8rni+7oLPO736EeXiT8w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1Two5c6uhFvZRoK3rhOU1MDJG9JWsowpw9m/Y7g6xws=;
 b=pj+4yfEhB4RIWRYhCJ5i7kwo9J9gotLDMXh8duUKy2a2XMjJ+4tEEcdb3512NO3sTulPzbMOzByYE81UgXPA6DcUwxil2c767EAvxQEEvPN/C4PX0oy0/MbxcSrpvedWKfcairdNGq9Ej0Yr8ke1/wMDiumrVxdrc+I1TFGrJ+A=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <8fa28870-61e2-475f-9e97-43e7a03b5c6b@citrix.com>
Date: Wed, 26 Nov 2025 17:33:55 +0000
User-Agent: Mozilla Thunderbird
Cc: 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 2/3] x86/amd: Stop updating the Zenbleed mitigation
 dynamically
To: Jan Beulich <jbeulich@suse.com>
References: <20251126132220.881028-1-andrew.cooper3@citrix.com>
 <20251126132220.881028-3-andrew.cooper3@citrix.com>
 <175cb547-02d7-435b-93e5-51d643ca1cf0@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <175cb547-02d7-435b-93e5-51d643ca1cf0@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO6P123CA0027.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:313::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_|BY1PR03MB7261:EE_
X-MS-Office365-Filtering-Correlation-Id: ace51118-08aa-478d-ccd8-08de2d11fb3a
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?TXdzUWNxNm56TVhLWXJUc1UxRzdsNDJTaG9wZXQ5WCswSUpMK3VYdGNKSC9P?=
 =?utf-8?B?T3o5Q0wwS0RQcE1scUJqUVU2MHprdnIzWXlDaXAyMDJ6TEZleUk2d0RiaWFa?=
 =?utf-8?B?SGVBN1JLQzZTRDA3dmQzNURwWGdGS2tGcG9uYWZrVXBrVURTcHdSNlk0cEZX?=
 =?utf-8?B?eUltT3NBUUt4WXBUS3h1bktrSm1ydStRTXBSMDBpZWNjRnFvbjRuUGgrY0FZ?=
 =?utf-8?B?Zm4yTCtzQjA2SkdTbkdrNHk3bXNGMHo3bUlnT0s3cEpjUytIRklGRFJSelhB?=
 =?utf-8?B?eG8zZlpLT2dIMXQzMFhKeUtveEh4QkFFNnJITlV4Nm1sQk9DTllJRHE5MVFV?=
 =?utf-8?B?U2I2MjVEeFBwYUl5bUJ4NUcwdmVwVHMyN1pSRUdPZDhncndhQ0RqQm1xdlFv?=
 =?utf-8?B?ZG9zbzZQZzVuUHR3NmVQMVkyUW9GWWZvZVdWUVFMNTAyN1pzSU9QQkF4UkNa?=
 =?utf-8?B?Y0pBZ1JLL1lLNWhFRTQ1WlQ4ZXV1WlFoZXd0MTRCSHR5MGtPK0lrOVducnNP?=
 =?utf-8?B?OCtycGVNbk1QTmk2N25uUFFVMEY2dnhpQmlXa2ZORllvaWdBVUVtc1VDNFcw?=
 =?utf-8?B?MU9XWTNQMm9nWnBNK29uc1JGMmdpS3hZUWw4ZDRoYXFFMmo5LzRBS2U2MDgr?=
 =?utf-8?B?czBKL2VxQnpOcVR5ekZLN3p4WSt3REQ2RFlwalozUHZrcWVDdXptamVNaDZ0?=
 =?utf-8?B?Ymxrc2hZOHllV1c4RHRGVVplVU1pdFpLYTBVZGtTa1FKVGxlVFFlL2QxNVNv?=
 =?utf-8?B?dE53YkRNcEs1TlhrN3d6TFp2eVhwYXEyUURNZlYyQXlCdVNwTEorcVk1bCtL?=
 =?utf-8?B?Q0d6cWVhTTNzbUJwa1dyQ3NzQ3NodkVydGc3bWVJQ3NJMTZVTlB5NENCSi9C?=
 =?utf-8?B?SHRuelFzem05MFZldEpkbXVoY0ZPcXNSNXEvZ3dFdDdVS1kwWFczWFZJWldG?=
 =?utf-8?B?MXpzd1I5WVVzUjBGbzZvSHEvUzRuYnhkdUdQU1VRZERBK1VRQlhnbGNNZ1Qx?=
 =?utf-8?B?QTBUNHV4a3VkOVd2L1VhZ2NrUURpZUdTTTdKd0hyeGUxVmZ4TnJNWTFOMTZN?=
 =?utf-8?B?TmpuTGdxRjVJQzNiZm5rTmFDNWJISk1OdW0xTVZXZlBTQ2dxck1iRXFyUk9Z?=
 =?utf-8?B?Y1hZU1ByU2RES1U1QUNXTnNnUXYwU0VmVXd1S3k0NDcrNVBhb2tpLzdyamZJ?=
 =?utf-8?B?TGgrSTZnQWpnUXdGTlowQUVQUzg0T29yZUgvYVVjeWx0dlY0cHg0V0dlcUlN?=
 =?utf-8?B?N0twbEpNeG53ZG9FTVdFT1ZWamFjelk0eVNMdnpYbW50ZDV3MnhwRjUxem0v?=
 =?utf-8?B?cEZwZ1lBYjBzTEhwUFBmaks0R1pKNlhSNWlKWWhyZHkrTFo1Rm85NmtGY2M1?=
 =?utf-8?B?OTIyV29iZU5SaGdzSStBVUdUbHE3VzBQbjhhNVJaWmZGbzhkSHJPb00wQVVs?=
 =?utf-8?B?ZWxIRFFTaGQyYVhzcUQrNEViVWJyYVdkY0J5WnVjMUJkeGdFMStTVGJHQVBE?=
 =?utf-8?B?UXorQlEwUUZ5UzJrSWF2YnZOeEthUEZIYVZscU1sMFJJZGtVWHQ4RURQeGsw?=
 =?utf-8?B?WVdMRWFZTUowbkNIenJDYVRqKy92T1pMSmY3aERQa3lGcVhNNDNHdkRYRVpy?=
 =?utf-8?B?WEx0ZCtlaGFpeU9DNkhBdVVISGc1S21DZ3Y3ckNaZDFpcHFzZjRjWS9iSnZI?=
 =?utf-8?B?MVlJQU1wVnpXcUlSQ1JlaFNkemNYTlpaUzAyN3d6b0J2R2p0cnlHb0dNQVND?=
 =?utf-8?B?ZnNWdEdDdW1JaGFnRWxXQ1p0SEYyN3hsY1pyWFZSZ2tWVjd4RnZzRGc4aEhP?=
 =?utf-8?B?bWZzVVNqakZFbGpJeUlhbjFCT3B5QUt3M09TL2J3UDVVNWsyd2dNTzJFRUp3?=
 =?utf-8?B?YmIrYjRtWllDRGw5aTZLaE16V293Z2Fkakl5VWs2NjIyRzlCV2p3enRKL0hW?=
 =?utf-8?Q?lh4svkOTkfVqQGyQNTleq/nW70LexzfX?=
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?Q2FJa1ZrRVh1VjhGdjlMcVUzTXlYbU1EK3J1ck9IOE0weDVWN01EaXhrZ09W?=
 =?utf-8?B?Nk96VHJzRFNkZVFtVm1zZnhNZW9NVnBWVS81ZlhsQStEcHZLV3lVTUlVTUJR?=
 =?utf-8?B?aTNha28rV2N3enExYTU2Yno3eG4vZlZQeVBTZzNleXJQcXdDZGhyb0FkaWNp?=
 =?utf-8?B?a25rbFRibTFjYlZoY3NZcjJVa0xxdlEwMHFydzBVRHpnOXRqRVI2QWN0Nzky?=
 =?utf-8?B?K2VSZStKTythTWFpNEZ5VjExc2ZsQkNxbkRFR1NoSXUxS1ZndEp2L1R5b3Fq?=
 =?utf-8?B?UDNyKzZHTlczOThIZXlOYnlXY09aeXM3ZTJUTDZlbHJMRW5hYVNHbjlmdDNV?=
 =?utf-8?B?SkdMNlF5VnRyS2VXTU9vK1pmcFR4RlJsMVNqclZZZ2JyeFR5K1Q2elEzYWhD?=
 =?utf-8?B?ZUk4NElSUmJKSlFQZTJOMXI5RmtjcG4yWUhoMXJsazBJQi8zNGtIZWJNV0hX?=
 =?utf-8?B?dGI4dzhhVUhjU042aFJtNzBOdUdUZDNXZ1NEUjlKa2NjRUZnR1B4dXVsV0hT?=
 =?utf-8?B?N2ZtbUVEUTBicyt2cjJMN0p1OG5EMlhVVnY2T3NXZFkyMjZPTnk0bUViTjZ5?=
 =?utf-8?B?aGtIN01GK3I3UWw5V1hQS29MeW9qUHNrU2x5dER3VVVoaWIvOWdZWWFOdW1a?=
 =?utf-8?B?Q2UweVo3WUFDNTZET0pvT3pzd1hrNDVWR0V5Y3dHZXE1YWtTSTh5dHFZd0hL?=
 =?utf-8?B?VTNvbzBPSXNMeU8rbU0xYVZEeXVCN2xvSlFlL1FVMlpudTBWUFgvZ05OdEt1?=
 =?utf-8?B?YmdkaG1yL2lJZDI4WWFocXhOenNGR0Fqcmx2K0JubU1sNnJvQTZyTnl2L0hk?=
 =?utf-8?B?NXNZeGp2Si8zMFVxUnUvTjFWMWp1RnlLYW9aUCtTUVFFaTdqa1JiVWhyOGR4?=
 =?utf-8?B?SWRPd1FhaDQvVlpEUGRaOWdURk9sOExMQjRObTVSSytRcUowNDIzdnlTekdC?=
 =?utf-8?B?ODhVbkw5Tmo3cjRHR2l1NWZNSVlTOTdiY2JYbnZhaTk1Z3Jpd2FnczZrenVh?=
 =?utf-8?B?aGNQNWdvTWNRYkNlRngxVUZITURTeFhXdTUzMjM1Y3VLU1YwcHNBY2VCMGJ3?=
 =?utf-8?B?a2tVdWJFa2NLSTZ2Rkp2eEc3VmNjZFB1cWIrbEJkWnl2MmxTMWFUblptTkhr?=
 =?utf-8?B?NnhYTzd0SU95TEZVbU5HMGhuWWJVT2xwUFdBOUxiZDRheVRUeklPWnJlaGtW?=
 =?utf-8?B?OEU0WnpneEVRZkYzaGtlVzlkc280cWhNY01ra0d1ajBWSTJvVERhSkRiYXB5?=
 =?utf-8?B?VndmVmR0L0FRRFVmZTZrZW5DRUhaZnVOTlFRSGxmTXVKb1hPUmVDU0RZQkZD?=
 =?utf-8?B?MEU2SVdDeUJmZXpTS1FrUmYvUThxUGswR2JQSDh0cHJrRXFsZ3pVcHRYY3RD?=
 =?utf-8?B?WHFtY1haTlh5aHVpUGlSWm1ucGsxbWJNNHJJNWpSem1lY0lDU2pyMG8wM0J2?=
 =?utf-8?B?dC9DSGUvUzJCcUxaMG1XRHY1Vlo1NjdGWnFFbEZzclI0VDdreG9oZTZQVHpk?=
 =?utf-8?B?YVNpQndCUG1paE9SVG9BNDFPVkxnYm82OWQrL05xTWxkaG8rSXZrQmhFcExn?=
 =?utf-8?B?L2dkMWpaYXFocnMyTzZrMnVmVTd4RUU2MUVVY0pDbExqQnJ5VnRtdFZ5TG5V?=
 =?utf-8?B?bC9NRHhXb0ZJcFhJV0NvdnNsMjZQeGpiWGdQanM3Z2FwZXNqdFF1T003dDNm?=
 =?utf-8?B?YkZxMHJaRWsvTmVmd3VTbm84WUduM25yeGkyYkp4ekVuQktEVmNXOEZ6bklP?=
 =?utf-8?B?d2psYTRBd3ZLQ3pKNm80a3c4R1ZyVnduUko0V2xVS1ViaEx1aURiTGRMMnpX?=
 =?utf-8?B?bGRzK0RRczh3aC9wK0cxQ01YVHZjdmJ0VkJFUEVRV2ZpSHdOOTQySGlyZlU1?=
 =?utf-8?B?Sm9XdHJhNXNONmRFZUdKWnpaUDc5TldndFNEN1k2akNYNjJtWHlkTzVsWS9H?=
 =?utf-8?B?aUtRbVhNL2FOQjU5cUlNU1M3Z1dqaEpERkFTcGVxZlJVSXRSck5Jb1VGWTFy?=
 =?utf-8?B?ZmczVXFkc21xNFM1aFlXV29JcWxYanVienorUk9sOFZ3TG5XOWJ1WG94VnlN?=
 =?utf-8?B?cVRmRjM5WCtpek1pd2orUXlBZjY5ckxiVklpa3BVT1N5SHFnNUdaYVl5NkZN?=
 =?utf-8?B?Y3UyUk1HOFZDSW4rQXZnZVNjRlFhVFp4SkU3Z2tGM2xFdkZyVmg0SDJFYVls?=
 =?utf-8?B?UUE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ace51118-08aa-478d-ccd8-08de2d11fb3a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 17:33:58.7394
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: roP6BO+5aB/iVcx8dG6v93+m4zFaCCC+I4zx7bwmfAzwb+Adhgpc7FTUZjIhyrieVqCcfFDV+RRtJeOYgxQkx24boN//N+ZHlcbbncci1/A=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB7261

On 26/11/2025 2:49 pm, Jan Beulich wrote:
> On 26.11.2025 14:22, Andrew Cooper wrote:
>> This was potentially helpful when the chickenbit was the only mitigation and
>> microcode had not been released, but that was two years ago.
>>
>> Zenbleed microcode has been avaialble since December 2023, and the subsequent
>> Entrysign signature vulnerability means that firmware updates block OS-loading
>> and more OS-loadable microcode will be produced for Zen2.
>>
>> i.e. the Zenbleed fix is not going to appear at runtime these days.
>>
>> No practical change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks.

> on the basis that people unwilling to update their firmware already accept
> being vulnerable. To them this might be a perceived regression, i.e. not
> exactly "No practical change", but we kind of accept that possibility.

It's not quite that easy.Â  There are plenty of Zen2 systems without a
firmware update.

But, a user who cares about their security will have a more up-to-date
microcode than 2 years old, and will get the Zenbleed fix at boot time.

What I'm trying to say is that the "old ucode at boot, new at runtime"
case doesn't sensibly exist any more.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 17:56:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 17:56:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173326.1498383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOJkj-0003hg-GR; Wed, 26 Nov 2025 17:56:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173326.1498383; Wed, 26 Nov 2025 17: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 1vOJkj-0003hZ-C7; Wed, 26 Nov 2025 17:56:29 +0000
Received: by outflank-mailman (input) for mailman id 1173326;
 Wed, 26 Nov 2025 17: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) (envelope-from
 <SRS0=fSqE=6C=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOJki-0003hT-DA
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 17:56:28 +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 3a8720cf-caf1-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 18:56:27 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA3PR03MB7282.namprd03.prod.outlook.com (2603:10b6:806:302::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Wed, 26 Nov
 2025 17:56:24 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Wed, 26 Nov 2025
 17:56: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: 3a8720cf-caf1-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wAjbNxDJS/5gCDkVH7Qm7g8wbWWTQVi/BaN6pWua/bOZjai0fwP2X+bVh3t5K5Ji86jWJ7kv8KeBSzq4qlHzYu0yX9coPpAZVOy+MKOvvPNxtRsgk9Vsv2F2EQsSsXqf3l2bj0pbmHbgPCAGBJ5jdS+6ZUY9toI2EskbtbYn8DJMoNPaviUhXdlCrQOZbn6rJ5GXw/+bjYi0/mtkpAFxBlkw8ipB7Zqvl4GjG9XciBUQMM1FztgK5z4BTcpbDHWIrJ06xy2gTDThGfVxEC2f4ha62jjfB1o/2zsOvt59zm96PXSIW2m873UehTTU5BxQ5B1fcqwAHS9+DjwwhPq/zA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=db9E0UhHHX0avoxIBa0aaEVVFiDQUNRvZvsUs3TtZ5c=;
 b=gfSroiFqeXRqQtTfAmNvPv4QzDxkUNfMfFluXnijj+gnSbYu3mHbvLjHtVQoDbQ1EutSb47p+AGyoIqVmiQPQwdOyRfCPs39Q7EqbxlE32XHlQW7N1jgt6H/DFPIqZqenRfBMytCVBYvzQtqT0LTosbO+I/CVkItfaFHYdorVDTr2ak/waFQG0JDoWlygrhZgCvd9PhN+Z7WgLJ7G2jqGZL31XT2Yxr4BzENV1Lq1LNsfzKjkX5T6yysTNYG7wEyMozdD+tW7UBZwHZPFz3Tvw5Y2rCnxCtgFeKYkoKYvBqqCqAm8KLbHHdFoGEtw0CYiOVJPGahoh43RupW5s8Hkw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=db9E0UhHHX0avoxIBa0aaEVVFiDQUNRvZvsUs3TtZ5c=;
 b=ZOVo+mtizaWKQaPNRxcnkH79oCjiS7GLLaKF2KxPBSvLAvkT4CPJGD5BUrd1Nd+xFfM1X1ymZkWlE3yD356CUJDCLHKHeli+bYtmFyT+QR0LzD8EBbxVUXpJV7jic2INNnGT/dl5pqpv1Z4fvs0rcDUN4lCSQ/Qs1eMTYdpfqh0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d13547b3-15f4-4814-8bd5-1f5dfb96fc39@citrix.com>
Date: Wed, 26 Nov 2025 17:56:21 +0000
User-Agent: Mozilla Thunderbird
Cc: 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 3/3] x86/amd: Fix race editing DE_CFG
To: Jan Beulich <jbeulich@suse.com>
References: <20251126132220.881028-1-andrew.cooper3@citrix.com>
 <20251126132220.881028-4-andrew.cooper3@citrix.com>
 <52fd793f-5bb1-4e14-a64c-b431b0ae83a6@suse.com>
 <f2101ed6-470c-4d6a-88dc-d2776010c346@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <f2101ed6-470c-4d6a-88dc-d2776010c346@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P123CA0039.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600::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_|SA3PR03MB7282:EE_
X-MS-Office365-Filtering-Correlation-Id: 6545ebb8-0607-4bbc-9575-08de2d151d40
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?bDNwdkdpTFE0U2dmN3RlZWRuUnptSXpWd2pwdEFCak1mN0pGRHp6bWtHMUxT?=
 =?utf-8?B?QjRWR3NuTG1VdEwrN25TaThqQXlldmMzQzlRYnNycnFZK1NuOG84S3ZDcGRm?=
 =?utf-8?B?OE1yVmJGZWJJMU56SDg3bU5YbzA3V2ZwNEhDSjBjRnhNaE1xMWpOTW9NM2hO?=
 =?utf-8?B?d1cwaWY1YytRWmx1SGxjeVhGNXluaUhNYzJ6ZnI5UHBudGhhQnM3WWIwTnUz?=
 =?utf-8?B?NjYzS0JkbHV1M1FUbzUzb01HZGtyNUFaVmlTenRMWWVFc3VxUXMwdkpjZkJC?=
 =?utf-8?B?c3lIRHB2TXQxZlJFN1BCK0pZa1REVmZtMFlUZzhja0RwMG03MllEKzNFZTJM?=
 =?utf-8?B?cTc1SSt1S08vRTIrc1JMSi9yNjdza2o2dUFTTEg0NklTUDlqaFZXcXh3am9V?=
 =?utf-8?B?WVYwd05KczZGYzlJZzdITHl3YkMzSVRqK3ozaHd2Y2UxT2ZtWFpwL0laWCtQ?=
 =?utf-8?B?YmxHd0c1SHdmTEdEOTJjUHhZN0pjTE1KR3E3dG9pWGhTTFJjRFRzbWk1QUlu?=
 =?utf-8?B?U3Y3djRiMVZGaXE4YnAzeFdwdmMzcnRDS1hKNHdsT0RqQ0tOQzNZc1hoSFNk?=
 =?utf-8?B?S0FjRTR3R2xMTTRydTk4ZkNvZW9MNWtiYmMzMUlWbFJNQzh1Y21tN3JvZnF6?=
 =?utf-8?B?T3lmMVl2M2NxZHEyaUswejAwWDgwZk5ROEdiclBmdHcrQ0hmSG5mVG9Jbm85?=
 =?utf-8?B?TkhYdEJBT1A4MUdYbXNxcFllaFFBNkk1dmhaNHMvTVgybjBpbFd2TGNocHBR?=
 =?utf-8?B?S0dtbTZjQ3pkOHU5Y2lRYlBhMHI1TDlHNENWRmFaSXU5d1oyRXpqc1duZDNr?=
 =?utf-8?B?TzF2SUp2SDRpYlRoNHA0YmdKTDMzZTJ1UHNPMkJWeEFVb1U5UXJ3MjcveG1P?=
 =?utf-8?B?UEF1a3dhZ2V4bjNNWUQ1Mk1VRTdCeW9wbjR6Ly8va1d6d0pwc25QS2hVZmxp?=
 =?utf-8?B?dC9panRob0tyZ2JmenVwN3ltS3o2eEc0Y1IyVDJ6Uldoem5qNE9ScEhTL0sz?=
 =?utf-8?B?cFdoNHBLZEVvZFN5d0VtZlZBdTdJa09oYjdES0JtZjBHK3ErcnhIeU9TUFUz?=
 =?utf-8?B?NlhUaXpqalJlYXZYczVrby9rOWcrVUhGM3ZhaVNzcXB0SmRQTGgwbmVUWVR4?=
 =?utf-8?B?YjBHSEQvVFZuYVdtSDNvMitIWS9EL1J0b09xcHJRcWJXdWxpV2dDcjRLQ2Fs?=
 =?utf-8?B?T2hGN1pqZC9WNEx4YmxzeU5RcXhwVldQdzAwejJodHVBTlVPWXpwWUZjMmNx?=
 =?utf-8?B?RTc0OGdNdWtGVTJaYllISmM2QjZPZWRMa01xd3dIalk5VjhENWFLYkVRdVFK?=
 =?utf-8?B?RkduR1gyRlJGdTNQMXRkUGFLcVIzV2Zkd0QxQ291eHN3WE1QNTJjT0Nkd3R6?=
 =?utf-8?B?UFVIRHFLdzRpekh3UnVqZ0NQeXEzS2REOWovYnhIQm1nSXlYdDdjd1BoVSt6?=
 =?utf-8?B?b2lVbG1EQXJOazhPeTRnUERJSTV0MTg4QktDaU10czk2Y004M05pREFpd0N1?=
 =?utf-8?B?MjI0enA1OC9ROFBvZ0RMR0VZOUIyU21LM3dxNmVqd0J5QTF5ditPK1F4UGM1?=
 =?utf-8?B?SXB2WTFpNGtDc3kwang1UTN5cjE3UWYwenRweTk2MGhCTEhOWUhkOVY5TVNq?=
 =?utf-8?B?czI4dFg3MHkzNGZRNUczZFB2dWJxMkEwcnhZTFU4YlFHVW0wOHdrcThCOGZR?=
 =?utf-8?B?bVlVQXhtTmdoTVhZYThVVnUyY0hhQmZuL0FBSm1YejVIdXcxaTFybXdjcUQ0?=
 =?utf-8?B?d0Y2RnVKUlFYNUFjM0M4MVEwU1ROL05LODVoTjIzb25jYzN2M0RHZ3JCbmdI?=
 =?utf-8?B?aDRNa2svZEF0eTdkZGZOOTExak5TSTVzN1pOc1N1cWVRUnFzN3o4SnB2djl5?=
 =?utf-8?B?VVBrcVhuZ0lJdmlQZE5CS3NPbFpoZXFLaUlSN1A5Vjc4NXhYS1M4ZXYwZVRM?=
 =?utf-8?Q?SVUZXI9Gh4i+KpQYS6n3ty9VeEOfFUGV?=
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?RXZVakVOdVB2M3liWnpQZkNodGljZkh1aFdpeWZIVCtVYUVCMWdYdFlrWmJF?=
 =?utf-8?B?T0hkc2IyU2w0Y0JWYUpjZFczMFRyZURxWXMwN2k0WGVtRiswWVczeGFueVFx?=
 =?utf-8?B?MW03WU1qQjlzb3oxTjFQbGtlM2pYQmwwclhtV285WWpEc2d4VG5UWUpnVS80?=
 =?utf-8?B?N0Rpa0xmY0EvVEx6WWxGM0RHSlg3VjhRUVdKVDNzZ1RvZDBYVjF3djRHTUx1?=
 =?utf-8?B?RnpIbVBWVFpYT0VncDRzMkNSbkZmTVQ5VUFURzY3aFJvVEl6YXNYQ2F3aTZK?=
 =?utf-8?B?MU44Tkh2akw3TVUwODNTWk1sRnEvNzlrejBjRE9Xd2dGWisxNXRBUy9jdzJ5?=
 =?utf-8?B?ME83T3VqM21hMzdxVXo0QTVRamtNM0paUE80UFpyYXVQYUVoVmxUY3A1TkJG?=
 =?utf-8?B?M0RNZlRzNWlrQzRtQXdNaUpiNDNQc21YWHZsVTE1RzczV0I3TWJVUXh4UVdu?=
 =?utf-8?B?SEFsbzUySDZxZHB3cnVLTnVobUxJbHNJUGJFUUNYNkZrQ3h4Y3B3VllTdHdT?=
 =?utf-8?B?Q2tjUWdodk9JaUp2UU5IbS9QbENwNHpyWHRwQUZ3cGx0Sk9MTjc2cDlHOHk4?=
 =?utf-8?B?WmU5YlphZFJRK0JXWW9UU3FlQ3FBaVl0eERtN3hjWlZXaUpyQ2o3cklTL0NG?=
 =?utf-8?B?UXEwZWN2RFNCV0hDN0RCTVU0ckREWmtxNG1Mb3BsV0tzSWE5alU5OGFTRGxx?=
 =?utf-8?B?cXpWaVhLSWY5UERzNVlrNlpuelNySHBmMUl4OEE0ZHY2QUJaTXo0dnVpNE9t?=
 =?utf-8?B?bHNIQlg5SHRURElVTkZqWHhRUTBkZXFYalQzTEtKeXpSUzdUVVJFQXRSODN1?=
 =?utf-8?B?VTFNSGJ3bEtjcmMwKzMwdk44YVFKdElaVjgzYlVHVjN0Y2IvSXBpdkp5OFhS?=
 =?utf-8?B?R3ZhNmVmQ29vbWUxN0dVNUhPdkRaOE94aGJ0REdMd1FxRFZaQkVhUHlORERF?=
 =?utf-8?B?TDlnRkxNd0w3M1hWZzMyUnNnaWNHM1d5ZDRwRkNpRDNPZWh1QkRCUWN6Uytm?=
 =?utf-8?B?MnFhSHI1ZFJ3WEcyWTU1REUzQVdSWW82SDVXMEdrY2hVdWF5Y2I3RFF2dG5H?=
 =?utf-8?B?QXBKRkc1S2VobUpKdHhTYTBJUmt3K0FqV2t0b1VhNHZlRlFMckV6R2FPUEtx?=
 =?utf-8?B?WERmU0ZLdjd5czJ3aytwek9XZXBkMkJ2TVRXbHlNckpQODVrSjgyM3JoYnQy?=
 =?utf-8?B?eStLc0c0NWFlZC90WTBTVlpjNTZnNmdBc2QvYzRqWU1UUklESlF3SnRZV3Jq?=
 =?utf-8?B?M1RDdFBvYlJMUVgyMG1aeVBiNTI1WlpqZDVVV3MvTlZkSnduaDEwc3h6ODNx?=
 =?utf-8?B?Q2daQ3NpTmpwempqSlBsckhJQVJiMjZLeTgrZ1V2enFLWk1DTlBrZXFKUHNa?=
 =?utf-8?B?ZldrOVFUQnI1SnNqYVA5Qmt0OTNJQ1VkVVBNeVFTd3MyM0szM3pEN0k5Z0tI?=
 =?utf-8?B?WkwvOXZYK1Nydng3MTc2T2tTSVNMdE5hZ0xZYW9zcHlvWnBhZFNBeXovdG5C?=
 =?utf-8?B?UEZocEZUbXBGalN3OFMyQmNHbzhoaFV4K1U4cXQ1amF6S1hJdWJHTC9EZ2Y3?=
 =?utf-8?B?b05yN010Y3FWOVo0WGJUZk5wQTNDRHR1TWRGdHFWN3ZReVN2SVpTVXBrVHp2?=
 =?utf-8?B?R2NzekhBYitJRTRYNHVPM0g3dHU5d05KM21uOEVvWjZSREpvN3h0TkNhK3Jn?=
 =?utf-8?B?Z1gvZ25jZ2ZzN1M1cEFJMkNRSDd5MkhNTzM4T0FZLzhrTVNYVG1pVjNSMXA4?=
 =?utf-8?B?VFFZV0xpdnNnODBmYTVlR1NlcGdSWGptS0lTbEpWTyt0QTlkWWVETFQycWNK?=
 =?utf-8?B?QUYrS0hEWmNJQ3RiWHNpdjA5bXI0UGV4bDFSRWdadFBEd2Nsb0JscUpBNGxw?=
 =?utf-8?B?REY5bklsMzZmc3dSK1I4MnZmZHRzb2lyQWRkZzU2bjVlamtOVm1RZjZnMkJ4?=
 =?utf-8?B?RDRjNmpVMEFuZEt4cUowNnlKL3Z6Sk9uSmwyU05GanMvYmE4RTh2U2NsRDFU?=
 =?utf-8?B?bEx0TmREMHZTY3pyQmNCL3hDVFNKNSs3M1dvL2RqelFBRllaQXlvamRXNVJV?=
 =?utf-8?B?aXptSGJidTJodVVwVjV1c0ZsSXpxckdLZGYxTmYydmNIU0NpZmN0SFVYWHFX?=
 =?utf-8?B?VkN0cEorYmdOV012NHludG9JNnNGVGJOQU04MjdHV3VwS1NFSmVpZk9QQmg0?=
 =?utf-8?B?SFE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6545ebb8-0607-4bbc-9575-08de2d151d40
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 17:56:24.2726
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: r/gOabhcRYJdm8WZTUAM/0KMC1KbHo1lQFzyjYgiAGBSnvlukIQirYX42Wi7sr/8sPxx981HM0U427GkH9UKZrjQnqdbdL/88OFkYjEk44Q=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR03MB7282

On 26/11/2025 4:55 pm, Andrew Cooper wrote:
> On 26/11/2025 3:07 pm, Jan Beulich wrote:
>> On 26.11.2025 14:22, Andrew Cooper wrote:
>>> @@ -1075,6 +966,112 @@ static void cf_check fam17_disable_c6(void *arg)
>>>  	wrmsrl(MSR_AMD_CSTATE_CFG, val & mask);
>>>  }
>>>  
>>> +static bool zenbleed_use_chickenbit(void)
>>> +{
>>> +    unsigned int curr_rev;
>>> +    uint8_t fixed_rev;
>>> +
>>> +    /*
>>> +     * If we're virtualised, we can't do family/model checks safely, and
>>> +     * we likely wouldn't have access to DE_CFG even if we could see a
>>> +     * microcode revision.
>>> +     *
>>> +     * A hypervisor may hide AVX as a stopgap mitigation.  We're not in a
>>> +     * position to care either way.  An admin doesn't want to be disabling
>>> +     * AVX as a mitigation on any build of Xen with this logic present.
>>> +     */
>>> +    if ( cpu_has_hypervisor || boot_cpu_data.family != 0x17 )
>>> +        return false;
>>> +
>>> +    curr_rev = this_cpu(cpu_sig).rev;
>>> +    switch ( curr_rev >> 8 )
>>> +    {
>>> +    case 0x083010: fixed_rev = 0x7a; break;
>>> +    case 0x086001: fixed_rev = 0x0b; break;
>>> +    case 0x086081: fixed_rev = 0x05; break;
>>> +    case 0x087010: fixed_rev = 0x32; break;
>>> +    case 0x08a000: fixed_rev = 0x08; break;
>>> +    default:
>>> +        /*
>>> +         * With the Fam17h check above, most parts getting here are Zen1.
>>> +         * They're not affected.  Assume Zen2 ones making it here are affected
>>> +         * regardless of microcode version.
>>> +         */
>>> +        return is_zen2_uarch();
>>> +    }
>>> +
>>> +    return (uint8_t)curr_rev >= fixed_rev;
>>> +}
>>> +
>>> +void amd_init_de_cfg(const struct cpuinfo_x86 *c)
>>> +{
>>> +    uint64_t val, new = 0;
>>> +
>>> +    /* The MSR doesn't exist on Fam 0xf/0x11. */
>>> +    if ( c->family != 0xf && c->family != 0x11 )
>>> +        return;
>> Comment and code don't match. Did you mean
>>
>>     if ( c->family == 0xf || c->family == 0x11 )
>>         return;
>>
>> (along the lines of what you have in amd_init_lfence_dispatch())?
> Oh - that was a last minute refactor which I didn't do quite correctly.Â 
> Yes, it should match amd_init_lfence_dispatch().
>
>>> +    /*
>>> +     * On Zen3 (Fam 0x19) and later CPUs, LFENCE is unconditionally dispatch
>>> +     * serialising, and is enumerated in CPUID.  Hypervisors may also
>>> +     * enumerate it when the setting is in place and MSR_AMD64_DE_CFG isn't
>>> +     * available.
>>> +     */
>>> +    if ( !test_bit(X86_FEATURE_LFENCE_DISPATCH, c->x86_capability) )
>>> +        new |= AMD64_DE_CFG_LFENCE_SERIALISE;
>>> +
>>> +    /*
>>> +     * If vulnerable to Zenbleed and not mitigated in microcode, use the
>>> +     * bigger hammer.
>>> +     */
>>> +    if ( zenbleed_use_chickenbit() )
>>> +        new |= (1 << 9);
>>> +
>>> +    if ( !new )
>>> +        return;
>>> +
>>> +    if ( rdmsr_safe(MSR_AMD64_DE_CFG, &val) ||
>>> +         (val & new) == new )
>>> +        return;
>>> +
>>> +    /*
>>> +     * DE_CFG is a Core-scoped MSR, and this write is racy.  However, both
>>> +     * threads calculate the new value from state which expected to be
>>> +     * consistent across CPUs and unrelated to the old value, so the result
>>> +     * should be consistent.
>>> +     */
>>> +    wrmsr_safe(MSR_AMD64_DE_CFG, val | new);
>> Either of the bits may be the cause of #GP. In that case we wouldn't set the
>> other bit, even if it may be possible to set it.
> This MSR does not #GP on real hardware.
>
> Also, both of these bits come from instructions AMD have provided,
> saying "set $X in case $Y", which we have honoured as part of the
> conditions for setting up new, which I consider to be a reasonable
> guarantee that no #GP will ensue.
>
> This wrmsr_safe() is covering the virt case, because older Xen and
> Byhive used to disallow writes to it, and OpenBSD would explode as a
> consequence.Â  Xen's fix was 4175fd3ccd17.
>
> I toyed with the idea of having a tristate de_cfg_writeable, but that
> got very ugly very quickly
>
> The other option would be to ignore DE_CFG entirely under virt.Â  That's
> what we do for BP_CFG already, and no hypervisor is going to really let
> us have access to it, and it would downgrade to non-safe variants.

In fact, ignoring the virt case for DE_CFG makes this generally nicer.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 18:51:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 18:51:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173341.1498392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOKbY-0002hH-D9; Wed, 26 Nov 2025 18:51:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173341.1498392; Wed, 26 Nov 2025 18:51:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOKbY-0002h9-AG; Wed, 26 Nov 2025 18:51:04 +0000
Received: by outflank-mailman (input) for mailman id 1173341;
 Wed, 26 Nov 2025 18:51:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fSqE=6C=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOKbX-0002h3-Je
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 18:51:03 +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 d8c12747-caf8-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 19:50:59 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB5941.namprd03.prod.outlook.com (2603:10b6:510:34::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Wed, 26 Nov
 2025 18:50:56 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Wed, 26 Nov 2025
 18:50: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: d8c12747-caf8-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bgbGdcdptSvpWIzgrTauoS8nPP+kKFxko1aoJ/oAzXv1UxeXr7exCjKiY3vX7XSruKuwxEvAhmph77GDK37bZYzEG/8P85b54tw41NnUFCM/nZ3F3uRe9pPNSuJahkoRj5EG7jawFeYwauEmQ5qvZ/J1xDXBXepCpTm6yiN+N75gLe9n10beLxL8IagVNAkgXygM2yrW21KB9OUpSL5sKABdpPfOYMwoGzx1jB/zeRrl8hMGUyiw80tfuM22GD3NIzHj9feZPWss0aiKMKSNc+oEfQrcBxNCxrnCc57DUwHUg1B30fj2uO9nVdxGBtQk/HGmpqjuDPa+bJd6Q1ztpA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RoRvJbywSJgXWI4WwvVAoe68OPTq7IFqIhXXUwEwflk=;
 b=HVH1XIXkAB6Brf5DDDmGA8Ay1ECwBP3nH9OuIoa4nY3Gnm31P8Ld1OFhMyG5UxyF9DhOw0bjSgv2bfzW6j1BhE5il+plf6tXG/cAiWJWsgKsSrywtzP+QllUjZL/jKLJbg+Q3QiM58B5pLQf/+3OpbTzfXyR7QY5bBn2Snf7YuGw+GuiTDaydgTqtiTBaPWRPYmxow7JJAJANbbiJY/qjt0Wfl8Byp1ieD8ynGolQSA96qnOR0Bog+Yscrp+AWtwgs8sd2lcv8W8QhzkgJyHl2OTTE3KHwXKhpx8V/h6kuikUl2p8FiLaPu/slyUf2HRpwRv6av++x4L8txl2kywSQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RoRvJbywSJgXWI4WwvVAoe68OPTq7IFqIhXXUwEwflk=;
 b=T2til7J+tQNsiEH3hLUDBqc0DqQ8a0yiYiNtlKePAw8uik2fY7WhOE2sPSCQsojzX27aF21aM6X8gnBBR231okzB9mNA6pYQewlpy889Amiq5FhO8ztitBr5QW4McexvLFwGztyrPkmMMk51e5VyHX9uV8IWUBBLAO/A+eUIyUc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <0b20af96-bfef-43b1-a22a-db85a18b849d@citrix.com>
Date: Wed, 26 Nov 2025 18:50:52 +0000
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 07/10] VMX: support MSR-IMM
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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
 <1404b901-0821-4e8d-82c7-1eebd8ed4daa@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <1404b901-0821-4e8d-82c7-1eebd8ed4daa@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0169.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:312::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_|PH0PR03MB5941:EE_
X-MS-Office365-Filtering-Correlation-Id: 996d1224-226e-4f13-a7b1-08de2d1cbb0f
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?ZzQwUWoyRzlOR2NVc1Rvd29nL3RORlhZM3VzQXBxNitzMkNIZ2ZoUFNUcHpX?=
 =?utf-8?B?OFhTSWdZdVc4dG9leFhTZkRPWnc5bVc5T1orWDZxdTRsZHNVM01WZTJCYjJo?=
 =?utf-8?B?YVArZDNReDEyZHR6bmdMVjI2aVFQUVJPRzBFb1Q5b0RFR0J2NEJmckMrUnh4?=
 =?utf-8?B?ek5OWEt3TlBXM0JobEUvbzhjYUgwZ0g5UWJJdHBsbVZPaXV1WDFwWHlhZlpE?=
 =?utf-8?B?SEdiNFFCbXh4Qk5ucGtmelVzZWk2VjlSZHhJcUJ2NjBvMm1kekh2UThqNW1Y?=
 =?utf-8?B?c3JLbUk5aHRkNTVIVjhrRTh5QUhIaVRaM29CcWs2Wk9ZbDlpdEJ6VjBtVVVr?=
 =?utf-8?B?Q2VSWHBrc2NqMDdWOU9Zc3RnWmIrN1YxTVRPMHg1RkJPOEh1WEVLeUdhY3U4?=
 =?utf-8?B?ZkJDYnorSXB0cy9WWUVsWEkrOUdpNmtvY2lIcGowanFPQXBTd05DcTIvQ2k5?=
 =?utf-8?B?SDBPWllmKysxNVZkTG1EdXZMR1g4RjFQSjl2QWtzbEo5ckFqZGVPRHJBOTJi?=
 =?utf-8?B?YmltNS9QZkNCc3JHV2tvYXM5QjRJSG0wVmFXd1BFNVJ2WkhnOUI3eEJsM3A1?=
 =?utf-8?B?NkNNWVhKSDMzbm40OVUwRGxYME9lWU1oanVoMnBKNFRtYlBMQjRPTitvWHpn?=
 =?utf-8?B?MzV1NERMa0NtOHcvTUUxWmFaMVhSZWtic0ZYRTVBTEdSL0pNN2xYTmhVUU5x?=
 =?utf-8?B?blc4SnFIVnZ0TlNHRTEwSU5QSVFhZWR6QVFadFhVZndjSWVXK2drTXZnNEJl?=
 =?utf-8?B?ZlBJeU9OUEpLTmhoNlIydW5Sa0U4T3ZBamp6S1pzNysxODl1Y3c4TVZTcGx6?=
 =?utf-8?B?UHVwbmx3YnRBMTJjc1RBVHE0cDNOdGFpelIvSGgyMjNmcWlIUlBVdzFQNURV?=
 =?utf-8?B?V1RsY1VqbGZWYlpZcWJ4My9CVW1rc1Q2NHllWUYxcGFFbDV1NzJjYnUzbnRN?=
 =?utf-8?B?YXdIWFZWbGJJRmpCekFuM3JwYjVZZVZoU3RmcGZPL2hLYXBXYXd6ME9LZlh4?=
 =?utf-8?B?K1MvZDBqUTdWVTBRS2lPQW5CTVJrSWhicjlCMnBNdWsxM0x0aUJDblFPWmRy?=
 =?utf-8?B?dVNJbUdTRHhtV2hVdS9QTGhLb2IrTkpGMjRaY0Mza0dSMWxtYTlPZWJCOVcr?=
 =?utf-8?B?Zlp1cjkvcWRTS1hWdkZJUGNER2hFRHE2L3MvbVZ6enJEUWYvdnE5bVhXU1JO?=
 =?utf-8?B?YXEvZ0F1c1pPNS85YzQxc2FNRFcxQkdiaE1IalF5aUFzQ09nZDU3UnVLWjhF?=
 =?utf-8?B?VUtiMFF0QjA5SkpacFlTOG9zbHhma0pGRlM4MFBJSWZwMWd5eW1wSnFHRktI?=
 =?utf-8?B?aUxUckZEQ2oxTE9iSlF1NHBQWERTd3A3dUY4WkxmL2lrS01kZW5XQVFmN1Ir?=
 =?utf-8?B?TUppNGl6NTJDNWwyeTE5RnNKSGFwWWY3VzNmbFBVK3p6S2t1ZElQZTdZblNU?=
 =?utf-8?B?WmpkcVJIeituS2RjRFREMjRFK2Zodzl1bE9hNU8yYzhycWVMUHFoRHBsWEl4?=
 =?utf-8?B?d1dkalA1aWtkUTRwYmUzcXlaYXBib1RzQ0JybG9hQ0t1TkpObnhXMGFobVhn?=
 =?utf-8?B?d0dya0oxZWVnSFZxWWsyRStoTlYxNEl0TmlwN2xpQnVlY0paeERpd0FGL1lm?=
 =?utf-8?B?cUc4dGVBN29wS29yTUpuZ2lGaHJCbHowa3lSTFhFSDNaVGYvWXowTGlVTjhN?=
 =?utf-8?B?K2FqQ0xPQmxPU01IZTlzY2ZYcCttUzhvR3V1U2laVmRYc1U0MzBYT2QyNzVh?=
 =?utf-8?B?L1Q3Vm1hL3VYb2JrcVozMUdKSW9na2hLV1BjZllYOUQ0M3pjZ0h0RmFjUTVh?=
 =?utf-8?B?dk80N3pUVnowOU4wZmg3ZjZEVysrdVdlZXdscWlDVWszazlLR3pDNVBhKy9Y?=
 =?utf-8?B?K0svVzYra3NwemZobzJDNVk1VGk0bnowQlJnd1BrN0l1MWROWHRrQ1Nob1hL?=
 =?utf-8?Q?4d1x/ng3dW3jq7RuRHReRqnCqtstk+cX?=
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?QzBDMG92Qzcrc3VhUlZBd1MySXJHWUZaYm9GL1A1b0swVWphU2FsM1FtNE8z?=
 =?utf-8?B?UzBDTmpId0NENU5VT1c0cHlscktLWXl2Z0svRVpWWU92aDNxTXZleE9OMmo3?=
 =?utf-8?B?WmUxMUo2NzZSQmh6S2g4ZmVVdG5HY2ZOZHV5UVNROG9kQVJVK1dkZmdHSWd2?=
 =?utf-8?B?MjJVcTZ3d3pVMnNBTUhNR2xxeVkvcmhyUzJNVDR2Uk5xL0dibFlhMEs4RXdM?=
 =?utf-8?B?enV1Tm5KQlhlUGxOVnZLQUlxdGNpV3NaZEJzZjdDN2Z5T3NpWE5sbWM2S2JF?=
 =?utf-8?B?dy9xV3BnWnZ1NTBORjJlV0ladmg4YWsvU3pJb3hVZ3JPR3F6bGxOT1o2VWVQ?=
 =?utf-8?B?RndGN3ZEL0tPSWEvcjYxUGQ4K1RGcThiUldncDBxeW1IcDZmOHA5MTk3ZG15?=
 =?utf-8?B?Ykk3L3VqKzFtSTBCOGVJWEVHandDc2FVSEpnMDdDbXlVRlJGRHpmWHpJSjR3?=
 =?utf-8?B?ckJFd3E1L282ZW5udzBWdW9telBxV2FGUnVYaXJRUGtXUmQwTjlGS3ByZVZj?=
 =?utf-8?B?dEM3d1N6ZkRVU3FEZDUvMFJRanhKTG4yS01oVFhoQml4TjZmVVB6Y2pTSXRG?=
 =?utf-8?B?QUptYlhpN0lIckVEb3dybW0rOVlSaG02Y2hmNDZ5bjQ3WnUxdFoxVU5nSWlR?=
 =?utf-8?B?SFRNM1RHMjBRblJSZy9JTnUzeTZVajhVV0QxR1FoZmZBSDNLMEJVWmxjMnBq?=
 =?utf-8?B?UTBnbVQvQllhckdocW9rdFA5ZkVNTm1ETXlJOGFndll4aUJLci90WVRiUGFu?=
 =?utf-8?B?UmZaQnB5bERMYWcrM011NlFlZ0h1RDhTVTZGSmFlVkhaalRmZGdnT3Z3T3BX?=
 =?utf-8?B?YXRJNEs4dmJoaHU4M25RZ2FqQmxJbUNNT3BPS21hb240cnl0STZTTHJsKzFJ?=
 =?utf-8?B?TU1MYlhrbjFwbXRSNzNPMHZhNUlQQk14UGw1aXU2OUJGSS94THErZ09WeEtO?=
 =?utf-8?B?K3d0ejBjSDUrSSs2QXNKZlZoK0RyZE1mN0xwZU5tbk82U0x0Z3VIR1RmeTlw?=
 =?utf-8?B?YjlPdWZmYnZhL0JKZlRMVTQwcnlqL1F2eGgvblF6Z24wazhRM1lscEswemt3?=
 =?utf-8?B?NjBaZ1lwbFlmZ1ZFeWJxbVFPZG12a1hqOStzZW50bEJ2eUlLaXB5MmRQZDZq?=
 =?utf-8?B?QWVaNVIvMEg2eU1KZWU0eVpldEM3ZFV4clRNSTF6SUhuSkNtTXNMMklpL2NL?=
 =?utf-8?B?OE51WStmSE5mTDhndVMzeGZzNEJDZ2FOR3V5T3NkQzc2aWlBMjAwTjRSZFMr?=
 =?utf-8?B?cmxSU28wZE1WYktkd09seWEzTFpuM3h4QzN1MXZib1orNkg5RUJIZkNuaVEv?=
 =?utf-8?B?Z0pFM0lRQW9KMGZuY29nZDZRY0h3QjNPaEJMaTBWNEpZMXBVZWRhQm9lYkpj?=
 =?utf-8?B?OTRLczhQcDJlZmhFaldKaVdEd3hqdi9tcWhYZ01uVlZWeFE4R3N2NDg5WHI4?=
 =?utf-8?B?ZHBhR3JMZ3F3TEJqdElvNWpIMHZjQlpvSHk1NHVBV09uTlRWVERpUmpVR3hs?=
 =?utf-8?B?YWJ0SkhsSGJ5ejIyQW8xREhGcTlKcHBBS05QWXN4VlV2WTljTWx6Zm8yNkd1?=
 =?utf-8?B?WjVxRnFySVE0dHJyU3o2ZEVxdzFmTFRoaUhpVE1USkdST2l5Qjd0ZVNVSXdF?=
 =?utf-8?B?N1dHdkVMRUppSTVGQjZCendmcHNDeXRDUzB4WXNjaUhjNnRxMGcxTGo2aGJM?=
 =?utf-8?B?TWkzUGVVaDQ4ZnZjWTJJNnlVdE5oNDNzRStMVzNVMjNPNzd3TXlEeVBhdDR0?=
 =?utf-8?B?ZW5lSURONTJ5QklubUIrMGRGMW5URHp6K3UweUxZVTJIejcxZCs2bGZicnN2?=
 =?utf-8?B?TFd6eEN4cXJYbE56TlVlSG1zREY1UDBFalFYbHArc05JdjFuT1dmd0pKSzZp?=
 =?utf-8?B?TlBWRk5rbmZXeHZRa0Z6cFhDS2tmc1NOdHA3bHdFM2RJdGNFWUV2Q3ltdWxQ?=
 =?utf-8?B?MDdzVkE5YTVkRzdSRHB3T09oUTdSNjNuQUJiVE1KU043NEJuN3FpZmU2NjN4?=
 =?utf-8?B?VldodGpESUdVU0JEQ0E4K0dYY2VSZFlTaEtvbXdtVEc2Q01GUno3cjZESTJp?=
 =?utf-8?B?YldWU1Fiamxobk9zdloraG0xWjhtRXR2R1E3OXRzc1BtQVlpUjN6R2xnV1hJ?=
 =?utf-8?B?aVU2NndFK0M3bUNZeTVSYzk4aW9HeTV6aG1wYmp1aXV3bFM0U2Ryekcwazl4?=
 =?utf-8?B?bmc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 996d1224-226e-4f13-a7b1-08de2d1cbb0f
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 18:50:55.5484
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: sWRnzkf/1cHKkHgAWceC2MPgPyTL79DlbPzLunODwdEU0L85Ct4aHNiZmfsJuEYisggPpLSejp9mmGJQcVKk/7B/YUjXXlikAMdYl9nVkLA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB5941

On 24/11/2025 3:00 pm, Jan Beulich wrote:
> Hook up the new VM exit codes and handle guest uses of the insns.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> v9: New.
> ---
> The lack of an enable bit is concerning; at least for the nested case
> that's a security issue afaict (when L0 isn't aware of the insns, or more
> specifically the exit codes).

This is why we need support statements of new CPUs.

Intel say that unknown VMExits turning into #UD is the expected course
of action.Â  That covers all of these cases which don't have an explicit
enable.

This is better than our current behaviour, which is non-architectural
for supervisor code and practically the most unhelpful course of action
going.

Obviously, logic turning on a new feature is expected to handle all the
VMExit cases it can produce.

The corollary for nested virt is that L0 must never make a Virtual
VMExit with case that isn't enabled.Â  Combined with #UD in the unknown
case, that covers things reasonably well.

> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -453,7 +453,7 @@ void domain_cpu_policy_changed(struct do
>      }
>  
>      /* Nested doesn't have the necessary processing, yet. */
> -    if ( nestedhvm_enabled(d) && p->feat.user_msr )
> +    if ( nestedhvm_enabled(d) && (p->feat.user_msr || p->feat.msr_imm) )
>          return /* -EINVAL */;

What processing is missing?Â  (Aside from correcting the unknown case.)

>  
>      for_each_vcpu ( d, v )
> --- a/xen/arch/x86/hvm/vmx/vmx.c
> +++ b/xen/arch/x86/hvm/vmx/vmx.c
> @@ -4762,6 +4762,7 @@ void asmlinkage vmx_vmexit_handler(struc
>          break;
>  
>      case EXIT_REASON_URDMSR:
> +    case EXIT_REASON_RDMSR_IMM:

Instructions which aren't enumerated in CPUID have reserved behaviour.

The exit handler needs to check cp->feat.msr_imm and inject #UD.

It's not perfect; un-intercepted MSRs will happen to execute correctly
on capable hardware, but most MSRs are not intercepted and it's far
closer to adequate behaviour than omitting the #UD check.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 19:19:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 19:19:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173350.1498402 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOL3I-0005lC-D6; Wed, 26 Nov 2025 19:19:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173350.1498402; Wed, 26 Nov 2025 19: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 1vOL3I-0005l5-9w; Wed, 26 Nov 2025 19:19:44 +0000
Received: by outflank-mailman (input) for mailman id 1173350;
 Wed, 26 Nov 2025 19: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=Cuhx=6C=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1vOL3H-0005kz-E8
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 19:19:43 +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 db6593d0-cafc-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 20:19:42 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by SJ0PR03MB6950.namprd03.prod.outlook.com (2603:10b6:a03:418::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.11; Wed, 26 Nov
 2025 19:19:38 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::c0cd:bcd1:5235:66f0]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::c0cd:bcd1:5235:66f0%7]) with mapi id 15.20.9366.009; Wed, 26 Nov 2025
 19:19: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: db6593d0-cafc-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jD4GBj3NWDrh9x/rvotRUCQN1v5TR8xiI2ENykNmgh+z+6Vj/xw9gK1dJrCjWGHZqSnDa7XX7NGF/dyho613r+ZbBfEEUnvKOIW+y9DGb3Vj42sCAeag1DfOPEs7LZdtOZWnKQxOD8NSzu0UZxneRl2NX3dq793F7MBErjZi1moI758HRlxg+J1coNt/784L/hETZ2c5NPdjKauqXPtBbj/nCCzUd4Xnf0OHhAaJ+VJYrYmp/joDfjfdylfT/Drz/d+o/37Xem9rQkxGI01Z1uctl4R+LEbuhHeVT/5YOg60PrLQgqRFNkg1rqpt56eXK0KqqXp45wZFPCJUXBXyOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BE+ibRSG8wXu9ibV6TMSwMpVps6UBzohxyyyaAcoQAo=;
 b=Fmuselvd3RrQWxnjVgmZVNqnCJqEQMYr2YtpaaF2Ns+s1ml01462R7G4068IMYpC/h642sziGEhkzc1gj+e7cyum8WaymvNYVL/YJkm0xPwGpmoI6lUsOQUWPXD3uCXFLOl6aWLYEg/xIJ8N1PLDlcpbHx6QEO8zKrKfrSD22H9NcBU/X36OEgLqG7RhKUZauleQWqn8nShFcvLNl2yR8V8RJYnfIlNYJWpuub85WgLjpCcIxPOfruqvX6iJOjJ1K3oQTUFT8HQ0xmv7DWowelPKA2eIdgDX+U7844kwd/TmxRm9eft2x7qvS0F/rYbeoqyD4fAuJYUVrrWZHzA8MA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BE+ibRSG8wXu9ibV6TMSwMpVps6UBzohxyyyaAcoQAo=;
 b=tz3vjEinGD1BIJg5oBD/TPjWQ7Y0U4VKB1qhTuGoEaCHHWE9lc+sIhu7+XaQtZaLtuLa3fYCXyw6vAshtcbYV66dLvfd9FXWW9mqjoLmQ1mxmSGTFjqc2x5tfsV+0HunCpD5vxDYyW8XSNaDzfXQezwOtjS/8wFVECP0kA673Mc=
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 v3] x86: Remove x86 prefixed names from cpuinfo for intel.c
Date: Wed, 26 Nov 2025 19:19:45 +0000
Message-ID: <20251126191945.3386781-1-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO6P123CA0035.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:2fe::8) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|SJ0PR03MB6950:EE_
X-MS-Office365-Filtering-Correlation-Id: f44a8af4-cd0b-4141-f2c1-08de2d20be1e
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?BZOOV0M+3gLFX5AphnkJViuZPGrhnEUzPXEKd0DMegvShBaPud5cWhuqx5lw?=
 =?us-ascii?Q?L1BYh+t7xuGZQkTDMe4Ex3THjMURlPAEpw/Z5LtPQp8fieD0dlSgR9ZiIsFR?=
 =?us-ascii?Q?z9+aEPtnVpXwvoTINA42E23oO/FovOAbmlQp0aqd9EjdwX6VYhMWYUR5HeIG?=
 =?us-ascii?Q?mu0PyFBOc4MG5+XgeD0Acc4oOrcsXaoXeUoCL7i+a/dX+ljyu0pT4iV1fK8H?=
 =?us-ascii?Q?IUNsMC/UQtAhw87Lp2sudW5w61Nu8aWAWumnEIhWktwrjlNkkGRqz4+a96P9?=
 =?us-ascii?Q?l36Y8a/MCKlX1Pj0aMYxwgUsSLFg1Mz1uwKyABo1td6gffQ6hj3iHuli9Yov?=
 =?us-ascii?Q?MlemIbJHsu+9daKal4WULJZmzd8tYAcA+gFzoW418scJftxwcL0U/ZgzRpoU?=
 =?us-ascii?Q?mtlDYOZDhV8WavLYSwU1Fs4BI7Tn+CWparTH5jfY7dIWL38hOv+ufpne9mX5?=
 =?us-ascii?Q?wK5XtYbcmwWoh2EgKmz8+SRY9Ih8d5V49TzsCxdFz8O5+snFDWwWpsRQZOqJ?=
 =?us-ascii?Q?autsboFAdRDJ2M3uoYTjElLD3Ykw6Wyhj4U0HE/W+czI/5T9lUw5FW5nO237?=
 =?us-ascii?Q?Y6NUPgsFAJ9ykgh5sJHzRyfTkuOejIzfTfDoD+Blz6a6/oR59Jv9G4P+ZNve?=
 =?us-ascii?Q?niohEbCakrMb/9nSvcn08GAU+inHYq4UzYyPvtGve5FLBcVDQ51M6bGyp6z8?=
 =?us-ascii?Q?PRiHSpw3/PcyZ6pzSQcUcZtpZwWnTXmrV0maiI2SreNU2cbYtJcEr6ijZxRR?=
 =?us-ascii?Q?UxYzdpz3JYNQtLnQSobWeZWAYEXRNbQW+WKhL7V5s+1qYVkXTeKG3iD298Lx?=
 =?us-ascii?Q?juGEmZnYJdFq8yL9W3nAjLL2RKiOhxtnmTLuWQjIcj2B4R1HDpuBTK7dAPey?=
 =?us-ascii?Q?EvAfYJ9RAsfUem0li78rKrt4OEQ+9uPaTbboIicaM1GE5NM4rZOGK0zSMPuA?=
 =?us-ascii?Q?OLu8reVvktmiedK65Bh395RVpKMiYoJjFmpN3xQKrOortXSxX1tvoX3XLfy1?=
 =?us-ascii?Q?1Am4R8YMGa76pmKNNOzFydw9WGVoqa8B9+YJwhUgxcY7i9iQ6ToAH0Hpd+zF?=
 =?us-ascii?Q?sxisOdI34Dt4XUiwh4S3Z6PPY3OVJ6d3NB2oVAC/XTcQUx1dqIp40fVRjscQ?=
 =?us-ascii?Q?ex+NqFfsCDZVvPZSKRS5KQgiPM0X1tLv13TlIWhfeHIkp2siDQQuDPp+WyyX?=
 =?us-ascii?Q?CSBcTay1TO9Rvu6SfeL2VaP3B70j+bGIFEGT1RgJoue8yleGnAqb+1MYD0sU?=
 =?us-ascii?Q?CWb5KxD+HQfwW/h3yUn34rjnp+KTPp3tzKgtvkLjOoY3St3InCAQlzk8+1LN?=
 =?us-ascii?Q?u0oWFecwvZLCDR8Hz1zGMUsdLoakrFuiPdgTqiym211lH5bjkUeDz09fZKFC?=
 =?us-ascii?Q?Gi3nFbktQjL2gtw5F0hY0uLlPg+v5fD/Zf9tRe38XcVl50hEyB5Pa6bnqf1A?=
 =?us-ascii?Q?0eOTLbi5JWJJIfU677xO90Fav+AYX4mv?=
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?VcJ/M9JSUbsYjn+3C8/Q7SwgxuTLgMBmoiUXJjItf/GhffHjUeZZZdKu19nW?=
 =?us-ascii?Q?F0STHVCkaO+wdnBvRQ7NwBtiRQAK1QBpgQF0ZtvGNB+YGpo6fr8cOlKDN6k6?=
 =?us-ascii?Q?m6c0BHWKDD5g2UJcLSX0M4RT+e5efnCAA4ZyeTLL/5t730AhBODNEjWdMdqD?=
 =?us-ascii?Q?tEzCFo1ika9ACDLohSEuxlzkLTGV1scke75PeZKWM8MGeBuJqjA8MAA6QOVu?=
 =?us-ascii?Q?BpSjrCOHVlNCEnZDsmCERX634IbVvWBJ/FKh7svniWBPoJNOja2AhsnpUwQX?=
 =?us-ascii?Q?PB7sRoWvB+fPbb3pCCmEvBMXGhgQxCcSR71zjPDwSX1D3j7Ffd2D0Pooo3VM?=
 =?us-ascii?Q?8Ng3TmKMoqt5yjAfZF1owYJNw1fIbf8ZiqR1figCzZzpgqwwlROScdd4xiIk?=
 =?us-ascii?Q?vfHvDeQcZjFGcuYhP3wmF0X4mqn3VoG5ncI6IzQKOIMoEaKmLyfd0iVzEfWo?=
 =?us-ascii?Q?lPpE9dbR33peY7vmB2yFdjxOcmPstqaCSggAmcyQ1GanpwumAKum8HIhO5g6?=
 =?us-ascii?Q?DuCTwBy6vVQd/EUlTjpLBv1nIRvLr/N5QsFofnFwwaHagg4Gr1CIFIWmjqp7?=
 =?us-ascii?Q?dJsbg3bVwXOO8fgsnQ8KDTl9Tfjn9ZGpGuqlB9cIZajEtT9IlNyaEOOClTAS?=
 =?us-ascii?Q?9t3BlvO9XGPF540MEXDYwNoWea0D4rKj8flKrbvkpauIz/chm8eNhGA3Xs1Q?=
 =?us-ascii?Q?lTC1gV2BLJ/f9qHmRM2Z8kDwys1AcGAHYtGK907UJfkWtovRvWgsyh9maUwB?=
 =?us-ascii?Q?vur5O7uz/WhurHy6KF+QCURywjV4UfbNR3Xgd8htoBlQ4CvC74nZoB7HiBZb?=
 =?us-ascii?Q?ZBazxigtkYhX+OO7v404co0i2KQJDS5v/LIzvRCAAstMkReszWT/6g5lhyk/?=
 =?us-ascii?Q?QUlWCdSrhGJfWqICHWac+KHdig2Oniqh7biM/4nk59PwHiY/uY81Vqv5e7Wq?=
 =?us-ascii?Q?/p9g5A7cfXBzoJIWObvciVq8uZbdGswfydcdGQc5iWYhSj6xTbbKzY4pfmQL?=
 =?us-ascii?Q?V1ajyFyT230+z/eR7ekU+CFb62p9gaqUJiOgPN/VGTyoGAv0j/qgzp2+Vv96?=
 =?us-ascii?Q?RJnWwSQQQAbWzkkvPvm3pLBJLO0D0ZFj9/Rx74uiDn+veib13L1YXMX2u/rt?=
 =?us-ascii?Q?UzceWBdKQ8EFFjz5hjJTNxwCWIwjEmt8RQNNno/+OiiS32b7P8BJTABJHRLi?=
 =?us-ascii?Q?Wsu2dEUGWhzcyyqCiwImiVA5hxYnCiAALuYj8C9daJ+o025A0YWvIiLEuCJ4?=
 =?us-ascii?Q?iRHQUVRZUF9PaUMJK3HYEWngAkGGKbRE+3f4/4u8gUu/yXgC10/Y/VQvWBnO?=
 =?us-ascii?Q?9tKzOCe+KitPuYtgy/G8BqtQVrOeUtx4GpzR4J70GiZX7twg5KY3V0bYqXSq?=
 =?us-ascii?Q?JYfuHTOpHGuDZ1jt/YdqlcoXN3Ln5FGeYlB5Ar6KflGW9d83fvJlU3j8ATBb?=
 =?us-ascii?Q?Oz0StSQbFrAZeTJ0FmWOf6B9SKHfhmZCFOPaiywAjALYtbhk6+xk3B8lbCj5?=
 =?us-ascii?Q?huJCBW2so8WJPtUhvj2fzhD6NId7KzHsWybUopeM+FgAvv9JJigyW/ZsKdtE?=
 =?us-ascii?Q?Oxdw2xvJJScVDXIxVsM/GeOHdU+RzvPL/6Fg1CcH?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f44a8af4-cd0b-4141-f2c1-08de2d20be1e
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 19:19:38.5962
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: aSx7TY1M4DxCqqxG5DEitIibQo95vWBMLT2nKE972HPL9Ha6qIzdSkkYR3twhyg/7GJ6gqBkpKtC0UrdI1VVfg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6950

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
Changes in v2:
- Convert the two switch statements in probe_masking_msrs(),
  intel_log_freq() and check_memory_type_self_snoop_errata()
- Requested style changes

Changes in v3:
- Re-order the CPU model names in the switch statements
- Better style changes

 xen/arch/x86/cpu/intel.c                | 99 ++++++++++++++-----------
 xen/arch/x86/include/asm/intel-family.h |  4 +
 2 files changed, 61 insertions(+), 42 deletions(-)

diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
index 6f71365b7e..ff20f5667f 100644
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -86,18 +86,19 @@ static void __init check_memory_type_self_snoop_errata(void)
 	if (!boot_cpu_has(X86_FEATURE_SS))
 		return;
 
-	switch (boot_cpu_data.x86_model) {
-	case 0x0f: /* Merom */
-	case 0x16: /* Merom L */
-	case 0x17: /* Penryn */
-	case 0x1d: /* Dunnington */
-	case 0x1e: /* Nehalem */
-	case 0x1f: /* Auburndale / Havendale */
-	case 0x1a: /* Nehalem EP */
-	case 0x2e: /* Nehalem EX */
-	case 0x25: /* Westmere */
-	case 0x2c: /* Westmere EP */
-	case 0x2a: /* SandyBridge */
+	switch ( boot_cpu_data.vfm )
+	{
+	case INTEL_CORE2_MEROM:
+	case INTEL_CORE2_MEROM_L:
+	case INTEL_CORE2_PENRYN:
+	case INTEL_CORE2_DUNNINGTON:
+	case INTEL_NEHALEM:
+	case INTEL_NEHALEM_G:
+	case INTEL_NEHALEM_EP:
+	case INTEL_NEHALEM_EX:
+	case INTEL_WESTMERE:
+	case INTEL_WESTMERE_EP:
+	case INTEL_SANDYBRIDGE:
 		return;
 	}
 
@@ -137,28 +138,29 @@ static void __init probe_masking_msrs(void)
 	unsigned int exp_msr_basic, exp_msr_ext, exp_msr_xsave;
 
 	/* Only family 6 supports this feature. */
-	if (c->x86 != 6)
+	if (c->family != 6)
 		return;
 
-	switch (c->x86_model) {
-	case 0x17: /* Yorkfield, Wolfdale, Penryn, Harpertown(DP) */
-	case 0x1d: /* Dunnington(MP) */
+	switch ( c->vfm )
+	{
+	case INTEL_CORE2_PENRYN:
+	case INTEL_CORE2_DUNNINGTON:
 		msr_basic = MSR_INTEL_MASK_V1_CPUID1;
 		break;
 
-	case 0x1a: /* Bloomfield, Nehalem-EP(Gainestown) */
-	case 0x1e: /* Clarksfield, Lynnfield, Jasper Forest */
-	case 0x1f: /* Something Nehalem-based - perhaps Auburndale/Havendale? */
-	case 0x25: /* Arrandale, Clarksdale */
-	case 0x2c: /* Gulftown, Westmere-EP */
-	case 0x2e: /* Nehalem-EX(Beckton) */
-	case 0x2f: /* Westmere-EX */
+	case INTEL_NEHALEM:
+	case INTEL_NEHALEM_EP:
+	case INTEL_NEHALEM_EX:
+	case INTEL_NEHALEM_G:
+	case INTEL_WESTMERE:
+	case INTEL_WESTMERE_EP:
+	case INTEL_WESTMERE_EX:
 		msr_basic = MSR_INTEL_MASK_V2_CPUID1;
 		msr_ext   = MSR_INTEL_MASK_V2_CPUID80000001;
 		break;
 
-	case 0x2a: /* SandyBridge */
-	case 0x2d: /* SandyBridge-E, SandyBridge-EN, SandyBridge-EP */
+	case INTEL_SANDYBRIDGE:
+	case INTEL_SANDYBRIDGE_X:
 		msr_basic = MSR_INTEL_MASK_V3_CPUID1;
 		msr_ext   = MSR_INTEL_MASK_V3_CPUID80000001;
 		msr_xsave = MSR_INTEL_MASK_V3_CPUIDD_01;
@@ -191,7 +193,7 @@ static void __init probe_masking_msrs(void)
 	       expected_levelling_cap, levelling_caps,
 	       (expected_levelling_cap ^ levelling_caps) & levelling_caps);
 	printk(XENLOG_WARNING "Fam %#x, model %#x expected (%#x/%#x/%#x), "
-	       "got (%#x/%#x/%#x)\n", c->x86, c->x86_model,
+	       "got (%#x/%#x/%#x)\n", c->family, c->model,
 	       exp_msr_basic, exp_msr_ext, exp_msr_xsave,
 	       msr_basic, msr_ext, msr_xsave);
 	printk(XENLOG_WARNING
@@ -265,7 +267,7 @@ static void __init noinline intel_init_levelling(void)
 	 * so skip it altogether. In the case where Xen is virtualized these
 	 * MSRs may be emulated though, so we allow it in that case.
 	 */
-	if ((boot_cpu_data.x86 != 0xf || cpu_has_hypervisor) &&
+	if ((boot_cpu_data.family != 0xf || cpu_has_hypervisor) &&
 	    probe_cpuid_faulting()) {
 		expected_levelling_cap |= LCAP_faulting;
 		levelling_caps |= LCAP_faulting;
@@ -348,7 +350,7 @@ void intel_unlock_cpuid_leaves(struct cpuinfo_x86 *c)
 static void cf_check early_init_intel(struct cpuinfo_x86 *c)
 {
 	/* Netburst reports 64 bytes clflush size, but does IO in 128 bytes */
-	if (c->x86 == 15 && c->x86_cache_alignment == 64)
+	if (c->family == 15 && c->x86_cache_alignment == 64)
 		c->x86_cache_alignment = 128;
 
 	if (c == &boot_cpu_data &&
@@ -358,8 +360,8 @@ static void cf_check early_init_intel(struct cpuinfo_x86 *c)
 	intel_unlock_cpuid_leaves(c);
 
 	/* CPUID workaround for Intel 0F33/0F34 CPU */
-	if (boot_cpu_data.x86 == 0xF && boot_cpu_data.x86_model == 3 &&
-	    (boot_cpu_data.x86_mask == 3 || boot_cpu_data.x86_mask == 4))
+	if (boot_cpu_data.vfm == INTEL_P4_PRESCOTT &&
+	    (boot_cpu_data.stepping == 3 || boot_cpu_data.stepping == 4))
 		paddr_bits = 36;
 
 	if (c == &boot_cpu_data) {
@@ -458,7 +460,8 @@ static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
 {
 	uint64_t val;
 
-	if ((c->x86 == 15) && (c->x86_model == 1) && (c->x86_mask == 1)) {
+	if ( c->vfm == INTEL_P4_WILLAMETTE && c->stepping == 1 )
+	{
 		val = rdmsr(MSR_IA32_MISC_ENABLE);
 		if ((val & (1 << 9)) == 0) {
 			printk (KERN_INFO "CPU: C0 stepping P4 Xeon detected.\n");
@@ -468,8 +471,10 @@ static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
 		}
 	}
 
-	if (c->x86 == 6 && cpu_has_clflush &&
-	    (c->x86_model == 29 || c->x86_model == 46 || c->x86_model == 47))
+	if ( cpu_has_clflush &&
+	    ( c->vfm == INTEL_CORE2_DUNNINGTON ||
+	      c->vfm == INTEL_NEHALEM_EX ||
+	      c->vfm == INTEL_WESTMERE_EX ))
 		setup_force_cpu_cap(X86_BUG_CLFLUSH_MONITOR);
 
 	probe_c3_errata(c);
@@ -540,7 +545,7 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
         }
     }
 
-    switch ( c->x86 )
+    switch ( c->family )
     {
         static const unsigned short core_factors[] =
             { 26667, 13333, 20000, 16667, 33333, 10000, 40000 };
@@ -553,10 +558,13 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
         if ( !max_ratio )
             return;
 
-        switch ( c->x86_model )
+        switch ( c->vfm )
         {
-        case 0x0e: /* Core */
-        case 0x0f: case 0x16: case 0x17: case 0x1d: /* Core2 */
+        case INTEL_CORE_YONAH:
+        case INTEL_CORE2_MEROM:
+        case INTEL_CORE2_MEROM_L:
+        case INTEL_CORE2_PENRYN:
+        case INTEL_CORE2_DUNNINGTON:
             /*
              * PLATFORM_INFO, while not documented for these, appears to exist
              * in at least some cases, but what it holds doesn't match the
@@ -572,8 +580,13 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
             factor = core_factors[msrval];
             break;
 
-        case 0x1a: case 0x1e: case 0x1f: case 0x2e: /* Nehalem */
-        case 0x25: case 0x2c: case 0x2f: /* Westmere */
+        case INTEL_NEHALEM:
+        case INTEL_NEHALEM_EP:
+        case INTEL_NEHALEM_EX:
+        case INTEL_NEHALEM_G:
+        case INTEL_WESTMERE:
+        case INTEL_WESTMERE_EP:
+        case INTEL_WESTMERE_EX:
             factor = 13333;
             break;
 
@@ -583,7 +596,7 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
         }
         break;
 
-    case 0xf:
+    case 15:
         if ( rdmsr_safe(MSR_IA32_EBC_FREQUENCY_ID, &msrval) )
             return;
         max_ratio = msrval >> 24;
@@ -657,14 +670,16 @@ static void cf_check init_intel(struct cpuinfo_x86 *c)
 	/* Work around errata */
 	Intel_errata_workarounds(c);
 
-	if ((c->x86 == 0xf && c->x86_model >= 0x03) ||
-		(c->x86 == 0x6 && c->x86_model >= 0x0e))
+	if ( ( c->family == 15 && c->model >= 0x03 ) ||
+	     ( c->family == 6 && c->model >= 0x0e ) )
 		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
+
 	if (cpu_has(c, X86_FEATURE_ITSC)) {
 		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
 		__set_bit(X86_FEATURE_NONSTOP_TSC, c->x86_capability);
 		__set_bit(X86_FEATURE_TSC_RELIABLE, c->x86_capability);
 	}
+
 	if ( opt_arat &&
 	     ( c->cpuid_level >= 0x00000006 ) &&
 	     ( cpuid_eax(0x00000006) & (1u<<2) ) )
diff --git a/xen/arch/x86/include/asm/intel-family.h b/xen/arch/x86/include/asm/intel-family.h
index d8c0bcc406..c71e744731 100644
--- a/xen/arch/x86/include/asm/intel-family.h
+++ b/xen/arch/x86/include/asm/intel-family.h
@@ -179,6 +179,10 @@
 #define INTEL_XEON_PHI_KNL		IFM(6, 0x57) /* Knights Landing */
 #define INTEL_XEON_PHI_KNM		IFM(6, 0x85) /* Knights Mill */
 
+/* Family 15 - NetBurst */
+#define INTEL_P4_WILLAMETTE		IFM(15, 0x01) /* Also Xeon Foster */
+#define INTEL_P4_PRESCOTT		IFM(15, 0x03)
+
 /* Family 5 */
 #define INTEL_FAM5_QUARK_X1000		0x09 /* Quark X1000 SoC */
 #define INTEL_QUARK_X1000		IFM(5, 0x09) /* Quark X1000 SoC */
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 20:36:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 20:36:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173364.1498411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOMFI-00075y-Tp; Wed, 26 Nov 2025 20:36:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173364.1498411; Wed, 26 Nov 2025 20:36: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 1vOMFI-00075r-Ql; Wed, 26 Nov 2025 20:36:12 +0000
Received: by outflank-mailman (input) for mailman id 1173364;
 Wed, 26 Nov 2025 20:36: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=GqHT=6C=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vOMFH-00075l-TK
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 20:36:12 +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 83428ca2-cb07-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 21:35:57 +0100 (CET)
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com (2603:10a6:20b:6::31)
 by AS8PR03MB9365.eurprd03.prod.outlook.com (2603:10a6:20b:57d::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.13; Wed, 26 Nov
 2025 20:35:54 +0000
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4]) by AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4%4]) with mapi id 15.20.9366.009; Wed, 26 Nov 2025
 20:35: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: 83428ca2-cb07-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DXNAY5KumZvZVCdI5W6WCx3TsM7bWjq6++L2z56K4cyIFHF7nubJq+9F5jLKXONc4r3uf7qS3bZm6xz7B9Sd8WNS9RGDXuKE5jgnwMIg/NugW71grgJ6QImngbXGVTChmPkqPw1LbBJwLIPvVEJvBAMc3TvS+hB2uGJ7dEDm34XjJrLWfNxbtGbSLpO4VllFlCVbNValR5dm0LX23S+aIdaM0dETakUBmHf/OUmd8g1L0v7JK7BvhxBDR5QundhCQZL1RYlB1tmuc9oabbb94B7J06TYL4TIj3zgGWjcgBu1LW8Te9bpNSg5QlMfl9aY2GXo+sK2H3Ppz6L+mUGjQw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sjNEa43S9YozlXIRJEM2jd23F4i/z7miVjUjfFe1MBg=;
 b=S6604kiK9sOihky+RIagk+W1g7IarLCVeJOwnQzBWW4SH6G4PNcDBT1A+MjX3CjWcxgJRayF6B0CB4FgF698AzVl/XDJ5Js2cnKGgOp7+vGPBDWOrZSDYC6mf1OnimO+7Jcz5YURJQ0HvZJGCM188GrS9uc4W+CLTaXndirjjIZCiaNQ4advKrYOeHvtt2EPPtqYMF+8IJRW9CyoJjlERkIVg+yGDGZSU0TTR4otSBSfwMxtm3ip0UmCUgo/Hy/qb603tLCrapX2qAcJ/7LiT8BDxOWEWdq+xQfTXN1yHO/5DnwueZtnZWrXyhWiRN7KF2PLq/J9E9vLQhGmwzygPQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sjNEa43S9YozlXIRJEM2jd23F4i/z7miVjUjfFe1MBg=;
 b=Gvqe++cHDxQcZUUoyMd62uAXesd2eNfBf1qNBOaQFk9hipJHBmKto1lxbvy9j0e6iP7i2AERrt4qxUk0BKTmG02OP7bItXalFeWC6YjVo4TyhDpA6uOqTq/zU4Gl3d5MBtm1NjQGaGfwE8cUpSVVJwyyY6eIM3zao53glNxpDmpBmRQZE20PFK9pgJ7qdZKX2xSYdqYHf1L9V/b8LqhGUU0RJT+nRo+9YfZpelDyVQq8+L9jaSjXG0CHkbzAEFTmRJpnsxkOq08LA4xOdPpkz0IPQSp88CMdzJklPY2rt3/AbITvgJQ9JR8p63w7Xor1XFVNcimkBWc0g/eHAJoupg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <dabea7a8-121a-4b10-ba86-2b33cbc3e3c8@epam.com>
Date: Wed, 26 Nov 2025 22:35:52 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/domain: introduce generic functions for domain
 struct allocation and freeing
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>
References: <b5c703a64c616d6321f8a98cd28f0659838d41df.1764167337.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <b5c703a64c616d6321f8a98cd28f0659838d41df.1764167337.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0007.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::10) To AM6PR03MB4600.eurprd03.prod.outlook.com
 (2603:10a6:20b:6::31)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM6PR03MB4600:EE_|AS8PR03MB9365:EE_
X-MS-Office365-Filtering-Correlation-Id: ebe0ba3f-4836-4b88-580d-08de2d2b653d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|7416014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WlNQOU1JcDBvWGxFaWMrOVdRd2pkWXdOZktqL2Q3cmU4dm1TME9aMC9qNDhD?=
 =?utf-8?B?M2ZBNDY2WDhQZ3gvOHRBckM0N2xjSWNmOTJFUGRQUjRIVW9DeUpmWHpOYmoy?=
 =?utf-8?B?Vm5UNUlKTFh5ZVEzOXZVYTB5KyswaDlaZjIwY1N2OUlNUkNIQUhYYVBncHlq?=
 =?utf-8?B?T3BBZjdsTUFNd1psblh2Slk0MVVMQ1ZXSWRtSHNMR3RPUXY1QUdqWmJvVDJ1?=
 =?utf-8?B?eWdEWEplbFpnaklKc2YrZ1haSHJtblV3SHdBeHRiNlU0a2xEcFlFdmNld0hP?=
 =?utf-8?B?NGVqcTdHWVRNQ2tmNUdncHUwNWZjZFVKdlg5dnJsMGVKRmtwZjNWVHY4R0Jk?=
 =?utf-8?B?UlBPZnNLc0xlQWJwRmRtY2pMUitQZXE2YWMvS1NvV1RVM3FMajVQOUlyeUhV?=
 =?utf-8?B?WnQ5dzByM3lSeFoweDNsdDhxVWNnRy9qWEY4OGVROUJ1c2poWUUwdFkxL0pY?=
 =?utf-8?B?UG8wVzhoenpBYllkdWpCMGp1dWI1MEdBdFJBbEVJMVpHWHNKQkI1aG9UbGc2?=
 =?utf-8?B?Y256REJoK0c5dW56N3gxT2RERnNOeVRtQk9RdVBBOXR2ei8vTmNmM0xZaFMr?=
 =?utf-8?B?c3h6Z3dXdXRjcWx4T2hOMVd5OTJMMHNOMkhmTzhEY3cwSDQ2UjdZVGFmMXBF?=
 =?utf-8?B?U3lJcDJFMy82ckwxSE5XVjJ3a0UyT3B3UlovQUxNUUdTTXVPSUs0bGIwNjhJ?=
 =?utf-8?B?clQ4WmNXOWNaUjBSbTBUWk5RTWh4clY0eVNiSEQ2ZGNrMW9uYU9md3ZpY0V6?=
 =?utf-8?B?L24zYk5TMGRFbUV3WktoZjdlWUNZUFE2anlHcjlDTlhwZUdWWW04NS93TWM0?=
 =?utf-8?B?bWJBSzJFd3g4TU0wN1p1b3RpYU1JeTVWaWExdHc3RVpETlJLOUpud0lmOVIr?=
 =?utf-8?B?eUZ2UXk0c3NFS3AvSGVic0xaQ3E3NkN4UVA0UTNCTkxlWWpzbkNZeEJTRnYw?=
 =?utf-8?B?akMrek9FTUFScjM1b1U2SE91Smw3OGxQOHRocmJtMlNMTUoyTWFxR3pkUUFP?=
 =?utf-8?B?VXl3Ty9GVUFzajlsU3VFcCsvejdYMnBxVUlHVGxudncxa2JkUU5meVJOSTZW?=
 =?utf-8?B?ZVpwaXRKK0k4SGlpSWRvUk1Ud21sNWdqSlFDOG1WZGF0VC8vYVBUWFZDeEdS?=
 =?utf-8?B?cWUyNU9JWnBvK3M3Ym9wSmZtOEQ3VnA4UUxuWFJJYjFNa1hZeTZCNlYwY0tB?=
 =?utf-8?B?VnVvSFhEOTFWQ1grdG56MWZJVTg4T3J3d2N3QWx4eWdTczZmRjRxSG5Md0lT?=
 =?utf-8?B?V0ZIeHRMUG1kdDZBeEJoeXFzZy8xRC92VE1vL3ZGd09NUjgzVmdrTTBFUVps?=
 =?utf-8?B?MmpkRjdpQ3NudXhaYVNrT2VPSG1ndzR1Mlk5ZVF2NXRIT0R0QWFUZU8rN0xp?=
 =?utf-8?B?cFRueElYYXoyTWVPNk03amhCQXc5akFqRXljMkZTcWE0RTBCUUprQmVNaXBM?=
 =?utf-8?B?TDJkTHFQOUhiVnJxYjNsNGd2cGxweElURGFSMUFpczVJNHVjYzRCdGxGN1ZP?=
 =?utf-8?B?WlRJa0Y0emt5SjdNMzE4RDJCWlNmODdYZFVjZzRkWXFxa3FsTVZ1MGRzbTlR?=
 =?utf-8?B?MFBuY3N2azZJUDBHNXcwVDBBc1NRNHNoU2swYWkvZ2lVQVFCRU0vTWFwV3gw?=
 =?utf-8?B?QjFLeUk2QzVmT1h4Rmo2ZklWdzNEZlhHdklzNllYbGJYbVNodjREMmpIaGsx?=
 =?utf-8?B?QXAzNHp1MEJGdEgrVERuc3BZd0pNNVVYRm5vOWd6d0x6VUFRWjhKdXVuSHBS?=
 =?utf-8?B?OVZ3Z2V2ZDlpcnFXRml0YXdCWG1FVDdnSTIrTWhNZXZkU3dVSnpiVFdkbDRE?=
 =?utf-8?B?QWZZakpMeVZhZEZtYzRIbno3UEtLRkF6dDZ3RnlHcnVTM21DelB1UkxXWERQ?=
 =?utf-8?B?SFBxWC9ydXAzTy8vdXJXajBwWndRUUN0MXpZSGRQWXc0enMxRGVWNS8zd1da?=
 =?utf-8?Q?4zeMO7lsoIYv2GAXChCQz3WTsptBoQmd?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR03MB4600.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RVBDamZWWi9IVnVuR0srb0x3cDBxT2ZMb2JOb1ljcy9WTmtyTXBXTkxNQ0VE?=
 =?utf-8?B?WUNGK3pabFVqREtvK3UrSzl4cUtkRlpLaTAzUWh6cFRlT1JnZlpJTmFWYmxD?=
 =?utf-8?B?THQ4SFpuR0pMeUVuVmdVS1FRbGt2MGRncVBIRnBEd1dGZ3RDZnMwRkkxcEw3?=
 =?utf-8?B?SXJuVWxVL0R4MjN6MTJKZUNncUtxSFJXaDdxWWY5Y2kxWkk0NzdSdGdUSG9J?=
 =?utf-8?B?d1lPRTkvK1dGQnlrbHlsczFReXkwK2RtS3ptVmd1RlNta083cmd2QUlXWHcr?=
 =?utf-8?B?b0p0dFJwSVJDVEQ2TGNmTXVqNEpqQjlkZUhQMSs4MTRVUm1UcU84aVdZZlhl?=
 =?utf-8?B?YVM2M212Rm9GUVRTQVBkYi8vZHZuTEJReU1rT0hubThtUWZ2ZDJvMzJkbFl2?=
 =?utf-8?B?Z0htVTVRZWYwdHVjY1lrSmswNEFwWVdWL3RyVWNIWXZPd1F4UE1qRDJrTk9F?=
 =?utf-8?B?dkVzOEFtWTJsdXhiT2p6SURlV1p0aTFHVmd1TGhVMG8waUVteHY2YW40K3F6?=
 =?utf-8?B?OEVsaXowSEsrMnk0Y0VNc2hCTnB2Z2R0NXJDRkI0ektGM05FOWxrNTIxQy9D?=
 =?utf-8?B?MVQ4emh0UTBHOWVOOU5tUXpNZUhlVE9rUFMrdVZscThkbDlJRjUrQ3B0UmdG?=
 =?utf-8?B?WEFDNEtsa3JzRjA2WlF1WHJhaHAxT3hjelJNdXBRcDdkbHhIOTYwUDR2Z1da?=
 =?utf-8?B?TkhmVG5OQlhLTDc2UG5xUFVvV2ZpSHQzemdMUGJISUh4WDAybHo0Y0NZUGNP?=
 =?utf-8?B?QUVUcjgvaEZEeXdZNGF5dnU5SElpZG5uOTJZT05XZFBPZDBxenJ5Y2d0UmhI?=
 =?utf-8?B?Uy9EbXJ1OEhhUzI4ajJYUjBEazY4LzFtTmU0ajNkcnFvRVNrVUlSZDBYNU42?=
 =?utf-8?B?ZjZtcDF0d0pndkg3ZjArSmRVbzQwL1hjTFhpYzNlaUNrQ3YycHp1REZsbGg4?=
 =?utf-8?B?ZHZSMGxTNFZwdzJMSkxZbmpocm5FV0NwNVFldjZoMFdvUzZBd0pWVlpYcnc2?=
 =?utf-8?B?d0srQk54QnQyK2R4UXprcno5Y2tRYkNtK0JVSlQ5VVQ5cjNOcFBMZG5GbVRV?=
 =?utf-8?B?dHBhK0pVRU02eEhqNWI1RGNHaFFhYy8xL1J2dmZnWVg4S1QyMzFiUGhiYyt4?=
 =?utf-8?B?YWlMNTY0M1JrWTZMZ0xnUXp3ZlpZVmt5SFBSS01meTlEMEtxNm1lVFUvZWMv?=
 =?utf-8?B?a0lobUNBeTR1ZjNEd3NIOU1IVUdaYTVSdVhtQUw2M05vSlRKczJvNjVWUjBL?=
 =?utf-8?B?djhVblgyOWRnWjBGK3FVRU1FL1BJQVdRMVBBenJpV21ZYXp1MXR6QXI1Q1cr?=
 =?utf-8?B?SnB0cTB1OWJLUXVhaVJPNlh4VEZjd2lCbUNYQmdQNTYyMjRPSVA3Z3dsRk1r?=
 =?utf-8?B?dzJGNEdZWjF6cHpiazd0aVh4dzR2Z3NFbkxUUitZc0pqZEVEV25hNEZYa1BF?=
 =?utf-8?B?NlZjNXp4cWVKWmE3TW1GbFdvUmorYmV4UmlRb25rQmk2Njlpc0d2ODFGUzRH?=
 =?utf-8?B?OHFvRE1OeEhsOUVLVEZSdjRsTHRNZW1jV2ZubmFpOXZudTNrTUw2dVdhOXd5?=
 =?utf-8?B?YlpWRGtSS1kvTE5YQlNmOWRwL3IrS0VCekRjaFR4ZGV4a2h2clVQYjgvQzJO?=
 =?utf-8?B?RjZkNTZBTmx1clNOWFB2ZXZGZ01VdjVTYUJMSnI1cVlHWnhnck5uZHVmVkpW?=
 =?utf-8?B?ZjhIWGpYeityZ1dNZytiWFU0MytWVU0wUWRkY21xNEVmT1ZxeStKcm92ZWtZ?=
 =?utf-8?B?NmozRkJuNzB4NE5BdFlZYWxHc1ZHNHZWa0VaNExTbFQwV0NVY2JXeUxuSkM2?=
 =?utf-8?B?VHlVL1N4OFN5ZGovU2NBVndaRmNwaTRlN0NHVWpMeGRxZytBMDFhNm5iU0Yr?=
 =?utf-8?B?NkhaeCsza0JFQXcvb1EzbjFxMk5DV0RuRWtqNkNSVGpDcXZVYjJ4emRTbXFp?=
 =?utf-8?B?cXgwNURWKzFWd0dGSU8wL0U1L2xYMlVKaEkwU1g1cGZaMUQvVVZycDJXZ1lN?=
 =?utf-8?B?ME5UWnhnYStNVjE1ZDg4WHhJK3JpVzh4Z21WcFppajVHU01oV2FCYlAzcy95?=
 =?utf-8?B?QVNPQXJ6cW9PY0xlbFgybjNPZk5tenNuUTdET0krV202NnF5c2ZiVkdjd3N5?=
 =?utf-8?B?NnB1alNwWDRTT1hSZDZ5aS9UVnQrckxoQmVIRHE4U0lraXV2Wkt2bmtYYy80?=
 =?utf-8?B?enc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ebe0ba3f-4836-4b88-580d-08de2d2b653d
X-MS-Exchange-CrossTenant-AuthSource: AM6PR03MB4600.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 20:35:54.2137
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8USnwK+9O5iVz2p4xUyfG1gQSSaSAyJ3P3KcGlsHEk2E2f8zaSM/SxSYgtjBXsv3EvMblmO5aQfD249+gnRDYi40uEMLmYQEOW54zYuP6CU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9365



On 26.11.25 16:32, Oleksii Kurochko wrote:
> From: Roger Pau Monne <roger.pau@citrix.com>
> 
> Move x86's free_domain_struct() to common code since it is shared between
> architectures.
> 
> Move the x86 version of alloc_domain_struct() to common code as most of the
> logic is architecture-independent. To handle the remaining architectural
> differences, introduce arch_alloc_domain_struct_bits() for x86-specific
> allocation requirements.
> 
> No functional change.
> 
> Suggested-By: Jan Beulich <jbeulich@suse.com>
> [Introduce an arch-specific function instead of using a weak function]
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in v2:
> - CI test results: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2180836457
> - Introduce an arch-specific function to handle differences between arch-es
>    in domain structure allocation requirements, instead of relying on a weak
>    function.
> - Add Suggested-by: Jan Beulich <jbeulich@suse.com>.
> - Move free_domain_struct() to common code.
> - Update the commit message.
> ---
>   xen/arch/arm/domain.c                | 17 -----------------
>   xen/arch/ppc/stubs.c                 | 10 ----------
>   xen/arch/riscv/stubs.c               | 10 ----------
>   xen/arch/x86/domain.c                | 15 ++-------------
>   xen/arch/x86/include/asm/pv/domain.h |  3 +++
>   xen/common/domain.c                  | 23 +++++++++++++++++++++++
>   6 files changed, 28 insertions(+), 50 deletions(-)
> 

[...]

> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index 3a21e035f4..34a02f089e 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -463,10 +463,8 @@ void domain_cpu_policy_changed(struct domain *d)
>       }
>   }
>   
> -struct domain *alloc_domain_struct(void)
> +unsigned int arch_alloc_domain_struct_bits(void)
>   {
> -    struct domain *d;
> -
>       /*
>        * Without CONFIG_BIGMEM, we pack the PDX of the domain structure into
>        * a 32-bit field within the page_info structure. Hence the MEMF_bits()
> @@ -492,16 +490,7 @@ struct domain *alloc_domain_struct(void)
>                   - 1;
>   #endif
>   
> -    BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
> -    d = alloc_xenheap_pages(0, MEMF_bits(bits));
> -    if ( d != NULL )
> -        clear_page(d);
> -    return d;
> -}
> -
> -void free_domain_struct(struct domain *d)
> -{
> -    free_xenheap_page(d);
> +    return bits;
>   }
>   
>   struct vcpu *alloc_vcpu_struct(const struct domain *d)
> diff --git a/xen/arch/x86/include/asm/pv/domain.h b/xen/arch/x86/include/asm/pv/domain.h
> index 582d004051..6e65bc22fc 100644
> --- a/xen/arch/x86/include/asm/pv/domain.h
> +++ b/xen/arch/x86/include/asm/pv/domain.h
> @@ -18,6 +18,9 @@ extern int8_t opt_pv32;
>   # define opt_pv32 false
>   #endif
>   
> +unsigned int arch_alloc_domain_struct_bits(void);
> +#define arch_alloc_domin_struct_bits arch_alloc_domain_struct_bits

Is it intentionally placed in PV header x86/include/asm/pv/domain.h?

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Nov 26 20:43:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 20:43:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173373.1498423 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOMMU-0000FN-KI; Wed, 26 Nov 2025 20:43:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173373.1498423; Wed, 26 Nov 2025 20:43: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 1vOMMU-0000FG-G9; Wed, 26 Nov 2025 20:43:38 +0000
Received: by outflank-mailman (input) for mailman id 1173373;
 Wed, 26 Nov 2025 20:43: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=GqHT=6C=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vOMMT-0000FA-ND
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 20:43:37 +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 94bb1e56-cb08-11f0-9d18-b5c5bf9af7f9;
 Wed, 26 Nov 2025 21:43:36 +0100 (CET)
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com (2603:10a6:20b:6::31)
 by AS8PR03MB9365.eurprd03.prod.outlook.com (2603:10a6:20b:57d::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.13; Wed, 26 Nov
 2025 20:43:34 +0000
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4]) by AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4%4]) with mapi id 15.20.9366.009; Wed, 26 Nov 2025
 20:43: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: 94bb1e56-cb08-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ydgu9tX5vlM1Gpi3C/XI1ACsooiwI36O4ePvDOaOc1Ei9Mqv3VDPxCCAkdEL81o647TOUQtHjlyLxUlobNRkIgQj/MitWZe/TtB48r6scDHFR6bKRJFyv0rjxBJN90oH+WlmVsBd9e/981RN6Xq5QJLIZCt5Sr3x/vu5JcecIYLOfdSZ3qIkL/qEBT8ElBweoWQjZMi0NATV/kwpZJ8DPR+gaidp3aVnGAPXYsW8N+LbFaMPBB6VRzB+73WMoZIardB5ZY6f0crpNh6T+9PiyGdAsEMHIrCqYG0Ge2d53oJlKyvSFg8S7TjLyiZ+irBNKNRlWWcpm0NFSvRy7To9WA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zBEEGLxxDOMI53usn298E14bczWJBowDg6S13fKQHeU=;
 b=pRG6+QyxdRyUBUQD+KkA4ottXdAdsQlm/8gq3/gM8fGJcFm0uyAQisv4HLWDrHCiyKRWa1GJ7xDPAOPuFqA9s9S8+7FS1svD3UkIeUN6NQnKM0h8+p186TlYi3bhuU5sDW4pRaeEydZQvu77Z/sju14CPeBB4GhFdoJe7/aykvFGPr/Rzxz0TuRYwKApA0T02pjD+0qzb4VzFdsFB/6q2K7NAr9U8vebAX4yUJWKuY9WvJB9nKczBk4gTwz3dKxhv617DlLd2lDMYA5TPwmIRB7s3oBOazguQzx16/usa2Kt75u5RVs45Aq7ik+AZUeH89O7uixQiseJsVdepERHxA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zBEEGLxxDOMI53usn298E14bczWJBowDg6S13fKQHeU=;
 b=TY4CvBXHX+GNZMA5AbknrH3J8pT6tiUqsagsg38FBlWk6cXUj6rJ58YzA0/xIIwZZ6vCyzn3HabJte37I1g28iWHPmVkSesDzkRATG7L/jLYGOy8W+3e7C8yLkThR24aIH8rTQM4cLMX1rzItA2WkVaoSRwlPX+wucuvqzO2FsvmF1AHT5JymblWUcT92m3JQHwNu2fmY1Ca7QPeKR//LnIPWkoxNXbGT6FWxajaqqgGKLTCccTvbR0dh212q7JpUcQFKP8rXATL5VeGT7c7iRu5tkD60mCZuSNWaie2v41GCJ3gkjSTTd45ZBrNyGqSwL0AJIkSrFmcGfoTZ3w+wA==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Shawn Anastasio <sanastasio@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Oleksii
 Kurochko <oleksii.kurochko@gmail.com>
Subject: [XEN][PATCH] xen/x86: move d->arch.physaddr_bitsize field handling to
 pv32
Thread-Topic: [XEN][PATCH] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
Thread-Index: AQHcXxVULfwllMsejk6EF7IYoXzQ/g==
Date: Wed, 26 Nov 2025 20:43:33 +0000
Message-ID: <20251126204331.3395888-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM6PR03MB4600:EE_|AS8PR03MB9365:EE_
x-ms-office365-filtering-correlation-id: 00b29634-d351-48d3-d61d-08de2d2c777f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|7416014|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?U4ewCBKz6y/YgfyVTcKLDRPRDwY+5GcNXGjtnLxiR65HKB3pLWcsEe4GD9?=
 =?iso-8859-1?Q?nRGh9RANG+PGQ0B5VJI95aEP9B24jWRB1CVRH7Tp/idpCsfEeQt+jjrJG6?=
 =?iso-8859-1?Q?2uZIKqSJWpExw+wjxPJi/mZEwklCpy39WfiRzF61Yg1MKhrjCvYZ4IuFRS?=
 =?iso-8859-1?Q?hHWpR6wz2y+/d2rire8VVl2jr+ZbewMNYgkOAhQQ9xG33gWEUm2KJJm+hv?=
 =?iso-8859-1?Q?ho7bP20fT+lT0BL6mnWyoSgbfDYNy5+wyD6k3tVf9IFMzQDqy275yL7kWJ?=
 =?iso-8859-1?Q?VHJyXAtMH+FWQAAGERzNqPtkQYmM6qkEp/Hhg6Chj8+DRDEBsb3hIPVMoo?=
 =?iso-8859-1?Q?cLjusD8VoIzHj4LgqkN+pPjcH+ZemIcDXi99MMcDtncGZGaxzkzXyw9b3I?=
 =?iso-8859-1?Q?fr0KjeEKD/vsrZSvgaPZ7NqBL7FEvONABhk6mG9JAaZOUa7ycXYG3R/hhy?=
 =?iso-8859-1?Q?j59BK848QCXyqheP28wBYiCNgat1MfIs7FsHya3AixaHUhyozaEMJzv9Qm?=
 =?iso-8859-1?Q?KRL5ikNGcKHpaWhFP9crj1/nizVedv5Lyra+OuUMZqvw6ftzqHhBf9iJVz?=
 =?iso-8859-1?Q?CMdAqVt3ZbWv5FlqFqpY2T/VmsvktMSHi7T+Vm9WVTKzYqp9/pc9QBQ2eS?=
 =?iso-8859-1?Q?SA0Ozy0aH4QzHYtYcNF93+duCuJA27h5XFKMld0mGn5Fg3ClsN9zTsDFye?=
 =?iso-8859-1?Q?KtRmbqUBowAHADWC9cgK9UUyQaBc+wisxtN3VzHhf8mPvUWb0GvHKbGSrn?=
 =?iso-8859-1?Q?efAWp9kx78z8Ag5m6YyFpO/ocWJ9SHBvZkipMmbnljcQD7mJroK6vmckpI?=
 =?iso-8859-1?Q?zdCdpHbqv6LprgNyS6Uw4nfmmxkJRTSQPsiTO5C4q5fwFC9oThJftwDpNi?=
 =?iso-8859-1?Q?lxd4T0db1WEk+J+hQCuHIi1EnbIehP9fP1+l5Svgbb2qOZ5DJaGJxy01J7?=
 =?iso-8859-1?Q?8KUZR5qwnEFIpXzaGoA+BgMIpyugXT8zxHMaD0MAXTvc1F7lBuZqb2Nf1l?=
 =?iso-8859-1?Q?1RTZl8uSekOi/urQim2sgfACT4t0uVMxA1rrTBuW8ag+2JzyjQ+tCuzRJz?=
 =?iso-8859-1?Q?VrzY9UwnbQCEvW5Cv+pZQHjRsWMx8PeLXcX2bvWm3AT5BLEPKOqpPCgA1U?=
 =?iso-8859-1?Q?wUTwu6x4Vgu+cSL/0ZzYedddAuHUaojOeGkr6nfHOUsirsIzbG1pSn+to3?=
 =?iso-8859-1?Q?nBnXKsdfZKALTBG7zCOp/pxGwx/2AG/Hw0LRngHoyXnAhuasqgfAKtiKoL?=
 =?iso-8859-1?Q?l/NS9NKT4MUdmnF4LMTlTY+U7T0r3tbz50D8/VnlAsV/iAARSUkhdyednd?=
 =?iso-8859-1?Q?ZweKuziKJJ+kXPFx6JNnJu2WJy6a0DApZi7qxKNu826C1LNe0X5cTKdHXr?=
 =?iso-8859-1?Q?GiVE31Ep99qBATs0JCn5MS6a8cc8ghe5W5s8zFxfKV2lWeptbNJz7mPNnc?=
 =?iso-8859-1?Q?4DvhVhdb8VS2B0mKM1tJ263PhHKLtnxKH+vm041hsuygwIet19zBuwQ/Bi?=
 =?iso-8859-1?Q?c6uHiGocPeeCwQNN9Sv1P1PRPwDSXTGdgZsc0RXYI8T3t92/Sk+JdvS/lC?=
 =?iso-8859-1?Q?ZLWExkp4NHfMXuAEltav3MlaQPVb?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR03MB4600.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?F6n7XP6TJ4+9qzDVd/ksst2uNfHCCirdJxpkf8j3vGjWpZqS1XUs8AnQOg?=
 =?iso-8859-1?Q?DT39qVYmFr52E5xg4NONnznhXaTM4Ck89CQBlgTSzdn39voK+TewCtPEQh?=
 =?iso-8859-1?Q?h3hz+Q5fpukBaepJN46xTqrncmQTpt5t6xqqjHkJ6nnj48ZZNFnLBh06Fw?=
 =?iso-8859-1?Q?aNj3n8F6AJ3xJnI98lReHLru9OWixgCi8uS5MYK2lX86yHiBHVrHELx5hT?=
 =?iso-8859-1?Q?UgJ7L7t8Kus/tlWxKpio6F4zDQ4UVqAHcOiM+vRNv8lv6yKUnUZIcCmg6V?=
 =?iso-8859-1?Q?9nD1e6Jw+20AdcHTXcfTJTWKuem4WG6FnAKeBniYLl0rYQv0dTuDj+dNvz?=
 =?iso-8859-1?Q?2KW7CkRqBRsJLb/MJrOM1CrkUeJEo6yjm/HC0qIfN0O8klzlsTxJ+tGcjl?=
 =?iso-8859-1?Q?Gm05m5beCGvOcf1Cpzo3gr1iafzUG+qa40MtenowbjkN5sCKatSmH9CyDU?=
 =?iso-8859-1?Q?mh9ma/4aW6blex9s5nejqYmwyFQFJYL9W6B7EvZdtC2C7H9C8A37Mdva4S?=
 =?iso-8859-1?Q?0BNgMjNmAmfefBNlEjUiwJXSIAhHJCYOwI2XiggFiO8BlzNYLJohye1MSN?=
 =?iso-8859-1?Q?9t4u1sRgyEfewfohBedP79QF1Tqkrc7gkOZTLB1BwO3KZTsYh5pcv5+N2C?=
 =?iso-8859-1?Q?MZyad8QD9YERf0a5XfZiMef2w+LnEkUw/epbsz1yq7qYEw4/nYH462T7bV?=
 =?iso-8859-1?Q?37VE0gUdOK9XJY1+79Az9CmpVbK4RZd2kRDwoaD9ZRlkw2hNZ4pdE3BHhk?=
 =?iso-8859-1?Q?K9fIJVt5xENp7Pz5wzL0Sc1Xc62Ka8y29OadwsRYoOXBNA2141hMWqfopa?=
 =?iso-8859-1?Q?lGczc5pujkwfVhOrVKQsRLP3xiL1xVzdJLXfNgL8c1aQlFWWErcKhRwARk?=
 =?iso-8859-1?Q?5J6GhhV6opv+SuY0EtAZ325dZI025a+XomDo82ePOfqFEp3LmWlFwdRiGu?=
 =?iso-8859-1?Q?clPFMZdj4hmQGifjI7FD7iTfTex//3M5++9+tlh2X+uG9tW/esYPw4j/5t?=
 =?iso-8859-1?Q?voY4Yf0QwuXBEdi9qmczcQKKtVvem7h8BdXdpXjb9NePy98NOvOufkYdUF?=
 =?iso-8859-1?Q?eV+zaRUECj0IfXutqPFg+XOTxmBAb5KrmB59V5ybFjQKb7/w0FrB5YHva+?=
 =?iso-8859-1?Q?60YXp56HywtmTCCdqbXzMyHpByGX5vilM02la9bAYwPMxrLW7SRp6d69n3?=
 =?iso-8859-1?Q?ZJhtweqaeJ2tN6KCbDmokXOmbPVlhup/EMJHNV/qcZK93hHJ8KUKeyZ036?=
 =?iso-8859-1?Q?FFmA0T/93SuT3GL8XW+mKaLQXW9S2+TQL5QSlV+w8dDrlV2/iuwWhTQDtE?=
 =?iso-8859-1?Q?rUx9TQs5KHkgU4ZzPmNW9NBfEbeMQw9AidG3J/qorcur3MRhn8J9iAtMO6?=
 =?iso-8859-1?Q?Dl2Voyod3vAKsah0WoboU1GDtIX8UE9Dq4pQW33bdOchj2wLtXYuNZCkfr?=
 =?iso-8859-1?Q?GAy19aNDS3ORB8wWLXuiDWRf69ik0Ix+VN/a3jtnh17sXWyFPhreImeO9X?=
 =?iso-8859-1?Q?ddx4opEXz/iwOx2QqhEwWx0bC+SK/ZUbXCW0u/OwQ78OOsFEfCjd3pvbOA?=
 =?iso-8859-1?Q?Vi0zuVX9vo0LiqEsjrKRYd/33iAml7HQBlVmYMYQht77l+ffhEYvLgOoCa?=
 =?iso-8859-1?Q?pchAO+GzZi+AvW9fXM5Yq+1wUDWUjviVKeBph0S/DRESet5CB6+3xC/A?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM6PR03MB4600.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 00b29634-d351-48d3-d61d-08de2d2c777f
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Nov 2025 20:43:33.9813
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: MaoeMrM2f9LnZPot71QUOI7RcTdr7ReRT+h+opTfSG4+DqRa+YvyDpLT1fJ8floOf3gaKVx76W7AiarFMO5jJfyAhe68yGBBRWbOhzfdxsc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9365

From: Grygorii Strashko <grygorii_strashko@epam.com>

The d->arch.physaddr_bitsize field is used only by PV32 code, so:

- move domain_set_alloc_bitsize() function into PV32 code and clean up
unused domain_set_alloc_bitsize() defines from other arches

- move domain_clamp_alloc_bitsize() function into PV32 code,
rename to _domain_clamp_alloc_bitsize() and use generic
domain_clamp_alloc_bitsize() define instead, clean up
domain_clamp_alloc_bitsize() defines from !X86 arches

- move d->arch.physaddr_bitsize field under PV32 ifdef

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
 xen/arch/arm/include/asm/mm.h     |  3 ---
 xen/arch/ppc/include/asm/mm.h     |  3 ---
 xen/arch/riscv/include/asm/mm.h   |  3 ---
 xen/arch/x86/include/asm/domain.h |  2 +-
 xen/arch/x86/include/asm/mm.h     | 10 +++++++---
 xen/arch/x86/pv/dom0_build.c      |  2 ++
 xen/arch/x86/pv/domain.c          | 21 +++++++++++++++++++++
 xen/arch/x86/x86_64/mm.c          | 20 --------------------
 xen/include/xen/mm.h              |  4 ++++
 9 files changed, 35 insertions(+), 33 deletions(-)

diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index f702f4a0d676..ec2d2dc5372a 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -313,9 +313,6 @@ struct page_info *get_page_from_gva(struct vcpu *v, vad=
dr_t va,
 /* Arch-specific portion of memory_op hypercall. */
 long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
=20
-#define domain_set_alloc_bitsize(d) ((void)0)
-#define domain_clamp_alloc_bitsize(d, b) (b)
-
 unsigned long domain_get_maximum_gpfn(struct domain *d);
=20
 /* Release all __init and __initdata ranges to be reused */
diff --git a/xen/arch/ppc/include/asm/mm.h b/xen/arch/ppc/include/asm/mm.h
index a33eeec43bd6..91c405876bd0 100644
--- a/xen/arch/ppc/include/asm/mm.h
+++ b/xen/arch/ppc/include/asm/mm.h
@@ -96,9 +96,6 @@ static inline struct page_info *virt_to_page(const void *=
v)
 /* TODO: implement */
 #define mfn_valid(mfn) ({ (void) (mfn); 0; })
=20
-#define domain_set_alloc_bitsize(d) ((void)(d))
-#define domain_clamp_alloc_bitsize(d, b) (b)
-
 #define PFN_ORDER(pfn_) ((pfn_)->v.free.order)
=20
 struct page_info
diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/m=
m.h
index 9283616c0224..e5ea91fa4d0c 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -292,9 +292,6 @@ static inline bool arch_mfns_in_directmap(unsigned long=
 mfn, unsigned long nr)
 /* TODO: implement */
 #define mfn_valid(mfn) ({ (void)(mfn); 0; })
=20
-#define domain_set_alloc_bitsize(d) ((void)(d))
-#define domain_clamp_alloc_bitsize(d, b) ((void)(d), (b))
-
 #define PFN_ORDER(pg) ((pg)->v.free.order)
=20
 extern unsigned char cpu0_boot_stack[];
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/d=
omain.h
index 5df8c7825333..fca721ac482a 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -314,10 +314,10 @@ struct arch_domain
=20
 #ifdef CONFIG_PV32
     unsigned int hv_compat_vstart;
-#endif
=20
     /* Maximum physical-address bitwidth supported by this guest. */
     unsigned int physaddr_bitsize;
+#endif
=20
     /* I/O-port admin-specified access capabilities. */
     struct rangeset *ioport_caps;
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 08153e6d6fa2..8c10458f52c4 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -619,9 +619,6 @@ void __iomem *ioremap_wc(paddr_t pa, size_t len);
=20
 extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int=
 pxm);
=20
-void domain_set_alloc_bitsize(struct domain *d);
-unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bit=
s);
-
 unsigned long domain_get_maximum_gpfn(struct domain *d);
=20
 /* Definition of an mm lock: spinlock with extra fields for debugging */
@@ -659,4 +656,11 @@ static inline bool arch_mfns_in_directmap(unsigned lon=
g mfn, unsigned long nr)
     return (mfn + nr) <=3D (virt_to_mfn(eva - 1) + 1);
 }
=20
+#ifdef CONFIG_PV32
+unsigned int _domain_clamp_alloc_bitsize(const struct domain *d,
+                                         unsigned int bits);
+#define domain_clamp_alloc_bitsize(d, bits)                               =
     \
+    _domain_clamp_alloc_bitsize((d), (bits))
+#endif
+
 #endif /* __ASM_X86_MM_H__ */
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 21158ce1812e..6748c639cdc1 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -626,6 +626,7 @@ static int __init dom0_construct(const struct boot_doma=
in *bd)
         initrd_mfn =3D paddr_to_pfn(initrd->start);
         mfn =3D initrd_mfn;
         count =3D PFN_UP(initrd_len);
+#ifdef CONFIG_PV32
         if ( d->arch.physaddr_bitsize &&
              ((mfn + count - 1) >> (d->arch.physaddr_bitsize - PAGE_SHIFT)=
) )
         {
@@ -650,6 +651,7 @@ static int __init dom0_construct(const struct boot_doma=
in *bd)
             initrd->start =3D pfn_to_paddr(initrd_mfn);
         }
         else
+#endif
         {
             while ( count-- )
                 if ( assign_pages(mfn_to_page(_mfn(mfn++)), 1, d, 0) )
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index 9c4785c187dd..1cdcb9f89c54 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -230,6 +230,27 @@ unsigned long pv_make_cr4(const struct vcpu *v)
 }
=20
 #ifdef CONFIG_PV32
+unsigned int _domain_clamp_alloc_bitsize(const struct domain *d,
+                                         unsigned int bits)
+{
+    if ( (d =3D=3D NULL) || (d->arch.physaddr_bitsize =3D=3D 0) )
+        return bits;
+    return min(d->arch.physaddr_bitsize, bits);
+}
+
+static void domain_set_alloc_bitsize(struct domain *d)
+{
+    if ( !is_pv_32bit_domain(d) ||
+         (MACH2PHYS_COMPAT_NR_ENTRIES(d) >=3D max_page) ||
+         d->arch.physaddr_bitsize > 0 )
+        return;
+    d->arch.physaddr_bitsize =3D
+        /* 2^n entries can be contained in guest's p2m mapping space */
+        fls(MACH2PHYS_COMPAT_NR_ENTRIES(d)) - 1
+        /* 2^n pages -> 2^(n+PAGE_SHIFT) bits */
+        + PAGE_SHIFT;
+}
+
 int switch_compat(struct domain *d)
 {
     struct vcpu *v;
diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
index d4e6a9c0a2e0..8eadab7933d0 100644
--- a/xen/arch/x86/x86_64/mm.c
+++ b/xen/arch/x86/x86_64/mm.c
@@ -1119,26 +1119,6 @@ unmap:
     return ret;
 }
=20
-void domain_set_alloc_bitsize(struct domain *d)
-{
-    if ( !is_pv_32bit_domain(d) ||
-         (MACH2PHYS_COMPAT_NR_ENTRIES(d) >=3D max_page) ||
-         d->arch.physaddr_bitsize > 0 )
-        return;
-    d->arch.physaddr_bitsize =3D
-        /* 2^n entries can be contained in guest's p2m mapping space */
-        fls(MACH2PHYS_COMPAT_NR_ENTRIES(d)) - 1
-        /* 2^n pages -> 2^(n+PAGE_SHIFT) bits */
-        + PAGE_SHIFT;
-}
-
-unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bit=
s)
-{
-    if ( (d =3D=3D NULL) || (d->arch.physaddr_bitsize =3D=3D 0) )
-        return bits;
-    return min(d->arch.physaddr_bitsize, bits);
-}
-
 static int transfer_pages_to_heap(struct mem_hotadd_info *info)
 {
     unsigned long i;
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index b968f47b87e0..6a66fc7a05c8 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -641,4 +641,8 @@ static inline void put_page_alloc_ref(struct page_info =
*page)
     }
 }
=20
+#ifndef domain_clamp_alloc_bitsize
+#define domain_clamp_alloc_bitsize(d, b) ((void)(d), (b))
+#endif
+
 #endif /* __XEN_MM_H__ */
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Nov 26 21:45:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 26 Nov 2025 21:45:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173387.1498432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vONJd-0007Rf-1S; Wed, 26 Nov 2025 21:44:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173387.1498432; Wed, 26 Nov 2025 21:44:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vONJc-0007RY-UJ; Wed, 26 Nov 2025 21:44:44 +0000
Received: by outflank-mailman (input) for mailman id 1173387;
 Wed, 26 Nov 2025 21:44: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=GqHT=6C=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vONJb-0007RS-53
 for xen-devel@lists.xenproject.org; Wed, 26 Nov 2025 21:44:43 +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 1a7ad91b-cb11-11f0-980a-7dc792cee155;
 Wed, 26 Nov 2025 22:44:37 +0100 (CET)
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com (2603:10a6:20b:6::31)
 by GV1PR03MB8816.eurprd03.prod.outlook.com (2603:10a6:150:a2::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Wed, 26 Nov
 2025 21:44:33 +0000
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4]) by AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4%4]) with mapi id 15.20.9366.009; Wed, 26 Nov 2025
 21: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: 1a7ad91b-cb11-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gLjNIukgz4ZTzv4wdWU5yx0Hd7lSx/SZjUJ7JFvDjoyfQrl+sNwVEpMs3rHAPtDCbgy6QtsWqBbvA4p9ntpeZcIP/FcNPXkXNUsuB2nRpO0co+2GDMm/wU4fzCLXoy+GoskLyOEfCZ5VQBTSZ0AldW50wBhUOx6c2SNAE6HdMjlNg5vINvmQr84XHEwF7hiK6fqauNBqVLWF9IN5emZIiPuahkdOamp75U4AeNURVrt8gQ6Xg7j2lHW1/2p1ANSIunHiPhO8v0MtRHy1UpgNJDdHQuH6ocIWM+Dza3Vc/iefx9xk4KXsY1pr2y7duMP4fVRNXCikCgKG/aqJxNwY3w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xaCpp4+7ZvJmSjmH+1MOhVwWuVQ1DaInOI89e3IvGAI=;
 b=bkbfY+frx1/f01mIyg82DhKnBenN24/heBK9gxGotUrhciTBw75TMAdI1fJLWVjeqzBTMd0se0GYZEENQGfp0PTqlmBxPXCX3EQQpj4XpOwWkln8J9v/Cz9asYNG4PTz6Y2RbhWZtYhwp+pGuZyPBzzoBA1CqXXadJOpfLzprfICKejaunc/aIPUDgEH8WelExG6TzWatknAk/ax+d23kt4eCbjYAaLzSBbRY7fPHSiyZouZ7b/0pxWdyihXMSIzidpvCMOgrwPGEi0ob5qNGD31PC1LNMGD4Yp3TNAXHkelZjWFE2eESvYQjo6NcaqfpZFGpzPjT8s0CWtC5Mb5AA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xaCpp4+7ZvJmSjmH+1MOhVwWuVQ1DaInOI89e3IvGAI=;
 b=nzjbwI1upH51QgYbjLiXz1PAhNhxXi9v2pUzO78ICLQr0qgzFvAHAFmABrTet+1FurXt//lTupbV3U3M+jWzPl2R5L/0NdXvOo3X/jmV1ge7bSie9SCXdjBYjOt6XRzbBwg0z24f8UX5AyELF+Ic7tDbER7uqVbqzx88uIh4vaa6NoVwJupUgwPwueHAt6iFPklgzXmn4x0z1X8JmvBMwkqt3ocoSHHdmWJ4AHfRDOlfj6KHdFfkTIszfvP2WpuAJKrt/8eXn6EgtISjxIP/QtUEy7wdLroO1vMFGn3QZcvvuS3zZaKZPDrC/WVyhX98QPmdJUip8bGDQLoGmTievQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <64298088-489c-483c-97fa-62206f1a998c@epam.com>
Date: Wed, 26 Nov 2025 23:44:32 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/24] xen: consolidate cpuid library
To: Penny Zheng <Penny.Zheng@amd.com>, xen-devel@lists.xenproject.org
Cc: ray.huang@amd.com, Jan Beulich <jbeulich@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-3-Penny.Zheng@amd.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <20251121105801.1251262-3-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0013.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::14) To AM6PR03MB4600.eurprd03.prod.outlook.com
 (2603:10a6:20b:6::31)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM6PR03MB4600:EE_|GV1PR03MB8816:EE_
X-MS-Office365-Filtering-Correlation-Id: 39369520-b0e0-4007-47e4-08de2d34fc9b
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?UHJXVk1MNlR6THg2alJUZmljckloRXhIaFAyZUdzbDU2SVFLUWZOdCtFYUw4?=
 =?utf-8?B?WkpmdUhId2owWmU3REVoSEszcXdJS01yaTNQKzdVRklodFRDdjkveXJlSnc0?=
 =?utf-8?B?bXB1dW1EemJJWW5NR3M1bnI5eUlxSHEwZ2o2OXQ2dlhXS3QxVXNlNGNUT3FN?=
 =?utf-8?B?OEwrZmswNG1NL0dlY3QvRGpGY0JPTkZseWNNUng3TThlQ09iOUR6cHlMdGdm?=
 =?utf-8?B?R3YxSisxbGFSb3FHN1BDY1JFd3UwZllhdUdqMHlzQkxJRCsyQlFKLzZjYzdx?=
 =?utf-8?B?TEo0dzVDdDJGQlIxUFJ2QmUxSmxmelpJUXdCUFYvNDJqMHNIenE2bDU1UjVx?=
 =?utf-8?B?RUFnVXFkR05jN3ZrMHMvSm5tMW4wMWFlM0M4WDUxSW5RTnZYMFRoMzcza1gv?=
 =?utf-8?B?U3J2MmMyR0kvTERpM0lqQ0JQYWtXS1E3SVJSQkkzdVF5c2x3ZHlBbFl2TGtn?=
 =?utf-8?B?OW13Y3FYdGxUTE53VkFhc1VFWjdWRTlwYjdsTWdtdVpBQXJNdUZINkdBeGYx?=
 =?utf-8?B?NndoSEI1VG5QbWR3Unh0M3hpWTlZNUFtSDVYaWE2T2gzd3VJalZLNmo3Vjds?=
 =?utf-8?B?WXFHNE5EanZOTW8wNHh2cXA5S1B5RytxZjljbDhVeHVOc1ExWDF6OHpyOEZj?=
 =?utf-8?B?aVkrNzM2QldnbTRSeVMvdTFWVnBudVVGc21HbHBEZ1UxU2dxRlZwWW5ZWU44?=
 =?utf-8?B?Skx2ZEpXcnRJSWZiV1QyVU96ME05eWRzbUM5OU1wZWM2Q0t4eEZ2MTlIYW1y?=
 =?utf-8?B?MUdFVHB1d1dqTE5iQktGT0tXekc2ckN6NFRWWk5qUnAvbWx4WEVDUklIL0to?=
 =?utf-8?B?aVJSWTNtemFrdThqVXhJcmVvZXI2RU5zbkx1SXY2UHlrM05LRWtQS3NoVHkx?=
 =?utf-8?B?cEVhR1BWQ2dRQzE0M3ZHeFdJS0NhWUtOZU5sYW5oajNrOWJ6WmlFd3dmZy94?=
 =?utf-8?B?TnV6UkZzcFBuYUI4OTcwbk9OTzA5bENtTXhsRFlCSDlvN3k3bUtRcWJKZ2Fr?=
 =?utf-8?B?a3NITkJrVXVkdkZackN2NmxVdC9VSm9sVDYrK3d6aFo2dDJlaFlqWUFkc0tx?=
 =?utf-8?B?Ny8yTW5DYUpCUDI1M0htazBTb0MwWDZzTGZEZm5SYVdpS2tmeDJWbjlUejFn?=
 =?utf-8?B?MG16cGRwanZnQkRMMmFHYkVCSFMzQ2FXMFkxaDNuOUlUUXQrY3FZSHM4S0Vu?=
 =?utf-8?B?NHFUbjBVRXpKR2xzMTFLS1owa3VlWWRZKzE3SUIvN05QZzZCaGlrSDlNSk5y?=
 =?utf-8?B?WmF6ZERiSHlJb2RmWEVET21aN0l5YWVSMytHdFMweTM0STd1TnhlMVpHZFhV?=
 =?utf-8?B?UTlFSjJ2NmpMUkF1Zk9VVG5rZkxoSHVsZThLK3hIMEdxYzVNd0JmRzc5ZG9x?=
 =?utf-8?B?NzJDLzdscW1KVlNjc3JwNDlNSUwyRHM0b3ZHdk9EZW9tZlIzSEM4ditnREI1?=
 =?utf-8?B?bHR5eU4wWkU2L1A3UnFtZzNoQW9oUUdJaStUKzB4Z1JUTHBueXp4K3hxaFBj?=
 =?utf-8?B?TWZucmhVaGJ4ZENNMUQwVWJSL2YvS210NTJuRGt4SkFmSWtnMGQ1a2xVU1pQ?=
 =?utf-8?B?YS9VRDY0aW9zbmZNWHhKQmR3QkxyRkZBanhDYVpOWWd1ZGRtZEc2ZWNzSTJt?=
 =?utf-8?B?NkZGNWhiMHJpWXRsRENCNVNISzBiVnJubHVYWnJJbUhubmxkbEZ3R1JRcTZh?=
 =?utf-8?B?ckc4VnlhRDZIMzRlT0YrT3FlelFFQUdBbkFlRVA1ekQ5aXdHdVlKV2ZyNEZh?=
 =?utf-8?B?RDcxZGM4QTlHK05TN2o4bmJkVFFTTzhjaG1XQUcwODlDaTRrRjdTcmorNzVh?=
 =?utf-8?B?NlovdnhsaVM3a2xuYi8vM2JkUWNnZTQzZ2wxd2dmNXphdFZsbUJXODc4VnZO?=
 =?utf-8?B?MjB4VlNSNHZDQ01DdVF2QngxbGFEd3dZYi9KVnQ3Y2FrWXVtazZLWjg5eklE?=
 =?utf-8?Q?KwGjbJPbZKtXg7kTr+8tBwOwa45Cj2YH?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR03MB4600.eurprd03.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?eHpVWjF3RTllaVBlemxxTDA0UWlzeU85cytnQkxtNDkrQW51bDZzL1pyMmY2?=
 =?utf-8?B?RUt0cUtzLy84OWdDWmx4ZWIrUVpSSlAyd0k4cTREMFNnYURDZ3psQ3pZSnRh?=
 =?utf-8?B?Mklxdnc0Sk45N3ZlMGgvaXlTNlNJNzhtYVM2ZUxUNmRoTHY2V00rQmMvall1?=
 =?utf-8?B?NGJJUFNJRjl3VWxLMVF4L3dnek5LRThDUXQ4VmY2MUtsNDdRdlZCb3p6OUZH?=
 =?utf-8?B?eldBWmRKKzVsdHhuby9IMnhOWFk0eFdYbHdTSlhCek44ck1McVVSTXhLRnFp?=
 =?utf-8?B?NjNVSm1SR3FIZW5XZDNIalIzWXhDVGxMR3lwQjFrZHF0RkNDZ2Y2VDNDd2dz?=
 =?utf-8?B?aTd4TUszeE1TaTNpdUVsZFVUd3VRaG42MnFQdG9xMjRyNWlVaDNMbnhWOHhY?=
 =?utf-8?B?RGo3aGdtdGYyR2wxbGZDdW1yMnJQeVkzdklqK0YyNjFwaXhHZWloZkNBeEJW?=
 =?utf-8?B?dm9CZERtcjZRa25idXdqYmtIR0V3M3BmRnp1TmxvMW42VDFHSEd2ZW5jUXlt?=
 =?utf-8?B?cEN5c0tvWnhmZFp3VmZsVWlsN1NiNHduTkNVT2xTYmQ1dXg5a1VROXliSTk1?=
 =?utf-8?B?NGR2VG9MREJOenNuMlJVblV1b3krdnpVZmNmTk5EZUFhQUJPYm9YY3FRUTJp?=
 =?utf-8?B?emlHMzRydERjWEhPbmxYbVQzdkxIeS9XSEZDZmNPSW9RUTF5bGNPKzF5R2M3?=
 =?utf-8?B?WDZtdGtwblBKeGdTU3pHdUpsRjlIYUl4OEhSazhWZERQMzdOZjB2L2NNTzND?=
 =?utf-8?B?Sko2SG90YitYV05VNmIvbjdWWElOWXhpK0xjSnc2UVoyaGZCejBLRnp1RG45?=
 =?utf-8?B?S1FMcngrSFVpWmhaN29LZjlVb1JlaWNtUnQ2SlA5SVVmUXY0elo3Q1lTY0cx?=
 =?utf-8?B?V3pBZjhsS0hHa1FmU1pySnBJeDZwa0x3N0U5RkVpcGk3Q2hjNGNRbFh0RFh2?=
 =?utf-8?B?L25GUG5Nc1BaTEp0OWtuS09qRHpzQ0QvSEFKTW1ML0JYQW5WdmNabTlrYklY?=
 =?utf-8?B?b3BVVXAwb3ZobjgvVnBqQVBCS2FMSVg3eWVhUGRoNWR0T0hoN1FBUTJxWlR0?=
 =?utf-8?B?eHBBM2YvS0xwYlFvVURISzBGZG50RCs0cTlaOEdPTUxocENhMzZzQmNNOGda?=
 =?utf-8?B?YnFnVkNKcVRGVjBuY2VaNHZ2WUJ4djdmWGt4ckNMdGJPejhmVHJGbHB1TWVO?=
 =?utf-8?B?MUhyNnh5Ukw1K0czVWsrMkNVQVBScU5CWkY2V0VjMm5Pdjc4Nis3NjNqVzg3?=
 =?utf-8?B?VmROaCtNMGN1amc0WmlmbFVmNTFENzZvcDI3RDNsc24xbGFwR3NrMVQwUHRo?=
 =?utf-8?B?NkJFYmtzdnFVS1VBQTZCb0hpWFpscDJLY1dJbmM2MWEwS3l5SkJjcXFOeXdq?=
 =?utf-8?B?ZXdIV3ZPeXZQWjZTNlE3d3RIa2pOYUUzaklZT2U0ODYxTm8rRTNwQ1J5aGdM?=
 =?utf-8?B?WFJLeTY2VHFHZjJWSXRhUjZIdDIzaXptZXE3WEdMeEhIeXpBUmE4NG1NRTNy?=
 =?utf-8?B?Qk5DVXhWaXBpN3dTR1pRUWpoMzUrVHJ3NWI5U2VlTW0rSnAxMHlqSC9vNzM0?=
 =?utf-8?B?Sk15VTVKWTlUZExlZDd3VU9iU3ZoWlM2SWFKdjhJOXRtelZOUFlPNTRPSFdz?=
 =?utf-8?B?UER5OXBWNy9KNlZ6MThWbmRZYkd4aGJBOGFCTzJaTVBFVFpnWXpGaWZ5eWRy?=
 =?utf-8?B?cUpBQnRjUzhzUlBhZ2xwUW1mZ1dWOHhoQThrMW1GK2NkR3lRQmpxNmN6Vk55?=
 =?utf-8?B?bTRqSm5EeGtXSjY0ZUI3dFhDd05MeTh4d2ZiMEREMU9UZnVKd2FBOCtvc2d4?=
 =?utf-8?B?QTlEaTdZV2gzQnpQVEJDTkc3a0svSk5yblZvTDUrbm5yeHc1aHpzWTZDTHVZ?=
 =?utf-8?B?NUpFditPRlZ5MGx0Q2FvZU1XYWU0VTVETXlOSndUcDZYamRPL3FsNjZOZ2VN?=
 =?utf-8?B?Q3ZVT2x0RGp2MTBxQU1RTlhTUHZKTHplallLQU9Cdll2bHNXVWs5STZCRDh6?=
 =?utf-8?B?R21UbTUzby9uMTh6alh6S3o0dVN2SFp3TnUwS0tmc2dKbVNQdldtN2huYzc2?=
 =?utf-8?B?Wnh6MlhIQ0x4c0h6cXY2N0EwY2JUTU1uOU9UTXNJVnhpVnZ1Qk9LakdKcFJP?=
 =?utf-8?B?ZCtNYldMY1NBRGdua2N6K1JZN0NQaHB2WkZVUGNtQU4zWFJjM2JpRy9xTUNW?=
 =?utf-8?B?WlE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 39369520-b0e0-4007-47e4-08de2d34fc9b
X-MS-Exchange-CrossTenant-AuthSource: AM6PR03MB4600.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2025 21:44:33.4754
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: I5oUVdRRmarseP3a8X2akVm/aKbET4qqbNLFpVDVT3AOPlqDg4LC8mQtEQJn25AAM2Kgy4HsKzron3g0eT/dUDgglpVbGVOrXCDm+uSEOCI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB8816



On 21.11.25 12:57, Penny Zheng wrote:
> There are some cpuid library functions only referenced in
> XEN_DOMCTL_get{,set}_cpu_policy-case, and shall be wrapped with
> CONFIG_MGMT_HYPERCALLS later, otherwise they will become unreachable when
> MGMT_HYPERCALLS=n, and hence violate Misra 2.1
> - x86_cpu_policy_clear_out_of_range_leaves
>    - zero_leaves
> - x86_cpuid_copy_to_buffer
>    - copy_leaf_to_buffer
> - x86_cpuid_copy_from_buffer
> We seperate these functions by moving other functions to a new file named
> cpuid-generic.c, and modify related Makefile-s to retain same behavior.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> ---
> v3 -> v4:
> - new commit
> ---
>   tools/fuzz/cpu-policy/Makefile               |   2 +-
>   tools/fuzz/x86_instruction_emulator/Makefile |  10 +-
>   tools/libs/guest/Makefile.common             |   2 +-
>   tools/tests/cpu-policy/Makefile              |   2 +-
>   tools/tests/x86_emulator/Makefile            |   2 +-
>   xen/lib/x86/Makefile                         |   1 +
>   xen/lib/x86/cpuid-generic.c                  | 273 +++++++++++++++++++
>   xen/lib/x86/cpuid.c                          | 260 ------------------
>   8 files changed, 283 insertions(+), 269 deletions(-)
>   create mode 100644 xen/lib/x86/cpuid-generic.c

It seems this patch is not required prerequisite, at least definitely not for Patch 3.

In general, i think it can be removed from this series and sent as follow up patch.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 02:32:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 02:32:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173397.1498442 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vORnJ-0006bJ-7H; Thu, 27 Nov 2025 02:31:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173397.1498442; Thu, 27 Nov 2025 02: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 1vORnJ-0006bB-3D; Thu, 27 Nov 2025 02:31:41 +0000
Received: by outflank-mailman (input) for mailman id 1173397;
 Thu, 27 Nov 2025 02: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=DjNd=6D=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1vORnH-0006am-VB
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 02:31: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 32a3103a-cb39-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 03:31:37 +0100 (CET)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AS8PR03MB7781.eurprd03.prod.outlook.com
 (2603:10a6:20b:405::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Thu, 27 Nov
 2025 02:31:32 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%7]) with mapi id 15.20.9366.009; Thu, 27 Nov 2025
 02:31: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: 32a3103a-cb39-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pxSMR8TwsUGEiDfnYHx1tTo05GMz8ty5+lMxJNNk31fkvRsLchEXz/2FzPDmm8vyFATKEoO9uIwJwKLVR98D86jQp6Xjcz27WPUEXTPMfAU4WrJfDGZ9u2gl5RWiXCzKxIRsGpDct+Ff403klCxiFiLRnJTbkrA/UscScKUisQiuEHYDndtZt8ebvDAgaIhbI1lUp3pyECgwTrzkW+77dQKQ3s7+Xr/gWYgmZOuGB61pgTXVxwPloZ4wqmgDdz85RFzlDJAzWEG2N0diX+zATsC5NrcW3+39Y7fuhSjfF+gPJQuPcO6mQMe4zx+0U6zXazbZ4pD+Yon5vEwBZk1OOw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KudwijRkpMHAGrHsBiFPP/Rq/llgDEszgrpzXVriWJg=;
 b=hVcztdyaKYByCI6yzKa09mzLHdbKMNY+eAXEhJd/ss4KI5f/h7nSRiw3XZc6eXPzSRcwXIIeFEHnn65g6wcxjzpo9AYPz4vIo5Z94zagEH7BPV5tqBMh3EX2Id0FB2d0YziSSNUOXVwLEaTCE7eILRoAg6kiSMDKkB3sm6DIv8Apmjf29MpNVi9C6IEfy/QuZVlUGfSIfmtaJMf5OgaJBouCCX8MKKVceJ24B6gcKp2Ex7O1LS1SAtK1wrtlTyH5kKSUjn0hNPotzXTD0trbNZEmILqn2txOVmPDHWGI+14qa4vZsZfrzMMEGjq52y3UxM5774jbOGgpRPKXnEtSpQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KudwijRkpMHAGrHsBiFPP/Rq/llgDEszgrpzXVriWJg=;
 b=gHrOkqJ6Gx87G0XBkqa+VlVBTEsNx2Cbxmce/B+oQpNoBbXk59/amlk5ps+WzXlComXa+z/32DTxcCk6q+fw7Mb7G66HOWEsiRVROAhWPd3hnySmOXkljo53YSzFFp+7IGZHWfzvT2VrI6bp9FODKRvLZnKhR8cVoG2gGJA1FQQr4VuNlIK+nWajpd6GvAUG3nG0jIgvOHPRGsIFi93EJaKV5a4PYj/PqBxdYL543GLSfKM/4f8GSEU2KS0XxmW8g/cCfU/qygzy0rWHHIsqliC6y9MBjLkxiHWaG8hD60iU3lIhEz/hLPI7hGeGmSOaCaDOQyfLCzY/EFWDi9rVkQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Milan Djokic <milan_djokic@epam.com>
CC: Julien Grall <julien@xen.org>, Julien Grall <julien.grall.oss@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Rahul Singh <rahul.singh@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Nick Rosbrook <enr0n@ubuntu.com>, George Dunlap
	<gwd@xenproject.org>, Juergen Gross <jgross@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>
Subject: Re: [PATCH 00/20] Add SMMUv3 Stage 1 Support for XEN guests
Thread-Topic: [PATCH 00/20] Add SMMUv3 Stage 1 Support for XEN guests
Thread-Index: AQHcB7wdmg15F24Gc0ClRsxpCVedRA==
Date: Thu, 27 Nov 2025 02:31:32 +0000
Message-ID: <87a508kxz0.fsf@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
	<CAJ=z9a1eM6M+Gagond9TiFtF7c7EEQKOKHANcvDWDhW_3JzqOA@mail.gmail.com>
	<12ba4388-ee23-4e17-910f-9702271865ad@epam.com>
	<b1f79b84-d0c4-4807-87a7-1cf94e58ecee@xen.org>
	<a5943713-85fa-48ad-86fe-5698604ed8c9@epam.com>	<87v7m93bo0.fsf@epam.com>
	<6c80a929-8139-4461-b11c-e6ac67c3d2e4@epam.com>	<875xe6ytyk.fsf@epam.com>
	<65727710-0a88-4fff-bb5b-9cf34106833c@epam.com>
	<5df30dbf-17a2-446f-83f9-0e4468622917@epam.com>
In-Reply-To: <5df30dbf-17a2-446f-83f9-0e4468622917@epam.com> (Milan Djokic's
	message of "Mon, 3 Nov 2025 14:16:40 +0100")
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV1PR03MB10456:EE_|AS8PR03MB7781:EE_
x-ms-office365-filtering-correlation-id: 8cbd0fe8-9bee-4594-f044-08de2d5d1403
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|42112799006|7416014|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?A3SBDBXs+4uMQ1xcgYFh9zLkZSnukOsTvM5YwxaTg4WPGoqmx6N+gOzknE?=
 =?iso-8859-1?Q?YJjN92TKthDMg7/d1H+E6EzwqpEMF6A7ptJSHjAr7sPPiMrdo1sT7TkHim?=
 =?iso-8859-1?Q?h4uO7NAQqXOvn4TXQDlGfIMMudbVi1ezBdYMzjubsO3mJf7J/7D7oqbrvb?=
 =?iso-8859-1?Q?C7HQF3yja9qG2kW2i+q1oC5NuijPb0CHxx7ORBa2aqzfseAgu1GnAYXyNV?=
 =?iso-8859-1?Q?T2nIU26Wt36+lNp4YGluRdiKbhyfTLpo/N/ut+jETbmUw/0GreMTU6P68E?=
 =?iso-8859-1?Q?Dc5WCUExJwtSMSi2H6gFuVuGaCRZmEfbsf3csn8LAVvimonQxiNfOX0Z2R?=
 =?iso-8859-1?Q?7TormTlPn5jz8Wozze4q7dT5EVCpgjwi65fhINIlnwWbyAKaDPcOXU1rTQ?=
 =?iso-8859-1?Q?CO/v4pH9jFuyjqjd1ZUfk5ZM1TCQjzyjLzaYt5KB3HIxMjsjDGgVsfD2Md?=
 =?iso-8859-1?Q?9MhCSu8XUnEeFNE0/8XAs4yfy3OoGAnF4x94ikTRwjFbH6kxE2z3q7bEYG?=
 =?iso-8859-1?Q?+P/vA7J0SqO332HIH1MyWpxllf3Sekf5k1gvVlpqjQUInNMhyDNDYl52Fi?=
 =?iso-8859-1?Q?Bb96YlDhkwmI/YW3v5xOHE4gCGbxAm4qlYs1HXmoukNY6mH3DmVQptfEWK?=
 =?iso-8859-1?Q?xJrJCb2bNRHXtkfJaTjrlu6LEABZG2qh+8b0fH2dUKtlgPNdZpjJvQHyWs?=
 =?iso-8859-1?Q?omOgxzwbUqT6L+H1Pr2r1wfzNRvZI/jg5kt34k853ryT/lwR2L5PgtRgue?=
 =?iso-8859-1?Q?pGNHr5G88/IGRxbNDWmmxRsp8o0bwU5WFjuXuMqB1kZ3CzFXvQaQe60i+O?=
 =?iso-8859-1?Q?XIHlNei05P3z2F7FXH01hEdTGmZsE9fPHX7lCMxL6Q0KkbgvKXAFuVJucZ?=
 =?iso-8859-1?Q?PoDnDx/Ip0J4yP3jgXE30NXiC+cxcTU+3BItUSa7oA8hEj1tXwzgHk1IBk?=
 =?iso-8859-1?Q?4yanz57Weq9tR6XBF/SoxIiD8gM7MJyZDpI4xQYcEes3lPHQgdsK0OSq0P?=
 =?iso-8859-1?Q?aASd/J+o7AALoHlmhWo8pStL/AxcpCq3gsVWn7o2Z7NR+o6q2TqBqHPmRV?=
 =?iso-8859-1?Q?iTN9leosEvCp/CK/0smwhxAh//RPfXw+aFF+qBLby8EJFNEnEJWMajgPyI?=
 =?iso-8859-1?Q?X8xOvjlHeqcFalg/EEZIPR+jasZQnRmYer9q+GFdJ8kW1N372J8Pia6YJJ?=
 =?iso-8859-1?Q?KGck6fsnTl26ApryYrMr0mC5QbwY9viR6ag06XA6Sj2NSi9/8iCXGSrgwR?=
 =?iso-8859-1?Q?Ht5ZO5flX3j4QquCwhrbyAb26vpXhK1sQEhwFETjmMRS+g8bR4Kn5wLFGb?=
 =?iso-8859-1?Q?4RH2N4XbddmoBiyVo1ZOWWEoVqO+kJKq32Jtlp5ktdTTXoSULGVS5/TbcT?=
 =?iso-8859-1?Q?kjjMZMPLoK1Yy2cMGmNXQ1CLSyV3qF2i7c/NuYguF5K8AvM+/zrPnahmm/?=
 =?iso-8859-1?Q?cSLKIlJk/8MzJBOsACcBBzbO1AsghAOVFTaWM+S5CZMrTEPL92LMk8p7Lm?=
 =?iso-8859-1?Q?yHcT7IIRToSWt3mSCK5aGYxLh6g54E6J4dIT7QH6AyGqjlDUEcLLMq7VNK?=
 =?iso-8859-1?Q?jBFS1pX9AI3W+WrUCi/RqR8aFuAd?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(42112799006)(7416014)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?poKlCtgAWa3jL4VmX3qgn+aGxXEbDQcJJxiEWGeBGBJmERHVLA9B3ADmwx?=
 =?iso-8859-1?Q?mNp3Znmsq9lRly5dbkALdz5ctYPHaDmX/Aq0AeF8wmat9ik9q3rU1QNtb3?=
 =?iso-8859-1?Q?Igj7l3v/vF4BKeL2c+Tvl8wvfppjxOj53MzfHxv1ueel4DsqLyLfCTEqjX?=
 =?iso-8859-1?Q?UxIjRjHS6QHz764jbX73BxPsGxfoy9BndYHFn0K1AD8B+hixyaRyWbn8XY?=
 =?iso-8859-1?Q?tuVHLMs24YBwhWPl0T8ukGVYLGTH9PyriBTViBYTj7Z2Wptwe1HWLHcvdD?=
 =?iso-8859-1?Q?bxMwadvVF+inJj4BFxIy708AlN8/VQDP5oiOph9NAcab3a8Sm0WatskSlK?=
 =?iso-8859-1?Q?DGLX5+epRFcwbguK7UuPghThyL0oM06dmQrudoUHdGSLh5aEequf8sRz+N?=
 =?iso-8859-1?Q?FxqgkuWi1KrdMfAe273aTNGRFY/vd1OhMEBEGXzr7cQGChZyfD9D81jppi?=
 =?iso-8859-1?Q?g67idZ2f1h5IZ+WHboAfwmY1ynTlBqY16hLgmFfa6Wm4Uk00v/g3hQdPDD?=
 =?iso-8859-1?Q?5ykQfyKgaQD78t1E17gKBpi9n7qDjTTK9cz8SyM84MT+a3h9U70dOKuAX0?=
 =?iso-8859-1?Q?7JyYJF3JOR4MYn+TAAfUr+6sGL14VRDIeuihPAGS/AN+sxcjEew4Lo+cAU?=
 =?iso-8859-1?Q?pX2fr+OSkFQ1naxXBzoz71zcovJXkNR/kISqKXp9bptfeSz/AQLomrE5Kq?=
 =?iso-8859-1?Q?hBuW7wkhKwkjks/wpdq/XIv4oj49iGxO5iLFK6t+9zK8Uj5gw+uFuZbfZi?=
 =?iso-8859-1?Q?HYwsUL699W6mRtf4SgFA7jB7cMbck3HQWNZ5BWqhlkwyksLpQSYZkhAISe?=
 =?iso-8859-1?Q?NOythHcroB7dkvHzFXGsd8VlWx5qT/BmUZm7eIahZC5jnsip8MLwSlhzLf?=
 =?iso-8859-1?Q?n8od4f54/1FJMPpc9IIWS0C6aN7kUFfnJPzmPiY+2dX4L6hqcU1O45RJUT?=
 =?iso-8859-1?Q?cDrs0aNmAIDDntS8mjPhkzjGt3NRmCCSYO95mmGE9UttGy9IL3yzJimXiM?=
 =?iso-8859-1?Q?AyOOsj+ZSNtItOmGkhIJj3vjjn2XN3atsIrx0I536FvQRRDy+KkZQpy5RV?=
 =?iso-8859-1?Q?sfCeZvGAqFSopzP9gefQVH57mU2r0TQPlO4+FUz7Pe/KB7oN9QCRIFsakp?=
 =?iso-8859-1?Q?Y/yTjzEDPGe4mXeRiTori7kyskL75Qdr+7kA38UM+6BG8D99Uf61WqwLgl?=
 =?iso-8859-1?Q?A+A0XIRdP3wCkYYe7iBnnkT8dYAFu5ANE57EsAF8C0tS0aEF9/zMh+reo1?=
 =?iso-8859-1?Q?rXV1OySsgriscBNTQvKACVvu2+0aPCtlQyRA0Z0RRxVLToqjgEN7KSt/1r?=
 =?iso-8859-1?Q?asT2oMXXHYe6YX9fNhLL8JeJSCdKa5tFzU5OR2AjpJMfhYPEng2AagnMNV?=
 =?iso-8859-1?Q?qngfrcJGCNvF15MHucrM5YpWKTJdnu/0uw/pymM4FeGKjVwQKZYPzYKxrE?=
 =?iso-8859-1?Q?Tjws7pSmj0NU1lbeDOi+yJsF4i0vdecQrOo/t6KyMcTiRfmtK0WD1tsxF6?=
 =?iso-8859-1?Q?iUbh2oYW0z9w7u6AA1UFNUqfaSwTh/ziaxGZ4NPNoXqXHMoiS7sDp6vJ9+?=
 =?iso-8859-1?Q?N0QZo3UD6ShY+VaC3zd3wLPXOtzqpKipO5epdei74USa2aW9RdbM9/9uKy?=
 =?iso-8859-1?Q?rEAqOVgO94lqUnwWqAQJUQ6nyvkQ5FXPIV8XB3XEOBYajJRjjfhJ+WoQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: GV1PR03MB10456.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8cbd0fe8-9bee-4594-f044-08de2d5d1403
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Nov 2025 02:31:32.3564
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ZaMPpkf7vW+b/8Bbtlq5N9YktGULMCe7FYlqXGdvq7A1CJvWEQVitq1cXvp34Wo7Y6S5OqewiUkyks0YYySXfu23rmVseksGHclz8V4GZLI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7781

Hi Milan,

Milan Djokic <milan_djokic@epam.com> writes:

> On 9/1/25 13:06, Milan Djokic wrote:

[...]
>
> Hello Volodymyr, Julien
>
> Sorry for the delayed follow-up on this topic.
> 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.
> Following is the updated design document.
> I have added additional details to the design and performance impact
> sections, and also indicated future improvements. Security
> considerations section is unchanged apart from some minor details
> according to review comments.
> Let me know what do you think about updated design. Once approved, I
> will send the updated vIOMMU patch series.

This looks fine for me. I can't see any immediate flaws here. So let's
get to patches :)


[...]

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 07:09:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 07:09:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173409.1498453 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOW7d-0004Ts-RB; Thu, 27 Nov 2025 07:08:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173409.1498453; Thu, 27 Nov 2025 07:08: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 1vOW7d-0004Tl-NI; Thu, 27 Nov 2025 07:08:57 +0000
Received: by outflank-mailman (input) for mailman id 1173409;
 Thu, 27 Nov 2025 07: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=rEk/=6D=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vOW7d-0004Ta-2u
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 07:08:57 +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 ef8c2952-cb5f-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 08:08: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 5A75C33695;
 Thu, 27 Nov 2025 07:08: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 B11323EA63;
 Thu, 27 Nov 2025 07:08:53 +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 6VDBKQX5J2ljXAAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 27 Nov 2025 07: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: ef8c2952-cb5f-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764227334; 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=wid+xJ0/+sd2PFQC3xIhNzsdqCIB2GWUpREB/EeXxr0=;
	b=oEVUrTJVVHl1CjcWvaTRtPHtwvupjdnkvTDc8GCJJx+u4H+q+Lw1cJNK99+y/wCGj93tFd
	xqBni9HzHjFvyB5TxuirK8b6mpTCTYEv28CaztVE3ZIMJAzA4YztvDJKZwyrd0KU18wur9
	QsDwA2QsftXB0LXcaIR4rRgTGmU2rw4=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764227334; 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=wid+xJ0/+sd2PFQC3xIhNzsdqCIB2GWUpREB/EeXxr0=;
	b=oEVUrTJVVHl1CjcWvaTRtPHtwvupjdnkvTDc8GCJJx+u4H+q+Lw1cJNK99+y/wCGj93tFd
	xqBni9HzHjFvyB5TxuirK8b6mpTCTYEv28CaztVE3ZIMJAzA4YztvDJKZwyrd0KU18wur9
	QsDwA2QsftXB0LXcaIR4rRgTGmU2rw4=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	linux-hyperv@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Andy Lutomirski <luto@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	Dexuan Cui <decui@microsoft.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Will Deacon <will@kernel.org>,
	Boqun Feng <boqun.feng@gmail.com>,
	Waiman Long <longman@redhat.com>,
	Jiri Kosina <jikos@kernel.org>,
	Josh Poimboeuf <jpoimboe@kernel.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 01/21] x86/paravirt: Remove not needed includes of paravirt.h
Date: Thu, 27 Nov 2025 08:08:24 +0100
Message-ID: <20251127070844.21919-2-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251127070844.21919-1-jgross@suse.com>
References: <20251127070844.21919-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-1.30 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	RCVD_COUNT_TWO(0.00)[2];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FREEMAIL_CC(0.00)[suse.com,kernel.org,linutronix.de,redhat.com,alien8.de,linux.intel.com,zytor.com,microsoft.com,infradead.org,gmail.com,oracle.com,lists.xenproject.org];
	RCPT_COUNT_TWELVE(0.00)[23];
	MIME_TRACE(0.00)[0:+];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	FROM_HAS_DN(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	TAGGED_RCPT(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCVD_TLS_ALL(0.00)[];
	TO_DN_SOME(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Level: 
X-Spam-Score: -1.30
X-Spam-Flag: NO

In some places asm/paravirt.h is included without really being needed.

Remove the related #include statements.

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---
V3:
- reinstate the include in mmu_context.h (kernel test robot)
V4:
- reinstate the include in arch/x86/kernel/x86_init.c (Boris Petkov)
---
 arch/x86/entry/entry_64.S             | 1 -
 arch/x86/entry/vsyscall/vsyscall_64.c | 1 -
 arch/x86/hyperv/hv_spinlock.c         | 1 -
 arch/x86/include/asm/apic.h           | 4 ----
 arch/x86/include/asm/highmem.h        | 1 -
 arch/x86/include/asm/mshyperv.h       | 1 -
 arch/x86/include/asm/pgtable_32.h     | 1 -
 arch/x86/include/asm/spinlock.h       | 1 -
 arch/x86/include/asm/tlbflush.h       | 4 ----
 arch/x86/kernel/apm_32.c              | 1 -
 arch/x86/kernel/callthunks.c          | 1 -
 arch/x86/kernel/cpu/bugs.c            | 1 -
 arch/x86/kernel/vsmp_64.c             | 1 -
 arch/x86/lib/cache-smp.c              | 1 -
 arch/x86/mm/init.c                    | 1 -
 arch/x86/xen/spinlock.c               | 1 -
 16 files changed, 22 deletions(-)

diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
index ed04a968cc7d..7a82305405af 100644
--- a/arch/x86/entry/entry_64.S
+++ b/arch/x86/entry/entry_64.S
@@ -30,7 +30,6 @@
 #include <asm/hw_irq.h>
 #include <asm/page_types.h>
 #include <asm/irqflags.h>
-#include <asm/paravirt.h>
 #include <asm/percpu.h>
 #include <asm/asm.h>
 #include <asm/smap.h>
diff --git a/arch/x86/entry/vsyscall/vsyscall_64.c b/arch/x86/entry/vsyscall/vsyscall_64.c
index 6e6c0a740837..4bd1e271bb22 100644
--- a/arch/x86/entry/vsyscall/vsyscall_64.c
+++ b/arch/x86/entry/vsyscall/vsyscall_64.c
@@ -37,7 +37,6 @@
 #include <asm/unistd.h>
 #include <asm/fixmap.h>
 #include <asm/traps.h>
-#include <asm/paravirt.h>
 
 #define CREATE_TRACE_POINTS
 #include "vsyscall_trace.h"
diff --git a/arch/x86/hyperv/hv_spinlock.c b/arch/x86/hyperv/hv_spinlock.c
index 81b006601370..2a3c2afb0154 100644
--- a/arch/x86/hyperv/hv_spinlock.c
+++ b/arch/x86/hyperv/hv_spinlock.c
@@ -13,7 +13,6 @@
 #include <linux/spinlock.h>
 
 #include <asm/mshyperv.h>
-#include <asm/paravirt.h>
 #include <asm/apic.h>
 #include <asm/msr.h>
 
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
index a26e66d66444..9cd493d467d4 100644
--- a/arch/x86/include/asm/apic.h
+++ b/arch/x86/include/asm/apic.h
@@ -90,10 +90,6 @@ static inline bool apic_from_smp_config(void)
 /*
  * Basic functions accessing APICs.
  */
-#ifdef CONFIG_PARAVIRT
-#include <asm/paravirt.h>
-#endif
-
 static inline void native_apic_mem_write(u32 reg, u32 v)
 {
 	volatile u32 *addr = (volatile u32 *)(APIC_BASE + reg);
diff --git a/arch/x86/include/asm/highmem.h b/arch/x86/include/asm/highmem.h
index 585bdadba47d..decfaaf52326 100644
--- a/arch/x86/include/asm/highmem.h
+++ b/arch/x86/include/asm/highmem.h
@@ -24,7 +24,6 @@
 #include <linux/interrupt.h>
 #include <linux/threads.h>
 #include <asm/tlbflush.h>
-#include <asm/paravirt.h>
 #include <asm/fixmap.h>
 #include <asm/pgtable_areas.h>
 
diff --git a/arch/x86/include/asm/mshyperv.h b/arch/x86/include/asm/mshyperv.h
index 605abd02158d..15e2693b8070 100644
--- a/arch/x86/include/asm/mshyperv.h
+++ b/arch/x86/include/asm/mshyperv.h
@@ -8,7 +8,6 @@
 #include <linux/io.h>
 #include <linux/static_call.h>
 #include <asm/nospec-branch.h>
-#include <asm/paravirt.h>
 #include <asm/msr.h>
 #include <hyperv/hvhdk.h>
 
diff --git a/arch/x86/include/asm/pgtable_32.h b/arch/x86/include/asm/pgtable_32.h
index b612cc57a4d3..acea0cfa2460 100644
--- a/arch/x86/include/asm/pgtable_32.h
+++ b/arch/x86/include/asm/pgtable_32.h
@@ -16,7 +16,6 @@
 #ifndef __ASSEMBLER__
 #include <asm/processor.h>
 #include <linux/threads.h>
-#include <asm/paravirt.h>
 
 #include <linux/bitops.h>
 #include <linux/list.h>
diff --git a/arch/x86/include/asm/spinlock.h b/arch/x86/include/asm/spinlock.h
index 5b6bc7016c22..934632b78d09 100644
--- a/arch/x86/include/asm/spinlock.h
+++ b/arch/x86/include/asm/spinlock.h
@@ -7,7 +7,6 @@
 #include <asm/page.h>
 #include <asm/processor.h>
 #include <linux/compiler.h>
-#include <asm/paravirt.h>
 #include <asm/bitops.h>
 
 /*
diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h
index 00daedfefc1b..238a6b807da5 100644
--- a/arch/x86/include/asm/tlbflush.h
+++ b/arch/x86/include/asm/tlbflush.h
@@ -300,10 +300,6 @@ static inline void mm_clear_asid_transition(struct mm_struct *mm) { }
 static inline bool mm_in_asid_transition(struct mm_struct *mm) { return false; }
 #endif /* CONFIG_BROADCAST_TLB_FLUSH */
 
-#ifdef CONFIG_PARAVIRT
-#include <asm/paravirt.h>
-#endif
-
 #define flush_tlb_mm(mm)						\
 		flush_tlb_mm_range(mm, 0UL, TLB_FLUSH_ALL, 0UL, true)
 
diff --git a/arch/x86/kernel/apm_32.c b/arch/x86/kernel/apm_32.c
index b37ab1095707..3175d7c134e9 100644
--- a/arch/x86/kernel/apm_32.c
+++ b/arch/x86/kernel/apm_32.c
@@ -229,7 +229,6 @@
 #include <linux/uaccess.h>
 #include <asm/desc.h>
 #include <asm/olpc.h>
-#include <asm/paravirt.h>
 #include <asm/reboot.h>
 #include <asm/nospec-branch.h>
 #include <asm/ibt.h>
diff --git a/arch/x86/kernel/callthunks.c b/arch/x86/kernel/callthunks.c
index a951333c5995..e37728f70322 100644
--- a/arch/x86/kernel/callthunks.c
+++ b/arch/x86/kernel/callthunks.c
@@ -15,7 +15,6 @@
 #include <asm/insn.h>
 #include <asm/kexec.h>
 #include <asm/nospec-branch.h>
-#include <asm/paravirt.h>
 #include <asm/sections.h>
 #include <asm/switch_to.h>
 #include <asm/sync_core.h>
diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c
index d7fa03bf51b4..cb200930510e 100644
--- a/arch/x86/kernel/cpu/bugs.c
+++ b/arch/x86/kernel/cpu/bugs.c
@@ -25,7 +25,6 @@
 #include <asm/fpu/api.h>
 #include <asm/msr.h>
 #include <asm/vmx.h>
-#include <asm/paravirt.h>
 #include <asm/cpu_device_id.h>
 #include <asm/e820/api.h>
 #include <asm/hypervisor.h>
diff --git a/arch/x86/kernel/vsmp_64.c b/arch/x86/kernel/vsmp_64.c
index 73511332bb67..25625e3fc183 100644
--- a/arch/x86/kernel/vsmp_64.c
+++ b/arch/x86/kernel/vsmp_64.c
@@ -18,7 +18,6 @@
 #include <asm/apic.h>
 #include <asm/pci-direct.h>
 #include <asm/io.h>
-#include <asm/paravirt.h>
 #include <asm/setup.h>
 
 #define TOPOLOGY_REGISTER_OFFSET 0x10
diff --git a/arch/x86/lib/cache-smp.c b/arch/x86/lib/cache-smp.c
index c5c60d07308c..ae5a5dfd33c7 100644
--- a/arch/x86/lib/cache-smp.c
+++ b/arch/x86/lib/cache-smp.c
@@ -1,5 +1,4 @@
 // SPDX-License-Identifier: GPL-2.0
-#include <asm/paravirt.h>
 #include <linux/smp.h>
 #include <linux/export.h>
 
diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
index 8bf6ad4b9400..76537d40493c 100644
--- a/arch/x86/mm/init.c
+++ b/arch/x86/mm/init.c
@@ -27,7 +27,6 @@
 #include <asm/pti.h>
 #include <asm/text-patching.h>
 #include <asm/memtype.h>
-#include <asm/paravirt.h>
 #include <asm/mmu_context.h>
 
 /*
diff --git a/arch/x86/xen/spinlock.c b/arch/x86/xen/spinlock.c
index 8e4efe0fb6f9..fe56646d6919 100644
--- a/arch/x86/xen/spinlock.c
+++ b/arch/x86/xen/spinlock.c
@@ -8,7 +8,6 @@
 #include <linux/slab.h>
 #include <linux/atomic.h>
 
-#include <asm/paravirt.h>
 #include <asm/qspinlock.h>
 
 #include <xen/events.h>
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 07:09:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 07:09:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173410.1498459 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOW7e-0004X2-4S; Thu, 27 Nov 2025 07:08:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173410.1498459; Thu, 27 Nov 2025 07: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 1vOW7d-0004Wj-UB; Thu, 27 Nov 2025 07:08:57 +0000
Received: by outflank-mailman (input) for mailman id 1173410;
 Thu, 27 Nov 2025 07:08: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=rEk/=6D=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vOW7d-0004TZ-1d
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 07:08:57 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ed050cdc-cb5f-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 08:08:50 +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-out2.suse.de (Postfix) with ESMTPS id 508465BCC4;
 Thu, 27 Nov 2025 07:08:48 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id CCCEF3EA63;
 Thu, 27 Nov 2025 07:08:46 +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 +HFzMP74J2lYXAAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 27 Nov 2025 07:08:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ed050cdc-cb5f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764227329; 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=GkYN9sQBp6dFq1RSSSZnuQ9AZ+VFB0EPlCzVmqFi3YU=;
	b=NRFjlEQEFRUF7MB0YXXuWH+hccvSptPQkIWcQIN42Eujd+3DypnWRVBsEJOEQpawsBHhRT
	DZCAXZ/+rWHpMsRmIsSSJO7Q0/+CGg09JHud8frJouhM+o9x2Jc+uC8CI7ytj0uFvKEN6J
	1q+u7R80ryYQ3g0sjK8vydN/B0Qf08k=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=uKKXG1H+
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764227328; 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=GkYN9sQBp6dFq1RSSSZnuQ9AZ+VFB0EPlCzVmqFi3YU=;
	b=uKKXG1H+6MZGr/tZefnbzOsYOgrhg2akWRcpCnauAJm2xDHwX7cweR+dsw1lfTmF6IjuH5
	vzBWHYIhEpeDfzWOo6Kp6y/QHgKEtErU0VGcSns5/+PZDcnsbDi9V133ATlarmPHbh0An/
	TbbVvbnfugeXzU5GIet2NqMAuAkNa1o=
From: Juergen Gross <jgross@suse.com>
To: 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,
	linux-riscv@lists.infradead.org,
	kvm@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Andy Lutomirski <luto@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	Dexuan Cui <decui@microsoft.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Will Deacon <will@kernel.org>,
	Boqun Feng <boqun.feng@gmail.com>,
	Waiman Long <longman@redhat.com>,
	Jiri Kosina <jikos@kernel.org>,
	Josh Poimboeuf <jpoimboe@kernel.org>,
	Pawan Gupta <pawan.kumar.gupta@linux.intel.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>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Huacai Chen <chenhuacai@kernel.org>,
	WANG Xuerui <kernel@xen0n.name>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Paul Walmsley <pjw@kernel.org>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Alexandre Ghiti <alex@ghiti.fr>,
	Juri Lelli <juri.lelli@redhat.com>,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Dietmar Eggemann <dietmar.eggemann@arm.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Ben Segall <bsegall@google.com>,
	Mel Gorman <mgorman@suse.de>,
	Valentin Schneider <vschneid@redhat.com>,
	linux-arm-kernel@lists.infradead.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Oleg Nesterov <oleg@redhat.com>
Subject: [PATCH v4 00/21] paravirt: cleanup and reorg
Date: Thu, 27 Nov 2025 08:08:23 +0100
Message-ID: <20251127070844.21919-1-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-1.51 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	MIME_TRACE(0.00)[0:+];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	ARC_NA(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	FREEMAIL_CC(0.00)[suse.com,kernel.org,linutronix.de,redhat.com,alien8.de,linux.intel.com,zytor.com,microsoft.com,infradead.org,gmail.com,oracle.com,lists.xenproject.org,broadcom.com,armlinux.org.uk,arm.com,xen0n.name,linux.ibm.com,ellerman.id.au,csgroup.eu,dabbelt.com,eecs.berkeley.edu,ghiti.fr,linaro.org,goodmis.org,google.com,suse.de,lists.infradead.org,epam.com];
	DKIM_TRACE(0.00)[suse.com:+];
	TO_DN_SOME(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	TO_MATCH_ENVRCPT_SOME(0.00)[];
	TAGGED_RCPT(0.00)[];
	RCPT_COUNT_GT_50(0.00)[57];
	R_RATELIMIT(0.00)[to_ip_from(RLkdkdrsxe9hqhhs5ask8616i6)];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Level: 
X-Spam-Score: -1.51
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Rspamd-Queue-Id: 508465BCC4
X-Rspamd-Action: no action
X-Spam-Flag: NO

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.

- The 4th patch is just a movement of code.

- I don't know for what reason asm/paravirt_api_clock.h was added,
  as all archs supporting it do it exactly in the same way. Patch
  5 is removing it.

- Patches 6-14 are streamlining the paravirt clock interfaces by
  using a common implementation across architectures where possible
  and by moving the related code into common sched code, as this is
  where it should live.

- Patches 15-20 are more like RFC material preparing the paravirt
  infrastructure to support multiple pv_ops function arrays.
  As a prerequisite for that it makes life in objtool much easier
  with dropping the Xen static initializers of the pv_ops sub-
  structures, which is done in patches 15-17.
  Patches 18-20 are doing the real preparations for multiple pv_ops
  arrays and using those arrays in multiple headers.

- Patch 21 is an example how the new scheme can look like using the
  PV-spinlocks.

Changes in V2:
- new patches 13-18 and 20
- complete rework of patch 21

Changes in V3:
- fixed 2 issues detected by kernel test robot

Changes in V4:
- fixed one build issue

Juergen Gross (21):
  x86/paravirt: Remove not needed includes of paravirt.h
  x86/paravirt: Remove some unneeded struct declarations
  x86/paravirt: Remove PARAVIRT_DEBUG config option
  x86/paravirt: Move thunk macros to paravirt_types.h
  paravirt: Remove asm/paravirt_api_clock.h
  sched: Move clock related paravirt code to kernel/sched
  arm/paravirt: Use common code for paravirt_steal_clock()
  arm64/paravirt: Use common code for paravirt_steal_clock()
  loongarch/paravirt: Use common code for paravirt_steal_clock()
  riscv/paravirt: Use common code for paravirt_steal_clock()
  x86/paravirt: Use common code for paravirt_steal_clock()
  x86/paravirt: Move paravirt_sched_clock() related code into tsc.c
  x86/paravirt: Introduce new paravirt-base.h header
  x86/paravirt: Move pv_native_*() prototypes to paravirt.c
  x86/xen: Drop xen_irq_ops
  x86/xen: Drop xen_cpu_ops
  x86/xen: Drop xen_mmu_ops
  objtool: Allow multiple pv_ops arrays
  x86/paravirt: Allow pv-calls outside paravirt.h
  x86/paravirt: Specify pv_ops array in paravirt macros
  x86/pvlocks: Move paravirt spinlock functions into own header

 arch/Kconfig                                  |   3 +
 arch/arm/Kconfig                              |   1 +
 arch/arm/include/asm/paravirt.h               |  22 --
 arch/arm/include/asm/paravirt_api_clock.h     |   1 -
 arch/arm/kernel/Makefile                      |   1 -
 arch/arm/kernel/paravirt.c                    |  23 --
 arch/arm64/Kconfig                            |   1 +
 arch/arm64/include/asm/paravirt.h             |  14 -
 arch/arm64/include/asm/paravirt_api_clock.h   |   1 -
 arch/arm64/kernel/paravirt.c                  |  11 +-
 arch/loongarch/Kconfig                        |   1 +
 arch/loongarch/include/asm/paravirt.h         |  13 -
 .../include/asm/paravirt_api_clock.h          |   1 -
 arch/loongarch/kernel/paravirt.c              |  10 +-
 arch/powerpc/include/asm/paravirt.h           |   3 -
 arch/powerpc/include/asm/paravirt_api_clock.h |   2 -
 arch/powerpc/platforms/pseries/setup.c        |   4 +-
 arch/riscv/Kconfig                            |   1 +
 arch/riscv/include/asm/paravirt.h             |  14 -
 arch/riscv/include/asm/paravirt_api_clock.h   |   1 -
 arch/riscv/kernel/paravirt.c                  |  11 +-
 arch/x86/Kconfig                              |   8 +-
 arch/x86/entry/entry_64.S                     |   1 -
 arch/x86/entry/vsyscall/vsyscall_64.c         |   1 -
 arch/x86/hyperv/hv_spinlock.c                 |  11 +-
 arch/x86/include/asm/apic.h                   |   4 -
 arch/x86/include/asm/highmem.h                |   1 -
 arch/x86/include/asm/mshyperv.h               |   1 -
 arch/x86/include/asm/paravirt-base.h          |  29 ++
 arch/x86/include/asm/paravirt-spinlock.h      | 146 ++++++++
 arch/x86/include/asm/paravirt.h               | 331 +++++-------------
 arch/x86/include/asm/paravirt_api_clock.h     |   1 -
 arch/x86/include/asm/paravirt_types.h         | 269 +++++++-------
 arch/x86/include/asm/pgtable_32.h             |   1 -
 arch/x86/include/asm/ptrace.h                 |   2 +-
 arch/x86/include/asm/qspinlock.h              |  89 +----
 arch/x86/include/asm/spinlock.h               |   1 -
 arch/x86/include/asm/timer.h                  |   1 +
 arch/x86/include/asm/tlbflush.h               |   4 -
 arch/x86/kernel/Makefile                      |   2 +-
 arch/x86/kernel/apm_32.c                      |   1 -
 arch/x86/kernel/callthunks.c                  |   1 -
 arch/x86/kernel/cpu/bugs.c                    |   1 -
 arch/x86/kernel/cpu/vmware.c                  |   1 +
 arch/x86/kernel/kvm.c                         |  13 +-
 arch/x86/kernel/kvmclock.c                    |   1 +
 arch/x86/kernel/paravirt-spinlocks.c          |  26 +-
 arch/x86/kernel/paravirt.c                    |  42 +--
 arch/x86/kernel/tsc.c                         |  10 +-
 arch/x86/kernel/vsmp_64.c                     |   1 -
 arch/x86/lib/cache-smp.c                      |   1 -
 arch/x86/mm/init.c                            |   1 -
 arch/x86/xen/enlighten_pv.c                   |  82 ++---
 arch/x86/xen/irq.c                            |  20 +-
 arch/x86/xen/mmu_pv.c                         | 100 ++----
 arch/x86/xen/spinlock.c                       |  11 +-
 arch/x86/xen/time.c                           |   2 +
 drivers/clocksource/hyperv_timer.c            |   2 +
 drivers/xen/time.c                            |   2 +-
 include/linux/sched/cputime.h                 |  18 +
 kernel/sched/core.c                           |   5 +
 kernel/sched/cputime.c                        |  13 +
 kernel/sched/sched.h                          |   3 +-
 tools/objtool/arch/x86/decode.c               |   8 +-
 tools/objtool/check.c                         |  78 ++++-
 tools/objtool/include/objtool/check.h         |   2 +
 66 files changed, 661 insertions(+), 826 deletions(-)
 delete mode 100644 arch/arm/include/asm/paravirt.h
 delete mode 100644 arch/arm/include/asm/paravirt_api_clock.h
 delete mode 100644 arch/arm/kernel/paravirt.c
 delete mode 100644 arch/arm64/include/asm/paravirt_api_clock.h
 delete mode 100644 arch/loongarch/include/asm/paravirt_api_clock.h
 delete mode 100644 arch/powerpc/include/asm/paravirt_api_clock.h
 delete mode 100644 arch/riscv/include/asm/paravirt_api_clock.h
 create mode 100644 arch/x86/include/asm/paravirt-base.h
 create mode 100644 arch/x86/include/asm/paravirt-spinlock.h
 delete mode 100644 arch/x86/include/asm/paravirt_api_clock.h

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 07:09:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 07:09:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173421.1498471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOW87-0005JL-BH; Thu, 27 Nov 2025 07:09:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173421.1498471; Thu, 27 Nov 2025 07:09: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 1vOW87-0005JE-8U; Thu, 27 Nov 2025 07:09:27 +0000
Received: by outflank-mailman (input) for mailman id 1173421;
 Thu, 27 Nov 2025 07:09: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=rEk/=6D=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vOW86-0004Ta-89
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 07:09:26 +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 01791863-cb60-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 08:09:25 +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 D97F333691;
 Thu, 27 Nov 2025 07:09:24 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id B0BB93EA63;
 Thu, 27 Nov 2025 07:09:23 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id fAinKSP5J2mCXAAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 27 Nov 2025 07:09:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 01791863-cb60-11f0-9d18-b5c5bf9af7f9
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,
	loongarch@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org,
	kvm@vger.kernel.org
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>,
	Russell King <linux@armlinux.org.uk>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Huacai Chen <chenhuacai@kernel.org>,
	WANG Xuerui <kernel@xen0n.name>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Paul Walmsley <pjw@kernel.org>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Alexandre Ghiti <alex@ghiti.fr>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Juri Lelli <juri.lelli@redhat.com>,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Dietmar Eggemann <dietmar.eggemann@arm.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Ben Segall <bsegall@google.com>,
	Mel Gorman <mgorman@suse.de>,
	Valentin Schneider <vschneid@redhat.com>,
	linux-arm-kernel@lists.infradead.org,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 06/21] sched: Move clock related paravirt code to kernel/sched
Date: Thu, 27 Nov 2025 08:08:29 +0100
Message-ID: <20251127070844.21919-7-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251127070844.21919-1-jgross@suse.com>
References: <20251127070844.21919-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-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[];
	R_RATELIMIT(0.00)[to_ip_from(RLkdkdrsxe9hqhhs5ask8616i6)]
X-Rspamd-Queue-Id: D97F333691
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Spam-Flag: NO
X-Spam-Score: -4.00
X-Spam-Level: 
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org

Paravirt clock related functions are available in multiple archs.

In order to share the common parts, move the common static keys
to kernel/sched/ and remove them from the arch specific files.

Make a common paravirt_steal_clock() implementation available in
kernel/sched/cputime.c, guarding it with a new config option
CONFIG_HAVE_PV_STEAL_CLOCK_GEN, which can be selected by an arch
in case it wants to use that common variant.

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---
 arch/Kconfig                           |  3 +++
 arch/arm/include/asm/paravirt.h        |  4 ----
 arch/arm/kernel/paravirt.c             |  3 ---
 arch/arm64/include/asm/paravirt.h      |  4 ----
 arch/arm64/kernel/paravirt.c           |  4 +---
 arch/loongarch/include/asm/paravirt.h  |  3 ---
 arch/loongarch/kernel/paravirt.c       |  3 +--
 arch/powerpc/include/asm/paravirt.h    |  3 ---
 arch/powerpc/platforms/pseries/setup.c |  4 +---
 arch/riscv/include/asm/paravirt.h      |  4 ----
 arch/riscv/kernel/paravirt.c           |  4 +---
 arch/x86/include/asm/paravirt.h        |  4 ----
 arch/x86/kernel/cpu/vmware.c           |  1 +
 arch/x86/kernel/kvm.c                  |  1 +
 arch/x86/kernel/paravirt.c             |  3 ---
 drivers/xen/time.c                     |  1 +
 include/linux/sched/cputime.h          | 18 ++++++++++++++++++
 kernel/sched/core.c                    |  5 +++++
 kernel/sched/cputime.c                 | 13 +++++++++++++
 kernel/sched/sched.h                   |  2 +-
 20 files changed, 47 insertions(+), 40 deletions(-)

diff --git a/arch/Kconfig b/arch/Kconfig
index 61130b88964b..e3e39c2efa90 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -1059,6 +1059,9 @@ config HAVE_IRQ_TIME_ACCOUNTING
 	  Archs need to ensure they use a high enough resolution clock to
 	  support irq time accounting and then call enable_sched_clock_irqtime().
 
+config HAVE_PV_STEAL_CLOCK_GEN
+	bool
+
 config HAVE_MOVE_PUD
 	bool
 	help
diff --git a/arch/arm/include/asm/paravirt.h b/arch/arm/include/asm/paravirt.h
index 95d5b0d625cd..69da4bdcf856 100644
--- a/arch/arm/include/asm/paravirt.h
+++ b/arch/arm/include/asm/paravirt.h
@@ -5,10 +5,6 @@
 #ifdef CONFIG_PARAVIRT
 #include <linux/static_call_types.h>
 
-struct static_key;
-extern struct static_key paravirt_steal_enabled;
-extern struct static_key paravirt_steal_rq_enabled;
-
 u64 dummy_steal_clock(int cpu);
 
 DECLARE_STATIC_CALL(pv_steal_clock, dummy_steal_clock);
diff --git a/arch/arm/kernel/paravirt.c b/arch/arm/kernel/paravirt.c
index 7dd9806369fb..3895a5578852 100644
--- a/arch/arm/kernel/paravirt.c
+++ b/arch/arm/kernel/paravirt.c
@@ -12,9 +12,6 @@
 #include <linux/static_call.h>
 #include <asm/paravirt.h>
 
-struct static_key paravirt_steal_enabled;
-struct static_key paravirt_steal_rq_enabled;
-
 static u64 native_steal_clock(int cpu)
 {
 	return 0;
diff --git a/arch/arm64/include/asm/paravirt.h b/arch/arm64/include/asm/paravirt.h
index 9aa193e0e8f2..c9f7590baacb 100644
--- a/arch/arm64/include/asm/paravirt.h
+++ b/arch/arm64/include/asm/paravirt.h
@@ -5,10 +5,6 @@
 #ifdef CONFIG_PARAVIRT
 #include <linux/static_call_types.h>
 
-struct static_key;
-extern struct static_key paravirt_steal_enabled;
-extern struct static_key paravirt_steal_rq_enabled;
-
 u64 dummy_steal_clock(int cpu);
 
 DECLARE_STATIC_CALL(pv_steal_clock, dummy_steal_clock);
diff --git a/arch/arm64/kernel/paravirt.c b/arch/arm64/kernel/paravirt.c
index aa718d6a9274..943b60ce12f4 100644
--- a/arch/arm64/kernel/paravirt.c
+++ b/arch/arm64/kernel/paravirt.c
@@ -19,14 +19,12 @@
 #include <linux/slab.h>
 #include <linux/types.h>
 #include <linux/static_call.h>
+#include <linux/sched/cputime.h>
 
 #include <asm/paravirt.h>
 #include <asm/pvclock-abi.h>
 #include <asm/smp_plat.h>
 
-struct static_key paravirt_steal_enabled;
-struct static_key paravirt_steal_rq_enabled;
-
 static u64 native_steal_clock(int cpu)
 {
 	return 0;
diff --git a/arch/loongarch/include/asm/paravirt.h b/arch/loongarch/include/asm/paravirt.h
index 3f4323603e6a..d219ea0d98ac 100644
--- a/arch/loongarch/include/asm/paravirt.h
+++ b/arch/loongarch/include/asm/paravirt.h
@@ -5,9 +5,6 @@
 #ifdef CONFIG_PARAVIRT
 
 #include <linux/static_call_types.h>
-struct static_key;
-extern struct static_key paravirt_steal_enabled;
-extern struct static_key paravirt_steal_rq_enabled;
 
 u64 dummy_steal_clock(int cpu);
 DECLARE_STATIC_CALL(pv_steal_clock, dummy_steal_clock);
diff --git a/arch/loongarch/kernel/paravirt.c b/arch/loongarch/kernel/paravirt.c
index b1b51f920b23..8caaa94fed1a 100644
--- a/arch/loongarch/kernel/paravirt.c
+++ b/arch/loongarch/kernel/paravirt.c
@@ -6,11 +6,10 @@
 #include <linux/kvm_para.h>
 #include <linux/reboot.h>
 #include <linux/static_call.h>
+#include <linux/sched/cputime.h>
 #include <asm/paravirt.h>
 
 static int has_steal_clock;
-struct static_key paravirt_steal_enabled;
-struct static_key paravirt_steal_rq_enabled;
 static DEFINE_PER_CPU(struct kvm_steal_time, steal_time) __aligned(64);
 DEFINE_STATIC_KEY_FALSE(virt_spin_lock_key);
 
diff --git a/arch/powerpc/include/asm/paravirt.h b/arch/powerpc/include/asm/paravirt.h
index b78b82d66057..92343a23ad15 100644
--- a/arch/powerpc/include/asm/paravirt.h
+++ b/arch/powerpc/include/asm/paravirt.h
@@ -23,9 +23,6 @@ static inline bool is_shared_processor(void)
 }
 
 #ifdef CONFIG_PARAVIRT_TIME_ACCOUNTING
-extern struct static_key paravirt_steal_enabled;
-extern struct static_key paravirt_steal_rq_enabled;
-
 u64 pseries_paravirt_steal_clock(int cpu);
 
 static inline u64 paravirt_steal_clock(int cpu)
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c
index b10a25325238..50b26ed8432d 100644
--- a/arch/powerpc/platforms/pseries/setup.c
+++ b/arch/powerpc/platforms/pseries/setup.c
@@ -42,6 +42,7 @@
 #include <linux/memblock.h>
 #include <linux/swiotlb.h>
 #include <linux/seq_buf.h>
+#include <linux/sched/cputime.h>
 
 #include <asm/mmu.h>
 #include <asm/processor.h>
@@ -83,9 +84,6 @@ DEFINE_STATIC_KEY_FALSE(shared_processor);
 EXPORT_SYMBOL(shared_processor);
 
 #ifdef CONFIG_PARAVIRT_TIME_ACCOUNTING
-struct static_key paravirt_steal_enabled;
-struct static_key paravirt_steal_rq_enabled;
-
 static bool steal_acc = true;
 static int __init parse_no_stealacc(char *arg)
 {
diff --git a/arch/riscv/include/asm/paravirt.h b/arch/riscv/include/asm/paravirt.h
index c0abde70fc2c..17e5e39c72c0 100644
--- a/arch/riscv/include/asm/paravirt.h
+++ b/arch/riscv/include/asm/paravirt.h
@@ -5,10 +5,6 @@
 #ifdef CONFIG_PARAVIRT
 #include <linux/static_call_types.h>
 
-struct static_key;
-extern struct static_key paravirt_steal_enabled;
-extern struct static_key paravirt_steal_rq_enabled;
-
 u64 dummy_steal_clock(int cpu);
 
 DECLARE_STATIC_CALL(pv_steal_clock, dummy_steal_clock);
diff --git a/arch/riscv/kernel/paravirt.c b/arch/riscv/kernel/paravirt.c
index fa6b0339a65d..d3c334f16172 100644
--- a/arch/riscv/kernel/paravirt.c
+++ b/arch/riscv/kernel/paravirt.c
@@ -16,15 +16,13 @@
 #include <linux/printk.h>
 #include <linux/static_call.h>
 #include <linux/types.h>
+#include <linux/sched/cputime.h>
 
 #include <asm/barrier.h>
 #include <asm/page.h>
 #include <asm/paravirt.h>
 #include <asm/sbi.h>
 
-struct static_key paravirt_steal_enabled;
-struct static_key paravirt_steal_rq_enabled;
-
 static u64 native_steal_clock(int cpu)
 {
 	return 0;
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index 1344d2fb2b86..0ef797ea8440 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -30,10 +30,6 @@ static __always_inline u64 paravirt_sched_clock(void)
 	return static_call(pv_sched_clock)();
 }
 
-struct static_key;
-extern struct static_key paravirt_steal_enabled;
-extern struct static_key paravirt_steal_rq_enabled;
-
 __visible void __native_queued_spin_unlock(struct qspinlock *lock);
 bool pv_is_native_spin_unlock(void);
 __visible bool __native_vcpu_is_preempted(long cpu);
diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
index cb3f900c46fc..a3e6936839b1 100644
--- a/arch/x86/kernel/cpu/vmware.c
+++ b/arch/x86/kernel/cpu/vmware.c
@@ -29,6 +29,7 @@
 #include <linux/efi.h>
 #include <linux/reboot.h>
 #include <linux/static_call.h>
+#include <linux/sched/cputime.h>
 #include <asm/div64.h>
 #include <asm/x86_init.h>
 #include <asm/hypervisor.h>
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index b67d7c59dca0..d54fd2bc0402 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -29,6 +29,7 @@
 #include <linux/syscore_ops.h>
 #include <linux/cc_platform.h>
 #include <linux/efi.h>
+#include <linux/sched/cputime.h>
 #include <asm/timer.h>
 #include <asm/cpu.h>
 #include <asm/traps.h>
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index ab3e172dcc69..a3ba4747be1c 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -60,9 +60,6 @@ void __init native_pv_lock_init(void)
 		static_branch_enable(&virt_spin_lock_key);
 }
 
-struct static_key paravirt_steal_enabled;
-struct static_key paravirt_steal_rq_enabled;
-
 static u64 native_steal_clock(int cpu)
 {
 	return 0;
diff --git a/drivers/xen/time.c b/drivers/xen/time.c
index 5683383d2305..d360ded2ef39 100644
--- a/drivers/xen/time.c
+++ b/drivers/xen/time.c
@@ -8,6 +8,7 @@
 #include <linux/gfp.h>
 #include <linux/slab.h>
 #include <linux/static_call.h>
+#include <linux/sched/cputime.h>
 
 #include <asm/paravirt.h>
 #include <asm/xen/hypervisor.h>
diff --git a/include/linux/sched/cputime.h b/include/linux/sched/cputime.h
index 5f8fd5b24a2e..e90efaf6d26e 100644
--- a/include/linux/sched/cputime.h
+++ b/include/linux/sched/cputime.h
@@ -2,6 +2,7 @@
 #ifndef _LINUX_SCHED_CPUTIME_H
 #define _LINUX_SCHED_CPUTIME_H
 
+#include <linux/static_call_types.h>
 #include <linux/sched/signal.h>
 
 /*
@@ -180,4 +181,21 @@ static inline void prev_cputime_init(struct prev_cputime *prev)
 extern unsigned long long
 task_sched_runtime(struct task_struct *task);
 
+#ifdef CONFIG_PARAVIRT
+struct static_key;
+extern struct static_key paravirt_steal_enabled;
+extern struct static_key paravirt_steal_rq_enabled;
+
+#ifdef CONFIG_HAVE_PV_STEAL_CLOCK_GEN
+u64 dummy_steal_clock(int cpu);
+
+DECLARE_STATIC_CALL(pv_steal_clock, dummy_steal_clock);
+
+static inline u64 paravirt_steal_clock(int cpu)
+{
+	return static_call(pv_steal_clock)(cpu);
+}
+#endif
+#endif
+
 #endif /* _LINUX_SCHED_CPUTIME_H */
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index f754a60de848..9e7472646233 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -769,6 +769,11 @@ struct rq *task_rq_lock(struct task_struct *p, struct rq_flags *rf)
  * RQ-clock updating methods:
  */
 
+/* Use CONFIG_PARAVIRT as this will avoid more #ifdef in arch code. */
+#ifdef CONFIG_PARAVIRT
+struct static_key paravirt_steal_rq_enabled;
+#endif
+
 static void update_rq_clock_task(struct rq *rq, s64 delta)
 {
 /*
diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c
index 7097de2c8cda..ed8f71e08047 100644
--- a/kernel/sched/cputime.c
+++ b/kernel/sched/cputime.c
@@ -251,6 +251,19 @@ void __account_forceidle_time(struct task_struct *p, u64 delta)
  * ticks are not redelivered later. Due to that, this function may on
  * occasion account more time than the calling functions think elapsed.
  */
+#ifdef CONFIG_PARAVIRT
+struct static_key paravirt_steal_enabled;
+
+#ifdef CONFIG_HAVE_PV_STEAL_CLOCK_GEN
+static u64 native_steal_clock(int cpu)
+{
+	return 0;
+}
+
+DEFINE_STATIC_CALL(pv_steal_clock, native_steal_clock);
+#endif
+#endif
+
 static __always_inline u64 steal_account_process_time(u64 maxtime)
 {
 #ifdef CONFIG_PARAVIRT
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index ccd0d92ff7d1..bd1e5b55ba32 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -82,7 +82,7 @@ struct rt_rq;
 struct sched_group;
 struct cpuidle_state;
 
-#ifdef CONFIG_PARAVIRT
+#if defined(CONFIG_PARAVIRT) && !defined(CONFIG_HAVE_PV_STEAL_CLOCK_GEN)
 # include <asm/paravirt.h>
 #endif
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 07:09:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 07:09:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173428.1498482 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOW8E-0005gM-NY; Thu, 27 Nov 2025 07:09:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173428.1498482; Thu, 27 Nov 2025 07:09:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOW8E-0005gF-Kr; Thu, 27 Nov 2025 07:09:34 +0000
Received: by outflank-mailman (input) for mailman id 1173428;
 Thu, 27 Nov 2025 07:09:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rEk/=6D=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vOW8D-0004Ta-1a
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 07:09:33 +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 050619a8-cb60-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 08:09:31 +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 B316333695;
 Thu, 27 Nov 2025 07:09: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 465513EA65;
 Thu, 27 Nov 2025 07:09: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 MAO1Dyr5J2mXXAAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 27 Nov 2025 07:09: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: 050619a8-cb60-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764227370; 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=ShwVu/aGM+otOgaiOO5Lhf110Pxs/+JU1IYdiK72Mko=;
	b=ao7wIiJnbdf862h4OkyJ/MQsywhD42ZN6tn3rZHugaoN0vm7Tu50h8jzAGg6YtZArS/qr8
	nM0CWrdpjO6gI2xp/FnLuC5LTvlRgYuIvz62oC2DvffWzqdpqFmP43C4OZoUWt0OeNjveu
	bkZz6WSCyofcHpgPykZaqvFP5MRDa8U=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764227370; 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=ShwVu/aGM+otOgaiOO5Lhf110Pxs/+JU1IYdiK72Mko=;
	b=ao7wIiJnbdf862h4OkyJ/MQsywhD42ZN6tn3rZHugaoN0vm7Tu50h8jzAGg6YtZArS/qr8
	nM0CWrdpjO6gI2xp/FnLuC5LTvlRgYuIvz62oC2DvffWzqdpqFmP43C4OZoUWt0OeNjveu
	bkZz6WSCyofcHpgPykZaqvFP5MRDa8U=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	virtualization@lists.linux.dev,
	x86@kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Russell King <linux@armlinux.org.uk>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	linux-arm-kernel@lists.infradead.org,
	xen-devel@lists.xenproject.org,
	"Peter Zijlstra (Intel)" <peterz@infradead.org>
Subject: [PATCH v4 07/21] arm/paravirt: Use common code for paravirt_steal_clock()
Date: Thu, 27 Nov 2025 08:08:30 +0100
Message-ID: <20251127070844.21919-8-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251127070844.21919-1-jgross@suse.com>
References: <20251127070844.21919-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)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCPT_COUNT_TWELVE(0.00)[13];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Level: 
X-Spam-Score: -6.80
X-Spam-Flag: NO

Remove the arch specific variant of paravirt_steal_clock() and use
the common one instead.

This allows to remove paravirt.c and paravirt.h from arch/arm.

Until all archs supporting Xen have been switched to the common code
of paravirt_steal_clock(), drivers/xen/time.c needs to include
asm/paravirt.h for those archs, while this is not necessary for arm
any longer.

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---
 arch/arm/Kconfig                |  1 +
 arch/arm/include/asm/paravirt.h | 18 ------------------
 arch/arm/kernel/Makefile        |  1 -
 arch/arm/kernel/paravirt.c      | 20 --------------------
 drivers/xen/time.c              |  2 ++
 5 files changed, 3 insertions(+), 39 deletions(-)
 delete mode 100644 arch/arm/include/asm/paravirt.h
 delete mode 100644 arch/arm/kernel/paravirt.c

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 4fb985b76e97..4a3044acebd6 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1322,6 +1322,7 @@ config UACCESS_WITH_MEMCPY
 
 config PARAVIRT
 	bool "Enable paravirtualization code"
+	select HAVE_PV_STEAL_CLOCK_GEN
 	help
 	  This changes the kernel so it can modify itself when it is run
 	  under a hypervisor, potentially improving performance significantly
diff --git a/arch/arm/include/asm/paravirt.h b/arch/arm/include/asm/paravirt.h
deleted file mode 100644
index 69da4bdcf856..000000000000
--- a/arch/arm/include/asm/paravirt.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _ASM_ARM_PARAVIRT_H
-#define _ASM_ARM_PARAVIRT_H
-
-#ifdef CONFIG_PARAVIRT
-#include <linux/static_call_types.h>
-
-u64 dummy_steal_clock(int cpu);
-
-DECLARE_STATIC_CALL(pv_steal_clock, dummy_steal_clock);
-
-static inline u64 paravirt_steal_clock(int cpu)
-{
-	return static_call(pv_steal_clock)(cpu);
-}
-#endif
-
-#endif
diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile
index afc9de7ef9a1..b36cf0cfd4a7 100644
--- a/arch/arm/kernel/Makefile
+++ b/arch/arm/kernel/Makefile
@@ -83,7 +83,6 @@ AFLAGS_iwmmxt.o			:= -Wa,-mcpu=iwmmxt
 obj-$(CONFIG_ARM_CPU_TOPOLOGY)  += topology.o
 obj-$(CONFIG_VDSO)		+= vdso.o
 obj-$(CONFIG_EFI)		+= efi.o
-obj-$(CONFIG_PARAVIRT)	+= paravirt.o
 
 obj-y			+= head$(MMUEXT).o
 obj-$(CONFIG_DEBUG_LL)	+= debug.o
diff --git a/arch/arm/kernel/paravirt.c b/arch/arm/kernel/paravirt.c
deleted file mode 100644
index 3895a5578852..000000000000
--- a/arch/arm/kernel/paravirt.c
+++ /dev/null
@@ -1,20 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- *
- * Copyright (C) 2013 Citrix Systems
- *
- * Author: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
- */
-
-#include <linux/export.h>
-#include <linux/jump_label.h>
-#include <linux/types.h>
-#include <linux/static_call.h>
-#include <asm/paravirt.h>
-
-static u64 native_steal_clock(int cpu)
-{
-	return 0;
-}
-
-DEFINE_STATIC_CALL(pv_steal_clock, native_steal_clock);
diff --git a/drivers/xen/time.c b/drivers/xen/time.c
index d360ded2ef39..53b12f5ac465 100644
--- a/drivers/xen/time.c
+++ b/drivers/xen/time.c
@@ -10,7 +10,9 @@
 #include <linux/static_call.h>
 #include <linux/sched/cputime.h>
 
+#ifndef CONFIG_HAVE_PV_STEAL_CLOCK_GEN
 #include <asm/paravirt.h>
+#endif
 #include <asm/xen/hypervisor.h>
 #include <asm/xen/hypercall.h>
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 07:10:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 07:10:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173443.1498491 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOW8h-0006yk-Uu; Thu, 27 Nov 2025 07:10:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173443.1498491; Thu, 27 Nov 2025 07: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 1vOW8h-0006y9-SD; Thu, 27 Nov 2025 07:10:03 +0000
Received: by outflank-mailman (input) for mailman id 1173443;
 Thu, 27 Nov 2025 07: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=rEk/=6D=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vOW8g-0004TZ-8U
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 07:10:02 +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 1675db7d-cb60-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 08:10:00 +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 1B4A433691;
 Thu, 27 Nov 2025 07:10: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 611CB3EA63;
 Thu, 27 Nov 2025 07:09:59 +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 dpI4Fkf5J2nAXQAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 27 Nov 2025 07:09: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: 1675db7d-cb60-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764227400; 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=WLasP3YriVQxy2lyLTd3qvWbSz8xbbix/xncP62Dsck=;
	b=qE5psS1/rHm1GUZifBh+SnhvqvrUEY/YuteNJJHprmGbY7vf6EizgAaRNeuzhMFzWvAEfu
	4IWqh1TTZNkuZrauFs9XuPellnUOMPkGVa04UCO+ahUREX3kHS8L2nf3hl2LNPAV8eJYJy
	JFBRHevjZaCQcX52xaOobx9JtUZNkis=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764227400; 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=WLasP3YriVQxy2lyLTd3qvWbSz8xbbix/xncP62Dsck=;
	b=qE5psS1/rHm1GUZifBh+SnhvqvrUEY/YuteNJJHprmGbY7vf6EizgAaRNeuzhMFzWvAEfu
	4IWqh1TTZNkuZrauFs9XuPellnUOMPkGVa04UCO+ahUREX3kHS8L2nf3hl2LNPAV8eJYJy
	JFBRHevjZaCQcX52xaOobx9JtUZNkis=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	virtualization@lists.linux.dev,
	kvm@vger.kernel.org,
	linux-hyperv@vger.kernel.org
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@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	Dexuan Cui <decui@microsoft.com>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	xen-devel@lists.xenproject.org,
	"Peter Zijlstra (Intel)" <peterz@infradead.org>
Subject: [PATCH v4 12/21] x86/paravirt: Move paravirt_sched_clock() related code into tsc.c
Date: Thu, 27 Nov 2025 08:08:35 +0100
Message-ID: <20251127070844.21919-13-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251127070844.21919-1-jgross@suse.com>
References: <20251127070844.21919-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];
	MIME_TRACE(0.00)[0:+];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[24];
	TO_DN_SOME(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	ARC_NA(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	R_RATELIMIT(0.00)[to_ip_from(RLfdszjqhz8kzzb9uwpzdm8png)];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Level: 
X-Spam-Score: -6.80
X-Spam-Flag: NO

The only user of paravirt_sched_clock() is in tsc.c, so move the code
from paravirt.c and paravirt.h to tsc.c.

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---
 arch/x86/include/asm/paravirt.h    | 12 ------------
 arch/x86/include/asm/timer.h       |  1 +
 arch/x86/kernel/kvmclock.c         |  1 +
 arch/x86/kernel/paravirt.c         |  7 -------
 arch/x86/kernel/tsc.c              | 10 +++++++++-
 arch/x86/xen/time.c                |  1 +
 drivers/clocksource/hyperv_timer.c |  2 ++
 7 files changed, 14 insertions(+), 20 deletions(-)

diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index 766a7cee3d64..b69e75a5c872 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -14,20 +14,8 @@
 #ifndef __ASSEMBLER__
 #include <linux/types.h>
 #include <linux/cpumask.h>
-#include <linux/static_call_types.h>
 #include <asm/frame.h>
 
-u64 dummy_sched_clock(void);
-
-DECLARE_STATIC_CALL(pv_sched_clock, dummy_sched_clock);
-
-void paravirt_set_sched_clock(u64 (*func)(void));
-
-static __always_inline u64 paravirt_sched_clock(void)
-{
-	return static_call(pv_sched_clock)();
-}
-
 __visible void __native_queued_spin_unlock(struct qspinlock *lock);
 bool pv_is_native_spin_unlock(void);
 __visible bool __native_vcpu_is_preempted(long cpu);
diff --git a/arch/x86/include/asm/timer.h b/arch/x86/include/asm/timer.h
index 23baf8c9b34c..fda18bcb19b4 100644
--- a/arch/x86/include/asm/timer.h
+++ b/arch/x86/include/asm/timer.h
@@ -12,6 +12,7 @@ extern void recalibrate_cpu_khz(void);
 extern int no_timer_check;
 
 extern bool using_native_sched_clock(void);
+void paravirt_set_sched_clock(u64 (*func)(void));
 
 /*
  * We use the full linear equation: f(x) = a + b*x, in order to allow
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index ca0a49eeac4a..b5991d53fc0e 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -19,6 +19,7 @@
 #include <linux/cc_platform.h>
 
 #include <asm/hypervisor.h>
+#include <asm/timer.h>
 #include <asm/x86_init.h>
 #include <asm/kvmclock.h>
 
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index 42991d471bf3..4e37db8073f9 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -60,13 +60,6 @@ void __init native_pv_lock_init(void)
 		static_branch_enable(&virt_spin_lock_key);
 }
 
-DEFINE_STATIC_CALL(pv_sched_clock, native_sched_clock);
-
-void paravirt_set_sched_clock(u64 (*func)(void))
-{
-	static_call_update(pv_sched_clock, func);
-}
-
 static noinstr void pv_native_safe_halt(void)
 {
 	native_safe_halt();
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 87e749106dda..554b54783a04 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -266,19 +266,27 @@ u64 native_sched_clock_from_tsc(u64 tsc)
 /* We need to define a real function for sched_clock, to override the
    weak default version */
 #ifdef CONFIG_PARAVIRT
+DEFINE_STATIC_CALL(pv_sched_clock, native_sched_clock);
+
 noinstr u64 sched_clock_noinstr(void)
 {
-	return paravirt_sched_clock();
+	return static_call(pv_sched_clock)();
 }
 
 bool using_native_sched_clock(void)
 {
 	return static_call_query(pv_sched_clock) == native_sched_clock;
 }
+
+void paravirt_set_sched_clock(u64 (*func)(void))
+{
+	static_call_update(pv_sched_clock, func);
+}
 #else
 u64 sched_clock_noinstr(void) __attribute__((alias("native_sched_clock")));
 
 bool using_native_sched_clock(void) { return true; }
+void paravirt_set_sched_clock(u64 (*func)(void)) { }
 #endif
 
 notrace u64 sched_clock(void)
diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index e4754b2fa900..6f9f665bb7ae 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -19,6 +19,7 @@
 #include <linux/sched/cputime.h>
 
 #include <asm/pvclock.h>
+#include <asm/timer.h>
 #include <asm/xen/hypervisor.h>
 #include <asm/xen/hypercall.h>
 #include <asm/xen/cpuid.h>
diff --git a/drivers/clocksource/hyperv_timer.c b/drivers/clocksource/hyperv_timer.c
index 10356d4ec55c..e9f5034a1bc8 100644
--- a/drivers/clocksource/hyperv_timer.c
+++ b/drivers/clocksource/hyperv_timer.c
@@ -535,6 +535,8 @@ static __always_inline void hv_setup_sched_clock(void *sched_clock)
 	sched_clock_register(sched_clock, 64, NSEC_PER_SEC);
 }
 #elif defined CONFIG_PARAVIRT
+#include <asm/timer.h>
+
 static __always_inline void hv_setup_sched_clock(void *sched_clock)
 {
 	/* We're on x86/x64 *and* using PV ops */
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 07:10:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 07:10:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173451.1498501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOW94-0007su-6J; Thu, 27 Nov 2025 07:10:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173451.1498501; Thu, 27 Nov 2025 07:10: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 1vOW94-0007sn-3l; Thu, 27 Nov 2025 07:10:26 +0000
Received: by outflank-mailman (input) for mailman id 1173451;
 Thu, 27 Nov 2025 07:10: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=rEk/=6D=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vOW93-0004TZ-9Q
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 07:10:25 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 24330961-cb60-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 08:10:23 +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-out2.suse.de (Postfix) with ESMTPS id 3AF035BCC5;
 Thu, 27 Nov 2025 07:10:23 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id D29E13EA63;
 Thu, 27 Nov 2025 07:10:22 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id EzUDMl75J2nvXQAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 27 Nov 2025 07:10: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: 24330961-cb60-11f0-980a-7dc792cee155
Authentication-Results: smtp-out2.suse.de;
	none
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Josh Poimboeuf <jpoimboe@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 16/21] x86/xen: Drop xen_cpu_ops
Date: Thu, 27 Nov 2025 08:08:39 +0100
Message-ID: <20251127070844.21919-17-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251127070844.21919-1-jgross@suse.com>
References: <20251127070844.21919-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-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[];
	R_RATELIMIT(0.00)[to_ip_from(RLkdkdrsxe9hqhhs5ask8616i6)]
X-Rspamd-Queue-Id: 3AF035BCC5
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Spam-Flag: NO
X-Spam-Score: -4.00
X-Spam-Level: 
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org

Instead of having a pre-filled array xen_cpu_ops for Xen PV paravirt
functions, drop the array and assign each element individually.

This is in preparation of reducing the paravirt include hell by
splitting paravirt.h into multiple more fine grained header files,
which will in turn require to split up the pv_ops vector as well.
Dropping the pre-filled array makes life easier for objtool to
detect missing initializers in multiple pv_ops_ arrays.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- new patch
---
 arch/x86/xen/enlighten_pv.c | 82 +++++++++++++++----------------------
 tools/objtool/check.c       |  1 -
 2 files changed, 33 insertions(+), 50 deletions(-)

diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 4806cc28d7ca..65df3a0d9cf3 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1212,54 +1212,6 @@ static const struct pv_info xen_info __initconst = {
 	.name = "Xen",
 };
 
-static const typeof(pv_ops) xen_cpu_ops __initconst = {
-	.cpu = {
-		.cpuid = xen_cpuid,
-
-		.set_debugreg = xen_set_debugreg,
-		.get_debugreg = xen_get_debugreg,
-
-		.read_cr0 = xen_read_cr0,
-		.write_cr0 = xen_write_cr0,
-
-		.write_cr4 = xen_write_cr4,
-
-		.read_msr = xen_read_msr,
-		.write_msr = xen_write_msr,
-
-		.read_msr_safe = xen_read_msr_safe,
-		.write_msr_safe = xen_write_msr_safe,
-
-		.read_pmc = xen_read_pmc,
-
-		.load_tr_desc = paravirt_nop,
-		.set_ldt = xen_set_ldt,
-		.load_gdt = xen_load_gdt,
-		.load_idt = xen_load_idt,
-		.load_tls = xen_load_tls,
-		.load_gs_index = xen_load_gs_index,
-
-		.alloc_ldt = xen_alloc_ldt,
-		.free_ldt = xen_free_ldt,
-
-		.store_tr = xen_store_tr,
-
-		.write_ldt_entry = xen_write_ldt_entry,
-		.write_gdt_entry = xen_write_gdt_entry,
-		.write_idt_entry = xen_write_idt_entry,
-		.load_sp0 = xen_load_sp0,
-
-#ifdef CONFIG_X86_IOPL_IOPERM
-		.invalidate_io_bitmap = xen_invalidate_io_bitmap,
-		.update_io_bitmap = xen_update_io_bitmap,
-#endif
-		.io_delay = xen_io_delay,
-
-		.start_context_switch = xen_start_context_switch,
-		.end_context_switch = xen_end_context_switch,
-	},
-};
-
 static void xen_restart(char *msg)
 {
 	xen_reboot(SHUTDOWN_reboot);
@@ -1411,7 +1363,39 @@ asmlinkage __visible void __init xen_start_kernel(struct start_info *si)
 
 	/* Install Xen paravirt ops */
 	pv_info = xen_info;
-	pv_ops.cpu = xen_cpu_ops.cpu;
+
+	pv_ops.cpu.cpuid = xen_cpuid;
+	pv_ops.cpu.set_debugreg = xen_set_debugreg;
+	pv_ops.cpu.get_debugreg = xen_get_debugreg;
+	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;
+	pv_ops.cpu.load_idt = xen_load_idt;
+	pv_ops.cpu.load_tls = xen_load_tls;
+	pv_ops.cpu.load_gs_index = xen_load_gs_index;
+	pv_ops.cpu.alloc_ldt = xen_alloc_ldt;
+	pv_ops.cpu.free_ldt = xen_free_ldt;
+	pv_ops.cpu.store_tr = xen_store_tr;
+	pv_ops.cpu.write_ldt_entry = xen_write_ldt_entry;
+	pv_ops.cpu.write_gdt_entry = xen_write_gdt_entry;
+	pv_ops.cpu.write_idt_entry = xen_write_idt_entry;
+	pv_ops.cpu.load_sp0 = xen_load_sp0;
+#ifdef CONFIG_X86_IOPL_IOPERM
+	pv_ops.cpu.invalidate_io_bitmap = xen_invalidate_io_bitmap;
+	pv_ops.cpu.update_io_bitmap = xen_update_io_bitmap;
+#endif
+	pv_ops.cpu.io_delay = xen_io_delay;
+	pv_ops.cpu.start_context_switch = xen_start_context_switch;
+	pv_ops.cpu.end_context_switch = xen_end_context_switch;
+
 	xen_init_irq_ops();
 
 	/*
diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index 3fd551c080ee..5c00bca8dc11 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -593,7 +593,6 @@ static int init_pv_ops(struct objtool_file *file)
 {
 	static const char *pv_ops_tables[] = {
 		"pv_ops",
-		"xen_cpu_ops",
 		"xen_mmu_ops",
 		NULL,
 	};
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 07:11:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 07:11:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173457.1498512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOWA5-00009y-Gw; Thu, 27 Nov 2025 07:11:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173457.1498512; Thu, 27 Nov 2025 07:11:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOWA5-00009r-DW; Thu, 27 Nov 2025 07:11:29 +0000
Received: by outflank-mailman (input) for mailman id 1173457;
 Thu, 27 Nov 2025 07:11: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=rEk/=6D=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vOW8Z-0004Ta-Dz
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 07:09:55 +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 12f11bc6-cb60-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 08:09:54 +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 ED9865BCC5;
 Thu, 27 Nov 2025 07:09:53 +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 6D0443EA63;
 Thu, 27 Nov 2025 07:09:53 +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 v6URGUH5J2m6XQAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 27 Nov 2025 07:09: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: 12f11bc6-cb60-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764227394; 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=6M6bM/80Dg6ioUTYre1M3KFDk125huuEpn1VJjZjsUQ=;
	b=adxYPmztj2PaNB6JkvvfsTGvfrQ2IQGSsVX+97EdgQd5Ew6cp77C+Kpycd56qcRkmERaHq
	Gb63ALjKMRYSLwV79lvAO45+ZYSPGBg5b8RScSVsoFl8XU2Ot5TobevjE45jiPxsvVp+vG
	9tg1Rvm+MMapOSIVh2aNKxRuv93+Uuo=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764227393; 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=6M6bM/80Dg6ioUTYre1M3KFDk125huuEpn1VJjZjsUQ=;
	b=QRWItfkHl6GDwBCNKT9n1AUjpQ9rGuPd+8m7E5Pp+R6cFTwG+PiEBnlC7h/BlxyggzRpNt
	zPEUtf109xzqFxSf7FM8ife5WF5cH6iTDaZAjKytf7GTAYyUitHMsKR6yTfDSQfkeI+iTH
	CxIaSrQ8H1L2IHJ1vNXjWVcytwa1Q3s=
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@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	xen-devel@lists.xenproject.org,
	"Peter Zijlstra (Intel)" <peterz@infradead.org>
Subject: [PATCH v4 11/21] x86/paravirt: Use common code for paravirt_steal_clock()
Date: Thu, 27 Nov 2025 08:08:34 +0100
Message-ID: <20251127070844.21919-12-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251127070844.21919-1-jgross@suse.com>
References: <20251127070844.21919-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Flag: NO
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%];
	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:+];
	RCPT_COUNT_TWELVE(0.00)[17];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	TO_DN_SOME(0.00)[];
	RCVD_TLS_ALL(0.00)[]

Remove the arch specific variant of paravirt_steal_clock() and use
the common one instead.

With all archs supporting Xen now having been switched to the common
variant, including paravirt.h can be dropped from drivers/xen/time.c.

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---
 arch/x86/Kconfig                | 1 +
 arch/x86/include/asm/paravirt.h | 7 -------
 arch/x86/kernel/paravirt.c      | 6 ------
 arch/x86/xen/time.c             | 1 +
 drivers/xen/time.c              | 3 ---
 5 files changed, 2 insertions(+), 16 deletions(-)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index aa279fec5c1f..eee6541a5765 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -795,6 +795,7 @@ if HYPERVISOR_GUEST
 config PARAVIRT
 	bool "Enable paravirtualization code"
 	depends on HAVE_STATIC_CALL
+	select HAVE_PV_STEAL_CLOCK_GEN
 	help
 	  This changes the kernel so it can modify itself when it is run
 	  under a hypervisor, potentially improving performance significantly
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index 0ef797ea8440..766a7cee3d64 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -17,10 +17,8 @@
 #include <linux/static_call_types.h>
 #include <asm/frame.h>
 
-u64 dummy_steal_clock(int cpu);
 u64 dummy_sched_clock(void);
 
-DECLARE_STATIC_CALL(pv_steal_clock, dummy_steal_clock);
 DECLARE_STATIC_CALL(pv_sched_clock, dummy_sched_clock);
 
 void paravirt_set_sched_clock(u64 (*func)(void));
@@ -35,11 +33,6 @@ bool pv_is_native_spin_unlock(void);
 __visible bool __native_vcpu_is_preempted(long cpu);
 bool pv_is_native_vcpu_is_preempted(void);
 
-static inline u64 paravirt_steal_clock(int cpu)
-{
-	return static_call(pv_steal_clock)(cpu);
-}
-
 #ifdef CONFIG_PARAVIRT_SPINLOCKS
 void __init paravirt_set_cap(void);
 #endif
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index a3ba4747be1c..42991d471bf3 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -60,12 +60,6 @@ void __init native_pv_lock_init(void)
 		static_branch_enable(&virt_spin_lock_key);
 }
 
-static u64 native_steal_clock(int cpu)
-{
-	return 0;
-}
-
-DEFINE_STATIC_CALL(pv_steal_clock, native_steal_clock);
 DEFINE_STATIC_CALL(pv_sched_clock, native_sched_clock);
 
 void paravirt_set_sched_clock(u64 (*func)(void))
diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index 96521b1874ac..e4754b2fa900 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -16,6 +16,7 @@
 #include <linux/slab.h>
 #include <linux/pvclock_gtod.h>
 #include <linux/timekeeper_internal.h>
+#include <linux/sched/cputime.h>
 
 #include <asm/pvclock.h>
 #include <asm/xen/hypervisor.h>
diff --git a/drivers/xen/time.c b/drivers/xen/time.c
index 53b12f5ac465..0b18d8a5a2dd 100644
--- a/drivers/xen/time.c
+++ b/drivers/xen/time.c
@@ -10,9 +10,6 @@
 #include <linux/static_call.h>
 #include <linux/sched/cputime.h>
 
-#ifndef CONFIG_HAVE_PV_STEAL_CLOCK_GEN
-#include <asm/paravirt.h>
-#endif
 #include <asm/xen/hypervisor.h>
 #include <asm/xen/hypercall.h>
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 07:11:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 07:11:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173464.1498522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOWA9-0000Ym-Ts; Thu, 27 Nov 2025 07:11:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173464.1498522; Thu, 27 Nov 2025 07:11:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOWA9-0000Yf-Q5; Thu, 27 Nov 2025 07:11:33 +0000
Received: by outflank-mailman (input) for mailman id 1173464;
 Thu, 27 Nov 2025 07: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=rEk/=6D=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vOW8w-0004Ta-Qj
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 07:10:18 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de
 [2a07:de40:b251:101:10:150:64:2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 20df4e12-cb60-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 08:10:17 +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 748E85BCC4;
 Thu, 27 Nov 2025 07:10:17 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 1B4313EA63;
 Thu, 27 Nov 2025 07:10:17 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id Jv5CBVn5J2nlXQAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 27 Nov 2025 07:10:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 20df4e12-cb60-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764227417; 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=+ZD0gHfZEAZt38+vBUmam6fB85ZjKlj3yVqOSUwfE0Y=;
	b=gWsIkR9Y7z8FVayWaep4mo1zZytSyxXgt93U6ANX/FSM+kmKiHujplZRaytePOGoCIsy2A
	wfCpqyYgzoWf7+1PXp9jKgjYTDtbyNBVfpjKAR32x12s5Q8BhAAIqLNM314ZBfbAoy+WA/
	N+qRNAh+6SCRHPtzLRxjSWYJ4mW7kiI=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764227417; 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=+ZD0gHfZEAZt38+vBUmam6fB85ZjKlj3yVqOSUwfE0Y=;
	b=gWsIkR9Y7z8FVayWaep4mo1zZytSyxXgt93U6ANX/FSM+kmKiHujplZRaytePOGoCIsy2A
	wfCpqyYgzoWf7+1PXp9jKgjYTDtbyNBVfpjKAR32x12s5Q8BhAAIqLNM314ZBfbAoy+WA/
	N+qRNAh+6SCRHPtzLRxjSWYJ4mW7kiI=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Josh Poimboeuf <jpoimboe@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 15/21] x86/xen: Drop xen_irq_ops
Date: Thu, 27 Nov 2025 08:08:38 +0100
Message-ID: <20251127070844.21919-16-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251127070844.21919-1-jgross@suse.com>
References: <20251127070844.21919-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];
	MIME_TRACE(0.00)[0:+];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[12];
	TO_DN_SOME(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	ARC_NA(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	R_RATELIMIT(0.00)[to_ip_from(RLfdszjqhz8kzzb9uwpzdm8png)];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Level: 
X-Spam-Score: -6.80
X-Spam-Flag: NO

Instead of having a pre-filled array xen_irq_ops for Xen PV paravirt
functions, drop the array and assign each element individually.

This is in preparation of reducing the paravirt include hell by
splitting paravirt.h into multiple more fine grained header files,
which will in turn require to split up the pv_ops vector as well.
Dropping the pre-filled array makes life easier for objtool to
detect missing initializers in multiple pv_ops_ arrays.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- new patch
---
 arch/x86/xen/irq.c    | 20 +++++++-------------
 tools/objtool/check.c |  1 -
 2 files changed, 7 insertions(+), 14 deletions(-)

diff --git a/arch/x86/xen/irq.c b/arch/x86/xen/irq.c
index 39982f955cfe..d8678c3d3971 100644
--- a/arch/x86/xen/irq.c
+++ b/arch/x86/xen/irq.c
@@ -40,20 +40,14 @@ static void xen_halt(void)
 		xen_safe_halt();
 }
 
-static const typeof(pv_ops) xen_irq_ops __initconst = {
-	.irq = {
-		/* Initial interrupt flag handling only called while interrupts off. */
-		.save_fl = __PV_IS_CALLEE_SAVE(paravirt_ret0),
-		.irq_disable = __PV_IS_CALLEE_SAVE(paravirt_nop),
-		.irq_enable = __PV_IS_CALLEE_SAVE(BUG_func),
-
-		.safe_halt = xen_safe_halt,
-		.halt = xen_halt,
-	},
-};
-
 void __init xen_init_irq_ops(void)
 {
-	pv_ops.irq = xen_irq_ops.irq;
+	/* Initial interrupt flag handling only called while interrupts off. */
+	pv_ops.irq.save_fl = __PV_IS_CALLEE_SAVE(paravirt_ret0);
+	pv_ops.irq.irq_disable = __PV_IS_CALLEE_SAVE(paravirt_nop);
+	pv_ops.irq.irq_enable = __PV_IS_CALLEE_SAVE(BUG_func);
+	pv_ops.irq.safe_halt = xen_safe_halt;
+	pv_ops.irq.halt = xen_halt;
+
 	x86_init.irqs.intr_init = xen_init_IRQ;
 }
diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index 9004fbc06769..3fd551c080ee 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -594,7 +594,6 @@ static int init_pv_ops(struct objtool_file *file)
 	static const char *pv_ops_tables[] = {
 		"pv_ops",
 		"xen_cpu_ops",
-		"xen_irq_ops",
 		"xen_mmu_ops",
 		NULL,
 	};
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 07:11:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 07:11:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173469.1498532 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOWAG-0000wl-5K; Thu, 27 Nov 2025 07:11:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173469.1498532; Thu, 27 Nov 2025 07:11:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOWAG-0000wW-1l; Thu, 27 Nov 2025 07:11:40 +0000
Received: by outflank-mailman (input) for mailman id 1173469;
 Thu, 27 Nov 2025 07: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=rEk/=6D=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vOW9X-0004TZ-01
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 07:10:55 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 35ba9e6c-cb60-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 08:10:52 +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 6EA4A5BCE8;
 Thu, 27 Nov 2025 07:10:52 +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 B5C253EA63;
 Thu, 27 Nov 2025 07:10:51 +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 5mfQKnv5J2mYXgAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 27 Nov 2025 07:10:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 35ba9e6c-cb60-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764227452; 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=SXTHPqtiAo+6bHjyKR2sCuvTayGU8MiCJZgmvhwbcSY=;
	b=ApXp4HcV5r0fMTBLGVFES0QGFHOWqaImZhNmJwBjUX/vb5lqFaPhRnpeRdN+0vab9WT8wB
	UHHfSaSHakkhpD69H3O7MqqpUa3oMcrq6WqdX524GHU2yn9VOluxEWXCAZNETgKdN4Io4j
	saX8heE/kZVzk4I0rQW/fzVwaWusO3U=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764227452; 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=SXTHPqtiAo+6bHjyKR2sCuvTayGU8MiCJZgmvhwbcSY=;
	b=ApXp4HcV5r0fMTBLGVFES0QGFHOWqaImZhNmJwBjUX/vb5lqFaPhRnpeRdN+0vab9WT8wB
	UHHfSaSHakkhpD69H3O7MqqpUa3oMcrq6WqdX524GHU2yn9VOluxEWXCAZNETgKdN4Io4j
	saX8heE/kZVzk4I0rQW/fzVwaWusO3U=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	linux-hyperv@vger.kernel.org,
	virtualization@lists.linux.dev,
	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>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	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>,
	Josh Poimboeuf <jpoimboe@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 21/21] x86/pvlocks: Move paravirt spinlock functions into own header
Date: Thu, 27 Nov 2025 08:08:44 +0100
Message-ID: <20251127070844.21919-22-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251127070844.21919-1-jgross@suse.com>
References: <20251127070844.21919-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-6.80 / 50.00];
	REPLY(-4.00)[];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	TO_DN_SOME(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[24];
	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-Level: 
X-Spam-Score: -6.80
X-Spam-Flag: NO

Instead of having the pv spinlock function definitions in paravirt.h,
move them into the new header paravirt-spinlock.h.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- use new header instead of qspinlock.h
- use dedicated pv_ops_lock array
- move more paravirt related lock code
V3:
- hide native_pv_lock_init() with CONFIG_SMP (kernel test robot)
V4:
- don't reference pv_ops_lock without CONFIG_PARAVIRT_SPINLOCKS
  (kernel test robot)
---
 arch/x86/hyperv/hv_spinlock.c            |  10 +-
 arch/x86/include/asm/paravirt-spinlock.h | 146 +++++++++++++++++++++++
 arch/x86/include/asm/paravirt.h          |  61 ----------
 arch/x86/include/asm/paravirt_types.h    |  17 ---
 arch/x86/include/asm/qspinlock.h         |  89 ++------------
 arch/x86/kernel/Makefile                 |   2 +-
 arch/x86/kernel/kvm.c                    |  12 +-
 arch/x86/kernel/paravirt-spinlocks.c     |  26 +++-
 arch/x86/kernel/paravirt.c               |  21 ----
 arch/x86/xen/spinlock.c                  |  10 +-
 tools/objtool/check.c                    |   1 +
 11 files changed, 196 insertions(+), 199 deletions(-)
 create mode 100644 arch/x86/include/asm/paravirt-spinlock.h

diff --git a/arch/x86/hyperv/hv_spinlock.c b/arch/x86/hyperv/hv_spinlock.c
index 2a3c2afb0154..210b494e4de0 100644
--- a/arch/x86/hyperv/hv_spinlock.c
+++ b/arch/x86/hyperv/hv_spinlock.c
@@ -78,11 +78,11 @@ void __init hv_init_spinlocks(void)
 	pr_info("PV spinlocks enabled\n");
 
 	__pv_init_lock_hash();
-	pv_ops.lock.queued_spin_lock_slowpath = __pv_queued_spin_lock_slowpath;
-	pv_ops.lock.queued_spin_unlock = PV_CALLEE_SAVE(__pv_queued_spin_unlock);
-	pv_ops.lock.wait = hv_qlock_wait;
-	pv_ops.lock.kick = hv_qlock_kick;
-	pv_ops.lock.vcpu_is_preempted = PV_CALLEE_SAVE(hv_vcpu_is_preempted);
+	pv_ops_lock.queued_spin_lock_slowpath = __pv_queued_spin_lock_slowpath;
+	pv_ops_lock.queued_spin_unlock = PV_CALLEE_SAVE(__pv_queued_spin_unlock);
+	pv_ops_lock.wait = hv_qlock_wait;
+	pv_ops_lock.kick = hv_qlock_kick;
+	pv_ops_lock.vcpu_is_preempted = PV_CALLEE_SAVE(hv_vcpu_is_preempted);
 }
 
 static __init int hv_parse_nopvspin(char *arg)
diff --git a/arch/x86/include/asm/paravirt-spinlock.h b/arch/x86/include/asm/paravirt-spinlock.h
new file mode 100644
index 000000000000..ed3ed343903d
--- /dev/null
+++ b/arch/x86/include/asm/paravirt-spinlock.h
@@ -0,0 +1,146 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef _ASM_X86_PARAVIRT_SPINLOCK_H
+#define _ASM_X86_PARAVIRT_SPINLOCK_H
+
+#include <asm/paravirt_types.h>
+
+#ifdef CONFIG_SMP
+#include <asm/spinlock_types.h>
+#endif
+
+struct qspinlock;
+
+struct pv_lock_ops {
+	void (*queued_spin_lock_slowpath)(struct qspinlock *lock, u32 val);
+	struct paravirt_callee_save queued_spin_unlock;
+
+	void (*wait)(u8 *ptr, u8 val);
+	void (*kick)(int cpu);
+
+	struct paravirt_callee_save vcpu_is_preempted;
+} __no_randomize_layout;
+
+extern struct pv_lock_ops pv_ops_lock;
+
+#ifdef CONFIG_PARAVIRT_SPINLOCKS
+void __init paravirt_set_cap(void);
+extern void native_queued_spin_lock_slowpath(struct qspinlock *lock, u32 val);
+extern void __pv_init_lock_hash(void);
+extern void __pv_queued_spin_lock_slowpath(struct qspinlock *lock, u32 val);
+extern void __raw_callee_save___pv_queued_spin_unlock(struct qspinlock *lock);
+extern bool nopvspin;
+
+static __always_inline void pv_queued_spin_lock_slowpath(struct qspinlock *lock,
+							 u32 val)
+{
+	PVOP_VCALL2(pv_ops_lock, queued_spin_lock_slowpath, lock, val);
+}
+
+static __always_inline void pv_queued_spin_unlock(struct qspinlock *lock)
+{
+	PVOP_ALT_VCALLEE1(pv_ops_lock, queued_spin_unlock, lock,
+			  "movb $0, (%%" _ASM_ARG1 ");",
+			  ALT_NOT(X86_FEATURE_PVUNLOCK));
+}
+
+static __always_inline bool pv_vcpu_is_preempted(long cpu)
+{
+	return PVOP_ALT_CALLEE1(bool, pv_ops_lock, vcpu_is_preempted, cpu,
+				"xor %%" _ASM_AX ", %%" _ASM_AX ";",
+				ALT_NOT(X86_FEATURE_VCPUPREEMPT));
+}
+
+#define queued_spin_unlock queued_spin_unlock
+/**
+ * queued_spin_unlock - release a queued spinlock
+ * @lock : Pointer to queued spinlock structure
+ *
+ * A smp_store_release() on the least-significant byte.
+ */
+static inline void native_queued_spin_unlock(struct qspinlock *lock)
+{
+	smp_store_release(&lock->locked, 0);
+}
+
+static inline void queued_spin_lock_slowpath(struct qspinlock *lock, u32 val)
+{
+	pv_queued_spin_lock_slowpath(lock, val);
+}
+
+static inline void queued_spin_unlock(struct qspinlock *lock)
+{
+	kcsan_release();
+	pv_queued_spin_unlock(lock);
+}
+
+#define vcpu_is_preempted vcpu_is_preempted
+static inline bool vcpu_is_preempted(long cpu)
+{
+	return pv_vcpu_is_preempted(cpu);
+}
+
+static __always_inline void pv_wait(u8 *ptr, u8 val)
+{
+	PVOP_VCALL2(pv_ops_lock, wait, ptr, val);
+}
+
+static __always_inline void pv_kick(int cpu)
+{
+	PVOP_VCALL1(pv_ops_lock, kick, cpu);
+}
+
+void __raw_callee_save___native_queued_spin_unlock(struct qspinlock *lock);
+bool __raw_callee_save___native_vcpu_is_preempted(long cpu);
+#endif /* CONFIG_PARAVIRT_SPINLOCKS */
+
+void __init native_pv_lock_init(void);
+__visible void __native_queued_spin_unlock(struct qspinlock *lock);
+bool pv_is_native_spin_unlock(void);
+__visible bool __native_vcpu_is_preempted(long cpu);
+bool pv_is_native_vcpu_is_preempted(void);
+
+/*
+ * virt_spin_lock_key - disables by default the virt_spin_lock() hijack.
+ *
+ * Native (and PV wanting native due to vCPU pinning) should keep this key
+ * disabled. Native does not touch the key.
+ *
+ * When in a guest then native_pv_lock_init() enables the key first and
+ * KVM/XEN might conditionally disable it later in the boot process again.
+ */
+DECLARE_STATIC_KEY_FALSE(virt_spin_lock_key);
+
+/*
+ * Shortcut for the queued_spin_lock_slowpath() function that allows
+ * virt to hijack it.
+ *
+ * Returns:
+ *   true - lock has been negotiated, all done;
+ *   false - queued_spin_lock_slowpath() will do its thing.
+ */
+#define virt_spin_lock virt_spin_lock
+static inline bool virt_spin_lock(struct qspinlock *lock)
+{
+	int val;
+
+	if (!static_branch_likely(&virt_spin_lock_key))
+		return false;
+
+	/*
+	 * On hypervisors without PARAVIRT_SPINLOCKS support we fall
+	 * back to a Test-and-Set spinlock, because fair locks have
+	 * horrible lock 'holder' preemption issues.
+	 */
+
+ __retry:
+	val = atomic_read(&lock->val);
+
+	if (val || !atomic_try_cmpxchg(&lock->val, &val, _Q_LOCKED_VAL)) {
+		cpu_relax();
+		goto __retry;
+	}
+
+	return true;
+}
+
+#endif /* _ASM_X86_PARAVIRT_SPINLOCK_H */
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index ec274d13bae0..b21072af731d 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -19,15 +19,6 @@
 #include <linux/cpumask.h>
 #include <asm/frame.h>
 
-__visible void __native_queued_spin_unlock(struct qspinlock *lock);
-bool pv_is_native_spin_unlock(void);
-__visible bool __native_vcpu_is_preempted(long cpu);
-bool pv_is_native_vcpu_is_preempted(void);
-
-#ifdef CONFIG_PARAVIRT_SPINLOCKS
-void __init paravirt_set_cap(void);
-#endif
-
 /* The paravirtualized I/O functions */
 static inline void slow_down_io(void)
 {
@@ -522,46 +513,7 @@ static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx,
 {
 	pv_ops.mmu.set_fixmap(idx, phys, flags);
 }
-#endif
-
-#if defined(CONFIG_SMP) && defined(CONFIG_PARAVIRT_SPINLOCKS)
-
-static __always_inline void pv_queued_spin_lock_slowpath(struct qspinlock *lock,
-							u32 val)
-{
-	PVOP_VCALL2(pv_ops, lock.queued_spin_lock_slowpath, lock, val);
-}
-
-static __always_inline void pv_queued_spin_unlock(struct qspinlock *lock)
-{
-	PVOP_ALT_VCALLEE1(pv_ops, lock.queued_spin_unlock, lock,
-			  "movb $0, (%%" _ASM_ARG1 ");",
-			  ALT_NOT(X86_FEATURE_PVUNLOCK));
-}
-
-static __always_inline void pv_wait(u8 *ptr, u8 val)
-{
-	PVOP_VCALL2(pv_ops, lock.wait, ptr, val);
-}
-
-static __always_inline void pv_kick(int cpu)
-{
-	PVOP_VCALL1(pv_ops, lock.kick, cpu);
-}
-
-static __always_inline bool pv_vcpu_is_preempted(long cpu)
-{
-	return PVOP_ALT_CALLEE1(bool, pv_ops, lock.vcpu_is_preempted, cpu,
-				"xor %%" _ASM_AX ", %%" _ASM_AX ";",
-				ALT_NOT(X86_FEATURE_VCPUPREEMPT));
-}
 
-void __raw_callee_save___native_queued_spin_unlock(struct qspinlock *lock);
-bool __raw_callee_save___native_vcpu_is_preempted(long cpu);
-
-#endif /* SMP && PARAVIRT_SPINLOCKS */
-
-#ifdef CONFIG_PARAVIRT_XXL
 static __always_inline unsigned long arch_local_save_flags(void)
 {
 	return PVOP_ALT_CALLEE0(unsigned long, pv_ops, irq.save_fl, "pushf; pop %%rax;",
@@ -588,8 +540,6 @@ static __always_inline unsigned long arch_local_irq_save(void)
 }
 #endif
 
-void native_pv_lock_init(void) __init;
-
 #else  /* __ASSEMBLER__ */
 
 #ifdef CONFIG_X86_64
@@ -613,12 +563,6 @@ void native_pv_lock_init(void) __init;
 #endif /* __ASSEMBLER__ */
 #else  /* CONFIG_PARAVIRT */
 # define default_banner x86_init_noop
-
-#ifndef __ASSEMBLER__
-static inline void native_pv_lock_init(void)
-{
-}
-#endif
 #endif /* !CONFIG_PARAVIRT */
 
 #ifndef __ASSEMBLER__
@@ -634,10 +578,5 @@ static inline void paravirt_arch_exit_mmap(struct mm_struct *mm)
 }
 #endif
 
-#ifndef CONFIG_PARAVIRT_SPINLOCKS
-static inline void paravirt_set_cap(void)
-{
-}
-#endif
 #endif /* __ASSEMBLER__ */
 #endif /* _ASM_X86_PARAVIRT_H */
diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
index 01a485f1a7f1..e2b487d35d14 100644
--- a/arch/x86/include/asm/paravirt_types.h
+++ b/arch/x86/include/asm/paravirt_types.h
@@ -184,22 +184,6 @@ struct pv_mmu_ops {
 #endif
 } __no_randomize_layout;
 
-#ifdef CONFIG_SMP
-#include <asm/spinlock_types.h>
-#endif
-
-struct qspinlock;
-
-struct pv_lock_ops {
-	void (*queued_spin_lock_slowpath)(struct qspinlock *lock, u32 val);
-	struct paravirt_callee_save queued_spin_unlock;
-
-	void (*wait)(u8 *ptr, u8 val);
-	void (*kick)(int cpu);
-
-	struct paravirt_callee_save vcpu_is_preempted;
-} __no_randomize_layout;
-
 /* This contains all the paravirt structures: we get a convenient
  * number for each function using the offset which we use to indicate
  * what to patch. */
@@ -207,7 +191,6 @@ struct paravirt_patch_template {
 	struct pv_cpu_ops	cpu;
 	struct pv_irq_ops	irq;
 	struct pv_mmu_ops	mmu;
-	struct pv_lock_ops	lock;
 } __no_randomize_layout;
 
 extern struct paravirt_patch_template pv_ops;
diff --git a/arch/x86/include/asm/qspinlock.h b/arch/x86/include/asm/qspinlock.h
index 68da67df304d..a2668bdf4c84 100644
--- a/arch/x86/include/asm/qspinlock.h
+++ b/arch/x86/include/asm/qspinlock.h
@@ -7,6 +7,9 @@
 #include <asm-generic/qspinlock_types.h>
 #include <asm/paravirt.h>
 #include <asm/rmwcc.h>
+#ifdef CONFIG_PARAVIRT
+#include <asm/paravirt-spinlock.h>
+#endif
 
 #define _Q_PENDING_LOOPS	(1 << 9)
 
@@ -27,89 +30,13 @@ static __always_inline u32 queued_fetch_set_pending_acquire(struct qspinlock *lo
 	return val;
 }
 
-#ifdef CONFIG_PARAVIRT_SPINLOCKS
-extern void native_queued_spin_lock_slowpath(struct qspinlock *lock, u32 val);
-extern void __pv_init_lock_hash(void);
-extern void __pv_queued_spin_lock_slowpath(struct qspinlock *lock, u32 val);
-extern void __raw_callee_save___pv_queued_spin_unlock(struct qspinlock *lock);
-extern bool nopvspin;
-
-#define	queued_spin_unlock queued_spin_unlock
-/**
- * queued_spin_unlock - release a queued spinlock
- * @lock : Pointer to queued spinlock structure
- *
- * A smp_store_release() on the least-significant byte.
- */
-static inline void native_queued_spin_unlock(struct qspinlock *lock)
-{
-	smp_store_release(&lock->locked, 0);
-}
-
-static inline void queued_spin_lock_slowpath(struct qspinlock *lock, u32 val)
-{
-	pv_queued_spin_lock_slowpath(lock, val);
-}
-
-static inline void queued_spin_unlock(struct qspinlock *lock)
-{
-	kcsan_release();
-	pv_queued_spin_unlock(lock);
-}
-
-#define vcpu_is_preempted vcpu_is_preempted
-static inline bool vcpu_is_preempted(long cpu)
-{
-	return pv_vcpu_is_preempted(cpu);
-}
+#ifndef CONFIG_PARAVIRT_SPINLOCKS
+static inline void paravirt_set_cap(void) { }
 #endif
 
-#ifdef CONFIG_PARAVIRT
-/*
- * virt_spin_lock_key - disables by default the virt_spin_lock() hijack.
- *
- * Native (and PV wanting native due to vCPU pinning) should keep this key
- * disabled. Native does not touch the key.
- *
- * When in a guest then native_pv_lock_init() enables the key first and
- * KVM/XEN might conditionally disable it later in the boot process again.
- */
-DECLARE_STATIC_KEY_FALSE(virt_spin_lock_key);
-
-/*
- * Shortcut for the queued_spin_lock_slowpath() function that allows
- * virt to hijack it.
- *
- * Returns:
- *   true - lock has been negotiated, all done;
- *   false - queued_spin_lock_slowpath() will do its thing.
- */
-#define virt_spin_lock virt_spin_lock
-static inline bool virt_spin_lock(struct qspinlock *lock)
-{
-	int val;
-
-	if (!static_branch_likely(&virt_spin_lock_key))
-		return false;
-
-	/*
-	 * On hypervisors without PARAVIRT_SPINLOCKS support we fall
-	 * back to a Test-and-Set spinlock, because fair locks have
-	 * horrible lock 'holder' preemption issues.
-	 */
-
- __retry:
-	val = atomic_read(&lock->val);
-
-	if (val || !atomic_try_cmpxchg(&lock->val, &val, _Q_LOCKED_VAL)) {
-		cpu_relax();
-		goto __retry;
-	}
-
-	return true;
-}
-
-#endif /* CONFIG_PARAVIRT */
+#ifndef CONFIG_PARAVIRT
+static inline void native_pv_lock_init(void) { }
+#endif
 
 #include <asm-generic/qspinlock.h>
 
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
index bc184dd38d99..e9aeeeafad17 100644
--- a/arch/x86/kernel/Makefile
+++ b/arch/x86/kernel/Makefile
@@ -126,7 +126,7 @@ obj-$(CONFIG_DEBUG_NMI_SELFTEST) += nmi_selftest.o
 
 obj-$(CONFIG_KVM_GUEST)		+= kvm.o kvmclock.o
 obj-$(CONFIG_PARAVIRT)		+= paravirt.o
-obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= paravirt-spinlocks.o
+obj-$(CONFIG_PARAVIRT)		+= paravirt-spinlocks.o
 obj-$(CONFIG_PARAVIRT_CLOCK)	+= pvclock.o
 obj-$(CONFIG_X86_PMEM_LEGACY_DEVICE) += pmem.o
 
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index d54fd2bc0402..e767f8ed405a 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -824,8 +824,10 @@ static void __init kvm_guest_init(void)
 		has_steal_clock = 1;
 		static_call_update(pv_steal_clock, kvm_steal_clock);
 
-		pv_ops.lock.vcpu_is_preempted =
+#ifdef CONFIG_PARAVIRT_SPINLOCKS
+		pv_ops_lock.vcpu_is_preempted =
 			PV_CALLEE_SAVE(__kvm_vcpu_is_preempted);
+#endif
 	}
 
 	if (kvm_para_has_feature(KVM_FEATURE_PV_EOI))
@@ -1121,11 +1123,11 @@ void __init kvm_spinlock_init(void)
 	pr_info("PV spinlocks enabled\n");
 
 	__pv_init_lock_hash();
-	pv_ops.lock.queued_spin_lock_slowpath = __pv_queued_spin_lock_slowpath;
-	pv_ops.lock.queued_spin_unlock =
+	pv_ops_lock.queued_spin_lock_slowpath = __pv_queued_spin_lock_slowpath;
+	pv_ops_lock.queued_spin_unlock =
 		PV_CALLEE_SAVE(__pv_queued_spin_unlock);
-	pv_ops.lock.wait = kvm_wait;
-	pv_ops.lock.kick = kvm_kick_cpu;
+	pv_ops_lock.wait = kvm_wait;
+	pv_ops_lock.kick = kvm_kick_cpu;
 
 	/*
 	 * When PV spinlock is enabled which is preferred over
diff --git a/arch/x86/kernel/paravirt-spinlocks.c b/arch/x86/kernel/paravirt-spinlocks.c
index 9e1ea99ad9df..95452444868f 100644
--- a/arch/x86/kernel/paravirt-spinlocks.c
+++ b/arch/x86/kernel/paravirt-spinlocks.c
@@ -3,12 +3,22 @@
  * Split spinlock implementation out into its own file, so it can be
  * compiled in a FTRACE-compatible way.
  */
+#include <linux/static_call.h>
 #include <linux/spinlock.h>
 #include <linux/export.h>
 #include <linux/jump_label.h>
 
-#include <asm/paravirt.h>
+DEFINE_STATIC_KEY_FALSE(virt_spin_lock_key);
 
+#ifdef CONFIG_SMP
+void __init native_pv_lock_init(void)
+{
+	if (boot_cpu_has(X86_FEATURE_HYPERVISOR))
+		static_branch_enable(&virt_spin_lock_key);
+}
+#endif
+
+#ifdef CONFIG_PARAVIRT_SPINLOCKS
 __visible void __native_queued_spin_unlock(struct qspinlock *lock)
 {
 	native_queued_spin_unlock(lock);
@@ -17,7 +27,7 @@ PV_CALLEE_SAVE_REGS_THUNK(__native_queued_spin_unlock);
 
 bool pv_is_native_spin_unlock(void)
 {
-	return pv_ops.lock.queued_spin_unlock.func ==
+	return pv_ops_lock.queued_spin_unlock.func ==
 		__raw_callee_save___native_queued_spin_unlock;
 }
 
@@ -29,7 +39,7 @@ PV_CALLEE_SAVE_REGS_THUNK(__native_vcpu_is_preempted);
 
 bool pv_is_native_vcpu_is_preempted(void)
 {
-	return pv_ops.lock.vcpu_is_preempted.func ==
+	return pv_ops_lock.vcpu_is_preempted.func ==
 		__raw_callee_save___native_vcpu_is_preempted;
 }
 
@@ -41,3 +51,13 @@ void __init paravirt_set_cap(void)
 	if (!pv_is_native_vcpu_is_preempted())
 		setup_force_cpu_cap(X86_FEATURE_VCPUPREEMPT);
 }
+
+struct pv_lock_ops pv_ops_lock = {
+	.queued_spin_lock_slowpath	= native_queued_spin_lock_slowpath,
+	.queued_spin_unlock		= PV_CALLEE_SAVE(__native_queued_spin_unlock),
+	.wait				= paravirt_nop,
+	.kick				= paravirt_nop,
+	.vcpu_is_preempted		= PV_CALLEE_SAVE(__native_vcpu_is_preempted),
+};
+EXPORT_SYMBOL(pv_ops_lock);
+#endif
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index 5dfbd3f55792..a6ed52cae003 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -57,14 +57,6 @@ DEFINE_ASM_FUNC(pv_native_irq_enable, "sti", .noinstr.text);
 DEFINE_ASM_FUNC(pv_native_read_cr2, "mov %cr2, %rax", .noinstr.text);
 #endif
 
-DEFINE_STATIC_KEY_FALSE(virt_spin_lock_key);
-
-void __init native_pv_lock_init(void)
-{
-	if (boot_cpu_has(X86_FEATURE_HYPERVISOR))
-		static_branch_enable(&virt_spin_lock_key);
-}
-
 static noinstr void pv_native_safe_halt(void)
 {
 	native_safe_halt();
@@ -221,19 +213,6 @@ struct paravirt_patch_template pv_ops = {
 
 	.mmu.set_fixmap		= native_set_fixmap,
 #endif /* CONFIG_PARAVIRT_XXL */
-
-#if defined(CONFIG_PARAVIRT_SPINLOCKS)
-	/* Lock ops. */
-#ifdef CONFIG_SMP
-	.lock.queued_spin_lock_slowpath	= native_queued_spin_lock_slowpath,
-	.lock.queued_spin_unlock	=
-				PV_CALLEE_SAVE(__native_queued_spin_unlock),
-	.lock.wait			= paravirt_nop,
-	.lock.kick			= paravirt_nop,
-	.lock.vcpu_is_preempted		=
-				PV_CALLEE_SAVE(__native_vcpu_is_preempted),
-#endif /* SMP */
-#endif
 };
 
 #ifdef CONFIG_PARAVIRT_XXL
diff --git a/arch/x86/xen/spinlock.c b/arch/x86/xen/spinlock.c
index fe56646d6919..83ac24ead289 100644
--- a/arch/x86/xen/spinlock.c
+++ b/arch/x86/xen/spinlock.c
@@ -134,10 +134,10 @@ void __init xen_init_spinlocks(void)
 	printk(KERN_DEBUG "xen: PV spinlocks enabled\n");
 
 	__pv_init_lock_hash();
-	pv_ops.lock.queued_spin_lock_slowpath = __pv_queued_spin_lock_slowpath;
-	pv_ops.lock.queued_spin_unlock =
+	pv_ops_lock.queued_spin_lock_slowpath = __pv_queued_spin_lock_slowpath;
+	pv_ops_lock.queued_spin_unlock =
 		PV_CALLEE_SAVE(__pv_queued_spin_unlock);
-	pv_ops.lock.wait = xen_qlock_wait;
-	pv_ops.lock.kick = xen_qlock_kick;
-	pv_ops.lock.vcpu_is_preempted = PV_CALLEE_SAVE(xen_vcpu_stolen);
+	pv_ops_lock.wait = xen_qlock_wait;
+	pv_ops_lock.kick = xen_qlock_kick;
+	pv_ops_lock.vcpu_is_preempted = PV_CALLEE_SAVE(xen_vcpu_stolen);
 }
diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index d63d0891924a..36e04988babe 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -550,6 +550,7 @@ static struct {
 	int idx_off;
 } pv_ops_tables[] = {
 	{ .name = "pv_ops", },
+	{ .name = "pv_ops_lock", },
 	{ .name = NULL, .idx_off = -1 }
 };
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 07:11:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 07:11:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173470.1498538 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOWAG-00010l-G7; Thu, 27 Nov 2025 07:11:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173470.1498538; Thu, 27 Nov 2025 07:11:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOWAG-0000zr-AQ; Thu, 27 Nov 2025 07:11:40 +0000
Received: by outflank-mailman (input) for mailman id 1173470;
 Thu, 27 Nov 2025 07: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=rEk/=6D=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vOW99-0004TZ-1G
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 07:10:31 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 27bd8031-cb60-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 08:10: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-out2.suse.de (Postfix) with ESMTPS id 103615BCCF;
 Thu, 27 Nov 2025 07:10: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 A62DA3EA63;
 Thu, 27 Nov 2025 07:10: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 kGOtJmT5J2n4XQAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 27 Nov 2025 07:10: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: 27bd8031-cb60-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764227429; 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=tYoBmEPQTBonESeVu5a/+dg+QgALehadLv/nGYQmxpI=;
	b=oepAybbKYKdhB0gOLKQV94mSJvQF384HqbJpuj53m9i8axqbrVpBfqR8aqxIDUrJd5inhP
	9KKvwfHhbzZccPwYB53btnVQoC1ppdeYT32KW0P9DZwLpv9QNf5wRxuw53CzAHoOnBAkbs
	802Q90mT6NBXdVFNbgH0qOWO7BpZd8A=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764227429; 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=tYoBmEPQTBonESeVu5a/+dg+QgALehadLv/nGYQmxpI=;
	b=oepAybbKYKdhB0gOLKQV94mSJvQF384HqbJpuj53m9i8axqbrVpBfqR8aqxIDUrJd5inhP
	9KKvwfHhbzZccPwYB53btnVQoC1ppdeYT32KW0P9DZwLpv9QNf5wRxuw53CzAHoOnBAkbs
	802Q90mT6NBXdVFNbgH0qOWO7BpZd8A=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Josh Poimboeuf <jpoimboe@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 17/21] x86/xen: Drop xen_mmu_ops
Date: Thu, 27 Nov 2025 08:08:40 +0100
Message-ID: <20251127070844.21919-18-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20251127070844.21919-1-jgross@suse.com>
References: <20251127070844.21919-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-6.80 / 50.00];
	REPLY(-4.00)[];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	TO_DN_SOME(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[12];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	FROM_HAS_DN(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	R_RATELIMIT(0.00)[to_ip_from(RLfdszjqhz8kzzb9uwpzdm8png)];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Level: 
X-Spam-Score: -6.80
X-Spam-Flag: NO

Instead of having a pre-filled array xen_mmu_ops for Xen PV paravirt
functions, drop the array and assign each element individually.

This is in preparation of reducing the paravirt include hell by
splitting paravirt.h into multiple more fine grained header files,
which will in turn require to split up the pv_ops vector as well.
Dropping the pre-filled array makes life easier for objtool to
detect missing initializers in multiple pv_ops_ arrays.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- new patch
---
 arch/x86/xen/mmu_pv.c | 100 ++++++++++++++++--------------------------
 tools/objtool/check.c |   1 -
 2 files changed, 38 insertions(+), 63 deletions(-)

diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
index 2a4a8deaf612..9fa00c4a8858 100644
--- a/arch/x86/xen/mmu_pv.c
+++ b/arch/x86/xen/mmu_pv.c
@@ -2175,73 +2175,49 @@ static void xen_leave_lazy_mmu(void)
 	preempt_enable();
 }
 
-static const typeof(pv_ops) xen_mmu_ops __initconst = {
-	.mmu = {
-		.read_cr2 = __PV_IS_CALLEE_SAVE(xen_read_cr2),
-		.write_cr2 = xen_write_cr2,
-
-		.read_cr3 = xen_read_cr3,
-		.write_cr3 = xen_write_cr3_init,
-
-		.flush_tlb_user = xen_flush_tlb,
-		.flush_tlb_kernel = xen_flush_tlb,
-		.flush_tlb_one_user = xen_flush_tlb_one_user,
-		.flush_tlb_multi = xen_flush_tlb_multi,
-
-		.pgd_alloc = xen_pgd_alloc,
-		.pgd_free = xen_pgd_free,
-
-		.alloc_pte = xen_alloc_pte_init,
-		.release_pte = xen_release_pte_init,
-		.alloc_pmd = xen_alloc_pmd_init,
-		.release_pmd = xen_release_pmd_init,
-
-		.set_pte = xen_set_pte_init,
-		.set_pmd = xen_set_pmd_hyper,
-
-		.ptep_modify_prot_start = xen_ptep_modify_prot_start,
-		.ptep_modify_prot_commit = xen_ptep_modify_prot_commit,
-
-		.pte_val = PV_CALLEE_SAVE(xen_pte_val),
-		.pgd_val = PV_CALLEE_SAVE(xen_pgd_val),
-
-		.make_pte = PV_CALLEE_SAVE(xen_make_pte_init),
-		.make_pgd = PV_CALLEE_SAVE(xen_make_pgd),
-
-		.set_pud = xen_set_pud_hyper,
-
-		.make_pmd = PV_CALLEE_SAVE(xen_make_pmd),
-		.pmd_val = PV_CALLEE_SAVE(xen_pmd_val),
-
-		.pud_val = PV_CALLEE_SAVE(xen_pud_val),
-		.make_pud = PV_CALLEE_SAVE(xen_make_pud),
-		.set_p4d = xen_set_p4d_hyper,
-
-		.alloc_pud = xen_alloc_pmd_init,
-		.release_pud = xen_release_pmd_init,
-
-		.p4d_val = PV_CALLEE_SAVE(xen_p4d_val),
-		.make_p4d = PV_CALLEE_SAVE(xen_make_p4d),
-
-		.enter_mmap = xen_enter_mmap,
-		.exit_mmap = xen_exit_mmap,
-
-		.lazy_mode = {
-			.enter = xen_enter_lazy_mmu,
-			.leave = xen_leave_lazy_mmu,
-			.flush = xen_flush_lazy_mmu,
-		},
-
-		.set_fixmap = xen_set_fixmap,
-	},
-};
-
 void __init xen_init_mmu_ops(void)
 {
 	x86_init.paging.pagetable_init = xen_pagetable_init;
 	x86_init.hyper.init_after_bootmem = xen_after_bootmem;
 
-	pv_ops.mmu = xen_mmu_ops.mmu;
+	pv_ops.mmu.read_cr2 = __PV_IS_CALLEE_SAVE(xen_read_cr2);
+	pv_ops.mmu.write_cr2 = xen_write_cr2;
+	pv_ops.mmu.read_cr3 = xen_read_cr3;
+	pv_ops.mmu.write_cr3 = xen_write_cr3_init;
+	pv_ops.mmu.flush_tlb_user = xen_flush_tlb;
+	pv_ops.mmu.flush_tlb_kernel = xen_flush_tlb;
+	pv_ops.mmu.flush_tlb_one_user = xen_flush_tlb_one_user;
+	pv_ops.mmu.flush_tlb_multi = xen_flush_tlb_multi;
+	pv_ops.mmu.pgd_alloc = xen_pgd_alloc;
+	pv_ops.mmu.pgd_free = xen_pgd_free;
+	pv_ops.mmu.alloc_pte = xen_alloc_pte_init;
+	pv_ops.mmu.release_pte = xen_release_pte_init;
+	pv_ops.mmu.alloc_pmd = xen_alloc_pmd_init;
+	pv_ops.mmu.release_pmd = xen_release_pmd_init;
+	pv_ops.mmu.set_pte = xen_set_pte_init;
+	pv_ops.mmu.set_pmd = xen_set_pmd_hyper;
+	pv_ops.mmu.ptep_modify_prot_start = xen_ptep_modify_prot_start;
+	pv_ops.mmu.ptep_modify_prot_commit = xen_ptep_modify_prot_commit;
+	pv_ops.mmu.pte_val = PV_CALLEE_SAVE(xen_pte_val);
+	pv_ops.mmu.pgd_val = PV_CALLEE_SAVE(xen_pgd_val);
+	pv_ops.mmu.make_pte = PV_CALLEE_SAVE(xen_make_pte_init);
+	pv_ops.mmu.make_pgd = PV_CALLEE_SAVE(xen_make_pgd);
+	pv_ops.mmu.set_pud = xen_set_pud_hyper;
+	pv_ops.mmu.make_pmd = PV_CALLEE_SAVE(xen_make_pmd);
+	pv_ops.mmu.pmd_val = PV_CALLEE_SAVE(xen_pmd_val);
+	pv_ops.mmu.pud_val = PV_CALLEE_SAVE(xen_pud_val);
+	pv_ops.mmu.make_pud = PV_CALLEE_SAVE(xen_make_pud);
+	pv_ops.mmu.set_p4d = xen_set_p4d_hyper;
+	pv_ops.mmu.alloc_pud = xen_alloc_pmd_init;
+	pv_ops.mmu.release_pud = xen_release_pmd_init;
+	pv_ops.mmu.p4d_val = PV_CALLEE_SAVE(xen_p4d_val);
+	pv_ops.mmu.make_p4d = PV_CALLEE_SAVE(xen_make_p4d);
+	pv_ops.mmu.enter_mmap = xen_enter_mmap;
+	pv_ops.mmu.exit_mmap = xen_exit_mmap;
+	pv_ops.mmu.lazy_mode.enter = xen_enter_lazy_mmu;
+	pv_ops.mmu.lazy_mode.leave = xen_leave_lazy_mmu;
+	pv_ops.mmu.lazy_mode.flush = xen_flush_lazy_mmu;
+	pv_ops.mmu.set_fixmap = xen_set_fixmap;
 
 	memset(dummy_mapping, 0xff, PAGE_SIZE);
 }
diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index 5c00bca8dc11..1c73426bea9f 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -593,7 +593,6 @@ static int init_pv_ops(struct objtool_file *file)
 {
 	static const char *pv_ops_tables[] = {
 		"pv_ops",
-		"xen_mmu_ops",
 		NULL,
 	};
 	const char *pv_ops;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 07:39:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 07:39:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173523.1498551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOWb8-0005TO-Mh; Thu, 27 Nov 2025 07:39:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173523.1498551; Thu, 27 Nov 2025 07: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 1vOWb8-0005TH-K5; Thu, 27 Nov 2025 07:39:26 +0000
Received: by outflank-mailman (input) for mailman id 1173523;
 Thu, 27 Nov 2025 07:39: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=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOWb7-0005TB-NH
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 07:39:25 +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 30fe7e33-cb64-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 08:39:23 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-429c8632fcbso353672f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 23:39: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-42e1c5168acsm1894341f8f.0.2025.11.26.23.39.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 23:39: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: 30fe7e33-cb64-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764229162; x=1764833962; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8ACafBzmCu9nbCRl977gzD0nFRgFVoQMZhMwMbD1Kvs=;
        b=BOMNdIxTVNtGrKgHuHTSAB1tmzLriBF4tUdOANHy7pYGVZyLM1Sf77XE1JZ/nF5Wd6
         pJO2gE5WMjClO17SQ2A3uQWpxUZA9CVf1rRN/h6Qq2HZku427gLD1q0FNNlcRasRVRpp
         rbHSske3YnhbguoxlMV9v1KEEEHOZgqjIrOpzC8wsm7v6PbNqbTwMZ2nmjzEi5ssJlJq
         JZmUn+KXMnLPZSwsG8u5Nc+hS7vRDwOME/Dr9e20aXfd8yhE91y/NMR+Zlz17LPtomEd
         t3DQ+RfKxiAdLTcqju3Jl/nFbS/CO5eayf0wLJCv8U2e7jQtN4KRYhVCmLWt2pwzF/z+
         zDAw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764229162; x=1764833962;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8ACafBzmCu9nbCRl977gzD0nFRgFVoQMZhMwMbD1Kvs=;
        b=SmfBxxb9qjwkhJnaRQPR1jGBVmcmgyvbUGHg2lxd+N1wTykbg1lxrED+gJh5/ODQ9k
         2cnCPScWm4nDpFci15ncX5s1GNRL5gNbCtpuSC2vMasPe9ahWPDRuQk1I1bzmaEcMtKf
         jUW8mhSYQLswDgumrATVsvh3vHLl9VJ5R00PIRtXyC40pdN7Mzu1NN+1MrpqiymojRQk
         LCh2HSi0k+3xvHacfuXdfr/dbAmyAL1csU7V6BIRLKhTAGoL3xrwyKVCY1uzumlPYgnr
         ZdCOjN7q2ck0LdqGShT3a/OptF7SCEPDEgTLBDjlmGqbYoue8CQUyuIguSqlrwwxzLGy
         8Ljw==
X-Forwarded-Encrypted: i=1; AJvYcCUfIzOq36AM/TR3mbtI0qSo5QHINnZgUJ3KgbsATBCOKZ+3LZcdn/CoMIvk2ZFaU41cspeGHufojGs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxUIE/VY2miGKgoORnJeNXIQCcrQdfK633/g/YbEIS0vaJBXE6H
	oZ8bcMRIHumVqNWmXsJlU507j5i9JrcJTiGWyJJphDbdsJroHxW8j/8fqNdyHJS3sA==
X-Gm-Gg: ASbGncuIuZyGrPBRvjCJLgwNUcUgpNAvY/XQygYqy666VDJ3knQ+RVYbc38RgzgXnu4
	XLA7PxOoTgFRwfSRkD6K4GJsHlsfQxAtf8y9a8XSbPlIWrAVhGWNIFR1rJrWJoBDVHg9m6H6sy9
	04JsYVSAtyNRcYZYisriRtKTjs15rlyjOu+r1QiPAdkYm3FUREhDPJvYfh2BqhrZAAs0MNodlF3
	JxVSCjAjUEhS3o2wqUCSl5/pK8DB76Cu1BHzdBq17zW/+n0olUxgACSwZW9ri0qf6Sw08bgn7G/
	9KB8+K5dUONjtPZM7Y5liqx8b8PyCkkZFD8FH8ax2zqBqCf1tZGxyyf9EM5k9B088mn8QuXGWxD
	lUW3d+eVa8CMhuTUZ9q7OROSxGU8jx7+tWTxjq6v5jwSZ4Lfcw/JBbHUo4c6zNPI8caBd9D6Jad
	k0PUw4M2tqTAz4T0ebh0vfhj9weN0qgDNnFbaars8R/W6MCocSmegAdh7xg3EqBlyVJC/v3BYi2
	b8=
X-Google-Smtp-Source: AGHT+IGMv9zN7mIBo+LJR8i7YWb7BSvjFAzkBHWcfKZQmiNxhCK5LpmYYGRyKOmS+aYGgGgZ7LLJhQ==
X-Received: by 2002:a05:6000:2303:b0:429:c14f:5f7d with SMTP id ffacd0b85a97d-42cc1cf3b24mr23519729f8f.29.1764229162127;
        Wed, 26 Nov 2025 23:39:22 -0800 (PST)
Message-ID: <dc20f31b-5f2c-47ae-b188-f72b34fdac47@suse.com>
Date: Thu, 27 Nov 2025 08:39:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] x86/amd: Use setup_force_cpu_cap() for BTC_NO
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: <20251126132220.881028-1-andrew.cooper3@citrix.com>
 <20251126132220.881028-2-andrew.cooper3@citrix.com>
 <ab8dc060-7707-4ff3-a413-730555aefeee@suse.com>
 <fc9adc57-bb95-484a-9461-0751dc91cb1b@citrix.com>
 <9c72cfb3-ed12-4955-817b-84d7c33587af@suse.com>
 <b86968a2-0e61-4d35-a54f-71dc0ce3877c@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: <b86968a2-0e61-4d35-a54f-71dc0ce3877c@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2025 17:33, Andrew Cooper wrote:
> On 26/11/2025 3:25 pm, Jan Beulich wrote:
>> On 26.11.2025 16:12, Andrew Cooper wrote:
>>> On 26/11/2025 2:19 pm, Jan Beulich wrote:
>>>> On 26.11.2025 14:22, Andrew Cooper wrote:
>>>>> When re-scanning features,
>>>> What exactly do you mean with this, outside of XenServer (i.e. upstream)? The
>>>> only thing I can think of is recheck_cpu_features(), which calls identify_cpu()
>>>> and hence init_amd(). Thus ...
>>>>
>>>>> forced caps are taken into account but unforced
>>>>> such as this are not.  This causes BTC_NO to go missing, and for the system to
>>>>> appear to have lost features.
>>>> ... I don't really follow where features might be lost.
>>> Well - it's a feature that we started upstreaming and I still hope to
>>> finish in some copious free time.
>>>
>>> Already upstream, we rescan the Raw CPU policy after microcode load.Â 
>>> That has had fixes such as dis-engaging CPUID Masking/Overriding so the
>>> Raw policy comes out accurate.
>> Yet that doesn't take forced features into account afaics. So at the very
>> least this needs to come with a description which more accurately describes
>> what (if anything) is actually being fixed / altered upstream.
> 
> I don't know what more you want me to say.Â  It's not a problem per say
> in upstream, but it does come about because BTC_NO is handled
> inconsistently to the other FOO_NO bits.

First, it still is unclear to me how "When re-scanning features, forced caps
are taken into account" applies to upstream. As a a result, "This causes
BTC_NO to go missing" is unclear as well. Both aspects need to be clear from
the description alone.

Further, while indeed BTC_NO is the only *_NO one set by means of __set_bit(),
an (apparently) similar issue exists for SRSO_US_NO, in it being cleared by
__clear_bit(). How that goes together with the feature elsewhere being forced
on I can't immediately tell.

> recheck_cpu_features() papers over the issue by re-invoking
> identify_cpu().

This isn't papering over anything. We do the normal identification, to then
compare its results with the ones obtained during boot.

>Â  It's necessary for S3 resume because all of
> init_$VENDOR() really is needed, but it looks bogus in
> smp_store_cpu_info() because it's repeating work done immediately prior
> in start_secondary().

What is it that is done there "immediately prior"? I see smp_callin()
calling smp_store_cpu_info() alone, which in turn calls either
identify_cpu() or recheck_cpu_features(). Nothing being repeated afaics.
There is an earlier call to cpu_init(), but that doesn't collect any
feature info. (Perhaps we have a latent ordering problem there, as in
principle feature dependent setup would better come after determining what
features are available. The only feature dependent operations there look to
be PKRU clearing and skinit_enable_intr(), so hopefully not an active issue;
certainly not as long as the system is symmetric.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 07:58:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 07:58:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173533.1498562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOWtI-00009A-51; Thu, 27 Nov 2025 07:58:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173533.1498562; Thu, 27 Nov 2025 07: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 1vOWtI-000093-2E; Thu, 27 Nov 2025 07:58:12 +0000
Received: by outflank-mailman (input) for mailman id 1173533;
 Thu, 27 Nov 2025 07:58: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=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOWtG-00008x-NF
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 07:58:10 +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 d052f249-cb66-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 08:58:09 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4779adb38d3so3002535e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 26 Nov 2025 23:58: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-4791164d365sm17193555e9.12.2025.11.26.23.58.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 26 Nov 2025 23:58: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: d052f249-cb66-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764230288; x=1764835088; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=h0KIwiuIH3nUKAr+RUieLKs8a8/4ggIbaVDhtsBfKRs=;
        b=ZHWSwQNhvM4eZ1oNaYHdKIvbFrBU9KszBlaWR4jE5SzlyAku0Bo+gj9S7ome0kkJ4x
         OJDYaxQDpoq7JPxzzXplZKK8t+J3xNZCXJ7efkKjdHN/HscMqBLqCKLvrDfoHITSro8v
         fkOKIvoCQpWxc9hgsTl16GvXYyWWeQyoiUVBX8fm0wsjYikrMWpHcqji2hc7LlRPI9Et
         l3moZFGSAYWmKOal6qBzXJ1lJMX+QTh6w4d7BbcjgneUTo1lxwvuVzOXzLzB4YSh+c4S
         vio54Bud5Ck/qAWDhPGs2xD1NUSFZr/uShgoXHJZmCW2ksY0iXAZ6Zh7o8gEzSR3L+bd
         mbFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764230288; x=1764835088;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=h0KIwiuIH3nUKAr+RUieLKs8a8/4ggIbaVDhtsBfKRs=;
        b=kqj4VbGFi0nDSFmNopHX5BfnfTWPSxyW9Jp0+SVOBxhYp2vyZ8lP5CUgZgOrBUEuLZ
         03AJuZ+wOosxjQBJz4Jp0Uz9VVX7V0nEJwFCl0n4zeSKAiHiEgccQ75r+5EK/SmQhrGy
         h51UxNieBwhsrM13vBT0eYHbk+6rpZQTMpYLP0Exa6WsXGbUdKrRIasa++QoQkSspW/V
         MtLagpLrAoHz8hVSngUgndOoq470sByLEf68YhYaFmHK0wmw2yqcx34Gv22lRctCPz0C
         /eSjk6BSxAtYOeWsG0Ud7wFwndym7phwd7DfWOF3NeBVcUBQOU23c0kbSMOW0sTdCzYu
         y6Tw==
X-Forwarded-Encrypted: i=1; AJvYcCWSF3gCoKOw1eEXzWi2AC6uLi0gvykyJOBYIaGWXEusAvvYe8cfJt5xxw9VOpnB1TSTGBaoajt+Iuw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwofEvoqa3LvH301JcFW21z7Ue+Ee6TAPGZuTeyfXVfJPMGaFr8
	8jBpq94Ng7c3l4YnDQ7lLMX6BUMhGXXniia+fv2x9asWsihg5LEphQiv7g00qWvQAA==
X-Gm-Gg: ASbGncsgbk+Wdu6SSqK+vAPGPNP9BDVNkmD5NBczxWucRYH03ySalKnXJraNiVAwgRs
	NKlvM1ReMrBhbdks4Gn9gBCXHF1rgepEKD+eBq7lescmz4o69hArTZHsXU+7fSpmhFz8dTewULR
	8lAJ5Dqh53tb8zzAsfWRIc1+Miz5zcbE+fmW9KEItKdJaQOslFq6uoVAyBZQL0zNX+j71fq+f5f
	Y6xmV/zNtXeoENx2HniT4v39rKB2tqsKMpQOSDdY2BY4yU8FpIsUe4EObMryx2lmeR7MDlCldBc
	glr/GA9KNRw4jiWqjLeUp8U1TVHFgEgBtGW+aNINjvMk0PK8whAjp1MtXVdzF/DiAW+yrjX5b+a
	E9YbJTEirOHrJSGBEex9JMz/V1EBu+68/jbup/BOdlDzU7Alwa5Tk0BL/HM2vrbL80AR86jo46X
	K4q3Kz5ji4wBRATL9VDC/NunI83kji7p6wCkYUY/XgYusD1FcW7Vspe5u6bSKLh88T8kZK5K1Ur
	Xg=
X-Google-Smtp-Source: AGHT+IHwXbzHRq7LQ4X4yTDayxN0WjJ5rycMzSBVDHdUYZIhjjnHgosZbbGbC+gC9huSG/dm2boRfA==
X-Received: by 2002:a05:600c:1c19:b0:477:7bca:8b3c with SMTP id 5b1f17b1804b1-47904b10379mr119206445e9.19.1764230288501;
        Wed, 26 Nov 2025 23:58:08 -0800 (PST)
Message-ID: <63ee65cc-1e8b-4f00-a882-7e96fe1e1eac@suse.com>
Date: Thu, 27 Nov 2025 08:58:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] x86/amd: Fix race editing DE_CFG
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: <20251126132220.881028-1-andrew.cooper3@citrix.com>
 <20251126132220.881028-4-andrew.cooper3@citrix.com>
 <52fd793f-5bb1-4e14-a64c-b431b0ae83a6@suse.com>
 <f2101ed6-470c-4d6a-88dc-d2776010c346@citrix.com>
 <d13547b3-15f4-4814-8bd5-1f5dfb96fc39@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: <d13547b3-15f4-4814-8bd5-1f5dfb96fc39@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2025 18:56, Andrew Cooper wrote:
> On 26/11/2025 4:55 pm, Andrew Cooper wrote:
>> On 26/11/2025 3:07 pm, Jan Beulich wrote:
>>> On 26.11.2025 14:22, Andrew Cooper wrote:
>>>> @@ -1075,6 +966,112 @@ static void cf_check fam17_disable_c6(void *arg)
>>>>  	wrmsrl(MSR_AMD_CSTATE_CFG, val & mask);
>>>>  }
>>>>  
>>>> +static bool zenbleed_use_chickenbit(void)
>>>> +{
>>>> +    unsigned int curr_rev;
>>>> +    uint8_t fixed_rev;
>>>> +
>>>> +    /*
>>>> +     * If we're virtualised, we can't do family/model checks safely, and
>>>> +     * we likely wouldn't have access to DE_CFG even if we could see a
>>>> +     * microcode revision.
>>>> +     *
>>>> +     * A hypervisor may hide AVX as a stopgap mitigation.  We're not in a
>>>> +     * position to care either way.  An admin doesn't want to be disabling
>>>> +     * AVX as a mitigation on any build of Xen with this logic present.
>>>> +     */
>>>> +    if ( cpu_has_hypervisor || boot_cpu_data.family != 0x17 )
>>>> +        return false;
>>>> +
>>>> +    curr_rev = this_cpu(cpu_sig).rev;
>>>> +    switch ( curr_rev >> 8 )
>>>> +    {
>>>> +    case 0x083010: fixed_rev = 0x7a; break;
>>>> +    case 0x086001: fixed_rev = 0x0b; break;
>>>> +    case 0x086081: fixed_rev = 0x05; break;
>>>> +    case 0x087010: fixed_rev = 0x32; break;
>>>> +    case 0x08a000: fixed_rev = 0x08; break;
>>>> +    default:
>>>> +        /*
>>>> +         * With the Fam17h check above, most parts getting here are Zen1.
>>>> +         * They're not affected.  Assume Zen2 ones making it here are affected
>>>> +         * regardless of microcode version.
>>>> +         */
>>>> +        return is_zen2_uarch();
>>>> +    }
>>>> +
>>>> +    return (uint8_t)curr_rev >= fixed_rev;
>>>> +}
>>>> +
>>>> +void amd_init_de_cfg(const struct cpuinfo_x86 *c)
>>>> +{
>>>> +    uint64_t val, new = 0;
>>>> +
>>>> +    /* The MSR doesn't exist on Fam 0xf/0x11. */
>>>> +    if ( c->family != 0xf && c->family != 0x11 )
>>>> +        return;
>>> Comment and code don't match. Did you mean
>>>
>>>     if ( c->family == 0xf || c->family == 0x11 )
>>>         return;
>>>
>>> (along the lines of what you have in amd_init_lfence_dispatch())?
>> Oh - that was a last minute refactor which I didn't do quite correctly.Â 
>> Yes, it should match amd_init_lfence_dispatch().
>>
>>>> +    /*
>>>> +     * On Zen3 (Fam 0x19) and later CPUs, LFENCE is unconditionally dispatch
>>>> +     * serialising, and is enumerated in CPUID.  Hypervisors may also
>>>> +     * enumerate it when the setting is in place and MSR_AMD64_DE_CFG isn't
>>>> +     * available.
>>>> +     */
>>>> +    if ( !test_bit(X86_FEATURE_LFENCE_DISPATCH, c->x86_capability) )
>>>> +        new |= AMD64_DE_CFG_LFENCE_SERIALISE;
>>>> +
>>>> +    /*
>>>> +     * If vulnerable to Zenbleed and not mitigated in microcode, use the
>>>> +     * bigger hammer.
>>>> +     */
>>>> +    if ( zenbleed_use_chickenbit() )
>>>> +        new |= (1 << 9);
>>>> +
>>>> +    if ( !new )
>>>> +        return;
>>>> +
>>>> +    if ( rdmsr_safe(MSR_AMD64_DE_CFG, &val) ||
>>>> +         (val & new) == new )
>>>> +        return;
>>>> +
>>>> +    /*
>>>> +     * DE_CFG is a Core-scoped MSR, and this write is racy.  However, both
>>>> +     * threads calculate the new value from state which expected to be
>>>> +     * consistent across CPUs and unrelated to the old value, so the result
>>>> +     * should be consistent.
>>>> +     */
>>>> +    wrmsr_safe(MSR_AMD64_DE_CFG, val | new);
>>> Either of the bits may be the cause of #GP. In that case we wouldn't set the
>>> other bit, even if it may be possible to set it.
>> This MSR does not #GP on real hardware.

I consider this unexpected / inconsistent, at least as long as some of the
bits would be documented as reserved. "Would be" because the particular
Fam17 and Fam19 PPRs I'm looking at don't even mention DE_CFG (or BP_CFG,
for that matter).

>> Also, both of these bits come from instructions AMD have provided,
>> saying "set $X in case $Y", which we have honoured as part of the
>> conditions for setting up new, which I consider to be a reasonable
>> guarantee that no #GP will ensue.

The AMD instructions are for particular models, aren't they? While that
may mean the bits are fine to blindly (try to) set on other models, pretty
likely this can't be extended to other families. (While
zenbleed_use_chickenbit() is family-specific, the LFENCE bit is tried
without regard to family.)

>> This wrmsr_safe() is covering the virt case, because older Xen and
>> Byhive used to disallow writes to it, and OpenBSD would explode as a
>> consequence.Â  Xen's fix was 4175fd3ccd17.
>>
>> I toyed with the idea of having a tristate de_cfg_writeable, but that
>> got very ugly very quickly
>>
>> The other option would be to ignore DE_CFG entirely under virt.Â  That's
>> what we do for BP_CFG already, and no hypervisor is going to really let
>> us have access to it, and it would downgrade to non-safe variants.
> 
> In fact, ignoring the virt case for DE_CFG makes this generally nicer.

And being consistent with what we do with BP_CFG looks desirable to me as
well.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 08:18:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 08:18:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173550.1498572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOXCd-0003jr-SX; Thu, 27 Nov 2025 08:18:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173550.1498572; Thu, 27 Nov 2025 08:18: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 1vOXCd-0003jk-Pc; Thu, 27 Nov 2025 08:18:11 +0000
Received: by outflank-mailman (input) for mailman id 1173550;
 Thu, 27 Nov 2025 08:18: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=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOXCc-0003je-Jj
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 08:18:10 +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 9a8d72c1-cb69-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 09:18:07 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4779cb0a33fso4800615e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 00:18: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-4790b0cc186sm79706295e9.13.2025.11.27.00.18.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 00:18: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: 9a8d72c1-cb69-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764231487; x=1764836287; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SljjkoHSvNo7AYpNYa6OcIrQBWEj1HPkBjDJM1OQzEQ=;
        b=cWzyvwnf+kNm26YgkBmu/jrYXNTdHv0LeX19zOnn93jVxNKdohmmEEhT8INx8kLvGz
         qHMIzdizx7nDTRrfcW61ToMDYIWd1qdjhCW2Hj1DcQ6uZcNdP8ggBBJmjdVDSmkAnL9L
         H9jFd9cZN9++ntRInO1OZ0e8VRPC4j5AQZ8uHSLY6MgnPO1XK2qt2250ZxzU38vqPbmF
         /vmkvLLJ1njH4SXKq/3V2/QiCoyFLpEKJ90hx4Ce2iTpICA1uCAzJoDssJRlKT7iOPM7
         pRdKCk75Z6DFsqPc7qz/rgfy7m+GFfHTS/ATaxItEch/Mt7ioXtKIGjefcFAB7teffwf
         gjUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764231487; x=1764836287;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SljjkoHSvNo7AYpNYa6OcIrQBWEj1HPkBjDJM1OQzEQ=;
        b=KVyU5Nj+Cm05OhARq9kyPN2ib2gtzPJcNx6M+4jYbezf0j9tBsebplzyHAKhORKVH5
         v86r9/8ZjaijL9YkElShNSBgYUgr9f7ygGwdjdlLiec88k+rWDoGxLZBsiii3v4OQ1lM
         v6m48FkO7Glu0D3waJMwFjaAHs1HQNdue7t2SrQAZZMKIkTPUnBBFV4Nc6znwntXYFA4
         y5/Dgb8T2/919o7D1Gnbju/iIL1K3sW4SHm8taa3GsM+4wZc8Vzt2PP5A+GP5MUZ3t+H
         r0aEc97Mt/dfVfXiC2m9103UVolEQb7D13qfzkJsOaUZSg/Gj2rnm5+g+60UQev6oKWP
         ro7w==
X-Forwarded-Encrypted: i=1; AJvYcCWNpnWgmm7moZbOxNPs5dh3fVc0mEf7aK/Vt2BtZaFMZhEIFoJR1TE986gZGQ6ejl+6NSekqhnHrN0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzrTAvevPi0RXBTGGySLAxk5TeFFAXXpxwaa1Fd+Moeh87UwOP7
	5sug7WeYLMDPpfEZkcWNrJEyyJ5RSCY+x8J67L8gGHoyT4dxKdDEmVsCChJYXOQabA==
X-Gm-Gg: ASbGncvLZMwHJRVGbufAk64MyeaVkA2g7i7d8JsNgM5Z7eHsU9YP89ar/azO8IXdJ5e
	lAD4KVqorj8BcSOXzLqOBmmSZ0KKWNkXRXkyF8FcXjsAKuexhfI7bNfbId/RVNR7lH9kovyQNdi
	dxHcNj2GjjkXCR0nhdnzOArU9HuQKDlNfbprWgB4i/f5sgvhId/wLMH4xPrFY6QlfscCL9xCnuW
	akyh+AS0Os7B3yS85QK5u0h+HnuhlcrSjOBfyc1BqiKYj9iFDF+JFPLR6IWPqjwcUWgmk5+Wo/m
	u0ooeN4VNB3ljb7Ij5/2FoZG5izhc8oCEBhw3nEUYxcHAGmVcu+7Oa4TXP70zcVEhIJbKs77rJ5
	ZZLolaY4BMVM4HvHCGcQ+nvvBtXt6BsiJxDHTvERKaISAS8l5qgYJ0vQekFtGdtF9ioYG/fupuH
	HTvtR3+j8/sWm647au5+eBtExdfKwtrvTbff9To4HlJXblBJdtJ0xgK4Q6fGdYI6O/TyrKCNCoa
	/4=
X-Google-Smtp-Source: AGHT+IEdi+4gmdkOUwPlxsnaYXAuoEbfy91E00NkhJN/s3UmJox+wKwxcOF64HQNz/oRhmYqBGIcjw==
X-Received: by 2002:a05:600c:4fcb:b0:477:557b:691d with SMTP id 5b1f17b1804b1-477c01eea7fmr194181775e9.25.1764231486897;
        Thu, 27 Nov 2025 00:18:06 -0800 (PST)
Message-ID: <726f1d23-343b-4151-8c8f-a7b9ee3e08a1@suse.com>
Date: Thu, 27 Nov 2025 09:18:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 07/10] VMX: support MSR-IMM
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: <926a2315-a2b7-4aad-87e6-d686c9da9e3a@suse.com>
 <1404b901-0821-4e8d-82c7-1eebd8ed4daa@suse.com>
 <0b20af96-bfef-43b1-a22a-db85a18b849d@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: <0b20af96-bfef-43b1-a22a-db85a18b849d@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.11.2025 19:50, Andrew Cooper wrote:
> On 24/11/2025 3:00 pm, Jan Beulich wrote:
>> Hook up the new VM exit codes and handle guest uses of the insns.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> v9: New.
>> ---
>> The lack of an enable bit is concerning; at least for the nested case
>> that's a security issue afaict (when L0 isn't aware of the insns, or more
>> specifically the exit codes).
> 
> This is why we need support statements of new CPUs.

I hope you don't mean the lack thereof to be a blocking factor for this
change?

> Intel say that unknown VMExits turning into #UD is the expected course
> of action.Â  That covers all of these cases which don't have an explicit
> enable.

Do you have a pointer?

> This is better than our current behaviour, which is non-architectural
> for supervisor code and practically the most unhelpful course of action
> going.
> 
> Obviously, logic turning on a new feature is expected to handle all the
> VMExit cases it can produce.

What you say here ...

> The corollary for nested virt is that L0 must never make a Virtual
> VMExit with case that isn't enabled.Â  Combined with #UD in the unknown
> case, that covers things reasonably well.
> 
>> --- a/xen/arch/x86/domain.c
>> +++ b/xen/arch/x86/domain.c
>> @@ -453,7 +453,7 @@ void domain_cpu_policy_changed(struct do
>>      }
>>  
>>      /* Nested doesn't have the necessary processing, yet. */
>> -    if ( nestedhvm_enabled(d) && p->feat.user_msr )
>> +    if ( nestedhvm_enabled(d) && (p->feat.user_msr || p->feat.msr_imm) )
>>          return /* -EINVAL */;
> 
> What processing is missing?Â  (Aside from correcting the unknown case.)

... is what would need doing for this check to disappear. Going the #UD
route looks to make sense, but it still wouldn't feel quite right then
to drop this check. If we expose the feature, we shouldn't convert
respective exits to #UD. They aren't "unknown" (anymore) after all.

And then again the question is: Are you expecting me to deal with
switching to the #UD model as a prereq (if, as per above, that's
relevant at all here)? If so, I have to admit that it's not quite clear
to me what exactly this would be meant to look like: Alter the default
cases of the big switch()es in both the normal and nested exit handlers?
Or merely the latter?

>> --- a/xen/arch/x86/hvm/vmx/vmx.c
>> +++ b/xen/arch/x86/hvm/vmx/vmx.c
>> @@ -4762,6 +4762,7 @@ void asmlinkage vmx_vmexit_handler(struc
>>          break;
>>  
>>      case EXIT_REASON_URDMSR:
>> +    case EXIT_REASON_RDMSR_IMM:
> 
> Instructions which aren't enumerated in CPUID have reserved behaviour.
> 
> The exit handler needs to check cp->feat.msr_imm and inject #UD.
> 
> It's not perfect; un-intercepted MSRs will happen to execute correctly
> on capable hardware, but most MSRs are not intercepted and it's far
> closer to adequate behaviour than omitting the #UD check.

Hmm, okay, I can certainly do it this way.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 08:39:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 08:39:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173559.1498582 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOXWz-0006jp-ES; Thu, 27 Nov 2025 08:39:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173559.1498582; Thu, 27 Nov 2025 08:39:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOXWz-0006ji-Bd; Thu, 27 Nov 2025 08:39:13 +0000
Received: by outflank-mailman (input) for mailman id 1173559;
 Thu, 27 Nov 2025 08: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=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOXWx-0006jc-IM
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 08:39:11 +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 8b2fc004-cb6c-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 09:39:10 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-42b3108f41fso370150f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 00: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-42e1ca1a310sm2177778f8f.26.2025.11.27.00.39.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 00: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: 8b2fc004-cb6c-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764232749; x=1764837549; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nIJhPejUmJl6FeSMThRXZdaUkkvqGD9IYal3rEHAko8=;
        b=Qj/xEyu82J20AbnJHrozPsF0D0gsmjjXzkRP6G/amjMFAbfPqnFOd7WJ2KPLZflpH2
         UQ5G1G+q3MbhupOvwvXKxxrDqlhwRY/0SWn6UvTsmGLtm8hRQsBZVl6ZbD4tmbLQ1PWJ
         +xTq9r3fDNT/TkzqsODYfXsT/qZiJE+5WTuIpOD0qJ7PP6KkUdd9cOZOrRzdk07HCI4X
         nS7e62Jx6WGZiOwFAK/zefNnVbCh+qCuYX5ZDgThKObMJhIf5KmDK3qHo4wzDRvA1jee
         pVQeMGJHqQaRuKUahhacJSHPXnKsRMPDmevnnP9TOcrAJ7+1XQkvxdFmebuweJUH/ntC
         mhIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764232749; x=1764837549;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nIJhPejUmJl6FeSMThRXZdaUkkvqGD9IYal3rEHAko8=;
        b=NxUJ20jrkZNtjtI217U1QRIY9ajPoDtgL/mlzFZMRTtMzNK6ICu3C7x5QXFIn2IPKv
         71cLc3uT+Cv8YoeRuTJMdYip2d0kO/qcjM1r3WKLJzOb+5mTqUk+OaluVlNvG55weXGG
         zC/v5zbzStzffGmkC2XjbLtdFM6peTQ6/qCmW2hBDEDQCJaQ4KkrIlqTK0UIUmcunb5Q
         FptNmuV8Oy9TOVOsq/uTBX3Ssw7IOm1LrVVFWahoAfV9cou9YXp++YEJQEppDbvI91ox
         +KKhcOS2+DkOukd0aHKAHpofahBz0oBUXKi7QVDS7k/kPuOwzSAJDtSI9+4r6zVw2Con
         Rn8w==
X-Forwarded-Encrypted: i=1; AJvYcCXylQ9q7G+ylUA71NMlz/rA+KRKgTu6jmjZL73YHVbakMh1Ggu4Nl29UXB7JrWNymXFhs0wr6H2qc8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwMLOigWCTzksaWv2X4GALwKRif5sDMPgMEJSC1s68FaD6T9aqX
	8ofaKLFtRteIooJJHO3jzUYFimDGvpGsSnRAPbvrBYBDABnecZnHd83/p+1e3XUrcQ==
X-Gm-Gg: ASbGncsJ1t3vqiKzeBvQDNEa0T6UStMyd8NoCkc5LUXsmTqHhhlfiTlg455w8b53v5K
	mVSPpqGMmD3RHiLaIbeCsZtfmr+O3WPukTvQ04L0xDk1wDlBE63X/J2Kkbia0aTOx/uJ2BtXuAP
	Ub1hOEDKc1s+BWIejjyHV9nihNwlT6zh1XAsq3OPw0w1C2v+ZtsC/9rbI4fFjf73UAURmiZskla
	8d48/x9xLsP6Fpmu0ToUcEcUjt87j89BCKB1iAFS+7w1gRQoKyDvw2O8HY35Pi6YOBMiATjBXjf
	t0e7j52KPLObhqYUy96M6aITKjU/Sm/H5LqQ1fNuimaXM9V2cWGsFjtSZQVLE6zH51ylQGyPAKd
	in838XjQA+65yI81m7OXXNHFMaVJYetoDJiZiQDbzOou8pHhLlY1Muz/iOlNYyxnPzWjJywyVBe
	/IZFOKhoK8DmCSsPcYs1WqyZ4tjNL4hi8sur8jXggLNexjEMdDoyzXz6bhdwIQko/pU+UTtOu61
	Ok=
X-Google-Smtp-Source: AGHT+IEWqUyy9bm0t7n2lSbzD5Gv5AKVt8HN6QjYekH8Q+N2e0WZ4CxN9JENCoSZZ/s6pSVDDeAovg==
X-Received: by 2002:a05:6000:2084:b0:42b:3cc6:a4d7 with SMTP id ffacd0b85a97d-42cc1cf825bmr24473222f8f.37.1764232749529;
        Thu, 27 Nov 2025 00:39:09 -0800 (PST)
Message-ID: <0a20ed58-d257-454e-b3e2-207be616102f@suse.com>
Date: Thu, 27 Nov 2025 09:39:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] x86/cpu: 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: <20251126171539.890253-1-andrew.cooper3@citrix.com>
 <20251126171539.890253-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: <20251126171539.890253-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 18:15, Andrew Cooper wrote:
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 08:44:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 08:44:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173568.1498591 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOXcN-0008O1-2L; Thu, 27 Nov 2025 08:44:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173568.1498591; Thu, 27 Nov 2025 08:44: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 1vOXcM-0008Nu-W1; Thu, 27 Nov 2025 08:44:46 +0000
Received: by outflank-mailman (input) for mailman id 1173568;
 Thu, 27 Nov 2025 08:44: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=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOXcM-0008No-1D
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 08:44:46 +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 520cc846-cb6d-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 09:44:43 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-477b91680f8so4449665e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 00:44: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-42e1ca40945sm2155109f8f.30.2025.11.27.00.44.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 00:44: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: 520cc846-cb6d-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764233083; x=1764837883; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zlDszzPGpdiv7N5SBUS3H3WvlmYzKtVtIoxDNaTVOSo=;
        b=QEaI2j7YUPPkegEyK15PexT8Ir5kOsyYsP5siDs1Aw0VBKgzBrU99l1QGoj7clp0zv
         QqKaK9sSLr5ruLPGPZeTp/lZcog3zA/pIzidHOi1Yf7222D9LXx9n55eh4cQbIlvh8AD
         Yx8g9Wmad7O0v5WZinKwll+VhGJ6JtBvO/1jAfz8EQKtavXesMdrYjzl8bzjTD4HkPqn
         qVC8vej74ml/zuCZ0hpk3dDmZVkCCzQWT984u8lW8BTgU47wYCKv0nyCHX2HcsQruIh2
         JCFUxgIkX/U9FavddnyHdlsRDiy01cDcZ5uZb0iVRqB+DBbnIkd8vVArL+GDUXKSJTkw
         S+AA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764233083; x=1764837883;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zlDszzPGpdiv7N5SBUS3H3WvlmYzKtVtIoxDNaTVOSo=;
        b=Tr26nRDRygpJfcidV1I8fHpYhoxNuv+w80KyiJC3FuxnzVh15tEbk50XwuIPsK5ARU
         ykGmwEfXrxB7mdHOuJWYMO1hA5OMB/VzyGEGBHrNqW0kFe+I55iNmjSzxLJqTsFWTQhm
         1+vrpR0y9Plq5e0nGxnufCKvEvJz5rokeM1nZchvPLMidz3MPaOIX4OT3MdUMOr+QgtQ
         jah7XPmBvtckKlDBZOBEhkIjwsuRinuRwfBGXWMvz6RUPNnw88sZth9IMEicUWibk8Hr
         RU8EMyKPsEw1FyfQ4381Xl5h/bhQFgFY8IEtDYadJYxQhCWmJ1c99HW4z883pNfs9xM4
         2oNA==
X-Forwarded-Encrypted: i=1; AJvYcCUsCKJJhNoUTh95D3/OJY8QXV2PTmN4bg1/qkcBKfcmfLx1iHKUjxSV8CV0OhDItqavcIA2WQwo57g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YySy4Gz1xknHH+PyhC/z+eIIpovmrwjUp0O4/MhV29oV5W/OUWu
	7786D7Kjm3XAL4K6vNcbSnjK2ulyju3E9XF6GbVt+N1wNRTyEHkZJUhq2Ea34B5Vfg==
X-Gm-Gg: ASbGncu1ThjmAQ7xp/uDTPnM2ouqD7hH4CTwNKWu7o0QSBT23Yo4KI+3/zwDQTZVC0W
	UP+gf7TxbZLjPH3J/fotcH7oJBxkkAYt3eZSop+WGseJYRyvxzQdJdjSanvJRmgJS+wUfZ0uTpe
	MuJjUyZ67/+TpofHdjL6NRhgAi11dJ2dZqQ11RvD0eEDjlLM2VLhT75Skimq8k5ifXNB96rtd0+
	qlayssegerIE9atOlQQtKBRH+Ke80OktRSe//0OOAsORwJjf1ayWwhd+Dm8QuBT5BzW+2Hg/iE+
	IuRsfW/54pRXMjCvmU6fgCowOCeqN+IIHY2y5kMqBa7L05XmYoeIq9/i5PXoofkziveAmPNeNFV
	EvQtXkCvLGep3rztaoDOlSDES83URkHaN1gj5phsreE/qzTcymIU7JCeeb6XgOoqN/PKRUJ5Dmr
	DHs1PX+oSORI/pzvoK6E+cBDjXbXF/IAH1yq3NVmXITTZEcgvcwyX/TdSoTUotEfCvCLvqCEh3J
	yia3S9pDE4Hkg==
X-Google-Smtp-Source: AGHT+IFbnqCyj0hm4Ok8LZ8mcQJC5rKlp/dxaxtp8Un4qxlo5JynodV754bm2nDLs3ZdnCSdYyCIBw==
X-Received: by 2002:a05:600c:350e:b0:477:ae31:1311 with SMTP id 5b1f17b1804b1-477c10e2a64mr199092945e9.13.1764233083134;
        Thu, 27 Nov 2025 00:44:43 -0800 (PST)
Message-ID: <9e8ecbc0-2dd1-4744-878d-9b09d019041e@suse.com>
Date: Thu, 27 Nov 2025 09:44:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] x86/amd: Drop vestigial PBE logic in init_amd()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251126171539.890253-1-andrew.cooper3@citrix.com>
 <20251126171539.890253-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: <20251126171539.890253-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 18:15, Andrew Cooper wrote:
> The comment was adjusted by myself in commit 51bd4bbdfdba ("x86: drop
> X86_FEATURE_3DNOW_ALT"), on the presumption that the underlying logic existed
> for a good reason.
> 
> Having done further archaeology, it turns out to be vestigial technical debt
> from the leadup to Linux 2.4 in November 2000.
> 
> Prior to "Massive cleanup of CPU detection and bug handling",
> c->x86_capability was a single uint32_t containing cpuid(1).edx,
> cpuid(0x80000001).edx, or a synthesis thereof.  X86_FEATURE_AMD3D was defined
> as the top bit this single uint32_t.
> 
> After "Massive cleanup of CPU detection and bug handling",
> c->x86_capability became an array with AMD's extended feature leaf split
> away from Intel's basic feature leaf.
> 
> AMD doc #20734-G states that 3DNow is only enumerated in the extended
> feature leaf, and that other vendors where using this bit too.  i.e. AMD
> never produced a CPU which set bit 31 in the basic leaf, meaning that
> there's nothing to clear out in the first place.
> 
> This logic looks like it was relevant in the pre-"Massive cleanup" world
> but ought to have been dropped when c->x86_capability was properly split.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Jan Beulich <jbeulich@suse.com>
albeit I think that, along the lines of a comment I made on Matrix, that ...

> --- a/xen/arch/x86/cpu/amd.c
> +++ b/xen/arch/x86/cpu/amd.c
> @@ -1131,13 +1131,6 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
>  		wrmsrl(MSR_K8_HWCR, value);
>  	}
>  
> -	/*
> -	 * Some AMD CPUs duplicate the 3DNow bit in base and extended CPUID
> -	 * leaves.  Unfortunately, this aliases PBE on Intel CPUs. Clobber the
> -	 * alias, leaving 3DNow in the extended leaf.
> -	 */
> -	__clear_bit(X86_FEATURE_PBE, c->x86_capability);

... while the justification applies to what the CPUs surface on their own,
the basic leaf masking MSR could (likely) still have undue bits set, and
hence may want pruning in exchange / addition.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 08:48:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 08:48:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173578.1498601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOXgH-0000WU-GX; Thu, 27 Nov 2025 08:48:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173578.1498601; Thu, 27 Nov 2025 08:48:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOXgH-0000WN-Dr; Thu, 27 Nov 2025 08:48:49 +0000
Received: by outflank-mailman (input) for mailman id 1173578;
 Thu, 27 Nov 2025 08:48: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=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOXgG-0000WH-6O
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 08:48:48 +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 e2f191ca-cb6d-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 09:48:47 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-42b379cd896so325602f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 00:48: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-42e1cab9af3sm2130897f8f.41.2025.11.27.00.48.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 00:48: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: e2f191ca-cb6d-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764233326; x=1764838126; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nOpHIrw7AUpXoOu83jNtrQDKXrcvpvr0CaBZ8gas1Fc=;
        b=Zb6HuxT6mBcerG26Aj0/Bz0JYtjnVNpSale8yGOlY+0zrl+aZHRdIhmSCWu2vtn4FX
         d+UXzmkJAoBqvfpzriUD7G1OxnQqUj2fasa1E5oi14973qjMzvt7v2SM5YHXKbzeAuLx
         eKG/xgjTUHHYrvHDONeJeFJE3QegVy64RixtbOz6nvVASKD0/6ZJiCTXrfNvAotZ7/Kg
         yNrg+EgS/n9ivsuQeHhHZYgdDCJO8C5Q0gGFRp0xp2CYHfKGXCvFcVXtu6lRIgqLmHpy
         6dXzmfclMgejYs663jVqfxaozFFk8W1CbeP/eF/Utfgr/gG+jTq1oh4G+vBrIUZX9EO2
         Ec8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764233326; x=1764838126;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nOpHIrw7AUpXoOu83jNtrQDKXrcvpvr0CaBZ8gas1Fc=;
        b=fg16lwizG8tHdSBv/YmCBGkLZsN+17ZlVKPsR1qeffVEw97r0UTm39isUTsABnTfdI
         my1F+uIk519wbhFRlXmE8sA8yVsCtwqqmc8heNLy2wyM2qn8v0GR0tslGr+traufic01
         nFxy9tZxugtNAIDA851acKsG7Tqu7chFHsH5biDc6MWKzhtDMA5KOfCPGvfvzdFbu34b
         w4V6zGGJgyLjLmL4RxiD9Ly39QSTFmGjGl3PN12lJl4obfrQ1ca5lhX5T1wGQQ+SF0Ci
         7/ny4J7pt2G+QDbb5s4KXdGchyR13mfcrfZjNcnzOH4F2QZGjqJIY5fIWfBCSLHLrH+B
         ADLw==
X-Forwarded-Encrypted: i=1; AJvYcCUP3OXhs+Dde4XfFsc4nHzWhx+bS5TVUFjRklMRWJlUaZ/udr6QbHb6m7AZGTsrLmO5VnH+4u88Twk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwKJifJXY/NhJTiHejR8eLRQI/SHOgGFW1IzyZvkKiuELY9yyeQ
	U1Rv2Nd30LhSeWxvLrSsfWGbYEmgQ3QsgKBxwLG9wl3ppkaEl1zRkv5ntZkVQ41EeQ==
X-Gm-Gg: ASbGncv8FRuaJ+GaekwTAoHOpjMqRK0Qux7egsnKoAAOIu8wSxDOOfutpH66in3kYRo
	9P8Dxw5b5uBStUGExwwqlIKpbC345DH/jYxIHLlnOPYxcK5HhQbVG3UCzdVitTrZL9Zb7Jg0mZg
	Tnfl1mjxtPJC1nPg+phYWLV58Xq7O9bsXjqBSHskV97pe0ePancqedL0mNuR8PBzB4KInHHco1Y
	WVrzI+Q9kxDpTHTR9sDtMz5pXw5315t58yxSCQcpOycU0LWe98eNZtzx3yAWkubTgB2VxYR/hPK
	qe8PGjwo9VseWTiOl2FNXx95EftLH4XAHGtg19HkaEWiatqZsrKfCkrGIKXrPBh2iI/ZidUSx5A
	x99w263HJXKnATNGMLZrxpWVrjNZSmzxtOXoeeXpIa+50+dOEOxjFDpPzasbwuIzCqysfUGGJfq
	3SC0C/4kVNExPatbmVip7zpROjPs4StVw0Ql3e1HTdel7Ifnh3qnRnhPFx1aCLPMMoqKYQDCf+2
	lrXmdYhE7xeZA==
X-Google-Smtp-Source: AGHT+IHhmqbuwbM/S3AUDE744Hl9IIJopYl/0Wpt8W/btsCTjY2R/3i79GqUdBUVejcmJG0gj0VCqw==
X-Received: by 2002:a05:6000:4012:b0:428:5673:11e0 with SMTP id ffacd0b85a97d-42cc1d1999dmr26024523f8f.40.1764233326294;
        Thu, 27 Nov 2025 00:48:46 -0800 (PST)
Message-ID: <2ad110d7-0184-458b-a1a4-d112ad193067@suse.com>
Date: Thu, 27 Nov 2025 09:48:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] x86/amd: Drop the cpuid_mask_* command line options
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20251126171539.890253-1-andrew.cooper3@citrix.com>
 <20251126171539.890253-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: <20251126171539.890253-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 18:15, Andrew Cooper wrote:
> As noted in the command line documentation, these are both deprecated since
> Xen 4.7 (2016), and are not fully effective on AMD CPUs starting from 2011.

The latter was said only for one of them, though.

> Not realised at the time of writing the docs was that their use is also
> incompatible with certain errata workarounds which edit the CPUID MSRs after
> the levelling defaults are calculated.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 09:08:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 09:08:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173593.1498611 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOXz8-0003XN-6M; Thu, 27 Nov 2025 09:08:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173593.1498611; Thu, 27 Nov 2025 09:08:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOXz8-0003XG-3n; Thu, 27 Nov 2025 09:08:18 +0000
Received: by outflank-mailman (input) for mailman id 1173593;
 Thu, 27 Nov 2025 09:08: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=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOXz6-0003XA-9Q
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 09:08:16 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9a78735e-cb70-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 10:08:13 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-42b32a5494dso360528f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 01:08: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-42e1cab9af3sm2260975f8f.41.2025.11.27.01.08.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 01:08: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: 9a78735e-cb70-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764234493; x=1764839293; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mjbmciW33d5meull/UZCBrNptpHir15RTAuWpoGEF/o=;
        b=OxDq3tdWaSZr0ZCgX3QorggsN/dU1mWPkvRQRagERLbcOrdaZ2SlKE1IKXMASoXLd/
         cEBy+136EkCWAqbzT6QPzJZi78SPI2qwabO56TqlDBfAS+jhccfsyXr6S53TTCNvxFeX
         gqCZ1XsejJAqtA7uTl7j8PxUkjnA/1tkQGNAXiND+83nEm9XKzeZKIEiQjiuGnD0jOBW
         Cn2qHqYkD7M9Aakrqf8ruNB3j7FXNYT3+zxkUi+jIqZ8EsUk75YEJQYAAzOThUOSXPV+
         XiCw/hstmXqqfd+bMYDUNPvANjrPYlA+LsRD+QabTnPcmWj+EzmFDXzBpcoWMK02mqsa
         AwyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764234493; x=1764839293;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mjbmciW33d5meull/UZCBrNptpHir15RTAuWpoGEF/o=;
        b=ucZ9Mmk9Wd1augafbjUzUmAnhC1jbslFx7FgsrLespylxLnZSuEN3/4IWVr0/Arx8v
         AGXF/FUm4H3Ejzuytpfj9v93RLTi3nDtvRxmxmUTg5xak4W5TYIYz01LUPxriiNNwaiF
         KoiP1Wzf7/xYuvUxuI3/rY2sWiXbv7FtsuCNunhbDkJ2cjJtrwHA3A6sXdHAM/9redCQ
         KVkG5cw1wrK2A44CQOb4FeXuPyzo1ZsHsis7Yh7WJs74e0mkfVgBZhccR5u+aTO82Own
         WPZ01Y0VyNvwruJXL4dDwWEEoNPaLecGk4H35+2jVJhZ7+WajVw8EhCgnmWxlMDZFuUy
         SCrA==
X-Forwarded-Encrypted: i=1; AJvYcCUX7FQyvR4slvYHP0QawSP6XFKqYOvrm4jAtGmnhoGKPfPQ1MOUhNMvumPhmZchQldPFfMVlzMhOwk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwNGQT48RAMK5rzpzrM+RWK5R8Qu5Ig8qdwQykScH+rEyxGtD8R
	ymBVEuXMMXJIyaZw4bvpgcdaPVGhbk3x0hSoFkw+cnSyOneFB/05cEIHEnZcDM0onA==
X-Gm-Gg: ASbGnctZpg5ZPN0D8pnrpYVIvaVsrgXwW7GNgGGQr3VslwraBPKhWhB/G9uOQWw7PlS
	iXwFK1OqA0IkD0eZfcoXLyceaEIZF2H2sPImaJb3ZD+8FVA+Y5PLoEPVcQ7RI4iL8D/ZnTveB9X
	ysi+d+Nx/zZPnxZstiWk2UkepVB8zc8IuEWiaykKHlsqq5pE6a3FeiR8Q6w/6hmpr4ZdSbB0EwS
	ZJ9spJeaspR6tcpIucEVF7sDXyyghQ6CCAzXNuVcW66Y4mD0UoLt9fMAWUKmzViajZd4PI3CJ8c
	9WjAM6pNJ21w2hyC8Px94YbmzR6Gd/wDMfWvycvWsGF6n+iSubpX02cvVW9QeS5Mx2q6ZChUc1T
	9Kwnk600AoeIZnxXmlb7n+o1guvs9vWY2uyKkEMXG1P21bxuSis0zKl6DWfI35obUMmyFZKvh57
	hBDvtXNE66U+AW3D43EM2lVUFtiglSL2y5Rn+BHNRfSWjoYLqXD42BiiBqzGjcthXNBAzng1oVA
	6Ra3g2pIlXxrw==
X-Google-Smtp-Source: AGHT+IHpz1p/HV1qSOFe8sa4Y+ksN9Kt+3DVdqceu0yOZLJfHzw4YUWf/VXjP6YfqNTcXomqAsx9lw==
X-Received: by 2002:a05:6000:400f:b0:42b:3c3e:5d53 with SMTP id ffacd0b85a97d-42cc1cedbf7mr25137120f8f.16.1764234493038;
        Thu, 27 Nov 2025 01:08:13 -0800 (PST)
Message-ID: <684e2b32-6669-4319-8d9b-e041304b86cc@suse.com>
Date: Thu, 27 Nov 2025 10:08:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
To: Grygorii Strashko <grygorii_strashko@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>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251126204331.3395888-1-grygorii_strashko@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: <20251126204331.3395888-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 21:43, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> The d->arch.physaddr_bitsize field is used only by PV32 code, so:
> 
> - move domain_set_alloc_bitsize() function into PV32 code and clean up
> unused domain_set_alloc_bitsize() defines from other arches

This could be two separate patches, which likely would be pretty uncontroversial
(and hence be able to go in quickly): One to drop the entirely unused #define-s
for non-x86, and the other to move the x86 function so it can become static in
the sole file using it.

The former patch may want to have several Fixes: tags (as to being Misra
violations), as from all I can see there had never been a need to introduce
those #define-s. Even in 3.2.x they were already confined to x86-only code.

> --- a/xen/arch/x86/include/asm/domain.h
> +++ b/xen/arch/x86/include/asm/domain.h
> @@ -314,10 +314,10 @@ struct arch_domain
>  
>  #ifdef CONFIG_PV32
>      unsigned int hv_compat_vstart;
> -#endif
>  
>      /* Maximum physical-address bitwidth supported by this guest. */
>      unsigned int physaddr_bitsize;
> +#endif

I'm not happy to see the anomaly here being widened. PV-only items really
belong in struct pv_domain.

> --- a/xen/arch/x86/include/asm/mm.h
> +++ b/xen/arch/x86/include/asm/mm.h
> @@ -619,9 +619,6 @@ void __iomem *ioremap_wc(paddr_t pa, size_t len);
>  
>  extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int pxm);
>  
> -void domain_set_alloc_bitsize(struct domain *d);
> -unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bits);
> -
>  unsigned long domain_get_maximum_gpfn(struct domain *d);
>  
>  /* Definition of an mm lock: spinlock with extra fields for debugging */
> @@ -659,4 +656,11 @@ static inline bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
>      return (mfn + nr) <= (virt_to_mfn(eva - 1) + 1);
>  }
>  
> +#ifdef CONFIG_PV32
> +unsigned int _domain_clamp_alloc_bitsize(const struct domain *d,
> +                                         unsigned int bits);

This introduces a (C language spec) naming violation - identifiers with
this kind of a name a reserved for file-scope use.

> +#define domain_clamp_alloc_bitsize(d, bits)                                    \
> +    _domain_clamp_alloc_bitsize((d), (bits))

Nit: No need for the inner parentheses; they only hamper readability.

> --- a/xen/arch/x86/pv/domain.c
> +++ b/xen/arch/x86/pv/domain.c
> @@ -230,6 +230,27 @@ unsigned long pv_make_cr4(const struct vcpu *v)
>  }
>  
>  #ifdef CONFIG_PV32
> +unsigned int _domain_clamp_alloc_bitsize(const struct domain *d,
> +                                         unsigned int bits)
> +{
> +    if ( (d == NULL) || (d->arch.physaddr_bitsize == 0) )
> +        return bits;
> +    return min(d->arch.physaddr_bitsize, bits);
> +}

While moving, please make minimal style adjustments: Add the missing blank
line before the final "return" here, and ...

> +static void domain_set_alloc_bitsize(struct domain *d)
> +{
> +    if ( !is_pv_32bit_domain(d) ||
> +         (MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page) ||
> +         d->arch.physaddr_bitsize > 0 )
> +        return;
> +    d->arch.physaddr_bitsize =
> +        /* 2^n entries can be contained in guest's p2m mapping space */
> +        fls(MACH2PHYS_COMPAT_NR_ENTRIES(d)) - 1
> +        /* 2^n pages -> 2^(n+PAGE_SHIFT) bits */
> +        + PAGE_SHIFT;
> +}

... add a blank line between the two statements here. In the former function
please further consider switching == NULL and == 0 to our more common use of !.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 09:11:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 09:11:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173603.1498621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOY2G-000537-L4; Thu, 27 Nov 2025 09:11:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173603.1498621; Thu, 27 Nov 2025 09:11: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 1vOY2G-00052E-Ht; Thu, 27 Nov 2025 09:11:32 +0000
Received: by outflank-mailman (input) for mailman id 1173603;
 Thu, 27 Nov 2025 09: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=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOY2E-000525-Ng
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 09:11:30 +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 0e72fd5f-cb71-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 10:11:28 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-47778b23f64so3297215e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 01: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-4791165b1fesm20266235e9.15.2025.11.27.01.11.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 01:11: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: 0e72fd5f-cb71-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764234688; x=1764839488; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RxkrbZOrTNl+hjOp2sbXJ0ecd4hzqExMAY28zRo/5Oc=;
        b=MrwjebDp8iFK00MOM3xqwD3Yhix7QjwO3Nl8FFUBN6uL1KQZfKcAFmcquPLJDwiojl
         nkJqSnQ7J/5n5mwctzgC6BONbYgUJTjn9o/cO8FYkShEbo5XlMLMhK4VHurFmMYb3fag
         8upGEMe5ndV8nesfhPy2O5jtd7GRadkUBJ/jvE4lVo08Z6Vl7tCdb8nCajgU9DT5aOh/
         pco1fVmEfg712o/X/z+14yCNuhNVJ7K3OKG3bV3t7Nswi3HbiEc8FNpO2Dkd1A4WxBNY
         xwh+GrhNxT0DuBcvZCfT5rxRTjiQOXEiV+52HyTnPp2ulVAoCcMgGgoy2o0ijn2lgGmK
         ejQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764234688; x=1764839488;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RxkrbZOrTNl+hjOp2sbXJ0ecd4hzqExMAY28zRo/5Oc=;
        b=mkYRUSija7K9wKM1jOE3Dk6UyyHmWPEzvigu5wandyx4rrmn0SkZpASyW3tVYjxlqd
         ytocErEhvS7RYL6xfXa+DcMcRKtqUEj46nFqvklFddMebCxKw5MCGoyHjvaRaIpvJl69
         I2n2ck5N9tZanFtQUG/DYk9YqKqfD+n4zKtyaLO7sKbbE4Wk/jjfHjUgjGHNqlereBij
         kKL4yA7JAPba4GKyT5C6A9Znu2LkA36HVb5NbA0i39uXqrMu4o+hBKhzNRJarxz20SGa
         Km5LJNXWSw0eMECCO0/4ONt+DumCV1FepZowsrP6oW+bJWfNkGAhMeUdbQDBhEAwBTiM
         fFUA==
X-Forwarded-Encrypted: i=1; AJvYcCV5WHyezRtTRXZedaPuoJeQHDFKKtMQbAYJhNmxdLaULCClTU3VzBZNZUrwK3zg7jOEpILmMgHSUIU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywj36s6gz12gNpUFFG6hXoIcGYUOmd0IIRN7Rm+nqR9BI1qqdZz
	7aQebWN0PHH3Dtg9wQxGNRVi2rUNH9w/+5zMjqTmWhe0T2l3iZZCeYEJ2oGS60QuAg==
X-Gm-Gg: ASbGncuoE27yZds1BNZ/P2OeqyxQBXe8OkrDPHYV2S5MGXJIdtzvvbW08jPkyei8tXD
	C0x9SdXhNIcRW8pLkHLHHJcY5fQYM9UnyiDbmGD1ZlGKchYZ3aMjzOuaYc9mEp/+jm/YGnPUiWW
	agm/MasEjATGJkJi9OEYYWVsk0Nv6qLdjnp8NUHbQCIBaTGdYjxlTutiDlRtb/xYzMitA740KbH
	iwOe2tvASduXxcqu3YtptQCOnjPWXIEZTXIabybToMLYU2aNguTCSPXg4u5md+qpJsygcrACG+m
	SS0+IorNers6kZ3/BUEbY174MP2q9Z9kU7oo7Sxi0AyVhlETNGh9lsLj5wu3wCXvvhz7G5M8vg1
	LDw3+oDZ60RK+oyT7Wf4zZvWYy6ixNn11zaV3Fm9BOtLOPqvxv8PpqhXadyxGYGcUoQZPZsHd9f
	UOJGZyGdIw57Xbbeg/yXo4I1qGdnZmN6aYMUNHZJdHz1/EQiim084q8ygEK2bobYBoqpGVh/u+m
	jEFpAZ4h25Y4g==
X-Google-Smtp-Source: AGHT+IFcQm4dqtZe5NYAJatlIxIz9NGXqtk7Br/er8kzPhO/+QoAKJNqSnZN589kaYr1Dh6WB2WZJw==
X-Received: by 2002:a05:600c:19ca:b0:477:a978:3a7b with SMTP id 5b1f17b1804b1-477c1143073mr214542645e9.22.1764234687802;
        Thu, 27 Nov 2025 01:11:27 -0800 (PST)
Message-ID: <abaa055e-9ac4-4272-b348-a58f181fe719@suse.com>
Date: Thu, 27 Nov 2025 10:11:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
To: Grygorii Strashko <grygorii_strashko@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>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251126204331.3395888-1-grygorii_strashko@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: <20251126204331.3395888-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 21:43, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> The d->arch.physaddr_bitsize field is used only by PV32 code, so:
> 
> - move domain_set_alloc_bitsize() function into PV32 code and clean up
> unused domain_set_alloc_bitsize() defines from other arches
> 
> - move domain_clamp_alloc_bitsize() function into PV32 code,
> rename to _domain_clamp_alloc_bitsize() and use generic
> domain_clamp_alloc_bitsize() define instead, clean up
> domain_clamp_alloc_bitsize() defines from !X86 arches
> 
> - move d->arch.physaddr_bitsize field under PV32 ifdef
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
>  xen/arch/arm/include/asm/mm.h     |  3 ---
>  xen/arch/ppc/include/asm/mm.h     |  3 ---

As I noticed only by getting a mail delivery failure back - please also be sure
your submissions are up-to-date wrt ./MAINTAINERS: You meant to Cc Timothy for
PPC, not Shawn.

Jan

>  xen/arch/riscv/include/asm/mm.h   |  3 ---
>  xen/arch/x86/include/asm/domain.h |  2 +-
>  xen/arch/x86/include/asm/mm.h     | 10 +++++++---
>  xen/arch/x86/pv/dom0_build.c      |  2 ++
>  xen/arch/x86/pv/domain.c          | 21 +++++++++++++++++++++
>  xen/arch/x86/x86_64/mm.c          | 20 --------------------
>  xen/include/xen/mm.h              |  4 ++++
>  9 files changed, 35 insertions(+), 33 deletions(-)


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 09:25:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 09:25:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173613.1498632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOYFI-0006za-P1; Thu, 27 Nov 2025 09:25:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173613.1498632; Thu, 27 Nov 2025 09: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 1vOYFI-0006zT-Lm; Thu, 27 Nov 2025 09:25:00 +0000
Received: by outflank-mailman (input) for mailman id 1173613;
 Thu, 27 Nov 2025 09:25: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=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOYFI-0006zL-7l
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 09:25:00 +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 f1462620-cb72-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 10:24:58 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-429c82bf86bso395465f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 01:24: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-42e1cab9af3sm2360061f8f.41.2025.11.27.01.24.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 01:24: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: f1462620-cb72-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764235498; x=1764840298; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GWwETVtIO2Lhi7EfpckxWZ2y5dVcdNLDAC+nGiG0TZo=;
        b=WVI5ausbFfIAFXnvcQgEWfkytXZle0ZIxvIJnuwAhFfj4M+GRZSKbOg/aDtvXEM2lh
         WlxXJ0cWXU4k0MVAfJ9LPcuQh0H/Jf4BL+0GfN8+6XRFkmSI74rTXGp9J2wsxJ+gyqXH
         3zMlyb1OxOLnc9C5nR48AEPnL3ziyumXOlKi8zJmdKEDxT+4lvfJd5Yl0q7Wszg/CIQ8
         Mj7u38NbuP3vNGaxHLnvEvz97bF6D5Gpk65oNsn/TQjF5p3lwEuEKwd2uro6jm0LgENq
         JIrhJviOY9sx6o6sJlAg1Acipa+GzZC2RZterpMWGaL/GwrM8sLws6XlwNG73EYFIDvY
         7Kkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764235498; x=1764840298;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GWwETVtIO2Lhi7EfpckxWZ2y5dVcdNLDAC+nGiG0TZo=;
        b=P0Vus2KPA/2BBMqwxRNnlIjnPT5Rej6Y3Aj1zskCfa15fIaq+KqQBdYdRvanL1+IZL
         t1nawzq8w72W2pYEj7QWdnTH/3pK7lyXLkiqJdzOJdTgQdrBlmdWzPSGT4Yv+cSiz10D
         WsV7rbBs4fGo+PGqWCrlWcVNwx2p4gwEb/PUUNpT/beA21n/GNknMyXTNET2dCwfEGDE
         Khd7vIte6dgYsV4lKqjhkxDI2A6iUp0+AnL94ii5Na0g1s7BGLtPIM1L7jD0T+/9AMNK
         oS67OP4BoKeqU6jZ1dMVV3fi4DD+oD4Np/gGqzJMEoE6Bsuf2QMpGUEKxs/AX2jWsZfC
         Cj+g==
X-Forwarded-Encrypted: i=1; AJvYcCUXNrTt/lynGuWBDV3u2lzfwjKDcJwiEqtzhW3Ir1da0b3HVn10iLaVQDa069oSwWHaOoJooODZnIo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw4qglAFnCwx5tk6ZIDi4B2/Aj9sWtsxLSFUnfoFF6NMNBgnxnp
	VpSG1nUcPpwmmTuig5c978Kr1N15oFw16OnkEmx/HifGu8GKiNizA4gS7VnaNq1ezA==
X-Gm-Gg: ASbGncsBC7ypUmlJkk26UTzR4mIwZoH9vRRGjjrUIkhQ53GF46tGgYMqvaaSXkL55pM
	yyFP5lVjpiqKLjiErys2Klt4484ijf/3XnAnh0loCOCqicCeWQhnx0Odc6wEhFeA+2P3dvVEc9D
	blaiENPnclPrEODIaUBn9p7Y9SKJEbr2EN2FUUGU657eIJLVN1hEpaTNnej+TmGZfFDcuvOEH3N
	tLYbFvhyfYJmwereiA8Wx1FXGLxXhiauXF1Ner0i40q5/j6BKBxGvv1AtzjRXdzjdcsM40GpwmQ
	XZemdAc8mQj7eticfIz8c5JYeKXY417Vfg8mwIj74XYiPtfmz+jilAkT/hfUDOQsxLjwZI3A5fP
	reMkEBs8nWfAIfgVKhSgVdO7iXi8FlDbTaqrbOq8m0DdYiUyLJ2Uf/szKBejGFldUBazXT64+cZ
	dfi4oKVPplAztbUPDv3z/cb2y18NXRvO13X1ZuxnbClra4upTxC/LT+nHOZ7bEB6788YCIlFV9p
	vQ=
X-Google-Smtp-Source: AGHT+IHG6gn7Y9um+cGpP5Rt6Aj1xWOEeiz77qEz5meD1DvXAiM1e1ncsyV9pGgKopbf+BJ+DN/FoQ==
X-Received: by 2002:a05:6000:184d:b0:42b:2de5:251e with SMTP id ffacd0b85a97d-42cc1cbe567mr23251443f8f.26.1764235497763;
        Thu, 27 Nov 2025 01:24:57 -0800 (PST)
Message-ID: <04a363ea-1ab0-4028-a2bc-8bfbacafab6e@suse.com>
Date: Thu, 27 Nov 2025 10:24:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] x86: Remove x86 prefixed names from cpuinfo for
 intel.c
To: Kevin Lampis <kevin.lampis@citrix.com>, andrew.cooper3@citrix.com
Cc: roger.pau@citrix.com, xen-devel@lists.xenproject.org
References: <20251126191945.3386781-1-kevin.lampis@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: <20251126191945.3386781-1-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 20:19, Kevin Lampis wrote:
> struct cpuinfo_x86
>   .x86        => .family
>   .x86_vendor => .vendor
>   .x86_model  => .model
>   .x86_mask   => .stepping
> 
> No functional change.
> 
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
> ---
> Changes in v2:
> - Convert the two switch statements in probe_masking_msrs(),
>   intel_log_freq() and check_memory_type_self_snoop_errata()
> - Requested style changes
> 
> Changes in v3:
> - Re-order the CPU model names in the switch statements
> - Better style changes

As to the latter, ...

> @@ -458,7 +460,8 @@ static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
>  {
>  	uint64_t val;
>  
> -	if ((c->x86 == 15) && (c->x86_model == 1) && (c->x86_mask == 1)) {
> +	if ( c->vfm == INTEL_P4_WILLAMETTE && c->stepping == 1 )
> +	{

... this is still introducing a mix of styles (partly Linux, partly Xen). Imo
we want to avoid this.

> @@ -468,8 +471,10 @@ static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
>  		}
>  	}
>  
> -	if (c->x86 == 6 && cpu_has_clflush &&
> -	    (c->x86_model == 29 || c->x86_model == 46 || c->x86_model == 47))
> +	if ( cpu_has_clflush &&
> +	    ( c->vfm == INTEL_CORE2_DUNNINGTON ||
> +	      c->vfm == INTEL_NEHALEM_EX ||
> +	      c->vfm == INTEL_WESTMERE_EX ))
>  		setup_force_cpu_cap(X86_BUG_CLFLUSH_MONITOR);

Same here, plus in neither style there's provision for blanks immediately
inside inner parentheses. Indentation of that opening parenthesis would
also be off by one.

> @@ -657,14 +670,16 @@ static void cf_check init_intel(struct cpuinfo_x86 *c)
>  	/* Work around errata */
>  	Intel_errata_workarounds(c);
>  
> -	if ((c->x86 == 0xf && c->x86_model >= 0x03) ||
> -		(c->x86 == 0x6 && c->x86_model >= 0x0e))
> +	if ( ( c->family == 15 && c->model >= 0x03 ) ||
> +	     ( c->family == 6 && c->model >= 0x0e ) )

Again undue mix of styles and undue blanks inside inner parentheses.

> --- a/xen/arch/x86/include/asm/intel-family.h
> +++ b/xen/arch/x86/include/asm/intel-family.h
> @@ -179,6 +179,10 @@
>  #define INTEL_XEON_PHI_KNL		IFM(6, 0x57) /* Knights Landing */
>  #define INTEL_XEON_PHI_KNM		IFM(6, 0x85) /* Knights Mill */
>  
> +/* Family 15 - NetBurst */
> +#define INTEL_P4_WILLAMETTE		IFM(15, 0x01) /* Also Xeon Foster */
> +#define INTEL_P4_PRESCOTT		IFM(15, 0x03)

Andrew, can you please get in your re-syncing patch, so this part can be
omitted?

With the style adjustments (which I can certainly do while committing if no
other need for a v4 arises):
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 09:25:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 09:25:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173616.1498642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOYFf-0007NI-1N; Thu, 27 Nov 2025 09:25:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173616.1498642; Thu, 27 Nov 2025 09: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 1vOYFe-0007N9-Sl; Thu, 27 Nov 2025 09:25:22 +0000
Received: by outflank-mailman (input) for mailman id 1173616;
 Thu, 27 Nov 2025 09:25: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=76a4=6D=intel.com=lkp@srs-se1.protection.inumbo.net>)
 id 1vOYFe-0006zL-6I
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 09:25:22 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.21])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fc9254f1-cb72-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 10:25:19 +0100 (CET)
Received: from orviesa009.jf.intel.com ([10.64.159.149])
 by orvoesa113.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 27 Nov 2025 01:25:16 -0800
Received: from lkp-server01.sh.intel.com (HELO 4664bbef4914) ([10.239.97.150])
 by orviesa009.jf.intel.com with ESMTP; 27 Nov 2025 01:25:10 -0800
Received: from kbuild by 4664bbef4914 with local (Exim 4.98.2)
 (envelope-from <lkp@intel.com>) id 1vOYFP-000000004CN-2qrR;
 Thu, 27 Nov 2025 09:25: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: fc9254f1-cb72-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1764235519; x=1795771519;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=KK9nzEbpI9PD/rQsiJtia1oCOmSytQ0R3vQ+5NXjJmA=;
  b=BFdHlXMj5e0Xc+McTefoLHNh+pSMC9L4TJ2+/jdYv6cvUfzehO32kNLo
   Z7+OXYDVxowxikZ7sRa8XJ7dFNBHDmvqCu/Ptg4DZVKt8YwaYXvDr5hP1
   8YxRTIM8TnX5+QyY2NFdZNDcGceHkanBqEGoRwgtw0n+6ioDz7LAh8gzr
   TQwvMLg5HQd2HUxtv3yBqMJRA5KaKvyKQpbMKRSP45NzkaOdBbIKaCEXB
   ycO1J5gjJo+PfEY0xDIoalhjzzIAd6ZnoqyEJoFyyEHGRfc9ZmN3UVBh+
   IqJmXh72K2NDGkylz4xfOkXtouJvJLnupBUuCaHetOqvkGklOeEZKpRuL
   Q==;
X-CSE-ConnectionGUID: D2H02AAJQFKeu2dPebxDEA==
X-CSE-MsgGUID: 9im8nL7nRoCHS1asJv8JKQ==
X-IronPort-AV: E=McAfee;i="6800,10657,11625"; a="66226410"
X-IronPort-AV: E=Sophos;i="6.20,230,1758610800"; 
   d="scan'208";a="66226410"
X-CSE-ConnectionGUID: URawlKB/TjiX1FSy99cnMQ==
X-CSE-MsgGUID: STAbKrqQRdezH2EW5Q2Vqw==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.20,230,1758610800"; 
   d="scan'208";a="193000716"
Date: Thu, 27 Nov 2025 17:24:18 +0800
From: kernel test robot <lkp@intel.com>
To: Juergen Gross <jgross@suse.com>, linux-kernel@vger.kernel.org,
	x86@kernel.org, linux-hyperv@vger.kernel.org,
	virtualization@lists.linux.dev, kvm@vger.kernel.org
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	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>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	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>,
	Josh Poimboeuf <jpoimboe@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 21/21] x86/pvlocks: Move paravirt spinlock functions
 into own header
Message-ID: <202511271747.smpLdjsz-lkp@intel.com>
References: <20251127070844.21919-22-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20251127070844.21919-22-jgross@suse.com>

Hi Juergen,

kernel test robot noticed the following build errors:

[auto build test ERROR on tip/x86/core]
[also build test ERROR on tip/sched/core kvm/queue kvm/next linus/master v6.18-rc7]
[cannot apply to kvm/linux-next next-20251127]
[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/x86-paravirt-Remove-not-needed-includes-of-paravirt-h/20251127-152054
base:   tip/x86/core
patch link:    https://lore.kernel.org/r/20251127070844.21919-22-jgross%40suse.com
patch subject: [PATCH v4 21/21] x86/pvlocks: Move paravirt spinlock functions into own header
config: x86_64-allnoconfig (https://download.01.org/0day-ci/archive/20251127/202511271747.smpLdjsz-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/20251127/202511271747.smpLdjsz-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/202511271747.smpLdjsz-lkp@intel.com/

All errors (new ones prefixed by >>):

>> arch/x86/kernel/alternative.c:2373:2: error: call to undeclared function 'paravirt_set_cap'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    2373 |         paravirt_set_cap();
         |         ^
   arch/x86/kernel/alternative.c:2373:2: note: did you mean 'paravirt_ret0'?
   arch/x86/include/asm/paravirt-base.h:23:15: note: 'paravirt_ret0' declared here
      23 | unsigned long paravirt_ret0(void);
         |               ^
   1 error generated.


vim +/paravirt_set_cap +2373 arch/x86/kernel/alternative.c

270a69c4485d7d arch/x86/kernel/alternative.c  Peter Zijlstra            2023-02-08  2344  
9a0b5817ad97bb arch/i386/kernel/alternative.c Gerd Hoffmann             2006-03-23  2345  void __init alternative_instructions(void)
9a0b5817ad97bb arch/i386/kernel/alternative.c Gerd Hoffmann             2006-03-23  2346  {
ebebe30794d38c arch/x86/kernel/alternative.c  Pawan Gupta               2025-05-03  2347  	u64 ibt;
ebebe30794d38c arch/x86/kernel/alternative.c  Pawan Gupta               2025-05-03  2348  
7457c0da024b18 arch/x86/kernel/alternative.c  Peter Zijlstra            2019-05-03  2349  	int3_selftest();
7457c0da024b18 arch/x86/kernel/alternative.c  Peter Zijlstra            2019-05-03  2350  
7457c0da024b18 arch/x86/kernel/alternative.c  Peter Zijlstra            2019-05-03  2351  	/*
7457c0da024b18 arch/x86/kernel/alternative.c  Peter Zijlstra            2019-05-03  2352  	 * The patching is not fully atomic, so try to avoid local
7457c0da024b18 arch/x86/kernel/alternative.c  Peter Zijlstra            2019-05-03  2353  	 * interruptions that might execute the to be patched code.
7457c0da024b18 arch/x86/kernel/alternative.c  Peter Zijlstra            2019-05-03  2354  	 * Other CPUs are not running.
7457c0da024b18 arch/x86/kernel/alternative.c  Peter Zijlstra            2019-05-03  2355  	 */
8f4e956b313dcc arch/i386/kernel/alternative.c Andi Kleen                2007-07-22  2356  	stop_nmi();
123aa76ec0cab5 arch/x86/kernel/alternative.c  Andi Kleen                2009-02-12  2357  
123aa76ec0cab5 arch/x86/kernel/alternative.c  Andi Kleen                2009-02-12  2358  	/*
123aa76ec0cab5 arch/x86/kernel/alternative.c  Andi Kleen                2009-02-12  2359  	 * Don't stop machine check exceptions while patching.
123aa76ec0cab5 arch/x86/kernel/alternative.c  Andi Kleen                2009-02-12  2360  	 * MCEs only happen when something got corrupted and in this
123aa76ec0cab5 arch/x86/kernel/alternative.c  Andi Kleen                2009-02-12  2361  	 * case we must do something about the corruption.
32b1cbe380417f arch/x86/kernel/alternative.c  Marco Ammon               2019-09-02  2362  	 * Ignoring it is worse than an unlikely patching race.
123aa76ec0cab5 arch/x86/kernel/alternative.c  Andi Kleen                2009-02-12  2363  	 * Also machine checks tend to be broadcast and if one CPU
123aa76ec0cab5 arch/x86/kernel/alternative.c  Andi Kleen                2009-02-12  2364  	 * goes into machine check the others follow quickly, so we don't
123aa76ec0cab5 arch/x86/kernel/alternative.c  Andi Kleen                2009-02-12  2365  	 * expect a machine check to cause undue problems during to code
123aa76ec0cab5 arch/x86/kernel/alternative.c  Andi Kleen                2009-02-12  2366  	 * patching.
123aa76ec0cab5 arch/x86/kernel/alternative.c  Andi Kleen                2009-02-12  2367  	 */
8f4e956b313dcc arch/i386/kernel/alternative.c Andi Kleen                2007-07-22  2368  
4e6292114c7412 arch/x86/kernel/alternative.c  Juergen Gross             2021-03-11  2369  	/*
f7af6977621a41 arch/x86/kernel/alternative.c  Juergen Gross             2023-12-10  2370  	 * Make sure to set (artificial) features depending on used paravirt
f7af6977621a41 arch/x86/kernel/alternative.c  Juergen Gross             2023-12-10  2371  	 * functions which can later influence alternative patching.
4e6292114c7412 arch/x86/kernel/alternative.c  Juergen Gross             2021-03-11  2372  	 */
4e6292114c7412 arch/x86/kernel/alternative.c  Juergen Gross             2021-03-11 @2373  	paravirt_set_cap();
4e6292114c7412 arch/x86/kernel/alternative.c  Juergen Gross             2021-03-11  2374  
ebebe30794d38c arch/x86/kernel/alternative.c  Pawan Gupta               2025-05-03  2375  	/* Keep CET-IBT disabled until caller/callee are patched */
ebebe30794d38c arch/x86/kernel/alternative.c  Pawan Gupta               2025-05-03  2376  	ibt = ibt_save(/*disable*/ true);
ebebe30794d38c arch/x86/kernel/alternative.c  Pawan Gupta               2025-05-03  2377  
931ab63664f02b arch/x86/kernel/alternative.c  Peter Zijlstra            2022-10-27  2378  	__apply_fineibt(__retpoline_sites, __retpoline_sites_end,
1d7e707af44613 arch/x86/kernel/alternative.c  Mike Rapoport (Microsoft  2025-01-26  2379) 			__cfi_sites, __cfi_sites_end, true);
026211c40b0554 arch/x86/kernel/alternative.c  Kees Cook                 2025-09-03  2380  	cfi_debug = false;
931ab63664f02b arch/x86/kernel/alternative.c  Peter Zijlstra            2022-10-27  2381  
7508500900814d arch/x86/kernel/alternative.c  Peter Zijlstra            2021-10-26  2382  	/*
7508500900814d arch/x86/kernel/alternative.c  Peter Zijlstra            2021-10-26  2383  	 * Rewrite the retpolines, must be done before alternatives since
7508500900814d arch/x86/kernel/alternative.c  Peter Zijlstra            2021-10-26  2384  	 * those can rewrite the retpoline thunks.
7508500900814d arch/x86/kernel/alternative.c  Peter Zijlstra            2021-10-26  2385  	 */
1d7e707af44613 arch/x86/kernel/alternative.c  Mike Rapoport (Microsoft  2025-01-26  2386) 	apply_retpolines(__retpoline_sites, __retpoline_sites_end);
1d7e707af44613 arch/x86/kernel/alternative.c  Mike Rapoport (Microsoft  2025-01-26  2387) 	apply_returns(__return_sites, __return_sites_end);
7508500900814d arch/x86/kernel/alternative.c  Peter Zijlstra            2021-10-26  2388  
a82b26451de126 arch/x86/kernel/alternative.c  Peter Zijlstra (Intel     2025-06-03  2389) 	its_fini_core();
a82b26451de126 arch/x86/kernel/alternative.c  Peter Zijlstra (Intel     2025-06-03  2390) 
e81dc127ef6988 arch/x86/kernel/alternative.c  Thomas Gleixner           2022-09-15  2391  	/*
ab9fea59487d8b arch/x86/kernel/alternative.c  Peter Zijlstra            2025-02-07  2392  	 * Adjust all CALL instructions to point to func()-10, including
ab9fea59487d8b arch/x86/kernel/alternative.c  Peter Zijlstra            2025-02-07  2393  	 * those in .altinstr_replacement.
e81dc127ef6988 arch/x86/kernel/alternative.c  Thomas Gleixner           2022-09-15  2394  	 */
e81dc127ef6988 arch/x86/kernel/alternative.c  Thomas Gleixner           2022-09-15  2395  	callthunks_patch_builtin_calls();
e81dc127ef6988 arch/x86/kernel/alternative.c  Thomas Gleixner           2022-09-15  2396  
ab9fea59487d8b arch/x86/kernel/alternative.c  Peter Zijlstra            2025-02-07  2397  	apply_alternatives(__alt_instructions, __alt_instructions_end);
ab9fea59487d8b arch/x86/kernel/alternative.c  Peter Zijlstra            2025-02-07  2398  
be0fffa5ca894a arch/x86/kernel/alternative.c  Peter Zijlstra            2023-06-22  2399  	/*
be0fffa5ca894a arch/x86/kernel/alternative.c  Peter Zijlstra            2023-06-22  2400  	 * Seal all functions that do not have their address taken.
be0fffa5ca894a arch/x86/kernel/alternative.c  Peter Zijlstra            2023-06-22  2401  	 */
1d7e707af44613 arch/x86/kernel/alternative.c  Mike Rapoport (Microsoft  2025-01-26  2402) 	apply_seal_endbr(__ibt_endbr_seal, __ibt_endbr_seal_end);
ed53a0d971926e arch/x86/kernel/alternative.c  Peter Zijlstra            2022-03-08  2403  
ebebe30794d38c arch/x86/kernel/alternative.c  Pawan Gupta               2025-05-03  2404  	ibt_restore(ibt);
ebebe30794d38c arch/x86/kernel/alternative.c  Pawan Gupta               2025-05-03  2405  

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


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 09:25:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 09:25:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173617.1498652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOYFh-0007cM-A9; Thu, 27 Nov 2025 09:25:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173617.1498652; Thu, 27 Nov 2025 09:25:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOYFh-0007c8-7G; Thu, 27 Nov 2025 09:25:25 +0000
Received: by outflank-mailman (input) for mailman id 1173617;
 Thu, 27 Nov 2025 09:25: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=76a4=6D=intel.com=lkp@srs-se1.protection.inumbo.net>)
 id 1vOYFf-0006zL-Ha
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 09:25:23 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.21])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ff8cff5e-cb72-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 10:25:22 +0100 (CET)
Received: from orviesa009.jf.intel.com ([10.64.159.149])
 by orvoesa113.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 27 Nov 2025 01:25:17 -0800
Received: from lkp-server01.sh.intel.com (HELO 4664bbef4914) ([10.239.97.150])
 by orviesa009.jf.intel.com with ESMTP; 27 Nov 2025 01:25:10 -0800
Received: from kbuild by 4664bbef4914 with local (Exim 4.98.2)
 (envelope-from <lkp@intel.com>) id 1vOYFP-000000004CQ-2yB2;
 Thu, 27 Nov 2025 09:25: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: ff8cff5e-cb72-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1764235523; x=1795771523;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=dKVw7WCI669xYparOitpzs+aXbeQn7xNAtOzxdtNdjc=;
  b=U/xxl5pcQlAr2wGmk3UtL5+A+H+pYfwu8nbKpnr9zjIDSfaX2hSTZOVl
   awGH7gr1k2+F2g7EBaH6ayUrkBL9Jyjd7gk+UwHTa9i5lC47gB6zE9y0U
   DpEGaF9/h+Bxw1Oci/ESoeeY6Bz9qrpiDDBcDkcuagO14qmESJW/DtRNb
   Qg7YxY0Fq5rXyNhF3032WK0FBppkqHsGzeLwPldMj+cm3lXRD2/CZVsko
   Pc2nQSeXT9y/DSDoISzPg6fTn9EoSsZcPHqJe5gNE583LZEa74cKn2evH
   0XREkt3/0v8u9fFnAMQgqm7gPsQs+wPYHL3cNShPhOgE4U15IPm0Mk0Cu
   Q==;
X-CSE-ConnectionGUID: 015DB3iFQg6k9uSEOr6UKg==
X-CSE-MsgGUID: IpqdGAprQ2+C/C1lkRv/JA==
X-IronPort-AV: E=McAfee;i="6800,10657,11625"; a="66226422"
X-IronPort-AV: E=Sophos;i="6.20,230,1758610800"; 
   d="scan'208";a="66226422"
X-CSE-ConnectionGUID: qnUhwLQBRx2i3D9EMh7ltA==
X-CSE-MsgGUID: wTQgJDKGRmC9eSaGlBaXGQ==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.20,230,1758610800"; 
   d="scan'208";a="193000719"
Date: Thu, 27 Nov 2025 17:24:20 +0800
From: kernel test robot <lkp@intel.com>
To: Juergen Gross <jgross@suse.com>, linux-kernel@vger.kernel.org,
	x86@kernel.org, linux-hyperv@vger.kernel.org,
	virtualization@lists.linux.dev, kvm@vger.kernel.org
Cc: oe-kbuild-all@lists.linux.dev, 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>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	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>,
	Josh Poimboeuf <jpoimboe@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 21/21] x86/pvlocks: Move paravirt spinlock functions
 into own header
Message-ID: <202511271704.MdDOB4pB-lkp@intel.com>
References: <20251127070844.21919-22-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20251127070844.21919-22-jgross@suse.com>

Hi Juergen,

kernel test robot noticed the following build errors:

[auto build test ERROR on tip/x86/core]
[also build test ERROR on tip/sched/core kvm/queue kvm/next linus/master v6.18-rc7]
[cannot apply to kvm/linux-next next-20251127]
[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/x86-paravirt-Remove-not-needed-includes-of-paravirt-h/20251127-152054
base:   tip/x86/core
patch link:    https://lore.kernel.org/r/20251127070844.21919-22-jgross%40suse.com
patch subject: [PATCH v4 21/21] x86/pvlocks: Move paravirt spinlock functions into own header
config: i386-allnoconfig (https://download.01.org/0day-ci/archive/20251127/202511271704.MdDOB4pB-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/20251127/202511271704.MdDOB4pB-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/202511271704.MdDOB4pB-lkp@intel.com/

All errors (new ones prefixed by >>):

   arch/x86/kernel/alternative.c: In function 'alternative_instructions':
>> arch/x86/kernel/alternative.c:2373:9: error: implicit declaration of function 'paravirt_set_cap'; did you mean 'paravirt_ret0'? [-Wimplicit-function-declaration]
    2373 |         paravirt_set_cap();
         |         ^~~~~~~~~~~~~~~~
         |         paravirt_ret0


vim +2373 arch/x86/kernel/alternative.c

270a69c4485d7d0 arch/x86/kernel/alternative.c  Peter Zijlstra            2023-02-08  2344  
9a0b5817ad97bb7 arch/i386/kernel/alternative.c Gerd Hoffmann             2006-03-23  2345  void __init alternative_instructions(void)
9a0b5817ad97bb7 arch/i386/kernel/alternative.c Gerd Hoffmann             2006-03-23  2346  {
ebebe30794d38c5 arch/x86/kernel/alternative.c  Pawan Gupta               2025-05-03  2347  	u64 ibt;
ebebe30794d38c5 arch/x86/kernel/alternative.c  Pawan Gupta               2025-05-03  2348  
7457c0da024b181 arch/x86/kernel/alternative.c  Peter Zijlstra            2019-05-03  2349  	int3_selftest();
7457c0da024b181 arch/x86/kernel/alternative.c  Peter Zijlstra            2019-05-03  2350  
7457c0da024b181 arch/x86/kernel/alternative.c  Peter Zijlstra            2019-05-03  2351  	/*
7457c0da024b181 arch/x86/kernel/alternative.c  Peter Zijlstra            2019-05-03  2352  	 * The patching is not fully atomic, so try to avoid local
7457c0da024b181 arch/x86/kernel/alternative.c  Peter Zijlstra            2019-05-03  2353  	 * interruptions that might execute the to be patched code.
7457c0da024b181 arch/x86/kernel/alternative.c  Peter Zijlstra            2019-05-03  2354  	 * Other CPUs are not running.
7457c0da024b181 arch/x86/kernel/alternative.c  Peter Zijlstra            2019-05-03  2355  	 */
8f4e956b313dccc arch/i386/kernel/alternative.c Andi Kleen                2007-07-22  2356  	stop_nmi();
123aa76ec0cab5d arch/x86/kernel/alternative.c  Andi Kleen                2009-02-12  2357  
123aa76ec0cab5d arch/x86/kernel/alternative.c  Andi Kleen                2009-02-12  2358  	/*
123aa76ec0cab5d arch/x86/kernel/alternative.c  Andi Kleen                2009-02-12  2359  	 * Don't stop machine check exceptions while patching.
123aa76ec0cab5d arch/x86/kernel/alternative.c  Andi Kleen                2009-02-12  2360  	 * MCEs only happen when something got corrupted and in this
123aa76ec0cab5d arch/x86/kernel/alternative.c  Andi Kleen                2009-02-12  2361  	 * case we must do something about the corruption.
32b1cbe380417f2 arch/x86/kernel/alternative.c  Marco Ammon               2019-09-02  2362  	 * Ignoring it is worse than an unlikely patching race.
123aa76ec0cab5d arch/x86/kernel/alternative.c  Andi Kleen                2009-02-12  2363  	 * Also machine checks tend to be broadcast and if one CPU
123aa76ec0cab5d arch/x86/kernel/alternative.c  Andi Kleen                2009-02-12  2364  	 * goes into machine check the others follow quickly, so we don't
123aa76ec0cab5d arch/x86/kernel/alternative.c  Andi Kleen                2009-02-12  2365  	 * expect a machine check to cause undue problems during to code
123aa76ec0cab5d arch/x86/kernel/alternative.c  Andi Kleen                2009-02-12  2366  	 * patching.
123aa76ec0cab5d arch/x86/kernel/alternative.c  Andi Kleen                2009-02-12  2367  	 */
8f4e956b313dccc arch/i386/kernel/alternative.c Andi Kleen                2007-07-22  2368  
4e6292114c74122 arch/x86/kernel/alternative.c  Juergen Gross             2021-03-11  2369  	/*
f7af6977621a416 arch/x86/kernel/alternative.c  Juergen Gross             2023-12-10  2370  	 * Make sure to set (artificial) features depending on used paravirt
f7af6977621a416 arch/x86/kernel/alternative.c  Juergen Gross             2023-12-10  2371  	 * functions which can later influence alternative patching.
4e6292114c74122 arch/x86/kernel/alternative.c  Juergen Gross             2021-03-11  2372  	 */
4e6292114c74122 arch/x86/kernel/alternative.c  Juergen Gross             2021-03-11 @2373  	paravirt_set_cap();
4e6292114c74122 arch/x86/kernel/alternative.c  Juergen Gross             2021-03-11  2374  
ebebe30794d38c5 arch/x86/kernel/alternative.c  Pawan Gupta               2025-05-03  2375  	/* Keep CET-IBT disabled until caller/callee are patched */
ebebe30794d38c5 arch/x86/kernel/alternative.c  Pawan Gupta               2025-05-03  2376  	ibt = ibt_save(/*disable*/ true);
ebebe30794d38c5 arch/x86/kernel/alternative.c  Pawan Gupta               2025-05-03  2377  
931ab63664f02b1 arch/x86/kernel/alternative.c  Peter Zijlstra            2022-10-27  2378  	__apply_fineibt(__retpoline_sites, __retpoline_sites_end,
1d7e707af446134 arch/x86/kernel/alternative.c  Mike Rapoport (Microsoft  2025-01-26  2379) 			__cfi_sites, __cfi_sites_end, true);
026211c40b05548 arch/x86/kernel/alternative.c  Kees Cook                 2025-09-03  2380  	cfi_debug = false;
931ab63664f02b1 arch/x86/kernel/alternative.c  Peter Zijlstra            2022-10-27  2381  
7508500900814d1 arch/x86/kernel/alternative.c  Peter Zijlstra            2021-10-26  2382  	/*
7508500900814d1 arch/x86/kernel/alternative.c  Peter Zijlstra            2021-10-26  2383  	 * Rewrite the retpolines, must be done before alternatives since
7508500900814d1 arch/x86/kernel/alternative.c  Peter Zijlstra            2021-10-26  2384  	 * those can rewrite the retpoline thunks.
7508500900814d1 arch/x86/kernel/alternative.c  Peter Zijlstra            2021-10-26  2385  	 */
1d7e707af446134 arch/x86/kernel/alternative.c  Mike Rapoport (Microsoft  2025-01-26  2386) 	apply_retpolines(__retpoline_sites, __retpoline_sites_end);
1d7e707af446134 arch/x86/kernel/alternative.c  Mike Rapoport (Microsoft  2025-01-26  2387) 	apply_returns(__return_sites, __return_sites_end);
7508500900814d1 arch/x86/kernel/alternative.c  Peter Zijlstra            2021-10-26  2388  
a82b26451de126a arch/x86/kernel/alternative.c  Peter Zijlstra (Intel     2025-06-03  2389) 	its_fini_core();
a82b26451de126a arch/x86/kernel/alternative.c  Peter Zijlstra (Intel     2025-06-03  2390) 
e81dc127ef69887 arch/x86/kernel/alternative.c  Thomas Gleixner           2022-09-15  2391  	/*
ab9fea59487d8b5 arch/x86/kernel/alternative.c  Peter Zijlstra            2025-02-07  2392  	 * Adjust all CALL instructions to point to func()-10, including
ab9fea59487d8b5 arch/x86/kernel/alternative.c  Peter Zijlstra            2025-02-07  2393  	 * those in .altinstr_replacement.
e81dc127ef69887 arch/x86/kernel/alternative.c  Thomas Gleixner           2022-09-15  2394  	 */
e81dc127ef69887 arch/x86/kernel/alternative.c  Thomas Gleixner           2022-09-15  2395  	callthunks_patch_builtin_calls();
e81dc127ef69887 arch/x86/kernel/alternative.c  Thomas Gleixner           2022-09-15  2396  
ab9fea59487d8b5 arch/x86/kernel/alternative.c  Peter Zijlstra            2025-02-07  2397  	apply_alternatives(__alt_instructions, __alt_instructions_end);
ab9fea59487d8b5 arch/x86/kernel/alternative.c  Peter Zijlstra            2025-02-07  2398  
be0fffa5ca894a9 arch/x86/kernel/alternative.c  Peter Zijlstra            2023-06-22  2399  	/*
be0fffa5ca894a9 arch/x86/kernel/alternative.c  Peter Zijlstra            2023-06-22  2400  	 * Seal all functions that do not have their address taken.
be0fffa5ca894a9 arch/x86/kernel/alternative.c  Peter Zijlstra            2023-06-22  2401  	 */
1d7e707af446134 arch/x86/kernel/alternative.c  Mike Rapoport (Microsoft  2025-01-26  2402) 	apply_seal_endbr(__ibt_endbr_seal, __ibt_endbr_seal_end);
ed53a0d971926e4 arch/x86/kernel/alternative.c  Peter Zijlstra            2022-03-08  2403  
ebebe30794d38c5 arch/x86/kernel/alternative.c  Pawan Gupta               2025-05-03  2404  	ibt_restore(ibt);
ebebe30794d38c5 arch/x86/kernel/alternative.c  Pawan Gupta               2025-05-03  2405  

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


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 09:39:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 09:39:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173647.1498663 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOYTH-0001c0-GX; Thu, 27 Nov 2025 09:39:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173647.1498663; Thu, 27 Nov 2025 09:39:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOYTH-0001bt-Bp; Thu, 27 Nov 2025 09:39:27 +0000
Received: by outflank-mailman (input) for mailman id 1173647;
 Thu, 27 Nov 2025 09:39: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=BG9e=6D=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vOYTF-0001bn-Ot
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 09:39:25 +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 f4893f83-cb74-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 10:39:23 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-b7291af7190so104644866b.3
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 01:39:22 -0800 (PST)
Received: from [192.168.1.17] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b76f51721b6sm117039266b.5.2025.11.27.01.39.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 01:39: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: f4893f83-cb74-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764236362; x=1764841162; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6yVMVRAiVG/hWWcMT5pD3VgwNRv8cRoyXGSfp8S9PR0=;
        b=mxk6eKvc1DxgpPgqki2z1cid8g/tjZImPJ9GZP18aZ/2PSaCKYu1qBJVCYYO9aHCCr
         hOWXU4WswDaHBiVo+lefia+Mzgeb641TLRPxMsPld44EyaDEwNgZUKHxsiwQqD7UBrPu
         fI6S4o9nfOlWKJPmxbqp0yAmHtsntMP78hD/GPxA1QeTAqWqJ1w/6zPZOmed+8IrrsWU
         Nr+uE9MOpND7oZ14z8soXg847gkdJu3fkkyLbFxE4e1qRVPfjkcPh3/36gYBa++hpVZs
         Wa8yhyduRdkKbUY4BNSQFdhSqAXNsbG9jHkjBvT9hSE3AvPJjlVxJ4sAfPXv+QetLNfx
         DYWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764236362; x=1764841162;
        h=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=6yVMVRAiVG/hWWcMT5pD3VgwNRv8cRoyXGSfp8S9PR0=;
        b=SVomzOW/f8x0vaV1q+90WNYHKuUyQ0dw7dZaX3dONSpzGx+NIkiAHTCdHIZdHB8R8v
         7rnMwTX6+R/MFS9W9OTdR/sRO2BN8wEucaTcS2Du0zcrjX6G1Sf6Ck1rKMPHtE62P2ao
         fJKHmN9uftCsJl2r0MK+9Pk5pZNp5pVX8nmYv3HhLKfj9hLSh838JNjB4Wdjft7pxAVd
         s+QWoPV5RPT2BSoFlJDtvOGt1OIGZ7CecKmnol3Dcxib5x8+PS0j7eQQWTHWP26Cw1fr
         p1PL4kFCOnJ8yXSAvSSd916/h+bbYcta6WLbu1cqBcJlbeCTEjbgRC1EWV8UljtmkJwd
         6cjA==
X-Forwarded-Encrypted: i=1; AJvYcCWrYP087rJQxujv5KYK7GpjXTYYrQ1NsoWBOP/kiBMDAAP3wJZMe4Q3aPr7ayUk9R2azAAWlqEBozY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzYbEcH7UWz9NCYWCoMZLL1PMLvfjaoGkfKHDrmrzYw54Fd+2k9
	C7oxREqbzKMWjox57rSKhTie2LL/tjs+7RqMaR1TF7LhO72wPbDbBfcw
X-Gm-Gg: ASbGncvkWlsnZU54pqIjanny65mQmncXUrF2dA+ePywr+04aBKl7kXpIvjEbqrDs6O2
	WlPYSFdYxIAaYOJp0Jkpig5rZg56MZ7F+r32msipa/T1iBomXN5lehWRo/gQA1oyQf5EUSaa8l6
	XfG/SsyucOt/lHCo5OuZNgoPQySJrVe30UBh39KpEFzynz1JbilpTbWv+JcbxzeJj7MQlIY1HTN
	dKSBtF82FQQIhky5W7YfHG2RprudnJubNn0VIEdyXF10BdBXD+Ni4Xk5Y1QuZxq1qKtnUC+7h+b
	XPWr95axTovKMHpPYdZgyqjUgFPGodq3QsoNRa9bvpyZ8Tt+PKwUlprLlN/+dLLUlRCUzcCWdoM
	X0quBpNYDKpRjAKtiuTnZW33fuOe93wCI6aYsr8VMyNFnm+XfhVewDm2LKnwHWdzbD7jN/Lxe7v
	cSbDqrBogILp1O7QMm02KnTj/3O3404NtQdFFqOGSAZr/dDUgOBf9jTnaGyMyDf9Un7g==
X-Google-Smtp-Source: AGHT+IHcLaOeRlgOd/bEpK6z8xCCxplKxTL3kSSfTBX4N6xBujKWA06cSnskpvdSJoFxSpbQmqznLg==
X-Received: by 2002:a17:906:eec1:b0:b72:70e7:5b62 with SMTP id a640c23a62f3a-b7671549c62mr2323576666b.23.1764236361921;
        Thu, 27 Nov 2025 01:39:21 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------FcZCR6CkEaay57TfyIzLQ394"
Message-ID: <cea72f67-df63-4aa1-a116-efd731732c5b@gmail.com>
Date: Thu, 27 Nov 2025 10:39:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/domain: introduce generic functions for domain
 struct allocation and freeing
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>
References: <b5c703a64c616d6321f8a98cd28f0659838d41df.1764167337.git.oleksii.kurochko@gmail.com>
 <dabea7a8-121a-4b10-ba86-2b33cbc3e3c8@epam.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <dabea7a8-121a-4b10-ba86-2b33cbc3e3c8@epam.com>

This is a multi-part message in MIME format.
--------------FcZCR6CkEaay57TfyIzLQ394
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/26/25 9:35 PM, Grygorii Strashko wrote:
>
>
> On 26.11.25 16:32, Oleksii Kurochko wrote:
>> From: Roger Pau Monne <roger.pau@citrix.com>
>>
>> Move x86's free_domain_struct() to common code since it is shared 
>> between
>> architectures.
>>
>> Move the x86 version of alloc_domain_struct() to common code as most 
>> of the
>> logic is architecture-independent. To handle the remaining architectural
>> differences, introduce arch_alloc_domain_struct_bits() for x86-specific
>> allocation requirements.
>>
>> No functional change.
>>
>> Suggested-By: Jan Beulich <jbeulich@suse.com>
>> [Introduce an arch-specific function instead of using a weak function]
>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> ---
>> Changes in v2:
>> - CI test results: 
>> https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2180836457
>> - Introduce an arch-specific function to handle differences between 
>> arch-es
>> Â Â  in domain structure allocation requirements, instead of relying on 
>> a weak
>> Â Â  function.
>> - Add Suggested-by: Jan Beulich <jbeulich@suse.com>.
>> - Move free_domain_struct() to common code.
>> - Update the commit message.
>> ---
>> Â  xen/arch/arm/domain.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 17 -----------------
>> Â  xen/arch/ppc/stubs.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 10 ----------
>> Â  xen/arch/riscv/stubs.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â  | 10 ----------
>> Â  xen/arch/x86/domain.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 15 ++-------------
>> Â  xen/arch/x86/include/asm/pv/domain.h |Â  3 +++
>> Â  xen/common/domain.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 23 +++++++++++++++++++++++
>> Â  6 files changed, 28 insertions(+), 50 deletions(-)
>>
>
> [...]
>
>> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
>> index 3a21e035f4..34a02f089e 100644
>> --- a/xen/arch/x86/domain.c
>> +++ b/xen/arch/x86/domain.c
>> @@ -463,10 +463,8 @@ void domain_cpu_policy_changed(struct domain *d)
>> Â Â Â Â Â  }
>> Â  }
>> Â  -struct domain *alloc_domain_struct(void)
>> +unsigned int arch_alloc_domain_struct_bits(void)
>> Â  {
>> -Â Â Â  struct domain *d;
>> -
>> Â Â Â Â Â  /*
>> Â Â Â Â Â Â  * Without CONFIG_BIGMEM, we pack the PDX of the domain 
>> structure into
>> Â Â Â Â Â Â  * a 32-bit field within the page_info structure. Hence the 
>> MEMF_bits()
>> @@ -492,16 +490,7 @@ struct domain *alloc_domain_struct(void)
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  - 1;
>> Â  #endif
>> Â  -Â Â Â  BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
>> -Â Â Â  d = alloc_xenheap_pages(0, MEMF_bits(bits));
>> -Â Â Â  if ( d != NULL )
>> -Â Â Â Â Â Â Â  clear_page(d);
>> -Â Â Â  return d;
>> -}
>> -
>> -void free_domain_struct(struct domain *d)
>> -{
>> -Â Â Â  free_xenheap_page(d);
>> +Â Â Â  return bits;
>> Â  }
>> Â  Â  struct vcpu *alloc_vcpu_struct(const struct domain *d)
>> diff --git a/xen/arch/x86/include/asm/pv/domain.h 
>> b/xen/arch/x86/include/asm/pv/domain.h
>> index 582d004051..6e65bc22fc 100644
>> --- a/xen/arch/x86/include/asm/pv/domain.h
>> +++ b/xen/arch/x86/include/asm/pv/domain.h
>> @@ -18,6 +18,9 @@ extern int8_t opt_pv32;
>> Â  # define opt_pv32 false
>> Â  #endif
>> Â  +unsigned int arch_alloc_domain_struct_bits(void);
>> +#define arch_alloc_domin_struct_bits arch_alloc_domain_struct_bits
>
> Is it intentionally placed in PV header x86/include/asm/pv/domain.h?

Oh, I missed that it is inside PV header. It should be in asm/domain.h, thanks for noticing that!

~ Oleksii

--------------FcZCR6CkEaay57TfyIzLQ394
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/26/25 9:35 PM, Grygorii Strashko
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:dabea7a8-121a-4b10-ba86-2b33cbc3e3c8@epam.com">
      <br>
      <br>
      On 26.11.25 16:32, Oleksii Kurochko wrote:
      <br>
      <blockquote type="cite">From: Roger Pau Monne
        <a class="moz-txt-link-rfc2396E" href="mailto:roger.pau@citrix.com">&lt;roger.pau@citrix.com&gt;</a>
        <br>
        <br>
        Move x86's free_domain_struct() to common code since it is
        shared between
        <br>
        architectures.
        <br>
        <br>
        Move the x86 version of alloc_domain_struct() to common code as
        most of the
        <br>
        logic is architecture-independent. To handle the remaining
        architectural
        <br>
        differences, introduce arch_alloc_domain_struct_bits() for
        x86-specific
        <br>
        allocation requirements.
        <br>
        <br>
        No functional change.
        <br>
        <br>
        Suggested-By: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a>
        <br>
        [Introduce an arch-specific function instead of using a weak
        function]
        <br>
        Signed-off-by: Roger Pau MonnÃ© <a class="moz-txt-link-rfc2396E" href="mailto:roger.pau@citrix.com">&lt;roger.pau@citrix.com&gt;</a>
        <br>
        Signed-off-by: Oleksii Kurochko
        <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
        <br>
        ---
        <br>
        Changes in v2:
        <br>
        - CI test results:
        <a class="moz-txt-link-freetext" href="https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2180836457">https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2180836457</a>
        <br>
        - Introduce an arch-specific function to handle differences
        between arch-es
        <br>
        Â Â  in domain structure allocation requirements, instead of
        relying on a weak
        <br>
        Â Â  function.
        <br>
        - Add Suggested-by: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a>.
        <br>
        - Move free_domain_struct() to common code.
        <br>
        - Update the commit message.
        <br>
        ---
        <br>
        Â  xen/arch/arm/domain.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 17 -----------------
        <br>
        Â  xen/arch/ppc/stubs.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 10 ----------
        <br>
        Â  xen/arch/riscv/stubs.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â  | 10 ----------
        <br>
        Â  xen/arch/x86/domain.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 15 ++-------------
        <br>
        Â  xen/arch/x86/include/asm/pv/domain.h |Â  3 +++
        <br>
        Â  xen/common/domain.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 23
        +++++++++++++++++++++++
        <br>
        Â  6 files changed, 28 insertions(+), 50 deletions(-)
        <br>
        <br>
      </blockquote>
      <br>
      [...]
      <br>
      <br>
      <blockquote type="cite">diff --git a/xen/arch/x86/domain.c
        b/xen/arch/x86/domain.c
        <br>
        index 3a21e035f4..34a02f089e 100644
        <br>
        --- a/xen/arch/x86/domain.c
        <br>
        +++ b/xen/arch/x86/domain.c
        <br>
        @@ -463,10 +463,8 @@ void domain_cpu_policy_changed(struct
        domain *d)
        <br>
        Â Â Â Â Â  }
        <br>
        Â  }
        <br>
        Â  -struct domain *alloc_domain_struct(void)
        <br>
        +unsigned int arch_alloc_domain_struct_bits(void)
        <br>
        Â  {
        <br>
        -Â Â Â  struct domain *d;
        <br>
        -
        <br>
        Â Â Â Â Â  /*
        <br>
        Â Â Â Â Â Â  * Without CONFIG_BIGMEM, we pack the PDX of the domain
        structure into
        <br>
        Â Â Â Â Â Â  * a 32-bit field within the page_info structure. Hence
        the MEMF_bits()
        <br>
        @@ -492,16 +490,7 @@ struct domain *alloc_domain_struct(void)
        <br>
        Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  - 1;
        <br>
        Â  #endif
        <br>
        Â  -Â Â Â  BUILD_BUG_ON(sizeof(*d) &gt; PAGE_SIZE);
        <br>
        -Â Â Â  d = alloc_xenheap_pages(0, MEMF_bits(bits));
        <br>
        -Â Â Â  if ( d != NULL )
        <br>
        -Â Â Â Â Â Â Â  clear_page(d);
        <br>
        -Â Â Â  return d;
        <br>
        -}
        <br>
        -
        <br>
        -void free_domain_struct(struct domain *d)
        <br>
        -{
        <br>
        -Â Â Â  free_xenheap_page(d);
        <br>
        +Â Â Â  return bits;
        <br>
        Â  }
        <br>
        Â  Â  struct vcpu *alloc_vcpu_struct(const struct domain *d)
        <br>
        diff --git a/xen/arch/x86/include/asm/pv/domain.h
        b/xen/arch/x86/include/asm/pv/domain.h
        <br>
        index 582d004051..6e65bc22fc 100644
        <br>
        --- a/xen/arch/x86/include/asm/pv/domain.h
        <br>
        +++ b/xen/arch/x86/include/asm/pv/domain.h
        <br>
        @@ -18,6 +18,9 @@ extern int8_t opt_pv32;
        <br>
        Â  # define opt_pv32 false
        <br>
        Â  #endif
        <br>
        Â  +unsigned int arch_alloc_domain_struct_bits(void);
        <br>
        +#define arch_alloc_domin_struct_bits
        arch_alloc_domain_struct_bits
        <br>
      </blockquote>
      <br>
      Is it intentionally placed in PV header
      x86/include/asm/pv/domain.h?Â <br>
    </blockquote>
    <pre>Oh, I missed that it is inside PV header. It should be in asm/domain.h, thanks for noticing that!

~ Oleksii</pre>
    <pre>
</pre>
  </body>
</html>

--------------FcZCR6CkEaay57TfyIzLQ394--


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 09:44:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 09:44:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173657.1498672 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOYXh-0003Iw-Vh; Thu, 27 Nov 2025 09:44:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173657.1498672; Thu, 27 Nov 2025 09:44: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 1vOYXh-0003Ip-T2; Thu, 27 Nov 2025 09:44:01 +0000
Received: by outflank-mailman (input) for mailman id 1173657;
 Thu, 27 Nov 2025 09:44: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=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOYXg-0003Ij-Ax
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 09:44:00 +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 9871ddb3-cb75-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 10:43:57 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-42b3377aaf2so384065f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 01: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-42e1ca78f77sm2470582f8f.32.2025.11.27.01.43.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 01:43: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: 9871ddb3-cb75-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764236637; x=1764841437; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=N6GX77rmB5naK+JKPmw6jU0H2AQeVc+HB91PKD3WOh8=;
        b=gcXwW8r1ggKU4q7Q6B35px41ysMUEtgkaM15Y1LMXwArPC4u0a7BDm1Mpsht0RiCcY
         pQfC/qaljRTJ0FCEhMu+XHMBaa3XV+zHIVqkYhJ0zkLu6oQyhwqmeZe7lD/nrHQf8Czr
         wRKXVfKfKwM8RSPN/WFi4yraPb0XWyudN+8ccwCn66H4TIzpkoBG2WZgrZFQIYNd6fPn
         j220aaOVbSpqs7fm5jFDomFswRkXA6heNqpmBKYHe/ISou9ZtElms7B/pKaDKOsyjVZN
         ua0RhpsW78KV0WXlldbI+3AyuBXhVfdjz1mtHsqnFFsdGV9ld/yp/waCGjO79SmgF1I1
         pgsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764236637; x=1764841437;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=N6GX77rmB5naK+JKPmw6jU0H2AQeVc+HB91PKD3WOh8=;
        b=YAwdQTmZBAbhJBc2af7zfQ0Gf344GmuH1j2tCo2KLIJXGYWm9qxs8/hLky0yGnmk2y
         FB7AuYXIWgKlFUrX5WTuTsL4CoF/SrxR38O16z2lZ9P+JaSTzpSOUUOLskdIP+fl1F9t
         8JtQxHfrPaL3/nPODGOwGB6h5j4DmusBh/sP9Zl7LyF8DLffX4pUYJtq7VLbXi+tpj9j
         vTF1/EYFLapzx5aGQHUpZPscDp3NB0G34ZlU/C9vgXX49Dn8Q8IYG+XTiTrPcLGtAyqN
         tCrKAbK+opAVWByF+TVI8UuzxH2aG/QBXsjYb+/3kOG+BU/Dd5St8bzZpm4MVI+2YiAN
         NZig==
X-Forwarded-Encrypted: i=1; AJvYcCWo6kjEPbSLCC7kZd/JCeGUMMGIG9c0tbZRIbmlJK94VH5EhzMxMswUS2cJfL/E/hCN73Iev/wZPVw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy8ihnrlOUXlyENHHu1XJeKRe/YylSp3/FUQ8YuAiBM0Df/E4Wz
	ffsz0Dzr4mI/rRE5Oh3MnxY/zfwKCnUCaqqO/u6/Jbm/8Efh6a3Fni+t/Glyv47rHw==
X-Gm-Gg: ASbGncvO6XASeeH88HiMmDvISY+eCSq183uLaMLKivFi5Rc9UVBXJI7gUKm0oRHksc8
	dUBk3/W3kydSgqPSKWUAlPmP9vPUND6apVUOnpim8nBztm38u4y1WhWUSag1BcB0r2+DQKQ1V6+
	6lI5pi/361khDtE4QKwZxt3/1zHozEaAxhb69Ga29Btcb7QzFaa40RiCqLmhyztMxYofkSOFjqn
	IeM3EAcRZ6zdKjqFyRHXahoLxYAcyGdBTEebRBGBz1I9m9Sv+hFTDcg5OfWz3NeYMTowZ6EJnIg
	F0AoQGqS9gdsNRpY9fk61b07qfE5czTCRnnQ1TBTZrtvJ2w66eH0BT9iwuZd8vbkqW3zZ2l9uIJ
	dmbNB6D+PnX9HiokIz4vgneiPuttOv73YlIEBamMBpauaVJXDuK0qGJCBCInj3sSHNqzxdYu33H
	gaQLZ3Dt0s2BTgaFAgiXwyN6ZQcmiIJHeqCDJxFzImRV7E77rM+UhACwhe6yZTGfx2mL6EcXPtM
	0Q=
X-Google-Smtp-Source: AGHT+IH6Nt/uB+Bs565wh6m6P2t8d0ZDDLm/oA66fcsbe6gOG+PD22vSchTDXNZ07qX6CY5N3xCNQQ==
X-Received: by 2002:a05:6000:184d:b0:429:d66b:508f with SMTP id ffacd0b85a97d-42cc1d0cf29mr24071952f8f.30.1764236637301;
        Thu, 27 Nov 2025 01:43:57 -0800 (PST)
Message-ID: <868f28fe-f2dd-469d-a0cf-111885184dfe@suse.com>
Date: Thu, 27 Nov 2025 10:43:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 01/11] 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>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-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: <20251126164419.174487-2-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 17:44, 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 is allowed.
> 
> In order to allow x86_vendor_is() to fold into constants, expand Kconfig
> to have the full set of vendors. Adds Hygon, Centaur, Shanghai and the
> default path.
> 
> Have Hygon depend on AMD, and Centaur+Shanghai depend on Intel.
> 
> Not a functional change.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> ---
>  xen/arch/x86/Kconfig.cpu         | 45 ++++++++++++++++++++++++++++++++
>  xen/arch/x86/cpu/common.c        | 17 +++++++-----
>  xen/arch/x86/include/asm/cpuid.h |  7 +++++
>  3 files changed, 62 insertions(+), 7 deletions(-)

Shouldn't patch 5 be folded into here? Or, if there were some dependencies
on patches 2-4 (albeit I can't spot anything, as the files are all self-
contained), at least the parts which can be done right away?

> --- a/xen/arch/x86/Kconfig.cpu
> +++ b/xen/arch/x86/Kconfig.cpu
> @@ -19,4 +19,49 @@ 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"
> +	depends on 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"
> +	depends on 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"
> +	depends on 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
> +	bool "Support unknown CPUs"

"Unknown CPUs" can be of two kinds: Such of vendors we don't explicitly support,
and such of vendors we do explicitly support, but where we aren't aware of the
particular model. This needs to be unambiguous here, perhaps by it becoming
UNKNOWN_CPU_VENDOR (and the prompt changing accordingly).

> --- a/xen/arch/x86/cpu/common.c
> +++ b/xen/arch/x86/cpu/common.c
> @@ -118,7 +118,7 @@ static void cf_check default_init(struct cpuinfo_x86 * c)
>  	__clear_bit(X86_FEATURE_SEP, c->x86_capability);
>  }
>  
> -static const struct cpu_dev __initconst_cf_clobber __used default_cpu = {
> +static const struct cpu_dev __initconst_cf_clobber default_cpu = {

This change isn't explained in the description. __used here was introduced not
all this long ago together with __initconst_cf_clobber. Maybe this really was
a mistake, but if so it's correction should be explained.

> @@ -340,7 +340,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);
> +	c->x86_vendor = x86_cpuid_lookup_vendor(ebx, ecx, edx) &
> +	                X86_ENABLED_VENDORS;

May I suggest the & to move ...

>  	switch (c->x86_vendor) {

... here? Yes, you panic() below, but I see no reason to store inaccurate
data when that's easy to avoid.

>  	case X86_VENDOR_INTEL:    intel_unlock_cpuid_leaves(c);
>  				  actual_cpu = intel_cpu_dev;    break;
> @@ -349,12 +350,14 @@ void __init early_cpu_init(bool verbose)
>  	case X86_VENDOR_SHANGHAI: actual_cpu = shanghai_cpu_dev; break;
>  	case X86_VENDOR_HYGON:    actual_cpu = hygon_cpu_dev;    break;
>  	default:
> +		if (verbose || !IS_ENABLED(CONFIG_UNKNOWN_CPU))
> +			printk(XENLOG_ERR
> +			       "Unrecognised or unsupported CPU vendor '%.12s'\n",
> +			       c->x86_vendor_id);
> +		if (!IS_ENABLED(CONFIG_UNKNOWN_CPU))
> +			panic("Cannot run in unknown/compiled-out CPU vendor.\n");

The text reads somewhat odd to me, "run in" in particular. Also nit: No full stop
please at the end of log messages, except maybe in extraordinary situations.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 09:49:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 09:49:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173670.1498681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOYcv-0003vv-L1; Thu, 27 Nov 2025 09:49:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173670.1498681; Thu, 27 Nov 2025 09:49:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOYcv-0003vo-I4; Thu, 27 Nov 2025 09:49:25 +0000
Received: by outflank-mailman (input) for mailman id 1173670;
 Thu, 27 Nov 2025 09:49: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=BG9e=6D=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vOYcu-0003vi-P7
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 09:49:24 +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 59f7f17c-cb76-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 10:49:22 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b728a43e410so127544266b.1
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 01:49:22 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b76f5a4b757sm113583866b.66.2025.11.27.01.49.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 01:49: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: 59f7f17c-cb76-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764236962; x=1764841762; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pxn2+MfLQviHdGIYui/UKb5z8iSNk0jiYKQiK7O5VnU=;
        b=MB7vxqzXUfjxPxnvxEVjcvQn3J+hQtVF2wCI2OG4nu1Idlva0m3/GYEih3H/hBetTw
         TRvfT9SxYCjjA/7bGMnpxoCJ3VrZk3s5aiW1UgLr8dpLc18EHsUFH940fWbmwNGjDUZ/
         Ds0W377xc8HNzLv48525JrQK76GGF7ple/OkkFPukYf4PSeV0A98HniuLWgjuUwRmknC
         r2aOMoWQaWbWTTeUrterhWER/9aa6ykjTf8JIoXbK6nMXkiIsO6+hNvMln7OCMriJCHj
         m6JauTKJRTJXN5C6NLcUTXnVMwLnxOQQrbY/jFdWpKcpSt6ks1wUOWohywEWQ9PSGE1t
         oEcA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764236962; x=1764841762;
        h=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=pxn2+MfLQviHdGIYui/UKb5z8iSNk0jiYKQiK7O5VnU=;
        b=W4LuRikJJkNDxM9HUtF/wBbUEU0Hamjw1+pOtjSRCt++TPgq/F9KtyB/Xi5sju+VdK
         fhiJc3Gs5cFaj9s1YzYi3eShHTKjQz1jSW+eAc1RoQOazA3BJ/xB5mZk62wF7asO68/Z
         QN8RFU+cq/GrtBGg6jTXJ/A2DhdM51SNR/mV0zts3yCr+AxTH/o/d9bb/EaUawravHhu
         EldPM1ziK+UisdLQ3LBeFmi6txt2I3DJ7F35+dJtYPKVgwkGB2AyWSlAP5LGubDZH1sN
         OTt8ExIKpXY7jNRv2URYOxba9ACM2aAaamk+qiJ5j3Uub7vuHzVM8PK/e1GXZVlDHtvD
         RE+A==
X-Forwarded-Encrypted: i=1; AJvYcCWh6ouwEiP5qCRU1sZHJi89tn5vqDXIuB6lkAloRcZGmCxX03hErQT/FshJKZlQy3UNLSu4vhRjbkc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy9u0z1p0O1uBhq2BvNIKEUN25t/1UzQGlQ+e8mnthHsLOPMy5X
	DG1t5UdEBNGyVMIqqmOHbyRKWHV3n1dTnSEBn2KR2yhbm/0f10SyRJR1
X-Gm-Gg: ASbGncu/bNe3UcdUfNpiO8tr/kT86rb+KXA/6AkVnpedE6gW4D9/fvOpbXk3oHdnF19
	OLGNmF9vpTxoyHGnCzZsPTxxkj70QW/E0MCdWrRf3U/vyVknqD+ZD2xcOXph7MkrrWP4ZupB6WK
	qdvyKXQ7v+qXeP8FCvC56Jk+VqS4rASvDB5fdY8tg0be+x0hGpjnLSr75rAtgM8yUYwUXfD8Zhr
	rlTsaQ7sbgEuf5ti1qRLdxZ7Cqf+2iLqQZeqOT6DiKExfDNAz9usMgh+5LKgfhpp2O1nCM+79LM
	zrNAZvP8ALOPIPCK0jVm0tImI5LIPvF8naOAptc5QFi2L8ibrUjXDDevB2jDEvB+G35qP54ayBI
	2jl07P7BoqIHZgFHH+FvUzXxwZ2MfkIT6vuIfuAL78FNGlBQOHJ3uJFc5GOdQVlqmrmD3A1vsV5
	vO3FVPKQTAmUlzTERq2NAHRfoXI/vzcfPc9JW46cs0UfWCH4FUsTHTBASwX7OFTbvh
X-Google-Smtp-Source: AGHT+IHDy9xh0h4/hF+DYtZttmuvVNrQlkOItACv4tFQF7j7w6E20D36Epebtn1OjmzQnpH54XOlXg==
X-Received: by 2002:a17:907:2da8:b0:b73:74d6:d360 with SMTP id a640c23a62f3a-b7671731884mr2465397966b.40.1764236961635;
        Thu, 27 Nov 2025 01:49:21 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------DGQkPQ7F2hn52tuLoEeFscSY"
Message-ID: <db4bccef-a746-4912-89ad-b015a8d43f78@gmail.com>
Date: Thu, 27 Nov 2025 10:49:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/8] symbols/riscv: re-number intermediate files
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>, Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
 <37ed4a18-f1a0-4c1f-b915-1708c235068b@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <37ed4a18-f1a0-4c1f-b915-1708c235068b@suse.com>

This is a multi-part message in MIME format.
--------------DGQkPQ7F2hn52tuLoEeFscSY
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/26/25 2:44 PM, Jan Beulich wrote:
> In preparation to do away with symbols-dummy, re-number the assembly and
> object files used, for the numbers to match the next passes real output.
> This is to make 0 available to use for what now is handled by
> symbols-dummy.
>
> Signed-off-by: Jan Beulich<jbeulich@suse.com>
>
> --- a/xen/arch/riscv/Makefile
> +++ b/xen/arch/riscv/Makefile
> @@ -26,16 +26,16 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
>   	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
>   	$(NM) -pa --format=sysv $(dot-target).0 \
>   		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
> -		> $(dot-target).0.S
> -	$(MAKE) $(build)=$(@D) $(dot-target).0.o
> +		> $(dot-target).1.S
> +	$(MAKE) $(build)=$(@D) $(dot-target).1.o
>   	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
> -	    $(dot-target).0.o -o $(dot-target).1
> +	    $(dot-target).1.o -o $(dot-target).1
>   	$(NM) -pa --format=sysv $(dot-target).1 \
>   		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
> -		> $(dot-target).1.S
> -	$(MAKE) $(build)=$(@D) $(dot-target).1.o
> +		> $(dot-target).2.S
> +	$(MAKE) $(build)=$(@D) $(dot-target).2.o
>   	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \ - $(dot-target).1.o -o $@ + $(dot-target).2.o 
> -o $@ $(NM) -pa --format=sysv $@ \ | $(objtree)/tools/symbols 
> --all-symbols --xensyms --sysv --sort \ > $@.map
>
LGTM:Â Reviewed-By: Oleksii Kurochko<oleksii.kurochko@gmail.com>

~ Oleksii

--------------DGQkPQ7F2hn52tuLoEeFscSY
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/26/25 2:44 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:37ed4a18-f1a0-4c1f-b915-1708c235068b@suse.com">
      <pre wrap="" class="moz-quote-pre">In preparation to do away with symbols-dummy, re-number the assembly and
object files used, for the numbers to match the next passes real output.
This is to make 0 available to use for what now is handled by
symbols-dummy.

Signed-off-by: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a>

--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -26,16 +26,16 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
 	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
-		&gt; $(dot-target).0.S
-	$(MAKE) $(build)=$(@D) $(dot-target).0.o
+		&gt; $(dot-target).1.S
+	$(MAKE) $(build)=$(@D) $(dot-target).1.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $&lt; \
-	    $(dot-target).0.o -o $(dot-target).1
+	    $(dot-target).1.o -o $(dot-target).1
 	$(NM) -pa --format=sysv $(dot-target).1 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
-		&gt; $(dot-target).1.S
-	$(MAKE) $(build)=$(@D) $(dot-target).1.o
+		&gt; $(dot-target).2.S
+	$(MAKE) $(build)=$(@D) $(dot-target).2.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $<a class="moz-txt-link-rfc2396E" href="mailto:$(build_id_linker)\-$(dot-target).1.o-o$@+$(dot-target).2.o-o$@$(NM)-pa--format=sysv$@\|$(objtree)/tools/symbols--all-symbols--xensyms--sysv--sort\">&lt; $(build_id_linker) \
-	    $(dot-target).1.o -o $@
+	    $(dot-target).2.o -o $@
 	$(NM) -pa --format=sysv $@ \
 		| $(objtree)/tools/symbols --all-symbols --xensyms --sysv --sort \
 		&gt;</a> $@.map

</pre>
    </blockquote>
    <pre>LGTM:Â Reviewed-By: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

~ Oleksii</pre>
  </body>
</html>

--------------DGQkPQ7F2hn52tuLoEeFscSY--


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 09:57:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 09:57:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173680.1498693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOYka-0005kG-DQ; Thu, 27 Nov 2025 09:57:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173680.1498693; Thu, 27 Nov 2025 09:57: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 1vOYka-0005k9-9P; Thu, 27 Nov 2025 09:57:20 +0000
Received: by outflank-mailman (input) for mailman id 1173680;
 Thu, 27 Nov 2025 09:57: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=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOYkZ-0005k3-CF
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 09:57:19 +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 75264c37-cb77-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 10:57:17 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-42b3ac40ae4so433043f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 01:57: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-42e1ca1a2easm2784519f8f.23.2025.11.27.01.57.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 01:57: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: 75264c37-cb77-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764237437; x=1764842237; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bjWXA33GUcjpjK51jb+Ep5XdifVp6HJ9GkAfbi1d3Zs=;
        b=gsYdE2NqX+eZ5g28Fd5jJivekTdEcVmxscHnNXs5fswHG2GosR38U86y2zQlVAS+HQ
         YAKhZYHUAgNECwaNoCqLDKTh0hmpfVDiJonMC6C1Fip1JdhAycGd6tOQt4Jjey/xdV3D
         pXZKEi60eLCtQkatoYRQY4b3A6z9K6QG4fkipwjmHRiosAo1gCiCxE7L1I1LWgfo3l3y
         9xZL8g2aXiFGKWVpGOjV9A5R26OuYJNWFg6ty4FKuLIQtzmf//0NCYQScuUnF9xq6Kv4
         RHL3jHUENzOdSGI+NDAWa0Td87N22ROgBMsOyMFN577yqg1gzS2gNHOUG7evQV73ATLb
         cQeg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764237437; x=1764842237;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bjWXA33GUcjpjK51jb+Ep5XdifVp6HJ9GkAfbi1d3Zs=;
        b=TIjUnGq3gncDFQHCXVhF5MmI5IGeEl9hH1D9eiqeKaG7IqqRmAnmF/Lf/VQUo/VyMF
         eLW7jdnidzDd9Tfa4WC/mdXHOh535Jkj/frVkgtlz1NPNUJjBKgzlobTk/8Kx4lul3Xr
         v29SAQw2EQpnfkjN/EJGbnTk3Ny1eHfo6wS0Fkfql3e1eWeP43srFeFToG/agY3m/6YK
         olzY3ACuXTH3cShnGzTbNYP2oYfXsAhenmqN+j8pEIecNGJI+FFOQsPeyn5VIVQlyQwH
         180psEMwYh0dqzzDyG4y6LrMBeMsckTRmVAQXnxHbxxK9OVIygJOTL+QcEVhVotGyTt3
         0iQg==
X-Forwarded-Encrypted: i=1; AJvYcCX3vxyLSj8mscr9gKXs9EcyEHDznSVlY3219pmMXCv5KFNZSSV065K7IuPLk4zA4A5Yc5Erp9e7Tf4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzZ1fc/2kGHLvCBO1DK+SCEKJz4OqVuN0MSZHcPcn1Y1zRpjM4n
	5HqQLQdWNo07xfx2PCLrn8Rh8dAXVAQMU6xT/9fF3sLZUzzzpDtKlXw9nDLTcoOq0A==
X-Gm-Gg: ASbGncuwP8ww6/FkIkW3VgpW3fPtWpN6fUAL9fMSAqv0tccFgMQRxzZEbRWozhUNC/8
	F3EaalBGS/RBefeXb9cHdSoTmaix+dB9ttdyuhvjtA6qlSfqmQZcvV3/KVf/MoYzGJXjUEjz5p/
	eHyv6ndqMiX+7zancWgtyyKQdM+5wcX6+riCIHUhbSH5PN8xn1dxphm5rTtNnKTWQLlpBa9WYnC
	UsE9V0oWbdiRWek3h9mU+SyuJ2NZPtz2/mvbgKyxe2QZfn+7YvDvJOupiyugH8ZrUBDn0qYbDF6
	Y6usOHaPs9hY9e8l342gM/I/RON+BDiRbgor5V0yPAjvbfCkS6zZ8RPKVWJaJPoVagZAI06/qTs
	BL1aZ/4zUhmwtN/jSSuRC3AkyeByTab3ninVJxsdPCtmyVYWTRUnwsw3FMDnexv1txCbR2MHo4L
	VOVo5z++Tnr7zLfwLTaG6eyp/OEcApbUXLCJg7USv5MUS8/78MCAUAUPLsulzeUvBS7nZsYjgil
	Tc=
X-Google-Smtp-Source: AGHT+IG9XxYZv8VBI6reig0VgVfb2qgLC6iatpNdX97oU/QHlyayyCCi06MyK0ToDAUFXzigDq+Yww==
X-Received: by 2002:a05:6000:1f03:b0:42b:3867:b39c with SMTP id ffacd0b85a97d-42cc1cf452amr19591077f8f.34.1764237437035;
        Thu, 27 Nov 2025 01:57:17 -0800 (PST)
Message-ID: <3fd32ba0-0670-4c9b-b216-60c55a5de7ba@suse.com>
Date: Thu, 27 Nov 2025 10:57:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/8] symbols/riscv: re-number intermediate files
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
 <37ed4a18-f1a0-4c1f-b915-1708c235068b@suse.com>
 <db4bccef-a746-4912-89ad-b015a8d43f78@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: <db4bccef-a746-4912-89ad-b015a8d43f78@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 27.11.2025 10:49, Oleksii Kurochko wrote:
> 
> On 11/26/25 2:44 PM, Jan Beulich wrote:
>> In preparation to do away with symbols-dummy, re-number the assembly and
>> object files used, for the numbers to match the next passes real output.
>> This is to make 0 available to use for what now is handled by
>> symbols-dummy.
>>
>> Signed-off-by: Jan Beulich<jbeulich@suse.com>
>>
>> --- a/xen/arch/riscv/Makefile
>> +++ b/xen/arch/riscv/Makefile
>> @@ -26,16 +26,16 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
>>   	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
>>   	$(NM) -pa --format=sysv $(dot-target).0 \
>>   		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>> -		> $(dot-target).0.S
>> -	$(MAKE) $(build)=$(@D) $(dot-target).0.o
>> +		> $(dot-target).1.S
>> +	$(MAKE) $(build)=$(@D) $(dot-target).1.o
>>   	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
>> -	    $(dot-target).0.o -o $(dot-target).1
>> +	    $(dot-target).1.o -o $(dot-target).1
>>   	$(NM) -pa --format=sysv $(dot-target).1 \
>>   		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>> -		> $(dot-target).1.S
>> -	$(MAKE) $(build)=$(@D) $(dot-target).1.o
>> +		> $(dot-target).2.S
>> +	$(MAKE) $(build)=$(@D) $(dot-target).2.o
>>   	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \ - $(dot-target).1.o -o $@ + $(dot-target).2.o 
>> -o $@ $(NM) -pa --format=sysv $@ \ | $(objtree)/tools/symbols 
>> --all-symbols --xensyms --sysv --sort \ > $@.map
>>
> LGTM:Â Reviewed-By: Oleksii Kurochko<oleksii.kurochko@gmail.com>

Thanks. May I remind you again that there wants to be a blank before the
opening angle bracket? That is an issue which was also pointed out for
some of your recent release-acks. (Canonically, the "-by" also wants to
be all lower case, I think.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 09:58:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 09:58:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173689.1498702 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOYlS-0006EO-KP; Thu, 27 Nov 2025 09:58:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173689.1498702; Thu, 27 Nov 2025 09:58: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 1vOYlS-0006EH-Hb; Thu, 27 Nov 2025 09:58:14 +0000
Received: by outflank-mailman (input) for mailman id 1173689;
 Thu, 27 Nov 2025 09:58: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=BG9e=6D=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vOYlR-0006E7-MA
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 09:58:13 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 954678d7-cb77-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 10:58:11 +0100 (CET)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-b734fcbf1e3so113848866b.3
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 01:58:11 -0800 (PST)
Received: from [192.168.1.17] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-647510615c0sm1103777a12.30.2025.11.27.01.58.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 01: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: 954678d7-cb77-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764237491; x=1764842291; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ntBQ+Naci59x6i5X4tbyhD0t5idIrZ/7onoLilwsfj0=;
        b=ckhGyfMYKUac40Zi4wLa85RjM+9TsIvMN1umryD4WZ7sUL5o5RcJNJI1dLysxsz+Px
         a3LHrG/92fKFrCBwMLTTtiH838lrGRjg0bfmhhSWOraUguOs0/9Z0IOb2kHWVZFbvsyu
         Bnt3IscF0QIh0il8EV6xiq/0svUlfMWL4wrB1V+gjEN6+fSoyVrFKgn8eKK8zXM6Gir/
         ZG5F1tzw2SZIFd0LiexiTC2ishm7XpXzGpZe1GA5XZngCKvB1d/u6JHqFnXcTHMTYJv7
         F0F4D/vByxOnXpsWicQlku7KPwFD5LrUNkDz/7AGF6H8raGKlDkxvggjTuBtLqbIM6sE
         REMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764237491; x=1764842291;
        h=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=ntBQ+Naci59x6i5X4tbyhD0t5idIrZ/7onoLilwsfj0=;
        b=pZUE8AzegRLj3jMhRMmKPJNVucMY507+9O/oOB3zSPI/c7FDONypfFkXXAP3IuT0me
         VzOri4saxRLcbEDR/Il7kEs7v/o9F9F5UBt1U86lmQlnePIkp18feJbnckSMhM4mE5E5
         dRYpEioV+yTMERFUoxSDpsQlvIaFj6wE6LuSoMlj9BVZ1Q2zdgbS6PeFB+OYnKlcQ3Tq
         akff5ifOq/F1OFB5tTop0KL05wAWSvOCXYYOYqj/4YgLNgnkC+J2dd9sPg0Bi+qSfxjp
         X5FclBlUgU5E1tSkp3333xpsjrF+TsdfxUVycnEEUKmQhwcUzSRANOMomgI566GMei/6
         t3Zw==
X-Forwarded-Encrypted: i=1; AJvYcCURfNYcgVdPSIQQpWhJMHF9SeQ+2tYAIU7DQMEmKzbE0JqQntkzRHHzZXiPp2DnPc0SfEk2N0nOFHY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz+pXkNip+hoa5L19IQf22IaFnHrh61SOTM0kd81i55cIu+eDOx
	7yP2i0pjf/aYHFoO7OlH1jYyLZhpPVexyodsYrlGx7M9HvMnvaU9s32X
X-Gm-Gg: ASbGnctv+CNwRie5+EypZK9Ufw6ZJkIzGfXgTusMs/dbXnS7lBOv9Jw0YeqelBpkrAl
	jSoS8QvT7+a8PCubC+4LV61AhwBU16FvVHx3V27KZTMBpHzjAJAd0H5b6MkkySr4gYmpA7419c8
	5Gmst34zAIksQ/eXXUJS1/FO25zZhexVK3rC7u3Hivf7GE7IxfAG7Aw4u/1s4fgt+50Dr/JK0t9
	hCZ6d6BW/IYgUnSMByMojyTPfH4As2j9QsMktHPc6lIlHoJX4Xbdev1cH3gQoOKmcSGP0g07PDA
	sKQAZO8tBt4ZMYQe164HD8JGg60BM81SyXVyR3FrzehlmkAweAvX4xRQqL7HL07oJLv9lYIHyy7
	vwM7k7OnSdypH0Vws5MIDkMw7T8bBJaPV2uTVOHtpqv9vbnuzBSNn9GrUoEfzgWNJUpJ6xM9vGh
	S7+VCY3eCMy+bHAHWfF+nmUuCjvRpapqrw9hBJWYrIwSs8Y48kJfhYqj2sznKux/dWZQ==
X-Google-Smtp-Source: AGHT+IETDsw+ppgeVf4bNoZUokwjhA2gxhrdllE2+pm88QJZ9ttN1i4gGoi08eMf4wNyRbhDKc35+g==
X-Received: by 2002:a17:907:6d06:b0:b73:7652:efc2 with SMTP id a640c23a62f3a-b76718c3862mr2551474866b.60.1764237490659;
        Thu, 27 Nov 2025 01:58:10 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------nsJzs8XOIrXGfzragPKwdzml"
Message-ID: <9e45af97-52f3-4c21-865f-db64c9f78416@gmail.com>
Date: Thu, 27 Nov 2025 10:58:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 6/8] symbols/riscv: don't use symbols-dummy
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>, Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
 <5e5ee09f-88b7-41eb-99da-a9b5cf4bf348@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <5e5ee09f-88b7-41eb-99da-a9b5cf4bf348@suse.com>

This is a multi-part message in MIME format.
--------------nsJzs8XOIrXGfzragPKwdzml
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/26/25 2:45 PM, Jan Beulich wrote:
> In particular when linking with lld, which converts hidden symbols to
> local ones, the ELF symbol table can change in unhelpful ways between the
> first two linking passes, resulting in the .rodata contributions to change
> between the 2nd and 3rd pass. That, however, renders our embedded symbol
> table pretty much unusable; the recently introduced self-test may then
> also fail. (Another difference between compiling a C file and assembling
> the generated ones is that - with -fdata-sections in use - the .rodata
> contributions move between passes 1 and 2, when we'd prefer them not to.)
>
> Signed-off-by: Jan Beulich<jbeulich@suse.com>
>
> --- a/xen/arch/riscv/Makefile
> +++ b/xen/arch/riscv/Makefile
> @@ -22,8 +22,10 @@ $(TARGET): $(TARGET)-syms
>   	$(OBJCOPY) -O binary -S $< $@ $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds + 
> $(objtree)/tools/symbols $(all_symbols) --empty > $(dot-target).0.S
> +	$(MAKE) $(build)=$(@D) $(dot-target).0.o
>   	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
> -	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
> +	      $(dot-target).0.o -o $(dot-target).0
>   	$(NM) -pa --format=sysv $(dot-target).0 \
>   		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>   		> $(dot-target).1.S

LGTM:Â Reviewed-By: Oleksii Kurochko<oleksii.kurochko@gmail.com>

~ Oleksii

--------------nsJzs8XOIrXGfzragPKwdzml
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/26/25 2:45 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:5e5ee09f-88b7-41eb-99da-a9b5cf4bf348@suse.com">
      <pre wrap="" class="moz-quote-pre">In particular when linking with lld, which converts hidden symbols to
local ones, the ELF symbol table can change in unhelpful ways between the
first two linking passes, resulting in the .rodata contributions to change
between the 2nd and 3rd pass. That, however, renders our embedded symbol
table pretty much unusable; the recently introduced self-test may then
also fail. (Another difference between compiling a C file and assembling
the generated ones is that - with -fdata-sections in use - the .rodata
contributions move between passes 1 and 2, when we'd prefer them not to.)

Signed-off-by: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a>

--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -22,8 +22,10 @@ $(TARGET): $(TARGET)-syms
 	$(OBJCOPY) -O binary -S $<a class="moz-txt-link-rfc2396E" href="mailto:$@$(TARGET)-syms:$(objtree)/prelink.o$(obj)/xen.lds+$(objtree)/tools/symbols$(all_symbols)--empty">&lt; $@
 
 $(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
+	$(objtree)/tools/symbols $(all_symbols) --empty &gt;</a> $(dot-target).0.S
+	$(MAKE) $(build)=$(@D) $(dot-target).0.o
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $&lt; \
-	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
+	      $(dot-target).0.o -o $(dot-target).0
 	$(NM) -pa --format=sysv $(dot-target).0 \
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		&gt; $(dot-target).1.S
</pre>
    </blockquote>
    <pre>LGTM:Â Reviewed-By: Oleksii Kurochko <a
    class="moz-txt-link-rfc2396E"
    href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

~ Oleksii</pre>
  </body>
</html>

--------------nsJzs8XOIrXGfzragPKwdzml--


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 09:59:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 09:59:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173698.1498712 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOYmS-0006lB-TE; Thu, 27 Nov 2025 09:59:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173698.1498712; Thu, 27 Nov 2025 09:59: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 1vOYmS-0006l4-QO; Thu, 27 Nov 2025 09:59:16 +0000
Received: by outflank-mailman (input) for mailman id 1173698;
 Thu, 27 Nov 2025 09:59: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=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOYmR-0006kw-E8
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 09:59:15 +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 ba0d70ed-cb77-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 10:59:13 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-42b3c965ca9so391048f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 01:59: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-42e1ca1a6fesm2941210f8f.20.2025.11.27.01.59.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 01:59: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: ba0d70ed-cb77-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764237553; x=1764842353; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YWWYoCn4AJLi5BeXC1DvuZZmF8MDTqcVqzLkIlvOaCU=;
        b=CU2poOAWHdxv1opASDPEkeabxeAw5UcJ/ycKl1BM19s1URnh6GQAxn/BAK7TGIr/bg
         EqWoa5WrFh1SnaSKs2SCKYwD8eVxOW/uqJDOn8YZ4wNw+kLs9dIFaMoYRcKG8OB/Og5o
         Sqtb3FTdKvJ5CUDVwZsgwGst6u3z2h/xqv6OOf9btFIdbnPdz0ZhMk53fdpkif2PvpIE
         FD8g376y7WI1E5H+3YQ7dpmoiHSuU73YWfHrmn9FL6dXMAtVggQGKwQDOVqIeBR8R8Tu
         IRxHdsifi4rQMH1GVzoODFdIdYaraJbhqYgs1CF1tKYvWCNu5BWYWb/CgnEa9BA/XjxA
         a5hw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764237553; x=1764842353;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YWWYoCn4AJLi5BeXC1DvuZZmF8MDTqcVqzLkIlvOaCU=;
        b=na0sBgmT0XOcU9NNRdoJAnAPRPyOUQCxhAxpXZmi2uhSkMsrOpPlttgH7d0TL//7Cj
         vhe8bg0Zs1+Lb7utY/8qYB3DC2n2EVJaPjquYR78ux08Erc6UuedZx6K/CzMD4YfvM3M
         bkPSlR9BlNF4w+J9D5bWG+LPbwsYx4biH5nl6WdryvyoH6E3KWQ0xoLJeu+uruBQQIYJ
         ela5a/hGi7oSW8jtgXJ4Ogl4Dci7CKW6hVb3WG1ajrbnkJ19Y7uA425uyDJXL4opqNpH
         NmAfcc9pPWcBa7EutdjuINDzu6dzs8mKxi5BOXpkSzo0i7AqytYQMWnXfQJg/ynTRb8Y
         dPfQ==
X-Forwarded-Encrypted: i=1; AJvYcCV9eq0KPZy7gTrp/p4GL7Xw91smSNRnTJ4LYaeIFvZbB4pKigjrRpy6xXOl5GTlkl/AvjWpjmbfjPw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwiDDdOOts0F6Y1u38Ls8Dk4ZW3wUroBHGRT+3Cez4KUotzrw9Z
	aF0oMW0wW8rj6tc4b55EPcgwCMKS6OZcUWMl91ud2nuHoSyNsuydll4KmUHsYjQtvw==
X-Gm-Gg: ASbGncuEVvWUOipMOKlC/7LQ3ctXdyGRgK7h9GbMaDclUGHVwVQQ3kanQKQ8agwh0Uf
	u4E0Zubmw/VmIzHLamHXRUCKpc70Crrkpv/wy0u391Q8EJtzDuJmvUP6JSvNnbJAN8JPcCy1PUr
	WgoIAVtH8cuzBkz9M3Pi+wDGYgNTBs1Yhssp6EgrBnWSVNBevKsFmn+CGOCBWT21BRL3shr/xkh
	UuMbaNtmcq+RKEebDF2Z2weIbMTIXC2eskMFR1kncArHn1KFZ4Ub8eGHXgWC79UhMTFATN9pbQD
	0NEIm9Uyjvq95Qg2auQ/u2oMx6ERG1KcQ4lOJX5zUVRXwKdl8gQoKnXQJKqbJuY4cXP4+j5qoSz
	rXd7124eu2tBmOA4Ft3KyoH5PSsNlHfYrJ8rngdg4eydteUbCSvCfAPu8COgxCSGy9mBG9XeJkB
	3nzqnUeHgDj4gXcaCy6cUDgyS27H6jkFuzKihIVhO7FnF5WRGpU0nTcUYq6arl7waKoUMC3YLnV
	xg=
X-Google-Smtp-Source: AGHT+IFmd8S2YBtgFN4IWrCYdYF+MW1qsdZZUT2YRDneacVDKSjLVtp38t4GJEM5/IopDihgf0xqJw==
X-Received: by 2002:a05:6000:1887:b0:42b:2f90:bd05 with SMTP id ffacd0b85a97d-42cc1d3571amr23224912f8f.45.1764237552664;
        Thu, 27 Nov 2025 01:59:12 -0800 (PST)
Message-ID: <178630e8-7986-4a35-863c-4559779d7390@suse.com>
Date: Thu, 27 Nov 2025 10:59:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 01/11] 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>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-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: <20251126164419.174487-2-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 17:44, 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 is allowed.
> 
> In order to allow x86_vendor_is() to fold into constants, expand Kconfig
> to have the full set of vendors. Adds Hygon, Centaur, Shanghai and the
> default path.

Oh, one more thing: There's x86_vendor_is() yet, so what it is going to be
needs at least roughly explaining here.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 10:04:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 10:04:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173714.1498722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOYrZ-0000JH-Hv; Thu, 27 Nov 2025 10:04:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173714.1498722; Thu, 27 Nov 2025 10:04:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOYrZ-0000JA-FU; Thu, 27 Nov 2025 10:04:33 +0000
Received: by outflank-mailman (input) for mailman id 1173714;
 Thu, 27 Nov 2025 10:04: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=BG9e=6D=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vOYrY-0000J3-2p
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 10:04:32 +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 7716addd-cb78-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 11:04:30 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b762de65c07so96747466b.2
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 02:04:30 -0800 (PST)
Received: from [192.168.1.17] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b76f5162c5csm126368966b.6.2025.11.27.02.04.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 02:04: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: 7716addd-cb78-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764237870; x=1764842670; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4raARQItkJX3V6w1QGL5CRr+ynlo0pbCjQ56QUUkYac=;
        b=MLNkfiEUSAZGAnU79JFN+bIx1IYC3xEG76FV3TpKLrIpGVnvgHTXZPWjTZWuALNQqP
         hGrkqEtOvDgn316DVJwtkhtdcUZzSd64Bm55vk75eJBX9uYuSiu3b2KPWhyw6StZXE8u
         XPXogEj70qsqKKbll2iVetVfkvmZf2xWXoXnXFjUtwS9Jedyb0Ijkv3/Ny3s7rEkItWF
         54qojr+IcIU9gQXQtQKaBBwnzcrgs3xydK+GmWwubhtKLo7H4W9LSCMQTtjsP7mL0P5l
         9qfd8SBnN0p0r2FtAIkVhrJADBusqSeW2Nci1ojX0qBruWbWHioTpplp5G3n+YbN3j3T
         HdiA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764237870; x=1764842670;
        h=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=4raARQItkJX3V6w1QGL5CRr+ynlo0pbCjQ56QUUkYac=;
        b=tVs8wmEbT5GjPSDSX8/SkKNCuAxCtlRgJEeP9w1qutX8jzni5iRldrd8Sfd3lD//96
         tgLL2fG7VWw25ueMrvE5Z9Tm+sgfrgUSfvj10pfCrOhDFRTZONdT+23+obR2OpPNWPYc
         CLPcz01H97jA0TWgwV4Yrkv+hqWwtRI7k16CJ5CAR9C5RJwrwnB8mlqqwpAGBTMZ9Any
         7I83mWpu0jOlnckF9+1cgG4nMBYiZKmQCzzVqjNPeGquUjFc9NaCGMytVHP4oZLkzihA
         jFAl38GmE7St17lqIdR0oZ7TjpaSaUhUjRZmjrcu1+MXBWO5I2X4oHvUe6FkyluhjhS9
         Jqsw==
X-Forwarded-Encrypted: i=1; AJvYcCVT0VkPJWcrXXnoKAt8CSQlJyyGhEFS6W/3/qtx/w2sTZNVJvb8ajp4QwznuoaK++PrafJCQnVtpZs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywh8Q3Yo3w5CQeysHNup7I6uwo975Hw4nzHW+PwAplXEHRAlCUk
	CH9ER01KkRZ3uvWQ8/JFImaGTfbHfv3gCQoqwx67WAbCl0L4vI4hyTaF
X-Gm-Gg: ASbGncscdo3g4mPkdd/jBzEJl13VB3ZdMPGZfEnTqACaq6uKPbLeCZK3wxTDYWvXtzc
	toxQiBP/ut2Gg7JZfnk8S3YbD/OZ4PReRihFeqgRtgQdlAIROGBEstlCHJO+7SdwALd+rdfJXRA
	cHmTq/ehy+BF0T1f9GBtZGGqNQPKIjX/i7DkkVnfgYzqw0fqwio3DshAQpTN0I0bo5W/5qO8KTq
	pPsxlYIO6RM1KvApNP8ykjdE1gFySh31oggsCThp2auUzJ5iXg9MI6trKfeG0AC0Xlp3QzlPNul
	NFqOdIOn3wKvLpvHzOfTlCTpxTqH7IGRTlIX5xm85246jBZMooBjDPnJRtkKUjbc3z/tCXNGHHb
	KtoIowfzWFju5BmyPZ5bDPCalzSRE9Vv8VGNEp6HSyWcNvM7kL/nu0PlrfvKV7e6ucMzNCBZjM6
	33UF8R/c4D7Y4B4dA9hBN0/NYhHfxuGcLyPi0HqR9h9UYIkZeP5qTliRvM7bzdEH03Gg==
X-Google-Smtp-Source: AGHT+IHPso+P3vV9V6n0v/TYDYxBW5i4WX+1Q1rjL+EE143pJLsgdIGVLnvLF9UeMAWBwNkeFFk95A==
X-Received: by 2002:a17:907:3d89:b0:b73:9a71:13bb with SMTP id a640c23a62f3a-b76c55f3e48mr1108823766b.32.1764237869610;
        Thu, 27 Nov 2025 02:04:29 -0800 (PST)
Content-Type: multipart/alternative;
 boundary="------------6rxlXtWiSDHfng9MB26VfzsC"
Message-ID: <82d7533d-aeb7-4d9b-a868-00bd419b72b6@gmail.com>
Date: Thu, 27 Nov 2025 11:04:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/8] symbols/riscv: re-number intermediate files
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>, Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
 <37ed4a18-f1a0-4c1f-b915-1708c235068b@suse.com>
 <db4bccef-a746-4912-89ad-b015a8d43f78@gmail.com>
 <3fd32ba0-0670-4c9b-b216-60c55a5de7ba@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <3fd32ba0-0670-4c9b-b216-60c55a5de7ba@suse.com>

This is a multi-part message in MIME format.
--------------6rxlXtWiSDHfng9MB26VfzsC
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/27/25 10:57 AM, Jan Beulich wrote:
> On 27.11.2025 10:49, Oleksii Kurochko wrote:
>> On 11/26/25 2:44 PM, Jan Beulich wrote:
>>> In preparation to do away with symbols-dummy, re-number the assembly and
>>> object files used, for the numbers to match the next passes real output.
>>> This is to make 0 available to use for what now is handled by
>>> symbols-dummy.
>>>
>>> Signed-off-by: Jan Beulich<jbeulich@suse.com>
>>>
>>> --- a/xen/arch/riscv/Makefile
>>> +++ b/xen/arch/riscv/Makefile
>>> @@ -26,16 +26,16 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
>>>    	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
>>>    	$(NM) -pa --format=sysv $(dot-target).0 \
>>>    		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>>> -		> $(dot-target).0.S
>>> -	$(MAKE) $(build)=$(@D) $(dot-target).0.o
>>> +		> $(dot-target).1.S
>>> +	$(MAKE) $(build)=$(@D) $(dot-target).1.o
>>>    	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< \
>>> -	    $(dot-target).0.o -o $(dot-target).1
>>> +	    $(dot-target).1.o -o $(dot-target).1
>>>    	$(NM) -pa --format=sysv $(dot-target).1 \
>>>    		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>>> -		> $(dot-target).1.S
>>> -	$(MAKE) $(build)=$(@D) $(dot-target).1.o
>>> +		> $(dot-target).2.S
>>> +	$(MAKE) $(build)=$(@D) $(dot-target).2.o
>>>    	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \ - $(dot-target).1.o -o $@ + $(dot-target).2.o
>>> -o $@ $(NM) -pa --format=sysv $@ \ | $(objtree)/tools/symbols
>>> --all-symbols --xensyms --sysv --sort \ > $@.map
>>>
>> LGTM:Â Reviewed-By: Oleksii Kurochko<oleksii.kurochko@gmail.com>
> Thanks. May I remind you again that there wants to be a blank before the
> opening angle bracket? That is an issue which was also pointed out for
> some of your recent release-acks.

Hmm, something wrong with a setting in my e-mail app because I am looking at
my reply in my e-mail app and there is a space before the opening angle bracket...


>   (Canonically, the "-by" also wants to
> be all lower case, I think.)

I was sure that I had seen â€œ-byâ€ written with an uppercase letter, but I will
use lowercase in the future. I tried using|git log --grep|, and it seems I was
mistaken â€” â€œ-byâ€ is always lowercase.

I didnâ€™t see your answer, so I made the same mistake with â€œ-byâ€ in the next
patch as well.

~ Oleksii

--------------6rxlXtWiSDHfng9MB26VfzsC
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 11/27/25 10:57 AM, Jan Beulich
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:3fd32ba0-0670-4c9b-b216-60c55a5de7ba@suse.com">
      <pre wrap="" class="moz-quote-pre">On 27.11.2025 10:49, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
On 11/26/25 2:44 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">In preparation to do away with symbols-dummy, re-number the assembly and
object files used, for the numbers to match the next passes real output.
This is to make 0 available to use for what now is handled by
symbols-dummy.

Signed-off-by: Jan Beulich<a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a>

--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -26,16 +26,16 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
  	    $(objtree)/common/symbols-dummy.o -o $(dot-target).0
  	$(NM) -pa --format=sysv $(dot-target).0 \
  		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
-		&gt; $(dot-target).0.S
-	$(MAKE) $(build)=$(@D) $(dot-target).0.o
+		&gt; $(dot-target).1.S
+	$(MAKE) $(build)=$(@D) $(dot-target).1.o
  	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $&lt; \
-	    $(dot-target).0.o -o $(dot-target).1
+	    $(dot-target).1.o -o $(dot-target).1
  	$(NM) -pa --format=sysv $(dot-target).1 \
  		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
-		&gt; $(dot-target).1.S
-	$(MAKE) $(build)=$(@D) $(dot-target).1.o
+		&gt; $(dot-target).2.S
+	$(MAKE) $(build)=$(@D) $(dot-target).2.o
  	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $&lt; $(build_id_linker) \ - $(dot-target).1.o -o $@ + $(dot-target).2.o 
-o $@ $(NM) -pa --format=sysv $@ \ | $(objtree)/tools/symbols 
--all-symbols --xensyms --sysv --sort \ &gt; $@.map

</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">LGTM:Â Reviewed-By: Oleksii Kurochko<a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Thanks. May I remind you again that there wants to be a blank before the
opening angle bracket? That is an issue which was also pointed out for
some of your recent release-acks.</pre>
    </blockquote>
    <pre>Hmm, something wrong with a setting in my e-mail app because I am looking at
my reply in my e-mail app and there is a space before the opening angle bracket...</pre>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:3fd32ba0-0670-4c9b-b216-60c55a5de7ba@suse.com">
      <pre wrap="" class="moz-quote-pre"> (Canonically, the "-by" also wants to
be all lower case, I think.)</pre>
    </blockquote>
    <pre data-start="65" data-end="260">I was sure that I had seen â€œ-byâ€ written with an uppercase letter, but I will
use lowercase in the future. I tried using <code data-start="186"
    data-end="202">git log --grep</code>, and it seems I was
mistaken â€” â€œ-byâ€ is always lowercase.</pre>
    <pre data-start="262" data-end="352">I didnâ€™t see your answer, so I made the same mistake with â€œ-byâ€ in the next
patch as well.</pre>
    <pre>
~ Oleksii</pre>
  </body>
</html>

--------------6rxlXtWiSDHfng9MB26VfzsC--


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 10:22:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 10:22:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173728.1498731 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOZ92-0003S5-4i; Thu, 27 Nov 2025 10:22:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173728.1498731; Thu, 27 Nov 2025 10:22:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOZ92-0003Ry-2D; Thu, 27 Nov 2025 10:22:36 +0000
Received: by outflank-mailman (input) for mailman id 1173728;
 Thu, 27 Nov 2025 10:22: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 1vOZ91-0003Rs-H6
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 10:22: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 1vOZ8x-00B7Vh-2i;
 Thu, 27 Nov 2025 10:22:31 +0000
Received: from [15.248.2.232] (helo=[10.24.66.108])
 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 1vOZ8x-00Gay6-1T;
 Thu, 27 Nov 2025 10:22:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=efbYn/p8219u1PtxitkxwIkRMxr8OE5y+OApTyckzwo=; b=SrxoQjyIP2KnrBbAGcEOnJlh3w
	1vTVW+dLs4BC64VshcXGBZVhSp5NJrmOsoqku4evyo9vV62KatVM6hLsLbnIrZuSxXOTGsiC0efPB
	Z2F1lZ3gbNMt4W97uriKW3ipvHqidBHtTnrIudCgCqLnVHRBmFFSwHNw73PVh23PYFkw=;
Message-ID: <485a8166-5079-4c0e-a6bf-f6aee8af991d@xen.org>
Date: Thu, 27 Nov 2025 10:22:28 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/20] Add SMMUv3 Stage 1 Support for XEN guests
To: Milan Djokic <milan_djokic@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
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>
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>
Content-Language: en-US
From: Julien Grall <julien@xen.org>
In-Reply-To: <5df30dbf-17a2-446f-83f9-0e4468622917@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 03/11/2025 13:16, Milan Djokic wrote:
> Hello Volodymyr, Julien

Hi Milan,

Thanks for the new update. For the future, can you trim your reply?

> Sorry for the delayed follow-up on this topic.
> 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.

I am not sure to fully understand. My assumption with the single vIOMMU 
is you have a virtual SID that would be mapped to a (pIOMMU, physical 
SID). 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)

> Following is the updated design document.
> I have added additional details to the design and performance impact 
> sections, and also indicated future improvements. Security 
> considerations section is unchanged apart from some minor details 
> according to review comments.
> Let me know what do you think about updated design. Once approved, I 
> will send the updated vIOMMU patch series.
> 
> 
> ==========================================================
> Design Proposal: Add SMMUv3 Stage-1 Support for XEN Guests
> ==========================================================
> 
> :Author:Â Â Â Â  Milan Djokic <milan_djokic@epam.com>
> :Date:Â Â Â Â Â Â  2025-11-03
> :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 enabed, guest manages IOVA to IPA mappings through its own 
> IOMMU driver.
> 
> This feature enables:
> 
> - Stage-1 translation in guest domain
> - Safe device passthrough with per-device address translation table

I find this misleading. Even without this feature, device passthrough is 
still safe in the sense a device will be isolated (assuming all the DMA 
goes through the IOMMU) and will not be able to DMA outside of the guest 
memory. What the stage-1 is doing is providing an extra layer to control 
what each device can see. This is useful if you don't trust your devices 
or you want to assign a device to userspace (e.g. for DPDK).

> 
> Design Overview
> ===============
> 
> These changes provide emulated SMMUv3 support:

If my understanding is correct, there are all some implications in how 
we create the PCI topology. It would be good to spell them out.

> 
> - **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.

What about ACPI?

> - **Runtime Configuration**: Introduces a `viommu` boot parameter for 
> dynamic enablement.
> 
> Separate vIOMMU device is exposed to guest for every physical IOMMU in 
> the system.
> vIOMMU feature is designed in a way to provide a generic vIOMMU 
> framework and a backend implementation
> for target IOMMU as separate components.
> Backend implementation contains specific IOMMU structure and commands 
> handling (only SMMUv3 currently supported).
> This structure allows potential reuse of stage-1 feature for other IOMMU 
> types.
> 
> Security Considerations
> =======================
> 
> **viommu security benefits:**
> 
> - Stage-1 translation ensures guest devices cannot perform unauthorized 
> DMA (device I/O address mapping managed by guest).
> - Emulated IOMMU removes guest direct dependency on IOMMU hardware, 
> while maintaining domains isolation.

Sorry, I don't follow this argument. Are you saying that it would be 
possible to emulate a SMMUv3 vIOMMU on top of the IPMMU?

> 1. Observation:
> ---------------
> Support for Stage-1 translation in SMMUv3 introduces new data structures 
> (`s1_cfg` alongside `s2_cfg`)
> and logic to write both Stage-1 and Stage-2 entries in the Stream Table 
> Entry (STE), including an `abort`
> field to handle partial configuration states.
> 
> **Risk:**
> Without proper handling, a partially applied Stage-1 configuration might 
> leave guest DMA mappings in an
> inconsistent state, potentially enabling unauthorized access or causing 
> cross-domain interference.

How so? Even if you misconfigure the S1, the S2 would still be properly 
configured (you just mention partially applied stage-1).

> 
> **Mitigation:** *(Handled by design)*
> This feature introduces logic that writes both `s1_cfg` and `s2_cfg` to 
> STE and manages the `abort` field-only
> considering Stage-1 configuration if fully attached. This ensures 
> incomplete or invalid guest configurations
> are safely ignored by the hypervisor.

Can you clarify what you mean by invalid guest configurations?

> 
> 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.

You are referring to data leakage/misrouting between two devices own by 
the same guest, right? Xen would still be in charge of flush when the 
stage-2 is updated.

> 
> **Mitigation:** *(Handled by design)*
> This feature ensures that guest-initiated invalidations are correctly 
> forwarded to the hardware,
> preserving IOMMU coherency.

How is this a mitigation? You have to properly handle commands. If you 
don't properly handle them, then yes it will break.

> 
> 4. Observation:
> ---------------
> The code includes transformations to handle nested translation versus 
> standard modes and uses guest-configured
> command queues (e.g., `CMD_CFGI_STE`) and event notifications.
> 
> **Risk:**
> Malicious or malformed queue commands from guests could bypass 
> validation, manipulate SMMUv3 state,
> or cause system instability.
> 
> **Mitigation:** *(Handled by design)*
> Built-in validation of command queue entries and sanitization mechanisms 
> ensure only permitted configurations
> are applied.

This is true as long as we didn't make an mistake in the configurations ;).


> This is supported via additions in `vsmmuv3` and `cmdqueue` 
> handling code.
> 
> 5. Observation:
> ---------------
> Device Tree modifications enable device assignment and configuration 
> through guest DT fragments (e.g., `iommus`)
> are added via `libxl`.
> 
> **Risk:**
> Erroneous or malicious Device Tree injection could result in device 
> misbinding or guest access to unauthorized
> hardware.

The DT fragment are not security support and will never be at least 
until you have can a libfdt that is able to detect malformed Device-Tree 
(I haven't checked if this has changed recently).

> 
> **Mitigation:**
> 
> - `libxl` perform checks of guest configuration and parse only 
> predefined dt fragments and nodes, reducing risk.
> - The system integrator must ensure correct resource mapping in the 
> guest Device Tree (DT) fragments.
 > > 6. Observation:
> ---------------
> Introducing optional per-guest enabled features (`viommu` argument in xl 
> guest config) means some guests
> may opt-out.
> 
> **Risk:**
> Differences between guests with and without `viommu` may cause 
> unexpected behavior or privilege drift.

I don't understand this risk. Can you clarify?

> 
> **Mitigation:**
> Verify that downgrade paths are safe and well-isolated; ensure missing 
> support doesn't cause security issues.
> Additional audits on emulation paths and domains interference need to be 
> performed in a multi-guest environment.
> 
> 7. Observation:
> ---------------

This observation with 7, 8 and 9 are the most important observations but 
it seems to be missing some details on how this will be implemented. I 
will try to provide some questions that should help filling the gaps.

> Guests have the ability to issue Stage-1 IOMMU commands like cache 
> invalidation, stream table entries
> configuration, etc. An adversarial guest may issue a high volume of 
> commands in rapid succession.
> 
> **Risk:**
> Excessive commands requests can cause high hypervisor CPU consumption 
> and disrupt scheduling,
> leading to degraded system responsiveness and potential denial-of- 
> service scenarios.
> 
> **Mitigation:**
> 
> - Xen scheduler limits guest vCPU execution time, securing basic guest 
> rate-limiting.

This really depends on your scheduler. Some scheduler (e.g. NULL) will 
not do any scheduling at all. Furthermore, the scheduler only preempt 
EL1/EL0. It doesn't preempt EL2, so any long running operation need 
manual preemption. Therefore, I wouldn't consider this as a mitigation.

> - Batch multiple commands of same type to reduce overhead on the virtual 
> SMMUv3 hardware emulation.

The guest can send commands in any order. So can you expand how this 
would work? Maybe with some example.

> - Implement vIOMMU commands execution restart and continuation support

This needs a bit more details. How will you decide whether to restart 
and what would be the action? (I guess it will be re-executing the 
instruction to write to the CWRITER).

> 
> 8. 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 responsivness on commands issued from other 
> guests.
> 
> **Mitigation:**
> 
> - Xen credit scheduler limits guest vCPU execution time, securing basic 
> guest rate-limiting.

Same as above. This mitigation cannot be used.


> - Batch commands which should be propagated towards pIOMMU cmd queue and 
> enable support for batch
>  Â  execution pause/continuation

Can this be expanded?

> - If possible, implement domain penalization by adding a per-domain cost 
> counter for vIOMMU/pIOMMU usage.

Can this be expanded?

> 
> 9. Observation:
> ---------------
> vIOMMU feature includes event queue used for forwarding IOMMU events to 
> guest
> (e.g. translation faults, invalid stream IDs, permission errors).
> A malicious guest can misconfigure its SMMU state or intentionally 
> trigger faults with high frequency.
> 
> **Risk:**
> Occurance of IOMMU events with high frequency can cause Xen to flood the 

s/occurance/occurrence/

> event queue and disrupt scheduling with
> high hypervisor CPU load for events handling.
> 
> **Mitigation:**
> 
> - Implement fail-safe state by disabling events forwarding when faults 
> are occured with high frequency and
>  Â  not processed by guest.

I am not sure to understand how this would work. Can you expand?

> - Batch multiple events of same type to reduce overhead on the virtual 
> SMMUv3 hardware emulation.

Ditto.

> - Consider disabling event queue for untrusted guests

My understanding is there is only a single physical event queue. Xen 
would be responsible to handle the events in the queue and forward to 
the respective guests. If so, it is not clear what you mean by "disable 
event queue".

> 
> Performance Impact
> ==================
> 
> With iommu stage-1 and nested translation inclusion, performance 
> overhead is introduced comparing to existing,
> stage-2 only usage in Xen. Once mappings are established, translations 
> should not introduce significant overhead.
> Emulated paths may introduce moderate overhead, primarily affecting 
> device initialization and event handling.
> Performance impact highly depends on target CPU capabilities.
> Testing is performed on QEMU virt and Renesas R-Car (QEMU emulated) 
> platforms.

I am afraid QEMU is not a reliable platform to do performance testing. 
Don't you have a real HW with vIOMMU support?

[...]

> 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

I am not sure what this is referring to?

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 10:47:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 10:47:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173737.1498741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOZWX-0006Wf-2L; Thu, 27 Nov 2025 10:46:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173737.1498741; Thu, 27 Nov 2025 10:46:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOZWW-0006WY-VJ; Thu, 27 Nov 2025 10:46:52 +0000
Received: by outflank-mailman (input) for mailman id 1173737;
 Thu, 27 Nov 2025 10:46: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=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOZWV-0006WS-JQ
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 10:46:51 +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 60d81d5b-cb7e-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 11:46:50 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-429c82bf86bso456762f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 02:46: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
 ffacd0b85a97d-42e1ca7880asm2866822f8f.31.2025.11.27.02.46.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 02:46: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: 60d81d5b-cb7e-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764240409; x=1764845209; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3vGNY6XUo4iXFGrN57ODdsWqDYAbDdpJ1oS0+lfGWNs=;
        b=DTZw3fepZtUeWvjtDFM9AY18zZPPOPg4FBvb3/7JPV4XOIPgToQWEin9dlBjv4zvZy
         W6qMghrlv/xkOitS9E1xR90Qmg5kvJnHCcd5jINFBYLVC6Jh3Quf4UNTQIvt/wljz/vX
         lxC2sB7g3z627is9Ekt07QIeu1KZdiKx3AG80LXrM6x1qx/MrU5ZypIt7HszN9fQVuuX
         WAGgFJ+VLtdpDO2tgOWd0lya6rsEAChxLQ4NNDVPSbyrwyQyVHo6UtleQZxFnk0wP4CG
         NiPxXmsg0twJMcG8p1OJpxgWFgQTZv6KskQWWOiUebQoDbYuFDJcY/a9XP57mNVy9ji7
         RWtg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764240409; x=1764845209;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3vGNY6XUo4iXFGrN57ODdsWqDYAbDdpJ1oS0+lfGWNs=;
        b=LMGAcQNLbILKUx0EJixgAiBrfN+3fvZxwuZIlcHEMi7R5iWCurvUMh6vX6nsn8BpRk
         8Bk5fL/U5Oxb7uP/wMaJ4M7QE81z9DhwcYj1dKutueAWFwADAJEfTvFt4TTvoYoKTBoy
         Dm1qIF5/PxMuNcmDkWm3Ndyw9zm3n03RtqB+ZIkv1N4x2zZQPqVTFt7oJxBy6LR1DMFy
         SMR75GpMAyYjzPqFcguDhCjbpsNnc+HeiWyzfLbY4P79wPAm8drlYCk6+tZuS9V62I8n
         eMonVZIhzskmeKO+6eAGeV6eIiBNL0+Gjff7y2g/bPcTJPLWa5PlZXYcsCSaZnc/Np7e
         PL4A==
X-Forwarded-Encrypted: i=1; AJvYcCVjT1QwbFRGoGQc42hiXn9rRVGSr6q+nkWcz+PDjZJ5o6P8aWLUtbasTLW8mTTTjG2E7gI7mMGig/k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YziGLLEmD4C3hMzi0YfSJM7YC/o6dcpEVeeOTsZ3AW0bRyMUHGV
	3ebwVTJq7fg7ckJY+X57ikrXvYX/o0fpNHk3lzixGmNI2YrF5CeSo9i5GtpHxWPugQ==
X-Gm-Gg: ASbGncvIu/pwjJU7UiBM9EN8vBxRDVea9Ao/xZARRdR1mNB5BVhT4vqsBvPkSxkhU5v
	LYhQbOQaJhM7b789n9v0c57MbcFysRR2Fd8exFYWvoWbQXEiH09fzOMV40Lr/ThLL6+GHwyGK72
	fwvCCDGBLzzj+jUc/VUUZNQeFSzP9nY9X5OXyD+8TCUEebB4Cz7H7rSzyJ3rVXqjCY+xXj5mUZA
	HS2VJV/XZXYNzE8GJOLymJ8o7P3gl3PJWZ4bXMnT0bdOGI8p9pzpaoNVbNVeA7TTkvwsYB4JX0K
	c/cij87VDqa+2EPDahvNqpvXdW5nZRQGNDYetG8iCDW+wmzy+UOvGpcMuw3M2wDgN/5H3pvODtg
	/zTRF0QujFPiQ188XVs7U6s4G3P3UpIZuBiKiOYgYwqSd+VB+jag+4hr+OtNr+lVkIatP7CYw58
	LfMuK8cNfumBdWB457+utZ9L132E7bIPCZ7nffL2cjZvzpWGE+hsNPKZ2MlZmcO2DBgDAbk60Yv
	dM=
X-Google-Smtp-Source: AGHT+IGgCouW4U7WQDQ6t3usISuKPZLqqWspb7K0uSNWLaOTSN8hVn4J9pwOZZa0BwpUH9IJWfqBWg==
X-Received: by 2002:a05:6000:186b:b0:42b:3ab7:b8a3 with SMTP id ffacd0b85a97d-42cc1cf459fmr27046593f8f.27.1764240409384;
        Thu, 27 Nov 2025 02:46:49 -0800 (PST)
Message-ID: <d71b6b55-6745-4ba4-9a4f-d5e7b08f0aec@suse.com>
Date: Thu, 27 Nov 2025 11:46:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 03/11] x86: Add x86_vendor_is() by itself before using
 it
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>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-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: <20251126164419.174487-4-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 17:44, Alejandro Vallejo wrote:
> This function is meant to replace all instances of the following
> patterns in CPU policies and boot_cpu_data:
> 
>   - x->x86_vendor == X86_VENDOR_FOO
>   - x->x86_vendor != X86_VENDOR_FOO
>   - x->x86_vendor & (X86_VENDOR_FOO | X86_VENDOR_BAR)
> 
> The secret sauce is that all branches inside the helper resolve at
> compile time, so for the all-vendors-compiled-in case the function
> resolves to equivalent code as that without the helper and you get
> progressively more aggressive DCE as you disable vendors. The function
> folds into a constant once you remove the fallback CPU vendor setting.

Here and below in the comment, "fallback CPU vendor" wants clarifying. I
don't view it as obvious that what's presently named UNKNOWN_CPU is that
"fallback" (as imo that really isn't any kind of fallback, but merely a
placeholder).

> While at this, move an include out of place so they sort alphabetically.

I'd rather suggest to simply ...

> --- a/xen/arch/x86/include/asm/cpuid.h
> +++ b/xen/arch/x86/include/asm/cpuid.h
> @@ -2,10 +2,12 @@
>  #define __X86_CPUID_H__
>  
>  #include <asm/cpufeatureset.h>
> +#include <asm/x86-vendors.h>
>  
> -#include <xen/types.h>
> +#include <xen/compiler.h>
>  #include <xen/kernel.h>
>  #include <xen/percpu.h>
> +#include <xen/types.h>

... drop it. xen/kernel.h, for example, already gets it for you anyway.

> @@ -56,6 +58,51 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf,
>       (IS_ENABLED(CONFIG_SHANGHAI) ? X86_VENDOR_SHANGHAI : 0) | \
>       (IS_ENABLED(CONFIG_HYGON)    ? X86_VENDOR_HYGON    : 0))
>  
> +/*
> + * When compiling Xen for a single vendor with no fallback vendor there's no
> + * need no check the candidate. `vendor` is always a compile-time constant,
> + * which means this all can fold into a constant boolean.

DYM "`vendor` is always supposed to be a compile-time constant, ..." ?

> + * A runtime check at the time of CPUID probing guarantees we never run on
> + * wrong hardware and another check when loading CPU policies guarantees we
> + * never run policies for a vendor in another vendor's silicon.
> + *
> + * By the same token, the same folding can happen when no vendor is compiled
> + * in and the fallback path is present.
> + */
> +static always_inline bool x86_vendor_is(uint8_t candidate, uint8_t vendor)

I fear the comment, no matter that it's pretty large already, doesn't make
clear how this function is to be used, i.e. how for this being an "is"
predicate the two arguments should be chosen. My typical expectation would be
for "is" predicates to apply to a single property, with other parameters (if
any) only being auxiliary ones. Maybe it would already help if the first
parameter wasn't named "candidate" but e.g. "actual" (from looking at just
the next patch). Or maybe (depending on the number of possible different
inputs for the first parameter) there want to be a few wrappers, so the
"single property" aspect would be achieved at use sites.

Then I see no reason for the parameters to be other than unsigned int. (Same
for the local variable then, obviously.)

I'm further uncertain this is a good place for the function. In the old days
it may have been, but cpuid.[ch] now are only about guest exposure of CPUID,
when this predicate is intended to be used for both host and guest. (As I
realize only now, this also applies to the addition patch 1 does.) One
might think processor.h might be a good home, but we're actually trying to
slim that one down. So one of cpufeature.h and cpufeatures.h, I guess. (Maybe
other x86 maintainers also have thoughts here.)

> +{
> +    uint8_t filtered_vendor = vendor & X86_ENABLED_VENDORS;
> +
> +    if ( vendor == X86_VENDOR_UNKNOWN )
> +    {
> +        if ( IS_ENABLED(CONFIG_UNKNOWN_CPU) )
> +            /* no-vendor optimisation */

Nit: Comment style (also again below).

> +            return X86_ENABLED_VENDORS ? vendor == candidate : true;

With the surrounding if() this effectively (and more explicitly) is

            return X86_ENABLED_VENDORS ? candidate == X86_VENDOR_UNKNOWN : true;

First: Would one ever pass X86_VENDOR_UNKNOWN for "vendor"? The next patch,
for example, specifically doesn't. And then why not shorter as

            return !X86_ENABLED_VENDORS || candidate == X86_VENDOR_UNKNOWN;

Which raises the next question: Should we even allow a hypervisor to be built
with X86_ENABLED_VENDORS == 0? Plus, question more on patch 1, what's the
(useful) difference between a build with all vendors set to N and
(a) UNKNOWN_CPU=n vs (b) UNKNOWN_CPU=y? With all vendor support explicitly
turned off, all CPUs are going to be "unknown".

> +
> +        /* unknown-vendor-elimination optimisation */
> +        return false;
> +    }
> +
> +    /* single-vendor optimisation */
> +    if ( !IS_ENABLED(CONFIG_UNKNOWN_CPU) &&
> +         (ISOLATE_LSB(X86_ENABLED_VENDORS) == X86_ENABLED_VENDORS) )
> +        return filtered_vendor == X86_ENABLED_VENDORS;
> +
> +    /* compiled-out-vendor-elimination optimisation */
> +    if ( !filtered_vendor )
> +        return false;
> +
> +    /*
> +     * When checking against a single vendor, perform an equality check, as
> +     * it yields (marginally) better codegen
> +     */
> +    if ( ISOLATE_LSB(filtered_vendor) == filtered_vendor )

So one may pass a combination of multiple vendors for "vendor"? Is so, why
is the parameter name singular?

> +        return filtered_vendor == candidate ;

Nit: Stray blank.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 10:51:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 10:51:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173751.1498752 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOZbA-0008DC-MZ; Thu, 27 Nov 2025 10:51:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173751.1498752; Thu, 27 Nov 2025 10: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 1vOZbA-0008D5-Jr; Thu, 27 Nov 2025 10:51:40 +0000
Received: by outflank-mailman (input) for mailman id 1173751;
 Thu, 27 Nov 2025 10:51:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOZb9-0008Cz-FD
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 10:51:39 +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 0bcc123b-cb7f-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 11:51:37 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-42b38de7940so344615f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 02:51: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-42e1c5168acsm2769976f8f.0.2025.11.27.02.51.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 02: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: 0bcc123b-cb7f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764240696; x=1764845496; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fuNkvfFW2Iv0MNCHZq+eylUOGEvVMnchrkzhL3kueuI=;
        b=gGFb6QxH3dmANs+x5LrqqZtV2FpcXxw4GYve+RqB6pM425XALwFPcyAqc92RxdQi/J
         fzeTfVlBWoOr3xv4rAxuu2LeTYdg9NNPxRPtpFAXTr3JQgGwzNQjxRYNavCYJ4MUuoGe
         5+pnTBipbO0ti9bnMamLyT3QM912NgXCFLcTa3Zah5hZfgYSThRx5IC3EpAOpc5mBbjd
         GhWp7rkwitEK3q4Zd0Ygu5xDIU0pMc0F+veeFJoXp9KBsZJKN1AVFyREtFfMqMhqILZQ
         dG/8d3IgWoQb9cwWArYmSaVQjnaLFtwDVDhGengA1yWOJa/wUurX02cqqRlKqxMxaxNA
         UrSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764240696; x=1764845496;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fuNkvfFW2Iv0MNCHZq+eylUOGEvVMnchrkzhL3kueuI=;
        b=rbVmrf0djiy3l4xOwP9I7BjAgOqgHYs2knEIxsJuzWN7tEdOdD2YZUizSVh2IfIVix
         pmU7JJIMB1sZzW9W88qHPAIVIpUcGhOeGY8Ze9g7d2iUdcCicbEmTuBKyZuAfYoi6qYy
         4HD62jRF6Ne89DVLOMdsZWlJITo9a+mufBEMsVxLgOhvjOyB3x5REAdSgyi33TNJb0Dj
         JUd4I4zhCSIJzewtUsMlFpjXxAoarVv7j2W8n4otKWBUdSgdUr7PAR17QPsEllyLtd4G
         BvobhYX7BgznEwpD48gP5GnI+nW38agtbO+6mhg9wmp2KSIEnHV7yaw3Xu0jfYi2qaB6
         dHMQ==
X-Forwarded-Encrypted: i=1; AJvYcCWf9XS/5TGkhzNKwz8sR3VlBz7qeJwJbGvsMDR3/OINjCJoQ+c/3FOqFjC281CJbKNzE/hGgjfUnIk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzF9Ixv4HDXkKej/NyjjGWILfXnmzcCdHFkUYFa45H3v/L+LJg6
	H4SG2Mk25Sqsvbfu9Vm9TxVs4GP/d1LyLR5cb0HjvuVum++Tpw26mzfRd0PrdpKzIQ==
X-Gm-Gg: ASbGnctVRFTf6DHYDTpe6PjaG10fr0tIX1nKsZXteHs6xW1NjPViiwMK4AhtdEEIJbR
	bV8ceyp5ohnWSPL1aXb2aPAn+3sadIiQvu3KqKKyL2qlohIiZgAxVA0ywGRinikw6xvZs2SAvgh
	s59hXApZsaKCIWjk3feTXmPdPHcfogMUSiCPohqIzf1cAl6WQO07XAlUJIB5HjdswxdEaShNZCE
	5brQw6UXPO+Yo3NVOnRCQEdylX5fK9d2dIjxARfoTNMfvj4oj+fPPgjRElVhYOFmGgHfPy5e0ZU
	Kqv1xY8jVEX0KMQqw3j6/MpBv59LmyBiPTVd4Xu7BonN4vcGBlKSYJaW5Ncms5f71ZMfYjym5J9
	jEfil0+6ziCzRWotINiDmdvD5Iz3mcYI8ymgKpobRMThSpFrgpwFMJARqMx9+S6EQnsA1ZuBEEF
	D2wsPiSIJP4Qp7q0K7Z+Ld8K2IOkNCezk7B59BvkdDd2dkzbrnFPm2115DcP0c08Ich0YWC+0Mz
	mjzYfVV7J/DpQ==
X-Google-Smtp-Source: AGHT+IFldfk4lMKK8bYTZMbXRPEjEoufVsap0JIPFEOSCa7d5JG5ga95XCu4QaryqgZR8phCxa3GZA==
X-Received: by 2002:a05:6000:4201:b0:42b:3eb2:1b97 with SMTP id ffacd0b85a97d-42cc1ab7181mr27263439f8f.9.1764240696255;
        Thu, 27 Nov 2025 02:51:36 -0800 (PST)
Message-ID: <ad217ce2-0b3c-4746-b32e-3b3bc7c9cc51@suse.com>
Date: Thu, 27 Nov 2025 11:51:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 04/11] x86: Refactor early vendor lookup code to use
 x86_vendor_is()
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>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-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: <20251126164419.174487-5-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.11.2025 17:44, Alejandro Vallejo wrote:
> Move the "unknown" vendor ahead of all others and have it NOT rely
> on x86_vendor_is(), as that would yield incorrect values for the
> single-vendor+no-fallback case when running in incorrect hardware
> (because x86_vendor_is() becomes a folded constant of the single
> compiled-in vendor).
> 
> This is one of the two places where x86_vendor_is() cannot be used,
> along with the compatibility check on loaded guest CPU policies.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> ---
>  xen/arch/x86/cpu/common.c | 31 +++++++++++++++++++++++--------
>  1 file changed, 23 insertions(+), 8 deletions(-)
> 
> diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
> index 393c30227f..c0c3606dd2 100644
> --- a/xen/arch/x86/cpu/common.c
> +++ b/xen/arch/x86/cpu/common.c
> @@ -342,23 +342,38 @@ void __init early_cpu_init(bool verbose)
>  
>  	c->x86_vendor = x86_cpuid_lookup_vendor(ebx, ecx, edx) &
>  	                X86_ENABLED_VENDORS;
> -	switch (c->x86_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;
> -	case X86_VENDOR_CENTAUR:  actual_cpu = centaur_cpu_dev;  break;
> -	case X86_VENDOR_SHANGHAI: actual_cpu = shanghai_cpu_dev; break;
> -	case X86_VENDOR_HYGON:    actual_cpu = hygon_cpu_dev;    break;
> -	default:
> +
> +	/*
> +	 * We can't rely on x86_vendor_is() here due to the single-vendor
> +	 * optimisation. It makes x86_vendor_is(x, y) rely on the constant `y`
> +	 * matching the single vendor Xen was compiled for and ignore the
> +	 * runtime variable `x`. In order to preserve sanity we must assert here
> +	 * that we never boot such a build in a CPU from another vendor, or
> +	 * major chaos would ensue.
> +	 */
> +	if (c->x86_vendor == X86_VENDOR_UNKNOWN)
> +	{

Nit: No mix of styles please. Here it wants to be Linux style.

>  		if (verbose || !IS_ENABLED(CONFIG_UNKNOWN_CPU))
>  			printk(XENLOG_ERR
>  			       "Unrecognised or unsupported CPU vendor '%.12s'\n",
>  			       c->x86_vendor_id);
> +
>  		if (!IS_ENABLED(CONFIG_UNKNOWN_CPU))
>  			panic("Cannot run in unknown/compiled-out CPU vendor.\n");
>  
>  		actual_cpu = default_cpu;
>  	}
> +	else if (x86_vendor_is(c->x86_vendor, X86_VENDOR_INTEL)) {
> +		intel_unlock_cpuid_leaves(c);
> +		actual_cpu = intel_cpu_dev;
> +	} else if (x86_vendor_is(c->x86_vendor, X86_VENDOR_AMD))
> +		actual_cpu = amd_cpu_dev;
> +	else if (x86_vendor_is(c->x86_vendor, X86_VENDOR_CENTAUR))
> +		actual_cpu = centaur_cpu_dev;
> +	else if (x86_vendor_is(c->x86_vendor, X86_VENDOR_SHANGHAI))
> +		actual_cpu = shanghai_cpu_dev;
> +	else if (x86_vendor_is(c->x86_vendor, X86_VENDOR_HYGON))
> +		actual_cpu = hygon_cpu_dev;

If it needs to be like this, then so be it, but I view it as a downside to
not be able to use switch() anymore. It's not quite clear to me though what
extra gains the transformation brings. The masking by X86_ENABLED_VENDORS
already does most of what you want, and X86_VENDOR_UNKNOWN continues to be
handled separately anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 11:06:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 11:06:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173760.1498761 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOZp5-0001jS-Ra; Thu, 27 Nov 2025 11:06:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173760.1498761; Thu, 27 Nov 2025 11:06: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 1vOZp5-0001jL-OZ; Thu, 27 Nov 2025 11:06:03 +0000
Received: by outflank-mailman (input) for mailman id 1173760;
 Thu, 27 Nov 2025 11:06:02 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1vOZp4-0001jF-9L
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 11:06:02 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vOZp1-00B8WK-2r;
 Thu, 27 Nov 2025 11:05:59 +0000
Received: from [2a01:cb15:80df:da00:94d0:641e:16e6:ca4b] (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 1vOZp1-00GfYx-17;
 Thu, 27 Nov 2025 11:05: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>
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=jWo4RouIkUGAKo3TiNy/BQDA9sT/YMf9uwK4Q+NpVpY=; b=BsH13XcXOHisGrYTkKM/WIFPaA
	arDFIPP0JbOmPm/6rbZgzvUGo3eGaweKCjo6ROZ3V24rPtawYw5a51pKqa7a8I7qvVCbSTPwljW1E
	yZyAA29A69yuTq+FOMsDMngC7973+RQnasUwYcrFKsAE5vHWGuYC6SS0udz3UfdPniag=;
Date: Thu, 27 Nov 2025 12:05:57 +0100
From: Anthony PERARD <anthony@xenproject.org>
To: Jan Beulich <jbeulich@suse.com>, Michael Young <m.a.young@durham.ac.uk>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH] libxl_nocpuid.c: fix build with json-c
Message-ID: <aSgwlS7js_5Tea_t@l14>
References: <94ffdeb1-6826-4c3a-a9c1-3ccc8b129a61@durham.ac.uk>
 <8c8b11c7-ba2c-440c-be2b-86a1ff250e0d@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <8c8b11c7-ba2c-440c-be2b-86a1ff250e0d@suse.com>

On Mon, Nov 24, 2025 at 10:26:34AM +0100, Jan Beulich wrote:
> On 21.11.2025 22:09, Michael Young wrote:
> > diff --git a/tools/libs/light/libxl_nocpuid.c 
> > b/tools/libs/light/libxl_nocpuid.c
> > index 0630959e76..71ab49ed61 100644
> > --- a/tools/libs/light/libxl_nocpuid.c
> > +++ b/tools/libs/light/libxl_nocpuid.c
> > @@ -40,11 +40,24 @@ int libxl__cpuid_legacy(libxl_ctx *ctx, uint32_t 
> > domid, bool restore,
> >       return 0;
> >   }
> > 
> > +#ifdef HAVE_LIBJSONC
> > +#ifndef _hidden
> > +#define _hidden
> > +#endif
> 
> Why would this be needed? libxl_internal provides a definition afaics.
> 
> > +_hidden int libxl_cpuid_policy_list_gen_jso(json_object **jso_r,
> 
> Nor should the attribute be needed here, as the function declaration ought
> to be in scope.

Yes, just mirroring the changes done to libxl_cpuid.c should be enough.

> > +                                libxl_cpuid_policy_list *pcpuid)
> > +{
> > +    return 0;
> > +}
> > +#endif
> > +
> > +#if defined(HAVE_LIBYAJL)
> >   yajl_gen_status libxl_cpuid_policy_list_gen_json(yajl_gen hand,
> >                                   libxl_cpuid_policy_list *pcpuid)
> >   {
> >       return 0;
> >   }
> > +#endif
> 
> Maybe unrelated to this build fix, I find it hard to believe that returning
> 0 (presumably meaning "success") here is appropriate without actually doing
> anything. In particular for the new function you add, I think upon success
> the caller can expect *jso_r to have got assigned a value. However, without
> any commentary it's hard to tell whether there's some "agreement" that the
> caller has to pre-set its variable (to, say, NULL).

For the YAJL function, this is correct, there's nothing to do with
`hand`. But for the json-c function, while the current caller does
initialise `*jso_r`, it would be best indeed to have the function set
`*jso_r` to NULL. (It's equivalent to return a NULL JSON object.)

> Also why are the libxl_..._jso() all hidden, while their libxl_..._json()
> counterparts aren't? And why would non-exported functions have their
> declarations live in a non-private header?

History, bad demission which expose libxl internals to libxl's users,
which make it impossible to use whatever json parsing/generating library that
libxl wants. The header `libxl_json.h` is only necessary if you want to
use the `*_json()` functions, and the only user (I hope) is `xl`.
I guess we could remove the installation of "libxl_json.h" header (and
"_libxl_types_json.h") when building libxl with json-c support.

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 12:34:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 12:34:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173774.1498771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vObCr-0004CO-Uw; Thu, 27 Nov 2025 12:34:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173774.1498771; Thu, 27 Nov 2025 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 1vObCr-0004CH-Rk; Thu, 27 Nov 2025 12:34:41 +0000
Received: by outflank-mailman (input) for mailman id 1173774;
 Thu, 27 Nov 2025 12:34: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=kkQw=6D=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1vObCp-0004CA-ST
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 12:34:39 +0000
Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com
 [148.163.156.1]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6f6b0920-cb8d-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 13:34:38 +0100 (CET)
Received: from pps.filterd (m0356517.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5AR28C0C010976;
 Thu, 27 Nov 2025 12:33:13 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4ak4w9smjt-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 27 Nov 2025 12:33:12 +0000 (GMT)
Received: from m0356517.ppops.net (m0356517.ppops.net [127.0.0.1])
 by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5ARCRff3010922;
 Thu, 27 Nov 2025 12:33:12 GMT
Received: from ppma12.dal12v.mail.ibm.com
 (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4ak4w9smjg-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 27 Nov 2025 12:33:12 +0000 (GMT)
Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1])
 by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5AR9paJp030755;
 Thu, 27 Nov 2025 12:33:10 GMT
Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226])
 by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4akqgsr7cw-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Thu, 27 Nov 2025 12:33:10 +0000
Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com
 [10.20.54.105])
 by smtprelay02.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 5ARCX7Gu41746800
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 27 Nov 2025 12:33:07 GMT
Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 00AAE20040;
 Thu, 27 Nov 2025 12:33:07 +0000 (GMT)
Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id BACC920049;
 Thu, 27 Nov 2025 12:33:05 +0000 (GMT)
Received: from li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com (unknown
 [9.155.204.135])
 by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Thu, 27 Nov 2025 12:33:05 +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: 6f6b0920-cb8d-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=pp1; bh=U/SiOGxBruZSPDZESgyMeWRoh9i3M0
	q8OwIPHZ+5svo=; b=J4oL5vFegHjiNGUagzBApHvzd8MR3jsToqRXuYwO6O9Ano
	CfVy3024jZCEuLyMaeUHzi2cgBCQ5T6x4HVWA8NCfO7ZlKXGxRcy5YmZX37Zh2xF
	MzA5rDBMW3cmhVdAQSTeXH+hFh2FRdgAuqx1Jzqmk4tt/2ktJ1SEh2NYPAZO1/7q
	jBIoJv5xvHry1ZrUt9bk/no4UIxF0+pD3jnN2daFgo+pwGrp+lKi0J01wvI25Zwo
	Y+JFSohSzDUkcOH+osfpgqNaWu3TBtAGEL12D2LyBmVKPVw6tBHfq6+fKyW1yPof
	wj8Xue+B/9P6KlMUmOSnnh8qz3jHMVFftGHP1S7Q==
Date: Thu, 27 Nov 2025 13:33:04 +0100
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
        Andreas Larsson <andreas@gaisler.com>,
        Andrew Morton <akpm@linux-foundation.org>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Borislav Petkov <bp@alien8.de>,
        Catalin Marinas <catalin.marinas@arm.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        David Hildenbrand <david@redhat.com>,
        "David S. Miller" <davem@davemloft.net>,
        David Woodhouse <dwmw2@infradead.org>,
        "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
        Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
        "Liam R. Howlett" <Liam.Howlett@oracle.com>,
        Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
        Madhavan Srinivasan <maddy@linux.ibm.com>,
        Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
        Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
        Peter Zijlstra <peterz@infradead.org>,
        "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
        Ryan Roberts <ryan.roberts@arm.com>,
        Suren Baghdasaryan <surenb@google.com>,
        Thomas Gleixner <tglx@linutronix.de>,
        Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
        Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
        Yeoreum Yun <yeoreum.yun@arm.com>,
        linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        x86@kernel.org
Subject: Re: [PATCH v5 08/12] mm: enable lazy_mmu sections to nest
Message-ID: <4d0eab1a-e1dc-49cf-8640-727c9734233d-agordeev@linux.ibm.com>
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-9-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20251124132228.622678-9-kevin.brodsky@arm.com>
X-TM-AS-GCONF: 00
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTIyMDAyMSBTYWx0ZWRfX9NOF0yN0lw1S
 0SZ2o+OA5NhSGQn0BtdyjjidP8fZgVZF6bKGYqOeYaerArXU5/eYaH6mjoMO836BpL61X8D4vHm
 UI4sk8Hx5RARonWYhreWmyHWARU9ObUiHo1rZ1488kywlyb4p1nLQviUeZWU5jHTK6ubjCRzp3f
 +lzNrZUD6k4MitmXkxXE1FBSz+t2k8OrxvuQ9N1qtEU671rSSdQQZW3OzxL73gwtwodSoKuCAd5
 zVlpdX6K+l3L9DoCrkZWL523cXAZ3K0nqrWUQOBp/3nUGHINn5pOunRbOHLW3tYBKmoRFSshw2u
 kphg/WcqiohDerAKQWOcIW/5lvy2GLS3clWCMDLpqje+49pqSaVI+EbpcYECNk2qFOMpAmxlrdh
 QN7hJqHTshMIrpIpwd78rJv0I72AAQ==
X-Proofpoint-ORIG-GUID: jxCWpMIwO3U273NtNuZU0G48jrPAegj4
X-Proofpoint-GUID: 4fLOgGROG6bc0vkQxWmm4vD-nC0jkq3o
X-Authority-Analysis: v=2.4 cv=TMJIilla c=1 sm=1 tr=0 ts=69284509 cx=c_pps
 a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17
 a=kj9zAlcOel0A:10 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=l97El5uum0sds0BcBlYA:9 a=CjuIK1q_8ugA:10
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-11-25_02,2025-11-26_01,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 priorityscore=1501 spamscore=0 phishscore=0 impostorscore=0 clxscore=1015
 adultscore=0 bulkscore=0 suspectscore=0 malwarescore=0 lowpriorityscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511220021

On Mon, Nov 24, 2025 at 01:22:24PM +0000, Kevin Brodsky wrote:

Hi Kevin,

...
> +/**
> + * lazy_mmu_mode_pause() - Pause the lazy MMU mode.
> + *
> + * Pauses the lazy MMU mode; if it is currently active, disables it and calls
> + * arch_leave_lazy_mmu_mode().
> + *
> + * Must be paired with a call to lazy_mmu_mode_resume(). Calls to the
> + * lazy_mmu_mode_* API have no effect until the matching resume() call.

Sorry if it was discussed already - if yes, I somehow missed it. If I read
the whole thing correctly enter()/pause() interleaving is not forbidden?

lazy_mmu_mode_enable()
	lazy_mmu_mode_pause()
		lazy_mmu_mode_enable()
		...
		lazy_mmu_mode_disable()
	lazy_mmu_mode_resume()
lazy_mmu_mode_disable()

> + *
> + * Has no effect if called:
> + * - While paused (inside another pause()/resume() pair)
> + * - In interrupt context
> + */
>  static inline void lazy_mmu_mode_pause(void)
>  {
> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
> +
>  	if (in_interrupt())
>  		return;
>  
> -	arch_leave_lazy_mmu_mode();
> +	VM_WARN_ON_ONCE(state->pause_count == U8_MAX);
> +
> +	if (state->pause_count++ == 0 && state->enable_count > 0)
> +		arch_leave_lazy_mmu_mode();
>  }
>  
> +/**
> + * lazy_mmu_mode_pause() - Resume the lazy MMU mode.
                    resume() ?
> + *
> + * Resumes the lazy MMU mode; if it was active at the point where the matching
> + * call to lazy_mmu_mode_pause() was made, re-enables it and calls
> + * arch_enter_lazy_mmu_mode().
> + *
> + * Must match a call to lazy_mmu_mode_pause().
> + *
> + * Has no effect if called:
> + * - While paused (inside another pause()/resume() pair)
> + * - In interrupt context
> + */
>  static inline void lazy_mmu_mode_resume(void)
>  {
> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
> +
>  	if (in_interrupt())
>  		return;
>  
> -	arch_enter_lazy_mmu_mode();
> +	VM_WARN_ON_ONCE(state->pause_count == 0);
> +
> +	if (--state->pause_count == 0 && state->enable_count > 0)
> +		arch_enter_lazy_mmu_mode();
>  }
...
Thanks!


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 12:36:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 12:36:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173782.1498782 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vObEq-0004j3-92; Thu, 27 Nov 2025 12:36:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173782.1498782; Thu, 27 Nov 2025 12:36: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 1vObEq-0004iw-69; Thu, 27 Nov 2025 12:36:44 +0000
Received: by outflank-mailman (input) for mailman id 1173782;
 Thu, 27 Nov 2025 12:36: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=kuYy=6D=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vObEo-0004io-Mh
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 12:36:42 +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 b7c87a50-cb8d-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 13:36:39 +0100 (CET)
Received: from SJ0PR03CA0038.namprd03.prod.outlook.com (2603:10b6:a03:33e::13)
 by CH3PR12MB9284.namprd12.prod.outlook.com (2603:10b6:610:1c7::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Thu, 27 Nov
 2025 12:36:34 +0000
Received: from SJ1PEPF000026C4.namprd04.prod.outlook.com
 (2603:10b6:a03:33e:cafe::b2) by SJ0PR03CA0038.outlook.office365.com
 (2603:10b6:a03:33e::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.14 via Frontend Transport; Thu,
 27 Nov 2025 12:36:35 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF000026C4.mail.protection.outlook.com (10.167.244.101) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.7 via Frontend Transport; Thu, 27 Nov 2025 12:36:34 +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, 27 Nov
 2025 06:36: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: b7c87a50-cb8d-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zPYji3hVNPEvPP1+HX99HY0P8HgzAwCzfFDjjJAIlzmGdchAsmu+itHtWq0TBJiD+ho5XK/CJN7CsXqVlcU4T7a1K5qh0B7//TMm7eAT2Ej3uiPmjiScYfmfSasU23Bm0KR2P9OeL0wJga3h6sSSoGoYzsWqQUB0mpofeauOeaIStHvbjByY+WF+iNDiTAgRUD12cr9liSgMo0Y+3UTeEOYCj3mQE5faiGApGDRD5fEYEHUnZc8SYKz2xpMjZZPumCNarqqaWzHyu7CiT3LmIwzjymKZCRLG16YADjDm5wVud+huc7g1AMuPdIiyA6Dv8CKGLA4UaMV8jSQTpVl4lw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lY2T4cOqfO9SP6BWPv2HqdiPTKYDvs7uorxHSZhMCFc=;
 b=ELIPfQWB8gdEBwny+kS36vEY0DBS59hR88agClkSg47O7Yloo/B+anI64Mx2eVjHK0x1MvqiC/Sl9Z8eYJBu8GmXyS4PZJ4OWjvY+VaANo6+tXMtx5AMonDzBZctXwLOiX+yeFtQo++XvebS7ETLVNgoh+bs0Um6iZBjGYs9oGrSYoSVVfVxRLM+DXvKjwSSxG6xHg4IYEdOhWchH94o7/lVY6/Ru9+kA/LiWzR/KzTgfESSWPbr/oE8+szmUNqllHBMjMEMTd+YD0b42bYuHy4ovK5IhzFcyyDJpJYJuyun9QxcF5rNeBJMBoqOZnCL9U+yxIfkl4t+KQxe2mbRng==
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=lY2T4cOqfO9SP6BWPv2HqdiPTKYDvs7uorxHSZhMCFc=;
 b=a2HDoj9Urqr89Bvih8yTReHkMWcLNEYv613Awyy4JyoXoRH2Z797vXQIYJWCQYwbqwGNAVzmlrgrpgCjTjHngMYsxQL3wABtWLLHiK/+u6fk89fBJZZ/8qURGuq9uHhUJgwnjJzc/RGV+h32hKsBYKUPoWqhPDc9k8k69z8sxlg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 27 Nov 2025 13:36:26 +0100
Message-ID: <DEJHD0L6BMLD.1IWHHEXGAHH4I@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>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	<xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH 01/11] x86: Add more granularity to the vendors in
 Kconfig
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-2-alejandro.garciavallejo@amd.com>
 <868f28fe-f2dd-469d-a0cf-111885184dfe@suse.com>
In-Reply-To: <868f28fe-f2dd-469d-a0cf-111885184dfe@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: SJ1PEPF000026C4:EE_|CH3PR12MB9284:EE_
X-MS-Office365-Filtering-Correlation-Id: f89fcefd-ad7d-463e-90a6-08de2db199f2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cXkyZ1lieDJSclJOT0JneXBJRHU5UFc2UmZyOVVVd2lRWkM0amllNzQwWGR0?=
 =?utf-8?B?ak5kMCtKSnZhK1dCaVlJYjA0akg5endBWXM5L2VYbHh0N1pLUWUxVHpJQkFD?=
 =?utf-8?B?Q05ZeXNXRXRWbklpUytRYlQ5cXMybkF1dnExSFI3MHIwa0l5bDZGOUNzdndD?=
 =?utf-8?B?OTFvcWs3dTZKS0pxYW9OS1h6a1JHTGc1YXJxYzdPV1E2QnVhVllhZWdlOEQr?=
 =?utf-8?B?OXdPSEF1Ni8zMFRlaGN3YWdORGdnRTZ0TGJORE0zRC93RlBYcWtqMHp3V3dk?=
 =?utf-8?B?VzE2eFloZXAvMTRvMTlRSytDSmpDWUZMVVBYV1R3blF6YjhxRGg2ZkY0Yk84?=
 =?utf-8?B?Rnc3cUlCVlJMeTVPYzJQd3pRZmxGWkx3cWhxNzRjTXh3WjFuSFZleDZRK0RY?=
 =?utf-8?B?b3IyQlQvTDRPUmJGUGR3dlAycHM4YW10djJPYXUrZ3VzWFkyR25TZHdvbUxy?=
 =?utf-8?B?alNTMnQ4cFlLd21JclFhT2VNKzU5dG1RV2dQNWNTSnhJZlQrcm8rczZqN3hQ?=
 =?utf-8?B?S0dSc21nYmNYd2s1c01TUmxqZ3lOZ2tNeE5tb3cvN1dQZFBWdDNHWWpkdEhh?=
 =?utf-8?B?b3ZpUU90Q0ZvVUxqMml3c3RJenIrU1dLQnV6TlRaNVhuQ0xwaVI3ZFFzVmZ6?=
 =?utf-8?B?aE1CWXMvVFh0bmp3c0Uvb21BU2NLRTBNN1NyR2ZTOFIxSy9UZGZiN3JEdDRj?=
 =?utf-8?B?SUIvVHgxcTQwcUhERFkwSEwzS2NTQ252WVpadTRKZ3M0L29rRWJpV0JGNStx?=
 =?utf-8?B?bk1MY2cvMjVYbzhpcFFXbUFqNmpsRW1sL0RWZWV1REpMVnRac2FKNkVkSUY2?=
 =?utf-8?B?Z3lTVXFUUkNjYVBoWi81Z2NGdE5nV0h2UnNQQ2p6MVFrUkdHNitSQU84ZzhP?=
 =?utf-8?B?ZUdaTUppcXZKRHUvSm54L3RiSmZ2Z1dDS2dTMWRhc1NqaUdDcDFNUTNXNitG?=
 =?utf-8?B?R2NiMkQvUkViTlYxSFFmaVBOQVNWTGdDd3ZHUE9WMEFRT1JmL2ltUGtrVnVQ?=
 =?utf-8?B?ZnVmMmppZ1d4TCtpK3ZYczIyVTVIb3ZLdjdwbmVnN0N5clZzZlowQmNseTd2?=
 =?utf-8?B?Ympsb3lxU1FFUUpOeHVkQXJEQnJwZXluTDFVTVdzMGtvWStYT2ZrOGc1VGpo?=
 =?utf-8?B?OWhMNWlET0NZTzl3dzhwa2VkSGVDb2RSMFFTckg4TkZjQUs1ZkJXeWthaTN3?=
 =?utf-8?B?dS9EbklNRlZxYXZNMG9ZdklBRHNmdC9uR05wMDQ1V2lNdUxiRmdoVFZtK3Zs?=
 =?utf-8?B?clVWSnc5cC84SW9Qa296RmhIbW5qTDh5Vkd6K3VVeGUzY1phSmZ1RXpDOGtU?=
 =?utf-8?B?QjZQeFpXdGpvM1JSZ2ZCNnIyV0diUitYTVhkQkNQL1JBbmFRYUlnUGtMRk8x?=
 =?utf-8?B?ekNvYittdWtnVXc2VDdmU2pJYU1ETjR5bVJxSk92NTYyYnV5RGs5SEpKQkYz?=
 =?utf-8?B?TmxsZzF3T1RvM0Y4RTlwVTd1SVNOSjZNeVg0VlFvMWd6WkE0aGpzVXVtSkdD?=
 =?utf-8?B?VElRM2hEaDhyQXFRZ3IxNUZ6d2E3RUppTnZBQllmODJONnc4Yy9oMTdxSnRv?=
 =?utf-8?B?ODFsUWtaTTJzT0o0VVNKOUtaY2NDaml1RE5KWWt0NUJXSVlhMGR2emdlWEtq?=
 =?utf-8?B?YVN3cjJORWxLMW9xRms4aXlENHNNWTJZZnBuQjVxL2hRWGRBakltZm10Sm1N?=
 =?utf-8?B?MXNtV2F4SDl3REF0WmdPSjZKZlgyVGdtNk1aZGdBQ3g4ZDB6NDk3VG5ESU5U?=
 =?utf-8?B?U1pGcU1qTnFNdSt6NTh5SEFWcGtDYlR2emhDYTgrSG1YNGlPUFp5MkZXOGJK?=
 =?utf-8?B?cWFRQkVkZ0FmL1prOXlzVXNrK0Z4bDdFNFp2S01jMjRRZmdZUVdiR1hPUFow?=
 =?utf-8?B?djV1Ym9XVmxEOUxQR2ZJbDhWSUFnVVZUQWtFUWpJU1ZmTEtSdXppVUhqa0VS?=
 =?utf-8?B?aEluMVEvdkNVamZNSVJ5Yk45dWwvSndtZkEwUjdLVkN1Uzc0ZGpXbjhlZHZu?=
 =?utf-8?B?bEwxMXU3c0dpZVZ1TmZ3TFZqRjdIbVR6UkQ1ZzBGRTQ2eUh5QnVyWDdBbmtX?=
 =?utf-8?B?cG1EbGptSEZKTmZBanNMTEhPTUMzbWVTTG9YVmRFTVhNWGZiWmxMZnBIOU1L?=
 =?utf-8?Q?mI4k=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);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 12:36:34.7120
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f89fcefd-ad7d-463e-90a6-08de2db199f2
X-MS-Exchange-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:
	SJ1PEPF000026C4.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9284

Hi,

Thanks for taking the time to look at this

On Thu Nov 27, 2025 at 10:43 AM CET, Jan Beulich wrote:
> On 26.11.2025 17:44, 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 is allowed.
>>=20
>> In order to allow x86_vendor_is() to fold into constants, expand Kconfig
>> to have the full set of vendors. Adds Hygon, Centaur, Shanghai and the
>> default path.
>>=20
>> Have Hygon depend on AMD, and Centaur+Shanghai depend on Intel.
>>=20
>> Not a functional change.
>>=20
>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>> ---
>>  xen/arch/x86/Kconfig.cpu         | 45 ++++++++++++++++++++++++++++++++
>>  xen/arch/x86/cpu/common.c        | 17 +++++++-----
>>  xen/arch/x86/include/asm/cpuid.h |  7 +++++
>>  3 files changed, 62 insertions(+), 7 deletions(-)
>
> Shouldn't patch 5 be folded into here? Or, if there were some dependencie=
s
> on patches 2-4 (albeit I can't spot anything, as the files are all self-
> contained), at least the parts which can be done right away?

I didn't expect that to work before transforming the switch, but of course
the prior & X86_ENABLED_VENDORS is already telling the compiler which switc=
h
branches are unreachable.

Will do and send soon as non-RFC if there's no objection to the full vendor
palette (including the unknown vendor case) being on display in Kconfig.

>
>> --- a/xen/arch/x86/Kconfig.cpu
>> +++ b/xen/arch/x86/Kconfig.cpu
>> @@ -19,4 +19,49 @@ 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"
>> +	depends on 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"
>> +	depends on 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"
>> +	depends on 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
>> +	bool "Support unknown CPUs"
>
> "Unknown CPUs" can be of two kinds: Such of vendors we don't explicitly s=
upport,
> and such of vendors we do explicitly support, but where we aren't aware o=
f the
> particular model. This needs to be unambiguous here, perhaps by it becomi=
ng
> UNKNOWN_CPU_VENDOR (and the prompt changing accordingly).

Right, what I do in this RFC is have compiled-out vendors fall back onto th=
e
unknown vendor path. Because it really is unknown to the binary.

I could call it GENERIC_CPU_VENDOR, or anything else, but the main question
is whether a toggle for this seems acceptable upstream. I don't see obvious
drawbacks.

>
>> --- a/xen/arch/x86/cpu/common.c
>> +++ b/xen/arch/x86/cpu/common.c
>> @@ -118,7 +118,7 @@ static void cf_check default_init(struct cpuinfo_x86=
 * c)
>>  	__clear_bit(X86_FEATURE_SEP, c->x86_capability);
>>  }
>> =20
>> -static const struct cpu_dev __initconst_cf_clobber __used default_cpu =
=3D {
>> +static const struct cpu_dev __initconst_cf_clobber default_cpu =3D {
>
> This change isn't explained in the description. __used here was introduce=
d not
> all this long ago together with __initconst_cf_clobber. Maybe this really=
 was
> a mistake, but if so it's correction should be explained.

It wasn't clear to me why __used was there (I assume it shouldn't have been=
),
but it definitely clashes with the intent of having it gone when UNKNOWN_CP=
U=3Dn.

If __used was misplaced to begin with I'm happy to get rid of it in a separ=
ate
patch. I don't think it warrants a Fixes tag, though.

>
>> @@ -340,7 +340,8 @@ void __init early_cpu_init(bool verbose)
>>  	*(u32 *)&c->x86_vendor_id[8] =3D ecx;
>>  	*(u32 *)&c->x86_vendor_id[4] =3D edx;
>> =20
>> -	c->x86_vendor =3D x86_cpuid_lookup_vendor(ebx, ecx, edx);
>> +	c->x86_vendor =3D x86_cpuid_lookup_vendor(ebx, ecx, edx) &
>> +	                X86_ENABLED_VENDORS;
>
> May I suggest the & to move ...
>
>>  	switch (c->x86_vendor) {
>
> ... here? Yes, you panic() below, but I see no reason to store inaccurate
> data when that's easy to avoid.

That's intentional. Otherwise further checks of c->x86_vendor in other part=
s of
the code may not go through the same branch as the one here.

>
>>  	case X86_VENDOR_INTEL:    intel_unlock_cpuid_leaves(c);
>>  				  actual_cpu =3D intel_cpu_dev;    break;
>> @@ -349,12 +350,14 @@ void __init early_cpu_init(bool verbose)
>>  	case X86_VENDOR_SHANGHAI: actual_cpu =3D shanghai_cpu_dev; break;
>>  	case X86_VENDOR_HYGON:    actual_cpu =3D hygon_cpu_dev;    break;
>>  	default:
>> +		if (verbose || !IS_ENABLED(CONFIG_UNKNOWN_CPU))
>> +			printk(XENLOG_ERR
>> +			       "Unrecognised or unsupported CPU vendor '%.12s'\n",
>> +			       c->x86_vendor_id);
>> +		if (!IS_ENABLED(CONFIG_UNKNOWN_CPU))
>> +			panic("Cannot run in unknown/compiled-out CPU vendor.\n");
>
> The text reads somewhat odd to me, "run in" in particular. Also nit: No f=
ull stop
> please at the end of log messages, except maybe in extraordinary situatio=
ns.

ack. As for the text, might as well be just "Unsupported hardware\n". The p=
rior
printk already gives all relevant information. The particulars on the text =
can
be argued after I send a non-RFC version.

>
> Jan



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 12:37:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 12:37:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173790.1498792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vObFo-0005EE-HI; Thu, 27 Nov 2025 12:37:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173790.1498792; Thu, 27 Nov 2025 12:37:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vObFo-0005E7-Ec; Thu, 27 Nov 2025 12:37:44 +0000
Received: by outflank-mailman (input) for mailman id 1173790;
 Thu, 27 Nov 2025 12:37: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=kuYy=6D=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vObFn-0005Dx-5r
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 12:37: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 dd604d71-cb8d-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 13:37:41 +0100 (CET)
Received: from DS7PR03CA0348.namprd03.prod.outlook.com (2603:10b6:8:55::8) by
 SA1PR12MB7173.namprd12.prod.outlook.com (2603:10b6:806:2b4::5) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9275.15; Thu, 27 Nov 2025 12:37:34 +0000
Received: from DS3PEPF0000C37A.namprd04.prod.outlook.com
 (2603:10b6:8:55:cafe::35) by DS7PR03CA0348.outlook.office365.com
 (2603:10b6:8:55::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.17 via Frontend Transport; Thu,
 27 Nov 2025 12:37:34 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 DS3PEPF0000C37A.mail.protection.outlook.com (10.167.23.4) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.7 via Frontend Transport; Thu, 27 Nov 2025 12:37:33 +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, 27 Nov
 2025 06:37: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: dd604d71-cb8d-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mEtORtXcBq7XV/tlhFsDNTiPss7emu65AizFi53j3mlX9H6RkjVDvzv1AguneEbMRuwqZ7Iw/NLg1ozPq+75Cu4atWPjl2B832axp7ROaJCicEZp3K0GMZx/crrEbilRMTSvgUpXEYqs6dpfyr2VhiXGMFDpxncHs7KqFbMvCkKHpEC4ytTNfrvPl/q6klcVxihjCEiWBhCk5DrkoO6KFtHACjFKQJ15B2drlBvmxJVHnqDwT/4NRBxFQpxYy+eYtUDtDgseHNTn0sSpRLW6n+8GNb5nJYwGnIJLNcACZuLeMuLiEQPKEk+s0vLOpuIL+7goBcP2zBOvn1GfiUgRww==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/VedOeTe5GILVTMPxkq2PryMSPPz6nGhvBcH1jCXBCk=;
 b=TsEwVpdnjCXo53iifPyoO0En+QZ8CpphriPIqsMmagm2gdgqfLzc5noon9C67K3RGkSW3IDRHnlwiqUtXz654JA0RLzeazO9xdB1eoSA0f24vihmfAp/5fCQBHhO5b00tUAtBq2ewQX/JNGtZC2Vow06jWOAf4NHLzRb9LPVF2PXRtd0E5IVSmr5clUzsJU6lUCPaDm1Yi7GzdJ45VcuNaNo11HO2VMoQqN3y/K3n2I4dMojeOg7S4JVOObMZGtl3GtbVCRf42NfjoR+Ber6Tkwtpy1clF8vBDNdjID1LR1dgPAJdX6WvPqs9KLiGMReluFZz/8zfsMgVZ38xkwbuQ==
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=/VedOeTe5GILVTMPxkq2PryMSPPz6nGhvBcH1jCXBCk=;
 b=eJ0TqWZqkrrF5wMEUWwOvOu51BASMYvfi6wPc3FYuY3BV34dsVJhmabTxuGyTQXPYWG7XnCqVhAizqodlt/wGjp6gzJWORUb4L9rsiCvNVSk9GbsR64AsKNOD0/EXyCeHTIBtjEcc+1QBf9HQG/9Jx3pMeplhM5O+bdBwMkd6xc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 27 Nov 2025 13:37:30 +0100
Message-ID: <DEJHDU8GFRN2.DQ8R4SWFRI1V@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>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	<xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH 01/11] x86: Add more granularity to the vendors in
 Kconfig
X-Mailer: aerc 0.20.1
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-2-alejandro.garciavallejo@amd.com>
 <178630e8-7986-4a35-863c-4559779d7390@suse.com>
In-Reply-To: <178630e8-7986-4a35-863c-4559779d7390@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: DS3PEPF0000C37A:EE_|SA1PR12MB7173:EE_
X-MS-Office365-Filtering-Correlation-Id: ea8811d8-c825-42d4-b0be-08de2db1bd2d
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?RjNPZ3MwbExFVS9FbnpFZzl2dUhha2FWTHAzRVQ0MzhJcThMdzBYRkNoK2lO?=
 =?utf-8?B?YmVkdmRCWlduemJXN2dmVE9mZmVZOTBGeHdSWW1iYVZpc0dXejdNc2hSdnVu?=
 =?utf-8?B?eGFhT3NjSEhnNlZLNkhRM0Y5Q1BXWVBkTVNBeFFMNHFtRWlaaXQyZjlNbUNO?=
 =?utf-8?B?eVFBUC9MaHE0eEl3aWtsbzVxcDl6Q0FkWWJmZkQxNk9iV3UydFZnYzJDRDVw?=
 =?utf-8?B?OTIvanNxUEt1eGdTSmZRRk1uV2FnbUhHaU1LbHVkdFB5d3RXQS80K1dFeE9a?=
 =?utf-8?B?ajNkSHpHRnZCOEg4dThVUjM1ZHFsa1ZUZng4QjdJUVdqYTFqdDJ0c29qMW1W?=
 =?utf-8?B?cXZHZmxBdjdtRUtjbWMwN2dGWnd1ZVF5UXhoZFl3Mm92Q3RNK1phTjR2bFdG?=
 =?utf-8?B?dWlwdFlaY1lXUFZraVdJWjgxMHlUbjR6ZUFNVllOVk9GUWNOczZpS081MWh2?=
 =?utf-8?B?d1JNcXpiQmlkUVJ1OEYzWTBsMVViSXBsOGgxNWxhbHBiZlV0bktmOE5NM3Ra?=
 =?utf-8?B?dXhPR3Urd1lRd0cxdWVzayt0V1ExY2JrdW9BaVg3dlhISUFabGtGSHQ3Mnkx?=
 =?utf-8?B?UXdia042ZHJyOW5pOXpHNjNWKzBhQVVDWDRHbkIrNnUwUEMxY2RHZlU2cEgy?=
 =?utf-8?B?RjZ3aHhZOVUrSThrb09ZK1QvSm5uSFFNNXZjdEw1Y0R3eTdOdFRocXdEYWpv?=
 =?utf-8?B?WjUzUTN0enFObXNwTU1xOXRieTRuWjdQWTR5Z0d2U1Jiemt6alB5SThVK0Ru?=
 =?utf-8?B?VFFtUDdtWVhIQ3A0eWlLNk5NN1BOM0wvQkw4UzF6UG1LNWoxVDJGbkIxQ2Yz?=
 =?utf-8?B?Z21IWml4bjloT1owdHdqZkZ5bVRTM3pHYnZSeEhFL0tXRzRDaTFzT1pzL3Bq?=
 =?utf-8?B?ZHlmYXNmSlRxTTllYkdBUEVRQ1cvYys5b2RLeHk1S29WRkd4U1A0NXAxb1pD?=
 =?utf-8?B?ZjB3aG9WL1VyTGViRXdRM1dNaDc3ZnhwYU0zdHVWMG9TeUtya3Z1akN1cE10?=
 =?utf-8?B?NWNpbmsvaExuTzNtWW5zSGZNUDh3NFk2NHN4RG12MUhVV1U0a1dJQmF5cnJk?=
 =?utf-8?B?MThMVytNTUw1N25icnl1RVdxVFRFRElNSE9QdmNyZkJGWGswSW5qSWJmQzN3?=
 =?utf-8?B?YmxCWDduS2xoOU5iRUlpNWtRY2lzU0l1ME5HNGNEaXUxMWNNNXhjU3daZE5O?=
 =?utf-8?B?WW1qeTlmODVOQVJidi9YQzBhek04aTVkWUZvNHlTVkhDZlQycTIyQUpxL2dh?=
 =?utf-8?B?dlg4ZFZWUTVlcnc2aG1UczNnSW93dHFrejBPZWY0cUJhU0o3RG42ZkFyVzRS?=
 =?utf-8?B?V3FKSWRiMGs5Qjd6YTZnNURmSGprNGYzZy83bWk4MXVsaDN0b29UanVTS3gz?=
 =?utf-8?B?NXAzU252S3lPVFBsL1JzemthRFY5bzJlcHltbm1JSXlMaXdxVUtqRE9hTE56?=
 =?utf-8?B?M2JWZ0k1UkErcFllOXBodENDbFFacitYNG9Rd3NaV3JyVytvWC81Ym9uTytG?=
 =?utf-8?B?WVJlOVl2Y0FuSnZYOU9XR09VUndXVUg2ZHdKMmNBbGNhMEl0RmFrdWRCK00v?=
 =?utf-8?B?OU41RHNVbm5pRmlsbWduWXlVNldieTF0YkQ3YWNFUDVwTUc5WnUwOVhTNVRK?=
 =?utf-8?B?MjhsaUxvNWlhMDFmWmlNNjNRN1dPYmZLTlQ0MWNPUEZtK2swMUpTT3NQMWFS?=
 =?utf-8?B?aWZzTTdFemhOTmd1clBkczNQVEhKbW1TVmx0cmJISXNPOXlpbEx6WjAvUmln?=
 =?utf-8?B?MG9IVTY0eW9DVC9Tc2hxNTY5UTZwSUtsaEZVLzFFTGVRTXgvak1FU2VVSHY3?=
 =?utf-8?B?ODg2MzlaZ2kvRHUraDMrUzY4aHZFK0plUVUwL25oWld0VC9Tb3JuVXFId0Vz?=
 =?utf-8?B?NzJ4VWJ0T25SZlRPblNmQXNUS3p5NU9Fc2pKNXlUeHZtcXE4QVRHTDI2SU8r?=
 =?utf-8?B?VUVEc1FWbE9UVzZHdXFyamEvSVJzazFRMEVhY3NkbldnNHBSczJBVmVOS3Ft?=
 =?utf-8?B?ZVlsTmgzNHdJSnZ0czc3RzREWGNDK0QwdGNjdFJlNlZmU3owQkdjUmZPNHMz?=
 =?utf-8?B?RlNvclhUNzJyTGF5ZTU0enpGNi9hS2RqRmZSeENRRUp4QVFNcEh3MUlYVTJR?=
 =?utf-8?Q?PvC8=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 12:37:33.8742
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ea8811d8-c825-42d4-b0be-08de2db1bd2d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF0000C37A.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7173

On Thu Nov 27, 2025 at 10:59 AM CET, Jan Beulich wrote:
> On 26.11.2025 17:44, 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 is allowed.
>>=20
>> In order to allow x86_vendor_is() to fold into constants, expand Kconfig
>> to have the full set of vendors. Adds Hygon, Centaur, Shanghai and the
>> default path.
>
> Oh, one more thing: There's x86_vendor_is() yet, so what it is going to b=
e
> needs at least roughly explaining here.
>
> Jan

Fair enough.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 12:45:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 12:45:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173807.1498801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vObNb-00074n-D7; Thu, 27 Nov 2025 12:45:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173807.1498801; Thu, 27 Nov 2025 12:45:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vObNb-00074g-Af; Thu, 27 Nov 2025 12:45:47 +0000
Received: by outflank-mailman (input) for mailman id 1173807;
 Thu, 27 Nov 2025 12: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=HNz/=6D=arm.com=kevin.brodsky@srs-se1.protection.inumbo.net>)
 id 1vObNa-00074a-K8
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 12:45:46 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id fd1af27c-cb8e-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 13:45: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 11C781477;
 Thu, 27 Nov 2025 04:45:36 -0800 (PST)
Received: from [10.57.43.59] (unknown [10.57.43.59])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id EC00D3F73B;
 Thu, 27 Nov 2025 04: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: fd1af27c-cb8e-11f0-9d18-b5c5bf9af7f9
Message-ID: <0cb512ba-de15-4ba6-a85a-8287ab67fb53@arm.com>
Date: Thu, 27 Nov 2025 13:45:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 08/12] mm: enable lazy_mmu sections to nest
To: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
 Andreas Larsson <andreas@gaisler.com>,
 Andrew Morton <akpm@linux-foundation.org>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>, Borislav Petkov
 <bp@alien8.de>, Catalin Marinas <catalin.marinas@arm.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Dave Hansen <dave.hansen@linux.intel.com>,
 David Hildenbrand <david@redhat.com>, "David S. Miller"
 <davem@davemloft.net>, David Woodhouse <dwmw2@infradead.org>,
 "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
 Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
 Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
 Peter Zijlstra <peterz@infradead.org>,
 "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 Ryan Roberts <ryan.roberts@arm.com>, Suren Baghdasaryan <surenb@google.com>,
 Thomas Gleixner <tglx@linutronix.de>,
 Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
 Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
 Yeoreum Yun <yeoreum.yun@arm.com>, linux-arm-kernel@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
 xen-devel@lists.xenproject.org, x86@kernel.org
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-9-kevin.brodsky@arm.com>
 <4d0eab1a-e1dc-49cf-8640-727c9734233d-agordeev@linux.ibm.com>
From: Kevin Brodsky <kevin.brodsky@arm.com>
Content-Language: en-GB
In-Reply-To: <4d0eab1a-e1dc-49cf-8640-727c9734233d-agordeev@linux.ibm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27/11/2025 13:33, Alexander Gordeev wrote:
> On Mon, Nov 24, 2025 at 01:22:24PM +0000, Kevin Brodsky wrote:
>
> Hi Kevin,
>
> ...
>> +/**
>> + * lazy_mmu_mode_pause() - Pause the lazy MMU mode.
>> + *
>> + * Pauses the lazy MMU mode; if it is currently active, disables it and calls
>> + * arch_leave_lazy_mmu_mode().
>> + *
>> + * Must be paired with a call to lazy_mmu_mode_resume(). Calls to the
>> + * lazy_mmu_mode_* API have no effect until the matching resume() call.
> Sorry if it was discussed already - if yes, I somehow missed it. If I read
> the whole thing correctly enter()/pause() interleaving is not forbidden?

Correct, any call inside pause()/resume() is now allowed (but
effectively ignored). See discussion with Ryan in v4 [1].

[1]
https://lore.kernel.org/all/824bf705-e9d6-4eeb-9532-9059fa56427f@arm.com/

> lazy_mmu_mode_enable()
> 	lazy_mmu_mode_pause()
> 		lazy_mmu_mode_enable()
> 		...
> 		lazy_mmu_mode_disable()
> 	lazy_mmu_mode_resume()
> lazy_mmu_mode_disable()
>
>> + *
>> + * Has no effect if called:
>> + * - While paused (inside another pause()/resume() pair)
>> + * - In interrupt context
>> + */
>>  static inline void lazy_mmu_mode_pause(void)
>>  {
>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>> +
>>  	if (in_interrupt())
>>  		return;
>>  
>> -	arch_leave_lazy_mmu_mode();
>> +	VM_WARN_ON_ONCE(state->pause_count == U8_MAX);
>> +
>> +	if (state->pause_count++ == 0 && state->enable_count > 0)
>> +		arch_leave_lazy_mmu_mode();
>>  }
>>  
>> +/**
>> + * lazy_mmu_mode_pause() - Resume the lazy MMU mode.
>                     resume() ?

Good catch! One copy-paste too many...

- Kevin

>> + *
>> + * Resumes the lazy MMU mode; if it was active at the point where the matching
>> + * call to lazy_mmu_mode_pause() was made, re-enables it and calls
>> + * arch_enter_lazy_mmu_mode().
>> + *
>> + * Must match a call to lazy_mmu_mode_pause().
>> + *
>> + * Has no effect if called:
>> + * - While paused (inside another pause()/resume() pair)
>> + * - In interrupt context
>> + */
>>  static inline void lazy_mmu_mode_resume(void)
>>  {
>> +	struct lazy_mmu_state *state = &current->lazy_mmu_state;
>> +
>>  	if (in_interrupt())
>>  		return;
>>  
>> -	arch_enter_lazy_mmu_mode();
>> +	VM_WARN_ON_ONCE(state->pause_count == 0);
>> +
>> +	if (--state->pause_count == 0 && state->enable_count > 0)
>> +		arch_enter_lazy_mmu_mode();
>>  }
> ...
> Thanks!


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 13:15:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 13:15:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173816.1498812 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vObqW-0002rw-LN; Thu, 27 Nov 2025 13:15:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173816.1498812; Thu, 27 Nov 2025 13:15:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vObqW-0002rp-HS; Thu, 27 Nov 2025 13:15:40 +0000
Received: by outflank-mailman (input) for mailman id 1173816;
 Thu, 27 Nov 2025 13:15: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=kuYy=6D=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vObqV-0002rj-Ht
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 13:15:39 +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 26e6c34c-cb93-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 14:15:33 +0100 (CET)
Received: from DS7PR06CA0042.namprd06.prod.outlook.com (2603:10b6:8:54::23) by
 DS7PR12MB5909.namprd12.prod.outlook.com (2603:10b6:8:7a::10) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.14; Thu, 27 Nov 2025 13:15:27 +0000
Received: from DS1PEPF0001709C.namprd05.prod.outlook.com
 (2603:10b6:8:54:cafe::8b) by DS7PR06CA0042.outlook.office365.com
 (2603:10b6:8:54::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.12 via Frontend Transport; Thu,
 27 Nov 2025 13:15:13 +0000
Received: from satlexmb07.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.9366.7 via Frontend Transport; Thu, 27 Nov 2025 13:15: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; Thu, 27 Nov
 2025 07:15: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: 26e6c34c-cb93-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bFwkflESS4JadDM6ABQFXJ4rr1I9kDY9/v5PkAJkMtYkRgBmmPiylm9DKFLCuQTHHtVL479Q1MASKPiSaHmcCJeTupNNKX/3O1Ey8zd2OuEti5hviduCGwJ8DUfgeTc68IEUOX8DeQUl6RglBeUBC0Aw1VAgifotVbBNWB3Seo48M+cO7Gx9HO/pdGqmSz0lgF2JXr+ZG/fDnn7Gh4eVP2KaYQRUMW4JQRtwVXMdZpvbduqAhtiWQxARjtGy7YnTNMWJsHtBzWpXPAcq4gXojH7447VUgZ/L6xE4wIEU2AhtatL1UcOPHMkufRjLo7fvi3daKtMNZINuSHwj3SkTfg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wEapHTWYhu3Uj1n2dDG4GB1BobNXQAIYymW86qvANkE=;
 b=AW9BsZnJj7WGnvz0adEH5IZSf8/Fsf/qcjHTSGwa0L7yeFpTyWp5AiCAw9T0gyFRfmY6zE54maVYib6vs5sBCpCTA7/l5CQlo1mTct6W51KgJlvq6uCWsTD/KqPql6vcyl044MhLYLcQfcoGeI1lIHqsgl8iAQxST9eCDVqiLrI8/fh2yN53IkNCZ5u+Ygor3/j0FlfKE+CANJPUQbc8Hi+Q2PPWbXYDKBOn1XQeXX4jyDGN9AoB1HS1t9XoJO7X7u3CmyJPx6i80V+KQqQDVLP51bdXrfX+6B30xpst1se1f4OdqmyjCdpH7d7wmkd08sOzrpQOLcVBYN35hRwmJA==
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=wEapHTWYhu3Uj1n2dDG4GB1BobNXQAIYymW86qvANkE=;
 b=OBFdfZseUR5k/wGcaTud2IxskbG/dgkyG6Jw0ZVjX0CJl927d/ssgcsETV0TtwOmA1xtwZemWLxK6ZyKrqTzx97BBsDtqd1owC9nqgtT0Zc1jHBDlIClXf5BZqYtkwggGV4kSjV/2clA6h5Dzko/osL/AkgcP2A63KlCR5afbWM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 27 Nov 2025 14:15:22 +0100
Message-ID: <DEJI6U37EMDI.1F7QHW1I7WV76@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>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	<xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH 03/11] x86: Add x86_vendor_is() by itself before
 using it
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
X-Mailer: aerc 0.20.1
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-4-alejandro.garciavallejo@amd.com>
 <d71b6b55-6745-4ba4-9a4f-d5e7b08f0aec@suse.com>
In-Reply-To: <d71b6b55-6745-4ba4-9a4f-d5e7b08f0aec@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: DS1PEPF0001709C:EE_|DS7PR12MB5909:EE_
X-MS-Office365-Filtering-Correlation-Id: a88b88fe-ffa6-4382-25e0-08de2db70846
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TjJ6NkpZdUFWUjB4SjNRdkxCMjFuVnNXQ3d3bUFvek52bGwvNTJ0TGhJTnMx?=
 =?utf-8?B?eUN1NUs3V2s4V2ZlRnJJcjIyaG9ZbkV3K2ZmejIvZG1vS2diRjdlWDJYTlFx?=
 =?utf-8?B?UEh6UTJ3K3JhdEpTYzRDa2FrTHQ1dHluWHl3d29KdnRCM3ZIb05EdGJJOTl6?=
 =?utf-8?B?WWhrM3JQSzRmdGpNZmZPV3FMYlBWVXRtUHowcGNLL0FmL2dxeGhKQjBOZzRj?=
 =?utf-8?B?NnF3VnVPeHVYVFJDTVp1clZjaHRScHVCOHJIVS9Wa3dsdmhreXdSNC9aQy95?=
 =?utf-8?B?c0ptSlhVMndNWXNhU1Z4VW1qb0xYRmc4OEdCRkhTdElTMU1BbndTRnEvNC93?=
 =?utf-8?B?S3J0VitOYU05SmN0Yytnd29nZ0xyMEFyRFRoZVFoWm1YTXpPQnhmK3RhU0ty?=
 =?utf-8?B?ODF4MEhqZ2d6cGVEUFg4a1N2NTJyMm5obFZZZGdzZWFNMUVndk9zL2hIamM1?=
 =?utf-8?B?bVJDa05rYXdFNkQrSm8vVm03VkRyWFJRNmljVGVXZDVZekpsamRnemlEQllR?=
 =?utf-8?B?SkhTT1JvU1JGRWxGTExtQVZ6VkVqaE1JWUxJWHh1RUw0SERFaWcvdHhFTUF3?=
 =?utf-8?B?akxKTUxLVXRWcWV3OWJIQVlIU0Z6UVJzcHZDNk9JQWxNV3RzR0RqajhQSTVG?=
 =?utf-8?B?ZW43ZGJVRGNHY0xDSmMwTUVPSEVyYTU3OVIvMmV3a2djYWFCa2cxcW5DTGEz?=
 =?utf-8?B?ODk5a1ZuUndlT3RGYUxQUmNrT2E2dXA0bjBZSVY5ZGhHMEFVbEN0eUo0WG1U?=
 =?utf-8?B?QWY1aWJXQ2hQaE0wL0doblppOTN0NHplNC93TkV4Q2FSZEdac3B4RmxuNU1j?=
 =?utf-8?B?N2xoL0ZkMnRrMCtYR2dMMlVySi9yOVBhRmE5akhSRitkbm0zMVo4WnpER3Ja?=
 =?utf-8?B?OVkxeVZwbmgwWHhjWmU0WHNXUXZhYUpkR3A5MUhLQ3diQjJxVERta3laZlhN?=
 =?utf-8?B?ZlQxTitlNjcxNmdEVWpMMmZQT1ErNmNldU9mOFMzNHFqOHh4WUZyYTdNcDMx?=
 =?utf-8?B?NjNQMjNUTEVJYUNlVnJ5QXRiNit1ZkxCbHBFRUplK1MzbTVNSXhkYy9xdysv?=
 =?utf-8?B?SmZDckhNYysvVy9WNXRuV2tyZlgwRDNyZGNleHBtSUJvaTJhU2hkZlVBWGZ5?=
 =?utf-8?B?MVlicTNjUUpCaWljTEZTNnArRVIvcC9Oc2ZvLzdwNk5vdXR0UzI0UmRoUEJ6?=
 =?utf-8?B?aUJhRHNmWmMrcmtjTi9UVEdsKzVIT2RyS2w1Y1ErUTNXWk9jZ0hRdUROdUd6?=
 =?utf-8?B?TjlEajFEc1B4N0NGRHRpamRlK3ljM2ttVEdVaHhmeit3VWR3dlNFbUJwcndL?=
 =?utf-8?B?cHBHTEw5VlRkYWZYSFVGZENkVzFtNDBKb0p3WHJXK1pGZEFLVnZ5eXJxUWFV?=
 =?utf-8?B?cEZJalduV1UwamlBUnp4bUdaaSt1QkVkQnExOHhWQnpwOUlYSHhCcUZYdDUr?=
 =?utf-8?B?RFpYVUlpZWZTV1FyVlh6bXZxQzdhMWlDSm02YVB4QjRvakxQODMwMElMOWli?=
 =?utf-8?B?aENNbklBVFdGZUIxMnFNaGFPdHBSQ3FqN0p2ckV4YUJscXJrM2VQSHJ5Z3Js?=
 =?utf-8?B?b0J0UWJkdkZDcXRnbjQyMFhSUGFuaDRKT2V6LytaU0tIdGcrcnZGVTFmd2Rz?=
 =?utf-8?B?SExyb0xpTmx1eGtDQi9Bdm05WSsyRExycWRneW1HT21UNWQzR3MyWEI2U29a?=
 =?utf-8?B?OTh0M2lWeiswaDB3YkRoam5sTFZaOXhUZzdxQ3hRUENGVGdvRGhEZXlORlhN?=
 =?utf-8?B?ZXJMaDhyNnQvN1NyTC9XS0kwZ2hpZUJBRWQzWWRuL0IzT3JnRkhkZnVPUStQ?=
 =?utf-8?B?bUJFWGxjenNlZjVKR1BGc1JOTEJuM2U4NFZmOTVMQzNwOHNjU3JwSmZwZTVH?=
 =?utf-8?B?VlVXNWJGUmVwQlkvSTBtK2I4TUJNckExdWZsRWNZbndRa0dPZW1RUE1JZnAw?=
 =?utf-8?B?ZlJqZU1lSWphSVV4QU9lVjh4dVd1MFBkd3ZWY3JpOStUMGF5WUNrYjJ1NUJv?=
 =?utf-8?B?bXJLVWxYTnFSN2p4TUY1clZKSnlwTkpUaTFiZjVYV1lSRStzMFk4ZzVKU1Zi?=
 =?utf-8?B?RC9nazlhMjRZRzk4bnkxajlvV2J0ZERRQWZNb3RRTlVyY1lLN1d5RGdFU2pD?=
 =?utf-8?Q?9bHU=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 13:15:27.3459
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a88b88fe-ffa6-4382-25e0-08de2db70846
X-MS-Exchange-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:
	DS1PEPF0001709C.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5909

Hi,

On Thu Nov 27, 2025 at 11:46 AM CET, Jan Beulich wrote:
> On 26.11.2025 17:44, Alejandro Vallejo wrote:
>> This function is meant to replace all instances of the following
>> patterns in CPU policies and boot_cpu_data:
>>=20
>>   - x->x86_vendor =3D=3D X86_VENDOR_FOO
>>   - x->x86_vendor !=3D X86_VENDOR_FOO
>>   - x->x86_vendor & (X86_VENDOR_FOO | X86_VENDOR_BAR)
>>=20
>> The secret sauce is that all branches inside the helper resolve at
>> compile time, so for the all-vendors-compiled-in case the function
>> resolves to equivalent code as that without the helper and you get
>> progressively more aggressive DCE as you disable vendors. The function
>> folds into a constant once you remove the fallback CPU vendor setting.
>
> Here and below in the comment, "fallback CPU vendor" wants clarifying. I
> don't view it as obvious that what's presently named UNKNOWN_CPU is that
> "fallback" (as imo that really isn't any kind of fallback, but merely a
> placeholder).

I'll rename all fallback references in commits/comments to "generic vendor"=
.
Though do note there's a fallback behaviour. It's introduced in patch 1 due
to the ANDing of the x86_vendor with the mask of compiled-in vendors.

We can trivially get rid of this behaviour, but I assumed booting in untune=
d
mode is preferable to panicking. And if you _do_ care about panicking when =
you
don't know about a CPU you're better off setting UNKNOWN_CPU=3Dn and gettin=
g that
exact behaviour.

>
>> While at this, move an include out of place so they sort alphabetically.
>
> I'd rather suggest to simply ...
>
>> --- a/xen/arch/x86/include/asm/cpuid.h
>> +++ b/xen/arch/x86/include/asm/cpuid.h
>> @@ -2,10 +2,12 @@
>>  #define __X86_CPUID_H__
>> =20
>>  #include <asm/cpufeatureset.h>
>> +#include <asm/x86-vendors.h>
>> =20
>> -#include <xen/types.h>
>> +#include <xen/compiler.h>
>>  #include <xen/kernel.h>
>>  #include <xen/percpu.h>
>> +#include <xen/types.h>
>
> ... drop it. xen/kernel.h, for example, already gets it for you anyway.

Good call.

>
>> @@ -56,6 +58,51 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf,
>>       (IS_ENABLED(CONFIG_SHANGHAI) ? X86_VENDOR_SHANGHAI : 0) | \
>>       (IS_ENABLED(CONFIG_HYGON)    ? X86_VENDOR_HYGON    : 0))
>> =20
>> +/*
>> + * When compiling Xen for a single vendor with no fallback vendor there=
's no
>> + * need no check the candidate. `vendor` is always a compile-time const=
ant,
>> + * which means this all can fold into a constant boolean.
>
> DYM "`vendor` is always supposed to be a compile-time constant, ..." ?

Yes. We could guard against it not being so by having an initial branch whe=
re:

if ( !__builtin_constant_p(vendor) )
    return candidate & filtered_vendor;
>
>> + * A runtime check at the time of CPUID probing guarantees we never run=
 on
>> + * wrong hardware and another check when loading CPU policies guarantee=
s we
>> + * never run policies for a vendor in another vendor's silicon.
>> + *
>> + * By the same token, the same folding can happen when no vendor is com=
piled
>> + * in and the fallback path is present.
>> + */
>> +static always_inline bool x86_vendor_is(uint8_t candidate, uint8_t vend=
or)
>
> I fear the comment, no matter that it's pretty large already, doesn't mak=
e
> clear how this function is to be used, i.e. how for this being an "is"
> predicate the two arguments should be chosen. My typical expectation woul=
d be
> for "is" predicates to apply to a single property, with other parameters =
(if
> any) only being auxiliary ones. Maybe it would already help if the first
> parameter wasn't named "candidate" but e.g. "actual" (from looking at jus=
t
> the next patch). Or maybe (depending on the number of possible different
> inputs for the first parameter) there want to be a few wrappers, so the
> "single property" aspect would be achieved at use sites.
>
> Then I see no reason for the parameters to be other than unsigned int. (S=
ame
> for the local variable then, obviously.)

I could also call it x86_vendor_in(), to mean it's a set membership check,
leaving its prototype as:

bool x86_vendor_in(unsigned int actual, unsigned int bitmap);

bitmap is a special kind because literal 0 has a special meaning (unknown).=
 So

I'd expect x86_vendor_in(X86_VENDOR_UNKNOWN, X86_VENDOR_UNKNOWN) to return =
true
when UNKNOWN_CPU=3Dy. One way to alleviate complexity would be to promote t=
he
unknown case to a first-class bit. It's not like it's zero for any good rea=
son.

As for the what goes in the first parameter, it's invariably the x86_vendor
field of cpuinfo_x86 (for boot_cpu_data), or of any cpu_policy.

This is meant to replace checks on vendors, so a natural (and universally u=
sed)
pattern across the codebase is to have a runtime variable checked against a
constant. Here's a longer list of patterns and expected transformations.

  from: cp->x86_vendor =3D=3D X86_VENDOR_AMD
    to: x86_vendor_is(c->x86_vendor, X86_VENDOR_AMD)

  from: cp->x86_vendor !=3D X86_VENDOR_AMD
    to: !x86_vendor_is(c->x86_vendor, X86_VENDOR_AMD)

  from: cp->x86_vendor & X86_VENDOR_AMD
    to: x86_vendor_is(c->x86_vendor, X86_VENDOR_AMD)

  from: cp->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)
    to: x86_vendor_is(c->x86_vendor, X86_VENDOR_AMD | X86_VENDOR_HYGON)

  from: !(cp->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON))
    to: !x86_vendor_is(cp->x86_vendor, X86_VENDOR_AMD | X86_VENDOR_HYGON)

  from: cp->x86_vendor =3D=3D X86_VENDOR_UNKNOWN
    to: x86_vendor_is(cp->x86_vendor, X86_VENDOR_UNKNOWN)

And switch statements converted to if-elseif chains.

With the second argument alaways being a constant there's j


> I'm further uncertain this is a good place for the function. In the old d=
ays
> it may have been, but cpuid.[ch] now are only about guest exposure of CPU=
ID,

This function would be used for both cpuinfo_x86 and cpu policies. Either h=
ere
or cpufeature.h works. I used to have it in x86-vendors.h, but that's expos=
ed
to the toolstack and nothing would come out of doing that.

> when this predicate is intended to be used for both host and guest. (As I
> realize only now, this also applies to the addition patch 1 does.) One
> might think processor.h might be a good home, but we're actually trying t=
o
> slim that one down. So one of cpufeature.h and cpufeatures.h, I guess. (M=
aybe
> other x86 maintainers also have thoughts here.)
>
>> +{
>> +    uint8_t filtered_vendor =3D vendor & X86_ENABLED_VENDORS;
>> +
>> +    if ( vendor =3D=3D X86_VENDOR_UNKNOWN )
>> +    {
>> +        if ( IS_ENABLED(CONFIG_UNKNOWN_CPU) )
>> +            /* no-vendor optimisation */
>
> Nit: Comment style (also again below).
>
>> +            return X86_ENABLED_VENDORS ? vendor =3D=3D candidate : true=
;
>
> With the surrounding if() this effectively (and more explicitly) is
>
>             return X86_ENABLED_VENDORS ? candidate =3D=3D X86_VENDOR_UNKN=
OWN : true;

Sure.

>
> First: Would one ever pass X86_VENDOR_UNKNOWN for "vendor"? The next patc=
h,
> for example, specifically doesn't.

I don't think so. There's definitely not any existing case atm. Still, I th=
ink
it's better to preserve the invariant that the follwing transformation:

  from: cp->x86_vendor =3D=3D X86_VENDOR_X
    to: x86_vendor_is(cp->x86_vendor, X86_VENDOR_X)

holds for every vendor variant in the "everything compiled-in" case.

> And then why not shorter as
>             return !X86_ENABLED_VENDORS || candidate =3D=3D X86_VENDOR_UN=
KNOWN;

Because I didn't think of it. I like your version better.

>
> Which raises the next question: Should we even allow a hypervisor to be b=
uilt
> with X86_ENABLED_VENDORS =3D=3D 0?

That's the most extreme case of "should we boot on a CPU known CPU vendor t=
hat=20
has been compiled out?", the current code in the RFC uses the unknown vendo=
r
as fallback. We could also panic. We could be trying to exercise the
"no assumptions about the vendor" paths.

It's a policy decision for you (x86 mantainers) to take. I personally think=
 the
default path is silly in this day and age and we could get rid of it entire=
ly.
Without it X86_ENABLED_VENDORS=3D0 would be indeed illegal. On that topic..=
.

> Plus, question more on patch 1, what's the (useful) difference between a =
build with all vendors set to N and
> (a) UNKNOWN_CPU=3Dn vs (b) UNKNOWN_CPU=3Dy? With all vendor support expli=
citly
> turned off, all CPUs are going to be "unknown".

... (a) causes a panic because all vendor go on the unknown path that leads=
 to
such panic, (b) has them run as if they belonged to a new unknown vendor FO=
OBAR.

You could do (b) to exercise the paths on unknown vendors. Or we could get =
rid
of it altogether and panic on compiled-out vendors. Kconfig is a middle-gro=
und
where the default CPU path serves a not-so-theoretical purpose.

>
>> +
>> +        /* unknown-vendor-elimination optimisation */
>> +        return false;
>> +    }
>> +
>> +    /* single-vendor optimisation */
>> +    if ( !IS_ENABLED(CONFIG_UNKNOWN_CPU) &&
>> +         (ISOLATE_LSB(X86_ENABLED_VENDORS) =3D=3D X86_ENABLED_VENDORS) =
)
>> +        return filtered_vendor =3D=3D X86_ENABLED_VENDORS;
>> +
>> +    /* compiled-out-vendor-elimination optimisation */
>> +    if ( !filtered_vendor )
>> +        return false;
>> +
>> +    /*
>> +     * When checking against a single vendor, perform an equality check=
, as
>> +     * it yields (marginally) better codegen
>> +     */
>> +    if ( ISOLATE_LSB(filtered_vendor) =3D=3D filtered_vendor )
>
> So one may pass a combination of multiple vendors for "vendor"? Is so, wh=
y
> is the parameter name singular?

Yes, it's a bitmap. Parameter could be in fact "bitmap", except the 0 case =
is
a special.

>
>> +        return filtered_vendor =3D=3D candidate ;
>
> Nit: Stray blank.

Oops.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 13:19:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 13:19:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173824.1498823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vObtu-0003PZ-40; Thu, 27 Nov 2025 13:19:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173824.1498823; Thu, 27 Nov 2025 13:19:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vObtt-0003PS-W4; Thu, 27 Nov 2025 13:19:09 +0000
Received: by outflank-mailman (input) for mailman id 1173824;
 Thu, 27 Nov 2025 13:19: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=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vObts-0003PK-IO
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 13:19:08 +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 a6e8ac29-cb93-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 14:19:07 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-477b1cc8fb4so4749415e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 05:19: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-4790addeeaasm96721755e9.7.2025.11.27.05.19.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 05:19: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: a6e8ac29-cb93-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764249546; x=1764854346; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Z5cM+IgudC/3xlBNLcuYS+mm9MNxugoCsz3rE2mmUEY=;
        b=BE8//yhYFhT1zKRKyvpgvyYO7HV06LnOt3HyNiELPx+/PKt37/PMKSR5KIJ1vEb2Yk
         gKehJ0poE8JDeEOzKx7Xc8qT6qE453uBbw/JltuHhT0YNtA6DrNIRggsrIKIs+yFr2R/
         YKGDiHPKwT+ovuXTiAtkD5Aup0SHTiRD233N3q5rDAaiMy6WBvq5M+4CwdXkytBMeAfD
         13mCANWtziNgJ7e3EeJTSCD1CduBZ3Uq/GK5hR8O+OvdqFSyjVn9jOSZbmnBIR1j9zH+
         xENQOZFg6DzGKPDwlVEyYE438qXaAC0cM0eo/7EK33AKkZAFalOgzxfwlPqllnghWTKP
         woSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764249546; x=1764854346;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Z5cM+IgudC/3xlBNLcuYS+mm9MNxugoCsz3rE2mmUEY=;
        b=Swusqa80HFGCROK9H9mODYhIUuPVTpECQsXottSRSybccZR2UUG+d1obzlGXiWrjdY
         f7VDYHwshq7BIp6u6rPEaAFhb72HRS5dY0/vH+dkQ/bNbhsVSzk7lhbvEjpnVuj50fW0
         OlqOJ7p+9QrDd7grKRb3irBVuH2Jgj3nn1ZtxRtayAJxSOobAO5Gy1IK0P1ERDHwWnna
         N8kvU/LRZXl6bg4EDpTVPr7nZ0BUJN9g0Tau9k+15QJXUC6bSx7pR7BSEyHQSBZS/YVj
         YjAkCRugwvQXTXSiyCcVNr8fzD8EGBoRXKteD8idRqHXA/oj5TsFwB8pLU3Po+qAi+lu
         CgsA==
X-Forwarded-Encrypted: i=1; AJvYcCVAn9A3KB+ZNyd2m7ShzuyR21RJG5ohEYYzX3L1jJzhKwLHalXlWdkMy2F/aXdLuwxdUSj+uVtG8kM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwhaCaJKx2nYezgxOtMnqUKd9QuHtZ3MEMvbeprcERvf6BIJ0rs
	cY9SxO97oTsIIfkwvEnlj7TBx2joRmsObrI1lFzIhSjPzQyaxFg1GxvABPGxoN+p2Q==
X-Gm-Gg: ASbGncsdu7AXsoEpmQAAWQNhnHzqvTktEw1wNl2unHceRwtU1DRid+t7Rf+tCAQGX4c
	JGezH6VKHIQJqTauW5ouet9GQqJHNKss2tKJ74TRLFbjfamNccd/OAUfNKHeldKGQJn6V+4/hmy
	tQ/BtbG3TiXcapAd2UZGU0yh7Ypi+G3zX3ya8C/8ugXPfhvthiMgdOltSS+iSqsUUTv+GbVW+Ux
	tXrTU8oUNBW1J+Xuz+CkJ4ffzX333SKfO5/nAdZxjWvg1nWaAcBClyc4XvhG+AMhp/2MxFIZC4g
	/LbczV3ShSX3M/3gDY9kVQRI5qalxL6k26YlLxpHbhodKisQV9bikYyxXYsFJ+vileAm6H7mkv2
	vg9MTDCBWEXxCNpfD77v+ZTA53uTM90318iMV3v+dtOlTX4AUVRAL1PxmB7x4bmHT4BNw+6jMWD
	+a7UDOZmeJEtxebF9+5O1bytUee+UqcLPhYHBwSDADs+korsDn1F6v1cl8rN5TY/wTjPLPeOhhS
	xE=
X-Google-Smtp-Source: AGHT+IHyXna879N6HOKdV1CyCJ13A4nRpjVyloSZq2PpHkt3uEhyDcqwG/bCSnCsMwSQtL9ZqI+oIg==
X-Received: by 2002:a05:600c:354e:b0:470:fe3c:a3b7 with SMTP id 5b1f17b1804b1-47904ac4380mr99432295e9.5.1764249546464;
        Thu, 27 Nov 2025 05:19:06 -0800 (PST)
Message-ID: <7cbca09d-919f-490a-9b68-26a466c84831@suse.com>
Date: Thu, 27 Nov 2025 14:19:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 01/11] 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>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-2-alejandro.garciavallejo@amd.com>
 <868f28fe-f2dd-469d-a0cf-111885184dfe@suse.com>
 <DEJHD0L6BMLD.1IWHHEXGAHH4I@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: <DEJHD0L6BMLD.1IWHHEXGAHH4I@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.11.2025 13:36, Alejandro Vallejo wrote:
> On Thu Nov 27, 2025 at 10:43 AM CET, Jan Beulich wrote:
>> On 26.11.2025 17:44, Alejandro Vallejo wrote:
>>> --- a/xen/arch/x86/Kconfig.cpu
>>> +++ b/xen/arch/x86/Kconfig.cpu
>>> @@ -19,4 +19,49 @@ 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"
>>> +	depends on 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"
>>> +	depends on 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"
>>> +	depends on 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
>>> +	bool "Support unknown CPUs"
>>
>> "Unknown CPUs" can be of two kinds: Such of vendors we don't explicitly support,
>> and such of vendors we do explicitly support, but where we aren't aware of the
>> particular model. This needs to be unambiguous here, perhaps by it becoming
>> UNKNOWN_CPU_VENDOR (and the prompt changing accordingly).
> 
> Right, what I do in this RFC is have compiled-out vendors fall back onto the
> unknown vendor path. Because it really is unknown to the binary.
> 
> I could call it GENERIC_CPU_VENDOR, or anything else, but the main question
> is whether a toggle for this seems acceptable upstream. I don't see obvious
> drawbacks.

I'd recommend against "generic" or anything alike, as it'll rather suggest any
vendor's CPU will work reasonably. I'm fine with "unknown", just that the nature
of the unknown-ness needs making unambiguous.

>>> --- a/xen/arch/x86/cpu/common.c
>>> +++ b/xen/arch/x86/cpu/common.c
>>> @@ -118,7 +118,7 @@ static void cf_check default_init(struct cpuinfo_x86 * c)
>>>  	__clear_bit(X86_FEATURE_SEP, c->x86_capability);
>>>  }
>>>  
>>> -static const struct cpu_dev __initconst_cf_clobber __used default_cpu = {
>>> +static const struct cpu_dev __initconst_cf_clobber default_cpu = {
>>
>> This change isn't explained in the description. __used here was introduced not
>> all this long ago together with __initconst_cf_clobber. Maybe this really was
>> a mistake, but if so it's correction should be explained.
> 
> It wasn't clear to me why __used was there (I assume it shouldn't have been),
> but it definitely clashes with the intent of having it gone when UNKNOWN_CPU=n.
> 
> If __used was misplaced to begin with I'm happy to get rid of it in a separate
> patch. I don't think it warrants a Fixes tag, though.

I can only vaguely reconstruct that it may have been put there so the
.init.rodata.cf_clobber entry wouldn't go away. But as long as the compiler
also eliminates the function pointed at, that would be of no concern.

>>> @@ -340,7 +340,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);
>>> +	c->x86_vendor = x86_cpuid_lookup_vendor(ebx, ecx, edx) &
>>> +	                X86_ENABLED_VENDORS;
>>
>> May I suggest the & to move ...
>>
>>>  	switch (c->x86_vendor) {
>>
>> ... here? Yes, you panic() below, but I see no reason to store inaccurate
>> data when that's easy to avoid.
> 
> That's intentional. Otherwise further checks of c->x86_vendor in other parts of
> the code may not go through the same branch as the one here.

Hmm. I would kind of expect x86_vendor_is() to be capable of dealing with
that.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 13:35:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 13:35:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173839.1498831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOc9w-0006S7-FT; Thu, 27 Nov 2025 13:35:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173839.1498831; Thu, 27 Nov 2025 13:35:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOc9w-0006S0-Co; Thu, 27 Nov 2025 13:35:44 +0000
Received: by outflank-mailman (input) for mailman id 1173839;
 Thu, 27 Nov 2025 13:35:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kuYy=6D=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vOc9u-0006Rt-CS
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 13:35:42 +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 f5c5897e-cb95-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 14:35:39 +0100 (CET)
Received: from PH8PR07CA0045.namprd07.prod.outlook.com (2603:10b6:510:2cf::14)
 by MW4PR12MB7013.namprd12.prod.outlook.com (2603:10b6:303:218::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.11; Thu, 27 Nov
 2025 13:35:28 +0000
Received: from SJ1PEPF000023D8.namprd21.prod.outlook.com
 (2603:10b6:510:2cf:cafe::77) by PH8PR07CA0045.outlook.office365.com
 (2603:10b6:510:2cf::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.14 via Frontend Transport; Thu,
 27 Nov 2025 13:35:26 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF000023D8.mail.protection.outlook.com (10.167.244.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.0 via Frontend Transport; Thu, 27 Nov 2025 13:35:28 +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, 27 Nov
 2025 07: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: f5c5897e-cb95-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LU4sJwxxoWWaDaTnJATHK6LLknTbOBJMA/n48XAYuk8dRSkggCismerQL9Me7H2tVKbBrVuDfb8e2TxGTlvthbNMMneVmPic/QyMjfE1pmqaIkrwbWzL7dfRuzfy2n6zU+yG0GHR2vylotDdJdzf/AGIU7GNRApNWz8063/gOiPhnkc/FPMbHmOwk8/Qq7fK9XU2citt1+DzY40EO1p8YpHCFHXhnxGvANZOR11EoNN16wFaaPHah7lq8Qo/wgoI7TdxAOzCwjgIVUj0e4HRlE69HtT/eAn7lTnt0OA4f0cfN7Ag/kOWErQV0gYVDv59RoMFndnVVdlzxwnhlhK0ww==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bX+Ra5hiAHCJPWIRL2zEekF2mv6h3m84b9MltReKLes=;
 b=sei7a7wgQDQ6MqabvRtSIFOyMyprSSXDZ4U6+Ze4Z1BRFUwCLFbi+YtiNtHh6r1HfxijIAES4qoPMB1qJyYMGM2MPo1xNJX2Ml+i/iCCpenoM1uUP1K+u+pnWNHruvnU26MAlMsyPlqHzSAXzasb1Zk0eAw95r0EBf/cnN5btmV8U4APrA8xqflaH2oT7AzkWB7WqkZrvMY9BmX2zV6UwlnklwdJra9ggIHHVWBCFAJQBSnRxikpgfcti3vT1CbL4HB+szSEob86drRlLClPqKvf3IS7lmCuAnVSzYv+TnyPM6BLZPFSJ24xI/4ywZP80OhIt8utFXXFVVqpQ9YqVQ==
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=bX+Ra5hiAHCJPWIRL2zEekF2mv6h3m84b9MltReKLes=;
 b=puGlwJnxL1fRLF1aKEJRunWl4mlM+NFVLuOQs/Rl8msoUVRmR2GY8pboq9ruznO+6s/0cQ+EJ1GVnKyeUkjNqQcRUL/aTXiTPCiQrpYOCIWjI5Ml58oEsJFJjRl87GAoTkGMhid3+qL2rucRJTtgOWGbpMHmSVBHrOJ7RzKGG4M=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 27 Nov 2025 14:35:19 +0100
Message-ID: <DEJIM3SR50B4.2EEY2CX5KDM9M@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>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	<xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH 04/11] x86: Refactor early vendor lookup code to use
 x86_vendor_is()
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
X-Mailer: aerc 0.20.1
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-5-alejandro.garciavallejo@amd.com>
 <ad217ce2-0b3c-4746-b32e-3b3bc7c9cc51@suse.com>
In-Reply-To: <ad217ce2-0b3c-4746-b32e-3b3bc7c9cc51@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: SJ1PEPF000023D8:EE_|MW4PR12MB7013:EE_
X-MS-Office365-Filtering-Correlation-Id: 586a6bd6-0764-49ab-5e79-08de2db9d42f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NXRqWmZtTTMza09QbjBkNk1FQ0Q2QXVwQW11eXBMdjF2VDdqY0RYdHRvQ2JY?=
 =?utf-8?B?QXQzTVY1K01ja05BVXRBd081NVh5U3IxSEs1Z3RzOGQ1WmhzTHd5andKMjZU?=
 =?utf-8?B?Q1NRUGQzNEZuSmlwMzhIbU9ZaEZOS2UrU0VFTy9qc0xNUWhnS0xMZHFiT2I0?=
 =?utf-8?B?Q0FVdGlWYVVWMkpBemZSbU5hTHF0N2QxcEdHQXpRTGhYY3gyRE56elRVLy9o?=
 =?utf-8?B?VEozbWRlQlNORVgyem1vTmJoL1ZqZVJ1aTZRZW9oQXRHUitGdjFYdVJWb2dU?=
 =?utf-8?B?VTZ4L0JyK05VdG5hNlZlV1dId25pcGUxRWEreElFV0ZMMDlyVnloV082YmI4?=
 =?utf-8?B?cDArL0FGTXBJSktmWTJRemZPZm5YRnl4cHRiVklyUE8wZllKTFhkY3FPZEVs?=
 =?utf-8?B?S29KM2xJTHhhc2hzSTJoVVZyVTVXS1pmMkl3VlEwU2xZN1pxL0FTRWNCRnlu?=
 =?utf-8?B?UktNRXRuTW4zR0c1aGk3amRkNG9uOUJNYVJzd3hYK3FuOWNIakg4c3RwR2o2?=
 =?utf-8?B?cWNMSytNTVRLWXlQaDlkRFJWOXRYRU1jRTlDUHdBQ0RKMGU5a1F2VitXY1Jz?=
 =?utf-8?B?ZXZKZnJvdW9qcmxjUTJHV010WlZYZUEySDlmek1iZzVrNTlpZ2NiVGcyalFl?=
 =?utf-8?B?bWRvMDhaYThjOTdMVmxHS25oSFV0eFF2N0xhaldyR2FCWWFXOTdaM0o2Sk9O?=
 =?utf-8?B?UmcvWDRKRGJnRUZXNWxaWkRNVTdoc1dQYUF5N291OEhKakNicy9lY1l6NG4w?=
 =?utf-8?B?cDV1b0ZQeWRjU1FGZ0p3bDJqWmRreEh2UzdaT2lXejIwanJqUzlRSkswdjJn?=
 =?utf-8?B?V3diRmVQWDZrVFdUcGNWWEZPSVdLb0k0azMrNjVKSkJNWWRrZGxic3JCUk5t?=
 =?utf-8?B?V1ZLNTVleUNtTW5pWTRqb0JwQTRsdncxMGVBUXlNUlJwTTU1K2RQSkR3NSsx?=
 =?utf-8?B?TmZIYVcreXcySkhMNW1MMVdLajhSNHNxYlY5eEZXeWxWSVMrTTQvTjhTWG56?=
 =?utf-8?B?ODkxWVVkSlUzeSt4UDZLempEdy9RZWRKWURlS3hVU0RrRkZHL21VUURGcUJ2?=
 =?utf-8?B?WTV6c0VueFZhRTV0Vy9UcjBtQW1oNXFZQldEUFFKL3pHc0duZi9BM0ZiekxR?=
 =?utf-8?B?RUovL1V6NzluUHd4YTkySjFLdVNjT3FNaWNtMHlLRHRvaUE4M3F3OElVK0dJ?=
 =?utf-8?B?RC9UYnpKeVpXTENudCtxUGlsRzEySU9oR0FYcElpdG5HWUx6RnRsekQ5dGNC?=
 =?utf-8?B?aXJIS3NnV1BZYWRqQklwZlFNSlhlRUFhb0ZnN1JpQXVwbGkwWDNoRnpIR0s2?=
 =?utf-8?B?TmNQUUxCL01hNktROFZFTFR5U1JFL3RORnlucWdKVm5kMEFQWUZiNkpNaUZJ?=
 =?utf-8?B?azVJSW5CeG9lQU9TSGNhZ0xpYmJrWkVpQzNqVGdzb2FQaVhhN1dRd2R3M2xH?=
 =?utf-8?B?RmVORm1EaU5OWW1TNE91aHFvVkJldnB6ZEtOc21rbjVRZnJMMzlnNU1oS0ha?=
 =?utf-8?B?VXNNd2UwNi9JMGg3dFA5NjVwKytjQWZmVTg1UHJXUVRZTGVhZzdBTXVlWW14?=
 =?utf-8?B?c3VpcFdZUmsxWnQ0VnMzbi91NlIzZkI5dlp5YUxFMHFqVzE4TVB4djFmQlJv?=
 =?utf-8?B?a1UzQnZKaGRnOVAwakl1NmVYU3JyL2xyQk91VmZTYWFEaS8ybEdlV2xkaXlJ?=
 =?utf-8?B?N21sMUJoMy9EMXVRRWphTnRZbEFBVml6ajF1TWFTcnpOMWZ3TmRQQ29mdEgx?=
 =?utf-8?B?NzZ3YnBueXZVZUZQSGZwZElCSlhaWGVpUnlYcGFGbFJ2ZmVoOCtGSm1QcjNp?=
 =?utf-8?B?cDd1dkRYbHhyby9pa1VqSm1KdE9lZXNvZ1BJamJxV3hUenJFaERRamlId0RZ?=
 =?utf-8?B?dmxTQmozdGRjM0g5L0plOTNKeUFCcVdzZENsRnBGa2h4WXNHdzg2UHBoeFJV?=
 =?utf-8?B?OUd6RzUvWENFVGFkYWFaMUZVS0JwLzRvWVZoc2hMYjNlT2RsZndmV3F1K1VS?=
 =?utf-8?B?UUwrZFNMYW5vbUI3Smk5R1BLRnBiNUZGQTZhZG5VWTJiWmQ4UzEyUFVhSHQ4?=
 =?utf-8?B?N1hPbElDTkdSTFdnWndqMm1YSGo2S0VDbmlZbDcvYi9KWURqcWoyVEEyU3Rm?=
 =?utf-8?Q?8ZmE=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 13:35:28.3924
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 586a6bd6-0764-49ab-5e79-08de2db9d42f
X-MS-Exchange-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:
	SJ1PEPF000023D8.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7013

On Thu Nov 27, 2025 at 11:51 AM CET, Jan Beulich wrote:
> On 26.11.2025 17:44, Alejandro Vallejo wrote:
>> Move the "unknown" vendor ahead of all others and have it NOT rely
>> on x86_vendor_is(), as that would yield incorrect values for the
>> single-vendor+no-fallback case when running in incorrect hardware
>> (because x86_vendor_is() becomes a folded constant of the single
>> compiled-in vendor).
>>=20
>> This is one of the two places where x86_vendor_is() cannot be used,
>> along with the compatibility check on loaded guest CPU policies.
>>=20
>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>> ---
>>  xen/arch/x86/cpu/common.c | 31 +++++++++++++++++++++++--------
>>  1 file changed, 23 insertions(+), 8 deletions(-)
>>=20
>> diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
>> index 393c30227f..c0c3606dd2 100644
>> --- a/xen/arch/x86/cpu/common.c
>> +++ b/xen/arch/x86/cpu/common.c
>> @@ -342,23 +342,38 @@ void __init early_cpu_init(bool verbose)
>> =20
>>  	c->x86_vendor =3D x86_cpuid_lookup_vendor(ebx, ecx, edx) &
>>  	                X86_ENABLED_VENDORS;
>> -	switch (c->x86_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;
>> -	case X86_VENDOR_CENTAUR:  actual_cpu =3D centaur_cpu_dev;  break;
>> -	case X86_VENDOR_SHANGHAI: actual_cpu =3D shanghai_cpu_dev; break;
>> -	case X86_VENDOR_HYGON:    actual_cpu =3D hygon_cpu_dev;    break;
>> -	default:
>> +
>> +	/*
>> +	 * We can't rely on x86_vendor_is() here due to the single-vendor
>> +	 * optimisation. It makes x86_vendor_is(x, y) rely on the constant `y`
>> +	 * matching the single vendor Xen was compiled for and ignore the
>> +	 * runtime variable `x`. In order to preserve sanity we must assert he=
re
>> +	 * that we never boot such a build in a CPU from another vendor, or
>> +	 * major chaos would ensue.
>> +	 */
>> +	if (c->x86_vendor =3D=3D X86_VENDOR_UNKNOWN)
>> +	{
>
> Nit: No mix of styles please. Here it wants to be Linux style.
>
>>  		if (verbose || !IS_ENABLED(CONFIG_UNKNOWN_CPU))
>>  			printk(XENLOG_ERR
>>  			       "Unrecognised or unsupported CPU vendor '%.12s'\n",
>>  			       c->x86_vendor_id);
>> +
>>  		if (!IS_ENABLED(CONFIG_UNKNOWN_CPU))
>>  			panic("Cannot run in unknown/compiled-out CPU vendor.\n");
>> =20
>>  		actual_cpu =3D default_cpu;
>>  	}
>> +	else if (x86_vendor_is(c->x86_vendor, X86_VENDOR_INTEL)) {
>> +		intel_unlock_cpuid_leaves(c);
>> +		actual_cpu =3D intel_cpu_dev;
>> +	} else if (x86_vendor_is(c->x86_vendor, X86_VENDOR_AMD))
>> +		actual_cpu =3D amd_cpu_dev;
>> +	else if (x86_vendor_is(c->x86_vendor, X86_VENDOR_CENTAUR))
>> +		actual_cpu =3D centaur_cpu_dev;
>> +	else if (x86_vendor_is(c->x86_vendor, X86_VENDOR_SHANGHAI))
>> +		actual_cpu =3D shanghai_cpu_dev;
>> +	else if (x86_vendor_is(c->x86_vendor, X86_VENDOR_HYGON))
>> +		actual_cpu =3D hygon_cpu_dev;
>
> If it needs to be like this, then so be it, but I view it as a downside t=
o
> not be able to use switch() anymore. It's not quite clear to me though wh=
at
> extra gains the transformation brings. The masking by X86_ENABLED_VENDORS
> already does most of what you want, and X86_VENDOR_UNKNOWN continues to b=
e
> handled separately anyway.

In this particular switch that's the case, but it's not so elsewhere.

Any switch would resolve to an unavoidable runtime check with compiled-out
branches left out (so long as the variable is ANDed with the enabled vendor=
s
mask, which it currently isn't). However, this still forces the compiler to=
 emit
a runtime check in case the vendor is actually zero. The conversion to if-e=
lseif
ensures we can statically decide a branch at compile time and remove all ot=
hers
(including the default one).

On a more stylistic note, though obviously this is all subjective, the patc=
h
that migrates switch statements to if-elseif chains shaves 100 LoC and mana=
ges
to squash multiple checks onto single ones by making use of the bitmap natu=
re of
the vendor field. The gains there are marginal, so I don't care that much, =
about
that but it's a measurable benefit in LoC and a (small) benefit in codegen.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 13:37:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 13:37:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173848.1498842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOcC6-0006xl-Rz; Thu, 27 Nov 2025 13:37:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173848.1498842; Thu, 27 Nov 2025 13:37:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOcC6-0006xe-Om; Thu, 27 Nov 2025 13:37:58 +0000
Received: by outflank-mailman (input) for mailman id 1173848;
 Thu, 27 Nov 2025 13:37: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=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOcC5-0006xT-EU
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 13:37: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 47187c04-cb96-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 14:37:54 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4775895d69cso3685575e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 05:37: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-479040b329bsm69626655e9.2.2025.11.27.05.37.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 05:37: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: 47187c04-cb96-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764250674; x=1764855474; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YVxt0DpgRHAPvoVbG3fosShNTuZjx/TBusYXthGmS10=;
        b=NUr/iFaMCH9IQwTuZwZpMvePc1ypRZ9p6rajJU/Oa+VWXZugHK/sZSSBV6hbKJzYVa
         qEVLaC3xBjs8uxowlm3rCEcJg2zEKAJjmaTUcZzNikgD/5vpy3l9EfZULzD4ZsbYVOmc
         jWNP15yxOl+scRU+sClF16w3Nl2GyLlm1AWoETd44MyZQWGfmiPsr8bUMgTKSJIRBj59
         tdLGmhHx1zJnRnlIlaVZPML1J0XlzMrDHNO6SXqm/WVZBW7C8hxUVomX/ptQJiLbSZJF
         3jxlY1us0/WWvMp71j+D44drxPr7DIR6f2sr6t/QkXFyAMbLMG8z2+La5hYcsY9Q6BZV
         6f1g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764250674; x=1764855474;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YVxt0DpgRHAPvoVbG3fosShNTuZjx/TBusYXthGmS10=;
        b=hn8r7QhH+DF5NQqhm2vVLesB1CpyDpFa1vVjfmPntBFK5gvLUfffhhHJdwwYIZu6N5
         0r68B0Lvek8jaYzdI2ML4LEKZlgCAxVW2L9m7350F8Q1JfPevQNlr2ulunEZeKX4z7zJ
         hC8VfbIKq2e1KbOD23DCotjnrFLK8q72PlkS67cpEXwoKhv29BwQ2xpRlBjNPS1ihywl
         2byDjFVlAttlUsHq4YDPQPGuDb1uzJgVu+byMFwf6k3fIuIUG3nU1LMuBXRToZiCu5KI
         Z5j9WOqXCmGIdwvigeBKnHzklwo7Z5xDbqwdu5LhwgEV/it8X/Kfh8CVhQ1GkZOMyADE
         U2+A==
X-Forwarded-Encrypted: i=1; AJvYcCX3CTXdOxQmT2m8qVWXR6G23B5vWA/qeFLkF7q7mNvqS6gzkCe1UXpnqEsiNNFDa9y79AmcV/obgyY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YysjnnKvFF2KNvxEdMGq1MLpHCHCXl89cm50y5qYw1rpZwJ5BwS
	JdzgJqjD7lgeTq8ZmLPA/jJnIPgbvTDfX8weQIjqtYpYJpwCjdj1P/KZ7OaxoD97QQ==
X-Gm-Gg: ASbGncu8a2qh/sisvIm/LoUeRsjhsIudl7635U8sG6vOUpyr+R22Db6Vo18kN5BdkL+
	Yg3ir8gbA9DJKLLrTabbivPkD+fltpXIX6Il54aSKNlQVyF/A0MusTBawiwqXq5us3ZPb8FI/KS
	57tCN4+vcoVDAUPSxu0kb0fhJTKYdPygUOyOvrBc/JFPOjSLRvHYyoalPBVE48hI3o+NmDCOwRW
	8KjXIod+rhrgiuVWmgpi1w8Ht1ux3qfA8B0OM8YrPa0LrPBADettRU3DFNwE0UaswPtfUCOwppp
	gPvVsgKwKZsVdWHgFjjdf1zwmcA9uoTmfLVeM3/RAtXjuD4f81O7EYotJPWSmoPE2r0fIryuprk
	wQOar6n+va474YQLzaGmJ+SEDiyMTbmyeQNJu4IY4a2T4gM4W9Csk3JD8e2B2tgqGyl7644YdbF
	2hdPQeYHfg114dURfTfk/jU37nKSZu771WqrxLXR79zS2+CvViMqnFYM77LcQHBFGnTaF2MmB37
	30=
X-Google-Smtp-Source: AGHT+IGaY7gZPZBGBIxJtOAAhmuPstNtgmzRuBQ0EFuLchJyLPU98aMNFTG8OrGI3w0U3zCgcDqevg==
X-Received: by 2002:a05:600c:3b9c:b0:477:af07:dd22 with SMTP id 5b1f17b1804b1-47904b24243mr103839205e9.28.1764250674165;
        Thu, 27 Nov 2025 05:37:54 -0800 (PST)
Message-ID: <1ea5b7d2-6d73-4133-bf32-085559f6df41@suse.com>
Date: Thu, 27 Nov 2025 14:37:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 03/11] x86: Add x86_vendor_is() by itself before using
 it
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>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-4-alejandro.garciavallejo@amd.com>
 <d71b6b55-6745-4ba4-9a4f-d5e7b08f0aec@suse.com>
 <DEJI6U37EMDI.1F7QHW1I7WV76@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: <DEJI6U37EMDI.1F7QHW1I7WV76@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.11.2025 14:15, Alejandro Vallejo wrote:
> On Thu Nov 27, 2025 at 11:46 AM CET, Jan Beulich wrote:
>> On 26.11.2025 17:44, Alejandro Vallejo wrote:
>>> + * A runtime check at the time of CPUID probing guarantees we never run on
>>> + * wrong hardware and another check when loading CPU policies guarantees we
>>> + * never run policies for a vendor in another vendor's silicon.
>>> + *
>>> + * By the same token, the same folding can happen when no vendor is compiled
>>> + * in and the fallback path is present.
>>> + */
>>> +static always_inline bool x86_vendor_is(uint8_t candidate, uint8_t vendor)
>>
>> I fear the comment, no matter that it's pretty large already, doesn't make
>> clear how this function is to be used, i.e. how for this being an "is"
>> predicate the two arguments should be chosen. My typical expectation would be
>> for "is" predicates to apply to a single property, with other parameters (if
>> any) only being auxiliary ones. Maybe it would already help if the first
>> parameter wasn't named "candidate" but e.g. "actual" (from looking at just
>> the next patch). Or maybe (depending on the number of possible different
>> inputs for the first parameter) there want to be a few wrappers, so the
>> "single property" aspect would be achieved at use sites.
>>
>> Then I see no reason for the parameters to be other than unsigned int. (Same
>> for the local variable then, obviously.)
> 
> I could also call it x86_vendor_in(), to mean it's a set membership check,
> leaving its prototype as:
> 
> bool x86_vendor_in(unsigned int actual, unsigned int bitmap);
> 
> bitmap is a special kind because literal 0 has a special meaning (unknown). So
> 
> I'd expect x86_vendor_in(X86_VENDOR_UNKNOWN, X86_VENDOR_UNKNOWN) to return true
> when UNKNOWN_CPU=y. One way to alleviate complexity would be to promote the
> unknown case to a first-class bit. It's not like it's zero for any good reason.
> 
> As for the what goes in the first parameter, it's invariably the x86_vendor
> field of cpuinfo_x86 (for boot_cpu_data), or of any cpu_policy.
> 
> This is meant to replace checks on vendors, so a natural (and universally used)
> pattern across the codebase is to have a runtime variable checked against a
> constant. Here's a longer list of patterns and expected transformations.
> 
>   from: cp->x86_vendor == X86_VENDOR_AMD
>     to: x86_vendor_is(c->x86_vendor, X86_VENDOR_AMD)
> 
>   from: cp->x86_vendor != X86_VENDOR_AMD
>     to: !x86_vendor_is(c->x86_vendor, X86_VENDOR_AMD)
> 
>   from: cp->x86_vendor & X86_VENDOR_AMD
>     to: x86_vendor_is(c->x86_vendor, X86_VENDOR_AMD)
> 
>   from: cp->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)
>     to: x86_vendor_is(c->x86_vendor, X86_VENDOR_AMD | X86_VENDOR_HYGON)

There's a mix of c and cp up from here, but I hope the distinction isn't
relevant in this context. What is relevant though is that you shouldn't
be using struct cpuinfo_x86's x86_vendor field anymore. See the struct
definition.

>   from: !(cp->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON))
>     to: !x86_vendor_is(cp->x86_vendor, X86_VENDOR_AMD | X86_VENDOR_HYGON)
> 
>   from: cp->x86_vendor == X86_VENDOR_UNKNOWN
>     to: x86_vendor_is(cp->x86_vendor, X86_VENDOR_UNKNOWN)

For it to be clear what the "is" applies to, all of the above would imo
better be x86_vendor_is(c, X86_VENDOR_...) or
x86_vendor_is(cp, X86_VENDOR_...) at the call sites. The c / cp are what
I called "auxiliary data" elsewhere, and the property checked clearly is
the 2nd argument. To achieve this you could introduce a wrapper macro,
which would do the de-ref of the ->vendor field. (As a prereq, struct
cpu_policy would then also need to gain a "vendor" alias of the present
"x86_vendor" field.)

> And switch statements converted to if-elseif chains.

I've voiced concern towards this elsewhere.

>> First: Would one ever pass X86_VENDOR_UNKNOWN for "vendor"? The next patch,
>> for example, specifically doesn't.
> 
> I don't think so. There's definitely not any existing case atm. Still, I think
> it's better to preserve the invariant that the follwing transformation:
> 
>   from: cp->x86_vendor == X86_VENDOR_X
>     to: x86_vendor_is(cp->x86_vendor, X86_VENDOR_X)
> 
> holds for every vendor variant in the "everything compiled-in" case.

Otoh the code could be simplified if you simply rejected the passing of
X86_VENDOR_UNKNOWN.

>>> +    /* single-vendor optimisation */
>>> +    if ( !IS_ENABLED(CONFIG_UNKNOWN_CPU) &&
>>> +         (ISOLATE_LSB(X86_ENABLED_VENDORS) == X86_ENABLED_VENDORS) )
>>> +        return filtered_vendor == X86_ENABLED_VENDORS;
>>> +
>>> +    /* compiled-out-vendor-elimination optimisation */
>>> +    if ( !filtered_vendor )
>>> +        return false;
>>> +
>>> +    /*
>>> +     * When checking against a single vendor, perform an equality check, as
>>> +     * it yields (marginally) better codegen
>>> +     */
>>> +    if ( ISOLATE_LSB(filtered_vendor) == filtered_vendor )
>>
>> So one may pass a combination of multiple vendors for "vendor"? Is so, why
>> is the parameter name singular?
> 
> Yes, it's a bitmap. Parameter could be in fact "bitmap", except the 0 case is
> a special.

We have empty bitmaps elsewhere, as a more or less special case, so this doesn't
look overly concerning.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 13:39:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 13:39:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173858.1498851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOcDo-0007V2-5j; Thu, 27 Nov 2025 13:39:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173858.1498851; Thu, 27 Nov 2025 13:39:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOcDo-0007Uv-3C; Thu, 27 Nov 2025 13:39:44 +0000
Received: by outflank-mailman (input) for mailman id 1173858;
 Thu, 27 Nov 2025 13:39:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wiUh=6D=bounce.vates.tech=bounce-md_30504962.6928549b.v1-9e7200fe356a47f386094bc58eb43313@srs-se1.protection.inumbo.net>)
 id 1vOcDn-0007Up-Fm
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 13:39:43 +0000
Received: from mail132-18.atl131.mandrillapp.com
 (mail132-18.atl131.mandrillapp.com [198.2.132.18])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 868a4a58-cb96-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 14:39:42 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-18.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4dHHbc0bW6zCf9Xsd
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 13:39:40 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 9e7200fe356a47f386094bc58eb43313; Thu, 27 Nov 2025 13: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: 868a4a58-cb96-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1764250780; x=1764520780;
	bh=H+veXQ6aputszDejimTVagqBjaf9DIfMMnXczlKlUwU=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=WMtywkXQ8yBXW4NrXZpwHw1jIIw7A8LM6BkpTPuZfeC4uZBPn9XNt4zS3MJ0/gDEj
	 bCx56ebrVGAGSdMYHhsml8WP1PHL1yQXkzMczBjBzIjTvLvITIoe9dda1BWjcVHwua
	 Qyq5vYoYdzC3cAXmiGqL7qwPFpuMq7PQ/4fvOxZU2nNJ2PGMfHWRzG7F/L8hZJnO1E
	 0c6jc8MA8rPpd0bv4U7sFfPdEy9mFLbSwG5qgOY5QT2KN6VErWpsXT0EFCLLqzmd9b
	 lIueELFFG2N6LrSbl7B2C9ZCaYMfGN0GPNwwCYuTqSQK4xk1AmFqlom5E5P3mLSpfx
	 /H16TFcRVG5jQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1764250780; x=1764511280; i=teddy.astie@vates.tech;
	bh=H+veXQ6aputszDejimTVagqBjaf9DIfMMnXczlKlUwU=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=Zt/dHtp5kSP8Zb2NRZW+RXLi3rpaLGcGiFsjBt2ByRMAH1Nb2+zEWVOf6Gt3PGjO+
	 gLU8dMY/ZT0tjgLAzObNEf6jgAwoG80W4hwVGuUDmv3E5Uae4c4L997rhtaKy6Do8I
	 eYFgUgOawwFzrld2tQsWzivKw0G269PjRL5DQh6BiljwCzeO8Mp2Ev8gG4nzOVSIX5
	 30+hNZ+M00Nwfpi18nt6+z9wqguRGKLHXbrKoaNSxvAqUMsyELa0AZLRSU7QotuoYy
	 noZQWnnPHnyZQtBsUoXSM1cbQRkneNGMrM+73G+LbjDxGTLLZZHJSetbpADvM3HsxF
	 9ysZbEYOZcVfg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=200/4]=20x86/p2m:=20Some=20P2M=20refactoring?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1764250779124
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>, "Tim Deegan" <tim@xen.org>
Message-Id: <cover.1764248710.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.9e7200fe356a47f386094bc58eb43313?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251127:md
Date: Thu, 27 Nov 2025 13:39:39 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

First patch removes a shadow mode check in a function that can't be
called with shadow mode (only called with EPT hence HAP).

3 other patches drops guest_tlb_flush_mask by removing all its users :
in the shadow paging case by migrating it a shadow variant of it and
in the hap case by moving it to p2m->flush_tlb logic.

One of the goal is to prepare adding HAP-specific optimizations to TLB
flushing code without risking regressions in the shadow paging code.

Teddy Astie (4):
  x86/ept: Drop shadow mode check in ept_sync_domain()
  x86/shadow: Replace guest_tlb_flush_mask with sh_flush_tlb_mask
  x86/p2m-pt: Set p2m->need_flush if page was present before
  x86/hap: Migrate tlb flush logic to p2m->flush_tlb

 xen/arch/x86/flushtlb.c             | 15 ---------------
 xen/arch/x86/include/asm/flushtlb.h |  3 ---
 xen/arch/x86/include/asm/p2m.h      |  3 ---
 xen/arch/x86/mm/hap/hap.c           | 14 +++-----------
 xen/arch/x86/mm/hap/nested_hap.c    |  7 +------
 xen/arch/x86/mm/nested.c            |  2 +-
 xen/arch/x86/mm/p2m-ept.c           |  5 +++--
 xen/arch/x86/mm/p2m-pt.c            | 13 +++++--------
 xen/arch/x86/mm/p2m.c               |  8 ++++----
 xen/arch/x86/mm/shadow/common.c     | 12 ++++++------
 xen/arch/x86/mm/shadow/hvm.c        |  8 ++++----
 xen/arch/x86/mm/shadow/multi.c      | 18 ++++++------------
 xen/arch/x86/mm/shadow/private.h    | 22 ++++++++++++++++++++++
 13 files changed, 55 insertions(+), 75 deletions(-)

-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 13:39:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 13:39:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173859.1498861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOcDq-0007k5-FO; Thu, 27 Nov 2025 13:39:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173859.1498861; Thu, 27 Nov 2025 13: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 1vOcDq-0007jw-Cg; Thu, 27 Nov 2025 13:39:46 +0000
Received: by outflank-mailman (input) for mailman id 1173859;
 Thu, 27 Nov 2025 13:39: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=M2bp=6D=bounce.vates.tech=bounce-md_30504962.6928549c.v1-cacd861e097f4c97bf6a85a68f58cfd7@srs-se1.protection.inumbo.net>)
 id 1vOcDo-0007Up-Rn
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 13:39:44 +0000
Received: from mail132-18.atl131.mandrillapp.com
 (mail132-18.atl131.mandrillapp.com [198.2.132.18])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 87cb122a-cb96-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 14:39:44 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-18.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4dHHbc6hNSzCf9Xss
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 13:39:40 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 cacd861e097f4c97bf6a85a68f58cfd7; Thu, 27 Nov 2025 13: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: 87cb122a-cb96-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1764250780; x=1764520780;
	bh=NFHk6HqtAfIPdwrhM3fd+af+o9jmpJwjBhaopH82WXE=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=W+jCDs/2ux8HeUNhEERYJPgcYvWNPMBGLE0wvLOsMrkUV2/1G2OWVNPnyDN1gs3M/
	 C/UVICpOb/Dg1q4gjOieybpLp7qGdNCZDJBDCtbaFR/NLCOIrbH+5HDEjeI9tZ6z0n
	 JPdNuiTRVLS8KxAe4GLBmRmPu6JZj9hWbIFXJWEWwwTHIp9TH0saQLgOgrBskMT5rJ
	 8tTXCDMwV4so3u/1b8WGHMtEp85yi1ROsrb9Ey0loEBBe8K8Dm/XGrKckinLOVozmm
	 ARq5+VWJ7w+fIjqGYuZ5PZWd/MBRUXHfbBmQ9UzSCVnsyssQt58mkfoMbb1Il5Usz8
	 O88CCL8GBgzkg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1764250780; x=1764511280; i=teddy.astie@vates.tech;
	bh=NFHk6HqtAfIPdwrhM3fd+af+o9jmpJwjBhaopH82WXE=;
	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=fMEyq/5ghm7gNVxfoA6vLNd7aOjnrsDgdkfg/PBeqfT9XzUqFENBkNPwH88zMfedi
	 rQH2O5wmhc9VISVqzGzryVWYafxsI3QA8i5lR4dX47bxRoG9uMmZnB3IYFk+qMemNx
	 7yUvhX1qQl+riz7Rw+zXZYwc/DOOKaZL1zzPKPslLnx21u6xOqTqdJstRBr89iRkTo
	 hAmxR7E8mtfNS7GkPCkD5gckxqvwbc4NEwLqmrsYFn7ePa7sDWrPuFd48ptksjgZ+K
	 +w4OLEiByOEKozdChrFg8QtYn79q31nsRjfXQm+WF4+B2j25sS1b5YuPZsw5ysU2rY
	 50S4d+hdUq0hQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=203/4]=20x86/p2m-pt:=20Set=20p2m->need=5Fflush=20if=20page=20was=20present=20before?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1764250779949
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <8f5a0cecba14cd38d739a9f29a5c8344c2f6bd11.1764248710.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1764248710.git.teddy.astie@vates.tech>
References: <cover.1764248710.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.cacd861e097f4c97bf6a85a68f58cfd7?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251127:md
Date: Thu, 27 Nov 2025 13:39:40 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Update p2m->need_flush if page was present before (requiring a tlb flush).
This causes p2m->flush_tlb() to be now be reachable, make sure we call it
only when set.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
This change is important for the next patch.
Would it be better to merge it with the next patch ?

 xen/arch/x86/mm/p2m-pt.c | 3 +++
 xen/arch/x86/mm/p2m.c    | 6 ++++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/mm/p2m-pt.c b/xen/arch/x86/mm/p2m-pt.c
index 5a6ce2f8bc..1fea3884be 100644
--- a/xen/arch/x86/mm/p2m-pt.c
+++ b/xen/arch/x86/mm/p2m-pt.c
@@ -143,6 +143,9 @@ static int write_p2m_entry(struct p2m_domain *p2m, unsigned long gfn,
         if ( p2m->write_p2m_entry_post )
             p2m->write_p2m_entry_post(p2m, oflags);
 
+        if ( oflags & _PAGE_PRESENT )
+            p2m->need_flush = true;
+
         paging_unlock(d);
 
         if ( nestedhvm_enabled(d) && !p2m_is_nestedp2m(p2m) &&
diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c
index e2a00a0efd..98f8272270 100644
--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
@@ -274,7 +274,8 @@ void p2m_tlb_flush_sync(struct p2m_domain *p2m)
     if ( p2m->need_flush )
     {
         p2m->need_flush = 0;
-        p2m->tlb_flush(p2m);
+        if ( p2m->tlb_flush )
+            p2m->tlb_flush(p2m);
     }
 }
 
@@ -287,7 +288,8 @@ void p2m_unlock_and_tlb_flush(struct p2m_domain *p2m)
     {
         p2m->need_flush = 0;
         mm_write_unlock(&p2m->lock);
-        p2m->tlb_flush(p2m);
+        if ( p2m->tlb_flush )
+            p2m->tlb_flush(p2m);
     } else
         mm_write_unlock(&p2m->lock);
 }
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 13:39:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 13:39:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173860.1498872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOcDr-0007yr-OC; Thu, 27 Nov 2025 13:39:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173860.1498872; Thu, 27 Nov 2025 13:39:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOcDr-0007yg-K3; Thu, 27 Nov 2025 13:39:47 +0000
Received: by outflank-mailman (input) for mailman id 1173860;
 Thu, 27 Nov 2025 13:39: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=Y8U0=6D=bounce.vates.tech=bounce-md_30504962.6928549c.v1-94f196c9aa194aa6b0a8edddbab13cf8@srs-se1.protection.inumbo.net>)
 id 1vOcDp-0007Up-SZ
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 13:39:45 +0000
Received: from mail132-18.atl131.mandrillapp.com
 (mail132-18.atl131.mandrillapp.com [198.2.132.18])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 88bb2a28-cb96-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 14:39:44 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-18.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4dHHbc717RzCf9XsX
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 13:39:40 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 94f196c9aa194aa6b0a8edddbab13cf8; Thu, 27 Nov 2025 13: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: 88bb2a28-cb96-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1764250781; x=1764520781;
	bh=rQY26kgkkzoiOQAz5X3ssTnjDr7t/ARczzg+WikxsQc=;
	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=1KGYGl9CHuvdUZleL5NrvP8IpJFgzNkvAVw8mHLPX34C4tlTEBkN5A9eJrzcaas5J
	 0v9bQ6dilEMChuay10yb0gMlb7P4m2xurpiC8/8wJ5t75RppKRWCl5b3EI1jOfDfnr
	 1NbsE450xujjFvecCk44RpRLa7TQNkc0xVoU7uy7dXqRGZSKYzICMMkkPriTo18b1w
	 s8wzkbDyeTqJZO/L+uzxxtkgZipA0HjvpVjyPgAmWnmqNciiCzR5QBmMhTgIO1z7+r
	 YzsMWETTtLKrlogqwjztpqp/jAUmqxWC4qA4IzcVKeA0HvIZdC2i7W7or+P8rCqkm4
	 cDAB9uD3ZX02w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1764250781; x=1764511281; i=teddy.astie@vates.tech;
	bh=rQY26kgkkzoiOQAz5X3ssTnjDr7t/ARczzg+WikxsQc=;
	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=uIt+NxrfhOVCVEW0RN2Xfq0gCa/bwx0wJ9KRcHVXGn1qxvOXK+Md625UUr4PSxM1r
	 VpnBe630Ldep3hX7fke/C8joBhHuPDzUcdap4Uqhoe/T8WSSYHFrjRQAEK4z3sgGLG
	 C0wQdoCOABXIeIr+1dUf4jL9+HriDlusqaqhuLSih4rPeVfta4Xggyk6ji6VcxjrN0
	 x9tbRMi6ZUOJzKnTbVbpjVc3B6Yr1V79VnTINgPt8n3loCNoalCvah/+RY0vfM4VI0
	 t1jmJM+dtGGwmwtGmpuEUe3ZeGuaiJkrp0LWJirjtJVNpI/yafczbLB6momFWYiAFZ
	 6MUyv8aQfzOmg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=204/4]=20x86/hap:=20Migrate=20tlb=20flush=20logic=20to=20p2m->flush=5Ftlb?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1764250780179
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <94bf385598cc7d70ecaecfae670e305581ad83b3.1764248710.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1764248710.git.teddy.astie@vates.tech>
References: <cover.1764248710.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.94f196c9aa194aa6b0a8edddbab13cf8?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251127:md
Date: Thu, 27 Nov 2025 13:39:40 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Now that p2m->need_flush is set when modifying the pagetable in a way that
requires it. We can move the tlb flush logic to p2m->tlb_flush.

Introduce hap_tlb_flush to do it, which is called by main p2m logic (e.g p2m_unlock,
p2m_tlb_flush_sync, ...). Drop inline calls of guest_flush_tlb_mask which are now
redundant with what now does p2m->flush_tlb, allowing us to drop guest_flush_tlb_*
as it is now unused.

No function change intended.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
I would like hap_p2m_tlb_flush() to use p2m->dirty_cpumask instead of
p2m->domain->dirty_cpumask. But p2m->dirty_cpumask is updated nowhere
in the current logic, so that doesn't work and p2m->domain->dirty_cpumask
is used instead (which works, even though it is less efficient with np2m).

 xen/arch/x86/flushtlb.c             | 15 ---------------
 xen/arch/x86/include/asm/flushtlb.h |  3 ---
 xen/arch/x86/include/asm/p2m.h      |  3 ---
 xen/arch/x86/mm/hap/hap.c           | 14 +++-----------
 xen/arch/x86/mm/hap/nested_hap.c    |  7 +------
 xen/arch/x86/mm/nested.c            |  2 +-
 xen/arch/x86/mm/p2m-pt.c            | 10 ++--------
 xen/arch/x86/mm/p2m.c               |  2 --
 8 files changed, 7 insertions(+), 49 deletions(-)

diff --git a/xen/arch/x86/flushtlb.c b/xen/arch/x86/flushtlb.c
index 09e676c151..48e0142848 100644
--- a/xen/arch/x86/flushtlb.c
+++ b/xen/arch/x86/flushtlb.c
@@ -320,18 +320,3 @@ void cache_writeback(const void *addr, unsigned int size)
     asm volatile ("sfence" ::: "memory");
 }
 
-unsigned int guest_flush_tlb_flags(const struct domain *d)
-{
-    bool shadow = paging_mode_shadow(d);
-    bool asid = is_hvm_domain(d) && (cpu_has_svm || shadow);
-
-    return (shadow ? FLUSH_TLB : 0) | (asid ? FLUSH_HVM_ASID_CORE : 0);
-}
-
-void guest_flush_tlb_mask(const struct domain *d, const cpumask_t *mask)
-{
-    unsigned int flags = guest_flush_tlb_flags(d);
-
-    if ( flags )
-        flush_mask(mask, flags);
-}
diff --git a/xen/arch/x86/include/asm/flushtlb.h b/xen/arch/x86/include/asm/flushtlb.h
index 7bcbca2b7f..5be6c4e08d 100644
--- a/xen/arch/x86/include/asm/flushtlb.h
+++ b/xen/arch/x86/include/asm/flushtlb.h
@@ -190,7 +190,4 @@ void flush_area_mask(const cpumask_t *mask, const void *va,
 
 static inline void flush_page_to_ram(unsigned long mfn, bool sync_icache) {}
 
-unsigned int guest_flush_tlb_flags(const struct domain *d);
-void guest_flush_tlb_mask(const struct domain *d, const cpumask_t *mask);
-
 #endif /* __FLUSHTLB_H__ */
diff --git a/xen/arch/x86/include/asm/p2m.h b/xen/arch/x86/include/asm/p2m.h
index 9016e88411..9ee79c9d39 100644
--- a/xen/arch/x86/include/asm/p2m.h
+++ b/xen/arch/x86/include/asm/p2m.h
@@ -886,9 +886,6 @@ void np2m_flush_base(struct vcpu *v, unsigned long np2m_base);
 void hap_p2m_init(struct p2m_domain *p2m);
 void shadow_p2m_init(struct p2m_domain *p2m);
 
-void cf_check nestedp2m_write_p2m_entry_post(
-    struct p2m_domain *p2m, unsigned int oflags);
-
 #ifdef CONFIG_ALTP2M
 
 /*
diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
index 2f69ff9c7b..58254c3039 100644
--- a/xen/arch/x86/mm/hap/hap.c
+++ b/xen/arch/x86/mm/hap/hap.c
@@ -105,8 +105,6 @@ int hap_track_dirty_vram(struct domain *d,
             p2m_change_type_range(d, begin_pfn, begin_pfn + nr_frames,
                                   p2m_ram_rw, p2m_ram_logdirty);
 
-            guest_flush_tlb_mask(d, d->dirty_cpumask);
-
             memset(dirty_bitmap, 0xff, size); /* consider all pages dirty */
         }
         else
@@ -191,7 +189,6 @@ static int cf_check hap_enable_log_dirty(struct domain *d)
      * to be read-only, or via hardware-assisted log-dirty.
      */
     p2m_change_entry_type_global(d, p2m_ram_rw, p2m_ram_logdirty);
-    guest_flush_tlb_mask(d, d->dirty_cpumask);
 
     return 0;
 }
@@ -220,7 +217,6 @@ static void cf_check hap_clean_dirty_bitmap(struct domain *d)
      * be read-only, or via hardware-assisted log-dirty.
      */
     p2m_change_entry_type_global(d, p2m_ram_rw, p2m_ram_logdirty);
-    guest_flush_tlb_mask(d, d->dirty_cpumask);
 }
 
 /************************************************/
@@ -806,18 +802,14 @@ static void cf_check hap_update_paging_modes(struct vcpu *v)
     put_gfn(d, cr3_gfn);
 }
 
-static void cf_check
-hap_write_p2m_entry_post(struct p2m_domain *p2m, unsigned int oflags)
+void hap_p2m_tlb_flush(struct p2m_domain *p2m)
 {
-    struct domain *d = p2m->domain;
-
-    if ( oflags & _PAGE_PRESENT )
-        guest_flush_tlb_mask(d, d->dirty_cpumask);
+    flush_mask(p2m->domain->dirty_cpumask, FLUSH_HVM_ASID_CORE);
 }
 
 void hap_p2m_init(struct p2m_domain *p2m)
 {
-    p2m->write_p2m_entry_post = hap_write_p2m_entry_post;
+    p2m->tlb_flush = hap_p2m_tlb_flush;
 }
 
 static unsigned long cf_check hap_gva_to_gfn_real_mode(
diff --git a/xen/arch/x86/mm/hap/nested_hap.c b/xen/arch/x86/mm/hap/nested_hap.c
index 255fba7e1c..2b4ccc0c81 100644
--- a/xen/arch/x86/mm/hap/nested_hap.c
+++ b/xen/arch/x86/mm/hap/nested_hap.c
@@ -58,12 +58,7 @@
 /*        NESTED VIRT P2M FUNCTIONS         */
 /********************************************/
 
-void cf_check
-nestedp2m_write_p2m_entry_post(struct p2m_domain *p2m, unsigned int oflags)
-{
-    if ( oflags & _PAGE_PRESENT )
-        guest_flush_tlb_mask(p2m->domain, p2m->dirty_cpumask);
-}
+/* None */
 
 /********************************************/
 /*          NESTED VIRT FUNCTIONS           */
diff --git a/xen/arch/x86/mm/nested.c b/xen/arch/x86/mm/nested.c
index 03741ffae4..ac5d990c6c 100644
--- a/xen/arch/x86/mm/nested.c
+++ b/xen/arch/x86/mm/nested.c
@@ -38,7 +38,7 @@ int p2m_init_nestedp2m(struct domain *d)
         }
         p2m->p2m_class = p2m_nested;
         p2m->write_p2m_entry_pre = NULL;
-        p2m->write_p2m_entry_post = nestedp2m_write_p2m_entry_post;
+        p2m->write_p2m_entry_post = NULL;
         list_add(&p2m->np2m_list, &p2m_get_hostp2m(d)->np2m_list);
     }
 
diff --git a/xen/arch/x86/mm/p2m-pt.c b/xen/arch/x86/mm/p2m-pt.c
index 1fea3884be..24918d09e6 100644
--- a/xen/arch/x86/mm/p2m-pt.c
+++ b/xen/arch/x86/mm/p2m-pt.c
@@ -941,7 +941,7 @@ static void cf_check p2m_pt_change_entry_type_global(
 {
     l1_pgentry_t *tab;
     unsigned long gfn = 0;
-    unsigned int i, changed;
+    unsigned int i;
     const struct domain *d = p2m->domain;
 
     if ( pagetable_get_pfn(p2m_get_pagetable(p2m)) == 0 )
@@ -950,7 +950,7 @@ static void cf_check p2m_pt_change_entry_type_global(
     ASSERT(hap_enabled(d));
 
     tab = map_domain_page(pagetable_get_mfn(p2m_get_pagetable(p2m)));
-    for ( changed = i = 0; i < (1 << PAGETABLE_ORDER); ++i )
+    for ( i = 0; i < (1 << PAGETABLE_ORDER); ++i )
     {
         l1_pgentry_t e = tab[i];
 
@@ -966,14 +966,10 @@ static void cf_check p2m_pt_change_entry_type_global(
                 ASSERT_UNREACHABLE();
                 break;
             }
-            ++changed;
         }
         gfn += 1UL << (L4_PAGETABLE_SHIFT - PAGE_SHIFT);
     }
     unmap_domain_page(tab);
-
-    if ( changed )
-         guest_flush_tlb_mask(d, d->dirty_cpumask);
 }
 
 static int cf_check p2m_pt_change_entry_type_range(
@@ -1185,5 +1181,3 @@ void p2m_pt_init(struct p2m_domain *p2m)
     p2m->audit_p2m = p2m_pt_audit_p2m;
 #endif
 }
-
-
diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c
index 98f8272270..bbdc20cbd9 100644
--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
@@ -2187,8 +2187,6 @@ void p2m_log_dirty_range(struct domain *d, unsigned long begin_pfn,
             dirty_bitmap[i >> 3] |= (1 << (i & 7));
 
     p2m_unlock(p2m);
-
-    guest_flush_tlb_mask(d, d->dirty_cpumask);
 }
 
 /*
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 13:39:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 13:39:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173861.1498882 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOcDs-0008Dw-VA; Thu, 27 Nov 2025 13:39:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173861.1498882; Thu, 27 Nov 2025 13:39: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 1vOcDs-0008Dn-Rj; Thu, 27 Nov 2025 13:39:48 +0000
Received: by outflank-mailman (input) for mailman id 1173861;
 Thu, 27 Nov 2025 13:39: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=V9Ld=6D=bounce.vates.tech=bounce-md_30504962.6928549c.v1-f6bdf73267e24ad58f58833a5a32f85c@srs-se1.protection.inumbo.net>)
 id 1vOcDr-0007qN-29
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 13:39:47 +0000
Received: from mail132-18.atl131.mandrillapp.com
 (mail132-18.atl131.mandrillapp.com [198.2.132.18])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 867166d9-cb96-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 14:39:41 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-18.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4dHHbc2h8WzCf9XsP
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 13:39:40 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f6bdf73267e24ad58f58833a5a32f85c; Thu, 27 Nov 2025 13: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: 867166d9-cb96-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1764250780; x=1764520780;
	bh=thBPwpCdaOZGJV5TWAllKK33OhFnY55OPorBf+4bLqU=;
	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=QfuXrUYc4XnbI+pzTl1aARchA7yYhnETOdD8yISoCYlUKoAr2Pp6a0CcLQnbfiXJ+
	 xaZtGmQQguRDKhmzjxRG0k/qNnzs5EIMnBY0mp7564FrQ2xey0yCtlvD6/A3xLp13g
	 bV5NgyXKflSn+5Yzyca63+VCGFNVGh062m0Do4ArV/6qiyL8Igv/n7yOl2j11yUxfn
	 qV/e4jMNnZlznzVuRsKb+3EDoCzBGXWgtY5EBlF5h13Cogi/6xg3OijmcH4NPAgcOL
	 rsAuy4yAntUcnm6I2Jr5iS1+qTCw2Gmy0h7hVMXO4IMpc/+F36TX4CalLA5hTCPKNm
	 nXzUWQWbm4jAw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1764250780; x=1764511280; i=teddy.astie@vates.tech;
	bh=thBPwpCdaOZGJV5TWAllKK33OhFnY55OPorBf+4bLqU=;
	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=U3pwQzuXkV+Jq/Sn7vDo/+wGH/jmAJxZCgn5uTsm4UzF50z+zbAb/6Ym0U45X4rQr
	 zy53Y4t1ockktlu8ESaKwsOYIhPGC9K3ZGmJxg5vZ6bDZ7+TmXMp83kOc7cGkIShpK
	 2VtOEHss6i6cxgi37y1+CnWLz55Jxb2l7nJMOCX5Emgopv42wAHJlQYdG9CHyHZkJh
	 z9JoV6X4VZ4ez+zIMR55P/BX6snHD2JNdbvFXKfC5pS3kDJVOEWJiApRel71VIkjSn
	 Be8m2hCW566NGGiKnE44J0+X70K7T7SqoVQKp8qiQnA5koGXmI1kb6RGgIs+VAcPEw
	 BzLgcFrJNby+Q==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=201/4]=20x86/ept:=20Drop=20shadow=20mode=20check=20in=20ept=5Fsync=5Fdomain()?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1764250779412
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <f63e38b0edbc2c49a7849af8896089c7f21c8956.1764248710.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1764248710.git.teddy.astie@vates.tech>
References: <cover.1764248710.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.f6bdf73267e24ad58f58833a5a32f85c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251127:md
Date: Thu, 27 Nov 2025 13:39:40 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This function can only be reached from EPT-related code which is inherently
HAP. Thus it is not useful to check for shadow_paging (or lack of HAP) there.

Moreover, it is an error to call this function in the non-EPT cases.

Not a functional change.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
This function is only called through EPT code and by vmx_domain_update_eptp()
called by EPT log-dirty logic, and doesn't look reachable from shadow paging
code.

I think the original reason of this check was for eventually allowing guests to
use both shadow paging and HAP and switch between the 2 dynamically.

 xen/arch/x86/mm/p2m-ept.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c
index ce4ef632ae..dfdbfa0afe 100644
--- a/xen/arch/x86/mm/p2m-ept.c
+++ b/xen/arch/x86/mm/p2m-ept.c
@@ -1268,9 +1268,10 @@ static void ept_sync_domain_mask(struct p2m_domain *p2m, const cpumask_t *mask)
 void ept_sync_domain(struct p2m_domain *p2m)
 {
     struct domain *d = p2m->domain;
+    ASSERT(hap_enabled(d));
 
-    /* Only if using EPT and this domain has some VCPUs to dirty. */
-    if ( paging_mode_shadow(d) || !d->vcpu || !d->vcpu[0] )
+    /* Only if this domain has some VCPUs to dirty. */
+    if ( !d->vcpu || !d->vcpu[0] )
         return;
 
     ept_sync_domain_prepare(p2m);
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 13:39:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 13:39:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173862.1498892 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOcDv-0008V9-6a; Thu, 27 Nov 2025 13:39:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173862.1498892; Thu, 27 Nov 2025 13:39: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 1vOcDv-0008Uw-3N; Thu, 27 Nov 2025 13:39:51 +0000
Received: by outflank-mailman (input) for mailman id 1173862;
 Thu, 27 Nov 2025 13:39: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=/Jd/=6D=bounce.vates.tech=bounce-md_30504962.6928549c.v1-897f1b0f3cc9476bbc66273a31b5f427@srs-se1.protection.inumbo.net>)
 id 1vOcDu-0007Up-5u
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 13:39:50 +0000
Received: from mail132-20.atl131.mandrillapp.com
 (mail132-20.atl131.mandrillapp.com [198.2.132.20])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 867eee1a-cb96-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 14:39:41 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-20.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4dHHbc4WVMzFCWZCF
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 13:39:40 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 897f1b0f3cc9476bbc66273a31b5f427; Thu, 27 Nov 2025 13: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: 867eee1a-cb96-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1764250780; x=1764520780;
	bh=yswA3ZDBM5q5MzkWxrEy6kOfycOHTyLWCOT8Yu26TcI=;
	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=GP/iVu34HSmQVMC52SZ5f3Q2i5gyxAog82cFeaO4yIEm/FaBM5/NEHut1sBGjhxs7
	 g0XQnVF1KWEzmHRNNo0101fEUMzUSSCoQchdyi38cfiDBJsauSW3HBTT6jZMV3xz3u
	 9kW184sV2wpYnbwlAk4tp8y8IxJT+LR3+j4GWMBaj+iezQxA/YBpMeJxhl/8PFOQYD
	 kMa0OY//kMZnZdUv3xy2kFLqIi4Jewu99QtfUGKAC1sRjb8tbZxjbszM9Te2oKsqk2
	 5e57WR5AWHDmKK3TU3kBRfJCFtYFuHumSWSEuCsMmQ+nWI6jBUEgxm2weZN1vULacE
	 ayfJoyux3wi+w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1764250780; x=1764511280; i=teddy.astie@vates.tech;
	bh=yswA3ZDBM5q5MzkWxrEy6kOfycOHTyLWCOT8Yu26TcI=;
	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=Ted7GNUN+JueXRxfGHT257KAhJ8SjeQ++Xo/J4zqNJ0VbM3QEC8KN1PNdACVeQael
	 sjp46DAzr1B84glSqTOkZ8yJr78i2UnNWkGCOZvFwEhH9/M1CsbzkXxbXZZW9/fbjI
	 zEYb3cqpF6dxas6NDhB3V8Xd/uPEo18CiuKbgFJSsNDKjYa8sKPoA6z95f/b+5xG4w
	 wObeiWmpdq76XPL3JGdvKURDfpMI6uwgyuYfw7MyWtXm0yCMt+ceg9N/yD6TgcpnRe
	 P5FYJtq5Rwc85BK/mY7IvmhIVsVINqQNQmndD6gJ+Kog9gZvJi15Gt9lPe7CWSuGv5
	 ClqLiFKpjW4dQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=202/4]=20x86/shadow:=20Replace=20guest=5Ftlb=5Fflush=5Fmask=20with=20sh=5Fflush=5Ftlb=5Fmask?=
X-Mailer: git-send-email 2.51.2
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1764250779739
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Tim Deegan" <tim@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <0e8e2607de4f484e7eb37d64799bfc53a56d3fa9.1764248710.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1764248710.git.teddy.astie@vates.tech>
References: <cover.1764248710.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.897f1b0f3cc9476bbc66273a31b5f427?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251127:md
Date: Thu, 27 Nov 2025 13:39:40 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Introduce sh_flush_tlb_{mask,local} variants used to flush the
tlb from within the shadow paging code. This is meant to decouple
shadow code from the more general guest_tlb_flush_mask.

Not a functional change.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/arch/x86/mm/shadow/common.c  | 12 ++++++------
 xen/arch/x86/mm/shadow/hvm.c     |  8 ++++----
 xen/arch/x86/mm/shadow/multi.c   | 18 ++++++------------
 xen/arch/x86/mm/shadow/private.h | 22 ++++++++++++++++++++++
 4 files changed, 38 insertions(+), 22 deletions(-)

diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index 0176e33bc9..8511da5c7f 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -421,7 +421,7 @@ static int oos_remove_write_access(struct vcpu *v, mfn_t gmfn,
     }
 
     if ( ftlb )
-        guest_flush_tlb_mask(d, d->dirty_cpumask);
+        sh_flush_tlb_mask(d, d->dirty_cpumask);
 
     return 0;
 }
@@ -969,7 +969,7 @@ static bool __must_check _shadow_prealloc(struct domain *d, unsigned int pages)
                 /* See if that freed up enough space */
                 if ( d->arch.paging.free_pages >= pages )
                 {
-                    guest_flush_tlb_mask(d, d->dirty_cpumask);
+                    sh_flush_tlb_mask(d, d->dirty_cpumask);
                     return true;
                 }
             }
@@ -984,7 +984,7 @@ static bool __must_check _shadow_prealloc(struct domain *d, unsigned int pages)
 
     ASSERT_UNREACHABLE();
 
-    guest_flush_tlb_mask(d, d->dirty_cpumask);
+    sh_flush_tlb_mask(d, d->dirty_cpumask);
 
     return false;
 }
@@ -1052,7 +1052,7 @@ void shadow_blow_tables(struct domain *d)
                     0);
 
     /* Make sure everyone sees the unshadowings */
-    guest_flush_tlb_mask(d, d->dirty_cpumask);
+    sh_flush_tlb_mask(d, d->dirty_cpumask);
 }
 
 void shadow_blow_tables_per_domain(struct domain *d)
@@ -1157,7 +1157,7 @@ mfn_t shadow_alloc(struct domain *d,
         if ( unlikely(!cpumask_empty(&mask)) )
         {
             perfc_incr(shadow_alloc_tlbflush);
-            guest_flush_tlb_mask(d, &mask);
+            sh_flush_tlb_mask(d, &mask);
         }
         /* Now safe to clear the page for reuse */
         clear_domain_page(page_to_mfn(sp));
@@ -2276,7 +2276,7 @@ void sh_remove_shadows(struct domain *d, mfn_t gmfn, int fast, int all)
 
     /* Need to flush TLBs now, so that linear maps are safe next time we
      * take a fault. */
-    guest_flush_tlb_mask(d, d->dirty_cpumask);
+    sh_flush_tlb_mask(d, d->dirty_cpumask);
 
     paging_unlock(d);
 }
diff --git a/xen/arch/x86/mm/shadow/hvm.c b/xen/arch/x86/mm/shadow/hvm.c
index 114957a3e1..b558ed82e8 100644
--- a/xen/arch/x86/mm/shadow/hvm.c
+++ b/xen/arch/x86/mm/shadow/hvm.c
@@ -594,7 +594,7 @@ static void validate_guest_pt_write(struct vcpu *v, mfn_t gmfn,
 
     if ( rc & SHADOW_SET_FLUSH )
         /* Need to flush TLBs to pick up shadow PT changes */
-        guest_flush_tlb_mask(d, d->dirty_cpumask);
+        sh_flush_tlb_mask(d, d->dirty_cpumask);
 
     if ( rc & SHADOW_SET_ERROR )
     {
@@ -744,7 +744,7 @@ bool cf_check shadow_flush_tlb(const unsigned long *vcpu_bitmap)
     }
 
     /* Flush TLBs on all CPUs with dirty vcpu state. */
-    guest_flush_tlb_mask(d, mask);
+    sh_flush_tlb_mask(d, mask);
 
     /* Done. */
     for_each_vcpu ( d, v )
@@ -978,7 +978,7 @@ static void cf_check sh_unshadow_for_p2m_change(
     }
 
     if ( flush )
-        guest_flush_tlb_mask(d, d->dirty_cpumask);
+        sh_flush_tlb_mask(d, d->dirty_cpumask);
 }
 
 #if (SHADOW_OPTIMIZATIONS & SHOPT_FAST_FAULT_PATH)
@@ -1196,7 +1196,7 @@ int shadow_track_dirty_vram(struct domain *d,
         }
     }
     if ( flush_tlb )
-        guest_flush_tlb_mask(d, d->dirty_cpumask);
+        sh_flush_tlb_mask(d, d->dirty_cpumask);
     goto out;
 
  out_sl1ma:
diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c
index 03be61e225..3924ff4da6 100644
--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -79,12 +79,6 @@ const char *const fetch_type_names[] = {
 # define for_each_shadow_table(v, i) for ( (i) = 0; (i) < 1; ++(i) )
 #endif
 
-/* Helper to perform a local TLB flush. */
-static void sh_flush_local(const struct domain *d)
-{
-    flush_local(guest_flush_tlb_flags(d));
-}
-
 #if GUEST_PAGING_LEVELS >= 4 && defined(CONFIG_PV32)
 #define ASSERT_VALID_L2(t) \
     ASSERT((t) == SH_type_l2_shadow || (t) == SH_type_l2h_shadow)
@@ -2429,7 +2423,7 @@ static int cf_check sh_page_fault(
         perfc_incr(shadow_rm_write_flush_tlb);
         smp_wmb();
         atomic_inc(&d->arch.paging.shadow.gtable_dirty_version);
-        guest_flush_tlb_mask(d, d->dirty_cpumask);
+        sh_flush_tlb_mask(d, d->dirty_cpumask);
     }
 
 #if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC)
@@ -3243,7 +3237,7 @@ static pagetable_t cf_check sh_update_cr3(struct vcpu *v, bool noflush)
      * (old) shadow linear maps in the writeable mapping heuristics. */
 #if GUEST_PAGING_LEVELS == 4
     if ( sh_remove_write_access(d, gmfn, 4, 0) != 0 )
-        guest_flush_tlb_mask(d, d->dirty_cpumask);
+        sh_flush_tlb_mask(d, d->dirty_cpumask);
     old_entry = sh_set_toplevel_shadow(v, 0, gmfn, SH_type_l4_shadow,
                                        sh_make_shadow);
     if ( unlikely(pagetable_is_null(v->arch.paging.shadow.shadow_table[0])) )
@@ -3284,7 +3278,7 @@ static pagetable_t cf_check sh_update_cr3(struct vcpu *v, bool noflush)
             }
         }
         if ( flush )
-            guest_flush_tlb_mask(d, d->dirty_cpumask);
+            sh_flush_tlb_mask(d, d->dirty_cpumask);
         /* Now install the new shadows. */
         for ( i = 0; i < 4; i++ )
         {
@@ -3309,7 +3303,7 @@ static pagetable_t cf_check sh_update_cr3(struct vcpu *v, bool noflush)
     }
 #elif GUEST_PAGING_LEVELS == 2
     if ( sh_remove_write_access(d, gmfn, 2, 0) != 0 )
-        guest_flush_tlb_mask(d, d->dirty_cpumask);
+        sh_flush_tlb_mask(d, d->dirty_cpumask);
     old_entry = sh_set_toplevel_shadow(v, 0, gmfn, SH_type_l2_shadow,
                                        sh_make_shadow);
     ASSERT(pagetable_is_null(old_entry));
@@ -3747,7 +3741,7 @@ static void cf_check sh_pagetable_dying(paddr_t gpa)
         }
     }
     if ( flush )
-        guest_flush_tlb_mask(d, d->dirty_cpumask);
+        sh_flush_tlb_mask(d, d->dirty_cpumask);
 
     /* Remember that we've seen the guest use this interface, so we
      * can rely on it using it in future, instead of guessing at
@@ -3786,7 +3780,7 @@ static void cf_check sh_pagetable_dying(paddr_t gpa)
         mfn_to_page(gmfn)->pagetable_dying = true;
         shadow_unhook_mappings(d, smfn, 1/* user pages only */);
         /* Now flush the TLB: we removed toplevel mappings. */
-        guest_flush_tlb_mask(d, d->dirty_cpumask);
+        sh_flush_tlb_mask(d, d->dirty_cpumask);
     }
 
     /* Remember that we've seen the guest use this interface, so we
diff --git a/xen/arch/x86/mm/shadow/private.h b/xen/arch/x86/mm/shadow/private.h
index cef9dbef2e..565a334bc0 100644
--- a/xen/arch/x86/mm/shadow/private.h
+++ b/xen/arch/x86/mm/shadow/private.h
@@ -15,6 +15,7 @@
 // been included...
 #include <asm/page.h>
 #include <xen/domain_page.h>
+#include <asm/flushtlb.h>
 #include <asm/x86_emulate.h>
 #include <asm/hvm/support.h>
 #include <asm/atomic.h>
@@ -910,6 +911,27 @@ static inline int sh_check_page_has_no_refs(struct page_info *page)
              ((count & PGC_allocated) ? 1 : 0) );
 }
 
+/* Helper to perform a local TLB flush. */
+static inline void sh_flush_local(const struct domain *d)
+{
+    unsigned int flags = FLUSH_TLB;
+
+    if ( is_hvm_domain(d) )
+        flags |= FLUSH_HVM_ASID_CORE;
+
+    flush_local(flags);
+}
+
+static inline void sh_flush_tlb_mask(const struct domain *d, const cpumask_t *mask)
+{
+    unsigned int flags = FLUSH_TLB;
+
+    if ( is_hvm_domain(d) )
+        flags |= FLUSH_HVM_ASID_CORE;
+
+    flush_mask(mask, flags);
+}
+
 /* Flush the TLB of the selected vCPUs. */
 bool cf_check shadow_flush_tlb(const unsigned long *vcpu_bitmap);
 
-- 
2.51.2



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 13:44:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 13:44:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173915.1498901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOcIB-0003Ck-S7; Thu, 27 Nov 2025 13:44:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173915.1498901; Thu, 27 Nov 2025 13:44:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOcIB-0003Cd-P6; Thu, 27 Nov 2025 13:44:15 +0000
Received: by outflank-mailman (input) for mailman id 1173915;
 Thu, 27 Nov 2025 13:44: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=kuYy=6D=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vOcIA-0003CX-Ld
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 13:44:14 +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 272bcd1d-cb97-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 14:44:11 +0100 (CET)
Received: from BL1PR13CA0352.namprd13.prod.outlook.com (2603:10b6:208:2c6::27)
 by CY8PR12MB7708.namprd12.prod.outlook.com (2603:10b6:930:87::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.13; Thu, 27 Nov
 2025 13:44:06 +0000
Received: from BL02EPF0001A104.namprd05.prod.outlook.com
 (2603:10b6:208:2c6:cafe::94) by BL1PR13CA0352.outlook.office365.com
 (2603:10b6:208:2c6::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.8 via Frontend Transport; Thu,
 27 Nov 2025 13:44:06 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0001A104.mail.protection.outlook.com (10.167.241.135) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.7 via Frontend Transport; Thu, 27 Nov 2025 13:44: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; Thu, 27 Nov
 2025 07:44: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: 272bcd1d-cb97-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YaR9pBrEK9FRfh9c6+J63+hw6+lauXxt+7xbcPynZ6kYEk/PmNmSQc3Sv05UD7J6dx/HkJ3Gx7Meo/MdGkvNWG0viIe7ep+Ft1ubMXAfqdXmE78+CYP3uX8dFUFLDHvGwq6J2E45TSXZOstoftHfYHayHfWbtSizZ4iZIi+x0AEoEoj9W2eiPR70tmhdwp3yXa+bs3LtfVYv8W7NWrVwEGKT08aiYbfk+76m38+hdGgOAl9pp3Up/e6tiagGZwZAK/rnKGLhgcdvLh8t4WXofVSHcyqeBoJbotCnN5ct8FU4jJlMX9Eepz3LNUK3HYHmAtgN9jbGI5s9wunJNxWTqA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Y5Od9bg8JtiOFmHtfyA5PxGlZBy+yYNjw+KVVj3Rhao=;
 b=eDS/KBYVMryzpSTwLcIkmRAzuCUs4l8MVo8jg9D6xL8oGCmo4wQEHHJpcg/mt2U4rNJsa4n5kn/zddPW5dciP7j3j1sdEaC0M0I/WLSnOzcxlY5zLVXH+Eh41tMRqe6f34SWfK6JFpa3Q8SmOoAxu6ntdRPfr6YHq6bgLpshMvwwyKTtu+3qCF04LoKaruunlpYCd1xMddbAoA/W3qRzOGuhkazqG2ZFETUDLnAF2MhHaBJ+QYVjBDkRmQE7R3xXlY2dv5vDZVewLGZHsJ2l1lilDg5NbLNdDMiMqNupIO/qCL4oV9seXZQ2TFZCRD/BTEf20CuP0SrvWj7QVSIbJg==
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=Y5Od9bg8JtiOFmHtfyA5PxGlZBy+yYNjw+KVVj3Rhao=;
 b=kyYpVHr+AgwkU+DKIdqRneDiYdZiYS3AU8545gB6nn6B4Wd6BY//zEttkUkODKI+r+BNQFvMNXarOGQXOXrpQFj8L/i8IklyCjrVCSneNRc/2qA94rwa84J86Fdj8IOtNCVlGKWc3djpED3G6mjdYhKbCRLKySQGDA0AzDWwOGU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 27 Nov 2025 14:44:02 +0100
Message-ID: <DEJISRV113CH.PGYQKBCR6OMZ@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>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	<xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH 01/11] x86: Add more granularity to the vendors in
 Kconfig
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-2-alejandro.garciavallejo@amd.com>
 <868f28fe-f2dd-469d-a0cf-111885184dfe@suse.com>
 <DEJHD0L6BMLD.1IWHHEXGAHH4I@amd.com>
 <7cbca09d-919f-490a-9b68-26a466c84831@suse.com>
In-Reply-To: <7cbca09d-919f-490a-9b68-26a466c84831@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: BL02EPF0001A104:EE_|CY8PR12MB7708:EE_
X-MS-Office365-Filtering-Correlation-Id: 8d1cf2c4-1b8b-435c-bfcf-08de2dbb08bf
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?YmV4cTNReXNYbkx0RllJa09RTjlkR2toRkp6dTF3ekpMNlZ4R05TYmM3Q0VB?=
 =?utf-8?B?UktXUWoxeFpkQjJyNWtjc0RGWTRSVVpNbUtGRTUvcXJ5R3V3K09xOENnOEtX?=
 =?utf-8?B?RHp3ZVRaaVBqUTRIR0JZcVFFc1AzNXMweTJNTDlleUdhb2d2K2p5c1ZLdjlu?=
 =?utf-8?B?LzE1SDNways2MVBhVFh6ZEJKeTBPTy9KVDNoMStGd2FteEtEcC8wZjQ4VlVL?=
 =?utf-8?B?bXI5U2VNRGRqSWIvMktwb1RQZjRzeWlPZ0Y5WlNrT1VkUENxRWowYkZJdm1D?=
 =?utf-8?B?U2IzM1lCbG5TY1lNYUxPd2VZVTgxdEM3RHp2Z2NQejNWeWpLeXJ3amR6NGJ1?=
 =?utf-8?B?bHEzdWNnajZZc3pzL2lsLzVpZ1RCdW55aEdZZFZZTTNPRGk4ZjBZS1Zza0o3?=
 =?utf-8?B?dVdZMEJFNkk3S2NOMm5YMlU4bWFHT0JLcjJ1MTJpUndpQXFmRlA4dzdUaWMw?=
 =?utf-8?B?bkhZdTlObU5qYXhPWXNpVzdXMGh0YVg0eFhYYU5zMFpwbXNPclZVd214QU9m?=
 =?utf-8?B?aEZJZWlNblovdjFrb0hIc2lWakVtcStpM2xFTVUzQnN3aDRFQzF3UFlJS1A4?=
 =?utf-8?B?UjdQeVV1aDQ0bGRWRXBCUW9jSDFlcXNxTXlSaHVZZ2lFNlZNRys0blExQ000?=
 =?utf-8?B?d2lPY2V0QXN2bk1BTmVYMU5Od2JnR21FRDNWYTU2NU5QU2YrWi9NNktXYi9G?=
 =?utf-8?B?M3NOQXY3ZURkK0l4eHJIT21QS2hwclRic1MzTlRzWi81aFBhTXpmeW9RUEtS?=
 =?utf-8?B?bC9zUXV2YUFiU29wN3pJVEZUakc1dXV4WVlFbSsvTVZEOWpmSTE4WFZPZ29y?=
 =?utf-8?B?YzhOMGduQkpidlNaS3RLU1ltTzhrT1pxTDZxb2ViWkxXS3piejFCUGxkZ1No?=
 =?utf-8?B?SUJ6VlhpSkRqdGUrTENycWhXNnlMNXZiU0luM3J2ZkVNVUlWalEySDArVE0z?=
 =?utf-8?B?VGE1M3NJVlllMXNNeFVtVlZJbTJseTZnTlA3M05MOXRJc0pTVnZHV002aDdL?=
 =?utf-8?B?R0ZHeG51RW9uZjlSTHlnYWJSNys3dmhtNGM2a1ByNDBySURScS9NWFpha2xS?=
 =?utf-8?B?MEF3L0hOUkZtUHlheUdEQm5Ob0dOanAzNDRBZHdYWCs5cEU4YWlaeENpbi9Q?=
 =?utf-8?B?YnBlK2xvK2xoNFBGL0I1dW03MTZKYkF5OVBubWlOZnNwV0tlWmR0SWVjbEFz?=
 =?utf-8?B?ZDFMMjA4SnJ2aVpPWFh0QW53OElrczM0WjdTRkRJMVM2Tm5TZFJQbEprSVJL?=
 =?utf-8?B?ckpHSUoreExlRDBoQzdRWXVoQTNuYWFZaXNuWFhOTnVIMzQ3THJhbkE5cjEy?=
 =?utf-8?B?M0FmV1YySmxyVlgzUXAzc3JTMXgvenFoazhjYUFxTzRhNHhIUGI2L1RjZnN2?=
 =?utf-8?B?RURlRGY5bnlnUHBLQVNlNFpuZWN3OXZ5ai9HMzEwZ1Rta0pGbVFEU3VMVzBC?=
 =?utf-8?B?bUhDNFo2Q0N4MURSdzVCMUthdmREa1dHNlphcVJiNFlIMlI5QSs1L3lHMnFi?=
 =?utf-8?B?TFBrK3U0TW5KNjBBeUo1eU05eUt0TVR2WXA1RTVhdGNQYTBNa0xNWFRhQk5w?=
 =?utf-8?B?cC9UZDNzcXZuZUhYc1JheklMSGFCZGdBemJXNWpIOWhWZ2FBVmpyNDkxRGJ6?=
 =?utf-8?B?bCtKY2ZxYjRtSnMrbHhQcFJxUVFNRTh3NnhGMGlGb1pRTGtiV3BJTzRSb045?=
 =?utf-8?B?S0ZpdHZzbzJpMW5kMVNlVHhjUG5uVUhodmpBa0lzRlNRMnNtSmVaMG9wTElP?=
 =?utf-8?B?RWpmWnplMHpZNHhpTjhFWXdyL0RIbkMzZUdFZzUrMUlkSTFaVmFwcXRhUTQ5?=
 =?utf-8?B?Z1Zrd3RtUHplSzRJZG0xTkZDSDE0cTlObU4xRUwvMWJuWjJYQ2c4MmdYd3Vk?=
 =?utf-8?B?Q1R6VWF6NVFGUjBTb0ZrbzBxNWI0T1ZtRUcwRElRN1dmcFpLbVlxZGN2M2RU?=
 =?utf-8?B?OE0xOFJ1RTQzd1ExN0ZVZnRyeGJHN0syWnZtYUovcWwwMTB2cG1zYmkwRks5?=
 =?utf-8?B?Y3Z1azdqQ0dQTU01S2UwSXRxc1pDNlo3dXdzYXFVVWF6QlJ5Y0o0ZE5rWlJ1?=
 =?utf-8?B?Uk9KSzZvWHZwejdwTWNaMS9Ybml6aUZtNTZMWHU3WnRVU05ud3l5TEpIQXhM?=
 =?utf-8?Q?K1wM=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 13:44:06.1659
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8d1cf2c4-1b8b-435c-bfcf-08de2dbb08bf
X-MS-Exchange-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:
	BL02EPF0001A104.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7708

On Thu Nov 27, 2025 at 2:19 PM CET, Jan Beulich wrote:
> On 27.11.2025 13:36, Alejandro Vallejo wrote:
>> On Thu Nov 27, 2025 at 10:43 AM CET, Jan Beulich wrote:
>>> On 26.11.2025 17:44, Alejandro Vallejo wrote:
>>>> --- a/xen/arch/x86/Kconfig.cpu
>>>> +++ b/xen/arch/x86/Kconfig.cpu
>>>> @@ -19,4 +19,49 @@ 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"
>>>> +	depends on 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"
>>>> +	depends on 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"
>>>> +	depends on 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
>>>> +	bool "Support unknown CPUs"
>>>
>>> "Unknown CPUs" can be of two kinds: Such of vendors we don't explicitly=
 support,
>>> and such of vendors we do explicitly support, but where we aren't aware=
 of the
>>> particular model. This needs to be unambiguous here, perhaps by it beco=
ming
>>> UNKNOWN_CPU_VENDOR (and the prompt changing accordingly).
>>=20
>> Right, what I do in this RFC is have compiled-out vendors fall back onto=
 the
>> unknown vendor path. Because it really is unknown to the binary.
>>=20
>> I could call it GENERIC_CPU_VENDOR, or anything else, but the main quest=
ion
>> is whether a toggle for this seems acceptable upstream. I don't see obvi=
ous
>> drawbacks.
>
> I'd recommend against "generic" or anything alike, as it'll rather sugges=
t any
> vendor's CPU will work reasonably. I'm fine with "unknown", just that the=
 nature
> of the unknown-ness needs making unambiguous.

Got it, if UNKNOWN_CPU_VENDOR sounds better I'm fine with that.

What are your thoughts on the panic-on-compiled-out-vendor vs use-unknown?

>
>>>> --- a/xen/arch/x86/cpu/common.c
>>>> +++ b/xen/arch/x86/cpu/common.c
>>>> @@ -118,7 +118,7 @@ static void cf_check default_init(struct cpuinfo_x=
86 * c)
>>>>  	__clear_bit(X86_FEATURE_SEP, c->x86_capability);
>>>>  }
>>>> =20
>>>> -static const struct cpu_dev __initconst_cf_clobber __used default_cpu=
 =3D {
>>>> +static const struct cpu_dev __initconst_cf_clobber default_cpu =3D {
>>>
>>> This change isn't explained in the description. __used here was introdu=
ced not
>>> all this long ago together with __initconst_cf_clobber. Maybe this real=
ly was
>>> a mistake, but if so it's correction should be explained.
>>=20
>> It wasn't clear to me why __used was there (I assume it shouldn't have b=
een),
>> but it definitely clashes with the intent of having it gone when UNKNOWN=
_CPU=3Dn.
>>=20
>> If __used was misplaced to begin with I'm happy to get rid of it in a se=
parate
>> patch. I don't think it warrants a Fixes tag, though.
>
> I can only vaguely reconstruct that it may have been put there so the
> .init.rodata.cf_clobber entry wouldn't go away. But as long as the compil=
er
> also eliminates the function pointed at, that would be of no concern.

ack.

>
>>>> @@ -340,7 +340,8 @@ void __init early_cpu_init(bool verbose)
>>>>  	*(u32 *)&c->x86_vendor_id[8] =3D ecx;
>>>>  	*(u32 *)&c->x86_vendor_id[4] =3D edx;
>>>> =20
>>>> -	c->x86_vendor =3D x86_cpuid_lookup_vendor(ebx, ecx, edx);
>>>> +	c->x86_vendor =3D x86_cpuid_lookup_vendor(ebx, ecx, edx) &
>>>> +	                X86_ENABLED_VENDORS;
>>>
>>> May I suggest the & to move ...
>>>
>>>>  	switch (c->x86_vendor) {
>>>
>>> ... here? Yes, you panic() below, but I see no reason to store inaccura=
te
>>> data when that's easy to avoid.
>>=20
>> That's intentional. Otherwise further checks of c->x86_vendor in other p=
arts of
>> the code may not go through the same branch as the one here.
>
> Hmm. I would kind of expect x86_vendor_is() to be capable of dealing with
> that.

Sure, but that's not done until the end of the series. and otherwise I'd be
introducing the fallback behaviour in some places and not others. I could
remove this AND at the end. Or remove it altogether if we go for a panic on
compiled-out vendor strategy.

Cheers,
Aljandro


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 13:51:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 13:51:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173925.1498912 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOcOw-0004mZ-I9; Thu, 27 Nov 2025 13:51:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173925.1498912; Thu, 27 Nov 2025 13:51:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOcOw-0004mS-EL; Thu, 27 Nov 2025 13:51:14 +0000
Received: by outflank-mailman (input) for mailman id 1173925;
 Thu, 27 Nov 2025 13:51: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=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOcOv-0004mM-1g
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 13:51:13 +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 1cbc7cd7-cb98-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 14:51:02 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-477770019e4so6635865e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 05:51: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-4791163e36csm31215715e9.9.2025.11.27.05.51.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 05:51: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: 1cbc7cd7-cb98-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764251462; x=1764856262; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=w0cOrI2lIwOEb9+yW/dCtZzgoJVRTB+hiiybPe2KgL8=;
        b=Wu/bkwijytW3/oA+XYy7kqhWhCD5PtdbY30o4NTWRcy1m25HZVMnzfxGcKVjkARKx7
         M1LxROe1IYvJoJwnmZQVk8joeOwumwPEV2N3RSMYOiKflvEFFd8fpFM/D8W4yDg6+P76
         Ayyle5l5NcxoaQuhM3r3BWwcmOCs/EcteupuRcTXR83ne2xU8xSlGwV5SlAVMAY8JeMB
         7u0aFJx/KlqhGl6hIY3BDB26jpAE3Lu6MTv3wieaurSiu/ZKUQ1PRhYTis7re0kHqsdC
         eARqo2C+ugsO/hMCPXWyzUhPlSDHli48Zvk6skC7E7PHUmwzb7TDI5tTE9IYa7rYwzWt
         0v8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764251462; x=1764856262;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=w0cOrI2lIwOEb9+yW/dCtZzgoJVRTB+hiiybPe2KgL8=;
        b=tMtOpOzCIZYLBtm8KDFWcGTEQHX75SRwdauJtsFz2Tk1eFSem+XxUAP9k3e6jZiCB7
         5w6/7SVr7n7OjoxHyjSFoz66R8K76SGv5pm/WqIA5qkkOaQoYFcREd/fxHaSf+WokpiK
         C0qIxBVUq22qTITUh2bK+COMkJhSDLMdCrbXV1hVFZjMImCJHHgo8zpDfPf0piNjSxNj
         PmlAtvlvkRY34h5BlMPQtGHvI+btQAC2MDzNSfZYNxb14nXA2hn9NFOraCjYnA3AaeLx
         m382DhCgGy7ZwoAr6Zk6W3MHyHSfWts3UfR8oWEVMyFei5W5Q7IJdnUPmogHLWCflSVt
         7+NA==
X-Forwarded-Encrypted: i=1; AJvYcCUZey7T4E/42lLGhIvbz4kL1zlZKoTeLSxCAXHkO640v6VeFMo39rjUNT2ETZCTd9VQ2KH5uvWluvs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxfCJtIUO2qBBhvHuSpMOlTaVNCbQGX5/wGtH5FqaScwgTCIWyJ
	BqBi5VIa0vUE9N6W7ywUKfmHSLbexCmvR41vnqLT3yqmk2KNkwBUhj31XTv/ixZKMg==
X-Gm-Gg: ASbGncshh7hJh4Bxk8zlTvFhAfbWMa57BJSEBYl6fCBvoGTPrP9r9qrQxcJ+eohyTCa
	lcHzcKSkS0T394iPPkrZHHv+OUDZ0GXVfwO4PPXogz0zSHB2ccfTOr9/1kHPWRqAAZhFdGJ63cw
	Gh4UqjJcIza3ADxb/fw+Gut+0eUpFqeCe/HIeQsZWhSsAbY5LOHcs5yIBf9J/cD36lHBRdXQwml
	PnFNKtyR2yrwtp/edkwSuAchqwyf0FWd9qrPbvA+LnbaM9BIXKZ2lb3qTjucaHFsxkt1oxt2s+W
	yp0MgAGZZ4RiA+XwsGOZ4X/rB0D2HI9Cx349425lNOb3qdxYUG8/neM1R8oaEWL5Sb1MaN0ZCtC
	bk6LgLDTyJE/2bUpY4ZPAEdiUZqxDHmhaDSbTgOh62t3gdaljSWVsZKYRHB+BNnAzzrtowu4DwG
	C/2f2m3Hk/HpNHQ+A+an82G7x7nlDootDaLvgyo2pYmr8qJVyIxRrvIrsB5q4/GIT65oRLlhcG2
	Rg=
X-Google-Smtp-Source: AGHT+IF6Iu+tXTsSs8iV0TTbucF0JR003nLDgTCNyZRXhW2MqcdqDLgKJUBUzcc9x0aRKdfSnl7AGg==
X-Received: by 2002:a05:600c:1d26:b0:477:9cdb:e32e with SMTP id 5b1f17b1804b1-47904ae0654mr105162695e9.9.1764251461981;
        Thu, 27 Nov 2025 05:51:01 -0800 (PST)
Message-ID: <186afaad-2476-4c84-9f47-1e0ed5294d33@suse.com>
Date: Thu, 27 Nov 2025 14:50:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 1/4] x86/ept: Drop shadow mode check in
 ept_sync_domain()
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1764248710.git.teddy.astie@vates.tech>
 <f63e38b0edbc2c49a7849af8896089c7f21c8956.1764248710.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: <f63e38b0edbc2c49a7849af8896089c7f21c8956.1764248710.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.11.2025 14:39, Teddy Astie wrote:
> This function can only be reached from EPT-related code which is inherently
> HAP. Thus it is not useful to check for shadow_paging (or lack of HAP) there.
> 
> Moreover, it is an error to call this function in the non-EPT cases.
> 
> Not a functional change.
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>

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

> ---
> This function is only called through EPT code and by vmx_domain_update_eptp()
> called by EPT log-dirty logic, and doesn't look reachable from shadow paging
> code.
> 
> I think the original reason of this check was for eventually allowing guests to
> use both shadow paging and HAP and switch between the 2 dynamically.

I don't think there ever was such a plan. The function originally lived in vmx.c,
and there - even if just as a safeguard - having the extra check may have made
sense.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 13:57:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 13:57:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173936.1498922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOcVC-0005pz-5x; Thu, 27 Nov 2025 13:57:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173936.1498922; Thu, 27 Nov 2025 13: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 1vOcVC-0005ps-2s; Thu, 27 Nov 2025 13:57:42 +0000
Received: by outflank-mailman (input) for mailman id 1173936;
 Thu, 27 Nov 2025 13:57:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOcVA-0005pk-6S
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 13:57:40 +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 068c80e1-cb99-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 14:57:35 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-42b31507ed8so836844f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 05:57: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-42e1c5c3016sm3895526f8f.1.2025.11.27.05.57.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 05:57: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: 068c80e1-cb99-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764251854; x=1764856654; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=d9YbivnNaLxUimlbDhUN4FRFdoKH3VoIwS6V6bM9kqI=;
        b=Cvkyp4n2RoZB3+yU4bO6ekvVHgL0gVj0S/CzkL3GxZzkDoQotocdwR9SxzaJlmcC76
         2YjAaKcDiAlBvB9FU36KNpSj/gvwl84P7+mfnDAeiz1oYflNeFktwHu7p45uPwoc40PJ
         8eU20/BmiBhSyoXNrpsmgc8UdAluBu4kOHlg+MwSkCTOem5/rD8wowOMF8fGOSgoW2Yl
         Yay0c4AH1NMsrSlvIITgKPjhqWv4Bwc6Xek296VH5pgUZVQZaeZgWai+8dNJnDuV9wki
         FK2HSnnSDHKGtTnIg6ATZ3wCfja/PYjSP78zH1HpzVwD8Ti3hdVzGZUw0CySuukfZLYi
         2hMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764251854; x=1764856654;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=d9YbivnNaLxUimlbDhUN4FRFdoKH3VoIwS6V6bM9kqI=;
        b=gBX+xxEcw91f3AjN9YuAHKa8wcl0Ycssvjnz7W02Wj+re4gumfQChTNaYCBULQETkT
         x5dDQOsQOP0l5K8JszsV+yZzq2drKjWSZdJtpX/A+85XjsNiOl37EY+DQJnlEN+nbkok
         ZzRsemqbkriyRuCJS7D44hDyuA/g8hvKs4EpxdFHa4dDBpwf3DNDRYM8tp4rBmtAADXi
         e/ckE62FvNTqr69vAl4Kk4kX6bYOONQHjxr5RU9TbjzGPtvFW4Ly5ZRWmbkE4wlP5Ph8
         QHYgl2Nqhr0XDMVEGn5LywaJN5t1++Jkv/q2SWyMrD53ouWGz+gnRx/DhlnYB6/dbnpY
         wZNA==
X-Forwarded-Encrypted: i=1; AJvYcCUJxOMuUjqa/yTVRpUxwmJoxEGk6GAJNSc5fE5hxuB9VQbSI9StI/oxnMV7JyB9byc1taSHPHzi6/A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzCYo9SxeqquvesREuK9q62EmewLpcwSTl8tPr5lkaIRRvaLgLI
	7aoODgkJ8WZHKsclTA2b/0HO/87y9ezvVBOIdtOoqEyA9cSqFoMvLXDr3ImFyTL5+g==
X-Gm-Gg: ASbGncv/Oyp8oG0fpKXiO5QUaj5+oIPIDkW7B8s600rl8dA0C4rVo5iWx1RFBNlRcaL
	2lxu+jw8sdrp/UHT3y/3YBPiMD3wrdBorD5g0gjBznpxiJOtkW8vKz91dMhyURdoaxM63VhzGU5
	pbuQ0Vlwr0uhL/8uibs9M0a72p39HJEBo7xMNF2+2PzpZrQWOum0aMwI71tl2B9dIDe4l34v5se
	knElelAWuaZlRnFUeh8x0qAiR140uSsvkQSj5r3vqGlMzA+nQOs3LTZCBJiolN1jc10MPsz62Qc
	4SqrS+k8yb4ApWTlfl6Tq7aPzLYfURREn/LK50ClaD8XRBjRDoNriHz1juvd3PLDsBXYo+bYgdm
	4tGjHnY/hMt7EeWZ3+tCYVd82LGl1Y9cor8FrBW3N5U419WYIbed7vlL8bXdIqMdDxS+dEjVYdi
	36pFuCFZgIwbVfheUU6WL2Uijv8eRcIg6PpcvMbadH5ZGB3qdy3VTj5eaEHinXR4DK2a8eyKVyz
	s8=
X-Google-Smtp-Source: AGHT+IE6Gq5kFEwabpMoeRAqgXQTKE7oLVY1w9hiUnApoZqoxBEoUgYXcT2wuDyBSVyi2PNcQB8XUA==
X-Received: by 2002:a05:6000:4308:b0:42b:5567:854b with SMTP id ffacd0b85a97d-42e0f356534mr10358836f8f.45.1764251854381;
        Thu, 27 Nov 2025 05:57:34 -0800 (PST)
Message-ID: <4d99d2bd-a495-48d7-82ba-bd7f5d9c2104@suse.com>
Date: Thu, 27 Nov 2025 14:57:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 2/4] x86/shadow: Replace guest_tlb_flush_mask with
 sh_flush_tlb_mask
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Tim Deegan <tim@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1764248710.git.teddy.astie@vates.tech>
 <0e8e2607de4f484e7eb37d64799bfc53a56d3fa9.1764248710.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: <0e8e2607de4f484e7eb37d64799bfc53a56d3fa9.1764248710.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.11.2025 14:39, Teddy Astie wrote:
> Introduce sh_flush_tlb_{mask,local} variants used to flush the
> tlb from within the shadow paging code. This is meant to decouple
> shadow code from the more general guest_tlb_flush_mask.

And why is this desirable? You now open-code guest_flush_tlb_mask() and
guest_flush_tlb_flags(). That's a step backwards, requiring a meaningful
win elsewhere to balance.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 14:00:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 14:00:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173947.1498931 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOcY7-0007Q8-He; Thu, 27 Nov 2025 14:00:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173947.1498931; Thu, 27 Nov 2025 14:00: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 1vOcY7-0007Q1-F5; Thu, 27 Nov 2025 14:00:43 +0000
Received: by outflank-mailman (input) for mailman id 1173947;
 Thu, 27 Nov 2025 14:00:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOcY5-0007Pv-LB
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 14:00:41 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 74eb2bdf-cb99-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 15:00:40 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-47790b080e4so4056255e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 06:00: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-42e1ca1a3f1sm3662121f8f.28.2025.11.27.06.00.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 06:00: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: 74eb2bdf-cb99-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764252040; x=1764856840; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+hh/H9+a2nmzntRCVdm/MBGgCA5WgecCNBi1C9iDcTw=;
        b=PjTTAuKnQp8m7ODc7E2QBBpRV0YIPgzkf+YLmJIgrDYBm8HdC3HcuqGoaRzmT75HFV
         5dJKgs8W3ku6TFIDIcm+vcwoNZUGd9YlisZ8yYC+rzGaqhyw4EHj2hF8nsHzyw6jDR8j
         VqW0ijhAKHbsnLLbU9oopODFgyC5dkQ1QXTlTYsMXt1dfwpvRqEzzSe85dKFybjri73H
         cGF8Qn79MLl5OiYo0AgF1CZeiWWdKOtD0xA+6YZ5ikuhyy8Lp3Xqpr8ol93Fua9GHxNd
         Ex7efrxVs5YLXvPKeU8OS6VnFi1nYj3Fn727X81eTsGBqKL8UNtTS/nUdBgr//UEzk4D
         3mlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764252040; x=1764856840;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+hh/H9+a2nmzntRCVdm/MBGgCA5WgecCNBi1C9iDcTw=;
        b=D1o59AHLmmpjnN7ORJnqEL0YnGIah2jccs8kNEHOjMxizKcmN9nN4KVEwi0U2abZOj
         zOhBuWRuhQy5SnjTeaMpfVKAxnzZeMsXQHDS4PMjerf+5AKUI1bvH7LAd6sVj2Cv0eiM
         SsFKSd5qWhGSmJTBXOe6SHwFZ/tYatsdNbHEMOqAuklGwVMnjntIzFvb1Ndpsgn6rg2m
         tnYSlxMmu4AmsDyzB+dbnRoVns8ujLfHlUyKVBIPDmpqoyBKBVc9FAST1AL62Cp7I14d
         QgrEv1L6WcOCw5MAxe5LLR8rkppj82ORLXlAa9nwrRBPaXBo5JIhvJ5QPUHBCn3d4sCs
         9G6w==
X-Forwarded-Encrypted: i=1; AJvYcCX5ipZvRf8nqSwZDh9Cfx0Dycyxhn2bnSVmKsOHoc3QonI9lzoJoqc9C0HOZttR72dTdMwE820eXwY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz8P5SmQOEJj/1lDHeA6orDPaOR5gzqemEAtYe/6jo2RXCIkhY4
	TrgfzP58H0aqSrXGIBnsLeaZ6JLGWH5ViTiR8d1v5WPOMi+uCaDsLsWC9/zMrd7USw==
X-Gm-Gg: ASbGncuMSF5Su56MmfuFPznFRdK747IEfQ/tc6XM+2g6BsWhPkJGx7t1lNj6vaS0520
	1LGvKUk+pgSJww19ubFhiF4ie8cIHrQ6AgDCu0uhE/GDWbT+GPhmcIpiqNpb8zXUuzQmcuflOB9
	/q+yvL2I+bIjGs24fgc8aESca5m0Akc3W1cF+L7pxTwIgyWh9vHsG6xYSc/Ff1J+VM7YukitGiM
	Pmvj2Whp2cD75lNaSZ1lAvsdecCfjD4GV5wjDTGSwx3d8K+zN2g/Afb2zEBMEUjyChZBBqObwD0
	nXQU93iwbS7bChqnv3Lm+x9i0maXuhXU3nilE6QrQ37hIu0U23HFhQodUvPLfNvLDpWJXCt2Kc+
	egMd5zbRPXwjK8r+4fx+I5ot0jGgSAdyvSd8XwzolAAdi5gj1yETKyRqIgS2AK0DemBaBcsR7rp
	qUJhz1ge6fS81Ze0fKZFYdWetahYFPTI+igw7fg6NK5+UHTOyICgyX1RaTjRT4tDk7i5DPxvN9t
	to=
X-Google-Smtp-Source: AGHT+IGwGqbr/MwnAU69FDoHG2q5YG6m021ESpczSxx7Bp/rafOau6GbAvkyKvB8j0oPxeazGcdQ8Q==
X-Received: by 2002:a05:600c:4591:b0:477:7925:f7f3 with SMTP id 5b1f17b1804b1-477c10e1cacmr230379935e9.14.1764252039518;
        Thu, 27 Nov 2025 06:00:39 -0800 (PST)
Message-ID: <d72627cb-242a-4ed5-92df-40fad49aa043@suse.com>
Date: Thu, 27 Nov 2025 15:00:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 01/11] 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>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-2-alejandro.garciavallejo@amd.com>
 <868f28fe-f2dd-469d-a0cf-111885184dfe@suse.com>
 <DEJHD0L6BMLD.1IWHHEXGAHH4I@amd.com>
 <7cbca09d-919f-490a-9b68-26a466c84831@suse.com>
 <DEJISRV113CH.PGYQKBCR6OMZ@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: <DEJISRV113CH.PGYQKBCR6OMZ@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.11.2025 14:44, Alejandro Vallejo wrote:
> On Thu Nov 27, 2025 at 2:19 PM CET, Jan Beulich wrote:
>> On 27.11.2025 13:36, Alejandro Vallejo wrote:
>>> On Thu Nov 27, 2025 at 10:43 AM CET, Jan Beulich wrote:
>>>> On 26.11.2025 17:44, Alejandro Vallejo wrote:
>>>>> --- a/xen/arch/x86/Kconfig.cpu
>>>>> +++ b/xen/arch/x86/Kconfig.cpu
>>>>> @@ -19,4 +19,49 @@ 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"
>>>>> +	depends on 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"
>>>>> +	depends on 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"
>>>>> +	depends on 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
>>>>> +	bool "Support unknown CPUs"
>>>>
>>>> "Unknown CPUs" can be of two kinds: Such of vendors we don't explicitly support,
>>>> and such of vendors we do explicitly support, but where we aren't aware of the
>>>> particular model. This needs to be unambiguous here, perhaps by it becoming
>>>> UNKNOWN_CPU_VENDOR (and the prompt changing accordingly).
>>>
>>> Right, what I do in this RFC is have compiled-out vendors fall back onto the
>>> unknown vendor path. Because it really is unknown to the binary.
>>>
>>> I could call it GENERIC_CPU_VENDOR, or anything else, but the main question
>>> is whether a toggle for this seems acceptable upstream. I don't see obvious
>>> drawbacks.
>>
>> I'd recommend against "generic" or anything alike, as it'll rather suggest any
>> vendor's CPU will work reasonably. I'm fine with "unknown", just that the nature
>> of the unknown-ness needs making unambiguous.
> 
> Got it, if UNKNOWN_CPU_VENDOR sounds better I'm fine with that.
> 
> What are your thoughts on the panic-on-compiled-out-vendor vs use-unknown?

Both have benefits and downsides, I think. The choice may need to be another
Kconfig or command line option. I'm also curious what other x86 maintainers
may think.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 14:06:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 14:06:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173961.1498942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOcdX-00006v-9Z; Thu, 27 Nov 2025 14:06:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173961.1498942; Thu, 27 Nov 2025 14: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 1vOcdX-00006o-6d; Thu, 27 Nov 2025 14:06:19 +0000
Received: by outflank-mailman (input) for mailman id 1173961;
 Thu, 27 Nov 2025 14: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=kuYy=6D=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vOcdV-00006f-QN
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 14:06:17 +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 3bf5c17b-cb9a-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 15:06:15 +0100 (CET)
Received: from CH5P222CA0007.NAMP222.PROD.OUTLOOK.COM (2603:10b6:610:1ee::19)
 by MN2PR12MB4287.namprd12.prod.outlook.com (2603:10b6:208:1dd::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.15; Thu, 27 Nov
 2025 14:06:08 +0000
Received: from CH3PEPF00000015.namprd21.prod.outlook.com
 (2603:10b6:610:1ee:cafe::9d) by CH5P222CA0007.outlook.office365.com
 (2603:10b6:610:1ee::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.15 via Frontend Transport; Thu,
 27 Nov 2025 14:06:05 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF00000015.mail.protection.outlook.com (10.167.244.120) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9388.0 via Frontend Transport; Thu, 27 Nov 2025 14:06:08 +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, 27 Nov
 2025 08:06: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: 3bf5c17b-cb9a-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Idkq4YeYeWbWGBSno6h20BKh5qWvyPPhKT4vj9482Nn5HFxe+9nnpQ1wxdPz83mH3g44NehqayQzuRyEK4dtRJrVNb1K/FSeBx9bRpR//bt2rlZz8io4csSH6BraS1IIVc9RKTKMEoh65DL6fjoP8yqDmpDEvAuwlFuS4F4ZASH2Rx13Rxsy6B4B2UYtxHc3X0obWy7iGPKlt74CMw285zJGLncG/M+Jc8Hi00kYtxrV6balx0UtLww+Q9zG21TB23zoktqAO7GovbyVuZW6ZGk2160UhAfoxuvg3CEWrtJY0jHnCEWOn3UEnTbAFgW95xbahVUDAGueIy+CZB3PNQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DWlQ8IXeW+nICMCUflGKxsnmKY95bPnyFgfdCZtg6pk=;
 b=jQppsqkrmRcmxsBruoac2BUZGLXQBffuU8eeGuEVt/uxNRACtwhtiGfPgSjPHpYuhxMPoPopXrM1FBeXiwkqNxN/IkbaBSe/2SCH+IEH9+D/rzzsKikok1kd8yn3s4yX8uhB5Bi3r0WFfyIULfAtishSA4yJBlpqykmofsPGLToqeCiK9y99P1oD5K6fmZLzBTjWeeXlMSuDAElN8gqCv1q9wEIdgoLYXln9lLQZhNhfe2+F5Pa9Qs4dlXD8ZLECTooFWtjEOtlFS6OcMDAXqEQNqIfQH/QHmPdOL1wapWLrMvFn024jveF/I6BN1RPJmHXs2PTjF+uTVEYn6BqSXw==
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=DWlQ8IXeW+nICMCUflGKxsnmKY95bPnyFgfdCZtg6pk=;
 b=w3oVFZ2zZjTjkp/JJ01134+GN0UTQKYLlAJJTtbiCz3SLuLGgbknXOZX1u46/EO4Z8wyHhhCeTX9BSna4Kr/anb0eZlQ8Are1MT82wO8/DxQbp5xqFGc4wmVRt90JsE+AGcDK1WLaf+DXhjge2wD1Nh7MZ0pNpK1Q/mFNTPv0SU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 27 Nov 2025 15:06:04 +0100
Message-ID: <DEJJ9NEIB99E.1U013WYUA7TZO@amd.com>
Subject: Re: [RFC PATCH 03/11] x86: Add x86_vendor_is() by itself before
 using it
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>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	<xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-4-alejandro.garciavallejo@amd.com>
 <d71b6b55-6745-4ba4-9a4f-d5e7b08f0aec@suse.com>
 <DEJI6U37EMDI.1F7QHW1I7WV76@amd.com>
 <1ea5b7d2-6d73-4133-bf32-085559f6df41@suse.com>
In-Reply-To: <1ea5b7d2-6d73-4133-bf32-085559f6df41@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: CH3PEPF00000015:EE_|MN2PR12MB4287:EE_
X-MS-Office365-Filtering-Correlation-Id: b9021241-3d90-4a28-4fbc-08de2dbe1d19
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?U1hoa1Q4TS9hNHJwbXUwSmtUM29DRlZka2NkRHdyRkR1YmpLZURaMlpzMWVm?=
 =?utf-8?B?b2EzbHEzWW5uOFlKSjFISy9zNVlTMElscjEvdndYWmx1c2R1TWp1R2JKMWRW?=
 =?utf-8?B?NVg4c3FwdkROMlBqQXJlR0E0UGEyaFFtQjFoRDFFaWtBUWU2UVNTK0RyNHhQ?=
 =?utf-8?B?T08zMzNQbUhCUXJpWlFVZzZxNFRRZ0IzakdhSE5JbGtLZk9UMHE4V0s5WVF0?=
 =?utf-8?B?N3E1S3drMUU5UTV2OUorOGNWTVFtL1Yrc3AxbStlQm5lcjFNUjJidnM1VWxq?=
 =?utf-8?B?TDk4WllYVjV2MllIMGhQdkRyU2diTlI1dUM0NldEOStDSU5FNjdvNUx0VWs3?=
 =?utf-8?B?RGliQlAwMFl3OXBvd2h0NmlBQnRZKzIwaUVtK2J4b0NvaFFnMjFyMDRoNnEy?=
 =?utf-8?B?STl3WTJ1M2pDejBTWUNzN2kxenE1SVJiT2pWcXdGeERDRUpIaXlselE3ZXJL?=
 =?utf-8?B?cm1yS2dqM1F6S3JKZlhGZHQwcnJRcW84Yk9ab2V1QWRKUlNsdi9WY21qZFVU?=
 =?utf-8?B?eEUxZWtkaGtWVk1xM0ZNczJOcVZQZUN1MDRXdDZsWmxnWlIwMldpcVkvNS9w?=
 =?utf-8?B?SysyUG5VU2pXZmo3R0dKRHhtQk9hNUNoakR1SDV1ZmltTDFhYi9reTdiWlZS?=
 =?utf-8?B?c2ZoNXJYbmhZNThhZ0Zkc0JkdkprVG5MM2ZMTmNjWTRZeHNjL0lZNUZUMFEz?=
 =?utf-8?B?ZlpFWTNvQWhqenZjWjQrdXFwL2t4ZGVUYVRmMmt1djlMSXFHbXlYZ1I4a0ZP?=
 =?utf-8?B?L0FPUWtNRDcwcnFmU2YrM0puRDZVZjBDNm55K3dDZGdKd21sKzk2TWExT01t?=
 =?utf-8?B?bU5OUlhxK1ErMU80b09mWWdTUlBCdUJiQnIvcWRncno5Y08vaXlaMnczSE1j?=
 =?utf-8?B?RTlnTDh3MjZDVndYbytQQTJNYkJpVERFaGZMS2hNSVRQM3Y3c2x6dFVoUXZK?=
 =?utf-8?B?bXNTVTRvMldaempLOFhqdFQ5RGw2MFJsZjdRWXJMMEpsMXd4Qml4ZnFMdGFU?=
 =?utf-8?B?dnRNRWFMS1JEUWlVQ0FNZmwrRFdWY05DUjFINmhlNUY1dk5rL2NLRCtRZGlt?=
 =?utf-8?B?MHdwRDhJNzNZQ2d1ZXZzUzZUc3Z3ZXg5aS9nUUJZbW15RXYyc1dvZ1dBUXlU?=
 =?utf-8?B?elY4Y0xWODlnc281OGd4SWU2WXZPTWo4SFI0YkxMQmRhRng3ZGpIWkhzbTlF?=
 =?utf-8?B?bWFZMHI4YlNKKys1SVNxVzYwQ3MxRUhEQWpFUmp4MWxwaWdoOStCZVo4Q3FR?=
 =?utf-8?B?UU9QU3dObHV5c1oxQ2lNbjN0NElRNzVqUHh3M0hpeWxWaW5BV1pSSE5pRUY0?=
 =?utf-8?B?THltdUhBNW80WkEwUi9tdkQwUGQxaHZWdmttTTZ4TVV5RnpLYzZSV0lOandD?=
 =?utf-8?B?RVVhckRUdXROZlZnTHJvbmpRakgyQldiT3hZejZRYjJtQmVzSVBYSWhXRCt4?=
 =?utf-8?B?RXBEMjd1SFA4a1ZwYWRSMFRjQnJLOHBuQUVRL0pQTzlibUtMRmFlbmtvWFVY?=
 =?utf-8?B?UTVjZkc5S1RzWGtyM0NYMW9KdU9GNXVicnJ6bUgzaS9sUVludlZ3SVVkRFYx?=
 =?utf-8?B?dkZVaFRyZnlYWG1zeU9iRmZ5a3VteHE3UitDNEpZYzR6K29DWUwxeUJzZlBs?=
 =?utf-8?B?S0NFendHZU1jVlVhTnp5TWZYR0NwUUNkZ3RqMzVGVDFyMkh6ell2NkNNRUZL?=
 =?utf-8?B?R1VaYkN5YTAzRGlzQyttTCtUbVVVYzZNanYwN1RTTUVqdWFDcnlTOGVHUU9w?=
 =?utf-8?B?aEZjZk9IcFpCSzZKcHoxbmpkemM3bmV1WnBKNmxRNlBCcmgyd3IweGZiRDJZ?=
 =?utf-8?B?SExXTk9LN3IxMmQvVitPbmIzRXN3eVY5MjA1RkhFdEdzZHFqSmlJOGx5UFVx?=
 =?utf-8?B?UjBScHFWbVlvY0szbkxLUmNYZVVWU0NMcmFadzlHdkd6Uk13SVJQNzJTelBB?=
 =?utf-8?B?QmppOXVJSDNvc1pUNXhyczBuc29zbEdkNVFJaG9KVklka1ZoMTV5ZHhHZFNt?=
 =?utf-8?B?Y0ttRWVCdTQvNFdoNXA3NWZiUTZDS0h2bGExYkVvcnk4MWZ1SklkUEt4Z0I4?=
 =?utf-8?B?bThpemhoYmQyaGNiYWFybVdYeWZaTDE1Q1o4ckhObXBaV3VaRVQ0emxmajlr?=
 =?utf-8?Q?lW7k=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 14:06:08.7818
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b9021241-3d90-4a28-4fbc-08de2dbe1d19
X-MS-Exchange-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:
	CH3PEPF00000015.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4287

On Thu Nov 27, 2025 at 2:37 PM CET, Jan Beulich wrote:
> On 27.11.2025 14:15, Alejandro Vallejo wrote:
>> On Thu Nov 27, 2025 at 11:46 AM CET, Jan Beulich wrote:
>>> On 26.11.2025 17:44, Alejandro Vallejo wrote:
>>>> + * A runtime check at the time of CPUID probing guarantees we never r=
un on
>>>> + * wrong hardware and another check when loading CPU policies guarant=
ees we
>>>> + * never run policies for a vendor in another vendor's silicon.
>>>> + *
>>>> + * By the same token, the same folding can happen when no vendor is c=
ompiled
>>>> + * in and the fallback path is present.
>>>> + */
>>>> +static always_inline bool x86_vendor_is(uint8_t candidate, uint8_t ve=
ndor)
>>>
>>> I fear the comment, no matter that it's pretty large already, doesn't m=
ake
>>> clear how this function is to be used, i.e. how for this being an "is"
>>> predicate the two arguments should be chosen. My typical expectation wo=
uld be
>>> for "is" predicates to apply to a single property, with other parameter=
s (if
>>> any) only being auxiliary ones. Maybe it would already help if the firs=
t
>>> parameter wasn't named "candidate" but e.g. "actual" (from looking at j=
ust
>>> the next patch). Or maybe (depending on the number of possible differen=
t
>>> inputs for the first parameter) there want to be a few wrappers, so the
>>> "single property" aspect would be achieved at use sites.
>>>
>>> Then I see no reason for the parameters to be other than unsigned int. =
(Same
>>> for the local variable then, obviously.)
>>=20
>> I could also call it x86_vendor_in(), to mean it's a set membership chec=
k,
>> leaving its prototype as:
>>=20
>> bool x86_vendor_in(unsigned int actual, unsigned int bitmap);
>>=20
>> bitmap is a special kind because literal 0 has a special meaning (unknow=
n). So
>>=20
>> I'd expect x86_vendor_in(X86_VENDOR_UNKNOWN, X86_VENDOR_UNKNOWN) to retu=
rn true
>> when UNKNOWN_CPU=3Dy. One way to alleviate complexity would be to promot=
e the
>> unknown case to a first-class bit. It's not like it's zero for any good =
reason.
>>=20
>> As for the what goes in the first parameter, it's invariably the x86_ven=
dor
>> field of cpuinfo_x86 (for boot_cpu_data), or of any cpu_policy.
>>=20
>> This is meant to replace checks on vendors, so a natural (and universall=
y used)
>> pattern across the codebase is to have a runtime variable checked agains=
t a
>> constant. Here's a longer list of patterns and expected transformations.
>>=20
>>   from: cp->x86_vendor =3D=3D X86_VENDOR_AMD
>>     to: x86_vendor_is(c->x86_vendor, X86_VENDOR_AMD)
>>=20
>>   from: cp->x86_vendor !=3D X86_VENDOR_AMD
>>     to: !x86_vendor_is(c->x86_vendor, X86_VENDOR_AMD)
>>=20
>>   from: cp->x86_vendor & X86_VENDOR_AMD
>>     to: x86_vendor_is(c->x86_vendor, X86_VENDOR_AMD)
>>=20
>>   from: cp->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)
>>     to: x86_vendor_is(c->x86_vendor, X86_VENDOR_AMD | X86_VENDOR_HYGON)
>
> There's a mix of c and cp up from here, but I hope the distinction isn't
> relevant in this context. What is relevant though is that you shouldn't
> be using struct cpuinfo_x86's x86_vendor field anymore. See the struct
> definition.

It indeed isn't relevant. Fair enough, I was misled by its use in cpu/commo=
n.c

>
>>   from: !(cp->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON))
>>     to: !x86_vendor_is(cp->x86_vendor, X86_VENDOR_AMD | X86_VENDOR_HYGON=
)
>>=20
>>   from: cp->x86_vendor =3D=3D X86_VENDOR_UNKNOWN
>>     to: x86_vendor_is(cp->x86_vendor, X86_VENDOR_UNKNOWN)
>
> For it to be clear what the "is" applies to, all of the above would imo
> better be x86_vendor_is(c, X86_VENDOR_...) or
> x86_vendor_is(cp, X86_VENDOR_...) at the call sites. The c / cp are what
> I called "auxiliary data" elsewhere, and the property checked clearly is
> the 2nd argument. To achieve this you could introduce a wrapper macro,
> which would do the de-ref of the ->vendor field. (As a prereq, struct
> cpu_policy would then also need to gain a "vendor" alias of the present
> "x86_vendor" field.)

I'd be fine with that. It'd also trim the diffstat substantially by allowin=
g
a number of cases to become single-line checks rather than splitting

>
>> And switch statements converted to if-elseif chains.
>
> I've voiced concern towards this elsewhere.
>
>>> First: Would one ever pass X86_VENDOR_UNKNOWN for "vendor"? The next pa=
tch,
>>> for example, specifically doesn't.
>>=20
>> I don't think so. There's definitely not any existing case atm. Still, I=
 think
>> it's better to preserve the invariant that the follwing transformation:
>>=20
>>   from: cp->x86_vendor =3D=3D X86_VENDOR_X
>>     to: x86_vendor_is(cp->x86_vendor, X86_VENDOR_X)
>>=20
>> holds for every vendor variant in the "everything compiled-in" case.
>
> Otoh the code could be simplified if you simply rejected the passing of
> X86_VENDOR_UNKNOWN.

How would this rejection go? Something like this at the top?

  if ( vendor =3D=3D X86_VENDOR_UNKNOWN )
      BUG();

I'd rather have something that causes a compile-time error, but I'm not sur=
e
how to cause a compile time failure when a constant matches FOO.

Surely there must be a way...

>
>>>> +    /* single-vendor optimisation */
>>>> +    if ( !IS_ENABLED(CONFIG_UNKNOWN_CPU) &&
>>>> +         (ISOLATE_LSB(X86_ENABLED_VENDORS) =3D=3D X86_ENABLED_VENDORS=
) )
>>>> +        return filtered_vendor =3D=3D X86_ENABLED_VENDORS;
>>>> +
>>>> +    /* compiled-out-vendor-elimination optimisation */
>>>> +    if ( !filtered_vendor )
>>>> +        return false;
>>>> +
>>>> +    /*
>>>> +     * When checking against a single vendor, perform an equality che=
ck, as
>>>> +     * it yields (marginally) better codegen
>>>> +     */
>>>> +    if ( ISOLATE_LSB(filtered_vendor) =3D=3D filtered_vendor )
>>>
>>> So one may pass a combination of multiple vendors for "vendor"? Is so, =
why
>>> is the parameter name singular?
>>=20
>> Yes, it's a bitmap. Parameter could be in fact "bitmap", except the 0 ca=
se is
>> a special.
>
> We have empty bitmaps elsewhere, as a more or less special case, so this =
doesn't
> look overly concerning.
>
> Jan

Ack,

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 14:08:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 14:08:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173970.1498951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOcft-0000fF-LS; Thu, 27 Nov 2025 14:08:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173970.1498951; Thu, 27 Nov 2025 14:08: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 1vOcft-0000f8-IE; Thu, 27 Nov 2025 14:08:45 +0000
Received: by outflank-mailman (input) for mailman id 1173970;
 Thu, 27 Nov 2025 14:08: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=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOcfs-0000f0-Qj
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 14:08:44 +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 9472c0a1-cb9a-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 15:08:42 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-477b91680f8so7134455e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 06:08: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-4791165b1fesm33040715e9.15.2025.11.27.06.08.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 06:08: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: 9472c0a1-cb9a-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764252522; x=1764857322; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YaH0ZIRt2Do4HRTTyT3IBwAakZKu5KSgnO4ebnwW/G8=;
        b=f6pU7i4NaItGnXSnfzl2VjeCXtPcaFVeK0B+MMAf6i4Gb3jr1G/FF1zz1phJKHtK/Z
         tCdCRHMKjqtSFhFtx5JrTUJXrRWk63AOLEgCXFkLfFRHxYfDCZ36rYPq2p4dzuQF466m
         49ksIMDv2rvlu3tSvkJKObuP1jhfsCxljKzmoHT+f2xTQ8sYJVj2Vrpt0yY7RGkO1Onr
         bbg2nsIdbMBzlU/d/wVX2grldD/mR4gR/ya5lgp9SipUv7dX2yy1dDsE/EPP7KbFaCLp
         bG9csNXsqap/I4shfZYNpOlf5L10PO6T6lUMrf8o9jmEKwP1XNsx7qMzgGgCFXFAiTAX
         ThTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764252522; x=1764857322;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YaH0ZIRt2Do4HRTTyT3IBwAakZKu5KSgnO4ebnwW/G8=;
        b=M+iPSgDuhh+Acncie51F7J5vGFwsp24cbFttR76r+KKe6asNxKHUpNBY49B0/zplDv
         oLZTdtnPoIhIkgGkavJatYJ5v5YATXQAhc9+3LAvllSeLh0u6mg76L4F6IuMbjh3cCXm
         Ap17syVv6qytKsKwodkkrIg/HEemWKcMWUBtMqY00U4AA+0MYXii74nmdRtPcrLysJLg
         BeePGkzBN3utlO6ML5il1G3qkfY+wbk3zedH0ymWLMKRsfECyVHN4vjcaQUUBpOf97xp
         kWdJF5R3+3nYP1IG5QpPRv+0N2XggJ1i/Ks7w8A7cdGSCLwX3NbQZDTWk2j4ynqiEyiS
         d8Vw==
X-Forwarded-Encrypted: i=1; AJvYcCVNMM8qoEJy/UfSY1rU9/KHlWnq+zHLVwBxYMuyFY40OSykRh3xJabDyJslvdXWArgZyjNYzxoItR4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw20PvaDgOFAvWFhCA8+k2HETvOYcxQLilm1qRyGhKSurBjtQCM
	1l34ohauQCMVUu3YDVDbD5Ca79CW1A4nrb9MZDiMlKloQWepfFoiRRt64sy6XpWt6g==
X-Gm-Gg: ASbGncvce7cNZbOuhG/fdenIFcgdpy2WFrdkPXe1dPZTZ7XjEUTZnIOz5euRDV5slak
	P6rTlnqebntKOc2qiWlnjDZpmJiZZEqqzB3dsvCZyEmY73Ta3TAK5msphH1rm9nSg2AqYl4jO9e
	cSonO799BWoQOGip0la0zKfatq5ybt5vmu1rcmWKkhplAXK4UVBo7C/amKGBKoKCsKy5Dna0xQN
	66b1lf80Ec+FDMRsJWxTqonU3svT5BN8Am1+U6jnW8XWgx2p0Vqyl2mZJ/SGLiSOjQYbvsa/4C/
	MDt85Gxurqzdo3tywoeLc0E7gj6azEqfewR93TREewZKHgXA7S7kXGOsnXngtsUq0oqcLxETp9z
	qD/lkh0AOKdY1vLWupHN19k5AkGFQum18WVZT/NnmiEPyMA9G4nZl7r1aXYAgBXKeV0xZpAa9Sb
	q5tPck8AU5qhMkba6DoZ/qKRWSyIzuKc+xSTsYEaujYqO9YvycJFRCv0L4WJVVXROCmle95V5AF
	Mo=
X-Google-Smtp-Source: AGHT+IGfLdLUgH7ZswQZ5ifsXdW86HZJJaRcK8NH6sYr8ZIawSQ+TFHYOttW6/kqwfJ9Kn+iMybpXQ==
X-Received: by 2002:a05:600c:4f89:b0:477:9bfc:dcb6 with SMTP id 5b1f17b1804b1-477c10e2bb4mr241045495e9.14.1764252522024;
        Thu, 27 Nov 2025 06:08:42 -0800 (PST)
Message-ID: <42fd724a-ec74-47bf-9310-74969f1d3aa5@suse.com>
Date: Thu, 27 Nov 2025 15:08:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 3/4] x86/p2m-pt: Set p2m->need_flush if page was
 present before
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1764248710.git.teddy.astie@vates.tech>
 <8f5a0cecba14cd38d739a9f29a5c8344c2f6bd11.1764248710.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: <8f5a0cecba14cd38d739a9f29a5c8344c2f6bd11.1764248710.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.11.2025 14:39, Teddy Astie wrote:
> Update p2m->need_flush if page was present before (requiring a tlb flush).
> This causes p2m->flush_tlb() to be now be reachable, make sure we call it
> only when set.

I don't follow. Why would p2m->flush_tlb() not have been reachable? There are
other places where ->need_flush is set to true.

> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
> This change is important for the next patch.
> Would it be better to merge it with the next patch ?

I'm inclined to say yes, but without understanding the description here I
cannot be sure.

Hmm, wait. The sole place in x86 where the flag is set is in EPT code. So
do you perhaps mean that for NPT or shadow those call sites can now be
reached, and hence - with the hook being NULL there - checks need adding?
Then, by its title, the next patch actually may be making use of the hook,
so the checks then can be dropped again?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 14:14:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 14:14:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173982.1498962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOclg-0002ep-8K; Thu, 27 Nov 2025 14:14:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173982.1498962; Thu, 27 Nov 2025 14: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 1vOclg-0002ei-5Q; Thu, 27 Nov 2025 14:14:44 +0000
Received: by outflank-mailman (input) for mailman id 1173982;
 Thu, 27 Nov 2025 14: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=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOcle-0002ec-R2
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 14:14:42 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6a1a936d-cb9b-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 15:14:41 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-47755de027eso5501995e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 06: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
 5b1f17b1804b1-4791164d4f3sm34093895e9.13.2025.11.27.06.14.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 06: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: 6a1a936d-cb9b-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764252880; x=1764857680; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GLOTP/kdAuj3rBOEQKxYZeDzus8tKMIvzdj+eBBRAzY=;
        b=YXDtiOTJ+E0hLSj5D+UHfCWeqWs4TVdyLGCNeE/H2rixGMJRqmT/TEfKBpAlpbO3oz
         O6Xd9rM+7uIF/gfFCPlHxTg/9r/K+hmoo496GsYp+qACtZsvFRjwdyJmFOnqF8qbKA5d
         UPXlS4nN/QZshlsrYLSvzGkbyNMLlARrG2tc76uKpkL/AY5SClx112yt0irR/ulw9CF6
         EmHyDn1yVyV1dunT6MwEWXRwOR68OTXxtKXVEPUPG6IDoIWeK7Ow2klDxel83oQ6H9Q0
         1dGnyXMAm1RdZaoaBgIty+aFQ+1MgoPhQApQc8mJajVSYp/t8WmbQzovc9aIRLQou360
         +xEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764252880; x=1764857680;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GLOTP/kdAuj3rBOEQKxYZeDzus8tKMIvzdj+eBBRAzY=;
        b=Ev8dTwj5Aw3H+P629Df+0ExiV9h6But/0SM3t3tWE3kEMExIcaVNmhzT1ST3HoNWlr
         JVkutdqFB96mN4kaZvli8yxQpIRASAjr/gTjfSoJe9fnKH/sVDA56YNnTp773SjR5kT9
         8LraFmWSW/0dAL8TMx5pcKo/zy+5D2MlTQZJimy2v6Mt/vXaXuXblaQZ8ngUd3uCQpyo
         pJqSGnZWPg+4LxveBzgBkGL+GoTFHVmZf825m4PQzPk2WKrfahZfKFUdjTVWhsQdhDvY
         tVSoj3kJUFBP+T1U9qkn14mTcC2N4o6picPcR0iUOJzD9ghS477fml+sDwKI9GQJ2RUk
         7adQ==
X-Forwarded-Encrypted: i=1; AJvYcCV2uIskihh8XGPiXF34t35wTGGDkjLr8l/sA3x+SWjvD9lSmmkBnAzz+9Ewc6oOVdVxYJdgYA7stWU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyLvWnxfnAvwPTc3XIvYb2DtnP+f4P/EXIHMaPg+JEikWgffhnn
	5sa4kLafiw1QYI3fi6jhgueWBF75V8uKjpE3Q0wVlOov6kWv142omx3Ykc3qcN8Iyg==
X-Gm-Gg: ASbGncu/4+lpqLp7WFVgYeiG5jq8sQc0QNoW8PkoyYrKEJaujH/hszXm48y3ECWB1Hh
	hLEjuTAtDNqrkoQ1vF2DcxXG8hQlTpKMicUOhSrx3iyc96m5NCeD4jzP7fC47tMI4wfCcllj57f
	ggKrOIULBOwMvbJzIBBgvU8Gy8147F/NXwJ/KW2U8cm9k4mWG2gjl02V6qOThALAr54hhE/a1sn
	SRXXsa7OCm+KHQSovCN422HntiSbpSZ4fvldWllo7bLxXmF8G0wd7znJZekjAoBczJfvN3TLJ9F
	B+QBbrUuK4MkaUaiLKLv9UWEuuUsF64J49UnbyBPjQ3H6s2csiQqhYCReIp5rUi+IN1VtlPCetO
	chZVh33M7F6R7OICQr/7mwFO9E3xSRIs3y8mTUXV/m9BX9e+tV0vVasjaQmcXBS9Fwc/8ADXpsi
	TsJ/k3qEvUxDkX/IQt8c99q6jeKOg7IqOhji7Bq64atgRr6Y9zMNfu3a5VS1RcKfb+OqNJnR/tb
	cU=
X-Google-Smtp-Source: AGHT+IFvIftLLTbb0Her5v/Z80wTciEo9g3r6KmdYLCyFDr6emKSB5P3/TpKShjR0CdEghBUlyvarw==
X-Received: by 2002:a05:600c:154e:b0:45d:d8d6:7fcc with SMTP id 5b1f17b1804b1-47904b24920mr108941275e9.27.1764252880426;
        Thu, 27 Nov 2025 06:14:40 -0800 (PST)
Message-ID: <40aa8d8c-5f19-437d-8c18-cd65ccafaca9@suse.com>
Date: Thu, 27 Nov 2025 15:14:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 03/11] x86: Add x86_vendor_is() by itself before using
 it
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>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-4-alejandro.garciavallejo@amd.com>
 <d71b6b55-6745-4ba4-9a4f-d5e7b08f0aec@suse.com>
 <DEJI6U37EMDI.1F7QHW1I7WV76@amd.com>
 <1ea5b7d2-6d73-4133-bf32-085559f6df41@suse.com>
 <DEJJ9NEIB99E.1U013WYUA7TZO@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: <DEJJ9NEIB99E.1U013WYUA7TZO@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.11.2025 15:06, Alejandro Vallejo wrote:
> On Thu Nov 27, 2025 at 2:37 PM CET, Jan Beulich wrote:
>> On 27.11.2025 14:15, Alejandro Vallejo wrote:
>>> On Thu Nov 27, 2025 at 11:46 AM CET, Jan Beulich wrote:
>>>> First: Would one ever pass X86_VENDOR_UNKNOWN for "vendor"? The next patch,
>>>> for example, specifically doesn't.
>>>
>>> I don't think so. There's definitely not any existing case atm. Still, I think
>>> it's better to preserve the invariant that the follwing transformation:
>>>
>>>   from: cp->x86_vendor == X86_VENDOR_X
>>>     to: x86_vendor_is(cp->x86_vendor, X86_VENDOR_X)
>>>
>>> holds for every vendor variant in the "everything compiled-in" case.
>>
>> Otoh the code could be simplified if you simply rejected the passing of
>> X86_VENDOR_UNKNOWN.
> 
> How would this rejection go? Something like this at the top?
> 
>   if ( vendor == X86_VENDOR_UNKNOWN )
>       BUG();
> 
> I'd rather have something that causes a compile-time error, but I'm not sure
> how to cause a compile time failure when a constant matches FOO.
> 
> Surely there must be a way...

Take a look at BUILD_ERROR(), which I think may fit here.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 14:27:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 14:27:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1173996.1498972 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOcyH-0004hv-Ff; Thu, 27 Nov 2025 14:27:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1173996.1498972; Thu, 27 Nov 2025 14:27:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOcyH-0004ho-CV; Thu, 27 Nov 2025 14:27:45 +0000
Received: by outflank-mailman (input) for mailman id 1173996;
 Thu, 27 Nov 2025 14:27:44 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1vOcyG-0004hi-AL
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 14:27:44 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vOcyF-00BCqB-2G;
 Thu, 27 Nov 2025 14:27:43 +0000
Received: from [2a01:cb15:80df:da00:94d0:641e:16e6:ca4b] (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 1vOcyF-00H4AH-0w;
 Thu, 27 Nov 2025 14:27:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=qkep6EaPRqLYXjK8sYSfp7YJ+L8onafQETA6llK8hqk=; b=d3VQTd67x7+GgOMBQLubBoJhtT
	+r7hyrDItvfMqKVFQwh4IYlrouDjn2jVqQ5jPZVVm7jPWdeQUXmiZWHYEruhX9HYmHH4UribsiINp
	2m0JEXIs00/io49CNDRU9ljTOrDrH7aW8GBmMeQPkF5T6p6TC6nnRDuIU1sj31RrSccY=;
Date: Thu, 27 Nov 2025 15:27:41 +0100
From: Anthony PERARD <anthony@xenproject.org>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH] libxl/json: don't expose internal functions
Message-ID: <aShf3WFVns0StoGe@l14>
References: <1533aaa3-5065-4214-a920-191a8b174314@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1533aaa3-5065-4214-a920-191a8b174314@suse.com>

On Tue, Nov 25, 2025 at 10:11:21AM +0100, Jan Beulich wrote:
> Ideally internal function declarations wouldn't live in a non-private
> header. If already they need to, they should be hidden as much as
> possible. That is (a) their declarations shouldn't be exposed and (b) the
> symbols shouldn't appear in the shared library's dynamic symbol table.
> Gate the declarations upon _hidden actually being defined (rather than
> providing an empty fallback), and apply _hidden also to the libyail
> variants.

The YAJL functions needs to stay in the API, they've been exposed on
purpose in this header... The only user of those I know is `xl`. They
are limited since your application also needs to use libyajl. I think
I've butchered this header enough to make it complicated to use for
applications that are not `xl`.

libxl_json.h is only part of the header, there's a second part that is
automatically generated, _libxl_types_json.h.

While we could simply move the few prototype that uses json-c support
listed here to an actually private header, there's still the
autogenerated header to deal with. I feel like it would simpler to avoid
installing both headers (libxl_json.h and _libxl_types_json.h) when we
compile the tools with json-c. And even maybe add a fake "libxl_json.h"
which only have an "#error" saying the json helper aren't available
anymore.

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 14:30:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 14:30:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174005.1498982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOd0w-0006C4-Rb; Thu, 27 Nov 2025 14:30:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174005.1498982; Thu, 27 Nov 2025 14: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 1vOd0w-0006Bx-OU; Thu, 27 Nov 2025 14:30:30 +0000
Received: by outflank-mailman (input) for mailman id 1174005;
 Thu, 27 Nov 2025 14: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=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOd0v-0006Bp-Rd
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 14:30:29 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9ee14c72-cb9d-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 15:30:28 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-477b198f4bcso5962955e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 06:30: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-4790add608bsm101630305e9.5.2025.11.27.06.30.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 06: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: 9ee14c72-cb9d-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764253828; x=1764858628; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/nCtCbcp9WHnGdKGrQY84Zv3JHOKX8MlJLRZtmME4e4=;
        b=F2AoFgxAQY2Z96TLYqawZz1tXqL21GoketoWoHqgYtOvmaJZ1Ntvy2gDpj3IOEsqXy
         JrCxyS2gqC91F47jyTO7goutm0b2Hu1DQQdd6FZl+QaCwY+nyThY/5vf2a+1OFk0W59Q
         PaJm8Tdf0CqrOO6rJRLCeMPOgiVVsm9c//7Q1ihQImJvSW2s3KS5DFUjAuBh6CykidgA
         eCfuMMc/10QWwcRCaNQQYSGfVLC3Z2tl0zoku1uDJCdo0ehhayw5HlnEImBgHKzHqJUG
         ACDvtMjtsdUyDc5VI7qIvNauJyFMlppVDTBsV7LOAHTQAHPax1OIKrYBCpcanky2TOQz
         +qsA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764253828; x=1764858628;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/nCtCbcp9WHnGdKGrQY84Zv3JHOKX8MlJLRZtmME4e4=;
        b=QyyATLmIYQVwHzMuz4VKrL7wW4vahnVOKGUy3403rVeGPTrdvwWilmQ8MEnKi+3cGW
         EucT9kjsDH5javyC8KeGrgVlmDjv8qm9nQBRzQ9Jyl4920PPqIbwXVXMiPkivp2Yhv/T
         nPZ4IERsE91h0AdnFE6ZRjqbuKPUv/LudywfrLQxMfDvNvLPZfLiqsNeNe4pdmDzJd3O
         uDU+xiw7opXHaKF0CrTARtgjdtce0QlnibVMF0inrw/QWLG3Pxgyaba8JGWGh4bZPRCH
         t2cAE+tKM9oE7xnymyoGDAnB1QvR2wQ3d2MnQhShrIpMGN1IKJ5cSPMx5MPC26DrlgQl
         NBCg==
X-Forwarded-Encrypted: i=1; AJvYcCVBCHsY34Wovjyp1xkWQFdIJM5E/90069b9Z1Nyw7wKG9RQxO2iNo/j/7jLjmuh+9Xb+R3llhK3TuA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZHB6hUeuiR6f+95/MtdlNvr298MSdumJtCHgoY5tYtnIi1WCH
	6T83iwoLqh/OLCySxU4/mxDD03p5DremTHDzHgNu6pv85x8VwdUGTN3D8VGGVsAYkQ==
X-Gm-Gg: ASbGncsv5m66DU4bUpiPZn1l7rRA2vBXq3ZvknFGIKLSabvncp5nTOQoFFdTUejNPKc
	zhgF02xL6VtUQPfbs9II1mvnwVdaHa6IDElgIH231YoZn/fDJnS6G0dOlgDO+6L7zc3FIp86nzC
	LSpXtxPVm3cpYKVfaLSYcPbPQ920w2fU/hLuuijtvjj9QrxJZlaWueqBH+YdZWsDQCMMxQKG40b
	iMXlNyx0wx98H5O77xBzGtfJ8bEZxQ/rz8jC0MoVQqZVmdY4DZ/FIrVaCxLXD3C09EaLPVOu8aA
	hfIXBdWZ6YGD/kdDujFm6hzjdmUoDuVKUSrthgEVY1CHGtjP1oFEA7z3nzLK6XQb5RgLKQlXRW0
	84oPt4rsY7/oc9SlZHzfBHXoQiiQPsVwD2nrfZYTa+0U9mcYrVtmGYFk7uvPC4caxsWLpcrOcin
	73L8LcvUSCEzaTOoFYcvkUOqoUMWwhYg/JKxMgNoB++ZPgB44r/TVIuK8ZS+5lBLxbg3om9ukbC
	1KkvNJ+c8t2Bw==
X-Google-Smtp-Source: AGHT+IHsQTUkbtg6wdNXGpZ7YoC0siP3Q0V0V9p4yc7FrVuK0sRxmBWIq55FPBOv31jPs+oL+0mHpg==
X-Received: by 2002:a05:600c:4f4c:b0:475:da1a:53f9 with SMTP id 5b1f17b1804b1-477c0184b1emr266067185e9.14.1764253827755;
        Thu, 27 Nov 2025 06:30:27 -0800 (PST)
Message-ID: <e7f7e2df-5881-40f6-b157-bd01c0d514f5@suse.com>
Date: Thu, 27 Nov 2025 15:30:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 4/4] x86/hap: Migrate tlb flush logic to
 p2m->flush_tlb
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1764248710.git.teddy.astie@vates.tech>
 <94bf385598cc7d70ecaecfae670e305581ad83b3.1764248710.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: <94bf385598cc7d70ecaecfae670e305581ad83b3.1764248710.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.11.2025 14:39, Teddy Astie wrote:
> Now that p2m->need_flush is set when modifying the pagetable in a way that
> requires it. We can move the tlb flush logic to p2m->tlb_flush.
> 
> Introduce hap_tlb_flush to do it, which is called by main p2m logic (e.g p2m_unlock,
> p2m_tlb_flush_sync, ...). Drop inline calls of guest_flush_tlb_mask which are now
> redundant with what now does p2m->flush_tlb, allowing us to drop guest_flush_tlb_*
> as it is now unused.
> 
> No function change intended.
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>

I think the safety / correctness of the change needs explaining in the
description. TLB flushing is often delicate, so it wants to be made pretty
clear that no necessary flush is now omitted anywhere. It also wants to be
made clear, from a performance angle, no new excess flushing is added (see
below for a respective question towards EPT).

> --- a/xen/arch/x86/flushtlb.c
> +++ b/xen/arch/x86/flushtlb.c
> @@ -320,18 +320,3 @@ void cache_writeback(const void *addr, unsigned int size)
>      asm volatile ("sfence" ::: "memory");
>  }
>  
> -unsigned int guest_flush_tlb_flags(const struct domain *d)
> -{
> -    bool shadow = paging_mode_shadow(d);
> -    bool asid = is_hvm_domain(d) && (cpu_has_svm || shadow);

There's an SVM dependency here, which ...

> --- a/xen/arch/x86/mm/hap/hap.c
> +++ b/xen/arch/x86/mm/hap/hap.c
> @@ -105,8 +105,6 @@ int hap_track_dirty_vram(struct domain *d,
>              p2m_change_type_range(d, begin_pfn, begin_pfn + nr_frames,
>                                    p2m_ram_rw, p2m_ram_logdirty);
>  
> -            guest_flush_tlb_mask(d, d->dirty_cpumask);
> -
>              memset(dirty_bitmap, 0xff, size); /* consider all pages dirty */
>          }
>          else
> @@ -191,7 +189,6 @@ static int cf_check hap_enable_log_dirty(struct domain *d)
>       * to be read-only, or via hardware-assisted log-dirty.
>       */
>      p2m_change_entry_type_global(d, p2m_ram_rw, p2m_ram_logdirty);
> -    guest_flush_tlb_mask(d, d->dirty_cpumask);
>  
>      return 0;
>  }
> @@ -220,7 +217,6 @@ static void cf_check hap_clean_dirty_bitmap(struct domain *d)
>       * be read-only, or via hardware-assisted log-dirty.
>       */
>      p2m_change_entry_type_global(d, p2m_ram_rw, p2m_ram_logdirty);
> -    guest_flush_tlb_mask(d, d->dirty_cpumask);
>  }
>  
>  /************************************************/
> @@ -806,18 +802,14 @@ static void cf_check hap_update_paging_modes(struct vcpu *v)
>      put_gfn(d, cr3_gfn);
>  }
>  
> -static void cf_check
> -hap_write_p2m_entry_post(struct p2m_domain *p2m, unsigned int oflags)
> +void hap_p2m_tlb_flush(struct p2m_domain *p2m)
>  {
> -    struct domain *d = p2m->domain;
> -
> -    if ( oflags & _PAGE_PRESENT )
> -        guest_flush_tlb_mask(d, d->dirty_cpumask);
> +    flush_mask(p2m->domain->dirty_cpumask, FLUSH_HVM_ASID_CORE);
>  }
>  
>  void hap_p2m_init(struct p2m_domain *p2m)
>  {
> -    p2m->write_p2m_entry_post = hap_write_p2m_entry_post;
> +    p2m->tlb_flush = hap_p2m_tlb_flush;
>  }

... is entirely lost throughout the hap.c changes. Are we now doing excess flushing
for EPT? I guess the relevant point here is that hap_p2m_init(), despite its name
suggesting otherwise, doesn't come into play when EPT is in use. (This could do
with cleaning up, as right now it then has to be the case that in a AMD_SVM=n
configuration that function is unreachable, violating a Misra rule.

Also, why would hap_p2m_tlb_flush() lose static and cf_check that the prior hook
function validly had?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 14:31:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 14:31:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174015.1498992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOd2G-0006nm-53; Thu, 27 Nov 2025 14:31:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174015.1498992; Thu, 27 Nov 2025 14:31:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOd2G-0006nf-1X; Thu, 27 Nov 2025 14:31:52 +0000
Received: by outflank-mailman (input) for mailman id 1174015;
 Thu, 27 Nov 2025 14:31:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XRBq=6D=bounce.vates.tech=bounce-md_30504962.692860cf.v1-8f6362d3c4404a0b9c52a02ad003c61c@srs-se1.protection.inumbo.net>)
 id 1vOd2E-0006nX-Lj
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 14:31:50 +0000
Received: from mail132-20.atl131.mandrillapp.com
 (mail132-20.atl131.mandrillapp.com [198.2.132.20])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cc137c08-cb9d-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 15:31:45 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-20.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4dHJlg26Z7zFCWb4w
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 14:31:43 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 8f6362d3c4404a0b9c52a02ad003c61c; Thu, 27 Nov 2025 14:31: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: cc137c08-cb9d-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1764253903; x=1764523903;
	bh=c3uFUFR0gCzgbxeRaC8eh8AzjcagpaNHm32V69DFMH4=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=vmz2cRPZdHh8s6FzSaIANqDQ5robFCWbT+gQqfbhDftA4/nRWohnE2BIodKt0RbTm
	 TV9LM/GLl0p8OrISzJWGb1CxTQHogLYA8vwiuGUbdhcJiPZ9ymWVy1ctO2DtLhqVQz
	 hG/g+zxyOCsYIPKgbYEzjOElgR6GH8QDE2uiT1PFnpsACR98HdaynSpHEzpjMbYPET
	 rpW7RSJhHaLBavaEySukNodrH9RWHcWFuAT7At37pfVJmao4pU5ZU/A/Ev36Q9wFwp
	 fAWV6FgAdH2Ajv8jfEA/PRr5Vu/JYHnDgPqE3m2Ue5TKbTze/rN3CzZpvHULnSC7Po
	 Kj/c3ecv/xgVg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1764253903; x=1764514403; i=julian.vetter@vates.tech;
	bh=c3uFUFR0gCzgbxeRaC8eh8AzjcagpaNHm32V69DFMH4=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=tTsz6tdXFqfJqoKID0gpMxa2eVw2LpjQYtk2xHWZCfA1j+TH30PHiSm/UiibC38yR
	 BLmvNowTmxZGN7UPjIpQdY84WhSRJA3ESfd0ZAdAsQ/6mSj4+SoO46lMWVk2bMAdcA
	 otIvwafiXXEkFK/6+yD4ulkpEECZCQUmoxCa5kVSjyE6oV6ad0MpfGh6E2cEQwkpFf
	 b8wphb7rgE/IyKn1Jw4Gq0v4x/edeTUSFGpXXg605rjT6FGhZiT2YuQ70pqE6SXhLi
	 83JVad10UoCQp5pESnzWs5WmWp53UvBIR6vHwJGepK/CeqTOMrfI9VuTvP8xh45/z0
	 z4e+ZL3EiXWiQ==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH]=20x86/efi:=20Remove=20NX=20check=20from=20efi-boot.h?=
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: 1764253902022
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>, "Daniel P . Smith" <dpsmith@apertussolutions.com>, "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>, "Teddy Astie" <teddy.astie@vates.tech>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20251127143136.1598354-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.8f6362d3c4404a0b9c52a02ad003c61c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251127:md
Date: Thu, 27 Nov 2025 14:31:43 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Currently Intel CPUs in EFI mode with the "Execute Disable Bit" disabled
and the 'CONFIG_REQUIRE_NX=y' fail to boot, because this check is
performed before trampoline_setup is called, which determines if NX is
supported or if it's hidden by 'MSR_IA32_MISC_ENABLE[34] = 1' (if so,
re-enables NX).

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
 xen/arch/x86/efi/efi-boot.h | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 0194720003..8dfd549f12 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -748,18 +748,6 @@ static void __init efi_arch_cpu(void)
     if ( (eax >> 16) == 0x8000 && eax > 0x80000000U )
     {
         caps[FEATURESET_e1d] = cpuid_edx(0x80000001U);
-
-        /*
-         * This check purposefully doesn't use cpu_has_nx because
-         * cpu_has_nx bypasses the boot_cpu_data read if Xen was compiled
-         * with CONFIG_REQUIRE_NX
-         */
-        if ( IS_ENABLED(CONFIG_REQUIRE_NX) &&
-             !boot_cpu_has(X86_FEATURE_NX) )
-            blexit(L"This build of Xen requires NX support");
-
-        if ( cpu_has_nx )
-            trampoline_efer |= EFER_NXE;
     }
 }
 
-- 
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 Thu Nov 27 14:55:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 14:55:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174025.1499002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOdP1-0001xZ-SY; Thu, 27 Nov 2025 14:55:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174025.1499002; Thu, 27 Nov 2025 14:55:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOdP1-0001xS-PB; Thu, 27 Nov 2025 14:55:23 +0000
Received: by outflank-mailman (input) for mailman id 1174025;
 Thu, 27 Nov 2025 14:55:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Wmoz=6D=gmail.com=gragst.linux@srs-se1.protection.inumbo.net>)
 id 1vOdP0-0001xM-58
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 14:55:22 +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 183adad8-cba1-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 15:55:20 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-640b0639dabso1685328a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 06:55:20 -0800 (PST)
Received: from [10.17.72.183] (ll-22.209.223.85.sovam.net.ua. [85.223.209.22])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64750a90d5dsm1822947a12.12.2025.11.27.06.55.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 06:55: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: 183adad8-cba1-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764255320; x=1764860120; 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=HiHkuLwJ/313PjsL1KVlcbsOsdVneQ2WPGRmhpBAggQ=;
        b=b/9AFqafwLRkyYc66ZEZhbaov6yjG9PwdKSckZPoPpjxYvsekTijpZb5Fj7UjgGw4H
         RrbPDeBRvDzIz4/TQ6wH8pG6bgRfLMzp3BFbCZVVxhUCcIBsmE/C0fhNjJHnUUV3jluF
         dbjNWK977EbpCJeKyoSf51YdYInV4g1WKCNDCHHBoZwJCRQ/WeiOdkDWJNss9k4Jl4IB
         RgB7NY7oPo3u/pONEWBpMiuyctIAWBcfa/cf+JOm2WsxHfjh0nsHa3l4QBejZ2FzZYWf
         FYh0W6EwhCUxh58pZecWi2B36J7A2lBMlT9wGHT3sqwdcHDckgJk0uFqQIbi0lyUVTOE
         nTbw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764255320; x=1764860120;
        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=HiHkuLwJ/313PjsL1KVlcbsOsdVneQ2WPGRmhpBAggQ=;
        b=MockCAJjEAcidq/Gkyxk5VW+DOT1J73Z6y5Lbgz3ngENYq84kaHq/cAf27mP0A6r/n
         4+1otZGFAa0NhdJaD3wFlGUlrgsk1csQzc26C06fG5+9m15Lesdl+E71tHxkqf5+ZHmr
         Yvf/kBoQsWxsDoRNXGAj7rEu7xwGTc6jcVo135g586IuHJQ98/vj7PVGR5e42MEJHDty
         ZeQWZpkAk1f3ejr8ktD9Qyb+6yjutsfDgpE8nzlWNse23W+iR/ofPMTsw7FWCyTUn7En
         dnU/uvNbaHtA88ZC729Nhrr2vwsYYwveIToCnr0xYRdB/3D1eVkmgjxqjwB4GUVZV52Q
         kjNA==
X-Forwarded-Encrypted: i=1; AJvYcCXRaZfH5ObhMl6aVFQKpsBCwVCu5Tv5cGfJyQjYm3RPhP580DwOmFxqgqMRJKnQVecbCFwt65j4qyg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzeGNz3ctDRTxyRHUfN1ZYf9Z6FHQ5YPw+wfM2dtXvZamRrgDAp
	1BmvEAUpHD5V6ryOgNIQ7/xSDULW/6QoPHcEqaZbRGVWW++eVssExQk2
X-Gm-Gg: ASbGncsvYmz7biqlbncuB6Mz2H7WvZMpyWSJph1vwOko0Lfk/s5wJP1FOj2nSW25erx
	Mwwx6zzqgaO+IJgXs5v5oCwAgjCicsZV2+NiiK8SGCv88HvScSQ9+pUgGs8OB94sWzCe7zgZSII
	7tAAbPAbGLJElfGky+yeel/bVDKvF4q7F1mMWsMlyIL0UtGOlNAuyEsWTiJ6MLb27oBhTwdm0tU
	NSte/8ueWipD6nJSMhECtKMSFhwNtH2tuMsjhMnC6+gPTmY+dRKBC+gx1t7ZIj6usv7MO2tMaW3
	SFGfO3cXczZFwlBtd6g4A1u0pQ4Goe87jJhxBFS/bxQKLSmCRKuyL1MTotAWHkodydq5sja2yhy
	uHYVYXRLRJ5HLHWJeok2wlhduA4iqCCZ1Sw5jKYaOsw0/31D62qwSnsuc76Sh2iq6NsJgdG1V+V
	MEo0N0HlQQJsUanr+7Ubj3ty5UhJz9CTNOy813RqrHso9BiVI=
X-Google-Smtp-Source: AGHT+IEgQH0msCHiVzHV+d8YzyD3HqSCXx1QsPYOXJzvXxz33aUBjirYOiPA40nONYGL+LZM3LTqYA==
X-Received: by 2002:a05:6402:3482:b0:640:c394:5a4 with SMTP id 4fb4d7f45d1cf-64554674c1cmr22514354a12.16.1764255319905;
        Thu, 27 Nov 2025 06:55:19 -0800 (PST)
Message-ID: <3dfd6d2d-fb56-4ecd-a86b-8c6068b2e470@gmail.com>
Date: Thu, 27 Nov 2025 16:55:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [4.21] REGRESSION: [PATCH] xen/credit2: factor in previous active
 unit's credit in csched2_runtime()
To: Koichiro Den <den@valinux.co.jp>, xen-devel@lists.xenproject.org
Cc: dfaggioli@suse.com, jgross@suse.com, gwd@xenproject.org,
 Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Michal Orzel <michal.orzel@amd.com>, Ayan Kumar Halder <ayankuma@amd.com>,
 Julien Grall <julien@xen.org>
References: <20250621141411.890250-1-den@valinux.co.jp>
Content-Language: en-US
From: Grygorii S <gragst.linux@gmail.com>
In-Reply-To: <20250621141411.890250-1-den@valinux.co.jp>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi All,

On 21.06.25 17:14, Koichiro Den wrote:
> When a running unit is about to be scheduled out due to a competing unit
> with the highest remaining credit, the residual credit of the previous
> unit is currently ignored in csched2_runtime() because it hasn't yet
> been reinserted into the runqueue.
> 
> As a result, two equally weighted, busy units can often each be granted
> almost the maximum possible runtime (i.e. consuming CSCHED2_CREDIT_INIT
> in one shot) when only those two are active. In broad strokes two units
> switch back and forth every 10ms (CSCHED2_MAX_TIMER). In contrast, when
> more than two busy units are competing, such coarse runtime allocations
> are rarely seen, since at least one active unit remains in the runqueue.
> 
> To ensure consistent behavior, have csched2_runtime() take into account
> the previous unit's latest credit when it still can/wants to run.
> 
> Signed-off-by: Koichiro Den <den@valinux.co.jp>
> Reviewed-by: Juergen Gross <jgross@suse.com>
> ---
>   xen/common/sched/credit2.c | 28 +++++++++++++++++++++-------
>   1 file changed, 21 insertions(+), 7 deletions(-)
> 

We observe regression on ARM64 with this patch.
commit ae648e9f8013 ("xen/credit2: factor in previous active unit's credit in csched2_runtime()")

general observation:
  This commit causes Linux guest boot time increase  >5 times for some of our the credit2
  specific tests.
  Reverting it makes issue gone.

  - normal log
    (XEN) DOM1: [    6.496166] io scheduler bfq registered
    ...
    (XEN) DOM1: [    9.845108] Freeing unused kernel memory: 9216K
    (XEN) DOM1: [    9.874792] Run /init as init process
    (XEN) sched_smt_power_savings: disabled
    (XEN) NOW=16800131328

  - failed log
    (XEN) DOM1: [   37.281776] io scheduler bfq registered
    (XEN) DOM1: [   61.856512] EINJ: ACPI disabled.
    test: timed out

Run Details:
  Platform: ARM64 (Device Tree)
  Execution platform: qemu 6.0 (2 pCPU, 2G)
  Boot: dom0less, 1 domain (2 vCPU)
  Command line: "console=dtuart guest_loglvl=debug conswitch=ax"

  Dom0less cfg:
     chosen {
         xen,xen-bootargs = "console=dtuart guest_loglvl=debug conswitch=ax";
         #size-cells = <0x00000002>;
         #address-cells = <0x00000002>;
         stdout-path = "/pl011@9000000";
         kaslr-seed = <0x5a7b5649 0x9122e194>;
         cpupool_0 {
             cpupool-sched = "credit2";
             cpupool-cpus = <0x00008001>;
             compatible = "xen,cpupool";
             phandle = <0xfffffffe>;
         };
         domU0 {
             domain-cpupool = <0xfffffffe>;
             vpl011;
             cpus = <0x00000002>;
             memory = <0x00000000 0x00040000>;
             #size-cells = <0x00000002>;
             #address-cells = <0x00000002>;
             compatible = "xen,domain";
             module@42E00000 {
                 reg = <0x00000000 0x42e00000 0x00000000 0x000f1160>;
                 compatible = "multiboot,ramdisk", "multiboot,module";
             };
             module@40400000 {
                 bootargs = "console=ttyAMA0";
                 reg = <0x00000000 0x40400000 0x00000000 0x02920000>;
                 compatible = "multiboot,kernel", "multiboot,module";
             };
         };
     };

Investigation:
  It was narrowed down to a specific configuration with cpupool assigned to the domain (100% reproducible):
  Host has 2 pCPU
  Domain has 2 vCPU
  cpupool_0 has 1 pCPU (cpu@1 credit2)
  domain <- cpupool_0

  if Domain is assigned 1 vCPU - no issues.
  if cpupool_0 is assigned 2 pCPU -  no issues (seems slower a bit, but it is on a error  margin level)

I'd be appreciated for any help with this (or revert :().

-- 
Best regards,
-grygorii


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 15:11:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 15:11:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174035.1499011 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOdeT-0004sT-3v; Thu, 27 Nov 2025 15:11:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174035.1499011; Thu, 27 Nov 2025 15:11:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOdeT-0004sM-1O; Thu, 27 Nov 2025 15:11:21 +0000
Received: by outflank-mailman (input) for mailman id 1174035;
 Thu, 27 Nov 2025 15:11: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=Mf1n=6D=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOdeR-0004sG-N6
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 15:11:19 +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 52b6a5db-cba3-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 16:11:17 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-47790b080e4so4390175e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 07:11: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-42e1cab9af3sm3997047f8f.41.2025.11.27.07.11.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 07:11: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: 52b6a5db-cba3-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764256277; x=1764861077; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=K12JQHRDQ3wcMbR70nQkJaKHPBUaiQDgZtmyyFVFHkc=;
        b=hD/QEpvqNZmzX8OuUeNprCHS1RmOh8BwpTLNr0BuX2nKgdi2HSmdlHExqhxDl2iTpp
         fsEhiLYqOXPLL3RHAY98ZxitvXyWN+eugX3zs6V9wAKyCO8wDaPUVSJ5LTJWfVW9jNPU
         izudC29mD5A1tgm6HnBmO9j1UUHpYhSz1udYXbj+p87KilQKW3orQl/RO3Hg/M6AJSr4
         pRQNad3ts8VCKmkA95AszVJt0hVFD0oh84mFIFTDmacLuL3LOgb8KIPwpStJCOCHZeof
         A898A3xvdKWC+/KRwTSTMvx+ayprC7evLdBZ26AlQv+YkNxaR+9mgl988R4ot/vxgDpQ
         s/XA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764256277; x=1764861077;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=K12JQHRDQ3wcMbR70nQkJaKHPBUaiQDgZtmyyFVFHkc=;
        b=SncV/YJNH4webcQweLgfR8MOd6P+lCn6TmGBnW3kTmABX4a4yrqrXeDsJq8v2PMoKG
         /zptiPqBoMt3ekGGf7JxwiE6R03YOqupaQiqM6OqKGukgBn8vc/3d3Aqtv8RHnwxd2JJ
         ZSc2WS4IibkUEsx7DP12ukFm8kG0wQjKsD1DV8bOSFkh8ZRGFSZRKqZkp+KKsdO920rt
         zfnKW5jQfAV0W1yNn55zM71PT5o1mAFy7Tmf5Jgk5XeDsf8nEg3BtXEbGVvrP1XgV00e
         /ZskJNUEnKJ0Wgt3AXrl0a9G9WnDJ6HOeyA9RfnHMZqXZWxox4XVraPl3fxM76sQMihM
         COrQ==
X-Gm-Message-State: AOJu0YydaV6YevR3cfmx9J5cWx2C5C3HToBNhP7ej3pVx9da1taoLaw0
	vxcXfwPmTpVMrLw7fX7EXZQOApmgidI0vkN1lL39JNqkWFxlsvySvXfDVUDYQa7aEQ==
X-Gm-Gg: ASbGncv5xsHdF/qDj9gzxW3G47WimB23fjSpmEZfIn4d6ObdBrXcmtUZATID2EuZTfM
	fhZzx4fmZ8IBsRRKxsnhoChBQx64xLGi18WrbvvOxlreLY8Vtyz8tE6GgW0JJQJ/+0HflKr7LBN
	UWxEbFM83yNIzlj79qcb6aJfGkVF4WKzRb95k0Dd+IrRymo6a1s+nQggA7v+ZgBQruSPqEgR3Cp
	zXtW7cght3XA4QfnsntL/FEZwcec9pPMgKqvVZiKafgc9XZc8E48QLxGKILUeOVLrl6th3vrct/
	8nfh3vH1LxB5Y1eJUHFDfHAZv0hvS2u6ueZP++Bk9Qrm06h/MHgosxEKITO0CkIlDdgdaP4waYb
	qRHAyl9lu861C2h9btz4fxRgULbjbYNdKlYKqDm5Qlx4YiUjrxxpkka+2URlUc7xMUaorZnaLQY
	LYXqmSBCxn3Td7iuDtKJtB2ICtmPo98UQqGNN89Vvtvn0GgyS9UbytJQI6YKgF5KOm3VR0wgGqC
	vY=
X-Google-Smtp-Source: AGHT+IHZgOi7AqH7V1P7Mw4R84RBdiwF9H7cE/K71bfAXwfuJHvBYSRi4785hKszLhnkD2vISP8N5w==
X-Received: by 2002:a05:600c:1914:b0:471:114e:5894 with SMTP id 5b1f17b1804b1-477c112587fmr197059345e9.25.1764256277152;
        Thu, 27 Nov 2025 07:11:17 -0800 (PST)
Message-ID: <d9ad2643-63b8-4d70-8231-b873a77a3859@suse.com>
Date: Thu, 27 Nov 2025 16:11:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] libxl/json: don't expose internal functions
To: Anthony PERARD <anthony@xenproject.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>
References: <1533aaa3-5065-4214-a920-191a8b174314@suse.com>
 <aShf3WFVns0StoGe@l14>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aShf3WFVns0StoGe@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.11.2025 15:27, Anthony PERARD wrote:
> On Tue, Nov 25, 2025 at 10:11:21AM +0100, Jan Beulich wrote:
>> Ideally internal function declarations wouldn't live in a non-private
>> header. If already they need to, they should be hidden as much as
>> possible. That is (a) their declarations shouldn't be exposed and (b) the
>> symbols shouldn't appear in the shared library's dynamic symbol table.
>> Gate the declarations upon _hidden actually being defined (rather than
>> providing an empty fallback), and apply _hidden also to the libyail
>> variants.
> 
> The YAJL functions needs to stay in the API, they've been exposed on
> purpose in this header... The only user of those I know is `xl`. They
> are limited since your application also needs to use libyajl. I think
> I've butchered this header enough to make it complicated to use for
> applications that are not `xl`.

But xl doesn't use any of them, ...

> libxl_json.h is only part of the header, there's a second part that is
> automatically generated, _libxl_types_json.h.

... it only uses something from that generated header (which isn't being
altered here).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 15:20:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 15:20:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174050.1499022 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOdnc-0006kM-4y; Thu, 27 Nov 2025 15:20:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174050.1499022; Thu, 27 Nov 2025 15: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 1vOdnc-0006kF-1y; Thu, 27 Nov 2025 15:20:48 +0000
Received: by outflank-mailman (input) for mailman id 1174050;
 Thu, 27 Nov 2025 15:20: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=jSjm=6D=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOdnb-0006jt-Nq
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 15:20:47 +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 a0ffb4ac-cba4-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 16:20:39 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH4PR03MB7723.namprd03.prod.outlook.com (2603:10b6:610:23c::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.13; Thu, 27 Nov
 2025 15:20:35 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Thu, 27 Nov 2025
 15:20: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: a0ffb4ac-cba4-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=F2Ir1G/4j2bdasQcsVjtlkM13g+WtIej6267FPF2rQxfrsE2s7SVoeb9IOyBZOmw4k5LUdO1FcYJ3nq3RnT0nOMwzLD6V5qp7AXmjbcXRt1IrVSaJ2z0RoEcYm6zFq7My2q+jxw/ItMMfzX/UPSjHU38Ht9WoQ9XxEjawHjVhdMEhmW6V9Winijsuv5S8m74Dtm1effJeywVFf8pWVO9dRG0TUn7sPKFx2VFR7B9Kt0k5vUAZ1X2NCDdjzgx8/cMkMKcNzddgwSfA8TMSMVa7vTIBhiLLloS82F10yzYHy/SZ0spU3knHkZaXXOy1t/Ps8FoTKEU4NqI2oHwP5Yw0Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ktYr8Eeeo4+2LU7GQU9mI9cwA34liA6BGKyXsUgbKao=;
 b=PAbIZ9tkNqZMDIVxadP8OT5DGr+O+i/3/fXvqFAq8x7edEu4HPnsZWGo0nAG7r0UfVmQMyjHvvPj5ljdlUIoKj1rLAUeIilZfbfv/VevyNUfngYKwjVFSzTdlplenb/zSsjx21MpEy1j1GZteEQf3NrGTxU3BFqr2WNl+42x6T9TcxgjJ4/v1Uu7ARXXULe/36kxutErt6SWgvTqeCjtvEU+4ywQRVrlFbiwcapJZM6OebiYLD8v2pefXvEGRO8f1Woum4H6vlyl9Gj5uaVN5SYH+XjkUkPus/bhj/VfgXQjH4eOsyZlavDQ7VptWPmE1Qv5R9pAenCpryzuV+AD3g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ktYr8Eeeo4+2LU7GQU9mI9cwA34liA6BGKyXsUgbKao=;
 b=u2jSpWv4ZUJC5nxxY2OedSAWOcM7EMJV2MnYba2/rL911a7Ry2MNC+eQZyJxCd1uUx0dJyBRKbBRlE1uM9hrLFAH3bXG66xmsdvMo8R2X0rd9nzh+8xGj+wj96S0GlcmCA1CBq9fQZTAe1OrrzGxTDITxSLln5ZKgB56WOGu+4A=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <3653404b-0428-4dae-912f-18c4f8e74853@citrix.com>
Date: Thu, 27 Nov 2025 15:20:31 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH] x86/efi: Remove NX check from efi-boot.h
To: Julian Vetter <julian.vetter@vates.tech>, xen-devel@lists.xenproject.org
References: <20251127143136.1598354-1-julian.vetter@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251127143136.1598354-1-julian.vetter@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0588.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:295::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_|CH4PR03MB7723:EE_
X-MS-Office365-Filtering-Correlation-Id: 0141d671-876d-446a-3f27-08de2dc88338
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?U3JPWCtVMkFUMEdrdEdjSGZVVzVkNjRMV1B2cm52aTNENW1IT0t2YVVyYXZG?=
 =?utf-8?B?YWt1V29MZE9RZUZTSUlSRWRFU1Jodjc4Qm1TT08rWmVxOVpMSXVKYTFkVkxK?=
 =?utf-8?B?anRwM3BkWXNkV2x3bjBlbERzV28yKzVMUlUrcnFxQXNmVTNZU1d5N2MyZThR?=
 =?utf-8?B?ODg0YU1MVXdLemNTdG1zOXYrb3hnQllkSDA3YTRpSXB3aHFmZ1ZwQmYrcStY?=
 =?utf-8?B?SUxuckxIZ0hQU3NzM1VRMkdXRlJ6NDNZWS84QTJuYVJJRGZqbjZaWmxydk1Y?=
 =?utf-8?B?VHZsM1J2WFY1NG44ZFg3NUExci9aemxZUGNOWkJXaTNydUNKUThDbXptVEtY?=
 =?utf-8?B?dm80Uy9CZFpyNkQzSjRKaURqWHd4YUNKendSdXpVRGZ5SWpPUjJ1ejRIQ0xT?=
 =?utf-8?B?MjZoQ1dQL2pTVjEvNWUrSFU4SVlNMDAyTVBwSnF4bVVqczdYQmx6SWU0dEhD?=
 =?utf-8?B?bHREQTVKbGdlaTEyL1lmM0gwS0NuQ2FDWi9MZEhUL2ROdW9MOUZ1Zlhza0Yr?=
 =?utf-8?B?dnIvbDFvdkgwNzZHa1hadzNSZ25zWm4xQ21ZZ2o1YjBzbEIyNzlnQ2VCRGRQ?=
 =?utf-8?B?eDRaWUt6UTRzKzhDeFJCOEhiS3dZeFdBOHZleDdLUkEweHVOUHpSS0ZiS3JS?=
 =?utf-8?B?aE1tQnNPMFFGaFhjL2xOSmdKRXFNUkJYQkY4YkxRYTZyb0ovazJUaXJJcmpI?=
 =?utf-8?B?SnRMOXNHbitMSStmU1lKcy9BMkdsdE0zb2I1Uy9NUFZiU2wxUENseDUzdGlr?=
 =?utf-8?B?MDd2VHNJajFubklCSmlUdTQyN080YUpuY1VkbzlrbVJJS05wN25iOUQwWGZq?=
 =?utf-8?B?TUNzRXpRYmJ2cG5CNDRTR2k3eEFZTUo2TzNwaFJkcGUybU0ySTg1M040dXds?=
 =?utf-8?B?MmJhSStDNmJoeDE5ZDhSbWs4Zlk4MmpwV3NwVHlUT1FsdjVma2hORFBsQWxU?=
 =?utf-8?B?Qk9zYStOUEEzUUlnQlYvSktsSnpQbWtmTncxdDl6V1RvWFNZYm13MitSbGpi?=
 =?utf-8?B?U1ZjMTBac083enEwRlhZNkRlL0g0bFV4RjhsdkNiNFljQmZmU0s5MC9lMUNo?=
 =?utf-8?B?RkRuTld6VXFkaklaQ1RlcUdVZTU4U1lrSkZ4TmdpSzN6cG96UHFzaGJKd1g3?=
 =?utf-8?B?WFN6UjdvcnQ5aHN0VUZXR1J5Q2lML2JMZWc0anFBcHhjc0gvemcwb3NxVVBH?=
 =?utf-8?B?c1RSenMwd3NKdTFkMjA0aTh3YjgwaTE0SERmdEF1dTlaeHh2eVk2TTFXOVFY?=
 =?utf-8?B?dmdTYk13dHNzTUtJTUtlbXlFd2NQWWlBemRKNmtxbkxEUTlGQ0dxS0JDN0Jk?=
 =?utf-8?B?T0EwNTVPQ0dhZ09SRTdBUUp2aEZPRVVFUllIZkNZTTR2ZHBIcTc0QXg3UDZR?=
 =?utf-8?B?Ym5xaDZwT0JEUVU1cGRxNHRZMFBENVlaTjJNS3hLOTBnVDZweEhDaTNCRlZn?=
 =?utf-8?B?MUt4NE5zckpua2VoRnVoNzFoSkZBNGRlRkhoVXJKdkQ1ZDM4eTdVb3RmK25t?=
 =?utf-8?B?KzFmMTQ1SllFR3dsVnYydm5VMTIyUlUxMnpJV2krYys1L2hpdU5NNm1hWlUv?=
 =?utf-8?B?bytMWTNPUkhhakNtQ1pvWTRSbitNUUlxWHlKYjJlY3BHdHVwTWNUVE15ME53?=
 =?utf-8?B?ZENhUHN3NGs3azNSU2VoK3d3Q29KcG9JUXNVdW1HMnZNclN1dXhKY2tvOFkz?=
 =?utf-8?B?OFVFSnRQUmh5YjUzVjkrQnlQaHlnQnhqUUg3WEFFQ0FMUkpWayt1MlNBT0I5?=
 =?utf-8?B?MG9Lb3FCanBPUU1VamxWOXNGSEZoa0NmVE1Kem9ZRVpOWjBxNTlaTStScFNx?=
 =?utf-8?B?UHgxNUN1TXFtMlZacEExUEZyb2hzNEVEWVg5cmplSHMwbFY5V3E3THZjTktH?=
 =?utf-8?B?MVJuYURKMkxhVVAyMTAwMmJKMzZOTG9hQmxlMFU3cEJnZDlyWlRUa3o0eGRl?=
 =?utf-8?Q?Jqixfu4JM61Tq6keFch8QPaMxxcLTUPi?=
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?aVR1czNJRmhjOVo4bzhsM091Vzkyc3UzaXozenRGb0hqdFFvTlJoMmR3c2dC?=
 =?utf-8?B?TTZzWHpyajZCU2hwQjZPYlJXNUVFdU1hTjArb1ZiLzhsemVtK3l3Y0ZqN0Jx?=
 =?utf-8?B?UGlUaU5yYXhldlpwUGgxa0huQkd3NmdPTnlXdi80aWJpaXhWSjIzdW5NRWE1?=
 =?utf-8?B?dlJncHppTmpPZ21EYjZIdXZHS1RvaHp1V0V5a0I0K2hKa29PdDhBbGM4dTEw?=
 =?utf-8?B?SHVxNEJDQk43akZEU2RlZ2FaVlRDM3NPc0VVejlIYVVpUGRGdnpyTWJEQzJE?=
 =?utf-8?B?RENrZTgyaGVSKzhzc3oyY2dhUlBTaUQ2SXFWdmtJdGJWQUlZdWNsM0dDSkFt?=
 =?utf-8?B?b2N3RGwwMElPTVRZQjRaeGJ1VUlZYzlFMEozSnRreVBqMXVWcDVSVVcrai9x?=
 =?utf-8?B?ajdJaEdoSFdOTEExczdVdCt1TlFiODlwY0htYWVHajB6WHRHUVRjUXlWU1dU?=
 =?utf-8?B?S3A3bzFtSUtKNTBqb2lweDdZNllhRjU3ZjFHcEgyOUxxNE1rS2RGaGl1UWdT?=
 =?utf-8?B?cmVqOHVXeVJzdWlPenNvYXh0czcrWEVQVnZXYnJtT3NzYldKRGdnd05CQis0?=
 =?utf-8?B?SjJqTkd0aUd2Q1V5SUl2UFErZUw4UkNxd1I3anZ5cnJnaG5jWDg2L1orTEdi?=
 =?utf-8?B?K2JLdDV2TnlXMzMwenhZRHJCN2F1Z2Zlanl5c3NDVkhnTXd4YndNRnJuMFZH?=
 =?utf-8?B?OFRQZGFzZW5oVkswVHVOOHJ2MVA2VE1GcENudjduMG5WQ1l1anJDSW5QbkxF?=
 =?utf-8?B?M04zdkIvM3pqQ1JPVmVmb0JFbVN4QnhEL08yeWRSSGE3N2RjRysrL3hXTmpF?=
 =?utf-8?B?Yk1JK3ljV2dHTDVmTFNRMFluQmJLejByRDQwNWpVeDNYSGFFYk5MNGcvTFJD?=
 =?utf-8?B?U3ppcnFpR3Zxc2ZEZkMvTmVRTFpJY3hHSjhuSWF4MGcyWm45elBrY2NreDFL?=
 =?utf-8?B?MXFSTGdBTUk3anJwVDloZEowbkkrWmN3QjNMZXZLTFM5ZDRDc0lFUURQRUJ6?=
 =?utf-8?B?Qm8yS3BGRlhtSE1TZUlOMFRIOGdhTWxQU0g5SkRXQWpDRDNPVE1SR1kzVWI4?=
 =?utf-8?B?dk9XQjl2RmdyU3FvMTNiTCtrU1h0TWVvUm0xZmxZUkQ4U1c5ZXpTejFETUlM?=
 =?utf-8?B?U3R0bENMYWxLYUlwcVFyT3YyWWw4NTFRM2JVOEdEcFVyQnFIZEhYQW5sNzhh?=
 =?utf-8?B?OTVwWjFPNFZKRE9uOFdoZ1pOeW1yQ1R2clV4amJBNnlkZkpoMUtkb3E0b0xt?=
 =?utf-8?B?amV6bGs4YnRvaERDSmE5MEFlSmVLc05TdzZqR00raEdzcHFHT09vMFNCOTYv?=
 =?utf-8?B?WG1ReTdadVR1YXpxZzdQN3RSSW1HM1JQKzNCUktSQWpkNkNIMnh4ZWJGSUM3?=
 =?utf-8?B?aVIxd3poaVRDcXhWb2w1dW50ckM1UEp6K3cwbWRCbTM3aHBPN1dnS281ZHJj?=
 =?utf-8?B?aENMTitpUmpKQVFqR0JLZW1nZ3IwTnc2K1Aza3BSNy9qQW1NYVhlUVlnYVdp?=
 =?utf-8?B?dVBVNEZSTTRwQ1ZqMmhtVnV6QWpzOTFYTnQzTk9hTGMrelZQaHAwV1hna0wx?=
 =?utf-8?B?Y1VJYVZ3QTVtNklweDN2bnNQQzhaZkNXTU9GMzRialZ4Q0tzZDBvb1gxY3Jr?=
 =?utf-8?B?ZG9PQW5neTE3QW5aOEkxbGRCcEtLY2ZTQlM2eVVrMGNFeEtWQlQzakFucWpY?=
 =?utf-8?B?MDlLcWE2bWRackU3UjJOYXdaREE5NDE4WE5SR0Z3ME4waGlmdmo0RUdESTJF?=
 =?utf-8?B?VUUvcklXZmpZc0tZM3ljek5pcnRBTjRpUHlhTjljczhyeGJXU3YxWGVXZlhE?=
 =?utf-8?B?WnJyWGRmYUJrZTJpVmZwdHpwVTkrUU5PSytYc2dRSVNPVmZmWld4K2d4WjdU?=
 =?utf-8?B?T2loTy84S3RPL3BwU3d3VnBkZlRVd3NBOTZSa0RuNC9vNmVJcC85ZXAwUldv?=
 =?utf-8?B?ZEk5YnVoMCtIV0pNZTJVOURpOENkaHBaV2pvVnNtS0xmam1WVGtUZVR6blBZ?=
 =?utf-8?B?Zzh2dzdhME9kN0s3MlU2OFZJQ1pIT2RYcDU0RE96c3dNdlVsTWlYTlBJUDVi?=
 =?utf-8?B?QjkzRklUWm1jOUtERmx6bGIvYXpmWVIvNlcwT1pRVmx3R2tHRW0yR0lvVXhh?=
 =?utf-8?B?RmxZNVVCcUpaelFGNlhNTEhreThHVGRuTDZyZHlRTW44bXNFODk5bm44Wi8r?=
 =?utf-8?B?Qmc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0141d671-876d-446a-3f27-08de2dc88338
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 15:20:35.3003
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9vqL2M5m3ygc2yRepyRMcSdlWM5V6N16uQQ5CG6vxtOSAbjFwjGl/5uqmero71iznroXnJog7IVm/3txTCeK5fr642IuU5xyPVK+k6987wE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR03MB7723

On 27/11/2025 2:31 pm, Julian Vetter wrote:
> Currently Intel CPUs in EFI mode with the "Execute Disable Bit" disabled
> and the 'CONFIG_REQUIRE_NX=y' fail to boot, because this check is
> performed before trampoline_setup is called, which determines if NX is
> supported or if it's hidden by 'MSR_IA32_MISC_ENABLE[34] = 1' (if so,
> re-enables NX).
>
> Signed-off-by: Julian Vetter <julian.vetter@vates.tech>

Lovely...Â  This isn't the only bug; there's another one from the Vates
forums about AMD CPUs which I haven't gotten around to fixing yet.

Do you have any more information about which system looks like this?

trampoline_setup isn't executed on all EFI boots.Â  I had a different fix
in mind, but it's a little more complicated.

If I do the key prep patch, would you mind trying to tackle the AMD side
too?

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 15:33:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 15:33:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174059.1499032 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOdzb-0000V6-6A; Thu, 27 Nov 2025 15:33:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174059.1499032; Thu, 27 Nov 2025 15:33:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOdzb-0000Uz-29; Thu, 27 Nov 2025 15:33:11 +0000
Received: by outflank-mailman (input) for mailman id 1174059;
 Thu, 27 Nov 2025 15:33: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=orZJ=6D=bounce.vates.tech=bounce-md_30504962.69286f2d.v1-7f97706ba28149e7bfcb852ef04831b8@srs-se1.protection.inumbo.net>)
 id 1vOdzZ-0000Us-Sb
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 15:33:09 +0000
Received: from mail132-20.atl131.mandrillapp.com
 (mail132-20.atl131.mandrillapp.com [198.2.132.20])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5ce253c7-cba6-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 16:33:04 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-20.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4dHL6P74ldzFCWk93
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 15:33:01 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 7f97706ba28149e7bfcb852ef04831b8; Thu, 27 Nov 2025 15:33: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: 5ce253c7-cba6-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1764257582; x=1764527582;
	bh=ln8WgTG9hxzuxdRJGfD2pyt+riyB+a6ndCIwsDgUQco=;
	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=WBMXhtPOcBdpXhNlSL2fSdFo93HIhAEmE0uIPWMsCm4jaHqj5o2+XWH85qhjc5aG5
	 q+TlltOa51MzMGerQ9JQqkl8c+1U+HICF9I+o+g7YR1jwCfSutrDC1+w73jjIbRD01
	 nXyh1Imly/VZ6dozm0oRPjXJa2xhcthNqT+P+9Q//AGI7F2H9L/55w6EBeLGSlqvaT
	 yEP25QO6+igDUQdWyjdy7tlJuz0yy05WpxXB3yo8Apwz7PMpmw8zioZRg3S04968/u
	 qNxbCOe/yFj9aFxPzFZ7ez2GYYGdPnmQ/mgvG8/r91NqQMXSLMp7M3UFqxkGeFSUIy
	 1Xzyp5BAJA3TQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1764257582; x=1764518082; i=teddy.astie@vates.tech;
	bh=ln8WgTG9hxzuxdRJGfD2pyt+riyB+a6ndCIwsDgUQco=;
	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=Q2FA0U+Uq/nOY+pBvbup+TX0AmlAQ+TXZ2Y9h8RFCJXvb2K5zapQv8Iq2kWug9As/
	 C2bKwX99GZxik19zdw0QE3XfmNkTelIL/lS8UwcynBZDKJZY5vBpzXG/lRJ3eeNZRP
	 rpLmjHG3z7mk5hTy4rUKp3zXiQrbCVcLJ458AKs37qhycJarCNLrJ2xvfzfNJ8aXix
	 7wl1htQ5wNZbXc8OLlks2emSaSQdskRNlV/SCPbWa29I8VwM4g5mwKb/X/3S5Tie3g
	 9J/buMkW84yraNAKktvu/nmPYcQ6ggCX8HRgc6PM/sXQgaUdTfiaYIqg+Uwc5KZ8ee
	 jnMoehS9q3V3g==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20x86/efi:=20Remove=20NX=20check=20from=20efi-boot.h?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1764257580679
Message-Id: <c0a9a466-e78c-4022-a631-4840e085ae77@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>, "Daniel P . Smith" <dpsmith@apertussolutions.com>, "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>
References: <20251127143136.1598354-1-julian.vetter@vates.tech>
In-Reply-To: <20251127143136.1598354-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.7f97706ba28149e7bfcb852ef04831b8?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251127:md
Date: Thu, 27 Nov 2025 15:33:01 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 27/11/2025 =C3=A0 15:33, Julian Vetter a =C3=A9crit=C2=A0:
> Currently Intel CPUs in EFI mode with the "Execute Disable Bit" disabled
> and the 'CONFIG_REQUIRE_NX=3Dy' fail to boot, because this check is
> performed before trampoline_setup is called, which determines if NX is
> supported or if it's hidden by 'MSR_IA32_MISC_ENABLE[34] =3D 1' (if so,
> re-enables NX).
> 
> Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
> ---
>   xen/arch/x86/efi/efi-boot.h | 12 ------------
>   1 file changed, 12 deletions(-)
> 
> diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
> index 0194720003..8dfd549f12 100644
> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -748,18 +748,6 @@ static void __init efi_arch_cpu(void)
>       if ( (eax >> 16) =3D=3D 0x8000 && eax > 0x80000000U )
>       {
>           caps[FEATURESET_e1d] =3D cpuid_edx(0x80000001U);
> -
> -        /*
> -         * This check purposefully doesn't use cpu_has_nx because
> -         * cpu_has_nx bypasses the boot_cpu_data read if Xen was compile=
d
> -         * with CONFIG_REQUIRE_NX
> -         */
> -        if ( IS_ENABLED(CONFIG_REQUIRE_NX) &&
> -             !boot_cpu_has(X86_FEATURE_NX) )
> -            blexit(L"This build of Xen requires NX support");
> -
> -        if ( cpu_has_nx )
> -            trampoline_efer |=3D EFER_NXE;

I don't think we want to skip setting EFER_NXE. As it would mean not 
using NX at all (unless I missed something).

If cpu_policy doesn't have nx, it is likely going to cause issues e.g in 
VMs which will not see NX and potentially refuse to boot. I don't really 
know in which order things are initialized, but it probably wants to be 
considered.

Perhaps, we want to do something like detecting the 
MSR_IA32_MISC_ENABLE[34] then adjusting the cpu_policy appropriately 
after patching it ?

>       }
>   }
>   



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Nov 27 15:52:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 15:52:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174069.1499043 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeI7-0003dO-Mt; Thu, 27 Nov 2025 15:52:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174069.1499043; Thu, 27 Nov 2025 15:52:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeI7-0003dH-Ip; Thu, 27 Nov 2025 15:52:19 +0000
Received: by outflank-mailman (input) for mailman id 1174069;
 Thu, 27 Nov 2025 15:52: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=+gQU=6D=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vOeI6-0003dB-9a
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 15:52:18 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 0c0d5dec-cba9-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 16:52: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 3EF55176A;
 Thu, 27 Nov 2025 07:52:08 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.89.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 4A54F3F73B;
 Thu, 27 Nov 2025 07:52: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: 0c0d5dec-cba9-11f0-9d18-b5c5bf9af7f9
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 00/10] xen/arm: ffa: FF-A v1.2 support
Date: Thu, 27 Nov 2025 16:51:31 +0100
Message-ID: <cover.1764254975.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This series updates Xenâ€™s FF-A mediator on Arm to implement the FF-A
v1.2 interface while keeping existing v1.0/v1.1 guests working.

Patches 1â€“5 rework the low-level plumbing:

  1) add the FF-A v1.2 function IDs and probe the new ABIs
  2) track per-VM FFA_VERSION state and enforce negotiation
  3) harden RX/TX mapping and validation
  4) rework SPMC RX/TX buffer management so access is serialized and
     RX buffers are always released back to the SPMC
  5) switch the mediator to spec-compliant signed 32-bit status codes

Patches 6â€“9 update the data structures and direct-call paths:

  6) add ffa_uuid helpers and rework partition-info handling
  7) refactor direct requests via a common RUN/direct completion helper
  8) add the v1.1/v1.2 SEND2 header layout
  9) add MSG_SEND_DIRECT_REQ2/RESP2 support and marshal the extended
     register set for v1.2 guests

Patch 10 tightens the dispatcher and advertises FF-A v1.2 only to guests
that negotiated v1.2:

  - reject SMCCC64 calls from AArch32 guests
  - expose the new FIDs and RX/TX capacity fields
  - bump Xen's FF-A version to 1.2 once the implementation is complete

v1.0/v1.1 guests continue to use the v1.1 ABI without behaviour changes,
while v1.2 guests can negotiate the wider ABI and use RUN, SEND2, and
DIRECT_REQ2/RESP2 with the extended register set.

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

Bertrand Marquis (10):
  xen/arm: ffa: add FF-A v1.2 function IDs
  xen/arm: ffa: per-VM FFA_VERSION negotiation state
  xen/arm: ffa: harden RX/TX mapping
  xen/arm: ffa: rework SPMC RX/TX buffer management
  xen/arm: ffa: use signed 32-bit status codes
  xen/arm: ffa: add UUID helpers for partition info
  xen/arm: ffa: refactor direct requests via RUN helper
  xen/arm: ffa: add v1.2 SEND2 header layout
  xen/arm: ffa: add MSG_SEND_DIRECT_REQ2 support
  xen/arm: ffa: advertise FF-A v1.2

 xen/arch/arm/include/asm/tee/ffa.h |   2 +-
 xen/arch/arm/tee/ffa.c             | 205 +++++++++++++++++-------
 xen/arch/arm/tee/ffa_msg.c         | 203 ++++++++++++++++++-----
 xen/arch/arm/tee/ffa_notif.c       |  14 +-
 xen/arch/arm/tee/ffa_partinfo.c    | 248 ++++++++++++++++++-----------
 xen/arch/arm/tee/ffa_private.h     | 133 ++++++++++------
 xen/arch/arm/tee/ffa_rxtx.c        | 160 +++++++++++++++----
 xen/arch/arm/tee/ffa_shm.c         |  30 ++--
 8 files changed, 703 insertions(+), 292 deletions(-)

-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 15:52:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 15:52:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174075.1499052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeIe-00044G-T1; Thu, 27 Nov 2025 15:52:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174075.1499052; Thu, 27 Nov 2025 15: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 1vOeIe-000447-QT; Thu, 27 Nov 2025 15:52:52 +0000
Received: by outflank-mailman (input) for mailman id 1174075;
 Thu, 27 Nov 2025 15: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=+gQU=6D=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vOeId-0003dB-BF
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 15:52:51 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 2087d7e9-cba9-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 16:52:50 +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 8AB71176A;
 Thu, 27 Nov 2025 07:52:42 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.89.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 9A1173F73B;
 Thu, 27 Nov 2025 07: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: 2087d7e9-cba9-11f0-9d18-b5c5bf9af7f9
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 01/10] xen/arm: ffa: add FF-A v1.2 function IDs
Date: Thu, 27 Nov 2025 16:51:32 +0100
Message-ID: <2264daf90cbb25b9a60ebe8edbebb8988d95966b.1764254975.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764254975.git.bertrand.marquis@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Bring the FF-A headers up to the v1.2 baseline and fix the function-number
range used for ABI discovery:

- update FFA_FNUM_MAX_VALUE so the FF-A function-number window covers the
  full v1.2 range, and derive the ABI bitmap bounds from
  FFA_FNUM_MIN_VALUE/FFA_FNUM_MAX_VALUE instead of hard-coding
  FFA_ERROR/FFA_MSG_SEND2
- define the new v1.2 function IDs; CONSOLE_LOG and
  PARTITION_INFO_GET_REGS are added for ABI discovery even though they are
  not implemented yet
- extend the firmware ABI table to probe RUN and
  MSG_SEND_DIRECT_REQ2/RESP2
- while there, fix an off-by-one in ffa_fw_supports_fid(): the computed bit
  index must be strictly smaller than FFA_ABI_BITMAP_SIZE, so use >= in the
  bounds check

Keep FFA_MY_VERSION at 1.1 for now; we only advertise v1.2 once the
implementation is fully compliant.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/include/asm/tee/ffa.h |  2 +-
 xen/arch/arm/tee/ffa.c             |  4 ++++
 xen/arch/arm/tee/ffa_private.h     | 18 +++++++++++-------
 3 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/xen/arch/arm/include/asm/tee/ffa.h b/xen/arch/arm/include/asm/tee/ffa.h
index 24cd4d99c8f9..c587f76e63ca 100644
--- a/xen/arch/arm/include/asm/tee/ffa.h
+++ b/xen/arch/arm/include/asm/tee/ffa.h
@@ -16,7 +16,7 @@
 #include <asm/types.h>
 
 #define FFA_FNUM_MIN_VALUE              _AC(0x60,U)
-#define FFA_FNUM_MAX_VALUE              _AC(0x86,U)
+#define FFA_FNUM_MAX_VALUE              _AC(0x8F,U)
 
 static inline bool is_ffa_fid(uint32_t fid)
 {
diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 1d0239cf6950..2b4e24750d52 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -11,6 +11,8 @@
  *               https://developer.arm.com/documentation/den0077/a
  * FF-A-1.1-REL0: FF-A specification version 1.1 available at
  *                https://developer.arm.com/documentation/den0077/e
+ * FF-A-1.2-REL0: FF-A specification version 1.2 available at
+ *                https://developer.arm.com/documentation/den0077/j
  * TEEC-1.0C: TEE Client API Specification version 1.0c available at
  *            https://globalplatform.org/specs-library/tee-client-api-specification/
  *
@@ -102,6 +104,8 @@ static const struct ffa_fw_abi ffa_fw_abi_needed[] = {
     FW_ABI(FFA_MSG_SEND_DIRECT_REQ_32),
     FW_ABI(FFA_MSG_SEND_DIRECT_REQ_64),
     FW_ABI(FFA_MSG_SEND2),
+    FW_ABI(FFA_MSG_SEND_DIRECT_REQ2),
+    FW_ABI(FFA_RUN),
 };
 
 /*
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 6dbdb200d840..d7e6b6f5ef45 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -15,6 +15,7 @@
 #include <xen/spinlock.h>
 #include <xen/time.h>
 #include <xen/types.h>
+#include <asm/tee/ffa.h>
 
 /* Error codes */
 #define FFA_RET_OK                      0
@@ -42,6 +43,7 @@
 
 #define FFA_VERSION_1_0         MAKE_FFA_VERSION(1, 0)
 #define FFA_VERSION_1_1         MAKE_FFA_VERSION(1, 1)
+#define FFA_VERSION_1_2         MAKE_FFA_VERSION(1, 2)
 /* The minimal FF-A version of the SPMC that can be supported */
 #define FFA_MIN_SPMC_VERSION    FFA_VERSION_1_1
 
@@ -270,6 +272,10 @@
 #define FFA_RX_ACQUIRE                  0x84000084U
 #define FFA_SPM_ID_GET                  0x84000085U
 #define FFA_MSG_SEND2                   0x84000086U
+#define FFA_CONSOLE_LOG                 0x8400008AU
+#define FFA_PARTITION_INFO_GET_REGS     0x8400008BU
+#define FFA_MSG_SEND_DIRECT_REQ2        0xC400008DU
+#define FFA_MSG_SEND_DIRECT_RESP2       0xC400008EU
 
 /**
  * Encoding of features supported or not by the fw in a bitmap:
@@ -280,11 +286,9 @@
 #define FFA_ABI_ID(id)        ((id) & ARM_SMCCC_FUNC_MASK)
 #define FFA_ABI_CONV(id)      (((id) >> ARM_SMCCC_CONV_SHIFT) & BIT(0,U))
 
-#define FFA_ABI_MIN           FFA_ABI_ID(FFA_ERROR)
-#define FFA_ABI_MAX           FFA_ABI_ID(FFA_MSG_SEND2)
-
-#define FFA_ABI_BITMAP_SIZE   (2 * (FFA_ABI_MAX - FFA_ABI_MIN + 1))
-#define FFA_ABI_BITNUM(id)    ((FFA_ABI_ID(id) - FFA_ABI_MIN) << 1 | \
+#define FFA_ABI_BITMAP_SIZE   (2 * (FFA_FNUM_MAX_VALUE - FFA_FNUM_MIN_VALUE \
+                               + 1))
+#define FFA_ABI_BITNUM(id)    ((FFA_ABI_ID(id) - FFA_FNUM_MIN_VALUE) << 1 | \
                                FFA_ABI_CONV(id))
 
 /* Constituent memory region descriptor */
@@ -549,9 +553,9 @@ static inline int32_t ffa_hyp_rx_release(void)
 
 static inline bool ffa_fw_supports_fid(uint32_t fid)
 {
-    BUILD_BUG_ON(FFA_ABI_MIN > FFA_ABI_MAX);
+    BUILD_BUG_ON(FFA_FNUM_MIN_VALUE > FFA_FNUM_MAX_VALUE);
 
-    if ( FFA_ABI_BITNUM(fid) > FFA_ABI_BITMAP_SIZE)
+    if ( FFA_ABI_BITNUM(fid) >= FFA_ABI_BITMAP_SIZE)
         return false;
     return test_bit(FFA_ABI_BITNUM(fid), ffa_fw_abi_supported);
 }
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 15:52:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 15:52:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174076.1499062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeIg-0004IH-34; Thu, 27 Nov 2025 15:52:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174076.1499062; Thu, 27 Nov 2025 15:52:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeIf-0004IA-WC; Thu, 27 Nov 2025 15:52:54 +0000
Received: by outflank-mailman (input) for mailman id 1174076;
 Thu, 27 Nov 2025 15: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=+gQU=6D=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vOeIf-0003dB-1d
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 15:52:53 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 21965254-cba9-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 16:52: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 52CC7176C;
 Thu, 27 Nov 2025 07:52:44 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.89.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5CE9D3F73B;
 Thu, 27 Nov 2025 07: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: 21965254-cba9-11f0-9d18-b5c5bf9af7f9
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 02/10] xen/arm: ffa: per-VM FFA_VERSION negotiation state
Date: Thu, 27 Nov 2025 16:51:33 +0100
Message-ID: <5e66b2991340f010befcaa3a57d0f35ad18d4149.1764254975.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764254975.git.bertrand.marquis@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Track FF-A version negotiation per VM and enforce that no FF-A ABI
(other than FFA_VERSION) is processed before a guest has selected a
version.

Each ffa_ctx gains a dedicated guest_vers_lock, a negotiated version
(guest_vers) and a guest_vers_negotiated flag. guest_vers records the
version requested by the guest so the mediator can provide data
structures compatible with older minor versions. The value returned to
the guest by FFA_VERSION is always FFA_MY_VERSION, the implementation
version, as required by FF-A.

FFA_VERSION may be issued multiple times. Negotiation becomes final
only when a non-FFA_VERSION ABI is invoked, in accordance with the
FF-A requirement that the version cannot change once any other ABI has
been used. Before this point, non-FFA_VERSION ABIs are rejected if no
valid version has been provided.

Once negotiation completes, the context is added to the global FF-A
VM list (when VM-to-VM is enabled) and the version may not be modified
for the lifetime of the VM. All VM-to-VM paths and teardown logic are
updated to use the guest_vers_negotiated flag.

This prevents partially initialised contexts from using the mediator
and complies with the FF-A 1.2 FFA_VERSION semantics.

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

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 2b4e24750d52..3309ca875ec4 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -158,40 +158,89 @@ static bool ffa_abi_supported(uint32_t id)
     return !ffa_simple_call(FFA_FEATURES, id, 0, 0, 0);
 }
 
-static void handle_version(struct cpu_user_regs *regs)
+static bool ffa_negotiate_version(struct cpu_user_regs *regs)
 {
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
-    uint32_t vers = get_user_reg(regs, 1);
-    uint32_t old_vers;
+    uint32_t fid = get_user_reg(regs, 0);
+    uint32_t in_vers = get_user_reg(regs, 1);
+    uint32_t out_vers = FFA_MY_VERSION;
 
-    /*
-     * Guest will use the version it requested if it is our major and minor
-     * lower or equals to ours. If the minor is greater, our version will be
-     * used.
-     * In any case return our version to the caller.
-     */
-    if ( FFA_VERSION_MAJOR(vers) == FFA_MY_VERSION_MAJOR )
-    {
-        spin_lock(&ctx->lock);
-        old_vers = ctx->guest_vers;
+    spin_lock(&ctx->guest_vers_lock);
 
-        if ( FFA_VERSION_MINOR(vers) > FFA_MY_VERSION_MINOR )
-            ctx->guest_vers = FFA_MY_VERSION;
-        else
-            ctx->guest_vers = vers;
-        spin_unlock(&ctx->lock);
+    /* Handle FFA_VERSION races from different vCPUs. */
+    if ( ctx->guest_vers_negotiated )
+        goto out_continue;
 
-        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !old_vers )
+    if ( fid != FFA_VERSION )
+    {
+        if ( !ctx->guest_vers )
         {
-            /* One more VM with FF-A support available */
-            inc_ffa_vm_count();
-            write_lock(&ffa_ctx_list_rwlock);
-            list_add_tail(&ctx->ctx_list, &ffa_ctx_head);
-            write_unlock(&ffa_ctx_list_rwlock);
+            out_vers = 0;
+            goto out_handled;
         }
+
+        /*
+         * A successful FFA_VERSION call does not freeze negotiation. Guests
+         * are allowed to issue multiple FFA_VERSION attempts (e.g. probing
+         * several minor versions). Negotiation becomes final only when a
+         * non-VERSION ABI is invoked, as required by the FF-A specification.
+         */
+        if ( !ctx->guest_vers_negotiated )
+        {
+            ctx->guest_vers_negotiated = true;
+
+            if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
+            {
+                /* One more VM with FF-A support available */
+                inc_ffa_vm_count();
+                write_lock(&ffa_ctx_list_rwlock);
+                list_add_tail(&ctx->ctx_list, &ffa_ctx_head);
+                write_unlock(&ffa_ctx_list_rwlock);
+            }
+        }
+
+        goto out_continue;
+    }
+
+    /*
+     * guest_vers stores the version selected by the guest (lower minor may
+     * require reduced data structures). However, the value returned to the
+     * guest via FFA_VERSION is always FFA_MY_VERSION, the implementation
+     * version, as required by FF-A. The two values intentionally differ.
+     */
+
+    /*
+     * Return our highest implementation version on request different than our
+     * major and mark negotiated version as our implementation version.
+     */
+    if ( FFA_VERSION_MAJOR(in_vers) != FFA_MY_VERSION_MAJOR )
+    {
+        ctx->guest_vers = FFA_MY_VERSION;
+        goto out_handled;
     }
-    ffa_set_regs(regs, FFA_MY_VERSION, 0, 0, 0, 0, 0, 0, 0);
+
+    /*
+     * Use our minor version if a greater minor was requested or the requested
+     * minor if it is lower than ours was requested.
+     */
+    if ( FFA_VERSION_MINOR(in_vers) > FFA_MY_VERSION_MINOR )
+        ctx->guest_vers = FFA_MY_VERSION;
+    else
+        ctx->guest_vers = in_vers;
+
+out_handled:
+    spin_unlock(&ctx->guest_vers_lock);
+    if ( out_vers )
+        ffa_set_regs(regs, out_vers, 0, 0, 0, 0, 0, 0, 0);
+    else
+        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+    return true;
+
+out_continue:
+    spin_unlock(&ctx->guest_vers_lock);
+
+    return false;
 }
 
 static void handle_features(struct cpu_user_regs *regs)
@@ -274,10 +323,17 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     if ( !ctx )
         return false;
 
+    /* A version must be negotiated first */
+    if ( !ctx->guest_vers_negotiated )
+    {
+        if ( ffa_negotiate_version(regs) )
+            return true;
+    }
+
     switch ( fid )
     {
     case FFA_VERSION:
-        handle_version(regs);
+        ffa_set_regs(regs, FFA_MY_VERSION, 0, 0, 0, 0, 0, 0, 0);
         return true;
     case FFA_ID_GET:
         ffa_set_regs_success(regs, ffa_get_vm_id(d), 0);
@@ -371,6 +427,11 @@ static int ffa_domain_init(struct domain *d)
     d->arch.tee = ctx;
     ctx->teardown_d = d;
     INIT_LIST_HEAD(&ctx->shm_list);
+    spin_lock_init(&ctx->lock);
+    spin_lock_init(&ctx->guest_vers_lock);
+    ctx->guest_vers = 0;
+    ctx->guest_vers_negotiated = false;
+    INIT_LIST_HEAD(&ctx->ctx_list);
 
     ctx->ffa_id = ffa_get_vm_id(d);
     ctx->num_vcpus = d->max_vcpus;
@@ -452,7 +513,7 @@ static int ffa_domain_teardown(struct domain *d)
     if ( !ctx )
         return 0;
 
-    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && ctx->guest_vers )
+    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && ctx->guest_vers_negotiated )
     {
         dec_ffa_vm_count();
         write_lock(&ffa_ctx_list_rwlock);
diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index c20c5bec0f76..dec429cbf160 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -113,7 +113,7 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
     }
 
     dst_ctx = dst_d->arch.tee;
-    if ( !dst_ctx->guest_vers )
+    if ( !dst_ctx->guest_vers_negotiated )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
         goto out_unlock;
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index d7e6b6f5ef45..88b85c7c453a 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -354,12 +354,6 @@ struct ffa_ctx {
      * Global data accessed with lock locked.
      */
     spinlock_t lock;
-    /*
-     * FF-A version negotiated by the guest, only modifications to
-     * this field are done with the lock held as this is expected to
-     * be done once at init by a guest.
-     */
-    uint32_t guest_vers;
     /* Number of 4kB pages in each of rx/rx_pg and tx/tx_pg */
     unsigned int page_count;
     /* Number of allocated shared memory object */
@@ -367,6 +361,21 @@ struct ffa_ctx {
     /* Used shared memory objects, struct ffa_shm_mem */
     struct list_head shm_list;
 
+    /*
+     * FF-A version handling
+     * guest_vers and guest_vers_negotiated are only written with
+     * guest_vers_lock held. Reads do not take the lock, but ordering is
+     * guaranteed because the writer updates guest_vers first and then
+     * guest_vers_negotiated while holding the lock, ensuring any reader
+     * that observes guest_vers_negotiated == true also sees the final
+     * guest_vers value.
+     * The ffa_ctx is added to the ctx_list only when a version
+     * has been negotiated and locked.
+     */
+    spinlock_t guest_vers_lock;
+    uint32_t guest_vers;
+    bool guest_vers_negotiated;
+
     /*
      * Rx buffer, accessed with rx_lock locked.
      * rx_is_free is used to serialize access.
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 15:52:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 15:52:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174079.1499071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeIi-0004YG-FE; Thu, 27 Nov 2025 15:52:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174079.1499071; Thu, 27 Nov 2025 15:52:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeIi-0004Y5-CG; Thu, 27 Nov 2025 15:52:56 +0000
Received: by outflank-mailman (input) for mailman id 1174079;
 Thu, 27 Nov 2025 15:52:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+gQU=6D=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vOeIh-0003dB-1O
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 15:52:55 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 2299b985-cba9-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 16:52: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 1467B176A;
 Thu, 27 Nov 2025 07:52:46 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.89.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 22BE53F73B;
 Thu, 27 Nov 2025 07: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: 2299b985-cba9-11f0-9d18-b5c5bf9af7f9
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 03/10] xen/arm: ffa: harden RX/TX mapping
Date: Thu, 27 Nov 2025 16:51:34 +0100
Message-ID: <d4e6fa4807528918f40e4db76ac57db33efa5f67.1764254975.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764254975.git.bertrand.marquis@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Harden the RX/TX mapping paths and keep signed FF-A return codes
end-to-end.

Reject zero-length mappings and insist on page-aligned RX/TX buffer
addresses before touching the P2M. The unmap plumbing is switched to
use the same signed helpers so dispatcher error handling is consistent
across map and unmap operations.

This avoids partially mapped or silently truncated buffers and makes the
mediator behaviour match the FF-A error model more closely.

While there also introduce a domain_rxtx_init to properly initialize the
rxtx buffers spinlocks.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa.c         |  4 ++++
 xen/arch/arm/tee/ffa_private.h |  5 +++--
 xen/arch/arm/tee/ffa_rxtx.c    | 28 +++++++++++++++++++++-------
 3 files changed, 28 insertions(+), 9 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 3309ca875ec4..47f426e85864 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -446,6 +446,10 @@ static int ffa_domain_init(struct domain *d)
     if ( ret )
         return ret;
 
+    ret = ffa_rxtx_domain_init(d);
+    if ( ret )
+        return ret;
+
     return ffa_notif_domain_init(d);
 }
 
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 88b85c7c453a..4272afd37343 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -427,10 +427,11 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs);
 
 bool ffa_rxtx_init(void);
 void ffa_rxtx_destroy(void);
+int32_t ffa_rxtx_domain_init(struct domain *d);
 void ffa_rxtx_domain_destroy(struct domain *d);
-uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
+int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
 			     register_t rx_addr, uint32_t page_count);
-uint32_t ffa_handle_rxtx_unmap(void);
+int32_t ffa_handle_rxtx_unmap(void);
 int32_t ffa_rx_acquire(struct domain *d);
 int32_t ffa_rx_release(struct domain *d);
 
diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
index a40e5b32e3a5..cd467d1dba68 100644
--- a/xen/arch/arm/tee/ffa_rxtx.c
+++ b/xen/arch/arm/tee/ffa_rxtx.c
@@ -41,10 +41,10 @@ static int32_t ffa_rxtx_unmap(uint16_t id)
     return ffa_simple_call(FFA_RXTX_UNMAP, ((uint64_t)id) << 16, 0, 0, 0);
 }
 
-uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
+int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
 			     register_t rx_addr, uint32_t page_count)
 {
-    uint32_t ret = FFA_RET_INVALID_PARAMETERS;
+    int32_t ret = FFA_RET_INVALID_PARAMETERS;
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
     struct page_info *tx_pg;
@@ -66,13 +66,17 @@ uint32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
         rx_addr &= UINT32_MAX;
     }
 
-    if ( page_count > FFA_MAX_RXTX_PAGE_COUNT )
+    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);
         return FFA_RET_INVALID_PARAMETERS;
     }
 
+    if ( !IS_ALIGNED(tx_addr, FFA_PAGE_SIZE) ||
+         !IS_ALIGNED(rx_addr, FFA_PAGE_SIZE) )
+        return FFA_RET_INVALID_PARAMETERS;
+
     /* Already mapped */
     if ( ctx->rx )
         return FFA_RET_DENIED;
@@ -181,7 +185,7 @@ err_put_tx_pg:
     return ret;
 }
 
-static uint32_t  rxtx_unmap(struct domain *d)
+static int32_t rxtx_unmap(struct domain *d)
 {
     struct ffa_ctx *ctx = d->arch.tee;
 
@@ -190,7 +194,7 @@ static uint32_t  rxtx_unmap(struct domain *d)
 
     if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
     {
-        uint32_t ret;
+        int32_t ret;
 
         ret = ffa_rxtx_unmap(ffa_get_vm_id(d));
         if ( ret != FFA_RET_OK )
@@ -211,7 +215,7 @@ static uint32_t  rxtx_unmap(struct domain *d)
     return FFA_RET_OK;
 }
 
-uint32_t ffa_handle_rxtx_unmap(void)
+int32_t ffa_handle_rxtx_unmap(void)
 {
     return rxtx_unmap(current->domain);
 }
@@ -272,6 +276,16 @@ out:
     return ret;
 }
 
+int32_t ffa_rxtx_domain_init(struct domain *d)
+{
+    struct ffa_ctx *ctx = d->arch.tee;
+
+    spin_lock_init(&ctx->rx_lock);
+    spin_lock_init(&ctx->tx_lock);
+
+    return 0;
+}
+
 void ffa_rxtx_domain_destroy(struct domain *d)
 {
     rxtx_unmap(d);
@@ -298,7 +312,7 @@ void ffa_rxtx_destroy(void)
 
 bool ffa_rxtx_init(void)
 {
-    int e;
+    int32_t e;
 
     /* Firmware not there or not supporting */
     if ( !ffa_fw_supports_fid(FFA_RXTX_MAP_64) )
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 15:52:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 15:52:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174080.1499082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeIk-0004pp-Nm; Thu, 27 Nov 2025 15:52:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174080.1499082; Thu, 27 Nov 2025 15: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 1vOeIk-0004pi-KE; Thu, 27 Nov 2025 15:52:58 +0000
Received: by outflank-mailman (input) for mailman id 1174080;
 Thu, 27 Nov 2025 15:52: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=+gQU=6D=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vOeIk-0004I5-4V
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 15:52:58 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 23a68b88-cba9-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 16:52:55 +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 CF361176C;
 Thu, 27 Nov 2025 07:52:47 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.89.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id DA95F3F73B;
 Thu, 27 Nov 2025 07: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: 23a68b88-cba9-11f0-980a-7dc792cee155
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 04/10] xen/arm: ffa: rework SPMC RX/TX buffer management
Date: Thu, 27 Nov 2025 16:51:35 +0100
Message-ID: <72d6592157a9ec15d4b5de19751186e0ca1680ba.1764254975.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764254975.git.bertrand.marquis@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Rework how Xen accesses the RX/TX buffers shared with the SPMC so that
ownership and locking are handled centrally.

Move the SPMC RX/TX buffer bases into ffa_rxtx.c as ffa_spmc_rx/ffa_spmc_tx,
protect them with dedicated ffa_spmc_{rx,tx}_lock spinlocks and expose
ffa_rxtx_spmc_{rx,tx}_{acquire,release}() helpers instead of the global
ffa_rx/ffa_tx pointers and ffa_{rx,tx}_buffer_lock.

The RX helpers now always issue FFA_RX_RELEASE when we are done
consuming data from the SPMC, so partition-info enumeration and shared
memory paths release the RX buffer on all exit paths. The RX/TX mapping
code is updated to use the descriptor offsets (rx_region_offs and
tx_region_offs) rather than hard-coded structure layout, and to use the
TX acquire/release helpers instead of touching the TX buffer directly.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa.c          |  22 +-----
 xen/arch/arm/tee/ffa_partinfo.c |  40 +++++-----
 xen/arch/arm/tee/ffa_private.h  |  18 ++---
 xen/arch/arm/tee/ffa_rxtx.c     | 132 +++++++++++++++++++++++++-------
 xen/arch/arm/tee/ffa_shm.c      |  26 ++++---
 5 files changed, 153 insertions(+), 85 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 47f426e85864..4c1b9a4c3b48 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -48,8 +48,8 @@
  *     notification for secure partitions
  *   - doesn't support notifications for Xen itself
  *
- * There are some large locked sections with ffa_tx_buffer_lock and
- * ffa_rx_buffer_lock. Especially the ffa_tx_buffer_lock spinlock used
+ * There are some large locked sections with ffa_spmc_tx_lock and
+ * ffa_spmc_rx_lock. Especially the ffa_spmc_tx_lock spinlock used
  * around share_shm() is a very large locked section which can let one VM
  * affect another VM.
  */
@@ -108,20 +108,6 @@ static const struct ffa_fw_abi ffa_fw_abi_needed[] = {
     FW_ABI(FFA_RUN),
 };
 
-/*
- * Our rx/tx buffers shared with the SPMC. FFA_RXTX_PAGE_COUNT is the
- * number of pages used in each of these buffers.
- *
- * The RX buffer is protected from concurrent usage with ffa_rx_buffer_lock.
- * Note that the SPMC is also tracking the ownership of our RX buffer so
- * for calls which uses our RX buffer to deliver a result we must call
- * ffa_rx_release() to let the SPMC know that we're done with the buffer.
- */
-void *ffa_rx __read_mostly;
-void *ffa_tx __read_mostly;
-DEFINE_SPINLOCK(ffa_rx_buffer_lock);
-DEFINE_SPINLOCK(ffa_tx_buffer_lock);
-
 LIST_HEAD(ffa_ctx_head);
 /* RW Lock to protect addition/removal and reading in ffa_ctx_head */
 DEFINE_RWLOCK(ffa_ctx_list_rwlock);
@@ -612,7 +598,7 @@ static bool ffa_probe_fw(void)
                    ffa_fw_abi_needed[i].name);
     }
 
-    if ( !ffa_rxtx_init() )
+    if ( !ffa_rxtx_spmc_init() )
     {
         printk(XENLOG_ERR "ffa: Error during RXTX buffer init\n");
         goto err_no_fw;
@@ -626,7 +612,7 @@ static bool ffa_probe_fw(void)
     return true;
 
 err_rxtx_destroy:
-    ffa_rxtx_destroy();
+    ffa_rxtx_spmc_destroy();
 err_no_fw:
     ffa_fw_version = 0;
     bitmap_zero(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index fa56b1587e3b..766b75dffb8c 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -77,28 +77,24 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
 {
     int32_t ret;
     uint32_t src_size, real_sp_count;
-    void *src_buf = ffa_rx;
+    void *src_buf;
     uint32_t count = 0;
 
-    /* Do we have a RX buffer with the SPMC */
-    if ( !ffa_rx )
-        return FFA_RET_DENIED;
-
     /* We need to use the RX buffer to receive the list */
-    spin_lock(&ffa_rx_buffer_lock);
+    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;
 
-    /* We now own the RX buffer */
-
     /* Validate the src_size we got */
     if ( src_size < sizeof(struct ffa_partition_info_1_0) ||
          src_size >= FFA_PAGE_SIZE )
     {
         ret = FFA_RET_NOT_SUPPORTED;
-        goto out_release;
+        goto out;
     }
 
     /*
@@ -114,7 +110,7 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
     if ( real_sp_count > (FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE) / src_size )
     {
         ret = FFA_RET_NOT_SUPPORTED;
-        goto out_release;
+        goto out;
     }
 
     for ( uint32_t sp_num = 0; sp_num < real_sp_count; sp_num++ )
@@ -127,7 +123,7 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
             if ( dst_buf > (end_buf - dst_size) )
             {
                 ret = FFA_RET_NO_MEMORY;
-                goto out_release;
+                goto out;
             }
 
             memcpy(dst_buf, src_buf, MIN(src_size, dst_size));
@@ -143,10 +139,8 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
 
     *sp_count = count;
 
-out_release:
-    ffa_hyp_rx_release();
 out:
-    spin_unlock(&ffa_rx_buffer_lock);
+    ffa_rxtx_spmc_rx_release();
     return ret;
 }
 
@@ -378,7 +372,7 @@ static void uninit_subscribers(void)
         XFREE(subscr_vm_destroyed);
 }
 
-static bool init_subscribers(uint16_t count, uint32_t fpi_size)
+static bool init_subscribers(void *buf, uint16_t count, uint32_t fpi_size)
 {
     uint16_t n;
     uint16_t c_pos;
@@ -395,7 +389,7 @@ static bool init_subscribers(uint16_t count, uint32_t fpi_size)
     subscr_vm_destroyed_count = 0;
     for ( n = 0; n < count; n++ )
     {
-        fpi = ffa_rx + n * fpi_size;
+        fpi = buf + n * fpi_size;
 
         /*
          * We need to have secure partitions using bit 15 set convention for
@@ -433,7 +427,7 @@ static bool init_subscribers(uint16_t count, uint32_t fpi_size)
 
     for ( c_pos = 0, d_pos = 0, n = 0; n < count; n++ )
     {
-        fpi = ffa_rx + n * fpi_size;
+        fpi = buf + n * fpi_size;
 
         if ( FFA_ID_IS_SECURE(fpi->id) )
         {
@@ -455,10 +449,14 @@ bool ffa_partinfo_init(void)
     uint32_t fpi_size;
     uint32_t count;
     int e;
+    void *spmc_rx;
 
     if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) ||
-         !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32) ||
-         !ffa_rx || !ffa_tx )
+         !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32))
+        return false;
+
+    spmc_rx = ffa_rxtx_spmc_rx_acquire();
+    if (!spmc_rx)
         return false;
 
     e = ffa_partition_info_get(NULL, 0, &count, &fpi_size);
@@ -475,10 +473,10 @@ bool ffa_partinfo_init(void)
         goto out;
     }
 
-    ret = init_subscribers(count, fpi_size);
+    ret = init_subscribers(spmc_rx, count, fpi_size);
 
 out:
-    ffa_hyp_rx_release();
+    ffa_rxtx_spmc_rx_release();
     return ret;
 }
 
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 4272afd37343..cd35c44b8986 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -404,10 +404,6 @@ struct ffa_ctx {
     unsigned long *vm_destroy_bitmap;
 };
 
-extern void *ffa_rx;
-extern void *ffa_tx;
-extern spinlock_t ffa_rx_buffer_lock;
-extern spinlock_t ffa_tx_buffer_lock;
 extern DECLARE_BITMAP(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
 
 extern struct list_head ffa_ctx_head;
@@ -425,8 +421,13 @@ int 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);
 
-bool ffa_rxtx_init(void);
-void ffa_rxtx_destroy(void);
+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);
+void *ffa_rxtx_spmc_tx_acquire(void);
+void ffa_rxtx_spmc_tx_release(void);
+
 int32_t ffa_rxtx_domain_init(struct domain *d);
 void ffa_rxtx_domain_destroy(struct domain *d);
 int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
@@ -556,11 +557,6 @@ static inline int32_t ffa_simple_call(uint32_t fid, register_t a1,
     return ffa_get_ret_code(&resp);
 }
 
-static inline int32_t ffa_hyp_rx_release(void)
-{
-    return ffa_simple_call(FFA_RX_RELEASE, 0, 0, 0, 0);
-}
-
 static inline bool ffa_fw_supports_fid(uint32_t fid)
 {
     BUILD_BUG_ON(FFA_FNUM_MIN_VALUE > FFA_FNUM_MAX_VALUE);
diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
index cd467d1dba68..07b01430d139 100644
--- a/xen/arch/arm/tee/ffa_rxtx.c
+++ b/xen/arch/arm/tee/ffa_rxtx.c
@@ -30,6 +30,20 @@ struct ffa_endpoint_rxtx_descriptor_1_1 {
     uint32_t tx_region_offs;
 };
 
+/*
+ * Our rx/tx buffers shared with the SPMC. FFA_RXTX_PAGE_COUNT is the
+ * number of pages used in each of these buffers.
+ * Each buffer has its own lock to protect from concurrent usage.
+ *
+ * Note that the SPMC is also tracking the ownership of our RX buffer so
+ * for calls which uses our RX buffer to deliver a result we must do an
+ * FFA_RX_RELEASE to let the SPMC know that we're done with the buffer.
+ */
+static void *ffa_spmc_rx __read_mostly;
+static void *ffa_spmc_tx __read_mostly;
+static DEFINE_SPINLOCK(ffa_spmc_rx_lock);
+static DEFINE_SPINLOCK(ffa_spmc_tx_lock);
+
 static int32_t ffa_rxtx_map(paddr_t tx_addr, paddr_t rx_addr,
                             uint32_t page_count)
 {
@@ -120,8 +134,9 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
                      sizeof(struct ffa_address_range) * 2 >
                      FFA_MAX_RXTX_PAGE_COUNT * FFA_PAGE_SIZE);
 
-        spin_lock(&ffa_tx_buffer_lock);
-        rxtx_desc = ffa_tx;
+        rxtx_desc = ffa_rxtx_spmc_tx_acquire();
+        if ( !rxtx_desc )
+            goto err_unmap_rx;
 
         /*
          * We have only one page for each so we pack everything:
@@ -138,7 +153,7 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
                                              address_range_array[1]);
 
         /* rx buffer */
-        mem_reg = ffa_tx + sizeof(*rxtx_desc);
+        mem_reg = (void *)rxtx_desc + rxtx_desc->rx_region_offs;
         mem_reg->total_page_count = 1;
         mem_reg->address_range_count = 1;
         mem_reg->reserved = 0;
@@ -148,7 +163,7 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
         mem_reg->address_range_array[0].reserved = 0;
 
         /* tx buffer */
-        mem_reg = ffa_tx + rxtx_desc->tx_region_offs;
+        mem_reg = (void *)rxtx_desc + rxtx_desc->tx_region_offs;
         mem_reg->total_page_count = 1;
         mem_reg->address_range_count = 1;
         mem_reg->reserved = 0;
@@ -159,7 +174,7 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
 
         ret = ffa_rxtx_map(0, 0, 0);
 
-        spin_unlock(&ffa_tx_buffer_lock);
+        ffa_rxtx_spmc_tx_release();
 
         if ( ret != FFA_RET_OK )
             goto err_unmap_rx;
@@ -291,49 +306,114 @@ void ffa_rxtx_domain_destroy(struct domain *d)
     rxtx_unmap(d);
 }
 
-void ffa_rxtx_destroy(void)
+void *ffa_rxtx_spmc_rx_acquire(void)
+{
+    ASSERT(!spin_is_locked(&ffa_spmc_rx_lock));
+
+    spin_lock(&ffa_spmc_rx_lock);
+
+    if ( ffa_spmc_rx )
+        return ffa_spmc_rx;
+
+    spin_unlock(&ffa_spmc_rx_lock);
+    return NULL;
+}
+
+void ffa_rxtx_spmc_rx_release(void)
+{
+    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);
+
+    spin_unlock(&ffa_spmc_rx_lock);
+}
+
+void *ffa_rxtx_spmc_tx_acquire(void)
 {
-    bool need_unmap = ffa_tx && ffa_rx;
+    ASSERT(!spin_is_locked(&ffa_spmc_tx_lock));
 
-    if ( ffa_tx )
+    spin_lock(&ffa_spmc_tx_lock);
+
+    if ( ffa_spmc_tx )
+        return ffa_spmc_tx;
+
+    spin_unlock(&ffa_spmc_tx_lock);
+    return NULL;
+}
+
+void ffa_rxtx_spmc_tx_release(void)
+{
+    ASSERT(spin_is_locked(&ffa_spmc_tx_lock));
+
+    spin_unlock(&ffa_spmc_tx_lock);
+}
+
+void ffa_rxtx_spmc_destroy(void)
+{
+    bool need_unmap;
+
+    spin_lock(&ffa_spmc_rx_lock);
+    spin_lock(&ffa_spmc_tx_lock);
+    need_unmap = ffa_spmc_tx && ffa_spmc_rx;
+
+    if ( ffa_spmc_tx )
     {
-        free_xenheap_pages(ffa_tx, 0);
-        ffa_tx = NULL;
+        free_xenheap_pages(ffa_spmc_tx, 0);
+        ffa_spmc_tx = NULL;
     }
-    if ( ffa_rx )
+    if ( ffa_spmc_rx )
     {
-        free_xenheap_pages(ffa_rx, 0);
-        ffa_rx = NULL;
+        free_xenheap_pages(ffa_spmc_rx, 0);
+        ffa_spmc_rx = NULL;
     }
 
     if ( need_unmap )
         ffa_rxtx_unmap(0);
+
+    spin_unlock(&ffa_spmc_tx_lock);
+    spin_unlock(&ffa_spmc_rx_lock);
 }
 
-bool ffa_rxtx_init(void)
+bool ffa_rxtx_spmc_init(void)
 {
     int32_t e;
+    bool ret = false;
 
     /* Firmware not there or not supporting */
     if ( !ffa_fw_supports_fid(FFA_RXTX_MAP_64) )
         return false;
 
-    ffa_rx = alloc_xenheap_pages(get_order_from_pages(FFA_RXTX_PAGE_COUNT), 0);
-    if ( !ffa_rx )
-        return false;
+    spin_lock(&ffa_spmc_rx_lock);
+    spin_lock(&ffa_spmc_tx_lock);
+
+    ffa_spmc_rx = alloc_xenheap_pages(
+                            get_order_from_pages(FFA_RXTX_PAGE_COUNT), 0);
+    if ( !ffa_spmc_rx )
+        goto exit;
 
-    ffa_tx = alloc_xenheap_pages(get_order_from_pages(FFA_RXTX_PAGE_COUNT), 0);
-    if ( !ffa_tx )
-        goto err;
+    ffa_spmc_tx = alloc_xenheap_pages(
+                            get_order_from_pages(FFA_RXTX_PAGE_COUNT), 0);
+    if ( !ffa_spmc_tx )
+        goto exit;
 
-    e = ffa_rxtx_map(__pa(ffa_tx), __pa(ffa_rx), FFA_RXTX_PAGE_COUNT);
+    e = ffa_rxtx_map(__pa(ffa_spmc_tx), __pa(ffa_spmc_rx),
+                     FFA_RXTX_PAGE_COUNT);
     if ( e )
-        goto err;
+        goto exit;
 
-    return true;
+    ret = true;
 
-err:
-    ffa_rxtx_destroy();
+exit:
+    spin_unlock(&ffa_spmc_tx_lock);
+    spin_unlock(&ffa_spmc_rx_lock);
 
-    return false;
+    if ( !ret )
+        ffa_rxtx_spmc_destroy();
+
+    return ret;
 }
diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index d628c1b70609..b9022797c3bf 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -286,9 +286,8 @@ static void init_range(struct ffa_address_range *addr_range,
 }
 
 /*
- * This function uses the ffa_tx buffer to transmit the memory transaction
- * descriptor. The function depends ffa_tx_buffer_lock to be used to guard
- * the buffer from concurrent use.
+ * This function uses the ffa_spmc tx buffer to transmit the memory transaction
+ * descriptor.
  */
 static int share_shm(struct ffa_shm_mem *shm)
 {
@@ -298,17 +297,22 @@ 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;
-    void *buf = ffa_tx;
     uint32_t frag_len;
     uint32_t tot_len;
     paddr_t last_pa;
     unsigned int n;
     paddr_t pa;
+    int32_t ret;
+    void *buf;
 
-    ASSERT(spin_is_locked(&ffa_tx_buffer_lock));
     ASSERT(shm->page_count);
 
+    buf = ffa_rxtx_spmc_tx_acquire();
+    if ( !buf )
+        return FFA_RET_NOT_SUPPORTED;
+
     descr = buf;
+
     memset(descr, 0, sizeof(*descr));
     descr->sender_id = shm->sender_id;
     descr->handle = shm->handle;
@@ -340,7 +344,10 @@ static int share_shm(struct ffa_shm_mem *shm)
     tot_len = ADDR_RANGE_OFFSET(descr->mem_access_count, region_count,
                                 region_descr->address_range_count);
     if ( tot_len > max_frag_len )
+    {
+        ffa_rxtx_spmc_tx_release();
         return FFA_RET_NOT_SUPPORTED;
+    }
 
     addr_range = region_descr->address_range_array;
     frag_len = ADDR_RANGE_OFFSET(descr->mem_access_count, region_count, 1);
@@ -360,7 +367,11 @@ static int share_shm(struct ffa_shm_mem *shm)
         init_range(addr_range, pa);
     }
 
-    return ffa_mem_share(tot_len, frag_len, 0, 0, &shm->handle);
+    ret = ffa_mem_share(tot_len, frag_len, 0, 0, &shm->handle);
+
+    ffa_rxtx_spmc_tx_release();
+
+    return ret;
 }
 
 static int read_mem_transaction(uint32_t ffa_vers, const void *buf, size_t blen,
@@ -578,10 +589,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     if ( ret )
         goto out;
 
-    /* Note that share_shm() uses our tx buffer */
-    spin_lock(&ffa_tx_buffer_lock);
     ret = share_shm(shm);
-    spin_unlock(&ffa_tx_buffer_lock);
     if ( ret )
         goto out;
 
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 15:53:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 15:53:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174081.1499092 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeIm-00057K-VZ; Thu, 27 Nov 2025 15:53:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174081.1499092; Thu, 27 Nov 2025 15:53:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeIm-000577-RN; Thu, 27 Nov 2025 15:53:00 +0000
Received: by outflank-mailman (input) for mailman id 1174081;
 Thu, 27 Nov 2025 15:52: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=+gQU=6D=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vOeIl-0004I5-Lf
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 15:52:59 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 24ac3a9f-cba9-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 16:52: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 8C12719F6;
 Thu, 27 Nov 2025 07:52:49 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.89.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A1BA73F73B;
 Thu, 27 Nov 2025 07:52: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: 24ac3a9f-cba9-11f0-980a-7dc792cee155
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 05/10] xen/arm: ffa: use signed 32-bit status codes
Date: Thu, 27 Nov 2025 16:51:36 +0100
Message-ID: <6e31745ff6473189d79a53cec2c29fdd41a22251.1764254975.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764254975.git.bertrand.marquis@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The FF-A spec defines return status values as signed 32-bit integers.
Align the Xen mediator with this requirement by:

- switching the FF-A helpers (ffa_handle_mem_reclaim(), partition info
  init, notification ops, dispatcher glue, etc.) to int32_t return types
  so callers cannot silently truncate negative values
- masking SMCCC responses/exits in ffa_get_version(),
  ffa_get_ret_code() and ffa_set_regs_error() to 32 bits before storing
  them in guest registers
- updating notifier, shared-memory reclaim, partition-info and
  dispatcher call sites to use the new prototypes so the entire FF-A
  path propagates spec-compliant 32-bit signed error codes

While there, tidy up the FF-A notification helpers by using GENMASK(15, 0)
for endpoint extraction and fix the secure-endpoint check in
ffa_handle_notification_set() to apply the mask to the endpoint ID before
calling FFA_ID_IS_SECURE(), instead of testing the wrong halfword of
src_dst.

Fixes: 911b305e7bdab ("xen/arm: ffa: Enable VM to VM without firmware")
Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa.c          | 12 +++++++-----
 xen/arch/arm/tee/ffa_notif.c    | 14 +++++++-------
 xen/arch/arm/tee/ffa_partinfo.c |  4 ++--
 xen/arch/arm/tee/ffa_private.h  | 21 +++++++++++----------
 xen/arch/arm/tee/ffa_shm.c      |  4 ++--
 5 files changed, 29 insertions(+), 26 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 4c1b9a4c3b48..7392bb6c3db9 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -129,12 +129,14 @@ static bool ffa_get_version(uint32_t *vers)
         .a1 = FFA_MY_VERSION,
     };
     struct arm_smccc_1_2_regs resp;
+    int32_t ret;
 
     arm_smccc_1_2_smc(&arg, &resp);
-    if ( resp.a0 == FFA_RET_NOT_SUPPORTED )
+    ret = resp.a0 & GENMASK_ULL(31, 0);
+    if ( ret == FFA_RET_NOT_SUPPORTED )
         return false;
 
-    *vers = resp.a0;
+    *vers = resp.a0 & GENMASK_ULL(31, 0);
 
     return true;
 }
@@ -304,7 +306,7 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     uint32_t fid = get_user_reg(regs, 0);
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
-    int e;
+    int32_t e;
 
     if ( !ctx )
         return false;
@@ -376,8 +378,8 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
 
     default:
         gprintk(XENLOG_ERR, "ffa: unhandled fid 0x%x\n", fid);
-        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
-        return true;
+        e = FFA_RET_NOT_SUPPORTED;
+        break;
     }
 
     if ( e )
diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
index 86bef6b3b2ab..37b05747cd21 100644
--- a/xen/arch/arm/tee/ffa_notif.c
+++ b/xen/arch/arm/tee/ffa_notif.c
@@ -19,7 +19,7 @@
 static bool __ro_after_init fw_notif_enabled;
 static unsigned int __ro_after_init notif_sri_irq;
 
-int ffa_handle_notification_bind(struct cpu_user_regs *regs)
+int32_t ffa_handle_notification_bind(struct cpu_user_regs *regs)
 {
     struct domain *d = current->domain;
     uint32_t src_dst = get_user_reg(regs, 1);
@@ -27,7 +27,7 @@ int ffa_handle_notification_bind(struct cpu_user_regs *regs)
     uint32_t bitmap_lo = get_user_reg(regs, 3);
     uint32_t bitmap_hi = get_user_reg(regs, 4);
 
-    if ( (src_dst & 0xFFFFU) != ffa_get_vm_id(d) )
+    if ( (src_dst & GENMASK(15, 0)) != ffa_get_vm_id(d) )
         return FFA_RET_INVALID_PARAMETERS;
 
     if ( flags )    /* Only global notifications are supported */
@@ -40,14 +40,14 @@ int ffa_handle_notification_bind(struct cpu_user_regs *regs)
     return FFA_RET_NOT_SUPPORTED;
 }
 
-int ffa_handle_notification_unbind(struct cpu_user_regs *regs)
+int32_t ffa_handle_notification_unbind(struct cpu_user_regs *regs)
 {
     struct domain *d = current->domain;
     uint32_t src_dst = get_user_reg(regs, 1);
     uint32_t bitmap_lo = get_user_reg(regs, 3);
     uint32_t bitmap_hi = get_user_reg(regs, 4);
 
-    if ( (src_dst & 0xFFFFU) != ffa_get_vm_id(d) )
+    if ( (src_dst & GENMASK(15, 0)) != ffa_get_vm_id(d) )
         return FFA_RET_INVALID_PARAMETERS;
 
     if ( FFA_ID_IS_SECURE(src_dst >> 16) && fw_notif_enabled )
@@ -106,7 +106,7 @@ void ffa_handle_notification_get(struct cpu_user_regs *regs)
         return;
     }
 
-    if ( (recv & 0xFFFFU) != ffa_get_vm_id(d) )
+    if ( (recv & GENMASK(15, 0)) != ffa_get_vm_id(d) )
     {
         ffa_set_regs_error(regs, FFA_RET_INVALID_PARAMETERS);
         return;
@@ -162,7 +162,7 @@ void ffa_handle_notification_get(struct cpu_user_regs *regs)
     ffa_set_regs(regs, FFA_SUCCESS_32, 0, w2, w3, w4, w5, w6, w7);
 }
 
-int ffa_handle_notification_set(struct cpu_user_regs *regs)
+int32_t ffa_handle_notification_set(struct cpu_user_regs *regs)
 {
     struct domain *d = current->domain;
     uint32_t src_dst = get_user_reg(regs, 1);
@@ -173,7 +173,7 @@ int ffa_handle_notification_set(struct cpu_user_regs *regs)
     if ( (src_dst >> 16) != ffa_get_vm_id(d) )
         return FFA_RET_INVALID_PARAMETERS;
 
-    if ( FFA_ID_IS_SECURE(src_dst >> 16) && fw_notif_enabled )
+    if ( FFA_ID_IS_SECURE(src_dst & GENMASK(15, 0)) && fw_notif_enabled )
         return ffa_simple_call(FFA_NOTIFICATION_SET, src_dst, flags, bitmap_lo,
                                bitmap_hi);
 
diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index 766b75dffb8c..3f4a779f4146 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -448,7 +448,7 @@ bool ffa_partinfo_init(void)
     bool ret = false;
     uint32_t fpi_size;
     uint32_t count;
-    int e;
+    int32_t e;
     void *spmc_rx;
 
     if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) ||
@@ -515,7 +515,7 @@ static void vm_destroy_bitmap_init(struct ffa_ctx *ctx,
     }
 }
 
-int ffa_partinfo_domain_init(struct domain *d)
+int32_t ffa_partinfo_domain_init(struct domain *d)
 {
     unsigned int count = BITS_TO_LONGS(subscr_vm_destroyed_count);
     struct ffa_ctx *ctx = d->arch.tee;
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index cd35c44b8986..9cae238f972c 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -31,9 +31,9 @@
 
 /* FFA_VERSION helpers */
 #define FFA_VERSION_MAJOR_SHIFT         16U
-#define FFA_VERSION_MAJOR_MASK          0x7FFFU
+#define FFA_VERSION_MAJOR_MASK          GENMASK(14, 0)
 #define FFA_VERSION_MINOR_SHIFT         0U
-#define FFA_VERSION_MINOR_MASK          0xFFFFU
+#define FFA_VERSION_MINOR_MASK          GENMASK(15, 0)
 #define MAKE_FFA_VERSION(major, minor)  \
         ((((major) & FFA_VERSION_MAJOR_MASK) << FFA_VERSION_MAJOR_SHIFT) | \
          ((minor) & FFA_VERSION_MINOR_MASK))
@@ -414,10 +414,10 @@ extern atomic_t ffa_vm_count;
 
 bool ffa_shm_domain_destroy(struct domain *d);
 void ffa_handle_mem_share(struct cpu_user_regs *regs);
-int ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags);
+int32_t ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags);
 
 bool ffa_partinfo_init(void);
-int ffa_partinfo_domain_init(struct domain *d);
+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);
 
@@ -441,11 +441,11 @@ void ffa_notif_init_interrupt(void);
 int ffa_notif_domain_init(struct domain *d);
 void ffa_notif_domain_destroy(struct domain *d);
 
-int ffa_handle_notification_bind(struct cpu_user_regs *regs);
-int ffa_handle_notification_unbind(struct cpu_user_regs *regs);
+int32_t ffa_handle_notification_bind(struct cpu_user_regs *regs);
+int32_t ffa_handle_notification_unbind(struct cpu_user_regs *regs);
 void ffa_handle_notification_info_get(struct cpu_user_regs *regs);
 void ffa_handle_notification_get(struct cpu_user_regs *regs);
-int ffa_handle_notification_set(struct cpu_user_regs *regs);
+int32_t ffa_handle_notification_set(struct cpu_user_regs *regs);
 
 #ifdef CONFIG_FFA_VM_TO_VM
 void ffa_raise_rx_buffer_full(struct domain *d);
@@ -511,9 +511,10 @@ static inline void ffa_set_regs(struct cpu_user_regs *regs, register_t v0,
 }
 
 static inline void ffa_set_regs_error(struct cpu_user_regs *regs,
-                                      uint32_t error_code)
+                                      int32_t error_code)
 {
-    ffa_set_regs(regs, FFA_ERROR, 0, error_code, 0, 0, 0, 0, 0);
+    ffa_set_regs(regs, FFA_ERROR, 0, error_code & GENMASK_ULL(31, 0), 0, 0, 0,
+                 0, 0);
 }
 
 static inline void ffa_set_regs_success(struct cpu_user_regs *regs,
@@ -528,7 +529,7 @@ static inline int32_t ffa_get_ret_code(const struct arm_smccc_1_2_regs *resp)
     {
     case FFA_ERROR:
         if ( resp->a2 )
-            return resp->a2;
+            return resp->a2 & GENMASK_ULL(31, 0);
         else
             return FFA_RET_NOT_SUPPORTED;
     case FFA_SUCCESS_32:
diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index b9022797c3bf..9db72269d1ea 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -624,14 +624,14 @@ static struct ffa_shm_mem *find_shm_mem(struct ffa_ctx *ctx, uint64_t handle)
     return NULL;
 }
 
-int ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags)
+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;
-    int ret;
+    int32_t ret;
 
     if ( !ffa_fw_supports_fid(FFA_MEM_RECLAIM) )
         return FFA_RET_NOT_SUPPORTED;
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 15:53:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 15:53:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174083.1499101 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeIo-0005Nu-BS; Thu, 27 Nov 2025 15:53:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174083.1499101; Thu, 27 Nov 2025 15:53:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeIo-0005Ng-7j; Thu, 27 Nov 2025 15:53:02 +0000
Received: by outflank-mailman (input) for mailman id 1174083;
 Thu, 27 Nov 2025 15:53: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=+gQU=6D=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vOeIm-0003dB-Kf
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 15:53:00 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 25a56179-cba9-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 16:52: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 58BB1176A;
 Thu, 27 Nov 2025 07:52:51 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.89.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 652973F73B;
 Thu, 27 Nov 2025 07: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: 25a56179-cba9-11f0-9d18-b5c5bf9af7f9
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 06/10] xen/arm: ffa: add UUID helpers for partition info
Date: Thu, 27 Nov 2025 16:51:37 +0100
Message-ID: <c8fe1053ae135387da8f75f96054f3a6eae3b00b.1764254975.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764254975.git.bertrand.marquis@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce struct ffa_uuid together with nil/equality/set helpers, and
use it end-to-end in the partition-info plumbing.

The SP and VM enumeration paths now build UUIDs from the guest
registers, call a new ffa_copy_info() helper and ensure non-nil UUID
queries only return matching SP entries, relying on firmware UUID
filtering. VM entries are skipped because we do not track per-VM UUIDs.

Count requests and subscriber initialisation are updated accordingly so
firmware is always called with an explicit UUID. This keeps count and
listing requests aligned with the FF-A v1.1 rules while preserving the
Linux compatibility workaround for v1.2 requesters.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa_partinfo.c | 206 ++++++++++++++++++++------------
 xen/arch/arm/tee/ffa_private.h  |  21 ++++
 2 files changed, 152 insertions(+), 75 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index 3f4a779f4146..4adbe2736c94 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -33,7 +33,7 @@ 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;
 
-static int32_t ffa_partition_info_get(uint32_t *uuid, uint32_t flags,
+static int32_t ffa_partition_info_get(struct ffa_uuid uuid, uint32_t flags,
                                       uint32_t *count, uint32_t *fpi_size)
 {
     struct arm_smccc_1_2_regs arg = {
@@ -41,15 +41,12 @@ static int32_t ffa_partition_info_get(uint32_t *uuid, uint32_t flags,
         .a5 = flags,
     };
     struct arm_smccc_1_2_regs resp;
-    uint32_t ret;
+    int32_t ret;
 
-    if ( uuid )
-    {
-        arg.a1 = uuid[0];
-        arg.a2 = uuid[1];
-        arg.a3 = uuid[2];
-        arg.a4 = uuid[3];
-    }
+    arg.a1 = uuid.val[0] & 0xFFFFFFFFU;
+    arg.a2 = (uuid.val[0] >> 32) & 0xFFFFFFFFU;
+    arg.a3 = uuid.val[1] & 0xFFFFFFFFU;
+    arg.a4 = (uuid.val[1] >> 32) & 0xFFFFFFFFU;
 
     arm_smccc_1_2_smc(&arg, &resp);
 
@@ -63,7 +60,26 @@ static int32_t ffa_partition_info_get(uint32_t *uuid, uint32_t flags,
     return ret;
 }
 
-static int32_t ffa_get_sp_count(uint32_t *uuid, uint32_t *sp_count)
+static int32_t ffa_copy_info(void **dst, void *dst_end, const void *src,
+                             uint32_t dst_size, uint32_t src_size)
+{
+    uint8_t *pos = *dst;
+    uint8_t *end = dst_end;
+
+    if ( pos > end - dst_size )
+        return FFA_RET_NO_MEMORY;
+
+    memcpy(pos, src, MIN(dst_size, src_size));
+
+    if ( dst_size > src_size )
+        memset(pos + src_size, 0, dst_size - src_size);
+
+    *dst = pos + dst_size;
+
+    return FFA_RET_OK;
+}
+
+static int32_t ffa_get_sp_count(struct ffa_uuid uuid, uint32_t *sp_count)
 {
     uint32_t src_size;
 
@@ -71,8 +87,8 @@ static int32_t ffa_get_sp_count(uint32_t *uuid, uint32_t *sp_count)
                                   sp_count, &src_size);
 }
 
-static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
-                                   void *dst_buf, void *end_buf,
+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;
@@ -120,17 +136,18 @@ static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
         /* filter out SP not following bit 15 convention if any */
         if ( FFA_ID_IS_SECURE(fpi->id) )
         {
-            if ( dst_buf > (end_buf - dst_size) )
-            {
-                ret = FFA_RET_NO_MEMORY;
-                goto out;
-            }
+            /*
+             * 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.
+             */
 
-            memcpy(dst_buf, src_buf, MIN(src_size, dst_size));
-            if ( dst_size > src_size )
-                memset(dst_buf + src_size, 0, dst_size - src_size);
+            ret = ffa_copy_info(dst_buf, end_buf, src_buf, dst_size, src_size);
+            if ( ret )
+                goto out;
 
-            dst_buf += dst_size;
             count++;
         }
 
@@ -144,69 +161,89 @@ out:
     return ret;
 }
 
-static int32_t ffa_get_vm_partinfo(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 *vm_count,
+                                   void **dst_buf, void *end_buf,
+                                   uint32_t dst_size)
 {
     struct ffa_ctx *curr_ctx = current->domain->arch.tee;
     struct ffa_ctx *dest_ctx;
     uint32_t count = 0;
     int32_t ret = FFA_RET_OK;
+    /*
+     * We do not have UUID info for VMs so use the 1.0 structure so that we set
+     * UUIDs to zero using memset
+     */
+    struct ffa_partition_info_1_0 info;
 
     /*
-     * There could potentially be a lot of VMs in the system and we could
-     * hold the CPU for long here.
-     * Right now there is no solution in FF-A specification to split
-     * the work in this case.
-     * TODO: Check how we could delay the work or have preemption checks.
+     * We do not have protocol UUIDs for VMs so if a request has non Nil UUID
+     * we must return an empty list.
      */
-    read_lock(&ffa_ctx_list_rwlock);
-    list_for_each_entry(dest_ctx, &ffa_ctx_head, ctx_list)
+    if ( !ffa_uuid_is_nil(uuid) )
+    {
+        *vm_count = 0;
+        return FFA_RET_OK;
+    }
+
+    /*
+     * Workaround for Linux FF-A Driver not accepting to have its own
+     * entry in the list before FF-A v1.2 was supported.
+     * This workaround is generally acceptable for other implementations
+     * as the specification was not completely clear on wether or not
+     * the requester endpoint information should be included or not
+     */
+    if ( 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 ( curr_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 )
+            return ret;
+
+        count++;
+    }
+
+    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
     {
         /*
-         * Do not include an entry for the caller VM as the spec is not
-         * clearly mandating it and it is not supported by Linux.
+         * There could potentially be a lot of VMs in the system and we could
+         * hold the CPU for long here.
+         * Right now there is no solution in FF-A specification to split
+         * the work in this case.
+         * TODO: Check how we could delay the work or have preemption checks.
          */
-        if ( dest_ctx != curr_ctx )
+        read_lock(&ffa_ctx_list_rwlock);
+        list_for_each_entry(dest_ctx, &ffa_ctx_head, ctx_list)
         {
-            /*
-             * We do not have UUID info for VMs so use
-             * the 1.0 structure so that we set UUIDs to
-             * zero using memset
-             */
-            struct ffa_partition_info_1_0 info;
-
-            if  ( dst_buf > (end_buf - dst_size) )
-            {
-                ret = FFA_RET_NO_MEMORY;
-                goto out;
-            }
+            /* Ignore the caller entry as it was already added */
+            if ( dest_ctx == curr_ctx )
+                continue;
 
-            /*
-             * Context might has been removed since we go it or being removed
-             * right now so we might return information for a VM not existing
-             * anymore. This is acceptable as we return a view of the system
-             * which could change at any time.
-             */
             info.id = dest_ctx->ffa_id;
             info.execution_context = dest_ctx->num_vcpus;
             info.partition_properties = FFA_PART_VM_PROP;
             if ( dest_ctx->is_64bit )
                 info.partition_properties |= FFA_PART_PROP_AARCH64_STATE;
 
-            memcpy(dst_buf, &info, MIN(sizeof(info), dst_size));
-
-            if ( dst_size > sizeof(info) )
-                memset(dst_buf + sizeof(info), 0,
-                       dst_size - sizeof(info));
+            ret = ffa_copy_info(dst_buf, end_buf, &info, dst_size,
+                                sizeof(info));
+            if ( ret )
+            {
+                read_unlock(&ffa_ctx_list_rwlock);
+                return ret;
+            }
 
-            dst_buf += dst_size;
             count++;
         }
+        read_unlock(&ffa_ctx_list_rwlock);
     }
-    *vm_count = count;
 
-out:
-    read_unlock(&ffa_ctx_list_rwlock);
+    *vm_count = count;
 
     return ret;
 }
@@ -217,16 +254,17 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
     uint32_t flags = get_user_reg(regs, 5);
-    uint32_t uuid[4] = {
-        get_user_reg(regs, 1),
-        get_user_reg(regs, 2),
-        get_user_reg(regs, 3),
-        get_user_reg(regs, 4),
-    };
+    struct ffa_uuid uuid;
     uint32_t dst_size = 0;
     void *dst_buf, *end_buf;
     uint32_t ffa_vm_count = 0, ffa_sp_count = 0;
 
+    ffa_uuid_set(&uuid,
+             get_user_reg(regs, 1),
+             get_user_reg(regs, 2),
+             get_user_reg(regs, 3),
+             get_user_reg(regs, 4));
+
     /*
      * If the guest is v1.0, he does not get back the entry size so we must
      * use the v1.0 structure size in the destination buffer.
@@ -259,10 +297,23 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
         }
 
         /*
-         * Do not count the caller VM as the spec is not clearly mandating it
-         * and it is not supported by Linux.
+         * We do not have protocol UUIDs for VMs so if a request has non Nil
+         * UUID we must return a vm_count of 0
          */
-        ffa_vm_count = get_ffa_vm_count() - 1;
+        if ( ffa_uuid_is_nil(uuid) )
+        {
+            ffa_vm_count = get_ffa_vm_count();
+
+            /*
+             * Workaround for Linux FF-A Driver not accepting to have its own
+             * entry in the list before FF-A v1.2 was supported.
+             * This workaround is generally acceptable for other implementations
+             * as the specification was not completely clear on wether or not
+             * the requester endpoint information should be included or not
+             */
+            if ( ctx->guest_vers < FFA_VERSION_1_2 )
+                ffa_vm_count -= 1;
+        }
 
         goto out;
     }
@@ -290,17 +341,15 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
 
     if ( ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
     {
-        ret = ffa_get_sp_partinfo(uuid, &ffa_sp_count, dst_buf, end_buf,
+        ret = ffa_get_sp_partinfo(uuid, &ffa_sp_count, &dst_buf, end_buf,
                                   dst_size);
 
         if ( ret )
             goto out_rx_release;
-
-        dst_buf += ffa_sp_count * dst_size;
     }
 
-    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
-        ret = ffa_get_vm_partinfo(&ffa_vm_count, dst_buf, end_buf, dst_size);
+    ret = ffa_get_vm_partinfo(uuid, &ffa_vm_count, &dst_buf, end_buf,
+                              dst_size);
 
 out_rx_release:
     if ( ret )
@@ -309,7 +358,13 @@ out:
     if ( ret )
         ffa_set_regs_error(regs, ret);
     else
+    {
+        /* Size should be 0 on count request and was not supported in 1.0 */
+        if ( flags || ctx->guest_vers == FFA_VERSION_1_0 )
+            dst_size = 0;
+
         ffa_set_regs_success(regs, ffa_sp_count + ffa_vm_count, dst_size);
+    }
 }
 
 static int32_t ffa_direct_req_send_vm(uint16_t sp_id, uint16_t vm_id,
@@ -450,6 +505,7 @@ bool ffa_partinfo_init(void)
     uint32_t count;
     int32_t e;
     void *spmc_rx;
+    struct ffa_uuid nil_uuid = { .val = { 0ULL, 0ULL } };
 
     if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) ||
          !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32))
@@ -459,7 +515,7 @@ bool ffa_partinfo_init(void)
     if (!spmc_rx)
         return false;
 
-    e = ffa_partition_info_get(NULL, 0, &count, &fpi_size);
+    e = ffa_partition_info_get(nil_uuid, 0, &count, &fpi_size);
     if ( e )
     {
         printk(XENLOG_ERR "ffa: Failed to get list of SPs: %d\n", e);
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 9cae238f972c..c1dac09c75ca 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -306,6 +306,10 @@ struct ffa_mem_region {
     struct ffa_address_range address_range_array[];
 };
 
+struct ffa_uuid {
+    uint64_t val[2];
+};
+
 struct ffa_ctx_notif {
     /*
      * True if domain is reported by FFA_NOTIFICATION_INFO_GET to have
@@ -567,4 +571,21 @@ static inline bool ffa_fw_supports_fid(uint32_t fid)
     return test_bit(FFA_ABI_BITNUM(fid), ffa_fw_abi_supported);
 }
 
+static inline bool ffa_uuid_is_nil(struct ffa_uuid id)
+{
+    return id.val[0] == 0 && id.val[1] == 0;
+}
+
+static inline bool ffa_uuid_equal(struct ffa_uuid id1, struct ffa_uuid id2)
+{
+    return id1.val[0] == id2.val[0] && id1.val[1] == id2.val[1];
+}
+
+static inline void ffa_uuid_set(struct ffa_uuid *id, uint32_t val0,
+                                uint32_t val1, uint32_t val2, uint32_t val3)
+{
+    id->val[0] = ((uint64_t)val1 << 32U) | val0;
+    id->val[1] = ((uint64_t)val3 << 32U) | val2;
+}
+
 #endif /*__FFA_PRIVATE_H__*/
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 15:53:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 15:53:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174084.1499111 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeIp-0005dU-K6; Thu, 27 Nov 2025 15:53:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174084.1499111; Thu, 27 Nov 2025 15:53:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeIp-0005ct-GP; Thu, 27 Nov 2025 15:53:03 +0000
Received: by outflank-mailman (input) for mailman id 1174084;
 Thu, 27 Nov 2025 15:53: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=+gQU=6D=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vOeIn-0003dB-L0
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 15:53:01 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 26a60dab-cba9-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 16:53: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 DF745176C;
 Thu, 27 Nov 2025 07:52:52 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.89.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 28A2C3F73B;
 Thu, 27 Nov 2025 07:52: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: 26a60dab-cba9-11f0-9d18-b5c5bf9af7f9
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 07/10] xen/arm: ffa: refactor direct requests via RUN helper
Date: Thu, 27 Nov 2025 16:51:38 +0100
Message-ID: <b13dfa489f41d5b72a25f40d6e45d38ad1b93051.1764254975.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764254975.git.bertrand.marquis@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Share the SMCCC plumbing used by SEND_DIRECT and RUN via a common
ffa_finish_direct_req_run() helper so canonical success and error cases
are handled in one place.

The dispatcher now routes FFA_RUN through ffa_handle_run(), and direct
requests bail out early if a guest targets itself or a non-secure
endpoint. This simplifies the direct path and prepares the mediator for
the wider v1.2 register ABI.

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

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 7392bb6c3db9..92cb6ad7ec97 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -347,6 +347,9 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     case FFA_MSG_SEND_DIRECT_REQ_64:
         ffa_handle_msg_send_direct_req(regs, fid);
         return true;
+    case FFA_RUN:
+        ffa_handle_run(regs, fid);
+        return true;
     case FFA_MSG_SEND2:
         e = ffa_handle_msg_send2(regs);
         break;
diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index dec429cbf160..8bb4bd93f724 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -21,42 +21,74 @@ struct ffa_part_msg_rxtx {
     uint32_t msg_size;
 };
 
-void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
+static void ffa_finish_direct_req_run(struct cpu_user_regs *regs,
+                                      struct arm_smccc_1_2_regs *req)
 {
-    struct arm_smccc_1_2_regs arg = { .a0 = fid, };
     struct arm_smccc_1_2_regs resp = { };
-    struct domain *d = current->domain;
-    uint32_t src_dst;
     uint64_t mask;
 
-    if ( smccc_is_conv_64(fid) )
+    arm_smccc_1_2_smc(req, &resp);
+
+    switch ( resp.a0 )
+    {
+    case FFA_ERROR:
+    case FFA_SUCCESS_32:
+    case FFA_SUCCESS_64:
+    case FFA_MSG_SEND_DIRECT_RESP_32:
+    case FFA_MSG_SEND_DIRECT_RESP_64:
+    case FFA_MSG_YIELD:
+    case FFA_INTERRUPT:
+        break;
+    default:
+        /* Bad fid, report back to the caller. */
+        ffa_set_regs_error(regs, FFA_RET_ABORTED);
+        return;
+    }
+
+    if ( smccc_is_conv_64(resp.a0) )
         mask = GENMASK_ULL(63, 0);
     else
         mask = GENMASK_ULL(31, 0);
 
+    ffa_set_regs(regs, resp.a0, resp.a1 & mask, resp.a2 & mask, resp.a3 & mask,
+                 resp.a4 & mask, resp.a5 & mask, resp.a6 & mask,
+                 resp.a7 & mask);
+}
+
+void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
+{
+    struct arm_smccc_1_2_regs arg = { .a0 = fid, };
+    struct domain *d = current->domain;
+    uint32_t src_dst;
+    uint64_t mask;
+    int32_t ret;
+
     if ( !ffa_fw_supports_fid(fid) )
     {
-        resp.a0 = FFA_ERROR;
-        resp.a2 = FFA_RET_NOT_SUPPORTED;
+        ret = FFA_RET_NOT_SUPPORTED;
         goto out;
     }
 
     src_dst = get_user_reg(regs, 1);
-    if ( (src_dst >> 16) != ffa_get_vm_id(d) )
+    if ( (src_dst >> 16) != ffa_get_vm_id(d) ||
+         (src_dst & GENMASK(15,0)) == ffa_get_vm_id(d) )
     {
-        resp.a0 = FFA_ERROR;
-        resp.a2 = FFA_RET_INVALID_PARAMETERS;
+        ret = FFA_RET_INVALID_PARAMETERS;
         goto out;
     }
 
     /* we do not support direct messages to VMs */
     if ( !FFA_ID_IS_SECURE(src_dst & GENMASK(15,0)) )
     {
-        resp.a0 = FFA_ERROR;
-        resp.a2 = FFA_RET_NOT_SUPPORTED;
+        ret = FFA_RET_NOT_SUPPORTED;
         goto out;
     }
 
+    if ( smccc_is_conv_64(fid) )
+        mask = GENMASK_ULL(63, 0);
+    else
+        mask = GENMASK_ULL(31, 0);
+
     arg.a1 = src_dst;
     arg.a2 = get_user_reg(regs, 2) & mask;
     arg.a3 = get_user_reg(regs, 3) & mask;
@@ -65,27 +97,11 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
     arg.a6 = get_user_reg(regs, 6) & mask;
     arg.a7 = get_user_reg(regs, 7) & mask;
 
-    arm_smccc_1_2_smc(&arg, &resp);
-    switch ( resp.a0 )
-    {
-    case FFA_ERROR:
-    case FFA_SUCCESS_32:
-    case FFA_SUCCESS_64:
-    case FFA_MSG_SEND_DIRECT_RESP_32:
-    case FFA_MSG_SEND_DIRECT_RESP_64:
-        break;
-    default:
-        /* Bad fid, report back to the caller. */
-        memset(&resp, 0, sizeof(resp));
-        resp.a0 = FFA_ERROR;
-        resp.a1 = src_dst;
-        resp.a2 = FFA_RET_ABORTED;
-    }
+    ffa_finish_direct_req_run(regs, &arg);
+    return;
 
 out:
-    ffa_set_regs(regs, resp.a0, resp.a1 & mask, resp.a2 & mask, resp.a3 & mask,
-                 resp.a4 & mask, resp.a5 & mask, resp.a6 & mask,
-                 resp.a7 & mask);
+    ffa_set_regs_error(regs, ret);
 }
 
 static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
@@ -215,3 +231,36 @@ out:
     spin_unlock(&src_ctx->tx_lock);
     return ret;
 }
+
+void ffa_handle_run(struct cpu_user_regs *regs, uint32_t fid)
+{
+    struct arm_smccc_1_2_regs arg = { .a0 = fid, };
+    uint32_t dst = get_user_reg(regs, 1);
+    int32_t ret;
+
+    if ( !ffa_fw_supports_fid(fid) )
+    {
+        ret = FFA_RET_NOT_SUPPORTED;
+        goto out;
+    }
+
+    /*
+     * We do not support FFA_RUN to VMs.
+     * Destination endpoint ID is in bits [31:16], bits[15:0] contain the
+     * vCPU ID.
+     */
+    if ( !FFA_ID_IS_SECURE(dst >> 16) )
+    {
+        ret = FFA_RET_NOT_SUPPORTED;
+        goto out;
+    }
+
+    arg.a1 = dst;
+
+    ffa_finish_direct_req_run(regs, &arg);
+
+    return;
+
+out:
+    ffa_set_regs_error(regs, ret);
+}
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index c1dac09c75ca..a9a03c7c5d71 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -461,6 +461,7 @@ static inline void ffa_raise_rx_buffer_full(struct domain *d)
 
 void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid);
 int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs);
+void ffa_handle_run(struct cpu_user_regs *regs, uint32_t fid);
 
 #ifdef CONFIG_FFA_VM_TO_VM
 static inline uint16_t get_ffa_vm_count(void)
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 15:53:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 15:53:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174086.1499123 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeIu-0006DV-Uv; Thu, 27 Nov 2025 15:53:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174086.1499123; Thu, 27 Nov 2025 15:53:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeIu-0006DI-Ow; Thu, 27 Nov 2025 15:53:08 +0000
Received: by outflank-mailman (input) for mailman id 1174086;
 Thu, 27 Nov 2025 15:53:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+gQU=6D=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vOeIt-0004I5-U9
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 15:53:07 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 29aa9348-cba9-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 16:53: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 E9435176A;
 Thu, 27 Nov 2025 07:52:57 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.89.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 026353F73B;
 Thu, 27 Nov 2025 07:53: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: 29aa9348-cba9-11f0-980a-7dc792cee155
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 10/10] xen/arm: ffa: advertise FF-A v1.2
Date: Thu, 27 Nov 2025 16:51:41 +0100
Message-ID: <8ae9b12641301ecfafa7ddee3e60544d3fa45c40.1764254975.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764254975.git.bertrand.marquis@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Advertise RUN/YIELD/INTERRUPT via FFA_FEATURES now that the runtime
helpers are in place, and expose the RX/TX MAP capacity field only once
a guest has negotiated FF-A v1.2.

While there, drop the stale <asm/tee/ffa.h> include.

To comply with the wider v1.2 register ABI, zero registers x8â€“x17 when
responding to a v1.2 VM. The dispatcher also rejects SMCCC64 calls from
AArch32 guests.

Finally, bump Xen's FF-A version to 1.2.

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

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 8b2f042287fc..c8fe97856d06 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -24,9 +24,6 @@
  * o FFA_MEM_DONATE_* and FFA_MEM_LEND_* - Used when tranferring ownership
  *   or access of a memory region
  * o FFA_MSG_SEND2 and FFA_MSG_WAIT - Used for indirect messaging
- * o FFA_MSG_YIELD
- * o FFA_INTERRUPT - Used to report preemption
- * o FFA_RUN
  *
  * Limitations in the implemented FF-A interfaces:
  * o FFA_RXTX_MAP_*:
@@ -68,7 +65,6 @@
 #include <asm/event.h>
 #include <asm/regs.h>
 #include <asm/smccc.h>
-#include <asm/tee/ffa.h>
 #include <asm/tee/tee.h>
 
 #include "ffa_private.h"
@@ -262,6 +258,9 @@ static void handle_features(struct cpu_user_regs *regs)
     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);
         break;
     case FFA_MSG_SEND_DIRECT_REQ2:
@@ -290,7 +289,16 @@ static void handle_features(struct cpu_user_regs *regs)
          * differs from FFA_PAGE_SIZE (SZ_4K).
          */
         BUILD_BUG_ON(PAGE_SIZE != FFA_PAGE_SIZE);
-        ffa_set_regs_success(regs, 0, 0);
+
+        /*
+         * From FFA v1.2, we can give the maximum number of pages we support
+         * for the RX/TX buffers.
+         */
+        if ( ctx->guest_vers < FFA_VERSION_1_2 )
+            ffa_set_regs_success(regs, 0, 0);
+        else
+            ffa_set_regs_success(regs, FFA_MAX_RXTX_PAGE_COUNT << 16, 0);
+
         break;
     case FFA_FEATURE_NOTIF_PEND_INTR:
         ffa_set_regs_success(regs, GUEST_FFA_NOTIF_PEND_INTR_ID, 0);
@@ -323,6 +331,13 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     if ( !ctx )
         return false;
 
+    if ( !is_64bit_domain(d) && smccc_is_conv_64(fid) )
+    {
+        /* 32bit guests should only use 32bit convention calls */
+        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+        return true;
+    }
+
     /* A version must be negotiated first */
     if ( !ctx->guest_vers_negotiated )
     {
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index a9a03c7c5d71..6afca2ea07ef 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -53,7 +53,7 @@
  * that particular guest or SP.
  */
 #define FFA_MY_VERSION_MAJOR    1U
-#define FFA_MY_VERSION_MINOR    1U
+#define FFA_MY_VERSION_MINOR    2U
 #define FFA_MY_VERSION          MAKE_FFA_VERSION(FFA_MY_VERSION_MAJOR, \
                                                  FFA_MY_VERSION_MINOR)
 
@@ -505,14 +505,24 @@ static inline void ffa_set_regs(struct cpu_user_regs *regs, register_t v0,
                                 register_t v4, register_t v5, register_t v6,
                                 register_t v7)
 {
-        set_user_reg(regs, 0, v0);
-        set_user_reg(regs, 1, v1);
-        set_user_reg(regs, 2, v2);
-        set_user_reg(regs, 3, v3);
-        set_user_reg(regs, 4, v4);
-        set_user_reg(regs, 5, v5);
-        set_user_reg(regs, 6, v6);
-        set_user_reg(regs, 7, v7);
+    struct domain *d = current->domain;
+    struct ffa_ctx *ctx = d->arch.tee;
+    int i;
+
+    set_user_reg(regs, 0, v0);
+    set_user_reg(regs, 1, v1);
+    set_user_reg(regs, 2, v2);
+    set_user_reg(regs, 3, v3);
+    set_user_reg(regs, 4, v4);
+    set_user_reg(regs, 5, v5);
+    set_user_reg(regs, 6, v6);
+    set_user_reg(regs, 7, v7);
+
+    if ( ctx && ctx->guest_vers >= FFA_VERSION_1_2 && ctx->is_64bit )
+    {
+        for (i = 8; i <= 17; i++)
+            set_user_reg(regs, i, 0);
+    }
 }
 
 static inline void ffa_set_regs_error(struct cpu_user_regs *regs,
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 16:01:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 16:01:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174143.1499133 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeQy-0001ZW-UD; Thu, 27 Nov 2025 16:01:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174143.1499133; Thu, 27 Nov 2025 16:01:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeQy-0001ZP-Ps; Thu, 27 Nov 2025 16:01:28 +0000
Received: by outflank-mailman (input) for mailman id 1174143;
 Thu, 27 Nov 2025 16:01: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=+gQU=6D=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vOeIp-0003dB-LT
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 15:53:03 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 2795c4cd-cba9-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 16:53: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 761D219F6;
 Thu, 27 Nov 2025 07:52:54 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.89.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id B0A853F73B;
 Thu, 27 Nov 2025 07:53: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: 2795c4cd-cba9-11f0-9d18-b5c5bf9af7f9
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 08/10] xen/arm: ffa: add v1.2 SEND2 header layout
Date: Thu, 27 Nov 2025 16:51:39 +0100
Message-ID: <769c7ad291abe47d7991b878b131f9b31d4f0954.1764254975.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764254975.git.bertrand.marquis@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Teach the SEND2 path about the distinct FF-A v1.1 and v1.2 RX/TX header
layouts so we can propagate the 128-bit UUIDs introduced in v1.2.

VM-to-VM SEND2 calls now build the larger v1.2 header, zeroing the UUID
fields for v1.1 senders, and the dispatcher validates messages using
the v1.1 header layout to keep legacy guests working.

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

diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index 8bb4bd93f724..472bfad79dd3 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -13,7 +13,7 @@
 #include "ffa_private.h"
 
 /* Encoding of partition message in RX/TX buffer */
-struct ffa_part_msg_rxtx {
+struct ffa_part_msg_rxtx_1_1 {
     uint32_t flags;
     uint32_t reserved;
     uint32_t msg_offset;
@@ -21,6 +21,16 @@ struct ffa_part_msg_rxtx {
     uint32_t msg_size;
 };
 
+struct ffa_part_msg_rxtx_1_2 {
+    uint32_t flags;
+    uint32_t reserved;
+    uint32_t msg_offset;
+    uint32_t send_recv_id;
+    uint32_t msg_size;
+    uint32_t reserved2;
+    uint64_t uuid[2];
+};
+
 static void ffa_finish_direct_req_run(struct cpu_user_regs *regs,
                                       struct arm_smccc_1_2_regs *req)
 {
@@ -104,12 +114,12 @@ out:
     ffa_set_regs_error(regs, ret);
 }
 
-static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
-                                struct ffa_part_msg_rxtx *src_msg)
+static int32_t ffa_msg_send2_vm(struct ffa_ctx *src_ctx, uint16_t dst_id,
+                                struct ffa_part_msg_rxtx_1_2 *src_msg)
 {
     struct domain *dst_d;
     struct ffa_ctx *dst_ctx;
-    struct ffa_part_msg_rxtx *dst_msg;
+    struct ffa_part_msg_rxtx_1_2 *dst_msg;
     int err;
     int32_t ret;
 
@@ -142,7 +152,7 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
 
     /* we need to have enough space in the destination buffer */
     if ( (dst_ctx->page_count * FFA_PAGE_SIZE -
-          sizeof(struct ffa_part_msg_rxtx)) < src_msg->msg_size )
+          sizeof(struct ffa_part_msg_rxtx_1_2)) < src_msg->msg_size )
     {
         ret = FFA_RET_NO_MEMORY;
         ffa_rx_release(dst_d);
@@ -154,12 +164,24 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
     /* prepare destination header */
     dst_msg->flags = 0;
     dst_msg->reserved = 0;
-    dst_msg->msg_offset = sizeof(struct ffa_part_msg_rxtx);
+    dst_msg->msg_offset = sizeof(struct ffa_part_msg_rxtx_1_2);
     dst_msg->send_recv_id = src_msg->send_recv_id;
     dst_msg->msg_size = src_msg->msg_size;
+    dst_msg->reserved2 = 0;
 
-    memcpy(dst_ctx->rx + sizeof(struct ffa_part_msg_rxtx),
-           src_buf + src_msg->msg_offset, src_msg->msg_size);
+    if ( src_ctx->guest_vers < FFA_VERSION_1_2 )
+    {
+        dst_msg->uuid[0] = 0;
+        dst_msg->uuid[1] = 0;
+    }
+    else
+    {
+        dst_msg->uuid[0] = src_msg->uuid[0];
+        dst_msg->uuid[1] = src_msg->uuid[1];
+    }
+
+    memcpy(dst_ctx->rx + sizeof(struct ffa_part_msg_rxtx_1_2),
+           src_ctx->tx + src_msg->msg_offset, src_msg->msg_size);
 
     /* receiver rx buffer will be released by the receiver*/
 
@@ -175,11 +197,17 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
 {
     struct domain *src_d = current->domain;
     struct ffa_ctx *src_ctx = src_d->arch.tee;
-    struct ffa_part_msg_rxtx src_msg;
+    /*
+     * src_msg is interpreted as v1.2 header, but:
+     * - for v1.1 guests, uuid[] is ignored and may contain payload bytes
+     * - for v1.2 guests, uuid[] carries the FF-A v1.2 UUID fields
+     */
+    struct ffa_part_msg_rxtx_1_2 src_msg;
     uint16_t dst_id, src_id;
     int32_t ret;
 
-    BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx) >= FFA_PAGE_SIZE);
+    BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx_1_1) >= FFA_PAGE_SIZE);
+    BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx_1_2) >= FFA_PAGE_SIZE);
 
     if ( !spin_trylock(&src_ctx->tx_lock) )
         return FFA_RET_BUSY;
@@ -190,14 +218,15 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
     src_id = src_msg.send_recv_id >> 16;
     dst_id = src_msg.send_recv_id & GENMASK(15,0);
 
-    if ( src_id != ffa_get_vm_id(src_d) )
+    if ( src_id != ffa_get_vm_id(src_d) ||
+         dst_id == ffa_get_vm_id(src_d) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
         goto out;
     }
 
     /* check source message fits in buffer */
-    if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx) ||
+    if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx_1_1) ||
             src_msg.msg_size == 0 ||
             src_msg.msg_offset > src_ctx->page_count * FFA_PAGE_SIZE ||
             src_msg.msg_size > (src_ctx->page_count * FFA_PAGE_SIZE -
@@ -222,7 +251,7 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
     else if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
     {
         /* Message for a VM */
-        ret = ffa_msg_send2_vm(dst_id, src_ctx->tx, &src_msg);
+        ret = ffa_msg_send2_vm(src_ctx, dst_id, &src_msg);
     }
     else
         ret = FFA_RET_INVALID_PARAMETERS;
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 16:01:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 16:01:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174144.1499138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeQz-0001ch-5C; Thu, 27 Nov 2025 16:01:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174144.1499138; Thu, 27 Nov 2025 16: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 1vOeQz-0001c1-0C; Thu, 27 Nov 2025 16:01:29 +0000
Received: by outflank-mailman (input) for mailman id 1174144;
 Thu, 27 Nov 2025 16:01: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=+gQU=6D=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vOeIt-0003dB-M9
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 15:53:07 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 2a5c959c-cba9-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 16:53:07 +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 09334176C;
 Thu, 27 Nov 2025 07:52:59 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.89.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BA2813F73B;
 Thu, 27 Nov 2025 07:53: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: 2a5c959c-cba9-11f0-9d18-b5c5bf9af7f9
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org
Subject: [PATCH 00/10] xen/arm: ffa: FF-A v1.2 support
Date: Thu, 27 Nov 2025 16:51:42 +0100
Message-ID: <cover.1764241336.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764254975.git.bertrand.marquis@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This series updates Xenâ€™s FF-A mediator on Arm to implement the FF-A
v1.2 interface while keeping existing v1.0/v1.1 guests working.

Patches 1â€“5 rework the low-level plumbing:

  1) add the FF-A v1.2 function IDs and probe the new ABIs
  2) track per-VM FFA_VERSION state and enforce negotiation
  3) harden RX/TX mapping and validation
  4) rework SPMC RX/TX buffer management so access is serialized and
     RX buffers are always released back to the SPMC
  5) switch the mediator to spec-compliant signed 32-bit status codes

Patches 6â€“9 update the data structures and direct-call paths:

  6) add ffa_uuid helpers and rework partition-info handling
  7) refactor direct requests via a common RUN/direct completion helper
  8) add the v1.1/v1.2 SEND2 header layout
  9) add MSG_SEND_DIRECT_REQ2/RESP2 support and marshal the extended
     register set for v1.2 guests

Patch 10 tightens the dispatcher and advertises FF-A v1.2 only to guests
that negotiated v1.2:

  - reject SMCCC64 calls from AArch32 guests
  - expose the new FIDs and RX/TX capacity fields
  - bump Xen's FF-A version to 1.2 once the implementation is complete

v1.0/v1.1 guests continue to use the v1.1 ABI without behaviour changes,
while v1.2 guests can negotiate the wider ABI and use RUN, SEND2, and
DIRECT_REQ2/RESP2 with the extended register set.

This serie was validated through gitlab-ci here:
https://gitlab.com/xen-project/people/bmarquis/xen-ffa-research/-/tree/ffa-v1.2/v0?ref_type=heads

Bertrand Marquis (10):
  xen/arm: ffa: add FF-A v1.2 function IDs
  xen/arm: ffa: per-VM FFA_VERSION negotiation state
  xen/arm: ffa: harden RX/TX mapping
  xen/arm: ffa: rework SPMC RX/TX buffer management
  xen/arm: ffa: use signed 32-bit status codes
  xen/arm: ffa: add UUID helpers for partition info
  xen/arm: ffa: refactor direct requests via RUN helper
  xen/arm: ffa: add v1.2 SEND2 header layout
  xen/arm: ffa: add MSG_SEND_DIRECT_REQ2 support
  xen/arm: ffa: advertise FF-A v1.2

 xen/arch/arm/include/asm/tee/ffa.h |   2 +-
 xen/arch/arm/tee/ffa.c             | 205 +++++++++++++++++-------
 xen/arch/arm/tee/ffa_msg.c         | 203 ++++++++++++++++++-----
 xen/arch/arm/tee/ffa_notif.c       |   6 +-
 xen/arch/arm/tee/ffa_partinfo.c    | 248 ++++++++++++++++++-----------
 xen/arch/arm/tee/ffa_private.h     | 129 ++++++++++-----
 xen/arch/arm/tee/ffa_rxtx.c        | 160 +++++++++++++++----
 xen/arch/arm/tee/ffa_shm.c         |  30 ++--
 8 files changed, 697 insertions(+), 286 deletions(-)

-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 16:01:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 16:01:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174162.1499152 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeRK-0002SN-Bz; Thu, 27 Nov 2025 16:01:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174162.1499152; Thu, 27 Nov 2025 16:01:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeRK-0002Rz-7G; Thu, 27 Nov 2025 16:01:50 +0000
Received: by outflank-mailman (input) for mailman id 1174162;
 Thu, 27 Nov 2025 16:01: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=+gQU=6D=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vOeIr-0003dB-LP
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 15:53:05 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 28ae68e4-cba9-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 16:53: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 32E33176C;
 Thu, 27 Nov 2025 07:52:56 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.89.94])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 4988E3F73B;
 Thu, 27 Nov 2025 07: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: 28ae68e4-cba9-11f0-9d18-b5c5bf9af7f9
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 09/10] xen/arm: ffa: add MSG_SEND_DIRECT_REQ2 support
Date: Thu, 27 Nov 2025 16:51:40 +0100
Message-ID: <06eae7d0caaf5379086d9a2efde8489448f14f39.1764254975.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1764254975.git.bertrand.marquis@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Extend the direct-request path so FF-A v1.2 guests can issue
FFA_MSG_SEND_DIRECT_REQ2 and receive the matching RESP2.

The handler now marshals registers x8â€“x17, and
ffa_finish_direct_req_run() copies back the 17-register response used by
FFA_MSG_SEND_DIRECT_RESP2. The new opcode is exposed via FFA_FEATURES
and gated on guests that negotiated v1.2.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa.c     | 20 +++++++++++++++++++
 xen/arch/arm/tee/ffa_msg.c | 39 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 92cb6ad7ec97..8b2f042287fc 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -234,6 +234,8 @@ out_continue:
 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++ )
@@ -262,6 +264,16 @@ static void handle_features(struct cpu_user_regs *regs)
     case FFA_MSG_SEND2:
         ffa_set_regs_success(regs, 0, 0);
         break;
+    case FFA_MSG_SEND_DIRECT_REQ2:
+        if ( 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_MEM_SHARE_64:
     case FFA_MEM_SHARE_32:
         /*
@@ -347,6 +359,14 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     case FFA_MSG_SEND_DIRECT_REQ_64:
         ffa_handle_msg_send_direct_req(regs, fid);
         return true;
+    case FFA_MSG_SEND_DIRECT_REQ2:
+        if ( ctx->guest_vers >= FFA_VERSION_1_2 )
+        {
+            ffa_handle_msg_send_direct_req(regs, fid);
+            return true;
+        }
+        e = FFA_RET_NOT_SUPPORTED;
+        break;
     case FFA_RUN:
         ffa_handle_run(regs, fid);
         return true;
diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index 472bfad79dd3..1f42aae1e0b6 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -49,6 +49,30 @@ static void ffa_finish_direct_req_run(struct cpu_user_regs *regs,
     case FFA_MSG_YIELD:
     case FFA_INTERRUPT:
         break;
+    case FFA_MSG_SEND_DIRECT_RESP2:
+        /*
+         * REQ2 / RESP2 use a 17-register payload (x1â€“x17). Copy all of them
+         * back to the guest context.
+         */
+        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);
+        set_user_reg(regs, 4, resp.a4);
+        set_user_reg(regs, 5, resp.a5);
+        set_user_reg(regs, 6, resp.a6);
+        set_user_reg(regs, 7, resp.a7);
+        set_user_reg(regs, 8, resp.a8);
+        set_user_reg(regs, 9, resp.a9);
+        set_user_reg(regs, 10, resp.a10);
+        set_user_reg(regs, 11, resp.a11);
+        set_user_reg(regs, 12, resp.a12);
+        set_user_reg(regs, 13, resp.a13);
+        set_user_reg(regs, 14, resp.a14);
+        set_user_reg(regs, 15, resp.a15);
+        set_user_reg(regs, 16, resp.a16);
+        set_user_reg(regs, 17, resp.a17);
+        return;
     default:
         /* Bad fid, report back to the caller. */
         ffa_set_regs_error(regs, FFA_RET_ABORTED);
@@ -107,6 +131,21 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
     arg.a6 = get_user_reg(regs, 6) & mask;
     arg.a7 = get_user_reg(regs, 7) & mask;
 
+    if ( fid == FFA_MSG_SEND_DIRECT_REQ2 )
+    {
+        /* 17 registers are used for REQ2 */
+        arg.a8 = get_user_reg(regs, 8);
+        arg.a9 = get_user_reg(regs, 9);
+        arg.a10 = get_user_reg(regs, 10);
+        arg.a11 = get_user_reg(regs, 11);
+        arg.a12 = get_user_reg(regs, 12);
+        arg.a13 = get_user_reg(regs, 13);
+        arg.a14 = get_user_reg(regs, 14);
+        arg.a15 = get_user_reg(regs, 15);
+        arg.a16 = get_user_reg(regs, 16);
+        arg.a17 = get_user_reg(regs, 17);
+    }
+
     ffa_finish_direct_req_run(regs, &arg);
     return;
 
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 16:06:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 16:06:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174198.1499162 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeVZ-0003Oy-R1; Thu, 27 Nov 2025 16:06:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174198.1499162; Thu, 27 Nov 2025 16:06:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeVZ-0003Or-NX; Thu, 27 Nov 2025 16:06:13 +0000
Received: by outflank-mailman (input) for mailman id 1174198;
 Thu, 27 Nov 2025 16:06: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=+gQU=6D=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vOeVX-0003OQ-53
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 16:06:11 +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 faddbdcd-cbaa-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 17:06:07 +0100 (CET)
Received: from DU6P191CA0023.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:540::17)
 by AS8PR08MB8109.eurprd08.prod.outlook.com (2603:10a6:20b:54b::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Thu, 27 Nov
 2025 16:06:00 +0000
Received: from DB1PEPF000509E4.eurprd03.prod.outlook.com
 (2603:10a6:10:540:cafe::d) by DU6P191CA0023.outlook.office365.com
 (2603:10a6:10:540::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.14 via Frontend Transport; Thu,
 27 Nov 2025 16:05:57 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509E4.mail.protection.outlook.com (10.167.242.54) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.7
 via Frontend Transport; Thu, 27 Nov 2025 16:05:59 +0000
Received: from DBAPR08MB5590.eurprd08.prod.outlook.com (2603:10a6:10:1aa::17)
 by VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Thu, 27 Nov
 2025 16:05:24 +0000
Received: from DBAPR08MB5590.eurprd08.prod.outlook.com
 ([fe80::288a:2f8:39b8:a2f4]) by DBAPR08MB5590.eurprd08.prod.outlook.com
 ([fe80::288a:2f8:39b8:a2f4%3]) with mapi id 15.20.9366.012; Thu, 27 Nov 2025
 16:05: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: faddbdcd-cbaa-11f0-980a-7dc792cee155
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=LWMFgpmicNvU08ORktcK9W21/pkWYPSvvU71p4mRiZAE0KnAC6N3C7tUYhSq2kW7T/9+KTQJy+Dt1NLT3x2vLiqr7v5eVvc9U0v2MDTqVmsARG6YK8uY6AXLNt3QPZ8FkTwUg7D6EfWierjVW8UutfQ54vppffxSmYlNO4zXXCxVjcI9Vv+iN+PEJuxVxIrkX2OAOyIs7uhXdINZUomOmN6m/fu2XpZjbW4FU6K3uLE8yy4Oj5SZGsLXjrlJFCn0xnsiHAn/l/sx0ZEEG+om4nDJfUYNHOSpeTGfZ3QwKkInmGgF/pCJxHmwOB414H96f3CoOAfATRVY/v0zNneHBA==
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=w2ZuVNG0mRES/L4SKb92v1pwTUxvfEudGX8ifhsFe7A=;
 b=dKPnKpzhISbAI2f+jiA4TBrT4Qt8KHb3q6+wVD3bW554i5/9KiEEk9h1wp9gU2O5yagnbuo8EzF2dWiW0RbjTOdaqmIJ5nJ5J1Gz7lcls0Qwcpn8N+zMEmExZx7v+7iraUmmXnBualM6JB51QollerzOLIu6FVhO1m2VIzZrrTNIE5J9ZDeZwBXKiAqyp8yqMnvKtESMRvRJ/9uvKm4RjaGKbeDpOBHpJaVegSC8syB3NYs7pPu7rLC0vurj/3q8Z/nmPD5A7/Dk98hUERoMGPGfgzvjqjGLweiv6h3zGGpnO70W/OL4da+CUg70/tJO6Fg1M2UXbU0j+lrk7R8wpA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;
 dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=w2ZuVNG0mRES/L4SKb92v1pwTUxvfEudGX8ifhsFe7A=;
 b=RZ05ChlZlsBa04DmmWS7xojiDT0tnBkBdEYeAtBnhRxk/jRFbKchd+K0Nv+fuGqZeNKhN/WdZDZ/pzMj4zjkPzJfDjA7Dt5dKdkZRrUxxK+ZyA9DFQbWIQDV2ZvEufZJlCV25Zmw5OUVK7RCROs0V698pUInEQWIgxZvQ4bwnXQ=
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=dQnbtJw0C10RUUGg4uT13cpdDgJ4xPDZ8BLEU41LLb4xV77LSvYcpSirHwu3UZMqOPFWTr+AzVXcGSLGS1OohH5Sdakv6BpdfBt9T+zwcxuEzwa44sWNUI06nsx1pkGdxW7qL2E6wW7x1ml3ealdnw39MmmfMekHau9SkvgKOTnAYrWLpbS+Ow5NhzfrVpQGxIH7iNeupiov/Cu60sl1zpHKMbISbx5jtIFEVjTH0iIjkATremabPUq+EvEIFUuFIk52Pg7HPm5upHPoOQKT7Gw34d24CYvvAX7+nxAPjZC/yvSWzPbw9oUeH3ExjJERahzaAEiyA6JafilT2pVrkQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=w2ZuVNG0mRES/L4SKb92v1pwTUxvfEudGX8ifhsFe7A=;
 b=dm3b2dlpPgApyXlCfTRQRnRqvAs5ePGFJgkzQ3/U+IywAUznu73kJ/FmIrBeSvVWvAgW1C6MCHPk0kMBYac4LoYAdKZS9/VH1fA3VNESeF7nSXWQcwyHUxIZg7hpZL3MZu184iSl0PTHxI6DKCC16LvPPLsbD4rRynAsqf9Wf5VSN1kkFjViNHzywcnOlD/Xk9o0Y/aYEJqW0nIEHVDyj9cP2Vg+XX/x+Mi/FehpxWrNX6X+v8wGRSE5W40lKCkcdM6D9pF5vqGkGXqb0nqXPxlXpoxRqhyIHTeYiH8EmcdBhFRyyHLOXOmFiuso/50y4FjAYrgwWtRSFQCO9Mt1LA==
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=w2ZuVNG0mRES/L4SKb92v1pwTUxvfEudGX8ifhsFe7A=;
 b=RZ05ChlZlsBa04DmmWS7xojiDT0tnBkBdEYeAtBnhRxk/jRFbKchd+K0Nv+fuGqZeNKhN/WdZDZ/pzMj4zjkPzJfDjA7Dt5dKdkZRrUxxK+ZyA9DFQbWIQDV2ZvEufZJlCV25Zmw5OUVK7RCROs0V698pUInEQWIgxZvQ4bwnXQ=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "jens.wiklander@linaro.org" <jens.wiklander@linaro.org>
Subject: Re: [PATCH 00/10] xen/arm: ffa: FF-A v1.2 support
Thread-Topic: [PATCH 00/10] xen/arm: ffa: FF-A v1.2 support
Thread-Index: AQHcX7XaOBZxRtacxUWP+aUgGBDI37UGrAcAgAADxIA=
Date: Thu, 27 Nov 2025 16:05:23 +0000
Message-ID: <2DA14F49-DC82-44E8-B265-265BD0439879@arm.com>
References: <cover.1764254975.git.bertrand.marquis@arm.com>
 <cover.1764241336.git.bertrand.marquis@arm.com>
In-Reply-To: <cover.1764241336.git.bertrand.marquis@arm.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.200.81.1.6)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DBAPR08MB5590:EE_|VI1PR08MB5325:EE_|DB1PEPF000509E4:EE_|AS8PR08MB8109:EE_
X-MS-Office365-Filtering-Correlation-Id: 780e5fb1-785b-413d-b4c3-08de2dcedb2d
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?TzVSZE8xWGx6RTd3dnNPK0lPSWRRanFXaWxLVHNiOFhMUUs3MlVRTlplMDBj?=
 =?utf-8?B?U3FJZnVQNDQ1Qlo1eUdMMS96RDVZVzAwd1cxMnV6NnBVWVpVY005dXgyRjB5?=
 =?utf-8?B?cHVURjZyblR1MUl0eDN2aXV2NHlIZ295YTR4RjhWNWRSOU41aXlnekRFSVVW?=
 =?utf-8?B?ZkNvbG9DWHNMNnVWaHg5R0Vvc0tmcFc1V3lqbmp5dGRaTDJzTGRSU3psRWpL?=
 =?utf-8?B?ZFhIRGxmcnFMbGdvWFNDWTI2dVVIbzNOWnI3UktoVUJhb2E4WTdBWnZSaUN0?=
 =?utf-8?B?OW9zcTY2WE9ScWVXR0gwTTgxN3J6OGc4ejJ4eEg2cEVGcU1BOFRMRktCeVBU?=
 =?utf-8?B?Y0IyZ0N6VnZDVjlrenlYSUJvdVZzZHdSTSt5SlBkZXFHYkZ6ZzIySUtJNFNl?=
 =?utf-8?B?SENVRlM2cmpqU01wUkkwK2VUNGNKT0hiTkxqOFkvRFJRZXFTdzBHQXhMM1VV?=
 =?utf-8?B?T09wbHVEUlBwN2xrWUUxTWhsd2ZrZ0VTT1N2YnFQQTY5a1ZsYUo2RXVHNVB0?=
 =?utf-8?B?NlNhZ3lWU2orcXdFYTVIeHFkdTh4MlBZeC96RHNGTEhsTUFrTnFFbWFqSEtO?=
 =?utf-8?B?SDhDOUhYR1lWVTByNDNQRVlVQ3hlODd5RFlKbXZ5aXRzTUpMeTV4TUZaLzV5?=
 =?utf-8?B?Z1JIWHVsRW5BSWxVOHNVYmZsdE9MNmp4aTBSRERrdkZKd3F3MFJQV2lKbWdL?=
 =?utf-8?B?bE5rVndwNE9iZjRJelBYc2VzVGNMN3NFQmYzdy9VNENrZjFQRnpLanB6RjYw?=
 =?utf-8?B?N2lGT2hkektuam9EZWVlUjI3L1ZwL1IyVkZnVkgvVklGU3FodXhzN0dGbEVl?=
 =?utf-8?B?M3FKVTdzSGVSMURyVHI1NG1HOWRqQm5GV3hLSnplVlM5MTJFVVY0TzdHSlhx?=
 =?utf-8?B?ZHdrak51VUpGcXJ1aXFmbVVKL29UVVZnN216UklrQjdzUWtMSEdOaTkrK1Rk?=
 =?utf-8?B?NWxERnl0YTBSaU42amY2c29wdE9meENhazdxVE5IVDJiNEl6VFUxKzJuUTEr?=
 =?utf-8?B?VngyWWQvVDRFMDZFdG1PajdBNS84SWMwa3FLSEpmaTNWeTVRcC9ySGdmN1oy?=
 =?utf-8?B?bjFkWjg0c0FxOE1SVDM4VFF4QTFGZDEyZkpUeHp4UTFtMmZjTlZxY3pRL2ZH?=
 =?utf-8?B?SWc1WDBEeDVFSHBuZ1d0QVFSV3cvdUVTQVZsMmRHaERXM3BZeVZhWmV3cW1m?=
 =?utf-8?B?Z0FTdS8wYXhGTVVOWklJcWVrSUVUMkZLUkx5blY0NGJrNjRPaE1yS1BxTkZS?=
 =?utf-8?B?N2F5VTc3Z1NhcnU5ZU9BQlRZNDlJU3pTS2xMZjYrclhsdVJpVC9PWFRDNlJ0?=
 =?utf-8?B?VEVjaHprMHh6ZVN3aEpURk5ZaWdVRTkrL05MWEZmUytkUnB4eEtZakdPRmsz?=
 =?utf-8?B?NWFOR0Z2OVBjRkY4MWdGL0hqTExyeUpsa2t1cEtJTU4rb2dYYnVGb0V4cVJM?=
 =?utf-8?B?T29SdWdXK3ZWUGZJelJSZkczbEI0TzFhOHFnS2pQR1U2MDJydW0vb2ZtS1Bz?=
 =?utf-8?B?TytISnRLbVB2VVljUzlJN0swemtaVFIrZHY4MjRUTnlpSkU3TVQzS0tiSU5P?=
 =?utf-8?B?dTlObC9UZHR0d3NwZCtsRHhRWWl5aTA2cXk2ZUZRQ1piSVR5V3F1Tm1DR1px?=
 =?utf-8?B?T2JxMUZlZ29IL0ZZZWdUd2x2YkJkQ0lqdjRheVdsQ1FGY2c2ZGNJY291Y0hV?=
 =?utf-8?B?TlR1Vnh0WGFjTURTNjhVV1B0U1dxbGpyVjIrUVppdGJVd2s3cjl1YkN4QUdq?=
 =?utf-8?B?U3hvUWJjT3QvU0xhb1RyMnFORW1GTTFKT2w3d0gyenlER1VZSnRTbmRndmor?=
 =?utf-8?B?OHV6V2xOMFZFVkM3d2JleVVsVkEwMzhHUldvcGhWOEVONGNBMUZldEhsZzhE?=
 =?utf-8?B?QXgyZHBDeDdFaTRjVW9jS0gwN0NFQnd1b2ZoL0RLa1JlcGZBbHozSllFMFVH?=
 =?utf-8?B?ZTZheWYzWURJeDU2cERuRGdSaWdiVWYycytyV3BJQ1VuanR3aWtJQXZWYk9m?=
 =?utf-8?B?RW9HV1hsYUZzV0NmNk1TYlZyb2JvMkhCa250WkpVTEs0dWdxYTY5SXF3YXFi?=
 =?utf-8?Q?hsZwsv?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBAPR08MB5590.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: <5EBED686A150FE4385634B593C3D897A@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB5325
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509E4.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	87cbc026-3e67-40d9-52b0-08de2dcec5e5
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|376014|36860700013|82310400026|35042699022|1800799024|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Z3BXZldXMERHSS9nVEVCempXdnRtd2ZMOFNkWlBoeTcyaitMbVh1bEQ2WDBj?=
 =?utf-8?B?eEtjd1lQeXFKQjExb2hOK2xxQ3g1S0t3K3dtMlZpSmppVU9ieE1pNlVTWTVE?=
 =?utf-8?B?Z3dMaXFuUTgvT0Npc0tqdlZSd29MdGlsK1A2ZzdpNS9uUkd6bGlTQTJBa3Zm?=
 =?utf-8?B?Qzh4cmdWTnNETmJSL0FBKy8vZ3VVN205N1lJYTVDR1QyY2xpaGJPVThnMGZn?=
 =?utf-8?B?VkM1YzdNTFViUG82bzY5N1Q0aFV4YUR1Z2hnMkgwZHh3ZHpoWnJHRnd4Mk0v?=
 =?utf-8?B?UG55dXpjVG12YlFuNVA1SjlacEYrazdYZGlwREhaZjhPV3pyWVp5ZzJETTQv?=
 =?utf-8?B?Z3dEaGJqTUZOVG5yZFZiRDlBNC9qdlVmdEh0cXlkbW9mc2ZPcXpJSVBDU2V4?=
 =?utf-8?B?Ri9FR3RnN0ovSzVZK2M2c0hmZ01KaTFqWW9tcTU2TmtWM3g4c1BCTnc1ckRB?=
 =?utf-8?B?OW80ckp1clZjVmt5UzdrSVFiVXlJZ241c0ZyeVJVYTdZY2JwaEpReHU3WVg1?=
 =?utf-8?B?d3VjTmVJWlBnUWRZUXp2eVdKTHVIbHpmdTJwQ2toeUpSdCtkZzFoR2VDQ3hP?=
 =?utf-8?B?N1gwdFdmc2tEQnJVUWdNYW9vV0dUeU1heGh4QSt3SmhNSWF2TFNUbGMyc0Rt?=
 =?utf-8?B?alprK2FORTVqQ2c4L3lKQmtsZWd4NUZNRVZyRUNMM2g2OEVkK0FhcE5HbDZP?=
 =?utf-8?B?Q3cySG1zMEZXVUd6akROdVo1VlhNK3RDSGZvMUJiS29HMndvcDczdk42MEpF?=
 =?utf-8?B?OXVIN2tJYjV4QXJ3MUFOSFNEZHJoTHBxWldmZ0UxaFp0QTkzL3oyU1lrbER2?=
 =?utf-8?B?dldsTU1adEppK2F5Z3ZrWjQyeVJtNitlTzVyaTQwZjNjdWhoY2VuUlRtSldG?=
 =?utf-8?B?bW9DWkZXZHZwYnZCNzZkTStNTlVOdlcrMHdKRHRJMFd3QjljWEpXcVE5WlFT?=
 =?utf-8?B?ajVpWk44YW84bUZNUUdyZWgzaklRMmdzWXI2NmVFd3hCTUJBQXAzck9BMzJQ?=
 =?utf-8?B?MU1TajZuN1RwZHRnUDA1cFNaejlVRW10amxHQ0hGMm1SNmlyc2V0ZytLYWdv?=
 =?utf-8?B?cUdRbWhwT0c3dUxEK2RMcUg2cnZHKzIyVHFOUjRZMGZTalJVY2NSUmJweW5P?=
 =?utf-8?B?RnNvdENaTkxQU3U4Mlg2Q3dhRDR0dUw1bTNpeGhXaFRLTUtTVzJPcDluWDFF?=
 =?utf-8?B?ZFZ0MHpjM0ttem55V2VFdUxIdldBK2NnSG9xWW8rTzkrWXpsYnFNWlhiSHhu?=
 =?utf-8?B?cys3QmZmcVoyRjlGWXZUZC9QOFhPSUlxMHRjYkxuUkNCQ0ZlbGJnRUhham9G?=
 =?utf-8?B?SjNNeDdJOStINnNQbTkwT0kyQVpzd0NzYzJxMnREUGFZb3RZOEpMTXNkYW0r?=
 =?utf-8?B?eFJNUzQ5bmFWN2ljWFFSVEg3ejVRR2tLTXp1bXhxYXkvcm1JZWk2dWM3d1Ju?=
 =?utf-8?B?MkhMSnFMRGZNNG9TbHNreWlLd2REMDBhK004VlY4MmVyVkRsbjQ5WGU0enow?=
 =?utf-8?B?aFJRUVVnMTdVVjFhTjVVSHVTakYwK0ZROStzMGRXMnlSdkk3dWRoWXJnQjJ4?=
 =?utf-8?B?SnVJUG1iK3R1dW5tTHVGQWcxZUttNE9hK3F3M09pcHd2MXBvWUF2TXVjRm1X?=
 =?utf-8?B?cXE3L05Nb3ptSTNJUEVCWFdaTEUyK2hjcDVRdTFmMjR2bVM4NklXV0VxZk84?=
 =?utf-8?B?ZFRIT0xqeUJTU2ZGVmhVUitNN3diWk1wYlFNTU01SkZaRzJyVUNYc3ViNVo1?=
 =?utf-8?B?TlZpZm91NUN3R3RJMEdOcnpEM01lWEd0eDZ4M2hZekUxamE1TEhkOGFRWXps?=
 =?utf-8?B?K0VYRUxNTC9ocGF6ZDVtVENOUzhjMEpjWjdhaUNUQ1NibzhubEg2bG9LRkxq?=
 =?utf-8?B?Vzh0c0NRZlBLckJxSE4xSC9uZWNQaHRHMVpqQndMcDZkNjFiaWFOVDRPRjhN?=
 =?utf-8?B?YmlqclZvWnR6TmI1MEJDa2dUQnp5QWtCVHQ1amtVdHl0T1RwbGlGZjkxNXhm?=
 =?utf-8?B?UmlTWFkwbWoyOVEyQmNzSUgwMHBEYWt2WFlHNmJ3alZibkJKc3phL05yNldk?=
 =?utf-8?B?UDBCdFZkS2pSZWVpSk5MTjNwMHJQMkYrd3lkdk8yZEhaVnJjWDF2ZmM0WkNF?=
 =?utf-8?Q?khvs=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(14060799003)(376014)(36860700013)(82310400026)(35042699022)(1800799024)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 16:05:59.6330
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 780e5fb1-785b-413d-b4c3-08de2dcedb2d
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:
	DB1PEPF000509E4.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8109

SGksDQoNClBsZWFzZSBpZ25vcmUgdGhpcyBtYWlsLCBjb3ZlciBsZXR0ZXIgd2FzIHNlbnQgaW4g
ZHVwbGljYXRlIHdpdGgNCm15IHNlcmllIGFuZCB0aGlzIG9uZSBpcyBhbiBvbGQgdmVyc2lvbiBt
aXNzaW5nIHRoZSBwaXBlbGluZSBsaW5rLg0KDQpSZXN0IG9mIHRoZSBzZXJpZSBpcyBvay4NCg0K
U29ycnkgZm9yIHRoYXQuDQoNCkJlcnRyYW5kDQoNCj4gT24gMjcgTm92IDIwMjUsIGF0IDE2OjUx
LCBCZXJ0cmFuZCBNYXJxdWlzIDxiZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+IHdyb3RlOg0KPiAN
Cj4gVGhpcyBzZXJpZXMgdXBkYXRlcyBYZW7igJlzIEZGLUEgbWVkaWF0b3Igb24gQXJtIHRvIGlt
cGxlbWVudCB0aGUgRkYtQQ0KPiB2MS4yIGludGVyZmFjZSB3aGlsZSBrZWVwaW5nIGV4aXN0aW5n
IHYxLjAvdjEuMSBndWVzdHMgd29ya2luZy4NCj4gDQo+IFBhdGNoZXMgMeKAkzUgcmV3b3JrIHRo
ZSBsb3ctbGV2ZWwgcGx1bWJpbmc6DQo+IA0KPiAgMSkgYWRkIHRoZSBGRi1BIHYxLjIgZnVuY3Rp
b24gSURzIGFuZCBwcm9iZSB0aGUgbmV3IEFCSXMNCj4gIDIpIHRyYWNrIHBlci1WTSBGRkFfVkVS
U0lPTiBzdGF0ZSBhbmQgZW5mb3JjZSBuZWdvdGlhdGlvbg0KPiAgMykgaGFyZGVuIFJYL1RYIG1h
cHBpbmcgYW5kIHZhbGlkYXRpb24NCj4gIDQpIHJld29yayBTUE1DIFJYL1RYIGJ1ZmZlciBtYW5h
Z2VtZW50IHNvIGFjY2VzcyBpcyBzZXJpYWxpemVkIGFuZA0KPiAgICAgUlggYnVmZmVycyBhcmUg
YWx3YXlzIHJlbGVhc2VkIGJhY2sgdG8gdGhlIFNQTUMNCj4gIDUpIHN3aXRjaCB0aGUgbWVkaWF0
b3IgdG8gc3BlYy1jb21wbGlhbnQgc2lnbmVkIDMyLWJpdCBzdGF0dXMgY29kZXMNCj4gDQo+IFBh
dGNoZXMgNuKAkzkgdXBkYXRlIHRoZSBkYXRhIHN0cnVjdHVyZXMgYW5kIGRpcmVjdC1jYWxsIHBh
dGhzOg0KPiANCj4gIDYpIGFkZCBmZmFfdXVpZCBoZWxwZXJzIGFuZCByZXdvcmsgcGFydGl0aW9u
LWluZm8gaGFuZGxpbmcNCj4gIDcpIHJlZmFjdG9yIGRpcmVjdCByZXF1ZXN0cyB2aWEgYSBjb21t
b24gUlVOL2RpcmVjdCBjb21wbGV0aW9uIGhlbHBlcg0KPiAgOCkgYWRkIHRoZSB2MS4xL3YxLjIg
U0VORDIgaGVhZGVyIGxheW91dA0KPiAgOSkgYWRkIE1TR19TRU5EX0RJUkVDVF9SRVEyL1JFU1Ay
IHN1cHBvcnQgYW5kIG1hcnNoYWwgdGhlIGV4dGVuZGVkDQo+ICAgICByZWdpc3RlciBzZXQgZm9y
IHYxLjIgZ3Vlc3RzDQo+IA0KPiBQYXRjaCAxMCB0aWdodGVucyB0aGUgZGlzcGF0Y2hlciBhbmQg
YWR2ZXJ0aXNlcyBGRi1BIHYxLjIgb25seSB0byBndWVzdHMNCj4gdGhhdCBuZWdvdGlhdGVkIHYx
LjI6DQo+IA0KPiAgLSByZWplY3QgU01DQ0M2NCBjYWxscyBmcm9tIEFBcmNoMzIgZ3Vlc3RzDQo+
ICAtIGV4cG9zZSB0aGUgbmV3IEZJRHMgYW5kIFJYL1RYIGNhcGFjaXR5IGZpZWxkcw0KPiAgLSBi
dW1wIFhlbidzIEZGLUEgdmVyc2lvbiB0byAxLjIgb25jZSB0aGUgaW1wbGVtZW50YXRpb24gaXMg
Y29tcGxldGUNCj4gDQo+IHYxLjAvdjEuMSBndWVzdHMgY29udGludWUgdG8gdXNlIHRoZSB2MS4x
IEFCSSB3aXRob3V0IGJlaGF2aW91ciBjaGFuZ2VzLA0KPiB3aGlsZSB2MS4yIGd1ZXN0cyBjYW4g
bmVnb3RpYXRlIHRoZSB3aWRlciBBQkkgYW5kIHVzZSBSVU4sIFNFTkQyLCBhbmQNCj4gRElSRUNU
X1JFUTIvUkVTUDIgd2l0aCB0aGUgZXh0ZW5kZWQgcmVnaXN0ZXIgc2V0Lg0KPiANCj4gVGhpcyBz
ZXJpZSB3YXMgdmFsaWRhdGVkIHRocm91Z2ggZ2l0bGFiLWNpIGhlcmU6DQo+IGh0dHBzOi8vZ2l0
bGFiLmNvbS94ZW4tcHJvamVjdC9wZW9wbGUvYm1hcnF1aXMveGVuLWZmYS1yZXNlYXJjaC8tL3Ry
ZWUvZmZhLXYxLjIvdjA/cmVmX3R5cGU9aGVhZHMNCj4gDQo+IEJlcnRyYW5kIE1hcnF1aXMgKDEw
KToNCj4gIHhlbi9hcm06IGZmYTogYWRkIEZGLUEgdjEuMiBmdW5jdGlvbiBJRHMNCj4gIHhlbi9h
cm06IGZmYTogcGVyLVZNIEZGQV9WRVJTSU9OIG5lZ290aWF0aW9uIHN0YXRlDQo+ICB4ZW4vYXJt
OiBmZmE6IGhhcmRlbiBSWC9UWCBtYXBwaW5nDQo+ICB4ZW4vYXJtOiBmZmE6IHJld29yayBTUE1D
IFJYL1RYIGJ1ZmZlciBtYW5hZ2VtZW50DQo+ICB4ZW4vYXJtOiBmZmE6IHVzZSBzaWduZWQgMzIt
Yml0IHN0YXR1cyBjb2Rlcw0KPiAgeGVuL2FybTogZmZhOiBhZGQgVVVJRCBoZWxwZXJzIGZvciBw
YXJ0aXRpb24gaW5mbw0KPiAgeGVuL2FybTogZmZhOiByZWZhY3RvciBkaXJlY3QgcmVxdWVzdHMg
dmlhIFJVTiBoZWxwZXINCj4gIHhlbi9hcm06IGZmYTogYWRkIHYxLjIgU0VORDIgaGVhZGVyIGxh
eW91dA0KPiAgeGVuL2FybTogZmZhOiBhZGQgTVNHX1NFTkRfRElSRUNUX1JFUTIgc3VwcG9ydA0K
PiAgeGVuL2FybTogZmZhOiBhZHZlcnRpc2UgRkYtQSB2MS4yDQo+IA0KPiB4ZW4vYXJjaC9hcm0v
aW5jbHVkZS9hc20vdGVlL2ZmYS5oIHwgICAyICstDQo+IHhlbi9hcmNoL2FybS90ZWUvZmZhLmMg
ICAgICAgICAgICAgfCAyMDUgKysrKysrKysrKysrKysrKystLS0tLS0tDQo+IHhlbi9hcmNoL2Fy
bS90ZWUvZmZhX21zZy5jICAgICAgICAgfCAyMDMgKysrKysrKysrKysrKysrKysrLS0tLS0NCj4g
eGVuL2FyY2gvYXJtL3RlZS9mZmFfbm90aWYuYyAgICAgICB8ICAgNiArLQ0KPiB4ZW4vYXJjaC9h
cm0vdGVlL2ZmYV9wYXJ0aW5mby5jICAgIHwgMjQ4ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0t
LS0tDQo+IHhlbi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUuaCAgICAgfCAxMjkgKysrKysrKysr
Ky0tLS0tDQo+IHhlbi9hcmNoL2FybS90ZWUvZmZhX3J4dHguYyAgICAgICAgfCAxNjAgKysrKysr
KysrKysrKysrLS0tLQ0KPiB4ZW4vYXJjaC9hcm0vdGVlL2ZmYV9zaG0uYyAgICAgICAgIHwgIDMw
ICsrLS0NCj4gOCBmaWxlcyBjaGFuZ2VkLCA2OTcgaW5zZXJ0aW9ucygrKSwgMjg2IGRlbGV0aW9u
cygtKQ0KPiANCj4gLS0gDQo+IDIuNTEuMg0KPiANCj4gDQoNCg==


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 16:25:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 16:25:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174212.1499171 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeoK-00074X-Eq; Thu, 27 Nov 2025 16:25:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174212.1499171; Thu, 27 Nov 2025 16:25:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeoK-00074Q-C8; Thu, 27 Nov 2025 16:25:36 +0000
Received: by outflank-mailman (input) for mailman id 1174212;
 Thu, 27 Nov 2025 16:25: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=BG9e=6D=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vOeoJ-00074H-FW
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 16:25:35 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b2afd8fd-cbad-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 17:25:33 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b735b89501fso132483766b.0
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 08:25:33 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64751062261sm2326689a12.33.2025.11.27.08.25.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 08:25: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: b2afd8fd-cbad-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764260733; x=1764865533; 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=YL4YJzeUbKSp/fM7Qb8cgUUaRB2L9EqJ0O+LEsNjJk0=;
        b=DYeghTcDTtoX+pWJVWCvdSLzi2I2Iq9yE92+oabkKACB9l793l72ofgaP5nDxnic+L
         Zio8NAGp3AUbtVRUUE1fgPyhai4oylNiiUTA6MV2uzdWiKDxTYSRu5Clx/9e0fmClCGZ
         St3jnlTVLhXIvRFIb7f7rwfQei8IojOOVk+t/+CMwwbdMa4QojycrbmprW86/mEpT3rU
         2PxRTVnI2a0zZ5o4VsvXEyqMO1Aho/r1AKEyePRrzRde2rVj2v5NEFXxujU7q3IrzPw5
         kqwMbkptmtoKGFxWVnpOueYvCd+y6H1+HjgrEmCyam9nEvDgxdZMnLMzI/j9PLiYkKYZ
         n/OQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764260733; x=1764865533;
        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=YL4YJzeUbKSp/fM7Qb8cgUUaRB2L9EqJ0O+LEsNjJk0=;
        b=n4xtHF8WYxYAKMccQb4z3VF0t8VW9gQcPk7c1I4i/FU70lnHX27+BzJn7FMslI//Gq
         e/2h2grc+Lr9BKPqXWofS+jcMkiatKj0jb76EqZ6oz37a/qC39b47W2V50jpJvvNC1FU
         e3UuaoefVX8u/RI8hpD9IOXv3g97ey9Qj6nw4jFSL9SzQoLiHeD2dXsVraadaAsFeFTA
         6O3Z7E3Mza0nmHbx8QbfMnO9kQT2/znF+CcMzvFJ+fyHtIHKjiadYNd39s0kiPl//Rs+
         UhqPULnHnDpEe4V44eD7dzwCtsiEP50wojjLumWyXa6JcgnSv2k7GUnt0IGUVu1EXeIx
         58Dw==
X-Forwarded-Encrypted: i=1; AJvYcCXxPWdbwSvdyYxWSqDBY1JYwXMzn6SyV0/Y5PlcPS/yKsOwfnmmK6ddwTyHKeajSvt9tnP7jluBa2I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxmnzYsRFbo+Or9YBVpX4fc7EIIcQPrSuwLNl81E/W9IR/nGVlo
	wTV9szMrHaYahOmUYf3IUA4QF6ttoa3lihhuZycVkMgD4y4uSIzqDikp
X-Gm-Gg: ASbGncu+7nDdN237asHCq8L0MAqLg1Hfz+FkTXmwKpJNvnqsc4VhRyTWncLyyXrVdd7
	83Nq1VQFX2rT95Eo3/+HHkEGAva1Evk0vO+Xb9wofYy1py3evbIZ4yQ0NWAXRYHkuw3WGUtlGLH
	CaO1s5dlO5nAZMQBWH3UoVHrbgqjmu1an+fnxkVd/SwOgGBAKQ06kBRX4xSMc/s8xMY59PUQOEo
	/L9GX8Iocxx14/k5Lv9hgEieqaaMJ6nhhgzjdx3d74tiFTQ/E1KbrMi1pAv/UP2+/l3VnxcJ4u9
	h22frC4coIOZluTKcTLaqR4DARqyAN9JnvQ0vYb4htGtLMcIIFZ6yebvbPopqy3vAhXnKbIOtOp
	t+NO4pft9bvB5HwDcTQ057kPwn/sOJWYXuqSV82k/ZX+m6QHzk72MmfSUw7kF86s+0z621zWXiq
	YbufmjIYh71H+p9BtLQ6qNXIgZdVD+Qhl2t5j3Fyx2+sBvvO+qjXftzNw1YWDpTOKsQcWA4IYMf
	Hg=
X-Google-Smtp-Source: AGHT+IG+j7q6EQ1TcULlnISzMxTGQYINabb8NmlkaNAiZXc2jmtsD9XlGdqCnwTtYAAFyv+nFgbNLw==
X-Received: by 2002:a17:907:94c1:b0:b72:de4f:cea6 with SMTP id a640c23a62f3a-b76c555e67cmr1314143966b.48.1764260732656;
        Thu, 27 Nov 2025 08:25:32 -0800 (PST)
Message-ID: <2671e43a-a9f0-42cd-8764-4274c14a86ec@gmail.com>
Date: Thu, 27 Nov 2025 17:25:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] x86/amd: Drop the cpuid_mask_* command line options
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20251126171539.890253-1-andrew.cooper3@citrix.com>
 <20251126171539.890253-4-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20251126171539.890253-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/26/25 6:15 PM, Andrew Cooper wrote:
> As noted in the command line documentation, these are both deprecated since
> Xen 4.7 (2016), and are not fully effective on AMD CPUs starting from 2011.
>
> Not realised at the time of writing the docs was that their use is also
> incompatible with certain errata workarounds which edit the CPUID MSRs after
> the levelling defaults are calculated.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
>   CHANGELOG.md                      |   4 ++

for CHANGELOG.md:

Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii



>   docs/misc/xen-command-line.pandoc |  40 ------------
>   xen/arch/x86/cpu/amd.c            | 104 ------------------------------
>   xen/arch/x86/include/asm/amd.h    |  90 --------------------------
>   4 files changed, 4 insertions(+), 234 deletions(-)
>
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index adaad5ee8923..3aaf5986231c 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -11,6 +11,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>   ### Added
>   
>   ### Removed
> + - On x86:
> +   - The cpuid_mask_* command line options for legacy AMD CPUs.  These were
> +     deprecated in Xen 4.7 and noted not to work correctly with AMD CPUs from
> +     2011 onwards.
>   
>   ## [4.21.0](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=RELEASE-4.21.0) - 2025-11-19
>   
> diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
> index 34004ce282be..e92b6d55b556 100644
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -587,46 +587,6 @@ applicable.  They can all be ignored.
>       in its positive form to override Xen's default behaviour on these systems,
>       and make the feature fully usable.
>   
> -### cpuid_mask_cpu
> -> `= fam_0f_rev_[cdefg] | fam_10_rev_[bc] | fam_11_rev_b`
> -
> -> Applicability: AMD
> -
> -If none of the other **cpuid_mask_\*** options are given, Xen has a set of
> -pre-configured masks to make the current processor appear to be
> -family/revision specified.
> -
> -See below for general information on masking.
> -
> -**Warning: This option is not fully effective on Family 15h processors or
> -later.**
> -
> -### cpuid_mask_ecx
> -### cpuid_mask_edx
> -### cpuid_mask_ext_ecx
> -### cpuid_mask_ext_edx
> -### cpuid_mask_l7s0_eax
> -### cpuid_mask_l7s0_ebx
> -### cpuid_mask_thermal_ecx
> -### cpuid_mask_xsave_eax
> -> `= <integer>`
> -
> -> Applicability: x86.  Default: `~0` (all bits set)
> -
> -The availability of these options are model specific.  Some processors don't
> -support any of them, and no processor supports all of them.  Xen will ignore
> -options on processors which are lacking support.
> -
> -These options can be used to alter the features visible via the `CPUID`
> -instruction.  Settings applied here take effect globally, including for Xen
> -and all guests.
> -
> -Note: Since Xen 4.7, it is no longer necessary to mask a host to create
> -migration safety in heterogeneous scenarios.  All necessary CPUID settings
> -should be provided in the VM configuration file.  Furthermore, it is
> -recommended not to use this option, as doing so causes an unnecessary
> -reduction of features at Xen's disposal to manage guests.
> -
>   ### cpuidle (x86)
>   > `= <boolean>`
>   
> diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
> index a32e5fa208d5..2b5aa07a4a13 100644
> --- a/xen/arch/x86/cpu/amd.c
> +++ b/xen/arch/x86/cpu/amd.c
> @@ -20,32 +20,6 @@
>   
>   #include "cpu.h"
>   
> -/*
> - * Pre-canned values for overriding the CPUID features
> - * and extended features masks.
> - *
> - * Currently supported processors:
> - *
> - * "fam_0f_rev_c"
> - * "fam_0f_rev_d"
> - * "fam_0f_rev_e"
> - * "fam_0f_rev_f"
> - * "fam_0f_rev_g"
> - * "fam_10_rev_b"
> - * "fam_10_rev_c"
> - * "fam_11_rev_b"
> - */
> -static char __initdata opt_famrev[14];
> -string_param("cpuid_mask_cpu", opt_famrev);
> -
> -static unsigned int __initdata opt_cpuid_mask_l7s0_eax = ~0u;
> -integer_param("cpuid_mask_l7s0_eax", opt_cpuid_mask_l7s0_eax);
> -static unsigned int __initdata opt_cpuid_mask_l7s0_ebx = ~0u;
> -integer_param("cpuid_mask_l7s0_ebx", opt_cpuid_mask_l7s0_ebx);
> -
> -static unsigned int __initdata opt_cpuid_mask_thermal_ecx = ~0u;
> -integer_param("cpuid_mask_thermal_ecx", opt_cpuid_mask_thermal_ecx);
> -
>   /* 1 = allow, 0 = don't allow guest creation, -1 = don't allow boot */
>   int8_t __read_mostly opt_allow_unsafe;
>   boolean_param("allow_unsafe", opt_allow_unsafe);
> @@ -114,51 +88,6 @@ static void wrmsr_amd(unsigned int msr, uint64_t val)
>   		     "d" (val >> 32), "D" (0x9c5a203a));
>   }
>   
> -static const struct cpuidmask {
> -	uint16_t fam;
> -	char rev[2];
> -	unsigned int ecx, edx, ext_ecx, ext_edx;
> -} pre_canned[] __initconst = {
> -#define CAN(fam, id, rev) { \
> -		fam, #rev, \
> -		AMD_FEATURES_##id##_REV_##rev##_ECX, \
> -		AMD_FEATURES_##id##_REV_##rev##_EDX, \
> -		AMD_EXTFEATURES_##id##_REV_##rev##_ECX, \
> -		AMD_EXTFEATURES_##id##_REV_##rev##_EDX \
> -	}
> -#define CAN_FAM(fam, rev) CAN(0x##fam, FAM##fam##h, rev)
> -#define CAN_K8(rev)       CAN(0x0f,    K8,          rev)
> -	CAN_FAM(11, B),
> -	CAN_FAM(10, C),
> -	CAN_FAM(10, B),
> -	CAN_K8(G),
> -	CAN_K8(F),
> -	CAN_K8(E),
> -	CAN_K8(D),
> -	CAN_K8(C)
> -#undef CAN
> -};
> -
> -static const struct cpuidmask *__init noinline get_cpuidmask(const char *opt)
> -{
> -	unsigned long fam;
> -	char rev;
> -	unsigned int i;
> -
> -	if (strncmp(opt, "fam_", 4))
> -		return NULL;
> -	fam = simple_strtoul(opt + 4, &opt, 16);
> -	if (strncmp(opt, "_rev_", 5) || !opt[5] || opt[6])
> -		return NULL;
> -	rev = toupper(opt[5]);
> -
> -	for (i = 0; i < ARRAY_SIZE(pre_canned); ++i)
> -		if (fam == pre_canned[i].fam && rev == *pre_canned[i].rev)
> -			return &pre_canned[i];
> -
> -	return NULL;
> -}
> -
>   /*
>    * Sets caps in expected_levelling_cap, probes for the specified mask MSR, and
>    * set caps in levelling_caps if it is found.  Processors prior to Fam 10h
> @@ -295,8 +224,6 @@ static const typeof(ctxt_switch_masking) __initconst_cf_clobber __used csm =
>    */
>   static void __init noinline amd_init_levelling(void)
>   {
> -	const struct cpuidmask *m = NULL;
> -
>   	/*
>   	 * If there's support for CpuidUserDis or CPUID faulting then
>   	 * we can skip levelling because CPUID accesses are trapped anyway.
> @@ -318,26 +245,11 @@ static void __init noinline amd_init_levelling(void)
>   
>   	probe_masking_msrs();
>   
> -	if (*opt_famrev != '\0') {
> -		m = get_cpuidmask(opt_famrev);
> -
> -		if (!m)
> -			printk("Invalid processor string: %s\n", opt_famrev);
> -	}
> -
>   	if ((levelling_caps & LCAP_1cd) == LCAP_1cd) {
>   		uint32_t ecx, edx, tmp;
>   
>   		cpuid(0x00000001, &tmp, &tmp, &ecx, &edx);
>   
> -		if (~(opt_cpuid_mask_ecx & opt_cpuid_mask_edx)) {
> -			ecx &= opt_cpuid_mask_ecx;
> -			edx &= opt_cpuid_mask_edx;
> -		} else if (m) {
> -			ecx &= m->ecx;
> -			edx &= m->edx;
> -		}
> -
>   		/* Fast-forward bits - Must be set. */
>   		if (ecx & cpufeat_mask(X86_FEATURE_XSAVE))
>   			ecx |= cpufeat_mask(X86_FEATURE_OSXSAVE);
> @@ -351,14 +263,6 @@ static void __init noinline amd_init_levelling(void)
>   
>   		cpuid(0x80000001, &tmp, &tmp, &ecx, &edx);
>   
> -		if (~(opt_cpuid_mask_ext_ecx & opt_cpuid_mask_ext_edx)) {
> -			ecx &= opt_cpuid_mask_ext_ecx;
> -			edx &= opt_cpuid_mask_ext_edx;
> -		} else if (m) {
> -			ecx &= m->ext_ecx;
> -			edx &= m->ext_edx;
> -		}
> -
>   		/* Fast-forward bits - Must be set. */
>   		edx |= cpufeat_mask(X86_FEATURE_APIC);
>   
> @@ -370,20 +274,12 @@ static void __init noinline amd_init_levelling(void)
>   
>   		cpuid(0x00000007, &eax, &ebx, &tmp, &tmp);
>   
> -		if (~(opt_cpuid_mask_l7s0_eax & opt_cpuid_mask_l7s0_ebx)) {
> -			eax &= opt_cpuid_mask_l7s0_eax;
> -			ebx &= opt_cpuid_mask_l7s0_ebx;
> -		}
> -
>   		cpuidmask_defaults._7ab0 &= ((uint64_t)eax << 32) | ebx;
>   	}
>   
>   	if ((levelling_caps & LCAP_6c) == LCAP_6c) {
>   		uint32_t ecx = cpuid_ecx(6);
>   
> -		if (~opt_cpuid_mask_thermal_ecx)
> -			ecx &= opt_cpuid_mask_thermal_ecx;
> -
>   		cpuidmask_defaults._6c &= (~0ULL << 32) | ecx;
>   	}
>   
> diff --git a/xen/arch/x86/include/asm/amd.h b/xen/arch/x86/include/asm/amd.h
> index 72df42a6f6c9..4036dd549835 100644
> --- a/xen/arch/x86/include/asm/amd.h
> +++ b/xen/arch/x86/include/asm/amd.h
> @@ -7,96 +7,6 @@
>   
>   #include <asm/cpufeature.h>
>   
> -/* CPUID masked for use by AMD-V Extended Migration */
> -
> -/* Family 0Fh, Revision C */
> -#define AMD_FEATURES_K8_REV_C_ECX  0
> -#define AMD_FEATURES_K8_REV_C_EDX (					     \
> -	cpufeat_mask(X86_FEATURE_FPU)   | cpufeat_mask(X86_FEATURE_VME)    | \
> -	cpufeat_mask(X86_FEATURE_DE)    | cpufeat_mask(X86_FEATURE_PSE)    | \
> -	cpufeat_mask(X86_FEATURE_TSC)   | cpufeat_mask(X86_FEATURE_MSR)    | \
> -	cpufeat_mask(X86_FEATURE_PAE)   | cpufeat_mask(X86_FEATURE_MCE)    | \
> -	cpufeat_mask(X86_FEATURE_CX8)   | cpufeat_mask(X86_FEATURE_APIC)   | \
> -	cpufeat_mask(X86_FEATURE_SEP)   | cpufeat_mask(X86_FEATURE_MTRR)   | \
> -	cpufeat_mask(X86_FEATURE_PGE)   | cpufeat_mask(X86_FEATURE_MCA)    | \
> -	cpufeat_mask(X86_FEATURE_CMOV)  | cpufeat_mask(X86_FEATURE_PAT)    | \
> -	cpufeat_mask(X86_FEATURE_PSE36) | cpufeat_mask(X86_FEATURE_CLFLUSH)| \
> -	cpufeat_mask(X86_FEATURE_MMX)   | cpufeat_mask(X86_FEATURE_FXSR)   | \
> -	cpufeat_mask(X86_FEATURE_SSE)   | cpufeat_mask(X86_FEATURE_SSE2))
> -#define AMD_EXTFEATURES_K8_REV_C_ECX  0
> -#define AMD_EXTFEATURES_K8_REV_C_EDX  (					       \
> -	cpufeat_mask(X86_FEATURE_FPU)	   | cpufeat_mask(X86_FEATURE_VME)   | \
> -	cpufeat_mask(X86_FEATURE_DE)	   | cpufeat_mask(X86_FEATURE_PSE)   | \
> -	cpufeat_mask(X86_FEATURE_TSC)	   | cpufeat_mask(X86_FEATURE_MSR)   | \
> -	cpufeat_mask(X86_FEATURE_PAE)	   | cpufeat_mask(X86_FEATURE_MCE)   | \
> -	cpufeat_mask(X86_FEATURE_CX8)	   | cpufeat_mask(X86_FEATURE_APIC)  | \
> -	cpufeat_mask(X86_FEATURE_SYSCALL)  | cpufeat_mask(X86_FEATURE_MTRR)  | \
> -	cpufeat_mask(X86_FEATURE_PGE)	   | cpufeat_mask(X86_FEATURE_MCA)   | \
> -	cpufeat_mask(X86_FEATURE_CMOV)	   | cpufeat_mask(X86_FEATURE_PAT)   | \
> -	cpufeat_mask(X86_FEATURE_PSE36)	   | cpufeat_mask(X86_FEATURE_NX)    | \
> -	cpufeat_mask(X86_FEATURE_MMXEXT)   | cpufeat_mask(X86_FEATURE_MMX)   | \
> -	cpufeat_mask(X86_FEATURE_FXSR)	   | cpufeat_mask(X86_FEATURE_LM)    | \
> -	cpufeat_mask(X86_FEATURE_3DNOWEXT) | cpufeat_mask(X86_FEATURE_3DNOW))
> -
> -/* Family 0Fh, Revision D */
> -#define AMD_FEATURES_K8_REV_D_ECX         AMD_FEATURES_K8_REV_C_ECX
> -#define AMD_FEATURES_K8_REV_D_EDX         AMD_FEATURES_K8_REV_C_EDX
> -#define AMD_EXTFEATURES_K8_REV_D_ECX     (AMD_EXTFEATURES_K8_REV_C_ECX |\
> -	cpufeat_mask(X86_FEATURE_LAHF_LM))
> -#define AMD_EXTFEATURES_K8_REV_D_EDX     (AMD_EXTFEATURES_K8_REV_C_EDX |\
> -	cpufeat_mask(X86_FEATURE_FFXSR))
> -
> -/* Family 0Fh, Revision E */
> -#define AMD_FEATURES_K8_REV_E_ECX        (AMD_FEATURES_K8_REV_D_ECX |	\
> -	cpufeat_mask(X86_FEATURE_SSE3))
> -#define AMD_FEATURES_K8_REV_E_EDX        (AMD_FEATURES_K8_REV_D_EDX | 	\
> -	cpufeat_mask(X86_FEATURE_HTT))
> -#define AMD_EXTFEATURES_K8_REV_E_ECX     (AMD_EXTFEATURES_K8_REV_D_ECX |\
> -	cpufeat_mask(X86_FEATURE_CMP_LEGACY))
> -#define AMD_EXTFEATURES_K8_REV_E_EDX      AMD_EXTFEATURES_K8_REV_D_EDX
> -
> -/* Family 0Fh, Revision F */
> -#define AMD_FEATURES_K8_REV_F_ECX        (AMD_FEATURES_K8_REV_E_ECX | 	\
> -	cpufeat_mask(X86_FEATURE_CX16))
> -#define AMD_FEATURES_K8_REV_F_EDX         AMD_FEATURES_K8_REV_E_EDX
> -#define AMD_EXTFEATURES_K8_REV_F_ECX     (AMD_EXTFEATURES_K8_REV_E_ECX |\
> -	cpufeat_mask(X86_FEATURE_SVM) | cpufeat_mask(X86_FEATURE_EXTAPIC) | \
> -	cpufeat_mask(X86_FEATURE_CR8_LEGACY))
> -#define AMD_EXTFEATURES_K8_REV_F_EDX     (AMD_EXTFEATURES_K8_REV_E_EDX |\
> -	cpufeat_mask(X86_FEATURE_RDTSCP))
> -
> -/* Family 0Fh, Revision G */
> -#define AMD_FEATURES_K8_REV_G_ECX         AMD_FEATURES_K8_REV_F_ECX
> -#define AMD_FEATURES_K8_REV_G_EDX         AMD_FEATURES_K8_REV_F_EDX
> -#define AMD_EXTFEATURES_K8_REV_G_ECX     (AMD_EXTFEATURES_K8_REV_F_ECX |\
> -	cpufeat_mask(X86_FEATURE_3DNOWPREFETCH))
> -#define AMD_EXTFEATURES_K8_REV_G_EDX      AMD_EXTFEATURES_K8_REV_F_EDX
> -
> -/* Family 10h, Revision B */
> -#define AMD_FEATURES_FAM10h_REV_B_ECX    (AMD_FEATURES_K8_REV_F_ECX | 	\
> -	cpufeat_mask(X86_FEATURE_POPCNT) | cpufeat_mask(X86_FEATURE_MONITOR))
> -#define AMD_FEATURES_FAM10h_REV_B_EDX     AMD_FEATURES_K8_REV_F_EDX
> -#define AMD_EXTFEATURES_FAM10h_REV_B_ECX (AMD_EXTFEATURES_K8_REV_F_ECX |\
> -	cpufeat_mask(X86_FEATURE_ABM) | cpufeat_mask(X86_FEATURE_SSE4A) | \
> -	cpufeat_mask(X86_FEATURE_MISALIGNSSE) | cpufeat_mask(X86_FEATURE_OSVW) |\
> -	cpufeat_mask(X86_FEATURE_IBS))
> -#define AMD_EXTFEATURES_FAM10h_REV_B_EDX (AMD_EXTFEATURES_K8_REV_F_EDX |\
> -	cpufeat_mask(X86_FEATURE_PAGE1GB))
> -
> -/* Family 10h, Revision C */
> -#define AMD_FEATURES_FAM10h_REV_C_ECX     AMD_FEATURES_FAM10h_REV_B_ECX
> -#define AMD_FEATURES_FAM10h_REV_C_EDX     AMD_FEATURES_FAM10h_REV_B_EDX
> -#define AMD_EXTFEATURES_FAM10h_REV_C_ECX (AMD_EXTFEATURES_FAM10h_REV_B_ECX |\
> -	cpufeat_mask(X86_FEATURE_SKINIT) | cpufeat_mask(X86_FEATURE_WDT))
> -#define AMD_EXTFEATURES_FAM10h_REV_C_EDX  AMD_EXTFEATURES_FAM10h_REV_B_EDX
> -
> -/* Family 11h, Revision B */
> -#define AMD_FEATURES_FAM11h_REV_B_ECX     AMD_FEATURES_K8_REV_G_ECX
> -#define AMD_FEATURES_FAM11h_REV_B_EDX     AMD_FEATURES_K8_REV_G_EDX
> -#define AMD_EXTFEATURES_FAM11h_REV_B_ECX (AMD_EXTFEATURES_K8_REV_G_ECX |\
> -	cpufeat_mask(X86_FEATURE_SKINIT))
> -#define AMD_EXTFEATURES_FAM11h_REV_B_EDX  AMD_EXTFEATURES_K8_REV_G_EDX
> -
>   /* AMD errata checking
>    *
>    * Errata are defined using the AMD_LEGACY_ERRATUM() or AMD_OSVW_ERRATUM()


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 16:26:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 16:26:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174221.1499181 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOeoy-0007ZI-MU; Thu, 27 Nov 2025 16:26:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174221.1499181; Thu, 27 Nov 2025 16:26: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 1vOeoy-0007ZB-Jo; Thu, 27 Nov 2025 16:26:16 +0000
Received: by outflank-mailman (input) for mailman id 1174221;
 Thu, 27 Nov 2025 16:26: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=BG9e=6D=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vOeox-0007Yx-O0
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 16:26:15 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id caf355f5-cbad-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 17:26:14 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-64074f01a6eso1935826a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 08:26:14 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b76f59aed2esm200287966b.42.2025.11.27.08.26.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 27 Nov 2025 08:26: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: caf355f5-cbad-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764260774; x=1764865574; 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=/UIbt55aKHwY/AfOsK7AJoYny1T+sEH4KAoXf2wbYSo=;
        b=IsuVgxoBoBQrPSzx7yblE/TCTexw3yhFORvpZZ0axXPgI4S6b86whV+/0+5KFuY8Xc
         iAbjwagKlqdSon/zy2AWgnlDFqZWQjq6EbBSYNN4Flcdk3eesSnq+XAFwKn4WxxqHiXB
         g+Uw9aHBY0I27KqudhEl7MsEqDUWOAqUiSNe3B/lQMHp0Aa/62tJJZqhgLzGlkH8f8OX
         Mv26V02xt4PHddsgQiO8sWRs3I0EkycwtNZ5y5qr03/ii2jJdvIXoShQhvpxA2EGaRep
         h+XzCljj3rIlac1TRMcWJNams29Ia9hZrWef0EnhBejIn5dgX3wusA9QUWDMlxHsl6U5
         Bf4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764260774; x=1764865574;
        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=/UIbt55aKHwY/AfOsK7AJoYny1T+sEH4KAoXf2wbYSo=;
        b=COjqA+HTPCEc10RaD9iMEKI4uz7mjEXocj4UdNp5mtC1GQhW1DOCXZh59WAiJ8PFp/
         9Jeh5E/rQ0nXZarRIp3sBmWLfrmAf9iCT2aehpnacvpDCunX4yPXeI5szl++Lbd7bhFr
         ZShkg8VeoN8Wjsy3Mhy8i5DS+cbCApBejI46Agv+7Zy9mQ0PMZtbx/nhDUZeed4xMDhn
         SDJJ76M7PtZPHqKOK47Y2UeWnfyeHvX5Bn9XZfhJj2buYX69/RZMyi4fRWxsS751NAYz
         2+J7nNylQw8D11ADVWR9rasccHvmDqg0i+ywOmIXmL2+wEw9Fl4PT9+ai84P5krU0ynl
         hjlg==
X-Gm-Message-State: AOJu0YxssqKMgIWy8dHiWC1TdAxSMvJNVn36Bk7guZ9VAthiC8dSJYVO
	/B7bDyBbDN3jyDZWDHY/SEckR9LQXTqYDIle+DX0ZkxvLrHEIRkT5J4TJSrhfJkD
X-Gm-Gg: ASbGncs5rPwxHIx58df1Z1GrJ8sCuyFDLOcSVs63YQvfka3qYzPoFy6eSm7zsVYWQHn
	sQa8IoZzYMebktSe67xmtIway1pVxhv9glrGkHzPetWbpi3emOC+jNg48TRp8m2GryAMg91W0DG
	C7b+zuG1Fxxxl2Q1RPK3gwngmi604G4SXWrQ1UuZPSV0vDpLNGuDlCpeGcdQVhebxSjrzh93Yz7
	W0jIuJbpNXgRA2X00pxN0LCQVQWwJBWKW1SUabf8rK7aX+6kfEOOGoPvqQpt7eQ3EVD7w3+vOMh
	loFIZShSzWDB18O19bZaGuorrzq015YUzO72CEGJEdCHd+81BdZVcpWvcVVI0PlMmV6dyvjkyC1
	G2DPdoTR1mNZKA+DfHBatM3Ne/Ir/w/JLjxU09t0YHn1dOP3V2URWyKqfDpg2iala15cMvAQaWr
	39WD2wy7vgzN2ajJfmAU+KlI58YGHPJK8ZZ+2rj5cHX98AQ6/UwLbLFMdm3Kw2SKM6OA==
X-Google-Smtp-Source: AGHT+IHc/ChIK1CfPvdw6qr+IGe1QslpiwcagJaMPHmv3ukTJvGZ2AhSKSLqMSY80jUi5wktrPJIGA==
X-Received: by 2002:a17:907:7212:b0:b73:8bd4:8fa with SMTP id a640c23a62f3a-b7671688896mr2470673066b.3.1764260773341;
        Thu, 27 Nov 2025 08:26:13 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v3] xen/domain: introduce generic functions for domain struct allocation and freeing
Date: Thu, 27 Nov 2025 17:26:05 +0100
Message-ID: <0a66c71356e8d6ea788022438d7a73dbff8aa5b9.1764243466.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

From: Roger Pau Monne <roger.pau@citrix.com>

Move x86's free_domain_struct() to common code since it is shared between
architectures.

Move the x86 version of alloc_domain_struct() to common code as most of the
logic is architecture-independent. To handle the remaining architectural
differences, introduce arch_domain_struct_memflags() for x86-specific
allocation requirements.

No functional change.

Suggested-by: Jan Beulich <jbeulich@suse.com>
[Introduce an arch-specific function instead of using a weak function]
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v3:
 - s/arch_alloc_domain_struct_bits/arch_domain_struct_memflags.
 - Make x86's arch_domain_struct_memflags() to return MEMF_bits(bits) instead
   of bits.
 - Move "#define arch_domain_struct_memflags arch_domain_struct_memflags"
   and declaration of arch_domain_struct_memflags() from x86/asm/pv/domain.h
   to x86/domain.h.
 - Update alloc_domain_struct() to work with arch_domain_struct_memflags().
 - s/Suggested-By/Suggested-by.
 - CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2182821111
---
Changes in v2:
- Introduce an arch-specific function to handle differences between arch-es
  in domain structure allocation requirements, instead of relying on a weak
  function.
- Move free_domain_struct() to common code.
- Add Suggested-by: Jan Beulich <jbeulich@suse.com>.
- Update the commit message.
- Link to original patch:
  https://lore.kernel.org/xen-devel/c08595dd7940b44a1392e16d4a2035b95b5c580b.1749829230.git.oleksii.kurochko@gmail.com/
---
 xen/arch/arm/domain.c             | 17 -----------------
 xen/arch/ppc/stubs.c              | 10 ----------
 xen/arch/riscv/stubs.c            | 10 ----------
 xen/arch/x86/domain.c             | 15 ++-------------
 xen/arch/x86/include/asm/domain.h |  3 +++
 xen/common/domain.c               | 22 ++++++++++++++++++++++
 6 files changed, 27 insertions(+), 50 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index ab78444335..3e3a1fb9f5 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -480,23 +480,6 @@ void startup_cpu_idle_loop(void)
     reset_stack_and_jump(idle_loop);
 }
 
-struct domain *alloc_domain_struct(void)
-{
-    struct domain *d;
-    BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
-    d = alloc_xenheap_pages(0, 0);
-    if ( d == NULL )
-        return NULL;
-
-    clear_page(d);
-    return d;
-}
-
-void free_domain_struct(struct domain *d)
-{
-    free_xenheap_page(d);
-}
-
 void dump_pageframe_info(struct domain *d)
 {
 
diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index 75ebcae5e2..9953ea1c6c 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -147,11 +147,6 @@ void startup_cpu_idle_loop(void)
     BUG_ON("unimplemented");
 }
 
-void free_domain_struct(struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
 void dump_pageframe_info(struct domain *d)
 {
     BUG_ON("unimplemented");
@@ -269,11 +264,6 @@ void vcpu_kick(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-struct domain *alloc_domain_struct(void)
-{
-    BUG_ON("unimplemented");
-}
-
 struct vcpu *alloc_vcpu_struct(const struct domain *d)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 340ed3cd6c..fe7d85ee1d 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -121,11 +121,6 @@ void startup_cpu_idle_loop(void)
     BUG_ON("unimplemented");
 }
 
-void free_domain_struct(struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
 void dump_pageframe_info(struct domain *d)
 {
     BUG_ON("unimplemented");
@@ -243,11 +238,6 @@ void vcpu_kick(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-struct domain *alloc_domain_struct(void)
-{
-    BUG_ON("unimplemented");
-}
-
 struct vcpu *alloc_vcpu_struct(const struct domain *d)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 3a21e035f4..42643c8813 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -463,10 +463,8 @@ void domain_cpu_policy_changed(struct domain *d)
     }
 }
 
-struct domain *alloc_domain_struct(void)
+unsigned int arch_domain_struct_memflags(void)
 {
-    struct domain *d;
-
     /*
      * Without CONFIG_BIGMEM, we pack the PDX of the domain structure into
      * a 32-bit field within the page_info structure. Hence the MEMF_bits()
@@ -492,16 +490,7 @@ struct domain *alloc_domain_struct(void)
                 - 1;
 #endif
 
-    BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
-    d = alloc_xenheap_pages(0, MEMF_bits(bits));
-    if ( d != NULL )
-        clear_page(d);
-    return d;
-}
-
-void free_domain_struct(struct domain *d)
-{
-    free_xenheap_page(d);
+    return MEMF_bits(bits);
 }
 
 struct vcpu *alloc_vcpu_struct(const struct domain *d)
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index 5df8c78253..386ec61745 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -12,6 +12,9 @@
 #include <public/vcpu.h>
 #include <public/hvm/hvm_info_table.h>
 
+unsigned int arch_domain_struct_memflags(void);
+#define arch_domain_struct_memflags arch_domain_struct_memflags
+
 #define has_32bit_shinfo(d)    ((d)->arch.has_32bit_shinfo)
 
 /*
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 3b6e9471c4..2e8d74cbd9 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -799,6 +799,28 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
     return arch_sanitise_domain_config(config);
 }
 
+struct domain *alloc_domain_struct(void)
+{
+#ifndef arch_domain_struct_memflags
+# define arch_domain_struct_memflags() 0
+#endif
+
+    struct domain *d;
+
+    BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
+
+    d = alloc_xenheap_pages(0, arch_domain_struct_memflags());
+    if ( d != NULL )
+        clear_page(d);
+
+    return d;
+}
+
+void free_domain_struct(struct domain *d)
+{
+    free_xenheap_page(d);
+}
+
 struct domain *domain_create(domid_t domid,
                              struct xen_domctl_createdomain *config,
                              unsigned int flags)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 16:26:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 16:26:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174223.1499192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOepC-0007uD-UM; Thu, 27 Nov 2025 16:26:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174223.1499192; Thu, 27 Nov 2025 16: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 1vOepC-0007u6-RL; Thu, 27 Nov 2025 16:26:30 +0000
Received: by outflank-mailman (input) for mailman id 1174223;
 Thu, 27 Nov 2025 16: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=BG9e=6D=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vOepB-0007Yx-Mm
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 16:26:29 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d3b73e3a-cbad-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 17:26:29 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b713c7096f9so163529866b.3
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 08:26:29 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b76f59e8936sm195126666b.48.2025.11.27.08.26.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 27 Nov 2025 08:26: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: d3b73e3a-cbad-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764260788; x=1764865588; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SDTI5SjlxWLK35k4ON2EstoAV+lLSlfaDyeVS41KSEE=;
        b=HX+a6eLVHTbqEJ6PzchhPi6F489QE8CujB0d/8/bBdHRDW6Q6TP7bVJ2A+RwgOG3Uf
         f+R7Ynvy8yd4Yxg9DYDkvgGioXChI5ywjECMffKF3vocuwcQ+ntLeWiLHKQHlBDILD7t
         EVrZjHgjna1eyGiOEjnySHOePkb4lVKzOcJgDTyUj3sWLIeEn9/KHAyeU9Nyn88GYR6H
         Xzd2+OY6Of0uy9Q9wqBDdhK4jHcAxwRKBKGE1dBfjGVdeoDg9UxE3Wb+K/86/HN9dbyu
         LEAkom0CF13mNWm7RqvXHw5T2H/1JdCuedbUrs2U2YtY5gSZljY3aI5o0RddQ4mEjH7G
         gZuA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764260788; x=1764865588;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=SDTI5SjlxWLK35k4ON2EstoAV+lLSlfaDyeVS41KSEE=;
        b=NpV2WdpIS6Xbwr5kKnnxRnznOyQIGGW1MsWJeqWj4OAj9pRwz05o4+uAPtSchCWmtF
         LZq13IpERHKOBcHIGKpfElMQ1vav9QAxpS7xO+XT2GaGvCDSkBShpSTPHLxoTCi49yST
         C+dgZEb3FnSQeXbwTl9pZ1ZtP/B8psRVS+UFvxybWiWT8xqdWqLf4SKvNfVfoEtlKOma
         hOFGvQi/yBXKJWazthopcX7Ecmco0orvl5+94DRRoCIR0A9TO1ZPiI0NZXKlB7kdBKF4
         22NDmmFhvw46bWkEfanDatelWSRBjDhVPitjWLSZScJ3KBZX8zfv/9/H5LOv6q1+xHDr
         QsKQ==
X-Gm-Message-State: AOJu0YxPhDIxu+B+FDQZUQulmtADE17ZtGAQ/B9aEAVl7Zp8yIp2s7fQ
	XbkXW3IpYk6b4V3tXfeyj5XVZnOd8OR6jVPYPwY72G/0nzK6HmW5OJ5BKJ6pJCA5
X-Gm-Gg: ASbGnctrywV3iNzpIV1GC0DrMRt90RYNh6Esast5AgWEI9cC0rxXMUr5Ua3Axc8Az14
	kuDUrGopBrWWAA+c/y8UlDYXt07DQhv1yeS3N/9Ie37WYPyujTgHAMvWHj4QjNBzPWL35qmYtS6
	4ieGFNerg6DRI4Tu3CjzYAHKRUWF/AvncMKKG3LvuOPW7eQwJVNbk2UPZH3j1CPBWJOEoiQ8a4l
	n/aLMDk0Ex5rM+fj0HKkddHOEHQEEEufMH0wUrFYbXWFtnWGVM14Q1+zyZAh0km2myqoZGZ1iqI
	hEIPG9mx0lXQG0f/c4DT/RLt1pZWqov8QpsLVXkmLmrE6tEM8xdMS1ngmj7mtzwG5swCx4oE7Wi
	AHlZxDD/PWO5ulkGuvNaw4DSYdFicYOpLDr2XqZRpaQjg9HtcmK1GtyHDFQJXzmTxU+vj1II/C6
	84Or57ssHNxo1GU4Je1Z+WT2qgsKxpCsQo5HVWJuXscTOt6JxxXZv+ZqQ=
X-Google-Smtp-Source: AGHT+IHHNpjHScXYYQDy405I4Mb3pQo0I2miUu/PU0mTesLy/0CzocXa3t7WQC+stMJPxe8T6c8Y+Q==
X-Received: by 2002:a17:907:f495:b0:b6d:6d66:e8e9 with SMTP id a640c23a62f3a-b7671a494d7mr2307636566b.61.1764260788178;
        Thu, 27 Nov 2025 08:26:28 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 1/2] xen/dom0less: move make_chosen_node() to common code
Date: Thu, 27 Nov 2025 17:26:15 +0100
Message-ID: <84178652f3cd60303ac1e81f36f852bc685e0ba4.1764260246.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1764260246.git.oleksii.kurochko@gmail.com>
References: <cover.1764260246.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The current implementation of make_chosen_node() does not contain any
architecture-specific logic. Therefore, move it from arch-specific
files to common code.

At this stage, there is no need to introduce an arch_make_chosen_node(),
as no architecture-specific customization is required.

This change avoids duplication and simplifies future maintenance for
architectures like RISC-V and ARM.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Rebase the patch on top of current staging:
   s/struct bootmodule/struct boot_module
   s/kinfo->cmdline/kinfo->bd.cmdline
   s/kinfo->initrd_bootmodule/kinfo->bd.initrd
 - Update the comment above make_chosen_node:
   ... on ACPI systems (on platform where CONFIG_ACPI=y) ...
 - Move make_chosen_node() to common/domain-build.c as it could be used
   not only for dom0less.
 - Based on the previous review it should be added:
     Reviewed-by: Michal Orzel <michal.orzel@amd.com
   but I decided not to add it as I've changed a place where make_chosen_node()
   leaves.
 - Link to v1:
   https://lore.kernel.org/xen-devel/9c87738225d48bd1ee9bba6e8d4e018dfecabccd.1747145897.git.oleksii.kurochko@gmail.com/
---
 xen/arch/arm/domain_build.c           | 46 ---------------------------
 xen/common/device-tree/domain-build.c | 46 +++++++++++++++++++++++++++
 2 files changed, 46 insertions(+), 46 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index fb8fbb1650..6d1c9583b1 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1510,52 +1510,6 @@ int __init make_timer_node(const struct kernel_info *kinfo)
     return res;
 }
 
-/*
- * This function is used as part of the device tree generation for Dom0
- * on ACPI systems, and DomUs started directly from Xen based on device
- * tree information.
- */
-int __init make_chosen_node(const struct kernel_info *kinfo)
-{
-    int res;
-    const char *bootargs = NULL;
-    const struct boot_module *initrd = kinfo->bd.initrd;
-    void *fdt = kinfo->fdt;
-
-    dt_dprintk("Create chosen node\n");
-    res = fdt_begin_node(fdt, "chosen");
-    if ( res )
-        return res;
-
-    if ( kinfo->bd.cmdline && kinfo->bd.cmdline[0] )
-    {
-        bootargs = &kinfo->bd.cmdline[0];
-        res = fdt_property(fdt, "bootargs", bootargs, strlen(bootargs) + 1);
-        if ( res )
-           return res;
-    }
-
-    /*
-     * If the bootloader provides an initrd, we must create a placeholder
-     * for the initrd properties. The values will be replaced later.
-     */
-    if ( initrd && initrd->size )
-    {
-        u64 a = 0;
-        res = fdt_property(kinfo->fdt, "linux,initrd-start", &a, sizeof(a));
-        if ( res )
-            return res;
-
-        res = fdt_property(kinfo->fdt, "linux,initrd-end", &a, sizeof(a));
-        if ( res )
-            return res;
-    }
-
-    res = fdt_end_node(fdt);
-
-    return res;
-}
-
 static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
                               struct dt_device_node *node,
                               p2m_type_t p2mt)
diff --git a/xen/common/device-tree/domain-build.c b/xen/common/device-tree/domain-build.c
index 95b383e00f..774790aab3 100644
--- a/xen/common/device-tree/domain-build.c
+++ b/xen/common/device-tree/domain-build.c
@@ -405,6 +405,52 @@ void __init initrd_load(struct kernel_info *kinfo,
     iounmap(initrd);
 }
 
+/*
+ * This function is used as part of the device tree generation for Dom0
+ * on ACPI systems (on platform where CONFIG_ACPI=y), and DomUs started
+ * directly from Xen based on device tree information.
+ */
+int __init make_chosen_node(const struct kernel_info *kinfo)
+{
+    int res;
+    const char *bootargs = NULL;
+    const struct boot_module *initrd = kinfo->bd.initrd;
+    void *fdt = kinfo->fdt;
+
+    dt_dprintk("Create chosen node\n");
+    res = fdt_begin_node(fdt, "chosen");
+    if ( res )
+        return res;
+
+    if ( kinfo->bd.cmdline && kinfo->bd.cmdline[0] )
+    {
+        bootargs = &kinfo->bd.cmdline[0];
+        res = fdt_property(fdt, "bootargs", bootargs, strlen(bootargs) + 1);
+        if ( res )
+           return res;
+    }
+
+    /*
+     * If the bootloader provides an initrd, we must create a placeholder
+     * for the initrd properties. The values will be replaced later.
+     */
+    if ( initrd && initrd->size )
+    {
+        u64 a = 0;
+        res = fdt_property(kinfo->fdt, "linux,initrd-start", &a, sizeof(a));
+        if ( res )
+            return res;
+
+        res = fdt_property(kinfo->fdt, "linux,initrd-end", &a, sizeof(a));
+        if ( res )
+            return res;
+    }
+
+    res = fdt_end_node(fdt);
+
+    return res;
+}
+
 /*
  * Local variables:
  * mode: C
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 16:26:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 16:26:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174224.1499202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOepE-0008AR-A2; Thu, 27 Nov 2025 16:26:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174224.1499202; Thu, 27 Nov 2025 16:26:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOepE-0008AG-6u; Thu, 27 Nov 2025 16:26:32 +0000
Received: by outflank-mailman (input) for mailman id 1174224;
 Thu, 27 Nov 2025 16:26: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=BG9e=6D=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vOepC-0007N0-7M
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 16:26:30 +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 d3538ed3-cbad-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 17:26:28 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b7277324204so183424366b.0
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 08:26:28 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b76f59e8936sm195126666b.48.2025.11.27.08.26.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 27 Nov 2025 08:26: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: d3538ed3-cbad-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764260788; x=1764865588; 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=cqtyeNwPXtVWZ/fMLA89rm72krJSKu8xZIn1Y/wA3U4=;
        b=BZx6ccXhaIQJ8LEeCsEFi2CvUU7k565AmjTTxKnCiGuzNS/TKJ2PUFLx9zSEnM8tAD
         6p47SxbFAwDbVqEAbUWn9hAn9jA64Pz+coE0rdE+GAHB7SyJ5dDdoOqYq9rwGyTVm7s3
         xbw3u6jfT7oiUwYNUcBTzF2kudmAsGOEcOKO//+doy7EIo0ykzZTMNARucHZBuxqLAqz
         27cCxB61njnFiTZGCx2PT9yFqFqfZntzJG6yKOESJw4EMaJBzJRpAItOXO001QsPL8Gx
         jnExtf1+lhG38L4PLaerJ63kPgr4GocP+hUo3O2FVsT+JvW82n2tY5E4W2kAQH3ZXxkx
         rU9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764260788; x=1764865588;
        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=cqtyeNwPXtVWZ/fMLA89rm72krJSKu8xZIn1Y/wA3U4=;
        b=vrt4ihnKQXO0ztsTf0QhNPY3yISkLuMApUAGXH5gACc/qk1+Ao0B1H5WMcCXwEnBDb
         LfpbQuq17LarhOvNSlD9wOLnRL5/AVj8L1EYQ9lfRCTB5VjxSC91wnW+ZwoXewOvV55s
         djncy1KENZS2XkWYcxJ9MXJOAiOQcqGt+zZQ9taKKHzNAISIywlT+IoPwXzYQAslNyPL
         JB/iywM6e3Rb59OCgnuESaqfZ3zRmdeQE9dBx/bREgXUq0dbL4/T5U7fABlLEFiUhPDa
         yCQA7YCwJEi2MroXGFTXAHzsuEkWkKmj43nTQEQXJGQ/x+XEy8isDI7bEprxYawmUIPI
         LG8A==
X-Gm-Message-State: AOJu0Yx3TjThQ1qbQqOe+mHgXAcqOxziYvn26VjBRIQBAse+6MnmAiWc
	qxrgAz9QStXSbllm15d/WhBU/fm3sAlnrpBKcfV2HQ/rhCzWMPlBEceCi4yUdFHY
X-Gm-Gg: ASbGncvNqBq354YuVTyEdbhdNOmUreZCGrNMkeI2En2PlpB80LhnF0d01q0C3Arn+4w
	V5KhIrnHADaivlVxxztTx4E4TPoS0SfxyrZyvGcFcxSKfv4JqFPDlML0RbAw3p4yWuSNxg4/mfe
	gNqRFpRdmxbkkNljlhBu5E3hggDLPGIND15YGMUbXylV08VubRa4C9y0+/HKR0ygti+xMThamhg
	6Ve8whj9l+d5jq8WWwoJMnvyNfff14aBsF+DcW819ERZwafVn6z6feV6saFXRUNGuUT+llS+6Gh
	4AU9Zy2Q2KmACUWLEfmvrHs8dva4KGUZn8+fWhz67yVCsrAOqZyy5GqXisE3ASqLZdnJ5kzohwD
	3M9DvVpn4FS7W5Mq3M8idyQXtoBhFMpy+e7/QjxeawzG5pM4BvjjlSfnF6+9h6Gt5KMFxpdNeKI
	RvdXElyL/yoUGScxJA08KDj77LiIIFv/SBxtBIYxjF+uFh1eozAUNDQppf3ofD+ylTaA==
X-Google-Smtp-Source: AGHT+IHl2HS3hU/jMXRBFPOzDbfE46Q8VbR3usbdsb1H+Aem0uHFev25SU/M4zjdrEhLqM2SyjZO8g==
X-Received: by 2002:a17:907:78a:b0:b73:5b9a:47c7 with SMTP id a640c23a62f3a-b76c555dc15mr1337266366b.51.1764260787524;
        Thu, 27 Nov 2025 08:26:27 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 0/2] common dom0less updates
Date: Thu, 27 Nov 2025 17:26:14 +0100
Message-ID: <cover.1764260246.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Move make_chosen_node() and make_memory_node() to common code.

---
Changes in V2:
 - Link to prev. patch series: https://lore.kernel.org/xen-devel/cover.1747145897.git.oleksii.kurochko@gmail.com/
 - Drop patches:
    - xen: restrict CONFIG_STATIC_MEMORY to ARM
    - xen/dom0less: refactor architecture-specific DomU construction 
   As CONFIG_STATIC_MEMORY stuff was moved to common code.
 - Add new patch which also moves make_memory_node() to common code.
 - All other changes please look at specific patch.
 - CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2183447857
---

Oleksii Kurochko (2):
  xen/dom0less: move make_chosen_node() to common code
  xen/dom0less: move make_memory_node() to common code

 xen/arch/arm/domain_build.c           | 120 -------------------------
 xen/common/device-tree/domain-build.c | 121 ++++++++++++++++++++++++++
 2 files changed, 121 insertions(+), 120 deletions(-)

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 16:26:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 16:26:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174225.1499208 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOepE-0008E6-Nf; Thu, 27 Nov 2025 16:26:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174225.1499208; Thu, 27 Nov 2025 16:26:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOepE-0008DX-FH; Thu, 27 Nov 2025 16:26:32 +0000
Received: by outflank-mailman (input) for mailman id 1174225;
 Thu, 27 Nov 2025 16: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=BG9e=6D=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vOepC-0007Yx-Mz
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 16:26:30 +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 d410c3db-cbad-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 17:26:29 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-645a13e2b17so1643403a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 08:26:29 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b76f59e8936sm195126666b.48.2025.11.27.08.26.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 27 Nov 2025 08:26: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: d410c3db-cbad-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764260789; x=1764865589; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZJO0ng5o5yyW9xuL/pTzoWvO4SGxMGvB+mY9Dx7HkYk=;
        b=H9VUKhPQ6lDgf+v++pEudFoRf1DCSOkIcQRyLVxUPnOh8te8kZyaFOeMAMsJJ1wJhg
         XleJQf/39AgB4h8u+QbkGRiRv0jDCvn3fq7BMxRSJVfu0Dr1YA4XWs2V5cS6SBS49YXd
         fNK2vUQ5DWTzXJT4rVCDCQd6ZnXB7w0Ziv+/+I3E6CEWNtIajPpyAJJ4Sq/755hHp8IO
         pK74xXX2cpA7mkou5BXBWyZgqzKA0ieK7EHx8D6/IKqfRlvgdZ0ZoS3Rr7TsGeKEdPjL
         gasNeODpGYxzX6hSuE/NaHA0YYTjRsti7RAWM6ulnmW0OvWVki9DqbeT1kps1KYOvqKA
         aa2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764260789; x=1764865589;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ZJO0ng5o5yyW9xuL/pTzoWvO4SGxMGvB+mY9Dx7HkYk=;
        b=LZN+aZuxxK+ECF8XaU+jN7HPeCHmi8ZzEINRbyg7//koUaEBT22Gnr965/p43qcmGL
         szsUcpUyev6Ev1v6JS+mT0CByrVj7sBttv3VAxtmBLjSKFqoa+GKgaWocWpYnlwdDJnC
         qu8/RmEm1fdTHj4e3g9oJb6PE+1fjKzcXxgzlooPmNHOVXWZWthiaSp1D5sD2207hc0Q
         omO7BLpPMEvbGRlQKYwNDXbC7y/g/n+v9hlVghQpqcoeHiO1kjDL26Va8Pn8sI7Su9/H
         2CGpcLaZRDbS8mfec2NanPIXWInV4ONDP2FrVHBipowpdU47E5v9p9tzJWKdUyaC2qeO
         L9IA==
X-Gm-Message-State: AOJu0Yw7tjXB9WFmO2SOiaQ5PKdylL/CZwqGs3NE+K3EtpApgfI34GGF
	AVtpNdGzdC8jVZHCMZISG/Kakp7xAuBNhL3Nqrm4kfn0dI4izB+N4YqE+E5eLOBI
X-Gm-Gg: ASbGncvVMar2Az26m7m9S6uLP9fQm5D9P6e1C1kpwI131eY1XT2Q3C/M4I+9OW4Hjxl
	Po9J5ADI4s6Q86SOQLg8aAtjXQL8TYD0dEk3+tfMxv2+XvmJcGAZlzix1n4QLU2RzDyKpc1xXJ5
	5YJCebXrKua0XuG1EntF3pfK4V8XQdAWFkj0HT543ZwsQZFJezrholwLOlehPAaXucuPK8GlTSl
	onq4VEIYRw9CgIzyXvb68qpgRHrqNT/OOQq+/0idbJvkeL+2vH/rXK3O2bCYmzMrVUd08aIbJzv
	7/Y8ha1wHO9XRJ5YgoQ0sxZxSZtKLuYKArDbk/LU+ybfFjKX+RmnWtWm99rHOTgyu8wIGJgXiZh
	jb2PFWOfRqb6PEEjFj3RIwVzzp3pEHACQCochvFl1Rxb98g2fN4u2sQPAC5RRiNDuYSnHHkMKiN
	aSYH1c+MZEKW8OIhe9/0uvbU5+xcOLB2vXxU81UEknDcEAo4ztUIGKHMk=
X-Google-Smtp-Source: AGHT+IG8DwRwNQiY0JL/nWbRuKF7SR0T0SwN+vZAP3T0clF5BO6AzbohFKQfGCTYMk7eqB5w5UbUaw==
X-Received: by 2002:a17:907:1ca8:b0:b76:4c16:6b06 with SMTP id a640c23a62f3a-b76c546d9demr1278704366b.1.1764260788814;
        Thu, 27 Nov 2025 08:26:28 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 2/2] xen/dom0less: move make_memory_node() to common code
Date: Thu, 27 Nov 2025 17:26:16 +0100
Message-ID: <dba41b3415313112a7612b5cfaf7ce0ee4a4a1ee.1764260246.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1764260246.git.oleksii.kurochko@gmail.com>
References: <cover.1764260246.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

make_memory_node() does not rely on any Arm-specific functionality and is
fully reused by RISC-V, making it a good candidate to move into common code.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - New patch
---
 xen/arch/arm/domain_build.c           | 74 --------------------------
 xen/common/device-tree/domain-build.c | 75 +++++++++++++++++++++++++++
 2 files changed, 75 insertions(+), 74 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 6d1c9583b1..986a456f17 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -646,80 +646,6 @@ static int __init fdt_property_interrupts(const struct kernel_info *kinfo,
     return res;
 }
 
-int __init make_memory_node(const struct kernel_info *kinfo, int addrcells,
-                            int sizecells, const struct membanks *mem)
-{
-    void *fdt = kinfo->fdt;
-    unsigned int i;
-    int res, reg_size = addrcells + sizecells;
-    int nr_cells = 0;
-    __be32 reg[DT_MEM_NODE_REG_RANGE_SIZE];
-    __be32 *cells;
-
-    if ( mem->nr_banks == 0 )
-        return -ENOENT;
-
-    /* find the first memory range that is reserved for device (or firmware) */
-    for ( i = 0; i < mem->nr_banks &&
-                 (mem->bank[i].type != MEMBANK_DEFAULT); i++ )
-        ;
-
-    if ( i == mem->nr_banks )
-        return 0;
-
-    dt_dprintk("Create memory node\n");
-
-    res = domain_fdt_begin_node(fdt, "memory", mem->bank[i].start);
-    if ( res )
-        return res;
-
-    res = fdt_property_string(fdt, "device_type", "memory");
-    if ( res )
-        return res;
-
-    cells = &reg[0];
-    for ( ; i < mem->nr_banks; i++ )
-    {
-        u64 start = mem->bank[i].start;
-        u64 size = mem->bank[i].size;
-
-        if ( (mem->bank[i].type == MEMBANK_STATIC_DOMAIN) ||
-             (mem->bank[i].type == MEMBANK_FDT_RESVMEM) )
-            continue;
-
-        nr_cells += reg_size;
-        BUG_ON(nr_cells >= ARRAY_SIZE(reg));
-        dt_child_set_range(&cells, addrcells, sizecells, start, size);
-    }
-
-    /*
-     * static shared memory banks need to be listed as /memory node, so when
-     * this function is handling the normal memory, add the banks.
-     */
-    if ( mem == kernel_info_get_mem_const(kinfo) )
-        shm_mem_node_fill_reg_range(kinfo, reg, &nr_cells, addrcells,
-                                    sizecells);
-
-    for ( cells = reg, i = 0; cells < reg + nr_cells; i++, cells += reg_size )
-    {
-        uint64_t start = dt_read_number(cells, addrcells);
-        uint64_t size = dt_read_number(cells + addrcells, sizecells);
-
-        dt_dprintk("  Bank %u: %#"PRIx64"->%#"PRIx64"\n",
-                   i, start, start + size);
-    }
-
-    dt_dprintk("(reg size %d, nr cells %d)\n", reg_size, nr_cells);
-
-    res = fdt_property(fdt, "reg", reg, nr_cells * sizeof(*reg));
-    if ( res )
-        return res;
-
-    res = fdt_end_node(fdt);
-
-    return res;
-}
-
 int __init add_ext_regions(unsigned long s_gfn, unsigned long e_gfn,
                            void *data)
 {
diff --git a/xen/common/device-tree/domain-build.c b/xen/common/device-tree/domain-build.c
index 774790aab3..6708c9dd66 100644
--- a/xen/common/device-tree/domain-build.c
+++ b/xen/common/device-tree/domain-build.c
@@ -8,6 +8,7 @@
 #include <xen/mm.h>
 #include <xen/sched.h>
 #include <xen/sizes.h>
+#include <xen/static-shmem.h>
 #include <xen/types.h>
 #include <xen/vmap.h>
 
@@ -451,6 +452,80 @@ int __init make_chosen_node(const struct kernel_info *kinfo)
     return res;
 }
 
+int __init make_memory_node(const struct kernel_info *kinfo, int addrcells,
+                            int sizecells, const struct membanks *mem)
+{
+    void *fdt = kinfo->fdt;
+    unsigned int i;
+    int res, reg_size = addrcells + sizecells;
+    int nr_cells = 0;
+    __be32 reg[DT_MEM_NODE_REG_RANGE_SIZE];
+    __be32 *cells;
+
+    if ( mem->nr_banks == 0 )
+        return -ENOENT;
+
+    /* find the first memory range that is reserved for device (or firmware) */
+    for ( i = 0; i < mem->nr_banks &&
+                 (mem->bank[i].type != MEMBANK_DEFAULT); i++ )
+        ;
+
+    if ( i == mem->nr_banks )
+        return 0;
+
+    dt_dprintk("Create memory node\n");
+
+    res = domain_fdt_begin_node(fdt, "memory", mem->bank[i].start);
+    if ( res )
+        return res;
+
+    res = fdt_property_string(fdt, "device_type", "memory");
+    if ( res )
+        return res;
+
+    cells = &reg[0];
+    for ( ; i < mem->nr_banks; i++ )
+    {
+        u64 start = mem->bank[i].start;
+        u64 size = mem->bank[i].size;
+
+        if ( (mem->bank[i].type == MEMBANK_STATIC_DOMAIN) ||
+             (mem->bank[i].type == MEMBANK_FDT_RESVMEM) )
+            continue;
+
+        nr_cells += reg_size;
+        BUG_ON(nr_cells >= ARRAY_SIZE(reg));
+        dt_child_set_range(&cells, addrcells, sizecells, start, size);
+    }
+
+    /*
+     * static shared memory banks need to be listed as /memory node, so when
+     * this function is handling the normal memory, add the banks.
+     */
+    if ( mem == kernel_info_get_mem_const(kinfo) )
+        shm_mem_node_fill_reg_range(kinfo, reg, &nr_cells, addrcells,
+                                    sizecells);
+
+    for ( cells = reg, i = 0; cells < reg + nr_cells; i++, cells += reg_size )
+    {
+        uint64_t start = dt_read_number(cells, addrcells);
+        uint64_t size = dt_read_number(cells + addrcells, sizecells);
+
+        dt_dprintk("  Bank %u: %#"PRIx64"->%#"PRIx64"\n",
+                   i, start, start + size);
+    }
+
+    dt_dprintk("(reg size %d, nr cells %d)\n", reg_size, nr_cells);
+
+    res = fdt_property(fdt, "reg", reg, nr_cells * sizeof(*reg));
+    if ( res )
+        return res;
+
+    res = fdt_end_node(fdt);
+
+    return res;
+}
+
 /*
  * Local variables:
  * mode: C
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 16:37:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 16:37:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174265.1499222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOezu-00036j-Ic; Thu, 27 Nov 2025 16:37:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174265.1499222; Thu, 27 Nov 2025 16:37:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOezu-00036c-Fc; Thu, 27 Nov 2025 16:37:34 +0000
Received: by outflank-mailman (input) for mailman id 1174265;
 Thu, 27 Nov 2025 16:37:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tYBX=6D=bounce.vates.tech=bounce-md_30504962.69287e44.v1-5045fc97e5ec47b6950cfee2cae4346e@srs-se1.protection.inumbo.net>)
 id 1vOezs-00036Q-L3
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 16:37:32 +0000
Received: from mail132-20.atl131.mandrillapp.com
 (mail132-20.atl131.mandrillapp.com [198.2.132.20])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5b1dea5f-cbaf-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 17:37:26 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-20.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4dHMXh4mjLzFCWjMM
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 16:37:24 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 5045fc97e5ec47b6950cfee2cae4346e; Thu, 27 Nov 2025 16:37: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: 5b1dea5f-cbaf-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1764261444; x=1764531444;
	bh=C+nP0THGNsJheVlXHUIGUiE4UMAsBt73chUwC0Zwdho=;
	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=tDVXjVEfsnI37Tv7fTKmcDoWAc4gVWARjQFc9UdXJK83bB+6f4NEoR0FsvRBDjJgp
	 H0NdpvguKlGtsytMZZgG6XratNjXFGNMCKfFV3lJGxQEp5HCXYMR9OsFGYylosK+OC
	 6eUxgOT2x2ymNRvtcDTJlR6OZWHVr1vg8k5KIVA9O3IfAt+blLQjEONaGDQoHbNuVu
	 ko9o7aHfNZZ5AdmGYNB1/mrRBNlq1zuvpw1QSy20IjP7fEPKMY6YHfp7AN5m8jyw9R
	 9eMGmRRHFfO9oT/dCumhtNjx20ltj8rfPj5qIA5hxqie4O9xsIlqS4zJG1lqL+L7n+
	 t0YK9XAukkZeg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1764261444; x=1764521944; i=teddy.astie@vates.tech;
	bh=C+nP0THGNsJheVlXHUIGUiE4UMAsBt73chUwC0Zwdho=;
	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=C55CVzfmIoHPkT1YP1gYtdQnHlP75DWq80TCz39c2vt9aW9xJ3NdIv2jobKzCQEuw
	 du8WrZGczP5eRGdPK77R6gvKMqp1QzB9mwUmXgLKjFxbKt9pF8vY+VGOMrZWNxOqjk
	 LO4CElY0cgX5DyZV9R5pXQzmkuI5XNp0si68YZGTD8GX6pbX77tRQJqqesTDCKHj6Q
	 qmUucB+jjgvs1zVu4rBacMSagiWjH655cIPIalB/WGpk+uONojgY7Tm4AuE57jvL1J
	 7NVzeQ7mJ7bKSKkjT7s2FIOTtkkDtm1OUYmFh/ne8mtcnNYwwmHWJ57YnftBVvVOX0
	 RlvHMrFnvAVxw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH=203/4]=20x86/p2m-pt:=20Set=20p2m->need=5Fflush=20if=20page=20was=20present=20before?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1764261443699
Message-Id: <40752e0c-7f4d-461e-9ab7-a8d6b8f10ecd@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <cover.1764248710.git.teddy.astie@vates.tech> <8f5a0cecba14cd38d739a9f29a5c8344c2f6bd11.1764248710.git.teddy.astie@vates.tech> <42fd724a-ec74-47bf-9310-74969f1d3aa5@suse.com>
In-Reply-To: <42fd724a-ec74-47bf-9310-74969f1d3aa5@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.5045fc97e5ec47b6950cfee2cae4346e?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251127:md
Date: Thu, 27 Nov 2025 16:37:24 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 27/11/2025 =C3=A0 15:08, Jan Beulich a =C3=A9crit=C2=A0:
> On 27.11.2025 14:39, Teddy Astie wrote:
>> Update p2m->need_flush if page was present before (requiring a tlb flush=
).
>> This causes p2m->flush_tlb() to be now be reachable, make sure we call i=
t
>> only when set.
> 
> I don't follow. Why would p2m->flush_tlb() not have been reachable? There=
 are
> other places where ->need_flush is set to true.
> 
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>> ---
>> This change is important for the next patch.
>> Would it be better to merge it with the next patch ?
> 
> I'm inclined to say yes, but without understanding the description here I
> cannot be sure.
> 
> Hmm, wait. The sole place in x86 where the flag is set is in EPT code. So
> do you perhaps mean that for NPT or shadow those call sites can now be
> reached, and hence - with the hook being NULL there - checks need adding?
> Then, by its title, the next patch actually may be making use of the hook=
,
> so the checks then can be dropped again?
> 

Even with the next patch, in the shadow case, p2m->flush_tlb is still 
NULL as only HAP-NPT uses hap_p2m_tlb_flush().

> Jan



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Nov 27 17:19:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 17:19:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174277.1499233 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOfdu-000182-LF; Thu, 27 Nov 2025 17:18:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174277.1499233; Thu, 27 Nov 2025 17:18:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOfdu-00017v-GW; Thu, 27 Nov 2025 17:18:54 +0000
Received: by outflank-mailman (input) for mailman id 1174277;
 Thu, 27 Nov 2025 17:18:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FgkX=6D=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vOfdt-00017p-4l
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 17:18: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 225222a8-cbb5-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 18:18:47 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-47778b23f64so6472335e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 09:18:47 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47911143a16sm41312785e9.1.2025.11.27.09.18.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 27 Nov 2025 09:18: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: 225222a8-cbb5-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764263926; x=1764868726; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YWGfQhShGn6IpvHTKVJ/44A+hfGwAK7KXIZ2EyAAd0k=;
        b=Cyx9zDJ42bIHSUsju4tydWcoW8hO4CUiAMj4gUSb4E39hUL+6Rf6mOjAAbIQO/a/Fy
         iKFHFGwsScEUXrK0H0hQnoa6asa4kZKhuQE1zeTh7G/lrMXb1aCwnra3I8DIxQbw9t40
         qEWUZv6O37ipMDmSctWKhNNQjM9MHbkdvFVVA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764263926; x=1764868726;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=YWGfQhShGn6IpvHTKVJ/44A+hfGwAK7KXIZ2EyAAd0k=;
        b=fcYDxd/tKbupCT7QmTSygxVe43Ihsk8c+j6By7DpDXhJ/NglO000aZzRlIfGpg9x7X
         IGovuNR+QjhZFjB0ZEfLptF29GuQAzqdQ1+bRKQM7tFFXLXN4eFIbdI3Xyu+/QpLIcOs
         IyyJWT+1km9UH+7i3BpZmbRgqlSx9E+T6mq2JGXy7hOM5WRb2fg9NZ4pmPDh1BnP0Obo
         ABKKxD9e5MrrQeaKF+hUJwP8qytD8SxK2K+wRoUQxZlnNiLgi8dEqtGaAB3aixXQSptG
         UrQA5jaq0p/e/6RcaWon+I5lR0HUTShK7aHtokEYR5zglQmj3FTwg9RP7N9oscBttStk
         98rw==
X-Gm-Message-State: AOJu0YyJUkhIfLwtVli0z3gpOfPmTNe26tOUZpL6/7nQMmF1FWpil5NB
	YkCX/kAAhvmydCagExImBEcKdDeWpLvA+oddSAmM9YSYWzaV+qKLzh5kAci+5hRZy0gnTBwSTHh
	S9FmQ
X-Gm-Gg: ASbGncv/lrVlnjSTTozMuye4EJrLIl0BxCrUzveAkAcebEcb1eMP1s0ZLXm9UJyyl8j
	5dlCXCal7bS6yhetwC8tXCqV4kdK/HO5lFoFCje1uDZ+1aDySS+5NAbE1nYvGPTVLvRQvnbM7Ea
	V/V3EXfRmNNktIHuvyTE3ZKRVnvbamwcuu/WQRSkBYut2/TcIiV5TSCk9TokyL7mmrHTkrleUy4
	Himw9kCikr8NT1pJNLywdWzBvY1NfH90mt7ubrZmWFbcSffDkzeszFZThYZuODLn88SgTi+ndQA
	OgSxD6hgzedJLHi8Fr9cvaBd+BqWh4WC7jaqd1607IqkjmRLrGI2IriZiRRovHuwluGSGztfZAM
	GB7H17zMNnLW2ZmfKfgxvimm7NXiFbuoJbN9vYb/1ZkhoBN0ZZRiC+x546PfAszbuunjeIMsMDV
	w0EKixoCDqVGVAEJwjkYNksNfvbspBx4RL+EldNX/4DRLACqt9pgmfToYBH5YwqA==
X-Google-Smtp-Source: AGHT+IEWF8rRFSiU5gjyBZik+NHX0iC3l9wwupm1iEB/TX+/wd8q1Ypp77Sezb4QMbkw+i8p2XN/Ng==
X-Received: by 2002:a05:600c:1382:b0:477:9b35:3e49 with SMTP id 5b1f17b1804b1-477c1103274mr236250715e9.3.1764263926262;
        Thu, 27 Nov 2025 09:18: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 v1.9 3/3] x86/amd: Fix race editing DE_CFG
Date: Thu, 27 Nov 2025 17:18:43 +0000
Message-Id: <20251127171843.943378-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251126132220.881028-4-andrew.cooper3@citrix.com>
References: <20251126132220.881028-4-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

We have two different functions explaining that DE_CFG is Core-scoped and that
writes are racy but happen to be safe.  This is only true when there's one of
them.

Introduce amd_init_de_cfg() to be the singular function which writes to
DE_CFG, modelled after the logic we already have for BP_CFG.

While reworking amd_check_zenbleed() into a simple predicate used by
amd_init_de_cfg(), fix the microcode table.  The 'good_rev' was specific to an
individual stepping and not valid to be matched by model, let alone a range.
The only CPUs incorrectly matched that I can locate appear to be
pre-production, and probably didn't get Zenbleed microcode.

Rework amd_init_lfence() to be amd_init_lfence_dispatch() with only the
purpose of configuring X86_FEATURE_LFENCE_DISPATCH in the case that it needs
synthesising.  Run it on the BSP only and use setup_force_cpu_cap() to prevent
the bit disappearing on a subseuqent CPUID rescan.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * Fix FamF/11h check in amd_init_de_cfg(), and exclude the virt case.
 * Fix tabs/spaces in init_{amd,hygon}()
 * Drop comment in amd_init_lfence_dispatch()
---
 xen/arch/x86/cpu/amd.c   | 223 +++++++++++++++++++--------------------
 xen/arch/x86/cpu/cpu.h   |   3 +-
 xen/arch/x86/cpu/hygon.c |   6 +-
 3 files changed, 114 insertions(+), 118 deletions(-)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index 7953261895ac..82b02df9a9d5 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -747,45 +747,6 @@ void amd_log_freq(const struct cpuinfo_x86 *c)
 		printk("CPU%u: %u MHz\n", smp_processor_id(), low_mhz);
 }
 
-void amd_init_lfence(struct cpuinfo_x86 *c)
-{
-	uint64_t value;
-
-	/*
-	 * Some hardware has LFENCE dispatch serialising always enabled,
-	 * nothing to do on that case.
-	 */
-	if (test_bit(X86_FEATURE_LFENCE_DISPATCH, c->x86_capability))
-		return;
-
-	/*
-	 * Attempt to set lfence to be Dispatch Serialising.  This MSR almost
-	 * certainly isn't virtualised (and Xen at least will leak the real
-	 * value in but silently discard writes), as well as being per-core
-	 * rather than per-thread, so do a full safe read/write/readback cycle
-	 * in the worst case.
-	 */
-	if (rdmsr_safe(MSR_AMD64_DE_CFG, &value))
-		/* Unable to read.  Assume the safer default. */
-		__clear_bit(X86_FEATURE_LFENCE_DISPATCH,
-			    c->x86_capability);
-	else if (value & AMD64_DE_CFG_LFENCE_SERIALISE)
-		/* Already dispatch serialising. */
-		__set_bit(X86_FEATURE_LFENCE_DISPATCH,
-			  c->x86_capability);
-	else if (wrmsr_safe(MSR_AMD64_DE_CFG,
-			    value | AMD64_DE_CFG_LFENCE_SERIALISE) ||
-		 rdmsr_safe(MSR_AMD64_DE_CFG, &value) ||
-		 !(value & AMD64_DE_CFG_LFENCE_SERIALISE))
-		/* Attempt to set failed.  Assume the safer default. */
-		__clear_bit(X86_FEATURE_LFENCE_DISPATCH,
-			    c->x86_capability);
-	else
-		/* Successfully enabled! */
-		__set_bit(X86_FEATURE_LFENCE_DISPATCH,
-			  c->x86_capability);
-}
-
 /*
  * Refer to the AMD Speculative Store Bypass whitepaper:
  * https://developer.amd.com/wp-content/resources/124441_AMD64_SpeculativeStoreBypassDisable_Whitepaper_final.pdf
@@ -979,76 +940,6 @@ void __init detect_zen2_null_seg_behaviour(void)
 
 }
 
-static void amd_check_zenbleed(void)
-{
-	const struct cpu_signature *sig = &this_cpu(cpu_sig);
-	unsigned int good_rev;
-	uint64_t val, old_val, chickenbit = (1 << 9);
-
-	/*
-	 * If we're virtualised, we can't do family/model checks safely, and
-	 * we likely wouldn't have access to DE_CFG even if we could see a
-	 * microcode revision.
-	 *
-	 * A hypervisor may hide AVX as a stopgap mitigation.  We're not in a
-	 * position to care either way.  An admin doesn't want to be disabling
-	 * AVX as a mitigation on any build of Xen with this logic present.
-	 */
-	if (cpu_has_hypervisor || boot_cpu_data.x86 != 0x17)
-		return;
-
-	switch (boot_cpu_data.x86_model) {
-	case 0x30 ... 0x3f: good_rev = 0x0830107a; break;
-	case 0x60 ... 0x67: good_rev = 0x0860010b; break;
-	case 0x68 ... 0x6f: good_rev = 0x08608105; break;
-	case 0x70 ... 0x7f: good_rev = 0x08701032; break;
-	case 0xa0 ... 0xaf: good_rev = 0x08a00008; break;
-	default:
-		/*
-		 * With the Fam17h check above, most parts getting here are
-		 * Zen1.  They're not affected.  Assume Zen2 ones making it
-		 * here are affected regardless of microcode version.
-		 */
-		if (is_zen1_uarch())
-			return;
-		good_rev = ~0U;
-		break;
-	}
-
-	rdmsrl(MSR_AMD64_DE_CFG, val);
-	old_val = val;
-
-	/*
-	 * Microcode is the preferred mitigation, in terms of performance.
-	 * However, without microcode, this chickenbit (specific to the Zen2
-	 * uarch) disables Floating Point Mov-Elimination to mitigate the
-	 * issue.
-	 */
-	val &= ~chickenbit;
-	if (sig->rev < good_rev)
-		val |= chickenbit;
-
-	if (val == old_val)
-		/* Nothing to change. */
-		return;
-
-	/*
-	 * DE_CFG is a Core-scoped MSR, and this write is racy during late
-	 * microcode load.  However, both threads calculate the new value from
-	 * state which is shared, and unrelated to the old value, so the
-	 * result should be consistent.
-	 */
-	wrmsrl(MSR_AMD64_DE_CFG, val);
-
-	/*
-	 * Inform the admin that we changed something, but don't spam,
-	 * especially during a late microcode load.
-	 */
-	if (smp_processor_id() == 0)
-		printk(XENLOG_INFO "Zenbleed mitigation - using %s\n",
-		       val & chickenbit ? "chickenbit" : "microcode");
-}
-
 static void cf_check fam17_disable_c6(void *arg)
 {
 	/* Disable C6 by clearing the CCR{0,1,2}_CC6EN bits. */
@@ -1075,6 +966,108 @@ static void cf_check fam17_disable_c6(void *arg)
 	wrmsrl(MSR_AMD_CSTATE_CFG, val & mask);
 }
 
+static bool zenbleed_use_chickenbit(void)
+{
+    unsigned int curr_rev;
+    uint8_t fixed_rev;
+
+    /* Zenbleed only affects Zen2.  Nothing to do on non-Fam17h systems. */
+    if ( boot_cpu_data.family != 0x17 )
+        return false;
+
+    curr_rev = this_cpu(cpu_sig).rev;
+    switch ( curr_rev >> 8 )
+    {
+    case 0x083010: fixed_rev = 0x7a; break;
+    case 0x086001: fixed_rev = 0x0b; break;
+    case 0x086081: fixed_rev = 0x05; break;
+    case 0x087010: fixed_rev = 0x32; break;
+    case 0x08a000: fixed_rev = 0x08; break;
+    default:
+        /*
+         * With the Fam17h check above, most parts getting here are Zen1.
+         * They're not affected.  Assume Zen2 ones making it here are affected
+         * regardless of microcode version.
+         */
+        return is_zen2_uarch();
+    }
+
+    return (uint8_t)curr_rev >= fixed_rev;
+}
+
+void amd_init_de_cfg(const struct cpuinfo_x86 *c)
+{
+    uint64_t val, new = 0;
+
+    /*
+     * The MSR doesn't exist on Fam 0xf/0x11.  If virtualised, we won't have
+     * mutable access even if we can read it.
+     */
+    if ( c->family == 0xf || c->family == 0x11 || cpu_has_hypervisor )
+        return;
+
+    /*
+     * On Zen3 (Fam 0x19) and later CPUs, LFENCE is unconditionally dispatch
+     * serialising, and is enumerated in CPUID.
+     *
+     * On older systems, LFENCE is unconditionally dispatch serialising (when
+     * the MSR doesn't exist), or can be made so by setting this bit.
+     */
+    if ( !test_bit(X86_FEATURE_LFENCE_DISPATCH, c->x86_capability) )
+        new |= AMD64_DE_CFG_LFENCE_SERIALISE;
+
+    /*
+     * If vulnerable to Zenbleed and not mitigated in microcode, use the
+     * bigger hammer.
+     */
+    if ( zenbleed_use_chickenbit() )
+        new |= (1 << 9);
+
+    if ( !new )
+        return;
+
+    val = rdmsr(MSR_AMD64_DE_CFG);
+
+    if ( (val & new) == new )
+        return;
+
+    /*
+     * DE_CFG is a Core-scoped MSR, and this write is racy.  However, both
+     * threads calculate the new value from state which expected to be
+     * consistent across CPUs and unrelated to the old value, so the result
+     * should be consistent.
+     */
+    wrmsr(MSR_AMD64_DE_CFG, val | new);
+}
+
+void __init amd_init_lfence_dispatch(void)
+{
+    struct cpuinfo_x86 *c = &boot_cpu_data;
+    uint64_t val;
+
+    if ( test_bit(X86_FEATURE_LFENCE_DISPATCH, c->x86_capability) )
+        /* LFENCE is forced dispatch serialising and we can't control it. */
+        return;
+
+    if ( c->family == 0xf || c->family == 0x11 )
+        /* MSR doesn't exist.  LFENCE is dispatch serialising on this hardare. */
+        goto set;
+
+    if ( rdmsr_safe(MSR_AMD64_DE_CFG, &val) )
+        /* Unable to read.  Assume the safer default. */
+        goto clear;
+
+    if ( val & AMD64_DE_CFG_LFENCE_SERIALISE )
+        goto set;
+
+ clear:
+    setup_clear_cpu_cap(X86_FEATURE_LFENCE_DISPATCH);
+    return;
+
+ set:
+    setup_force_cpu_cap(X86_FEATURE_LFENCE_DISPATCH);
+}
+
 static void amd_check_bp_cfg(void)
 {
 	uint64_t val, new = 0;
@@ -1118,6 +1111,11 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 	u32 l, h;
 	uint64_t value;
 
+	amd_init_de_cfg(c);
+
+	if (c == &boot_cpu_data)
+		amd_init_lfence_dispatch(); /* Needs amd_init_de_cfg() */
+
 	/* Disable TLB flush filter by setting HWCR.FFDIS on K8
 	 * bit 6 of msr C001_0015
 	 *
@@ -1156,12 +1154,6 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 	if (c == &boot_cpu_data && !cpu_has(c, X86_FEATURE_RSTR_FP_ERR_PTRS))
 		setup_force_cpu_cap(X86_BUG_FPU_PTRS);
 
-	if (c->x86 == 0x0f || c->x86 == 0x11)
-		/* Always dispatch serialising on this hardare. */
-		__set_bit(X86_FEATURE_LFENCE_DISPATCH, c->x86_capability);
-	else /* Implicily "== 0x10 || >= 0x12" by being 64bit. */
-		amd_init_lfence(c);
-
 	amd_init_ssbd(c);
 
 	if (c->x86 == 0x17)
@@ -1379,7 +1371,6 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 	if ((smp_processor_id() == 1) && !cpu_has(c, X86_FEATURE_ITSC))
 		disable_c1_ramping();
 
-	amd_check_zenbleed();
 	amd_check_bp_cfg();
 
 	if (fam17_c6_disabled)
diff --git a/xen/arch/x86/cpu/cpu.h b/xen/arch/x86/cpu/cpu.h
index cbb434f3a23d..8bed3f52490f 100644
--- a/xen/arch/x86/cpu/cpu.h
+++ b/xen/arch/x86/cpu/cpu.h
@@ -24,7 +24,8 @@ extern bool detect_extended_topology(struct cpuinfo_x86 *c);
 
 void cf_check early_init_amd(struct cpuinfo_x86 *c);
 void amd_log_freq(const struct cpuinfo_x86 *c);
-void amd_init_lfence(struct cpuinfo_x86 *c);
+void amd_init_de_cfg(const struct cpuinfo_x86 *c);
+void amd_init_lfence_dispatch(void);
 void amd_init_ssbd(const struct cpuinfo_x86 *c);
 void amd_init_spectral_chicken(void);
 void detect_zen2_null_seg_behaviour(void);
diff --git a/xen/arch/x86/cpu/hygon.c b/xen/arch/x86/cpu/hygon.c
index f7508cc8fcb9..c3faabbdb764 100644
--- a/xen/arch/x86/cpu/hygon.c
+++ b/xen/arch/x86/cpu/hygon.c
@@ -31,7 +31,11 @@ static void cf_check init_hygon(struct cpuinfo_x86 *c)
 {
 	unsigned long long value;
 
-	amd_init_lfence(c);
+	amd_init_de_cfg(c);
+
+	if (c == &boot_cpu_data)
+		amd_init_lfence_dispatch(); /* Needs amd_init_de_cfg() */
+
 	amd_init_ssbd(c);
 
 	/* Probe for NSCB on Zen2 CPUs when not virtualised */

base-commit: fb0e37df71a31318c61e0715ffed3e149ca8a4aa
prerequisite-patch-id: 3598b7168c11c3dd68f825c75b77edc552fc231f
prerequisite-patch-id: e57b8bc06e86a4470b5bcf8e412d248e1f8f3331
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Nov 27 17:42:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 17:42:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174292.1499242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOg17-0005QJ-Ho; Thu, 27 Nov 2025 17:42:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174292.1499242; Thu, 27 Nov 2025 17:42: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 1vOg17-0005QC-Dx; Thu, 27 Nov 2025 17:42:53 +0000
Received: by outflank-mailman (input) for mailman id 1174292;
 Thu, 27 Nov 2025 17: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=jSjm=6D=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOg15-0005Q6-DT
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 17:42:51 +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 7ca1fe47-cbb8-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 18:42:49 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV8PR03MB7376.namprd03.prod.outlook.com (2603:10b6:408:18b::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Thu, 27 Nov
 2025 17:42:45 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Thu, 27 Nov 2025
 17:42: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: 7ca1fe47-cbb8-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aEzpBak2o87o3DtmX2fQ7+mS3h0qdrro6OU6ky5i+KQDAHbPs8UJgICn7ooLuyb3RXOxi77y4mI8EivXOrA1PgKwm2Y5WuVHP0g/7lLl1xLKXpKS6jOTnpClbZC4U1pBhP2TbX6nigcojc9dKl2IYXf0wBaNATSH4kFhTeSH2Kt1xpo4SR+WpgcLQGFL9wak6GE+IqyYsoHDImz+s4+u2/L8xPeZBZxjgHvRgyvPneWdkm28Pg580RDyRr2opxpln4po9rwkBrvspvyQinabLmQTLfiNGwkCPWiL/67Mp4ALU9skIEqhNqzL+Kw+KC+SI9vf+X8YqwyrGE5gON50Rw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=b5Y/rA95DUg0edVrVnp8ZVSBrDPip/Y0RXghmtJA4Ig=;
 b=gT8u6EE0tz7W/JEizcRPO3CP4fYLXu/exxh6fNJDjYLURsiwwVTiHhUCRluuVUTK7XgCPMm+iG25PEBRSRiXY9opwvozhC2EEoqpXVtAxUc8sZbZtfGY09GvXd//xuAKiGHZHeYD/rsdL+tAxZChR8s9vpCrGqMBYbJ3HyZJqJsFjclKfHkTM9ZDYGpTHdSzLhTBO0aRpyrb4UtgVXY2ITq5u95p6eaLUzqFMcPZKxAnaakmTAq8mGW/nN4Q6j8mg60Qk4skUmBceGmVB0oLUIvxfRDydu9eH+XYmu/e5IsNdBVnU+YCxo27ppM1ssA4xW3pEGGgBhrIxw7GrXKDnw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=b5Y/rA95DUg0edVrVnp8ZVSBrDPip/Y0RXghmtJA4Ig=;
 b=EHiS0FTkmmrkVCFmbsXjWN9AbyyOhIeCF+CNjzK2JQNyZgApVlPKr0Y/iiexY7zUPPqiaYcVIB7eyP7b2SnGhyxl+unJZ5d0Rz1Ily9E2k+RTkFKd7Zziw+kVrX3zsoAfUK3oSTrxbSI44yec18Fa+whfax66M8P0mz2iU2Nj30=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <15264e75-e240-4db0-92f3-c87e31a6c949@citrix.com>
Date: Thu, 27 Nov 2025 17:42:41 +0000
User-Agent: Mozilla Thunderbird
Cc: 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 3/3] x86/amd: Fix race editing DE_CFG
To: Jan Beulich <jbeulich@suse.com>
References: <20251126132220.881028-1-andrew.cooper3@citrix.com>
 <20251126132220.881028-4-andrew.cooper3@citrix.com>
 <52fd793f-5bb1-4e14-a64c-b431b0ae83a6@suse.com>
 <f2101ed6-470c-4d6a-88dc-d2776010c346@citrix.com>
 <d13547b3-15f4-4814-8bd5-1f5dfb96fc39@citrix.com>
 <63ee65cc-1e8b-4f00-a882-7e96fe1e1eac@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <63ee65cc-1e8b-4f00-a882-7e96fe1e1eac@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0358.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:d::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_|LV8PR03MB7376:EE_
X-MS-Office365-Filtering-Correlation-Id: c6ca5904-476b-48d6-dd1c-08de2ddc5f5b
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?cmw3dno2aGJZSGdBSjlCK0ZkT3hLS3AwNnVKcTZaRXoxUzZzOEpQTFJKR0Fp?=
 =?utf-8?B?WHFhVWNDMHhSZG53cnJ2bHRleFM5VDJWZDlzYWk5YUxxQVA3SHZONFd6Nzda?=
 =?utf-8?B?MVpVRWxXczlTOUhvcFltcmFacEZFbHJMWFB0T3dlRHNtM0FjTzM3ZWhURWdG?=
 =?utf-8?B?MWFReVU1a3U2OGlOOWJkdHczVUZBcVpsSHZEcFBUWjBVWE5DWUpYZ1NraUJF?=
 =?utf-8?B?TEZHVGNBbStNRDRGMTJpdzVvdm9FUVc3MFRpT1JDbFc2ZkUvNjNGOXRTRWtk?=
 =?utf-8?B?Y09LOGlLTEtHN3NXRzdvUkJ1TjdJRVNzempFWWlYMWc2bDQ4a0NJbnJkanU3?=
 =?utf-8?B?LzFXZXdKbHJjT1VyYkhmdjZoVW4xNTVaZ1paL0RLajBiMUtMWi8vc0pFcHNJ?=
 =?utf-8?B?di9NaDFTeTFtUWZpdmNLcU80OHE3cXdwYmRuU2NEWEJ1WTVpNzgrVTBDWE1Q?=
 =?utf-8?B?ZC96SXBOallPNEpqanNZall5MWNKZjhQNkkrTE9vRW5ickNhMVk1MFgrckJr?=
 =?utf-8?B?TldiTWNLSlRjQnE4YW8wNlpheTNGTzJxQXB6RlpwaHBod1crL09GVEVnMS91?=
 =?utf-8?B?L0FQeGNIcFBUb0xZY2JhektmREl6Nnh3US9KMlNWSkZIbFJBSWs2YVdXTzA0?=
 =?utf-8?B?NXNoc293bGtLMnorQm54ZEllS1AreEVMQ0d5V2lDOW5NbXp0c3MwUkJsaHhH?=
 =?utf-8?B?ODZUZ1RTbnJyV3NnajlBVEZjOFFZZlpCQ1h6QURHa0dhV25kbmlzeEc5WDFQ?=
 =?utf-8?B?RUZnTjZneDAyZGwzeFdwYmxkTU1yRTkzRmFBcWgzelhyVUxwcXNLd29Fc1pQ?=
 =?utf-8?B?VVJaY2pnSzJiTi8zWmpsY1IvOXUwQ2Q4SlRUVUR4S3BEbVdEaU4yMUlvUVFt?=
 =?utf-8?B?ODkrZ2w1YXZWVjdaTVpObkVIcUVDWTJwbHRBc2xGU09rOEtnN3dnZlBqZzJC?=
 =?utf-8?B?UERiRkx3cGpmSVVDQWt5ZnU1d2t3RW9DTVFObnpjUkptZWhVeS9pOTBHVytK?=
 =?utf-8?B?RXhTZHU0VWN4OVZWL2t3WTJtUFkzWEcvM08yZ3AvRUNKN3NYNS9UN3BiVGJ0?=
 =?utf-8?B?WkdObi82YTBKeUtkMFNCOGowbTB3RGN6ZHM3eDlKLy9pWDYzb1M0d0d6M0VV?=
 =?utf-8?B?cFZLTXdvL1N6QmxiSG5SdUUya2dWeDZsQUcwRDIyQm1tTTF6Z0ZQVUZSdEs5?=
 =?utf-8?B?N0VjQkJRTG9mbnpUd2JMNEY1aWcwYXptVUp1VzlEdDZyUllLelZCeXhsQWw5?=
 =?utf-8?B?NXJJZnNZK2xvcFJjV2RGdEVXN2d5NWNTb05lZ2N0RjNLZk84a3VGbG5qKzBv?=
 =?utf-8?B?UjZLYUxXQTE4bmJ1TGdPMVhRK0hEeEozRXFlQjRVZHJ2NTQ4K2pJaFpWYzRS?=
 =?utf-8?B?SnFHdEVzNklpRHhNUkFuVGhMbnExdTZJOGNNT2VQdkFtNUp3SmljaW5KSXA1?=
 =?utf-8?B?TUNTNmNCQ1VWUFhLdW1NN1IzOGFUNjFBWkVBUXl2bGt1UUFnd1RDNGQzc2JY?=
 =?utf-8?B?RWtuMDAySTNNb0YzU2NQeklxL29PQVRvbDkvdXlua3EyUjQzOXVrM240ZEps?=
 =?utf-8?B?bHBNWnU4YXo0UXRDQk1FRVFIL3ZEaUwyaDIxNUFhUVk3VG1UWnNVV3RHOFZN?=
 =?utf-8?B?LzZHVlNzNW5zMmlkOE9CN3lEeUJpd3FYc25NRms1M0Y0SWxVMlZMTEhnUTMr?=
 =?utf-8?B?eXhoK25hRkJWb3hob3hTQ3hBbjgyQU96akkrcDdWMXBWR1o5TTd1VE9HaENF?=
 =?utf-8?B?cjlhT0g4RGFHb3A2MjB3SmkyellSd0V5WHl5ZDltSEFvQkM1THF3NTgzM3ZR?=
 =?utf-8?B?SkM0UTJ1a0l2R2hiY1E1UnQramxIbitHU2RWSGRSLzI0QlB6dTk4dkI0NEpQ?=
 =?utf-8?B?NTFZYVppOGtleTdYMnpka0x4K1pvSzdjRHJhenUreTdKMnRFVjhBd1FxVWtz?=
 =?utf-8?Q?hU2XpvUp9E082kKk3ehXcuJUxvZUxAM1?=
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?L3JsTGRQdlFmNHNxRHpzOWNCNC9wdW9FL2NlWVBvV3BjTG5IS0RxUEhNQlI1?=
 =?utf-8?B?eG90TWl2K1BtZVpQRVZFekg1ckdoRlo5TFlmTXhwanFhNGdXcysxU0cwMWdv?=
 =?utf-8?B?dFVXb0ZqS1pxaDArUWtsbHpJOXF1ZmlqZ2dER0ZpUmFQb2gvTjdpL3BKY2RZ?=
 =?utf-8?B?ZnRySzAvdndNN05iZjNUaHpGVnVQczFVVTgrdS9nVUdtYm15NjgvQ00wS2x5?=
 =?utf-8?B?QmFRK2RUVCszaEdzcFBQZitPaUplYjBNLyt0OWV2a2l4NVRZZ0pIWnRMNHRD?=
 =?utf-8?B?WDBndENaZDhWbU9YR055emVqVWtVLzl1TWtIa2V6VVJpVSsxaVRpSk85TFNW?=
 =?utf-8?B?aHJlaEhpOEJ0YUVPVVlGMnFvRWhmU1lHWW9CMVpJdG5vazNGZkNZZFlxN2dM?=
 =?utf-8?B?b0M5Y3ZYaFRBdmFUaUdseXk3blNIVE4rbHF5eWZpNEszV01MSVYzb3dIUVYz?=
 =?utf-8?B?VmtEZmVDZEZmeS9jMy9nbWovbkNCaXhwcUttbEoyekEzWkMyYTU0S3JGUWU5?=
 =?utf-8?B?NE1tUityaG9oeU1IdlEvK0dsM2JuTDU2K3pqbkdlYXh1Q2E5S1lYQkMwTDNP?=
 =?utf-8?B?b0xKTmc0aXZuYjFkRmFtUHM0Y1A0NHhZR3B3MTNhZm9kYTRrT1BPMUFud1A4?=
 =?utf-8?B?a1VsTWlDeEZIS3E4Qk53d2F6c255SWcrTHhZVEdyWHAvTnJYRXA4QmJzcWFk?=
 =?utf-8?B?T1Q2ak9GUkt5ZHNTZzY4YTJMcFd4Vml1VjZpVXNkUjJKNGNBYTI1eStVa1lF?=
 =?utf-8?B?Y3FqeGFYOWlpWk5WYUlodlRidTl2ZHZvMldIbmNkMDU2Mk1VMHU3NGJ1aVNH?=
 =?utf-8?B?Smx4SjFWUGoveEdRZHpRbzBlS0ZaMFJPRWVqMXBzOEpMOG5lak45NVNIbHYx?=
 =?utf-8?B?c3kxaTdvaW5GTDBHdG1jN3hoSEQybkdIMTQvRDRuRE5uYjFVVDFqK2FSRkVh?=
 =?utf-8?B?dzBVNEFWSWhDdzFvSWFrQTNaZUFDRGpYU2pHdEIyZU9SQ3kyMG8rYkQxQmN0?=
 =?utf-8?B?aE8reHp0L2NjZDVRSHN3N3VSUDZ3UVJyMCtIQmZTVy96ZlFkaU44SElFbUdr?=
 =?utf-8?B?SFNZbHJYVU9xTlhveDV6WUhBbk9nbEloSS9TeGhzcUR2b2tnVWcvenMrYmxv?=
 =?utf-8?B?MmE2ak1zS0x1cUpHSG8wcG1MQXVNU2FSVHBQOTVDUzJWeERleDllZmxxYkxD?=
 =?utf-8?B?bHJpcVAvWnlQSXFrVDdwcUtOc0tkSTR5QVNMd1VoNnZwZ2VwanVtRzA1SjFL?=
 =?utf-8?B?bEZVTnpoZ2RCVE1yNjdIanEzbVMxLzZ5b095a011aEdmUXBTNVpzR1F3bkJz?=
 =?utf-8?B?OThwN1ZBamVUYWZTQUdmUVBOQU9UcXVaejNZRXR0Y3JNWFFhWUN6WXFxb1hQ?=
 =?utf-8?B?WjlpbFh6MnNrSnQwVTA3UkdYeXIzM1pTeWY0T0dub21jajJXa3dNV0EvQUtI?=
 =?utf-8?B?R0JMNGJiZGQ4dCtVSERyTU9vZVhaOHNWYWFqd1NPRFlVdmRINFh5QnBieDZE?=
 =?utf-8?B?WVhzSGsxWU8rUFo0eFhVWE9EUWJrZGtDSFgrYkhRRHZVSTh2OVpYVEx6U3Vh?=
 =?utf-8?B?OCtNN3dZRGN3YlozbXN0Y051VmJLSDNMSU4rRml2TGFoa0FJWVk2NldYbDFQ?=
 =?utf-8?B?blNPQUxPeC9FNFk1TlVWUnRPZmxSeVJVNU5NRm5NdUpicEl3dWhaMEFwSTl3?=
 =?utf-8?B?UFQ1a2M1ZHJBTVN3akhKa1F1SGl3L2Y2WTJCTEVaUHlBS3dtSjRqZXlWR0NW?=
 =?utf-8?B?Y09pMnJIWEFNTmlPUzNuRUVtVGtGZE9OU1oxcCtzbGRRZ1owT1VJOCtybXN4?=
 =?utf-8?B?eXE1eFNBcFBLeVNtVGlUN0wxVmJXNUx5MDhpU3B6RzZNVlQyZmN3cVRIRmRN?=
 =?utf-8?B?VnRJSU5TNVMwMjhIZ3lrcWlxbk10a2hmdU9ydEMrbnFsajFCOUttSnAxQWtk?=
 =?utf-8?B?MGZhVzdrR1hVMXlKaG5zZ2p4MU1aWmFHWElrTzJ5dVJxMVBjaks2eEFKMTNh?=
 =?utf-8?B?ZitkNnhBTkJVSHd6Z25JbmZ4L0lnZWcvRHcydHcyK0NWYWpZVTF6Y1FJWU5v?=
 =?utf-8?B?Nm8vRWN0TEk0S0M5U3RvVTRNdnpCNmhOcmVXWUFEUS9UTEYwcVVZU2N3bko0?=
 =?utf-8?B?djg1NGxvVThxeDllMjh0NlRmMU9icWVrMHh0Q0puT1hHdjFCYmJBYlRIN2Nr?=
 =?utf-8?B?eHc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c6ca5904-476b-48d6-dd1c-08de2ddc5f5b
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 17:42:45.0044
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 5BJIFu2B+S1zNkRPa/Yb7XHSge3E+fSE9a222FkLSgmT0sw5em9zsaZycyyvmRNytnz922UaVsMk4ngpNc7Y3eoxK96swMmuYWmcpTd7Xu4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR03MB7376

On 27/11/2025 7:58 am, Jan Beulich wrote:
> On 26.11.2025 18:56, Andrew Cooper wrote:
>> On 26/11/2025 4:55 pm, Andrew Cooper wrote:
>>> On 26/11/2025 3:07 pm, Jan Beulich wrote:
>>>> On 26.11.2025 14:22, Andrew Cooper wrote:
>>>>> @@ -1075,6 +966,112 @@ static void cf_check fam17_disable_c6(void *arg)
>>>>>  	wrmsrl(MSR_AMD_CSTATE_CFG, val & mask);
>>>>>  }
>>>>>  
>>>>> +static bool zenbleed_use_chickenbit(void)
>>>>> +{
>>>>> +    unsigned int curr_rev;
>>>>> +    uint8_t fixed_rev;
>>>>> +
>>>>> +    /*
>>>>> +     * If we're virtualised, we can't do family/model checks safely, and
>>>>> +     * we likely wouldn't have access to DE_CFG even if we could see a
>>>>> +     * microcode revision.
>>>>> +     *
>>>>> +     * A hypervisor may hide AVX as a stopgap mitigation.  We're not in a
>>>>> +     * position to care either way.  An admin doesn't want to be disabling
>>>>> +     * AVX as a mitigation on any build of Xen with this logic present.
>>>>> +     */
>>>>> +    if ( cpu_has_hypervisor || boot_cpu_data.family != 0x17 )
>>>>> +        return false;
>>>>> +
>>>>> +    curr_rev = this_cpu(cpu_sig).rev;
>>>>> +    switch ( curr_rev >> 8 )
>>>>> +    {
>>>>> +    case 0x083010: fixed_rev = 0x7a; break;
>>>>> +    case 0x086001: fixed_rev = 0x0b; break;
>>>>> +    case 0x086081: fixed_rev = 0x05; break;
>>>>> +    case 0x087010: fixed_rev = 0x32; break;
>>>>> +    case 0x08a000: fixed_rev = 0x08; break;
>>>>> +    default:
>>>>> +        /*
>>>>> +         * With the Fam17h check above, most parts getting here are Zen1.
>>>>> +         * They're not affected.  Assume Zen2 ones making it here are affected
>>>>> +         * regardless of microcode version.
>>>>> +         */
>>>>> +        return is_zen2_uarch();
>>>>> +    }
>>>>> +
>>>>> +    return (uint8_t)curr_rev >= fixed_rev;
>>>>> +}
>>>>> +
>>>>> +void amd_init_de_cfg(const struct cpuinfo_x86 *c)
>>>>> +{
>>>>> +    uint64_t val, new = 0;
>>>>> +
>>>>> +    /* The MSR doesn't exist on Fam 0xf/0x11. */
>>>>> +    if ( c->family != 0xf && c->family != 0x11 )
>>>>> +        return;
>>>> Comment and code don't match. Did you mean
>>>>
>>>>     if ( c->family == 0xf || c->family == 0x11 )
>>>>         return;
>>>>
>>>> (along the lines of what you have in amd_init_lfence_dispatch())?
>>> Oh - that was a last minute refactor which I didn't do quite correctly.Â 
>>> Yes, it should match amd_init_lfence_dispatch().
>>>
>>>>> +    /*
>>>>> +     * On Zen3 (Fam 0x19) and later CPUs, LFENCE is unconditionally dispatch
>>>>> +     * serialising, and is enumerated in CPUID.  Hypervisors may also
>>>>> +     * enumerate it when the setting is in place and MSR_AMD64_DE_CFG isn't
>>>>> +     * available.
>>>>> +     */
>>>>> +    if ( !test_bit(X86_FEATURE_LFENCE_DISPATCH, c->x86_capability) )
>>>>> +        new |= AMD64_DE_CFG_LFENCE_SERIALISE;
>>>>> +
>>>>> +    /*
>>>>> +     * If vulnerable to Zenbleed and not mitigated in microcode, use the
>>>>> +     * bigger hammer.
>>>>> +     */
>>>>> +    if ( zenbleed_use_chickenbit() )
>>>>> +        new |= (1 << 9);
>>>>> +
>>>>> +    if ( !new )
>>>>> +        return;
>>>>> +
>>>>> +    if ( rdmsr_safe(MSR_AMD64_DE_CFG, &val) ||
>>>>> +         (val & new) == new )
>>>>> +        return;
>>>>> +
>>>>> +    /*
>>>>> +     * DE_CFG is a Core-scoped MSR, and this write is racy.  However, both
>>>>> +     * threads calculate the new value from state which expected to be
>>>>> +     * consistent across CPUs and unrelated to the old value, so the result
>>>>> +     * should be consistent.
>>>>> +     */
>>>>> +    wrmsr_safe(MSR_AMD64_DE_CFG, val | new);
>>>> Either of the bits may be the cause of #GP. In that case we wouldn't set the
>>>> other bit, even if it may be possible to set it.
>>> This MSR does not #GP on real hardware.
> I consider this unexpected / inconsistent, at least as long as some of the
> bits would be documented as reserved. "Would be" because the particular
> Fam17 and Fam19 PPRs I'm looking at don't even mention DE_CFG (or BP_CFG,
> for that matter).

You need the even-more-NDA manual to find those details.

Reserved doesn't mean #GP. It means "don't rely on the behaviour".

>>> Also, both of these bits come from instructions AMD have provided,
>>> saying "set $X in case $Y", which we have honoured as part of the
>>> conditions for setting up new, which I consider to be a reasonable
>>> guarantee that no #GP will ensue.
> The AMD instructions are for particular models, aren't they? While that
> may mean the bits are fine to blindly (try to) set on other models, pretty
> likely this can't be extended to other families. (While
> zenbleed_use_chickenbit() is family-specific, the LFENCE bit is tried
> without regard to family.)

The Managing Speciation whitepaper says "set bit 1 on Fam 10, 12, 14,
15-17".

It also says that AMD will treat the MSR and bit 1 as architectural
moving forwards.Â  In reality, on Zen3 (post-dating the whitepaper) and
later, it's write-discard, read-as-1, and this is the behaviour we
provide to all VMs.

The Zenbleed instruction say "set bit 9 on Zen2".

So, the logic in this patch following AMD's written instructions.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 17:44:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 17:44:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174302.1499252 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOg2m-0005w0-Sg; Thu, 27 Nov 2025 17:44:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174302.1499252; Thu, 27 Nov 2025 17:44:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOg2m-0005vt-QB; Thu, 27 Nov 2025 17:44:36 +0000
Received: by outflank-mailman (input) for mailman id 1174302;
 Thu, 27 Nov 2025 17:44: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=wKXk=6D=bounce.vates.tech=bounce-md_30504962.69288dea.v1-925301c2d1b9457582b79c9c271a6833@srs-se1.protection.inumbo.net>)
 id 1vOg2e-0005vV-Uj
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 17:44:35 +0000
Received: from mail132-20.atl131.mandrillapp.com
 (mail132-20.atl131.mandrillapp.com [198.2.132.20])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b0be179b-cbb8-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 18:44:18 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-20.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4dHP1k3Q3mzFCWjl5
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 17:44:10 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 925301c2d1b9457582b79c9c271a6833; Thu, 27 Nov 2025 17:44: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: b0be179b-cbb8-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1764265450; x=1764535450;
	bh=oFO9PAR/yTcyRRSVY2Kh+NJBWGMyiPLKETAVROEcBQ0=;
	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=RidMY7Wkbl1uCz7vKimJQy4g69RnqtHWxFv9WoYVREKMUxtcqlh3uVyYZqn3IeKr6
	 EfGAt24zLihOW366e0TICRQmds/ES8Pi7rej5UX6XVjaY51jUSfiQwb3z42aAuW7tK
	 g90cRX50O8ZRc5dL+XZrHF5GyxvtiZgtDqMjJbeAGMacIww58b7T+3Wt8twQpNyfHk
	 AGu1XZmE79HC9wzsmK1nOH3c5OCuD71Jx5XjO/7lgZASFfrg78ZCpc/8sCEp4fflvk
	 c7+KAmS1pWQ0LW24H2vUxgUkXBw2cmhfJV/IzEL0mSTb/xrPTsKZ7eK4X6uVVhT7Ac
	 tWro2D12gI/vg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1764265450; x=1764525950; i=teddy.astie@vates.tech;
	bh=oFO9PAR/yTcyRRSVY2Kh+NJBWGMyiPLKETAVROEcBQ0=;
	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=EfGWw9uoSc44717PyKmQ3sH+JiNb5EtDKg9Eonybjnv5fnUSGmemIuPZYUDxu1O9b
	 CGN4rGMp3YrigbHxbgIxQt2aMRx7WQEHWvSRgcN1kZSo+d8SkoeafLG8CZBgH83LGL
	 78+DcBbmbIW2Na0Fts3wq7NRdyOrGnUPdAaBczu9jamg3uBhwSZaNXplrXcuKAL1w6
	 BKimx9teBc9OlWZPALGHMa8VGZ00yiLQlyUuJIk9AOjIp4xVr7EVv3WbrU4DMdSbMw
	 e//HVEZDPtJyjYBthcFX3BUcciHw7nTfwimu14BsSAquZy9eUciE4ytHGNV/6P0QWY
	 emA1Lu+4THutA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH=204/4]=20x86/hap:=20Migrate=20tlb=20flush=20logic=20to=20p2m->flush=5Ftlb?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1764265449386
Message-Id: <782c3d76-defe-44fb-8e64-b3dd149c4257@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <cover.1764248710.git.teddy.astie@vates.tech> <94bf385598cc7d70ecaecfae670e305581ad83b3.1764248710.git.teddy.astie@vates.tech> <e7f7e2df-5881-40f6-b157-bd01c0d514f5@suse.com>
In-Reply-To: <e7f7e2df-5881-40f6-b157-bd01c0d514f5@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.925301c2d1b9457582b79c9c271a6833?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251127:md
Date: Thu, 27 Nov 2025 17:44:10 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 27/11/2025 =C3=A0 15:32, Jan Beulich a =C3=A9crit=C2=A0:
> On 27.11.2025 14:39, Teddy Astie wrote:
>> Now that p2m->need_flush is set when modifying the pagetable in a way th=
at
>> requires it. We can move the tlb flush logic to p2m->tlb_flush.
>>
>> Introduce hap_tlb_flush to do it, which is called by main p2m logic (e.g=
 p2m_unlock,
>> p2m_tlb_flush_sync, ...). Drop inline calls of guest_flush_tlb_mask whic=
h are now
>> redundant with what now does p2m->flush_tlb, allowing us to drop guest_f=
lush_tlb_*
>> as it is now unused.
>>
>> No function change intended.
>>
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> 
> I think the safety / correctness of the change needs explaining in the
> description. TLB flushing is often delicate, so it wants to be made prett=
y
> clear that no necessary flush is now omitted anywhere. It also wants to b=
e
> made clear, from a performance angle, no new excess flushing is added (se=
e
> below for a respective question towards EPT).
> 

Overall, all places where there is was a guest_flush_tlb_mask, there is 
a implicit call to p2m->tlb_flush (usually through p2m_unlock() or 
something that calls it); but that indeed wants to be explained.

>> --- a/xen/arch/x86/flushtlb.c
>> +++ b/xen/arch/x86/flushtlb.c
>> @@ -320,18 +320,3 @@ void cache_writeback(const void *addr, unsigned int=
 size)
>>       asm volatile ("sfence" ::: "memory");
>>   }
>>   
>> -unsigned int guest_flush_tlb_flags(const struct domain *d)
>> -{
>> -    bool shadow =3D paging_mode_shadow(d);
>> -    bool asid =3D is_hvm_domain(d) && (cpu_has_svm || shadow);
> 
> There's an SVM dependency here, which ...
> 
>> --- a/xen/arch/x86/mm/hap/hap.c
>> +++ b/xen/arch/x86/mm/hap/hap.c
>> @@ -105,8 +105,6 @@ int hap_track_dirty_vram(struct domain *d,
>>               p2m_change_type_range(d, begin_pfn, begin_pfn + nr_frames,
>>                                     p2m_ram_rw, p2m_ram_logdirty);
>>   
>> -            guest_flush_tlb_mask(d, d->dirty_cpumask);
>> -
>>               memset(dirty_bitmap, 0xff, size); /* consider all pages di=
rty */
>>           }
>>           else
>> @@ -191,7 +189,6 @@ static int cf_check hap_enable_log_dirty(struct doma=
in *d)
>>        * to be read-only, or via hardware-assisted log-dirty.
>>        */
>>       p2m_change_entry_type_global(d, p2m_ram_rw, p2m_ram_logdirty);
>> -    guest_flush_tlb_mask(d, d->dirty_cpumask);
>>   
>>       return 0;
>>   }
>> @@ -220,7 +217,6 @@ static void cf_check hap_clean_dirty_bitmap(struct d=
omain *d)
>>        * be read-only, or via hardware-assisted log-dirty.
>>        */
>>       p2m_change_entry_type_global(d, p2m_ram_rw, p2m_ram_logdirty);
>> -    guest_flush_tlb_mask(d, d->dirty_cpumask);
>>   }
>>   
>>   /************************************************/
>> @@ -806,18 +802,14 @@ static void cf_check hap_update_paging_modes(struc=
t vcpu *v)
>>       put_gfn(d, cr3_gfn);
>>   }
>>   
>> -static void cf_check
>> -hap_write_p2m_entry_post(struct p2m_domain *p2m, unsigned int oflags)
>> +void hap_p2m_tlb_flush(struct p2m_domain *p2m)
>>   {
>> -    struct domain *d =3D p2m->domain;
>> -
>> -    if ( oflags & _PAGE_PRESENT )
>> -        guest_flush_tlb_mask(d, d->dirty_cpumask);
>> +    flush_mask(p2m->domain->dirty_cpumask, FLUSH_HVM_ASID_CORE);
>>   }
>>   
>>   void hap_p2m_init(struct p2m_domain *p2m)
>>   {
>> -    p2m->write_p2m_entry_post =3D hap_write_p2m_entry_post;
>> +    p2m->tlb_flush =3D hap_p2m_tlb_flush;
>>   }
> 
> ... is entirely lost throughout the hap.c changes. Are we now doing exces=
s flushing
> for EPT?

Probably not as EPT uses its own tlb_flush function (ept_tlb_flush) 
instead. Most changes are isolated to p2m-pt.c, and here only SVM with HAP.

> I guess the relevant point here is that hap_p2m_init(), despite its name
> suggesting otherwise, doesn't come into play when EPT is in use. (This co=
uld do
> with cleaning up, as right now it then has to be the case that in a AMD_S=
VM=3Dn
> configuration that function is unreachable, violating a Misra rule.
> 

I would like in the end that NPT and EPT being similar to use the same 
tlb flushing logic thus hap_p2m_tlb_flush() (with some changes), but 
that requires additional work.

> Also, why would hap_p2m_tlb_flush() lose static and cf_check that the pri=
or hook
> function validly had?
> 

that's not intended indeed

> Jan
> 



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Nov 27 18:22:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 18:22:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174313.1499262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOgcz-00039z-Ii; Thu, 27 Nov 2025 18:22:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174313.1499262; Thu, 27 Nov 2025 18:22:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOgcz-00039s-FT; Thu, 27 Nov 2025 18:22:01 +0000
Received: by outflank-mailman (input) for mailman id 1174313;
 Thu, 27 Nov 2025 18:22: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=jSjm=6D=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOgcy-00039m-5F
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 18:22: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 f649e8d4-cbbd-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 19:21:59 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH7PR03MB7786.namprd03.prod.outlook.com (2603:10b6:610:24a::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Thu, 27 Nov
 2025 18:21:39 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Thu, 27 Nov 2025
 18:21:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f649e8d4-cbbd-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eHMhsj8oYjkQ83c9c1dD2QCwpU5qsfD/mCrshe6YSxPjkmBspQ5W5zC8U/8THqGtfXP3nXZAEt1A4qKs6/amgQbIhWsMfDjIskl9S+zgWm1lktiHu8JGcGC9PTwxYL9uvNawWj4zIfVDBj0/dSwNO923zPw+TmkM23eJMa0D0jUsr/SLpXWLT3r0SgAj2wzdpayQEeObi/O1dx589lW/hvSUz5xvV+lYb5LiWKtgV3u34NGXKQfqOoxOk4PyPvRjV+pX6x0nu3smPZTxM+kgael1I0GvOzYMbsYrvG0gVIyQ0dLerczrJVpQQEY+uIDHkmB1wNbUGTH0o3bYY7CTKA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XcEwWd3xzdC7eQUR6Drz9RkwNP3m1aUhUqCqI6AFl2Y=;
 b=LSzsaYKWgZ2iwXS5y97/59YVg1mCPkFciI32hiW4UUmbfsuGebRU4Go2c5NJ2VwcqhOJ3Q9P9ItMZt2H/JqTpxhrYljBt3kv1wsirn+3yX+fjVstxYV5ktX6mTrpa6qUYcKic+ciWoVtkLPehRR7FqVpilNWfPnwdW4V7DXe7PiJIjYsRV2jVwTRD405fUrBP7S0e4gYTgoj7uff5Rxa+ve6gyQPBuVkPurtBIWbA6PmAec1T3EjWFxkAl7kXcjtEuQea1YPHST19bkf36tKhQ6K6cAXUDFU8ZAEY0v06tqyO3t0zJqcTqvbBQ68yHn27Y1MzX9NVG8H8thuSZ1n/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=XcEwWd3xzdC7eQUR6Drz9RkwNP3m1aUhUqCqI6AFl2Y=;
 b=jGJixpLOE0FcMmEafq3yHPGZmcuB6rAoNv3m4vTRlCrZIEbtZOu0pt7LchfRqOW3d7i4Zr68pS+mGvjKTj5DDOWORctwsUI2MBfC17v8XYKH1DBvPaWVcScba9eylC6XKoWuUXHIKTSbbOnNm+huFTcFYcXsSSAjq0CMT2CoNN4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <6d6084c0-0f0d-4783-8ec1-d84a7b9eb955@citrix.com>
Date: Thu, 27 Nov 2025 18:21:35 +0000
User-Agent: Mozilla Thunderbird
Cc: 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 2/3] x86/amd: Drop vestigial PBE logic in init_amd()
To: Jan Beulich <jbeulich@suse.com>
References: <20251126171539.890253-1-andrew.cooper3@citrix.com>
 <20251126171539.890253-3-andrew.cooper3@citrix.com>
 <9e8ecbc0-2dd1-4744-878d-9b09d019041e@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <9e8ecbc0-2dd1-4744-878d-9b09d019041e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P265CA0420.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a0::24) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH7PR03MB7786:EE_
X-MS-Office365-Filtering-Correlation-Id: e9ab4a43-16c3-4946-f3f9-08de2de1ce8d
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?MmgzUGNibERrM1hydXAybnJ5bzA3cjBINU1RYURINDVLeGNsWUpFM2pnamFL?=
 =?utf-8?B?c3dNOHVpU3l3L0JBR0JFeTBtSUcvSzBSVDIrM1dwQUp4RkFZWWZyVndJdlVr?=
 =?utf-8?B?VENzY2R3RW0wR2dHTWNwNFV1cXQwLzhIS3cxYUM2NitxZG9UNm5uM205R2JO?=
 =?utf-8?B?NURlSlN4L3VRMkJXZGNxdVNnUktnT1p0alp0RFF4azZpRkFQcWc5UVZxak1s?=
 =?utf-8?B?elZPK2tJbWtCYXkvKzBxeTJLMFVNVEU3Z3Q3WXREcGpRMUZkdDl1cVAzM05h?=
 =?utf-8?B?ajlHTFcwWC9XeHFDbXRQMjlLSlpyZHJLRVJvQTA3L01FVGVnbnVRalhWbGJu?=
 =?utf-8?B?ejFqbFFoVEpGbklmRnhUQmc5YlpQaURIdXFRZEtFaEJrenpjdGo5SDlYekJW?=
 =?utf-8?B?aWpTczREQjNzclpSNXBTaThPQmJBN25JWkkvOE1PUURMRVNheDhZMUV3a0la?=
 =?utf-8?B?VVp2bXZEVUNDZmxLMk9IYUZHZzZJYzVBU0p0cTZ6NUZOS2dBNWZlbVJwRjlL?=
 =?utf-8?B?NGZ5cmNmVXpPVkE1NytJVXcrTmorT21OTWVVZXVkaHhuZlRFSExTRW12Vnd3?=
 =?utf-8?B?MEtLZG0zazdNbVlrQzVOeFhjaGpsV3cydnYvRytBQXlMOWJiS1FadjNZbEVQ?=
 =?utf-8?B?V1p0MlhYVzUwbnpTN000NlRXbGdxaXVEaE1mUWU3ZWxJT0Q0WHlQSXg2VGRQ?=
 =?utf-8?B?TjFMczBRbklUcHZqL0xXdzRmNXVlb2MxamlieXhuREE0bUFFZHNBRXY2YjVz?=
 =?utf-8?B?QjRqdjdibTlmeUw4VWFmWDluWFRKNURYQjhSbWlPamVsMTQvVkp3cE9QYXAv?=
 =?utf-8?B?SXFPVms3YXgwSFV1ZDNmaytiakRGai9BZFRIYnRlTm1GVUg0ajlLNDRKOWVN?=
 =?utf-8?B?ZGMvNnVtb0RiU1N1Z3VaYVBidEgyMTVPczFSVFduWUhoK24xTmlVUWUraEFh?=
 =?utf-8?B?TnVMaks3ZklpRndXSFI3QkNGQmRFakpHb1l2Qkw2T25QekJHV2VYa1U2eWFt?=
 =?utf-8?B?RFFaRzcwdkZON1U5MDQxWGlxWXlsRTZXTkpXQ0dJbTR4a0JqV1haUE1qQzIz?=
 =?utf-8?B?QjkrZmtJbGNxUFJoWTNVZWNCbEptOHJvaG1PSWFNQ01xVUFFVG0yTk1lVDN0?=
 =?utf-8?B?Ylg2K1BTQ2I4N0kvOXRWZndFWHdVaE4vYno3QnhRNzc4b1NOMTZiLzFUR2NI?=
 =?utf-8?B?eWpLUGdESjRxMmVuM1ErTHg4YW11UjNIZDdad3ZNUUlYTWlzMWdxaDhuaWM0?=
 =?utf-8?B?bHVPY1NTYm1OSHNOUTh6eXhVdXhQQTVITHI3QytDQjlDSmNnVTUvZXQ2QURs?=
 =?utf-8?B?M0FuTW9wZzd6VWJMRS83VENlcUpMdWk5cHdGbzAra05iRVNaNGMvci8yVFlO?=
 =?utf-8?B?K25PcE9QNklucExxdFBtU056SS8yalM2T1VhNUxiLzJUWGtMeEdvQTJXa0hY?=
 =?utf-8?B?RXl1RERUNXZYQitPTTE2eWd4dUtjSEllbFJRblRKUXFrZVVSc01Pb0QwZTJp?=
 =?utf-8?B?Z0tFUzhJWkdZU1VHVlRLNnljMTIvNFQ5S0RhWU1HVWwrQUZDN05tRzVVbnFl?=
 =?utf-8?B?ZFFIK0dSZWM2Rm5RdVdXd2QrMjdzZXB6UjRKb2xoMmorcHU2bFJPR1ZnSFdQ?=
 =?utf-8?B?QUoyenZkU0FZYVZLTEhzZGFMckxvYXVNVk42Vi9LczZ6R2RYdThZbkVqWTMx?=
 =?utf-8?B?b1Y5M00xc2FlU3cwMEhxOGhxSEdUT3QyQ3dkTE12d1J0UEtsRk9KbTFOeC9X?=
 =?utf-8?B?bmhleWdDYmI3TlF5SUE1SFVKQllSMnQ3VkZQck1hbWVBUjJhSDRQb3lqN0d1?=
 =?utf-8?B?VWhBTGFWV0VnQWRhMUR2UFZzdHVxVFZvT1JzaDB6WkNTVldRYkFPNkFuVzhS?=
 =?utf-8?B?d3FtSy83K1pkR0RGelRvYTJZM1ZLZXZSTWh0ZUxZS3NvbFgvQXBTMG1iWDIz?=
 =?utf-8?Q?gqKUbeL4K+SzvJJTBTdFP6DEUBAgIo//?=
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?djRGZGxGRFd2RU1wdFQyWnRqUFh5TmlMd3NUaE5wU0hZWnlacWhyQ1IvajZN?=
 =?utf-8?B?WlFweEd0WThvMFgrVUwrY3BoaHZJZXlrOEhPWmdtVFRscUhiQlZybkVRK2F0?=
 =?utf-8?B?MXcyWGVCK25reTJ6NHkwMmtGTjU0ZW5GQmRGMGRMYmRQL24xNElCSzhRK0wr?=
 =?utf-8?B?OUFGVkxPL2tUZlpLQ0hGcUhJcE5vNE5BRzl0Ykhwa3N6U3VFRGxlaDhHdWFm?=
 =?utf-8?B?T2FENG5NbVhqaHRrMVdkU0x2R0FaTEVueFQxYlpNWVpmS3hQRVNOU1R6YnpX?=
 =?utf-8?B?dTBFNVRXSEVaUFNDbGZkejdhK2FQQXBOa2JmVlZNbE1uS0RVaVhjYW9OcDMr?=
 =?utf-8?B?N3RPK3N2N2R5ZVlCMHNTQmw1MkVnMnVTVjk2cXN2eDZCWlBNWFFMdUhXbkJD?=
 =?utf-8?B?dGRTWGlvM1dmM252Z2lMK3lRWDJobjFUYUFWSk42ZFNGL2pjY3RwTVJGa0pU?=
 =?utf-8?B?QnJNUDNQY3VpcW02K1ZBOVRDSzE2cXJrWWVhVDhUYXlRUU12WFJnWG9FU1hm?=
 =?utf-8?B?NEgyV2lhM2RkQXdNYkhjNEZhQXRXTDk4VjNkb2ZpdWdPMGNmZnlNV2RTYnF0?=
 =?utf-8?B?TnA3NllqcVpLVnRsYjJXUEhaZUcraVZHaGxNQk5KV0pJcmY2T2FGUWJJZ1VZ?=
 =?utf-8?B?VU5DV3AvMlpaUVE3dXVNdnhvUVhNcW91UjVRdHVNZW94amRESWpwQWcrVndz?=
 =?utf-8?B?YWhoWWxpU1UxMW05YUZwRXZCKzEwWnFjS1d5MDRiS3RUNkFHcXVNZ3FhMExq?=
 =?utf-8?B?K2Uza2dNNzJEVVo5c3FaM1B0eGNjeitoSGVpaERXZ0dpRlI4SmFMRlZERDVR?=
 =?utf-8?B?UDFjRXpiWDA5Um5JUVlnWEdMV3NMWENzaFpaS1pMUFFRWENaaExPVUtTeE5m?=
 =?utf-8?B?b0pINlhBZk1tdGttUEJIcUM1OVZNV0VmTUthOGJQaXhpMURkU3NCN1M3VklL?=
 =?utf-8?B?Nlp5V0R6ZmpXR3Vvc2ZNMUkxYURXNjI0aERablR2eGNFY2lHakVnU1FCNzEx?=
 =?utf-8?B?dStVSSsrUlVzVnNKNmJSZTAxWCsvaDdha2hUNXkyUTlGMkJqNTArU0tTbjRL?=
 =?utf-8?B?ai85U2VJZDdnYzR3dUhIMVp5Vzg3elJEWVNSUisxelJnZ3lIZm80eExxWjZz?=
 =?utf-8?B?OFpKL1RNd0NWRm9xSG45MWJ0RlV3ajJpRStpS0xSdEczNS95R2JWMTJ3M2NM?=
 =?utf-8?B?V1BtUG5WdmtGYWMzM0doYXRzYkxVOGZNUGlIZzRRRWI0WlFkS1RrcjFaVjM4?=
 =?utf-8?B?VGlXNmQ4OThhZy9Ed3BEWGhKOWw3T3lTWnFtQlk2WitTM3NvUnlxUThKdGpi?=
 =?utf-8?B?SWVZZzZScGNnZWxQMTZuTnNRMCtSM01jUnNxRTNOdFZoNXBvT2pnVjE5ckI1?=
 =?utf-8?B?MWtwT2R6ZDkxZ1N0dC9qTWFuQVFVRUJZdTdFb0lZcmJDMjBRZ1d2MUxOUzQy?=
 =?utf-8?B?WU1BS0xRM2lOdHFmejRKbW56S2FJZ1dpaXliWXRPcy8xeDF1d3JtSVRUS2NF?=
 =?utf-8?B?ck1LNE50cnJNQ0tLNXlaREhlbWpUS0tncVRGYXd6WWs5RWNCMHRreHJnMXdQ?=
 =?utf-8?B?dDB0WUNqUGNnWmlNZzdLUUxrS1dzamZISDZFK2tBQytsYWNsbEtYMkEwVU1L?=
 =?utf-8?B?WXJweTQ1Y1ROMkFLMTJ6N0UrdkJaSVdybzlmUEYwcGdwSDlrc292cmhvVlBX?=
 =?utf-8?B?OVYzWjVubm1oZFFpbGRSamJTZEpPa3dEYWhoS08zSitCQ0Z5Zkg3ZFk3Mmxl?=
 =?utf-8?B?Q3phaWd6dVp4K3RHRklmLzEwMlczSGpDNmdHNWMrcTdlRmFXU2k4SkJ6Tkk4?=
 =?utf-8?B?RDA0MEgwdVBMaFhIQUFocnlFajVRMCt1cnJFTkhnV1VkVVVZU3h3NWtlVlZU?=
 =?utf-8?B?YzR6eEt2WUp0THFucEJTNHBsQWw4QWRTbGtOcHVGa1BSaXRvYzl1MnZmTy9p?=
 =?utf-8?B?QzdOVEdrVXJnSWxMbGlkZ2haQnNwZDlsczlhdWdKdVB4VW54Y2U1bmVIVnpC?=
 =?utf-8?B?VURKV1dGRFhhSHNiejBqZFlZU1JSOHBqM3BVRHFwVDRXOXJDN0htdGdXTzdB?=
 =?utf-8?B?ZXpkVEI2dkVqZWFHNG5nd1RNTUFoUFcxTThRaG1JcHA0VFRRUlhlNmxFVDNR?=
 =?utf-8?B?U0I5Y3BqdFQ3aXdLdmxYM0x0OG9qNmU4TlZ4TnNGaGlncitiZWl6YTdsWjIy?=
 =?utf-8?B?cXc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e9ab4a43-16c3-4946-f3f9-08de2de1ce8d
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 18:21:39.1179
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: YxasZkNxdTPQhs7LUbHBJY8cWABTWtEONLrntVGpKSrywAxki5pWeHn2IuU4+GJHY++6b9fVBSNLia0BXCWZFlndvRjt9EYXvvb94N4FJ9s=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH7PR03MB7786

On 27/11/2025 8:44 am, Jan Beulich wrote:
> On 26.11.2025 18:15, Andrew Cooper wrote:
>> The comment was adjusted by myself in commit 51bd4bbdfdba ("x86: drop
>> X86_FEATURE_3DNOW_ALT"), on the presumption that the underlying logic existed
>> for a good reason.
>>
>> Having done further archaeology, it turns out to be vestigial technical debt
>> from the leadup to Linux 2.4 in November 2000.
>>
>> Prior to "Massive cleanup of CPU detection and bug handling",
>> c->x86_capability was a single uint32_t containing cpuid(1).edx,
>> cpuid(0x80000001).edx, or a synthesis thereof.  X86_FEATURE_AMD3D was defined
>> as the top bit this single uint32_t.
>>
>> After "Massive cleanup of CPU detection and bug handling",
>> c->x86_capability became an array with AMD's extended feature leaf split
>> away from Intel's basic feature leaf.
>>
>> AMD doc #20734-G states that 3DNow is only enumerated in the extended
>> feature leaf, and that other vendors where using this bit too.  i.e. AMD
>> never produced a CPU which set bit 31 in the basic leaf, meaning that
>> there's nothing to clear out in the first place.
>>
>> This logic looks like it was relevant in the pre-"Massive cleanup" world
>> but ought to have been dropped when c->x86_capability was properly split.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks.

> albeit I think that, along the lines of a comment I made on Matrix, that ...
>
>> --- a/xen/arch/x86/cpu/amd.c
>> +++ b/xen/arch/x86/cpu/amd.c
>> @@ -1131,13 +1131,6 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
>>  		wrmsrl(MSR_K8_HWCR, value);
>>  	}
>>  
>> -	/*
>> -	 * Some AMD CPUs duplicate the 3DNow bit in base and extended CPUID
>> -	 * leaves.  Unfortunately, this aliases PBE on Intel CPUs. Clobber the
>> -	 * alias, leaving 3DNow in the extended leaf.
>> -	 */
>> -	__clear_bit(X86_FEATURE_PBE, c->x86_capability);
> ... while the justification applies to what the CPUs surface on their own,
> the basic leaf masking MSR could (likely) still have undue bits set, and
> hence may want pruning in exchange / addition.

As said, the ability to control CPUID in this way postdates by a decade
this logic in Linux, and this logic came about because of a logical
issue/shortcut taken by Linux, not because of a CPU which really
mis-reported this bit.

We do have logic which adjusts the override MSRs on AMD based on errata.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 19:00:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 19:00:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174327.1499271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOhE0-0008Q0-FY; Thu, 27 Nov 2025 19:00:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174327.1499271; Thu, 27 Nov 2025 19: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 1vOhE0-0008Pt-C7; Thu, 27 Nov 2025 19:00:16 +0000
Received: by outflank-mailman (input) for mailman id 1174327;
 Thu, 27 Nov 2025 19: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=jSjm=6D=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOhDy-0008Pn-Ie
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 19:00:14 +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 4ccf6f1c-cbc3-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 20:00:12 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH0PR03MB6147.namprd03.prod.outlook.com (2603:10b6:610:d2::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Thu, 27 Nov
 2025 19:00:09 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Thu, 27 Nov 2025
 19:00: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: 4ccf6f1c-cbc3-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aLbi87JenYpaz7hph1m2aom+UqUOSINiS9ysXQEw24JqHV0bTogCZGy5GhEUAnsZC7VEtXU0Cvn9ZclzlLbnFBbVv7jReFYfgeNHBX9KQDCEA/UzNAyFCg4DVhMf00oU/+6T1+3I6bK7O8I/7XpUufUUgtRLxOxOnTeEjFGNDASOkfvH+EB4xF5KGt+OfAA9oegUqgFq05bBjSu6GS+5dT3AHTzS3MdTOkz7akinbgdn+0vb01pwqNe4sqZev4FtYl9IBr5ZCbjgRNz7+e1/IsIVOoYvGqTryLderE1uI4InLx5wmuI4I74wW+u6GEhy/JuiRWsukkEQbNtiAhE2EA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=m7wJlR7qEARQva3sdo/oB5CDQMH8trI2DZKgM/JXrpA=;
 b=oDenQMaWftytZs9Zex9JMkYNz4RO+u9KNFfBcY4RjZwWjOyIKN+jAY52TY8sGcrogthhRo/eGdtVSXrS8sNZ2Id2jqoYCXLWLSI66mP4MVDJBM5cT28Z29RzOnv2y6yxvQGLgvjMa6GIe6rP+tCFKKH24LbDD3b0bgPPxuuwUTlySKgk4SS5Jh3X5+xezFeQDnImU5r7UrCiB+R8NTKxHiLQX20VJhHJeIIc4JnW6dbelOJAQktBYpzLgKTXCPqB2tkRmdrnw3IhEyJdX95I+jo5XvUdj1ixDB/tY65THw7GfgCIVfISh/vUXF0x48i5+enYo57UnXYdhz52l14DwQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=m7wJlR7qEARQva3sdo/oB5CDQMH8trI2DZKgM/JXrpA=;
 b=tMthip0AgRt6xHDPngrgsDQLR1zwOh+x2kYfP2FEmgqXfWFgOgpFOkwQUlmPVITxJUzVPyyjHKOtValnaoYdktD2gqUtLw6/A5IpMelhXRZqKw6PJp+4Y24BqFn09Ph87TmaGuZHoZdrpL6Z18GgXWYw6IAUINycIYirisV756o=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <6a60f01e-33dd-466c-a93d-6b0720180ccd@citrix.com>
Date: Thu, 27 Nov 2025 19:00:05 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, jbeulich@suse.com, roger.pau@citrix.com
Subject: Re: [PATCH v3] x86: Remove x86 prefixed names from cpuinfo for
 intel.c
To: Kevin Lampis <kevin.lampis@citrix.com>, xen-devel@lists.xenproject.org
References: <20251126191945.3386781-1-kevin.lampis@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251126191945.3386781-1-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0497.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1ab::16) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH0PR03MB6147:EE_
X-MS-Office365-Filtering-Correlation-Id: 42f1d581-d446-49cd-6c98-08de2de72f5a
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?UXg3YWhjL1kwK3hCZjU5VUYrRlE5bHFyenlrcGpzY0FKMWlJYU8rUzRXTjhW?=
 =?utf-8?B?dG1zb3VrbmVab2E5eXRnUHptSEdFY2pvc3cxVThKa2VreC8vck9ITVVsWXJW?=
 =?utf-8?B?VkV6MUNXR2lTalErUm85RTdLSFhkTTd5SE43MVI1VmJlc09jRmN6MlVVdmRp?=
 =?utf-8?B?akZHbXhudis2ZjlUcHNlREJFQytHOEFQTHF6V1FwSGVlcFFnV0NyeDFQRmRI?=
 =?utf-8?B?TWpnQXNvZnlZcm0xNXR3c3VsSXZEMHlwZnhBUzBna2FndGFpODFLU2RhQmdn?=
 =?utf-8?B?dzVPL21Kb0dtQ0JYSTdpeVJUUHVXWk1wRkdaYXRKcXZsQ2s2Q2haMnBNYjg5?=
 =?utf-8?B?b21GTWo1WkhDL2loOUxuOFBzaTQvaDF4ckQ1ZjdFa1RrQlBXUDg4bFVDWFJv?=
 =?utf-8?B?NEFQdGM2alVMa2VERXc2N3hlNUYzQ1ZQd25WUURiOW1uQ3RsMmVaSFh2ODZr?=
 =?utf-8?B?RWdKbmtvOWJSYjNaLzhJM0N1TmkzU2NicGk0OWJ3OVduelpxdkV3NE40VC9S?=
 =?utf-8?B?TDJqRVhIWkpYNWtqNVRvT2J0enFNbUFpdnVVQWxVcXJ2NzJiVkQ3TmFGRXNW?=
 =?utf-8?B?Y0w3SUYzdGg0cHdNTTZBUmNnUDluUE1uV3lrekJYTjlhMmlPUHp0bWdHS0Vj?=
 =?utf-8?B?WVVGQnY5cGdycTE3NGsxOVppRC9RMUI3Z1p6MHpLd2tqN2tNVG1ZSUNLaFBz?=
 =?utf-8?B?Z2VlOWRhMVFnQjVaczB0S3ozZ0N5QnZuVEJKekNjTmpFVlJJT2RpQ1ZFYUg2?=
 =?utf-8?B?OHMyQno5WXlzTFd0L3RCQ1ptdnZpQ3owQWUrbHZqSmJPRmMySmhhdmEzQXJt?=
 =?utf-8?B?c3BrUWdCTFFuY0x3aXd4aVRkVC93ZU5JS2lEL2g3L3M2TmtmNEJQZDJVSmxt?=
 =?utf-8?B?OU1HZnRXalM4enR6V3pZSW4xQmhpMlltZlRhM1oyYmQ0SDFPWFZnd0ovaUdh?=
 =?utf-8?B?N05QZFo5VFRrbHBUQ2Jwei8vbDBySGZZSWVubVdwbFZ2ZlpNdE5xa1Y5R1V0?=
 =?utf-8?B?eUJ4OHdrd05uRXhLRXRrYWl0QWhYaFhYUHZpdEl2N2JhZW9ybG12aC83YXpK?=
 =?utf-8?B?VVA2K2Q1dU5lRVVhYUlpeVRCQzB5ejBTbEYyT2JKMTlLZit6UTNSOUxta0hC?=
 =?utf-8?B?encvazJXalJCWW8vRVR5QVJTeWIyWFZxM1B5UlRNSEY2QUQwb3BCLzM4SHBE?=
 =?utf-8?B?MlJjbDRJSjdHaGgwWDhIcE92bnI3eCtJRVBidmp4VFhXUjhmZ1k4RVd4OVgz?=
 =?utf-8?B?VUk2emFjbEdoTllaKzQxVXdNRHZNa2NMR1V3Nkx3WmpnekNnc1pBbnlDdERY?=
 =?utf-8?B?R1JUU2lHZHFjL2JsWU01RkVQdm16cmFNLzhEWDBqdG1qNExybjlkcjl2NnN2?=
 =?utf-8?B?TVNiY3JEV2pMeGN3OTBkRHdDTGE1WGprL3FqYVBwL3VUZHU0LzZFeUJVNDNq?=
 =?utf-8?B?eFdvWEhlMElJMHVLTDJDQU5lS0RLa2ZqbHMyNjVMQ29rRlh2RysxUWhvRU9z?=
 =?utf-8?B?bUhmeGdQS2pRd2FLRWtkZmUxREJLcHp5b3IzZEgrNTV2ZFErQy9OU05oc0Jx?=
 =?utf-8?B?UGU1WHNUazN0R2RuQ291Zzk1MFhNL1I1N0NOdmZyak91dlF4VkVOTFNBQkJE?=
 =?utf-8?B?c1lOVjlRa1RBTENwVnZrc3BaWmVrSzBsKy9ISkZydWFqK0N4b0tZMHNJKzVI?=
 =?utf-8?B?WnM3TmVhcVN3YytmZzVvMzg5MHJZN3N3MXliSWwyLzN3TkM2d3ZLcXhsN2oy?=
 =?utf-8?B?YVN0eGd6bVM4OGwvMXo5cVZuSWhUdkFST3dYQmVFRzZTb2NadTR4bkRyaDRC?=
 =?utf-8?B?ZEZLanF1d3ZuVjBYUG1mWEJGczZYWVR2aURGQnlkRlBMY3VUMVZMdndmakZn?=
 =?utf-8?B?MXA4VFVPQjJLK3VuUk9GQVErRXB4TTNlOHFCTWFsSnQwcEE9PQ==?=
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?YTBEbUUyRXdCbjBxMWFRL0JhSnhCa3I0eHZsZ0lkQzNiYzlEWVUxT1pxVjIw?=
 =?utf-8?B?SGFSV0kyTmIzcTZaU1lFOGhvMHRML2xhVzMrbWZZMGZNdkRiT0Y0dTlUSmZP?=
 =?utf-8?B?MXlqL01KcEdLWHBOV3BuTlp2dG1kazMxTFFCTHZTUkJQOFpOeE85c2J1Mkht?=
 =?utf-8?B?YlNMbVpCY0VRR0N5NlZ1bEdSRlJUcGkxb1pIQ1gzRVk2S0dKc1lZTkwrVWZT?=
 =?utf-8?B?cHVqVTZLeTdYOG1MaXdqV2dVWDR4cTNlU1dWeEJwS2c0WGpGWG51QTd3K2o4?=
 =?utf-8?B?WWlzUVJKQ0VGTmIwQ3F1RkpMQUl1TzZSd3haVUs3QkxCZlJUSG1MdWxVTlR5?=
 =?utf-8?B?dXN5TnhFWWppUGdBMjF1TDZ4My90Q1lJSWx2MjNCZWJUSVFuTEd4UUhoVG5w?=
 =?utf-8?B?THRhaFFqQm5GUUN6Yjd1SEtJOVZRekJQSGZpZ05RdGR6MHFhc0pyNTUyMWlE?=
 =?utf-8?B?WHVKQ2pVa2NLakVzMWtoOGlSOHdvQjhZOEl4MGVnZ3ZzLzFwYW4zV2ZiNDVW?=
 =?utf-8?B?ai90NlpOVVhCVzM0ZDdwOElQcWNjL2xlS2NJc1Q2QzlSamI4ai83MGV5RW03?=
 =?utf-8?B?dGtMOGVRZElMNnZvbk4xdDlNZllCTlhGbDA3L05ZNG5aN3BRZGxuNk04b1V2?=
 =?utf-8?B?WnVwMG9oME50d0U4dEt2Kzl0Sm5TeWJ6WWYxSXNqNVdoUEhQM2FJa3ZldENp?=
 =?utf-8?B?cW9IRVdBVFAxaFV1MTJLS2ljdzg1QUxSdXRGNDBKMVpEYmFVRGUrZEdLYWdP?=
 =?utf-8?B?MjZRTkxET0ZGdlhqZW9MMW9GMlVBOXJjUEhQVk4zQlM5cHN5QWx0SzFReTNo?=
 =?utf-8?B?V0E5M2QvRFZ4S0d6SUcxWmRGTm1rVlBCRHdLaUtWRWJXTGxLNkpDRnBUcys3?=
 =?utf-8?B?cHdTSUdtdFkvWjdyR1VqeVVQTnUzd2dIaDQvTU1TQ2tsbm52Wmt4SHIyR25M?=
 =?utf-8?B?V3hVZUlpKzI2eHlkajRLOFBNVE8waklTVUdtQUZPYm5YSlh0NW9kVUdQdzZo?=
 =?utf-8?B?dXMrQ0lkTnNwdmFtYTVsaHFQYW9qb0ZyTkdnWlF4RDBPQjVlVzJxY2VlM1pC?=
 =?utf-8?B?ak5CaVpCMDU2QTcvSU81NTZ2Z1RrUmUzTEJrN3pHT3VZQzZhZGNRcjNZZWFJ?=
 =?utf-8?B?MjJFYUdEb2VTTDRZd2pGNXFuMnR0WVVyLzV2OHJpZ0hBbUt1dVlwRDhaalhD?=
 =?utf-8?B?UVFUMTlhSkc4c3VYNVlkaUlWOFNFRjV6aHpTQWN6RWErQzlEa1djSTRZNDA4?=
 =?utf-8?B?R1lPNHlvWGc3R0VPTFVaNjZrZk04cEhLbUd3cnliU2JiejV3bGhCTW40WXlj?=
 =?utf-8?B?WWgyRnJiNXR4b2g2R1pNN2JIY0FMK0xIczZnQlBUMUM2Ukt1NDVzNnR3OGpZ?=
 =?utf-8?B?dVpQVXRyVUpSMS9oOUJHd1loaDdRaE1RdWY1T2pQWnJkdURoUWpqTHlxdHQ2?=
 =?utf-8?B?bk42NENNSURHOW1mMlU1eW9Rc0tFektwOHFHYXpCWGFTYWJuSHpYd0I2MVVC?=
 =?utf-8?B?M3MweGNWbFpwNFc0dWo5RnZBcWR4ZlRSUXF1L25uR3piVU5nSkIxaCtoUEhZ?=
 =?utf-8?B?ODJVVFNLMkFyVHJIVENTK09BMERUSGQzYjZWWXc4Z211QW81NkJnYXJVV2dD?=
 =?utf-8?B?YTBEZklabks1anR4akNvNzY0VmNVcWJCamhxNHFpN2dGaCtnRFJRN2VuL0M5?=
 =?utf-8?B?eldDMXZUdWcvMk8vSDlJZ1lnMWlpOXBsb3hGMnlwdFk1Zm5JakxzTnZab21o?=
 =?utf-8?B?MEl1c3laKzlrMlBYVVZsQUdmeTN6d2Y5cFB4Z2YrVUh5YW9KL3IzVmF1M2dM?=
 =?utf-8?B?bUxYOUVnTGF1YU9qUmlsakpVaE5vb0srS3RDbVhkREh6aHMzZXFnenE0RTlo?=
 =?utf-8?B?enpPVGhuTmg3YW5kVFJhWnBjemMxNjFZTFJQRVRBQlpEVkNtbjZZUnFjaUZw?=
 =?utf-8?B?SVZLK201N0NuMGhNbnhDVUEzd3dtYk1LenRLKzh6YitRWGNMMU5Wa3ZNMllN?=
 =?utf-8?B?ZFhTYmh2UWVVRENERjJtN1NjODlMbG9pY295amkyTnJMdTh1NVROTk95d2tP?=
 =?utf-8?B?RXFCN2NXS09rVGlUTklXa2diZkxjYkFuL3BVY3Jva3lMbWV6bnFuL21TSXg5?=
 =?utf-8?B?cThFeG0wYk1rSFo4cnlUSythQWNFM0x0UytWWkpWWXdwbit6U2FLV1pyUjUv?=
 =?utf-8?B?RkE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 42f1d581-d446-49cd-6c98-08de2de72f5a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 19:00:08.8967
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qflhn6IIV/5CDFb7kqgfm7qPJXAtFMcOLFr+iChu1npwT4yGcqLGXoYnxSn5vuSl+kAZ3JE6ktLT4x+ZWboT5Uv17gBU9HtMTnBMJzbOKWQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB6147

On 26/11/2025 7:19 pm, Kevin Lampis wrote:
> diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
> index 6f71365b7e..ff20f5667f 100644
> --- a/xen/arch/x86/cpu/intel.c
> +++ b/xen/arch/x86/cpu/intel.c
> @@ -137,28 +138,29 @@ static void __init probe_masking_msrs(void)
>  	unsigned int exp_msr_basic, exp_msr_ext, exp_msr_xsave;
>  
>  	/* Only family 6 supports this feature. */
> -	if (c->x86 != 6)
> +	if (c->family != 6)
>  		return;

The f in vfm is Family.Â  This condition should be dropped, and the
switch() gain a default which simply returns.

> @@ -265,7 +267,7 @@ static void __init noinline intel_init_levelling(void)
>  	 * so skip it altogether. In the case where Xen is virtualized these
>  	 * MSRs may be emulated though, so we allow it in that case.
>  	 */
> -	if ((boot_cpu_data.x86 != 0xf || cpu_has_hypervisor) &&
> +	if ((boot_cpu_data.family != 0xf || cpu_has_hypervisor) &&

Everywhere else, you're turning 0xf into 15.

I've pushed an interim
https://gitlab.com/xen-project/hardware/xen-staging/-/commits/andrew/intel-vfm
which has the style corrections and these two fixes.

> @@ -657,14 +670,16 @@ static void cf_check init_intel(struct cpuinfo_x86 *c)
>  	/* Work around errata */
>  	Intel_errata_workarounds(c);
>  
> -	if ((c->x86 == 0xf && c->x86_model >= 0x03) ||
> -		(c->x86 == 0x6 && c->x86_model >= 0x0e))
> +	if ( ( c->family == 15 && c->model >= 0x03 ) ||
> +	     ( c->family == 6 && c->model >= 0x0e ) )
>  		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
> +

This is logic that becomes buggy with Fam 18/19.

https://git.kernel.org/tip/fadb6f569b10bf668677add876ed50586931b8f3 was
the Linux fix, which will want adapting as a prerequisite fix.

>  	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);
>  	}

Note that Linux's opencoded "c->x86_power & (1 << 8)" is really the ITSC
check above.

I'm about to commit the resync of intel-family.h so that will rebase out
shortly.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 19:25:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 19:25:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174337.1499282 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOhcI-00039l-BT; Thu, 27 Nov 2025 19:25:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174337.1499282; Thu, 27 Nov 2025 19:25: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 1vOhcI-00039e-81; Thu, 27 Nov 2025 19:25:22 +0000
Received: by outflank-mailman (input) for mailman id 1174337;
 Thu, 27 Nov 2025 19: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=jSjm=6D=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOhcG-00039Y-MX
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 19:25: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 cdff7a1e-cbc6-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 20:25:17 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BN9PR03MB5961.namprd03.prod.outlook.com (2603:10b6:408:132::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Thu, 27 Nov
 2025 19:25:15 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Thu, 27 Nov 2025
 19:25: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: cdff7a1e-cbc6-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=k84rRTzUGWKsKUsf5wB8gU7e0AAjJZHv1El2eJfq/iT1g6Rwr9zJTy3vqZg7LVg7xXwG/SiZ438Fn9NIT1L3xlBRxYy9yIe3O/8CLFO3uwfCH2klb90v/5J1pUaIvarUQlJVxoAXGh+OneOcpoaFwT7xbqpbWCyrbd08vPsJKMRZKThv8FqtS4p/F/1BqjVt9Mcc1RTcUGDQb6EpTJ7NhNwP47zKArOZCBtaUunZsXXAAfpMGJ812Kzhj8GmwWHvSDNIn3LzcZeyy9VzZv4Vh+K/V/dfIi6GlY0njN6LmybIQcheXPjdezuIZXj2SDAzcLVKioo38JcfVFORlgLsYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4HNCP5jAwcxGyO2UM6DcXNhG3jcYtke2rCMfTOwjTsM=;
 b=Py+aBuPF/7RRov4aTDmX9r72sp6oHsq9NRkOcc8wzWVLGh9Co4+5Cr6uHjRtStY5KZdgK3gRlTjvvBaDDigxnEpJbVcMdRxkcHYjhKap1bSIbtjBL4x1iLn5RpDizA7a8zvqaFq2w+bmrrx5E0zdcW0j58ksPc6efp9sWV5d6qG4DpgcNuQLSaqHMnqpHg56zBtF3z6iiqEzcPfs1nOLN26MB/Q5QqTXAKWIIGEKBd/FCSqBQB3u0dArFZH+PjqiTmNliWlXgNbU/KWRs0UyTVQgf6Ii5cI2lZlfz5telhbqjvYuo72iAaXN9Lm6p+Lz9dZU81huqFHqfR2VNBCK5g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4HNCP5jAwcxGyO2UM6DcXNhG3jcYtke2rCMfTOwjTsM=;
 b=s+LY+noI5WEgyQA35grfo4YtxBaDckzYIJwPYOcFSf8V4cu60A9G/Z4h9NScyUJ/imrYhhLjyc46XctuX/WsPlJ8GiQf4A7wlL6cAeJ7UylJMIpzAu+L2qjbUknGtye9TpWhg564o+NzV7v9E0JijLftk5aR3jcnFIbd2sxO1lg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <7b03017a-139e-465d-ab3b-4a504dc8c8d9@citrix.com>
Date: Thu, 27 Nov 2025 19:25:05 +0000
User-Agent: Mozilla Thunderbird
Cc: 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 7/8] symbols: drop symbols-dummy.c
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
 <639fb816-c2f6-45d6-9081-238a6b3c5c08@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <639fb816-c2f6-45d6-9081-238a6b3c5c08@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0102.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:191::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_|BN9PR03MB5961:EE_
X-MS-Office365-Filtering-Correlation-Id: 228e8d0b-af91-44cc-7c37-08de2deaad9f
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?ZFVEMkFsblhCa1I0WTh6MlRnS0FhTUY4SWNxQWdpT3MrRlhDazVMeW5TSk4w?=
 =?utf-8?B?Z2xXQTA2VTJEbW9pM3FZbERUSDJWMElZNkJvbXZuQUNMaVJlTDV4bUdYbDlG?=
 =?utf-8?B?eEhoUm4vRHR1ZytHdWRKL2ZRUjFHdGYvOC95L0V5YzdYK2xRdzlMQjdjejFy?=
 =?utf-8?B?bldsSXFYSGlGTks1Vk5yYlFZNHlpTDlaZnZxY3cyZ2V0TkJ1QUhKdzh5eVUv?=
 =?utf-8?B?ZW9kZFJhMmtHRjhJd2o0UzNSY1hJZ1ZqN3ZNZlF5SjVteHNqNVM5K1NESXlC?=
 =?utf-8?B?dVROSTBjQVUvYlhiYzhxczA3VUdVNGFSakZjUTY1V0lucDNFSjdjVXZyL0Uv?=
 =?utf-8?B?MGhRTG5Tbm9SQThTQVppTjVsbE5PdHB3cGkyQkZOOUl1L29IOGJNSUtaWXE2?=
 =?utf-8?B?TUVnaTNzeWgxUFZNWUY4YzNKN3FHNkhaY013Si83ODZEM252cEdMYUxlVkhs?=
 =?utf-8?B?b2NRMnREMTZZektoajFQOFdkN0MwdWdCNG1MTEg1eWJlRWRBYkxSQzRDcXNy?=
 =?utf-8?B?OWF4WHllL1A3anZjNGl2QndRSjlzZDFTaFE3SXRYZmlnUGFTd0ZkQ09YTHky?=
 =?utf-8?B?UkpDZjRDU0pGYWYxM2czTXAzMkdCaVJ1TGFFUldNQWg3Y2xITWphODFoTzZI?=
 =?utf-8?B?aGZ6a0pGdVRnZ0tDV3ZZdXBrekxxc3htaVRGaXYveTdzdy9ta2plUnQ1NVIv?=
 =?utf-8?B?U2xsNFdlcHRsa2RjTG0rZk1xQ2xJWGxVSEtlelN3dk40UVFVNDhuQXIrL1BZ?=
 =?utf-8?B?QXA0b01KbUhEajRIaHByMFc1N0dEcXM5bVA2UDIrUmp6UE14T0ZIWjMvY3ly?=
 =?utf-8?B?TTJiMWcwU0phekg0VHRVOHJKeGt0QXdKWE9nUmdjY3V2TWVFTDBMMTY3M3pS?=
 =?utf-8?B?R2tuY1pJbXdQWUUzSmZXS25XelJhOHFuS1p4TVJmb1k0WHZaMFNWVGQ5dTNr?=
 =?utf-8?B?N1FEVldWemVpeEliUWdwZTdiWkxwa285OWtuL3R2M2VPZzlycVp2b1dZSExa?=
 =?utf-8?B?SE9ZaVBmT01RaFlrWGlCbDMwOGYzMUg1TUhTa3hCcnFzYTB0UGhKN0NodTZM?=
 =?utf-8?B?SWtwWkVlblFTMm9SY3pWLzUxU3BMbzJVdGEvNnpGVldjTEpWT3p1Z0EvM2Vr?=
 =?utf-8?B?bzRSRiszYURnVmVVT2tldHY4aUZnTnJPK0RLcTZRQWlobkt1RHJtd3NoN1Uy?=
 =?utf-8?B?YjVnZGRQejRxQjJjMUpMbm5IUCtxVmV4WGptU0V1UEc3dEEzRGJOdnhRWk81?=
 =?utf-8?B?a211dGhpWklBeEhkS3VWdFBFMjlVMWJYTVhaN0FLQU10THIrKzdSdDgrWnZJ?=
 =?utf-8?B?Zms3Y1N6WUordWplNjd4UUV5UUZMcGNEQ3lyNHFaSUljc3ppQTl5aTRiTWV1?=
 =?utf-8?B?Rk5zOUFvVUVoOE92UWFsWTdQZ1pnVWkwSFdZNUV5K1BBUlRmTERRN0RNaWJl?=
 =?utf-8?B?MjRvdEtUSEgyeFMxMlo4SUVGUmd0S2dLL0MwWk83clprVXk3WlZFL1NoWVE3?=
 =?utf-8?B?Uk9Ua2pvZTV5SUNYSTJNd0JRU2dENURzVzRhRXhYQnhVT0JWUENOWlJZYnhV?=
 =?utf-8?B?QVAvU0ZkYy9yRnBKWk9jTDhDNUNCcGIrbEQyRVZRc1F2Y3IzVEpXRXgrdFBs?=
 =?utf-8?B?SWZqcFkxRVE0UHJLQmc5QVBpS3djempOUDAyQzQ3L0NkZTA4eU1zRVNUZXdi?=
 =?utf-8?B?KzRucWRjSEI3L0czT0NRc3dBb0VZOWNsZkpMKzFZQy9NYW4ybDdTV3FBNFp0?=
 =?utf-8?B?dHl0VlNXVzFYRE5CZVdIVk83bHhYQm1KbnVVczloMlVXeUNyQ2ZXcXV6NUtu?=
 =?utf-8?B?MDQ1cVFHOVhoYnV3NmJ6ZTBnZFQ3RFlaRE1RSEZVbGRSSnJHNHMwS2RiQ2hk?=
 =?utf-8?B?NmszOG9DOHBsSUxYSENGOXVwWmdoazFqRFRCYlVXNXlqUjd0dHgrbVRRVmhL?=
 =?utf-8?Q?U/hrCEqPjfqBEUouLkS7VKOALI3jxMJM?=
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?SWd2QWx5MDBvTFNiK3pGSVBPRVpXbHA2NkxQU0NCNUdHQ0lmNEVjMlFEKzdj?=
 =?utf-8?B?Y0dRSExqNXplY05vZ09yRTh5dFh0d0QreDc2cFExNjJxQ1BCMGZmQ2IvZ1hh?=
 =?utf-8?B?QnQ1bzZMTWZUWEhvOXlYSDB1dWJ3Y28rSGVoZTZTSWxUNDRZSytmZ2pYZTVK?=
 =?utf-8?B?UFVMN2tJQlY1TTRpMHJ0ZmhZUHNKSWFyMVB1eFNTMXVHZWE5NnRPUlkzVjBL?=
 =?utf-8?B?UmEwcHRFaFpSWVN2V1NpcUk0NU1lNnNMUWpzb0kyUVlyMmhuRitlNHRXSTNy?=
 =?utf-8?B?aDdUYjZxVWZvU1hxV0VJSmtSMll3OE1XVWhmUk13RHZBMDNNcVhRZkxyL3I0?=
 =?utf-8?B?SFFHd2tYRWJjSk1ZZVZ5c3lWTzQvMkYxOCtjMDM1elpmRnJybm1IcTFzR2lX?=
 =?utf-8?B?YmJuWk1lc3J2UkhwV3FjbHNEaGg2dklsa1FGTzdlenJVYnF6MEF0WExvc2tG?=
 =?utf-8?B?dC9VQ2NhUmhmRTVvZzJrUXk1R3VjWWp6Sk1GSEhWQW16UG1rMk1FeDlHTGVZ?=
 =?utf-8?B?Mlh5N1FoS0w0bjkyTzlzbk53UHNXVWZUbDBzU3MvaTVNOFY3R0VkRmFEQWVS?=
 =?utf-8?B?TGRBZzJvQ0ZrWnVSUjB0YXBxeW1uOGYvNFRuMGx6TGJUNHlRS3hEUmRRN1JS?=
 =?utf-8?B?YWJrbEhkb1o0UFRDOHhJQXlJcmwvQ0VOUXFtUHJLNk13Ti9DTHNPaVFSM0Ra?=
 =?utf-8?B?M09CQm0vckZBNWpCemJDSk1jSE1pSndWT0RjWmdsMXE3a25HRGx6aTRuanZH?=
 =?utf-8?B?TlJYSDJuUzNkL2ZMVGI3UjFGYTlDV1MxWklMNjRub3N1UlBwWnJpT3ZjQWpq?=
 =?utf-8?B?VlA1UU5DVXY1VCtXdXJYNlR6NEhUTnZSZlB0eHgyMHhINnI5b2h6eUdSV2hh?=
 =?utf-8?B?bXZqenhhcDlIa2I5V2l1c3VyN05uZVFqaUczZFU1WmY0K25FWVZMVHVrN0dO?=
 =?utf-8?B?dVlDRm1VemIrcy9pWVZtVlV2TCt6SGp1cHBaTmhMTnpCUWdLbjZwSTZtallZ?=
 =?utf-8?B?Rkp3d2cvWll3N1NFMHZiNUVMS3h5czl2SXVzckE5OEpvRmZIa1FGcVlQN3gr?=
 =?utf-8?B?Tm9EVHRqQ2lNemo2dXFCYm5wZnAyWTJJTWdUYWVaV3RhU1hqSHRxb3RVbHQ3?=
 =?utf-8?B?WG1xVVJEUGx6UVB3RjQrN05HWXhCREo4YUxaT0lwZjZXdmhKeTZjaDV1OUFP?=
 =?utf-8?B?RmxxcW4vRDBsQlBSbXZsM3gxWnl3Mm51bmM4d2doTVdXeWZ1N2V6bUM1Q3B0?=
 =?utf-8?B?TCs4MVFVZ3RrcmRoUnkyNlVxSlRqVnM5SlBLWnliZkFmQlQvak9BNHA4M2p2?=
 =?utf-8?B?cFVYWmlBdGZIMEQwYjZ1UjFmbUpTVkRSRGhvYUlDT2psT3pwQWFpZFBwQVlj?=
 =?utf-8?B?bmZ3UUpQY2xWaUpCRkk4cUdyNytWNHZXUWdvbnhJVnhRaWNVMG9xRUhaNVdz?=
 =?utf-8?B?eEQ4LzFSc3NxM3BhUXFtdTI0TzZNV3Q1WUxGMmhvZ1gxcXBEUDBGRnEyNHRJ?=
 =?utf-8?B?ZlFrNjhCQ3Q4NUMvYmtBWVdBQ1ppUVdxOTRhdTNYcWtwZ3ZtZCtYWWsvLzhO?=
 =?utf-8?B?RGo5MzFpTEVScGh5TVFiQUFYcG1UdzI0WEZ1NGNueDhocnZDNXc0SXVXbWdW?=
 =?utf-8?B?aDdpWHM4djFlenFOZXJhN3ZNUVpPb1dSRWhvYUhaSldaQ1RxU0dzZmo5U1Ur?=
 =?utf-8?B?Q3BadTZMdUFpUlBja3hCUkdadWs0U0QzY0FYR05oTTB6aUNoMWtGaUloRk15?=
 =?utf-8?B?WVB2blFMZmgzK3c1Y2pxNUVsQVJLTXRoRkdwem1sVGdjWXVOYk5kb2VMMm9v?=
 =?utf-8?B?eFppeDU2aXJrTjFDWU1ybVJXdGdPaDV1WE5rbm4yRlRhWUZzSFkrMXNVekRk?=
 =?utf-8?B?RXd3aFlReTBoN0thZEZaaDY0Z1VHZTViR21iZ2NhUUFUeFJwQk44RXk4UVAr?=
 =?utf-8?B?R3pQZStQdjNYWmpHa0IzYUU3WC92TDlmMlhTR0pPQ0JrS1dLdDN2cXZxQVBq?=
 =?utf-8?B?alM4UFh3OGlSakkwWWtCcGVRVDVwdGJrN055T1haN3NsSWtjTFhFSjVvdlhn?=
 =?utf-8?B?cnY0TlFaR0ZzaDRZWnRZaml4eHBlSnpNdTd2cy9BSEFyNVpKc2M5OU5SSmhm?=
 =?utf-8?B?U0RzRGk2MXZaZ09iMHZtYTNWUm9iOWkyUVpsSWlZdjVwUnZ6eHhjZ3l1Rlk0?=
 =?utf-8?B?TVE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 228e8d0b-af91-44cc-7c37-08de2deaad9f
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 19:25:09.3945
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: YwKzyjSiFJp1YIWkv2aFR5PnLa8Cipl2gv0ADIQj7js7AQB0VdMVYtpSl73s17bHsKbfFnYpZMqKR5Yc9DnEXvkCCuV0XARlP3UMv7qSBww=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR03MB5961

On 26/11/2025 1:47 pm, Jan Beulich wrote:
> No architecture using it anymore, we can as well get rid of it.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

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

> ---
> Should we also drop common/symbols.h again then, by moving its contents
> back into common/symbols.c?

Probably.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 19:31:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 19:31:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174347.1499292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOhi7-0004i8-VG; Thu, 27 Nov 2025 19:31:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174347.1499292; Thu, 27 Nov 2025 19:31: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 1vOhi7-0004i1-RR; Thu, 27 Nov 2025 19:31:23 +0000
Received: by outflank-mailman (input) for mailman id 1174347;
 Thu, 27 Nov 2025 19: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=jSjm=6D=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOhi5-0004hv-Oc
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 19:31:21 +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 a575eead-cbc7-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 20:31:19 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV4PR03MB8258.namprd03.prod.outlook.com (2603:10b6:408:2db::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Thu, 27 Nov
 2025 19:31:16 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Thu, 27 Nov 2025
 19:31: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: a575eead-cbc7-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HrAFANMoUXJRyqhWz9+CDRGZb9xRMUv7k1eoBFzIDuatEp7aCGxIlZpeKJbczBBbXVLB4Px0h9eBRwggLp95vbv1w+PAKs1UpndMjABzgOXuQXtTPsoJ3MWiSBr4T5Yt6/fai/rbOK9Jb8A7KMetGWV2W6QCzpv/0Co9yAO5bHRg78O5b9OncCm0WzZAuPYgLW7eskrWkxS1SiGkTebzvQz14eEYnSDzD3CGZ+bCuaCpSYTa5Gn1a64AsmzjlXOn7afE+CEl6U5Itl9B7lKHZcUgNyg4f+2EKPFMnQx69NuKHZZ1S2iP8UNHD7fnsFWPJ/58O7baylgp33VOShBqpg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wl0y529pq9n3omXwnY0iihpa3F18F8q7jdffHawZgDI=;
 b=j1aV6kc2hWP8X+6MDk82/261ukUn/tE+ug8pkljpNW2Z+buZBBMo8337ZbntLymwwOqsQ3bw/SZmUsQ35aG3IhXA8w6SyFvGhrzJvaR5OiX7a1OHJr4WwRxjAOVPnfeehBxEW0Mttr9ZSJBmnqlhfBfQX+1/wUjNcJbs7gZnhgQbh/Pog6RtnIrSSuX7itMleTigDHLF5aniM00teQ7JWNEHzpmypeln7/bjQaAUtUDLFX4ncAuxy41eRu7rpLYBT/qhLBrRsHxpeLTn00erQxyUtBhFIcDOPGSNPh16HwWAbpPTClqC78j8NS9gNeLBr1OSZWu4ZQPsRckxQH/3Kw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wl0y529pq9n3omXwnY0iihpa3F18F8q7jdffHawZgDI=;
 b=XOAMAz+KH76Iuw9pqAWhkKQU7lXu+R5lrJOHfopZ/xbhZkfh+xEIncNddsO3kC47TE3IqosKKIZXHWwELs26+dAvwAmR1IdN70hpDYmVR3zW3ld7RzGG71DXaYEl3t17fKYgMAiQlLbP3p0WrxamCs4jgn6uLUiHkRQLdHmxXZk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <cd3bcac3-8889-4300-a488-b84963391c01@citrix.com>
Date: Thu, 27 Nov 2025 19:31:12 +0000
User-Agent: Mozilla Thunderbird
Cc: 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 v1' 8/8] 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>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
 <94f993b2-93f4-43a5-a502-da53b810b201@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <94f993b2-93f4-43a5-a502-da53b810b201@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P123CA0050.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1::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_|LV4PR03MB8258:EE_
X-MS-Office365-Filtering-Correlation-Id: 30c8a97b-2264-43f0-7963-08de2deb8860
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?OWtXWHQ1RFBmZ0tIYVFtem4xZmZSVk5za3hyYVNtQVR3VWN1SXpFWXZ1UEZF?=
 =?utf-8?B?VjV0M0pLRjlwNXFNcGcwZmtRRGd5NGlLTGMydjFKbFJHK2srNGpmTlFnR3hK?=
 =?utf-8?B?Mlk5YzBXdFNQZmtoR09DVlNBTHVvemd5NzkwQUNuSFAyOXlyZEFxSHhVdEpJ?=
 =?utf-8?B?ZU40MWtYRThiMjNwQXZLOW4wTDhqckVQTmdoSGFLNDRuS2dBcitSNHhqTXV5?=
 =?utf-8?B?TngyQWZabVIrUlRGS1h5UjJSaWZrZjYxUEhzNExscytVV3dMSkFMOWhNUjRT?=
 =?utf-8?B?M29OZDc1OXZYaVNHZFc3Y1lJd2ZVRGwvUzBqV0JjT1ZBdVlpbHFPNURyRkVT?=
 =?utf-8?B?aFJqbDcxOGlFMklHZ3VhSjZ1b3M5NWpJTkpIdzA0ekNMUzNSVU55dlJoSnM4?=
 =?utf-8?B?L2tMWkcwQXloTVhpWDhWTldVbGRsbWlHYUplM0lYQy9HNCtYQWZqVUFOVDJ0?=
 =?utf-8?B?dUpMdGx0bmJMUlE4OHd2YWk0RkhzOHlBYlFUOVpSK29JdVdnRjhER1gxaThB?=
 =?utf-8?B?NjlwMHNXa09QblNoalR5Z2EwK3Y0MDdFRGNVc3EyS0FuTjZDMTBFUVV4emtH?=
 =?utf-8?B?WDNVdDgrb0g3Yys3bm0xUS9Ed0FnTTdTUUJhTUxST0V1ekVOMmQ3bjVMT1pw?=
 =?utf-8?B?YU00S0Nja25JN2dvRVYrSU5RSDJUYjY5Z1ZDRWVUVXR4ZG5PaFRwdCsxMUhQ?=
 =?utf-8?B?ZThFdkJ2ZlJ1MFR2cGFMUGJmSjEzdW9rZG13YUN4M1AyYXlRckFUdzZQUFY0?=
 =?utf-8?B?MStsWkl0eVowTDFoNURuNS9aQVZ2K29SeFAvMXEwd2t6TTQ3dHA4M09iRVdi?=
 =?utf-8?B?RlFHQ1BNcVlUTEpUS295cEpTWmJleENjOWk5UVpDcmtlN09tTVQ4dVNwSXZ0?=
 =?utf-8?B?d0k2RWZrcXFnT3ozaEw0eVdYRDhlbWl5OXVOUi9Ea2RJbHUyL2lCQjR2N0Ex?=
 =?utf-8?B?bU12WnB5ZkZLeU9TbHJTUDdaOUlRbmV3WEZFTkh5R3drNmdqelc5UGNFOVEy?=
 =?utf-8?B?YmlDSjZmQTVpWTRDUmZBN0drMTNGSXYra05veXl6TXRFKy9FTFA2OVNqdzBX?=
 =?utf-8?B?U1lsemYvUGxTTUhkZG50alExUUpnY21sOVdBVGZrcjJPc2JXeitRYUw1ZlBB?=
 =?utf-8?B?V1VrNkpjVHRXbjFBNWlyRHFFZld6eTgvZ20vcWJTZlU2NStKSTBXbThWMzIx?=
 =?utf-8?B?RGUycFA1bjFlZkR3bDN4c1R1WEt6aDB5aWFkRjBJWGl2ckpTTDJkQTVYOW0w?=
 =?utf-8?B?UTFNZER6dTFTVWhJTGk1cGpmWnEwWmpVaDJocjlRNHpsNEhic0hDWGdjN0xi?=
 =?utf-8?B?N3licXZhZjM0clhPNnF1Nmt3d0RzZGwxUHN0Y09YbW13LzF0blBpdTNwTkdO?=
 =?utf-8?B?M1dlVVNuQVp2eDNvVllxeTRBK1hZTEZiTjBTeXdNNnU0YXN1eGZSQ3BpVU9h?=
 =?utf-8?B?SnVyWFVIaGxxSFZPbkgrUFc5bFhlRVM1TlZHMlBsalhTU0RDUVB1RXdSbTFJ?=
 =?utf-8?B?Qldqb0FuTGNMQ0Q2VTJQMmdYS0RKTklSdTBsMVF6d0pSTVZQYmJjM3c0Y3lk?=
 =?utf-8?B?b1dwWGVRaDBnaDZHRkI4UnYweWswL3NpNkE1ekFIbGl2enQweVpnN09ZWm11?=
 =?utf-8?B?NjNNSCtlZWw2VkZpMXdxZXRGUGFnQnFGbXdXN09pUjI2Z05Vc3J1QWtnMExl?=
 =?utf-8?B?YkY3dkVRd3MxcDRob2NHQWYxeU5vMzZQVzc1NWxLMjZORFZLUlltUHAremVF?=
 =?utf-8?B?N3RHY2lvUG1WNVViTzM5bDJqdFRvYnF1VE9UNENlY3RWTGRFK01icUZudzJk?=
 =?utf-8?B?enBiTnNib29hbHlGbndMNlF1WlRsY0hVZTBZMWd0eEtjY3JGZXIzMThnblpS?=
 =?utf-8?B?Lzhkak14Nk5ON1dYQWI4bDhKSDNPVStOM1h5SGR1N0x3NnJ1NmFYLzdKcDBX?=
 =?utf-8?Q?vUVkp51xqGNS/9OUK/9+I7cwUsqhF5ra?=
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?SG5YUVlDZUNyNWtzQWdMaERyRFVPVjgxWmdYNE5iZlcxbStxQnFad1hlUmtW?=
 =?utf-8?B?S3h5Wk9TRi9ueCt1eEZZNGpKYnhxNnBRaXdTVzVxSXNqVHdBVDVVeWpLbWVl?=
 =?utf-8?B?eWQ4MzNVaHN1bVFaNTByamUyTlc5WmRQUGpXSzVncmZPMm8yOXQ2ZFR1eWpT?=
 =?utf-8?B?U0RIcjVWUmhYVEVMTERvQ05JOEwydStITE1SeWpWVmN1L2ovZVNpMURvWHhm?=
 =?utf-8?B?ZU1Lbko4OERvQk9DUFB2a2ZRTkh4VzgyTG9VenNYOE5ncDVYTzB2U1hDNG1H?=
 =?utf-8?B?elFyUzFQbGFpK2Jqb0x0aE9oSGFtNVY1NHNVREJRZkZkUWhYRngxS1pFQmVE?=
 =?utf-8?B?em4rWnZVM1p0TEwvTXYzWHJybERmNThDWnhkY0dGWXhUY3M4VUZtaFd6NldU?=
 =?utf-8?B?M1dIUFZ3clZ3NE9PbzZhcFkxQWU4dTR0VlFkWXdBalR0QnFOc0laUmxGOHpq?=
 =?utf-8?B?TXhyRzNxTUE2bXExUlJDL0Vzd1B5MFBqM01ET205eThwbzVwdjBqWUd2Vzlo?=
 =?utf-8?B?NEI4czVTQ1FHNTJqbFgySUVKWFBWeDk0SmU2ZDI5Vjk3MW1CYVpWRHdERTVL?=
 =?utf-8?B?UzRqRXJhaTJjT3dPS3l4Rk42ZVlDR2RmZ0UxN2EyNnhGT29DYW5RR3JxSnI4?=
 =?utf-8?B?WGFCMHBnNUdFNnEvMVpjWU85VWg5aWo5V1VzbGRuL1F1Z2p1RU5wWHQrL0dU?=
 =?utf-8?B?Q0hoZzgwQzNqTnpSYmRNZmlYeVF4RnZhRXltOXVNQ1RiNWYwd2FqVWlHaE5v?=
 =?utf-8?B?WXN6d0VVUkhpdCtlZGtGcXpUd21QY1IxZk42MlhRemVHeU9FOVlsWWtGbXMr?=
 =?utf-8?B?ZVdHc0p5dG1kUkhLd0pqYk5mOWZsWGtzZGFRaHlzc0hIOFBIRkhIVVJhMnh5?=
 =?utf-8?B?amMzMlhjQWJYVVFrb2t3aDJBK3AyUUk0L2FQK1JsR1FUck12S203R0xQMEVC?=
 =?utf-8?B?Z2xLUEFnc3dIV2pkWjkvRjIvL0ZjdjB6YnRGWWt2MTF1eVZONlN5S2ZlQTBm?=
 =?utf-8?B?UW9mZS9NVjFYUSs3Yk9hZk5SeGVIMFB1dmlEdEtuUEhMZ0ZWeTFGNnEyQmtL?=
 =?utf-8?B?N3FJZldESXJDWEEzdCtWVzBzbytkb2puazIyRG5LNndEa2dDTWV3Y0tXaFI0?=
 =?utf-8?B?U2hlWXNQQVJwN0gvWEF2VTl1eGs0SXB6M0VhR0FOV0VwWXNpb0Z0YW8xS0lM?=
 =?utf-8?B?a0ZXSkExc1B1SWdycTdFYnNYVUZYNzRabUtOSDIrWHh1T295OW9VMkVVY2t4?=
 =?utf-8?B?SGwxRVlDOStSVzlKVjE2N1gyYjlNTHBYVVY0ME12Q293MXZhTTNBOTkvUGFX?=
 =?utf-8?B?ZVJ0eEthQ2QvaEdTOXBLSzFEZE83VzNsK0FOVkpsOHRCemtuNllvNlNKZmZE?=
 =?utf-8?B?blVPSkZpbDRBRElxZ2VYUDU5bjBCMG16UWdHNHo0VUtKWlFmRUZGNEsyYzBz?=
 =?utf-8?B?Z1pRVlUxeGdDRjhSeUV0U1dERkNjUXB0RDJYakd3R1Y4ZHg4cTIvam9xL1Ry?=
 =?utf-8?B?SEpHcGxjaTFxQWRmcnBNeGh6YUZIVnkwV0E2V3lna2FVS1p1K3l0NGdXTFRx?=
 =?utf-8?B?cFQ5dFJUby9kcFVKeVl0VlFMUytBRmdocm9PTXRpNUtBV3NQcVZMODNRT01r?=
 =?utf-8?B?U0JDTHorWVJyODNXd2crQWVpaHFIT09ybi9zZ200c3NhVnZqOFJCV2REcVBX?=
 =?utf-8?B?ZzRxSXBmcjFjdnJSdWM2dm5oK0pnMVBQNVIwc05PZDBtV2Z1ZU4yeDBReTZQ?=
 =?utf-8?B?QnVOQ1ZQNGJqeGtlWWNTWE5zQkpuS0NicDFuNXhEanFhS2tmOUN3WHpkQ0xU?=
 =?utf-8?B?MlBvYUFrYjU1YVpmVzd0NzR5b0hFdG1rNTVxR3ZGcFpEektYL2lUbFhtbHRv?=
 =?utf-8?B?TjBwaEZpWHVTeWl4NlJxeHFtcll5ekRZOEJlNk5pcTd2NUZVMC9hSG00blZN?=
 =?utf-8?B?WGlvY2NrLzU5bFN4ODNwZzlNQkJPWllDV1g1cHYrenNEQ3NyZkl1VmNScWk3?=
 =?utf-8?B?ZjFrNlR4dUZPeU81UHNiakFNRnNkRS9qK2N3ZFp6dHU2YjBHaWhvSE5WOFlU?=
 =?utf-8?B?VkY0TnQ0NER6WFJROENFNVBSNVArRGxxdzJmb0NhYk9Fbmk2U1BIOWk4TVk1?=
 =?utf-8?B?ajU2NGh2cHJJbHh1THo3MkM3R201SVZOK0VpOUgxTW9FQ3VFZzhtYUhWUlk4?=
 =?utf-8?B?RGc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 30c8a97b-2264-43f0-7963-08de2deb8860
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 19:31:16.6372
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3AL1EFTaL55aMG9dxOsV28lhjfaD7muM+LwunGaOkw5qHHT5paZuWtEtGmDHQolGN9p2GBYf51AA5Wf+AqUa7XdUdUGzSFguPZ0MKpBCPp8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV4PR03MB8258

On 26/11/2025 1:48 pm, Jan Beulich wrote:
> --- a/xen/scripts/Kbuild.include
> +++ b/xen/scripts/Kbuild.include
> @@ -56,6 +56,19 @@ define filechk
>  	fi
>  endef
>  
> +###
> +# Compare the symbol tables of two object files.  As diff's -I option isn't
> +# standardized, the name difference of the two object files needs abstracting
> +# out.
> +define compare-symbol-tables
> +    ln -f $(1) $(@D)/.cst.$$$$; \
> +    $(OBJDUMP) -t $(@D)/.cst.$$$$ > $(1).sym; \
> +    ln -f $(1) $(@D)/.cst.$$$$; \
> +    $(OBJDUMP) -t $(@D)/.cst.$$$$ > $(2).sym; \
> +    rm -f $(@D)/.cst.$$$$

Doesn't the second link want to be `ln -f $(2)` ?

It looks like this is comparing $(1) to itself.

> +    diff -u $(1).sym $(2).sym
> +endef

While I am generally in favour of build time checks, this looks like
it's a large overhead?

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 19:49:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 19:49:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174360.1499301 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOhzx-0006os-FW; Thu, 27 Nov 2025 19:49:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174360.1499301; Thu, 27 Nov 2025 19: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 1vOhzx-0006ol-CO; Thu, 27 Nov 2025 19:49:49 +0000
Received: by outflank-mailman (input) for mailman id 1174360;
 Thu, 27 Nov 2025 19: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=jSjm=6D=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOhzw-0006of-Qa
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 19:49:48 +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 377ba2af-cbca-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 20:49:43 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH2PR03MB5304.namprd03.prod.outlook.com (2603:10b6:610:9a::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Thu, 27 Nov
 2025 19:49:39 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Thu, 27 Nov 2025
 19:49: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: 377ba2af-cbca-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OrhEKVAt3d38/wCaHxyO5dpEU9M1DJkhrcTBh/p+4sPqQCtZdtdRL4oxhD3pwoMC0R3Nxj23+LgmGH7Kb6n2iG9d6XwBkGHgXGtUt5/tV4KLugF/CDw8PrvG6ML2yeb8H6jkb/WdXB4UiSNJ1PyvLg+J4yEcj2ZMf6nBGVABxDjUtNIPVX6dCWRCKQUUyxj25Hps+ioY71iCZoj78kpY4lb35GNNf5WeSacHl0dv+OnE/oEook3blFIp+24bSync3bAw9oEjXvPrTDx6aadQBTrAm9vcq2imdQ3m0tI0vwN5nAic/9dlXSw/Z2Skt45hcjR1iJnp3zfBxtS+sOdK7Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=r5KTJT6qeEcqQDufjR8tLfzcjQLPnA66jpBFH7oofzI=;
 b=VUZG5EkxjkJ2I30/CKDEjSuThr9qb8EYWJoX73jwxNJVLu8E6cZeWKCCq+HPMUtbu9IGypaFudqfZsXxoZ625TeBWTohj6vN4pHK34Oxtz3kfBHfWlbbOZRPr9B7d2MWNul7jPEUjSSqo0fN2+A1oiNswKgyFIs+8KaIyJTnAmsieyhsqKbrf7+ev5oHWgat5P9U4ey1txKIzCiXjVKcMcbwtgcPeBmUtsE/TksqVi9prmiVx+GrzSfmr3zgmX88CAqGZmxqaCv1a1tA1QKPuS1VxWKGUBjPgF1oFFMnH5LIc810y22VrDlnqOasZvdt9SDrE+DatGFmDGG8CTiERA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=r5KTJT6qeEcqQDufjR8tLfzcjQLPnA66jpBFH7oofzI=;
 b=bFgBkNO/a12cCEhNGR5nX+ySlUktpE+1WTpqM6ULvLie4gSFIODlZLN30WwquSXg1h4nm2ziy4Ywoup5uGbVpiKGJiDOsmzziHlrSkeo2c7AeyZTSZHKsGIO7/a5Yk401LoV2xZXTlfMN2f6hjxNPKZpHztHMiX9AmQH55La2Tk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <0235ecb0-20aa-4c18-a172-0e48c13d00b9@citrix.com>
Date: Thu, 27 Nov 2025 19:49:36 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Tim Deegan <tim@xen.org>
Subject: Re: [RFC PATCH 0/4] x86/p2m: Some P2M refactoring
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1764248710.git.teddy.astie@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <cover.1764248710.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0033.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ae::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_|CH2PR03MB5304:EE_
X-MS-Office365-Filtering-Correlation-Id: e5a04948-ff83-49af-6025-08de2dee1a11
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?THRWdGowVVdLbUhVU2NjdHhtUmpzenZDcmxWV3p4a0RlQ1YxVElSRWRQb2Rx?=
 =?utf-8?B?Nk1JVzZ0YkJZTHdTMFE3OVVzYURDcUtjK2YvVSs0Zzc5OGk5ejlFdGY2UVRD?=
 =?utf-8?B?K3RobFkvMkJCRGpKS1NOY0VLWTF5aHg5eStkUnNFdTVGZFBTSXA1RktadmE3?=
 =?utf-8?B?OVhoMWIwUWJEajJLcFo2c3k5Wm5aWm80MmJrMjArM2plSkppSnBlVUtnSG9S?=
 =?utf-8?B?a0JqUktKdTJKdzdsT2hJbWNhSmRvVmYvOE9lRTNpZSsrZ2dmYldVWGJYakxw?=
 =?utf-8?B?Uzlqa0p1cGZlRXZDb0N4bGJsSnpBVERQaThpSlFidVpsQ1dMZm0zL1BESENR?=
 =?utf-8?B?TjBoeWxPVkRoNzVmd3l0SWlBRnZxU3FnYmk2aW14RWRLZ3pwZW9Sem81VXBT?=
 =?utf-8?B?WEhrOVFNdktHRlhBVDhpTWw5ZjcyUUVMajdnZDdyTVdzeUZKVk1SVlRlYytW?=
 =?utf-8?B?Q1YvLzAyRWxPeG5VRjJkSGRPS3dvRU1BZDlLVStCSnE1MmJDQWtscUtURTdx?=
 =?utf-8?B?WlkzbTBlbkZwZDk5R3d1TXRzTEQ5NGpaOWd2aU5LTUFseFIxQWY0TkNvZ3F1?=
 =?utf-8?B?a0xqblYzMktMVzJhUWpMNEJ5b3VobCt4c0g5TTBEMmpKb3FYeVY2d0crc0RU?=
 =?utf-8?B?aHF2SUJBbW5PNDI2UDJlbXJHNmhvaVpKSG02ekhTd3JnSTBjMGxQLzUzbGRN?=
 =?utf-8?B?eUJBVUQ5dXBNTjJwKy83LzhYOXRyVDIwN0phUFdlWGI3dkNtYk52VWFsQ01M?=
 =?utf-8?B?VnVjQkNucU93V1BhZG0zUGRoWmV2eC9FcEk4YkNxclFOdVUwMjVXYzJVQ2xS?=
 =?utf-8?B?WElSUUdrb2d4OGp4S2pRYmpnT1ZPa2lzdVdEMVI1RUhqYW53emo1R3FRaTVU?=
 =?utf-8?B?dStDNmVZbUd0ejQzWFgxcXlKSGZsSWJ5SFkwQ3o3YUhlbjhhS1ZSR1RXRCtW?=
 =?utf-8?B?MzRLaFF2V3EyL0kvOWRtVWEvbEhZR2pSa3RzWnNxaWxuVmI0cEw3REtjV2FK?=
 =?utf-8?B?TkpPVzJpTHM3TjMzWTVNQ0RESy80VWNZYjhLNG9scFVxRGxiY2RDaXNYS3Jp?=
 =?utf-8?B?QjhBTGZTMjVRWnBCdEJ0bCsyWTNFU3Jwbi81UWVXZFVrd2ttUjZ6aDkzYzQv?=
 =?utf-8?B?M0xWQkNkSWt5cFRIMGwwWW1IMCs1WXJoOG5xNkx6aHZ5ZVp5ZnRiS0dPbUtL?=
 =?utf-8?B?Z0JYZUpDa002VlVROUZuRjlUZ3dBYlN2YTZjZlVhbDM3Rk1wbVFFUW9pcXRP?=
 =?utf-8?B?bDZxNTYzSjlFaTdyYUY5UmI5RW1JU2ZmcHp1ZEU3bmJPQnBvWG5VSTdTSGZ3?=
 =?utf-8?B?RGtUekJHSm4wU0xMVTBMYktWZUpja01ma3ZlUGk5UzhoVXpjS2JmQUtDY1ZF?=
 =?utf-8?B?KytMb2tvY0tMaXpEakE0V0ZuMTNZVjBBVXFzbEFOYUhkbjFIUU5aQXhlYlpM?=
 =?utf-8?B?Z241eXE4TWcrRjJtM3J1VmN0QVhaTUZzbHQxa2gxdjdidkNqZE9rbnlCOVRm?=
 =?utf-8?B?M3R0bzFqWVA1ZVpidGFLSUZiN1hmY0pnaTZPNEZhZng3b2g0S1NmME1jUU5X?=
 =?utf-8?B?WkJWRUtwRksvcmtiNGl5VnRUeWNycG14dU9HZFRuRldFYytLVkVrUmpzejhE?=
 =?utf-8?B?VFhwNm44dndiRlNNdzVQL3JPUkZ4WjVGUWJUa1M1TmRLMDVqajM5ZjBkdnl2?=
 =?utf-8?B?OUkydVVvWDlWcUpsWU8rM01oOFgzYVU2bms5SUw0dEpSWGxKdHBuVUY0aFd4?=
 =?utf-8?B?REtnK0xNZUF3MW1LcFpoYmN5OHl2cHRqVjdxUzZoM1RWNVVmQmRRb3A2UEhF?=
 =?utf-8?B?ODUrcXBBUmtPeTNNclZWTHJIVm91MFBlaURMSzRMU2NMN1JpZ0xhQ1l4aHJm?=
 =?utf-8?B?azhiTmtGRllyS0FvaUdhZVh3YVYwNy95QXJUN2ZQNkFJaUlqNlpieVV1MU45?=
 =?utf-8?Q?xI8lLkfMXvsEpBO+qp1drausHUg2E9+H?=
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?WlhxWitrZHVqSloyQitYL0xFMWs3bHJZVDBkRWFnMlFOU1FJc1Fma1NUM0E2?=
 =?utf-8?B?WndCYXB0SFhDSW9ZNFlFQXBGaVp1L3ZDNFkwOU5vUDNkdGQ0M0E2RW1rRUho?=
 =?utf-8?B?NzgzcFpSZE9UR2xHdUE3cG1BdUExWmVlNWtBMG5DMU1GdUxTU1BwdFk1UzN6?=
 =?utf-8?B?Y2NORjdYTklXMm5DVWpKRHl0bnJjMldwOEc1YzZicFVXY3lRenpGeS9Wa2E3?=
 =?utf-8?B?bnVleXdZb3NnbEptanFBMmdWbnd0blIxc3JyYTlERFREOEdaUCtrZm1STUZB?=
 =?utf-8?B?dmdMZWZnQks3VndKL3RtNFMwY3hEWXBONEtVOVBjczNpRDVISGIrQWt6cXpq?=
 =?utf-8?B?Q29CK1N2VjNWa3E1VGZmdjY1ZGIvZnc2UTVrc2l6by9rYkFzSVNxMW9UUy9R?=
 =?utf-8?B?OHNTZW1YM2RnL1BaRUt2UXpjbFZzNnFwekF2ZDlHN3JxUmdlVGEzSENLeGhv?=
 =?utf-8?B?ajc1Q0owQ25hVlIycFkxZE1IOGJkZmFIZjQ1V044NkFaNlFVZkQyalRnb1Mr?=
 =?utf-8?B?R0kvZTBuUmxnTTdRaUliTHFTcGxUUkxjUVIxZllMb0gySXlKckNWMnJUWHhR?=
 =?utf-8?B?VUJvMXA2NHFOWnhiRHhnM3Z3Sm0va0NlYlBTd1ZRVzFJNGIzdk5MS3BXaWVV?=
 =?utf-8?B?TFI1T0FKcmYzOVo5WlRieDhwdXFVT0RqcFIwNW9ITDlITjNwb3ZCWUdlN0tD?=
 =?utf-8?B?bXljWXNIRWFYQlJOUTE0dHRua1F2ZlR3RDNzTGRYV1hVVVF3VjFCWnNWaDFl?=
 =?utf-8?B?Zk5vS1ZTK2F2Ukg3MjdlcUltbkh3M2N2OXBTMHMvNlQwc2NqeFhJZGNacHdS?=
 =?utf-8?B?NjZ0L0JzZHRiL1NHVzBhRUdCTTBLMUVlaTZLc05yN3UrQTROV0doeVRKUDZo?=
 =?utf-8?B?K1E0a0UyMnhZSXdlbi9aWE95UzNlNHp2c3dLbDdmMTY2dytySHlhZUdBZ1NH?=
 =?utf-8?B?STlJc0Q0Z1QwUS9wWHBJbnBETlN4VHFqYWtCTVhBVmw1YmJkMzFOZHVQYUUx?=
 =?utf-8?B?cmJQd242ZytWZlVqV080K2Q2eERTZGNLNUpnYlpBQ1dpYkdiTnpkTmptZ3J5?=
 =?utf-8?B?NTJxYzZVTFI3RllLNnh3V1lhYnFlZDhOZDB2QnNzREZPZFZzOVVzOHNzRVgw?=
 =?utf-8?B?ODVHcytBT1NlL3ZpejdRODlTMWFwT3JDM3kyUW9ScmZZNGRudHFROUJmQVYw?=
 =?utf-8?B?NGlaZkZkaUZpQWRrS2xJT3gySlVmSXZrZVh4RjNBSG5OSWMwYzMzSFoxM2Uw?=
 =?utf-8?B?a2FkbTlGaitjdU50UVFVOFJMYitBM1U0Y1JNNEdubEJlWVgvQ0ROMHhVZCtw?=
 =?utf-8?B?OW1IRHByV3R4eXRMNzc4K2dzR1hZYTdneEdscmp4bjZBUktQVThJYmZ3N1ls?=
 =?utf-8?B?dkJEdEtSN05zRmNsWVdwRHAyRFhoeXNEM2pLVWFmaG15S1hxVldxeEs0QmRh?=
 =?utf-8?B?VUV4YVprakVDTUUzenJUZW1jeGIxWWFUUUlqMzJJNFdBQk1aL1hpa1M2NUFD?=
 =?utf-8?B?Ukt1bnZWS3BhRkJxaGhxUks0d0FWdW5EUTlaaDBSRUJvNW1NQys2K3FBVE0x?=
 =?utf-8?B?a2c3T0hoT1NEZVZKalB6NWg1alNSTVdCZVNpR28yREwzR3JNWWEvbk9sckk1?=
 =?utf-8?B?Ykl5bldCbGVEdlpsVWZOdlRwQUcrT1BHOFRhRDZxdVJFR2pndVMxcm9taEU5?=
 =?utf-8?B?eURRdDFhRmVVa1BSOHN1R2tBaFRiRVVrcUZ2NFA3SUFVMmZsVDNPOVovRlVY?=
 =?utf-8?B?TzhVb2oveUp4VzJTTkRoYWJ1dmNBQ0dxaVRiNEtCbnlFdEVSSVFjbVhmZi8w?=
 =?utf-8?B?VE9wQXJQZkc0dmFHSkRiaHJjY1NpanJyZFA5UlJaL282dlBmNXIwNWF4M3Bm?=
 =?utf-8?B?ZjlDR1IyMDFoL25EbGZUT05RQkllNXZNOEZTbjhpajRGOUltMTFSeVZSY2tr?=
 =?utf-8?B?YjZBZWIyM0dvQVFrZ29UKy91SlRFVHQ3RUI2cjNGL3pnZTNEdVVSU0c5aVpV?=
 =?utf-8?B?YjlpMURNNEJvd1JIYlJIYzRYWTN2QjJZNlZJbHg4eTFXVnRHc2IwNTBrTCtZ?=
 =?utf-8?B?UHk1alJ6eDlGTDZlb1kwUjhoYWg1enZwRHpTMmM0ZnEwQmVrZ1lxTTY0L2F3?=
 =?utf-8?B?Q1QxekYxZWM0S3cwR29lbTQzdUN3NWV4cDN5N0piQnByeElvN0pxVmVjcVNK?=
 =?utf-8?B?OWc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e5a04948-ff83-49af-6025-08de2dee1a11
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 19:49:39.6804
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: g9eIFMwqfT72H+pgxzklcK+JnofHi2mXrnebdYmtNxjTfyy/ZPZoYDxbrqAud75ZgHlCkFTb8MeRTMsWM5vBRU153vkS6rvah4FWe3GycP4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5304

On 27/11/2025 1:39 pm, Teddy Astie wrote:
> First patch removes a shadow mode check in a function that can't be
> called with shadow mode (only called with EPT hence HAP).
>
> 3 other patches drops guest_tlb_flush_mask by removing all its users :
> in the shadow paging case by migrating it a shadow variant of it and
> in the hap case by moving it to p2m->flush_tlb logic.
>
> One of the goal is to prepare adding HAP-specific optimizations to TLB
> flushing code without risking regressions in the shadow paging code.

You need a clearer background to try and explain the changes.Â  I've
discussed some of it with you, but it needs describing here for everyone
else.

>From memory, encrypted AMD VMs cannot use "asid++" to flush TLBs, and
must used VMCB->tlb_ctrl instead.

On top of that, Xen does not have a correct abstraction for "flush guest
VA space" vs "flush guest PA space" vs "flush Xen's mappings of guest VA
space".Â  This comes about because of the shadow code originally had all
3 things together, and HAP didn't clean this up when the need first arose.

This causes over-flushing (Tamas found and reported this on Intel), and
FLUSH_HVM_ASID_CORE isn't an adequate abstraction either.


All of that said, it would help to have a sketch of what you want the
logic to look like in the end.

"flush guest VA space" and "flush guest PA space" originate from
different actions.Â  VA flushes always from emulation of a guest action,
whereas PA flushes originate from modifications to the P2M.Â  When shadow
is in use, both of these escalate into a full local flush because of
Xen's use of shadow linear mappings, but this escalation should be
inside the shadow code, not the top level primitive.

Have I missed anything else?

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 20:16:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 20:16:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174369.1499312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOiPH-0002mM-E5; Thu, 27 Nov 2025 20:15:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174369.1499312; Thu, 27 Nov 2025 20: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 1vOiPH-0002mF-B4; Thu, 27 Nov 2025 20:15:59 +0000
Received: by outflank-mailman (input) for mailman id 1174369;
 Thu, 27 Nov 2025 20:15:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jSjm=6D=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOiPG-0002m9-Ba
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 20:15:58 +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 e0e493f9-cbcd-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 21:15:55 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BL1PR03MB6199.namprd03.prod.outlook.com (2603:10b6:208:315::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Thu, 27 Nov
 2025 20:15:51 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Thu, 27 Nov 2025
 20:15:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e0e493f9-cbcd-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ItJZUW/zrhJzxKhyATOy+Rk52awa6fArRSyhD/QHwjfzpeB5JbN6s7r5o3STRi1kSZqA6PI7pdO722jCwHOZKaXH13OVVjRBS9XHS3aCfGCT7BN9JnuKvIE0Ntx0Tm82VnBgHAeCzhemah2m2vLesGS0XcsI+DFO7qfVRltGP6wOJ6BenBR+EVyrMaAl42qzFv9NqigQ1as4ONHyNgecVqLlFfBVGBY77XqL3M39b28YfLaBPuId8vBwAKHprQM87RFoBM1+Y6qZJX6VwrS8i9IVIFUCHVB67YUkeAfuJH1cB3rGNxSFUD1zlm8B1gQaDA1MhoRKXe6tsw4oI+ebVQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=X1/Cch735HsmSXp1A6klo1Ajd+EVV4F3T+aLHoCWSJg=;
 b=ZTTUhrcY3KSNN+leGYinRWhVVkzFf08YFCkU2Fl832TSFz0aHBdW0h6lGsf41D01nmri9EapRAIMJqTNAmy+0QhuD9vBnuTXqI6J2SoD58nvfksl5o3B5USedLqIbcXs3G90Q1e1W+zjVxkNjl36cypckZnm90JS2KC0E34bTKcbHy6YhZuT6jkXkvH1BdZyoylnrr3IjGjGo6t5LkcdGbR6Vvqskm/u6WHH+hn1Ncx/wT8sxJWSJWBqxkULMuOMKyrrpYFOOMfnY5/3wwj5nQ8CdprHQE8JQVeePzHe9SvqkZ7RMnkT40CRRlfnxXosfT+eHjCWekOCrKxfLiDdew==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=X1/Cch735HsmSXp1A6klo1Ajd+EVV4F3T+aLHoCWSJg=;
 b=A/symWkzpjy15zJqW197FMOgSzpqCNSBXMENMrxkqdaPEHfaKIScyJshHN4wabLm95zcpG+YuZtm5p1PxvwnLRUiF55JXvORqHN+SRsSmdJHX/zudbM7SjHwwoJJ2tKqmeJzigc0Bwjnu0GnJF4RFLeT7L4vCt+nX2/T4oHxY2Y=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <dc68b9ce-38aa-4949-b3e7-a7c0a7ee9a25@citrix.com>
Date: Thu, 27 Nov 2025 20:15:46 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [RFC PATCH 02/11] x86: Reject CPU policies with vendors other
 than the host's
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 xen-devel@lists.xenproject.org
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-3-alejandro.garciavallejo@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251126164419.174487-3-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0513.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:13b::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_|BL1PR03MB6199:EE_
X-MS-Office365-Filtering-Correlation-Id: a8d2a439-bf4b-498a-9ebc-08de2df1c289
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?bGw2aEEycDJGZHc2RmJoSW9mS2hHY2tBZGp0eCttQ1RTOWRGSGxJaW1GaFZO?=
 =?utf-8?B?ZWtxbXRFbW9SR005Snl2MTR5SGRqMnhWb05jOFMyUyt4ZmxMYS8wUzllMXpw?=
 =?utf-8?B?RGZ4aUxQTUNGWjhjcmc2YmlpMjlNWStGbklRbkwyWnY3OHc2dW9qaXN2RC9W?=
 =?utf-8?B?a0lFOHN3dzMwTnpCN1lOTlpERGVmN2ZPQWlzNFlWZGNNTnM4bitYcVpxbjRl?=
 =?utf-8?B?NVNQR2ZNTzFFZHkwVUVtNlBWNE9uTXRyeHc5eHJOdENTb0p0dXdVZUZ6UjFr?=
 =?utf-8?B?Ui81amoxWnUvRTA4RDFENElhWnpyQXVtYlY5Wjg2YXd1dndhMGNqWDRFdGZo?=
 =?utf-8?B?TzdaWXg2ODVubDNEMnVIWWJWUFFvRVFoUWRTQlJJOVdXK3JmMnZRbWRoZVMz?=
 =?utf-8?B?MDBidTQzMy9kYXlIekkyLzRqRmlsT3ZhTWNiRnJsNGlZTWxRRGFvWEFqQUJL?=
 =?utf-8?B?NjNZMWJmeGl2NzBYODJ2Q05VSDdENjFROFRlc0tvSkYvZXptR1ByYTY5Vnpi?=
 =?utf-8?B?bzhwOFlqUEMxM05LalFOT1NRNjhlcE1wL2N3OThSMzltUnNpKzc3RVlpRzE2?=
 =?utf-8?B?TEdXc2JUdkFGZE9uNDQ5RTZlOUpZUFlDaVdyRnREZkVsWUh5b2tiV1dMSUhu?=
 =?utf-8?B?V25pRFpjMURTVTAwR0pjWjA2YS8xdk1CNllzQk56MjVObzFwQkhOZjk2cXZ5?=
 =?utf-8?B?aTVrWXhDVDk5eWhBYWF6TUkzVjllUDZwOXlHS2tGU3dOWlVFOFkybnRvNmds?=
 =?utf-8?B?WS9rTGZJaEZQZDJuSjhIUHVZdDdsRWlTOWxJbzBKejg3blBlcUViZVBRTkQ5?=
 =?utf-8?B?WUFuZXFBajI3V3l2SS9vSkNhdUtZWU1yOERKdkk4ektjUjBuamZtTFNheGZG?=
 =?utf-8?B?bzZySjNzenByek0zSjY4dVJ0RXUxU1hNRVRTN0RkR1RZUlNUcytpbDExbi9J?=
 =?utf-8?B?R1ZSS2lSRWhua0tBNm0zWEZQVGZ0dTdKSmhlbjkwakwvN1VNaFo0Q0Q5dzRv?=
 =?utf-8?B?dmh5UDZPN29NVnFSSmNBM2JsM0pmUzB6a2l1YWY2MlpJMElLWkxpUENMWFlW?=
 =?utf-8?B?b1ZDalJQQTVoTGUxejhZOHJ6YVpFUmxuOHZFNld4aXdubUowbEFXRHlqcitV?=
 =?utf-8?B?YlNwaDREd0Uwak12bTNLdWhHdFliSXdOZjQ0WDRiaUZMZll0UjRvK2h6eVdp?=
 =?utf-8?B?WlZTaHdCRHhYYmVFM1hZRk9XWWFaeVdqWEhSZWJ0SzJkcjlSREtuUEFtT3ZC?=
 =?utf-8?B?QW0zbGZLazRSUkp6WkVPM0NRYTBDd3YwcVlMMVlBYndHaTd6OG5wUjgwamQ5?=
 =?utf-8?B?REU2SlJTR2JJdGRwNUxBc09DcU96cVNjS25aYTZXSTk4cnZ2WWZadHRZbUtk?=
 =?utf-8?B?NDNFYUhJc3JmNjVUVHdnNnFEeEM0SldBWkVUWXJyRGMwaDhCSXdTaUdJUXdW?=
 =?utf-8?B?YTZwWVoxdFc1blZuMTdJZ2NhYml2OVpzelZGa3NOdmtJSXBQMXg2Vi80WjZ5?=
 =?utf-8?B?MWxsV2wvT3RiU2ttNVVKTUlnZ2pEa0dxTzlxSnYxY3RTdW9PUm95VW92NmlP?=
 =?utf-8?B?TzFuSEJNSzBvSENrdFJWaGNNcGUvbXBPc0g5ZzZ3WE1FUU1jUGc1R2ZSYVFp?=
 =?utf-8?B?R0l0eFFieVpmS09XWnRHbVQ3ZDYwQnpWNVNYMVRpVzBJSUxlZFdXWHNwdm1H?=
 =?utf-8?B?amZXMnpQSHNKU29id0l4VlVycTdBTk5tbjBBcFZjMzBSeWNZcEtQSjlDWnlZ?=
 =?utf-8?B?QS9jSFNhTUpyQjAwc01Ic0ZhS0Ywd2JvU2ZGWTZoZk5oNjZTb1l6Zlk3THJZ?=
 =?utf-8?B?MGZOOHRJVUR2UVhIeWhGTXJDS3RHUTdSVWNtU3FYZysvSVBzdk5RczlKRURl?=
 =?utf-8?B?aVVabTFuL3pGOEZWczBWUWxLNTZNSFdtMWFwS1ZFb1Z6SVBTUHlMeFQwNVF1?=
 =?utf-8?Q?FetcONpCqp0sEroEfY7ljdNYEuWPA2MJ?=
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?YjJoa0FGcnhseHlmNXJWWnRZT0pCNFAvREg3QVRJU0pkVnBCSjQ5Ymo2a0Y2?=
 =?utf-8?B?NG9GQWx0OTdYUUxHQU5zQ01EVmUwK0xjSThYbEh1U0lWc3UzWk04OElVcmZL?=
 =?utf-8?B?WlR0QTBqbTRKY3FqZzN6UFhoY0ZzdTdHeHU4b3g3c0V5V0lyZUYza0tjV3dW?=
 =?utf-8?B?dEZIOXpRUGw4aEhHRzRLeVhvbUpHK05SSGs4c21pc0xCeGtOYklPeVltMzEx?=
 =?utf-8?B?NzlQN0xhRXZqdFZCQjVua2dpY1VxRlUzc3VZbFhMWUoyVE1zQWoyVktNZ3Q1?=
 =?utf-8?B?OEJqa1dPWGJmeDZ4OXVDTEZDdXhzZFRDZXhTV211YzVnUllGeGQrRFdMSFZ5?=
 =?utf-8?B?ME1BU0xpVFI0ZmVRZnVZTmhCOVlPMTc1SW5zZk0vZDNuNWRwUm5CNmF5RXFR?=
 =?utf-8?B?YUhyRHhxVTY2azdsN1RkRlRXMUxpVDI3WkJ4ZVRoRkhSSER3UlpLS2o4L3Y2?=
 =?utf-8?B?TVJPampjUXA2VVRvWCtaVUlSTVYxL1hmSkF0MFNvY2pKcWlWMHhVVjBDRTA4?=
 =?utf-8?B?RFo3N0kwL1dOQnZHUzgyckNIRkRhTlM1bzNoSnNLZ01ydlR0R0x0RlZpYm5W?=
 =?utf-8?B?aU5FT3FQWmFMUmZMZlE3KzRKWVN6S29wK1Ftc2RZL051bFBmcFdCK29CcDJ2?=
 =?utf-8?B?ckhhVUxYd1R4QStaSTNWMVUwU0lkbUJDaUNoSXBvZHpvN3daTWVDT1VnM3lV?=
 =?utf-8?B?MFBUMWc1VGdta3Yxb245UUYwbEZ6U0I2R2doZDZrQVdvclU0WlhnUmNHbEFI?=
 =?utf-8?B?UGNyZE5nM3hNUkNtVWJoRkxvR3UzYk1Gc3lWcFNtdDc2dHpFK2tnOS9jNUo3?=
 =?utf-8?B?YXR3ZEF2cElMUkpuVGtqZFljZUNGS2ppc3B0RkVBOXl2MUI2azd1QWpUQVpO?=
 =?utf-8?B?RTNjMENuR2hGSGUwSG9CZ1NkdVN2cTRmYXZhTjB1dFM2WW5jMW5PRGJYTkNX?=
 =?utf-8?B?M3UrMWVZNVlRWTh1dXpJOE9OeTZaSHloeU9iTENnWVliNDJCcTJ3N09LNURB?=
 =?utf-8?B?NXprYmZ2OUU4cHB0cG9iclNsNGhQT1czUE5xRmRGUElnOXRNVVNoUlJaQVRl?=
 =?utf-8?B?NEExcmVXWUpabjZGNlQ3VmJmTURmL1hWOVJpY0w3OE52SldOaWtEY2hrYUxT?=
 =?utf-8?B?YVdPb0V3WFE0Qjc3c2JsSlVIK1JlQTlxWi8wb09ORmpkRXRVNHVweGY2azZH?=
 =?utf-8?B?OGhYRmhLQURFQ2VsdmFsZUZaK2pBR09leEhveS9rTGlBcDdyenZtaU1xazZK?=
 =?utf-8?B?azZzRVBZNW9vS0hmMDEzZXN5bWo2UTQ3WjFHNkJBMWpWVEZGUzBzT0FLNzF0?=
 =?utf-8?B?MmFBUTBFWHBZUmNwditPNm54S04zVG9NNU9Eb3dvRks2a3FMcG5QYWIrak9C?=
 =?utf-8?B?UmoxWkhYVS8xaEpuTWd1K2NYZWpFaVpwK0pyR2NnalFLMkNNUG5RSytwM1FO?=
 =?utf-8?B?dUYvdm1KS05oN3ZJWFd3WjJrY1NEZmtEUEVNWCs1WEJqVmJacWZpcFhkUFlO?=
 =?utf-8?B?a1RaYjdzM0haY0pqZitobmoxNTNreHV5QnFPRVViM1U5NXFaMUdoK1BITjQw?=
 =?utf-8?B?T1RCSExBeGZHT0ExYXkxRUNyb2wzVHVzalhOR1l6U29ncTUvWVdHMjJvUVBQ?=
 =?utf-8?B?T0ZGRmhhcWtWWmpmRzNJNUlxMndRR2xVM3V1WlR4aHFkUHVMSG9pb1RDS0dR?=
 =?utf-8?B?aC9QSkpETjJuYlJDWG9yM2lOUjVzLzAvb3NCT0RiYmdXNytEdWo0eEhOQUxs?=
 =?utf-8?B?WXpoZEdFSk5JT2JmNGRNY25qMTQ3SitzMkF6ODMyWTZ0TDE5c2FYSHJybDhm?=
 =?utf-8?B?VnJidWxEdisyMnNyZk5obldSU1NUVlp4cFJKSEs3MWMwa2QxUXhyRlkwV2dZ?=
 =?utf-8?B?cVpsME10eUlSMlhlK0F6QXhqbGFOYVZJVUhoaXN0WnFrYWkzNm5VcUZuV3F4?=
 =?utf-8?B?ZVNYL09jaXQxSkZpMC9uZUV4V2RRMXBRZDVZaGpLeFArMU1xYzYrNUtWZzNO?=
 =?utf-8?B?QWgxbkI2aWgxVjVnZVF0L1B1RU03K2U4VENYVklHWGJ2ZkxHMEgyc2JlZ1hy?=
 =?utf-8?B?T1hZSTNqTzhVUkZsRWRJb0ZnYkpQU3ZucW0xSWVYb05rb0tKaHNhNEJ2d0w4?=
 =?utf-8?B?ekJDNnJ4OWVNQi9oZ2t0bXY2SGtycjljb3l3TkV6bGR3RituUXZKRVE1cVk2?=
 =?utf-8?B?Zmc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a8d2a439-bf4b-498a-9ebc-08de2df1c289
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 20:15:50.8918
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6OibgHdgkBbepROlrcIQS65To+7+7Jo+SFkAPIykd12TW9M25+tsn13egxAijBbmqJ9YUR6JHWTZRuuxF6ydQiVuJFGflB2oh2wIZn+sSAo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR03MB6199

On 26/11/2025 4:44 pm, 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>
> ---
> I originally had a Kconfig option to allow cross-vendor virt and
> conditionally disable the check on policy compatibility. In practice,
> I suspect there's 0% of people that would want that, so I decided to
> simply remove it altogether. Happy to put it back if there's anyone
> interested.

We've debated dropping cross-vendor support several times.

Prior to speculation, it was actually the case that PV guests worked
fairly well (Xen abstracts away the details surprisingly well), and HVM
functioned to a first approximation (emulating the SYS* instructions is
horrible).

After speculation, there's no hope in hell of getting a viable VM in a
cross-vendor environment, so we should drop it.

In addition to this hunk, you'll want to drop is_cross_vendor(),
should_emulate logic in hvm_ud_intercept(), and the cross-vendor aspect
of determining #UD interception in {svm,vmx}_cpuid_policy_changed().

Also, I think you can clean up MSR_IA32_PLATFORM_ID / MSR_AMD_PATCHLEVEL
in guest_rdmsr() which have some pretty well hidden is-cross-vendor checks.

Also you'll want a note in CHANGELOG.md.

I'd also suggest splitting it out of this series.Â  It's quite different
to the rest of the series.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 20:36:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 20:36:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174379.1499322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOiiw-0005fm-0x; Thu, 27 Nov 2025 20:36:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174379.1499322; Thu, 27 Nov 2025 20: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 1vOiiv-0005ff-U2; Thu, 27 Nov 2025 20:36:17 +0000
Received: by outflank-mailman (input) for mailman id 1174379;
 Thu, 27 Nov 2025 20:36: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=jSjm=6D=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOiiu-0005fY-Cn
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 20:36:16 +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 b48b6e32-cbd0-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 21:36:10 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by IA3PR03MB7668.namprd03.prod.outlook.com (2603:10b6:208:509::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Thu, 27 Nov
 2025 20:36:06 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Thu, 27 Nov 2025
 20:36: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: b48b6e32-cbd0-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IU+6780WhS/vBp5LZlpUBwc2Zc4U0voN0fAGfqvvbGi6WRHTvjCN3m/p/MN/XwqlaucTdLj8mZT8nusbk8E8OWimgdpfchsuq5oHi25Cz78e4rU+HCblXORHxGQtVmvyEf51ex7KZJrnKWrvE+OJmcoZUz1DJQoWTmdkXX0ZERL0Imt1SsLZ2cHncaZAOAyF7aaQ3y4TjS/wJgt/xRWFrKKkdy8wrDk8YuQqlueNiqXNWQexvxHlrZGAWsZ5A9X0EVCHt/UCYEhTfn0xm5GmBl4CM7dlFEEhmEUVvuY/1xpnOHZ1gvdwEPZtM6aQGDkwHpjvq+k1ykQf+E5HoB2QSQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jQkK/c1GnY9Ph2bbVCZOPpV8lnEcJOqUcN0oX7BTvaI=;
 b=NtTIygNaKVqevA6eRvHo867zmn/2tl1ceZmO3PUfYWeOndiXFIorGDQlz6IhtYXY95K0egNHeQbQmQ+M9D0LI6pEq+UtwdM8fAp3vEhb1TNiD1TZwQvKnjTtc/oKLweiV0mEVtXmXYJxh221JfeZLwPSmgZ7afsmglOVHcmA5d7t45OnXvl/yoO6lYOhVLItz+9C2fAaIVt+DMCKjmnhGBsVUevbqU7xqAYTvnX+WMu4GxpcJU9Y/ASjeIJxZ4SzKPlKI5fCv9Uo6dwkuMbtBiYvnccTPrWFRFgRuH3NWYz90cwXe+c9S6IpC9RbtwEDGyaZ0n++v7xWhcasLoT2GQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jQkK/c1GnY9Ph2bbVCZOPpV8lnEcJOqUcN0oX7BTvaI=;
 b=NMr8e/5Gon8K2Cem90ljKL38dSFxbhkAhDUTMsxuOT62c+d+hgjB2sVuu9cAU/mJewoA/htmo9IAKdyEA5AaCC842qpvhTAmZ4hickN+bqQ5N4fUaaxCjANGVdu06f2TfJQwYTjWbeGGRDF5D+wI2fz7W04URbu5U7/DmZxyCCw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <9316c348-b4d9-4131-b1da-a9b5083d91cb@citrix.com>
Date: Thu, 27 Nov 2025 20:36:02 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Subject: Re: [RFC PATCH 03/11] x86: Add x86_vendor_is() by itself before using
 it
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jan Beulich <jbeulich@suse.com>
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-4-alejandro.garciavallejo@amd.com>
 <d71b6b55-6745-4ba4-9a4f-d5e7b08f0aec@suse.com>
 <DEJI6U37EMDI.1F7QHW1I7WV76@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <DEJI6U37EMDI.1F7QHW1I7WV76@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0468.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1aa::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_|IA3PR03MB7668:EE_
X-MS-Office365-Filtering-Correlation-Id: ad292050-2c19-475a-8f42-08de2df496ec
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?VVVEaGF2N1U2RlJVbjA1dXJXd0xaVC9kWkpNZWd5TU5RVTdCekFSYm9PWklS?=
 =?utf-8?B?T2thbXZqN3BMazhldVhFUCt1MmVlL0pibkwxbU5NOGE1ZllWc1NubldTMUtu?=
 =?utf-8?B?M1IzdUtaQmJHME9SWHVrZWFLM1QvbThvU0QwRWFXd25KK3k5cS9PNU5XSVZt?=
 =?utf-8?B?R25KMG5RR2tNaG84S3Q5RTFQLzhGc2s2R3ZmUUVrVmZ2QUxZL1JFMWxMVUdY?=
 =?utf-8?B?Sk56b040U29IbEU2ZmdEVDAxUnl3WkI1TzcyMStPTUVoRzJMYlgzY1JrTDZJ?=
 =?utf-8?B?elRaemNHclN2SmxTVzdZQjg3bDlweFFWVjBqNU1tb3Q2UndWRmZxSGRsYkU2?=
 =?utf-8?B?WGdTblVYYm9tT3ltcnhoR3hCaWxmbFIwcUI0d3dRRUdIMnVUODdhQlJXZ0dq?=
 =?utf-8?B?aFhENUtXajBOVG94RlY2dGNINTZzZFBXeFJ6RndNcGY3RkUxbU5nQUkrQVA3?=
 =?utf-8?B?Y0ZORjVrY3JZMWJGQUxaSEZ3S2RKbE1iK21OdU5RU1VWN0tXQzU3eHFjT3Nx?=
 =?utf-8?B?TnIrYXNXTnVRQThzTG5lb213Ni9DYThIZ0lhcHFZVUdEb1p1V0tOVU81WEo2?=
 =?utf-8?B?ZEJTTmFzMW9rdWxwRkpFaWdkY3o1ME9CVGN0MjlVTnc1UFlJZjBOUnhXSGdh?=
 =?utf-8?B?QUhoTThGNC9EMEhsWitlenpmWjhCam1zL2ZHNWw0RlFQQ3R3bHRCZ0NxSEZG?=
 =?utf-8?B?ZmdPV1cyQ1AyT2lxcFZLZmVlZmV6VXB1OEV3WkRHWnNvZGF3OTNJL1FURm9r?=
 =?utf-8?B?cVkzTnQ3RDY2NHRjVzdrekRoQ3B3Nm5lb2RZYmNmb25EVHN3M1NQdmdldVgy?=
 =?utf-8?B?ZDhJdXFXMWIvUGpUVUZ0eTFyRnpxbXg5RTVIMVQ5ZVZJY2RMOWV2V0k3djhY?=
 =?utf-8?B?YmNVWHJrZFFxajJJL0tDVDRheXRtR2QwR0JFL3VjdFhsanpuZjdmckxaWVV4?=
 =?utf-8?B?MmZPdDQzWDUzSEx5dEVmNWJ2ZjNSckF3R0VxQkozekpUcEpSZjg1QndscHFX?=
 =?utf-8?B?blZMN3oxK213aTFPS25hMGRMbiswTXp1S1pLMGEyK0dDYUFpWVl3a0lRTERj?=
 =?utf-8?B?SmhKbnpXbjdOQmh3bS9RN3FKdUtiV096RmtpUzF0TkhveGtQbEZjS2llZ1cz?=
 =?utf-8?B?T3VLSFphODJyNXlMa05OR1NRb2JkemVxbTFHZk96eDMwVWdkMDRlWmVCT1ph?=
 =?utf-8?B?N29lMDBLZG9Da2hlUUFqQ3o5d0ptVjVmS3d2bEh2b1J1V1JJRHM1bllrL2VW?=
 =?utf-8?B?M1dBNVN1Tjh5NlZHWEdvM2RNMVQ2bG9SMERoNi9yWVVWbjBua3c5REJjbE5p?=
 =?utf-8?B?TUM2YlM2ZFNNeEhici84eEFaV3BFNHFPTnBWeVh2MG9YeVVSS1NIZ2p0R2Vi?=
 =?utf-8?B?TitWNnhHS1BScXM2N3llc2M2ZHRNb1NYTWs0RmsyZEI0L1FGeGtuTHEreExk?=
 =?utf-8?B?OTdjcGtCTm1VVE9KSmtPa1lCZlpYdlFVZlhlNngwbDZwbEhNak9Xa29XQkc2?=
 =?utf-8?B?bWU3TXluUlltWmhDdFN1LzRyTjRhRTJxb0F2bjZWbjhhS2tVbzZqcDc0T0Q3?=
 =?utf-8?B?N3FLazc3bmZpTVB0TGJZVm9oa2xyc3ArblBWOXZ4UFZOamZ5cVZySjZ4eEdt?=
 =?utf-8?B?L3NoOHFYN2t6RENRbnBFTXp4cGxYeHdjWXk4OERXdnBBOEd5NzlOWVZXdFJI?=
 =?utf-8?B?UmVzTEJNY2FpZDEyTTJmZC9KMGFyazZvaUl6enJ5OXdvbXcwSm5pb090d2lq?=
 =?utf-8?B?NUNNMkVITGg5d2hVRG5vWnBXdktFbGYwb2F5TVZFYkRvUzBBeExkb3U1WHhG?=
 =?utf-8?B?NUNKRDlUR1FHQ0UxcmlreTBTclJLSHAyckZjeXhwTmlramdFTmd6Q2lGNFRF?=
 =?utf-8?B?WC9Nc21qZGxja0QxRFVqRU5ld210MWRXbjgzL0tJY2VHNjk5ZGROVUZWc2gy?=
 =?utf-8?Q?8gPXDwqu30XiUel7Vns711SdyeAvUVqs?=
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?YnNrNnN1d1R3Y0xjOFNrdW9LZ3JjaGllM09CdWtuVmkybnBNOGRhYW5vS0g4?=
 =?utf-8?B?YWdnNGtveDNkR1E1aGQ5WDRTSGRzODlRdGhzWnp4VE5GVGRWS3hWMDNETEZ5?=
 =?utf-8?B?QzFKNnlQRUVuekZxK2JuN1dxZjh0aFlXdzJzbUZyVFdHUWd5cWp5NERSRDQw?=
 =?utf-8?B?UGVKL3FhckZxclVrTVJtUTdsS3Zyb0o3UjBZYndXN1lIUzlweGNlS2lyZXdj?=
 =?utf-8?B?UHFWeUpKMzROQXNNcmcvVHdJZ1p4OWpoYXBnUnRkdS9lejV4ZmMwNWpzWXd1?=
 =?utf-8?B?VWNmTG9HcnlpbzBmTkVNYnRwU0tXdWttUzJKWTVXRmhua3JEbUVoMWd1SVFY?=
 =?utf-8?B?WGVXOEVxM3oySWsrOGlZZXdjMzBLYTJmWUx0d1hEcnVBWG9TK2NVZHB5aGJK?=
 =?utf-8?B?YnVxVUdOOE4wQjR6VzRVWERIK052VlJaTGg4WkNUN2xPWE1ZVklha1pFbjBF?=
 =?utf-8?B?RWVYaVlJRURVU1dwemU2bk1ER1QxVklCcDdqOHRQUitFRzVaR2FDNnU0TktC?=
 =?utf-8?B?aEJyeDREbCs2elFUTXJScnF1eUNFMllVTSszMUc1ekRqeEM1ckxlMFkyeGNr?=
 =?utf-8?B?aWF1S25GaGtPWkx0YlpIZ2FQSUROWVUwbExQQk9pcGxNaXBRRkM5Slk0UWM3?=
 =?utf-8?B?czVUMkJ3WnVFeGJ0dDhTVHlUU3VGRE9sYkZFZUd5enNiRVhGVEhOOEx6clVq?=
 =?utf-8?B?Q2NIbHNJajYzaGoyelBhUUdMSENjR29MaDZPSjhFSklBMGJlMHhZNlFnU0ZD?=
 =?utf-8?B?R3g0SE9nL3hmbERHSWhOZzAwWXhnR2tLK3hzYnYwRzVSc0dFSkM0VGtCWFg5?=
 =?utf-8?B?N3FmOW4zbFlOUVlZUitPdE1yZ295UWczekNrZ2dxMS9zZkpGaEVjaHQwb3pT?=
 =?utf-8?B?R05hYXVUQUU1Q2JWWm44V1ZMWHJJUHVUVTBDY3E4aXY5aEJJUFhrbnUxTG5n?=
 =?utf-8?B?bVFFK3dnUDJxQmhCZmViSUI2MWFNSFltMGNrZUFZZjNpaE9xVnVocWhVL2JW?=
 =?utf-8?B?WUwrMVhpM1V3bVA3WGNlTjd5U2ZycmFvQnFLeGgrZ3RDL3QrODBueG1EL3BR?=
 =?utf-8?B?TmFVTmE3cFdhamdzOWpGZVA5aHA4VXJYZ1BnUXp1OGw3WUFPZmNNVFNnTjB3?=
 =?utf-8?B?TW5ZaUU1dEtVbFdpR1E0aDNnTHY1cGdhc3FmandmME93S3dXZGo0eEZZTE5Y?=
 =?utf-8?B?QzJWY3padmQwKzhudklLQ0NEVGZLYm53VkZ5aEdjcmV5U0hRRE0yVTVPaUp1?=
 =?utf-8?B?WkRXY1FiZVpzQUxYdEVaY3FGWWY5YnY5MHZ2elZCQUYzU2xKaFlEQjZpd0lF?=
 =?utf-8?B?M2NrQmd3c1BvR24vcnZJejdqeldsb0ZxYW51clExRmRLeG1OZHZvaWYxWmtM?=
 =?utf-8?B?UUJ6cUtoOWVQZTkrL1llSnpNaTNtWTRncmJ3cG9oaiszUUhRcGFrdjVnSnFC?=
 =?utf-8?B?Y3FVQVZQSXlKQU5JTCsyVDgzdDB6TGczZDhmU042ck10clU4aFZuRVNjUy80?=
 =?utf-8?B?S0xnbWlCZDlDTjFQa1dMVmQ1Q1VZTnI1NGo2VUQzS1BoZDFTWUI2UEJrRTR1?=
 =?utf-8?B?RFRSdEtNR0JvSEJ5VlEzbXFFSjZsRkNybWYrdXBvVlNOamFMSzFFR29WN1pk?=
 =?utf-8?B?Z3VGLzBpalRWeUFINUtmNmJXZ29UU3A3S3FFc2luWkg0VURWS0puYnp2M0tT?=
 =?utf-8?B?TFRvNGk4djdSYTJBVnNGalFRU2FreFluVWtMNU9ZckZlMmNHdzV5VEZPUXZ5?=
 =?utf-8?B?ZzZXVDFZT0xZbWdPbGl2ZUNIVzA3ZkQ0bHNXRW1JdEU2M3hxM2J0WitDODJD?=
 =?utf-8?B?Q3RlcTIwMTZ1amRSdjN1ZGF1SjZoUTM2K05FcGRXNWVxc2JrQ3pwM09rUkhx?=
 =?utf-8?B?VHEyNCsrNkozME5yRHpjamVmZ3cwaVJqQ1cwT3VjNWpJckExNis5ODZERzRm?=
 =?utf-8?B?aVN3RXdjZlEydXo4K2ZjenFPWTlHeUZPOGl3RFNldFJvNFNvQTVUM1RFTjd3?=
 =?utf-8?B?TXk1aURaS1ZSOUhGNG5uVGF1dVVkaDRQMWg1RHBKcUJRcllYT0dRamowY1Vm?=
 =?utf-8?B?aUlpdkNUNE5xNEhkbzF6c2lpZ1I5Y1YyNTdGZmtyZ091cmJrZHJzTTEyK0I4?=
 =?utf-8?B?QVB3ejFFeDhPVm0vcDhkd1VmMkVUekRKTlRET0NtaktVS3Zlclp0MFY1Q2Fm?=
 =?utf-8?B?cGc9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ad292050-2c19-475a-8f42-08de2df496ec
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 20:36:06.2125
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: fsReOCdaceiQOgdOsZT4ajo99FH9bd52lfngrzP5aotAwQ2w25RAY/DOGs20I/zQQxX4v3Eiy7C7b//4MOUXCRfCJFokVrICDvRyBR2PnB8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR03MB7668

On 27/11/2025 1:15 pm, Alejandro Vallejo wrote:
>> Which raises the next question: Should we even allow a hypervisor to be built
>> with X86_ENABLED_VENDORS == 0?
> That's the most extreme case of "should we boot on a CPU known CPU vendor that 
> has been compiled out?", the current code in the RFC uses the unknown vendor
> as fallback. We could also panic. We could be trying to exercise the
> "no assumptions about the vendor" paths.
>
> It's a policy decision for you (x86 mantainers) to take. I personally think the
> default path is silly in this day and age and we could get rid of it entirely.
> Without it X86_ENABLED_VENDORS=0 would be indeed illegal. On that topic...

We allow compiling out both PV and HVM, so Randconfig can search for
broken corners of the abstraction.Â  The same principle applies here.

For running such a hypervisor, I can't see anything that would
fundamentally interfere with PV guests; PV guests are all architectural x86.

I don't like there being an explicit Kconfig option for UNKNOWN.Â 
UNKNOWN should simply be "didn't match anything we compiled in".

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 21:01:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 21:01:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174393.1499331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOj7I-0001LI-Uz; Thu, 27 Nov 2025 21:01:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174393.1499331; Thu, 27 Nov 2025 21:01:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOj7I-0001LB-S0; Thu, 27 Nov 2025 21:01:28 +0000
Received: by outflank-mailman (input) for mailman id 1174393;
 Thu, 27 Nov 2025 21:01:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jSjm=6D=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOj7G-0001Fl-SW
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 21:01:26 +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 3adfd339-cbd4-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 22:01:24 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH2PR03MB5240.namprd03.prod.outlook.com (2603:10b6:610:93::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Thu, 27 Nov
 2025 21:01:19 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Thu, 27 Nov 2025
 21: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: 3adfd339-cbd4-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=udDXwUanApvyC9uV0h4fe9Dvs3v4iqbMSzNbGoOIgLuiHRAC8Mq7DZpUSz5OpUUdpqN+EEY4PYIFkChhrOwRrbhSVkxwuDUA0Y+7Mauy8TZ18D/eceeYN7jKkvkbn2dLpXsbIUP5xHzYC+oK+kpinDgLHhxsQXPEba7MBkkzzxgrEURUOF8GUDOfScx6AA7gFFRRiteAwX2kG1RfRH62ToHGLrYr6jDXqVCPWH5+ybxXhfbRCKaFZMWcXcGUuOQMOxPWYe2e6CDrOQWc+lp1V+zdV1+aWbKuFZqz3VRkoQRtxt5XFyZkQup2DAG8re8YUHH/h2yvGwT+WjV73j5AqA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Y6TwGDYbKW7x7RzRGYcCKbvSXqTYzzq5e3l2yT72UmM=;
 b=WXbC3nGbYjBDA1p9Ijtzboe8/E7raQnSwTr6F4R1J+jmppp4sefgj5p2wSRVsDD+u9CFHqaYLJIRELYqCiAfcdrWnHsT/3VU4Wze5TjCbXRYfhCOe2Bb6s48sUssICNALAKzFMZQK6h+Gdkhl57HCD0/eh/1X/8Pg7PUEh2hSLY/t+wwECJTfaUvwUZLddZIMoBXqcwY4SQNhNTQ2MukT/FdSdESbJCrKA/kqUarc7aD0NqTZ1WzSv1h4jQ+4vsUgoeEqLqXuqJjr7ExwvU3OpOXYdWaYvgR1+Um8YQrKT8P+voM4dxwwvq5jg/BFTvbbWAen+JeyE9P6n7rHKfPsA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Y6TwGDYbKW7x7RzRGYcCKbvSXqTYzzq5e3l2yT72UmM=;
 b=Fe7go6AP++BK46mN0XOFUcRB4soZjyrNeGfipYSmF3M8kOIOoGdUSTyRxGia3kK5NyVMXB/DWGviQOW6LmFdWpIIFxPsN8MtkOpGs7HQSvJ+tFI5NXNChqq2GoRKWIhOYtv6Aj86i3G9eRxsUpFp0CpFElFi7ngcwcw42dNT52M=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <ab368c3d-3cfd-41e5-b4ed-d3b8f8093b84@citrix.com>
Date: Thu, 27 Nov 2025 21:01:15 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [RFC PATCH 01/11] x86: Add more granularity to the vendors in
 Kconfig
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 xen-devel@lists.xenproject.org
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-2-alejandro.garciavallejo@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251126164419.174487-2-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0138.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:9f::30) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH2PR03MB5240:EE_
X-MS-Office365-Filtering-Correlation-Id: 07c09146-2944-49f1-44c9-08de2df81d20
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?c3cwaU1HNCtMZnhMQ29jRFgxRlFMdTFhQ0F6dWNWRTVtZlRVdnVkVGhVSHAx?=
 =?utf-8?B?bDI2cXdvMjBsMFE0K2tRM3lzbWo1YW9rS3hWbmM0UFJFVDhoOXdkU2U5MDZV?=
 =?utf-8?B?dDE4K0dDd0hpUkorODc2UnpXTW45ekJNK0cwTTI5NHkzUER5TCtFSjdjNG1j?=
 =?utf-8?B?MmtmenUyUi9hZ0xxN0JYQnVUSmFaS21HejZxLzdLcElVc0hKR0tKcElBaklO?=
 =?utf-8?B?WlE3MXVuZ0VnSVhHekhTSW5VaHBmQmRMQUZ3SGVyakxyWEI2S1Vpc29CSnNo?=
 =?utf-8?B?ZmxBbnVhUDgyV3JPWi9ZK0wwTkpZbGU0dUx1VVlQNEdudzRsWVFHQmorNmIr?=
 =?utf-8?B?blRreC9SdHN6anZ0eThSUlBHWHBLeHhEK2thbmtHVy9XeUJhRmppckR4WmVl?=
 =?utf-8?B?RzRmOURNbWpOUnhscmpLMCtiUlEyN2R2OGZXcjBMU1YwaUlNZXozSU9GZDlH?=
 =?utf-8?B?M1lPQ3JZaHl2NkpCSVd1WkNiTUY5L01EdXVmVzJSd3JrL2JrT3lYM2lEd0NG?=
 =?utf-8?B?dVd4SFdXQnVXbXJBR2FNL0lTOCtDSUZ1eldrWDJqZC9EMDEybExBUzBWUkda?=
 =?utf-8?B?MG5tSVNWR3VjN1RndkErbTFWeExYelM3K1NoOGZXTi9zVWZKWU9rZWpnZk1k?=
 =?utf-8?B?SEtXSE5SYXQzSm9jbnQ4aGp0TjBLZTRNU3J4L3g1SFdGZ2xESkJDMHNPazN6?=
 =?utf-8?B?OEZzeWhhbko0dmJBY2tQakgrN2kveXlndmJESjZCYStZS29ja2FIbk5LdS9y?=
 =?utf-8?B?RGhUOVZRcGpTMm9jOWxzOXdxMXlWUkpKV1lhb29JSityS3pPZGJIaENDY2w3?=
 =?utf-8?B?QVRGOHFTaC9oc3BMTXhCbXlpa2RtYVI3U25zRnpZY1pSQXhuKzZQTmpIT3V4?=
 =?utf-8?B?RjNCMnZBT1RBTElFYlNKenc4K0pvV253enc3ZmczWUlNMUZaK004bVNFRVdR?=
 =?utf-8?B?bUg0UjVsampndWtUWlh3T3I3amJGbmhmU0FKcDF1Vm5JeVJTME0vdnd5YkVK?=
 =?utf-8?B?WkJ1UEE4Zms1VXE4YTF6R1BPQjFxbkE0RVFaSENYRk1WeHBZcSt1b1hHRmNn?=
 =?utf-8?B?ckZya1NHOE1DZzdOZTV3bTBSSk1ycFN2bUlPNmExRTYzSnArd3ZqVUVSOGJ0?=
 =?utf-8?B?amkyQUphR0VESGh2MEVYOHcxMnVxQ2lweVBwcWpPVlpOeCs5SnhyUkovTWVW?=
 =?utf-8?B?bks5K2ZzcWFmT2t3TXBITkJFNmpFZ1N4VjhiNS85aW9PZFpqMGFlbE9hWG1o?=
 =?utf-8?B?QzZpZ0xJb1V0ckRzRTJQTFlDM1d0d00wemR4bituUURESjJSR05FMGJKeE9l?=
 =?utf-8?B?aGFOSmxIYldxU2pTSFduQWRuUGh3eXNaa29RUlJTeWVQdmcwL1hBL3FiSHhj?=
 =?utf-8?B?RzNueGJoNXlrZEhnMCtHcitrdFJWZkJud05nQ3c0ZERNT0FnWVNRWkI4ZkFD?=
 =?utf-8?B?MmUwL0dCNGVwMTRFQU9mNk80dW5sVkJBRzJ3ZVlRWXdDMFA0YUhMTE8zVkpY?=
 =?utf-8?B?cVhyWjNRQXA1bHhZYnlTYXF5aTlGUTA0aWp0eEZlTFhuR1NHUEVpd2luM2hQ?=
 =?utf-8?B?VTJlZE00QTMvL0ZybHZYSlBRcVRwelJnV0RDTlphTXRmbW54RWVzb2MvVFky?=
 =?utf-8?B?Z2dWMWVmdFFmUk5pSTQyaHlMSGNnZytYU3lNZERPWlh1d21raFBER0c1Tksr?=
 =?utf-8?B?QXBQdytTaGwvVjBGZUtGSnE2Rm8vdFRyNU1YZS9Rc3J0cW9sMFBiMEJsN3JK?=
 =?utf-8?B?SDdaVmxFeVJhczVJSWo4ZGw5cld6Vlp2RDkydk15OTE5WDcxTS9HcGFIMVdv?=
 =?utf-8?B?R1VKalp2WFg4UzU1RUFBR2lBMUtBQ2ZvWWxKODVUTXVkU3JUSW1iNTNwSTNW?=
 =?utf-8?B?c1owQTR6WkZkZEhITzF5eGJOZ1g1RkoyNytmUEJYcjlablJMQUgzZHVNNlFS?=
 =?utf-8?Q?/zFcr022VS3z4qctujbstmkkym9A8th/?=
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?YVJQZ0tRUk5GSG1TTGh6TGs3RVJGamM2bVJ5dHgvVlpoUnlsOHU2NDdVSlMw?=
 =?utf-8?B?U3BtZXNqbUtEZW45b2pQWG9YSVE4cjNFYTBvM1lSbmJ3a3BjeHNORUVPSXpp?=
 =?utf-8?B?TThrSGZZL2F5N2tjSkM0RDZXVTlkMTQ3Ni9uMDBZRG5WZkgwd2ZMR1MzV0JC?=
 =?utf-8?B?QXJaNkJhV0daeGhFZ2dpSGJJS04rWjNhVEZ6eEwyT284WjNiOWtEOWMreTRS?=
 =?utf-8?B?TlRXcjVxaFpiT2xhV2ZFblB6cEVVdWt0b2Y0R25seTBhWkFlY0dHV0FWU0s5?=
 =?utf-8?B?MEZrOXNrUXNEOUZPd1c2ZU1wRENLL09qU0p5QzBzZ2IyVm0rOTR3WTFFL09B?=
 =?utf-8?B?Y0Q0VjczSkM0UmpCeEN6bm93VU1uSURwZXpzV2lJVERjdENsYS9ZTHBmVXNn?=
 =?utf-8?B?WmFWSkpTSzN5N1BySEZSRmRGeEVtV2pQV1o4b3YxdXFPem1XNVNoMkxycUFP?=
 =?utf-8?B?bFJWcUJiVDVEenBRK2R4bGh5UENtL3hYN0dCbFRSd3JVbk1RRkFkNjJxV2N2?=
 =?utf-8?B?QUdjVnBHUFVoU0FuTDFVZ1R6ME5zdkltZFJ0THpuQUtMNHRjcTF4L1k1STRP?=
 =?utf-8?B?djdSQmN0bkUvcElKSXBOZTRhclJwc05HMEJyUFhZSUw4cGwvRVhERm4wL2Nw?=
 =?utf-8?B?bk9sNlVhMnh5OU41RVFVbXpDTWVIajNSL1ptNDRpU285N3FGQkU1SHlnOHVu?=
 =?utf-8?B?TmdqdUNoemwzNndqQ0xEOTJtZjZVUHlrNXJTK3g4WTFhTHBkYU9iYUFlUVJp?=
 =?utf-8?B?eGtyUG9jVWNZcDBsTGVoUlU5SzJ6YzN5dmZpR29Ibnc5TXdoVURNUHFMUHdi?=
 =?utf-8?B?M2JwcHB3MjcyZzlISHp4S3hIY1NMOTlwb0hBVGtvNStSVDBocHp4RnEvUTNT?=
 =?utf-8?B?ZS8wOEpuUXMyRWxmUG8zYnFkR0Fob3ZTTTExY2lhZHRFaG5OcllJWitHWmVY?=
 =?utf-8?B?NzE2SG5neGRuZmhKR0I4ZmNBSlRwVStVN21BRlBUaGdmeW9mY09yZnVQc0xO?=
 =?utf-8?B?SU4zZkQ2c2Zkc1J2aFZPWmZNL2pDOUpaNXZNdUQ0U1VZMEpOMXN3Z2NvQzVP?=
 =?utf-8?B?bU9FN2d4aTI2SE9KaG9VTFc4Uit3NXZjcS8rYVVxMlRwMEwwWUdmNGM5enFW?=
 =?utf-8?B?VVFTaUpLMjhqeXdlZERBQjFFelFrN3JieG9uMkU5R21sb2lwL0dKd1B6Qi9v?=
 =?utf-8?B?QjBkam1FeGJuTFh2dFVMYm5UVzd1V2dySGQyRTFvbVJsR3J2UlpFN2tNUkY4?=
 =?utf-8?B?MkZoelJOTEZGS1R2N21abldseDlQQlNuemFidDlUQ2J0WWNSZmtPYUFnWkF2?=
 =?utf-8?B?aXVFeldrMW9HaFNHdlNaZTFOTEFiTk5RR2Q2L0RtWlhlZ2pmVEY2VGdEY3pm?=
 =?utf-8?B?UW5yMngrMVRkTDhHc1pyS1JjN3BwTkU5OGZLbTh5SmtoLzFjanJ2VXk5dVRP?=
 =?utf-8?B?NGwvRWMzb2lVajhIREkrR0JXYUwreHNaQTNmQldDTzMrK2dRVmJ5Q3pLekIy?=
 =?utf-8?B?RGNIcURDSHFOSC95T3UrL3NEZWRYWGNMNERUUkdrRU5DSGV3RmorT0t3dmlX?=
 =?utf-8?B?Zys3LzFpZEIzVjhCTHp0UmdvdThPQ0RQQTA0bmh2N2pkaEZpS2NiZmNkUDIv?=
 =?utf-8?B?NHJuMkFaa2EreUx4WWVmSHF3Q2tkc2xhZm1kbXUzUjRwOVUzMHkvajVMb2dr?=
 =?utf-8?B?aVhBbU1JanIrM2VkcWNBeXFBUjUzd0MwbkZvSGdKdjBlek5HRFg4WnRPbThD?=
 =?utf-8?B?WmtaMTJpMmdrMzA0QjdXZlhONVJ3c2U3TFZrbkF1c0FhVU5YL3dNOExWVHAw?=
 =?utf-8?B?YjdOTUZoWDZlbXNkdVVNZjdRc0xXeDE4YVFyZDY3YkRjS2NZdmxjZXoyaWhC?=
 =?utf-8?B?SVNXYTdCVFVLd0k5dG9SQkVLOGRiY0Z6UTkvTEx2TlFQTEdRT2JpTzB4aTRY?=
 =?utf-8?B?YTg4TjF0eDVZYmw5MTUwTmpzV3l6SG5RWTNZOEJKMEM5QXFMSkxpRm9sM1Bk?=
 =?utf-8?B?YVd6YkR4TDN1bXk4eU1kOFQzSm9ibGpwR0JoNTZmaVlTdVFMbUkxSHcyYTFy?=
 =?utf-8?B?VWxDR0dDbkVXUHRaNGVIT2Z3ZFFxeWdxbU8vczVOU2ZYUTdKRUJLa1BXL1lu?=
 =?utf-8?B?MzIxZGZQNUpIa2pVbzRYTDFqNnFYZ3dqRmR5SDV0dE1SQWx1NHN0NlRFWGty?=
 =?utf-8?B?c1E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 07c09146-2944-49f1-44c9-08de2df81d20
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 21:01:19.8635
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: pNxIrZj8pAcbpCeBDA9V53HNMbfEkdvJZ0OhfSu6Jcebdpcd2QL+0JXnC343ysgMKsSh8LQfN1tEicEUK5xSM8ncwf2VcepDHQ03XhQy3Dg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5240

On 26/11/2025 4:44 pm, Alejandro Vallejo wrote:
> diff --git a/xen/arch/x86/Kconfig.cpu b/xen/arch/x86/Kconfig.cpu
> index 5fb18db1aa..aaf70fb37b 100644
> --- a/xen/arch/x86/Kconfig.cpu
> +++ b/xen/arch/x86/Kconfig.cpu
> @@ -19,4 +19,49 @@ 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"
> +	depends on 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"
> +	depends on 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"
> +	depends on 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.

Minor nit, but all these 3 should be select AMD/INTEL, not depends.Â 
It's an implementation detail that they reach sideways into AMD/INTEL to
operate.

An end user in front of menuconfig wants to see all 5 to configure.Â 
It's unreasonable to require them to know that they need to enable AMD
in order to be able to configure Hygon.

> diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
> index 37820a3a08..393c30227f 100644
> --- a/xen/arch/x86/cpu/common.c
> +++ b/xen/arch/x86/cpu/common.c
> @@ -118,7 +118,7 @@ static void cf_check default_init(struct cpuinfo_x86 * c)
>  	__clear_bit(X86_FEATURE_SEP, c->x86_capability);
>  }
>  
> -static const struct cpu_dev __initconst_cf_clobber __used default_cpu = {
> +static const struct cpu_dev __initconst_cf_clobber default_cpu = {

To follow up on a different question, the __used came from 660f8a75013
but it does look wrong on a second look.Â  It might have been a leftover
from an older revision of the patch.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 22:12:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 22:12:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174409.1499362 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOkDO-00025V-UU; Thu, 27 Nov 2025 22:11:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174409.1499362; Thu, 27 Nov 2025 22:11:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOkDO-00025O-Rj; Thu, 27 Nov 2025 22:11:50 +0000
Received: by outflank-mailman (input) for mailman id 1174409;
 Thu, 27 Nov 2025 22:11: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=jSjm=6D=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOkDN-00025I-Pm
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 22:11:49 +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 1028444c-cbde-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 23:11:47 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS4PR03MB8397.namprd03.prod.outlook.com (2603:10b6:8:328::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.11; Thu, 27 Nov
 2025 22:11:44 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Thu, 27 Nov 2025
 22:11: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: 1028444c-cbde-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yKSEuYZD2Q0kyuiDxsJx2wt+XjIhgDZ6kykg/pBcSn4UKIaGRj/qst9TxIOipUlUVHvE6sbWeXwAIexUUPBhKaZlx4FcCrDv3ilbf6zK2Q4qVMA26+v5Mm3PziMjY1aJQ2PNp/IdTPV+fU63fl4pWwBPcT/VhEX7Dz1Ox8Y1VoCrVkkytjvdDyjMo1zZ3muV3z7BoNHUjV+XKb02VXpYJ8Y+NKndaXQqCaYzckH6Qv2MsnrgUa4rl5Fm0zKMtAuwzKXA52tCebrelNunA9b37MRSmdwPYlPczZLr5Lz7Rz8Y17uoDuUphVNKONDXeqBPVASEnfOl1tcBN/1GWWYyrA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cYDziWmpfg6jFIDyJg8fnIrPQbB102iQI0Syc2VeWWs=;
 b=x6MJvAkex3B3ic/DunkGsZW4E8If2PZyez++HazeLl/2iKqHOOqfZIudqTi7E1jBSeyenuDg4K4Ci6b5H78KC7PZT5Gmx2cH+BNKbwmygTfE8roTrWw9TzV+LcbxlmV1AWXfm7R2GAI4T2XvMhwrnH9jfI/A5ER5CK/AHNuXOfdAVba4CVKJtK3dSDACWDE7r9nky1cTSudsvB8DRvQGipTnYoIMK42mwQgyxiSBmCwRqUhhaoXzMc7lprS3XMBahUcQdHWL38b/qIpGkavJrOd6ZJ3gnn1HewyYGYc5ssWw5G8HK6T2WegPZTMsnSObuLq8vAepdcYj2odBK/QLEA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cYDziWmpfg6jFIDyJg8fnIrPQbB102iQI0Syc2VeWWs=;
 b=L+v4x2KtFbwFoYkq7sPtwSQFprUPFw7Da3dXVzOKb9zS8YUS3BfSTcdmr7Plo1wTChG51ybi+Fqlpojv/oBiya9Mm6ZWAcMUACiJ92GQlV0lIx3LtWnaT8CU5Tdj8X0B5k2U4X8yEZHnZS78ro5byafnZ9YfdFTpgJ5fbUtqvx8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d27c3599-ecea-432a-b244-13b92b274c14@citrix.com>
Date: Thu, 27 Nov 2025 22:11:39 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [RFC PATCH 00/11] x86 vendor check optimisations
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 xen-devel@lists.xenproject.org
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0321.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:197::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_|DS4PR03MB8397:EE_
X-MS-Office365-Filtering-Correlation-Id: 58967871-2670-4319-1ab6-08de2e01f2c9
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?NUdSaGVNOUdPK0pmQXZwZ2JnNk5FMkhsVm04OFV3U25vZERjS21UZVZhbWgv?=
 =?utf-8?B?QTBZRXI0VnJ1bWNSWWdGN3NYMGwvNGROcDZ1bWUzVWZMZStOY2ZKNkRSYzds?=
 =?utf-8?B?YjVsQnA1SXllMXRqNGg5aEl5NkVHZEVCZUNrdFd0amJySmRoNmtDSVA5bmhr?=
 =?utf-8?B?M3pidThndC9rWFBJb0RaM3B0bXF4K3NSbmpCNFgycEdzRDlxcCtBWmtYeGVF?=
 =?utf-8?B?SXJHdzlXOWp1RjhjejJ3NFEwVEdqenB1UmJ1dUVvTElWRVJKMjVjdUp0eExw?=
 =?utf-8?B?Y2NPRnh5ekZqTHROeWFocFB1TkgxS2ZKY0lxVEg2bU5Ea0craEgxV0xUQ3cx?=
 =?utf-8?B?SndOT09UOGlvamxyZ2RVL1JVU0RjYWFMQWJWeUp2NDl6U2dDNityVEV1bC9W?=
 =?utf-8?B?bWV5YmVtQ2NiN0JVYjlReEZFUTB0UkMxeTVVdWRpbTNCSmxQZDJNR045V1Bz?=
 =?utf-8?B?WXYzQ1BzcHltUEhwTmdubVpCL2VWSmtsbk1iT21rTS96OTZZMkdiVnhTN1J5?=
 =?utf-8?B?TzVQTldIbnNXWlZScEx6eUxMZ1hyd0tEZnNzbFYrMFU5M2R5UlBNazhWQVVK?=
 =?utf-8?B?MlVVWWtlZE4rZmpldUc2Y1RLQUU3SHhLNmxOVUJQN2p3S0xOSnU0UVcwb0Nx?=
 =?utf-8?B?d2xKbXUrK2VmTDRkZ04vN0k3WnVUQ0ZwdmlZaFdwYklpTDl3dFFnejJHZWxN?=
 =?utf-8?B?U3cycHpibVRNbWdTTVdrNVUxTloxRjR4MWJQN0Y2VUJvZFI5MGNqNy9vbVZS?=
 =?utf-8?B?a1VNV3E4dXhrSy84a1FuTHpvZjR3by9QdWs0TU9SektHZzN6THF6MXVDWUcz?=
 =?utf-8?B?ZFBpdlJoQkRpSk51b1VlMW9lVlZCaWlaN3o5cWlHbXBYWlBZWHpFc0l3NnFJ?=
 =?utf-8?B?ZWpRa3FsZjVpRVFpMytJQ3BWUkl4clR1aVVUZ0tRbGhsQ3RUTzRsclFCaERr?=
 =?utf-8?B?S2xQZXdQM3NTWnFxTFZTZi9rZGN5SWFTeThUUU9nRjllMmhhaGNqOEdJbEd4?=
 =?utf-8?B?cmVIcmZHTGdLSW5DaDY4SmZtOEo2VzhKWllTWnNQVHdjd1N2cU5KbW84UWln?=
 =?utf-8?B?bWlwUmJoNHdzYzg2SThuczZGN29OOWJMRlpraG9MNnFzSDdlYjlJL2VVS3U4?=
 =?utf-8?B?YSs5cEVMZURjRVF6NUxkV1o5SXl5MS9ud3lWNEF0TCswdUQ0eDdRRnNsT2Q1?=
 =?utf-8?B?TStVRjVjcmNLQjlJZWZONjF3N1lCZjBRZEtiNjNVV3ZZVCt5dEpRUjVKWGRZ?=
 =?utf-8?B?WXAxTEtSbS9BQlhGbFBMT1JIR2JvelZocFFSTzR4M202Q0lnRGYwdmRzaE1i?=
 =?utf-8?B?VG5wUW9tY1BqTCtORFIvbkhJcUJ5VEJFM3g5Z29kNjJlVGRGWWV5RnpVelo5?=
 =?utf-8?B?QTRlWFVESys4bXZRNm1iOFRjTEkxVzI2YzB3OHIzUW91MHo1cEN6MkkwYjRO?=
 =?utf-8?B?OS9IVGNYSE1OQ1FGVlFOb05MeWRhZUpzM3BiMGNKMG9JSUJURjFpNUE5WXFl?=
 =?utf-8?B?Unc3Y3hiaFlOYjByT3Z0UUN5RUR1WlZBVVFCVzhtUW9FQ212b0pxY2J1Mzdl?=
 =?utf-8?B?RlM0dEZmY1cwVUJoMzlGbjd5OGEwWnJzSU56dVVoL2YxMXZJS3NNQzBTckFX?=
 =?utf-8?B?OWpjbmY3c1NmR3FUR0k1aVBCZEp5bnRNbzFNWmdUbWtQY3ppeEhiMDNYY3BT?=
 =?utf-8?B?U3QzK0gxbUozNUtFeGZUZXpRQ21lZlBheFpPM1BNektsbG1iOXJqSUJQVnpF?=
 =?utf-8?B?cnI1Zm8vekpuTi9mOHJHMVcwYnJaNmNGaFdweTIvTnVCamFSalh6dUl0enNH?=
 =?utf-8?B?TWU4Z0pMbWpSSzIzb3hjMHBpUUZwYkFwRmV1eUd6R25pVml6WGR1QitwVWtw?=
 =?utf-8?B?aGlSZThaZWREeTN3WExFbUI4R05BYm9rcExMcVAyY0E3eFFsM1ErZEo0dWI5?=
 =?utf-8?Q?NzErOINA1AmngwIhNIbRZqUiw+rdjkgO?=
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?THlVeldnV0FNK3BKTFQ5bXk3dllRRW9FWG90UE00eGVHem5lNHVZKzNFTkl1?=
 =?utf-8?B?RmcrRGszTi81eHpmQWtXSTZoVEQzZEVHOHUyNWRxU1Y1eGtyVks2S3UrdVBq?=
 =?utf-8?B?dE1NN1hTNVJ0ejNCSUYzV0Fxb2lFeEp2SEZIL1R6RGRhYzhQS1JWTE00andP?=
 =?utf-8?B?TzJTcWtOYlROMWVtSlJSNHNCL3dqelFvYWMzQ0dWMHFIdHFXRmVVak1ndWJS?=
 =?utf-8?B?Ym92b0tOTkZRV3BmeStYSi9XZ2lOSm1mVWk5N1NLS0xVU3RVTUJDZ0k1am5o?=
 =?utf-8?B?VlNjd1hZRXhTcXNMMmlwazhFSE8zL0d2dmpoMTJJTlEzaDN2YlhLVkNETFRl?=
 =?utf-8?B?T1FBbGJiUjk0a1FWSWRLbDJWNEZsNEpzalJZYkdtaFBpdHZLVjBtN0xnZG1I?=
 =?utf-8?B?TVZpdDNpQmpjUk9PZjlPcjZsYk5ZVitSbkNQN1hldmxiZEFyNVcvSGRGM010?=
 =?utf-8?B?R1NmRTdPc1REUTd0M0o0bzZwcFIxOTdEVThTaU1peTBKblBKMTZJK0M2dEZT?=
 =?utf-8?B?UUhoMFY2S2o2NS9DeU1yTXpjcktlbEMwTW42Rko4V0NDYWo1OUw1LzUweFZR?=
 =?utf-8?B?aVpJYVhiV3ROQVNhSEFzd2hsclEvaUJnWnd1SWFWejByYXdmenFiMXJxUTlB?=
 =?utf-8?B?dmFwS0xVMlVjRUJ6V0lPU3dtSUFUT1JlSGs1eER5QXF6VzFjNUNOQkJ3eWlX?=
 =?utf-8?B?QVRLcE5PZHo0WXZQQzFJZmtjVzhYcWZ0RjE5NFV6a3F3OHNoNkljaVRDKzlm?=
 =?utf-8?B?MVY4VzBnYkw4Mll3VmZtb1NDcU9RazNMTkptYjQ1U21KWC9KQU5ZMmlWMWxq?=
 =?utf-8?B?U2dEWHFJQlAvV1ptTWE5ZDhFN2puR0I2aVlVTjlNRG9HOEl4eDF4OE5pcnR1?=
 =?utf-8?B?RnYzaEJqVlFXWEtydytGVEZIZ3dXMURkdGlHdFlnRExza0dORk51UC9Hc2NF?=
 =?utf-8?B?MmQ2Q2t3UExSWE52eGo5dm5TMjJwbVNOb2lZY0Y2OXJSdlhFQjMwTG5xcUx2?=
 =?utf-8?B?WTdlaUtKdE1BK1d5YmtLMVo2dmk2L3Z1WVFJZVVQMDZUWXVlYXFNb3pwWXJr?=
 =?utf-8?B?NTQ1UldRNW05ODFzdEhYektGYmN3TlNwRjNaSlMwN1ErMUpRUXcrdEUxQ1ZN?=
 =?utf-8?B?azI4K09xUHIvK3BuMitGVmRzUzdDT3VxUHBsVkI4YUFCV2dObDZ6NlFtbHAw?=
 =?utf-8?B?aFJtNGRZbGt4bndQOWE2dXJZak9aQTVEN1dYQXR0K1FGdHBYWUw4YVF6dWJQ?=
 =?utf-8?B?T3JYdTBNZjRZMzlxYlB4N1pxTDFmSkNKcS83K0lUbldmSmdTK0toalc0NW13?=
 =?utf-8?B?V3VNVUNiVjl2RjhUMWJtVmdHVzY2ZlJESVhQZVFPOXF4ZlFFcGRGY0RGcGo0?=
 =?utf-8?B?dnNPeWUxOXFPYlYxeE1RSUR1MUpLVXBrbVZLQ0w0WTRlVWJmUitGTFc3eElU?=
 =?utf-8?B?cDVUcC96ODdwYlF3L1JzU2tOVUI1LzNNRUNmNGtvdmh6bksxZ3J5K1Fldm16?=
 =?utf-8?B?Z0JsUEdaZ0NsRFYrcHo3ZnIyR3c0QmNOMHBVUndBYjJNTTZBVVphN3VEcGpo?=
 =?utf-8?B?ZGx0TkdxYnJYQzNDTndYUW9UOVlZcXpmZER2L1Uzd3ovWFE4MjB5bHR4TGlN?=
 =?utf-8?B?UDBiaFE4U1k4YU9rYmZJSlRnQzNWSUhWRENhL1hVVzdJb1pLNkU3eU1wSlpw?=
 =?utf-8?B?ZXBlNDkxUnN1NXVnTEc1aVMxQ1hPQkxaMWZnUkppS3JkSUtBSmQ1ZzRrenU5?=
 =?utf-8?B?elB6TEZGeW0vSjRsZEdXSHFVSXZWbDFlSFBmdG5GZVpFTUd4eWMvZnoreG5u?=
 =?utf-8?B?aGt1OUhmb2FqRnljMUZXVGkyc29ta1NCK2lsaWtKMlJxaXFpbWZtanNEQUNY?=
 =?utf-8?B?QlZFRXZhVVA2VzJFRUVNMzQwWjFaSmdHdjFSZEJWWGszQmh4V1NrdmVYNHYv?=
 =?utf-8?B?NTBDT1F5bEtUYnFScytwTkU3ek1ZN3dYdFpzZmk4b1FvbFpMNlhXSm5jWUtF?=
 =?utf-8?B?MnFZdFJaTy82bXgxdHhnMUJJYmxlcUJtbzBXc290dDJySHpMYmVxUVg0VVFq?=
 =?utf-8?B?YjFiTlo3TUJtU2pZMGFVcE1xV2dqZXV1enVXQkZPZU8wSzRjaFJia21zQnFr?=
 =?utf-8?B?R1hheHExYjg4ZDdXdmN1RjV3VkRCOWYyUC9LM3FOUE9RWG9lc3JHcWFhNUdF?=
 =?utf-8?B?R2c9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 58967871-2670-4319-1ab6-08de2e01f2c9
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 22:11:43.7886
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: k08QnH5HnyPmHU7HcG5kbMrpknO2HD+AdJLxsZ9sjUAswn78G5g5UeQz4t2yAxaFCdZXR/lchJRPpJaUUmF2Ti4QCSIA2uu2vdXBPrfP/UQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR03MB8397

On 26/11/2025 4:44 pm, Alejandro Vallejo wrote:
> Just knowing x86_vendor_is() is "good to have" is good enough as it enables our
> downstream to customise it with whatever optimisations we need.
>
> I also suspect other areas of the hypervisor could benefit from this meld of
> runtime+compiletime sort of checking, allowing transparent code removal.
>
> I'm thinking DOM0LESS_BOOT vs DOM0_BOOT vs PVSHIM_BOOT, or AMD_SVM vs INTEL_VMX
> in HVM-only builds, or family checks to have (i.e) a explicit "older-than-zen"
> Kconfig option with a similar approach on a family range check.
>
> This is maybe one of several such uses.
>
> So... thoughts? I'm definitely fond of the single-vendor bloat-o-meter output.

Having looked through the whole series, I'm not a massive fan of
converting the switch() statements, but it's the only way to do the
DCE.Â  So be it.

I think x86_vendor_is(var, MASK) wants to become boot_vendor(MASK).

Most cases want the boot vendor, and those that appear to want something
else don't actually.Â  When you disable the cross-vendor case (patch 2
pulled out ahead), then cp->vendor == boot_vendor and then you don't
need a variable to pass in.

This also reduces the verbosity of the new lines which is an improvement.


That said, this series also collides substantially with the Intel Fam
18/19 work, which is more urgent and needs backporting to 4.21.Â  More
specifically, there are a bunch of changes which interfere with VFM
conversion, and for which I can't see an obvious DCE reason to have, so
I'm wondering if they were just part of "convert everything".

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 22:12:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 22:12:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174417.1499372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOkEM-0002Y1-8N; Thu, 27 Nov 2025 22:12:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174417.1499372; Thu, 27 Nov 2025 22:12:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOkEM-0002Xu-4w; Thu, 27 Nov 2025 22:12:50 +0000
Received: by outflank-mailman (input) for mailman id 1174417;
 Thu, 27 Nov 2025 22:12:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=B0cJ=6D=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vOkEL-00025I-BC
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 22:12:49 +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 351b9ff0-cbde-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 23:12:48 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DU4PR03MB10621.eurprd03.prod.outlook.com (2603:10a6:10:58c::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Thu, 27 Nov
 2025 22:12:46 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9366.009; Thu, 27 Nov 2025
 22:12: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: 351b9ff0-cbde-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FLzjzjfADEmMRV8KCcSEIq0wPiJGwLmNsfh7QBjk05ObWNuNKE7tt3TDF7XhaDLuzwg8UIH/JqHxJeg+ERqw7O0JvCJUz0laTWdbrKNzSy4J+6Nxuce5osv/o8sbWr36qGZe0NuJm33GQY3rMhEtiTwgGeW7AU7YwKZ+0Vmnfa+freIdYglAtkzrj0eOAyW8vpl/ESx6gk1Fmb8hC4AbMIymEfwZRs1d+JuFeB75BFXUFWzwjffXGTn3YB6boIgXnDA4c9E14m4XZFSBhDkXW1CqdWlTq22rcPZcN/4t8uyVoNg+gWBMyAf81kdZhPgOLBO1Qu3Fe3XsuoKnlBOlog==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lQRm3HxkVTSyhxJQFpEPpXyTrghOA5eViQECT6vFLDI=;
 b=YM7EHLiyAf40J5y8LRG8LPj+32kDJNOkTLXpTcF49hSugZP74L3VMBoza2pW95F6aUwzSeaNDIJh8LNceDCu5sIaHhJEneGy2JB8QAn1egWyKPZmoQ6GhwX2yGdx4cxHLvhGlMpPSGEssuIli8ho5ujffWMQxul7IuIP5aOFDT09CrgHJ3iSuBtHWZhL4Z1Iy6VoSZn4uPi41ZrZr/My0Z3Py0ogk5Jp5CDLcWsaYFqyxk7jC5CUWrupGNUqu5OPq26rZiCklEfovR+WBz+Y/CVGrP72hh62brv961wbLU7A2rN+s+UE3R6AJqiH4wzbjq8AgpaQlDvd8wFtOPgtSA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lQRm3HxkVTSyhxJQFpEPpXyTrghOA5eViQECT6vFLDI=;
 b=lY0M0y6orpE89iqUdy5iBpOui7+0etwbinzH4SDuaYhgsbgpt1Ppp7Z3YcqgM2a3fXean/0aygdNb28UoNPyncrP7g/DH2Vqo7yFZBfL37B6XN3eMDItLw0PA93dOGGh6ptNUmZ1kCHsamDAiIJZx8gV+lNJh99V/xnoEZF4CslF72OVStC/FfaUD+4y90/6081WdaVOVkYMEtzL8kB74QSQ1eWQQbRgf6YCosyfHG2O79BqoTz2+HJpdKZVOW/61xxLOhb+aSQx/Hd3X+XkgM6NDRjVuPfQ0GDsAvm7hLsqfwUN86wZgzbEnYv68MBwfTenTSIyRxm59n8H0L+cgw==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: [PATCH v2 1/3] arm/ppc/riscv: drop unused domain_set_alloc_bitsize()
 macro
Thread-Topic: [PATCH v2 1/3] arm/ppc/riscv: drop unused
 domain_set_alloc_bitsize() macro
Thread-Index: AQHcX+r1c6Bx9R94PEqg6lQrbZuXBw==
Date: Thu, 27 Nov 2025 22:12:45 +0000
Message-ID: <20251127221244.3747918-2-grygorii_strashko@epam.com>
References: <20251127221244.3747918-1-grygorii_strashko@epam.com>
In-Reply-To: <20251127221244.3747918-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM0PR03MB4594:EE_|DU4PR03MB10621:EE_
x-ms-office365-filtering-correlation-id: ecd6b33b-6e31-4d3c-a2c1-08de2e02180c
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?fFP/xMSi9knUsiAxUOlJn9i88DOtJIHlECI3tkhBzwC6SaqDsKUVBT1CGd?=
 =?iso-8859-1?Q?kavZZ448LAFmFTr71QhEd5eQ9n2CLe6uOucG8dqresgnXLk4x77sskCfsQ?=
 =?iso-8859-1?Q?WhHwcv4uNs0Pa+oUOk71KigQXHaz/ho/ajiKs+njLxfiN/4s6NNSNlk+Sx?=
 =?iso-8859-1?Q?0qHNnHGbZ25Thf8GMpZtm4EyWm2wWJG1gvFq+V9RnjfYyeHi1NGS+MDmF5?=
 =?iso-8859-1?Q?QYgT3OTZfHOBNPA52fQvZ0KeWO/Pt9TYfKFttIcilT0wdfxPTSWRBCf0az?=
 =?iso-8859-1?Q?+9SVPZBRapgnJGwyWMGOFshVPYjGdsBhUolUAWVn7NikXeAJsBUFqf4+GI?=
 =?iso-8859-1?Q?OYA97SAmbN7ifV4/UzCPfFNjNm/wxF0R1pfkwJ6Nrplp+HiyeRBhcU0lYy?=
 =?iso-8859-1?Q?AKVtCU2S1/U6dmOTbxC9XbtXmo8ApPj/lmRqUQe97FxN6mdTRDMIBgydKx?=
 =?iso-8859-1?Q?nhQ4uneZfgC0MhvZvCobeUaTXFX8Y6Rll8gUyqiY2keHZMDME+SWSTlT0r?=
 =?iso-8859-1?Q?AxjiIlGFaESaP9twWA+AzAWuYmW0945pssTN5/X24JAWnFjdbh/1kGMLl/?=
 =?iso-8859-1?Q?BOos6ldGV3o/9EeFyT4Yywr6V92FRmJEUawVwbTE0dnHJZ350aY5DAiemO?=
 =?iso-8859-1?Q?tDNmsEt/uVkWc99bqPVUaQH7LzYBDKbcL28CvZVAyWj7ZepOI+NqxF1eGi?=
 =?iso-8859-1?Q?pNRKW5zYKsdJqTq00ybijCcSy8qULEYXSJEug2oUmNKBEiyizNY6zhMuUi?=
 =?iso-8859-1?Q?Bx61ZiqvDgevK1VfAz8A+HXN2DTCaV8Jjku1VpxYrxh47auOIimPLLw9UL?=
 =?iso-8859-1?Q?4kESkKydpZBxiHjIkpAfHO5coZwWp3zwssnYsovEv7htrbldUseWduTwgp?=
 =?iso-8859-1?Q?u5l9ypUKlRp2zQWtgbtMlYhPb07JRYuI/7hN8uvpjvErg84dLS5Q+N48Mz?=
 =?iso-8859-1?Q?zEs4F9P7VCErwekhO85xW+dKNqhQ4674G/w9em2s9IXuQK0PFdLEwJGfsf?=
 =?iso-8859-1?Q?dUa9y+G7WylL1hzTJeRJJ2iZiifvor86akUbmUco9l0l4GWuv/pTI5y6Zn?=
 =?iso-8859-1?Q?H6eA1c7jm51ckIVb1AUf/DzQHv8UcAofC7jrg1QMN2zWMF4ckS7G0APtmq?=
 =?iso-8859-1?Q?qFnFsvz/2iQMO8hTMNHkjWaC9y77tv3jh7y8e/JVIh70wfY4H9XZNgDp/O?=
 =?iso-8859-1?Q?fJQimVHoCDRfxVWYCY0rjC4FkkaIMSq0WIlT0BmVL1bFPm6K2zayKLixfY?=
 =?iso-8859-1?Q?hgUaMKtkV8U5l9IEdPHYByPDW20BWHNgLCJNk5bQzlJ//Xc49OthP8kYfh?=
 =?iso-8859-1?Q?Nq/OlZPes2BzK4/6Iyf7VKsdi6vqgdAnh+/ASM5i/M2dE2PTDBSvwWk2XX?=
 =?iso-8859-1?Q?NZnxTMzdrqMVpD36VVB6Z5KywFs0Odqng2dMSKWlliMkkamWx8i+8U6syM?=
 =?iso-8859-1?Q?zO+MYszt/vKDqdQozHnr/LGh82Cfn5+0lz0WYBvq0pY5BbSsTLwtqDuu3m?=
 =?iso-8859-1?Q?2S+qEjmDCZI5ztK84BOLwQsdMOL+0xEMoo4xR46DPSix4V8keQn4krw9iD?=
 =?iso-8859-1?Q?u4Hf0sZY46hqK0vAVnSPTZF83xKj?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.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?GucrcpWWnBy7xEfYZqgBYJfPnTaHv1O/jXRx0e7QuSCll5GSt7+aTTT2C/?=
 =?iso-8859-1?Q?kL3BnNgMrHzmIidLkEFKOLuXR7JBjRsCZVPLSQIn9FnFlhHIx+ds1oDDWe?=
 =?iso-8859-1?Q?oLBSKiuJZU8ogwGFWad44yh9a4/9a2pIgaghMayGi8ZgiPfA8PAiG+WSbr?=
 =?iso-8859-1?Q?rW5SbwgiDk9NAyKpUa3JCmIPEyTFF46h2m2onRyh88/eBlzkj4DxvQYimj?=
 =?iso-8859-1?Q?KS0mqUv9mc9nUUFRiNa1GrfDuLY6PTdTBCrkHk5+z9bgqA2sWsF1XrA4DP?=
 =?iso-8859-1?Q?6bVvfc5Qe2whbuRz2fjt5vyaN0uNm3nS0w3YiJlOGiznFlyJD6J5w5dqcq?=
 =?iso-8859-1?Q?FzIUGVe/PMRIuaQlmiDoCA50fLQXiYhMHTLYnJSXFdfPQPyi0f8tamTVc2?=
 =?iso-8859-1?Q?m7Y8lAUJ1iB6i3O6QIeEpUJ9vaFpQYF4zWpBx5TqjyMKi7jzMMBJqVK+GR?=
 =?iso-8859-1?Q?J4Y2lioCxw7/p8CLwXKGCvecYkaWV9QioGzJ605EL4ATDKn3y2p07RQqgP?=
 =?iso-8859-1?Q?0xbnnxY1XzwPegcSAiUqpX2iS1T0m7j35VCX8aTKKU/p9bFhwhqQH23/9q?=
 =?iso-8859-1?Q?raCMiupzd5WuAppMQm/5TDYv2jeEigX/p41GM6AiBWen68N7+7orRvRg3o?=
 =?iso-8859-1?Q?0+yG2p2v74+DM27U+31xM5uLkIe/3iAuQsAD+oiPb7FpfPyY4jgTV5Cbwq?=
 =?iso-8859-1?Q?ysMqcemOCJ92DTZLjSu4Vrf09I+qDuEMAT4VtGcoUd6WYDCx33+6VfsgxE?=
 =?iso-8859-1?Q?ZP2AVgR/fOCT5xt5Qn9etJfK+Rcd5UBsUpr8IGxVQZTQoA/FLMDFZ9rADu?=
 =?iso-8859-1?Q?pRusH4WmnWWX9e6FPYSITlbBmdNOvhpNe4LW9A6GUAQjepQF0yJTQFO1nH?=
 =?iso-8859-1?Q?LUJLJ67QXr/pzMyxObR7xReiJNThclDK3uHK9/HzWA3ZsF3jhqI6EnTmdR?=
 =?iso-8859-1?Q?w/yEW9fRuFoOaKCHK4vdQCyQaSURb4QkjVYtmBjMY6gHFV+SPjraaGqtCd?=
 =?iso-8859-1?Q?1qYbbdmZ7FDuUJamkHBqR+zeZK8uMPMKpYAtXD1r0s0xmRctKQ2F3GluA1?=
 =?iso-8859-1?Q?70h/eOqDN1oC8YxQhxdtRMRkWtOmv9eHoVBi7TfTgvh2qcmiKVA2crDMc1?=
 =?iso-8859-1?Q?B0Vz7VhmWTUCP9xhRRH1MdEv6CZSxHrfj17G/YXqU4Ub3kB37DTUuhjGSI?=
 =?iso-8859-1?Q?RrJrfbzH1aFdc2EGlMMX8H/uuJ8wW7XOr6DxPNQu4fwgPX3cg22I95EfxR?=
 =?iso-8859-1?Q?5Qhanxin2piijq6nqfA8fEyZkTbEpZzr20rWgSf1L+pIwZ6Q9bJKRIvVXa?=
 =?iso-8859-1?Q?Goz4r3NpRHbVMSbvz7Qo+WzdA/orckOdarieQDIXAmPLyR9X7Yv3f09yIv?=
 =?iso-8859-1?Q?Ie+dZ/0JOWzCV0gACkTg3Tp16cWDoreIa4Sri24SAto4BnpIAj6L1N+sZU?=
 =?iso-8859-1?Q?IH0IyVkZO2T1NOCiy3uKYXdgON/CyuGNCjM0Wl/Ul266mNoq+q9KS+/NW+?=
 =?iso-8859-1?Q?MZN1rhxBN/q2KFgBLiKPaJX68S8Rf+eMrq8VVl8MW6fCiELmAHeOH01Tel?=
 =?iso-8859-1?Q?VWwLgsOz3EXxVi0ApiG6xvXtbHRZfZxetVjR2ks8SVi+0wdc614MLGeS6j?=
 =?iso-8859-1?Q?/0dnhEzMA0TKYxInXQp/SzKP9dqsKyMD3IA3cOfkw8wQmYaFg8z57+zg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ecd6b33b-6e31-4d3c-a2c1-08de2e02180c
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Nov 2025 22:12:45.9834
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: EmsCKZHrXLoYN4jWws37C12TXUFH0ilz0MlCZt2v3NamjiYYXXN+M9aCws4uNVuHvJ4ATB5c5P+onSfqZjedhxeGfySTL0Tr0yefdVL1DQk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR03MB10621

From: Grygorii Strashko <grygorii_strashko@epam.com>

The domain_set_alloc_bitsize() is x86 PV32 specific and not used by other
arch or common code, so remove it.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
 xen/arch/arm/include/asm/mm.h   | 1 -
 xen/arch/ppc/include/asm/mm.h   | 1 -
 xen/arch/riscv/include/asm/mm.h | 1 -
 3 files changed, 3 deletions(-)

diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index f702f4a0d676..4c6cc64aa7ba 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -313,7 +313,6 @@ struct page_info *get_page_from_gva(struct vcpu *v, vad=
dr_t va,
 /* Arch-specific portion of memory_op hypercall. */
 long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
=20
-#define domain_set_alloc_bitsize(d) ((void)0)
 #define domain_clamp_alloc_bitsize(d, b) (b)
=20
 unsigned long domain_get_maximum_gpfn(struct domain *d);
diff --git a/xen/arch/ppc/include/asm/mm.h b/xen/arch/ppc/include/asm/mm.h
index a33eeec43bd6..e478291fdf55 100644
--- a/xen/arch/ppc/include/asm/mm.h
+++ b/xen/arch/ppc/include/asm/mm.h
@@ -96,7 +96,6 @@ static inline struct page_info *virt_to_page(const void *=
v)
 /* TODO: implement */
 #define mfn_valid(mfn) ({ (void) (mfn); 0; })
=20
-#define domain_set_alloc_bitsize(d) ((void)(d))
 #define domain_clamp_alloc_bitsize(d, b) (b)
=20
 #define PFN_ORDER(pfn_) ((pfn_)->v.free.order)
diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/m=
m.h
index 9283616c0224..11e9f26bf0a5 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -292,7 +292,6 @@ static inline bool arch_mfns_in_directmap(unsigned long=
 mfn, unsigned long nr)
 /* TODO: implement */
 #define mfn_valid(mfn) ({ (void)(mfn); 0; })
=20
-#define domain_set_alloc_bitsize(d) ((void)(d))
 #define domain_clamp_alloc_bitsize(d, b) ((void)(d), (b))
=20
 #define PFN_ORDER(pg) ((pg)->v.free.order)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 22:12:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 22:12:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174418.1499382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOkEN-0002mX-Kx; Thu, 27 Nov 2025 22:12:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174418.1499382; Thu, 27 Nov 2025 22: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 1vOkEN-0002mQ-Hx; Thu, 27 Nov 2025 22:12:51 +0000
Received: by outflank-mailman (input) for mailman id 1174418;
 Thu, 27 Nov 2025 22:12: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=B0cJ=6D=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vOkEM-00025I-BB
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 22:12:50 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 359da64e-cbde-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 23:12:49 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DU4PR03MB10621.eurprd03.prod.outlook.com (2603:10a6:10:58c::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Thu, 27 Nov
 2025 22:12:45 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9366.009; Thu, 27 Nov 2025
 22:12: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: 359da64e-cbde-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=j/o/xaXpWzBcuUoENwL+4ipHVmzMzLZKHDdCGrolHY1MpMUPjKAdiasyn4WSwDYcL098cI9oSuakLtuUIzEh1sepMKlL+iQBgqkh1Tk2X8JzLJOMrzAM0E1mXdKT7Y5BwozCToC9CZcrl+6iPw7YJN9OP08IC9ipKSSVvyOFzz6pVhRxeCnznrVZzwwdJx8eIoPg4JDcdACxkb+yc7LRTdErxTtf7U1s+Qf6+KKgppoj5qHqoK1mA+CZxhgJ2vL1IZ5iGBm4mtiHRSR0n9zZIQjPKo0wlMIUKcJ7LVLjUO05PMnxLuruVDBtanTctwS6bk7Duo4t65RUXMDHOkCkOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bcD4l5loFshEvvxq/petHO507SqQ7F4HeKr8OCcVhEM=;
 b=Jla/ABUt+QAFhl43zV2AYXOZfDe0jn2aOVHi+1mWwWDPCZGs9EePhnWEWwe0WchoEuPk3fjy6yQm3vk+XuQdMOYQsB+5672/t/KN2m9Wi4B0qAUXl6XzKxiRcW4IsoM/Eho3+xrKRaLgLPhaibAKezsFHqLCCJdcuLQX5icPaeYic4Aw4/ix//SzKrQ8y9qOlZJ3yYFdGDMdDddS2DxYL5+d7flrfh9g6Xde+hZ80IgjtL/K1guJlyyCFlu9iW0N4jZWZTFIls7jPIy6ZnoSX6CCtu+WlBCoImJslqIoJtJoSrr4MqiJUuArTwN7hKdBBSPIugTOWTCPFLgmU/pcnA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bcD4l5loFshEvvxq/petHO507SqQ7F4HeKr8OCcVhEM=;
 b=J4KrnhmdKpJgnbL5cjFFeVJUbFMYPlBibeWpph4QdwUMohhZCpI2rMCdXRS7v/n4ggEzoySa+v7M3CA+dnKjuA8zKNgxRaYCssC+aE9dFcCHhaMcc36stJmO++NdRuQ7WXYSZkc//OTLquPMiak+fgXD5my2U3vMD8WM2E3cnAzPZ4ZpDtg4xuBEHdcHhrbYfyi5UUxqyfHpV0kgRhAsIspE7cRUWqN3NBSHO0av5gDYH3nS3p44dT3ncIEPIWVC9wLGVSy8Khw5Q0ifvuY2LWaJ5ZofEzYqOZbTcd9V7uMbHLfzfLb7fACWPphKE/oqxxoZjvsqWkraD2RXELwiUw==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: [PATCH v2 0/3] xen/x86: move d->arch.physaddr_bitsize field handling
 to pv32
Thread-Topic: [PATCH v2 0/3] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
Thread-Index: AQHcX+r1HmzqtRQZ0kOlP0COlNBiAQ==
Date: Thu, 27 Nov 2025 22:12:45 +0000
Message-ID: <20251127221244.3747918-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM0PR03MB4594:EE_|DU4PR03MB10621:EE_
x-ms-office365-filtering-correlation-id: 005ea4a3-bbc9-4e16-9814-08de2e0217c4
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?0Cw/WNNPJDeD745/lxGETZtCX7ILiu30xzBwjI/HuDuwl+tsCJ/yLScZwz?=
 =?iso-8859-1?Q?8+ucsW8QrYZBsCEEE75/NlefXC0MayWy14uJogklq/n1CQeYycmuFZh1Dx?=
 =?iso-8859-1?Q?UXEzMVHo9RpHKwZST0kNjOSBSLRjMpXUGm/437hYgQUFUuKsXWlrj/bWmH?=
 =?iso-8859-1?Q?gtbzYbnmFeHP3VpxMZtRA8xp8tn4Ja46OAb/Nl5FKsDvOP6n/vX+wZEHap?=
 =?iso-8859-1?Q?idIc1qjaWNBUOCbYldgIRYxEoBMmqMulkdkKLHwr43QdeBjm/zTWjKEHgd?=
 =?iso-8859-1?Q?QRyS5fQ9ck+QKqv/OYcAg1o2621R3136a79+F2fONx3v/MJ8l+raB7SfxQ?=
 =?iso-8859-1?Q?wFJJjIrezKXAVFPxQ4bpMjJx+HJXmaWNBv0OePG9vrZieKZ0r+oyss616q?=
 =?iso-8859-1?Q?yACT0akXMBIksDrl+YBK0yu5Cjv1WwuxBX1971SHtlHrZpAFQPIRcnfLPd?=
 =?iso-8859-1?Q?Um+YKo2IZqMrDKCneAYa36dtR93gyaaZUjaKhclIPl+2EDOdq/BEnQCjop?=
 =?iso-8859-1?Q?tkh6KXbKqTCL2dOWVZQp2MU49nO1dsrDWHzF7SfzhpC8exws367+zWcv8m?=
 =?iso-8859-1?Q?K7mydQ9gZG5mjUVs3yW5JkE64adFb86y6ImLcQwhnnNjSYDmLOoELLU97K?=
 =?iso-8859-1?Q?RGlXTwDRs7hQt8YCLtwCHlavasMMIkCYYt9AI222j2pj2XB5nrhlzAoKro?=
 =?iso-8859-1?Q?1sPHjPxqwD2b1h8vLXnglkOPllexOp9oELfs1K5CmsR8iIKeOFZcdvXeou?=
 =?iso-8859-1?Q?hLwZbow5Whv+S3hw+CqWSe+kqpM5cyXbcWsqX12qGbd3xupwW29KEzp83g?=
 =?iso-8859-1?Q?CDetNUS0rFiheznNM+t90orM0LDvMAEKOg+q+2ndbR4ZZkkHFj0NMfSJ/5?=
 =?iso-8859-1?Q?FZ4b7DhwvCBMfxoNLS1fBHE8NLibiesR2lTUjM+qXRlNRodk4VX93eg0yf?=
 =?iso-8859-1?Q?BkJ4j/dZSnXl2WesjPjP7yiHG+oHmpBtjrbL4cCD7tYJHzYZRFt6cHWIg1?=
 =?iso-8859-1?Q?VxjjDUZxP1JZqgPqPFtu/ZzqOQ3o4CZEOWYQcRpPpGJMLnpsjOYFnBGBXi?=
 =?iso-8859-1?Q?97i0RgDWJWWON71YV16jWUX8O9zi8lDwex6iyib3M2qQU1dYJlwfAp0EC/?=
 =?iso-8859-1?Q?Ghj4C74yOpWJu3F4q+PajvfSDubh+ky49Dfa8rLj6Fv3Om+jTXH2f95Gos?=
 =?iso-8859-1?Q?KvqYMiHV+F/RPA4WTvd2C1OxpqKBEBRav68SOtHltrCOARHWyS+Z/DNj1d?=
 =?iso-8859-1?Q?z/XnUPNuRYxDwmLu55w5i0RUW8ZtTIbzF6n2oImYJxZwv9YAe+5uxhBuBx?=
 =?iso-8859-1?Q?upE06i8ZZhx6H1Vmv9RHPbqDVL4+ri4HOgsqbyqwNP2WmpumSHEXQa08PZ?=
 =?iso-8859-1?Q?9lKtQ9iA3J3SXTX6HkTjaB1VXd0AFm6KtBS7aQJVVOSi9AqNgZQbITy24H?=
 =?iso-8859-1?Q?fnre4NEfOCMgSJidXq5en9m5CZpRGZlCzL6WL+7/x9MGJIX10uB4vAgMnh?=
 =?iso-8859-1?Q?GzXWwpGGE1YtydQ6AnHcJN9dwcVmPMgeLe9rdokLogUNCieuW4MOC5VBpz?=
 =?iso-8859-1?Q?ZPNAhXIAJ3NIqTF3lNL/o8XxkEAE?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.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?5aTVOY+9MviHQnxo7iSY7n01zKAnwRIfbDtMvmNlky9jxeVUCMeDNDqC/U?=
 =?iso-8859-1?Q?Xbo8sPWjq3uaGH9DKxuDOqN8DH0vUL7ijCap4AnHq2xYSLlB205xwbg0by?=
 =?iso-8859-1?Q?WlJqHOnoC204+nLdKrru/AiJFK3wI+hmEmTC+PdOSiBDXhBmbEg2E8dLFX?=
 =?iso-8859-1?Q?RsCruPh4zM9DiyvPvtW36i1no9QnKgXUCE2Ih1CHGPdm8cspZGiyTYp2oq?=
 =?iso-8859-1?Q?DOUkG+IszyQAfu1w2IeFGZqRH/044UITtnN9RutVSHpfbiNPQqmPsMuDhT?=
 =?iso-8859-1?Q?yZlofRmGeUxjEBUbsCWkgE3QQxNqTn16vLC10Xdpi+W/+oDp3lBpE1MbhP?=
 =?iso-8859-1?Q?K6jfCvz1m3eCpf8u1c/kcnszb5Xz62AfUWKEN8Qdy6WR+owIQEczIEn5Th?=
 =?iso-8859-1?Q?cp8ov4kqHOpDmgmlpSC+ZC2FmlZK38dhjopLwTd0Q/CjEqQlyURa0ROBNo?=
 =?iso-8859-1?Q?qcEm+9YpkenqWsUaM2wafqt+URXYIoeflEJ0dhbXXh6sdbYtWM8VyijbGy?=
 =?iso-8859-1?Q?2zzAQjjianCXbr8wolz/vLnusdbSL4v3SKFEtI6eEMm9QHyIJqFZVvxDeJ?=
 =?iso-8859-1?Q?bIlXM1SWEQY1hfyQdUCtzWks8ndbX9VJyZnqbLCkKBW5LcwUPCqXTWN+rt?=
 =?iso-8859-1?Q?uo9MyZvUcJe9jnBfeQXUJecnhRDw3X+b+r6gcXMBShOyacm/ROMAqq9mGc?=
 =?iso-8859-1?Q?wzuHCAETk8yV5PjjXrzkV2WBeKreRl+s2RjtZG95CXcVEJeS143Hr3iXxf?=
 =?iso-8859-1?Q?2t6Wq/u4g7Qz8jta3qPS1AEmtaJpPR58p2zHvHLcr6m/pKiBBoxs6AklZs?=
 =?iso-8859-1?Q?hCR0VFpaKvIlipppIxTscDJr2UUP3r/10YQZfUEitw1H0a7PXR0l24O5No?=
 =?iso-8859-1?Q?rnRejcsqTcJMfYIITk8cDzOMPZ6xgA9u+F/aweS98flBpM2vrCpxO/b5p8?=
 =?iso-8859-1?Q?ksgO/CN9Mtr0Oza8xlF6YKWnyVGhNm2ypW+u/hoFYwXyoISCwy+LDSI5UX?=
 =?iso-8859-1?Q?s36pukgZjnBZAlTvovUP/K7mgFXq2KmxNSTt8ST7BOn9G25eb8R1shnPun?=
 =?iso-8859-1?Q?+QjjvmMhQRrmObgH56d70463XxRQrjA+xDDjavybPq6gVeIdlo+P1LLUDj?=
 =?iso-8859-1?Q?JaIVMu90NUwLf17aIph4qp2lb3GHKYrsiEWPDqNqoEwPD1cZnHntkEjYcN?=
 =?iso-8859-1?Q?G1y1X58z0GRBe28QCxvn6U9+a/Yev8ETvgkvFF7A1zwewqfnDZ7FsnMZPr?=
 =?iso-8859-1?Q?X94AHslhH51Zr3d5HJo5sLBZeiF/bOiXuJA6y8UJkcAV2v+rtFZgepLa/u?=
 =?iso-8859-1?Q?MwbU7HoYDX+Dg+VBly5waaBzYrGiVoylNyStwO4D5wjPIcjUVWalZqSpG3?=
 =?iso-8859-1?Q?DGs1Uw+JfJ8WbwCF1akd7itkzq08Z+MocR0PMLIOoJ6vu9yzX8pyNZYbu/?=
 =?iso-8859-1?Q?v3Xkel8n6lV2EO5cKs2USDzSWuZA0+wcyVtHNxT0DWW2Qj753Kf3G3NR71?=
 =?iso-8859-1?Q?37odwkQNjc8ccOso8mBbJaP+JBY5rHhL/VeoqCpQkIVd5+6ZVPqHcjMOYu?=
 =?iso-8859-1?Q?OJpKbL8ExHuzfnta30zAMllamWaGRjzS2yjAec5O0PJ+TxLDNcDKXDtah+?=
 =?iso-8859-1?Q?3lGjG8v/J0KScbnH3HsBXNavxdCxLvgRJiV/GGpkpbSve2+0WdB85iCg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 005ea4a3-bbc9-4e16-9814-08de2e0217c4
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Nov 2025 22:12:45.6205
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: SYqO2l8IkxFXONbIJYf4BQq1thsWUy9nFVrpUIUliUgc7ceAmDPbTzf35blibmQNzwV/tDg2LG+IOEbNOrPg22IeiKisB1TvXHEJBzB2PPo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR03MB10621

From: Grygorii Strashko <grygorii_strashko@epam.com>

1) arm/ppc/riscv: drop unused domain_set_alloc_bitsize() macro
2) add generic domain_clamp_alloc_bitsize() macro and clean up !x86 arches
3) move d->arch.physaddr_bitsize field handling to pv32 code

changes in v2:
- split on 3 patches
- move physaddr_bitsize in struct pv_domain
- make minimal style adjustments as requested

Grygorii Strashko (3):
  arm/ppc/riscv: drop unused domain_set_alloc_bitsize() macro
  xen/mm: add generic domain_clamp_alloc_bitsize() macro
  xen/x86: move d->arch.physaddr_bitsize field handling to pv32

 xen/arch/arm/include/asm/mm.h     |  3 ---
 xen/arch/ppc/include/asm/mm.h     |  3 ---
 xen/arch/riscv/include/asm/mm.h   |  3 ---
 xen/arch/x86/include/asm/domain.h |  8 +++++---
 xen/arch/x86/include/asm/mm.h     |  7 +++++--
 xen/arch/x86/pv/dom0_build.c      |  6 ++++--
 xen/arch/x86/pv/domain.c          | 23 +++++++++++++++++++++++
 xen/arch/x86/x86_64/mm.c          | 20 --------------------
 xen/include/xen/mm.h              |  4 ++++
 9 files changed, 41 insertions(+), 36 deletions(-)

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 22:12:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 22:12:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174419.1499392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOkEO-00031I-Uf; Thu, 27 Nov 2025 22:12:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174419.1499392; Thu, 27 Nov 2025 22:12: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 1vOkEO-00031B-RD; Thu, 27 Nov 2025 22:12:52 +0000
Received: by outflank-mailman (input) for mailman id 1174419;
 Thu, 27 Nov 2025 22:12: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=B0cJ=6D=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vOkEN-00025I-BW
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 22:12:51 +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 35dc3522-cbde-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 23:12:49 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DU4PR03MB10621.eurprd03.prod.outlook.com (2603:10a6:10:58c::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Thu, 27 Nov
 2025 22:12:46 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9366.009; Thu, 27 Nov 2025
 22:12: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: 35dc3522-cbde-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=d8Mkezp6VLurQiL3gjYFOV75gKWnDTk7LRqvmjujlLGr6a0UmhNOsvFdRCjuJLrBEIQ3z0iDb7gVQF7Bik4lGbR4HeoPe1e3bNSXbk2kGbBdXP6fTs0O2bsay155B1xAqz9mo0SWHS8SBX6OFooY5qHXAsgkKvXL2OcmHIeC0dyk8dfxweEGt3LUXKGqYa1Fa6QpGIT9qg0Wrh7GMgDivT/GEH5ZC0+E0vXeoyfE14BlmrbcGTDA98MZ3r+8+FI5Vz7tGf3l1uh2zsMIEkq9NzAS/rXu6InWl6dVfYWSxX2rYumYwdI0NkJqqqA7gzxcOAqBFVnWaSMVb6CoGl/cXA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Q2VabjAmDXqVHj1M9FrOzZiXHDhT/Xn3MZjZAnmNjS4=;
 b=d3iOWh9MdvuCv+DoDIxm4FoORsu1dvyIvhOkn5cqRgl6g/F+eWXSkYh71r0ST3szddtFF8yXLsuux4BSrwb4Igku5Fg1ngHKsgLaH6DGyFTyOr1StVbzcH7x3W10hKgWxMGRoiCqhIRQd/XCfCauERIA+mI49OaBYQTWl+MVSaJUIw3GcvezdYUI+jdhAIo80h0aqNdzhTdPqAFVLpVHJzxjvck8EDu5tQ0pKf5dkchBbrTrDWO2CLgG6d6KawBwos7h5pq//s+YgChaX0IJw9mwYzIMnoKqvkjZmG2FHXxOple5w8pufe0x5ePrk+39MNc0dB95fy5rAfxmVH1tFA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Q2VabjAmDXqVHj1M9FrOzZiXHDhT/Xn3MZjZAnmNjS4=;
 b=BqK6xslbaIzV9cmbOytXGxTEikDI6WtrFFGQgKP+otJX5UTkeAEJw2uLYE727zalwLvg3v0HawA4kQWqwPaSbt0OmOyAg/pVwNHyQgbdZQ2dueLgkYE86UUXBjXxvtIjFcwIUXO7QRon/YK26thrts3oGKDHI1QSHaYd/3GZoVDj5Il+QLJsX4YokbfvUM7TmjymAVrNlTfs1t1K22LVQHS5ecNKAQ70JzKc6BDn1KYlt7ZdPci8TROnFyydkA7O9xuov43W4PJpQdMsD+DwnLifcmObVJOYbpM5zQHzndS7wjDFdWv9UQ/uBiygxF7lNlncI9wsCcuIxvlnQDvGbg==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: [PATCH v2 2/3] xen/mm: add generic domain_clamp_alloc_bitsize() macro
Thread-Topic: [PATCH v2 2/3] xen/mm: add generic domain_clamp_alloc_bitsize()
 macro
Thread-Index: AQHcX+r1y5G1zO+uXkmHPH1zdoklgw==
Date: Thu, 27 Nov 2025 22:12:46 +0000
Message-ID: <20251127221244.3747918-3-grygorii_strashko@epam.com>
References: <20251127221244.3747918-1-grygorii_strashko@epam.com>
In-Reply-To: <20251127221244.3747918-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM0PR03MB4594:EE_|DU4PR03MB10621:EE_
x-ms-office365-filtering-correlation-id: a37f8bfb-c573-47a3-3f8a-08de2e02183a
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?f8lbcN9LMTnP4KMnhPeoF4SNYLpIt64uFz1KY6WFx/6daSOy+dOWY2/M4O?=
 =?iso-8859-1?Q?DHcbuno5Dc2Av3Sj8olG3RY//amcHbmTAJKcU1GXVXkQpcwlHPIMXVILsO?=
 =?iso-8859-1?Q?8DxvLIm0OUpoViM6QfqRWqSXdUop+cZbTQNdZj6gMuGverr8BPVdsJsXvE?=
 =?iso-8859-1?Q?yO+LgS+CDMAMmZioKsFrXYakd6J5y3XG77QwV81gXzlm79Rpx+YdUoQN6n?=
 =?iso-8859-1?Q?FW5kS5jbiD0ZNseYbzPedB1lSwLiQwkF0Kkg5BSs8YE3W5af3cYHdJWJB7?=
 =?iso-8859-1?Q?+zq/qSfWGPTG0YlQBevn49uQ6FHnyvhWn8KLc6glCF91SMmeWoQjgUy2T5?=
 =?iso-8859-1?Q?pLEUFNPQj2kTo2dj+yMfMZaoKFNa+PYd0RoVaMNiVDJd5/pr3SZjuixODj?=
 =?iso-8859-1?Q?KpOWp1h12JcwUQpUpsFaMo5d5PalfdnBWSqL81uVvETyPKvWTauPpQCSoL?=
 =?iso-8859-1?Q?0BdxsMiTzKhC9JVGFBVvTJ5aLVB39oIC+tnVBumO7my2lQYD12BdlNs3Zf?=
 =?iso-8859-1?Q?kAUh1ZoPDXwL/Bp1FVXO+3hFyGJibqBzZcRurl52Qe/vvP4sBlQ2PXTezH?=
 =?iso-8859-1?Q?1nQC3Jc8Y+CEPbMNODUK+FM0wU+NZG8N/ZGO09iKB9lyVscokbybDWUFQj?=
 =?iso-8859-1?Q?/FWubjAVmZWRwo+ZvHwz75WL1tlwHOixcL1vQLW2S8fKVGREuQDYTNRc5n?=
 =?iso-8859-1?Q?WtEc3P24MOLJ9LIBqvirUq8f7zp0y4UI1Jc097TOYpVjZfvW76a9zX+uL6?=
 =?iso-8859-1?Q?32TfhPn4OALVB7tsl7RbXyhCJSM3DNBLwVy5T/T4+mxSBkJRFlDjHhoujd?=
 =?iso-8859-1?Q?FzNsxBH3DiRFEBnaVY4n3j4G5MaHHR6EKl+bwXW/9ZtooWrDU5maqaDpZ4?=
 =?iso-8859-1?Q?4q3lJNO7oC2HNhLREO8NF+l0FTUBRYIwe07WogI0KDGSWyOE0+NojkrqZ5?=
 =?iso-8859-1?Q?9PWlL2nd76f7iOghgNH5+ZQ0q04M2Rw5WLgjykOU44EvxNSE1OmZswALTL?=
 =?iso-8859-1?Q?ot1CEHdpJwrN74pAMpojK+IVFXgLhn6jEDDFGffB6uqjrB56vVPzKFagCz?=
 =?iso-8859-1?Q?PwGJStlw25pBidBpIQcjcmkEiZ7WslXb9jHkzeNmdOWxcAyCGRm+4xH/d0?=
 =?iso-8859-1?Q?oHgXD/VVrQaY3EMt9MySQOG4GtRonz3/YqlHBSS+0A38hclTD26+R6y7xQ?=
 =?iso-8859-1?Q?p87+Hk4LMHIrQyUnRKT5FSFKIHMfqtTKKo5P8GThgAJShSgyyOjinCmRki?=
 =?iso-8859-1?Q?XnEG8v/kRwI7RYhjgKvAQTq1eNslzA+rIJLTOcg8/q3v2UGJ3tQJSVDXpe?=
 =?iso-8859-1?Q?mBpqFIMoupgI8+F0H31r+R5lHqgkMvFAxIWJGHAsMoz018Ew1LpZXEaDSL?=
 =?iso-8859-1?Q?lQyPmR6Gsr4xE9jywm79J5ACs7k0Eq3T7DeJ2/8Mh0zIOBEo6nVqCpeVjc?=
 =?iso-8859-1?Q?fL04ANbOw7YrHF6ZuCq+ofeIfoBd09u2AYqUuKxKImqHVlzdGkYCrgyqg9?=
 =?iso-8859-1?Q?hTTrM53nFa7M9WseN2Kqs3TskFtxUnFf09auqw57f78jFd0FtRr71PlcYs?=
 =?iso-8859-1?Q?ZKn2Lb4XZBdcKnV+TQCXYRMS/lhf?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.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?mkEjW0n3W+NwMTRr0vEgiqcUXk86BtfmUBahtD6hiliUOg810uzBINLSvc?=
 =?iso-8859-1?Q?bqgFcwiEDeZptGQ8C2uOo7gCoDUuZPJhfFj0J7Ns2EJG0bZjM3TYxL4BXT?=
 =?iso-8859-1?Q?+t8bSMspuYiwu0SlU1w9jOlwhsjIQ/Cb2rg02XExAgmLl/bxTZYPL3+Q/p?=
 =?iso-8859-1?Q?oR7SyIHMNaZTENC/vJLl/RWbEmSlbBo70v073eiGDrgLkLZx3d2TKkZbkY?=
 =?iso-8859-1?Q?8RQrjmMLWfGXinSlqlxFO23tas9nSZ6WiX8eDbc6nibDAL+PKDWYllhnfz?=
 =?iso-8859-1?Q?3TlqcBXFJiEMyYImMyZd6u7sd6quFKraukkfBvgDhhXfndRjmHxB1FNSuk?=
 =?iso-8859-1?Q?uUJirsUeiVElF9aRU5bv2mgACpy7OFr4ZYmMhIitFcr/kyZhspNR9wmreU?=
 =?iso-8859-1?Q?k/7xTwTEjhrTJyGf2q5+9LMdNE9YX6VpsXVDzZzaBnIs6qTcbeMMuQ5N5L?=
 =?iso-8859-1?Q?ruAhxmO7NrR8ZLEIikr/ssMGksvAzXs4pzXW75phWx/J2KFZkkP+bFPcKL?=
 =?iso-8859-1?Q?7a2j66CsXCsPA/Fj9MvMG6yLOTEaEBZsysd2XNeneMr37YvLE4lfCMCxyV?=
 =?iso-8859-1?Q?B9N3PFE4xK2s1PuQxUqVbI1bMHPHw+3BR80ikLya7+1mt0mLjkdcCK5vlo?=
 =?iso-8859-1?Q?/o8SNjzK92AD2a/pkSGv68agwMh08el2tUjGMOSVDjyProCl6BdzRCT561?=
 =?iso-8859-1?Q?i+yfzrsge7MHufFJDLHUP18dtkfuo6X0usuQxxwL8TuRx2AguPDdyOdM/g?=
 =?iso-8859-1?Q?0FXs4vP3Qn7DG6JJlg9Of1irut718XFKOO9pCI7tGj1sOyu3x2I7+vvPPZ?=
 =?iso-8859-1?Q?tRs0x7QpRYFJe5FRAiMFYkNfFlpFqkpiv8Zn561CbDlaKpQPLOumJg8Lo4?=
 =?iso-8859-1?Q?F+OhxCVYAtq2AFjeFRl42KEouIZSBb1UWHtpWRQ2LXUewcJh/CDNabZlZV?=
 =?iso-8859-1?Q?DqtBwUCiQ/yzP10CI2BraiEZ1BK1HtDK4AclNZZa6OuShlo16DY6O8tCs9?=
 =?iso-8859-1?Q?hX2lxKZEuGrQNpYb9lIQtEBbfY6A1avp2ZOuT77IhRXFi8N9IMg73PgfwW?=
 =?iso-8859-1?Q?mTiTaKxcCNuDVJFJx0bnw+b1l5llTfL2ahQ/CNnG1+K7AZvUT79nMWRH+z?=
 =?iso-8859-1?Q?4vSV6RSXjNmz1KbvmbQtVQ05ztYAX8KAasnvgwgq2RhFQz8KaTUUPul0V5?=
 =?iso-8859-1?Q?Qj2OY5luv73jVspBb6TXsRXq/tea3iYL/0RbYIeXOaM6+t3z4F0xiWzlI6?=
 =?iso-8859-1?Q?fWKK4DrqCBQj1O5IGK5D5TW8moUgBLfCEpaXOJeFSY4/3i9ieHIb8RrGGM?=
 =?iso-8859-1?Q?7bnWfay1iBaB+in6wTRSsOQhzTTkkJj3FdLnF85OvWFfGWcu5/CM0V6YqO?=
 =?iso-8859-1?Q?ANKh2pEegTaBsm7Z2JPoQTF5To+3ZD9iMzzNYnUoSMhlUfT5Qkiakp8lUL?=
 =?iso-8859-1?Q?sT0NWyhKEtG3tj6JWttOalzXmcYs9OhD3sEl6e3+d6fMbwLYGYIbkp3H9X?=
 =?iso-8859-1?Q?rS1G6zdL0CXz4n9tLsOqP5HIYWTOCxmy3np816eV8nwD4zr1OrLYnHA3di?=
 =?iso-8859-1?Q?xiSkpFuEASBx+a6ggspX/IFYvknT7/QpV20BNnKWTZhaiewxtG4qVyzbBl?=
 =?iso-8859-1?Q?EGs9CNLs0jYFW+RqPvSVkIWp8gNAx/vYvKPn2nQOonfNKyVgWDHcbBPw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a37f8bfb-c573-47a3-3f8a-08de2e02183a
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Nov 2025 22:12:46.3321
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ZOGsSq2FVsxBFH/Xewk+dNh/Jzw30eaBg3TGchGApgTlNlJOo0EegsN+I3JhkhIz2G6B35JsfuqP+nxLSK88FVSff9PWGQK9QeJeXWrcoqQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR03MB10621

From: Grygorii Strashko <grygorii_strashko@epam.com>

Add generic domain_clamp_alloc_bitsize() macro and clean up arch specific
defines.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
 xen/arch/arm/include/asm/mm.h   | 2 --
 xen/arch/ppc/include/asm/mm.h   | 2 --
 xen/arch/riscv/include/asm/mm.h | 2 --
 xen/arch/x86/include/asm/mm.h   | 1 +
 xen/include/xen/mm.h            | 4 ++++
 5 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index 4c6cc64aa7ba..ec2d2dc5372a 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -313,8 +313,6 @@ struct page_info *get_page_from_gva(struct vcpu *v, vad=
dr_t va,
 /* Arch-specific portion of memory_op hypercall. */
 long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
=20
-#define domain_clamp_alloc_bitsize(d, b) (b)
-
 unsigned long domain_get_maximum_gpfn(struct domain *d);
=20
 /* Release all __init and __initdata ranges to be reused */
diff --git a/xen/arch/ppc/include/asm/mm.h b/xen/arch/ppc/include/asm/mm.h
index e478291fdf55..91c405876bd0 100644
--- a/xen/arch/ppc/include/asm/mm.h
+++ b/xen/arch/ppc/include/asm/mm.h
@@ -96,8 +96,6 @@ static inline struct page_info *virt_to_page(const void *=
v)
 /* TODO: implement */
 #define mfn_valid(mfn) ({ (void) (mfn); 0; })
=20
-#define domain_clamp_alloc_bitsize(d, b) (b)
-
 #define PFN_ORDER(pfn_) ((pfn_)->v.free.order)
=20
 struct page_info
diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/m=
m.h
index 11e9f26bf0a5..e5ea91fa4d0c 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -292,8 +292,6 @@ static inline bool arch_mfns_in_directmap(unsigned long=
 mfn, unsigned long nr)
 /* TODO: implement */
 #define mfn_valid(mfn) ({ (void)(mfn); 0; })
=20
-#define domain_clamp_alloc_bitsize(d, b) ((void)(d), (b))
-
 #define PFN_ORDER(pg) ((pg)->v.free.order)
=20
 extern unsigned char cpu0_boot_stack[];
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 08153e6d6fa2..17ca6666a34e 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -621,6 +621,7 @@ extern int memory_add(unsigned long spfn, unsigned long=
 epfn, unsigned int pxm);
=20
 void domain_set_alloc_bitsize(struct domain *d);
 unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bit=
s);
+#define domain_clamp_alloc_bitsize(d, bits) domain_clamp_alloc_bitsize(d, =
bits)
=20
 unsigned long domain_get_maximum_gpfn(struct domain *d);
=20
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index b968f47b87e0..426362adb2f4 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -641,4 +641,8 @@ static inline void put_page_alloc_ref(struct page_info =
*page)
     }
 }
=20
+#ifndef domain_clamp_alloc_bitsize
+#define domain_clamp_alloc_bitsize(d, bits) ((void)(d), (bits))
+#endif
+
 #endif /* __XEN_MM_H__ */
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 22:12:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 22:12:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174420.1499397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOkEP-000347-85; Thu, 27 Nov 2025 22:12:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174420.1499397; Thu, 27 Nov 2025 22: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 1vOkEP-00033H-2F; Thu, 27 Nov 2025 22:12:53 +0000
Received: by outflank-mailman (input) for mailman id 1174420;
 Thu, 27 Nov 2025 22: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=B0cJ=6D=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vOkEO-00025I-Bp
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 22:12:52 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 36233a68-cbde-11f0-9d18-b5c5bf9af7f9;
 Thu, 27 Nov 2025 23:12:50 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DU4PR03MB10621.eurprd03.prod.outlook.com (2603:10a6:10:58c::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Thu, 27 Nov
 2025 22:12:46 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9366.009; Thu, 27 Nov 2025
 22:12: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: 36233a68-cbde-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LpduF4+IdL1Pn+Z8wDEneLYldo5YxNRjfslTJe4q8wgR04C5WpLbkIHOctDWSOEDiVtIaNOqF34VblCZ+n0HimSkihNmaKEXyd20iTEaNMxGysUsdc8yK6HbSGDBCo+XmjiLOH0z88v02LEcfXCItBuucBH8rOXNJmfb+K4U+3C/1NGDiEhUL1UgbAT1R2zZebYYPOTW//88LDTpPGMqOUzAC0LsTmZavp4Z17ddLJ9HMgsdQgkt8op9c8eAgRVwTb0wLbqnTCL8IpmqkPg+e3W1802KjOekMnaa1Q0+W6tfK8/eCDq+0Kylwdit5y4PrripUuJVSXfwvS9u8cFx5w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2jaZZTxt+HNEmR3xuzZ2rMAPYzH0LdEAJ65xR2sO9Vk=;
 b=UbjUW5ulsNxtPQTMaK9UlTvTiRNZObFUKmIdCF5f1uv4y3MJp0GvuGTttjk0Qz4Dyz1Vlfm3x7hJQcFTV7mH/3YY3DiqtnLWbTggQnCbSF9VFQsXlRU9mRv7UoaunusJCdF3mg+e5/sUIL3Oum8gQsy4Lls78TKNtkx6WXYSpoVMHLIMjifLf2EO7SOM8puhJUIZf5ZGBKctuX0BaCjaqSeUjxlX8Er8JWkIERtCscjJCRrTqrQbe8DksIxSI10BIY0CPr+v9a8nGt2gB1rxZrT3UK5DklnY9+4LVMVUJiDgy+1Pw+sDcrCdvY0KC1mjx94oM+WKMSgXepT/V6SK9A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2jaZZTxt+HNEmR3xuzZ2rMAPYzH0LdEAJ65xR2sO9Vk=;
 b=CPqZsT9KOvyC6PpzedSueXFBq4vK/VJKrE0Y2c9/VxEfUbx7E4lBVQ+taNQdyYgGQnuBzsqsMnN8N9S1kGNPCOYZF3Zgk3aplaEHzSWVmQLWo2O9Vym7+ta43OlRuzDn67dk4ohULddlQELOrTOLexw5rvO5I92utVo9OlaP1LEoIZfpOFJM5iA4NcuwZVoDgBxNcv2O80QIk31+r0tLDtLoTE9ALNV1mkS9Y2vfzFrgO1dXHAOkz97sd/cDGWTxJJxkUavhzLPmn+ov7hc0q/EntbpvsvTwvcM8klLlJBrbmoAvSoTaEwUp1UX7b37QnkcbnRMS6AmvhNLVIunm2A==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: [PATCH v2 3/3] xen/x86: move d->arch.physaddr_bitsize field handling
 to pv32
Thread-Topic: [PATCH v2 3/3] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
Thread-Index: AQHcX+r1RZK80lHptE+u/qWPaEQ8Kg==
Date: Thu, 27 Nov 2025 22:12:46 +0000
Message-ID: <20251127221244.3747918-4-grygorii_strashko@epam.com>
References: <20251127221244.3747918-1-grygorii_strashko@epam.com>
In-Reply-To: <20251127221244.3747918-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM0PR03MB4594:EE_|DU4PR03MB10621:EE_
x-ms-office365-filtering-correlation-id: eb8764d4-47d9-4089-2096-08de2e021860
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?EgP3JcfwHM03RsBLq5SDjdYVsVJFlePqcKkj3lYxKWTwTElPc0nVM67XRa?=
 =?iso-8859-1?Q?pyYNcAfNKE0kwNcfg1pH6+ZH9c8X9u95GbjE44xDj+CoO8QImi7zbW25T8?=
 =?iso-8859-1?Q?cwthB0U4MhZtqD0kykn8qkY5LP+mQzTfm0xC/B4nXcgzCstZ0izcTA+NZj?=
 =?iso-8859-1?Q?VyWoh0i0fxebCETWih280bzpX2o8ZptSWH5LBt4J6HHIJ2lrp/sG3IjLDX?=
 =?iso-8859-1?Q?TYvbO+kLS4YrHfsF2Y9D00VTPJc1g71aGWcscGqfx97D4rsnxlmNIF89U2?=
 =?iso-8859-1?Q?3zPCmLmyaP6hdfJpq+be6c/7z4d9q0HPiOIuwX2hJI9mOK+2MqyCKd+fbt?=
 =?iso-8859-1?Q?Vh5jbStR19CR8wXZEqls3nlwhU/pSDRsgL3fiDDQHmGqms/1Ox3tq/hUzZ?=
 =?iso-8859-1?Q?MaIrEOFuXjIq5z+5apKDI5ggwD+4vIPhQCqjxxjFYemPR9mem+ZDifqNOE?=
 =?iso-8859-1?Q?ghSDx+Wg9qiGg3PblaAjGukH19F9i0iaxtQ9i7Ue7HthFTV54ppX4iA3Wb?=
 =?iso-8859-1?Q?Y2uRMpmWn8ruOt8KSW5MVvg63hUg2nCYawRFmdkptglXUL5GhGuoefnDx9?=
 =?iso-8859-1?Q?eD3OoMk3EGP5dNRTuS92vQtQCl1Swvjbq6VDVCi5ceNWvltVSlfqepocbi?=
 =?iso-8859-1?Q?gAfadJicl8B9gHlLWt0+nG86qB2urHWhW53O05pQIVI8W9RS4HC2SJcgkz?=
 =?iso-8859-1?Q?yuKkY3R53Tp+nVlEvMb0PHEh8obGtx5SR8TS7RVQn+56rcF9q8GXVxoeNu?=
 =?iso-8859-1?Q?uslkrR9G9nDGDAFcjCB7Fezk0WLCT4Vs9abmQuhzQRRWfbj85xyOVrUi9Q?=
 =?iso-8859-1?Q?RVj3M+4Mvnv8J03BIVJ3NR+Jg5NkzvTJRfus1zPGtDk3HsywUnWsafRYyu?=
 =?iso-8859-1?Q?vrr6sQLJl3zfqzHOlELzOVei0Ptiy0T9EbF4tPa7tQClfQUM8D5cUA3euT?=
 =?iso-8859-1?Q?CI97uykWXbAB+4N/deveCZwGPgBfernj6S5xptZY0WmLNefrkMD+pl0z3v?=
 =?iso-8859-1?Q?x4IX23jfN+Ch6oMDO6H0PAxgKjHVS2+SUGGmmqStmF+wnhKKKbs7Sn1nGc?=
 =?iso-8859-1?Q?75oCn+XIf0FCeHLZ29C+YwEGlI4cxNUeWUxwLCWPINKEZuamAazQDaZfvj?=
 =?iso-8859-1?Q?+3CZxkKbig0eRKLeeyecWBJTRSYWgOlLHthoXSqgXjPOYCQqj4dAiOM9oh?=
 =?iso-8859-1?Q?QSFJoRPNt46xRj9jmnvsVLPO2eN3/fByU4Q4x9v490HY3qhJSC7fYjSd4J?=
 =?iso-8859-1?Q?ged0WQZYFHVB+ePYHYhQEOKmNqc9AzUTdDFeIo8LmorF0HhJf6yfPXDzRr?=
 =?iso-8859-1?Q?4PUY5U4GMV/AbTLcp4pVkz1B5ktTAN7ZtYWzkJWM6lfjP90Em140RhwBOn?=
 =?iso-8859-1?Q?dasTJGS4fhilVzt0IZifeX4HDM49ChjykB7WkxeC5rnkpo0va1PA7DHhLE?=
 =?iso-8859-1?Q?i5Ni1bY41napgosu03OzZld84BjipJyi8Jy0H/MFE3BWgOMMzBPAdbBCR6?=
 =?iso-8859-1?Q?5ZBfhSglvOyGfZrOJCookomu/SO0K2FO1WB5wyPECV8XK7eZIYY/mH7bq0?=
 =?iso-8859-1?Q?wAHKjyzw6drNdt2te9wmX2IAmYAI?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.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?hkyIab642dZ2ZpJAJIXE7lQlFPLSx0ZcXYppMP51LiyalUdTId37ZF5SCr?=
 =?iso-8859-1?Q?it6cJP921e98K/+k9a4v9q0STa/hJne6xWUqW9p0za5JKR3FwWIfir+N1x?=
 =?iso-8859-1?Q?ODFHt91c+60Mwj+5z5orYE2FSq/M5OeAQU2D9gBx6ZlPTPr3fSqbOId5ci?=
 =?iso-8859-1?Q?2RfBd1A7RHE35+4SpMeHxJkYFGHlRQ8FNclgd7o2xH6vK8+9UHH3xP7QeT?=
 =?iso-8859-1?Q?YYcoljDQq1Fue7H2wJ1NoTCzFFAzsHIGkx3osHIihDPWc+3GYBNyLielq+?=
 =?iso-8859-1?Q?yitaZ1b6yYcH5rz2CxR0d1c1MJ3LmakzfY3ii6FMWociWndNYOhdgt3Kg1?=
 =?iso-8859-1?Q?EkdvceysjbShprJkBd6mQUmjdAQZN46WoOSjIXVq2IZc9SXVfjA+19J3nW?=
 =?iso-8859-1?Q?r2xJ0WY/7TzPAYcDwgw2woEDw3b8QxMz2KYizWPR7veBiUHHR9jJOh4wcc?=
 =?iso-8859-1?Q?l6sl1In/FWk1JOKrMHKJBn7V+yGGAhOlScBYF9anoAUL5jVXx4hGqeAo6Y?=
 =?iso-8859-1?Q?a5acsyCDyog1T+OBcWktq8Xkj1ZiYI54gAK3RiFWCxIN8+ooZUNhKPc20d?=
 =?iso-8859-1?Q?DskMXb/qaKqIza+qeLm5VPzK9UY+DC3mQHkPQ4rTtbE/1XM+bG1N2aMIc9?=
 =?iso-8859-1?Q?xgOt4BQGanvwlhnIMbL1KaG0XgQbyWVSliuX04i+pqXCgHX6jQzNwD3AmI?=
 =?iso-8859-1?Q?aLqvA8IDvYXarz+XbClnmfaKiH9EoKVorHe56V9UUSt8wPjGRcOoQnCwNT?=
 =?iso-8859-1?Q?YpAasOR84ZIsqlIkddl5JsDaHKzbz9endUgFz7i6FDlEuw0/pnQ6Va453e?=
 =?iso-8859-1?Q?hpttFwnhiRjGW6eCLCv2tthKbEGCSeGSLDB0xTbCsX7vE7GHbONqB1p/Jh?=
 =?iso-8859-1?Q?PBGO81iqnwFrU4cdmHc6cKLLEMeY1oo9DJLtDkhDz8QQjFcnF0vujYPrTs?=
 =?iso-8859-1?Q?FUuJ5vd9QiiWc43O8hvEZjozsSImK1GZNp/h+F4JKVn7PW96uAmm1xi619?=
 =?iso-8859-1?Q?85nM4GAGUurT8XeCYPbKLHc/EBuz3nYyhNK8StIfd3SciC2BK8+tlpQmYv?=
 =?iso-8859-1?Q?cOQzMivQUjjTSMW+8HUxy2F2TXCDhrlxtxGwrau+Jfj7nrvTQzzyxKxjKB?=
 =?iso-8859-1?Q?RwhWwRMuHJZbSl7JFHJcvLy2WeJB1RZkB6y44nS5YRjg2iqkWGGR7rE/DP?=
 =?iso-8859-1?Q?RxyjQ7r6DmZe0K7zTAhUAa/VWMr/CA2Y0NUea4mznmSnrNpocYzgq98xTW?=
 =?iso-8859-1?Q?xtEq8sUFc3clyPPIde8XujZ2Egg9SabIUHtFYkBMHey76REYpYRmSgHHr9?=
 =?iso-8859-1?Q?Q6VrCFcYY6uXWSsU08IsZyPrMAH6C1U5contsD8zhYSWsSO7rtm4zCxnc3?=
 =?iso-8859-1?Q?Ctm2OaJr/dAjkdiXsP24dw8U6ardpAtwalmk6DYmQsV9spL5m4jtql6Hby?=
 =?iso-8859-1?Q?XIxENsjE1KxgDf2Xpk7BscV7kS4GOzACziyPKEWZdbqFxQO3dbFLHrvGqg?=
 =?iso-8859-1?Q?4WzMgLjU87CjvnUJnTOpmQQOtxtDuu+eOfNljIOvbIHygj1qxej6uDpIM0?=
 =?iso-8859-1?Q?OBPd9do+64ti5k6c7GxJ42BwxjodSMaBCn9RieSdLPHLQ4Y1PUfIEjEaUR?=
 =?iso-8859-1?Q?gf4XRXSuTff+acn29Y9Y1uSinirHQErqgQXtYNIamqVbaagUo2HOZkQg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: eb8764d4-47d9-4089-2096-08de2e021860
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Nov 2025 22:12:46.6645
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: FFS8nM+e5okxuny/CvxPxs68IJDO8FcYov7oo+C11pzjHli6+5BvdPEuBa8yqUU4yJRe8BbJl4O2UhXz1D7o2uF2AHsFT65oBBtiLnzzQdM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR03MB10621

From: Grygorii Strashko <grygorii_strashko@epam.com>

The d->arch.physaddr_bitsize field is used only by PV32 code, so:

- move domain_set_alloc_bitsize() function into PV32 code
- move domain_clamp_alloc_bitsize() function into PV32 code
- move d->arch.physaddr_bitsize field under PV32 ifdef into
  struct pv_domain

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
 xen/arch/x86/include/asm/domain.h |  8 +++++---
 xen/arch/x86/include/asm/mm.h     |  6 ++++--
 xen/arch/x86/pv/dom0_build.c      |  6 ++++--
 xen/arch/x86/pv/domain.c          | 23 +++++++++++++++++++++++
 xen/arch/x86/x86_64/mm.c          | 20 --------------------
 5 files changed, 36 insertions(+), 27 deletions(-)

diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/d=
omain.h
index 5df8c7825333..6cdfdf8b5c26 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -276,6 +276,11 @@ struct pv_domain
=20
     atomic_t nr_l4_pages;
=20
+#ifdef CONFIG_PV32
+    /* Maximum physical-address bitwidth supported by this guest. */
+    unsigned int physaddr_bitsize;
+#endif
+
     /* Is a 32-bit PV guest? */
     bool is_32bit;
     /* XPTI active? */
@@ -316,9 +321,6 @@ struct arch_domain
     unsigned int hv_compat_vstart;
 #endif
=20
-    /* Maximum physical-address bitwidth supported by this guest. */
-    unsigned int physaddr_bitsize;
-
     /* I/O-port admin-specified access capabilities. */
     struct rangeset *ioport_caps;
     uint32_t pci_cf8;
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 17ca6666a34e..128115442ecc 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -619,9 +619,11 @@ void __iomem *ioremap_wc(paddr_t pa, size_t len);
=20
 extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int=
 pxm);
=20
-void domain_set_alloc_bitsize(struct domain *d);
-unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bit=
s);
+#ifdef CONFIG_PV32
+unsigned int domain_clamp_alloc_bitsize(const struct domain *d,
+                                        unsigned int bits);
 #define domain_clamp_alloc_bitsize(d, bits) domain_clamp_alloc_bitsize(d, =
bits)
+#endif
=20
 unsigned long domain_get_maximum_gpfn(struct domain *d);
=20
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 21158ce1812e..e4f95d8f2fc8 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -626,8 +626,9 @@ static int __init dom0_construct(const struct boot_doma=
in *bd)
         initrd_mfn =3D paddr_to_pfn(initrd->start);
         mfn =3D initrd_mfn;
         count =3D PFN_UP(initrd_len);
-        if ( d->arch.physaddr_bitsize &&
-             ((mfn + count - 1) >> (d->arch.physaddr_bitsize - PAGE_SHIFT)=
) )
+#ifdef CONFIG_PV32
+        if ( d->arch.pv.physaddr_bitsize &&
+             ((mfn + count - 1) >> (d->arch.pv.physaddr_bitsize - PAGE_SHI=
FT)) )
         {
             order =3D get_order_from_pages(count);
             page =3D alloc_domheap_pages(d, order, MEMF_no_scrub);
@@ -650,6 +651,7 @@ static int __init dom0_construct(const struct boot_doma=
in *bd)
             initrd->start =3D pfn_to_paddr(initrd_mfn);
         }
         else
+#endif
         {
             while ( count-- )
                 if ( assign_pages(mfn_to_page(_mfn(mfn++)), 1, d, 0) )
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index 9c4785c187dd..ad40a712ac5f 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -230,6 +230,29 @@ unsigned long pv_make_cr4(const struct vcpu *v)
 }
=20
 #ifdef CONFIG_PV32
+unsigned int domain_clamp_alloc_bitsize(const struct domain *d,
+                                        unsigned int bits)
+{
+    if ( (d =3D=3D NULL) || (d->arch.pv.physaddr_bitsize =3D=3D 0) )
+        return bits;
+
+    return min(d->arch.pv.physaddr_bitsize, bits);
+}
+
+static void domain_set_alloc_bitsize(struct domain *d)
+{
+    if ( !is_pv_32bit_domain(d) ||
+         (MACH2PHYS_COMPAT_NR_ENTRIES(d) >=3D max_page) ||
+         d->arch.pv.physaddr_bitsize > 0 )
+        return;
+
+    d->arch.pv.physaddr_bitsize =3D
+        /* 2^n entries can be contained in guest's p2m mapping space */
+        fls(MACH2PHYS_COMPAT_NR_ENTRIES(d)) - 1
+        /* 2^n pages -> 2^(n+PAGE_SHIFT) bits */
+        + PAGE_SHIFT;
+}
+
 int switch_compat(struct domain *d)
 {
     struct vcpu *v;
diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
index d4e6a9c0a2e0..8eadab7933d0 100644
--- a/xen/arch/x86/x86_64/mm.c
+++ b/xen/arch/x86/x86_64/mm.c
@@ -1119,26 +1119,6 @@ unmap:
     return ret;
 }
=20
-void domain_set_alloc_bitsize(struct domain *d)
-{
-    if ( !is_pv_32bit_domain(d) ||
-         (MACH2PHYS_COMPAT_NR_ENTRIES(d) >=3D max_page) ||
-         d->arch.physaddr_bitsize > 0 )
-        return;
-    d->arch.physaddr_bitsize =3D
-        /* 2^n entries can be contained in guest's p2m mapping space */
-        fls(MACH2PHYS_COMPAT_NR_ENTRIES(d)) - 1
-        /* 2^n pages -> 2^(n+PAGE_SHIFT) bits */
-        + PAGE_SHIFT;
-}
-
-unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bit=
s)
-{
-    if ( (d =3D=3D NULL) || (d->arch.physaddr_bitsize =3D=3D 0) )
-        return bits;
-    return min(d->arch.physaddr_bitsize, bits);
-}
-
 static int transfer_pages_to_heap(struct mem_hotadd_info *info)
 {
     unsigned long i;
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 22:24:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 22:24:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174466.1499412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOkPM-0006CS-Ey; Thu, 27 Nov 2025 22:24:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174466.1499412; Thu, 27 Nov 2025 22:24:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOkPM-0006CL-Be; Thu, 27 Nov 2025 22:24:12 +0000
Received: by outflank-mailman (input) for mailman id 1174466;
 Thu, 27 Nov 2025 22:24:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jSjm=6D=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOkPK-0006CF-T1
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 22:24:10 +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 c9b5e348-cbdf-11f0-980a-7dc792cee155;
 Thu, 27 Nov 2025 23:24:08 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY5PR03MB5330.namprd03.prod.outlook.com (2603:10b6:a03:22b::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Thu, 27 Nov
 2025 22:24:05 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Thu, 27 Nov 2025
 22:24: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: c9b5e348-cbdf-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nk6yL5w74g85dfbBdO4h8MFibYVZhj2EvXlgbgBik89V0Z/2O30xYiknLcr9imPgZVZ6EFO4gV/HNA24UsHagP2Dz0RPvRAS3qzRpEbRP4L3IGhPLxIv3aYs809JaB0j1qy+7JQNYYyy1c8N3euNDE91cQEz4JXhnOjGTZGlM2dSasAg5fCsrO3YCNgQIURZy2P8c8FFjPEYQOtW8Vt8y/5UAM4CZikZZ2iWUIRfMQb+/vVbQRh9mBxZgTImBhmfPkbkHz0EoPfbmOqYlaEwD/WHGs93SJVG+7KszqdXRwKntlmfpWiFMET1pEf3ibcoe2lLbL5ckEAhWUOPS7GMRQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XPu3PEbV6cuSadulq44b4osCqOZ6CTryk1OM2RHyyrk=;
 b=TqMXpzWJy+m9JsTdTwZMVkgDwaY0X08nKOOERaFcfrKfg+1XeL735JjPwBCoI3vej7rW4D3IT2tOQzVpz5mgZThbwnpX+DMXgqT0s0/KuCjZC5l0BSq4vEtlQusnygLBTtaO1BZgIj9ax28if2iLHRFBiZ6sLC6MrHYk5APXLGbKSDptwFQ3F28NJ3E0q8YrjHjoVsoW0obRzfD9HAHnz3TCFE9MGDv0jI6jiyBxO0LmDl4/PIQSBRW9ytQhY+3YrGZo8xzY9P4JBMxz6RcIbrNoHtTecGrC8mmqUphntoagmjzgey0FvU5wW0P08lo6zjVKs9a0+O5DYi5Lyf3vjA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XPu3PEbV6cuSadulq44b4osCqOZ6CTryk1OM2RHyyrk=;
 b=lzwlvY4L6ena8LS7xYtNbT6X09OX324BESJGcbtgmCRLIcmjr4DI3Riw5bA1uBAMgNsKCHOuP0vhnSw5S7CRU+FVJHxwDGAmBIjeRfm2DRHSu65NdnZXSyhadI2fLwpGnD1ibh0KnsKQ6pvisG4hPNpy9M/1zVwb0vBiIjUwEfY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <802d2971-4cc0-46c1-bc24-4ec15c712118@citrix.com>
Date: Thu, 27 Nov 2025 22:24:01 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com
Subject: Re: [PATCH v2 0/3] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251127221244.3747918-1-grygorii_strashko@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251127221244.3747918-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0158.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:188::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_|BY5PR03MB5330:EE_
X-MS-Office365-Filtering-Correlation-Id: 3f75f457-fa8d-4d70-2a41-08de2e03aca9
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?R1p2aGMzTENZYnl6RjlxNWNHdWNWb1YvNExqcTBIOFpGcWcwRThpSk9QOFJo?=
 =?utf-8?B?Z1d3ZjdJUE5Fb1FXMjQ3RGsyM1JVSlZxY0RDUjNNQnZZVUhhOXVUMjdCSVNr?=
 =?utf-8?B?VkVyMVQzSHVNTHlwcG1nN21abEkrSjZ3QlUzR3JsMk9hVzY0SnZtM3dHa0Fi?=
 =?utf-8?B?MTdNOVJjclp6bEpUa3AvOFU2bjFRZGFraVIvR2tyTkRmSFdwWDIva21CSzAw?=
 =?utf-8?B?Y1p3TjM2bkl6dEs5dVJHZXFSWDI0VUhvR2RiWUxQM0dUNmdGOXJXNTFsK2Vn?=
 =?utf-8?B?eDVobUNYTUpRdGRnMEEwdS9RRmwyUFl6WGtqeGRhWEtjamgxaTR0RlVVdmxD?=
 =?utf-8?B?NkZZby9LckEvN3pqenpnR2tBemZrNzZnbk1BZHJVTW8yS2lXQ3E5bis1Z0li?=
 =?utf-8?B?TzUzekFmMVJXSzZLcGpKcWYxSC9rR1RWTWRyZkh5MlpXa0diQjFLdUNsTkNp?=
 =?utf-8?B?elVpU1FJSlVpOTBXblJ6cUlsTWhpRS91VENEM3JiMmNHTlliYnUzSjU2U0gx?=
 =?utf-8?B?UUhsc1BVUVdqOUNyeXU2c3lwYUZtZGtWTGgyWUpqRUgxZjBFM3ZzUW1ScXRP?=
 =?utf-8?B?T3hYQ2RPZ0cyeXFpa0ltOW9vbU5ZYjVEeitEQ2xDSlZhQU1yN1F6MDVUeFdS?=
 =?utf-8?B?R0hBZ1lMNTRSQSs0QXRSN21pbXI3MjF1UVBnNmNtdEZVM2VpTjQwTUFPcW1I?=
 =?utf-8?B?WXUzUG10MzNpR3krblZHSWFFOVRCOWhmbENtSXJFdmg0OXdQU08vWGgrNHZu?=
 =?utf-8?B?SWxNZlNHdWtnL1BqNkJaZ1lsdkRsank5NjYyWUVCYTF0c280SjAwT3dYSWVS?=
 =?utf-8?B?WEF5cnpUOEJ1Z0RoUzNZUXRiTDE5R3R0bmJVdzJSVFZTcm4xN3NEbU96NndM?=
 =?utf-8?B?RUFhOEhWOW91akVFakRMVm95Z0c5TUM2Vmc2emg2OFp0ZnVCbENFRFNIeW5M?=
 =?utf-8?B?Ry81UmV3aU9NOUNCd0pUUkRjOTJaRUR3a09rdVN3b2E3c05kSXEwZXRBNmVL?=
 =?utf-8?B?KzNzMFNhY3lOT2ZFM0k1QVRUaVA1RmFrU1BtRytQY2VLMlg0d0Z0RmYrMHJJ?=
 =?utf-8?B?Q0NhaG8rdmkwck50d0VKV3AwZzNtZ21kR3NLSllEdVJqK0szMjJXOUh4N2dZ?=
 =?utf-8?B?VFV5K0R2b1hYWkxhc0ZscVlXVXVNakszMTRjL2pET3BJRXdnbnZicEQvazJk?=
 =?utf-8?B?cnhLOGMwVG5ETFIwS2VrYW1TU1NHd1ZJejU5a21WeUY4dGl2S3MyL0xla3Jj?=
 =?utf-8?B?OVhBYnBjMFNsdS9pbHZNdzRISlJ2eDBaSnJmdG4xSkxXWEMxNUhOWVJEWlp3?=
 =?utf-8?B?L3pKOVBhWmtwMzQydlhNK25VTHhhTzc3Y0xiL3c2aXI1L3V4cjlTZUlRek5S?=
 =?utf-8?B?RnREQzFya1hNWUliZk5tT0pyQWhIZjRuVlRjNzBvNTMzVEtwOTlpTzVhSnlT?=
 =?utf-8?B?QlNzcVllVzByM2hyZnBsdXJLbEI3T0pTcGVSZFFsaE9Jb2NVeDdTSkxzZnJL?=
 =?utf-8?B?MXJtL1lvQkNCY3lSZnpkd25kbzVyOWRMODYzaUtxQVByVXYyMjNwTXMxenRQ?=
 =?utf-8?B?dkxGUmZ2elhYeWNHdmpoMzZOelZTaHhDRXRHd0M0UnRkVkRTSjBhd3dMVXE3?=
 =?utf-8?B?cGRveW0wMnF1U25DdktsWlp2Q0NNUGlPZWY5eHpPY2ZDQjZSMXBaM3hjRUZD?=
 =?utf-8?B?blc0RUVQZEx1YzQrYzZObHAxRmtkUWUyMklLRUR3YnFtYzFVUmVjMmpqdmp6?=
 =?utf-8?B?ZFl0Y1gwZ2J4ZHMrcGMwaVlRU0htS0x4TzkvRkNSRi9WNTZDWGZmNFFqYjVT?=
 =?utf-8?B?Z0dWemZYUW1XekNMR1lRUTlkclB3aDhmdXNMelB5cnhZZnhJaFdOS25mYUdx?=
 =?utf-8?B?dDN0WkNKVTQwbTFDTm5KMzJYVkM5VXBKbUhWS3JrS21zc3pMbWJVTU1mdmc2?=
 =?utf-8?Q?FVJpsk6EqtkTLIbEUVk3iGm6OnQF2bbV?=
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?cGo5eFNUZ2g0QnNuTFVLNTUxSzRVNEVuM2s3Rjd0RzU4M1dwYktqTElQb1o2?=
 =?utf-8?B?VXUrRG4rUVJpbG5JaFdUc0JtUC92T2xjMzFCVXRkenNpUDlNd29Ld1RzTUZX?=
 =?utf-8?B?YjRldTAzalZsT1lPZkxjQS9WcS9QODlhNldJaEdUUVZaWmU2T2VYYnZJVkJD?=
 =?utf-8?B?R3hmYmdSRFhtcmZKZXlxYUhydzlXTlVkNmRETngxM3VvU1NvZXJSbFpBeGw5?=
 =?utf-8?B?RDRzZmx4Y2E2ZGlTcktZZXlsVFhaVFluWWlxVG81R0w5VU9lRmwrb2NISUoz?=
 =?utf-8?B?SlE5WmJJMEN4QjUvb3V6WTJYYjBId2FNaTJyWk9SU000WmtzaWh1OVg5dkpr?=
 =?utf-8?B?R0hTM294b2RoMjUzbzJoVU1yZ2s3RHhEZVBkb0N6N284TlhWUnpobFFNWk1T?=
 =?utf-8?B?TGsvdzBWblBsTlRtT1FmWUZPRklMdy80NFY5aXF5dTYvK3NTZFc3WHRna0M5?=
 =?utf-8?B?TUlGWFpzaStyMVpQNGZOZEUxVWZWL2hJWTJMaGV4ZCtRSmhobnhsaVBjSHdy?=
 =?utf-8?B?MTFaWERtbXEyV2JTM3FJL3hEOTYzZVJXcUdFcGYxNGV1dDBvVG9wWXZqTkQ5?=
 =?utf-8?B?NmNvZkZobUd3YlVqT0ViVVF3bXFldEl0MG54VnhrMlNSSlVxN3F4UkozZTQ4?=
 =?utf-8?B?VWh6dmoweXBOa2ZxcEdnZk9PckhiYXBkVEFUYkY5bUIvZmpETmZxMUZwaHp5?=
 =?utf-8?B?SU00anl2aEZlSVBEYzliTHR2R0NITzR0eXBlQW9xSzJYTjk4eXloNjBmcWIy?=
 =?utf-8?B?S3hnWmw5RUdQVzVsaGtUaUE5YW90NFEvQld5bUpSUUd1YXJrMEdsWHg3NElT?=
 =?utf-8?B?bUdhcURQUmYxQitWam5FZnJnRnNPa055bDNVRGErV1VIbm9BM3grWlJRZW5U?=
 =?utf-8?B?NUo3dElmY2tqNlRaeFpBdEsxNFdsN1JJcko1dGVnWnpWcFVDZzFIdXVNR2Iy?=
 =?utf-8?B?L3dkajE0ZXFBYm1wQ21ITDVNckVnZWY3U3VYMVNFM1BLMUs0TVAxTVdobC9R?=
 =?utf-8?B?UlQ0WURvbklZUHJzcmFwL0prLzY3MUx2ZmpqZjV6NEhvRzMvNUJGM3NHeGJL?=
 =?utf-8?B?emZwclhEbm5oTmhVRkJWMXQyc3lHT1NFMWx5dWdGRUxkb1JBTU5uOVhDc1BP?=
 =?utf-8?B?bFY0OHpLUVBpdEs5aVdyb2s5UXdHdXdEVDNUN2d2Ny9PK2MvSWpTcU15MGx2?=
 =?utf-8?B?a29kd2N4aVZva3drWmZvSWZ3UmxIL1VmdkJmNkhrUVNaY1QwMWRzRkptQjFy?=
 =?utf-8?B?blEzZHphMkxDOWVLS0YyQTVFUVVjTVVPdWFTN2F0TmNyQlZoTEhHeDdwTTlh?=
 =?utf-8?B?MXE5cnZXVWlKZ090U3drKzFrUnl1MlBac3lNM1dNdjNwb0FMS0l2d2Z4LzQr?=
 =?utf-8?B?eWVDVnBEdGNna2wrQlZjQkVKQndjdU9VcmtzNFFpdTk4MnRNZ0k2K2VmdW53?=
 =?utf-8?B?dEdjZ003L2dMNFkvejlxc2dkYTRyL0plRk9CUS9IU2h6dWsrODZ2RFF4NnlT?=
 =?utf-8?B?UWdKUTlGQlFJN3c2V2FEZUxZVm9UZEdoY3psbURuaHh3Z05RZ0VITS9CMDJm?=
 =?utf-8?B?elRkS1VaVTRoSnV6VVZDUWNsY0JvQXcvQWVIQ0MxVjYwQW81OGpMS0xvSmI5?=
 =?utf-8?B?RXhnUG95NEV6VlEvbElSSzV4WG9haGpNWUw5SkJ6M05rQjNwWVZCMlFGaUxx?=
 =?utf-8?B?UnVUbkVHMXQ3cUM4L1FSUEtuUWE0UG1nMGNubmlkSW9FcHV3MTFZOXFVRjJm?=
 =?utf-8?B?ZjB2OFBHbmZ2dytTZkxOT2o3QVVyOTlmWnoyWWhWVW15K1RLdXpIL2NYQ3po?=
 =?utf-8?B?UFRTbDVtSHhUTUxNdGRoWFFLOW8wMW9JN01TSDJMdjRzdFZDMUFDVXl6SURL?=
 =?utf-8?B?ODd2ZnpMWDUvdWNEZW41S2V5MjlQRi81ZGVRV0I3ME1IaUVSWktYNmVnNjBD?=
 =?utf-8?B?bEpqUnhBNGkvVWp1SjdyYS9uYkZRaXhGbWdQbE1kVCt1cHZSeGZHUTRRa1oy?=
 =?utf-8?B?U1NWcEZmZlVjdHdUbHRuTUNmeE9DczNCb3h2Ujh2Z2FzNFVzck55TUVhVURV?=
 =?utf-8?B?d2k0eEhheXErb1Npc3BJSEwrSEltWEorcHMvTnVnRTdNOG04WHdGamdyR1Bj?=
 =?utf-8?B?WkFzNkNnTjNRWXFnQXVhV1FkbXhxL2doejJtY1RrVEJjK2xFa1prUDVxZVM1?=
 =?utf-8?B?Z1E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3f75f457-fa8d-4d70-2a41-08de2e03aca9
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 22:24:05.0256
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 1m4afvLOxGCcYN3q8C40LEzbe4UtI6JfWd9WNYJN2osbwHfVsdmYuxZYvnKL55jg3wxi2hUKIS6+Qm491sdlOVEdT2py76NcygeP98GCLH0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5330

On 27/11/2025 10:12 pm, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
>
> 1) arm/ppc/riscv: drop unused domain_set_alloc_bitsize() macro
> 2) add generic domain_clamp_alloc_bitsize() macro and clean up !x86 arches
> 3) move d->arch.physaddr_bitsize field handling to pv32 code
>
> changes in v2:
> - split on 3 patches
> - move physaddr_bitsize in struct pv_domain
> - make minimal style adjustments as requested
>
> Grygorii Strashko (3):
>   arm/ppc/riscv: drop unused domain_set_alloc_bitsize() macro
>   xen/mm: add generic domain_clamp_alloc_bitsize() macro

These two should be merged.Â  You also need to CC the ARM/PPC/RISC-V
maintainers.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Nov 27 23:10:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 27 Nov 2025 23:10:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174481.1499442 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOl7Z-0003kL-UR; Thu, 27 Nov 2025 23:09:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174481.1499442; Thu, 27 Nov 2025 23:09:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOl7Z-0003kE-Qs; Thu, 27 Nov 2025 23:09:53 +0000
Received: by outflank-mailman (input) for mailman id 1174481;
 Thu, 27 Nov 2025 23:09: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=jSjm=6D=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOl7Y-0003jp-I5
 for xen-devel@lists.xenproject.org; Thu, 27 Nov 2025 23:09:52 +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 2c803aa3-cbe6-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 00:09:50 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY5PR03MB5250.namprd03.prod.outlook.com (2603:10b6:a03:220::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Thu, 27 Nov
 2025 23:09:46 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Thu, 27 Nov 2025
 23:09:45 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2c803aa3-cbe6-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=H9DP8798SACxlJt+mkN/h+KmJ61DPT/3EOvxiVWwckduguFFK+p8LmnRfjnfm36n4ohkAoLmkKaEjCukRRl6OJ5Ck6ZyeltVNaJLFZpYyfLnZQoBVhvQt53H0ARsCnGGcSUvtZWCAp3WH6UV7qEES/4VQmY5sIKeAmLZIu8CvHwEk3UNLC1il93b6nmDVASuhsoPH+pMqxrSlJR47sJ5T9QU0xn/u2p4014QcCbvWxIsi23uz4ScqIgHfBqOHka1TaDA0SAJ9sxEocbq20fqYbkmrkR2as09lU8t8mPK3FyoMRtk1gcdUd15AOpTKv0IJlLCpVME4tL9C2dyoJ6PcQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ToDzyoiiSL/bJ8bNP7/0dqmG8D1RErixfFFF4+vFPYc=;
 b=AmvdXGcKTvgezjajTy58dM7b3FIe397tw6noBbU0yRMnsGZe7t0HsmtADLYSmeFCbe1/+J4uTl5CvHfZ90JJbdQDl0q1jN9rH3AAPRIhGD8bxw4pGKAqvUxW7uT/a7L8LswEkHFCIEfWPlzIDi/wwEBFCbTz4/5rRq4VTfR5ka3q1k3LL5QrYAR29Nb6kuOpBnaMMEBR1/oQV7KiBF9aV2/Y0wpY3SB9eCQnS/iBAIhpMXHkx2sDsnAMR9vEI89rD8aOboyE7U98lYIvTKWnw3lWzw2JTD3Vw19W/kzC42vszyuM9QTraKHC32E3A5MshdEo5qsAyupzuJz4km5aww==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ToDzyoiiSL/bJ8bNP7/0dqmG8D1RErixfFFF4+vFPYc=;
 b=Z69ZJ0OMmOWf3oDqresSbMhRwzYpKb0fALKPK9Y1k/XxObLCUu1ECrXKvxozDuV/BgNS5JGE9ICwP9y0n/kzYiUZV/DVw6mSaxPkKE8uFZ9IqPeVdvWuUub1GCTe5JtFa/KlDOofejjg4S2LQbyTXgUkI3YybP8ueIVI1cV4KbM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <26f448be-4a7f-4346-928f-8185ca8ba222@citrix.com>
Date: Thu, 27 Nov 2025 23:09:42 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com
Subject: Re: [PATCH v2 3/3] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251127221244.3747918-1-grygorii_strashko@epam.com>
 <20251127221244.3747918-4-grygorii_strashko@epam.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20251127221244.3747918-4-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0426.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a0::30) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BY5PR03MB5250:EE_
X-MS-Office365-Filtering-Correlation-Id: 888d9524-01b8-41bb-f848-08de2e0a0e37
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?N2dhUkV0dDJNZkdjYjNZK3dnaHRwNGxaL0NuRUlpWHdza0UybVJNWUxKYUda?=
 =?utf-8?B?Z2xKakYzdDRVR2wvRUZXTGs3SXdEZlRMRERLby9POGR0WmdIaC9OYU5mQTBC?=
 =?utf-8?B?dEVFRW1RVjVSZUduT2loVjVxank1R3k4MnZoTTQyR29kV09HR3daM0pscTd1?=
 =?utf-8?B?Nm9VZWlpVG5EamlzN3YwWFBnM21iaENzQUJqeEVzNEJ3QkYyb1g4WStCMTNa?=
 =?utf-8?B?OWR0Ryt4bVlqRTVaS1J0VzhUVm0zcEZtOFpRTGhIRk42bG90aUZTb3ZNTjhB?=
 =?utf-8?B?VUJBUENEOXd6VHp2QUZra1grMnE4SzN1UVZFc2ZxTXc4YytqQmllMWZqREpX?=
 =?utf-8?B?QmowU1F4SHdVTGZ5dG5Tcmoya3FFNjBLM2RZQjdIUXFnZVRmaWVMK3MyL256?=
 =?utf-8?B?NjQwOGl2UUpyQktsSkJQYnRFWGJlU3VGandrTGpZa2E5OEcvYzI4MDdhRUg3?=
 =?utf-8?B?MXpRSFAxWk9RaXZHUEs0eFRPb3ljWXZ2Z2VXUlVrZjlEelJsQ3lKeGsxVE96?=
 =?utf-8?B?SXg5MWdyYzVLR0ZPajlqR0FOTFJQUnhMSC9HVktuNkpkMTNhNTVKb0tndmJp?=
 =?utf-8?B?NmsxdkRpb1FCZVhjR3ZwcTYwL29jVG13NXJKcFhPLzRXQ0xIV1ZKcCt3Nk03?=
 =?utf-8?B?WmZTUUVwR1g1OEFQRU1hUG1nUzIza1ZQdWlXMjg0QzJlclVzTElPeUVUaHVU?=
 =?utf-8?B?N1FtSjc1SVFaRGw0QTRRZFdEeHFCZzhBNHlBTFNqZjVyelROR3ZSbmFqWTJC?=
 =?utf-8?B?Tk5ZUnZJSWNHRXNhQS8wRUg4MnYxMGl6TWxmeXJYck56aHpGbnlqNWxwRnFD?=
 =?utf-8?B?UTFnZnlNeDdCaVpLNXkreEVneXRkYTdhRGhjVk5GQjVGa3BBMk9vQlYyTUM1?=
 =?utf-8?B?M3lHcmlOanRjMkFTR1dTYzg0UFB0NTVNMGtrZVNRYjNEK2thUFZ4YzlpUkww?=
 =?utf-8?B?WUdUZ3FFaVU0ZnFQUG5MWFdYVlBIMk4zdllxVmVWa0k0UVJkRksxV2tHcmZS?=
 =?utf-8?B?dDQ5RFp5QmdyOFhhbnJZalBXVE1WeVpvMlp1ZDRDbHZBckJ3S2QvamViRisz?=
 =?utf-8?B?TjRmRmJEVDU2SUdYby85bXk2ZUpLY3dtOUxLQkNGaVdmRHpLeFU2VjRuWE0v?=
 =?utf-8?B?WUNDZmRFSVlONjJCWEdSWGdvWUhPM1FoMHBsSlRiZUZ2ZFVKUUtINGZIajVH?=
 =?utf-8?B?RVBNNEpveGRVcHNRVWVDNkZHNU81TVpvRjhpN0RYTllmU3JUYWFQVHhzMnNB?=
 =?utf-8?B?WUVNbVhORk8xV3VrbVpWa2h6c0IvOXU4eHp2NWFiN1RKekhRcTJ4ei9temd1?=
 =?utf-8?B?cVZDaWRNQzBlZUk3QnJzbHlsYXRqWFZGU2FYZE95bGVsQ1B2Y2NKV0p0Tlgr?=
 =?utf-8?B?aWE1djJTclJoNHp1czJrckRBd01xbVBpcmhLcUNySkRNVVg3TUFNVmV2NGZo?=
 =?utf-8?B?U2xwVmNVeU4zUlcwRFk0NnlIamdEN2FKc01KY0hzZDlmQmVZeWJlakdrZXNr?=
 =?utf-8?B?YlRhc2lDWTU4bmhtanJya1U2YzR2dENUVlA1NHhheTNVaGxpdEQ5TVl3M2wy?=
 =?utf-8?B?VnpHWm0xMGlPQVBsU1k3a1hNWU12enorZEpuNTFtakJLeTVtczFOUW12cGk2?=
 =?utf-8?B?blNzVlp6c2hBbWE5dzYwUzlRYXRIS0NhUlpkL2UxTHlCbjlYWkYycDU0OVV5?=
 =?utf-8?B?VFFWOWo3Mi9sajR2aTNnUHlzbHVKcml6aUR4eFdqVnpSSWw5Q0hVZWdNUDVk?=
 =?utf-8?B?bklBS0dqNjJwTUxmc1ZDdDhWLzJCNkl2N3lxTGEyNUxrSExyaGRzanRPZ1Nx?=
 =?utf-8?B?Wm1ONVBWNFVUY0NIRVM4SWpwS0JxMEFXWW9TMEdVMnV1ZjVLemdvbE9EdGd2?=
 =?utf-8?B?Y2kzUTlhZTYzS0RCeC83OWhvVDRmYjVUbzNBbThUQzJrbzEreTROS002SUtE?=
 =?utf-8?Q?3Lj9PgA+gK07M8a17TmhmjbjC9MpZ95f?=
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?dFZobDFld0NLdzd6UHZVN281QmJPaXpGdEJmZzRTc3B3NllRZGQzUjlXZzdI?=
 =?utf-8?B?RDA2YWRCeFQyc0dqNHNMdFZ2NXpjOGc5MDM0b1pqd3hDM0VKNTlxZjBCMEhJ?=
 =?utf-8?B?UnVEaUlsRVQ5OXUwMTlhM1dDejloRTVzK2lKNHZNaHJsd0VpQ3NCK0RqWERZ?=
 =?utf-8?B?TlVzZURWNTNZRjI0ZTFReU9WWUx2SVpIN3l2c25DRjQyaW9zMytkMFBnQ0Zk?=
 =?utf-8?B?Wk5YT2Fua2Z0ZnA1ckRFTVNBTHBJNXFsS2lRWDdINzNLV2V4K3lRdnB6MHpq?=
 =?utf-8?B?WFkwN0huSS9yeGhwb2FCcUhOMEJ3YXJUL0tHMk1acG92V1RwOVU1ZGZja2hp?=
 =?utf-8?B?SHJ3eGI1S1ZmeGpGRTBvUXl4SmJaT3RiRS9UNE9id25tOVNHNk1Jcjh6SzBW?=
 =?utf-8?B?NnQzVlN6dTNvWVkvRzJ0QVBjV2g2eDNMaHlzZGpHaUU0cnQ1UG9sOUdNOUwr?=
 =?utf-8?B?VlpwUzBPbGJZcDZxUm9OMFIwRWc2dkFpUUtMcUpYd2ZtM1R1Wmwyb0ZOTUQr?=
 =?utf-8?B?TWZOa2tiWm1lYnlvdU9FY2tuaXVhZXNObHBIbmlyRlpPMU9hRFNFTXJidVdN?=
 =?utf-8?B?QWxQTlR0dW80OTVWb0p4QWtJUWlTT2NaL3lGakVqZWNMeEpCOFpKNlhlZkV0?=
 =?utf-8?B?RTZTcGxoNG1uK2gzRmFQQS9xMUtENXhCQ3JKclhSTnpVWVB5UFV4bURyMmdQ?=
 =?utf-8?B?QndEbG5lRlVQbTdIb21XOXRvREpmdHp6UGdiTkI2TUhDRkNTUkFrYkJ0WHBO?=
 =?utf-8?B?MWh6OTliMTVlR1k1ZXRqNDkxaitaczJLRzdxbytISnRGdUdhdnVlQ2psckYv?=
 =?utf-8?B?YmNnWjQ3dnBQOEYwOVI4OFdnVUp2UkpSVm03ek9HNWFsTGFaSkVsNzFITjNN?=
 =?utf-8?B?ZTVvRzExWnZEaENPUSsreld5RmxlWUgwYXRrQnJjSm9qOWpMaE9nTUw5WkJ4?=
 =?utf-8?B?M05OOFg4blNVb00rZWJzcWpOSGZ5SUxTRkdDR2FKWXRMUEMwS3FtZUY3ZmZh?=
 =?utf-8?B?QWZJNFBJd214blBXVSsvQXNheFdWVll6L0xGWlZVUGJsaGNNS0FBTDlidnZO?=
 =?utf-8?B?dUpmU0YyenRJQzZTV1VPcmRmVGJ6dDJwb0JTL1RiRGFOTEg0UkRxNzl5R29B?=
 =?utf-8?B?RXVrelZnYnFMdmo2UTYxNURlMUJ3eTlDeGdGQmZMOWRCZVpxR3NhampyVUhR?=
 =?utf-8?B?ZlpLeHpnN3hEcnJjVzh5YWVEbTBNOWZLcjllRjZ2VFJnZkY5RFo0WlFLYWFu?=
 =?utf-8?B?M3dtOWNBQVkrQm9BOXdVRDVBVWZacjJmZFlmTGxrZDc3Ri9Kc2NmWWJoRUxN?=
 =?utf-8?B?cEFka08vK1JnSU9FaXkzK2pNWEVOaXcvRzNmemVHZzlqTTRFM25ENWlTbTVY?=
 =?utf-8?B?azJ5NGR4dFZ6bGQyR2hTSVFKWFBBVVNaTFQ4eGw4R0xRK3B6OVl2VHBaNkV4?=
 =?utf-8?B?ckg2UG93Z1NmbGVEMUNvaGN1aW5Xa3ptcDU0OTBJNnNOUlVnSHgzSENCT3lC?=
 =?utf-8?B?QjBqYis1SzRNdmYvUzVXYS84M00rREZ6eWJVZnU1TFBQRTlUOGZydHlhRGh4?=
 =?utf-8?B?V2YvZmhTRTlOMkFxeXlTcFhpRWFWcTBEVW1GRm9tNkd5SjdEZ3hJaEtMSXhp?=
 =?utf-8?B?L3BuUmNBOTBJWUlRQjNKU2haand1bzZnb3RBTmx4NmdpMGtEQnVqLzBXKzVj?=
 =?utf-8?B?MzFMUjl3THV4WGkxcm5GYWFDSEZWK2dKbTVZYmpJVW42bUJxRjlNbWxWS1cv?=
 =?utf-8?B?K2kwYzNkcXluanh2VEFmeUxZUi9hc2VsNERLUStKWmFBcGZSVFRKdEw2T2tj?=
 =?utf-8?B?dlVHWG01ZmpvT0g0WWxOQjlYdktTWTRXUW9GWklOUC82Rk1JV1V3VWo4V1lm?=
 =?utf-8?B?RzR4YkR5K1N0VjZseEdNQ2RhNXJrSFdHZkppRzdQbDVzY2k1MURhS2dyRDlR?=
 =?utf-8?B?aENWbVlJeUp3TWlyWHM4SWl0QmM0Vng2aHZhQzdHUGJTQVVBVjRpdVlFOGNL?=
 =?utf-8?B?cy9mbUtzMnZKYmp2TlZ5RGZpbXNOM2xRTVVpcHI0WHRwdEdqb2dZck5ZaFFP?=
 =?utf-8?B?QzdrdFlyNEtqeUhKR0gyc21scEpONVpVUmxCc2RpSVgyYUZtVE51YkZSSXVs?=
 =?utf-8?B?K0Y5QTBzRDVzc3lzQ2tYN3lWeWYvVEJaL3hGcVI3bjdDVkoyUEo4cmpPT0Vu?=
 =?utf-8?B?aEE9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 888d9524-01b8-41bb-f848-08de2e0a0e37
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2025 23:09:45.8297
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: mOSGW0JaC9FyGQX7VbpnON5MCj0AQpaJWJd2e6WHg/rU5GJ1FONWBafEyPj4rg5wbleCPjl70QzeUCLlDAmxmY9IUGSgDvv/jowIqiZAmUQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5250

On 27/11/2025 10:12 pm, Grygorii Strashko wrote:
> diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
> index 17ca6666a34e..128115442ecc 100644
> --- a/xen/arch/x86/include/asm/mm.h
> +++ b/xen/arch/x86/include/asm/mm.h
> @@ -619,9 +619,11 @@ void __iomem *ioremap_wc(paddr_t pa, size_t len);
>  
>  extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int pxm);
>  
> -void domain_set_alloc_bitsize(struct domain *d);
> -unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bits);
> +#ifdef CONFIG_PV32
> +unsigned int domain_clamp_alloc_bitsize(const struct domain *d,
> +                                        unsigned int bits);

Do not convert this, or any other domains/vcpus you see, to const.Â  I
realise you have been given conflicting information on this point, but
the maintainers as a whole agreed to not const pointers to complex
objects in the general case because of the churn it creates, and the
repeated examples of MISRA violations people have inserted to work
around the fact it shouldn't have been a const pointer to start with.

That aside, I think clamp wants to be a static inline here.Â  (Except it
can't be, so it needs to be a macro).

It's currently a concrete function call to very simple piece of logic,
where the callers have options to eliminate it entirely in the d = NULL
case if they could only see in.

#define domain_clamp_alloc_bitsize(d, bits)Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
Â Â Â  (((d) && (d)->arch.pv.physaddr_bitsize)Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
Â Â Â Â  ? min_t(uint32_t, (d)->arch.pv.physaddr_bitsize, bits) : bits)


seems to work.Â  The min_t() is because all callers pass in bits as a
long constant, tripping the typecheck in min().

> +#endif
>  
>  unsigned long domain_get_maximum_gpfn(struct domain *d);
>  
> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
> index 21158ce1812e..e4f95d8f2fc8 100644
> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c
> @@ -626,8 +626,9 @@ static int __init dom0_construct(const struct boot_domain *bd)
>          initrd_mfn = paddr_to_pfn(initrd->start);
>          mfn = initrd_mfn;
>          count = PFN_UP(initrd_len);
> -        if ( d->arch.physaddr_bitsize &&
> -             ((mfn + count - 1) >> (d->arch.physaddr_bitsize - PAGE_SHIFT)) )

While you're editing this, blank line here please.

> +#ifdef CONFIG_PV32
> +        if ( d->arch.pv.physaddr_bitsize &&
> +             ((mfn + count - 1) >> (d->arch.pv.physaddr_bitsize - PAGE_SHIFT)) )
>          {
>              order = get_order_from_pages(count);
>              page = alloc_domheap_pages(d, order, MEMF_no_scrub);
> @@ -650,6 +651,7 @@ static int __init dom0_construct(const struct boot_domain *bd)
>              initrd->start = pfn_to_paddr(initrd_mfn);
>          }
>          else
> +#endif
>          {
>              while ( count-- )
>                  if ( assign_pages(mfn_to_page(_mfn(mfn++)), 1, d, 0) )
> diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
> index 9c4785c187dd..ad40a712ac5f 100644
> --- a/xen/arch/x86/pv/domain.c
> +++ b/xen/arch/x86/pv/domain.c
> @@ -230,6 +230,29 @@ unsigned long pv_make_cr4(const struct vcpu *v)
>  }
>  
>  #ifdef CONFIG_PV32
> +unsigned int domain_clamp_alloc_bitsize(const struct domain *d,
> +                                        unsigned int bits)
> +{
> +    if ( (d == NULL) || (d->arch.pv.physaddr_bitsize == 0) )
> +        return bits;
> +
> +    return min(d->arch.pv.physaddr_bitsize, bits);
> +}
> +
> +static void domain_set_alloc_bitsize(struct domain *d)
> +{
> +    if ( !is_pv_32bit_domain(d) ||
> +         (MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page) ||
> +         d->arch.pv.physaddr_bitsize > 0 )
> +        return;
> +
> +    d->arch.pv.physaddr_bitsize =
> +        /* 2^n entries can be contained in guest's p2m mapping space */
> +        fls(MACH2PHYS_COMPAT_NR_ENTRIES(d)) - 1
> +        /* 2^n pages -> 2^(n+PAGE_SHIFT) bits */
> +        + PAGE_SHIFT;
> +}

The single caller has just set d->arch.pv.is_32bit = true, but the
compiler can't eliminate the first condition because of the embedded
evaluate_nospec().Â  Nor the 3rd condition, because it can't reason about
the singleton nature of switch_compat().

Thus, it would be better inlined fully, as:

Â Â Â  if ( MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page )
Â Â Â Â Â Â Â  d->arch.pv.physaddr_bitsize =
Â Â Â Â Â Â Â Â Â Â Â  /* 2^n entries can be contained in guest's p2m mapping space */
Â Â Â Â Â Â Â Â Â Â Â  fls(MACH2PHYS_COMPAT_NR_ENTRIES(d)) - 1 + PAGE_SHIFT;


which is rather easier to follow.Â  Even the comment about PAGE_SHIFT is
more noise than help.

In an ideal world it ought to be in its own patch, and in principle I'm
happy to draft one with a fuller explanation if you'd prefer, but given
the repositioning of physaddr_bitsize into pv domain as wekk, it's
probably all better together in this single patch.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 06:36:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 06:36:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174491.1499452 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOs5G-0007Zj-44; Fri, 28 Nov 2025 06:35:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174491.1499452; Fri, 28 Nov 2025 06:35:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOs5F-0007ZW-UL; Fri, 28 Nov 2025 06:35:57 +0000
Received: by outflank-mailman (input) for mailman id 1174491;
 Fri, 28 Nov 2025 06:35: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=cb30=6E=intel.com=oliver.sang@srs-se1.protection.inumbo.net>)
 id 1vOs5E-0007Z7-5J
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 06:35:56 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 782e1687-cc24-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 07:35:47 +0100 (CET)
Received: from orviesa007.jf.intel.com ([10.64.159.147])
 by fmvoesa103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 27 Nov 2025 22:35:44 -0800
Received: from orsmsx902.amr.corp.intel.com ([10.22.229.24])
 by orviesa007.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 27 Nov 2025 22:35:43 -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.29; Thu, 27 Nov 2025 22:35:43 -0800
Received: from ORSEDG902.ED.cps.intel.com (10.7.248.12) 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.29 via Frontend Transport; Thu, 27 Nov 2025 22:35:43 -0800
Received: from SN4PR0501CU005.outbound.protection.outlook.com (40.93.194.23)
 by edgegateway.intel.com (134.134.137.112) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.29; Thu, 27 Nov 2025 22:35:43 -0800
Received: from LV3PR11MB8603.namprd11.prod.outlook.com (2603:10b6:408:1b6::9)
 by CO1PR11MB4915.namprd11.prod.outlook.com (2603:10b6:303:93::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Fri, 28 Nov
 2025 06:35:40 +0000
Received: from LV3PR11MB8603.namprd11.prod.outlook.com
 ([fe80::4622:29cf:32b:7e5c]) by LV3PR11MB8603.namprd11.prod.outlook.com
 ([fe80::4622:29cf:32b:7e5c%5]) with mapi id 15.20.9366.012; Fri, 28 Nov 2025
 06:35: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: 782e1687-cc24-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1764311747; x=1795847747;
  h=date:from:to:cc:subject:message-id:
   content-transfer-encoding:mime-version;
  bh=8qZyt3CZWAQ5qPWBbL8LYbkrqhpxtmWCnfjm+sNMoFc=;
  b=P2cJ10OLYOqD4CXN8ZbAbGLI8gIm3i7zRXLYc4kDkh/o4t5IFcbYWulu
   xNoLXcAPJBqRUfRSBDB2QNvH7v/k11lHrUSKC7bf0HRZ5GCVdZsy2UFdd
   lISaKJUusf6moAOkRdP5Jv4bNll9V3uLEFTP3agzdpFaBEogK/UHGwnKZ
   353r/Z1SunTGw6wqzsgNlRcv10PYBB2hSfYK+avG9v4UStQBnFHOSUKpQ
   yVDIJHcBKkBRiUcoCqy7PB80aq658HCe+0sM6E9tikp0u6jF2AcSn1wlG
   qnt5x4i3leakJAdk1BUmy+Mt4+zlC3pbL8jr0/naJWqat3weL7e3L3aiq
   g==;
X-CSE-ConnectionGUID: ivZrJ/MBQGaDZLxUT84zuw==
X-CSE-MsgGUID: C5p1kAQRSIuVnHkegO1Ewg==
X-IronPort-AV: E=McAfee;i="6800,10657,11626"; a="77032236"
X-IronPort-AV: E=Sophos;i="6.20,232,1758610800"; 
   d="scan'208";a="77032236"
X-CSE-ConnectionGUID: 55w924TbSi2xKTiwRcLXHg==
X-CSE-MsgGUID: Y3lcWMV3Q/ifXM4paXEpOA==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.20,232,1758610800"; 
   d="scan'208";a="193397012"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ga7o5DEn7QkN1FJBdtpwk+5B1YI1EAHnKaq3yyXCc+135eKU+QDNqGUA4qCDs6VRj60QJGJJFv22/Dp19eiaQlUovIYW6KAk4U7ud7lXmkChnIauzklNK8a4eoWLI6Fg4IkZsaph8Mv6ZPbwXlwWzejryrgVPkdAvFtMNGPnOhijRPIHxGD+3ODp14cYwNIDRaHIF9C8kMBzFIRw8xiR6TQbbAtdWcR8IrFZ6+OgfMrXrEEuHeNOSVnbTTO+woD/7v0q0M7Dv+IpHXuDFr0QG3z9Sy/6g35Hn88KvefSKB2LcSZ8iEKOO4rW5X2vOB2n7E+u2R+WP7e7v5M875gZFg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=d1nsgm9Ip4cLSKTsrSxPlDpzB1LY49FqNU6arBPnfMc=;
 b=Pen/bIjPA0Bm5HWoG4aCQmKW6CtuDUxs0eDAzGh3fStFS1aDLZUzXQc6foOgABzLrWqfnvNo/KVwezUzOSTsHInfvHrDg6flQzs2f/ZfOA5gCsZYclOEH9ol332fS6EUpZM8vkSbMOKD5yJab6jzKwVrTDicbl5Oj75ibsgt4kSPUYRuaI1kpd1gsT56uI/ISOclzAIPAvVUPIgjkmjInccoLi5h4jx4ItKeNjU6pBJOQ+PkCchy3DG+tOaRDazAV6vmxiQq1Wxetvk228v6a4RXXUcd/M2jU7tb9Ig5HVz4cDKbGNHJ7JhXssTkoueCFy8OK0rtY9cF0dYtbK890A==
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: Fri, 28 Nov 2025 14:35:25 +0800
From: kernel test robot <oliver.sang@intel.com>
To: Thierry Reding <treding@nvidia.com>
CC: <oe-lkp@lists.linux.dev>, <lkp@intel.com>, "Rafael J. Wysocki"
	<rafael@kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<linux-samsung-soc@vger.kernel.org>, <loongarch@lists.linux.dev>,
	<linux-mips@vger.kernel.org>, <linuxppc-dev@lists.ozlabs.org>,
	<linux-sh@vger.kernel.org>, <linux-perf-users@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-hyperv@vger.kernel.org>,
	<linux-edac@vger.kernel.org>, <kvm@vger.kernel.org>,
	<linux-pci@vger.kernel.org>, <linux-acpi@vger.kernel.org>,
	<imx@lists.linux.dev>, <linux-rockchip@lists.infradead.org>,
	<linux-tegra@vger.kernel.org>, <linux-pm@vger.kernel.org>,
	<linux-gpio@vger.kernel.org>, <iommu@lists.linux.dev>,
	<linux-mediatek@lists.infradead.org>, <linux-riscv@lists.infradead.org>,
	<linux-sunxi@lists.linux.dev>, <linux-leds@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>, <oliver.sang@intel.com>
Subject: [linux-next:master] [syscore]  a97fbc3ee3:
 will-it-scale.per_process_ops 3.2% regression
Message-ID: <202511281432.47ac7e38-lkp@intel.com>
Content-Type: text/plain; charset="iso-8859-1"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: SI2PR02CA0013.apcprd02.prod.outlook.com
 (2603:1096:4:194::21) To LV3PR11MB8603.namprd11.prod.outlook.com
 (2603:10b6:408:1b6::9)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: LV3PR11MB8603:EE_|CO1PR11MB4915:EE_
X-MS-Office365-Filtering-Correlation-Id: 2eaf8dfa-bf1b-4ec4-fcee-08de2e48594d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014;
X-Microsoft-Antispam-Message-Info: =?iso-8859-1?Q?EFp53KH0HxNC2xm3JlGjU28j6rFzy4Ry+EC6UFfrhsBDDeVgTLBjZv3B9/?=
 =?iso-8859-1?Q?RYDolJOFxq7oQB+gE5KrQrwHhyp35gocjEUeVFQ+ZIIRh4ye4+QTZzCo22?=
 =?iso-8859-1?Q?wQNF3diApWO3r/NDLspxg7CKp+9eGVkTNsYHRAzkIB8gH7B5uVX1yN5YWW?=
 =?iso-8859-1?Q?YAQIQeCgW4ASS0nF2hXiOsJxATWZFNWlzMpQf/sIdRbQKDKl3P6aYIJEVZ?=
 =?iso-8859-1?Q?WCZa1Mzfzub58IKEqETQevjBRWE6pjuyI2UorpsqhPW/erMtJuvmYCpxkX?=
 =?iso-8859-1?Q?D5dIuVTB0O10l6eJXWT/IzhDSofBjUTQ8UwaLRhQGzUtFdxLO9WY2tj+pr?=
 =?iso-8859-1?Q?NFASEPudecC3Sh0+gBwlnUxwagxdG9EuuwuYvV38jaTw1l/CrXt51qD+zZ?=
 =?iso-8859-1?Q?9oQVlUcWVFOTcJSVmIfDnOVeCGdEq+lKZj3FP0J8434EiQK8OY4Um8H/fs?=
 =?iso-8859-1?Q?WTfU+8XLi07Bh6Z6wClmihd02fZUc+fGK75l2Z5HDGYlLW66Scbm9ATOpN?=
 =?iso-8859-1?Q?Qr37ZcbVflNN1KgIjy/4qsjX8eEfHdtj7fXB7XAHc+4KRl6x6MWYV8u02F?=
 =?iso-8859-1?Q?neMYZfXo4PPC5oJS7R2sKMMaP2gccgIwp/2qUxc/K3cjKK/Ziu08KyBJ/x?=
 =?iso-8859-1?Q?dXkzWO1RFoZQ+kf7r9k+2IZTHBUjQEl5tNvFgcLZrqk1RGe7BANWLLmxXH?=
 =?iso-8859-1?Q?OF/sHBMUx68cTVHEA7g21Sa5pwbIdLSXLXKZF0fs6buZmj/heHDSOCcQgv?=
 =?iso-8859-1?Q?VbHW7Tg/lAiWe5f/Jx9YMXZhBiLdvgVY0YKscf0mRjX5kgjQlEOoPM7dtH?=
 =?iso-8859-1?Q?GQiXWXAQ5bGrQRoslBs8jeBJGBe/aBkwVqslvY3cy4EHEOx+E8EjShMBkz?=
 =?iso-8859-1?Q?+BcVJNQ+cp++wIFr3ywYemqh9RIVOUNBKWBJf6bh2XQ51u1eS2yOtxTsQb?=
 =?iso-8859-1?Q?SZbYRMIO9nqmrlSAi486s5X5z+AvOwYsRG7OdkkPagqfh0Q80FU+HAoC4t?=
 =?iso-8859-1?Q?d81gH5mNjX9gi8rwG/2XUpLTxw9GeY1FGAxtU0v6IKdpzPJ9zeQ9qVvvsJ?=
 =?iso-8859-1?Q?GXvEKHhJgVdIq0HGMddNgVj28sLW7aSHZ8Q2Geu8spPAJg17oV2cvc6MFZ?=
 =?iso-8859-1?Q?Y4wPWkXGoC6fyvGXsH4ZFP24bBtRNUa8WgOao2RJbBtBKMzUFwPHdwpxP8?=
 =?iso-8859-1?Q?K9zbvhKKT6vdoh4uUomuu81LBQ6L5eSp+cqApWFPo+6TCFseaI2wRnuTk9?=
 =?iso-8859-1?Q?9GaDRV9IU4OA7GwgMjdAA+s1o/j9aa8zZZS1XgIS0NEcBrMYY2uKRpCwnX?=
 =?iso-8859-1?Q?j5sGbhfe9ZRkjNthSd7jDq19D20/5cxZa7xNtqDXCsEMlsvppS2zI5bzZ/?=
 =?iso-8859-1?Q?PjeiEubQl1K6/PoGCyGZ5ZKCFky+0pX4vaK4yEgw3bDgRj60aLJ5aRUdej?=
 =?iso-8859-1?Q?fQgYdTgzBciaoGu5901GUfIL7MHf5q5eVQAtctZQZ//oX3FSvk4OpaTzvP?=
 =?iso-8859-1?Q?Dkdl1oEdRrVhL92FGucaTaLuYaTLJuR7gAZx4zZ5iOvw=3D=3D?=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR11MB8603.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?iso-8859-1?Q?t6zuwfsmHUleIb4YtmoF7hxy3UNa5AB7p7MfI8FI/hyHjnVrrSZiQrgsQL?=
 =?iso-8859-1?Q?ZvN16y1qoJ1omfgQsPFUti+PzfrXGKX1NZBt0w/D/E9EGuJRRKP//mgr/A?=
 =?iso-8859-1?Q?YlQf6NbZKbpxwN14iEclA2HDi28ZJMQ39EaMNVBFIBya1tUfSwo0K6SBE3?=
 =?iso-8859-1?Q?x9jSkMdCz/u3C+jeRjcQ7PmvtihympDBB1ESg1qzYbeXoXnAsM2qB04+yB?=
 =?iso-8859-1?Q?K0XrmShmaIZvZflu201E16UzyjNcuXtdtF/pxJJ1dvKKV8vwTlSQKr9/u8?=
 =?iso-8859-1?Q?su5AeHDAt3cifUDc9Z0rr7roS/h4MgIhurP3BJvM/ZoLwS73h+L6015Y6Y?=
 =?iso-8859-1?Q?h+MOXwF+YB++ET25tKiFuRD7R0+tCMHgBIy+AogFZ4Xll1RqlO2DpKjKUT?=
 =?iso-8859-1?Q?3afSXNFxsbWSKboPSF77/Wr59onGY1VIyuAe2DuPWCaZkaHjVuP3MooftE?=
 =?iso-8859-1?Q?WSDNtt04Slw3QOF+YWfCEXR2q7ltjZnIEOtOGfbcIW22BARTxvJAOaOeRK?=
 =?iso-8859-1?Q?IBgTf/gbIEWDjyazrKR9TXnJCwkHuh0z9HTmUvzduxEksNM/kx9Ovb8/7E?=
 =?iso-8859-1?Q?GZAicig+JCvamUdNBWIQHPf9BZAQ5XFKvH8zlpj3pw6HYlLn7IrTV+i8X1?=
 =?iso-8859-1?Q?5Miw6NaapD8D8LlOvVrjTbRMAPZcsEJDMq6SaxTsTCJgHT6w+r2G4BvaJ+?=
 =?iso-8859-1?Q?ePgEVoAq2dOT5uYM2lgOE9qkkazAQYtgrcB/UGOQzrLl003XYHwybxZb3c?=
 =?iso-8859-1?Q?Z8Z5OhguV6TUoX2XzXQYz90suQkyALFBDvyBQlmlWWm5ZABUidvrOFU+Y7?=
 =?iso-8859-1?Q?3C+uz9KwJCJhvUt/CSag2o8G1fM/uLTCtAVpwaIMC5Is+icShWhOOmmQn0?=
 =?iso-8859-1?Q?2LUXJ9VQPfcq7xV6ZF/H4t1lqfRozlD+QyX9f3vO0pLDofW5AHUXg1wlWE?=
 =?iso-8859-1?Q?nSvKBzMzVj346se/68FIF1N5WR0cxrlOzoZZRASvzP0RiehxzFVon1aaj4?=
 =?iso-8859-1?Q?EXIke5mbC06Ls+nHsL2ftJ1azsHEvw3Y3IhkGDOR/O4ZNy+UKlpJaMV/JX?=
 =?iso-8859-1?Q?8mG3Kdq7RHURfKfEWvRczllSwj8EiuRGPah0EWk9TsrlUlZABKYU68ZIDa?=
 =?iso-8859-1?Q?SHDfN3LEF0lInz/ldbyCvuytGFk3YuGWCUou/f0wpWY9mBcN1KcTSGFbJk?=
 =?iso-8859-1?Q?O72Q4oOSRPzu4HGAJMhn3r8mUf0b7GsD7xM+7Ocqvsx6j6wK6ip2zdWBcB?=
 =?iso-8859-1?Q?H8GoJvlDDJxqEuorVS1E6QzI8T8rdjWXLOMzzSOlF2T1kJ/jz4f+PDhgrg?=
 =?iso-8859-1?Q?d17NieR+U8kb76X2Hy/ECsY/cl0CcX1rzS4DmPfjpEvI2UjRtoTXseSZt3?=
 =?iso-8859-1?Q?EHgQBh2fGSj7U+0thLy15pr9a8aS4a4PrfdDdwGoZWKgMtkr71HJEVP1Yk?=
 =?iso-8859-1?Q?BG0Aw8IqOjnes3JxFTDwnkAKyqkDUqReeuVUs+cbxCKaNJff/D262A0att?=
 =?iso-8859-1?Q?y9wxR/Mc3lcupg71Vlgu//UdePGJbMeg2SccXffSyr46MRiJ1wa8gRWna5?=
 =?iso-8859-1?Q?06Ps2FFYXsYUTZkFeMGyqbDhpPv8+aLkOIwzaePsLeNFUkHUlXpg92ntiR?=
 =?iso-8859-1?Q?QUR4IpVjc2gHF8cz2iyJMRuwqDI4adLEuykQnb+s1OwwSEAr1qhlPW1g?=
 =?iso-8859-1?Q?=3D=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 2eaf8dfa-bf1b-4ec4-fcee-08de2e48594d
X-MS-Exchange-CrossTenant-AuthSource: LV3PR11MB8603.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2025 06:35:40.5327
 (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: HmfS8NaE17GcvD65qsG/EMO5v0RPd+8DXn5Q8d8/qNCwZQg4j/mUxxx28bAjHkgpTLtwYChWWgPsGf5p0HRk9g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB4915
X-OriginatorOrg: intel.com



Hello,

kernel test robot noticed a 3.2% regression of will-it-scale.per_process_ops on:


commit: a97fbc3ee3e2a536fafaff04f21f45472db71769 ("syscore: Pass context data to callbacks")
https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git master

[still regression on linux-next/master ef68bf704646690aba5e81c2f7be8d6ef13d7ad8]

testcase: will-it-scale
config: x86_64-rhel-9.4
compiler: gcc-14
test machine: 64 threads 2 sockets Intel(R) Xeon(R) Gold 6346 CPU @ 3.10GHz (Ice Lake) with 256G memory
parameters:

	nr_task: 100%
	mode: process
	test: signal1
	cpufreq_governor: performance




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 <oliver.sang@intel.com>
| Closes: https://lore.kernel.org/oe-lkp/202511281432.47ac7e38-lkp@intel.com


Details are as below:
-------------------------------------------------------------------------------------------------->


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20251128/202511281432.47ac7e38-lkp@intel.com

=========================================================================================
compiler/cpufreq_governor/kconfig/mode/nr_task/rootfs/tbox_group/test/testcase:
  gcc-14/performance/x86_64-rhel-9.4/process/100%/debian-13-x86_64-20250902.cgz/lkp-icl-2sp7/signal1/will-it-scale

commit: 
  v6.18-rc1
  a97fbc3ee3 ("syscore: Pass context data to callbacks")

       v6.18-rc1 a97fbc3ee3e2a536fafaff04f21 
---------------- --------------------------- 
         %stddev     %change         %stddev
             \          |                \  
     71066 ±105%    +119.1%     155709 ± 64%  numa-meminfo.node1.AnonHugePages
     34.80 ±105%    +118.6%      76.08 ± 64%  numa-vmstat.node1.nr_anon_transparent_hugepages
      0.34            +0.2        0.52 ± 25%  mpstat.cpu.all.idle%
      0.01            +0.0        0.01 ±  3%  mpstat.cpu.all.soft%
    142.02 ±  5%     +20.2%     170.65 ±  9%  sched_debug.cfs_rq:/.runnable_avg.stddev
      7.16 ±  5%     +52.9%      10.94 ±  8%  sched_debug.cpu.clock.stddev
      1233 ±  4%     -22.2%     960.17 ±  8%  perf-c2c.DRAM.remote
      2429 ±  3%     -18.0%       1993        perf-c2c.HITM.local
      1010 ±  5%     -29.8%     709.00 ±  2%  perf-c2c.HITM.remote
   8382642            -3.2%    8118230        will-it-scale.64.processes
    130978            -3.2%     126846        will-it-scale.per_process_ops
   8382642            -3.2%    8118230        will-it-scale.workload
    285565            -1.6%     280908        proc-vmstat.nr_active_anon
     28063            +4.4%      29306        proc-vmstat.nr_mapped
    117169            -3.9%     112656        proc-vmstat.nr_shmem
    285565            -1.6%     280908        proc-vmstat.nr_zone_active_anon
     38231 ± 33%     -48.6%      19647 ± 35%  proc-vmstat.numa_hint_faults
     19706 ± 75%     -65.5%       6790 ± 15%  proc-vmstat.numa_hint_faults_local
 9.391e+09            -3.1%  9.102e+09        perf-stat.i.branch-instructions
      0.48            -0.0        0.45        perf-stat.i.branch-miss-rate%
  45545162           -10.7%   40674481        perf-stat.i.branch-misses
     11.08 ±  8%      -2.3        8.81 ± 12%  perf-stat.i.cache-miss-rate%
      1811            +6.2%       1922        perf-stat.i.context-switches
      5.09            +3.2%       5.26        perf-stat.i.cpi
    117.53            -2.1%     115.06        perf-stat.i.cpu-migrations
    216404 ±  2%     +86.7%     404107 ±  4%  perf-stat.i.cycles-between-cache-misses
  3.87e+10            -3.1%  3.752e+10        perf-stat.i.instructions
      0.20            -3.1%       0.19        perf-stat.i.ipc
      0.49            -0.0        0.45        perf-stat.overall.branch-miss-rate%
      5.10            +3.2%       5.26        perf-stat.overall.cpi
      0.20            -3.1%       0.19        perf-stat.overall.ipc
 9.361e+09            -3.1%  9.068e+09        perf-stat.ps.branch-instructions
  45428240           -10.7%   40562730        perf-stat.ps.branch-misses
      1806            +6.2%       1917        perf-stat.ps.context-switches
    117.13            -2.1%     114.62        perf-stat.ps.cpu-migrations
 3.858e+10            -3.1%  3.738e+10        perf-stat.ps.instructions
 1.166e+13            -3.0%  1.131e+13        perf-stat.total.instructions
     32.30            -6.5       25.85        perf-profile.calltrace.cycles-pp.get_signal.arch_do_signal_or_restart.exit_to_user_mode_loop.do_syscall_64.entry_SYSCALL_64_after_hwframe
     31.42            -6.4       25.04        perf-profile.calltrace.cycles-pp.dequeue_signal.get_signal.arch_do_signal_or_restart.exit_to_user_mode_loop.do_syscall_64
     30.28            -6.3       23.98        perf-profile.calltrace.cycles-pp.dec_rlimit_put_ucounts.__sigqueue_free.dequeue_signal.get_signal.arch_do_signal_or_restart
     30.32            -6.3       24.02        perf-profile.calltrace.cycles-pp.__sigqueue_free.dequeue_signal.get_signal.arch_do_signal_or_restart.exit_to_user_mode_loop
     37.60            -6.0       31.57        perf-profile.calltrace.cycles-pp.arch_do_signal_or_restart.exit_to_user_mode_loop.do_syscall_64.entry_SYSCALL_64_after_hwframe
     37.68            -6.0       31.66        perf-profile.calltrace.cycles-pp.exit_to_user_mode_loop.do_syscall_64.entry_SYSCALL_64_after_hwframe
     90.92            -0.5       90.43        perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe
     90.63            -0.5       90.14        perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe
      0.62            +0.0        0.65        perf-profile.calltrace.cycles-pp.check_xstate_in_sigframe.__fpu_restore_sig.fpu__restore_sig.restore_sigcontext.__x64_sys_rt_sigreturn
      0.72 ±  2%      +0.0        0.75        perf-profile.calltrace.cycles-pp.kmem_cache_alloc_noprof.__send_signal_locked.do_send_sig_info.do_send_specific.__x64_sys_tgkill
      0.67            +0.0        0.70        perf-profile.calltrace.cycles-pp.__fpu_restore_sig.fpu__restore_sig.restore_sigcontext.__x64_sys_rt_sigreturn.do_syscall_64
      2.54            +0.0        2.58        perf-profile.calltrace.cycles-pp.fpu__restore_sig.restore_sigcontext.__x64_sys_rt_sigreturn.do_syscall_64.entry_SYSCALL_64_after_hwframe
      1.15            +0.0        1.19        perf-profile.calltrace.cycles-pp.fpu__clear_user_states.arch_do_signal_or_restart.exit_to_user_mode_loop.do_syscall_64.entry_SYSCALL_64_after_hwframe
      1.78            +0.0        1.83        perf-profile.calltrace.cycles-pp.clear_bhb_loop
      0.56            +0.1        0.61        perf-profile.calltrace.cycles-pp.rseq_ip_fixup.__rseq_handle_notify_resume.arch_do_signal_or_restart.exit_to_user_mode_loop.do_syscall_64
      1.46            +0.1        1.51        perf-profile.calltrace.cycles-pp.__restore_fpregs_from_user.restore_fpregs_from_user.fpu__restore_sig.restore_sigcontext.__x64_sys_rt_sigreturn
      1.62            +0.1        1.68        perf-profile.calltrace.cycles-pp.arch_do_signal_or_restart.exit_to_user_mode_loop.do_syscall_64.entry_SYSCALL_64_after_hwframe.handler
      3.06            +0.1        3.11        perf-profile.calltrace.cycles-pp.restore_sigcontext.__x64_sys_rt_sigreturn.do_syscall_64.entry_SYSCALL_64_after_hwframe
      1.69            +0.1        1.75        perf-profile.calltrace.cycles-pp.exit_to_user_mode_loop.do_syscall_64.entry_SYSCALL_64_after_hwframe.handler
      1.91            +0.1        1.98        perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.handler
      1.88            +0.1        1.96        perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.handler
      0.96            +0.1        1.04        perf-profile.calltrace.cycles-pp.save_xstate_epilog.get_sigframe.x64_setup_rt_frame.arch_do_signal_or_restart.exit_to_user_mode_loop
      0.93            +0.1        1.02        perf-profile.calltrace.cycles-pp.__rseq_handle_notify_resume.arch_do_signal_or_restart.exit_to_user_mode_loop.do_syscall_64.entry_SYSCALL_64_after_hwframe
      4.46            +0.1        4.57        perf-profile.calltrace.cycles-pp.__x64_sys_rt_sigreturn.do_syscall_64.entry_SYSCALL_64_after_hwframe
      2.18            +0.2        2.35        perf-profile.calltrace.cycles-pp.copy_fpstate_to_sigframe.get_sigframe.x64_setup_rt_frame.arch_do_signal_or_restart.exit_to_user_mode_loop
      4.88            +0.3        5.14        perf-profile.calltrace.cycles-pp.handler
      3.66            +0.3        3.95        perf-profile.calltrace.cycles-pp.get_sigframe.x64_setup_rt_frame.arch_do_signal_or_restart.exit_to_user_mode_loop.do_syscall_64
      4.16            +0.3        4.50        perf-profile.calltrace.cycles-pp.x64_setup_rt_frame.arch_do_signal_or_restart.exit_to_user_mode_loop.do_syscall_64.entry_SYSCALL_64_after_hwframe
      0.00            +0.5        0.51        perf-profile.calltrace.cycles-pp.restore_altstack.__x64_sys_rt_sigreturn.do_syscall_64.entry_SYSCALL_64_after_hwframe
      0.00            +0.5        0.52        perf-profile.calltrace.cycles-pp.__get_user_nocheck_8.__x64_sys_rt_sigreturn.do_syscall_64.entry_SYSCALL_64_after_hwframe
     45.91            +5.3       51.19        perf-profile.calltrace.cycles-pp.do_send_sig_info.do_send_specific.__x64_sys_tgkill.do_syscall_64.entry_SYSCALL_64_after_hwframe
     46.73            +5.3       52.02        perf-profile.calltrace.cycles-pp.do_send_specific.__x64_sys_tgkill.do_syscall_64.entry_SYSCALL_64_after_hwframe
     47.27            +5.3       52.57        perf-profile.calltrace.cycles-pp.__x64_sys_tgkill.do_syscall_64.entry_SYSCALL_64_after_hwframe
     45.10            +5.3       50.43        perf-profile.calltrace.cycles-pp.__send_signal_locked.do_send_sig_info.do_send_specific.__x64_sys_tgkill.do_syscall_64
     43.31            +5.3       48.65        perf-profile.calltrace.cycles-pp.inc_rlimit_get_ucounts.sig_get_ucounts.__send_signal_locked.do_send_sig_info.do_send_specific
     43.39            +5.3       48.73        perf-profile.calltrace.cycles-pp.sig_get_ucounts.__send_signal_locked.do_send_sig_info.do_send_specific.__x64_sys_tgkill
     32.36            -6.5       25.90        perf-profile.children.cycles-pp.get_signal
     31.44            -6.4       25.06        perf-profile.children.cycles-pp.dequeue_signal
     30.29            -6.3       23.99        perf-profile.children.cycles-pp.dec_rlimit_put_ucounts
     30.33            -6.3       24.03        perf-profile.children.cycles-pp.__sigqueue_free
     39.26            -6.0       33.30        perf-profile.children.cycles-pp.arch_do_signal_or_restart
     39.38            -5.9       33.43        perf-profile.children.cycles-pp.exit_to_user_mode_loop
     93.64            -0.3       93.30        perf-profile.children.cycles-pp.entry_SYSCALL_64_after_hwframe
     93.28            -0.3       92.95        perf-profile.children.cycles-pp.do_syscall_64
      0.36 ± 11%      -0.1        0.25        perf-profile.children.cycles-pp.recalc_sigpending
      0.61 ± 11%      -0.1        0.50 ±  6%  perf-profile.children.cycles-pp._raw_spin_lock_irq
      0.43            -0.1        0.38        perf-profile.children.cycles-pp.fpregs_mark_activate
      0.44            -0.0        0.40        perf-profile.children.cycles-pp.complete_signal
      0.27 ±  5%      -0.0        0.23 ±  3%  perf-profile.children.cycles-pp.sysvec_apic_timer_interrupt
      0.25 ±  6%      -0.0        0.22 ±  5%  perf-profile.children.cycles-pp.__sysvec_apic_timer_interrupt
      0.25 ±  6%      -0.0        0.22 ±  5%  perf-profile.children.cycles-pp.hrtimer_interrupt
      0.25            -0.0        0.22 ±  5%  perf-profile.children.cycles-pp._raw_spin_lock_irqsave
      0.29 ±  5%      -0.0        0.26 ±  3%  perf-profile.children.cycles-pp.asm_sysvec_apic_timer_interrupt
      0.31 ±  2%      -0.0        0.28        perf-profile.children.cycles-pp.set_current_blocked
      0.05            +0.0        0.06        perf-profile.children.cycles-pp.fpu__alloc_mathframe
      0.06            +0.0        0.07        perf-profile.children.cycles-pp.__cond_resched
      0.20            +0.0        0.21        perf-profile.children.cycles-pp.syscall_return_via_sysret
      0.24            +0.0        0.25        perf-profile.children.cycles-pp.__get_user_nocheck_4
      0.39            +0.0        0.40        perf-profile.children.cycles-pp.entry_SYSCALL_64_safe_stack
      0.72            +0.0        0.74        perf-profile.children.cycles-pp.entry_SYSRETQ_unsafe_stack
      0.20            +0.0        0.22        perf-profile.children.cycles-pp.__get_user_8
      0.22 ±  2%      +0.0        0.24        perf-profile.children.cycles-pp.__put_user_8
      0.46 ±  3%      +0.0        0.48        perf-profile.children.cycles-pp.__memcg_slab_post_alloc_hook
      0.69            +0.0        0.71        perf-profile.children.cycles-pp.__fpu_restore_sig
      0.27            +0.0        0.30        perf-profile.children.cycles-pp.rseq_get_rseq_cs
      0.63            +0.0        0.66        perf-profile.children.cycles-pp.check_xstate_in_sigframe
      0.74            +0.0        0.77        perf-profile.children.cycles-pp.kmem_cache_alloc_noprof
      0.50            +0.0        0.53        perf-profile.children.cycles-pp.restore_altstack
      0.32            +0.0        0.35        perf-profile.children.cycles-pp.rseq_update_cpu_node_id
      0.36            +0.0        0.39        perf-profile.children.cycles-pp.__put_user_nocheck_4
      0.69            +0.0        0.73        perf-profile.children.cycles-pp.arch_exit_to_user_mode_prepare
      0.37            +0.0        0.40        perf-profile.children.cycles-pp.__put_user_nocheck_8
      2.06            +0.0        2.10        perf-profile.children.cycles-pp.__getpid
      0.66            +0.0        0.70        perf-profile.children.cycles-pp._copy_from_user
      2.55            +0.0        2.59        perf-profile.children.cycles-pp.fpu__restore_sig
      0.87            +0.0        0.91        perf-profile.children.cycles-pp.its_return_thunk
      1.21            +0.0        1.25        perf-profile.children.cycles-pp.fpu__clear_user_states
      1.48            +0.0        1.52        perf-profile.children.cycles-pp.__restore_fpregs_from_user
      2.39            +0.1        2.44        perf-profile.children.cycles-pp.clear_bhb_loop
      0.09 ±  4%      +0.1        0.14 ±  4%  perf-profile.children.cycles-pp.shmem_file_write_iter
      0.08            +0.1        0.14 ±  5%  perf-profile.children.cycles-pp.generic_perform_write
      0.00            +0.1        0.06 ±  8%  perf-profile.children.cycles-pp.shmem_get_folio_gfp
      0.10 ±  3%      +0.1        0.16 ±  3%  perf-profile.children.cycles-pp.perf_mmap__push
      0.00            +0.1        0.06 ±  6%  perf-profile.children.cycles-pp.shmem_write_begin
      0.58            +0.1        0.64        perf-profile.children.cycles-pp.rseq_ip_fixup
      3.08            +0.1        3.13        perf-profile.children.cycles-pp.restore_sigcontext
      0.10 ±  3%      +0.1        0.16 ±  4%  perf-profile.children.cycles-pp.record__mmap_read_evlist
      0.09 ±  5%      +0.1        0.15 ±  4%  perf-profile.children.cycles-pp.record__pushfn
      0.12 ±  4%      +0.1        0.18 ±  4%  perf-profile.children.cycles-pp.handle_internal_command
      0.12 ±  4%      +0.1        0.18 ±  4%  perf-profile.children.cycles-pp.main
      0.12 ±  4%      +0.1        0.18 ±  4%  perf-profile.children.cycles-pp.run_builtin
      0.11 ±  6%      +0.1        0.17 ±  5%  perf-profile.children.cycles-pp.cmd_record
      0.98            +0.1        1.06        perf-profile.children.cycles-pp.__get_user_nocheck_8
      1.36            +0.1        1.45        perf-profile.children.cycles-pp.native_irq_return_iret
      1.00            +0.1        1.09        perf-profile.children.cycles-pp.save_xstate_epilog
      0.95            +0.1        1.04        perf-profile.children.cycles-pp.__rseq_handle_notify_resume
      4.52            +0.1        4.64        perf-profile.children.cycles-pp.__x64_sys_rt_sigreturn
      2.27            +0.2        2.45        perf-profile.children.cycles-pp.copy_fpstate_to_sigframe
      3.68            +0.2        3.86        perf-profile.children.cycles-pp.handler
      3.68            +0.3        3.98        perf-profile.children.cycles-pp.get_sigframe
      4.21            +0.3        4.55        perf-profile.children.cycles-pp.x64_setup_rt_frame
     45.96            +5.3       51.25        perf-profile.children.cycles-pp.do_send_sig_info
     46.77            +5.3       52.07        perf-profile.children.cycles-pp.do_send_specific
     47.30            +5.3       52.60        perf-profile.children.cycles-pp.__x64_sys_tgkill
     45.18            +5.3       50.51        perf-profile.children.cycles-pp.__send_signal_locked
     43.40            +5.3       48.74        perf-profile.children.cycles-pp.sig_get_ucounts
     43.32            +5.3       48.66        perf-profile.children.cycles-pp.inc_rlimit_get_ucounts
     30.28            -6.3       23.98        perf-profile.self.cycles-pp.dec_rlimit_put_ucounts
      0.34 ± 12%      -0.1        0.23 ±  2%  perf-profile.self.cycles-pp.recalc_sigpending
      0.58 ± 12%      -0.1        0.48 ±  6%  perf-profile.self.cycles-pp._raw_spin_lock_irq
      0.31            -0.1        0.25 ±  2%  perf-profile.self.cycles-pp.complete_signal
      0.36            -0.1        0.31        perf-profile.self.cycles-pp.fpregs_mark_activate
      0.23 ±  2%      -0.0        0.20 ±  3%  perf-profile.self.cycles-pp._raw_spin_lock_irqsave
      0.20            +0.0        0.21        perf-profile.self.cycles-pp.arch_do_signal_or_restart
      0.07            +0.0        0.08        perf-profile.self.cycles-pp.collect_signal
      0.40            +0.0        0.41        perf-profile.self.cycles-pp.__getpid
      0.20            +0.0        0.21        perf-profile.self.cycles-pp.syscall_return_via_sysret
      0.23            +0.0        0.24 ±  2%  perf-profile.self.cycles-pp.__get_user_nocheck_4
      0.15 ±  2%      +0.0        0.16 ±  2%  perf-profile.self.cycles-pp.__x64_sys_rt_sigreturn
      0.26            +0.0        0.28        perf-profile.self.cycles-pp.kmem_cache_free
      0.10            +0.0        0.11 ±  4%  perf-profile.self.cycles-pp.signal_setup_done
      0.70            +0.0        0.72        perf-profile.self.cycles-pp.entry_SYSRETQ_unsafe_stack
      0.18 ±  2%      +0.0        0.20        perf-profile.self.cycles-pp.__get_user_8
      0.21 ±  3%      +0.0        0.23        perf-profile.self.cycles-pp.__put_user_8
      0.25 ±  3%      +0.0        0.27 ±  2%  perf-profile.self.cycles-pp.__memcg_slab_post_alloc_hook
      0.47            +0.0        0.49        perf-profile.self.cycles-pp.get_signal
      0.52            +0.0        0.55        perf-profile.self.cycles-pp.its_return_thunk
      0.37            +0.0        0.40        perf-profile.self.cycles-pp.get_sigframe
      0.34            +0.0        0.37        perf-profile.self.cycles-pp.__put_user_nocheck_4
      0.31            +0.0        0.34        perf-profile.self.cycles-pp.rseq_update_cpu_node_id
      0.34            +0.0        0.38        perf-profile.self.cycles-pp.__put_user_nocheck_8
      0.37 ±  2%      +0.0        0.41        perf-profile.self.cycles-pp.save_xstate_epilog
      0.64            +0.0        0.68        perf-profile.self.cycles-pp.arch_exit_to_user_mode_prepare
      0.64            +0.0        0.68        perf-profile.self.cycles-pp._copy_from_user
      0.53            +0.0        0.57        perf-profile.self.cycles-pp.x64_setup_rt_frame
      1.46            +0.0        1.51        perf-profile.self.cycles-pp.__restore_fpregs_from_user
      2.36            +0.1        2.41        perf-profile.self.cycles-pp.clear_bhb_loop
      1.00            +0.1        1.06        perf-profile.self.cycles-pp.fpu__clear_user_states
      0.94            +0.1        1.01        perf-profile.self.cycles-pp.__get_user_nocheck_8
      1.36            +0.1        1.45        perf-profile.self.cycles-pp.native_irq_return_iret
      1.45            +0.1        1.55        perf-profile.self.cycles-pp.copy_fpstate_to_sigframe
     43.32            +5.3       48.66        perf-profile.self.cycles-pp.inc_rlimit_get_ucounts




Disclaimer:
Results have been estimated based on internal Intel analysis and are provided
for informational purposes only. Any difference in system hardware or software
design or configuration may affect actual performance.


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



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 06:53:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 06:53:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174504.1499461 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOsLo-00026D-GE; Fri, 28 Nov 2025 06:53:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174504.1499461; Fri, 28 Nov 2025 06:53:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOsLo-000266-De; Fri, 28 Nov 2025 06:53:04 +0000
Received: by outflank-mailman (input) for mailman id 1174504;
 Fri, 28 Nov 2025 06:53: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=z/8R=6E=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOsLn-000260-It
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 06:53: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 e13903fe-cc26-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 07:53:01 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4775ae77516so15670705e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 22:53: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-4790adc6f7bsm141639705e9.2.2025.11.27.22.52.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 22:52: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: e13903fe-cc26-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764312780; x=1764917580; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cvrNGGsVlHFYpn6l6PE0avSFICAA5/4pl01G6mDSBSE=;
        b=PUJNFjPSAT/6FETiTtm0G7EAKkMnNJ8g5FDRLI8qSNnV15JMI0yhtG+If7DbTCWAH2
         Szu0L4Kt282YmK178qMhHaDveCDhVJ9oiEvlNoa2MuJaK1Ae9El7ao0zw7vXn4WEliJL
         ieT/rAhF7ZFA0Nhi3k3kMHutbFcPXBFQI0dTOm2wYROQxdiwi2fnWxsv9xepnSuufmK/
         yxcUX4e7mfThPmPeurNCo6w56diDwtdYhkZvUwJPxB8OxG4Lz17ZKygbTBlMZDAut4S4
         7h0Sq2a5bT8qsw0pyU/jseg3LzJjJLtC/zhhUW/bmtd8JP+mRLtgf5vRGAcmHZQhlgm6
         XX0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764312780; x=1764917580;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cvrNGGsVlHFYpn6l6PE0avSFICAA5/4pl01G6mDSBSE=;
        b=w0m4FCNZJAfW/ZoA7NWVjGneN1cnAaLe3Ytw/iXyQFjTKbXZ/TRrsAYmXxHICgSmkU
         S+VJPjjn2gg2XVmeM5LO6hnxVCBCIeMYaQMccZrsfE1yXfcd2cpzlpWVmL0Cw17xLL6+
         v1asTgDKTGO7ScL0YNk5G0fxQSE+UIgkjpaIiYPBoZ7KTPWby7ah65FREuUXb58pAEsV
         2bogjyT/aSzwpzUYM/HS+BbiXPfjW3Pm10rUZkCOCYtfMprJBgkuD/dls3ib52kQ1eC7
         1FutId16beDyXUc8bWZTrJ7YV2NZKD+M5tzXaooKPqPsc10zBSdc3kb5OAH8gheavtDy
         gm/g==
X-Forwarded-Encrypted: i=1; AJvYcCXXE3g4Y6B8yJ/yOAZCHHo66k2v2xdtrp7gTf409/UIPoJeQiXS5hbcX3H2wd36YUvkpI5UCTBUfzQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzXcRmIx0jbr3m8N/aN1rHKAAU2TvIfTsIDCsQkUapUdeuw7dtY
	rIatm04MnlLmWjp42Oaq3DKyJZyW9yC0GLh2ZYW0Cgf1tcyAdjjR0GArUMGjN542Yg==
X-Gm-Gg: ASbGnctMsxuX9uACjdAm3de4jKPxVFlWvTLieThfigHshN7EJPy0eNY50QiP2b1VWl9
	XiVLwEjnO36SIhye/uRXX91Xm+LgxqeIg7Qb4lIZfFGMPPB1hbfs5L9QeEnPjfiAXBRQQaWNZhG
	Vh6ovGCWIvb3vO6/nYtJj6Abcv4FyBXtoytDv89i7pTxslAyh5tFxJPcWtn5Sl7RtbhtZrQB5yy
	joHkUvBSR49G0UqszfRM5kaRlGCj4o8FCs5HZxH3vFTXouOzxMgUx7Qo/E5KKDk79HjEADF9aec
	CPUfh/leS3okG1O51ggPgyFQxMfUTBBD0pGIt35hH8+tQme5ajJb2vi/37dzeGSoLx/trRPQL+v
	xFgitJwywhqhABEU6ktRPOLuq8CKYp7XdWxpvwiqGi/BJcuobKyKPrzoxAVqI/8ggREtqmEBkGD
	Z0M2epc0t9N+ut9R+K8Km6GKpJaWuwmqQm8NUIajIkJlD3F5AwDH3MV+Le8YickGkc3UMiStjEr
	8r4nCryWWXfMQ==
X-Google-Smtp-Source: AGHT+IEKe7kQMRzO0VtSreEcKT3OKB5nPnlceQ8ayLCmtl5Bttn/s/NL0/M6rQg1bE61h7wzRO2Z/Q==
X-Received: by 2002:a05:600c:474a:b0:477:b0b9:3137 with SMTP id 5b1f17b1804b1-477c10c8886mr262484815e9.1.1764312780348;
        Thu, 27 Nov 2025 22:53:00 -0800 (PST)
Message-ID: <57e4e4a8-3ab1-4c7d-8316-e3e3a1848a04@suse.com>
Date: Fri, 28 Nov 2025 07:52:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1' 8/8] symbols: check table sizes don't change between
 linking passes 2 and 3
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <bd689f02-3e6b-4d15-aa1d-d757a9ee54a8@suse.com>
 <94f993b2-93f4-43a5-a502-da53b810b201@suse.com>
 <cd3bcac3-8889-4300-a488-b84963391c01@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: <cd3bcac3-8889-4300-a488-b84963391c01@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.11.2025 20:31, Andrew Cooper wrote:
> On 26/11/2025 1:48 pm, Jan Beulich wrote:
>> --- a/xen/scripts/Kbuild.include
>> +++ b/xen/scripts/Kbuild.include
>> @@ -56,6 +56,19 @@ define filechk
>>  	fi
>>  endef
>>  
>> +###
>> +# Compare the symbol tables of two object files.  As diff's -I option isn't
>> +# standardized, the name difference of the two object files needs abstracting
>> +# out.
>> +define compare-symbol-tables
>> +    ln -f $(1) $(@D)/.cst.$$$$; \
>> +    $(OBJDUMP) -t $(@D)/.cst.$$$$ > $(1).sym; \
>> +    ln -f $(1) $(@D)/.cst.$$$$; \
>> +    $(OBJDUMP) -t $(@D)/.cst.$$$$ > $(2).sym; \
>> +    rm -f $(@D)/.cst.$$$$
> 
> Doesn't the second link want to be `ln -f $(2)` ?
> 
> It looks like this is comparing $(1) to itself.

Ouch. Now I'll be curious if with this corrected I still see this pass
successfully.

>> +    diff -u $(1).sym $(2).sym
>> +endef
> 
> While I am generally in favour of build time checks, this looks like
> it's a large overhead?

I don't think it's really noticeable in the overall link time, considering
how slow especially the xen.efi linking is.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 07:49:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 07:49:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174514.1499471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOtEV-0000Xa-Cp; Fri, 28 Nov 2025 07:49:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174514.1499471; Fri, 28 Nov 2025 07:49: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 1vOtEV-0000XT-AL; Fri, 28 Nov 2025 07:49:35 +0000
Received: by outflank-mailman (input) for mailman id 1174514;
 Fri, 28 Nov 2025 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=z/8R=6E=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOtEU-0000XN-Cf
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 07:49:34 +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 c6a774ca-cc2e-11f0-9d18-b5c5bf9af7f9;
 Fri, 28 Nov 2025 08:49:32 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-477b5e0323bso14627285e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 23:49: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-4790b0c3a1dsm140314155e9.10.2025.11.27.23.49.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 23: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: c6a774ca-cc2e-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764316172; x=1764920972; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wSS3l+8BtbiRHnyLZ80a43CeTYbtZb0p2rdsoiclJmk=;
        b=QW7aMcFgVNAcujGmpcPkIWEsk6hY6bWds2yV9fGkyQCFWm9al5ldkHxdmhUksjW1GV
         QLr02YhYA1oWCGDztwvpCwQ1KN4DR06WxoPCf/lo+3Bb3IX+bOZ8wUpJJ0x+biu4LEsa
         cSCBXZb+LQTpCFc530z/pnb4iBvVsMFZsqMW2Y7haRjmfFOLBhdKgl7O/c4T+Cb0hMC+
         8VpkfN/Op41Ni+Vs8VbROq8+SjUVTvME/H53ypkjycXfPKNdsteqLvwbf1pRIK4RcTnI
         au2sgPttScv1lu+WwJQsRhMyr3EOoj+BbCA/ZXsRphZTXT2hqzpQP4IOGBpuqiA5UdeD
         T33g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764316172; x=1764920972;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wSS3l+8BtbiRHnyLZ80a43CeTYbtZb0p2rdsoiclJmk=;
        b=welQcLUMpfkhJIYvXtR9PxxucsqdVhubC85MtzMA88ZTM99Ek9X111eDVDIzNNpVw1
         EdXWdFiK8TnEu5fBF1UzO4f9KGCHxXsh3NydJ59hnYx7q+aw1sOLCvEMs2zasTFflDee
         Ka2SFqK9tJzjY3/vBE/SrjzNuwK9oJAN3dX67+9+C9Yrh6qlIflwwPnc15W8kXJJ0BiK
         t8fdsj82PmtnzFTgr8AVgZqwPOFcQjCgbKOwW/XP2r0pcjOx4YiGXeeGEorEjCbgnuJQ
         1uVbBnWB3/LUx7NQEe660+Bly1qhMQuvYuZatgXdGE1EFVRWFjrXbSQJhVYI/GLjcqai
         TkQA==
X-Forwarded-Encrypted: i=1; AJvYcCWQk77d+1YMYoiJNFfP7be96N3lRllulVcFukeaDzjY+/k4G1Ah4fdD/O2d2OxX1Fq/JyOgLE2Q6qI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxqMyyTbpV6uhS6xiMYLzk21vSy+5JSrJp1nGUWFJqYJ56COmHD
	KFFbXjCSCrHL0dCsGD8XXh2kcTLI388kJi4CAcAykCdLC1jnoylVsOCEL/S9xGi67A==
X-Gm-Gg: ASbGnct3Q9+Zinj2hSOIM7Hf29Va8VrdPMjoyCV60sbxc2LjuPiGEj0ofmSbxfhe2Ou
	2DjRknLAlkUu1X681EKJcuWOSJoPrHScJLVCKfqrRDky0GA0svHf9igW2b1YRX1ibbgr5FAqqo0
	dMxv7A2yaoydrq57FGFMf246qGZkQ76zhXjzLZDfoW9nDaLQeEIxXLx0kkbKoY3Fha9H6J1xeJa
	sgMojPEBLLsUZs+5Z84nHoJRzynzONiM4Hh14g20cpMo63r5qiUH+ewHzMT++f5eLsuXMdlJjuD
	YiQ9tuwqmNhOjSZACBqOq91eJ30ymbJVn/6MDTUcxEixhlzrnM59hNykFT263N0+GcIWJSloDY2
	mfM4fLBnQ40MJog64A/YzCsczcWbcUFmBi9yqhozurFv5tb9vno8qcjvhVb1++E80p057X/mE7k
	/MZ6cWkZXuTMHwTq1CnqcU5rM9Z7f2jUK8fkrmlM1mScKVkDTndjce5Rn4SEGR7u6BD0esnO5kg
	yA=
X-Google-Smtp-Source: AGHT+IGfwZ2Wnso0uN/sn5jA3I3M3KICADkZjpKWd5MKu+pT+aTRvlJA8kJd1vOZSIeGh0RKt1ro1w==
X-Received: by 2002:a05:600c:1c1f:b0:477:9e0c:f59 with SMTP id 5b1f17b1804b1-477c04c2011mr317117285e9.2.1764316171713;
        Thu, 27 Nov 2025 23:49:31 -0800 (PST)
Message-ID: <a00502ed-d3dd-43cb-a092-06208e416beb@suse.com>
Date: Fri, 28 Nov 2025 08:49:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1.9 3/3] x86/amd: Fix race editing DE_CFG
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: <20251126132220.881028-4-andrew.cooper3@citrix.com>
 <20251127171843.943378-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: <20251127171843.943378-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.11.2025 18:18, Andrew Cooper wrote:
> We have two different functions explaining that DE_CFG is Core-scoped and that
> writes are racy but happen to be safe.  This is only true when there's one of
> them.
> 
> Introduce amd_init_de_cfg() to be the singular function which writes to
> DE_CFG, modelled after the logic we already have for BP_CFG.
> 
> While reworking amd_check_zenbleed() into a simple predicate used by
> amd_init_de_cfg(), fix the microcode table.  The 'good_rev' was specific to an
> individual stepping and not valid to be matched by model, let alone a range.
> The only CPUs incorrectly matched that I can locate appear to be
> pre-production, and probably didn't get Zenbleed microcode.
> 
> Rework amd_init_lfence() to be amd_init_lfence_dispatch() with only the
> purpose of configuring X86_FEATURE_LFENCE_DISPATCH in the case that it needs
> synthesising.  Run it on the BSP only and use setup_force_cpu_cap() to prevent
> the bit disappearing on a subseuqent CPUID rescan.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
with one more request towards commentary:

> +void amd_init_de_cfg(const struct cpuinfo_x86 *c)
> +{
> +    uint64_t val, new = 0;
> +
> +    /*
> +     * The MSR doesn't exist on Fam 0xf/0x11.  If virtualised, we won't have
> +     * mutable access even if we can read it.
> +     */
> +    if ( c->family == 0xf || c->family == 0x11 || cpu_has_hypervisor )
> +        return;
> +
> +    /*
> +     * On Zen3 (Fam 0x19) and later CPUs, LFENCE is unconditionally dispatch
> +     * serialising, and is enumerated in CPUID.
> +     *
> +     * On older systems, LFENCE is unconditionally dispatch serialising (when
> +     * the MSR doesn't exist), or can be made so by setting this bit.
> +     */
> +    if ( !test_bit(X86_FEATURE_LFENCE_DISPATCH, c->x86_capability) )
> +        new |= AMD64_DE_CFG_LFENCE_SERIALISE;
> +
> +    /*
> +     * If vulnerable to Zenbleed and not mitigated in microcode, use the
> +     * bigger hammer.
> +     */
> +    if ( zenbleed_use_chickenbit() )
> +        new |= (1 << 9);
> +
> +    if ( !new )
> +        return;
> +
> +    val = rdmsr(MSR_AMD64_DE_CFG);
> +
> +    if ( (val & new) == new )
> +        return;
> +
> +    /*
> +     * DE_CFG is a Core-scoped MSR, and this write is racy.  However, both
> +     * threads calculate the new value from state which expected to be
> +     * consistent across CPUs and unrelated to the old value, so the result
> +     * should be consistent.
> +     */
> +    wrmsr(MSR_AMD64_DE_CFG, val | new);

The reason this isn't at risk of faulting when potentially trying to set a
reserved bit would better be at least briefly mentioned here, I think. Yes,
logic above tries to eliminate all cases where either bit may be reserved,
but we're still on somewhat thin ice here.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 07:59:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 07:59:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174524.1499482 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOtOG-0002Hv-AD; Fri, 28 Nov 2025 07:59:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174524.1499482; Fri, 28 Nov 2025 07:59:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOtOG-0002Ho-7e; Fri, 28 Nov 2025 07:59:40 +0000
Received: by outflank-mailman (input) for mailman id 1174524;
 Fri, 28 Nov 2025 07:59: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=z/8R=6E=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOtOE-0002Hh-Bi
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 07:59:38 +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 2e7fef35-cc30-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 08:59:36 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-477a219dbcaso12913105e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 27 Nov 2025 23:59: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-4790b0cc39csm143084085e9.14.2025.11.27.23.59.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 27 Nov 2025 23:59: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: 2e7fef35-cc30-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764316775; x=1764921575; 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=6cYXkCxwds7AF/ksIpqi8jVejz3Y99uODHetY6ZuE68=;
        b=EKj13LhIJS2SJ+5FK6f3/8qlbJe/z2yjwpLG0ji19rTKNo/nT1c8LtW4Wroc2VvO64
         BIK7MaRnVkaaqhzPlBlvDCzOUlmpzVvW5wNlcfRdyltMTmJBVwZlHkaPLjeIcayA/RY6
         EEegmuowxCsWByzh+n3lQCC08QnPZq8sJt+ELsEp4gvH/3WjKMbZcWb/zRRTFhS0dBHm
         EZx5dZaIQJMBW0aRHCHWxEzSIYET43jA3tv/HIz4gm5mDCGLG7gH3ouWsq8XrcS1zzVi
         d31+ohgMOQLpgF2ESQ32feEYVQzEMtlURi2xlmKUlp+1+/EbdYqx1OHthe8EmM5xEHNN
         zviw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764316775; x=1764921575;
        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=6cYXkCxwds7AF/ksIpqi8jVejz3Y99uODHetY6ZuE68=;
        b=HVDvxgsNRd2Mtni3nw8TLSRr2eA1GFsWdhrJBmYpMIglwAEoA7C4um15jnzfqyvr6L
         mqh7wTJO7I/mStKWTubZvd5qKXMEi8HjeoFA8OtgDWPAYdvhWwCLRneZEEQ8c0S9lgul
         EuO1UqVLJI9jEk3ZIJeISbM1VBpz6mlJ05/NAgXDmKuVU34BaKol+RX1PIocRlinA+qb
         hYGjxYgaP5QFpf2lqMsUap/1rY7AoTREyYFNse9QEXbbmz+wMV+uXOJaWSjkAf+oz3m+
         JSzI5ZeQ0B2pM6QA0uqCriX4nqqPubxbmeMf4GlNm2Fbvqw6ATxb0cJAdix/0AYyvlOa
         8uDg==
X-Forwarded-Encrypted: i=1; AJvYcCVRBggO6rQ8nx+Z2YlCC6lqljn56AIBj2cKYyTy4ZeyD0i2SjIiY2EkgrgM6tYNviDBLA9RGgtuj3I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzvDjZHRhdRYjLw4I1F2SHPQpXAIzHJGZM/MtPl38w4DJo+UkB+
	wqwuwfTUnMjfGonj8QGer2ngu5yNn6oWhfoudu1jlPzzI6XKcJIX+ZcgZyKZ6dPIgw==
X-Gm-Gg: ASbGncu1aOzfUZn7QoB3X8YkqRMb7iFtzdL0CDsIXpm8xi5s3JJavlpF3F3shtHSafm
	QfZAy9JekHraBIeVjzhB+53MDlUZ/YEkWhuPAaxjVVqbPsFbuB2su8zV6De3/qyDzkofq99Zl92
	hwIaYr9FAvKH/UUcwJ6ghxu//+ti1ztQB/0zmgqwQUdnbkNTdZGcS/p3aGgBltUY6jj1cVZHm+V
	ema/5/Q6yiMzdnXckeZs/Y59GKuQwGj6XJeBhqOs4byTM2H0WGUfhmqZPvtJbn8GThDoZ56dwH6
	9rSa+8grAXyYYe8veQpCZN2Ggtf0lPOhtlTdVtAdxM6NWgWtfyJJ/jauqrt5+egsdglPxsI5OMi
	QiLuPAcMs1FwC5a7ZgOybTeN0FZRv9wHfQC7dtGSQL2DConOC4izdI71ZLeRlKTlkAVCmtxe/YA
	Hs4nm6Owhuv3PDsFPIQCOlp2pOp8gtEamdu4LM7K1OTCcRxDEDP5PY4YFlvwWAHYV4aPVhkvZse
	Y4=
X-Google-Smtp-Source: AGHT+IFiVJKHUM1IU2T5YsI9MGRL7Z74diQXksji8MjoVPDidemcc3dx1vmyoqjQZHxgcSjN7uFIfg==
X-Received: by 2002:a05:600c:1909:b0:477:b642:9dc6 with SMTP id 5b1f17b1804b1-477c020137fmr263651435e9.34.1764316775416;
        Thu, 27 Nov 2025 23:59:35 -0800 (PST)
Message-ID: <f5821053-b89c-4323-97e5-296cc928910f@suse.com>
Date: Fri, 28 Nov 2025 08:59:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
To: Andrew Cooper <andrew.cooper3@citrix.com>
References: <20251127221244.3747918-1-grygorii_strashko@epam.com>
 <20251127221244.3747918-4-grygorii_strashko@epam.com>
 <26f448be-4a7f-4346-928f-8185ca8ba222@citrix.com>
Content-Language: en-US
Cc: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <26f448be-4a7f-4346-928f-8185ca8ba222@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28.11.2025 00:09, Andrew Cooper wrote:
> On 27/11/2025 10:12 pm, Grygorii Strashko wrote:
>> diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
>> index 17ca6666a34e..128115442ecc 100644
>> --- a/xen/arch/x86/include/asm/mm.h
>> +++ b/xen/arch/x86/include/asm/mm.h
>> @@ -619,9 +619,11 @@ void __iomem *ioremap_wc(paddr_t pa, size_t len);
>>  
>>  extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int pxm);
>>  
>> -void domain_set_alloc_bitsize(struct domain *d);
>> -unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bits);
>> +#ifdef CONFIG_PV32
>> +unsigned int domain_clamp_alloc_bitsize(const struct domain *d,
>> +                                        unsigned int bits);
> 
> Do not convert this, or any other domains/vcpus you see, to const.Â  I
> realise you have been given conflicting information on this point, but
> the maintainers as a whole agreed to not const pointers to complex
> objects in the general case because of the churn it creates, and the
> repeated examples of MISRA violations people have inserted to work
> around the fact it shouldn't have been a const pointer to start with.

While moot here when indeed converted to a macro, as you suggest below,
I don't recall "maintainers as a whole agreed" on this. For one there
are predicate-like functions where I think even you agreed their
parameters can be pointer-to-const. The case here isn't very far from
predicate-like, in particular ...

> That aside, I think clamp wants to be a static inline here.Â  (Except it
> can't be, so it needs to be a macro).
> 
> It's currently a concrete function call to very simple piece of logic,
> where the callers have options to eliminate it entirely in the d = NULL
> case if they could only see in.
> 
> #define domain_clamp_alloc_bitsize(d, bits)Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
> Â Â Â  (((d) && (d)->arch.pv.physaddr_bitsize)Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
> Â Â Â Â  ? min_t(uint32_t, (d)->arch.pv.physaddr_bitsize, bits) : bits)

... this representation alone demonstrates that what d points to is only
ever read.

Yes, there are cases where the situation is more complex, and where I can
see how my pov may not be shared by others. Yet still - can you point me
to a written form of the supposed agreement among maintainers? Imo
something like this, which has been controversial for a long time, really
needs recording in ./CODING_STYLE or docs/process/coding-best-practices.pandoc.
And then preferably in a shape acceptable to everyone (i.e. no outright
"never").

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 08:01:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 08:01:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174536.1499492 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOtQR-0004VM-Ow; Fri, 28 Nov 2025 08:01:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174536.1499492; Fri, 28 Nov 2025 08: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 1vOtQR-0004VF-M9; Fri, 28 Nov 2025 08:01:55 +0000
Received: by outflank-mailman (input) for mailman id 1174536;
 Fri, 28 Nov 2025 08:01:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z/8R=6E=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOtQQ-0004V9-4F
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 08:01:54 +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 7f8d8018-cc30-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 09:01:52 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-477b198f4bcso10124875e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 00:01: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-42e1c5c302esm8084811f8f.5.2025.11.28.00.01.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 28 Nov 2025 00:01: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: 7f8d8018-cc30-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764316911; x=1764921711; 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=GofCvdHTYm1fig0RwHSOy/pUnuheBVDTaE+KLpXbpKI=;
        b=MWi5JvrMiNbTDYm0oHTLrbbVovnICIZPCMGBWn7T0SxvK10Lel8TxRXiqjjXhkPtpn
         w0h+mGViNsvgB/wzy9t8u5Bo76dlplu6d1vaTVL2cbHI3jnxe9MBzBhtliwmE+z0Pvt0
         nozfXutVFY7tLVhfy/3fOxwaMqAcmdWjX2REM4vBY5LftKGJq2C0nkoulFujELD4V46B
         W1VLH040y81IaEKXdvkvjhXYKFgQU63TTmR6Al+pU7MQY6pwOouQ+Cv2cqJezbymyLqm
         DhwoyKUOP+Ci3yCWCsOijSxgjaEUPQQIkJeC+NfgCj34mrRkC+Qu8Bmvo8ax5nXEEnPj
         V7BQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764316911; x=1764921711;
        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=GofCvdHTYm1fig0RwHSOy/pUnuheBVDTaE+KLpXbpKI=;
        b=a7TLmyeqgRNfnFstI+8sjLECak06EDGu8hXGt0DKFCll3CL7UVGzz/JMTVw/3LDPaD
         cuiIwILXTcigE2Sx2hRHxa3thi1oVv3feRHg0yQK1h+mSTrh6XOFHQa8PCtPHIQT5ZYt
         6I2kO8JRLJ2FuWPJCM0L4vFOwZlGemJrph6nwIINOnZK4k/X09Ba6IT7sImxjCivefG8
         5EbJiGN0Nd/RmpMrjaa9YrEPrAejQ+mphG1EOH4SCxfFa2PSWzzvqPS+xd7Mn4rO4Rb7
         kzDTO4bHM7ElGgJ+uSfTybEjxUvSjuvcjnVSuDU3SoILHLXmGVn0h9hAqud9INNsWalg
         GcZg==
X-Forwarded-Encrypted: i=1; AJvYcCXOn8h/O1oJJrgK0rrRHRn0QMNq6vXxNP7qO5SKRwfQIwuoFlDzRzj3bELwPaJtrA432rEgXV7pGXw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZxQFzvO4Lt1yczk+KQiLiPMObB4NH7ovSiJmg+PFug0zMRir+
	Zk+VCRWX+OQhqTY6fMPCgfYvet6eSaaw99U/TNHmX8Hwf9GMYw/3pJfCDIK61p+yBdzMiik7G1d
	xnG0=
X-Gm-Gg: ASbGnct474Zzo73zNHU44og0fEygpviYgZRWZ1inUuV6lUpZ2MfPLvzBRLt9m7nRESJ
	YwFi7DnKLq3GugDQA8qgovNGk/zsvTRytsbt7/8K8i78CKBp0j+T+UJJEa4t6IIHyWHH1A/BAAa
	b/uiewr/4GGHoKb7OYj0i4CIN0HXNZHpmPWmPXnB6Nc6jqdPjRiPpMs5A1mb/ThYwnK570Xp9LS
	7ZVL4uU2oJ/hVHSMGadoH4vmfrFa4rkbBLH8YU8XFpxMqczgBnpkF/+fyWRCoMpPOq3S0OK94Ud
	QhoIbLDU0bFhy0tOnsLUuHkuVgma0yQZ8CE5gwDSUQzuJGSDRHbyl8F3e0yMOrFBR5NYc5tFSOv
	CNBGDPnGjjkNKyb4tfWaLx7uhdcOjN+PPJc/+Nmj0YcwvyVZc8Ldg4bC1eorMYU2rUGSvJIYWFC
	PDK9Lp+Yz54UU6k/B4EPmBI96k57/ItMLhhe1BOXGoA0S3kKOfPkkHEjYoWhoDUgJveYeKpOPNR
	IM=
X-Google-Smtp-Source: AGHT+IFpV3HijyjScgIb2xp1kC85EBuaUKvsi8lfucpi9f5mK6vwpLo/ybjSpUuWVlcCcwxXG2HFEg==
X-Received: by 2002:a05:600c:1ca0:b0:477:75eb:a643 with SMTP id 5b1f17b1804b1-477c0165b4emr313760915e9.4.1764316911404;
        Fri, 28 Nov 2025 00:01:51 -0800 (PST)
Message-ID: <ab1c6b15-40c4-4c50-b539-ce1e9f36d968@suse.com>
Date: Fri, 28 Nov 2025 09:01:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/3] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
To: Andrew Cooper <andrew.cooper3@citrix.com>
References: <20251127221244.3747918-1-grygorii_strashko@epam.com>
 <802d2971-4cc0-46c1-bc24-4ec15c712118@citrix.com>
Content-Language: en-US
Cc: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <802d2971-4cc0-46c1-bc24-4ec15c712118@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.11.2025 23:24, Andrew Cooper wrote:
> On 27/11/2025 10:12 pm, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> 1) arm/ppc/riscv: drop unused domain_set_alloc_bitsize() macro
>> 2) add generic domain_clamp_alloc_bitsize() macro and clean up !x86 arches
>> 3) move d->arch.physaddr_bitsize field handling to pv32 code
>>
>> changes in v2:
>> - split on 3 patches
>> - move physaddr_bitsize in struct pv_domain
>> - make minimal style adjustments as requested
>>
>> Grygorii Strashko (3):
>>   arm/ppc/riscv: drop unused domain_set_alloc_bitsize() macro
>>   xen/mm: add generic domain_clamp_alloc_bitsize() macro
> 
> These two should be merged.

Why? They're dealing with two separate macros / functions ("set" vs "clamp").

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 08:04:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 08:04:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174550.1499502 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOtTH-00056P-8a; Fri, 28 Nov 2025 08:04:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174550.1499502; Fri, 28 Nov 2025 08:04: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 1vOtTH-00056I-5G; Fri, 28 Nov 2025 08:04:51 +0000
Received: by outflank-mailman (input) for mailman id 1174550;
 Fri, 28 Nov 2025 08:04: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=z/8R=6E=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOtTG-00056C-6l
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 08:04:50 +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 e9105f85-cc30-11f0-9d18-b5c5bf9af7f9;
 Fri, 28 Nov 2025 09:04:49 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-429c4c65485so1447373f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 00:04: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-42e1caae37esm8058836f8f.40.2025.11.28.00.04.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 28 Nov 2025 00:04: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: e9105f85-cc30-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764317088; x=1764921888; 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=uoaCCBxAunUz+Ff0x9WkyuJGzpo8rV+VKsYcW0KmRNU=;
        b=cxCNgbd1/CT79dXSQAtdiM8bEvicJGVGEY1W6+fnniDK71wga1sB2JH0Hmi37we+CK
         GAz2Blyuwk4rjTMufg+fU0r05gDzFXT9Sp3OXI4UDXPsZJNUph+qPuApw5kkARuHFwmB
         waQoYAUvyY10yg/ut8FO/FYeHGGkANrBxRKn+0v+MqvzcMF9WmrSttXBGS1oL0CuFM+H
         ZClzv6F6YWbnV6hHUOj4Fi3J4RhKESIvlndsYfnCTCqr+3ekpJQatOq4R8ed/VyAtYyK
         TlILru4kjF8Pwpjku691KW05GPC6ZnVPnQt3bBYx4Hi9WNApt+thS4aNrt9OpgUk8QHP
         ldGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764317088; x=1764921888;
        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=uoaCCBxAunUz+Ff0x9WkyuJGzpo8rV+VKsYcW0KmRNU=;
        b=mNYSKSw8yp9bSt0JVLjYLs3UFITThkVkVhGzXEHk0LDl97XRYxK7GtGHRXzxguvalP
         CpjuXTRIf7/9aP8R0pzvekYHQVvbm8Wxlp8S2UQPhOj8EoK/tTbB6Q+AWc0WnsCrI3JI
         mp5b3Cmg30n+WmwD7lL4d8w5WwiBzx0vZYwSeenG1El93AC/xp1dRtul0w8pMZ/72LL7
         S1brlzMcLSrL33EgezOY9XbNW1oxO58/4u6ZbzU7Yehn2g0rPIhwcdFrbbRzAB6HtEYz
         nB+xSakZbpIkMRgysfVMKT3KuIb5vRMjrYXQkjKgNMForM/i8SGKG1YlOpY7nyjZN2ZI
         Hv9w==
X-Gm-Message-State: AOJu0YyuUFIvhh0TPyeyxDd05SneKBA0clesDxU7nefd5+KVLycpNYa9
	UmLueMsvNsJfcWywGllAYRjIzkYf+B+C0vHbOtIXOjePveUxzGFY04xertVVFOpnWg==
X-Gm-Gg: ASbGncvYbNvHS80sjHns++S/BXzeeNWSiEoCeLLQBWwRPZXI+tENs5/vgp2JIn/JsJ/
	hnCLxJ4inMG07RZalKDJdCBV5imVdyc1LFFZz9nkc0dYoFw1akAkbKRHUIlhDyktzQh8ydXFDAe
	L3rGJsx7Ko4jeyyQbJ+fnRJth34x8w8z4c48EGbB2kHKAUo5lnw4/1lVGSFe0v/89hI2QA6zaQx
	O1kAPtGYmGhyij3mxhNRJDNNn3PJ3lyK0GoVSwuqtgfI1WMliiq0n1pwmy+ihRgHrm5kLQW0KPM
	3p3x487rAtyMDrjQC3JswQm6h025EtPutNo5BDjyOgXBI+FEnA9Z0rYcgoaaSM01P4x0pP/GQ61
	NWrsiHPEk6Hq/hWZpBoK8Hqq7EHeURuc+f0qRVAPPbPmkLeuVrIj6k+06qb7FhCdrze0C0Bo3IV
	xVwvTXaQ04P7ekyDVt5pIlAY6nYIyqlKBo+l5ql8uFW8di8IotDFbUG56CtLoYpH17O+PfXfO/P
	rQ=
X-Google-Smtp-Source: AGHT+IFGtF4/5lulyT0AcluOEjftvXQRRTfKrZ32tRYHzY8NuQH2ZHz5Ob/EIWEud3EIlfppLR8cIg==
X-Received: by 2002:a05:6000:2203:b0:42b:32c3:392a with SMTP id ffacd0b85a97d-42cc1cedad0mr29521123f8f.20.1764317088491;
        Fri, 28 Nov 2025 00:04:48 -0800 (PST)
Message-ID: <4fb39b1a-797b-4910-aa63-03a5f08031bf@suse.com>
Date: Fri, 28 Nov 2025 09:04:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/3] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
To: Grygorii Strashko <grygorii_strashko@epam.com>
References: <20251127221244.3747918-1-grygorii_strashko@epam.com>
Content-Language: en-US
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251127221244.3747918-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.11.2025 23:12, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> 1) arm/ppc/riscv: drop unused domain_set_alloc_bitsize() macro
> 2) add generic domain_clamp_alloc_bitsize() macro and clean up !x86 arches
> 3) move d->arch.physaddr_bitsize field handling to pv32 code
> 
> changes in v2:
> - split on 3 patches
> - move physaddr_bitsize in struct pv_domain
> - make minimal style adjustments as requested
> 
> Grygorii Strashko (3):
>   arm/ppc/riscv: drop unused domain_set_alloc_bitsize() macro
>   xen/mm: add generic domain_clamp_alloc_bitsize() macro

As I'm happy with these two being separate:
Acked-by: Jan Beulich <jbeulich@suse.com>

But of course Andrew's objection needs dealing with before they can go in. And
as he said, at least Arm maintainers need Cc-ing for them to actually be aware
that their ack is going to be needed.

Jan

>   xen/x86: move d->arch.physaddr_bitsize field handling to pv32
> 
>  xen/arch/arm/include/asm/mm.h     |  3 ---
>  xen/arch/ppc/include/asm/mm.h     |  3 ---
>  xen/arch/riscv/include/asm/mm.h   |  3 ---
>  xen/arch/x86/include/asm/domain.h |  8 +++++---
>  xen/arch/x86/include/asm/mm.h     |  7 +++++--
>  xen/arch/x86/pv/dom0_build.c      |  6 ++++--
>  xen/arch/x86/pv/domain.c          | 23 +++++++++++++++++++++++
>  xen/arch/x86/x86_64/mm.c          | 20 --------------------
>  xen/include/xen/mm.h              |  4 ++++
>  9 files changed, 41 insertions(+), 36 deletions(-)
> 



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 08:08:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 08:08:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174560.1499511 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOtWb-0005fW-Lz; Fri, 28 Nov 2025 08:08:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174560.1499511; Fri, 28 Nov 2025 08:08: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 1vOtWb-0005fP-JK; Fri, 28 Nov 2025 08:08:17 +0000
Received: by outflank-mailman (input) for mailman id 1174560;
 Fri, 28 Nov 2025 08:08: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=z/8R=6E=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOtWa-0005fJ-Is
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 08:08:16 +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 64325d10-cc31-11f0-9d18-b5c5bf9af7f9;
 Fri, 28 Nov 2025 09:08:15 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-42b31c610fcso1359319f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 00: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
 ffacd0b85a97d-42e1c5168acsm7501952f8f.0.2025.11.28.00.08.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 28 Nov 2025 00: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: 64325d10-cc31-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764317295; x=1764922095; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=88iysHFwOy4+kY1NoN3WPvJ6ombGukt3p7pocEbX1mk=;
        b=gAF6jED2QaxsC6P3zRC1VQyMO2nGgQ9zRlW0SP6mBPqsvbnHWN2m6xiDghc/B3PDVj
         42gOfE7sLfQTeWPXoKKq4/ziDUPrSg8mp06jgEmX5tsT06l+x/ek2jOBHvc5hL4/6kZv
         NITmHANgaTWZtQUKELmY9ldH1MmipHUjgSS8YzPnb7N/02GFPaxa+GCf4XuAdaK7lcZs
         72JhXFks1FJ2DLt7ogch9/SpbCQ1wA6Stg+v3qVWscd/ZPyx//NxwT0f9gmlQPuO7k7v
         yQiwLlbr92CQADUTyVdSIld11IV+qiIV/2UPTs1qKk+Zqaa9uSC4dgpb6hBSOtBogyQ/
         7BSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764317295; x=1764922095;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=88iysHFwOy4+kY1NoN3WPvJ6ombGukt3p7pocEbX1mk=;
        b=KG+M/bOnX4guz8QbSfIvbwrSDXkyrjYo6JvrlhMbx/k1fbXO4LhOknS5AMEXYsAQ1R
         fJ3gVWfxwvDbliBtQI7Jr9cAB4QPEdRXlISZqpm6968nz+jHxwKU//0rxyUHeF8CzeGr
         p/x0ffglP6Et4IL6yujkWVrsFzSfPG71Je/xIWQfU+FuckWIRQQBeCyj+FpjpZ8yIYjW
         tNZjV4krIFpv/R+b9KXqblwVbsWpf/AwP0bMeQO12tmko2g8kR7n6d1FbNJ8Bw3CenHA
         +m/0/I+/L+jsvqBELnUayZb2EhKz0VLJS7Cjkx6B+EqXLMn5FqFIPRw3uD3ZZIYBR0VH
         e3sg==
X-Forwarded-Encrypted: i=1; AJvYcCWq5x74uaLN/48/L9ek9uAn5KqiUTgGs5Nh0XSdRJAu+zggdKDHgZKTXd3z2VZk1myYnoHTzV0vZ2s=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy7JGQL0Hp98qh27N5gxtFPLxTxgoWgkFcDqOBY1jJxgrOdOI6y
	LSypCoFD5cGV0qIHv6qGeYfrB9Wo9efrJppS8nufgWGXx9ubf8fqooTmtQQLHpH5NA==
X-Gm-Gg: ASbGnctHlMWgwVQJJsTbdyrC9nnW9v83sVGnfeOhtC8RQDumxHoFM22TOtqzdCXhpva
	QjFPBqjXxP+Fj7K/rsgMPWh6iYkgY3rGIMt66iFLOGpaGFzJ03EHh6m/ieeX7W8LJc6p06Coo4J
	9JIvTd4PL/P9x5mD8B2LCjh9zTrL9rj7z/y1NQ0CdCMCAB/NybLmCQh0+saLlCyzKPL7vc4bEXA
	StOYvh+LYMd6b+Em9a1e1sTkbRH+eEYDYhnVwvcn0kPnoKCOAEFGY2oAs/u6ty7UAn1kX5MLwXh
	drJqNxGICP5DmxruO9Q8/3RtRY4+EglIh0R6MOrLB+F/JBrq1Z6AXRERFOQySRrjRtKC3pHVEWS
	l834yYLBGGgHM2+lhu7veTZRnEu0t9nIGGcpQrYrVWdrWdOvUdl/paUXYjDuGz5tBVs41RdgfG6
	t1jedHOR3FDU0SDoFb1S/ExyCrsz9B4i5+R01jxOTBWFHXBsng4vKS4rzDRCM2ZezgRNtcWlPvM
	fo=
X-Google-Smtp-Source: AGHT+IGeSpG/Jm/g4Q4qCNtQLbaxq2zOaKe9vBY4fu0ljqE+FT2DyWoJBS9ridL0uQP1V2GaWVrdhA==
X-Received: by 2002:a05:600c:3b97:b0:477:9e8f:dae8 with SMTP id 5b1f17b1804b1-47904a685c0mr155642545e9.0.1764317294983;
        Fri, 28 Nov 2025 00:08:14 -0800 (PST)
Message-ID: <9825dea1-6686-42f0-87c7-2b1a98d54331@suse.com>
Date: Fri, 28 Nov 2025 09:08:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/domain: introduce generic functions for domain
 struct allocation and freeing
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Roger Pau Monne <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, xen-devel@lists.xenproject.org
References: <0a66c71356e8d6ea788022438d7a73dbff8aa5b9.1764243466.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: <0a66c71356e8d6ea788022438d7a73dbff8aa5b9.1764243466.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 27.11.2025 17:26, Oleksii Kurochko wrote:
> From: Roger Pau Monne <roger.pau@citrix.com>
> 
> Move x86's free_domain_struct() to common code since it is shared between
> architectures.
> 
> Move the x86 version of alloc_domain_struct() to common code as most of the
> logic is architecture-independent. To handle the remaining architectural
> differences, introduce arch_domain_struct_memflags() for x86-specific
> allocation requirements.
> 
> No functional change.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> [Introduce an arch-specific function instead of using a weak function]
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -799,6 +799,28 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
>      return arch_sanitise_domain_config(config);
>  }
>  
> +struct domain *alloc_domain_struct(void)
> +{
> +#ifndef arch_domain_struct_memflags
> +# define arch_domain_struct_memflags() 0
> +#endif
> +
> +    struct domain *d;
> +
> +    BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
> +
> +    d = alloc_xenheap_pages(0, arch_domain_struct_memflags());

... this now becoming the initializer of the variable.

> +    if ( d != NULL )

Personally I'd also prefer if the "!= NULL" was dropped at this occasion.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 08:51:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 08:51:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174571.1499521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOuCO-0003xS-R9; Fri, 28 Nov 2025 08:51:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174571.1499521; Fri, 28 Nov 2025 08: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 1vOuCO-0003xL-OI; Fri, 28 Nov 2025 08:51:28 +0000
Received: by outflank-mailman (input) for mailman id 1174571;
 Fri, 28 Nov 2025 08:51:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=q4nf=6E=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1vOuCM-0003wh-Hk
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 08:51:27 +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 644e91dd-cc37-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 09:51:13 +0100 (CET)
Received: from DB3PR06CA0002.eurprd06.prod.outlook.com (2603:10a6:8:1::15) by
 AS8PR08MB6358.eurprd08.prod.outlook.com (2603:10a6:20b:337::8) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.16; Fri, 28 Nov 2025 08:51:06 +0000
Received: from DB5PEPF00014B8A.eurprd02.prod.outlook.com
 (2603:10a6:8:1:cafe::97) by DB3PR06CA0002.outlook.office365.com
 (2603:10a6:8:1::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.15 via Frontend Transport; Fri,
 28 Nov 2025 08:51:07 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B8A.mail.protection.outlook.com (10.167.8.198) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.7
 via Frontend Transport; Fri, 28 Nov 2025 08:51:05 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by VE1PR08MB5582.eurprd08.prod.outlook.com (2603:10a6:800:1a5::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.11; Fri, 28 Nov
 2025 08:50:30 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc%5]) with mapi id 15.20.9366.012; Fri, 28 Nov 2025
 08:50: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: 644e91dd-cc37-11f0-980a-7dc792cee155
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=G01D3FrlbB9SvPCJIdb5WUdU+xNUCUxvjnsq+iU5BxoSZS+Ga+pD/pruyNcYQHPeW8LyBgjUooereUetVb4ZnxBj7PLJ7Jb5mChGhejUJs29EROCgSClp9ciaEaMaj9PFmCj7xtBGsrhJJQVPQiYy1pKHgC8pMFzFrkE+6nzC9h0q4bu+E/LxxhVEP02mbV32YDSkAu4chJu5goI5PLLEtZBI8eWuIDGeTneQdhsSeOBHy5cSpVyhimcVDj+SmkB4Ae4dNqO00mrUw0oiAiSfpWKEyxqWCcZBx2NVpGaQounpb9z3YahWeGFL6h8mHRlqrjmVNC6QTq7JL/OpOC76Q==
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=mt58WoVL8z3lFCQlq8fkRyvg3543CR+7QjtFB/29Pfo=;
 b=j5ZMAid+EFsBFC7GOLRbbyYX3zM50AEhNSjJ41wIKdGxXSS8tU+pTawMDE05NzuCIU+HJy37WkQbgZDt1iiG4B+bzceB52GEHASJIgslPbzT0rsID6Uda2X1J2N/ICyPwhoNoh0DbzYMoN/5Sg9Itu/tKcbsKi/1/wxvFlOyyXzVX2bn3jRAq2bpUfPu2MTs/gctgy+YClLRTvJttxQp3ET1VML8VFTuJCK3Z8KP+l51VYitV/rKZd4P284pdJ9AdRR1LRNrnYxULrALzqjGibWLXWrAWKTtL3SUNETg5nAzpxRBnv3GTSziDJKPCCkeovHVWvN58UkyBL9XaVAHuQ==
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=mt58WoVL8z3lFCQlq8fkRyvg3543CR+7QjtFB/29Pfo=;
 b=UE00+IpWSA1Bf5/AX3VA9l6HRE+F8kblDva4fK/uLEkG81K4Lhg3zHMc8oopmkH1ncEDeHURrb0y5miwo41rkoGQUjNfQMIXvy2BKyXiadhucnVcgJvuFjASSZ7i8gDIGk3/vqEy0kB9224jL+bhIe8bzMbxBM66SY9L86x4tNg=
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=j8cOmEz4bAoip01NyXlO78E+/4ASrr50huT+35obuxUIUigrQfpY93tX4o1Ge2dgXUlfz5eXNaerWTM0eweSiIyJt41aDHSw3tpUK7CqNjcZrmjm4yk/Lt/di0e28Cl0obNHoNd/Uz3J3hrhcUcG4Y4ocjME7xMD0+gb/4EeFNX58SAYd+fx7YSfCVVxFFQdlg4a2CniiFAXyAMNI0ExatpFY8dbAGthJrdosMfP3RLdgYUuigxiBkEYATu462PLd5TJHg0uMo+zRYau8nyRscmFQmk7aM309EcQr+Ja8XksOImbuXocDYNLnN166Ca+DDrKw206RA7AqrfY1Whgrw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mt58WoVL8z3lFCQlq8fkRyvg3543CR+7QjtFB/29Pfo=;
 b=vXgOJ5IPur7qjz+jdNq1pDGNyiGYID5BTHJaPdezCXcVSp8AtRxzeIrqlZoEjl0i+hX3hZ/z6q22vIwyDvEj79CdI1RmTaGxyZQoRQ0+JZ9swZvqsNrtEz+FfaKJgnCLJezbpbTxy9nqvBcfCp38VCEDysW7xG4F8lWMoTgXAvT5dLymh9VHln73CUXtBXGfzUtrwt/wmT0lo/Osc2iS2L5PcKNPsyPfLCYJ0SNkNIQMEgIg8Nz0RN7rgDZfVjXA1yvTFj2mCWBda29BAYKFXnuNdXKZN+rhyyolsj1S8LHIxTfS2jcAO7QHUh74fH1XC9R0XXK0t6/Y/WhyvQzXIw==
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=mt58WoVL8z3lFCQlq8fkRyvg3543CR+7QjtFB/29Pfo=;
 b=UE00+IpWSA1Bf5/AX3VA9l6HRE+F8kblDva4fK/uLEkG81K4Lhg3zHMc8oopmkH1ncEDeHURrb0y5miwo41rkoGQUjNfQMIXvy2BKyXiadhucnVcgJvuFjASSZ7i8gDIGk3/vqEy0kB9224jL+bhIe8bzMbxBM66SY9L86x4tNg=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v2 1/2] xen/dom0less: move make_chosen_node() to common
 code
Thread-Topic: [PATCH v2 1/2] xen/dom0less: move make_chosen_node() to common
 code
Thread-Index: AQHcX7qka++CFdufxEmRWlGEcHg6JrUHyH6A
Date: Fri, 28 Nov 2025 08:50:30 +0000
Message-ID: <E64D2D6B-0E5C-4582-8D21-A25E321F5297@arm.com>
References: <cover.1764260246.git.oleksii.kurochko@gmail.com>
 <84178652f3cd60303ac1e81f36f852bc685e0ba4.1764260246.git.oleksii.kurochko@gmail.com>
In-Reply-To:
 <84178652f3cd60303ac1e81f36f852bc685e0ba4.1764260246.git.oleksii.kurochko@gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|VE1PR08MB5582:EE_|DB5PEPF00014B8A:EE_|AS8PR08MB6358:EE_
X-MS-Office365-Filtering-Correlation-Id: 06db430d-6c9a-4b2c-c2c6-08de2e5b441b
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?RUkxVkdaaDJyVzREUmhHQzZEcUU1S0RSK2M2NFgyK0RIc044YW1lejNySVhQ?=
 =?utf-8?B?b3BHTS9ndSt0aWRqWC9kLzcwZXM3aGs4RDNKbjc1dDVxOU4xRHIyTTBZSkFO?=
 =?utf-8?B?citCYTZBeWhHUVM3T1FRcUF6MDQ1a2hrVHgycEc1TU5hZ3Z6QnlDVzNxaDRi?=
 =?utf-8?B?QnBEdi9rU3VlODVDb2pHM0s4MzY0ZXh3alBNMHJJY056VW5ZKzdlR0Z6eDMr?=
 =?utf-8?B?VDQwZy9KbE92VDFPNFlMeXRWZDd4eXJ0dFNsbFFxckZvNFBsb0VrUUp4K1lT?=
 =?utf-8?B?UlRJVUh6ZHVvVkJQL1ZvVDZvZXNZRnM0SXRCKzlsMzBmZ0Z2SFNuL3JhUTRB?=
 =?utf-8?B?OFE3Zm0yaTNzSFlpdVFGcldiVDVpUTlFY1Y1LzZBZGRwYlVqUHUzYkk5elNv?=
 =?utf-8?B?dkpTU1ZhTllyM0JucjZycmRZaldRWXB0eHcreXdxTnY1OERPR2lYWTBrUXQy?=
 =?utf-8?B?QVduOWw0SjU0bDNWRHVidGZucWFoSE9XUHN0UTJBemQ5R1p5bWhEaUsvbys3?=
 =?utf-8?B?bEZPRDdDeko2WnhXU05OR2E3bUVGWUQyNzVDOEJtT1BZOVE0VDZXOXIxMWZZ?=
 =?utf-8?B?Um5nbFM1L2xwL3RSZnRqK1NuRlVKY0ZHbEFoMkZNNXVrU3cwZlFyWFI2SWoy?=
 =?utf-8?B?R1ZsVVZ6My9NcndhM2t0QjdzQitRZSthckhZTVBDYVF6eGZZaDhTSThRT1BX?=
 =?utf-8?B?cEpPZk0rSnl6SVVEYUJBNnBXTDI5NFU5cnVublhzOHlhMGdIazN4ZXlYcHVu?=
 =?utf-8?B?bTgwN2k1UmRsOURwSk9IaHhKeks0TjRoTEVnYkdaUW5WRHN1SlNzZm9kOTlj?=
 =?utf-8?B?dHRZM3ZpRTZkeFFjVERhUjFLeXBwaVM5YVE0VEw3VnhYUzJyZk9BU1VDODZh?=
 =?utf-8?B?RFlUWjU2Q1dXc1RlYStCbzNCbzZpbVdXYS9rM2FsOFFxQVJKbTRXaU9zRXNq?=
 =?utf-8?B?d091bW13UU9QTk9mb3M4MmhOeC84NUZCMFNYeVFGc09VamdvdDJIS0hmMVBa?=
 =?utf-8?B?NVN2VlM3clNIc1Mya1lnUitVU2o3NnFmUVZzbkg1TGNHQXdDb21DVWV5NGFQ?=
 =?utf-8?B?dnpaN1QrZ1BvOFMrRHZobThqcHBlMzJDZTRjQSt3TmVmUUx3Q09ENGtzL0ov?=
 =?utf-8?B?MHg0ZEZaK1BsNytqZEtnS3hCVms3MFk4ZHpwWmxZdWhYOEhaM0xpOENQaStM?=
 =?utf-8?B?c2VGVXVXa1dVMDRZNFFjaTNKZE5mYXM5b1ZJYURPVW9uVjFod2o3NFRVbUFt?=
 =?utf-8?B?Z3lhcGlGWmNsNDN2bm9ZSGViVEFoajNHcnMwbWQzblFBNEJlYklpRmkrcm9G?=
 =?utf-8?B?VENOeGQ3bGJma3RQakxYSGN5V291amVQMWdKVXNVWXhBQUMrdk1yeCszTXdS?=
 =?utf-8?B?a2ZRVWRNQk9mZDF1eHR2Kzd0NEVsOVZRQlpNOGVoYVhOTC91dkJvYUNqVjZo?=
 =?utf-8?B?bi9Uc3RQaVQycThqbi92Ujd6Y0g0SFJObStrdmxtckErVjQ1OStNYWZEUi9B?=
 =?utf-8?B?RUR6WDRwUjAzV3JLTlVkcHcrdGxBd2QwNjVXUUtibGRwamhQSnBNYlRKeUR6?=
 =?utf-8?B?bTNDL3Z2cnY0L2ljNWZKZDdETnNUQThmNlNCK1lEVndVS2NlWFBtSmN4MWZY?=
 =?utf-8?B?TmNjZzRMaTBaVzRBTWg4eUlmZk5pZE50aGJmb24rd3J2MmRTRjY3aG9NTmRX?=
 =?utf-8?B?SGZiRlVDTnlqZGczY2dDUGJyWkJGbEJ5N2lpbUdHaXVRVWVRTmxLZFcvNmYr?=
 =?utf-8?B?YmlrVUVtU0RwMllJb3ZrR283endxSTFBL3JXY3o2Z282K0JKR2pQbVMrTWdG?=
 =?utf-8?B?U1RtcXo2dFI2K3lwNzBsUE5qLzh6S1hHYnA2WngxN0FsUUx3WWN6M3V5TEt3?=
 =?utf-8?B?Y3J1R05UclBWblJqbWl4TmVsbXgzU29RS09FZ0hPUlJ1TlRpUGpzQmFKeThp?=
 =?utf-8?B?Q3ByL2NvdWJvTlVlUXVFY3hKMWFmRFRGTE9OTU5ZSmdXQ3RvWm1tazQ0c1ZN?=
 =?utf-8?B?ZFNGb1hSa21tQWtLaEVSaSs5T2EwVjFpeWFGUWNSYWFnRHM2K3NJczFmSTBq?=
 =?utf-8?Q?77qhuX?=
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: <3AA93E4A52001F4AAE4E62367BAFDB7D@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5582
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B8A.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	2d7112c2-c5a4-4016-3568-08de2e5b2f2d
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|376014|36860700013|82310400026|14060799003|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Q2dvMGE1UzVZZFRjcnlEZlMrUFNDL29lSlZxZXlpVXlYcTg0ckFLS2tyeEpQ?=
 =?utf-8?B?NlM4bDlVdUM0OWp0d2J1QVZ1dHNBKzBDZHBrODdoS21JcmlNV0kybmdnaXFV?=
 =?utf-8?B?VzJiQUVZTnRVbDUrOUJZWmtyZXROQmIvWmIzck1hRUVmYmZWMkRDTkN2VUwy?=
 =?utf-8?B?bXJyQnhiT0NzcmNyc3RMWUpBMDRMVnNmYk1FRlEzaC9xZ3RoZjdrQnpCbTha?=
 =?utf-8?B?cHlsL0tMMFUxUi9HZllFcThUYlZzRXg2VlRqR2x6dUNCeS9hWkZoWENKcGpJ?=
 =?utf-8?B?dVMxNDJNcEJSZkdjMUJwU1AxNkZwQm1DRDMzemY0Y045dDZOTzl1eERuVk5j?=
 =?utf-8?B?WkszbU5PaTF3c2ZDWXFUQUxrVWJXMUcwTStmNi9PeXpwU25nMGt4RjkxNFlZ?=
 =?utf-8?B?Q2w1aGo5a3p3enY1NitLNGtoRkVKVk9NVXlaakJZbjBzUHZZaGZ1STZPTEZ0?=
 =?utf-8?B?OE9GanZpTVZyR3ZkTmlYUTN3ZGR4YXFBV3NJTys4RkxWK0ZWWVVzUzBTeCt3?=
 =?utf-8?B?ZXRNMnlIUlVUemIybGJIWHpOYVpKRVp3MzYrSmhXZWJ3aVo2VHB1YllaTi93?=
 =?utf-8?B?SHpBMWR4UFFwclBaa2hCTXZMc3VOTEZidk9iQmpSR3VCVTNWMXFqU04zcmFm?=
 =?utf-8?B?WWhpWVNoblZ6N3NQSmpYUU1NekxJMnNIbjdLR0VteGcybXY2a056eGZTR0V3?=
 =?utf-8?B?OXI3ZWpkOHJFYXIwOTlHYk1ESFhxL09vZ1B3aUlDK1BKbnoreHM1R1ZjaGVw?=
 =?utf-8?B?WGhZSFlZU253Z0FER2Zyc2t2QmM2Y0tNaEhjalYrUHRnV1R0SWpXWHljVDc5?=
 =?utf-8?B?WmQweHMySFhWanNPcTRncjhrMzVqQVpRUFR5dnl6R3BtOFZmYzdoSEJLYWVP?=
 =?utf-8?B?dUpueGwwdTMvWk5mZG5lTW53cncxRTRqZGY3cjBtT1lyTW9yL2VpMkUyUW1S?=
 =?utf-8?B?TVhaRi9ZRElFZXNJOXgyTU1Pb1p4bVZBb2hVb05HWitBYUhjc3gveW50R1h4?=
 =?utf-8?B?VjhUOTNzaFo4b0gra2lkNlpDc1FUUWZPdzV4VGtpQysrcmFOVHVBYVlHcXdr?=
 =?utf-8?B?YzJDendFRW1FbFNNWWozLzhBOVJYYlM4ajAvK0g4RS9wZDBjTnpLR3RPRjdN?=
 =?utf-8?B?ZUFQTElJQ2ZVRDN3YmhZVzYyQUJ1QzJOOVhkN0hFaWtBS3UrN3E2SnNDYUxN?=
 =?utf-8?B?aVd5dzBsenFtR1hHbzBtVWgrTU5rSXltT0hSa1NCYVRHK0J0MUhnL2dMUWdw?=
 =?utf-8?B?M2pnU3VudVFnNmVSd3hHUVFBNFBBMXFUWmIzZ2EwcjNwZmQrMWpMdi9xYnJ1?=
 =?utf-8?B?bVdUazRzdTNwM3VIekIvTmhoWDlmbDAxaVVoQ1l1ODRySzkycFVUNk8yaTJi?=
 =?utf-8?B?MFZneW1zb0ROTUdWVlZFekRZNWJPMjM3Z2FyLy9jRENlWno5aVU5QjBlQjhk?=
 =?utf-8?B?VHZzUGxydll5NFJmVG0xWkFFMWxUMEhTQmZMcnowOTRJRFF4TExnMHZrVk04?=
 =?utf-8?B?SVZQRWZaWHFzcWZEbXBVejVnV3dxczVCZGIxUS81WGwrQlkzWHRJZXB0dFlk?=
 =?utf-8?B?My92RGNwSTFQeVdZcHBsL242aG1Jek5Zc0FnU0VxSXB0Uis3eGtHVnl2Q3dQ?=
 =?utf-8?B?anduOXFnM0tTUXVWeUVocGRKUjVabjlZQWdBK2FZMFpacHNmYlFBRnYyeEhI?=
 =?utf-8?B?cUl3RmJnaXZKK1FjY3NBeEtYbSs2TkRCK3BtWXNYR2phS1BIcHlMYTVONllt?=
 =?utf-8?B?RkhBcWQxeHp0UTRiemIrSzN1a2VOMStacXExdUQ0LzVaS0FWOXVKcjBOVFIw?=
 =?utf-8?B?SS96b3poclozM2d5c29aUEZjMFpSNkp0MFVMMGRYc2hvRzg0STh4b3R6SnRM?=
 =?utf-8?B?UnZEbnZzZkdrYnRlS3k3azIvSU4rWC91VVhvRkoxQlVPLzBlbGFHV0ZCMjB3?=
 =?utf-8?B?emcvaUtYRE4vMG5QSFhEa0JvQ09sN1ViR0NscWVkcUpqWnpPWjRZWDB5eUI3?=
 =?utf-8?B?MC95Lzk4eE9wM05LVlBCK3Yza2dxelBsRlFVa1lqSFU1TXJMczl0dGtmZzdm?=
 =?utf-8?B?YmxoZ3FJYXlmOW5yVW1PUE4yd0xiYUZyQ0ZzbDVEZTFSTG0xaUcwRFM3dE1h?=
 =?utf-8?Q?NhYQ=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)(82310400026)(14060799003)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2025 08:51:05.1698
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 06db430d-6c9a-4b2c-c2c6-08de2e5b441b
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:
	DB5PEPF00014B8A.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6358

SGkgT2xla3NpaSwNCg0KPiBPbiAyNyBOb3YgMjAyNSwgYXQgMTY6MjYsIE9sZWtzaWkgS3Vyb2No
a28gPG9sZWtzaWkua3Vyb2Noa29AZ21haWwuY29tPiB3cm90ZToNCj4gDQo+IFRoZSBjdXJyZW50
IGltcGxlbWVudGF0aW9uIG9mIG1ha2VfY2hvc2VuX25vZGUoKSBkb2VzIG5vdCBjb250YWluIGFu
eQ0KPiBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgbG9naWMuIFRoZXJlZm9yZSwgbW92ZSBpdCBmcm9t
IGFyY2gtc3BlY2lmaWMNCj4gZmlsZXMgdG8gY29tbW9uIGNvZGUuDQo+IA0KPiBBdCB0aGlzIHN0
YWdlLCB0aGVyZSBpcyBubyBuZWVkIHRvIGludHJvZHVjZSBhbiBhcmNoX21ha2VfY2hvc2VuX25v
ZGUoKSwNCj4gYXMgbm8gYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGN1c3RvbWl6YXRpb24gaXMgcmVx
dWlyZWQuDQo+IA0KPiBUaGlzIGNoYW5nZSBhdm9pZHMgZHVwbGljYXRpb24gYW5kIHNpbXBsaWZp
ZXMgZnV0dXJlIG1haW50ZW5hbmNlIGZvcg0KPiBhcmNoaXRlY3R1cmVzIGxpa2UgUklTQy1WIGFu
ZCBBUk0uDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBPbGVrc2lpIEt1cm9jaGtvIDxvbGVrc2lpLmt1
cm9jaGtvQGdtYWlsLmNvbT4NCj4gLS0tDQoNCkNoYW5nZXMgbG9va3MgZ29vZCB0byBtZSENCg0K
SeKAmXZlIGFsc28gcnVuIG9uIGFybTY0IGFuZCBhcm0zMiBvbiBGVlAgcGxhdGZvcm0uDQoNClJl
dmlld2VkLWJ5OiBMdWNhIEZhbmNlbGx1IDxsdWNhLmZhbmNlbGx1QGFybS5jb20+DQpUZXN0ZWQt
Ynk6IEx1Y2EgRmFuY2VsbHUgPGx1Y2EuZmFuY2VsbHVAYXJtLmNvbT4NCg0KQ2hlZXJzLA0KTHVj
YQ0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 09:07:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 09:07:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174585.1499531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOuRy-000622-7s; Fri, 28 Nov 2025 09:07:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174585.1499531; Fri, 28 Nov 2025 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 1vOuRy-00061v-58; Fri, 28 Nov 2025 09:07:34 +0000
Received: by outflank-mailman (input) for mailman id 1174585;
 Fri, 28 Nov 2025 09:07: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=q4nf=6E=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1vOuRx-00061p-LY
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 09:07:33 +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 a804a476-cc39-11f0-9d18-b5c5bf9af7f9;
 Fri, 28 Nov 2025 10:07:25 +0100 (CET)
Received: from DU7P195CA0025.EURP195.PROD.OUTLOOK.COM (2603:10a6:10:54d::30)
 by GVXPR08MB11320.eurprd08.prod.outlook.com (2603:10a6:150:2c2::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Fri, 28 Nov
 2025 09:07:22 +0000
Received: from DB5PEPF00014B89.eurprd02.prod.outlook.com
 (2603:10a6:10:54d:cafe::65) 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.9366.15 via Frontend Transport; Fri,
 28 Nov 2025 09:07:22 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B89.mail.protection.outlook.com (10.167.8.197) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.7
 via Frontend Transport; Fri, 28 Nov 2025 09:07:22 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by AS2PR08MB9475.eurprd08.prod.outlook.com (2603:10a6:20b:5e8::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.21; Fri, 28 Nov
 2025 09:06:19 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc%5]) with mapi id 15.20.9366.012; Fri, 28 Nov 2025
 09:06:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a804a476-cc39-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=w5GBWwdbuvUs/iR0sh3n4yGwYpSzJQHuqrpLJ5/ptjpQA7x0EM4AtGLJmDxNFuxj//WvwI0fxlX0RJsWf9/AwTudyYASC1ppzyy5ddX1mnsHoquOBJ/fx/M3+1REFtci9pvj5guuF8drHdh8+TmSZ/1M8Vdahm0HYgAzz8oP+jC2TfKNVql7dSbVlYIIQHWTyBVjjh20zawPr8IqO8EKdDMlJP+CNIu+q1nDrlRiudIdrtPKcQigwiKBimh3mYRqh/XRWgFZfjT53AMktfuqh8kldIT2WWKAJLROQkdBSIvk+lXymetJt0g1nOMm2iXTVzdMoP8AANswO58JGZEm7Q==
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=IYGvF0x+VBOoOZUwaZ0boKhDynIX3N7WZVxMr6qp7es=;
 b=qx1fkuTOBZXFFtlP0M9SQbn6codW6qWHlnRU91uSP7g2IDz6j4YTusb9Qob7l/bhHLz/9+2fUSRXHw1OOz6WjaZlt2kFX3puj764p3qCbaEamfHS9iKhLafrhw34CCAWHpo75Q6YSzps1iTWkTT6eqiM+tGFgTfyQ8h7IqGSWRYAFi7Ip7+A3gip4Nl8lmyMjGQRt3gVkrXKOK+FBSY3+NH/tM57wHz9ovQWCLSl8sWXxXcX8seicUl/6bHBTbvcNww9EnI6nusrZ8GEix6gLgaasd//KOwteAkOJVDWZ/x+Mwwlw0Hy1FZxc8VCgfjUfy2OvMZUs4zvzVTfeAoHGg==
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=IYGvF0x+VBOoOZUwaZ0boKhDynIX3N7WZVxMr6qp7es=;
 b=kuMlFLxMzje2cvSeXnWQYRdbJZDGNUtpk3LsP+jtgeXpoS7mBnYSkEWh0/jNwodp7/nhdmRszvJfpeAoJoWvmrygej9b3mnMbH/E7CJeOzxIIhdCNz3igkWRjOmGppHx57z59C+aJ4SAIA3Vk345gFwBzI1akLlFg6OkXZVll6I=
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=TeLv+Noq2Y9ixeYb84fvGFEMtMm9ZOfuXqTsvmFcuUlKhwvLFPz/lM8Y53EvDG76KpWV32o3GIro1PoQcRfrVNymF9CjQ0kW7SAA0V3vt8x0pfxQzNuKRDLrs/e4KkM7+MTAb0ekb30fsg7RZER7D1nuJ9OcIQ7UMtv39nwuCn1kUZ6pfjP0hpdMaR58iv2U2FJrqPK1gUvm2ZTQdCsYeAxopISuEjlApQv6ZDd8WUfBxvsT0M8jSu1BmPZUiSLzRTXa6k7bXIUXkDvO0b1h7X10Sz8lOnP24jEMVoatcimFgUGLAVTrlxuAqG2pDaYbo2r0tWWt6pAeq/FXlcwbuQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IYGvF0x+VBOoOZUwaZ0boKhDynIX3N7WZVxMr6qp7es=;
 b=F/LhUoCNKiLgYYMOhuEq2/S/8c581KFbzPAslhnZoWRGwOA3n7edQgF3ratOzjjHPDfL7PBIL+vlw31rJO4QNeu04hAxSix35YlSW3uIHD0dpZQnjhXNdVf7U5h9VE85eUnkLAeluEIWAd4GtFOEvcukAdlaSIIFM7tWTXT4ht1F9ozoG+Z/HZrLC06susApeUyXiFgNjE4QQ2dM+3RuEvQAt5N1cmozyjUujTe61c0MP2ur0F6dCV7q+Dr8MRzdeTMW3ljQ6DoO5c8xA2vCDmd2oKVo35G6msnUyxvtf/Q8512Bz6edgOk6wkcl0aqQQU0rPGaaNdXqspHbLJQ4bQ==
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=IYGvF0x+VBOoOZUwaZ0boKhDynIX3N7WZVxMr6qp7es=;
 b=kuMlFLxMzje2cvSeXnWQYRdbJZDGNUtpk3LsP+jtgeXpoS7mBnYSkEWh0/jNwodp7/nhdmRszvJfpeAoJoWvmrygej9b3mnMbH/E7CJeOzxIIhdCNz3igkWRjOmGppHx57z59C+aJ4SAIA3Vk345gFwBzI1akLlFg6OkXZVll6I=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v2 2/2] xen/dom0less: move make_memory_node() to common
 code
Thread-Topic: [PATCH v2 2/2] xen/dom0less: move make_memory_node() to common
 code
Thread-Index: AQHcX7qlfbmHBnQ91k+D1QR6oggnHbUHzOoA
Date: Fri, 28 Nov 2025 09:06:19 +0000
Message-ID: <ECE56FA5-058A-4031-A4B3-74B3C2134A4A@arm.com>
References: <cover.1764260246.git.oleksii.kurochko@gmail.com>
 <dba41b3415313112a7612b5cfaf7ce0ee4a4a1ee.1764260246.git.oleksii.kurochko@gmail.com>
In-Reply-To:
 <dba41b3415313112a7612b5cfaf7ce0ee4a4a1ee.1764260246.git.oleksii.kurochko@gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|AS2PR08MB9475:EE_|DB5PEPF00014B89:EE_|GVXPR08MB11320:EE_
X-MS-Office365-Filtering-Correlation-Id: 44362f63-0e2e-416a-a3c5-08de2e5d8a77
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?Q090SS9MVytzZGRRZjJhTmJSQ1cwRFQwTUNFNzBjU2x5L3BYYnFDOFVUOFVr?=
 =?utf-8?B?cmk0QVptUDlnQ0VOM1dJQmNTVTlTZWZRbUNPQXM2a2pOOUw1TVpuVURtaDJq?=
 =?utf-8?B?dDFHM2tZYmZmUDQ4VTY5dzZxN0dsTnV1eG1Yd3lCSnNUMVJpaUU1cGJSOGpp?=
 =?utf-8?B?NDZZMmVHMlZEVStLNE9ZUzdGNTN4WkZpcC9mYmQwWmtjRXhkSURlOElRMmcy?=
 =?utf-8?B?aHRvQ3BpaVpPbXhWS3B4aG9xd2JBaUxLOVNJOG1RRTkvUWRUMEw3NGVsRUxL?=
 =?utf-8?B?Y0FkZVFHYllJazFldzVLT1gzY0lnb2Nib1BTNmFLOUVQS21PQ2dEV1o0dTIz?=
 =?utf-8?B?MWVDTTl5dTVZcWxubjY2NU1mazZtTWRjSVMyT3p3L3JqTXVyOUphNkQyU3ZC?=
 =?utf-8?B?OTVwNDNPaXhZckVqcmovc1AvaXhUUnVHSVE4WkpwakdDZ0pITmZOckR6SDA0?=
 =?utf-8?B?RnMzNGgyaDU2b3lGM0wyY1VpWjFCVkc1T1NFbmorRDRVQWFhOVc0TE5qYkdl?=
 =?utf-8?B?MHpBdE1uZXk0S3ZoVjdKcmJ3UzBWekVGV2NjMmFKR2VCN0FkeUE4eFhTSlN3?=
 =?utf-8?B?Q2ljWDhVL3ZKM0JBaTZVMlZvU3V2ZlBUa2hYYmNlcTZzTFVranMxQ1lEcnlq?=
 =?utf-8?B?MTFGMm5iSnRUVnJqa1QyaHBEZnFrakdpQmhQcENwcGprV3RCQnRwWTBvM2RB?=
 =?utf-8?B?NE9lRnpzNk9pc3VIMnVyaWJZM3g2SmR1QjJEenRmeTc1ckVOMGtXMjFVUDQr?=
 =?utf-8?B?R3lRei9Ya3p1R2NvVTZ6eU52aUR3QlphMElUbEJtbHRBdkE3T0c5Y0I4Wlkz?=
 =?utf-8?B?YUJpSUU0cWZKVUxYU04rTHZ4OG93NTBnNUJxbU1WRkVHWCtmR2JadVhzTHZK?=
 =?utf-8?B?ck9Na2dDWmJRcitsdG8rdGtPR1IxbDNYNkdKZWlMTkNkWmR3UzBJb1k4YXZq?=
 =?utf-8?B?NlFOM1RSOHRsRHAwN3hrUCtVdmFYR3RoVWhyOEwydlZXbnUwMnlrcGlCdnNS?=
 =?utf-8?B?Q0dVdVNSQzB3am5QNjB0Uyt6Y0tOR0NweDdtSk13dDVlTDd6TUVtalgyV041?=
 =?utf-8?B?bW81VTN2K2ZNQTNCQngyUkpiUHpZNWdBS3AwczhzRXlNNVNzUEZtelZwUGVp?=
 =?utf-8?B?bW12YUNhTnltcTZqanppR2N0QVoxS1NMSU5MTDEyOEtsVVpBYzdhbjBEUHk2?=
 =?utf-8?B?NktNVjJrSjZWSldPaXJ0R2kxc3o4NENiS05Wa0lqME11QnpKR3ZEU0hRdWxU?=
 =?utf-8?B?ZzBHZEs4dExvSU5TOFArREc4RVZKeHQ5a1I0d25SYWUzQXh5WUtZZmVwSDFQ?=
 =?utf-8?B?eUszMnpBaTdyc0JyZGIyMUl0alUxM01semlqbnluZldJSURHclR4dUVZTkFj?=
 =?utf-8?B?MXZybTd6bFpFb3MzemZIbzg2RlFSdjVvVjE2UDErSDFEaFJzTElaSGR3VSs3?=
 =?utf-8?B?d1EyK2NncXcwcVpyMEw3Q0VIVlZhR0tWbldodFpLS2o2Q3FBdW0yMHB2T3RU?=
 =?utf-8?B?QVp3czlMTzNOSU1DUEl5UUZIQnRqT0R4MVhGNmkxaFMzYk5HNThPYzQ0K3dn?=
 =?utf-8?B?NENnaFFHSXBFOVJjbS9YZmZLOU9STzJ6UGtqODdQWDg0S05mZFFuamJoMDBB?=
 =?utf-8?B?VUpEUTB6d2FPdlF2LzFqdGk0MWw1M2JqRE5GNHkyZGx4bFpiRm02Mm1TamZi?=
 =?utf-8?B?czJyMDlLcnVnNVNuR1VLQUM1YnN0OWs2ekcvTGUvRjZTRVBHakJxdUx2MmVL?=
 =?utf-8?B?WlJjZ2diN3dtcGlNQ2Y0Q3E3amZxOHVORWZ3NVZRaWlZaklOZDNwbTJUNWVt?=
 =?utf-8?B?a0NuUTZSeFZjbGFuOWpzQ2F5QmhualNIY0h5QkFmb2VhMzREd0R5NDkxZ1lp?=
 =?utf-8?B?V3hlT0VpUnZ2WW1UTk5rbEtTcEhobExKb3VjVUd0Q2M1TlltaFh4U285ODNi?=
 =?utf-8?B?U0dGTXg3UG1yd0o5ODY1ekNhU2cvQUdGMkl6eXcwdDdXWnJDa3FRbldZbHJx?=
 =?utf-8?B?TUdteFlralkzTEp3N2p6TzZJbVFBb3huekw4VTdoRlQ4dVN6U2JWVXV5NDJH?=
 =?utf-8?Q?tLdQbK?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <E4D05F64DE34D745BF6C5ACC4ACE7360@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9475
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B89.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	963da70a-c53f-4b9b-792c-08de2e5d64db
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|376014|36860700013|14060799003|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cG9hY2pObEJLclU5QTc2R2tLRlhmd2d3Y2UwTHpPVU0yYjlQaE9Nbnc5MFRO?=
 =?utf-8?B?RUk2bWsxa0QreVRrYUlibGxUeHhyNHdtbW1lSEFvY1dRUHlwd1E4dUxTSGt4?=
 =?utf-8?B?d0NlZHY0SkoweXFlZTY4Wm8zYjFxVlhuMlVWS0ppU0txNEluQ0VZSVNZMEpC?=
 =?utf-8?B?c2xCSGM4MU9KcURyVTh5a3ZiRkVDaDI0QldQeEc1K2g1Z2VCdVBWaHlmWDh6?=
 =?utf-8?B?cE5DdlA3L3ZiYzVGVzc1Z1kvaGxlUXhRNTlzNk50eUFxSzRWY1cyemwwblg4?=
 =?utf-8?B?ZFNHL0VOZlkwdGhzdXNqbDBtREhYYnpiYkFKbHAzUXFxY0JNR1pacndmZ2hq?=
 =?utf-8?B?dW8zdlpMZS9JWXFEbmQ0MWsybG1WQnExSWNUVFU0UVRqSXZMSzVvRW1reDJv?=
 =?utf-8?B?anFKajdhMExMdmxmRjlmbXhZUGpZS3BaNE9FZFREblVNcWQxNVg5NlBCZU8y?=
 =?utf-8?B?OExDMVVOODJjVy8rd1dHZnJDOG1aRjdsSDA5Q3Fucy9keE5WRzFBcGV5ZG5C?=
 =?utf-8?B?aDMyWE9IRWNNaThBdnJLQmVCbnhZNjdHRnFqYXRMajVMV0g1d0FTbm1xQ0NX?=
 =?utf-8?B?MEtlV1A5NmE1RTRYdFhGNjN3UUlWMHJidnNVUzNMSEx1dmw1RmwrMmV6TVFB?=
 =?utf-8?B?QS9NMjNjcmp2RTY0ZzBmbGZsQUpUaG5rb1AwSVNvMjQxaTliajUyb1FoeWdC?=
 =?utf-8?B?SVJ2YnNDR1RINGVtWjg5M21BMmNZYnN2VlVjYmcxL3p2QzRjTU1tRkpYZTBp?=
 =?utf-8?B?Ly80T3BEdWNuZWsxK2lMUGpNSDhBM09GazNhVlVhRHYxQmVSRFV3RkwvZXR2?=
 =?utf-8?B?aEdlTFFPQnVjN3NKay9UMTlqMldnQm1WN2VTMmNLbmd0aXVtdCtEbTVwa2RJ?=
 =?utf-8?B?U2ZGbDlPeDc4VTBYajFienpOTXcxWjNtUW8vNjlTTjczN3BlVEVJSDRBQWUy?=
 =?utf-8?B?Z0szVm1GWGU1K1RFbkh5OTIxYUpLcVk3V3lpNmRJdHl6U3RWd05DVFVoQTda?=
 =?utf-8?B?TkRqWEpURlEyMzlYdUVxbm02cTFGc1gzbDVrTmg5RnlHOEFLbGVmTTZ5cGpM?=
 =?utf-8?B?KzdqRWQrTWprUmhYa3NMOE54TmEybkdZb2V2ZGx6eHZ4bytRV01xSjd3VE0y?=
 =?utf-8?B?YVF5Q2FLSnFrbFhmMDBEOUx2VWRESTdGeC9iMnF3MDlIMzdvVXVOQWFGM1dk?=
 =?utf-8?B?R0tWMWU1UVdCemVqdkdpVmFDdmVnZjljNThlVy9kRUM0RnpUcE5HTjlBRkRC?=
 =?utf-8?B?aldDZm5CY2hHTDIwNEJkT1pka21odlRFV1Y5MmMzL3ZHVFQwaXd6aDVKQ3pO?=
 =?utf-8?B?NTRLM21LQk5UTWJDQVJ3NHdpdkxNaEFLKy84cFNzck0vZXJuRXk4VmFNK2dN?=
 =?utf-8?B?OVBYdVRZNWNEWjdjM3ArejVvakpKOEJuem5QUFNmZjBSblp2K09PUWVBeWdF?=
 =?utf-8?B?TkNpY1Z0QkwrNXo1Qk1KSVc3Z2NEMDJia01yQ0VNUmZRNHVaenUwOU1BOWVI?=
 =?utf-8?B?R2g1aUUrc2Fwb3V2UmcrL0dnaS9hT1B2VGthTVEvZUhvM3EwTThhM1o2WkZy?=
 =?utf-8?B?bDN6V0RqUEl1Smk2eUFxWTFqRmVxdURXNS9kaVltYVNZRGY3bnMrb3cvNmdN?=
 =?utf-8?B?dVZxWU9BeldHNUVOWklXaHJwYzFhUFlrRU5KN2dFMGd0V0ZkV2d4VWM3U3Jj?=
 =?utf-8?B?NlYzN0hUUFpna3pHUzVUeUkwTDJWTkJMczJFWGY3c0pPR1ZRMFZXMkNuM1Y4?=
 =?utf-8?B?ZnUxRGkxdWlFR2pyWTgrM1RMc1oxTDFZdVdaWGV6SXBwOEllY24ycTdOS3FW?=
 =?utf-8?B?c2JDc2g4Q1NPWjZDd1JTY0F4N2kvT1duUXdlZ2g4OWRiQS9pdnZ5NW5SdUIz?=
 =?utf-8?B?RXdvS1RTZkdmUWtJVTJpSWhDMG1tYmZ5KzNocFlob0NBR3RlSDdtcWNGYTZR?=
 =?utf-8?B?N3hIWjJjTElSc2tmd0paSVBvUlhvN2RJRGdHNW9Lb0pSMU1HQ1J1Y2dXYitP?=
 =?utf-8?B?U1liWTl3Z1J6VkFrNDBLaHE3RFJycHVGWXRUdjkzNHF3UC9rN1ZlRjI2UVRo?=
 =?utf-8?B?b0hlcThZVlFIZ3NLVTRWWitocDZ2c1hTOTdDYTdCaTFGU29HWTArcEtsRkZi?=
 =?utf-8?Q?Jlrg=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);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2025 09:07:22.2027
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 44362f63-0e2e-416a-a3c5-08de2e5d8a77
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:
	DB5PEPF00014B89.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB11320

SGkgT2xla3NpaSwNCj4gDQo+IGRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2RldmljZS10cmVlL2Rv
bWFpbi1idWlsZC5jIGIveGVuL2NvbW1vbi9kZXZpY2UtdHJlZS9kb21haW4tYnVpbGQuYw0KPiBp
bmRleCA3NzQ3OTBhYWIzLi42NzA4YzlkZDY2IDEwMDY0NA0KPiAtLS0gYS94ZW4vY29tbW9uL2Rl
dmljZS10cmVlL2RvbWFpbi1idWlsZC5jDQo+ICsrKyBiL3hlbi9jb21tb24vZGV2aWNlLXRyZWUv
ZG9tYWluLWJ1aWxkLmMNCj4gQEAgLTgsNiArOCw3IEBADQo+ICNpbmNsdWRlIDx4ZW4vbW0uaD4N
Cj4gI2luY2x1ZGUgPHhlbi9zY2hlZC5oPg0KPiAjaW5jbHVkZSA8eGVuL3NpemVzLmg+DQo+ICsj
aW5jbHVkZSA8eGVuL3N0YXRpYy1zaG1lbS5oPg0KPiAjaW5jbHVkZSA8eGVuL3R5cGVzLmg+DQo+
ICNpbmNsdWRlIDx4ZW4vdm1hcC5oPg0KPiANCj4gQEAgLTQ1MSw2ICs0NTIsODAgQEAgaW50IF9f
aW5pdCBtYWtlX2Nob3Nlbl9ub2RlKGNvbnN0IHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8pDQo+
ICAgIHJldHVybiByZXM7DQo+IH0NCj4gDQo+ICtpbnQgX19pbml0IG1ha2VfbWVtb3J5X25vZGUo
Y29uc3Qgc3RydWN0IGtlcm5lbF9pbmZvICpraW5mbywgaW50IGFkZHJjZWxscywNCj4gKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2l6ZWNlbGxzLCBjb25zdCBzdHJ1Y3QgbWVtYmFu
a3MgKm1lbSkNCj4gK3sNCj4gKyAgICB2b2lkICpmZHQgPSBraW5mby0+ZmR0Ow0KPiArICAgIHVu
c2lnbmVkIGludCBpOw0KPiArICAgIGludCByZXMsIHJlZ19zaXplID0gYWRkcmNlbGxzICsgc2l6
ZWNlbGxzOw0KPiArICAgIGludCBucl9jZWxscyA9IDA7DQo+ICsgICAgX19iZTMyIHJlZ1tEVF9N
RU1fTk9ERV9SRUdfUkFOR0VfU0laRV07DQo+ICsgICAgX19iZTMyICpjZWxsczsNCj4gKw0KPiAr
ICAgIGlmICggbWVtLT5ucl9iYW5rcyA9PSAwICkNCj4gKyAgICAgICAgcmV0dXJuIC1FTk9FTlQ7
DQo+ICsNCj4gKyAgICAvKiBmaW5kIHRoZSBmaXJzdCBtZW1vcnkgcmFuZ2UgdGhhdCBpcyByZXNl
cnZlZCBmb3IgZGV2aWNlIChvciBmaXJtd2FyZSkgKi8NCj4gKyAgICBmb3IgKCBpID0gMDsgaSA8
IG1lbS0+bnJfYmFua3MgJiYNCj4gKyAgICAgICAgICAgICAgICAgKG1lbS0+YmFua1tpXS50eXBl
ICE9IE1FTUJBTktfREVGQVVMVCk7IGkrKyApDQo+ICsgICAgICAgIDsNCg0KTklUOiBtYXliZSB3
ZSBjYW4gZml4IHRoZSBjb2RlIHN0eWxlIGhlcmUsIG1haW50YWluZXJzIGNhbiBnaXZlIHRoZWly
IG9waW5pb24uDQoNCkNoYW5nZXMgbG9va3MgZ29vZCB0byBtZSwgSeKAmXZlIGFsc28gdGVzdGVk
IHJ1bm5pbmcgb24gYXJtNjQgYW5kIGFybTMyIEZWUDoNCg0KUmV2aWV3ZWQtYnk6IEx1Y2EgRmFu
Y2VsbHUgPGx1Y2EuZmFuY2VsbHVAYXJtLmNvbT4NClRlc3RlZC1ieTogTHVjYSBGYW5jZWxsdSA8
bHVjYS5mYW5jZWxsdUBhcm0uY29tPg0KDQpDaGVlcnMsDQpMdWNhDQoNCg0K


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 09:10:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 09:10:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174593.1499542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOuUe-0007VD-L8; Fri, 28 Nov 2025 09:10:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174593.1499542; Fri, 28 Nov 2025 09:10: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 1vOuUe-0007V6-IS; Fri, 28 Nov 2025 09:10:20 +0000
Received: by outflank-mailman (input) for mailman id 1174593;
 Fri, 28 Nov 2025 09:10: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=94Jm=6E=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vOuTn-0006WV-6a
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 09:10:19 +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 e4094764-cc39-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 10:09:07 +0100 (CET)
Received: from CH2PR02CA0011.namprd02.prod.outlook.com (2603:10b6:610:4e::21)
 by CH3PR12MB8185.namprd12.prod.outlook.com (2603:10b6:610:123::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Fri, 28 Nov
 2025 09:09:02 +0000
Received: from CH1PEPF0000AD77.namprd04.prod.outlook.com
 (2603:10b6:610:4e:cafe::86) by CH2PR02CA0011.outlook.office365.com
 (2603:10b6:610:4e::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Fri,
 28 Nov 2025 09:09:02 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH1PEPF0000AD77.mail.protection.outlook.com (10.167.244.55) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.7 via Frontend Transport; Fri, 28 Nov 2025 09:09: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; Fri, 28 Nov
 2025 03:08: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: e4094764-cc39-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kmyOgPvC7uxAzbSdE+UZKMJt3InR5o7SGExlrQBbsheq0egPe+qkenPci+vC6P4x/rXf8fTuCBhScXh6XOTrOawGs5lHP6apkkhpT4fPxwU9kM7gawDMzo0XS5RAKsx9uXNoLBjr00xGCa3Sw1uEnjjNtded4c6UmYa4AcGXzP18KhgGTiBnlX69Vc/ZIPUBbogfb+v0rRT94jDqbQDC2wKYCLcuMi96nnVGUr+M7e3wBxrFoVb8Lp91KUBrSVN7bZ/Vfej/xE16aXafhrSNW7uV2pGEjzIMsXg1+VfdWyo63zrQX28cnTzen44saiQrbxPdC836um0r2ZfH83/MQQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9U4yH5W9GfOQf/6/MMIodDFYiQVfW/4jNwwI8tm3RtA=;
 b=V1Z/GxYhXLqs1yefrc1S6aHZiegVq84n7ejOe12VjsvoVFVjCwA95u1mcUWvnTBsHizzbKgY8B688+g3eKSTsg/dXqc6VtBdDpgqeZwB9dqg7dgHFv9Hn7C6wyzXLmgULeiDINBy/87qRWapDqFFlqZ2C/x0JaEVYMaMc6MNjbmCDp/aa9B3u5HAGxtIsk7Cpvu/Y8kwnhY2iwCW2+NfPmSQbw6/w1vYnkZg/N2/10CRPxfCL+RZUl9EEUXFq+HLIYmo5EAx4DFYWrBs1ObhtXIlRPK7xmuxyzuFDfqX586jKNCwGHE55sJRbBnjiCP9KrdsvHS64c1x/suQJdyNkA==
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=9U4yH5W9GfOQf/6/MMIodDFYiQVfW/4jNwwI8tm3RtA=;
 b=o5HyhgGygfARnmuJIbYn0OpFWEFYKyF7ToEx9/Ps+RcHI9e4Vy1bK++4sZFB91e4iCs8nygifK/fUOPJw6B2VvRcjCkr4k+bVN6BeKVvUTsPAeoIzEVlg3R7UDKoCqNlN6/ePIxmNh7InSrmHKPurPvwO6eaLgflk5zL0OBp/5Y=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 28 Nov 2025 10:08:56 +0100
Message-ID: <DEK7KOZSJKIS.27HZY0CC6WYY0@amd.com>
CC: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Xenia Ragiadakou <xenia.ragiadakou@amd.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	<xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH 03/11] x86: Add x86_vendor_is() by itself before
 using it
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: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <20251126164419.174487-4-alejandro.garciavallejo@amd.com>
 <d71b6b55-6745-4ba4-9a4f-d5e7b08f0aec@suse.com>
 <DEJI6U37EMDI.1F7QHW1I7WV76@amd.com>
 <9316c348-b4d9-4131-b1da-a9b5083d91cb@citrix.com>
In-Reply-To: <9316c348-b4d9-4131-b1da-a9b5083d91cb@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: CH1PEPF0000AD77:EE_|CH3PR12MB8185:EE_
X-MS-Office365-Filtering-Correlation-Id: 495d80fc-c1f5-4486-b377-08de2e5dc65c
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?bFpYR3NEcVB6bjJLUThjVkZTOWZINjlaWTlBYk1takh6TkZTMmV4OGJuQ2xU?=
 =?utf-8?B?QVhURnZNT1IwaTVUbHdzUUp0bitSbThNSFR6UFhBSmFNM2pQcUhFV1ppSWcr?=
 =?utf-8?B?ak9hQk1lcHp4VlRXK3J0ZisyYjNoazVmVGdPdVFWU3pRNzkxcUhCZDZsUzA1?=
 =?utf-8?B?eHhhVFMrT0ZmUG1adFN5LzhnVzdpZEtpSXppKzNuYXlueENxemY5THZnMTVu?=
 =?utf-8?B?UXBxdW5yd1NTeG10MUlkYU84ZVBQN3BOdisybHM3TTFlQmZXU2xUaHJiR0tH?=
 =?utf-8?B?MnlBVXd4K2RuTENLR21QYVh2aE1OQlUrRDBmdVNLeVpaTHlheU1lSDY1d2RX?=
 =?utf-8?B?dEZOazdrd0pFdkkzVExBa0c0VzNTNkt0Nlduc2ZsR2NYQnorV0NxNWgxbThS?=
 =?utf-8?B?a28wb1E2UlhKaGF5Z01Gd3cwbXhRWEVIeGNseXk3VVNlY2IrOFNxUlhRbzNC?=
 =?utf-8?B?d3ZXNm9URnh5WmZRNjhGM2ZxMzhrWnEvY2VCdVdZVEplOTRoaVNhdnovS1VY?=
 =?utf-8?B?ZTY0Vys3REVka0h4RVVLRFQ1Z2pqVVJXeXhtdEF3Smp3Sk1POUVLbVdmZWdS?=
 =?utf-8?B?d28rVjJ3ZjZOMTMxNXRwcWN2TzBXbzZXS0lyRHVQUkYvWEQ1bzZ1ekp2RVFz?=
 =?utf-8?B?TW00SGJmRWR2emlkOWJTWEVrMWtVNzk0dHE5WGpMODc1eG1TczNtaXB6SDZQ?=
 =?utf-8?B?WjhjdE5nSUNsMXRob2RpVjFDaXp1TTF4OCs3dHQ0d3I3OExZcWJvWHF2WStn?=
 =?utf-8?B?YnI3cjZZeHkwYy9WemNOV002M1R1WXEzTFhNS3ZGcGN3eldpbmhvMFBsdHdH?=
 =?utf-8?B?OGNybGZsM0pabDVabFVpRXFwc0RwZHE0RTM3Wmxrc1B1WkpIbGdjQnhkM0Zm?=
 =?utf-8?B?OU1jM2tSV0d5RTBDT1lKRW1GdHNuWU90enVoNCs4RVoxRnplajdKdFlNR3ho?=
 =?utf-8?B?RWNuOEhIOG5oanlJVTdPeTRaZ3dSNHF0VlExRktmdGwxL1ZqMjNtWnI5d01F?=
 =?utf-8?B?Ymg4WmJxSVhEV0Z6ekpLM2MwS2FKaU5BMS84Y0J3VUVIR0hEQ205Y2hnSzZt?=
 =?utf-8?B?VThtYkFpT081bzlaaVZHWE40d0dZbmg4USthZmJFTG1aQStBTVRxTkdSQVBD?=
 =?utf-8?B?Y3JUWXZjQ0hTd2tjcjI5RWtTT3p2VVNqQUpPMkFjcndrTWo3TmNOMm5oaUhh?=
 =?utf-8?B?SGZvakJ2SWt6VFp2MHg4NGczYi95bGVTZXIvVU0wcVpYYlJTTUtJbDA5Zkd5?=
 =?utf-8?B?ZGxETHE0Sktoa1pWdWVtQnJoUEVXSEJvdzF6dWN0WjVzOVlwVzFmeGFnMllK?=
 =?utf-8?B?WURMUG81V0JVZDlUbUJSSE1lVk51czhtZnp0SnVwUTdUMjNZdnZzbVRxUFA1?=
 =?utf-8?B?Mk1vYXdzVTVrSXJBTlMreXpyZ094NENlYk56UGNRMmx6dk56WVA0djAwRjZa?=
 =?utf-8?B?VjY0Z1dmSUQ4MjZ6SjlSNWs3NXdkYlluSVlBdm5OWnFUZHpzSUNQZlhoNnUr?=
 =?utf-8?B?UnM1WGJPaGRwYU85QldkVkZEYlZJazlRbVBGS2dnOFpYT2c1ZUppd04vSTRX?=
 =?utf-8?B?emYya0RGUE14SDJBdUMwSTdIWkxlU0QrS2FrbmVaOUZRUjZNUXJCbHJ4T3hJ?=
 =?utf-8?B?aElIakR2MFVpcDZ4UmlYWFJaUnFBbTY3eFg4UjkxZDFEeDVjRTF1RjNWZUdB?=
 =?utf-8?B?T0RiWVNpelZ2SmY4c1B0N0lQMlhMWjMxR2hpZW1aWEorWG45OTJGZ2dmS2FE?=
 =?utf-8?B?aDlYaUsySVpKVm4rK2ovV0xFV0s0dlhSNUxJY3V5NG1qZVAzU05RdzNVaFls?=
 =?utf-8?B?clFTN3pCTXZzT0JZWG91aklLdGFKYlEvTHQvSWUxSWQ3ZjdyL011eVNJc0hO?=
 =?utf-8?B?TzVJNjdmak52SmYvTUJLWnY4ZER6ZkswMytxT0NvRllRVlhuLzZkU0hPWHEw?=
 =?utf-8?B?YisxZWVjK1F3R2ZFUE1wa1ZienFWSFRxRFRmWFNnbzVJZEphelRhQmRIUStN?=
 =?utf-8?B?b3lZSGNlRjY0akVhWkxPU1AyWThlV1o4VGVwY3JqQnQ1SFhHTXhYa3l1UUNV?=
 =?utf-8?B?V2x5RHV4UDlqM2psamNjMnRiN0FKUE9rTGpFektXQmZHRXlxMG5hL1hZck5s?=
 =?utf-8?Q?UiAU=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)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2025 09:09:02.7462
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 495d80fc-c1f5-4486-b377-08de2e5dc65c
X-MS-Exchange-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:
	CH1PEPF0000AD77.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8185

On Thu Nov 27, 2025 at 9:36 PM CET, Andrew Cooper wrote:
> On 27/11/2025 1:15 pm, Alejandro Vallejo wrote:
>>> Which raises the next question: Should we even allow a hypervisor to be=
 built
>>> with X86_ENABLED_VENDORS =3D=3D 0?
>> That's the most extreme case of "should we boot on a CPU known CPU vendo=
r that=20
>> has been compiled out?", the current code in the RFC uses the unknown ve=
ndor
>> as fallback. We could also panic. We could be trying to exercise the
>> "no assumptions about the vendor" paths.
>>
>> It's a policy decision for you (x86 mantainers) to take. I personally th=
ink the
>> default path is silly in this day and age and we could get rid of it ent=
irely.
>> Without it X86_ENABLED_VENDORS=3D0 would be indeed illegal. On that topi=
c...
>
> We allow compiling out both PV and HVM, so Randconfig can search for
> broken corners of the abstraction.=C2=A0 The same principle applies here.

That answers how to prevent that configuration from appearing in randconfig=
,
not whether that configuration should be valid or not. That's what I meant =
is a
policy decision.

As the RFC stands:

           CONFIG                      POLICY
   X86_ENABLED_VENDORS=3D0 | all boots use the default CPU
   UNKNOWN_CPU=3Dy         |

   X86_ENABLED_VENDORS=3D0 | panic on boot
   UNKNOWN_CPU=3Dn         |

   X86_ENABLED_VENDORS=3D<all> | current all-vendors-compiled-in
   UNKNOWN_CPU=3Dy             |

   X86_ENABLED_VENDORS=3D<all> | Marginal code removal in early_cpu_init() =
of
   UNKNOWN_CPU=3Dn             | the default CPU branch.

   X86_ENABLED_VENDORS=3D<more-than-1> | x86_vendor_is() folds into false w=
hen
   UNKNOWN_CPU=3D<any>                 | checking against all-compiled-out =
vendors
                                     | Also, some &-checks turn into =3D=3D=
-checks.

   X86_ENABLED_VENDORS=3D<single> | Same as the one above.
   UNKNOWN_CPU=3Dy                |

   X86_ENABLED_VENDORS=3D<single> | x86_vendor_is() folds into constant tru=
e/false
   UNKNOWN_CPU=3Dn                |

Does this sound like a credible approach? What could be different?

  - Should we remove the "default" case altogether"? That removes the Kconf=
ig
    and simplifies matters somewhat.
  - If the default case is to stay, should we allow running with no-explici=
t
    vendors set?

>
> For running such a hypervisor, I can't see anything that would
> fundamentally interfere with PV guests; PV guests are all architectural x=
86.

You could also run HVM, seeing how SVM and VMX don't intrinsically require =
AMD
and INTEL respectively, but it wouldn't be pleasant, secure or safe. It wou=
ld
be wonky at best. In general it's a path I wouldn't like to fallback to on =
the
basis that it's completely untested. I don't believe OSSTest ever exercised=
 it
(I wouldn't even know how), nor GitlabCI, nor XenRT.

>
> I don't like there being an explicit Kconfig option for UNKNOWN.=C2=A0
> UNKNOWN should simply be "didn't match anything we compiled in".

What I require for the optimisation to fully work out is precisely the remo=
val
of that the "didn't match anything we compiled in" as a plausible successfu=
l
boot scenario in order for all x86_vendor_is(x, X86_VENDOR_AMD) to fold int=
o
"true". I could reverse the polarity and have a REQUIRE_KNOWN_VENDOR, but t=
hat's
a non additive option that clashes with allyesconfig/allnoconfig.

>
> ~Andrew

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 09:19:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 09:19:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174604.1499552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOud1-0008O2-Dh; Fri, 28 Nov 2025 09:18:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174604.1499552; Fri, 28 Nov 2025 09:18: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 1vOud1-0008Nv-B5; Fri, 28 Nov 2025 09:18:59 +0000
Received: by outflank-mailman (input) for mailman id 1174604;
 Fri, 28 Nov 2025 09:18: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=94Jm=6E=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vOud0-0008Np-1w
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 09:18: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 424d386f-cc3b-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 10:18:54 +0100 (CET)
Received: from SJ2PR07CA0016.namprd07.prod.outlook.com (2603:10b6:a03:505::16)
 by SN7PR12MB8147.namprd12.prod.outlook.com (2603:10b6:806:32e::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Fri, 28 Nov
 2025 09:18:48 +0000
Received: from SJ5PEPF000001F5.namprd05.prod.outlook.com
 (2603:10b6:a03:505:cafe::f4) by SJ2PR07CA0016.outlook.office365.com
 (2603:10b6:a03:505::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Fri,
 28 Nov 2025 09:18:45 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ5PEPF000001F5.mail.protection.outlook.com (10.167.242.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.7 via Frontend Transport; Fri, 28 Nov 2025 09:18: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; Fri, 28 Nov
 2025 03:18: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: 424d386f-cc3b-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qzT62rWdaA8Vq/qnJEHfxk0r86e+msiOeAWZXGZfrWA2q5Ts9u9ndo7rfJpdxynjFdCXG2cTBgsqXhDJiXMNytsaP+kLhedsmsMt2AYBhjXXXWUNuNWtQhDuPbk4OBGwvt8tPeiJFIOkVG/eSlgUL9ICBIWJ5WivvLi642lk+Lul5p0GJ5qfZ7ol6M3i4SdiOiXTCfViRhvQRP90I/dYvebTF4UYewq2wC+HM7B6plG671kSqEQom/MXpGzhnlORJLbJ3bw5nEC3vb278/qPKHfUk35UvS/qPwT9G5kfLilnTqHXFFCHoIn2xXEe6NL7n4qNbmGYIZBoRwX/VlIL/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=ZHLXLseoA3eo8/r9g2m5hKUIhaYs1D9J4LidwETFmHU=;
 b=MvMZZIdloO/XwX80f/GLHJYF4hKDMbSOVCOWjMzu6RFKLTwkXfCtDwsm22OGLihIuIvs0AfhVWgxvdomC3182J8xyvZTuTt3pM9YD+mlv5yDDRW49PaRtHnarInxqgKnnkOUkySOMzMvT6v5bV+3RzsNQJzqbx6mGWgMJ4oVfmS/9p0k1mcEBmUgm0fvDyzqPZZrgsvCjv3ywP0b6CuxF0fVJCXRcHO7OlqDv4kUAwyxM+vs7ZgDPuwUu/dUvrzg/VMjO3DhzkoutYdHI0oUhnMnIxKfFgIbu4UNiZwlpo4Yyt6cRBoVSsaUI67GGT7iXHasKo4Cmk5Cd9unJbW1zA==
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=ZHLXLseoA3eo8/r9g2m5hKUIhaYs1D9J4LidwETFmHU=;
 b=cZ2+LjeQ79VPVYu7cNY3TUa3WcJIfCeXeEPjbtn49UEcvMJDrnFlowjnS0e8ro39TsBlHqsZv+pocSpV61KmoInu+vEpIp6q9URL8rCegqZIw1WXcIMrVoBTXEWMoncRUvtGGKYe1i4wExTwikfzXzcXbk0E2t52tBBKzWZRkG4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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, 28 Nov 2025 10:18:38 +0100
Message-ID: <DEK7S46A99EM.3LIH1753H2L8Q@amd.com>
CC: Jan Beulich <jbeulich@suse.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>, "Xenia
 Ragiadakou" <xenia.ragiadakou@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>
Subject: Re: [RFC PATCH 00/11] x86 vendor check optimisations
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
	<xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20251126164419.174487-1-alejandro.garciavallejo@amd.com>
 <d27c3599-ecea-432a-b244-13b92b274c14@citrix.com>
In-Reply-To: <d27c3599-ecea-432a-b244-13b92b274c14@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: SJ5PEPF000001F5:EE_|SN7PR12MB8147:EE_
X-MS-Office365-Filtering-Correlation-Id: fe41b422-f3ab-4df0-a70f-08de2e5f2341
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024|30052699003;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MmJlRm01eXFOdk1rQzlXOFZMSG5YcVYvRlMzUEpxTXh2TGZWd2NaUjdVMG41?=
 =?utf-8?B?b1JTY0czWndWK1NvU0MrWmFJd3NJS0ZIeVgwbmxBMnJVNnova3NSSzlvMnIr?=
 =?utf-8?B?OGJnaWU1TXpiT1l2NEZ1L1p2TlpXN0h5MnRWeEJqbVBwSkk0TUVnaXJuYjVV?=
 =?utf-8?B?WTNOd0ZtbkN3TVB3N1kyVmgzaXJJSEt4WHhxYTBFNnUzcGVxbGZVYWhjZ3Rk?=
 =?utf-8?B?eTlvTWp3ZWo3N0EvV0h4ZThHVllZTVpoOU02U1VwRGxuaGs4c3ZsT1NnZVNk?=
 =?utf-8?B?eW9BeEtQNXNpZjlNSGFlL096UnJRd3M5N2ZTZXFSMHZhdzEwL3BWVi9XZkIy?=
 =?utf-8?B?alNQWGQzVjYrSDZBQlNvb1J3TERpYW5BbmI5NUhoK05ncVlzNlJ0S0dUNXB6?=
 =?utf-8?B?VmlvLzJldnlITHBmTFlUZzQ2WVV6QU5vNFRGa2Y4bjB5NEUzT3RFUnZxQU1o?=
 =?utf-8?B?eGhYeGZHblluNjVtdXc1OUdoN1hJM1lvRiszU2grK3YvUXMvZjVJYTFmc2c1?=
 =?utf-8?B?cGtMRXZHa3NoVXlsMXJCZjNkVC9iSjVHWE5tSUdVSXhBak90cmFqUlZLN2pj?=
 =?utf-8?B?ejRielVTdlFtSUo1NklHL1dyVkRkMDZjY3ZmYWNmOWFUaDd6UHNDYmJrbStB?=
 =?utf-8?B?N0RkVjZ3VDJ1WDA3bUxmNmlyTzZtQlpPaklOY3lyUTMvcmJNd3ZiNmlZSERx?=
 =?utf-8?B?UHNGZWNNSUVVMlJVRW1vZkN4MkczTnR4bUVHQzI3ZkU5L29FMlZNREE1Qksr?=
 =?utf-8?B?SCttbU9mZUdzUkVqZk5OaXB3cHFLZEFDRUdzUjJ1ZzZWVVB3VGtwTWhPL0t1?=
 =?utf-8?B?YVRGV0sremZGWWNqclRNMFg5bFRzTVZzRUJOZTlpdXNlaDhPOXJkWE5UaUNK?=
 =?utf-8?B?U3AvNW5VRFZOT2JSUGZ6VHpBU1paSkRJNWJ5UjBRWHBFUzRRQVJsNnEycDVt?=
 =?utf-8?B?K3lJdTVSUzRxQzR6Z2tiVVpDcGptS1JPdFdyc1NRNWdNbm16bjRhL3EzMEZL?=
 =?utf-8?B?SFRXQmNnanBNaEhWaWpnMkhWc3EvM3owNlR6c3RiR1hzM3NOTlYvTVdwZUZE?=
 =?utf-8?B?NDBwWkMxRFoxUnIrVHo2NDd4NHRVNGNuUHpLbHRTeEZOU0hpU3A0VU9hZVFQ?=
 =?utf-8?B?ejJ6M3BkQXAzU3FjeUlMSjJEYTE1VzJnd09aaHErWUlFWWpKM2RrcFpoN3V4?=
 =?utf-8?B?ZW9HUFFKNEY1endWVEV4ZUVhdEFtSnhwMFNaRWUzZ1o5Q2pobmlZZHhpbXZQ?=
 =?utf-8?B?OVpadmJGc29YN0Y0cDNTdDZVREVjekNFMy9nK1BCc1ZKYklUb2p1Ni96cTll?=
 =?utf-8?B?RENYTWhtcTRXVTNkL252NzVZS3JucnVacVpqN1JmMDVZa3BveHhNSkVKcFcz?=
 =?utf-8?B?d1ljSW5JZDB5Y2pGcFhzblhjemQwUXZ6VTRCbVViMTVTQm1IUEg3cFdDYlJy?=
 =?utf-8?B?QkQxVHJUYlRVSnZHZXZTSUIvd3NWampVbFhHRk12RitwSWpEQzJuTEhkYWlQ?=
 =?utf-8?B?YUJQcm5IVjZ1dHBCMnV4clhnWXk4WmVXY2dqTFV5SmF5ekorUHQya1lIZW13?=
 =?utf-8?B?TExaWHlKaHl0VlNBT1RJcndab3F0VllCSk5zNG5uRnBIcXNZRDdEYW5tS0s3?=
 =?utf-8?B?QnR6QTRXelJNUTE1Sng1OEZocmpVR0hVOHZTdkQ4dFU0anNRUWhEMHV3dEJ1?=
 =?utf-8?B?MFVNVEpHcHo4dVB4YnJJZ0pmL3M3dHdFYW1CSEc2dlp3WE5XbFFoRHI4UmFm?=
 =?utf-8?B?bzhabVFFRWU5V2R2TElPcHpPdjVPK04vczVCSUhUQlJkVzVTNnloSm5rVk9C?=
 =?utf-8?B?S2FhQk43aWxUakpJUXlxbTg0T2JIL1RoUndHTW1DOGRtaWdnZEtNMWpTYzZL?=
 =?utf-8?B?M1d3TmNiSkhKWkNCT3RPNWlwbnk3NkJ3ME5VN3A1VzE0Zys3TEF4akdCNmNv?=
 =?utf-8?B?UEVHOVZjL0xrdEZ1a01JT1VFQ2RQcGZDdDlLaXFtL1Y4bFBWS0lSTGI5cFlr?=
 =?utf-8?B?RUVreStwUDFBb0gzbzBKTlplTENoa0xKYXBiZm5NVGUrblFNdlZJR2tUT0I1?=
 =?utf-8?B?S25sTUFyL0lUT0ljTkthdk0zc3lSamRGQm1iMGswWFhqOVBiL0hWbmVuOUNV?=
 =?utf-8?Q?l7GU=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)(30052699003);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2025 09:18:47.7526
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fe41b422-f3ab-4df0-a70f-08de2e5f2341
X-MS-Exchange-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:
	SJ5PEPF000001F5.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB8147

On Thu Nov 27, 2025 at 11:11 PM CET, Andrew Cooper wrote:
> On 26/11/2025 4:44 pm, Alejandro Vallejo wrote:
>> Just knowing x86_vendor_is() is "good to have" is good enough as it enab=
les our
>> downstream to customise it with whatever optimisations we need.
>>
>> I also suspect other areas of the hypervisor could benefit from this mel=
d of
>> runtime+compiletime sort of checking, allowing transparent code removal.
>>
>> I'm thinking DOM0LESS_BOOT vs DOM0_BOOT vs PVSHIM_BOOT, or AMD_SVM vs IN=
TEL_VMX
>> in HVM-only builds, or family checks to have (i.e) a explicit "older-tha=
n-zen"
>> Kconfig option with a similar approach on a family range check.
>>
>> This is maybe one of several such uses.
>>
>> So... thoughts? I'm definitely fond of the single-vendor bloat-o-meter o=
utput.
>
> Having looked through the whole series, I'm not a massive fan of
> converting the switch() statements, but it's the only way to do the
> DCE.=C2=A0 So be it.
>
> I think x86_vendor_is(var, MASK) wants to become boot_vendor(MASK).
>
> Most cases want the boot vendor, and those that appear to want something
> else don't actually.=C2=A0 When you disable the cross-vendor case (patch =
2
> pulled out ahead), then cp->vendor =3D=3D boot_vendor and then you don't
> need a variable to pass in.
>
> This also reduces the verbosity of the new lines which is an improvement.
>
>
> That said, this series also collides substantially with the Intel Fam
> 18/19 work, which is more urgent and needs backporting to 4.21.=C2=A0 Mor=
e
> specifically, there are a bunch of changes which interfere with VFM
> conversion, and for which I can't see an obvious DCE reason to have, so
> I'm wondering if they were just part of "convert everything".
>
> ~Andrew

I converted everything under the sun because it's easier to find all of the=
m
than the strict subset the will give me gains. It's also easier to have new
commits using the function when there are no seemingly random instances whe=
re
it's not used.

What's exactly the area you need to touch for the Fam 18/19 work? I can lea=
ve
that conversion for last in the series so you have time to push and backpor=
t.

It's quite likely not in an area of the tree I care deeply about.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 09:22:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 09:22:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174618.1499562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOugF-0001qL-0d; Fri, 28 Nov 2025 09:22:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174618.1499562; Fri, 28 Nov 2025 09:22: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 1vOugE-0001qE-Sj; Fri, 28 Nov 2025 09:22:18 +0000
Received: by outflank-mailman (input) for mailman id 1174618;
 Fri, 28 Nov 2025 09:22: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=V56+=6E=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vOug6-0001q2-CY
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 09:22:17 +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 b2a4c0fa-cc3b-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 10:22:02 +0100 (CET)
Received: from SJ0PR03CA0372.namprd03.prod.outlook.com (2603:10b6:a03:3a1::17)
 by CY5PR12MB6575.namprd12.prod.outlook.com (2603:10b6:930:41::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Fri, 28 Nov
 2025 09:21:57 +0000
Received: from SJ5PEPF000001F2.namprd05.prod.outlook.com
 (2603:10b6:a03:3a1:cafe::51) by SJ0PR03CA0372.outlook.office365.com
 (2603:10b6:a03:3a1::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.16 via Frontend Transport; Fri,
 28 Nov 2025 09:21:39 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ5PEPF000001F2.mail.protection.outlook.com (10.167.242.70) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.7 via Frontend Transport; Fri, 28 Nov 2025 09:21:57 +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; Fri, 28 Nov
 2025 03:21:56 -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; Fri, 28 Nov
 2025 03:21:56 -0600
Received: from [10.252.147.171] (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, 28 Nov 2025 01:21:55 -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: b2a4c0fa-cc3b-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=C2VdNyjy74iCqWD2U4aQ0/dPAUmMvECX8/zXns1vyYyCx3+eNLcFswTz4o0xp7O32S/TQIfsrE9KoZfydOaumcwazPR3fKdNMr51FdKrvVjbSOYYPym++PVC5TsaDULKVV7WIf2O2YvBmu7N26t/qVjqHNaWBHzAARqM7P/BP4HUIhMc+EXcWlUxY/5okQYrbdil4ISiPjhXKdHQyEMunnh1WahYOWZOYpdmbLzz6TPQIwZYGVy51JHIoJyy9t7/3E+7JH+oGLQO7+U3m9asbFdleZhO10Mrcmce6aP7dkC0KF661J3XwH47NGDx9MSHpM4kuWTOUlBeNcV+5Ibivg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=i1mIa9MrqqUEDIVc5iZEApMT+ZHnQRaHBA7qu9NvOT4=;
 b=sj+ftqvo8Mkl71MI/mlXsE5IG5IVoIayGQEMQdC2Uj7P65+EBMd1r2QqzL7Hoadb/0hmozkOq0h+k079GMxCfz7euu/7c+tAJdurhYViga9lcOfYTfXfFnGUYjhVFIXlu4FDq5b49ctD3gzQkA6N+QjZUE1gXUSecBZezc6SzHcoG2o4ScpuDHcVeIFH7jiz2VkYzY5ns0Av0NUEovinyl88g5SJ+SoryW5k5bmP6zT6SXU4KiqG+spjEepAP+xto4spHg8rsM6trSrLxeWMxw1ccDJLWATM57TdZxMENN0t+i76aoDqlUbespvYEwjxrDdWZQoq0bTp66KvkChRmA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=i1mIa9MrqqUEDIVc5iZEApMT+ZHnQRaHBA7qu9NvOT4=;
 b=qmTiCYSkFp3OVDfXn8xp2O4jZM7eJs+iLnVEnjssStdb6Vh/2y0l3X1h3W7fJqSqz8Zwwtu1de7NGbZNzGA1O5sfc/xeEY+Kb7joet5ohCh2uULmer+UCko9ecGQtQEYI98dadHwoJLv+FIM/y/JJCNJ42FwZ13WRd2Ilib1UJo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <34703d62-5fa7-41a7-b2a1-ee5a2fe67c59@amd.com>
Date: Fri, 28 Nov 2025 10:21:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] xen/dom0less: move make_chosen_node() to common
 code
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>
References: <cover.1764260246.git.oleksii.kurochko@gmail.com>
 <84178652f3cd60303ac1e81f36f852bc685e0ba4.1764260246.git.oleksii.kurochko@gmail.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <84178652f3cd60303ac1e81f36f852bc685e0ba4.1764260246.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001F2:EE_|CY5PR12MB6575:EE_
X-MS-Office365-Filtering-Correlation-Id: c550b61c-ba57-40b5-d2e1-08de2e5f942a
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?cFppeS96dTNnWk1RUFNsTUtMeXR3bEYrT0R2SDRNN2xJeDhtTUpYYjRVcm9i?=
 =?utf-8?B?em85QTRRYVFkRmVZR29WdmR2dG9udktaQ1RqRk9PRUFGTzFqMjlub3hEZXJV?=
 =?utf-8?B?ZU0rYUZKZDNJOEFIV1JZejdEQkRaZUx0M1dpTHJnZHhGUk5tK2lJTXVBQ0Vi?=
 =?utf-8?B?S295SGxKN01sRHo4dUhManJpWlZPU01VOHJFbEl3UDQ4Z1ZRcElKZEdCL3BX?=
 =?utf-8?B?ZFMwcVNvd0VIREE2V1JSMDNpQ2RKUXE1SEw3TlowSDEvMmVnT0Q1R05ySFRR?=
 =?utf-8?B?aXBTcmYvd1pEVytLS0E0ZlBBSjBad2pxSlZKSFNocFRwRld6cTAxYmw3amNO?=
 =?utf-8?B?TnBCNHV0R2IyOFFIeExVcjJOZW44VmVLcnpDazltN0tpQkljR2w1ZW9qaXNl?=
 =?utf-8?B?dzVQaGpjT1A0WlpYQy95Z0pOcFlaemxzUjFzbGxtMEpubTMxUWh6K05TSHNS?=
 =?utf-8?B?TUFuZzBmdUxjQjF1QVpwV1E5em1Gb1pIMXBZdjRmdzVqS2huaFBaZGEyY3Fj?=
 =?utf-8?B?M1Jrc2hZWEZEa0p5d2NsaXBPclBnWmU4am0wT01XUGRyWXMzc3hranU4UTVI?=
 =?utf-8?B?ajYrL21HcUxDa3oweVdURVZxSytLcTBOME93M2xIcFhsSkNLVEFZUTdZZG1o?=
 =?utf-8?B?TFZMYVBGM1hqOFhocStnc0MvbWU0UkRqSk1hS0ptTU5Dc1Vwbk9DbFdGc1JJ?=
 =?utf-8?B?Q2xROFc2M0JJUzZTZEpTcXczWTJtQVh2MjFxQ0lEZDVTUTYweHIrMkZ0UnA5?=
 =?utf-8?B?U0Yya01ETExsd2RPdFVRbGN1cUxCSEJySGtyZ0JkaWhQRGNCaU0yejFvTWpR?=
 =?utf-8?B?ZXBNQk0xVE9hcHFYV1Nad2hKZVJFRldLUG9acTN2TlJKbnhzWm5SQndNS2RD?=
 =?utf-8?B?WkNjbGc4L2tKREZBd1V3bXlUTTFRbi9jSXJ3V3N5VzNrK1MyYlIxWWdCbUJI?=
 =?utf-8?B?bGZXd0hjZlhaaTNVWjBlS2hpaE91a3FyUDF1V0o4MGUvUlJSeTNESU9MQVVN?=
 =?utf-8?B?UmtHcnBCOVdhZ3pTTEZDUUMzT0JUS21JV092TUxLR1ZMUGozbHFlMlBYQklQ?=
 =?utf-8?B?YTQwOWFtYnZhdE10NjJ2NEkzWEhFMTFWWXAvSTIvWCtZdmJCL0lwTnpmeG9r?=
 =?utf-8?B?dThtemIyczJwbXNOZlhFeXBRVjlJNExDcnNPUmtOUjZCR1h2MXI3TlNGZzFG?=
 =?utf-8?B?TDBIcE40NEE5UmxSZlNmTVBSdXVFakFRVkh5am1DY2Q0aUlqR25Za0s4cnJI?=
 =?utf-8?B?UDNtRnhhWGxrVjVid2tRL05iNUhmbFNSa0YyZUdYYmtQdy9taytUdThCaXAy?=
 =?utf-8?B?ZjJJbDE3ZUFOYy9hWUlWZ2ltNmlWaG5BMGkyWEd5eGxsUnEyYVhOVE1QckxZ?=
 =?utf-8?B?T1B6TnIxVmY3RW9hUVVKbk9rQWw3V05RMnRzbDNKQmxjSmZ4TnRsMjQrdnlE?=
 =?utf-8?B?SUxYNDR0Mm5GdmxzNVI2UjJUYm4xaHZ6T0FBcGJJdXNKWmlMQ21DTDU2dzAy?=
 =?utf-8?B?Y0pNckYwcjNiT3BWZ3c4UlI4ZEZZdUJ5RTNCc0x0Z0RvRHBIUFRwdVpuczFu?=
 =?utf-8?B?WDZKNzJRa0ZndTc2T1VqRXlLUUNNZGZESTlTTjd0V3NwS1BkS2o0cWtUUkFG?=
 =?utf-8?B?aTd5NE0wcmxCSUNGZm81K1lkZUliREhsUURBdURzMmU0SEs4MnBwNkRrRUdU?=
 =?utf-8?B?QTg2ZGZ4SHB0bC9LeE1GTjB3SkZhZk1lRmtiblRSaldFUERsOFZ3ekhXOHpQ?=
 =?utf-8?B?eUhXS0ZDMTQ5WXJYNjFRWGZYSHZ0d1N6dVVNMEtaN2pVQjlla3RhK1BYRTd0?=
 =?utf-8?B?elBGWFlFLzdadm40Q3NObnZvN0lEa1VWS3hWY1RMUWdWazBwT0czSUNVeHpS?=
 =?utf-8?B?TUtFaGxNWURMbXRjVWJwSGZ5R1hWY21SRWk3cndtdE16eGNJa3NVQWRtMDYy?=
 =?utf-8?B?bjRMS0FIeDhKQ2FKOVpaY2t0UHZiUGU2THY4d1E5OVhML2JWeWRnelRYUS81?=
 =?utf-8?B?b1YzeEYrbkl5S0w1a2pIOHdGUHpSVFpHeTF4dGpHWng2QkVqbnpHVDE3U0Fi?=
 =?utf-8?B?OWNaOTVuQmFOamlXOHhWQ0hVUytuV2M5OUNHV3hXTkUvRWhVZmhyNGl6dTI5?=
 =?utf-8?Q?RaQQ=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)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2025 09:21:57.4456
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c550b61c-ba57-40b5-d2e1-08de2e5f942a
X-MS-Exchange-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:
	SJ5PEPF000001F2.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6575



On 27/11/2025 17:26, Oleksii Kurochko wrote:
> The current implementation of make_chosen_node() does not contain any
> architecture-specific logic. Therefore, move it from arch-specific
> files to common code.
> 
> At this stage, there is no need to introduce an arch_make_chosen_node(),
> as no architecture-specific customization is required.
> 
> This change avoids duplication and simplifies future maintenance for
> architectures like RISC-V and ARM.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 09:22:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 09:22:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174620.1499572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOugT-00028W-6n; Fri, 28 Nov 2025 09:22:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174620.1499572; Fri, 28 Nov 2025 09:22:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOugT-00028P-3w; Fri, 28 Nov 2025 09:22:33 +0000
Received: by outflank-mailman (input) for mailman id 1174620;
 Fri, 28 Nov 2025 09:22:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=V56+=6E=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vOugR-0001q2-H0
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 09:22:31 +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 c2d0f262-cc3b-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 10:22:30 +0100 (CET)
Received: from BY5PR16CA0008.namprd16.prod.outlook.com (2603:10b6:a03:1a0::21)
 by CH2PR12MB4149.namprd12.prod.outlook.com (2603:10b6:610:7c::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.13; Fri, 28 Nov
 2025 09:22:26 +0000
Received: from SJ5PEPF000001F1.namprd05.prod.outlook.com
 (2603:10b6:a03:1a0:cafe::76) by BY5PR16CA0008.outlook.office365.com
 (2603:10b6:a03:1a0::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.14 via Frontend Transport; Fri,
 28 Nov 2025 09:22:26 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ5PEPF000001F1.mail.protection.outlook.com (10.167.242.69) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.7 via Frontend Transport; Fri, 28 Nov 2025 09:22:26 +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; Fri, 28 Nov
 2025 03:22:24 -0600
Received: from [10.252.147.171] (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, 28 Nov 2025 01:22: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: c2d0f262-cc3b-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=S4PUaX3cfeyivzL81GhGsRc04zMFOUH0GKLc82dv85/iBx79xgycRDfZvqb3nPzKj4qrxzb9W8pKrr9JUcPZ2CowZ8o+l+DLGVe2ttpDPHbd2G+1BWWBsZY5TrEEIE0pozwYlWzAfT0LMg3gOkPjNcIJRUG7T3IX6zfWkmhmnRWR8gAc11z4Q8ygnRsuWrHz9KhMhkrFzTFK5+Boy9kCyWLZTzdNEt4P3lG40g5P5OHlcCmqtddEh2bUkAnpBeJVqK0x3gBhTTMK4/q806Le78IpS2QOFYXrsLOuhZ/ERiQS7O6I8p7IlcUvuKWA6z6Lu6w1JKGyKsjoblSTqjAa1A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cPZ7W7SxxB1tXe0MmaLlPapNOfnEVEZrhQASAuU9JI8=;
 b=QZLpK/Qt5E0N8MYthdtgZDTosnYuprnujjE7oxl4adjkcp/n9ySI0QniiJNkYgvfG5N4HQTHufb3fJ8ajymYAu/il/kspLjKWHH0UaZCFGch7Wi75H/0WMYJIj25duIbABHUtnIyC8cRYQW3nSy/J21b1f/12i5ufIq3rm2Wz8l9W3EL3NQFAtHcbv1YdRoA2JqWCOUrqtk6ZlFdOuZrQlmnDXkv0bXwK6H0JD+hqgh0xeofdQaLlheEKcpeIg3AM8132XYV7oWQOZc6zX26EZuwDqOPR46nUMWRM2bQ4H07SgL1ve+G8dfOyQgbJbC/iwDgmnPgShDzOzFPElBsXQ==
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=cPZ7W7SxxB1tXe0MmaLlPapNOfnEVEZrhQASAuU9JI8=;
 b=GjEXVImTlpGKoMLq9x18wPEZBC9PPsAzU5JNQnwVAExsVvfXKl9bKd0P+VogrnOJh3joOIh81ytj8SSnOSR7hie3rfhW1c7H20TjyQYbJvVZbgw7v2ugzOixCL8ue7vw6YSdvq6Sa1rUHCaz1KAhJ5wOp05/zBqXvQ80m6gnfbo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.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: <f2174149-1673-4cb8-839a-d96ad0588000@amd.com>
Date: Fri, 28 Nov 2025 10:22:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] xen/dom0less: move make_memory_node() to common
 code
To: Luca Fancellu <Luca.Fancellu@arm.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
References: <cover.1764260246.git.oleksii.kurochko@gmail.com>
 <dba41b3415313112a7612b5cfaf7ce0ee4a4a1ee.1764260246.git.oleksii.kurochko@gmail.com>
 <ECE56FA5-058A-4031-A4B3-74B3C2134A4A@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <ECE56FA5-058A-4031-A4B3-74B3C2134A4A@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001F1:EE_|CH2PR12MB4149:EE_
X-MS-Office365-Filtering-Correlation-Id: 72948932-d8cb-40b3-b186-08de2e5fa587
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?SkhIbmdZWnBGcWFtamJaRlNud1RSVGNtbUVDSm54SWJFbG9Gb2FHVElsOG9F?=
 =?utf-8?B?czlQUGlYV0o0NEhhUkJEU21LTXhoRy9hZWQ3MUV5ajhLRWRZZ3FqVEdWNzUr?=
 =?utf-8?B?S3JXcnlwUVpxNktKYU50ZFJrZDgwZG9kR3JrK0FNM2ZUdzZnUnZSNVFucVI3?=
 =?utf-8?B?YkRVcStLV242OStQOS8xODQ2N3lGTkdpaFFVWnBBTEFieWwwK1kvaFFuY0pZ?=
 =?utf-8?B?Q3Z5YldzWmlvQlZ5QVUvaER0cFB2Zy8yZ1dtZ3hNYzFoUHdXRTRsUTZxU0M0?=
 =?utf-8?B?MUlFbEtaWnYvV3Z5UUdrZ0Y5aVlIbmx0cnF3R2F5OFRJdE1TZFl3WGVBWlpk?=
 =?utf-8?B?Tml2elpaSEVuYkFkcEp4b05uMTB3UEcrS0VCbzNSZDJuVXh0UzY4R3Aya212?=
 =?utf-8?B?QU5QSlpjL3ltdWdDeDNreFBxeGpRTzNYZWdrWThORDgxeXRoS0NpQURFeWhS?=
 =?utf-8?B?cFY3ZldxVXBNdUtBMXJwWTVYUnF0QWdDVndIRDhESWN6bVdMS2wxRDBaSG5H?=
 =?utf-8?B?TFJENzYrUGZGWDc3Z3Q4cVNZQ2ZrTUNOY3hiZkI1ektKUWVwRU5kNDBGa2RC?=
 =?utf-8?B?VmhwdkFSOG1yNUk0Qk5sNDRSVk5nSTJ6b0FjM09UN01xVXZxR1NHcGcwaXdR?=
 =?utf-8?B?L1lJWXNnaktHUTUwUWw0UFlBTjdCaGZDWDZTU1R0U3VYdnNYRU05TW1iYnFS?=
 =?utf-8?B?VG00RklGS0FuZ2EvcGltNExyY0N5ZEVpcjJxbjZ5cHBYU2RzMzN2eWsyYXVv?=
 =?utf-8?B?SVNMUEtNdzNrejRMbGVqSi84eVdibWYvUnluYmdGVU9hOTdqZUZ3allzcFkx?=
 =?utf-8?B?eFdsVDd6MzZPczRqbTJ1WXdqQU5QNlhRZmhQUFdMRGJmNkRIZXRQY1orYmto?=
 =?utf-8?B?S01kR3E3S1BxbnRoMFV0cmxiU0tXRUVXazNhQWF5cGdNd1BmUzF1emtCeDY1?=
 =?utf-8?B?dEwyZHArcUUwS3R0azRqZ3JrK2xkNUtJYzExMmZRM3hWTDdkUzJueWxSWHl4?=
 =?utf-8?B?UXZQb25GeU5TbVhkTnZMTlNldVp4NndYM0lKZFdtQ056b3BLdUJzKzYxTnZp?=
 =?utf-8?B?aHdSciszTmplRWVLMjdTR0pLei9DdGU5SmZKN0hpTUNhNHRxWDVoazNYUzJV?=
 =?utf-8?B?bk9IQXpKNzhFWkMvNnhrYnJjSy9HNlNSSnd4aDBqTk5PYms1NUhwb1BIUzY5?=
 =?utf-8?B?Z3BvM2c3UkRrclRaNStGWTQ1UlNCemdZM2ZRTHlXeUdZQW5ncGlxeGI4bW9y?=
 =?utf-8?B?NjBKbzUzL0tSWGoyR2hZQ3hXN0JTbjBLM3Axbys5VmtHbGFBUWZad0tpdm1i?=
 =?utf-8?B?b2E3clJ1akU0M3lPTDFGTS8xanZJQmR2cW1IMXc0ZG9hRkY5YlpVK2pWRmps?=
 =?utf-8?B?bkF4MS9nb1dnNjZ0cXMzK0dkeFIxeGJVaHBQc3lHRzI1Uy8xSkpyTWZjL0FK?=
 =?utf-8?B?TmNpeTFNbGRtcERQNU5XK28vOU5VWFg2YXZSNE93VU9SL3dVeUNlZC9vUVl6?=
 =?utf-8?B?NmYwNG8zME9sZ1M2T1hkY3dQL0RiaTZRQXJHVjlya2EzYzRhQTBMT3dvZHZF?=
 =?utf-8?B?dXdUMEV6MzRTUUJOQXYvT3NIRU5Ga1hVTTlxUXhUK1cweENuZjhhSjNJbG9r?=
 =?utf-8?B?VEhGc2ROZjhWejFGUlVlellDdXczRVdwVnpVcy9kVGY4bVN2ZTM3N3hWTVZn?=
 =?utf-8?B?N1IyUkVNNzZEaEZxcmZ6YXZ0RTFNTHNBY3ptOXI0TVNRM2xPdUNoM2pGdHNR?=
 =?utf-8?B?WEdjRk5qZkhocTRSUDcxMTFyWE04VUNTTUJIblNNR0FIUU02VFFSMU1nM1dr?=
 =?utf-8?B?SWFNY1BxZWhJdXdzdGtIRHFyUEtvU2NCRGlMa2MxNUg2aUV3S3RLaG9YbVo0?=
 =?utf-8?B?cWlLWC9iMk1nY3hjV3Vud042ellRNmNOc2JWSjFBQ2lJQlNtbHpuK2JiNjJX?=
 =?utf-8?B?MXV5OTlpTnF6Nk1hK3dnRkJRb1o2TTVNd05ITHdqcllmVXhEdWhtZnZZR3hU?=
 =?utf-8?B?Um1IZitqblJpLzNmRG92OWx4Zmllc3EwSFYyV0VSb1pJNmwzUGJmaStFN2Vx?=
 =?utf-8?B?WHdDWjZWR1RERVBFVExHRTA5b3duN3VYRWZ5QkJyNSs4TG1RM2VjRUIzdW4r?=
 =?utf-8?Q?1Cc8=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-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2025 09:22:26.5753
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 72948932-d8cb-40b3-b186-08de2e5fa587
X-MS-Exchange-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:
	SJ5PEPF000001F1.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4149



On 28/11/2025 10:06, Luca Fancellu wrote:
> Hi Oleksii,
>>
>> diff --git a/xen/common/device-tree/domain-build.c b/xen/common/device-tree/domain-build.c
>> index 774790aab3..6708c9dd66 100644
>> --- a/xen/common/device-tree/domain-build.c
>> +++ b/xen/common/device-tree/domain-build.c
>> @@ -8,6 +8,7 @@
>> #include <xen/mm.h>
>> #include <xen/sched.h>
>> #include <xen/sizes.h>
>> +#include <xen/static-shmem.h>
>> #include <xen/types.h>
>> #include <xen/vmap.h>
>>
>> @@ -451,6 +452,80 @@ int __init make_chosen_node(const struct kernel_info *kinfo)
>>    return res;
>> }
>>
>> +int __init make_memory_node(const struct kernel_info *kinfo, int addrcells,
>> +                            int sizecells, const struct membanks *mem)
>> +{
>> +    void *fdt = kinfo->fdt;
>> +    unsigned int i;
>> +    int res, reg_size = addrcells + sizecells;
>> +    int nr_cells = 0;
>> +    __be32 reg[DT_MEM_NODE_REG_RANGE_SIZE];
>> +    __be32 *cells;
>> +
>> +    if ( mem->nr_banks == 0 )
>> +        return -ENOENT;
>> +
>> +    /* find the first memory range that is reserved for device (or firmware) */
>> +    for ( i = 0; i < mem->nr_banks &&
>> +                 (mem->bank[i].type != MEMBANK_DEFAULT); i++ )
>> +        ;
> 
> NIT: maybe we can fix the code style here, maintainers can give their opinion.
I'd prefer to keep the movement clean.

Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 10:00:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 10:00:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174638.1499581 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOvGH-0007DL-QF; Fri, 28 Nov 2025 09:59:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174638.1499581; Fri, 28 Nov 2025 09: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 1vOvGH-0007DE-Nm; Fri, 28 Nov 2025 09:59:33 +0000
Received: by outflank-mailman (input) for mailman id 1174638;
 Fri, 28 Nov 2025 09:59:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kA0B=6E=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1vOvGF-0007D4-VF
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 09:59:32 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id e6413994-cc40-11f0-9d18-b5c5bf9af7f9;
 Fri, 28 Nov 2025 10:59: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 52BB51A25;
 Fri, 28 Nov 2025 01:59: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 AC04E3F73B;
 Fri, 28 Nov 2025 01:59: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: e6413994-cc40-11f0-9d18-b5c5bf9af7f9
From: Harry Ramsey <harry.ramsey@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Luca.Fancellu@arm.com,
	Luca Fancellu <luca.fancellu@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Hari Limaye <hari.limaye@arm.com>
Subject: [PATCH 1/6] arm/mpu: Implement copy_from_paddr for MPU systems
Date: Fri, 28 Nov 2025 09:58:54 +0000
Message-ID: <20251128095859.11264-2-harry.ramsey@arm.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251128095859.11264-1-harry.ramsey@arm.com>
References: <20251128095859.11264-1-harry.ramsey@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

Implement the function copy_from_paddr variant for MPU systems, using
the map_pages_to_xen/destroy_xen_mappings to temporarily map the memory
range to be copied.

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/mpu/setup.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/mpu/setup.c b/xen/arch/arm/mpu/setup.c
index 163573b932..ec264f54f2 100644
--- a/xen/arch/arm/mpu/setup.c
+++ b/xen/arch/arm/mpu/setup.c
@@ -91,7 +91,19 @@ void * __init early_fdt_map(paddr_t fdt_paddr)
  */
 void __init copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
 {
-    BUG_ON("unimplemented");
+    paddr_t start_pg = round_pgdown(paddr);
+    paddr_t end_pg   = round_pgup(paddr + len);
+    unsigned long nr_mfns = (end_pg - start_pg) >> PAGE_SHIFT;
+    mfn_t mfn = maddr_to_mfn(start_pg);
+
+    if ( map_pages_to_xen(start_pg, mfn, nr_mfns, PAGE_HYPERVISOR_WC) )
+        panic("Unable to map range for copy_from_paddr\n");
+
+    memcpy(dst, maddr_to_virt(paddr), len);
+    clean_dcache_va_range(dst, len);
+
+    if ( destroy_xen_mappings(start_pg, end_pg) )
+        panic("Unable to unmap range for copy_from_paddr\n");
 }
 
 void __init remove_early_mappings(void)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 10:01:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 10:01:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174646.1499592 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOvHs-0000JQ-5i; Fri, 28 Nov 2025 10:01:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174646.1499592; Fri, 28 Nov 2025 10:01:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOvHs-0000JJ-1R; Fri, 28 Nov 2025 10:01:12 +0000
Received: by outflank-mailman (input) for mailman id 1174646;
 Fri, 28 Nov 2025 10:01: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=kA0B=6E=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1vOvHr-0000F3-AC
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 10:01:11 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id e4ab9126-cc40-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 11:00:46 +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 A0A45176A;
 Fri, 28 Nov 2025 01:59: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 E49ED3F73B;
 Fri, 28 Nov 2025 01:59: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: e4ab9126-cc40-11f0-980a-7dc792cee155
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/6] Fourth MPU series
Date: Fri, 28 Nov 2025 09:58:53 +0000
Message-ID: <20251128095859.11264-1-harry.ramsey@arm.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This series aims to further the ongoing work to introduce support for MPU
systems in xen.

The patches in this series implement various memory functions and enable the
hypervisor timer.

Luca Fancellu (3):
  arm/mpu: Implement copy_from_paddr for MPU systems
  arm/mpu: Implement vmap functions for MPU
  arm/mpu: Introduce modify_after_init_mappings

Penny Zheng (3):
  arm/mpu: Implement free_init_memory for MPU systems
  arm: Use secure hypervisor timer in MPU system
  arm/mpu: Map domain page in AArch64 MPU systems

 xen/arch/arm/Kconfig                     |   6 +
 xen/arch/arm/include/asm/arm64/sysregs.h |  12 ++
 xen/arch/arm/include/asm/mpu/mm.h        |  11 ++
 xen/arch/arm/include/asm/setup.h         |   5 +
 xen/arch/arm/mmu/setup.c                 |  15 +++
 xen/arch/arm/mpu/Makefile                |   1 +
 xen/arch/arm/mpu/domain-page.c           |  53 ++++++++
 xen/arch/arm/mpu/mm.c                    | 160 ++++++++++++++++++-----
 xen/arch/arm/mpu/setup.c                 |  54 +++++++-
 xen/arch/arm/mpu/vmap.c                  |  14 +-
 xen/arch/arm/setup.c                     |  15 +--
 11 files changed, 296 insertions(+), 50 deletions(-)
 create mode 100644 xen/arch/arm/mpu/domain-page.c

--
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 10:01:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 10:01:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174647.1499602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOvHt-0000XK-DX; Fri, 28 Nov 2025 10:01:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174647.1499602; Fri, 28 Nov 2025 10:01:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOvHt-0000X4-9G; Fri, 28 Nov 2025 10:01:13 +0000
Received: by outflank-mailman (input) for mailman id 1174647;
 Fri, 28 Nov 2025 10:01:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kA0B=6E=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1vOvHs-0000F3-AJ
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 10:01:12 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id ec8084b1-cc40-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 11:00:46 +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 DDB211A25;
 Fri, 28 Nov 2025 01:59:18 -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 512303F73B;
 Fri, 28 Nov 2025 01:59: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: ec8084b1-cc40-11f0-980a-7dc792cee155
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>
Subject: [PATCH 5/6] arm: Use secure hypervisor timer in MPU system
Date: Fri, 28 Nov 2025 09:58:58 +0000
Message-ID: <20251128095859.11264-6-harry.ramsey@arm.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251128095859.11264-1-harry.ramsey@arm.com>
References: <20251128095859.11264-1-harry.ramsey@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Penny Zheng <Penny.Zheng@arm.com>

As MPU systems only have one secure state, we have to use secure EL2
hypervisor timer for Xen in secure EL2.

In this patch, we introduce a new Kconfig option ARM_SECURE_STATE
and a set of secure hypervisor timer registers CNTHPS_*_EL2.
We alias CNTHP_*_EL2 to CNTHPS_*_EL2 to keep the timer code
flow unchanged.

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: Harry Ramsey <harry.ramsey@arm.com>
---
 xen/arch/arm/Kconfig                     |  5 +++++
 xen/arch/arm/include/asm/arm64/sysregs.h | 12 ++++++++++++
 2 files changed, 17 insertions(+)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index cf6af68299..a5c111e08e 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -91,6 +91,7 @@ config MMU
 
 config MPU
 	bool "MPU" if UNSUPPORTED
+	select ARM_SECURE_STATE if ARM_64
 	select STATIC_MEMORY
 	help
 	  Memory Protection Unit (MPU). Select if you plan to run Xen on ARMv8-R
@@ -223,6 +224,10 @@ config HARDEN_BRANCH_PREDICTOR
 
 	  If unsure, say Y.
 
+config ARM_SECURE_STATE
+	bool "Xen will run in Arm Secure State"
+	default n
+
 config ARM64_PTR_AUTH
 	def_bool n
 	depends on ARM_64
diff --git a/xen/arch/arm/include/asm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
index 7440d495e4..29caad7155 100644
--- a/xen/arch/arm/include/asm/arm64/sysregs.h
+++ b/xen/arch/arm/include/asm/arm64/sysregs.h
@@ -462,6 +462,18 @@
 #define ZCR_ELx_LEN_SIZE             9
 #define ZCR_ELx_LEN_MASK             0x1ff
 
+#ifdef CONFIG_ARM_SECURE_STATE
+/*
+ * The Armv8-R AArch64 architecture always executes code in Secure
+ * state with EL2 as the highest Exception.
+ *
+ * Hypervisor timer registers for Secure EL2.
+ */
+#define CNTHP_TVAL_EL2  CNTHPS_TVAL_EL2
+#define CNTHP_CTL_EL2   CNTHPS_CTL_EL2
+#define CNTHP_CVAL_EL2  CNTHPS_CVAL_EL2
+#endif
+
 #define REGION_TEXT_PRBAR       0x38    /* SH=11 AP=10 XN=00 */
 #define REGION_RO_PRBAR         0x3A    /* SH=11 AP=10 XN=10 */
 #define REGION_DATA_PRBAR       0x32    /* SH=11 AP=00 XN=10 */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 10:01:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 10:01:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174648.1499613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOvHu-0000mG-Ps; Fri, 28 Nov 2025 10:01:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174648.1499613; Fri, 28 Nov 2025 10: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 1vOvHu-0000m9-LQ; Fri, 28 Nov 2025 10:01:14 +0000
Received: by outflank-mailman (input) for mailman id 1174648;
 Fri, 28 Nov 2025 10:01: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=kA0B=6E=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1vOvHt-0000F3-AM
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 10:01:13 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id ea677e57-cc40-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 11:00:46 +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 44BA71A9A;
 Fri, 28 Nov 2025 01:59:15 -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 EB73E3F73B;
 Fri, 28 Nov 2025 01: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: ea677e57-cc40-11f0-980a-7dc792cee155
From: Harry Ramsey <harry.ramsey@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Luca.Fancellu@arm.com,
	Luca Fancellu <luca.fancellu@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Hari Limaye <hari.limaye@arm.com>
Subject: [PATCH 4/6] arm/mpu: Introduce modify_after_init_mappings
Date: Fri, 28 Nov 2025 09:58:57 +0000
Message-ID: <20251128095859.11264-5-harry.ramsey@arm.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251128095859.11264-1-harry.ramsey@arm.com>
References: <20251128095859.11264-1-harry.ramsey@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

During `init_done`, Xen sets the permissions of all symbols marked with
__ro_after_init to be read-only. Currently this is achieved by calling
`modify_xen_mappings` and will shrink the RW mapping on one side and
extend the RO mapping on the other.

This does not work on MPU systems at present because part-region
modification is not supported. Therefore introduce the function
`modify_after_init_mappings` for MMU and MPU, to handle the divergent
approaches to setting permissions of __ro_after_init symbols.

As the new function is marked with __init, it needs to be called before
`free_init_memory`.

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/include/asm/setup.h |  3 +++
 xen/arch/arm/mmu/setup.c         | 15 ++++++++++++
 xen/arch/arm/mpu/mm.c            |  2 +-
 xen/arch/arm/mpu/setup.c         | 40 ++++++++++++++++++++++++++++++++
 xen/arch/arm/setup.c             | 15 ++----------
 5 files changed, 61 insertions(+), 14 deletions(-)

diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
index 005cf7be59..899e33925c 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -78,6 +78,9 @@ struct init_info
 paddr_t consider_modules(paddr_t s, paddr_t e, uint32_t size, paddr_t align,
                          int first_mod);
 
+/* Modify some mappings after the init is done */
+void modify_after_init_mappings(void);
+
 #endif
 /*
  * Local variables:
diff --git a/xen/arch/arm/mmu/setup.c b/xen/arch/arm/mmu/setup.c
index 9b874f8ab2..d042f73597 100644
--- a/xen/arch/arm/mmu/setup.c
+++ b/xen/arch/arm/mmu/setup.c
@@ -213,6 +213,21 @@ void __init remove_early_mappings(void)
     BUG_ON(rc);
 }
 
+void __init modify_after_init_mappings(void)
+{
+    /*
+     * We have finished booting. Mark the section .data.ro_after_init
+     * read-only.
+     */
+    int rc = modify_xen_mappings((unsigned long)&__ro_after_init_start,
+                                 (unsigned long)&__ro_after_init_end,
+                                 PAGE_HYPERVISOR_RO);
+
+    if ( rc )
+        panic("Unable to mark the .data.ro_after_init section read-only (rc = %d)\n",
+              rc);
+}
+
 /*
  * After boot, Xen page-tables should not contain mapping that are both
  * Writable and eXecutables.
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 8446dddde8..f95ba7c749 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -32,7 +32,7 @@ DECLARE_BITMAP(xen_mpumap_mask, MAX_MPU_REGION_NR) \
 /* EL2 Xen MPU memory region mapping table. */
 pr_t __cacheline_aligned __section(".data") xen_mpumap[MAX_MPU_REGION_NR];
 
-static DEFINE_SPINLOCK(xen_mpumap_lock);
+DEFINE_SPINLOCK(xen_mpumap_lock);
 
 static void __init __maybe_unused build_assertions(void)
 {
diff --git a/xen/arch/arm/mpu/setup.c b/xen/arch/arm/mpu/setup.c
index ec264f54f2..55317ee318 100644
--- a/xen/arch/arm/mpu/setup.c
+++ b/xen/arch/arm/mpu/setup.c
@@ -8,11 +8,14 @@
 #include <xen/pfn.h>
 #include <xen/types.h>
 #include <xen/sizes.h>
+#include <xen/spinlock.h>
 #include <asm/setup.h>
 
 static paddr_t __initdata mapped_fdt_base = INVALID_PADDR;
 static paddr_t __initdata mapped_fdt_limit = INVALID_PADDR;
 
+extern spinlock_t xen_mpumap_lock;
+
 void __init setup_pagetables(void) {}
 
 void * __init early_fdt_map(paddr_t fdt_paddr)
@@ -106,6 +109,43 @@ void __init copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
         panic("Unable to unmap range for copy_from_paddr\n");
 }
 
+void __init modify_after_init_mappings(void)
+{
+    int rc;
+    uint8_t idx_rodata;
+    uint8_t idx_rwdata;
+
+    spin_lock(&xen_mpumap_lock);
+
+    rc = mpumap_contains_region(xen_mpumap, max_mpu_regions,
+                                (unsigned long)_srodata,
+                                (unsigned long)_erodata,
+                                &idx_rodata);
+
+    if ( rc < MPUMAP_REGION_FOUND )
+        panic("Unable to find rodata section (rc = %d)\n", rc);
+
+    rc = mpumap_contains_region(xen_mpumap, max_mpu_regions,
+                                (unsigned long)__ro_after_init_start,
+                                (unsigned long)__init_begin,
+                                &idx_rwdata);
+
+    if ( rc < MPUMAP_REGION_FOUND )
+        panic("Unable to find rwdata section (rc = %d)\n", rc);
+
+    /* Shrink rwdata section to begin at __ro_after_init_end */
+    pr_set_base(&xen_mpumap[idx_rwdata], (unsigned long)__ro_after_init_end);
+
+    /* Extend rodata section to end at __ro_after_init_end */
+    pr_set_limit(&xen_mpumap[idx_rodata], (unsigned long)__ro_after_init_end);
+
+    write_protection_region(&xen_mpumap[idx_rwdata], idx_rwdata);
+    write_protection_region(&xen_mpumap[idx_rodata], idx_rodata);
+    context_sync_mpu();
+
+    spin_unlock(&xen_mpumap_lock);
+}
+
 void __init remove_early_mappings(void)
 {
     int rc = destroy_xen_mappings(round_pgdown(mapped_fdt_base),
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 7ad870e382..6310a47d68 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -66,23 +66,12 @@ domid_t __read_mostly max_init_domid;
 
 static __used void noreturn init_done(void)
 {
-    int rc;
-
     /* Must be done past setting system_state. */
     unregister_init_virtual_region();
 
-    free_init_memory();
+    modify_after_init_mappings();
 
-    /*
-     * We have finished booting. Mark the section .data.ro_after_init
-     * read-only.
-     */
-    rc = modify_xen_mappings((unsigned long)&__ro_after_init_start,
-                             (unsigned long)&__ro_after_init_end,
-                             PAGE_HYPERVISOR_RO);
-    if ( rc )
-        panic("Unable to mark the .data.ro_after_init section read-only (rc = %d)\n",
-              rc);
+    free_init_memory();
 
     startup_cpu_idle_loop();
 }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 10:01:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 10:01:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174649.1499622 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOvHv-000114-Ve; Fri, 28 Nov 2025 10:01:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174649.1499622; Fri, 28 Nov 2025 10:01: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 1vOvHv-00010t-St; Fri, 28 Nov 2025 10:01:15 +0000
Received: by outflank-mailman (input) for mailman id 1174649;
 Fri, 28 Nov 2025 10:01: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=kA0B=6E=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1vOvHu-0000F3-AW
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 10:01:14 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id edf10654-cc40-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 11:00:46 +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 32D6F1AC1;
 Fri, 28 Nov 2025 01:59:21 -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 EE76F3F73B;
 Fri, 28 Nov 2025 01:59: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: edf10654-cc40-11f0-980a-7dc792cee155
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>
Subject: [PATCH 6/6] arm/mpu: Map domain page in AArch64 MPU systems
Date: Fri, 28 Nov 2025 09:58:59 +0000
Message-ID: <20251128095859.11264-7-harry.ramsey@arm.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251128095859.11264-1-harry.ramsey@arm.com>
References: <20251128095859.11264-1-harry.ramsey@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Penny Zheng <Penny.Zheng@arm.com>

In MPU systems, we implement map_domain_page()/unmap_domain_page()
through mapping the domain page with a MPU region on demand.

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: Harry Ramsey <harry.ramsey@arm.com>
---
 xen/arch/arm/Kconfig           |  1 +
 xen/arch/arm/mpu/Makefile      |  1 +
 xen/arch/arm/mpu/domain-page.c | 53 ++++++++++++++++++++++++++++++++++
 3 files changed, 55 insertions(+)
 create mode 100644 xen/arch/arm/mpu/domain-page.c

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index a5c111e08e..dac9a16c28 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -91,6 +91,7 @@ config MMU
 
 config MPU
 	bool "MPU" if UNSUPPORTED
+	select ARCH_MAP_DOMAIN_PAGE if ARM_64
 	select ARM_SECURE_STATE if ARM_64
 	select STATIC_MEMORY
 	help
diff --git a/xen/arch/arm/mpu/Makefile b/xen/arch/arm/mpu/Makefile
index 4963c8b550..940297af3f 100644
--- a/xen/arch/arm/mpu/Makefile
+++ b/xen/arch/arm/mpu/Makefile
@@ -1,5 +1,6 @@
 obj-$(CONFIG_ARM_32) += arm32/
 obj-$(CONFIG_ARM_64) += arm64/
+obj-$(CONFIG_ARM_64) += domain-page.o
 obj-y += mm.o
 obj-y += p2m.o
 obj-y += setup.init.o
diff --git a/xen/arch/arm/mpu/domain-page.c b/xen/arch/arm/mpu/domain-page.c
new file mode 100644
index 0000000000..9248053ff5
--- /dev/null
+++ b/xen/arch/arm/mpu/domain-page.c
@@ -0,0 +1,53 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/bug.h>
+#include <xen/domain_page.h>
+#include <xen/mm.h>
+#include <xen/mm-frame.h>
+#include <xen/types.h>
+
+void *map_domain_page_global(mfn_t mfn)
+{
+    BUG_ON("unimplemented");
+    return NULL;
+}
+
+/* Map a page of domheap memory */
+void *map_domain_page(mfn_t mfn)
+{
+    paddr_t pa = mfn_to_maddr(mfn);
+
+    if ( map_pages_to_xen((unsigned long)pa, mfn, 1, PAGE_HYPERVISOR_RW) )
+        return NULL;
+
+    return maddr_to_virt(pa);
+}
+
+/* Release a mapping taken with map_domain_page() */
+void unmap_domain_page(const void *ptr)
+{
+    paddr_t base = virt_to_maddr(ptr);
+
+    if ( destroy_entire_xen_mapping(base) )
+        panic("Failed to unmap domain page\n");
+}
+
+mfn_t domain_page_map_to_mfn(const void *ptr)
+{
+    BUG_ON("unimplemented");
+    return INVALID_MFN;
+}
+
+void unmap_domain_page_global(const void *va)
+{
+    BUG_ON("unimplemented");
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 10:01:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 10:01:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174650.1499627 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOvHw-00014l-95; Fri, 28 Nov 2025 10:01:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174650.1499627; Fri, 28 Nov 2025 10:01: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 1vOvHw-00014b-5c; Fri, 28 Nov 2025 10:01:16 +0000
Received: by outflank-mailman (input) for mailman id 1174650;
 Fri, 28 Nov 2025 10:01: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=kA0B=6E=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1vOvHv-0000F3-B4
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 10:01:15 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id e926ac68-cc40-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 11:00:46 +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 3B0501A32;
 Fri, 28 Nov 2025 01:59:13 -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 B686C3F73B;
 Fri, 28 Nov 2025 01:59: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: e926ac68-cc40-11f0-980a-7dc792cee155
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 3/6] arm/mpu: Implement free_init_memory for MPU systems
Date: Fri, 28 Nov 2025 09:58:56 +0000
Message-ID: <20251128095859.11264-4-harry.ramsey@arm.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251128095859.11264-1-harry.ramsey@arm.com>
References: <20251128095859.11264-1-harry.ramsey@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Penny Zheng <Penny.Zheng@arm.com>

Implement the function `free_init_memory` for MPU systems. In order to
support this, the function `modify_xen_mappings` is implemented.

On MPU systems, we map the init text and init data sections using
separate MPU memory regions. Therefore these are removed separately in
`free_init_memory`.

Additionally remove warning messages from `is_mm_attr_match` as some
permissions can now be updated by `xen_mpumap_update_entry`.

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/include/asm/setup.h |  2 +
 xen/arch/arm/mpu/mm.c            | 91 +++++++++++++++++++++++++-------
 2 files changed, 73 insertions(+), 20 deletions(-)

diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
index 1eaf13bd66..005cf7be59 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -65,6 +65,8 @@ int map_irq_to_domain(struct domain *d, unsigned int irq,
 int map_range_to_domain(const struct dt_device_node *dev,
                         uint64_t addr, uint64_t len, void *data);
 
+extern const char __init_data_begin[], __bss_start[], __bss_end[];
+
 struct init_info
 {
     /* Pointer to the stack, used by head.S when entering in C */
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 29d8e7ff11..8446dddde8 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -174,28 +174,13 @@ int mpumap_contains_region(pr_t *table, uint8_t nr_regions, paddr_t base,
 static bool is_mm_attr_match(pr_t *region, unsigned int attributes)
 {
     if ( region->prbar.reg.ro != PAGE_RO_MASK(attributes) )
-    {
-        printk(XENLOG_WARNING
-               "Mismatched Access Permission attributes (%#x instead of %#x)\n",
-               region->prbar.reg.ro, PAGE_RO_MASK(attributes));
         return false;
-    }
 
     if ( region->prbar.reg.xn != PAGE_XN_MASK(attributes) )
-    {
-        printk(XENLOG_WARNING
-               "Mismatched Execute Never attributes (%#x instead of %#x)\n",
-               region->prbar.reg.xn, PAGE_XN_MASK(attributes));
         return false;
-    }
 
     if ( region->prlar.reg.ai != PAGE_AI_MASK(attributes) )
-    {
-        printk(XENLOG_WARNING
-               "Mismatched Memory Attribute Index (%#x instead of %#x)\n",
-               region->prlar.reg.ai, PAGE_AI_MASK(attributes));
         return false;
-    }
 
     return true;
 }
@@ -352,8 +337,33 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
     {
         if ( !is_mm_attr_match(&xen_mpumap[idx], flags) )
         {
-            printk("Modifying an existing entry is not supported\n");
-            return -EINVAL;
+            if ( rc == MPUMAP_REGION_INCLUSIVE )
+            {
+                printk(XENLOG_ERR
+                       "Cannot modify partial region permissions\n");
+                return -EINVAL;
+            }
+
+            if ( xen_mpumap[idx].prlar.reg.ai != PAGE_AI_MASK(flags) )
+            {
+                printk(XENLOG_ERR
+                       "Modifying memory attribute is not supported\n");
+                return -EINVAL;
+            }
+
+            if ( xen_mpumap[idx].refcount != 0 )
+            {
+                printk(XENLOG_ERR
+                       "Cannot modify memory permissions for a region mapped multiple time\n");
+                return -EINVAL;
+            }
+
+            /* Set new permission */
+            xen_mpumap[idx].prbar.reg.ro = PAGE_RO_MASK(flags);
+            xen_mpumap[idx].prbar.reg.xn = PAGE_XN_MASK(flags);
+
+            write_protection_region(&xen_mpumap[idx], idx);
+            return 0;
         }
 
         /* Check for overflow of refcount before incrementing.  */
@@ -499,8 +509,7 @@ void __init setup_mm_helper(void)
 
 int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
 {
-    BUG_ON("unimplemented");
-    return -EINVAL;
+    return xen_mpumap_update(s, e, nf);
 }
 
 void dump_hyp_walk(vaddr_t addr)
@@ -511,7 +520,49 @@ void dump_hyp_walk(vaddr_t addr)
 /* Release all __init and __initdata ranges to be reused */
 void free_init_memory(void)
 {
-    BUG_ON("unimplemented");
+    unsigned long inittext_end = round_pgup((unsigned long)__init_data_begin);
+    unsigned long len = __init_end - __init_begin;
+    uint8_t idx;
+    int rc;
+
+    rc = modify_xen_mappings((unsigned long)__init_begin, inittext_end,
+                             PAGE_HYPERVISOR_RW);
+    if ( rc )
+        panic("Unable to map RW the init text section (rc = %d)\n", rc);
+
+    /*
+     * From now on, init will not be used for execution anymore,
+     * so nuke the instruction cache to remove entries related to init.
+     */
+    invalidate_icache_local();
+
+    /* Zeroing the memory before returning it */
+    memset(__init_begin, 0, len);
+
+    rc = destroy_xen_mappings((unsigned long)__init_begin, inittext_end);
+    if ( rc )
+        panic("Unable to remove init text section (rc = %d)\n", rc);
+
+    /*
+     * The initdata and bss sections are mapped using a single MPU region, so
+     * modify the start of this region to remove the initdata section.
+     */
+    spin_lock(&xen_mpumap_lock);
+
+    rc = mpumap_contains_region(xen_mpumap, max_mpu_regions,
+                                (unsigned long)__init_data_begin,
+                                (unsigned long)__bss_end,
+                                &idx);
+    if ( rc < MPUMAP_REGION_FOUND )
+        panic("Unable to find bss data section (rc = %d)\n", rc);
+
+    /* bss data section is shrunk and now starts from __bss_start */
+    pr_set_base(&xen_mpumap[idx], (unsigned long)__bss_start);
+
+    write_protection_region(&xen_mpumap[idx], idx);
+    context_sync_mpu();
+
+    spin_unlock(&xen_mpumap_lock);
 }
 
 void __iomem *ioremap_attr(paddr_t start, size_t len, unsigned int flags)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 10:01:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 10:01:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174651.1499641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOvHx-0001TG-Jn; Fri, 28 Nov 2025 10:01:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174651.1499641; Fri, 28 Nov 2025 10:01:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOvHx-0001SP-Fn; Fri, 28 Nov 2025 10:01:17 +0000
Received: by outflank-mailman (input) for mailman id 1174651;
 Fri, 28 Nov 2025 10:01: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=kA0B=6E=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1vOvHw-0000F3-BB
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 10:01:16 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id e73ce2c0-cc40-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 11:00:46 +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 052371A2D;
 Fri, 28 Nov 2025 01:59:10 -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 0F4AE3F73B;
 Fri, 28 Nov 2025 01:59: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: e73ce2c0-cc40-11f0-980a-7dc792cee155
From: Harry Ramsey <harry.ramsey@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Luca.Fancellu@arm.com,
	Luca Fancellu <luca.fancellu@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH 2/6] arm/mpu: Implement vmap functions for MPU
Date: Fri, 28 Nov 2025 09:58:55 +0000
Message-ID: <20251128095859.11264-3-harry.ramsey@arm.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20251128095859.11264-1-harry.ramsey@arm.com>
References: <20251128095859.11264-1-harry.ramsey@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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

HAS_VMAP is not enabled on MPU systems, but the vmap functions are used
in places across common code. In order to keep the existing code and
maintain correct functionality, implement the `vmap_contig` and `vunmap`
functions for MPU systems.

Introduce a helper function `destroy_entire_xen_mapping` to aid with
unmapping an entire region when only the start address is known.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
---
 xen/arch/arm/include/asm/mpu/mm.h | 11 +++++
 xen/arch/arm/mpu/mm.c             | 67 +++++++++++++++++++++++++------
 xen/arch/arm/mpu/vmap.c           | 14 +++++--
 3 files changed, 77 insertions(+), 15 deletions(-)

diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
index e1ded6521d..83ee0e59ca 100644
--- a/xen/arch/arm/include/asm/mpu/mm.h
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -111,6 +111,17 @@ pr_t pr_of_addr(paddr_t base, paddr_t limit, unsigned int flags);
 int mpumap_contains_region(pr_t *table, uint8_t nr_regions, paddr_t base,
                            paddr_t limit, uint8_t *index);
 
+
+/*
+ * Destroys and frees (if reference count is 0) an entire xen mapping on MPU
+ * systems where only the start address is known.
+ *
+ * @param s     Start address of memory region to be destroyed.
+ *
+ * @return:     0 on success, negative on error.
+ */
+int destroy_entire_xen_mapping(paddr_t s);
+
 #endif /* __ARM_MPU_MM_H__ */
 
 /*
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 687dec3bc6..29d8e7ff11 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -290,6 +290,35 @@ static void disable_mpu_region_from_index(uint8_t index)
         write_protection_region(&xen_mpumap[index], index);
 }
 
+/*
+ * Free a xen_mpumap entry given the index. A mpu region is actually disabled
+ * when the refcount is 0 and the region type is MPUMAP_REGION_FOUND.
+ *
+ * @param idx                   Index of the mpumap entry.
+ * @param region_found_type     Either MPUMAP_REGION_FOUND or MPUMAP_REGION_INCLUSIVE.
+ * @return                      0 on success, otherwise negative on error.
+ */
+static int xen_mpumap_free_entry(uint8_t idx, int region_found_type)
+{
+    ASSERT(spin_is_locked(&xen_mpumap_lock));
+    ASSERT(idx != INVALID_REGION_IDX);
+
+    if ( xen_mpumap[idx].refcount == 0 )
+    {
+        if ( MPUMAP_REGION_FOUND == region_found_type )
+            disable_mpu_region_from_index(idx);
+        else
+        {
+            printk(XENLOG_ERR "Cannot remove a partial region\n");
+            return -EINVAL;
+        }
+    }
+    else
+        xen_mpumap[idx].refcount -= 1;
+
+    return 0;
+}
+
 /*
  * Update the entry in the MPU memory region mapping table (xen_mpumap) for the
  * given memory range and flags, creating one if none exists.
@@ -357,18 +386,7 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
             return -EINVAL;
         }
 
-        if ( xen_mpumap[idx].refcount == 0 )
-        {
-            if ( MPUMAP_REGION_FOUND == rc )
-                disable_mpu_region_from_index(idx);
-            else
-            {
-                printk("Cannot remove a partial region\n");
-                return -EINVAL;
-            }
-        }
-        else
-            xen_mpumap[idx].refcount -= 1;
+        return xen_mpumap_free_entry(idx, rc);
     }
 
     return 0;
@@ -418,6 +436,31 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
     return xen_mpumap_update(s, e, 0);
 }
 
+int destroy_entire_xen_mapping(paddr_t s)
+{
+    int rc;
+    uint8_t idx;
+
+    ASSERT(IS_ALIGNED(s, PAGE_SIZE));
+
+    spin_lock(&xen_mpumap_lock);
+
+    rc = mpumap_contains_region(xen_mpumap, max_mpu_regions, s, s + PAGE_SIZE,
+                                &idx);
+    if ( rc == MPUMAP_REGION_NOTFOUND )
+    {
+        printk(XENLOG_ERR "Cannot remove entry that does not exist");
+        rc = -EINVAL;
+    }
+
+    /* As we are unmapping entire region use MPUMAP_REGION_FOUND instead */
+    rc = xen_mpumap_free_entry(idx, MPUMAP_REGION_FOUND);
+
+    spin_unlock(&xen_mpumap_lock);
+
+    return rc;
+}
+
 int map_pages_to_xen(unsigned long virt, mfn_t mfn, unsigned long nr_mfns,
                      unsigned int flags)
 {
diff --git a/xen/arch/arm/mpu/vmap.c b/xen/arch/arm/mpu/vmap.c
index f977b79cd4..d3037ae98a 100644
--- a/xen/arch/arm/mpu/vmap.c
+++ b/xen/arch/arm/mpu/vmap.c
@@ -1,19 +1,27 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
 #include <xen/bug.h>
+#include <xen/mm.h>
 #include <xen/mm-frame.h>
 #include <xen/types.h>
 #include <xen/vmap.h>
 
 void *vmap_contig(mfn_t mfn, unsigned int nr)
 {
-    BUG_ON("unimplemented");
-    return NULL;
+    paddr_t base = mfn_to_maddr(mfn);
+
+    if ( map_pages_to_xen(base, mfn, nr, PAGE_HYPERVISOR ) )
+        return NULL;
+
+    return maddr_to_virt(base);
 }
 
 void vunmap(const void *va)
 {
-    BUG_ON("unimplemented");
+    paddr_t base = virt_to_maddr(va);
+
+    if ( destroy_entire_xen_mapping(base) )
+        panic("Failed to vunmap region\n");
 }
 
 /*
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 10:30:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 10:30:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174708.1499652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOvkJ-0007Hw-Qb; Fri, 28 Nov 2025 10:30:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174708.1499652; Fri, 28 Nov 2025 10:30:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOvkJ-0007Hp-Ne; Fri, 28 Nov 2025 10:30:35 +0000
Received: by outflank-mailman (input) for mailman id 1174708;
 Fri, 28 Nov 2025 10:30: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=2FAk=6E=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vOvkH-0006Hj-W7
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 10:30:34 +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 0a10ec7e-cc45-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 11:28:55 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BY5PR03MB5218.namprd03.prod.outlook.com (2603:10b6:a03:223::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Fri, 28 Nov
 2025 10:28: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%5]) with mapi id 15.20.9366.009; Fri, 28 Nov 2025
 10:28: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: 0a10ec7e-cc45-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dcMuz8TEyWiKHEON2mE80tyiPn8O8q2wJIXn+9eFo+JUZZJ/1ERQocgkp0jLOMAspDvxrDGz2VJ4Vsh7GjaVg05xLrZgJ7hlin71LlOllELIFn+NbPZVkTWBsjcF8O5uFgJVNRJSE33voUfYjH8xBlV/4FEJmIhor/c6HIXF9sorubx8a0eFIpEmbGa+4LWrkQiIMRlHkyc6zKGuzbqxMTJT2pcuoVT6Ho6aN5uIRfv/w9LAlO5/RjUyoKOA/jrlnYkfIrgswpAs1dDQEMngvPkVp7IjLZqeeImnrXWV1mh4xJRXdGigJd6utCutMA6jvtnSFGFsuRg7FwFJ5s8kBw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UDNTtGJJgweGSSaG0VehTKsCqD5+n+ME1UT/gpgz1+8=;
 b=YOIvKGNsR/vpY5RJpvkL3/+/E7vMPdYYWXattp673GqHelvxZT36xFeRi+YxR0Wq6E88wrcRuqZM3JCgqvE897I18m4P/MzJ8fgZVAseM+6PKsfRCNTO4qPPyl3xyUeQeDPluIYOk/ikUIRAdOkOLvEUnimewFofxkOC3lBbxJi7WFuHo7wXIwjBdmHvdJRfp2iORkM5K2BN6Gk/Eh/FpTgnGdo5wil4u7HzfG+oAsrEPq87ohqnrNjobW6pODGsFtbD+PPf8I9pocAW+0/whsYgRoPO+dj+M87AJG+UhdZ3IDeyMXpL4Vxf4uW5EhJdS+1KsAeu8MsiFNfIqjXWsA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=UDNTtGJJgweGSSaG0VehTKsCqD5+n+ME1UT/gpgz1+8=;
 b=Xnm84Qd86ihSL5fnDJk1GlfvCZ/b7aYO4PP3np/nMNgkmYCavSDaO7zS0XpqTv4MtuoJppP9JdPofUBQu2NmDi/NAwXsAdVEHT//bE/2yT71KNDwuXeYn1rAdQopD6Spw+FCT0FgfPGu9+lmHdR3wGCWEoJfPYKzxbTMV3RTfGs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 28 Nov 2025 11:28:47 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: qemu-devel@nongnu.org
Cc: Peter.Turner@cloud.com, ngoc-tu.dinh@vates.tech,
	Keith Busch <kbusch@kernel.org>, Klaus Jensen <its@irrelevant.dk>,
	Jesper Devantier <foss@defmacro.it>, xen-devel@lists.xenproject.org
Subject: Default NVMe MDTS value causes Widnows Server 2025 hangs and BSODs
 (during install at least)
Message-ID: <aSl5X4dJHACpJHPU@Mac.lan>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
X-ClientProxiedBy: PA7P264CA0004.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:2d3::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_|BY5PR03MB5218:EE_
X-MS-Office365-Filtering-Correlation-Id: 451623c2-d162-4b74-fbe9-08de2e68ec4e
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?NjRybkFvdWg2cTF0OEkwcER6QWlKc3liTHdXUjkxbGpnRVJaR0lpZGxJVmN1?=
 =?utf-8?B?N2JZaldVTkp1b1krQVc2dVZXMWt5N1RVR0RjcmVnTENnUk4zbDE1cjhkTlNX?=
 =?utf-8?B?ZU1TaHk5NmxoY2JjS1dPNk5TaE0rRG1Xbm5PRGpRbHdwQVNScUtrZkp4NlUw?=
 =?utf-8?B?ak9lS3VkSVdJTDN6L2pFSWVGNys3eVQ2UksvZEJlM2JmN3lHeDYxVVJ4eTli?=
 =?utf-8?B?ZUFibFUwYVpheVo2ZVFVaGlBMVVlOWZQNlBxZmRwMUIxeE9NNklZREdyUFNm?=
 =?utf-8?B?T2R3RWJzbHphWU1LaHN3bEROVjlObGxpeGxvbURwMU1QaklBTkRwQXg0Q1lL?=
 =?utf-8?B?VzBkbDN1OGdRM3dkNGJKMHZGWlZJaU9WZk52NklHa3pNV0wzUHZFSzJxbmk5?=
 =?utf-8?B?akZ0aFdkNDc4K3ViR3pMT3JpRDU2SFEvMGhkRWVaTldjeDdEQmh3N2F3QURq?=
 =?utf-8?B?Q0pXdGVQcXhDTlBxT0QraTV2QU84RjY5ckhGMDFzU29kdnhOSUxFaStQYVNl?=
 =?utf-8?B?TzduLzZpR2V3Mjk0Y3B0b1RmRjlLOXhVbDJwb09BRFYwbjF4ZDNoS3NDSm9H?=
 =?utf-8?B?RkdNM2lPMFI1MllHODNiQ1preWh2bmV3T0xacjUzRUpCYTFOMEU4L2ErSGRt?=
 =?utf-8?B?NVoxckdJenV0WHBrM0FCb2F3WDd1T3gzbjdROFhFTWRJMCs0cHRIZVNYTGVI?=
 =?utf-8?B?RkxkdTVFbXQreDUvVWRURG1icGFVOXJ3U1BZVm4wd0x3a2JkU0UrL2pZWHg0?=
 =?utf-8?B?WWwxRnZyS20zRjQ0cE9LK3hwY0tlS21uSHdGVmJtVzV6R05KNDhzb3R4MlBK?=
 =?utf-8?B?b2NLVE1QVm42c2Myb0laQi9XekJYRkZhR3JPdE1FTEpYOXNSbEFWeWY5WTFm?=
 =?utf-8?B?di94ZFZrTEZ2UHpPMjVUTzd6RWJ3RERybkN3RUprUklaQisvYUgrMnVRRDJ6?=
 =?utf-8?B?NWNJWmNhYlMzaVFNRUFTQWl1L1NMcW53U1RwU2J2ZWVhK1ROR3ZRdzZwN0x6?=
 =?utf-8?B?eHlzOStmWVZSSkswSW9ma2cremx3bE5ZKzZKV2tRYitHWkV6RnlXdGNNcmgy?=
 =?utf-8?B?L3pOcFNYdWR2ejZ5OHdQc0VycmFWTEQycHdvVCtEdmhvck9PUHJNalpGaTdG?=
 =?utf-8?B?S05WVEt0M05nN3h6VGE4NVBsTW1PWmI2WjRLU1R1YnBrZFlZZlZ1SnJ6SFdM?=
 =?utf-8?B?dHlhU2hLK1ZJanVOV3Rsa2RnclVyN3MwMlV0c0pFR2E3WWRDbjE2UXJEU2JP?=
 =?utf-8?B?K3hleVAvSGpmR2FDVVNmaGRmbTBMRVRoV2MyMEZMcEVhbm84N3ZDNXlGZGJq?=
 =?utf-8?B?TDNlSUxTKytXYkdpaklObldRSUpiZldZZHRtWHdJYWNlV3F4ajFqaFZXK2F0?=
 =?utf-8?B?K3NMa3J1V2l6Wms5KzNxeW5icWtpWC9uTnVSSlQ0ZG93Z0NLdmlGcmU5a0lC?=
 =?utf-8?B?cHA0UlVCSFBQbmdpUVVFOFk0RkRRYzZ5NlJ4UFZjMHp0ODBCTWNrRDMzSG5i?=
 =?utf-8?B?d1VMeHk4Vk9Nd0cvUlRtZGpkeEdqMk9pWWorb3hBZ0RaOWtyN01ERTB5OTdS?=
 =?utf-8?B?OEdMM1VGbW9oWk85RDJMOTJnN2ZxdmRPUDN2VEZmOVh6Sm00MVFxd2V5UnRM?=
 =?utf-8?B?cHNIdFdiV1Q3aXZZa3lTYk9BZDFVYUtFMWRScExOR1Nid2dvcEhZUTVFMUhY?=
 =?utf-8?B?QjIyRzREaE56Q2xxM21lTUExSi9mWVpRenBWZzQzSEdtVHJKTHRKbTUxZFpB?=
 =?utf-8?B?SUdycVc0ZkU2Y3YxMUIycitoNGdkVlAyMFlxOVZ1aVJNeGpsYWp3S2pJbWto?=
 =?utf-8?B?cHNjdXVUcjhtb0JMTFZKNzNLTW0wVUNyKzhEV3ZSLzdldFpKN0NuNUgxY014?=
 =?utf-8?B?a2xZTi9DMU4wdVBJYjZRbDJsSXZGNTZ6UjVZZGp2c2V0UkZ1OFpqOUFuTHpH?=
 =?utf-8?Q?4gLwTOSudtemZKRyAnECOkjweKDIckA+?=
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?MVk3MGlUTUxxMXh5NU8vY2dYa05SZHdCcnBpVEYwU2RsWWt6YVljN2hBWXpR?=
 =?utf-8?B?QjhjZ3ZOSHdzU25PVmU3aThxdUovTzgvQjZmMzlkSjNuTENBSEVzcFJNOHF3?=
 =?utf-8?B?blppRVZEVDc4dTBzblZWNE9lclFkV0EwYkRtaEtUbGVOSE5hV0pSa0JQNUFE?=
 =?utf-8?B?Y3BwZVQzZUZ5Q01kWFdITmlzckpqUWMvSk5DaXY2TkQ0M3ovc0I3b2c0QTN1?=
 =?utf-8?B?T01abW9YT3J1a3lHVTlQMENjMm41djZMTE5naUJVMkprSW5WS3NwWWIyaGhU?=
 =?utf-8?B?RUhNazFKMFd0cUMwVTFuQjR1VTRKUStEclViOHlTWG1RUm1VZFpmbCtNVUcz?=
 =?utf-8?B?aVVvNUNWQ0NnekdKOFBCei9MdDd4UEROaFcvTW1VNGZyQm8rL09qb2ZRRlR1?=
 =?utf-8?B?VWVUVnNmMHFzTEJEN1dhRk1sRUdIT1dvb005YXU1NlkxZ2Zsb2JGanduVVla?=
 =?utf-8?B?MVRRQXl6Q1U0R05sMkJIVjJjUjR5cS9iN1hPSEJOMmpiRTFPVjBabG9RVlQw?=
 =?utf-8?B?dVJlWUs2MFZjT3pUK01LMFR3Z2xUb0QzODRYTkFndU9wUEU5R2MvSHdHTTFX?=
 =?utf-8?B?TGtObjV1M2NpT3lsTm54aWRJUUxqL0t4MjhQWFhXUUZkVVFBd1U5QXByV3l4?=
 =?utf-8?B?d0hzbStuSG9jU3ovN1dLS2lybXVjVlJGQTRZenNmb0FwMDZyYUZ4N3JjOXRP?=
 =?utf-8?B?TEZ5dGRncEhkTW4zd0c0eC9WY01pMU5aeC8yU3BmZk1JYjRZcGN2TlJVV0wy?=
 =?utf-8?B?Z1V0V1d1dWgzakpXdHFEd1pVQ2N3MzNEcTI1TXVPR2NDdDhhblovWVN1Wmth?=
 =?utf-8?B?ak1aUjBCdmN0bDg0eHo1MVZST2hSOFRMa3Y1a2RZa0ZqOEtVaDFkZldaeC9K?=
 =?utf-8?B?MUNRSXdZK1dUcDBGNS84aG9tN1N5SlByM3dpT2p5Vm55WC85cHZSRFkrS243?=
 =?utf-8?B?a1VCVHFkVmlTSDBTMndtQi9wZ0F3d2ZmVUVyWGNsOVZ1d2M5TTBvTEttakp5?=
 =?utf-8?B?Sks1NGVsV0ZRWnVGVmRjM3FjWFpUN0JNVjA5UjJOUUhZMTdITUZiU2VMTXNw?=
 =?utf-8?B?eFlkVWVuSnJXc0psYlU3ZTJSVWdKY1ZBMU9GN05EL0lTblg4aG1oNEsvN0JC?=
 =?utf-8?B?b3NVTGYxWUNzd3plb3FOekp3KzY3bnM5NDBGOWwzVCtQNndHZmNWMUdyRUUz?=
 =?utf-8?B?N01UMlZPTGc2V1MzRUlabjYwUGMveGREN2lKMVlwbmEyQy9mUENsYWcxZCsx?=
 =?utf-8?B?S3BiN1ZlZlNSTGZWekQ3K0FOeEUyL2IxZEZNNG9QN0dueEJCYzFDeEI5L0hD?=
 =?utf-8?B?cU9hMFN6ckRkNmNyWm5OaS8xblVpSzBVUDNNY1ljT0Z2bVVmNldqTHM0NVBa?=
 =?utf-8?B?Q21WdXJHUFQ2dE9jNSthLzBxY0wyMUJ6SEVLTkUzc1JwOGZOMjQwbEFhUkdL?=
 =?utf-8?B?R1pyNHVJang5ajRwS25oc2x1TDBNWm9kSnJ0WEFJMkdYaVo5bnFKRStPNmNJ?=
 =?utf-8?B?NkdzSnhnanVjUm9jUmZrcHlVNFpKL2UzOTEwK1JyMXJnaURLd2ZzSDJTMnlB?=
 =?utf-8?B?RWpnTGRzdjdqTVM4aFJpS0NZUkRKeHRqT3lDZnVTSzFzMndIY3ZQOHk0bHdC?=
 =?utf-8?B?bG02MTlvZlYySEFGU0o0cHRkNEE5V3poRkxIcWRKamYwS083bWJoQjl0REN0?=
 =?utf-8?B?SXhWRTRHWVRBWklvV0pYb0R1cTJDeEo4djAvMFJKSld0Q3VyVzBDeWZKM2xU?=
 =?utf-8?B?NTBEWXNKUE8zSS9tZjJ1NlJQZkN6M0djOEdmQVBVMDZVUi9ndVBoS0dXdEFy?=
 =?utf-8?B?elk4MDZZY0JVeTZiRmpPRjJVR2lnY21BdzBFTEtRdjk2Q2dXb2IyK3BpTHZ1?=
 =?utf-8?B?MVJKRFVtN2NHRGJ4UFVqVktJVThYL0Vjc05tSkZNQWZaVVRQS1V3WFRHdXd4?=
 =?utf-8?B?eUhHcmdnM2FFeW4zVmRMakJOK1hQZU5WMTNONXVlK3pVMUpjejlsYjhzTFZp?=
 =?utf-8?B?RFV6MVh4eHlpSFhJUVNzVkJIYmNvbnEyNzFLWXMvK1grTittL21lNEpqamd6?=
 =?utf-8?B?YWhBMlVtenhGRDRMZm4yUVExSHdIbVpSWnIzeTRxV3dFWFVSZWdJazM3NGFY?=
 =?utf-8?Q?f/+9Y22ld+7LABv8Le8i1baIK?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 451623c2-d162-4b74-fbe9-08de2e68ec4e
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2025 10:28:51.1142
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UdcxrRIPlFXAqylpXWo43bRrOun115LMdXJsGVKr3KdQLAjW+/PgjxfjJNpLMyImE8BKHE044AY78/sA5jkmrw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5218

Hello,

As part of XenServer Windows Server 2025 testing using Xen plus QEMU
we discovered an issue during install that would lead to either the
Windows installer getting stuck without making progress (albeit the
screen was still showing the spinning circle correctly) or a BSOD that
doesn't seem to have a unique number, the most common one was 0x50
(PAGE_FAULT_IN_NONPAGED_AREA).

After a fair amount of debugging and following incorrect leads we have
narrowed down what triggers the issue to QEMU emulated NVMe reporting
a MDTS value of 7 by default (so max request size of 512KiB).
Switching to higher MDTS values seemed to solve the issue.

The commit that made that change:

e137d20e7dff hw/block/nvme: add check for mdts

Didn't contain much justification for the change from unlimited to
512KiB max request size.

Windows is like a black box to me, but I believe there's some error in
the Windows logic that splits requests, and hence when MDTS is set to
a sufficiently low value, and Windows has to split NVMe requests, it
causes Windows to hit an internal bug.  This will be raised with
Microsoft to get the issue debugged and possibly fixed on their side.

>From limited experimentation setting mdts to 10 (so 4MiB max request
size) or 9 (2MiB) workarounds the issue.

Would it be acceptable for QEMU NVMe to consider increasing the
default MDTS value to something higher than 7 to workaround the issue?
I've tested both 9 and 10 and they prevent the issue, I would avoid 8
as it's too close to the current one that causes issues.  I don't have
many references of other emulated NVMe implementations, I just know
about Bhyve emulated NVMe, which sets MDTS to 9.

If bumping MDTS to a higher value is acceptable please let me know and
I will prepare a patch.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 10:55:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 10:55:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174722.1499666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOw89-0002J8-QH; Fri, 28 Nov 2025 10:55:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174722.1499666; Fri, 28 Nov 2025 10:55:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOw89-0002J1-Nc; Fri, 28 Nov 2025 10:55:13 +0000
Received: by outflank-mailman (input) for mailman id 1174722;
 Fri, 28 Nov 2025 10:55: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=YqkP=6E=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vOw87-0002IX-Kd
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 10:55:11 +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 b47a576e-cc48-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 11:55:09 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DB9PR03MB8424.eurprd03.prod.outlook.com (2603:10a6:10:39b::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.15; Fri, 28 Nov
 2025 10:55:05 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9366.009; Fri, 28 Nov 2025
 10:55: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: b47a576e-cc48-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jItfuZ/xaS7Og0/EEoDGGQS7wtuGxt4f57rBd4MBLWKijEkGoJABBfFm6AFon9kd5wqaMaupMTZbk3LqEsL78IwjOn0bV/qD8/inmI0BfyhIytug7Z8jdIDTUSqT8kqPXLIbaFF5hn0e7LXQjNAR09ZoksEJipJTGIKu1Y1HIcJLTmq9kvZpT7ch5pLV2LwwhUul/aaCLk8pN5Q1o0eoIzIRGQro49Mg1gzcbungnWijamug1YBIyfeYNascgto782LuhK3jfC4oIrwq1HWnhAbpdN6TrHz77X3N9mYVW1+1h6Bk/NUrM+yMCTxVGUGzEhY4DsY75DoV5P6Y/roC0g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ugUuk/wTPzQsWK6I5v+nndFJwQI3kwbGhToTMsjT3x8=;
 b=JLTuJ4DJ4YheGY7VWrmmwBMS3sdB2YS9NfMNBnVB7Dz81L4eCrvtvcJvNI1iCXRvH/OBwbKWLNeoHC1ry3tsnnH/mUjxThgzhFPpOd3ltGM3wuDw2F1RvVjnWvrxq2Sx8k6A2IXVy9LhvAmLgyNf6j6E1zyYks0Kq3JFKFiRaaFJ1Lhj69e95NW8ZdAngujsC19zbjrKpKDufh0AoHmSzVpSn/+t52T39/SxXwL6Jls+lwfdJd9BVCiIP/+UoMAh0rAscj45lwHOeJXx7BAzByBvy8M/JDmslP9ocL4PA/2A0B2UFJn3HhRu31W1fdtFQXSg1mblZD/Mw2z1mVdZjQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ugUuk/wTPzQsWK6I5v+nndFJwQI3kwbGhToTMsjT3x8=;
 b=d/DynRnTByOm1fPJK98t3zLd9LaS6scDf5WlyAvz9yj6vXqvW3PzcuCePebmAQ23f7jnWzG1jSLXTXZXBJGi5zkhGiWb2aL/pIilu5QDXLGNskJMAyLQF+bIQdpB/GmQhh+fKRksKgtlz5LRb7I52pyDpG/s4ciooabM8Ri1bpS7iuqQsmlsyLvMgScBnSX1VpAQ038X+3FUsikkcLQyn353fto6rELfYQzXtjrJA9v/8gVM8LPbZCPbn83p+yIfEs+AuMRmZorycPFo+/AbLC3vR9Zfs/dQYrhVZ3M8IKvneiojtlSWZt8mPnDrOqxffa7yUFrmJNjtth32xiFRVA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <cf047bc3-dc78-453f-87f5-dd468d0a385c@epam.com>
Date: Fri, 28 Nov 2025 12:55:04 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/3] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251127221244.3747918-1-grygorii_strashko@epam.com>
 <802d2971-4cc0-46c1-bc24-4ec15c712118@citrix.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <802d2971-4cc0-46c1-bc24-4ec15c712118@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0015.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::28) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|DB9PR03MB8424:EE_
X-MS-Office365-Filtering-Correlation-Id: b6a4fb64-f1b1-46e5-2fd5-08de2e6c96db
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?WkJYN3JxenpvbEJkdHZaY0NXSS91bmNTVHJjSGFHREtqMHBhSi9DS1R0cnhr?=
 =?utf-8?B?MUhrRlMyNTYyRmxYTjJmcjF0aUZlSVdlYkR0UGFoVmhwU1dQZmhjSVZWai9t?=
 =?utf-8?B?eGpWWitsSnVqYVUzeW03MFJyRXJuendqd2NyM2hPVzBDZUZFMVVhb0Y1QjV6?=
 =?utf-8?B?TVpnZFJ3RFlYT1V2dmEzRmU4OW9rQm4zNFI1Y0EzTjNrLytOVjNobXZYTmNt?=
 =?utf-8?B?YUFrZEhVVFBzVVRSdUYzdzQzQ21EM2V5VFBHRjJPWW5pamhObm5ETk1mWm9p?=
 =?utf-8?B?aGpEOEoxZnNKT2todzhWWDZ2UWtHeG5WMVd5R0ozWldXTVo5SzZzWnhHcnJ5?=
 =?utf-8?B?VENmdDM5Ri9Gc0dNcVY4QlZtN25vWExteWE1MndGUEJuUmlPaTZrVnNWczl4?=
 =?utf-8?B?eTVMZThtQnVvaGx4YTFoVys5NzhTdms5YnF1bGttdnZ4SFJ5bGtNaEhsU1dW?=
 =?utf-8?B?dlU2TkJLUHVYRnJpSCtna0RzMnBsYXhpWXJaK2gxM0oxc0lZbEQzKzZ2ZmY2?=
 =?utf-8?B?UzEzRUJ3WmVXRUJUbkR4NWt3Y2wrOUdHbVhSZEVCR2l2c1d3WFJTYTJHVzZ0?=
 =?utf-8?B?M3FZV2tLVmdSWS9LLzBnMnBuWStDbVNkMG01Y1B2R1c2amVKWU01MThTWGRR?=
 =?utf-8?B?b3N4emdQa3ducW9HOWxCb2VjMlVrOS9rZVFqckF4TjlIS0wvUk5YUEJod1Nx?=
 =?utf-8?B?YThOM0xpNDFQSXZpcEE4bjYrNHR6aXpsREcvSnJweG9JZjBwdUx4elRpVVkv?=
 =?utf-8?B?STYwemZqSjFGQVZpL0IrS2o1MHZ1aS9obTZHSXVhanp4QjFZT2dVbzJMK2pz?=
 =?utf-8?B?akp3VEJNS1UzVGJ5OFRyamFHbnpiOGl6ZG81RVRGbE5INEk2Nlg4dDdhcDZj?=
 =?utf-8?B?UGR0dG5MOTEreFJ4SWcvTC9TN1h5QUdPRlI4dlpBQnE0WFdpaFVxOFVKZXFa?=
 =?utf-8?B?M1FTbGRlTlRqWDNzRFZac29aSW5uLzJJOVBpUUhNcEJiZWcwWkFEdVBHNkpW?=
 =?utf-8?B?V1RQMVJ2b3pvQVo4RTg4TlBib0piVENSRm9uQ2xkcVVOa1BsNmx6Z3lxKzhh?=
 =?utf-8?B?dFBlUnBZNnMrc3g3emVZWTgzYjhzR1JDN0RqQ0NOV0Q5Q0cxN3VXb1FPTFdF?=
 =?utf-8?B?SlYwaVJDSWI2NnN1dDVCdDkwVjVZZW9udmlzM3ZseTFNZ1BLT2VWNm40MVJv?=
 =?utf-8?B?aThaTUs2RVJRaXU4eTAxdTJ4c3Yvc0xJdElHNWpaSkhWaVlaQ1NWZzlNblJw?=
 =?utf-8?B?azF2Z0FGN0ZzU29OS3c4SG1oZmJPVURhZ2w4T0I5d2hDZWgxU0dlRG5LK3JN?=
 =?utf-8?B?UVloZE1zSVpRZVlMczBFU2JsVlU0Q1dHRnl2M3dmdWJWSnFETGRNOWtxWlpC?=
 =?utf-8?B?RDdGR2ZuQjlZUVU3THZiYW90NGRzSjJub3dsVjlRRlhvb21OdDR2ZjlwNTdS?=
 =?utf-8?B?RTZ0ZmptNDJzYiswWFVyc0tzVjM2MmhNYzUrd0RqcWs5YlNBQ2pyVUFMN1Ba?=
 =?utf-8?B?WUFiMGZsbFpTclYxZ0JVRmh5eSs3QTROUUZpcXVhUEtCS3UwcVNFZS9Tanhj?=
 =?utf-8?B?U2tLaEtaUjZIUTEyMzBMdzEycW1hdHpvYmx2T29LR1lYUGE4aXJ1ZHZnblpG?=
 =?utf-8?B?UEpJY0FQUkRGVFRIdWRxbjI5REVZR2Fjemkxd09GWnpIZjB0bmNjVGdqMnFP?=
 =?utf-8?B?NE5QbmgyNDhGbFNUYTVwNXl5Z0gvOGlTVjM4V3NyZ202amdXNTlocXhWTENz?=
 =?utf-8?B?dTdhUXdWSkZSY1BrZ3RjRHJjT3I0dklSeXdZOU5Fc280ck54Wlc5QXFvWkVG?=
 =?utf-8?B?WU5HRzFpVjVDUVY5dW9nVHlDbk50YzJKdTN0QzJCeXNxT2ozMUVkMGRHQ3FW?=
 =?utf-8?B?enlCRzJET1lQaGp1VDFMVVlkUW9FQVVVTHBKUVM0R2xuUlRkeGVoUlhkNFFa?=
 =?utf-8?Q?TKBvCbZYuS1aP+IZxRUpLTZy2LX6r23Y?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ejN3bThEd3EySDFVNTdDT3BWVWdHUHNYZGJxQjI1U3ltN0V2VW9MSE5HRFF5?=
 =?utf-8?B?Uk5GT1d3TWlnZVJvbndXMmFpcmYwNTVqcjgwMjE0Wjkvb2dnSUZkYzAwM0Q0?=
 =?utf-8?B?YnJJRjYrdTJFNDVEWUlvd0F2RTBneC9SUVE0bms5STAzZ0JrS3dEMXN2N0lX?=
 =?utf-8?B?L2NzODBvK3o2akxFZ1JtMjNSdmJZcWFzYVVSUU5iMDVQd2Vsdm9kYVdOblFu?=
 =?utf-8?B?SUFVaXNZc3psMmtWOVoyWS9zMTRUZUZiMkF4WDFwc2pJQldXL0NGK1pVRkkr?=
 =?utf-8?B?UmYzZi90eVFsSXZpKzlVQXg1TUU1THQ4b0hLRXVVME9ZT05sTXBwODdmQzBy?=
 =?utf-8?B?Z3ZHeHM5bFNhdi8xaE1PaW55NW00aGFuemNVSEUvL1RzWVBKM2JtY2xYTzBG?=
 =?utf-8?B?aGhpeGhuV2NoRW5aeHM0Z21udHYrYlNJK0lyZ0VVNlRrNkgrcXJnRXpCZk9O?=
 =?utf-8?B?YjVBSTY2RndpVnlxUHhVcThZTmVNNFJ1aXArR09WcTd2NHNtS1ExLzdoRmtS?=
 =?utf-8?B?dTlVbVZYaUJCYVRvQzRody9xT3hVN01iQ01hTXd2Z0VqSzlVYzdZQmdqZVNt?=
 =?utf-8?B?TVNZcFJCQkp5TnppeG1TYkFUZU1NcGQ0aS9FV1YvcGJQTjZPOWZZTlBac2hZ?=
 =?utf-8?B?LzFJYU4zczNOdVVGdG9EMEJFYUR1S1YvTE9BbCsxanNEWEI5N3NUMU9GTW93?=
 =?utf-8?B?SGNvQjA5b2hMY2hXZmxxSlIvOWJnUk81YWh2S0kvV0xXM2lGMU9qenpVMm1R?=
 =?utf-8?B?VlptdlNnZVZPUE1kTGowcnBqaCthblZvOFVJdjhyYnlsVHREMFQxUEZiMG9Y?=
 =?utf-8?B?K3ZHK3k4dlhtbDkzWjF6cFNXTklwTjVLT3lzVEVIaEwxNk1rckpzWUg2NmJz?=
 =?utf-8?B?UnpKalFtZE9ycVN3VkJYNjNwMWN1V0Vha1BDWXNBQXdkbWo3RVdoMlJ1SmRo?=
 =?utf-8?B?NXpTVUFmNDg3U2RJMkkwamtPaFoyV3QrVVYrWSs4UStPUVFoMUVUUVUyZFZs?=
 =?utf-8?B?NzhuU2RLbGcwei9QNllhdHY1WTM2cTFHR0NVR2pyK3IraXNFandxMFgzaFZh?=
 =?utf-8?B?RkZ4SklQZTg5am5kazhES1dCODdIZzNXV3J1bFVrL0I5a3lFNkQ4clZ0RENG?=
 =?utf-8?B?VjN6aEoyZ2gyUER0cTFFL2dpcDQyZll1cEpzSE1PVG1nYUlLY1BFQXlkMEFQ?=
 =?utf-8?B?L1NzWWtiMXlmMERWOGRuQW91NWt2endXemZFZjg3MUNPK1NvbXhYa2MzSEx5?=
 =?utf-8?B?L1VtL2o2dFBTRFljUjBPVDFhTnlmQXYxZXkxYnRLci9CSzRwSHBJSytBUWll?=
 =?utf-8?B?WHExVGZEQzVSbkhuMklqQXNkWkRGS2lHbTAwQ1BKT3FMT25JTEx5dWpEaVpq?=
 =?utf-8?B?TlhsQjVpZi9Kc1d2WnJxck9nY1RFWDdpRGZ3dERDeFdxYTBnRStPZlpQakpk?=
 =?utf-8?B?ZFREa1lJQU9LMnZ2cWd5Smc0dEx4bDMzaUlSUVVhTTQ0cnFsV045MHlPRXR4?=
 =?utf-8?B?Wk5OYlBqL25xcnN3ZXl3VEV1S0pGcFl3MVFyd3YxRkdMNjIvQVVUT3Y5aGcr?=
 =?utf-8?B?bWxSWldKZExVQjNsWUFxU0RLbENsbU5HaFNzejhxMDlsWUNpcUhUaG9oWnBa?=
 =?utf-8?B?cENUR2tkblNJRWt2a0VYZEg4THVva3JYaHRSVG5ncmoxYlVObUc0bEZwVURo?=
 =?utf-8?B?Z2ttZjJEaDBPMjE5d241c0lOWTFNWVl4dkZrc0l6TmdON0pJM3N3K3Bydk16?=
 =?utf-8?B?djF2Mk40elIraVNoemxJRG5Qd29IcFJ4MmZ5Mkx4L2Z4dW5GRk1udmF6UnZi?=
 =?utf-8?B?LzZFUmkzZnlIUCtVa2sraEdyaUxEN0szSXhqMHdCN1J2eG5HN0V1UUNUYVlw?=
 =?utf-8?B?NG5saHQ0SXkwNjFwQWxsaGZWSmwrYlRHaEFVaEJDK2ZHd2YvazIyaDZNdjdo?=
 =?utf-8?B?aFprTVhzeVQ1QnpaanFBcFhlRVpHSDJlRVA1dGkwS0xWZk9sbDM4Sjd1RmVN?=
 =?utf-8?B?UWpuVVU2Ymd4S092TzIzVTlJL3NlcEJyNjBJUVZXVFV6eWtIOS9qQjYyWmta?=
 =?utf-8?B?bVU0ZFAvNThzTG5Wc21JK3ZoQU9qSmhNMGJuMTlDMjhXL3QzV2dSMnNGSE1V?=
 =?utf-8?B?eWV1dTVUcHlQT2EzTEdHZC81dUZZMHN5WVoxVE45ZktpLzJ5N2xzUFUzS0RT?=
 =?utf-8?B?Zmc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b6a4fb64-f1b1-46e5-2fd5-08de2e6c96db
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2025 10:55:05.6402
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6oy7vLzTQqDnztVGQAgSGDYvFsOWXjfQ4krtyP53rt11SJi5xxbalosfsWI6udZhc3+BHvg01AUt/PTrKuo8GC2UzFDsqqKnptY0mzYlT+E=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB8424



On 28.11.25 00:24, Andrew Cooper wrote:
> On 27/11/2025 10:12 pm, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> 1) arm/ppc/riscv: drop unused domain_set_alloc_bitsize() macro
>> 2) add generic domain_clamp_alloc_bitsize() macro and clean up !x86 arches
>> 3) move d->arch.physaddr_bitsize field handling to pv32 code
>>
>> changes in v2:
>> - split on 3 patches
>> - move physaddr_bitsize in struct pv_domain
>> - make minimal style adjustments as requested
>>
>> Grygorii Strashko (3):
>>    arm/ppc/riscv: drop unused domain_set_alloc_bitsize() macro
>>    xen/mm: add generic domain_clamp_alloc_bitsize() macro
> 
> These two should be merged.Â  You also need to CC the ARM/PPC/RISC-V
> maintainers.

Omg. missed to drop supress-cc=all :( will resend with patch 3 updated.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 11:00:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 11:00:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174732.1499681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOwD2-0003tw-Es; Fri, 28 Nov 2025 11:00:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174732.1499681; Fri, 28 Nov 2025 11:00:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOwD2-0003tp-AT; Fri, 28 Nov 2025 11:00:16 +0000
Received: by outflank-mailman (input) for mailman id 1174732;
 Fri, 28 Nov 2025 11: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=YqkP=6E=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vOwD1-0003tj-OU
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 11:00:15 +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 682d177c-cc49-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 12:00:10 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by DB9PR03MB8424.eurprd03.prod.outlook.com (2603:10a6:10:39b::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.15; Fri, 28 Nov
 2025 11:00:06 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9366.009; Fri, 28 Nov 2025
 11: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: 682d177c-cc49-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=abD2Q5ImImmxXCvq1mvM5FFc6qJS2Yht9RRrgcSXcve6LzhynAdQ4MV3MCxueM+rfqiUbT9DgG24g/ieRyrKecnCPItLuDnJe/Icg+oAkT9BwziIhgrlNhpYjHQqEDiZKn8GDOd/bvljvFwUfV0sS46aZZ6FZHzGLrt1CIu1dEmf9J4us9xvNJDmqdQL0kKABb9dhffMv3+7UlJKk4xpciSqa+ohj3oyd9jQiXorhdYj1Got3PCAQ5j7ac/nTClujUPaTMa2djKc3sPlZS4I3XtTl2PwvLiwtYzpNc45D1/KqBx0t17TI+sWvasypvJERWfCq5pcGI4A13z7fkrfwg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4lzb7etBhHLiAxLK1Noe93tkrbjub4vXCnWHnb5NCUE=;
 b=qHbtKoOrJZsS92CqTY8BwsoQ6axn5p1pjlyOOp2br5YFxWzgjuXBWPyXeiltBBXnKgPRNY/nMoyGsrn9t2497fU+4KSeBH7xNz3fsoYlRetZsNeyVQE4QPA0HrllWAz+k/fRrN59sH/jSzr/2URkhtDHeoPFrl4jUYTcBaGrUwsC1ACX1Yb9dhz7rjvVigwCu7IAe6rsEfGDjjJ9pg55QWIpz2X0txb+f9q3d7+8fbCYuQ0eenoP2y+tSGoRbugK0ZHzTd3o5tal1DKjxcaRkiFniyA2gLqH7bHOw+R159C24h2JTEu6Xmql3EwlQG49MCNk6aEoym3e+MX0Aoq6ig==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4lzb7etBhHLiAxLK1Noe93tkrbjub4vXCnWHnb5NCUE=;
 b=FdOmdGr/6qTwjFhFY0ETY4F1xGBEnI+m+tZJ8kdJGpnZikUxR/xr7mWd/GUWmTu1cyIfICFIiUFpAveAuVafyTFWNdHIFE/gHspKVBovQSsZ6u3D1eog/Qz0605oXrd7lFPefa5eMfwxKoDqGjiHza3SkoJDMvn328nqD+QwIO/hSdP1D8qZAKWvIPBcWgHy1+kpxOkYQJTb91zU9l+EmBUygF7lFLZ4GnItXrwJwlQV/dNPO0TtbyTrDVdlSvoO8klWzgm0hBRX+6I849T/47OLPfCqmrOQiz8Jh2tRS0pa1jRI8DI/oLrddETPdncf6PZSf7Ch8F7Utd72oci+Kw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <7af2631b-3663-4662-ad99-a363ca7d1b40@epam.com>
Date: Fri, 28 Nov 2025 13:00:05 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20251127221244.3747918-1-grygorii_strashko@epam.com>
 <20251127221244.3747918-4-grygorii_strashko@epam.com>
 <26f448be-4a7f-4346-928f-8185ca8ba222@citrix.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <26f448be-4a7f-4346-928f-8185ca8ba222@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0020.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::9) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|DB9PR03MB8424:EE_
X-MS-Office365-Filtering-Correlation-Id: 0a855996-46fe-4f66-da39-08de2e6d4a30
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?OUFHczN2VE9Xa2FGaUd0NnZYeDl0NHBGREQ0SGRnUDQ2OE9pVXliZDFhblpS?=
 =?utf-8?B?WXFrV2l3MGJwejBRS3QySGVpMGhDSllScThnK1gwY2JoL3B4MGVqRS9PWkJs?=
 =?utf-8?B?VkVWbmVRalhvaXdkOGxXeFIzYlNXMWRZR2FIaDFYL3JqbnRXT1hvajdxSlA3?=
 =?utf-8?B?MkRIT21zMHY5cjhmS0JoWWRpa3gzMzRqeTh5MSt0MXh3QUpQZmc0R1JwWExX?=
 =?utf-8?B?cWx0SUtHQ3V0SjNJUkJRNHk4OFNpQjlXOFMwOVJnL1htcFNEM3NpSjl0czMy?=
 =?utf-8?B?eEtOZGNOdi90VUZkMzN4bHJZQ2lUaVFHd2grQkx3ejRJOVJHREhTMnBzN0Fu?=
 =?utf-8?B?YUV5M08rVElYaUhxNWhNUEVka296RmY5NUZGUzErek83czk0aE9teE5UT0x6?=
 =?utf-8?B?cEhVM1lwNjdTMjNkSTNhVmJPU1N3K1Y4NjhDdGl3OXJQL3hXb0F1VnZvKzE2?=
 =?utf-8?B?bGVyNnBjQThnRGVvMDRUWlhlYURMOXE4NmU5TkZwOGdyV0hsUDU1WUxDeldU?=
 =?utf-8?B?N0lXenZqMG9Wb1luNlk3SkJDeStEdExUalo4K3YvOUw1T3VJL3hLdHd6dVJr?=
 =?utf-8?B?ZlYyMm9LSmFIbit3VEc1cC9LUzBXdDhZbnJMZmhHKzhydGpkYWEzSXVGcUdp?=
 =?utf-8?B?QmxySHNPS28vTEpXRVNaWm1MNHNFcklxOWVKcWJGN0VVMEFUMFJzYzhDOVJP?=
 =?utf-8?B?UytnVmVlbk9XWmFtMWtUN011WmhhQk1sei9ZR3I0Y2JvdE5mRHNHVTRDeWxs?=
 =?utf-8?B?ZlpZL1hRYzdyTHhaQUdMcE1tTUF6aFNUaE0rNjFHV3V2WTQwZ0loZGNRUDZy?=
 =?utf-8?B?TmlNWjdSMU90OGk3bTBDcnlzNk54MVVRb1hWeVRNRGZvQ282QldKcktTbDl0?=
 =?utf-8?B?VGN6cmJzdlFLbHpieDh1MlE2ekFsdjN4aEQ4S1F6TmN1OVlDVFErNlJGbDZH?=
 =?utf-8?B?dmJXYnErcVA0Z3pMSWRpdXZrT2NLck13cjVEVGxPWWNXZWtua2VsMzdIUStY?=
 =?utf-8?B?VzYyUS84aWllR043bUxhS1Y2OE15RFBkbXg5YVdHOVZqN1VuamxSZndWK0Zz?=
 =?utf-8?B?QUxDdWxoM1NmZjhKM2MzQ3V4Z3VtQzRrM3Z5RGd6dEdzaDVIS3BkcVdUei9P?=
 =?utf-8?B?a0lBZlg5MHF5NUtBR05Tck5nQkhta2dUdElXYllpYnNxSEhVbEpXL3VYQ3RE?=
 =?utf-8?B?aWs3N1d2S3JISFUwOHdXOVhsM3ZGVENWNVlCZ3lGOHFtWC9VRCswTGJHVjlR?=
 =?utf-8?B?VFdJZE51Q0RLSzlIQVVrYlA2YzFWTmhrWERwRTVpRHJReUNvRml1bGQvZzRa?=
 =?utf-8?B?YkJ5SUxtVG9BNTAxT3FQaGlDOFFzeGovb0crVEEyUTd6dTZiWVZwTllGSWtm?=
 =?utf-8?B?cDJPcFhjcnBEcnpCbk9nRWxwenk5NEF5UEl2ZEZ5Y1I4OWtjR09ZUmtqTUNN?=
 =?utf-8?B?MVFqb0oxSlp5SGFGM1ZXTllBTnR6d01MVFp1ZVdrdlhuUGY3RC9GdlNPamg3?=
 =?utf-8?B?Wnd4WGx0SlgzSCtxK3Z6WHdqRFFSa3FXWTJZSUpXVllNMzdDL1RJWUlUekYr?=
 =?utf-8?B?bVlnS3pyTDlRUVBsdHhQaFFvRDE2SjN6MDl2UnhncmVqQ3dhTStjMlFwK1lK?=
 =?utf-8?B?ZmxKQzVuRHIxd3VxQVA2bTFic3ZiR09DOXRISldkaG1kNGs4N2NzN0UvRVB4?=
 =?utf-8?B?VG9ObzhpdDVzdGd4bFR2OFhKZXRZQnFLaDZ5M2IyU09wSktFbkVnNWNrTXBy?=
 =?utf-8?B?ZGZzdExOTkdKQ3c2SHAwcktQMTRGY213NXpsRHBuT1I4WlE4dW95c1orMDlH?=
 =?utf-8?B?WmpFUzUzc2NCaUxicEUxWGNSMjhGLy80TWpEczRmaVloNEtSVDZpSnFieENV?=
 =?utf-8?B?RVFzck5SVG13RTRtcTd1OTg0aHdGeDNMTEhidFNxVThZbGZlcFFCa01pYUdW?=
 =?utf-8?Q?0LemuScJt1GWMSMnxvmb+zKI1mO7eBMR?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UU9HRm5CaXJSdC9mN3hVZ3hCMXRMRXVrb2FoRFQvYXVpbkZhTmxUSjY5MGlP?=
 =?utf-8?B?YlMyeVU3TlM3OTQ5UEYzWWQ4cjRLd3d6Y0kyRlJGZ1R0aTdGRVh2SnhWRmhK?=
 =?utf-8?B?d1JOR2xNaTJTaUVjZ1JwOXd2S2VzV3dkeW83a2NmUDFmaER1c3d3MXJPUmpx?=
 =?utf-8?B?YnU0Qnk2akVCVVJTU3dWWExaM3ZkRVVMUitKbURiT3JkVFB2K3gwODVmWnpM?=
 =?utf-8?B?Qm92blE1aFUxMTBEZzk5eWFGYmMzZUlxZkx2elpHcCtzSi9FMURFQW0zN3dE?=
 =?utf-8?B?VHAxRFlkRlhzeGVIWlRFZ0ZRMGdCc0tlSlUvS1ZOR3ZzamlXZGg5NHRoWHBo?=
 =?utf-8?B?VGVJT2x3Y2J3SU9Xam9nckkzcllkNnlGRkxDa2ExMGdVMDdySmU3cVB1emVO?=
 =?utf-8?B?b1JId01GTjhNT1FjWlpHVm16L0pnT0VYNG81SWRoYU1odkNOSnVLMnFNS2ow?=
 =?utf-8?B?dzdBc2tMNWQ1dlFhNVBYVmU0TDliOHRlQXVlYzl2cisyVU50eVI4OXF6RHNa?=
 =?utf-8?B?REdUSFM2dFM5Q25JK3NmMFVvMFFzRUhHT3F4cDRYRUhvalNCNEFQZzlHN2ZG?=
 =?utf-8?B?Yk9DQjh0YVZLaEk4bEZ6Z0lnTDBkTVVoYi9hdWZqdG9OdjllZDVSdWpsNWJt?=
 =?utf-8?B?cWtBcjA4T2dRZHJQa3VlTlhaUTlOaGxWeitFczJtYWtUWFVhQndiZEk1c0hY?=
 =?utf-8?B?ekNLS0RUcFNDa2NBNkdGV08wTHV2emozdXplelZrLy9zS2Z6UWhSa2RvRFR6?=
 =?utf-8?B?RlRrTWZXeUtWa1E4QmZMT3lVOW1XWWlXZElwVERwbWlDQ1dIN3ZSRVEzOFFi?=
 =?utf-8?B?R051SGtVb3VJdTFLRjl6bU1JVEdicDFPL3RWOXNOMHE5UVZZbEU2V1VPb2Ry?=
 =?utf-8?B?dFhhbkN0aUR4U1lnVENIMVJSc1JvR3A1R0hFeGZRY3NKOHhFSStEOVlFNEZw?=
 =?utf-8?B?ZnFUUW5pK0Q0b1dYa3Jqemh4dXpQdGNhajRlOXYxK2FnMzRjbmNPSmVyU3NO?=
 =?utf-8?B?WDdtRDZyVDhtZFlwWE9wNEtJOUZDNWhVZnl6MHF6Rk9Ea2oreFAzRWJTSjda?=
 =?utf-8?B?dVdWV3hFc2xyTnZJb1dzSWJjcmx1MURuZFlyMlJXTWlLNGlmVUdLejZtbmh0?=
 =?utf-8?B?K2NKVjJ0elhqNVM0U1RYV2w5M2xMQnBmUTZhYml1czlrcHRCeVV3ZDFaT1ZU?=
 =?utf-8?B?bHFwVEdlZE5aOVVGODFxNFpMWlJacVlHcy9ubTJwalhCRlNsZWpwM3JDcmV6?=
 =?utf-8?B?NUJqaHZxaGV3anlBaEpyOEZrUzBxb243b09veWUybWJpaXJ0MWg0LzhucTkw?=
 =?utf-8?B?NFlET05NY1ZPc0hkak9Rank3QU9LNGNXdjZHb0swajBFU2t3am5OVk9aRExP?=
 =?utf-8?B?VFl2clVwN1owRy81N0t0Q1FibUIrU0hIVmU4ODdHZFRqMjNhekswUWdsbm1o?=
 =?utf-8?B?TXVwcFdJZkxlcXo4TjV5cjduSzYwSTZIVW1IK2RnMVR6cXVMeGEvdzlRV0px?=
 =?utf-8?B?a1ZabjBFdFdQNVpkU1NIQlUwYnpQdUJ0cU9zNktEbTZVR0lQcUpFMEZPbHlI?=
 =?utf-8?B?S3Y0dVdORjNPVGcxczVVUUJkdkhHRU1NazZ3anN3SFczcDhmNlpJL1J5T3RJ?=
 =?utf-8?B?dzQ2QVhjaE1rZWRMVGorT3A2cE5SQXUwaVJtTnVzVFhSRzVId3BpN3JTRW5i?=
 =?utf-8?B?UHFwZ29iTUtyTjVrMTNBTGUwM1BreUErUXZhZm1jZ3RZQnFPQTlMYTd3dUh0?=
 =?utf-8?B?cDg2bEtEdWMwZmEvRmtlaUgvSkZRS1kyOVV4VEo1anJtOGtpU2FwV1dYN3N4?=
 =?utf-8?B?a0JWWnMxcmt3MXN2bjhLSlE1L3B3ZlJCSEZSeGRWdFR6TzVVS1NNakpkSzVK?=
 =?utf-8?B?OTdNeDVCM2d3VVUrYVMvTy82ZjlDKzZEU3hOWkthZ2w3WkxFNmd4ODB2UWFu?=
 =?utf-8?B?OExUNlhMTkMvcjliYjJoYWFzQWJzVEFhT2R3NnRHeFFVeFFEOHY1bTZScGg0?=
 =?utf-8?B?bnBqY2FiWWZyRWRmSUt6TnJnUUcwMGdhTXRneHY3YXNHN2ZnTW5qYnFoOGhj?=
 =?utf-8?B?SUswSkVFZXo2Wko3TjJEYWZZYXQ1SFozVnIrdml6bTU1UmovRlJRUXd2R0NP?=
 =?utf-8?B?cC94d01vMGdFelMyajk0eXdaZ09GeXd2TEpYcmY5WC9UQnZPVXJJNm4zZHBM?=
 =?utf-8?B?M1E9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0a855996-46fe-4f66-da39-08de2e6d4a30
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2025 11:00:06.5201
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: lNWBjMAIHpbQ/0Jq8dJX5QOqHDTBu5kqTX3QJSiZYzzHuwrm50PJXTcN4CAdZPNywROkirwnTA0hHOK3Uw3ZCypjQReL1IOfYp9+6S2FOvw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB8424



On 28.11.25 01:09, Andrew Cooper wrote:
> On 27/11/2025 10:12 pm, Grygorii Strashko wrote:
>> diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
>> index 17ca6666a34e..128115442ecc 100644
>> --- a/xen/arch/x86/include/asm/mm.h
>> +++ b/xen/arch/x86/include/asm/mm.h
>> @@ -619,9 +619,11 @@ void __iomem *ioremap_wc(paddr_t pa, size_t len);
>>   
>>   extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int pxm);
>>   
>> -void domain_set_alloc_bitsize(struct domain *d);
>> -unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bits);
>> +#ifdef CONFIG_PV32
>> +unsigned int domain_clamp_alloc_bitsize(const struct domain *d,
>> +                                        unsigned int bits);
> 
> Do not convert this, or any other domains/vcpus you see, to const.Â  I
> realise you have been given conflicting information on this point, but
> the maintainers as a whole agreed to not const pointers to complex
> objects in the general case because of the churn it creates, and the
> repeated examples of MISRA violations people have inserted to work
> around the fact it shouldn't have been a const pointer to start with.

It's pure and simple RO function that's why I added const.

> 
> That aside, I think clamp wants to be a static inline here.Â  (Except it
> can't be, so it needs to be a macro).

Sorry, why "can't be" static inline?

> 
> It's currently a concrete function call to very simple piece of logic,
> where the callers have options to eliminate it entirely in the d = NULL
> case if they could only see in.
> 
> #define domain_clamp_alloc_bitsize(d, bits)Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>  Â Â Â  (((d) && (d)->arch.pv.physaddr_bitsize)Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>  Â Â Â Â  ? min_t(uint32_t, (d)->arch.pv.physaddr_bitsize, bits) : bits)
> 
> 
> seems to work.Â  The min_t() is because all callers pass in bits as a
> long constant, tripping the typecheck in min().
> 
>> +#endif
>>   
>>   unsigned long domain_get_maximum_gpfn(struct domain *d);
>>   
>> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
>> index 21158ce1812e..e4f95d8f2fc8 100644
>> --- a/xen/arch/x86/pv/dom0_build.c
>> +++ b/xen/arch/x86/pv/dom0_build.c
>> @@ -626,8 +626,9 @@ static int __init dom0_construct(const struct boot_domain *bd)
>>           initrd_mfn = paddr_to_pfn(initrd->start);
>>           mfn = initrd_mfn;
>>           count = PFN_UP(initrd_len);
>> -        if ( d->arch.physaddr_bitsize &&
>> -             ((mfn + count - 1) >> (d->arch.physaddr_bitsize - PAGE_SHIFT)) )
> 
> While you're editing this, blank line here please.
> 
>> +#ifdef CONFIG_PV32
>> +        if ( d->arch.pv.physaddr_bitsize &&
>> +             ((mfn + count - 1) >> (d->arch.pv.physaddr_bitsize - PAGE_SHIFT)) )
>>           {
>>               order = get_order_from_pages(count);
>>               page = alloc_domheap_pages(d, order, MEMF_no_scrub);
>> @@ -650,6 +651,7 @@ static int __init dom0_construct(const struct boot_domain *bd)
>>               initrd->start = pfn_to_paddr(initrd_mfn);
>>           }
>>           else
>> +#endif
>>           {
>>               while ( count-- )
>>                   if ( assign_pages(mfn_to_page(_mfn(mfn++)), 1, d, 0) )
>> diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
>> index 9c4785c187dd..ad40a712ac5f 100644
>> --- a/xen/arch/x86/pv/domain.c
>> +++ b/xen/arch/x86/pv/domain.c
>> @@ -230,6 +230,29 @@ unsigned long pv_make_cr4(const struct vcpu *v)
>>   }
>>   
>>   #ifdef CONFIG_PV32
>> +unsigned int domain_clamp_alloc_bitsize(const struct domain *d,
>> +                                        unsigned int bits)
>> +{
>> +    if ( (d == NULL) || (d->arch.pv.physaddr_bitsize == 0) )
>> +        return bits;
>> +
>> +    return min(d->arch.pv.physaddr_bitsize, bits);
>> +}
>> +
>> +static void domain_set_alloc_bitsize(struct domain *d)
>> +{
>> +    if ( !is_pv_32bit_domain(d) ||
>> +         (MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page) ||
>> +         d->arch.pv.physaddr_bitsize > 0 )
>> +        return;
>> +
>> +    d->arch.pv.physaddr_bitsize =
>> +        /* 2^n entries can be contained in guest's p2m mapping space */
>> +        fls(MACH2PHYS_COMPAT_NR_ENTRIES(d)) - 1
>> +        /* 2^n pages -> 2^(n+PAGE_SHIFT) bits */
>> +        + PAGE_SHIFT;
>> +}
> 
> The single caller has just set d->arch.pv.is_32bit = true, but the
> compiler can't eliminate the first condition because of the embedded
> evaluate_nospec().Â  Nor the 3rd condition, because it can't reason about
> the singleton nature of switch_compat().
> 
> Thus, it would be better inlined fully, as:
> 
>  Â Â Â  if ( MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page )
>  Â Â Â Â Â Â Â  d->arch.pv.physaddr_bitsize =
>  Â Â Â Â Â Â Â Â Â Â Â  /* 2^n entries can be contained in guest's p2m mapping space */
>  Â Â Â Â Â Â Â Â Â Â Â  fls(MACH2PHYS_COMPAT_NR_ENTRIES(d)) - 1 + PAGE_SHIFT;
> 
> 
> which is rather easier to follow.Â  Even the comment about PAGE_SHIFT is
> more noise than help.

To clarify my understanding - you wanna drop domain_set_alloc_bitsize and
inline code in switch_compat(), right?

> 
> In an ideal world it ought to be in its own patch, and in principle I'm
> happy to draft one with a fuller explanation if you'd prefer, but given
> the repositioning of physaddr_bitsize into pv domain as wekk, it's
> probably all better together in this single patch.
> 
> ~Andrew

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 11:14:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 11:14:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174742.1499691 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOwQQ-00061p-J0; Fri, 28 Nov 2025 11:14:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174742.1499691; Fri, 28 Nov 2025 11:14:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOwQQ-00061i-FD; Fri, 28 Nov 2025 11:14:06 +0000
Received: by outflank-mailman (input) for mailman id 1174742;
 Fri, 28 Nov 2025 11:14: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=PqyU=6E=bounce.vates.tech=bounce-md_30504962.692983f8.v1-d60734be142e4a67a5142de03a9d113c@srs-se1.protection.inumbo.net>)
 id 1vOwQP-00061c-Fn
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 11:14:05 +0000
Received: from mail132-20.atl131.mandrillapp.com
 (mail132-20.atl131.mandrillapp.com [198.2.132.20])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 58124f3c-cc4b-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 12:14:02 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-20.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4dHrK50YWJzFCWZ9S
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 11:14:01 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d60734be142e4a67a5142de03a9d113c; Fri, 28 Nov 2025 11:14: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: 58124f3c-cc4b-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1764328441; x=1764598441;
	bh=fWvvlUXp8lxK/Kka8IUH0ZGverhrkWEPxTTW/7PQC2c=;
	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=pMKNwlpyVhxSb3T5sxXb+z01ajZL7mMLjS5HZeQ0qwnlHxHX2rU2GAjJJL/ozTF9A
	 lTp6NPkNsOXAwK2qRWUhlo2036fPAdnCPvQXJCEmZ9jF/EB5rNFZc3TMc6dsoptgKu
	 AKQVM6goBff9+gAoh8w4mopCz6PvATl0iepdBzHnirTQRvk/uq87pPf9dAvlVgTJZG
	 /JlZJvebxXDydXfSE6ioDAeo4FbDNZm+2p1gBlIJY+kpmBIzPxjv1kciK8W8fzKge2
	 8euy303jMgFychQo7LG40M59DcJG95WlFSArcRB6DsK6XTZvTp4IBEAQL/jEkFWHCV
	 6gYKASNIfev3w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1764328441; x=1764588941; i=teddy.astie@vates.tech;
	bh=fWvvlUXp8lxK/Kka8IUH0ZGverhrkWEPxTTW/7PQC2c=;
	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=lLR019h8TT5oKfPjy4e7WXNv2dusT51GWxDlj8bUaReisg82ADn+BbUOkuapyNDJv
	 BUXwXrHZY+YSJxqiy4HCDq6o8GaKwwdzvzEKxzHLnhXSKm8K007Tf7wgJz60ymCiYY
	 2Bw32qYbbSDXE1kgtzbX34eoYXhXbWinH/PwP+OIv/vi0gxsj8Bqqo9Vz3gnJEamsj
	 tKlt6sMQwCCVvZuJZ88ByImXzBVEqJMektPp6dSApbOpjtsF+nMrbMn7lPEe6FHHgN
	 MWwhWTW+Nh+92f9h+4kn64xcjCf8OqQTNaDD7A7jcB1cBnKbGM6s97L54vY9Bcfu99
	 /0CoWnUBZ14bg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH=200/4]=20x86/p2m:=20Some=20P2M=20refactoring?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1764328439992
Message-Id: <268f4b88-8e22-42e1-ac80-da6930f894ec@vates.tech>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Tim Deegan" <tim@xen.org>
References: <cover.1764248710.git.teddy.astie@vates.tech> <0235ecb0-20aa-4c18-a172-0e48c13d00b9@citrix.com>
In-Reply-To: <0235ecb0-20aa-4c18-a172-0e48c13d00b9@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.d60734be142e4a67a5142de03a9d113c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251128:md
Date: Fri, 28 Nov 2025 11:14:00 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 27/11/2025 =C3=A0 20:52, Andrew Cooper a =C3=A9crit=C2=A0:
> On 27/11/2025 1:39 pm, Teddy Astie wrote:
>> First patch removes a shadow mode check in a function that can't be
>> called with shadow mode (only called with EPT hence HAP).
>>
>> 3 other patches drops guest_tlb_flush_mask by removing all its users :
>> in the shadow paging case by migrating it a shadow variant of it and
>> in the hap case by moving it to p2m->flush_tlb logic.
>>
>> One of the goal is to prepare adding HAP-specific optimizations to TLB
>> flushing code without risking regressions in the shadow paging code.
> 
> You need a clearer background to try and explain the changes.=C2=A0 I've
> discussed some of it with you, but it needs describing here for everyone
> else.
> 
>  From memory, encrypted AMD VMs cannot use "asid++" to flush TLBs, and
> must used VMCB->tlb_ctrl instead.
> 

Not only for encrypted VMs, but also for broadcast TLB invalidations 
(like AMD INVLPGB and Intel RAR) which also requires this.

I'm also wondering if the current model works well when Xen is running 
as a nested guest (as the L0 may get confused about the ASID changing 
constantly).

> On top of that, Xen does not have a correct abstraction for "flush guest
> VA space" vs "flush guest PA space" vs "flush Xen's mappings of guest VA
> space".=C2=A0 This comes about because of the shadow code originally had =
all
> 3 things together, and HAP didn't clean this up when the need first arose=
.
> 
> This causes over-flushing (Tamas found and reported this on Intel), and
> FLUSH_HVM_ASID_CORE isn't an adequate abstraction either.
> 

I guess that also wants to have a way to optionally specify the address 
we want to flush (whether it is gva or gpa). So that it can lower to 
things like single-address invalidation (instead of flushing everything) 
if possible and meaningful.

Having a clearer model would definetely help clarifying 
p2m_tlb_flush_sync vs paging_flush_tlb (which sounds like it does the 
same thing, but actually not really).

> 
> All of that said, it would help to have a sketch of what you want the
> logic to look like in the end.
> 

Yes, that's something I planned to do.

> "flush guest VA space" and "flush guest PA space" originate from
> different actions.=C2=A0 VA flushes always from emulation of a guest acti=
on,
> whereas PA flushes originate from modifications to the P2M.=C2=A0 When sh=
adow
> is in use, both of these escalate into a full local flush because of
> Xen's use of shadow linear mappings, but this escalation should be
> inside the shadow code, not the top level primitive.
> > Have I missed anything else?
> 

Nested virtualization will also wants clearly defined p2m semantics to 
avoid falling into obscure corner cases.

> ~Andrew
> 



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Fri Nov 28 11:39:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 11:39:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174755.1499700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOwod-0000vZ-JO; Fri, 28 Nov 2025 11:39:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174755.1499700; Fri, 28 Nov 2025 11:39: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 1vOwod-0000vS-Fb; Fri, 28 Nov 2025 11:39:07 +0000
Received: by outflank-mailman (input) for mailman id 1174755;
 Fri, 28 Nov 2025 11: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=hHoX=6E=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vOwob-0000vM-JM
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 11:39:05 +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 d72ba709-cc4e-11f0-9d18-b5c5bf9af7f9;
 Fri, 28 Nov 2025 12:39:03 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-64088c6b309so3075839a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 03:39:04 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64751035c2fsm4129969a12.17.2025.11.28.03.39.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 28 Nov 2025 03:39: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: d72ba709-cc4e-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764329943; x=1764934743; 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=TXfbT/FpY5CQ8C35c+ic/Wf898+NeaAHknX8FFRVVfE=;
        b=Vcpko5Q+ZqPpwNSTzXBp7XcFXhHcfPE4bkEj+0udzyaWTcV2Zibkby0li+FZN8q/Vf
         MvCpQV/7O7CdxIeEO/9TioaiXNzO1mV9FhyA+KLMYbsPpvN4zWNr0E7CkaywzfIEUkcy
         VsfeT9XlPfsrl1lmcwvb24UN2VaSLQ+vhlRkU8mDPZ025/6gGMqr9kZVk6KbqN7PkBcX
         e6RZpIIFaJm2k6U7Z8UzXshqF1a472EmQQj8bdcRHAQbBrC66B0bluLl3k6Ld0OJ56CH
         bhbeaiZAV6KcfmMEuHXUHQSL8suRJlHa3qSTE9cc/L918peztS3xAXa7QR3VD6eOjswo
         k2pQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764329943; x=1764934743;
        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=TXfbT/FpY5CQ8C35c+ic/Wf898+NeaAHknX8FFRVVfE=;
        b=a7h3Tg0VTmhQX40ciR4K8tFdAyEKRjo7Z7/foNuxvXEWSTz7s84GkKrsRHuCC6AU7G
         Qk4OCjxMbpHNtyCiGjNKD7FpYIFT7NhgiQGI7NRfgNM4gUIZw3JxLDYOiCTAY+7ns5MG
         FMQYyEw090PG4COzGWZ6vu3HfDqnYokOlynpOQHWfJ3n7WNZFkwTR4pqvd4hr71HHRGO
         76uI1sivsmjPahz9LFm7HPja94NRXzKd1wJwmb50QVqctuH/v7SpmveO9cmwiSarv/nj
         chquCqG4DBkPh1abBMrLAWVAYT7u46afmkc3aOuBRsdMfh8LBg03KAW4H4tpw4IiYv40
         xSjw==
X-Gm-Message-State: AOJu0Yx6rHBUJw0a0W6TEgSDlGHd7tVLkUqwlXAPkR2WWV3bARR4qJRg
	OD6o11kaDJFJPsPq2vAhFj9cQ7Jh8CD+VdYwc+huNMVF6riTVfT53se2eEgNgOtW
X-Gm-Gg: ASbGncuaLziWvj6ICInZbuSzcLgn+gnGOYp7PYYBqeLV73R0iexkLMtbGpZ/JNrDZCO
	MYtRLFEH6IrjW/9axFc26JbDw8vNfBC+KWXwFEnts5/6tqPkil5NoIxawt0Sa3X3jxmIEhwy6uh
	S0axdvzrVeDyIpS/cDuszkl1NVDNknTyugXuW4pXpRvWxvPZZ26qtVtRFUkACT698x0HmjUAiCF
	Fx9anp+oTJXH4CvdTO7DVE7o7CcqizIKicCH0BLvxFLxDIyGKAWHzGGvtNBoATYS50OfPJ6bGvd
	1dofZgaG8/CVE7YaSajYu/8ReCOZ/QeTV9JDzbHgsJYKynf0A6SULWlEgBxJRyp5gQsUJZwab/l
	tGpW60BMmU/7euH+gjdrdbu0sKaSbJ3yZyzu/cSqP/YwCTxuaf/lvLj+Oz0qLtvFPMexC5eTHjr
	MAXyc1oWMFwuqrbvLmHQjqTZwKtN7lJFyflwMnjc9rRDnSugQT7SEL+RQ=
X-Google-Smtp-Source: AGHT+IHizFmzbyV9v2C7uOQf7awlyiYFbv9AVG4WILYAlux01RHvKZYFPrqB5VQ3OhJOFUqiZSlksg==
X-Received: by 2002:a05:6402:234c:b0:640:7690:997e with SMTP id 4fb4d7f45d1cf-64555b86de4mr29113776a12.3.1764329943181;
        Fri, 28 Nov 2025 03:39:03 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Paul Durrant <paul@xen.org>
Subject: [PATCH v1] xen: move vcpu_kick() declaration to common header
Date: Fri, 28 Nov 2025 12:38:54 +0100
Message-ID: <f291e02042a24de86cab5f62cb2301ad8c72fecf.1764328801.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The vcpu_kick() declaration is duplicated across multiple
architecture-specific event.h headers (ARM, x86, PPC).

Remove the redundant declarations and move vcpu_kick() into
the common xen/include/xen/event.h header.

Drop the definition of vcpu_kick() from ppc/include/asm/event.h,
as it is already provided in ppc/stubs.c.

Include <xen/event.h> instead of <asm/event.h> in places where
vcpu_kick() is used, since its declaration now resides in
<xen/event.h>.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/arm/include/asm/event.h | 1 -
 xen/arch/arm/vgic.c              | 2 +-
 xen/arch/arm/vgic/vgic.c         | 2 +-
 xen/arch/ppc/include/asm/event.h | 1 -
 xen/arch/x86/hvm/vioapic.c       | 2 +-
 xen/arch/x86/hvm/viridian/time.c | 2 +-
 xen/arch/x86/hvm/vmx/vmx.c       | 2 +-
 xen/arch/x86/hvm/vpt.c           | 2 +-
 xen/arch/x86/include/asm/event.h | 1 -
 xen/include/xen/event.h          | 2 ++
 10 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/xen/arch/arm/include/asm/event.h b/xen/arch/arm/include/asm/event.h
index 509157b2b3..e036ab7fb8 100644
--- a/xen/arch/arm/include/asm/event.h
+++ b/xen/arch/arm/include/asm/event.h
@@ -3,7 +3,6 @@
 
 #include <asm/domain.h>
 
-void vcpu_kick(struct vcpu *v);
 void vcpu_mark_events_pending(struct vcpu *v);
 void vcpu_update_evtchn_irq(struct vcpu *v);
 void vcpu_block_unless_event_pending(struct vcpu *v);
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index 3ebdf9953f..6f4047bb77 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -9,6 +9,7 @@
  */
 
 #include <xen/bitops.h>
+#include <xen/event.h>
 #include <xen/lib.h>
 #include <xen/init.h>
 #include <xen/domain_page.h>
@@ -17,7 +18,6 @@
 #include <xen/sched.h>
 #include <xen/perfc.h>
 
-#include <asm/event.h>
 #include <asm/current.h>
 
 #include <asm/mmio.h>
diff --git a/xen/arch/arm/vgic/vgic.c b/xen/arch/arm/vgic/vgic.c
index b2c0e1873a..7361e38709 100644
--- a/xen/arch/arm/vgic/vgic.c
+++ b/xen/arch/arm/vgic/vgic.c
@@ -16,9 +16,9 @@
  */
 
 #include <xen/bug.h>
+#include <xen/event.h>
 #include <xen/list_sort.h>
 #include <xen/sched.h>
-#include <asm/event.h>
 #include <asm/new_vgic.h>
 
 #include "vgic.h"
diff --git a/xen/arch/ppc/include/asm/event.h b/xen/arch/ppc/include/asm/event.h
index 0f475c4b89..565eee1439 100644
--- a/xen/arch/ppc/include/asm/event.h
+++ b/xen/arch/ppc/include/asm/event.h
@@ -5,7 +5,6 @@
 #include <xen/lib.h>
 
 /* TODO: implement */
-static inline void vcpu_kick(struct vcpu *v) { BUG_ON("unimplemented"); }
 static inline void vcpu_mark_events_pending(struct vcpu *v) { BUG_ON("unimplemented"); }
 static inline void vcpu_update_evtchn_irq(struct vcpu *v) { BUG_ON("unimplemented"); }
 static inline void vcpu_block_unless_event_pending(struct vcpu *v) { BUG_ON("unimplemented"); }
diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
index 7c725f9e47..5e8938a799 100644
--- a/xen/arch/x86/hvm/vioapic.c
+++ b/xen/arch/x86/hvm/vioapic.c
@@ -29,6 +29,7 @@
 #include <xen/xmalloc.h>
 #include <xen/lib.h>
 #include <xen/errno.h>
+#include <xen/event.h>
 #include <xen/sched.h>
 #include <xen/nospec.h>
 #include <public/hvm/ioreq.h>
@@ -36,7 +37,6 @@
 #include <asm/hvm/vlapic.h>
 #include <asm/hvm/support.h>
 #include <asm/current.h>
-#include <asm/event.h>
 #include <asm/io_apic.h>
 
 /* HACK: Route IRQ0 only to VCPU0 to prevent time jumps. */
diff --git a/xen/arch/x86/hvm/viridian/time.c b/xen/arch/x86/hvm/viridian/time.c
index 9311858d63..710a58879b 100644
--- a/xen/arch/x86/hvm/viridian/time.c
+++ b/xen/arch/x86/hvm/viridian/time.c
@@ -7,12 +7,12 @@
  */
 
 #include <xen/domain_page.h>
+#include <xen/event.h>
 #include <xen/hypercall.h>
 #include <xen/sched.h>
 #include <xen/version.h>
 
 #include <asm/apic.h>
-#include <asm/event.h>
 #include <asm/guest/hyperv.h>
 #include <asm/guest/hyperv-tlfs.h>
 
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 6b407226c4..7009b9d0b0 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -5,6 +5,7 @@
  */
 
 #include <xen/domain_page.h>
+#include <xen/event.h>
 #include <xen/guest_access.h>
 #include <xen/hypercall.h>
 #include <xen/init.h>
@@ -21,7 +22,6 @@
 #include <asm/cpufeature.h>
 #include <asm/current.h>
 #include <asm/debugreg.h>
-#include <asm/event.h>
 #include <asm/fsgsbase.h>
 #include <asm/gdbsx.h>
 #include <asm/guest-msr.h>
diff --git a/xen/arch/x86/hvm/vpt.c b/xen/arch/x86/hvm/vpt.c
index 50ed738998..e7737ac808 100644
--- a/xen/arch/x86/hvm/vpt.c
+++ b/xen/arch/x86/hvm/vpt.c
@@ -5,10 +5,10 @@
  * Copyright (c) 2006, Xiaowei Yang, Intel Corporation.
  */
 
+#include <xen/event.h>
 #include <xen/sched.h>
 #include <xen/time.h>
 #include <asm/hvm/vpt.h>
-#include <asm/event.h>
 #include <asm/apic.h>
 #include <asm/mc146818rtc.h>
 #include <public/hvm/params.h>
diff --git a/xen/arch/x86/include/asm/event.h b/xen/arch/x86/include/asm/event.h
index 434f65007e..d13ce28167 100644
--- a/xen/arch/x86/include/asm/event.h
+++ b/xen/arch/x86/include/asm/event.h
@@ -11,7 +11,6 @@
 
 #include <xen/shared.h>
 
-void vcpu_kick(struct vcpu *v);
 void vcpu_mark_events_pending(struct vcpu *v);
 
 static inline int vcpu_event_delivery_is_enabled(struct vcpu *v)
diff --git a/xen/include/xen/event.h b/xen/include/xen/event.h
index 930190054c..211a3ae8d0 100644
--- a/xen/include/xen/event.h
+++ b/xen/include/xen/event.h
@@ -306,4 +306,6 @@ static inline int evtchn_port_poll(struct domain *d, evtchn_port_t port)
     return rc;
 }
 
+void vcpu_kick(struct vcpu *v);
+
 #endif /* __XEN_EVENT_H__ */
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 11:49:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 11:49:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174765.1499710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOwyf-0002nP-FF; Fri, 28 Nov 2025 11:49:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174765.1499710; Fri, 28 Nov 2025 11:49:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOwyf-0002nI-CH; Fri, 28 Nov 2025 11:49:29 +0000
Received: by outflank-mailman (input) for mailman id 1174765;
 Fri, 28 Nov 2025 11:49: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=V56+=6E=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vOwye-0002nC-5L
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 11:49:28 +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 491285d6-cc50-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 12:49:25 +0100 (CET)
Received: from MN2PR14CA0005.namprd14.prod.outlook.com (2603:10b6:208:23e::10)
 by DS0PR12MB6535.namprd12.prod.outlook.com (2603:10b6:8:c0::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Fri, 28 Nov
 2025 11:49:21 +0000
Received: from BL02EPF0001A107.namprd05.prod.outlook.com
 (2603:10b6:208:23e:cafe::49) by MN2PR14CA0005.outlook.office365.com
 (2603:10b6:208:23e::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.16 via Frontend Transport; Fri,
 28 Nov 2025 11:49:08 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0001A107.mail.protection.outlook.com (10.167.241.136) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9366.7 via Frontend Transport; Fri, 28 Nov 2025 11:49:21 +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, 28 Nov
 2025 05:49:21 -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, 28 Nov
 2025 03:49:20 -0800
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; Fri, 28 Nov 2025 03:49:19 -0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 491285d6-cc50-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hf+7d+TvEN0eSvg6UpIS5sYE3a07VtZzRF7Cg+C8eVoh1/nlc2LblnqJAINxfGdXicB6Fw0NP7TT3iUTIqD61Zlbar6fvG3C/CoDvrFLdDsbrHynY1dBs1iqAVqvJGfFYSSRDnNYpKizBRVPUPr/Od5F3v+93Ea0cWMi+rWNw6/+9fqeB9Yjk9GgNRV94Y0PQq2HEmKM/LG1cMjS7e78HKCdbVIx3GfvsudUa7YIfN53yMTlNMLMIP9TuOd7XEhar61AAmmpMKFMN5Jl2F0YT+1WJdXk7Yf1VbxbDokw3q+6g6w4RcaTVzS70tPbrCtg7lAcvmE5lIN6y7yuHuzOlg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7T5H5Uw0hjRawz8UVBaPi04epuA6iAg/M0PYTneaK7c=;
 b=Ra6DtEKFJRPes6wS+GL5fXXrTCuUgH2+BN8LsL9MtYK+ZNwO6D1movwsh8kn4jGSn5h3UB18dDiij68Jq8bDgUylVZ7bGPFE7L8wnkAdLreYKl3hR5Q4zUNOWWP6j21/AvVHPk/lg0mx3i8+B5H88173XlCbZ+f5ZQlqJ7Dfk5Uv9mzjPfXy0kWVgtLnQpwL/Dk/Ik+rbQCTdCSa3grQ3sVVH3hOWEEUvF5TT3AmPRbKnf9XG3iwpTvbu7AOkj+eIxqHA7MDYqb2gJ4mrkNHgDEFpJL6FnkiHUj6aUGBU0dX4Ut0ady/GCN3MAZiNKqfJchNhgtH3hqJoTvafmCfyg==
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=7T5H5Uw0hjRawz8UVBaPi04epuA6iAg/M0PYTneaK7c=;
 b=U3texBAun8mJyceGowQdA8i99+KNI7Dvj6hQzsTUSQ472OW1Gcib7U0VxeRics5R0qQhqVMUP4AMi12WBDYEmqPPWZPFklj5szzcetxgh1G4TpYWsZ7Un9+QUJ8jO0LgozGBReVSMyWXYYBqeQCC3lX/YYg4PIU6DGvvAjmtzA0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Michal Orzel <michal.orzel@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Michal Orzel <michal.orzel@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2] vgic-v3: Ignore writes to ISACTIVER{nE}N when eSPI is not used
Date: Fri, 28 Nov 2025 12:49:13 +0100
Message-ID: <20251128114913.36244-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: BL02EPF0001A107:EE_|DS0PR12MB6535:EE_
X-MS-Office365-Filtering-Correlation-Id: 8ed3700e-27f2-4374-7b63-08de2e742b84
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?G0wuOYE+uJqazraKMr/xlvVw0RMxqTDJPzCkExC9BRiG9pS9qfU7ca8sqz0g?=
 =?us-ascii?Q?BDNoS4O7jjyV88sYG6od9L+p8Yvm3aIdCsGrqQ3eelY1W8gsckH/3KskfiPD?=
 =?us-ascii?Q?Uuf+GHn2GgRZU8VwPdtZ8eP9Uzk9aIvmliR3ybUYrp6r++LO5WN2msRE2tAi?=
 =?us-ascii?Q?eiM9qN0MO8D1CfH2GVOu3oBPmTtwlThJ5CcAVjPwW/Stp319Hb6JG/YmFJO7?=
 =?us-ascii?Q?291MleFEov5VFJ35Uv8fIV+RWXNYblNIUIu5TaRYwjie6JmyQxV6o3tlnnoj?=
 =?us-ascii?Q?2FMl92v+mEbv3QVzzPrtYSBSXiNMUuKIFALCOsu6/821kbU69jKmKPU3GC2n?=
 =?us-ascii?Q?MEPsjP0WEyd5k7MxrrIiyGsJUpWbRePuJ868iC9obKPiAw9y1VA1Yyqx7/EW?=
 =?us-ascii?Q?uUtlZZrDxYNSM/44Rci0sH1bfr643sEGQICGGHgG28PnrP355XvXnQmu0Pnq?=
 =?us-ascii?Q?AxjbM0GouG2ptH4YHH+GO3Hewucw8Ubc8gfpB6Xt7gg0MDBEK1YnIyWRPUkm?=
 =?us-ascii?Q?BTm5fPgJVNkAdzMIzNypHlPsqxxSHJKf4Dxtcq2SsjkW26jIAc/oejyojdTF?=
 =?us-ascii?Q?vF/h+eFdUYtaUbKFigGG72rTCzaKLdBHCWefbkZDMdISs/a3JB/55Ocxibtz?=
 =?us-ascii?Q?s50J6yY92KpTF7nT9pfdUNsUJ2wonJFek6dhvKtzMz2TOOlor0xdbeCgh8NF?=
 =?us-ascii?Q?AOPvgySWhObi+x2bqO31+92H090bBnGK9VlzQ4UNvAoH+wTDYYJH9YvJ+2rh?=
 =?us-ascii?Q?30Q9juwZyOCNF4cs+yOXCXH5xNr8LpVNqsYI4EU4kuYpvUYHhxC1kaA6yvsE?=
 =?us-ascii?Q?5vKYoonB6E6XH8uMlppfSRFE14argqXtvP/amD7sD6PeZNzkbiLkgHHJ6k+b?=
 =?us-ascii?Q?NxtmP5ZDEIJ/5ymojWDT1SWxIeJbvW8IOlEmov4AyDjo4kkp+LAa9CmdOkD0?=
 =?us-ascii?Q?ndcCbbQiTahPQEGAOOT0rq8A56hFRA5ua4c6KBzwkNq+wrFt/prsLsozAlaM?=
 =?us-ascii?Q?kIHcw/Oz83XQtntggFw86bKKrvGO+t8ckIRW08zzUOoa0CwtiR8Akmu8zn41?=
 =?us-ascii?Q?7huvykNO16Wguj+z1e5y0T0VSo1rCPAe9Ake7W1+/zgNTRfzRwKRF9NnEiZc?=
 =?us-ascii?Q?vbsEfRAh+D78/4d4+l3J8DfhgkQ7yay4DO7zGeZFNM/kmbf24rgU3NR96EaA?=
 =?us-ascii?Q?15zVrwk5m3C7VSailKgkj510zO0fSli5uq0KVxzQq0snUADzb/coNrA5eVaq?=
 =?us-ascii?Q?3ssWkDxxlQ3ccUb1Mye5MpoUW4ebSz23uOh0kvYvWv21Be2qmgyFQaN9FDGW?=
 =?us-ascii?Q?i8dsM2ADDayG7MTJcKcMJJ4iuFJwiEdlPYegYVrqNQn53HmUynb2SllLtapC?=
 =?us-ascii?Q?YIcM3rLAgOOh3DChm5QAQQud/mgb9rzUFjRMqCfPT1UMiFf3hqMEPwwErpjc?=
 =?us-ascii?Q?ndXRq7bixr1Jm9w0356Qqgmb9qePg67pVsX82wIGfHo2nmse/2u2zx3Jq20s?=
 =?us-ascii?Q?1anBdLpvavyoE0zOdRioHnnwIYY7dOlNl2ltH1FxafCH5dKELeUAOBSCcw?=
 =?us-ascii?Q?=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)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2025 11:49:21.3929
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8ed3700e-27f2-4374-7b63-08de2e742b84
X-MS-Exchange-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:
	BL02EPF0001A107.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6535

Prior to introducing GICv3 eSPI support, writes to these registers were
ignored. Now the behavior is changed and we inject fault to the guests.
According to documentation, eSPI registers are treated as RES0, when
GICD_TYPER.ESPI is 0 (this would be the case when CONFIG_GICV3_ESPI=n or
nr_espis is 0). Restore the previous behavior by checking whether eSPI
is in use or not.

Fixes: 93eecb2c4b88 ("xen/arm: vgic-v3: add emulation of GICv3.1 eSPI registers")
Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
Changes in v2:
 - only ignore when eSPI is not in use
---
 xen/arch/arm/vgic-v3.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
index 8b1c8eef8024..77aab5c3c293 100644
--- a/xen/arch/arm/vgic-v3.c
+++ b/xen/arch/arm/vgic-v3.c
@@ -884,9 +884,18 @@ static int __vgic_v3_distr_common_mmio_write(const char *name, struct vcpu *v,
                    "%pv: %s: unhandled word write %#"PRIregister" to ISACTIVER%d\n",
                    v, name, r, reg - GICD_ISACTIVER);
         else
+        {
+#ifdef CONFIG_GICV3_ESPI
+            if ( !v->domain->arch.vgic.nr_espis )
+                goto write_ignore;
+
             printk(XENLOG_G_ERR
                    "%pv: %s: unhandled word write %#"PRIregister" to ISACTIVER%dE\n",
                    v, name, r, reg - GICD_ISACTIVERnE);
+#else
+            goto write_ignore;
+#endif
+        }
         return 0;
 
     case VRANGE32(GICD_ICACTIVER, GICD_ICACTIVERN):
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 11:58:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 11:58:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174776.1499719 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOx7L-0004eJ-9c; Fri, 28 Nov 2025 11:58:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174776.1499719; Fri, 28 Nov 2025 11:58: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 1vOx7L-0004eC-73; Fri, 28 Nov 2025 11:58:27 +0000
Received: by outflank-mailman (input) for mailman id 1174776;
 Fri, 28 Nov 2025 11:58: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=z/8R=6E=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOx7K-0004e6-8B
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 11:58:26 +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 87b3892c-cc51-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 12:58:19 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-42b3108f41fso1164151f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 03:58: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-42e1ca8bae9sm8946676f8f.33.2025.11.28.03.58.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 28 Nov 2025 03: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: 87b3892c-cc51-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764331098; x=1764935898; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KGoqwkJNCDWxY+Zjt/8k/Lf4X5YblVVpiasPP8+c4hg=;
        b=FhGfzUMHmf5FlPOIUoFmiOu+25nbY1F+L/31ksYAQ+evG8Z0RQpEZNVUoAhFZ76Yzg
         rPspcl0mdWsc2MnAo+FInEiznTxtzqR/W4AzzBswuow5l4O00O/BGpFHlAlEPcvMW8ny
         5If1cOt/xfE+E9Fij5XZxELcSUz2QJzLmij/q8D1Y/UG/OVnBHTXAXPKNW964DloQ9OJ
         pjoZQvu4Mtl0Ht+rQBc2OvBLhl7InvwJiu7ozuwQcBUhXttc+/PcV2RzA6MaqypTwE9K
         2FYbG5ejFuop723zUZ38nRyc13+R6wOeyv1bfHjANQPOonSfU5tIfpcVUUj8uFoAZTmh
         /B4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764331098; x=1764935898;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KGoqwkJNCDWxY+Zjt/8k/Lf4X5YblVVpiasPP8+c4hg=;
        b=PjpR1d4VccaR+nkrRo1HqK+qkcD+xHxABtaEoiCxxmfSl/I9J+aHTVYRRDjaK1jSzF
         7NZNYuklZ6UP6jrMIlUMTAXsWI2noT1imW8NhtRjsnQqlrXI41zc+ulmOU9jmP2mEiQr
         Ow6RAp9tQnC08U4tri08nCdmrgn5d7ap0HtnBbGeIrPtTRz8NlYBaCpi2ZXdVKWsw004
         Cyrsxl5ykKjYDYF/h9lZW98hLxI66Mzb2CUBBuxkQg7oMHB7ou4KPYCJGQng/y3g3pI/
         R2U9w2Gc8K5ZUByYLhSrP/kX4AbZiRTxkNLPjN3g4cTBu/flu8edY20gLC3uYmfvNM1q
         SYGQ==
X-Forwarded-Encrypted: i=1; AJvYcCUtF7qnkTNXH+wmQpKH3EBa4nMPTRHcH/Xo743jv9UFBTBM5anzFOd1qC8l2gliNzaSXDSRgSAYCn8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YywdIvbWiUi6ABQJmw5VPrEgt/cwl6Sw/fAiMRjEyPMsQ67D7/P
	psXPZrCtMtkpEERU+UDqvGvzgxfCxpBt/yL54141AaxIZkMWXvI2gIoY+tGE58/GMw==
X-Gm-Gg: ASbGncuk4wjB1Dn5rxMGFGpTKO4io4NRnOIdjKYOfdE8DXRBkKYNAdGlCxR+OiQ0ZQu
	0ru2iDD+VhwzBN9xO/4bDN6OyNiBQkTcddKf2JdBtJbv40H0tbkt7KTbsPZaiJgZ70CW1CgvsXp
	kwOu/390CikDsHI9EEsHLx8h1K4oGmoKczVeIh7sC+VBfLLfV9sk8dOxu+Xatk0Vxuyt5v1OMN1
	BpmliZJm8uy8ZeZIY3wCMTxWUM4Cntkpm6veoR97x+uS9su2oQygHc+gSfKj6/R3Pj0FcK3cv2+
	kHSBZMB7naJkLGiCTqhe82FBJyVOFBl9GGmwMmqw/xbGpMcH4UBD6V0WXemz213zYQbEHng3mNg
	oXfU64l88BDO8/oEfFTHi2iAcXYZiOA/RWb20GizyfalsIP7lMZTwdfw+F9sR6gNUJboS2wBhpj
	iKzAfmTgMlbJb7M4FeVKook/Zk6TmQBoSVZnPc2YThmnz+HIU2nwX0ZZw0c5dtzcZv/v0wxHvnI
	9A=
X-Google-Smtp-Source: AGHT+IFMxSGD45ZCoJZBu3jUjLurYk6YUswtcXBxj43cGpaEUwGRJa/KWn7dR7nQbJDuvGqpklgyNg==
X-Received: by 2002:a05:6000:2311:b0:429:8d0f:e92 with SMTP id ffacd0b85a97d-42cc1abe1b2mr29895087f8f.6.1764331098477;
        Fri, 28 Nov 2025 03:58:18 -0800 (PST)
Message-ID: <18a52859-1b73-44b9-a54d-2f37c7ec9933@suse.com>
Date: Fri, 28 Nov 2025 12:58:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen: move vcpu_kick() declaration to common header
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>,
 Timothy Pearson <tpearson@raptorengineering.com>, Paul Durrant
 <paul@xen.org>, xen-devel@lists.xenproject.org
References: <f291e02042a24de86cab5f62cb2301ad8c72fecf.1764328801.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: <f291e02042a24de86cab5f62cb2301ad8c72fecf.1764328801.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.11.2025 12:38, Oleksii Kurochko wrote:
> The vcpu_kick() declaration is duplicated across multiple
> architecture-specific event.h headers (ARM, x86, PPC).
> 
> Remove the redundant declarations and move vcpu_kick() into
> the common xen/include/xen/event.h header.
> 
> Drop the definition of vcpu_kick() from ppc/include/asm/event.h,
> as it is already provided in ppc/stubs.c.
> 
> Include <xen/event.h> instead of <asm/event.h> in places where
> vcpu_kick() is used, since its declaration now resides in
> <xen/event.h>.

Centralizing is of course good. Question is whether xen/event.h is a good
home for the decl. Generally related decls live in xen/sched.h. There was,
however, a vague plan to try to split that up some. Others, REST
maintainers in particular: Thoughts?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 12:12:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 12:12:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174789.1499730 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOxKU-0007qd-LY; Fri, 28 Nov 2025 12:12:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174789.1499730; Fri, 28 Nov 2025 12:12: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 1vOxKU-0007qW-Hy; Fri, 28 Nov 2025 12:12:02 +0000
Received: by outflank-mailman (input) for mailman id 1174789;
 Fri, 28 Nov 2025 12:12: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=YqkP=6E=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vOxKT-0007q7-3K
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 12:12:01 +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 70e21aaf-cc53-11f0-9d18-b5c5bf9af7f9;
 Fri, 28 Nov 2025 13:12:00 +0100 (CET)
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com (2603:10a6:20b:6::31)
 by DB9PR03MB8848.eurprd03.prod.outlook.com (2603:10a6:10:3dc::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Fri, 28 Nov
 2025 12:11:54 +0000
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4]) by AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4%4]) with mapi id 15.20.9366.009; Fri, 28 Nov 2025
 12:11: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: 70e21aaf-cc53-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mdf18j4w//cWe+zQdOKs78nItlLPa5J4J1DZSIl3zlBcmZyLy344O30kX4yaST52DRm4ERAlrNXSSlbUKKUpg5OQfwt2QnKbhijf6ci1PB6Cl1wpOuHiwHHsAc7/kV6lcRCAgvVFZrAaFsqOh0GvZloK+8a0jj8RhLq9SczrY51RzkLssoKsLN6o1emFGE57ym44/aZy7ZqbYit5Y9WoCoFRKYJp/OENrkCj0Fx7MbhX3Uw2+P4dj1h7oNT7DJsVxQnCDJ+DOD2oDIswr088Oy5sumKYBd1Gt8huywlJemKF6PoPEIYFTX/QoMy6Ew0svOlAJzWChGS0ffiYVC3Mgw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VPqdg+eQdrOripILAALVdKKBeNeUMZy0aNHikISPmqs=;
 b=c2XxgxjomDgJGfcDCcUAxpMnBt4vjUz63FjxR+/agtlB2FbVSioLiLd6nLhjhedZ9svWip5Sbh7aQHl/aK28PY/jtrZMsrXawei4PtigCfBor2hzS1bJH1TLU+o59yeq2lHPBZuae2KXHrQUxePnVzjwcEl/PMoPnuEGYDtC09zAnk4de6GeTfOMeLPtjNVZcfjutyonoowv4wtp/Y9kG0okewkU+UcCodfgh/wczNp0k5yVera6oeF0/p/UUbN33rZcuwcqb/vohxxvur22YXFkDqW0+j82t1d6YI5g55U33qcM8c/loVHobYaifY+X6MkGCwkbB2I+6B6dkc0SBQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VPqdg+eQdrOripILAALVdKKBeNeUMZy0aNHikISPmqs=;
 b=S0eevtm39OlRT5coQR+N1DW+eOwNaJwJ7bnjlM7hbF6dR6zUhBQMupZexHESBLoFd6jjsf3GvvG0s7FBVDFsOWV7vR8iN3f7gaPCGh9/EdWXV5mLaokgSmn/4qZxGzNXNAfmQ4EG5Yk1Fb3D7GT/PqRnOmANfWQz+jUyYJ8fvUad3Z7/jPojHMm0cPyle6iw97/OXHBydEWuUX/JzzsqH2EGZYsGeSLHj5nNwQiPhctRRyFGMsLWZKp0tdo4ZYAEyxNjzWnVZ3FvDfhxKE2XA0whOWSBSNbNM37xIZPST+PGpTF/TKsXfKWr7gXMSjtSCVPWgmkHl4WBfuU9cfZuhA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <fbb420d8-499a-48f9-91d0-06469f265ff7@epam.com>
Date: Fri, 28 Nov 2025 14:11:52 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/domain: introduce generic functions for domain
 struct allocation and freeing
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>
References: <0a66c71356e8d6ea788022438d7a73dbff8aa5b9.1764243466.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <0a66c71356e8d6ea788022438d7a73dbff8aa5b9.1764243466.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR4P281CA0327.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:eb::11) To AM6PR03MB4600.eurprd03.prod.outlook.com
 (2603:10a6:20b:6::31)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM6PR03MB4600:EE_|DB9PR03MB8848:EE_
X-MS-Office365-Filtering-Correlation-Id: b058b4ee-55f7-4187-2bb4-08de2e7751ea
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|7416014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UlpIZmU2Y1VQcjljdFYwaGREVGFJVlhxNkw0TXNqemlzTngyNE1pNjNZN1k5?=
 =?utf-8?B?d0lzdFZyczhCbUl3SHczaUh2Tkh2T3YvTEtTejFzVlVra1k2emp6QnpzRVRr?=
 =?utf-8?B?MkR6amtqNlJ1S3Y5ckNFV08zZDhGNGlSMVEveWdTWTV4ZGF6SzM3bFBiYlpR?=
 =?utf-8?B?VFd6MHErTUtoSUNCU3R3VFpEMDlGRHlYUVRUUnVlU1UwejIxU3pZOE1qU0Ur?=
 =?utf-8?B?ZFZsRTF4U1M2Zk1wUy84eklpeWlxajR0SDRZMnd0SW9TL1dtWlloTWF6c25G?=
 =?utf-8?B?TGZZZ202WFZqYVdCaWpnZXZUd1BLTkE0azgySlBXWGg2dzFHRmRzc2V5ckNv?=
 =?utf-8?B?b2RVWERlTlBSWUZWR0ltVmNNa1liK3JrSXhkTU1ERUd0eWtqSmlaQ1hFWndZ?=
 =?utf-8?B?ckJjanBMYWVaSlp4Y1BOL0lrcTgrYWY2SW9odzBxSEx6RWpJeUhTQTlsT1hJ?=
 =?utf-8?B?RzhWMGQwMWF3Ymt2ZzlBbk41RUVXWEJoQTFRYzZmOHpSUWVoU1VjQmM0VTl5?=
 =?utf-8?B?NHlPNUF4M2dQR0t4M29LVkRlVTVnTUpUNjBUc2lwb0o1S3pKSmowMnUrNVlX?=
 =?utf-8?B?WDgxMGZUYTliZE42OW9GZ2tYcWRNK3ljNk5zTmk4eFhadG4vN1ErWlV6NzZS?=
 =?utf-8?B?b3hHREhwYjBsNHJqY1RsZE9Ka3ZrWEtLeGNmdGZ5RnFEVU5tQzZlazhNWUs2?=
 =?utf-8?B?STVpTUg2dTJuZXNzdTBCRDE3Z3kxbjZ5RDFCTi9xK0t2RktCSERXdEZiWjla?=
 =?utf-8?B?aDFRcklrb2t2Q0ZCOGsrUHFmUEZ2ODZiUUkvTWJlRUtEbjJJQWtYck56MnRx?=
 =?utf-8?B?ODVwS2NaNGJZV0Frd25jQTdRTitFTmsxS1FWODA2a293Wkx3dXM1b0J3TVk5?=
 =?utf-8?B?L2lmQTM0amVJUXNNa0xDeTRrTEsxelFsTXhBM243TkVSVzFBZGhDVXN4aHY1?=
 =?utf-8?B?M2FKRzBMVHNoMHJsMTM1ZE8rT3JWc09nRW1ZVVB2MzRKN0JmSWREa3c5MGZ0?=
 =?utf-8?B?UUNwbWhOeWxSMkVBdHdLM01wa1dyd25CYnNmR2lMekVmRENrdVJ3T28xVmVI?=
 =?utf-8?B?eGhtR05VQkNkR1RPYXZ0ZnVma0N3ZGgyV3Z1TUtBNUZzOWQ0WnEwTlVvTnVz?=
 =?utf-8?B?UkRvTHJHMnlHSUN1NG1HZGhkYWJBV0NRRWlYK3VwTW90WWUyYkhaWm9idEZy?=
 =?utf-8?B?VzRMTFF4VTN3ai9reEtsUnpRTUE0RmdZZWxMck1BUE92a2dQMXdGQjdWU3pE?=
 =?utf-8?B?ZTJnbDRQM0ErUjdFZDlDai8wVkFmeWV2cHpEbzFnMmk0N0dHdHV1TGRrWnZu?=
 =?utf-8?B?dGdGRWdDTVJ3RGthd3ZhZkdwT3hOZStSWFhmVENMUVFXMVV5cGJlL01yZDhu?=
 =?utf-8?B?TGVZM1RWK1JWa3VWRXJic0FVcmhwQmVFdVZnQkN2czRwdkVIT3p6d0xaaFJE?=
 =?utf-8?B?a3pHYVVUVEw2czZaWGJhNGxjUkpKcjBOcFd5TmNDdWIvWitZUGhzN3ZLRmsw?=
 =?utf-8?B?RlJ2cnBrYmVjNzhTeGtYcWI1WnBIS0hhcDJiWkpjNFpLb0N4dWdqU0VrQTJG?=
 =?utf-8?B?dThHNURHQXY0Z1VvUFJGOFhiUCs2RDhja1F6WTIvZmE1R1p4WGhqampTTmo4?=
 =?utf-8?B?ajZnM1MvR2g3QnhEa3B6V0hBUVNuNkVUaTg2NllMdmV1Y0RiS3MvV25tYlJR?=
 =?utf-8?B?YkpFZHFvWHp5T0hlaDFXd0tZMUlzY3hVY0wrZVJOVEUwSWNMU1BZRzRnRmNl?=
 =?utf-8?B?LzNYZkJLRnFaaWYvT25GZk9yWjVjRXZpRzBQdkRMakRJNDZnc0lXaFRGekhT?=
 =?utf-8?B?aVFjN1Z0R2Q5N2pDYVlRczI5S3RHaUxsVHcvcXlha3U1Tk55NVZ5ZGlTbUZZ?=
 =?utf-8?B?ZG53OHJiV0xBQWhibHFuckpRNTN1T1M1cXhJcy8rL2dhSnZ6UXBRU1p1N2JH?=
 =?utf-8?Q?ovd8PHM1mz2/uZxF31LQL6KRLJ8V9mSj?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR03MB4600.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UWd4ZGpYNGYwR0NoL3lXVlBoVldkNG9yZTh3K1ZoclFDT1JRbVlEMHVhRTE5?=
 =?utf-8?B?U0Z2eUE1WnM4dkNVZDlSYWh4aVIyR2QvNjJCdjdzYmwxUTZCR3MrdEpDQVJa?=
 =?utf-8?B?ZWQ0MVJLYzZZd3hjRzJQdFhyMGxLTDhaaGZqc0dsN0tBY1FSMWE2RUFwbk53?=
 =?utf-8?B?Ly91c0tLNGEvM29pNXMwTmwrSEEzL3BiczF6Vk1MTVZJZWpYNTNoaDZoemNz?=
 =?utf-8?B?Zk45Z0NUSkt5WDErUVJYSVplcUxORHJvcm96VzB6Wnd4T09MUjBxMHBCeDJS?=
 =?utf-8?B?V0pOenFJRkNEVzZNK0ZvNXF3QWR2ejdWbk5zRitDY3V2ZVFFekoxc1FGN1FD?=
 =?utf-8?B?eGtLd2JmdFRIRmZTMFR6V0RJaXVabnlQemd2SlA1Q2E4SjdsdWl4cHladDNI?=
 =?utf-8?B?TXVJbWRNWktydzI2QTZ3OGY3eDFUcFBZY2NFV3F4MkZmdEgyaHAyV054aHVw?=
 =?utf-8?B?ZnBvN29mQzhxVDBtTlJwcEJkZTlxMm4yTlluTENOdW5KSThPOWJKdjNoWlhw?=
 =?utf-8?B?UXVyN3IwcGVDQWF5US9taUF0Ykw5K3NVUTNMYlFxaGZFVVJSdUhvbEkzV2xW?=
 =?utf-8?B?RzMzcVBGdTZJQldrWC9yaVFISXpvKzVSRzRLd1grbXgydUlNSTNES3hlQmJM?=
 =?utf-8?B?Nlk4OUZDWVVqRGFiQXRHWVgxZFBCS2ZkaDViVG8wUWtjQW5RdVRkeWpzR0Er?=
 =?utf-8?B?NEl1dWxnYXFDWnJKeTZ3RG1RSUtQZkYwc3F6SjJ4MkhaTG80VkNvbXIzaE9k?=
 =?utf-8?B?Q3NrTWlHay9GTDZuZDVCbkkrMFkrYmRkbmRjc0pFc2VHMjdZcGdmWFB6YkpF?=
 =?utf-8?B?WHU0VlQ5MXYxcXorV0p3WlcxQUV0ZjRpdHFKU3hFMHJUcEVYbXBGQlNrWFkz?=
 =?utf-8?B?QW5rQ1p4ZmZLcU00S3pCZWx5U0Z4TlpUZ210MVY1eG4wSVhJZEFZYWZPWGhp?=
 =?utf-8?B?QW84UDNMaUIvTC9YdGRxRTN2TXh6ZmNRQUx5Tnc5RFoyVVZuWnphU1JxMklu?=
 =?utf-8?B?eXZJbTc3VndWT0NLTmxhdWhHQldyZEI2K0ExWXFFVlg2OWpoTUpJellWcUk4?=
 =?utf-8?B?eXVmcTVRZ2hpbFdOcHhoWnVwclhpc1VjWHFQZHIreVB0TlFGQXc4NUpmOVNI?=
 =?utf-8?B?NHNSaklJdTdJZHZEQnNjRFY3UnVCY2Y3clhJb280VWFQTlI5UVIxdjVrR2FS?=
 =?utf-8?B?ZUlhRnJTci9adElVdmp3WVJvWEczTmJHWFQxc2lkU0RDZHBuVkk5aG90L1ps?=
 =?utf-8?B?WmE1Sk1TZXNZdFJYS3R6YUQ3VE9rVmZ5ZmlOTElFOFE1VDEzYndzV0p6N0tC?=
 =?utf-8?B?ZVRCck5oOHdCaklTSVozamNHWUhQb25YWDBaZ1NMM2x6VDlqSHVMNUlHNmxF?=
 =?utf-8?B?MlFOM0E2MmJ5UitoSXlrVGRmbXJ5NHVOUmNNWjdER2FrUHRxOE1Yd1BVMGw4?=
 =?utf-8?B?YVpxZDJFdEkzSFBmcTNQVUhBOGYwV0dCODVjSUhhTGtvMnNqajcxdGVPbGlG?=
 =?utf-8?B?amV5SmNEOEdVUUNaZTJIRC9XbGFzMVJPWlR0LzFtVWtGVXl0YjhlNTRhVFFG?=
 =?utf-8?B?RjltVUJtUFhkT1F1aWVsd2Fia2cvY0V1Z211WG5ud2owUmE0amZWSmhEV1Rl?=
 =?utf-8?B?NjhjNFZYa1RmYnpTTEhmMUJSTHRodGtNdlZFVmlLay8weE8wN1VnOTNPNUZs?=
 =?utf-8?B?WU82WHkrc1hJd2U2TkVlNTVrYlZYVExDVkZScjJmMmx5aFF5QmFacmtFQThz?=
 =?utf-8?B?clEvcWoyRzM2WmxNdjlsQTZrVC9HVzAyVFlFMkVVYTlnblNEQjArdk05V3BF?=
 =?utf-8?B?QVQ2T2JsejN0OEYrMTBlc3JNSWVCSmZobnlGYmoxbFJXQU45WHBoRWpOeVdX?=
 =?utf-8?B?T0hadFdpdmlCRm5kMUhEZFRpMWhIcHRlc0o5cHVhcG1GQnRCU25qeFZhWUV0?=
 =?utf-8?B?WGF0bVBLSzA4M2hKTUFtOXdvOHkrNk55YytOVVFqYUZCRkxmZ1dqNXlZN2Vk?=
 =?utf-8?B?cWJuOUF3alZLYVI2d054a00wV3hGMW9DRG1JNW04akU0QUlPMWJIVE1IRGNC?=
 =?utf-8?B?Tk9DOXRGUzFoN1dNakhhNS9mWjQ5ZmJ5S3IybTR5OFlRYk1hZUtleFMyYnAv?=
 =?utf-8?B?Z3pwc24yRnlibmpOcWFDZHpxNVZhM2ZtR1Z4M1FqQ2lkV2dKN2JGMGcvVDZ4?=
 =?utf-8?B?NEE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b058b4ee-55f7-4187-2bb4-08de2e7751ea
X-MS-Exchange-CrossTenant-AuthSource: AM6PR03MB4600.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2025 12:11:54.5179
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8DstI5jeyX4h02tE+SCRruoh3RnvFuLyNT0WerIhGrq8iQm9dZd2vdits70ujlif3hvimSuzv66NCLCQwMCCz/NGR7mOwNFPNUHZLp6tMYw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB8848

Hi

Sorry for the late comment.

On 27.11.25 18:26, Oleksii Kurochko wrote:
> From: Roger Pau Monne <roger.pau@citrix.com>
> 
> Move x86's free_domain_struct() to common code since it is shared between
> architectures.
> 
> Move the x86 version of alloc_domain_struct() to common code as most of the
> logic is architecture-independent. To handle the remaining architectural
> differences, introduce arch_domain_struct_memflags() for x86-specific
> allocation requirements.
> 
> No functional change.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> [Introduce an arch-specific function instead of using a weak function]
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in v3:
>   - s/arch_alloc_domain_struct_bits/arch_domain_struct_memflags.
>   - Make x86's arch_domain_struct_memflags() to return MEMF_bits(bits) instead
>     of bits.
>   - Move "#define arch_domain_struct_memflags arch_domain_struct_memflags"
>     and declaration of arch_domain_struct_memflags() from x86/asm/pv/domain.h
>     to x86/domain.h.
>   - Update alloc_domain_struct() to work with arch_domain_struct_memflags().
>   - s/Suggested-By/Suggested-by.
>   - CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2182821111
> ---
> Changes in v2:
> - Introduce an arch-specific function to handle differences between arch-es
>    in domain structure allocation requirements, instead of relying on a weak
>    function.
> - Move free_domain_struct() to common code.
> - Add Suggested-by: Jan Beulich <jbeulich@suse.com>.
> - Update the commit message.
> - Link to original patch:
>    https://lore.kernel.org/xen-devel/c08595dd7940b44a1392e16d4a2035b95b5c580b.1749829230.git.oleksii.kurochko@gmail.com/
> ---
>   xen/arch/arm/domain.c             | 17 -----------------
>   xen/arch/ppc/stubs.c              | 10 ----------
>   xen/arch/riscv/stubs.c            | 10 ----------
>   xen/arch/x86/domain.c             | 15 ++-------------
>   xen/arch/x86/include/asm/domain.h |  3 +++
>   xen/common/domain.c               | 22 ++++++++++++++++++++++
>   6 files changed, 27 insertions(+), 50 deletions(-)
> 

[...]

>   
>   struct vcpu *alloc_vcpu_struct(const struct domain *d)
> diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
> index 5df8c78253..386ec61745 100644
> --- a/xen/arch/x86/include/asm/domain.h
> +++ b/xen/arch/x86/include/asm/domain.h
> @@ -12,6 +12,9 @@
>   #include <public/vcpu.h>
>   #include <public/hvm/hvm_info_table.h>
>   
> +unsigned int arch_domain_struct_memflags(void);
> +#define arch_domain_struct_memflags arch_domain_struct_memflags
> +
>   #define has_32bit_shinfo(d)    ((d)->arch.has_32bit_shinfo)
>   
>   /*
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 3b6e9471c4..2e8d74cbd9 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -799,6 +799,28 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
>       return arch_sanitise_domain_config(config);
>   }
>   
> +struct domain *alloc_domain_struct(void)
> +{
> +#ifndef arch_domain_struct_memflags
> +# define arch_domain_struct_memflags() 0
> +#endif

Is it really the right way to
hide part of common interface in common code instead of header?


> +
> +    struct domain *d;
> +
> +    BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
> +
> +    d = alloc_xenheap_pages(0, arch_domain_struct_memflags());
> +    if ( d != NULL )
> +        clear_page(d);
> +
> +    return d;
> +}
> +
> +void free_domain_struct(struct domain *d)
> +{
> +    free_xenheap_page(d);
> +}
> +
>   struct domain *domain_create(domid_t domid,
>                                struct xen_domctl_createdomain *config,
>                                unsigned int flags)

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 13:19:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 13:19:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174799.1499740 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOyNh-0007T2-Do; Fri, 28 Nov 2025 13:19:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174799.1499740; Fri, 28 Nov 2025 13: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 1vOyNh-0007Sv-Ar; Fri, 28 Nov 2025 13:19:25 +0000
Received: by outflank-mailman (input) for mailman id 1174799;
 Fri, 28 Nov 2025 13: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=z/8R=6E=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOyNf-0007Sl-KK
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 13:19:23 +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 d8bc0563-cc5c-11f0-9d18-b5c5bf9af7f9;
 Fri, 28 Nov 2025 14:19:19 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-47778b23f64so10923565e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 05: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
 5b1f17b1804b1-4790b0cc39csm157664805e9.14.2025.11.28.05.19.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 28 Nov 2025 05: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: d8bc0563-cc5c-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764335959; x=1764940759; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XmWgLA/LYnaxDZ0rkriYPulBqsL19NUbdjrGgB/L3gM=;
        b=gdxi1/4g2tNSJY8cJse4DMAQlGIhq62cVwnBERoalq48i8bs6d42dCT6tHGexBOlJ1
         6fHnDjd7g5NaIJfbRTeiV9zx6/iBkk+7rVRGSv38lB8g/Lwqmy0Jz+CMrZX3UO8Uu0Mz
         M1Zffjy/ISvc0D219lsA2RrqrWamhm+INBRFiE3k+hRwdEOvy2cL1eI5nFFp+LAWvpNC
         oo8l8tq2Sq3TF+bKqUN7QWwdfGhN8IemJQa/kXSmNG8G52jsOIoanI0b9dC1gk9D7vuE
         XUaRcwvLP50QlmIjclOFftBUK5F5nNlAUr8FmW5aP8WOAX+xAQiQTrCndMDkav/+xa0s
         u0DA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764335959; x=1764940759;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XmWgLA/LYnaxDZ0rkriYPulBqsL19NUbdjrGgB/L3gM=;
        b=q6Q3wdFrwwnfIxv9b7oc/NVQp/8tDLr+ZomZHBdmhDLMHmOEgfDB0a+h1vxSGJNWmG
         RGxBDb38hDRG/EXUk+eMBff9gmQGjIzVNY6Wh3O8RfuFg6trkRFuyXw4Eez5v1wjK18+
         wsMijV0pja3n+t6hD7fBfw0UkG5TKJITxtjvetlaWpQWmvebz35hZA+ivRz0D5R2vJci
         1RGOuhTdLlRReGwKgfWGL1QNtEFyYXzMBnOav21D9QIpcwX7bp4DvxK3Ag47hKpb06qS
         Cx1DTS9qNrljn4WYdLBoF7i8vVXPK5jfyHg2WgOyVpKG3ZwnQA8MVU30XoMP+6eQqI36
         AZkw==
X-Forwarded-Encrypted: i=1; AJvYcCXVs/AYHIUzjwg3ePYbVIYmrHixoIkHLcV9zCo8IKyd488m7H8qrvaURKFGINXsc5k1+cX/W47OAZc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwPDVah9gBDOZJiN3TpDJn+4vqy/l7utv3FTdZ87DwPDDcDbdjH
	AiXHS0C+6yyCtNiV86NlwOHtNr3HYpRjJ+oK4VFqiqGfl/9dc60gTGwWVXuxmgWWaA==
X-Gm-Gg: ASbGncvaEsZ596tt04bnvG+IG77i66WeHjtQA5OZWSKMiSmYhlWj0X5fyi3PM4d2dpB
	mPIZcuwUeBcFW55MOwYQcRy7qROI2jCUYrk2hQU/OsPL1sW5/eXKNJGoqj6MAZzJVndqrK6mgXX
	tjb+Ls0Arno5BcCRWYgEvCHtvitljz0YYEuotkAn94sKw3VS7WtekX6pzyNlGamZcH8wl2THx3r
	x1lhmjKJ0Wx9yR6yn5+WFfpOvu58/9tIN5DxrvtFqXqRwZCGS0+MyRF5KJ9QOMeesCCMphKSVdV
	Igstfn464FjlVcCULFApL/fZPLeYj4ch7Ou7YdqLfWuE0m16X4QIOjvqVunxt16VFGvtVPHJ3Hx
	Ziieww/LNRtp0v8IAIQ5BaWhfFDNIxnFAAwlWhsEesa2/uBXbPK9YqH1NBtohlNY0OITpqs5UFo
	7qDzRikhuTzUgNZXdFxUPXpuo4T4EPTzzQ/KOqLMbVeRzuU2uDBvI4kFeiUkZFikIH31nSeVV5O
	DY=
X-Google-Smtp-Source: AGHT+IGIEeD+MRPbm5ALD0bsSRU+6+VMjjax6lsEZ8jwFKfoXgRdg125HqteKDlbOgAS74JXJFl2FQ==
X-Received: by 2002:a05:600c:4fc9:b0:475:da13:2568 with SMTP id 5b1f17b1804b1-477c114eb1dmr236173065e9.25.1764335958727;
        Fri, 28 Nov 2025 05:19:18 -0800 (PST)
Message-ID: <467b9a77-6e90-4877-be8f-59deb72d1827@suse.com>
Date: Fri, 28 Nov 2025 14:19:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/domain: introduce generic functions for domain
 struct allocation and freeing
To: Grygorii Strashko <grygorii_strashko@epam.com>
Cc: Roger Pau Monne <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
References: <0a66c71356e8d6ea788022438d7a73dbff8aa5b9.1764243466.git.oleksii.kurochko@gmail.com>
 <fbb420d8-499a-48f9-91d0-06469f265ff7@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: <fbb420d8-499a-48f9-91d0-06469f265ff7@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.11.2025 13:11, Grygorii Strashko wrote:
> On 27.11.25 18:26, Oleksii Kurochko wrote:
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -799,6 +799,28 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
>>       return arch_sanitise_domain_config(config);
>>   }
>>   
>> +struct domain *alloc_domain_struct(void)
>> +{
>> +#ifndef arch_domain_struct_memflags
>> +# define arch_domain_struct_memflags() 0
>> +#endif
> 
> Is it really the right way to
> hide part of common interface in common code instead of header?

If it had multiple uses in different files, surely it should be put in a header.
In this case though, with (even long term) there being only a single use site, I
don't see why we should even bother figuring out which header would be an
appropriate place for it to live in.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 13:20:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 13:20:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174802.1499750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOyOG-0007qF-LM; Fri, 28 Nov 2025 13:20:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174802.1499750; Fri, 28 Nov 2025 13:20: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 1vOyOG-0007q8-He; Fri, 28 Nov 2025 13:20:00 +0000
Received: by outflank-mailman (input) for mailman id 1174802;
 Fri, 28 Nov 2025 13:19: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=336B=6E=bounce.vates.tech=bounce-md_30504962.6929a17b.v1-96b599006fe04ae1aee1ea847ea67836@srs-se1.protection.inumbo.net>)
 id 1vOyOF-0007k4-22
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 13:19:59 +0000
Received: from mail132-18.atl131.mandrillapp.com
 (mail132-18.atl131.mandrillapp.com [198.2.132.18])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eeb74d8c-cc5c-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 14:19:56 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-18.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4dHv6M2JgCzCf9KJ1
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 13:19:55 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 96b599006fe04ae1aee1ea847ea67836; Fri, 28 Nov 2025 13:19:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eeb74d8c-cc5c-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1764335995; x=1764605995;
	bh=X2fqWoTSCWqI9l6VQYgprhpU+9NtYg731KXaaYBfjfo=;
	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=b/jXY7ECmEXUCa7DGItI8ErybtRgDx5cbrlquRdTC0oTH8juC+n3JsNdbX5gbezPI
	 AjgX0QQbwSpb2zRRR4ct+CxYgyAFHgRmnxrF1FEXjTIjGduhOJfY7DMuGK/tn/NnJp
	 JLMmWWeozweTbiPwTn3uzlki8eFi+nNVlGbCrAb7EzC1QYfOkFmjsKDytwnDBTyUfV
	 BcsVqCPEjkh/Yq+qltjRvGTPc9kVP0eSvrj5jH4x40zPg125va37bNIT+Oi323ZyC0
	 DdPtS9NxPb44UKqHDnNeSfuosUBvroM0K6kOVSmIVtSXzC742GWD92TrZ2vRI3CWv0
	 jErowW9J3qABw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1764335995; x=1764596495; i=julian.vetter@vates.tech;
	bh=X2fqWoTSCWqI9l6VQYgprhpU+9NtYg731KXaaYBfjfo=;
	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=eB3LsxGTS109iOvvCwS9qV3ASAcPJqmspbnFe9ymQo1UwPPFcGjqDh8gdzeFDY0eF
	 UzVXalud63hS2duGy1+upqjBX/Wu9gDEZZIdcuA98sW08I7/x8Bpc8Btv3nTluL+1+
	 LXXCFlKxK4pqgZyjKH1EnV2zIc7UrmW7ExLQVgwQ2bO08EUZJPle927MqCeP+dr/Nb
	 u1xGkT31Vv4tdD8vq1YF78nsc5nG9ffqnOeMNiK1yh4OcIIceLCdnQnBhx+aWALTRv
	 oo7meJtjLI29gySsRYrbtYecpsk7mPr0sA92d2O+jhUlXVbUQacGxEauTKHl+R676o
	 LCpAEhhd8XqPg==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20x86/efi:=20Remove=20NX=20check=20from=20efi-boot.h?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1764335993892
Message-Id: <83850159-6b76-4127-a689-e83a84c71e4f@vates.tech>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Daniel P . Smith" <dpsmith@apertussolutions.com>, "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>, "Teddy Astie" <teddy.astie@vates.tech>
References: <20251127143136.1598354-1-julian.vetter@vates.tech> <3653404b-0428-4dae-912f-18c4f8e74853@citrix.com>
In-Reply-To: <3653404b-0428-4dae-912f-18c4f8e74853@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.96b599006fe04ae1aee1ea847ea67836?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251128:md
Date: Fri, 28 Nov 2025 13:19:55 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 11/27/25 16:20, Andrew Cooper wrote:
> On 27/11/2025 2:31 pm, Julian Vetter wrote:
>> Currently Intel CPUs in EFI mode with the "Execute Disable Bit" disabled
>> and the 'CONFIG_REQUIRE_NX=3Dy' fail to boot, because this check is
>> performed before trampoline_setup is called, which determines if NX is
>> supported or if it's hidden by 'MSR_IA32_MISC_ENABLE[34] =3D 1' (if so,
>> re-enables NX).
>>
>> Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
> 
> Lovely...=C2=A0 This isn't the only bug; there's another one from the Vat=
es
> forums about AMD CPUs which I haven't gotten around to fixing yet.
> 

Thank you. I will have a look. I haven't seen this thread.

> Do you have any more information about which system looks like this?
> 
I'm not sure if I understand your question correctly, but I was just 
booting an Intel based machine newer than ~2012. I have tested this on 4 
different machines, on which 3 hit this code path. One was a HPE 
ProLiant m510 Server with a XEON CPU, second was a Mini PC with Celeron 
CPU, and third was an old Intel NUC DCCP847DYE also with a Celeron CPU. 
The only system where I couldn't reproduce the issue was an old 
workstation with a Gigabyte mainboard. It has the flag in the Bios to 
set MSR_IA32_MISC_ENABLE, but I'm not sure if it was actually booting 
via UEFI. I will verify this on monday. I booted all the 3 other systems 
via UEFI -> Grub -> multiboot2. My grub entry looks like this:

multiboot2 /boot/xen.gz dom0_mem=3D2656M,max:2656M watchdog ucode=3Dscan 
dom0_max_vcpus=3D1-8 crashkernel=3D256M,below=3D4G console=3Dvga vga=3Dmode=
-0x0311
module2 boot/vmlinuz console=3Dhvc0 console=3Dtty0 init=3D/bin/sh
module2 boot/initrd-dom0

> trampoline_setup isn't executed on all EFI boots.=C2=A0 I had a different=
 fix
> in mind, but it's a little more complicated.

Aha. yes, I didn't thought about other code paths. But I'm wondering if 
we couldn't do the whole dance with XD and NX directly in the 
efi-boot.h. Then maybe we could even remove the part in trampoline_setup 
or are there other systems that hit only the trampoline_setup but not 
the efi_multiboot2?

@@ -747,16 +748,27 @@ static void __init efi_arch_cpu(void)

      if ( (eax >> 16) =3D=3D 0x8000 && eax > 0x80000000U )
      {
-        caps[FEATURESET_e1d] =3D cpuid_edx(0x80000001U);
-
          /*
           * This check purposefully doesn't use cpu_has_nx because
           * cpu_has_nx bypasses the boot_cpu_data read if Xen was compiled
           * with CONFIG_REQUIRE_NX
           */
-        if ( IS_ENABLED(CONFIG_REQUIRE_NX) &&
-             !boot_cpu_has(X86_FEATURE_NX) )
-            blexit(L"This build of Xen requires NX support");
+        if (IS_ENABLED(CONFIG_REQUIRE_NX)) {
+
+            msr_ia32 =3D rdmsr(MSR_IA32_MISC_ENABLE);
+            /* NX is hidden */
+            if (msr_ia32 & MSR_IA32_MISC_ENABLE_XD_DISABLE) {
+                msr_ia32 &=3D ~MSR_IA32_MISC_ENABLE_XD_DISABLE;
+
+                wrmsr(MSR_IA32_MISC_ENABLE_XD_DISABLE, msr_ia32);
+
+                /* Re-check for NX */
+                caps[FEATURESET_e1d] =3D cpuid_edx(0x80000001U);
+            }
+
+            if (!boot_cpu_has(X86_FEATURE_NX))
+                blexit(L"This build of Xen requires NX support");
+        }

          if ( cpu_has_nx )
              trampoline_efer |=3D EFER_NXE;


> 
> If I do the key prep patch, would you mind trying to tackle the AMD side
> too?
Yes of course. I will have a look into it. Thank you.

> 
> ~Andrew



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Fri Nov 28 13:21:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 13:21:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174819.1499759 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOyQA-0001EQ-27; Fri, 28 Nov 2025 13:21:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174819.1499759; Fri, 28 Nov 2025 13:21: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 1vOyQ9-0001EJ-VZ; Fri, 28 Nov 2025 13:21:57 +0000
Received: by outflank-mailman (input) for mailman id 1174819;
 Fri, 28 Nov 2025 13:21:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=K8i5=6E=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vOyQ8-0001ED-Tb
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 13:21:56 +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 34affe42-cc5d-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 14:21:54 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM6PR03MB5049.namprd03.prod.outlook.com (2603:10b6:5:1ee::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.12; Fri, 28 Nov
 2025 13:21:51 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Fri, 28 Nov 2025
 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: 34affe42-cc5d-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ySx50DlD6HRMenEKARInUbTKQUiGHC3zcdNfos0UBmKH2xJPMR6QE3s1c4RHVVHDwkFc7OrjWcOWnWFHcLhQ/c8iaoiNG5XpC4S298X6/+pFcBqjj1Dwk8G3DQTuYvBT/e+rvDlK1kgohoXayBdluhhDd35Px3+TV0mzSYU07oHTMS88MUjUPBjHvWL1hRCIGBvGOMiB3vEnlnDEPGFeLY1HbUeUPRxmZ/y69mBJVPPnfPEDEIiIc55RhEZADpuncadO1kAOifGtQKV7LjZdLJ/X6LOXWay8tkLD1sDvQnrZfL2gKzsDt0eW5dT/unTZRQucArYheflzzDr/QL6gnA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=N2QEGf+zrHIxYID8CQKtWOgFrzfF3sHiE1bAHH/jRE0=;
 b=pHZKpa5QyoAyvFh+klaIsGYAqW+ak05yVQlbfiIH9TFY37J0OSqCaCrLny1/HUmyvXOTj5vU6PQGke/NxzWqPMYTWidw+aLJNwF58R7iv15e3ZPJ1Wo2gSUS8Hlc1skZJyRohJaT0O0cl2gJonc1HGGlhOfA3p/1a5RC0FGYthAR68hxT6+cSSlyQcJGchXmzIyFRRIPfv+SI+YwsLDia1lyD/79n8cBUBOqIW3pWKiy7eoZ08kLiJdPr1h0/JI6y7doSN68GpSOvjagqLJzmBc0GPLF30tTM6ZPOqCN9eUPLglblku6qUOGEE7ag+0FVT5JpIe/qtkn/JCAGEM64w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=N2QEGf+zrHIxYID8CQKtWOgFrzfF3sHiE1bAHH/jRE0=;
 b=Jrz6kLCoWchAFcdjPILk/KDyIHpAoxGwGHDEqs7woG+F3UlXSLXA1l7ZjgOI/Oo4Qv9IARdYDk1k5x/O48DUvf9j5N1Zafuagx+Nst7FfzkENrW3r7bRR/NDWJGg+cWgo+R4FZfZYvoifnBMSM79jM96FS8CmwQXJJRC44h1urQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <883304e4-0a1a-464d-b9e0-93d9d8a4ae82@citrix.com>
Date: Fri, 28 Nov 2025 13:21:47 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>, Paul Durrant
 <paul@xen.org>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1] xen: move vcpu_kick() declaration to common header
To: Jan Beulich <jbeulich@suse.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <f291e02042a24de86cab5f62cb2301ad8c72fecf.1764328801.git.oleksii.kurochko@gmail.com>
 <18a52859-1b73-44b9-a54d-2f37c7ec9933@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <18a52859-1b73-44b9-a54d-2f37c7ec9933@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO3P265CA0022.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:387::13) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DM6PR03MB5049:EE_
X-MS-Office365-Filtering-Correlation-Id: eee8cce4-8dcb-4c07-f706-08de2e81170f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OG43STA5am9zRFhrdnZaTGRCK3hMNHZBODE0b0tLbXU3VStVd09ibGV2MUx3?=
 =?utf-8?B?UGxZTndDc09CVFc2K1MrcmNNZmNob014ZzhsT1lEcFpxVjgzSTR4WlpEMHB4?=
 =?utf-8?B?WHFBZHZ4QXg1TGZTVGpqejRYMkhpVnRpN2NINmRsV3ZOejdZaFA3UXhTZ2tm?=
 =?utf-8?B?R3JYRVdtTm5lZ1FsOFBzZU9GTS9oM3lZQnZ4Wm0rMkk1RTdmVDA4cHd6d3ND?=
 =?utf-8?B?ZnhIcTZQV05kcHFWSFVZMlFEcUNwWmlCSzdIUUk2VjdVQ1grVkNqQk1Rem5S?=
 =?utf-8?B?VWxvS2ZyT0ZpVm85eWhYQ0k0M1REdHErWmJXMUNFaFhGSjN6RG1hdExoaWxO?=
 =?utf-8?B?RWQ3bytMM0JDNlpzMEpmV0pSRVVEaEVaOHl6VmUvKzdDU3Bicis3TFU2MEJy?=
 =?utf-8?B?Q2lCRUJzY0REdUNsZGJFMEJvY09MM2ZJUW9rTkY5S3lwNVQ4MjUvZnF3ZHRn?=
 =?utf-8?B?aVB5SGVDMTFMYTQ3Wk0rdGZTUnZQdmtSY0Y5WmduQkY0Q2hHZlM2bjF3TFZy?=
 =?utf-8?B?UG1RL1h2K1A0bkxFMytxcEJhYVpEMk85eVl4UHl0VU13ZTNxNVhiVGl0YXJF?=
 =?utf-8?B?WXVlV2VyeU1jYjZENTAxTEJnNGRRVVRsamZZUnFUcDdqRDRhT0M0SHFld2xF?=
 =?utf-8?B?SzJKSkJDeCtEb0dEWHNOeSt1S25QQmlZeDNWSUZoNDJqRTZiQUo1UlBsSXZj?=
 =?utf-8?B?MkQ4N3pjcSt0QVpOdmM4ZTdwTGFGTEFqbVJWNzRPeE5DWkNFa3Q3YmN2U3Rj?=
 =?utf-8?B?cVNxeWdON3Y4bHJlMS9EeEpOZWsrQmNGR2lXRy8vMUd4Z2huOVVXQ3J0Skp5?=
 =?utf-8?B?a3B5bUtrbTFNZGNtazR5bjVzZHZ3Nmw0aDNUZ1NYNnQ3YnpPUGZwWTJvcUdM?=
 =?utf-8?B?anF2QTZKYnRhNmtqYlEvUEFNMi9KdzMrbDI1S1EvWXFIb1JjU1EyZi9OeDQx?=
 =?utf-8?B?RUtkN3BVTUMxSHNlelZER2RENnhXS0k4ZlFoVWRFU1NvaVNCN3ZTUVBJK0RN?=
 =?utf-8?B?VlcweW1JV0ZHV0cwU2doNEU5bXdVbUduQk1tYUtVdnZoU1B4NkwxSjZlWmhr?=
 =?utf-8?B?NjUwZGRnUkNxNExaNWJVb1VHbnlKVlpPckN3ZEZRU0xWSUJSV29ySlBSWUVI?=
 =?utf-8?B?UVNuQmZwQXVOQjcvM0l3bXNTckw5L0thNXV4RHRHYXZmR0hFNWZ4cjZQQTNL?=
 =?utf-8?B?RVErVWtXRWl4Y2ZDSTVHcTZWTWMva2ZMd1dxR0tYTWdybjc1cjhnMXVlUDB0?=
 =?utf-8?B?dmEyQWZqczFTeEZibUFCcGRMWkNGZkVqOUFPOWpVdzlWVCtHck0zMFFydWJX?=
 =?utf-8?B?emkyc283Uk11Uzh4REtBZEJoQXFobUlGMVljMlMyckxraXJZWnpxaEZRTUdS?=
 =?utf-8?B?N3NYV2ZaMHYxNlM0NU84cEY2Z3RIbk5MdWtTTVkyTmVWYnlCcDlOcmtZOHhS?=
 =?utf-8?B?aDVyVWF4YmZLZ3pyeG00RWdJWG5UVzRwVDZzZ2JpMVE2NVc5THI1WFh3TmlT?=
 =?utf-8?B?ZDk0TzFMZXJCUE5qTzlubGhDL05BRDdWem5kZ2s0YUppVmVqRUw0U29uU0Rx?=
 =?utf-8?B?clBLTEI1cEdaR0xxZWtTTEt5clEzMnhoSjZuMWpXVzlobHVoVm8yNFVnMDVF?=
 =?utf-8?B?N3FXZlliRGQ1S0pSd1FJWUpQZ3VvMFJJTFQ5NlJYQlZDQk9MNTRKWEF1QW0r?=
 =?utf-8?B?WEdIOWlmNkxoR3hVM0VIMGNzV2cxU0xHNUdrZ3NqU0V3Zi9ZUml4OE1FQU5F?=
 =?utf-8?B?VzVFOWt2WTR1QXJDQjRMUUgzVmFsc2h2bHorRUZGNDRqVmkwVHFZRy9ITDBo?=
 =?utf-8?B?TVNMMGppSjZlRFRuRUlhdGw1VERrLzUxN05VK2FKMW9GMmYrUVROZnROWjJD?=
 =?utf-8?B?MUJ5eVprZjhCVFVaOWgrT3hZMG8rNUpMRDRDYzE5WENYRFVEMDExRDRDaFU0?=
 =?utf-8?Q?kGLV/yeVoD6aR5fpDsf/w4zunvL3ysF9?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MW1PaUNXUXlkcXFYN3pWVERManlORnd0V3BNOUpyNjFzTFh4cW9mUm9SS05k?=
 =?utf-8?B?Y1UzUnVxbXJvcCthYXVrTW1aSXFVeEhWaDNCWE5xUWsyMnpJSkRvR0E3cmtx?=
 =?utf-8?B?bmExRHpReFBZZkl5ZzMrS1Yzb0Vxemo3azVFL05Scm1lNlhWZDlWb1ZxVjQ0?=
 =?utf-8?B?SnJ4aXVGekdiN1NDOWFHWFJVT1FCbXdLdGc0SEhNU0RyRkZscWdvT2QxWVVt?=
 =?utf-8?B?M1Bkamg3Uk1PbTU5WmRrNkpCYkI5QlNYN2llSzNDdVNIM05rYTlkMUd3N1ZL?=
 =?utf-8?B?WitjREFkRVpycTFvaVJwaHFMZjZWWHc3eXZvN1NBd0lvOUZxQWFtQVIwbnZG?=
 =?utf-8?B?QnBQU2JBWVFOMnZ0QzVDcWN5QnRmeUxsVW04UjJTSnpnVFYrbjNVakhuR0RH?=
 =?utf-8?B?TVArKzgrVkREVjUzMUVrMmFncklGR1VYQU90Qk5IOFp4clNmdVVIQ1FJbnk0?=
 =?utf-8?B?RzZ6dHNTWGpBQTR6QzNITDZyVXJ0VGwrdDNFZFRJdkp5YS9PTmF4eHlnb21R?=
 =?utf-8?B?ZHM0M3JFMTlUd0VIangwc2NOVHFDUU10SWViR3RjdUgyOXYwdXgva3ppdW1x?=
 =?utf-8?B?ZmhtLytiR29pWlJiZVpFMU04RDFHMDlSYUN0cnR1c2NXK2cyT04wTmdoZHNV?=
 =?utf-8?B?bXNhTkJJOTFCUHFHRDVjUEFETnpJQXhwUWdDWUpvdEw4cU9WeE1GYUJQakNz?=
 =?utf-8?B?OTFna0Z4YWdhbGZPZ0RRQWNmcDRQSmZyK0w0OGZMNjdFL0tTZmdiSEgyK0RQ?=
 =?utf-8?B?OXFTWHo4VEM5K0hSZFJ3a000dC8zTlFTM29Vd2VLeGJjVncydDNpQi9rdjVE?=
 =?utf-8?B?R1lzdWxOd1d3S3R6ZVFQRUZ1OFhhSW9oUHNxRFQvSHpkNjVrekE3MkFxajl2?=
 =?utf-8?B?VXJLYlNOSWZia2xxdVQ0eUZ2MDB2bXVSdWo0dmk5OHNiNVZBNkliUU1sbjZj?=
 =?utf-8?B?dEFPUFJMQzlONDdkVHNMckt4N0poUXRPOEpWd1h0Ris3TGZmOUlGMXBLTExP?=
 =?utf-8?B?aVUyQTFoeDNzeVJmbmowODIxcHZCNWFvR1VmVVNOaVZFaU5LVGU1UWEvWlN4?=
 =?utf-8?B?YkZsY0t3TCtrOFNXNWdtUWlHUGlLL1k2b09SOHRmK1NvMVNYMG5WQWNKcnBa?=
 =?utf-8?B?VXIyL0V0N1VnMHBITkxjYythWnpBeU5oVzJMMmJPV1NwTzl0eDFwbnFyNllY?=
 =?utf-8?B?UEV0ZFBhSU85SkUzbU0vdXZRVnlSbzdDKzhQNElLckJYS255aWVUZmtzMk5V?=
 =?utf-8?B?bS9vaU5KTTBaOXQ1RGp0bTZKTVMrdExNTEhNbkI3VUNKcjVWcmllelFFVU14?=
 =?utf-8?B?VzVhMmlYc1FFT1NWd1RlQmVxVUtRQ29VbzhaL2hMeko4b0ZjWDFXSWszTE1Z?=
 =?utf-8?B?QWZ2dnE3UHpHQnQwUEdubERuSFFmenFONEw3TVA2TGhuVzNsNzZrb1VMakVO?=
 =?utf-8?B?NUsvYnZDOThxZU93RGhQWlMzTW5yTWhZL1laRlZzYitRYWlETmNJZGxpUzM3?=
 =?utf-8?B?SmE1UUlZNldUMlBuSjdVYWhhWFNyVmpvc0orNm5ISnpBbW5MTU1QbDQ4dU1y?=
 =?utf-8?B?bzZSaEhiWHNMNjdubGU2RCtFdU5INWplOElWcXpyNTFza2F0bXdnZEh5NDlh?=
 =?utf-8?B?OVNjdTIyTmlQU0lydXJqSDhFM1JveEZuQ2ZDM2FFUy9TckVoSXJrMmc4dkc4?=
 =?utf-8?B?MkdiYlZWWXdUdFN4ZU9vQ1pCODNLb0d2WHRLMitmcGZLSXdSelcwenFoOGdP?=
 =?utf-8?B?MmJyZUdoUXpKemhqc0EvdHM4V1NkSi9jZGJ4c3RIa2VKL0tSZHVRSithckV2?=
 =?utf-8?B?N2ZaSUFxSmtvZGRDeEs3ZDAvcGFuT2NNUkpIZ2J1VEtRV0VWU0hybjVJdmt5?=
 =?utf-8?B?MmdrVVBNVnBmZStEZFZXSWxQOEFoZklMN0FLaFMzcVdpS0xhQUVkbjVOcUFI?=
 =?utf-8?B?allvNWk4R1FNdHNpc25SS2F6OTAvYmhxaXkwR1N2ZkNLc3hBYVlzTXJEQkxm?=
 =?utf-8?B?NXllUXJPcWwvb0xacWljMGViK0RXbVBObUFFWnE0K3cwUGJySlpUR2JNMUFE?=
 =?utf-8?B?QS9EWGt1ZXlSQWFpU2wyRnhqSGVZUEYzZC9DOWkyTStaNHZCOHRnNWF2aWJJ?=
 =?utf-8?B?V1V1aFBBdCs2cmoxZFFyL2JOckpwTTZSM0xnczlVVVlxclY0NUJzZG9kRVJP?=
 =?utf-8?B?a1E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: eee8cce4-8dcb-4c07-f706-08de2e81170f
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2025 13:21:51.1249
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: KknXNJ40J4bzHG8CAOennLkMvg7TrqFK8+BAzcx0gEvAaQ5TDEQSFVIG5OrNDJHDZrzvpWS+0Jmo10tmD7LkQE1G1WQ2HgqNz6FAW4V1do8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5049

On 28/11/2025 11:58 am, Jan Beulich wrote:
> On 28.11.2025 12:38, Oleksii Kurochko wrote:
>> The vcpu_kick() declaration is duplicated across multiple
>> architecture-specific event.h headers (ARM, x86, PPC).
>>
>> Remove the redundant declarations and move vcpu_kick() into
>> the common xen/include/xen/event.h header.
>>
>> Drop the definition of vcpu_kick() from ppc/include/asm/event.h,
>> as it is already provided in ppc/stubs.c.
>>
>> Include <xen/event.h> instead of <asm/event.h> in places where
>> vcpu_kick() is used, since its declaration now resides in
>> <xen/event.h>.
> Centralizing is of course good. Question is whether xen/event.h is a good
> home for the decl. Generally related decls live in xen/sched.h. There was,
> however, a vague plan to try to split that up some. Others, REST
> maintainers in particular: Thoughts?

+1 to centralising.Â  I'd suggest xen/sched.h too.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 13:27:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 13:27:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174832.1499771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOyVp-0001rc-N4; Fri, 28 Nov 2025 13:27:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174832.1499771; Fri, 28 Nov 2025 13:27: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 1vOyVp-0001rV-Ii; Fri, 28 Nov 2025 13:27:49 +0000
Received: by outflank-mailman (input) for mailman id 1174832;
 Fri, 28 Nov 2025 13:27: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=sso2=6E=bounce.vates.tech=bounce-md_30504962.6929a350.v1-38aa5d452551445e92bae929b494660c@srs-se1.protection.inumbo.net>)
 id 1vOyVo-0001rP-I7
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 13:27:48 +0000
Received: from mail132-20.atl131.mandrillapp.com
 (mail132-20.atl131.mandrillapp.com [198.2.132.20])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 063f7508-cc5e-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 14:27:46 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-20.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4dHvHN4HjTzFCWZNS
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 13:27:44 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 38aa5d452551445e92bae929b494660c; Fri, 28 Nov 2025 13:27:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 063f7508-cc5e-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1764336464; x=1764606464;
	bh=bSU7yfFnAdDXZn1HJHtHgLtnFy4V2A1/5jF5UEOrF7A=;
	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=KH5fREFEsS61qhP31OTV+3rz5ARV46UWRmt7JyheubZirVShfk2ZOED4o7SwjSoF2
	 wMqI1zOqfteccz/18q3F/G04Fd+ODtcQ/jlLMQWrbeiTJr8nJLOSwrcvuB5fIfaDof
	 YsJVD2dzRyMF2gwS5fXgbr4djXHX/diRCetd+D4UyOnZFNh5xQD2v+V6U5kiEMXQ+Q
	 Ib4Qt2vQRwDRVljceeV4bfBWycFLixjK1OTICjxgy3/li7Y5zgyhfICokQ0RMHRVOQ
	 WNREbDiKVV4JLCKPAZLEq8QcUyDjwmnr3yI8PQIYC1bYhKgcwmjTeBcSEoeojj9eE8
	 pQxpS06riiwtA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1764336464; x=1764596964; i=julian.vetter@vates.tech;
	bh=bSU7yfFnAdDXZn1HJHtHgLtnFy4V2A1/5jF5UEOrF7A=;
	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=tAnnHbp4L9e8gnWRjGozEM53EBiR885QhB78hCxy7WZ2nIZ5cJfk4e1aJ7eB7VQWx
	 FqKhLnCcZDl8gQNWAOQyCrr4FmEvP9jbNdDpE5b7e/EBIVMqQ8x/GAktudP/fBdoAx
	 /fBTtCftmAEJLiScorCwBZVwzin15mAdhjKMgH1O/N7m60sEpWk+KmoPsc9k8+3J3b
	 xJsnUhCPeZsJsqhR2nri4maw03gz66SuB/ZmP63a6vq2aYtJpYLlZnuxh2CB0IxnRn
	 faA7GyUbrD8teq+jG7tlF3+OAOd0ma3VxPNuJKZoHMgGsyFKdoL2LDKujWhiHM9bwZ
	 18CUazwOXvzXg==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20x86/efi:=20Remove=20NX=20check=20from=20efi-boot.h?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1764336463250
Message-Id: <38ef77ec-e215-48cc-9139-764190a1c6de@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>, "Daniel P . Smith" <dpsmith@apertussolutions.com>, "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>
References: <20251127143136.1598354-1-julian.vetter@vates.tech> <c0a9a466-e78c-4022-a631-4840e085ae77@vates.tech>
In-Reply-To: <c0a9a466-e78c-4022-a631-4840e085ae77@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.38aa5d452551445e92bae929b494660c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20251128:md
Date: Fri, 28 Nov 2025 13:27:44 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable



On 11/27/25 16:33, Teddy Astie wrote:
> Le 27/11/2025 =C3=A0 15:33, Julian Vetter a =C3=A9crit=C2=A0:
>> Currently Intel CPUs in EFI mode with the "Execute Disable Bit" disabled
>> and the 'CONFIG_REQUIRE_NX=3Dy' fail to boot, because this check is
>> performed before trampoline_setup is called, which determines if NX is
>> supported or if it's hidden by 'MSR_IA32_MISC_ENABLE[34] =3D 1' (if so,
>> re-enables NX).
>>
>> Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
>> ---
>>    xen/arch/x86/efi/efi-boot.h | 12 ------------
>>    1 file changed, 12 deletions(-)
>>
>> diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
>> index 0194720003..8dfd549f12 100644
>> --- a/xen/arch/x86/efi/efi-boot.h
>> +++ b/xen/arch/x86/efi/efi-boot.h
>> @@ -748,18 +748,6 @@ static void __init efi_arch_cpu(void)
>>        if ( (eax >> 16) =3D=3D 0x8000 && eax > 0x80000000U )
>>        {
>>            caps[FEATURESET_e1d] =3D cpuid_edx(0x80000001U);
>> -
>> -        /*
>> -         * This check purposefully doesn't use cpu_has_nx because
>> -         * cpu_has_nx bypasses the boot_cpu_data read if Xen was compil=
ed
>> -         * with CONFIG_REQUIRE_NX
>> -         */
>> -        if ( IS_ENABLED(CONFIG_REQUIRE_NX) &&
>> -             !boot_cpu_has(X86_FEATURE_NX) )
>> -            blexit(L"This build of Xen requires NX support");
>> -
>> -        if ( cpu_has_nx )
>> -            trampoline_efer |=3D EFER_NXE;
> 
> I don't think we want to skip setting EFER_NXE. As it would mean not
> using NX at all (unless I missed something).
> 

Yes, I though the code in trampoline_setup is taken in any case. Because 
at the label .Lgot_nx the EFER_NXE is set. But Andrew said that this is 
not always the case, then you're right this should be kept.

> If cpu_policy doesn't have nx, it is likely going to cause issues e.g in
> VMs which will not see NX and potentially refuse to boot. I don't really
> know in which order things are initialized, but it probably wants to be
> considered.
> 
> Perhaps, we want to do something like detecting the
> MSR_IA32_MISC_ENABLE[34] then adjusting the cpu_policy appropriately
> after patching it ?
> 

yes, I was wondering if we couldn't do the check for 
MSR_IA32_MISC_ENABLE[34] =3D=3D 1 directly in the efi_arch_cpu().

>>        }
>>    }
>>    
> 
> 
> 
> --
> 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 Fri Nov 28 13:38:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 13:38:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174843.1499784 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOyfw-0003mN-Mz; Fri, 28 Nov 2025 13:38:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174843.1499784; Fri, 28 Nov 2025 13:38:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOyfw-0003lv-HM; Fri, 28 Nov 2025 13:38:16 +0000
Received: by outflank-mailman (input) for mailman id 1174843;
 Fri, 28 Nov 2025 13:38: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=FSNm=6E=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vOyfv-0003lT-H8
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 13:38:15 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7b8d07c0-cc5f-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 14:38:11 +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-out2.suse.de (Postfix) with ESMTPS id 954205BD6E;
 Fri, 28 Nov 2025 13:38:10 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 682D83EA63;
 Fri, 28 Nov 2025 13:38:10 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id 4rzcF8KlKWkCLgAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 28 Nov 2025 13:38: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: 7b8d07c0-cc5f-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764337090; 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=VmOWmOaXjUYefxxHhYfjGdU9/uWVMkzSMEAj+6XFJlo=;
	b=R4a4Dxzz8+/qNkCD2WRzLaFXjSHQ+CqaCW55QmnXFJ+OD5xsgYGhvfZy9HZbJ7ovkMxkGk
	WGfAXV3AbQKyABmoink77IVS3RGcHgemcz+L96DjNqgvaegb1JnoTGTI9LJporh8aV/+Tl
	aEGbOtteJhWkv+LZ/apuAaoxdDObsjI=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=R4a4Dxzz
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1764337090; 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=VmOWmOaXjUYefxxHhYfjGdU9/uWVMkzSMEAj+6XFJlo=;
	b=R4a4Dxzz8+/qNkCD2WRzLaFXjSHQ+CqaCW55QmnXFJ+OD5xsgYGhvfZy9HZbJ7ovkMxkGk
	WGfAXV3AbQKyABmoink77IVS3RGcHgemcz+L96DjNqgvaegb1JnoTGTI9LJporh8aV/+Tl
	aEGbOtteJhWkv+LZ/apuAaoxdDObsjI=
From: Juergen Gross <jgross@suse.com>
To: minios-devel@lists.xenproject.org,
	xen-devel@lists.xenproject.org
Cc: samuel.thibault@ens-lyon.org,
	Juergen Gross <jgross@suse.com>
Subject: [MINI-OS PATCH] x86: have .note.Xen segment contents before other .note.* ones
Date: Fri, 28 Nov 2025 14:38:07 +0100
Message-ID: <20251128133807.9206-1-jgross@suse.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email,suse.com:dkim,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns];
	FROM_HAS_DN(0.00)[];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	TO_DN_SOME(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCVD_TLS_ALL(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	DWL_DNSWL_BLOCKED(0.00)[suse.com:dkim];
	RCPT_COUNT_THREE(0.00)[4];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Action: no action
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level: 
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Rspamd-Queue-Id: 954205BD6E

Today the linker script of Mini-OS specifies to merge all .note*
sections into a single section .note:

 .note : {
          *(.note)
          *(.note.*)
  }

It seems as if ld will use the attributes of the first .note* segment
found during the linking process for the final .note segment.

Somewhere between binutils 2.43 and 2.45 something changed resulting in
.note.GNU-stack being the first .note* segment found. Unfortunately
this segment has unusual attributes: it has PROGBITS instead of NOTE as
type, resulting in the Xen ELF parsing to no longer look into it for
finding the Xen ELF-notes. This in turn will result in failure while
trying to parse the binary, which will let domain creation fail.

In order to avoid this issue, enhance the linker script to merge
.note.Xen before other .note.* segments, resulting in the final .note
segment to still have the NOTE type.

Fixes: 6d1cc81d049f ("x86: switch to use elfnote")
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/minios-x86.lds.S | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/x86/minios-x86.lds.S b/arch/x86/minios-x86.lds.S
index 8c6e0a60..6367b4b2 100644
--- a/arch/x86/minios-x86.lds.S
+++ b/arch/x86/minios-x86.lds.S
@@ -33,6 +33,7 @@ SECTIONS
 
         .note : {
                 *(.note)
+                *(.note.Xen)
                 *(.note.*)
         }
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 13:41:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 13:41:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174859.1499793 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOyj8-0005Oi-0x; Fri, 28 Nov 2025 13:41:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174859.1499793; Fri, 28 Nov 2025 13:41:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOyj7-0005Ob-UY; Fri, 28 Nov 2025 13:41:33 +0000
Received: by outflank-mailman (input) for mailman id 1174859;
 Fri, 28 Nov 2025 13:41:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YqkP=6E=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vOyj5-0005OT-WD
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 13:41:32 +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 f24cec9c-cc5f-11f0-9d18-b5c5bf9af7f9;
 Fri, 28 Nov 2025 14:41:30 +0100 (CET)
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com (2603:10a6:20b:6::31)
 by AS2PR03MB9929.eurprd03.prod.outlook.com (2603:10a6:20b:646::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.16; Fri, 28 Nov
 2025 13:41:27 +0000
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4]) by AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4%4]) with mapi id 15.20.9366.009; Fri, 28 Nov 2025
 13:41: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: f24cec9c-cc5f-11f0-9d18-b5c5bf9af7f9
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mQqGlSOeYDNuLoNmVjqPdlZz4W1ud/lC+GW6S9Xj1cXBEYoTNZFL6htHZPJDlnngRY8HOOi8zisM162dL4bsZ6eZB13/J75klNoAE2HyZpQ9nF84PMyouc1zUdHs+gqEoaGniReOmTb7wZnAPAJiULyQKD+rriHuyRaTzx4UWo6ZTqAj7kxeAmBMIez5eoVV0MEdWkGl2LlBpmdm8W68WTDDbDv8i4SxqTOCA0ra3ONhmZT3eS/ccJxb1mkZS4ImcD/kdrgMmiDWXc6ap2Z1RKTS/4+vDVEtxgqNytAQ//Wr5jKkAUzS5x/cziLbKPiei38r+2AuImlYNmybsQfzAQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tzoxoM9J6gp4BN/3M8GU7oAmfY6x/NtL+3wFAeqvHDE=;
 b=qYlMhE4Kl8AXD4PNQJRLGoaSmq73P5X28JWPgyd6DgjmMu2VdIe6bW8PmA3NmnCWu2oZLEQVlk05AcG5SXNfNqHdoIYvkyfn3cU+Ve83JrmX8AUVOXT4lHEMBaEL3wx7n54+TXwbPGALpsE0Qghx0L61enmFIrsJDE+1E3+shxHhO5xKggevyRHHhE+rQwXa6doYfaBqxpVD1PadzxeJ73I1kzT8dAlQlf7HIlhTCC642VD/4nSA1fHC1jA7Gz75oAVsClh7ls01/lnCJlAIjJf/BmO1X4xNQO+CRqGGQjl1rrnRZTVxGcx2jJwQ6dCAm3VmzGR3KWfRsxxG/Ivjig==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tzoxoM9J6gp4BN/3M8GU7oAmfY6x/NtL+3wFAeqvHDE=;
 b=OH/dZlkLWyQP3ZhH/YKoD+r/xaVSw34fCNj8gFik2ZbHLH6riLuiqfMvCPakFQbF9Rs40z4cBnDsok6bCx/LU35r2PJUcIOH6DHJD+O1664P/NkTH7IOX7cftWwQpAwinMiqUoydC3DYVsP9jtHR8Gtw3Bwkuf2nerPtFm3Ewoq+i5D1zdrjoww6wOhG0BuUabF6S3LxoSvX0kMivoZgUHS/e+puY6o+PP79SvtpWUfNEh3Od9W1woUNO+UHope5kMEGyRw3DJWBRUoU7LH3ABMCyVPKHjCy9Sn2GsG/3FCzRCtBqxmaQ2ZSKAGyE5FwXPQjQWUsb1shLPCIf4RS6A==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <0e355293-a4f9-4474-aea3-e9575cfd209f@epam.com>
Date: Fri, 28 Nov 2025 15:41:25 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/domain: introduce generic functions for domain
 struct allocation and freeing
To: Jan Beulich <jbeulich@suse.com>
Cc: Roger Pau Monne <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
References: <0a66c71356e8d6ea788022438d7a73dbff8aa5b9.1764243466.git.oleksii.kurochko@gmail.com>
 <fbb420d8-499a-48f9-91d0-06469f265ff7@epam.com>
 <467b9a77-6e90-4877-be8f-59deb72d1827@suse.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <467b9a77-6e90-4877-be8f-59deb72d1827@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: FR4P281CA0231.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:e9::11) To AM6PR03MB4600.eurprd03.prod.outlook.com
 (2603:10a6:20b:6::31)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM6PR03MB4600:EE_|AS2PR03MB9929:EE_
X-MS-Office365-Filtering-Correlation-Id: 4acde34d-cb41-4bd2-22cd-08de2e83d43b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RUR5NitjSEx1YUNqUkFWWEJzUkRtdlprR1YvSjl1dm94VXRWT1VsTmYvY3k4?=
 =?utf-8?B?WXFtTlpwNXZKOHozeUcyRFZVNnJqNlpoT1YzVzVJK3QzQTFqM0ZUcFMxZUd6?=
 =?utf-8?B?N0ZUMW9uUXBLcm9jZTFvZW9OYmxabVlOMGw4eFJvTmxieHVOMnJJQWh2NCt1?=
 =?utf-8?B?S0F2cTByZU9VQWk5Uko0VVM4dkFhZ1JlMDlteHplQzZoeXU5WXgyQ0pYcUww?=
 =?utf-8?B?QVhsWm8rRlN2TG9tL3BkZVBZRWJsbFJvdGYwNWZ6blc1U0MzQmcrOXNWZXJP?=
 =?utf-8?B?amR3MFRENmZlRm5lelhZTytZKzBpNVJLbW1MMldMa1VmaUM3VFJkRzBhci9w?=
 =?utf-8?B?NTN5RkNwNVhjanN3NFRpdWRYTllYalRyRTRCcjJCb3Z3TUtWWGQxYVBZaVVi?=
 =?utf-8?B?VDIwZ3FCVW5UbC8raXd6NkhtQ0ZxSlQ3aHJFQnJicWhDRVMwdmRlbkdBQk5m?=
 =?utf-8?B?SXpNSkJRY1ZxRU9vYzhYSnBhalBacXA1c2JhMGsxd3h5K05ZKzZzUjVZSlVJ?=
 =?utf-8?B?dDc4SWwyOFVRMzM2M0xhR21LSlNZbm9yNlRYK0dtVnI2NTZXZiszTTdBdnQv?=
 =?utf-8?B?eVJxVkUyUC9VdjIwbWlZcFJpZ1hPbThJWlFsL0ZWREs1VE9FTXllUk1RSGJx?=
 =?utf-8?B?V3pnSEhacXhzRWYvc1F3TTJsZFkrTnMzQWZRN29wVHlJQndlSmdiL2dlR3U3?=
 =?utf-8?B?YXFid1cvUzg3aVpkZGsrZFkzeGhjSkFVZ0dGWStDdnRZd28yd3hSVjFENzNk?=
 =?utf-8?B?eFg0bko2RC85T25hdWVSOGVVZVZxdHZiaUxDaWhxSWV5ZTdrQ3ZCalBlTkdQ?=
 =?utf-8?B?VU1BYytnZ3lZTis1TXBNcHlHZWN4cU0xMEN6LytKMzdJbFlpbWhVOUoxVzE3?=
 =?utf-8?B?MFNQVVgxbVByNU9ZK3gydTJwemlTS3RaYlRWTHduN1FhMUVCcEZtNURSWmpk?=
 =?utf-8?B?d0xJT1k4alNmb1ZLcjNOTFFBM3RlRFRVanR6dmlsbFBkR213aDVIeGlENnlG?=
 =?utf-8?B?Y0dNSlgwaDgrS3BGUXVrMGdZZGlFdytDekRJKzVXTm4rL3pIR1hoQTZFOS80?=
 =?utf-8?B?RzhJcEY5L3BmZWRpK0x4cFVzMFZRZlQ3V1lZOGkzaml2Kzg0eHRaeG9idmxK?=
 =?utf-8?B?M0hKL3hIYk53eUYwWXpkQ09sR3hCOHlFTkNNbnpTZ0VROS8xaDFwNERodkEy?=
 =?utf-8?B?ZFVRQVJUOUVMWkJsU0RSeEY5Q0VDTjVoeFV5YzlSWTFIS2U5WVk1UWl1UzFU?=
 =?utf-8?B?cnhqME85bXlDZzUzbmxsdUN2RGNYZnRudmtDUjg5SXhUZUNic09jZEo4TXNZ?=
 =?utf-8?B?RW5MRmdjUDdkQTNzV3E5ZFZod0JXVEIvUi9TSlpMUlJZZjVSdW8rRndkOXhh?=
 =?utf-8?B?KzN2d1dMVFpScUJQOHdNVFJFdFNBT0lnN0dzMUUzRWsranlweEl4QnByQXp6?=
 =?utf-8?B?WngvYlBqT293eGl6WVVSTEQxWVViWlVZRUZjcExPTU8xWlVFMDhtT2NRRjln?=
 =?utf-8?B?WGt2L25wMW1vL2pvYmpaZGJFSTFKb3NVQW5lQkFRSkFMbXVDL3Q2V0pBbmVG?=
 =?utf-8?B?M2JOMjhqeVdMUVNkbGZmTDZvUThJUitZbkhCNE5sUllYSFdPbi9RZU1FUUU4?=
 =?utf-8?B?Uk9RaE4xRjhuYXFBRTJpeHdtWTI1QWhiUnBCdm8vTW1iS0JBQ2MxU3U3Zjk1?=
 =?utf-8?B?cm5WRytjSllJUjVYd250RFI2dWlIbVFicks5RkVtY284aDZVNU5DcERyNzBl?=
 =?utf-8?B?QysxcHVob28zWWp6Y2lvTklTQXBweXRodC9TSjdFdEVmVW5RcGhoR2ozTEx6?=
 =?utf-8?B?bnhlOGFOMUJZZmFWVUdmdTFENFZyczJtUlAyVGxNZ2ZlbDlJYzVPY3czQ1J0?=
 =?utf-8?B?a1pEd0QzTTFDcGFuZEhVLyttbk91aW1rcm9PUWFGUUYza1l2QjRheXgvNnZK?=
 =?utf-8?Q?1fleZgHXC6gkIgGGRMaQhAjY3eevy4kI?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR03MB4600.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dFlNUmFYU0dCSk9kSURtMWFqWUdkQlFCVjNrWHAraERVRzVGcFRNS2xXZWNn?=
 =?utf-8?B?UzVvU2M0SnU0SXRTUm8zVURvOU85WFpGQW9KaVkvSHNZTGFBdlgvWTRwVFE0?=
 =?utf-8?B?Yzl6V2s5Y0pyN00xMENJSkxEQVFOdWpDMzJIOE5MakExRDlXSVZSVjA5eGc2?=
 =?utf-8?B?d2xzK0lWRlRHblZkbkFCenRvcnUrb3A0Z25YcFJIRDdMc1lFWjBqUWhUQkZF?=
 =?utf-8?B?a3I2ejZYaGhvU0RxUHBaVEZaWnRyMXlveGZtVVJxcEwyY01MMXNaNFJtY3NY?=
 =?utf-8?B?QVo3V2VXdjlXYVhWMHNKR1pYUUw5VEg2bThKcGlXSWMrT3pzeWluM0JJckV2?=
 =?utf-8?B?SmllN1lNOU1KbUdPcW81eHI0dXRFT3pkZnpZTE1hMWtuZ3BuYVF5SXNhRzlE?=
 =?utf-8?B?U3dnTS9yM240eDBPeFlaOEp4UGhpeEFRWkFwK3VnNk5RVnU3WWQ4MlJqV3Rh?=
 =?utf-8?B?ZHB0eUQ4RU92blBPc0pVNk5tL3IzM1RhV2haK0lZMkhNZXU2WGVONGtncTJO?=
 =?utf-8?B?Qm9OeW1mYjNtcmxqRVIyYUkzWUNMT3hYV2N2MFNEQ0ozUW9ISUw4dXE2dHJw?=
 =?utf-8?B?Q0QxZHJhdXNlVVAyVnBONzZocW9PM2xGOXQ3MTMxZTNMeUpiQkd2OFdiRUQw?=
 =?utf-8?B?S2p1b3FjMW9DUTNUcHRZTys5OXNEaHRkaHU4cExnL0lKZTNSMjg5c05NZUJK?=
 =?utf-8?B?b1RBL1pMZjBzeTd6aUVublFaL3IwTE11S2srZU1sOC9vd2YzMUg3SGFKRUFV?=
 =?utf-8?B?S0lOT3JNNEJkMkxJNHZBKzlBcEZCSzhsNk5WaG5JWjBmMG16NjdUSGZoSHZW?=
 =?utf-8?B?bjFUT2twY0s4cWRXLzU3a3BsSG9OVzdIRlhQUEhuQ3R1QnFzZThoRUhXeGIz?=
 =?utf-8?B?dGRFMzJTS1ZhWlJWZVJQTk1MSVRQUHlXZjlhZG43eUNaWjdVU0JEYW8xb0ti?=
 =?utf-8?B?alZCVFE2ZDl4dDBjdTZWMTdZQVNVUEpmMktOajBkRkNXaEZaa0RPOW1EaXNX?=
 =?utf-8?B?TTg3R3pSNHZZM2NrOEdPa2lrOVZJTkk4MEpIMGMwNThKdkFuVWkwa3laOC9Z?=
 =?utf-8?B?YkI1Q3o4cFdLOUFRckgwYUg2RlQrNlkxcTJ4S2R2QkIxMFVTMTJZMjJ5SWxl?=
 =?utf-8?B?KzVtMlRLSFlOd2xTRzNTZWNIdjNISXBza2JRVW1ySENSUmlBSEJGa1lzRGM4?=
 =?utf-8?B?Zkd2UW94SkdEWmJnQVRVZzdqUDN3bWJSVk1TN1czUXFmdE1IWGlDdUErWXpE?=
 =?utf-8?B?cURsaWRBeUlkQWN0WW5DWUVpVjFFZFl6b2pZSTF3a1pUSzZrdjF5ZXo1MWE4?=
 =?utf-8?B?QW5hWWRtV1pNMHlDZjEvMHIwbXNBZitZVTJHalQxR1hYbkVBMmc5SkFDeXVS?=
 =?utf-8?B?NWtaY2lRcXRML3VnRkl5eDlJSkVIZ0t1VlQ4bFRNV2xJWHdkWHdZeVpNdTBr?=
 =?utf-8?B?SWVyUmcrTHFZU3lsMFNuVVIwRjFWR3Z3VERLVVNVWTNQNHZmT1Exb3lmazkx?=
 =?utf-8?B?VS9MUVEyMEswYWRlTllWWm0rL3hCV3kvRVl2YlB3ZkFjVldXOHVFZ3NDRWor?=
 =?utf-8?B?YjBqQjBSRFM3NktSTkpSVDFoNUwvZHoyQWFoNFBvMVo1a1dwOW45aGlUdUVK?=
 =?utf-8?B?Wmpwb2FpeDUrSEJ5ckhJbUgxbU1OQXo5cnZhQTNjRzdGaVJGZWx3V3F2RXht?=
 =?utf-8?B?ZXlQRlYwd3VqWG5DY1UwazdydlRHeDFGemtDTFNoV2kzaHNFSUcvWDA4N1Vv?=
 =?utf-8?B?REU5VlloWUt2ZHNlcWVNWG0xRnFKb2h6R1VIODdJU29PVmt1RFBjWC9xNU5B?=
 =?utf-8?B?YlB0UTdnL2ZqbEUvS2g0aVJYSnYwMXBLcWZXUTNVRHc5Q2tXOXBwWWlrNGxK?=
 =?utf-8?B?QnNtV1puZjhVSFA0b3ROYzVSMWtCNDJpVjQzbW5jeSs3eW1weDZ3eWo3Tnkx?=
 =?utf-8?B?dW1zQnFzbFJDajFscVJpU3IvdExBWmQ4N3BPTEN2c0NUVzF2UFV1M3Z2OVpI?=
 =?utf-8?B?dEIwQW9vbFJLSStUbUo4MklZK2ZqSVFWcC9XRTkraG1KaGFRNkd3b0V5NTFz?=
 =?utf-8?B?aG0zMHM3cEt4dWVObmJwcGorRmkvZThiSzVMMFFyT1k4eGtOWDZ1MTA4d0pa?=
 =?utf-8?B?bzlxZTN6b25ZSjFLUEpzNGNSZFRNVjJvSlJZWWRVcVF2VmtaNkZRU2hlaU13?=
 =?utf-8?B?Z0E9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4acde34d-cb41-4bd2-22cd-08de2e83d43b
X-MS-Exchange-CrossTenant-AuthSource: AM6PR03MB4600.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2025 13:41:27.0741
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: PH/D0T0wmxSUgn36ev25tW6MaLpzU+ivjlTFvzvOmPfhUMLl3hPC96G4thWqXZz15zSjRi739tBrAIkoAqtv8EWPsg6N69mLH3j1on6mRqA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9929



On 28.11.25 15:19, Jan Beulich wrote:
> On 28.11.2025 13:11, Grygorii Strashko wrote:
>> On 27.11.25 18:26, Oleksii Kurochko wrote:
>>> --- a/xen/common/domain.c
>>> +++ b/xen/common/domain.c
>>> @@ -799,6 +799,28 @@ static int sanitise_domain_config(struct xen_domctl_createdomain *config)
>>>        return arch_sanitise_domain_config(config);
>>>    }
>>>    
>>> +struct domain *alloc_domain_struct(void)
>>> +{
>>> +#ifndef arch_domain_struct_memflags
>>> +# define arch_domain_struct_memflags() 0
>>> +#endif
>>
>> Is it really the right way to
>> hide part of common interface in common code instead of header?
> 
> If it had multiple uses in different files, surely it should be put in a header.
> In this case though, with (even long term) there being only a single use site, I
> don't see why we should even bother figuring out which header would be an
> appropriate place for it to live in.

Thank you for clarification.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 13:52:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 13:52:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174873.1499805 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOytR-0007dJ-3Q; Fri, 28 Nov 2025 13:52:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174873.1499805; Fri, 28 Nov 2025 13:52: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 1vOytQ-0007dC-VP; Fri, 28 Nov 2025 13:52:12 +0000
Received: by outflank-mailman (input) for mailman id 1174873;
 Fri, 28 Nov 2025 13:52: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=qL3d=6E=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1vOytP-0007d6-Mj
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 13:52:11 +0000
Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com
 [148.163.156.1]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6d9fbc02-cc61-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 14:52:08 +0100 (CET)
Received: from pps.filterd (m0353729.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5AS7BFTe019581;
 Fri, 28 Nov 2025 13:50:52 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4ak4uvpnby-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 28 Nov 2025 13:50:52 +0000 (GMT)
Received: from m0353729.ppops.net (m0353729.ppops.net [127.0.0.1])
 by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5ASDop3o022924;
 Fri, 28 Nov 2025 13:50:51 GMT
Received: from ppma13.dal12v.mail.ibm.com
 (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4ak4uvpnbw-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 28 Nov 2025 13:50:51 +0000 (GMT)
Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1])
 by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5ASBYANQ027466;
 Fri, 28 Nov 2025 13:50:50 GMT
Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229])
 by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4anq4he397-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 28 Nov 2025 13:50:50 +0000
Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com
 [10.20.54.102])
 by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 5ASDokoI38601150
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 28 Nov 2025 13:50:46 GMT
Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 99BE320043;
 Fri, 28 Nov 2025 13:50:46 +0000 (GMT)
Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id A6BFF20040;
 Fri, 28 Nov 2025 13:50:45 +0000 (GMT)
Received: from li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com (unknown
 [9.155.204.135])
 by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Fri, 28 Nov 2025 13:50:45 +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: 6d9fbc02-cc61-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=pp1; bh=r/OOpcVTp61iopdoqOEy4BlI0dubVk
	eEnLCmlQuTfcE=; b=K2Z8tqMvKnbK3NPoVnvwS9bUNU+eHd2oMYLOcbbh8yfK0y
	7w+kywfkKjNbOtVYyLHncZfrLhsUFlMKc8mckWWFo/7yDF7q2EC3680JCjr0BDdu
	8hdzQIFNvTY74oSwkge1FPDmDtQuS3N4eKeep50nCH91r64Ni41OGcShCtvxag/d
	oQJuOfiI8kQiaTqyu86HXCvB1Ut662QlIMQYNdLjG9yHF3w4NFq53bu3DX5W0wUK
	KJtTHVgf+JS2KOO3k4hBKyku54ovMUn0BQWEN4c+awe+REbEmOxOF0bVDID0fYMS
	c9lxbFvTLYJpmhyU8CyCMh3b6QO1RShuMgREVYig==
Date: Fri, 28 Nov 2025 14:50:44 +0100
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
        Andreas Larsson <andreas@gaisler.com>,
        Andrew Morton <akpm@linux-foundation.org>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Borislav Petkov <bp@alien8.de>,
        Catalin Marinas <catalin.marinas@arm.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        David Hildenbrand <david@redhat.com>,
        "David S. Miller" <davem@davemloft.net>,
        David Woodhouse <dwmw2@infradead.org>,
        "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
        Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
        "Liam R. Howlett" <Liam.Howlett@oracle.com>,
        Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
        Madhavan Srinivasan <maddy@linux.ibm.com>,
        Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
        Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
        Peter Zijlstra <peterz@infradead.org>,
        "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
        Ryan Roberts <ryan.roberts@arm.com>,
        Suren Baghdasaryan <surenb@google.com>,
        Thomas Gleixner <tglx@linutronix.de>,
        Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
        Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
        Yeoreum Yun <yeoreum.yun@arm.com>,
        linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        x86@kernel.org
Subject: Re: [PATCH v5 06/12] mm: introduce generic lazy_mmu helpers
Message-ID: <07ffb66d-1e74-4634-bccb-75575b3862af-agordeev@linux.ibm.com>
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-7-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20251124132228.622678-7-kevin.brodsky@arm.com>
X-TM-AS-GCONF: 00
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTIyMDAyMSBTYWx0ZWRfX2ersG0vbStz0
 FLn4GUMOcSxnVbRNPX+VoL6pG7B6q9UsQ2OZG5zNPsZ5dk6+yNddVfyFO4U0uqrKeTdCEHcr2b5
 l15HvPDcY0Lc38rVTn2il/GNHJ96Q2/VeOAUyp2DHD09YEDF7m+IZDZ8XPJoTE+UPvafWv7l/y8
 1iSrwrbuSmWXb5LS0zGud5cDdbkRbuFZ18eO9q7EkgPbpUJ9usgLbYsqxLyzPAxNnG34ofEs4sE
 ksZQxJ67fToJqX3beRWd6D9kF6kg/SXsAPhgRoMeI7l1sNXEZ6vrAx+o44xH+gY8A5Z2yuzyB8b
 roVSjE+o2OX6QR76JlqKTFjCl+HbnJOryGRQxe1hT3H5YzWY9YCpvkpeU7+0rpiOAm4Gk+k6POO
 kmT2iY3iue+TABUU+o6PMhW9NmP0hA==
X-Authority-Analysis: v=2.4 cv=PLoCOPqC c=1 sm=1 tr=0 ts=6929a8bc cx=c_pps
 a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17
 a=kj9zAlcOel0A:10 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=VwQbUJbxAAAA:8 a=7CQSdrXTAAAA:8 a=20KFwNOVAAAA:8 a=gOb4qOPT8CXnsm_EvbgA:9
 a=CjuIK1q_8ugA:10 a=a-qgeE7W1pNrGK8U0ZQC:22
X-Proofpoint-ORIG-GUID: QQCPW5TC082nb_eAVjuWkyWCtrkGV2VS
X-Proofpoint-GUID: qGdYAHc_0Xw3xrcj-QOfvU9MLghUc-FQ
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-11-28_03,2025-11-27_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 phishscore=0 lowpriorityscore=0 spamscore=0 adultscore=0 impostorscore=0
 priorityscore=1501 bulkscore=0 malwarescore=0 clxscore=1015 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511220021

On Mon, Nov 24, 2025 at 01:22:22PM +0000, Kevin Brodsky wrote:
> The implementation of the lazy MMU mode is currently entirely
> arch-specific; core code directly calls arch helpers:
> arch_{enter,leave}_lazy_mmu_mode().
> 
> We are about to introduce support for nested lazy MMU sections.
> As things stand we'd have to duplicate that logic in every arch
> implementing lazy_mmu - adding to a fair amount of logic
> already duplicated across lazy_mmu implementations.
> 
> This patch therefore introduces a new generic layer that calls the
> existing arch_* helpers. Two pair of calls are introduced:
> 
> * lazy_mmu_mode_enable() ... lazy_mmu_mode_disable()
>     This is the standard case where the mode is enabled for a given
>     block of code by surrounding it with enable() and disable()
>     calls.
> 
> * lazy_mmu_mode_pause() ... lazy_mmu_mode_resume()
>     This is for situations where the mode is temporarily disabled
>     by first calling pause() and then resume() (e.g. to prevent any
>     batching from occurring in a critical section).
> 
> The documentation in <linux/pgtable.h> will be updated in a
> subsequent patch.
> 
> No functional change should be introduced at this stage.
> The implementation of enable()/resume() and disable()/pause() is
> currently identical, but nesting support will change that.
> 
> Most of the call sites have been updated using the following
> Coccinelle script:
> 
> @@
> @@
> {
> ...
> - arch_enter_lazy_mmu_mode();
> + lazy_mmu_mode_enable();
> ...
> - arch_leave_lazy_mmu_mode();
> + lazy_mmu_mode_disable();
> ...
> }
> 
> @@
> @@
> {
> ...
> - arch_leave_lazy_mmu_mode();
> + lazy_mmu_mode_pause();
> ...
> - arch_enter_lazy_mmu_mode();
> + lazy_mmu_mode_resume();
> ...
> }
> 
> A couple of notes regarding x86:
> 
> * Xen is currently the only case where explicit handling is required
>   for lazy MMU when context-switching. This is purely an
>   implementation detail and using the generic lazy_mmu_mode_*
>   functions would cause trouble when nesting support is introduced,
>   because the generic functions must be called from the current task.
>   For that reason we still use arch_leave() and arch_enter() there.
> 
> * x86 calls arch_flush_lazy_mmu_mode() unconditionally in a few
>   places, but only defines it if PARAVIRT_XXL is selected, and we
>   are removing the fallback in <linux/pgtable.h>. Add a new fallback
>   definition to <asm/pgtable.h> to keep things building.

Would it make sense to explicitly describe the policy wrt sleeping while
in lazy MMU mode? If I understand the conclusion of conversation right:

* An arch implementation may disable preemption, but then it is arch
  responsibility not to call any arch-specific code that might sleep;
* As result, while in lazy MMU mode the generic code should never
  call a code that might sleep;

1. https://lore.kernel.org/linux-mm/b52726c7-ea9c-4743-a68d-3eafce4e5c61@arm.com/

> Acked-by: David Hildenbrand <david@redhat.com>
> Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
...


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 13:56:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 13:56:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174885.1499821 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOyxt-0008He-LL; Fri, 28 Nov 2025 13:56:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174885.1499821; Fri, 28 Nov 2025 13:56: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 1vOyxt-0008HX-I6; Fri, 28 Nov 2025 13:56:49 +0000
Received: by outflank-mailman (input) for mailman id 1174885;
 Fri, 28 Nov 2025 13:56: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=qL3d=6E=linux.ibm.com=agordeev@srs-se1.protection.inumbo.net>)
 id 1vOyxs-0008HR-O0
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 13:56:48 +0000
Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com
 [148.163.156.1]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 13b31df8-cc62-11f0-9d18-b5c5bf9af7f9;
 Fri, 28 Nov 2025 14:56:47 +0100 (CET)
Received: from pps.filterd (m0353729.ppops.net [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5ARNulWW017020;
 Fri, 28 Nov 2025 13:56:04 GMT
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4ak4uvpnu3-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 28 Nov 2025 13:56:04 +0000 (GMT)
Received: from m0353729.ppops.net (m0353729.ppops.net [127.0.0.1])
 by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5ASDu3As032077;
 Fri, 28 Nov 2025 13:56:03 GMT
Received: from ppma22.wdc07v.mail.ibm.com
 (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92])
 by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4ak4uvpntw-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 28 Nov 2025 13:56:03 +0000 (GMT)
Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1])
 by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5ASBu8XO000831;
 Fri, 28 Nov 2025 13:56:01 GMT
Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225])
 by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4akqvydb5g-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 28 Nov 2025 13:56:01 +0000
Received: from smtpav04.fra02v.mail.ibm.com (smtpav04.fra02v.mail.ibm.com
 [10.20.54.103])
 by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id
 5ASDtvda33423852
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Fri, 28 Nov 2025 13:55:57 GMT
Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id 2F99720043;
 Fri, 28 Nov 2025 13:55:57 +0000 (GMT)
Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1])
 by IMSVA (Postfix) with ESMTP id E38D220040;
 Fri, 28 Nov 2025 13:55:55 +0000 (GMT)
Received: from li-008a6a4c-3549-11b2-a85c-c5cc2836eea2.ibm.com (unknown
 [9.155.204.135])
 by smtpav04.fra02v.mail.ibm.com (Postfix) with ESMTPS;
 Fri, 28 Nov 2025 13:55:55 +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: 13b31df8-cc62-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=pp1; bh=wuc3Pms4+K3aWFusIGvCSQgbvYf1no
	IU83gft25Y0Jk=; b=nfuSb531tk/ek8JrdBpnHmvTEUDTGbCOp0mphA7ZrbDjev
	BoWgzhxao1BJFJ59KJWq6mU5zymb5DM0QmNtdKaLoycmcEjymQLzMJV/TgfJJzco
	x72Yvin16SARaWpet5dCakug5hQt6Tv3ziLwE724GmNpAat1fUldsTgBmAGjUWvw
	qa8kw+7V9U9fBKvVz1m5BZgU8xpkzn4262BQtEgONlaRwL64IR0LfDkCSyvx8nkI
	sDg9UvJ4tHfUID1Q+oblXNoCYf6305+ge0nzqdrEOkRZ4n4+jKR7y6mgw/6K6xW8
	6lOcMGox4kBO0S6c5bfbGrgZ8yMnmXl9ytTmhifw==
Date: Fri, 28 Nov 2025 14:55:54 +0100
From: Alexander Gordeev <agordeev@linux.ibm.com>
To: Kevin Brodsky <kevin.brodsky@arm.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
        Andreas Larsson <andreas@gaisler.com>,
        Andrew Morton <akpm@linux-foundation.org>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        Borislav Petkov <bp@alien8.de>,
        Catalin Marinas <catalin.marinas@arm.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        David Hildenbrand <david@redhat.com>,
        "David S. Miller" <davem@davemloft.net>,
        David Woodhouse <dwmw2@infradead.org>,
        "H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
        Jann Horn <jannh@google.com>, Juergen Gross <jgross@suse.com>,
        "Liam R. Howlett" <Liam.Howlett@oracle.com>,
        Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
        Madhavan Srinivasan <maddy@linux.ibm.com>,
        Michael Ellerman <mpe@ellerman.id.au>, Michal Hocko <mhocko@suse.com>,
        Mike Rapoport <rppt@kernel.org>, Nicholas Piggin <npiggin@gmail.com>,
        Peter Zijlstra <peterz@infradead.org>,
        "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
        Ryan Roberts <ryan.roberts@arm.com>,
        Suren Baghdasaryan <surenb@google.com>,
        Thomas Gleixner <tglx@linutronix.de>,
        Venkat Rao Bagalkote <venkat88@linux.ibm.com>,
        Vlastimil Babka <vbabka@suse.cz>, Will Deacon <will@kernel.org>,
        Yeoreum Yun <yeoreum.yun@arm.com>,
        linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
        sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org,
        x86@kernel.org
Subject: Re: [PATCH v5 08/12] mm: enable lazy_mmu sections to nest
Message-ID: <23dcf752-0b75-45a7-84f8-25bddf97af08-agordeev@linux.ibm.com>
References: <20251124132228.622678-1-kevin.brodsky@arm.com>
 <20251124132228.622678-9-kevin.brodsky@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20251124132228.622678-9-kevin.brodsky@arm.com>
X-TM-AS-GCONF: 00
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTIyMDAyMSBTYWx0ZWRfX384OntFmUues
 dIOJyCctOD7nT813bCm/GhJf1ZL6CQOs24jDcqmIzdmwQ5T0RXoegg27XMRfiI/9rumngr6NMHx
 tl4nQN+mvmC+VcOHvBu4um686d8ss4oR9DYJ5Ixwx22asl3RT+5FAdIGmztRh+XF2zs4cr6A6QQ
 2iJfQR9W19UY77K6hY2ve4BgoptnP483ec00f8cJVrDJ8H4kjr1jbZu+2pYFaT3+wJs+yp2bpxN
 Z2mA9gIRx8y/C6JYy4/N+CX6k84tbzt6buSUWK1JGk7/Kg3P14z/anrGpqdlT7BTI/og3OVkJqE
 hlGzPPlMS7WwIcss+Fa5oKUZR6EVsKg4LDkTSZbq+j+4sF4jCL4HPpqSwmzRhTJdfHsyh20fqJg
 JHubqHqdjGvQbJ9GegZsZoMEJOKyzg==
X-Authority-Analysis: v=2.4 cv=PLoCOPqC c=1 sm=1 tr=0 ts=6929a9f4 cx=c_pps
 a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17
 a=kj9zAlcOel0A:10 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=h1tPiQvNrzWZOeg10D8A:9 a=CjuIK1q_8ugA:10
X-Proofpoint-ORIG-GUID: 9jG27-IvFUYEwqeWcDa4RUx8C7I3n3xe
X-Proofpoint-GUID: 3YWVV-kCMzKLLzypHTUX-OcmdogqNxWJ
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49
 definitions=2025-11-28_03,2025-11-27_02,2025-10-01_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 phishscore=0 lowpriorityscore=0 spamscore=0 adultscore=0 impostorscore=0
 priorityscore=1501 bulkscore=0 malwarescore=0 clxscore=1015 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511220021

On Mon, Nov 24, 2025 at 01:22:24PM +0000, Kevin Brodsky wrote:
...
> + * Nesting is permitted: <code> may itself use an enable()/disable() pair.
> + * A nested call to enable() has no functional effect; however disable() causes
> + * any batched architectural state to be flushed regardless of nesting. After a
> + * call to disable(), the caller can therefore rely on all previous page table
> + * modifications to have taken effect, but the lazy MMU mode may still be
> + * enabled.
> + *
> + * In certain cases, it may be desirable to temporarily pause the lazy MMU mode.
> + * This can be done using:
> + *
> + *   lazy_mmu_mode_pause();
> + *   <code>
> + *   lazy_mmu_mode_resume();
> + *
> + * pause() ensures that the mode is exited regardless of the nesting level;
> + * resume() re-enters the mode at the same nesting level. Any call to the
> + * lazy_mmu_mode_* API between those two calls has no effect. In particular,
> + * this means that pause()/resume() pairs may nest.
> + *
> + * in_lazy_mmu_mode() can be used to check whether the lazy MMU mode is
> + * currently enabled.

The in_lazy_mmu_mode() name looks ambiguous to me. When the lazy MMU mode
is paused are we still in lazy MMU mode? The __task_lazy_mmu_mode_active()
implementation suggests we are not, while one could still assume we are,
just paused.

Should in_lazy_mmu_mode() be named e.g. as in_active_lazy_mmu_mode() such
a confusion would not occur in the first place.

>   */
...
> +#ifdef CONFIG_ARCH_HAS_LAZY_MMU_MODE
> +/**
> + * __task_lazy_mmu_mode_active() - Test the lazy MMU mode state for a task.
> + * @tsk: The task to check.
> + *
> + * Test whether @tsk has its lazy MMU mode state set to active (i.e. enabled
> + * and not paused).
> + *
> + * This function only considers the state saved in task_struct; to test whether
> + * current actually is in lazy MMU mode, in_lazy_mmu_mode() should be used
> + * instead.
> + *
> + * This function is intended for architectures that implement the lazy MMU
> + * mode; it must not be called from generic code.
> + */
> +static inline bool __task_lazy_mmu_mode_active(struct task_struct *tsk)
> +{
> +	struct lazy_mmu_state *state = &tsk->lazy_mmu_state;
> +
> +	return state->enable_count > 0 && state->pause_count == 0;
> +}
> +
> +/**
> + * in_lazy_mmu_mode() - Test whether we are currently in lazy MMU mode.
> + *
> + * Test whether the current context is in lazy MMU mode. This is true if both:
> + * 1. We are not in interrupt context
> + * 2. Lazy MMU mode is active for the current task
> + *
> + * This function is intended for architectures that implement the lazy MMU
> + * mode; it must not be called from generic code.
> + */
> +static inline bool in_lazy_mmu_mode(void)
> +{
> +	if (in_interrupt())
> +		return false;
> +
> +	return __task_lazy_mmu_mode_active(current);
> +}
> +#endif
...


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 14:24:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 14:24:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174895.1499832 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOzNw-0004s4-Le; Fri, 28 Nov 2025 14:23:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174895.1499832; Fri, 28 Nov 2025 14:23:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOzNw-0004rx-I1; Fri, 28 Nov 2025 14:23:44 +0000
Received: by outflank-mailman (input) for mailman id 1174895;
 Fri, 28 Nov 2025 14:23:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hHoX=6E=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vOzNv-0004ro-5V
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 14:23:43 +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 d41c7504-cc65-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 15:23:37 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-6419b7b4b80so2945083a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 06:23:37 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-71-38.play-internet.pl.
 [109.243.71.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64750ac0276sm4217392a12.15.2025.11.28.06.23.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 28 Nov 2025 06:23: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: d41c7504-cc65-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764339817; x=1764944617; 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=mPGnm30p0nozbPNeN4QDMgquWE3hA2aJ+BeYLlm8EDQ=;
        b=edneWRfMYXku0hh6icb3BZeurzNfYzCvou0YqdeECVtKqvZWEXRIuxGkekSyxhK/zP
         mIGcGTNq4JXXTGc39Kpqa4MBs1s06ws2YqJNWvoF/FE8nSasWDw+M0Ngb8bkyolhI77p
         kKO73Je3DZpiicm0m/IrQQGhr0iM4sxmI4D/iVcbSU7aR18MuopE4sPRxN89/E/sldjB
         t0yWNkWgVJd6mUrKxBFV+XkjzoZkTylxqw5kVqLvuInWXVaSTD8uK0wO73g/CAz8KAQw
         iO8U7V1+CZBtpM+315K1hvpSJdL1XFQsWu6mGY388yjrxzPTXWl174tof/1JWiHHw2uO
         gEuA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764339817; x=1764944617;
        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=mPGnm30p0nozbPNeN4QDMgquWE3hA2aJ+BeYLlm8EDQ=;
        b=e7nWAZMZPyYPKmIjn5+w9/9lPyqRnwpJjkcE5IOh8z4F1KljTh7Opu4+8+mEP75H96
         6vVP2rtHXJLJi+dUo/QCYAOlnm8M2UI6S1UINT/1fPF+Wjq7LFTJKdB/GE5CqhuVlRz8
         diHE1+vj2tPQlHihBug3e08U9z8PIUtFvWJAJUUbaUaug9Do/HoIdFDjooFpHlNR2iFY
         fPzJJfMp0cmtN6iphgaLttfY0LNTM4ZzgWdbiowvU4LQ2TO4B5/L7jfR/NoecLgTRuh0
         k5bMjz8kPZIY0K2OMECnTw5A09guzZ9x7Govp2e9JNlUJY2XjEXp2+mTm3R4Eh7ejSXR
         E14A==
X-Forwarded-Encrypted: i=1; AJvYcCUMF3+NRQO9lv9kWNSnhj6giKUHsc4mkqnWnM3hYsKdnkXW6OG+pzSAYKYOK5RZebKqFx1E/+2/wro=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwnCjhyhkdDNy0RPpPQAjwINf78/8JG5sJ5uHknT6LMhDO1GPhh
	3CVHA0Nfca3dbEcIU0rV+GONPusKlRRbdYbIYNcM6oGkKyNF6n3jN31w
X-Gm-Gg: ASbGnctxO6vr9oQEz3vimwRoVC3Qua3f3uDOYmms11xP4aMtzgSf1xG2VqTupsN3w98
	BoqzY64qv3DJnco/KtUnbnjP3n+fIMmQDCuiKqdeMMGWAlcA/AGnY8JBRjH57UISwVR//q1xkQg
	3xtJungZw1fQi3bsw9etZWAwpbFSNC2z8NONnWBz46Cfg63MR8zdSKSu5yxste43IalnLKd+E1Z
	KJ2xHY9VLZXMKMJp+X+TO0CFVerGc59uCKB2UMc02Vn5OyoQZ7juuy/1ou3llX4uU1IM6uvdJcD
	UQbZzTKPd1P0ZM70G7Qj+TsLSavq285O5FKV0/Fef0IN3QxAg3be5JPKPIV2CJKkzwBwrMsW1rS
	XV+/2E+HxOzXbZY7PAQRmMxRGQbrusDAoPT0pv0iacLflIjVEIxLldpsHft79AUw71U7LvLC4l3
	UkZ/m933LCYcHHGQZIPOoGxzqPlUYcYjrq211SbUJ6irTTZTNAy3H3UR+JuMHetifI
X-Google-Smtp-Source: AGHT+IFV26JmrFFnwqbmwhiAli2NYC4giY+geZ03VLH7do2KUL2795ZeuPLfns0CmnnYHVDN+YAp2g==
X-Received: by 2002:a05:6402:350f:b0:647:53a0:18e4 with SMTP id 4fb4d7f45d1cf-64753a01d5emr4764575a12.27.1764339816301;
        Fri, 28 Nov 2025 06:23:36 -0800 (PST)
Message-ID: <32c8f061-1307-43e0-ac80-c2412655ea18@gmail.com>
Date: Fri, 28 Nov 2025 15:23:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen: move vcpu_kick() declaration to common header
To: Andrew Cooper <andrew.cooper3@citrix.com>, 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>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>, Paul Durrant
 <paul@xen.org>, xen-devel@lists.xenproject.org
References: <f291e02042a24de86cab5f62cb2301ad8c72fecf.1764328801.git.oleksii.kurochko@gmail.com>
 <18a52859-1b73-44b9-a54d-2f37c7ec9933@suse.com>
 <883304e4-0a1a-464d-b9e0-93d9d8a4ae82@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <883304e4-0a1a-464d-b9e0-93d9d8a4ae82@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 11/28/25 2:21 PM, Andrew Cooper wrote:
> On 28/11/2025 11:58 am, Jan Beulich wrote:
>> On 28.11.2025 12:38, Oleksii Kurochko wrote:
>>> The vcpu_kick() declaration is duplicated across multiple
>>> architecture-specific event.h headers (ARM, x86, PPC).
>>>
>>> Remove the redundant declarations and move vcpu_kick() into
>>> the common xen/include/xen/event.h header.
>>>
>>> Drop the definition of vcpu_kick() from ppc/include/asm/event.h,
>>> as it is already provided in ppc/stubs.c.
>>>
>>> Include <xen/event.h> instead of <asm/event.h> in places where
>>> vcpu_kick() is used, since its declaration now resides in
>>> <xen/event.h>.
>> Centralizing is of course good. Question is whether xen/event.h is a good
>> home for the decl. Generally related decls live in xen/sched.h. There was,
>> however, a vague plan to try to split that up some. Others, REST
>> maintainers in particular: Thoughts?
> +1 to centralising.Â  I'd suggest xen/sched.h too.

I will move to xen/sched.h. It will be even better as the patch will be cleaner
as <xen/sched.h> is mostly already included in the changed files in this patch.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 14:31:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 14:31:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174904.1499842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vOzVc-0006XM-DU; Fri, 28 Nov 2025 14:31:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174904.1499842; Fri, 28 Nov 2025 14: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 1vOzVc-0006XF-9a; Fri, 28 Nov 2025 14:31:40 +0000
Received: by outflank-mailman (input) for mailman id 1174904;
 Fri, 28 Nov 2025 14:31:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z/8R=6E=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vOzVb-0006V0-3Y
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 14:31:39 +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 f20bc4ce-cc66-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 15:31:37 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-42b32900c8bso1282868f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 06:31: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-42e1ca1a3e4sm10456538f8f.25.2025.11.28.06.31.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 28 Nov 2025 06:31: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: f20bc4ce-cc66-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764340296; x=1764945096; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Mg0zxhwwpizeyW++7UeAZoLx8VEqCY4z92DFr+0rrWE=;
        b=QVyFQrSkc4SWTx4s4SX3b+NeFNMmL63NckIfnw7XcL83SGOiSc2yjt5bmwkQ9xIN8n
         6VRM0OPIWH9nZWPcg1HyqfbAUzyocBfrnFkdNUH1oPQv9ENiB9fn7Okodge9FcXx6i2l
         kjxQD8miXOw4VDbf5rhoVnjT3Qar6HVwAUs+JNJsGRi8V+mRnVxFxbUGnhPXiuKdyio+
         Ll7H5GI1MrzJgmQYy7/sB8lHOUlOs1Er9phz+oU08LxHZ9HwkIJYU3Kki/a6jNPkt89c
         nvGNgkL68OjV8Ka5iz45aqOULFrce+dlyNq8QcskxdAZHA202GiUcVWEmnKo5AAF/H8A
         YgCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764340296; x=1764945096;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Mg0zxhwwpizeyW++7UeAZoLx8VEqCY4z92DFr+0rrWE=;
        b=n4rnkXq/UBHc4IFb0K5l61kGo1VbwSq8TI8aDAaRWPtoumz5sWXhlEH/0mztd2gMS4
         lxxxvmtSv/lOa+drkoXVTfJuF648yJyadxNzOvyKsfxyXpAtWv7l7xoc8X2F+lyW368v
         rEfaH4k1JUZ78kiV09J8qgaJ5jYWZjioEO7Vu6f2/o6mbNxjiXY4sEFedinKx4yrDsJk
         5vlt5rCSOpH7C1W4NBd3GRGvjqnN2vyJuBe6qshtBe9dHG/wKbBfz3KkRMllX6y0Yb9N
         NojMb1cX430wdV0h78GfMrji1GPy1cZKxF34Fd1R4Xqdf8391KZEH6X6zHNGiKInr8yI
         nZbA==
X-Forwarded-Encrypted: i=1; AJvYcCX6lrg8o2rwx8tQRYULll/iSK2A7Ygaw5jFMHZA5NN3sqovLQF1KwoLIcJJD/4clDTzEGzVb6E+oTc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyJVpfD7IjkCw/r+6TN3UGCeRPFa73CchLDQsp0vUYROHTCGT8w
	BW9BMBNCuLC6+CMBVJ6r+00uu/jdDBagLSQxvLyupGwoT6yKfll1yLVkhjBrF1J/dg==
X-Gm-Gg: ASbGncuWa4TseVGeUWvyXIjOKW4k+orSr7KEy96K6thurdedp4ZAqRvJs/7xWrtLT1Q
	H2dmmRexNvhbW7g220/PvGdmooadnu8hDofKNdUpYRYE5bNUoIvmLUObRD6Cma0/zyRBN8QbdiL
	YbbmKMoiQnEnP2DpzZeubTjNItkVl1T68QNCX3918ovwn/u6TqAVHYdhba0B5uEge9FEdZ0XK1Z
	t7gO8fPkbDCivjISBO1V7x7zo0q/nzr/R1Zp/dzFzU/qOASlZZz7CbZoJAG/gYsxWUkeoUyuJDh
	K96N+sUqzZ2/6xbTOilX9Q6LIu4ehlCGIkhea9dlwqcRszJSEmsswhImC1hWy0xXlOkBoZf3hOh
	XCrsWFQG1h+/ijA5p7qUQ5xf9bk8Mo03RrR3GkNuRbiJVzJ3uqIwDBD6pDV/wwGv6KzjlPtfAm+
	2BfaI7zHdkm+OWRY5n3uqeg+8zvU5zcgP86PNn0mjEKRZCnts8V/YRNq8r2UblWbRN+Mq5Zv/N/
	D/xQMo8552+9g==
X-Google-Smtp-Source: AGHT+IGE3EO5syUI5YKO9YGMeJSlLp08w5pOqn9G3olav+s2jKm9tDMknenkN9s0XJOorNPT/nIJ9A==
X-Received: by 2002:a5d:5f96:0:b0:42b:30d4:e3f0 with SMTP id ffacd0b85a97d-42cc1cf0fa3mr31753369f8f.22.1764340296336;
        Fri, 28 Nov 2025 06:31:36 -0800 (PST)
Message-ID: <96c71c8b-21de-42d9-afc9-280e651a29dc@suse.com>
Date: Fri, 28 Nov 2025 15:31:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [MINI-OS PATCH] x86: have .note.Xen segment contents before other
 .note.* ones
To: Juergen Gross <jgross@suse.com>
Cc: samuel.thibault@ens-lyon.org, minios-devel@lists.xenproject.org,
 xen-devel@lists.xenproject.org
References: <20251128133807.9206-1-jgross@suse.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20251128133807.9206-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.11.2025 14:38, Juergen Gross wrote:
> Today the linker script of Mini-OS specifies to merge all .note*
> sections into a single section .note:
> 
>  .note : {
>           *(.note)
>           *(.note.*)
>   }
> 
> It seems as if ld will use the attributes of the first .note* segment
> found during the linking process for the final .note segment.
> 
> Somewhere between binutils 2.43 and 2.45 something changed resulting in
> .note.GNU-stack being the first .note* segment found. Unfortunately
> this segment has unusual attributes: it has PROGBITS instead of NOTE as
> type, resulting in the Xen ELF parsing to no longer look into it for
> finding the Xen ELF-notes. This in turn will result in failure while
> trying to parse the binary, which will let domain creation fail.
> 
> In order to avoid this issue, enhance the linker script to merge
> .note.Xen before other .note.* segments, resulting in the final .note
> segment to still have the NOTE type.
> 
> Fixes: 6d1cc81d049f ("x86: switch to use elfnote")
> Signed-off-by: Juergen Gross <jgross@suse.com>

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

I wonder though ...

> --- a/arch/x86/minios-x86.lds.S
> +++ b/arch/x86/minios-x86.lds.S
> @@ -33,6 +33,7 @@ SECTIONS
>  
>          .note : {
>                  *(.note)
> +                *(.note.Xen)
>                  *(.note.*)
>          }

... what use .note here is. Can't it be dropped in exchange?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 15:05:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 15:05:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174927.1499860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP02R-0003Ng-4C; Fri, 28 Nov 2025 15:05:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174927.1499860; Fri, 28 Nov 2025 15:05:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP02R-0003NZ-1F; Fri, 28 Nov 2025 15:05:35 +0000
Received: by outflank-mailman (input) for mailman id 1174927;
 Fri, 28 Nov 2025 15:05: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=FSNm=6E=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vP02P-0003L0-LP
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 15:05:33 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ab6df14c-cc6b-11f0-9d18-b5c5bf9af7f9;
 Fri, 28 Nov 2025 16:05:26 +0100 (CET)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-640b0639dabso3474457a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 07:05:25 -0800 (PST)
Received: from ?IPV6:2003:e5:871a:de00:dd24:7204:f00a:bf44?
 (p200300e5871ade00dd247204f00abf44.dip0.t-ipconnect.de.
 [2003:e5:871a:de00:dd24:7204:f00a:bf44])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-64751035c24sm4520620a12.22.2025.11.28.07.05.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 28 Nov 2025 07:05: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: ab6df14c-cc6b-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1764342325; x=1764947125; 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=or8bH4z/O8dNofoRT/BdQGiClqQlWZSi6LpV9Mbd3vU=;
        b=aZmutXc0XZRy2i3LDkFTWRt5QjycS6Z31lStcaeNzU3G9oT4JENI2qGX/w3PtI687n
         6+KFuglCCRtk8pC+vbE/uTAupQaMAtBDA2ltxpYcNYrYjqhOA8JaFDr/RDzyJgpIfw7c
         DI4TpXTEHUAHRhPXqw6t0oggpXxqXtCiYlYWfnQh8qi+tsjAFhM/R5JgVANyHt/GtKxR
         8OZpK2BZqmKRQNmV5DjG9lBEkfPZQcOeGr3j7/FKanUhFiP/AQOupWOvyheXUS0qY5lg
         Pre5PycgThiHjgv02/2KNN0eEwBpbMIKSE7+7m2YTzpyUvR/AnzJkYe2Y44CjcmjCrld
         Unhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764342325; x=1764947125;
        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=or8bH4z/O8dNofoRT/BdQGiClqQlWZSi6LpV9Mbd3vU=;
        b=WVnHAsYBv8Z86GM2BoU6U54UodAyDE8cNEn44FOUUGh55ZJ+HvYY/S1fPMm1fmaJOq
         qPtmm4aWQiUCourC060M4m485oNYt+9dlgfuKBWGDIB5zF032wyoauKhOw4lUNW4JbBf
         HyOc5tZVVBFY5cALlVOExht1v8mX8UFLxvkABaT088zL5CWnUgvC8caoSL7U6y4TrYDb
         q51tuUf1xBjjeF823lFtrplWEETmvWhEniR3pzdELN79pPg237+TYOmTgcBmap118uRY
         pfbieRlm0ghlkWzBr25cF2ARQDopQybuAas/b7/rhUnHD0rhtPmGF7f6i9epYRBxmkN7
         oRPw==
X-Forwarded-Encrypted: i=1; AJvYcCXRMqVLW9uTmi6r+C7e2L9e4YESdLecPi84AKzWzKDSO0tvCQ1xjpTPwm6XlvJiNeDuvWzy3ke/Xjw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzb15H0hvQFFhCT0juGaVVneg/0sDfSPnMOAoo4b/IgvtNmn8U9
	fIJJqTLIAOVpNOaPpMkJJpbNRwCtjAosrEeor1Q7lefkp2pjqOYYTTBjKSppzwwYDks=
X-Gm-Gg: ASbGncvwLmzAxf0dPR9/ynSLkNx0v947oWR0HNcpeC79G/M2fok1fE3FRyGE3/K+dph
	813uRkRYbkP4P1jwIg2olICIA8ZLevKak3uA2MKypVFpL07yyUKmAqqA63uTtLLRsSSpVFui4e+
	FmUHKycSdks/3+/XXaudH8a8ypaiGnkz0LFvlaHvpWmwmyM3Ufk0fADc2YWq64CpWuP+v9jRyYm
	nxFyxJH0OpNhuZ3ZUVEagsNhW6Br/VjkwnxQ2vuDn0K4RHRr3t+RwaRPJ1hwyyU3N9eW3Wiwnz/
	obq+N/RqUSrNufjSMWSf5AtxUxeiw76ZUEwiD/MzK3aTIzYCWTsmkr4JfytdpJOhMuk9fh5N1H4
	4xxg9zJuNKbmRXw6sFVuGTJh97Kr7YN3cE7TizpF7aV8KL+sc8eJl1u4rCBvR2cWPS6jl2Vp/4N
	0JAIpkwgmuSe9pCfoAsQEUae92lru0iEJsuyxG5DTinx/8kjujFT6Mo8t2QzhmR6VdgMynOPKrx
	GnaThhtlJqWO+vsX/Y44zutIWK1RmF+jWNdWCg=
X-Google-Smtp-Source: AGHT+IHpHy/0PbaMNl12i7vPGrJCmWCpFLD8taURs6IJEvezk3HrdIl+22juqNkJBfG7DGOMBFAZaQ==
X-Received: by 2002:a05:6402:4405:b0:640:bce5:77a9 with SMTP id 4fb4d7f45d1cf-6455469cf36mr26068018a12.32.1764342325062;
        Fri, 28 Nov 2025 07:05:25 -0800 (PST)
Message-ID: <72af5838-ed6b-4549-a366-32aa0d5b3d34@suse.com>
Date: Fri, 28 Nov 2025 16:05:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [MINI-OS PATCH] x86: have .note.Xen segment contents before other
 .note.* ones
To: Jan Beulich <jbeulich@suse.com>
Cc: samuel.thibault@ens-lyon.org, minios-devel@lists.xenproject.org,
 xen-devel@lists.xenproject.org
References: <20251128133807.9206-1-jgross@suse.com>
 <96c71c8b-21de-42d9-afc9-280e651a29dc@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: <96c71c8b-21de-42d9-afc9-280e651a29dc@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------rwVqTJBxFDIT15mm0Ph1vodr"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------rwVqTJBxFDIT15mm0Ph1vodr
Content-Type: multipart/mixed; boundary="------------TCALS8Ozs0s4dKhTvE2RqyCZ";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: samuel.thibault@ens-lyon.org, minios-devel@lists.xenproject.org,
 xen-devel@lists.xenproject.org
Message-ID: <72af5838-ed6b-4549-a366-32aa0d5b3d34@suse.com>
Subject: Re: [MINI-OS PATCH] x86: have .note.Xen segment contents before other
 .note.* ones
References: <20251128133807.9206-1-jgross@suse.com>
 <96c71c8b-21de-42d9-afc9-280e651a29dc@suse.com>
In-Reply-To: <96c71c8b-21de-42d9-afc9-280e651a29dc@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=

--------------TCALS8Ozs0s4dKhTvE2RqyCZ
Content-Type: multipart/mixed; boundary="------------FO0yOVvCOAExGitp5zca0yIJ"

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

T24gMjguMTEuMjUgMTU6MzEsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyOC4xMS4yMDI1
IDE0OjM4LCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gVG9kYXkgdGhlIGxpbmtlciBzY3Jp
cHQgb2YgTWluaS1PUyBzcGVjaWZpZXMgdG8gbWVyZ2UgYWxsIC5ub3RlKg0KPj4gc2VjdGlv
bnMgaW50byBhIHNpbmdsZSBzZWN0aW9uIC5ub3RlOg0KPj4NCj4+ICAgLm5vdGUgOiB7DQo+
PiAgICAgICAgICAgICooLm5vdGUpDQo+PiAgICAgICAgICAgICooLm5vdGUuKikNCj4+ICAg
IH0NCj4+DQo+PiBJdCBzZWVtcyBhcyBpZiBsZCB3aWxsIHVzZSB0aGUgYXR0cmlidXRlcyBv
ZiB0aGUgZmlyc3QgLm5vdGUqIHNlZ21lbnQNCj4+IGZvdW5kIGR1cmluZyB0aGUgbGlua2lu
ZyBwcm9jZXNzIGZvciB0aGUgZmluYWwgLm5vdGUgc2VnbWVudC4NCj4+DQo+PiBTb21ld2hl
cmUgYmV0d2VlbiBiaW51dGlscyAyLjQzIGFuZCAyLjQ1IHNvbWV0aGluZyBjaGFuZ2VkIHJl
c3VsdGluZyBpbg0KPj4gLm5vdGUuR05VLXN0YWNrIGJlaW5nIHRoZSBmaXJzdCAubm90ZSog
c2VnbWVudCBmb3VuZC4gVW5mb3J0dW5hdGVseQ0KPj4gdGhpcyBzZWdtZW50IGhhcyB1bnVz
dWFsIGF0dHJpYnV0ZXM6IGl0IGhhcyBQUk9HQklUUyBpbnN0ZWFkIG9mIE5PVEUgYXMNCj4+
IHR5cGUsIHJlc3VsdGluZyBpbiB0aGUgWGVuIEVMRiBwYXJzaW5nIHRvIG5vIGxvbmdlciBs
b29rIGludG8gaXQgZm9yDQo+PiBmaW5kaW5nIHRoZSBYZW4gRUxGLW5vdGVzLiBUaGlzIGlu
IHR1cm4gd2lsbCByZXN1bHQgaW4gZmFpbHVyZSB3aGlsZQ0KPj4gdHJ5aW5nIHRvIHBhcnNl
IHRoZSBiaW5hcnksIHdoaWNoIHdpbGwgbGV0IGRvbWFpbiBjcmVhdGlvbiBmYWlsLg0KPj4N
Cj4+IEluIG9yZGVyIHRvIGF2b2lkIHRoaXMgaXNzdWUsIGVuaGFuY2UgdGhlIGxpbmtlciBz
Y3JpcHQgdG8gbWVyZ2UNCj4+IC5ub3RlLlhlbiBiZWZvcmUgb3RoZXIgLm5vdGUuKiBzZWdt
ZW50cywgcmVzdWx0aW5nIGluIHRoZSBmaW5hbCAubm90ZQ0KPj4gc2VnbWVudCB0byBzdGls
bCBoYXZlIHRoZSBOT1RFIHR5cGUuDQo+Pg0KPj4gRml4ZXM6IDZkMWNjODFkMDQ5ZiAoIng4
Njogc3dpdGNoIHRvIHVzZSBlbGZub3RlIikNCj4+IFNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4g
R3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4gDQo+IFJldmlld2VkLWJ5OiBKYW4gQmV1bGlj
aCA8amJldWxpY2hAc3VzZS5jb20+DQo+IA0KPiBJIHdvbmRlciB0aG91Z2ggLi4uDQo+IA0K
Pj4gLS0tIGEvYXJjaC94ODYvbWluaW9zLXg4Ni5sZHMuUw0KPj4gKysrIGIvYXJjaC94ODYv
bWluaW9zLXg4Ni5sZHMuUw0KPj4gQEAgLTMzLDYgKzMzLDcgQEAgU0VDVElPTlMNCj4+ICAg
DQo+PiAgICAgICAgICAgLm5vdGUgOiB7DQo+PiAgICAgICAgICAgICAgICAgICAqKC5ub3Rl
KQ0KPj4gKyAgICAgICAgICAgICAgICAqKC5ub3RlLlhlbikNCj4+ICAgICAgICAgICAgICAg
ICAgICooLm5vdGUuKikNCj4+ICAgICAgICAgICB9DQo+IA0KPiAuLi4gd2hhdCB1c2UgLm5v
dGUgaGVyZSBpcy4gQ2FuJ3QgaXQgYmUgZHJvcHBlZCBpbiBleGNoYW5nZT8NCg0KRHJvcHBp
bmcgaXQgc2VlbXMgbm90IHRvIGhhdmUgYW55IG5lZ2F0aXZlIGltcGFjdC4NCg0KSW4gdGhl
b3J5IHRoaXMgc2hvdWxkIG5vdCBiZSBpbiB0aGF0IHBhdGNoLCB0aG91Z2gsIGFzIGl0cyBw
cmVzZW5jZSB3YXMNCnF1ZXN0aW9uYWJsZSBldmVuIHdpdGhvdXQgbXkgcGF0Y2guDQoNCg0K
SnVlcmdlbg0K
--------------FO0yOVvCOAExGitp5zca0yIJ
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-----

--------------FO0yOVvCOAExGitp5zca0yIJ--

--------------TCALS8Ozs0s4dKhTvE2RqyCZ--

--------------rwVqTJBxFDIT15mm0Ph1vodr
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/Ey8FAmkpujMFAwAAAAAACgkQsN6d1ii/Ey/G
Gwf/UtWvI+oYU1MQch6HO2Sc1mxaHok7Iok4Djpx3+J0Vg7Co0V6iY5dzsQpijpkDq6IWXeBhfEL
y90Few2gGeyjmaEc3e7tFW2+5m7lk05rF6JYJTEts8v4VkfT0vae/SNuHodz7BNB95BV3o+SsAXD
IJyci92mMc/wEAPAmF1y84/6DsmQ8H3zsgn3+v4rhMISzqJNtki+xtnEimtfuHTF1CUw8ZDp/Trd
J3d89ocqOhURDmn4NDQ9XncQhJ3H3VfB52Nm+ICt3jHPM6Ijev7vbPcTDy/PXEJ1SKC1Eey8/one
Or2qTHR9/ttCPPTq+C+OW6lKxKPpbraE18K3gkLkDg==
=iEnZ
-----END PGP SIGNATURE-----

--------------rwVqTJBxFDIT15mm0Ph1vodr--


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 15:22:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 15:22:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174944.1499870 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP0Im-0006ea-Eg; Fri, 28 Nov 2025 15:22:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174944.1499870; Fri, 28 Nov 2025 15:22:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP0Im-0006eT-Bv; Fri, 28 Nov 2025 15:22:28 +0000
Received: by outflank-mailman (input) for mailman id 1174944;
 Fri, 28 Nov 2025 15:22: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=YqkP=6E=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vP0Ik-0006eN-9J
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 15:22:26 +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 0a2cc5ac-cc6e-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 16:22:23 +0100 (CET)
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com (2603:10a6:20b:6::31)
 by AS2PR03MB10087.eurprd03.prod.outlook.com (2603:10a6:20b:62e::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Fri, 28 Nov
 2025 15:22:20 +0000
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4]) by AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4%4]) with mapi id 15.20.9366.009; Fri, 28 Nov 2025
 15:22:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0a2cc5ac-cc6e-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jUfr7MrdpJBOQeqvzWuzq+iBEOgazMgG3NcJwgcy5CoSmmMZ4wug0aCn4XpyxM0ou9ib6EGl6qX6EixVOlSo9ELpNsuaywTOIySXeR0KqYtaCzYc5PV1QYm89430fbT/BLvaDqt08ZQjOHKCewPrDaK0t4qqHLDXKwANTFrhWLIVH8uLrJ2Ftef5Iqdb8RoysQfkH9krnzciO54L+jiGfNe3r7MR+HpuuHHJojRBJQdt/k5sFaYZbLG+TPaee6EiVj10xk8UBOW+9XGjD6uq8Xji9jkTKUGS/O0JDpjPpZfST5d5/d0J7v+v4YGkoemZXoi3awfSqrXN6Mf3Ts+kbA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fhllEEdN8c/THLolcCsFuYa7Q16LQxiDOFaDDhoCu58=;
 b=OLx/e2Y/iknm6F+e/5PqYXMjGgkGuK7Ito3P1kQqIK/KBALc5ERyrKgGl+Yq4QYQB8/RnN4SpWm1AJfm6Zd8t1AgFLOKRmrDfdxgni2FhjUVz+XdkPpol39CReQZENW+y0xX2Aq59BQpOPsqirjOYsR99nkNYJlKkW4GeC/jJg5sxJP2HJY8dFOIY6Bq2QCJ6/mMl78Q3CvnfBc3JO3hZHyO6STb8KT3lEN0x/9AlB4cM1l0Srcw2B/7XnxQ7CytnTOlpwMoXFOLxnT3NtaX4JSI38PQmwYe6dXkl5L4lh+2cGKvkG3ffLV7AKJbR1S3M88cykTFs5begjILy3UVaw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fhllEEdN8c/THLolcCsFuYa7Q16LQxiDOFaDDhoCu58=;
 b=EzWzbibh6e+cspO6HQd+Bgjwnxm6xoTIZwZelnMb/k8fJgJ8vI1Ga5A3mFORnuHJ3d/TxKXdmz4WeknYk8nB71pZabINBG1w6KJHSf7yh8EsNcKUZ7JpAIizUidvp//cmfTxX0VjjfFpeinneVYPPJKNcGIIBSKZoSBZdC2WKhF0S8ViFr6xYYQDhwlNAuOBGsry7MM/eokDIbSnQ0NjeDFKwqNp3RqgyzOyog6Krgla5GUALtq6kotLHrtJzJyh/z3QmndVChHZ3no3DN58pQorJw/SGmOX8Xx3oZzptHBx8CSOmQ3oI5ATt7D3P/Z95MZHyUkm/IxEWcQcMvwBnw==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, Connor
 Davis <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v3 1/3] arm/ppc/riscv: drop unused domain_set_alloc_bitsize()
 macro
Thread-Topic: [PATCH v3 1/3] arm/ppc/riscv: drop unused
 domain_set_alloc_bitsize() macro
Thread-Index: AQHcYHrKJo3fQNjNOEm0i3u+ucdXcw==
Date: Fri, 28 Nov 2025 15:22:20 +0000
Message-ID: <20251128152218.3886583-2-grygorii_strashko@epam.com>
References: <20251128152218.3886583-1-grygorii_strashko@epam.com>
In-Reply-To: <20251128152218.3886583-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM6PR03MB4600:EE_|AS2PR03MB10087:EE_
x-ms-office365-filtering-correlation-id: 23721e61-7608-40ad-31f4-08de2e91ec92
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:
 =?iso-8859-1?Q?yrF75vEESpNIOSNaLPAUaZ/R5kRubxv6e69bSoAoOe/B2Ff/M8Qt1N6qez?=
 =?iso-8859-1?Q?LfZdHO8rZZrrxd9ocmy1dZoAqQmA9U3ydm19rrd8hUoGmfhZX5kdhugXce?=
 =?iso-8859-1?Q?o03mQwm89yJyODP+0/rfBxcDfozYp8tNxeJeh4Y4e1+0mRDuz5juTXWoYo?=
 =?iso-8859-1?Q?OSS20Td1qSqM5hPtTE6OvdPKM+guTMd67PGzHAT9MrXKzv/GWtahbsm/IN?=
 =?iso-8859-1?Q?WSWuWF5coy93/Z3Px3ELkez2j+X2r1giApZuuiYDOw2w0Eau9lnSt0uqyN?=
 =?iso-8859-1?Q?JFs8xhZN4juGbFGbjqfPkRzkd40fG+xI2VzgbVOSG42ZDE3678HfKt0ulW?=
 =?iso-8859-1?Q?944NXBGo3cFRA3qFXhR6PZqyDE6Iw1eZxO2sQo8yi0CiEdz1utTn5VZ/6z?=
 =?iso-8859-1?Q?zPLo8Gm1N+PBUAhiTfhYeEJVkgw9rYz0ZLFpZtRnNacIXcRdOmZmhIknox?=
 =?iso-8859-1?Q?IaxfKuH8ecHGxlwTch1xo9rJFBZlOGLjpxB9UXO1tFrPcsMLY1QjqA0Zh0?=
 =?iso-8859-1?Q?/Iuwyb5/zDcN7WyenGy0eyNCJ6CupkpVq2RqpfUVAOpRfQMo2MrgQHIAYU?=
 =?iso-8859-1?Q?5DDKIWt4jUHG8ICIiCYYTuXWs/EJJi7ZRDXhYykr0qkdxUHJ/fVTDXY3Wh?=
 =?iso-8859-1?Q?Y0Je0jgg1xo4iVlM0dQry6MXQ+9WL8OyHVFQW1H1cXGLBfmHhwUukoT2o7?=
 =?iso-8859-1?Q?7sqioWyiSBmCrDiH1e8qyVDtmJhgVAOFvukC5FB5epLsVK7fJUvdhkc3Av?=
 =?iso-8859-1?Q?O2tsp2YgYKBmzDBGWAiXJH71dH9lUmyXJsVJP1eyFFoHhRfEg33WaQGGS/?=
 =?iso-8859-1?Q?4BOEHVyXa63fLyk6AUZvpybBIPD+uSbDXFzHAt7ayKL87D6wj9uRnXuF7Z?=
 =?iso-8859-1?Q?go3XuKHd90uh19aBra05ubWJAB2UHtPhqYb7aJX1ynTOFn/IvIlE63j/1A?=
 =?iso-8859-1?Q?dscBuiT2Mit6ood3ZNYZFwo6PlBuZ992tpwFOsdNiWR1f813QzMi0gTKEw?=
 =?iso-8859-1?Q?9QYjXy4D2YKydkjj+qqhGkyIIYry7HMBYZf5lmqW0d4GpPw6Ml4OBDg0Lz?=
 =?iso-8859-1?Q?YFQ7+HGg8xFds0VBicutXJFSt55wFhwlC6J3JT7xxo4fFGrNrYBFRFAvRC?=
 =?iso-8859-1?Q?AlHWBiHiNvOFMoidRvUSX8aPWVRc7DUldLTXd8em4ebO1FxGHIm+MfgsmT?=
 =?iso-8859-1?Q?7bouuyYmJzmtQNhlOGBdgBvLh885pvRW3+YELcLkXCWVhVrPNrqAx7x5WP?=
 =?iso-8859-1?Q?uAZyKKyZn19w43twdd7Z1yMkHj4GSOCUxi7mCxRpe+FDPTHAwsDS8cP+PM?=
 =?iso-8859-1?Q?sJGftwchb3NPdTSvJ2t9tF0TFBg202dDAb8TaZOCEqB1E+gTZil9oeCv6p?=
 =?iso-8859-1?Q?qoBkm5wIGYypiBP41ZDBTNwoyjQkKKRXp02195jDqKwPyK90C3FahcfnxH?=
 =?iso-8859-1?Q?Zgdl26eZcegRuedOvz/PWS7rjtjExOHXyP15pqgiF6EigU+YDusJK+QAfs?=
 =?iso-8859-1?Q?rFgkBmwNcnZzJAcYfq0nRyfeycqJKxS78LKZKMpYSc/TqSaioJo0CP85LP?=
 =?iso-8859-1?Q?bov6WlogvG826wUfGxgEFOvMhN4Q?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR03MB4600.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:
 =?iso-8859-1?Q?fNmTnK05ZT6kDiDqqUUX/F+Uv3xLy8ELk8+Es0CeBqykOTOqbmW3LVVogK?=
 =?iso-8859-1?Q?lfUn3ZKzzOt3hHmMfaX3XcrukJSVCIGIksH/iWM/ENykH/ESxv/yPxnER0?=
 =?iso-8859-1?Q?5bcBbYNR534rF8oiqRHFSnu+O9hoKgqFhAjnzmmPO9HdEffxXwBUlIkIrm?=
 =?iso-8859-1?Q?5L/kKyTT5Qv2t+wvC3bGrtnWKGlTEGDyZ8eGK+eOo+ULbI8EFmFUoZbhU2?=
 =?iso-8859-1?Q?H6UgqruzqO8X5F0R9B2VUA0f9a6b2shqRYfPRumSgGRnIeo/Dqjks8cY+Q?=
 =?iso-8859-1?Q?GHqX4o2m8hdYdpwkKNe1GQ5bqdxte2VJSelZJLM69+gCOxqPSv8GXIAR2t?=
 =?iso-8859-1?Q?QKVe/GLWhbBFZngAHJwsxdKaiuDyaemY2MJ9PKatBtuhmQDq1eY9vGDfq8?=
 =?iso-8859-1?Q?qctJ4wtXnbBVg8JhFWGxIg4R9iMMns8XORyjRfOpdPW5ZunBY2LnH7ul6P?=
 =?iso-8859-1?Q?7jdoWoLfj81wNCuJhfIYTvbvFLD5kOgtQRYvD8RY64rjGlp0zHf6S9dKQM?=
 =?iso-8859-1?Q?gtUs/5+QtmpMHmtVuTbXTLQihxitdt7nyfztoQj739mBNeindM7DYzHF3N?=
 =?iso-8859-1?Q?HQ9s9lcBgveEpTV1bM/L3WDrdrtvOa/ePG/Qla7/wu/L3Qgpt2Z5+X905F?=
 =?iso-8859-1?Q?q4xG4PdCCDA1iToN0+5vPiN2SQf75QkX/jyby1K+QNtxxO3MfIcwXM+9R7?=
 =?iso-8859-1?Q?F41Nv6C5FsIjpXNNBiTMtgsQQt/F6axt+xg5ZD7ymD9eLI9GGpMvR3EVt7?=
 =?iso-8859-1?Q?ILnyR+bfNJKNPoqcTTWKQTBJg7sG0y4P6Qx0p5omHxa12RRQ5J9BIPWImB?=
 =?iso-8859-1?Q?zXYCVruJFXbGov167dhaSNfzkdiV3s9Mnylh/nq7p8AMF2JEETTzLkWOGd?=
 =?iso-8859-1?Q?mD/Ca5phW0/DndSNi+cARV9r/VSWtbA4jP9yIx6gj00ocspGSd3x2JPdwV?=
 =?iso-8859-1?Q?vXzdWxbOSrORRNVPs9urjyK4TjyeE7KmPdR2cSrI/xjLbwlhyF6aGAXayj?=
 =?iso-8859-1?Q?Brsohq6ApXk43G5XhF6hJhWTVZehJ0Cs/GbMly9UpF/H6WFfg4nyRS/CDU?=
 =?iso-8859-1?Q?JXpEDOG888+lF6mPy0J+tOuK2HAT80eIOnHFGNF4dNeAYUuVIER+DD6D9C?=
 =?iso-8859-1?Q?/BQNjOeR7MYvQanJCwTRqI69WJGyuGgL/E0bdYpr+Di7es42O1FwGpJB4v?=
 =?iso-8859-1?Q?TVXIZB09Wcpw8lvr1Pr0gMqS5cYLSQ56l9Gp5wUlJ75zLRwq5WgF71O2w8?=
 =?iso-8859-1?Q?rZ54mnz3v9KUR2O2vopS41N63SBAcnCSSb5TwKUg49DkMKrrhzuleoygh9?=
 =?iso-8859-1?Q?ee+uBN43q8IHwqKWs92tz6/es7R0D7tQ1bhgfnfGmstTmokO2e3akLjVXI?=
 =?iso-8859-1?Q?QsNAaOgAerr3NcbSwGckgJ47ap8E1q7qH8DuA4nvYPz3TLhm8laHlAg+OW?=
 =?iso-8859-1?Q?55JQxAEFtCai3AI+Q5kMjelR+3wgfKxlVn5W3i6hcP6kyV/OoxLKlaysOD?=
 =?iso-8859-1?Q?WYVoMmaNL/cTWIDYaKO0NYOkjOtUtK5OGPdcKBuln+qbLGNqIpgjQimiFG?=
 =?iso-8859-1?Q?fu3DhuUlrvg4yXSS0HHpOeZ5AVr3yDpQ5+EdheIs2TRcyJNdaPnp7FC1hm?=
 =?iso-8859-1?Q?kSSWOY81FqbbwG6dW3YhINVXz89I8Nu6gDxV0AY3xTBL969ADHunVv8A?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM6PR03MB4600.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 23721e61-7608-40ad-31f4-08de2e91ec92
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Nov 2025 15:22:20.7186
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: BEO8ZkYPt7Fwp2XeF3AU/LDc8b6wlGc41srWfkoncKzj47RWW74SR2zTb72ey9MToDyBFYSMDgs7JFpLUImXbUHIK9DTj0YoSUD0SDx4O2o=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB10087

From: Grygorii Strashko <grygorii_strashko@epam.com>

The domain_set_alloc_bitsize() is x86 PV32 specific and not used by other
arch or common code, so remove it.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
v3: no changes, added tag

 xen/arch/arm/include/asm/mm.h   | 1 -
 xen/arch/ppc/include/asm/mm.h   | 1 -
 xen/arch/riscv/include/asm/mm.h | 1 -
 3 files changed, 3 deletions(-)

diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index f702f4a0d676..4c6cc64aa7ba 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -313,7 +313,6 @@ struct page_info *get_page_from_gva(struct vcpu *v, vad=
dr_t va,
 /* Arch-specific portion of memory_op hypercall. */
 long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
=20
-#define domain_set_alloc_bitsize(d) ((void)0)
 #define domain_clamp_alloc_bitsize(d, b) (b)
=20
 unsigned long domain_get_maximum_gpfn(struct domain *d);
diff --git a/xen/arch/ppc/include/asm/mm.h b/xen/arch/ppc/include/asm/mm.h
index a33eeec43bd6..e478291fdf55 100644
--- a/xen/arch/ppc/include/asm/mm.h
+++ b/xen/arch/ppc/include/asm/mm.h
@@ -96,7 +96,6 @@ static inline struct page_info *virt_to_page(const void *=
v)
 /* TODO: implement */
 #define mfn_valid(mfn) ({ (void) (mfn); 0; })
=20
-#define domain_set_alloc_bitsize(d) ((void)(d))
 #define domain_clamp_alloc_bitsize(d, b) (b)
=20
 #define PFN_ORDER(pfn_) ((pfn_)->v.free.order)
diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/m=
m.h
index 9283616c0224..11e9f26bf0a5 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -292,7 +292,6 @@ static inline bool arch_mfns_in_directmap(unsigned long=
 mfn, unsigned long nr)
 /* TODO: implement */
 #define mfn_valid(mfn) ({ (void)(mfn); 0; })
=20
-#define domain_set_alloc_bitsize(d) ((void)(d))
 #define domain_clamp_alloc_bitsize(d, b) ((void)(d), (b))
=20
 #define PFN_ORDER(pg) ((pg)->v.free.order)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 15:22:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 15:22:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174947.1499900 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP0Ir-0007L8-9N; Fri, 28 Nov 2025 15:22:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174947.1499900; Fri, 28 Nov 2025 15:22:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP0Ir-0007L1-6V; Fri, 28 Nov 2025 15:22:33 +0000
Received: by outflank-mailman (input) for mailman id 1174947;
 Fri, 28 Nov 2025 15:22:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YqkP=6E=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vP0Ip-0006eN-Qv
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 15:22:31 +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 0dff3549-cc6e-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 16:22:30 +0100 (CET)
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com (2603:10a6:20b:6::31)
 by AS2PR03MB10087.eurprd03.prod.outlook.com (2603:10a6:20b:62e::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Fri, 28 Nov
 2025 15:22:21 +0000
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4]) by AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4%4]) with mapi id 15.20.9366.009; Fri, 28 Nov 2025
 15:22:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0dff3549-cc6e-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jGz7F9vy1LaVdK4lfQSdHh2jqnoIcRtK7WQHYSQHy3SClF0c1s2atj9y/ItuEy5C5H3KLBP48XGrMcdS1qbKqdpP/NH0BV+sjm6yKhBanBsWmqr2+Vp6vrJM6KiMLlIjMCQFzToeCx7LszpBtBuwftVItjBuy6iuN+uh5jZ+fH51zHOMjNFB/YD1r54LZ/EkOwnm8e3W/4C13HO4vsraXXEfFm1kKUBaOfqGyCOeiO+W3GvKiWQAjaMGKEzXK64jA5y+t9yZxJUr7/O8K8xZCrg7hKxVwMsBWhVsAuTDeqbFtgFsdAh6ZlhV19YWyqvlDx7RhPYCIic4EWiI9/qpdA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0tD4HZxi7jTmnmsP0GYxaGrHKc3EJbTUhiaZg1ZgjwY=;
 b=Ws13GKOxTXstdafS5C1AN1vIo6sg+Yqv6XMQdzUAuOmnhcAjpq5CKCi14utlSbUWnt1Qp9N/pmH/dSTwJCsfbjbJ8XpnrDjOZAIHHgg3nnsSa9SI/Lu6qMOtLqAVQnm78Jhm6REmbEaY05ThDtaS6cnGlV+uW86hYbPQ/5lw0bp8FHaHCJvucS86j6Yb0gfvH/0vbiNEmlfmLHiq2AlYL8e5cej1Yj9DyTCqkQCMgtiDiGece+tHUNpkYisWR+Eiw+ufCzaaJQTBTSFHgek8qOW9fQ1M/C+2WcHDwmyjqoBlhjsKzS3pn+pIUXN9we5QXBTmy9o8JX7KeHJ/nlPwtQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0tD4HZxi7jTmnmsP0GYxaGrHKc3EJbTUhiaZg1ZgjwY=;
 b=ffXIAWO1xApV+/zKi8kJV4BcEyBIfgXl1Y3w0N9EAzffJ8N11Wd1KG4BCSLL2AQr8oZ9bTBAVFayLjBw0xKSrTyg71KBV/oBWCyIU/lgn5kaaoxQLv1FapVhR2fCu4723GatU7MQU3735EWHeQ7lB5TSK0fMIeM0hJGVY/840CeVLwIMi2D9GLo43621uHO6qQwY2/7Qf2PUp+ETxdxLLe3Gi4Cokqx7b/TPMBP2YKk0jFNSrtFziSj3qkJyJ8uNEvQFqgQHiTwJtnBYGDXf5m8HhXAj2588j/cjyFuP/HASUcnPeOSmfGgtNBI24HWuc1BDveNuWejr8017fIXQpA==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>
Subject: [PATCH v3 3/3] xen/x86: move d->arch.physaddr_bitsize field handling
 to pv32
Thread-Topic: [PATCH v3 3/3] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
Thread-Index: AQHcYHrKMY8RaksHyUKCNstHynUmRA==
Date: Fri, 28 Nov 2025 15:22:21 +0000
Message-ID: <20251128152218.3886583-4-grygorii_strashko@epam.com>
References: <20251128152218.3886583-1-grygorii_strashko@epam.com>
In-Reply-To: <20251128152218.3886583-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM6PR03MB4600:EE_|AS2PR03MB10087:EE_
x-ms-office365-filtering-correlation-id: a59c69e0-25d3-48fa-e58f-08de2e91ed3c
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?9jo2/GPyYpzUapaSUU5qXmNRNxM99m5F7CJjTGMWPaggMTp2Gxt4kcV6Cm?=
 =?iso-8859-1?Q?H4FpFFajMbi90P5tsMZCpx+x0ddCyT/jQm/ZDVkBboLlm6KPWe8u2qoSIK?=
 =?iso-8859-1?Q?HKcWrVizzhb7DJzxOEQmJxz9QzZTb7iOv7MdxrMqC1jYsiB2I0D3SSxW0x?=
 =?iso-8859-1?Q?3Db88w0ZadPQ5P7Fi3wXMscZvJy2G7p6gYbPDlWLWgWO7MbTBGU9WdsAqh?=
 =?iso-8859-1?Q?5zfUiSYiFHCSzgCn2cxRKVm6ru9g1KhdMdRC1mnNr3xN9pgd94QlhcMHs1?=
 =?iso-8859-1?Q?OI8Yq+nQ+0BSZ8KZehtgn8EbCgVBwwSdagcAd1Zaief4mSX4EazJGGWQCN?=
 =?iso-8859-1?Q?KYfbAYTrIpdWagGj+LX+swavMZjgiqbwVB9pqcJVrDHWxSrfVlP471qy2L?=
 =?iso-8859-1?Q?PKEOW/+YX7epjEaGBRBxeGCLJuaO4iPyEGCSHP7090W5+uPkugpLNoltzw?=
 =?iso-8859-1?Q?SoXwEygb2bEYD+cQVsBlmVv0G3BQR8UMqLyxCnzdK6Hde/GCyfcZjBeUwj?=
 =?iso-8859-1?Q?1Hzyd3Rf/AcZiYOwm70ARXc8R2KbE+FqA1tNPQyprZakcZtCHCoI0RxktF?=
 =?iso-8859-1?Q?0GXh7GRjnK08hNJEtJ1XRUH6YIUy9FJK7REIFDjjKJBdBNo7TtkYjoJspW?=
 =?iso-8859-1?Q?h65oNwfOsg1TPklfMcpdJCZsr0c5fCpNEAIOl7JQgsBmNZGllMKeVaQIbn?=
 =?iso-8859-1?Q?pOxU4ODo1IpXZkmqFWN4SYYYeFIwfnKxcZiptZLtQOZEYscln7uVd8LEnI?=
 =?iso-8859-1?Q?B6paGHLDdqgeKZmEHoJK0IdQDlsAm8y2tjXKDw2RZr3RMs7fIPRdRVGNDi?=
 =?iso-8859-1?Q?N/YvIv1HvtL8HuF7lAlM/+dszTuel2zRlulFftui9Lg44NZLkYseUw61y2?=
 =?iso-8859-1?Q?+lJyU17xrQN1dRMGtYDShTZE4oIc4JtQM69bRFpoScvYQRWSDvuG48BudK?=
 =?iso-8859-1?Q?hbPMSK9bcHJY+naQLK7WpkHER+eMe8v0z5GBE3c8BHTinCgsXUSn2iReAg?=
 =?iso-8859-1?Q?Pc/t0VEdNK9+aj6esLUqZPX0X4ahpYBYMNQBKT5D76QHejZwqghuKN/0jw?=
 =?iso-8859-1?Q?4jTA6fpID9oprxvpIBArgWHEJwlNn4arLxFIKzFF4SGZDCx5kKQ7j0Ezuk?=
 =?iso-8859-1?Q?SGbBf9X1jcL7iyluoVwNxetTPyQP/M6lsP3C+Z4hUo+pUp/1CI9MQrg3/F?=
 =?iso-8859-1?Q?EYdBhNUllVsr4kCoRSaKgIbQqD1owqKoobEI/hQ5ylGLJBC7xVdMjf9N1I?=
 =?iso-8859-1?Q?3Idv7BNzn5dVog7ceFxWTgIEpYlh3Q1IyDcFZUFQKd7PglSbWEAepI5OBg?=
 =?iso-8859-1?Q?nH0F6FATidjKdUub9ZgQ6Njfe14qYegmbtJ4ZUd2tCXnu3J3BqUDJpspKD?=
 =?iso-8859-1?Q?rZBMBYzBNEdn8xxGpwfeonneTIMcRrPFABmbfJ0Oe1DAct39rocOcTHTZD?=
 =?iso-8859-1?Q?bhlxI4giMKxAUTCHl0Gx38frgmPbENxbw+8+MsD/8Wfe20jrusGc9SNxYg?=
 =?iso-8859-1?Q?8PJWv9WalE2dFjd7Bdzk5e6O/w8ncIkNMSNFWqc8s4vWpnBICpwBiC3e8H?=
 =?iso-8859-1?Q?nZN9w1QKnqAm0Z03pNGJKR0We23b?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR03MB4600.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?qL774CDbx4YDn5kKZtPnPrn6XSPdByi0Om8tYOL88kcUAoRpiwG0WPhaIf?=
 =?iso-8859-1?Q?Wo/+iQINJOVy1FXsRkHS/y0SDPGUe7cIln5/fsSfyUMlEitFLTPCVtyUgv?=
 =?iso-8859-1?Q?emVypRlS3Qfa2lhmDbjF1GFtZRteud6V0ZwkiWLwhK+BI+YKHFaZRxbHJV?=
 =?iso-8859-1?Q?+rRnBgU/xTgtyooudatuQGFSmvE0wvNsSJWEK1YlmGFibPVH9f1ogW+/Tf?=
 =?iso-8859-1?Q?/VJ8hHuIMPGtV7LIkSPKizNNM5Za8O2EcHjSNxhf1vRwnxUt6+RvnfGjeW?=
 =?iso-8859-1?Q?QYIDODPDHva7WMCT1lWz82yKGW31GjmIB09+IcGoFvmGq1vrOl2U3Yvxxd?=
 =?iso-8859-1?Q?THCw5S6k6aXKOp4YeprjMWBw1250HUPtMhgMrKUfJObRe3aUnnRftx7jWQ?=
 =?iso-8859-1?Q?Dq4irTaQ49EaKXtDuHeXjSDOQnuyjVoZBNaUJseZfZ2Rlk9OmhfYrRoDiQ?=
 =?iso-8859-1?Q?Lj4prvke4jGwfg09qrnlkZPnRgpl7Svhuq+ipPuacJQ0pM9y1WwK5MqLRZ?=
 =?iso-8859-1?Q?rrLNFdnukOFdUpieiL/5+Hy6fDtqw9BrF7qWNtfMUh5pc1kTaflnK/J3+B?=
 =?iso-8859-1?Q?YdTqg1J4RuElYpd9c2hSLLmsT2J0NdXdKmHnJMyA3nrk2GF3/JUZle5G17?=
 =?iso-8859-1?Q?yUJQAbFXkFEyzlSk5RbtOwMi7UYphUxE7SeTZdAnzs+QrTr8QOkDQxYyzU?=
 =?iso-8859-1?Q?PCVQcyNUL5OySQPagWTD7hdNQO8hTIly/w9RpQPj/ZLm6QhtcdsIl4sFXT?=
 =?iso-8859-1?Q?oAvFegyii1Rt+1jpqQwGTDs4sueNiFsVM7idk3ZVM88n5hYsIT/zr6CLIL?=
 =?iso-8859-1?Q?X4zQPp0Ui80v/5b7fqazktu6iIQM+ZokHINIryIOJJxYhfSuCycdWsBp4P?=
 =?iso-8859-1?Q?munB63AUCL0tKUpiA4O2kmb4kcZZuzoRlYgO5GTpvn3agUxZxiTSmWuM5K?=
 =?iso-8859-1?Q?lmL0ZR3FzGUhKz2kJFBVQUwLDya5XdWImfqCgEnT5Q/wDyNUgqbczXlItk?=
 =?iso-8859-1?Q?DeyZmZx0xEv0YrgJc4ZH0aMJnWDWTXt8KV63Ho03ReNj1N6l/9jvdx1JMP?=
 =?iso-8859-1?Q?8ofvuaXYvQS4vPEkfmXlotvs2SYVD3At1SBG+dd3fBtuZE5Cn+ouhVPYMS?=
 =?iso-8859-1?Q?2e3jYSmmLXvJ+nU8wFsq0yQ5RQnNQvxFM7df3y3OxU07tdaIE2HxhQgITo?=
 =?iso-8859-1?Q?BSVvHr7eDldO/0q/Gv29BrnRd0Lq/3EPaMzLiJeJu0wnBp4auMgYex3DqS?=
 =?iso-8859-1?Q?s0RFWR0OCyhcD6J3UyYm0dRhHFFs2T+k8VJMA9xrq8GegBAC4j71ka3Tt0?=
 =?iso-8859-1?Q?BraWcqJTZ2j8BQr4kVdfDFAGANAjwu+iyVj4wRlujRanY/5oWmqajI9lwq?=
 =?iso-8859-1?Q?07e2EXv04y+nk/AFX609B6LoAfPW2SZ0p4K4fwfI0ZPZDuokg5hnQ4AnCN?=
 =?iso-8859-1?Q?TFxkqmd1asC6VMPBH/0aD82RgZzYcKbKj/bOqo1EXUWrPpzlCa6pFU18i6?=
 =?iso-8859-1?Q?TF8l4HDnqG5NPO1BLVlvqtItcfwpDk8NHWFY+c8g0b8ba/+60kKTubzSu2?=
 =?iso-8859-1?Q?Z0jfKJQ/BQnKK0bdXwYUCFVSUuoQe3dK96NSkI67uLIQ7g8Vt/7ZTmLP6N?=
 =?iso-8859-1?Q?oa3ma4ofrqoKLE8Dm7U39nDz8B7gWSfQiDxrHoYK7QK8UlgU7Zbm81yQ?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM6PR03MB4600.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a59c69e0-25d3-48fa-e58f-08de2e91ed3c
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Nov 2025 15:22:21.8276
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: bw260g9f59EEhIhsJJWceJSLPheJ+HCLxwzuprhdTxpXqUe+A+9VYSLo3OwTBLg/PXJM15DKe7WDGlESCu3qFOkcIWh6B1RFBfZBAdAkndI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB10087

From: Grygorii Strashko <grygorii_strashko@epam.com>

The d->arch.physaddr_bitsize field is used only by PV32 code, so:

- move domain_set_alloc_bitsize() function into PV32 code and
  inline it into switch_compat()
- move domain_clamp_alloc_bitsize() function into PV32 code
  and convert to macro
- move d->arch.physaddr_bitsize field under PV32 ifdef into
  struct pv_domain

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
changes in v3:
- domain_set_alloc_bitsize() inlined.
  Note change of condition to "(MACH2PHYS_COMPAT_NR_ENTRIES(d) < max_page)"
- domain_clamp_alloc_bitsize() convert to macro

 xen/arch/x86/include/asm/domain.h |  8 +++++---
 xen/arch/x86/include/asm/mm.h     |  9 ++++++---
 xen/arch/x86/pv/dom0_build.c      |  7 +++++--
 xen/arch/x86/pv/domain.c          |  6 +++++-
 xen/arch/x86/x86_64/mm.c          | 20 --------------------
 5 files changed, 21 insertions(+), 29 deletions(-)

diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/d=
omain.h
index 5df8c7825333..6cdfdf8b5c26 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -276,6 +276,11 @@ struct pv_domain
=20
     atomic_t nr_l4_pages;
=20
+#ifdef CONFIG_PV32
+    /* Maximum physical-address bitwidth supported by this guest. */
+    unsigned int physaddr_bitsize;
+#endif
+
     /* Is a 32-bit PV guest? */
     bool is_32bit;
     /* XPTI active? */
@@ -316,9 +321,6 @@ struct arch_domain
     unsigned int hv_compat_vstart;
 #endif
=20
-    /* Maximum physical-address bitwidth supported by this guest. */
-    unsigned int physaddr_bitsize;
-
     /* I/O-port admin-specified access capabilities. */
     struct rangeset *ioport_caps;
     uint32_t pci_cf8;
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 17ca6666a34e..a308a98df2a4 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -619,9 +619,12 @@ void __iomem *ioremap_wc(paddr_t pa, size_t len);
=20
 extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int=
 pxm);
=20
-void domain_set_alloc_bitsize(struct domain *d);
-unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bit=
s);
-#define domain_clamp_alloc_bitsize(d, bits) domain_clamp_alloc_bitsize(d, =
bits)
+#ifdef CONFIG_PV32
+#define domain_clamp_alloc_bitsize(d, bits)                               =
     \
+    (((d) && (d)->arch.pv.physaddr_bitsize)                               =
     \
+         ? min_t(uint32_t, (d)->arch.pv.physaddr_bitsize, (bits))         =
     \
+         : (bits))
+#endif
=20
 unsigned long domain_get_maximum_gpfn(struct domain *d);
=20
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 21158ce1812e..94f7976e819f 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -626,8 +626,10 @@ static int __init dom0_construct(const struct boot_dom=
ain *bd)
         initrd_mfn =3D paddr_to_pfn(initrd->start);
         mfn =3D initrd_mfn;
         count =3D PFN_UP(initrd_len);
-        if ( d->arch.physaddr_bitsize &&
-             ((mfn + count - 1) >> (d->arch.physaddr_bitsize - PAGE_SHIFT)=
) )
+
+#ifdef CONFIG_PV32
+        if ( d->arch.pv.physaddr_bitsize &&
+             ((mfn + count - 1) >> (d->arch.pv.physaddr_bitsize - PAGE_SHI=
FT)) )
         {
             order =3D get_order_from_pages(count);
             page =3D alloc_domheap_pages(d, order, MEMF_no_scrub);
@@ -650,6 +652,7 @@ static int __init dom0_construct(const struct boot_doma=
in *bd)
             initrd->start =3D pfn_to_paddr(initrd_mfn);
         }
         else
+#endif
         {
             while ( count-- )
                 if ( assign_pages(mfn_to_page(_mfn(mfn++)), 1, d, 0) )
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index 9c4785c187dd..d58e4e213e5c 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -254,7 +254,11 @@ int switch_compat(struct domain *d)
             goto undo_and_fail;
     }
=20
-    domain_set_alloc_bitsize(d);
+    if ( MACH2PHYS_COMPAT_NR_ENTRIES(d) < max_page )
+        d->arch.pv.physaddr_bitsize =3D
+            /* 2^n entries can be contained in guest's p2m mapping space *=
/
+            fls(MACH2PHYS_COMPAT_NR_ENTRIES(d)) - 1 + PAGE_SHIFT;
+
     recalculate_cpuid_policy(d);
=20
     d->arch.x87_fip_width =3D 4;
diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
index d4e6a9c0a2e0..8eadab7933d0 100644
--- a/xen/arch/x86/x86_64/mm.c
+++ b/xen/arch/x86/x86_64/mm.c
@@ -1119,26 +1119,6 @@ unmap:
     return ret;
 }
=20
-void domain_set_alloc_bitsize(struct domain *d)
-{
-    if ( !is_pv_32bit_domain(d) ||
-         (MACH2PHYS_COMPAT_NR_ENTRIES(d) >=3D max_page) ||
-         d->arch.physaddr_bitsize > 0 )
-        return;
-    d->arch.physaddr_bitsize =3D
-        /* 2^n entries can be contained in guest's p2m mapping space */
-        fls(MACH2PHYS_COMPAT_NR_ENTRIES(d)) - 1
-        /* 2^n pages -> 2^(n+PAGE_SHIFT) bits */
-        + PAGE_SHIFT;
-}
-
-unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bit=
s)
-{
-    if ( (d =3D=3D NULL) || (d->arch.physaddr_bitsize =3D=3D 0) )
-        return bits;
-    return min(d->arch.physaddr_bitsize, bits);
-}
-
 static int transfer_pages_to_heap(struct mem_hotadd_info *info)
 {
     unsigned long i;
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 15:22:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 15:22:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174945.1499881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP0In-0006s2-NX; Fri, 28 Nov 2025 15:22:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174945.1499881; Fri, 28 Nov 2025 15:22:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP0In-0006rv-JI; Fri, 28 Nov 2025 15:22:29 +0000
Received: by outflank-mailman (input) for mailman id 1174945;
 Fri, 28 Nov 2025 15:22: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=YqkP=6E=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vP0Im-0006eN-RI
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 15:22:28 +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 0c490793-cc6e-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 16:22:27 +0100 (CET)
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com (2603:10a6:20b:6::31)
 by AS2PR03MB10087.eurprd03.prod.outlook.com (2603:10a6:20b:62e::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Fri, 28 Nov
 2025 15:22:21 +0000
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4]) by AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4%4]) with mapi id 15.20.9366.009; Fri, 28 Nov 2025
 15:22:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0c490793-cc6e-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JdWAR796qRNOlTs3VUZFHWd1n+M7HDMfdLXx+lKJcdmUIZlSmaVEM3DGPqr+o/JGk/rmkIoBDL7fuGObN47Pgz2CWV9IGUBlZlew9ms+QQr6oG0XbwhHjV47cE3lHmmdpMUHUTeiuJmPQr2Fp9ioPTtjEtVpWw401nZyAcO6Hpzda2UP6eUQ5GJa3555zXKiA09iMca0Awn5mhvu8bqfBJuJu63nMRsablMGo4PyOz76PQ3stHAgXca2uQNudqiyXy4MSHy3dMmuDUSQfy0atqH4boqxQR03Jv/sH9NYBFZ2uYAeMHMSvvynQ8V1pRcMphJSUJTIZu4ylEhW56Zqhw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hPhlpPQO+kk9DvnzI2NKX1j+ZgUlHCbYfuwZsB6QEdU=;
 b=DIEC5KgzMDkOCSFeNndPFoLKqN3CF/yrhpKF+pYpVHAsB+dsO7vdkGArXnbf02Jh22WS9Fq2EvpymNhXOUOdyyHEkEUzuKDP3TMBLahi/Pn2gUlAI2VyTMaKKfDeEcyXlpyhPASkMSHY2sm0lGBf4g0tGWVsUIAefAskWm9r+A9L0vcWWWq7eEVxldjtNk0WK33kSB0tpjr3DoFAiEyTFG5o1AL974TqX/4iyVqbbA2+QbaTBxSVQwSvZNsb8bA9mCsuPho+HgdCY7Ym4AcrIOOOfOa3yhVbCqaNXkPDtANVdoqghbSDEmfE0RUMBDkknvJHSsUIUqt5+nMtDAHJfw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hPhlpPQO+kk9DvnzI2NKX1j+ZgUlHCbYfuwZsB6QEdU=;
 b=ApvzqVNCguL6W+rd9Sn1tCm1E7d233ozo4yEJnE7MmzWjzA8ffmjsZJOiYCI6Y1x0/qVGBwQZ/mwA5tpwxxc3ib9nSyLFC4tQQ3G94iXvUtPgdJUP6zYzDP+NdQ0ikWhALQP7MdUnT0D5Jl/cVOywsOfSl6PS+bqdEFP4ZHOkzkahn4i3FrnH7ySe/6isImTZfsqqgP3ZwOfNEf7XHCTlWkAjb15xl//7JwrZW+5oSaM7gC4DuzkPNHkHp3g8wvr8GI9Ga96ITEuVETHzJ92CqbPU3F5GvBFGnrIV8KyFz8G5RDkkDuUBg2NDCrIhYSnEnWSxOT1vb/8vXwb0LrAnw==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Oleksii
 Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v3 2/3] xen/mm: add generic domain_clamp_alloc_bitsize() macro
Thread-Topic: [PATCH v3 2/3] xen/mm: add generic domain_clamp_alloc_bitsize()
 macro
Thread-Index: AQHcYHrKI/DuZxtTF0mX/NaGMgBzNg==
Date: Fri, 28 Nov 2025 15:22:21 +0000
Message-ID: <20251128152218.3886583-3-grygorii_strashko@epam.com>
References: <20251128152218.3886583-1-grygorii_strashko@epam.com>
In-Reply-To: <20251128152218.3886583-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM6PR03MB4600:EE_|AS2PR03MB10087:EE_
x-ms-office365-filtering-correlation-id: f4241c1f-e2cb-4f3b-217f-08de2e91ecfa
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:
 =?iso-8859-1?Q?kqxYjPgdjrqO53B/JH2oj+/s5AGYWt69SI6z4rDfqDE4tAk0x65fQnhbWu?=
 =?iso-8859-1?Q?ZYR/lEhqIriSdK6PDuVQFsJ9KLO4ESjxT6ktTyuvn0Nq3gpVqvTFsNiYEX?=
 =?iso-8859-1?Q?smuPO4JliP5aLMmboBJlxCfjnLMvfSCIt7IlkShYBAUXMnGPyoSmhxMbDI?=
 =?iso-8859-1?Q?7FX4/KKNN7RxBis32RXZ2BeP1mIfhpkj4T8pRZEcvRbwtsbG6oR4GFIiPl?=
 =?iso-8859-1?Q?eE4Wkn6E8DmhsXMv+WdMzN9PgtCBJCR6e+/CReisDJ2/HCuzsJFvXKwEGR?=
 =?iso-8859-1?Q?9mIE19QvoYuBtEGzw6CbXa0ZIsvc7vu7qdBvECW7Qh9IJRa1vUUWRrPSiL?=
 =?iso-8859-1?Q?/IfA1en/NOa6fnnvRP6jNoW+2lz9YxAanylUa55qYTJwWODXaQ65buzsT3?=
 =?iso-8859-1?Q?boYm5n8B1skG5/zWHKJS+OGiLrjFDa6Q7jbzcmuNAFm/UALHt+S0TdSKtE?=
 =?iso-8859-1?Q?ck3Wsz8ijg2PQFHKdB7X/pfaS9dcm5xjt8BdTeiL/K4A6bX8ORJxT5i5Ii?=
 =?iso-8859-1?Q?jB1Hwy5Y7ZXVr2nCm9ZizQWddFcBKxLKLjnSuC4WjW1lDRqXOCUWHelbjh?=
 =?iso-8859-1?Q?GEBoqytjje9iUwhoRBpQlmDzsa6ZUVHYDAtKzJV7zMxJLVex2nxR7Qgu7G?=
 =?iso-8859-1?Q?M8EMuVuPTVuEmrfCfgf6dcEQXjxe3LSjoQ7Hkv4P8VCy2H8eGyDGglCK+o?=
 =?iso-8859-1?Q?7y9WJoI/GMH8BFFG7JIP44CcfgsH83vQESDR7EfW3I0/WzrfFW2b2wm58Y?=
 =?iso-8859-1?Q?XLWhr6lMWhmFZ4JtdQM3daASIfJnNdhgd5uPeoW+CJsKfsYjfsSHonIehY?=
 =?iso-8859-1?Q?kUJt7pHYN1vOgSMzvAf0TgqGzHpZ+owWsiMdqacrjMvlCIf7RbOpGpaaRL?=
 =?iso-8859-1?Q?J4DBhMXjpY/lGIlY7dt15PtO5lT43KiJYUO4JIzqeo1G5snnDC3U0ysRCq?=
 =?iso-8859-1?Q?fxSzCzfDf4SSwg9lcMebb8uq0WohP/QZKC5fc8lD1oYQvME2S/wmk/a3a/?=
 =?iso-8859-1?Q?KH5bMBR1YGpHrYqW4QMQLVXob/pSHsmt1x31svotwojkc4EZZJV3IeNnWV?=
 =?iso-8859-1?Q?dqwVJzsuVIz10af7AmdpF8f/WcVNLodIYG73F64PdnicqOc2UecDY9zjuS?=
 =?iso-8859-1?Q?s6IlSMOxA2JFkuUk+TwgtyHBfdjV8UMzf/T8xqiAjC48K8FjevhWrL/ClZ?=
 =?iso-8859-1?Q?yMo4aIP46g4b1ziqL+NN6HCHGiKikTbY8S1x7yA53N9W4SLFM4PmkBjoAy?=
 =?iso-8859-1?Q?VftnwD8gdZZXk8XgapVQHzVUHCRitg1OZLyHBS7h1w2BKzx48QrOWsk80x?=
 =?iso-8859-1?Q?2bFxlgo5+YNLHxcMlg86uvEHN35PxraifTGoXgNCy6BGpRLHN/0f/whgyN?=
 =?iso-8859-1?Q?z9CqYESr7ajMf4bx4dmJ6i7fOWHeWewzDarL9y7U6YXc94WU4YuIYqWNP0?=
 =?iso-8859-1?Q?QtwnEVMw80CAjHmm2OLpEj/NA+OOiq2e+cr+mo8FlMAOVXrSaJzAIwJcZN?=
 =?iso-8859-1?Q?lbmHaqAAjN5oAg2TTCpI4L2TDcauTt1oxYOoBEqhhHKRvwZeYOHQgYwbVa?=
 =?iso-8859-1?Q?45hDlVmhcxEIY9z9AepzPguGvjDY?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR03MB4600.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:
 =?iso-8859-1?Q?tT1cz13hGC5lVzqwTSY8lWk+BjUX3wNjnGmOj8DuXKFROetrkold/BOMmr?=
 =?iso-8859-1?Q?+/GtxX3N2fV3Qjo4U6QciUpnxKFYBVwEI1qPo1SpkJC6xeFfl44WDMsNRl?=
 =?iso-8859-1?Q?R/uvYAIp+n46+ldiMB1IE075qAcHmTSfqyucxTMAC9JjsPwtK97WDk+Sng?=
 =?iso-8859-1?Q?rVzPNBpOmwE4C8D20HT4te19692e+eFs2JKYe4icxiHbb5fnyG2fKA4dmR?=
 =?iso-8859-1?Q?7iyZVOfBPa0niDkb/B8WYK/fZwPpvUxcANpSxvbNVZHtbRWevbWEJ0FB2O?=
 =?iso-8859-1?Q?+Y1njIcaTgkxZ15jOl8wD1PYIlnES3BniWAIZ6nuVA8ejxREc/jr2igUm5?=
 =?iso-8859-1?Q?dCr9rPYLbcQ20s+uDw1uS5Qc9YiP0xhHQeAYVUtjZZut/H+Zy3GQZiZZgj?=
 =?iso-8859-1?Q?pAkmJnW4n/iWqKUF+A73cjJqFxhJZFfMrVuzoHcasXQVnvT2GiYOE9rBxL?=
 =?iso-8859-1?Q?dasLKGmw1RaLNARnPbyh37SAx2BVoZuiXDzZslvGrO2GKtoqNSsc9c5G59?=
 =?iso-8859-1?Q?JTE28HSPSe2EomNyA/8iHtSiIFDrWZ/u8uXQTknpN1meVOUvvUjIOI/yRI?=
 =?iso-8859-1?Q?o3K7ew7IC9ETYLlid32HuOt4ZTwKnrn2MEsFhKkK2OF93LnB8kzt6+gGzB?=
 =?iso-8859-1?Q?iOkZwPPMOsjczbJeYiAqLbdslRsXHVhDWk/+9/GdTEMDWe5vBMO/UutFaK?=
 =?iso-8859-1?Q?Iqah0RFNsruUtUWbgfSDxgWbr5cnFZBWovSTpnxvhdk5/kuM3j1lR4aCJX?=
 =?iso-8859-1?Q?umZBhV45PYrcN0ScNo+HO7hNySdPLlk1TbGixkMn80l/PUYZ5WQ8oGtxat?=
 =?iso-8859-1?Q?kblAH+G4tskz+dZfmUqXv89JtVI+D1hLn94h1DNA3qaJtvOK0w/g1PruNR?=
 =?iso-8859-1?Q?e79gT2KC/+OO9Y0jclDXNbMI8VoxuBuMRpE30wx3W2hDPrkR0EHQCqAVLx?=
 =?iso-8859-1?Q?AUKRwhMGdzgSgl03L+vpgVrrU6Jcd38Qw4T2iL6TqJQy2vJCRCTHpFOIG4?=
 =?iso-8859-1?Q?wqlSya9aWlT6qgV7vbqjQFVFIAUKBl6wqkUJzvQUds4Am/4gFhTqjczQRp?=
 =?iso-8859-1?Q?8eWrCGv8sJ0gFfYvQdi7Vup6RIAvhwUb4qU9h4oR4PEOLhPn6Vn/CgtcN1?=
 =?iso-8859-1?Q?2l+RbYjsH5AQMUBm+0Dt7QORHnRb+hBQkIKYRUfCUe16bxoVgWZobKS3h+?=
 =?iso-8859-1?Q?+FiN2aZglPfVoCUa7jzVHYoRNvLX1WazwfwQCZj5Gyr6YOKHJQ+W8wo1o9?=
 =?iso-8859-1?Q?SPJV4DIOBAyhTRpYt0uSKqhcEHI4cXiHIMteMvKbGeKM1DBSKjMZb6dduO?=
 =?iso-8859-1?Q?10bSuUH3uNWGeLv24nZSL7fhESmuLMjmYGhridpvv3RqqDUR+fBYPuq2/0?=
 =?iso-8859-1?Q?mCu4akesSsY1mKpjsjFspAUuFAXrRHcfXCx9xkpZ5tv0MRK0JQosXLGcgc?=
 =?iso-8859-1?Q?yLk5DtWUtI5F2PiY7v+rSMR3KGScBNG5aA5rTTVjpTqYt8JblUu4oRyTG+?=
 =?iso-8859-1?Q?7AQ1B6nu84TNotZcMuK7w2W02Go3sirJwywmpZw+0qLMoMEZ7XA0doiAUI?=
 =?iso-8859-1?Q?BJL0WCDM6lDUlXDY3GbyFwH1N65aCPf6DKVoSn3cWBqnGk4EmbE1dEzPcM?=
 =?iso-8859-1?Q?7Nyt8l2LwsD/npp8CjWbaJM42k25ygpnR/sAl0irfCndVyKounZp67RA?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM6PR03MB4600.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f4241c1f-e2cb-4f3b-217f-08de2e91ecfa
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Nov 2025 15:22:21.4116
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: oItp5ybrO3uTXT+yrHnp8keNXEyZFyWM1q+Pt6E2HpOoxrGZphqohWzd1zz0nr1z5qLCXoW+X+2sTXFkKaNgionh5uD8iGIqAz7c43FheZo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB10087

From: Grygorii Strashko <grygorii_strashko@epam.com>

Add generic domain_clamp_alloc_bitsize() macro and clean up arch specific
defines.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
v3: no changes, added tag

 xen/arch/arm/include/asm/mm.h   | 2 --
 xen/arch/ppc/include/asm/mm.h   | 2 --
 xen/arch/riscv/include/asm/mm.h | 2 --
 xen/arch/x86/include/asm/mm.h   | 1 +
 xen/include/xen/mm.h            | 4 ++++
 5 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index 4c6cc64aa7ba..ec2d2dc5372a 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -313,8 +313,6 @@ struct page_info *get_page_from_gva(struct vcpu *v, vad=
dr_t va,
 /* Arch-specific portion of memory_op hypercall. */
 long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
=20
-#define domain_clamp_alloc_bitsize(d, b) (b)
-
 unsigned long domain_get_maximum_gpfn(struct domain *d);
=20
 /* Release all __init and __initdata ranges to be reused */
diff --git a/xen/arch/ppc/include/asm/mm.h b/xen/arch/ppc/include/asm/mm.h
index e478291fdf55..91c405876bd0 100644
--- a/xen/arch/ppc/include/asm/mm.h
+++ b/xen/arch/ppc/include/asm/mm.h
@@ -96,8 +96,6 @@ static inline struct page_info *virt_to_page(const void *=
v)
 /* TODO: implement */
 #define mfn_valid(mfn) ({ (void) (mfn); 0; })
=20
-#define domain_clamp_alloc_bitsize(d, b) (b)
-
 #define PFN_ORDER(pfn_) ((pfn_)->v.free.order)
=20
 struct page_info
diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/m=
m.h
index 11e9f26bf0a5..e5ea91fa4d0c 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -292,8 +292,6 @@ static inline bool arch_mfns_in_directmap(unsigned long=
 mfn, unsigned long nr)
 /* TODO: implement */
 #define mfn_valid(mfn) ({ (void)(mfn); 0; })
=20
-#define domain_clamp_alloc_bitsize(d, b) ((void)(d), (b))
-
 #define PFN_ORDER(pg) ((pg)->v.free.order)
=20
 extern unsigned char cpu0_boot_stack[];
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 08153e6d6fa2..17ca6666a34e 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -621,6 +621,7 @@ extern int memory_add(unsigned long spfn, unsigned long=
 epfn, unsigned int pxm);
=20
 void domain_set_alloc_bitsize(struct domain *d);
 unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bit=
s);
+#define domain_clamp_alloc_bitsize(d, bits) domain_clamp_alloc_bitsize(d, =
bits)
=20
 unsigned long domain_get_maximum_gpfn(struct domain *d);
=20
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index b968f47b87e0..426362adb2f4 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -641,4 +641,8 @@ static inline void put_page_alloc_ref(struct page_info =
*page)
     }
 }
=20
+#ifndef domain_clamp_alloc_bitsize
+#define domain_clamp_alloc_bitsize(d, bits) ((void)(d), (bits))
+#endif
+
 #endif /* __XEN_MM_H__ */
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 15:22:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 15:22:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174946.1499889 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP0Iq-00076Z-2D; Fri, 28 Nov 2025 15:22:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174946.1499889; Fri, 28 Nov 2025 15:22:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP0Ip-00076K-Ud; Fri, 28 Nov 2025 15:22:31 +0000
Received: by outflank-mailman (input) for mailman id 1174946;
 Fri, 28 Nov 2025 15:22:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YqkP=6E=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vP0Io-0006eN-8a
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 15:22:30 +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 0d23c505-cc6e-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 16:22:28 +0100 (CET)
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com (2603:10a6:20b:6::31)
 by AS2PR03MB10087.eurprd03.prod.outlook.com (2603:10a6:20b:62e::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Fri, 28 Nov
 2025 15:22:20 +0000
Received: from AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4]) by AM6PR03MB4600.eurprd03.prod.outlook.com
 ([fe80::ec82:849c:dc0b:f6d4%4]) with mapi id 15.20.9366.009; Fri, 28 Nov 2025
 15:22:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0d23c505-cc6e-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=abQTVVIID8XrrDHU9N+ItVsV96YKf4kW+Ay405r3ArPwYPOrH4adWiByRMXkZbQil03Rd2gHNpegxwK+eBeNrW5UOYw8yA92pzD0BoZnkJY5c5jQ1Y7LEr11ipOZ3nvUY2AbgZwRgLp4j2V06WbTEW8bYm5i8fLQmT3kZKkVabCoIsFAr6Hrk6mb8jJI+d9xRr6oZIul8wgKoyhyhP82IE+Ioaa9Lskypvrv6auemW/ugtDLqnB/rVh/5OCDMNDoXK87cAn6soO2M3eAGJLYd0veuWp/EMHiZjoAWJXCAJQoHWRPrEM/gQHUvbSw1vCTBH19AVQ2WT62rZrDmNk+xQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IlxVuTYs1NfOMFAFsbcZYCqFRuwcinV7B4ktZgAo3AM=;
 b=cGA8m0SLFJP1nBddAyCcoPrSpPq5UO0X7pglkpgUIKfB4+FZ5CH2w+kRLboOoMIfjHc9utudNr9PUTcSz/zUCkRRL18sWQTv8OCPOdF67RoAwqiA9V5cJQR26f1QeQScnrHXSjO0PnURQOowfu5wCYgWibnrkYwbR6JGBy1BJeEV60qgX07q20Cp7yuYONeYl5tax0nhKKZjLmSDUxBAoWcSqBUx0iNtKhaqY3WNkJN6HKCfpx/tOWrrXixxhNu+LIgK0z3VisH2OwPeaTj4fZgPzAfpUfApQ4LyuT1LenlRT9AulGn7/4HjH+stw3aewosCuz7EcCD9dMWaVpXL7A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IlxVuTYs1NfOMFAFsbcZYCqFRuwcinV7B4ktZgAo3AM=;
 b=dn8/gon1Xyff7WG8PHcQH+EY9i/hvpzxlg8qDPjns4LUTA1TSx2Ur6YsiJoiVlmIvmzKCmy7UQ7iNgo/3PMXNCR6xJKyaWq3f5n0cXZJzCbFMBsRtS3NJtyC1m0SjMLCgORS3dMFuuyi/dHWULmxViKiVBvR6oNq8b+VEYfgtVrk2se8vmzEXbo+e6pKcXMdBs/65NefsvfhUNeF/VYowtCJ538nYWGrCvOiPoYIWagwA2QnPo5jIdk9uu9RG/E6d0whfu08gRPVuTOJxYhZ68e61+tL7KXIaAC6jerXdV6KNFGrhTmFmTefFuYUsXWUhoNMuA9yCmkIo2xq/+XSxw==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, Connor
 Davis <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>
Subject: [PATCH v3 0/3] xen/x86: move d->arch.physaddr_bitsize field handling
 to pv32
Thread-Topic: [PATCH v3 0/3] xen/x86: move d->arch.physaddr_bitsize field
 handling to pv32
Thread-Index: AQHcYHrJ4PIs75rE1EOUoOM8oMNBwQ==
Date: Fri, 28 Nov 2025 15:22:20 +0000
Message-ID: <20251128152218.3886583-1-grygorii_strashko@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AM6PR03MB4600:EE_|AS2PR03MB10087:EE_
x-ms-office365-filtering-correlation-id: f0934744-5114-45eb-05b7-08de2e91ec58
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:
 =?iso-8859-1?Q?5UcfTq14kTLDViR/5hktnHE9k7o+7lq3X1AzH/SL5LQUaSS6rOwEXX5VOi?=
 =?iso-8859-1?Q?VQRKjbP1LiTLDsKb7yxacD4POL65a/ghKRsMTjuNAoosVou3vok83hRSb5?=
 =?iso-8859-1?Q?oU+o3X/YfqlrVm7FgUDzpDb8CwTqi/fZnTYrmpoWujUCtKwM48uUORbVhV?=
 =?iso-8859-1?Q?VjRcNjt2bRJVr+kU7qOD6Yal89SoHLqdB9VvcnStA4VcoKlrCwYVbFE0M4?=
 =?iso-8859-1?Q?m7hpUYLUBkiWvG5G+nxvvs2c8rb+3pc/qeGOBgKPHfdAkZPf8b2PlcTjCz?=
 =?iso-8859-1?Q?uRjOJxW0akAAMdEUp34FHF57x7WcX+oH5Vs4CfJ6CD/aszqO/vfWF2PU36?=
 =?iso-8859-1?Q?YtevPI3ek0+rz7XxMxypY9aXsAuIIiNMCtChU359UuxHFIXkVq4lJ8jWUk?=
 =?iso-8859-1?Q?eXC4fDt8IE9EVLWSf+c/uvmyv4Y079gA7xXl0ktZ3Ni60Uo318yXk4Ff4b?=
 =?iso-8859-1?Q?1eQbga6BFJi54SR2aiU6VoPOe3624ytgMHbkicuyp6RBQl2IswaTNz+sYW?=
 =?iso-8859-1?Q?kuhUDZG1FPD8fRKLtZY6QVDMIRmop1fIAKadMQzBGzNRpzpeQ1IdukBhZm?=
 =?iso-8859-1?Q?p6a16kKmjSlms+PGOAYTitZR+CnXzCCDrSXoNhqf7H/0sGZMulXp7pc8PE?=
 =?iso-8859-1?Q?Pj1vpKS7crqV4KHRTUD5yEg61svkmfVdAGTdPn/Mv/BZyXNbJt3tCUVtw/?=
 =?iso-8859-1?Q?O9mjPtbxI7CnlEEdHwuRgaGPYXb11D+YtS7SrNiC8ljSjEpkoBSODZKRJo?=
 =?iso-8859-1?Q?PRaNKd0PpiBwl4r0E2wtYuEi+y9zpXQdQItJfEFGWE1liPKUr6GZiNJlB2?=
 =?iso-8859-1?Q?baAtlZbxyNTJ8Hm4DEXMFM2PpJNNfPoEhlTXHgfTdtjzDU3uqFiGs78hZT?=
 =?iso-8859-1?Q?Zh4jRX87d2doFr1aBWxUiurue6Q8Y2+4cDvrRhD+r+O9+LOUYCr5goNfU+?=
 =?iso-8859-1?Q?FQDmPctthjhkvq3wv8ZS3bIXkyfBBX+/ScOBdXRZdLuSrXdvZowqevzIKB?=
 =?iso-8859-1?Q?//5OSkqXOqIRdioseKulGX0zMptqDwwQlPy5mwVvwOz7s2oPttxJGOpAcg?=
 =?iso-8859-1?Q?8QDO7MG3bcp6aKiyk3nRW+WhukPuiarEP4GvPB6QVFV66LmVIymnwNy3jj?=
 =?iso-8859-1?Q?TZIoj+XL5xGNJZ5fbyO8mcTZVojRs8h/znev+mpaNrmI/B+MyuqRreMUzj?=
 =?iso-8859-1?Q?qHMiNJF02ku8bnRn0Q1p6DIZ37sr3dxo9UqOHUphH2md0FJHJTrj8zAJ/V?=
 =?iso-8859-1?Q?Ic1952kTnqLQC5GX8bnQafsMQqrUnAhFYbBDTnLfvYM8rm+aFpc7NYqmWR?=
 =?iso-8859-1?Q?DHdtZJlTt0Pc4kUvQ6sFyXXMSFsiJmPuSC0MZFV0GlOyB5kYP+vvDoAysW?=
 =?iso-8859-1?Q?eh3ZUgfpMlx3AHpC4WJAEKtHtogaOPp+bL8qxZqBMnCNTCp7qI6n51JhJR?=
 =?iso-8859-1?Q?RNcZUdLg5/J9Ogb8y6xzcuUOeFt6SUFGQ5OZVUHKFOovlItBX5hGTH7XqU?=
 =?iso-8859-1?Q?7mPIvacaM9CMwqU0up7yjagyW3GJ615u2FAPqyHC8TXmbb+MUukrz5M+sw?=
 =?iso-8859-1?Q?9tJSO6mCONDD9XK6yCBV7mlHN9Yn?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR03MB4600.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:
 =?iso-8859-1?Q?PXCndH8wHfm064pRAP+vGFfcYXIc2ZLzR7Bs/WWHX3XNMotOljhf/M03rb?=
 =?iso-8859-1?Q?xbJ9d8mIp1vEqwvcTI4Ax8F4GfIgYTjr/Lx+kG1t0NP8HY+3eji4FFou4N?=
 =?iso-8859-1?Q?fk16n5oOR0gP9IVqljbdHUPpm7j7chokTzJQq8I+OwIvdVQhhx4qUKnDSG?=
 =?iso-8859-1?Q?BUCxKjWicFLg+GB7sdGeHAXtdq6sQCNFZGGU3SHWg6UrN5XMbpXFsb408z?=
 =?iso-8859-1?Q?rmZs+MTSsw5EU3IXajsb9mtqQ8rTd54rBC0giftLqR93+I7SgDft67gqQw?=
 =?iso-8859-1?Q?OE9IIGtrlg/vSPneuMa4noapOKdBaBdvWyMtxnVep1k48+c2k8NPdPducA?=
 =?iso-8859-1?Q?aYu2vm/vo8Uvjw6vKl+sz7TVEJ5IQMv76ba2ubyGXKTjItdzNdmalmKJCp?=
 =?iso-8859-1?Q?begLn0PAENMjprsdzbWC+lZ0+bzVzmb7ZvyGo9rP+2G7ordVfRMFr9kTdk?=
 =?iso-8859-1?Q?At1BujJoVBr1Nig1Bv8M/AkFJZYGhiDIcTV25ON20wQZyQour0OT0pfNf8?=
 =?iso-8859-1?Q?1ET9OqX5kLBnh7fc/tNYyeOXJpJyspqhUc6rLrBMMtBQgcvWaLhuyBpJpm?=
 =?iso-8859-1?Q?gUIYpaYKIa43TKxw/4lfLIpMF5qJ2mDLodkppMHiGwH3g5alJ3fsKb050Q?=
 =?iso-8859-1?Q?VhagttqSxpsCyrZasqb+aGhk7jcF5sPBD7c49a/hjzatFegW40H9EV/9mb?=
 =?iso-8859-1?Q?1mWBR2Ce/zrYfXB5S8O8ESBAjteJsOxuJTS2jPktZtfgiFu4XCmycXnUKK?=
 =?iso-8859-1?Q?dlPzET2csgQwYVeU+jfMJc+4oJV0gsDr1x6e2IJ5fvxbSrbG25S9BZ0C6E?=
 =?iso-8859-1?Q?TWl68jbjqjxzz7brW/9f2LLWa+9OnhiSQFHGqoCP8m9p/rVI0itbQYJzIS?=
 =?iso-8859-1?Q?dQYK9xek4TGtFUCwe/F/49tNbdjWQYsQ6kh79/kGotpTc8o+dctZjc3HwA?=
 =?iso-8859-1?Q?ESMiGGfBZ9y0YdI0x/nyVcDNWeCv13oWw+UXQdgUja4IPeXELykDx9Nm2L?=
 =?iso-8859-1?Q?20Xtt33oBxojmNXrxraYR7m3BzuuJUoPhYLS8mbK44MAbWxZZz844f7OHc?=
 =?iso-8859-1?Q?Zo/SYHFtTgbNJs4cHKRTnCQOwvcns8sN8FwX2rUM5nStnGvMZohYXDHQ9C?=
 =?iso-8859-1?Q?7mozkIU00ErFwxVbNhQqcIVZ/s82iC7vgl0M9En9vPtuECNBIojvU8KuDO?=
 =?iso-8859-1?Q?+oOIGwoyI/7Vx0i8BS5Vmr3L9XBVrJy0hZVYy5yICYkP+S5m2ZUv239HbD?=
 =?iso-8859-1?Q?qOXkNHhMN3iiMJoBdSVOZ/2YJzkWXjkyYfewyaKzR/kOmzuDicqjAlXAIQ?=
 =?iso-8859-1?Q?ySFzN2O9Giy8GwWBngZT0dsJzDhr2TagalwC4aZ81YTtb1u30YBDNnXyKk?=
 =?iso-8859-1?Q?soqJxkqE4ChrtfVyNHpFfxOvoe3V2GMfX5PoWpUTtiT8mupVm8TSfqx7L8?=
 =?iso-8859-1?Q?zaF5azuK68DrCjkkm24QFILRyyXFpYIew1p4kRMW0DIqmecppqKYqTbdlX?=
 =?iso-8859-1?Q?f61d9aTlq1Bcp6luYdYytI5KBzZIOtLMWIJJa9ZRScVipZf+W9Ov5q0da0?=
 =?iso-8859-1?Q?lBjKGAK0oAFlxDCM58Lr24YwTBPWTJT+NrEcexDrGVCcj/t6jNSApcm0bf?=
 =?iso-8859-1?Q?7tj+jq36xHrLzI3S52P3R19bRSsUkJva/fB8V7TVVY4/Fhyc2B6LQP8Q?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM6PR03MB4600.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f0934744-5114-45eb-05b7-08de2e91ec58
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Nov 2025 15:22:20.3232
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: YvYp0+NGmGiZq/NgVgc3+ueQx3jwNO5yVjR9mQbk8hC6bglMYIco2OSqduB1zJM4uqvcCJGE5xOl6h9H05HxFAXsnion/f7M3U9m9ywYGN4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB10087

From: Grygorii Strashko <grygorii_strashko@epam.com>

1) arm/ppc/riscv: drop unused domain_set_alloc_bitsize() macro
2) add generic domain_clamp_alloc_bitsize() macro and clean up !x86 arches
3) move d->arch.physaddr_bitsize field handling to pv32 code

changes in v3:
- added tags
- changed patch 3

changes in v2:
- split on 3 patches
- move physaddr_bitsize in struct pv_domain
- make minimal style adjustments as requested

Grygorii Strashko (3):
  arm/ppc/riscv: drop unused domain_set_alloc_bitsize() macro
  xen/mm: add generic domain_clamp_alloc_bitsize() macro
  xen/x86: move d->arch.physaddr_bitsize field handling to pv32

 xen/arch/arm/include/asm/mm.h     |  3 ---
 xen/arch/ppc/include/asm/mm.h     |  3 ---
 xen/arch/riscv/include/asm/mm.h   |  3 ---
 xen/arch/x86/include/asm/domain.h |  8 +++++---
 xen/arch/x86/include/asm/mm.h     |  8 ++++++--
 xen/arch/x86/pv/dom0_build.c      |  7 +++++--
 xen/arch/x86/pv/domain.c          |  6 +++++-
 xen/arch/x86/x86_64/mm.c          | 20 --------------------
 xen/include/xen/mm.h              |  4 ++++
 9 files changed, 25 insertions(+), 37 deletions(-)

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 15:33:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 15:33:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174987.1499910 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP0TW-0001rF-8r; Fri, 28 Nov 2025 15:33:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174987.1499910; Fri, 28 Nov 2025 15:33:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP0TW-0001r8-61; Fri, 28 Nov 2025 15:33:34 +0000
Received: by outflank-mailman (input) for mailman id 1174987;
 Fri, 28 Nov 2025 15:33:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=q4nf=6E=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1vP0TU-0001r2-63
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 15:33:32 +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 9134a131-cc6f-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 16:33:20 +0100 (CET)
Received: from CWLP265CA0326.GBRP265.PROD.OUTLOOK.COM (2603:10a6:401:57::26)
 by AS2PR08MB9366.eurprd08.prod.outlook.com (2603:10a6:20b:596::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.15; Fri, 28 Nov
 2025 15:33:14 +0000
Received: from AMS0EPF000001A9.eurprd05.prod.outlook.com
 (2603:10a6:401:57:cafe::f8) by CWLP265CA0326.outlook.office365.com
 (2603:10a6:401:57::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Fri,
 28 Nov 2025 15:33:12 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001A9.mail.protection.outlook.com (10.167.16.149) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.7
 via Frontend Transport; Fri, 28 Nov 2025 15:33:14 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by DU0PR08MB8138.eurprd08.prod.outlook.com (2603:10a6:10:3ed::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.15; Fri, 28 Nov
 2025 15:32:08 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc%5]) with mapi id 15.20.9366.012; Fri, 28 Nov 2025
 15:32: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: 9134a131-cc6f-11f0-980a-7dc792cee155
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=sixJwASO482la3VNreDAH3y/zu6kwMlQjr8cz4kfEGk8AX7WloDjEbNlbQGa9LgWiSAOIBdh1gGkyrdfr0yMg9H+h7aStlrZAmU8gKct+4cO5hLK+9HonBKOUD7YNVcGPVoBa565QYvjOqW+nYKiFe4D9l9C7Xys0UvF0e9snsrkhNkQiuTCEzhk9nd0YycJqk+heWvzhzdWaqY7Tau7z9QAPlsxQvErXiCwR07RQSUJzgNgAurifOP+J1/995fm9BgsLGA2VXH423t2P0yb3hM5Oaxl6K2TbJmJb/NvctFyFnD0SDO0rOasywmi2CKqCLnaLKiWJ6Fkl5fo0o2fBA==
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=BVt7tzBPjCdDGSUVzcWmKkm4vG0ubgV9aV5KWaYsjW0=;
 b=kzoqgaIOgAG8i7YESoMSA0KECWboHc58oIDhRGvDwRZMEl4DwuLxsZkTUtDwpAIvN7Cz8zHWQnjqsvQ4jxQJWOG4q0WbN6Lo09ihQESXcU0SyqvUpowfao3Cf82iOwKc3kEV6o0F9mDSKVCopCfcqkShPDWO3F+4ehNFmJA2cIEJdhjGghqFhmEriW2A0ngo15tTYfmEY473oy1f4EYuGVZiNOvtpTtR9hwUeQE9Re6KTTrncrb3BdCvdBFojfNjR/93A4ED9gVrtmlPcxN4krmaILIm69IIlxjYCwi+mjaHXVP7IOHIJ9eekFxfGzFC9GgDnG+C7lUnVrY1wahfqA==
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=BVt7tzBPjCdDGSUVzcWmKkm4vG0ubgV9aV5KWaYsjW0=;
 b=izILt84RoImXDkVTSmQiBPM9R9sic2I5ZX8tkiPHfbdcP3F+6uulHR1ogEOn4moS56wt56kcP/zdUM2bCWrad+uPxLK0Tgt2Ix5HLiCqor0uYvZjx9uu+ytul6kAmKRRPw/BOCEUuGUVaMefy1jpcrl2evDm6w2ZyH41bfoEPyI=
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=sNiPorKUmxYMWA4UVurJ+xfBGRmmbNHsg7Gj1oiMuCKCCaZYxYb7Qq/E0qOJhbbRBo+edkxGaSnQmgofGV+23HOctjM/TJ/VYKLswHEB3pjtnNh9WK1FxOLdLCtFzsCjgOZtzUKZbtRmhx5pY9LjL1t14Oe3rca88Ry3Kru2bnPQnV0ild6fw4DqvVz29OL9EGiZk2rSvxoB2GX5+zZMd03q9NwXypQ3/DWsYm6kgR2bOub15kE2NhrfgSy7nJIuJQUWkN4sKmex4ExKNB22sEB9Aq/Yiq4HhuNXhGkwGY0ZTfLZjMlRROu05+t5G5Qg/nK7bsxZiiQkqEKtb6ChiQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BVt7tzBPjCdDGSUVzcWmKkm4vG0ubgV9aV5KWaYsjW0=;
 b=LcSFwD4TycqiFrp2u/wYsgRmJBF/pJj7rmfIt7AmM58LqVAc/uQTuZuwYtgA7MUT30u8Qr5zAHJbsW2oOrHDso/tL7GQPVBuVSEnfq0Q/W7HEKcjo0Y3Nll45FcOQLtPPhT4QJbLoTz02TOV/qp62NRSBIdEvBXXD4vZ2olFydzCvMekfHJAEQOwoFvYo8zPfvtSEB/+4qyACmk3TRV+EcGSr7M5URQm/RH+OCuc/H2O5CGF//9lgQLWGdGj+PNe5DuzY0J6v4viY6RTvtUlOPPf63l02AeZoDZZA74aynlcTukEnWn0jvc4tAqceiuG+wio8XWAzMgFeMjPqG8UoA==
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=BVt7tzBPjCdDGSUVzcWmKkm4vG0ubgV9aV5KWaYsjW0=;
 b=izILt84RoImXDkVTSmQiBPM9R9sic2I5ZX8tkiPHfbdcP3F+6uulHR1ogEOn4moS56wt56kcP/zdUM2bCWrad+uPxLK0Tgt2Ix5HLiCqor0uYvZjx9uu+ytul6kAmKRRPw/BOCEUuGUVaMefy1jpcrl2evDm6w2ZyH41bfoEPyI=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, Connor
 Davis <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH v3 1/3] arm/ppc/riscv: drop unused
 domain_set_alloc_bitsize() macro
Thread-Topic: [PATCH v3 1/3] arm/ppc/riscv: drop unused
 domain_set_alloc_bitsize() macro
Thread-Index: AQHcYHrKJo3fQNjNOEm0i3u+ucdXc7UINzYA
Date: Fri, 28 Nov 2025 15:32:08 +0000
Message-ID: <9C230C5D-F726-4E01-A897-BC38AE4507D1@arm.com>
References: <20251128152218.3886583-1-grygorii_strashko@epam.com>
 <20251128152218.3886583-2-grygorii_strashko@epam.com>
In-Reply-To: <20251128152218.3886583-2-grygorii_strashko@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|DU0PR08MB8138:EE_|AMS0EPF000001A9:EE_|AS2PR08MB9366:EE_
X-MS-Office365-Filtering-Correlation-Id: 43c1ac75-89a1-45ea-5772-08de2e93721b
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?rtS5mt381abf9AkpwsEmZpyW7GRWpmpQrbKGGItJr56lJ0nsOCE4R0qBQ3jT?=
 =?us-ascii?Q?uIr6YAUAuRWo+/qZfT3lOZiU7QkwA6ZM5svOXE9pPVMYhl1n+CKpqrXuWLuf?=
 =?us-ascii?Q?j2TOJcdaiLJ+0eraZJIny/ckEd07jB36v/OEcjtCOJXJ4TEQlZJYBiT5HsSm?=
 =?us-ascii?Q?lz9AnM/E3uohkiq0ito2MqnHUZBhjPcp19+JBGoHflKS15Lam5uQYC3PkATp?=
 =?us-ascii?Q?9yujPwKKna2ZFXqAHODaBc2aJGMlr4+26IiErwGxxBlZPvvIzaxUnVTNYhcC?=
 =?us-ascii?Q?vCFDry27Nae5P5II4jaT9XtV9JhWeWQhja5Cs/R81/qLQM+Nbo+JjzB0tLrW?=
 =?us-ascii?Q?TlVAx5t8tnRw69STfuyJk3LDeROo1pKX9Bdxtfl4JkKtovMnVMGU6xWZhJr4?=
 =?us-ascii?Q?C9H55NacvmcqrP+cxVsOEbr6mLSQytQs7bFwuGV0Qfyhr5DoeVyJSIiT55Rb?=
 =?us-ascii?Q?cyW72rkTOjAyViUOlFE0K6WxpbVIQOEeT3jLRr4kDxBP/6Y5pDaDDV3pTZxQ?=
 =?us-ascii?Q?2RH6seZDrT+KS4s9HA7hsW+PYingBewTlwsz0ro1OV3SuwTZL+ZW5/Ail/Ke?=
 =?us-ascii?Q?sHYFul9/P541bib+36FBeCnq25B9sSVnzi6UyH9emSDjGoiZeMm9gW6VpgFz?=
 =?us-ascii?Q?Ogzk3PdDzLiWIY3AKlTnQ4srzAEfmXIKVNH3BGmRVGSEWflsSdhftINmcQCZ?=
 =?us-ascii?Q?nBf+OElT79dE6nt5q3sF0qUe6vhLXGre62/6hm6gCldnF1VgaiK+6vYwtOuh?=
 =?us-ascii?Q?Ubu0skdzarN26j7hwAahlsdyHqeHzSUPrUcXN9DA0utwQwbgi/ilP0Mv58t8?=
 =?us-ascii?Q?ZBLJSjk1dsbSSmT/7oUomyhe/SYiIl7KUve5wmWZ4LRv37A1iotmK1aJ/wYS?=
 =?us-ascii?Q?h2mmHkVbjKPzD1MgL/ole0gHaOfs5tg097pSftZKHDWbzmQ9GVsixW1Uya4l?=
 =?us-ascii?Q?kAp3ukpFiEfO+XqEdzcrK3mHDegpSksEVOmKcA69hWZhvJ9An5BiDbbr0xYc?=
 =?us-ascii?Q?HLfBcCx6Y+XkHoPp8kRaDVeRhaF+zlOyYpLkrO1f1wTp3Mf/4PpMGf6Fqwo1?=
 =?us-ascii?Q?vjLjU4I9btFe72uo70J+2opARRpklN0iAwWwo/RDg2cUuu+Gq5loaixDSKXL?=
 =?us-ascii?Q?1NgKlWTmcBJiemhBDCoU6DmrSF68YSPYDOgU1Q3uATfyfMC1WYad5hfgJcG8?=
 =?us-ascii?Q?0E+XvTDQkBkJIp1vLAe2OEj5fDQqmd/dcG8D6tSPjGARWPsOriMxC6JcWOOY?=
 =?us-ascii?Q?eVqI3N3Lld+/p83YGBcpCR+r+02Ulgj+r15FdCKEWXGDiXR3yv8op6b2eJrf?=
 =?us-ascii?Q?ln4dROE+IRcZNj9jgxLfqm/h2v1LvhiUcw2OJQ3dcvr0aKmjdZwqJi91/hu5?=
 =?us-ascii?Q?uG1pGdKux4acizeybNbNTF0d2+oCZiywdbwhX56vHxx0Ma9sQvMPl2i+eRmc?=
 =?us-ascii?Q?Zw3MPN3A5AhOYuWd8aWszlbhHuC+KAuwn1aaPfNPqBfs7Eu4gYcTzsZ7F+2+?=
 =?us-ascii?Q?RWH0ehfNncQLHiytFU9hDzvRZZRH6WAigmVF?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <A96553A46041DE4A9BFD988710B0A406@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8138
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001A9.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	d0722d33-abd4-4218-6e4d-08de2e934b24
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|35042699022|82310400026|36860700013|1800799024|14060799003|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?qbRTQLwUINljywhfbLJdveAlvcZKKlocvLm68ds5Z13KUro0yCZKZXQDqs86?=
 =?us-ascii?Q?ZHw53pqzszv4uT/RVXRmpxPzc2jSgkx1G3N2+50r/vtzjgG/NjYTaHh8j5mT?=
 =?us-ascii?Q?4ypXiGFoh28+lwQPz/KynqGrNYhQjN64JbAHpEoAEAXPR0amwT8WEZONaCna?=
 =?us-ascii?Q?E7HynYIGRND26NGGoMC7KeYrsPfusZhmPFjC+wfQ7CY1hlHZcVNcnsVyJcRW?=
 =?us-ascii?Q?6OQyQ7cSbgJmoCGCJcU1St7OYkAt4oE8RR+JY56Z/WoitdbYKAbEAc3b4/4t?=
 =?us-ascii?Q?u2enwg2P01n4KBq67FK1Yx0t8yNdK2j9NzjARP2R9gDK/enrsL7+1Yxeim1+?=
 =?us-ascii?Q?JcI/dV83VgcKS+hizhNkR8NTPP9nV322ECOrem+LtYNwtASSaHxMn3ZEofzx?=
 =?us-ascii?Q?tP4Oyz6+UvQZE5uboQr3lCET/ggNbB/unUqHMvM49RjJV5CdWSbXEBkorxB4?=
 =?us-ascii?Q?wSHykPlYfLC9lX6hRcz+pTY3bfpAzIKkvWEnkw0ORrqlKwsDL9zRFN736UX1?=
 =?us-ascii?Q?CzMVrhwwf7mx3dfTngvtH1ZneOPYzYyCoOPFkWToi4cqLk7VXoNzw80eQYjb?=
 =?us-ascii?Q?Udw/e/8lrkzUENmDFoW6Mg2TAUEjZ5dduwZb886QP1tptaFgIIEAkrpb8sLR?=
 =?us-ascii?Q?o+NHgOz7p2UZI6xx3KJ13jJ+6XaBk6w4qEjuf2NZVNIFU7SKpvSo/IyAiDmq?=
 =?us-ascii?Q?/sanY4idr/ahiU9nQpFVjXDQFMxhJ86AB4LgsE0eLC8Sc80At2kCb+cvXFct?=
 =?us-ascii?Q?AysZO8vi+vP1Ubd7t9w0RV/Jr4R1UiG+APcN5eSlKnTZxFROnQmGTp6z1/hN?=
 =?us-ascii?Q?azqCsIH9HR91zFETVLISxUe+QJ50hsNvHY0yJnz2mKWAHKVmbMBv9VA+TiWO?=
 =?us-ascii?Q?OseqA4GLY3TPdCu4/itHusAb1rPW0YLLXuIPLqAQSVzOIlfOIfTqJ7TPyKRy?=
 =?us-ascii?Q?dB9B3sQuULC0TFIgEydgNvIJoU36S/91q+7wQ/LKRSxpyog1wPtfgIHy8wqc?=
 =?us-ascii?Q?bDS7J83DoBhtEIH/3EjTKY8aUKP5nVAtfAOouevlqYlaFjXENQ0UUcKxnN6G?=
 =?us-ascii?Q?Sja01SlDlWHOWP2eH3pDk19uJoPiaieGcrEFcjQWIrfTf50NSn/k8E4bpSyj?=
 =?us-ascii?Q?n3QES7ChJLrXziCj4nd3YvzPJF45j3jtuN6V7JvEMFqj2V34vqs4j2sm4Z7o?=
 =?us-ascii?Q?b3vme6qxSQMNNDo5z3OWDz6kGdRAG6WEX7gqDXK61Eg0+aKDb2TBOfSKGs7T?=
 =?us-ascii?Q?V0ejO1+FaT8Ja92H2uIgO437aqPfZvO5/K/+AXxaoAEEJza28rthaM/maZfx?=
 =?us-ascii?Q?z+FV7J4lddf1MhN0bNlS2MgpjHThZJKwGEwetAFtnMRvlsXf+l+kdBy8bLFE?=
 =?us-ascii?Q?L7DDFbvWNaASVl0GcMuSs95mVIzFNEKzfboJhwLBWCCJgWswjrN1yFvjylN1?=
 =?us-ascii?Q?L1hfEx+S5q2VV0XHdCgUPittGlOcfEQejxTzupY4sqIRG5OpdnvKdQOBvKuj?=
 =?us-ascii?Q?4UApilbKtTjm/5ov543A20FXdynXoOQLXLRfEcNChahAf8ICkTQCLpIJuw?=
 =?us-ascii?Q?=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(35042699022)(82310400026)(36860700013)(1800799024)(14060799003)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2025 15:33:14.1743
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 43c1ac75-89a1-45ea-5772-08de2e93721b
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:
	AMS0EPF000001A9.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9366

Hi Grygorii,

> On 28 Nov 2025, at 15:22, Grygorii Strashko <grygorii_strashko@epam.com> =
wrote:
>=20
> From: Grygorii Strashko <grygorii_strashko@epam.com>
>=20
> The domain_set_alloc_bitsize() is x86 PV32 specific and not used by other
> arch or common code, so remove it.
>=20
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> ---
> v3: no changes, added tag
>=20
> xen/arch/arm/include/asm/mm.h   | 1 -

Looks good to me:

Reviewed-by: Luca Fancellu <luca.fancellu@arm.com> #arm

Cheers,
Luca




From xen-devel-bounces@lists.xenproject.org Fri Nov 28 15:34:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 15:34:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1174999.1499919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP0UY-0002OR-Mi; Fri, 28 Nov 2025 15:34:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1174999.1499919; Fri, 28 Nov 2025 15: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 1vP0UY-0002OK-K6; Fri, 28 Nov 2025 15:34:38 +0000
Received: by outflank-mailman (input) for mailman id 1174999;
 Fri, 28 Nov 2025 15:34:37 +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 1vP0UX-0002OC-Bu
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 15:34:37 +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 1vP0UX-00Cvby-0k
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 15:34:37 +0000
Received: from mail-vk1-f177.google.com ([209.85.221.177])
 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 1vP0UX-00G5ft-0A
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 15:34:37 +0000
Received: by mail-vk1-f177.google.com with SMTP id
 71dfb90a1353d-5597330a34fso1365860e0c.2
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 07:34: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>
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=sSQ3Fv/mW9lJUG/Ma4PC/hxJQ44xtIU/ZEFLe1Tq+3w=; b=biW0alE
	Kvhh9t/0RwQKYE6cvg1vjdEfOqYxzNyWIVJwsEHrNtAnZca0me4Kb/cn/55R8MUN+59hIrGVAcjKB
	F47f2h8CaIZwueWYLE8QpA9YrSTUh2U373vwwxDecK/u12oDtVoIErmupsmAn+FsORFu5YIKRxpfO
	5S3V44AtaE=;
X-Gm-Message-State: AOJu0YzieE1UZIZ0axanIIADP27F2BkyU20or1FCWu/Vj8XbsPjAwmvD
	eTZjOIE/vk27/Eaeio9CJY03jTJ+wcGHB92Skx8+PTHQrszICpuKtlaD6PVZXZoesOfREudiiKh
	Wo5RiPaiL7MFuuqeO7URXKxmJp0XMGdM=
X-Google-Smtp-Source: AGHT+IG4lDasd+VJkgfDoPl9lGSDO006ODagf5uyfbc1VDPOWQ2QAKa3eQGwJCQVoB/6VnemJ53wPCnxdY31yJRII9M=
X-Received: by 2002:a05:6122:20a9:b0:559:85d5:bfbe with SMTP id
 71dfb90a1353d-55cd76e2796mr5657038e0c.15.1764344076760; Fri, 28 Nov 2025
 07:34:36 -0800 (PST)
MIME-Version: 1.0
From: Cody Zuschlag <cody.zuschlag@xenproject.org>
Date: Fri, 28 Nov 2025 16:34:25 +0100
X-Gmail-Original-Message-ID: <CAJbE=KwEKtVKVyWHUaT_2pi4mGx2vCSK4kV7w-fMJLzkb4zt3w@mail.gmail.com>
X-Gm-Features: AWmQ_bkjDx_XM6DmnQvbdeHx4O63ARSzVHUwjkk1VpQ_xdWlmFEfulHD-1C2Hbo
Message-ID: <CAJbE=KwEKtVKVyWHUaT_2pi4mGx2vCSK4kV7w-fMJLzkb4zt3w@mail.gmail.com>
Subject: [ANNOUNCE] Call for agenda items for December 4 Xen Community Call @
 16:00 UTC
To: xen-devel@lists.xenproject.org, xen-announce@lists.xenprojet.org
Content-Type: multipart/alternative; boundary="000000000000f4fda00644a95d5e"

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

Hi everyone,

We=E2=80=99re getting ready for December's Xen Project Community Call on Th=
ursday,
4 December 2025 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/1RmqVAU258OzT3BYzYw2bg8f/
   - 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, 4 December 2025
   - 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=3D2025-12-4&sln=3D17-18&hf=3Dundefined=
&c=3D1958>
   - Link to Join the Call: https://meet.jit.si/XenProjectCommunityCall


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

--000000000000f4fda00644a95d5e
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 December&#39;s Xen Project Community Call on Thursday, 4 December 2025 =
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>Add any =
proposed agenda items or missing action items:=C2=A0<a href=3D"https://cryp=
tpad.fr/pad/#/2/pad/edit/1RmqVAU258OzT3BYzYw2bg8f/">https://cryptpad.fr/pad=
/#/2/pad/edit/1RmqVAU258OzT3BYzYw2bg8f/</a></li><li>If any action items hav=
e been resolved or are no longer relevant, feel free to remove them from th=
e doc. I attempted to clean up the doc, so feel free to make any adjustment=
s.</li></ul><br><b>Call Details:<br></b><ul><li>Date: Thursday, 4 December =
2025</li><li>Time: 16:00 UTC (agenda begins at 16:05 UTC)</li><li><a href=
=3D"https://www.worldtimebuddy.com/?qm=3D1&amp;lid=3D5368361,2988507,512858=
1,2643743,100,1850147,6&amp;h=3D2988507&amp;date=3D2025-12-4&amp;sln=3D17-1=
8&amp;hf=3Dundefined&amp;c=3D1958">Find your local timezone here</a></li><l=
i>Link to Join the Call:=C2=A0<a href=3D"https://meet.jit.si/XenProjectComm=
unityCall">https://meet.jit.si/XenProjectCommunityCall</a></li></ul><br></d=
iv><div>We plan to open the meeting room at 65:00 UTC, but to allow time fo=
r switching between meetings and handling any technical issues, we=E2=80=99=
ll officially start discussing the agenda at 16:05 UTC.<br><br>Want to be C=
C=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+/">Si=
gn-up Sheet</a>.<br><br>See you Thursday!</div></div><div><br></div><div><d=
iv dir=3D"ltr" class=3D"gmail_signature" data-smartmail=3D"gmail_signature"=
><div dir=3D"ltr"><img src=3D"https://ci3.googleusercontent.com/mail-sig/AI=
orK4x5nkRDCOFJDJAv9aMXdZ0mghItsp3D36JrwBCQtitBSW_0NeDS6mBmJ2F4vZVE2oBOqnY6I=
aJUrl12"><br><div>Cody Zuschlag</div><div>Xen Project - Community Manager</=
div></div></div></div></div>

--000000000000f4fda00644a95d5e--


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 15:37:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 15:37:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175011.1499929 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP0Wx-0002zu-2k; Fri, 28 Nov 2025 15:37:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175011.1499929; Fri, 28 Nov 2025 15: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 1vP0Wx-0002zn-05; Fri, 28 Nov 2025 15:37:07 +0000
Received: by outflank-mailman (input) for mailman id 1175011;
 Fri, 28 Nov 2025 15:37:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=q4nf=6E=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1vP0Wv-0002zh-RS
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 15:37:05 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 16780e7f-cc70-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 16:37:03 +0100 (CET)
Received: from AS4P195CA0030.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:5d6::17)
 by AMBPR08MB11654.eurprd08.prod.outlook.com (2603:10a6:20b:737::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.14; Fri, 28 Nov
 2025 15:36:59 +0000
Received: from AMS0EPF000001AB.eurprd05.prod.outlook.com
 (2603:10a6:20b:5d6:cafe::97) by AS4P195CA0030.outlook.office365.com
 (2603:10a6:20b:5d6::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9366.17 via Frontend Transport; Fri,
 28 Nov 2025 15:36:53 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001AB.mail.protection.outlook.com (10.167.16.151) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.8
 via Frontend Transport; Fri, 28 Nov 2025 15:36:57 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by AM7PR08MB5510.eurprd08.prod.outlook.com (2603:10a6:20b:109::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.16; Fri, 28 Nov
 2025 15:35:55 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc%5]) with mapi id 15.20.9366.012; Fri, 28 Nov 2025
 15:35: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: 16780e7f-cc70-11f0-980a-7dc792cee155
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=BT5MlMxc6AqzRyUcC1bFeML1/tsREyaMGXZcLP3EQjhKdMVRPhvwaCoGhTpm5bfwJph1Z14kkKxV/I0YQ15DfJgw6jJHbJsLwti514Z/Mhf/tV3qWP+dMkEtxqGdv8tHz8Ham0YIe6POZfq0tF3U0iPnC/29nTZKvvCTbqK8PqAe0b/E9aWVtseLJIatmAdG2KJfdsF4/b3xMGlXQ1+yMBTRM6P8s7nRiu3o0XVWl9WnoCur+f9IE4bKUkVs6Cp0r1Oc0n9usssSvQgsdKkl8uWO+yAMJY3qo5p9J2QCvK1LPw3eDzEe/5Ptsv5WYS6c+Oxq89Rj1omFksUOlEeHoQ==
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=ZQS0E5j3qL7kNHEc3yf8TEfzNZMqyFeb0sE6U/bCnSg=;
 b=YsKvBXYCXylVkB2NXtBqw2i0FYbGAhkoguBIhnlE16T0Ou4vIrZCLVtXap6OZ66vDlUSwZjYsGw8/pAeU4DPTZ8igtT80SnEZ1zffgvPpgzucgsweNAWmVCqjwL6ruRBrMBUH7VxP/RG572KhqUS4kQqZekG/tlpiwPR0Uc21uStyoEYxkxwKX98Egf/FVNRksVzpP6X0TictOVSoexq2k32IN0WBNkc4Bj/tDKDgcjLhfDxpOxtFNCoXKnBHESpBvRMGChCYS1+9qKVk5fTBBs582WuBEjM0qZ6k1cILKmNlF0JU+W1Z8ejB6mbU1mpVuGT12sS8ZHB1LyTNci1nw==
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=ZQS0E5j3qL7kNHEc3yf8TEfzNZMqyFeb0sE6U/bCnSg=;
 b=d25j9VpQ+2JXqWw8418zTiVrfe26qqYpAmZnQR4/MFXS0H2bAoEZkcWAtbfefEIAk3FSa1LUapw7vZ4rbmo6slXJc5t7n9TuztXpvX5DvybWsk8PbhcRtDit0fL8XduOGFWxk78h1MC6SDvqk6b39rrhzLypf0FMO8zciB05B/w=
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=nXGhNmk4pJ0eaSC8tWy7b/FIECOxhkp7hUilhEc8wFNVuS8heKZgX3xrHgzt5PJlzMdlWJWMENpYY+yB+DnzwNwM4e7YdLjSGbjpyrVZ+ccj3zZ6JM+n6v6XdxsP1/KRuBf0hC+5ZTj/jYfwCzmBWfw7uyDd3aHoprE1ap/YoASin+DCiDp5qK1mlrb1REN5Pagb2KvoohoS4vlNnEQJhK+YDpoFwcZV/qelB403s3cE5Jfswc6j0y1e7gdKgAaRgA0iaI2x0BGvWdX8u83s+IcPRQKtOtUzMoOwSMn5JHfqgHl6twhkh/Tj7RqVuO46s4nJRmgu/KNo13WSs/vRAQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZQS0E5j3qL7kNHEc3yf8TEfzNZMqyFeb0sE6U/bCnSg=;
 b=g8kK4JzyAjIH9NImadDwM66ozEEIGn78MmdEKSY1gEPMLVCpBPFQbK4ILQ1q5OpEUvPmyUR105R5ltHBOUUeVHk246XuR40//ECJMnIKZOOPo90qdr7pzn5L7ZfY86A7ueeJQvfR+pTelDLGCLGGem0vVmef31E266wTwtNWwnzUApAPC25vATwMQRpeqCXKlI5PvMC+1sd2m0MutFrbkgDBA+4yo2QHsNJWxTSi2RsO287kimlVeqHagMz/eVHp0HxFrd31pZXvInQqwosXzFdRH8TcWrVdImImh9N14H8YnzLkhp+/fEIX3C7Dkyp/3hZSUQ+C9wMDjydRJKwcPA==
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=ZQS0E5j3qL7kNHEc3yf8TEfzNZMqyFeb0sE6U/bCnSg=;
 b=d25j9VpQ+2JXqWw8418zTiVrfe26qqYpAmZnQR4/MFXS0H2bAoEZkcWAtbfefEIAk3FSa1LUapw7vZ4rbmo6slXJc5t7n9TuztXpvX5DvybWsk8PbhcRtDit0fL8XduOGFWxk78h1MC6SDvqk6b39rrhzLypf0FMO8zciB05B/w=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	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>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Oleksii
 Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v3 2/3] xen/mm: add generic domain_clamp_alloc_bitsize()
 macro
Thread-Topic: [PATCH v3 2/3] xen/mm: add generic domain_clamp_alloc_bitsize()
 macro
Thread-Index: AQHcYHrKI/DuZxtTF0mX/NaGMgBzNrUIOEQA
Date: Fri, 28 Nov 2025 15:35:54 +0000
Message-ID: <ABA3CC5B-CB70-4DB9-AB52-CA4C2413BD5B@arm.com>
References: <20251128152218.3886583-1-grygorii_strashko@epam.com>
 <20251128152218.3886583-3-grygorii_strashko@epam.com>
In-Reply-To: <20251128152218.3886583-3-grygorii_strashko@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|AM7PR08MB5510:EE_|AMS0EPF000001AB:EE_|AMBPR08MB11654:EE_
X-MS-Office365-Filtering-Correlation-Id: dcdffdcb-8b4a-4d12-f308-08de2e93f74a
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|7416014|376014|366016|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?iso-8859-1?Q?QydtSSsSuIrnqRffBoyrxuE7qJoDTYPRIpGlf02hYwwcW7Ls9N2Fsc4d8b?=
 =?iso-8859-1?Q?0yEjyg94bA4TKr9c+zgIhP7xuc5pkSSuKPJBMO58kksHVlQKeXv3p5BF5u?=
 =?iso-8859-1?Q?tbCZP3E01wd+qN4A3BS4nSOPMRJNTAjIs2KFX8JDYcrnpWQ/wlOallLL/x?=
 =?iso-8859-1?Q?xv7ozi9gJFx1F1jcgAXGrHsseMmZqzcDU1xHZF1ORjzahtsLFf4LGKuC3K?=
 =?iso-8859-1?Q?UyNqdrLtZxQI7qDZ7OgHTkatGagstIE58NTgeR3alBwhdnBfOpgGNO1o9h?=
 =?iso-8859-1?Q?DHXfVQzTQqThFaLY1DnaHx/Havj64cPLVhgpBWqCfJHvYZY8AZLAiH3TVO?=
 =?iso-8859-1?Q?CWNte5k82H24xy1Me2U9R1yilFFU3Mz52aIGYYxhK6Tv3egFWJhsMlAeuB?=
 =?iso-8859-1?Q?oEBScYIKjnhn9WQoF73D3d+CAKrAoU+w5zYsFXq6NFp9OwP3Dzh7yZZ0NY?=
 =?iso-8859-1?Q?HBvgOe1F13nCvY1fIllkyBp7zU6cd9X9iIPAVdR6OVEnFqjS3zGIMLoWYg?=
 =?iso-8859-1?Q?VPSkvLHmpQQhUc7jxggu6YEtm13LkVcO4vQdiU/oNIvK13538AChDMtpIk?=
 =?iso-8859-1?Q?h7Kq8LxASeeTzo0AcYaYzbnwEO4O8ueDePiFLLCNXPV5Bo4lneawyf9RDO?=
 =?iso-8859-1?Q?fRED0MABhV0D8fU1i/bhnsNuYohNZpUNMxS//ILGIbi3ZFkGjMGqpU+Yfa?=
 =?iso-8859-1?Q?6k4Bw7V7RMPmbHg3DVcKNe5SnGvL7XruL9VatgZ8fSJ5ljOM1dKRydDDTW?=
 =?iso-8859-1?Q?8d1Dj7Am2ZYqUG1PoQ5evslItutqrjQ+looKvj9G5FFWeIw4laBSkFVRjZ?=
 =?iso-8859-1?Q?hmeqxkAhwxJQ8cv/i2jFbPtWsAzqoqL5wN2Ck7xyNvWCWiAxjwQWpavyP3?=
 =?iso-8859-1?Q?DHNrHz/SgX56qOllty8OV2gamDX5KCsJC+NWZloGg3by6bj/X+FqoYMh+a?=
 =?iso-8859-1?Q?Utfw9dG4lrVhxadhZxvjP2eLi46IWgFTPFHUEHPI9ws5hNdhDayEQ2Zl3r?=
 =?iso-8859-1?Q?Hc1ZZon7F4T8lP78jB5Y/CTzkTAEeE0N727eLJcrOqkZD9ZvbWMjR9G+dr?=
 =?iso-8859-1?Q?cAKzS2bQMp0B/QQhXt2unM3C9d2mjxXsYWh519EIMI5OVv+AMLV4//NAi1?=
 =?iso-8859-1?Q?a02ie1KQyipOuCQC95ibfWDJh8Xa8QpVtUueu2QS+xeOrtetwsc3KlSZHc?=
 =?iso-8859-1?Q?hLC+Lfn6nrsMCTyv2BdpLjCG/wJujpoWnh1J3Lh/oV7KgcwPaly/O14fKK?=
 =?iso-8859-1?Q?A1g5RXamN7te/hGBP43l/wuT/6E8v4eD68xQFAZMRZ0oQ5mZSn2VL4U7Te?=
 =?iso-8859-1?Q?WeaFp2a83FfMESVvtg5hFNGMTntL1RVEsrFxvCu/0YOwWrkF2Lfk04CHDI?=
 =?iso-8859-1?Q?RSYl0jT+eEd7Z/ucfPqysSRFDwj5fZq5ceZ8utWqP3DfT51Aga9iw5jbWX?=
 =?iso-8859-1?Q?561GTH5SlCvnFFcsZmea9e5+F/dYjO5MVONIlxxTMgxkIiMIjszEzhfArh?=
 =?iso-8859-1?Q?k1R9wYU9THIY2dOrv0CzWFav4p06qz18BqangwfhdbLQA/8V009+comM97?=
 =?iso-8859-1?Q?x/GFtgWuARfkm79baeY5IUKHRK9a?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <74C14B25F6A92A4C837601C1E0F1AD49@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5510
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001AB.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	1d87789a-ffa6-47fb-bbd4-08de2e93d1da
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|7416014|14060799003|1800799024|35042699022|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?OBqNSs1VmwMEI14nhGnyA7wGNszvXRu0tw+XIs/tSo7JR3xXxduNAsLSI+?=
 =?iso-8859-1?Q?H1CB1/qFfJvPlcbD/goJnqoDsLnHDiA+RYzCrkC95PCN8jgB6zSLt5mB0+?=
 =?iso-8859-1?Q?znucj4sWjhn5FYf4Rri7VFCcTNwBAIkP+QOP7rEjI7+GAhDMdHcJIyRiSA?=
 =?iso-8859-1?Q?Hx6mWmWGtuL2x5vPbp05wnAYExYOzEtCNt0BqDAYfjgBamWRgM8sGLAJTl?=
 =?iso-8859-1?Q?5rAI5pYR9OzizsjC/0x52tupz4eOBtFR4ZlqklsEVPPv4AZweNcHCFhi4i?=
 =?iso-8859-1?Q?Z1dg79ihGvJOfTvCUK1/6lM9LGoTgXTM1YFGNArLFvWyKXdHSXLK4QHYdo?=
 =?iso-8859-1?Q?8/X1XKZaSueKBDMG3i8OHw/4IVMvPcOC+QHB4jBD8C5GGs6fuAE/NZcP7+?=
 =?iso-8859-1?Q?YXNA3F9khrGk13xGj0pYm3q2w1beqJMqpa9snNBFCTKeQdk7Rix5CXh4CL?=
 =?iso-8859-1?Q?wMkBMabwu2Sevm1YE4tLA2Bn6WAOtq4sTDcarcci1rnW2t4y2gkK5II8DR?=
 =?iso-8859-1?Q?UWSPPzgCIqwjvoSBy7xGvSj2ayIhiOCY3bDoDq7wqfuwQxsRzVQdlDr8iz?=
 =?iso-8859-1?Q?SxAJzIfTGUwVy/3rBuYODe1O1YOmxJtPjOR3LQND/laFkrj6HvMJ8qpTru?=
 =?iso-8859-1?Q?/0MCXrK5l7A/KlnT1O1pRvivHrplzpTt33RAt7ZkvbZTSrslTed4IfwvyB?=
 =?iso-8859-1?Q?lDpaavT4FW8C0FLmtL10yV89rrTWF2ZSqLpJhd6lgcCpcYBMB15ESTdZd+?=
 =?iso-8859-1?Q?9Vp+SXA69K6zX+PQtK2brlP6JcJs0fazB4PbVnidhwuqOdy/ewLCY4341b?=
 =?iso-8859-1?Q?3/G+oWSVHgatv/zkYf43kAXLjWA/L95T7JzDHwc0uZOghI2wjG2d+7WDKT?=
 =?iso-8859-1?Q?FZWc5BqR9pXOoaYYrv21YZCHBlQFuoOfmIUjeWUowPdFnk4bREeDMqhpNn?=
 =?iso-8859-1?Q?ZEiOiByOwPi7/Sw4+acF7nY3fBgR0dk+dYiKky51LUrFLlc73phouXg07j?=
 =?iso-8859-1?Q?HPfH/Osqi8E7hJhbggu+iUGTDAiiasFT+by2AX/ua1SsWBde0mHhBChWHq?=
 =?iso-8859-1?Q?WcovTPEwtx2wSRqM4zOfNHSgdGffyuHVeXOcBIyOjG1V6PX/UTg4kPiePi?=
 =?iso-8859-1?Q?666VhrR509YYb1h0hFir9LYFRaXo0l3VizXlgnO7iRYjs/ASqZT7kihSfR?=
 =?iso-8859-1?Q?tFcH9kan1GBeBqYV5I3bdkiNzVyBN54eVW7qu+nGKxo++TsydCsJXxFYRK?=
 =?iso-8859-1?Q?BEXlXtvlUH4H0JELb87OEx2FJjnQczXn/D7NLNpa4Ru4e5ANnS3Sr6FKGV?=
 =?iso-8859-1?Q?qU3gLjNMmIOf1klqfzN7QsGFDd4nZz/Pb5w5HjG8zLWIQVWXKC6rK2Is8J?=
 =?iso-8859-1?Q?8NZ8jg6QXudr35IQT2dcwrkc6lOcKws2/cevThEdqUk+ExfhKDQAGr+p7E?=
 =?iso-8859-1?Q?lU9ZyGGLFCtuaGqDb7npF0tCnNbjio3yS/k6hTlMa/y2/e2b+EZfVnN3VL?=
 =?iso-8859-1?Q?wdPWajjJknSqFGMU/MGeqsokEO78nq0UxFDsEZE96NCBgEUIluSfAnyOc+?=
 =?iso-8859-1?Q?RgLoi1RLtlHFHO4PGP4D7F/wmXqwrvGSP0hFrnSKE39Kqr91Ilv6CHeRni?=
 =?iso-8859-1?Q?JwsUI2wUMog4I=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)(36860700013)(7416014)(14060799003)(1800799024)(35042699022)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2025 15:36:57.6162
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dcdffdcb-8b4a-4d12-f308-08de2e93f74a
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:
	AMS0EPF000001AB.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR08MB11654

Hi Grygorii,

> On 28 Nov 2025, at 15:22, Grygorii Strashko <grygorii_strashko@epam.com> =
wrote:
>=20
> From: Grygorii Strashko <grygorii_strashko@epam.com>
>=20
> Add generic domain_clamp_alloc_bitsize() macro and clean up arch specific
> defines.
>=20
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> ---
> v3: no changes, added tag
>=20
> xen/arch/arm/include/asm/mm.h   | 2 --

Looks ok to me:

Reviewed-by: Luca Fancellu <luca.fancellu@arm.com> #arm

Cheers,
Luca





From xen-devel-bounces@lists.xenproject.org Fri Nov 28 16:23:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 16:23:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175021.1499940 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP1GC-0002m5-ES; Fri, 28 Nov 2025 16:23:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175021.1499940; Fri, 28 Nov 2025 16:23: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 1vP1GC-0002ly-AV; Fri, 28 Nov 2025 16:23:52 +0000
Received: by outflank-mailman (input) for mailman id 1175021;
 Fri, 28 Nov 2025 16:23: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=hHoX=6E=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vP1GA-0002ls-LI
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 16:23:50 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d8f0d06-cc76-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 17:23:47 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b7370698a8eso106500566b.0
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 08:23:47 -0800 (PST)
Received: from fedora (user-109-243-71-38.play-internet.pl. [109.243.71.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b76f5a2176csm472366466b.57.2025.11.28.08.23.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 28 Nov 2025 08:23: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: 9d8f0d06-cc76-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1764347026; x=1764951826; 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=2IpQHvzTox4G32Rgow85savMrnDc4tUH/QwMFtXEFsc=;
        b=fD3yHB6kSo3LVdmDx/fGTdGjTQRtUOpjpV/fLRjg5vAFAGPnIzWtXi+V05kzc+2Ucm
         qX/4h9Wprf4BpflcIoG2NlYp8En1WgiXjMg9O3ad3TJi3w1kn7j8VfV+YJMpFUDIOJP0
         jwjZOVhJ/4syGK2A/d+iGBHYAlETK8kdkkCba4IXjLsYscDOJDjBuR1sCLSmsdQ9kiQ/
         0/jQy0Fa3k/RFDrq8zBZqTHjp/PkmkTfhy2gD0pfEmiYrrVHZnXOPHFmzQR0xDyfxcZM
         o1P1YZxBA3zbhHobBnxTeXz0zw2onK22pyKDjmCC1vM60HFfC4c36xee4khy8ADPSNe7
         Fkcw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764347026; x=1764951826;
        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=2IpQHvzTox4G32Rgow85savMrnDc4tUH/QwMFtXEFsc=;
        b=OmN2XX+TLmoI924vCA0Jalyb1YH7gaezYER5Am1j7/v/ZAz3jPvbmNh7pe9El8i2Rb
         7rENLeme7D2qb2E6GuEb9OYnhY3RZkK1Ef7K4RvOcVfYFcFf8P6s00fjpv8xwttxiUw0
         lavTTMNkJG7RBIYzWDcMPussiuF9PjEMBzPVVk0jtyH7xWJ5kliGTjMfyIP+6tG14moY
         66Cs398UXH2xM+aMXngPEdSZQZWPUBmXhgPNDeAra48YKMd4pEFHI/m6xxqUa3kBuUo+
         mDlSwOfDwz7x7vi+pB/25Enp4ow7Wv4ceOEkM3jYJ8BZdimsIN5bMU8FR2XD6Qbssaq0
         i6EQ==
X-Gm-Message-State: AOJu0YwMUPVLiAyLwSF+ZFAtPdyM/oq2oKlW8GQmr32NpKZiyCU9U9Rg
	DjUthsVVl4qANQABrEQiN7qtMVjccI1BSbWL8XN5U3zuCy+x/9Jd8/cKFfR5zGyu
X-Gm-Gg: ASbGncu0wPMTd9/aTp0KSXAXGFdan+mAdMlUB7S/fvzddQSty8/10wgnT91+8kDv/U1
	Rmx76dd5pO678PlO49ZI2ey13x3zYAdyNwSpc9on3QFgc8/g6gIkREcMiExS6LPvNap2Df/j4JG
	tnuvMOGpZf53Q1mpkI23VJmIokeowSE85W7k05jIT5T60nJaMYJ3D3DFarGudxRqJ6dXFdlHFoF
	tJRCck7jc71heIVkALRcK4wOZQQ5SGy8ou0WPnOZMThaFo9bBsEDZltbSN9v9uvzz8lJt+mS2TR
	uHbdceOMJNDM6mu+BYRNfbv4mh0akhFlb6h3xGWicxoUSW9feLjyRvu7coNGiSXzxPLVh4nooR5
	y9XsuEWay639RBMg+sD74X7oEm7OwyaI2G+PuBnhlg+XOxq0EtC+hVfEEMPoQ8yoFYP+pw299Y7
	CobOg8cuUht3bgoAdQmt5IdR1fDv2zCrQ1Wbn0d4Zl+XZ/eH84Nlpq5mE=
X-Google-Smtp-Source: AGHT+IHJSkXwLZL8Xjb13PyuGDJV9IHv05ZhH6nQMhhVHreZDznpFpE44ZxKNeE6PZ6TEDuqT5J8/A==
X-Received: by 2002:a17:907:1c04:b0:b71:8448:a8dd with SMTP id a640c23a62f3a-b7671703d89mr3219472566b.31.1764347026007;
        Fri, 28 Nov 2025 08:23:46 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Timothy Pearson <tpearson@raptorengineering.com>
Subject: [PATCH v2] xen: move vcpu_kick() declaration to common header
Date: Fri, 28 Nov 2025 17:23:35 +0100
Message-ID: <b009997b5f3e7489fadb5f62f1623fc4d13bf271.1764344988.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The vcpu_kick() declaration is duplicated across multiple
architecture-specific event.h headers (ARM, x86, PPC).

Remove the redundant declarations and move vcpu_kick() into
the common xen/include/xen/sched.h header.

Drop the definition of vcpu_kick() from ppc/include/asm/event.h,
as it is already provided in ppc/stubs.c.

Add inclusion of xen/sched.h in the files where vcpu_kick() is
used.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
CI tests:
 https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2185404470
---
Changes in v2:
 - Move vcpu_kick() declaration to xen/sched.h instead of xen/event.h
 - Revert changes connected to switching asm/event.h to xen/event.h as vcpu_kick() 
   is now living in xen/sched.h.
 - Add inclusion of xen/sched.h because of moved vcpu_kick() declaration to
   xen/sched.h.
 - Update the commit message.
---
 xen/arch/arm/include/asm/event.h | 1 -
 xen/arch/ppc/include/asm/event.h | 1 -
 xen/arch/x86/cpu/mcheck/vmce.c   | 1 +
 xen/arch/x86/include/asm/event.h | 1 -
 xen/arch/x86/pv/traps.c          | 1 +
 xen/include/xen/sched.h          | 1 +
 6 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/include/asm/event.h b/xen/arch/arm/include/asm/event.h
index 509157b2b3..e036ab7fb8 100644
--- a/xen/arch/arm/include/asm/event.h
+++ b/xen/arch/arm/include/asm/event.h
@@ -3,7 +3,6 @@
 
 #include <asm/domain.h>
 
-void vcpu_kick(struct vcpu *v);
 void vcpu_mark_events_pending(struct vcpu *v);
 void vcpu_update_evtchn_irq(struct vcpu *v);
 void vcpu_block_unless_event_pending(struct vcpu *v);
diff --git a/xen/arch/ppc/include/asm/event.h b/xen/arch/ppc/include/asm/event.h
index 0f475c4b89..565eee1439 100644
--- a/xen/arch/ppc/include/asm/event.h
+++ b/xen/arch/ppc/include/asm/event.h
@@ -5,7 +5,6 @@
 #include <xen/lib.h>
 
 /* TODO: implement */
-static inline void vcpu_kick(struct vcpu *v) { BUG_ON("unimplemented"); }
 static inline void vcpu_mark_events_pending(struct vcpu *v) { BUG_ON("unimplemented"); }
 static inline void vcpu_update_evtchn_irq(struct vcpu *v) { BUG_ON("unimplemented"); }
 static inline void vcpu_block_unless_event_pending(struct vcpu *v) { BUG_ON("unimplemented"); }
diff --git a/xen/arch/x86/cpu/mcheck/vmce.c b/xen/arch/x86/cpu/mcheck/vmce.c
index 1a7e92506a..5e89c61238 100644
--- a/xen/arch/x86/cpu/mcheck/vmce.c
+++ b/xen/arch/x86/cpu/mcheck/vmce.c
@@ -12,6 +12,7 @@
 #include <xen/event.h>
 #include <xen/kernel.h>
 #include <xen/delay.h>
+#include <xen/sched.h>
 #include <xen/smp.h>
 #include <xen/mm.h>
 #include <asm/hvm/save.h>
diff --git a/xen/arch/x86/include/asm/event.h b/xen/arch/x86/include/asm/event.h
index 434f65007e..d13ce28167 100644
--- a/xen/arch/x86/include/asm/event.h
+++ b/xen/arch/x86/include/asm/event.h
@@ -11,7 +11,6 @@
 
 #include <xen/shared.h>
 
-void vcpu_kick(struct vcpu *v);
 void vcpu_mark_events_pending(struct vcpu *v);
 
 static inline int vcpu_event_delivery_is_enabled(struct vcpu *v)
diff --git a/xen/arch/x86/pv/traps.c b/xen/arch/x86/pv/traps.c
index c3c0976c44..21340eb0e9 100644
--- a/xen/arch/x86/pv/traps.c
+++ b/xen/arch/x86/pv/traps.c
@@ -10,6 +10,7 @@
 #include <xen/event.h>
 #include <xen/hypercall.h>
 #include <xen/lib.h>
+#include <xen/sched.h>
 #include <xen/softirq.h>
 
 #include <asm/debugreg.h>
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 52090b4f70..1f77e0869b 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -877,6 +877,7 @@ void vcpu_wake(struct vcpu *v);
 long vcpu_yield(void);
 void vcpu_sleep_nosync(struct vcpu *v);
 void vcpu_sleep_sync(struct vcpu *v);
+void vcpu_kick(struct vcpu *v);
 
 /*
  * Force synchronisation of given VCPU's state. If it is currently descheduled,
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 16:47:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 16:47:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175035.1499949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP1cM-00064Z-9E; Fri, 28 Nov 2025 16:46:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175035.1499949; Fri, 28 Nov 2025 16:46:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP1cM-00064S-6h; Fri, 28 Nov 2025 16:46:46 +0000
Received: by outflank-mailman (input) for mailman id 1175035;
 Fri, 28 Nov 2025 16:46: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=dGCQ=6E=kernel.org=kbusch@srs-se1.protection.inumbo.net>)
 id 1vP1cK-00064M-3e
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 16:46: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 d06ea8ff-cc79-11f0-9d18-b5c5bf9af7f9;
 Fri, 28 Nov 2025 17:46:41 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 13E3F6016F;
 Fri, 28 Nov 2025 16:46:40 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 68719C4CEF1;
 Fri, 28 Nov 2025 16:46:39 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d06ea8ff-cc79-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1764348399;
	bh=2/LDXJbhzfaY8TgSwz0wTHwET8ytYKSX0vuKmjOg9q8=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=gPTyQiqSWeJ3qKgwhHuE5OPm2JY5XfYMHBl1vU3fZitjs7TtFqOXG3NzAuDjD6JNW
	 IFbSUWsKQ0fmzhLxmPezWj4XweDRXlKLO/6wj5x6PGVU6GfETcgUXjUCWTOS0jxTcw
	 HrvAv/MQ4sVAHQA9n3NwhVs6TjQW+ftvxO/Zj2cidFS/fQMoqa2opCqEUyq9v+LMQF
	 XLIyGc5/Rfig+zszKHU8nQqXljrzlaGN3IPiGjIm7svpG7zmQeKX2kAQ/6WxkNR76s
	 xk50wEPHeuten1KOHxMbuYOzD/oV+DNMSogIHtvNp7AynWGz55u2t8KMobEg0LpQbj
	 EgI5QnJFNq6lA==
Date: Fri, 28 Nov 2025 09:46:37 -0700
From: Keith Busch <kbusch@kernel.org>
To: Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>
Cc: qemu-devel@nongnu.org, Peter.Turner@cloud.com, ngoc-tu.dinh@vates.tech,
	Klaus Jensen <its@irrelevant.dk>,
	Jesper Devantier <foss@defmacro.it>, xen-devel@lists.xenproject.org
Subject: Re: Default NVMe MDTS value causes Widnows Server 2025 hangs and
 BSODs (during install at least)
Message-ID: <aSnR7elEI_aJ1fFM@kbusch-mbp>
References: <aSl5X4dJHACpJHPU@Mac.lan>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <aSl5X4dJHACpJHPU@Mac.lan>

On Fri, Nov 28, 2025 at 11:28:47AM +0100, Roger Pau Monné wrote:
> Hello,
> 
> As part of XenServer Windows Server 2025 testing using Xen plus QEMU
> we discovered an issue during install that would lead to either the
> Windows installer getting stuck without making progress (albeit the
> screen was still showing the spinning circle correctly) or a BSOD that
> doesn't seem to have a unique number, the most common one was 0x50
> (PAGE_FAULT_IN_NONPAGED_AREA).
> 
> After a fair amount of debugging and following incorrect leads we have
> narrowed down what triggers the issue to QEMU emulated NVMe reporting
> a MDTS value of 7 by default (so max request size of 512KiB).
> Switching to higher MDTS values seemed to solve the issue.
> 
> The commit that made that change:
> 
> e137d20e7dff hw/block/nvme: add check for mdts
> 
> Didn't contain much justification for the change from unlimited to
> 512KiB max request size.
> 
> Windows is like a black box to me, but I believe there's some error in
> the Windows logic that splits requests, and hence when MDTS is set to
> a sufficiently low value, and Windows has to split NVMe requests, it
> causes Windows to hit an internal bug.  This will be raised with
> Microsoft to get the issue debugged and possibly fixed on their side.
> 
> From limited experimentation setting mdts to 10 (so 4MiB max request
> size) or 9 (2MiB) workarounds the issue.
> 
> Would it be acceptable for QEMU NVMe to consider increasing the
> default MDTS value to something higher than 7 to workaround the issue?
> I've tested both 9 and 10 and they prevent the issue, I would avoid 8
> as it's too close to the current one that causes issues.  I don't have
> many references of other emulated NVMe implementations, I just know
> about Bhyve emulated NVMe, which sets MDTS to 9.
> 
> If bumping MDTS to a higher value is acceptable please let me know and
> I will prepare a patch.

The mdts value is a prameter you can set at the command line. The 512k
default is really pretty reasonable, but you can set it up to 2MB
(mdts=9) if you want before hitting a different software limit that
won't let you go any higher. So rather than patch the device, I'd
recommend you just modify your startup command line parameters instead.

Not sure if it's still the case, but there was a time when Windows
Storport's maximum IO size had been limited to 128k, and that's exactly
what many nvme devices reported for MDTS, so Windows is certainly
supposed to work correctly with such values.


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 17:42:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 17:42:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175047.1499960 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP2UB-0005lm-7P; Fri, 28 Nov 2025 17:42:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175047.1499960; Fri, 28 Nov 2025 17:42: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 1vP2UB-0005lf-2x; Fri, 28 Nov 2025 17:42:23 +0000
Received: by outflank-mailman (input) for mailman id 1175047;
 Fri, 28 Nov 2025 17:42:22 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1vP2UA-0005lZ-0i
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 17:42:22 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1vP2U9-00Cyma-0x;
 Fri, 28 Nov 2025 17:42:21 +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 1vP2U8-0049nB-2o;
 Fri, 28 Nov 2025 17:42:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=3OLmEvxbXHIN6KYekbzt0gxl/qjX6Z+BbIFDRQZriH0=; b=ULvt6KciEPqhrwmeDuUq7DRiJt
	7cZ92SVzsrRFL4glbOjzfsZza3mRVjw5qS+qUWMXjbwknEyWebMa8hXbrLiOmmh/kzUQ/MXQf4yLh
	JnOPL0F14s16P2FeXzsHdd2p0fT2P5JTNmVpqetWo+MUHG2+tYk3pRpHU/21f+7bl8BY=;
Date: Fri, 28 Nov 2025 18:42:19 +0100
From: Anthony PERARD <anthony@xenproject.org>
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH v4 7/8] tools: Allow building xen-hptool without
 CONFIG_MIGRATE
Message-ID: <aSne-50OjHHtec7v@l14>
References: <cover.1762939773.git.mykyta_poturai@epam.com>
 <6da5b8b1aad1af18cf6ed352697ad39786adc37e.1762939773.git.mykyta_poturai@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <6da5b8b1aad1af18cf6ed352697ad39786adc37e.1762939773.git.mykyta_poturai@epam.com>

On Wed, Nov 12, 2025 at 10:51:49AM +0000, Mykyta Poturai wrote:
> With CPU hotplug sysctls implemented on Arm it becomes useful to have a
> tool for calling them. Introduce a new congifure option "hptool" to
> allow building hptool separately from other migration tools, and enable
> it by default.
> 
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> 

You should had a line with just "---" around here, right after the
Signed-off-by, and before the changelog. That way, when we commit the
patch, git will automatically discard this patch changelog. Notice that
git do just that before adding stats about file changes.

> v3->v4:
> * no changes
> 
> v2->v3:
> * no changes
> 
> v1->v2:
> * switch to configure from legacy config
> ---
>  config/Tools.mk.in               |  1 +
>  tools/configure                  | 30 ++++++++++++++++++++++++++++++
>  tools/configure.ac               |  1 +
>  tools/libs/guest/Makefile.common |  4 ++++
>  tools/misc/Makefile              |  2 +-
>  5 files changed, 37 insertions(+), 1 deletion(-)
>  mode change 100755 => 100644 tools/configure
> 
> diff --git a/config/Tools.mk.in b/config/Tools.mk.in
> index 0037ad5a64..d5855ca090 100644
> --- a/config/Tools.mk.in
> +++ b/config/Tools.mk.in
> @@ -49,6 +49,7 @@ CONFIG_LIBNL        := @libnl@
>  CONFIG_GOLANG       := @golang@
>  CONFIG_PYGRUB       := @pygrub@
>  CONFIG_LIBFSIMAGE   := @libfsimage@
> +CONFIG_HPTOOL       := @hptool@
>  
>  CONFIG_SYSTEMD      := @systemd@
>  XEN_SYSTEMD_DIR     := @SYSTEMD_DIR@
> diff --git a/tools/configure.ac b/tools/configure.ac
> index 285b4ea128..28a0c095c2 100644
> --- a/tools/configure.ac
> +++ b/tools/configure.ac
> @@ -90,6 +90,7 @@ AX_ARG_DEFAULT_DISABLE([ovmf], [Enable OVMF])
>  AX_ARG_DEFAULT_ENABLE([seabios], [Disable SeaBIOS])
>  AX_ARG_DEFAULT_ENABLE([golang], [Disable Go tools])
>  AX_ARG_DEFAULT_ENABLE([pygrub], [Disable pygrub])
> +AX_ARG_DEFAULT_ENABLE([hptool], [Disable hptool])
>  
>  AC_ARG_WITH([linux-backend-modules],
>      AS_HELP_STRING([--with-linux-backend-modules="mod1 mod2"],
> diff --git a/tools/libs/guest/Makefile.common b/tools/libs/guest/Makefile.common
> index a026a2f662..774b1d5392 100644
> --- a/tools/libs/guest/Makefile.common
> +++ b/tools/libs/guest/Makefile.common
> @@ -25,6 +25,10 @@ OBJS-y       += xg_core.o
>  OBJS-$(CONFIG_X86) += xg_core_x86.o
>  OBJS-$(CONFIG_ARM) += xg_core_arm.o
>  
> +ifneq (,$(filter y,$(CONFIG_MIGRATE)$(CONFIG_HPTOOL)))

How is this supposed to work?

> +OBJS-y += xg_offline_page.o
> +endif
> +
>  vpath %.c ../../../xen/common/libelf
>  
>  LIBELF_OBJS += libelf-tools.o libelf-loader.o
> diff --git a/tools/misc/Makefile b/tools/misc/Makefile
> index c26e544e83..f783f16ae6 100644
> --- a/tools/misc/Makefile
> +++ b/tools/misc/Makefile
> @@ -16,7 +16,7 @@ INSTALL_BIN                    += xencov_split
>  INSTALL_BIN += $(INSTALL_BIN-y)
>  
>  # Everything to be installed in regular sbin/
> -INSTALL_SBIN-$(CONFIG_MIGRATE) += xen-hptool
> +INSTALL_SBIN-$(CONFIG_HPTOOL)  += xen-hptool

So, I've look at the history as to why "xen-hptool" was only compiled
for CONFIG_MIGRATE, and it was because "xc_offline_page.c" didn't build
on ia64, commit 6b0b6e01b967 ("tools: disable xen-hptool on ia64").

And hiding xc_offline_page.c behind CONFIG_MIGRATE was probably just a
short-cut, 310311cd8863 ("libxc: fix link error on ia64") because I
guess the needed functions where behind this value at the time.

("xc_offline_page.c" is now "xg_offline_page.c")

This patch now build xen-hptool, and "xg_offline_page.c" by default. Does
this actually build on every architecture? We don't really have
per-binary configuration option, and having a library (libxenguest)
which get different functionality depending on which tool we want to
build doesn't seems to be the right thing to do.

If xg_offline_page.c can now be built on every architecture, how about
building it by default? Then, we can always build xen-hptool.

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 17:47:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 17:47:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175058.1499970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP2ZJ-0006MN-Pq; Fri, 28 Nov 2025 17:47:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175058.1499970; Fri, 28 Nov 2025 17:47: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 1vP2ZJ-0006MG-Lz; Fri, 28 Nov 2025 17:47:41 +0000
Received: by outflank-mailman (input) for mailman id 1175058;
 Fri, 28 Nov 2025 17:47: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=61/n=6E=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vP2ZI-0006MA-4o
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 17:47:40 +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 54578bc9-cc82-11f0-9d18-b5c5bf9af7f9;
 Fri, 28 Nov 2025 18:47:38 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4779cc419b2so21108635e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 09:47:38 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47905303963sm96254665e9.7.2025.11.28.09.47.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 28 Nov 2025 09:47: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: 54578bc9-cc82-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764352057; x=1764956857; 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=T9qkCujzjSOURjliy/HsoacPhW5hlsUW2K2Kz9vNsjo=;
        b=nqNL1oDsYBTcfmjJx2aeU1au1w6ScqKlt9gvGrg04100GTH0/KnNKSosHxiAA6BfHi
         EXmVjTc6t3NBxhKyjGLiFFpQaL3yeesla45caGDCP65csSDQOMm5O3g+/ZGo3JsjAu6j
         jNSM3A3xvNVz1UEw3bu66hM7/cVWiV01e6kVg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764352057; x=1764956857;
        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=T9qkCujzjSOURjliy/HsoacPhW5hlsUW2K2Kz9vNsjo=;
        b=vOsGCZXPucdMoV8LgHKOlOmUcF5yQl6TaccZQkXiiLi/bOZo5IweXUUT6NtnThWRsK
         2d9t6+wu2Iwa6MgkRf278KJNjuTkNiqGa0yAbbUWuM13M4nH3+FzoWFeMq3o31i1x4vc
         naQv1vKVtEPRrsPokRqh+nHmKJkgQGbsdezfYRJEkQon2pQwKXtcpG61EbQGlxW2RDiG
         jDFat0umgc4U7YlsIhHNUNvb/gTA+gDHMluazKubi3gZYwVYkV2W6DZHBqMwY+AGapi5
         0aCdR+6yc1bfRNac1dyM0O7xCh08Mx76qL+qixscNPKap1TIBvbpVFERob1uQBJ1CSVq
         ldqw==
X-Gm-Message-State: AOJu0YxvZspWB4SA0Cpzui5UjY9MeE9slkHlqiFX78JeIo9RxpbbQRet
	Oymo7l2PSqmGCU+dndfK5KSGOjFhoHH1YMGDkRPpnk4pYOVAedEC/VOpBA9mC3kiHvHPYaZCJyi
	xxgeV
X-Gm-Gg: ASbGncsvGzp0JGMsmQHpeLJ5xnemh1CasBJSiS1eN+sdDSIac3cUrLsoc23SW5FYcGQ
	NHNbZKmgxasb7wIjqprVSYFx2Gb5XzAVDNJCOygoEeJtEmhysHBX1JYVVFHQg1gqJ1+ly76tYWz
	EfFSGEFy1RVWmWK5undjiA8DX2t4ISj4KH5C5r6U4mfX0VGLfV689ddkjcpNMKCKy0uNt5DBWBA
	SiM9YJ9KsdGAN7PkfzlcwKLIii7l0+LgtiPi7jSikUtSkCRvOIa5VlFai47iOnwBJ71lP4Z7Dnu
	NEZOLpXf6WftmPedDrhH5R3UlaoQOcdWaucgdxMw59rLvC3UerDQe1nHdnMU+GMUORTrIBuEjpx
	BXn9eChW/biupw9gFgEE7LwrULQ6pHxaLpLOjZpIm4EAopH3keptW6sm12zf39v7XCZhUFKLhRL
	SXAlibrdnDZudUiea4IT8kxaltR0KeUJrUsMsyUTiVoKbBgSjFuuLUVo3YYwBL/w==
X-Google-Smtp-Source: AGHT+IECVoSdMR5CRk+uQKpZcF6cZ93jXy8aVcSWSLecJkYc5dkBfwtFsixRHtIMKDiHcOn/JgLs0w==
X-Received: by 2002:a05:600c:4ece:b0:477:7af8:c8ad with SMTP id 5b1f17b1804b1-477c115db0cmr312848735e9.31.1764352057316;
        Fri, 28 Nov 2025 09:47:37 -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/hvm: Unilaterally inject #UD for unknown VMExits
Date: Fri, 28 Nov 2025 17:47:35 +0000
Message-Id: <20251128174735.1238055-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

While we do this for unknown user mode exits, crashing for supervisor mode
exits is unhelpful.  Intel in particular expect the unknown case to be #UD
because they do introduce new instructions with new VMEXIT_* codes without
other enablement controls.  e.g. MSRLIST, USER_MSR, MSR_IMM, but AMD have
RDPRU and SKINIT as examples too.

A guest which gets its CPUID checks wrong can trigger the VMExit, and the
VMexit handler would need to emulate the CPUID check and #UD anyway.  This
would be a guest bug, and giving it an exception is the right course of
action.

Drop the "#UD or crash" semantics and make it exclusively #UD.  Rename the
lables to match the changed semantics.  Fold the cases which were plain #UD's
too.

One case that was wrong beforehand was EPT_MISCONFIG.  Failing to resolve is
always a Xen bug, and not even necesserily due to the instruction under %rip.
Convert it to be an unconditional domain_crash() with applicable diagnostic
information.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/hvm/svm/svm.c | 29 +++++++++--------------------
 xen/arch/x86/hvm/vmx/vmx.c | 26 +++++++++++---------------
 2 files changed, 20 insertions(+), 35 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 2d7c598ffe99..637b47084c25 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -66,15 +66,6 @@ static bool amd_erratum383_found __read_mostly;
 static uint64_t osvw_length, osvw_status;
 static DEFINE_SPINLOCK(osvw_lock);
 
-/* Only crash the guest if the problem originates in kernel mode. */
-static void svm_crash_or_fault(struct vcpu *v)
-{
-    if ( vmcb_get_cpl(v->arch.hvm.svm.vmcb) )
-        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
-    else
-        domain_crash(v->domain);
-}
-
 void __update_guest_eip(struct cpu_user_regs *regs, unsigned int inst_len)
 {
     struct vcpu *curr = current;
@@ -85,7 +76,7 @@ void __update_guest_eip(struct cpu_user_regs *regs, unsigned int inst_len)
     if ( unlikely(inst_len > MAX_INST_LEN) )
     {
         gdprintk(XENLOG_ERR, "Bad instruction length %u\n", inst_len);
-        svm_crash_or_fault(curr);
+        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
         return;
     }
 
@@ -2872,7 +2863,7 @@ void asmlinkage svm_vmexit_handler(void)
          * task switch.  Decode under %rip to find its length.
          */
         if ( insn_len < 0 && (insn_len = svm_get_task_switch_insn_len()) == 0 )
-            goto crash_or_fault;
+            goto inject_ud;
 
         hvm_task_switch(vmcb->ei.task_switch.sel,
                         vmcb->ei.task_switch.iret ? TSW_iret :
@@ -2984,13 +2975,6 @@ void asmlinkage svm_vmexit_handler(void)
         svm_vmexit_do_rdtsc(regs, exit_reason == VMEXIT_RDTSCP);
         break;
 
-    case VMEXIT_MONITOR:
-    case VMEXIT_MWAIT:
-    case VMEXIT_SKINIT:
-    case VMEXIT_RDPRU:
-        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
-        break;
-
     case VMEXIT_VMRUN:
         svm_vmexit_do_vmrun(regs, v, regs->rax);
         break;
@@ -3083,8 +3067,13 @@ void asmlinkage svm_vmexit_handler(void)
         gprintk(XENLOG_ERR, "Unexpected vmexit: reason %#"PRIx64", "
                 "exitinfo1 %#"PRIx64", exitinfo2 %#"PRIx64"\n",
                 exit_reason, vmcb->exitinfo1, vmcb->exitinfo2);
-    crash_or_fault:
-        svm_crash_or_fault(v);
+        fallthrough;
+    case VMEXIT_MONITOR:
+    case VMEXIT_MWAIT:
+    case VMEXIT_SKINIT:
+    case VMEXIT_RDPRU:
+    inject_ud:
+        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
         break;
     }
 
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 6b407226c44c..1af5861ef921 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -4337,7 +4337,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_regs *regs)
         __vmread(EXIT_QUALIFICATION, &exit_qualification);
         rc = hvm_monitor_vmexit(exit_reason, exit_qualification);
         if ( rc < 0 )
-            goto exit_and_crash;
+            goto unexpected_vmexit;
         if ( rc )
             return;
     }
@@ -4490,7 +4490,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_regs *regs)
                                        trap_type, insn_len, 0);
 
                 if ( rc < 0 )
-                    goto exit_and_crash;
+                    goto unexpected_vmexit;
                 if ( !rc )
                     vmx_propagate_intr(intr_info);
             }
@@ -4511,7 +4511,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_regs *regs)
                                        insn_len, 0);
 
                 if ( rc < 0 )
-                    goto exit_and_crash;
+                    goto unexpected_vmexit;
                 if ( !rc )
                     vmx_propagate_intr(intr_info);
             }
@@ -4557,7 +4557,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_regs *regs)
         case X86_EXC_NMI:
             if ( MASK_EXTR(intr_info, INTR_INFO_INTR_TYPE_MASK) !=
                  X86_ET_NMI )
-                goto exit_and_crash;
+                goto unexpected_vmexit;
             TRACE(TRC_HVM_NMI);
             /* Already handled above. */
             break;
@@ -4571,7 +4571,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_regs *regs)
             break;
         default:
             TRACE(TRC_HVM_TRAP, vector);
-            goto exit_and_crash;
+            goto unexpected_vmexit;
         }
         break;
     }
@@ -4627,7 +4627,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_regs *regs)
          * rc > 0 paused waiting for response, work here is done
          */
         if ( rc < 0 )
-            goto exit_and_crash;
+            goto unexpected_vmexit;
         if ( !rc )
             update_guest_eip(); /* Safe: CPUID */
         break;
@@ -4773,7 +4773,7 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_regs *regs)
 
         rc = hvm_monitor_io(io_qual.port, bytes, io_qual.in, io_qual.str);
         if ( rc < 0 )
-            goto exit_and_crash;
+            goto unexpected_vmexit;
         if ( rc )
             break;
 
@@ -4820,7 +4820,8 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_regs *regs)
 
         __vmread(GUEST_PHYSICAL_ADDRESS, &gpa);
         if ( !ept_handle_misconfig(gpa) )
-            goto exit_and_crash;
+            domain_crash(v->domain,
+                         "Unhandled EPT_MISCONFIG, gpa %#"PRIpaddr"\n", gpa);
         break;
     }
 
@@ -4902,14 +4903,9 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_regs *regs)
     case EXIT_REASON_INVPCID:
     /* fall through */
     default:
-    exit_and_crash:
+    unexpected_vmexit:
         gprintk(XENLOG_ERR, "Unexpected vmexit: reason %lu\n", exit_reason);
-
-        if ( vmx_get_cpl() )
-            hvm_inject_hw_exception(X86_EXC_UD,
-                                    X86_EVENT_NO_EC);
-        else
-            domain_crash(v->domain);
+        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
         break;
     }
 

base-commit: 117a46287427db2a6f5fe219eb2031d7ca39b603
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 18:29:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 18:29:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175073.1499980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP3DM-0003cH-Qy; Fri, 28 Nov 2025 18:29:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175073.1499980; Fri, 28 Nov 2025 18: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 1vP3DM-0003cA-Nf; Fri, 28 Nov 2025 18:29:04 +0000
Received: by outflank-mailman (input) for mailman id 1175073;
 Fri, 28 Nov 2025 18:29: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=K8i5=6E=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vP3DL-0003c4-3S
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 18:29:03 +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 1b11f926-cc88-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 19:29:00 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM6PR03MB5289.namprd03.prod.outlook.com (2603:10b6:5:24c::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Fri, 28 Nov
 2025 18:22:18 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::b334:94c2:4965:89b8%5]) with mapi id 15.20.9366.012; Fri, 28 Nov 2025
 18:22:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1b11f926-cc88-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ELBDc1vkraVrF1LdakwX4BfneT13B3fyODlqQ7AW5U3JQ2qh3NmsTY+/i7BChNLKeXBoH+XH1GVNyhG2nKefisaCUo2RErqvygKf4Y+Vkn9/f7x4pfbSzdKKnQ66hT0Jy8vxNVlrQMyFfIv0AdPvi1x+pkdAupmYQJrhSifhQO6CdjZLC4UfwlMSYfE3wAxUjV4THTW1V75Kz1b+tDrrGFVjJJFVoloXhgmVlBA9Vis6O5VZR5VBTmqGJhBOmNOf2KoiAV546mJdqIHfrLP+qYMQl4X5tzY7SVgnJi8+NdQlqg7ybIY8AWXCwqJFqahCbTsWQNPqPIJur/iuSipQRA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aCwmK6/kJwXrl662bA8QzX2oJgJ/nrJw66NPqrjLiro=;
 b=KS6cPTYslaMx82V8CVclr5usUelgVDybX3tw1mZOYf1/Dz4ZdEhvuJjTWvNOk6Sm1lqngarBRtu2BelEneudBlXOgbbSfgpoZKM/CUQMqV6CaDXIHcXnmcWNWH73JDo9NBwLb89y7F3+K9af3XxPCSDv15yx/vPKwz7eF+G5qD2cq+ZgzBLnjwY++mfneIN6rgvN5yq3C8rC+tQod57lTx91sq+hoa4Cbl1qCNs/5BFTREV1Cn4+5UCneKIW+9nA7Z5pB6b7APc7lK0vgA9JQW9X3u4TMBBh8BIwNVyArYobj/SyjUCQHI2HdX8J9+Rpq229uUJ+0966/lbCfik41g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=aCwmK6/kJwXrl662bA8QzX2oJgJ/nrJw66NPqrjLiro=;
 b=ZTI/J7nFKwXPFmkp9SZ+yvWVxhf7x9EVfnczHQBTZDDcz65OZjFNsYlSPZityFdDM3wNT7FAYZnyV8MLnMGx1na5OUJV35lmyvWLQjYqOYCA5CP1XfvfxKg4TRiiGHdnYPV+939hx1xzIev3SFViJ4sakiKbjAtarXG2RASkAbc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <ac7c40e6-70d9-4141-bcb3-407e531d17ee@citrix.com>
Date: Fri, 28 Nov 2025 18:22:15 +0000
User-Agent: Mozilla Thunderbird
Cc: andrew.cooper3@citrix.com, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P . Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH] x86/efi: Remove NX check from efi-boot.h
To: Julian Vetter <julian.vetter@vates.tech>, xen-devel@lists.xenproject.org
References: <20251127143136.1598354-1-julian.vetter@vates.tech>
 <3653404b-0428-4dae-912f-18c4f8e74853@citrix.com>
 <83850159-6b76-4127-a689-e83a84c71e4f@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <83850159-6b76-4127-a689-e83a84c71e4f@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0016.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ad::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_|DM6PR03MB5289:EE_
X-MS-Office365-Filtering-Correlation-Id: a65105fd-c5d6-4fbc-ad4a-08de2eab10ae
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?TDg3UDUwQlZGZkErVGttVEdvb2FIbm5jQytCOENvQXlXUXhZbTN4YUJhenJh?=
 =?utf-8?B?SGpkK1h2TGx5cEF0UmJrRkFjN3dTcm9hUWF0VUxSdWQ1TFdueXo0TjZxbmUv?=
 =?utf-8?B?N050TVRGZG5xK0EyOWtmd1E5QTh5dm0wMTR1cUg5YTFzOHRkZHJVeHE5OWRF?=
 =?utf-8?B?OGVERXJXY0Y1RFUrOW10ZDRNeUgycWIvWVRSVkY2NXkyVDJzOGVROGZxVUlY?=
 =?utf-8?B?eW9seGE4U1pwSEpkRU44UW1WUm1wd3NsWFhaMDlFdy9NLzQzWXIvK0QvVzZ5?=
 =?utf-8?B?b3FvblEzMWR2L25EZEJERTFwcXVOaHBXUWo0eVA4eGlRTHgzSzFMYXc3OE84?=
 =?utf-8?B?NWx2K1YyOUdidVFON2xZYzluanhhRmFobjNSOHlKSEhhc05pM0ZqakIzRy84?=
 =?utf-8?B?NHZFM3FOUTZuZUZnakttU2JLV3l0dWpjN0txY284Yk9nRXdBUndndDF5Zzll?=
 =?utf-8?B?dkJSRGQrSzdMbG9IMFFSdzdkdndCYXNmRUtKaFRWcXJkN3g5K1Q0SC8wWmd2?=
 =?utf-8?B?WFo1MVorbmlmQWx5VkVSeEdvL24rckFMa0hoTVZKdHppMjBncTlhbXVTQjdk?=
 =?utf-8?B?UlZhOEl0Wlg1dnVNTnNISW1KRFk4RzZ6c2R6NGxyKzFTekRxZ1c0SFl4a2l4?=
 =?utf-8?B?bnRWT1VjQlErMWR0L0JKOGNGWklFNndocVBpT2NySmhpSXpWdGp4L1VjTHhw?=
 =?utf-8?B?VjJSS2liYXFYRVZvVUF1dHlOa21uN1FVVlRwWnNMS3JtSHBEU21Bc1NMRzlL?=
 =?utf-8?B?OHVXN2ZIM1lLcS94TFZDN2lFWkNGeFZvb3R4c1RTam1kNW9SanV3YWVVY1FX?=
 =?utf-8?B?K3M3cG03Q2dxSHh4TDVhUHc0cmJlczFsV0lsN3d2dXYzb0hoQ0xid0lJeTQw?=
 =?utf-8?B?ZUxnbzRPSUpZM3VHRVVxdlQzeWhycFd1dThkZkFFUDRQSHVySEpCWGFPUnVX?=
 =?utf-8?B?MldtcnFpRkdnTG9HbmpseHNpTnFhcHU0TmJEUzl2Sm5wbm1xZktXZGd3bGtn?=
 =?utf-8?B?aGprTnRpaCt2YjcxOS9nbS9tcGdFRFh2UXk3WHphVXRFa1JuQzdYRTB6REc3?=
 =?utf-8?B?endQUmJ1WU5DMFhJT3NQRUVOYmtXUm1QcXIwUHZJVVJEbUdVazBmWmxQTEF6?=
 =?utf-8?B?V3FkN0lyamRGK0Q1YzRBcU9Wazd2cDYwVXh0YXhDejFDSjl1V2krcGkyUXJt?=
 =?utf-8?B?czdhWkN3L0gxMDRBbGN0MmlFRmlGY0FQbnRZaGhvUUpsWmdqR2FTL1NqTGpn?=
 =?utf-8?B?Q2lVanF3RGZYVnBKSVV0SkhvS2d0QTB0WU1VRUdaZW1iZWVmZEFVcS9KemxC?=
 =?utf-8?B?dkFyWU8wS3BLMTVWQWtvb3B6L1ZUV1hLQjNaWm4zZi9veWY3TDc2TEFEUy8z?=
 =?utf-8?B?TXlBYnZwd0pxeHY4bXMwZUJ0UEVPdjRrNFVsMjdkYk5XQWc5RFJ1QUFTMVJn?=
 =?utf-8?B?N3ZnY0duRzNSUGNWWlZMemQ2aGs1bHVXU0ZLcmhHT0VHNDBtdlkzdmZ1aUYw?=
 =?utf-8?B?UnhqWDRLbHVuczhJOUVRc21ZZVdTbjljQzhZUStnd3JCNjI5VmJabUpHZE1E?=
 =?utf-8?B?cFk3ZmpSQXVxeWFCNFJOaElvZEEySUc1a3JERnFoN3IvVEdYSVFDZUlXN0Z5?=
 =?utf-8?B?OHpRaXFWMitBTE1FeWZrWlViRC96RWZnamp1Z0Q4ZEVjN3RwM3prM0pGQWo4?=
 =?utf-8?B?NmozSXh4OFMvRjNCOWhFbEtRYUhHb3JJR2llU0tDcDFPMGJPZk5NWlQ5QWpI?=
 =?utf-8?B?UGl6MkM4ZFlJMEpCa0NTWWFjOFJqM25CMVFaWStVVHB2NDJaN0NsN0twOEFz?=
 =?utf-8?B?RkwwRjBwMzZrM3Q2aHNpaTEyS2JRbUtwV0ZOeWtUdGxuNVV5ZkFDVkxMZ2Zr?=
 =?utf-8?B?U00rVmVuQVYzQzBtR0RicEtua3NXeDhwdVNvby9YQWdJNkhGSlNCaUI0WHlt?=
 =?utf-8?B?TGorWWpIUk5QOU40QW9XMVY5SjFhL3F4dEFZL3FQdXQ1bEt0bWErSUV0M2pQ?=
 =?utf-8?B?OXNNL0hBSVVBPT0=?=
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?UTl4SGJsMU9jTUhnaC85cjZJdzNwQ1prMGgvQ1Y0ZHlGVEsxS3NwQVhYWmxl?=
 =?utf-8?B?NmxNdlJvL1FwV0VrVHZtN3Ezc0UvTDFQZUYzbTh3OUNIU1hhQW55Rzh4eWZj?=
 =?utf-8?B?UHUvRXJ3bEx3NXU1MktOd3NBQjZQSm9WVHB2RDZzVldzWmV4amhDbUQ3bFRL?=
 =?utf-8?B?TEtoeHlZdEsrVHJCRytycHZuZkZiSXBhckZ0Si9JSlQyOXNyeFc1c293MnhP?=
 =?utf-8?B?RUpQY3R6cUVzRVVFZUxvdFBoellWR1dKS05DWjR4TjdWQlJCMzBmQlZUbmJR?=
 =?utf-8?B?aEFHeWJ0NWFvQmQ4RFhITm96VExyNWRBa3l0NEhDazZjWDVFSTVaaldSRk1x?=
 =?utf-8?B?WHZoMXlzZlE2dTVpaFBkVURRekhtUHVOcDczYVIxNTZMdUpFOGZtb1JJZHVW?=
 =?utf-8?B?WFlJMHY0UGpIdjhpQ29EdXB0NTNSQjR1dGsyRXVuUGhseWZIa2JyQUVMUTZ0?=
 =?utf-8?B?NS9ObFNOeVBLMEhXU2F4VnIydUpSV2ZWMGNWYjNidlZ6SExWYVFzVUNzbDFI?=
 =?utf-8?B?ZUw4cXFQT2tKRHJKUUZrODNoM2k5eDJoYks2SWRhSTVNM2R6c2J6b3lUZysr?=
 =?utf-8?B?aGZtMTU5YjV6c0lOWlRWV2YvaFJlSk1IWEpQcDNjNE9DeGlFYkd4WTI0YUZZ?=
 =?utf-8?B?djVOSjlkcEFHdWxpMW10TkVzM0JzenJaQjdhSENZNEJuSjNHbk1kQXk4NUt1?=
 =?utf-8?B?ZGZtazA4ZHpZRXVIOENLUkFLcGxvTzlrb0hwLzZETnZVZ2RnaE9wWFZycFcx?=
 =?utf-8?B?eFhJMmhsOXpYSUNBYS9EbmpMN2l6VGZPTDk1R2dUekR5VXBKek5NY1h5ZWdo?=
 =?utf-8?B?Q290VHdCK1l1YThZTlNzWUI5eUpiem0zL3h6TUFqVTB5ZFFiWE9kYS90d2w4?=
 =?utf-8?B?dGZjT1RtNThmdnArdGM1QWNZaGppY0VCNjNLVHlYQVFHYVRrV25IOUpVWlhj?=
 =?utf-8?B?b21VNzFlMytPaVc4dFJSbWk0RTg2Vjg0ZVZKQ005MStWT1NuVEJyeVpQL2Nu?=
 =?utf-8?B?aHRtR1J0TU1VNm5Ic3dsc0xEMDQ0a1FOV0sraVhuejE0QnlYNnRqSVNCTzYr?=
 =?utf-8?B?UExINVM5VEVvLzNObU5CNWwvdG91QnQvNGRPMXVnUlhxdVluNi9MVVE2VjNO?=
 =?utf-8?B?M29VV3hJZVNNQWRtMGZjek1uaWVPN1E2cXl3Wk1yZThhZkd6bFhEdHFzMGZ5?=
 =?utf-8?B?UDFrYW9UR0ZycFdIaVI3dnp6YTduVjhxNEJUVCs1eGtMSmVjS1hIL2hsNmZM?=
 =?utf-8?B?RE1GSVp6TFpOTFh6WUc1V0VkUXdOVEovVVMycjVtRmw3eWlyMDVldmdua1hR?=
 =?utf-8?B?YnRpNDVRb0NTSXJyQUZjT01XakVUdk9mb21CZGt1WHRnamJJVWFja21jSTl0?=
 =?utf-8?B?TUplcDVMcTdNOXQ3NUZWcGVWQmR3TlZxOGdQL1I3d28zZnUwaGZxY2pLK24x?=
 =?utf-8?B?Zm0ySjN6NnEvMUhqQktVS0ZacGF3OG1iMmM0aXpXUG5Qd0RPRVplZ04xN2pZ?=
 =?utf-8?B?YWFjYmVTVjYwZ3BOeXVuM05xR2pzcWg2YjZETUN0UVAzYU5jK040dkZkMjFD?=
 =?utf-8?B?VmpkZi90SHExMW5mRVlhWDN1UlBKUFV5V2xDbHNMVXUyT3JEWGhFYnM5VFFs?=
 =?utf-8?B?VWhST1ZjaGFlcGNsSU1Cajk1Vm5lVjlMdFVrNVZmekE3N2ovS3V3OUZ6cHZm?=
 =?utf-8?B?czIxbSt3VTZXKzI2R01SY3g4dmh2VkswQXJ6UFhNQlBPUEVWTVpsY2phc2Yz?=
 =?utf-8?B?VnNlK3ZFOG05aUhmU1Z6OU1MZ0ZJQ1ZmQzk4Y1BSbW9ESXUyaGRmNEY0OENh?=
 =?utf-8?B?RzhDZHZzQ0RQcnhnNkdBY2dqQXVYVmFHVHBXdlY4bmlyZHI4QzhCdzV6aWpZ?=
 =?utf-8?B?UDR2djZmZkxaOWZNeEJZT1NQSitUbVZBbXdTVDFmQjV2SWdObXRCRkZuZHRH?=
 =?utf-8?B?WHNMOGZjMkVhUEpoeXAzOTJmdk5BZ05waDFsbVIvdGtPUFB1OTA5VFRSRkFK?=
 =?utf-8?B?Z0RQTFFsOVdwSzZhTnhoRm9uaEZ0WHNnL2pJYy8za2EwcjF0N0Y2aGdQVDJ3?=
 =?utf-8?B?dUZNczZSSWg1K1ltUW52OEZnYmtEa2JCQVlvY1FiTktRZXFmajZ3WFVaTjBU?=
 =?utf-8?B?QlhFNG1tSXh0eU4vMVByV0hqaEhKUXcyMk55a0szNU5YS1NGOGptRTNyQmJR?=
 =?utf-8?B?Q0E9PQ==?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a65105fd-c5d6-4fbc-ad4a-08de2eab10ae
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2025 18:22:18.8075
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: U0UKBenWdjdB0qp4EUA6CYSR8DLZ/cbKp56BQCL0PVAJx5H0Z9x+iSZqaBkWuRw3Q2O8zV0GG3Ja289hGx2tCKLDxsW1GO27vrsZtiW5OYA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5289

On 28/11/2025 1:19 pm, Julian Vetter wrote:
> On 11/27/25 16:20, Andrew Cooper wrote:
>> On 27/11/2025 2:31 pm, Julian Vetter wrote:
>>> Currently Intel CPUs in EFI mode with the "Execute Disable Bit" disabled
>>> and the 'CONFIG_REQUIRE_NX=y' fail to boot, because this check is
>>> performed before trampoline_setup is called, which determines if NX is
>>> supported or if it's hidden by 'MSR_IA32_MISC_ENABLE[34] = 1' (if so,
>>> re-enables NX).
>>>
>>> Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
>> Lovely...Â  This isn't the only bug; there's another one from the Vates
>> forums about AMD CPUs which I haven't gotten around to fixing yet.
>>
> Thank you. I will have a look. I haven't seen this thread.

https://xcp-ng.org/forum/post/80714

But the tl;dr is that AMD have introduced a firmware option to disable
NX.Â  Unlike Intel, there's no positive way to know you've reactivated it.

A conversation with AMD has revealed that there's no capability to
prevent setting EFER.NXE, and that NX is always available in practice.Â 
I'm pretty sure the firmware is just clearing NX in the CPUID Override MSR.

However, to reactivate this safely, we need to do a wrmsr_safe(), which
means we need to delay setting NXE until exception handling is available
which is rather later on boot.Â  There's also a tangle with the
order-of-initialisation of the CPUID Override MSRs which I found
recently while doing something else.

The other observation is that, even on a STRICT_NX build of Xen, we can
boot into __start_xen() because we can't insert NX into the pagetables
that early.Â  In fact it's quite late that we lock down permissions; see
the calls to modify_xen_mappings() in __start_xen().

Given that we need to be this late for AMD, we can also move the Intel
logic later (effectively reverts part of the original work; sorry
Alejandro) which means we can also use safe accessors, and we don't need
to worry about the divergent early paths.

>
>> Do you have any more information about which system looks like this?
>>
> I'm not sure if I understand your question correctly, but I was just 
> booting an Intel based machine newer than ~2012. I have tested this on 4 
> different machines, on which 3 hit this code path. One was a HPE 
> ProLiant m510 Server with a XEON CPU

Broadwell.

> , second was a Mini PC with Celeron CPU,

Sorry, not enough information here to figure out the microarchitecture.

> and third was an old Intel NUC DCCP847DYE also with a Celeron CPU. 

Sandy Bridge.

> The only system where I couldn't reproduce the issue was an old 
> workstation with a Gigabyte mainboard. It has the flag in the Bios to 
> set MSR_IA32_MISC_ENABLE, but I'm not sure if it was actually booting 
> via UEFI.

Same, not enough information here.

But, it's clear that Intel's XD-disable is still honoured in EFI mode on
a wide range of systems, and that we need a fix for UEFI.

>  I will verify this on monday. I booted all the 3 other systems 
> via UEFI -> Grub -> multiboot2. My grub entry looks like this:
>
> multiboot2 /boot/xen.gz dom0_mem=2656M,max:2656M watchdog ucode=scan 
> dom0_max_vcpus=1-8 crashkernel=256M,below=4G console=vga vga=mode-0x0311
> module2 boot/vmlinuz console=hvc0 console=tty0 init=/bin/sh
> module2 boot/initrd-dom0
>
>> trampoline_setup isn't executed on all EFI boots.Â  I had a different fix
>> in mind, but it's a little more complicated.
> Aha. yes, I didn't thought about other code paths.

https://xenbits.xen.org/docs/latest/hypervisor-guide/x86/how-xen-boots.html

Here's something I put together to cover some of these details.Â  But,
most of the detail is in the source only.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Nov 28 18:48:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 18:48:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175089.1500010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP3Vo-0007At-UZ; Fri, 28 Nov 2025 18:48:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175089.1500010; Fri, 28 Nov 2025 18: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 1vP3Vo-0007Am-Qy; Fri, 28 Nov 2025 18:48:08 +0000
Received: by outflank-mailman (input) for mailman id 1175089;
 Fri, 28 Nov 2025 18:48:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=61/n=6E=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vP3Vo-0006rr-8i
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 18:48:08 +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 c5399310-cc8a-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 19:48:03 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-47778b23f64so12615955e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 10:48:03 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47903c7360fsm102534325e9.0.2025.11.28.10.48.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 28 Nov 2025 10:48: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: c5399310-cc8a-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764355683; x=1764960483; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AG6MYW2ts+qmKiceaP2reK+W5LS3b/4VvnJvBEvZlPo=;
        b=R+Rb8+d/lXufoPzzRKxQ9uwLjeD7KTQE7wnrOVVcbZ7HE3/6NTzQ2TOeNCb3RdtsFP
         40hXB3kTerdvRGQhfchtOxl8RqPkBJZDNeFv9f67kFBuBrhXVIeTh6a7cBImEgguEEWD
         994Ou6Gh0ziCqc55vOiXsazquYYqvx7Cy7I4Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764355683; x=1764960483;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=AG6MYW2ts+qmKiceaP2reK+W5LS3b/4VvnJvBEvZlPo=;
        b=j4s1vftz3VBVUWR0aeDUi3rRENbtvGY6Qj0KFXW2Xq6mX3kWraboq+sLWbj7m/wTrC
         VYzB7WYpy95cGOhqQ3QSjW8VLyGY4Cktlk8mEvdLbYnhRriuEW9qoMbQKy4vvL4W14eO
         zNWhT6Z6iDAirsIUGxMS8S1qUgcDzTV/0EBgVV7kxnZdOjqifmySc25/NFxvPoduc/gw
         aOFtfP5zc8QDcrkHIu/JqgR4hYHzVhUyVbOSw5ANIXtIZsOdyhKMrF/DD/bsTkuniW/u
         yha40fFKyzBprpzObXm2BN3TLLzO3HjaljqmK+m7FDNAaoENACt7rJZVC4CTPgXALDMU
         Gzcg==
X-Gm-Message-State: AOJu0YwcS8wVXrgEs3ayATUeBWb4d9YK238KbpEESTefx8ZlDztojBvj
	BX9eJgwMdKWcWHWHMPEvp9gSzIpceOxS8MRCldvB9cJAuigI57eHX+Hssytv2oWYO03QXfnAcRI
	Z6/FA
X-Gm-Gg: ASbGncv9wZemiuQFs5j5SrzD0RCjK0xVDKpe3jC4GPzVmKTgNk/XaANzgOekTlakcJL
	rlK4VZ63v5sO3H3m8eKlk/JP3Tb1RKZwxndPSJ7ageRKlxo2EpHkTemEeBV6pUAtxtq61wwYdfD
	mKkxxQVpqMJFKXQxEeuvvpOjs+mzwQkUnPSn0w+so+x7QI5cNA/OETVViWcS0sYdjwW132MZXEZ
	t6wTzT1ZIFPialIDM8Rf/Y2nIKo+JykBiViCOL1krEfohP4faeCrF7ybx7mO+zVkMPnTgtD/4Nd
	mB6BsVXSurWB+uPx/T1GHQ83KkekiH5qiYdR1KL31Ud4AI6DZpaFIn7CZJVWSaILkHWo/z2K7bw
	JFy4dGcZRhMIFaHDbntEKFa0VTQsa4Znp3m1GUKU4Js/rmNYuarqd4G3/W5coWp7zemR4YOoiCe
	A0ySmSCzmdAtR64W6mG391CVtOk/mpB3MAdozTYyEKJvpgJ5uAltOQwpo76j6sVg==
X-Google-Smtp-Source: AGHT+IFhhwqpMg7mkzdITg7hOlHjYtF5diSqEe1z9DZDxr9p1ucctR1yTEwa6ZPLvMpyJoA6fJLfEQ==
X-Received: by 2002:a05:600c:1c82:b0:477:9650:3175 with SMTP id 5b1f17b1804b1-477c1057310mr342274145e9.0.1764355682812;
        Fri, 28 Nov 2025 10:48: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>,
	Krystian Hebel <krystian.hebel@3mdeb.com>,
	Sergii Dmytruk <sergii.dmytruk@3mdeb.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 1/2] xen/lib: Misc SHA2 cleanup
Date: Fri, 28 Nov 2025 18:47:56 +0000
Message-Id: <20251128184757.1243678-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251128184757.1243678-1-andrew.cooper3@citrix.com>
References: <20251128184757.1243678-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In sha2_256_transform(), make state be an array of 8 rather than a pointer,
which lets the compiler do slightly more checking.

For better or worse, the canonical API in Linux is just the algorithm name.
As we're intending to import more from Linux in this area, drop the digest
suffix before we gain more users.

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/microcode/amd.c | 2 +-
 xen/include/xen/sha2.h           | 4 ++--
 xen/lib/sha2-256.c               | 8 ++++----
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/cpu/microcode/amd.c b/xen/arch/x86/cpu/microcode/amd.c
index e7ae1e802353..adabe6e6e838 100644
--- a/xen/arch/x86/cpu/microcode/amd.c
+++ b/xen/arch/x86/cpu/microcode/amd.c
@@ -139,7 +139,7 @@ static bool check_digest(const struct container_microcode *mc)
         return false;
     }
 
-    sha2_256_digest(digest, patch, mc->len);
+    sha2_256(digest, patch, mc->len);
 
     if ( memcmp(digest, pd->digest, sizeof(digest)) )
     {
diff --git a/xen/include/xen/sha2.h b/xen/include/xen/sha2.h
index 09c69195a97d..7a99c1259d6e 100644
--- a/xen/include/xen/sha2.h
+++ b/xen/include/xen/sha2.h
@@ -9,8 +9,8 @@
 
 #define SHA2_256_DIGEST_SIZE 32
 
-void sha2_256_digest(uint8_t digest[SHA2_256_DIGEST_SIZE],
-                     const void *msg, size_t len);
+void sha2_256(uint8_t digest[SHA2_256_DIGEST_SIZE],
+              const void *msg, size_t len);
 
 struct sha2_256_state {
     uint32_t state[SHA2_256_DIGEST_SIZE / sizeof(uint32_t)];
diff --git a/xen/lib/sha2-256.c b/xen/lib/sha2-256.c
index d1b2c20b9812..ed585ac0d4c1 100644
--- a/xen/lib/sha2-256.c
+++ b/xen/lib/sha2-256.c
@@ -68,7 +68,7 @@ static const uint32_t K[] = {
     0x90befffaU, 0xa4506cebU, 0xbef9a3f7U, 0xc67178f2U,
 };
 
-static void sha2_256_transform(uint32_t *state, const void *_input)
+static void sha2_256_transform(uint32_t state[8], const void *_input)
 {
     const uint32_t *input = _input;
     uint32_t a, b, c, d, e, f, g, h, t1, t2;
@@ -197,8 +197,8 @@ void sha2_256_final(struct sha2_256_state *s, uint8_t digest[SHA2_256_DIGEST_SIZ
         put_unaligned_be32(s->state[i], &dst[i]);
 }
 
-void sha2_256_digest(uint8_t digest[SHA2_256_DIGEST_SIZE],
-                     const void *msg, size_t len)
+void sha2_256(uint8_t digest[SHA2_256_DIGEST_SIZE],
+              const void *msg, size_t len)
 {
     struct sha2_256_state s;
 
@@ -243,7 +243,7 @@ static void __init __constructor test_sha2_256(void)
         const struct test *t = &tests[i];
         uint8_t res[SHA2_256_DIGEST_SIZE] = {};
 
-        sha2_256_digest(res, t->msg, strlen(t->msg));
+        sha2_256(res, t->msg, strlen(t->msg));
 
         if ( memcmp(res, t->digest, sizeof(t->digest)) == 0 )
             continue;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 18:48:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 18:48:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175088.1500000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP3Vm-0006wz-MZ; Fri, 28 Nov 2025 18:48:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175088.1500000; Fri, 28 Nov 2025 18:48:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP3Vm-0006ws-Jw; Fri, 28 Nov 2025 18:48:06 +0000
Received: by outflank-mailman (input) for mailman id 1175088;
 Fri, 28 Nov 2025 18:48:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=61/n=6E=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vP3Vl-0006j2-Ot
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 18:48:05 +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 c5ca4e3f-cc8a-11f0-9d18-b5c5bf9af7f9;
 Fri, 28 Nov 2025 19:48:04 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-477b198f4bcso14951995e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 10:48:05 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47903c7360fsm102534325e9.0.2025.11.28.10.48.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 28 Nov 2025 10:48: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: c5ca4e3f-cc8a-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764355684; x=1764960484; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=U5iN5oCUV2c9KWI51YUJ6xwnAH3DNseJ0SKRiMxlo8k=;
        b=riTVPxRSsBFk+Xi2sSowCoamYDfwiXif08pxjvtwUlLQVB2FuTMvgTDUb1wirgoso8
         FOOKGJ5PmvRFXtcsp35AHrD2I8s95v8/389YJmLylNrtPNYotTbrFFWDO0gLyYHHSXyw
         085/TLLU2IDCd4SgmuEVMp3zNbyamehtdq7w0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764355684; x=1764960484;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=U5iN5oCUV2c9KWI51YUJ6xwnAH3DNseJ0SKRiMxlo8k=;
        b=OsllQSbtpZMov3WYn6TCpQnFhtUCyQ7hA0831v0HKGAVa6Z9bzxpfQEv6Ti+msGoei
         eYxRNzwaTzagl+mFd9eFVzdZ39Gs0pi4jVggt9Aenp9PQx5RQDUZQCyAa09uy0GRjstM
         WBuK9ke7n5bTLNFNA7c4cizZRK8itYCGaRiJhm0qyf7PC5R9vVI/YYlgx6GW9/JaZqwa
         Lr/ls40AZq7l0bRCsSq/lYHs3ElSykYDyclPwp9RBiFq6CAscbI/NA2jaD2Fj1duVH4t
         wTnNdZkunyku0IgpuEASl7QW9kOQ0Y/EObD8+hDmMeO8+TM/ViOxlGCVPU7i8yjVO6xC
         J11Q==
X-Gm-Message-State: AOJu0Yyo1ZIEqC/1ttvOGSV7He1cDufjcl4LRQ5tSDk1N8f5x8RbnhEm
	8+DXwaoPa+8zfbPK9nx/MaHg13m5tJ2ENL1xNKJiHxUZLTow+MQxyEDq0bfq9qfeuY/sndL74kx
	LiFpg
X-Gm-Gg: ASbGncsoGvyY70A+nHC9piojj7uWW58cyBgm6lUULN55WzEK9lOZF617NaDVk7/bSdR
	Xr+PB3MIWgdpfJHywVkIYHM6dvbgNLpfymaUL99OU5MUdOc8/55w5HwMlxHXp9e94l4VCJf+zSq
	ZftkKwicd7mKg7YPPpqyLFsND5kxyrTN6sHQJv4xdVrLVwL5V1P/ZARtyqB7CUr/ojOhcfVKlH4
	wSQTzw6qWTgn5ejowkffVYMicOO5zsXK1KxmpmKT4HDNG4lL6oYNelmyfUQ4GjweBYmASCXLIoU
	GnCDF7FtPXvAAgrvMvz7DnxRQL/A2+dHqEQgQ+T6NuXCf98lIh4xUcqbo/1bWCwr2eEFsnRmhTR
	8HJ5zUU4FPdqYV3bwCDA+jIYKtkXAAnKZ9ybGD4qMO7Uq2AiewSGjqzvsKjJ9M/hsnHkz64noMu
	adqr33r+DK59hTt3b09WyYh0V/RhZhc9QV1jn+GtPOBOHyEiiuiLLXmen1NHw/jg==
X-Google-Smtp-Source: AGHT+IFrMtAdXOyGD52+Szr1Tqi5CBsCanS1Vxe+gywHvBkWDilkMFglrehP0IMrwmo8fJw0qL0AEA==
X-Received: by 2002:a05:600c:1993:b0:477:9392:8557 with SMTP id 5b1f17b1804b1-477c01b495amr282532355e9.18.1764355684197;
        Fri, 28 Nov 2025 10:48:04 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Krystian Hebel <krystian.hebel@3mdeb.com>,
	Sergii Dmytruk <sergii.dmytruk@3mdeb.com>,
	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] xen/lib: Introduce SHA-1
Date: Fri, 28 Nov 2025 18:47:57 +0000
Message-Id: <20251128184757.1243678-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251128184757.1243678-1-andrew.cooper3@citrix.com>
References: <20251128184757.1243678-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Krystian Hebel <krystian.hebel@3mdeb.com>

Future work will need to interact with the TPM, which requires calculating
digests for all active hash banks.  Introduce an implementation in lib/,
partially derived from Trenchboot which itself is derived from Linux.

In order to be useful to other architectures, it is careful with endianness
and misaligned accesses as well as being more MISRA friendly, but is only
wired up for x86 in the short term.

Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

 * Split out of Trenchboot series.
 * Add selftests, adjust types
---
 xen/include/xen/sha1.h |  14 +++
 xen/lib/Makefile       |   1 +
 xen/lib/sha1.c         | 215 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 230 insertions(+)
 create mode 100644 xen/include/xen/sha1.h
 create mode 100644 xen/lib/sha1.c

diff --git a/xen/include/xen/sha1.h b/xen/include/xen/sha1.h
new file mode 100644
index 000000000000..d649da8ebd97
--- /dev/null
+++ b/xen/include/xen/sha1.h
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * SHA1: https://csrc.nist.gov/pubs/fips/180-4/upd1/final
+ */
+#ifndef XEN_SHA1_H
+#define XEN_SHA1_H
+
+#include <xen/types.h>
+
+#define SHA1_DIGEST_SIZE  20
+
+void sha1(uint8_t digest[SHA1_DIGEST_SIZE], const void *msg, size_t len);
+
+#endif /* XEN_SHA1_H */
diff --git a/xen/lib/Makefile b/xen/lib/Makefile
index 5ccb1e5241c5..fd4b9ece63fb 100644
--- a/xen/lib/Makefile
+++ b/xen/lib/Makefile
@@ -17,6 +17,7 @@ lib-y += memset.o
 lib-y += muldiv64.o
 lib-y += parse-size.o
 lib-y += rbtree.o
+lib-$(CONFIG_X86) += sha1.o
 lib-$(CONFIG_X86) += sha2-256.o
 lib-y += sort.o
 lib-y += strcasecmp.o
diff --git a/xen/lib/sha1.c b/xen/lib/sha1.c
new file mode 100644
index 000000000000..eac2bdd4dfb3
--- /dev/null
+++ b/xen/lib/sha1.c
@@ -0,0 +1,215 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * SHA1: https://csrc.nist.gov/pubs/fips/180-4/upd1/final
+ *
+ * Originally derived from Linux.  Modified substantially to optimise for size
+ * and Xen's expected usecases.
+ */
+#include <xen/bitops.h>
+#include <xen/sha1.h>
+#include <xen/string.h>
+#include <xen/unaligned.h>
+
+struct sha1_state {
+    size_t count; /* Byte Count. */
+    uint32_t state[SHA1_DIGEST_SIZE / sizeof(uint32_t)];
+    uint8_t buf[64];
+};
+
+static uint32_t blend(uint32_t w[16], unsigned int i)
+{
+#define W(i) w[(i) & 15]
+
+    return W(i) = rol32(W(i + 13) ^ W(i + 8) ^ W(i + 2) ^ W(i), 1);
+
+#undef W
+}
+
+static void sha1_transform(uint32_t state[5], const void *_input)
+{
+    const uint32_t *input = _input;
+    uint32_t a, b, c, d, e, t;
+    uint32_t w[16];
+    unsigned int i = 0;
+
+    a = state[0];
+    b = state[1];
+    c = state[2];
+    d = state[3];
+    e = state[4];
+
+    /* Round 1 - iterations 0-16 take their input from 'input' */
+    for ( ; i < 16; ++i )
+    {
+        t = get_unaligned_be32(&input[i]);
+        w[i] = t;
+        e += t + rol32(a, 5) + (((c ^ d) & b) ^ d) + 0x5a827999U;
+        b = ror32(b, 2);
+        t = e; e = d; d = c; c = b; b = a; a = t;
+    }
+
+    /* Round 1 tail. Input from 512-bit mixing array */
+    for ( ; i < 20; ++i )
+    {
+        t = blend(w, i);
+        e += t + rol32(a, 5) + (((c ^ d) & b) ^ d) + 0x5a827999U;
+        b = ror32(b, 2);
+        t = e; e = d; d = c; c = b; b = a; a = t;
+    }
+
+    /* Round 2 */
+    for ( ; i < 40; ++i )
+    {
+        t = blend(w, i);
+        e += t + rol32(a, 5) + (b ^ c ^ d) + 0x6ed9eba1U;
+        b = ror32(b, 2);
+        t = e; e = d; d = c; c = b; b = a; a = t;
+    }
+
+    /* Round 3 */
+    for ( ; i < 60; ++i )
+    {
+        t = blend(w, i);
+        e += t + rol32(a, 5) + ((b & c) + (d & (b ^ c))) + 0x8f1bbcdcU;
+        b = ror32(b, 2);
+        t = e; e = d; d = c; c = b; b = a; a = t;
+    }
+
+    /* Round 4 */
+    for ( ; i < 80; ++i )
+    {
+        t = blend(w, i);
+        e += t + rol32(a, 5) + (b ^ c ^ d) + 0xca62c1d6U;
+        b = ror32(b, 2);
+        t = e; e = d; d = c; c = b; b = a; a = t;
+    }
+
+    state[0] += a;
+    state[1] += b;
+    state[2] += c;
+    state[3] += d;
+    state[4] += e;
+}
+
+static void sha1_init(struct sha1_state *s)
+{
+    *s = (struct sha1_state){
+        .state = {
+            0x67452301U,
+            0xefcdab89U,
+            0x98badcfeU,
+            0x10325476U,
+            0xc3d2e1f0U,
+        },
+    };
+}
+
+static void sha1_update(struct sha1_state *s, const void *msg, size_t len)
+{
+    unsigned int partial = s->count & 63;
+
+    s->count += len;
+
+    if ( (partial + len) >= 64 )
+    {
+        if ( partial )
+        {
+            unsigned int rem = 64 - partial;
+
+            /* Fill the partial block. */
+            memcpy(s->buf + partial, msg, rem);
+            msg += rem;
+            len -= rem;
+
+            sha1_transform(s->state, s->buf);
+            partial = 0;
+        }
+
+        for ( ; len >= 64; msg += 64, len -= 64 )
+            sha1_transform(s->state, msg);
+    }
+
+    /* Remaining data becomes partial. */
+    memcpy(s->buf + partial, msg, len);
+}
+
+static void sha1_final(struct sha1_state *s, uint8_t digest[SHA1_DIGEST_SIZE])
+{
+    uint32_t *dst = (uint32_t *)digest;
+    unsigned int i, partial = s->count & 63;
+
+    /* Start padding */
+    s->buf[partial++] = 0x80;
+
+    if ( partial > 56 )
+    {
+        /* Need one extra block - pad to 64 */
+        memset(s->buf + partial, 0, 64 - partial);
+        sha1_transform(s->state, s->buf);
+        partial = 0;
+    }
+    /* Pad to 56 */
+    memset(s->buf + partial, 0x0, 56 - partial);
+
+    /* Append the bit count */
+    put_unaligned_be64((uint64_t)s->count << 3, &s->buf[56]);
+    sha1_transform(s->state, s->buf);
+
+    /* Store state in digest */
+    for ( i = 0; i < 5; i++ )
+        put_unaligned_be32(s->state[i], &dst[i]);
+}
+
+void sha1(uint8_t digest[SHA1_DIGEST_SIZE], const void *msg, size_t len)
+{
+    struct sha1_state s;
+
+    sha1_init(&s);
+    sha1_update(&s, msg, len);
+    sha1_final(&s, digest);
+}
+
+#ifdef CONFIG_SELF_TESTS
+
+#include <xen/init.h>
+#include <xen/lib.h>
+
+static const struct test {
+    const char *msg;
+    uint8_t digest[SHA1_DIGEST_SIZE];
+} tests[] __initconst = {
+    {
+        .msg = "abc",
+        .digest = {
+            0xa9, 0x99, 0x3e, 0x36, 0x47, 0x06, 0x81, 0x6a, 0xba, 0x3e,
+            0x25, 0x71, 0x78, 0x50, 0xc2, 0x6c, 0x9c, 0xd0, 0xd8, 0x9d,
+        },
+    },
+    {
+        .msg = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
+        .digest = {
+            0x84, 0x98, 0x3e, 0x44, 0x1c, 0x3b, 0xd2, 0x6e, 0xba, 0xae,
+            0x4a, 0xa1, 0xf9, 0x51, 0x29, 0xe5, 0xe5, 0x46, 0x70, 0xf1,
+        },
+    },
+};
+
+static void __init __constructor test_sha1(void)
+{
+    for ( unsigned int i = 0; i < ARRAY_SIZE(tests); ++i )
+    {
+        const struct test *t = &tests[i];
+        uint8_t res[SHA1_DIGEST_SIZE] = {};
+
+        sha1(res, t->msg, strlen(t->msg));
+
+        if ( memcmp(res, t->digest, sizeof(t->digest)) == 0 )
+            continue;
+
+        panic("%s() msg '%s' failed\n"
+              "  expected %" STR(SHA1_DIGEST_SIZE) "phN\n"
+              "       got %" STR(SHA1_DIGEST_SIZE) "phN\n",
+              __func__, t->msg, t->digest, res);
+    }
+}
+#endif /* CONFIG_SELF_TESTS */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 18:48:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 18:48:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175087.1499990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP3Vl-0006jF-GA; Fri, 28 Nov 2025 18:48:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175087.1499990; Fri, 28 Nov 2025 18:48:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP3Vl-0006j8-Cu; Fri, 28 Nov 2025 18:48:05 +0000
Received: by outflank-mailman (input) for mailman id 1175087;
 Fri, 28 Nov 2025 18:48:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=61/n=6E=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vP3Vk-0006j2-5R
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 18:48:04 +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 c418ff76-cc8a-11f0-9d18-b5c5bf9af7f9;
 Fri, 28 Nov 2025 19:48:01 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-42b3c5defb2so1525601f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 10:48:02 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-47903c7360fsm102534325e9.0.2025.11.28.10.47.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 28 Nov 2025 10:48: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: c418ff76-cc8a-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764355681; x=1764960481; 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=8CE3oLiGoDH4CJ9kO0CR+zhnnrVJUrSYvr0Gr7BXLtw=;
        b=irduyz+o/CxRhH2dOEA24VXAnU8ux50+o/Xx87VHulZ47b9mRBhSsIiydC4T7I8vAC
         veg2r0D3RsZLJ2UlvkYHgFM+JjhoyUcEbxBfAhOh0bYt3aeOkTIEfUrosEDZmDlukKMb
         RHhobDdO9t2DoyY0yT4Ikg5Jzq1L1sudLhW/o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764355681; x=1764960481;
        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=8CE3oLiGoDH4CJ9kO0CR+zhnnrVJUrSYvr0Gr7BXLtw=;
        b=EIqIk231VWOb/dN4zMthHGuUlDX/CnY1Z3brCUDYbGDa7NKO9vHwyL8FI9UODFDF5J
         mI5gaKYnZz+LW3nTcnPL/y7xIFGUw0gBRMmQ3cbyAebX13OxKi6NQvCTJfvW8KMjt88b
         1un1yEXui8q3LUgcRsbaxB98/JMLeyKbd4eikVFNCu0qQsdS87D/CuEfOYItFLK97gWd
         /JWShZSyKL0ED5zC+f6udin4HjsuJd4+u7OfOU3koVkHucEuug1PqMWALMNxmPnX5Dq1
         J6FEUl3Tail3g1QN1iTzP5j9YPfhdlapTYGgufqFj6KxC4huk4PmGe6T/NSB6Cra8zpM
         4XwQ==
X-Gm-Message-State: AOJu0YxT/YeBwyW1MZs6qAeO8ZbmwH+O35+XvbFmEsaj+ow7SgCKoMRa
	1muQU/UNFhu98Aske79IaP9OZQomzyhXVGgKdg6QJzMauq7yQwtDDTudfzGpE6aMe6sigGKEDxM
	GONGZ
X-Gm-Gg: ASbGncumbqe/J+eXZl4laSX5gLNVGE1xGf8O5t1OHtu8pUrcFSucLaycsyj7IZ6bZYT
	A91kSHqcF1GS1rVStBvpBYQgyC3h4rUO8rLr9RkvCBI1dPs14u1XyRGd29SZNtzPzLIZdwESeYR
	1x/7esfqU4g007WJMUX8/YP8KrEVUbN5+DO8mn9AhYY6Tvb2AnK10QtZoel8eZ/Unr5imaaTXSM
	miV7gHCVT4ZLCf166AKkxk7+EAXxPW0vhwqH4tZZk/ZMpYgQoR6nox3ipy0Gvp+xelk95QhRLl2
	PWdw0n+QP66lrKxzrLHWFgMqc8hD+QoALfVli59MoFMA8UKQNcVvqNBmZj0iI67Wcpwhmr73gIy
	B80N193w+XiT/gXALABWreHYNgAGqqc34tovbrH1zhFpUSbajbq71ZHlt+XpKSZEGpJVJImLIwY
	3UNScACSmHBUOHIk/1dbc3DU5J1IUmoCG0MORSyBv1m9K24zcl0BD9rYFFx2pNMQ==
X-Google-Smtp-Source: AGHT+IFaekO1BH+H/AsLV5jxikDRZcmVjXWBmNdU6MFKAEKPn9c4MMAyNvnLVTzj+EyDxpY46ldxCw==
X-Received: by 2002:a05:600c:1906:b0:46e:3550:9390 with SMTP id 5b1f17b1804b1-477c01d47c7mr262129785e9.20.1764355681358;
        Fri, 28 Nov 2025 10:48:01 -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>,
	Krystian Hebel <krystian.hebel@3mdeb.com>,
	Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Subject: [PATCH 0/2] xen/lib: SHA2 cleanup, and SHA1 support
Date: Fri, 28 Nov 2025 18:47:55 +0000
Message-Id: <20251128184757.1243678-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

Pulled out of the Trenchboot series.

Andrew Cooper (1):
  xen/lib: Misc SHA2 cleanup

Krystian Hebel (1):
  xen/lib: Introduce SHA-1

 xen/arch/x86/cpu/microcode/amd.c |   2 +-
 xen/include/xen/sha1.h           |  14 ++
 xen/include/xen/sha2.h           |   4 +-
 xen/lib/Makefile                 |   1 +
 xen/lib/sha1.c                   | 215 +++++++++++++++++++++++++++++++
 xen/lib/sha2-256.c               |   8 +-
 6 files changed, 237 insertions(+), 7 deletions(-)
 create mode 100644 xen/include/xen/sha1.h
 create mode 100644 xen/lib/sha1.c

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 20:19:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 20:19:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175121.1500029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP4wa-0003ge-HD; Fri, 28 Nov 2025 20:19:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175121.1500029; Fri, 28 Nov 2025 20:19:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP4wa-0003gX-EP; Fri, 28 Nov 2025 20:19:52 +0000
Received: by outflank-mailman (input) for mailman id 1175121;
 Fri, 28 Nov 2025 20:19: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=61/n=6E=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vP4wY-0003fj-EE
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 20:19:50 +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 951e9ffb-cc97-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 21:19:46 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-477aa218f20so14523055e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 12:19:46 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479052ec685sm98201245e9.6.2025.11.28.12.19.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 28 Nov 2025 12:19: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: 951e9ffb-cc97-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764361185; x=1764965985; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=C8qjxRSKtEjOjafIorv/edcLEVgJic5CXDGXAX2YZh4=;
        b=cFn8S90lHKHCCPglW7KIQJ/fNF8v+OBWOiy4/O0KMrhS+b2k6ndOFQ3g7l6h+JmdJU
         vVWdC/T00ndwtYdvTrja8+6sx2HpU6GI4Ccr25+PduTK/+LEIENMpP0iBbnqAuf4Eqol
         OxF3Nn0wptoxi1a3UJ2xZlFm9G+79bUGeKmi4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764361185; x=1764965985;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=C8qjxRSKtEjOjafIorv/edcLEVgJic5CXDGXAX2YZh4=;
        b=bEPPaBGLz9ff3WSB+BIJlQqlCl8226ndQZ/04KNic6epZR1mhM+lsV86lGBsga6l6H
         IMa2Mt18ETg4gL0UrRSEGhAqgJqW2/EgpwW3aJg85WEx/Y9mVc8KZBXkkdK7YCmMNJLO
         8fMp/mY0sduca9RhXz6hyrviXoqAAcHclkI2mmtHa0dd6cj/ZMjQ5NOCC+C3E8GfcMBM
         pxmtdB8PUsCNf12ZdppxUViBn6OH7xaZC3WLp/c4dRJ0DhTMfOqA2ZqNiAiajWJRDIkL
         7bnjxL/52lyQaK18fqqqg6HNrMOvFek7cOlaBiCvuY/1xFizLBt8eCqHbAchh9k/rLev
         XAqg==
X-Gm-Message-State: AOJu0YwmGXWppmnXCrlgXk62oWBx2vxXbnwrI0sVekYEYKjN4Du7Lb3R
	r5fIGGWEKGOL/pZ+OuQZp23SelY5k0VkKodTJbcYVS+fDm7bNBIJaS5G1orYwvoudnlBsgBC9Mq
	MscQy
X-Gm-Gg: ASbGnctUir+JGyW/ZQmb2jce7ArlYyvLFaG/6uL7ubtwel6s74PlQXVaYevjX87Z/Lq
	P7JgPue68+Ir97qGJo+27wp7bj/45y+njW0oi9Jhuy62vM/uhghuxdlLDzamLXrcsKoWFTeYb40
	gGBX8X42zISSRGzililGuMOkOZ7Gvl+MsLE2cgFXx6inL3zwCC+dCp44EX87wB1u4MUAtCGp3kZ
	vfZ6hUnZY3nTyLfqPago8grjFOjm9ktbRhcV5HKuZBFP2rYVum/JmSXPERNBGTicoO9aX2ymzww
	OpUDgLfeoj5vbBdXKR0GTYP8LGb4NGEvKWpMYUQhknRnh3JTS+Z1Y+0sQf7wzg9W30lCISEy0AS
	DDFdObjgzZgCBc2R/eJWiP7eMTqn/QWOJdAoI/K++mg7NFi5MyhpxFFgZW3woI3KT2ruY/fbF9t
	jV1b4y1Nv8equlnbC4dl1GP/84RUr6MT1sruvvtf9pW6YlCMAfTLmUh1JvX8sbvw==
X-Google-Smtp-Source: AGHT+IGg/PlPhAodwOJqIn+DwfMLGx6kSijdZ/6WugN3bWPpIrcowRICT81Gm1elCDallSKlhuHyiw==
X-Received: by 2002:a05:600c:1f0f:b0:471:14af:c715 with SMTP id 5b1f17b1804b1-477c0165bb8mr285786355e9.3.1764361185352;
        Fri, 28 Nov 2025 12:19: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 2/3] x86/svm: Drop svmdebug.c
Date: Fri, 28 Nov 2025 20:19:36 +0000
Message-Id: <20251128201937.1294742-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251128201937.1294742-1-andrew.cooper3@citrix.com>
References: <20251128201937.1294742-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Everything here is really VMCB functionality, so merge it into vmcb.c.  Move
the declarations from the global svmdebug.h to the logical vmcb.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/hvm/svm/Makefile               |   1 -
 xen/arch/x86/hvm/svm/nestedsvm.c            |   1 -
 xen/arch/x86/hvm/svm/svmdebug.c             | 181 --------------------
 xen/arch/x86/hvm/svm/vmcb.c                 | 159 +++++++++++++++++
 xen/arch/x86/hvm/svm/vmcb.h                 |   3 +
 xen/arch/x86/include/asm/hvm/svm/svmdebug.h |   3 -
 6 files changed, 162 insertions(+), 186 deletions(-)
 delete mode 100644 xen/arch/x86/hvm/svm/svmdebug.c

diff --git a/xen/arch/x86/hvm/svm/Makefile b/xen/arch/x86/hvm/svm/Makefile
index 760d2954da83..8a072cafd572 100644
--- a/xen/arch/x86/hvm/svm/Makefile
+++ b/xen/arch/x86/hvm/svm/Makefile
@@ -4,5 +4,4 @@ obj-bin-y += entry.o
 obj-y += intr.o
 obj-y += nestedsvm.o
 obj-y += svm.o
-obj-y += svmdebug.o
 obj-y += vmcb.o
diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
index 191466755148..63ed6c86b775 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -9,7 +9,6 @@
 #include <asm/hvm/svm/svm.h>
 #include <asm/hvm/svm/vmcb.h>
 #include <asm/hvm/nestedhvm.h>
-#include <asm/hvm/svm/svmdebug.h>
 #include <asm/paging.h> /* paging_mode_hap */
 #include <asm/event.h> /* for local_event_delivery_(en|dis)able */
 #include <asm/p2m.h> /* p2m_get_pagetable, p2m_get_nestedp2m */
diff --git a/xen/arch/x86/hvm/svm/svmdebug.c b/xen/arch/x86/hvm/svm/svmdebug.c
deleted file mode 100644
index bdb9ea3583ee..000000000000
--- a/xen/arch/x86/hvm/svm/svmdebug.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * svmdebug.c: debug functions
- * Copyright (c) 2011, Advanced Micro Devices, Inc.
- *
- */
-
-#include <xen/sched.h>
-#include <asm/processor.h>
-#include <asm/msr-index.h>
-#include <asm/hvm/svm/svmdebug.h>
-
-#include "vmcb.h"
-
-static void svm_dump_sel(const char *name, const struct segment_register *s)
-{
-    printk("%s: %04x %04x %08x %016"PRIx64"\n",
-           name, s->sel, s->attr, s->limit, s->base);
-}
-
-void svm_vmcb_dump(const char *from, const struct vmcb_struct *vmcb)
-{
-    struct vcpu *curr = current;
-
-    /*
-     * If we are dumping the VMCB currently in context, some guest state may
-     * still be cached in hardware.  Retrieve it.
-     */
-    if ( vmcb == curr->arch.hvm.svm.vmcb )
-        svm_sync_vmcb(curr, vmcb_in_sync);
-
-    printk("Dumping guest's current state at %s...\n", from);
-    printk("Size of VMCB = %zu, paddr = %"PRIpaddr", vaddr = %p\n",
-           sizeof(struct vmcb_struct), virt_to_maddr(vmcb), vmcb);
-
-    printk("cr_intercepts = %#x dr_intercepts = %#x "
-           "exception_intercepts = %#x\n",
-           vmcb_get_cr_intercepts(vmcb), vmcb_get_dr_intercepts(vmcb),
-           vmcb_get_exception_intercepts(vmcb));
-    printk("general1_intercepts = %#x general2_intercepts = %#x\n",
-           vmcb_get_general1_intercepts(vmcb), vmcb_get_general2_intercepts(vmcb));
-    printk("iopm_base_pa = %#"PRIx64" msrpm_base_pa = %#"PRIx64" tsc_offset = %#"PRIx64"\n",
-           vmcb_get_iopm_base_pa(vmcb), vmcb_get_msrpm_base_pa(vmcb),
-           vmcb_get_tsc_offset(vmcb));
-    printk("tlb_control = %#x vintr = %#"PRIx64" int_stat = %#"PRIx64"\n",
-           vmcb->tlb_control, vmcb_get_vintr(vmcb).bytes,
-           vmcb->int_stat.raw);
-    printk("event_inj %016"PRIx64", valid? %d, ec? %d, type %u, vector %#x\n",
-           vmcb->event_inj.raw, vmcb->event_inj.v,
-           vmcb->event_inj.ev, vmcb->event_inj.type,
-           vmcb->event_inj.vector);
-    printk("exitcode = %#"PRIx64" exit_int_info = %#"PRIx64"\n",
-           vmcb->exitcode, vmcb->exit_int_info.raw);
-    printk("exitinfo1 = %#"PRIx64" exitinfo2 = %#"PRIx64"\n",
-           vmcb->exitinfo1, vmcb->exitinfo2);
-    printk("asid = %#x np_ctrl = %#"PRIx64":%s%s%s\n",
-           vmcb_get_asid(vmcb), vmcb_get_np_ctrl(vmcb),
-           vmcb_get_np(vmcb)     ? " NP"     : "",
-           vmcb_get_sev(vmcb)    ? " SEV"    : "",
-           vmcb_get_sev_es(vmcb) ? " SEV_ES" : "");
-    printk("virtual vmload/vmsave = %d, virt_ext = %#"PRIx64"\n",
-           vmcb->virt_ext.fields.vloadsave_enable, vmcb->virt_ext.bytes);
-    printk("cpl = %d efer = %#"PRIx64" star = %#"PRIx64" lstar = %#"PRIx64"\n",
-           vmcb_get_cpl(vmcb), vmcb_get_efer(vmcb), vmcb->star, vmcb->lstar);
-    printk("CR0 = 0x%016"PRIx64" CR2 = 0x%016"PRIx64"\n",
-           vmcb_get_cr0(vmcb), vmcb_get_cr2(vmcb));
-    printk("CR3 = 0x%016"PRIx64" CR4 = 0x%016"PRIx64"\n",
-           vmcb_get_cr3(vmcb), vmcb_get_cr4(vmcb));
-    printk("RSP = 0x%016"PRIx64"  RIP = 0x%016"PRIx64"\n",
-           vmcb->rsp, vmcb->rip);
-    printk("RAX = 0x%016"PRIx64"  RFLAGS=0x%016"PRIx64"\n",
-           vmcb->rax, vmcb->rflags);
-    printk("DR6 = 0x%016"PRIx64", DR7 = 0x%016"PRIx64"\n",
-           vmcb_get_dr6(vmcb), vmcb_get_dr7(vmcb));
-    printk("CSTAR = 0x%016"PRIx64" SFMask = 0x%016"PRIx64"\n",
-           vmcb->cstar, vmcb->sfmask);
-    printk("KernGSBase = 0x%016"PRIx64" PAT = 0x%016"PRIx64"\n",
-           vmcb->kerngsbase, vmcb_get_g_pat(vmcb));
-    printk("SSP = 0x%016"PRIx64" S_CET = 0x%016"PRIx64" ISST = 0x%016"PRIx64"\n",
-           vmcb->_ssp, vmcb->_msr_s_cet, vmcb->_msr_isst);
-    printk("H_CR3 = 0x%016"PRIx64" CleanBits = %#x\n",
-           vmcb_get_h_cr3(vmcb), vmcb->cleanbits.raw);
-
-    /* print out all the selectors */
-    printk("       sel attr  limit   base\n");
-    svm_dump_sel("  CS", &vmcb->cs);
-    svm_dump_sel("  DS", &vmcb->ds);
-    svm_dump_sel("  SS", &vmcb->ss);
-    svm_dump_sel("  ES", &vmcb->es);
-    svm_dump_sel("  FS", &vmcb->fs);
-    svm_dump_sel("  GS", &vmcb->gs);
-    svm_dump_sel("GDTR", &vmcb->gdtr);
-    svm_dump_sel("LDTR", &vmcb->ldtr);
-    svm_dump_sel("IDTR", &vmcb->idtr);
-    svm_dump_sel("  TR", &vmcb->tr);
-}
-
-bool svm_vmcb_isvalid(const char *from, const struct vmcb_struct *vmcb,
-                      const struct vcpu *v, bool verbose)
-{
-    bool ret = false; /* ok */
-    unsigned long cr0 = vmcb_get_cr0(vmcb);
-    unsigned long cr3 = vmcb_get_cr3(vmcb);
-    unsigned long cr4 = vmcb_get_cr4(vmcb);
-    unsigned long valid;
-    uint64_t efer = vmcb_get_efer(vmcb);
-
-#define PRINTF(fmt, args...) do { \
-    if ( !verbose ) return true; \
-    ret = true; \
-    printk(XENLOG_GUEST "%pv[%s]: " fmt, v, from, ## args); \
-} while (0)
-
-    if ( !(efer & EFER_SVME) )
-        PRINTF("EFER: SVME bit not set (%#"PRIx64")\n", efer);
-
-    if ( !(cr0 & X86_CR0_CD) && (cr0 & X86_CR0_NW) )
-        PRINTF("CR0: CD bit is zero and NW bit set (%#"PRIx64")\n", cr0);
-
-    if ( cr0 >> 32 )
-        PRINTF("CR0: bits [63:32] are not zero (%#"PRIx64")\n", cr0);
-
-    if ( (cr0 & X86_CR0_PG) &&
-         ((cr3 & 7) ||
-          ((!(cr4 & X86_CR4_PAE) || (efer & EFER_LMA)) && (cr3 & 0xfe0)) ||
-          ((efer & EFER_LMA) &&
-           (cr3 >> v->domain->arch.cpuid->extd.maxphysaddr))) )
-        PRINTF("CR3: MBZ bits are set (%#"PRIx64")\n", cr3);
-
-    valid = hvm_cr4_guest_valid_bits(v->domain);
-    if ( cr4 & ~valid )
-        PRINTF("CR4: invalid value %#lx (valid %#lx, rejected %#lx)\n",
-               cr4, valid, cr4 & ~valid);
-
-    if ( vmcb_get_dr6(vmcb) >> 32 )
-        PRINTF("DR6: bits [63:32] are not zero (%#"PRIx64")\n",
-               vmcb_get_dr6(vmcb));
-
-    if ( vmcb_get_dr7(vmcb) >> 32 )
-        PRINTF("DR7: bits [63:32] are not zero (%#"PRIx64")\n",
-               vmcb_get_dr7(vmcb));
-
-    if ( efer & ~EFER_KNOWN_MASK )
-        PRINTF("EFER: unknown bits are not zero (%#"PRIx64")\n", efer);
-
-    if ( hvm_efer_valid(v, efer, -1) )
-        PRINTF("EFER: %s (%"PRIx64")\n", hvm_efer_valid(v, efer, -1), efer);
-
-    if ( (efer & EFER_LME) && (cr0 & X86_CR0_PG) )
-    {
-        if ( !(cr4 & X86_CR4_PAE) )
-            PRINTF("EFER_LME and CR0.PG are both set and CR4.PAE is zero\n");
-        if ( !(cr0 & X86_CR0_PE) )
-            PRINTF("EFER_LME and CR0.PG are both set and CR0.PE is zero\n");
-    }
-
-    if ( (efer & EFER_LME) && (cr0 & X86_CR0_PG) && (cr4 & X86_CR4_PAE) &&
-         vmcb->cs.l && vmcb->cs.db )
-        PRINTF("EFER_LME, CR0.PG, CR4.PAE, CS.L and CS.D are all non-zero\n");
-
-    if ( !(vmcb_get_general2_intercepts(vmcb) & GENERAL2_INTERCEPT_VMRUN) )
-        PRINTF("GENERAL2_INTERCEPT: VMRUN intercept bit is clear (%#"PRIx32")\n",
-               vmcb_get_general2_intercepts(vmcb));
-
-    if ( vmcb->event_inj.resvd1 )
-        PRINTF("eventinj: MBZ bits are set (%#"PRIx64")\n",
-               vmcb->event_inj.raw);
-
-#undef PRINTF
-    return ret;
-}
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * tab-width: 4
- * indent-tabs-mode: nil
- * End:
- */
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index 44fa76bf0228..b1a79d515143 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -228,6 +228,165 @@ void svm_destroy_vmcb(struct vcpu *v)
     svm->vmcb = NULL;
 }
 
+static void svm_dump_sel(const char *name, const struct segment_register *s)
+{
+    printk("%s: %04x %04x %08x %016"PRIx64"\n",
+           name, s->sel, s->attr, s->limit, s->base);
+}
+
+void svm_vmcb_dump(const char *from, const struct vmcb_struct *vmcb)
+{
+    struct vcpu *curr = current;
+
+    /*
+     * If we are dumping the VMCB currently in context, some guest state may
+     * still be cached in hardware.  Retrieve it.
+     */
+    if ( vmcb == curr->arch.hvm.svm.vmcb )
+        svm_sync_vmcb(curr, vmcb_in_sync);
+
+    printk("Dumping guest's current state at %s...\n", from);
+    printk("Size of VMCB = %zu, paddr = %"PRIpaddr", vaddr = %p\n",
+           sizeof(struct vmcb_struct), virt_to_maddr(vmcb), vmcb);
+
+    printk("cr_intercepts = %#x dr_intercepts = %#x "
+           "exception_intercepts = %#x\n",
+           vmcb_get_cr_intercepts(vmcb), vmcb_get_dr_intercepts(vmcb),
+           vmcb_get_exception_intercepts(vmcb));
+    printk("general1_intercepts = %#x general2_intercepts = %#x\n",
+           vmcb_get_general1_intercepts(vmcb), vmcb_get_general2_intercepts(vmcb));
+    printk("iopm_base_pa = %#"PRIx64" msrpm_base_pa = %#"PRIx64" tsc_offset = %#"PRIx64"\n",
+           vmcb_get_iopm_base_pa(vmcb), vmcb_get_msrpm_base_pa(vmcb),
+           vmcb_get_tsc_offset(vmcb));
+    printk("tlb_control = %#x vintr = %#"PRIx64" int_stat = %#"PRIx64"\n",
+           vmcb->tlb_control, vmcb_get_vintr(vmcb).bytes,
+           vmcb->int_stat.raw);
+    printk("event_inj %016"PRIx64", valid? %d, ec? %d, type %u, vector %#x\n",
+           vmcb->event_inj.raw, vmcb->event_inj.v,
+           vmcb->event_inj.ev, vmcb->event_inj.type,
+           vmcb->event_inj.vector);
+    printk("exitcode = %#"PRIx64" exit_int_info = %#"PRIx64"\n",
+           vmcb->exitcode, vmcb->exit_int_info.raw);
+    printk("exitinfo1 = %#"PRIx64" exitinfo2 = %#"PRIx64"\n",
+           vmcb->exitinfo1, vmcb->exitinfo2);
+    printk("asid = %#x np_ctrl = %#"PRIx64":%s%s%s\n",
+           vmcb_get_asid(vmcb), vmcb_get_np_ctrl(vmcb),
+           vmcb_get_np(vmcb)     ? " NP"     : "",
+           vmcb_get_sev(vmcb)    ? " SEV"    : "",
+           vmcb_get_sev_es(vmcb) ? " SEV_ES" : "");
+    printk("virtual vmload/vmsave = %d, virt_ext = %#"PRIx64"\n",
+           vmcb->virt_ext.fields.vloadsave_enable, vmcb->virt_ext.bytes);
+    printk("cpl = %d efer = %#"PRIx64" star = %#"PRIx64" lstar = %#"PRIx64"\n",
+           vmcb_get_cpl(vmcb), vmcb_get_efer(vmcb), vmcb->star, vmcb->lstar);
+    printk("CR0 = 0x%016"PRIx64" CR2 = 0x%016"PRIx64"\n",
+           vmcb_get_cr0(vmcb), vmcb_get_cr2(vmcb));
+    printk("CR3 = 0x%016"PRIx64" CR4 = 0x%016"PRIx64"\n",
+           vmcb_get_cr3(vmcb), vmcb_get_cr4(vmcb));
+    printk("RSP = 0x%016"PRIx64"  RIP = 0x%016"PRIx64"\n",
+           vmcb->rsp, vmcb->rip);
+    printk("RAX = 0x%016"PRIx64"  RFLAGS=0x%016"PRIx64"\n",
+           vmcb->rax, vmcb->rflags);
+    printk("DR6 = 0x%016"PRIx64", DR7 = 0x%016"PRIx64"\n",
+           vmcb_get_dr6(vmcb), vmcb_get_dr7(vmcb));
+    printk("CSTAR = 0x%016"PRIx64" SFMask = 0x%016"PRIx64"\n",
+           vmcb->cstar, vmcb->sfmask);
+    printk("KernGSBase = 0x%016"PRIx64" PAT = 0x%016"PRIx64"\n",
+           vmcb->kerngsbase, vmcb_get_g_pat(vmcb));
+    printk("SSP = 0x%016"PRIx64" S_CET = 0x%016"PRIx64" ISST = 0x%016"PRIx64"\n",
+           vmcb->_ssp, vmcb->_msr_s_cet, vmcb->_msr_isst);
+    printk("H_CR3 = 0x%016"PRIx64" CleanBits = %#x\n",
+           vmcb_get_h_cr3(vmcb), vmcb->cleanbits.raw);
+
+    /* print out all the selectors */
+    printk("       sel attr  limit   base\n");
+    svm_dump_sel("  CS", &vmcb->cs);
+    svm_dump_sel("  DS", &vmcb->ds);
+    svm_dump_sel("  SS", &vmcb->ss);
+    svm_dump_sel("  ES", &vmcb->es);
+    svm_dump_sel("  FS", &vmcb->fs);
+    svm_dump_sel("  GS", &vmcb->gs);
+    svm_dump_sel("GDTR", &vmcb->gdtr);
+    svm_dump_sel("LDTR", &vmcb->ldtr);
+    svm_dump_sel("IDTR", &vmcb->idtr);
+    svm_dump_sel("  TR", &vmcb->tr);
+}
+
+bool svm_vmcb_isvalid(
+    const char *from, const struct vmcb_struct *vmcb, const struct vcpu *v,
+    bool verbose)
+{
+    bool ret = false; /* ok */
+    unsigned long cr0 = vmcb_get_cr0(vmcb);
+    unsigned long cr3 = vmcb_get_cr3(vmcb);
+    unsigned long cr4 = vmcb_get_cr4(vmcb);
+    unsigned long valid;
+    uint64_t efer = vmcb_get_efer(vmcb);
+
+#define PRINTF(fmt, args...) do { \
+    if ( !verbose ) return true; \
+    ret = true; \
+    printk(XENLOG_GUEST "%pv[%s]: " fmt, v, from, ## args); \
+} while (0)
+
+    if ( !(efer & EFER_SVME) )
+        PRINTF("EFER: SVME bit not set (%#"PRIx64")\n", efer);
+
+    if ( !(cr0 & X86_CR0_CD) && (cr0 & X86_CR0_NW) )
+        PRINTF("CR0: CD bit is zero and NW bit set (%#"PRIx64")\n", cr0);
+
+    if ( cr0 >> 32 )
+        PRINTF("CR0: bits [63:32] are not zero (%#"PRIx64")\n", cr0);
+
+    if ( (cr0 & X86_CR0_PG) &&
+         ((cr3 & 7) ||
+          ((!(cr4 & X86_CR4_PAE) || (efer & EFER_LMA)) && (cr3 & 0xfe0)) ||
+          ((efer & EFER_LMA) &&
+           (cr3 >> v->domain->arch.cpuid->extd.maxphysaddr))) )
+        PRINTF("CR3: MBZ bits are set (%#"PRIx64")\n", cr3);
+
+    valid = hvm_cr4_guest_valid_bits(v->domain);
+    if ( cr4 & ~valid )
+        PRINTF("CR4: invalid value %#lx (valid %#lx, rejected %#lx)\n",
+               cr4, valid, cr4 & ~valid);
+
+    if ( vmcb_get_dr6(vmcb) >> 32 )
+        PRINTF("DR6: bits [63:32] are not zero (%#"PRIx64")\n",
+               vmcb_get_dr6(vmcb));
+
+    if ( vmcb_get_dr7(vmcb) >> 32 )
+        PRINTF("DR7: bits [63:32] are not zero (%#"PRIx64")\n",
+               vmcb_get_dr7(vmcb));
+
+    if ( efer & ~EFER_KNOWN_MASK )
+        PRINTF("EFER: unknown bits are not zero (%#"PRIx64")\n", efer);
+
+    if ( hvm_efer_valid(v, efer, -1) )
+        PRINTF("EFER: %s (%"PRIx64")\n", hvm_efer_valid(v, efer, -1), efer);
+
+    if ( (efer & EFER_LME) && (cr0 & X86_CR0_PG) )
+    {
+        if ( !(cr4 & X86_CR4_PAE) )
+            PRINTF("EFER_LME and CR0.PG are both set and CR4.PAE is zero\n");
+        if ( !(cr0 & X86_CR0_PE) )
+            PRINTF("EFER_LME and CR0.PG are both set and CR0.PE is zero\n");
+    }
+
+    if ( (efer & EFER_LME) && (cr0 & X86_CR0_PG) && (cr4 & X86_CR4_PAE) &&
+         vmcb->cs.l && vmcb->cs.db )
+        PRINTF("EFER_LME, CR0.PG, CR4.PAE, CS.L and CS.D are all non-zero\n");
+
+    if ( !(vmcb_get_general2_intercepts(vmcb) & GENERAL2_INTERCEPT_VMRUN) )
+        PRINTF("GENERAL2_INTERCEPT: VMRUN intercept bit is clear (%#"PRIx32")\n",
+               vmcb_get_general2_intercepts(vmcb));
+
+    if ( vmcb->event_inj.resvd1 )
+        PRINTF("eventinj: MBZ bits are set (%#"PRIx64")\n",
+               vmcb->event_inj.raw);
+
+#undef PRINTF
+    return ret;
+}
+
 static void cf_check vmcb_dump(unsigned char ch)
 {
     struct domain *d;
diff --git a/xen/arch/x86/hvm/svm/vmcb.h b/xen/arch/x86/hvm/svm/vmcb.h
index 68012948a9e3..ba554a964487 100644
--- a/xen/arch/x86/hvm/svm/vmcb.h
+++ b/xen/arch/x86/hvm/svm/vmcb.h
@@ -553,6 +553,9 @@ int  svm_create_vmcb(struct vcpu *v);
 void svm_destroy_vmcb(struct vcpu *v);
 
 void setup_vmcb_dump(void);
+void svm_vmcb_dump(const char *from, const struct vmcb_struct *vmcb);
+bool svm_vmcb_isvalid(const char *from, const struct vmcb_struct *vmcb,
+                      const struct vcpu *v, bool verbose);
 
 /*
  * VMCB accessor functions.
diff --git a/xen/arch/x86/include/asm/hvm/svm/svmdebug.h b/xen/arch/x86/include/asm/hvm/svm/svmdebug.h
index 2fb76ec24c76..ede13bd34048 100644
--- a/xen/arch/x86/include/asm/hvm/svm/svmdebug.h
+++ b/xen/arch/x86/include/asm/hvm/svm/svmdebug.h
@@ -12,8 +12,5 @@
 #include <asm/hvm/svm/vmcb.h>
 
 void svm_sync_vmcb(struct vcpu *v, enum vmcb_sync_state new_state);
-void svm_vmcb_dump(const char *from, const struct vmcb_struct *vmcb);
-bool svm_vmcb_isvalid(const char *from, const struct vmcb_struct *vmcb,
-                      const struct vcpu *v, bool verbose);
 
 #endif /* __ASM_X86_HVM_SVM_SVMDEBUG_H__ */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 20:19:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 20:19:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175122.1500035 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP4wa-0003k5-Qy; Fri, 28 Nov 2025 20:19:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175122.1500035; Fri, 28 Nov 2025 20:19:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP4wa-0003ja-MA; Fri, 28 Nov 2025 20:19:52 +0000
Received: by outflank-mailman (input) for mailman id 1175122;
 Fri, 28 Nov 2025 20:19:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=61/n=6E=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vP4wY-0003fj-OU
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 20:19:50 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 949de240-cc97-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 21:19:45 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-477b198f4bcso15314865e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 12:19:45 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479052ec685sm98201245e9.6.2025.11.28.12.19.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 28 Nov 2025 12:19: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: 949de240-cc97-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764361185; x=1764965985; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CQ9efuLR87Bfwya5+EoNOBwH4ptYa2H4aXGOv87c7jY=;
        b=FZX5x9KQ3HI16duwOlTgToxRixqPzocFVDy98yIbHGPtdZbakJNuLlqdtX3TBayC5H
         xBm05bJlQCAqWT+kpniu1JNUG9U7Y9PXl/tPewPqfduUJKbIrlZ8Ib+oLEPuJtWkKoTD
         01EzxRLvkalkjC9KmAFbD45mGY/n+oBn8uJjw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764361185; x=1764965985;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=CQ9efuLR87Bfwya5+EoNOBwH4ptYa2H4aXGOv87c7jY=;
        b=UJuFhsKooyUZyjRds6apKBSCGb8gYrqxAYll6tC4g19bbQh7LuD1CDEHM1hyRafdLx
         K2Ai76CyPXuOVW3y1itJDk3qzdrvrRAnZmTmMwoFfqocvoOMHpg+Nr0d357alW754iys
         zU7FFJQ5fuYkiC1iYd/GL/ZcCjeTvibRJxnKMDgM+a9mDziq2Yu5bxW3xGAH8FnVdLS2
         ejC7dWUUwzrCumtAzZ+rs4Zs4s6BOX0gnsBA6G8qApA9g54IpQ29m0CrqBBsHPScsDTb
         IU3DxV9uJKr0zo40fTcnEBuMSA6j5z6KD/qkASuk5HNSYmSdGuTAblMq6wOTkTEssQPa
         AVOQ==
X-Gm-Message-State: AOJu0Yx8wKwwicKUge0HfCj1TwdQA3Fdz34h+7iPm0g9a13JlqWC/ILF
	6ZeDVadQ7qrAUhHzSCJxdiDOLE5jfw2YsBiZ04e2hVIJuZVzJRDMBbBY18m4wMjLa2A5skOjCIP
	ylH5j
X-Gm-Gg: ASbGncvhvtOi4uEQtSgcHPslaN51BT6hxeZlEzv2OShGXcICwq5sVNxC+gmmWfxelL2
	/JZ8U6bYiniJQCSg4ZVKqxWfplT7ATcau8hL9xKZHzgxl+tcBf1clOAo70VNuMUCy/1pKg89mob
	IZHlMFyCD4/ASNAm0DoKJKC77meNbFkPYFD6Czrt9KCnqxq2H8vYLbavWud32V4B076CpRgHh6o
	1gkGHkWf6PG5ES42mE03gnVv4k6uP+03clu5/pXwFA7w06UuZ9y8PCgvQsdiC1Ifa2iSRFymI72
	/Cx0q+IZUSE+cozmC3aPgsm2Nl7gKzzATXZEtKU/3Z8o3I1Oqe/x59uI6/jZS+fbMUAXdpcOeAt
	H2skfK3P162e9iw+4AUfXZuyz6AkKrUzNRlpjmhz2hnPnnKxiIGYo/T1kcJuLNL0RO2i7XxVbsT
	3/K9GU+J1jUlLpPRZRKlwxhLlWzjVDqIgY06bdj9l4LidFKs+/ulVJxb84O3emXdHwr9pNNLsu
X-Google-Smtp-Source: AGHT+IH3AJ/zBeH3ACpLW33N9Wt0hD5Fv7YP0lb3IWHQ+/JuqA8ij3dO37aPxE+IW/wmyQSOZGBv9w==
X-Received: by 2002:a05:600c:1c88:b0:477:9cdb:e337 with SMTP id 5b1f17b1804b1-477c0165badmr342200875e9.7.1764361184288;
        Fri, 28 Nov 2025 12:19: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 1/3] x86/svm: Make vmcb_struct private to svm/
Date: Fri, 28 Nov 2025 20:19:35 +0000
Message-Id: <20251128201937.1294742-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251128201937.1294742-1-andrew.cooper3@citrix.com>
References: <20251128201937.1294742-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The rest of Xen has no buisness knowing this structure, and it is currently
included via xen/sched.h into most code.  Create a new private svm/vmcb.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/hvm/svm/asid.c             |   1 +
 xen/arch/x86/hvm/svm/emulate.c          |   1 +
 xen/arch/x86/hvm/svm/intr.c             |   1 +
 xen/arch/x86/hvm/svm/nestedsvm.c        |   1 +
 xen/arch/x86/hvm/svm/svm.c              |   1 +
 xen/arch/x86/hvm/svm/svmdebug.c         |   2 +
 xen/arch/x86/hvm/svm/vmcb.c             |   2 +
 xen/arch/x86/hvm/svm/vmcb.h             | 617 ++++++++++++++++++++++++
 xen/arch/x86/include/asm/hvm/svm/vmcb.h | 606 -----------------------
 9 files changed, 626 insertions(+), 606 deletions(-)
 create mode 100644 xen/arch/x86/hvm/svm/vmcb.h

diff --git a/xen/arch/x86/hvm/svm/asid.c b/xen/arch/x86/hvm/svm/asid.c
index 03f98b7a8b89..0e115243a3af 100644
--- a/xen/arch/x86/hvm/svm/asid.c
+++ b/xen/arch/x86/hvm/svm/asid.c
@@ -9,6 +9,7 @@
 #include <asm/hvm/svm/svm.h>
 
 #include "svm.h"
+#include "vmcb.h"
 
 void svm_asid_init(const struct cpuinfo_x86 *c)
 {
diff --git a/xen/arch/x86/hvm/svm/emulate.c b/xen/arch/x86/hvm/svm/emulate.c
index 93ac1d3435f9..d8aa45590885 100644
--- a/xen/arch/x86/hvm/svm/emulate.c
+++ b/xen/arch/x86/hvm/svm/emulate.c
@@ -15,6 +15,7 @@
 #include <asm/hvm/svm/vmcb.h>
 
 #include "svm.h"
+#include "vmcb.h"
 
 static unsigned long svm_nextrip_insn_length(struct vcpu *v)
 {
diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
index 46186a110261..931973a9fad4 100644
--- a/xen/arch/x86/hvm/svm/intr.c
+++ b/xen/arch/x86/hvm/svm/intr.c
@@ -26,6 +26,7 @@
 #include <xen/domain_page.h>
 
 #include "nestedhvm.h"
+#include "vmcb.h"
 
 static void svm_inject_nmi(struct vcpu *v)
 {
diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
index 1813692ffb03..191466755148 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -16,6 +16,7 @@
 
 #include "nestedhvm.h"
 #include "svm.h"
+#include "vmcb.h"
 
 #define NSVM_ERROR_VVMCB        1
 #define NSVM_ERROR_VMENTRY      2
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 2d7c598ffe99..14b3a427e642 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -44,6 +44,7 @@
 
 #include "nestedhvm.h"
 #include "svm.h"
+#include "vmcb.h"
 
 void noreturn svm_asm_do_resume(void);
 
diff --git a/xen/arch/x86/hvm/svm/svmdebug.c b/xen/arch/x86/hvm/svm/svmdebug.c
index 9d3badcf5da0..bdb9ea3583ee 100644
--- a/xen/arch/x86/hvm/svm/svmdebug.c
+++ b/xen/arch/x86/hvm/svm/svmdebug.c
@@ -10,6 +10,8 @@
 #include <asm/msr-index.h>
 #include <asm/hvm/svm/svmdebug.h>
 
+#include "vmcb.h"
+
 static void svm_dump_sel(const char *name, const struct segment_register *s)
 {
     printk("%s: %04x %04x %08x %016"PRIx64"\n",
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index c57d314a2486..44fa76bf0228 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -22,6 +22,8 @@
 #include <asm/p2m.h>
 #include <asm/spec_ctrl.h>
 
+#include "vmcb.h"
+
 struct vmcb_struct *alloc_vmcb(void)
 {
     struct vmcb_struct *vmcb;
diff --git a/xen/arch/x86/hvm/svm/vmcb.h b/xen/arch/x86/hvm/svm/vmcb.h
new file mode 100644
index 000000000000..68012948a9e3
--- /dev/null
+++ b/xen/arch/x86/hvm/svm/vmcb.h
@@ -0,0 +1,617 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef SVM_PRIVATE_VMCB_H
+#define SVM_PRIVATE_VMCB_H
+
+#include <xen/types.h>
+
+#include <asm/x86_emulate.h>
+
+struct vcpu;
+
+/* general 1 intercepts */
+enum GenericIntercept1bits
+{
+    GENERAL1_INTERCEPT_INTR          = 1 << 0,
+    GENERAL1_INTERCEPT_NMI           = 1 << 1,
+    GENERAL1_INTERCEPT_SMI           = 1 << 2,
+    GENERAL1_INTERCEPT_INIT          = 1 << 3,
+    GENERAL1_INTERCEPT_VINTR         = 1 << 4,
+    GENERAL1_INTERCEPT_CR0_SEL_WRITE = 1 << 5,
+    GENERAL1_INTERCEPT_IDTR_READ     = 1 << 6,
+    GENERAL1_INTERCEPT_GDTR_READ     = 1 << 7,
+    GENERAL1_INTERCEPT_LDTR_READ     = 1 << 8,
+    GENERAL1_INTERCEPT_TR_READ       = 1 << 9,
+    GENERAL1_INTERCEPT_IDTR_WRITE    = 1 << 10,
+    GENERAL1_INTERCEPT_GDTR_WRITE    = 1 << 11,
+    GENERAL1_INTERCEPT_LDTR_WRITE    = 1 << 12,
+    GENERAL1_INTERCEPT_TR_WRITE      = 1 << 13,
+    GENERAL1_INTERCEPT_RDTSC         = 1 << 14,
+    GENERAL1_INTERCEPT_RDPMC         = 1 << 15,
+    GENERAL1_INTERCEPT_PUSHF         = 1 << 16,
+    GENERAL1_INTERCEPT_POPF          = 1 << 17,
+    GENERAL1_INTERCEPT_CPUID         = 1 << 18,
+    GENERAL1_INTERCEPT_RSM           = 1 << 19,
+    GENERAL1_INTERCEPT_IRET          = 1 << 20,
+    GENERAL1_INTERCEPT_SWINT         = 1 << 21,
+    GENERAL1_INTERCEPT_INVD          = 1 << 22,
+    GENERAL1_INTERCEPT_PAUSE         = 1 << 23,
+    GENERAL1_INTERCEPT_HLT           = 1 << 24,
+    GENERAL1_INTERCEPT_INVLPG        = 1 << 25,
+    GENERAL1_INTERCEPT_INVLPGA       = 1 << 26,
+    GENERAL1_INTERCEPT_IOIO_PROT     = 1 << 27,
+    GENERAL1_INTERCEPT_MSR_PROT      = 1 << 28,
+    GENERAL1_INTERCEPT_TASK_SWITCH   = 1 << 29,
+    GENERAL1_INTERCEPT_FERR_FREEZE   = 1 << 30,
+    GENERAL1_INTERCEPT_SHUTDOWN_EVT  = 1u << 31
+};
+
+/* general 2 intercepts */
+enum GenericIntercept2bits
+{
+    GENERAL2_INTERCEPT_VMRUN   = 1 << 0,
+    GENERAL2_INTERCEPT_VMMCALL = 1 << 1,
+    GENERAL2_INTERCEPT_VMLOAD  = 1 << 2,
+    GENERAL2_INTERCEPT_VMSAVE  = 1 << 3,
+    GENERAL2_INTERCEPT_STGI    = 1 << 4,
+    GENERAL2_INTERCEPT_CLGI    = 1 << 5,
+    GENERAL2_INTERCEPT_SKINIT  = 1 << 6,
+    GENERAL2_INTERCEPT_RDTSCP  = 1 << 7,
+    GENERAL2_INTERCEPT_ICEBP   = 1 << 8,
+    GENERAL2_INTERCEPT_WBINVD  = 1 << 9,
+    GENERAL2_INTERCEPT_MONITOR = 1 << 10,
+    GENERAL2_INTERCEPT_MWAIT   = 1 << 11,
+    GENERAL2_INTERCEPT_MWAIT_CONDITIONAL = 1 << 12,
+    GENERAL2_INTERCEPT_XSETBV  = 1 << 13,
+    GENERAL2_INTERCEPT_RDPRU   = 1 << 14,
+};
+
+
+/* control register intercepts */
+enum CRInterceptBits
+{
+    CR_INTERCEPT_CR0_READ   = 1 << 0,
+    CR_INTERCEPT_CR1_READ   = 1 << 1,
+    CR_INTERCEPT_CR2_READ   = 1 << 2,
+    CR_INTERCEPT_CR3_READ   = 1 << 3,
+    CR_INTERCEPT_CR4_READ   = 1 << 4,
+    CR_INTERCEPT_CR5_READ   = 1 << 5,
+    CR_INTERCEPT_CR6_READ   = 1 << 6,
+    CR_INTERCEPT_CR7_READ   = 1 << 7,
+    CR_INTERCEPT_CR8_READ   = 1 << 8,
+    CR_INTERCEPT_CR9_READ   = 1 << 9,
+    CR_INTERCEPT_CR10_READ  = 1 << 10,
+    CR_INTERCEPT_CR11_READ  = 1 << 11,
+    CR_INTERCEPT_CR12_READ  = 1 << 12,
+    CR_INTERCEPT_CR13_READ  = 1 << 13,
+    CR_INTERCEPT_CR14_READ  = 1 << 14,
+    CR_INTERCEPT_CR15_READ  = 1 << 15,
+    CR_INTERCEPT_CR0_WRITE  = 1 << 16,
+    CR_INTERCEPT_CR1_WRITE  = 1 << 17,
+    CR_INTERCEPT_CR2_WRITE  = 1 << 18,
+    CR_INTERCEPT_CR3_WRITE  = 1 << 19,
+    CR_INTERCEPT_CR4_WRITE  = 1 << 20,
+    CR_INTERCEPT_CR5_WRITE  = 1 << 21,
+    CR_INTERCEPT_CR6_WRITE  = 1 << 22,
+    CR_INTERCEPT_CR7_WRITE  = 1 << 23,
+    CR_INTERCEPT_CR8_WRITE  = 1 << 24,
+    CR_INTERCEPT_CR9_WRITE  = 1 << 25,
+    CR_INTERCEPT_CR10_WRITE = 1 << 26,
+    CR_INTERCEPT_CR11_WRITE = 1 << 27,
+    CR_INTERCEPT_CR12_WRITE = 1 << 28,
+    CR_INTERCEPT_CR13_WRITE = 1 << 29,
+    CR_INTERCEPT_CR14_WRITE = 1 << 30,
+    CR_INTERCEPT_CR15_WRITE = 1u << 31,
+};
+
+
+/* debug register intercepts */
+enum DRInterceptBits
+{
+    DR_INTERCEPT_DR0_READ   = 1 << 0,
+    DR_INTERCEPT_DR1_READ   = 1 << 1,
+    DR_INTERCEPT_DR2_READ   = 1 << 2,
+    DR_INTERCEPT_DR3_READ   = 1 << 3,
+    DR_INTERCEPT_DR4_READ   = 1 << 4,
+    DR_INTERCEPT_DR5_READ   = 1 << 5,
+    DR_INTERCEPT_DR6_READ   = 1 << 6,
+    DR_INTERCEPT_DR7_READ   = 1 << 7,
+    DR_INTERCEPT_DR8_READ   = 1 << 8,
+    DR_INTERCEPT_DR9_READ   = 1 << 9,
+    DR_INTERCEPT_DR10_READ  = 1 << 10,
+    DR_INTERCEPT_DR11_READ  = 1 << 11,
+    DR_INTERCEPT_DR12_READ  = 1 << 12,
+    DR_INTERCEPT_DR13_READ  = 1 << 13,
+    DR_INTERCEPT_DR14_READ  = 1 << 14,
+    DR_INTERCEPT_DR15_READ  = 1 << 15,
+    DR_INTERCEPT_DR0_WRITE  = 1 << 16,
+    DR_INTERCEPT_DR1_WRITE  = 1 << 17,
+    DR_INTERCEPT_DR2_WRITE  = 1 << 18,
+    DR_INTERCEPT_DR3_WRITE  = 1 << 19,
+    DR_INTERCEPT_DR4_WRITE  = 1 << 20,
+    DR_INTERCEPT_DR5_WRITE  = 1 << 21,
+    DR_INTERCEPT_DR6_WRITE  = 1 << 22,
+    DR_INTERCEPT_DR7_WRITE  = 1 << 23,
+    DR_INTERCEPT_DR8_WRITE  = 1 << 24,
+    DR_INTERCEPT_DR9_WRITE  = 1 << 25,
+    DR_INTERCEPT_DR10_WRITE = 1 << 26,
+    DR_INTERCEPT_DR11_WRITE = 1 << 27,
+    DR_INTERCEPT_DR12_WRITE = 1 << 28,
+    DR_INTERCEPT_DR13_WRITE = 1 << 29,
+    DR_INTERCEPT_DR14_WRITE = 1 << 30,
+    DR_INTERCEPT_DR15_WRITE = 1u << 31,
+};
+
+enum VMEXIT_EXITCODE
+{
+    /* control register read exitcodes */
+    VMEXIT_CR0_READ    =   0, /* 0x0 */
+    VMEXIT_CR1_READ    =   1, /* 0x1 */
+    VMEXIT_CR2_READ    =   2, /* 0x2 */
+    VMEXIT_CR3_READ    =   3, /* 0x3 */
+    VMEXIT_CR4_READ    =   4, /* 0x4 */
+    VMEXIT_CR5_READ    =   5, /* 0x5 */
+    VMEXIT_CR6_READ    =   6, /* 0x6 */
+    VMEXIT_CR7_READ    =   7, /* 0x7 */
+    VMEXIT_CR8_READ    =   8, /* 0x8 */
+    VMEXIT_CR9_READ    =   9, /* 0x9 */
+    VMEXIT_CR10_READ   =  10, /* 0xa */
+    VMEXIT_CR11_READ   =  11, /* 0xb */
+    VMEXIT_CR12_READ   =  12, /* 0xc */
+    VMEXIT_CR13_READ   =  13, /* 0xd */
+    VMEXIT_CR14_READ   =  14, /* 0xe */
+    VMEXIT_CR15_READ   =  15, /* 0xf */
+
+    /* control register write exitcodes */
+    VMEXIT_CR0_WRITE   =  16, /* 0x10 */
+    VMEXIT_CR1_WRITE   =  17, /* 0x11 */
+    VMEXIT_CR2_WRITE   =  18, /* 0x12 */
+    VMEXIT_CR3_WRITE   =  19, /* 0x13 */
+    VMEXIT_CR4_WRITE   =  20, /* 0x14 */
+    VMEXIT_CR5_WRITE   =  21, /* 0x15 */
+    VMEXIT_CR6_WRITE   =  22, /* 0x16 */
+    VMEXIT_CR7_WRITE   =  23, /* 0x17 */
+    VMEXIT_CR8_WRITE   =  24, /* 0x18 */
+    VMEXIT_CR9_WRITE   =  25, /* 0x19 */
+    VMEXIT_CR10_WRITE  =  26, /* 0x1a */
+    VMEXIT_CR11_WRITE  =  27, /* 0x1b */
+    VMEXIT_CR12_WRITE  =  28, /* 0x1c */
+    VMEXIT_CR13_WRITE  =  29, /* 0x1d */
+    VMEXIT_CR14_WRITE  =  30, /* 0x1e */
+    VMEXIT_CR15_WRITE  =  31, /* 0x1f */
+
+    /* debug register read exitcodes */
+    VMEXIT_DR0_READ    =  32, /* 0x20 */
+    VMEXIT_DR1_READ    =  33, /* 0x21 */
+    VMEXIT_DR2_READ    =  34, /* 0x22 */
+    VMEXIT_DR3_READ    =  35, /* 0x23 */
+    VMEXIT_DR4_READ    =  36, /* 0x24 */
+    VMEXIT_DR5_READ    =  37, /* 0x25 */
+    VMEXIT_DR6_READ    =  38, /* 0x26 */
+    VMEXIT_DR7_READ    =  39, /* 0x27 */
+    VMEXIT_DR8_READ    =  40, /* 0x28 */
+    VMEXIT_DR9_READ    =  41, /* 0x29 */
+    VMEXIT_DR10_READ   =  42, /* 0x2a */
+    VMEXIT_DR11_READ   =  43, /* 0x2b */
+    VMEXIT_DR12_READ   =  44, /* 0x2c */
+    VMEXIT_DR13_READ   =  45, /* 0x2d */
+    VMEXIT_DR14_READ   =  46, /* 0x2e */
+    VMEXIT_DR15_READ   =  47, /* 0x2f */
+
+    /* debug register write exitcodes */
+    VMEXIT_DR0_WRITE   =  48, /* 0x30 */
+    VMEXIT_DR1_WRITE   =  49, /* 0x31 */
+    VMEXIT_DR2_WRITE   =  50, /* 0x32 */
+    VMEXIT_DR3_WRITE   =  51, /* 0x33 */
+    VMEXIT_DR4_WRITE   =  52, /* 0x34 */
+    VMEXIT_DR5_WRITE   =  53, /* 0x35 */
+    VMEXIT_DR6_WRITE   =  54, /* 0x36 */
+    VMEXIT_DR7_WRITE   =  55, /* 0x37 */
+    VMEXIT_DR8_WRITE   =  56, /* 0x38 */
+    VMEXIT_DR9_WRITE   =  57, /* 0x39 */
+    VMEXIT_DR10_WRITE  =  58, /* 0x3a */
+    VMEXIT_DR11_WRITE  =  59, /* 0x3b */
+    VMEXIT_DR12_WRITE  =  60, /* 0x3c */
+    VMEXIT_DR13_WRITE  =  61, /* 0x3d */
+    VMEXIT_DR14_WRITE  =  62, /* 0x3e */
+    VMEXIT_DR15_WRITE  =  63, /* 0x3f */
+
+    /* processor exception exitcodes (VMEXIT_EXCP[0-31]) */
+    VMEXIT_EXCEPTION_DE  =  64, /* 0x40, divide-by-zero-error */
+    VMEXIT_EXCEPTION_DB  =  65, /* 0x41, debug */
+    VMEXIT_EXCEPTION_NMI =  66, /* 0x42, non-maskable-interrupt */
+    VMEXIT_EXCEPTION_BP  =  67, /* 0x43, breakpoint */
+    VMEXIT_EXCEPTION_OF  =  68, /* 0x44, overflow */
+    VMEXIT_EXCEPTION_BR  =  69, /* 0x45, bound-range */
+    VMEXIT_EXCEPTION_UD  =  70, /* 0x46, invalid-opcode*/
+    VMEXIT_EXCEPTION_NM  =  71, /* 0x47, device-not-available */
+    VMEXIT_EXCEPTION_DF  =  72, /* 0x48, double-fault */
+    VMEXIT_EXCEPTION_09  =  73, /* 0x49, unsupported (reserved) */
+    VMEXIT_EXCEPTION_TS  =  74, /* 0x4a, invalid-tss */
+    VMEXIT_EXCEPTION_NP  =  75, /* 0x4b, segment-not-present */
+    VMEXIT_EXCEPTION_SS  =  76, /* 0x4c, stack */
+    VMEXIT_EXCEPTION_GP  =  77, /* 0x4d, general-protection */
+    VMEXIT_EXCEPTION_PF  =  78, /* 0x4e, page-fault */
+    VMEXIT_EXCEPTION_15  =  79, /* 0x4f, reserved */
+    VMEXIT_EXCEPTION_MF  =  80, /* 0x50, x87 floating-point exception-pending */
+    VMEXIT_EXCEPTION_AC  =  81, /* 0x51, alignment-check */
+    VMEXIT_EXCEPTION_MC  =  82, /* 0x52, machine-check */
+    VMEXIT_EXCEPTION_XF  =  83, /* 0x53, simd floating-point */
+/*  VMEXIT_EXCEPTION_20  =  84,    0x54, #VE (Intel specific) */
+    VMEXIT_EXCEPTION_CP  =  85, /* 0x55, controlflow protection */
+
+    /* exceptions 20-31 (exitcodes 84-95) are reserved */
+
+    /* ...and the rest of the #VMEXITs */
+    VMEXIT_INTR             =  96, /* 0x60 */
+    VMEXIT_NMI              =  97, /* 0x61 */
+    VMEXIT_SMI              =  98, /* 0x62 */
+    VMEXIT_INIT             =  99, /* 0x63 */
+    VMEXIT_VINTR            = 100, /* 0x64 */
+    VMEXIT_CR0_SEL_WRITE    = 101, /* 0x65 */
+    VMEXIT_IDTR_READ        = 102, /* 0x66 */
+    VMEXIT_GDTR_READ        = 103, /* 0x67 */
+    VMEXIT_LDTR_READ        = 104, /* 0x68 */
+    VMEXIT_TR_READ          = 105, /* 0x69 */
+    VMEXIT_IDTR_WRITE       = 106, /* 0x6a */
+    VMEXIT_GDTR_WRITE       = 107, /* 0x6b */
+    VMEXIT_LDTR_WRITE       = 108, /* 0x6c */
+    VMEXIT_TR_WRITE         = 109, /* 0x6d */
+    VMEXIT_RDTSC            = 110, /* 0x6e */
+    VMEXIT_RDPMC            = 111, /* 0x6f */
+    VMEXIT_PUSHF            = 112, /* 0x70 */
+    VMEXIT_POPF             = 113, /* 0x71 */
+    VMEXIT_CPUID            = 114, /* 0x72 */
+    VMEXIT_RSM              = 115, /* 0x73 */
+    VMEXIT_IRET             = 116, /* 0x74 */
+    VMEXIT_SWINT            = 117, /* 0x75 */
+    VMEXIT_INVD             = 118, /* 0x76 */
+    VMEXIT_PAUSE            = 119, /* 0x77 */
+    VMEXIT_HLT              = 120, /* 0x78 */
+    VMEXIT_INVLPG           = 121, /* 0x79 */
+    VMEXIT_INVLPGA          = 122, /* 0x7a */
+    VMEXIT_IOIO             = 123, /* 0x7b */
+    VMEXIT_MSR              = 124, /* 0x7c */
+    VMEXIT_TASK_SWITCH      = 125, /* 0x7d */
+    VMEXIT_FERR_FREEZE      = 126, /* 0x7e */
+    VMEXIT_SHUTDOWN         = 127, /* 0x7f */
+    VMEXIT_VMRUN            = 128, /* 0x80 */
+    VMEXIT_VMMCALL          = 129, /* 0x81 */
+    VMEXIT_VMLOAD           = 130, /* 0x82 */
+    VMEXIT_VMSAVE           = 131, /* 0x83 */
+    VMEXIT_STGI             = 132, /* 0x84 */
+    VMEXIT_CLGI             = 133, /* 0x85 */
+    VMEXIT_SKINIT           = 134, /* 0x86 */
+    VMEXIT_RDTSCP           = 135, /* 0x87 */
+    VMEXIT_ICEBP            = 136, /* 0x88 */
+    VMEXIT_WBINVD           = 137, /* 0x89 */
+    VMEXIT_MONITOR          = 138, /* 0x8a */
+    VMEXIT_MWAIT            = 139, /* 0x8b */
+    VMEXIT_MWAIT_CONDITIONAL= 140, /* 0x8c */
+    VMEXIT_XSETBV           = 141, /* 0x8d */
+    VMEXIT_RDPRU            = 142, /* 0x8e */
+    /* Remember to also update VMEXIT_NPF_PERFC! */
+    VMEXIT_NPF              = 1024, /* 0x400, nested paging fault */
+    /* Remember to also update SVM_PERF_EXIT_REASON_SIZE! */
+    VMEXIT_INVALID          =  -1
+};
+
+enum
+{
+    /* Available on all SVM-capable hardware. */
+    TLB_CTRL_NO_FLUSH             = 0,
+    TLB_CTRL_FLUSH_ALL            = 1,
+
+    /* Available with the FlushByASID feature. */
+    TLB_CTRL_FLUSH_ASID           = 3,
+    TLB_CTRL_FLUSH_ASID_NONGLOBAL = 7,
+};
+
+typedef union
+{
+    struct
+    {
+        uint8_t  vector;
+        uint8_t  type:3;
+        bool     ev:1;
+        uint32_t resvd1:19;
+        bool     v:1;
+        uint32_t ec;
+    };
+    uint64_t raw;
+} intinfo_t;
+
+typedef union {
+    struct {
+        bool intr_shadow:    1;
+        bool guest_intr_mask:1;
+    };
+    uint64_t raw;
+} intstat_t;
+
+typedef union
+{
+    u64 bytes;
+    struct
+    {
+        u64 tpr:          8;
+        u64 irq:          1;
+        u64 vgif:         1;
+        u64 rsvd0:        6;
+        u64 prio:         4;
+        u64 ign_tpr:      1;
+        u64 rsvd1:        3;
+        u64 intr_masking: 1;
+        u64 vgif_enable:  1;
+        u64 rsvd2:        6;
+        u64 vector:       8;
+        u64 rsvd3:       24;
+    } fields;
+} vintr_t;
+
+typedef union
+{
+    u64 bytes;
+    struct
+    {
+        u64 type: 1;
+        u64 rsv0: 1;
+        u64 str:  1;
+        u64 rep:  1;
+        u64 sz8:  1;
+        u64 sz16: 1;
+        u64 sz32: 1;
+        u64 rsv1: 9;
+        u64 port: 16;
+    } fields;
+} ioio_info_t;
+
+typedef union
+{
+    u64 bytes;
+    struct
+    {
+        u64 lbr_enable:1;
+        u64 vloadsave_enable:1;
+    } fields;
+} virt_ext_t;
+
+typedef union
+{
+    struct {
+        bool intercepts:1; /* 0:  cr/dr/exception/general intercepts,
+                            *     pause_filter_count, tsc_offset */
+        bool iopm:1;       /* 1:  iopm_base_pa, msrpm_base_pa */
+        bool asid:1;       /* 2:  asid */
+        bool tpr:1;        /* 3:  vintr */
+        bool np:1;         /* 4:  np, h_cr3, g_pat */
+        bool cr:1;         /* 5:  cr0, cr3, cr4, efer */
+        bool dr:1;         /* 6:  dr6, dr7 */
+        bool dt:1;         /* 7:  gdtr, idtr */
+        bool seg:1;        /* 8:  cs, ds, es, ss, cpl */
+        bool cr2:1;        /* 9:  cr2 */
+        bool lbr:1;        /* 10: debugctlmsr, last{branch,int}{to,from}ip */
+        bool :1;
+        bool cet:1;        /* 12: msr_s_set, ssp, msr_isst */
+    };
+    uint32_t raw;
+} vmcbcleanbits_t;
+
+#define IOPM_SIZE   (12 * 1024)
+#define MSRPM_SIZE  (8  * 1024)
+
+struct vmcb_struct {
+    u32 _cr_intercepts;         /* offset 0x00 - cleanbit 0 */
+    u32 _dr_intercepts;         /* offset 0x04 - cleanbit 0 */
+    u32 _exception_intercepts;  /* offset 0x08 - cleanbit 0 */
+    u32 _general1_intercepts;   /* offset 0x0C - cleanbit 0 */
+    u32 _general2_intercepts;   /* offset 0x10 - cleanbit 0 */
+    u32 res01[10];
+    u16 _pause_filter_thresh;   /* offset 0x3C - cleanbit 0 */
+    u16 _pause_filter_count;    /* offset 0x3E - cleanbit 0 */
+    u64 _iopm_base_pa;          /* offset 0x40 - cleanbit 1 */
+    u64 _msrpm_base_pa;         /* offset 0x48 - cleanbit 1 */
+    u64 _tsc_offset;            /* offset 0x50 - cleanbit 0 */
+    u32 _asid;                  /* offset 0x58 - cleanbit 2 */
+    u8  tlb_control;            /* offset 0x5C - TLB_CTRL_* */
+    u8  res07[3];
+    vintr_t _vintr;             /* offset 0x60 - cleanbit 3 */
+    intstat_t int_stat;         /* offset 0x68 */
+    u64 exitcode;               /* offset 0x70 */
+    union {
+        struct {
+            uint64_t exitinfo1; /* offset 0x78 */
+            uint64_t exitinfo2; /* offset 0x80 */
+        };
+        union {
+            struct {
+                uint32_t ec; /* #NP, #SS, #GP, #PF, #AC */
+                uint32_t :32;
+
+                uint64_t cr2; /* #PF */
+            } exc;
+            struct {
+                bool     in:1;
+                bool     :1;
+                bool     str:1;
+                bool     rep:1;
+                uint16_t bytes:3;
+                uint16_t /* asz */:3;
+                uint16_t seg:3;
+                uint16_t :3;
+                uint16_t port;
+                uint32_t :32;
+
+                uint64_t nrip;
+            } io;
+            struct {
+                uint64_t gpr:4;
+                uint64_t :59;
+                bool     mov_insn:1; /* MOV, as opposed to LMSW, CLTS, etc */
+            } mov_cr;
+            struct {
+                uint64_t ec;
+                uint64_t gpa;
+            } npf;
+            struct {
+                uint16_t sel;
+                uint64_t :48;
+
+                uint32_t ec;
+                uint32_t :4;
+                bool     iret:1;
+                uint32_t :1;
+                bool     jmp:1;
+                uint32_t :5;
+                bool     ev:1;
+                uint32_t :3;
+                bool     rf:1;
+            } task_switch;
+        } ei;
+    };
+    intinfo_t exit_int_info;    /* offset 0x88 */
+    union {                     /* offset 0x90 - cleanbit 4 */
+        struct {
+            bool _np        :1;
+            bool _sev       :1;
+            bool _sev_es    :1;
+            bool _gmet      :1;
+            bool _np_sss    :1;
+            bool _vte       :1;
+        };
+        uint64_t _np_ctrl;
+    };
+    u64 res08[2];
+    intinfo_t event_inj;        /* offset 0xA8 */
+    u64 _h_cr3;                 /* offset 0xB0 - cleanbit 4 */
+    virt_ext_t virt_ext;        /* offset 0xB8 */
+    vmcbcleanbits_t cleanbits;  /* offset 0xC0 */
+    u32 res09;                  /* offset 0xC4 */
+    u64 nextrip;                /* offset 0xC8 */
+    u8  guest_ins_len;          /* offset 0xD0 */
+    u8  guest_ins[15];          /* offset 0xD1 */
+    u64 res10a[100];            /* offset 0xE0 pad to save area */
+
+    union {
+        struct segment_register sreg[6];
+        struct {
+            struct segment_register es;  /* offset 0x400 - cleanbit 8 */
+            struct segment_register cs;  /* cleanbit 8 */
+            struct segment_register ss;  /* cleanbit 8 */
+            struct segment_register ds;  /* cleanbit 8 */
+            struct segment_register fs;
+            struct segment_register gs;
+        };
+    };
+    struct segment_register gdtr; /* cleanbit 7 */
+    struct segment_register ldtr;
+    struct segment_register idtr; /* cleanbit 7 */
+    struct segment_register tr;
+    u64 res10[5];
+    u8 res11[3];
+    u8 _cpl;                    /* cleanbit 8 */
+    u32 res12;
+    u64 _efer;                  /* offset 0x400 + 0xD0 - cleanbit 5 */
+    u64 res13[14];
+    u64 _cr4;                   /* offset 0x400 + 0x148 - cleanbit 5 */
+    u64 _cr3;                   /* cleanbit 5 */
+    u64 _cr0;                   /* cleanbit 5 */
+    u64 _dr7;                   /* cleanbit 6 */
+    u64 _dr6;                   /* cleanbit 6 */
+    u64 rflags;
+    u64 rip;
+    u64 res14[11];
+    u64 rsp;
+    u64 _msr_s_cet;             /* offset 0x400 + 0x1E0 - cleanbit 12 */
+    u64 _ssp;                   /* offset 0x400 + 0x1E8   | */
+    u64 _msr_isst;              /* offset 0x400 + 0x1F0   v */
+    u64 rax;
+    u64 star;
+    u64 lstar;
+    u64 cstar;
+    u64 sfmask;
+    u64 kerngsbase;
+    u64 sysenter_cs;
+    u64 sysenter_esp;
+    u64 sysenter_eip;
+    u64 _cr2;                   /* cleanbit 9 */
+    u64 res16[4];
+    u64 _g_pat;                 /* cleanbit 4 */
+    u64 _debugctlmsr;           /* cleanbit 10 */
+    u64 _lastbranchfromip;      /* cleanbit 10 */
+    u64 _lastbranchtoip;        /* cleanbit 10 */
+    u64 _lastintfromip;         /* cleanbit 10 */
+    u64 _lastinttoip;           /* cleanbit 10 */
+    u64 res17[9];
+    u64 spec_ctrl;
+    u64 res18[291];
+};
+
+struct vmcb_struct *alloc_vmcb(void);
+void free_vmcb(struct vmcb_struct *vmcb);
+
+int  svm_create_vmcb(struct vcpu *v);
+void svm_destroy_vmcb(struct vcpu *v);
+
+void setup_vmcb_dump(void);
+
+/*
+ * VMCB accessor functions.
+ */
+
+#define VMCB_ACCESSORS_(name, type, cleanbit)     \
+static inline void                                \
+vmcb_set_ ## name(struct vmcb_struct *vmcb,       \
+                  type value)                     \
+{                                                 \
+    vmcb->_ ## name = value;                      \
+    vmcb->cleanbits.cleanbit = false;             \
+}                                                 \
+static inline type                                \
+vmcb_get_ ## name(const struct vmcb_struct *vmcb) \
+{                                                 \
+    return vmcb->_ ## name;                       \
+}
+
+#define VMCB_ACCESSORS(name, cleanbit) \
+    VMCB_ACCESSORS_(name, typeof(((struct vmcb_struct){})._ ## name), cleanbit)
+
+VMCB_ACCESSORS(cr_intercepts, intercepts)
+VMCB_ACCESSORS(dr_intercepts, intercepts)
+VMCB_ACCESSORS(exception_intercepts, intercepts)
+VMCB_ACCESSORS(general1_intercepts, intercepts)
+VMCB_ACCESSORS(general2_intercepts, intercepts)
+VMCB_ACCESSORS(pause_filter_count, intercepts)
+VMCB_ACCESSORS(pause_filter_thresh, intercepts)
+VMCB_ACCESSORS(tsc_offset, intercepts)
+VMCB_ACCESSORS(iopm_base_pa, iopm)
+VMCB_ACCESSORS(msrpm_base_pa, iopm)
+VMCB_ACCESSORS(asid, asid)
+VMCB_ACCESSORS(vintr, tpr)
+VMCB_ACCESSORS(np_ctrl, np)
+VMCB_ACCESSORS_(np, bool, np)
+VMCB_ACCESSORS_(sev, bool, np)
+VMCB_ACCESSORS_(sev_es, bool, np)
+VMCB_ACCESSORS_(gmet, bool, np)
+VMCB_ACCESSORS_(vte, bool, np)
+VMCB_ACCESSORS(h_cr3, np)
+VMCB_ACCESSORS(g_pat, np)
+VMCB_ACCESSORS(cr0, cr)
+VMCB_ACCESSORS(cr3, cr)
+VMCB_ACCESSORS(cr4, cr)
+VMCB_ACCESSORS(efer, cr)
+VMCB_ACCESSORS(dr6, dr)
+VMCB_ACCESSORS(dr7, dr)
+VMCB_ACCESSORS(cpl, seg)
+VMCB_ACCESSORS(cr2, cr2)
+VMCB_ACCESSORS(debugctlmsr, lbr)
+VMCB_ACCESSORS(lastbranchfromip, lbr)
+VMCB_ACCESSORS(lastbranchtoip, lbr)
+VMCB_ACCESSORS(lastintfromip, lbr)
+VMCB_ACCESSORS(lastinttoip, lbr)
+VMCB_ACCESSORS(msr_s_cet, cet)
+VMCB_ACCESSORS(ssp, cet)
+VMCB_ACCESSORS(msr_isst, cet)
+
+#undef VMCB_ACCESSORS
+
+#endif /* SVM_PRIVATE_VMCB_H */
diff --git a/xen/arch/x86/include/asm/hvm/svm/vmcb.h b/xen/arch/x86/include/asm/hvm/svm/vmcb.h
index 28f715e37692..717215ff969b 100644
--- a/xen/arch/x86/include/asm/hvm/svm/vmcb.h
+++ b/xen/arch/x86/include/asm/hvm/svm/vmcb.h
@@ -10,544 +10,6 @@
 
 #include <xen/types.h>
 
-/* general 1 intercepts */
-enum GenericIntercept1bits
-{
-    GENERAL1_INTERCEPT_INTR          = 1 << 0,
-    GENERAL1_INTERCEPT_NMI           = 1 << 1,
-    GENERAL1_INTERCEPT_SMI           = 1 << 2,
-    GENERAL1_INTERCEPT_INIT          = 1 << 3,
-    GENERAL1_INTERCEPT_VINTR         = 1 << 4,
-    GENERAL1_INTERCEPT_CR0_SEL_WRITE = 1 << 5,
-    GENERAL1_INTERCEPT_IDTR_READ     = 1 << 6,
-    GENERAL1_INTERCEPT_GDTR_READ     = 1 << 7,
-    GENERAL1_INTERCEPT_LDTR_READ     = 1 << 8,
-    GENERAL1_INTERCEPT_TR_READ       = 1 << 9,
-    GENERAL1_INTERCEPT_IDTR_WRITE    = 1 << 10,
-    GENERAL1_INTERCEPT_GDTR_WRITE    = 1 << 11,
-    GENERAL1_INTERCEPT_LDTR_WRITE    = 1 << 12,
-    GENERAL1_INTERCEPT_TR_WRITE      = 1 << 13,
-    GENERAL1_INTERCEPT_RDTSC         = 1 << 14,
-    GENERAL1_INTERCEPT_RDPMC         = 1 << 15,
-    GENERAL1_INTERCEPT_PUSHF         = 1 << 16,
-    GENERAL1_INTERCEPT_POPF          = 1 << 17,
-    GENERAL1_INTERCEPT_CPUID         = 1 << 18,
-    GENERAL1_INTERCEPT_RSM           = 1 << 19,
-    GENERAL1_INTERCEPT_IRET          = 1 << 20,
-    GENERAL1_INTERCEPT_SWINT         = 1 << 21,
-    GENERAL1_INTERCEPT_INVD          = 1 << 22,
-    GENERAL1_INTERCEPT_PAUSE         = 1 << 23,
-    GENERAL1_INTERCEPT_HLT           = 1 << 24,
-    GENERAL1_INTERCEPT_INVLPG        = 1 << 25,
-    GENERAL1_INTERCEPT_INVLPGA       = 1 << 26,
-    GENERAL1_INTERCEPT_IOIO_PROT     = 1 << 27,
-    GENERAL1_INTERCEPT_MSR_PROT      = 1 << 28,
-    GENERAL1_INTERCEPT_TASK_SWITCH   = 1 << 29,
-    GENERAL1_INTERCEPT_FERR_FREEZE   = 1 << 30,
-    GENERAL1_INTERCEPT_SHUTDOWN_EVT  = 1u << 31
-};
-
-/* general 2 intercepts */
-enum GenericIntercept2bits
-{
-    GENERAL2_INTERCEPT_VMRUN   = 1 << 0,
-    GENERAL2_INTERCEPT_VMMCALL = 1 << 1,
-    GENERAL2_INTERCEPT_VMLOAD  = 1 << 2,
-    GENERAL2_INTERCEPT_VMSAVE  = 1 << 3,
-    GENERAL2_INTERCEPT_STGI    = 1 << 4,
-    GENERAL2_INTERCEPT_CLGI    = 1 << 5,
-    GENERAL2_INTERCEPT_SKINIT  = 1 << 6,
-    GENERAL2_INTERCEPT_RDTSCP  = 1 << 7,
-    GENERAL2_INTERCEPT_ICEBP   = 1 << 8,
-    GENERAL2_INTERCEPT_WBINVD  = 1 << 9,
-    GENERAL2_INTERCEPT_MONITOR = 1 << 10,
-    GENERAL2_INTERCEPT_MWAIT   = 1 << 11,
-    GENERAL2_INTERCEPT_MWAIT_CONDITIONAL = 1 << 12,
-    GENERAL2_INTERCEPT_XSETBV  = 1 << 13,
-    GENERAL2_INTERCEPT_RDPRU   = 1 << 14,
-};
-
-
-/* control register intercepts */
-enum CRInterceptBits
-{
-    CR_INTERCEPT_CR0_READ   = 1 << 0,
-    CR_INTERCEPT_CR1_READ   = 1 << 1,
-    CR_INTERCEPT_CR2_READ   = 1 << 2,
-    CR_INTERCEPT_CR3_READ   = 1 << 3,
-    CR_INTERCEPT_CR4_READ   = 1 << 4,
-    CR_INTERCEPT_CR5_READ   = 1 << 5,
-    CR_INTERCEPT_CR6_READ   = 1 << 6,
-    CR_INTERCEPT_CR7_READ   = 1 << 7,
-    CR_INTERCEPT_CR8_READ   = 1 << 8,
-    CR_INTERCEPT_CR9_READ   = 1 << 9,
-    CR_INTERCEPT_CR10_READ  = 1 << 10,
-    CR_INTERCEPT_CR11_READ  = 1 << 11,
-    CR_INTERCEPT_CR12_READ  = 1 << 12,
-    CR_INTERCEPT_CR13_READ  = 1 << 13,
-    CR_INTERCEPT_CR14_READ  = 1 << 14,
-    CR_INTERCEPT_CR15_READ  = 1 << 15,
-    CR_INTERCEPT_CR0_WRITE  = 1 << 16,
-    CR_INTERCEPT_CR1_WRITE  = 1 << 17,
-    CR_INTERCEPT_CR2_WRITE  = 1 << 18,
-    CR_INTERCEPT_CR3_WRITE  = 1 << 19,
-    CR_INTERCEPT_CR4_WRITE  = 1 << 20,
-    CR_INTERCEPT_CR5_WRITE  = 1 << 21,
-    CR_INTERCEPT_CR6_WRITE  = 1 << 22,
-    CR_INTERCEPT_CR7_WRITE  = 1 << 23,
-    CR_INTERCEPT_CR8_WRITE  = 1 << 24,
-    CR_INTERCEPT_CR9_WRITE  = 1 << 25,
-    CR_INTERCEPT_CR10_WRITE = 1 << 26,
-    CR_INTERCEPT_CR11_WRITE = 1 << 27,
-    CR_INTERCEPT_CR12_WRITE = 1 << 28,
-    CR_INTERCEPT_CR13_WRITE = 1 << 29,
-    CR_INTERCEPT_CR14_WRITE = 1 << 30,
-    CR_INTERCEPT_CR15_WRITE = 1u << 31,
-};
-
-
-/* debug register intercepts */
-enum DRInterceptBits
-{
-    DR_INTERCEPT_DR0_READ   = 1 << 0,
-    DR_INTERCEPT_DR1_READ   = 1 << 1,
-    DR_INTERCEPT_DR2_READ   = 1 << 2,
-    DR_INTERCEPT_DR3_READ   = 1 << 3,
-    DR_INTERCEPT_DR4_READ   = 1 << 4,
-    DR_INTERCEPT_DR5_READ   = 1 << 5,
-    DR_INTERCEPT_DR6_READ   = 1 << 6,
-    DR_INTERCEPT_DR7_READ   = 1 << 7,
-    DR_INTERCEPT_DR8_READ   = 1 << 8,
-    DR_INTERCEPT_DR9_READ   = 1 << 9,
-    DR_INTERCEPT_DR10_READ  = 1 << 10,
-    DR_INTERCEPT_DR11_READ  = 1 << 11,
-    DR_INTERCEPT_DR12_READ  = 1 << 12,
-    DR_INTERCEPT_DR13_READ  = 1 << 13,
-    DR_INTERCEPT_DR14_READ  = 1 << 14,
-    DR_INTERCEPT_DR15_READ  = 1 << 15,
-    DR_INTERCEPT_DR0_WRITE  = 1 << 16,
-    DR_INTERCEPT_DR1_WRITE  = 1 << 17,
-    DR_INTERCEPT_DR2_WRITE  = 1 << 18,
-    DR_INTERCEPT_DR3_WRITE  = 1 << 19,
-    DR_INTERCEPT_DR4_WRITE  = 1 << 20,
-    DR_INTERCEPT_DR5_WRITE  = 1 << 21,
-    DR_INTERCEPT_DR6_WRITE  = 1 << 22,
-    DR_INTERCEPT_DR7_WRITE  = 1 << 23,
-    DR_INTERCEPT_DR8_WRITE  = 1 << 24,
-    DR_INTERCEPT_DR9_WRITE  = 1 << 25,
-    DR_INTERCEPT_DR10_WRITE = 1 << 26,
-    DR_INTERCEPT_DR11_WRITE = 1 << 27,
-    DR_INTERCEPT_DR12_WRITE = 1 << 28,
-    DR_INTERCEPT_DR13_WRITE = 1 << 29,
-    DR_INTERCEPT_DR14_WRITE = 1 << 30,
-    DR_INTERCEPT_DR15_WRITE = 1u << 31,
-};
-
-enum VMEXIT_EXITCODE
-{
-    /* control register read exitcodes */
-    VMEXIT_CR0_READ    =   0, /* 0x0 */
-    VMEXIT_CR1_READ    =   1, /* 0x1 */
-    VMEXIT_CR2_READ    =   2, /* 0x2 */
-    VMEXIT_CR3_READ    =   3, /* 0x3 */
-    VMEXIT_CR4_READ    =   4, /* 0x4 */
-    VMEXIT_CR5_READ    =   5, /* 0x5 */
-    VMEXIT_CR6_READ    =   6, /* 0x6 */
-    VMEXIT_CR7_READ    =   7, /* 0x7 */
-    VMEXIT_CR8_READ    =   8, /* 0x8 */
-    VMEXIT_CR9_READ    =   9, /* 0x9 */
-    VMEXIT_CR10_READ   =  10, /* 0xa */
-    VMEXIT_CR11_READ   =  11, /* 0xb */
-    VMEXIT_CR12_READ   =  12, /* 0xc */
-    VMEXIT_CR13_READ   =  13, /* 0xd */
-    VMEXIT_CR14_READ   =  14, /* 0xe */
-    VMEXIT_CR15_READ   =  15, /* 0xf */
-
-    /* control register write exitcodes */
-    VMEXIT_CR0_WRITE   =  16, /* 0x10 */
-    VMEXIT_CR1_WRITE   =  17, /* 0x11 */
-    VMEXIT_CR2_WRITE   =  18, /* 0x12 */
-    VMEXIT_CR3_WRITE   =  19, /* 0x13 */
-    VMEXIT_CR4_WRITE   =  20, /* 0x14 */
-    VMEXIT_CR5_WRITE   =  21, /* 0x15 */
-    VMEXIT_CR6_WRITE   =  22, /* 0x16 */
-    VMEXIT_CR7_WRITE   =  23, /* 0x17 */
-    VMEXIT_CR8_WRITE   =  24, /* 0x18 */
-    VMEXIT_CR9_WRITE   =  25, /* 0x19 */
-    VMEXIT_CR10_WRITE  =  26, /* 0x1a */
-    VMEXIT_CR11_WRITE  =  27, /* 0x1b */
-    VMEXIT_CR12_WRITE  =  28, /* 0x1c */
-    VMEXIT_CR13_WRITE  =  29, /* 0x1d */
-    VMEXIT_CR14_WRITE  =  30, /* 0x1e */
-    VMEXIT_CR15_WRITE  =  31, /* 0x1f */
-
-    /* debug register read exitcodes */
-    VMEXIT_DR0_READ    =  32, /* 0x20 */
-    VMEXIT_DR1_READ    =  33, /* 0x21 */
-    VMEXIT_DR2_READ    =  34, /* 0x22 */
-    VMEXIT_DR3_READ    =  35, /* 0x23 */
-    VMEXIT_DR4_READ    =  36, /* 0x24 */
-    VMEXIT_DR5_READ    =  37, /* 0x25 */
-    VMEXIT_DR6_READ    =  38, /* 0x26 */
-    VMEXIT_DR7_READ    =  39, /* 0x27 */
-    VMEXIT_DR8_READ    =  40, /* 0x28 */
-    VMEXIT_DR9_READ    =  41, /* 0x29 */
-    VMEXIT_DR10_READ   =  42, /* 0x2a */
-    VMEXIT_DR11_READ   =  43, /* 0x2b */
-    VMEXIT_DR12_READ   =  44, /* 0x2c */
-    VMEXIT_DR13_READ   =  45, /* 0x2d */
-    VMEXIT_DR14_READ   =  46, /* 0x2e */
-    VMEXIT_DR15_READ   =  47, /* 0x2f */
-
-    /* debug register write exitcodes */
-    VMEXIT_DR0_WRITE   =  48, /* 0x30 */
-    VMEXIT_DR1_WRITE   =  49, /* 0x31 */
-    VMEXIT_DR2_WRITE   =  50, /* 0x32 */
-    VMEXIT_DR3_WRITE   =  51, /* 0x33 */
-    VMEXIT_DR4_WRITE   =  52, /* 0x34 */
-    VMEXIT_DR5_WRITE   =  53, /* 0x35 */
-    VMEXIT_DR6_WRITE   =  54, /* 0x36 */
-    VMEXIT_DR7_WRITE   =  55, /* 0x37 */
-    VMEXIT_DR8_WRITE   =  56, /* 0x38 */
-    VMEXIT_DR9_WRITE   =  57, /* 0x39 */
-    VMEXIT_DR10_WRITE  =  58, /* 0x3a */
-    VMEXIT_DR11_WRITE  =  59, /* 0x3b */
-    VMEXIT_DR12_WRITE  =  60, /* 0x3c */
-    VMEXIT_DR13_WRITE  =  61, /* 0x3d */
-    VMEXIT_DR14_WRITE  =  62, /* 0x3e */
-    VMEXIT_DR15_WRITE  =  63, /* 0x3f */
-
-    /* processor exception exitcodes (VMEXIT_EXCP[0-31]) */
-    VMEXIT_EXCEPTION_DE  =  64, /* 0x40, divide-by-zero-error */
-    VMEXIT_EXCEPTION_DB  =  65, /* 0x41, debug */
-    VMEXIT_EXCEPTION_NMI =  66, /* 0x42, non-maskable-interrupt */
-    VMEXIT_EXCEPTION_BP  =  67, /* 0x43, breakpoint */
-    VMEXIT_EXCEPTION_OF  =  68, /* 0x44, overflow */
-    VMEXIT_EXCEPTION_BR  =  69, /* 0x45, bound-range */
-    VMEXIT_EXCEPTION_UD  =  70, /* 0x46, invalid-opcode*/
-    VMEXIT_EXCEPTION_NM  =  71, /* 0x47, device-not-available */
-    VMEXIT_EXCEPTION_DF  =  72, /* 0x48, double-fault */
-    VMEXIT_EXCEPTION_09  =  73, /* 0x49, unsupported (reserved) */
-    VMEXIT_EXCEPTION_TS  =  74, /* 0x4a, invalid-tss */
-    VMEXIT_EXCEPTION_NP  =  75, /* 0x4b, segment-not-present */
-    VMEXIT_EXCEPTION_SS  =  76, /* 0x4c, stack */
-    VMEXIT_EXCEPTION_GP  =  77, /* 0x4d, general-protection */
-    VMEXIT_EXCEPTION_PF  =  78, /* 0x4e, page-fault */
-    VMEXIT_EXCEPTION_15  =  79, /* 0x4f, reserved */
-    VMEXIT_EXCEPTION_MF  =  80, /* 0x50, x87 floating-point exception-pending */
-    VMEXIT_EXCEPTION_AC  =  81, /* 0x51, alignment-check */
-    VMEXIT_EXCEPTION_MC  =  82, /* 0x52, machine-check */
-    VMEXIT_EXCEPTION_XF  =  83, /* 0x53, simd floating-point */
-/*  VMEXIT_EXCEPTION_20  =  84,    0x54, #VE (Intel specific) */
-    VMEXIT_EXCEPTION_CP  =  85, /* 0x55, controlflow protection */
-
-    /* exceptions 20-31 (exitcodes 84-95) are reserved */
-
-    /* ...and the rest of the #VMEXITs */
-    VMEXIT_INTR             =  96, /* 0x60 */
-    VMEXIT_NMI              =  97, /* 0x61 */
-    VMEXIT_SMI              =  98, /* 0x62 */
-    VMEXIT_INIT             =  99, /* 0x63 */
-    VMEXIT_VINTR            = 100, /* 0x64 */
-    VMEXIT_CR0_SEL_WRITE    = 101, /* 0x65 */
-    VMEXIT_IDTR_READ        = 102, /* 0x66 */
-    VMEXIT_GDTR_READ        = 103, /* 0x67 */
-    VMEXIT_LDTR_READ        = 104, /* 0x68 */
-    VMEXIT_TR_READ          = 105, /* 0x69 */
-    VMEXIT_IDTR_WRITE       = 106, /* 0x6a */
-    VMEXIT_GDTR_WRITE       = 107, /* 0x6b */
-    VMEXIT_LDTR_WRITE       = 108, /* 0x6c */
-    VMEXIT_TR_WRITE         = 109, /* 0x6d */
-    VMEXIT_RDTSC            = 110, /* 0x6e */
-    VMEXIT_RDPMC            = 111, /* 0x6f */
-    VMEXIT_PUSHF            = 112, /* 0x70 */
-    VMEXIT_POPF             = 113, /* 0x71 */
-    VMEXIT_CPUID            = 114, /* 0x72 */
-    VMEXIT_RSM              = 115, /* 0x73 */
-    VMEXIT_IRET             = 116, /* 0x74 */
-    VMEXIT_SWINT            = 117, /* 0x75 */
-    VMEXIT_INVD             = 118, /* 0x76 */
-    VMEXIT_PAUSE            = 119, /* 0x77 */
-    VMEXIT_HLT              = 120, /* 0x78 */
-    VMEXIT_INVLPG           = 121, /* 0x79 */
-    VMEXIT_INVLPGA          = 122, /* 0x7a */
-    VMEXIT_IOIO             = 123, /* 0x7b */
-    VMEXIT_MSR              = 124, /* 0x7c */
-    VMEXIT_TASK_SWITCH      = 125, /* 0x7d */
-    VMEXIT_FERR_FREEZE      = 126, /* 0x7e */
-    VMEXIT_SHUTDOWN         = 127, /* 0x7f */
-    VMEXIT_VMRUN            = 128, /* 0x80 */
-    VMEXIT_VMMCALL          = 129, /* 0x81 */
-    VMEXIT_VMLOAD           = 130, /* 0x82 */
-    VMEXIT_VMSAVE           = 131, /* 0x83 */
-    VMEXIT_STGI             = 132, /* 0x84 */
-    VMEXIT_CLGI             = 133, /* 0x85 */
-    VMEXIT_SKINIT           = 134, /* 0x86 */
-    VMEXIT_RDTSCP           = 135, /* 0x87 */
-    VMEXIT_ICEBP            = 136, /* 0x88 */
-    VMEXIT_WBINVD           = 137, /* 0x89 */
-    VMEXIT_MONITOR          = 138, /* 0x8a */
-    VMEXIT_MWAIT            = 139, /* 0x8b */
-    VMEXIT_MWAIT_CONDITIONAL= 140, /* 0x8c */
-    VMEXIT_XSETBV           = 141, /* 0x8d */
-    VMEXIT_RDPRU            = 142, /* 0x8e */
-    /* Remember to also update VMEXIT_NPF_PERFC! */
-    VMEXIT_NPF              = 1024, /* 0x400, nested paging fault */
-    /* Remember to also update SVM_PERF_EXIT_REASON_SIZE! */
-    VMEXIT_INVALID          =  -1
-};
-
-enum
-{
-    /* Available on all SVM-capable hardware. */
-    TLB_CTRL_NO_FLUSH             = 0,
-    TLB_CTRL_FLUSH_ALL            = 1,
-
-    /* Available with the FlushByASID feature. */
-    TLB_CTRL_FLUSH_ASID           = 3,
-    TLB_CTRL_FLUSH_ASID_NONGLOBAL = 7,
-};
-
-typedef union
-{
-    struct
-    {
-        uint8_t  vector;
-        uint8_t  type:3;
-        bool     ev:1;
-        uint32_t resvd1:19;
-        bool     v:1;
-        uint32_t ec;
-    };
-    uint64_t raw;
-} intinfo_t;
-
-typedef union {
-    struct {
-        bool intr_shadow:    1;
-        bool guest_intr_mask:1;
-    };
-    uint64_t raw;
-} intstat_t;
-
-typedef union
-{
-    u64 bytes;
-    struct
-    {
-        u64 tpr:          8;
-        u64 irq:          1;
-        u64 vgif:         1;
-        u64 rsvd0:        6;
-        u64 prio:         4;
-        u64 ign_tpr:      1;
-        u64 rsvd1:        3;
-        u64 intr_masking: 1;
-        u64 vgif_enable:  1;
-        u64 rsvd2:        6;
-        u64 vector:       8;
-        u64 rsvd3:       24;
-    } fields;
-} vintr_t;
-
-typedef union
-{
-    u64 bytes;
-    struct
-    {
-        u64 type: 1;
-        u64 rsv0: 1;
-        u64 str:  1;
-        u64 rep:  1;
-        u64 sz8:  1;
-        u64 sz16: 1;
-        u64 sz32: 1;
-        u64 rsv1: 9;
-        u64 port: 16;
-    } fields;
-} ioio_info_t;
-
-typedef union
-{
-    u64 bytes;
-    struct
-    {
-        u64 lbr_enable:1;
-        u64 vloadsave_enable:1;
-    } fields;
-} virt_ext_t;
-
-typedef union
-{
-    struct {
-        bool intercepts:1; /* 0:  cr/dr/exception/general intercepts,
-                            *     pause_filter_count, tsc_offset */
-        bool iopm:1;       /* 1:  iopm_base_pa, msrpm_base_pa */
-        bool asid:1;       /* 2:  asid */
-        bool tpr:1;        /* 3:  vintr */
-        bool np:1;         /* 4:  np, h_cr3, g_pat */
-        bool cr:1;         /* 5:  cr0, cr3, cr4, efer */
-        bool dr:1;         /* 6:  dr6, dr7 */
-        bool dt:1;         /* 7:  gdtr, idtr */
-        bool seg:1;        /* 8:  cs, ds, es, ss, cpl */
-        bool cr2:1;        /* 9:  cr2 */
-        bool lbr:1;        /* 10: debugctlmsr, last{branch,int}{to,from}ip */
-        bool :1;
-        bool cet:1;        /* 12: msr_s_set, ssp, msr_isst */
-    };
-    uint32_t raw;
-} vmcbcleanbits_t;
-
-#define IOPM_SIZE   (12 * 1024)
-#define MSRPM_SIZE  (8  * 1024)
-
-struct vmcb_struct {
-    u32 _cr_intercepts;         /* offset 0x00 - cleanbit 0 */
-    u32 _dr_intercepts;         /* offset 0x04 - cleanbit 0 */
-    u32 _exception_intercepts;  /* offset 0x08 - cleanbit 0 */
-    u32 _general1_intercepts;   /* offset 0x0C - cleanbit 0 */
-    u32 _general2_intercepts;   /* offset 0x10 - cleanbit 0 */
-    u32 res01[10];
-    u16 _pause_filter_thresh;   /* offset 0x3C - cleanbit 0 */
-    u16 _pause_filter_count;    /* offset 0x3E - cleanbit 0 */
-    u64 _iopm_base_pa;          /* offset 0x40 - cleanbit 1 */
-    u64 _msrpm_base_pa;         /* offset 0x48 - cleanbit 1 */
-    u64 _tsc_offset;            /* offset 0x50 - cleanbit 0 */
-    u32 _asid;                  /* offset 0x58 - cleanbit 2 */
-    u8  tlb_control;            /* offset 0x5C - TLB_CTRL_* */
-    u8  res07[3];
-    vintr_t _vintr;             /* offset 0x60 - cleanbit 3 */
-    intstat_t int_stat;         /* offset 0x68 */
-    u64 exitcode;               /* offset 0x70 */
-    union {
-        struct {
-            uint64_t exitinfo1; /* offset 0x78 */
-            uint64_t exitinfo2; /* offset 0x80 */
-        };
-        union {
-            struct {
-                uint32_t ec; /* #NP, #SS, #GP, #PF, #AC */
-                uint32_t :32;
-
-                uint64_t cr2; /* #PF */
-            } exc;
-            struct {
-                bool     in:1;
-                bool     :1;
-                bool     str:1;
-                bool     rep:1;
-                uint16_t bytes:3;
-                uint16_t /* asz */:3;
-                uint16_t seg:3;
-                uint16_t :3;
-                uint16_t port;
-                uint32_t :32;
-
-                uint64_t nrip;
-            } io;
-            struct {
-                uint64_t gpr:4;
-                uint64_t :59;
-                bool     mov_insn:1; /* MOV, as opposed to LMSW, CLTS, etc */
-            } mov_cr;
-            struct {
-                uint64_t ec;
-                uint64_t gpa;
-            } npf;
-            struct {
-                uint16_t sel;
-                uint64_t :48;
-
-                uint32_t ec;
-                uint32_t :4;
-                bool     iret:1;
-                uint32_t :1;
-                bool     jmp:1;
-                uint32_t :5;
-                bool     ev:1;
-                uint32_t :3;
-                bool     rf:1;
-            } task_switch;
-        } ei;
-    };
-    intinfo_t exit_int_info;    /* offset 0x88 */
-    union {                     /* offset 0x90 - cleanbit 4 */
-        struct {
-            bool _np        :1;
-            bool _sev       :1;
-            bool _sev_es    :1;
-            bool _gmet      :1;
-            bool _np_sss    :1;
-            bool _vte       :1;
-        };
-        uint64_t _np_ctrl;
-    };
-    u64 res08[2];
-    intinfo_t event_inj;        /* offset 0xA8 */
-    u64 _h_cr3;                 /* offset 0xB0 - cleanbit 4 */
-    virt_ext_t virt_ext;        /* offset 0xB8 */
-    vmcbcleanbits_t cleanbits;  /* offset 0xC0 */
-    u32 res09;                  /* offset 0xC4 */
-    u64 nextrip;                /* offset 0xC8 */
-    u8  guest_ins_len;          /* offset 0xD0 */
-    u8  guest_ins[15];          /* offset 0xD1 */
-    u64 res10a[100];            /* offset 0xE0 pad to save area */
-
-    union {
-        struct segment_register sreg[6];
-        struct {
-            struct segment_register es;  /* offset 0x400 - cleanbit 8 */
-            struct segment_register cs;  /* cleanbit 8 */
-            struct segment_register ss;  /* cleanbit 8 */
-            struct segment_register ds;  /* cleanbit 8 */
-            struct segment_register fs;
-            struct segment_register gs;
-        };
-    };
-    struct segment_register gdtr; /* cleanbit 7 */
-    struct segment_register ldtr;
-    struct segment_register idtr; /* cleanbit 7 */
-    struct segment_register tr;
-    u64 res10[5];
-    u8 res11[3];
-    u8 _cpl;                    /* cleanbit 8 */
-    u32 res12;
-    u64 _efer;                  /* offset 0x400 + 0xD0 - cleanbit 5 */
-    u64 res13[14];
-    u64 _cr4;                   /* offset 0x400 + 0x148 - cleanbit 5 */
-    u64 _cr3;                   /* cleanbit 5 */
-    u64 _cr0;                   /* cleanbit 5 */
-    u64 _dr7;                   /* cleanbit 6 */
-    u64 _dr6;                   /* cleanbit 6 */
-    u64 rflags;
-    u64 rip;
-    u64 res14[11];
-    u64 rsp;
-    u64 _msr_s_cet;             /* offset 0x400 + 0x1E0 - cleanbit 12 */
-    u64 _ssp;                   /* offset 0x400 + 0x1E8   | */
-    u64 _msr_isst;              /* offset 0x400 + 0x1F0   v */
-    u64 rax;
-    u64 star;
-    u64 lstar;
-    u64 cstar;
-    u64 sfmask;
-    u64 kerngsbase;
-    u64 sysenter_cs;
-    u64 sysenter_esp;
-    u64 sysenter_eip;
-    u64 _cr2;                   /* cleanbit 9 */
-    u64 res16[4];
-    u64 _g_pat;                 /* cleanbit 4 */
-    u64 _debugctlmsr;           /* cleanbit 10 */
-    u64 _lastbranchfromip;      /* cleanbit 10 */
-    u64 _lastbranchtoip;        /* cleanbit 10 */
-    u64 _lastintfromip;         /* cleanbit 10 */
-    u64 _lastinttoip;           /* cleanbit 10 */
-    u64 res17[9];
-    u64 spec_ctrl;
-    u64 res18[291];
-};
-
 struct svm_domain {
     /* OSVW MSRs */
     union {
@@ -595,14 +57,6 @@ struct svm_vcpu {
     uint64_t guest_sysenter_eip;
 };
 
-struct vmcb_struct *alloc_vmcb(void);
-void free_vmcb(struct vmcb_struct *vmcb);
-
-int  svm_create_vmcb(struct vcpu *v);
-void svm_destroy_vmcb(struct vcpu *v);
-
-void setup_vmcb_dump(void);
-
 #define MSR_INTERCEPT_NONE    0
 #define MSR_INTERCEPT_READ    1
 #define MSR_INTERCEPT_WRITE   2
@@ -611,66 +65,6 @@ void svm_intercept_msr(struct vcpu *v, uint32_t msr, int flags);
 #define svm_disable_intercept_for_msr(v, msr) svm_intercept_msr((v), (msr), MSR_INTERCEPT_NONE)
 #define svm_enable_intercept_for_msr(v, msr) svm_intercept_msr((v), (msr), MSR_INTERCEPT_RW)
 
-/*
- * VMCB accessor functions.
- */
-
-#define VMCB_ACCESSORS_(name, type, cleanbit)     \
-static inline void                                \
-vmcb_set_ ## name(struct vmcb_struct *vmcb,       \
-                  type value)                     \
-{                                                 \
-    vmcb->_ ## name = value;                      \
-    vmcb->cleanbits.cleanbit = false;             \
-}                                                 \
-static inline type                                \
-vmcb_get_ ## name(const struct vmcb_struct *vmcb) \
-{                                                 \
-    return vmcb->_ ## name;                       \
-}
-
-#define VMCB_ACCESSORS(name, cleanbit) \
-    VMCB_ACCESSORS_(name, typeof(((struct vmcb_struct){})._ ## name), cleanbit)
-
-VMCB_ACCESSORS(cr_intercepts, intercepts)
-VMCB_ACCESSORS(dr_intercepts, intercepts)
-VMCB_ACCESSORS(exception_intercepts, intercepts)
-VMCB_ACCESSORS(general1_intercepts, intercepts)
-VMCB_ACCESSORS(general2_intercepts, intercepts)
-VMCB_ACCESSORS(pause_filter_count, intercepts)
-VMCB_ACCESSORS(pause_filter_thresh, intercepts)
-VMCB_ACCESSORS(tsc_offset, intercepts)
-VMCB_ACCESSORS(iopm_base_pa, iopm)
-VMCB_ACCESSORS(msrpm_base_pa, iopm)
-VMCB_ACCESSORS(asid, asid)
-VMCB_ACCESSORS(vintr, tpr)
-VMCB_ACCESSORS(np_ctrl, np)
-VMCB_ACCESSORS_(np, bool, np)
-VMCB_ACCESSORS_(sev, bool, np)
-VMCB_ACCESSORS_(sev_es, bool, np)
-VMCB_ACCESSORS_(gmet, bool, np)
-VMCB_ACCESSORS_(vte, bool, np)
-VMCB_ACCESSORS(h_cr3, np)
-VMCB_ACCESSORS(g_pat, np)
-VMCB_ACCESSORS(cr0, cr)
-VMCB_ACCESSORS(cr3, cr)
-VMCB_ACCESSORS(cr4, cr)
-VMCB_ACCESSORS(efer, cr)
-VMCB_ACCESSORS(dr6, dr)
-VMCB_ACCESSORS(dr7, dr)
-VMCB_ACCESSORS(cpl, seg)
-VMCB_ACCESSORS(cr2, cr2)
-VMCB_ACCESSORS(debugctlmsr, lbr)
-VMCB_ACCESSORS(lastbranchfromip, lbr)
-VMCB_ACCESSORS(lastbranchtoip, lbr)
-VMCB_ACCESSORS(lastintfromip, lbr)
-VMCB_ACCESSORS(lastinttoip, lbr)
-VMCB_ACCESSORS(msr_s_cet, cet)
-VMCB_ACCESSORS(ssp, cet)
-VMCB_ACCESSORS(msr_isst, cet)
-
-#undef VMCB_ACCESSORS
-
 #endif /* ASM_X86_HVM_SVM_VMCS_H__ */
 
 /*
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 20:19:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 20:19:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175123.1500042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP4wb-0003r5-8J; Fri, 28 Nov 2025 20:19:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175123.1500042; Fri, 28 Nov 2025 20:19:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP4wb-0003qL-05; Fri, 28 Nov 2025 20:19:53 +0000
Received: by outflank-mailman (input) for mailman id 1175123;
 Fri, 28 Nov 2025 20:19:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=61/n=6E=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vP4wZ-0003fj-5o
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 20:19:51 +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 95c00832-cc97-11f0-980a-7dc792cee155;
 Fri, 28 Nov 2025 21:19:47 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-47796a837c7so14791295e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 12:19:47 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479052ec685sm98201245e9.6.2025.11.28.12.19.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 28 Nov 2025 12:19: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: 95c00832-cc97-11f0-980a-7dc792cee155
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764361187; x=1764965987; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qQpt1luuOqoD50sau1mPzz7mAyMLD1xHkGk2por5HTg=;
        b=jhTiH1EzNrfUrQn5D497CjviK6+EFf1B0h2gK56icAaMKZ5dF2v/YBiodyZR6rTvIj
         jTpIdPVlNPng9vAsJ70e5RBmp8bvN5QZPsAkM8kNMWcRHRPta5ZBOAzk44mynEUkeuAM
         +2jbdAZb+gH3CpWUTwZ7LeCbrgWYBpBGd7C7E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764361187; x=1764965987;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=qQpt1luuOqoD50sau1mPzz7mAyMLD1xHkGk2por5HTg=;
        b=ROiInP0gmyXC0gyA8KqThxi0yH44mZ/ecSF9+It1kfo8QDNKWYglSxdzTj9fqTLXpX
         5yWmJ7V7o3WZQMe6eUN03qnO+XHiGOs5cDSYhlZYW+GjyoGN3obnIC2tIAPkqobAsDxt
         VDKhdFnXddDSCrcfz1FHPqPff5qdFECVgfTdX8I/Y4ZQlgMI1zJCg5u6W1X3u9fHZy2X
         l9akpZ3c1gt6rlfhgxWP2Mhj00cjgl5B8Q+Ud0jwD8sC7tU84o33gzFFPo1u4nXUTRco
         E2QdZOXlpkHiBIn10JHLEygPkhx57i5D8yRxMBXG7Ggn6dDS5t8Sa/qAburNCOCuu7vy
         ArrQ==
X-Gm-Message-State: AOJu0YyesldtMjwoHDsJZvRUIipQMZycECjxUltTe7kE1YoVGwBKvQIZ
	cOMeV30U00lMnta+BdSmqghBDdqpNLJLQ490XB4IVVQhBE7kQTueO/WLT/O+sZRCgiFjR+uAx/z
	yyBTS
X-Gm-Gg: ASbGncvNXmu+/0MoGhIaJnPzFLSoEc2vIbImM+hjDvG8JllYVNOday11uZ9uNCfo4FV
	wucLaRglGxSMJhtlCLxNom0SwCJnG0+lmC0QH3CHaeACivD9AT8olFCUrFyRAIV97dRIAzTzMdQ
	2c6Jf93RD9jq1gL8ThJ2pQa6zLmRvhRiqAUpwIy/JwPEP+718dy3GoXHJDRnwQL5YphpKldJKiR
	mPG6stwQFg7CB/45aR1Su/XQRGl29c6vLQU0rP+c5nWVJonmpTYTUDSulecuhWgCJiHI98iSN3B
	+e4GQresBF6UcxHdphiTpgIMUVzJVQniI1XY9p7UUPI14IJBrNBYRo1wuuTBha4Erv2hoZqeRAG
	iY9bO3NYWWTat6vOj4Y5+9sJA5mrnyJnuHceDXslRO/jjbpDoi8TpDxxWs1gbRzS3qE5G5XgINz
	G5fTkfJPlIfYApkF1vK4CbP8t6yBkX67FiyeEvXMtSmEaUc7hGr4LkNcsXoHu3Bw==
X-Google-Smtp-Source: AGHT+IEWlAhmwKzRi3DsVPEVcLwvXUa3WdI8oU+KMgVAlRBQhJkwsNFHt6SbxbXLvLvxaPiEZhDQFQ==
X-Received: by 2002:a05:600c:3146:b0:477:df7:b020 with SMTP id 5b1f17b1804b1-477c01b2211mr302738935e9.18.1764361186642;
        Fri, 28 Nov 2025 12:19: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 3/3] x86/svm: Drop svmdebug.h
Date: Fri, 28 Nov 2025 20:19:37 +0000
Message-Id: <20251128201937.1294742-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20251128201937.1294742-1-andrew.cooper3@citrix.com>
References: <20251128201937.1294742-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

svmdebug.h now only contains the declaration for svm_sync_vmcb(), despite the
function being implemented in svm.c.  Move the declaration into svm.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/hvm/svm/svm.c                  |  1 -
 xen/arch/x86/hvm/svm/svm.h                  | 17 +++++++++++++++++
 xen/arch/x86/hvm/svm/vmcb.c                 |  2 +-
 xen/arch/x86/include/asm/hvm/svm/svmdebug.h | 16 ----------------
 xen/arch/x86/include/asm/hvm/svm/vmcb.h     | 15 ---------------
 5 files changed, 18 insertions(+), 33 deletions(-)
 delete mode 100644 xen/arch/x86/include/asm/hvm/svm/svmdebug.h

diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 14b3a427e642..15d45cbb57c5 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -27,7 +27,6 @@
 #include <asm/hvm/nestedhvm.h>
 #include <asm/hvm/support.h>
 #include <asm/hvm/svm/svm.h>
-#include <asm/hvm/svm/svmdebug.h>
 #include <asm/hvm/svm/vmcb.h>
 #include <asm/i387.h>
 #include <asm/idt.h>
diff --git a/xen/arch/x86/hvm/svm/svm.h b/xen/arch/x86/hvm/svm/svm.h
index f5b0312d2dcf..cfa411ad5ae1 100644
--- a/xen/arch/x86/hvm/svm/svm.h
+++ b/xen/arch/x86/hvm/svm/svm.h
@@ -78,6 +78,23 @@ unsigned int svm_get_task_switch_insn_len(void);
 #define _NPT_PFEC_in_gpt       33
 #define NPT_PFEC_in_gpt        (1UL<<_NPT_PFEC_in_gpt)
 
+/*
+ * VMRUN doesn't switch fs/gs/tr/ldtr and SHADOWGS/SYSCALL/SYSENTER state.
+ * Therefore, guest state is in the hardware registers when servicing a
+ * VMExit.
+ *
+ * Immediately after a VMExit, the vmcb is stale, and needs to be brought
+ * into sync by VMSAVE.  If state in the vmcb is modified, a VMLOAD is
+ * needed before the following VMRUN.
+ */
+enum vmcb_sync_state {
+    vmcb_in_sync,
+    vmcb_needs_vmsave,    /* VMCB out of sync (VMSAVE needed)? */
+    vmcb_needs_vmload,    /* VMCB dirty (VMLOAD needed)? */
+};
+
+void svm_sync_vmcb(struct vcpu *v, enum vmcb_sync_state new_state);
+
 #endif /* __X86_HVM_SVM_SVM_PRIV_H__ */
 
 /*
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index b1a79d515143..7bde6e98ce03 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -16,12 +16,12 @@
 
 #include <asm/guest-msr.h>
 #include <asm/hvm/svm/svm.h>
-#include <asm/hvm/svm/svmdebug.h>
 #include <asm/hvm/svm/vmcb.h>
 #include <asm/msr-index.h>
 #include <asm/p2m.h>
 #include <asm/spec_ctrl.h>
 
+#include "svm.h"
 #include "vmcb.h"
 
 struct vmcb_struct *alloc_vmcb(void)
diff --git a/xen/arch/x86/include/asm/hvm/svm/svmdebug.h b/xen/arch/x86/include/asm/hvm/svm/svmdebug.h
deleted file mode 100644
index ede13bd34048..000000000000
--- a/xen/arch/x86/include/asm/hvm/svm/svmdebug.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * svmdebug.h: SVM related debug defintions
- * Copyright (c) 2011, AMD Corporation.
- *
- */
-
-#ifndef __ASM_X86_HVM_SVM_SVMDEBUG_H__
-#define __ASM_X86_HVM_SVM_SVMDEBUG_H__
-
-#include <xen/types.h>
-#include <asm/hvm/svm/vmcb.h>
-
-void svm_sync_vmcb(struct vcpu *v, enum vmcb_sync_state new_state);
-
-#endif /* __ASM_X86_HVM_SVM_SVMDEBUG_H__ */
diff --git a/xen/arch/x86/include/asm/hvm/svm/vmcb.h b/xen/arch/x86/include/asm/hvm/svm/vmcb.h
index 717215ff969b..41bcc9f0d862 100644
--- a/xen/arch/x86/include/asm/hvm/svm/vmcb.h
+++ b/xen/arch/x86/include/asm/hvm/svm/vmcb.h
@@ -21,21 +21,6 @@ struct svm_domain {
     } osvw;
 };
 
-/*
- * VMRUN doesn't switch fs/gs/tr/ldtr and SHADOWGS/SYSCALL/SYSENTER state.
- * Therefore, guest state is in the hardware registers when servicing a
- * VMExit.
- *
- * Immediately after a VMExit, the vmcb is stale, and needs to be brought
- * into sync by VMSAVE.  If state in the vmcb is modified, a VMLOAD is
- * needed before the following VMRUN.
- */
-enum vmcb_sync_state {
-    vmcb_in_sync,
-    vmcb_needs_vmsave,    /* VMCB out of sync (VMSAVE needed)? */
-    vmcb_needs_vmload     /* VMCB dirty (VMLOAD needed)? */
-};
-
 struct svm_vcpu {
     struct vmcb_struct *vmcb;
     u64    vmcb_pa;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Nov 28 20:19:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 28 Nov 2025 20:19:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175120.1500020 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vP4wV-0003ST-AQ; Fri, 28 Nov 2025 20:19:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175120.1500020; Fri, 28 Nov 2025 20:19: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 1vP4wV-0003SM-7U; Fri, 28 Nov 2025 20:19:47 +0000
Received: by outflank-mailman (input) for mailman id 1175120;
 Fri, 28 Nov 2025 20:19: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=61/n=6E=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vP4wT-0003SE-Vt
 for xen-devel@lists.xenproject.org; Fri, 28 Nov 2025 20:19: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 933f3976-cc97-11f0-9d18-b5c5bf9af7f9;
 Fri, 28 Nov 2025 21:19:43 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-47755de027eso14549235e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 28 Nov 2025 12:19:43 -0800 (PST)
Received: from localhost.localdomain (host-92-29-237-183.as13285.net.
 [92.29.237.183]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-479052ec685sm98201245e9.6.2025.11.28.12.19.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 28 Nov 2025 12:19: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: 933f3976-cc97-11f0-9d18-b5c5bf9af7f9
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1764361182; x=1764965982; 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=eF0IQHvCbUG95tfvSynD4m5eKTVMpMt3/k5vERrA/3U=;
        b=qoo37qZ5susNbMGKw4PW4SHj2AWu1pvfWQRf4e6h7RCZofwcCASF4jKcU/36TVg616
         TVi2GDwyoeEaVK9h1x/KrOP5/GhRkteeXVrBiRej9apOtUsCPFsz9j7zkzyyeOOCzr5g
         9n6JuTbpXNf8jasL3NSwGhxxxxfltXA70k0ag=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1764361182; x=1764965982;
        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=eF0IQHvCbUG95tfvSynD4m5eKTVMpMt3/k5vERrA/3U=;
        b=lbF5+p6BB5DrYsyvs4aihrwoKKPRoRQtcSjiiLjsq3AyUvS5rkL9B3l8/TikZCnjcA
         oksxdFzzwSoWpQRU4e+KYHZzzLcdpOLrJGgM/zRU0hzDNHn+XUI2S4I7GJ1Gw+yiVjfG
         /KQF1KmnGnihxywtIv4vfia7+43qihRnnwYPD2W/KOGdOBG3DdSeUxSMvJiuavSusOyD
         WHyiG6G+JRjsEt1ihc8wF3MKt8mNEo5zedpwx998Oz/lG58f10gcyxCaiXXiDtiW0jnj
         iRnwv42BsXdLMwOBnkmvkizgZqyfLIdUlL2MgejP8jgHyLrc0WOhRoXJh31TIN2KPxt0
         Xz1g==
X-Gm-Message-State: AOJu0YzrYiyN7YF2cDktEBM46DXuEPKX1JpFaaRWzxhm4iVrILc75E0p
	qinnIShAkf3IkL4qwCNYvKoLWls+ulxkYJBEXHAzKl05T9t7ZndhIXGqVxztKvHByv6rvzFka+4
	+z5xe
X-Gm-Gg: ASbGncsARCJt9iA9IvvFLcOm0fdjsyFz9hNRsBzLEw45iQBD3LmdqrsQPEYvlkygs6V
	S21PDQlfxW+WkSDsV7h3QIMm7/8ePQUB7WpKkLjoO/r9brIAc+UtSJJVFywckrQxFgMwSsB5xfi
	qH3NCisshOrjqiSQ1alg58DkQOJ7JRSEV14FkKONGhBi7rUff0Hjiq7LlmMPqt6R9d5gZNMXhNA
	SvQimYtK8dX9oxFYkgxYIRuyO7GPPSYVbp4FrXPD53iwTrpkrgeRGwXx2JVhyjo7VfyvfyetRDD
	GMy3lFIt0oZMDriR1N01fqNqbMCbkb5d9iFvafSdlbNVj1njg0tOvHehf1PQf0DpBGLN7RokaLd
	NF9Sdxrya/ZFDgESnd7+ngfJqIBTesXJyqF4iu8rj2Rhtrx0uvoNfMdyAhJfLVJREY6dNjtcx4o
	hoXs1wqiZDpR1clt0yQr2MHUyh8WfWfoZudzcIlUDS8CyFTswUS9KZtIQYfCc2mUKY6lNmNf7z
X-Google-Smtp-Source: AGHT+IF3xMWvq4UNJBI9e9ke37QtqMMGOOWL2q4zFqXXh9H5PbkTt58lKSkSdnlOqxb45P3ZuTjp+g==
X-Received: by 2002:a05:600c:1c87:b0:477:98f7:2aec with SMTP id 5b1f17b1804b1-47904acef12mr190158515e9.3.1764361182397;
        Fri, 28 Nov 2025 12:19: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 0/3] x86/svm: Make various details private
Date: Fri, 28 Nov 2025 20:19:34 +0000
Message-Id: <20251128201937.1294742-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

Lots of this does not need to be included into all translation units.

Andrew Cooper (3):
  x86/svm: Make vmcb_struct private to svm/
  x86/svm: Drop svmdebug.c
  x86/svm: Drop svmdebug.h

 xen/arch/x86/hvm/svm/Makefile               |   1 -
 xen/arch/x86/hvm/svm/asid.c                 |   1 +
 xen/arch/x86/hvm/svm/emulate.c              |   1 +
 xen/arch/x86/hvm/svm/intr.c                 |   1 +
 xen/arch/x86/hvm/svm/nestedsvm.c            |   2 +-
 xen/arch/x86/hvm/svm/svm.c                  |   2 +-
 xen/arch/x86/hvm/svm/svm.h                  |  17 +
 xen/arch/x86/hvm/svm/svmdebug.c             | 179 ------
 xen/arch/x86/hvm/svm/vmcb.c                 | 163 ++++-
 xen/arch/x86/hvm/svm/vmcb.h                 | 620 +++++++++++++++++++
 xen/arch/x86/include/asm/hvm/svm/svmdebug.h |  19 -
 xen/arch/x86/include/asm/hvm/svm/vmcb.h     | 621 --------------------
 12 files changed, 804 insertions(+), 823 deletions(-)
 delete mode 100644 xen/arch/x86/hvm/svm/svmdebug.c
 create mode 100644 xen/arch/x86/hvm/svm/vmcb.h
 delete mode 100644 xen/arch/x86/include/asm/hvm/svm/svmdebug.h


base-commit: 486c7f79c0032cbd210af8f3f1d204f8eabfdbde
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Sat Nov 29 13:44:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 29 Nov 2025 13:44:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175230.1500077 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPLFb-0003mA-28; Sat, 29 Nov 2025 13:44:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175230.1500077; Sat, 29 Nov 2025 13:44:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPLFa-0003m2-Sn; Sat, 29 Nov 2025 13:44:34 +0000
Received: by outflank-mailman (input) for mailman id 1175230;
 Sat, 29 Nov 2025 13:44: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=66PA=6F=yandex-team.ru=vsementsov@srs-se1.protection.inumbo.net>)
 id 1vPLFY-0003lw-In
 for xen-devel@lists.xenproject.org; Sat, 29 Nov 2025 13:44:33 +0000
Received: from forwardcorp1d.mail.yandex.net (forwardcorp1d.mail.yandex.net
 [178.154.239.200]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 879beefc-cd29-11f0-9d18-b5c5bf9af7f9;
 Sat, 29 Nov 2025 14:44:30 +0100 (CET)
Received: from mail-nwsmtp-smtp-corp-main-56.klg.yp-c.yandex.net
 (mail-nwsmtp-smtp-corp-main-56.klg.yp-c.yandex.net
 [IPv6:2a02:6b8:c42:65a0:0:640:e1de:0])
 by forwardcorp1d.mail.yandex.net (Yandex) with ESMTPS id 7BD36807C8;
 Sat, 29 Nov 2025 16:44:28 +0300 (MSK)
Received: from vsementsov-lin.. (unknown [2a02:6bf:8080:891::1:b])
 by mail-nwsmtp-smtp-corp-main-56.klg.yp-c.yandex.net (smtpcorp/Yandex) with
 ESMTPSA id Iigm2k0FK8c0-ulXpjbz3; Sat, 29 Nov 2025 16:44:27 +0300
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 879beefc-cd29-11f0-9d18-b5c5bf9af7f9
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru;
	s=default; t=1764423867;
	bh=LUCSxr52Pv2huLa0fLn9hz38EO3fAzK11cfvmV1Zx1o=;
	h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From;
	b=fnN1kUpbAUIbmVpr8z4hs3eb95QPfQMSIrmtOiUfZcBCqWBA53ree1f+qm7BDIGff
	 GMBZkItq/iHyjYMaL7UtmTwwYoW8yuJUp3W2DRqd8uy9x/L4gaQqJ6+Zf7xVuAm7rA
	 gBJeWp/iea8yhHtgJbTB0ze8yFT+wdli48WJX+qo=
Authentication-Results: mail-nwsmtp-smtp-corp-main-56.klg.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru
From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
To: marcandre.lureau@redhat.com
Cc: pbonzini@redhat.com,
	qemu-devel@nongnu.org,
	vsementsov@yandex-team.ru,
	d-tatianin@yandex-team.ru,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	Paul Durrant <paul@xen.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	xen-devel@lists.xenproject.org (open list:X86 Xen CPUs)
Subject: [PATCH 6/8] chardev: introduce .chr_get_pty_name() handler
Date: Sat, 29 Nov 2025 16:43:46 +0300
Message-ID: <20251129134350.487839-7-vsementsov@yandex-team.ru>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <20251129134350.487839-1-vsementsov@yandex-team.ru>
References: <20251129134350.487839-1-vsementsov@yandex-team.ru>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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>
---
 chardev/char-pty.c     |  7 +++++++
 chardev/char.c         | 19 +++++++++++++------
 hw/char/xen_console.c  |  7 ++++---
 include/chardev/char.h |  7 +++++--
 4 files changed, 29 insertions(+), 11 deletions(-)

diff --git a/chardev/char-pty.c b/chardev/char-pty.c
index a582aa7bc7..047aade09e 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 44bfed3627..0dc792b88f 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 a639fb0b11..7502de46e4 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 */
diff --git a/include/chardev/char.h b/include/chardev/char.h
index 23a227dca9..d36e50b99e 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;
@@ -306,6 +304,9 @@ struct ChardevClass {
 
     /* handle various events */
     void (*chr_be_event)(Chardev *s, QEMUChrEvent event);
+
+    /* return PTY name if available */
+    char *(*chr_get_pty_name)(Chardev *s);
 };
 
 Chardev *qemu_chardev_new(const char *id, const char *typename,
@@ -320,4 +321,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
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Sun Nov 30 02:03:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 30 Nov 2025 02:03:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175244.1500086 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPWmo-0005YG-8X; Sun, 30 Nov 2025 02:03:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175244.1500086; Sun, 30 Nov 2025 02:03:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPWmo-0005Y8-3v; Sun, 30 Nov 2025 02:03:38 +0000
Received: by outflank-mailman (input) for mailman id 1175244;
 Sun, 30 Nov 2025 02:03: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=B770=6G=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vPWml-0005Y1-Ty
 for xen-devel@lists.xenproject.org; Sun, 30 Nov 2025 02:03:36 +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 c228189b-cd90-11f0-980a-7dc792cee155;
 Sun, 30 Nov 2025 03:03:27 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfhigh.stl.internal (Postfix) with ESMTP id DD4477A00D4;
 Sat, 29 Nov 2025 21:03:25 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-06.internal (MEProxy); Sat, 29 Nov 2025 21:03:26 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat,
 29 Nov 2025 21:03: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: c228189b-cd90-11f0-980a-7dc792cee155
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=1764468205;
	 x=1764554605; bh=VfFTcoiKRLgWpaPbyHNH6HnuHDajzHNJEK5r9l7Aux4=; b=
	ocHB1Sb1xQzi3PacVg5qWvyBvSG1E+Yul7CRNX3LKbgg/YT3GMF+5CDIWKvZf8DA
	TzEOxALQ31ffcfhy4ggI3vefUDrvSEynLovJy625q5VqgvwtkOHg6bVBsK4vtHlC
	lpID0/liwo2fU9XY/9DuG0pXRXshTZak6TrKZ41JO/YKUjiF8m+RXLYYitd7BnR5
	TbAeAP+IRqHjaoStIJy1wj6+ryrM+ndIfIzHgRhEC8MFUu8BrAAGjJBPHgzo9/1m
	zj3qKoBxjgjrQbkvVwNRXgcNRGOB2l/+z/5IbR6P+cSK6ydAyf73hDCpnthap+Tg
	kkZgV+KYkpC1A26AwAA68Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
	1764468205; x=1764554605; bh=VfFTcoiKRLgWpaPbyHNH6HnuHDajzHNJEK5
	r9l7Aux4=; b=bg8HRzhZFYyrx4b2oZTw2dvUjeFpJNAeG0CD9T9UXQmt6m+EsWG
	QX5hcSelmqj6ZiPlo9SvIbm/+ALJRx9CRHSD8BlsIpCFbm1lA0N/RWticEVoDQqW
	TazOxD5/yrB7CITvE3SFD1Amph4B3LfjFcHpFMeB9aH9hGnAUs79lcKxCArtoO/H
	MmdYJsG6N7RBJ7LjWYXCZ/cseArR079DJZUbaewwB/t8Byrlw+fi1PDwhNzzvAOW
	zVQqzfDTkDLTpNEI23TFosyyCugCD24HEUWCAKMC7JJoBYNHxQSWnDrg35XGFs/T
	hDoLloTUmNh3F7bGDJsLGvoR/Ctj5ZF+6gA==
X-ME-Sender: <xms:7aUraWFTKsGH7ah-x_monkKVznCuwYjSSvlRoIcjDKQ6f6097HSnEQ>
    <xme:7aUraYAUCtC7JR7LJUt-FvWbFT9HlcwShQ3mmP6SH6tnENcqQPA_EjHDC9a5lHa7_
    HFhIT-9o1ry_5YmpUCWFgcAc9DS_tEa62Od3GTCmRJePWxDxw>
X-ME-Received: <xmr:7aUraeWOatD6RZ-f9BZksKdiIKkkX5R_t9LMmy5dDjpFTFNUfZeUTM25qXwATDvFoMbi9B2z0lfNzMx-L7Q4UyLbiJyAVUjwHtU>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvheefjeefucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepueekteet
    gefggfekudehteegieeljeejieeihfejgeevhfetgffgteeuteetueetnecuffhomhgrih
    hnpehgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhmpdhnsggprhgtphhtthhopeejpdhmohguvgepshhmthhpohhuthdprhgtphht
    thhopehjrghsohhnrdgrnhgurhihuhhksegrmhgurdgtohhmpdhrtghpthhtohepjhhgrh
    hoshhssehsuhhsvgdrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghr
    nhgvlhdrohhrghdprhgtphhtthhopeholhgvkhhsrghnughrpghthihshhgthhgvnhhkoh
    esvghprghmrdgtohhmpdhrtghpthhtohephigrnhhnrdhsihhonhhnvggruhesvhgrthgv
    shdrthgvtghhpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprh
    hojhgvtghtrdhorhhgpdhrtghpthhtoheplhhinhhugidqkhgvrhhnvghlsehvghgvrhdr
    khgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:7aUraUr1KR1_OTBsMhrrSWw8svfyngjK5pah-PRYhMdso5fEzPUlpQ>
    <xmx:7aUraSRIUN3up5XSO6IHqLmyxACdyEpPzedzYzqdgr_cDFoGdmWQ1g>
    <xmx:7aUraW0KmKNivwL7Krzhfj1lFNqia75hvr9GjT-tq7RpohxWTgW-Uw>
    <xmx:7aUraWAcI_f1b_muMBIQrE-Od9MkG5pDWGz9imBsgUguoSJO_xG34A>
    <xmx:7aUraXWPZkQl2TeovoZ6wb4hEawz_v0_MLRomHGDiOtj7hArkvDPcKDB>
Feedback-ID: i1568416f:Fastmail
Date: Sun, 30 Nov 2025 03:03:22 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Yann Sionneau <yann.sionneau@vates.tech>,
	xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] xenbus: Use .freeze/.thaw to handle xenbus devices
Message-ID: <aSul6qAYTSOSFJR3@mail-itl>
References: <20251119224731.61497-1-jason.andryuk@amd.com>
 <20251119224731.61497-2-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="GHry3QnaPKrirc8h"
Content-Disposition: inline
In-Reply-To: <20251119224731.61497-2-jason.andryuk@amd.com>


--GHry3QnaPKrirc8h
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sun, 30 Nov 2025 03:03:22 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Yann Sionneau <yann.sionneau@vates.tech>,
	xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] xenbus: Use .freeze/.thaw to handle xenbus devices

On Wed, Nov 19, 2025 at 05:47:29PM -0500, Jason Andryuk wrote:
> The goal is to fix s2idle and S3 for Xen PV devices. =20

Can you give a little more context of this? We do have working S3 in
qubes with no need for such change. We trigger it via the toolstack (libxl_=
domain_suspend_only()).
Are you talking about guest-initiated suspend here?

We also have kinda working (host) s2idle. You may want to take a look at th=
is
work (some/most of it was posted upstream, but not all got
committed/reviewed):
https://github.com/QubesOS/qubes-issues/issues/6411#issuecomment-1538089344
https://github.com/QubesOS/qubes-linux-kernel/pull/910 (some patches
changed since that PR, see the current main too).

> A domain resuming
> from s3 or s2idle disconnects its PV devices during resume.  The
> backends are not expecting this and do not reconnect.
>=20
> b3e96c0c7562 ("xen: use freeze/restore/thaw PM events for suspend/
> resume/chkpt") changed xen_suspend()/do_suspend() from
> PMSG_SUSPEND/PMSG_RESUME to PMSG_FREEZE/PMSG_THAW/PMSG_RESTORE, but the
> suspend/resume callbacks remained.
>=20
> .freeze/restore are used with hiberation where Linux restarts in a new
> place in the future.  .suspend/resume are useful for runtime power
> management for the duration of a boot.
>=20
> The current behavior of the callbacks works for an xl save/restore or
> live migration where the domain is restored/migrated to a new location
> and connecting to a not-already-connected backend.
>=20
> Change xenbus_pm_ops to use .freeze/thaw/restore and drop the
> .suspend/resume hook.  This matches the use in drivers/xen/manage.c for
> save/restore and live migration.  With .suspend/resume empty, PV devices
> are left connected during s2idle and s3, so PV devices are not changed
> and work after resume.

Is that intended? While it might work for suspend by a chance(*), I'm
pretty sure not disconnecting + re-reconnecting PV devices across
save/restore/live migration will break them.

(*) and even that I'm not sure - with driver domains, depending on
suspend order this feels like might result in a deadlock...

> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> ---
>  drivers/xen/xenbus/xenbus_probe_frontend.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
>=20
> diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xen=
bus/xenbus_probe_frontend.c
> index 6d1819269cbe..199917b6f77c 100644
> --- a/drivers/xen/xenbus/xenbus_probe_frontend.c
> +++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
> @@ -148,11 +148,9 @@ static void xenbus_frontend_dev_shutdown(struct devi=
ce *_dev)
>  }
> =20
>  static const struct dev_pm_ops xenbus_pm_ops =3D {
> -	.suspend	=3D xenbus_dev_suspend,
> -	.resume		=3D xenbus_frontend_dev_resume,
>  	.freeze		=3D xenbus_dev_suspend,
>  	.thaw		=3D xenbus_dev_cancel,
> -	.restore	=3D xenbus_dev_resume,
> +	.restore	=3D xenbus_frontend_dev_resume,
>  };
> =20
>  static struct xen_bus_type xenbus_frontend =3D {
> --=20
> 2.34.1
>=20
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkrpeoACgkQ24/THMrX
1yz/Ogf9Ek/ScDnxgj95/cV4QGqaDGahXHzdfQAL6aWzCCOi4Gt8cgtgEjVGdi1A
ZN5db9IQ1ORWcVPndp+G4rynCxA4n/ccz1S3fbWILhMKaVOpZvTyVqfJETYgKRAk
TlBtCKLUBEMQ/T5Imv2v4OhIJW052FNCFLzQBLElBMUrLYjLb0jqhfEKkQygqRdW
PX2anpJ/0iGcAvXzh72KKIjQpTfLvOjE2vEcAIJ25WFAZTJxmwEnWvpx2M8f8kSs
udLkNZp8WNU5LVMzykRqNT5HSg+3KAEbpbn8xCTUnPv/qWaR2E+zKUg6Zcx27ZoJ
/eOql8bba73bg97GmG7LH34Skvm21g==
=nE9I
-----END PGP SIGNATURE-----

--GHry3QnaPKrirc8h--


From xen-devel-bounces@lists.xenproject.org Sun Nov 30 02:56:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 30 Nov 2025 02:56:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175255.1500096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPXcG-0003tQ-MC; Sun, 30 Nov 2025 02:56:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175255.1500096; Sun, 30 Nov 2025 02:56:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPXcG-0003tJ-JW; Sun, 30 Nov 2025 02:56:48 +0000
Received: by outflank-mailman (input) for mailman id 1175255;
 Sun, 30 Nov 2025 02:56: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=B770=6G=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vPXcG-0003tD-2O
 for xen-devel@lists.xenproject.org; Sun, 30 Nov 2025 02:56:48 +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 32652a88-cd98-11f0-980a-7dc792cee155;
 Sun, 30 Nov 2025 03:56:42 +0100 (CET)
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfhigh.stl.internal (Postfix) with ESMTP id BF7187A0048;
 Sat, 29 Nov 2025 21:56:40 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-02.internal (MEProxy); Sat, 29 Nov 2025 21:56:40 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat,
 29 Nov 2025 21:56:38 -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: 32652a88-cd98-11f0-980a-7dc792cee155
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=1764471400;
	 x=1764557800; bh=uPo4d6C1SsuzKK9LFQrXRnujjP3GN628/AWhH5wC0QA=; b=
	GLYubI8knKw8x//gj42JQe5LrAsmVmaD9A+Wu24RM9OrNHqn2/Hyy6HEfjFtSDDM
	TEoT1poVyQY9udWF54TUkOoEOxi1BslAtwMpgukDUVnabhs9ag8+PxnVra3dt5xZ
	5HoeMP8Y05gBDvOrBLMR6r/3JpL5r4U+wbP0V0oh3h2/DQOUsZlkTJOZ/PD+iqyE
	GD0ph1M9d0Ac3v+PArBQL0sAVhvR0ZJsEf4/N0hwrh8QUxP+KQvkOE7Pl5kFgnzl
	YQxMMVoL88IxLeO1uiWhQR+sod/wWJsBfNVq+jjinAdnWI3MOkPXkdYakb7qH1Iw
	HQLx51b6Nq+TSTB5jFMcbw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=
	1764471400; x=1764557800; bh=uPo4d6C1SsuzKK9LFQrXRnujjP3GN628/AW
	hH5wC0QA=; b=X9Vl90GxUmaUbB2Vufu4K27OkLAvTZv3VJYLzG2v1P/36KlJyT4
	q1Wmt5b7+7bxivSPRE/pGKkGWU8hbpQvCPfIQSwlXAmkxjEr1AnFYtsAVv5R2G+H
	d+e/+An7z4MdgDgt8E3c+bt0fIF0XHLcNkxy2rCBLz5nDT6GRGIGzBmGdCfLATm5
	2dW+uGKeZygNwoFckaAndrrarAyx+SFzAO6HjlUr8RoldosrsQwTmT6NsZsxHTyg
	y9KnS0zzIhI9RCYWTpEESGeUOQxpSlqbLq3G5Z8jdYi2eqqA41UJUiMQeUaNZkgE
	OZVzabaX8ZrST0xgVtLVRCK4oK/B1RUGQZQ==
X-ME-Sender: <xms:aLIraefF5gpIm_I8BxBhUTLTrteUhNGl800-zbPJo9Pme2RIaJmlTQ>
    <xme:aLIraY47s0vFBrATPWpkH9g7kbmF2EX0DN_hiwKBiQkZkaP3rLfqgIp9UoQ6L_eS2
    uJUYHSvQu-8D2Ys_PuY63oQLI3b0_014M4DMR_9ezxx_gczsw>
X-ME-Received: <xmr:aLIradvDbpXo-Klg36R-zTlqEWCYaq8Rvy1961WNovvBVAOf_wGQzFdjYmAvarhTDY6QpjQlKpS2xdZANfw3ga0vkdCOh6cfrcQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvheefjeekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepueekteet
    gefggfekudehteegieeljeejieeihfejgeevhfetgffgteeuteetueetnecuffhomhgrih
    hnpehgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhmpdhnsggprhgtphhtthhopeejpdhmohguvgepshhmthhpohhuthdprhgtphht
    thhopehjghhrohhsshesshhushgvrdgtohhmpdhrtghpthhtohepjhgrshhonhdrrghnug
    hrhihukhesrghmugdrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghr
    nhgvlhdrohhrghdprhgtphhtthhopeholhgvkhhsrghnughrpghthihshhgthhgvnhhkoh
    esvghprghmrdgtohhmpdhrtghpthhtohephigrnhhnrdhsihhonhhnvggruhesvhgrthgv
    shdrthgvtghhpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprh
    hojhgvtghtrdhorhhgpdhrtghpthhtoheplhhinhhugidqkhgvrhhnvghlsehvghgvrhdr
    khgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:aLIraQiGUe743GojbM4XX4MhipxSkEeRj99STK1TFV-Pb9MZhN-iag>
    <xmx:aLIraQqdW6raPgCXeZr3SxJVP8ORcBAFypqUOSPyE7rnNwTcX2iDKw>
    <xmx:aLIraVvUude3l1mxw9JrKFOqHddMdtZaNlRDtXL94IKXeSUOemruRw>
    <xmx:aLIrabbqWRAU5_K099Lby-yFcyt5Ok_2zmea0fHlFd3Y0IxuVWoEHg>
    <xmx:aLIraRMjcXD6DTpKpVOsLsNKm7kn1LRQd-zSowtkie792dsOW-WEXzO2>
Feedback-ID: i1568416f:Fastmail
Date: Sun, 30 Nov 2025 03:56:37 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Yann Sionneau <yann.sionneau@vates.tech>,
	xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] xenbus: Use .freeze/.thaw to handle xenbus devices
Message-ID: <aSuyZTFXIpVK-VmH@mail-itl>
References: <20251119224731.61497-1-jason.andryuk@amd.com>
 <20251119224731.61497-2-jason.andryuk@amd.com>
 <1c991699-51b7-4284-8179-6bc78f8f4eac@suse.com>
 <aSWJSb4OK645r3tk@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="DJTHw7pL0k1QweeN"
Content-Disposition: inline
In-Reply-To: <aSWJSb4OK645r3tk@mail-itl>


--DJTHw7pL0k1QweeN
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sun, 30 Nov 2025 03:56:37 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Yann Sionneau <yann.sionneau@vates.tech>,
	xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] xenbus: Use .freeze/.thaw to handle xenbus devices

On Tue, Nov 25, 2025 at 11:47:37AM +0100, Marek Marczykowski-G=C3=B3recki w=
rote:
> On Tue, Nov 25, 2025 at 09:20:55AM +0100, J=C3=BCrgen Gro=C3=9F wrote:
> > On 19.11.25 23:47, Jason Andryuk wrote:
> > > The goal is to fix s2idle and S3 for Xen PV devices.  A domain resumi=
ng
> > > from s3 or s2idle disconnects its PV devices during resume.  The
> > > backends are not expecting this and do not reconnect.
> > >=20
> > > b3e96c0c7562 ("xen: use freeze/restore/thaw PM events for suspend/
> > > resume/chkpt") changed xen_suspend()/do_suspend() from
> > > PMSG_SUSPEND/PMSG_RESUME to PMSG_FREEZE/PMSG_THAW/PMSG_RESTORE, but t=
he
> > > suspend/resume callbacks remained.
> > >=20
> > > .freeze/restore are used with hiberation where Linux restarts in a new
> > > place in the future.  .suspend/resume are useful for runtime power
> > > management for the duration of a boot.
> > >=20
> > > The current behavior of the callbacks works for an xl save/restore or
> > > live migration where the domain is restored/migrated to a new location
> > > and connecting to a not-already-connected backend.
> > >=20
> > > Change xenbus_pm_ops to use .freeze/thaw/restore and drop the
> > > .suspend/resume hook.  This matches the use in drivers/xen/manage.c f=
or
> > > save/restore and live migration.  With .suspend/resume empty, PV devi=
ces
> > > are left connected during s2idle and s3, so PV devices are not changed
> > > and work after resume.
> > >=20
> > > Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> >=20
> > Acked-by: Juergen Gross <jgross@suse.com>
> >=20
> > Marek, could you please give this patch a try with QubesOS? I think this
> > patch should be verified not to break your use cases regarding suspend /
> > resume.
>=20
> Sure, but I can't promise it will be this week, I have some deadlines to
> meet...

Regardless of my other response, those two patches appear to work fine
across domU suspend/resume (both the S3 and s2idle variants).
Note for s2idle I tested it together with other qubes patches:
https://github.com/QubesOS/qubes-linux-kernel/

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmkrsmUACgkQ24/THMrX
1yyEDgf9H/lvmlm5yVjaPVZIwF4ex5v8T3scudwiA609KA7FDKejFdpGYbZFbFD1
sQM4/cCb+0mbRCM8x0zMLP1rheNdxp/+du7bEI7RfGedtQcI61foBaXVpxde9nE6
aup2+5gkYk6gGM/6qtmIZW0ugt3TPb96q8xeTmBDGLx77hDqBiwd03fsjNlQJslp
J1oU2td3kl4JAxSbug85dkVV4cecPVz99vbYUa02NnePrWGVunaAzHUe/w3lCK43
bIUMF740zEtZTbeJuqlRvF6oPFSeBTSWgeMyfQMN01Agk+IENxCCgvSXZRk+t1q6
xf72v/rqBvVChqJ/FQmX6yr5cXpFrQ==
=nS3x
-----END PGP SIGNATURE-----

--DJTHw7pL0k1QweeN--


From xen-devel-bounces@lists.xenproject.org Sun Nov 30 14:30:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 30 Nov 2025 14:30:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175276.1500105 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPiRh-00080N-PH; Sun, 30 Nov 2025 14:30:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175276.1500105; Sun, 30 Nov 2025 14:30:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPiRh-00080G-Mj; Sun, 30 Nov 2025 14:30:37 +0000
Received: by outflank-mailman (input) for mailman id 1175276;
 Sun, 30 Nov 2025 14:30: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=k3In=6G=valinux.co.jp=den@srs-se1.protection.inumbo.net>)
 id 1vPiRe-0007zP-F7
 for xen-devel@lists.xenproject.org; Sun, 30 Nov 2025 14:30:35 +0000
Received: from TYVP286CU001.outbound.protection.outlook.com
 (mail-japaneastazlp170110002.outbound.protection.outlook.com
 [2a01:111:f403:c405::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1be8afce-cdf9-11f0-980a-7dc792cee155;
 Sun, 30 Nov 2025 15:30:26 +0100 (CET)
Received: from TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:24c::11)
 by TYYP286MB4078.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:155::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Sun, 30 Nov
 2025 14:30:20 +0000
Received: from TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM
 ([fe80::fb7e:f4ed:a580:9d03]) by TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM
 ([fe80::fb7e:f4ed:a580:9d03%5]) with mapi id 15.20.9366.012; Sun, 30 Nov 2025
 14:30:19 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1be8afce-cdf9-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WyKto/DYoFy2YnSSg1nEooYTWUjHaof6hWXOU8QjHDRqtJfDI0mDPNFJnarzAgEhX2VFOBfOlWpcTC0gAYhRDW9636Yf4N7pyWMw64OPx0gKIoW6/i7/jfKujdW2ioEJjVTMqyg0fE/8dNaGiTPkI5KVuIvimD5Ziw3KefUqCLnZyojiauAdauFaJPyCxdDljPbCacKWeEK0s65z5+9z58DPgeuERkltHTRLEPtmcP38yOxNyFS28Z7q7MwyTGnJ2APWVkzFqvBLOAft6TPVXrDieex+z6tyqRC+sjmRH/n0dHb/psq7/DhxvtckAiUf02nmDBT1DEG8487QRw/lXQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8ZM6gIeCjZALUY7BBHCzEIGqDm+AiG9jQjjnzY4Pack=;
 b=eNcJLtT4jDEi9QsDPXq1zcDao44dDWnzGgh2cFVtaPiJ/BqzIesLqgZV/8OOX9NAuRdwLF4ShKLlAtRSKBvqqq3xc0/NW2L7gpzdNOt/QaTqH4GzMGU9zkwRgPXSWFGGG2NJn5JMMIRlHEsIDr/EcIRfzbX9qde2AO3GpuwucjUepfbfiemPDANcmo06OVZYwzht1Fhuavy3HkgZD+ax0lsjW0V/MMPcat8b9RmJtOkxu1eBmPdrkopEbayTaEGeWkcCafzaiEJd5jtN+l+le+QI9PgJQInzFni/Xsrc3/Rk4rXo0o2AAK30mjzu6U3XHxTNfY8TYrZnWJd5VIn2ow==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=valinux.co.jp; dmarc=pass action=none
 header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8ZM6gIeCjZALUY7BBHCzEIGqDm+AiG9jQjjnzY4Pack=;
 b=XJLewDQaiW+exxiKRvQk+p9WJl74R7e8vD42HvAolLlPu3xlIkj0uqCDwgYzLp5eKiqXD9ZC5qd4ctxajvvamfaad5mnmEUstT5IWz9htTiJgskZ4QOSTEqbnZmlpwTGI7TzOjd+i3ZLElwE3B3EMt3GCmbS4PZKxoJ1R1XkCvY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=valinux.co.jp;
Date: Sun, 30 Nov 2025 23:30:17 +0900
From: Koichiro Den <den@valinux.co.jp>
To: Grygorii S <gragst.linux@gmail.com>
Cc: xen-devel@lists.xenproject.org, dfaggioli@suse.com, jgross@suse.com, 
	gwd@xenproject.org, Jan Beulich <jbeulich@suse.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Michal Orzel <michal.orzel@amd.com>, 
	Ayan Kumar Halder <ayankuma@amd.com>, Julien Grall <julien@xen.org>
Subject: Re: [4.21] REGRESSION: [PATCH] xen/credit2: factor in previous
 active unit's credit in csched2_runtime()
Message-ID: <uwoaj27nf7qk7z4ki3d6nbvut6yhfn3e2bdhmggqajwpicsng4@yrylm22q57fd>
References: <20250621141411.890250-1-den@valinux.co.jp>
 <3dfd6d2d-fb56-4ecd-a86b-8c6068b2e470@gmail.com>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <3dfd6d2d-fb56-4ecd-a86b-8c6068b2e470@gmail.com>
X-ClientProxiedBy: TYCP286CA0022.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:400:263::8) To TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM
 (2603:1096:400:24c::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: TYWP286MB2697:EE_|TYYP286MB4078:EE_
X-MS-Office365-Filtering-Correlation-Id: e56a3be2-63e7-4310-3ad2-08de301cfca8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?1jIas4UCtV8EHNBJi7OLnCEtqgTK5JTAaoNqVJ1JWNEZkxkZKnyf4vsQa03k?=
 =?us-ascii?Q?PFGSkciBig7ZCosgbWHtSv9lUAxDaVMNqUhl1KKoUXyHb41j72eQyBsBtgAq?=
 =?us-ascii?Q?4K4c34t2lwHcy8q1rLzUPVIWgtIxjCkQr52XTOihB3oqjAPYDYjsrX5yM+y5?=
 =?us-ascii?Q?x1IfgsGxEtUnXJeqIDZEdXyLBDqZUkOKF9bseEcHcAXLFScooISMazCClzTT?=
 =?us-ascii?Q?j6u8Ck3QeO4cQkMlC9+sql0FzNzl+ErqnSTrofKRUovfwN2QG5k1ESCeadTX?=
 =?us-ascii?Q?jpw5ubqpGfgEeLuFY+ZAPCBPwzhWiZeGk3MjZnY+k3NLyuMH1bEn6r5+H74n?=
 =?us-ascii?Q?GgP8wOn241XacgNziuwAh41VgGcCLnU39w67e38Req0mzW1Io8BEufEoCOm/?=
 =?us-ascii?Q?41eiNEF0+0q3mIWLbyI/uiQS/aJKhztRLnZ70un8LHVOyBjj5pLoIulADmOF?=
 =?us-ascii?Q?P3bQM4QTMRxzhwS+A74mM2cpdCFDB67WlIQJ9e2rOtsVWIVLc64d1AW3F0mg?=
 =?us-ascii?Q?Fedi09cHvuk52df2lxfZxVPhIIswkMFH79f47Ts0Zult1f5upy02D8CFjtBP?=
 =?us-ascii?Q?AnDKPqeEMM5ep1tlTgPYF2FGAqp3MPTu8rgm+mdul01f75wb9PKIwU8SzL+5?=
 =?us-ascii?Q?5nTWiSZqlkq2Gv9aXnsXCGausEELKd6Srqq3YCSbOLhzUosz3Uv/vCpDD3iB?=
 =?us-ascii?Q?neIC5o9VeN81/V1y24Nyr3I+ooTnxAMoeiK6eIB6Pb2XyBmF9qCKTdhfsbbU?=
 =?us-ascii?Q?8+u4FOBfSrVL82TVBj8gHvBUEK/IBK32ViBnYTzoHfxJwu1WGQZTagpWJI8L?=
 =?us-ascii?Q?67+Qo9HMwUVjh5iUwdh0+28mZDlJ89NujmnR+g8e/i/QPZOAhWw2QzeuZLdm?=
 =?us-ascii?Q?ysifj71E1Y1j9LILQ81lHVjum0X5hWZp//ts5SrKhzyk/5so9FJJY06Ldf2H?=
 =?us-ascii?Q?ZTF49K2egE5dI1Zv7NGmTzIjbj49v4wJTPaBGoKoXcpw9lmLS2uPPp2B7K7z?=
 =?us-ascii?Q?o8QKenCSwHlqowZKU+3Wh1eJYfyQxx4Wo7LYE0BbYf6krNYGqmFIQyNPPY02?=
 =?us-ascii?Q?xaxtyUAAA/XJsnEF4gitV8JTiD4e/WMLlKoYrbP/gX04RfyvrKB7QtKsXX3L?=
 =?us-ascii?Q?5eQ9eI9NW5goKiDD06zCTMSC0WOrA9Ar7zn7pG3qXS/D4WLXgWmDImYCVSHS?=
 =?us-ascii?Q?T71bfqE/U7safo1jhGuZ0Ka1vIrRQwcgp+8nzOTbeJBLQ8RwmlyP+ei0urb2?=
 =?us-ascii?Q?iGbnoTy2g5MIdYu18tLLTf4MHe/3KlBTqibYBVNrCFB6t/d0F/p2F5ezStuP?=
 =?us-ascii?Q?q4DGRtSSfRkHY8OjMRkVYzxs5OuD3rDxhxMunU20gBPQQej8ofWJ9pNw4+8x?=
 =?us-ascii?Q?cqmVvw937b2kr0DYgGy81a4EX2rwLcVa/jpGqYbWZMBtykowS9Lr8shPGpcr?=
 =?us-ascii?Q?LgCpM6K1QPex+ab68X7DMreMumoGNhuZ?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(7416014)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?GmKasEDpZ1heJ8kB8DskazN/GYYAHmwic1uCTOv1jOq5b3jLqdMWdRf3o7g/?=
 =?us-ascii?Q?/+e0EBrCWAFl5oAmqEdb2WwuZpTNcPWb1heMTLpD4gQ3He5O5g2rk4pHwnW8?=
 =?us-ascii?Q?816WSBgbO9BGBAFThLAaJ2IpYxzMHr4Pjr/LrHnWcDdgLzDD2311NqC7k18H?=
 =?us-ascii?Q?WjHno9t/lGiamhj9gjwCldgUJf5+ODXaXPML6SIPRo4AmnDmjCN+h3gBnaNj?=
 =?us-ascii?Q?6IO3egw2VDMAS7c7KuPPuED/0BTcvCMcpmkjhjbFhRhGpgC3tYi6OD6gQ0rz?=
 =?us-ascii?Q?RlHHkgVInRQksBB0rn5r4KDgOuPbGhD5+RIIcDdU5noHbkNKAXcEMCw9KBRZ?=
 =?us-ascii?Q?i2gGKcP4K++YOG0akhVpYvVZuS0OW3Lh9npiexYdRc9JvwEsBNLbiPeZSDZn?=
 =?us-ascii?Q?3D2nILcGVvhZr60qerNuNPlExDuoetC5fUqv01ImtrxJ2XAKN0MfwPCFDZF9?=
 =?us-ascii?Q?+HRrySPk629voyZUr6sGQFS5XaC0spxjvz1/991ttEHQRQ7/7UdBqKwFa5nH?=
 =?us-ascii?Q?KBdpQjseBWMDz392g+6/WF/aASRxVsTs0XXgNs2O6yBMHLKMUiYo4FgaLatH?=
 =?us-ascii?Q?cuseHxBt07QydvIt0O1DaRAiM7e2hsMCfDDYe53T6bnyf/Wo91FTW6X7zunY?=
 =?us-ascii?Q?hOyvGRXcPVC/L0V8g45fNRAzk2kzIvCLNhxLZoIu0SeQEWGsL2pYNGK7CvsP?=
 =?us-ascii?Q?KUKr2tDPpZe2cXwJb4UZuXOqBby2THaqck6vE0XQOqgF3+L4zGVl8rH7jATC?=
 =?us-ascii?Q?mjDIagYf7UPe5RZAL0WHhYFfyGCJ1Pj2VTB7bA5lXuCdJAO4eCgXUc1ptWZe?=
 =?us-ascii?Q?g4eC/Lv7DGQ8Cn5FAXcQr/G1aVPNeerehrMwq3hTzahqXz2jqN1L7ak5VDuX?=
 =?us-ascii?Q?9yGR8CegLOnS2y7FkcFvEZxpZNdIa90LL9aSDjGQZQYGOFB6CtSYWoVcvnEL?=
 =?us-ascii?Q?Wke2IPOhLoNJBiJPoBJyLsY77//x3XmFrBJ6zlpiKn7Ezmq0HUJv09X+UQ12?=
 =?us-ascii?Q?YbxHegoiuNqAJ6frRZ8FCLWuJLcbSqd/Z7UEQFk+x0zAr8Lp774/JzFa8bLj?=
 =?us-ascii?Q?bZlOOomQcO2kyq1KDGC+jPb0NtLy3Apkn/F4B0yEzx6CZJmVcxNE1YpYEhUT?=
 =?us-ascii?Q?YkbA73+pGRyQqDQGj4MbBMePF5uByZd1vwpP3hwIIVp7ufRx5K6eMFE9Kes3?=
 =?us-ascii?Q?a8okN3CA/Lw+Ng64nnSnEdzK8He8zhsMaqab/de1laB3rHw5WKYhD+iGa6ap?=
 =?us-ascii?Q?YgriUFR5Znuo+OHkH+8+4LErlgAgVTVoYNXl0mGx9KZ0tDdoef1Oe2u1MMg+?=
 =?us-ascii?Q?/wCgWWay35bG/4Nxgf4jCvYfX9/dBd94Iq49HgVHP5R5cBIhJsv2TnzxS7hn?=
 =?us-ascii?Q?27CNsbexO47rARHd7XJb/aTryMslB94SMWNUD3HxXmCJEop0h+/OTIfybytH?=
 =?us-ascii?Q?9oxj1uMX8SrzqbVKtD16SwVw5RP00V1TYgDdp9d4SgrYU5+WlhdlnN8+8vV1?=
 =?us-ascii?Q?WS46Y+gBrcOorlGpsTXfoZArkoIEtcUlMygR1cSLrFSEw61RtkalBzm8gxDY?=
 =?us-ascii?Q?eXvJfzpFKM2Iq01sSMB2VNn1z5qaT+ctTLu14uH3r8JX2yr6x+X0c+nL9GKt?=
 =?us-ascii?Q?vLDLUoegXa00b5zuFK/nVZU=3D?=
X-OriginatorOrg: valinux.co.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: e56a3be2-63e7-4310-3ad2-08de301cfca8
X-MS-Exchange-CrossTenant-AuthSource: TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2025 14:30:19.2052
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: VpXHYit41oS4v4Hf1aCnYgHVNldjpJAvAdz00mNzsaACfIGzw0frdgCnsg5LAo7uH81oXfovxBhBW1/mBN6l+Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB4078

On Thu, Nov 27, 2025 at 04:55:17PM +0200, Grygorii S wrote:
> Hi All,
> 
> On 21.06.25 17:14, Koichiro Den wrote:
> > When a running unit is about to be scheduled out due to a competing unit
> > with the highest remaining credit, the residual credit of the previous
> > unit is currently ignored in csched2_runtime() because it hasn't yet
> > been reinserted into the runqueue.
> > 
> > As a result, two equally weighted, busy units can often each be granted
> > almost the maximum possible runtime (i.e. consuming CSCHED2_CREDIT_INIT
> > in one shot) when only those two are active. In broad strokes two units
> > switch back and forth every 10ms (CSCHED2_MAX_TIMER). In contrast, when
> > more than two busy units are competing, such coarse runtime allocations
> > are rarely seen, since at least one active unit remains in the runqueue.
> > 
> > To ensure consistent behavior, have csched2_runtime() take into account
> > the previous unit's latest credit when it still can/wants to run.
> > 
> > Signed-off-by: Koichiro Den <den@valinux.co.jp>
> > Reviewed-by: Juergen Gross <jgross@suse.com>
> > ---
> >   xen/common/sched/credit2.c | 28 +++++++++++++++++++++-------
> >   1 file changed, 21 insertions(+), 7 deletions(-)
> > 
> 
> We observe regression on ARM64 with this patch.
> commit ae648e9f8013 ("xen/credit2: factor in previous active unit's credit in csched2_runtime()")
> 
> general observation:
>  This commit causes Linux guest boot time increase  >5 times for some of our the credit2
>  specific tests.
>  Reverting it makes issue gone.
> 
>  - normal log
>    (XEN) DOM1: [    6.496166] io scheduler bfq registered
>    ...
>    (XEN) DOM1: [    9.845108] Freeing unused kernel memory: 9216K
>    (XEN) DOM1: [    9.874792] Run /init as init process
>    (XEN) sched_smt_power_savings: disabled
>    (XEN) NOW=16800131328
> 
>  - failed log
>    (XEN) DOM1: [   37.281776] io scheduler bfq registered
>    (XEN) DOM1: [   61.856512] EINJ: ACPI disabled.
>    test: timed out
> 
> Run Details:
>  Platform: ARM64 (Device Tree)
>  Execution platform: qemu 6.0 (2 pCPU, 2G)
>  Boot: dom0less, 1 domain (2 vCPU)
>  Command line: "console=dtuart guest_loglvl=debug conswitch=ax"
> 
>  Dom0less cfg:
>     chosen {
>         xen,xen-bootargs = "console=dtuart guest_loglvl=debug conswitch=ax";
>         #size-cells = <0x00000002>;
>         #address-cells = <0x00000002>;
>         stdout-path = "/pl011@9000000";
>         kaslr-seed = <0x5a7b5649 0x9122e194>;
>         cpupool_0 {
>             cpupool-sched = "credit2";
>             cpupool-cpus = <0x00008001>;
>             compatible = "xen,cpupool";
>             phandle = <0xfffffffe>;
>         };
>         domU0 {
>             domain-cpupool = <0xfffffffe>;
>             vpl011;
>             cpus = <0x00000002>;
>             memory = <0x00000000 0x00040000>;
>             #size-cells = <0x00000002>;
>             #address-cells = <0x00000002>;
>             compatible = "xen,domain";
>             module@42E00000 {
>                 reg = <0x00000000 0x42e00000 0x00000000 0x000f1160>;
>                 compatible = "multiboot,ramdisk", "multiboot,module";
>             };
>             module@40400000 {
>                 bootargs = "console=ttyAMA0";
>                 reg = <0x00000000 0x40400000 0x00000000 0x02920000>;
>                 compatible = "multiboot,kernel", "multiboot,module";
>             };
>         };
>     };
> 
> Investigation:
>  It was narrowed down to a specific configuration with cpupool assigned to the domain (100% reproducible):
>  Host has 2 pCPU
>  Domain has 2 vCPU
>  cpupool_0 has 1 pCPU (cpu@1 credit2)
>  domain <- cpupool_0
> 
>  if Domain is assigned 1 vCPU - no issues.
>  if cpupool_0 is assigned 2 pCPU -  no issues (seems slower a bit, but it is on a error  margin level)
> 
> I'd be appreciated for any help with this (or revert :().
> 
> -- 
> Best regards,
> -grygorii
> 

Hi Grygorii,

Thank you for the detailed report. Could you please try increasing the
ratelimit_us (the -r/--ratelimit_us option), for example to 5000 or 10000
microseconds, and see whether the long boot time issue disappears? That
would help determine whether the previous behaviour (before the patch) had
simply masked the effect of the default 1ms rate limit in your setup. In
other words, after the patch merged, you may need to set -r/--ratelimit_us
explicitly to some appropriate value, which is larger than 1ms.

That said, this change touches long-standing credit2 behaviour, and we
probably should've discussed backward-compatibility more carefully. I'm
completely fine with reverting it if maintainers think that is the best
choice for now. (To be honest, I hadn't even realised that this had been
merged until receiving your email, since it only had a single Reviewed-by.)

Best regards,

-Koichiro


From xen-devel-bounces@lists.xenproject.org Sun Nov 30 19:00:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 30 Nov 2025 19:00:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1175466.1500116 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vPmeX-0008WT-Vr; Sun, 30 Nov 2025 19:00:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1175466.1500116; Sun, 30 Nov 2025 19: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 1vPmeX-0008WM-Sb; Sun, 30 Nov 2025 19:00:09 +0000
Received: by outflank-mailman (input) for mailman id 1175466;
 Sun, 30 Nov 2025 19:00: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=yn08=6G=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1vPmeW-0008Qa-AZ
 for xen-devel@lists.xenproject.org; Sun, 30 Nov 2025 19:00:08 +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 c0ece837-ce1e-11f0-980a-7dc792cee155;
 Sun, 30 Nov 2025 19:59:53 +0100 (CET)
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com (2603:10a6:208:c8::27)
 by AM7PR03MB6213.eurprd03.prod.outlook.com (2603:10a6:20b:133::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.17; Sun, 30 Nov
 2025 18:59:50 +0000
Received: from AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae]) by AM0PR03MB4594.eurprd03.prod.outlook.com
 ([fe80::5a:31d6:fee4:ccae%4]) with mapi id 15.20.9366.012; Sun, 30 Nov 2025
 18:59: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: c0ece837-ce1e-11f0-980a-7dc792cee155
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tV4ihCMp79wAxjMTMgjIf2ZxFknoXFZyDMye8NXie4VkqR0XngUeI3Z+Hz1YY9yvc35Q3WFSyv6unSX4kHeoCVTNOwpgu54UnYLFBTip2wytYc1mCgZBJ3PyoSkOSRjP0EAR73cH9IHYAqtkZHWGol0w6VBUKFdidJbxKs7O8vFmd/NQVxu5LB2do5cBtgwKzt+CMROulGUNSET/sMZnoEHyEAfFxm+hKqSGZbjm80IIfe0/UVfYtbpMXv55JmRGUk7zuM/S2Y3hFFPGgshF40/7hkmUzLwlgRYwsR4ECgRyYLm7SrJSxD08TT59td7cQaVVvezDBw6KaATHU3j3VQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Qj5HD5KKpcIV3Wi7aCVq8nsNuy9Mq64in2Ip0S9bIgw=;
 b=vtMMpbHSSgV9rhQ6UL0fwsgUkwycymBBOB3Mw34NYgANmELMF75JNyriIHYp1trNAgF+JHgySIo/7kjh8vOZ8F3EjxvlVS7auSfJR9nO3UVDI/MZ2RCnMNTapv+z3dHZyjqCMjSryamw68x2h2EXuSwzrR4lCLX9vNO3Mdqp9TeziONdZOBfGs7XRVpEJL70UAeuF1zJsJSkqB9aAtoEy8BTADOsDf7fToVIvAknkdFHSv0sGxwR+UE5uOOC/+loRMftCnG3ps9sfELCzYBSE3bJ0ilV2nqrqbR6T+niQk9Dz66iXffIlTvxrskJZTmj083VhNe2nXnyIcqiBICftw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Qj5HD5KKpcIV3Wi7aCVq8nsNuy9Mq64in2Ip0S9bIgw=;
 b=Lh0P2kHXhwCOgK9x3h82uoezHgk7SH40CVD5drbsVkTDTPT0QPCsjj4bMGMNJGOo3+yH/IN1Q4KgErdZG+L2AyGQfnX+SwQx6Zx1CFJ2qH/UU7tNg2RaJy3v6w9/G1t8h0HdXuPceT4bMxL6qr4FKSQERZ0h2KhUwaoeOXMuyyKPNasZpmcNf5wlWIMPmcNPStoaHlVksgBiw9Lz7FC568sXYIqCEzYQ3vUAoCx5FdqBxEuO9AQyBHM3pYLplbJWDcuyuxBreVp3fH8yD+Fk+E2ARqks8EuxT+FCw1sQOqAyrIQd0mKrW6/GGtkK/lcjsif7OqKLycALJ3djggYzwg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <28d5bae7-e993-4a92-8b6a-659a3e9795a5@epam.com>
Date: Sun, 30 Nov 2025 20:59:48 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [4.21] REGRESSION: [PATCH] xen/credit2: factor in previous active
 unit's credit in csched2_runtime()
To: Koichiro Den <den@valinux.co.jp>, Grygorii S <gragst.linux@gmail.com>
Cc: xen-devel@lists.xenproject.org, dfaggioli@suse.com, jgross@suse.com,
 gwd@xenproject.org, Jan Beulich <jbeulich@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Michal Orzel <michal.orzel@amd.com>, Ayan Kumar Halder <ayankuma@amd.com>,
 Julien Grall <julien@xen.org>
References: <20250621141411.890250-1-den@valinux.co.jp>
 <3dfd6d2d-fb56-4ecd-a86b-8c6068b2e470@gmail.com>
 <uwoaj27nf7qk7z4ki3d6nbvut6yhfn3e2bdhmggqajwpicsng4@yrylm22q57fd>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <uwoaj27nf7qk7z4ki3d6nbvut6yhfn3e2bdhmggqajwpicsng4@yrylm22q57fd>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA1P291CA0007.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::11) To AM0PR03MB4594.eurprd03.prod.outlook.com
 (2603:10a6:208:c8::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AM0PR03MB4594:EE_|AM7PR03MB6213:EE_
X-MS-Office365-Filtering-Correlation-Id: 3fecdfe0-b8ac-47c6-f2f0-08de3042a31b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|7416014|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SjN6cTNFOXZIYkJrQzArWitBVEhVWVJlYVNUbXd5VElmdVE2cTI5L0ZDTjFo?=
 =?utf-8?B?VVhzWTE2NDRjNGJXQ2JKV0FubGdJblJVcExLK25WbHJ1ci9icGNFaXZoNFZy?=
 =?utf-8?B?SlpTSFF5bVV4MzZ4QWdEOGN2d1NCdTQyQ2pVZi9RUnhOWjQ1YUJXckVub2Za?=
 =?utf-8?B?U1NXSUUxaGI5ZW92UnVGbU5KS3pXTG9aS2RVR2pzek0wZ1RiQ3dXR3VsNWw2?=
 =?utf-8?B?SmgveURtVGZaWDhRVlV1VGRKTzVUU2RQUnVPcmRaazFMbEltenl2aStoSjFE?=
 =?utf-8?B?WmgwMkRDZlYvd2Zkb3pvYnFEcExSdWNNNmIyVkVDdHdRc3BqMlFRVWQzTTBJ?=
 =?utf-8?B?RFZ4cmprbDlCZ05maGVheXQxd1NKcU1CR2l6OSt4eU1DMlNWeWZOSWJxaDEx?=
 =?utf-8?B?c0F3SVJJN3ZhL0l2WVhrQVp6VGVpUXNDVzFQYXozUUdsOXZaaU1EUk85SG1W?=
 =?utf-8?B?OW5CTGdrT0ZueTd3a0lPaUEyVUR6aWpteWozWmozNmpsNTZXcm9NdlhGdHY2?=
 =?utf-8?B?MU5nc01aQW1TQUdCSDVmSGVmNzJQYTViL0R5ZzVCelJ6dnV1OWM0TlJzRzJP?=
 =?utf-8?B?YTZTaFFWKzRmV2t3T0w5MVdXa1lVQnZHc1JIOFJkQWdncEFDSTBDNUo5R3dM?=
 =?utf-8?B?aSs5dFNzU1dTZW1BMWFENkpwR05TZjlsUkFGRXVVeEloTFhaME9nMnJySitS?=
 =?utf-8?B?dHNseENrSGNJbmZaK1ZVMkRlWW1WbTFuRVlwcjhkbFdIRnU0NkQ1b0Vmb1Ir?=
 =?utf-8?B?ZXZHRGZBYVUyOVBvalNWcEpncnFtK3hiRlZHTVprdDhiZTIwV2xod1lFeXAv?=
 =?utf-8?B?YVhHK3lOMW82NUErU1RyYml1NTlsb0dhYWpaemZDblJCdmVaMFpyNFZIclNx?=
 =?utf-8?B?S2Y4RnpPZUdWVExNaGF4RFZYL2Y0cWtaMDZmVmlheFI2S3lGS3JYVUJ3Ri80?=
 =?utf-8?B?dk1tdDBBWGxIVVJ6U2R4dForRzl1dGJZbVcxQnc1Mkl4MnMvTythZS84d2J6?=
 =?utf-8?B?TW9lQmtHUGVlSzJNcFMxbDlndUZMUGw1bXRMOWpMamtxeTkzYjR1eG9lZXo2?=
 =?utf-8?B?RThGb1RqVmNXWmRJeTVZaHFEaHFhWmxvT3l3Z1BOV1VJQ0ZOanBwM0xWUGJu?=
 =?utf-8?B?TlVsZERlN21icEcwMUpvbURrYnFIam9KRmFjYjBTQVlySENKZ3ZYMFFCN21M?=
 =?utf-8?B?VzhxbjAyS1ZJU3U5WEJzcUMwSFBUcEc2elkwK0t4YVpjVTNkRVNTalcrclVY?=
 =?utf-8?B?dWtmWTNHUUpOV2w5WGZVbnl1K2toeVlEVFFOT0tzRy9tMjZ2cEh1OWZWUjF6?=
 =?utf-8?B?SzgxOVREcHRhd09QbkdMWTRIWGVOMnBDdnRnTFhSdmF5RDIrcm1CMTFsSVkv?=
 =?utf-8?B?QmlHK2F5T0ZXWkhqTXQ1dkdLRGpxL1EzSk1pS3czbWVRUmpGNVZDcmt2TUxF?=
 =?utf-8?B?Y2hKMFhvSVc0aEpNYTU1T2x6RFJVZjZFc2ZSeGkxRldyYzV2TCtpU0xLTkVD?=
 =?utf-8?B?VnZqeHd3Ui85OVZEWUxWK3g3T094RmVlMGc3dU1VT3d4MXIzcFVMRGtVTTdL?=
 =?utf-8?B?eUpPdTF0bW9IbjZnVGFIMzR1UEYweG00TmJ5SlFLNS90dHhPVHkzbzNmNm1w?=
 =?utf-8?B?eVJ6M1NUNGlWU01vN1o2UXd0Yk5mUksrTS9CTG1JWEJrMWxGSXBNUW0wSTVz?=
 =?utf-8?B?aGVZV0xRSDZwYVEyZVZMSmRkV01zaEpnM3BEdHdqV1ZaazBZV3pxbGFFdkZT?=
 =?utf-8?B?TTFVdDNkYVNxRWN2WHRjUUFlRlhwRG5ZZVJHSWlzMVA4WENibmZJeUt0WUZO?=
 =?utf-8?B?U1RSeE9sa2tUUWhVMTBIYmkzT3kxTDRINDNzRzZHcld5enhlZTJsT1VvUlJy?=
 =?utf-8?B?NEsrMUtvLy9sTEZ3aE9kMzFvdEplZ2ZUdUEzNVBJaWIwZlh5T2VUc3RCdmFi?=
 =?utf-8?Q?cZ2lOnPIfff+sfx4cV1XKL/mCOeF0EYC?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB4594.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MmUwY2RqYVdKekhXU3k5Tm5RTFJXc0JJOW5TMm9pelMwbEZZQVp6NEt3Ykht?=
 =?utf-8?B?TWkyVWx5c3h5NDE5VzIyUENWdERwMVNrYW93OTI5WXNtd2dCZ3ZpWTZjK3pZ?=
 =?utf-8?B?UlVvRjc3bGtnRnd6VHZlZzd5OU5OUTQyc083Y3hEcXRYNkNrSEs4MkpzMTFm?=
 =?utf-8?B?UWNHemQrblMrdmZISkgzUE5GUzh2TTVBQm0zcTZZMWp1dlhZWmNldTdHb1ZQ?=
 =?utf-8?B?TWM2MHlWTi9XZmUvR2txOFdxWHpiVjJFS3czTFZQUCtteFFSd2J6eW14L3R0?=
 =?utf-8?B?d3BqeFdxUkIxdUcvbzhPSU5icEVMa21NT2ZNb05DYUtEKzFqZHVMNnA4dGNZ?=
 =?utf-8?B?d3RWNnVPUkRwWFkwYkdLZjhGdWYwVEhDUWoxU0x1YnFEZTlndFZXd1FsWU5W?=
 =?utf-8?B?eGFEWW5uZzVONEx6VzdBVlJleGZpdFI0cXBIb0dHcmJnWXBKanUxeVhKcDlR?=
 =?utf-8?B?bVMyUnl6UGE3OUNZTVV4a3YwZytUNTlhajRHK2Y4bHhnVTRzNVBxcHFnOWc1?=
 =?utf-8?B?QW1PYzdPVklmV082djlyM0lHdXhZcGZFaDBBWlRzWkhrLzMzSGRjRUdDcnVH?=
 =?utf-8?B?OFVxYVMzci85bE1CdTlPOHdOUjhRaThiV3RBbEpmNFR0M0l4Sks2WXIyS3Np?=
 =?utf-8?B?ZjZ6eDZIYnZjUUtoZDlYWjlubUpkUjd5cmZIMnhvcUhvejNpNmNsQzdlVWNS?=
 =?utf-8?B?NmlSTkgyVkdONm1zdnBBVUg5bFRtNFdUa1FCZW1XbDVlMTlpV05VSUY4MEli?=
 =?utf-8?B?b0hFTGtybGdwN3YyZHFCM3ZqL1d2T3VBb3JLQzh0SGJZempXVlZnZWcwYUtV?=
 =?utf-8?B?czJIWlFSdWkvWk1BRmFFd2gzYmhJRFpnRUVYUWxjSEVUQzU2c3k3K3pkdlhY?=
 =?utf-8?B?ak1iaGR5QWVNQ1JlSmJ0WTNOa2tjcmU4M1A1Z01OdVNSa3dJS3kwbTY5SFhM?=
 =?utf-8?B?dkdCYUpLeVJ4UjZRWFc2K2gyQy9aZWZMcUlSNnNRdWNJcFN0cEREemt5eWxY?=
 =?utf-8?B?QnFEb2dING56QnY1dFlyK1VjdlJNa3FkWmpHNUJoNEVWVm13UURGcGFTTjU2?=
 =?utf-8?B?Q1BIdTh1ZHQ3N0w2OXJvUFJjZnNVSG5VY2JrekRUZXoyNUY1UFRrbTM5RHNZ?=
 =?utf-8?B?R3c5VXFGaFc3RVR0b0lHL0RXejFGei9MM0pOc05lUTZBakZiUElNMllycy8z?=
 =?utf-8?B?VmNjQzdPMER5RGtMaXNBWWs1T2lZcVR6cHhES1ZyZGx0amFZdThYeDZmbDRX?=
 =?utf-8?B?SHZGN1ZMKzRtaUJDMzZEc0J5bG50YWg5Z2l0REZ1TWpvbDRvSElIWmhiakEw?=
 =?utf-8?B?M1dDeHJoUVFwNHJUY2dmeXFGa2FmQW1McXZCcU9ySUc1K095RHM5S3hZT3Js?=
 =?utf-8?B?bFRTc2NqRkV0Zjdrbmx6VFJvaDdLOEY4ZWZEMFFla1FySjF6eGFjTFBDSDdw?=
 =?utf-8?B?aXJFbStadXhUdEZ3amd6VEtoYnFTQkUxdkZFQXFVM2NmdjhkUGdtb3hxZjQ5?=
 =?utf-8?B?NkFoa1RjWlZKQ0lSMlBKSVREaWRrekV4RjArck5xZmF2TW02UnBieVdvQ3BH?=
 =?utf-8?B?TFhBbkFVOVpRY0tuS204a2dqYkowRVVsc2hIVEJlUzNlVkZXVC9LUE14NXhV?=
 =?utf-8?B?UWFSeVFRYVlRZlpjdFgwNDNadkVORkhBaExrMldQeG4wZEF6cmt1ZDRtZVU5?=
 =?utf-8?B?YkRmN1pSV2ZPb1dCSFIyUkRHdG5DUFo2U2E3TlVzNEZpQ1VLeisyK05tU0tl?=
 =?utf-8?B?NkFYZFBSKzhmVEhDeXo4NnFwSU5qb1IzQklKS0txVUJiZjB6dDlBWFhvWG14?=
 =?utf-8?B?cFlRUVI5UENiUHJ6KzNtZHFRM0YzQlQ0MC90THJ3SW1LZDlwMmV2Yi9mVVd0?=
 =?utf-8?B?aUpOTnJlUU9QSlhtbktjZUtXaXJKNzArdDRYTXFFamFHM3ROcnNubURsM042?=
 =?utf-8?B?MU52eWlYb24zUDFKdm1yUEl5a3A2RjczVG96QkpJM3J0QkpsS3VxMStnQm12?=
 =?utf-8?B?ZnJZamF3QzlCbUhsL09jcUhxNnFFdUFyb1N6ZmhlOHpNSWpodmhaQnQ4OHlV?=
 =?utf-8?B?T0lVeENHaDVlck84YUNsS1hnd1JXdXJQdmc2UzdCbWp4aFpvU2tLK1lKanRw?=
 =?utf-8?B?Zm5sRGxhbnA5ZXhzVS9pNkFLNXlPc1JWT09leExRZjRyOTE0cVM3ZmNmb0pi?=
 =?utf-8?B?VFE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3fecdfe0-b8ac-47c6-f2f0-08de3042a31b
X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4594.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2025 18:59:49.7248
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: U4+7f7XqQ/PFVfcq2mi5KZkIUi7oAvs0j2dwT1pO9YnIwld+LItsz3ZXDFE22u1Tgpb4CsrNGCwtDqNwW14xxU+MvqFaxTtL/CFpSYF5c40=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR03MB6213

Hi Koichiro,

On 30.11.25 16:30, Koichiro Den wrote:
> On Thu, Nov 27, 2025 at 04:55:17PM +0200, Grygorii S wrote:
>> Hi All,
>>
>> On 21.06.25 17:14, Koichiro Den wrote:
>>> When a running unit is about to be scheduled out due to a competing unit
>>> with the highest remaining credit, the residual credit of the previous
>>> unit is currently ignored in csched2_runtime() because it hasn't yet
>>> been reinserted into the runqueue.
>>>
>>> As a result, two equally weighted, busy units can often each be granted
>>> almost the maximum possible runtime (i.e. consuming CSCHED2_CREDIT_INIT
>>> in one shot) when only those two are active. In broad strokes two units
>>> switch back and forth every 10ms (CSCHED2_MAX_TIMER). In contrast, when
>>> more than two busy units are competing, such coarse runtime allocations
>>> are rarely seen, since at least one active unit remains in the runqueue.
>>>
>>> To ensure consistent behavior, have csched2_runtime() take into account
>>> the previous unit's latest credit when it still can/wants to run.
>>>
>>> Signed-off-by: Koichiro Den <den@valinux.co.jp>
>>> Reviewed-by: Juergen Gross <jgross@suse.com>
>>> ---
>>>    xen/common/sched/credit2.c | 28 +++++++++++++++++++++-------
>>>    1 file changed, 21 insertions(+), 7 deletions(-)
>>>
>>
>> We observe regression on ARM64 with this patch.
>> commit ae648e9f8013 ("xen/credit2: factor in previous active unit's credit in csched2_runtime()")
>>
>> general observation:
>>   This commit causes Linux guest boot time increase  >5 times for some of our the credit2
>>   specific tests.
>>   Reverting it makes issue gone.
>>
>>   - normal log
>>     (XEN) DOM1: [    6.496166] io scheduler bfq registered
>>     ...
>>     (XEN) DOM1: [    9.845108] Freeing unused kernel memory: 9216K
>>     (XEN) DOM1: [    9.874792] Run /init as init process
>>     (XEN) sched_smt_power_savings: disabled
>>     (XEN) NOW=16800131328
>>
>>   - failed log
>>     (XEN) DOM1: [   37.281776] io scheduler bfq registered
>>     (XEN) DOM1: [   61.856512] EINJ: ACPI disabled.
>>     test: timed out
>>
>> Run Details:
>>   Platform: ARM64 (Device Tree)
>>   Execution platform: qemu 6.0 (2 pCPU, 2G)
>>   Boot: dom0less, 1 domain (2 vCPU)
>>   Command line: "console=dtuart guest_loglvl=debug conswitch=ax"
>>
>>   Dom0less cfg:
>>      chosen {
>>          xen,xen-bootargs = "console=dtuart guest_loglvl=debug conswitch=ax";
>>          #size-cells = <0x00000002>;
>>          #address-cells = <0x00000002>;
>>          stdout-path = "/pl011@9000000";
>>          kaslr-seed = <0x5a7b5649 0x9122e194>;
>>          cpupool_0 {
>>              cpupool-sched = "credit2";
>>              cpupool-cpus = <0x00008001>;
>>              compatible = "xen,cpupool";
>>              phandle = <0xfffffffe>;
>>          };
>>          domU0 {
>>              domain-cpupool = <0xfffffffe>;
>>              vpl011;
>>              cpus = <0x00000002>;
>>              memory = <0x00000000 0x00040000>;
>>              #size-cells = <0x00000002>;
>>              #address-cells = <0x00000002>;
>>              compatible = "xen,domain";
>>              module@42E00000 {
>>                  reg = <0x00000000 0x42e00000 0x00000000 0x000f1160>;
>>                  compatible = "multiboot,ramdisk", "multiboot,module";
>>              };
>>              module@40400000 {
>>                  bootargs = "console=ttyAMA0";
>>                  reg = <0x00000000 0x40400000 0x00000000 0x02920000>;
>>                  compatible = "multiboot,kernel", "multiboot,module";
>>              };
>>          };
>>      };
>>
>> Investigation:
>>   It was narrowed down to a specific configuration with cpupool assigned to the domain (100% reproducible):
>>   Host has 2 pCPU
>>   Domain has 2 vCPU
>>   cpupool_0 has 1 pCPU (cpu@1 credit2)
>>   domain <- cpupool_0
>>
>>   if Domain is assigned 1 vCPU - no issues.
>>   if cpupool_0 is assigned 2 pCPU -  no issues (seems slower a bit, but it is on a error  margin level)
>>
>> I'd be appreciated for any help with this (or revert :().
>>
> 
> Thank you for the detailed report. Could you please try increasing the
> ratelimit_us (the -r/--ratelimit_us option), for example to 5000 or 10000
> microseconds, and see whether the long boot time issue disappears?
> That would help determine whether the previous behaviour (before the patch) had
> simply masked the effect of the default 1ms rate limit in your setup. 

I've tried it. Boot time is improved, but it's still slower.

(XEN) Command line: console=dtuart guest_loglvl=debug conswitch=ax sched_ratelimit_us=5000

(XEN) DOM1: [   37.903192] Freeing unused kernel memory: 9216K
(XEN) DOM1: [   37.970645] Run /init as init process

I've attached dump_runq below FYI.

Note. This is dom0less boot, cpupools/domains are created at boot time.
The toolstack is not used.
And I've not tried (and it will be hard for me to try) if the issue reproducible
when cpupools/domains are created by toolstack with above cfg.

I can try run with debug changes if you have any.

> In other words, after the patch merged, you may need to set -r/--ratelimit_us
> explicitly to some appropriate value, which is larger than 1ms.

Unfortunately, "after the patch merged, may need to set -r/--ratelimit_us explicitly"
is not going to work :( (at least not as long term solution) as this is safety test suit,
so any deviations from default Xen settings which are not part of particular Test case
need to be justified.


> 
> That said, this change touches long-standing credit2 behaviour, and we
> probably should've discussed backward-compatibility more carefully. I'm
> completely fine with reverting it if maintainers think that is the best
> choice for now. (To be honest, I hadn't even realised that this had been
> merged until receiving your email, since it only had a single Reviewed-by.)


-- 
Best regards,
-grygorii

==== dump_runq() "r" =========
(XEN) DOM1: [   37.970645] Run /init as init process
(XEN) sched_smt_power_savings: disabled
(XEN) NOW=46147558848
(XEN) Online Cpus: 0-1
(XEN) Cpupool 0:
(XEN) Cpus: 0
(XEN) Scheduling granularity: cpu, 1 CPU per sched-resource
(XEN) Scheduler: SMP Credit Scheduler rev2 (credit2)
(XEN) Active queues: 1
(XEN) 	default-weight     = 256
(XEN) Runqueue 0:
(XEN) 	ncpus              = 1
(XEN) 	cpus               = 0
(XEN) 	max_weight         = 1
(XEN) 	pick_bias          = 0
(XEN) 	instload           = 0
(XEN) 	aveload            = 0 (~0%)
(XEN) 	idlers: 0
(XEN) 	tickled: 0
(XEN) 	fully idle cores: 0
(XEN) Domain info:
(XEN) Runqueue 0:
(XEN) CPU[00] runq=0, sibling={0}, core={0-1}
(XEN) RUNQ:
(XEN) CPUs info:
(XEN) CPU[00] current=d[IDLE]v0, curr=d[IDLE]v0, prev=NULL
(XEN) Cpupool 1:
(XEN) Cpus: 1
(XEN) Scheduling granularity: cpu, 1 CPU per sched-resource
(XEN) Scheduler: SMP Credit Scheduler rev2 (credit2)
(XEN) Active queues: 1
(XEN) 	default-weight     = 256
(XEN) Runqueue 0:
(XEN) 	ncpus              = 1
(XEN) 	cpus               = 1
(XEN) 	max_weight         = 256
(XEN) 	pick_bias          = 1
(XEN) 	instload           = 1
(XEN) 	aveload            = 413852 (~157%)
(XEN) 	idlers: 0
(XEN) 	tickled: 0
(XEN) 	fully idle cores: 0
(XEN) Domain info:
(XEN) 	Domain: 1 w 256 c 0 v 2
(XEN) 	  1: [1.0] flags=2 cpu=1 credit=6994336 [w=256] load=238475 (~90%)
(XEN) 	  2: [1.1] flags=2 cpu=1 credit=4766960 [w=256] load=176230 (~67%)
(XEN) Runqueue 0:
(XEN) CPU[01] runq=0, sibling={1}, core={0-1}
(XEN) 	run: [1.1] flags=2 cpu=1 credit=4766960 [w=256] load=176230 (~67%)
(XEN) RUNQ:
(XEN) 	  0: [1.0] flags=0 cpu=1 credit=18096 [w=256] load=238475 (~90%)
(XEN) CPUs info:
(XEN) CPU[01] current=d1v0, curr=d1v0, prev=NULL



